dnl Process this file with autoconf to produce a configure script. dnl Include external macro definitions before the AC_INIT to also remove dnl comments starting with # and empty newlines from the included files. dnl ---------------------------------------------------------------------------- m4_include([build/ax_check_compile_flag.m4]) m4_include([build/ax_func_which_gethostbyname_r.m4]) m4_include([build/ax_gcc_func_attribute.m4]) m4_include([build/libtool.m4]) m4_include([build/php_cxx_compile_stdcxx.m4]) m4_include([build/php.m4]) m4_include([build/pkg.m4]) m4_include([TSRM/threads.m4]) m4_include([TSRM/tsrm.m4]) dnl Basic autoconf initialization, generation of config.nice. dnl ---------------------------------------------------------------------------- AC_PREREQ([2.68]) AC_INIT([PHP],[7.4.0-dev],[https://bugs.php.net],[php],[https://www.php.net]) AC_CONFIG_SRCDIR([main/php_version.h]) AC_CONFIG_AUX_DIR([build]) AC_PRESERVE_HELP_ORDER PHP_CONFIG_NICE(config.nice) PHP_CANONICAL_HOST_TARGET AC_CONFIG_HEADERS([main/php_config.h]) AH_TOP([ #ifndef PHP_CONFIG_H #define PHP_CONFIG_H #if defined(__GNUC__) && __GNUC__ >= 4 # define ZEND_API __attribute__ ((visibility("default"))) # define ZEND_DLEXPORT __attribute__ ((visibility("default"))) #else # define ZEND_API # define ZEND_DLEXPORT #endif #define ZEND_DLIMPORT ]) AH_BOTTOM([ #ifndef ZEND_ACCONFIG_H_NO_C_PROTOS #include #ifdef HAVE_SYS_TYPES_H # include #endif #ifdef HAVE_SYS_SELECT_H #include #endif #ifdef HAVE_IEEEFP_H # include #endif #include #if defined(__cplusplus) && __cplusplus >= 201103L extern "C++" { #include #define zend_isnan std::isnan #define zend_isinf std::isinf #define zend_finite std::isfinite } #else #include #ifndef zend_isnan #if HAVE_DECL_ISNAN #define zend_isnan(a) isnan(a) #elif defined(HAVE_FPCLASS) #define zend_isnan(a) ((fpclass(a) == FP_SNAN) || (fpclass(a) == FP_QNAN)) #else #define zend_isnan(a) ((a) != (a)) #endif #endif #if HAVE_DECL_ISINF #define zend_isinf(a) isinf(a) #elif defined(INFINITY) /* Might not work, but is required by ISO C99 */ #define zend_isinf(a) (((a)==INFINITY || (a)==-INFINITY)?1:0) #elif defined(HAVE_FPCLASS) #define zend_isinf(a) ((fpclass(a) == FP_PINF) || (fpclass(a) == FP_NINF)) #else #define zend_isinf(a) 0 #endif #if HAVE_DECL_ISFINITE #define zend_finite(a) isfinite(a) #elif defined(HAVE_FINITE) #define zend_finite(a) finite(a) #elif defined(fpclassify) #define zend_finite(a) ((fpclassify((a))!=FP_INFINITE&&fpclassify((a))!=FP_NAN)?1:0) #else #define zend_finite(a) (zend_isnan(a) ? 0 : zend_isinf(a) ? 0 : 1) #endif #endif #endif /* ifndef ZEND_ACCONFIG_H_NO_C_PROTOS */ #endif /* PHP_CONFIG_H */ ]) ac_IFS=$IFS; IFS="." set $(echo AC_PACKAGE_VERSION | $SED 's/\([[0-9\.]]*\)\(.*\)/\1\.\2/') IFS=$ac_IFS PHP_MAJOR_VERSION=[$]1 PHP_MINOR_VERSION=[$]2 PHP_RELEASE_VERSION=[$]3 PHP_EXTRA_VERSION=[$]4 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],[$config_m4_dir])dnl AC_DEFUN([PHP_EXT_DIR],[$config_m4_dir])dnl AC_DEFUN([PHP_EXT_SRCDIR],[$abs_srcdir/$config_m4_dir])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.ac 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 Settings we want to make before the checks. dnl ---------------------------------------------------------------------------- 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` dnl Because `make install` is often performed by the superuser, we create the dnl libs subdirectory as the user who configures PHP. Otherwise, the current dnl user will not be able to delete libs or the contents of libs. $php_shtool mkdir -p libs rm -f libs/* dnl Checks for programs. dnl ---------------------------------------------------------------------------- PKG_PROG_PKG_CONFIG AC_PROG_CC([cc gcc]) PHP_DETECT_ICC PHP_DETECT_SUNCC AC_PROG_CPP AC_USE_SYSTEM_EXTENSIONS AC_PROG_LN_S dnl Support systems with system libraries in e.g. /usr/lib64. PHP_ARG_WITH([libdir], [for system library directory], [AS_HELP_STRING([--with-libdir=NAME], [Look for libraries in .../NAME rather than .../lib])], [lib], [no]) PHP_ARG_ENABLE([rpath], [whether to enable runpaths], [AS_HELP_STRING([--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([3.0.0]) PHP_PROG_RE2C([0.13.4]) PHP_ARG_ENABLE([re2c-cgoto], [whether to enable computed goto gcc extension with re2c], [AS_HELP_STRING([--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_COMPILE_IFELSE([AC_LANG_PROGRAM([], [[ 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 Mark symbols hidden by default if the compiler (for example, gcc >= 4) dnl supports it. This can help reduce the binary size and startup time. AX_CHECK_COMPILE_FLAG([-fvisibility=hidden], [CFLAGS="$CFLAGS -fvisibility=hidden"]) 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*) 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 ;; *mips*) CPPFLAGS="$CPPFLAGS -D_XPG_IV" ;; *hpux*) if test "$GCC" = "yes"; then CPPFLAGS="$CPPFLAGS -D_XOPEN_SOURCE_EXTENDED" fi ;; esac dnl Disable PIC mode by default where it is known to be safe to do so, to avoid dnl 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 configurations. dnl ---------------------------------------------------------------------------- sinclude(Zend/Zend.m4) dnl ---------------------------------------------------------------------------- PTHREADS_CHECK PHP_HELP_SEPARATOR([SAPI modules:]) PHP_SHLIB_SUFFIX_NAMES PHP_BUILD_PROGRAM PHP_SAPI=none 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]) dnl Show which binaries were selected. AC_MSG_CHECKING([for executable SAPI binaries]) if test "$PHP_BINARIES"; then AC_MSG_RESULT([$PHP_BINARIES]) else AC_MSG_RESULT([none]) fi dnl Exit early. if test -z "$PHP_INSTALLED_SAPIS"; then AC_MSG_ERROR([Nothing to build.]) fi dnl Force ZTS. if test "$enable_maintainer_zts" = "yes"; then dnl Add pthreads linker and compiler flags. if test -n "$ac_cv_pthreads_lib"; then LIBS="$LIBS -l$ac_cv_pthreads_lib" fi if test -n "$ac_cv_pthreads_cflags"; then CFLAGS="$CFLAGS $ac_cv_pthreads_cflags" fi PTHREADS_FLAGS fi 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 and dnl 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 to avoid -lnsl dnl checks, if we already have the functions which are usually in libnsl. Also, dnl 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(dlopen, dl) PHP_CHECK_FUNC(dlsym, 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 in -lc, -lbind and -lresolv. PHP_CHECK_FUNC(inet_aton, resolv, bind) dnl Then headers. dnl ---------------------------------------------------------------------------- dnl QNX requires unix.h to allow functions in libunix to work properly. dnl locale.h is checked for supporting old code in extensions such as imagick. AC_CHECK_HEADERS([ \ inttypes.h \ stdint.h \ dirent.h \ sys/param.h \ sys/types.h \ sys/time.h \ netinet/in.h \ alloca.h \ arpa/inet.h \ arpa/nameser.h \ crypt.h \ dns.h \ fcntl.h \ grp.h \ ieeefp.h \ langinfo.h \ locale.h \ malloc.h \ monetary.h \ netdb.h \ poll.h \ pwd.h \ resolv.h \ strings.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/uio.h \ sys/wait.h \ sys/loadavg.h \ termios.h \ unistd.h \ unix.h \ utime.h \ sys/utsname.h \ sys/ipc.h \ dlfcn.h \ tmmintrin.h \ nmmintrin.h \ immintrin.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 if test "$GCC" = "yes"; then PHP_BROKEN_GCC_STRLEN_OPT fi dnl Checks for typedefs, structures, and compiler characteristics. dnl ---------------------------------------------------------------------------- AC_STRUCT_TIMEZONE PHP_MISSING_TIME_R_DECL PHP_MISSING_FCLOSE_DECL PHP_STRUCT_FLOCK PHP_SOCKLEN_T 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 stdint types (must be after header check). PHP_CHECK_STDINT_TYPES dnl Check __builtin_expect PHP_CHECK_BUILTIN_EXPECT dnl Check __builtin_clz PHP_CHECK_BUILTIN_CLZ dnl Check __builtin_ctzl PHP_CHECK_BUILTIN_CTZL dnl Check __builtin_ctzll PHP_CHECK_BUILTIN_CTZLL dnl Check __builtin_smull_overflow PHP_CHECK_BUILTIN_SMULL_OVERFLOW dnl Check __builtin_smulll_overflow PHP_CHECK_BUILTIN_SMULLL_OVERFLOW dnl Check __builtin_saddl_overflow PHP_CHECK_BUILTIN_SADDL_OVERFLOW dnl Check __builtin_saddll_overflow PHP_CHECK_BUILTIN_SADDLL_OVERFLOW dnl Check __builtin_ssubl_overflow PHP_CHECK_BUILTIN_SSUBL_OVERFLOW dnl Check __builtin_ssubll_overflow PHP_CHECK_BUILTIN_SSUBLL_OVERFLOW dnl Check __builtin_cpu_init PHP_CHECK_BUILTIN_CPU_INIT dnl Check __builtin_cpu_supports PHP_CHECK_BUILTIN_CPU_SUPPORTS dnl Check instructions. PHP_CHECK_CPU_SUPPORTS([ssse3]) PHP_CHECK_CPU_SUPPORTS([sse4.2]) PHP_CHECK_CPU_SUPPORTS([avx]) PHP_CHECK_CPU_SUPPORTS([avx2]) dnl Check for structure members. AC_CHECK_MEMBERS([struct tm.tm_gmtoff],,,[#include ]) AC_CHECK_MEMBERS([struct stat.st_blksize, struct stat.st_rdev]) dnl AC_STRUCT_ST_BLOCKS will screw QNX because fileblocks.o does not exist. if test "`uname -s 2>/dev/null`" != "QNX"; then AC_STRUCT_ST_BLOCKS fi 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 Checks for GCC function attributes on all systems except ones without glibc dnl Fix for these systems is already included in GCC 7, but not on GCC 6. dnl dnl At least some versions of FreeBSD seem to have buggy ifunc support, see dnl bug #77284. Conservatively don't use ifuncs on FreeBSD. AS_CASE([$host_alias], [*-*-*android*|*-*-*uclibc*|*-*-*musl*|*freebsd*], [true], [ AX_GCC_FUNC_ATTRIBUTE([ifunc]) AX_GCC_FUNC_ATTRIBUTE([target]) ]) dnl Check for IPv6 support. AC_CACHE_CHECK([for IPv6 support], ac_cv_ipv6_support, [AC_LINK_IFELSE([AC_LANG_PROGRAM([[#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_CHECK_FUNCS( alphasort \ asctime_r \ chroot \ ctime_r \ crypt \ explicit_memset \ flock \ fpclass \ ftok \ funopen \ gai_strerror \ getcwd \ getloadavg \ getlogin \ getprotobyname \ getprotobynumber \ getservbyname \ getservbyport \ getrusage \ gettimeofday \ gmtime_r \ getpwnam_r \ getgrnam_r \ getpwuid_r \ getwd \ glob \ grantpt \ inet_ntoa \ inet_ntop \ inet_pton \ localtime_r \ lchown \ mbrlen \ memmove \ mkstemp \ mmap \ nice \ nl_langinfo \ poll \ ptsname \ putenv \ realpath \ rand_r \ scandir \ setitimer \ setenv \ shutdown \ sigprocmask \ statfs \ statvfs \ std_syslog \ strcasecmp \ strfmon \ strnlen \ strptime \ strtok_r \ symlink \ tzset \ unlockpt \ unsetenv \ usleep \ utime \ vasprintf \ asprintf \ nanosleep \ memmem \ ) AX_FUNC_WHICH_GETHOSTBYNAME_R 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... Also check for working dnl getaddrinfo. AC_CACHE_CHECK([for getaddrinfo], ac_cv_func_getaddrinfo, [AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include ]], [[struct addrinfo *g,h;g=&h;getaddrinfo("","",g,&g);]])],[AC_RUN_IFELSE([AC_LANG_SOURCE([[ #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_LINK_IFELSE([AC_LANG_PROGRAM([], [[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 explicit_bzero getopt) AC_FUNC_ALLOCA PHP_TIME_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 dnl Check for asm goto support. AC_CACHE_CHECK([for asm goto], ac_cv__asm_goto, [AC_RUN_IFELSE([AC_LANG_SOURCE([[ int main(void) { #if defined(__x86_64__) || defined(__i386__) __asm__ goto("jmp %l0\n" :::: end); #elif defined(__aarch64__) __asm__ goto("b %l0\n" :::: end); #endif end: return 0; } ]])], [ac_cv__asm_goto=yes], [ac_cv__asm_goto=no], [ac_cv__asm_goto=no])]) if test "$ac_cv__asm_goto" = yes; then AC_DEFINE(HAVE_ASM_GOTO,1,[Define if asm goto support]) fi dnl Check for variable length array support. AC_CACHE_CHECK([whether compiler supports VLA], ac_cv__compiler_c99_vla, [AC_RUN_IFELSE([AC_LANG_SOURCE([[ #include int main(void) { int i[rand()%10]; return 0; } ]])],[ac_cv__compiler_c99_vla=yes], [ac_cv__compiler_c99_vla=no], [ac_cv__compiler_c99_vla=no])]) if test "$ac_cv__compiler_c99_vla" = yes; then AC_DEFINE(HAVE_COMPILER_C99_VLA, 1, [Compiler supports VLA]) fi dnl Check valgrind support. PHP_ARG_WITH([valgrind], [whether to enable valgrind support], [AS_HELP_STRING([--with-valgrind], [Enable valgrind support])], [yes], [no]) if test "$PHP_VALGRIND" != "no"; then PKG_CHECK_MODULES([VALGRIND], [valgrind], [have_valgrind="yes"], [have_valgrind="no"]) if test "$have_valgrind" = "yes"; then PHP_EVAL_INCLINE($VALGRIND_CFLAGS) AC_DEFINE(HAVE_VALGRIND, 1, [ ]) else if test "$with_valgrind" = "yes"; then AC_MSG_ERROR([Valgrind not found. Please install Valgrind.]) fi fi fi dnl General settings. dnl ---------------------------------------------------------------------------- PHP_CONFIGURE_PART(General settings) PHP_HELP_SEPARATOR([General settings:]) PHP_ARG_ENABLE([gcov], [whether to include gcov symbols], [AS_HELP_STRING([--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 dnl Min: 1.5 (i.e. 105, major * 100 + minor for easier comparison). ltp_version_min="105" dnl Non-working versions, e.g. "1.8 1.18"; dnl Remove "none" when introducing the first incompatible LTP version and dnl separate any following additions by spaces. ltp_version_exclude="1.8" 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_vars=`$LTP -v 2>/dev/null | $SED -e 's/^.* //' -e 's/\./ /g' | tr -d a-z` if test -n "$ltp_version_vars"; then set $ltp_version_vars ltp_version="${1}.${2}" ltp_version_num="`expr ${1} \* 100 + ${2}`" if test $ltp_version_num -ge $ltp_version_min; then php_cv_ltp_version="$ltp_version (ok)" for ltp_check_version in $ltp_version_exclude; do if test "$ltp_version" = "$ltp_check_version"; then php_cv_ltp_version=invalid break fi done fi fi ]) else ltp_msg="To enable code coverage reporting you must have LTP installed" AC_MSG_ERROR([$ltp_msg]) fi case $php_cv_ltp_version in ""|invalid[)] ltp_msg="This LTP version is not supported (found: $ltp_version, min: $ltp_version_min, excluded: $ltp_version_exclude)." 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/build/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], [AS_HELP_STRING([--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_ENABLE([rtld-now], [whether to dlopen extensions with RTLD_NOW instead of RTLD_LAZY], [AS_HELP_STRING([--enable-rtld-now], [Use dlopen with RTLD_NOW instead of RTLD_LAZY])], [no], [no]) if test "$PHP_RTLD_NOW" = "yes"; then AC_DEFINE(PHP_USE_RTLD_NOW, 1, [ Use dlopen with RTLD_NOW instead of RTLD_LAZY ]) fi PHP_ARG_WITH([layout], [layout of installed files], [AS_HELP_STRING([--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], [AS_HELP_STRING([--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],, [AS_HELP_STRING([--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([sigchild], [whether to enable PHP's own SIGCHLD handler], [AS_HELP_STRING([--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([libgcc], [whether to explicitly link against libgcc], [AS_HELP_STRING([--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], [AS_HELP_STRING([--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 PHP_ARG_ENABLE([werror],, [AS_HELP_STRING([--enable-werror], [Enable -Werror])], [no], [no]) 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 Check if all enabled by default extensions should be disabled. AC_ARG_ENABLE([all], [AS_HELP_STRING([--disable-all], [Disable all extensions which are enabled by default])], [PHP_ENABLE_ALL=$enableval]) dnl Reading config stubs. esyscmd(./build/config-stubs ext) dnl Extensions post-config. dnl ---------------------------------------------------------------------------- enable_shared=yes enable_static=yes case $php_sapi_module in 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" ;; *[)] standard_libtool_flag='-prefer-non-pic -static' if test -z "$PHP_MODULES" && test -z "$PHP_ZEND_EX"; then enable_shared=no fi ;; esac EXTRA_LIBS="$EXTRA_LIBS $DLIBS $LIBS" dnl This has to be here to prevent the openssl crypt() from overriding the dnl 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) dnl Compatibility if test -z "$with_pear" && test "$enable_pear" = "no"; then with_pear=no fi dnl If CLI is disabled disable PEAR. if test "$PHP_CLI" = "no"; then with_pear=no fi PHP_ARG_WITH([pear], [whether to install PEAR], [AS_HELP_STRING([[--with-pear[=DIR]]], [Install PEAR in DIR [PREFIX/lib/php]])], [no], [yes]) if test "$PHP_PEAR" != "no"; then dnl PEAR dependencies. 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 if test "$pear_error_msg"; then AC_MSG_ERROR([$pear_error_msg]) fi AC_MSG_WARN([The --with-pear option is deprecated]) install_pear="install-pear" PEAR_INSTALLDIR=$PHP_PEAR if 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) if test "$PHP_THREAD_SAFETY" = "yes"; then TSRM_THREADS_CHECKS fi dnl Align segments on huge page boundary case $host_alias in i[[3456]]86-*-linux-* | x86_64-*-linux-*) EXTRA_LDFLAGS_PROGRAM="$EXTRA_LDFLAGS_PROGRAM -Wl,-zcommon-page-size=2097152 -Wl,-zmax-page-size=2097152" ;; esac EXTRA_LDFLAGS="$EXTRA_LDFLAGS $LDFLAGS" EXTRA_LDFLAGS_PROGRAM="$EXTRA_LDFLAGS_PROGRAM $LDFLAGS" EXTRA_LIBS="$EXTRA_LIBS $LIBS" unset LIBS LDFLAGS AC_ARG_PROGRAM 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 `eval echo $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 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" dnl SOURCE_DATE_EPOCH for reproducible builds dnl https://reproducible-builds.org/specs/source-date-epoch/ PHP_BUILD_DATE=`date --utc --date="@${SOURCE_DATE_EPOCH:-$(date +%s)}" +%Y-%m-%d 2>/dev/null` if test $? -ne 0 ; then PHP_BUILD_DATE=`date -u +%Y-%m-%d` fi 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]) PHP_SUBST_OLD(PHP_INSTALLED_SAPIS) PHP_SUBST(PHP_FASTCGI_OBJS) PHP_SUBST(PHP_SAPI_OBJS) PHP_SUBST(PHP_BINARY_OBJS) PHP_SUBST(PHP_GLOBAL_OBJS) PHP_SUBST(PHP_BINARIES) 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(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(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" CPPFLAGS="$CPPFLAGS $ac_cv_pthreads_cflags" fi if test "$PHP_WERROR" = "yes"; then CFLAGS="$CFLAGS -Werror" CPPFLAGS="$CPPFLAGS -Werror" fi dnl dnl Libtool creation. dnl PHP_HELP_SEPARATOR([Libtool:]) PHP_CONFIGURE_PART(Configuring libtool) dnl Autoconf 2.13's libtool checks go slightly nuts on Mac OS X 10.5 and 10.6. dnl This hack works around it. Ugly. case $host_alias in *darwin9*|*darwin10*) ac_cv_exeext= ;; esac dnl Silence warning: `ar: 'u' modifier ignored since 'D' is the default` dnl See https://github.com/php/php-src/pull/3017 AC_SUBST(AR_FLAGS, [cr]) dnl Only allow AC_PROG_CXX and AC_PROG_CXXCPP if they are explicitly called (by dnl PHP_REQUIRE_CXX). Otherwise AC_PROG_LIBTOOL fails if there is no working C++ dnl compiler. AC_PROVIDE_IFELSE([PHP_REQUIRE_CXX], [], [ undefine([AC_PROG_CXX]) AC_DEFUN([AC_PROG_CXX], []) undefine([AC_PROG_CXXCPP]) AC_DEFUN([AC_PROG_CXXCPP], [php_prog_cxxcpp=disabled]) ]) AC_PROG_LIBTOOL PHP_SET_LIBTOOL_VARIABLE([--silent]) dnl libtool 1.4.3 needs this. PHP_SET_LIBTOOL_VARIABLE([--preserve-dup-deps]) 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 \$(PROF_FLAGS)" CFLAGS="\$(CFLAGS_CLEAN) $standard_libtool_flag" INLINE_CFLAGS="$INLINE_CFLAGS $standard_libtool_flag" CXXFLAGS="$CXXFLAGS $standard_libtool_flag \$(PROF_FLAGS)" if test "$PHP_PHAR" != "no" && test "$PHP_CLI" != "no"; then pharcmd=pharcmd pharcmd_install=install-pharcmd else pharcmd= pharcmd_install= fi; all_targets="$lcov_target \$(OVERALL_TARGET) \$(PHP_MODULES) \$(PHP_ZEND_EX) \$(PHP_BINARIES) $pharcmd" install_targets="$install_sapi $install_modules $install_binaries install-build install-headers install-programs $install_pear $pharcmd_install" PHP_SUBST(all_targets) PHP_SUBST(install_targets) PHP_SUBST(install_binary_targets) PHP_INSTALL_HEADERS([Zend/ TSRM/ include/ main/ main/streams/]) PHP_ADD_SOURCES(TSRM, TSRM.c, -DZEND_ENABLE_STATIC_TSRMLS_CACHE=1) PHP_ADD_SOURCES(main, main.c snprintf.c spprintf.c \ fopen_wrappers.c alloca.c php_scandir.c \ php_ini.c SAPI.c rfc1867.c php_content_types.c strlcpy.c \ strlcat.c explicit_bzero.c mergesort.c reentrancy.c php_variables.c php_ticks.c \ network.c php_open_temporary_file.c \ output.c getopt.c php_syslog.c, -DZEND_ENABLE_STATIC_TSRMLS_CACHE=1) PHP_ADD_SOURCES_X(main, fastcgi.c, -DZEND_ENABLE_STATIC_TSRMLS_CACHE=1, PHP_FASTCGI_OBJS, no) PHP_ADD_SOURCES(main/streams, streams.c cast.c memory.c filter.c \ plain_wrapper.c userspace.c transports.c xp_socket.c mmap.c \ glob_wrapper.c, -DZEND_ENABLE_STATIC_TSRMLS_CACHE=1) PHP_ADD_SOURCES(/main, internal_functions.c, -DZEND_ENABLE_STATIC_TSRMLS_CACHE=1, sapi) PHP_ADD_SOURCES_X(/main, internal_functions_cli.c, -DZEND_ENABLE_STATIC_TSRMLS_CACHE=1, PHP_BINARY_OBJS) PHP_ADD_SOURCES(Zend, \ zend_language_parser.c zend_language_scanner.c \ zend_ini_parser.c zend_ini_scanner.c \ zend_alloc.c zend_compile.c zend_constants.c zend_dtrace.c \ zend_execute_API.c zend_highlight.c zend_llist.c \ zend_vm_opcodes.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_builtin_functions.c \ zend_ini.c zend_sort.c zend_multibyte.c zend_ts_hash.c zend_stream.c \ zend_iterators.c zend_interfaces.c zend_exceptions.c zend_strtod.c zend_gc.c \ zend_closures.c zend_weakrefs.c zend_float.c zend_string.c zend_signal.c zend_generators.c \ zend_virtual_cwd.c zend_ast.c zend_objects.c zend_object_handlers.c zend_objects_API.c \ zend_default_classes.c zend_inheritance.c zend_smart_str.c zend_cpuinfo.c, \ -DZEND_ENABLE_STATIC_TSRMLS_CACHE=1) dnl Selectively disable optimization due to high RAM usage during compiling the dnl executor. if test -n "$GCC" && test "$ZEND_INLINE_OPTIMIZATION" != "yes"; then flag=-O0 else flag= fi PHP_ADD_SOURCES_X(Zend, zend_execute.c, -DZEND_ENABLE_STATIC_TSRMLS_CACHE=1,PHP_GLOBAL_OBJS,,$flag) PHP_ADD_BUILD_DIR(main main/streams) PHP_ADD_BUILD_DIR(TSRM) PHP_ADD_BUILD_DIR(Zend) PHP_ADD_MAKEFILE_FRAGMENT($abs_srcdir/scripts/Makefile.frag,$abs_srcdir/scripts,scripts) PHP_ADD_MAKEFILE_FRAGMENT($abs_srcdir/Zend/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 scripts $php_shtool mkdir -p scripts/man1 ALL_OUTPUT_FILES="main/build-defs.h \ scripts/phpize scripts/man1/phpize.1 \ scripts/php-config scripts/man1/php-config.1 \ $PHP_OUTPUT_FILES" dnl Generate build files. AC_CONFIG_FILES([$ALL_OUTPUT_FILES]) AC_CONFIG_COMMANDS_PRE([PHP_PATCH_CONFIG_HEADERS([main/php_config.h.in])]) AC_CONFIG_COMMANDS([default],[ cat <Zend/zend_config.h < FEO dnl Run this only when generating all the files. if test -n "\$REDO_ALL"; then echo "creating main/internal_functions.c" AWK="$AWK" sh $srcdir/build/genif.sh $srcdir/main/internal_functions.c.in "$EXT_STATIC" > main/internal_functions.c echo "creating main/internal_functions_cli.c" AWK="$AWK" sh $srcdir/build/genif.sh $srcdir/main/internal_functions.c.in "$EXT_CLI_STATIC" > main/internal_functions_cli.c if test "$PHP_SAPI" = "apache2handler"; then if test "$APACHE_VERSION" -ge 2004001; then if test -z "$APACHE_THREADED_MPM"; then 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 fi ]) AC_OUTPUT