1 dnl ## Process this file with autoconf to produce a configure script
6 AC_CONFIG_HEADER(include/ap_config_auto.h)
9 dnl ## This is the central place where Apache's version should be kept.
10 dnl AM_INIT_AUTOMAKE(apache, 2.0-dev)
12 VERSION="apache-2.0-dev"
14 APACHE_VERSION=$VERSION
15 APACHE_SUBST(APACHE_VERSION)
17 test "$exec_prefix" = "NONE" && exec_prefix='${prefix}'
18 test "$prefix" = "NONE" && prefix='/usr/local'
20 dnl Absolute source/build directory
21 abs_srcdir=`(cd $srcdir && pwd)`
24 APACHE_CONFIG_NICE(config.nice)
26 dnl If the source dir is not equal to the build dir,
27 dnl then we are running in VPATH mode.
29 if test "$abs_builddir" != "$abs_srcdir"; then
36 dnl ## Preload our OS configuration
41 dnl Process command line arguments. This is done early in the process so the
42 dnl user can get feedback quickly in case of an error.
44 dnl ### need to move some of the arguments "up here"
46 dnl ## Check for programs
54 AC_CHECK_TOOL(RANLIB, ranlib, true)
55 dnl AC_PATH_PROG(PERL_PATH, perl)
59 dnl various OS checks that apparently set required flags
64 dnl ## Check for libraries
66 dnl ## Check for header files
68 dnl I think these are just used all over the place, so just check for
69 dnl them at the base of the tree. If some are specific to a single
70 dnl directory, they should be moved (Comment #Spoon)
72 dnl Regarding standard header files: AC_HEADER_STDC doesn't set symbols
73 dnl HAVE_STRING_H, HAVE_STDLIB_H, etc., so those are checked for
74 dnl explicitly so that the normal HAVE_xxx_H symbol is defined.
96 dnl ## Check for typedefs, structures, and compiler characteristics.
100 dnl ## Check for library functions
102 dnl See Comment #Spoon
108 AC_CHECK_LIB(nsl, gethostbyname)
109 AC_CHECK_LIB(nsl, gethostname)
110 AC_CHECK_LIB(socket, socket)
111 AC_CHECK_LIB(resolv, sethostent)
113 AC_ARG_WITH(optim,[ --with-optim="FLAGS" compiler optimisation flags],
116 AC_ARG_WITH(port,[ --with-port=PORT Port on which to listen (default is 80)],
120 AC_ARG_WITH(debug,[ --with-debug Turn on debugging and compile time warnings],
121 [if test "$GCC" = "yes"; then CFLAGS="$CFLAGS -g -Wall"; else CFLAGS="$CFLAGS -g"; fi])
123 AC_ARG_WITH(maintainer-mode,[ --with-maintainer-mode Turn on debugging and compile time warnings],
124 [if test "$GCC" = "yes"; then CFLAGS="$CFLAGS -g -Wall -Wmissing-prototypes -Wstrict-prototypes -Wmissing-declarations -DAP_DEBUG"; else CFLAGS="$CFLAGS -g"; fi])
127 APACHE_ENABLE_MODULES
130 INCLUDES="-I\$(top_srcdir)/include -I\$(top_srcdir)/srclib/apr/include -I\$(top_srcdir)/srclib/apr-util/include"
131 if test -n "$USE_VPATH"; then
132 INCLUDES="$INCLUDES -I\$(top_builddir)/include -I\$(top_builddir)/srclib/apr/include"
135 dnl reading config stubs
136 esyscmd(./build/config-stubs .)
138 INCLUDES="$INCLUDES -I\$(top_srcdir)/os/\$(OS_DIR)"
139 EXTRA_LIBS="$EXTRA_LIBS $LIBS"
140 EXTRA_LDFLAGS="$LDFLAGS"
143 APACHE_SUBST(progname)
144 APACHE_SUBST(EXTRA_CFLAGS)
145 APACHE_SUBST(EXTRA_LDFLAGS)
146 APACHE_SUBST(EXTRA_LIBS)
147 APACHE_SUBST(INCLUDES)
148 APACHE_SUBST(MPM_LIB)
151 APACHE_SUBST(BUILTIN_LIBS)
156 APACHE_LIBTOOL_SILENT
158 if test "$apache_need_shared" = "yes"; then
159 $SHELL $srcdir/ltconfig --output=shlibtool --disable-static --srcdir=$srcdir --cache-file=./config.cache $srcdir/ltmain.sh
162 CFLAGS="$CFLAGS -Wc,DLL,EXPORTALL"
167 AC_ARG_WITH(program-name,
168 [ --with-program-name=alternate executable name],[
169 progname="$withval" ], [
172 dnl ### util_xml is always included, so we always need Expat (for now)
173 apache_need_expat=yes
175 dnl AP_LIB_DIRS specifies the additional libs from srclib/ that we need
176 dnl AP_LIBS specifies the actual libraries. note we have some required libs.
177 AP_LIBS="srclib/pcre/libpcre.la srclib/apr-util/libaprutil.la"
179 if test "$apache_need_expat" = "yes"; then
180 AP_LIB_DIRS="$AP_LIB_DIRS expat-lite"
181 AP_LIBS="$AP_LIBS srclib/expat-lite/libexpat.la"
182 INCLUDES="$INCLUDES -I\$(top_srcdir)/srclib/expat-lite"
185 dnl APR should go after the other libs, so the right symbols can be picked up
186 AP_LIBS="$AP_LIBS srclib/apr/\$(LIBPRE)apr.a"
187 APACHE_SUBST(AP_LIB_DIRS)
188 APACHE_SUBST(AP_LIBS)
190 AC_DEFINE(AP_USING_AUTOCONF, 1,
191 [Using autoconf to configure Apache])
193 if test "$SINGLE_LISTEN_UNSERIALIZED_ACCEPT" = "1"; then
194 AC_DEFINE(SINGLE_LISTEN_UNSERIALIZED_ACCEPT, 1,
195 [This platform doesn't suffer from the thundering herd problem])
198 dnl check for endianness
199 if test "$cross_compiling" = "no"; then
202 AC_DEFINE(AP_UNKNOWN_BYTE_ORDER,1,
203 [byte order is unknown due to cross-compilation])
206 APACHE_FAST_OUTPUT(Makefile modules/Makefile srclib/Makefile)
207 APACHE_FAST_OUTPUT(os/beos/Makefile os/os2/Makefile os/Makefile)
208 APACHE_FAST_OUTPUT(os/unix/Makefile server/Makefile)
209 APACHE_FAST_OUTPUT(support/Makefile test/Makefile srclib/pcre/Makefile)
210 for i in $AP_LIB_DIRS; do
211 APACHE_FAST_OUTPUT(srclib/$i/Makefile)
214 dnl ## Run configure for packages Apache uses
215 dnl ## This has been placed at this location for a reason. This allows
216 dnl ## Apache to set some variable that APR needs (like whether to enable
217 dnl ## or disable threads), while still allowing APR to run and generate
218 dnl ## APRVARS before Apache generates it's Makefiles and the related files.
219 dnl ## This allows APR to detect libraries like dl and tell Apache that it
220 dnl ## needs to include or not include them.
221 RUN_SUBDIR_CONFIG_NOW(srclib/apr, $apache_apr_flags)
222 RUN_SUBDIR_CONFIG_NOW(srclib/apr-util, "--with-apr=../apr")
223 RUN_SUBDIR_CONFIG_NOW(srclib/pcre)
224 . ./srclib/apr/APRVARS
226 dnl get the exported vars from APRUTIL
227 . ./srclib/apr-util/export_vars.sh
228 EXTRA_LIBS="$EXTRA_LIBS $APRUTIL_EXPORT_LIBS"
230 APACHE_GEN_CONFIG_VARS
232 dnl ## Build modules.c
234 echo $MODLIST | $AWK -f $srcdir/build/build-modules-c.awk > modules.c
237 echo '/* Generated by configure */' > ${path_h}.new
238 echo "#define HTTPD_ROOT \"$prefix\"" >> ${path_h}.new
239 echo "#define SUEXEC_BIN \"$bindir/suexec\"" >> ${path_h}.new
240 echo "#define SERVER_CONFIG_FILE \"conf/$progname.conf\"" >> ${path_h}.new
241 echo "#define APACHE_MPM_DIR \"$mpmdir\"" >> ${path_h}.new
243 cmp ${path_h}.new ${path_h} >/dev/null 2>&1
244 if test $? -ne 0 ; then
245 rm -f ${path_h} && mv ${path_h}.new ${path_h} && \
246 echo "Updated ${path_h}"
248 rm -f ${path_h}.new && \
249 echo "${path_h} unchanged"
252 path_h=./include/ap_config_path.h
254 exec_prefix=$exec_prefix
262 perlbin=`$srcdir/build/PrintPath perl`
265 dnl If we are running on BSD/OS, we need to use the BSD .include syntax.
268 case "$host_alias" in
273 AC_OUTPUT($APACHE_OUTPUT_FILES support/apxs support/apachectl,,[