1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759 |
- 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],[8.1.12],[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([
- #include <stdlib.h>
- #ifdef HAVE_SYS_TYPES_H
- # include <sys/types.h>
- #endif
- #ifdef HAVE_SYS_SELECT_H
- #include <sys/select.h>
- #endif
- #include <string.h>
- #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_CC_C99
- AC_PROG_CPP
- AC_USE_SYSTEM_EXTENSIONS
- AC_PROG_LN_S
- if test "$cross_compiling" = yes ; then
- AC_MSG_CHECKING(for native build C compiler)
- AC_CHECK_PROGS(BUILD_CC, [gcc clang c99 c89 cc cl],none)
- AC_MSG_RESULT($BUILD_CC)
- else
- BUILD_CC=$CC
- fi
- 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_PROG_PHP()
- 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"
- ;;
- *dgux*)
- CPPFLAGS="$CPPFLAGS -D_BSD_TIMEOFDAY_FLAVOR"
- ;;
- *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 Detect musl libc
- AC_MSG_CHECKING([whether we are using musl libc])
- if command -v ldd >/dev/null && ldd --version 2>&1 | grep -q ^musl
- then
- AC_MSG_RESULT(yes)
- AC_DEFINE([__MUSL__], [1], [Define when using musl libc])
- else
- AC_MSG_RESULT(no)
- fi
- 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.[]$SHLIB_DL_SUFFIX_NAME
- SAPI_STATIC=libs/libphp.a
- SAPI_LIBTOOL=libphp.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_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, network)
- PHP_CHECK_FUNC(socketpair, socket, network)
- PHP_CHECK_FUNC(htonl, socket, network)
- PHP_CHECK_FUNC(gethostname, nsl, network)
- PHP_CHECK_FUNC(gethostbyaddr, nsl, network)
- PHP_CHECK_FUNC(dlopen, dl, root)
- PHP_CHECK_FUNC(dlsym, dl, root)
- 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.
- AC_CHECK_HEADERS([ \
- 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 \
- malloc.h \
- poll.h \
- pty.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 \
- unistd.h \
- unix.h \
- utime.h \
- sys/utsname.h \
- sys/ipc.h \
- dlfcn.h \
- tmmintrin.h \
- nmmintrin.h \
- wmmintrin.h \
- immintrin.h
- ],[],[],[
- #ifdef HAVE_SYS_PARAM_H
- #include <sys/param.h>
- #endif
- #ifdef HAVE_SYS_TYPES_H
- #include <sys/types.h>
- #endif
- #ifdef HAVE_SYS_TIME_H
- #include <sys/time.h>
- #endif
- #ifdef HAVE_NETINET_IN_H
- #include <netinet/in.h>
- #endif
- #ifdef HAVE_ARPA_NAMESER_H
- #include <arpa/nameser.h>
- #endif
- ])
- 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
- AC_CHECK_TYPES(socklen_t, [], [], [
- #ifdef HAVE_SYS_TYPES_H
- # include <sys/types.h>
- #endif
- #ifdef HAVE_SYS_SOCKET_H
- # include <sys/socket.h>
- #endif
- ])
- 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_clzl
- PHP_CHECK_BUILTIN_CLZL
- dnl Check __builtin_clzll
- PHP_CHECK_BUILTIN_CLZLL
- 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 for __alignof__ support in the compiler
- AC_CACHE_CHECK(whether the compiler supports __alignof__, ac_cv_alignof_exists,[
- AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
- ]],[[
- int align = __alignof__(int);
- ]])],[
- ac_cv_alignof_exists=yes
- ],[
- ac_cv_alignof_exists=no
- ])])
- if test "$ac_cv_alignof_exists" = "yes"; then
- AC_DEFINE([HAVE_ALIGNOF], 1, [whether the compiler supports __alignof__])
- fi
- dnl Check for structure members.
- AC_CHECK_MEMBERS([struct tm.tm_gmtoff],,,[#include <time.h>])
- 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*|*openbsd*], [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 <sys/types.h>
- #include <sys/socket.h>
- #include <netinet/in.h>]], [[struct sockaddr_in6 s; struct in6_addr t=in6addr_any; int i=AF_INET6; s; t.s6_addr[0] = 0;]])],
- [ac_cv_ipv6_support=yes], [ac_cv_ipv6_support=no])])
- dnl Checks for library functions.
- dnl ----------------------------------------------------------------------------
- AC_CHECK_FUNCS(
- alphasort \
- asctime_r \
- chroot \
- ctime_r \
- explicit_memset \
- fdatasync \
- flock \
- ftok \
- funopen \
- gai_strerror \
- getcwd \
- getloadavg \
- getlogin \
- getprotobyname \
- getprotobynumber \
- getservbyname \
- getservbyport \
- getrusage \
- gettimeofday \
- gmtime_r \
- getpwnam_r \
- getgrnam_r \
- getpwuid_r \
- getwd \
- glob \
- inet_ntoa \
- inet_ntop \
- inet_pton \
- localtime_r \
- lchown \
- memmove \
- mkstemp \
- mmap \
- nice \
- nl_langinfo \
- poll \
- putenv \
- scandir \
- setitimer \
- setenv \
- shutdown \
- sigprocmask \
- statfs \
- statvfs \
- std_syslog \
- strcasecmp \
- strnlen \
- strptime \
- strtok_r \
- symlink \
- tzset \
- 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 Haiku does not have network api in libc.
- PHP_CHECK_FUNC_LIB(setsockopt, network)
- 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 <netdb.h>]],
- [[struct addrinfo *g,h;g=&h;getaddrinfo("","",g,&g);]])],[AC_RUN_IFELSE([AC_LANG_SOURCE([[
- #include <string.h>
- #include <netdb.h>
- #include <sys/types.h>
- #include <string.h>
- #include <stdlib.h>
- #ifndef AF_INET
- # include <sys/socket.h>
- #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) {
- return 1;
- }
- if (ai == 0) {
- return 1;
- }
- pai = ai;
- while (pai) {
- if (pai->ai_family != AF_INET) {
- /* 127.0.0.1/NUMERICHOST should only resolve ONE way */
- return 1;
- }
- if (pai->ai_addr->sa_family != AF_INET) {
- /* 127.0.0.1/NUMERICHOST should only resolve ONE way */
- return 1;
- }
- pai = pai->ai_next;
- }
- freeaddrinfo(ai);
- return 0;
- }
- ]])],[ac_cv_func_getaddrinfo=yes], [ac_cv_func_getaddrinfo=no], [
- dnl Cross compilation.
- case $host_alias in
- *linux*)
- ac_cv_func_getaddrinfo=yes
- ;;
- *)
- ac_cv_func_getaddrinfo=no
- ;;
- esac
- ])],
- [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 explicit_bzero getopt)
- AC_FUNC_ALLOCA
- PHP_TIME_R_TYPE
- PHP_CHECK_IN_ADDR_T
- AC_CACHE_CHECK([for aarch64 CRC32 API], ac_cv_func___crc32d,
- [AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <arm_acle.h>]],[[__crc32d(0, 0);]])],[ac_cv_func___crc32d=yes],[ac_cv_func___crc32d="no"])])
- if test "$ac_cv_func___crc32d" = "yes"; then
- AC_DEFINE([HAVE_AARCH64_CRC32], [1], [Define when aarch64 CRC32 API is available.])
- 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_COMPILE_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])
- ])])
- if test "$ac_cv__asm_goto" = yes; then
- AC_DEFINE(HAVE_ASM_GOTO,1,[Define if asm goto support])
- 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 Check for openpty. It may require linking against libutil or libbsd.
- PHP_CHECK_FUNC(openpty, util, bsd)
- 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 - 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
- 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([debug-assertions],
- [whether to enable debug assertions in release mode],
- [AS_HELP_STRING([--enable-debug-assertions],
- [Compile with debug assertions even in release mode])],
- [no],
- [no])
- if test "$PHP_DEBUG_ASSERTIONS" = "yes"; then
- PHP_DEBUG=1
- ZEND_DEBUG=yes
- fi
- AC_ARG_ENABLE([zts],
- [AS_HELP_STRING([--enable-zts],
- [Enable thread safety])],
- [ZEND_ZTS=$enableval],
- [ZEND_ZTS=no])
- if test "$ZEND_ZTS" = "yes"; then
- AC_DEFINE(ZTS, 1,[ ])
- PHP_THREAD_SAFETY=yes
- else
- PHP_THREAD_SAFETY=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 <? start tag by default])],
- [yes],
- [no])
- if test "$PHP_SHORT_TAGS" = "yes"; then
- AC_DEFINE(DEFAULT_SHORT_OPEN_TAG, "1", [ ])
- else
- AC_DEFINE(DEFAULT_SHORT_OPEN_TAG, "0", [ ])
- fi
- PHP_ARG_ENABLE([dmalloc],
- [whether to enable dmalloc],
- [AS_HELP_STRING([--enable-dmalloc],
- [Enable dmalloc])],
- [no],
- [no])
- if test "$PHP_DMALLOC" = "yes"; then
- AC_CHECK_LIB(dmalloc, dmalloc_error, [
- PHP_ADD_LIBRARY(dmalloc)
- AC_DEFINE(HAVE_DMALLOC,1,[Whether you have dmalloc])
- CPPFLAGS="$CPPFLAGS -DDMALLOC_FUNC_CHECK"
- ], [
- AC_MSG_ERROR([Problem with enabling dmalloc. Please check config.log for details.])
- ])
- fi
- PHP_ARG_ENABLE([ipv6],
- [whether to enable IPv6 support],
- [AS_HELP_STRING([--disable-ipv6],
- [Disable IPv6 support])],
- [yes],
- [no])
- if test "$PHP_IPV6" != "no" && test "$ac_cv_ipv6_support" = yes; then
- AC_DEFINE(HAVE_IPV6, 1, [Whether to enable IPv6 support])
- fi
- dnl DTRACE checks. Note: this has to be done after SAPI configuration.
- PHP_ARG_ENABLE([dtrace],
- [whether to enable DTrace support],
- [AS_HELP_STRING([--enable-dtrace],
- [Enable DTrace support])],
- [no],
- [no])
- if test "$PHP_DTRACE" = "yes"; then
- AC_CHECK_HEADERS([sys/sdt.h], [
- PHP_INIT_DTRACE([Zend/zend_dtrace.d],[Zend/zend_dtrace_gen.h],[main/main.c Zend/zend_API.c \
- Zend/zend_execute.c Zend/zend_exceptions.c \
- Zend/zend_dtrace.c Zend/zend.c])
- AC_DEFINE(HAVE_DTRACE, 1, [Whether to enable DTrace support])
- PHP_SUBST(PHP_DTRACE_OBJS)
- ], [
- AC_MSG_ERROR([Cannot find sys/sdt.h which is required for DTrace support])
- ])
- fi
- AC_MSG_CHECKING([how big to make fd sets])
- PHP_ARG_ENABLE([fd-setsize],,
- [AS_HELP_STRING([--enable-fd-setsize],
- [Set size of descriptor sets])],
- [no],
- [no])
- if test "$PHP_FD_SETSIZE" != "no"; then
- if test "0$PHP_FD_SETSIZE" -gt 0 2>/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])
- PHP_ARG_ENABLE([memory-sanitizer],,
- [AS_HELP_STRING([--enable-memory-sanitizer],
- [Enable memory sanitizer (clang only)])],
- [no],
- [no])
- PHP_ARG_ENABLE([address-sanitizer],,
- [AS_HELP_STRING([--enable-address-sanitizer],
- [Enable address sanitizer])],
- [no],
- [no])
- PHP_ARG_ENABLE([undefined-sanitizer],,
- [AS_HELP_STRING([--enable-undefined-sanitizer],
- [Enable undefined sanitizer])],
- [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 ----------------------------------------------------------------------------
- dnl Align segments on huge page boundary
- case $host_alias in
- i[[3456]]86-*-linux-* | x86_64-*-linux-*)
- AC_MSG_CHECKING(linker support for -zcommon-page-size=2097152)
- save_LDFLAGS=$LDFLAGS
- LDFLAGS="$LDFLAGS -Wl,-zcommon-page-size=2097152 -Wl,-zmax-page-size=2097152"
- AC_RUN_IFELSE(
- [AC_LANG_SOURCE([[int main() {return 0;}]])],
- [ac_cv_common_page_size=yes],
- [ac_cv_common_page_size=no],
- [ac_cv_common_page_size=no])
- LDFLAGS=$save_LDFLAGS
- if test "$ac_cv_common_page_size" = "yes"; then
- AC_MSG_RESULT([yes])
- EXTRA_LDFLAGS_PROGRAM="$EXTRA_LDFLAGS_PROGRAM -Wl,-zcommon-page-size=2097152 -Wl,-zmax-page-size=2097152"
- else
- AC_MSG_RESULT([no])
- AC_MSG_CHECKING(linker support for -zmax-page-size=2097152)
- save_LDFLAGS=$LDFLAGS
- LDFLAGS="$LDFLAGS -Wl,-zmax-page-size=2097152"
- AC_RUN_IFELSE(
- [AC_LANG_SOURCE([[int main() {return 0;}]])],
- [ac_cv_max_page_size=yes],
- [ac_cv_max_page_size=no],
- [ac_cv_max_page_size=no])
- LDFLAGS=$save_LDFLAGS
- if test "$ac_cv_max_page_size" = "yes"; then
- AC_MSG_RESULT([yes])
- EXTRA_LDFLAGS_PROGRAM="$EXTRA_LDFLAGS_PROGRAM -Wl,-zmax-page-size=2097152"
- else
- AC_MSG_RESULT([no])
- fi
- fi
- ;;
- esac
- enable_shared=yes
- enable_static=yes
- case $php_sapi_module in
- shared[)]
- if test "$PHP_CGI" = "no" && test "$PHP_CLI" = "no" && test "$PHP_FPM" = "no" && test "$PHP_LITESPEED" = "no" && test "$PHP_PHPDBG" = "no"; then
- enable_static=no
- fi
- 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 ----------------------------------------------------------------------------
- AC_ARG_ENABLE([fiber-asm],
- [AS_HELP_STRING([--disable-fiber-asm],
- [Disable the use of boost fiber assembly files])],
- [fiber_asm=$enableval], [fiber_asm='yes'])
- PHP_HELP_SEPARATOR([Zend:])
- PHP_CONFIGURE_PART(Configuring Zend)
- AS_CASE([$host_cpu],
- [x86_64*|amd64*], [fiber_cpu="x86_64"],
- [x86*|amd*|i?86*|pentium], [fiber_cpu="i386"],
- [aarch64*|arm64*], [fiber_cpu="arm64"],
- [arm*], [fiber_cpu="arm32"],
- [ppc64*|powerpc64*], [fiber_cpu="ppc64"],
- [ppc*|powerpc*], [fiber_cpu="ppc32"],
- [riscv64*], [fiber_cpu="riscv64"],
- [s390x*], [fiber_cpu="s390x"],
- [mips64*], [fiber_cpu="mips64"],
- [mips*], [fiber_cpu="mips32"],
- [fiber_cpu="unknown"]
- )
- AS_CASE([$host_os],
- [darwin*], [fiber_os="mac"],
- [aix*|os400*], [fiber_os="aix"],
- [freebsd*], [fiber_os="freebsd"],
- [fiber_os="other"]
- )
- AS_CASE([$fiber_cpu],
- [x86_64], [fiber_asm_file_prefix="x86_64_sysv"],
- [i386], [fiber_asm_file_prefix="i386_sysv"],
- [arm64], [fiber_asm_file_prefix="arm64_aapcs"],
- [arm32], [fiber_asm_file_prefix="arm_aapcs"],
- [ppc64], [fiber_asm_file_prefix="ppc64_sysv"],
- [ppc32], [fiber_asm_file_prefix="ppc32_sysv"],
- [riscv64], [fiber_asm_file_prefix="riscv64_sysv"],
- [s390x], [fiber_asm_file_prefix="s390x_sysv"],
- [mips64], [fiber_asm_file_prefix="mips64_n64"],
- [mips32], [fiber_asm_file_prefix="mips32_o32"],
- [fiber_asm_file_prefix="unknown"]
- )
- if test "$fiber_os" = 'mac'; then
- fiber_asm_file="combined_sysv_macho_gas"
- elif test "$fiber_os" = 'aix'; then
- # AIX uses a different calling convention (shared with non-_CALL_ELF Linux).
- # The AIX assembler isn't GNU, but the file is compatible.
- fiber_asm_file="${fiber_asm_file_prefix}_xcoff_gas"
- elif test "$fiber_os" = 'freebsd'; then
- case $fiber_cpu in
- i386*)
- fiber_asm="no"
- ;;
- *)
- fiber_asm_file="${fiber_asm_file_prefix}_elf_gas"
- ;;
- esac
- elif test "$fiber_asm_file_prefix" != 'unknown'; then
- fiber_asm_file="${fiber_asm_file_prefix}_elf_gas"
- else
- fiber_asm="no"
- fi
- if test "$fiber_asm" = 'yes'; then
- AC_MSG_CHECKING([for fiber switching context])
- AC_DEFINE([ZEND_FIBER_ASM], 1, [ ])
- PHP_ADD_SOURCES(Zend/asm, make_${fiber_asm_file}.S jump_${fiber_asm_file}.S)
- AC_MSG_RESULT([$fiber_asm_file])
- else
- if test "$fiber_os" = 'mac'; then
- AC_DEFINE([_XOPEN_SOURCE], 1, [ ])
- fi
- AC_CHECK_HEADER(ucontext.h, [
- AC_DEFINE([ZEND_FIBER_UCONTEXT], 1, [ ])
- ], [
- AC_MSG_ERROR([fibers not available on this platform])
- ])
- fi
- LIBZEND_BASIC_CHECKS
- LIBZEND_DLSYM_CHECK
- LIBZEND_OTHER_CHECKS
- 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_CHECK_PTHREADS
- fi
- 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_zts" = "yes"; then
- part2=zts
- else
- part2=non-zts
- fi
- extbasedir=$part1-$part2-$extbasedir
- EXTENSION_DIR=$libdir/extensions/$extbasedir
- else
- if test "$enable_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)
- PHP_UTILIZE_RPATHS
- PHP_REMOVE_USR_LIB(PHP_LDFLAGS)
- PHP_REMOVE_USR_LIB(LDFLAGS)
- EXTRA_LDFLAGS="$EXTRA_LDFLAGS $PHP_LDFLAGS"
- EXTRA_LDFLAGS_PROGRAM="$EXTRA_LDFLAGS_PROGRAM $PHP_LDFLAGS"
- UNAME=`uname -a | xargs`
- PHP_UNAME=${PHP_UNAME:-$UNAME}
- AC_DEFINE_UNQUOTED(PHP_UNAME,"$PHP_UNAME",[uname -a output])
- PHP_OS=`uname | xargs`
- AC_DEFINE_UNQUOTED(PHP_OS,"$PHP_OS",[uname output])
- PHP_BUILD_SYSTEM=${PHP_BUILD_SYSTEM:-$PHP_UNAME}
- AC_DEFINE_UNQUOTED(PHP_BUILD_SYSTEM,"$PHP_BUILD_SYSTEM",[builder uname output])
- if test -n "${PHP_BUILD_PROVIDER}"; then
- AC_DEFINE_UNQUOTED(PHP_BUILD_PROVIDER,"$PHP_BUILD_PROVIDER",[build provider])
- fi
- if test -n "${PHP_BUILD_COMPILER}"; then
- AC_DEFINE_UNQUOTED(PHP_BUILD_COMPILER,"$PHP_BUILD_COMPILER",[used compiler for build])
- fi
- if test -n "${PHP_BUILD_ARCH}"; then
- AC_DEFINE_UNQUOTED(PHP_BUILD_ARCH,"$PHP_BUILD_ARCH",[build architecture])
- fi
- 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(BUILD_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_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"
- CPPFLAGS="$CPPFLAGS $ac_cv_pthreads_cflags"
- fi
- dnl Enable -Werror late, because it may break configure checks throwing warnings.
- if test "$PHP_WERROR" = "yes"; then
- CFLAGS="$CFLAGS -Werror"
- CXXFLAGS="$CXXFLAGS -Werror"
- fi
- if test "$PHP_MEMORY_SANITIZER" = "yes" &&
- test "$PHP_ADDRESS_SANITIZER" = "yes"; then
- AC_MSG_ERROR([MemorySanitizer and AddressSanitizer are mutually exclusive])
- fi
- dnl Enable -fsanitize=memory late, because interceptors may break linking detection.
- if test "$PHP_MEMORY_SANITIZER" = "yes"; then
- AX_CHECK_COMPILE_FLAG([-fsanitize=memory -fsanitize-memory-track-origins], [
- CFLAGS="$CFLAGS -fsanitize=memory -fsanitize-memory-track-origins"
- CXXFLAGS="$CXXFLAGS -fsanitize=memory -fsanitize-memory-track-origins"
- ], [AC_MSG_ERROR([MemorySanitizer is not available])])
- fi
- if test "$PHP_ADDRESS_SANITIZER" = "yes"; then
- AX_CHECK_COMPILE_FLAG([-fsanitize=address], [
- CFLAGS="$CFLAGS -fsanitize=address -DZEND_TRACK_ARENA_ALLOC"
- CXXFLAGS="$CXXFLAGS -fsanitize=address -DZEND_TRACK_ARENA_ALLOC"
- ], [AC_MSG_ERROR([AddressSanitizer is not available])])
- fi
- if test "$PHP_UNDEFINED_SANITIZER" = "yes"; then
- AX_CHECK_COMPILE_FLAG([-fsanitize=undefined], [
- CFLAGS="$CFLAGS -fsanitize=undefined"
- CXXFLAGS="$CXXFLAGS -fsanitize=undefined"
- ], [AC_MSG_ERROR([UndefinedBehaviorSanitizer is not available])])
- fi
- if test "$PHP_MEMORY_SANITIZER" = "yes" ||
- test "$PHP_ADDRESS_SANITIZER" = "yes" ||
- test "$PHP_UNDEFINED_SANITIZER" = "yes"; then
- CFLAGS="$CFLAGS -fno-omit-frame-pointer"
- CXXFLAGS="$CXXFLAGS -fno-omit-frame-pointer"
- fi
- dnl
- dnl Libtool creation.
- dnl
- PHP_HELP_SEPARATOR([Libtool:])
- PHP_CONFIGURE_PART(Configuring libtool)
- 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])
- dnl This needs to be passed explicitly to allow scan-build compiler overrides.
- PHP_SET_LIBTOOL_VARIABLE([--tag CC])
- 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"
- 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_INSTALL_HEADERS([Zend/Optimizer], [ \
- zend_call_graph.h \
- zend_cfg.h \
- zend_dfg.h \
- zend_dump.h \
- zend_func_info.h \
- zend_inference.h \
- zend_optimizer.h \
- zend_ssa.h])
- 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 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_attributes.c zend_execute.c \
- zend_ini.c zend_sort.c zend_multibyte.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 zend_gdb.c \
- zend_observer.c zend_system_id.c zend_enum.c zend_fibers.c \
- Optimizer/zend_optimizer.c \
- Optimizer/pass1.c \
- Optimizer/pass3.c \
- Optimizer/optimize_func_calls.c \
- Optimizer/block_pass.c \
- Optimizer/optimize_temp_vars_5.c \
- Optimizer/nop_removal.c \
- Optimizer/compact_literals.c \
- Optimizer/zend_cfg.c \
- Optimizer/zend_dfg.c \
- Optimizer/dfa_pass.c \
- Optimizer/zend_ssa.c \
- Optimizer/zend_inference.c \
- Optimizer/zend_func_info.c \
- Optimizer/zend_call_graph.c \
- Optimizer/sccp.c \
- Optimizer/scdf.c \
- Optimizer/dce.c \
- Optimizer/escape_analysis.c \
- Optimizer/compact_vars.c \
- Optimizer/zend_dump.c \
- , -DZEND_ENABLE_STATIC_TSRMLS_CACHE=1)
- PHP_ADD_BUILD_DIR(main main/streams)
- PHP_ADD_BUILD_DIR(TSRM)
- PHP_ADD_BUILD_DIR(Zend Zend/asm Zend/Optimizer)
- 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, [ ])
- dnl Make directories when building in a separate build directory.
- $php_shtool mkdir -p pear
- $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 <<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. |
- +--------------------------------------------------------------------+
- Thank you for using PHP.
- X
- ],[
- if test "\$CONFIG_FILES" = "$ALL_OUTPUT_FILES" || test "\$CONFIG_FILES" = " $ALL_OUTPUT_FILES" || test -z "\$CONFIG_FILES"; then
- REDO_ALL=yes
- fi
- dnl Create configuration headers.
- dnl ----------------------------------------------------------------------------
- test -d Zend || $php_shtool mkdir Zend
- cat >Zend/zend_config.h <<FEO
- #include <../main/php_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 <<X
- +--------------------------------------------------------------------+
- | *** WARNING *** |
- | |
- | You have built PHP for Apache's current non-threaded MPM. |
- | If you change Apache to use a threaded MPM you must reconfigure |
- | PHP with --enable-zts |
- X
- fi
- fi
- fi
- dnl Warn about Apache if oci8 extension is enabled on Linux.
- if test "$PHP_OCI8" != "no"; then
- if test "$PHP_SIGCHILD" != "yes"; then
- if test "$PHP_OCI8_INSTANT_CLIENT" = "no"; then
- cat <<X
- +--------------------------------------------------------------------+
- | Notice: |
- | If you encounter <defunc> 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
|