mirror of
https://github.com/php/php-src.git
synced 2024-12-11 19:04:38 +08:00
7bc251058a
- PHP-specific changes are easier to maintain - it removes one dependency for users (i.e. GNU vs. FreeBSD ports) I have not removed the libtool check in buildconf, since libzend/TSRM still depend on a local version of libtool.
157 lines
5.0 KiB
Bash
Executable File
157 lines
5.0 KiB
Bash
Executable File
#!/bin/sh
|
|
|
|
supplied_flag=$1
|
|
|
|
# do some version checking for the tools we use
|
|
if test "$1" = "--force"; then
|
|
shift
|
|
# this is a posix correct "test -nt"
|
|
elif test "`ls -t buildconf buildconf.stamp 2>/dev/null |head -1`" != "buildconf"; then
|
|
:
|
|
else
|
|
echo "buildconf: checking installation..."
|
|
|
|
# autoconf 2.13 or newer
|
|
ac_version=`autoconf --version 2>/dev/null|head -1|sed -e 's/^[^0-9]*//' -e 's/[a-z]* *$//'`
|
|
if test "$ac_version" = ""; then
|
|
echo "buildconf: autoconf not found."
|
|
echo " You need autoconf version 2.13 or newer installed"
|
|
echo " to build PHP from CVS."
|
|
exit 1
|
|
fi
|
|
IFS=.; set $ac_version; IFS=' '
|
|
if test "$1" = "2" -a "$2" -lt "13" || test "$1" -lt "2"; then
|
|
echo "buildconf: autoconf version $ac_version found."
|
|
echo " You need autoconf version 2.13 or newer installed"
|
|
echo " to build PHP from CVS."
|
|
exit 1
|
|
else
|
|
echo "buildconf: autoconf version $ac_version (ok)"
|
|
fi
|
|
|
|
# automake 1.4 or newer
|
|
am_version=`automake --version 2>/dev/null|head -1|sed -e 's/^[^0-9]*//' -e 's/[a-z]* *$//'`
|
|
if test "$am_version" = ""; then
|
|
echo "buildconf: automake not found."
|
|
echo " You need automake version 1.4 or newer installed"
|
|
echo " to build PHP from CVS."
|
|
exit 1
|
|
fi
|
|
IFS=.; set $am_version; IFS=' '
|
|
if test "$1" = "1" -a "$2" -lt "4" || test "$1" -lt "1"; then
|
|
echo "buildconf: automake version $am_version found."
|
|
echo " You need automake version 1.4 or newer installed"
|
|
echo " to build PHP from CVS."
|
|
exit 1
|
|
else
|
|
echo "buildconf: automake version $am_version (ok)"
|
|
fi
|
|
|
|
# libtool 1.3.3 or newer
|
|
lt_pversion=`libtool --version 2>/dev/null|sed -e 's/^[^0-9]*//' -e 's/[- ].*//'`
|
|
if test "$lt_pversion" = ""; then
|
|
echo "buildconf: libtool not found."
|
|
echo " You need libtool version 1.3 or newer installed"
|
|
echo " to build PHP from CVS."
|
|
exit 1
|
|
fi
|
|
lt_version=`echo $lt_pversion|sed -e 's/\([a-z]*\)$/.\1/'`
|
|
IFS=.; set $lt_version; IFS=' '
|
|
if test "$1" -gt "1" || test "$2" -gt "3" || test "$2" = "3" -a "$3" -ge "3"
|
|
then
|
|
echo "buildconf: libtool version $lt_pversion (ok)"
|
|
else
|
|
echo "buildconf: libtool version $lt_pversion found."
|
|
echo " You need libtool version 1.3.3 or newer installed"
|
|
echo " to build PHP from CVS."
|
|
exit 1
|
|
fi
|
|
touch buildconf.stamp
|
|
fi
|
|
|
|
am_prefix=`which automake | sed -e 's#/[^/]*/[^/]*$##'`
|
|
lt_prefix=`which libtool | sed -e 's#/[^/]*/[^/]*$##'`
|
|
if test "$am_prefix" != "$lt_prefix"; then
|
|
echo "buildconf: WARNING: automake and libtool are installed in different"
|
|
echo " directories. This may cause aclocal to fail."
|
|
echo "buildconf: continuing anyway"
|
|
fi
|
|
|
|
if test "$supplied_flag" = "--copy"; then
|
|
automake_flags=--copy
|
|
fi
|
|
|
|
if test ! -d libzend; then
|
|
if test -d ../libzend; then
|
|
echo "buildconf: linking ../libzend to ./libzend"
|
|
ln -s ../libzend .
|
|
else
|
|
echo "buildconf: can not find libzend"
|
|
echo " libzend should be installed in . or .., how to fetch:"
|
|
echo ""
|
|
echo " cvs -d :pserver:cvsread@cvs.zend.com:/repository login"
|
|
echo " (password \"zend\")"
|
|
echo " cvs -d :pserver:cvsread@cvs.zend.com:/repository co libzend"
|
|
echo ""
|
|
exit 1
|
|
fi
|
|
fi
|
|
if test ! -d TSRM; then
|
|
if test -d ../TSRM; then
|
|
echo "buildconf: linking ../TSRM to ./TSRM"
|
|
ln -s ../TSRM .
|
|
else
|
|
echo "buildconf: can not find TSRM"
|
|
echo " TSRM should be installed in . or .., how to fetch:"
|
|
echo ""
|
|
echo " cvs -d :pserver:cvsread@cvs.zend.com:/repository login"
|
|
echo " (password \"zend\")"
|
|
echo " cvs -d :pserver:cvsread@cvs.zend.com:/repository co TSRM"
|
|
echo ""
|
|
exit 1
|
|
fi
|
|
fi
|
|
|
|
./scripts/preconfig
|
|
|
|
mv aclocal.m4 aclocal.m4.old 2>/dev/null
|
|
aclocal
|
|
if test "$?" != "0" -a "$am_prefix" != "$lt_prefix"; then
|
|
echo "buildconf: ERROR: aclocal failed, probably because automake and"
|
|
echo " libtool are installed with different prefixes;"
|
|
echo " automake is installed in $am_prefix, but libtool in $lt_prefix."
|
|
echo " Please re-install automake and/or libtool with a common prefix"
|
|
echo " and try again."
|
|
exit 1
|
|
fi
|
|
|
|
if cmp aclocal.m4.old aclocal.m4 > /dev/null 2>&1; then
|
|
echo "buildconf: keeping aclocal.m4"
|
|
mv aclocal.m4.old aclocal.m4
|
|
else
|
|
echo "buildconf: created or modified aclocal.m4"
|
|
fi
|
|
|
|
autoheader
|
|
|
|
# find all Makefile.ams
|
|
files="Makefile `find ext sapi regex -name Makefile.am | sed 's#\.am##' | tr '\n' ' '`"
|
|
|
|
# suppress stupid automake warning
|
|
automake --add-missing --include-deps $automake_flags $files 2>&1 | grep -v \$PHP_OUTPUT_FILES >&2
|
|
|
|
|
|
mv configure configure.old 2>/dev/null
|
|
autoconf
|
|
if cmp configure.old configure > /dev/null 2>&1; then
|
|
echo "buildconf: keeping configure"
|
|
mv configure.old configure
|
|
else
|
|
echo "buildconf: created or modified configure"
|
|
fi
|
|
|
|
if test "$supplied_flag" != "--local"; then
|
|
(cd libzend; ./buildconf $automake_flags libzend/)
|
|
(cd TSRM; ./buildconf $automake_flags TSRM/)
|
|
fi
|