Home | History | Annotate | Line # | Download | only in m4
      1 # lib-link.m4 serial 6 (gettext-0.14.3)
      2 dnl Copyright (C) 2001-2005 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.50)
     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 AC_DEFUN([AC_LIB_LINKFLAGS],
     16 [
     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])
     39 ])
     40 
     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],
     50 [
     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___])])
     56 
     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])
     60 
     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)
     66 
     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])
     91 ])
     92 
     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],
     97 [
     98   dnl Tell automake >= 1.10 to complain if config.rpath is missing.
     99   m4_ifdef([AC_REQUIRE_AUX_FILE], [AC_REQUIRE_AUX_FILE([config.rpath])])
    100   AC_REQUIRE([AC_PROG_CC])                dnl we use $CC, $GCC, $LDFLAGS
    101   AC_REQUIRE([AC_LIB_PROG_LD])            dnl we use $LD, $with_gnu_ld
    102   AC_REQUIRE([AC_CANONICAL_HOST])         dnl we use $host
    103   AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT]) dnl we use $ac_aux_dir
    104   AC_CACHE_CHECK([for shared library run path origin], acl_cv_rpath, [
    105     CC="$CC" GCC="$GCC" LDFLAGS="$LDFLAGS" LD="$LD" with_gnu_ld="$with_gnu_ld" \
    106     ${CONFIG_SHELL-/bin/sh} "$ac_aux_dir/config.rpath" "$host" > conftest.sh
    107     . ./conftest.sh
    108     rm -f ./conftest.sh
    109     acl_cv_rpath=done
    110   ])
    111   wl="$acl_cv_wl"
    112   libext="$acl_cv_libext"
    113   shlibext="$acl_cv_shlibext"
    114   hardcode_libdir_flag_spec="$acl_cv_hardcode_libdir_flag_spec"
    115   hardcode_libdir_separator="$acl_cv_hardcode_libdir_separator"
    116   hardcode_direct="$acl_cv_hardcode_direct"
    117   hardcode_minus_L="$acl_cv_hardcode_minus_L"
    118   dnl Determine whether the user wants rpath handling at all.
    119   AC_ARG_ENABLE(rpath,
    120     [  --disable-rpath         do not hardcode runtime library paths],
    121     :, enable_rpath=yes)
    122 ])
    123 
    124 dnl AC_LIB_LINKFLAGS_BODY(name [, dependencies]) searches for libname and
    125 dnl the libraries corresponding to explicit and implicit dependencies.
    126 dnl Sets the LIB${NAME}, LTLIB${NAME} and INC${NAME} variables.
    127 AC_DEFUN([AC_LIB_LINKFLAGS_BODY],
    128 [
    129   define([NAME],[translit([$1],[abcdefghijklmnopqrstuvwxyz./-],
    130                                [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])])
    131   dnl By default, look in $includedir and $libdir.
    132   use_additional=yes
    133   AC_LIB_WITH_FINAL_PREFIX([
    134     eval additional_includedir=\"$includedir\"
    135     eval additional_libdir=\"$libdir\"
    136   ])
    137   AC_LIB_ARG_WITH([lib$1-prefix],
    138 [  --with-lib$1-prefix[=DIR]  search for lib$1 in DIR/include and DIR/lib
    139   --without-lib$1-prefix     don't search for lib$1 in includedir and libdir],
    140 [
    141     if test "X$withval" = "Xno"; then
    142       use_additional=no
    143     else
    144       if test "X$withval" = "X"; then
    145         AC_LIB_WITH_FINAL_PREFIX([
    146           eval additional_includedir=\"$includedir\"
    147           eval additional_libdir=\"$libdir\"
    148         ])
    149       else
    150         additional_includedir="$withval/include"
    151         additional_libdir="$withval/lib"
    152       fi
    153     fi
    154 ])
    155   dnl Search the library and its dependencies in $additional_libdir and
    156   dnl $LDFLAGS. Using breadth-first-seach.
    157   LIB[]NAME=
    158   LTLIB[]NAME=
    159   INC[]NAME=
    160   rpathdirs=
    161   ltrpathdirs=
    162   names_already_handled=
    163   names_next_round='$1 $2'
    164   while test -n "$names_next_round"; do
    165     names_this_round="$names_next_round"
    166     names_next_round=
    167     for name in $names_this_round; do
    168       already_handled=
    169       for n in $names_already_handled; do
    170         if test "$n" = "$name"; then
    171           already_handled=yes
    172           break
    173         fi
    174       done
    175       if test -z "$already_handled"; then
    176         names_already_handled="$names_already_handled $name"
    177         dnl See if it was already located by an earlier AC_LIB_LINKFLAGS
    178         dnl or AC_LIB_HAVE_LINKFLAGS call.
    179         uppername=`echo "$name" | sed -e 'y|abcdefghijklmnopqrstuvwxyz./-|ABCDEFGHIJKLMNOPQRSTUVWXYZ___|'`
    180         eval value=\"\$HAVE_LIB$uppername\"
    181         if test -n "$value"; then
    182           if test "$value" = yes; then
    183             eval value=\"\$LIB$uppername\"
    184             test -z "$value" || LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$value"
    185             eval value=\"\$LTLIB$uppername\"
    186             test -z "$value" || LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }$value"
    187           else
    188             dnl An earlier call to AC_LIB_HAVE_LINKFLAGS has determined
    189             dnl that this library doesn't exist. So just drop it.
    190             :
    191           fi
    192         else
    193           dnl Search the library lib$name in $additional_libdir and $LDFLAGS
    194           dnl and the already constructed $LIBNAME/$LTLIBNAME.
    195           found_dir=
    196           found_la=
    197           found_so=
    198           found_a=
    199           if test $use_additional = yes; then
    200             if test -n "$shlibext" && test -f "$additional_libdir/lib$name.$shlibext"; then
    201               found_dir="$additional_libdir"
    202               found_so="$additional_libdir/lib$name.$shlibext"
    203               if test -f "$additional_libdir/lib$name.la"; then
    204                 found_la="$additional_libdir/lib$name.la"
    205               fi
    206             else
    207               if test -f "$additional_libdir/lib$name.$libext"; then
    208                 found_dir="$additional_libdir"
    209                 found_a="$additional_libdir/lib$name.$libext"
    210                 if test -f "$additional_libdir/lib$name.la"; then
    211                   found_la="$additional_libdir/lib$name.la"
    212                 fi
    213               fi
    214             fi
    215           fi
    216           if test "X$found_dir" = "X"; then
    217             for x in $LDFLAGS $LTLIB[]NAME; do
    218               AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
    219               case "$x" in
    220                 -L*)
    221                   dir=`echo "X$x" | sed -e 's/^X-L//'`
    222                   if test -n "$shlibext" && test -f "$dir/lib$name.$shlibext"; then
    223                     found_dir="$dir"
    224                     found_so="$dir/lib$name.$shlibext"
    225                     if test -f "$dir/lib$name.la"; then
    226                       found_la="$dir/lib$name.la"
    227                     fi
    228                   else
    229                     if test -f "$dir/lib$name.$libext"; then
    230                       found_dir="$dir"
    231                       found_a="$dir/lib$name.$libext"
    232                       if test -f "$dir/lib$name.la"; then
    233                         found_la="$dir/lib$name.la"
    234                       fi
    235                     fi
    236                   fi
    237                   ;;
    238               esac
    239               if test "X$found_dir" != "X"; then
    240                 break
    241               fi
    242             done
    243           fi
    244           if test "X$found_dir" != "X"; then
    245             dnl Found the library.
    246             LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-L$found_dir -l$name"
    247             if test "X$found_so" != "X"; then
    248               dnl Linking with a shared library. We attempt to hardcode its
    249               dnl directory into the executable's runpath, unless it's the
    250               dnl standard /usr/lib.
    251               if test "$enable_rpath" = no || test "X$found_dir" = "X/usr/lib"; then
    252                 dnl No hardcoding is needed.
    253                 LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so"
    254               else
    255                 dnl Use an explicit option to hardcode DIR into the resulting
    256                 dnl binary.
    257                 dnl Potentially add DIR to ltrpathdirs.
    258                 dnl The ltrpathdirs will be appended to $LTLIBNAME at the end.
    259                 haveit=
    260                 for x in $ltrpathdirs; do
    261                   if test "X$x" = "X$found_dir"; then
    262                     haveit=yes
    263                     break
    264                   fi
    265                 done
    266                 if test -z "$haveit"; then
    267                   ltrpathdirs="$ltrpathdirs $found_dir"
    268                 fi
    269                 dnl The hardcoding into $LIBNAME is system dependent.
    270                 if test "$hardcode_direct" = yes; then
    271                   dnl Using DIR/libNAME.so during linking hardcodes DIR into the
    272                   dnl resulting binary.
    273                   LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so"
    274                 else
    275                   if test -n "$hardcode_libdir_flag_spec" && test "$hardcode_minus_L" = no; then
    276                     dnl Use an explicit option to hardcode DIR into the resulting
    277                     dnl binary.
    278                     LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so"
    279                     dnl Potentially add DIR to rpathdirs.
    280                     dnl The rpathdirs will be appended to $LIBNAME at the end.
    281                     haveit=
    282                     for x in $rpathdirs; do
    283                       if test "X$x" = "X$found_dir"; then
    284                         haveit=yes
    285                         break
    286                       fi
    287                     done
    288                     if test -z "$haveit"; then
    289                       rpathdirs="$rpathdirs $found_dir"
    290                     fi
    291                   else
    292                     dnl Rely on "-L$found_dir".
    293                     dnl But don't add it if it's already contained in the LDFLAGS
    294                     dnl or the already constructed $LIBNAME
    295                     haveit=
    296                     for x in $LDFLAGS $LIB[]NAME; do
    297                       AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
    298                       if test "X$x" = "X-L$found_dir"; then
    299                         haveit=yes
    300                         break
    301                       fi
    302                     done
    303                     if test -z "$haveit"; then
    304                       LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$found_dir"
    305                     fi
    306                     if test "$hardcode_minus_L" != no; then
    307                       dnl FIXME: Not sure whether we should use
    308                       dnl "-L$found_dir -l$name" or "-L$found_dir $found_so"
    309                       dnl here.
    310                       LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so"
    311                     else
    312                       dnl We cannot use $hardcode_runpath_var and LD_RUN_PATH
    313                       dnl here, because this doesn't fit in flags passed to the
    314                       dnl compiler. So give up. No hardcoding. This affects only
    315                       dnl very old systems.
    316                       dnl FIXME: Not sure whether we should use
    317                       dnl "-L$found_dir -l$name" or "-L$found_dir $found_so"
    318                       dnl here.
    319                       LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-l$name"
    320                     fi
    321                   fi
    322                 fi
    323               fi
    324             else
    325               if test "X$found_a" != "X"; then
    326                 dnl Linking with a static library.
    327                 LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_a"
    328               else
    329                 dnl We shouldn't come here, but anyway it's good to have a
    330                 dnl fallback.
    331                 LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$found_dir -l$name"
    332               fi
    333             fi
    334             dnl Assume the include files are nearby.
    335             additional_includedir=
    336             case "$found_dir" in
    337               */lib | */lib/)
    338                 basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e 's,/lib/*$,,'`
    339                 additional_includedir="$basedir/include"
    340                 ;;
    341             esac
    342             if test "X$additional_includedir" != "X"; then
    343               dnl Potentially add $additional_includedir to $INCNAME.
    344               dnl But don't add it
    345               dnl   1. if it's the standard /usr/include,
    346               dnl   2. if it's /usr/local/include and we are using GCC on Linux,
    347               dnl   3. if it's already present in $CPPFLAGS or the already
    348               dnl      constructed $INCNAME,
    349               dnl   4. if it doesn't exist as a directory.
    350               if test "X$additional_includedir" != "X/usr/include"; then
    351                 haveit=
    352                 if test "X$additional_includedir" = "X/usr/local/include"; then
    353                   if test -n "$GCC"; then
    354                     case $host_os in
    355                       linux* | gnu* | k*bsd*-gnu) haveit=yes;;
    356                     esac
    357                   fi
    358                 fi
    359                 if test -z "$haveit"; then
    360                   for x in $CPPFLAGS $INC[]NAME; do
    361                     AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
    362                     if test "X$x" = "X-I$additional_includedir"; then
    363                       haveit=yes
    364                       break
    365                     fi
    366                   done
    367                   if test -z "$haveit"; then
    368                     if test -d "$additional_includedir"; then
    369                       dnl Really add $additional_includedir to $INCNAME.
    370                       INC[]NAME="${INC[]NAME}${INC[]NAME:+ }-I$additional_includedir"
    371                     fi
    372                   fi
    373                 fi
    374               fi
    375             fi
    376             dnl Look for dependencies.
    377             if test -n "$found_la"; then
    378               dnl Read the .la file. It defines the variables
    379               dnl dlname, library_names, old_library, dependency_libs, current,
    380               dnl age, revision, installed, dlopen, dlpreopen, libdir.
    381               save_libdir="$libdir"
    382               case "$found_la" in
    383                 */* | *\\*) . "$found_la" ;;
    384                 *) . "./$found_la" ;;
    385               esac
    386               libdir="$save_libdir"
    387               dnl We use only dependency_libs.
    388               for dep in $dependency_libs; do
    389                 case "$dep" in
    390                   -L*)
    391                     additional_libdir=`echo "X$dep" | sed -e 's/^X-L//'`
    392                     dnl Potentially add $additional_libdir to $LIBNAME and $LTLIBNAME.
    393                     dnl But don't add it
    394                     dnl   1. if it's the standard /usr/lib,
    395                     dnl   2. if it's /usr/local/lib and we are using GCC on Linux,
    396                     dnl   3. if it's already present in $LDFLAGS or the already
    397                     dnl      constructed $LIBNAME,
    398                     dnl   4. if it doesn't exist as a directory.
    399                     if test "X$additional_libdir" != "X/usr/lib"; then
    400                       haveit=
    401                       if test "X$additional_libdir" = "X/usr/local/lib"; then
    402                         if test -n "$GCC"; then
    403                           case $host_os in
    404                             linux* | gnu* | k*bsd*-gnu) haveit=yes;;
    405                           esac
    406                         fi
    407                       fi
    408                       if test -z "$haveit"; then
    409                         haveit=
    410                         for x in $LDFLAGS $LIB[]NAME; do
    411                           AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
    412                           if test "X$x" = "X-L$additional_libdir"; then
    413                             haveit=yes
    414                             break
    415                           fi
    416                         done
    417                         if test -z "$haveit"; then
    418                           if test -d "$additional_libdir"; then
    419                             dnl Really add $additional_libdir to $LIBNAME.
    420                             LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$additional_libdir"
    421                           fi
    422                         fi
    423                         haveit=
    424                         for x in $LDFLAGS $LTLIB[]NAME; do
    425                           AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
    426                           if test "X$x" = "X-L$additional_libdir"; then
    427                             haveit=yes
    428                             break
    429                           fi
    430                         done
    431                         if test -z "$haveit"; then
    432                           if test -d "$additional_libdir"; then
    433                             dnl Really add $additional_libdir to $LTLIBNAME.
    434                             LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-L$additional_libdir"
    435                           fi
    436                         fi
    437                       fi
    438                     fi
    439                     ;;
    440                   -R*)
    441                     dir=`echo "X$dep" | sed -e 's/^X-R//'`
    442                     if test "$enable_rpath" != no; then
    443                       dnl Potentially add DIR to rpathdirs.
    444                       dnl The rpathdirs will be appended to $LIBNAME at the end.
    445                       haveit=
    446                       for x in $rpathdirs; do
    447                         if test "X$x" = "X$dir"; then
    448                           haveit=yes
    449                           break
    450                         fi
    451                       done
    452                       if test -z "$haveit"; then
    453                         rpathdirs="$rpathdirs $dir"
    454                       fi
    455                       dnl Potentially add DIR to ltrpathdirs.
    456                       dnl The ltrpathdirs will be appended to $LTLIBNAME at the end.
    457                       haveit=
    458                       for x in $ltrpathdirs; do
    459                         if test "X$x" = "X$dir"; then
    460                           haveit=yes
    461                           break
    462                         fi
    463                       done
    464                       if test -z "$haveit"; then
    465                         ltrpathdirs="$ltrpathdirs $dir"
    466                       fi
    467                     fi
    468                     ;;
    469                   -l*)
    470                     dnl Handle this in the next round.
    471                     names_next_round="$names_next_round "`echo "X$dep" | sed -e 's/^X-l//'`
    472                     ;;
    473                   *.la)
    474                     dnl Handle this in the next round. Throw away the .la's
    475                     dnl directory; it is already contained in a preceding -L
    476                     dnl option.
    477                     names_next_round="$names_next_round "`echo "X$dep" | sed -e 's,^X.*/,,' -e 's,^lib,,' -e 's,\.la$,,'`
    478                     ;;
    479                   *)
    480                     dnl Most likely an immediate library name.
    481                     LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$dep"
    482                     LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }$dep"
    483                     ;;
    484                 esac
    485               done
    486             fi
    487           else
    488             dnl Didn't find the library; assume it is in the system directories
    489             dnl known to the linker and runtime loader. (All the system
    490             dnl directories known to the linker should also be known to the
    491             dnl runtime loader, otherwise the system is severely misconfigured.)
    492             LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-l$name"
    493             LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-l$name"
    494           fi
    495         fi
    496       fi
    497     done
    498   done
    499   if test "X$rpathdirs" != "X"; then
    500     if test -n "$hardcode_libdir_separator"; then
    501       dnl Weird platform: only the last -rpath option counts, the user must
    502       dnl pass all path elements in one option. We can arrange that for a
    503       dnl single library, but not when more than one $LIBNAMEs are used.
    504       alldirs=
    505       for found_dir in $rpathdirs; do
    506         alldirs="${alldirs}${alldirs:+$hardcode_libdir_separator}$found_dir"
    507       done
    508       dnl Note: hardcode_libdir_flag_spec uses $libdir and $wl.
    509       acl_save_libdir="$libdir"
    510       libdir="$alldirs"
    511       eval flag=\"$hardcode_libdir_flag_spec\"
    512       libdir="$acl_save_libdir"
    513       LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$flag"
    514     else
    515       dnl The -rpath options are cumulative.
    516       for found_dir in $rpathdirs; do
    517         acl_save_libdir="$libdir"
    518         libdir="$found_dir"
    519         eval flag=\"$hardcode_libdir_flag_spec\"
    520         libdir="$acl_save_libdir"
    521         LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$flag"
    522       done
    523     fi
    524   fi
    525   if test "X$ltrpathdirs" != "X"; then
    526     dnl When using libtool, the option that works for both libraries and
    527     dnl executables is -R. The -R options are cumulative.
    528     for found_dir in $ltrpathdirs; do
    529       LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-R$found_dir"
    530     done
    531   fi
    532 ])
    533 
    534 dnl AC_LIB_APPENDTOVAR(VAR, CONTENTS) appends the elements of CONTENTS to VAR,
    535 dnl unless already present in VAR.
    536 dnl Works only for CPPFLAGS, not for LIB* variables because that sometimes
    537 dnl contains two or three consecutive elements that belong together.
    538 AC_DEFUN([AC_LIB_APPENDTOVAR],
    539 [
    540   for element in [$2]; do
    541     haveit=
    542     for x in $[$1]; do
    543       AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
    544       if test "X$x" = "X$element"; then
    545         haveit=yes
    546         break
    547       fi
    548     done
    549     if test -z "$haveit"; then
    550       [$1]="${[$1]}${[$1]:+ }$element"
    551     fi
    552   done
    553 ])
    554