mirror of
https://github.com/php/php-src.git
synced 2024-11-24 02:15:04 +08:00
127 lines
2.9 KiB
Bash
Executable File
127 lines
2.9 KiB
Bash
Executable File
#!/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
|