diff options
author | Eric Anholt <eric@anholt.net> | 2009-03-13 15:48:40 -0700 |
---|---|---|
committer | Eric Anholt <eric@anholt.net> | 2009-03-13 16:15:44 -0700 |
commit | d9dbdb325543bd747cd1bfb3e1142ea6daf2b637 (patch) | |
tree | a9b1b7f31a834066615ca376a3809b56a111a184 /shave.in | |
parent | c3a82106a1a1a94c9e1e465c7dc0d828c1cbf50d (diff) |
Add shave support, enabled by default.
This cuts down build system noise so that warnings are more visible. The
old style output can be reenabled for build system debugging using
"make V=1", or --disable-shave at configure time.
Diffstat (limited to 'shave.in')
-rw-r--r-- | shave.in | 76 |
1 files changed, 76 insertions, 0 deletions
diff --git a/shave.in b/shave.in new file mode 100644 index 00000000..174641e9 --- /dev/null +++ b/shave.in @@ -0,0 +1,76 @@ +#!/bin/sh + +# we need sed +SED=@SED@ +if test -z "$SED" ; then +SED=sed +fi + +lt_unmangle () +{ + last_result=`echo $1 | $SED -e 's#.libs/##' -e 's#[0-9a-zA-Z_\-\.]*_la-##'` +} + +# the tool to wrap (cc, cxx, ar, ranlib, ..) +tool="$1" +shift + +# the reel tool (to call) +REEL_TOOL="$1" +shift + +pass_through=0 +preserved_args= +while test "$#" -gt 0; do + opt="$1" + shift + + case $opt in + --shave-mode=*) + mode=`echo $opt | $SED -e 's/[-_a-zA-Z0-9]*=//'` + ;; + -o) + lt_output="$1" + preserved_args="$preserved_args $opt" + ;; + *) + preserved_args="$preserved_args $opt" + ;; + esac +done + +# mode=link is handled in the libtool wrapper +case "$mode,$tool" in +link,*) + pass_through=1 + ;; +*,cxx) + Q=" CXX " + ;; +*,cc) + Q=" CC " + ;; +*,fc) + Q=" FC " + ;; +*,f77) + Q=" F77 " + ;; +*,*) + # should not happen + Q=" CC " + ;; +esac + +lt_unmangle "$lt_output" +output=$last_result + +if test -z $V; then + if test $pass_through -eq 0; then + echo "$Q$output" + fi + $REEL_TOOL $preserved_args +else + echo $REEL_TOOL $preserved_args + $REEL_TOOL $preserved_args +fi |