#!/bin/sh # # Copyright (c) 2009, Damien Lespiau # # Permission is hereby granted, free of charge, to any person # obtaining a copy of this software and associated documentation # files (the "Software"), to deal in the Software without # restriction, including without limitation the rights to use, # copy, modify, merge, publish, distribute, sublicense, and/or sell # copies of the Software, and to permit persons to whom the # Software is furnished to do so, subject to the following # conditions: # # The above copyright notice and this permission notice shall be # included in all copies or substantial portions of the Software. # # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, # EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES # OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND # NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT # HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, # WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING # FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR # OTHER DEALINGS IN THE SOFTWARE. # 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 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= # have we seen the --tag option of libtool in the command line ? tag_seen=0 while test "$#" -gt 0; do opt="$1" shift case $opt in --mode=*) mode=`echo $opt | $SED -e 's/[-_a-zA-Z0-9]*=//'` preserved_args="$preserved_args $opt" ;; -o) lt_output="$1" preserved_args="$preserved_args $opt" ;; --tag=*) tag_seen=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 # automake does not add a --tag switch to its libtool invocation when # assembling a .s file and rely on libtool to infer the right action based # on the compiler name. As shave is using CC to hook a wrapper, libtool gets # confused. Let's detect these cases and add a --tag=CC option. tag="" if test $tag_seen -eq 0 -a x"$mode" = xcompile; then tag="--tag=CC" fi if test -z $V; then if test $pass_though -eq 0; then echo "$Q$output" fi $LIBTOOL --silent $tag $preserved_args else echo $LIBTOOL $tag $preserved_args $LIBTOOL $tag $preserved_args fi