#!/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 # # _ # # where is the package name and the CVS module # and 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 -. 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 # # Written by Stig Bakken 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 " >&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