| #! /bin/sh |
| # Script to build release-archives with |
| # |
| |
| echo "LIB version number?" |
| read version |
| |
| libversion="$version" |
| |
| # |
| # Now we have a section to get the major, minor and patch number from the |
| # full version string. We create a single hexadecimal number from it '0xMMmmpp' |
| # |
| perl='$a=<STDIN>;@p=split("\\.",$a);for(0..2){printf STDOUT ("%02x",$p[0+$_]);}'; |
| |
| numeric=`echo $libversion | perl -e "$perl"` |
| |
| echo "CURL version number?" |
| read curlversion |
| |
| HEADER=include/curl/curl.h |
| CHEADER=src/version.h |
| |
| # Replace version number in header file: |
| sed -e 's/^#define LIBCURL_VERSION .*/#define LIBCURL_VERSION "'$libversion'"/g' \ |
| -e 's/^#define LIBCURL_VERSION_NUM .*/#define LIBCURL_VERSION_NUM 0x'$numeric'/g' \ |
| $HEADER >$HEADER.new |
| |
| # Save old header file |
| cp -p $HEADER $HEADER.old |
| |
| # Make new header: |
| mv $HEADER.new $HEADER |
| |
| # Replace version number in header file: |
| sed 's/#define CURL_VERSION.*/#define CURL_VERSION "'$curlversion'"/g' $CHEADER >$CHEADER.new |
| |
| # Save old header file |
| cp -p $CHEADER $CHEADER.old |
| |
| # Make new header: |
| mv $CHEADER.new $CHEADER |
| |
| 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 |
| } |
| |
| ############################################################################ |
| # |
| # If we have autoconf we can just as well update configure.in to contain our |
| # brand new version number: |
| # |
| |
| if { findprog autoconf >/dev/null 2>/dev/null; } then |
| echo "- No autoconf found, we leave configure as it is" |
| else |
| # Replace version number in configure.in file: |
| |
| CONF="configure.in" |
| |
| sed 's/^AM_INIT_AUTOMAKE.*/AM_INIT_AUTOMAKE(curl,"'$version'")/g' $CONF >$CONF.new |
| |
| # Save old file |
| cp -p $CONF $CONF.old |
| |
| # Make new configure.in |
| mv $CONF.new $CONF |
| |
| # Update the configure script |
| echo "Runs autoconf" |
| autoconf |
| fi |
| |
| ############################################################################ |
| # |
| # 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 |
| fi |
| |
| ############################################################################ |
| # |
| # Now run make first to make the file dates decent and make sure that it |
| # compiles just before release! |
| # |
| |
| make |
| |
| # get current dir |
| dir=`pwd` |
| |
| # Get basename |
| orig=`basename $dir` |
| |
| # Get the left part of the dash (-) |
| new=`echo $orig | cut -d- -f1` |
| |
| # Build new directory name |
| n=$new-$version; |
| |
| # Tell the world what we're doing |
| echo "Copying files into distribution archive"; |
| |
| if [ -r $n ]; then |
| echo "Directory already exists!" |
| exit |
| fi |
| |
| # Create the new dir |
| mkdir $n |
| |
| # Copy all relevant files, with path and permissions! |
| tar -cf - `cat FILES` | (cd $n; tar -xBpf -) |
| |
| # Create the distribution root Makefile from Makefile.dist |
| cp -p Makefile.dist $n/Makefile |
| |
| ############################################################################ |
| # |
| # Replace @SHELL@ with /bin/sh in the Makefile.in files! |
| # |
| echo "Replace @SHELL@ with /bin/sh in the Makefile.in files" |
| temp=/tmp/curl$$ |
| for file in Makefile.in lib/Makefile.in src/Makefile.in; do |
| in="$n/$file" |
| sed "s:@SHELL@:/bin/sh:g" $in >$temp |
| cp $temp $in |
| done |
| rm -rf $temp |
| |
| # Tell the world what we're doing |
| echo "creates $n.tar.gz"; |
| |
| # Make a tar archive of it all |
| tar -cvf $n.tar $n |
| |
| # gzip the archive |
| gzip $n.tar |
| |
| # Make it world readable |
| chmod a+r $n.tar.gz ; |
| |
| # Delete the temp dir |
| rm -rf $n |