Wolfgang ThallerUpdate gcc to 5.2.041040e111 years agoHistory
107 lines · 3.4 KB · Text
RawDownload
#! /bin/sh # Script to translate LDFLAGS into a form suitable for use with libtool. # Copyright (C) 2005-2014 Free Software Foundation, Inc.## This file is free software; you can redistribute it and/or modify# it under the terms of the GNU General Public License as published by# the Free Software Foundation; either version 2 of the License, or# (at your option) any later version.# # This program is distributed in the hope that it will be useful,# but WITHOUT ANY WARRANTY; without even the implied warranty of# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the# GNU General Public License for more details.# # You should have received a copy of the GNU General Public License# along with this program; if not, write to the Free Software# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, # MA 02110-1301, USA.  # Contributed by CodeSourcery, LLC. # This script is designed to be used from a Makefile that uses libtool# to build libraries as follows: ##   LTLDFLAGS = $(shell libtool-ldflags $(LDFLAGS))## Then, use (LTLDFLAGS) in place of $(LDFLAGS) in your link line. # The output of the script.  This string is built up as we process the# arguments.result=prev_arg= for argdo    case $arg in	-f*|--*|-static-lib*|-shared-lib*|-B*)	    # Libtool does not ascribe any special meaning options	    # that begin with -f or with a double-dash.  So, it will	    # think these options are linker options, and prefix them	    # with "-Wl,".  Then, the compiler driver will ignore the	    # options.  So, we prefix these options with -Xcompiler to	    # make clear to libtool that they are in fact compiler	    # options.  Similarly for e.g. -static-libstdc++, or	    # -B/some/path.	    case $prev_arg in		-Xpreprocessor|-Xcompiler|-Xlinker)		    # This option is already prefixed; don't prefix it again.		    ;;		*)		    result="$result -Xcompiler"		    ;;	    esac	    ;;	*)	    # We do not want to add -Xcompiler to other options because	    # that would prevent libtool itself from recognizing them.	    ;;    esac    prev_arg=$arg     # If $(LDFLAGS) is (say):    #   a "b'c d" e    # then the user expects that:    #   $(LD) $(LDFLAGS)    # will pass three arguments to $(LD):    #   1) a    #   2) b'c d    #   3) e    # We must ensure, therefore, that the arguments are appropriately    # quoted so that using:    #   libtool --mode=link ... $(LTLDFLAGS)    # will result in the same number of arguments being passed to    # libtool.   In other words, when this script was invoked, the shell     # removed one level of quoting, present in $(LDFLAGS); we have to put     # it back.     # Quote any embedded single quotes.    case $arg in	*"'"*)	    # The following command creates the script:	    #   1s,^X,,;s|'|'"'"'|g	    # which removes a leading X, and then quotes and embedded single	    # quotes.	    sed_script="1s,^X,,;s|'|'\"'\"'|g"	    # Add a leading "X" so that if $arg starts with a dash,	    # the echo command will not try to interpret the argument	    # as a command-line option.	    arg="X$arg"	    # Generate the quoted string.	    quoted_arg=`echo "$arg" | sed -e "$sed_script"`	    ;;	*)	    quoted_arg=$arg	    ;;    esac    # Surround the entire argument with single quotes.    quoted_arg="'"$quoted_arg"'"      # Add it to the string.    result="$result $quoted_arg"done # Output the string we have built up.echo "$result"

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t