Blame configure.in

Packit 90a5c9
dnl
Packit 90a5c9
dnl Autoconf configuration for Apache httpd
Packit 90a5c9
dnl
Packit 90a5c9
dnl     Use ./buildconf to produce a configure script
Packit 90a5c9
dnl
Packit 90a5c9
Packit 90a5c9
AC_PREREQ(2.50)
Packit 90a5c9
AC_INIT(ABOUT_APACHE)
Packit 90a5c9
Packit 90a5c9
AC_CONFIG_HEADER(include/ap_config_auto.h)
Packit 90a5c9
AC_CONFIG_AUX_DIR(build)
Packit 90a5c9
Packit 90a5c9
dnl Absolute source/build directory
Packit 90a5c9
abs_srcdir=`(cd $srcdir && pwd)`
Packit 90a5c9
abs_builddir=`pwd`
Packit 90a5c9
Packit 90a5c9
dnl Ensure that the httpd version is included
Packit 90a5c9
HTTPD_VERSION=`$abs_srcdir/build/get-version.sh all $abs_srcdir/include/ap_release.h AP_SERVER`
Packit 90a5c9
HTTPD_MMN=`$abs_srcdir/build/get-version.sh mmn $abs_srcdir/include/ap_mmn.h MODULE_MAGIC_NUMBER`
Packit 90a5c9
Packit 90a5c9
dnl #
Packit 90a5c9
dnl # Include our own M4 macros along with those for APR and libtool
Packit 90a5c9
dnl #
Packit 90a5c9
sinclude(build/apr_common.m4)
Packit 90a5c9
sinclude(build/find_apr.m4)
Packit 90a5c9
sinclude(build/find_apu.m4)
Packit 90a5c9
sinclude(acinclude.m4)
Packit 90a5c9
Packit 90a5c9
dnl Later versions of autoconf (>= 2.62) by default cause the produced
Packit 90a5c9
dnl configure script to emit at least warnings when it comes across unknown
Packit 90a5c9
dnl command line options. These versions also have the macro
Packit 90a5c9
dnl AC_DISABLE_OPTION_CHECKING defined which turns this off by default.
Packit 90a5c9
dnl We want to have this turned off here since our configure calls can
Packit 90a5c9
dnl contain options for APR / APR-UTIL configure that are unknown to us.
Packit 90a5c9
dnl So avoid confusing the user by turning this off. See also PR 45221.
Packit 90a5c9
ifdef([AC_DISABLE_OPTION_CHECKING], [AC_DISABLE_OPTION_CHECKING])
Packit 90a5c9
Packit 90a5c9
dnl XXX we can't just use AC_PREFIX_DEFAULT because that isn't subbed in
Packit 90a5c9
dnl by configure until it is too late.  Is that how it should be or not?
Packit 90a5c9
dnl Something seems broken here.                                               
Packit 90a5c9
AC_PREFIX_DEFAULT(/usr/local/apache2)
Packit 90a5c9
Packit 90a5c9
dnl Get the layout here, so we can pass the required variables to apr
Packit 90a5c9
APR_ENABLE_LAYOUT(Apache, [errordir iconsdir htdocsdir cgidir])
Packit 90a5c9
Packit 90a5c9
dnl reparse the configure arguments.
Packit 90a5c9
APR_PARSE_ARGUMENTS
Packit 90a5c9
Packit 90a5c9
dnl export expanded and relative configure argument variables
Packit 90a5c9
APACHE_EXPORT_ARGUMENTS
Packit 90a5c9
Packit 90a5c9
dnl Save user-defined environment settings for later restoration
Packit 90a5c9
dnl
Packit 90a5c9
APR_SAVE_THE_ENVIRONMENT(CPPFLAGS)
Packit 90a5c9
APR_SAVE_THE_ENVIRONMENT(CFLAGS)
Packit 90a5c9
APR_SAVE_THE_ENVIRONMENT(CXXFLAGS)
Packit 90a5c9
APR_SAVE_THE_ENVIRONMENT(LDFLAGS)
Packit 90a5c9
APR_SAVE_THE_ENVIRONMENT(LIBS)
Packit 90a5c9
APR_SAVE_THE_ENVIRONMENT(INCLUDES)
Packit 90a5c9
Packit 90a5c9
dnl Generate ./config.nice for reproducing runs of configure
Packit 90a5c9
dnl
Packit 90a5c9
APR_CONFIG_NICE(config.nice)
Packit 90a5c9
Packit 90a5c9
nl='
Packit 90a5c9
'
Packit 90a5c9
dnl Check that mkdir -p works
Packit 90a5c9
APR_MKDIR_P_CHECK($top_srcdir/build/mkdir.sh)
Packit 90a5c9
Packit 90a5c9
dnl get an EGREP to use in the Makefiles
Packit 90a5c9
AC_PROG_EGREP
Packit 90a5c9
APACHE_SUBST(EGREP)
Packit 90a5c9
Packit 90a5c9
dnl ## Run configure for packages Apache uses
Packit 90a5c9
Packit 90a5c9
dnl shared library support for these packages doesn't currently
Packit 90a5c9
dnl work on some platforms
Packit 90a5c9
Packit 90a5c9
AC_CANONICAL_SYSTEM
Packit 90a5c9
Packit 90a5c9
orig_prefix="$prefix"
Packit 90a5c9
Packit 90a5c9
AC_MSG_NOTICE([])
Packit 90a5c9
AC_MSG_NOTICE([Configuring Apache Portable Runtime library...])
Packit 90a5c9
AC_MSG_NOTICE([])
Packit 90a5c9
Packit 90a5c9
AC_ARG_WITH(included-apr,
Packit 90a5c9
APACHE_HELP_STRING(--with-included-apr,Use bundled copies of APR/APR-Util))
Packit 90a5c9
Packit 90a5c9
if test "x$with_included_apr" = "xyes"; then
Packit 90a5c9
  apr_found=reconfig
Packit 90a5c9
  if test ! -d srclib/apr && test ! -d $srcdir/srclib/apr; then
Packit 90a5c9
    AC_MSG_ERROR([Bundled APR requested but not found at ./srclib/. Download and unpack the corresponding apr and apr-util packages to ./srclib/.])
Packit 90a5c9
  fi
Packit 90a5c9
else 
Packit 90a5c9
  APR_FIND_APR("$srcdir/srclib/apr", "./srclib/apr", 1, 1 2, [
Packit 90a5c9
    version=`$apr_config --version`
Packit 90a5c9
    case x${version} in
Packit 90a5c9
    x1.[[0-3]].*) 
Packit 90a5c9
      AC_MSG_WARN([APR version 1.4.0 or later is required, found $version])
Packit 90a5c9
      apr_acceptable=no
Packit 90a5c9
      ;;
Packit 90a5c9
    esac
Packit 90a5c9
    unset version
Packit 90a5c9
   ])
Packit 90a5c9
fi
Packit 90a5c9
Packit 90a5c9
if test "$apr_found" = "no"; then
Packit 90a5c9
  AC_MSG_ERROR([APR not found.  Please read the documentation.])
Packit 90a5c9
fi
Packit 90a5c9
Packit 90a5c9
if test "$apr_found" = "reconfig"; then
Packit 90a5c9
  APR_SUBDIR_CONFIG(srclib/apr,
Packit 90a5c9
                    [$apache_apr_flags --prefix=$prefix --exec-prefix=$exec_prefix --libdir=$libdir --includedir=$includedir --bindir=$bindir --datadir=$datadir --with-installbuilddir=$installbuilddir],
Packit 90a5c9
                    [--enable-layout=*|\'--enable-layout=*])
Packit 90a5c9
  dnl We must be the first to build and the last to be cleaned
Packit 90a5c9
  AP_BUILD_SRCLIB_DIRS="apr $AP_BUILD_SRCLIB_DIRS"
Packit 90a5c9
  AP_CLEAN_SRCLIB_DIRS="$AP_CLEAN_SRCLIB_DIRS apr"
Packit 90a5c9
Packit 90a5c9
  dnl We have to find apr-N-config when we reconfigure APR.
Packit 90a5c9
  for majorver in 1 2; do
Packit 90a5c9
    test_apr_config="./srclib/apr/apr-${majorver}-config"
Packit 90a5c9
    if test -f "$test_apr_config"; then
Packit 90a5c9
      apr_config="$test_apr_config"
Packit 90a5c9
    fi
Packit 90a5c9
  done
Packit 90a5c9
fi
Packit 90a5c9
Packit 90a5c9
APR_SETIFNULL(CC, `$apr_config --cc`)
Packit 90a5c9
APR_SETIFNULL(CPP, `$apr_config --cpp`)
Packit 90a5c9
APR_ADDTO(CFLAGS, `$apr_config --cflags`)
Packit 90a5c9
APR_ADDTO(CPPFLAGS, `$apr_config --cppflags`)
Packit 90a5c9
dnl internal-only CPPFLAGS (shouldn't affect third-party module builds)
Packit 90a5c9
INTERNAL_CPPFLAGS=""
Packit 90a5c9
APR_ADDTO(LDFLAGS, `$apr_config --ldflags`)
Packit 90a5c9
SHLIBPATH_VAR=`$apr_config --shlib-path-var`
Packit 90a5c9
APR_BINDIR=`$apr_config --bindir`
Packit 90a5c9
APR_INCLUDEDIR=`$apr_config --includedir`
Packit 90a5c9
APR_INCLUDES=`$apr_config --includes`
Packit 90a5c9
APR_VERSION=`$apr_config --version`
Packit 90a5c9
apr_major_version=`echo ${APR_VERSION} | sed 's,\..*,,'`
Packit 90a5c9
APR_CONFIG="$APR_BINDIR/apr-${apr_major_version}-config"
Packit 90a5c9
Packit 90a5c9
AC_MSG_NOTICE([])
Packit 90a5c9
AC_MSG_NOTICE([Configuring Apache Portable Runtime Utility library...])
Packit 90a5c9
AC_MSG_NOTICE([])
Packit 90a5c9
Packit 90a5c9
if test "x${apr_major_version}" = "x2"; then
Packit 90a5c9
  apu_found=obsolete
Packit 90a5c9
elif test "x$with_included_apr" = "xyes"; then
Packit 90a5c9
  apu_found=reconfig
Packit 90a5c9
  if test ! -d srclib/apr-util && test ! -d $srcdir/srclib/apr-util; then
Packit 90a5c9
    AC_MSG_ERROR([Bundled APR-Util requested but not found at ./srclib/. Download and unpack the corresponding apr and apr-util packages to ./srclib/.])
Packit 90a5c9
  fi
Packit 90a5c9
else 
Packit 90a5c9
   dnl If httpd is buildconf'ed against an apr 2.x tree, then 1.x
Packit 90a5c9
   dnl isn't supported. 
Packit 90a5c9
   ifdef([APR_FIND_APU], [
Packit 90a5c9
     APR_FIND_APU("$srcdir/srclib/apr-util", "./srclib/apr-util", 
Packit 90a5c9
                  1, ${apr_major_version})
Packit 90a5c9
   ], [apu_found=no])
Packit 90a5c9
fi
Packit 90a5c9
Packit 90a5c9
if test "$apu_found" = "no"; then
Packit 90a5c9
  AC_MSG_ERROR([APR-util not found.  Please read the documentation.])
Packit 90a5c9
fi
Packit 90a5c9
Packit 90a5c9
# Catch some misconfigurations:
Packit 90a5c9
case ${apr_found}.${apu_found} in
Packit 90a5c9
reconfig.yes)
Packit 90a5c9
  AC_MSG_ERROR([Cannot use an external APR-util with the bundled APR])
Packit 90a5c9
  ;;
Packit 90a5c9
yes.reconfig)
Packit 90a5c9
  AC_MSG_ERROR([Cannot use an external APR with the bundled APR-util])
Packit 90a5c9
  ;;
Packit 90a5c9
esac  
Packit 90a5c9
Packit 90a5c9
if test "$apu_found" = "reconfig"; then
Packit 90a5c9
  APR_SUBDIR_CONFIG(srclib/apr-util,
Packit 90a5c9
                    [--with-apr=../apr --prefix=$prefix --exec-prefix=$exec_prefix --libdir=$libdir --includedir=$includedir --bindir=$bindir],
Packit 90a5c9
                    [--enable-layout=*|\'--enable-layout=*])
Packit 90a5c9
  dnl We must be the last to build and the first to be cleaned
Packit 90a5c9
  AP_BUILD_SRCLIB_DIRS="$AP_BUILD_SRCLIB_DIRS apr-util"
Packit 90a5c9
  AP_CLEAN_SRCLIB_DIRS="apr-util $AP_CLEAN_SRCLIB_DIRS"
Packit 90a5c9
  dnl APR and APR-Util major versions must match
Packit 90a5c9
  apu_config="./srclib/apr-util/apu-${apr_major_version}-config"
Packit 90a5c9
fi
Packit 90a5c9
Packit 90a5c9
if test "$apu_found" = "obsolete"; then
Packit 90a5c9
  AC_MSG_NOTICE([APR-util obsoleted, woohoo])
Packit 90a5c9
else
Packit 90a5c9
  APR_ADDTO(LDFLAGS, `$apu_config --ldflags`)
Packit 90a5c9
  APU_BINDIR=`$apu_config --bindir`
Packit 90a5c9
  APU_INCLUDEDIR=`$apu_config --includedir`
Packit 90a5c9
  APU_INCLUDES=`$apu_config --includes`
Packit 90a5c9
  APU_VERSION=`$apu_config --version`
Packit 90a5c9
  APU_CONFIG="$APU_BINDIR/apu-`echo ${APU_VERSION} | sed 's,\..*,,'`-config"
Packit 90a5c9
fi
Packit 90a5c9
Packit 90a5c9
dnl In case we picked up CC and CPP from APR, get that info into the
Packit 90a5c9
dnl config cache so that PCRE uses it.  Otherwise, CC and CPP used for
Packit 90a5c9
dnl PCRE and for our config tests will be whatever PCRE determines.
Packit 90a5c9
AC_PROG_CC
Packit 90a5c9
AC_PROG_CPP
Packit 90a5c9
Packit 90a5c9
dnl Try to get c99 support for variadic macros
Packit 90a5c9
ifdef([AC_PROG_CC_C99], [AC_PROG_CC_C99])
Packit 90a5c9
Packit 90a5c9
if test "x${cache_file}" = "x/dev/null"; then
Packit 90a5c9
  # Likewise, ensure that CC and CPP are passed through to the pcre
Packit 90a5c9
  # configure script iff caching is disabled (the autoconf 2.5x default).
Packit 90a5c9
  export CC; export CPP
Packit 90a5c9
fi
Packit 90a5c9
Packit 90a5c9
AC_ARG_WITH(pcre,
Packit 90a5c9
APACHE_HELP_STRING(--with-pcre=PATH,Use external PCRE library))
Packit 90a5c9
Packit 90a5c9
AC_PATH_PROG(PCRE_CONFIG, pcre-config, false)
Packit 90a5c9
if test -d "$with_pcre" && test -x "$with_pcre/bin/pcre-config"; then
Packit 90a5c9
   PCRE_CONFIG=$with_pcre/bin/pcre-config
Packit 90a5c9
elif test -x "$with_pcre"; then
Packit 90a5c9
   PCRE_CONFIG=$with_pcre
Packit 90a5c9
fi
Packit 90a5c9
Packit 90a5c9
if test "$PCRE_CONFIG" != "false"; then
Packit 90a5c9
  if $PCRE_CONFIG --version >/dev/null 2>&1; then :; else
Packit 90a5c9
    AC_MSG_ERROR([Did not find pcre-config script at $PCRE_CONFIG])
Packit 90a5c9
  fi
Packit 90a5c9
  case `$PCRE_CONFIG --version` in
Packit 90a5c9
  [[1-5].*])
Packit 90a5c9
    AC_MSG_ERROR([Need at least pcre version 6.0])
Packit 90a5c9
    ;;
Packit 90a5c9
  esac
Packit 90a5c9
  AC_MSG_NOTICE([Using external PCRE library from $PCRE_CONFIG])
Packit 90a5c9
  APR_ADDTO(PCRE_INCLUDES, [`$PCRE_CONFIG --cflags`])
Packit 90a5c9
  APR_ADDTO(PCRE_LIBS, [`$PCRE_CONFIG --libs`])
Packit 90a5c9
else
Packit 90a5c9
  AC_MSG_ERROR([pcre-config for libpcre not found. PCRE is required and available from http://pcre.org/])
Packit 90a5c9
fi
Packit 90a5c9
APACHE_SUBST(PCRE_LIBS)
Packit 90a5c9
Packit 90a5c9
AC_MSG_NOTICE([])
Packit 90a5c9
AC_MSG_NOTICE([Configuring Apache httpd...])
Packit 90a5c9
AC_MSG_NOTICE([])
Packit 90a5c9
Packit 90a5c9
dnl If the source dir is not equal to the build dir, 
Packit 90a5c9
dnl then we are running in VPATH mode.
Packit 90a5c9
Packit 90a5c9
APR_ADDTO(INCLUDES, [-I.])
Packit 90a5c9
Packit 90a5c9
if test "$abs_builddir" != "$abs_srcdir"; then
Packit 90a5c9
  APR_ADDTO(INCLUDES, [-I\$(top_builddir)/include])
Packit 90a5c9
fi
Packit 90a5c9
Packit 90a5c9
APR_ADDTO(INCLUDES, [-I\$(top_srcdir)/os/\$(OS_DIR) -I\$(top_srcdir)/include])
Packit 90a5c9
Packit 90a5c9
# apr/apr-util --includes may pick up system paths for dependent
Packit 90a5c9
# libraries, so ensure these are later in INCLUDES than local source
Packit 90a5c9
# directories.
Packit 90a5c9
APR_ADDTO(INCLUDES, $APR_INCLUDES)
Packit 90a5c9
APR_ADDTO(INCLUDES, $APU_INCLUDES)
Packit 90a5c9
Packit 90a5c9
dnl Add in path to PCRE includes
Packit 90a5c9
APR_ADDTO(INCLUDES, $PCRE_INCLUDES)
Packit 90a5c9
Packit 90a5c9
AC_MSG_NOTICE([])
Packit 90a5c9
AC_MSG_NOTICE([Applying OS-specific hints for httpd...])
Packit 90a5c9
AC_MSG_NOTICE([])
Packit 90a5c9
Packit 90a5c9
case $host in
Packit 90a5c9
  *os2*)
Packit 90a5c9
      # Use a custom made libtool replacement
Packit 90a5c9
      echo "using aplibtool"
Packit 90a5c9
      LIBTOOL="$abs_srcdir/srclib/apr/build/aplibtool"
Packit 90a5c9
      SH_LIBTOOL="$LIBTOOL --shared --export-all"
Packit 90a5c9
      SH_LIBS="\$(ALL_LIBS)"
Packit 90a5c9
      CORE_IMPLIB_FILE="ApacheCoreOS2.la"
Packit 90a5c9
      CORE_IMPLIB="$abs_srcdir/server/$CORE_IMPLIB_FILE"
Packit 90a5c9
      MK_IMPLIB="emximp"
Packit 90a5c9
      other_targets="$other_targets os2core"
Packit 90a5c9
      INSTALL_PROG_FLAGS="-e .exe"
Packit 90a5c9
      SHLTCFLAGS=""
Packit 90a5c9
      LTCFLAGS=""
Packit 90a5c9
      ;;
Packit 90a5c9
  *)
Packit 90a5c9
      if test "x$LTFLAGS" = "x"; then
Packit 90a5c9
          LTFLAGS='--silent'
Packit 90a5c9
      fi
Packit 90a5c9
      my_libtool=`$apr_config --apr-libtool`
Packit 90a5c9
      LIBTOOL="$my_libtool \$(LTFLAGS)"
Packit 90a5c9
      libtoolversion=`$my_libtool --version`
Packit 90a5c9
      case $libtoolversion in
Packit 90a5c9
          *1.[[45]]* | *[[2-9]].[[0-9]]*)
Packit 90a5c9
              SH_LIBTOOL='$(LIBTOOL)'
Packit 90a5c9
              SHLTCFLAGS="-prefer-pic"
Packit 90a5c9
              LTCFLAGS="-prefer-non-pic -static"
Packit 90a5c9
              ;;
Packit 90a5c9
          *)
Packit 90a5c9
              SH_LIBTOOL='$(SHELL) $(top_builddir)/shlibtool $(LTFLAGS)'
Packit 90a5c9
              SHLTCFLAGS=""
Packit 90a5c9
              LTCFLAGS=""
Packit 90a5c9
              ;;
Packit 90a5c9
      esac
Packit 90a5c9
      ;;
Packit 90a5c9
esac
Packit 90a5c9
APACHE_SUBST(SHLTCFLAGS)
Packit 90a5c9
APACHE_SUBST(LTCFLAGS)
Packit 90a5c9
Packit 90a5c9
case $host in
Packit 90a5c9
  *-apple-aux3*)
Packit 90a5c9
      APR_SETVAR(SINGLE_LISTEN_UNSERIALIZED_ACCEPT, [1])
Packit 90a5c9
      ;;
Packit 90a5c9
  *os2-emx*)
Packit 90a5c9
      APR_SETVAR(SINGLE_LISTEN_UNSERIALIZED_ACCEPT, [1])
Packit 90a5c9
      ;;
Packit 90a5c9
  *-linux-*)
Packit 90a5c9
      case `uname -r` in
Packit 90a5c9
        # Unserialized accept() was not recommended until Linux 2.2.
Packit 90a5c9
        [[01]].* | 2.[[01]]* )
Packit 90a5c9
            ;;
Packit 90a5c9
        * )
Packit 90a5c9
            APR_SETVAR(SINGLE_LISTEN_UNSERIALIZED_ACCEPT, [1])
Packit 90a5c9
            ;;
Packit 90a5c9
      esac
Packit 90a5c9
      ;;
Packit 90a5c9
  *486-*-bsdi* | *-netbsd* | *-freebsd* | *-apple-darwin* | *-dec-osf* | *-qnx)
Packit 90a5c9
      APR_SETVAR(SINGLE_LISTEN_UNSERIALIZED_ACCEPT, [1])
Packit 90a5c9
      ;;
Packit 90a5c9
  *-solaris2*)
Packit 90a5c9
      dnl This is a hack -- we should be using AC_TRY_RUN instead
Packit 90a5c9
      ap_platform_runtime_link_flag="-R"
Packit 90a5c9
      dnl solaris 8 and above don't have a thundering herd
Packit 90a5c9
      dnl not sure about rev's before this one.
Packit 90a5c9
      case `uname -r` in
Packit 90a5c9
        5.[[567]]*)
Packit 90a5c9
            ;;
Packit 90a5c9
        * )
Packit 90a5c9
            APR_SETVAR(SINGLE_LISTEN_UNSERIALIZED_ACCEPT, [1])
Packit 90a5c9
            ;;
Packit 90a5c9
      esac
Packit 90a5c9
      ;;
Packit 90a5c9
  *cygwin*)
Packit 90a5c9
      APR_SETVAR(SINGLE_LISTEN_UNSERIALIZED_ACCEPT, [1])
Packit 90a5c9
      ;;
Packit 90a5c9
  *mingw32*)
Packit 90a5c9
      APR_ADDTO(INTERNAL_CPPFLAGS, [-DAP_DECLARE_EXPORT])
Packit 90a5c9
      APR_SETIFNULL(ac_cv_func_times, [no])
Packit 90a5c9
      APR_SETIFNULL(ac_cv_func_getpwnam, [no])
Packit 90a5c9
      APR_SETIFNULL(ac_cv_func_getgrnam, [no])
Packit 90a5c9
      ;;
Packit 90a5c9
  *aix*)
Packit 90a5c9
      aixver=`echo $host | sed 's/^[[^0-9]]*//' | sed 's/\.//g'`
Packit 90a5c9
      if test $aixver -ge 4320; then
Packit 90a5c9
        APR_SETVAR(SINGLE_LISTEN_UNSERIALIZED_ACCEPT, [1])
Packit 90a5c9
      fi
Packit 90a5c9
      ;;
Packit 90a5c9
  *os390*)
Packit 90a5c9
      APR_SETVAR(SINGLE_LISTEN_UNSERIALIZED_ACCEPT, [1])
Packit 90a5c9
      ;;
Packit 90a5c9
esac
Packit 90a5c9
Packit 90a5c9
APR_SETVAR(AP_NONBLOCK_WHEN_MULTI_LISTEN, [1])
Packit 90a5c9
Packit 90a5c9
dnl
Packit 90a5c9
dnl Process command line arguments. This is done early in the process so the
Packit 90a5c9
dnl user can get feedback quickly in case of an error.
Packit 90a5c9
dnl
Packit 90a5c9
dnl ### need to move some of the arguments "up here"
Packit 90a5c9
Packit 90a5c9
dnl ## Check for programs
Packit 90a5c9
Packit 90a5c9
AC_PATH_PROG(RM, rm)
Packit 90a5c9
AC_PATH_PROG(PKGCONFIG, pkg-config)
Packit 90a5c9
AC_PATH_PROG(RSYNC, rsync)
Packit 90a5c9
AC_PROG_AWK
Packit 90a5c9
AC_PROG_LN_S
Packit 90a5c9
AC_CHECK_TOOL(RANLIB, ranlib, true)
Packit 90a5c9
dnl AC_PATH_PROG(PERL_PATH, perl)
Packit 90a5c9
AC_CHECK_PROGS(LYNX_PATH,[lynx links elinks], [lynx])
Packit 90a5c9
Packit 90a5c9
# Hard-coded install programs
Packit 90a5c9
MKINSTALLDIRS="\$(abs_srcdir)/build/mkdir.sh"
Packit 90a5c9
INSTALL="\$(LIBTOOL) --mode=install \$(abs_srcdir)/build/install.sh -c"
Packit 90a5c9
APACHE_SUBST(MKINSTALLDIRS)
Packit 90a5c9
APACHE_SUBST(INSTALL)
Packit 90a5c9
Packit 90a5c9
dnl Various OS checks that apparently set required flags
Packit 90a5c9
ifdef([AC_USE_SYSTEM_EXTENSIONS], [
Packit 90a5c9
AC_USE_SYSTEM_EXTENSIONS
Packit 90a5c9
], [
Packit 90a5c9
AC_AIX
Packit 90a5c9
AC_MINIX
Packit 90a5c9
])
Packit 90a5c9
Packit 90a5c9
AC_ISC_POSIX
Packit 90a5c9
Packit 90a5c9
# Ensure that satisfactory versions of apr and apr-util are 
Packit 90a5c9
# found if external copies are configured.
Packit 90a5c9
if test "${apr_found}" = "yes"; then
Packit 90a5c9
  # Require at least APR 1.3.x otherwise fail
Packit 90a5c9
  APACHE_CHECK_APxVER([apr], 1, 3)
Packit 90a5c9
fi
Packit 90a5c9
Packit 90a5c9
if test "${apu_found}" = "yes"; then
Packit 90a5c9
  # Require at least APR-util 1.3.x otherwise fail
Packit 90a5c9
  if test "${apr_found}" = "yes"; then
Packit 90a5c9
    # we need to add the APR includes to CPPFLAGS
Packit 90a5c9
    apu_ckver_CPPFLAGS="$CPPFLAGS"
Packit 90a5c9
    CPPFLAGS="$CPPFLAGS `$apr_config --includes`"
Packit 90a5c9
    APACHE_CHECK_APxVER([apu], 1, 3)
Packit 90a5c9
    CPPFLAGS="$apu_ckver_CPPFLAGS"
Packit 90a5c9
  else
Packit 90a5c9
    APACHE_CHECK_APxVER([apu], 1, 3)
Packit 90a5c9
  fi
Packit 90a5c9
fi
Packit 90a5c9
Packit 90a5c9
dnl Check for what we can generate dependency files with
Packit 90a5c9
APR_CHECK_DEPEND
Packit 90a5c9
Packit 90a5c9
dnl ## Check for libraries
Packit 90a5c9
Packit 90a5c9
dnl ## Check for header files
Packit 90a5c9
Packit 90a5c9
dnl I think these are just used all over the place, so just check for
Packit 90a5c9
dnl them at the base of the tree. If some are specific to a single
Packit 90a5c9
dnl directory, they should be moved (Comment #Spoon)
Packit 90a5c9
Packit 90a5c9
dnl Regarding standard header files: AC_HEADER_STDC doesn't set symbols
Packit 90a5c9
dnl HAVE_STRING_H, HAVE_STDLIB_H, etc., so those are checked for
Packit 90a5c9
dnl explicitly so that the normal HAVE_xxx_H symbol is defined.
Packit 90a5c9
Packit 90a5c9
AC_HEADER_STDC
Packit 90a5c9
AC_CHECK_HEADERS( \
Packit 90a5c9
string.h \
Packit 90a5c9
limits.h \
Packit 90a5c9
unistd.h \
Packit 90a5c9
sys/socket.h \
Packit 90a5c9
pwd.h \
Packit 90a5c9
grp.h \
Packit 90a5c9
strings.h \
Packit 90a5c9
sys/prctl.h \
Packit 90a5c9
sys/processor.h \
Packit 90a5c9
sys/sem.h \
Packit 90a5c9
sys/sdt.h \
Packit 90a5c9
sys/loadavg.h
Packit 90a5c9
)
Packit 90a5c9
AC_HEADER_SYS_WAIT
Packit 90a5c9
Packit 90a5c9
dnl ## Check for typedefs, structures, and compiler characteristics.
Packit 90a5c9
Packit 90a5c9
AC_C_CONST
Packit 90a5c9
Packit 90a5c9
dnl ## Check for library functions
Packit 90a5c9
dnl ## sqrt() only needed in support/ab.c
Packit 90a5c9
saved_LIBS="$LIBS"
Packit 90a5c9
LIBS=""
Packit 90a5c9
AC_SEARCH_LIBS(sqrt, m)
Packit 90a5c9
MATH_LIBS="$LIBS"
Packit 90a5c9
APACHE_SUBST(MATH_LIBS)
Packit 90a5c9
LIBS="$saved_LIBS"
Packit 90a5c9
Packit 90a5c9
saved_LIBS="$LIBS"
Packit 90a5c9
LIBS=""
Packit 90a5c9
AC_SEARCH_LIBS(crypt, crypt)
Packit 90a5c9
CRYPT_LIBS="$LIBS"
Packit 90a5c9
APACHE_SUBST(CRYPT_LIBS)
Packit 90a5c9
LIBS="$saved_LIBS"
Packit 90a5c9
Packit 90a5c9
dnl See Comment #Spoon
Packit 90a5c9
Packit 90a5c9
AC_CHECK_FUNCS( \
Packit 90a5c9
getpwnam \
Packit 90a5c9
getgrnam \
Packit 90a5c9
initgroups \
Packit 90a5c9
bindprocessor \
Packit 90a5c9
prctl \
Packit 90a5c9
timegm \
Packit 90a5c9
getpgid \
Packit 90a5c9
fopen64 \
Packit 90a5c9
getloadavg
Packit 90a5c9
)
Packit 90a5c9
Packit 90a5c9
dnl confirm that a void pointer is large enough to store a long integer
Packit 90a5c9
APACHE_CHECK_VOID_PTR_LEN
Packit 90a5c9
Packit 90a5c9
AC_CACHE_CHECK([for gettid()], ac_cv_gettid,
Packit 90a5c9
[AC_TRY_RUN(#define _GNU_SOURCE
Packit 90a5c9
#include <unistd.h>
Packit 90a5c9
#include <sys/syscall.h>
Packit 90a5c9
#include <sys/types.h>
Packit 90a5c9
int main(int argc, char **argv) {
Packit 90a5c9
pid_t t = syscall(SYS_gettid); return t == -1 ? 1 : 0; },
Packit 90a5c9
[ac_cv_gettid=yes], [ac_cv_gettid=no], [ac_cv_gettid=no])])
Packit 90a5c9
if test "$ac_cv_gettid" = "yes"; then
Packit 90a5c9
    AC_DEFINE(HAVE_GETTID, 1, [Define if you have gettid()])
Packit 90a5c9
fi
Packit 90a5c9
Packit 90a5c9
dnl ## Check for the tm_gmtoff field in struct tm to get the timezone diffs
Packit 90a5c9
AC_CACHE_CHECK([for tm_gmtoff in struct tm], ac_cv_struct_tm_gmtoff,
Packit 90a5c9
[AC_TRY_COMPILE([#include <sys/types.h>
Packit 90a5c9
#include <time.h>], [struct tm tm; tm.tm_gmtoff;],
Packit 90a5c9
  ac_cv_struct_tm_gmtoff=yes, ac_cv_struct_tm_gmtoff=no)])
Packit 90a5c9
if test "$ac_cv_struct_tm_gmtoff" = "yes"; then
Packit 90a5c9
    AC_DEFINE(HAVE_GMTOFF, 1, [Define if struct tm has a tm_gmtoff field])
Packit 90a5c9
fi
Packit 90a5c9
Packit 90a5c9
dnl ## Set up any appropriate OS-specific environment variables for apachectl
Packit 90a5c9
Packit 90a5c9
case $host in
Packit 90a5c9
    *aix*)
Packit 90a5c9
        # for 32-bit builds, increase MAXDATA to allow lots of threads
Packit 90a5c9
        if test x$OBJECT_MODE != x64; then
Packit 90a5c9
            OS_SPECIFIC_VARS="LDR_CNTRL=\"MAXDATA=0x80000000\" ; export LDR_CNTRL ;"
Packit 90a5c9
        fi
Packit 90a5c9
        OS_SPECIFIC_VARS="$OS_SPECIFIC_VARS AIXTHREAD_SCOPE=S ; export AIXTHREAD_SCOPE"
Packit 90a5c9
        OS_SPECIFIC_VARS="$OS_SPECIFIC_VARS ; AIXTHREAD_MUTEX_DEBUG=OFF ; export AIXTHREAD_MUTEX_DEBUG"
Packit 90a5c9
        OS_SPECIFIC_VARS="$OS_SPECIFIC_VARS ; AIXTHREAD_RWLOCK_DEBUG=OFF ; export AIXTHREAD_RWLOCK_DEBUG"
Packit 90a5c9
        OS_SPECIFIC_VARS="$OS_SPECIFIC_VARS ; AIXTHREAD_COND_DEBUG=OFF ; export AIXTHREAD_COND_DEBUG"
Packit 90a5c9
        OS_SPECIFIC_VARS="$OS_SPECIFIC_VARS ; SPINLOOPTIME=1000 ; export SPINLOOPTIME"
Packit 90a5c9
        OS_SPECIFIC_VARS="$OS_SPECIFIC_VARS ; YIELDLOOPTIME=8 ; export YIELDLOOPTIME"
Packit 90a5c9
        OS_SPECIFIC_VARS="$OS_SPECIFIC_VARS ; MALLOCMULTIHEAP=considersize,heaps:8 ; export MALLOCMULTIHEAP"
Packit 90a5c9
        ;;
Packit 90a5c9
    *os390*)
Packit 90a5c9
        OS_SPECIFIC_VARS="export _CEE_RUNOPTS=\"STACK(,,ANY)\" ; export _EDC_ADD_ERRNO2=1"
Packit 90a5c9
        ;;
Packit 90a5c9
    *)
Packit 90a5c9
        OS_SPECIFIC_VARS=""
Packit 90a5c9
esac
Packit 90a5c9
      
Packit 90a5c9
AC_ARG_WITH(port,APACHE_HELP_STRING(--with-port=PORT,Port on which to listen (default is 80)),
Packit 90a5c9
        [if test "$withval" = "yes"; then AC_MSG_ERROR('option --with-port requires a value (the TCP port number)'); else PORT="$withval"; fi],
Packit 90a5c9
	[PORT=80])
Packit 90a5c9
Packit 90a5c9
AC_ARG_WITH(sslport,APACHE_HELP_STRING(--with-sslport=SSLPORT,Port on which to securelisten (default is 443)),
Packit 90a5c9
        [if test "$withval" = "yes"; then AC_MSG_ERROR('option --with-sslport requires a value (the SSL TCP port number)'); else SSLPORT="$withval"; fi],
Packit 90a5c9
	[SSLPORT=443])
Packit 90a5c9
Packit 90a5c9
DTRACE=true
Packit 90a5c9
AC_ARG_ENABLE(dtrace,APACHE_HELP_STRING(--enable-dtrace,Enable DTrace probes),
Packit 90a5c9
[
Packit 90a5c9
  enable_dtrace=$enableval
Packit 90a5c9
  if test "$enableval" = "yes"; then
Packit 90a5c9
    APR_ADDTO(CPPFLAGS, -DAPR_DTRACE_PROVIDER)
Packit 90a5c9
    AC_MSG_ERROR('DTrace Support in the build system is not complete. Patches Welcome!')
Packit 90a5c9
  fi
Packit 90a5c9
],
Packit 90a5c9
[
Packit 90a5c9
  enable_dtrace=no
Packit 90a5c9
])
Packit 90a5c9
Packit 90a5c9
dnl Disabled dtrace build for now.
Packit 90a5c9
enable_dtrace=no
Packit 90a5c9
Packit 90a5c9
case $host in
Packit 90a5c9
  *-solaris2*)
Packit 90a5c9
    if test $enable_dtrace = "yes" -a "$ac_cv_header_sys_sdt_h" = "yes"; then
Packit 90a5c9
        AC_DEFINE(AP_ENABLE_DTRACE, 1,
Packit 90a5c9
                  [Enable DTrace probes])
Packit 90a5c9
        DTRACE="/usr/sbin/dtrace $DTRACEFLAGS"
Packit 90a5c9
        test -f include/apache_probes.h || $DTRACE -h -s apache_probes.d -o include/apache_probes.h
Packit 90a5c9
    fi
Packit 90a5c9
    ;;
Packit 90a5c9
esac
Packit 90a5c9
Packit 90a5c9
APACHE_SUBST(DTRACE)
Packit 90a5c9
Packit 90a5c9
AC_ARG_ENABLE(hook-probes,APACHE_HELP_STRING(--enable-hook-probes,Enable APR hook probes),
Packit 90a5c9
[
Packit 90a5c9
    if test "$enableval" = "yes"; then
Packit 90a5c9
        AC_DEFINE(AP_HOOK_PROBES_ENABLED, 1,
Packit 90a5c9
                  [Enable the APR hook probes capability, reading from ap_hook_probes.h])
Packit 90a5c9
        APR_ADDTO(INTERNAL_CPPFLAGS, -DAP_HOOK_PROBES_ENABLED)
Packit 90a5c9
    fi
Packit 90a5c9
])dnl
Packit 90a5c9
Packit 90a5c9
AC_ARG_ENABLE(exception-hook,APACHE_HELP_STRING(--enable-exception-hook,Enable fatal exception hook),
Packit 90a5c9
[
Packit 90a5c9
    if test "$enableval" = "yes"; then
Packit 90a5c9
        AC_DEFINE(AP_ENABLE_EXCEPTION_HOOK, 1,
Packit 90a5c9
                  [Allow modules to run hook after a fatal exception])
Packit 90a5c9
    fi
Packit 90a5c9
])dnl
Packit 90a5c9
Packit 90a5c9
AC_ARG_ENABLE(load-all-modules,APACHE_HELP_STRING(--enable-load-all-modules,Load all modules),
Packit 90a5c9
[
Packit 90a5c9
  LOAD_ALL_MODULES=$enableval
Packit 90a5c9
  AC_MSG_NOTICE([Setting "LOAD_ALL_MODULES" to $LOAD_ALL_MODULES])
Packit 90a5c9
],
Packit 90a5c9
[
Packit 90a5c9
  LOAD_ALL_MODULES="no"
Packit 90a5c9
])
Packit 90a5c9
Packit 90a5c9
AC_ARG_ENABLE(maintainer-mode,APACHE_HELP_STRING(--enable-maintainer-mode,Turn on debugging and compile time warnings and load all compiled modules),
Packit 90a5c9
[
Packit 90a5c9
  if test "$enableval" = "yes"; then
Packit 90a5c9
    APR_ADDTO(NOTEST_CPPFLAGS, -DAP_DEBUG)
Packit 90a5c9
    if test "$GCC" = "yes"; then
Packit 90a5c9
      APACHE_ADD_GCC_CFLAG([-std=c89])
Packit 90a5c9
      APACHE_ADD_GCC_CFLAG([-Werror])
Packit 90a5c9
      APACHE_ADD_GCC_CFLAG([-Wall])
Packit 90a5c9
      APACHE_ADD_GCC_CFLAG([-Wstrict-prototypes])
Packit 90a5c9
      APACHE_ADD_GCC_CFLAG([-Wmissing-prototypes])
Packit 90a5c9
      APACHE_ADD_GCC_CFLAG([-Wmissing-declarations])
Packit 90a5c9
      APACHE_ADD_GCC_CFLAG([-Wdeclaration-after-statement])
Packit 90a5c9
      APACHE_ADD_GCC_CFLAG([-Wpointer-arith])
Packit 90a5c9
      APACHE_ADD_GCC_CFLAG([-Wformat])
Packit 90a5c9
      APACHE_ADD_GCC_CFLAG([-Wformat-security])
Packit 90a5c9
      APACHE_ADD_GCC_CFLAG([-Wunused])
Packit 90a5c9
    elif test "$AIX_XLC" = "yes"; then
Packit 90a5c9
      APR_ADDTO(NOTEST_CFLAGS,-qfullpath -qinitauto=FE -qcheck=all -qinfo=pro)
Packit 90a5c9
    fi
Packit 90a5c9
    if test "x$enable_load_all_modules" = "x"; then
Packit 90a5c9
      LOAD_ALL_MODULES=yes
Packit 90a5c9
      AC_MSG_NOTICE([Maintainer mode setting "LOAD_ALL_MODULES" to $LOAD_ALL_MODULES])
Packit 90a5c9
    fi
Packit 90a5c9
    if test "x$enable_bucketeer" = "x"; then
Packit 90a5c9
      enable_bucketeer=yes
Packit 90a5c9
      AC_MSG_NOTICE([Maintainer mode setting "enable_bucketeer" to yes])
Packit 90a5c9
    fi
Packit 90a5c9
  fi
Packit 90a5c9
])dnl
Packit 90a5c9
Packit 90a5c9
AC_ARG_ENABLE(debugger-mode,APACHE_HELP_STRING(--enable-debugger-mode,Turn on debugging and compile time warnings and turn off optimization),
Packit 90a5c9
[
Packit 90a5c9
  if test "$enableval" = "yes"; then
Packit 90a5c9
    APR_ADDTO(NOTEST_CPPFLAGS, -DAP_DEBUG)
Packit 90a5c9
    if test "$GCC" = "yes"; then
Packit 90a5c9
      APACHE_ADD_GCC_CFLAG([-O0])
Packit 90a5c9
      APACHE_ADD_GCC_CFLAG([-Wall])
Packit 90a5c9
      APACHE_ADD_GCC_CFLAG([-Wstrict-prototypes])
Packit 90a5c9
      APACHE_ADD_GCC_CFLAG([-Wmissing-prototypes])
Packit 90a5c9
      APACHE_ADD_GCC_CFLAG([-Wmissing-declarations])
Packit 90a5c9
      APACHE_ADD_GCC_CFLAG([-Wdeclaration-after-statement])
Packit 90a5c9
      APACHE_ADD_GCC_CFLAG([-Werror=declaration-after-statement])
Packit 90a5c9
      APACHE_ADD_GCC_CFLAG([-Wpointer-arith])
Packit 90a5c9
      APACHE_ADD_GCC_CFLAG([-Wformat])
Packit 90a5c9
      APACHE_ADD_GCC_CFLAG([-Wformat-security])
Packit 90a5c9
      APACHE_ADD_GCC_CFLAG([-Werror=format-security])
Packit 90a5c9
    elif test "$AIX_XLC" = "yes"; then
Packit 90a5c9
      APR_ADDTO(NOTEST_CFLAGS,-qfullpath -qinitauto=FE -qcheck=all -qinfo=pro)
Packit 90a5c9
    fi
Packit 90a5c9
  fi
Packit 90a5c9
])dnl
Packit 90a5c9
Packit 90a5c9
dnl Conditionally enable PIE support for GNU toolchains.
Packit 90a5c9
AC_ARG_ENABLE(pie,APACHE_HELP_STRING(--enable-pie,Build httpd as a Position Independent Executable))
Packit 90a5c9
if test "$enable_pie" = "yes"; then
Packit 90a5c9
   AC_CACHE_CHECK([whether $CC accepts PIE flags], [ap_cv_cc_pie], [
Packit 90a5c9
     save_CFLAGS=$CFLAGS
Packit 90a5c9
     save_LDFLAGS=$LDFLAGS
Packit 90a5c9
     CFLAGS="$CFLAGS -fPIE"
Packit 90a5c9
     LDFLAGS="$LDFLAGS -pie"
Packit 90a5c9
     AC_TRY_RUN([static int foo[30000]; int main () { return 0; }],
Packit 90a5c9
      [ap_cv_cc_pie=yes], [ap_cv_cc_pie=no], [ap_cv_cc_pie=yes])
Packit 90a5c9
     CFLAGS=$save_CFLAGS
Packit 90a5c9
     LDFLAGS=$save_LDFLAGS
Packit 90a5c9
   ])
Packit 90a5c9
   if test "$ap_cv_cc_pie" = "yes"; then
Packit 90a5c9
     PICFLAGS="-fPIE"
Packit 90a5c9
     PILDFLAGS="-pie"
Packit 90a5c9
   else
Packit 90a5c9
     AC_ERROR([--enable-pie requested but $CC failed using PIE flags])
Packit 90a5c9
   fi
Packit 90a5c9
fi
Packit 90a5c9
APACHE_SUBST(PICFLAGS)
Packit 90a5c9
APACHE_SUBST(PILDFLAGS)
Packit 90a5c9
Packit 90a5c9
prefix="$orig_prefix"
Packit 90a5c9
APACHE_ENABLE_MODULES
Packit 90a5c9
Packit 90a5c9
dnl reading config stubs
Packit 90a5c9
esyscmd(./build/config-stubs .)
Packit 90a5c9
Packit 90a5c9
APACHE_SUBST(progname)
Packit 90a5c9
APACHE_SUBST(OS)
Packit 90a5c9
APACHE_SUBST(OS_DIR)
Packit 90a5c9
APACHE_SUBST(BUILTIN_LIBS)
Packit 90a5c9
APACHE_SUBST(SHLIBPATH_VAR)
Packit 90a5c9
APACHE_SUBST(OS_SPECIFIC_VARS)
Packit 90a5c9
Packit 90a5c9
PRE_SHARED_CMDS='echo ""'
Packit 90a5c9
POST_SHARED_CMDS='echo ""'
Packit 90a5c9
Packit 90a5c9
dnl apache_need_shared tells us if Apache modules are being built as DSOs
Packit 90a5c9
Packit 90a5c9
if test "$apache_need_shared" = "yes"; then
Packit 90a5c9
  if test -f $ac_aux_dir/ltconfig; then
Packit 90a5c9
    $SHELL $ac_aux_dir/ltconfig --output=shlibtool --disable-static --srcdir=$ac_aux_dir --cache-file=./config.cache $ac_aux_dir/ltmain.sh
Packit 90a5c9
  fi
Packit 90a5c9
  shared_build="shared-build"
Packit 90a5c9
fi
Packit 90a5c9
Packit 90a5c9
dnl enable_so tells us if *any* modules can be built as DSOs
Packit 90a5c9
Packit 90a5c9
if test "$enable_so" = "yes" -o "$enable_so" = "static"; then
Packit 90a5c9
  case $host in
Packit 90a5c9
    *-ibm-aix*)
Packit 90a5c9
      APR_ADDTO(HTTPD_LDFLAGS, [-Wl,-uXML_Parse -Wl,-bE:$abs_builddir/server/httpd.exp])
Packit 90a5c9
      APR_ADDTO(SH_LDFLAGS, [\$(EXTRA_LDFLAGS) \$(EXTRA_LIBS)])
Packit 90a5c9
      APR_ADDTO(UTIL_LDFLAGS, [-Wl,-uXML_Parse])
Packit 90a5c9
      ;;
Packit 90a5c9
    *os390)
Packit 90a5c9
      APR_ADDTO(HTTPD_LDFLAGS, [--main=$abs_srcdir/server/main.o --core-dll=$abs_srcdir/apachecore.dll])
Packit 90a5c9
      APR_ADDTO(SH_LDFLAGS, [--core-dll=$abs_srcdir/apachecore.dll])
Packit 90a5c9
  esac
Packit 90a5c9
  MOD_SO_ENABLED=yes
Packit 90a5c9
fi
Packit 90a5c9
AC_SUBST(MOD_SO_ENABLED)
Packit 90a5c9
Packit 90a5c9
APACHE_SUBST(PRE_SHARED_CMDS)
Packit 90a5c9
APACHE_SUBST(POST_SHARED_CMDS)
Packit 90a5c9
APACHE_SUBST(shared_build)
Packit 90a5c9
Packit 90a5c9
AC_ARG_WITH(program-name,
Packit 90a5c9
APACHE_HELP_STRING(--with-program-name,alternate executable name),[
Packit 90a5c9
  progname="$withval" ], [
Packit 90a5c9
  progname="httpd"] )
Packit 90a5c9
Packit 90a5c9
# SuExec parameters
Packit 90a5c9
AC_ARG_WITH(suexec-bin,
Packit 90a5c9
APACHE_HELP_STRING(--with-suexec-bin,Path to suexec binary),[
Packit 90a5c9
  AC_DEFINE_UNQUOTED(SUEXEC_BIN, "$withval", [Path to suexec binary] )
Packit 90a5c9
] )
Packit 90a5c9
Packit 90a5c9
AC_ARG_WITH(suexec-caller,
Packit 90a5c9
APACHE_HELP_STRING(--with-suexec-caller,User allowed to call SuExec),[
Packit 90a5c9
  AC_DEFINE_UNQUOTED(AP_HTTPD_USER, "$withval", [User allowed to call SuExec] ) ] )
Packit 90a5c9
Packit 90a5c9
AC_ARG_WITH(suexec-userdir,
Packit 90a5c9
APACHE_HELP_STRING(--with-suexec-userdir,User subdirectory),[
Packit 90a5c9
  AC_DEFINE_UNQUOTED(AP_USERDIR_SUFFIX, "$withval", [User subdirectory] ) ] )
Packit 90a5c9
Packit 90a5c9
AC_ARG_WITH(suexec-docroot,
Packit 90a5c9
APACHE_HELP_STRING(--with-suexec-docroot,SuExec root directory),[
Packit 90a5c9
  AC_DEFINE_UNQUOTED(AP_DOC_ROOT, "$withval", [SuExec root directory] ) ] )
Packit 90a5c9
Packit 90a5c9
AC_ARG_WITH(suexec-uidmin,
Packit 90a5c9
APACHE_HELP_STRING(--with-suexec-uidmin,Minimal allowed UID),[
Packit 90a5c9
  AC_DEFINE_UNQUOTED(AP_UID_MIN, $withval, [Minimum allowed UID] ) ] )
Packit 90a5c9
Packit 90a5c9
AC_ARG_WITH(suexec-gidmin,
Packit 90a5c9
APACHE_HELP_STRING(--with-suexec-gidmin,Minimal allowed GID),[
Packit 90a5c9
  AC_DEFINE_UNQUOTED(AP_GID_MIN, $withval, [Minimum allowed GID] ) ] )
Packit 90a5c9
Packit 90a5c9
AC_ARG_WITH(suexec-logfile,
Packit 90a5c9
APACHE_HELP_STRING(--with-suexec-logfile,Set the logfile),[
Packit 90a5c9
  if test "x$withval" = "xyes"; then
Packit 90a5c9
    AC_MSG_ERROR([log filename required for --with-suexec-logfile option])
Packit 90a5c9
  elif test "x$withval" != "xno"; then
Packit 90a5c9
    AC_DEFINE_UNQUOTED(AP_LOG_EXEC, "$withval", [SuExec log file])
Packit 90a5c9
  fi
Packit 90a5c9
])
Packit 90a5c9
Packit 90a5c9
AC_ARG_WITH(suexec-syslog,
Packit 90a5c9
APACHE_HELP_STRING(--with-suexec-syslog,Use syslog for suexec logging),[
Packit 90a5c9
  if test $withval = "yes"; then
Packit 90a5c9
    if test "x${with_suexec_logfile}" != "xno"; then
Packit 90a5c9
      AC_MSG_NOTICE([hint: use "--without-suexec-logfile --with-suexec-syslog"])
Packit 90a5c9
      AC_MSG_ERROR([suexec does not support both logging to file and syslog])
Packit 90a5c9
    fi
Packit 90a5c9
    AC_CHECK_FUNCS([vsyslog], [], [
Packit 90a5c9
       AC_MSG_ERROR([cannot support syslog from suexec without vsyslog()])])
Packit 90a5c9
    AC_DEFINE(AP_LOG_SYSLOG, 1, [SuExec log to syslog])
Packit 90a5c9
  fi    
Packit 90a5c9
])
Packit 90a5c9
Packit 90a5c9
Packit 90a5c9
AC_ARG_WITH(suexec-safepath,
Packit 90a5c9
APACHE_HELP_STRING(--with-suexec-safepath,Set the safepath),[
Packit 90a5c9
  AC_DEFINE_UNQUOTED(AP_SAFE_PATH, "$withval", [safe shell path for SuExec] ) ] )
Packit 90a5c9
Packit 90a5c9
AC_ARG_WITH(suexec-umask,
Packit 90a5c9
APACHE_HELP_STRING(--with-suexec-umask,umask for suexec'd process),[
Packit 90a5c9
  AC_DEFINE_UNQUOTED(AP_SUEXEC_UMASK, 0$withval, [umask for suexec'd process] ) ] )
Packit 90a5c9
Packit 90a5c9
INSTALL_SUEXEC=setuid
Packit 90a5c9
AC_ARG_ENABLE([suexec-capabilities], 
Packit 90a5c9
APACHE_HELP_STRING(--enable-suexec-capabilities,Use Linux capability bits not setuid root suexec), [
Packit 90a5c9
INSTALL_SUEXEC=caps
Packit 90a5c9
AC_DEFINE(AP_SUEXEC_CAPABILITIES, 1, 
Packit 90a5c9
          [Enable if suexec is installed with Linux capabilities, not setuid])
Packit 90a5c9
])
Packit 90a5c9
APACHE_SUBST(INSTALL_SUEXEC)
Packit 90a5c9
Packit 90a5c9
dnl APR should go after the other libs, so the right symbols can be picked up
Packit 90a5c9
if test x${apu_found} != xobsolete; then
Packit 90a5c9
  AP_LIBS="$AP_LIBS `$apu_config --avoid-ldap --link-libtool --libs`"
Packit 90a5c9
fi
Packit 90a5c9
AP_LIBS="$AP_LIBS `$apr_config --link-libtool --libs`" 
Packit 90a5c9
APACHE_SUBST(AP_LIBS)
Packit 90a5c9
APACHE_SUBST(AP_BUILD_SRCLIB_DIRS)
Packit 90a5c9
APACHE_SUBST(AP_CLEAN_SRCLIB_DIRS)
Packit 90a5c9
Packit 90a5c9
AC_DEFINE(AP_USING_AUTOCONF, 1,
Packit 90a5c9
		[Using autoconf to configure Apache])
Packit 90a5c9
Packit 90a5c9
if test "$SINGLE_LISTEN_UNSERIALIZED_ACCEPT" = "1"; then
Packit 90a5c9
    AC_DEFINE(SINGLE_LISTEN_UNSERIALIZED_ACCEPT, 1, 
Packit 90a5c9
              [This platform doesn't suffer from the thundering herd problem])
Packit 90a5c9
fi
Packit 90a5c9
Packit 90a5c9
if test "$AP_NONBLOCK_WHEN_MULTI_LISTEN" = "1"; then
Packit 90a5c9
    AC_DEFINE(AP_NONBLOCK_WHEN_MULTI_LISTEN, 1, 
Packit 90a5c9
              [Listening sockets are non-blocking when there are more than 1])
Packit 90a5c9
fi
Packit 90a5c9
Packit 90a5c9
APR_CHECK_APR_DEFINE(APR_HAVE_IPV6)
Packit 90a5c9
Packit 90a5c9
AC_ARG_ENABLE(v4-mapped,APACHE_HELP_STRING(--enable-v4-mapped,Allow IPv6 sockets to handle IPv4 connections),
Packit 90a5c9
[ 
Packit 90a5c9
  v4mapped=$enableval
Packit 90a5c9
],
Packit 90a5c9
[
Packit 90a5c9
    case $host in
Packit 90a5c9
    *freebsd[[1234]].*)
Packit 90a5c9
        v4mapped=yes
Packit 90a5c9
        ;;
Packit 90a5c9
    *freebsd*|*netbsd*|*openbsd*)
Packit 90a5c9
        v4mapped=no
Packit 90a5c9
        ;;
Packit 90a5c9
    *)
Packit 90a5c9
        v4mapped=yes
Packit 90a5c9
        ;;
Packit 90a5c9
    esac
Packit 90a5c9
    if ap_mpm_is_enabled winnt; then
Packit 90a5c9
        dnl WinNT MPM doesn't support this.
Packit 90a5c9
        v4mapped=no
Packit 90a5c9
    fi
Packit 90a5c9
])
Packit 90a5c9
Packit 90a5c9
if test $v4mapped = "yes" -a $ac_cv_define_APR_HAVE_IPV6 = "yes"; then
Packit 90a5c9
    AC_DEFINE(AP_ENABLE_V4_MAPPED, 1,
Packit 90a5c9
              [Allow IPv4 connections on IPv6 listening sockets])
Packit 90a5c9
fi
Packit 90a5c9
Packit 90a5c9
APACHE_FAST_OUTPUT(Makefile modules/Makefile srclib/Makefile) 
Packit 90a5c9
APACHE_FAST_OUTPUT(os/Makefile server/Makefile)
Packit 90a5c9
APACHE_FAST_OUTPUT(support/Makefile)
Packit 90a5c9
Packit 90a5c9
if test -d ./test; then
Packit 90a5c9
    APACHE_FAST_OUTPUT(test/Makefile)
Packit 90a5c9
fi
Packit 90a5c9
Packit 90a5c9
dnl ## Finalize the variables
Packit 90a5c9
AC_MSG_NOTICE([])
Packit 90a5c9
AC_MSG_NOTICE([Restore user-defined environment settings...])
Packit 90a5c9
AC_MSG_NOTICE([])
Packit 90a5c9
Packit 90a5c9
APACHE_CONF_SEL_CC=${CC}
Packit 90a5c9
APACHE_CONF_SEL_CFLAGS="${CFLAGS} ${EXTRA_CFLAGS} ${NOTEST_CFLAGS}"
Packit 90a5c9
APACHE_CONF_SEL_CPPFLAGS="${CPPFLAGS} ${EXTRA_CPPFLAGS} ${NOTEST_CPPFLAGS}"
Packit 90a5c9
APACHE_CONF_SEL_LDFLAGS="${LDFLAGS} ${EXTRA_LDFLAGS} ${NOTEST_LDFLAGS}"
Packit 90a5c9
APACHE_CONF_SEL_LIBS="${LIBS} ${EXTRA_LIBS} ${NOTEST_LIBS}"
Packit 90a5c9
APACHE_CONF_SEL_CPP=${CPP}
Packit 90a5c9
Packit 90a5c9
APR_RESTORE_THE_ENVIRONMENT(CPPFLAGS, EXTRA_)
Packit 90a5c9
APR_RESTORE_THE_ENVIRONMENT(CFLAGS, EXTRA_)
Packit 90a5c9
APR_RESTORE_THE_ENVIRONMENT(CXXFLAGS, EXTRA_)
Packit 90a5c9
APR_RESTORE_THE_ENVIRONMENT(LDFLAGS, EXTRA_)
Packit 90a5c9
APR_RESTORE_THE_ENVIRONMENT(LIBS, EXTRA_)
Packit 90a5c9
APR_RESTORE_THE_ENVIRONMENT(INCLUDES, EXTRA_)
Packit 90a5c9
Packit 90a5c9
AC_MSG_NOTICE([])
Packit 90a5c9
AC_MSG_NOTICE([Construct makefiles and header files...])
Packit 90a5c9
AC_MSG_NOTICE([])
Packit 90a5c9
Packit 90a5c9
APACHE_GEN_CONFIG_VARS
Packit 90a5c9
Packit 90a5c9
dnl ## Build modules.c
Packit 90a5c9
rm -f modules.c
Packit 90a5c9
echo $MODLIST | $AWK -f $srcdir/build/build-modules-c.awk > modules.c
Packit 90a5c9
Packit 90a5c9
APR_EXPAND_VAR(ap_prefix, $prefix)
Packit 90a5c9
AC_DEFINE_UNQUOTED(HTTPD_ROOT, "${ap_prefix}",
Packit 90a5c9
	[Root directory of the Apache install area])
Packit 90a5c9
AC_DEFINE_UNQUOTED(SERVER_CONFIG_FILE, "${rel_sysconfdir}/${progname}.conf",
Packit 90a5c9
	[Location of the config file, relative to the Apache root directory])
Packit 90a5c9
AC_DEFINE_UNQUOTED(AP_TYPES_CONFIG_FILE, "${rel_sysconfdir}/mime.types",
Packit 90a5c9
	[Location of the MIME types config file, relative to the Apache root directory])
Packit 90a5c9
Packit 90a5c9
perlbin=`$ac_aux_dir/PrintPath perl`
Packit 90a5c9
if test "x$perlbin" = "x"; then
Packit 90a5c9
    perlbin="/replace/with/path/to/perl/interpreter"
Packit 90a5c9
fi
Packit 90a5c9
AC_SUBST(perlbin)
Packit 90a5c9
Packit 90a5c9
dnl If we are running on BSD/OS, we need to use the BSD .include syntax.
Packit 90a5c9
Packit 90a5c9
BSD_MAKEFILE=no
Packit 90a5c9
ap_make_include=include
Packit 90a5c9
ap_make_delimiter=' '
Packit 90a5c9
case $host in
Packit 90a5c9
*bsdi*)
Packit 90a5c9
    # Check whether they've installed GNU make
Packit 90a5c9
    if make --version > /dev/null 2>&1; then
Packit 90a5c9
        true
Packit 90a5c9
    else
Packit 90a5c9
        BSD_MAKEFILE=yes
Packit 90a5c9
        ap_make_include=.include
Packit 90a5c9
        ap_make_delimiter='"'
Packit 90a5c9
    fi
Packit 90a5c9
    ;;
Packit 90a5c9
esac
Packit 90a5c9
AC_SUBST(ap_make_include)
Packit 90a5c9
AC_SUBST(ap_make_delimiter)
Packit 90a5c9
Packit 90a5c9
dnl Ensure that docs/conf is created.
Packit 90a5c9
test -d docs/conf||$mkdir_p docs/conf
Packit 90a5c9
Packit 90a5c9
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-ssl.conf docs/conf/extra/httpd-userdir.conf docs/conf/extra/httpd-vhosts.conf docs/conf/extra/proxy-html.conf include/ap_config_layout.h support/apxs support/apachectl support/dbmmanage support/envvars-std support/log_server_status support/logresolve.pl support/phf_abuse_log.cgi support/split-logfile build/rules.mk build/pkg/pkginfo build/config_vars.sh)
Packit 90a5c9
AC_CONFIG_COMMANDS([default], [true], [APACHE_GEN_MAKEFILES])
Packit 90a5c9
AC_OUTPUT
Packit 90a5c9
AC_MSG_NOTICE([summary of build options:
Packit 90a5c9
Packit 90a5c9
    Server Version: ${HTTPD_VERSION}
Packit 90a5c9
    Install prefix: ${prefix}
Packit 90a5c9
    C compiler:     ${APACHE_CONF_SEL_CC}
Packit 90a5c9
    CFLAGS:         ${APACHE_CONF_SEL_CFLAGS}
Packit 90a5c9
    CPPFLAGS:       ${APACHE_CONF_SEL_CPPFLAGS}
Packit 90a5c9
    LDFLAGS:        ${APACHE_CONF_SEL_LDFLAGS}
Packit 90a5c9
    LIBS:           ${APACHE_CONF_SEL_LIBS}
Packit 90a5c9
    C preprocessor: ${APACHE_CONF_SEL_CPP}
Packit 90a5c9
])