]> granicus.if.org Git - apache/blob - configure.in
No need to sinclude macros that we no longer use.
[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(srclib/apr/build)
12
13 dnl #
14 dnl # Include our own M4 macros along with those for APR and libtool
15 dnl #
16 sinclude(srclib/apr/build/apr_common.m4)
17 sinclude(srclib/apr/build/apr_network.m4)
18 sinclude(srclib/apr/build/apr_threads.m4)
19 sinclude(hints.m4)
20 sinclude(acinclude.m4)
21
22 dnl Save user-defined environment settings for later restoration
23 dnl
24 APR_SAVE_THE_ENVIRONMENT(CPPFLAGS)
25 APR_SAVE_THE_ENVIRONMENT(CFLAGS)
26 APR_SAVE_THE_ENVIRONMENT(CXXFLAGS)
27 APR_SAVE_THE_ENVIRONMENT(LDFLAGS)
28 APR_SAVE_THE_ENVIRONMENT(LIBS)
29 APR_SAVE_THE_ENVIRONMENT(INCLUDES)
30
31 dnl Generate ./config.nice for reproducing runs of configure
32 dnl
33 APR_CONFIG_NICE(config.nice)
34
35 nl='
36 '
37 dnl ## Run configure for packages Apache uses
38
39 echo $ac_n "${nl}Configuring Apache Portable Runtime library ...${nl}"
40
41 APR_SUBDIR_CONFIG(srclib/apr, "$apache_apr_flags --disable-shared")
42
43 echo $ac_n "${nl}Configuring Apache Portable Runtime Utility library...${nl}"
44
45 APR_SUBDIR_CONFIG(srclib/apr-util, "--with-apr=../apr --disable-shared")
46
47 echo $ac_n "${nl}Configuring PCRE regular expression library ...${nl}"
48
49 APR_SUBDIR_CONFIG(srclib/pcre)
50
51 echo $ac_n "${nl}Configuring Apache httpd ...${nl}"
52
53 echo $ac_n "obtaining flag settings from the sub-configures...${nl}"
54 . ./srclib/apr/APRVARS
55
56 dnl Now that we have APR's EXTRA_flags in our environment, move them over
57 dnl to the normal variables to avoid duplications and use them for testing.
58 dnl We ignore EXTRA_INCLUDES because our own includes will encompass them.
59 dnl
60 APR_ADDTO(CFLAGS, $EXTRA_CFLAGS)
61 APR_ADDTO(CPPFLAGS, $EXTRA_CPPFLAGS)
62 APR_ADDTO(LDFLAGS, $EXTRA_LDFLAGS)
63 APR_ADDTO(LIBS, $EXTRA_LIBS)
64 EXTRA_CFLAGS=
65 EXTRA_CPPFLAGS=
66 EXTRA_LDFLAGS=
67 EXTRA_LIBS=
68 EXTRA_INCLUDES=
69
70 dnl XXX we can't just use AC_PREFIX_DEFAULT because that isn't subbed in
71 dnl by configure until it is too late.  Is that how it should be or not?
72 dnl Something seems broken here.
73 AC_PREFIX_DEFAULT(/usr/local/apache2)
74 test "$prefix" = "NONE" && prefix='/usr/local/apache2'
75 test "$exec_prefix" = "NONE" && exec_prefix='${prefix}'
76
77 dnl Absolute source/build directory
78 abs_srcdir=`(cd $srcdir && pwd)`
79 abs_builddir=`pwd`
80
81 dnl If the source dir is not equal to the build dir, 
82 dnl then we are running in VPATH mode.
83
84 if test "$abs_builddir" != "$abs_srcdir"; then
85   USE_VPATH=1
86   APR_ADDTO(INCLUDES, [-I. -I\$(srcdir) -I\$(top_builddir)/os/\$(OS_DIR) -I\$(top_srcdir)/os/\$(OS_DIR) -I\$(top_builddir)/server/mpm/\$(MPM_NAME) -I\$(top_srcdir)/server/mpm/\$(MPM_NAME) -I\$(top_builddir)/modules/http -I\$(top_srcdir)/modules/http -I\$(top_builddir)/include -I\$(top_srcdir)/include -I\$(top_builddir)/srclib/apr/include -I\$(top_srcdir)/srclib/apr/include -I\$(top_builddir)/srclib/apr-util/include -I\$(top_srcdir)/srclib/apr-util/include])
87 else
88   APR_ADDTO(INCLUDES, [-I. -I\$(top_srcdir)/os/\$(OS_DIR) -I\$(top_srcdir)/server/mpm/\$(MPM_NAME) -I\$(top_srcdir)/modules/http -I\$(top_srcdir)/include -I\$(top_srcdir)/srclib/apr/include -I\$(top_srcdir)/srclib/apr-util/include])
89 fi
90
91 AC_CANONICAL_SYSTEM
92
93 case "$host_alias" in
94   *os2*)
95       # Use a custom made libtool replacement
96       echo "using aplibtool"
97       LIBTOOL="$abs_srcdir/srclib/apr/build/aplibtool"
98       SH_LIBTOOL="$LIBTOOL --shared --export-all"
99       CORE_IMPLIB_FILE="ApacheCoreOS2.la"
100       CORE_IMPLIB="$abs_srcdir/server/$CORE_IMPLIB_FILE"
101       MK_IMPLIB="emximp"
102       other_targets="$other_targets os2core"
103       ;;
104   *)
105       LIBTOOL='$(SHELL) $(top_builddir)/srclib/apr/libtool --silent'
106       SH_LIBTOOL='$(SHELL) $(top_builddir)/shlibtool --silent'
107       ;;
108 esac
109
110 dnl
111 dnl ## Preload our OS configuration
112 APACHE_PRELOAD
113
114 dnl
115 dnl Process command line arguments. This is done early in the process so the
116 dnl user can get feedback quickly in case of an error.
117 dnl
118 dnl ### need to move some of the arguments "up here"
119
120 dnl ## Check for programs
121
122 AC_PATH_PROG(RM, rm)
123 AC_PROG_AWK
124 AC_PROG_INSTALL
125 AC_PROG_LN_S
126 AC_CHECK_TOOL(RANLIB, ranlib, true)
127 dnl AC_PATH_PROG(PERL_PATH, perl)
128
129 dnl various OS checks that apparently set required flags
130 AC_AIX
131 AC_MINIX
132
133 dnl ## Check for libraries
134
135 dnl ## Check for header files
136
137 dnl I think these are just used all over the place, so just check for
138 dnl them at the base of the tree. If some are specific to a single
139 dnl directory, they should be moved (Comment #Spoon)
140
141 dnl Regarding standard header files: AC_HEADER_STDC doesn't set symbols
142 dnl HAVE_STRING_H, HAVE_STDLIB_H, etc., so those are checked for
143 dnl explicitly so that the normal HAVE_xxx_H symbol is defined.
144
145 AC_HEADER_STDC
146 AC_CHECK_HEADERS( \
147 string.h \
148 limits.h \
149 unistd.h \
150 sys/socket.h \
151 pwd.h \
152 grp.h \
153 strings.h
154 )
155 AC_HEADER_SYS_WAIT
156
157 dnl ## Check for typedefs, structures, and compiler characteristics.
158
159 AC_C_CONST
160
161 dnl ## Check for library functions
162
163 dnl See Comment #Spoon
164
165 AC_CHECK_FUNCS( \
166 initgroups \
167 )
168
169 AC_CHECK_LIB(nsl, gethostbyname)
170 AC_CHECK_LIB(nsl, gethostname)
171 AC_CHECK_LIB(socket, socket)
172
173 AC_ARG_WITH(port,[  --with-port=PORT        Port on which to listen (default is 80)],
174         [if test "$withval" = "yes"; then AC_MSG_ERROR('option --with-port requires a value (the TCP port number)'); else PORT="$withval"; fi],
175         [PORT=80])
176
177 AC_ARG_ENABLE(debug,[  --enable-debug            Turn on debugging and compile time warnings],
178   [APR_ADDTO(CFLAGS,-g)
179    if test "$GCC" = "yes"; then
180      APR_ADDTO(CFLAGS,-Wall)
181    fi
182 ])dnl
183
184 AC_ARG_ENABLE(maintainer-mode,[  --enable-maintainer-mode  Turn on debugging and compile time warnings],
185   [APR_ADDTO(CFLAGS,-g)
186    if test "$GCC" = "yes"; then
187      APR_ADDTO(CFLAGS,[-Wall -Wmissing-prototypes -Wstrict-prototypes -Wmissing-declarations -DAP_DEBUG])
188    fi
189 ])dnl
190
191 APACHE_ENABLE_LAYOUT
192 APACHE_ENABLE_MODULES
193
194 dnl reading config stubs
195 esyscmd(./build/config-stubs .)
196
197 APACHE_SUBST(progname)
198 APACHE_SUBST(MPM_LIB)
199 APACHE_SUBST(OS)
200 APACHE_SUBST(OS_DIR)
201 APACHE_SUBST(BUILTIN_LIBS)
202
203 PRE_SHARED_CMDS='echo ""'
204 POST_SHARED_CMDS='echo ""'
205
206 if test "$apache_need_shared" = "yes"; then
207   $SHELL $ac_aux_dir/ltconfig --output=shlibtool --disable-static --srcdir=$ac_aux_dir --cache-file=./config.cache $ac_aux_dir/ltmain.sh
208   case $PLATFORM in
209     *-ibm-aix*)
210       HTTPD_LDFLAGS="$HTTPD_LDFLAGS -Wl,-bE:$abs_srcdir/support/httpd.exp"
211       SH_LDFLAGS="$SH_LDFLAGS -Wl,-bI:$abs_srcdir/support/httpd.exp"
212       ;;
213     *beos)
214       SH_LDFLAGS='$(top_builddir)/_APP_'
215       PRE_SHARED_CMDS='ln -s $(top_builddir)/httpd $(top_builddir)/_APP_'
216       POST_SHARED_CMDS='rm $(top_builddir)/_APP_'
217       ;;
218     *os390)
219       APR_ADDTO(CFLAGS, [-Wc,DLL,EXPORTALL])
220       ;;
221   esac
222   shared_build="shared-modules"
223 fi
224
225 APACHE_SUBST(PRE_SHARED_CMDS)
226 APACHE_SUBST(POST_SHARED_CMDS)
227 APACHE_SUBST(shared_build)
228
229 AC_ARG_WITH(program-name,
230 [  --with-program-name     alternate executable name],[
231   progname="$withval" ], [
232   progname="httpd"] )
233
234 # SuExec parameters
235 AC_ARG_WITH(suexec-caller,
236 [  --with-suexec-caller    User allowed to call SuExec],[
237   AC_DEFINE_UNQUOTED(AP_HTTPD_USER, "$withval", [User allowed to call SuExec] ) ] )
238
239 AC_ARG_WITH(suexec-userdir,
240 [  --with-suexec-userdir   User subdirectory],[
241   AC_DEFINE_UNQUOTED(AP_USERDIR_SUFFIX, "$withval", [User subdirectory] ) ] )
242
243 AC_ARG_WITH(suexec-docroot,
244 [  --with-suexec-docroot   SuExec root directory],[
245   AC_DEFINE_UNQUOTED(AP_DOC_ROOT, "$withval", [SuExec root directory] ) ] )
246
247 AC_ARG_WITH(suexec-uidmin,
248 [  --with-suexec-uidmin    Minimal allowed UID],[
249   AC_DEFINE_UNQUOTED(AP_UID_MIN, $withval, [Minimum allowed UID] ) ] )
250
251 AC_ARG_WITH(suexec-gidmin,
252 [  --with-suexec-gidmin    Minimal allowed GID],[
253   AC_DEFINE_UNQUOTED(AP_GID_MIN, $withval, [Minimum allowed GID] ) ] )
254
255 AC_ARG_WITH(suexec-logfile,
256 [  --with-suexec-logfile   Set the logfile],[
257   AC_DEFINE_UNQUOTED(AP_LOG_EXEC, "$withval", [SuExec log file] ) ] )
258
259 AC_ARG_WITH(suexec-safepath,
260 [  --with-suexec-safepath  Set the safepath],[
261   AC_DEFINE_UNQUOTED(AP_SAFE_PATH, "$withval", [safe shell path for SuExec] ) ] )
262
263 AC_ARG_WITH(suexec-umask,
264 [  --with-suexec-umask     umask for suexec'd process],[
265   AC_DEFINE_UNQUOTED(AP_SUEXEC_UMASK, 0$withval, [umask for suexec'd process] ) ] )
266
267 dnl AP_LIB_DIRS specifies the additional libs from srclib/ that we need
268 dnl AP_LIBS specifies the actual libraries. note we have some required libs.
269 AP_LIBS="$abs_srcdir/srclib/pcre/libpcre.la $abs_srcdir/srclib/apr-util/libaprutil.la $AP_LIBS"
270
271 dnl APR should go after the other libs, so the right symbols can be picked up
272 AP_LIBS="$AP_LIBS $abs_srcdir/srclib/apr/libapr.la"
273 APACHE_SUBST(AP_LIB_DIRS)
274 APACHE_SUBST(AP_LIBS)
275
276 AC_DEFINE(AP_USING_AUTOCONF, 1,
277                 [Using autoconf to configure Apache])
278
279 if test "$SINGLE_LISTEN_UNSERIALIZED_ACCEPT" = "1"; then
280     AC_DEFINE(SINGLE_LISTEN_UNSERIALIZED_ACCEPT, 1, 
281               [This platform doesn't suffer from the thundering herd problem])
282 fi
283
284 dnl check for endianness
285 if test "$cross_compiling" = "no"; then
286   AC_C_BIGENDIAN
287 else
288   AC_DEFINE(AP_UNKNOWN_BYTE_ORDER,1,
289                 [byte order is unknown due to cross-compilation])
290 fi
291
292 APACHE_FAST_OUTPUT(Makefile modules/Makefile srclib/Makefile) 
293 APACHE_FAST_OUTPUT(os/beos/Makefile os/os2/Makefile os/Makefile)
294 APACHE_FAST_OUTPUT(os/unix/Makefile server/Makefile)
295 APACHE_FAST_OUTPUT(support/Makefile srclib/pcre/Makefile)
296 for i in $AP_LIB_DIRS; do
297   APACHE_FAST_OUTPUT(srclib/$i/Makefile)
298 done
299
300 if test -d ./test; then
301     APACHE_FAST_OUTPUT(test/Makefile)
302 fi
303
304 dnl get the exported vars from APRUTIL
305 . ./srclib/apr-util/export_vars.sh
306 APR_ADDTO(LIBS, $APRUTIL_EXPORT_LIBS)
307 AP_LIBS="$AP_LIBS $LIBTOOL_LIBS"
308
309 dnl ## Finalize the variables
310 echo $ac_n "${nl}Restore user-defined environment settings...${nl}"
311
312 APR_RESTORE_THE_ENVIRONMENT(CPPFLAGS, EXTRA_)
313 APR_RESTORE_THE_ENVIRONMENT(CFLAGS, EXTRA_)
314 APR_RESTORE_THE_ENVIRONMENT(CXXFLAGS, EXTRA_)
315 APR_RESTORE_THE_ENVIRONMENT(LDFLAGS, EXTRA_)
316 APR_RESTORE_THE_ENVIRONMENT(LIBS, EXTRA_)
317 APR_RESTORE_THE_ENVIRONMENT(INCLUDES, EXTRA_)
318
319 echo $ac_n "${nl}Construct makefiles and header files...${nl}"
320
321 APACHE_GEN_CONFIG_VARS
322
323 dnl ## Build modules.c
324 rm -f modules.c
325 echo $MODLIST | $AWK -f $srcdir/build/build-modules-c.awk > modules.c
326
327 AC_DEFINE_UNQUOTED(HTTPD_ROOT, "$prefix",
328         [Root directory of the Apache install area])
329 AC_DEFINE_UNQUOTED(SERVER_CONFIG_FILE, "conf/$progname.conf",
330         [Location of the config file, relative to the Apache root directory])
331 AC_DEFINE_UNQUOTED(APACHE_MPM_DIR, "$MPM_DIR",
332         [Location of the source for the current MPM])
333
334 perlbin=`$ac_aux_dir/PrintPath perl`
335 if test "x$perlbin" = "x"; then
336     perlbin="/replace/with/path/to/perl/interpreter"
337 fi
338 AC_SUBST(perlbin)
339
340 dnl If we are running on BSD/OS, we need to use the BSD .include syntax.
341
342 BSD_MAKEFILE=no
343 case "$host_alias" in
344 *bsdi*)
345     # Check whether they've installed GNU make
346     if make --version > /dev/null 2>&1; then
347         true
348     else
349         BSD_MAKEFILE=yes
350     fi
351     ;;
352 esac
353
354 AC_OUTPUT($APACHE_OUTPUT_FILES support/apxs support/apachectl support/dbmmanage support/log_server_status support/logresolve.pl support/phf_abuse_log.cgi support/split-logfile,,[
355   APACHE_GEN_MAKEFILES
356 ])
357