aboutsummaryrefslogtreecommitdiffstats
path: root/configure.ac
diff options
context:
space:
mode:
authorBrian Behlendorf <[email protected]>2010-03-22 14:45:33 -0700
committerBrian Behlendorf <[email protected]>2010-03-22 14:45:33 -0700
commit16b719f0066047aaf404756a0b4fe8c74eec6a2a (patch)
tree054c7b8867d597e02bf3494c75f4c0f5a514d5ba /configure.ac
parentaa600d8a3843755be1dd621ecd00401f26f3bb49 (diff)
Allow spl_config.h to be included by dependant packages (updated)
We need dependent packages to be able to include spl_config.h to build properly. This was partially solved in commit 0cbaeb1 by using AH_BOTTOM to #undef common #defines (PACKAGE, VERSION, etc) which autoconf always adds and cannot be easily removed. This solution works as long as the spl_config.h is included before your projects config.h. That turns out to be easier said than done. In particular, this is a problem when your package includes its config.h using the -include gcc option which ensures the first thing included is your config.h. To handle all cases cleanly I have removed the AH_BOTTOM hack and replaced it with an AC_CONFIG_HEADERS command. This command runs immediately after spl_config.h is written and with a little awk-foo it strips the offending #defines from the file. This eliminates the problem entirely and makes header safe for inclusion. Also in this change I have removed the few places in the code where spl_config.h is included. It is now added to the gcc compile line to ensure the config results are always available. Finally, I have also disabled the verbose kernel builds. If you want them back you can always build with 'make V=1'. Since things are working now they don't need to be on by default.
Diffstat (limited to 'configure.ac')
-rw-r--r--configure.ac8
1 files changed, 5 insertions, 3 deletions
diff --git a/configure.ac b/configure.ac
index ee6866509..4efd1c642 100644
--- a/configure.ac
+++ b/configure.ac
@@ -29,10 +29,12 @@ AC_LANG(C)
SPL_AC_META
AC_CONFIG_AUX_DIR([config])
AC_CANONICAL_SYSTEM
-AM_INIT_AUTOMAKE([$SPL_META_NAME], [$SPL_META_VERSION])
-AC_CONFIG_HEADERS([spl_config.h])
-AH_BOTTOM([#include <spl_unconfig.h>])
AM_MAINTAINER_MODE
+AM_INIT_AUTOMAKE([$SPL_META_NAME], [$SPL_META_VERSION])
+AC_CONFIG_HEADERS([spl_config.h], [
+ (mv spl_config.h spl_config.h.tmp &&
+ awk -f config/config.awk spl_config.h.tmp >spl_config.h &&
+ rm spl_config.h.tmp) || exit 1])
AC_PROG_INSTALL
AC_PROG_CC