diff options
author | Lorry Tar Creator <lorry-tar-importer@baserock.org> | 2013-03-14 05:42:27 +0000 |
---|---|---|
committer | <> | 2013-04-03 16:25:08 +0000 |
commit | c4dd7a1a684490673e25aaf4fabec5df138854c4 (patch) | |
tree | 4d57c44caae4480efff02b90b9be86f44bf25409 /scripts/phpize.in | |
download | php2-master.tar.gz |
Imported from /home/lorry/working-area/delta_php2/php-5.4.13.tar.bz2.HEADphp-5.4.13master
Diffstat (limited to 'scripts/phpize.in')
-rw-r--r-- | scripts/phpize.in | 209 |
1 files changed, 209 insertions, 0 deletions
diff --git a/scripts/phpize.in b/scripts/phpize.in new file mode 100644 index 0000000..43cd8d3 --- /dev/null +++ b/scripts/phpize.in @@ -0,0 +1,209 @@ +#!/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="mkdep.awk scan_makefile_in.awk shtool libtool.m4" +FILES="acinclude.m4 Makefile.global config.sub config.guess ltmain.sh run-tests*.php" +CLEAN_FILES="$FILES *.o *.lo *.la .deps .libs/ build/ include/ modules/ install-sh \ + mkinstalldirs missing config.nice config.sub config.guess configure configure.in \ + aclocal.m4 config.h config.h.in conftest* ltmain.sh 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.in +} + +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 |