]> granicus.if.org Git - apache/blobdiff - configure.in
Fix RedirectMatch so it won't emit invalid Location fields.
[apache] / configure.in
index dd2ced0f8f8c17838cd36e1730801a0c4d2c34d5..285d6464f2ae05d83ef07fef5cf9d9d52c8c087d 100644 (file)
@@ -43,13 +43,20 @@ test "$exec_prefix" = "NONE" && exec_prefix='${prefix}'
 
 dnl ## Run configure for packages Apache uses
 
+dnl shared library support for these packages doesn't currently
+dnl work on some platforms
+
+AC_CANONICAL_SYSTEM
+
+orig_prefix="$prefix"
+
 echo $ac_n "${nl}Configuring Apache Portable Runtime library ...${nl}"
 
-APR_SUBDIR_CONFIG(srclib/apr, "$apache_apr_flags --disable-shared --prefix=$prefix")
+APR_SUBDIR_CONFIG(srclib/apr, "$apache_apr_flags --prefix=$prefix")
 
 echo $ac_n "${nl}Configuring Apache Portable Runtime Utility library...${nl}"
 
-APR_SUBDIR_CONFIG(srclib/apr-util, "--with-apr=../apr --disable-shared --prefix=$prefix")
+APR_SUBDIR_CONFIG(srclib/apr-util, "--with-apr=../apr --prefix=$prefix")
 
 echo $ac_n "${nl}Configuring PCRE regular expression library ...${nl}"
 
@@ -83,34 +90,52 @@ dnl then we are running in VPATH mode.
 
 if test "$abs_builddir" != "$abs_srcdir"; then
   USE_VPATH=1
-  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])
+  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_srcdir)/modules/proxy -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])
 else
-  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])
+  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)/modules/proxy -I\$(top_srcdir)/include -I\$(top_srcdir)/srclib/apr/include -I\$(top_srcdir)/srclib/apr-util/include])
 fi
 
 echo $ac_n "${nl}Applying OS-specific hints for httpd ...${nl}"
 
-AC_CANONICAL_SYSTEM
-
 case $host in
   *os2*)
       # Use a custom made libtool replacement
       echo "using aplibtool"
       LIBTOOL="$abs_srcdir/srclib/apr/build/aplibtool"
       SH_LIBTOOL="$LIBTOOL --shared --export-all"
+      SH_LIBS="\$(ALL_LIBS)"
       CORE_IMPLIB_FILE="ApacheCoreOS2.la"
       CORE_IMPLIB="$abs_srcdir/server/$CORE_IMPLIB_FILE"
       MK_IMPLIB="emximp"
       other_targets="$other_targets os2core"
+      INSTALL_PROG_FLAGS="-e .exe"
+      SHLTCFLAGS=""
+      LTCFLAGS=""
       ;;
   *)
       if test "x$LTFLAGS" = "x"; then
           LTFLAGS='--silent'
       fi
       LIBTOOL='$(SHELL) $(top_builddir)/srclib/apr/libtool $(LTFLAGS)'
-      SH_LIBTOOL='$(SHELL) $(top_builddir)/shlibtool $(LTFLAGS)'
+      libtoolversion=`$abs_builddir/srclib/apr/libtool --version`
+      case $libtoolversion in
+          *1.4*)
+              SH_LIBTOOL='$(LIBTOOL)'
+              SHLTCFLAGS="-prefer-pic"
+              LTCFLAGS="-prefer-non-pic -static"
+              ;;
+          *)
+              SH_LIBTOOL='$(SHELL) $(top_builddir)/shlibtool $(LTFLAGS)'
+              SHLTCFLAGS=""
+              LTCFLAGS=""
+              ;;
+      esac
       ;;
 esac
+APACHE_SUBST(SHLTCFLAGS)
+APACHE_SUBST(LTCFLAGS)
+
+AP_SIG_GRACEFUL=USR1
 
 case $host in
   *-apple-aux3*)
@@ -122,12 +147,16 @@ case $host in
       APR_SETVAR(SINGLE_LISTEN_UNSERIALIZED_ACCEPT, [1])
       ;;
   *os2_emx*)
-      APR_SETVAR(APACHE_MPM, [spmt_os2])
+      APR_SETVAR(APACHE_MPM, [mpmt_os2])
       APR_SETVAR(SINGLE_LISTEN_UNSERIALIZED_ACCEPT, [1])
       ;;
   *-linux-*)
       case `uname -r` in
-        2.[[2-9]]* ) APR_SETVAR(SINGLE_LISTEN_UNSERIALIZED_ACCEPT, [1])
+        2.0* ) 
+            AP_SIG_GRACEFUL=WINCH
+            ;;
+        2.[[2-9]]* ) 
+            APR_SETVAR(SINGLE_LISTEN_UNSERIALIZED_ACCEPT, [1])
             ;;
         * )
             ;;
@@ -140,6 +169,10 @@ case $host in
       dnl  This is a hack -- we should be using AC_TRY_RUN instead
       ap_platform_runtime_link_flag="-R"
       ;;
+  *cygwin*)
+      APR_SETVAR(APACHE_MPM, [prefork])
+      APR_SETVAR(SINGLE_LISTEN_UNSERIALIZED_ACCEPT, [1])
+      ;;
 esac
 
 dnl
@@ -185,7 +218,8 @@ sys/socket.h \
 pwd.h \
 grp.h \
 strings.h \
-sys/processor.h
+sys/processor.h \
+sys/sem.h
 )
 AC_HEADER_SYS_WAIT
 
@@ -201,24 +235,50 @@ dnl ## Check for library functions
 dnl See Comment #Spoon
 
 AC_CHECK_FUNCS( \
+getpwnam \
+getgrnam \
 initgroups \
 bindprocessor \
+timegm \
 )
 
-AC_CHECK_LIB(nsl, gethostbyname)
-AC_CHECK_LIB(nsl, gethostname)
-AC_CHECK_LIB(socket, socket)
+dnl ## Check for the tm_gmtoff field in struct tm to get the timezone diffs
+AC_CACHE_CHECK([for tm_gmtoff in struct tm], ac_cv_struct_tm_gmtoff,
+[AC_TRY_COMPILE([#include <sys/types.h>
+#include <time.h>], [struct tm tm; tm.tm_gmtoff;],
+  ac_cv_struct_tm_gmtoff=yes, ac_cv_struct_tm_gmtoff=no)])
+if test "$ac_cv_struct_tm_gmtoff" = "yes"; then
+    AC_DEFINE(HAVE_GMTOFF)
+fi
+
+dnl ## Set up any appropriate OS-specific environment variables for apachectl
 
-AC_ARG_WITH(port,[  --with-port=PORT        Port on which to listen (default is 80)],
+case $host in
+    *aix*)
+        # for 32-bit builds, increase MAXDATA to allow lots of threads
+        if test x$COMPILE_MODE != 64; then
+            OS_SPECIFIC_VARS="set LDR_CNTRL=\"MAXDATA=0x80000000\" ; export LDR_CNTRL ;"
+        fi
+        OS_SPECIFIC_VARS="$OS_SPECIFIC_VARS set AIXTHREAD_SCOPE=S ; export AIXTHREAD_SCOPE"
+        ;;
+    *os390*)
+        OS_SPECIFIC_VARS="export _CEE_RUNOPTS=\"STACK(,,ANY)\" ; export _EDC_ADD_ERRNO2=1"
+        ;;
+    *)
+        OS_SPECIFIC_VARS=""
+esac
+      
+AC_ARG_WITH(port,APACHE_HELP_STRING(--with-port=PORT,Port on which to listen (default is 80)),
         [if test "$withval" = "yes"; then AC_MSG_ERROR('option --with-port requires a value (the TCP port number)'); else PORT="$withval"; fi],
        [PORT=80])
 
-AC_ARG_ENABLE(maintainer-mode,[  --enable-maintainer-mode  Turn on debugging and compile time warnings],
+AC_ARG_ENABLE(maintainer-mode,APACHE_HELP_STRING(--enable-maintainer-mode,Turn on debugging and compile time warnings),
 [
   APR_ADDTO(CPPFLAGS, -DAP_DEBUG)
 ])dnl
 
 APACHE_ENABLE_LAYOUT
+prefix="$orig_prefix"
 APACHE_ENABLE_MODULES
 
 dnl reading config stubs
@@ -229,16 +289,29 @@ APACHE_SUBST(MPM_LIB)
 APACHE_SUBST(OS)
 APACHE_SUBST(OS_DIR)
 APACHE_SUBST(BUILTIN_LIBS)
+APACHE_SUBST(SHLIBPATH_VAR)
+APACHE_SUBST(OS_SPECIFIC_VARS)
 
 PRE_SHARED_CMDS='echo ""'
 POST_SHARED_CMDS='echo ""'
 
+dnl apache_need_shared tells us if Apache modules are being built as DSOs
+
 if test "$apache_need_shared" = "yes"; then
-  $SHELL $ac_aux_dir/ltconfig --output=shlibtool --disable-static --srcdir=$ac_aux_dir --cache-file=./config.cache $ac_aux_dir/ltmain.sh
+  if test -f $ac_aux_dir/ltconfig; then
+    $SHELL $ac_aux_dir/ltconfig --output=shlibtool --disable-static --srcdir=$ac_aux_dir --cache-file=./config.cache $ac_aux_dir/ltmain.sh
+  fi
+  shared_build="shared-build"
+fi
+
+dnl enable_so tells us if *any* modules can be built as DSOs
+
+if test "$enable_so" = "yes"; then
   case $host in
     *-ibm-aix*)
-      HTTPD_LDFLAGS="$HTTPD_LDFLAGS -Wl,-bE:$abs_srcdir/server/httpd.exp"
-      SH_LDFLAGS="$SH_LDFLAGS -Wl,-bI:$abs_srcdir/server/httpd.exp"
+      HTTPD_LDFLAGS="$HTTPD_LDFLAGS -Wl,-uXML_Parse -Wl,-bE:$abs_builddir/server/httpd.exp"
+      SH_LDFLAGS="$SH_LDFLAGS \$(EXTRA_LDFLAGS) \$(EXTRA_LIBS)"
+      UTIL_LDFLAGS="$UTIL_LDFLAGS -Wl,-uXML_Parse"
       ;;
     *beos)
       SH_LDFLAGS='$(top_builddir)/_APP_'
@@ -249,7 +322,6 @@ if test "$apache_need_shared" = "yes"; then
       HTTPD_LDFLAGS="$HTTPD_LDFLAGS --main=$abs_srcdir/server/main.o --core-dll=$abs_srcdir/apachecore.dll"
       SH_LDFLAGS="$SH_LDFLAGS --core-dll=$abs_srcdir/apachecore.dll"
   esac
-  shared_build="shared-build"
 fi
 
 APACHE_SUBST(PRE_SHARED_CMDS)
@@ -257,50 +329,53 @@ APACHE_SUBST(POST_SHARED_CMDS)
 APACHE_SUBST(shared_build)
 
 AC_ARG_WITH(program-name,
-[  --with-program-name     alternate executable name],[
+APACHE_HELP_STRING(--with-program-name,alternate executable name),[
   progname="$withval" ], [
   progname="httpd"] )
 
 # SuExec parameters
+AC_ARG_WITH(suexec-bin,
+APACHE_HELP_STRING(--with-suexec-bin,Path to suexec binary),[
+  AC_DEFINE_UNQUOTED(SUEXEC_BIN, "$withval", [Path to suexec binary] )
+] )
+
 AC_ARG_WITH(suexec-caller,
-[  --with-suexec-caller    User allowed to call SuExec],[
+APACHE_HELP_STRING(--with-suexec-caller,User allowed to call SuExec),[
   AC_DEFINE_UNQUOTED(AP_HTTPD_USER, "$withval", [User allowed to call SuExec] ) ] )
 
 AC_ARG_WITH(suexec-userdir,
-[  --with-suexec-userdir   User subdirectory],[
+APACHE_HELP_STRING(--with-suexec-userdir,User subdirectory),[
   AC_DEFINE_UNQUOTED(AP_USERDIR_SUFFIX, "$withval", [User subdirectory] ) ] )
 
 AC_ARG_WITH(suexec-docroot,
-[  --with-suexec-docroot   SuExec root directory],[
+APACHE_HELP_STRING(--with-suexec-docroot,SuExec root directory),[
   AC_DEFINE_UNQUOTED(AP_DOC_ROOT, "$withval", [SuExec root directory] ) ] )
 
 AC_ARG_WITH(suexec-uidmin,
-[  --with-suexec-uidmin    Minimal allowed UID],[
+APACHE_HELP_STRING(--with-suexec-uidmin,Minimal allowed UID),[
   AC_DEFINE_UNQUOTED(AP_UID_MIN, $withval, [Minimum allowed UID] ) ] )
 
 AC_ARG_WITH(suexec-gidmin,
-[  --with-suexec-gidmin    Minimal allowed GID],[
+APACHE_HELP_STRING(--with-suexec-gidmin,Minimal allowed GID),[
   AC_DEFINE_UNQUOTED(AP_GID_MIN, $withval, [Minimum allowed GID] ) ] )
 
 AC_ARG_WITH(suexec-logfile,
-[  --with-suexec-logfile   Set the logfile],[
+APACHE_HELP_STRING(--with-suexec-logfile,Set the logfile),[
   AC_DEFINE_UNQUOTED(AP_LOG_EXEC, "$withval", [SuExec log file] ) ] )
 
 AC_ARG_WITH(suexec-safepath,
-[  --with-suexec-safepath  Set the safepath],[
+APACHE_HELP_STRING(--with-suexec-safepath,Set the safepath),[
   AC_DEFINE_UNQUOTED(AP_SAFE_PATH, "$withval", [safe shell path for SuExec] ) ] )
 
 AC_ARG_WITH(suexec-umask,
-[  --with-suexec-umask     umask for suexec'd process],[
+APACHE_HELP_STRING(--with-suexec-umask,umask for suexec'd process),[
   AC_DEFINE_UNQUOTED(AP_SUEXEC_UMASK, 0$withval, [umask for suexec'd process] ) ] )
 
-dnl AP_LIB_DIRS specifies the additional libs from srclib/ that we need
 dnl AP_LIBS specifies the actual libraries. note we have some required libs.
 AP_LIBS="$abs_builddir/srclib/pcre/libpcre.la $abs_builddir/srclib/apr-util/libaprutil.la $AP_LIBS"
 
 dnl APR should go after the other libs, so the right symbols can be picked up
 AP_LIBS="$AP_LIBS $abs_builddir/srclib/apr/libapr.la"
-APACHE_SUBST(AP_LIB_DIRS)
 APACHE_SUBST(AP_LIBS)
 
 AC_DEFINE(AP_USING_AUTOCONF, 1,
@@ -311,6 +386,15 @@ if test "$SINGLE_LISTEN_UNSERIALIZED_ACCEPT" = "1"; then
               [This platform doesn't suffer from the thundering herd problem])
 fi
 
+AC_DEFINE_UNQUOTED(AP_SIG_GRACEFUL, SIG$AP_SIG_GRACEFUL, [Signal used to gracefully restart])
+AC_DEFINE_UNQUOTED(AP_SIG_GRACEFUL_STRING, "SIG$AP_SIG_GRACEFUL", [Signal used to gracefully restart (as a quoted string)])
+AC_DEFINE_UNQUOTED(AP_SIG_GRACEFUL_SHORT, $AP_SIG_GRACEFUL, [Signal used to gracefully restart (without SIG prefix)])
+AP_SIG_GRACEFUL_SHORT=$AP_SIG_GRACEFUL
+AP_SIG_GRACEFUL=SIG$AP_SIG_GRACEFUL_SHORT
+AC_SUBST(AP_SIG_GRACEFUL)
+AC_SUBST(AP_SIG_GRACEFUL_STRING)
+AC_SUBST(AP_SIG_GRACEFUL_SHORT)
+
 dnl check for endianness
 if test "$cross_compiling" = "no"; then
   AC_C_BIGENDIAN
@@ -323,9 +407,6 @@ APACHE_FAST_OUTPUT(Makefile modules/Makefile srclib/Makefile)
 APACHE_FAST_OUTPUT(os/beos/Makefile os/os2/Makefile os/Makefile)
 APACHE_FAST_OUTPUT(os/unix/Makefile server/Makefile)
 APACHE_FAST_OUTPUT(support/Makefile srclib/pcre/Makefile)
-for i in $AP_LIB_DIRS; do
-  APACHE_FAST_OUTPUT(srclib/$i/Makefile)
-done
 
 if test -d ./test; then
     APACHE_FAST_OUTPUT(test/Makefile)
@@ -334,6 +415,8 @@ fi
 dnl get the exported vars from APRUTIL
 . ./srclib/apr-util/export_vars.sh
 APR_ADDTO(LIBS, $APRUTIL_EXPORT_LIBS)
+APR_ADDTO(INCLUDES, $APRUTIL_EXPORT_INCLUDES)
+APR_ADDTO(LDFLAGS, $APRUTIL_LDFLAGS)
 AP_LIBS="$AP_LIBS $LIBTOOL_LIBS"
 
 dnl ## Finalize the variables
@@ -381,7 +464,7 @@ case $host in
     ;;
 esac
 
-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,,[
+AC_OUTPUT($APACHE_OUTPUT_FILES 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,,[
   APACHE_GEN_MAKEFILES
 ])