## $Id$ -*- autoconf -*- 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. dnl ## This includes whether debugging or short tags are enabled dnl ## 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 include Zend specific macro definitions first dnl ------------------------------------------------------------------------- sinclude(Zend/acinclude.m4) dnl Basic autoconf + automake initialization, generation of config.nice. dnl ------------------------------------------------------------------------- AC_PREREQ(2.13) AC_INIT(README.SVN-RULES) PHP_CONFIG_NICE(config.nice) PHP_CANONICAL_HOST_TARGET AC_CONFIG_HEADER(main/php_config.h) PHP_MAJOR_VERSION=5 PHP_MINOR_VERSION=3 PHP_RELEASE_VERSION=9 PHP_EXTRA_VERSION="RC3" PHP_VERSION="$PHP_MAJOR_VERSION.$PHP_MINOR_VERSION.$PHP_RELEASE_VERSION$PHP_EXTRA_VERSION" PHP_VERSION_ID=`expr [$]PHP_MAJOR_VERSION \* 10000 + [$]PHP_MINOR_VERSION \* 100 + [$]PHP_RELEASE_VERSION` dnl Allow version values to be used in Makefile PHP_SUBST(PHP_MAJOR_VERSION) PHP_SUBST(PHP_MINOR_VERSION) PHP_SUBST(PHP_RELEASE_VERSION) PHP_SUBST(PHP_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 ------------------------------------------------------------------------- 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 $PHP_MAJOR_VERSION" >> php_version.h.new echo "#define PHP_MINOR_VERSION $PHP_MINOR_VERSION" >> php_version.h.new echo "#define PHP_RELEASE_VERSION $PHP_RELEASE_VERSION" >> php_version.h.new echo "#define PHP_EXTRA_VERSION \"$PHP_EXTRA_VERSION\"" >> php_version.h.new echo "#define PHP_VERSION \"$PHP_VERSION\"" >> php_version.h.new echo "#define PHP_VERSION_ID $PHP_VERSION_ID" >> php_version.h.new cmp php_version.h.new $srcdir/main/php_version.h >/dev/null 2>&1 if test $? -ne 0 ; then rm -f $srcdir/main/php_version.h && mv php_version.h.new $srcdir/main/php_version.h && \ echo 'Updated main/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 if test -n "$with_apxs2filter" && test -n "$with_apxs2"; then AC_MSG_ERROR([--with-apxs2filter and --with-apxs2 cannot be used together]) fi dnl Settings we want to make before the checks. dnl ------------------------------------------------------------------------- cwd=`pwd` php_shtool=$srcdir/build/shtool T_MD=`$php_shtool echo -n -e %B` T_ME=`$php_shtool echo -n -e %b` PHP_INIT_BUILD_SYSTEM 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([cc gcc]) PHP_DETECT_ICC PHP_DETECT_SUNCC 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 AC_PROG_LN_S dnl Support systems with system libraries in e.g. /usr/lib64 PHP_ARG_WITH(libdir, for system library directory, [ --with-libdir=NAME Look for libraries in .../NAME rather than .../lib],lib,no) PHP_ARG_ENABLE(rpath, whether to enable runpaths, [ --disable-rpath Disable passing additional runtime library search paths], yes, no) dnl check for -R, etc. switch PHP_RUNPATH_SWITCH dnl Checks for some support/generator progs PHP_PROG_AWK PHP_PROG_BISON PHP_PROG_RE2C dnl Check if bison generated files exist when bison does not.. case $php_cv_bison_version in ""|invalid[)] if ! test -f "$abs_srcdir/Zend/zend_language_parser.h" || ! test -f "$abs_srcdir/Zend/zend_language_parser.c" ; then AC_MSG_ERROR([bison is required to build PHP/Zend when building a SVN checkout!]) fi ;; esac PHP_ARG_ENABLE(re2c-cgoto, whether to enable computed goto gcc extension with re2c, [ --enable-re2c-cgoto Enable -g flag to re2c to use computed goto gcc extension], no, no) if test "$PHP_RE2C_CGOTO" = "no"; then RE2C_FLAGS="" else AC_MSG_CHECKING([whether re2c -g works]) AC_TRY_COMPILE([],[ int main(int argc, const char **argv) { argc = argc; argv = argv; label1: label2: static void *adr[] = { &&label1, &&label2}; goto *adr[0]; return 0; } ],[ RE2C_FLAGS="" AC_MSG_RESULT([no]) ],[ RE2C_FLAGS="-g" AC_MSG_RESULT([yes]) ]) fi PHP_SUBST(RE2C_FLAGS) dnl Platform-specific compile settings. dnl ------------------------------------------------------------------------- dnl See bug #28605 case $host_cpu in alpha*) if test "$GCC" = "yes"; then CFLAGS="$CFLAGS -mieee" else CFLAGS="$CFLAGS -ieee" fi ;; sparc*) if test "$SUNCC" = "yes"; then CFLAGS="$CFLAGS -xmemalign=8s" fi ;; esac dnl activate some gcc specific optimizations for gcc >= 4 if test "$GCC" = "yes"; then case $host_alias in *darwin*) GCC_MAJOR_VERSION=`$CC -dumpversion | /usr/bin/sed -nE '1s/([[0-9]]+)\.[[0-9]]+\..*/\1/;1p'` ;; *) GCC_MAJOR_VERSION=`$CC --version | $SED -n '1s/[[^0-9]]*//;1s/\..*//;1p'` ;; esac if test $GCC_MAJOR_VERSION -ge 4; then CFLAGS="$CFLAGS -fvisibility=hidden" fi 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*) if test -n "$GCC"; then PHP_CHECK_GCC_ARG(-no-cpp-precomp, gcc_no_cpp_precomp=yes) if test "$gcc_no_cpp_precomp" = "yes"; then CPPFLAGS="$CPPFLAGS -no-cpp-precomp" fi fi php_multiple_shlib_versions_ok=yes ;; *beos*) beos_threads=1 LIBS="$LIBS -lbe -lroot" ;; *mips*) CPPFLAGS="$CPPFLAGS -D_XPG_IV" ;; *hpux*) if test "$GCC" = "yes"; then CPPFLAGS="$CPPFLAGS -D_XOPEN_SOURCE_EXTENDED" fi ;; *netware*) PHP_BUILD_PROGRAM PHP_ADD_SOURCES(/main, internal_functions.c,,PHP_GLOBAL_OBJS) PHP_ADD_SOURCES(win32, sendmail.c, -I$CFLAGS, PHP_GLOBAL_OBJS) PHP5LIB_SHARED_LIBADD=\$\(EXTRA_LIBS\) EXTENSION_DIR=sys:/php$PHP_MAJOR_VERSION/ext PHP_SUBST(PHP5LIB_SHARED_LIBADD) PHP_SHARED_MODULE(php5lib, PHP_GLOBAL_OBJS, netware) ;; esac # Disable PIC mode by default where it is known to be safe to do so, # to avoid the performance hit from the lost register AC_MSG_CHECKING([whether to force non-PIC code in shared modules]) case $host_alias in i?86-*-linux*|i?86-*-freebsd*) if test "${with_pic+set}" != "set" || test "$with_pic" = "no"; then with_pic=no AC_MSG_RESULT(yes) else AC_MSG_RESULT(no) fi ;; *) AC_MSG_RESULT(no) ;; esac dnl Include Zend and TSRM configurations. dnl ------------------------------------------------------------------------- sinclude(Zend/Zend.m4) sinclude(TSRM/threads.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_NAMES PHP_SAPI=default PHP_BUILD_PROGRAM dnl SAPI configuration. dnl ------------------------------------------------------------------------- dnl paths to the targets are relative to the build directory SAPI_SHARED=libs/libphp[]$PHP_MAJOR_VERSION[.]$SHLIB_DL_SUFFIX_NAME SAPI_STATIC=libs/libphp[]$PHP_MAJOR_VERSION[.a] SAPI_LIBTOOL=libphp[]$PHP_MAJOR_VERSION[.la] PHP_CONFIGURE_PART(Configuring SAPI modules) esyscmd(./build/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_maintainer_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. dnl ## This includes whether debugging or short tags are enabled dnl ## and the default behaviour of php.ini options. dnl Starting system checks. dnl ------------------------------------------------------------------------- PHP_CONFIGURE_PART(Running system checks) dnl Find sendmail binary PHP_PROG_SENDMAIL dnl Check whether the system uses EBCDIC (not ASCII) as its native codeset PHP_EBCDIC dnl Check whether the system byte ordering is bigendian PHP_C_BIGENDIAN dnl Check whether writing to stdout works PHP_TEST_WRITE_STDOUT 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 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(socketpair, 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 inet_aton dnl in -lc, -lbind and -lresolv PHP_CHECK_FUNC(inet_aton, resolv, bind) dnl Then headers. dnl ------------------------------------------------------------------------- dnl Checks for header files. AC_HEADER_STDC AC_HEADER_DIRENT dnl QNX requires unix.h to allow functions in libunix to work properly AC_CHECK_HEADERS([ \ inttypes.h \ stdint.h \ dirent.h \ ApplicationServices/ApplicationServices.h \ sys/param.h \ sys/types.h \ sys/time.h \ netinet/in.h \ alloca.h \ arpa/inet.h \ arpa/nameser.h \ assert.h \ crypt.h \ dns.h \ fcntl.h \ grp.h \ ieeefp.h \ langinfo.h \ limits.h \ locale.h \ monetary.h \ netdb.h \ pwd.h \ resolv.h \ signal.h \ stdarg.h \ stdlib.h \ string.h \ syslog.h \ sysexits.h \ sys/ioctl.h \ sys/file.h \ sys/mman.h \ sys/mount.h \ sys/poll.h \ sys/resource.h \ sys/select.h \ sys/socket.h \ sys/stat.h \ sys/statfs.h \ sys/statvfs.h \ sys/vfs.h \ sys/sysexits.h \ sys/varargs.h \ sys/wait.h \ sys/loadavg.h \ termios.h \ unistd.h \ unix.h \ utime.h \ sys/utsname.h \ sys/ipc.h \ dlfcn.h \ assert.h ],[],[],[ #ifdef HAVE_SYS_PARAM_H #include #endif #ifdef HAVE_SYS_TYPES_H #include #endif #ifdef HAVE_SYS_TIME_H #include #endif #ifdef HAVE_NETINET_IN_H #include #endif #ifdef HAVE_ARPA_NAMESER_H #include #endif ]) PHP_FOPENCOOKIE PHP_BROKEN_GETCWD PHP_BROKEN_GLIBC_FOPEN_APPEND dnl Checks for typedefs, structures, and compiler characteristics. dnl ------------------------------------------------------------------------- AC_STRUCT_TM AC_STRUCT_TIMEZONE PHP_MISSING_TIME_R_DECL PHP_MISSING_FCLOSE_DECL PHP_TM_GMTOFF PHP_STRUCT_FLOCK PHP_SOCKLEN_T AC_CHECK_SIZEOF(size_t, 8) AC_CHECK_SIZEOF(long long, 8) AC_CHECK_SIZEOF(long long int, 8) AC_CHECK_SIZEOF(long, 8) AC_CHECK_SIZEOF(int, 4) dnl These are defined elsewhere than stdio.h PHP_CHECK_SIZEOF(intmax_t, 0) PHP_CHECK_SIZEOF(ssize_t, 8) PHP_CHECK_SIZEOF(ptrdiff_t, 8) 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 sockaddr_storage and sockaddr.sa_len PHP_SOCKADDR_CHECKS dnl Check for IPv6 support AC_CACHE_CHECK([for IPv6 support], ac_cv_ipv6_support, [AC_TRY_LINK([ #include #include #include ], [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( alphasort \ asctime_r \ chroot \ ctime_r \ cuserid \ crypt \ flock \ ftok \ funopen \ gai_strerror \ gcvt \ getloadavg \ getlogin \ getprotobyname \ getprotobynumber \ getservbyname \ getservbyport \ gethostname \ getrusage \ gettimeofday \ gmtime_r \ getpwnam_r \ getgrnam_r \ getpwuid_r \ grantpt \ inet_ntoa \ inet_ntop \ inet_pton \ isascii \ link \ localtime_r \ lockf \ lchown \ lrand48 \ memcpy \ memmove \ mkstemp \ mmap \ nl_langinfo \ perror \ poll \ ptsname \ putenv \ realpath \ random \ rand_r \ scandir \ setitimer \ setlocale \ localeconv \ setenv \ setpgid \ setsockopt \ setvbuf \ shutdown \ sin \ snprintf \ srand48 \ srandom \ statfs \ statvfs \ std_syslog \ strcasecmp \ strcoll \ strdup \ strerror \ strftime \ strnlen \ strptime \ strstr \ strtok_r \ symlink \ tempnam \ tzset \ unlockpt \ unsetenv \ usleep \ utime \ vsnprintf \ vasprintf \ asprintf \ nanosleep \ ) dnl Some systems (like OpenSolaris) do not have nanosleep in libc PHP_CHECK_FUNC_LIB(nanosleep, rt) dnl Check for getaddrinfo, should be a better way, but... dnl Also check for working getaddrinfo AC_CACHE_CHECK([for getaddrinfo], ac_cv_func_getaddrinfo, [AC_TRY_LINK([#include ], [struct addrinfo *g,h;g=&h;getaddrinfo("","",g,&g);], AC_TRY_RUN([ #include #include #ifndef AF_INET # include #endif int main(void) { struct addrinfo *ai, *pai, hints; memset(&hints, 0, sizeof(hints)); hints.ai_flags = AI_NUMERICHOST; if (getaddrinfo("127.0.0.1", 0, &hints, &ai) < 0) { exit(1); } if (ai == 0) { exit(1); } pai = ai; while (pai) { if (pai->ai_family != AF_INET) { /* 127.0.0.1/NUMERICHOST should only resolve ONE way */ exit(1); } if (pai->ai_addr->sa_family != AF_INET) { /* 127.0.0.1/NUMERICHOST should only resolve ONE way */ exit(1); } pai = pai->ai_next; } freeaddrinfo(ai); exit(0); } ],ac_cv_func_getaddrinfo=yes, ac_cv_func_getaddrinfo=no, ac_cv_func_getaddrinfo=no), 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 dnl Check for the __sync_fetch_and_add builtin AC_CACHE_CHECK([for __sync_fetch_and_add], ac_cv_func_sync_fetch_and_add, [AC_TRY_LINK([],[int x;__sync_fetch_and_add(&x,1);],ac_cv_func_sync_fetch_and_add=yes,ac_cv_func_sync_fetch_and_add=no)]) if test "$ac_cv_func_sync_fetch_and_add" = yes; then AC_DEFINE(HAVE_SYNC_FETCH_AND_ADD,1,[Define if you have the __sync_fetch_and_add function]) fi AC_REPLACE_FUNCS(strlcat strlcpy getopt) AC_FUNC_UTIME_NULL AC_FUNC_ALLOCA dnl PHP_AC_BROKEN_SPRINTF dnl PHP_AC_BROKEN_SNPRINTF PHP_DECLARED_TIMEZONE PHP_TIME_R_TYPE PHP_READDIR_R_TYPE PHP_CHECK_IN_ADDR_T AC_CHECK_FUNCS(crypt_r, [ php_crypt_r="1" ], [ php_crypt_r="0" ]) if test "x$php_crypt_r" = "x1"; then PHP_CRYPT_R_STYLE fi divert(4) dnl ## In diversion 4 we check user-configurable general settings. dnl General settings. dnl ------------------------------------------------------------------------- PHP_CONFIGURE_PART(General settings) PHP_HELP_SEPARATOR([General settings:]) PHP_ARG_ENABLE(gcov, whether to include gcov symbols, [ --enable-gcov Enable GCOV code coverage (requires LTP) - FOR DEVELOPERS ONLY!!], no, no) if test "$PHP_GCOV" = "yes"; then if test "$GCC" != "yes"; then AC_MSG_ERROR([GCC is required for --enable-gcov]) fi dnl Check if ccache is being used case `$php_shtool path $CC` in *ccache*[)] gcc_ccache=yes;; *[)] gcc_ccache=no;; esac if test "$gcc_ccache" = "yes" && (test -z "$CCACHE_DISABLE" || test "$CCACHE_DISABLE" != "1"); then AC_MSG_ERROR([ccache must be disabled when --enable-gcov option is used. You can disable ccache by setting environment variable CCACHE_DISABLE=1.]) fi ltp_version_list="1.5 1.6 1.7" AC_CHECK_PROG(LTP, lcov, lcov) AC_CHECK_PROG(LTP_GENHTML, genhtml, genhtml) PHP_SUBST(LTP) PHP_SUBST(LTP_GENHTML) if test "$LTP"; then AC_CACHE_CHECK([for ltp version], php_cv_ltp_version, [ php_cv_ltp_version=invalid ltp_version=`$LTP -v 2>/dev/null | $SED -e 's/^.* //'` for ltp_check_version in $ltp_version_list; do if test "$ltp_version" = "$ltp_check_version"; then php_cv_ltp_version="$ltp_check_version (ok)" fi done ]) else ltp_msg="To enable code coverage reporting you must have one of the following LTP versions installed: $ltp_version_list" AC_MSG_ERROR([$ltp_msg]) fi case $php_cv_ltp_version in ""|invalid[)] ltp_msg="You must have one of the following versions of LTP: $ltp_version_list (found: $ltp_version)." AC_MSG_ERROR([$ltp_msg]) LTP="exit 0;" ;; esac if test -z "$LTP_GENHTML"; then AC_MSG_ERROR([Could not find genhtml from the LTP package]) fi AC_DEFINE(HAVE_GCOV, 1, [Whether you have gcov]) PHP_ADD_MAKEFILE_FRAGMENT($abs_srcdir/Makefile.gcov, $abs_srcdir) dnl Remove all optimization flags from CFLAGS changequote({,}) CFLAGS=`echo "$CFLAGS" | $SED -e 's/-O[0-9s]*//g'` CXXFLAGS=`echo "$CXXFLAGS" | $SED -e 's/-O[0-9s]*//g'` changequote([,]) dnl Add the special gcc flags CFLAGS="$CFLAGS -O0 -fprofile-arcs -ftest-coverage" CXXFLAGS="$CXXFLAGS -O0 -fprofile-arcs -ftest-coverage" fi 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 changequote({,}) CFLAGS=`echo "$CFLAGS" | $SED -e 's/-O[0-9s]*//g'` CXXFLAGS=`echo "$CXXFLAGS" | $SED -e 's/-O[0-9s]*//g'` changequote([,]) dnl add -O0 only if GCC or ICC is used if test "$GCC" = "yes" || test "$ICC" = "yes"; then CFLAGS="$CFLAGS -O0" CXXFLAGS="$CXXFLAGS -g -O0" fi if test "$SUNCC" = "yes"; then if test -n "$auto_cflags"; then CFLAGS="-g" CXXFLAGS="-g" else CFLAGS="$CFLAGS -g" CXXFLAGS="$CFLAGS -g" fi fi else PHP_DEBUG=0 ZEND_DEBUG=no fi PHP_ARG_WITH(layout, layout of installed files, [ --with-layout=TYPE Set how installed files will be laid out. Type can be either PHP or GNU [PHP]], 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 Set the path in which to look for php.ini [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 AC_MSG_CHECKING([where to scan for configuration files]) PHP_ARG_WITH(config-file-scan-dir,, [ --with-config-file-scan-dir=PATH Set the path where to scan for configuration files], DEFAULT, no) if test "$PHP_CONFIG_FILE_SCAN_DIR" = "DEFAULT"; then PHP_CONFIG_FILE_SCAN_DIR= fi AC_MSG_RESULT([$PHP_CONFIG_FILE_SCAN_DIR]) 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]) PHP_ARG_WITH(exec-dir,, [ --with-exec-dir[=DIR] Only allow executables in DIR under safe-mode [/usr/local/php/bin]], no, no) if test "$PHP_EXEC_DIR" != "no" && test "$PHP_EXEC_DIR" != "yes" ; then AC_DEFINE_UNQUOTED(PHP_SAFE_MODE_EXEC_DIR, "$PHP_EXEC_DIR", [ ]) AC_MSG_RESULT([$PHP_EXEC_DIR]) else AC_DEFINE(PHP_SAFE_MODE_EXEC_DIR, "/usr/local/php/bin", [ ]) AC_MSG_RESULT([/usr/local/php/bin]) fi 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(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 /dev/null; then CPPFLAGS="$CPPFLAGS -DFD_SETSIZE=$PHP_FD_SETSIZE" AC_MSG_RESULT([using $PHP_FD_SETSIZE]) else AC_MSG_ERROR([Invalid value passed to --enable-fd-setsize!]) fi else AC_MSG_RESULT([using system default]) fi 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 which are enabled by default ], [ PHP_ENABLE_ALL=$enableval ]) # reading config stubs esyscmd(./build/config-stubs ext) dnl Extensions post-config dnl ------------------------------------------------------------------------- enable_shared=yes enable_static=yes case $php_build_target in program|static) standard_libtool_flag='-prefer-non-pic -static' if test -z "$PHP_MODULES" && test -z "$PHP_ZEND_EX"; then enable_shared=no fi ;; shared) enable_static=no case $with_pic in yes) standard_libtool_flag='-prefer-pic' ;; no) standard_libtool_flag='-prefer-non-pic' ;; esac EXTRA_LDFLAGS="$EXTRA_LDFLAGS -avoid-version -module" ;; esac EXTRA_LIBS="$EXTRA_LIBS $DLIBS $LIBS" dnl this has to be here to prevent the openssl crypt() from dnl overriding the system provided crypt(). if test "$ac_cv_lib_crypt_crypt" = "yes"; then EXTRA_LIBS="-lcrypt $EXTRA_LIBS -lcrypt" fi unset LIBS LDFLAGS dnl PEAR dnl ------------------------------------------------------------------------- PHP_HELP_SEPARATOR([PEAR:]) PHP_CONFIGURE_PART(Configuring PEAR) # compatibility if test -z "$with_pear" && test "$enable_pear" = "no"; then with_pear=no fi # If CLI is disabled -> disable PEAR if test "$PHP_CLI" = "no"; then with_pear=no fi PHP_ARG_WITH(pear, [whether to install PEAR], [ --with-pear=DIR Install PEAR in DIR [PREFIX/lib/php] --without-pear Do not install PEAR], DEFAULT, yes) if test "$PHP_PEAR" != "no"; then dnl dnl PEAR dependancies dnl if test "$PHP_XML" = "no"; then pear_error_msg="$pear_error_msg PEAR requires XML to be enabled. Add --enable-xml to the configure line. (or --without-pear)" fi dnl dnl if test "$PHP_XMLRPC" = "no"; then dnl pear_error_msg="$pear_error_msg dnl PEAR requires XML-RPC to be enabled. Add --with-xmlrpc to the configure line. (or --without-pear)" dnl fi dnl if test "$pear_error_msg"; then AC_MSG_ERROR([$pear_error_msg]) fi install_pear="install-pear" PEAR_INSTALLDIR=$PHP_PEAR 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 PHP_ADD_MAKEFILE_FRAGMENT($abs_srcdir/pear/Makefile.frag,$abs_srcdir/pear,pear) fi dnl Configuring Zend and TSRM. dnl ------------------------------------------------------------------------- PHP_HELP_SEPARATOR([Zend:]) PHP_CONFIGURE_PART(Configuring Zend) LIBZEND_BASIC_CHECKS LIBZEND_DLSYM_CHECK LIBZEND_OTHER_CHECKS if test "$ZEND_MAINTAINER_ZTS" = "yes"; then AC_DEFINE(ZTS,1,[ ]) PHP_THREAD_SAFETY=yes else PHP_THREAD_SAFETY=no fi INCLUDES="$INCLUDES -I\$(top_builddir)/TSRM" INCLUDES="$INCLUDES -I\$(top_builddir)/Zend" if test "$abs_srcdir" != "$abs_builddir"; then INCLUDES="$INCLUDES -I\$(top_srcdir)/main -I\$(top_srcdir)/Zend" INCLUDES="$INCLUDES -I\$(top_srcdir)/TSRM -I\$(top_builddir)/" fi ZEND_EXTRA_LIBS="$LIBS" unset LIBS LDFLAGS PHP_HELP_SEPARATOR([TSRM:]) 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_LDFLAGS_PROGRAM="$EXTRA_LDFLAGS_PROGRAM $LDFLAGS" EXTRA_LIBS="$EXTRA_LIBS $LIBS" unset LIBS LDFLAGS test "$prefix" = "NONE" && prefix=/usr/local test "$exec_prefix" = "NONE" && exec_prefix='${prefix}' test "$program_prefix" = "NONE" && program_prefix= test "$program_suffix" = "NONE" && program_suffix= 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_maintainer_zts" = "yes"; then part2=zts else part2=non-zts fi extbasedir=$part1-$part2-$extbasedir EXTENSION_DIR=$libdir/extensions/$extbasedir else if test "$enable_maintainer_zts" = "yes"; then extbasedir=$extbasedir-zts fi if test "$PHP_DEBUG" = "1"; then extbasedir=$extbasedir-debug fi EXTENSION_DIR=$libdir/$extbasedir fi fi case $PHP_LAYOUT in GNU) datarootdir=$prefix/share ;; *) datarootdir=$prefix/php ;; esac 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_SBINDIR=`eval echo $sbindir` EXPANDED_MANDIR=`eval echo $mandir` 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_SBINDIR) AC_SUBST(EXPANDED_MANDIR) 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" EXTRA_LDFLAGS_PROGRAM="$EXTRA_LDFLAGS_PROGRAM $PHP_LDFLAGS" PHP_BUILD_DATE=`date '+%Y-%m-%d'` AC_DEFINE_UNQUOTED(PHP_BUILD_DATE,"$PHP_BUILD_DATE",[PHP build date]) case $host_alias in *netware*) PHP_OS="NetWare" PHP_UNAME="NetWare" AC_DEFINE_UNQUOTED(PHP_OS,"$PHP_OS",[hardcode for each of the cross compiler host]) AC_DEFINE_UNQUOTED(PHP_UNAME,"$PHP_UNAME",[hardcode for each of the cross compiler host]) ;; *) 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]) ;; esac if test "$PHP_CLI" != "no"; then PHP_CLI_TARGET="\$(SAPI_CLI_PATH)" PHP_INSTALL_CLI_TARGET="install-cli" PHP_ADD_SOURCES(sapi/cli, php_cli.c php_cli_readline.c,, cli) PHP_INSTALLED_SAPIS="cli $PHP_SAPI" PHP_EXECUTABLE="\$(top_builddir)/\$(SAPI_CLI_PATH)" else PHP_INSTALLED_SAPIS="$PHP_SAPI" fi PHP_SUBST_OLD(PHP_INSTALLED_SAPIS) PHP_SUBST(PHP_EXECUTABLE) 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(PHP_ZEND_EX) 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(sbindir) PHP_SUBST(exec_prefix) PHP_SUBST_OLD(program_prefix) PHP_SUBST_OLD(program_suffix) PHP_SUBST(includedir) PHP_SUBST(libdir) PHP_SUBST(mandir) PHP_SUBST(phplibdir) PHP_SUBST(phptempdir) PHP_SUBST(prefix) PHP_SUBST(localstatedir) PHP_SUBST(datadir) PHP_SUBST(datarootdir) PHP_SUBST(sysconfdir) PHP_SUBST(EXEEXT) PHP_SUBST(CC) PHP_SUBST(CFLAGS) PHP_SUBST(CFLAGS_CLEAN) PHP_SUBST(CPP) PHP_SUBST(CPPFLAGS) PHP_SUBST(CXX) PHP_SUBST(CXXFLAGS) PHP_SUBST(CXXFLAGS_CLEAN) PHP_SUBST_OLD(DEBUG_CFLAGS) PHP_SUBST_OLD(EXTENSION_DIR) PHP_SUBST_OLD(EXTRA_LDFLAGS) PHP_SUBST_OLD(EXTRA_LDFLAGS_PROGRAM) 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(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_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_OLD(PHP_VERSION_ID) PHP_SUBST(SHELL) PHP_SUBST(SHARED_LIBTOOL) PHP_SUBST(WARNING_LEVEL) PHP_SUBST(PHP_FRAMEWORKS) PHP_SUBST(PHP_FRAMEWORKPATH) PHP_SUBST(INSTALL_HEADERS) 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<' > TSRM/tsrm_config.h test -d Zend || $php_shtool mkdir Zend cat >Zend/zend_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 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 if test -n "$DEBUG_LOG"; then rm -f config.cache cat < processes when using a local Oracle | | database, set the value BEQUEATH_DETACH=YES in Oracle Net's | | sqlnet.ora file on the PHP host, or set the environment variable | | BEQUEATH_DETACH to YES before starting Apache. If the problem | | still occurs, then recompile PHP and specify --enable-sigchild | | when configuring. | X fi fi fi cat <