]> granicus.if.org Git - apache/blob - configure.in
Sanitize the installed config_vars.mk to remove references to the
[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 AP_SIG_GRACEFUL=USR1
236
237 case $host in
238   *-apple-aux3*)
239       APR_SETVAR(APACHE_MPM, [prefork])
240       APR_SETVAR(SINGLE_LISTEN_UNSERIALIZED_ACCEPT, [1])
241       ;;
242   *-beos*)
243       APR_SETVAR(APACHE_MPM, [beos])
244       APR_SETVAR(SINGLE_LISTEN_UNSERIALIZED_ACCEPT, [1])
245       ;;
246   *os2-emx*)
247       APR_SETVAR(APACHE_MPM, [mpmt_os2])
248       APR_SETVAR(SINGLE_LISTEN_UNSERIALIZED_ACCEPT, [1])
249       ;;
250   *-linux-*)
251       case `uname -r` in
252         2.0* ) 
253             AP_SIG_GRACEFUL=WINCH
254             ;;
255         2.[[2-9]]* ) 
256             APR_SETVAR(SINGLE_LISTEN_UNSERIALIZED_ACCEPT, [1])
257             ;;
258         * )
259             ;;
260       esac
261       ;;
262   *486-*-bsdi* | *-netbsd* | *-freebsd* | *-apple-darwin* | *-dec-osf* | *-qnx)
263       APR_SETVAR(SINGLE_LISTEN_UNSERIALIZED_ACCEPT, [1])
264       ;;
265   *-solaris2*)
266       dnl This is a hack -- we should be using AC_TRY_RUN instead
267       ap_platform_runtime_link_flag="-R"
268       dnl solaris 8 and above don't have a thundering herd
269       dnl not sure about rev's before this one.
270       case `uname -r` in
271         5.[567]*)
272             ;;
273         * )
274             APR_SETVAR(SINGLE_LISTEN_UNSERIALIZED_ACCEPT, [1])
275             ;;
276       esac
277       ;;
278   *cygwin*)
279       APR_SETVAR(APACHE_MPM, [prefork])
280       APR_SETVAR(SINGLE_LISTEN_UNSERIALIZED_ACCEPT, [1])
281       ;;
282   *aix*)
283       aixver=`echo $host | sed 's/^[[^0-9]]*//' | sed 's/\.//g'`
284       if test $aixver -ge 4320; then
285         APR_SETVAR(SINGLE_LISTEN_UNSERIALIZED_ACCEPT, [1])
286       fi
287       ;;
288   *os390*)
289       APR_SETVAR(SINGLE_LISTEN_UNSERIALIZED_ACCEPT, [1])
290       ;;
291 esac
292
293 APR_SETVAR(AP_NONBLOCK_WHEN_MULTI_LISTEN, [1])
294
295 dnl
296 dnl Process command line arguments. This is done early in the process so the
297 dnl user can get feedback quickly in case of an error.
298 dnl
299 dnl ### need to move some of the arguments "up here"
300
301 dnl ## Check for programs
302
303 AC_PATH_PROG(RM, rm)
304 AC_PATH_PROG(PKGCONFIG, pkg-config)
305 AC_PROG_AWK
306 AC_PROG_INSTALL
307 AC_PROG_LN_S
308 AC_CHECK_TOOL(RANLIB, ranlib, true)
309 dnl AC_PATH_PROG(PERL_PATH, perl)
310 AC_CHECK_PROGS(LYNX_PATH,[lynx links elinks], [lynx])
311
312 dnl various OS checks that apparently set required flags
313 AC_AIX
314 AC_ISC_POSIX
315 AC_MINIX
316
317 dnl Check for what we can generate dependency files with
318 APR_CHECK_DEPEND
319
320 dnl ## Check for libraries
321
322 dnl ## Check for header files
323
324 dnl I think these are just used all over the place, so just check for
325 dnl them at the base of the tree. If some are specific to a single
326 dnl directory, they should be moved (Comment #Spoon)
327
328 dnl Regarding standard header files: AC_HEADER_STDC doesn't set symbols
329 dnl HAVE_STRING_H, HAVE_STDLIB_H, etc., so those are checked for
330 dnl explicitly so that the normal HAVE_xxx_H symbol is defined.
331
332 AC_HEADER_STDC
333 AC_CHECK_HEADERS( \
334 string.h \
335 limits.h \
336 unistd.h \
337 sys/socket.h \
338 pwd.h \
339 grp.h \
340 strings.h \
341 sys/prctl.h \
342 sys/processor.h \
343 sys/sem.h
344 )
345 AC_HEADER_SYS_WAIT
346
347 dnl ## Check for typedefs, structures, and compiler characteristics.
348
349 AC_C_CONST
350 if test "x$GCC" = "xyes"; then
351   AC_DEFINE([AP_HAVE_DESIGNATED_INITIALIZER], 1,
352             [Define if the compiler supports designated initializers])
353 fi
354
355 dnl ## Check for library functions
356 AC_SEARCH_LIBS(sqrt, m)
357
358 dnl See Comment #Spoon
359
360 AC_CHECK_FUNCS( \
361 getpwnam \
362 getgrnam \
363 initgroups \
364 bindprocessor \
365 prctl \
366 timegm \
367 )
368
369 dnl ## Check for the tm_gmtoff field in struct tm to get the timezone diffs
370 AC_CACHE_CHECK([for tm_gmtoff in struct tm], ac_cv_struct_tm_gmtoff,
371 [AC_TRY_COMPILE([#include <sys/types.h>
372 #include <time.h>], [struct tm tm; tm.tm_gmtoff;],
373   ac_cv_struct_tm_gmtoff=yes, ac_cv_struct_tm_gmtoff=no)])
374 if test "$ac_cv_struct_tm_gmtoff" = "yes"; then
375     AC_DEFINE(HAVE_GMTOFF, 1, [Define if struct tm has a tm_gmtoff field])
376 fi
377
378 dnl ## Set up any appropriate OS-specific environment variables for apachectl
379
380 case $host in
381     *aix*)
382         # for 32-bit builds, increase MAXDATA to allow lots of threads
383         if test x$OBJECT_MODE != x64; then
384             OS_SPECIFIC_VARS="LDR_CNTRL=\"MAXDATA=0x80000000\" ; export LDR_CNTRL ;"
385         fi
386         OS_SPECIFIC_VARS="$OS_SPECIFIC_VARS AIXTHREAD_SCOPE=S ; export AIXTHREAD_SCOPE"
387         OS_SPECIFIC_VARS="$OS_SPECIFIC_VARS ; AIXTHREAD_MUTEX_DEBUG=OFF ; export AIXTHREAD_MUTEX_DEBUG"
388         OS_SPECIFIC_VARS="$OS_SPECIFIC_VARS ; AIXTHREAD_RWLOCK_DEBUG=OFF ; export AIXTHREAD_RWLOCK_DEBUG"
389         OS_SPECIFIC_VARS="$OS_SPECIFIC_VARS ; AIXTHREAD_COND_DEBUG=OFF ; export AIXTHREAD_COND_DEBUG"
390         OS_SPECIFIC_VARS="$OS_SPECIFIC_VARS ; SPINLOOPTIME=1000 ; export SPINLOOPTIME"
391         OS_SPECIFIC_VARS="$OS_SPECIFIC_VARS ; YIELDLOOPTIME=8 ; export YIELDLOOPTIME"
392         OS_SPECIFIC_VARS="$OS_SPECIFIC_VARS ; MALLOCMULTIHEAP=considersize,heaps:8 ; export MALLOCMULTIHEAP"
393         ;;
394     *os390*)
395         OS_SPECIFIC_VARS="export _CEE_RUNOPTS=\"STACK(,,ANY)\" ; export _EDC_ADD_ERRNO2=1"
396         ;;
397     *)
398         OS_SPECIFIC_VARS=""
399 esac
400       
401 AC_ARG_WITH(port,APACHE_HELP_STRING(--with-port=PORT,Port on which to listen (default is 80)),
402         [if test "$withval" = "yes"; then AC_MSG_ERROR('option --with-port requires a value (the TCP port number)'); else PORT="$withval"; fi],
403         [PORT=80])
404
405 APR_CHECK_APR_DEFINE(APR_HAVE_IPV6)
406
407 AC_ARG_ENABLE(v4-mapped,APACHE_HELP_STRING(--enable-v4-mapped,Allow IPv6 sockets to handle IPv4 connections),
408
409   v4mapped=$enableval
410 ],
411 [
412     case $host in
413     *freebsd5*|*netbsd*|*openbsd*)
414         v4mapped=no
415         ;;
416     *)
417         v4mapped=yes
418         ;;
419 esac
420 ])
421
422 if test $v4mapped = "yes" -a $ac_cv_define_APR_HAVE_IPV6 = "yes"; then
423     AC_DEFINE(AP_ENABLE_V4_MAPPED, 1,
424               [Allow IPv4 connections on IPv6 listening sockets])
425 fi
426
427 AC_ARG_ENABLE(exception-hook,APACHE_HELP_STRING(--enable-exception-hook,Enable fatal exception hook),
428 [
429     AC_DEFINE(AP_ENABLE_EXCEPTION_HOOK, 1,
430               [Allow modules to run hook after a fatal exception])
431 ])dnl
432
433 AC_ARG_ENABLE(maintainer-mode,APACHE_HELP_STRING(--enable-maintainer-mode,Turn on debugging and compile time warnings),
434 [
435   APR_ADDTO(CPPFLAGS, -DAP_DEBUG)
436 ])dnl
437
438 dnl Conditionally enable PIE support for GNU toolchains.
439 AC_ARG_ENABLE(pie,APACHE_HELP_STRING(--enable-pie,Build httpd as a Position Independent Executable))
440 if test "$enable_pie" = "yes"; then
441    AC_CACHE_CHECK([whether $CC accepts PIE flags], [ap_cv_cc_pie], [
442      save_CFLAGS=$CFLAGS
443      save_LDFLAGS=$LDFLAGS
444      CFLAGS="$CFLAGS -fPIE"
445      LDFLAGS="$LDFLAGS -pie"
446      AC_TRY_RUN([static int foo[30000]; int main () { return 0; }],
447       [ap_cv_cc_pie=yes], [ap_cv_cc_pie=no], [ap_cv_cc_pie=yes])
448      CFLAGS=$save_CFLAGS
449      LDFLAGS=$save_LDFLAGS
450    ])
451    if test "$ap_cv_cc_pie" = "yes"; then
452      PICFLAGS="-fPIE"
453      PILDFLAGS="-pie"
454    else
455      AC_ERROR([--enable-pie requested but $CC failed using PIE flags])
456    fi
457 fi
458 AC_SUBST(PICFLAGS)
459 AC_SUBST(PILDFLAGS)
460
461 prefix="$orig_prefix"
462 APACHE_ENABLE_MODULES
463
464 dnl reading config stubs
465 esyscmd(./build/config-stubs .)
466
467 APACHE_SUBST(progname)
468 APACHE_SUBST(MPM_LIB)
469 APACHE_SUBST(OS)
470 APACHE_SUBST(OS_DIR)
471 APACHE_SUBST(BUILTIN_LIBS)
472 APACHE_SUBST(SHLIBPATH_VAR)
473 APACHE_SUBST(OS_SPECIFIC_VARS)
474
475 PRE_SHARED_CMDS='echo ""'
476 POST_SHARED_CMDS='echo ""'
477
478 dnl apache_need_shared tells us if Apache modules are being built as DSOs
479
480 if test "$apache_need_shared" = "yes"; then
481   if test -f $ac_aux_dir/ltconfig; then
482     $SHELL $ac_aux_dir/ltconfig --output=shlibtool --disable-static --srcdir=$ac_aux_dir --cache-file=./config.cache $ac_aux_dir/ltmain.sh
483   fi
484   shared_build="shared-build"
485 fi
486
487 dnl enable_so tells us if *any* modules can be built as DSOs
488
489 if test "$enable_so" = "yes"; then
490   case $host in
491     *-ibm-aix*)
492       HTTPD_LDFLAGS="$HTTPD_LDFLAGS -Wl,-uXML_Parse -Wl,-bE:$abs_builddir/server/httpd.exp"
493       SH_LDFLAGS="$SH_LDFLAGS \$(EXTRA_LDFLAGS) \$(EXTRA_LIBS)"
494       UTIL_LDFLAGS="$UTIL_LDFLAGS -Wl,-uXML_Parse"
495       ;;
496     *beos)
497       SH_LDFLAGS='$(top_builddir)/_APP_'
498       PRE_SHARED_CMDS='ln -s $(top_builddir)/httpd $(top_builddir)/_APP_'
499       POST_SHARED_CMDS='rm $(top_builddir)/_APP_'
500       ;;
501     *os390)
502       HTTPD_LDFLAGS="$HTTPD_LDFLAGS --main=$abs_srcdir/server/main.o --core-dll=$abs_srcdir/apachecore.dll"
503       SH_LDFLAGS="$SH_LDFLAGS --core-dll=$abs_srcdir/apachecore.dll"
504   esac
505 fi
506
507 APACHE_SUBST(PRE_SHARED_CMDS)
508 APACHE_SUBST(POST_SHARED_CMDS)
509 APACHE_SUBST(shared_build)
510
511 AC_ARG_WITH(program-name,
512 APACHE_HELP_STRING(--with-program-name,alternate executable name),[
513   progname="$withval" ], [
514   progname="httpd"] )
515
516 # SuExec parameters
517 AC_ARG_WITH(suexec-bin,
518 APACHE_HELP_STRING(--with-suexec-bin,Path to suexec binary),[
519   AC_DEFINE_UNQUOTED(SUEXEC_BIN, "$withval", [Path to suexec binary] )
520 ] )
521
522 AC_ARG_WITH(suexec-caller,
523 APACHE_HELP_STRING(--with-suexec-caller,User allowed to call SuExec),[
524   AC_DEFINE_UNQUOTED(AP_HTTPD_USER, "$withval", [User allowed to call SuExec] ) ] )
525
526 AC_ARG_WITH(suexec-userdir,
527 APACHE_HELP_STRING(--with-suexec-userdir,User subdirectory),[
528   AC_DEFINE_UNQUOTED(AP_USERDIR_SUFFIX, "$withval", [User subdirectory] ) ] )
529
530 AC_ARG_WITH(suexec-docroot,
531 APACHE_HELP_STRING(--with-suexec-docroot,SuExec root directory),[
532   AC_DEFINE_UNQUOTED(AP_DOC_ROOT, "$withval", [SuExec root directory] ) ] )
533
534 AC_ARG_WITH(suexec-uidmin,
535 APACHE_HELP_STRING(--with-suexec-uidmin,Minimal allowed UID),[
536   AC_DEFINE_UNQUOTED(AP_UID_MIN, $withval, [Minimum allowed UID] ) ] )
537
538 AC_ARG_WITH(suexec-gidmin,
539 APACHE_HELP_STRING(--with-suexec-gidmin,Minimal allowed GID),[
540   AC_DEFINE_UNQUOTED(AP_GID_MIN, $withval, [Minimum allowed GID] ) ] )
541
542 AC_ARG_WITH(suexec-logfile,
543 APACHE_HELP_STRING(--with-suexec-logfile,Set the logfile),[
544   AC_DEFINE_UNQUOTED(AP_LOG_EXEC, "$withval", [SuExec log file] ) ] )
545
546 AC_ARG_WITH(suexec-safepath,
547 APACHE_HELP_STRING(--with-suexec-safepath,Set the safepath),[
548   AC_DEFINE_UNQUOTED(AP_SAFE_PATH, "$withval", [safe shell path for SuExec] ) ] )
549
550 AC_ARG_WITH(suexec-umask,
551 APACHE_HELP_STRING(--with-suexec-umask,umask for suexec'd process),[
552   AC_DEFINE_UNQUOTED(AP_SUEXEC_UMASK, 0$withval, [umask for suexec'd process] ) ] )
553
554 dnl APR should go after the other libs, so the right symbols can be picked up
555 AP_LIBS="$AP_LIBS `$apu_config --link-libtool --libs` `$apr_config --link-libtool --libs`"
556 APACHE_SUBST(AP_LIBS)
557 APACHE_SUBST(AP_BUILD_SRCLIB_DIRS)
558 APACHE_SUBST(AP_CLEAN_SRCLIB_DIRS)
559
560 AC_DEFINE(AP_USING_AUTOCONF, 1,
561                 [Using autoconf to configure Apache])
562
563 if test "$SINGLE_LISTEN_UNSERIALIZED_ACCEPT" = "1"; then
564     AC_DEFINE(SINGLE_LISTEN_UNSERIALIZED_ACCEPT, 1, 
565               [This platform doesn't suffer from the thundering herd problem])
566 fi
567
568 if test "$AP_NONBLOCK_WHEN_MULTI_LISTEN" = "1"; then
569     AC_DEFINE(AP_NONBLOCK_WHEN_MULTI_LISTEN, 1, 
570               [Listening sockets are non-blocking when there are more than 1])
571 fi
572
573 AC_DEFINE_UNQUOTED(AP_SIG_GRACEFUL, SIG$AP_SIG_GRACEFUL, [Signal used to gracefully restart])
574 AC_DEFINE_UNQUOTED(AP_SIG_GRACEFUL_STRING, "SIG$AP_SIG_GRACEFUL", [Signal used to gracefully restart (as a quoted string)])
575 AC_DEFINE_UNQUOTED(AP_SIG_GRACEFUL_SHORT, $AP_SIG_GRACEFUL, [Signal used to gracefully restart (without SIG prefix)])
576 AP_SIG_GRACEFUL_SHORT=$AP_SIG_GRACEFUL
577 AP_SIG_GRACEFUL=SIG$AP_SIG_GRACEFUL_SHORT
578 AC_SUBST(AP_SIG_GRACEFUL)
579 AC_SUBST(AP_SIG_GRACEFUL_STRING)
580 AC_SUBST(AP_SIG_GRACEFUL_SHORT)
581
582 APACHE_FAST_OUTPUT(Makefile modules/Makefile srclib/Makefile) 
583 APACHE_FAST_OUTPUT(os/Makefile server/Makefile)
584 APACHE_FAST_OUTPUT(support/Makefile srclib/pcre/Makefile)
585
586 if test -d ./test; then
587     APACHE_FAST_OUTPUT(test/Makefile)
588 fi
589
590 dnl ## Finalize the variables
591 echo $ac_n "${nl}Restore user-defined environment settings...${nl}"
592
593 APR_RESTORE_THE_ENVIRONMENT(CPPFLAGS, EXTRA_)
594 APR_RESTORE_THE_ENVIRONMENT(CFLAGS, EXTRA_)
595 APR_RESTORE_THE_ENVIRONMENT(CXXFLAGS, EXTRA_)
596 APR_RESTORE_THE_ENVIRONMENT(LDFLAGS, EXTRA_)
597 APR_RESTORE_THE_ENVIRONMENT(LIBS, EXTRA_)
598 APR_RESTORE_THE_ENVIRONMENT(INCLUDES, EXTRA_)
599
600 echo $ac_n "${nl}Construct makefiles and header files...${nl}"
601
602 APACHE_GEN_CONFIG_VARS
603
604 dnl ## Build modules.c
605 rm -f modules.c
606 echo $MODLIST | $AWK -f $srcdir/build/build-modules-c.awk > modules.c
607
608 APR_EXPAND_VAR(ap_prefix, $prefix)
609 AC_DEFINE_UNQUOTED(HTTPD_ROOT, "${ap_prefix}",
610         [Root directory of the Apache install area])
611 AC_DEFINE_UNQUOTED(SERVER_CONFIG_FILE, "${rel_sysconfdir}/${progname}.conf",
612         [Location of the config file, relative to the Apache root directory])
613 AC_DEFINE_UNQUOTED(AP_TYPES_CONFIG_FILE, "${rel_sysconfdir}/mime.types",
614         [Location of the MIME types config file, relative to the Apache root directory])
615 AC_DEFINE_UNQUOTED(APACHE_MPM_DIR, "$MPM_DIR",
616         [Location of the source for the current MPM])
617
618 perlbin=`$ac_aux_dir/PrintPath perl`
619 if test "x$perlbin" = "x"; then
620     perlbin="/replace/with/path/to/perl/interpreter"
621 fi
622 AC_SUBST(perlbin)
623
624 dnl If we are running on BSD/OS, we need to use the BSD .include syntax.
625
626 BSD_MAKEFILE=no
627 ap_make_include=include
628 ap_make_delimiter=' '
629 case $host in
630 *bsdi*)
631     # Check whether they've installed GNU make
632     if make --version > /dev/null 2>&1; then
633         true
634     else
635         BSD_MAKEFILE=yes
636         ap_make_include=.include
637         ap_make_delimiter='"'
638     fi
639     ;;
640 esac
641 AC_SUBST(ap_make_include)
642 AC_SUBST(ap_make_delimiter)
643
644 dnl Ensure that docs/conf is created.
645 test -d docs/conf||$mkdir_p docs/conf
646
647 dnl Ensure that the httpd version is included
648 HTTPD_VERSION=`$abs_srcdir/build/get-version.sh all $abs_srcdir/include/ap_release.h AP_SERVER`
649 AC_SUBST(HTTPD_VERSION)
650
651 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],[
652   APACHE_GEN_MAKEFILES
653 ])
654
655 case $MPM_SUBDIR_NAME in
656 *experimental*)
657     echo ""
658     echo ""
659     echo "============================================================"
660     echo "    WARNING: THE '${APACHE_MPM}' MPM IS EXPERIMENTAL"
661     echo "============================================================"
662     echo " The selected MPM might not be fully functional!"
663     echo ""
664     echo " Development of this MPM is not complete. Do not use this"
665     echo " MPM unless you are a programmer willing to help fix it."
666     echo ""
667     echo " If you are looking for a stable server, you should not use"
668     echo " the '${APACHE_MPM}' MPM until it is moved out of experimental."
669     echo "============================================================"
670     echo ""
671     echo ""
672     ;;
673 esac