summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Vander Stichele <thomas@apestaart.org>2002-10-19 14:30:49 +0000
committerThomas Vander Stichele <thomas@apestaart.org>2002-10-19 14:30:49 +0000
commit1ca7d9a20180cab830f4383cde5ba932338e50b1 (patch)
tree89bc64eb4e370c8ee01603da6593e8c83f8442cb
parentcd050468e0d9e0d1b9134eb3081e2ab3228f0c01 (diff)
Original commit message from CVS: macro to scrub CFLAGS
-rw-r--r--m4/as-scrub-include.m433
1 files changed, 33 insertions, 0 deletions
diff --git a/m4/as-scrub-include.m4 b/m4/as-scrub-include.m4
new file mode 100644
index 0000000..f559ee8
--- /dev/null
+++ b/m4/as-scrub-include.m4
@@ -0,0 +1,33 @@
+dnl as-scrub-include.m4 0.0.1
+dnl autostars m4 macro for scrubbing CFLAGS of system include dirs
+dnl because gcc 3.x complains about including system including dirs
+dnl
+dnl thomas@apestaart.org
+dnl
+dnl This macro uses output of cpp -v and expects it to contain text that
+dnl looks a little bit like this:
+dnl #include <...> search starts here:
+dnl /usr/local/include
+dnl /usr/lib/gcc-lib/i386-redhat-linux/3.2/include
+dnl /usr/include
+dnl End of search list.
+
+dnl AS_SCRUB_INCLUDE(VAR)
+dnl example
+dnl AS_SCRUB_INCLUDE(CFLAGS)
+dnl will remove all system include dirs from the given CFLAGS
+
+AC_DEFUN(AS_SCRUB_INCLUDE,
+[
+ GIVEN_CFLAGS=$[$1]
+ INCLUDE_DIRS=`echo | cpp -v 2>&1`
+
+ dnl remove everything from this output between the "starts here" and "End of"
+ dnl line
+ INCLUDE_DIRS=`echo $INCLUDE_DIRS | sed -e 's/.*<...> search starts here://' | sed -e 's/End of search list.*//'`
+ for dir in $INCLUDE_DIRS; do
+ command="sed -e s#-I$dir##"
+ GIVEN_CFLAGS=`echo $GIVEN_CFLAGS | $command`
+ done
+ [$1]=$GIVEN_CFLAGS
+])