X-Git-Url: https://granicus.if.org/sourcecode?a=blobdiff_plain;f=configure.in;h=2dce84e959fae5e3f91fc822e10d604509b47a87;hb=5524cbd29b4318d845d7db9bc81693c64f29aecc;hp=6967bfb4aca87e7cc1823b5484aa18bbb7825148;hpb=ee32468a33d082bf8ea5c804efbee76676ef6d68;p=apache diff --git a/configure.in b/configure.in index 6967bfb4ac..2dce84e959 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` +AC_SUBST(HTTPD_VERSION) + 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 @@ -93,9 +119,9 @@ if test "$apr_found" = "reconfig"; then dnl We have to find apr-N-config when we reconfigure APR. for majorver in 1 2; do - test_apr_config="$srcdir/srclib/apr/apr-${majorver}-config" - if test -f $test_apr_config; then - apr_config=$test_apr_config + test_apr_config="./srclib/apr/apr-${majorver}-config" + if test -f "$test_apr_config"; then + apr_config="$test_apr_config" fi done fi @@ -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: @@ -150,7 +183,7 @@ if test "$apu_found" = "reconfig"; then AP_BUILD_SRCLIB_DIRS="$AP_BUILD_SRCLIB_DIRS apr-util" AP_CLEAN_SRCLIB_DIRS="apr-util $AP_CLEAN_SRCLIB_DIRS" dnl APR and APR-Util major versions must match - apu_config="${srcdir}/srclib/apr-util/apu-${apr_major_version}-config" + apu_config="./srclib/apr-util/apu-${apr_major_version}-config" fi if test "$apu_found" = "obsolete"; then @@ -170,16 +203,23 @@ dnl PCRE and for our config tests will be whatever PCRE determines. AC_PROG_CC 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)) @@ -194,18 +234,26 @@ if test "$PCRE_CONFIG" != "false"; then if $PCRE_CONFIG --version >/dev/null 2>&1; then :; else AC_MSG_ERROR([Did not find pcre-config script at $PCRE_CONFIG]) fi + case `$PCRE_CONFIG --version` in + [[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(HTTPD_LIBS, [\$(PCRE_LIBS)]) else AC_MSG_ERROR([pcre-config for libpcre not found. PCRE is required and available from http://pcre.org/]) fi APACHE_SUBST(PCRE_LIBS) -dnl Add PCRE_LIBS to HTTPD_LDFLAGS -APR_ADDTO(HTTPD_LDFLAGS, [\$(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. @@ -216,7 +264,7 @@ if test "$abs_builddir" != "$abs_srcdir"; then APR_ADDTO(INCLUDES, [-I\$(top_builddir)/include]) fi -APR_ADDTO(INCLUDES, [-I\$(top_srcdir)/os/\$(OS_DIR) -I\$(top_srcdir)/modules/http -I\$(top_srcdir)/modules/aaa -I\$(top_srcdir)/modules/filters -I\$(top_srcdir)/modules/proxy -I\$(top_srcdir)/modules/session -I\$(top_srcdir)/include -I\$(top_srcdir)/modules/generators -I\$(top_srcdir)/modules/mappers -I\$(top_srcdir)/modules/database]) +APR_ADDTO(INCLUDES, [-I\$(top_srcdir)/os/\$(OS_DIR) -I\$(top_srcdir)/include]) # apr/apr-util --includes may pick up system paths for dependent # libraries, so ensure these are later in INCLUDES than local source @@ -227,40 +275,77 @@ APR_ADDTO(INCLUDES, $APU_INCLUDES) dnl Add in path to PCRE includes APR_ADDTO(INCLUDES, $PCRE_INCLUDES) -if test "x$LTFLAGS" = "x"; then - LTFLAGS='--silent' +save_CPPFLAGS="$CPPFLAGS" +CPPFLAGS="$CPPFLAGS $PCRE_INCLUDES" +AC_EGREP_CPP(yes, +[ +#include +#ifdef PCRE_DUPNAMES +yes +#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 -my_libtool=`$apr_config --apr-libtool` -LIBTOOL="$my_libtool \$(LTFLAGS)" -libtoolversion=`$my_libtool --version` -case $libtoolversion in - *1.[[45]]* | *[[2-9]].[[0-9]]*) - SH_LIBTOOL='$(LIBTOOL)' - SHLTCFLAGS="-prefer-pic" - LTCFLAGS="-prefer-non-pic -static" - ;; - *) - SH_LIBTOOL='$(SHELL) $(top_builddir)/shlibtool $(LTFLAGS)' - SHLTCFLAGS="" - LTCFLAGS="" - ;; +CPPFLAGS="$save_CPPFLAGS" + +AC_MSG_NOTICE([]) +AC_MSG_NOTICE([Applying OS-specific hints for httpd...]) +AC_MSG_NOTICE([]) + +case $host in + *os2*) + # Use a custom made libtool replacement + echo "using aplibtool" + LIBTOOL="$abs_srcdir/srclib/apr/build/aplibtool" + SH_LIBTOOL="$LIBTOOL --shared --export-all" + SH_LIBS="\$(ALL_LIBS)" + CORE_IMPLIB_FILE="ApacheCoreOS2.la" + CORE_IMPLIB="$abs_srcdir/server/$CORE_IMPLIB_FILE" + MK_IMPLIB="emximp" + other_targets="$other_targets os2core" + INSTALL_PROG_FLAGS="-e .exe" + SHLTCFLAGS="" + LTCFLAGS="" + ;; + *) + if test "x$LTFLAGS" = "x"; then + LTFLAGS='--silent' + fi + my_libtool=`$apr_config --apr-libtool` + LIBTOOL="$my_libtool \$(LTFLAGS)" + libtoolversion=`$my_libtool --version` + case $libtoolversion in + *1.[[45]]* | *[[2-9]].[[0-9]]*) + SH_LIBTOOL='$(LIBTOOL)' + SHLTCFLAGS="-prefer-pic" + LTCFLAGS="-prefer-non-pic -static" + ;; + *) + SH_LIBTOOL='$(SHELL) $(top_builddir)/shlibtool $(LTFLAGS)' + SHLTCFLAGS="" + LTCFLAGS="" + ;; + esac + ;; esac APACHE_SUBST(SHLTCFLAGS) APACHE_SUBST(LTCFLAGS) -echo $ac_n "${nl}Applying OS-specific hints for httpd ...${nl}" - case $host in *-apple-aux3*) - APR_SETVAR(APACHE_MPM, [prefork]) + APR_SETVAR(SINGLE_LISTEN_UNSERIALIZED_ACCEPT, [1]) + ;; + *os2-emx*) APR_SETVAR(SINGLE_LISTEN_UNSERIALIZED_ACCEPT, [1]) ;; *-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 ;; @@ -273,7 +358,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]) @@ -281,12 +366,11 @@ case $host in esac ;; *cygwin*) - APR_SETVAR(APACHE_MPM, [prefork]) APR_SETVAR(SINGLE_LISTEN_UNSERIALIZED_ACCEPT, [1]) ;; *mingw32*) - APR_SETVAR(APACHE_MPM, [winnt]) - 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]) @@ -346,7 +430,15 @@ fi if test "${apu_found}" = "yes"; then # Require at least APR-util 1.3.x otherwise fail - APACHE_CHECK_APxVER([apu], 1, 3) + if test "${apr_found}" = "yes"; then + # we need to add the APR includes to CPPFLAGS + apu_ckver_CPPFLAGS="$CPPFLAGS" + CPPFLAGS="$CPPFLAGS `$apr_config --includes`" + APACHE_CHECK_APxVER([apu], 1, 3) + CPPFLAGS="$apu_ckver_CPPFLAGS" + else + APACHE_CHECK_APxVER([apu], 1, 3) + fi fi dnl Check for what we can generate dependency files with @@ -376,7 +468,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 @@ -393,6 +486,13 @@ MATH_LIBS="$LIBS" APACHE_SUBST(MATH_LIBS) LIBS="$saved_LIBS" +saved_LIBS="$LIBS" +LIBS="" +AC_SEARCH_LIBS(crypt, crypt) +CRYPT_LIBS="$LIBS" +APACHE_SUBST(CRYPT_LIBS) +LIBS="$saved_LIBS" + dnl See Comment #Spoon AC_CHECK_FUNCS( \ @@ -402,12 +502,26 @@ initgroups \ bindprocessor \ prctl \ timegm \ -getpgid +getpgid \ +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 @@ -417,6 +531,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 @@ -452,8 +568,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 @@ -475,37 +593,72 @@ esac APACHE_SUBST(DTRACE) -APR_CHECK_APR_DEFINE(APR_HAVE_IPV6) +AC_ARG_ENABLE(hook-probes,APACHE_HELP_STRING(--enable-hook-probes,Enable APR hook probes), +[ + 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(v4-mapped,APACHE_HELP_STRING(--enable-v4-mapped,Allow IPv6 sockets to handle IPv4 connections), -[ - v4mapped=$enableval +AC_ARG_ENABLE(exception-hook,APACHE_HELP_STRING(--enable-exception-hook,Enable fatal exception hook), +[ + 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(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]) ], [ - case $host in - *freebsd5*|*netbsd*|*openbsd*) - v4mapped=no - ;; - *) - v4mapped=yes - ;; -esac + LOAD_ALL_MODULES="no" ]) -if test $v4mapped = "yes" -a $ac_cv_define_APR_HAVE_IPV6 = "yes"; then - AC_DEFINE(AP_ENABLE_V4_MAPPED, 1, - [Allow IPv4 connections on IPv6 listening sockets]) -fi - -AC_ARG_ENABLE(exception-hook,APACHE_HELP_STRING(--enable-exception-hook,Enable fatal exception hook), +AC_ARG_ENABLE(maintainer-mode,APACHE_HELP_STRING(--enable-maintainer-mode,Turn on debugging and compile time warnings and load all compiled modules), [ - AC_DEFINE(AP_ENABLE_EXCEPTION_HOOK, 1, - [Allow modules to run hook after a fatal exception]) + if test "$enableval" = "yes"; then + APR_ADDTO(CPPFLAGS, -DAP_DEBUG) + if test "$GCC" = "yes"; then + APR_ADDTO(CFLAGS,[-Wall -Wmissing-prototypes -Wstrict-prototypes -Wmissing-declarations -Wpointer-arith]) + APACHE_ADD_GCC_CFLAG([-Wdeclaration-after-statement]) + APACHE_ADD_GCC_CFLAG([-Werror=declaration-after-statement]) + 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(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 + fi ])dnl -AC_ARG_ENABLE(maintainer-mode,APACHE_HELP_STRING(--enable-maintainer-mode,Turn on debugging and compile time warnings), +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 "$enableval" = "yes"; then + APR_ADDTO(CPPFLAGS, -DAP_DEBUG) + if test "$GCC" = "yes"; then + APR_ADDTO(CFLAGS,[-Wall -Wmissing-prototypes -Wstrict-prototypes -Wmissing-declarations -Wpointer-arith -O0]) + APACHE_ADD_GCC_CFLAG([-Wdeclaration-after-statement]) + APACHE_ADD_GCC_CFLAG([-Werror=declaration-after-statement]) + 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(CFLAGS,-qfullpath -qinitauto=FE -qcheck=all -qinfo=pro) + fi + fi ])dnl dnl Conditionally enable PIE support for GNU toolchains. @@ -528,8 +681,24 @@ 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 ] +) prefix="$orig_prefix" APACHE_ENABLE_MODULES @@ -538,12 +707,12 @@ dnl reading config stubs esyscmd(./build/config-stubs .) APACHE_SUBST(progname) -APACHE_SUBST(MPM_LIB) APACHE_SUBST(OS) 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 ""' @@ -559,7 +728,7 @@ fi dnl enable_so tells us if *any* modules can be built as DSOs -if test "$enable_so" = "yes"; then +if test "$enable_so" = "yes" -o "$enable_so" = "static"; then case $host in *-ibm-aix*) APR_ADDTO(HTTPD_LDFLAGS, [-Wl,-uXML_Parse -Wl,-bE:$abs_builddir/server/httpd.exp]) @@ -611,7 +780,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,Set the logfile),[ + 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),[ @@ -621,6 +809,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`" @@ -643,6 +842,43 @@ if test "$AP_NONBLOCK_WHEN_MULTI_LISTEN" = "1"; then [Listening sockets are non-blocking when there are more than 1]) fi +APR_CHECK_APR_DEFINE(APR_HAVE_IPV6) + +AC_ARG_ENABLE(v4-mapped,APACHE_HELP_STRING(--enable-v4-mapped,Allow IPv6 sockets to handle IPv4 connections), +[ + v4mapped=$enableval +], +[ + case $host in + *freebsd[[1234]].*) + v4mapped=yes + ;; + *freebsd*|*netbsd*|*openbsd*) + v4mapped=no + ;; + *) + v4mapped=yes + ;; + esac + if ap_mpm_is_enabled winnt; then + dnl WinNT MPM doesn't support this. + v4mapped=no + fi +]) + +if test $v4mapped = "yes" -a $ac_cv_define_APR_HAVE_IPV6 = "yes"; then + AC_DEFINE(AP_ENABLE_V4_MAPPED, 1, + [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" +]) APACHE_FAST_OUTPUT(Makefile modules/Makefile srclib/Makefile) APACHE_FAST_OUTPUT(os/Makefile server/Makefile) @@ -653,7 +889,9 @@ 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([]) APR_RESTORE_THE_ENVIRONMENT(CPPFLAGS, EXTRA_) APR_RESTORE_THE_ENVIRONMENT(CFLAGS, EXTRA_) @@ -662,7 +900,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 @@ -677,8 +917,6 @@ AC_DEFINE_UNQUOTED(SERVER_CONFIG_FILE, "${rel_sysconfdir}/${progname}.conf", [Location of the config file, relative to the Apache root directory]) AC_DEFINE_UNQUOTED(AP_TYPES_CONFIG_FILE, "${rel_sysconfdir}/mime.types", [Location of the MIME types config file, relative to the Apache root directory]) -AC_DEFINE_UNQUOTED(APACHE_MPM_DIR, "$MPM_DIR", - [Location of the source for the current MPM]) perlbin=`$ac_aux_dir/PrintPath perl` if test "x$perlbin" = "x"; then @@ -686,53 +924,50 @@ 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 + 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_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],[ +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-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 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 ]) - -case $MPM_SUBDIR_NAME in -*experimental*) - echo "" - echo "" - echo "============================================================" - echo " WARNING: THE '${APACHE_MPM}' MPM IS EXPERIMENTAL" - echo "============================================================" - echo " The selected MPM might not be fully functional!" - echo "" - echo " Development of this MPM is not complete. Do not use this" - echo " MPM unless you are a programmer willing to help fix it." - echo "" - echo " If you are looking for a stable server, you should not use" - echo " the '${APACHE_MPM}' MPM until it is moved out of experimental." - echo "============================================================" - echo "" - echo "" - ;; -esac