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
53 AC_CHECK_TOOL(RANLIB, ranlib, true)
54 dnl AC_PATH_PROG(PERL_PATH, perl)
58 dnl various OS checks that apparently set required flags
63 dnl ## Check for libraries
65 dnl ## Check for header files
67 dnl I think these are just used all over the place, so just check for
68 dnl them at the base of the tree. If some are specific to a single
69 dnl directory, they should be moved (Comment #Spoon)
71 dnl Regarding standard header files: AC_HEADER_STDC doesn't set symbols
72 dnl HAVE_STRING_H, HAVE_STDLIB_H, etc., so those are checked for
73 dnl explicitly so that the normal HAVE_xxx_H symbol is defined.
95 dnl ## Check for typedefs, structures, and compiler characteristics.
99 dnl ## Check for library functions
101 dnl See Comment #Spoon
107 AC_CHECK_LIB(nsl, gethostbyname)
108 AC_CHECK_LIB(nsl, gethostname)
109 AC_CHECK_LIB(socket, socket)
110 AC_CHECK_LIB(resolv, sethostent)
114 AC_ARG_WITH(optim,[ --with-optim="FLAGS" compiler optimisation flags],
117 AC_ARG_WITH(port,[ --with-port=PORT Port on which to listen (default is 80)],
121 AC_ARG_WITH(debug,[ --with-debug Turn on debugging and compile time warnings],
122 [if test "$GCC" = "yes"; then CFLAGS="$CFLAGS -g -Wall"; else CFLAGS="$CFLAGS -g"; fi])
124 AC_ARG_WITH(maintainer-mode,[ --with-maintainer-mode Turn on debugging and compile time warnings],
125 [if test "$GCC" = "yes"; then CFLAGS="$CFLAGS -g -Wall -Wmissing-prototypes -Wstrict-prototypes -Wmissing-declarations -DAP_DEBUG"; else CFLAGS="$CFLAGS -g"; fi])
128 APACHE_ENABLE_MODULES
131 INCLUDES="-I\$(top_srcdir)/include -I\$(top_srcdir)/srclib/apr/include -I\$(top_srcdir)/srclib/apr-util/include"
132 if test -n "$USE_VPATH"; then
133 INCLUDES="$INCLUDES -I\$(top_builddir)/include -I\$(top_builddir)/srclib/apr/include"
136 dnl reading config stubs
137 esyscmd(./build/config-stubs .)
139 INCLUDES="$INCLUDES -I\$(top_srcdir)/os/\$(OS_DIR)"
140 EXTRA_LIBS="$EXTRA_LIBS $LIBS"
141 EXTRA_LDFLAGS="$LDFLAGS"
144 APACHE_SUBST(progname)
145 APACHE_SUBST(EXTRA_CFLAGS)
146 APACHE_SUBST(EXTRA_LDFLAGS)
147 APACHE_SUBST(EXTRA_LIBS)
148 APACHE_SUBST(INCLUDES)
149 APACHE_SUBST(MPM_LIB)
152 APACHE_SUBST(BUILTIN_LIBS)
157 APACHE_LIBTOOL_SILENT
159 if test "$apache_need_shared" = "yes"; then
160 $SHELL $srcdir/ltconfig --output=shlibtool --disable-static --srcdir=$srcdir --cache-file=./config.cache $srcdir/ltmain.sh
163 CFLAGS="$CFLAGS -Wc,DLL,EXPORTALL"
168 AC_ARG_WITH(program-name,
169 [ --with-program-name=alternate executable name],[
170 progname="$withval" ], [
173 dnl ### util_xml is always included, so we always need Expat (for now)
174 apache_need_expat=yes
176 dnl AP_LIB_DIRS specifies the additional libs from srclib/ that we need
177 dnl AP_LIBS specifies the actual libraries. note we have some required libs.
178 AP_LIBS="srclib/pcre/libpcre.la srclib/apr-util/libaprutil.la"
180 if test "$apache_need_expat" = "yes"; then
181 AP_LIB_DIRS="$AP_LIB_DIRS expat-lite"
182 AP_LIBS="$AP_LIBS srclib/expat-lite/libexpat.la"
183 INCLUDES="$INCLUDES -I\$(top_srcdir)/srclib/expat-lite"
186 dnl APR should go after the other libs, so the right symbols can be picked up
187 AP_LIBS="$AP_LIBS srclib/apr/\$(LIBPRE)apr.a"
188 APACHE_SUBST(AP_LIB_DIRS)
189 APACHE_SUBST(AP_LIBS)
191 AC_DEFINE(AP_USING_AUTOCONF, 1,
192 [Using autoconf to configure Apache])
194 if test "$SINGLE_LISTEN_UNSERIALIZED_ACCEPT" = "1"; then
195 AC_DEFINE(SINGLE_LISTEN_UNSERIALIZED_ACCEPT, 1,
196 [This platform doesn't suffer from the thundering herd problem])
199 dnl check for endianness
200 if test "$cross_compiling" = "no"; then
203 AC_DEFINE(AP_UNKNOWN_BYTE_ORDER,1,
204 [byte order is unknown due to cross-compilation])
207 APACHE_FAST_OUTPUT(Makefile modules/Makefile srclib/Makefile)
208 APACHE_FAST_OUTPUT(os/beos/Makefile os/os2/Makefile os/Makefile)
209 APACHE_FAST_OUTPUT(os/unix/Makefile server/Makefile)
210 APACHE_FAST_OUTPUT(support/Makefile test/Makefile srclib/pcre/Makefile)
211 for i in $AP_LIB_DIRS; do
212 APACHE_FAST_OUTPUT(srclib/$i/Makefile)
215 dnl ## Run configure for packages Apache uses
216 dnl ## This has been placed at this location for a reason. This allows
217 dnl ## Apache to set some variable that APR needs (like whether to enable
218 dnl ## or disable threads), while still allowing APR to run and generate
219 dnl ## APRVARS before Apache generates it's Makefiles and the related files.
220 dnl ## This allows APR to detect libraries like dl and tell Apache that it
221 dnl ## needs to include or not include them.
222 RUN_SUBDIR_CONFIG_NOW(srclib/apr, $apache_apr_flags)
223 RUN_SUBDIR_CONFIG_NOW(srclib/apr-util, "--with-apr=../apr")
224 RUN_SUBDIR_CONFIG_NOW(srclib/pcre)
225 . ./srclib/apr/APRVARS
227 APACHE_GEN_CONFIG_VARS
229 dnl ## Build modules.c
231 echo $MODLIST | $AWK -f $srcdir/build/build-modules-c.awk > modules.c
234 echo '/* Generated by configure */' > ${path_h}.new
235 echo "#define HTTPD_ROOT \"$prefix\"" >> ${path_h}.new
236 echo "#define SUEXEC_BIN \"$bindir/suexec\"" >> ${path_h}.new
237 echo "#define SERVER_CONFIG_FILE \"conf/$progname.conf\"" >> ${path_h}.new
238 echo "#define APACHE_MPM_DIR \"$mpmdir\"" >> ${path_h}.new
240 cmp ${path_h}.new ${path_h} >/dev/null 2>&1
241 if test $? -ne 0 ; then
242 rm -f ${path_h} && mv ${path_h}.new ${path_h} && \
243 echo "Updated ${path_h}"
245 rm -f ${path_h}.new && \
246 echo "${path_h} unchanged"
249 path_h=./include/ap_config_path.h
251 exec_prefix=$exec_prefix
259 perlbin=`$srcdir/build/PrintPath perl`
262 dnl If we are running on BSD/OS, we need to use the BSD .include syntax.
265 case "$host_alias" in
270 AC_OUTPUT($APACHE_OUTPUT_FILES support/apxs support/apachectl,,[