Blame acinclude.m4

Packit 90a5c9
Packit 90a5c9
dnl APACHE_HELP_STRING(LHS, RHS)
Packit 90a5c9
dnl Autoconf 2.50 can not handle substr correctly.  It does have 
Packit 90a5c9
dnl AC_HELP_STRING, so let's try to call it if we can.
Packit 90a5c9
dnl Note: this define must be on one line so that it can be properly returned
Packit 90a5c9
dnl as the help string.
Packit 90a5c9
AC_DEFUN([APACHE_HELP_STRING],[ifelse(regexp(AC_ACVERSION, 2\.1), -1, AC_HELP_STRING($1,$2),[  ]$1 substr([                       ],len($1))$2)])dnl
Packit 90a5c9
Packit 90a5c9
dnl APACHE_SUBST(VARIABLE)
Packit 90a5c9
dnl Makes VARIABLE available in generated files
Packit 90a5c9
dnl (do not use @variable@ in Makefiles, but $(variable))
Packit 90a5c9
AC_DEFUN([APACHE_SUBST],[
Packit 90a5c9
  APACHE_VAR_SUBST="$APACHE_VAR_SUBST $1"
Packit 90a5c9
  AC_SUBST($1)
Packit 90a5c9
])
Packit 90a5c9
Packit 90a5c9
dnl APACHE_FAST_OUTPUT(FILENAME)
Packit 90a5c9
dnl Perform substitutions on FILENAME (Makefiles only)
Packit 90a5c9
AC_DEFUN([APACHE_FAST_OUTPUT],[
Packit 90a5c9
  APACHE_FAST_OUTPUT_FILES="$APACHE_FAST_OUTPUT_FILES $1"
Packit 90a5c9
])
Packit 90a5c9
Packit 90a5c9
dnl APACHE_GEN_CONFIG_VARS
Packit 90a5c9
dnl Creates config_vars.mk
Packit 90a5c9
AC_DEFUN([APACHE_GEN_CONFIG_VARS],[
Packit 90a5c9
  APACHE_SUBST(HTTPD_VERSION)
Packit 90a5c9
  APACHE_SUBST(HTTPD_MMN)
Packit 90a5c9
  APACHE_SUBST(abs_srcdir)
Packit 90a5c9
  APACHE_SUBST(bindir)
Packit 90a5c9
  APACHE_SUBST(sbindir)
Packit 90a5c9
  APACHE_SUBST(cgidir)
Packit 90a5c9
  APACHE_SUBST(logfiledir)
Packit 90a5c9
  APACHE_SUBST(exec_prefix)
Packit 90a5c9
  APACHE_SUBST(datadir)
Packit 90a5c9
  APACHE_SUBST(localstatedir)
Packit 90a5c9
  APACHE_SUBST(mandir)
Packit 90a5c9
  APACHE_SUBST(libdir)
Packit 90a5c9
  APACHE_SUBST(libexecdir)
Packit 90a5c9
  APACHE_SUBST(htdocsdir)
Packit 90a5c9
  APACHE_SUBST(manualdir)
Packit 90a5c9
  APACHE_SUBST(includedir)
Packit 90a5c9
  APACHE_SUBST(errordir)
Packit 90a5c9
  APACHE_SUBST(iconsdir)
Packit 90a5c9
  APACHE_SUBST(sysconfdir)
Packit 90a5c9
  APACHE_SUBST(installbuilddir)
Packit 90a5c9
  APACHE_SUBST(runtimedir)
Packit 90a5c9
  APACHE_SUBST(proxycachedir)
Packit 90a5c9
  APACHE_SUBST(other_targets)
Packit 90a5c9
  APACHE_SUBST(progname)
Packit 90a5c9
  APACHE_SUBST(prefix)
Packit 90a5c9
  APACHE_SUBST(AWK)
Packit 90a5c9
  APACHE_SUBST(CC)
Packit 90a5c9
  APACHE_SUBST(CPP)
Packit 90a5c9
  APACHE_SUBST(CXX)
Packit 90a5c9
  APACHE_SUBST(CPPFLAGS)
Packit 90a5c9
  APACHE_SUBST(CFLAGS)
Packit 90a5c9
  APACHE_SUBST(CXXFLAGS)
Packit 90a5c9
  APACHE_SUBST(LTFLAGS)
Packit 90a5c9
  APACHE_SUBST(LDFLAGS)
Packit 90a5c9
  APACHE_SUBST(LT_LDFLAGS)
Packit 90a5c9
  APACHE_SUBST(SH_LDFLAGS)
Packit 90a5c9
  APACHE_SUBST(HTTPD_LDFLAGS)
Packit 90a5c9
  APACHE_SUBST(UTIL_LDFLAGS)
Packit 90a5c9
  APACHE_SUBST(LIBS)
Packit 90a5c9
  APACHE_SUBST(DEFS)
Packit 90a5c9
  APACHE_SUBST(INCLUDES)
Packit 90a5c9
  APACHE_SUBST(NOTEST_CPPFLAGS)
Packit 90a5c9
  APACHE_SUBST(NOTEST_CFLAGS)
Packit 90a5c9
  APACHE_SUBST(NOTEST_CXXFLAGS)
Packit 90a5c9
  APACHE_SUBST(NOTEST_LDFLAGS)
Packit 90a5c9
  APACHE_SUBST(NOTEST_LIBS)
Packit 90a5c9
  APACHE_SUBST(EXTRA_CPPFLAGS)
Packit 90a5c9
  APACHE_SUBST(EXTRA_CFLAGS)
Packit 90a5c9
  APACHE_SUBST(EXTRA_CXXFLAGS)
Packit 90a5c9
  APACHE_SUBST(EXTRA_LDFLAGS)
Packit 90a5c9
  APACHE_SUBST(EXTRA_LIBS)
Packit 90a5c9
  APACHE_SUBST(EXTRA_INCLUDES)
Packit 90a5c9
  APACHE_SUBST(INTERNAL_CPPFLAGS)
Packit 90a5c9
  APACHE_SUBST(LIBTOOL)
Packit 90a5c9
  APACHE_SUBST(SHELL)
Packit 90a5c9
  APACHE_SUBST(RSYNC)
Packit 90a5c9
  APACHE_SUBST(MODULE_DIRS)
Packit 90a5c9
  APACHE_SUBST(MODULE_CLEANDIRS)
Packit 90a5c9
  APACHE_SUBST(PORT)
Packit 90a5c9
  APACHE_SUBST(SSLPORT)
Packit 90a5c9
  APACHE_SUBST(CORE_IMPLIB_FILE)
Packit 90a5c9
  APACHE_SUBST(CORE_IMPLIB)
Packit 90a5c9
  APACHE_SUBST(SH_LIBS)
Packit 90a5c9
  APACHE_SUBST(SH_LIBTOOL)
Packit 90a5c9
  APACHE_SUBST(MK_IMPLIB)
Packit 90a5c9
  APACHE_SUBST(MKDEP)
Packit 90a5c9
  APACHE_SUBST(INSTALL_PROG_FLAGS)
Packit 90a5c9
  APACHE_SUBST(MPM_MODULES)
Packit 90a5c9
  APACHE_SUBST(ENABLED_MPM_MODULE)
Packit 90a5c9
  APACHE_SUBST(DSO_MODULES)
Packit 90a5c9
  APACHE_SUBST(ENABLED_DSO_MODULES)
Packit 90a5c9
  APACHE_SUBST(LOAD_ALL_MODULES)
Packit 90a5c9
  APACHE_SUBST(APR_BINDIR)
Packit 90a5c9
  APACHE_SUBST(APR_INCLUDEDIR)
Packit 90a5c9
  APACHE_SUBST(APR_VERSION)
Packit 90a5c9
  APACHE_SUBST(APR_CONFIG)
Packit 90a5c9
  APACHE_SUBST(APU_BINDIR)
Packit 90a5c9
  APACHE_SUBST(APU_INCLUDEDIR)
Packit 90a5c9
  APACHE_SUBST(APU_VERSION)
Packit 90a5c9
  APACHE_SUBST(APU_CONFIG)
Packit 90a5c9
Packit 90a5c9
  abs_srcdir="`(cd $srcdir && pwd)`"
Packit 90a5c9
Packit 90a5c9
  AC_MSG_NOTICE([creating config_vars.mk])
Packit 90a5c9
  test -d build || $mkdir_p build
Packit 90a5c9
  > build/config_vars.mk
Packit 90a5c9
  for i in $APACHE_VAR_SUBST; do
Packit 90a5c9
    eval echo "$i = \$$i" >> build/config_vars.mk
Packit 90a5c9
  done
Packit 90a5c9
])
Packit 90a5c9
Packit 90a5c9
dnl APACHE_GEN_MAKEFILES
Packit 90a5c9
dnl Creates Makefiles
Packit 90a5c9
AC_DEFUN([APACHE_GEN_MAKEFILES],[
Packit 90a5c9
  $SHELL $srcdir/build/fastgen.sh $srcdir $ac_cv_mkdir_p $BSD_MAKEFILE $APACHE_FAST_OUTPUT_FILES
Packit 90a5c9
])
Packit 90a5c9
Packit 90a5c9
dnl
Packit 90a5c9
dnl APACHE_TYPE_RLIM_T
Packit 90a5c9
dnl
Packit 90a5c9
dnl If rlim_t is not defined, define it to int
Packit 90a5c9
dnl
Packit 90a5c9
AC_DEFUN([APACHE_TYPE_RLIM_T], [
Packit 90a5c9
  AC_CACHE_CHECK([for rlim_t], ac_cv_type_rlim_t, [
Packit 90a5c9
    AC_TRY_COMPILE([
Packit 90a5c9
#include <sys/types.h>
Packit 90a5c9
#include <sys/time.h>
Packit 90a5c9
#include <sys/resource.h>
Packit 90a5c9
], [rlim_t spoon;], [
Packit 90a5c9
      ac_cv_type_rlim_t=yes
Packit 90a5c9
    ],[ac_cv_type_rlim_t=no
Packit 90a5c9
    ])
Packit 90a5c9
  ])
Packit 90a5c9
  if test "$ac_cv_type_rlim_t" = "no" ; then
Packit 90a5c9
      AC_DEFINE(rlim_t, int,
Packit 90a5c9
          [Define to 'int' if <sys/resource.h> doesn't define it for us])
Packit 90a5c9
  fi
Packit 90a5c9
])
Packit 90a5c9
Packit 90a5c9
dnl the list of build variables which are available for customization on a
Packit 90a5c9
dnl per module subdir basis (to be inserted into modules.mk with a "MOD_"
Packit 90a5c9
dnl prefix, i.e. MOD_CFLAGS etc.). Used in APACHE_MODPATH_{INIT,FINISH}.
Packit 90a5c9
define(mod_buildvars, [CFLAGS CXXFLAGS CPPFLAGS LDFLAGS LIBS INCLUDES])
Packit 90a5c9
dnl
Packit 90a5c9
dnl APACHE_MODPATH_INIT(modpath)
Packit 90a5c9
AC_DEFUN([APACHE_MODPATH_INIT],[
Packit 90a5c9
  current_dir=$1
Packit 90a5c9
  modpath_current=modules/$1
Packit 90a5c9
  modpath_static=
Packit 90a5c9
  modpath_shared=
Packit 90a5c9
  for var in mod_buildvars; do
Packit 90a5c9
    eval MOD_$var=
Packit 90a5c9
  done
Packit 90a5c9
  test -d $1 || $srcdir/build/mkdir.sh $modpath_current
Packit 90a5c9
  > $modpath_current/modules.mk
Packit 90a5c9
])dnl
Packit 90a5c9
dnl
Packit 90a5c9
AC_DEFUN([APACHE_MODPATH_FINISH],[
Packit 90a5c9
  echo "DISTCLEAN_TARGETS = modules.mk" >> $modpath_current/modules.mk
Packit 90a5c9
  echo "static = $modpath_static" >> $modpath_current/modules.mk
Packit 90a5c9
  echo "shared = $modpath_shared" >> $modpath_current/modules.mk
Packit 90a5c9
  for var in mod_buildvars; do
Packit 90a5c9
    if eval val=\"\$MOD_$var\"; test -n "$val"; then
Packit 90a5c9
      echo "MOD_$var = $val" >> $modpath_current/modules.mk
Packit 90a5c9
    fi
Packit 90a5c9
  done
Packit 90a5c9
  if test ! -z "$modpath_static" -o ! -z "$modpath_shared"; then
Packit 90a5c9
    MODULE_DIRS="$MODULE_DIRS $current_dir"
Packit 90a5c9
  else
Packit 90a5c9
    MODULE_CLEANDIRS="$MODULE_CLEANDIRS $current_dir"
Packit 90a5c9
  fi
Packit 90a5c9
  APACHE_FAST_OUTPUT($modpath_current/Makefile)
Packit 90a5c9
])dnl
Packit 90a5c9
dnl
Packit 90a5c9
dnl APACHE_MODPATH_ADD(name[, shared[, objects [, ldflags[, libs]]]])
Packit 90a5c9
AC_DEFUN([APACHE_MODPATH_ADD],[
Packit 90a5c9
  if test -z "$3"; then
Packit 90a5c9
    objects="mod_$1.lo"
Packit 90a5c9
  else
Packit 90a5c9
    objects="$3"
Packit 90a5c9
  fi
Packit 90a5c9
Packit 90a5c9
  if test -z "$module_standalone"; then
Packit 90a5c9
    if test -z "$2"; then
Packit 90a5c9
      # The filename of a convenience library must have a "lib" prefix:
Packit 90a5c9
      libname="libmod_$1.la"
Packit 90a5c9
      BUILTIN_LIBS="$BUILTIN_LIBS $modpath_current/$libname"
Packit 90a5c9
      modpath_static="$modpath_static $libname"
Packit 90a5c9
      cat >>$modpath_current/modules.mk<
Packit 90a5c9
$libname: $objects
Packit 90a5c9
	\$(MOD_LINK) $objects $5
Packit 90a5c9
EOF
Packit 90a5c9
      if test ! -z "$5"; then
Packit 90a5c9
        APR_ADDTO(AP_LIBS, [$5])
Packit 90a5c9
      fi
Packit 90a5c9
    else
Packit 90a5c9
      apache_need_shared=yes
Packit 90a5c9
      libname="mod_$1.la"
Packit 90a5c9
      shobjects=`echo $objects | sed 's/\.lo/.slo/g'`
Packit 90a5c9
      modpath_shared="$modpath_shared $libname"
Packit 90a5c9
      cat >>$modpath_current/modules.mk<
Packit 90a5c9
$libname: $shobjects
Packit 90a5c9
	\$(SH_LINK) -rpath \$(libexecdir) -module -avoid-version $4 $objects $5
Packit 90a5c9
EOF
Packit 90a5c9
    fi
Packit 90a5c9
  fi
Packit 90a5c9
])dnl
Packit 90a5c9
Packit 90a5c9
dnl
Packit 90a5c9
dnl APACHE_MPM_MODULE(name[, shared[, objects[, config[, path[, libs]]]]])
Packit 90a5c9
dnl
Packit 90a5c9
dnl Provide information for building the MPM.  (Enablement is handled using
Packit 90a5c9
dnl --with-mpm/--enable-mpms-shared.)
Packit 90a5c9
dnl
Packit 90a5c9
dnl name     -- name of MPM, same as MPM directory name
Packit 90a5c9
dnl shared   -- "shared" to indicate shared module build, empty string otherwise
Packit 90a5c9
dnl objects  -- one or more .lo files to link into the MPM module (default: mpmname.lo)
Packit 90a5c9
dnl config   -- configuration logic to run if the MPM is enabled
Packit 90a5c9
dnl path     -- relative path to MPM (default: server/mpm/mpmname)
Packit 90a5c9
dnl libs     -- libs needed by this MPM
Packit 90a5c9
dnl
Packit 90a5c9
AC_DEFUN([APACHE_MPM_MODULE],[
Packit 90a5c9
    if ap_mpm_is_enabled $1; then
Packit 90a5c9
        if test -z "$3"; then
Packit 90a5c9
            objects="$1.lo"
Packit 90a5c9
        else
Packit 90a5c9
            objects="$3"
Packit 90a5c9
        fi
Packit 90a5c9
Packit 90a5c9
        if test -z "$5"; then
Packit 90a5c9
            mpmpath="server/mpm/$1"
Packit 90a5c9
        else
Packit 90a5c9
            mpmpath=$5
Packit 90a5c9
        fi
Packit 90a5c9
Packit 90a5c9
        dnl VPATH support
Packit 90a5c9
        test -d $mpmpath || $srcdir/build/mkdir.sh $mpmpath
Packit 90a5c9
Packit 90a5c9
        APACHE_FAST_OUTPUT($mpmpath/Makefile)
Packit 90a5c9
Packit 90a5c9
        if test -z "$2"; then
Packit 90a5c9
            APR_ADDTO(AP_LIBS, [$6])
Packit 90a5c9
            libname="lib$1.la"
Packit 90a5c9
            cat >$mpmpath/modules.mk<
Packit 90a5c9
$libname: $objects
Packit 90a5c9
	\$(MOD_LINK) $objects
Packit 90a5c9
DISTCLEAN_TARGETS = modules.mk
Packit 90a5c9
static = $libname
Packit 90a5c9
shared =
Packit 90a5c9
EOF
Packit 90a5c9
        else
Packit 90a5c9
            apache_need_shared=yes
Packit 90a5c9
            libname="mod_mpm_$1.la"
Packit 90a5c9
            shobjects=`echo $objects | sed 's/\.lo/.slo/g'`
Packit 90a5c9
            cat >$mpmpath/modules.mk<
Packit 90a5c9
$libname: $shobjects
Packit 90a5c9
	\$(SH_LINK) -rpath \$(libexecdir) -module -avoid-version $objects $6
Packit 90a5c9
DISTCLEAN_TARGETS = modules.mk
Packit 90a5c9
static =
Packit 90a5c9
shared = $libname
Packit 90a5c9
EOF
Packit 90a5c9
            MPM_MODULES="$MPM_MODULES mpm_$1"
Packit 90a5c9
            # add default MPM to LoadModule list
Packit 90a5c9
            if test $1 = $default_mpm; then
Packit 90a5c9
                ENABLED_MPM_MODULE="mpm_$1"
Packit 90a5c9
            fi
Packit 90a5c9
        fi
Packit 90a5c9
        $4
Packit 90a5c9
    fi
Packit 90a5c9
])dnl
Packit 90a5c9
Packit 90a5c9
dnl
Packit 90a5c9
dnl APACHE_MODULE(name, helptext[, objects[, structname[, default[, config[, prereq_module]]]]])
Packit 90a5c9
dnl
Packit 90a5c9
dnl default is one of:
Packit 90a5c9
dnl   yes    -- enabled by default. user must explicitly disable.
Packit 90a5c9
dnl   no     -- disabled under default, most, all. user must explicitly enable.
Packit 90a5c9
dnl   most   -- disabled by default. enabled explicitly or with most or all.
Packit 90a5c9
dnl   static -- enabled as static by default, must be explicitly changed.
Packit 90a5c9
dnl   ""     -- disabled under default, most. enabled explicitly or with all.
Packit 90a5c9
dnl             XXX: The arg must really be empty here. Passing an empty shell
Packit 90a5c9
dnl             XXX: variable doesn't work for some reason. This should be
Packit 90a5c9
dnl             XXX: fixed.
Packit 90a5c9
dnl
Packit 90a5c9
dnl basically: yes/no is a hard setting. "most" means follow the "most"
Packit 90a5c9
dnl            setting. otherwise, fall under the "all" setting.
Packit 90a5c9
dnl            explicit yes/no always overrides, except if the user selects
Packit 90a5c9
dnl            "reallyall".
Packit 90a5c9
dnl
Packit 90a5c9
dnl prereq_module is a module (without the "mod_" prefix) that must be enabled
Packit 90a5c9
dnl   if the current module is enabled.  If the current module is built
Packit 90a5c9
dnl   statically, prereq_module must be built statically, too.  If these
Packit 90a5c9
dnl   conditions are not fulfilled, configure will abort if the current module
Packit 90a5c9
dnl   has been enabled explicitly. Otherwise, configure will disable the
Packit 90a5c9
dnl   current module.
Packit 90a5c9
dnl   prereq_module's APACHE_MODULE() statement must have been processed
Packit 90a5c9
dnl   before the current APACHE_MODULE() statement.
Packit 90a5c9
dnl
Packit 90a5c9
AC_DEFUN([APACHE_MODULE],[
Packit 90a5c9
  AC_MSG_CHECKING(whether to enable mod_$1)
Packit 90a5c9
  define([optname],[--]ifelse($5,yes,disable,enable)[-]translit($1,_,-))dnl
Packit 90a5c9
  AC_ARG_ENABLE(translit($1,_,-),APACHE_HELP_STRING(optname(),$2),force_$1=$enableval,enable_$1=ifelse($5,,maybe-all,$5))
Packit 90a5c9
  undefine([optname])dnl
Packit 90a5c9
  _apmod_extra_msg=""
Packit 90a5c9
  dnl If the module was not explicitly requested, allow it to disable itself if
Packit 90a5c9
  dnl its pre-reqs fail.
Packit 90a5c9
  case "$enable_$1" in
Packit 90a5c9
    yes|static|shared)
Packit 90a5c9
      _apmod_required="yes"
Packit 90a5c9
      ;;
Packit 90a5c9
    *)
Packit 90a5c9
      _apmod_required="no"
Packit 90a5c9
      ;;
Packit 90a5c9
  esac
Packit 90a5c9
  if test "$enable_$1" = "static" -o "$enable_$1" = "shared"; then
Packit 90a5c9
    :
Packit 90a5c9
  elif test "$enable_$1" = "yes"; then
Packit 90a5c9
    enable_$1=$module_default
Packit 90a5c9
  elif test "$enable_$1" = "few"; then
Packit 90a5c9
    if test "$module_selection" = "few" -o "$module_selection" = "most" -o \
Packit 90a5c9
            "$module_selection" = "all" -o "$module_selection" = "reallyall"
Packit 90a5c9
    then
Packit 90a5c9
      enable_$1=$module_default
Packit 90a5c9
    else
Packit 90a5c9
      enable_$1=no
Packit 90a5c9
    fi
Packit 90a5c9
    _apmod_extra_msg=" ($module_selection)"
Packit 90a5c9
  elif test "$enable_$1" = "most"; then
Packit 90a5c9
    if test "$module_selection" = "most" -o "$module_selection" = "all" -o \
Packit 90a5c9
            "$module_selection" = "reallyall"
Packit 90a5c9
    then
Packit 90a5c9
      enable_$1=$module_default
Packit 90a5c9
    else
Packit 90a5c9
      enable_$1=no
Packit 90a5c9
    fi
Packit 90a5c9
    _apmod_extra_msg=" ($module_selection)"
Packit 90a5c9
  elif test "$enable_$1" = "all" -o "$enable_$1" = "maybe-all"; then
Packit 90a5c9
    if test "$module_selection" = "all" -o "$module_selection" = "reallyall"
Packit 90a5c9
    then
Packit 90a5c9
      enable_$1=$module_default
Packit 90a5c9
      _apmod_extra_msg=" ($module_selection)"
Packit 90a5c9
    else
Packit 90a5c9
      enable_$1=no
Packit 90a5c9
    fi
Packit 90a5c9
  elif test "$enable_$1" = "reallyall" -o "$enable_$1" = "no" ; then
Packit 90a5c9
    if test "$module_selection" = "reallyall" -a "$force_$1" != "no" ; then
Packit 90a5c9
      enable_$1=$module_default
Packit 90a5c9
      _apmod_extra_msg=" ($module_selection)"
Packit 90a5c9
    else
Packit 90a5c9
      enable_$1=no
Packit 90a5c9
    fi
Packit 90a5c9
  else
Packit 90a5c9
    enable_$1=no
Packit 90a5c9
  fi
Packit 90a5c9
  if test "$enable_$1" != "no"; then
Packit 90a5c9
    dnl If we plan to enable it, allow the module to run some autoconf magic
Packit 90a5c9
    dnl that may disable it because of missing dependencies.
Packit 90a5c9
    ifelse([$6$7],,:,
Packit 90a5c9
           [AC_MSG_RESULT([checking dependencies])
Packit 90a5c9
            ifelse([$7],,:,[m4_foreach([prereq],[$7],
Packit 90a5c9
                           [if test "$enable_[]prereq" = "no" ; then
Packit 90a5c9
                              enable_$1=no
Packit 90a5c9
                              AC_MSG_WARN("mod_[]prereq is disabled but required for mod_$1")
Packit 90a5c9
                            elif test "$enable_$1" = "static" && test "$enable_[]prereq" != "static" ; then
Packit 90a5c9
                              enable_$1=$enable_[]prereq
Packit 90a5c9
                              AC_MSG_WARN("building mod_$1 shared because mod_[]prereq is built shared")
Packit 90a5c9
                            el])se])
Packit 90a5c9
            ifelse([$6],,:,[  $6])
Packit 90a5c9
            ifelse([$7],,:,[fi])
Packit 90a5c9
            AC_MSG_CHECKING(whether to enable mod_$1)
Packit 90a5c9
            if test "$enable_$1" = "no"; then
Packit 90a5c9
              if test "$_apmod_required" = "no"; then
Packit 90a5c9
                _apmod_extra_msg=" (disabled)"
Packit 90a5c9
              else
Packit 90a5c9
                AC_MSG_ERROR([mod_$1 has been requested but can not be built due to prerequisite failures])
Packit 90a5c9
              fi
Packit 90a5c9
            fi])
Packit 90a5c9
  fi
Packit 90a5c9
  AC_MSG_RESULT($enable_$1$_apmod_extra_msg)
Packit 90a5c9
  if test "$enable_$1" != "no"; then
Packit 90a5c9
    case "$enable_$1" in
Packit 90a5c9
    static*)
Packit 90a5c9
      MODLIST="$MODLIST ifelse($4,,$1,$4)"
Packit 90a5c9
      if test "$1" = "so"; then
Packit 90a5c9
          sharedobjs=yes
Packit 90a5c9
      fi
Packit 90a5c9
      shared="";;
Packit 90a5c9
    *)
Packit 90a5c9
      sharedobjs=yes
Packit 90a5c9
      shared=yes
Packit 90a5c9
      DSO_MODULES="$DSO_MODULES $1"
Packit 90a5c9
      if test "$5" = "yes" ; then
Packit 90a5c9
        ENABLED_DSO_MODULES="${ENABLED_DSO_MODULES},$1"
Packit 90a5c9
      fi
Packit 90a5c9
      ;;
Packit 90a5c9
    esac
Packit 90a5c9
    define([modprefix], [MOD_]translit($1, [a-z-], [A-Z_]))
Packit 90a5c9
    APACHE_MODPATH_ADD($1, $shared, $3,, [\$(]modprefix[_LDADD)])
Packit 90a5c9
    APACHE_SUBST(modprefix[_LDADD])
Packit 90a5c9
    undefine([modprefix])
Packit 90a5c9
  fi
Packit 90a5c9
])dnl
Packit 90a5c9
Packit 90a5c9
dnl
Packit 90a5c9
dnl APACHE_ENABLE_MODULES
Packit 90a5c9
dnl
Packit 90a5c9
AC_DEFUN([APACHE_ENABLE_MODULES],[
Packit 90a5c9
  module_selection=most
Packit 90a5c9
  module_default=shared
Packit 90a5c9
Packit 90a5c9
  dnl Check whether we have DSO support.
Packit 90a5c9
  dnl If "yes", we build shared modules by default.
Packit 90a5c9
  APR_CHECK_APR_DEFINE(APR_HAS_DSO)
Packit 90a5c9
Packit 90a5c9
  if test $ac_cv_define_APR_HAS_DSO = "no"; then
Packit 90a5c9
    AC_MSG_WARN([Missing DSO support - building static modules by default.])
Packit 90a5c9
    module_default=static
Packit 90a5c9
  fi
Packit 90a5c9
Packit 90a5c9
Packit 90a5c9
  AC_ARG_ENABLE(modules,
Packit 90a5c9
  APACHE_HELP_STRING(--enable-modules=MODULE-LIST,Space-separated list of modules to enable | "all" | "most" | "few" | "none" | "reallyall"),[
Packit 90a5c9
    if test "$enableval" = "none"; then
Packit 90a5c9
       module_default=no
Packit 90a5c9
       module_selection=none
Packit 90a5c9
    else
Packit 90a5c9
      for i in $enableval; do
Packit 90a5c9
        if test "$i" = "all" -o "$i" = "most" -o "$i" = "few" -o "$i" = "reallyall"
Packit 90a5c9
        then
Packit 90a5c9
          module_selection=$i
Packit 90a5c9
        else
Packit 90a5c9
          i=`echo $i | sed 's/-/_/g'`
Packit 90a5c9
          eval "enable_$i=shared"
Packit 90a5c9
        fi
Packit 90a5c9
      done
Packit 90a5c9
    fi
Packit 90a5c9
  ])
Packit 90a5c9
  
Packit 90a5c9
  AC_ARG_ENABLE(mods-shared,
Packit 90a5c9
  APACHE_HELP_STRING(--enable-mods-shared=MODULE-LIST,Space-separated list of shared modules to enable | "all" | "most" | "few" | "reallyall"),[
Packit 90a5c9
    for i in $enableval; do
Packit 90a5c9
      if test "$i" = "all" -o "$i" = "most" -o "$i" = "few" -o "$i" = "reallyall"
Packit 90a5c9
      then
Packit 90a5c9
        module_selection=$i
Packit 90a5c9
        module_default=shared
Packit 90a5c9
      else
Packit 90a5c9
        i=`echo $i | sed 's/-/_/g'`
Packit 90a5c9
    	eval "enable_$i=shared"
Packit 90a5c9
      fi
Packit 90a5c9
    done
Packit 90a5c9
  ])
Packit 90a5c9
  
Packit 90a5c9
  AC_ARG_ENABLE(mods-static,
Packit 90a5c9
  APACHE_HELP_STRING(--enable-mods-static=MODULE-LIST,Space-separated list of static modules to enable | "all" | "most" | "few" | "reallyall"),[
Packit 90a5c9
    for i in $enableval; do
Packit 90a5c9
      if test "$i" = "all" -o "$i" = "most" -o "$i" = "few" -o "$i" = "reallyall"; then
Packit 90a5c9
        module_selection=$i
Packit 90a5c9
        module_default=static
Packit 90a5c9
      else
Packit 90a5c9
        i=`echo $i | sed 's/-/_/g'`
Packit 90a5c9
    	eval "enable_$i=static"
Packit 90a5c9
      fi
Packit 90a5c9
    done
Packit 90a5c9
  ])
Packit 90a5c9
])
Packit 90a5c9
Packit 90a5c9
AC_DEFUN([APACHE_REQUIRE_CXX],[
Packit 90a5c9
  if test -z "$apache_cxx_done"; then
Packit 90a5c9
    AC_PROG_CXX
Packit 90a5c9
    AC_PROG_CXXCPP
Packit 90a5c9
    apache_cxx_done=yes
Packit 90a5c9
  fi
Packit 90a5c9
])
Packit 90a5c9
Packit 90a5c9
dnl
Packit 90a5c9
dnl APACHE_CHECK_OPENSSL
Packit 90a5c9
dnl
Packit 90a5c9
dnl Configure for OpenSSL, giving preference to
Packit 90a5c9
dnl "--with-ssl=<path>" if it was specified.
Packit 90a5c9
dnl
Packit 90a5c9
AC_DEFUN([APACHE_CHECK_OPENSSL],[
Packit 90a5c9
  AC_CACHE_CHECK([for OpenSSL], [ac_cv_openssl], [
Packit 90a5c9
    dnl initialise the variables we use
Packit 90a5c9
    ac_cv_openssl=no
Packit 90a5c9
    ap_openssl_found=""
Packit 90a5c9
    ap_openssl_base=""
Packit 90a5c9
    ap_openssl_libs=""
Packit 90a5c9
    ap_openssl_mod_cflags=""
Packit 90a5c9
    ap_openssl_mod_ldflags=""
Packit 90a5c9
Packit 90a5c9
    dnl Determine the OpenSSL base directory, if any
Packit 90a5c9
    AC_MSG_CHECKING([for user-provided OpenSSL base directory])
Packit 90a5c9
    AC_ARG_WITH(ssl, APACHE_HELP_STRING(--with-ssl=PATH,OpenSSL installation directory), [
Packit 90a5c9
      dnl If --with-ssl specifies a directory, we use that directory
Packit 90a5c9
      if test "x$withval" != "xyes" -a "x$withval" != "x"; then
Packit 90a5c9
        dnl This ensures $withval is actually a directory and that it is absolute
Packit 90a5c9
        ap_openssl_base="`cd $withval ; pwd`"
Packit 90a5c9
      fi
Packit 90a5c9
    ])
Packit 90a5c9
    if test "x$ap_openssl_base" = "x"; then
Packit 90a5c9
      AC_MSG_RESULT(none)
Packit 90a5c9
    else
Packit 90a5c9
      AC_MSG_RESULT($ap_openssl_base)
Packit 90a5c9
    fi
Packit 90a5c9
Packit 90a5c9
    dnl Run header and version checks
Packit 90a5c9
    saved_CPPFLAGS="$CPPFLAGS"
Packit 90a5c9
    saved_LIBS="$LIBS"
Packit 90a5c9
    saved_LDFLAGS="$LDFLAGS"
Packit 90a5c9
Packit 90a5c9
    dnl Before doing anything else, load in pkg-config variables
Packit 90a5c9
    if test -n "$PKGCONFIG"; then
Packit 90a5c9
      saved_PKG_CONFIG_PATH="$PKG_CONFIG_PATH"
Packit 90a5c9
      if test "x$ap_openssl_base" != "x" -a \
Packit 90a5c9
              -f "${ap_openssl_base}/lib/pkgconfig/openssl.pc"; then
Packit 90a5c9
        dnl Ensure that the given path is used by pkg-config too, otherwise
Packit 90a5c9
        dnl the system openssl.pc might be picked up instead.
Packit 90a5c9
        PKG_CONFIG_PATH="${ap_openssl_base}/lib/pkgconfig${PKG_CONFIG_PATH+:}${PKG_CONFIG_PATH}"
Packit 90a5c9
        export PKG_CONFIG_PATH
Packit 90a5c9
      fi
Packit 90a5c9
      AC_ARG_ENABLE(ssl-staticlib-deps,APACHE_HELP_STRING(--enable-ssl-staticlib-deps,[link mod_ssl with dependencies of OpenSSL's static libraries (as indicated by "pkg-config --static"). Must be specified in addition to --enable-ssl.]), [
Packit 90a5c9
        if test "$enableval" = "yes"; then
Packit 90a5c9
          PKGCONFIG_LIBOPTS="--static"
Packit 90a5c9
        fi
Packit 90a5c9
      ])
Packit 90a5c9
      ap_openssl_libs="`$PKGCONFIG $PKGCONFIG_LIBOPTS --libs-only-l --silence-errors openssl`"
Packit 90a5c9
      if test $? -eq 0; then
Packit 90a5c9
        ap_openssl_found="yes"
Packit 90a5c9
        pkglookup="`$PKGCONFIG --cflags-only-I openssl`"
Packit 90a5c9
        APR_ADDTO(CPPFLAGS, [$pkglookup])
Packit 90a5c9
        APR_ADDTO(MOD_CFLAGS, [$pkglookup])
Packit 90a5c9
        APR_ADDTO(ab_CFLAGS, [$pkglookup])
Packit 90a5c9
        pkglookup="`$PKGCONFIG $PKGCONFIG_LIBOPTS --libs-only-L openssl`"
Packit 90a5c9
        APR_ADDTO(LDFLAGS, [$pkglookup])
Packit 90a5c9
        APR_ADDTO(MOD_LDFLAGS, [$pkglookup])
Packit 90a5c9
        pkglookup="`$PKGCONFIG $PKGCONFIG_LIBOPTS --libs-only-other openssl`"
Packit 90a5c9
        APR_ADDTO(LDFLAGS, [$pkglookup])
Packit 90a5c9
        APR_ADDTO(MOD_LDFLAGS, [$pkglookup])
Packit 90a5c9
      fi
Packit 90a5c9
      PKG_CONFIG_PATH="$saved_PKG_CONFIG_PATH"
Packit 90a5c9
    fi
Packit 90a5c9
Packit 90a5c9
    dnl fall back to the user-supplied directory if not found via pkg-config
Packit 90a5c9
    if test "x$ap_openssl_base" != "x" -a "x$ap_openssl_found" = "x"; then
Packit 90a5c9
      APR_ADDTO(CPPFLAGS, [-I$ap_openssl_base/include])
Packit 90a5c9
      APR_ADDTO(MOD_CFLAGS, [-I$ap_openssl_base/include])
Packit 90a5c9
      APR_ADDTO(ab_CFLAGS, [-I$ap_openssl_base/include])
Packit 90a5c9
      APR_ADDTO(LDFLAGS, [-L$ap_openssl_base/lib])
Packit 90a5c9
      APR_ADDTO(MOD_LDFLAGS, [-L$ap_openssl_base/lib])
Packit 90a5c9
      if test "x$ap_platform_runtime_link_flag" != "x"; then
Packit 90a5c9
        APR_ADDTO(LDFLAGS, [$ap_platform_runtime_link_flag$ap_openssl_base/lib])
Packit 90a5c9
        APR_ADDTO(MOD_LDFLAGS, [$ap_platform_runtime_link_flag$ap_openssl_base/lib])
Packit 90a5c9
      fi
Packit 90a5c9
    fi
Packit 90a5c9
Packit 90a5c9
    AC_MSG_CHECKING([for OpenSSL version >= 0.9.8a])
Packit 90a5c9
    AC_TRY_COMPILE([#include <openssl/opensslv.h>],[
Packit 90a5c9
#if !defined(OPENSSL_VERSION_NUMBER)
Packit 90a5c9
#error "Missing OpenSSL version"
Packit 90a5c9
#endif
Packit 90a5c9
#if OPENSSL_VERSION_NUMBER < 0x0090801f
Packit 90a5c9
#error "Unsupported OpenSSL version " OPENSSL_VERSION_TEXT
Packit 90a5c9
#endif],
Packit 90a5c9
      [AC_MSG_RESULT(OK)
Packit 90a5c9
       ac_cv_openssl=yes],
Packit 90a5c9
      [AC_MSG_RESULT(FAILED)])
Packit 90a5c9
Packit 90a5c9
    if test "x$ac_cv_openssl" = "xyes"; then
Packit 90a5c9
      ap_openssl_libs="${ap_openssl_libs:--lssl -lcrypto} `$apr_config --libs`"
Packit 90a5c9
      APR_ADDTO(MOD_LDFLAGS, [$ap_openssl_libs])
Packit 90a5c9
      APR_ADDTO(LIBS, [$ap_openssl_libs])
Packit 90a5c9
      APR_SETVAR(ab_LIBS, [$MOD_LDFLAGS])
Packit 90a5c9
      APACHE_SUBST(ab_CFLAGS)
Packit 90a5c9
      APACHE_SUBST(ab_LIBS)
Packit 90a5c9
Packit 90a5c9
      dnl Run library and function checks
Packit 90a5c9
      liberrors=""
Packit 90a5c9
      AC_CHECK_HEADERS([openssl/engine.h])
Packit 90a5c9
      AC_CHECK_FUNCS([SSL_CTX_new], [], [liberrors="yes"])
Packit 90a5c9
      AC_CHECK_FUNCS([ENGINE_init ENGINE_load_builtin_engines RAND_egd])
Packit 90a5c9
      if test "x$liberrors" != "x"; then
Packit 90a5c9
        AC_MSG_WARN([OpenSSL libraries are unusable])
Packit 90a5c9
      fi
Packit 90a5c9
    else
Packit 90a5c9
      AC_MSG_WARN([OpenSSL version is too old])
Packit 90a5c9
    fi
Packit 90a5c9
Packit 90a5c9
    dnl restore
Packit 90a5c9
    CPPFLAGS="$saved_CPPFLAGS"
Packit 90a5c9
    LIBS="$saved_LIBS"
Packit 90a5c9
    LDFLAGS="$saved_LDFLAGS"
Packit 90a5c9
Packit 90a5c9
    dnl cache MOD_LDFLAGS, MOD_CFLAGS
Packit 90a5c9
    ap_openssl_mod_cflags=$MOD_CFLAGS
Packit 90a5c9
    ap_openssl_mod_ldflags=$MOD_LDFLAGS
Packit 90a5c9
  ])
Packit 90a5c9
  if test "x$ac_cv_openssl" = "xyes"; then
Packit 90a5c9
    AC_DEFINE(HAVE_OPENSSL, 1, [Define if OpenSSL is available])
Packit 90a5c9
    APR_ADDTO(MOD_LDFLAGS, [$ap_openssl_mod_ldflags])
Packit 90a5c9
    APR_ADDTO(MOD_CFLAGS, [$ap_openssl_mod_cflags])
Packit 90a5c9
  fi
Packit 90a5c9
])
Packit 90a5c9
Packit 90a5c9
dnl
Packit 90a5c9
dnl APACHE_EXPORT_ARGUMENTS
Packit 90a5c9
dnl Export (via APACHE_SUBST) the various path-related variables that
Packit 90a5c9
dnl apache will use while generating scripts like autoconf and apxs and
Packit 90a5c9
dnl the default config file.
Packit 90a5c9
Packit 90a5c9
AC_DEFUN([APACHE_SUBST_EXPANDED_ARG],[
Packit 90a5c9
  APR_EXPAND_VAR(exp_$1, [$]$1)
Packit 90a5c9
  APACHE_SUBST(exp_$1)
Packit 90a5c9
  APR_PATH_RELATIVE(rel_$1, [$]exp_$1, ${prefix})
Packit 90a5c9
  APACHE_SUBST(rel_$1)
Packit 90a5c9
])
Packit 90a5c9
Packit 90a5c9
AC_DEFUN([APACHE_EXPORT_ARGUMENTS],[
Packit 90a5c9
  APACHE_SUBST_EXPANDED_ARG(exec_prefix)
Packit 90a5c9
  APACHE_SUBST_EXPANDED_ARG(bindir)
Packit 90a5c9
  APACHE_SUBST_EXPANDED_ARG(sbindir)
Packit 90a5c9
  APACHE_SUBST_EXPANDED_ARG(libdir)
Packit 90a5c9
  APACHE_SUBST_EXPANDED_ARG(libexecdir)
Packit 90a5c9
  APACHE_SUBST_EXPANDED_ARG(mandir)
Packit 90a5c9
  APACHE_SUBST_EXPANDED_ARG(sysconfdir)
Packit 90a5c9
  APACHE_SUBST_EXPANDED_ARG(datadir)
Packit 90a5c9
  APACHE_SUBST_EXPANDED_ARG(installbuilddir)
Packit 90a5c9
  APACHE_SUBST_EXPANDED_ARG(errordir)
Packit 90a5c9
  APACHE_SUBST_EXPANDED_ARG(iconsdir)
Packit 90a5c9
  APACHE_SUBST_EXPANDED_ARG(htdocsdir)
Packit 90a5c9
  APACHE_SUBST_EXPANDED_ARG(manualdir)
Packit 90a5c9
  APACHE_SUBST_EXPANDED_ARG(cgidir)
Packit 90a5c9
  APACHE_SUBST_EXPANDED_ARG(includedir)
Packit 90a5c9
  APACHE_SUBST_EXPANDED_ARG(localstatedir)
Packit 90a5c9
  APACHE_SUBST_EXPANDED_ARG(runtimedir)
Packit 90a5c9
  APACHE_SUBST_EXPANDED_ARG(logfiledir)
Packit 90a5c9
  APACHE_SUBST_EXPANDED_ARG(proxycachedir)
Packit 90a5c9
])
Packit 90a5c9
Packit 90a5c9
dnl 
Packit 90a5c9
dnl APACHE_CHECK_APxVER({apr|apu}, major, minor, 
Packit 90a5c9
dnl                     [actions-if-ok], [actions-if-not-ok])
Packit 90a5c9
dnl
Packit 90a5c9
dnl Checks for APR or APR-util of given major/minor version or later; 
Packit 90a5c9
dnl if so, runs actions-if-ok; otherwise runs actions-if-not-ok if given.
Packit 90a5c9
dnl If the version is not satisfactory and actions-if-not-ok is not
Packit 90a5c9
dnl given, then an error is printed and the configure script is aborted.
Packit 90a5c9
dnl
Packit 90a5c9
dnl The first argument must be [apr] or [apu].
Packit 90a5c9
dnl
Packit 90a5c9
AC_DEFUN([APACHE_CHECK_APxVER], [
Packit 90a5c9
define(ap_ckver_major, translit($1, [apru], [APRU])[_MAJOR_VERSION])
Packit 90a5c9
define(ap_ckver_minor, translit($1, [apru], [APRU])[_MINOR_VERSION])
Packit 90a5c9
define(ap_ckver_cvar, [ap_cv_$1ver$2$3])
Packit 90a5c9
define(ap_ckver_name, ifelse([$1],[apr],[APR],[APR-util]))
Packit 90a5c9
Packit 90a5c9
ap_ckver_CPPFLAGS="$CPPFLAGS"
Packit 90a5c9
CPPFLAGS="$CPPFLAGS `$[$1]_config --includes`"
Packit 90a5c9
Packit 90a5c9
AC_CACHE_CHECK([for ap_ckver_name version $2.$3.0 or later], ap_ckver_cvar, [
Packit 90a5c9
AC_EGREP_CPP([good], [
Packit 90a5c9
#include <$1_version.h>
Packit 90a5c9
#if ]ap_ckver_major[ > $2 || (]ap_ckver_major[ == $2 && ]ap_ckver_minor[ >= $3)
Packit 90a5c9
good
Packit 90a5c9
#endif
Packit 90a5c9
], [ap_ckver_cvar=yes], [ap_ckver_cvar=no])])
Packit 90a5c9
Packit 90a5c9
if test "$ap_ckver_cvar" = "yes"; then
Packit 90a5c9
  ifelse([$4],[],[:],[$4])
Packit 90a5c9
else
Packit 90a5c9
  ifelse([$5],[],[AC_MSG_ERROR([ap_ckver_name version $2.$3.0 or later is required])], [$5])
Packit 90a5c9
fi
Packit 90a5c9
Packit 90a5c9
CPPFLAGS="$ap_ckver_CPPFLAGS"
Packit 90a5c9
Packit 90a5c9
undefine([ap_ckver_major])
Packit 90a5c9
undefine([ap_ckver_minor])
Packit 90a5c9
undefine([ap_ckver_cvar])
Packit 90a5c9
undefine([ap_ckver_name])
Packit 90a5c9
])
Packit 90a5c9
Packit 90a5c9
dnl
Packit 90a5c9
dnl APACHE_CHECK_VOID_PTR_LEN
Packit 90a5c9
dnl
Packit 90a5c9
dnl Checks if the size of a void pointer is at least as big as a "long" 
Packit 90a5c9
dnl integer type.
Packit 90a5c9
dnl
Packit 90a5c9
AC_DEFUN([APACHE_CHECK_VOID_PTR_LEN], [
Packit 90a5c9
Packit 90a5c9
AC_CACHE_CHECK([for void pointer length], [ap_cv_void_ptr_lt_long],
Packit 90a5c9
[AC_TRY_RUN([
Packit 90a5c9
int main(void)
Packit 90a5c9
{
Packit 90a5c9
    return sizeof(void *) < sizeof(long); 
Packit 90a5c9
}], [ap_cv_void_ptr_lt_long=no], [ap_cv_void_ptr_lt_long=yes], 
Packit 90a5c9
    [ap_cv_void_ptr_lt_long=yes])])
Packit 90a5c9
Packit 90a5c9
if test "$ap_cv_void_ptr_lt_long" = "yes"; then
Packit 90a5c9
    AC_MSG_ERROR([Size of "void *" is less than size of "long"])
Packit 90a5c9
fi
Packit 90a5c9
])
Packit 90a5c9
Packit 90a5c9
dnl
Packit 90a5c9
dnl APACHE_CHECK_APR_HAS_LDAP
Packit 90a5c9
dnl
Packit 90a5c9
dnl Check if APR_HAS_LDAP is 1
Packit 90a5c9
dnl Unfortunately, we can't use APR_CHECK_APR_DEFINE (because it only includes apr.h)
Packit 90a5c9
dnl or APR_CHECK_DEFINE (because it only checks for defined'ness and not for 0/1).
Packit 90a5c9
dnl
Packit 90a5c9
AC_DEFUN([APACHE_CHECK_APR_HAS_LDAP], [
Packit 90a5c9
  AC_CACHE_CHECK([for ldap support in apr/apr-util],ac_cv_APR_HAS_LDAP,[
Packit 90a5c9
    apache_old_cppflags="$CPPFLAGS"
Packit 90a5c9
    CPPFLAGS="$CPPFLAGS $INCLUDES"
Packit 90a5c9
    AC_EGREP_CPP(YES_IS_DEFINED, [
Packit 90a5c9
#include <apr_ldap.h>
Packit 90a5c9
#if APR_HAS_LDAP
Packit 90a5c9
YES_IS_DEFINED
Packit 90a5c9
#endif
Packit 90a5c9
    ], ac_cv_APR_HAS_LDAP=yes, ac_cv_APR_HAS_LDAP=no)
Packit 90a5c9
    CPPFLAGS="$apache_old_cppflags"
Packit 90a5c9
  ])
Packit 90a5c9
])
Packit 90a5c9
Packit 90a5c9
dnl
Packit 90a5c9
dnl APACHE_ADD_GCC_CFLAG
Packit 90a5c9
dnl
Packit 90a5c9
dnl Check if compiler is gcc and supports flag. If yes, add to NOTEST_CFLAGS.
Packit 90a5c9
dnl NOTEST_CFLAGS is merged lately, thus it won't accumulate in CFLAGS here.
Packit 90a5c9
dnl Also, AC_LANG_PROGRAM() itself is known to trigger [-Wstrict-prototypes]
Packit 90a5c9
dnl with some autoconf versions, so we force -Wno-strict-prototypes for the
Packit 90a5c9
dnl check to avoid spurious failures when adding flags like -Werror.
Packit 90a5c9
dnl
Packit 90a5c9
AC_DEFUN([APACHE_ADD_GCC_CFLAG], [
Packit 90a5c9
  define([ap_gcc_ckvar], [ac_cv_gcc_]translit($1, [-:.=], [____]))
Packit 90a5c9
  if test "$GCC" = "yes"; then
Packit 90a5c9
    AC_CACHE_CHECK([whether gcc accepts $1], ap_gcc_ckvar, [
Packit 90a5c9
      save_CFLAGS="$CFLAGS"
Packit 90a5c9
      CFLAGS="$CFLAGS $1 -Wno-strict-prototypes"
Packit 90a5c9
      AC_COMPILE_IFELSE([AC_LANG_PROGRAM()],
Packit 90a5c9
        [ap_gcc_ckvar=yes], [ap_gcc_ckvar=no])
Packit 90a5c9
      CFLAGS="$save_CFLAGS"
Packit 90a5c9
    ])
Packit 90a5c9
    if test "$]ap_gcc_ckvar[" = "yes" ; then
Packit 90a5c9
       APR_ADDTO(NOTEST_CFLAGS,[$1])
Packit 90a5c9
    fi
Packit 90a5c9
  fi
Packit 90a5c9
  undefine([ap_gcc_ckvar])
Packit 90a5c9
])