]> granicus.if.org Git - apache/blob - acinclude.m4
Rebuild.
[apache] / acinclude.m4
1
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
8
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"
14   AC_SUBST($1)
15 ])
16
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"
21 ])
22
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)
29   APACHE_SUBST(bindir)
30   APACHE_SUBST(sbindir)
31   APACHE_SUBST(cgidir)
32   APACHE_SUBST(logfiledir)
33   APACHE_SUBST(exec_prefix)
34   APACHE_SUBST(datadir)
35   APACHE_SUBST(localstatedir)
36   APACHE_SUBST(mandir)
37   APACHE_SUBST(libdir)
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(other_targets)
49   APACHE_SUBST(progname)
50   APACHE_SUBST(prefix)
51   APACHE_SUBST(AWK)
52   APACHE_SUBST(CC)
53   APACHE_SUBST(CPP)
54   APACHE_SUBST(CXX)
55   APACHE_SUBST(CPPFLAGS)
56   APACHE_SUBST(CFLAGS)
57   APACHE_SUBST(CXXFLAGS)
58   APACHE_SUBST(LTFLAGS)
59   APACHE_SUBST(LDFLAGS)
60   APACHE_SUBST(LT_LDFLAGS)
61   APACHE_SUBST(SH_LDFLAGS)
62   APACHE_SUBST(HTTPD_LDFLAGS)
63   APACHE_SUBST(UTIL_LDFLAGS)
64   APACHE_SUBST(LIBS)
65   APACHE_SUBST(DEFS)
66   APACHE_SUBST(INCLUDES)
67   APACHE_SUBST(NOTEST_CPPFLAGS)
68   APACHE_SUBST(NOTEST_CFLAGS)
69   APACHE_SUBST(NOTEST_CXXFLAGS)
70   APACHE_SUBST(NOTEST_LDFLAGS)
71   APACHE_SUBST(NOTEST_LIBS)
72   APACHE_SUBST(EXTRA_CPPFLAGS)
73   APACHE_SUBST(EXTRA_CFLAGS)
74   APACHE_SUBST(EXTRA_CXXFLAGS)
75   APACHE_SUBST(EXTRA_LDFLAGS)
76   APACHE_SUBST(EXTRA_LIBS)
77   APACHE_SUBST(EXTRA_INCLUDES)
78   APACHE_SUBST(INTERNAL_CPPFLAGS)
79   APACHE_SUBST(LIBTOOL)
80   APACHE_SUBST(SHELL)
81   APACHE_SUBST(RSYNC)
82   APACHE_SUBST(MODULE_DIRS)
83   APACHE_SUBST(MODULE_CLEANDIRS)
84   APACHE_SUBST(PORT)
85   APACHE_SUBST(SSLPORT)
86   APACHE_SUBST(CORE_IMPLIB_FILE)
87   APACHE_SUBST(CORE_IMPLIB)
88   APACHE_SUBST(SH_LIBS)
89   APACHE_SUBST(SH_LIBTOOL)
90   APACHE_SUBST(MK_IMPLIB)
91   APACHE_SUBST(MKDEP)
92   APACHE_SUBST(INSTALL_PROG_FLAGS)
93   APACHE_SUBST(DSO_MODULES)
94   APACHE_SUBST(ENABLED_DSO_MODULES)
95   APACHE_SUBST(LOAD_ALL_MODULES)
96   APACHE_SUBST(APR_BINDIR)
97   APACHE_SUBST(APR_INCLUDEDIR)
98   APACHE_SUBST(APR_VERSION)
99   APACHE_SUBST(APR_CONFIG)
100   APACHE_SUBST(APU_BINDIR)
101   APACHE_SUBST(APU_INCLUDEDIR)
102   APACHE_SUBST(APU_VERSION)
103   APACHE_SUBST(APU_CONFIG)
104
105   abs_srcdir="`(cd $srcdir && pwd)`"
106
107   AC_MSG_NOTICE([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
112   done
113 ])
114
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
119 ])
120
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"
126 ])
127
128 dnl
129 dnl APACHE_TYPE_RLIM_T
130 dnl
131 dnl If rlim_t is not defined, define it to int
132 dnl
133 AC_DEFUN([APACHE_TYPE_RLIM_T], [
134   AC_CACHE_CHECK([for rlim_t], ac_cv_type_rlim_t, [
135     AC_TRY_COMPILE([
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
142     ])
143   ])
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])
147   fi
148 ])
149
150 dnl the list of build variables which are available for customization on a
151 dnl per module subdir basis (to be inserted into modules.mk with a "MOD_"
152 dnl prefix, i.e. MOD_CFLAGS etc.). Used in APACHE_MODPATH_{INIT,FINISH}.
153 define(mod_buildvars, [CFLAGS CXXFLAGS CPPFLAGS LDFLAGS LIBS INCLUDES])
154 dnl
155 dnl APACHE_MODPATH_INIT(modpath)
156 AC_DEFUN([APACHE_MODPATH_INIT],[
157   current_dir=$1
158   modpath_current=modules/$1
159   modpath_static=
160   modpath_shared=
161   for var in mod_buildvars; do
162     eval MOD_$var=
163   done
164   test -d $1 || $srcdir/build/mkdir.sh $modpath_current
165   > $modpath_current/modules.mk
166 ])dnl
167 dnl
168 AC_DEFUN([APACHE_MODPATH_FINISH],[
169   echo "DISTCLEAN_TARGETS = modules.mk" >> $modpath_current/modules.mk
170   echo "static = $modpath_static" >> $modpath_current/modules.mk
171   echo "shared = $modpath_shared" >> $modpath_current/modules.mk
172   for var in mod_buildvars; do
173     if eval val=\"\$MOD_$var\"; test -n "$val"; then
174       echo "MOD_$var = $val" >> $modpath_current/modules.mk
175     fi
176   done
177   if test ! -z "$modpath_static" -o ! -z "$modpath_shared"; then
178     MODULE_DIRS="$MODULE_DIRS $current_dir"
179   else
180     MODULE_CLEANDIRS="$MODULE_CLEANDIRS $current_dir"
181   fi
182   APACHE_FAST_OUTPUT($modpath_current/Makefile)
183 ])dnl
184 dnl
185 dnl APACHE_MODPATH_ADD(name[, shared[, objects [, ldflags[, libs]]]])
186 AC_DEFUN([APACHE_MODPATH_ADD],[
187   if test -z "$3"; then
188     objects="mod_$1.lo"
189   else
190     objects="$3"
191   fi
192
193   if test -z "$module_standalone"; then
194     if test -z "$2"; then
195       # The filename of a convenience library must have a "lib" prefix:
196       libname="libmod_$1.la"
197       BUILTIN_LIBS="$BUILTIN_LIBS $modpath_current/$libname"
198       modpath_static="$modpath_static $libname"
199       cat >>$modpath_current/modules.mk<<EOF
200 $libname: $objects
201         \$(MOD_LINK) $objects $5
202 EOF
203       if test ! -z "$5"; then
204         APR_ADDTO(AP_LIBS, [$5])
205       fi
206     else
207       apache_need_shared=yes
208       libname="mod_$1.la"
209       shobjects=`echo $objects | sed 's/\.lo/.slo/g'`
210       modpath_shared="$modpath_shared $libname"
211       cat >>$modpath_current/modules.mk<<EOF
212 $libname: $shobjects
213         \$(SH_LINK) -rpath \$(libexecdir) -module -avoid-version $4 $objects $5
214 EOF
215     fi
216   fi
217 ])dnl
218
219 dnl
220 dnl APACHE_MPM_MODULE(name[, shared[, objects[, config[, path[, libs]]]]])
221 dnl
222 dnl Provide information for building the MPM.  (Enablement is handled using
223 dnl --with-mpm/--enable-mpms-shared.)
224 dnl
225 dnl name     -- name of MPM, same as MPM directory name
226 dnl shared   -- "shared" to indicate shared module build, empty string otherwise
227 dnl objects  -- one or more .lo files to link into the MPM module (default: mpmname.lo)
228 dnl config   -- configuration logic to run if the MPM is enabled
229 dnl path     -- relative path to MPM (default: server/mpm/mpmname)
230 dnl libs     -- libs needed by this MPM
231 dnl
232 AC_DEFUN([APACHE_MPM_MODULE],[
233     if ap_mpm_is_enabled $1; then
234         if test -z "$3"; then
235             objects="$1.lo"
236         else
237             objects="$3"
238         fi
239
240         if test -z "$5"; then
241             mpmpath="server/mpm/$1"
242         else
243             mpmpath=$5
244         fi
245
246         dnl VPATH support
247         test -d $mpmpath || $srcdir/build/mkdir.sh $mpmpath
248
249         APACHE_FAST_OUTPUT($mpmpath/Makefile)
250
251         if test -z "$2"; then
252             APR_ADDTO(AP_LIBS, [$6])
253             libname="lib$1.la"
254             cat >$mpmpath/modules.mk<<EOF
255 $libname: $objects
256         \$(MOD_LINK) $objects
257 DISTCLEAN_TARGETS = modules.mk
258 static = $libname
259 shared =
260 EOF
261         else
262             apache_need_shared=yes
263             libname="mod_mpm_$1.la"
264             shobjects=`echo $objects | sed 's/\.lo/.slo/g'`
265             cat >$mpmpath/modules.mk<<EOF
266 $libname: $shobjects
267         \$(SH_LINK) -rpath \$(libexecdir) -module -avoid-version $objects $6
268 DISTCLEAN_TARGETS = modules.mk
269 static =
270 shared = $libname
271 EOF
272             DSO_MODULES="$DSO_MODULES mpm_$1"
273             # add default MPM to LoadModule list
274             if test $1 = $default_mpm; then
275                 ENABLED_DSO_MODULES="${ENABLED_DSO_MODULES},mpm_$1"
276             fi
277         fi
278         $4
279     fi
280 ])dnl
281
282 dnl
283 dnl APACHE_MODULE(name, helptext[, objects[, structname[, default[, config[, prereq_module]]]]])
284 dnl
285 dnl default is one of:
286 dnl   yes    -- enabled by default. user must explicitly disable.
287 dnl   no     -- disabled under default, most, all. user must explicitly enable.
288 dnl   most   -- disabled by default. enabled explicitly or with most or all.
289 dnl   static -- enabled as static by default, must be explicitly changed.
290 dnl   ""     -- disabled under default, most. enabled explicitly or with all.
291 dnl             XXX: The arg must really be empty here. Passing an empty shell
292 dnl             XXX: variable doesn't work for some reason. This should be
293 dnl             XXX: fixed.
294 dnl
295 dnl basically: yes/no is a hard setting. "most" means follow the "most"
296 dnl            setting. otherwise, fall under the "all" setting.
297 dnl            explicit yes/no always overrides, except if the user selects
298 dnl            "reallyall".
299 dnl
300 dnl prereq_module is a module (without the "mod_" prefix) that must be enabled
301 dnl   if the current module is enabled.  If the current module is built
302 dnl   statically, prereq_module must be built statically, too.  If these
303 dnl   conditions are not fulfilled, configure will abort if the current module
304 dnl   has been enabled explicitly. Otherwise, configure will disable the
305 dnl   current module.
306 dnl   prereq_module's APACHE_MODULE() statement must have been processed
307 dnl   before the current APACHE_MODULE() statement.
308 dnl
309 AC_DEFUN([APACHE_MODULE],[
310   AC_MSG_CHECKING(whether to enable mod_$1)
311   define([optname],[--]ifelse($5,yes,disable,enable)[-]translit($1,_,-))dnl
312   AC_ARG_ENABLE(translit($1,_,-),APACHE_HELP_STRING(optname(),$2),force_$1=$enableval,enable_$1=ifelse($5,,maybe-all,$5))
313   undefine([optname])dnl
314   _apmod_extra_msg=""
315   dnl When --enable-modules=most or --enable-modules=(really)all is set and the
316   dnl module was not explicitly requested, allow a module to disable itself if
317   dnl its pre-reqs fail.
318   case "$enable_$1" in
319     yes|static|shared)
320       _apmod_required="yes"
321       ;;
322     *)
323       case "$module_selection" in
324       reallyall|all|most)
325         _apmod_required="no"
326         ;;
327       *)
328         _apmod_required="yes"
329         ;;
330       esac
331   esac
332   if test "$enable_$1" = "static"; then
333     enable_$1=static
334   elif test "$enable_$1" = "yes"; then
335     enable_$1=$module_default
336   elif test "$enable_$1" = "most"; then
337     if test "$module_selection" = "most" -o "$module_selection" = "all" -o \
338             "$module_selection" = "reallyall"
339     then
340       enable_$1=$module_default
341     elif test "$module_selection" = "few" -o "$module_selection" = "none"; then
342       enable_$1=no
343     fi
344     _apmod_extra_msg=" ($module_selection)"
345   elif test "$enable_$1" = "maybe-all"; then
346     if test "$module_selection" = "all" -o "$module_selection" = "reallyall"
347     then
348       enable_$1=$module_default
349       _apmod_extra_msg=" ($module_selection)"
350     else
351       enable_$1=no
352     fi
353   elif test "$enable_$1" = "no" -a "$module_selection" = "reallyall" -a \
354             "$force_$1" != "no" ; then
355       enable_$1=$module_default
356       _apmod_extra_msg=" ($module_selection)"
357   fi
358   if test "$enable_$1" != "no"; then
359     dnl If we plan to enable it, allow the module to run some autoconf magic
360     dnl that may disable it because of missing dependencies.
361     ifelse([$6$7],,:,
362            [AC_MSG_RESULT([checking dependencies])
363             ifelse([$7],,:,[if test "$enable_$7" = "no" ; then
364                               enable_$1=no
365                               AC_MSG_WARN("mod_$7 is disabled but required for mod_$1")
366                             elif test "$enable_$1" = "static" && test "$enable_$7" != "static" ; then
367                               enable_$1=no
368                               AC_MSG_WARN("cannot build mod_$1 statically if mod_$7 is built shared")
369                             else])
370             ifelse([$6],,:,[  $6])
371             ifelse([$7],,:,[fi])
372             AC_MSG_CHECKING(whether to enable mod_$1)
373             if test "$enable_$1" = "no"; then
374               if test "$_apmod_required" = "no"; then
375                 _apmod_extra_msg=" (disabled)"
376               else
377                 AC_MSG_ERROR([mod_$1 has been requested but can not be built due to prerequisite failures])
378               fi
379             fi])
380   fi
381   AC_MSG_RESULT($enable_$1$_apmod_extra_msg)
382   if test "$enable_$1" != "no"; then
383     case "$enable_$1" in
384     static*)
385       MODLIST="$MODLIST ifelse($4,,$1,$4)"
386       if test "$1" = "so"; then
387           sharedobjs=yes
388       fi
389       shared="";;
390     *)
391       enable_$1=`echo $enable_$1|sed 's/shared,*//'`
392       sharedobjs=yes
393       shared=yes
394       DSO_MODULES="$DSO_MODULES $1"
395       if test "$5" = "yes" ; then
396         ENABLED_DSO_MODULES="${ENABLED_DSO_MODULES},$1"
397       fi
398       ;;
399     esac
400     define([modprefix], [MOD_]translit($1, [a-z-], [A-Z_]))
401     APACHE_MODPATH_ADD($1, $shared, $3,, [\$(]modprefix[_LDADD)])
402     APACHE_SUBST(modprefix[_LDADD])
403     undefine([modprefix])
404   fi
405 ])dnl
406
407 dnl
408 dnl APACHE_ENABLE_MODULES
409 dnl
410 AC_DEFUN([APACHE_ENABLE_MODULES],[
411   module_selection=most
412   module_default=shared
413
414   dnl Check whether we have DSO support.
415   dnl If "yes", we build shared modules by default.
416   APR_CHECK_APR_DEFINE(APR_HAS_DSO)
417
418   if test $ac_cv_define_APR_HAS_DSO = "no"; then
419     AC_MSG_WARN([Missing DSO support - building static modules by default.])
420     module_default=static
421   fi
422
423
424   AC_ARG_ENABLE(modules,
425   APACHE_HELP_STRING(--enable-modules=MODULE-LIST,Space-separated list of modules to enable | "all" | "most" | "few" | "none" | "reallyall"),[
426     if test "$enableval" = "none"; then
427        module_default=no
428        module_selection=none
429     else
430       for i in $enableval; do
431         if test "$i" = "all" -o "$i" = "most" -o "$i" = "few" -o "$i" = "reallyall"
432         then
433           module_selection=$i
434         else
435           i=`echo $i | sed 's/-/_/g'`
436           eval "enable_$i=shared"
437         fi
438       done
439     fi
440   ])
441   
442   AC_ARG_ENABLE(mods-shared,
443   APACHE_HELP_STRING(--enable-mods-shared=MODULE-LIST,Space-separated list of shared modules to enable | "all" | "most" | "few" | "reallyall"),[
444     for i in $enableval; do
445       if test "$i" = "all" -o "$i" = "most" -o "$i" = "few" -o "$i" = "reallyall"
446       then
447         module_selection=$i
448         module_default=shared
449       else
450         i=`echo $i | sed 's/-/_/g'`
451         eval "enable_$i=shared"
452       fi
453     done
454   ])
455   
456   AC_ARG_ENABLE(mods-static,
457   APACHE_HELP_STRING(--enable-mods-static=MODULE-LIST,Space-separated list of static modules to enable | "all" | "most" | "few" | "reallyall"),[
458     for i in $enableval; do
459       if test "$i" = "all" -o "$i" = "most" -o "$i" = "few" -o "$i" = "reallyall"; then
460         module_selection=$i
461         module_default=static
462       else
463         i=`echo $i | sed 's/-/_/g'`
464         eval "enable_$i=static"
465       fi
466     done
467   ])
468 ])
469
470 AC_DEFUN([APACHE_REQUIRE_CXX],[
471   if test -z "$apache_cxx_done"; then
472     AC_PROG_CXX
473     AC_PROG_CXXCPP
474     apache_cxx_done=yes
475   fi
476 ])
477
478 dnl
479 dnl APACHE_CHECK_OPENSSL
480 dnl
481 dnl Configure for OpenSSL, giving preference to
482 dnl "--with-ssl=<path>" if it was specified.
483 dnl
484 AC_DEFUN([APACHE_CHECK_OPENSSL],[
485   AC_CACHE_CHECK([for OpenSSL], [ac_cv_openssl], [
486     dnl initialise the variables we use
487     ac_cv_openssl=no
488     ap_openssl_found=""
489     ap_openssl_base=""
490     ap_openssl_libs=""
491
492     dnl Determine the OpenSSL base directory, if any
493     AC_MSG_CHECKING([for user-provided OpenSSL base directory])
494     AC_ARG_WITH(ssl, APACHE_HELP_STRING(--with-ssl=PATH,OpenSSL installation directory), [
495       dnl If --with-ssl specifies a directory, we use that directory
496       if test "x$withval" != "xyes" -a "x$withval" != "x"; then
497         dnl This ensures $withval is actually a directory and that it is absolute
498         ap_openssl_base="`cd $withval ; pwd`"
499       fi
500     ])
501     if test "x$ap_openssl_base" = "x"; then
502       AC_MSG_RESULT(none)
503     else
504       AC_MSG_RESULT($ap_openssl_base)
505     fi
506
507     dnl Run header and version checks
508     saved_CPPFLAGS="$CPPFLAGS"
509     saved_LIBS="$LIBS"
510     saved_LDFLAGS="$LDFLAGS"
511
512     dnl Before doing anything else, load in pkg-config variables
513     if test -n "$PKGCONFIG"; then
514       saved_PKG_CONFIG_PATH="$PKG_CONFIG_PATH"
515       if test "x$ap_openssl_base" != "x" -a \
516               -f "${ap_openssl_base}/lib/pkgconfig/openssl.pc"; then
517         dnl Ensure that the given path is used by pkg-config too, otherwise
518         dnl the system openssl.pc might be picked up instead.
519         PKG_CONFIG_PATH="${ap_openssl_base}/lib/pkgconfig${PKG_CONFIG_PATH+:}${PKG_CONFIG_PATH}"
520         export PKG_CONFIG_PATH
521       fi
522       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.]), [
523         if test "$enableval" = "yes"; then
524           PKGCONFIG_LIBOPTS="--static"
525         fi
526       ])
527       ap_openssl_libs="`$PKGCONFIG $PKGCONFIG_LIBOPTS --libs-only-l --silence-errors openssl`"
528       if test $? -eq 0; then
529         ap_openssl_found="yes"
530         pkglookup="`$PKGCONFIG --cflags-only-I openssl`"
531         APR_ADDTO(CPPFLAGS, [$pkglookup])
532         APR_ADDTO(MOD_CFLAGS, [$pkglookup])
533         APR_ADDTO(ab_CFLAGS, [$pkglookup])
534         pkglookup="`$PKGCONFIG $PKGCONFIG_LIBOPTS --libs-only-L openssl`"
535         APR_ADDTO(LDFLAGS, [$pkglookup])
536         APR_ADDTO(MOD_LDFLAGS, [$pkglookup])
537         pkglookup="`$PKGCONFIG $PKGCONFIG_LIBOPTS --libs-only-other openssl`"
538         APR_ADDTO(LDFLAGS, [$pkglookup])
539         APR_ADDTO(MOD_LDFLAGS, [$pkglookup])
540       fi
541       PKG_CONFIG_PATH="$saved_PKG_CONFIG_PATH"
542     fi
543
544     dnl fall back to the user-supplied directory if not found via pkg-config
545     if test "x$ap_openssl_base" != "x" -a "x$ap_openssl_found" = "x"; then
546       APR_ADDTO(CPPFLAGS, [-I$ap_openssl_base/include])
547       APR_ADDTO(MOD_CFLAGS, [-I$ap_openssl_base/include])
548       APR_ADDTO(ab_CFLAGS, [-I$ap_openssl_base/include])
549       APR_ADDTO(LDFLAGS, [-L$ap_openssl_base/lib])
550       APR_ADDTO(MOD_LDFLAGS, [-L$ap_openssl_base/lib])
551       if test "x$ap_platform_runtime_link_flag" != "x"; then
552         APR_ADDTO(LDFLAGS, [$ap_platform_runtime_link_flag$ap_openssl_base/lib])
553         APR_ADDTO(MOD_LDFLAGS, [$ap_platform_runtime_link_flag$ap_openssl_base/lib])
554       fi
555     fi
556
557     AC_MSG_CHECKING([for OpenSSL version >= 0.9.8a])
558     AC_TRY_COMPILE([#include <openssl/opensslv.h>],[
559 #if !defined(OPENSSL_VERSION_NUMBER)
560 #error "Missing OpenSSL version"
561 #endif
562 #if OPENSSL_VERSION_NUMBER < 0x0090801f
563 #error "Unsupported OpenSSL version " OPENSSL_VERSION_TEXT
564 #endif],
565       [AC_MSG_RESULT(OK)
566        ac_cv_openssl=yes],
567       [AC_MSG_RESULT(FAILED)])
568
569     if test "x$ac_cv_openssl" = "xyes"; then
570       ap_openssl_libs="${ap_openssl_libs:--lssl -lcrypto} `$apr_config --libs`"
571       APR_ADDTO(MOD_LDFLAGS, [$ap_openssl_libs])
572       APR_ADDTO(LIBS, [$ap_openssl_libs])
573       APR_SETVAR(ab_LDFLAGS, [$MOD_LDFLAGS])
574       APACHE_SUBST(ab_CFLAGS)
575       APACHE_SUBST(ab_LDFLAGS)
576
577       dnl Run library and function checks
578       liberrors=""
579       AC_CHECK_HEADERS([openssl/engine.h])
580       AC_CHECK_FUNCS([SSLeay_version SSL_CTX_new], [], [liberrors="yes"])
581       AC_CHECK_FUNCS([ENGINE_init ENGINE_load_builtin_engines RAND_egd])
582       if test "x$liberrors" != "x"; then
583         AC_MSG_WARN([OpenSSL libraries are unusable])
584       fi
585     else
586       AC_MSG_WARN([OpenSSL version is too old])
587     fi
588
589     dnl restore
590     CPPFLAGS="$saved_CPPFLAGS"
591     LIBS="$saved_LIBS"
592     LDFLAGS="$saved_LDFLAGS"
593   ])
594   if test "x$ac_cv_openssl" = "xyes"; then
595     AC_DEFINE(HAVE_OPENSSL, 1, [Define if OpenSSL is available])
596   fi
597 ])
598
599 dnl
600 dnl APACHE_EXPORT_ARGUMENTS
601 dnl Export (via APACHE_SUBST) the various path-related variables that
602 dnl apache will use while generating scripts like autoconf and apxs and
603 dnl the default config file.
604
605 AC_DEFUN([APACHE_SUBST_EXPANDED_ARG],[
606   APR_EXPAND_VAR(exp_$1, [$]$1)
607   APACHE_SUBST(exp_$1)
608   APR_PATH_RELATIVE(rel_$1, [$]exp_$1, ${prefix})
609   APACHE_SUBST(rel_$1)
610 ])
611
612 AC_DEFUN([APACHE_EXPORT_ARGUMENTS],[
613   APACHE_SUBST_EXPANDED_ARG(exec_prefix)
614   APACHE_SUBST_EXPANDED_ARG(bindir)
615   APACHE_SUBST_EXPANDED_ARG(sbindir)
616   APACHE_SUBST_EXPANDED_ARG(libdir)
617   APACHE_SUBST_EXPANDED_ARG(libexecdir)
618   APACHE_SUBST_EXPANDED_ARG(mandir)
619   APACHE_SUBST_EXPANDED_ARG(sysconfdir)
620   APACHE_SUBST_EXPANDED_ARG(datadir)
621   APACHE_SUBST_EXPANDED_ARG(installbuilddir)
622   APACHE_SUBST_EXPANDED_ARG(errordir)
623   APACHE_SUBST_EXPANDED_ARG(iconsdir)
624   APACHE_SUBST_EXPANDED_ARG(htdocsdir)
625   APACHE_SUBST_EXPANDED_ARG(manualdir)
626   APACHE_SUBST_EXPANDED_ARG(cgidir)
627   APACHE_SUBST_EXPANDED_ARG(includedir)
628   APACHE_SUBST_EXPANDED_ARG(localstatedir)
629   APACHE_SUBST_EXPANDED_ARG(runtimedir)
630   APACHE_SUBST_EXPANDED_ARG(logfiledir)
631   APACHE_SUBST_EXPANDED_ARG(proxycachedir)
632 ])
633
634 dnl 
635 dnl APACHE_CHECK_APxVER({apr|apu}, major, minor, 
636 dnl                     [actions-if-ok], [actions-if-not-ok])
637 dnl
638 dnl Checks for APR or APR-util of given major/minor version or later; 
639 dnl if so, runs actions-if-ok; otherwise runs actions-if-not-ok if given.
640 dnl If the version is not satisfactory and actions-if-not-ok is not
641 dnl given, then an error is printed and the configure script is aborted.
642 dnl
643 dnl The first argument must be [apr] or [apu].
644 dnl
645 AC_DEFUN([APACHE_CHECK_APxVER], [
646 define(ap_ckver_major, translit($1, [apru], [APRU])[_MAJOR_VERSION])
647 define(ap_ckver_minor, translit($1, [apru], [APRU])[_MINOR_VERSION])
648 define(ap_ckver_cvar, [ap_cv_$1ver$2$3])
649 define(ap_ckver_name, ifelse([$1],[apr],[APR],[APR-util]))
650
651 ap_ckver_CPPFLAGS="$CPPFLAGS"
652 CPPFLAGS="$CPPFLAGS `$[$1]_config --includes`"
653
654 AC_CACHE_CHECK([for ap_ckver_name version $2.$3.0 or later], ap_ckver_cvar, [
655 AC_EGREP_CPP([good], [
656 #include <$1_version.h>
657 #if ]ap_ckver_major[ > $2 || (]ap_ckver_major[ == $2 && ]ap_ckver_minor[ >= $3)
658 good
659 #endif
660 ], [ap_ckver_cvar=yes], [ap_ckver_cvar=no])])
661
662 if test "$ap_ckver_cvar" = "yes"; then
663   ifelse([$4],[],[:],[$4])
664 else
665   ifelse([$5],[],[AC_MSG_ERROR([ap_ckver_name version $2.$3.0 or later is required])], [$5])
666 fi
667
668 CPPFLAGS="$ap_ckver_CPPFLAGS"
669
670 undefine([ap_ckver_major])
671 undefine([ap_ckver_minor])
672 undefine([ap_ckver_cvar])
673 undefine([ap_ckver_name])
674 ])
675
676 dnl
677 dnl APACHE_CHECK_VOID_PTR_LEN
678 dnl
679 dnl Checks if the size of a void pointer is at least as big as a "long" 
680 dnl integer type.
681 dnl
682 AC_DEFUN([APACHE_CHECK_VOID_PTR_LEN], [
683
684 AC_CACHE_CHECK([for void pointer length], [ap_cv_void_ptr_lt_long],
685 [AC_TRY_RUN([
686 int main(void)
687 {
688     return sizeof(void *) < sizeof(long); 
689 }], [ap_cv_void_ptr_lt_long=no], [ap_cv_void_ptr_lt_long=yes], 
690     [ap_cv_void_ptr_lt_long=yes])])
691
692 if test "$ap_cv_void_ptr_lt_long" = "yes"; then
693     AC_MSG_ERROR([Size of "void *" is less than size of "long"])
694 fi
695 ])
696
697 dnl
698 dnl APACHE_CHECK_APR_HAS_LDAP
699 dnl
700 dnl Check if APR_HAS_LDAP is 1
701 dnl Unfortunately, we can't use APR_CHECK_APR_DEFINE (because it only includes apr.h)
702 dnl or APR_CHECK_DEFINE (because it only checks for defined'ness and not for 0/1).
703 dnl
704 AC_DEFUN([APACHE_CHECK_APR_HAS_LDAP], [
705   AC_CACHE_CHECK([for ldap support in apr/apr-util],ac_cv_APR_HAS_LDAP,[
706     apache_old_cppflags="$CPPFLAGS"
707     CPPFLAGS="$CPPFLAGS $INCLUDES"
708     AC_EGREP_CPP(YES_IS_DEFINED, [
709 #include <apr_ldap.h>
710 #if APR_HAS_LDAP
711 YES_IS_DEFINED
712 #endif
713     ], ac_cv_APR_HAS_LDAP=yes, ac_cv_APR_HAS_LDAP=no)
714     CPPFLAGS="$apache_old_cppflags"
715   ])
716 ])
717
718 dnl
719 dnl APACHE_ADD_GCC_CFLAGS
720 dnl
721 dnl Check if compiler is gcc and supports flag. If yes, add to CFLAGS.
722 dnl
723 AC_DEFUN([APACHE_ADD_GCC_CFLAG], [
724   define([ap_gcc_ckvar], [ac_cv_gcc_]translit($1, [-:.=], [____]))
725   if test "$GCC" = "yes"; then
726     AC_CACHE_CHECK([whether gcc accepts $1], ap_gcc_ckvar, [
727       save_CFLAGS="$CFLAGS"
728       CFLAGS="$CFLAGS $1"
729       AC_COMPILE_IFELSE([AC_LANG_SOURCE([int foo() { return 0; }])],
730         [ap_gcc_ckvar=yes], [ap_gcc_ckvar=no])
731       CFLAGS="$save_CFLAGS"
732     ])
733     if test "$]ap_gcc_ckvar[" = "yes" ; then
734        APR_ADDTO(CFLAGS,[$1])
735     fi
736   fi
737   undefine([ap_gcc_ckvar])
738 ])