diff options
author | Hubert Figuiere <hub@figuiere.net> | 2009-02-20 17:41:23 -0500 |
---|---|---|
committer | Hubert Figuiere <hub@figuiere.net> | 2009-02-20 17:41:23 -0500 |
commit | 8a9f6fbad4cff7d38abf7e07809a2529bcd4a226 (patch) | |
tree | 0e7ec7a22bf3bbc1357407396d577ae0daf32f5d | |
parent | 094f5a3423ffd2b7d285067e530a1888b3e9b51c (diff) |
- NEW: add shave to the build system for saner output.
-rw-r--r-- | .gitignore | 6 | ||||
-rw-r--r-- | ChangeLog | 8 | ||||
-rw-r--r-- | NEWS | 1 | ||||
-rw-r--r-- | configure.in | 6 | ||||
-rw-r--r-- | m4/shave.m4 | 40 | ||||
-rw-r--r-- | shave-libtool.in | 70 | ||||
-rw-r--r-- | shave.in | 70 |
7 files changed, 200 insertions, 1 deletions
@@ -18,6 +18,7 @@ config.sub config.log config.status config.h.in +config.h configure autogen.err missing @@ -25,11 +26,16 @@ ltmain.sh libtool install-sh depcomp +shave +shave-libtool *.pc demo/ccfa demo/cfa demo/gdk +demo/extensions +demo/pixbufload lib/io/teststream test/ljpegtest testsuite/testsuitetags.h testsuite/testsuitetags.cpp +testsuite/testsuite @@ -1,3 +1,11 @@ +2009-02-20 Hubert Figuiere <hub@figuiere.net> + + * configure.in: + * m4/shave.m4: + * shave-libtool.in: + * shave.in: + Add shave to make the build output saner. + 2008-10-27 Hubert Figuiere <hub@figuiere.net> * lib/ljpegdecompressor.cpp: Add needed includes @@ -19,6 +19,7 @@ libopenraw 0.0.6 - NEW: testsuite can be overridden with an override file. - NEW: testsuite can be bootstrapped to download its files off the internet. + - NEW: add shave to the build system for saner output. - TODO: apply the coefficients. libopenraw 0.0.5 diff --git a/configure.in b/configure.in index dd3cd07..d51ca7a 100644 --- a/configure.in +++ b/configure.in @@ -4,6 +4,7 @@ dnl written by Hubert Figuiere AC_PREREQ(2.50) AC_INIT(include/libopenraw/libopenraw.h) AM_CONFIG_HEADER(config.h) +AC_CONFIG_MACRO_DIR([m4]) AM_INIT_AUTOMAKE(libopenraw, 0.0.6) AM_MAINTAINER_MODE @@ -107,7 +108,7 @@ PKG_CHECK_MODULES(LIBXML, libxml-2.0 >= 2.5.0) PKG_CHECK_MODULES(CURL, libcurl, [AC_DEFINE(HAVE_CURL, 1, [Define to 1 to enable CURL support for testsuite]) HAVE_CURL=yes], - [HAVE_CURL=bo]) + [HAVE_CURL=no]) # dnl do we want GNOME ? @@ -160,9 +161,12 @@ CXXFLAGS="$CXXFLAGS -ansi -pedantic -g -Wall -Wshadow" CFLAGS="$CFLAGS -pedantic -g -Wall" +SHAVE_INIT AC_OUTPUT([ Makefile +shave +shave-libtool include/Makefile include/libopenraw/Makefile include/libopenraw++/Makefile diff --git a/m4/shave.m4 b/m4/shave.m4 new file mode 100644 index 0000000..5b1f675 --- /dev/null +++ b/m4/shave.m4 @@ -0,0 +1,40 @@ +dnl Make automake/libtool output more friendly to humans +dnl +dnl SHAVE_INIT([shavedir]) +dnl +dnl shavedir: the directory where the shave script is, it defaults to +dnl $(top_builddir) +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 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) +]) + diff --git a/shave-libtool.in b/shave-libtool.in new file mode 100644 index 0000000..02de5ad --- /dev/null +++ b/shave-libtool.in @@ -0,0 +1,70 @@ +#!/bin/sh + +# we need sed +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##'` +} + +# the real libtool to use +LIBTOOL="$1" +shift + +# if 1, don't print anything, the underlaying wrapper will do it +pass_though=0 + +# scan the arguments, keep the right ones for libtool, and discover the mode +preserved_args= +while test "$#" -gt 0; do + opt="$1" + shift + + case $opt in + --mode=*) + mode=`echo "X$opt" | $Xsed -e 's/[-_a-zA-Z0-9]*=//'` + preserved_args="$preserved_args $opt" + ;; + -o) + lt_output="$1" + preserved_args="$preserved_args $opt" + ;; + *) + preserved_args="$preserved_args $opt" + ;; + esac +done + +case "$mode" in +compile) + # shave will be called and print the actual CC/CXX/LINK line + preserved_args="$preserved_args --shave-mode=$mode" + pass_though=1 + ;; +link) + preserved_args="$preserved_args --shave-mode=$mode" + Q=" LINK " + ;; +*) + # let's u + # echo "*** libtool: Unimplemented mode: $mode, fill a bug report" + ;; +esac + +lt_unmangle "$lt_output" +output=$last_result + +if test -z $V; then + if test $pass_though -eq 0; then + echo "$Q$output" + fi + $LIBTOOL --silent $preserved_args +else + echo $LIBTOOL $preserved_args + $LIBTOOL $preserved_args +fi diff --git a/shave.in b/shave.in new file mode 100644 index 0000000..487596e --- /dev/null +++ b/shave.in @@ -0,0 +1,70 @@ +#!/bin/sh + +# we need sed +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##'` +} + +# 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 "X$opt" | $Xsed -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 + ;; +compile,cxx) + Q=" CXX " + ;; +compile,cc|*,*) + # no "libtool" mode has been given, we are called by the Makefile: + # -> assume compilation + mode=compile + 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 |