mirror of
https://github.com/apache/httpd.git
synced 2025-04-18 22:24:07 +03:00
where available, rather than the (meaningless) default pthread_self()-as-integer interpretation: * configure.in: Define DEFAULT_LOG_TID on Linux if gettid() is available. * server/log.c: Define DEFAULT_LOG_TID as NULL by default. (do_errorlog_default): Use DEFAULT_LOG_TID as the argument to log_tid(). Github: closes #443 git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1917578 13f79535-47bb-0310-9956-ffa450edef68
1121 lines
36 KiB
Plaintext
1121 lines
36 KiB
Plaintext
dnl
|
|
dnl Autoconf configuration for Apache httpd
|
|
dnl
|
|
dnl Use ./buildconf to produce a configure script
|
|
dnl
|
|
|
|
AC_PREREQ(2.60)
|
|
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 #
|
|
sinclude(build/apr_common.m4)
|
|
sinclude(build/find_apr.m4)
|
|
sinclude(build/find_apu.m4)
|
|
sinclude(acinclude.m4)
|
|
|
|
dnl Later versions of autoconf (>= 2.62) by default cause the produced
|
|
dnl configure script to emit at least warnings when it comes across unknown
|
|
dnl command line options. These versions also have the macro
|
|
dnl AC_DISABLE_OPTION_CHECKING defined which turns this off by default.
|
|
dnl We want to have this turned off here since our configure calls can
|
|
dnl contain options for APR / APR-UTIL configure that are unknown to us.
|
|
dnl So avoid confusing the user by turning this off. See also PR 45221.
|
|
ifdef([AC_DISABLE_OPTION_CHECKING], [AC_DISABLE_OPTION_CHECKING])
|
|
|
|
dnl XXX we can't just use AC_PREFIX_DEFAULT because that isn't subbed in
|
|
dnl by configure until it is too late. Is that how it should be or not?
|
|
dnl Something seems broken here.
|
|
AC_PREFIX_DEFAULT(/usr/local/apache2)
|
|
|
|
dnl Get the layout here, so we can pass the required variables to apr
|
|
APR_ENABLE_LAYOUT(Apache, [errordir iconsdir htdocsdir cgidir statedir manualdir proxycachedir])
|
|
|
|
dnl reparse the configure arguments.
|
|
APR_PARSE_ARGUMENTS
|
|
|
|
dnl export expanded and relative configure argument variables
|
|
APACHE_EXPORT_ARGUMENTS
|
|
|
|
dnl Save user-defined environment settings for later restoration
|
|
dnl
|
|
APR_SAVE_THE_ENVIRONMENT(CPPFLAGS)
|
|
APR_SAVE_THE_ENVIRONMENT(CFLAGS)
|
|
APR_SAVE_THE_ENVIRONMENT(CXXFLAGS)
|
|
APR_SAVE_THE_ENVIRONMENT(LDFLAGS)
|
|
APR_SAVE_THE_ENVIRONMENT(LIBS)
|
|
APR_SAVE_THE_ENVIRONMENT(INCLUDES)
|
|
|
|
dnl Generate ./config.nice for reproducing runs of configure
|
|
dnl
|
|
APR_CONFIG_NICE(config.nice)
|
|
|
|
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
|
|
dnl work on some platforms
|
|
|
|
AC_CANONICAL_SYSTEM
|
|
|
|
orig_prefix="$prefix"
|
|
|
|
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
|
|
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, [
|
|
version=`$apr_config --version`
|
|
case x${version} in
|
|
x1.[[0-5]].*)
|
|
AC_MSG_WARN([APR version 1.6.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 refer to the documentation on APR in the httpd INSTALL file.])
|
|
fi
|
|
|
|
if test "$apr_found" = "reconfig"; then
|
|
APR_SUBDIR_CONFIG(srclib/apr,
|
|
[$apache_apr_flags --prefix=$prefix --exec-prefix=$exec_prefix --libdir=$libdir --includedir=$includedir --bindir=$bindir --datadir=$datadir --with-installbuilddir=$installbuilddir],
|
|
[--enable-layout=*|\'--enable-layout=*])
|
|
dnl We must be the first to build and the last to be cleaned
|
|
AP_BUILD_SRCLIB_DIRS="apr $AP_BUILD_SRCLIB_DIRS"
|
|
AP_CLEAN_SRCLIB_DIRS="$AP_CLEAN_SRCLIB_DIRS apr"
|
|
|
|
dnl We have to find apr-N-config when we reconfigure APR.
|
|
for majorver in 1 2; do
|
|
test_apr_config="./srclib/apr/apr-${majorver}-config"
|
|
if test -f "$test_apr_config"; then
|
|
apr_config="$test_apr_config"
|
|
fi
|
|
done
|
|
fi
|
|
|
|
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`
|
|
APR_INCLUDEDIR=`$apr_config --includedir`
|
|
APR_INCLUDES=`$apr_config --includes`
|
|
APR_VERSION=`$apr_config --version`
|
|
apr_major_version=`echo ${APR_VERSION} | sed 's,\..*,,'`
|
|
APR_CONFIG="$APR_BINDIR/apr-${apr_major_version}-config"
|
|
|
|
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
|
|
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/. 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.
|
|
ifdef([APR_FIND_APU], [
|
|
APR_FIND_APU("$srcdir/srclib/apr-util", "./srclib/apr-util",
|
|
1, ${apr_major_version})
|
|
], [apu_found=no])
|
|
fi
|
|
|
|
if test "$apu_found" = "no"; then
|
|
AC_MSG_ERROR([APR-util not found. Please refer to the documentation on APR in the httpd INSTALL file.])
|
|
fi
|
|
|
|
# Catch some misconfigurations:
|
|
case ${apr_found}.${apu_found} in
|
|
reconfig.yes)
|
|
AC_MSG_ERROR([Cannot use an external APR-util with the bundled APR])
|
|
;;
|
|
yes.reconfig)
|
|
AC_MSG_ERROR([Cannot use an external APR with the bundled APR-util])
|
|
;;
|
|
esac
|
|
|
|
if test "$apu_found" = "reconfig"; then
|
|
APR_SUBDIR_CONFIG(srclib/apr-util,
|
|
[--with-apr=../apr --prefix=$prefix --exec-prefix=$exec_prefix --libdir=$libdir --includedir=$includedir --bindir=$bindir],
|
|
[--enable-layout=*|\'--enable-layout=*])
|
|
dnl We must be the last to build and the first to be cleaned
|
|
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="./srclib/apr-util/apu-${apr_major_version}-config"
|
|
fi
|
|
|
|
if test "$apu_found" = "obsolete"; then
|
|
AC_MSG_NOTICE([APR-util obsoleted, woohoo])
|
|
else
|
|
APR_ADDTO(LDFLAGS, `$apu_config --ldflags`)
|
|
APU_BINDIR=`$apu_config --bindir`
|
|
APU_INCLUDEDIR=`$apu_config --includedir`
|
|
APU_INCLUDES=`$apu_config --includes`
|
|
APU_VERSION=`$apu_config --version`
|
|
APU_CONFIG="$APU_BINDIR/apu-`echo ${APU_VERSION} | sed 's,\..*,,'`-config"
|
|
fi
|
|
|
|
dnl In case we picked up CC and CPP from APR, get that info into the
|
|
dnl config cache so that PCRE uses it. Otherwise, CC and CPP used for
|
|
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
|
|
|
|
AC_ARG_WITH(pcre,
|
|
APACHE_HELP_STRING(--with-pcre=PATH,Use external PCRE library))
|
|
if test "x$with_pcre" = "x" || test "$with_pcre" = "yes"; then
|
|
with_pcre="$PATH"
|
|
else if command -v $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],
|
|
[`command -v $with_pcre 2>/dev/null`], $with_pcre)
|
|
|
|
if test "x$PCRE_CONFIG" != "x"; then
|
|
if $PCRE_CONFIG --version >/dev/null 2>&1; then :; else
|
|
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 --libs8 2>/dev/null || $PCRE_CONFIG --libs`])
|
|
APR_ADDTO(HTTPD_LIBS, [\$(PCRE_LIBS)])
|
|
else
|
|
AC_MSG_ERROR([pcre(2)-config for libpcre not found. PCRE is required and available from http://pcre.org/])
|
|
fi
|
|
APACHE_SUBST(PCRE_LIBS)
|
|
|
|
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.
|
|
|
|
APR_ADDTO(INCLUDES, [-I.])
|
|
|
|
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)/include])
|
|
|
|
# apr/apr-util --includes may pick up system paths for dependent
|
|
# libraries, so ensure these are later in INCLUDES than local source
|
|
# directories.
|
|
APR_ADDTO(INCLUDES, $APR_INCLUDES)
|
|
APR_ADDTO(INCLUDES, $APU_INCLUDES)
|
|
|
|
dnl Add in path to PCRE includes
|
|
APR_ADDTO(INCLUDES, $PCRE_INCLUDES)
|
|
|
|
save_CPPFLAGS="$CPPFLAGS"
|
|
CPPFLAGS="$CPPFLAGS $PCRE_INCLUDES"
|
|
AC_EGREP_CPP(yes,
|
|
[
|
|
#ifdef HAVE_PCRE2
|
|
yes
|
|
#else
|
|
#include <pcre.h>
|
|
#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*)
|
|
# 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)
|
|
|
|
case $host in
|
|
*-apple-aux3*)
|
|
APR_SETVAR(SINGLE_LISTEN_UNSERIALIZED_ACCEPT, [1])
|
|
;;
|
|
*os2-emx*)
|
|
APR_SETVAR(SINGLE_LISTEN_UNSERIALIZED_ACCEPT, [1])
|
|
;;
|
|
*-linux-*)
|
|
case `uname -r` in
|
|
# Unserialized accept() was not recommended until Linux 2.2.
|
|
[[01]].* | 2.[[01]]* )
|
|
;;
|
|
* )
|
|
APR_SETVAR(SINGLE_LISTEN_UNSERIALIZED_ACCEPT, [1])
|
|
;;
|
|
esac
|
|
;;
|
|
*486-*-bsdi* | *-netbsd* | *-freebsd* | *-apple-darwin* | *-dec-osf* | *-qnx)
|
|
APR_SETVAR(SINGLE_LISTEN_UNSERIALIZED_ACCEPT, [1])
|
|
;;
|
|
*-solaris2*)
|
|
dnl This is a hack -- we should be using AC_TRY_RUN instead
|
|
ap_platform_runtime_link_flag="-R"
|
|
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]]*)
|
|
;;
|
|
* )
|
|
APR_SETVAR(SINGLE_LISTEN_UNSERIALIZED_ACCEPT, [1])
|
|
;;
|
|
esac
|
|
;;
|
|
*cygwin*)
|
|
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])
|
|
;;
|
|
*aix*)
|
|
aixver=`echo $host | sed 's/^[[^0-9]]*//' | sed 's/\.//g'`
|
|
if test $aixver -ge 4320; then
|
|
APR_SETVAR(SINGLE_LISTEN_UNSERIALIZED_ACCEPT, [1])
|
|
fi
|
|
;;
|
|
*os390*)
|
|
APR_SETVAR(SINGLE_LISTEN_UNSERIALIZED_ACCEPT, [1])
|
|
;;
|
|
esac
|
|
|
|
APR_SETVAR(AP_NONBLOCK_WHEN_MULTI_LISTEN, [1])
|
|
|
|
dnl
|
|
dnl Process command line arguments. This is done early in the process so the
|
|
dnl user can get feedback quickly in case of an error.
|
|
dnl
|
|
dnl ### need to move some of the arguments "up here"
|
|
|
|
dnl ## Check for programs
|
|
|
|
AC_PATH_PROG(RM, rm)
|
|
AC_PATH_PROG(PKGCONFIG, pkg-config)
|
|
AC_PATH_PROG(RSYNC, rsync)
|
|
AC_PATH_PROG(SVN, svn)
|
|
AC_PROG_AWK
|
|
AC_PROG_LN_S
|
|
AC_CHECK_TOOL(RANLIB, ranlib, true)
|
|
dnl AC_PATH_PROG(PERL_PATH, perl)
|
|
AC_CHECK_PROGS(LYNX_PATH,[lynx links elinks], [lynx])
|
|
|
|
# Hard-coded install programs
|
|
MKINSTALLDIRS="\$(abs_srcdir)/build/mkdir.sh"
|
|
INSTALL="\$(LIBTOOL) --mode=install \$(abs_srcdir)/build/install.sh -c"
|
|
APACHE_SUBST(MKINSTALLDIRS)
|
|
APACHE_SUBST(INSTALL)
|
|
|
|
dnl Various OS checks that apparently set required flags
|
|
ifdef([AC_USE_SYSTEM_EXTENSIONS], [
|
|
AC_USE_SYSTEM_EXTENSIONS
|
|
], [
|
|
AC_AIX
|
|
AC_MINIX
|
|
])
|
|
|
|
AC_ISC_POSIX
|
|
|
|
# Ensure that satisfactory versions of apr and apr-util are
|
|
# found if external copies are configured.
|
|
if test "${apr_found}" = "yes"; then
|
|
# Require at least APR 1.3.x otherwise fail
|
|
APACHE_CHECK_APxVER([apr], 1, 3)
|
|
fi
|
|
|
|
if test "${apu_found}" = "yes"; then
|
|
# Require at least APR-util 1.3.x otherwise fail
|
|
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
|
|
APR_CHECK_DEPEND
|
|
|
|
dnl ## Check for libraries
|
|
|
|
dnl ## Check for header files
|
|
|
|
dnl I think these are just used all over the place, so just check for
|
|
dnl them at the base of the tree. If some are specific to a single
|
|
dnl directory, they should be moved (Comment #Spoon)
|
|
|
|
dnl Regarding standard header files: AC_HEADER_STDC doesn't set symbols
|
|
dnl HAVE_STRING_H, HAVE_STDLIB_H, etc., so those are checked for
|
|
dnl explicitly so that the normal HAVE_xxx_H symbol is defined.
|
|
|
|
AC_HEADER_STDC
|
|
AC_CHECK_HEADERS( \
|
|
string.h \
|
|
limits.h \
|
|
unistd.h \
|
|
sys/socket.h \
|
|
pwd.h \
|
|
grp.h \
|
|
pthread_np.h \
|
|
strings.h \
|
|
sys/prctl.h \
|
|
sys/procctl.h \
|
|
sys/processor.h \
|
|
sys/sem.h \
|
|
sys/sdt.h \
|
|
sys/loadavg.h
|
|
)
|
|
AC_HEADER_SYS_WAIT
|
|
|
|
dnl ## Check for typedefs, structures, and compiler characteristics.
|
|
|
|
AC_C_CONST
|
|
|
|
dnl ## Check for library functions
|
|
dnl ## sqrt() only needed in support/ab.c
|
|
saved_LIBS="$LIBS"
|
|
LIBS=""
|
|
AC_SEARCH_LIBS(sqrt, m)
|
|
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)
|
|
|
|
if test "$ac_cv_search_crypt" != "no"; then
|
|
# Test crypt() with the SHA-512 test vector from https://akkadia.org/drepper/SHA-crypt.txt
|
|
AC_CACHE_CHECK([whether crypt() supports SHA-2], [ap_cv_crypt_sha2], [
|
|
AC_RUN_IFELSE([AC_LANG_PROGRAM([[
|
|
#include <crypt.h>
|
|
#include <stdlib.h>
|
|
#include <string.h>
|
|
|
|
#define PASSWD_0 "Hello world!"
|
|
#define SALT_0 "\$6\$saltstring"
|
|
#define EXPECT_0 "\$6\$saltstring\$svn8UoSVapNtMuq1ukKS4tPQd8iKwSMHWjl/O817G3uBnIFNjnQJu" \
|
|
"esI68u4OTLiBFdcbYEdFCoEOfaS35inz1"
|
|
]], [char *result = crypt(PASSWD_0, SALT_0);
|
|
if (!result) return 1;
|
|
if (strcmp(result, EXPECT_0)) return 2;
|
|
])], [ap_cv_crypt_sha2=yes], [ap_cv_crypt_sha2=no], [ap_cv_crypt_sha2=no])])
|
|
if test "$ap_cv_crypt_sha2" = yes; then
|
|
AC_DEFINE([HAVE_CRYPT_SHA2], 1, [Define if crypt() supports SHA-2 hashes])
|
|
fi
|
|
fi
|
|
|
|
LIBS="$saved_LIBS"
|
|
|
|
dnl See Comment #Spoon
|
|
|
|
AC_CHECK_FUNCS( \
|
|
getpwnam \
|
|
getgrnam \
|
|
initgroups \
|
|
bindprocessor \
|
|
prctl \
|
|
procctl \
|
|
pthread_getthreadid_np \
|
|
timegm \
|
|
getpgid \
|
|
fopen64 \
|
|
getloadavg \
|
|
gettid
|
|
)
|
|
|
|
dnl confirm that a void pointer is large enough to store a long integer
|
|
APACHE_CHECK_VOID_PTR_LEN
|
|
|
|
if test $ac_cv_func_gettid = no; then
|
|
# On Linux before glibc 2.30, gettid() is only usable via syscall()
|
|
AC_CACHE_CHECK([for gettid() via syscall], ap_cv_gettid,
|
|
[AC_TRY_RUN(#define _GNU_SOURCE
|
|
#include <unistd.h>
|
|
#include <sys/syscall.h>
|
|
#include <sys/types.h>
|
|
int main(int argc, char **argv) {
|
|
pid_t t = syscall(SYS_gettid); return t == -1 ? 1 : 0; },
|
|
[ap_cv_gettid=yes], [ap_cv_gettid=no], [ap_cv_gettid=no])])
|
|
if test "$ap_cv_gettid" = "yes"; then
|
|
AC_DEFINE(HAVE_SYS_GETTID, 1, [Define if you have gettid() via syscall()])
|
|
fi
|
|
fi
|
|
|
|
case ${host}X${ac_cv_func_gettid}X${ap_cv_gettid} in
|
|
*linux-*XyesX* | *linux-*XnoXyes)
|
|
AC_DEFINE(DEFAULT_LOG_TID, ["g"], [Define as default argument for thread id in error logging])
|
|
;;
|
|
esac
|
|
|
|
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 <sys/types.h>
|
|
#include <time.h>], [struct tm tm; tm.tm_gmtoff;],
|
|
ac_cv_struct_tm_gmtoff=yes, ac_cv_struct_tm_gmtoff=no)])
|
|
if test "$ac_cv_struct_tm_gmtoff" = "yes"; then
|
|
AC_DEFINE(HAVE_GMTOFF, 1, [Define if struct tm has a tm_gmtoff field])
|
|
fi
|
|
|
|
AC_CHECK_DECL(CMSG_DATA,,, [#include <sys/types.h>
|
|
#include <sys/socket.h>])
|
|
if test $ac_cv_have_decl_CMSG_DATA = "yes"; then
|
|
AC_DEFINE([HAVE_FDPASSING], 1, [Define if file descriptor passing is supported])
|
|
ap_has_fdpassing=1
|
|
else
|
|
ap_has_fdpassing=0
|
|
AC_MSG_WARN([This system does not support file descriptor passing.])
|
|
fi
|
|
|
|
APACHE_CHECK_SYSTEMD
|
|
|
|
dnl ## Set up any appropriate OS-specific environment variables for apachectl
|
|
|
|
case $host in
|
|
*aix*)
|
|
# for 32-bit builds, increase MAXDATA to allow lots of threads
|
|
if test x$OBJECT_MODE != x64; then
|
|
OS_SPECIFIC_VARS="LDR_CNTRL=\"MAXDATA=0x80000000\" ; export LDR_CNTRL ;"
|
|
fi
|
|
OS_SPECIFIC_VARS="$OS_SPECIFIC_VARS AIXTHREAD_SCOPE=S ; export AIXTHREAD_SCOPE"
|
|
OS_SPECIFIC_VARS="$OS_SPECIFIC_VARS ; AIXTHREAD_MUTEX_DEBUG=OFF ; export AIXTHREAD_MUTEX_DEBUG"
|
|
OS_SPECIFIC_VARS="$OS_SPECIFIC_VARS ; AIXTHREAD_RWLOCK_DEBUG=OFF ; export AIXTHREAD_RWLOCK_DEBUG"
|
|
OS_SPECIFIC_VARS="$OS_SPECIFIC_VARS ; AIXTHREAD_COND_DEBUG=OFF ; export AIXTHREAD_COND_DEBUG"
|
|
OS_SPECIFIC_VARS="$OS_SPECIFIC_VARS ; SPINLOOPTIME=1000 ; export SPINLOOPTIME"
|
|
OS_SPECIFIC_VARS="$OS_SPECIFIC_VARS ; YIELDLOOPTIME=8 ; export YIELDLOOPTIME"
|
|
OS_SPECIFIC_VARS="$OS_SPECIFIC_VARS ; MALLOCMULTIHEAP=considersize,heaps:8 ; export MALLOCMULTIHEAP"
|
|
;;
|
|
*os390*)
|
|
OS_SPECIFIC_VARS="export _CEE_RUNOPTS=\"STACK(,,ANY)\" ; export _EDC_ADD_ERRNO2=1"
|
|
;;
|
|
*)
|
|
OS_SPECIFIC_VARS=""
|
|
esac
|
|
|
|
AC_ARG_WITH(port,APACHE_HELP_STRING(--with-port=PORT,Port on which to listen (default is 80)),
|
|
[if test "$withval" = "yes"; then AC_MSG_ERROR('option --with-port requires a value (the TCP port number)'); else PORT="$withval"; fi],
|
|
[PORT=80])
|
|
|
|
AC_ARG_WITH(sslport,APACHE_HELP_STRING(--with-sslport=SSLPORT,Port on which to securelisten (default is 443)),
|
|
[if test "$withval" = "yes"; then AC_MSG_ERROR('option --with-sslport requires a value (the SSL TCP port number)'); else SSLPORT="$withval"; fi],
|
|
[SSLPORT=443])
|
|
|
|
DTRACE=true
|
|
AC_ARG_ENABLE(dtrace,APACHE_HELP_STRING(--enable-dtrace,Enable DTrace probes),
|
|
[
|
|
enable_dtrace=$enableval
|
|
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
|
|
])
|
|
|
|
dnl Disabled dtrace build for now.
|
|
enable_dtrace=no
|
|
|
|
case $host in
|
|
*-solaris2*)
|
|
if test $enable_dtrace = "yes" -a "$ac_cv_header_sys_sdt_h" = "yes"; then
|
|
AC_DEFINE(AP_ENABLE_DTRACE, 1,
|
|
[Enable DTrace probes])
|
|
DTRACE="/usr/sbin/dtrace $DTRACEFLAGS"
|
|
test -f include/apache_probes.h || $DTRACE -h -s apache_probes.d -o include/apache_probes.h
|
|
fi
|
|
;;
|
|
esac
|
|
|
|
APACHE_SUBST(DTRACE)
|
|
|
|
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(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])
|
|
],
|
|
[
|
|
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 -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),
|
|
[
|
|
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
|
|
fi
|
|
])dnl
|
|
|
|
dnl Conditionally enable PIE support for GNU toolchains.
|
|
AC_ARG_ENABLE(pie,APACHE_HELP_STRING(--enable-pie,Build httpd as a Position Independent Executable))
|
|
if test "$enable_pie" = "yes"; then
|
|
AC_CACHE_CHECK([whether $CC accepts PIE flags], [ap_cv_cc_pie], [
|
|
save_CFLAGS=$CFLAGS
|
|
save_LDFLAGS=$LDFLAGS
|
|
CFLAGS="$CFLAGS -fPIE"
|
|
LDFLAGS="$LDFLAGS -pie"
|
|
AC_TRY_RUN([static int foo[30000]; int main () { return 0; }],
|
|
[ap_cv_cc_pie=yes], [ap_cv_cc_pie=no], [ap_cv_cc_pie=yes])
|
|
CFLAGS=$save_CFLAGS
|
|
LDFLAGS=$save_LDFLAGS
|
|
])
|
|
if test "$ap_cv_cc_pie" = "yes"; then
|
|
PICFLAGS="-fPIE"
|
|
PILDFLAGS="-pie"
|
|
else
|
|
AC_ERROR([--enable-pie requested but $CC failed using PIE flags])
|
|
fi
|
|
fi
|
|
APACHE_SUBST(PICFLAGS)
|
|
APACHE_SUBST(PILDFLAGS)
|
|
|
|
ap_reduced_exports=no
|
|
EXPORTS_DOT_C=exports.c
|
|
LIBMAIN_LIB=server/libmain.la
|
|
APACHE_SUBST(EXPORTS_DOT_C)
|
|
APACHE_SUBST(LIBMAIN_LIB)
|
|
|
|
AC_ARG_ENABLE(reduced-exports,
|
|
APACHE_HELP_STRING(--enable-reduced-exports,Reduce binary size if using shared APR libraries),
|
|
[
|
|
if test "$enableval" = "yes" -a "$GCC" = "yes"; then
|
|
ap_reduced_exports=yes
|
|
fi
|
|
])
|
|
|
|
if test "$ap_reduced_exports" = "yes"; then
|
|
EXPORTS_DOT_C=
|
|
LIBMAIN_LIB="-Wl,--whole-archive,server/.libs/libmain.a,--no-whole-archive"
|
|
AC_MSG_NOTICE([Using reduced symbol exports])
|
|
else
|
|
AC_DEFINE(AP_FORCE_EXPORTS, 1, [Force symbol exports for dependent libraries])
|
|
fi
|
|
|
|
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" -a "$ap_reduced_exports" = "no" && `$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
|
|
|
|
dnl reading config stubs
|
|
esyscmd(./build/config-stubs .)
|
|
|
|
APACHE_SUBST(progname)
|
|
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 ""'
|
|
|
|
dnl apache_need_shared tells us if Apache modules are being built as DSOs
|
|
|
|
if test "$apache_need_shared" = "yes"; then
|
|
if test -f $ac_aux_dir/ltconfig; then
|
|
$SHELL $ac_aux_dir/ltconfig --output=shlibtool --disable-static --srcdir=$ac_aux_dir --cache-file=./config.cache $ac_aux_dir/ltmain.sh
|
|
fi
|
|
shared_build="shared-build"
|
|
fi
|
|
|
|
dnl enable_so tells us if *any* modules can be built as DSOs
|
|
|
|
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])
|
|
APR_ADDTO(SH_LDFLAGS, [\$(EXTRA_LDFLAGS) \$(EXTRA_LIBS)])
|
|
APR_ADDTO(UTIL_LDFLAGS, [-Wl,-uXML_Parse])
|
|
;;
|
|
*os390)
|
|
APR_ADDTO(HTTPD_LDFLAGS, [--main=$abs_srcdir/server/main.o --core-dll=$abs_srcdir/apachecore.dll])
|
|
APR_ADDTO(SH_LDFLAGS, [--core-dll=$abs_srcdir/apachecore.dll])
|
|
esac
|
|
MOD_SO_ENABLED=yes
|
|
fi
|
|
AC_SUBST(MOD_SO_ENABLED)
|
|
|
|
APACHE_SUBST(PRE_SHARED_CMDS)
|
|
APACHE_SUBST(POST_SHARED_CMDS)
|
|
APACHE_SUBST(shared_build)
|
|
|
|
AC_ARG_WITH(program-name,
|
|
APACHE_HELP_STRING(--with-program-name,alternate executable name),[
|
|
progname="$withval" ], [
|
|
progname="httpd"] )
|
|
|
|
# SuExec parameters
|
|
AC_ARG_WITH(suexec-bin,
|
|
APACHE_HELP_STRING(--with-suexec-bin,Path to suexec binary),[
|
|
AC_DEFINE_UNQUOTED(SUEXEC_BIN, "$withval", [Path to suexec binary] )
|
|
] )
|
|
|
|
AC_ARG_WITH(suexec-caller,
|
|
APACHE_HELP_STRING(--with-suexec-caller,User allowed to call SuExec),[
|
|
AC_DEFINE_UNQUOTED(AP_HTTPD_USER, "$withval", [User allowed to call SuExec] ) ] )
|
|
|
|
AC_ARG_WITH(suexec-userdir,
|
|
APACHE_HELP_STRING(--with-suexec-userdir,User subdirectory),[
|
|
AC_DEFINE_UNQUOTED(AP_USERDIR_SUFFIX, "$withval", [User subdirectory] ) ] )
|
|
|
|
AC_ARG_WITH(suexec-docroot,
|
|
APACHE_HELP_STRING(--with-suexec-docroot,SuExec root directory),[
|
|
AC_DEFINE_UNQUOTED(AP_DOC_ROOT, "$withval", [SuExec root directory] ) ] )
|
|
|
|
AC_ARG_WITH(suexec-uidmin,
|
|
APACHE_HELP_STRING(--with-suexec-uidmin,Minimal allowed UID),[
|
|
AC_DEFINE_UNQUOTED(AP_UID_MIN, $withval, [Minimum allowed UID] ) ] )
|
|
|
|
AC_ARG_WITH(suexec-gidmin,
|
|
APACHE_HELP_STRING(--with-suexec-gidmin,Minimal allowed GID),[
|
|
AC_DEFINE_UNQUOTED(AP_GID_MIN, $withval, [Minimum allowed GID] ) ] )
|
|
|
|
AC_ARG_WITH(suexec-logfile,
|
|
APACHE_HELP_STRING(--with-suexec-logfile,Set the logfile),[
|
|
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),[
|
|
AC_DEFINE_UNQUOTED(AP_SAFE_PATH, "$withval", [safe shell path for SuExec] ) ] )
|
|
|
|
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`"
|
|
fi
|
|
AP_LIBS="$AP_LIBS `$apr_config --link-libtool --libs`"
|
|
APACHE_SUBST(AP_LIBS)
|
|
APACHE_SUBST(AP_BUILD_SRCLIB_DIRS)
|
|
APACHE_SUBST(AP_CLEAN_SRCLIB_DIRS)
|
|
|
|
if test "$SINGLE_LISTEN_UNSERIALIZED_ACCEPT" = "1"; then
|
|
AC_DEFINE(SINGLE_LISTEN_UNSERIALIZED_ACCEPT, 1,
|
|
[This platform doesn't suffer from the thundering herd problem])
|
|
fi
|
|
|
|
if test "$AP_NONBLOCK_WHEN_MULTI_LISTEN" = "1"; then
|
|
AC_DEFINE(AP_NONBLOCK_WHEN_MULTI_LISTEN, 1,
|
|
[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"
|
|
])
|
|
|
|
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)
|
|
|
|
if test -d ./test; then
|
|
APACHE_FAST_OUTPUT(test/Makefile)
|
|
AC_CONFIG_FILES([test/pyhttpd/config.ini])
|
|
APACHE_FAST_OUTPUT(test/clients/Makefile)
|
|
fi
|
|
|
|
dnl ## Finalize the variables
|
|
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_)
|
|
APR_RESTORE_THE_ENVIRONMENT(CXXFLAGS, EXTRA_)
|
|
APR_RESTORE_THE_ENVIRONMENT(LDFLAGS, EXTRA_)
|
|
APR_RESTORE_THE_ENVIRONMENT(LIBS, EXTRA_)
|
|
APR_RESTORE_THE_ENVIRONMENT(INCLUDES, EXTRA_)
|
|
|
|
AC_MSG_NOTICE([])
|
|
AC_MSG_NOTICE([Construct makefiles and header files...])
|
|
AC_MSG_NOTICE([])
|
|
|
|
APACHE_GEN_CONFIG_VARS
|
|
|
|
APR_EXPAND_VAR(ap_prefix, $prefix)
|
|
AC_DEFINE_UNQUOTED(HTTPD_ROOT, "${ap_prefix}",
|
|
[Root directory of the Apache install area])
|
|
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])
|
|
|
|
perlbin=`$ac_aux_dir/PrintPath perl`
|
|
if test "x$perlbin" = "x"; then
|
|
perlbin="/replace/with/path/to/perl/interpreter"
|
|
fi
|
|
AC_SUBST(perlbin)
|
|
|
|
dnl If we are running on a BSD variant, see if we need to use the BSD .include syntax.
|
|
|
|
ap_make_include=include
|
|
ap_make_ifdef=ifdef
|
|
ap_make_else=else
|
|
ap_make_endif=endif
|
|
ap_make_delimiter=' '
|
|
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
|
|
|
|
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],
|
|
[$SHELL $srcdir/build/fastgen.sh $srcdir $ac_cv_mkdir_p $BSD_MAKEFILE $APACHE_FAST_OUTPUT_FILES >&AS_MESSAGE_FD],
|
|
[ac_cv_mkdir_p=$ac_cv_mkdir_p
|
|
BSD_MAKEFILE=$BSD_MAKEFILE
|
|
APACHE_FAST_OUTPUT_FILES="$APACHE_FAST_OUTPUT_FILES"
|
|
])
|
|
AC_CONFIG_COMMANDS([modules.c], [
|
|
## Build modules.c
|
|
rm -f modules.c
|
|
echo $MODLIST | $AWK -f $srcdir/build/build-modules-c.awk > modules.c
|
|
], [MODLIST="$MODLIST"])
|
|
AC_OUTPUT
|
|
|
|
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}
|
|
CPPFLAGS: ${APACHE_CONF_SEL_CPPFLAGS}
|
|
LDFLAGS: ${APACHE_CONF_SEL_LDFLAGS}
|
|
LIBS: ${APACHE_CONF_SEL_LIBS}
|
|
C preprocessor: ${APACHE_CONF_SEL_CPP}
|
|
])
|