mirror of
https://github.com/php/php-src.git
synced 2024-11-24 02:15:04 +08:00
1723 lines
47 KiB
Plaintext
1723 lines
47 KiB
Plaintext
## -*- 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=19
|
|
PHP_EXTRA_VERSION="-dev"
|
|
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 <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) {
|
|
exit(1);
|
|
}
|
|
|
|
if (ai == 0) {
|
|
exit(1);
|
|
}
|
|
|
|
pai = ai;
|
|
|
|
while (pai) {
|
|
if (pai->ai_family != AF_INET) {
|
|
/* 127.0.0.1/NUMERICHOST should only resolve ONE way */
|
|
exit(1);
|
|
}
|
|
if (pai->ai_addr->sa_family != AF_INET) {
|
|
/* 127.0.0.1/NUMERICHOST should only resolve ONE way */
|
|
exit(1);
|
|
}
|
|
pai = pai->ai_next;
|
|
}
|
|
freeaddrinfo(ai);
|
|
exit(0);
|
|
}
|
|
]])],[ac_cv_func_getaddrinfo=yes], [ac_cv_func_getaddrinfo=no], [ac_cv_func_getaddrinfo=no])],
|
|
[ac_cv_func_getaddrinfo=no])])
|
|
if test "$ac_cv_func_getaddrinfo" = yes; then
|
|
AC_DEFINE(HAVE_GETADDRINFO,1,[Define if you have the getaddrinfo function])
|
|
fi
|
|
|
|
dnl Check for the __sync_fetch_and_add builtin
|
|
AC_CACHE_CHECK([for __sync_fetch_and_add], ac_cv_func_sync_fetch_and_add,
|
|
[AC_LINK_IFELSE([AC_LANG_PROGRAM([], [[int x;__sync_fetch_and_add(&x,1);]])],[ac_cv_func_sync_fetch_and_add=yes],[ac_cv_func_sync_fetch_and_add=no])])
|
|
if test "$ac_cv_func_sync_fetch_and_add" = yes; then
|
|
AC_DEFINE(HAVE_SYNC_FETCH_AND_ADD,1,[Define if you have the __sync_fetch_and_add function])
|
|
fi
|
|
|
|
AC_REPLACE_FUNCS(strlcat strlcpy explicit_bzero getopt)
|
|
AC_FUNC_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:
|