X-Git-Url: https://granicus.if.org/sourcecode?a=blobdiff_plain;f=configure.in;h=22b9d596e8073e6cab62a413e7b650fdf7a99405;hb=aa13d94821997adddef4beeee0e1d29c0402da23;hp=bdc5f51f5d2369d0ebc0d8337cd53c8569619170;hpb=7ee5ab0f04a0295a24ecd0d6e4fcef71ea234326;p=apache diff --git a/configure.in b/configure.in index bdc5f51f5d..22b9d596e8 100644 --- a/configure.in +++ b/configure.in @@ -10,6 +10,14 @@ AC_INIT(ABOUT_APACHE) AC_CONFIG_HEADER(include/ap_config_auto.h) AC_CONFIG_AUX_DIR(build) +dnl Absolute source/build directory +abs_srcdir=`(cd $srcdir && pwd)` +abs_builddir=`pwd` + +dnl Ensure that the httpd version is included +HTTPD_VERSION=`$abs_srcdir/build/get-version.sh all $abs_srcdir/include/ap_release.h AP_SERVER` +HTTPD_MMN=`$abs_srcdir/build/get-version.sh mmn $abs_srcdir/include/ap_mmn.h MODULE_MAGIC_NUMBER` + dnl # dnl # Include our own M4 macros along with those for APR and libtool dnl # @@ -59,6 +67,10 @@ nl=' dnl Check that mkdir -p works APR_MKDIR_P_CHECK($top_srcdir/build/mkdir.sh) +dnl get an EGREP to use in the Makefiles +AC_PROG_EGREP +APACHE_SUBST(EGREP) + dnl ## Run configure for packages Apache uses dnl shared library support for these packages doesn't currently @@ -68,19 +80,33 @@ AC_CANONICAL_SYSTEM orig_prefix="$prefix" -echo $ac_n "${nl}Configuring Apache Portable Runtime library ...${nl}" +AC_MSG_NOTICE([]) +AC_MSG_NOTICE([Configuring Apache Portable Runtime library...]) +AC_MSG_NOTICE([]) AC_ARG_WITH(included-apr, APACHE_HELP_STRING(--with-included-apr,Use bundled copies of APR/APR-Util)) if test "x$with_included_apr" = "xyes"; then - apr_found=reconfig + apr_found=reconfig + if test ! -d srclib/apr && test ! -d $srcdir/srclib/apr; then + AC_MSG_ERROR([Bundled APR requested but not found at ./srclib/. Please refer to the documentation on APR in the httpd INSTALL file.]) + fi else - APR_FIND_APR("$srcdir/srclib/apr", "./srclib/apr", 1, 1 2) + APR_FIND_APR("$srcdir/srclib/apr", "./srclib/apr", 1, 1 2, [ + version=`$apr_config --version` + case x${version} in + x1.[[0-3]].*) + AC_MSG_WARN([APR version 1.4.0 or later is required, found $version]) + apr_acceptable=no + ;; + esac + unset version + ]) fi if test "$apr_found" = "no"; then - AC_MSG_ERROR([APR not found. Please read the documentation.]) + AC_MSG_ERROR([APR not found. Please refer to the documentation on APR in the httpd INSTALL file.]) fi if test "$apr_found" = "reconfig"; then @@ -104,6 +130,8 @@ APR_SETIFNULL(CC, `$apr_config --cc`) APR_SETIFNULL(CPP, `$apr_config --cpp`) APR_ADDTO(CFLAGS, `$apr_config --cflags`) APR_ADDTO(CPPFLAGS, `$apr_config --cppflags`) +dnl internal-only CPPFLAGS (shouldn't affect third-party module builds) +INTERNAL_CPPFLAGS="" APR_ADDTO(LDFLAGS, `$apr_config --ldflags`) SHLIBPATH_VAR=`$apr_config --shlib-path-var` APR_BINDIR=`$apr_config --bindir` @@ -113,12 +141,17 @@ APR_VERSION=`$apr_config --version` apr_major_version=`echo ${APR_VERSION} | sed 's,\..*,,'` APR_CONFIG="$APR_BINDIR/apr-${apr_major_version}-config" -echo $ac_n "${nl}Configuring Apache Portable Runtime Utility library...${nl}" +AC_MSG_NOTICE([]) +AC_MSG_NOTICE([Configuring Apache Portable Runtime Utility library...]) +AC_MSG_NOTICE([]) if test "x${apr_major_version}" = "x2"; then - apu_found=obsolete + apu_found=obsolete elif test "x$with_included_apr" = "xyes"; then - apu_found=reconfig + apu_found=reconfig + if test ! -d srclib/apr-util && test ! -d $srcdir/srclib/apr-util; then + AC_MSG_ERROR([Bundled APR-Util requested but not found at ./srclib/. Please refer to the documentation on APR in the httpd INSTALL file.]) + fi else dnl If httpd is buildconf'ed against an apr 2.x tree, then 1.x dnl isn't supported. @@ -129,7 +162,7 @@ else fi if test "$apu_found" = "no"; then - AC_MSG_ERROR([APR-util not found. Please read the documentation.]) + AC_MSG_ERROR([APR-util not found. Please refer to the documentation on APR in the httpd INSTALL file.]) fi # Catch some misconfigurations: @@ -173,40 +206,59 @@ AC_PROG_CPP dnl Try to get c99 support for variadic macros ifdef([AC_PROG_CC_C99], [AC_PROG_CC_C99]) +dnl In case of cross compilation we set CC_FOR_BUILD to cc unless +dnl we got already CC_FOR_BUILD from environment. +if test "x${build_alias}" != "x${host_alias}"; then + if test "x${CC_FOR_BUILD}" = "x"; then + CC_FOR_BUILD=cc + fi +fi + if test "x${cache_file}" = "x/dev/null"; then # Likewise, ensure that CC and CPP are passed through to the pcre # configure script iff caching is disabled (the autoconf 2.5x default). export CC; export CPP fi -dnl Absolute source/build directory -abs_srcdir=`(cd $srcdir && pwd)` -abs_builddir=`pwd` - AC_ARG_WITH(pcre, APACHE_HELP_STRING(--with-pcre=PATH,Use external PCRE library)) - -AC_PATH_PROG(PCRE_CONFIG, pcre-config, false) -if test -d "$with_pcre" && test -x "$with_pcre/bin/pcre-config"; then - PCRE_CONFIG=$with_pcre/bin/pcre-config -elif test -x "$with_pcre"; then - PCRE_CONFIG=$with_pcre +if test "x$with_pcre" = "x" || test "$with_pcre" = "yes"; then + with_pcre="$PATH" +else if which $with_pcre 2>/dev/null; then :; else + with_pcre="$with_pcre/bin:$with_pcre" fi +fi + +AC_CHECK_TARGET_TOOLS(PCRE_CONFIG, [pcre2-config pcre-config], + [`which $with_pcre 2>/dev/null`], $with_pcre) -if test "$PCRE_CONFIG" != "false"; then +if test "x$PCRE_CONFIG" != "x"; then if $PCRE_CONFIG --version >/dev/null 2>&1; then :; else - AC_MSG_ERROR([Did not find pcre-config script at $PCRE_CONFIG]) + AC_MSG_ERROR([Did not find working script at $PCRE_CONFIG]) fi + case `$PCRE_CONFIG --version` in + [1[0-9].*]) + AC_DEFINE(HAVE_PCRE2, 1, [Detected PCRE2]) + ;; + [[1-5].*]) + AC_MSG_ERROR([Need at least pcre version 6.7]) + ;; + [6.[0-6]*]) + AC_MSG_ERROR([Need at least pcre version 6.7]) + ;; + esac AC_MSG_NOTICE([Using external PCRE library from $PCRE_CONFIG]) APR_ADDTO(PCRE_INCLUDES, [`$PCRE_CONFIG --cflags`]) - APR_ADDTO(PCRE_LIBS, [`$PCRE_CONFIG --libs`]) + APR_ADDTO(PCRE_LIBS, [`$PCRE_CONFIG --libs8 2>/dev/null || $PCRE_CONFIG --libs`]) + APR_ADDTO(HTTPD_LIBS, [\$(PCRE_LIBS)]) else - AC_MSG_ERROR([pcre-config for libpcre not found. PCRE is required and available from http://pcre.org/]) + AC_MSG_ERROR([pcre(2)-config for libpcre not found. PCRE is required and available from http://pcre.org/]) fi APACHE_SUBST(PCRE_LIBS) -APR_ADDTO(AP_LIBS, [\$(PCRE_LIBS)]) -echo $ac_n "${nl}Configuring Apache httpd ...${nl}" +AC_MSG_NOTICE([]) +AC_MSG_NOTICE([Configuring Apache httpd...]) +AC_MSG_NOTICE([]) dnl If the source dir is not equal to the build dir, dnl then we are running in VPATH mode. @@ -228,7 +280,27 @@ APR_ADDTO(INCLUDES, $APU_INCLUDES) dnl Add in path to PCRE includes APR_ADDTO(INCLUDES, $PCRE_INCLUDES) -echo $ac_n "${nl}Applying OS-specific hints for httpd ...${nl}" +save_CPPFLAGS="$CPPFLAGS" +CPPFLAGS="$CPPFLAGS $PCRE_INCLUDES" +AC_EGREP_CPP(yes, +[ +#ifdef HAVE_PCRE2 +yes +#else +#include +#ifdef PCRE_DUPNAMES +yes +#endif +#endif +],pcre_have_dupnames=yes,pcre_have_dupnames=no) +if test "$pcre_have_dupnames" != "yes"; then + AC_MSG_ERROR([pcre version does not support PCRE_DUPNAMES]) +fi +CPPFLAGS="$save_CPPFLAGS" + +AC_MSG_NOTICE([]) +AC_MSG_NOTICE([Applying OS-specific hints for httpd...]) +AC_MSG_NOTICE([]) case $host in *os2*) @@ -278,10 +350,11 @@ case $host in ;; *-linux-*) case `uname -r` in - 2.[[2-9]]* ) - APR_SETVAR(SINGLE_LISTEN_UNSERIALIZED_ACCEPT, [1]) + # Unserialized accept() was not recommended until Linux 2.2. + [[01]].* | 2.[[01]]* ) ;; * ) + APR_SETVAR(SINGLE_LISTEN_UNSERIALIZED_ACCEPT, [1]) ;; esac ;; @@ -294,7 +367,7 @@ case $host in dnl solaris 8 and above don't have a thundering herd dnl not sure about rev's before this one. case `uname -r` in - 5.[567]*) + 5.[[567]]*) ;; * ) APR_SETVAR(SINGLE_LISTEN_UNSERIALIZED_ACCEPT, [1]) @@ -305,7 +378,8 @@ case $host in APR_SETVAR(SINGLE_LISTEN_UNSERIALIZED_ACCEPT, [1]) ;; *mingw32*) - APR_ADDTO(CPPFLAGS, [-DAP_DECLARE_EXPORT]) + APR_ADDTO(INTERNAL_CPPFLAGS, [-DAP_DECLARE_EXPORT]) + APR_ADDTO(INTERNAL_CPPFLAGS, [-DAPREQ_DECLARE_EXPORT]) APR_SETIFNULL(ac_cv_func_times, [no]) APR_SETIFNULL(ac_cv_func_getpwnam, [no]) APR_SETIFNULL(ac_cv_func_getgrnam, [no]) @@ -403,7 +477,8 @@ strings.h \ sys/prctl.h \ sys/processor.h \ sys/sem.h \ -sys/sdt.h +sys/sdt.h \ +sys/loadavg.h ) AC_HEADER_SYS_WAIT @@ -437,12 +512,25 @@ bindprocessor \ prctl \ timegm \ getpgid \ -fopen64 +fopen64 \ +getloadavg ) dnl confirm that a void pointer is large enough to store a long integer APACHE_CHECK_VOID_PTR_LEN +AC_CACHE_CHECK([for gettid()], ac_cv_gettid, +[AC_TRY_RUN(#define _GNU_SOURCE +#include +#include +#include +int main(int argc, char **argv) { +pid_t t = syscall(SYS_gettid); return t == -1 ? 1 : 0; }, +[ac_cv_gettid=yes], [ac_cv_gettid=no], [ac_cv_gettid=no])]) +if test "$ac_cv_gettid" = "yes"; then + AC_DEFINE(HAVE_GETTID, 1, [Define if you have gettid()]) +fi + dnl ## Check for the tm_gmtoff field in struct tm to get the timezone diffs AC_CACHE_CHECK([for tm_gmtoff in struct tm], ac_cv_struct_tm_gmtoff, [AC_TRY_COMPILE([#include @@ -452,6 +540,8 @@ if test "$ac_cv_struct_tm_gmtoff" = "yes"; then AC_DEFINE(HAVE_GMTOFF, 1, [Define if struct tm has a tm_gmtoff field]) fi +APACHE_CHECK_SYSTEMD + dnl ## Set up any appropriate OS-specific environment variables for apachectl case $host in @@ -487,8 +577,10 @@ DTRACE=true AC_ARG_ENABLE(dtrace,APACHE_HELP_STRING(--enable-dtrace,Enable DTrace probes), [ enable_dtrace=$enableval - APR_ADDTO(CPPFLAGS, -DAPR_DTRACE_PROVIDER) - AC_MSG_ERROR('DTrace Support in the build system is not complete. Patches Welcome!') + if test "$enableval" = "yes"; then + APR_ADDTO(CPPFLAGS, -DAPR_DTRACE_PROVIDER) + AC_MSG_ERROR('DTrace Support in the build system is not complete. Patches Welcome!') + fi ], [ enable_dtrace=no @@ -512,54 +604,79 @@ APACHE_SUBST(DTRACE) AC_ARG_ENABLE(hook-probes,APACHE_HELP_STRING(--enable-hook-probes,Enable APR hook probes), [ - AC_DEFINE(AP_HOOK_PROBES_ENABLED, 1, - [Enable the APR hook probes capability, reading from ap_hook_probes.h]) - APR_ADDTO(CPPFLAGS, -DAP_HOOK_PROBES_ENABLED) + if test "$enableval" = "yes"; then + AC_DEFINE(AP_HOOK_PROBES_ENABLED, 1, + [Enable the APR hook probes capability, reading from ap_hook_probes.h]) + APR_ADDTO(INTERNAL_CPPFLAGS, -DAP_HOOK_PROBES_ENABLED) + fi ])dnl AC_ARG_ENABLE(exception-hook,APACHE_HELP_STRING(--enable-exception-hook,Enable fatal exception hook), [ - AC_DEFINE(AP_ENABLE_EXCEPTION_HOOK, 1, - [Allow modules to run hook after a fatal exception]) + if test "$enableval" = "yes"; then + AC_DEFINE(AP_ENABLE_EXCEPTION_HOOK, 1, + [Allow modules to run hook after a fatal exception]) + fi ])dnl -AC_ARG_ENABLE(maintainer-mode,APACHE_HELP_STRING(--enable-maintainer-mode,Turn on debugging and compile time warnings), +AC_ARG_ENABLE(load-all-modules,APACHE_HELP_STRING(--enable-load-all-modules,Load all modules), +[ + LOAD_ALL_MODULES=$enableval + AC_MSG_NOTICE([Setting "LOAD_ALL_MODULES" to $LOAD_ALL_MODULES]) +], [ - APR_ADDTO(CPPFLAGS, -DAP_DEBUG) - if test "$GCC" = "yes"; then - APR_ADDTO(CFLAGS,[-Wall -Wmissing-prototypes -Wstrict-prototypes -Wmissing-declarations -Wpointer-arith]) - AC_CACHE_CHECK([whether gcc accepts -Wdeclaration-after-statement], [ap_cv_cc_Wdas], [ - save_CFLAGS=$CFLAGS - CFLAGS="$CFLAGS -Wdeclaration-after-statement" - AC_COMPILE_IFELSE([int foo() { return 0; }], - [ap_cv_cc_Wdas=yes], [ap_cv_cc_Wdas=no]) - CFLAGS=$save_CFLAGS - ]) - if test "$ap_cv_cc_Wdas" = "yes"; then - APR_ADDTO(CFLAGS,[-Wdeclaration-after-statement]) + LOAD_ALL_MODULES="no" +]) + +AC_ARG_ENABLE(maintainer-mode,APACHE_HELP_STRING(--enable-maintainer-mode,Turn on debugging and compile time warnings and load all compiled modules), +[ + if test "$enableval" = "yes"; then + APR_ADDTO(NOTEST_CPPFLAGS, -DAP_DEBUG) + if test "$GCC" = "yes"; then + APACHE_ADD_GCC_CFLAG([-std=c89]) + APACHE_ADD_GCC_CFLAG([-Werror]) + APACHE_ADD_GCC_CFLAG([-Wall]) + APACHE_ADD_GCC_CFLAG([-Wstrict-prototypes]) + APACHE_ADD_GCC_CFLAG([-Wmissing-prototypes]) + APACHE_ADD_GCC_CFLAG([-Wmissing-declarations]) + APACHE_ADD_GCC_CFLAG([-Wdeclaration-after-statement]) + APACHE_ADD_GCC_CFLAG([-Wpointer-arith]) + APACHE_ADD_GCC_CFLAG([-Wformat]) + APACHE_ADD_GCC_CFLAG([-Wformat-security]) + APACHE_ADD_GCC_CFLAG([-Wunused]) + elif test "$AIX_XLC" = "yes"; then + APR_ADDTO(NOTEST_CFLAGS,-qfullpath -qinitauto=FE -qcheck=all -qinfo=pro) + fi + if test "x$enable_load_all_modules" = "x"; then + LOAD_ALL_MODULES=yes + AC_MSG_NOTICE([Maintainer mode setting "LOAD_ALL_MODULES" to $LOAD_ALL_MODULES]) + fi + if test "x$enable_bucketeer" = "x"; then + enable_bucketeer=yes + AC_MSG_NOTICE([Maintainer mode setting "enable_bucketeer" to yes]) fi - elif test "$AIX_XLC" = "yes"; then - APR_ADDTO(CFLAGS,-qfullpath -qinitauto=FE -qcheck=all -qinfo=pro) fi ])dnl AC_ARG_ENABLE(debugger-mode,APACHE_HELP_STRING(--enable-debugger-mode,Turn on debugging and compile time warnings and turn off optimization), [ - APR_ADDTO(CPPFLAGS, -DAP_DEBUG) - if test "$GCC" = "yes"; then - APR_ADDTO(CFLAGS,[-Wall -Wmissing-prototypes -Wstrict-prototypes -Wmissing-declarations -Wpointer-arith -O0]) - AC_CACHE_CHECK([whether gcc accepts -Wdeclaration-after-statement], [ap_cv_cc_Wdas], [ - save_CFLAGS=$CFLAGS - CFLAGS="$CFLAGS -Wdeclaration-after-statement" - AC_COMPILE_IFELSE([int foo() { return 0; }], - [ap_cv_cc_Wdas=yes], [ap_cv_cc_Wdas=no]) - CFLAGS=$save_CFLAGS - ]) - if test "$ap_cv_cc_Wdas" = "yes"; then - APR_ADDTO(CFLAGS,[-Wdeclaration-after-statement]) + if test "$enableval" = "yes"; then + APR_ADDTO(NOTEST_CPPFLAGS, -DAP_DEBUG) + if test "$GCC" = "yes"; then + APACHE_ADD_GCC_CFLAG([-O0]) + APACHE_ADD_GCC_CFLAG([-Wall]) + APACHE_ADD_GCC_CFLAG([-Wstrict-prototypes]) + APACHE_ADD_GCC_CFLAG([-Wmissing-prototypes]) + APACHE_ADD_GCC_CFLAG([-Wmissing-declarations]) + APACHE_ADD_GCC_CFLAG([-Wdeclaration-after-statement]) + APACHE_ADD_GCC_CFLAG([-Werror=declaration-after-statement]) + APACHE_ADD_GCC_CFLAG([-Wpointer-arith]) + APACHE_ADD_GCC_CFLAG([-Wformat]) + APACHE_ADD_GCC_CFLAG([-Wformat-security]) + APACHE_ADD_GCC_CFLAG([-Werror=format-security]) + elif test "$AIX_XLC" = "yes"; then + APR_ADDTO(NOTEST_CFLAGS,-qfullpath -qinitauto=FE -qcheck=all -qinfo=pro) fi - elif test "$AIX_XLC" = "yes"; then - APR_ADDTO(CFLAGS,-qfullpath -qinitauto=FE -qcheck=all -qinfo=pro) fi ])dnl @@ -583,8 +700,40 @@ if test "$enable_pie" = "yes"; then AC_ERROR([--enable-pie requested but $CC failed using PIE flags]) fi fi -AC_SUBST(PICFLAGS) -AC_SUBST(PILDFLAGS) +APACHE_SUBST(PICFLAGS) +APACHE_SUBST(PILDFLAGS) + +AC_ARG_WITH(valgrind, + [ --with-valgrind[[=DIR]] Enable code to reduce valgrind false positives + (optionally: set path to valgrind headers) ], + [ if test "$withval" != no; then + if test "$withval" = yes; then + withval=/usr/include/valgrind + fi + APR_ADDTO(CPPFLAGS, -I$withval) + AC_CHECK_HEADERS(valgrind.h memcheck.h) + APR_IFALLYES(header:valgrind.h header:memcheck.h, + [AC_DEFINE(HAVE_VALGRIND, 1, [Compile in valgrind support]) ], + [AC_MSG_ERROR(valgrind headers not found) ] + ) + fi ] +) + +dnl Enable the unit test executable if Check is installed. +dnl TODO: at the moment, only pkg-config discovery is supported. +AC_MSG_CHECKING([for Check to enable unit tests]) +if test "x$PKGCONFIG" != "x" && `$PKGCONFIG --atleast-version='0.9.12' check`; then + UNITTEST_CFLAGS=`$PKGCONFIG --cflags check` + UNITTEST_LIBS=`$PKGCONFIG --libs check` + other_targets="$other_targets test/httpdunit" + + AC_MSG_RESULT([yes]) +else + AC_MSG_RESULT([no]) +fi +APACHE_SUBST(UNITTEST_CFLAGS) +APACHE_SUBST(UNITTEST_LIBS) + prefix="$orig_prefix" APACHE_ENABLE_MODULES @@ -598,6 +747,7 @@ APACHE_SUBST(OS_DIR) APACHE_SUBST(BUILTIN_LIBS) APACHE_SUBST(SHLIBPATH_VAR) APACHE_SUBST(OS_SPECIFIC_VARS) +APACHE_SUBST(HTTPD_LIBS) PRE_SHARED_CMDS='echo ""' POST_SHARED_CMDS='echo ""' @@ -665,7 +815,26 @@ APACHE_HELP_STRING(--with-suexec-gidmin,Minimal allowed GID),[ AC_ARG_WITH(suexec-logfile, APACHE_HELP_STRING(--with-suexec-logfile,Set the logfile),[ - AC_DEFINE_UNQUOTED(AP_LOG_EXEC, "$withval", [SuExec log file] ) ] ) + if test "x$withval" = "xyes"; then + AC_MSG_ERROR([log filename required for --with-suexec-logfile option]) + elif test "x$withval" != "xno"; then + AC_DEFINE_UNQUOTED(AP_LOG_EXEC, "$withval", [SuExec log file]) + fi +]) + +AC_ARG_WITH(suexec-syslog, +APACHE_HELP_STRING(--with-suexec-syslog,Use syslog for suexec logging),[ + if test $withval = "yes"; then + if test "x${with_suexec_logfile}" != "xno"; then + AC_MSG_NOTICE([hint: use "--without-suexec-logfile --with-suexec-syslog"]) + AC_MSG_ERROR([suexec does not support both logging to file and syslog]) + fi + AC_CHECK_FUNCS([vsyslog], [], [ + AC_MSG_ERROR([cannot support syslog from suexec without vsyslog()])]) + AC_DEFINE(AP_LOG_SYSLOG, 1, [SuExec log to syslog]) + fi +]) + AC_ARG_WITH(suexec-safepath, APACHE_HELP_STRING(--with-suexec-safepath,Set the safepath),[ @@ -675,6 +844,17 @@ AC_ARG_WITH(suexec-umask, APACHE_HELP_STRING(--with-suexec-umask,umask for suexec'd process),[ AC_DEFINE_UNQUOTED(AP_SUEXEC_UMASK, 0$withval, [umask for suexec'd process] ) ] ) +INSTALL_SUEXEC=setuid +AC_ARG_ENABLE([suexec-capabilities], +APACHE_HELP_STRING(--enable-suexec-capabilities,Use Linux capability bits not setuid root suexec), [ + if test "$enableval" = "yes"; then + INSTALL_SUEXEC=caps + AC_DEFINE(AP_SUEXEC_CAPABILITIES, 1, + [Enable if suexec is installed with Linux capabilities, not setuid]) + fi +]) +APACHE_SUBST(INSTALL_SUEXEC) + dnl APR should go after the other libs, so the right symbols can be picked up if test x${apu_found} != xobsolete; then AP_LIBS="$AP_LIBS `$apu_config --avoid-ldap --link-libtool --libs`" @@ -705,7 +885,10 @@ AC_ARG_ENABLE(v4-mapped,APACHE_HELP_STRING(--enable-v4-mapped,Allow IPv6 sockets ], [ case $host in - *freebsd5*|*netbsd*|*openbsd*) + *freebsd[[1234]].*) + v4mapped=yes + ;; + *freebsd*|*netbsd*|*openbsd*) v4mapped=no ;; *) @@ -723,6 +906,32 @@ if test $v4mapped = "yes" -a $ac_cv_define_APR_HAVE_IPV6 = "yes"; then [Allow IPv4 connections on IPv6 listening sockets]) fi +AC_ARG_ENABLE(bsd-makefiles,APACHE_HELP_STRING(--enable-bsd-makefiles,use BSD Makefile syntax), +[ + FORCE_BSD_MAKEFILE=$enableval + AC_MSG_NOTICE([Setting "FORCE_BSD_MAKEFILE" to $FORCE_BSD_MAKEFILE]) +], +[ + FORCE_BSD_MAKEFILE="auto" +]) + +AC_ARG_WITH([test-suite], + APACHE_HELP_STRING([--with-test-suite=PATH], [enable in-tree 'make check' with the given Apache::Test suite location]), + [ + if test "x$withval" = "xyes"; then + AC_MSG_ERROR([option --with-test-suite requires a directory]); + else + test -f "$withval/Makefile.PL" || AC_MSG_ERROR([--with-test-suite directory $withval does not contain the expected Makefile.PL]) + TEST_SUITE_LOCATION="$withval" + WITH_TEST_SUITE=yes + fi + ], + [ WITH_TEST_SUITE=no ] +) + +APACHE_SUBST(TEST_SUITE_LOCATION) +APACHE_SUBST(WITH_TEST_SUITE) + APACHE_FAST_OUTPUT(Makefile modules/Makefile srclib/Makefile) APACHE_FAST_OUTPUT(os/Makefile server/Makefile) APACHE_FAST_OUTPUT(support/Makefile) @@ -732,7 +941,16 @@ if test -d ./test; then fi dnl ## Finalize the variables -echo $ac_n "${nl}Restore user-defined environment settings...${nl}" +AC_MSG_NOTICE([]) +AC_MSG_NOTICE([Restore user-defined environment settings...]) +AC_MSG_NOTICE([]) + +APACHE_CONF_SEL_CC=${CC} +APACHE_CONF_SEL_CFLAGS="${CFLAGS} ${EXTRA_CFLAGS} ${NOTEST_CFLAGS}" +APACHE_CONF_SEL_CPPFLAGS="${CPPFLAGS} ${EXTRA_CPPFLAGS} ${NOTEST_CPPFLAGS}" +APACHE_CONF_SEL_LDFLAGS="${LDFLAGS} ${EXTRA_LDFLAGS} ${NOTEST_LDFLAGS}" +APACHE_CONF_SEL_LIBS="${LIBS} ${EXTRA_LIBS} ${NOTEST_LIBS}" +APACHE_CONF_SEL_CPP=${CPP} APR_RESTORE_THE_ENVIRONMENT(CPPFLAGS, EXTRA_) APR_RESTORE_THE_ENVIRONMENT(CFLAGS, EXTRA_) @@ -741,7 +959,9 @@ APR_RESTORE_THE_ENVIRONMENT(LDFLAGS, EXTRA_) APR_RESTORE_THE_ENVIRONMENT(LIBS, EXTRA_) APR_RESTORE_THE_ENVIRONMENT(INCLUDES, EXTRA_) -echo $ac_n "${nl}Construct makefiles and header files...${nl}" +AC_MSG_NOTICE([]) +AC_MSG_NOTICE([Construct makefiles and header files...]) +AC_MSG_NOTICE([]) APACHE_GEN_CONFIG_VARS @@ -763,33 +983,64 @@ if test "x$perlbin" = "x"; then fi AC_SUBST(perlbin) -dnl If we are running on BSD/OS, we need to use the BSD .include syntax. +dnl If we are running on a BSD variant, see if we need to use the BSD .include syntax. -BSD_MAKEFILE=no ap_make_include=include +ap_make_ifdef=ifdef +ap_make_else=else +ap_make_endif=endif ap_make_delimiter=' ' -case $host in -*bsdi*) - # Check whether they've installed GNU make - if make --version > /dev/null 2>&1; then - true - else - BSD_MAKEFILE=yes - ap_make_include=.include - ap_make_delimiter='"' - fi - ;; -esac +if test "x$FORCE_BSD_MAKEFILE" = "xno"; then + BSD_MAKEFILE=no +elif test "x$FORCE_BSD_MAKEFILE" = "xyes"; then + BSD_MAKEFILE=yes +else + case $host in + *bsd*) + # Check whether they've installed GNU make + if make --version > /dev/null 2>&1; then + BSD_MAKEFILE=no + elif gmake --version > /dev/null 2>&1; then + BSD_MAKEFILE=no + else + BSD_MAKEFILE=yes + fi + ;; + *) + BSD_MAKEFILE=no + ;; + esac +fi +if test "x$BSD_MAKEFILE" = "xyes"; then + ap_make_include=.include + ap_make_ifdef=.ifdef + ap_make_else=.else + ap_make_endif=.endif + ap_make_delimiter='"' +fi +AC_MSG_NOTICE([using BSD Makefile syntax... $BSD_MAKEFILE]) + AC_SUBST(ap_make_include) +AC_SUBST(ap_make_ifdef) +AC_SUBST(ap_make_else) +AC_SUBST(ap_make_endif) AC_SUBST(ap_make_delimiter) dnl Ensure that docs/conf is created. test -d docs/conf||$mkdir_p docs/conf -dnl Ensure that the httpd version is included -HTTPD_VERSION=`$abs_srcdir/build/get-version.sh all $abs_srcdir/include/ap_release.h AP_SERVER` -AC_SUBST(HTTPD_VERSION) +AC_CONFIG_FILES(docs/conf/httpd.conf docs/conf/extra/httpd-autoindex.conf docs/conf/extra/httpd-dav.conf docs/conf/extra/httpd-default.conf docs/conf/extra/httpd-info.conf docs/conf/extra/httpd-languages.conf docs/conf/extra/httpd-manual.conf docs/conf/extra/httpd-mpm.conf docs/conf/extra/httpd-multilang-errordoc.conf docs/conf/extra/httpd-policy.conf docs/conf/extra/httpd-ssl.conf docs/conf/extra/httpd-userdir.conf docs/conf/extra/httpd-vhosts.conf docs/conf/extra/proxy-html.conf docs/conf/extra/httpd-macro.conf include/ap_config_layout.h support/apxs support/apachectl support/dbmmanage support/envvars-std support/log_server_status support/logresolve.pl support/phf_abuse_log.cgi support/split-logfile build/rules.mk build/pkg/pkginfo build/config_vars.sh) +AC_CONFIG_COMMANDS([default], [true], [APACHE_GEN_MAKEFILES]) +AC_OUTPUT + +AC_MSG_NOTICE([summary of build options: -AC_OUTPUT($APACHE_OUTPUT_FILES docs/conf/httpd.conf docs/conf/extra/httpd-autoindex.conf docs/conf/extra/httpd-dav.conf docs/conf/extra/httpd-default.conf docs/conf/extra/httpd-info.conf docs/conf/extra/httpd-languages.conf docs/conf/extra/httpd-manual.conf docs/conf/extra/httpd-mpm.conf docs/conf/extra/httpd-multilang-errordoc.conf docs/conf/extra/httpd-ssl.conf docs/conf/extra/httpd-userdir.conf docs/conf/extra/httpd-vhosts.conf include/ap_config_layout.h support/apxs support/apachectl support/dbmmanage support/envvars-std support/log_server_status support/logresolve.pl support/phf_abuse_log.cgi support/split-logfile build/rules.mk build/pkg/pkginfo build/config_vars.sh,[true],[ - APACHE_GEN_MAKEFILES + Server Version: ${HTTPD_VERSION} + Install prefix: ${prefix} + C compiler: ${APACHE_CONF_SEL_CC} + CFLAGS: ${APACHE_CONF_SEL_CFLAGS} + CPPFLAGS: ${APACHE_CONF_SEL_CPPFLAGS} + LDFLAGS: ${APACHE_CONF_SEL_LDFLAGS} + LIBS: ${APACHE_CONF_SEL_LIBS} + C preprocessor: ${APACHE_CONF_SEL_CPP} ])