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