mirror of
https://github.com/php/php-src.git
synced 2026-04-20 14:31:06 +02:00
The following new/revived shared modules are available now: ... MySQL (*) ... PCRE (*) ... Session ... SWF (*) capable of using bundled library or external library All changes: The m4 macro PHP_EXTENSION was revamped. Uses LIB_BUILD now. This effectively means that all extensions have to use dynlib. ext/mysql/config.m4 was revamped. Uses LIB_BUILD for building bundled library. ext/pcre/config.m4 was revamped. Uses LIB_BUILD for building bundled library. ext/ext_skel was changed to reflect that more modules should be compileable as shared module. ext/Makefile.in has been simplified enormously. Dependencies are now stored in the build tree. Empty dependencies are not generated by buildconf anymore. They are now dynamically created during the build process. Implicit rules for .S were removed. The NO_RECURSION feature was removed. "libs.mk" has been added to all cvsignore files in ext.
850 lines
21 KiB
Bash
850 lines
21 KiB
Bash
dnl ## $Id$ -*- sh -*-
|
|
dnl ## Process this file with autoconf to produce a configure script.
|
|
|
|
divert(1)
|
|
|
|
AC_INIT(main.c)
|
|
|
|
PHP_FAST_OUTPUT(sapi/Makefile ext/Makefile Makefile pear/Makefile)
|
|
|
|
dnl Because ``make install'' is often performed by the superuser,
|
|
dnl we create the libs subdirectory as the user who configures PHP.
|
|
dnl Otherwise, the current user will not be able to delete libs
|
|
dnl or the contents of libs.
|
|
test -d libs || mkdir libs
|
|
|
|
if test "$with_shared_apache" != "no" && test -n "$with_shared_apache" ; then
|
|
AC_MSG_ERROR(--with-shared-apache is not supported. Please refer to the documentation for using APXS)
|
|
fi
|
|
|
|
if test -n "$with_apache" && test -n "$with_apxs"; then
|
|
AC_MSG_ERROR(--with-apache and --with-apxs cannot be used together)
|
|
fi
|
|
|
|
cwd=`pwd`
|
|
|
|
PHP_CONFIG_NICE(config.nice)
|
|
|
|
for arg in $0 "$@"; do
|
|
CONFIGURE_COMMAND="$CONFIGURE_COMMAND '$arg'"
|
|
done
|
|
|
|
php_shtool="$srcdir/build/shtool"
|
|
T_MD=`$php_shtool echo -n -e %B`
|
|
T_ME=`$php_shtool echo -n -e %b`
|
|
|
|
dnl ## Diversion 2 is the initial checking of OS features, programs,
|
|
dnl ## libraries and so on.
|
|
|
|
dnl ## In diversion 3 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 4 we check which extensions should be compiled.
|
|
dnl ## All of these are normally in the extension directories.
|
|
|
|
dnl ## Diversion 5 is the last one. Here we generate files and clean up.
|
|
|
|
divert(2)
|
|
|
|
PHP_CONFIGURE_PART(Running system checks)
|
|
|
|
dnl ## This is where the version number is changed from now on!
|
|
AM_INIT_AUTOMAKE(php, 4.0RC2-dev)
|
|
|
|
PHP_VERSION=$VERSION
|
|
echo "/* automatically generated by configure */" > php_version.h.new
|
|
echo "/* edit configure.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
|
|
|
|
AM_CONFIG_HEADER(php_config.h)
|
|
AM_MAINTAINER_MODE
|
|
AC_CANONICAL_HOST
|
|
|
|
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 -Ae -D_HPUX_SOURCE [obsolete]
|
|
dnl ## if test -n "$auto_cflags" && test "`uname -s 2>/dev/null`" = "HP-UX"
|
|
dnl ## then
|
|
dnl ## test -n "$GCC" || CFLAGS="-Ae $CFLAGS -D_HPUX_SOURCE"
|
|
dnl ## fi
|
|
|
|
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)
|
|
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
|
|
AC_AIX
|
|
dnl ## LIBS=$OLDLIBS
|
|
|
|
AM_PROG_CC_STDC
|
|
|
|
AC_PROG_RANLIB
|
|
AC_PROG_CC_C_O
|
|
AC_PROG_LN_S
|
|
|
|
AM_PROG_LEX
|
|
|
|
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
|
|
|
|
sinclude(Zend/acinclude.m4)
|
|
sinclude(Zend/Zend.m4)
|
|
sinclude(TSRM/tsrm.m4)
|
|
|
|
dnl check for -R, etc. switch
|
|
AC_MSG_CHECKING(whether 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"
|
|
else
|
|
AC_MSG_CHECKING([whether 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,"
|
|
else
|
|
dnl something innocuous
|
|
ld_runpath_switch="-L"
|
|
fi
|
|
fi
|
|
|
|
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 Check whether the system uses EBCDIC (not ASCII) as its native codeset
|
|
PHP_EBCDIC
|
|
|
|
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)/Zend -I\$(top_srcdir)"
|
|
|
|
AC_CHECK_LIB(nsl, gethostname, [
|
|
AC_ADD_LIBRARY(nsl)
|
|
AC_DEFINE(HAVE_LIBNSL) ], [])
|
|
|
|
AC_CHECK_LIB(socket, socket, [
|
|
AC_ADD_LIBRARY(socket)
|
|
AC_DEFINE(HAVE_LIBSOCKET) ], [
|
|
AC_CHECK_LIB(socket, htonl, [
|
|
AC_ADD_LIBRARY(socket)
|
|
])])
|
|
|
|
AC_CHECK_LIB(nsl, gethostbyaddr, [
|
|
AC_ADD_LIBRARY(nsl)
|
|
AC_DEFINE(HAVE_LIBNSL) ], [])
|
|
|
|
AC_CHECK_LIB(crypt, crypt, [
|
|
AC_ADD_LIBRARY(crypt)
|
|
AC_DEFINE(HAVE_LIBCRYPT,1,[ ]) ], [])
|
|
|
|
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(m, sin)
|
|
|
|
AC_CHECK_LIB(bind, inet_aton, [
|
|
AC_ADD_LIBRARY(bind)
|
|
AC_DEFINE(HAVE_LIBBIND) ], [])
|
|
|
|
AC_CHECK_LIB(resolv, inet_aton)
|
|
|
|
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(
|
|
arpa/inet.h \
|
|
crypt.h \
|
|
dlfcn.h \
|
|
fcntl.h \
|
|
grp.h \
|
|
ieeefp.h \
|
|
limits.h \
|
|
locale.h \
|
|
memory.h \
|
|
netinet/in.h \
|
|
pwd.h \
|
|
signal.h \
|
|
stdarg.h \
|
|
stdlib.h \
|
|
string.h \
|
|
sys/file.h \
|
|
sys/mman.h \
|
|
sys/select.h \
|
|
sys/socket.h \
|
|
sys/statfs.h \
|
|
sys/statvfs.h \
|
|
sys/time.h \
|
|
sys/types.h \
|
|
sys/varargs.h \
|
|
sys/wait.h \
|
|
sys/resource.h \
|
|
syslog.h \
|
|
unistd.h \
|
|
unix.h \
|
|
)
|
|
|
|
dnl Checks for typedefs, structures, and compiler characteristics.
|
|
AC_STRUCT_TM
|
|
AC_STRUCT_TIMEZONE
|
|
|
|
PHP_TM_GMTOFF
|
|
PHP_STRUCT_FLOCK
|
|
PHP_SOCKLEN_T
|
|
|
|
AC_CHECK_SIZEOF(long, 8)
|
|
AC_CHECK_SIZEOF(int, 4)
|
|
|
|
test -d /usr/ucblib && AC_ADD_LIBPATH(/usr/ucblib)
|
|
|
|
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
|
|
fi
|
|
AC_STRUCT_ST_RDEV
|
|
|
|
dnl Checks for types
|
|
AC_TYPE_SIZE_T
|
|
AC_TYPE_UID_T
|
|
|
|
dnl Checks for library functions.
|
|
AC_FUNC_VPRINTF
|
|
AC_CHECK_FUNCS(
|
|
asctime_r \
|
|
crypt \
|
|
ctime_r \
|
|
cuserid \
|
|
flock \
|
|
gcvt \
|
|
getlogin \
|
|
gethostbyaddr \
|
|
getrusage \
|
|
gettimeofday \
|
|
gmtime_r \
|
|
inet_aton \
|
|
link \
|
|
localtime_r \
|
|
lockf \
|
|
lrand48 \
|
|
memcpy \
|
|
memmove \
|
|
mmap \
|
|
putenv \
|
|
random \
|
|
rand_r \
|
|
regcomp \
|
|
rint \
|
|
setitimer \
|
|
setlocale \
|
|
setsockopt \
|
|
setvbuf \
|
|
shutdown \
|
|
sin \
|
|
snprintf \
|
|
srand48 \
|
|
srandom \
|
|
statfs \
|
|
statvfs \
|
|
strcasecmp \
|
|
strdup \
|
|
strerror \
|
|
strftime \
|
|
strstr \
|
|
strtok_r \
|
|
symlink \
|
|
tempnam \
|
|
tzset \
|
|
unsetenv \
|
|
usleep \
|
|
utime \
|
|
vsnprintf \
|
|
)
|
|
|
|
AC_REPLACE_FUNCS(strlcat strlcpy getopt)
|
|
AC_FUNC_UTIME_NULL
|
|
AC_FUNC_ALLOCA
|
|
AC_BROKEN_SPRINTF
|
|
PHP_DECLARED_TIMEZONE
|
|
PHP_TIME_R_TYPE
|
|
|
|
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(3)
|
|
|
|
|
|
|
|
abs_srcdir=`(cd $srcdir; pwd)`
|
|
abs_builddir=`pwd`
|
|
|
|
PHP_ARG_WITH(config-file-path,whether to use a configuration file,
|
|
[ --with-config-file-path=PATH
|
|
Sets the path in which to look for php.ini.
|
|
defaults to /usr/local/lib], yes)
|
|
|
|
if test "$PHP_CONFIG_FILE_PATH" = "yes"; then
|
|
PHP_CONFIG_FILE_PATH="/usr/local/lib"
|
|
fi
|
|
|
|
if test "$PHP_CONFIG_FILE_PATH" != "no"; then
|
|
AC_DEFINE_UNQUOTED(CONFIGURATION_FILE_PATH, "$PHP_CONFIG_FILE_PATH")
|
|
AC_DEFINE(USE_CONFIG_FILE, 1)
|
|
else
|
|
AC_DEFINE(CONFIGURATION_FILE_PATH, 0)
|
|
AC_DEFINE(USE_CONFIG_FILE, 0)
|
|
fi
|
|
|
|
PHP_ARG_ENABLE(debug, whether to include debugging symbols,
|
|
[ --disable-debug Compile without debugging symbols.], yes)
|
|
|
|
if test "$PHP_DEBUG" = "yes"; then
|
|
PHP_DEBUG=1
|
|
ZEND_DEBUG=yes
|
|
else
|
|
PHP_DEBUG=0
|
|
ZEND_DEBUG=no
|
|
fi
|
|
|
|
|
|
test -n "$DEBUG_CFLAGS" && CFLAGS="$CFLAGS $DEBUG_CFLAGS"
|
|
|
|
PHP_ARG_ENABLE(safe-mode, whether to enable safe mode by default,
|
|
[ --enable-safe-mode Enable safe mode by default.])
|
|
|
|
if test "$PHP_SAFE_MODE" = "yes"; then
|
|
AC_DEFINE(PHP_SAFE_MODE, 1)
|
|
else
|
|
AC_DEFINE(PHP_SAFE_MODE, 0)
|
|
fi
|
|
|
|
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)
|
|
])
|
|
|
|
PHP_ARG_ENABLE(track-vars,whether to enable track_vars variables by default,
|
|
[ --enable-track-vars Enable GET/POST/Cookie track variables by default.],yes)
|
|
|
|
if test "$PHP_TRACK_VARS" = "yes"; then
|
|
AC_DEFINE(PHP_TRACK_VARS, 1)
|
|
else
|
|
AC_DEFINE(PHP_TRACK_VARS, 0)
|
|
fi
|
|
|
|
PHP_ARG_ENABLE(magic-quotes,whether to enable magic quotes by default,
|
|
[ --enable-magic-quotes Enable magic quotes by default.])
|
|
|
|
if test "$PHP_MAGIC_QUOTES" = "yes"; then
|
|
AC_DEFINE(MAGIC_QUOTES, 1)
|
|
else
|
|
AC_DEFINE(MAGIC_QUOTES, 0)
|
|
fi
|
|
|
|
PHP_ARG_ENABLE(rpath, whether to enable runpaths,
|
|
[ --disable-rpath Disable passing additional runtime library
|
|
search paths], yes)
|
|
|
|
PHP_ARG_ENABLE(libgcc, whether to explicitly link against libgcc,
|
|
[ --enable-libgcc Enable explicitly linking against libgcc])
|
|
|
|
if test "$PHP_LIBGCC" = "yes"; then
|
|
PHP_LIBGCC_LIBPATH(gcc)
|
|
if test -z "$libgcc_libpath"; then
|
|
AC_MSG_ERROR(Cannot locate libgcc. Make sure that gcc is in your path)
|
|
fi
|
|
AC_ADD_LIBPATH($libgcc_libpath)
|
|
AC_ADD_LIBRARY(gcc, yes)
|
|
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(PHP_URL_FOPEN, 1)
|
|
AC_MSG_RESULT(yes)
|
|
else
|
|
AC_DEFINE(PHP_URL_FOPEN, 0)
|
|
AC_MSG_RESULT(no)
|
|
fi
|
|
],[
|
|
AC_DEFINE(PHP_URL_FOPEN, 1)
|
|
AC_MSG_RESULT(yes)
|
|
])
|
|
|
|
AC_MSG_CHECKING(whether to enable PIC for shared objects)
|
|
AC_ARG_ENABLE(pic,
|
|
[ --disable-pic Disable PIC for shared objects],[
|
|
PHP_PIC=$enableval
|
|
],[
|
|
PHP_PIC=yes
|
|
])
|
|
AC_MSG_RESULT($PHP_PIC)
|
|
|
|
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)
|
|
|
|
AC_ARG_ENABLE(pear,
|
|
[ --disable-pear Do not install PEAR],[
|
|
PHP_PEAR=$enableval
|
|
],[
|
|
PHP_PEAR=yes
|
|
])
|
|
|
|
AC_MSG_CHECKING(whether to install PEAR)
|
|
AC_MSG_RESULT($PHP_PEAR)
|
|
|
|
if test "$PHP_PEAR" = "yes"; then
|
|
PEAR_DIR=pear
|
|
fi
|
|
|
|
|
|
PHP_SAPI=cgi
|
|
PHP_BUILD_PROGRAM
|
|
dnl paths to the targets relative to the build directory
|
|
SAPI_PROGRAM=php
|
|
dnl on HP-UX, the extension is .sl. Need to improve this
|
|
SAPI_SHARED=libs/libphp4.so
|
|
SAPI_STATIC=libs/libphp4.a
|
|
|
|
PHP_CONFIGURE_PART(Configuring SAPI modules)
|
|
|
|
esyscmd(./scripts/config-stubs sapi)
|
|
|
|
AC_MSG_CHECKING(for chosen SAPI module)
|
|
AC_MSG_RESULT($PHP_SAPI)
|
|
|
|
divert(4)
|
|
|
|
PHP_CONFIGURE_PART(Configuring extensions)
|
|
|
|
# reading config stubs
|
|
esyscmd(./scripts/config-stubs ext)
|
|
|
|
PHP_FAST_OUTPUT(sapi/$PHP_SAPI/Makefile)
|
|
|
|
AC_MSG_CHECKING(whether to enable versioning)
|
|
AC_ARG_ENABLE(versioning,
|
|
[ --enable-versioning Export only required symbols.
|
|
See INSTALL for more information],[
|
|
PHP_VERSIONING=$enableval
|
|
],[
|
|
PHP_VERSIONING=no
|
|
])
|
|
AC_MSG_RESULT($PHP_VERSIONING)
|
|
|
|
if test "$PHP_VERSIONING" = "yes"; then
|
|
test -z "$PHP_SYM_FILE" && PHP_SYM_FILE="$abs_srcdir/sapi/$PHP_SAPI/php.sym"
|
|
if test -f "$PHP_SYM_FILE"; then
|
|
EXTRA_LDFLAGS="-export-symbols $PHP_SYM_FILE"
|
|
fi
|
|
fi
|
|
|
|
divert(5)
|
|
|
|
enable_shared=yes
|
|
enable_static=yes
|
|
|
|
case "$php_build_target" in
|
|
program)
|
|
enable_shared=no
|
|
;;
|
|
shared)
|
|
enable_static=no
|
|
EXTRA_LDFLAGS="$EXTRA_LDFLAGS -avoid-version"
|
|
;;
|
|
static)
|
|
enable_shared=no
|
|
;;
|
|
esac
|
|
|
|
if test "$PHP_SAPI" = "cgi"; then
|
|
PHP_PROGRAM=php
|
|
fi
|
|
|
|
PHP_REGEX
|
|
|
|
PTHREADS_FLAGS
|
|
|
|
PHP_CONFIGURE_PART(Configuring Zend)
|
|
LIBZEND_BASIC_CHECKS
|
|
LIBZEND_OTHER_CHECKS
|
|
|
|
if test "$ZEND_EXPERIMENTAL_ZTS" = "yes"; then
|
|
TSRM_LIB='TSRM/libtsrm.la'
|
|
TSRM_DIR=TSRM
|
|
AC_DEFINE(ZTS)
|
|
INCLUDES="$INCLUDES -I\$(top_builddir)/TSRM"
|
|
PHP_THREAD_SAFETY=yes
|
|
else
|
|
PHP_THREAD_SAFETY=no
|
|
fi
|
|
|
|
if test "$abs_srcdir" != "$abs_builddir"; then
|
|
INCLUDES="$INCLUDES -I\$(top_srcdir)/Zend"
|
|
if test "$PHP_THREAD_SAFETY" = "yes"; then
|
|
INCLUDES="$INCLUDES -I\$(top_srcdir)/TSRM"
|
|
fi
|
|
fi
|
|
|
|
EXTRA_LIBS="$EXTRA_LIBS $DLIBS $LIBS"
|
|
LIBS=""
|
|
LDFLAGS=""
|
|
if test "$PHP_THREAD_SAFETY" = "yes"; then
|
|
PHP_CONFIGURE_PART(Configuring TSRM)
|
|
TSRM_BASIC_CHECKS
|
|
TSRM_OTHER_CHECKS
|
|
EXTRA_LDFLAGS="$EXTRA_LDFLAGS $LDFLAGS"
|
|
EXTRA_LIBS="$EXTRA_LIBS $LIBS"
|
|
LDFLAGS=""
|
|
LIBS=""
|
|
PHP_OUTPUT(TSRM/Makefile)
|
|
fi
|
|
|
|
|
|
phplibdir="`pwd`/modules"
|
|
test -d $phplibdir || mkdir $phplibdir
|
|
phptempdir="`pwd`/libs"
|
|
|
|
AC_BUILD_RPATH
|
|
|
|
EXTRA_LDFLAGS="$EXTRA_LDFLAGS $PHP_LDFLAGS"
|
|
|
|
PHP_BUILD_DATE=`date '+%Y-%m-%d'`
|
|
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")
|
|
|
|
|
|
|
|
PHP_SUBST(abs_builddir)
|
|
PHP_SUBST(abs_srcdir)
|
|
PHP_SUBST(bindir)
|
|
PHP_SUBST(exec_prefix)
|
|
PHP_SUBST(includedir)
|
|
PHP_SUBST(libdir)
|
|
PHP_SUBST(phplibdir)
|
|
PHP_SUBST(phptempdir)
|
|
PHP_SUBST(prefix)
|
|
|
|
PHP_SUBST(CC)
|
|
PHP_SUBST(CFLAGS)
|
|
PHP_SUBST(CONFIGURE_COMMAND)
|
|
PHP_SUBST(CPP)
|
|
PHP_SUBST(CPPFLAGS)
|
|
PHP_SUBST(CXX)
|
|
PHP_SUBST(DEBUG_CFLAGS)
|
|
PHP_SUBST(DEFS)
|
|
PHP_SUBST(EXTRA_LDFLAGS)
|
|
PHP_SUBST(EXTRA_LIBS)
|
|
PHP_SUBST(INCLUDES)
|
|
PHP_SUBST(INSTALL_IT)
|
|
PHP_SUBST(LEX)
|
|
PHP_SUBST(LEX_OUTPUT_ROOT)
|
|
PHP_SUBST(LFLAGS)
|
|
PHP_SUBST(LIBTOOL)
|
|
PHP_SUBST(NATIVE_RPATHS)
|
|
PHP_SUBST(PEAR_DIR)
|
|
PHP_SUBST(PHP_BUILD_DATE)
|
|
PHP_SUBST(PHP_COMPILE)
|
|
PHP_SUBST(PHP_LDFLAGS)
|
|
PHP_SUBST(PHP_LIBS)
|
|
PHP_SUBST(PHP_PROGRAM)
|
|
PHP_SUBST(PHP_RPATHS)
|
|
PHP_SUBST(PHP_SAPI)
|
|
PHP_SUBST(PHP_VERSION)
|
|
PHP_SUBST(PROG_SENDMAIL)
|
|
PHP_SUBST(SHELL)
|
|
PHP_SUBST(SHARED_LIBTOOL)
|
|
PHP_SUBST(TSRM_DIR)
|
|
PHP_SUBST(TSRM_LIB)
|
|
PHP_SUBST(WARNING_LEVEL)
|
|
PHP_SUBST(YACC)
|
|
|
|
PHP_CONFIGURE_PART(Configuring libtool)
|
|
|
|
old_CC="$CC"
|
|
|
|
if test "$PHP_THREAD_SAFETY" = "yes" && test -n "$ac_cv_pthreads_cflags"; then
|
|
CXXFLAGS="$CXXFLAGS $ac_cv_pthreads_cflags"
|
|
INLINE_CFLAGS="$INLINE_CFLAGS $ac_cv_pthreads_cflags"
|
|
cat >meta_ccld<<EOF
|
|
#! /bin/sh
|
|
exec $CC $ac_cv_pthreads_cflags \$@
|
|
EOF
|
|
CC="$abs_builddir/meta_ccld"
|
|
chmod +x meta_ccld
|
|
fi
|
|
|
|
dnl This will go away, if we have a facility to run per-extension code
|
|
dnl after the thread_safety decision was done
|
|
if test "$PHP_THREAD_SAFETY" = "yes" && test "$PHP_MYSQL" = "yes"; then
|
|
CPPFLAGS="$CPPFLAGS -DTHREAD=1"
|
|
fi
|
|
|
|
AM_PROG_LIBTOOL
|
|
if test "$enable_debug" != "yes"; then
|
|
AM_SET_LIBTOOL_VARIABLE([--silent])
|
|
fi
|
|
|
|
PHP_COMPILE='$(LIBTOOL) --mode=compile $(COMPILE) -c $<'
|
|
|
|
if test "$enable_shared" = "yes"; then
|
|
SHARED_LIBTOOL='$(LIBTOOL)'
|
|
else
|
|
if test "$lib_build_shared" = "yes"; then
|
|
PHP_CONFIGURE_PART(Configuring shared libtool)
|
|
$SHELL $srcdir/ltconfig --output=shlibtool --disable-static --srcdir=$srcdir --cache-file=./config.cache $srcdir/ltmain.sh
|
|
SHARED_LIBTOOL='$(SHELL) $(top_builddir)/shlibtool'
|
|
else
|
|
PHP_COMPILE='$(COMPILE) -c $< && touch $@'
|
|
fi
|
|
fi
|
|
|
|
CC="$old_CC"
|
|
|
|
changequote({,})
|
|
if test "$PHP_PIC" = "no"; then
|
|
cat >meta_cc<<EOF
|
|
#! /bin/sh
|
|
cmd="$CC \`echo \$@|sed s/-[fFD]PIC//g\`"
|
|
exec \$cmd
|
|
EOF
|
|
chmod +x meta_cc
|
|
CC="$abs_builddir/meta_cc"
|
|
fi
|
|
changequote([,])
|
|
|
|
test "$prefix" = "NONE" && prefix="/usr/local"
|
|
test "$exec_prefix" = "NONE" && exec_prefix='$(prefix)'
|
|
|
|
PHP_CONFIGURE_PART(Generating files)
|
|
|
|
PHP_FAST_GENERATE
|
|
touch .deps
|
|
|
|
#libphp4.module
|
|
AC_OUTPUT([php4.spec Zend/Makefile
|
|
build-defs.h
|
|
$PHP_OUTPUT_FILES
|
|
], [], [
|
|
|
|
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
|
|
|
|
################################################################
|
|
# Create configuration headers
|
|
#
|
|
|
|
if test -d TSRM; then
|
|
echo '#include "../php_config.h"' > TSRM/tsrm_config.h
|
|
fi
|
|
|
|
cat >Zend/zend_config.h <<FEO
|
|
#include "../php_config.h"
|
|
#if defined(APACHE) && defined(PHP_API_VERSION)
|
|
#undef HAVE_DLFCN_H
|
|
#endif
|
|
FEO
|
|
|
|
# run this only when generating all the files?
|
|
if true; then
|
|
# 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 "$EXTRA_MODULE_PTRS" \$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
|
|
|
|
if test -n "$PHP_APXS_BROKEN"; then
|
|
echo "+--------------------------------------------------------------------+"
|
|
echo "| WARNING: Your $APXS script is most likely broken."
|
|
echo "| |"
|
|
echo "| Please go read http://www.php.net/FAQ.php3#4.11 and make the |"
|
|
echo "| changes described there and try again. |"
|
|
fi
|
|
|
|
# Warn about CGI version with no extra security options.
|
|
if test "$PHP_SAPI" = "cgi"; 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
|
|
])
|
|
|
|
dnl ## Local Variables:
|
|
dnl ## tab-width: 4
|
|
dnl ## End:
|