mirror of
https://github.com/php/php-src.git
synced 2024-12-12 03:15:29 +08:00
03b717d4cc
Since PHP 5.3 flex lexer has been replaced with re2c. Commit0f9e2b1753
made PHP_PROG_LEX macro still available for BC. In commitdf6bd506d4
it was updated. Since this macro is entirely not used in PHP source code anymore from PHP 5.3 and up, this patch removes it together with some old traces of warnings suppression and comments.
156 lines
4.0 KiB
Bash
Executable File
156 lines
4.0 KiB
Bash
Executable File
#!/bin/sh
|
|
#
|
|
# Distribution generator for git
|
|
#
|
|
# Usage: makedist version
|
|
# Example: makedist 5.4.1
|
|
# Example: makedist 5.3.5RC1
|
|
#
|
|
# To work, this script needs a consistent tagging of all releases.
|
|
# Each release of a package should have a tag of the form
|
|
#
|
|
# php-X.Y.Z[sub]
|
|
#
|
|
# The distribution ends up in a .tar.gz file that contains the distribution
|
|
# in a directory called php-<version>.
|
|
# A .tar.bz2 file is also created.
|
|
#
|
|
# Written by Stig Bakken <ssb@guardian.no> 1997-05-28.
|
|
# Adapted to git by Stanislav Malyshev <stas@php.net>
|
|
|
|
|
|
if test "$#" != "1"; then
|
|
echo "Usage: makedist <version>" >&2
|
|
exit 1
|
|
fi
|
|
|
|
VER=$1 ; shift
|
|
|
|
old_IFS="$IFS"
|
|
IFS=.
|
|
eval set `bison --version| grep 'GNU Bison' | cut -d ' ' -f 4 | sed -e 's/\./ /g'`
|
|
if test "${1}" -lt "3" -o "${1}" = "3" -a "${2}" -eq "0" -a "${3}" -lt "2"; then
|
|
echo "You will need bison >= 3.0.2 if you want to regenerate the Zend parser (found ${1}.${2}.${3})."
|
|
exit 2
|
|
fi
|
|
eval set `re2c --version| grep 're2c' | cut -d ' ' -f 2 | sed -e 's/\./ /g'`
|
|
if test "${2}" -lt "13" -o "${2}" -eq "13" -a "${3}" -lt "5"; then
|
|
echo "You will need re2c >= 0.13.5 if you want to regenerate the Zend scanner (found ${1}.${2}.${3})."
|
|
exit 2
|
|
fi
|
|
IFS="$old_IFS"
|
|
|
|
if test "x$PHPROOT" = "x"; then
|
|
PHPROOT=git@git.php.net:php-src.git;
|
|
fi
|
|
|
|
LT_TARGETS='ltconfig ltmain.sh config.guess config.sub'
|
|
|
|
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
|
|
|
|
MY_OLDPWD=`pwd`
|
|
|
|
# the destination .tar.gz file
|
|
ARCHIVE=$MY_OLDPWD/php-$VER.tar
|
|
|
|
# temporary directory used to check out files from SVN
|
|
DIR=php-$VER
|
|
DIRPATH=$MY_OLDPWD/$DIR
|
|
|
|
if test -d "$DIRPATH"; then
|
|
echo "The directory $DIR"
|
|
echo "already exists, rename or remove it and run makedist again."
|
|
exit 1
|
|
fi
|
|
|
|
# Export PHP
|
|
$ECHO_N "makedist: exporting tag 'php-$VER' from '$PHPROOT'...$ECHO_C"
|
|
git archive --format=tar --remote=$PHPROOT refs/tags/php-$VER --prefix=php-$VER/ | (cd $MY_OLDPWD; tar xvf -) || exit 4
|
|
echo ""
|
|
|
|
cd $DIR || exit 5
|
|
|
|
# hide away our own versions of libtool-generated files
|
|
for i in $LT_TARGETS; do
|
|
if test -f "$i"; then
|
|
mv $i $i.bak
|
|
cp $i.bak $i
|
|
fi
|
|
done
|
|
|
|
# generate some files so people don't need bison, re2c and autoconf
|
|
# to install
|
|
set -x
|
|
./buildconf --copy --force
|
|
|
|
# remove buildmk.stamp. Otherwise, buildcheck.sh might not be run,
|
|
# when a user runs buildconf in the distribution.
|
|
rm -f buildmk.stamp
|
|
|
|
./genfiles
|
|
|
|
# now restore our versions of libtool-generated files
|
|
for i in $LT_TARGETS; do
|
|
test -f "$i" && mv $i.bak $i
|
|
done
|
|
|
|
# removing junk files
|
|
find . -name \*.orig -print0 | xargs -0 rm
|
|
rm -fr autom4te.cache/
|
|
|
|
# touching everything to be packaged
|
|
find $MY_OLDPWD/php-$VER -exec touch -c {} \;
|
|
|
|
# tweak zendparse to be exported through ZEND_API
|
|
# NOTE this has to be revisited once bison supports foreign skeletons
|
|
# and that bison version is used. Read /usr/share/bison/README for more
|
|
sed -i 's,^int zendparse\(.*\),ZEND_API int zendparse\1,g' $MY_OLDPWD/php-$VER/Zend/zend_language_parser.c
|
|
sed -i 's,^int zendparse\(.*\),ZEND_API int zendparse\1,g' $MY_OLDPWD/php-$VER/Zend/zend_language_parser.h
|
|
sed -i 's,^#ifndef YYTOKENTYPE,#include "zend.h"\n#ifndef YYTOKENTYPE,g' $MY_OLDPWD/php-$VER/Zend/zend_language_parser.h
|
|
|
|
# download pear
|
|
$ECHO_N "makedist: Attempting to download PEAR's phar archive"
|
|
if test ! -x wget; then
|
|
wget https://pear.php.net/install-pear-nozlib.phar -nd -P pear/
|
|
if [ "x$?" != "x0" ]
|
|
then
|
|
$ECHO_N "Pear download failed";
|
|
exit 7
|
|
fi
|
|
else
|
|
$ECHO_N "Missing wget binary needed for pear download";
|
|
exit 7
|
|
fi
|
|
|
|
cd $MY_OLDPWD
|
|
$ECHO_N "makedist: making gzipped tar archive...$ECHO_C"
|
|
rm -f $ARCHIVE.gz
|
|
tar cf $ARCHIVE php-$VER || exit 8
|
|
gzip -9 $ARCHIVE || exit 9
|
|
echo ""
|
|
|
|
$ECHO_N "makedist: making bz2zipped tar archive...$ECHO_C"
|
|
rm -f $ARCHIVE.bz2
|
|
tar cf $ARCHIVE php-$VER || exit 10
|
|
bzip2 -9 $ARCHIVE || exit 11
|
|
echo ""
|
|
|
|
$ECHO_N "makedist: making xz2zipped tar archive...$ECHO_C"
|
|
rm -f $ARCHIVE.xz
|
|
tar cf $ARCHIVE php-$VER || exit 10
|
|
xz -9 $ARCHIVE || exit 12
|
|
echo ""
|
|
|
|
$ECHO_N "makedist: cleaning up...$ECHO_C"
|
|
rm -rf $DIRPATH || exit 13
|
|
echo ""
|
|
|
|
exit 0
|