mirror of
https://github.com/php/php-src.git
synced 2024-11-23 01:44:06 +08:00
215 lines
4.7 KiB
Bash
215 lines
4.7 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="php.m4 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 Makefile.global gen_stub.php"
|
|
FILES="run-tests*.php"
|
|
CLEAN_FILES="$FILES *.o *.lo *.la .libs/ build/ modules/ \
|
|
config.nice configure configure.ac \
|
|
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_MINOR_VERSION=`grep '#define PHP_MINOR_VERSION' $includedir/main/php_version.h|$SED 's/#define PHP_MINOR_VERSION //'`
|
|
PHP_MAJOR_VERSION=`grep '#define PHP_MAJOR_VERSION' $includedir/main/php_version.h|$SED 's/#define PHP_MAJOR_VERSION//'`
|
|
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 Version: ${PHP_MAJOR_VERSION}.${PHP_MINOR_VERSION}"
|
|
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")
|
|
}
|
|
|
|
phpize_replace_prefix()
|
|
{
|
|
$SED \
|
|
-e "s#@prefix@#$prefix#" \
|
|
< "$phpdir/phpize.m4" > configure.ac
|
|
}
|
|
|
|
phpize_autotools()
|
|
{
|
|
# Remove aclocal.m4 if present. It is automatically included by autoconf but
|
|
# not used by the PHP build system since PHP 7.4.
|
|
rm -f aclocal.m4
|
|
|
|
$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
|
|
|
|
phpize_check_shtool
|
|
|
|
phpize_check_autotools
|
|
|
|
phpize_autotools
|
|
;;
|
|
esac
|
|
|
|
exit 0
|