dnl ## $Id$ -*- sh -*- dnl ## Process this file with autoconf to produce a configure script. divert(1) dnl ## Diversion 1 is the autoconf + automake setup phase. We also dnl ## set the PHP version, deal with platform-specific compile dnl ## options and check for the basic compile tools. dnl ## Diversion 2 is the initial checking of OS features, programs, dnl ## libraries and so on. dnl ## In diversion 3 we check for compile-time options to the PHP dnl ## core and how to deal with different system dependencies. This dnl ## includes what regex library is used and whether debugging or short dnl ## tags are enabled, and the default behaviour of php.ini options. dnl ## This is also where an SAPI interface is selected (choosing between dnl ## Apache module, CGI etc.) dnl ## In diversion 4 we check user-configurable general settings. dnl ## In diversion 5 we check which extensions should be compiled. dnl ## All of these are normally in the extension directories. dnl ## Diversion 5 is the last one. Here we generate files and clean up. dnl Basic autoconf + automake initialization, generation of config.nice. dnl ------------------------------------------------------------------------- AC_PREREQ(2.13) AC_INIT(README.CVS-RULES) dnl check for working sed PHP_PROG_SED PHP_CONFIG_NICE(config.nice) for arg in $0 "$@"; do CONFIGURE_COMMAND="$CONFIGURE_COMMAND '$arg'" done AC_CANONICAL_HOST AC_CONFIG_HEADER(main/php_config.h) MAJOR_VERSION=5 MINOR_VERSION=0 RELEASE_VERSION=0 EXTRA_VERSION="-dev" VERSION="$MAJOR_VERSION.$MINOR_VERSION.$RELEASE_VERSION$EXTRA_VERSION" dnl Define where extension directories are located in the configure context AC_DEFUN(PHP_EXT_BUILDDIR,[ext/$1])dnl AC_DEFUN(PHP_EXT_DIR,[ext/$1])dnl AC_DEFUN(PHP_EXT_SRCDIR,[$abs_srcdir/ext/$1])dnl AC_DEFUN(PHP_ALWAYS_SHARED,[])dnl dnl Setting up the PHP version based on the information above. dnl ------------------------------------------------------------------------- PHP_VERSION=$VERSION echo "/* automatically generated by configure */" > php_version.h.new echo "/* edit configure.in to change version number */" >> php_version.h.new echo "#define PHP_MAJOR_VERSION $MAJOR_VERSION" >> php_version.h.new echo "#define PHP_MINOR_VERSION $MINOR_VERSION" >> php_version.h.new echo "#define PHP_RELEASE_VERSION $RELEASE_VERSION" >> php_version.h.new echo "#define PHP_EXTRA_VERSION \"$EXTRA_VERSION\"" >> php_version.h.new echo "#define PHP_VERSION \"$PHP_VERSION\"" >> php_version.h.new cmp php_version.h.new php_version.h >/dev/null 2>&1 if test $? -ne 0 ; then rm -f php_version.h && mv php_version.h.new php_version.h && \ echo 'Updated php_version.h' else rm -f php_version.h.new fi dnl Catch common errors here to save a few seconds of our users' time dnl ------------------------------------------------------------------------- if test "$with_shared_apache" != "no" && test -n "$with_shared_apache" ; then AC_MSG_ERROR([--with-shared-apache is not supported. Please refer to the documentation for using APXS]) fi if test -n "$with_apache" && test -n "$with_apxs"; then AC_MSG_ERROR([--with-apache and --with-apxs cannot be used together]) fi dnl Settings we want to make before the checks. dnl ------------------------------------------------------------------------- cwd=`pwd` PHP_INIT_BUILD_SYSTEM php_shtool=$srcdir/build/shtool T_MD=`$php_shtool echo -n -e %B` T_ME=`$php_shtool echo -n -e %b` 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 AC_PROG_CC_C_O dnl Change to AC_PROG_CC_STDC when we start requiring a post-2.13 autoconf dnl AC_PROG_CC_STDC AC_PROG_CPP AC_AIX dnl AC_PROG_CXX dnl AC_PROG_CXXCPP dnl check for -R, etc. switch PHP_RUNPATH_SWITCH AC_PROG_RANLIB AC_PROG_LN_S AC_PROG_AWK AC_PROG_YACC if test "$YACC" != "bison -y"; then AC_MSG_WARN([You will need bison if you want to regenerate the PHP parsers.]) else AC_MSG_CHECKING([bison version]) set `bison --version| grep 'GNU Bison' | cut -d ' ' -f 4 | sed -e 's/\./ /'` if test "${1}" = "1" -a "${2}" -lt "28"; then AC_MSG_WARN(You will need bison 1.28 if you want to regenerate the Zend parser (found ${1}.${2}).) fi AC_MSG_RESULT(${1}.${2} (ok)) fi AC_PROG_LEX if test -n "$LEX"; then AC_DECL_YYTEXT : fi dnl ## Make flex scanners use const if they can, even if __STDC__ is not dnl ## true, for compilers like Sun's that only set __STDC__ true in dnl ## "limit-to-ANSI-standard" mode, not in "ANSI-compatible" mode AC_C_CONST if test "$ac_cv_c_const" = "yes" ; then LEX_CFLAGS="-DYY_USE_CONST" fi AC_MSG_CHECKING([flex version]) set `echo "" | $LEX -V -v --version 2>/dev/null | grep 'version' | cut -d ' ' -f 3 | sed -e 's/\./ /g' | sed -e 's/[^0-9 ]//g'` if test "${1}" != "2" -o "${2}" != "5" -o "${3}" -lt "4"; then AC_MSG_WARN(You will need flex 2.5.4 or later if you want to regenerate Zend/PHP lexical parsers.) fi AC_MSG_RESULT(${1}.${2}.${3} (ok)) dnl Platform-specific compile settings. dnl ------------------------------------------------------------------------- dnl if host_alias is empty, ac_cv_host_alias may still have the info if test -z "$host_alias"; then host_alias=$ac_cv_host_alias fi case $host_alias in *solaris*) CPPFLAGS="$CPPFLAGS -D_POSIX_PTHREAD_SEMANTICS" if test "${enable_libgcc+set}" != "set" && test "$GCC" = "yes"; then enable_libgcc=yes fi ;; *dgux*) CPPFLAGS="$CPPFLAGS -D_BSD_TIMEOFDAY_FLAVOR";; *darwin*|*rhapsody*) CPPFLAGS="$CPPFLAGS -no-cpp-precomp" php_multiple_shlib_versions_ok=yes;; *beos*) beos_threads=1 LIBS="$LIBS -lbe -lroot";; *mips*) CPPFLAGS="$CPPFLAGS -D_XPG_IV";; esac dnl Include Zend and TSRM configurations. dnl ------------------------------------------------------------------------- sinclude(Zend/acinclude.m4) sinclude(Zend/Zend.m4) sinclude(TSRM/tsrm.m4) divert(2) dnl ## Diversion 2 is where we set PHP-specific options and come up dnl ## with reasonable default values for them. We check for pthreads here dnl ## because the information is needed by the SAPI configuration. dnl ## This is also where an SAPI interface is selected (choosing between dnl ## Apache module, CGI etc.) dnl . dnl ------------------------------------------------------------------------- PTHREADS_CHECK PHP_HELP_SEPARATOR([SAPI modules:]) PHP_SHLIB_SUFFIX_NAME PHP_SAPI=default PHP_BUILD_PROGRAM dnl SAPI configuration. dnl ------------------------------------------------------------------------- dnl paths to the targets are relative to the build directory SAPI_SHARED=libs/libphp4.$SHLIB_SUFFIX_NAME SAPI_STATIC=libs/libphp4.a SAPI_LIBTOOL=libphp4.la PHP_CONFIGURE_PART(Configuring SAPI modules) esyscmd(./build/config-stubs sapi) dnl Show which main SAPI was selected AC_MSG_CHECKING([for chosen SAPI module]) AC_MSG_RESULT([$PHP_SAPI]) if test "$enable_maintainer_zts" = "yes"; then PTHREADS_ASSIGN_VARS PTHREADS_FLAGS fi if test "$PHP_ENABLE_FASTCGI" = "yes"; then PHP_CONFIGURE_PART(Running FastCGI checks) sinclude(sapi/cgi/libfcgi/acinclude.m4) sinclude(sapi/cgi/libfcgi/libfcgi.m4) fi divert(3) dnl ## In diversion 3 we check for compile-time options to the PHP dnl ## core and how to deal with different system dependencies. This dnl ## includes what regex library is used and whether debugging or short dnl ## tags are enabled, and the default behaviour of php.ini options. dnl Starting system checks. dnl ------------------------------------------------------------------------- PHP_CONFIGURE_PART(Running system checks) PHP_MISSING_TIME_R_DECL PHP_PROG_SENDMAIL dnl Check whether the system uses EBCDIC (not ASCII) as its native codeset PHP_EBCDIC 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 INCLUDES="$INCLUDES -I\$(top_builddir)/Zend" 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(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 resolver routines. dnl Need to check for both res_search and __res_search dnl in -lc, -lbind, -lresolv and -lsocket PHP_CHECK_FUNC(res_search, resolv, bind, socket) dnl Check for inet_aton and dn_skipname dnl in -lc, -lbind and -lresolv PHP_CHECK_FUNC(inet_aton, resolv, bind) PHP_CHECK_FUNC(dn_skipname, resolv, bind) dnl Then headers. dnl ------------------------------------------------------------------------- dnl Checks for header files. AC_HEADER_STDC dnl In QNX opendir resides in libc but dirent.h is still required if test "`uname -s 2>/dev/null`" != "QNX"; then AC_HEADER_DIRENT else AC_CHECK_HEADERS(dirent.h) fi PHP_MISSING_FCLOSE_DECL dnl QNX requires unix.h to allow functions in libunix to work properly AC_CHECK_HEADERS([ \ ApplicationServices/ApplicationServices.h \ sys/types.h \ sys/time.h \ netinet/in.h \ alloca.h \ arpa/inet.h \ arpa/nameser.h \ assert.h \ crypt.h \ fcntl.h \ grp.h \ ieeefp.h \ langinfo.h \ limits.h \ locale.h \ monetary.h \ mach-o/dyld.h \ netdb.h \ pwd.h \ resolv.h \ signal.h \ stdarg.h \ stdlib.h \ string.h \ syslog.h \ sysexits.h \ sys/file.h \ sys/mman.h \ sys/mount.h \ sys/poll.h \ sys/resource.h \ sys/select.h \ sys/socket.h \ sys/statfs.h \ sys/statvfs.h \ sys/vfs.h \ sys/sysexits.h \ sys/varargs.h \ sys/wait.h \ unistd.h \ unix.h \ utime.h \ sys/utsname.h \ sys/ipc.h \ ],[],[],[ #ifdef HAVE_SYS_TYPES_H #include #endif #ifdef HAVE_SYS_TIME_H #include #endif #ifdef HAVE_NETINET_IN_H #include #endif #ifdef HAVE_ARPA_NAMESER_H #include #endif ]) PHP_FOPENCOOKIE PHP_BROKEN_GLIBC_FOPEN_APPEND dnl Checks for typedefs, structures, and compiler characteristics. dnl ------------------------------------------------------------------------- AC_STRUCT_TM AC_STRUCT_TIMEZONE PHP_TM_GMTOFF PHP_STRUCT_FLOCK PHP_SOCKLEN_T AC_CHECK_SIZEOF(long, 8) AC_CHECK_SIZEOF(int, 4) dnl Check for members of the stat structure AC_STRUCT_ST_BLKSIZE dnl AC_STRUCT_ST_BLOCKS will screw QNX because fileblocks.o does not exists dnl The WARNING_LEVEL required because cc in QNX hates -w option without an argument if test "`uname -s 2>/dev/null`" != "QNX"; then AC_STRUCT_ST_BLOCKS else AC_MSG_WARN([warnings level for cc set to 0]) WARNING_LEVEL=0 fi AC_STRUCT_ST_RDEV dnl Checks for types AC_TYPE_SIZE_T AC_TYPE_UID_T dnl Check for struct sockaddr_storage AC_CACHE_CHECK([for struct sockaddr_storage], ac_cv_sockaddr_storage, [AC_TRY_COMPILE([ #include #include ], [struct sockaddr_storage s; s], ac_cv_sockaddr_storage=yes, ac_cv_sockaddr_storage=no)]) if test "$ac_cv_sockaddr_storage" = yes; then AC_DEFINE(HAVE_SOCKADDR_STORAGE,1,[Whether you have struct sockaddr_storage]) fi dnl Check if sockaddr data structure includes an "sa_len" member AC_TRY_COMPILE([ #include #include ], [static struct sockaddr sa; int n = (int) sa.sa_len; return n], [AC_DEFINE(HAVE_SOCKADDR_LEN,1,[Whether sockaddr struct has sa_len])], []) dnl Check for IPv6 support AC_CACHE_CHECK([for IPv6 support], ac_cv_ipv6_support, [AC_TRY_LINK([ #include #include #include ], [struct sockaddr_in6 s; struct in6_addr t=in6addr_any; int i=AF_INET6; s; t.s6_addr[0] = 0;], [ac_cv_ipv6_support=yes], [ac_cv_ipv6_support=no])]) dnl Checks for library functions. dnl ------------------------------------------------------------------------- AC_FUNC_VPRINTF AC_CHECK_FUNCS( alphasort \ asctime_r \ chroot \ ctime_r \ cuserid \ crypt \ flock \ ftok \ funopen \ gai_strerror \ gcvt \ getlogin \ getprotobyname \ getprotobynumber \ getservbyname \ getservbyport \ getrusage \ gettimeofday \ gmtime_r \ isascii \ link \ localtime_r \ lockf \ lrand48 \ memcpy \ memmove \ mkstemp \ mmap \ nl_langinfo \ poll \ putenv \ realpath \ random \ rand_r \ regcomp \ res_search \ scandir \ setitimer \ setlocale \ localeconv \ setsockopt \ setvbuf \ shutdown \ sin \ snprintf \ srand48 \ srandom \ statfs \ statvfs \ std_syslog \ strcasecmp \ strcoll \ strdup \ strerror \ strftime \ strstr \ strtok_r \ symlink \ tempnam \ tzset \ unsetenv \ usleep \ utime \ vsnprintf \ ) dnl Check for getaddrinfo, should be a better way, but... AC_CACHE_CHECK([for getaddrinfo], ac_cv_func_getaddrinfo, [AC_TRY_COMPILE([#include ], [struct addrinfo *g,h;g=&h;getaddrinfo("","",g,&g);], ac_cv_func_getaddrinfo=yes, ac_cv_func_getaddrinfo=no)]) if test "$ac_cv_func_getaddrinfo" = yes; then AC_DEFINE(HAVE_GETADDRINFO,1,[Define if you have the getaddrinfo function]) fi AC_REPLACE_FUNCS(strlcat strlcpy getopt) AC_FUNC_UTIME_NULL AC_FUNC_ALLOCA PHP_AC_BROKEN_SPRINTF PHP_AC_BROKEN_SNPRINTF PHP_DECLARED_TIMEZONE PHP_TIME_R_TYPE PHP_READDIR_R_TYPE dnl AIX keeps in_addr_t in /usr/include/netinet/in.h dnl AC_MSG_CHECKING([for in_addr_t]) AC_CACHE_VAL(ac_cv_type_$1, [AC_EGREP_CPP(dnl changequote(<<,>>)dnl <>dnl changequote([,]), [#include #if STDC_HEADERS #include #include #endif #ifdef HAVE_NETINET_IN_H #include #endif], ac_cv_type_in_addr_t=yes, ac_cv_type_in_addr_t=no)])dnl dnl AC_MSG_RESULT([$ac_cv_type_in_addr_t]) if test $ac_cv_type_in_addr_t = no; then AC_DEFINE(in_addr_t, u_int, [ ]) fi divert(4) dnl ## In diversion 4 we check user-configurable general settings. dnl General settings. dnl ------------------------------------------------------------------------- PHP_HELP_SEPARATOR([General settings:]) 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 else PHP_DEBUG=0 ZEND_DEBUG=no fi PHP_ARG_WITH(layout,[layout of installed files], [ --with-layout=TYPE Sets how installed files will be laid out. Type is one of "PHP" (default) or "GNU"], 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 Sets the path in which to look for php.ini, defaults to 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 PHP_ARG_WITH(config-file-scan-dir,[directory to be scanned for configuration files], [ --with-config-file-scan-dir=PATH ], DEFAULT, no) if test "$PHP_CONFIG_FILE_SCAN_DIR" = "DEFAULT"; then PHP_CONFIG_FILE_SCAN_DIR="" fi # compatibility if test -z "$with_pear" && test "$enable_pear" = "no"; then with_pear=no fi PHP_ARG_WITH(pear, [whether to install PEAR, and where], [ --with-pear=DIR Install PEAR in DIR (default PREFIX/lib/php) --without-pear Do not install PEAR], DEFAULT, no) if test "$PHP_PEAR" != "no" && test "$PHP_SAPI_CLI" != "no"; then install_pear="install-pear" PEAR_INSTALLDIR=$PHP_PEAR fi 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 test -n "$DEBUG_CFLAGS" && CFLAGS="$CFLAGS $DEBUG_CFLAGS" PHP_ARG_ENABLE(safe-mode, whether to enable safe mode by default, [ --enable-safe-mode Enable safe mode by default.], no, no) if test "$PHP_SAFE_MODE" = "yes"; then AC_DEFINE(PHP_SAFE_MODE,1,[ ]) else AC_DEFINE(PHP_SAFE_MODE,0,[ ]) fi AC_MSG_CHECKING([for safe mode exec dir]) AC_ARG_WITH(exec-dir, [ --with-exec-dir[=DIR] Only allow executables in DIR when in safe mode defaults to /usr/local/php/bin], [ if test "$withval" != "no"; then if test "$withval" = "yes"; then AC_DEFINE(PHP_SAFE_MODE_EXEC_DIR,"/usr/local/php/bin", [ ]) AC_MSG_RESULT([/usr/local/php/bin]) else AC_DEFINE_UNQUOTED(PHP_SAFE_MODE_EXEC_DIR,"$withval", [ ]) AC_MSG_RESULT([$withval]) fi else AC_DEFINE(PHP_SAFE_MODE_EXEC_DIR,"/usr/local/php/bin", [ ]) AC_MSG_RESULT([/usr/local/php/bin]) fi ],[ AC_DEFINE(PHP_SAFE_MODE_EXEC_DIR,"/usr/local/php/bin", [ ]) AC_MSG_RESULT([/usr/local/php/bin]) ]) PHP_ARG_ENABLE(sigchild,whether to enable PHP's own SIGCHLD handler, [ --enable-sigchild Enable PHP's own SIGCHLD handler.], no, no) if test "$PHP_SIGCHILD" = "yes"; then AC_DEFINE(PHP_SIGCHILD, 1, [ ]) else AC_DEFINE(PHP_SIGCHILD, 0, [ ]) fi PHP_ARG_ENABLE(magic-quotes,whether to enable magic quotes by default, [ --enable-magic-quotes Enable magic quotes by default.], no, no) if test "$PHP_MAGIC_QUOTES" = "yes"; then AC_DEFINE(MAGIC_QUOTES, 1, [ ]) else AC_DEFINE(MAGIC_QUOTES, 0, [ ]) fi PHP_ARG_ENABLE(rpath, whether to enable runpaths, [ --disable-rpath Disable passing additional runtime library search paths], yes, no) 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 = 0.9.6) ]) if test "$PHP_OPENSSL" != "no"; then ext_openssl_shared=$ext_shared PHP_SETUP_OPENSSL fi AC_CHECK_LIB(crypt, crypt, [ PHP_ADD_LIBRARY(crypt) PHP_ADD_LIBRARY(crypt, 1) AC_DEFINE(HAVE_CRYPT,1,[ ]) ]) divert(5) dnl ## In diversion 5 we check which extensions should be compiled. dnl ## All of these are normally in the extension directories. dnl Extension configuration. dnl ------------------------------------------------------------------------- PHP_HELP_SEPARATOR([Extensions: --with-EXTENSION=[shared[,PATH]] NOTE: Not all extensions can be build as 'shared'. Example: --with-foobar=shared,/usr/local/foobar/ o Builds the foobar extension as shared extension. o foobar package install prefix is /usr/local/foobar/ ]) PHP_CONFIGURE_PART(Configuring extensions) dnl dnl Check if all enabled by default extensions should be disabled dnl AC_ARG_ENABLE(all, [ --disable-all Disable all extensions enabled by default. --enable-all Enable all extensions. ], [ PHP_ENABLE_ALL=$enableval ]) # reading config stubs esyscmd(./build/config-stubs ext) dnl Other settings. dnl ------------------------------------------------------------------------- PHP_HELP_SEPARATOR([Other settings:]) AC_MSG_CHECKING([whether to enable versioning]) AC_ARG_ENABLE(versioning, [ --enable-versioning Export only required symbols. See INSTALL for more information],[ PHP_VERSIONING=$enableval ],[ PHP_VERSIONING=no ]) AC_MSG_RESULT([$PHP_VERSIONING]) if test "$PHP_VERSIONING" = "yes"; then test -z "$PHP_SYM_FILE" && PHP_SYM_FILE="$abs_srcdir/sapi/$PHP_SAPI/php.sym" if test -f "$PHP_SYM_FILE"; then EXTRA_LDFLAGS="-export-symbols $PHP_SYM_FILE" fi fi enable_shared=yes enable_static=yes unset with_pic case $php_build_target in program|static) standard_libtool_flag='-prefer-non-pic -static' if test -z "$PHP_MODULES"; then enable_shared=no fi ;; shared) enable_static=no standard_libtool_flag=-prefer-pic EXTRA_LDFLAGS="$EXTRA_LDFLAGS -avoid-version -module" ;; esac PHP_REGEX EXTRA_LIBS="$EXTRA_LIBS $DLIBS $LIBS" unset LIBS LDFLAGS dnl Configuring Zend and TSRM. dnl ------------------------------------------------------------------------- PHP_CONFIGURE_PART(Configuring Zend) LIBZEND_BASIC_CHECKS LIBZEND_DLSYM_CHECK LIBZEND_OTHER_CHECKS TSRM_LIB='TSRM/libtsrm.la' TSRM_DIR=TSRM CPPFLAGS="$CPPFLAGS -I\$(top_builddir)/TSRM" if test "$ZEND_MAINTAINER_ZTS" = "yes"; then AC_DEFINE(ZTS,1,[ ]) PHP_THREAD_SAFETY=yes else PHP_THREAD_SAFETY=no fi if test "$abs_srcdir" != "$abs_builddir"; then INCLUDES="$INCLUDES -I\$(top_srcdir)/main -I\$(top_srcdir)/Zend" INCLUDES="$INCLUDES -I\$(top_srcdir)/TSRM" fi ZEND_EXTRA_LIBS="$LIBS" unset LIBS LDFLAGS 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_LIBS="$EXTRA_LIBS $LIBS" unset LIBS LDFLAGS test "$prefix" = "NONE" && prefix=/usr/local test "$exec_prefix" = "NONE" && exec_prefix='${prefix}' case $libdir in '${exec_prefix}/lib') libdir=$libdir/php ;; esac case $datadir in '${prefix}/share') datadir=$datadir/php ;; *) ;; esac phplibdir=`pwd`/modules $php_shtool mkdir -p $phplibdir phptempdir=`pwd`/libs old_exec_prefix=$exec_prefix old_libdir=$libdir old_datadir=$datadir exec_prefix=`eval echo $exec_prefix` libdir=`eval echo $libdir` datadir=`eval echo $datadir` dnl Build extension directory path ZEND_MODULE_API_NO=`grep -E '#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 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_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_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" PHP_BUILD_DATE=`date '+%Y-%m-%d'` 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]) if test "$PHP_SAPI_CLI" != "no"; then PHP_CLI_TARGET="\$(SAPI_CLI_PATH)" PHP_INSTALL_CLI_TARGET="install-cli" PHP_ADD_SOURCES(sapi/cli, php_cli.c getopt.c,, cli) fi PHP_SUBST(PHP_CLI_TARGET) PHP_SUBST(PHP_SAPI_OBJS) PHP_SUBST(PHP_CLI_OBJS) PHP_SUBST(PHP_GLOBAL_OBJS) PHP_SUBST(PHP_MODULES) PHP_SUBST(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(exec_prefix) PHP_SUBST(includedir) PHP_SUBST(libdir) PHP_SUBST(phplibdir) PHP_SUBST(phptempdir) PHP_SUBST(prefix) PHP_SUBST(localstatedir) PHP_SUBST(datadir) PHP_SUBST(sysconfdir) PHP_SUBST(AWK) PHP_SUBST(CC) PHP_SUBST(CFLAGS) PHP_SUBST(CFLAGS_CLEAN) PHP_SUBST_OLD(CONFIGURE_COMMAND) PHP_SUBST(CPP) PHP_SUBST(CPPFLAGS) PHP_SUBST(CXX) PHP_SUBST(CXXFLAGS) PHP_SUBST(CXXFLAGS_CLEAN) PHP_SUBST(CXX_PHP_COMPILE) PHP_SUBST_OLD(DEBUG_CFLAGS) PHP_SUBST(DEFS) PHP_SUBST_OLD(EXTENSION_DIR) PHP_SUBST_OLD(EXTRA_LDFLAGS) 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(LEX) PHP_SUBST(LEX_OUTPUT_ROOT) 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(PHP_COMPILE) 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(PROG_SENDMAIL) PHP_SUBST(SHELL) PHP_SUBST(SHARED_LIBTOOL) PHP_SUBST(TSRM_DIR) PHP_SUBST(TSRM_LIB) PHP_SUBST(WARNING_LEVEL) PHP_SUBST(PHP_FRAMEWORKS) PHP_SUBST(PHP_FRAMEWORKPATH) PHP_SUBST_OLD(YACC) PHP_SUBST_OLD(SHLIB_SUFFIX_NAME) old_CC=$CC if test "$PHP_THREAD_SAFETY" = "yes" && test -n "$ac_cv_pthreads_cflags"; then CXXFLAGS="$CXXFLAGS $ac_cv_pthreads_cflags" INLINE_CFLAGS="$INLINE_CFLAGS $ac_cv_pthreads_cflags" cat >meta_ccld< $srcdir/ext/bcmath/number.c echo "creating number.h" echo "/* Dummy File */" > $srcdir/ext/bcmath/number.h fi ################################################################ # Create configuration headers # test -d TSRM || mkdir TSRM echo '#include "../main/php_config.h"' > TSRM/tsrm_config.h test -d Zend || mkdir Zend cat >Zend/zend_config.h </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 dnl if cmp main/internal_functions.c.old main/internal_functions.c > /dev/null 2>&1; then dnl echo "main/internal_functions.c is unchanged" dnl mv main/internal_functions.c.old main/internal_functions.c dnl else dnl rm -f main/internal_functions.c.old dnl fi if test "$UNAME" = "FreeBSD" && test "$PHP_SAPI" = "apache2filter" && test "$TSRM_PTH" != "pth-config" ; then echo "+--------------------------------------------------------------------+" echo "| *** WARNING *** |" echo "| |" echo "| In order to build PHP as a Apache2 module on FreeBSD, you have to |" echo "| add --with-tsrm-pth to your ./configure line. Therefore you need |" echo "| to install gnu-pth from /usr/ports/devel/pth. |" fi if test -n "$PHP_APXS_BROKEN"; then echo "+--------------------------------------------------------------------+" echo "| WARNING: Your $APXS script is most likely broken." echo "| |" echo "| Please go read http://www.php.net/faq.build#faq.build.apxs |" echo "| and make the changes described there and try again. |" fi # Warn about CGI version with no extra security options. if test "$PHP_SAPI" = "cgi"; then if test "$REDIRECT" = "0"; then if test "$DISCARD_PATH" = "0"; then echo "+--------------------------------------------------------------------+" echo "| *** WARNING *** |" echo "| |" echo "| You will be compiling the CGI version of PHP without any |" echo "| redirection checking. By putting this cgi binary somewhere in |" echo "| your web space, users may be able to circumvent existing .htaccess |" echo "| security by loading files directly through the parser. See |" echo "| http://www.php.net/manual/security.php for more details. |" fi fi fi if test -n "$DEBUG_LOG"; then rm -f config.cache cat < processes when using a local Oracle-DB | | please recompile PHP and specify --enable-sigchild when configuring| | (This problem has been reported under Linux using Oracle >= 8.1.5) | X fi fi cat <