• Home
  • History
  • Annotate
  • Line#
  • Navigate
  • Raw
  • Download
  • only in /netgear-WNDR4500v2-V1.0.0.60_1.0.38/ap/gpl/timemachine/gettext-0.17/autoconf-lib-link/tests/
1#!/bin/sh
2# Prints information for maintaining config.rpath.
3
4# The caller should set the environment variables
5# top_srcdir, srcdir, CONFIG_SHELL, CC, GCC, LDFLAGS, LD, LIBDIRSTEM, with_gnu_ld, host.
6
7echo "=============== rpathcfg for $host ==============="
8echo
9echo "--------------- config.rpath output ---------------"
10${CONFIG_SHELL-/bin/sh} $srcdir/../config.rpath "$host" | sed -e 's/^acl_cv_//'
11echo "--------------- experimentally determined ---------------"
12builddir=`pwd`
13global_top_auxdir=`cd "$top_srcdir"/build-aux && pwd`
14export global_top_auxdir
15
16test -d tstdir || mkdir tstdir
17
18rm -rf tstprefix tstdir/build tstlib
19
20eval `${CONFIG_SHELL-/bin/sh} $srcdir/../config.rpath "$host" | grep '^acl_cv_wl='`
21wl="$acl_cv_wl"
22
23# Static library suffix (normally "a").
24mkdir tstprefix
25mkdir tstdir/build
26(cd $srcdir/rpathx && tar cf - *) | (cd tstdir/build && tar xf -)
27(cd tstdir/build
28 ${CONFIG_SHELL-/bin/sh} ./configure --disable-shared --prefix=$builddir/tstprefix --libdir=$builddir/tstprefix/${LIBDIRSTEM-lib} > configure.log 2>&1
29 make > make.log 2>&1
30 make install > install.log 2>&1
31)
32rm -rf tstdir/build
33libext=
34cd tstprefix/lib
35for f in *; do
36  case $f in
37    *.la) ;;
38    *[0-9]) ;;
39    *) libext=`echo $f | sed -e 's/^.*\.//'`;;
40  esac
41  if test -n "$libext"; then
42    break
43  fi
44done
45cd ../..
46rm -rf tstprefix
47
48# Shared library suffix (normally "so").
49mkdir tstprefix
50mkdir tstdir/build
51(cd $srcdir/rpathx && tar cf - *) | (cd tstdir/build && tar xf -)
52(cd tstdir/build
53 ${CONFIG_SHELL-/bin/sh} ./configure --disable-static --prefix=$builddir/tstprefix --libdir=$builddir/tstprefix/${LIBDIRSTEM-lib} > configure.log 2>&1
54 make > make.log 2>&1
55 make install > install.log 2>&1
56)
57rm -rf tstdir/build
58shlibext=
59cd tstprefix/lib || exit 1
60for f in *; do
61  case $f in
62    *.la) ;;
63    *[0-9]) ;;
64    *) shlibext=`echo $f | sed -e 's/^.*\.//'`;;
65  esac
66  if test -n "$shlibext"; then
67    break
68  fi
69done
70cd ../..
71rm -rf tstprefix
72
73# Prepare hardcoding tests.
74mkdir tstprefix
75mkdir tstdir/build
76(cd $srcdir/rpathx && tar cf - *) | (cd tstdir/build && tar xf -)
77(cd tstdir/build
78 ${CONFIG_SHELL-/bin/sh} ./configure --disable-static --prefix=$builddir/tstprefix --libdir=$builddir/tstprefix/${LIBDIRSTEM-lib} > configure.log 2>&1
79 make > make.log 2>&1
80 make install > install.log 2>&1
81)
82rm -rf tstdir/build
83
84# Flag to hardcode \$libdir into a binary during linking.
85# This must work even if \$libdir does not exist.
86hardcode_libdir_flag_spec=
87for spec in \
88    '-L$libdir' \
89    '-R$libdir' \
90    '-rpath $libdir' '${wl}-rpath ${wl}$libdir' \
91    '${wl}+b ${wl}$libdir' \
92    '${wl}-R $libdir:/usr/lib:/lib' \
93    '${wl}-blibpath:$libdir:/usr/lib:/lib' \
94    '${wl}-bnolibpath ${wl}-blibpath:$libdir:/usr/lib:/lib' \
95  ; do
96  mv tstprefix/lib tstlib
97  libdir=`pwd`/tstprefix/lib
98  eval flag=\"$spec\"
99  echo 1>&2
100  echo "$CC $LDFLAGS $srcdir/rpathlx/usex.c tstlib/librpathx.$shlibext $flag -o a.out" 1>&2
101  $CC $LDFLAGS $srcdir/rpathlx/usex.c tstlib/librpathx.$shlibext $flag -o a.out
102  if test $? = 0; then
103    mv tstlib tstprefix/lib
104    echo "ok, running created a.out." 1>&2
105    if ./a.out; then
106      hardcode_libdir_flag_spec="$hardcode_libdir_flag_spec$spec
107"
108    fi
109  else
110    mv tstlib tstprefix/lib
111  fi
112  rm -f a.out
113done
114
115# Whether we need a single -rpath flag with a separated argument.
116hardcode_libdir_separator=
117if test -n "$hardcode_libdir_flag_spec"; then
118  spec=`echo "$hardcode_libdir_flag_spec" | sed -e '2,$d'`
119  # Try with multiple -rpath flags.
120  mv tstprefix/lib tstlib
121  libdir=`pwd`/tstprefix/lib
122  eval flag1=\"$spec\"
123  libdir=/tmp
124  eval flag2=\"$spec\"
125  echo 1>&2
126  echo "$CC $LDFLAGS $srcdir/rpathlx/usex.c tstlib/librpathx.$shlibext $flag1 $flag2 -o a.out" 1>&2
127  $CC $LDFLAGS $srcdir/rpathlx/usex.c tstlib/librpathx.$shlibext $flag1 $flag2 -o a.out
128  if test $? = 0; then
129    mv tstlib tstprefix/lib
130    echo "ok, running created a.out." 1>&2
131    if ./a.out; then
132      hardcode_libdir_separator=NONE
133    fi
134  else
135    mv tstlib tstprefix/lib
136  fi
137  rm -f a.out
138  if test -z "$hardcode_libdir_separator"; then
139    # Try with a single -rpath flag.
140    mv tstprefix/lib tstlib
141    libdir=`pwd`/tstprefix/lib:/tmp
142    eval flag=\"$spec\"
143    echo 1>&2
144    echo "$CC $LDFLAGS $srcdir/rpathlx/usex.c tstlib/librpathx.$shlibext $flag -o a.out" 1>&2
145    $CC $LDFLAGS $srcdir/rpathlx/usex.c tstlib/librpathx.$shlibext $flag -o a.out
146    if test $? = 0; then
147      mv tstlib tstprefix/lib
148      echo "ok, running created a.out." 1>&2
149      if ./a.out; then
150        hardcode_libdir_separator=:
151      fi
152    else
153      mv tstlib tstprefix/lib
154    fi
155    rm -f a.out
156  fi
157  if test -z "$hardcode_libdir_separator"; then
158    echo "hardcode_libdir_separator test failed!" 1>&2
159  else
160    if test "$hardcode_libdir_separator" = NONE; then
161      hardcode_libdir_separator=
162    fi
163  fi
164fi
165
166# Set to yes if using DIR/libNAME.so during linking hardcodes DIR into the
167# resulting binary.
168hardcode_direct=no
169echo 1>&2
170echo "$CC $LDFLAGS $srcdir/rpathlx/usex.c tstprefix/lib/librpathx.$shlibext -o a.out" 1>&2
171$CC $LDFLAGS $srcdir/rpathlx/usex.c tstprefix/lib/librpathx.$shlibext -o a.out
172if test $? = 0; then
173  echo "ok, running created a.out." 1>&2
174  if ./a.out; then
175    hardcode_direct=yes
176  fi
177fi
178rm -f a.out
179
180# Set to yes if using the -LDIR flag during linking hardcodes DIR into the
181# resulting binary.
182hardcode_minus_L=no
183echo 1>&2
184echo "$CC $LDFLAGS $srcdir/rpathlx/usex.c -Ltstprefix/lib -lrpathx -o a.out" 1>&2
185$CC $LDFLAGS $srcdir/rpathlx/usex.c -Ltstprefix/lib -lrpathx -o a.out
186if test $? = 0; then
187  echo "ok, running created a.out." 1>&2
188  if ./a.out; then
189    hardcode_minus_L=yes
190  fi
191fi
192rm -f a.out
193
194# Clean up.
195rm -rf tstprefix tstdir
196
197sed_quote_subst='s/\(["`$\\]\)/\\\1/g'
198escaped_hardcode_libdir_flag_spec=`echo "X$hardcode_libdir_flag_spec" | sed -e 's/^X//' -e "$sed_quote_subst"`
199escaped_sys_lib_search_path_spec=`echo "X$sys_lib_search_path_spec" | sed -e 's/^X//' -e "$sed_quote_subst"`
200escaped_sys_lib_dlsearch_path_spec=`echo "X$sys_lib_dlsearch_path_spec" | sed -e 's/^X//' -e "$sed_quote_subst"`
201
202cat <<EOF
203
204# Static library suffix (normally "a").
205libext="$libext"
206
207# Shared library suffix (normally "so").
208shlibext="$shlibext"
209
210# Flag to hardcode \$libdir into a binary during linking.
211# This must work even if \$libdir does not exist.
212hardcode_libdir_flag_spec="$escaped_hardcode_libdir_flag_spec"
213
214# Whether we need a single -rpath flag with a separated argument.
215hardcode_libdir_separator="$hardcode_libdir_separator"
216
217# Set to yes if using DIR/libNAME.so during linking hardcodes DIR into the
218# resulting binary.
219hardcode_direct="$hardcode_direct"
220
221# Set to yes if using the -LDIR flag during linking hardcodes DIR into the
222# resulting binary.
223hardcode_minus_L="$hardcode_minus_L"
224
225EOF
226