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(HTTPD_VERSION)
27 APACHE_SUBST(HTTPD_MMN)
28 APACHE_SUBST(abs_srcdir)
32 APACHE_SUBST(logfiledir)
33 APACHE_SUBST(exec_prefix)
35 APACHE_SUBST(localstatedir)
38 APACHE_SUBST(libexecdir)
39 APACHE_SUBST(htdocsdir)
40 APACHE_SUBST(manualdir)
41 APACHE_SUBST(includedir)
42 APACHE_SUBST(errordir)
43 APACHE_SUBST(iconsdir)
44 APACHE_SUBST(sysconfdir)
45 APACHE_SUBST(installbuilddir)
46 APACHE_SUBST(runtimedir)
47 APACHE_SUBST(proxycachedir)
48 APACHE_SUBST(davlockdb)
49 APACHE_SUBST(other_targets)
50 APACHE_SUBST(progname)
56 APACHE_SUBST(CPPFLAGS)
58 APACHE_SUBST(CXXFLAGS)
59 APACHE_SUBST(CC_FOR_BUILD)
60 APACHE_SUBST(CFLAGS_FOR_BUILD)
63 APACHE_SUBST(LT_LDFLAGS)
64 APACHE_SUBST(SH_LDFLAGS)
65 APACHE_SUBST(HTTPD_LDFLAGS)
66 APACHE_SUBST(UTIL_LDFLAGS)
69 APACHE_SUBST(INCLUDES)
70 APACHE_SUBST(NOTEST_CPPFLAGS)
71 APACHE_SUBST(NOTEST_CFLAGS)
72 APACHE_SUBST(NOTEST_CXXFLAGS)
73 APACHE_SUBST(NOTEST_LDFLAGS)
74 APACHE_SUBST(NOTEST_LIBS)
75 APACHE_SUBST(EXTRA_CPPFLAGS)
76 APACHE_SUBST(EXTRA_CFLAGS)
77 APACHE_SUBST(EXTRA_CXXFLAGS)
78 APACHE_SUBST(EXTRA_LDFLAGS)
79 APACHE_SUBST(EXTRA_LIBS)
80 APACHE_SUBST(EXTRA_INCLUDES)
81 APACHE_SUBST(INTERNAL_CPPFLAGS)
85 APACHE_SUBST(MODULE_DIRS)
86 APACHE_SUBST(MODULE_CLEANDIRS)
89 APACHE_SUBST(CORE_IMPLIB_FILE)
90 APACHE_SUBST(CORE_IMPLIB)
92 APACHE_SUBST(SH_LIBTOOL)
93 APACHE_SUBST(MK_IMPLIB)
95 APACHE_SUBST(INSTALL_PROG_FLAGS)
96 APACHE_SUBST(MPM_MODULES)
97 APACHE_SUBST(ENABLED_MPM_MODULE)
98 APACHE_SUBST(DSO_MODULES)
99 APACHE_SUBST(ENABLED_DSO_MODULES)
100 APACHE_SUBST(LOAD_ALL_MODULES)
101 APACHE_SUBST(APR_BINDIR)
102 APACHE_SUBST(APR_INCLUDEDIR)
103 APACHE_SUBST(APR_VERSION)
104 APACHE_SUBST(APR_CONFIG)
105 APACHE_SUBST(APU_BINDIR)
106 APACHE_SUBST(APU_INCLUDEDIR)
107 APACHE_SUBST(APU_VERSION)
108 APACHE_SUBST(APU_CONFIG)
109 APACHE_SUBST(APREQ_MAJOR_VERSION)
110 APACHE_SUBST(APREQ_LIBTOOL_VERSION)
112 abs_srcdir="`(cd $srcdir && pwd)`"
114 AC_MSG_NOTICE([creating config_vars.mk])
115 test -d build || $mkdir_p build
116 > build/config_vars.mk
117 for i in $APACHE_VAR_SUBST; do
118 eval echo "$i = \$$i" >> build/config_vars.mk
122 dnl APACHE_GEN_MAKEFILES
123 dnl Creates Makefiles
124 AC_DEFUN([APACHE_GEN_MAKEFILES],[
125 $SHELL $srcdir/build/fastgen.sh $srcdir $ac_cv_mkdir_p $BSD_MAKEFILE $APACHE_FAST_OUTPUT_FILES
128 dnl ## APACHE_OUTPUT(file)
129 dnl ## adds "file" to the list of files generated by AC_OUTPUT
130 dnl ## This macro can be used several times.
131 AC_DEFUN([APACHE_OUTPUT], [
132 APACHE_OUTPUT_FILES="$APACHE_OUTPUT_FILES $1"
136 dnl APACHE_TYPE_RLIM_T
138 dnl If rlim_t is not defined, define it to int
140 AC_DEFUN([APACHE_TYPE_RLIM_T], [
141 AC_CACHE_CHECK([for rlim_t], ac_cv_type_rlim_t, [
143 #include <sys/types.h>
144 #include <sys/time.h>
145 #include <sys/resource.h>
146 ], [rlim_t spoon;], [
147 ac_cv_type_rlim_t=yes
148 ],[ac_cv_type_rlim_t=no
151 if test "$ac_cv_type_rlim_t" = "no" ; then
152 AC_DEFINE(rlim_t, int,
153 [Define to 'int' if <sys/resource.h> doesn't define it for us])
157 dnl the list of build variables which are available for customization on a
158 dnl per module subdir basis (to be inserted into modules.mk with a "MOD_"
159 dnl prefix, i.e. MOD_CFLAGS etc.). Used in APACHE_MODPATH_{INIT,FINISH}.
160 define(mod_buildvars, [CFLAGS CXXFLAGS CPPFLAGS LDFLAGS LIBS INCLUDES])
162 dnl APACHE_MODPATH_INIT(modpath)
163 AC_DEFUN([APACHE_MODPATH_INIT],[
165 modpath_current=modules/$1
168 for var in mod_buildvars; do
171 test -d $1 || $srcdir/build/mkdir.sh $modpath_current
172 > $modpath_current/modules.mk
175 AC_DEFUN([APACHE_MODPATH_FINISH],[
176 echo "DISTCLEAN_TARGETS = modules.mk" >> $modpath_current/modules.mk
177 echo "static = $modpath_static" >> $modpath_current/modules.mk
178 echo "shared = $modpath_shared" >> $modpath_current/modules.mk
179 for var in mod_buildvars; do
180 if eval val=\"\$MOD_$var\"; test -n "$val"; then
181 echo "MOD_$var = $val" >> $modpath_current/modules.mk
184 if test ! -z "$modpath_static" -o ! -z "$modpath_shared"; then
185 MODULE_DIRS="$MODULE_DIRS $current_dir"
187 MODULE_CLEANDIRS="$MODULE_CLEANDIRS $current_dir"
189 APACHE_FAST_OUTPUT($modpath_current/Makefile)
192 dnl APACHE_MODPATH_ADD(name[, shared[, objects [, ldflags[, libs]]]])
193 AC_DEFUN([APACHE_MODPATH_ADD],[
194 if test -z "$3"; then
200 if test -z "$module_standalone"; then
201 if test -z "$2"; then
202 # The filename of a convenience library must have a "lib" prefix:
203 libname="libmod_$1.la"
204 BUILTIN_LIBS="$BUILTIN_LIBS $modpath_current/$libname"
205 modpath_static="$modpath_static $libname"
206 cat >>$modpath_current/modules.mk<<EOF
208 \$(MOD_LINK) $objects $5
210 if test ! -z "$5"; then
211 APR_ADDTO(AP_LIBS, [$5])
214 apache_need_shared=yes
216 shobjects=`echo $objects | sed 's/\.lo/.slo/g'`
217 modpath_shared="$modpath_shared $libname"
218 cat >>$modpath_current/modules.mk<<EOF
220 \$(SH_LINK) -rpath \$(libexecdir) -module -avoid-version $4 $objects $5
225 dnl Same as APACHE_MODPATH_INIT/FINISH but for MPMs
226 dnl APACHE_MPMPATH_INIT(mpmpath)
227 AC_DEFUN([APACHE_MPMPATH_INIT],[
229 modpath_current=server/mpm/$1
232 for var in mod_buildvars; do
235 test -d $1 || $srcdir/build/mkdir.sh $modpath_current
236 > $modpath_current/modules.mk
239 AC_DEFUN([APACHE_MPMPATH_FINISH],[
240 for var in mod_buildvars; do
241 if eval val=\"\$MOD_$var\"; test -n "$val"; then
242 echo "MOD_$var = $val" >> $modpath_current/modules.mk
248 dnl APACHE_MPM_MODULE(name[, shared[, objects[, config[, path[, libs]]]]])
250 dnl Provide information for building the MPM. (Enablement is handled using
251 dnl --with-mpm/--enable-mpms-shared.)
253 dnl name -- name of MPM, same as MPM directory name
254 dnl shared -- "shared" to indicate shared module build, empty string otherwise
255 dnl objects -- one or more .lo files to link into the MPM module (default: mpmname.lo)
256 dnl config -- configuration logic to run if the MPM is enabled
257 dnl path -- relative path to MPM (default: server/mpm/mpmname)
258 dnl libs -- libs needed by this MPM
260 AC_DEFUN([APACHE_MPM_MODULE],[
261 if ap_mpm_is_enabled $1; then
262 if test -z "$3"; then
268 if test -z "$5"; then
269 mpmpath="server/mpm/$1"
275 test -d $mpmpath || $srcdir/build/mkdir.sh $mpmpath
277 APACHE_FAST_OUTPUT($mpmpath/Makefile)
279 if test -z "$2"; then
280 APR_ADDTO(AP_LIBS, [$6])
282 cat >>$mpmpath/modules.mk<<EOF
284 \$(MOD_LINK) $objects
285 DISTCLEAN_TARGETS = modules.mk
290 apache_need_shared=yes
291 libname="mod_mpm_$1.la"
292 shobjects=`echo $objects | sed 's/\.lo/.slo/g'`
293 cat >>$mpmpath/modules.mk<<EOF
295 \$(SH_LINK) -rpath \$(libexecdir) -module -avoid-version $objects $6
296 DISTCLEAN_TARGETS = modules.mk
300 MPM_MODULES="$MPM_MODULES mpm_$1"
301 # add default MPM to LoadModule list
302 if test $1 = $default_mpm; then
303 ENABLED_MPM_MODULE="mpm_$1"
311 dnl APACHE_MODULE(name, helptext[, objects[, structname[, default[, config[, prereq_module]]]]])
313 dnl default is one of:
314 dnl yes -- enabled by default. user must explicitly disable.
315 dnl no -- disabled under default, most, all. user must explicitly enable.
316 dnl most -- disabled by default. enabled explicitly or with most or all.
317 dnl static -- enabled as static by default, must be explicitly changed.
318 dnl "" -- disabled under default, most. enabled explicitly or with all.
319 dnl XXX: The arg must really be empty here. Passing an empty shell
320 dnl XXX: variable doesn't work for some reason. This should be
323 dnl basically: yes/no is a hard setting. "most" means follow the "most"
324 dnl setting. otherwise, fall under the "all" setting.
325 dnl explicit yes/no always overrides, except if the user selects
328 dnl prereq_module is a module (without the "mod_" prefix) that must be enabled
329 dnl if the current module is enabled. If the current module is built
330 dnl statically, prereq_module must be built statically, too. If these
331 dnl conditions are not fulfilled, configure will abort if the current module
332 dnl has been enabled explicitly. Otherwise, configure will disable the
334 dnl prereq_module's APACHE_MODULE() statement must have been processed
335 dnl before the current APACHE_MODULE() statement.
337 AC_DEFUN([APACHE_MODULE],[
338 AC_MSG_CHECKING(whether to enable mod_$1)
339 define([optname],[--]ifelse($5,yes,disable,enable)[-]translit($1,_,-))dnl
340 AC_ARG_ENABLE(translit($1,_,-),APACHE_HELP_STRING(optname(),$2),force_$1=$enableval,enable_$1=ifelse($5,,maybe-all,$5))
341 undefine([optname])dnl
343 dnl If the module was not explicitly requested, allow it to disable itself if
344 dnl its pre-reqs fail.
347 _apmod_required="yes"
353 if test "$enable_$1" = "static"; then
355 elif test "$enable_$1" = "yes"; then
356 enable_$1=$module_default
357 elif test "$enable_$1" = "most"; then
358 if test "$module_selection" = "most" -o "$module_selection" = "all" -o \
359 "$module_selection" = "reallyall"
361 enable_$1=$module_default
362 elif test "$module_selection" = "few" -o "$module_selection" = "none"; then
365 _apmod_extra_msg=" ($module_selection)"
366 elif test "$enable_$1" = "maybe-all"; then
367 if test "$module_selection" = "all" -o "$module_selection" = "reallyall"
369 enable_$1=$module_default
370 _apmod_extra_msg=" ($module_selection)"
374 elif test "$enable_$1" = "no" -a "$module_selection" = "reallyall" -a \
375 "$force_$1" != "no" ; then
376 enable_$1=$module_default
377 _apmod_extra_msg=" ($module_selection)"
379 if test "$enable_$1" != "no"; then
380 dnl If we plan to enable it, allow the module to run some autoconf magic
381 dnl that may disable it because of missing dependencies.
383 [AC_MSG_RESULT([checking dependencies])
384 ifelse([$7],,:,[if test "$enable_$7" = "no" ; then
386 AC_MSG_WARN("mod_$7 is disabled but required for mod_$1")
387 elif test "$enable_$1" = "static" && test "$enable_$7" != "static" ; then
389 AC_MSG_WARN("cannot build mod_$1 statically if mod_$7 is built shared")
391 ifelse([$6],,:,[ $6])
393 AC_MSG_CHECKING(whether to enable mod_$1)
394 if test "$enable_$1" = "no"; then
395 if test "$_apmod_required" = "no"; then
396 _apmod_extra_msg=" (disabled)"
398 AC_MSG_ERROR([mod_$1 has been requested but can not be built due to prerequisite failures])
402 AC_MSG_RESULT($enable_$1$_apmod_extra_msg)
403 if test "$enable_$1" != "no"; then
406 MODLIST="$MODLIST ifelse($4,,$1,$4)"
407 if test "$1" = "so"; then
412 enable_$1=`echo $enable_$1|sed 's/shared,*//'`
415 DSO_MODULES="$DSO_MODULES $1"
416 if test "$5" = "yes" ; then
417 ENABLED_DSO_MODULES="${ENABLED_DSO_MODULES},$1"
421 define([modprefix], [MOD_]translit($1, [a-z-], [A-Z_]))
422 APACHE_MODPATH_ADD($1, $shared, $3,, [\$(]modprefix[_LDADD)])
423 APACHE_SUBST(modprefix[_LDADD])
424 undefine([modprefix])
429 dnl APACHE_ENABLE_MODULES
431 AC_DEFUN([APACHE_ENABLE_MODULES],[
432 module_selection=most
433 module_default=shared
435 dnl Check whether we have DSO support.
436 dnl If "yes", we build shared modules by default.
437 APR_CHECK_APR_DEFINE(APR_HAS_DSO)
439 if test $ac_cv_define_APR_HAS_DSO = "no"; then
440 AC_MSG_WARN([Missing DSO support - building static modules by default.])
441 module_default=static
445 AC_ARG_ENABLE(modules,
446 APACHE_HELP_STRING(--enable-modules=MODULE-LIST,Space-separated list of modules to enable | "all" | "most" | "few" | "none" | "reallyall"),[
447 if test "$enableval" = "none"; then
449 module_selection=none
451 for i in $enableval; do
452 if test "$i" = "all" -o "$i" = "most" -o "$i" = "few" -o "$i" = "reallyall"
456 i=`echo $i | sed 's/-/_/g'`
457 eval "enable_$i=shared"
463 AC_ARG_ENABLE(mods-shared,
464 APACHE_HELP_STRING(--enable-mods-shared=MODULE-LIST,Space-separated list of shared modules to enable | "all" | "most" | "few" | "reallyall"),[
465 for i in $enableval; do
466 if test "$i" = "all" -o "$i" = "most" -o "$i" = "few" -o "$i" = "reallyall"
469 module_default=shared
471 i=`echo $i | sed 's/-/_/g'`
472 eval "enable_$i=shared"
477 AC_ARG_ENABLE(mods-static,
478 APACHE_HELP_STRING(--enable-mods-static=MODULE-LIST,Space-separated list of static modules to enable | "all" | "most" | "few" | "reallyall"),[
479 for i in $enableval; do
480 if test "$i" = "all" -o "$i" = "most" -o "$i" = "few" -o "$i" = "reallyall"; then
482 module_default=static
484 i=`echo $i | sed 's/-/_/g'`
485 eval "enable_$i=static"
491 AC_DEFUN([APACHE_REQUIRE_CXX],[
492 if test -z "$apache_cxx_done"; then
500 dnl APACHE_CHECK_OPENSSL
502 dnl Configure for OpenSSL, giving preference to
503 dnl "--with-ssl=<path>" if it was specified.
505 AC_DEFUN([APACHE_CHECK_OPENSSL],[
506 AC_CACHE_CHECK([for OpenSSL], [ac_cv_openssl], [
507 dnl initialise the variables we use
512 ap_openssl_mod_cflags=""
513 ap_openssl_mod_ldflags=""
515 dnl Determine the OpenSSL base directory, if any
516 AC_MSG_CHECKING([for user-provided OpenSSL base directory])
517 AC_ARG_WITH(ssl, APACHE_HELP_STRING(--with-ssl=PATH,OpenSSL installation directory), [
518 dnl If --with-ssl specifies a directory, we use that directory
519 if test "x$withval" != "xyes" -a "x$withval" != "x"; then
520 dnl This ensures $withval is actually a directory and that it is absolute
521 ap_openssl_base="`cd $withval ; pwd`"
524 if test "x$ap_openssl_base" = "x"; then
527 AC_MSG_RESULT($ap_openssl_base)
530 dnl Run header and version checks
531 saved_CPPFLAGS="$CPPFLAGS"
533 saved_LDFLAGS="$LDFLAGS"
535 dnl Before doing anything else, load in pkg-config variables
536 if test -n "$PKGCONFIG"; then
537 saved_PKG_CONFIG_PATH="$PKG_CONFIG_PATH"
538 if test "x$ap_openssl_base" != "x" -a \
539 -f "${ap_openssl_base}/lib/pkgconfig/openssl.pc"; then
540 dnl Ensure that the given path is used by pkg-config too, otherwise
541 dnl the system openssl.pc might be picked up instead.
542 PKG_CONFIG_PATH="${ap_openssl_base}/lib/pkgconfig${PKG_CONFIG_PATH+:}${PKG_CONFIG_PATH}"
543 export PKG_CONFIG_PATH
545 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.]), [
546 if test "$enableval" = "yes"; then
547 PKGCONFIG_LIBOPTS="--static"
550 ap_openssl_libs="`$PKGCONFIG $PKGCONFIG_LIBOPTS --libs-only-l --silence-errors openssl`"
551 if test $? -eq 0; then
552 ap_openssl_found="yes"
553 pkglookup="`$PKGCONFIG --cflags-only-I openssl`"
554 APR_ADDTO(CPPFLAGS, [$pkglookup])
555 APR_ADDTO(MOD_CFLAGS, [$pkglookup])
556 APR_ADDTO(ab_CFLAGS, [$pkglookup])
557 pkglookup="`$PKGCONFIG $PKGCONFIG_LIBOPTS --libs-only-L openssl`"
558 APR_ADDTO(LDFLAGS, [$pkglookup])
559 APR_ADDTO(MOD_LDFLAGS, [$pkglookup])
560 pkglookup="`$PKGCONFIG $PKGCONFIG_LIBOPTS --libs-only-other openssl`"
561 APR_ADDTO(LDFLAGS, [$pkglookup])
562 APR_ADDTO(MOD_LDFLAGS, [$pkglookup])
564 PKG_CONFIG_PATH="$saved_PKG_CONFIG_PATH"
567 dnl fall back to the user-supplied directory if not found via pkg-config
568 if test "x$ap_openssl_base" != "x" -a "x$ap_openssl_found" = "x"; then
569 APR_ADDTO(CPPFLAGS, [-I$ap_openssl_base/include])
570 APR_ADDTO(MOD_CFLAGS, [-I$ap_openssl_base/include])
571 APR_ADDTO(ab_CFLAGS, [-I$ap_openssl_base/include])
572 APR_ADDTO(LDFLAGS, [-L$ap_openssl_base/lib])
573 APR_ADDTO(MOD_LDFLAGS, [-L$ap_openssl_base/lib])
574 if test "x$ap_platform_runtime_link_flag" != "x"; then
575 APR_ADDTO(LDFLAGS, [$ap_platform_runtime_link_flag$ap_openssl_base/lib])
576 APR_ADDTO(MOD_LDFLAGS, [$ap_platform_runtime_link_flag$ap_openssl_base/lib])
580 AC_MSG_CHECKING([for OpenSSL version >= 0.9.8a])
581 AC_TRY_COMPILE([#include <openssl/opensslv.h>],[
582 #if !defined(OPENSSL_VERSION_NUMBER)
583 #error "Missing OpenSSL version"
585 #if OPENSSL_VERSION_NUMBER < 0x0090801f
586 #error "Unsupported OpenSSL version " OPENSSL_VERSION_TEXT
590 [AC_MSG_RESULT(FAILED)])
592 if test "x$ac_cv_openssl" = "xyes"; then
593 ap_openssl_libs="${ap_openssl_libs:--lssl -lcrypto} `$apr_config --libs`"
594 APR_ADDTO(MOD_LDFLAGS, [$ap_openssl_libs])
595 APR_ADDTO(LIBS, [$ap_openssl_libs])
596 APR_SETVAR(ab_LDFLAGS, [$MOD_LDFLAGS])
597 APACHE_SUBST(ab_CFLAGS)
598 APACHE_SUBST(ab_LDFLAGS)
600 dnl Run library and function checks
602 AC_CHECK_HEADERS([openssl/engine.h])
603 AC_CHECK_FUNCS([SSL_CTX_new], [], [liberrors="yes"])
604 AC_CHECK_FUNCS([ENGINE_init ENGINE_load_builtin_engines RAND_egd])
605 if test "x$liberrors" != "x"; then
606 AC_MSG_WARN([OpenSSL libraries are unusable])
609 AC_MSG_WARN([OpenSSL version is too old])
613 CPPFLAGS="$saved_CPPFLAGS"
615 LDFLAGS="$saved_LDFLAGS"
617 dnl cache MOD_LDFLAGS, MOD_CFLAGS
618 ap_openssl_mod_cflags=$MOD_CFLAGS
619 ap_openssl_mod_ldflags=$MOD_LDFLAGS
621 if test "x$ac_cv_openssl" = "xyes"; then
622 AC_DEFINE(HAVE_OPENSSL, 1, [Define if OpenSSL is available])
623 APR_ADDTO(MOD_LDFLAGS, [$ap_openssl_mod_ldflags])
624 APR_ADDTO(MOD_CFLAGS, [$ap_openssl_mod_cflags])
629 dnl APACHE_CHECK_SERF
631 dnl Configure for the detected libserf, giving preference to
632 dnl "--with-serf=<path>" if it was specified.
634 AC_DEFUN([APACHE_CHECK_SERF], [
635 AC_CACHE_CHECK([for libserf], [ac_cv_serf], [
639 AC_ARG_WITH(serf, APACHE_HELP_STRING([--with-serf=PATH],
640 [Serf client library]),
642 if test "$withval" = "yes" ; then
649 if test "$serf_prefix" != "no" ; then
650 save_cppflags="$CPPFLAGS"
651 CPPFLAGS="$CPPFLAGS $APR_INCLUDES $APU_INCLUDES -I$serf_prefix/include/serf-0"
652 AC_CHECK_HEADERS(serf.h,[
653 save_ldflags="$LDFLAGS"
654 LDFLAGS="$LDFLAGS -L$serf_prefix/lib"
655 AC_CHECK_LIB(serf-0, serf_context_create,[ac_cv_serf="yes"])
656 LDFLAGS="$save_ldflags"])
657 CPPFLAGS="$save_cppflags"
661 APACHE_SUBST(SERF_LIBS)
662 if test "$ac_cv_serf" = "yes"; then
663 AC_DEFINE(HAVE_SERF, 1, [Define if libserf is available])
664 APR_SETVAR(SERF_LIBS, [-L$serf_prefix/lib -lserf-0])
665 APR_ADDTO(MOD_INCLUDES, [-I$serf_prefix/include/serf-0])
669 AC_DEFUN([APACHE_CHECK_SYSTEMD], [
670 dnl Check for systemd support for listen.c's socket activation.
673 if test -n "$PKGCONFIG" && $PKGCONFIG --exists libsystemd; then
674 SYSTEMD_LIBS=`$PKGCONFIG --libs libsystemd`
675 elif test -n "$PKGCONFIG" && $PKGCONFIG --exists libsystemd-daemon; then
676 SYSTEMD_LIBS=`$PKGCONFIG --libs libsystemd-daemon`
678 AC_CHECK_LIB(systemd-daemon, sd_notify, SYSTEMD_LIBS="-lsystemd-daemon")
680 if test -n "$SYSTEMD_LIBS"; then
681 AC_CHECK_HEADERS(systemd/sd-daemon.h)
682 if test "${ac_cv_header_systemd_sd_daemon_h}" = "no" || test -z "${SYSTEMD_LIBS}"; then
683 AC_MSG_WARN([Your system does not support systemd.])
685 APR_ADDTO(HTTPD_LIBS, [$SYSTEMD_LIBS])
686 AC_DEFINE(HAVE_SYSTEMD, 1, [Define if systemd is supported])
694 dnl APACHE_EXPORT_ARGUMENTS
695 dnl Export (via APACHE_SUBST) the various path-related variables that
696 dnl apache will use while generating scripts like autoconf and apxs and
697 dnl the default config file.
699 AC_DEFUN([APACHE_SUBST_EXPANDED_ARG],[
700 APR_EXPAND_VAR(exp_$1, [$]$1)
702 APR_PATH_RELATIVE(rel_$1, [$]exp_$1, ${prefix})
706 AC_DEFUN([APACHE_EXPORT_ARGUMENTS],[
707 APACHE_SUBST_EXPANDED_ARG(exec_prefix)
708 APACHE_SUBST_EXPANDED_ARG(bindir)
709 APACHE_SUBST_EXPANDED_ARG(sbindir)
710 APACHE_SUBST_EXPANDED_ARG(libdir)
711 APACHE_SUBST_EXPANDED_ARG(libexecdir)
712 APACHE_SUBST_EXPANDED_ARG(mandir)
713 APACHE_SUBST_EXPANDED_ARG(sysconfdir)
714 APACHE_SUBST_EXPANDED_ARG(datadir)
715 APACHE_SUBST_EXPANDED_ARG(installbuilddir)
716 APACHE_SUBST_EXPANDED_ARG(errordir)
717 APACHE_SUBST_EXPANDED_ARG(iconsdir)
718 APACHE_SUBST_EXPANDED_ARG(htdocsdir)
719 APACHE_SUBST_EXPANDED_ARG(manualdir)
720 APACHE_SUBST_EXPANDED_ARG(cgidir)
721 APACHE_SUBST_EXPANDED_ARG(includedir)
722 APACHE_SUBST_EXPANDED_ARG(localstatedir)
723 APACHE_SUBST_EXPANDED_ARG(runtimedir)
724 APACHE_SUBST_EXPANDED_ARG(logfiledir)
725 APACHE_SUBST_EXPANDED_ARG(proxycachedir)
726 APACHE_SUBST_EXPANDED_ARG(davlockdb)
730 dnl APACHE_CHECK_APxVER({apr|apu}, major, minor,
731 dnl [actions-if-ok], [actions-if-not-ok])
733 dnl Checks for APR or APR-util of given major/minor version or later;
734 dnl if so, runs actions-if-ok; otherwise runs actions-if-not-ok if given.
735 dnl If the version is not satisfactory and actions-if-not-ok is not
736 dnl given, then an error is printed and the configure script is aborted.
738 dnl The first argument must be [apr] or [apu].
740 AC_DEFUN([APACHE_CHECK_APxVER], [
741 define(ap_ckver_major, translit($1, [apru], [APRU])[_MAJOR_VERSION])
742 define(ap_ckver_minor, translit($1, [apru], [APRU])[_MINOR_VERSION])
743 define(ap_ckver_cvar, [ap_cv_$1ver$2$3])
744 define(ap_ckver_name, ifelse([$1],[apr],[APR],[APR-util]))
746 ap_ckver_CPPFLAGS="$CPPFLAGS"
747 CPPFLAGS="$CPPFLAGS `$[$1]_config --includes`"
749 AC_CACHE_CHECK([for ap_ckver_name version $2.$3.0 or later], ap_ckver_cvar, [
750 AC_EGREP_CPP([good], [
751 #include <$1_version.h>
752 #if ]ap_ckver_major[ > $2 || (]ap_ckver_major[ == $2 && ]ap_ckver_minor[ >= $3)
755 ], [ap_ckver_cvar=yes], [ap_ckver_cvar=no])])
757 if test "$ap_ckver_cvar" = "yes"; then
758 ifelse([$4],[],[:],[$4])
760 ifelse([$5],[],[AC_MSG_ERROR([ap_ckver_name version $2.$3.0 or later is required])], [$5])
763 CPPFLAGS="$ap_ckver_CPPFLAGS"
765 undefine([ap_ckver_major])
766 undefine([ap_ckver_minor])
767 undefine([ap_ckver_cvar])
768 undefine([ap_ckver_name])
772 dnl APACHE_CHECK_VOID_PTR_LEN
774 dnl Checks if the size of a void pointer is at least as big as a "long"
777 AC_DEFUN([APACHE_CHECK_VOID_PTR_LEN], [
779 AC_CACHE_CHECK([for void pointer length], [ap_cv_void_ptr_lt_long],
783 return sizeof(void *) < sizeof(long);
784 }], [ap_cv_void_ptr_lt_long=no], [ap_cv_void_ptr_lt_long=yes],
785 [ap_cv_void_ptr_lt_long="cross compile - not checked"])])
787 if test "$ap_cv_void_ptr_lt_long" = "yes"; then
788 AC_MSG_ERROR([Size of "void *" is less than size of "long"])
793 dnl APACHE_CHECK_APR_HAS_LDAP
795 dnl Check if APR_HAS_LDAP is 1
796 dnl Unfortunately, we can't use APR_CHECK_APR_DEFINE (because it only includes apr.h)
797 dnl or APR_CHECK_DEFINE (because it only checks for defined'ness and not for 0/1).
799 AC_DEFUN([APACHE_CHECK_APR_HAS_LDAP], [
800 AC_CACHE_CHECK([for ldap support in apr/apr-util],ac_cv_APR_HAS_LDAP,[
801 apache_old_cppflags="$CPPFLAGS"
802 CPPFLAGS="$CPPFLAGS $INCLUDES"
803 AC_EGREP_CPP(YES_IS_DEFINED, [
804 #include <apr_ldap.h>
808 ], ac_cv_APR_HAS_LDAP=yes, ac_cv_APR_HAS_LDAP=no)
809 CPPFLAGS="$apache_old_cppflags"
814 dnl APACHE_ADD_GCC_CFLAGS
816 dnl Check if compiler is gcc and supports flag. If yes, add to CFLAGS.
818 AC_DEFUN([APACHE_ADD_GCC_CFLAG], [
819 define([ap_gcc_ckvar], [ac_cv_gcc_]translit($1, [-:.=], [____]))
820 if test "$GCC" = "yes"; then
821 AC_CACHE_CHECK([whether gcc accepts $1], ap_gcc_ckvar, [
822 save_CFLAGS="$CFLAGS"
824 AC_COMPILE_IFELSE([AC_LANG_PROGRAM()],
825 [ap_gcc_ckvar=yes], [ap_gcc_ckvar=no])
826 CFLAGS="$save_CFLAGS"
828 if test "$]ap_gcc_ckvar[" = "yes" ; then
829 APR_ADDTO(CFLAGS,[$1])
832 undefine([ap_gcc_ckvar])