123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717 |
- dnl
- dnl Autoconf configuration for Apache httpd
- dnl
- dnl Use ./buildconf to produce a configure script
- dnl
- AC_PREREQ(2.13)
- AC_INIT(ABOUT_APACHE)
- AC_CONFIG_HEADER(include/ap_config_auto.h)
- AC_CONFIG_AUX_DIR(build)
- 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])
- 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 ## 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"
- echo $ac_n "${nl}Configuring Apache Portable Runtime library ...${nl}"
- AC_ARG_WITH(included-apr,
- APACHE_HELP_STRING(--with-included-apr,Use bundled copies of APR/APR-Util))
- # Only APR 1.x is supported.
- apr_version=1
- if test "x$with_included_apr" = "xyes"; then
- apr_found=reconfig
- apr_config="$srcdir/srclib/apr/apr-${apr_version}-config"
- else
- APR_FIND_APR("$srcdir/srclib/apr", "./srclib/apr", 1, ${apr_version})
- fi
- if test "$apr_found" = "no"; then
- AC_MSG_ERROR([APR not found. Please read the documentation.])
- 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"
- 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`)
- APR_ADDTO(LDFLAGS, `$apr_config --ldflags`)
- SHLIBPATH_VAR=`$apr_config --shlib-path-var`
- APR_BINDIR=`$apr_config --bindir`
- APR_INCLUDEDIR=`$apr_config --includedir`
- APR_VERSION=`$apr_config --version`
- APR_CONFIG="$APR_BINDIR/apr-`echo ${APR_VERSION} | sed 's,\..*,,'`-config"
- echo $ac_n "${nl}Configuring Apache Portable Runtime Utility library...${nl}"
- # Only APR-util 1.x is supported.
- apu_version=1
- if test "x$with_included_apr" = "xyes"; then
- apu_found=reconfig
- apu_config="${srcdir}/srclib/apr-util/apu-${apu_version}-config"
- else
- APR_FIND_APU("$srcdir/srclib/apr-util", "./srclib/apr-util", 1, ${apu_version})
- fi
- if test "$apu_found" = "no"; then
- AC_MSG_ERROR([APR-util not found. Please read the documentation.])
- 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"
- fi
- APR_ADDTO(LDFLAGS, `$apu_config --ldflags`)
- APU_BINDIR=`$apu_config --bindir`
- APU_INCLUDEDIR=`$apu_config --includedir`
- APU_VERSION=`$apu_config --version`
- APU_CONFIG="$APU_BINDIR/apu-`echo ${APU_VERSION} | sed 's,\..*,,'`-config"
- 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
- 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))
- case $with_pcre in
- yes) AC_PATH_PROG(PCRE_CONFIG, pcre-config, false) ;;
- /*) if test -d "$with_pcre" && test -x "$with_pcre/bin/pcre-config"; then
- PCRE_CONFIG=$with_pcre/bin/pcre-config
- elif test -x "$with_pcre"; then
- PCRE_CONFIG=$with_pcre
- fi
- if $PCRE_CONFIG --version >/dev/null 2>&1; then :; else
- AC_MSG_ERROR([Did not find pcre-config script at $PCRE_CONFIG])
- fi
- ;;
- *) PCRE_CONFIG=false ;;
- esac
- if test "$PCRE_CONFIG" != "false"; then
- AC_MSG_NOTICE([Using external PCRE library from $PCRE_CONFIG])
- APR_ADDTO(CFLAGS, [`$PCRE_CONFIG --cflags`])
- APR_ADDTO(LIBS, [`$PCRE_CONFIG --libs`])
- else
- # Build the bundled PCRE
- AC_MSG_NOTICE([Configuring PCRE regular expression library])
- APR_SUBDIR_CONFIG(srclib/pcre,
- [--prefix=$prefix --exec-prefix=$exec_prefix --libdir=$libdir --includedir=$includedir --bindir=$bindir])
- APR_ADDTO(AP_LIBS, [$abs_builddir/srclib/pcre/libpcre.la])
- APR_ADDTO(INCLUDES, [-I\$(top_builddir)/srclib/pcre])
- AP_BUILD_SRCLIB_DIRS="$AP_BUILD_SRCLIB_DIRS pcre"
- AP_CLEAN_SRCLIB_DIRS="$AP_CLEAN_SRCLIB_DIRS pcre"
- fi
- echo $ac_n "${nl}Configuring Apache httpd ...${nl}"
- 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)/server/mpm/\$(MPM_SUBDIR_NAME) -I\$(top_srcdir)/modules/http -I\$(top_srcdir)/modules/filters -I\$(top_srcdir)/modules/proxy -I\$(top_srcdir)/include -I\$(top_srcdir)/modules/generators -I\$(top_srcdir)/modules/mappers -I\$(top_srcdir)/modules/database])
- # 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_config --includes`)
- APR_ADDTO(INCLUDES, `$apu_config --includes`)
- echo $ac_n "${nl}Applying OS-specific hints for httpd ...${nl}"
- 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(APACHE_MPM, [prefork])
- APR_SETVAR(SINGLE_LISTEN_UNSERIALIZED_ACCEPT, [1])
- ;;
- *-beos*)
- APR_SETVAR(APACHE_MPM, [beos])
- APR_SETVAR(SINGLE_LISTEN_UNSERIALIZED_ACCEPT, [1])
- ;;
- *os2-emx*)
- APR_SETVAR(APACHE_MPM, [mpmt_os2])
- APR_SETVAR(SINGLE_LISTEN_UNSERIALIZED_ACCEPT, [1])
- ;;
- *-linux-*)
- case `uname -r` in
- 2.[[2-9]]* )
- 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(APACHE_MPM, [prefork])
- APR_SETVAR(SINGLE_LISTEN_UNSERIALIZED_ACCEPT, [1])
- ;;
- *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_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 APR 1.2.x otherwise fail
- APACHE_CHECK_APxVER([apr], 1, 2)
- fi
- if test "${apu_found}" = "yes"; then
- # Require APR-util 1.2.x otherwise fail
- APACHE_CHECK_APxVER([apu], 1, 2)
- 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 \
- strings.h \
- sys/prctl.h \
- sys/processor.h \
- sys/sem.h
- )
- AC_HEADER_SYS_WAIT
- dnl ## Check for typedefs, structures, and compiler characteristics.
- AC_C_CONST
- dnl ## Check for library functions
- AC_SEARCH_LIBS(sqrt, m)
- dnl See Comment #Spoon
- AC_CHECK_FUNCS( \
- getpwnam \
- getgrnam \
- initgroups \
- bindprocessor \
- prctl \
- timegm \
- getpgid
- )
- dnl confirm that a void pointer is large enough to store a long integer
- APACHE_CHECK_VOID_PTR_LEN
- 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
- 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])
- 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
- *freebsd5*|*netbsd*|*openbsd*)
- v4mapped=no
- ;;
- *)
- v4mapped=yes
- ;;
- esac
- ])
- 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_DEFINE(AP_ENABLE_EXCEPTION_HOOK, 1,
- [Allow modules to run hook after a fatal exception])
- ])dnl
- AC_ARG_ENABLE(maintainer-mode,APACHE_HELP_STRING(--enable-maintainer-mode,Turn on debugging and compile time warnings),
- [
- APR_ADDTO(CPPFLAGS, -DAP_DEBUG)
- ])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
- AC_SUBST(PICFLAGS)
- AC_SUBST(PILDFLAGS)
- prefix="$orig_prefix"
- APACHE_ENABLE_MODULES
- 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)
- 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"; then
- case $host in
- *-ibm-aix*)
- HTTPD_LDFLAGS="$HTTPD_LDFLAGS -Wl,-uXML_Parse -Wl,-bE:$abs_builddir/server/httpd.exp"
- SH_LDFLAGS="$SH_LDFLAGS \$(EXTRA_LDFLAGS) \$(EXTRA_LIBS)"
- UTIL_LDFLAGS="$UTIL_LDFLAGS -Wl,-uXML_Parse"
- ;;
- *beos)
- SH_LDFLAGS='$(top_builddir)/_APP_'
- PRE_SHARED_CMDS='ln -s $(top_builddir)/httpd $(top_builddir)/_APP_'
- POST_SHARED_CMDS='rm $(top_builddir)/_APP_'
- ;;
- *os390)
- HTTPD_LDFLAGS="$HTTPD_LDFLAGS --main=$abs_srcdir/server/main.o --core-dll=$abs_srcdir/apachecore.dll"
- SH_LDFLAGS="$SH_LDFLAGS --core-dll=$abs_srcdir/apachecore.dll"
- esac
- fi
- 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),[
- AC_DEFINE_UNQUOTED(AP_LOG_EXEC, "$withval", [SuExec log file] ) ] )
- 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] ) ] )
- dnl APR should go after the other libs, so the right symbols can be picked up
- apulinklibs="`$apu_config --avoid-ldap --link-libtool --libs`" \
- || apulinklibs="`$apu_config --link-libtool --libs`"
- AP_LIBS="$AP_LIBS $apulinklibs `$apr_config --link-libtool --libs`"
- APACHE_SUBST(AP_LIBS)
- APACHE_SUBST(AP_BUILD_SRCLIB_DIRS)
- APACHE_SUBST(AP_CLEAN_SRCLIB_DIRS)
- AC_DEFINE(AP_USING_AUTOCONF, 1,
- [Using autoconf to configure Apache])
- 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
- APACHE_FAST_OUTPUT(Makefile modules/Makefile srclib/Makefile)
- APACHE_FAST_OUTPUT(os/Makefile server/Makefile)
- APACHE_FAST_OUTPUT(support/Makefile srclib/pcre/Makefile)
- if test -d ./test; then
- APACHE_FAST_OUTPUT(test/Makefile)
- fi
- dnl ## Finalize the variables
- echo $ac_n "${nl}Restore user-defined environment settings...${nl}"
- 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_)
- echo $ac_n "${nl}Construct makefiles and header files...${nl}"
- APACHE_GEN_CONFIG_VARS
- dnl ## Build modules.c
- rm -f modules.c
- echo $MODLIST | $AWK -f $srcdir/build/build-modules-c.awk > modules.c
- 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])
- 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
- perlbin="/replace/with/path/to/perl/interpreter"
- fi
- AC_SUBST(perlbin)
- dnl If we are running on BSD/OS, we need to use the BSD .include syntax.
- BSD_MAKEFILE=no
- ap_make_include=include
- 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
- AC_SUBST(ap_make_include)
- 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],[
- 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
|