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