Home | History | Annotate | Download | only in m4
      1 # 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 ])
    710