summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKaspar Brand <kbrand@apache.org>2012-09-16 08:19:13 +0200
committerKaspar Brand <kbrand@apache.org>2012-09-16 08:19:13 +0200
commit089f0eb0ac7b1ef567ef5e3c0e2b953624dc0569 (patch)
tree009d5a6f579fb91810b5338d5bb6c215a9fc4902
parentrevert r1385214, as I inadvertently left out acinclude.m4. (diff)
downloadapache2-089f0eb0ac7b1ef567ef5e3c0e2b953624dc0569.tar.xz
apache2-089f0eb0ac7b1ef567ef5e3c0e2b953624dc0569.zip
Spin off module-specific build options into separate build vars.
[second try, supersedes r1385214] Add MOD_CFLAGS, MOD_LDFLAGS variables etc. to the build commands, which are available to modules for customization on a per-subdir basis (by adding definitions to modules.mk). Reduces the risk of side-effects when a module needs to add CFLAGS, LDFLAGS etc. and these would be added to the global settings (ALL_CFLAGS etc.). Adapt build settings for mod_ssl, mod_socache_dc, mod_deflate, mod_xml2enc, mod_proxy_html, and mod_lua to use the new MOD_xxx build variables. Change PICFLAGS, SHLTCFLAGS and LTCFLAGS into config vars, instead of AC_SUBSTing them in build/rules.mk.in. For support/ab, introduce ab_CFLAGS and ab_LDFLAGS, and define explicit make targets where they appear at the proper position in the build commands. Consistently use "--with-xxx=PATH" in configure help strings which are used to specify a path to the installation directory of an auxiliary package. git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1385216 13f79535-47bb-0310-9956-ffa450edef68
-rw-r--r--acinclude.m438
-rw-r--r--build/rules.mk.in29
-rw-r--r--configure.in4
-rw-r--r--modules/cache/config.m44
-rw-r--r--modules/filters/config.m411
-rw-r--r--modules/lua/config.m44
-rw-r--r--modules/ssl/config.m43
-rw-r--r--support/Makefile.in8
8 files changed, 62 insertions, 39 deletions
diff --git a/acinclude.m4 b/acinclude.m4
index 78495a8e13..444f385e19 100644
--- a/acinclude.m4
+++ b/acinclude.m4
@@ -149,12 +149,20 @@ AC_DEFUN(APACHE_TYPE_RLIM_T, [
fi
])
+dnl the list of build variables which are available for customization on a
+dnl per module subdir basis (to be inserted into modules.mk with a "MOD_"
+dnl prefix, i.e. MOD_CFLAGS etc.). Used in APACHE_MODPATH_{INIT,FINISH}.
+define(mod_buildvars, [CFLAGS CXXFLAGS CPPFLAGS LDFLAGS LIBS INCLUDES])
+dnl
dnl APACHE_MODPATH_INIT(modpath)
AC_DEFUN(APACHE_MODPATH_INIT,[
current_dir=$1
modpath_current=modules/$1
modpath_static=
modpath_shared=
+ for var in mod_buildvars; do
+ eval MOD_$var=
+ done
test -d $1 || $srcdir/build/mkdir.sh $modpath_current
> $modpath_current/modules.mk
])dnl
@@ -163,6 +171,11 @@ AC_DEFUN(APACHE_MODPATH_FINISH,[
echo "DISTCLEAN_TARGETS = modules.mk" >> $modpath_current/modules.mk
echo "static = $modpath_static" >> $modpath_current/modules.mk
echo "shared = $modpath_shared" >> $modpath_current/modules.mk
+ for var in mod_buildvars; do
+ if eval val=\"\$MOD_$var\"; test -n "$val"; then
+ echo "MOD_$var = $val" >> $modpath_current/modules.mk
+ fi
+ done
if test ! -z "$modpath_static" -o ! -z "$modpath_shared"; then
MODULE_DIRS="$MODULE_DIRS $current_dir"
else
@@ -480,7 +493,7 @@ AC_DEFUN(APACHE_CHECK_OPENSSL,[
dnl Determine the OpenSSL base directory, if any
AC_MSG_CHECKING([for user-provided OpenSSL base directory])
- AC_ARG_WITH(ssl, APACHE_HELP_STRING(--with-ssl=DIR,OpenSSL base directory), [
+ AC_ARG_WITH(ssl, APACHE_HELP_STRING(--with-ssl=PATH,OpenSSL installation directory), [
dnl If --with-ssl specifies a directory, we use that directory
if test "x$withval" != "xyes" -a "x$withval" != "x"; then
dnl This ensures $withval is actually a directory and that it is absolute
@@ -497,7 +510,6 @@ AC_DEFUN(APACHE_CHECK_OPENSSL,[
saved_CPPFLAGS="$CPPFLAGS"
saved_LIBS="$LIBS"
saved_LDFLAGS="$LDFLAGS"
- SSL_LIBS=""
dnl Before doing anything else, load in pkg-config variables
if test -n "$PKGCONFIG"; then
@@ -514,10 +526,11 @@ AC_DEFUN(APACHE_CHECK_OPENSSL,[
ap_openssl_found="yes"
pkglookup="`$PKGCONFIG --cflags-only-I openssl`"
APR_ADDTO(CPPFLAGS, [$pkglookup])
- APR_ADDTO(INCLUDES, [$pkglookup])
+ APR_ADDTO(MOD_CFLAGS, [$pkglookup])
+ APR_ADDTO(ab_CFLAGS, [$pkglookup])
pkglookup="`$PKGCONFIG --libs-only-L --libs-only-other openssl`"
APR_ADDTO(LDFLAGS, [$pkglookup])
- APR_ADDTO(SSL_LIBS, [$pkglookup])
+ APR_ADDTO(MOD_LDFLAGS, [$pkglookup])
fi
PKG_CONFIG_PATH="$saved_PKG_CONFIG_PATH"
fi
@@ -525,12 +538,13 @@ AC_DEFUN(APACHE_CHECK_OPENSSL,[
dnl fall back to the user-supplied directory if not found via pkg-config
if test "x$ap_openssl_base" != "x" -a "x$ap_openssl_found" = "x"; then
APR_ADDTO(CPPFLAGS, [-I$ap_openssl_base/include])
- APR_ADDTO(INCLUDES, [-I$ap_openssl_base/include])
+ APR_ADDTO(MOD_CFLAGS, [-I$ap_openssl_base/include])
+ APR_ADDTO(ab_CFLAGS, [-I$ap_openssl_base/include])
APR_ADDTO(LDFLAGS, [-L$ap_openssl_base/lib])
- APR_ADDTO(SSL_LIBS, [-L$ap_openssl_base/lib])
+ APR_ADDTO(MOD_LDFLAGS, [-L$ap_openssl_base/lib])
if test "x$ap_platform_runtime_link_flag" != "x"; then
APR_ADDTO(LDFLAGS, [$ap_platform_runtime_link_flag$ap_openssl_base/lib])
- APR_ADDTO(SSL_LIBS, [$ap_platform_runtime_link_flag$ap_openssl_base/lib])
+ APR_ADDTO(MOD_LDFLAGS, [$ap_platform_runtime_link_flag$ap_openssl_base/lib])
fi
fi
@@ -548,9 +562,11 @@ AC_DEFUN(APACHE_CHECK_OPENSSL,[
if test "x$ac_cv_openssl" = "xyes"; then
ap_openssl_libs="-lssl -lcrypto `$apr_config --libs`"
- APR_ADDTO(SSL_LIBS, [$ap_openssl_libs])
+ APR_ADDTO(MOD_LDFLAGS, [$ap_openssl_libs])
APR_ADDTO(LIBS, [$ap_openssl_libs])
- APACHE_SUBST(SSL_LIBS)
+ APR_SETVAR(ab_LDFLAGS, [$MOD_LDFLAGS])
+ APACHE_SUBST(ab_CFLAGS)
+ APACHE_SUBST(ab_LDFLAGS)
dnl Run library and function checks
liberrors=""
@@ -585,7 +601,7 @@ AC_DEFUN([APACHE_CHECK_SERF], [
ac_cv_serf=no
serf_prefix=/usr
SERF_LIBS=""
- AC_ARG_WITH(serf, APACHE_HELP_STRING([--with-serf=PREFIX],
+ AC_ARG_WITH(serf, APACHE_HELP_STRING([--with-serf=PATH],
[Serf client library]),
[
if test "$withval" = "yes" ; then
@@ -611,7 +627,7 @@ AC_DEFUN([APACHE_CHECK_SERF], [
if test "$ac_cv_serf" = "yes"; then
AC_DEFINE(HAVE_SERF, 1, [Define if libserf is available])
APR_SETVAR(SERF_LIBS, [-L$serf_prefix/lib -lserf-0])
- APR_ADDTO(INCLUDES, [-I$serf_prefix/include/serf-0])
+ APR_ADDTO(MOD_INCLUDES, [-I$serf_prefix/include/serf-0])
fi
])
diff --git a/build/rules.mk.in b/build/rules.mk.in
index 3dedb9a3cb..a1804fa9c5 100644
--- a/build/rules.mk.in
+++ b/build/rules.mk.in
@@ -22,31 +22,34 @@
# the user-defined flags can always override the configure ones, if needed.
# Note that includes are listed after the flags because -I options have
# left-to-right precedence and CPPFLAGS may include user-defined overrides.
+# The "MOD_" prefixed variable are provided to allow modules to insert their
+# (per-subdirectory) settings through definitions in modules.mk, with highest
+# precedence.
#
-ALL_CFLAGS = $(EXTRA_CFLAGS) $(NOTEST_CFLAGS) $(CFLAGS)
-ALL_CPPFLAGS = $(DEFS) $(INTERNAL_CPPFLAGS) $(EXTRA_CPPFLAGS) $(NOTEST_CPPFLAGS) $(CPPFLAGS)
-ALL_CXXFLAGS = $(EXTRA_CXXFLAGS) $(NOTEST_CXXFLAGS) $(CXXFLAGS)
-ALL_LDFLAGS = $(EXTRA_LDFLAGS) $(NOTEST_LDFLAGS) $(LDFLAGS)
-ALL_LIBS = $(EXTRA_LIBS) $(NOTEST_LIBS) $(LIBS)
-ALL_INCLUDES = $(INCLUDES) $(EXTRA_INCLUDES)
+ALL_CFLAGS = $(MOD_CFLAGS) $(EXTRA_CFLAGS) $(NOTEST_CFLAGS) $(CFLAGS)
+ALL_CPPFLAGS = $(DEFS) $(INTERNAL_CPPFLAGS) $(MOD_CPPFLAGS) $(EXTRA_CPPFLAGS) $(NOTEST_CPPFLAGS) $(CPPFLAGS)
+ALL_CXXFLAGS = $(MOD_CXXFLAGS) $(EXTRA_CXXFLAGS) $(NOTEST_CXXFLAGS) $(CXXFLAGS)
+ALL_LDFLAGS = $(MOD_LDFLAGS) $(EXTRA_LDFLAGS) $(NOTEST_LDFLAGS) $(LDFLAGS)
+ALL_LIBS = $(MOD_LIBS) $(EXTRA_LIBS) $(NOTEST_LIBS) $(LIBS)
+ALL_INCLUDES = $(MOD_INCLUDES) $(INCLUDES) $(EXTRA_INCLUDES)
# Compile commands
BASE_CC = $(CC) $(ALL_CFLAGS) $(ALL_CPPFLAGS) $(ALL_INCLUDES)
BASE_CXX = $(CXX) $(ALL_CXXFLAGS) $(ALL_CPPFLAGS) $(ALL_INCLUDES)
-COMPILE = $(BASE_CC) @PICFLAGS@
-CXX_COMPILE = $(BASE_CXX) @PICFLAGS@
+COMPILE = $(BASE_CC) $(PICFLAGS)
+CXX_COMPILE = $(BASE_CXX) $(PICFLAGS)
-SH_COMPILE = $(LIBTOOL) --mode=compile $(BASE_CC) @SHLTCFLAGS@ -c $< && touch $@
-SH_CXX_COMPILE = $(LIBTOOL) --mode=compile $(BASE_CXX) @SHLTCFLAGS@ -c $< && touch $@
+SH_COMPILE = $(LIBTOOL) --mode=compile $(BASE_CC) $(SHLTCFLAGS) -c $< && touch $@
+SH_CXX_COMPILE = $(LIBTOOL) --mode=compile $(BASE_CXX) $(SHLTCFLAGS) -c $< && touch $@
-LT_COMPILE = $(LIBTOOL) --mode=compile $(COMPILE) @LTCFLAGS@ -c $< && touch $@
-LT_CXX_COMPILE = $(LIBTOOL) --mode=compile $(CXX_COMPILE) @LTCFLAGS@ -c $< && touch $@
+LT_COMPILE = $(LIBTOOL) --mode=compile $(COMPILE) $(LTCFLAGS) -c $< && touch $@
+LT_CXX_COMPILE = $(LIBTOOL) --mode=compile $(CXX_COMPILE) $(LTCFLAGS) -c $< && touch $@
# Link-related commands
-LINK = $(LIBTOOL) --mode=link $(CC) $(ALL_CFLAGS) @PILDFLAGS@ $(LT_LDFLAGS) $(ALL_LDFLAGS) -o $@
+LINK = $(LIBTOOL) --mode=link $(CC) $(ALL_CFLAGS) $(PILDFLAGS) $(LT_LDFLAGS) $(ALL_LDFLAGS) -o $@
SH_LINK = $(SH_LIBTOOL) --mode=link $(CC) $(ALL_CFLAGS) $(LT_LDFLAGS) $(ALL_LDFLAGS) $(SH_LDFLAGS) $(CORE_IMPLIB) $(SH_LIBS) -o $@
MOD_LINK = $(LIBTOOL) --mode=link $(CC) $(ALL_CFLAGS) -static $(LT_LDFLAGS) $(ALL_LDFLAGS) -o $@
diff --git a/configure.in b/configure.in
index 4ae175106b..c4c17591ce 100644
--- a/configure.in
+++ b/configure.in
@@ -644,8 +644,8 @@ if test "$enable_pie" = "yes"; then
AC_ERROR([--enable-pie requested but $CC failed using PIE flags])
fi
fi
-AC_SUBST(PICFLAGS)
-AC_SUBST(PILDFLAGS)
+APACHE_SUBST(PICFLAGS)
+APACHE_SUBST(PILDFLAGS)
prefix="$orig_prefix"
APACHE_ENABLE_MODULES
diff --git a/modules/cache/config.m4 b/modules/cache/config.m4
index 2fe41e1a36..5647e89b5b 100644
--- a/modules/cache/config.m4
+++ b/modules/cache/config.m4
@@ -42,7 +42,7 @@ if test "x$ap_distcache_configured" = "x"; then
dnl Determine the distcache base directory, if any
AC_MSG_CHECKING([for user-provided distcache base])
- AC_ARG_WITH(distcache, APACHE_HELP_STRING(--with-distcache=DIR, Distcache installation directory), [
+ AC_ARG_WITH(distcache, APACHE_HELP_STRING(--with-distcache=PATH, Distcache installation directory), [
dnl If --with-distcache specifies a directory, we use that directory or fail
if test "x$withval" != "xyes" -a "x$withval" != "x"; then
dnl This ensures $withval is actually a directory and that it is absolute
@@ -63,7 +63,7 @@ if test "x$ap_distcache_configured" = "x"; then
if test "x$ap_distcache_base" != "x"; then
APR_ADDTO(CPPFLAGS, [-I$ap_distcache_base/include])
- APR_ADDTO(INCLUDES, [-I$ap_distcache_base/include])
+ APR_ADDTO(MOD_INCLUDES, [-I$ap_distcache_base/include])
APR_ADDTO(LDFLAGS, [-L$ap_distcache_base/lib])
APR_ADDTO(ap_distcache_ldflags, [-L$ap_distcache_base/lib])
if test "x$ap_platform_runtime_link_flag" != "x"; then
diff --git a/modules/filters/config.m4 b/modules/filters/config.m4
index 966f77a551..abcec1bdf7 100644
--- a/modules/filters/config.m4
+++ b/modules/filters/config.m4
@@ -34,7 +34,7 @@ fi
APACHE_MODULE(deflate, Deflate transfer encoding support, , , most, [
- AC_ARG_WITH(z, APACHE_HELP_STRING(--with-z=DIR,use a specific zlib library),
+ AC_ARG_WITH(z, APACHE_HELP_STRING(--with-z=PATH,use a specific zlib library),
[
if test "x$withval" != "xyes" && test "x$withval" != "x"; then
ap_zlib_base="$withval"
@@ -66,6 +66,7 @@ APACHE_MODULE(deflate, Deflate transfer encoding support, , , most, [
ap_zlib_ldflags=""
if test "$ap_zlib_base" != "/usr"; then
APR_ADDTO(INCLUDES, [-I${ap_zlib_base}/include])
+ APR_ADDTO(MOD_INCLUDES, [-I${ap_zlib_base}/include])
dnl put in CPPFLAGS temporarily so that AC_TRY_LINK below will work
CPPFLAGS="$CPPFLAGS $INCLUDES"
APR_ADDTO(LDFLAGS, [-L${ap_zlib_base}/lib])
@@ -82,13 +83,13 @@ APACHE_MODULE(deflate, Deflate transfer encoding support, , , most, [
APR_ADDTO(MOD_DEFLATE_LDADD, [$ap_zlib_ldflags -lz])],
[AC_MSG_RESULT(not found)
enable_deflate=no
- INCLUDES=$ap_save_includes
if test "x$ap_zlib_with" = "x"; then
AC_MSG_WARN([... Error, zlib was missing or unusable])
else
AC_MSG_ERROR([... Error, zlib was missing or unusable])
fi
])
+ INCLUDES=$ap_save_includes
LDFLAGS=$ap_save_ldflags
CPPFLAGS=$ap_save_cppflags
APR_REMOVEFROM(LIBS, [-lz])
@@ -98,7 +99,7 @@ APACHE_MODULE(deflate, Deflate transfer encoding support, , , most, [
AC_DEFUN(FIND_LIBXML2, [
AC_CACHE_CHECK([for libxml2], [ac_cv_libxml2], [
AC_ARG_WITH(libxml2,
- [APACHE_HELP_STRING(--with-libxml2,location for libxml2)],
+ [APACHE_HELP_STRING(--with-libxml2=PATH,location for libxml2)],
[test_paths="${with_libxml2}"],
[test_paths="/usr/include/libxml2 /usr/local/include/libxml2 /usr/include /usr/local/include"]
)
@@ -122,7 +123,7 @@ AC_DEFUN(FIND_LIBXML2, [
APACHE_MODULE(xml2enc, i18n support for markup filters, , , , [
FIND_LIBXML2
if test "$ac_cv_libxml2" = "yes" ; then
- APR_ADDTO(CFLAGS, [-I${XML2_INCLUDES}])
+ APR_ADDTO(MOD_CFLAGS, [-I${XML2_INCLUDES}])
APR_ADDTO(MOD_XML2ENC_LDADD, [-lxml2])
else
enable_xml2enc=no
@@ -131,7 +132,7 @@ APACHE_MODULE(xml2enc, i18n support for markup filters, , , , [
APACHE_MODULE(proxy_html, Fix HTML Links in a Reverse Proxy, , , , [
FIND_LIBXML2
if test "$ac_cv_libxml2" = "yes" ; then
- APR_ADDTO(CFLAGS, [-I${XML2_INCLUDES}])
+ APR_ADDTO(MOD_CFLAGS, [-I${XML2_INCLUDES}])
APR_ADDTO(MOD_PROXY_HTML_LDADD, [-lxml2])
else
enable_proxy_html=no
diff --git a/modules/lua/config.m4 b/modules/lua/config.m4
index c70c5af930..d7d7c7667b 100644
--- a/modules/lua/config.m4
+++ b/modules/lua/config.m4
@@ -128,7 +128,7 @@ else
AC_MSG_NOTICE([using '${LUA_LIBS}' for Lua Library])
AC_ARG_ENABLE(luajit,
APACHE_HELP_STRING(--enable-luajit,Enable LuaJit Support),
- APR_ADDTO(CPPFLAGS, ["-DAP_ENABLE_LUAJIT"]))
+ APR_ADDTO(MOD_CPPFLAGS, ["-DAP_ENABLE_LUAJIT"]))
ifelse([$1], , , $1)
fi
])
@@ -138,7 +138,7 @@ lua_objects="lua_apr.lo lua_config.lo mod_lua.lo lua_request.lo lua_vmprep.lo"
APACHE_MODULE(lua, Apache Lua Framework, $lua_objects, , , [
CHECK_LUA()
if test "x$enable_lua" != "xno" ; then
- APR_ADDTO(INCLUDES, [$LUA_CFLAGS])
+ APR_ADDTO(MOD_INCLUDES, [$LUA_CFLAGS])
APR_ADDTO(MOD_LUA_LDADD, [$LUA_LIBS])
fi
])
diff --git a/modules/ssl/config.m4 b/modules/ssl/config.m4
index 1ee122e232..8c4f7d6855 100644
--- a/modules/ssl/config.m4
+++ b/modules/ssl/config.m4
@@ -40,11 +40,10 @@ dnl # hook module into the Autoconf mechanism (--enable-ssl option)
APACHE_MODULE(ssl, [SSL/TLS support (mod_ssl)], $ssl_objs, , most, [
APACHE_CHECK_OPENSSL
if test "$ac_cv_openssl" = "yes" ; then
- APR_ADDTO(MOD_SSL_LDADD, [\$(SSL_LIBS)])
if test "x$enable_ssl" = "xshared"; then
# The only symbol which needs to be exported is the module
# structure, so ask libtool to hide everything else:
- APR_ADDTO(MOD_SSL_LDADD, [-export-symbols-regex ssl_module])
+ APR_ADDTO(MOD_LDFLAGS, [-export-symbols-regex ssl_module])
fi
else
enable_ssl=no
diff --git a/support/Makefile.in b/support/Makefile.in
index 043fd147fa..cef8f00368 100644
--- a/support/Makefile.in
+++ b/support/Makefile.in
@@ -57,9 +57,13 @@ htdbm: $(htdbm_OBJECTS)
$(LINK) $(htdbm_LTFLAGS) $(htdbm_OBJECTS) $(PROGRAM_LDADD) $(CRYPT_LIBS)
ab_OBJECTS = ab.lo
-ab_LDADD = $(PROGRAM_LDADD) $(SSL_LIBS) $(MATH_LIBS)
+ab_LDADD = $(PROGRAM_LDADD) $(MATH_LIBS)
+ab.lo: ab.c
+ $(LIBTOOL) --mode=compile $(CC) $(ab_CFLAGS) $(ALL_CFLAGS) $(ALL_CPPFLAGS) \
+ $(ALL_INCLUDES) $(PICFLAGS) $(LTCFLAGS) -c $< && touch $@
ab: $(ab_OBJECTS)
- $(LINK) $(ab_LTFLAGS) $(ab_OBJECTS) $(ab_LDADD)
+ $(LIBTOOL) --mode=link $(CC) $(ALL_CFLAGS) $(ab_LDFLAGS) $(PILDFLAGS) \
+ $(LT_LDFLAGS) $(ALL_LDFLAGS) -o $@ $(ab_LTFLAGS) $(ab_OBJECTS) $(ab_LDADD)
checkgid_OBJECTS = checkgid.lo
checkgid: $(checkgid_OBJECTS)