dnl ## Process this file with autoconf to produce a configure script AC_PREREQ(2.13) AC_INIT(acinclude.m4) AC_CONFIG_HEADER(include/ap_config_auto.h) AC_CONFIG_AUX_DIR(.) dnl ## This is the central place where Apache's version should be kept. dnl AM_INIT_AUTOMAKE(apache, 2.0-dev) VERSION="apache-2.0-dev" APACHE_VERSION=$VERSION APACHE_SUBST(APACHE_VERSION) test "$exec_prefix" = "NONE" && exec_prefix='${prefix}' test "$prefix" = "NONE" && prefix='/usr/local' dnl Absolute source/build directory abs_srcdir=`(cd $srcdir && pwd)` abs_builddir=`pwd` APACHE_CONFIG_NICE(config.nice) dnl If the source dir is not equal to the build dir, dnl then we are running in VPATH mode. if test "$abs_builddir" != "$abs_srcdir"; then USE_VPATH=1 fi AC_CANONICAL_SYSTEM dnl dnl ## Preload our OS configuration APR_PRELOAD APACHE_PRELOAD 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_PROG_AWK AC_PROG_CC AC_PROG_CPP AC_PROG_INSTALL AC_PROG_LN_S AC_CHECK_TOOL(RANLIB, ranlib, true) dnl AC_PATH_PROG(PERL_PATH, perl) REENTRANCY_FLAGS dnl various OS checks that apparently set required flags AC_AIX AC_ISC_POSIX AC_MINIX 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 \ stdlib.h \ ctype.h \ limits.h \ unistd.h \ sys/time.h \ sys/types.h \ sys/socket.h \ netinet/in.h \ netinet/tcp.h \ arpa/inet.h \ netdb.h \ pwd.h \ grp.h \ strings.h ) AC_HEADER_SYS_WAIT dnl ## Check for typedefs, structures, and compiler characteristics. AC_C_CONST dnl ## Check for library functions dnl See Comment #Spoon AC_CHECK_FUNCS( \ initgroups \ ) AC_CHECK_LIB(nsl, gethostbyname) AC_CHECK_LIB(nsl, gethostname) AC_CHECK_LIB(socket, socket) AC_CHECK_LIB(resolv, sethostent) APACHE_EBCDIC AC_ARG_WITH(optim,[ --with-optim="FLAGS" compiler optimisation flags], [OPTIM="$withval"]) AC_ARG_WITH(port,[ --with-port=PORT Port on which to listen (default is 80)], [PORT="$withval"], [PORT=80]) AC_ARG_WITH(debug,[ --with-debug Turn on debugging and compile time warnings], [if test "$GCC" = "yes"; then CFLAGS="$CFLAGS -g -Wall"; else CFLAGS="$CFLAGS -g"; fi]) AC_ARG_WITH(maintainer-mode,[ --with-maintainer-mode Turn on debugging and compile time warnings], [if test "$GCC" = "yes"; then CFLAGS="$CFLAGS -g -Wall -Wmissing-prototypes -Wstrict-prototypes -Wmissing-declarations -DAP_DEBUG"; else CFLAGS="$CFLAGS -g"; fi]) APACHE_ENABLE_LAYOUT APACHE_ENABLE_MODULES APACHE_ENABLE_SHARED INCLUDES="-I\$(top_srcdir)/include -I\$(top_srcdir)/srclib/apr/include -I\$(top_srcdir)/srclib/apr-util/include" if test -n "$USE_VPATH"; then INCLUDES="$INCLUDES -I\$(top_builddir)/include -I\$(top_builddir)/srclib/apr/include" fi dnl reading config stubs esyscmd(./build/config-stubs .) INCLUDES="$INCLUDES -I\$(top_srcdir)/os/\$(OS_DIR)" EXTRA_LIBS="$EXTRA_LIBS $LIBS" EXTRA_LDFLAGS="$LDFLAGS" LIBS="" LDFLAGS="" APACHE_SUBST(progname) APACHE_SUBST(EXTRA_CFLAGS) APACHE_SUBST(EXTRA_LDFLAGS) APACHE_SUBST(EXTRA_LIBS) APACHE_SUBST(INCLUDES) APACHE_SUBST(MPM_LIB) APACHE_SUBST(OS) APACHE_SUBST(OS_DIR) APACHE_SUBST(BUILTIN_LIBS) APACHE_SUBST(LIBPRE) AM_DISABLE_SHARED AM_PROG_LIBTOOL APACHE_LIBTOOL_SILENT if test "$apache_need_shared" = "yes"; then $SHELL $srcdir/ltconfig --output=shlibtool --disable-static --srcdir=$srcdir --cache-file=./config.cache $srcdir/ltmain.sh case $PLATFORM in *os390) CFLAGS="$CFLAGS -Wc,DLL,EXPORTALL" ;; esac fi AC_ARG_WITH(program-name, [ --with-program-name=alternate executable name],[ progname="$withval" ], [ progname="httpd"] ) dnl ### util_xml is always included, so we always need Expat (for now) apache_need_expat=yes dnl AP_LIB_DIRS specifies the additional libs from srclib/ that we need dnl AP_LIBS specifies the actual libraries. note we have some required libs. AP_LIBS="srclib/pcre/libpcre.la srclib/apr-util/libaprutil.la" if test "$apache_need_expat" = "yes"; then AP_LIB_DIRS="$AP_LIB_DIRS expat-lite" AP_LIBS="$AP_LIBS srclib/expat-lite/libexpat.la" INCLUDES="$INCLUDES -I\$(top_srcdir)/srclib/expat-lite" fi dnl APR should go after the other libs, so the right symbols can be picked up AP_LIBS="$AP_LIBS srclib/apr/\$(LIBPRE)apr.a" APACHE_SUBST(AP_LIB_DIRS) APACHE_SUBST(AP_LIBS) 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 dnl check for endianness if test "$cross_compiling" = "no"; then AC_C_BIGENDIAN else AC_DEFINE(AP_UNKNOWN_BYTE_ORDER,1, [byte order is unknown due to cross-compilation]) fi APACHE_FAST_OUTPUT(Makefile modules/Makefile srclib/Makefile) APACHE_FAST_OUTPUT(os/beos/Makefile os/os2/Makefile os/Makefile) APACHE_FAST_OUTPUT(os/unix/Makefile server/Makefile) APACHE_FAST_OUTPUT(support/Makefile test/Makefile srclib/pcre/Makefile) for i in $AP_LIB_DIRS; do APACHE_FAST_OUTPUT(srclib/$i/Makefile) done dnl ## Run configure for packages Apache uses dnl ## This has been placed at this location for a reason. This allows dnl ## Apache to set some variable that APR needs (like whether to enable dnl ## or disable threads), while still allowing APR to run and generate dnl ## APRVARS before Apache generates it's Makefiles and the related files. dnl ## This allows APR to detect libraries like dl and tell Apache that it dnl ## needs to include or not include them. RUN_SUBDIR_CONFIG_NOW(srclib/apr, $apache_apr_flags) RUN_SUBDIR_CONFIG_NOW(srclib/apr-util, "--with-apr=../apr") RUN_SUBDIR_CONFIG_NOW(srclib/pcre) . ./srclib/apr/APRVARS dnl get the exported vars from APRUTIL . ./srclib/apr-util/export_vars.sh EXTRA_LIBS="$EXTRA_LIBS $APRUTIL_EXPORT_LIBS" APACHE_GEN_CONFIG_VARS dnl ## Build modules.c rm -f modules.c echo $MODLIST | $AWK -f $srcdir/build/build-modules-c.awk > modules.c AC_OUTPUT_COMMANDS([ echo '/* Generated by configure */' > ${path_h}.new echo "#define HTTPD_ROOT \"$prefix\"" >> ${path_h}.new echo "#define SUEXEC_BIN \"$bindir/suexec\"" >> ${path_h}.new echo "#define SERVER_CONFIG_FILE \"conf/$progname.conf\"" >> ${path_h}.new echo "#define APACHE_MPM_DIR \"$mpmdir\"" >> ${path_h}.new cmp ${path_h}.new ${path_h} >/dev/null 2>&1 if test $? -ne 0 ; then rm -f ${path_h} && mv ${path_h}.new ${path_h} && \ echo "Updated ${path_h}" else rm -f ${path_h}.new && \ echo "${path_h} unchanged" fi ],[ path_h=./include/ap_config_path.h prefix=$prefix exec_prefix=$exec_prefix bindir=$bindir progname=$progname mpmdir=$MPM_DIR ]) AC_TYPE_RLIM_T perlbin=`$srcdir/build/PrintPath perl` AC_SUBST(perlbin) dnl If we are running on BSD/OS, we need to use the BSD .include syntax. BSD_MAKEFILE=no case "$host_alias" in *bsdi*) BSD_MAKEFILE=yes;; esac AC_OUTPUT($APACHE_OUTPUT_FILES support/apxs support/apachectl,,[ APACHE_GEN_MAKEFILES ])