"Fossies" - the Fresh Open Source Software Archive

Member "duff-0.5.2/m4/lib-link.m4" (28 Jan 2012, 32898 Bytes) of package /linux/privat/old/duff-0.5.2.tar.gz:


As a special service "Fossies" has tried to format the requested text file into HTML format (style: standard) with prefixed line numbers. Alternatively you can here view or download the uninterpreted source code file.

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