struct / union in initializer, RFE #901.
[sdcc.git] / sdcc / support / cpp / config / lib-link.m4
blob20e281fd323a31eb8c416b14c9b8540cf29bb0f0
1 # lib-link.m4 serial 4 (gettext-0.12)
2 dnl Copyright (C) 2001-2003 Free Software Foundation, Inc.
3 dnl This file is free software, distributed under the terms of the GNU
4 dnl General Public License.  As a special exception to the GNU General
5 dnl Public License, this file may be distributed as part of a program
6 dnl that contains a configuration script generated by Autoconf, under
7 dnl the same distribution terms as the rest of that program.
9 dnl From Bruno Haible.
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 AC_DEFUN([AC_LIB_LINKFLAGS],
17   AC_REQUIRE([AC_LIB_PREPARE_PREFIX])
18   AC_REQUIRE([AC_LIB_RPATH])
19   define([Name],[translit([$1],[./-], [___])])
20   define([NAME],[translit([$1],[abcdefghijklmnopqrstuvwxyz./-],
21                                [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])])
22   AC_CACHE_CHECK([how to link with lib[]$1], [ac_cv_lib[]Name[]_libs], [
23     AC_LIB_LINKFLAGS_BODY([$1], [$2])
24     ac_cv_lib[]Name[]_libs="$LIB[]NAME"
25     ac_cv_lib[]Name[]_ltlibs="$LTLIB[]NAME"
26     ac_cv_lib[]Name[]_cppflags="$INC[]NAME"
27   ])
28   LIB[]NAME="$ac_cv_lib[]Name[]_libs"
29   LTLIB[]NAME="$ac_cv_lib[]Name[]_ltlibs"
30   INC[]NAME="$ac_cv_lib[]Name[]_cppflags"
31   AC_LIB_APPENDTOVAR([CPPFLAGS], [$INC]NAME)
32   AC_SUBST([LIB]NAME)
33   AC_SUBST([LTLIB]NAME)
34   dnl Also set HAVE_LIB[]NAME so that AC_LIB_HAVE_LINKFLAGS can reuse the
35   dnl results of this search when this library appears as a dependency.
36   HAVE_LIB[]NAME=yes
37   undefine([Name])
38   undefine([NAME])
41 dnl AC_LIB_HAVE_LINKFLAGS(name, dependencies, includes, testcode)
42 dnl searches for libname and the libraries corresponding to explicit and
43 dnl implicit dependencies, together with the specified include files and
44 dnl the ability to compile and link the specified testcode. If found, it
45 dnl sets and AC_SUBSTs HAVE_LIB${NAME}=yes and the LIB${NAME} and
46 dnl LTLIB${NAME} variables and augments the CPPFLAGS variable, and
47 dnl #defines HAVE_LIB${NAME} to 1. Otherwise, it sets and AC_SUBSTs
48 dnl HAVE_LIB${NAME}=no and LIB${NAME} and LTLIB${NAME} to empty.
49 AC_DEFUN([AC_LIB_HAVE_LINKFLAGS],
51   AC_REQUIRE([AC_LIB_PREPARE_PREFIX])
52   AC_REQUIRE([AC_LIB_RPATH])
53   define([Name],[translit([$1],[./-], [___])])
54   define([NAME],[translit([$1],[abcdefghijklmnopqrstuvwxyz./-],
55                                [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])])
57   dnl Search for lib[]Name and define LIB[]NAME, LTLIB[]NAME and INC[]NAME
58   dnl accordingly.
59   AC_LIB_LINKFLAGS_BODY([$1], [$2])
61   dnl Add $INC[]NAME to CPPFLAGS before performing the following checks,
62   dnl because if the user has installed lib[]Name and not disabled its use
63   dnl via --without-lib[]Name-prefix, he wants to use it.
64   ac_save_CPPFLAGS="$CPPFLAGS"
65   AC_LIB_APPENDTOVAR([CPPFLAGS], [$INC]NAME)
67   AC_CACHE_CHECK([for lib[]$1], [ac_cv_lib[]Name], [
68     ac_save_LIBS="$LIBS"
69     LIBS="$LIBS $LIB[]NAME"
70     AC_TRY_LINK([$3], [$4], [ac_cv_lib[]Name=yes], [ac_cv_lib[]Name=no])
71     LIBS="$ac_save_LIBS"
72   ])
73   if test "$ac_cv_lib[]Name" = yes; then
74     HAVE_LIB[]NAME=yes
75     AC_DEFINE([HAVE_LIB]NAME, 1, [Define if you have the $1 library.])
76     AC_MSG_CHECKING([how to link with lib[]$1])
77     AC_MSG_RESULT([$LIB[]NAME])
78   else
79     HAVE_LIB[]NAME=no
80     dnl If $LIB[]NAME didn't lead to a usable library, we don't need
81     dnl $INC[]NAME either.
82     CPPFLAGS="$ac_save_CPPFLAGS"
83     LIB[]NAME=
84     LTLIB[]NAME=
85   fi
86   AC_SUBST([HAVE_LIB]NAME)
87   AC_SUBST([LIB]NAME)
88   AC_SUBST([LTLIB]NAME)
89   undefine([Name])
90   undefine([NAME])
93 dnl Determine the platform dependent parameters needed to use rpath:
94 dnl libext, shlibext, hardcode_libdir_flag_spec, hardcode_libdir_separator,
95 dnl hardcode_direct, hardcode_minus_L.
96 AC_DEFUN([AC_LIB_RPATH],
98   AC_REQUIRE([AC_PROG_CC])                dnl we use $CC, $GCC, $LDFLAGS
99   AC_REQUIRE([AC_LIB_PROG_LD])            dnl we use $LD, $with_gnu_ld
100   AC_REQUIRE([AC_CANONICAL_HOST])         dnl we use $host
101   AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT]) dnl we use $ac_aux_dir
102   AC_CACHE_CHECK([for shared library run path origin], acl_cv_rpath, [
103     CC="$CC" GCC="$GCC" LDFLAGS="$LDFLAGS" LD="$LD" with_gnu_ld="$with_gnu_ld" \
104     ${CONFIG_SHELL-/bin/sh} "$ac_aux_dir/config.rpath" "$host" > conftest.sh
105     . ./conftest.sh
106     rm -f ./conftest.sh
107     acl_cv_rpath=done
108   ])
109   wl="$acl_cv_wl"
110   libext="$acl_cv_libext"
111   shlibext="$acl_cv_shlibext"
112   hardcode_libdir_flag_spec="$acl_cv_hardcode_libdir_flag_spec"
113   hardcode_libdir_separator="$acl_cv_hardcode_libdir_separator"
114   hardcode_direct="$acl_cv_hardcode_direct"
115   hardcode_minus_L="$acl_cv_hardcode_minus_L"
116   dnl Determine whether the user wants rpath handling at all.
117   AC_ARG_ENABLE(rpath,
118     [  --disable-rpath         do not hardcode runtime library paths],
119     :, enable_rpath=yes)
122 dnl AC_LIB_LINKFLAGS_BODY(name [, dependencies]) searches for libname and
123 dnl the libraries corresponding to explicit and implicit dependencies.
124 dnl Sets the LIB${NAME}, LTLIB${NAME} and INC${NAME} variables.
125 AC_DEFUN([AC_LIB_LINKFLAGS_BODY],
127   define([NAME],[translit([$1],[abcdefghijklmnopqrstuvwxyz./-],
128                                [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])])
129   dnl By default, look in $includedir and $libdir.
130   use_additional=yes
131   AC_LIB_WITH_FINAL_PREFIX([
132     eval additional_includedir=\"$includedir\"
133     eval additional_libdir=\"$libdir\"
134   ])
135   AC_LIB_ARG_WITH([lib$1-prefix],
136 [  --with-lib$1-prefix[=DIR]  search for lib$1 in DIR/include and DIR/lib
137   --without-lib$1-prefix     don't search for lib$1 in includedir and libdir],
139     if test "X$withval" = "Xno"; then
140       use_additional=no
141     else
142       if test "X$withval" = "X"; then
143         AC_LIB_WITH_FINAL_PREFIX([
144           eval additional_includedir=\"$includedir\"
145           eval additional_libdir=\"$libdir\"
146         ])
147       else
148         additional_includedir="$withval/include"
149         additional_libdir="$withval/lib"
150       fi
151     fi
153   AC_LIB_ARG_WITH([lib$1-type],
154 [  --with-lib$1-type=TYPE     type of library to search for (auto/static/shared) ],
155   [ with_lib$1_type=$withval ], [ with_lib$1_type=auto ])
156   lib_type=`eval echo \$with_lib$1_type`
158   dnl Search the library and its dependencies in $additional_libdir and
159   dnl $LDFLAGS. Using breadth-first-seach.
160   LIB[]NAME=
161   LTLIB[]NAME=
162   INC[]NAME=
163   rpathdirs=
164   ltrpathdirs=
165   names_already_handled=
166   names_next_round='$1 $2'
167   while test -n "$names_next_round"; do
168     names_this_round="$names_next_round"
169     names_next_round=
170     for name in $names_this_round; do
171       already_handled=
172       for n in $names_already_handled; do
173         if test "$n" = "$name"; then
174           already_handled=yes
175           break
176         fi
177       done
178       if test -z "$already_handled"; then
179         names_already_handled="$names_already_handled $name"
180         dnl See if it was already located by an earlier AC_LIB_LINKFLAGS
181         dnl or AC_LIB_HAVE_LINKFLAGS call.
182         uppername=`echo "$name" | sed -e 'y|abcdefghijklmnopqrstuvwxyz./-|ABCDEFGHIJKLMNOPQRSTUVWXYZ___|'`
183         eval value=\"\$HAVE_LIB$uppername\"
184         if test -n "$value"; then
185           if test "$value" = yes; then
186             eval value=\"\$LIB$uppername\"
187             test -z "$value" || LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$value"
188             eval value=\"\$LTLIB$uppername\"
189             test -z "$value" || LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }$value"
190           else
191             dnl An earlier call to AC_LIB_HAVE_LINKFLAGS has determined
192             dnl that this library doesn't exist. So just drop it.
193             :
194           fi
195         else
196           dnl Search the library lib$name in $additional_libdir and $LDFLAGS
197           dnl and the already constructed $LIBNAME/$LTLIBNAME.
198           found_dir=
199           found_la=
200           found_so=
201           found_a=
202           if test $use_additional = yes; then
203             if test -n "$shlibext" && test -f "$additional_libdir/lib$name.$shlibext" && test x$lib_type != xstatic; then
204               found_dir="$additional_libdir"
205               found_so="$additional_libdir/lib$name.$shlibext"
206               if test -f "$additional_libdir/lib$name.la"; then
207                 found_la="$additional_libdir/lib$name.la"
208               fi
209             elif test x$lib_type != xshared; then
210               if test -f "$additional_libdir/lib$name.$libext"; then
211                 found_dir="$additional_libdir"
212                 found_a="$additional_libdir/lib$name.$libext"
213                 if test -f "$additional_libdir/lib$name.la"; then
214                   found_la="$additional_libdir/lib$name.la"
215                 fi
216               fi
217             fi
218           fi
219           if test "X$found_dir" = "X"; then
220             for x in $LDFLAGS $LTLIB[]NAME; do
221               AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
222               case "$x" in
223                 -L*)
224                   dir=`echo "X$x" | sed -e 's/^X-L//'`
225                   if test -n "$shlibext" && test -f "$dir/lib$name.$shlibext" && test x$lib_type != xstatic; then
226                     found_dir="$dir"
227                     found_so="$dir/lib$name.$shlibext"
228                     if test -f "$dir/lib$name.la"; then
229                       found_la="$dir/lib$name.la"
230                     fi
231                   elif test x$lib_type != xshared; then
232                     if test -f "$dir/lib$name.$libext"; then
233                       found_dir="$dir"
234                       found_a="$dir/lib$name.$libext"
235                       if test -f "$dir/lib$name.la"; then
236                         found_la="$dir/lib$name.la"
237                       fi
238                     fi
239                   fi
240                   ;;
241               esac
242               if test "X$found_dir" != "X"; then
243                 break
244               fi
245             done
246           fi
247           if test "X$found_dir" != "X"; then
248             dnl Found the library.
249             LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-L$found_dir -l$name"
250             if test "X$found_so" != "X"; then
251               dnl Linking with a shared library. We attempt to hardcode its
252               dnl directory into the executable's runpath, unless it's the
253               dnl standard /usr/lib.
254               if test "$enable_rpath" = no || test "X$found_dir" = "X/usr/lib"; then
255                 dnl No hardcoding is needed.
256                 LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so"
257               else
258                 dnl Use an explicit option to hardcode DIR into the resulting
259                 dnl binary.
260                 dnl Potentially add DIR to ltrpathdirs.
261                 dnl The ltrpathdirs will be appended to $LTLIBNAME at the end.
262                 haveit=
263                 for x in $ltrpathdirs; do
264                   if test "X$x" = "X$found_dir"; then
265                     haveit=yes
266                     break
267                   fi
268                 done
269                 if test -z "$haveit"; then
270                   ltrpathdirs="$ltrpathdirs $found_dir"
271                 fi
272                 dnl The hardcoding into $LIBNAME is system dependent.
273                 if test "$hardcode_direct" = yes; then
274                   dnl Using DIR/libNAME.so during linking hardcodes DIR into the
275                   dnl resulting binary.
276                   LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so"
277                 else
278                   if test -n "$hardcode_libdir_flag_spec" && test "$hardcode_minus_L" = no; then
279                     dnl Use an explicit option to hardcode DIR into the resulting
280                     dnl binary.
281                     LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so"
282                     dnl Potentially add DIR to rpathdirs.
283                     dnl The rpathdirs will be appended to $LIBNAME at the end.
284                     haveit=
285                     for x in $rpathdirs; do
286                       if test "X$x" = "X$found_dir"; then
287                         haveit=yes
288                         break
289                       fi
290                     done
291                     if test -z "$haveit"; then
292                       rpathdirs="$rpathdirs $found_dir"
293                     fi
294                   else
295                     dnl Rely on "-L$found_dir".
296                     dnl But don't add it if it's already contained in the LDFLAGS
297                     dnl or the already constructed $LIBNAME
298                     haveit=
299                     for x in $LDFLAGS $LIB[]NAME; do
300                       AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
301                       if test "X$x" = "X-L$found_dir"; then
302                         haveit=yes
303                         break
304                       fi
305                     done
306                     if test -z "$haveit"; then
307                       LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$found_dir"
308                     fi
309                     if test "$hardcode_minus_L" != no; then
310                       dnl FIXME: Not sure whether we should use
311                       dnl "-L$found_dir -l$name" or "-L$found_dir $found_so"
312                       dnl here.
313                       LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so"
314                     else
315                       dnl We cannot use $hardcode_runpath_var and LD_RUN_PATH
316                       dnl here, because this doesn't fit in flags passed to the
317                       dnl compiler. So give up. No hardcoding. This affects only
318                       dnl very old systems.
319                       dnl FIXME: Not sure whether we should use
320                       dnl "-L$found_dir -l$name" or "-L$found_dir $found_so"
321                       dnl here.
322                       LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-l$name"
323                     fi
324                   fi
325                 fi
326               fi
327             else
328               if test "X$found_a" != "X"; then
329                 dnl Linking with a static library.
330                 LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_a"
331               else
332                 dnl We shouldn't come here, but anyway it's good to have a
333                 dnl fallback.
334                 LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$found_dir -l$name"
335               fi
336             fi
337             dnl Assume the include files are nearby.
338             additional_includedir=
339             case "$found_dir" in
340               */lib | */lib/)
341                 basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e 's,/lib/*$,,'`
342                 additional_includedir="$basedir/include"
343                 ;;
344             esac
345             if test "X$additional_includedir" != "X"; then
346               dnl Potentially add $additional_includedir to $INCNAME.
347               dnl But don't add it
348               dnl   1. if it's the standard /usr/include,
349               dnl   2. if it's /usr/local/include and we are using GCC on Linux,
350               dnl   3. if it's already present in $CPPFLAGS or the already
351               dnl      constructed $INCNAME,
352               dnl   4. if it doesn't exist as a directory.
353               if test "X$additional_includedir" != "X/usr/include"; then
354                 haveit=
355                 if test "X$additional_includedir" = "X/usr/local/include"; then
356                   if test -n "$GCC"; then
357                     case $host_os in
358                       linux*) haveit=yes;;
359                     esac
360                   fi
361                 fi
362                 if test -z "$haveit"; then
363                   for x in $CPPFLAGS $INC[]NAME; do
364                     AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
365                     if test "X$x" = "X-I$additional_includedir"; then
366                       haveit=yes
367                       break
368                     fi
369                   done
370                   if test -z "$haveit"; then
371                     if test -d "$additional_includedir"; then
372                       dnl Really add $additional_includedir to $INCNAME.
373                       INC[]NAME="${INC[]NAME}${INC[]NAME:+ }-I$additional_includedir"
374                     fi
375                   fi
376                 fi
377               fi
378             fi
379             dnl Look for dependencies.
380             if test -n "$found_la"; then
381               dnl Read the .la file. It defines the variables
382               dnl dlname, library_names, old_library, dependency_libs, current,
383               dnl age, revision, installed, dlopen, dlpreopen, libdir.
384               save_libdir="$libdir"
385               case "$found_la" in
386                 */* | *\\*) . "$found_la" ;;
387                 *) . "./$found_la" ;;
388               esac
389               libdir="$save_libdir"
390               dnl We use only dependency_libs.
391               for dep in $dependency_libs; do
392                 case "$dep" in
393                   -L*)
394                     additional_libdir=`echo "X$dep" | sed -e 's/^X-L//'`
395                     dnl Potentially add $additional_libdir to $LIBNAME and $LTLIBNAME.
396                     dnl But don't add it
397                     dnl   1. if it's the standard /usr/lib,
398                     dnl   2. if it's /usr/local/lib and we are using GCC on Linux,
399                     dnl   3. if it's already present in $LDFLAGS or the already
400                     dnl      constructed $LIBNAME,
401                     dnl   4. if it doesn't exist as a directory.
402                     if test "X$additional_libdir" != "X/usr/lib"; then
403                       haveit=
404                       if test "X$additional_libdir" = "X/usr/local/lib"; then
405                         if test -n "$GCC"; then
406                           case $host_os in
407                             linux*) haveit=yes;;
408                           esac
409                         fi
410                       fi
411                       if test -z "$haveit"; then
412                         haveit=
413                         for x in $LDFLAGS $LIB[]NAME; do
414                           AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
415                           if test "X$x" = "X-L$additional_libdir"; then
416                             haveit=yes
417                             break
418                           fi
419                         done
420                         if test -z "$haveit"; then
421                           if test -d "$additional_libdir"; then
422                             dnl Really add $additional_libdir to $LIBNAME.
423                             LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$additional_libdir"
424                           fi
425                         fi
426                         haveit=
427                         for x in $LDFLAGS $LTLIB[]NAME; do
428                           AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
429                           if test "X$x" = "X-L$additional_libdir"; then
430                             haveit=yes
431                             break
432                           fi
433                         done
434                         if test -z "$haveit"; then
435                           if test -d "$additional_libdir"; then
436                             dnl Really add $additional_libdir to $LTLIBNAME.
437                             LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-L$additional_libdir"
438                           fi
439                         fi
440                       fi
441                     fi
442                     ;;
443                   -R*)
444                     dir=`echo "X$dep" | sed -e 's/^X-R//'`
445                     if test "$enable_rpath" != no; then
446                       dnl Potentially add DIR to rpathdirs.
447                       dnl The rpathdirs will be appended to $LIBNAME at the end.
448                       haveit=
449                       for x in $rpathdirs; do
450                         if test "X$x" = "X$dir"; then
451                           haveit=yes
452                           break
453                         fi
454                       done
455                       if test -z "$haveit"; then
456                         rpathdirs="$rpathdirs $dir"
457                       fi
458                       dnl Potentially add DIR to ltrpathdirs.
459                       dnl The ltrpathdirs will be appended to $LTLIBNAME at the end.
460                       haveit=
461                       for x in $ltrpathdirs; do
462                         if test "X$x" = "X$dir"; then
463                           haveit=yes
464                           break
465                         fi
466                       done
467                       if test -z "$haveit"; then
468                         ltrpathdirs="$ltrpathdirs $dir"
469                       fi
470                     fi
471                     ;;
472                   -l*)
473                     dnl Handle this in the next round.
474                     names_next_round="$names_next_round "`echo "X$dep" | sed -e 's/^X-l//'`
475                     ;;
476                   *.la)
477                     dnl Handle this in the next round. Throw away the .la's
478                     dnl directory; it is already contained in a preceding -L
479                     dnl option.
480                     names_next_round="$names_next_round "`echo "X$dep" | sed -e 's,^X.*/,,' -e 's,^lib,,' -e 's,\.la$,,'`
481                     ;;
482                   *)
483                     dnl Most likely an immediate library name.
484                     LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$dep"
485                     LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }$dep"
486                     ;;
487                 esac
488               done
489             fi
490           else
491             dnl Didn't find the library; assume it is in the system directories
492             dnl known to the linker and runtime loader. (All the system
493             dnl directories known to the linker should also be known to the
494             dnl runtime loader, otherwise the system is severely misconfigured.)
495             if test "x$lib_type" = "xauto" || test "x$lib_type" = "xshared"; then
496               LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-l$name"
497               LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-l$name"
498             else
499               LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-l:lib$name.$libext"
500               LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-l:lib$name.$libext"
501             fi
502           fi
503         fi
504       fi
505     done
506   done
507   if test "X$rpathdirs" != "X"; then
508     if test -n "$hardcode_libdir_separator"; then
509       dnl Weird platform: only the last -rpath option counts, the user must
510       dnl pass all path elements in one option. We can arrange that for a
511       dnl single library, but not when more than one $LIBNAMEs are used.
512       alldirs=
513       for found_dir in $rpathdirs; do
514         alldirs="${alldirs}${alldirs:+$hardcode_libdir_separator}$found_dir"
515       done
516       dnl Note: hardcode_libdir_flag_spec uses $libdir and $wl.
517       acl_save_libdir="$libdir"
518       libdir="$alldirs"
519       eval flag=\"$hardcode_libdir_flag_spec\"
520       libdir="$acl_save_libdir"
521       LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$flag"
522     else
523       dnl The -rpath options are cumulative.
524       for found_dir in $rpathdirs; do
525         acl_save_libdir="$libdir"
526         libdir="$found_dir"
527         eval flag=\"$hardcode_libdir_flag_spec\"
528         libdir="$acl_save_libdir"
529         LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$flag"
530       done
531     fi
532   fi
533   if test "X$ltrpathdirs" != "X"; then
534     dnl When using libtool, the option that works for both libraries and
535     dnl executables is -R. The -R options are cumulative.
536     for found_dir in $ltrpathdirs; do
537       LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-R$found_dir"
538     done
539   fi
542 dnl AC_LIB_APPENDTOVAR(VAR, CONTENTS) appends the elements of CONTENTS to VAR,
543 dnl unless already present in VAR.
544 dnl Works only for CPPFLAGS, not for LIB* variables because that sometimes
545 dnl contains two or three consecutive elements that belong together.
546 AC_DEFUN([AC_LIB_APPENDTOVAR],
548   for element in [$2]; do
549     haveit=
550     for x in $[$1]; do
551       AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
552       if test "X$x" = "X$element"; then
553         haveit=yes
554         break
555       fi
556     done
557     if test -z "$haveit"; then
558       [$1]="${[$1]}${[$1]:+ }$element"
559     fi
560   done