Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Newer
Older
100755 107 lines (96 sloc) 3.37 kb
a4ce629 Tagging source as tags/gcc_4_6_2_release
gccadmin authored
1 #! /bin/sh
2
3 # Script to translate LDFLAGS into a form suitable for use with libtool.
4
5 # Copyright (C) 2005 Free Software Foundation, Inc.
6 #
7 # This file is free software; you can redistribute it and/or modify
8 # it under the terms of the GNU General Public License as published by
9 # the Free Software Foundation; either version 2 of the License, or
10 # (at your option) any later version.
11 #
12 # This program is distributed in the hope that it will be useful,
13 # but WITHOUT ANY WARRANTY; without even the implied warranty of
14 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 # GNU General Public License for more details.
16 #
17 # You should have received a copy of the GNU General Public License
18 # along with this program; if not, write to the Free Software
19 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
20 # MA 02110-1301, USA.
21
22 # Contributed by CodeSourcery, LLC.
23
24 # This script is designed to be used from a Makefile that uses libtool
25 # to build libraries as follows:
26 #
27 # LTLDFLAGS = $(shell libtool-ldflags $(LDFLAGS))
28 #
29 # Then, use (LTLDFLAGS) in place of $(LDFLAGS) in your link line.
30
31 # The output of the script. This string is built up as we process the
32 # arguments.
33 result=
34 prev_arg=
35
36 for arg
37 do
38 case $arg in
39 -f*|--*)
40 # Libtool does not ascribe any special meaning options
41 # that begin with -f or with a double-dash. So, it will
42 # think these options are linker options, and prefix them
43 # with "-Wl,". Then, the compiler driver will ignore the
44 # options. So, we prefix these options with -Xcompiler to
45 # make clear to libtool that they are in fact compiler
46 # options.
47 case $prev_arg in
48 -Xpreprocessor|-Xcompiler|-Xlinker)
49 # This option is already prefixed; don't prefix it again.
50 ;;
51 *)
52 result="$result -Xcompiler"
53 ;;
54 esac
55 ;;
56 *)
57 # We do not want to add -Xcompiler to other options because
58 # that would prevent libtool itself from recognizing them.
59 ;;
60 esac
61 prev_arg=$arg
62
63 # If $(LDFLAGS) is (say):
64 # a "b'c d" e
65 # then the user expects that:
66 # $(LD) $(LDFLAGS)
67 # will pass three arguments to $(LD):
68 # 1) a
69 # 2) b'c d
70 # 3) e
71 # We must ensure, therefore, that the arguments are appropriately
72 # quoted so that using:
73 # libtool --mode=link ... $(LTLDFLAGS)
74 # will result in the same number of arguments being passed to
75 # libtool. In other words, when this script was invoked, the shell
76 # removed one level of quoting, present in $(LDFLAGS); we have to put
77 # it back.
78
79 # Quote any embedded single quotes.
80 case $arg in
81 *"'"*)
82 # The following command creates the script:
83 # 1s,^X,,;s|'|'"'"'|g
84 # which removes a leading X, and then quotes and embedded single
85 # quotes.
86 sed_script="1s,^X,,;s|'|'\"'\"'|g"
87 # Add a leading "X" so that if $arg starts with a dash,
88 # the echo command will not try to interpret the argument
89 # as a command-line option.
90 arg="X$arg"
91 # Generate the quoted string.
92 quoted_arg=`echo "$arg" | sed -e "$sed_script"`
93 ;;
94 *)
95 quoted_arg=$arg
96 ;;
97 esac
98 # Surround the entire argument with single quotes.
99 quoted_arg="'"$quoted_arg"'"
100
101 # Add it to the string.
102 result="$result $quoted_arg"
103 done
104
105 # Output the string we have built up.
106 echo "$result"
Something went wrong with that request. Please try again.