mirror of
https://github.com/php/php-src.git
synced 2024-11-29 04:46:07 +08:00
467a5f44ec
to support -V flag, so by passing them data on stdin we prevent them from sitting idle waiting for stdin data. I've also added some common version retrieval flags, that may be supported by various lex scanners.
1327 lines
38 KiB
Bash
1327 lines
38 KiB
Bash
dnl ## $Id$ -*- sh -*-
|
|
dnl ## Process this file with autoconf to produce a configure script.
|
|
|
|
divert(1)
|
|
|
|
dnl ## Diversion 1 is the autoconf + automake setup phase. We also
|
|
dnl ## set the PHP version, deal with platform-specific compile
|
|
dnl ## options and check for the basic compile tools.
|
|
|
|
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 user-configurable general settings.
|
|
|
|
dnl ## In diversion 5 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.
|
|
|
|
|
|
dnl Basic autoconf + automake initialization, generation of config.nice.
|
|
dnl -------------------------------------------------------------------------
|
|
|
|
AC_PREREQ(2.13)
|
|
AC_INIT(README.CVS-RULES)
|
|
|
|
dnl check for working sed
|
|
PHP_PROG_SED
|
|
|
|
PHP_CONFIG_NICE(config.nice)
|
|
for arg in $0 "$@"; do
|
|
CONFIGURE_COMMAND="$CONFIGURE_COMMAND '$arg'"
|
|
done
|
|
|
|
AC_CANONICAL_HOST
|
|
AC_CONFIG_HEADER(main/php_config.h)
|
|
|
|
MAJOR_VERSION=4
|
|
MINOR_VERSION=4
|
|
RELEASE_VERSION=0
|
|
EXTRA_VERSION="-dev"
|
|
VERSION="$MAJOR_VERSION.$MINOR_VERSION.$RELEASE_VERSION$EXTRA_VERSION"
|
|
|
|
dnl Define where extension directories are located in the configure context
|
|
AC_DEFUN(PHP_EXT_BUILDDIR,[ext/$1])dnl
|
|
AC_DEFUN(PHP_EXT_DIR,[ext/$1])dnl
|
|
AC_DEFUN(PHP_EXT_SRCDIR,[$abs_srcdir/ext/$1])dnl
|
|
AC_DEFUN(PHP_ALWAYS_SHARED,[])dnl
|
|
|
|
dnl Setting up the PHP version based on the information above.
|
|
dnl -------------------------------------------------------------------------
|
|
|
|
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_MAJOR_VERSION $MAJOR_VERSION" >> php_version.h.new
|
|
echo "#define PHP_MINOR_VERSION $MINOR_VERSION" >> php_version.h.new
|
|
echo "#define PHP_RELEASE_VERSION $RELEASE_VERSION" >> php_version.h.new
|
|
echo "#define PHP_EXTRA_VERSION \"$EXTRA_VERSION\"" >> 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
|
|
|
|
|
|
|
|
dnl Catch common errors here to save a few seconds of our users' time
|
|
dnl -------------------------------------------------------------------------
|
|
|
|
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
|
|
|
|
|
|
dnl Settings we want to make before the checks.
|
|
dnl -------------------------------------------------------------------------
|
|
|
|
cwd=`pwd`
|
|
|
|
PHP_INIT_BUILD_SYSTEM
|
|
|
|
php_shtool=$srcdir/build/shtool
|
|
T_MD=`$php_shtool echo -n -e %B`
|
|
T_ME=`$php_shtool echo -n -e %b`
|
|
|
|
dnl We want this one before the checks, so the checks can modify CFLAGS.
|
|
test -z "$CFLAGS" && auto_cflags=1
|
|
|
|
abs_srcdir=`(cd $srcdir; pwd)`
|
|
abs_builddir=`pwd`
|
|
|
|
php_abs_top_srcdir=$abs_srcdir
|
|
php_abs_top_builddir=$abs_builddir
|
|
|
|
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.
|
|
|
|
$php_shtool mkdir -p libs
|
|
rm -f libs/*
|
|
|
|
dnl Checks for programs.
|
|
dnl -------------------------------------------------------------------------
|
|
|
|
AC_PROG_CC
|
|
AC_PROG_CC_C_O
|
|
dnl Change to AC_PROG_CC_STDC when we start requiring a post-2.13 autoconf
|
|
dnl AC_PROG_CC_STDC
|
|
AC_PROG_CPP
|
|
|
|
AC_AIX
|
|
|
|
dnl AC_PROG_CXX
|
|
dnl AC_PROG_CXXCPP
|
|
|
|
dnl check for -R, etc. switch
|
|
PHP_RUNPATH_SWITCH
|
|
|
|
AC_PROG_RANLIB
|
|
AC_PROG_LN_S
|
|
AC_PROG_AWK
|
|
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 `bison --version| grep 'GNU Bison' | cut -d ' ' -f 4 | sed -e 's/\./ /'`
|
|
if test "${1}" = "1" -a "${2}" -lt "28"; then
|
|
AC_MSG_WARN(You will need bison 1.28 if you want to regenerate the Zend parser (found ${1}.${2}).)
|
|
fi
|
|
AC_MSG_RESULT(${1}.${2} (ok))
|
|
fi
|
|
AC_PROG_LEX
|
|
if test -n "$LEX"; then
|
|
AC_DECL_YYTEXT
|
|
:
|
|
fi
|
|
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_MSG_CHECKING([flex version])
|
|
set `echo "" | $LEX -V -v --version 2>/dev/null | grep 'version' | cut -d ' ' -f 3 | sed -e 's/\./ /g' | sed -e 's/[^0-9 ]//g'`
|
|
if test "${1}" != "2" -o "${2}" != "5" -o "${3}" -lt "4"; then
|
|
AC_MSG_WARN(You will need flex 2.5.4 or later if you want to regenerate Zend/PHP lexical parsers.)
|
|
fi
|
|
AC_MSG_RESULT(${1}.${2}.${3} (ok))
|
|
|
|
dnl Platform-specific compile settings.
|
|
dnl -------------------------------------------------------------------------
|
|
|
|
dnl if host_alias is empty, ac_cv_host_alias may still have the info
|
|
if test -z "$host_alias"; then
|
|
host_alias=$ac_cv_host_alias
|
|
fi
|
|
|
|
case $host_alias in
|
|
*solaris*)
|
|
CPPFLAGS="$CPPFLAGS -D_POSIX_PTHREAD_SEMANTICS"
|
|
if test "${enable_libgcc+set}" != "set" && test "$GCC" = "yes"; then
|
|
enable_libgcc=yes
|
|
fi
|
|
;;
|
|
*dgux*)
|
|
CPPFLAGS="$CPPFLAGS -D_BSD_TIMEOFDAY_FLAVOR";;
|
|
*darwin*|*rhapsody*)
|
|
CPPFLAGS="$CPPFLAGS -no-cpp-precomp"
|
|
php_multiple_shlib_versions_ok=yes;;
|
|
*beos*)
|
|
beos_threads=1
|
|
LIBS="$LIBS -lbe -lroot";;
|
|
*mips*)
|
|
CPPFLAGS="$CPPFLAGS -D_XPG_IV";;
|
|
esac
|
|
|
|
|
|
dnl Include Zend and TSRM configurations.
|
|
dnl -------------------------------------------------------------------------
|
|
|
|
sinclude(Zend/acinclude.m4)
|
|
sinclude(Zend/Zend.m4)
|
|
sinclude(TSRM/tsrm.m4)
|
|
|
|
|
|
|
|
divert(2)
|
|
|
|
dnl ## Diversion 2 is where we set PHP-specific options and come up
|
|
dnl ## with reasonable default values for them. We check for pthreads here
|
|
dnl ## because the information is needed by the SAPI configuration.
|
|
dnl ## This is also where an SAPI interface is selected (choosing between
|
|
dnl ## Apache module, CGI etc.)
|
|
|
|
dnl .
|
|
dnl -------------------------------------------------------------------------
|
|
|
|
PTHREADS_CHECK
|
|
PHP_HELP_SEPARATOR([SAPI modules:])
|
|
PHP_SHLIB_SUFFIX_NAME
|
|
PHP_SAPI=default
|
|
PHP_BUILD_PROGRAM
|
|
|
|
|
|
|
|
dnl SAPI configuration.
|
|
dnl -------------------------------------------------------------------------
|
|
|
|
dnl paths to the targets are relative to the build directory
|
|
SAPI_SHARED=libs/libphp4.$SHLIB_SUFFIX_NAME
|
|
SAPI_STATIC=libs/libphp4.a
|
|
SAPI_LIBTOOL=libphp4.la
|
|
|
|
PHP_CONFIGURE_PART(Configuring SAPI modules)
|
|
|
|
esyscmd(./scripts/config-stubs sapi)
|
|
|
|
dnl Show which main SAPI was selected
|
|
AC_MSG_CHECKING([for chosen SAPI module])
|
|
AC_MSG_RESULT([$PHP_SAPI])
|
|
|
|
if test "$enable_experimental_zts" = "yes"; then
|
|
PTHREADS_ASSIGN_VARS
|
|
PTHREADS_FLAGS
|
|
fi
|
|
|
|
if test "$PHP_ENABLE_FASTCGI" = "yes"; then
|
|
PHP_CONFIGURE_PART(Running FastCGI checks)
|
|
sinclude(sapi/cgi/libfcgi/acinclude.m4)
|
|
sinclude(sapi/cgi/libfcgi/libfcgi.m4)
|
|
fi
|
|
|
|
divert(3)
|
|
|
|
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 Starting system checks.
|
|
dnl -------------------------------------------------------------------------
|
|
|
|
PHP_CONFIGURE_PART(Running system checks)
|
|
|
|
PHP_MISSING_TIME_R_DECL
|
|
PHP_PROG_SENDMAIL
|
|
dnl Check whether the system uses EBCDIC (not ASCII) as its native codeset
|
|
PHP_EBCDIC
|
|
dnl Check for /usr/pkg/{lib,include} which is where NetBSD puts binary
|
|
dnl and source packages. This should be harmless on other OSs.
|
|
if test -d /usr/pkg/include -a -d /usr/pkg/lib ; then
|
|
CPPFLAGS="$CPPFLAGS -I/usr/pkg/include"
|
|
LDFLAGS="$LDFLAGS -L/usr/pkg/lib"
|
|
fi
|
|
INCLUDES="$INCLUDES -I\$(top_builddir)/Zend"
|
|
test -d /usr/ucblib && PHP_ADD_LIBPATH(/usr/ucblib)
|
|
|
|
|
|
dnl First, library checks.
|
|
dnl -------------------------------------------------------------------------
|
|
|
|
dnl Some systems (OpenServer 5) dislike -lsocket -lnsl, so we try
|
|
dnl to avoid -lnsl checks, if we already have the functions which
|
|
dnl are usually in libnsl
|
|
dnl Also, uClibc will bark at linking with glibc's libnsl.
|
|
|
|
PHP_CHECK_FUNC(socket, socket)
|
|
PHP_CHECK_FUNC(htonl, socket)
|
|
PHP_CHECK_FUNC(gethostname, nsl)
|
|
PHP_CHECK_FUNC(gethostbyaddr, nsl)
|
|
PHP_CHECK_FUNC(yp_get_default_domain, nsl)
|
|
|
|
PHP_CHECK_FUNC(dlopen, dl)
|
|
if test "$ac_cv_func_dlopen" = "yes"; then
|
|
AC_DEFINE(HAVE_LIBDL, 1, [ ])
|
|
fi
|
|
AC_CHECK_LIB(m, sin)
|
|
|
|
dnl Check for resolver routines.
|
|
dnl Need to check for both res_search and __res_search
|
|
dnl in -lc, -lbind, -lresolv and -lsocket
|
|
PHP_CHECK_FUNC(res_search, resolv, bind, socket)
|
|
|
|
dnl Check for inet_aton and dn_skipname
|
|
dnl in -lc, -lbind and -lresolv
|
|
PHP_CHECK_FUNC(inet_aton, resolv, bind)
|
|
PHP_CHECK_FUNC(dn_skipname, resolv, bind)
|
|
|
|
|
|
dnl Then headers.
|
|
dnl -------------------------------------------------------------------------
|
|
|
|
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
|
|
PHP_MISSING_FCLOSE_DECL
|
|
dnl QNX requires unix.h to allow functions in libunix to work properly
|
|
AC_CHECK_HEADERS([ \
|
|
ApplicationServices/ApplicationServices.h \
|
|
sys/types.h \
|
|
sys/time.h \
|
|
netinet/in.h \
|
|
alloca.h \
|
|
arpa/inet.h \
|
|
arpa/nameser.h \
|
|
assert.h \
|
|
crypt.h \
|
|
fcntl.h \
|
|
grp.h \
|
|
ieeefp.h \
|
|
langinfo.h \
|
|
limits.h \
|
|
locale.h \
|
|
monetary.h \
|
|
mach-o/dyld.h \
|
|
netdb.h \
|
|
pwd.h \
|
|
resolv.h \
|
|
signal.h \
|
|
stdarg.h \
|
|
stdlib.h \
|
|
string.h \
|
|
syslog.h \
|
|
sysexits.h \
|
|
sys/file.h \
|
|
sys/mman.h \
|
|
sys/mount.h \
|
|
sys/poll.h \
|
|
sys/resource.h \
|
|
sys/select.h \
|
|
sys/socket.h \
|
|
sys/statfs.h \
|
|
sys/statvfs.h \
|
|
sys/vfs.h \
|
|
sys/sysexits.h \
|
|
sys/varargs.h \
|
|
sys/wait.h \
|
|
unistd.h \
|
|
unix.h \
|
|
utime.h \
|
|
sys/utsname.h \
|
|
sys/ipc.h \
|
|
],[],[],[
|
|
#ifdef HAVE_SYS_TYPES_H
|
|
#include <sys/types.h>
|
|
#endif
|
|
#ifdef HAVE_SYS_TIME_H
|
|
#include <sys/time.h>
|
|
#endif
|
|
#ifdef HAVE_NETINET_IN_H
|
|
#include <netinet/in.h>
|
|
#endif
|
|
#ifdef HAVE_ARPA_NAMESER_H
|
|
#include <arpa/nameser.h>
|
|
#endif
|
|
])
|
|
|
|
|
|
|
|
dnl Checks for typedefs, structures, and compiler characteristics.
|
|
dnl -------------------------------------------------------------------------
|
|
|
|
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)
|
|
|
|
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 Check for struct sockaddr_storage
|
|
AC_CACHE_CHECK([for struct sockaddr_storage], ac_cv_sockaddr_storage,
|
|
[AC_TRY_COMPILE([ #include <sys/types.h>
|
|
#include <sys/socket.h>], [struct sockaddr_storage s; s],
|
|
ac_cv_sockaddr_storage=yes, ac_cv_sockaddr_storage=no)])
|
|
if test "$ac_cv_sockaddr_storage" = yes; then
|
|
AC_DEFINE(HAVE_SOCKADDR_STORAGE,1,[Whether you have struct sockaddr_storage])
|
|
fi
|
|
|
|
dnl Check if sockaddr data structure includes an "sa_len" member
|
|
|
|
AC_TRY_COMPILE([
|
|
#include <sys/types.h>
|
|
#include <sys/socket.h>
|
|
], [static struct sockaddr sa; int n = (int) sa.sa_len; return n],
|
|
[AC_DEFINE(HAVE_SOCKADDR_LEN,1,[Whether sockaddr struct has sa_len])],
|
|
[])
|
|
|
|
dnl Check for IPv6 support
|
|
AC_CACHE_CHECK([for IPv6 support], ac_cv_ipv6_support,
|
|
[AC_TRY_LINK([ #include <sys/types.h>
|
|
#include <sys/socket.h>
|
|
#include <netinet/in.h>], [struct sockaddr_in6 s; struct in6_addr t=in6addr_any; int i=AF_INET6; s; t.s6_addr[0] = 0;],
|
|
[ac_cv_ipv6_support=yes], [ac_cv_ipv6_support=no])])
|
|
|
|
|
|
|
|
dnl Checks for library functions.
|
|
dnl -------------------------------------------------------------------------
|
|
|
|
AC_FUNC_VPRINTF
|
|
AC_CHECK_FUNCS(
|
|
asctime_r \
|
|
chroot \
|
|
ctime_r \
|
|
cuserid \
|
|
crypt \
|
|
flock \
|
|
ftok \
|
|
gai_strerror \
|
|
gcvt \
|
|
getlogin \
|
|
getprotobyname \
|
|
getprotobynumber \
|
|
getservbyname \
|
|
getservbyport \
|
|
getrusage \
|
|
gettimeofday \
|
|
gmtime_r \
|
|
isascii \
|
|
link \
|
|
localtime_r \
|
|
lockf \
|
|
lrand48 \
|
|
memcpy \
|
|
memmove \
|
|
mkstemp \
|
|
mmap \
|
|
nl_langinfo \
|
|
poll \
|
|
putenv \
|
|
realpath \
|
|
random \
|
|
rand_r \
|
|
regcomp \
|
|
res_search \
|
|
setitimer \
|
|
setlocale \
|
|
localeconv \
|
|
setsockopt \
|
|
setvbuf \
|
|
shutdown \
|
|
sin \
|
|
snprintf \
|
|
srand48 \
|
|
srandom \
|
|
statfs \
|
|
statvfs \
|
|
std_syslog \
|
|
strcasecmp \
|
|
strcoll \
|
|
strdup \
|
|
strerror \
|
|
strftime \
|
|
strstr \
|
|
strtok_r \
|
|
symlink \
|
|
tempnam \
|
|
tzset \
|
|
unsetenv \
|
|
usleep \
|
|
utime \
|
|
vsnprintf \
|
|
)
|
|
|
|
dnl Check for getaddrinfo, should be a better way, but...
|
|
AC_CACHE_CHECK([for getaddrinfo], ac_cv_func_getaddrinfo,
|
|
[AC_TRY_COMPILE([#include <netdb.h>],
|
|
[struct addrinfo *g,h;g=&h;getaddrinfo("","",g,&g);],
|
|
ac_cv_func_getaddrinfo=yes, ac_cv_func_getaddrinfo=no)])
|
|
if test "$ac_cv_func_getaddrinfo" = yes; then
|
|
AC_DEFINE(HAVE_GETADDRINFO,1,[Define if you have the getaddrinfo function])
|
|
fi
|
|
|
|
AC_REPLACE_FUNCS(strlcat strlcpy getopt)
|
|
AC_FUNC_UTIME_NULL
|
|
AC_FUNC_ALLOCA
|
|
PHP_AC_BROKEN_SPRINTF
|
|
PHP_AC_BROKEN_SNPRINTF
|
|
PHP_DECLARED_TIMEZONE
|
|
PHP_TIME_R_TYPE
|
|
PHP_READDIR_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(4)
|
|
|
|
dnl ## In diversion 4 we check user-configurable general settings.
|
|
|
|
dnl General settings.
|
|
dnl -------------------------------------------------------------------------
|
|
|
|
|
|
PHP_HELP_SEPARATOR([General settings:])
|
|
|
|
PHP_ARG_ENABLE(debug, whether to include debugging symbols,
|
|
[ --enable-debug Compile with debugging symbols.], no, no)
|
|
|
|
if test "$PHP_DEBUG" = "yes"; then
|
|
PHP_DEBUG=1
|
|
ZEND_DEBUG=yes
|
|
else
|
|
PHP_DEBUG=0
|
|
ZEND_DEBUG=no
|
|
fi
|
|
|
|
PHP_ARG_WITH(layout,[layout of installed files],
|
|
[ --with-layout=TYPE Sets how installed files will be laid out. Type is
|
|
one of "PHP" (default) or "GNU"], PHP, no)
|
|
|
|
case $PHP_LAYOUT in
|
|
GNU)
|
|
oldstyleextdir=no
|
|
;;
|
|
*)
|
|
oldstyleextdir=yes
|
|
;;
|
|
esac
|
|
|
|
PHP_ARG_WITH(config-file-path,[path to configuration file],
|
|
[ --with-config-file-path=PATH
|
|
Sets the path in which to look for php.ini,
|
|
defaults to PREFIX/lib], DEFAULT, no)
|
|
|
|
if test "$PHP_CONFIG_FILE_PATH" = "DEFAULT"; then
|
|
case $PHP_LAYOUT in
|
|
GNU)
|
|
PHP_CONFIG_FILE_PATH=$sysconfdir
|
|
;;
|
|
*)
|
|
PHP_CONFIG_FILE_PATH=$libdir
|
|
;;
|
|
esac
|
|
fi
|
|
|
|
PHP_ARG_WITH(config-file-scan-dir,[directory to be scanned for configuration files],
|
|
[ --with-config-file-scan-dir=PATH ], DEFAULT, no)
|
|
if test "$PHP_CONFIG_FILE_SCAN_DIR" = "DEFAULT"; then
|
|
PHP_CONFIG_FILE_SCAN_DIR=""
|
|
fi
|
|
|
|
# compatibility
|
|
if test -z "$with_pear" && test "$enable_pear" = "no"; then
|
|
with_pear=no
|
|
fi
|
|
|
|
PHP_ARG_WITH(pear, [whether to install PEAR, and where],
|
|
[ --with-pear=DIR Install PEAR in DIR (default PREFIX/lib/php)
|
|
--without-pear Do not install PEAR], DEFAULT, no)
|
|
|
|
if test "$PHP_PEAR" != "no" && test "$PHP_SAPI_CLI" != "no"; then
|
|
install_pear="install-pear install-build install-headers install-programs"
|
|
PEAR_INSTALLDIR=$PHP_PEAR
|
|
fi
|
|
|
|
if test "$PHP_PEAR" = "DEFAULT" || test "$PHP_PEAR" = "yes"; then
|
|
case $PHP_LAYOUT in
|
|
GNU) PEAR_INSTALLDIR=$datadir/pear;;
|
|
*) PEAR_INSTALLDIR=$libdir/php;;
|
|
esac
|
|
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.], no, no)
|
|
|
|
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(sigchild,whether to enable PHP's own SIGCHLD handler,
|
|
[ --enable-sigchild Enable PHP's own SIGCHLD handler.], no, no)
|
|
|
|
if test "$PHP_SIGCHILD" = "yes"; then
|
|
AC_DEFINE(PHP_SIGCHILD, 1, [ ])
|
|
else
|
|
AC_DEFINE(PHP_SIGCHILD, 0, [ ])
|
|
fi
|
|
|
|
PHP_ARG_ENABLE(magic-quotes,whether to enable magic quotes by default,
|
|
[ --enable-magic-quotes Enable magic quotes by default.], no, no)
|
|
|
|
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, no)
|
|
|
|
PHP_ARG_ENABLE(libgcc, whether to explicitly link against libgcc,
|
|
[ --enable-libgcc Enable explicitly linking against libgcc], no, no)
|
|
|
|
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
|
|
PHP_ADD_LIBPATH($libgcc_libpath)
|
|
PHP_ADD_LIBRARY(gcc, yes)
|
|
fi
|
|
|
|
PHP_ARG_ENABLE(short-tags,whether to enable short tags by default,
|
|
[ --disable-short-tags Disable the short-form <? start tag by default.],yes, no)
|
|
|
|
if test "$PHP_SHORT_TAGS" = "yes"; then
|
|
AC_DEFINE(DEFAULT_SHORT_OPEN_TAG,"1",[ ])
|
|
else
|
|
AC_DEFINE(DEFAULT_SHORT_OPEN_TAG,"0",[ ])
|
|
fi
|
|
|
|
PHP_ARG_ENABLE(dmalloc,whether to enable dmalloc,
|
|
[ --enable-dmalloc Enable dmalloc], no, no)
|
|
|
|
if test "$PHP_DMALLOC" = "yes"; then
|
|
|
|
AC_CHECK_LIB(dmalloc, dmalloc_error, [
|
|
PHP_ADD_LIBRARY(dmalloc)
|
|
AC_DEFINE(HAVE_DMALLOC,1,[Whether you have dmalloc])
|
|
CPPFLAGS="$CPPFLAGS -DDMALLOC_FUNC_CHECK"
|
|
], [
|
|
AC_MSG_ERROR([Problem with enabling dmalloc. Please check config.log for details.])
|
|
])
|
|
fi
|
|
|
|
PHP_ARG_ENABLE(ipv6,whether to enable IPv6 support,
|
|
[ --disable-ipv6 Disable IPv6 support], yes, no)
|
|
|
|
if test "$PHP_IPV6" != "no" && test "$ac_cv_ipv6_support" = yes; then
|
|
AC_DEFINE(HAVE_IPV6,1,[Whether to enable IPv6 support])
|
|
fi
|
|
|
|
|
|
dnl
|
|
dnl OpenSSL configure
|
|
dnl
|
|
PHP_ARG_WITH(openssl,for OpenSSL support,
|
|
[ --with-openssl[=DIR] Include OpenSSL support (requires OpenSSL >= 0.9.5) ])
|
|
|
|
if test "$PHP_OPENSSL" != "no"; then
|
|
ext_openssl_shared=$ext_shared
|
|
PHP_SETUP_OPENSSL
|
|
fi
|
|
|
|
|
|
AC_CHECK_LIB(crypt, crypt, [
|
|
PHP_ADD_LIBRARY(crypt)
|
|
PHP_ADD_LIBRARY(crypt, 1)
|
|
AC_DEFINE(HAVE_CRYPT,1,[ ])
|
|
])
|
|
|
|
divert(5)
|
|
|
|
dnl ## In diversion 5 we check which extensions should be compiled.
|
|
dnl ## All of these are normally in the extension directories.
|
|
|
|
dnl Extension configuration.
|
|
dnl -------------------------------------------------------------------------
|
|
|
|
PHP_HELP_SEPARATOR([Extensions:
|
|
|
|
--with-EXTENSION=[shared[,PATH]]
|
|
|
|
NOTE: Not all extensions can be build as 'shared'.
|
|
|
|
Example: --with-foobar=shared,/usr/local/foobar/
|
|
|
|
o Builds the foobar extension as shared extension.
|
|
o foobar package install prefix is /usr/local/foobar/
|
|
])
|
|
|
|
PHP_CONFIGURE_PART(Configuring extensions)
|
|
|
|
dnl
|
|
dnl Check if all enabled by default extensions should be disabled
|
|
dnl
|
|
|
|
AC_ARG_ENABLE(all,
|
|
[ --disable-all Disable all extensions enabled by default.
|
|
--enable-all Enable all extensions.
|
|
], [
|
|
PHP_ENABLE_ALL=$enableval
|
|
])
|
|
|
|
# reading config stubs
|
|
esyscmd(./scripts/config-stubs ext)
|
|
|
|
|
|
dnl Other settings.
|
|
dnl -------------------------------------------------------------------------
|
|
|
|
PHP_HELP_SEPARATOR([Other settings:])
|
|
|
|
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
|
|
|
|
enable_shared=yes
|
|
enable_static=yes
|
|
unset with_pic
|
|
|
|
case $php_build_target in
|
|
program|static)
|
|
standard_libtool_flag='-prefer-non-pic -static'
|
|
if test -z "$PHP_MODULES"; then
|
|
enable_shared=no
|
|
fi
|
|
;;
|
|
shared)
|
|
enable_static=no
|
|
standard_libtool_flag=-prefer-pic
|
|
EXTRA_LDFLAGS="$EXTRA_LDFLAGS -avoid-version -module"
|
|
;;
|
|
esac
|
|
|
|
PHP_REGEX
|
|
|
|
EXTRA_LIBS="$EXTRA_LIBS $DLIBS $LIBS"
|
|
unset LIBS LDFLAGS
|
|
|
|
dnl Configuring Zend and TSRM.
|
|
dnl -------------------------------------------------------------------------
|
|
|
|
PHP_CONFIGURE_PART(Configuring Zend)
|
|
LIBZEND_BASIC_CHECKS
|
|
LIBZEND_DLSYM_CHECK
|
|
LIBZEND_OTHER_CHECKS
|
|
|
|
TSRM_LIB='TSRM/libtsrm.la'
|
|
TSRM_DIR=TSRM
|
|
CPPFLAGS="$CPPFLAGS -I\$(top_builddir)/TSRM"
|
|
|
|
if test "$ZEND_EXPERIMENTAL_ZTS" = "yes"; then
|
|
AC_DEFINE(ZTS,1,[ ])
|
|
PHP_THREAD_SAFETY=yes
|
|
else
|
|
PHP_THREAD_SAFETY=no
|
|
fi
|
|
|
|
if test "$abs_srcdir" != "$abs_builddir"; then
|
|
INCLUDES="$INCLUDES -I\$(top_srcdir)/main -I\$(top_srcdir)/Zend"
|
|
INCLUDES="$INCLUDES -I\$(top_srcdir)/TSRM"
|
|
fi
|
|
|
|
ZEND_EXTRA_LIBS="$LIBS"
|
|
unset LIBS LDFLAGS
|
|
|
|
PHP_CONFIGURE_PART(Configuring TSRM)
|
|
TSRM_BASIC_CHECKS
|
|
if test "$PHP_THREAD_SAFETY" = "yes"; then
|
|
TSRM_THREADS_CHECKS
|
|
fi
|
|
EXTRA_LDFLAGS="$EXTRA_LDFLAGS $LDFLAGS"
|
|
EXTRA_LIBS="$EXTRA_LIBS $LIBS"
|
|
unset LIBS LDFLAGS
|
|
|
|
test "$prefix" = "NONE" && prefix=/usr/local
|
|
test "$exec_prefix" = "NONE" && exec_prefix='${prefix}'
|
|
|
|
case $libdir in
|
|
'${exec_prefix}/lib')
|
|
libdir=$libdir/php
|
|
;;
|
|
esac
|
|
case $datadir in
|
|
'${prefix}/share')
|
|
datadir=$datadir/php
|
|
;;
|
|
*) ;;
|
|
esac
|
|
|
|
phplibdir=`pwd`/modules
|
|
$php_shtool mkdir -p $phplibdir
|
|
phptempdir=`pwd`/libs
|
|
|
|
old_exec_prefix=$exec_prefix
|
|
old_libdir=$libdir
|
|
old_datadir=$datadir
|
|
exec_prefix=`eval echo $exec_prefix`
|
|
libdir=`eval echo $libdir`
|
|
datadir=`eval echo $datadir`
|
|
|
|
dnl Build extension directory path
|
|
|
|
ZEND_MODULE_API_NO=`grep -E '#define ZEND_MODULE_API_NO ' $srcdir/Zend/zend_modules.h|sed 's/#define ZEND_MODULE_API_NO //'`
|
|
|
|
if test -z "$EXTENSION_DIR"; then
|
|
extbasedir=$ZEND_MODULE_API_NO
|
|
if test "$oldstyleextdir" = "yes"; then
|
|
if test "$PHP_DEBUG" = "1"; then
|
|
part1=debug
|
|
else
|
|
part1=no-debug
|
|
fi
|
|
if test "$enable_experimental_zts" = "yes"; then
|
|
part2=zts
|
|
else
|
|
part2=non-zts
|
|
fi
|
|
extbasedir=$part1-$part2-$extbasedir
|
|
EXTENSION_DIR=$libdir/extensions/$extbasedir
|
|
else
|
|
if test "$enable_experimental_zts" = "yes"; then
|
|
extbasedir=$extbasedir-zts
|
|
fi
|
|
|
|
if test "$PHP_DEBUG" = "1"; then
|
|
extbasedir=$extbasedir-debug
|
|
fi
|
|
EXTENSION_DIR=$libdir/$extbasedir
|
|
fi
|
|
fi
|
|
|
|
dnl Expand all directory names for use in macros/constants
|
|
EXPANDED_PEAR_INSTALLDIR=`eval echo $PEAR_INSTALLDIR`
|
|
EXPANDED_EXTENSION_DIR=`eval echo $EXTENSION_DIR`
|
|
EXPANDED_LOCALSTATEDIR=`eval echo $localstatedir`
|
|
EXPANDED_BINDIR=`eval echo $bindir`
|
|
EXPANDED_LIBDIR=$libdir
|
|
EXPANDED_SYSCONFDIR=`eval echo $sysconfdir`
|
|
EXPANDED_DATADIR=$datadir
|
|
EXPANDED_PHP_CONFIG_FILE_PATH=`eval echo "$PHP_CONFIG_FILE_PATH"`
|
|
EXPANDED_PHP_CONFIG_FILE_SCAN_DIR=`eval echo "$PHP_CONFIG_FILE_SCAN_DIR"`
|
|
INCLUDE_PATH=.:$EXPANDED_PEAR_INSTALLDIR
|
|
|
|
exec_prefix=$old_exec_prefix
|
|
libdir=$old_libdir
|
|
datadir=$old_datadir
|
|
|
|
AC_SUBST(INCLUDE_PATH)
|
|
AC_SUBST(EXPANDED_PEAR_INSTALLDIR)
|
|
AC_SUBST(EXPANDED_EXTENSION_DIR)
|
|
AC_SUBST(EXPANDED_BINDIR)
|
|
AC_SUBST(EXPANDED_LIBDIR)
|
|
AC_SUBST(EXPANDED_DATADIR)
|
|
AC_SUBST(EXPANDED_SYSCONFDIR)
|
|
AC_SUBST(EXPANDED_LOCALSTATEDIR)
|
|
AC_SUBST(EXPANDED_PHP_CONFIG_FILE_PATH)
|
|
AC_SUBST(EXPANDED_PHP_CONFIG_FILE_SCAN_DIR)
|
|
|
|
if test -n "$php_ldflags_add_usr_lib"; then
|
|
PHP_RPATHS="$PHP_RPATHS /usr/lib"
|
|
fi
|
|
|
|
PHP_UTILIZE_RPATHS
|
|
|
|
if test -z "$php_ldflags_add_usr_lib"; then
|
|
PHP_REMOVE_USR_LIB(PHP_LDFLAGS)
|
|
PHP_REMOVE_USR_LIB(LDFLAGS)
|
|
fi
|
|
|
|
EXTRA_LDFLAGS="$EXTRA_LDFLAGS $PHP_LDFLAGS"
|
|
|
|
PHP_BUILD_DATE=`date '+%Y-%m-%d'`
|
|
AC_DEFINE_UNQUOTED(PHP_BUILD_DATE,"$PHP_BUILD_DATE",[PHP build date])
|
|
PHP_UNAME=`uname -a | xargs`
|
|
AC_DEFINE_UNQUOTED(PHP_UNAME,"$PHP_UNAME",[uname -a output])
|
|
PHP_OS=`uname | xargs`
|
|
AC_DEFINE_UNQUOTED(PHP_OS,"$PHP_OS",[uname output])
|
|
|
|
if test "$PHP_SAPI_CLI" != "no"; then
|
|
PHP_CLI_TARGET=sapi/cli/php
|
|
PHP_INSTALL_CLI_TARGET="install-cli"
|
|
PHP_ADD_SOURCES(sapi/cli, php_cli.c getopt.c,, cli)
|
|
fi
|
|
|
|
PHP_SUBST(PHP_CLI_TARGET)
|
|
PHP_SUBST(PHP_SAPI_OBJS)
|
|
PHP_SUBST(PHP_CLI_OBJS)
|
|
PHP_SUBST(PHP_GLOBAL_OBJS)
|
|
|
|
PHP_SUBST(PHP_MODULES)
|
|
|
|
PHP_SUBST(EXT_LIBS)
|
|
|
|
PHP_SUBST_OLD(abs_builddir)
|
|
PHP_SUBST_OLD(abs_srcdir)
|
|
PHP_SUBST_OLD(php_abs_top_builddir)
|
|
PHP_SUBST_OLD(php_abs_top_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(localstatedir)
|
|
PHP_SUBST(datadir)
|
|
PHP_SUBST(sysconfdir)
|
|
|
|
PHP_SUBST(AWK)
|
|
PHP_SUBST(CC)
|
|
PHP_SUBST(CFLAGS)
|
|
PHP_SUBST(CFLAGS_CLEAN)
|
|
PHP_SUBST_OLD(CONFIGURE_COMMAND)
|
|
PHP_SUBST(CPP)
|
|
PHP_SUBST(CPPFLAGS)
|
|
PHP_SUBST(CXX)
|
|
PHP_SUBST(CXXFLAGS)
|
|
PHP_SUBST(CXXFLAGS_CLEAN)
|
|
PHP_SUBST(CXX_PHP_COMPILE)
|
|
PHP_SUBST_OLD(DEBUG_CFLAGS)
|
|
PHP_SUBST(DEFS)
|
|
PHP_SUBST_OLD(EXTENSION_DIR)
|
|
PHP_SUBST(EXTRA_LDFLAGS)
|
|
PHP_SUBST_OLD(EXTRA_LIBS)
|
|
PHP_SUBST_OLD(ZEND_EXTRA_LIBS)
|
|
PHP_SUBST_OLD(INCLUDES)
|
|
PHP_SUBST_OLD(EXTRA_INCLUDES)
|
|
PHP_SUBST_OLD(INCLUDE_PATH)
|
|
PHP_SUBST_OLD(INSTALL_IT)
|
|
PHP_SUBST(LEX)
|
|
PHP_SUBST(LEX_OUTPUT_ROOT)
|
|
PHP_SUBST(LFLAGS)
|
|
PHP_SUBST(LIBTOOL)
|
|
PHP_SUBST(LN_S)
|
|
PHP_SUBST_OLD(NATIVE_RPATHS)
|
|
PHP_SUBST_OLD(PEAR_INSTALLDIR)
|
|
PHP_SUBST(PHP_BUILD_DATE)
|
|
PHP_SUBST(PHP_COMPILE)
|
|
PHP_SUBST_OLD(PHP_LDFLAGS)
|
|
PHP_SUBST_OLD(PHP_LIBS)
|
|
PHP_SUBST(OVERALL_TARGET)
|
|
PHP_SUBST(PHP_RPATHS)
|
|
PHP_SUBST(PHP_SAPI)
|
|
PHP_SUBST_OLD(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(PHP_FRAMEWORKS)
|
|
PHP_SUBST(PHP_FRAMEWORKPATH)
|
|
PHP_SUBST_OLD(YACC)
|
|
PHP_SUBST_OLD(SHLIB_SUFFIX_NAME)
|
|
|
|
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
|
|
|
|
AC_PROG_LIBTOOL
|
|
if test "$enable_debug" != "yes"; then
|
|
PHP_SET_LIBTOOL_VARIABLE([--silent])
|
|
fi
|
|
|
|
|
|
test -z "$PHP_COMPILE" && PHP_COMPILE='$(LIBTOOL) --mode=compile $(COMPILE) -c $<'
|
|
test -z "$CXX_PHP_COMPILE" && CXX_PHP_COMPILE='$(LIBTOOL) --mode=compile $(CXX_COMPILE) -c $<'
|
|
SHARED_LIBTOOL='$(LIBTOOL)'
|
|
|
|
CC=$old_CC
|
|
|
|
PHP_CONFIGURE_PART(Generating files)
|
|
|
|
CXXFLAGS_CLEAN=$CXXFLAGS
|
|
CFLAGS_CLEAN=$CFLAGS
|
|
CFLAGS="\$(CFLAGS_CLEAN) $standard_libtool_flag"
|
|
INLINE_CFLAGS="$INLINE_CFLAGS $standard_libtool_flag"
|
|
CXXFLAGS="$CXXFLAGS $standard_libtool_flag"
|
|
|
|
all_targets='$(OVERALL_TARGET) $(PHP_MODULES) $(PHP_CLI_TARGET)'
|
|
install_targets="install-sapi install-modules $PHP_INSTALL_CLI_TARGET $install_pear"
|
|
PHP_SUBST(all_targets)
|
|
PHP_SUBST(install_targets)
|
|
|
|
PHP_ADD_SOURCES(TSRM, TSRM.c tsrm_strtok_r.c tsrm_virtual_cwd.c)
|
|
|
|
PHP_ADD_SOURCES(main, main.c snprintf.c spprintf.c php_sprintf.c \
|
|
safe_mode.c fopen_wrappers.c alloca.c \
|
|
php_ini.c SAPI.c rfc1867.c php_content_types.c strlcpy.c \
|
|
strlcat.c mergesort.c reentrancy.c php_variables.c php_ticks.c \
|
|
streams.c network.c php_open_temporary_file.c php_logos.c \
|
|
output.c memory_streams.c user_streams.c)
|
|
PHP_ADD_SOURCES(/main, internal_functions.c,, sapi)
|
|
PHP_ADD_SOURCES(/main, internal_functions_cli.c,, cli)
|
|
|
|
PHP_ADD_SOURCES(/Zend, zend_language_parser.c zend_language_scanner.c \
|
|
zend_ini_parser.c zend_ini_scanner.c)
|
|
|
|
PHP_ADD_SOURCES(Zend, \
|
|
zend_alloc.c zend_compile.c zend_constants.c zend_dynamic_array.c \
|
|
zend_execute_API.c zend_highlight.c zend_llist.c \
|
|
zend_opcode.c zend_operators.c zend_ptr_stack.c zend_stack.c \
|
|
zend_variables.c zend.c zend_API.c zend_extensions.c zend_hash.c \
|
|
zend_list.c zend_indent.c zend_builtin_functions.c zend_sprintf.c \
|
|
zend_ini.c zend_qsort.c zend_multibyte.c)
|
|
|
|
if test -r "$abs_srcdir/Zend/zend_objects.c"; then
|
|
PHP_ADD_SOURCES(Zend, zend_objects.c zend_object_handlers.c zend_objects_API.c zend_mm.c)
|
|
fi
|
|
|
|
dnl Selectively disable optimization due to high RAM usage during
|
|
dnl compiling the executor.
|
|
if test -n "$GCC" && test "$ZEND_INLINE_OPTIMIZATION" != "yes"; then
|
|
flag=-O0
|
|
else
|
|
flag=
|
|
fi
|
|
|
|
PHP_ADD_SOURCES_X(Zend, zend_execute.c,,PHP_GLOBAL_OBJS,,$flag)
|
|
|
|
PHP_ADD_BUILD_DIR(main)
|
|
PHP_ADD_BUILD_DIR(regex)
|
|
PHP_ADD_BUILD_DIR(sapi/$PHP_SAPI sapi/cli)
|
|
PHP_ADD_BUILD_DIR(TSRM)
|
|
PHP_ADD_BUILD_DIR(Zend)
|
|
|
|
|
|
PHP_ADD_MAKEFILE_FRAGMENT($abs_srcdir/pear/Makefile.frag,$abs_srcdir/pear,pear)
|
|
PHP_ADD_MAKEFILE_FRAGMENT($abs_srcdir/Makefile.frag,$abs_srcdir/Zend,Zend)
|
|
|
|
PHP_GEN_BUILD_DIRS
|
|
PHP_GEN_GLOBAL_MAKEFILE
|
|
|
|
AC_DEFINE([HAVE_BUILD_DEFS_H], 1, [ ])
|
|
|
|
$php_shtool mkdir -p pear/scripts
|
|
ALL_OUTPUT_FILES="php4.spec main/build-defs.h \
|
|
pear/scripts/phpize pear/scripts/php-config \
|
|
$PHP_OUTPUT_FILES"
|
|
|
|
AC_OUTPUT($ALL_OUTPUT_FILES, [], [
|
|
|
|
if test "\$CONFIG_FILES" = "$ALL_OUTPUT_FILES" || test "\$CONFIG_FILES" = " $ALL_OUTPUT_FILES" || test -z "\$CONFIG_FILES"; then
|
|
REDO_ALL=yes
|
|
fi
|
|
|
|
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
|
|
#
|
|
|
|
test -d TSRM || mkdir TSRM
|
|
echo '#include "../main/php_config.h"' > TSRM/tsrm_config.h
|
|
|
|
test -d Zend || mkdir Zend
|
|
|
|
cat >Zend/zend_config.h <<FEO
|
|
#include "../main/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 test -n "\$REDO_ALL"; then
|
|
# Hacking while airborne considered harmful.
|
|
#
|
|
echo "creating main/internal_functions.c"
|
|
extensions="$EXT_STATIC"
|
|
dnl mv -f main/internal_functions.c main/internal_functions.c.old 2>/dev/null
|
|
sh $srcdir/build/genif.sh $srcdir/main/internal_functions.c.in $srcdir "$EXTRA_MODULE_PTRS" $AWK \$extensions > main/internal_functions.c
|
|
|
|
echo "creating main/internal_functions_cli.c"
|
|
cli_extensions="$EXT_CLI_STATIC"
|
|
sh $srcdir/build/genif.sh $srcdir/main/internal_functions.c.in $srcdir "$EXTRA_MODULE_PTRS" $AWK \$cli_extensions > main/internal_functions_cli.c
|
|
|
|
dnl if cmp main/internal_functions.c.old main/internal_functions.c > /dev/null 2>&1; then
|
|
dnl echo "main/internal_functions.c is unchanged"
|
|
dnl mv main/internal_functions.c.old main/internal_functions.c
|
|
dnl else
|
|
dnl rm -f main/internal_functions.c.old
|
|
dnl fi
|
|
|
|
if test "$UNAME" = "FreeBSD" && test "$PHP_SAPI" = "apache2filter" && test "$TSRM_PTH" != "pth-config" ; then
|
|
echo "+--------------------------------------------------------------------+"
|
|
echo "| *** WARNING *** |"
|
|
echo "| |"
|
|
echo "| In order to build PHP as a Apache2 module on FreeBSD, you have to |"
|
|
echo "| add --with-tsrm-pth to your ./configure line. Therefore you need |"
|
|
echo "| to install gnu-pth from /usr/ports/devel/pth. |"
|
|
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.build#faq.build.apxs |"
|
|
echo "| and make the 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 "| |"
|
|
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/security.php for more details. |"
|
|
fi
|
|
fi
|
|
fi
|
|
|
|
|
|
if test -n "$DEBUG_LOG"; then
|
|
rm -f config.cache
|
|
cat <<X
|
|
+--------------------------------------------------------------------+
|
|
| *** ATTENTION *** |
|
|
| |
|
|
| Something is likely to be messed up here, because the configure |
|
|
| script was not able to detect a simple feature on your platform. |
|
|
| This is often caused by incorrect configuration parameters. Please |
|
|
| see the file debug.log for error messages. |
|
|
| |
|
|
| If you are unable to fix this, send the file debug.log to the |
|
|
| php-install@lists.php.net mailing list and include appropiate |
|
|
| information about your setup. |
|
|
X
|
|
fi
|
|
|
|
if test "$PHP_DB" != "no"; then
|
|
cat <<X
|
|
+--------------------------------------------------------------------+
|
|
| *** WARNING *** |
|
|
| |
|
|
| You chose to compile PHP with DB extension. This extension is |
|
|
| deprecated and does not support databse locking correctly. Please |
|
|
| use DBA extension which is a fully operational superset. |
|
|
X
|
|
fi
|
|
|
|
if test "$MYSQL_MODULE_TYPE" = "builtin" && test "$PHP_SAPI" != "cgi" && test "$PHP_SAPI" != "cli" && test "$php_multiple_shlib_versions_ok" != "yes"; then
|
|
cat <<X
|
|
+--------------------------------------------------------------------+
|
|
| *** WARNING *** |
|
|
| |
|
|
| You chose to compile PHP with the built-in MySQL support. If you |
|
|
| are compiling a server module, and intend to use other server |
|
|
| modules that also use MySQL (e.g, mod_auth_mysql, PHP 3.0, |
|
|
| mod_perl) you must NOT rely on PHP's built-in MySQL support, and |
|
|
| instead build it with your local MySQL support files, by adding |
|
|
| --with-mysql=/path/to/mysql to your configure line. |
|
|
X
|
|
fi
|
|
|
|
# Warn about linking Apache with libpthread if oci8 extension is enabled on linux.
|
|
if test "$PHP_OCI8" != "no" -o "$PHP_ORACLE" != "no"; then
|
|
if test "$PHP_SAPI" = "apache"; then
|
|
if test `uname` = "Linux"; then
|
|
cat <<X
|
|
+--------------------------------------------------------------------+
|
|
| *** WARNING *** |
|
|
| |
|
|
| Please check that your Apache (httpd) is linked with libpthread. |
|
|
| If not, you have to recompile Apache with pthread. For more |
|
|
| details, see this page: http://www.php.net/manual/ref.oci8.php |
|
|
X
|
|
fi
|
|
fi
|
|
|
|
if test "$PHP_SIGCHILD" != "yes"; then
|
|
cat <<X
|
|
+--------------------------------------------------------------------+
|
|
| Notice: |
|
|
| If you encounter <defunc> processes when using a local Oracle-DB |
|
|
| please recompile PHP and specify --enable-sigchild when configuring|
|
|
| (This problem has been reported under Linux using Oracle >= 8.1.5) |
|
|
X
|
|
fi
|
|
fi
|
|
|
|
cat<<X
|
|
+--------------------------------------------------------------------+
|
|
| License: |
|
|
| This software is subject to the PHP License, available in this |
|
|
| distribution in the file LICENSE. By continuing this installation |
|
|
| process, you are bound by the terms of this license agreement. |
|
|
| If you do not agree with the terms of this license, you must abort |
|
|
| the installation process at this point. |
|
|
+--------------------------------------------------------------------+
|
|
| *** NOTE *** |
|
|
| The default for register_globals is now OFF! |
|
|
| |
|
|
| If your application relies on register_globals being ON, you |
|
|
| should explicitly set it to on in your php.ini file. |
|
|
| Note that you are strongly encouraged to read |
|
|
| http://www.php.net/manual/en/security.registerglobals.php |
|
|
| about the implications of having register_globals set to on, and |
|
|
| avoid using it if possible. |
|
|
+--------------------------------------------------------------------+
|
|
|
|
X
|
|
PHP_CONFIGURE_PART(Thank you for using PHP.)
|
|
cat<<X
|
|
|
|
|
|
X
|
|
|
|
fi
|
|
])
|
|
|
|
dnl ## Local Variables:
|
|
dnl ## tab-width: 4
|
|
dnl ## End:
|