1PHP_ARG_WITH([apxs2],, 2 [AS_HELP_STRING([[--with-apxs2[=FILE]]], 3 [Build shared Apache 2 handler module. FILE is the optional pathname to 4 the Apache apxs tool [apxs]])], 5 [no], 6 [no]) 7 8AC_MSG_CHECKING([for Apache 2 handler module support via DSO through APXS]) 9 10if test "$PHP_APXS2" != "no"; then 11 if test "$PHP_APXS2" = "yes"; then 12 APXS=apxs 13 $APXS -q CFLAGS >/dev/null 2>&1 14 if test "$?" != "0" && test -x /usr/sbin/apxs; then 15 APXS=/usr/sbin/apxs 16 fi 17 else 18 PHP_EXPAND_PATH($PHP_APXS2, APXS) 19 fi 20 21 $APXS -q CFLAGS >/dev/null 2>&1 22 if test "$?" != "0"; then 23 AC_MSG_RESULT() 24 AC_MSG_RESULT() 25 AC_MSG_RESULT([Sorry, I cannot run apxs. Possible reasons follow:]) 26 AC_MSG_RESULT() 27 AC_MSG_RESULT([1. Perl is not installed]) 28 AC_MSG_RESULT([2. apxs was not found. Try to pass the path using --with-apxs2=/path/to/apxs]) 29 AC_MSG_RESULT([3. Apache was not built using --enable-so (the apxs usage page is displayed)]) 30 AC_MSG_RESULT() 31 AC_MSG_RESULT([The output of $APXS follows:]) 32 $APXS -q CFLAGS 33 AC_MSG_ERROR([Aborting]) 34 fi 35 36 APXS_INCLUDEDIR=`$APXS -q INCLUDEDIR` 37 APXS_BINDIR=`$APXS -q BINDIR` 38 APXS_HTTPD=`$APXS -q SBINDIR`/`$APXS -q TARGET` 39 APXS_CFLAGS=`$APXS -q CFLAGS` 40 APU_BINDIR=`$APXS -q APU_BINDIR` 41 APR_BINDIR=`$APXS -q APR_BINDIR` 42 43 dnl Pick up ap[ru]-N-config if using httpd >=2.1 44 APR_CONFIG=`$APXS -q APR_CONFIG 2>/dev/null || 45 echo $APR_BINDIR/apr-config` 46 APU_CONFIG=`$APXS -q APU_CONFIG 2>/dev/null || 47 echo $APU_BINDIR/apu-config` 48 49 APR_CFLAGS="`$APR_CONFIG --cppflags --includes`" 50 APU_CFLAGS="`$APU_CONFIG --includes`" 51 52 for flag in $APXS_CFLAGS; do 53 case $flag in 54 -D*) APACHE_CPPFLAGS="$APACHE_CPPFLAGS $flag";; 55 esac 56 done 57 58 APACHE_CFLAGS="$APACHE_CPPFLAGS -I$APXS_INCLUDEDIR $APR_CFLAGS $APU_CFLAGS -DZEND_ENABLE_STATIC_TSRMLS_CACHE=1" 59 60 dnl Test that we're trying to configure with apache 2.x 61 PHP_AP_EXTRACT_VERSION($APXS_HTTPD) 62 if test "$APACHE_VERSION" -lt 2000044; then 63 AC_MSG_ERROR([Please note that Apache version >= 2.0.44 is required]) 64 fi 65 66 APXS_LIBEXECDIR='$(INSTALL_ROOT)'`$APXS -q LIBEXECDIR` 67 if test -z `$APXS -q SYSCONFDIR`; then 68 INSTALL_IT="\$(mkinstalldirs) '$APXS_LIBEXECDIR' && \ 69 $APXS -S LIBEXECDIR='$APXS_LIBEXECDIR' \ 70 -i -n php" 71 else 72 APXS_SYSCONFDIR='$(INSTALL_ROOT)'`$APXS -q SYSCONFDIR` 73 INSTALL_IT="\$(mkinstalldirs) '$APXS_LIBEXECDIR' && \ 74 \$(mkinstalldirs) '$APXS_SYSCONFDIR' && \ 75 $APXS -S LIBEXECDIR='$APXS_LIBEXECDIR' \ 76 -S SYSCONFDIR='$APXS_SYSCONFDIR' \ 77 -i -a -n php" 78 fi 79 80 LIBPHP_CFLAGS="-shared" 81 PHP_SUBST(LIBPHP_CFLAGS) 82 83 case $host_alias in 84 *aix*) 85 EXTRA_LDFLAGS="$EXTRA_LDFLAGS -Wl,-brtl -Wl,-bI:$APXS_LIBEXECDIR/httpd.exp" 86 PHP_SELECT_SAPI(apache2handler, shared, mod_php.c sapi_apache2.c apache_config.c php_functions.c, $APACHE_CFLAGS) 87 INSTALL_IT="$INSTALL_IT $SAPI_LIBTOOL" 88 ;; 89 *darwin*) 90 dnl When using bundles on Darwin, we must resolve all symbols. However, the 91 dnl linker does not recursively look at the bundle loader and pull in its 92 dnl dependencies. Therefore, we must pull in the APR and APR-util libraries. 93 if test -x "$APR_CONFIG"; then 94 MH_BUNDLE_FLAGS="`$APR_CONFIG --ldflags --link-ld --libs`" 95 fi 96 if test -x "$APU_CONFIG"; then 97 MH_BUNDLE_FLAGS="`$APU_CONFIG --ldflags --link-ld --libs` $MH_BUNDLE_FLAGS" 98 fi 99 MH_BUNDLE_FLAGS="-bundle -bundle_loader $APXS_HTTPD $MH_BUNDLE_FLAGS" 100 PHP_SUBST(MH_BUNDLE_FLAGS) 101 PHP_SELECT_SAPI(apache2handler, bundle, mod_php.c sapi_apache2.c apache_config.c php_functions.c, $APACHE_CFLAGS) 102 SAPI_SHARED=libs/libphp.so 103 INSTALL_IT="$INSTALL_IT $SAPI_SHARED" 104 ;; 105 *) 106 PHP_SELECT_SAPI(apache2handler, shared, mod_php.c sapi_apache2.c apache_config.c php_functions.c, $APACHE_CFLAGS) 107 INSTALL_IT="$INSTALL_IT $SAPI_LIBTOOL" 108 ;; 109 esac 110 111 if test "$APACHE_VERSION" -lt 2004001; then 112 APXS_MPM=`$APXS -q MPM_NAME` 113 if test "$APXS_MPM" != "prefork" && test "$APXS_MPM" != "peruser" && test "$APXS_MPM" != "itk"; then 114 PHP_BUILD_THREAD_SAFE 115 fi 116 else 117 APACHE_THREADED_MPM=`$APXS_HTTPD -V 2>/dev/null | grep 'threaded:.*yes'` 118 if test -n "$APACHE_THREADED_MPM"; then 119 PHP_BUILD_THREAD_SAFE 120 fi 121 fi 122 AC_MSG_RESULT(yes) 123 PHP_SUBST(APXS) 124else 125 AC_MSG_RESULT(no) 126fi 127