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)"
381 if test "$enable_$1" != "no"; then
382 dnl If we plan to enable it, allow the module to run some autoconf magic
383 dnl that may disable it because of missing dependencies.
385 [AC_MSG_RESULT([checking dependencies])
386 ifelse([$7],,:,[m4_foreach([prereq],[$7],
387 [if test "$enable_[]prereq" = "no" ; then
389 AC_MSG_WARN("mod_[]prereq is disabled but required for mod_$1")
390 elif test "$enable_$1" = "static" && test "$enable_[]prereq" != "static" ; then
391 enable_$1=$enable_[]prereq
392 AC_MSG_WARN("building mod_$1 shared because mod_[]prereq is built shared")
394 ifelse([$6],,:,[ $6])
396 AC_MSG_CHECKING(whether to enable mod_$1)
397 if test "$enable_$1" = "no"; then
398 if test "$_apmod_required" = "no"; then
399 _apmod_extra_msg=" (disabled)"
401 AC_MSG_ERROR([mod_$1 has been requested but can not be built due to prerequisite failures])
405 AC_MSG_RESULT($enable_$1$_apmod_extra_msg)
406 if test "$enable_$1" != "no"; then
409 MODLIST="$MODLIST ifelse($4,,$1,$4)"
410 if test "$1" = "so"; then
415 enable_$1=`echo $enable_$1|sed 's/shared,*//'`
418 DSO_MODULES="$DSO_MODULES $1"
419 if test "$5" = "yes" ; then
420 ENABLED_DSO_MODULES="${ENABLED_DSO_MODULES},$1"
424 define([modprefix], [MOD_]translit($1, [a-z-], [A-Z_]))
425 APACHE_MODPATH_ADD($1, $shared, $3,, [\$(]modprefix[_LDADD)])
426 APACHE_SUBST(modprefix[_LDADD])
427 undefine([modprefix])
432 dnl APACHE_ENABLE_MODULES
434 AC_DEFUN([APACHE_ENABLE_MODULES],[
435 module_selection=most
436 module_default=shared
438 dnl Check whether we have DSO support.
439 dnl If "yes", we build shared modules by default.
440 APR_CHECK_APR_DEFINE(APR_HAS_DSO)
442 if test $ac_cv_define_APR_HAS_DSO = "no"; then
443 AC_MSG_WARN([Missing DSO support - building static modules by default.])
444 module_default=static
448 AC_ARG_ENABLE(modules,
449 APACHE_HELP_STRING(--enable-modules=MODULE-LIST,Space-separated list of modules to enable | "all" | "most" | "few" | "none" | "reallyall"),[
450 if test "$enableval" = "none"; then
452 module_selection=none
454 for i in $enableval; do
455 if test "$i" = "all" -o "$i" = "most" -o "$i" = "few" -o "$i" = "reallyall"
459 i=`echo $i | sed 's/-/_/g'`
460 eval "enable_$i=shared"
466 AC_ARG_ENABLE(mods-shared,
467 APACHE_HELP_STRING(--enable-mods-shared=MODULE-LIST,Space-separated list of shared modules to enable | "all" | "most" | "few" | "reallyall"),[
468 for i in $enableval; do
469 if test "$i" = "all" -o "$i" = "most" -o "$i" = "few" -o "$i" = "reallyall"
472 module_default=shared
474 i=`echo $i | sed 's/-/_/g'`
475 eval "enable_$i=shared"
480 AC_ARG_ENABLE(mods-static,
481 APACHE_HELP_STRING(--enable-mods-static=MODULE-LIST,Space-separated list of static modules to enable | "all" | "most" | "few" | "reallyall"),[
482 for i in $enableval; do
483 if test "$i" = "all" -o "$i" = "most" -o "$i" = "few" -o "$i" = "reallyall"; then
485 module_default=static
487 i=`echo $i | sed 's/-/_/g'`
488 eval "enable_$i=static"
494 AC_DEFUN([APACHE_REQUIRE_CXX],[
495 if test -z "$apache_cxx_done"; then
503 dnl APACHE_CHECK_OPENSSL
505 dnl Configure for OpenSSL, giving preference to
506 dnl "--with-ssl=<path>" if it was specified.
508 AC_DEFUN([APACHE_CHECK_OPENSSL],[
509 AC_CACHE_CHECK([for OpenSSL], [ac_cv_openssl], [
510 dnl initialise the variables we use
515 ap_openssl_mod_cflags=""
516 ap_openssl_mod_ldflags=""
518 dnl Determine the OpenSSL base directory, if any
519 AC_MSG_CHECKING([for user-provided OpenSSL base directory])
520 AC_ARG_WITH(ssl, APACHE_HELP_STRING(--with-ssl=PATH,OpenSSL installation directory), [
521 dnl If --with-ssl specifies a directory, we use that directory
522 if test "x$withval" != "xyes" -a "x$withval" != "x"; then
523 dnl This ensures $withval is actually a directory and that it is absolute
524 ap_openssl_base="`cd $withval ; pwd`"
527 if test "x$ap_openssl_base" = "x"; then
530 AC_MSG_RESULT($ap_openssl_base)
533 dnl Run header and version checks
534 saved_CPPFLAGS="$CPPFLAGS"
536 saved_LDFLAGS="$LDFLAGS"
538 dnl Before doing anything else, load in pkg-config variables
539 if test -n "$PKGCONFIG"; then
540 saved_PKG_CONFIG_PATH="$PKG_CONFIG_PATH"
541 if test "x$ap_openssl_base" != "x" -a \
542 -f "${ap_openssl_base}/lib/pkgconfig/openssl.pc"; then
543 dnl Ensure that the given path is used by pkg-config too, otherwise
544 dnl the system openssl.pc might be picked up instead.
545 PKG_CONFIG_PATH="${ap_openssl_base}/lib/pkgconfig${PKG_CONFIG_PATH+:}${PKG_CONFIG_PATH}"
546 export PKG_CONFIG_PATH
548 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.]), [
549 if test "$enableval" = "yes"; then
550 PKGCONFIG_LIBOPTS="--static"
553 ap_openssl_libs="`$PKGCONFIG $PKGCONFIG_LIBOPTS --libs-only-l --silence-errors openssl`"
554 if test $? -eq 0; then
555 ap_openssl_found="yes"
556 pkglookup="`$PKGCONFIG --cflags-only-I openssl`"
557 APR_ADDTO(CPPFLAGS, [$pkglookup])
558 APR_ADDTO(MOD_CFLAGS, [$pkglookup])
559 APR_ADDTO(ab_CFLAGS, [$pkglookup])
560 pkglookup="`$PKGCONFIG $PKGCONFIG_LIBOPTS --libs-only-L openssl`"
561 APR_ADDTO(LDFLAGS, [$pkglookup])
562 APR_ADDTO(MOD_LDFLAGS, [$pkglookup])
563 pkglookup="`$PKGCONFIG $PKGCONFIG_LIBOPTS --libs-only-other openssl`"
564 APR_ADDTO(LDFLAGS, [$pkglookup])
565 APR_ADDTO(MOD_LDFLAGS, [$pkglookup])
567 PKG_CONFIG_PATH="$saved_PKG_CONFIG_PATH"
570 dnl fall back to the user-supplied directory if not found via pkg-config
571 if test "x$ap_openssl_base" != "x" -a "x$ap_openssl_found" = "x"; then
572 APR_ADDTO(CPPFLAGS, [-I$ap_openssl_base/include])
573 APR_ADDTO(MOD_CFLAGS, [-I$ap_openssl_base/include])
574 APR_ADDTO(ab_CFLAGS, [-I$ap_openssl_base/include])
575 APR_ADDTO(LDFLAGS, [-L$ap_openssl_base/lib])
576 APR_ADDTO(MOD_LDFLAGS, [-L$ap_openssl_base/lib])
577 if test "x$ap_platform_runtime_link_flag" != "x"; then
578 APR_ADDTO(LDFLAGS, [$ap_platform_runtime_link_flag$ap_openssl_base/lib])
579 APR_ADDTO(MOD_LDFLAGS, [$ap_platform_runtime_link_flag$ap_openssl_base/lib])
583 AC_MSG_CHECKING([for OpenSSL version >= 0.9.8a])
584 AC_TRY_COMPILE([#include <openssl/opensslv.h>],[
585 #if !defined(OPENSSL_VERSION_NUMBER)
586 #error "Missing OpenSSL version"
588 #if OPENSSL_VERSION_NUMBER < 0x0090801f
589 #error "Unsupported OpenSSL version " OPENSSL_VERSION_TEXT
593 [AC_MSG_RESULT(FAILED)])
595 if test "x$ac_cv_openssl" = "xyes"; then
596 ap_openssl_libs="${ap_openssl_libs:--lssl -lcrypto} `$apr_config --libs`"
597 APR_ADDTO(MOD_LDFLAGS, [$ap_openssl_libs])
598 APR_ADDTO(LIBS, [$ap_openssl_libs])
599 APR_SETVAR(ab_LDFLAGS, [$MOD_LDFLAGS])
600 APACHE_SUBST(ab_CFLAGS)
601 APACHE_SUBST(ab_LDFLAGS)
603 dnl Run library and function checks
605 AC_CHECK_HEADERS([openssl/engine.h])
606 AC_CHECK_FUNCS([SSL_CTX_new], [], [liberrors="yes"])
607 AC_CHECK_FUNCS([ENGINE_init ENGINE_load_builtin_engines RAND_egd])
608 if test "x$liberrors" != "x"; then
609 AC_MSG_WARN([OpenSSL libraries are unusable])
612 AC_MSG_WARN([OpenSSL version is too old])
616 CPPFLAGS="$saved_CPPFLAGS"
618 LDFLAGS="$saved_LDFLAGS"
620 dnl cache MOD_LDFLAGS, MOD_CFLAGS
621 ap_openssl_mod_cflags=$MOD_CFLAGS
622 ap_openssl_mod_ldflags=$MOD_LDFLAGS
624 if test "x$ac_cv_openssl" = "xyes"; then
625 AC_DEFINE(HAVE_OPENSSL, 1, [Define if OpenSSL is available])
626 APR_ADDTO(MOD_LDFLAGS, [$ap_openssl_mod_ldflags])
627 APR_ADDTO(MOD_CFLAGS, [$ap_openssl_mod_cflags])
632 dnl APACHE_CHECK_SERF
634 dnl Configure for the detected libserf, giving preference to
635 dnl "--with-serf=<path>" if it was specified.
637 AC_DEFUN([APACHE_CHECK_SERF], [
638 AC_CACHE_CHECK([for libserf], [ac_cv_serf], [
642 AC_ARG_WITH(serf, APACHE_HELP_STRING([--with-serf=PATH],
643 [Serf client library]),
645 if test "$withval" = "yes" ; then
652 if test "$serf_prefix" != "no" ; then
653 save_cppflags="$CPPFLAGS"
654 CPPFLAGS="$CPPFLAGS $APR_INCLUDES $APU_INCLUDES -I$serf_prefix/include/serf-0"
655 AC_CHECK_HEADERS(serf.h,[
656 save_ldflags="$LDFLAGS"
657 LDFLAGS="$LDFLAGS -L$serf_prefix/lib"
658 AC_CHECK_LIB(serf-0, serf_context_create,[ac_cv_serf="yes"])
659 LDFLAGS="$save_ldflags"])
660 CPPFLAGS="$save_cppflags"
664 APACHE_SUBST(SERF_LIBS)
665 if test "$ac_cv_serf" = "yes"; then
666 AC_DEFINE(HAVE_SERF, 1, [Define if libserf is available])
667 APR_SETVAR(SERF_LIBS, [-L$serf_prefix/lib -lserf-0])
668 APR_ADDTO(MOD_INCLUDES, [-I$serf_prefix/include/serf-0])
672 AC_DEFUN([APACHE_CHECK_SYSTEMD], [
673 dnl Check for systemd support for listen.c's socket activation.
676 if test -n "$PKGCONFIG" && $PKGCONFIG --exists libsystemd; then
677 SYSTEMD_LIBS=`$PKGCONFIG --libs libsystemd`
678 elif test -n "$PKGCONFIG" && $PKGCONFIG --exists libsystemd-daemon; then
679 SYSTEMD_LIBS=`$PKGCONFIG --libs libsystemd-daemon`
681 AC_CHECK_LIB(systemd-daemon, sd_notify, SYSTEMD_LIBS="-lsystemd-daemon")
683 if test -n "$SYSTEMD_LIBS"; then
684 AC_CHECK_HEADERS(systemd/sd-daemon.h)
685 if test "${ac_cv_header_systemd_sd_daemon_h}" = "no" || test -z "${SYSTEMD_LIBS}"; then
686 AC_MSG_WARN([Your system does not support systemd.])
688 APR_ADDTO(HTTPD_LIBS, [$SYSTEMD_LIBS])
689 AC_DEFINE(HAVE_SYSTEMD, 1, [Define if systemd is supported])
697 dnl APACHE_EXPORT_ARGUMENTS
698 dnl Export (via APACHE_SUBST) the various path-related variables that
699 dnl apache will use while generating scripts like autoconf and apxs and
700 dnl the default config file.
702 AC_DEFUN([APACHE_SUBST_EXPANDED_ARG],[
703 APR_EXPAND_VAR(exp_$1, [$]$1)
705 APR_PATH_RELATIVE(rel_$1, [$]exp_$1, ${prefix})
709 AC_DEFUN([APACHE_EXPORT_ARGUMENTS],[
710 APACHE_SUBST_EXPANDED_ARG(exec_prefix)
711 APACHE_SUBST_EXPANDED_ARG(bindir)
712 APACHE_SUBST_EXPANDED_ARG(sbindir)
713 APACHE_SUBST_EXPANDED_ARG(libdir)
714 APACHE_SUBST_EXPANDED_ARG(libexecdir)
715 APACHE_SUBST_EXPANDED_ARG(mandir)
716 APACHE_SUBST_EXPANDED_ARG(sysconfdir)
717 APACHE_SUBST_EXPANDED_ARG(datadir)
718 APACHE_SUBST_EXPANDED_ARG(installbuilddir)
719 APACHE_SUBST_EXPANDED_ARG(errordir)
720 APACHE_SUBST_EXPANDED_ARG(iconsdir)
721 APACHE_SUBST_EXPANDED_ARG(htdocsdir)
722 APACHE_SUBST_EXPANDED_ARG(manualdir)
723 APACHE_SUBST_EXPANDED_ARG(cgidir)
724 APACHE_SUBST_EXPANDED_ARG(includedir)
725 APACHE_SUBST_EXPANDED_ARG(localstatedir)
726 APACHE_SUBST_EXPANDED_ARG(runtimedir)
727 APACHE_SUBST_EXPANDED_ARG(logfiledir)
728 APACHE_SUBST_EXPANDED_ARG(proxycachedir)
729 APACHE_SUBST_EXPANDED_ARG(davlockdb)
733 dnl APACHE_CHECK_APxVER({apr|apu}, major, minor,
734 dnl [actions-if-ok], [actions-if-not-ok])
736 dnl Checks for APR or APR-util of given major/minor version or later;
737 dnl if so, runs actions-if-ok; otherwise runs actions-if-not-ok if given.
738 dnl If the version is not satisfactory and actions-if-not-ok is not
739 dnl given, then an error is printed and the configure script is aborted.
741 dnl The first argument must be [apr] or [apu].
743 AC_DEFUN([APACHE_CHECK_APxVER], [
744 define(ap_ckver_major, translit($1, [apru], [APRU])[_MAJOR_VERSION])
745 define(ap_ckver_minor, translit($1, [apru], [APRU])[_MINOR_VERSION])
746 define(ap_ckver_cvar, [ap_cv_$1ver$2$3])
747 define(ap_ckver_name, ifelse([$1],[apr],[APR],[APR-util]))
749 ap_ckver_CPPFLAGS="$CPPFLAGS"
750 CPPFLAGS="$CPPFLAGS `$[$1]_config --includes`"
752 AC_CACHE_CHECK([for ap_ckver_name version $2.$3.0 or later], ap_ckver_cvar, [
753 AC_EGREP_CPP([good], [
754 #include <$1_version.h>
755 #if ]ap_ckver_major[ > $2 || (]ap_ckver_major[ == $2 && ]ap_ckver_minor[ >= $3)
758 ], [ap_ckver_cvar=yes], [ap_ckver_cvar=no])])
760 if test "$ap_ckver_cvar" = "yes"; then
761 ifelse([$4],[],[:],[$4])
763 ifelse([$5],[],[AC_MSG_ERROR([ap_ckver_name version $2.$3.0 or later is required])], [$5])
766 CPPFLAGS="$ap_ckver_CPPFLAGS"
768 undefine([ap_ckver_major])
769 undefine([ap_ckver_minor])
770 undefine([ap_ckver_cvar])
771 undefine([ap_ckver_name])
775 dnl APACHE_CHECK_VOID_PTR_LEN
777 dnl Checks if the size of a void pointer is at least as big as a "long"
780 AC_DEFUN([APACHE_CHECK_VOID_PTR_LEN], [
782 AC_CACHE_CHECK([for void pointer length], [ap_cv_void_ptr_lt_long],
786 return sizeof(void *) < sizeof(long);
787 }], [ap_cv_void_ptr_lt_long=no], [ap_cv_void_ptr_lt_long=yes],
788 [ap_cv_void_ptr_lt_long="cross compile - not checked"])])
790 if test "$ap_cv_void_ptr_lt_long" = "yes"; then
791 AC_MSG_ERROR([Size of "void *" is less than size of "long"])
796 dnl APACHE_CHECK_APR_HAS_LDAP
798 dnl Check if APR_HAS_LDAP is 1
799 dnl Unfortunately, we can't use APR_CHECK_APR_DEFINE (because it only includes apr.h)
800 dnl or APR_CHECK_DEFINE (because it only checks for defined'ness and not for 0/1).
802 AC_DEFUN([APACHE_CHECK_APR_HAS_LDAP], [
803 AC_CACHE_CHECK([for ldap support in apr/apr-util],ac_cv_APR_HAS_LDAP,[
804 apache_old_cppflags="$CPPFLAGS"
805 CPPFLAGS="$CPPFLAGS $INCLUDES"
806 AC_EGREP_CPP(YES_IS_DEFINED, [
807 #include <apr_ldap.h>
811 ], ac_cv_APR_HAS_LDAP=yes, ac_cv_APR_HAS_LDAP=no)
812 CPPFLAGS="$apache_old_cppflags"
817 dnl APACHE_ADD_GCC_CFLAGS
819 dnl Check if compiler is gcc and supports flag. If yes, add to CFLAGS.
821 AC_DEFUN([APACHE_ADD_GCC_CFLAG], [
822 define([ap_gcc_ckvar], [ac_cv_gcc_]translit($1, [-:.=], [____]))
823 if test "$GCC" = "yes"; then
824 AC_CACHE_CHECK([whether gcc accepts $1], ap_gcc_ckvar, [
825 save_CFLAGS="$CFLAGS"
827 AC_COMPILE_IFELSE([AC_LANG_PROGRAM()],
828 [ap_gcc_ckvar=yes], [ap_gcc_ckvar=no])
829 CFLAGS="$save_CFLAGS"
831 if test "$]ap_gcc_ckvar[" = "yes" ; then
832 APR_ADDTO(CFLAGS,[$1])
835 undefine([ap_gcc_ckvar])