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