BASH   51

phpize

Guest on 16th May 2022 01:57:03 AM

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

Raw Paste


Login or Register to edit or fork this paste. It's free.