mirror of
https://github.com/php/php-src.git
synced 2024-12-11 10:54:47 +08:00
1313 lines
37 KiB
Bash
1313 lines
37 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_INIT(README.CVS-RULES)
|
|
|
|
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=3
|
|
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 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
|
|
|
|
BSD_MAKEFILE=no
|
|
|
|
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";;
|
|
*bsdi*)
|
|
BSD_MAKEFILE=yes;;
|
|
*beos*)
|
|
beos_threads=1
|
|
LIBS="$LIBS -lbe -lroot";;
|
|
*mips*)
|
|
CPPFLAGS="$CPPFLAGS -D_XPG_IV";;
|
|
esac
|
|
|
|
|
|
|
|
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
|
|
|
|
dnl AC_AIX needs to be before any macros that run the C compiler.
|
|
AC_AIX
|
|
|
|
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
|
|
dnl AC_PROG_CXX
|
|
dnl AC_PROG_CXXCPP
|
|
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
|
|
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
|
|
|
|
|
|
|
|
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_PROGRAM=php
|
|
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)
|
|
|
|
if test "$PHP_SAPI" = "default"; then
|
|
PHP_SELECT_SAPI(cgi, program, cgi_main.c getopt.c)
|
|
fi
|
|
|
|
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
|
|
|
|
|
|
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 -------------------------------------------------------------------------
|
|
|
|
AC_CHECK_LIB(socket, socket, [
|
|
PHP_ADD_LIBRARY(socket)
|
|
AC_DEFINE(HAVE_LIBSOCKET,1,[ ]) ], [
|
|
AC_CHECK_LIB(socket, htonl, [
|
|
PHP_ADD_LIBRARY(socket)
|
|
])])
|
|
|
|
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.
|
|
|
|
unset ac_cv_func_gethostname
|
|
unset ac_cv_func_yp_get_default_domain
|
|
AC_CHECK_FUNC(gethostname, [
|
|
php_no_nsl_checks=yes
|
|
],[
|
|
AC_CHECK_FUNC(yp_get_default_domain, [
|
|
php_no_nsl_checks=yes
|
|
])
|
|
])
|
|
unset ac_cv_func_gethostname
|
|
unset ac_cv_func_yp_get_default_domain
|
|
|
|
if test "$php_no_nsl_checks" != "yes"; then
|
|
|
|
AC_CHECK_LIB(nsl, gethostname, [
|
|
PHP_ADD_LIBRARY(nsl)
|
|
AC_DEFINE(HAVE_LIBNSL,1,[ ]) ],[
|
|
AC_CHECK_LIB(nsl, gethostbyaddr, [
|
|
PHP_ADD_LIBRARY(nsl)
|
|
AC_DEFINE(HAVE_LIBNSL,1,[ ]) ], [])
|
|
])
|
|
|
|
fi
|
|
|
|
AC_CHECK_LIB(dl, dlopen,[PHP_ADD_LIBRARY(dl)])
|
|
|
|
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)
|
|
|
|
dnl Only include libbind if inet_aton is not found in
|
|
dnl libresolv.
|
|
AC_CHECK_LIB(resolv, inet_aton, [], [
|
|
AC_CHECK_LIB(bind, inet_aton, [], [
|
|
AC_CHECK_LIB(bind, __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,1,[ ]) ], [
|
|
AC_CHECK_LIB(resolv, res_search, [
|
|
LIBS="$LIBS -lresolv"
|
|
AC_DEFINE(HAVE_LIBRESOLV,1,[ ])
|
|
], [
|
|
AC_CHECK_LIB(resolv, dn_skipname)
|
|
AC_CHECK_LIB(resolv, __dn_skipname)
|
|
])
|
|
])
|
|
|
|
|
|
|
|
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 \
|
|
alloca.h \
|
|
arpa/inet.h \
|
|
arpa/nameser.h \
|
|
assert.h \
|
|
crypt.h \
|
|
fcntl.h \
|
|
grp.h \
|
|
ieeefp.h \
|
|
langinfo.h \
|
|
limits.h \
|
|
locale.h \
|
|
mach-o/dyld.h \
|
|
netinet/in.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/time.h \
|
|
sys/types.h \
|
|
sys/varargs.h \
|
|
sys/wait.h \
|
|
unistd.h \
|
|
unix.h \
|
|
utime.h \
|
|
sys/utsname.h \
|
|
)
|
|
|
|
|
|
|
|
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 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])])
|
|
if test "$ac_cv_ipv6_support" = yes; then
|
|
AC_DEFINE(HAVE_IPV6,1,[Whether you have IPv6 support])
|
|
fi
|
|
|
|
|
|
|
|
dnl Checks for library functions.
|
|
dnl -------------------------------------------------------------------------
|
|
|
|
AC_FUNC_VPRINTF
|
|
AC_CHECK_FUNCS(
|
|
asctime_r \
|
|
chroot \
|
|
ctime_r \
|
|
cuserid \
|
|
crypt \
|
|
flock \
|
|
gai_strerror \
|
|
gcvt \
|
|
getlogin \
|
|
gethostbyaddr \
|
|
getprotobyname \
|
|
getprotobynumber \
|
|
getservbyname \
|
|
getservbyport \
|
|
getrusage \
|
|
gettimeofday \
|
|
gmtime_r \
|
|
inet_aton \
|
|
isascii \
|
|
link \
|
|
localtime_r \
|
|
lockf \
|
|
lrand48 \
|
|
memcpy \
|
|
memmove \
|
|
mkstemp \
|
|
mmap \
|
|
nl_langinfo \
|
|
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_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)
|
|
|
|
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)
|
|
|
|
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)
|
|
|
|
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
|
|
|
|
# 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)
|
|
|
|
if test "$PHP_PEAR" != "no" && test "$disable_cli" != "1"; 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.])
|
|
|
|
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_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
|
|
|
|
PHP_ARG_ENABLE(sigchild,whether to enable PHP's own SIGCHLD handler,
|
|
[ --enable-sigchild Enable PHP's own SIGCHLD handler.],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.])
|
|
|
|
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
|
|
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)
|
|
|
|
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])
|
|
|
|
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
|
|
|
|
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)
|
|
|
|
# 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_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=`egrep '#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"`
|
|
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)
|
|
|
|
PHP_BUILD_RPATH
|
|
|
|
PHP_REMOVE_USR_LIB(PHP_LDFLAGS)
|
|
PHP_REMOVE_USR_LIB(LDFLAGS)
|
|
|
|
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`
|
|
AC_DEFINE_UNQUOTED(PHP_UNAME,"$PHP_UNAME",[uname -a output])
|
|
PHP_OS=`uname`
|
|
AC_DEFINE_UNQUOTED(PHP_OS,"$PHP_OS",[uname output])
|
|
|
|
if test "$disable_cli" != "1"; 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_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
|
|
|
|
$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 "$MYSQL_MODULE_TYPE" = "builtin" && test "$PHP_SAPI" != "cgi" && test "$PHP_SAPI" != "cli"; 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. |
|
|
+--------------------------------------------------------------------+
|
|
|
|
|
|
Thank you for using PHP.
|
|
|
|
X
|
|
|
|
fi
|
|
])
|
|
|
|
dnl ## Local Variables:
|
|
dnl ## tab-width: 4
|
|
dnl ## End:
|