summaryrefslogtreecommitdiff
path: root/makedist
diff options
context:
space:
mode:
Diffstat (limited to 'makedist')
-rwxr-xr-xmakedist126
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