mirror of
https://github.com/curl/curl.git
synced 2024-12-15 06:40:09 +08:00
11c2fb0446
The maketgz script now makes sure the generated hugehelp.c file in the tarball is newer than the generated curl.1 man page, so that it doesn't have to get unnecessarily rebuilt first thing in a typical build. It thus also removes the need for perl to build off a plain release tarball. Fixes #1565
209 lines
5.6 KiB
Bash
Executable File
209 lines
5.6 KiB
Bash
Executable File
#! /bin/sh
|
|
# Script to build release-archives with. Note that this requires a checkout
|
|
# from git and you should first run ./buildconf and build curl once.
|
|
#
|
|
#***************************************************************************
|
|
# _ _ ____ _
|
|
# Project ___| | | | _ \| |
|
|
# / __| | | | |_) | |
|
|
# | (__| |_| | _ <| |___
|
|
# \___|\___/|_| \_\_____|
|
|
#
|
|
# Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
|
|
#
|
|
# This software is licensed as described in the file COPYING, which
|
|
# you should have received as part of this distribution. The terms
|
|
# are also available at https://curl.haxx.se/docs/copyright.html.
|
|
#
|
|
# You may opt to use, copy, modify, merge, publish, distribute and/or sell
|
|
# copies of the Software, and permit persons to whom the Software is
|
|
# furnished to do so, under the terms of the COPYING file.
|
|
#
|
|
# This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
|
|
# KIND, either express or implied.
|
|
#
|
|
###########################################################################
|
|
|
|
version=$1
|
|
|
|
if [ -z "$version" ]; then
|
|
echo "Specify a version number!"
|
|
exit
|
|
fi
|
|
|
|
if [ "xonly" = "x$2" ]; then
|
|
echo "Setup version number only!"
|
|
only=1
|
|
fi
|
|
|
|
libversion="$version"
|
|
|
|
# we make curl the same version as libcurl
|
|
curlversion=$libversion
|
|
|
|
major=`echo $libversion |cut -d. -f1 | sed -e "s/[^0-9]//g"`
|
|
minor=`echo $libversion |cut -d. -f2 | sed -e "s/[^0-9]//g"`
|
|
patch=`echo $libversion |cut -d. -f3 | cut -d- -f1 | sed -e "s/[^0-9]//g"`
|
|
|
|
if test -z "$patch"; then
|
|
echo "invalid version number? needs to be z.y.z"
|
|
exit
|
|
fi
|
|
|
|
numeric=`perl -e 'printf("%02x%02x%02x\n", '"$major, $minor, $patch);"`
|
|
|
|
HEADER=include/curl/curlver.h
|
|
CHEADER=src/tool_version.h
|
|
PLIST=lib/libcurl.plist
|
|
|
|
if test -z "$only"; then
|
|
ext=".dist"
|
|
# when not setting up version numbers locally
|
|
for a in $HEADER $CHEADER $PLIST; do
|
|
cp $a "$a$ext"
|
|
done
|
|
HEADER="$HEADER$ext"
|
|
CHEADER="$CHEADER$ext"
|
|
PLIST="$PLIST$ext"
|
|
fi
|
|
|
|
# requires a date command that knows + for format
|
|
datestamp=`date +"%F"`
|
|
|
|
# Replace version number in header file:
|
|
sed -i -e 's/^#define LIBCURL_VERSION .*/#define LIBCURL_VERSION "'$libversion'"/g' \
|
|
-e 's/^#define LIBCURL_VERSION_NUM .*/#define LIBCURL_VERSION_NUM 0x'$numeric'/g' \
|
|
-e 's/^#define LIBCURL_VERSION_MAJOR .*/#define LIBCURL_VERSION_MAJOR '$major'/g' \
|
|
-e 's/^#define LIBCURL_VERSION_MINOR .*/#define LIBCURL_VERSION_MINOR '$minor'/g' \
|
|
-e 's/^#define LIBCURL_VERSION_PATCH .*/#define LIBCURL_VERSION_PATCH '$patch'/g' \
|
|
-e "s/^#define LIBCURL_TIMESTAMP .*/#define LIBCURL_TIMESTAMP \"$datestamp\"/g" \
|
|
$HEADER
|
|
|
|
# Replace version number in header file:
|
|
sed -i 's/#define CURL_VERSION .*/#define CURL_VERSION "'$curlversion'"/g' $CHEADER
|
|
|
|
# Replace version number in plist file:
|
|
sed -i "s/7\.12\.3/$libversion/g" $PLIST
|
|
|
|
if test -n "$only"; then
|
|
# done!
|
|
exit;
|
|
fi
|
|
|
|
echo "curl version $curlversion"
|
|
echo "libcurl version $libversion"
|
|
echo "libcurl numerical $numeric"
|
|
echo "datestamp $datestamp"
|
|
|
|
findprog()
|
|
{
|
|
file="$1"
|
|
for part in `echo $PATH| tr ':' ' '`; do
|
|
path="$part/$file"
|
|
if [ -x "$path" ]; then
|
|
# there it is!
|
|
return 1
|
|
fi
|
|
done
|
|
|
|
# no such executable
|
|
return 0
|
|
}
|
|
|
|
############################################################################
|
|
#
|
|
# Enforce a rerun of configure (updates the VERSION)
|
|
#
|
|
|
|
echo "Re-running config.status"
|
|
./config.status --recheck >/dev/null
|
|
|
|
############################################################################
|
|
#
|
|
# automake is needed to run to make a non-GNU Makefile.in if Makefile.am has
|
|
# been modified.
|
|
#
|
|
|
|
if { findprog automake >/dev/null 2>/dev/null; } then
|
|
echo "- Could not find or run automake, I hope you know what you're doing!"
|
|
else
|
|
echo "Runs automake --include-deps"
|
|
automake --include-deps Makefile >/dev/null
|
|
fi
|
|
|
|
############################################################################
|
|
#
|
|
# Modify the man pages to display the version number and date.
|
|
#
|
|
|
|
echo "update man pages"
|
|
./scripts/updatemanpages.pl $version
|
|
|
|
# make the generated file newer than the man page
|
|
touch src/tool_hugehelp.c
|
|
|
|
############################################################################
|
|
#
|
|
# Update the IDE files
|
|
echo "make vc-ide"
|
|
make -s vc-ide
|
|
|
|
echo "produce CHANGES"
|
|
git log --pretty=fuller --no-color --date=short --decorate=full -1000 | ./scripts/log2changes.pl > CHANGES.dist
|
|
|
|
############################################################################
|
|
#
|
|
# Now run make dist to generate a tar.gz archive
|
|
#
|
|
|
|
echo "make dist"
|
|
targz="curl-$version.tar.gz"
|
|
make -sj dist VERSION=$version
|
|
|
|
############################################################################
|
|
#
|
|
# Now make a bz2 archive from the tar.gz original
|
|
#
|
|
|
|
bzip2="curl-$version.tar.bz2"
|
|
echo "Generating $bzip2"
|
|
gzip -dc $targz | bzip2 --best > $bzip2
|
|
|
|
############################################################################
|
|
#
|
|
# Now make an lzma archive from the tar.gz original
|
|
#
|
|
|
|
lzma="curl-$version.tar.lzma"
|
|
echo "Generating $lzma"
|
|
gzip -dc $targz | lzma --best - > $lzma
|
|
|
|
############################################################################
|
|
#
|
|
# Now make a zip archive from the tar.gz original
|
|
#
|
|
makezip ()
|
|
{
|
|
rm -rf $tempdir
|
|
mkdir $tempdir
|
|
cd $tempdir
|
|
gzip -dc ../$targz | tar -xf -
|
|
find . | zip $zip -@ >/dev/null
|
|
mv $zip ../
|
|
cd ..
|
|
rm -rf $tempdir
|
|
}
|
|
|
|
zip="curl-$version.zip"
|
|
echo "Generating $zip"
|
|
tempdir=".builddir"
|
|
makezip
|
|
|
|
echo "------------------"
|
|
echo "maketgz report:"
|
|
echo ""
|
|
ls -l $targz $bzip2 $zip $lzma
|
|
|
|
echo "Run this:"
|
|
echo "gpg -b -a $targz && gpg -b -a $bzip2 && gpg -b -a $zip && gpg -b -a $lzma"
|