1#!/bin/sh 2 3# Variable declaration 4prefix='@prefix@' 5exec_prefix="`eval echo @exec_prefix@`" 6phpdir="`eval echo @libdir@`/build" 7includedir="`eval echo @includedir@`/php" 8builddir="`pwd`" 9SED="@SED@" 10 11FILES_BUILD="mkdep.awk scan_makefile_in.awk shtool libtool.m4" 12FILES="acinclude.m4 Makefile.global config.sub config.guess ltmain.sh run-tests*.php" 13CLEAN_FILES="$FILES *.o *.lo *.la .deps .libs/ build/ include/ modules/ install-sh \ 14 mkinstalldirs missing config.nice config.sub config.guess configure configure.in \ 15 aclocal.m4 config.h config.h.in conftest* ltmain.sh libtool config.cache autom4te.cache/ \ 16 config.log config.status Makefile Makefile.fragments Makefile.objects confdefs.h \ 17 run-tests*.php tests/*.diff tests/*.exp tests/*.log tests/*.out tests/*.php" 18 19# function declaration 20phpize_usage() 21{ 22 echo "Usage: $0 [--clean|--help|--version|-v]" 23} 24 25phpize_no_configm4() 26{ 27 if test $@ -eq 1; then 28 clean=" --clean" 29 fi 30 31 echo "Cannot find config.m4. " 32 echo "Make sure that you run '$0$clean' in the top level source directory of the module" 33 echo 34} 35 36phpize_clean() 37{ 38 echo "Cleaning.." 39 for i in $CLEAN_FILES; do 40 if test -f "$i"; then 41 rm -f $i 42 elif test -d "$i"; then 43 rm -rf $i 44 fi 45 done 46} 47 48phpize_check_configm4() 49{ 50 if test ! -r config.m4; then 51 phpize_no_configm4 $@ 52 exit 1 53 fi 54 55} 56 57phpize_get_api_numbers() 58{ 59 # extracting API NOs: 60 PHP_API_VERSION=`grep '#define PHP_API_VERSION' $includedir/main/php.h|$SED 's/#define PHP_API_VERSION//'` 61 ZEND_MODULE_API_NO=`grep '#define ZEND_MODULE_API_NO' $includedir/Zend/zend_modules.h|$SED 's/#define ZEND_MODULE_API_NO//'` 62 ZEND_EXTENSION_API_NO=`grep '#define ZEND_EXTENSION_API_NO' $includedir/Zend/zend_extensions.h|$SED 's/#define ZEND_EXTENSION_API_NO//'` 63} 64 65phpize_print_api_numbers() 66{ 67 phpize_get_api_numbers 68 echo "Configuring for:" 69 echo "PHP Api Version: "$PHP_API_VERSION 70 echo "Zend Module Api No: "$ZEND_MODULE_API_NO 71 echo "Zend Extension Api No: "$ZEND_EXTENSION_API_NO 72} 73 74phpize_check_build_files() 75{ 76 if test ! -d "$phpdir"; then 77 cat <<EOF 78Cannot find build files at '$phpdir'. Please check your PHP installation. 79 80EOF 81 exit 1 82 fi 83 84 case "$phpdir" in 85 *\ * | *\ *) 86 cat <<EOF 87Invalid source path '$phpdir'. Whitespace is not allowed in source path. 88 89EOF 90 exit 1;; 91 esac 92 93 case "$builddir" in 94 *\ * | *\ *) 95 cat <<EOF 96Invalid build path '$builddir'. Whitespace is not allowed in build path. 97 98EOF 99 exit 1;; 100 esac 101} 102 103phpize_check_shtool() 104{ 105 test -x "$builddir/build/shtool" || chmod +x "$builddir/build/shtool" 106 107 if test ! -x "$builddir/build/shtool"; then 108 cat <<EOF 109shtool at '$builddir/build/shtool' does not exist or is not executable. 110Make sure that the file exists and is executable and then rerun this script. 111 112EOF 113 exit 1 114 else 115 php_shtool=$builddir/build/shtool 116 fi 117} 118 119phpize_check_autotools() 120{ 121 test -z "$PHP_AUTOCONF" && PHP_AUTOCONF=autoconf 122 test -z "$PHP_AUTOHEADER" && PHP_AUTOHEADER=autoheader 123 124 if test ! -x "$PHP_AUTOCONF" && test ! -x "`$php_shtool path $PHP_AUTOCONF`"; then 125 cat <<EOF 126Cannot find autoconf. Please check your autoconf installation and the 127\$PHP_AUTOCONF environment variable. Then, rerun this script. 128 129EOF 130 exit 1 131 fi 132 if test ! -x "$PHP_AUTOHEADER" && test ! -x "`$php_shtool path $PHP_AUTOHEADER`"; then 133 cat <<EOF 134Cannot find autoheader. Please check your autoconf installation and the 135\$PHP_AUTOHEADER environment variable. Then, rerun this script. 136 137EOF 138 exit 1 139 fi 140} 141 142phpize_copy_files() 143{ 144 test -d build || mkdir build 145 146 (cd "$phpdir" && cp $FILES_BUILD "$builddir"/build) 147 (cd "$phpdir" && cp $FILES "$builddir") 148 (cd "$builddir" && cat acinclude.m4 ./build/libtool.m4 > aclocal.m4) 149} 150 151phpize_replace_prefix() 152{ 153 $SED \ 154 -e "s#@prefix@#$prefix#" \ 155 < "$phpdir/phpize.m4" > configure.in 156} 157 158phpize_autotools() 159{ 160 $PHP_AUTOCONF || exit 1 161 $PHP_AUTOHEADER || exit 1 162} 163 164# Main script 165 166case "$1" in 167 # Cleanup 168 --clean) 169 phpize_check_configm4 1 170 phpize_clean 171 exit 0 172 ;; 173 174 # Usage 175 --help) 176 phpize_usage 177 exit 0 178 ;; 179 180 # Version 181 --version|-v) 182 phpize_print_api_numbers 183 exit 0 184 ;; 185 186 # Default 187 *) 188 phpize_check_configm4 0 189 190 phpize_check_build_files 191 192 phpize_print_api_numbers 193 194 phpize_copy_files 195 196 phpize_replace_prefix 197 198 touch install-sh mkinstalldirs missing 199 200 phpize_check_shtool 201 202 phpize_check_autotools 203 204 phpize_autotools 205 ;; 206esac 207 208exit 0 209