2 dnl APACHE_HELP_STRING(LHS, RHS)
3 dnl Autoconf 2.50 can not handle substr correctly. It does have
4 dnl AC_HELP_STRING, so let's try to call it if we can.
5 dnl Note: this define must be on one line so that it can be properly returned
6 dnl as the help string.
7 AC_DEFUN(APACHE_HELP_STRING,[ifelse(regexp(AC_ACVERSION, 2\.1), -1, AC_HELP_STRING($1,$2),[ ]$1 substr([ ],len($1))$2)])dnl
9 dnl APACHE_SUBST(VARIABLE)
10 dnl Makes VARIABLE available in generated files
11 dnl (do not use @variable@ in Makefiles, but $(variable))
12 AC_DEFUN(APACHE_SUBST,[
13 APACHE_VAR_SUBST="$APACHE_VAR_SUBST $1"
17 dnl APACHE_FAST_OUTPUT(FILENAME)
18 dnl Perform substitutions on FILENAME (Makefiles only)
19 AC_DEFUN(APACHE_FAST_OUTPUT,[
20 APACHE_FAST_OUTPUT_FILES="$APACHE_FAST_OUTPUT_FILES $1"
23 dnl APACHE_GEN_CONFIG_VARS
24 dnl Creates config_vars.mk
25 AC_DEFUN(APACHE_GEN_CONFIG_VARS,[
26 APACHE_SUBST(abs_srcdir)
30 APACHE_SUBST(logfiledir)
31 APACHE_SUBST(exec_prefix)
33 APACHE_SUBST(localstatedir)
36 APACHE_SUBST(libexecdir)
37 APACHE_SUBST(htdocsdir)
38 APACHE_SUBST(manualdir)
39 APACHE_SUBST(includedir)
40 APACHE_SUBST(errordir)
41 APACHE_SUBST(iconsdir)
42 APACHE_SUBST(sysconfdir)
43 APACHE_SUBST(installbuilddir)
44 APACHE_SUBST(runtimedir)
45 APACHE_SUBST(proxycachedir)
46 APACHE_SUBST(other_targets)
47 APACHE_SUBST(progname)
53 APACHE_SUBST(CPPFLAGS)
55 APACHE_SUBST(CXXFLAGS)
58 APACHE_SUBST(LT_LDFLAGS)
59 APACHE_SUBST(SH_LDFLAGS)
60 APACHE_SUBST(HTTPD_LDFLAGS)
61 APACHE_SUBST(UTIL_LDFLAGS)
64 APACHE_SUBST(INCLUDES)
65 APACHE_SUBST(NOTEST_CPPFLAGS)
66 APACHE_SUBST(NOTEST_CFLAGS)
67 APACHE_SUBST(NOTEST_CXXFLAGS)
68 APACHE_SUBST(NOTEST_LDFLAGS)
69 APACHE_SUBST(NOTEST_LIBS)
70 APACHE_SUBST(EXTRA_CPPFLAGS)
71 APACHE_SUBST(EXTRA_CFLAGS)
72 APACHE_SUBST(EXTRA_CXXFLAGS)
73 APACHE_SUBST(EXTRA_LDFLAGS)
74 APACHE_SUBST(EXTRA_LIBS)
75 APACHE_SUBST(EXTRA_INCLUDES)
76 APACHE_SUBST(INTERNAL_CPPFLAGS)
80 APACHE_SUBST(MODULE_DIRS)
81 APACHE_SUBST(MODULE_CLEANDIRS)
84 APACHE_SUBST(CORE_IMPLIB_FILE)
85 APACHE_SUBST(CORE_IMPLIB)
87 APACHE_SUBST(SH_LIBTOOL)
88 APACHE_SUBST(MK_IMPLIB)
90 APACHE_SUBST(INSTALL_PROG_FLAGS)
91 APACHE_SUBST(DSO_MODULES)
92 APACHE_SUBST(ENABLED_DSO_MODULES)
93 APACHE_SUBST(LOAD_ALL_MODULES)
94 APACHE_SUBST(APR_BINDIR)
95 APACHE_SUBST(APR_INCLUDEDIR)
96 APACHE_SUBST(APR_VERSION)
97 APACHE_SUBST(APR_CONFIG)
98 APACHE_SUBST(APU_BINDIR)
99 APACHE_SUBST(APU_INCLUDEDIR)
100 APACHE_SUBST(APU_VERSION)
101 APACHE_SUBST(APU_CONFIG)
102 APACHE_SUBST(APREQ_MAJOR_VERSION)
103 APACHE_SUBST(APREQ_LIBTOOL_VERSION)
105 abs_srcdir="`(cd $srcdir && pwd)`"
107 echo creating config_vars.mk
108 test -d build || $mkdir_p build
109 > build/config_vars.mk
110 for i in $APACHE_VAR_SUBST; do
111 eval echo "$i = \$$i" >> build/config_vars.mk
115 dnl APACHE_GEN_MAKEFILES
116 dnl Creates Makefiles
117 AC_DEFUN(APACHE_GEN_MAKEFILES,[
118 $SHELL $srcdir/build/fastgen.sh $srcdir $ac_cv_mkdir_p $BSD_MAKEFILE $APACHE_FAST_OUTPUT_FILES
121 dnl ## APACHE_OUTPUT(file)
122 dnl ## adds "file" to the list of files generated by AC_OUTPUT
123 dnl ## This macro can be used several times.
124 AC_DEFUN(APACHE_OUTPUT, [
125 APACHE_OUTPUT_FILES="$APACHE_OUTPUT_FILES $1"
129 dnl APACHE_TYPE_RLIM_T
131 dnl If rlim_t is not defined, define it to int
133 AC_DEFUN(APACHE_TYPE_RLIM_T, [
134 AC_CACHE_CHECK([for rlim_t], ac_cv_type_rlim_t, [
136 #include <sys/types.h>
137 #include <sys/time.h>
138 #include <sys/resource.h>
139 ], [rlim_t spoon;], [
140 ac_cv_type_rlim_t=yes
141 ],[ac_cv_type_rlim_t=no
144 if test "$ac_cv_type_rlim_t" = "no" ; then
145 AC_DEFINE(rlim_t, int,
146 [Define to 'int' if <sys/resource.h> doesn't define it for us])
150 dnl APACHE_MODPATH_INIT(modpath)
151 AC_DEFUN(APACHE_MODPATH_INIT,[
153 modpath_current=modules/$1
156 test -d $1 || $srcdir/build/mkdir.sh $modpath_current
157 > $modpath_current/modules.mk
160 AC_DEFUN(APACHE_MODPATH_FINISH,[
161 echo "DISTCLEAN_TARGETS = modules.mk" >> $modpath_current/modules.mk
162 echo "static = $modpath_static" >> $modpath_current/modules.mk
163 echo "shared = $modpath_shared" >> $modpath_current/modules.mk
164 if test ! -z "$modpath_static" -o ! -z "$modpath_shared"; then
165 MODULE_DIRS="$MODULE_DIRS $current_dir"
167 MODULE_CLEANDIRS="$MODULE_CLEANDIRS $current_dir"
169 APACHE_FAST_OUTPUT($modpath_current/Makefile)
172 dnl APACHE_MODPATH_ADD(name[, shared[, objects [, ldflags[, libs]]]])
173 AC_DEFUN(APACHE_MODPATH_ADD,[
174 if test -z "$3"; then
180 if test -z "$module_standalone"; then
181 if test -z "$2"; then
182 # The filename of a convenience library must have a "lib" prefix:
183 libname="libmod_$1.la"
184 BUILTIN_LIBS="$BUILTIN_LIBS $modpath_current/$libname"
185 modpath_static="$modpath_static $libname"
186 cat >>$modpath_current/modules.mk<<EOF
188 \$(MOD_LINK) $objects $5
190 if test ! -z "$5"; then
191 APR_ADDTO(AP_LIBS, [$5])
194 apache_need_shared=yes
196 shobjects=`echo $objects | sed 's/\.lo/.slo/g'`
197 modpath_shared="$modpath_shared $libname"
198 cat >>$modpath_current/modules.mk<<EOF
200 \$(SH_LINK) -rpath \$(libexecdir) -module -avoid-version $4 $objects $5
207 dnl APACHE_MPM_MODULE(name[, shared[, objects[, config[, path[, libs]]]]])
209 dnl Provide information for building the MPM. (Enablement is handled using
210 dnl --with-mpm/--enable-mpms-shared.)
212 dnl name -- name of MPM, same as MPM directory name
213 dnl shared -- "shared" to indicate shared module build, empty string otherwise
214 dnl objects -- one or more .lo files to link into the MPM module (default: mpmname.lo)
215 dnl config -- configuration logic to run if the MPM is enabled
216 dnl path -- relative path to MPM (default: server/mpm/mpmname)
217 dnl libs -- libs needed by this MPM
219 AC_DEFUN(APACHE_MPM_MODULE,[
220 if ap_mpm_is_enabled $1; then
221 if test -z "$3"; then
227 if test -z "$5"; then
228 mpmpath="server/mpm/$1"
234 test -d $mpmpath || $srcdir/build/mkdir.sh $mpmpath
236 APACHE_FAST_OUTPUT($mpmpath/Makefile)
238 if test -z "$2"; then
239 APR_ADDTO(AP_LIBS, [$6])
241 cat >$mpmpath/modules.mk<<EOF
243 \$(MOD_LINK) $objects
244 DISTCLEAN_TARGETS = modules.mk
249 apache_need_shared=yes
250 libname="mod_mpm_$1.la"
251 shobjects=`echo $objects | sed 's/\.lo/.slo/g'`
252 cat >$mpmpath/modules.mk<<EOF
254 \$(SH_LINK) -rpath \$(libexecdir) -module -avoid-version $objects $6
255 DISTCLEAN_TARGETS = modules.mk
259 # add default MPM to LoadModule list
260 if test $1 = $default_mpm; then
261 DSO_MODULES="$DSO_MODULES mpm_$1"
262 ENABLED_DSO_MODULES="${ENABLED_DSO_MODULES},mpm_$1"
270 dnl APACHE_MODULE(name, helptext[, objects[, structname[, default[, config[, prereq_module]]]]])
272 dnl default is one of:
273 dnl yes -- enabled by default. user must explicitly disable.
274 dnl no -- disabled under default, most, all. user must explicitly enable.
275 dnl most -- disabled by default. enabled explicitly or with most or all.
276 dnl static -- enabled as static by default, must be explicitly changed.
277 dnl "" -- disabled under default, most. enabled explicitly or with all.
278 dnl XXX: The arg must really be empty here. Passing an empty shell
279 dnl XXX: variable doesn't work for some reason. This should be
282 dnl basically: yes/no is a hard setting. "most" means follow the "most"
283 dnl setting. otherwise, fall under the "all" setting.
284 dnl explicit yes/no always overrides, except if the user selects
287 dnl prereq_module is a module (without the "mod_" prefix) that must be enabled
288 dnl if the current module is enabled. If the current module is built
289 dnl statically, prereq_module must be built statically, too. If these
290 dnl conditions are not fulfilled, configure will abort if the current module
291 dnl has been enabled explicitly. Otherwise, configure will disable the
293 dnl prereq_module's APACHE_MODULE() statement must have been processed
294 dnl before the current APACHE_MODULE() statement.
296 AC_DEFUN(APACHE_MODULE,[
297 AC_MSG_CHECKING(whether to enable mod_$1)
298 define([optname],[--]ifelse($5,yes,disable,enable)[-]translit($1,_,-))dnl
299 AC_ARG_ENABLE(translit($1,_,-),APACHE_HELP_STRING(optname(),$2),force_$1=$enableval,enable_$1=ifelse($5,,maybe-all,$5))
300 undefine([optname])dnl
302 dnl When --enable-modules=most or --enable-modules=(really)all is set and the
303 dnl module was not explicitly requested, allow a module to disable itself if
304 dnl its pre-reqs fail.
307 _apmod_required="yes"
310 case "$module_selection" in
315 _apmod_required="yes"
319 if test "$enable_$1" = "static"; then
321 elif test "$enable_$1" = "yes"; then
322 enable_$1=$module_default
323 elif test "$enable_$1" = "most"; then
324 if test "$module_selection" = "most" -o "$module_selection" = "all" -o \
325 "$module_selection" = "reallyall"
327 enable_$1=$module_default
328 elif test "$module_selection" = "few" -o "$module_selection" = "none"; then
331 _apmod_extra_msg=" ($module_selection)"
332 elif test "$enable_$1" = "maybe-all"; then
333 if test "$module_selection" = "all" -o "$module_selection" = "reallyall"
335 enable_$1=$module_default
336 _apmod_extra_msg=" ($module_selection)"
340 elif test "$enable_$1" = "no" -a "$module_selection" = "reallyall" -a \
341 "$force_$1" != "no" ; then
342 enable_$1=$module_default
343 _apmod_extra_msg=" ($module_selection)"
345 if test "$enable_$1" != "no"; then
346 dnl If we plan to enable it, allow the module to run some autoconf magic
347 dnl that may disable it because of missing dependencies.
349 [AC_MSG_RESULT([checking dependencies])
350 ifelse([$7],,:,[if test "$enable_$7" = "no" ; then
352 AC_MSG_WARN("mod_$7 is disabled but required for mod_$1")
353 elif test "$enable_$1" = "static" && test "$enable_$7" != "static" ; then
355 AC_MSG_WARN("cannot build mod_$1 statically if mod_$7 is built shared")
357 ifelse([$6],,:,[ $6])
359 AC_MSG_CHECKING(whether to enable mod_$1)
360 if test "$enable_$1" = "no"; then
361 if test "$_apmod_required" = "no"; then
362 _apmod_extra_msg=" (disabled)"
364 AC_MSG_ERROR([mod_$1 has been requested but can not be built due to prerequisite failures])
368 AC_MSG_RESULT($enable_$1$_apmod_extra_msg)
369 if test "$enable_$1" != "no"; then
372 MODLIST="$MODLIST ifelse($4,,$1,$4)"
373 if test "$1" = "so"; then
378 enable_$1=`echo $enable_$1|sed 's/shared,*//'`
381 DSO_MODULES="$DSO_MODULES $1"
382 if test "$5" = "yes" ; then
383 ENABLED_DSO_MODULES="${ENABLED_DSO_MODULES},$1"
387 define([modprefix], [MOD_]translit($1, [a-z-], [A-Z_]))
388 APACHE_MODPATH_ADD($1, $shared, $3,, [\$(]modprefix[_LDADD)])
389 APACHE_SUBST(modprefix[_LDADD])
390 undefine([modprefix])
395 dnl APACHE_ENABLE_MODULES
397 AC_DEFUN(APACHE_ENABLE_MODULES,[
398 module_selection=most
399 module_default=shared
401 dnl Check whether we have DSO support.
402 dnl If "yes", we build shared modules by default.
403 APR_CHECK_APR_DEFINE(APR_HAS_DSO)
405 if test $ac_cv_define_APR_HAS_DSO = "no"; then
406 AC_MSG_WARN([Missing DSO support - building static modules by default.])
407 module_default=static
411 AC_ARG_ENABLE(modules,
412 APACHE_HELP_STRING(--enable-modules=MODULE-LIST,Space-separated list of modules to enable | "all" | "most" | "few" | "none" | "reallyall"),[
413 if test "$enableval" = "none"; then
415 module_selection=none
417 for i in $enableval; do
418 if test "$i" = "all" -o "$i" = "most" -o "$i" = "few" -o "$i" = "reallyall"
422 i=`echo $i | sed 's/-/_/g'`
423 eval "enable_$i=shared"
429 AC_ARG_ENABLE(mods-shared,
430 APACHE_HELP_STRING(--enable-mods-shared=MODULE-LIST,Space-separated list of shared modules to enable | "all" | "most" | "few" | "reallyall"),[
431 for i in $enableval; do
432 if test "$i" = "all" -o "$i" = "most" -o "$i" = "few" -o "$i" = "reallyall"
435 module_default=shared
437 i=`echo $i | sed 's/-/_/g'`
438 eval "enable_$i=shared"
443 AC_ARG_ENABLE(mods-static,
444 APACHE_HELP_STRING(--enable-mods-static=MODULE-LIST,Space-separated list of static modules to enable | "all" | "most" | "few" | "reallyall"),[
445 for i in $enableval; do
446 if test "$i" = "all" -o "$i" = "most" -o "$i" = "few" -o "$i" = "reallyall"; then
448 module_default=static
450 i=`echo $i | sed 's/-/_/g'`
451 eval "enable_$i=static"
457 AC_DEFUN(APACHE_REQUIRE_CXX,[
458 if test -z "$apache_cxx_done"; then
466 dnl APACHE_CHECK_OPENSSL
468 dnl Configure for OpenSSL, giving preference to
469 dnl "--with-ssl=<path>" if it was specified.
471 AC_DEFUN(APACHE_CHECK_OPENSSL,[
472 AC_CACHE_CHECK([for OpenSSL], [ac_cv_openssl], [
473 dnl initialise the variables we use
479 dnl Determine the OpenSSL base directory, if any
480 AC_MSG_CHECKING([for user-provided OpenSSL base directory])
481 AC_ARG_WITH(ssl, APACHE_HELP_STRING(--with-ssl=DIR,OpenSSL base directory), [
482 dnl If --with-ssl specifies a directory, we use that directory
483 if test "x$withval" != "xyes" -a "x$withval" != "x"; then
484 dnl This ensures $withval is actually a directory and that it is absolute
485 ap_openssl_base="`cd $withval ; pwd`"
488 if test "x$ap_openssl_base" = "x"; then
491 AC_MSG_RESULT($ap_openssl_base)
494 dnl Run header and version checks
495 saved_CPPFLAGS="$CPPFLAGS"
497 saved_LDFLAGS="$LDFLAGS"
500 dnl Before doing anything else, load in pkg-config variables
501 if test -n "$PKGCONFIG"; then
502 saved_PKG_CONFIG_PATH="$PKG_CONFIG_PATH"
503 if test "x$ap_openssl_base" != "x" -a \
504 -f "${ap_openssl_base}/lib/pkgconfig/openssl.pc"; then
505 dnl Ensure that the given path is used by pkg-config too, otherwise
506 dnl the system openssl.pc might be picked up instead.
507 PKG_CONFIG_PATH="${ap_openssl_base}/lib/pkgconfig${PKG_CONFIG_PATH+:}${PKG_CONFIG_PATH}"
508 export PKG_CONFIG_PATH
510 ap_openssl_libs="`$PKGCONFIG --libs-only-l openssl 2>&1`"
511 if test $? -eq 0; then
512 ap_openssl_found="yes"
513 pkglookup="`$PKGCONFIG --cflags-only-I openssl`"
514 APR_ADDTO(CPPFLAGS, [$pkglookup])
515 APR_ADDTO(INCLUDES, [$pkglookup])
516 pkglookup="`$PKGCONFIG --libs-only-L --libs-only-other openssl`"
517 APR_ADDTO(LDFLAGS, [$pkglookup])
518 APR_ADDTO(SSL_LIBS, [$pkglookup])
520 PKG_CONFIG_PATH="$saved_PKG_CONFIG_PATH"
523 dnl fall back to the user-supplied directory if not found via pkg-config
524 if test "x$ap_openssl_base" != "x" -a "x$ap_openssl_found" = "x"; then
525 APR_ADDTO(CPPFLAGS, [-I$ap_openssl_base/include])
526 APR_ADDTO(INCLUDES, [-I$ap_openssl_base/include])
527 APR_ADDTO(LDFLAGS, [-L$ap_openssl_base/lib])
528 APR_ADDTO(SSL_LIBS, [-L$ap_openssl_base/lib])
529 if test "x$ap_platform_runtime_link_flag" != "x"; then
530 APR_ADDTO(LDFLAGS, [$ap_platform_runtime_link_flag$ap_openssl_base/lib])
531 APR_ADDTO(SSL_LIBS, [$ap_platform_runtime_link_flag$ap_openssl_base/lib])
535 AC_MSG_CHECKING([for OpenSSL version >= 0.9.7])
536 AC_TRY_COMPILE([#include <openssl/opensslv.h>],[
537 #if !defined(OPENSSL_VERSION_NUMBER)
538 #error "Missing OpenSSL version"
540 #if OPENSSL_VERSION_NUMBER < 0x0090700f
541 #error "Unsupported OpenSSL version " OPENSSL_VERSION_TEXT
545 [AC_MSG_RESULT(FAILED)])
547 if test "x$ac_cv_openssl" = "xyes"; then
548 ap_openssl_libs="-lssl -lcrypto `$apr_config --libs`"
549 APR_ADDTO(SSL_LIBS, [$ap_openssl_libs])
550 APR_ADDTO(LIBS, [$ap_openssl_libs])
551 APACHE_SUBST(SSL_LIBS)
553 dnl Run library and function checks
555 AC_CHECK_HEADERS([openssl/engine.h])
556 AC_CHECK_FUNCS([SSLeay_version SSL_CTX_new], [], [liberrors="yes"])
557 AC_CHECK_FUNCS([ENGINE_init ENGINE_load_builtin_engines])
558 if test "x$liberrors" != "x"; then
559 AC_MSG_WARN([OpenSSL libraries are unusable])
562 AC_MSG_WARN([OpenSSL version is too old])
566 CPPFLAGS="$saved_CPPFLAGS"
568 LDFLAGS="$saved_LDFLAGS"
570 if test "x$ac_cv_openssl" = "xyes"; then
571 AC_DEFINE(HAVE_OPENSSL, 1, [Define if OpenSSL is available])
576 dnl APACHE_CHECK_SERF
578 dnl Configure for the detected libserf, giving preference to
579 dnl "--with-serf=<path>" if it was specified.
581 AC_DEFUN([APACHE_CHECK_SERF], [
582 AC_CACHE_CHECK([for libserf], [ac_cv_serf], [
586 AC_ARG_WITH(serf, APACHE_HELP_STRING([--with-serf=PREFIX],
587 [Serf client library]),
589 if test "$withval" = "yes" ; then
596 if test "$serf_prefix" != "no" ; then
597 save_cppflags="$CPPFLAGS"
598 CPPFLAGS="$CPPFLAGS $APR_INCLUDES $APU_INCLUDES -I$serf_prefix/include/serf-0"
599 AC_CHECK_HEADERS(serf.h,[
600 save_ldflags="$LDFLAGS"
601 LDFLAGS="$LDFLAGS -L$serf_prefix/lib"
602 AC_CHECK_LIB(serf-0, serf_context_create,[ac_cv_serf="yes"])
603 LDFLAGS="$save_ldflags"])
604 CPPFLAGS="$save_cppflags"
608 APACHE_SUBST(SERF_LIBS)
609 if test "$ac_cv_serf" = "yes"; then
610 AC_DEFINE(HAVE_SERF, 1, [Define if libserf is available])
611 APR_SETVAR(SERF_LIBS, [-L$serf_prefix/lib -lserf-0])
612 APR_ADDTO(INCLUDES, [-I$serf_prefix/include/serf-0])
618 dnl APACHE_EXPORT_ARGUMENTS
619 dnl Export (via APACHE_SUBST) the various path-related variables that
620 dnl apache will use while generating scripts like autoconf and apxs and
621 dnl the default config file.
623 AC_DEFUN(APACHE_SUBST_EXPANDED_ARG,[
624 APR_EXPAND_VAR(exp_$1, [$]$1)
626 APR_PATH_RELATIVE(rel_$1, [$]exp_$1, ${prefix})
630 AC_DEFUN(APACHE_EXPORT_ARGUMENTS,[
631 APACHE_SUBST_EXPANDED_ARG(exec_prefix)
632 APACHE_SUBST_EXPANDED_ARG(bindir)
633 APACHE_SUBST_EXPANDED_ARG(sbindir)
634 APACHE_SUBST_EXPANDED_ARG(libdir)
635 APACHE_SUBST_EXPANDED_ARG(libexecdir)
636 APACHE_SUBST_EXPANDED_ARG(mandir)
637 APACHE_SUBST_EXPANDED_ARG(sysconfdir)
638 APACHE_SUBST_EXPANDED_ARG(datadir)
639 APACHE_SUBST_EXPANDED_ARG(installbuilddir)
640 APACHE_SUBST_EXPANDED_ARG(errordir)
641 APACHE_SUBST_EXPANDED_ARG(iconsdir)
642 APACHE_SUBST_EXPANDED_ARG(htdocsdir)
643 APACHE_SUBST_EXPANDED_ARG(manualdir)
644 APACHE_SUBST_EXPANDED_ARG(cgidir)
645 APACHE_SUBST_EXPANDED_ARG(includedir)
646 APACHE_SUBST_EXPANDED_ARG(localstatedir)
647 APACHE_SUBST_EXPANDED_ARG(runtimedir)
648 APACHE_SUBST_EXPANDED_ARG(logfiledir)
649 APACHE_SUBST_EXPANDED_ARG(proxycachedir)
653 dnl APACHE_CHECK_APxVER({apr|apu}, major, minor,
654 dnl [actions-if-ok], [actions-if-not-ok])
656 dnl Checks for APR or APR-util of given major/minor version or later;
657 dnl if so, runs actions-if-ok; otherwise runs actions-if-not-ok if given.
658 dnl If the version is not satisfactory and actions-if-not-ok is not
659 dnl given, then an error is printed and the configure script is aborted.
661 dnl The first argument must be [apr] or [apu].
663 AC_DEFUN([APACHE_CHECK_APxVER], [
664 define(ap_ckver_major, translit($1, [apru], [APRU])[_MAJOR_VERSION])
665 define(ap_ckver_minor, translit($1, [apru], [APRU])[_MINOR_VERSION])
666 define(ap_ckver_cvar, [ap_cv_$1ver$2$3])
667 define(ap_ckver_name, ifelse([$1],[apr],[APR],[APR-util]))
669 ap_ckver_CPPFLAGS="$CPPFLAGS"
670 CPPFLAGS="$CPPFLAGS `$[$1]_config --includes`"
672 AC_CACHE_CHECK([for ap_ckver_name version $2.$3.0 or later], ap_ckver_cvar, [
673 AC_EGREP_CPP([good], [
674 #include <$1_version.h>
675 #if ]ap_ckver_major[ > $2 || (]ap_ckver_major[ == $2 && ]ap_ckver_minor[ >= $3)
678 ], [ap_ckver_cvar=yes], [ap_ckver_cvar=no])])
680 if test "$ap_ckver_cvar" = "yes"; then
681 ifelse([$4],[],[:],[$4])
683 ifelse([$5],[],[AC_MSG_ERROR([ap_ckver_name version $2.$3.0 or later is required])], [$5])
686 CPPFLAGS="$ap_ckver_CPPFLAGS"
688 undefine([ap_ckver_major])
689 undefine([ap_ckver_minor])
690 undefine([ap_ckver_cvar])
691 undefine([ap_ckver_name])
695 dnl APACHE_CHECK_VOID_PTR_LEN
697 dnl Checks if the size of a void pointer is at least as big as a "long"
700 AC_DEFUN([APACHE_CHECK_VOID_PTR_LEN], [
702 AC_CACHE_CHECK([for void pointer length], [ap_cv_void_ptr_lt_long],
706 return sizeof(void *) < sizeof(long);
707 }], [ap_cv_void_ptr_lt_long=no], [ap_cv_void_ptr_lt_long=yes],
708 [ap_cv_void_ptr_lt_long=yes])])
710 if test "$ap_cv_void_ptr_lt_long" = "yes"; then
711 AC_MSG_ERROR([Size of "void *" is less than size of "long"])
716 dnl APACHE_CHECK_APR_HAS_LDAP
718 dnl Check if APR_HAS_LDAP is 1
719 dnl Unfortunately, we can't use APR_CHECK_APR_DEFINE (because it only includes apr.h)
720 dnl or APR_CHECK_DEFINE (because it only checks for defined'ness and not for 0/1).
722 AC_DEFUN([APACHE_CHECK_APR_HAS_LDAP], [
723 AC_CACHE_CHECK([for ldap support in apr/apr-util],ac_cv_APR_HAS_LDAP,[
724 apache_old_cppflags="$CPPFLAGS"
725 CPPFLAGS="$CPPFLAGS $INCLUDES"
726 AC_EGREP_CPP(YES_IS_DEFINED, [
727 #include <apr_ldap.h>
731 ], ac_cv_APR_HAS_LDAP=yes, ac_cv_APR_HAS_LDAP=no)
732 CPPFLAGS="$apache_old_cppflags"
737 dnl APACHE_ADD_GCC_CFLAGS
739 dnl Check if compiler is gcc and supports flag. If yes, add to CFLAGS.
741 AC_DEFUN([APACHE_ADD_GCC_CFLAG], [
742 define([ap_gcc_ckvar], [ac_cv_gcc_]translit($1, [-:.=], [____]))
743 if test "$GCC" = "yes"; then
744 AC_CACHE_CHECK([whether gcc accepts $1], ap_gcc_ckvar, [
745 save_CFLAGS="$CFLAGS"
747 AC_COMPILE_IFELSE([AC_LANG_SOURCE([int foo() { return 0; }])],
748 [ap_gcc_ckvar=yes], [ap_gcc_ckvar=no])
749 CFLAGS="$save_CFLAGS"
751 if test "$]ap_gcc_ckvar[" = "yes" ; then
752 APR_ADDTO(CFLAGS,[$1])
755 undefine([ap_gcc_ckvar])