as-scrub-include.m4 1.14 KB
Newer Older
Thomas Vander Stichele's avatar
Thomas Vander Stichele committed
1
dnl as-scrub-include.m4 0.0.4
Thomas Vander Stichele's avatar
Thomas Vander Stichele committed
2 3 4 5 6 7

dnl autostars m4 macro for scrubbing CFLAGS of system include dirs
dnl because gcc 3.x complains about including system including dirs

dnl Thomas Vander Stichele <thomas at apestaart dot org>

Thomas Vander Stichele's avatar
Thomas Vander Stichele committed
8
dnl $Id: as-scrub-include.m4,v 1.7 2004/06/12 08:30:20 thomasvs Exp $
Thomas Vander Stichele's avatar
Thomas Vander Stichele committed
9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31

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
Thomas Vander Stichele's avatar
Thomas Vander Stichele committed
32 33
    dnl use "" as the sed script so $dir gets expanded
    GIVEN_CFLAGS=`echo $GIVEN_CFLAGS | sed -e "s#-I$dir ##"`
Thomas Vander Stichele's avatar
Thomas Vander Stichele committed
34 35 36
  done
  [$1]=$GIVEN_CFLAGS
])