From 57c83f2ced9890f1f8c4c64cd6c0b70f952e6a59 Mon Sep 17 00:00:00 2001 From: Jan Schmidt Date: Wed, 25 Feb 2009 12:07:02 +0000 Subject: [PATCH] Update shave files from shave git --- m4/shave.m4 | 89 +++++++++++++++++++++++++++++++++--------------- shave-libtool.in | 5 ++- shave.in | 22 +++++++----- 3 files changed, 77 insertions(+), 39 deletions(-) diff --git a/m4/shave.m4 b/m4/shave.m4 index 5b1f675..0c2c9f5 100644 --- a/m4/shave.m4 +++ b/m4/shave.m4 @@ -1,40 +1,73 @@ dnl Make automake/libtool output more friendly to humans dnl -dnl SHAVE_INIT([shavedir]) +dnl SHAVE_INIT([shavedir],[default_mode]) dnl -dnl shavedir: the directory where the shave script is, it defaults to +dnl shavedir: the directory where the shave scripts are, it defaults to dnl $(top_builddir) +dnl default_mode: (enable|disable) default shave mode. This parameter +dnl controls shave's behaviour when no option has been +dnl given to configure. It defaults to disable. dnl dnl * SHAVE_INIT should be called late in your configure.(ac|in) file (just -dnl before AC_CONFIG_FILE/AC_OUTPUT is perfect. This macro rewrite CC and +dnl before AC_CONFIG_FILE/AC_OUTPUT is perfect. This macro rewrites CC and dnl LIBTOOL, you don't want the configure tests to have these variables dnl re-defined. dnl * This macro requires GNU make's -s option. -AC_DEFUN([SHAVE_INIT], [ -dnl where can we find the shave scripts? -m4_if([$1],, - [shavedir='$(top_builddir)'], - [shavedir='$(top_builddir)'/$1]) -AC_SUBST(shavedir) -dnl make is now quiet -AC_SUBST([MAKEFLAGS], [-s]) -AC_SUBST([AM_MAKEFLAGS], ['`test -z $V && echo -s`']) -dnl we need sed -AC_CHECK_PROG(SED,sed,sed,false) -dnl substitute libtool -SHAVE_SAVED_LIBTOOL=$LIBTOOL -AC_SUBST(SHAVE_SAVED_LIBTOOL) -LIBTOOL="\$(SHELL) \$(shavedir)/shave-libtool '\$(SHAVE_SAVED_LIBTOOL)'" -AC_SUBST(LIBTOOL) -dnl substitute cc -SHAVE_SAVED_CC=$CC -SHAVE_SAVED_CXX=$CXX -AC_SUBST(SHAVE_SAVED_CC) -AC_SUBST(SHAVE_SAVED_CXX) -CC="\$(SHELL) \$(shavedir)/shave cc '\$(SHAVE_SAVED_CC)'" -CXX="\$(SHELL) \$(shavedir)/shave cxx '\$(SHAVE_SAVED_CXX)'" -AC_SUBST(CC) -AC_SUBST(CXX) +AC_DEFUN([_SHAVE_ARG_ENABLE], +[ + AC_ARG_ENABLE([shave], + AS_HELP_STRING( + [--enable-shave], + [use shave to make the build pretty [[default=$1]]]),, + [enable_shave=$1] + ) +]) + +AC_DEFUN([SHAVE_INIT], +[ + dnl you can tweak the default value of enable_shave + m4_if([$2], [enable], [_SHAVE_ARG_ENABLE(yes)], [_SHAVE_ARG_ENABLE(no)]) + + if test x"$enable_shave" = xyes; then + dnl where can we find the shave scripts? + m4_if([$1],, + [shavedir="$ac_pwd"], + [shavedir="$ac_pwd/$1"]) + AC_SUBST(shavedir) + + dnl make is now quiet + AC_SUBST([MAKEFLAGS], [-s]) + AC_SUBST([AM_MAKEFLAGS], ['`test -z $V && echo -s`']) + + dnl we need sed + AC_CHECK_PROG(SED,sed,sed,false) + + dnl substitute libtool + SHAVE_SAVED_LIBTOOL=$LIBTOOL + LIBTOOL="${SHELL} ${shavedir}/shave-libtool '${SHAVE_SAVED_LIBTOOL}'" + AC_SUBST(LIBTOOL) + + dnl substitute cc/cxx + SHAVE_SAVED_CC=$CC + SHAVE_SAVED_CXX=$CXX + SHAVE_SAVED_FC=$FC + SHAVE_SAVED_F77=$F77 + CC="${SHELL} ${shavedir}/shave cc ${SHAVE_SAVED_CC}" + CXX="${SHELL} ${shavedir}/shave cxx ${SHAVE_SAVED_CXX}" + FC="${SHELL} ${shavedir}/shave fc ${SHAVE_SAVED_FC}" + F77="${SHELL} ${shavedir}/shave f77 ${SHAVE_SAVED_F77}" + AC_SUBST(CC) + AC_SUBST(CXX) + AC_SUBST(FC) + AC_SUBST(F77) + + V=@ + else + V=1 + fi + Q='$(V:1=)' + AC_SUBST(V) + AC_SUBST(Q) ]) diff --git a/shave-libtool.in b/shave-libtool.in index 8c468e2..1f3a720 100644 --- a/shave-libtool.in +++ b/shave-libtool.in @@ -5,11 +5,10 @@ SED=@SED@ if test -z "$SED" ; then SED=sed fi -Xsed="$SED -e s/^X//" lt_unmangle () { - last_result=`echo -n X$1 | $Xsed -e 's#.libs/##' -e 's#[0-9a-zA-Z_]\+_la-##'` + last_result=`echo $1 | $SED -e 's#.libs/##' -e 's#[0-9a-zA-Z_\-\.]*_la-##'` } # the real libtool to use @@ -27,7 +26,7 @@ while test "$#" -gt 0; do case $opt in --mode=*) - mode=`echo "X$opt" | $Xsed -e 's/[-_a-zA-Z0-9]*=//'` + mode=`echo $opt | $SED -e 's/[-_a-zA-Z0-9]*=//'` preserved_args="$preserved_args $opt" ;; -o) diff --git a/shave.in b/shave.in index 97ff947..174641e 100644 --- a/shave.in +++ b/shave.in @@ -5,11 +5,10 @@ SED=@SED@ if test -z "$SED" ; then SED=sed fi -Xsed="$SED -e s/^X//" lt_unmangle () { - last_result=`echo -n X$1 | $Xsed -e 's#.libs/##' -e 's#[0-9a-zA-Z_]\+_la-##'` + last_result=`echo $1 | $SED -e 's#.libs/##' -e 's#[0-9a-zA-Z_\-\.]*_la-##'` } # the tool to wrap (cc, cxx, ar, ranlib, ..) @@ -28,7 +27,7 @@ while test "$#" -gt 0; do case $opt in --shave-mode=*) - mode=`echo "X$opt" | $Xsed -e 's/[-_a-zA-Z0-9]*=//'` + mode=`echo $opt | $SED -e 's/[-_a-zA-Z0-9]*=//'` ;; -o) lt_output="$1" @@ -45,13 +44,20 @@ case "$mode,$tool" in link,*) pass_through=1 ;; -compile,cxx) +*,cxx) Q=" CXX " ;; -compile,cc|*,*) - # no "libtool" mode has been given, we are called by the Makefile: - # -> assume compilation - mode=compile +*,cc) + Q=" CC " + ;; +*,fc) + Q=" FC " + ;; +*,f77) + Q=" F77 " + ;; +*,*) + # should not happen Q=" CC " ;; esac -- 2.34.1