diff options
Diffstat (limited to 'makedist')
-rwxr-xr-x | makedist | 126 |
1 files changed, 126 insertions, 0 deletions
diff --git a/makedist b/makedist new file mode 100755 index 0000000000..889cad6553 --- /dev/null +++ b/makedist @@ -0,0 +1,126 @@ +#!/bin/sh +# +# Distribution generator for CVS based packages. +# To work, this script needs a consistent tagging of all releases. +# Each release of a package should have a tag of the form +# +# <package>_<version> +# +# where <package> is the package name and the CVS module +# and <version> s the version number with underscores instead of dots. +# +# For example: cvs tag php_3_0a1 +# +# The distribution ends up in a .tar.gz file that contains the distribution +# in a directory called <package>-<version>. The distribution contains all +# directories from the CVS module except the one called "nodist", but only +# the files INSTALL, README and config* are included. +# +# Since you can no longer set the CVS password via an env variable, you +# need to have previously done a cvs login for the server and user id +# this script uses so it will have an entry in your ~/.cvspasswd file. +# +# Usage: makedist <package> <version> +# +# Written by Stig Bakken <ssb@guardian.no> 1997-05-28. +# +# $Id$ +# + +CVSROOT=:pserver:cvsread@cvs.php.net:/repository +export CVSROOT + +if echo '\c' | grep -s c >/dev/null 2>&1 +then + ECHO_N="echo -n" + ECHO_C="" +else + ECHO_N="echo" + ECHO_C='\c' +fi + +if test "$#" != "2"; then + echo "Usage: makedist <package> <version>" >&2 + exit 1 +fi + +PKG=$1 ; shift +VER=$1 ; shift + +OLDPWD=`pwd` + +# the destination .tar.gz file +ARCHIVE=$OLDPWD/$PKG-$VER.tar.gz + +# temporary directory used to check out files from CVS +TMPDIR=$OLDPWD/cvstmp-$PKG-$VER + +# version part of the CVS release tag +CVSVER=`echo $VER | sed -e 's/\./_/g'` + +# CVS release tag +CVSTAG=${PKG}_$CVSVER + +# should become "php3" +CVSMOD=`cat CVS/Repository | sed -e 's!^/[^/]*/!!'` + +if test ! -d $TMPDIR; then + mkdir -p $TMPDIR || exit 2 +fi + +cd $TMPDIR || exit 3 + +$ECHO_N "makedist: exporting tag '$CVSTAG' from '$CVSMOD'...$ECHO_C" +cvs -Q export -r $CVSTAG $CVSMOD || exit 4 +echo "" + +cd $CVSMOD || exit 5 + +INC="" + +# remove CVS stuff... +find . \( \( -name CVS -type d \) -o -name .cvsignore \) -exec rm -rf {} \; + +for file in *; do + case $file in + $PKG-$VER|web_update);; # ignore these + *) INC="$INC $file";; # include the rest + esac +done + +# generate some files so people don't need bison, flex and autoconf +# to install +set -x +autoconf +bison -p php -v -d language-parser.y +flex -Pphp -olanguage-scanner.c -i language-scanner.lex +bison -p cfg -v -d configuration-parser.y +flex -Pcfg -oconfiguration-scanner.c -i configuration-scanner.lex +cd convertor +flex -i -Pphp -olanguage-scanner.c language-scanner.lex +bison -p php -v -d language-parser.y +cd .. + +#perl -i -p -e 's/\r\n/\n/' *.dsw *.dsp +set +x + +INC="$INC \ +configuration-scanner.c \ +configuration-parser.tab.c configuration-parser.tab.h \ +language-scanner.c \ +language-parser.tab.c language-parser.tab.h \ +configure" + +mkdir $PKG-$VER || exit 6 +mv $INC $PKG-$VER || exit 7 + +$ECHO_N "makedist: making gzipped tar archive...$ECHO_C" +tar czf $ARCHIVE $PKG-$VER || exit 8 +echo "" + +$ECHO_N "makedist: cleaning up...$ECHO_C" +cd $OLDPWD +rm -rf $TMPDIR || exit 9 +echo "" + +exit 0 |