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)
+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
if test "x$with_included_apr" = "xyes"; then
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/. Download and unpack the corresponding apr and apr-util packages to ./srclib/.])
+ 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
elif test "x$with_included_apr" = "xyes"; then
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/. Download and unpack the corresponding apr and apr-util packages to ./srclib/.])
+ 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
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:
fi
case `$PCRE_CONFIG --version` in
[[1-5].*])
- AC_MSG_ERROR([Need at least pcre version 6.0])
+ 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
dnl Add in path to PCRE includes
APR_ADDTO(INCLUDES, $PCRE_INCLUDES)
+save_CPPFLAGS="$CPPFLAGS"
+CPPFLAGS="$CPPFLAGS $PCRE_INCLUDES"
+AC_EGREP_CPP(yes,
+[
+#include <pcre.h>
+#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
+CPPFLAGS="$save_CPPFLAGS"
+
AC_MSG_NOTICE([])
AC_MSG_NOTICE([Applying OS-specific hints for httpd...])
AC_MSG_NOTICE([])
;;
*-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
;;
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])
;;
*mingw32*)
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])
sys/prctl.h \
sys/processor.h \
sys/sem.h \
-sys/sdt.h
+sys/sdt.h \
+sys/loadavg.h
)
AC_HEADER_SYS_WAIT
prctl \
timegm \
getpgid \
-fopen64
+fopen64 \
+getloadavg
)
dnl confirm that a void pointer is large enough to store a long integer
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
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
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(INTERNAL_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(load-all-modules,APACHE_HELP_STRING(--enable-load-all-modules,Load all modules),
AC_ARG_ENABLE(maintainer-mode,APACHE_HELP_STRING(--enable-maintainer-mode,Turn on debugging and compile time warnings and load all compiled modules),
[
- 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])
+ 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([-std=c89])
+ APACHE_ADD_GCC_CFLAG([-Werror])
+ APACHE_ADD_GCC_CFLAG([-Wdeclaration-after-statement])
+ APACHE_ADD_GCC_CFLAG([-Wformat])
+ APACHE_ADD_GCC_CFLAG([-Wformat-security])
+ APACHE_ADD_GCC_CFLAG([-Wunused])
+ 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(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])
- 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)
+ 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
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
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 ""'
INSTALL_SUEXEC=setuid
AC_ARG_ENABLE([suexec-capabilities],
APACHE_HELP_STRING(--enable-suexec-capabilities,Use Linux capability bits not setuid root suexec), [
-INSTALL_SUEXEC=caps
-AC_DEFINE(AP_SUEXEC_CAPABILITIES, 1,
- [Enable if suexec is installed with Linux capabilities, not setuid])
+ 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)
],
[
case $host in
- *freebsd5*|*netbsd*|*openbsd*)
+ *freebsd[[1234]].*)
+ v4mapped=yes
+ ;;
+ *freebsd*|*netbsd*|*openbsd*)
v4mapped=no
;;
*)
[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)
APACHE_FAST_OUTPUT(support/Makefile)
AC_MSG_NOTICE([Restore user-defined environment settings...])
AC_MSG_NOTICE([])
+APACHE_CONF_SEL_CC=${CC}
+APACHE_CONF_SEL_CFLAGS=${CFLAGS}
+APACHE_CONF_SEL_LDFLAGS=${LDFLAGS}
+APACHE_CONF_SEL_LIBS=${LIBS}
+APACHE_CONF_SEL_CPPFLAGS=${CPPFLAGS}
+APACHE_CONF_SEL_CPP=${CPP}
+
APR_RESTORE_THE_ENVIRONMENT(CPPFLAGS, EXTRA_)
APR_RESTORE_THE_ENVIRONMENT(CFLAGS, EXTRA_)
APR_RESTORE_THE_ENVIRONMENT(CXXFLAGS, EXTRA_)
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.
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
])
+
+AC_MSG_NOTICE([summary of build options:
+
+ Server Version: ${HTTPD_VERSION}
+ Install prefix: ${prefix}
+ C compiler: ${APACHE_CONF_SEL_CC}
+ CFLAGS: ${APACHE_CONF_SEL_CFLAGS}
+ LDFLAGS: ${APACHE_CONF_SEL_LDFLAGS}
+ LIBS: ${APACHE_CONF_SEL_LIBS}
+ CPPFLAGS: ${APACHE_CONF_SEL_CPPFLAGS}
+ C preprocessor: ${APACHE_CONF_SEL_CPP}
+])