mirror of
https://github.com/php/php-src.git
synced 2024-12-02 06:13:40 +08:00
0b77132507
* There are now -I directives for the absolute path of php4, php4/libzend and the builddir for the Apache module, so we can #include any php/Zend header. * Rename config.h to php_config.h
912 lines
26 KiB
Bash
912 lines
26 KiB
Bash
dnl $Id$ -*- sh -*-
|
|
dnl Process this file with autoconf to produce a configure script.
|
|
|
|
|
|
|
|
divert(0)
|
|
AC_INIT(main.c)
|
|
recurse=yes
|
|
for arg in $@; do
|
|
case $arg in
|
|
## This is to prevent "./config.status --recheck" from
|
|
## running configure in libzend again.
|
|
--no-recursion) recurse=no;;
|
|
--enable-thread-safety) threadsafe=yes;;
|
|
*) ;;
|
|
esac
|
|
done
|
|
|
|
if test "$recurse" = "yes"; then
|
|
cwd=`pwd`
|
|
(set -x; cd $srcdir/libzend; ./configure --cache-file=$cwd/config.cache $@)
|
|
if test "$threadsafe" = "yes"; then
|
|
(set -x; cd $srcdir/TSRM; ./configure --cache-file=$cwd/config.cache $@)
|
|
fi
|
|
fi
|
|
|
|
dnl ## Diversion 1 is the initial checking of OS features, programs,
|
|
dnl ## libraries and so on.
|
|
|
|
dnl ## In diversion 2 we check for compile-time options to the PHP
|
|
dnl ## core and how to deal with different system dependencies. This
|
|
dnl ## includes what regex library is used and whether debugging or short
|
|
dnl ## tags are enabled, and the default behaviour of php3.ini options.
|
|
dnl ## This is also where an SAPI interface is selected (choosing between
|
|
dnl ## Apache module, CGI etc.)
|
|
|
|
dnl ## In diversion 3 we check which extensions should be compiled.
|
|
dnl ## All of these are normally in the extension directories.
|
|
|
|
dnl ## Diversion 4 is the last one. Here we generate files and clean up.
|
|
|
|
divert(1)
|
|
|
|
dnl ## This is where the version number is changed from now on!
|
|
AM_INIT_AUTOMAKE(php, 4.0pa1)
|
|
|
|
|
|
|
|
PHP_VERSION=$VERSION
|
|
echo "#define PHP_VERSION \"$PHP_VERSION\"" > php_version.h.new
|
|
cmp php_version.h.new php_version.h >/dev/null
|
|
if test $? -ne 0 ; then
|
|
rm -f php_version.h && mv php_version.h.new php_version.h && \
|
|
echo 'Updated php_version.h'
|
|
else
|
|
rm -f php_version.h.new
|
|
fi
|
|
AC_SUBST(PHP_VERSION)
|
|
|
|
AM_CONFIG_HEADER(php_config.h)
|
|
AM_MAINTAINER_MODE
|
|
|
|
dnl We want this one before the checks, so the checks can modify CFLAGS.
|
|
test -z "$CFLAGS" && auto_cflags=1
|
|
|
|
dnl Checks for programs.
|
|
AC_PROG_YACC
|
|
if test "$YACC" != "bison -y"; then
|
|
AC_MSG_WARN(You will need bison if you want to regenerate the PHP parsers.)
|
|
else
|
|
AC_MSG_CHECKING(bison version)
|
|
set `$YACC --version| sed -e 's/^GNU Bison version //' -e 's/\./ /'`
|
|
if test "$1" = "1" -a "$2" -lt "25"; then
|
|
AC_MSG_WARN(You will need bison 1.25 if you want to regenerate the PHP parsers (found $1.$2).)
|
|
fi
|
|
AC_MSG_RESULT($1.$2 (ok))
|
|
fi
|
|
|
|
dnl ## there has to be a better way...
|
|
dnl## OLDLIBS=$LIBS; LIBS=""
|
|
AC_PROG_CC
|
|
dnl## LIBS=$OLDLIBS
|
|
|
|
AC_PROG_RANLIB
|
|
AC_PROG_CC_C_O
|
|
AC_PATH_PROG(PERL_PATH, perl)
|
|
|
|
dnl Ugly hack to get around a problem with gcc on AIX.
|
|
if test "$CC" = "gcc" -a "$ac_cv_prog_cc_g" = "yes" -a \
|
|
"`uname -sv`" = "AIX 4"; then
|
|
CFLAGS=`echo $CFLAGS | sed -e 's/-g//'`
|
|
fi
|
|
|
|
dnl check for -R, etc. switch
|
|
AC_MSG_CHECKING(if compiler supports -R)
|
|
AC_CACHE_VAL(php_cv_cc_dashr,[
|
|
SAVE_LIBS="${LIBS}"
|
|
LIBS="-R /usr/lib ${LIBS}"
|
|
AC_TRY_LINK([], [], php_cv_cc_dashr=yes, php_cv_cc_dashr=no)
|
|
LIBS="${SAVE_LIBS}"])
|
|
AC_MSG_RESULT($php_cv_cc_dashr)
|
|
if test $php_cv_cc_dashr = "yes"; then
|
|
ld_runpath_switch="-R"
|
|
apxs_runpath_switch="-Wl,-R'"
|
|
else
|
|
AC_MSG_CHECKING([if compiler supports -Wl,-rpath,])
|
|
AC_CACHE_VAL(php_cv_cc_rpath,[
|
|
SAVE_LIBS="${LIBS}"
|
|
LIBS="-Wl,-rpath,/usr/lib ${LIBS}"
|
|
AC_TRY_LINK([], [], php_cv_cc_rpath=yes, php_cv_cc_rpath=no)
|
|
LIBS="${SAVE_LIBS}"])
|
|
AC_MSG_RESULT($php_cv_cc_rpath)
|
|
if test $php_cv_cc_rpath = "yes"; then
|
|
ld_runpath_switch="-Wl,-rpath,"
|
|
apxs_runpath_switch="-Wl,'-rpath "
|
|
else
|
|
dnl something innocuous
|
|
ld_runpath_switch="-L"
|
|
apxs_runpath_switch="-L'"
|
|
fi
|
|
fi
|
|
|
|
|
|
dnl Check compiler support for -rdynamic
|
|
AC_MSG_CHECKING(if compiler supports -rdynamic)
|
|
AC_CACHE_VAL(php_cc_rdynamic,[
|
|
SAVE_LIBS="${LIBS}"
|
|
LIBS="-rdynamic ${LIBS}"
|
|
AC_TRY_LINK([], [], php_cc_rdynamic=yes, php_cc_rdynamic=no)
|
|
LIBS="${SAVE_LIBS}"])
|
|
AC_MSG_RESULT($php_cc_rdynamic)
|
|
if test $php_cc_rdynamic = "yes"; then
|
|
AC_CHECK_CC_OPTION(rdynamic)
|
|
fi
|
|
if test $php_cc_rdynamic = "yes"; then
|
|
LDFLAGS="${LDFLAGS} -rdynamic"
|
|
RDYNAMIC_LFLAGS="-rdynamic"
|
|
else
|
|
RDYNAMIC_LFLAGS=""
|
|
fi
|
|
AC_SUBST(RDYNAMIC_LFLAGS)
|
|
|
|
dnl AC_PROG_INSTALL
|
|
AC_PATH_PROG(PROG_SENDMAIL, sendmail, /usr/lib/sendmail, $PATH /usr/bin /usr/sbin /usr/etc /etc /usr/ucblib)
|
|
if test -n "$PROG_SENDMAIL"; then
|
|
AC_DEFINE(HAVE_SENDMAIL)
|
|
fi
|
|
|
|
dnl
|
|
dnl Check for /usr/pkg/{lib,include} which is where NetBSD puts binary
|
|
dnl and source packages. This should be harmless on other OSs.
|
|
dnl
|
|
if test -d /usr/pkg/include -a -d /usr/pkg/lib ; then
|
|
CFLAGS="$CFLAGS -I/usr/pkg/include"
|
|
LDFLAGS="$LDFLAGS -L/usr/pkg/lib"
|
|
fi
|
|
|
|
INCLUDES=""
|
|
AC_SUBST(INCLUDES)
|
|
|
|
AC_CHECK_LIB(nsl, gethostname, [
|
|
LIBS="-lnsl $LIBS"
|
|
AC_DEFINE(HAVE_LIBNSL) ], [])
|
|
|
|
AC_CHECK_LIB(c, socket, [:], [
|
|
AC_CHECK_LIB(socket, socket, [
|
|
LIBS="-lsocket $LIBS"
|
|
AC_DEFINE(HAVE_LIBSOCKET) ], []) ])
|
|
|
|
AC_CHECK_LIB(c, gethostbyaddr, [:], [
|
|
AC_CHECK_LIB(nsl, gethostbyaddr, [
|
|
LIBS="-lnsl $LIBS"
|
|
AC_DEFINE(HAVE_LIBNSL) ], []) ])
|
|
|
|
AC_CHECK_LIB(c, crypt, [:], [
|
|
AC_CHECK_LIB(crypt, crypt, [
|
|
LIBS="-lcrypt $LIBS"
|
|
AC_DEFINE(HAVE_LIBCRYPT) ], []) ])
|
|
|
|
dnl The sin may be in a library which need not be specifed
|
|
dnl as well as res_search resides in libsocket
|
|
AC_CHECK_LIB(c, sin, [:], [
|
|
AC_CHECK_LIB(m, sin) ])
|
|
|
|
dnl The res_search may be in libsocket as well, and if it is
|
|
dnl make sure to check for dn_skipname in libresolv, or if res_search
|
|
dnl is in neither of these libs, still check for dn_skipname in libresolv
|
|
AC_CHECK_LIB(socket, res_search, [
|
|
AC_CHECK_LIB(resolv, dn_skipname)
|
|
AC_CHECK_LIB(resolv, __dn_skipname)
|
|
LIBS="$LIBS -lsocket"
|
|
AC_DEFINE(HAVE_LIBSOCKET) ], [
|
|
AC_CHECK_LIB(resolv, res_search, [
|
|
LIBS="$LIBS -lresolv"
|
|
AC_DEFINE(HAVE_LIBRESOLV)
|
|
], [
|
|
AC_CHECK_LIB(resolv, dn_skipname)
|
|
AC_CHECK_LIB(resolv, __dn_skipname)
|
|
])
|
|
])
|
|
|
|
dnl Checks for header files.
|
|
AC_HEADER_STDC
|
|
|
|
dnl In QNX opendir resides in libc but dirent.h is still required
|
|
if test "`uname -s 2>/dev/null`" != "QNX"; then
|
|
AC_HEADER_DIRENT
|
|
else
|
|
AC_CHECK_HEADERS(dirent.h)
|
|
fi
|
|
AC_MISSING_FCLOSE_DECL
|
|
dnl QNX requires unix.h to allow functions in libunix to work properly
|
|
AC_CHECK_HEADERS(fcntl.h unistd.h crypt.h sys/file.h memory.h pwd.h grp.h sys/socket.h sys/wait.h syslog.h string.h sys/varargs.h stdarg.h sys/time.h signal.h netinet/in.h dlfcn.h limits.h sys/types.h unix.h arpa/inet.h)
|
|
|
|
dnl Checks for typedefs, structures, and compiler characteristics.
|
|
AC_STRUCT_TM
|
|
AC_STRUCT_TIMEZONE
|
|
|
|
AC_CACHE_CHECK([for tm_gmtoff in struct tm], ac_cv_struct_tm_gmtoff,
|
|
[AC_TRY_COMPILE([#include <sys/types.h>
|
|
#include <$ac_cv_struct_tm>], [struct tm tm; tm.tm_gmtoff;],
|
|
ac_cv_struct_tm_gmtoff=yes, ac_cv_struct_tm_gmtoff=no)])
|
|
|
|
if test "$ac_cv_struct_tm_gmtoff" = yes; then
|
|
AC_DEFINE(HAVE_TM_GMTOFF)
|
|
fi
|
|
|
|
AC_CACHE_CHECK(for struct flock,php_struct_flock,
|
|
AC_TRY_COMPILE([
|
|
#include <unistd.h>
|
|
#include <fcntl.h>
|
|
],
|
|
[struct flock x;],
|
|
[
|
|
php_struct_flock=yes
|
|
],[
|
|
php_struct_flock=no
|
|
])
|
|
)
|
|
if test "$php_struct_flock" = "yes" ; then
|
|
AC_DEFINE(HAVE_STRUCT_FLOCK, 1)
|
|
else
|
|
AC_DEFINE(HAVE_STRUCT_FLOCK, 0)
|
|
fi
|
|
|
|
dnl Check for members of the stat structure
|
|
AC_STRUCT_ST_BLKSIZE
|
|
dnl AC_STRUCT_ST_BLOCKS will screw QNX because fileblocks.o does not exists
|
|
dnl The WARNING_LEVEL required because cc in QNX hates -w option without an argument
|
|
if test "`uname -s 2>/dev/null`" != "QNX"; then
|
|
AC_STRUCT_ST_BLOCKS
|
|
else
|
|
AC_MSG_WARN(warnings level for cc set to 0)
|
|
WARNING_LEVEL=0
|
|
AC_SUBST(WARNING_LEVEL)
|
|
fi
|
|
AC_STRUCT_ST_RDEV
|
|
|
|
dnl Checks for types
|
|
AC_TYPE_SIZE_T
|
|
AC_TYPE_UID_T
|
|
dnl This is required for QNX and may be some BSD derived systems
|
|
AC_CHECK_TYPE( uint, unsigned int )
|
|
AC_CHECK_TYPE( ulong, unsigned long )
|
|
|
|
dnl Checks for library functions.
|
|
AC_FUNC_VPRINTF
|
|
AC_CHECK_FUNCS(memcpy memmove strdup strerror strcasecmp strstr flock lockf putenv tempnam usleep setlocale gettimeofday setvbuf srand48 lrand48 srandom random link symlink regcomp getlogin cuserid vsnprintf snprintf gcvt utime crypt rint unsetenv strftime setsockopt tzset shutdown inet_aton)
|
|
AC_FUNC_UTIME_NULL
|
|
AC_FUNC_ALLOCA
|
|
dnl## OLDLIBS=$LIBS; LIBS=""
|
|
AC_BROKEN_SPRINTF
|
|
dnl## LIBS=$OLDLIBS
|
|
AC_REPLACE_FUNCS(getopt)
|
|
|
|
dnl AIX keeps in_addr_t in /usr/include/netinet/in.h
|
|
dnl AC_MSG_CHECKING(for in_addr_t)
|
|
AC_CACHE_VAL(ac_cv_type_$1,
|
|
[AC_EGREP_CPP(dnl
|
|
changequote(<<,>>)dnl
|
|
<<in_addr_t[^a-zA-Z_0-9]>>dnl
|
|
changequote([,]), [#include <sys/types.h>
|
|
#if STDC_HEADERS
|
|
#include <stdlib.h>
|
|
#include <stddef.h>
|
|
#endif
|
|
#ifdef HAVE_NETINET_IN_H
|
|
#include <netinet/in.h>
|
|
#endif], ac_cv_type_in_addr_t=yes, ac_cv_type_in_addr_t=no)])dnl
|
|
|
|
dnl AC_MSG_RESULT($ac_cv_type_in_addr_t)
|
|
if test $ac_cv_type_in_addr_t = no; then
|
|
AC_DEFINE(in_addr_t, u_int)
|
|
fi
|
|
|
|
divert(2)
|
|
|
|
AC_MSG_CHECKING(whether to use bundled regex library)
|
|
AC_ARG_WITH(system-regex,
|
|
[ --with-system-regex Do not use the bundled regex library],
|
|
[
|
|
REGEX_LIB=
|
|
HSREGEX=no
|
|
AC_MSG_RESULT(no)
|
|
AC_DEFINE(REGEX,0)
|
|
],[
|
|
REGEX_LIB=regex/libregex.a
|
|
HSREGEX=yes
|
|
AC_MSG_RESULT(yes)
|
|
AC_DEFINE(HSREGEX)
|
|
AC_DEFINE(REGEX,1)
|
|
])
|
|
AC_SUBST(REGEX_LIB)
|
|
AC_SUBST(HSREGEX)
|
|
|
|
AC_MSG_CHECKING(for Apache module support via DSO through APXS)
|
|
AC_ARG_WITH(apxs,
|
|
[ --with-apxs[=FILE] Build shared Apache module. FILE is the optional
|
|
pathname to the Apache apxs tool; defaults to "apxs".
|
|
(This option needs Perl installed)],
|
|
[
|
|
if test "$withval" = "yes"; then
|
|
withval=apxs
|
|
fi
|
|
APXS="$withval"
|
|
APXS_LDFLAGS="@SYBASE_LFLAGS@ @SYBASE_LIBS@ @SYBASE_CT_LFLAGS@ @SYBASE_CT_LIBS@"
|
|
APACHE_INCLUDE="-I`$APXS -q INCLUDEDIR`"
|
|
BINNAME=libphp3.so
|
|
INSTALL_IT="\$(APXS) -i -a -n php3 $BINNAME"
|
|
CFLAGS_SHLIB=`perl -V:cccdlflags | cut -d\' -f2`
|
|
LDFLAGS_SHLIB=`perl -V:lddlflags | cut -d\' -f2`
|
|
LDFLAGS_SHLIB_EXPORT=`perl -V:ccdlflags | cut -d\' -f2`
|
|
PHP_LIBS=
|
|
STRONGHOLD=
|
|
INCLUDES="$INCLUDES $APACHE_INCLUDE"
|
|
AC_DEFINE(APACHE)
|
|
AC_SUBST(APXS)
|
|
AC_SUBST(APXS_LDFLAGS)
|
|
AC_SUBST(BINNAME)
|
|
AC_SUBST(INSTALL_IT)
|
|
AC_SUBST(PHP_LIBS)
|
|
AC_SUBST(APACHE_INCLUDE)
|
|
AC_DEFINE(HAVE_AP_CONFIG_H)
|
|
AC_DEFINE(HAVE_AP_COMPAT_H)
|
|
AC_MSG_RESULT(yes)
|
|
],[
|
|
AC_MSG_RESULT(no)
|
|
])
|
|
|
|
|
|
APACHE_INSTALL_FILES="$srcdir/mod_php3.* libphp3.module"
|
|
|
|
abs_srcdir=`(cd $srcdir; pwd)`
|
|
abs_builddir=`pwd`
|
|
AC_SUBST(abs_srcdir)
|
|
AC_SUBST(abs_builddir)
|
|
|
|
AC_MSG_CHECKING(for Apache module support via DSO through APACI)
|
|
AC_ARG_WITH(shared-apache,
|
|
[ --with-shared-apache[=DIR] Build shared Apache module. DIR is the top-level
|
|
Apache build directory, defaults to /usr/local/etc/httpd.
|
|
(This option needs Perl installed)],
|
|
[
|
|
if test "$withval" = "yes"; then
|
|
# Apache's default directory
|
|
withval=/usr/local/etc/httpd
|
|
fi
|
|
if test "$withval" != "no"; then
|
|
if test -f $withval/src/include/httpd.h; then
|
|
APACHE_INCLUDE="-I$withval/src/include -I$withval/src/os/unix"
|
|
APACHE_TARGET=$withval/src/modules/php3
|
|
if test ! -d $APACHE_TARGET; then
|
|
mkdir $APACHE_TARGET
|
|
fi
|
|
CFLAGS_SHLIB=`perl -V:cccdlflags | cut -d\' -f2`
|
|
LDFLAGS_SHLIB=`perl -V:lddlflags | cut -d\' -f2`
|
|
LDFLAGS_SHLIB_EXPORT=`perl -V:ccdlflags | cut -d\' -f2`
|
|
PHP_LIBS=
|
|
BINNAME=libmodphp3-so.a
|
|
INSTALL_IT="mkdir -p $APACHE_TARGET; cp $BINNAME $APACHE_INSTALL_FILES $APACHE_TARGET; cp apMakefile.tmpl $APACHE_TARGET/Makefile.tmpl; cp apMakefile.libdir $APACHE_TARGET/Makefile.libdir"
|
|
AC_DEFINE(APACHE)
|
|
AC_MSG_RESULT(yes - Shared Apache 1.3.x)
|
|
STRONGHOLD=
|
|
if test -f $withval/src/include/ap_config.h; then
|
|
AC_DEFINE(HAVE_AP_CONFIG_H)
|
|
fi
|
|
if test -f $withval/src/include/ap_compat.h; then
|
|
AC_DEFINE(HAVE_AP_COMPAT_H)
|
|
if test ! -f $withval/src/include/ap_config_auto.h; then
|
|
AC_MSG_ERROR(Please run Apache's configure or src/Configure program once and try again)
|
|
fi
|
|
else
|
|
if test -f $withval/src/include/compat.h; then
|
|
AC_DEFINE(HAVE_OLD_COMPAT_H)
|
|
fi
|
|
fi
|
|
else
|
|
AC_MSG_RESULT(no)
|
|
AC_MSG_ERROR(Invalid Apache directory - unable to find httpd.h under $withval/src/include)
|
|
fi
|
|
fi
|
|
INCLUDES="$INCLUDES $APACHE_INCLUDE"
|
|
AC_SUBST(APACHE_INCLUDE)
|
|
AC_SUBST(APACHE_TARGET)
|
|
AC_SUBST(INSTALL_IT)
|
|
AC_SUBST(BINNAME)
|
|
AC_SUBST(PHP_LIBS)
|
|
],[
|
|
AC_MSG_RESULT(no)
|
|
])
|
|
|
|
|
|
|
|
if test "$BINNAME" != "libmodphp3-so.a"; then
|
|
if test "$BINNAME" != "libphp3.so"; then
|
|
AC_MSG_CHECKING(for Apache module support)
|
|
AC_ARG_WITH(apache,
|
|
[ --with-apache[=DIR] Build Apache module. DIR is the top-level Apache
|
|
build directory, defaults to /usr/local/etc/httpd.],
|
|
[
|
|
if test "$withval" = "yes"; then
|
|
# Apache's default directory
|
|
withval=/usr/local/etc/httpd
|
|
fi
|
|
if test "$withval" != "no"; then
|
|
# For Apache 1.2.x
|
|
if test -f $withval/src/httpd.h; then
|
|
APACHE_INCLUDE=-I$withval/src
|
|
APACHE_TARGET=$withval/src
|
|
BINNAME=libphp3.a
|
|
INSTALL_IT="mkdir -p $APACHE_TARGET; cp $BINNAME $APACHE_INSTALL_FILES $APACHE_TARGET"
|
|
PHP_LIBS="-L. -lphp3"
|
|
AC_DEFINE(APACHE)
|
|
AC_MSG_RESULT(yes - Apache 1.2.x)
|
|
STRONGHOLD=
|
|
if test -f $withval/src/ap_config.h; then
|
|
AC_DEFINE(HAVE_AP_CONFIG_H)
|
|
fi
|
|
# For Apache 1.3.x
|
|
elif test -f $withval/src/main/httpd.h; then
|
|
APACHE_INCLUDE="-I$withval/src/main -I$withval/src/os/unix -I$withval/src/ap"
|
|
APACHE_TARGET=$withval/src/modules/php3
|
|
if test ! -d $APACHE_TARGET; then
|
|
mkdir $APACHE_TARGET
|
|
fi
|
|
BINNAME=libmodphp3.a
|
|
INSTALL_IT="mkdir -p $APACHE_TARGET; cp $BINNAME $APACHE_INSTALL_FILES $APACHE_TARGET; cp $srcdir/apMakefile.tmpl $APACHE_TARGET/Makefile.tmpl; cp $srcdir/apMakefile.libdir $APACHE_TARGET/Makefile.libdir"
|
|
PHP_LIBS="-Lmodules/php3 -L../modules/php3 -L../../modules/php3 -lmodphp3"
|
|
AC_DEFINE(APACHE)
|
|
AC_MSG_RESULT(yes - Apache 1.3.x)
|
|
STRONGHOLD=
|
|
if test -f $withval/src/include/ap_config.h; then
|
|
AC_DEFINE(HAVE_AP_CONFIG_H)
|
|
fi
|
|
if test -f $withval/src/include/ap_compat.h; then
|
|
AC_DEFINE(HAVE_AP_COMPAT_H)
|
|
if test ! -f $withval/src/include/ap_config_auto.h; then
|
|
AC_MSG_ERROR(Please run Apache's configure or src/Configure program once and try again)
|
|
fi
|
|
else
|
|
if test -f $withval/src/include/compat.h; then
|
|
AC_DEFINE(HAVE_OLD_COMPAT_H)
|
|
fi
|
|
fi
|
|
# Also for Apache 1.3.x
|
|
elif test -f $withval/src/include/httpd.h; then
|
|
APACHE_INCLUDE="-I$withval/src/include -I$withval/src/os/unix"
|
|
APACHE_TARGET=$withval/src/modules/php3
|
|
if test ! -d $APACHE_TARGET; then
|
|
mkdir $APACHE_TARGET
|
|
fi
|
|
BINNAME=libmodphp3.a
|
|
PHP_LIBS="-Lmodules/php3 -L../modules/php3 -L../../modules/php3 -lmodphp3"
|
|
INSTALL_IT="mkdir -p $APACHE_TARGET; cp $BINNAME $APACHE_INSTALL_FILES $APACHE_TARGET; cp $srcdir/apMakefile.tmpl $APACHE_TARGET/Makefile.tmpl; cp $srcdir/apMakefile.libdir $APACHE_TARGET/Makefile.libdir"
|
|
AC_DEFINE(APACHE)
|
|
AC_MSG_RESULT(yes - Apache 1.3.x)
|
|
STRONGHOLD=
|
|
if test -f $withval/src/include/ap_config.h; then
|
|
AC_DEFINE(HAVE_AP_CONFIG_H)
|
|
fi
|
|
if test -f $withval/src/include/ap_compat.h; then
|
|
AC_DEFINE(HAVE_AP_COMPAT_H)
|
|
if test ! -f $withval/src/include/ap_config_auto.h; then
|
|
AC_MSG_ERROR(Please run Apache's configure or src/Configure program once and try again)
|
|
fi
|
|
else
|
|
if test -f $withval/src/include/compat.h; then
|
|
AC_DEFINE(HAVE_OLD_COMPAT_H)
|
|
fi
|
|
fi
|
|
# For StrongHold 2.2
|
|
elif test -f $withval/apache/httpd.h; then
|
|
APACHE_INCLUDE=-"I$withval/apache -I$withval/ssl/include"
|
|
APACHE_TARGET=$withval/apache
|
|
BINNAME=libmodphp3.a
|
|
PHP_LIBS="-Lmodules/php3 -L../modules/php3 -L../../modules/php3 -lmodphp3"
|
|
INSTALL_IT="mkdir -p $APACHE_TARGET; cp $BINNAME $APACHE_INSTALL_FILES $APACHE_TARGET"
|
|
STRONGHOLD=-DSTRONGHOLD=1
|
|
AC_DEFINE(APACHE)
|
|
AC_MSG_RESULT(yes - StrongHold)
|
|
if test -f $withval/apache/ap_config.h; then
|
|
AC_DEFINE(HAVE_AP_CONFIG_H)
|
|
fi
|
|
if test -f $withval/src/ap_compat.h; then
|
|
AC_DEFINE(HAVE_AP_COMPAT_H)
|
|
if test ! -f $withval/src/include/ap_config_auto.h; then
|
|
AC_MSG_ERROR(Please run Apache's configure or src/Configure program once and try again)
|
|
fi
|
|
else
|
|
if test -f $withval/src/compat.h; then
|
|
AC_DEFINE(HAVE_OLD_COMPAT_H)
|
|
fi
|
|
fi
|
|
else
|
|
AC_MSG_RESULT(no)
|
|
AC_MSG_ERROR(Invalid Apache directory - unable to find httpd.h under $withval)
|
|
fi
|
|
else
|
|
AC_MSG_RESULT(no)
|
|
BINNAME=php
|
|
INSTALL_IT="cp $BINNAME \$(bindir)"
|
|
fi
|
|
],[
|
|
AC_MSG_RESULT(no)
|
|
BINNAME=php
|
|
INSTALL_IT="cp $BINNAME \$(bindir)"
|
|
])
|
|
INCLUDES="$INCLUDES $APACHE_INCLUDE"
|
|
dnl## AC_SUBST(APACHE_INCLUDE)
|
|
AC_SUBST(APACHE_TARGET)
|
|
AC_SUBST(INSTALL_IT)
|
|
AC_SUBST(BINNAME)
|
|
AC_SUBST(STRONGHOLD)
|
|
AC_SUBST(PHP_LIBS)
|
|
fi
|
|
fi
|
|
|
|
AC_MSG_CHECKING(for mod_charset compatibility option)
|
|
AC_ARG_WITH(mod_charset,
|
|
[ --with-mod_charset Enable transfer tables for mod_charset (Rus Apache).],
|
|
[
|
|
AC_MSG_RESULT(yes)
|
|
AC_DEFINE(USE_TRANSFER_TABLES)
|
|
],[
|
|
AC_MSG_RESULT(no)
|
|
])
|
|
|
|
AC_MSG_CHECKING(for fhttpd module support)
|
|
AC_ARG_WITH(fhttpd,
|
|
[ --with-fhttpd[=DIR] Build fhttpd module. DIR is the fhttpd sources
|
|
directory, defaults to /usr/local/src/fhttpd.],
|
|
[
|
|
if test "$withval" = "yes"; then
|
|
# fhttpd source directory
|
|
withval=/usr/local/src/fhttpd
|
|
fi
|
|
if test "$withval" != "no"; then
|
|
# For fhttpd 0.3.x
|
|
if test -f $withval/servproc.h; then
|
|
FHTTPD_INCLUDE=-I$withval/
|
|
FHTTPD_LIB=$withval/servproc.o
|
|
FHTTPD_TARGET=$withval/
|
|
BINNAME=php
|
|
AC_DEFINE(FHTTPD)
|
|
AC_MSG_RESULT(yes - fhttpd 0.3.x)
|
|
else
|
|
AC_MSG_RESULT(no)
|
|
AC_MSG_ERROR(Invalid fhttpd directory - unable to find servproc.h under $withval)
|
|
fi
|
|
else
|
|
AC_MSG_RESULT(no)
|
|
fi
|
|
],[
|
|
AC_MSG_RESULT(no)
|
|
])
|
|
INCLUDES="$INCLUDES $FHTTPD_INCLUDE"
|
|
dnl## AC_SUBST(FHTTPD_INCLUDE)
|
|
AC_SUBST(FHTTPD_LIB)
|
|
AC_SUBST(FHTTPD_TARGET)
|
|
|
|
|
|
AC_MSG_CHECKING(whether to use a configuration file)
|
|
AC_ARG_WITH(config-file-path,
|
|
[ --with-config-file-path=PATH Sets the path in which to look for php3.ini
|
|
defaults to /usr/local/lib],
|
|
[
|
|
if test "$withval" = "yes"; then
|
|
AC_DEFINE_UNQUOTED(CONFIGURATION_FILE_PATH, "/usr/local/lib")
|
|
AC_DEFINE(USE_CONFIG_FILE, 1)
|
|
AC_MSG_RESULT(yes)
|
|
else
|
|
if test "$withval" != "no"; then
|
|
AC_DEFINE_UNQUOTED(CONFIGURATION_FILE_PATH, "$withval")
|
|
AC_DEFINE(USE_CONFIG_FILE, 1)
|
|
AC_MSG_RESULT(yes)
|
|
else
|
|
AC_DEFINE(CONFIGURATION_FILE_PATH, 0)
|
|
AC_DEFINE(USE_CONFIG_FILE, 0)
|
|
AC_MSG_RESULT(no)
|
|
fi
|
|
fi
|
|
],[
|
|
AC_DEFINE_UNQUOTED(CONFIGURATION_FILE_PATH, "/usr/local/lib")
|
|
AC_DEFINE(USE_CONFIG_FILE, 1)
|
|
AC_MSG_RESULT(yes)
|
|
])
|
|
|
|
|
|
AC_MSG_CHECKING(whether to include debugging symbols)
|
|
AC_ARG_ENABLE(debug,
|
|
[ --enable-debug Compile with debugging symbols],
|
|
[
|
|
if test "$enableval" = "yes"; then
|
|
AC_MSG_RESULT(yes)
|
|
AC_DEFINE(DEBUG,1)
|
|
PHP_DEBUG=1
|
|
DEBUG_CFLAGS="-g"
|
|
test -n "$GCC" && DEBUG_CFLAGS="$DEBUG_CFLAGS -Wall"
|
|
test -n "$GCC" && test "$USE_MAINTAINER_MODE" = "yes" && \
|
|
DEBUG_CFLAGS="$DEBUG_CFLAGS -Wmissing-prototypes -Wstrict-prototypes -Wmissing-declarations"
|
|
else
|
|
AC_MSG_RESULT(no)
|
|
AC_DEFINE(DEBUG,0)
|
|
PHP_DEBUG=0
|
|
DEBUG_CFLAGS=""
|
|
fi
|
|
],[
|
|
AC_MSG_RESULT(no)
|
|
AC_DEFINE(DEBUG,0)
|
|
PHP_DEBUG=0
|
|
DEBUG_CFLAGS=""
|
|
])
|
|
AC_SUBST(DEBUG_CFLAGS)
|
|
AC_SUBST(PHP_DEBUG)
|
|
|
|
|
|
AC_MSG_CHECKING(whether to enable safe mode by default)
|
|
AC_ARG_ENABLE(safe-mode,
|
|
[ --enable-safe-mode Enable safe mode by default.],
|
|
[
|
|
if test "$enableval" = "yes"; then
|
|
AC_DEFINE(PHP_SAFE_MODE, 1)
|
|
AC_MSG_RESULT(yes)
|
|
else
|
|
AC_DEFINE(PHP_SAFE_MODE, 0)
|
|
AC_MSG_RESULT(no)
|
|
fi
|
|
],[
|
|
AC_DEFINE(PHP_SAFE_MODE, 0)
|
|
AC_MSG_RESULT(no)
|
|
])
|
|
|
|
|
|
AC_MSG_CHECKING(for safe mode exec dir)
|
|
AC_ARG_WITH(exec-dir,
|
|
[ --with-exec-dir[=DIR] Only allow executables in DIR when in safe mode
|
|
defaults to /usr/local/php/bin],
|
|
[
|
|
if test "$withval" != "no"; then
|
|
if test "$withval" = "yes"; then
|
|
AC_DEFINE(PHP_SAFE_MODE_EXEC_DIR,"/usr/local/php/bin")
|
|
AC_MSG_RESULT(/usr/local/php/bin)
|
|
else
|
|
AC_DEFINE_UNQUOTED(PHP_SAFE_MODE_EXEC_DIR,"$withval")
|
|
AC_MSG_RESULT($withval)
|
|
fi
|
|
else
|
|
AC_DEFINE(PHP_SAFE_MODE_EXEC_DIR,"/usr/local/php/bin")
|
|
AC_MSG_RESULT(/usr/local/php/bin)
|
|
fi
|
|
],[
|
|
AC_DEFINE(PHP_SAFE_MODE_EXEC_DIR,"/usr/local/php/bin")
|
|
AC_MSG_RESULT(/usr/local/php/bin)
|
|
])
|
|
|
|
|
|
AC_MSG_CHECKING(whether to enable track_vars variables by default)
|
|
AC_ARG_ENABLE(track-vars,
|
|
[ --enable-track-vars Enable GET/POST/Cookie track variables by default.],
|
|
[
|
|
if test "$enableval" = "yes"; then
|
|
AC_DEFINE(PHP_TRACK_VARS, 1)
|
|
AC_MSG_RESULT(yes)
|
|
else
|
|
AC_DEFINE(PHP_TRACK_VARS, 0)
|
|
AC_MSG_RESULT(no)
|
|
fi
|
|
],[
|
|
AC_DEFINE(PHP_TRACK_VARS, 0)
|
|
AC_MSG_RESULT(no)
|
|
])
|
|
|
|
|
|
AC_MSG_CHECKING(whether to enable magic quotes by default)
|
|
AC_ARG_ENABLE(magic-quotes,
|
|
[ --enable-magic-quotes Enable magic quotes by default.],
|
|
[
|
|
if test "$enableval" = "yes"; then
|
|
AC_DEFINE(MAGIC_QUOTES, 1)
|
|
AC_MSG_RESULT(yes)
|
|
else
|
|
AC_DEFINE(MAGIC_QUOTES, 0)
|
|
AC_MSG_RESULT(no)
|
|
fi
|
|
],[
|
|
AC_DEFINE(MAGIC_QUOTES, 0)
|
|
AC_MSG_RESULT(no)
|
|
])
|
|
|
|
|
|
AC_MSG_CHECKING(whether to build PHP thread-safe)
|
|
AC_ARG_ENABLE(thread-safety,
|
|
[ --enable-thread-safety Whether to build PHP thread-safe.],[
|
|
TSRM_LIB='TSRM/libtsrm.a'
|
|
TSRM_DIR=TSRM
|
|
AC_DEFINE(ZTS)
|
|
],[
|
|
TSRM_DIR=""
|
|
])
|
|
AC_SUBST(TSRM_DIR)
|
|
AC_SUBST(TSRM_LIB)
|
|
|
|
dnl AC_MSG_CHECKING(whether to enable PHP RPC support)
|
|
dnl AC_ARG_ENABLE(php-rpc,
|
|
dnl [ --enable-php-rpc Compile with PHP RPC support.],
|
|
dnl [
|
|
dnl if test "$enableval" = "yes"; then
|
|
dnl AC_DEFINE(PHP_RPC, 1)
|
|
dnl AC_MSG_RESULT(yes)
|
|
dnl else
|
|
dnl AC_DEFINE(PHP_RPC, 0)
|
|
dnl AC_MSG_RESULT(no)
|
|
dnl fi
|
|
dnl ],[
|
|
dnl AC_DEFINE(PHP_RPC, 0)
|
|
dnl AC_MSG_RESULT(no)
|
|
dnl ])
|
|
|
|
if test "$BINNAME" = "php"; then
|
|
AC_MSG_CHECKING(whether to force Apache CGI redirect)
|
|
AC_ARG_ENABLE(force-cgi-redirect,
|
|
[ --enable-force-cgi-redirect Enable the security check for internal server
|
|
redirects. You should use this if you are
|
|
running the CGI version with Apache. ],
|
|
[
|
|
if test "$enableval" = "yes"; then
|
|
AC_DEFINE(FORCE_CGI_REDIRECT, 1)
|
|
AC_MSG_RESULT(yes)
|
|
REDIRECT=1
|
|
else
|
|
AC_DEFINE(FORCE_CGI_REDIRECT, 0)
|
|
AC_MSG_RESULT(no)
|
|
REDIRECT=0
|
|
fi
|
|
],[
|
|
AC_DEFINE(FORCE_CGI_REDIRECT, 0)
|
|
AC_MSG_RESULT(no)
|
|
REDIRECT=0
|
|
])
|
|
|
|
AC_MSG_CHECKING(whether to discard path_info + path_translated)
|
|
AC_ARG_ENABLE(discard_path,
|
|
[ --enable-discard-path If this is enabled, the PHP CGI binary
|
|
can safely be placed outside of the
|
|
web tree and people will not be able
|
|
to circumvent .htaccess security. ],
|
|
[
|
|
if test "$enableval" = "yes"; then
|
|
AC_DEFINE(DISCARD_PATH, 1)
|
|
AC_MSG_RESULT(yes)
|
|
DISCARD_PATH=1
|
|
else
|
|
AC_DEFINE(DISCARD_PATH, 0)
|
|
AC_MSG_RESULT(no)
|
|
DISCARD_PATH=0
|
|
fi
|
|
],[
|
|
AC_DEFINE(DISCARD_PATH, 0)
|
|
AC_MSG_RESULT(no)
|
|
DISCARD_PATH=0
|
|
])
|
|
fi
|
|
|
|
AC_MSG_CHECKING(whether to enable a memory limit)
|
|
AC_ARG_ENABLE(memory-limit,
|
|
[ --enable-memory-limit Compile with memory limit support. ],
|
|
[
|
|
if test "$enableval" = "yes"; then
|
|
AC_DEFINE(MEMORY_LIMIT, 1)
|
|
AC_MSG_RESULT(yes)
|
|
else
|
|
AC_DEFINE(MEMORY_LIMIT, 0)
|
|
AC_MSG_RESULT(no)
|
|
fi
|
|
],[
|
|
AC_DEFINE(MEMORY_LIMIT, 0)
|
|
AC_MSG_RESULT(no)
|
|
])
|
|
|
|
AC_MSG_CHECKING(whether to enable short tags by default)
|
|
AC_ARG_ENABLE(short-tags,
|
|
[ --disable-short-tags Disable the short-form <? start tag by default.],
|
|
[
|
|
if test "$enableval" = "no"; then
|
|
AC_DEFINE(DEFAULT_SHORT_OPEN_TAG, 0)
|
|
AC_MSG_RESULT(no)
|
|
else
|
|
AC_DEFINE(DEFAULT_SHORT_OPEN_TAG, 1)
|
|
AC_MSG_RESULT(yes)
|
|
fi
|
|
],[
|
|
AC_DEFINE(DEFAULT_SHORT_OPEN_TAG, 1)
|
|
AC_MSG_RESULT(yes)
|
|
])
|
|
|
|
AC_MSG_CHECKING(whether to enable the URL-aware fopen wrapper)
|
|
AC_ARG_ENABLE(url-fopen-wrapper,
|
|
[ --disable-url-fopen-wrapper Disable the URL-aware fopen wrapper that allows
|
|
accessing files via http or ftp.],
|
|
[
|
|
if test "$enableval" = "yes"; then
|
|
AC_DEFINE(PHP3_URL_FOPEN, 1)
|
|
AC_MSG_RESULT(yes)
|
|
else
|
|
AC_DEFINE(PHP3_URL_FOPEN, 0)
|
|
AC_MSG_RESULT(no)
|
|
fi
|
|
],[
|
|
AC_DEFINE(PHP3_URL_FOPEN, 1)
|
|
AC_MSG_RESULT(yes)
|
|
])
|
|
|
|
|
|
divert(3)
|
|
|
|
AC_SUBST(EXTRA_LIBS)
|
|
|
|
# reading config stubs
|
|
esyscmd(./scripts/config-stubs)
|
|
|
|
|
|
divert(4)
|
|
|
|
dnl If we're using gcc and the user hasn't specified CFLAGS, add -O2.
|
|
test -n "$auto_cflags" && test -n "$GCC" && CFLAGS="$CFLAGS -O2"
|
|
|
|
dnl If we're using cc on HP-UX, add the -Ae to CFLAGS
|
|
if test -n "$auto_cflags" && test "`uname -s 2>/dev/null`" = "HP-UX"; then
|
|
test -n "$GCC" || CFLAGS="-Ae $CFLAGS"
|
|
fi
|
|
|
|
dnl *** Commented out - generates slow code and consumes a lot of
|
|
dnl *** resources during compilation - we need to figure out how
|
|
dnl *** to supply it only when absolutely necessary
|
|
dnl If we are using gcc add -fpic to make dl() work on some platforms
|
|
dnl test -n "$GCC" && CFLAGS="$CFLAGS -fpic"
|
|
|
|
AC_SUBST(CFLAGS)
|
|
AC_SUBST(PROG_SENDMAIL)
|
|
AC_SUBST(CFLAGS_SHLIB)
|
|
AC_SUBST(LDFLAGS_SHLIB)
|
|
AC_SUBST(LDFLAGS_SHLIB_EXPORT)
|
|
|
|
PHP_BUILD_DATE=`date '+%Y-%m-%d'`
|
|
AC_SUBST(PHP_BUILD_DATE)
|
|
AC_DEFINE_UNQUOTED(PHP_BUILD_DATE,"$PHP_BUILD_DATE")
|
|
PHP_UNAME=`uname -a`
|
|
AC_DEFINE_UNQUOTED(PHP_UNAME,"$PHP_UNAME")
|
|
PHP_OS=`uname`
|
|
AC_DEFINE_UNQUOTED(PHP_OS,"$PHP_OS")
|
|
|
|
AC_OUTPUT(Makefile libphp3.module
|
|
scripts/mkextlib regex/Makefile ext/Makefile
|
|
@@EXT_MAKEFILES@@ build-defs.h, [
|
|
], [
|
|
|
|
chmod +x scripts/mkextlib
|
|
# Hacking while airborne considered harmful.
|
|
#
|
|
echo "creating internal_functions.c"
|
|
extensions=\`grep '^s.@EXT_SUBDIRS@' \$0|sed -e 's/^.*@% *//' -e 's/%.*$//'\`
|
|
mv -f internal_functions.c internal_functions.c.old 2>/dev/null
|
|
sh $srcdir/genif.sh $srcdir/internal_functions.c.in $srcdir \$extensions > internal_functions.c
|
|
if cmp internal_functions.c.old internal_functions.c > /dev/null 2>&1; then
|
|
echo "internal_functions.c is unchanged"
|
|
mv internal_functions.c.old internal_functions.c
|
|
else
|
|
rm -f internal_functions.c.old
|
|
fi
|
|
|
|
|
|
dnl Warn about CGI version with no extra security options.
|
|
if test "$BINNAME" = "php"; then
|
|
if test "$REDIRECT" = "0"; then
|
|
if test "$DISCARD_PATH" = "0"; then
|
|
echo "WARNING: You will be compiling the CGI version of PHP without any"
|
|
echo " redirection checking. By putting this cgi binary somewhere"
|
|
echo " in your web space, users may be able to circumvent existing .htaccess"
|
|
echo " security by loading files directly through the parser. See"
|
|
echo " http://www.php.net/manual/config-security.php3 for more details."
|
|
fi
|
|
fi
|
|
fi
|
|
|
|
])
|
|
|
|
divert
|
|
|
|
# Local Variables:
|
|
# tab-width: 4
|
|
# End:
|