mirror of
https://github.com/php/php-src.git
synced 2025-08-16 05:58:45 +02:00

The Autoconf macro AC_CONFIG_AUX_DIR can set the location of the
auxiliary build tools such as config.guess, config.sub, and bundled
libtool scripts and moves these bundled files from the root directory
to the build subdirectory.
Additionally some changes in this context or as a part of obsoletion:
- The LT_TARGETS variable in build/build2.mk file was once used as a part
of the Automake step. It's not used anymore and has been refactored to
separate makedist script directly.
- ltconfig is not used anymore since libtool 1.4+
cf8d1563c2
- phpize file locations for the config.guess, config.sub, and ltmain.sh
has been refactored accordingly.
209 lines
4.4 KiB
Bash
209 lines
4.4 KiB
Bash
#!/bin/sh
|
|
|
|
# Variable declaration
|
|
prefix='@prefix@'
|
|
datarootdir='@datarootdir@'
|
|
exec_prefix="`eval echo @exec_prefix@`"
|
|
phpdir="`eval echo @libdir@`/build"
|
|
includedir="`eval echo @includedir@`/php"
|
|
builddir="`pwd`"
|
|
SED="@SED@"
|
|
|
|
FILES_BUILD="scan_makefile_in.awk shtool libtool.m4 ax_check_compile_flag.m4 ax_gcc_func_attribute.m4 php_cxx_compile_stdcxx.m4 pkg.m4 config.guess config.sub ltmain.sh"
|
|
FILES="acinclude.m4 Makefile.global run-tests*.php"
|
|
CLEAN_FILES="$FILES *.o *.lo *.la .libs/ build/ modules/ install-sh \
|
|
mkinstalldirs missing config.nice configure configure.ac \
|
|
aclocal.m4 config.h config.h.in conftest* libtool config.cache autom4te.cache/ \
|
|
config.log config.status Makefile Makefile.fragments Makefile.objects confdefs.h \
|
|
run-tests*.php tests/*.diff tests/*.exp tests/*.log tests/*.out tests/*.php"
|
|
|
|
# function declaration
|
|
phpize_usage()
|
|
{
|
|
echo "Usage: $0 [--clean|--help|--version|-v]"
|
|
}
|
|
|
|
phpize_no_configm4()
|
|
{
|
|
if test $@ -eq 1; then
|
|
clean=" --clean"
|
|
fi
|
|
|
|
echo "Cannot find config.m4. "
|
|
echo "Make sure that you run '$0$clean' in the top level source directory of the module"
|
|
echo
|
|
}
|
|
|
|
phpize_clean()
|
|
{
|
|
echo "Cleaning.."
|
|
for i in $CLEAN_FILES; do
|
|
if test -f "$i"; then
|
|
rm -f $i
|
|
elif test -d "$i"; then
|
|
rm -rf $i
|
|
fi
|
|
done
|
|
}
|
|
|
|
phpize_check_configm4()
|
|
{
|
|
if test ! -r config.m4; then
|
|
phpize_no_configm4 $@
|
|
exit 1
|
|
fi
|
|
|
|
}
|
|
|
|
phpize_get_api_numbers()
|
|
{
|
|
# extracting API NOs:
|
|
PHP_API_VERSION=`grep '#define PHP_API_VERSION' $includedir/main/php.h|$SED 's/#define PHP_API_VERSION//'`
|
|
ZEND_MODULE_API_NO=`grep '#define ZEND_MODULE_API_NO' $includedir/Zend/zend_modules.h|$SED 's/#define ZEND_MODULE_API_NO//'`
|
|
ZEND_EXTENSION_API_NO=`grep '#define ZEND_EXTENSION_API_NO' $includedir/Zend/zend_extensions.h|$SED 's/#define ZEND_EXTENSION_API_NO//'`
|
|
}
|
|
|
|
phpize_print_api_numbers()
|
|
{
|
|
phpize_get_api_numbers
|
|
echo "Configuring for:"
|
|
echo "PHP Api Version: "$PHP_API_VERSION
|
|
echo "Zend Module Api No: "$ZEND_MODULE_API_NO
|
|
echo "Zend Extension Api No: "$ZEND_EXTENSION_API_NO
|
|
}
|
|
|
|
phpize_check_build_files()
|
|
{
|
|
if test ! -d "$phpdir"; then
|
|
cat <<EOF
|
|
Cannot find build files at '$phpdir'. Please check your PHP installation.
|
|
|
|
EOF
|
|
exit 1
|
|
fi
|
|
|
|
case "$phpdir" in
|
|
*\ * | *\ *)
|
|
cat <<EOF
|
|
Invalid source path '$phpdir'. Whitespace is not allowed in source path.
|
|
|
|
EOF
|
|
exit 1;;
|
|
esac
|
|
|
|
case "$builddir" in
|
|
*\ * | *\ *)
|
|
cat <<EOF
|
|
Invalid build path '$builddir'. Whitespace is not allowed in build path.
|
|
|
|
EOF
|
|
exit 1;;
|
|
esac
|
|
}
|
|
|
|
phpize_check_shtool()
|
|
{
|
|
test -x "$builddir/build/shtool" || chmod +x "$builddir/build/shtool"
|
|
|
|
if test ! -x "$builddir/build/shtool"; then
|
|
cat <<EOF
|
|
shtool at '$builddir/build/shtool' does not exist or is not executable.
|
|
Make sure that the file exists and is executable and then rerun this script.
|
|
|
|
EOF
|
|
exit 1
|
|
else
|
|
php_shtool=$builddir/build/shtool
|
|
fi
|
|
}
|
|
|
|
phpize_check_autotools()
|
|
{
|
|
test -z "$PHP_AUTOCONF" && PHP_AUTOCONF=autoconf
|
|
test -z "$PHP_AUTOHEADER" && PHP_AUTOHEADER=autoheader
|
|
|
|
if test ! -x "$PHP_AUTOCONF" && test ! -x "`$php_shtool path $PHP_AUTOCONF`"; then
|
|
cat <<EOF
|
|
Cannot find autoconf. Please check your autoconf installation and the
|
|
\$PHP_AUTOCONF environment variable. Then, rerun this script.
|
|
|
|
EOF
|
|
exit 1
|
|
fi
|
|
if test ! -x "$PHP_AUTOHEADER" && test ! -x "`$php_shtool path $PHP_AUTOHEADER`"; then
|
|
cat <<EOF
|
|
Cannot find autoheader. Please check your autoconf installation and the
|
|
\$PHP_AUTOHEADER environment variable. Then, rerun this script.
|
|
|
|
EOF
|
|
exit 1
|
|
fi
|
|
}
|
|
|
|
phpize_copy_files()
|
|
{
|
|
test -d build || mkdir build
|
|
|
|
(cd "$phpdir" && cp $FILES_BUILD "$builddir"/build)
|
|
(cd "$phpdir" && cp $FILES "$builddir")
|
|
(cd "$builddir" && cat acinclude.m4 ./build/libtool.m4 > aclocal.m4)
|
|
}
|
|
|
|
phpize_replace_prefix()
|
|
{
|
|
$SED \
|
|
-e "s#@prefix@#$prefix#" \
|
|
< "$phpdir/phpize.m4" > configure.ac
|
|
}
|
|
|
|
phpize_autotools()
|
|
{
|
|
$PHP_AUTOCONF || exit 1
|
|
$PHP_AUTOHEADER || exit 1
|
|
}
|
|
|
|
# Main script
|
|
|
|
case "$1" in
|
|
# Cleanup
|
|
--clean)
|
|
phpize_check_configm4 1
|
|
phpize_clean
|
|
exit 0
|
|
;;
|
|
|
|
# Usage
|
|
--help)
|
|
phpize_usage
|
|
exit 0
|
|
;;
|
|
|
|
# Version
|
|
--version|-v)
|
|
phpize_print_api_numbers
|
|
exit 0
|
|
;;
|
|
|
|
# Default
|
|
*)
|
|
phpize_check_configm4 0
|
|
|
|
phpize_check_build_files
|
|
|
|
phpize_print_api_numbers
|
|
|
|
phpize_copy_files
|
|
|
|
phpize_replace_prefix
|
|
|
|
touch install-sh mkinstalldirs missing
|
|
|
|
phpize_check_shtool
|
|
|
|
phpize_check_autotools
|
|
|
|
phpize_autotools
|
|
;;
|
|
esac
|
|
|
|
exit 0
|