"Fossies" - the Fresh Open Source Software Archive

Member "libextractor-1.11/m4/lib-link.m4" (2 Dec 2018, 33059 Bytes) of package /linux/privat/libextractor-1.11.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. See also the last Fossies "Diffs" side-by-side code changes report for "lib-link.m4": 1.8_vs_1.9.

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