| 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 |
| |
| 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} |
| ]) |