]> granicus.if.org Git - apache/blob - configure.in
More mod_cache tweakage.
[apache] / configure.in
1 dnl
2 dnl Autoconf configuration for Apache httpd
3 dnl
4 dnl     Use ./buildconf to produce a configure script
5 dnl
6
7 AC_PREREQ(2.13)
8 AC_INIT(ABOUT_APACHE)
9
10 AC_CONFIG_HEADER(include/ap_config_auto.h)
11 AC_CONFIG_AUX_DIR(build)
12
13 dnl #
14 dnl # Include our own M4 macros along with those for APR and libtool
15 dnl #
16 sinclude(build/apr_common.m4)
17 sinclude(build/find_apr.m4)
18 sinclude(build/find_apu.m4)
19 sinclude(acinclude.m4)
20
21 dnl XXX we can't just use AC_PREFIX_DEFAULT because that isn't subbed in
22 dnl by configure until it is too late.  Is that how it should be or not?
23 dnl Something seems broken here.                                               
24 AC_PREFIX_DEFAULT(/usr/local/apache2)
25
26 dnl Get the layout here, so we can pass the required variables to apr
27 APR_ENABLE_LAYOUT(Apache, [errordir iconsdir htdocsdir cgidir])
28
29 dnl reparse the configure arguments.
30 APR_PARSE_ARGUMENTS
31
32 dnl export expanded and relative configure argument variables
33 APACHE_EXPORT_ARGUMENTS
34
35 dnl Save user-defined environment settings for later restoration
36 dnl
37 APR_SAVE_THE_ENVIRONMENT(CPPFLAGS)
38 APR_SAVE_THE_ENVIRONMENT(CFLAGS)
39 APR_SAVE_THE_ENVIRONMENT(CXXFLAGS)
40 APR_SAVE_THE_ENVIRONMENT(LDFLAGS)
41 APR_SAVE_THE_ENVIRONMENT(LIBS)
42 APR_SAVE_THE_ENVIRONMENT(INCLUDES)
43
44 dnl Generate ./config.nice for reproducing runs of configure
45 dnl
46 APR_CONFIG_NICE(config.nice)
47
48 nl='
49 '
50 dnl Check that mkdir -p works
51 APR_MKDIR_P_CHECK($top_srcdir/build/mkdir.sh)
52
53 dnl ## Run configure for packages Apache uses
54
55 dnl shared library support for these packages doesn't currently
56 dnl work on some platforms
57
58 AC_CANONICAL_SYSTEM
59
60 orig_prefix="$prefix"
61
62 echo $ac_n "${nl}Configuring Apache Portable Runtime library ...${nl}"
63
64 APR_FIND_APR("$srcdir/srclib/apr", "./srclib/apr", 1, 1)
65
66 if test "$apr_found" = "no"; then
67   AC_MSG_ERROR([APR not found.  Please read the documentation.])
68 fi
69
70 if test "$apr_found" = "reconfig"; then
71   APR_SUBDIR_CONFIG(srclib/apr,
72                     [$apache_apr_flags --prefix=$prefix --exec-prefix=$exec_prefix --libdir=$libdir --includedir=$includedir --bindir=$bindir --datadir=$datadir --with-installbuilddir=$installbuilddir],
73                     [--enable-layout=*|\'--enable-layout=*])
74   dnl We must be the first to build and the last to be cleaned
75   AP_BUILD_SRCLIB_DIRS="apr $AP_BUILD_SRCLIB_DIRS"
76   AP_CLEAN_SRCLIB_DIRS="$AP_CLEAN_SRCLIB_DIRS apr"
77 fi
78
79 APR_SETIFNULL(CC, `$apr_config --cc`)
80 APR_SETIFNULL(CPP, `$apr_config --cpp`)
81 APR_ADDTO(CFLAGS, `$apr_config --cflags`)
82 APR_ADDTO(CPPFLAGS, `$apr_config --cppflags`)
83 APR_ADDTO(LDFLAGS, `$apr_config --ldflags`)
84 SHLIBPATH_VAR=`$apr_config --shlib-path-var`
85 APR_BINDIR=`$apr_config --bindir`
86 APR_INCLUDEDIR=`$apr_config --includedir`
87 APR_VERSION=`$apr_config --version`
88 APR_CONFIG="$APR_BINDIR/apr-`echo ${APR_VERSION} | sed 's,\..*,,'`-config"
89
90 echo $ac_n "${nl}Configuring Apache Portable Runtime Utility library...${nl}"
91
92 APR_FIND_APU("$srcdir/srclib/apr-util", "./srclib/apr-util", 1, 1)
93
94 if test "$apu_found" = "no"; then
95   AC_MSG_ERROR([APR-util not found.  Please read the documentation.])
96 fi
97
98 if test "$apu_found" = "reconfig"; then
99   APR_SUBDIR_CONFIG(srclib/apr-util,
100                     [--with-apr=../apr --prefix=$prefix --exec-prefix=$exec_prefix --libdir=$libdir --includedir=$includedir --bindir=$bindir],
101                     [--enable-layout=*|\'--enable-layout=*])
102   dnl We must be the last to build and the first to be cleaned
103   AP_BUILD_SRCLIB_DIRS="$AP_BUILD_SRCLIB_DIRS apr-util"
104   AP_CLEAN_SRCLIB_DIRS="apr-util $AP_CLEAN_SRCLIB_DIRS"
105 fi
106
107 APR_ADDTO(LDFLAGS, `$apu_config --ldflags`)
108 APU_BINDIR=`$apu_config --bindir`
109 APU_INCLUDEDIR=`$apu_config --includedir`
110 APU_VERSION=`$apu_config --version`
111 APU_CONFIG="$APU_BINDIR/apu-`echo ${APU_VERSION} | sed 's,\..*,,'`-config"
112
113 dnl In case we picked up CC and CPP from APR, get that info into the
114 dnl config cache so that PCRE uses it.  Otherwise, CC and CPP used for
115 dnl PCRE and for our config tests will be whatever PCRE determines.
116 AC_PROG_CC
117 AC_PROG_CPP
118
119 if test "x${cache_file}" = "x/dev/null"; then
120   # Likewise, ensure that CC and CPP are passed through to the pcre
121   # configure script iff caching is disabled (the autoconf 2.5x default).
122   export CC; export CPP
123 fi
124
125 echo $ac_n "${nl}Configuring PCRE regular expression library ...${nl}"
126
127 APR_SUBDIR_CONFIG(srclib/pcre,
128                   [--prefix=$prefix --exec-prefix=$exec_prefix --libdir=$libdir --includedir=$includedir --bindir=$bindir])
129
130 echo $ac_n "${nl}Configuring Apache httpd ...${nl}"
131
132 dnl Absolute source/build directory
133 abs_srcdir=`(cd $srcdir && pwd)`
134 abs_builddir=`pwd`
135
136 dnl If the source dir is not equal to the build dir, 
137 dnl then we are running in VPATH mode.
138
139 APR_ADDTO(INCLUDES, [-I.])
140
141 if test "$abs_builddir" != "$abs_srcdir"; then
142   APR_ADDTO(INCLUDES, [-I\$(top_builddir)/include])
143 fi
144
145 APR_ADDTO(INCLUDES, [-I\$(top_srcdir)/os/\$(OS_DIR) -I\$(top_srcdir)/server/mpm/\$(MPM_SUBDIR_NAME) -I\$(top_srcdir)/modules/http -I\$(top_srcdir)/modules/filters -I\$(top_srcdir)/modules/proxy -I\$(top_srcdir)/include -I\$(top_srcdir)/modules/generators -I\$(top_srcdir)/modules/mappers])
146
147 # apr/apr-util --includes may pick up system paths for dependent
148 # libraries, so ensure these are later in INCLUDES than local source
149 # directories.
150 APR_ADDTO(INCLUDES, `$apr_config --includes`)
151 APR_ADDTO(INCLUDES, `$apu_config --includes`)
152
153 echo $ac_n "${nl}Applying OS-specific hints for httpd ...${nl}"
154
155 case $host in
156   *os2*)
157       # Use a custom made libtool replacement
158       echo "using aplibtool"
159       LIBTOOL="$abs_srcdir/srclib/apr/build/aplibtool"
160       SH_LIBTOOL="$LIBTOOL --shared --export-all"
161       SH_LIBS="\$(ALL_LIBS)"
162       CORE_IMPLIB_FILE="ApacheCoreOS2.la"
163       CORE_IMPLIB="$abs_srcdir/server/$CORE_IMPLIB_FILE"
164       MK_IMPLIB="emximp"
165       other_targets="$other_targets os2core"
166       INSTALL_PROG_FLAGS="-e .exe"
167       SHLTCFLAGS=""
168       LTCFLAGS=""
169       ;;
170   *)
171       if test "x$LTFLAGS" = "x"; then
172           LTFLAGS='--silent'
173       fi
174       my_libtool=`$apr_config --apr-libtool`
175       LIBTOOL="$my_libtool \$(LTFLAGS)"
176       libtoolversion=`$my_libtool --version`
177       case $libtoolversion in
178           *1.[[45]]*)
179               SH_LIBTOOL='$(LIBTOOL)'
180               SHLTCFLAGS="-prefer-pic"
181               LTCFLAGS="-prefer-non-pic -static"
182               ;;
183           *)
184               SH_LIBTOOL='$(SHELL) $(top_builddir)/shlibtool $(LTFLAGS)'
185               SHLTCFLAGS=""
186               LTCFLAGS=""
187               ;;
188       esac
189       ;;
190 esac
191 APACHE_SUBST(SHLTCFLAGS)
192 APACHE_SUBST(LTCFLAGS)
193
194 AP_SIG_GRACEFUL=USR1
195
196 case $host in
197   *-apple-aux3*)
198       APR_SETVAR(APACHE_MPM, [prefork])
199       APR_SETVAR(SINGLE_LISTEN_UNSERIALIZED_ACCEPT, [1])
200       ;;
201   *-beos*)
202       APR_SETVAR(APACHE_MPM, [beos])
203       APR_SETVAR(SINGLE_LISTEN_UNSERIALIZED_ACCEPT, [1])
204       ;;
205   *os2-emx*)
206       APR_SETVAR(APACHE_MPM, [mpmt_os2])
207       APR_SETVAR(SINGLE_LISTEN_UNSERIALIZED_ACCEPT, [1])
208       ;;
209   *-linux-*)
210       case `uname -r` in
211         2.0* ) 
212             AP_SIG_GRACEFUL=WINCH
213             ;;
214         2.[[2-9]]* ) 
215             APR_SETVAR(SINGLE_LISTEN_UNSERIALIZED_ACCEPT, [1])
216             ;;
217         * )
218             ;;
219       esac
220       ;;
221   *486-*-bsdi* | *-netbsd* | *-freebsd* | *-apple-darwin* | *-dec-osf* | *-qnx)
222       APR_SETVAR(SINGLE_LISTEN_UNSERIALIZED_ACCEPT, [1])
223       ;;
224   *-solaris2*)
225       dnl This is a hack -- we should be using AC_TRY_RUN instead
226       ap_platform_runtime_link_flag="-R"
227       dnl solaris 8 and above don't have a thundering herd
228       dnl not sure about rev's before this one.
229       case `uname -r` in
230         5.[567]*)
231             ;;
232         * )
233             APR_SETVAR(SINGLE_LISTEN_UNSERIALIZED_ACCEPT, [1])
234             ;;
235       esac
236       ;;
237   *cygwin*)
238       APR_SETVAR(APACHE_MPM, [prefork])
239       APR_SETVAR(SINGLE_LISTEN_UNSERIALIZED_ACCEPT, [1])
240       ;;
241   *aix*)
242       aixver=`echo $host | sed 's/^[[^0-9]]*//' | sed 's/\.//g'`
243       if test $aixver -ge 4320; then
244         APR_SETVAR(SINGLE_LISTEN_UNSERIALIZED_ACCEPT, [1])
245       fi
246       ;;
247   *os390*)
248       APR_SETVAR(SINGLE_LISTEN_UNSERIALIZED_ACCEPT, [1])
249       ;;
250 esac
251
252 APR_SETVAR(AP_NONBLOCK_WHEN_MULTI_LISTEN, [1])
253
254 dnl
255 dnl Process command line arguments. This is done early in the process so the
256 dnl user can get feedback quickly in case of an error.
257 dnl
258 dnl ### need to move some of the arguments "up here"
259
260 dnl ## Check for programs
261
262 AC_PATH_PROG(RM, rm)
263 AC_PATH_PROG(PKGCONFIG, pkg-config)
264 AC_PROG_AWK
265 AC_PROG_INSTALL
266 AC_PROG_LN_S
267 AC_CHECK_TOOL(RANLIB, ranlib, true)
268 dnl AC_PATH_PROG(PERL_PATH, perl)
269 AC_CHECK_PROGS(LYNX_PATH,[lynx links elinks], [lynx])
270
271 dnl various OS checks that apparently set required flags
272 AC_AIX
273 AC_ISC_POSIX
274 AC_MINIX
275
276 dnl Check for what we can generate dependency files with
277 APR_CHECK_DEPEND
278
279 dnl ## Check for libraries
280
281 dnl ## Check for header files
282
283 dnl I think these are just used all over the place, so just check for
284 dnl them at the base of the tree. If some are specific to a single
285 dnl directory, they should be moved (Comment #Spoon)
286
287 dnl Regarding standard header files: AC_HEADER_STDC doesn't set symbols
288 dnl HAVE_STRING_H, HAVE_STDLIB_H, etc., so those are checked for
289 dnl explicitly so that the normal HAVE_xxx_H symbol is defined.
290
291 AC_HEADER_STDC
292 AC_CHECK_HEADERS( \
293 string.h \
294 limits.h \
295 unistd.h \
296 sys/socket.h \
297 pwd.h \
298 grp.h \
299 strings.h \
300 sys/prctl.h \
301 sys/processor.h \
302 sys/sem.h
303 )
304 AC_HEADER_SYS_WAIT
305
306 dnl ## Check for typedefs, structures, and compiler characteristics.
307
308 AC_C_CONST
309 if test "x$GCC" = "xyes"; then
310   AC_DEFINE([AP_HAVE_DESIGNATED_INITIALIZER], 1,
311             [Define if the compiler supports designated initializers])
312 fi
313
314 dnl ## Check for library functions
315 AC_SEARCH_LIBS(sqrt, m)
316
317 dnl See Comment #Spoon
318
319 AC_CHECK_FUNCS( \
320 getpwnam \
321 getgrnam \
322 initgroups \
323 bindprocessor \
324 prctl \
325 timegm \
326 )
327
328 dnl ## Check for the tm_gmtoff field in struct tm to get the timezone diffs
329 AC_CACHE_CHECK([for tm_gmtoff in struct tm], ac_cv_struct_tm_gmtoff,
330 [AC_TRY_COMPILE([#include <sys/types.h>
331 #include <time.h>], [struct tm tm; tm.tm_gmtoff;],
332   ac_cv_struct_tm_gmtoff=yes, ac_cv_struct_tm_gmtoff=no)])
333 if test "$ac_cv_struct_tm_gmtoff" = "yes"; then
334     AC_DEFINE(HAVE_GMTOFF, 1, [Define if struct tm has a tm_gmtoff field])
335 fi
336
337 dnl ## Set up any appropriate OS-specific environment variables for apachectl
338
339 case $host in
340     *aix*)
341         # for 32-bit builds, increase MAXDATA to allow lots of threads
342         if test x$OBJECT_MODE != x64; then
343             OS_SPECIFIC_VARS="LDR_CNTRL=\"MAXDATA=0x80000000\" ; export LDR_CNTRL ;"
344         fi
345         OS_SPECIFIC_VARS="$OS_SPECIFIC_VARS AIXTHREAD_SCOPE=S ; export AIXTHREAD_SCOPE"
346         OS_SPECIFIC_VARS="$OS_SPECIFIC_VARS ; AIXTHREAD_MUTEX_DEBUG=OFF ; export AIXTHREAD_MUTEX_DEBUG"
347         OS_SPECIFIC_VARS="$OS_SPECIFIC_VARS ; AIXTHREAD_RWLOCK_DEBUG=OFF ; export AIXTHREAD_RWLOCK_DEBUG"
348         OS_SPECIFIC_VARS="$OS_SPECIFIC_VARS ; AIXTHREAD_COND_DEBUG=OFF ; export AIXTHREAD_COND_DEBUG"
349         OS_SPECIFIC_VARS="$OS_SPECIFIC_VARS ; SPINLOOPTIME=1000 ; export SPINLOOPTIME"
350         OS_SPECIFIC_VARS="$OS_SPECIFIC_VARS ; YIELDLOOPTIME=8 ; export YIELDLOOPTIME"
351         OS_SPECIFIC_VARS="$OS_SPECIFIC_VARS ; MALLOCMULTIHEAP=considersize,heaps:8 ; export MALLOCMULTIHEAP"
352         ;;
353     *os390*)
354         OS_SPECIFIC_VARS="export _CEE_RUNOPTS=\"STACK(,,ANY)\" ; export _EDC_ADD_ERRNO2=1"
355         ;;
356     *)
357         OS_SPECIFIC_VARS=""
358 esac
359       
360 AC_ARG_WITH(port,APACHE_HELP_STRING(--with-port=PORT,Port on which to listen (default is 80)),
361         [if test "$withval" = "yes"; then AC_MSG_ERROR('option --with-port requires a value (the TCP port number)'); else PORT="$withval"; fi],
362         [PORT=80])
363
364 APR_CHECK_APR_DEFINE(APR_HAVE_IPV6)
365
366 AC_ARG_ENABLE(v4-mapped,APACHE_HELP_STRING(--enable-v4-mapped,Allow IPv6 sockets to handle IPv4 connections),
367
368   v4mapped=$enableval
369 ],
370 [
371     case $host in
372     *freebsd5*|*netbsd*|*openbsd*)
373         v4mapped=no
374         ;;
375     *)
376         v4mapped=yes
377         ;;
378 esac
379 ])
380
381 if test $v4mapped = "yes" -a $ac_cv_define_APR_HAVE_IPV6 = "yes"; then
382     AC_DEFINE(AP_ENABLE_V4_MAPPED, 1,
383               [Allow IPv4 connections on IPv6 listening sockets])
384 fi
385
386 AC_ARG_ENABLE(exception-hook,APACHE_HELP_STRING(--enable-exception-hook,Enable fatal exception hook),
387 [
388     AC_DEFINE(AP_ENABLE_EXCEPTION_HOOK, 1,
389               [Allow modules to run hook after a fatal exception])
390 ])dnl
391
392 AC_ARG_ENABLE(maintainer-mode,APACHE_HELP_STRING(--enable-maintainer-mode,Turn on debugging and compile time warnings),
393 [
394   APR_ADDTO(CPPFLAGS, -DAP_DEBUG)
395 ])dnl
396
397 dnl Conditionally enable PIE support for GNU toolchains.
398 AC_ARG_ENABLE(pie,APACHE_HELP_STRING(--enable-pie,Build httpd as a Position Independent Executable))
399 if test "$enable_pie" = "yes"; then
400    AC_CACHE_CHECK([whether $CC accepts PIE flags], [ap_cv_cc_pie], [
401      save_CFLAGS=$CFLAGS
402      save_LDFLAGS=$LDFLAGS
403      CFLAGS="$CFLAGS -fPIE"
404      LDFLAGS="$LDFLAGS -pie"
405      AC_TRY_RUN([static int foo[30000]; int main () { return 0; }],
406       [ap_cv_cc_pie=yes], [ap_cv_cc_pie=no], [ap_cv_cc_pie=yes])
407      CFLAGS=$save_CFLAGS
408      LDFLAGS=$save_LDFLAGS
409    ])
410    if test "$ap_cv_cc_pie" = "yes"; then
411      PICFLAGS="-fPIE"
412      PILDFLAGS="-pie"
413    else
414      AC_ERROR([--enable-pie requested but $CC failed using PIE flags])
415    fi
416 fi
417 AC_SUBST(PICFLAGS)
418 AC_SUBST(PILDFLAGS)
419
420 prefix="$orig_prefix"
421 APACHE_ENABLE_MODULES
422
423 dnl reading config stubs
424 esyscmd(./build/config-stubs .)
425
426 APACHE_SUBST(progname)
427 APACHE_SUBST(MPM_LIB)
428 APACHE_SUBST(OS)
429 APACHE_SUBST(OS_DIR)
430 APACHE_SUBST(BUILTIN_LIBS)
431 APACHE_SUBST(SHLIBPATH_VAR)
432 APACHE_SUBST(OS_SPECIFIC_VARS)
433
434 PRE_SHARED_CMDS='echo ""'
435 POST_SHARED_CMDS='echo ""'
436
437 dnl apache_need_shared tells us if Apache modules are being built as DSOs
438
439 if test "$apache_need_shared" = "yes"; then
440   if test -f $ac_aux_dir/ltconfig; then
441     $SHELL $ac_aux_dir/ltconfig --output=shlibtool --disable-static --srcdir=$ac_aux_dir --cache-file=./config.cache $ac_aux_dir/ltmain.sh
442   fi
443   shared_build="shared-build"
444 fi
445
446 dnl enable_so tells us if *any* modules can be built as DSOs
447
448 if test "$enable_so" = "yes"; then
449   case $host in
450     *-ibm-aix*)
451       HTTPD_LDFLAGS="$HTTPD_LDFLAGS -Wl,-uXML_Parse -Wl,-bE:$abs_builddir/server/httpd.exp"
452       SH_LDFLAGS="$SH_LDFLAGS \$(EXTRA_LDFLAGS) \$(EXTRA_LIBS)"
453       UTIL_LDFLAGS="$UTIL_LDFLAGS -Wl,-uXML_Parse"
454       ;;
455     *beos)
456       SH_LDFLAGS='$(top_builddir)/_APP_'
457       PRE_SHARED_CMDS='ln -s $(top_builddir)/httpd $(top_builddir)/_APP_'
458       POST_SHARED_CMDS='rm $(top_builddir)/_APP_'
459       ;;
460     *os390)
461       HTTPD_LDFLAGS="$HTTPD_LDFLAGS --main=$abs_srcdir/server/main.o --core-dll=$abs_srcdir/apachecore.dll"
462       SH_LDFLAGS="$SH_LDFLAGS --core-dll=$abs_srcdir/apachecore.dll"
463   esac
464 fi
465
466 APACHE_SUBST(PRE_SHARED_CMDS)
467 APACHE_SUBST(POST_SHARED_CMDS)
468 APACHE_SUBST(shared_build)
469
470 AC_ARG_WITH(program-name,
471 APACHE_HELP_STRING(--with-program-name,alternate executable name),[
472   progname="$withval" ], [
473   progname="httpd"] )
474
475 # SuExec parameters
476 AC_ARG_WITH(suexec-bin,
477 APACHE_HELP_STRING(--with-suexec-bin,Path to suexec binary),[
478   AC_DEFINE_UNQUOTED(SUEXEC_BIN, "$withval", [Path to suexec binary] )
479 ] )
480
481 AC_ARG_WITH(suexec-caller,
482 APACHE_HELP_STRING(--with-suexec-caller,User allowed to call SuExec),[
483   AC_DEFINE_UNQUOTED(AP_HTTPD_USER, "$withval", [User allowed to call SuExec] ) ] )
484
485 AC_ARG_WITH(suexec-userdir,
486 APACHE_HELP_STRING(--with-suexec-userdir,User subdirectory),[
487   AC_DEFINE_UNQUOTED(AP_USERDIR_SUFFIX, "$withval", [User subdirectory] ) ] )
488
489 AC_ARG_WITH(suexec-docroot,
490 APACHE_HELP_STRING(--with-suexec-docroot,SuExec root directory),[
491   AC_DEFINE_UNQUOTED(AP_DOC_ROOT, "$withval", [SuExec root directory] ) ] )
492
493 AC_ARG_WITH(suexec-uidmin,
494 APACHE_HELP_STRING(--with-suexec-uidmin,Minimal allowed UID),[
495   AC_DEFINE_UNQUOTED(AP_UID_MIN, $withval, [Minimum allowed UID] ) ] )
496
497 AC_ARG_WITH(suexec-gidmin,
498 APACHE_HELP_STRING(--with-suexec-gidmin,Minimal allowed GID),[
499   AC_DEFINE_UNQUOTED(AP_GID_MIN, $withval, [Minimum allowed GID] ) ] )
500
501 AC_ARG_WITH(suexec-logfile,
502 APACHE_HELP_STRING(--with-suexec-logfile,Set the logfile),[
503   AC_DEFINE_UNQUOTED(AP_LOG_EXEC, "$withval", [SuExec log file] ) ] )
504
505 AC_ARG_WITH(suexec-safepath,
506 APACHE_HELP_STRING(--with-suexec-safepath,Set the safepath),[
507   AC_DEFINE_UNQUOTED(AP_SAFE_PATH, "$withval", [safe shell path for SuExec] ) ] )
508
509 AC_ARG_WITH(suexec-umask,
510 APACHE_HELP_STRING(--with-suexec-umask,umask for suexec'd process),[
511   AC_DEFINE_UNQUOTED(AP_SUEXEC_UMASK, 0$withval, [umask for suexec'd process] ) ] )
512
513 dnl AP_LIBS specifies the actual libraries. note we have some required libs.
514 AP_LIBS="$abs_builddir/srclib/pcre/libpcre.la $AP_LIBS"
515
516 dnl APR should go after the other libs, so the right symbols can be picked up
517 AP_LIBS="$AP_LIBS `$apu_config --link-libtool --libs` `$apr_config --link-libtool --libs`"
518 APACHE_SUBST(AP_LIBS)
519 APACHE_SUBST(AP_BUILD_SRCLIB_DIRS)
520 APACHE_SUBST(AP_CLEAN_SRCLIB_DIRS)
521
522 AC_DEFINE(AP_USING_AUTOCONF, 1,
523                 [Using autoconf to configure Apache])
524
525 if test "$SINGLE_LISTEN_UNSERIALIZED_ACCEPT" = "1"; then
526     AC_DEFINE(SINGLE_LISTEN_UNSERIALIZED_ACCEPT, 1, 
527               [This platform doesn't suffer from the thundering herd problem])
528 fi
529
530 if test "$AP_NONBLOCK_WHEN_MULTI_LISTEN" = "1"; then
531     AC_DEFINE(AP_NONBLOCK_WHEN_MULTI_LISTEN, 1, 
532               [Listening sockets are non-blocking when there are more than 1])
533 fi
534
535 AC_DEFINE_UNQUOTED(AP_SIG_GRACEFUL, SIG$AP_SIG_GRACEFUL, [Signal used to gracefully restart])
536 AC_DEFINE_UNQUOTED(AP_SIG_GRACEFUL_STRING, "SIG$AP_SIG_GRACEFUL", [Signal used to gracefully restart (as a quoted string)])
537 AC_DEFINE_UNQUOTED(AP_SIG_GRACEFUL_SHORT, $AP_SIG_GRACEFUL, [Signal used to gracefully restart (without SIG prefix)])
538 AP_SIG_GRACEFUL_SHORT=$AP_SIG_GRACEFUL
539 AP_SIG_GRACEFUL=SIG$AP_SIG_GRACEFUL_SHORT
540 AC_SUBST(AP_SIG_GRACEFUL)
541 AC_SUBST(AP_SIG_GRACEFUL_STRING)
542 AC_SUBST(AP_SIG_GRACEFUL_SHORT)
543
544 APACHE_FAST_OUTPUT(Makefile modules/Makefile srclib/Makefile) 
545 APACHE_FAST_OUTPUT(os/Makefile server/Makefile)
546 APACHE_FAST_OUTPUT(support/Makefile srclib/pcre/Makefile)
547
548 if test -d ./test; then
549     APACHE_FAST_OUTPUT(test/Makefile)
550 fi
551
552 dnl ## Finalize the variables
553 echo $ac_n "${nl}Restore user-defined environment settings...${nl}"
554
555 APR_RESTORE_THE_ENVIRONMENT(CPPFLAGS, EXTRA_)
556 APR_RESTORE_THE_ENVIRONMENT(CFLAGS, EXTRA_)
557 APR_RESTORE_THE_ENVIRONMENT(CXXFLAGS, EXTRA_)
558 APR_RESTORE_THE_ENVIRONMENT(LDFLAGS, EXTRA_)
559 APR_RESTORE_THE_ENVIRONMENT(LIBS, EXTRA_)
560 APR_RESTORE_THE_ENVIRONMENT(INCLUDES, EXTRA_)
561
562 echo $ac_n "${nl}Construct makefiles and header files...${nl}"
563
564 APACHE_GEN_CONFIG_VARS
565
566 dnl ## Build modules.c
567 rm -f modules.c
568 echo $MODLIST | $AWK -f $srcdir/build/build-modules-c.awk > modules.c
569
570 APR_EXPAND_VAR(ap_prefix, $prefix)
571 AC_DEFINE_UNQUOTED(HTTPD_ROOT, "${ap_prefix}",
572         [Root directory of the Apache install area])
573 AC_DEFINE_UNQUOTED(SERVER_CONFIG_FILE, "${rel_sysconfdir}/${progname}.conf",
574         [Location of the config file, relative to the Apache root directory])
575 AC_DEFINE_UNQUOTED(AP_TYPES_CONFIG_FILE, "${rel_sysconfdir}/mime.types",
576         [Location of the MIME types config file, relative to the Apache root directory])
577 AC_DEFINE_UNQUOTED(APACHE_MPM_DIR, "$MPM_DIR",
578         [Location of the source for the current MPM])
579
580 perlbin=`$ac_aux_dir/PrintPath perl`
581 if test "x$perlbin" = "x"; then
582     perlbin="/replace/with/path/to/perl/interpreter"
583 fi
584 AC_SUBST(perlbin)
585
586 dnl If we are running on BSD/OS, we need to use the BSD .include syntax.
587
588 BSD_MAKEFILE=no
589 ap_make_include=include
590 ap_make_delimiter=' '
591 case $host in
592 *bsdi*)
593     # Check whether they've installed GNU make
594     if make --version > /dev/null 2>&1; then
595         true
596     else
597         BSD_MAKEFILE=yes
598         ap_make_include=.include
599         ap_make_delimiter='"'
600     fi
601     ;;
602 esac
603 AC_SUBST(ap_make_include)
604 AC_SUBST(ap_make_delimiter)
605
606 dnl Ensure that docs/conf is created.
607 test -d docs/conf||$mkdir_p docs/conf
608
609 dnl Ensure that the httpd version is included
610 HTTPD_VERSION=`$abs_srcdir/build/get-version.sh all $abs_srcdir/include/ap_release.h AP_SERVER`
611 AC_SUBST(HTTPD_VERSION)
612
613 AC_OUTPUT($APACHE_OUTPUT_FILES docs/conf/httpd-std.conf docs/conf/ssl-std.conf include/ap_config_layout.h support/apxs support/apachectl support/dbmmanage support/envvars-std support/log_server_status support/logresolve.pl support/phf_abuse_log.cgi support/split-logfile build/rules.mk build/pkg/pkginfo,[true],[
614   APACHE_GEN_MAKEFILES
615 ])
616
617 case $MPM_SUBDIR_NAME in
618 *experimental*)
619     echo ""
620     echo ""
621     echo "============================================================"
622     echo "    WARNING: THE '${APACHE_MPM}' MPM IS EXPERIMENTAL"
623     echo "============================================================"
624     echo " The selected MPM might not be fully functional!"
625     echo ""
626     echo " Development of this MPM is not complete. Do not use this"
627     echo " MPM unless you are a programmer willing to help fix it."
628     echo ""
629     echo " If you are looking for a stable server, you should not use"
630     echo " the '${APACHE_MPM}' MPM until it is moved out of experimental."
631     echo "============================================================"
632     echo ""
633     echo ""
634     ;;
635 esac