~ubuntu-branches/ubuntu/feisty/apache2/feisty

« back to all changes in this revision

Viewing changes to configure.in

  • Committer: Bazaar Package Importer
  • Author(s): Andreas Barth
  • Date: 2006-12-09 21:05:45 UTC
  • mfrom: (0.6.1 upstream)
  • Revision ID: james.westby@ubuntu.com-20061209210545-h70s0xaqc2v8vqr2
Tags: 2.2.3-3.2
* Non-maintainer upload.
* 043_ajp_connection_reuse: Patch from upstream Bugzilla, fixing a critical
  issue with regard to connection reuse in mod_proxy_ajp.
  Closes: #396265

Show diffs side-by-side

added added

removed removed

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