1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723 |
- ## -*- autoconf -*-
- dnl ## Process this file with autoconf to produce a configure script.
- dnl include Zend specific macro definitions first
- dnl -------------------------------------------------------------------------
- sinclude(Zend/acinclude.m4)
- dnl Basic autoconf + automake initialization, generation of config.nice.
- dnl -------------------------------------------------------------------------
- AC_PREREQ([2.68])
- AC_INIT(README.GIT-RULES)
- ifdef([AC_PRESERVE_HELP_ORDER], [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
- #undef uint
- #undef ulong
- ])
- AH_BOTTOM([
- #ifndef ZEND_ACCONFIG_H_NO_C_PROTOS
- #ifdef HAVE_STDLIB_H
- # include <stdlib.h>
- #endif
- #ifdef HAVE_SYS_TYPES_H
- # include <sys/types.h>
- #endif
- #ifdef HAVE_SYS_SELECT_H
- #include <sys/select.h>
- #endif
- #ifdef HAVE_IEEEFP_H
- # include <ieeefp.h>
- #endif
- #ifdef HAVE_STRING_H
- # include <string.h>
- #else
- # include <strings.h>
- #endif
- #if ZEND_BROKEN_SPRINTF
- int zend_sprintf(char *buffer, const char *format, ...);
- #else
- # define zend_sprintf sprintf
- #endif
- #include <math.h>
- #ifndef zend_isnan
- #if HAVE_DECL_ISNAN && (!defined(__cplusplus) || __cplusplus < 201103L)
- #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 && (!defined(__cplusplus) || __cplusplus < 201103L)
- #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 && (!defined(__cplusplus) || __cplusplus < 201103L)
- #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 /* ifndef ZEND_ACCONFIG_H_NO_C_PROTOS */
- #undef PTHREADS
- #endif /* PHP_CONFIG_H */
- ])
- PHP_MAJOR_VERSION=7
- PHP_MINOR_VERSION=3
- PHP_RELEASE_VERSION=28
- PHP_EXTRA_VERSION=""
- 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 -------------------------------------------------------------------------
- cwd=`pwd`
- php_shtool=$srcdir/build/shtool
- T_MD=`$php_shtool echo -n -e %B`
- T_ME=`$php_shtool echo -n -e %b`
- PHP_INIT_BUILD_SYSTEM
- dnl We want this one before the checks, so the checks can modify CFLAGS.
- test -z "$CFLAGS" && auto_cflags=1
- abs_srcdir=`(cd $srcdir; pwd)`
- abs_builddir=`pwd`
- php_abs_top_srcdir=$abs_srcdir
- php_abs_top_builddir=$abs_builddir
- dnl Because ``make install'' is often performed by the superuser,
- dnl we create the libs subdirectory as the user who configures PHP.
- dnl Otherwise, the current user will not be able to delete libs
- dnl or the contents of libs.
- $php_shtool mkdir -p libs
- rm -f libs/*
- dnl Checks for programs.
- dnl -------------------------------------------------------------------------
- AC_PROG_CC([cc gcc])
- PHP_DETECT_ICC
- PHP_DETECT_SUNCC
- AC_PROG_CC_C_O
- dnl Change to AC_PROG_CC_STDC when we start requiring a post-2.13 autoconf
- dnl AC_PROG_CC_STDC
- AC_PROG_CPP
- AC_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,
- [ --with-libdir=NAME Look for libraries in .../NAME rather than .../lib],lib,no)
- PHP_ARG_ENABLE(rpath, whether to enable runpaths,
- [ --disable-rpath Disable passing additional runtime library
- search paths], yes, no)
- dnl check for -R, etc. switch
- PHP_RUNPATH_SWITCH
- dnl Checks for some support/generator progs
- PHP_PROG_AWK
- PHP_PROG_BISON
- PHP_PROG_RE2C
- dnl Check if bison generated files exist when bison does not..
- case $php_cv_bison_version in
- ""|invalid[)]
- if ! test -f "$abs_srcdir/Zend/zend_language_parser.h" || ! test -f "$abs_srcdir/Zend/zend_language_parser.c" ; then
- AC_MSG_ERROR([bison is required to build PHP/Zend when building a GIT checkout!])
- fi
- ;;
- esac
- PHP_ARG_ENABLE(re2c-cgoto, whether to enable computed goto gcc extension with re2c,
- [ --enable-re2c-cgoto Enable -g flag to re2c to use computed goto gcc extension], no, no)
- if test "$PHP_RE2C_CGOTO" = "no"; then
- RE2C_FLAGS=""
- else
- AC_MSG_CHECKING([whether re2c -g works])
- AC_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*|*rhapsody*)
- if test -n "$GCC"; then
- PHP_CHECK_GCC_ARG(-no-cpp-precomp, gcc_no_cpp_precomp=yes)
- if test "$gcc_no_cpp_precomp" = "yes"; then
- CPPFLAGS="$CPPFLAGS -no-cpp-precomp"
- fi
- fi
- php_multiple_shlib_versions_ok=yes
- ;;
- *beos*)
- beos_threads=1
- LIBS="$LIBS -lbe -lroot"
- ;;
- *mips*)
- CPPFLAGS="$CPPFLAGS -D_XPG_IV"
- ;;
- *hpux*)
- if test "$GCC" = "yes"; then
- CPPFLAGS="$CPPFLAGS -D_XOPEN_SOURCE_EXTENDED"
- fi
- ;;
- esac
- # Disable PIC mode by default where it is known to be safe to do so,
- # to avoid the performance hit from the lost register
- AC_MSG_CHECKING([whether to force non-PIC code in shared modules])
- case $host_alias in
- i?86-*-linux*|i?86-*-freebsd*)
- if test "${with_pic+set}" != "set" || test "$with_pic" = "no"; then
- with_pic=no
- AC_MSG_RESULT(yes)
- else
- AC_MSG_RESULT(no)
- fi
- ;;
- *)
- AC_MSG_RESULT(no)
- ;;
- esac
- dnl Include Zend and TSRM configurations.
- dnl -------------------------------------------------------------------------
- sinclude(Zend/Zend.m4)
- sinclude(TSRM/threads.m4)
- sinclude(TSRM/tsrm.m4)
- dnl .
- 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
- PTHREADS_ASSIGN_VARS
- 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
- dnl and source packages. This should be harmless on other OSs.
- if test -d /usr/pkg/include -a -d /usr/pkg/lib ; then
- CPPFLAGS="$CPPFLAGS -I/usr/pkg/include"
- LDFLAGS="$LDFLAGS -L/usr/pkg/lib"
- fi
- test -d /usr/ucblib && PHP_ADD_LIBPATH(/usr/ucblib)
- dnl First, library checks.
- dnl -------------------------------------------------------------------------
- dnl Some systems (OpenServer 5) dislike -lsocket -lnsl, so we try
- dnl to avoid -lnsl checks, if we already have the functions which
- dnl are usually in libnsl
- dnl Also, uClibc will bark at linking with glibc's libnsl.
- PHP_CHECK_FUNC(socket, socket)
- PHP_CHECK_FUNC(socketpair, socket)
- PHP_CHECK_FUNC(htonl, socket)
- PHP_CHECK_FUNC(gethostname, nsl)
- PHP_CHECK_FUNC(gethostbyaddr, nsl)
- PHP_CHECK_FUNC(yp_get_default_domain, nsl)
- PHP_CHECK_FUNC(dlopen, dl)
- if test "$ac_cv_func_dlopen" = "yes"; then
- AC_DEFINE(HAVE_LIBDL, 1, [ ])
- fi
- AC_CHECK_LIB(m, sin)
- dnl Check for inet_aton
- dnl in -lc, -lbind and -lresolv
- PHP_CHECK_FUNC(inet_aton, resolv, bind)
- dnl Then headers.
- dnl -------------------------------------------------------------------------
- dnl Checks for header files.
- AC_HEADER_STDC
- AC_HEADER_DIRENT
- dnl QNX requires unix.h to allow functions in libunix to work properly
- AC_CHECK_HEADERS([ \
- inttypes.h \
- stdint.h \
- dirent.h \
- ApplicationServices/ApplicationServices.h \
- sys/param.h \
- sys/types.h \
- sys/time.h \
- netinet/in.h \
- alloca.h \
- arpa/inet.h \
- arpa/nameser.h \
- assert.h \
- crypt.h \
- dns.h \
- fcntl.h \
- grp.h \
- ieeefp.h \
- langinfo.h \
- limits.h \
- locale.h \
- monetary.h \
- netdb.h \
- poll.h \
- pwd.h \
- resolv.h \
- signal.h \
- stdarg.h \
- stdlib.h \
- string.h \
- syslog.h \
- sysexits.h \
- sys/ioctl.h \
- sys/file.h \
- sys/mman.h \
- sys/mount.h \
- sys/poll.h \
- sys/resource.h \
- sys/select.h \
- sys/socket.h \
- sys/stat.h \
- sys/statfs.h \
- sys/statvfs.h \
- sys/vfs.h \
- sys/sysexits.h \
- sys/varargs.h \
- sys/wait.h \
- sys/loadavg.h \
- termios.h \
- unistd.h \
- unix.h \
- utime.h \
- sys/utsname.h \
- sys/ipc.h \
- dlfcn.h \
- assert.h \
- tmmintrin.h \
- nmmintrin.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
- PHP_BROKEN_GLIBC_FOPEN_APPEND
- if test "$GCC" = "yes"; then
- PHP_BROKEN_GCC_STRLEN_OPT
- fi
- dnl Checks for typedefs, structures, and compiler characteristics.
- dnl -------------------------------------------------------------------------
- AC_STRUCT_TM
- AC_STRUCT_TIMEZONE
- PHP_MISSING_TIME_R_DECL
- PHP_MISSING_FCLOSE_DECL
- PHP_TM_GMTOFF
- PHP_STRUCT_FLOCK
- PHP_SOCKLEN_T
- AC_CHECK_SIZEOF(size_t, 8)
- AC_CHECK_SIZEOF(long long, 8)
- AC_CHECK_SIZEOF(long long int, 8)
- AC_CHECK_SIZEOF(long, 8)
- AC_CHECK_SIZEOF(int, 4)
- dnl These are defined elsewhere than stdio.h
- PHP_CHECK_SIZEOF(intmax_t, 0)
- PHP_CHECK_SIZEOF(ssize_t, 8)
- PHP_CHECK_SIZEOF(ptrdiff_t, 8)
- dnl Check 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 The ABI of php_addslashes in PHP 7.3 is dependent on __SSE4_2__,
- dnl which depends on target attributes. Use this check to make sure that
- dnl SSE 4.2 availability during the PHP compilation is used, independently
- dnl of whether extensions are compiled with SSE 4.2 support.
- AC_MSG_CHECKING([whether __SSE4_2__ is defined])
- AC_RUN_IFELSE([AC_LANG_SOURCE([[
- int main() {
- #if defined(__SSE4_2__)
- return 0;
- #else
- return 1;
- #endif
- }
- ]])], [
- AC_MSG_RESULT([yes])
- AC_DEFINE(HAVE_SSE4_2_DEF, 1, [Define if __SSE4_2__ has been defined])
- ], [AC_MSG_RESULT([no])], [AC_MSG_RESULT([no])])
- dnl Check for members of the stat structure
- 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
- dnl The WARNING_LEVEL required because cc in QNX hates -w option without an argument
- if test "`uname -s 2>/dev/null`" != "QNX"; then
- AC_STRUCT_ST_BLOCKS
- else
- AC_MSG_WARN([warnings level for cc set to 0])
- WARNING_LEVEL=0
- fi
- 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 <sys/types.h>
- #include <sys/socket.h>
- #include <netinet/in.h>]], [[struct sockaddr_in6 s; struct in6_addr t=in6addr_any; int i=AF_INET6; s; t.s6_addr[0] = 0;]])],
- [ac_cv_ipv6_support=yes], [ac_cv_ipv6_support=no])])
- dnl Checks for library functions.
- dnl -------------------------------------------------------------------------
- AC_FUNC_VPRINTF
- AC_CHECK_FUNCS(
- alphasort \
- asctime_r \
- chroot \
- ctime_r \
- cuserid \
- crypt \
- explicit_memset \
- flock \
- ftok \
- funopen \
- gai_strerror \
- gcvt \
- getloadavg \
- getlogin \
- getprotobyname \
- getprotobynumber \
- getservbyname \
- getservbyport \
- gethostname \
- getrusage \
- gettimeofday \
- gmtime_r \
- getpwnam_r \
- getgrnam_r \
- getpwuid_r \
- grantpt \
- inet_ntoa \
- inet_ntop \
- inet_pton \
- isascii \
- link \
- localtime_r \
- lockf \
- lchown \
- lrand48 \
- memcpy \
- memmove \
- mkstemp \
- mmap \
- nl_langinfo \
- perror \
- poll \
- ptsname \
- putenv \
- realpath \
- random \
- rand_r \
- scandir \
- setitimer \
- setlocale \
- localeconv \
- setenv \
- setpgid \
- setsockopt \
- setvbuf \
- shutdown \
- sin \
- snprintf \
- srand48 \
- srandom \
- statfs \
- statvfs \
- std_syslog \
- strcasecmp \
- strcoll \
- strdup \
- strerror \
- strftime \
- strnlen \
- strptime \
- strstr \
- strtok_r \
- symlink \
- tempnam \
- tzset \
- unlockpt \
- unsetenv \
- usleep \
- utime \
- vsnprintf \
- vasprintf \
- asprintf \
- nanosleep \
- )
- dnl Some systems (like OpenSolaris) do not have nanosleep in libc
- PHP_CHECK_FUNC_LIB(nanosleep, rt)
- dnl Check for getaddrinfo, should be a better way, but...
- dnl Also check for working getaddrinfo
- AC_CACHE_CHECK([for getaddrinfo], ac_cv_func_getaddrinfo,
- [AC_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>
- #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], [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_UTIME_NULL
- AC_FUNC_ALLOCA
- dnl PHP_AC_BROKEN_SPRINTF
- dnl PHP_AC_BROKEN_SNPRINTF
- PHP_DECLARED_TIMEZONE
- PHP_TIME_R_TYPE
- PHP_READDIR_R_TYPE
- PHP_CHECK_IN_ADDR_T
- AC_CHECK_FUNCS(crypt_r, [ php_crypt_r="1" ], [ php_crypt_r="0" ])
- if test "x$php_crypt_r" = "x1"; then
- PHP_CRYPT_R_STYLE
- fi
- 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) {
- __asm__ goto("jmp %l0\n" :::: end);
- 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 <stdlib.h>
- 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],
- [ --with-valgrind=DIR Enable valgrind support], yes, no)
- if test "$PHP_VALGRIND" != "no"; then
- AC_MSG_CHECKING([for valgrind header])
- if test "$PHP_VALGRIND" = "yes"; then
- SEARCH_PATH="/usr/local /usr"
- else
- SEARCH_PATH="$PHP_VALGRIND"
- fi
- SEARCH_FOR="/include/valgrind/valgrind.h"
- for i in $SEARCH_PATH ; do
- if test -r $i/$SEARCH_FOR; then
- VALGRIND_DIR=$i
- fi
- done
- if test -z "$VALGRIND_DIR"; then
- AC_MSG_RESULT([not found])
- else
- AC_MSG_RESULT(found in $VALGRIND_DIR)
- AC_DEFINE(HAVE_VALGRIND, 1, [ ])
- 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,
- [ --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/Makefile.gcov, $abs_srcdir)
- dnl Remove all optimization flags from CFLAGS
- changequote({,})
- CFLAGS=`echo "$CFLAGS" | $SED -e 's/-O[0-9s]*//g'`
- CXXFLAGS=`echo "$CXXFLAGS" | $SED -e 's/-O[0-9s]*//g'`
- changequote([,])
- dnl Add the special gcc flags
- CFLAGS="$CFLAGS -O0 -fprofile-arcs -ftest-coverage"
- CXXFLAGS="$CXXFLAGS -O0 -fprofile-arcs -ftest-coverage"
- fi
- PHP_ARG_ENABLE(debug, whether to include debugging symbols,
- [ --enable-debug Compile with debugging symbols], no, no)
- if test "$PHP_DEBUG" = "yes"; then
- PHP_DEBUG=1
- ZEND_DEBUG=yes
- changequote({,})
- CFLAGS=`echo "$CFLAGS" | $SED -e 's/-O[0-9s]*//g'`
- CXXFLAGS=`echo "$CXXFLAGS" | $SED -e 's/-O[0-9s]*//g'`
- changequote([,])
- dnl add -O0 only if GCC or ICC is used
- if test "$GCC" = "yes" || test "$ICC" = "yes"; then
- CFLAGS="$CFLAGS -O0"
- CXXFLAGS="$CXXFLAGS -g -O0"
- fi
- if test "$SUNCC" = "yes"; then
- if test -n "$auto_cflags"; then
- CFLAGS="-g"
- CXXFLAGS="-g"
- else
- CFLAGS="$CFLAGS -g"
- CXXFLAGS="$CFLAGS -g"
- fi
- fi
- else
- PHP_DEBUG=0
- ZEND_DEBUG=no
- fi
- PHP_ARG_WITH(layout, layout of installed files,
- [ --with-layout=TYPE Set how installed files will be laid out. Type can
- be either PHP or GNU @<:@PHP@:>@], PHP, no)
- case $PHP_LAYOUT in
- GNU)
- oldstyleextdir=no
- ;;
- *)
- oldstyleextdir=yes
- ;;
- esac
- PHP_ARG_WITH(config-file-path, path to configuration file,
- [ --with-config-file-path=PATH
- Set the path in which to look for php.ini @<:@PREFIX/lib@:>@], DEFAULT, no)
- if test "$PHP_CONFIG_FILE_PATH" = "DEFAULT"; then
- case $PHP_LAYOUT in
- GNU)
- PHP_CONFIG_FILE_PATH=$sysconfdir
- ;;
- *)
- PHP_CONFIG_FILE_PATH=$libdir
- ;;
- esac
- fi
- AC_MSG_CHECKING([where to scan for configuration files])
- PHP_ARG_WITH(config-file-scan-dir,,
- [ --with-config-file-scan-dir=PATH
- Set the path where to scan for configuration files], DEFAULT, no)
- if test "$PHP_CONFIG_FILE_SCAN_DIR" = "DEFAULT"; then
- PHP_CONFIG_FILE_SCAN_DIR=
- fi
- AC_MSG_RESULT([$PHP_CONFIG_FILE_SCAN_DIR])
- test -n "$DEBUG_CFLAGS" && CFLAGS="$CFLAGS $DEBUG_CFLAGS"
- PHP_ARG_ENABLE(sigchild, whether to enable PHP's own SIGCHLD handler,
- [ --enable-sigchild Enable PHP's own SIGCHLD handler], no, no)
- if test "$PHP_SIGCHILD" = "yes"; then
- AC_DEFINE(PHP_SIGCHILD, 1, [ ])
- else
- AC_DEFINE(PHP_SIGCHILD, 0, [ ])
- fi
- PHP_ARG_ENABLE(libgcc, whether to explicitly link against libgcc,
- [ --enable-libgcc Enable explicitly linking against libgcc], no, no)
- if test "$PHP_LIBGCC" = "yes"; then
- PHP_LIBGCC_LIBPATH(gcc)
- if test -z "$libgcc_libpath"; then
- AC_MSG_ERROR([Cannot locate libgcc. Make sure that gcc is in your path])
- fi
- PHP_ADD_LIBPATH($libgcc_libpath)
- PHP_ADD_LIBRARY(gcc, yes)
- fi
- PHP_ARG_ENABLE(short-tags, whether to enable short tags by default,
- [ --disable-short-tags Disable the short-form <? start tag by default], yes, no)
- if test "$PHP_SHORT_TAGS" = "yes"; then
- AC_DEFINE(DEFAULT_SHORT_OPEN_TAG, "1", [ ])
- else
- AC_DEFINE(DEFAULT_SHORT_OPEN_TAG, "0", [ ])
- fi
- PHP_ARG_ENABLE(dmalloc, whether to enable dmalloc,
- [ --enable-dmalloc Enable dmalloc], no, no)
- if test "$PHP_DMALLOC" = "yes"; then
- AC_CHECK_LIB(dmalloc, dmalloc_error, [
- PHP_ADD_LIBRARY(dmalloc)
- AC_DEFINE(HAVE_DMALLOC,1,[Whether you have dmalloc])
- CPPFLAGS="$CPPFLAGS -DDMALLOC_FUNC_CHECK"
- ], [
- AC_MSG_ERROR([Problem with enabling dmalloc. Please check config.log for details.])
- ])
- fi
- PHP_ARG_ENABLE(ipv6, whether to enable IPv6 support,
- [ --disable-ipv6 Disable IPv6 support], yes, no)
- if test "$PHP_IPV6" != "no" && test "$ac_cv_ipv6_support" = yes; then
- AC_DEFINE(HAVE_IPV6, 1, [Whether to enable IPv6 support])
- fi
- dnl ##
- dnl ## DTRACE CHECKS
- dnl ## Note: this has to be done after SAPI configuration!
- dnl ##
- PHP_ARG_ENABLE(dtrace, whether to enable DTrace support,
- [ --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,,
- [ --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
- dnl Extension configuration.
- dnl -------------------------------------------------------------------------
- PHP_HELP_SEPARATOR([Extensions:
- --with-EXTENSION=[shared[,PATH]]
- NOTE: Not all extensions can be build as 'shared'.
- Example: --with-foobar=shared,/usr/local/foobar/
- o Builds the foobar extension as shared extension.
- o foobar package install prefix is /usr/local/foobar/
- ])
- PHP_CONFIGURE_PART(Configuring extensions)
- dnl
- dnl Check if all enabled by default extensions should be disabled
- dnl
- AC_ARG_ENABLE(all,
- [ --disable-all Disable all extensions which are enabled by default
- ], [
- PHP_ENABLE_ALL=$enableval
- ])
- # reading config stubs
- esyscmd(./build/config-stubs ext)
- dnl Extensions post-config
- dnl -------------------------------------------------------------------------
- enable_shared=yes
- enable_static=yes
- case $php_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
- dnl overriding the system provided crypt().
- if test "$ac_cv_lib_crypt_crypt" = "yes"; then
- EXTRA_LIBS="-lcrypt $EXTRA_LIBS -lcrypt"
- fi
- unset LIBS LDFLAGS
- dnl PEAR
- dnl -------------------------------------------------------------------------
- PHP_HELP_SEPARATOR([PEAR:])
- PHP_CONFIGURE_PART(Configuring PEAR)
- # compatibility
- if test -z "$with_pear" && test "$enable_pear" = "no"; then
- with_pear=no
- fi
- # If CLI is disabled -> disable PEAR
- if test "$PHP_CLI" = "no"; then
- with_pear=no
- fi
- PHP_ARG_WITH(pear, [whether to install PEAR],
- [ --with-pear=DIR Install PEAR in DIR @<:@PREFIX/lib/php@:>@
- --without-pear Do not install PEAR], DEFAULT, yes)
- if test "$PHP_PEAR" != "no"; then
- dnl
- dnl PEAR dependencies
- dnl
- if test "$PHP_XML" = "no"; then
- pear_error_msg="$pear_error_msg
- PEAR requires XML to be enabled. Add --enable-xml to the configure line. (or --without-pear)"
- fi
- if test "$pear_error_msg"; then
- AC_MSG_ERROR([$pear_error_msg])
- fi
- install_pear="install-pear"
- PEAR_INSTALLDIR=$PHP_PEAR
- if test "$PHP_PEAR" = "DEFAULT" || test "$PHP_PEAR" = "yes"; then
- case $PHP_LAYOUT in
- GNU) PEAR_INSTALLDIR=$datadir/pear;;
- *) PEAR_INSTALLDIR=$libdir/php;;
- esac
- fi
- PHP_ADD_MAKEFILE_FRAGMENT($abs_srcdir/pear/Makefile.frag,$abs_srcdir/pear,pear)
- fi
- dnl Configuring Zend and TSRM.
- dnl -------------------------------------------------------------------------
- PHP_HELP_SEPARATOR([Zend:])
- PHP_CONFIGURE_PART(Configuring Zend)
- LIBZEND_BASIC_CHECKS
- LIBZEND_DLSYM_CHECK
- LIBZEND_OTHER_CHECKS
- if test "$ZEND_MAINTAINER_ZTS" = "yes"; then
- AC_DEFINE(ZTS,1,[ ])
- PHP_THREAD_SAFETY=yes
- else
- PHP_THREAD_SAFETY=no
- fi
- INCLUDES="$INCLUDES -I\$(top_builddir)/TSRM"
- INCLUDES="$INCLUDES -I\$(top_builddir)/Zend"
- if test "$abs_srcdir" != "$abs_builddir"; then
- INCLUDES="$INCLUDES -I\$(top_srcdir)/main -I\$(top_srcdir)/Zend"
- INCLUDES="$INCLUDES -I\$(top_srcdir)/TSRM -I\$(top_builddir)/"
- fi
- ZEND_EXTRA_LIBS="$LIBS"
- unset LIBS LDFLAGS
- PHP_HELP_SEPARATOR([TSRM:])
- PHP_CONFIGURE_PART(Configuring TSRM)
- TSRM_BASIC_CHECKS
- if test "$PHP_THREAD_SAFETY" = "yes"; then
- TSRM_THREADS_CHECKS
- fi
- EXTRA_LDFLAGS="$EXTRA_LDFLAGS $LDFLAGS"
- EXTRA_LDFLAGS_PROGRAM="$EXTRA_LDFLAGS_PROGRAM $LDFLAGS"
- EXTRA_LIBS="$EXTRA_LIBS $LIBS"
- unset LIBS LDFLAGS
- test "$prefix" = "NONE" && prefix=/usr/local
- test "$exec_prefix" = "NONE" && exec_prefix='${prefix}'
- test "$program_prefix" = "NONE" && program_prefix=
- test "$program_suffix" = "NONE" && program_suffix=
- case $libdir in
- '${exec_prefix}/lib')
- libdir=$libdir/php
- ;;
- esac
- case `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"
- # SOURCE_DATE_EPOCH for reproducible builds 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_EXECUTABLE)
- 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_OLD(php_abs_top_builddir)
- PHP_SUBST_OLD(php_abs_top_srcdir)
- PHP_SUBST(bindir)
- PHP_SUBST(sbindir)
- PHP_SUBST(exec_prefix)
- PHP_SUBST_OLD(program_prefix)
- PHP_SUBST_OLD(program_suffix)
- PHP_SUBST(includedir)
- PHP_SUBST(libdir)
- PHP_SUBST(mandir)
- PHP_SUBST(phplibdir)
- PHP_SUBST(phptempdir)
- PHP_SUBST(prefix)
- PHP_SUBST(localstatedir)
- PHP_SUBST(datadir)
- PHP_SUBST(datarootdir)
- PHP_SUBST(sysconfdir)
- PHP_SUBST(EXEEXT)
- PHP_SUBST(CC)
- PHP_SUBST(CFLAGS)
- PHP_SUBST(CFLAGS_CLEAN)
- PHP_SUBST(CPP)
- PHP_SUBST(CPPFLAGS)
- PHP_SUBST(CXX)
- PHP_SUBST(CXXFLAGS)
- PHP_SUBST(CXXFLAGS_CLEAN)
- PHP_SUBST_OLD(DEBUG_CFLAGS)
- PHP_SUBST_OLD(EXTENSION_DIR)
- PHP_SUBST_OLD(EXTRA_LDFLAGS)
- PHP_SUBST_OLD(EXTRA_LDFLAGS_PROGRAM)
- PHP_SUBST_OLD(EXTRA_LIBS)
- PHP_SUBST_OLD(ZEND_EXTRA_LIBS)
- PHP_SUBST_OLD(INCLUDES)
- PHP_SUBST_OLD(EXTRA_INCLUDES)
- PHP_SUBST_OLD(INCLUDE_PATH)
- PHP_SUBST_OLD(INSTALL_IT)
- PHP_SUBST(LFLAGS)
- PHP_SUBST(LIBTOOL)
- PHP_SUBST(LN_S)
- PHP_SUBST_OLD(NATIVE_RPATHS)
- PHP_SUBST_OLD(PEAR_INSTALLDIR)
- PHP_SUBST(PHP_BUILD_DATE)
- PHP_SUBST_OLD(PHP_LDFLAGS)
- PHP_SUBST_OLD(PHP_LIBS)
- PHP_SUBST(OVERALL_TARGET)
- PHP_SUBST(PHP_RPATHS)
- PHP_SUBST(PHP_SAPI)
- PHP_SUBST_OLD(PHP_VERSION)
- PHP_SUBST_OLD(PHP_VERSION_ID)
- PHP_SUBST(SHELL)
- PHP_SUBST(SHARED_LIBTOOL)
- PHP_SUBST(WARNING_LEVEL)
- PHP_SUBST(PHP_FRAMEWORKS)
- PHP_SUBST(PHP_FRAMEWORKPATH)
- PHP_SUBST(INSTALL_HEADERS)
- old_CC=$CC
- if test "$PHP_THREAD_SAFETY" = "yes" && test -n "$ac_cv_pthreads_cflags"; then
- CXXFLAGS="$CXXFLAGS $ac_cv_pthreads_cflags"
- INLINE_CFLAGS="$INLINE_CFLAGS $ac_cv_pthreads_cflags"
- CPPFLAGS="$CPPFLAGS $ac_cv_pthreads_cflags"
- fi
- dnl This will go away, if we have a facility to run per-extension code
- dnl after the thread_safety decision was done
- if test "$PHP_THREAD_SAFETY" = "yes" && test "$PHP_MYSQL" = "yes"; then
- CPPFLAGS="$CPPFLAGS -DTHREAD=1"
- fi
- ZEND_EXT_TYPE="zend_extension"
- PHP_SUBST(ZEND_EXT_TYPE)
- dnl
- dnl Libtool creation
- dnl
- PHP_HELP_SEPARATOR([Libtool:])
- PHP_CONFIGURE_PART(Configuring libtool)
- LDFLAGS="$LDFLAGS $PHP_AIX_LDFLAGS"
- 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 Only allow AC_PROG_CXX and AC_PROG_CXXCPP if they are explicitly called (by PHP_REQUIRE_CXX).
- dnl Otherwise AC_PROG_LIBTOOL fails if there is no working C++ 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 tsrm_strtok_r.c, -DZEND_ENABLE_STATIC_TSRMLS_CACHE=1)
- PHP_ADD_SOURCES(main, main.c snprintf.c spprintf.c php_sprintf.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_sprintf.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_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
- dnl compiling the executor.
- if test -n "$GCC" && test "$ZEND_INLINE_OPTIMIZATION" != "yes"; then
- flag=-O0
- else
- flag=
- fi
- PHP_ADD_SOURCES_X(Zend, zend_execute.c, -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/Makefile.frag,$abs_srcdir/Zend,Zend)
- 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 pear/scripts
- $php_shtool mkdir -p scripts
- $php_shtool mkdir -p scripts/man1
- ALL_OUTPUT_FILES="php7.spec main/build-defs.h \
- scripts/phpize scripts/man1/phpize.1 \
- scripts/php-config scripts/man1/php-config.1 \
- $PHP_OUTPUT_FILES"
- dnl
- dnl Check for unknown configure options
- dnl
- PHP_CHECK_CONFIGURE_OPTIONS
- dnl
- dnl Generate build files
- dnl
- AC_CONFIG_FILES([$ALL_OUTPUT_FILES])
- AC_CONFIG_COMMANDS([default],[],[
- if test "\$CONFIG_FILES" = "$ALL_OUTPUT_FILES" || test "\$CONFIG_FILES" = " $ALL_OUTPUT_FILES" || test -z "\$CONFIG_FILES"; then
- REDO_ALL=yes
- fi
- ################################################################
- # Create configuration headers
- #
- test -d TSRM || $php_shtool mkdir TSRM
- echo '#include <../main/php_config.h>' > TSRM/tsrm_config.h
- test -d Zend || $php_shtool mkdir Zend
- cat >Zend/zend_config.h <<FEO
- #include <../main/php_config.h>
- #if defined(APACHE) && defined(PHP_API_VERSION)
- #undef HAVE_DLFCN_H
- #endif
- FEO
- # run this only when generating all the files?
- if test -n "\$REDO_ALL"; then
- # Hacking while airborne considered harmful.
- #
- echo "creating main/internal_functions.c"
- extensions="$EXT_STATIC"
- dnl mv -f main/internal_functions.c main/internal_functions.c.old 2>/dev/null
- sh $srcdir/build/genif.sh $srcdir/main/internal_functions.c.in $srcdir "$EXTRA_MODULE_PTRS" $AWK \$extensions > main/internal_functions.c
- echo "creating main/internal_functions_cli.c"
- cli_extensions="$EXT_CLI_STATIC"
- sh $srcdir/build/genif.sh $srcdir/main/internal_functions.c.in $srcdir "$EXTRA_MODULE_PTRS" $AWK \$cli_extensions > main/internal_functions_cli.c
- if test -n "$PHP_APXS_BROKEN"; then
- echo "+--------------------------------------------------------------------+"
- echo "| WARNING: Your $APXS script is most likely broken."
- echo "| |"
- echo "| Please go read http://www.php.net/faq.build#faq.build.apxs |"
- echo "| and make the changes described there and try again. |"
- fi
- if test -n "$DEBUG_LOG"; then
- rm -f config.cache
- cat <<X
- +--------------------------------------------------------------------+
- | *** ATTENTION *** |
- | |
- | Something is likely to be messed up here, because the configure |
- | script was not able to detect a simple feature on your platform. |
- | This is often caused by incorrect configuration parameters. Please |
- | see the file debug.log for error messages. |
- | |
- | If you are unable to fix this, send the file debug.log to the |
- | php-install@lists.php.net mailing list and include appropriate |
- | information about your setup. |
- X
- fi
- 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-maintainer-zts |
- X
- fi
- fi
- fi
- # Warn about linking Apache with libpthread if oci8 extension is enabled on linux.
- if test "$PHP_OCI8" != "no"; then
- if test "$PHP_SAPI" = "apache"; then
- if test `uname` = "Linux"; then
- cat <<X
- +--------------------------------------------------------------------+
- | *** WARNING *** |
- | |
- | Please check that your Apache (httpd) is linked with libpthread. |
- | If not, you have to recompile Apache with pthread. For more |
- | details, see this page: http://www.php.net/manual/ref.oci8.php |
- X
- fi
- fi
- if test "$PHP_SIGCHILD" != "yes"; then
- 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
- 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
- # Output unknown configure options
- if test "$PHP_UNKNOWN_CONFIGURE_OPTIONS"; then
- echo "Notice: Following unknown configure options were used:
- $PHP_UNKNOWN_CONFIGURE_OPTIONS
- Check '[$]0 --help' for available options
- "
- fi
- fi
- ])
- AC_OUTPUT
- dnl ## Local Variables:
- dnl ## tab-width: 4
- dnl ## End:
|