summaryrefslogtreecommitdiff
path: root/configure.in
diff options
context:
space:
mode:
authorMarko Karppinen <markonen@php.net>2002-01-26 23:57:17 +0000
committerMarko Karppinen <markonen@php.net>2002-01-26 23:57:17 +0000
commite9111e53f6c2d9516cc5dbdba3aa8aef44b98ba3 (patch)
tree64f7f487f5e200c0dd85e50351d991c6e817fcfd /configure.in
parent3d95bf927c35529dec2ea69353f3ff53787d3cea (diff)
downloadphp-git-e9111e53f6c2d9516cc5dbdba3aa8aef44b98ba3.tar.gz
- Reorganized stuff in configure.in and added a few comments
# This isn't nearly as big a change as the diff would lead one to believe. # I've tested this on all my machines and its working for sniper too. - Added a check for ApplicationServices/ApplicationServices.h (Mac OS X) - Added AC_PROG_CPP, AC_PROG_CXX and AC_PROG_CXXCPP # (the bundled libmysql build was failing without them with ac2.52/OSX) - Improved the IPv6 check to fail on Mac OS X (there's no IPv6 there yet)
Diffstat (limited to 'configure.in')
-rw-r--r--configure.in296
1 files changed, 198 insertions, 98 deletions
diff --git a/configure.in b/configure.in
index 51e6fe9cf4..b49b785c4a 100644
--- a/configure.in
+++ b/configure.in
@@ -3,37 +3,9 @@ dnl ## Process this file with autoconf to produce a configure script.
divert(1)
-AC_INIT(README.CVS-RULES)
-
-PHP_FAST_OUTPUT(sapi/Makefile ext/Makefile Makefile pear/Makefile main/Makefile sapi/cli/Makefile)
-
-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
-
-cwd=`pwd`
-
-PHP_CONFIG_NICE(config.nice)
-
-for arg in $0 "$@"; do
- CONFIGURE_COMMAND="$CONFIGURE_COMMAND '$arg'"
-done
-
-php_shtool=$srcdir/build/shtool
-T_MD=`$php_shtool echo -n -e %B`
-T_ME=`$php_shtool echo -n -e %b`
-
-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 ## 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.
@@ -45,13 +17,33 @@ 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 which extensions should be compiled.
-dnl ## All of these are normally in the extension directories.
+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 ## This is where the version number is changed from now on!
+
+
+dnl Basic autoconf + automake initialization, generation of config.nice.
+dnl -------------------------------------------------------------------------
+
+AC_INIT(README.CVS-RULES)
+
+PHP_CONFIG_NICE(config.nice)
+for arg in $0 "$@"; do
+ CONFIGURE_COMMAND="$CONFIGURE_COMMAND '$arg'"
+done
+
+AC_CANONICAL_HOST
AM_INIT_AUTOMAKE(php, 4.2.0-dev, nodefine)
+AM_CONFIG_HEADER(main/php_config.h)
+AM_MAINTAINER_MODE
+
+
+
+dnl Setting up the PHP version based on the information above.
+dnl -------------------------------------------------------------------------
PHP_VERSION=$VERSION
echo "/* automatically generated by configure */" > php_version.h.new
@@ -65,37 +57,31 @@ else
rm -f php_version.h.new
fi
-AM_CONFIG_HEADER(main/php_config.h)
-AM_MAINTAINER_MODE
-AC_CANONICAL_HOST
-dnl We want this one before the checks, so the checks can modify CFLAGS.
-test -z "$CFLAGS" && auto_cflags=1
-dnl Checks for programs.
-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))
+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
-AC_PROG_CC
-AC_AIX
-BSD_MAKEFILE=no
+
+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
+BSD_MAKEFILE=no
+
case $host_alias in
*solaris*)
CPPFLAGS="$CPPFLAGS -D_POSIX_PTHREAD_SEMANTICS"
@@ -116,18 +102,91 @@ case $host_alias in
CPPFLAGS="$CPPFLAGS -D_XPG_IV";;
esac
-AM_PROG_CC_STDC
-AC_PROG_RANLIB
+
+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`
+
+dnl We want this one before the checks, so the checks can modify CFLAGS.
+test -z "$CFLAGS" && auto_cflags=1
+
+dnl AC_AIX needs to be before any macros that run the C compiler.
+AC_AIX
+
+abs_srcdir=`(cd $srcdir; pwd)`
+abs_builddir=`pwd`
+
+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/*
+
+PHP_FAST_OUTPUT(sapi/Makefile ext/Makefile Makefile pear/Makefile main/Makefile sapi/cli/Makefile)
+
+
+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
+AM_PROG_CC_STDC
+AC_PROG_CPP
+AC_PROG_CXX
+AC_PROG_CXXCPP
+dnl check for -R, etc. switch
+AC_MSG_CHECKING([whether compiler supports -R])
+AC_CACHE_VAL(php_cv_cc_dashr,[
+ SAVE_LIBS=$LIBS
+ LIBS="-R /usr/lib $LIBS"
+ AC_TRY_LINK([], [], php_cv_cc_dashr=yes, php_cv_cc_dashr=no)
+ LIBS=$SAVE_LIBS])
+AC_MSG_RESULT([$php_cv_cc_dashr])
+if test $php_cv_cc_dashr = "yes"; then
+ ld_runpath_switch=-R
+else
+ AC_MSG_CHECKING([whether compiler supports -Wl,-rpath,])
+ AC_CACHE_VAL(php_cv_cc_rpath,[
+ SAVE_LIBS=$LIBS
+ LIBS="-Wl,-rpath,/usr/lib $LIBS"
+ AC_TRY_LINK([], [], php_cv_cc_rpath=yes, php_cv_cc_rpath=no)
+ LIBS=$SAVE_LIBS])
+ AC_MSG_RESULT([$php_cv_cc_rpath])
+ if test $php_cv_cc_rpath = "yes"; then
+ ld_runpath_switch=-Wl,-rpath,
+ else
+ dnl something innocuous
+ ld_runpath_switch=-L
+ fi
+fi
+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
@@ -136,22 +195,39 @@ if test "$ac_cv_c_const" = "yes" ; then
LEX_CFLAGS="-DYY_USE_CONST"
fi
-abs_srcdir=`(cd $srcdir; pwd)`
-abs_builddir=`pwd`
+
+
+dnl Include Zend and TSRM configurations.
+dnl -------------------------------------------------------------------------
sinclude(Zend/acinclude.m4)
sinclude(Zend/Zend.m4)
sinclude(TSRM/tsrm.m4)
+
+
divert(2)
-PHP_HELP_SEPARATOR([SAPI modules:])
-PTHREADS_CHECK
+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.)
-PHP_SHLIB_SUFFIX_NAME
+dnl .
+dnl -------------------------------------------------------------------------
+PTHREADS_CHECK
+PHP_HELP_SEPARATOR([SAPI modules:])
+PHP_SHLIB_SUFFIX_NAME
PHP_SAPI=cgi
PHP_BUILD_PROGRAM
+
+
+
+dnl SAPI configuration.
+dnl -------------------------------------------------------------------------
+
dnl paths to the targets are relative to the build directory
SAPI_PROGRAM=php
SAPI_SHARED=libs/libphp4.$SHLIB_SUFFIX_NAME
@@ -170,55 +246,39 @@ if test "$enable_experimental_zts" = "yes"; then
PTHREADS_FLAGS
fi
+
+
divert(3)
-PHP_CONFIGURE_PART(Running system checks)
+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.
-PHP_MISSING_TIME_R_DECL
-dnl check for -R, etc. switch
-AC_MSG_CHECKING([whether compiler supports -R])
-AC_CACHE_VAL(php_cv_cc_dashr,[
- SAVE_LIBS=$LIBS
- LIBS="-R /usr/lib $LIBS"
- AC_TRY_LINK([], [], php_cv_cc_dashr=yes, php_cv_cc_dashr=no)
- LIBS=$SAVE_LIBS])
-AC_MSG_RESULT([$php_cv_cc_dashr])
-if test $php_cv_cc_dashr = "yes"; then
- ld_runpath_switch=-R
-else
- AC_MSG_CHECKING([whether compiler supports -Wl,-rpath,])
- AC_CACHE_VAL(php_cv_cc_rpath,[
- SAVE_LIBS=$LIBS
- LIBS="-Wl,-rpath,/usr/lib $LIBS"
- AC_TRY_LINK([], [], php_cv_cc_rpath=yes, php_cv_cc_rpath=no)
- LIBS=$SAVE_LIBS])
- AC_MSG_RESULT([$php_cv_cc_rpath])
- if test $php_cv_cc_rpath = "yes"; then
- ld_runpath_switch=-Wl,-rpath,
- else
- dnl something innocuous
- ld_runpath_switch=-L
- fi
-fi
-PHP_PROG_SENDMAIL
+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
dnl Check for /usr/pkg/{lib,include} which is where NetBSD puts binary
dnl and source packages. This should be harmless on other OSs.
-dnl
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 -------------------------------------------------------------------------
+
AC_CHECK_LIB(socket, socket, [
PHP_ADD_LIBRARY(socket)
AC_DEFINE(HAVE_LIBSOCKET,1,[ ]) ], [
@@ -278,6 +338,11 @@ AC_CHECK_LIB(socket, res_search, [
])
])
+
+
+dnl Then headers.
+dnl -------------------------------------------------------------------------
+
dnl Checks for header files.
AC_HEADER_STDC
@@ -290,6 +355,7 @@ fi
PHP_MISSING_FCLOSE_DECL
dnl QNX requires unix.h to allow functions in libunix to work properly
AC_CHECK_HEADERS(
+ApplicationServices/ApplicationServices.h \
alloca.h \
arpa/inet.h \
arpa/nameser.h \
@@ -336,7 +402,11 @@ $ac_includes_default
#endif
])
+
+
dnl Checks for typedefs, structures, and compiler characteristics.
+dnl -------------------------------------------------------------------------
+
AC_STRUCT_TM
AC_STRUCT_TIMEZONE
@@ -347,8 +417,6 @@ PHP_SOCKLEN_T
AC_CHECK_SIZEOF(long, 8)
AC_CHECK_SIZEOF(int, 4)
-test -d /usr/ucblib && PHP_ADD_LIBPATH(/usr/ucblib)
-
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
@@ -378,13 +446,17 @@ dnl Check for IPv6 support
AC_CACHE_CHECK([for IPv6 support], ac_cv_ipv6_support,
[AC_TRY_COMPILE([ #include <sys/types.h>
#include <sys/socket.h>
-#include <netinet/in.h>], [struct sockaddr_in6 s; int i=AF_INET6; s],
+#include <netinet/in.h>], [struct sockaddr_in6 s; struct in6_addr t=in6addr_any; int i=AF_INET6; s],
ac_cv_ipv6_support=yes, ac_cv_ipv6_support=no)])
if test "$ac_cv_ipv6_support" = yes; then
AC_DEFINE(HAVE_IPV6,1,[Whether you have IPv6 support])
fi
+
+
dnl Checks for library functions.
+dnl -------------------------------------------------------------------------
+
AC_FUNC_VPRINTF
AC_CHECK_FUNCS(
asctime_r \
@@ -487,7 +559,16 @@ 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,
@@ -658,7 +739,18 @@ AC_CHECK_LIB(crypt, crypt, [
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]]
@@ -679,6 +771,10 @@ esyscmd(./scripts/config-stubs ext)
PHP_FAST_OUTPUT(sapi/$PHP_SAPI/Makefile)
+
+dnl Other settings.
+dnl -------------------------------------------------------------------------
+
PHP_HELP_SEPARATOR([Other settings:])
AC_MSG_CHECKING([whether to enable versioning])
@@ -729,6 +825,10 @@ fi
PHP_REGEX
+
+dnl Configuring Zend and TSRM.
+dnl -------------------------------------------------------------------------
+
PHP_CONFIGURE_PART(Configuring Zend)
LIBZEND_BASIC_CHECKS
LIBZEND_OTHER_CHECKS