nexmon – Blame information for rev 1
?pathlinks?
Rev | Author | Line No. | Line |
---|---|---|---|
1 | office | 1 | #! /bin/sh |
2 | # Output a system dependent linker command for putting a relocatable library |
||
3 | # search path into an executable. |
||
4 | # |
||
5 | # Copyright 2003-2016 Free Software Foundation, Inc. |
||
6 | # Written by Bruno Haible <bruno@clisp.org>, 2003. |
||
7 | # |
||
8 | # This program is free software: you can redistribute it and/or modify |
||
9 | # it under the terms of the GNU General Public License as published by |
||
10 | # the Free Software Foundation; either version 3 of the License, or |
||
11 | # (at your option) any later version. |
||
12 | # |
||
13 | # This program is distributed in the hope that it will be useful, |
||
14 | # but WITHOUT ANY WARRANTY; without even the implied warranty of |
||
15 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
||
16 | # GNU General Public License for more details. |
||
17 | # |
||
18 | # You should have received a copy of the GNU General Public License |
||
19 | # along with this program. If not, see <http://www.gnu.org/licenses/>. |
||
20 | # |
||
21 | # As a special exception to the GNU General Public License, if you |
||
22 | # distribute this file as part of a program that contains a |
||
23 | # configuration script generated by Autoconf, you may include it under |
||
24 | # the same distribution terms that you use for the rest of that program. |
||
25 | # |
||
26 | # The first argument passed to this file is the canonical host specification, |
||
27 | # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM |
||
28 | # or |
||
29 | # CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM |
||
30 | # The environment variable LD should be set by the caller. |
||
31 | # |
||
32 | # The second argument is a colon separated list of directories that contain |
||
33 | # the libraries at installation time. |
||
34 | # |
||
35 | # The third argument is the directory into which the executable is going to be |
||
36 | # installed. |
||
37 | |||
38 | host="$1" |
||
39 | host_cpu=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` |
||
40 | host_vendor=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` |
||
41 | host_os=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` |
||
42 | |||
43 | library_path_value=$2 |
||
44 | |||
45 | installdir=$3 |
||
46 | |||
47 | # Verify that installdir is absolute. |
||
48 | case "$installdir" in |
||
49 | /*) ;; |
||
50 | *) |
||
51 | echo "installdir is not absolute: $installdir" 1>&2 |
||
52 | exit 1 |
||
53 | ;; |
||
54 | esac |
||
55 | |||
56 | case "$host_os" in |
||
57 | linux* | kfreebsd*) |
||
58 | rpath= |
||
59 | save_IFS="$IFS"; IFS=":" |
||
60 | for dir in $library_path_value; do |
||
61 | IFS="$save_IFS" |
||
62 | case "$dir" in |
||
63 | /*) |
||
64 | # Make dir relative to installdir. (Works only if dir is absolute.) |
||
65 | idir="$installdir" |
||
66 | while true; do |
||
67 | dfirst=`echo "$dir" | sed -n -e 's,^//*\([^/]*\).*$,/\1,p'` |
||
68 | ifirst=`echo "$idir" | sed -n -e 's,^//*\([^/]*\).*$,/\1,p'` |
||
69 | if test -z "$dfirst" || test -z "$ifirst"; then |
||
70 | break |
||
71 | fi |
||
72 | if test "$dfirst" != "$ifirst"; then |
||
73 | break |
||
74 | fi |
||
75 | dir=`echo "$dir" | sed -e 's,^//*[^/]*,,'` |
||
76 | idir=`echo "$idir" | sed -e 's,^//*[^/]*,,'` |
||
77 | done |
||
78 | dir="\$ORIGIN"`echo "$idir" | sed -e 's,//*[^/]*,/..,g'`"$dir" |
||
79 | # Add dir to rpath. |
||
80 | rpath="${rpath}${rpath:+ }$dir" |
||
81 | ;; |
||
82 | *) |
||
83 | if test -n "$dir"; then |
||
84 | echo "libdir is not absolute: $dir" 1>&2 |
||
85 | fi |
||
86 | ;; |
||
87 | esac |
||
88 | done |
||
89 | IFS="$save_IFS" |
||
90 | # Output it. |
||
91 | if test -n "$rpath"; then |
||
92 | echo "-Wl,-rpath,$rpath" |
||
93 | fi |
||
94 | ;; |
||
95 | *) |
||
96 | echo "relocation via rpath not supported on this system: $host" 1>&2 |
||
97 | exit 1 |
||
98 | ;; |
||
99 | esac |
||
100 | |||
101 | exit 0 |