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 MKDIR=$abs_srcdir/srclib/apr/helpers/mkdir.sh
26 APACHE_CONFIG_NICE(config.nice)
28 dnl If the source dir is not equal to the build dir,
29 dnl then we are running in VPATH mode.
31 if test "$abs_builddir" != "$abs_srcdir"; then
38 dnl ## Preload our OS configuration
43 dnl Process command line arguments. This is done early in the process so the
44 dnl user can get feedback quickly in case of an error.
46 dnl ### need to move some of the arguments "up here"
48 dnl ## Check for programs
56 AC_CHECK_TOOL(RANLIB, ranlib, true)
57 dnl AC_PATH_PROG(PERL_PATH, perl)
61 dnl various OS checks that apparently set required flags
66 dnl ## Check for libraries
68 dnl ## Check for header files
70 dnl I think these are just used all over the place, so just check for
71 dnl them at the base of the tree. If some are specific to a single
72 dnl directory, they should be moved (Comment #Spoon)
74 dnl Regarding standard header files: AC_HEADER_STDC doesn't set symbols
75 dnl HAVE_STRING_H, HAVE_STDLIB_H, etc., so those are checked for
76 dnl explicitly so that the normal HAVE_xxx_H symbol is defined.
98 dnl ## Check for typedefs, structures, and compiler characteristics.
102 dnl ## Check for library functions
104 dnl See Comment #Spoon
110 AC_CHECK_LIB(nsl, gethostbyname)
111 AC_CHECK_LIB(nsl, gethostname)
112 AC_CHECK_LIB(socket, socket)
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)
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" ], [
173 AC_ARG_WITH(suexec-caller,
174 [ --with-suexec-caller=User allowed to call SuExec],[
175 AC_DEFINE_UNQUOTED(AP_HTTPD_USER, "$withval", [User allowed to call SuExec] ) ] )
177 AC_ARG_WITH(suexec-userdir,
178 [ --with-suexec-userdir=User subdirectory],[
179 AC_DEFINE_UNQUOTED(AP_USERDIR_SUFFIX, "$withval", [User subdirectory] ) ] )
181 AC_ARG_WITH(suexec-docroot,
182 [ --with-suexec-docroot=SuExec root directory],[
183 AC_DEFINE_UNQUOTED(AP_DOC_ROOT, "$withval", [SuExec root directory] ) ] )
185 AC_ARG_WITH(suexec-uidmin,
186 [ --with-suexec-uidmin=Minimal allowed UID],[
187 AC_DEFINE_UNQUOTED(AP_UID_MIN, "$withval", [Minimal allowed UID] ) ] )
189 AC_ARG_WITH(suexec-gidmin,
190 [ --with-suexec-gidmin=Minimal allowed GID],[
191 AC_DEFINE_UNQUOTED(AP_GID_MIN, "$withval", [Minimal allowed GID] ) ] )
193 AC_ARG_WITH(suexec-logfile,
194 [ --with-suexec-logfile=Set the logfile],[
195 AC_DEFINE_UNQUOTED(AP_LOG_EXEC, "$withval", [SuExec log file] ) ] )
197 AC_ARG_WITH(suexec-safepath,
198 [ --with-suexec-safepath=Set the safepath],[
199 AC_DEFINE_UNQUOTED(AP_SAFE_PATH, "$withval", [safe shell path for SuExec] ) ] )
201 dnl ### util_xml is always included, so we always need Expat (for now)
202 apache_need_expat=yes
204 dnl AP_LIB_DIRS specifies the additional libs from srclib/ that we need
205 dnl AP_LIBS specifies the actual libraries. note we have some required libs.
206 AP_LIBS="srclib/pcre/libpcre.la srclib/apr-util/libaprutil.la $AP_LIBS"
208 if test "$apache_need_expat" = "yes"; then
209 AP_LIB_DIRS="$AP_LIB_DIRS expat-lite"
210 AP_LIBS="$AP_LIBS srclib/expat-lite/libexpat.la"
211 INCLUDES="$INCLUDES -I\$(top_srcdir)/srclib/expat-lite"
214 dnl APR should go after the other libs, so the right symbols can be picked up
215 AP_LIBS="$AP_LIBS srclib/apr/libapr.la"
216 APACHE_SUBST(AP_LIB_DIRS)
217 APACHE_SUBST(AP_LIBS)
219 AC_DEFINE(AP_USING_AUTOCONF, 1,
220 [Using autoconf to configure Apache])
222 if test "$SINGLE_LISTEN_UNSERIALIZED_ACCEPT" = "1"; then
223 AC_DEFINE(SINGLE_LISTEN_UNSERIALIZED_ACCEPT, 1,
224 [This platform doesn't suffer from the thundering herd problem])
227 dnl check for endianness
228 if test "$cross_compiling" = "no"; then
231 AC_DEFINE(AP_UNKNOWN_BYTE_ORDER,1,
232 [byte order is unknown due to cross-compilation])
235 APACHE_FAST_OUTPUT(Makefile modules/Makefile srclib/Makefile)
236 APACHE_FAST_OUTPUT(os/beos/Makefile os/os2/Makefile os/Makefile)
237 APACHE_FAST_OUTPUT(os/unix/Makefile server/Makefile)
238 APACHE_FAST_OUTPUT(support/Makefile test/Makefile srclib/pcre/Makefile)
239 for i in $AP_LIB_DIRS; do
240 APACHE_FAST_OUTPUT(srclib/$i/Makefile)
243 dnl ## Run configure for packages Apache uses
244 dnl ## This has been placed at this location for a reason. This allows
245 dnl ## Apache to set some variable that APR needs (like whether to enable
246 dnl ## or disable threads), while still allowing APR to run and generate
247 dnl ## APRVARS before Apache generates it's Makefiles and the related files.
248 dnl ## This allows APR to detect libraries like dl and tell Apache that it
249 dnl ## needs to include or not include them.
250 RUN_SUBDIR_CONFIG_NOW(srclib/apr, "$apache_apr_flags --disable-shared")
251 RUN_SUBDIR_CONFIG_NOW(srclib/apr-util, "--with-apr=../apr --disable-shared")
252 RUN_SUBDIR_CONFIG_NOW(srclib/pcre)
253 . ./srclib/apr/APRVARS
255 dnl get the exported vars from APRUTIL
256 . ./srclib/apr-util/export_vars.sh
257 EXTRA_LIBS="$EXTRA_LIBS $APRUTIL_EXPORT_LIBS"
258 AP_LIBS="$AP_LIBS $LIBTOOL_LIBS"
260 APACHE_GEN_CONFIG_VARS
262 dnl ## Build modules.c
264 echo $MODLIST | $AWK -f $srcdir/build/build-modules-c.awk > modules.c
267 echo '/* Generated by configure */' > ${path_h}.new
268 echo "#define HTTPD_ROOT \"$prefix\"" >> ${path_h}.new
269 echo "#define SERVER_CONFIG_FILE \"conf/$progname.conf\"" >> ${path_h}.new
270 echo "#define APACHE_MPM_DIR \"$mpmdir\"" >> ${path_h}.new
272 cmp ${path_h}.new ${path_h} >/dev/null 2>&1
273 if test $? -ne 0 ; then
274 rm -f ${path_h} && mv ${path_h}.new ${path_h} && \
275 echo "Updated ${path_h}"
277 rm -f ${path_h}.new && \
278 echo "${path_h} unchanged"
281 path_h=./include/ap_config_path.h
283 exec_prefix=$exec_prefix
291 perlbin=`$srcdir/build/PrintPath perl`
294 dnl If we are running on BSD/OS, we need to use the BSD .include syntax.
297 case "$host_alias" in
302 AC_OUTPUT($APACHE_OUTPUT_FILES support/apxs support/apachectl,,[