/[jscoverage]/trunk/m4/lib-link.m4
ViewVC logotype

Annotation of /trunk/m4/lib-link.m4

Parent Directory Parent Directory | Revision Log Revision Log


Revision 174 - (hide annotations)
Sat Sep 20 23:27:14 2008 UTC (12 years, 2 months ago) by siliconforks
File size: 29741 byte(s)
Provide better character encoding support.
1 siliconforks 174 # lib-link.m4 serial 13 (gettext-0.17)
2     dnl Copyright (C) 2001-2007 Free Software Foundation, Inc.
3     dnl This file is free software; the Free Software Foundation
4     dnl gives unlimited permission to copy and/or distribute it,
5     dnl with or without modifications, as long as this notice is preserved.
6    
7     dnl From Bruno Haible.
8    
9     AC_PREREQ(2.54)
10    
11     dnl AC_LIB_LINKFLAGS(name [, dependencies]) searches for libname and
12     dnl the libraries corresponding to explicit and implicit dependencies.
13     dnl Sets and AC_SUBSTs the LIB${NAME} and LTLIB${NAME} variables and
14     dnl augments the CPPFLAGS variable.
15     dnl Sets and AC_SUBSTs the LIB${NAME}_PREFIX variable to nonempty if libname
16     dnl was found in ${LIB${NAME}_PREFIX}/$acl_libdirstem.
17     AC_DEFUN([AC_LIB_LINKFLAGS],
18     [
19     AC_REQUIRE([AC_LIB_PREPARE_PREFIX])
20     AC_REQUIRE([AC_LIB_RPATH])
21     define([Name],[translit([$1],[./-], [___])])
22     define([NAME],[translit([$1],[abcdefghijklmnopqrstuvwxyz./-],
23     [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])])
24     AC_CACHE_CHECK([how to link with lib[]$1], [ac_cv_lib[]Name[]_libs], [
25     AC_LIB_LINKFLAGS_BODY([$1], [$2])
26     ac_cv_lib[]Name[]_libs="$LIB[]NAME"
27     ac_cv_lib[]Name[]_ltlibs="$LTLIB[]NAME"
28     ac_cv_lib[]Name[]_cppflags="$INC[]NAME"
29     ac_cv_lib[]Name[]_prefix="$LIB[]NAME[]_PREFIX"
30     ])
31     LIB[]NAME="$ac_cv_lib[]Name[]_libs"
32     LTLIB[]NAME="$ac_cv_lib[]Name[]_ltlibs"
33     INC[]NAME="$ac_cv_lib[]Name[]_cppflags"
34     LIB[]NAME[]_PREFIX="$ac_cv_lib[]Name[]_prefix"
35     AC_LIB_APPENDTOVAR([CPPFLAGS], [$INC]NAME)
36     AC_SUBST([LIB]NAME)
37     AC_SUBST([LTLIB]NAME)
38     AC_SUBST([LIB]NAME[_PREFIX])
39     dnl Also set HAVE_LIB[]NAME so that AC_LIB_HAVE_LINKFLAGS can reuse the
40     dnl results of this search when this library appears as a dependency.
41     HAVE_LIB[]NAME=yes
42     undefine([Name])
43     undefine([NAME])
44     ])
45    
46     dnl AC_LIB_HAVE_LINKFLAGS(name, dependencies, includes, testcode)
47     dnl searches for libname and the libraries corresponding to explicit and
48     dnl implicit dependencies, together with the specified include files and
49     dnl the ability to compile and link the specified testcode. If found, it
50     dnl sets and AC_SUBSTs HAVE_LIB${NAME}=yes and the LIB${NAME} and
51     dnl LTLIB${NAME} variables and augments the CPPFLAGS variable, and
52     dnl #defines HAVE_LIB${NAME} to 1. Otherwise, it sets and AC_SUBSTs
53     dnl HAVE_LIB${NAME}=no and LIB${NAME} and LTLIB${NAME} to empty.
54     dnl Sets and AC_SUBSTs the LIB${NAME}_PREFIX variable to nonempty if libname
55     dnl was found in ${LIB${NAME}_PREFIX}/$acl_libdirstem.
56     AC_DEFUN([AC_LIB_HAVE_LINKFLAGS],
57     [
58     AC_REQUIRE([AC_LIB_PREPARE_PREFIX])
59     AC_REQUIRE([AC_LIB_RPATH])
60     define([Name],[translit([$1],[./-], [___])])
61     define([NAME],[translit([$1],[abcdefghijklmnopqrstuvwxyz./-],
62     [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])])
63    
64     dnl Search for lib[]Name and define LIB[]NAME, LTLIB[]NAME and INC[]NAME
65     dnl accordingly.
66     AC_LIB_LINKFLAGS_BODY([$1], [$2])
67    
68     dnl Add $INC[]NAME to CPPFLAGS before performing the following checks,
69     dnl because if the user has installed lib[]Name and not disabled its use
70     dnl via --without-lib[]Name-prefix, he wants to use it.
71     ac_save_CPPFLAGS="$CPPFLAGS"
72     AC_LIB_APPENDTOVAR([CPPFLAGS], [$INC]NAME)
73    
74     AC_CACHE_CHECK([for lib[]$1], [ac_cv_lib[]Name], [
75     ac_save_LIBS="$LIBS"
76     LIBS="$LIBS $LIB[]NAME"
77     AC_TRY_LINK([$3], [$4], [ac_cv_lib[]Name=yes], [ac_cv_lib[]Name=no])
78     LIBS="$ac_save_LIBS"
79     ])
80     if test "$ac_cv_lib[]Name" = yes; then
81     HAVE_LIB[]NAME=yes
82     AC_DEFINE([HAVE_LIB]NAME, 1, [Define if you have the $1 library.])
83     AC_MSG_CHECKING([how to link with lib[]$1])
84     AC_MSG_RESULT([$LIB[]NAME])
85     else
86     HAVE_LIB[]NAME=no
87     dnl If $LIB[]NAME didn't lead to a usable library, we don't need
88     dnl $INC[]NAME either.
89     CPPFLAGS="$ac_save_CPPFLAGS"
90     LIB[]NAME=
91     LTLIB[]NAME=
92     LIB[]NAME[]_PREFIX=
93     fi
94     AC_SUBST([HAVE_LIB]NAME)
95     AC_SUBST([LIB]NAME)
96     AC_SUBST([LTLIB]NAME)
97     AC_SUBST([LIB]NAME[_PREFIX])
98     undefine([Name])
99     undefine([NAME])
100     ])
101    
102     dnl Determine the platform dependent parameters needed to use rpath:
103     dnl acl_libext,
104     dnl acl_shlibext,
105     dnl acl_hardcode_libdir_flag_spec,
106     dnl acl_hardcode_libdir_separator,
107     dnl acl_hardcode_direct,
108     dnl acl_hardcode_minus_L.
109     AC_DEFUN([AC_LIB_RPATH],
110     [
111     dnl Tell automake >= 1.10 to complain if config.rpath is missing.
112     m4_ifdef([AC_REQUIRE_AUX_FILE], [AC_REQUIRE_AUX_FILE([config.rpath])])
113     AC_REQUIRE([AC_PROG_CC]) dnl we use $CC, $GCC, $LDFLAGS
114     AC_REQUIRE([AC_LIB_PROG_LD]) dnl we use $LD, $with_gnu_ld
115     AC_REQUIRE([AC_CANONICAL_HOST]) dnl we use $host
116     AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT]) dnl we use $ac_aux_dir
117     AC_CACHE_CHECK([for shared library run path origin], acl_cv_rpath, [
118     CC="$CC" GCC="$GCC" LDFLAGS="$LDFLAGS" LD="$LD" with_gnu_ld="$with_gnu_ld" \
119     ${CONFIG_SHELL-/bin/sh} "$ac_aux_dir/config.rpath" "$host" > conftest.sh
120     . ./conftest.sh
121     rm -f ./conftest.sh
122     acl_cv_rpath=done
123     ])
124     wl="$acl_cv_wl"
125     acl_libext="$acl_cv_libext"
126     acl_shlibext="$acl_cv_shlibext"
127     acl_libname_spec="$acl_cv_libname_spec"
128     acl_library_names_spec="$acl_cv_library_names_spec"
129     acl_hardcode_libdir_flag_spec="$acl_cv_hardcode_libdir_flag_spec"
130     acl_hardcode_libdir_separator="$acl_cv_hardcode_libdir_separator"
131     acl_hardcode_direct="$acl_cv_hardcode_direct"
132     acl_hardcode_minus_L="$acl_cv_hardcode_minus_L"
133     dnl Determine whether the user wants rpath handling at all.
134     AC_ARG_ENABLE(rpath,
135     [ --disable-rpath do not hardcode runtime library paths],
136     :, enable_rpath=yes)
137     ])
138    
139     dnl AC_LIB_LINKFLAGS_BODY(name [, dependencies]) searches for libname and
140     dnl the libraries corresponding to explicit and implicit dependencies.
141     dnl Sets the LIB${NAME}, LTLIB${NAME} and INC${NAME} variables.
142     dnl Also, sets the LIB${NAME}_PREFIX variable to nonempty if libname was found
143     dnl in ${LIB${NAME}_PREFIX}/$acl_libdirstem.
144     AC_DEFUN([AC_LIB_LINKFLAGS_BODY],
145     [
146     AC_REQUIRE([AC_LIB_PREPARE_MULTILIB])
147     define([NAME],[translit([$1],[abcdefghijklmnopqrstuvwxyz./-],
148     [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])])
149     dnl Autoconf >= 2.61 supports dots in --with options.
150     define([N_A_M_E],[m4_if(m4_version_compare(m4_defn([m4_PACKAGE_VERSION]),[2.61]),[-1],[translit([$1],[.],[_])],[$1])])
151     dnl By default, look in $includedir and $libdir.
152     use_additional=yes
153     AC_LIB_WITH_FINAL_PREFIX([
154     eval additional_includedir=\"$includedir\"
155     eval additional_libdir=\"$libdir\"
156     ])
157     AC_LIB_ARG_WITH([lib]N_A_M_E[-prefix],
158     [ --with-lib]N_A_M_E[-prefix[=DIR] search for lib$1 in DIR/include and DIR/lib
159     --without-lib]N_A_M_E[-prefix don't search for lib$1 in includedir and libdir],
160     [
161     if test "X$withval" = "Xno"; then
162     use_additional=no
163     else
164     if test "X$withval" = "X"; then
165     AC_LIB_WITH_FINAL_PREFIX([
166     eval additional_includedir=\"$includedir\"
167     eval additional_libdir=\"$libdir\"
168     ])
169     else
170     additional_includedir="$withval/include"
171     additional_libdir="$withval/$acl_libdirstem"
172     fi
173     fi
174     ])
175     dnl Search the library and its dependencies in $additional_libdir and
176     dnl $LDFLAGS. Using breadth-first-seach.
177     LIB[]NAME=
178     LTLIB[]NAME=
179     INC[]NAME=
180     LIB[]NAME[]_PREFIX=
181     rpathdirs=
182     ltrpathdirs=
183     names_already_handled=
184     names_next_round='$1 $2'
185     while test -n "$names_next_round"; do
186     names_this_round="$names_next_round"
187     names_next_round=
188     for name in $names_this_round; do
189     already_handled=
190     for n in $names_already_handled; do
191     if test "$n" = "$name"; then
192     already_handled=yes
193     break
194     fi
195     done
196     if test -z "$already_handled"; then
197     names_already_handled="$names_already_handled $name"
198     dnl See if it was already located by an earlier AC_LIB_LINKFLAGS
199     dnl or AC_LIB_HAVE_LINKFLAGS call.
200     uppername=`echo "$name" | sed -e 'y|abcdefghijklmnopqrstuvwxyz./-|ABCDEFGHIJKLMNOPQRSTUVWXYZ___|'`
201     eval value=\"\$HAVE_LIB$uppername\"
202     if test -n "$value"; then
203     if test "$value" = yes; then
204     eval value=\"\$LIB$uppername\"
205     test -z "$value" || LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$value"
206     eval value=\"\$LTLIB$uppername\"
207     test -z "$value" || LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }$value"
208     else
209     dnl An earlier call to AC_LIB_HAVE_LINKFLAGS has determined
210     dnl that this library doesn't exist. So just drop it.
211     :
212     fi
213     else
214     dnl Search the library lib$name in $additional_libdir and $LDFLAGS
215     dnl and the already constructed $LIBNAME/$LTLIBNAME.
216     found_dir=
217     found_la=
218     found_so=
219     found_a=
220     eval libname=\"$acl_libname_spec\" # typically: libname=lib$name
221     if test -n "$acl_shlibext"; then
222     shrext=".$acl_shlibext" # typically: shrext=.so
223     else
224     shrext=
225     fi
226     if test $use_additional = yes; then
227     dir="$additional_libdir"
228     dnl The same code as in the loop below:
229     dnl First look for a shared library.
230     if test -n "$acl_shlibext"; then
231     if test -f "$dir/$libname$shrext"; then
232     found_dir="$dir"
233     found_so="$dir/$libname$shrext"
234     else
235     if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then
236     ver=`(cd "$dir" && \
237     for f in "$libname$shrext".*; do echo "$f"; done \
238     | sed -e "s,^$libname$shrext\\\\.,," \
239     | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \
240     | sed 1q ) 2>/dev/null`
241     if test -n "$ver" && test -f "$dir/$libname$shrext.$ver"; then
242     found_dir="$dir"
243     found_so="$dir/$libname$shrext.$ver"
244     fi
245     else
246     eval library_names=\"$acl_library_names_spec\"
247     for f in $library_names; do
248     if test -f "$dir/$f"; then
249     found_dir="$dir"
250     found_so="$dir/$f"
251     break
252     fi
253     done
254     fi
255     fi
256     fi
257     dnl Then look for a static library.
258     if test "X$found_dir" = "X"; then
259     if test -f "$dir/$libname.$acl_libext"; then
260     found_dir="$dir"
261     found_a="$dir/$libname.$acl_libext"
262     fi
263     fi
264     if test "X$found_dir" != "X"; then
265     if test -f "$dir/$libname.la"; then
266     found_la="$dir/$libname.la"
267     fi
268     fi
269     fi
270     if test "X$found_dir" = "X"; then
271     for x in $LDFLAGS $LTLIB[]NAME; do
272     AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
273     case "$x" in
274     -L*)
275     dir=`echo "X$x" | sed -e 's/^X-L//'`
276     dnl First look for a shared library.
277     if test -n "$acl_shlibext"; then
278     if test -f "$dir/$libname$shrext"; then
279     found_dir="$dir"
280     found_so="$dir/$libname$shrext"
281     else
282     if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then
283     ver=`(cd "$dir" && \
284     for f in "$libname$shrext".*; do echo "$f"; done \
285     | sed -e "s,^$libname$shrext\\\\.,," \
286     | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \
287     | sed 1q ) 2>/dev/null`
288     if test -n "$ver" && test -f "$dir/$libname$shrext.$ver"; then
289     found_dir="$dir"
290     found_so="$dir/$libname$shrext.$ver"
291     fi
292     else
293     eval library_names=\"$acl_library_names_spec\"
294     for f in $library_names; do
295     if test -f "$dir/$f"; then
296     found_dir="$dir"
297     found_so="$dir/$f"
298     break
299     fi
300     done
301     fi
302     fi
303     fi
304     dnl Then look for a static library.
305     if test "X$found_dir" = "X"; then
306     if test -f "$dir/$libname.$acl_libext"; then
307     found_dir="$dir"
308     found_a="$dir/$libname.$acl_libext"
309     fi
310     fi
311     if test "X$found_dir" != "X"; then
312     if test -f "$dir/$libname.la"; then
313     found_la="$dir/$libname.la"
314     fi
315     fi
316     ;;
317     esac
318     if test "X$found_dir" != "X"; then
319     break
320     fi
321     done
322     fi
323     if test "X$found_dir" != "X"; then
324     dnl Found the library.
325     LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-L$found_dir -l$name"
326     if test "X$found_so" != "X"; then
327     dnl Linking with a shared library. We attempt to hardcode its
328     dnl directory into the executable's runpath, unless it's the
329     dnl standard /usr/lib.
330     if test "$enable_rpath" = no || test "X$found_dir" = "X/usr/$acl_libdirstem"; then
331     dnl No hardcoding is needed.
332     LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so"
333     else
334     dnl Use an explicit option to hardcode DIR into the resulting
335     dnl binary.
336     dnl Potentially add DIR to ltrpathdirs.
337     dnl The ltrpathdirs will be appended to $LTLIBNAME at the end.
338     haveit=
339     for x in $ltrpathdirs; do
340     if test "X$x" = "X$found_dir"; then
341     haveit=yes
342     break
343     fi
344     done
345     if test -z "$haveit"; then
346     ltrpathdirs="$ltrpathdirs $found_dir"
347     fi
348     dnl The hardcoding into $LIBNAME is system dependent.
349     if test "$acl_hardcode_direct" = yes; then
350     dnl Using DIR/libNAME.so during linking hardcodes DIR into the
351     dnl resulting binary.
352     LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so"
353     else
354     if test -n "$acl_hardcode_libdir_flag_spec" && test "$acl_hardcode_minus_L" = no; then
355     dnl Use an explicit option to hardcode DIR into the resulting
356     dnl binary.
357     LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so"
358     dnl Potentially add DIR to rpathdirs.
359     dnl The rpathdirs will be appended to $LIBNAME at the end.
360     haveit=
361     for x in $rpathdirs; do
362     if test "X$x" = "X$found_dir"; then
363     haveit=yes
364     break
365     fi
366     done
367     if test -z "$haveit"; then
368     rpathdirs="$rpathdirs $found_dir"
369     fi
370     else
371     dnl Rely on "-L$found_dir".
372     dnl But don't add it if it's already contained in the LDFLAGS
373     dnl or the already constructed $LIBNAME
374     haveit=
375     for x in $LDFLAGS $LIB[]NAME; do
376     AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
377     if test "X$x" = "X-L$found_dir"; then
378     haveit=yes
379     break
380     fi
381     done
382     if test -z "$haveit"; then
383     LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$found_dir"
384     fi
385     if test "$acl_hardcode_minus_L" != no; then
386     dnl FIXME: Not sure whether we should use
387     dnl "-L$found_dir -l$name" or "-L$found_dir $found_so"
388     dnl here.
389     LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so"
390     else
391     dnl We cannot use $acl_hardcode_runpath_var and LD_RUN_PATH
392     dnl here, because this doesn't fit in flags passed to the
393     dnl compiler. So give up. No hardcoding. This affects only
394     dnl very old systems.
395     dnl FIXME: Not sure whether we should use
396     dnl "-L$found_dir -l$name" or "-L$found_dir $found_so"
397     dnl here.
398     LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-l$name"
399     fi
400     fi
401     fi
402     fi
403     else
404     if test "X$found_a" != "X"; then
405     dnl Linking with a static library.
406     LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_a"
407     else
408     dnl We shouldn't come here, but anyway it's good to have a
409     dnl fallback.
410     LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$found_dir -l$name"
411     fi
412     fi
413     dnl Assume the include files are nearby.
414     additional_includedir=
415     case "$found_dir" in
416     */$acl_libdirstem | */$acl_libdirstem/)
417     basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem/"'*$,,'`
418     LIB[]NAME[]_PREFIX="$basedir"
419     additional_includedir="$basedir/include"
420     ;;
421     esac
422     if test "X$additional_includedir" != "X"; then
423     dnl Potentially add $additional_includedir to $INCNAME.
424     dnl But don't add it
425     dnl 1. if it's the standard /usr/include,
426     dnl 2. if it's /usr/local/include and we are using GCC on Linux,
427     dnl 3. if it's already present in $CPPFLAGS or the already
428     dnl constructed $INCNAME,
429     dnl 4. if it doesn't exist as a directory.
430     if test "X$additional_includedir" != "X/usr/include"; then
431     haveit=
432     if test "X$additional_includedir" = "X/usr/local/include"; then
433     if test -n "$GCC"; then
434     case $host_os in
435     linux* | gnu* | k*bsd*-gnu) haveit=yes;;
436     esac
437     fi
438     fi
439     if test -z "$haveit"; then
440     for x in $CPPFLAGS $INC[]NAME; do
441     AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
442     if test "X$x" = "X-I$additional_includedir"; then
443     haveit=yes
444     break
445     fi
446     done
447     if test -z "$haveit"; then
448     if test -d "$additional_includedir"; then
449     dnl Really add $additional_includedir to $INCNAME.
450     INC[]NAME="${INC[]NAME}${INC[]NAME:+ }-I$additional_includedir"
451     fi
452     fi
453     fi
454     fi
455     fi
456     dnl Look for dependencies.
457     if test -n "$found_la"; then
458     dnl Read the .la file. It defines the variables
459     dnl dlname, library_names, old_library, dependency_libs, current,
460     dnl age, revision, installed, dlopen, dlpreopen, libdir.
461     save_libdir="$libdir"
462     case "$found_la" in
463     */* | *\\*) . "$found_la" ;;
464     *) . "./$found_la" ;;
465     esac
466     libdir="$save_libdir"
467     dnl We use only dependency_libs.
468     for dep in $dependency_libs; do
469     case "$dep" in
470     -L*)
471     additional_libdir=`echo "X$dep" | sed -e 's/^X-L//'`
472     dnl Potentially add $additional_libdir to $LIBNAME and $LTLIBNAME.
473     dnl But don't add it
474     dnl 1. if it's the standard /usr/lib,
475     dnl 2. if it's /usr/local/lib and we are using GCC on Linux,
476     dnl 3. if it's already present in $LDFLAGS or the already
477     dnl constructed $LIBNAME,
478     dnl 4. if it doesn't exist as a directory.
479     if test "X$additional_libdir" != "X/usr/$acl_libdirstem"; then
480     haveit=
481     if test "X$additional_libdir" = "X/usr/local/$acl_libdirstem"; then
482     if test -n "$GCC"; then
483     case $host_os in
484     linux* | gnu* | k*bsd*-gnu) haveit=yes;;
485     esac
486     fi
487     fi
488     if test -z "$haveit"; then
489     haveit=
490     for x in $LDFLAGS $LIB[]NAME; do
491     AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
492     if test "X$x" = "X-L$additional_libdir"; then
493     haveit=yes
494     break
495     fi
496     done
497     if test -z "$haveit"; then
498     if test -d "$additional_libdir"; then
499     dnl Really add $additional_libdir to $LIBNAME.
500     LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$additional_libdir"
501     fi
502     fi
503     haveit=
504     for x in $LDFLAGS $LTLIB[]NAME; do
505     AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
506     if test "X$x" = "X-L$additional_libdir"; then
507     haveit=yes
508     break
509     fi
510     done
511     if test -z "$haveit"; then
512     if test -d "$additional_libdir"; then
513     dnl Really add $additional_libdir to $LTLIBNAME.
514     LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-L$additional_libdir"
515     fi
516     fi
517     fi
518     fi
519     ;;
520     -R*)
521     dir=`echo "X$dep" | sed -e 's/^X-R//'`
522     if test "$enable_rpath" != no; then
523     dnl Potentially add DIR to rpathdirs.
524     dnl The rpathdirs will be appended to $LIBNAME at the end.
525     haveit=
526     for x in $rpathdirs; do
527     if test "X$x" = "X$dir"; then
528     haveit=yes
529     break
530     fi
531     done
532     if test -z "$haveit"; then
533     rpathdirs="$rpathdirs $dir"
534     fi
535     dnl Potentially add DIR to ltrpathdirs.
536     dnl The ltrpathdirs will be appended to $LTLIBNAME at the end.
537     haveit=
538     for x in $ltrpathdirs; do
539     if test "X$x" = "X$dir"; then
540     haveit=yes
541     break
542     fi
543     done
544     if test -z "$haveit"; then
545     ltrpathdirs="$ltrpathdirs $dir"
546     fi
547     fi
548     ;;
549     -l*)
550     dnl Handle this in the next round.
551     names_next_round="$names_next_round "`echo "X$dep" | sed -e 's/^X-l//'`
552     ;;
553     *.la)
554     dnl Handle this in the next round. Throw away the .la's
555     dnl directory; it is already contained in a preceding -L
556     dnl option.
557     names_next_round="$names_next_round "`echo "X$dep" | sed -e 's,^X.*/,,' -e 's,^lib,,' -e 's,\.la$,,'`
558     ;;
559     *)
560     dnl Most likely an immediate library name.
561     LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$dep"
562     LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }$dep"
563     ;;
564     esac
565     done
566     fi
567     else
568     dnl Didn't find the library; assume it is in the system directories
569     dnl known to the linker and runtime loader. (All the system
570     dnl directories known to the linker should also be known to the
571     dnl runtime loader, otherwise the system is severely misconfigured.)
572     LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-l$name"
573     LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-l$name"
574     fi
575     fi
576     fi
577     done
578     done
579     if test "X$rpathdirs" != "X"; then
580     if test -n "$acl_hardcode_libdir_separator"; then
581     dnl Weird platform: only the last -rpath option counts, the user must
582     dnl pass all path elements in one option. We can arrange that for a
583     dnl single library, but not when more than one $LIBNAMEs are used.
584     alldirs=
585     for found_dir in $rpathdirs; do
586     alldirs="${alldirs}${alldirs:+$acl_hardcode_libdir_separator}$found_dir"
587     done
588     dnl Note: acl_hardcode_libdir_flag_spec uses $libdir and $wl.
589     acl_save_libdir="$libdir"
590     libdir="$alldirs"
591     eval flag=\"$acl_hardcode_libdir_flag_spec\"
592     libdir="$acl_save_libdir"
593     LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$flag"
594     else
595     dnl The -rpath options are cumulative.
596     for found_dir in $rpathdirs; do
597     acl_save_libdir="$libdir"
598     libdir="$found_dir"
599     eval flag=\"$acl_hardcode_libdir_flag_spec\"
600     libdir="$acl_save_libdir"
601     LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$flag"
602     done
603     fi
604     fi
605     if test "X$ltrpathdirs" != "X"; then
606     dnl When using libtool, the option that works for both libraries and
607     dnl executables is -R. The -R options are cumulative.
608     for found_dir in $ltrpathdirs; do
609     LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-R$found_dir"
610     done
611     fi
612     ])
613    
614     dnl AC_LIB_APPENDTOVAR(VAR, CONTENTS) appends the elements of CONTENTS to VAR,
615     dnl unless already present in VAR.
616     dnl Works only for CPPFLAGS, not for LIB* variables because that sometimes
617     dnl contains two or three consecutive elements that belong together.
618     AC_DEFUN([AC_LIB_APPENDTOVAR],
619     [
620     for element in [$2]; do
621     haveit=
622     for x in $[$1]; do
623     AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
624     if test "X$x" = "X$element"; then
625     haveit=yes
626     break
627     fi
628     done
629     if test -z "$haveit"; then
630     [$1]="${[$1]}${[$1]:+ }$element"
631     fi
632     done
633     ])
634    
635     dnl For those cases where a variable contains several -L and -l options
636     dnl referring to unknown libraries and directories, this macro determines the
637     dnl necessary additional linker options for the runtime path.
638     dnl AC_LIB_LINKFLAGS_FROM_LIBS([LDADDVAR], [LIBSVALUE], [USE-LIBTOOL])
639     dnl sets LDADDVAR to linker options needed together with LIBSVALUE.
640     dnl If USE-LIBTOOL evaluates to non-empty, linking with libtool is assumed,
641     dnl otherwise linking without libtool is assumed.
642     AC_DEFUN([AC_LIB_LINKFLAGS_FROM_LIBS],
643     [
644     AC_REQUIRE([AC_LIB_RPATH])
645     AC_REQUIRE([AC_LIB_PREPARE_MULTILIB])
646     $1=
647     if test "$enable_rpath" != no; then
648     if test -n "$acl_hardcode_libdir_flag_spec" && test "$acl_hardcode_minus_L" = no; then
649     dnl Use an explicit option to hardcode directories into the resulting
650     dnl binary.
651     rpathdirs=
652     next=
653     for opt in $2; do
654     if test -n "$next"; then
655     dir="$next"
656     dnl No need to hardcode the standard /usr/lib.
657     if test "X$dir" != "X/usr/$acl_libdirstem"; then
658     rpathdirs="$rpathdirs $dir"
659     fi
660     next=
661     else
662     case $opt in
663     -L) next=yes ;;
664     -L*) dir=`echo "X$opt" | sed -e 's,^X-L,,'`
665     dnl No need to hardcode the standard /usr/lib.
666     if test "X$dir" != "X/usr/$acl_libdirstem"; then
667     rpathdirs="$rpathdirs $dir"
668     fi
669     next= ;;
670     *) next= ;;
671     esac
672     fi
673     done
674     if test "X$rpathdirs" != "X"; then
675     if test -n ""$3""; then
676     dnl libtool is used for linking. Use -R options.
677     for dir in $rpathdirs; do
678     $1="${$1}${$1:+ }-R$dir"
679     done
680     else
681     dnl The linker is used for linking directly.
682     if test -n "$acl_hardcode_libdir_separator"; then
683     dnl Weird platform: only the last -rpath option counts, the user
684     dnl must pass all path elements in one option.
685     alldirs=
686     for dir in $rpathdirs; do
687     alldirs="${alldirs}${alldirs:+$acl_hardcode_libdir_separator}$dir"
688     done
689     acl_save_libdir="$libdir"
690     libdir="$alldirs"
691     eval flag=\"$acl_hardcode_libdir_flag_spec\"
692     libdir="$acl_save_libdir"
693     $1="$flag"
694     else
695     dnl The -rpath options are cumulative.
696     for dir in $rpathdirs; do
697     acl_save_libdir="$libdir"
698     libdir="$dir"
699     eval flag=\"$acl_hardcode_libdir_flag_spec\"
700     libdir="$acl_save_libdir"
701     $1="${$1}${$1:+ }$flag"
702     done
703     fi
704     fi
705     fi
706     fi
707     fi
708     AC_SUBST([$1])
709     ])

  ViewVC Help
Powered by ViewVC 1.1.24