mirror of
https://github.com/php/php-src.git
synced 2024-12-11 19:04:38 +08:00
981 lines
28 KiB
Bash
981 lines
28 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 "$with_shared_apache" != "no" && test -n "$with_shared_apache" ; then
|
|
echo ""
|
|
echo "ERROR: --with-shared-apache is not supported."
|
|
echo " Please read INSTALL.DSO for instructions on using APXS."
|
|
exit 1
|
|
fi
|
|
|
|
cwd=`pwd`
|
|
cachefile=$cwd/config.cache
|
|
|
|
if test "$recurse" = "yes"; then
|
|
(set -x; test -d libzend || mkdir libzend ; cd libzend; $cwd/$srcdir/libzend/configure --cache-file=$cachefile $@)
|
|
if test "$threadsafe" = "yes"; then
|
|
(set -x; test -d TSRM || mkdir TSRM; cd TSRM; $cwd/$srcdir/TSRM/configure --cache-file=$cachefile $@)
|
|
fi
|
|
(set -x; cd $srcdir; sh ltconfig --disable-static --enable-dlopen --cache-file=$cachefile ltmain.sh)
|
|
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 php.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.0B3-dev)
|
|
|
|
PHP_VERSION=$VERSION
|
|
echo "/* automatically generated by configure */" > php_version.h.new
|
|
echo "/* edit configure.in.in to change version number */" >> php_version.h.new
|
|
echo "#define PHP_VERSION \"$PHP_VERSION\"" >> php_version.h.new
|
|
cmp php_version.h.new php_version.h >/dev/null 2>&1
|
|
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 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 -D_HPUX_SOURCE"
|
|
fi
|
|
|
|
dnl Checks for programs.
|
|
AC_PROG_LIBTOOL
|
|
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)
|
|
oldIFS=$IFS; IFS=.
|
|
set `bison -V | sed -e 's/^GNU Bison version //'`
|
|
IFS=$oldIFS
|
|
if test "$1" = "1" -a "$2" -lt "25"; then
|
|
AC_MSG_WARN(Bison 1.25 or newer needed to regenerate 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_PROG_LN_S
|
|
AC_PATH_PROG(PERL_PATH, perl)
|
|
|
|
|
|
dnl Make flex scanners use const if they can, even if __STDC__ is not
|
|
dnl true, for compilers like Sun's that only set __STDC__ true in
|
|
dnl "limit-to-ANSI-standard" mode, not in "ANSI-compatible" mode
|
|
AC_C_CONST
|
|
if test "$ac_cv_c_const" = "yes" ; then
|
|
LEX_CFLAGS="-DYY_USE_CONST"
|
|
fi
|
|
AC_SUBST(LEX_CFLAGS)
|
|
|
|
dnl Hack to work around a Mac OS X cpp problem
|
|
dnl Known versions needing this workaround are 5.3 and 5.4
|
|
if test "$ac_cv_prog_gcc" = "yes" -a "`uname -s`" = "Rhapsody"; then
|
|
CPPFLAGS="$CPPFLAGS -traditional-cpp"
|
|
fi
|
|
|
|
if test "`uname -sv`" = "AIX 4" -a "$GCC" != "yes"; then
|
|
APXS_EXP="-bE:mod_php4.exp"
|
|
fi
|
|
AC_SUBST(APXS_EXP)
|
|
|
|
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
|
|
|
|
AC_MSG_CHECKING([if compiler supports -Wl,--version-script])
|
|
AC_CACHE_VAL(php_cv_cc_vscript,[
|
|
SLIBS=$LIBS
|
|
LIBS="-Wl,--version-script=$srcdir/php.map $LIBS"
|
|
AC_TRY_LINK([],[],php_cv_cc_vscript=yes,php_cv_cc_vscript=no)
|
|
LIBS=$SLIBS ])
|
|
AC_MSG_RESULT($php_cv_cc_vscript)
|
|
|
|
|
|
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="-I\$(top_builddir)/libzend -I\$(top_builddir)/TSRM"
|
|
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 locale.h sys/select.h sys/statvfs.h sys/statfs.h sys/mman.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
|
|
|
|
AC_CHECK_SIZEOF(long, 8)
|
|
AC_CHECK_SIZEOF(int, 4)
|
|
|
|
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 setitimer unsetenv strftime setsockopt tzset shutdown inet_aton statvfs statfs mmap)
|
|
AC_REPLACE_FUNCS(strlcat strlcpy)
|
|
AC_FUNC_UTIME_NULL
|
|
AC_FUNC_ALLOCA
|
|
dnl## OLDLIBS=$LIBS; LIBS=""
|
|
dnl This is also defined/used in libzend. To avoid a redefinition
|
|
dnl we use that version
|
|
dnl 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)
|
|
|
|
abs_srcdir=`(cd $srcdir; pwd)`
|
|
abs_builddir=`pwd`
|
|
AC_SUBST(abs_builddir)
|
|
|
|
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
|
|
AC_EXPAND_PATH($withval, APXS)
|
|
APXS_LDFLAGS="@SYBASE_LFLAGS@ @SYBASE_LIBS@ @SYBASE_CT_LFLAGS@ @SYBASE_CT_LIBS@"
|
|
APACHE_INCLUDE="-I`$APXS -q INCLUDEDIR`"
|
|
BINNAME=libphp4.so
|
|
INSTALL_IT="\$(APXS) -i -a -n php4 $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)
|
|
])
|
|
|
|
versioning="no"
|
|
AC_MSG_CHECKING(whether to enable versioning)
|
|
AC_ARG_ENABLE(versioning,
|
|
[ --enable-versioning Take advantage of versioning and scoping
|
|
Provided by Solaris 2.x and Linux],
|
|
[
|
|
if test "$enableval" = "yes" ; then
|
|
case "`uname -sr`" in
|
|
"SunOS 5"*)
|
|
VERSION_SCRIPT="-Wl,'-M $abs_srcdir/php.map'"
|
|
;;
|
|
*)
|
|
if test "$php_cv_cc_vscript" = "yes" ; then
|
|
VERSION_SCRIPT="-Wl,--version-script=$abs_srcdir/php.map"
|
|
else
|
|
AC_MSG_ERROR(versioning is not supported on your OS)
|
|
fi
|
|
;;
|
|
esac
|
|
versioning="yes"
|
|
fi
|
|
])
|
|
AC_MSG_RESULT($versioning)
|
|
AC_SUBST(VERSION_SCRIPT)
|
|
|
|
|
|
APACHE_INSTALL_FILES="$srcdir/mod_php4.* libphp4.module"
|
|
|
|
if test "$BINNAME" != "libmodphp4-so.a"; then
|
|
if test "$BINNAME" != "libphp4.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
|
|
AC_EXPAND_PATH($withval, withval)
|
|
if test -f $withval/src/httpd.h; then
|
|
APACHE_INCLUDE=-I$withval/src
|
|
APACHE_TARGET=$withval/src
|
|
BINNAME=libphp4.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/php4
|
|
if test ! -d $APACHE_TARGET; then
|
|
mkdir $APACHE_TARGET
|
|
fi
|
|
BINNAME=libmodphp4.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/php4 -L../modules/php4 -L../../modules/php4 -lmodphp4"
|
|
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/php4
|
|
if test ! -d $APACHE_TARGET; then
|
|
mkdir $APACHE_TARGET
|
|
fi
|
|
BINNAME=libmodphp4.a
|
|
PHP_LIBS="-Lmodules/php4 -L../modules/php4 -L../../modules/php4 -lmodphp4"
|
|
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=libmodphp4.a
|
|
PHP_LIBS="-Lmodules/php4 -L../modules/php4 -L../../modules/php4 -lmodphp4"
|
|
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(whether to use bundled regex library)
|
|
AC_ARG_WITH(system-regex,
|
|
[ --with-system-regex Do not use the bundled regex library],
|
|
[
|
|
if test -n "$APXS"; then
|
|
if test -n "`$APXS -q CFLAGS | grep USE_HSREGEX`"; then
|
|
HSREGEX=yes
|
|
else
|
|
HSREGEX=no
|
|
fi
|
|
else
|
|
if test "$withval" = "no"; then
|
|
HSREGEX=yes
|
|
else
|
|
HSREGEX=no
|
|
fi
|
|
fi
|
|
],[
|
|
if test -n "$APXS"; then
|
|
if test -n "`$APXS -q CFLAGS | grep USE_HSREGEX`"; then
|
|
HSREGEX=yes
|
|
else
|
|
HSREGEX=no
|
|
fi
|
|
else
|
|
HSREGEX=yes
|
|
fi
|
|
])
|
|
AC_MSG_RESULT($HSREGEX)
|
|
|
|
if test "$HSREGEX" = "yes"; then
|
|
REGEX_LIB=regex/libregex.a
|
|
EXTRA_LIBS="-L$abs_builddir/regex -lregex $EXTRA_LIBS"
|
|
AC_DEFINE(HSREGEX)
|
|
AC_DEFINE(REGEX,1)
|
|
else
|
|
REGEX_LIB=
|
|
AC_DEFINE(REGEX,0)
|
|
fi
|
|
|
|
AC_SUBST(REGEX_LIB)
|
|
AC_SUBST(HSREGEX)
|
|
|
|
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 php.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,
|
|
[ --disable-debug Compile without 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(yes)
|
|
AC_DEFINE(DEBUG,1)
|
|
PHP_DEBUG=1
|
|
DEBUG_CFLAGS="-g"
|
|
])
|
|
AC_SUBST(DEBUG_CFLAGS)
|
|
AC_SUBST(PHP_DEBUG)
|
|
CFLAGS="$CFLAGS $DEBUG_CFLAGS"
|
|
|
|
|
|
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 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)
|
|
])
|
|
|
|
DMALLOC_RESULT=no
|
|
AC_MSG_CHECKING(whether to enable dmalloc)
|
|
AC_ARG_ENABLE(dmalloc,
|
|
[ --enable-dmalloc Enable dmalloc],
|
|
[
|
|
if test "$enableval" = "yes" ; then
|
|
AC_DEFINE(HAVE_DMALLOC, 1)
|
|
AC_ADD_LIBRARY(dmalloc)
|
|
CFLAGS="$CFLAGS -DDMALLOC_FUNC_CHECK"
|
|
DMALLOC_RESULT=yes
|
|
fi
|
|
])
|
|
AC_MSG_RESULT($DMALLOC_RESULT)
|
|
|
|
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"
|
|
|
|
dnl add -fPIC option on Solaris if we are building dynamic extensions
|
|
PHP_SOLARIS_PIC_WEIRDNESS
|
|
|
|
AC_SUBST(CFLAGS)
|
|
AC_SUBST(PROG_SENDMAIL)
|
|
AC_SUBST(CFLAGS_SHLIB)
|
|
AC_SUBST(LDFLAGS_SHLIB)
|
|
AC_SUBST(LDFLAGS_SHLIB_EXPORT)
|
|
AC_SUBST(RPATHS)
|
|
|
|
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 libphp4.module php4.spec
|
|
scripts/mkextlib regex/Makefile
|
|
@@EXT_MAKEFILES@@ build-defs.h, [
|
|
], [
|
|
|
|
if test ! -f $srcdir/ext/bcmath/number.c; then
|
|
echo "creating number.c"
|
|
echo "/* Dummy File */" > $srcdir/ext/bcmath/number.c
|
|
echo "creating number.h"
|
|
echo "/* Dummy File */" > $srcdir/ext/bcmath/number.h
|
|
fi
|
|
|
|
if test "" = ""; then
|
|
|
|
chmod +x scripts/mkextlib
|
|
# Hacking while airborne considered harmful.
|
|
#
|
|
echo "creating internal_functions.c"
|
|
extensions=\`grep '^s.@EXT_STATIC@' \$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
|
|
|
|
# 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 "+--------------------------------------------------------------------+"
|
|
echo "| Warning: |"
|
|
echo "| You will be compiling the CGI version of PHP without any |"
|
|
echo "| redirection checking. By putting this cgi binary somewhere in |"
|
|
echo "| 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
|
|
|
|
echo "+--------------------------------------------------------------------+"
|
|
echo "| License: |"
|
|
echo "| This software is subject to the PHP License, available in this |"
|
|
echo "| distribution in the file LICENSE. By continuing this installation |"
|
|
echo "| process, you are bound by the terms of this license agreement. |"
|
|
echo "| If you do not agree with the terms of this license, you must abort |"
|
|
echo "| the installation process at this point. |"
|
|
echo "+--------------------------------------------------------------------+"
|
|
|
|
fi
|
|
|
|
])
|
|
|
|
divert
|
|
|
|
# Local Variables:
|
|
# tab-width: 4
|
|
# End:
|