Blame m4/lib-link.m4

Packit f546b1
# lib-link.m4 serial 13 (gettext-0.17)
Packit f546b1
dnl Copyright (C) 2001-2007 Free Software Foundation, Inc.
Packit f546b1
dnl This file is free software; the Free Software Foundation
Packit f546b1
dnl gives unlimited permission to copy and/or distribute it,
Packit f546b1
dnl with or without modifications, as long as this notice is preserved.
Packit f546b1
Packit f546b1
dnl From Bruno Haible.
Packit f546b1
Packit f546b1
AC_PREREQ(2.54)
Packit f546b1
Packit f546b1
dnl AC_LIB_LINKFLAGS(name [, dependencies]) searches for libname and
Packit f546b1
dnl the libraries corresponding to explicit and implicit dependencies.
Packit f546b1
dnl Sets and AC_SUBSTs the LIB${NAME} and LTLIB${NAME} variables and
Packit f546b1
dnl augments the CPPFLAGS variable.
Packit f546b1
dnl Sets and AC_SUBSTs the LIB${NAME}_PREFIX variable to nonempty if libname
Packit f546b1
dnl was found in ${LIB${NAME}_PREFIX}/$acl_libdirstem.
Packit f546b1
AC_DEFUN([AC_LIB_LINKFLAGS],
Packit f546b1
[
Packit f546b1
  AC_REQUIRE([AC_LIB_PREPARE_PREFIX])
Packit f546b1
  AC_REQUIRE([AC_LIB_RPATH])
Packit f546b1
  define([Name],[translit([$1],[./-], [___])])
Packit f546b1
  define([NAME],[translit([$1],[abcdefghijklmnopqrstuvwxyz./-],
Packit f546b1
                               [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])])
Packit f546b1
  AC_CACHE_CHECK([how to link with lib[]$1], [ac_cv_lib[]Name[]_libs], [
Packit f546b1
    AC_LIB_LINKFLAGS_BODY([$1], [$2])
Packit f546b1
    ac_cv_lib[]Name[]_libs="$LIB[]NAME"
Packit f546b1
    ac_cv_lib[]Name[]_ltlibs="$LTLIB[]NAME"
Packit f546b1
    ac_cv_lib[]Name[]_cppflags="$INC[]NAME"
Packit f546b1
    ac_cv_lib[]Name[]_prefix="$LIB[]NAME[]_PREFIX"
Packit f546b1
  ])
Packit f546b1
  LIB[]NAME="$ac_cv_lib[]Name[]_libs"
Packit f546b1
  LTLIB[]NAME="$ac_cv_lib[]Name[]_ltlibs"
Packit f546b1
  INC[]NAME="$ac_cv_lib[]Name[]_cppflags"
Packit f546b1
  LIB[]NAME[]_PREFIX="$ac_cv_lib[]Name[]_prefix"
Packit f546b1
  AC_LIB_APPENDTOVAR([CPPFLAGS], [$INC]NAME)
Packit f546b1
  AC_SUBST([LIB]NAME)
Packit f546b1
  AC_SUBST([LTLIB]NAME)
Packit f546b1
  AC_SUBST([LIB]NAME[_PREFIX])
Packit f546b1
  dnl Also set HAVE_LIB[]NAME so that AC_LIB_HAVE_LINKFLAGS can reuse the
Packit f546b1
  dnl results of this search when this library appears as a dependency.
Packit f546b1
  HAVE_LIB[]NAME=yes
Packit f546b1
  undefine([Name])
Packit f546b1
  undefine([NAME])
Packit f546b1
])
Packit f546b1
Packit f546b1
dnl AC_LIB_HAVE_LINKFLAGS(name, dependencies, includes, testcode)
Packit f546b1
dnl searches for libname and the libraries corresponding to explicit and
Packit f546b1
dnl implicit dependencies, together with the specified include files and
Packit f546b1
dnl the ability to compile and link the specified testcode. If found, it
Packit f546b1
dnl sets and AC_SUBSTs HAVE_LIB${NAME}=yes and the LIB${NAME} and
Packit f546b1
dnl LTLIB${NAME} variables and augments the CPPFLAGS variable, and
Packit f546b1
dnl #defines HAVE_LIB${NAME} to 1. Otherwise, it sets and AC_SUBSTs
Packit f546b1
dnl HAVE_LIB${NAME}=no and LIB${NAME} and LTLIB${NAME} to empty.
Packit f546b1
dnl Sets and AC_SUBSTs the LIB${NAME}_PREFIX variable to nonempty if libname
Packit f546b1
dnl was found in ${LIB${NAME}_PREFIX}/$acl_libdirstem.
Packit f546b1
AC_DEFUN([AC_LIB_HAVE_LINKFLAGS],
Packit f546b1
[
Packit f546b1
  AC_REQUIRE([AC_LIB_PREPARE_PREFIX])
Packit f546b1
  AC_REQUIRE([AC_LIB_RPATH])
Packit f546b1
  define([Name],[translit([$1],[./-], [___])])
Packit f546b1
  define([NAME],[translit([$1],[abcdefghijklmnopqrstuvwxyz./-],
Packit f546b1
                               [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])])
Packit f546b1
Packit f546b1
  dnl Search for lib[]Name and define LIB[]NAME, LTLIB[]NAME and INC[]NAME
Packit f546b1
  dnl accordingly.
Packit f546b1
  AC_LIB_LINKFLAGS_BODY([$1], [$2])
Packit f546b1
Packit f546b1
  dnl Add $INC[]NAME to CPPFLAGS before performing the following checks,
Packit f546b1
  dnl because if the user has installed lib[]Name and not disabled its use
Packit f546b1
  dnl via --without-lib[]Name-prefix, he wants to use it.
Packit f546b1
  ac_save_CPPFLAGS="$CPPFLAGS"
Packit f546b1
  AC_LIB_APPENDTOVAR([CPPFLAGS], [$INC]NAME)
Packit f546b1
Packit f546b1
  AC_CACHE_CHECK([for lib[]$1], [ac_cv_lib[]Name], [
Packit f546b1
    ac_save_LIBS="$LIBS"
Packit f546b1
    LIBS="$LIBS $LIB[]NAME"
Packit f546b1
    AC_TRY_LINK([$3], [$4], [ac_cv_lib[]Name=yes], [ac_cv_lib[]Name=no])
Packit f546b1
    LIBS="$ac_save_LIBS"
Packit f546b1
  ])
Packit f546b1
  if test "$ac_cv_lib[]Name" = yes; then
Packit f546b1
    HAVE_LIB[]NAME=yes
Packit f546b1
    AC_DEFINE([HAVE_LIB]NAME, 1, [Define if you have the $1 library.])
Packit f546b1
    AC_MSG_CHECKING([how to link with lib[]$1])
Packit f546b1
    AC_MSG_RESULT([$LIB[]NAME])
Packit f546b1
  else
Packit f546b1
    HAVE_LIB[]NAME=no
Packit f546b1
    dnl If $LIB[]NAME didn't lead to a usable library, we don't need
Packit f546b1
    dnl $INC[]NAME either.
Packit f546b1
    CPPFLAGS="$ac_save_CPPFLAGS"
Packit f546b1
    LIB[]NAME=
Packit f546b1
    LTLIB[]NAME=
Packit f546b1
    LIB[]NAME[]_PREFIX=
Packit f546b1
  fi
Packit f546b1
  AC_SUBST([HAVE_LIB]NAME)
Packit f546b1
  AC_SUBST([LIB]NAME)
Packit f546b1
  AC_SUBST([LTLIB]NAME)
Packit f546b1
  AC_SUBST([LIB]NAME[_PREFIX])
Packit f546b1
  undefine([Name])
Packit f546b1
  undefine([NAME])
Packit f546b1
])
Packit f546b1
Packit f546b1
dnl Determine the platform dependent parameters needed to use rpath:
Packit f546b1
dnl   acl_libext,
Packit f546b1
dnl   acl_shlibext,
Packit f546b1
dnl   acl_hardcode_libdir_flag_spec,
Packit f546b1
dnl   acl_hardcode_libdir_separator,
Packit f546b1
dnl   acl_hardcode_direct,
Packit f546b1
dnl   acl_hardcode_minus_L.
Packit f546b1
AC_DEFUN([AC_LIB_RPATH],
Packit f546b1
[
Packit f546b1
  dnl Tell automake >= 1.10 to complain if config.rpath is missing.
Packit f546b1
  m4_ifdef([AC_REQUIRE_AUX_FILE], [AC_REQUIRE_AUX_FILE([config.rpath])])
Packit f546b1
  AC_REQUIRE([AC_PROG_CC])                dnl we use $CC, $GCC, $LDFLAGS
Packit f546b1
  AC_REQUIRE([AC_LIB_PROG_LD])            dnl we use $LD, $with_gnu_ld
Packit f546b1
  AC_REQUIRE([AC_CANONICAL_HOST])         dnl we use $host
Packit f546b1
  AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT]) dnl we use $ac_aux_dir
Packit f546b1
  AC_CACHE_CHECK([for shared library run path origin], acl_cv_rpath, [
Packit f546b1
    CC="$CC" GCC="$GCC" LDFLAGS="$LDFLAGS" LD="$LD" with_gnu_ld="$with_gnu_ld" \
Packit f546b1
    ${CONFIG_SHELL-/bin/sh} "$ac_aux_dir/config.rpath" "$host" > conftest.sh
Packit f546b1
    . ./conftest.sh
Packit f546b1
    rm -f ./conftest.sh
Packit f546b1
    acl_cv_rpath=done
Packit f546b1
  ])
Packit f546b1
  wl="$acl_cv_wl"
Packit f546b1
  acl_libext="$acl_cv_libext"
Packit f546b1
  acl_shlibext="$acl_cv_shlibext"
Packit f546b1
  acl_libname_spec="$acl_cv_libname_spec"
Packit f546b1
  acl_library_names_spec="$acl_cv_library_names_spec"
Packit f546b1
  acl_hardcode_libdir_flag_spec="$acl_cv_hardcode_libdir_flag_spec"
Packit f546b1
  acl_hardcode_libdir_separator="$acl_cv_hardcode_libdir_separator"
Packit f546b1
  acl_hardcode_direct="$acl_cv_hardcode_direct"
Packit f546b1
  acl_hardcode_minus_L="$acl_cv_hardcode_minus_L"
Packit f546b1
  dnl Determine whether the user wants rpath handling at all.
Packit f546b1
  AC_ARG_ENABLE(rpath,
Packit f546b1
    [  --disable-rpath         do not hardcode runtime library paths],
Packit f546b1
    :, enable_rpath=yes)
Packit f546b1
])
Packit f546b1
Packit f546b1
dnl AC_LIB_LINKFLAGS_BODY(name [, dependencies]) searches for libname and
Packit f546b1
dnl the libraries corresponding to explicit and implicit dependencies.
Packit f546b1
dnl Sets the LIB${NAME}, LTLIB${NAME} and INC${NAME} variables.
Packit f546b1
dnl Also, sets the LIB${NAME}_PREFIX variable to nonempty if libname was found
Packit f546b1
dnl in ${LIB${NAME}_PREFIX}/$acl_libdirstem.
Packit f546b1
AC_DEFUN([AC_LIB_LINKFLAGS_BODY],
Packit f546b1
[
Packit f546b1
  AC_REQUIRE([AC_LIB_PREPARE_MULTILIB])
Packit f546b1
  define([NAME],[translit([$1],[abcdefghijklmnopqrstuvwxyz./-],
Packit f546b1
                               [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])])
Packit f546b1
  dnl Autoconf >= 2.61 supports dots in --with options.
Packit f546b1
  define([N_A_M_E],[m4_if(m4_version_compare(m4_defn([m4_PACKAGE_VERSION]),[2.61]),[-1],[translit([$1],[.],[_])],[$1])])
Packit f546b1
  dnl By default, look in $includedir and $libdir.
Packit f546b1
  use_additional=yes
Packit f546b1
  AC_LIB_WITH_FINAL_PREFIX([
Packit f546b1
    eval additional_includedir=\"$includedir\"
Packit f546b1
    eval additional_libdir=\"$libdir\"
Packit f546b1
  ])
Packit f546b1
  AC_LIB_ARG_WITH([lib]N_A_M_E[-prefix],
Packit f546b1
[  --with-lib]N_A_M_E[-prefix[=DIR]  search for lib$1 in DIR/include and DIR/lib
Packit f546b1
  --without-lib]N_A_M_E[-prefix     don't search for lib$1 in includedir and libdir],
Packit f546b1
[
Packit f546b1
    if test "X$withval" = "Xno"; then
Packit f546b1
      use_additional=no
Packit f546b1
    else
Packit f546b1
      if test "X$withval" = "X"; then
Packit f546b1
        AC_LIB_WITH_FINAL_PREFIX([
Packit f546b1
          eval additional_includedir=\"$includedir\"
Packit f546b1
          eval additional_libdir=\"$libdir\"
Packit f546b1
        ])
Packit f546b1
      else
Packit f546b1
        additional_includedir="$withval/include"
Packit f546b1
        additional_libdir="$withval/$acl_libdirstem"
Packit f546b1
      fi
Packit f546b1
    fi
Packit f546b1
])
Packit f546b1
  dnl Search the library and its dependencies in $additional_libdir and
Packit f546b1
  dnl $LDFLAGS. Using breadth-first-seach.
Packit f546b1
  LIB[]NAME=
Packit f546b1
  LTLIB[]NAME=
Packit f546b1
  INC[]NAME=
Packit f546b1
  LIB[]NAME[]_PREFIX=
Packit f546b1
  rpathdirs=
Packit f546b1
  ltrpathdirs=
Packit f546b1
  names_already_handled=
Packit f546b1
  names_next_round='$1 $2'
Packit f546b1
  while test -n "$names_next_round"; do
Packit f546b1
    names_this_round="$names_next_round"
Packit f546b1
    names_next_round=
Packit f546b1
    for name in $names_this_round; do
Packit f546b1
      already_handled=
Packit f546b1
      for n in $names_already_handled; do
Packit f546b1
        if test "$n" = "$name"; then
Packit f546b1
          already_handled=yes
Packit f546b1
          break
Packit f546b1
        fi
Packit f546b1
      done
Packit f546b1
      if test -z "$already_handled"; then
Packit f546b1
        names_already_handled="$names_already_handled $name"
Packit f546b1
        dnl See if it was already located by an earlier AC_LIB_LINKFLAGS
Packit f546b1
        dnl or AC_LIB_HAVE_LINKFLAGS call.
Packit f546b1
        uppername=`echo "$name" | sed -e 'y|abcdefghijklmnopqrstuvwxyz./-|ABCDEFGHIJKLMNOPQRSTUVWXYZ___|'`
Packit f546b1
        eval value=\"\$HAVE_LIB$uppername\"
Packit f546b1
        if test -n "$value"; then
Packit f546b1
          if test "$value" = yes; then
Packit f546b1
            eval value=\"\$LIB$uppername\"
Packit f546b1
            test -z "$value" || LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$value"
Packit f546b1
            eval value=\"\$LTLIB$uppername\"
Packit f546b1
            test -z "$value" || LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }$value"
Packit f546b1
          else
Packit f546b1
            dnl An earlier call to AC_LIB_HAVE_LINKFLAGS has determined
Packit f546b1
            dnl that this library doesn't exist. So just drop it.
Packit f546b1
            :
Packit f546b1
          fi
Packit f546b1
        else
Packit f546b1
          dnl Search the library lib$name in $additional_libdir and $LDFLAGS
Packit f546b1
          dnl and the already constructed $LIBNAME/$LTLIBNAME.
Packit f546b1
          found_dir=
Packit f546b1
          found_la=
Packit f546b1
          found_so=
Packit f546b1
          found_a=
Packit f546b1
          eval libname=\"$acl_libname_spec\"    # typically: libname=lib$name
Packit f546b1
          if test -n "$acl_shlibext"; then
Packit f546b1
            shrext=".$acl_shlibext"             # typically: shrext=.so
Packit f546b1
          else
Packit f546b1
            shrext=
Packit f546b1
          fi
Packit f546b1
          if test $use_additional = yes; then
Packit f546b1
            dir="$additional_libdir"
Packit f546b1
            dnl The same code as in the loop below:
Packit f546b1
            dnl First look for a shared library.
Packit f546b1
            if test -n "$acl_shlibext"; then
Packit f546b1
              if test -f "$dir/$libname$shrext"; then
Packit f546b1
                found_dir="$dir"
Packit f546b1
                found_so="$dir/$libname$shrext"
Packit f546b1
              else
Packit f546b1
                if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then
Packit f546b1
                  ver=`(cd "$dir" && \
Packit f546b1
                        for f in "$libname$shrext".*; do echo "$f"; done \
Packit f546b1
                        | sed -e "s,^$libname$shrext\\\\.,," \
Packit f546b1
                        | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \
Packit f546b1
                        | sed 1q ) 2>/dev/null`
Packit f546b1
                  if test -n "$ver" && test -f "$dir/$libname$shrext.$ver"; then
Packit f546b1
                    found_dir="$dir"
Packit f546b1
                    found_so="$dir/$libname$shrext.$ver"
Packit f546b1
                  fi
Packit f546b1
                else
Packit f546b1
                  eval library_names=\"$acl_library_names_spec\"
Packit f546b1
                  for f in $library_names; do
Packit f546b1
                    if test -f "$dir/$f"; then
Packit f546b1
                      found_dir="$dir"
Packit f546b1
                      found_so="$dir/$f"
Packit f546b1
                      break
Packit f546b1
                    fi
Packit f546b1
                  done
Packit f546b1
                fi
Packit f546b1
              fi
Packit f546b1
            fi
Packit f546b1
            dnl Then look for a static library.
Packit f546b1
            if test "X$found_dir" = "X"; then
Packit f546b1
              if test -f "$dir/$libname.$acl_libext"; then
Packit f546b1
                found_dir="$dir"
Packit f546b1
                found_a="$dir/$libname.$acl_libext"
Packit f546b1
              fi
Packit f546b1
            fi
Packit f546b1
            if test "X$found_dir" != "X"; then
Packit f546b1
              if test -f "$dir/$libname.la"; then
Packit f546b1
                found_la="$dir/$libname.la"
Packit f546b1
              fi
Packit f546b1
            fi
Packit f546b1
          fi
Packit f546b1
          if test "X$found_dir" = "X"; then
Packit f546b1
            for x in $LDFLAGS $LTLIB[]NAME; do
Packit f546b1
              AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
Packit f546b1
              case "$x" in
Packit f546b1
                -L*)
Packit f546b1
                  dir=`echo "X$x" | sed -e 's/^X-L//'`
Packit f546b1
                  dnl First look for a shared library.
Packit f546b1
                  if test -n "$acl_shlibext"; then
Packit f546b1
                    if test -f "$dir/$libname$shrext"; then
Packit f546b1
                      found_dir="$dir"
Packit f546b1
                      found_so="$dir/$libname$shrext"
Packit f546b1
                    else
Packit f546b1
                      if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then
Packit f546b1
                        ver=`(cd "$dir" && \
Packit f546b1
                              for f in "$libname$shrext".*; do echo "$f"; done \
Packit f546b1
                              | sed -e "s,^$libname$shrext\\\\.,," \
Packit f546b1
                              | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \
Packit f546b1
                              | sed 1q ) 2>/dev/null`
Packit f546b1
                        if test -n "$ver" && test -f "$dir/$libname$shrext.$ver"; then
Packit f546b1
                          found_dir="$dir"
Packit f546b1
                          found_so="$dir/$libname$shrext.$ver"
Packit f546b1
                        fi
Packit f546b1
                      else
Packit f546b1
                        eval library_names=\"$acl_library_names_spec\"
Packit f546b1
                        for f in $library_names; do
Packit f546b1
                          if test -f "$dir/$f"; then
Packit f546b1
                            found_dir="$dir"
Packit f546b1
                            found_so="$dir/$f"
Packit f546b1
                            break
Packit f546b1
                          fi
Packit f546b1
                        done
Packit f546b1
                      fi
Packit f546b1
                    fi
Packit f546b1
                  fi
Packit f546b1
                  dnl Then look for a static library.
Packit f546b1
                  if test "X$found_dir" = "X"; then
Packit f546b1
                    if test -f "$dir/$libname.$acl_libext"; then
Packit f546b1
                      found_dir="$dir"
Packit f546b1
                      found_a="$dir/$libname.$acl_libext"
Packit f546b1
                    fi
Packit f546b1
                  fi
Packit f546b1
                  if test "X$found_dir" != "X"; then
Packit f546b1
                    if test -f "$dir/$libname.la"; then
Packit f546b1
                      found_la="$dir/$libname.la"
Packit f546b1
                    fi
Packit f546b1
                  fi
Packit f546b1
                  ;;
Packit f546b1
              esac
Packit f546b1
              if test "X$found_dir" != "X"; then
Packit f546b1
                break
Packit f546b1
              fi
Packit f546b1
            done
Packit f546b1
          fi
Packit f546b1
          if test "X$found_dir" != "X"; then
Packit f546b1
            dnl Found the library.
Packit f546b1
            LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-L$found_dir -l$name"
Packit f546b1
            if test "X$found_so" != "X"; then
Packit f546b1
              dnl Linking with a shared library. We attempt to hardcode its
Packit f546b1
              dnl directory into the executable's runpath, unless it's the
Packit f546b1
              dnl standard /usr/lib.
Packit f546b1
              if test "$enable_rpath" = no || test "X$found_dir" = "X/usr/$acl_libdirstem"; then
Packit f546b1
                dnl No hardcoding is needed.
Packit f546b1
                LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so"
Packit f546b1
              else
Packit f546b1
                dnl Use an explicit option to hardcode DIR into the resulting
Packit f546b1
                dnl binary.
Packit f546b1
                dnl Potentially add DIR to ltrpathdirs.
Packit f546b1
                dnl The ltrpathdirs will be appended to $LTLIBNAME at the end.
Packit f546b1
                haveit=
Packit f546b1
                for x in $ltrpathdirs; do
Packit f546b1
                  if test "X$x" = "X$found_dir"; then
Packit f546b1
                    haveit=yes
Packit f546b1
                    break
Packit f546b1
                  fi
Packit f546b1
                done
Packit f546b1
                if test -z "$haveit"; then
Packit f546b1
                  ltrpathdirs="$ltrpathdirs $found_dir"
Packit f546b1
                fi
Packit f546b1
                dnl The hardcoding into $LIBNAME is system dependent.
Packit f546b1
                if test "$acl_hardcode_direct" = yes; then
Packit f546b1
                  dnl Using DIR/libNAME.so during linking hardcodes DIR into the
Packit f546b1
                  dnl resulting binary.
Packit f546b1
                  LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so"
Packit f546b1
                else
Packit f546b1
                  if test -n "$acl_hardcode_libdir_flag_spec" && test "$acl_hardcode_minus_L" = no; then
Packit f546b1
                    dnl Use an explicit option to hardcode DIR into the resulting
Packit f546b1
                    dnl binary.
Packit f546b1
                    LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so"
Packit f546b1
                    dnl Potentially add DIR to rpathdirs.
Packit f546b1
                    dnl The rpathdirs will be appended to $LIBNAME at the end.
Packit f546b1
                    haveit=
Packit f546b1
                    for x in $rpathdirs; do
Packit f546b1
                      if test "X$x" = "X$found_dir"; then
Packit f546b1
                        haveit=yes
Packit f546b1
                        break
Packit f546b1
                      fi
Packit f546b1
                    done
Packit f546b1
                    if test -z "$haveit"; then
Packit f546b1
                      rpathdirs="$rpathdirs $found_dir"
Packit f546b1
                    fi
Packit f546b1
                  else
Packit f546b1
                    dnl Rely on "-L$found_dir".
Packit f546b1
                    dnl But don't add it if it's already contained in the LDFLAGS
Packit f546b1
                    dnl or the already constructed $LIBNAME
Packit f546b1
                    haveit=
Packit f546b1
                    for x in $LDFLAGS $LIB[]NAME; do
Packit f546b1
                      AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
Packit f546b1
                      if test "X$x" = "X-L$found_dir"; then
Packit f546b1
                        haveit=yes
Packit f546b1
                        break
Packit f546b1
                      fi
Packit f546b1
                    done
Packit f546b1
                    if test -z "$haveit"; then
Packit f546b1
                      LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$found_dir"
Packit f546b1
                    fi
Packit f546b1
                    if test "$acl_hardcode_minus_L" != no; then
Packit f546b1
                      dnl FIXME: Not sure whether we should use
Packit f546b1
                      dnl "-L$found_dir -l$name" or "-L$found_dir $found_so"
Packit f546b1
                      dnl here.
Packit f546b1
                      LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so"
Packit f546b1
                    else
Packit f546b1
                      dnl We cannot use $acl_hardcode_runpath_var and LD_RUN_PATH
Packit f546b1
                      dnl here, because this doesn't fit in flags passed to the
Packit f546b1
                      dnl compiler. So give up. No hardcoding. This affects only
Packit f546b1
                      dnl very old systems.
Packit f546b1
                      dnl FIXME: Not sure whether we should use
Packit f546b1
                      dnl "-L$found_dir -l$name" or "-L$found_dir $found_so"
Packit f546b1
                      dnl here.
Packit f546b1
                      LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-l$name"
Packit f546b1
                    fi
Packit f546b1
                  fi
Packit f546b1
                fi
Packit f546b1
              fi
Packit f546b1
            else
Packit f546b1
              if test "X$found_a" != "X"; then
Packit f546b1
                dnl Linking with a static library.
Packit f546b1
                LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_a"
Packit f546b1
              else
Packit f546b1
                dnl We shouldn't come here, but anyway it's good to have a
Packit f546b1
                dnl fallback.
Packit f546b1
                LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$found_dir -l$name"
Packit f546b1
              fi
Packit f546b1
            fi
Packit f546b1
            dnl Assume the include files are nearby.
Packit f546b1
            additional_includedir=
Packit f546b1
            case "$found_dir" in
Packit f546b1
              */$acl_libdirstem | */$acl_libdirstem/)
Packit f546b1
                basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem/"'*$,,'`
Packit f546b1
                LIB[]NAME[]_PREFIX="$basedir"
Packit f546b1
                additional_includedir="$basedir/include"
Packit f546b1
                ;;
Packit f546b1
            esac
Packit f546b1
            if test "X$additional_includedir" != "X"; then
Packit f546b1
              dnl Potentially add $additional_includedir to $INCNAME.
Packit f546b1
              dnl But don't add it
Packit f546b1
              dnl   1. if it's the standard /usr/include,
Packit f546b1
              dnl   2. if it's /usr/local/include and we are using GCC on Linux,
Packit f546b1
              dnl   3. if it's already present in $CPPFLAGS or the already
Packit f546b1
              dnl      constructed $INCNAME,
Packit f546b1
              dnl   4. if it doesn't exist as a directory.
Packit f546b1
              if test "X$additional_includedir" != "X/usr/include"; then
Packit f546b1
                haveit=
Packit f546b1
                if test "X$additional_includedir" = "X/usr/local/include"; then
Packit f546b1
                  if test -n "$GCC"; then
Packit f546b1
                    case $host_os in
Packit f546b1
                      linux* | gnu* | k*bsd*-gnu) haveit=yes;;
Packit f546b1
                    esac
Packit f546b1
                  fi
Packit f546b1
                fi
Packit f546b1
                if test -z "$haveit"; then
Packit f546b1
                  for x in $CPPFLAGS $INC[]NAME; do
Packit f546b1
                    AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
Packit f546b1
                    if test "X$x" = "X-I$additional_includedir"; then
Packit f546b1
                      haveit=yes
Packit f546b1
                      break
Packit f546b1
                    fi
Packit f546b1
                  done
Packit f546b1
                  if test -z "$haveit"; then
Packit f546b1
                    if test -d "$additional_includedir"; then
Packit f546b1
                      dnl Really add $additional_includedir to $INCNAME.
Packit f546b1
                      INC[]NAME="${INC[]NAME}${INC[]NAME:+ }-I$additional_includedir"
Packit f546b1
                    fi
Packit f546b1
                  fi
Packit f546b1
                fi
Packit f546b1
              fi
Packit f546b1
            fi
Packit f546b1
            dnl Look for dependencies.
Packit f546b1
            if test -n "$found_la"; then
Packit f546b1
              dnl Read the .la file. It defines the variables
Packit f546b1
              dnl dlname, library_names, old_library, dependency_libs, current,
Packit f546b1
              dnl age, revision, installed, dlopen, dlpreopen, libdir.
Packit f546b1
              save_libdir="$libdir"
Packit f546b1
              case "$found_la" in
Packit f546b1
                */* | *\\*) . "$found_la" ;;
Packit f546b1
                *) . "./$found_la" ;;
Packit f546b1
              esac
Packit f546b1
              libdir="$save_libdir"
Packit f546b1
              dnl We use only dependency_libs.
Packit f546b1
              for dep in $dependency_libs; do
Packit f546b1
                case "$dep" in
Packit f546b1
                  -L*)
Packit f546b1
                    additional_libdir=`echo "X$dep" | sed -e 's/^X-L//'`
Packit f546b1
                    dnl Potentially add $additional_libdir to $LIBNAME and $LTLIBNAME.
Packit f546b1
                    dnl But don't add it
Packit f546b1
                    dnl   1. if it's the standard /usr/lib,
Packit f546b1
                    dnl   2. if it's /usr/local/lib and we are using GCC on Linux,
Packit f546b1
                    dnl   3. if it's already present in $LDFLAGS or the already
Packit f546b1
                    dnl      constructed $LIBNAME,
Packit f546b1
                    dnl   4. if it doesn't exist as a directory.
Packit f546b1
                    if test "X$additional_libdir" != "X/usr/$acl_libdirstem"; then
Packit f546b1
                      haveit=
Packit f546b1
                      if test "X$additional_libdir" = "X/usr/local/$acl_libdirstem"; then
Packit f546b1
                        if test -n "$GCC"; then
Packit f546b1
                          case $host_os in
Packit f546b1
                            linux* | gnu* | k*bsd*-gnu) haveit=yes;;
Packit f546b1
                          esac
Packit f546b1
                        fi
Packit f546b1
                      fi
Packit f546b1
                      if test -z "$haveit"; then
Packit f546b1
                        haveit=
Packit f546b1
                        for x in $LDFLAGS $LIB[]NAME; do
Packit f546b1
                          AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
Packit f546b1
                          if test "X$x" = "X-L$additional_libdir"; then
Packit f546b1
                            haveit=yes
Packit f546b1
                            break
Packit f546b1
                          fi
Packit f546b1
                        done
Packit f546b1
                        if test -z "$haveit"; then
Packit f546b1
                          if test -d "$additional_libdir"; then
Packit f546b1
                            dnl Really add $additional_libdir to $LIBNAME.
Packit f546b1
                            LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$additional_libdir"
Packit f546b1
                          fi
Packit f546b1
                        fi
Packit f546b1
                        haveit=
Packit f546b1
                        for x in $LDFLAGS $LTLIB[]NAME; do
Packit f546b1
                          AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
Packit f546b1
                          if test "X$x" = "X-L$additional_libdir"; then
Packit f546b1
                            haveit=yes
Packit f546b1
                            break
Packit f546b1
                          fi
Packit f546b1
                        done
Packit f546b1
                        if test -z "$haveit"; then
Packit f546b1
                          if test -d "$additional_libdir"; then
Packit f546b1
                            dnl Really add $additional_libdir to $LTLIBNAME.
Packit f546b1
                            LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-L$additional_libdir"
Packit f546b1
                          fi
Packit f546b1
                        fi
Packit f546b1
                      fi
Packit f546b1
                    fi
Packit f546b1
                    ;;
Packit f546b1
                  -R*)
Packit f546b1
                    dir=`echo "X$dep" | sed -e 's/^X-R//'`
Packit f546b1
                    if test "$enable_rpath" != no; then
Packit f546b1
                      dnl Potentially add DIR to rpathdirs.
Packit f546b1
                      dnl The rpathdirs will be appended to $LIBNAME at the end.
Packit f546b1
                      haveit=
Packit f546b1
                      for x in $rpathdirs; do
Packit f546b1
                        if test "X$x" = "X$dir"; then
Packit f546b1
                          haveit=yes
Packit f546b1
                          break
Packit f546b1
                        fi
Packit f546b1
                      done
Packit f546b1
                      if test -z "$haveit"; then
Packit f546b1
                        rpathdirs="$rpathdirs $dir"
Packit f546b1
                      fi
Packit f546b1
                      dnl Potentially add DIR to ltrpathdirs.
Packit f546b1
                      dnl The ltrpathdirs will be appended to $LTLIBNAME at the end.
Packit f546b1
                      haveit=
Packit f546b1
                      for x in $ltrpathdirs; do
Packit f546b1
                        if test "X$x" = "X$dir"; then
Packit f546b1
                          haveit=yes
Packit f546b1
                          break
Packit f546b1
                        fi
Packit f546b1
                      done
Packit f546b1
                      if test -z "$haveit"; then
Packit f546b1
                        ltrpathdirs="$ltrpathdirs $dir"
Packit f546b1
                      fi
Packit f546b1
                    fi
Packit f546b1
                    ;;
Packit f546b1
                  -l*)
Packit f546b1
                    dnl Handle this in the next round.
Packit f546b1
                    names_next_round="$names_next_round "`echo "X$dep" | sed -e 's/^X-l//'`
Packit f546b1
                    ;;
Packit f546b1
                  *.la)
Packit f546b1
                    dnl Handle this in the next round. Throw away the .la's
Packit f546b1
                    dnl directory; it is already contained in a preceding -L
Packit f546b1
                    dnl option.
Packit f546b1
                    names_next_round="$names_next_round "`echo "X$dep" | sed -e 's,^X.*/,,' -e 's,^lib,,' -e 's,\.la$,,'`
Packit f546b1
                    ;;
Packit f546b1
                  *)
Packit f546b1
                    dnl Most likely an immediate library name.
Packit f546b1
                    LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$dep"
Packit f546b1
                    LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }$dep"
Packit f546b1
                    ;;
Packit f546b1
                esac
Packit f546b1
              done
Packit f546b1
            fi
Packit f546b1
          else
Packit f546b1
            dnl Didn't find the library; assume it is in the system directories
Packit f546b1
            dnl known to the linker and runtime loader. (All the system
Packit f546b1
            dnl directories known to the linker should also be known to the
Packit f546b1
            dnl runtime loader, otherwise the system is severely misconfigured.)
Packit f546b1
            LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-l$name"
Packit f546b1
            LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-l$name"
Packit f546b1
          fi
Packit f546b1
        fi
Packit f546b1
      fi
Packit f546b1
    done
Packit f546b1
  done
Packit f546b1
  if test "X$rpathdirs" != "X"; then
Packit f546b1
    if test -n "$acl_hardcode_libdir_separator"; then
Packit f546b1
      dnl Weird platform: only the last -rpath option counts, the user must
Packit f546b1
      dnl pass all path elements in one option. We can arrange that for a
Packit f546b1
      dnl single library, but not when more than one $LIBNAMEs are used.
Packit f546b1
      alldirs=
Packit f546b1
      for found_dir in $rpathdirs; do
Packit f546b1
        alldirs="${alldirs}${alldirs:+$acl_hardcode_libdir_separator}$found_dir"
Packit f546b1
      done
Packit f546b1
      dnl Note: acl_hardcode_libdir_flag_spec uses $libdir and $wl.
Packit f546b1
      acl_save_libdir="$libdir"
Packit f546b1
      libdir="$alldirs"
Packit f546b1
      eval flag=\"$acl_hardcode_libdir_flag_spec\"
Packit f546b1
      libdir="$acl_save_libdir"
Packit f546b1
      LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$flag"
Packit f546b1
    else
Packit f546b1
      dnl The -rpath options are cumulative.
Packit f546b1
      for found_dir in $rpathdirs; do
Packit f546b1
        acl_save_libdir="$libdir"
Packit f546b1
        libdir="$found_dir"
Packit f546b1
        eval flag=\"$acl_hardcode_libdir_flag_spec\"
Packit f546b1
        libdir="$acl_save_libdir"
Packit f546b1
        LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$flag"
Packit f546b1
      done
Packit f546b1
    fi
Packit f546b1
  fi
Packit f546b1
  if test "X$ltrpathdirs" != "X"; then
Packit f546b1
    dnl When using libtool, the option that works for both libraries and
Packit f546b1
    dnl executables is -R. The -R options are cumulative.
Packit f546b1
    for found_dir in $ltrpathdirs; do
Packit f546b1
      LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-R$found_dir"
Packit f546b1
    done
Packit f546b1
  fi
Packit f546b1
])
Packit f546b1
Packit f546b1
dnl AC_LIB_APPENDTOVAR(VAR, CONTENTS) appends the elements of CONTENTS to VAR,
Packit f546b1
dnl unless already present in VAR.
Packit f546b1
dnl Works only for CPPFLAGS, not for LIB* variables because that sometimes
Packit f546b1
dnl contains two or three consecutive elements that belong together.
Packit f546b1
AC_DEFUN([AC_LIB_APPENDTOVAR],
Packit f546b1
[
Packit f546b1
  for element in [$2]; do
Packit f546b1
    haveit=
Packit f546b1
    for x in $[$1]; do
Packit f546b1
      AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
Packit f546b1
      if test "X$x" = "X$element"; then
Packit f546b1
        haveit=yes
Packit f546b1
        break
Packit f546b1
      fi
Packit f546b1
    done
Packit f546b1
    if test -z "$haveit"; then
Packit f546b1
      [$1]="${[$1]}${[$1]:+ }$element"
Packit f546b1
    fi
Packit f546b1
  done
Packit f546b1
])
Packit f546b1
Packit f546b1
dnl For those cases where a variable contains several -L and -l options
Packit f546b1
dnl referring to unknown libraries and directories, this macro determines the
Packit f546b1
dnl necessary additional linker options for the runtime path.
Packit f546b1
dnl AC_LIB_LINKFLAGS_FROM_LIBS([LDADDVAR], [LIBSVALUE], [USE-LIBTOOL])
Packit f546b1
dnl sets LDADDVAR to linker options needed together with LIBSVALUE.
Packit f546b1
dnl If USE-LIBTOOL evaluates to non-empty, linking with libtool is assumed,
Packit f546b1
dnl otherwise linking without libtool is assumed.
Packit f546b1
AC_DEFUN([AC_LIB_LINKFLAGS_FROM_LIBS],
Packit f546b1
[
Packit f546b1
  AC_REQUIRE([AC_LIB_RPATH])
Packit f546b1
  AC_REQUIRE([AC_LIB_PREPARE_MULTILIB])
Packit f546b1
  $1=
Packit f546b1
  if test "$enable_rpath" != no; then
Packit f546b1
    if test -n "$acl_hardcode_libdir_flag_spec" && test "$acl_hardcode_minus_L" = no; then
Packit f546b1
      dnl Use an explicit option to hardcode directories into the resulting
Packit f546b1
      dnl binary.
Packit f546b1
      rpathdirs=
Packit f546b1
      next=
Packit f546b1
      for opt in $2; do
Packit f546b1
        if test -n "$next"; then
Packit f546b1
          dir="$next"
Packit f546b1
          dnl No need to hardcode the standard /usr/lib.
Packit f546b1
          if test "X$dir" != "X/usr/$acl_libdirstem"; then
Packit f546b1
            rpathdirs="$rpathdirs $dir"
Packit f546b1
          fi
Packit f546b1
          next=
Packit f546b1
        else
Packit f546b1
          case $opt in
Packit f546b1
            -L) next=yes ;;
Packit f546b1
            -L*) dir=`echo "X$opt" | sed -e 's,^X-L,,'`
Packit f546b1
                 dnl No need to hardcode the standard /usr/lib.
Packit f546b1
                 if test "X$dir" != "X/usr/$acl_libdirstem"; then
Packit f546b1
                   rpathdirs="$rpathdirs $dir"
Packit f546b1
                 fi
Packit f546b1
                 next= ;;
Packit f546b1
            *) next= ;;
Packit f546b1
          esac
Packit f546b1
        fi
Packit f546b1
      done
Packit f546b1
      if test "X$rpathdirs" != "X"; then
Packit f546b1
        if test -n ""$3""; then
Packit f546b1
          dnl libtool is used for linking. Use -R options.
Packit f546b1
          for dir in $rpathdirs; do
Packit f546b1
            $1="${$1}${$1:+ }-R$dir"
Packit f546b1
          done
Packit f546b1
        else
Packit f546b1
          dnl The linker is used for linking directly.
Packit f546b1
          if test -n "$acl_hardcode_libdir_separator"; then
Packit f546b1
            dnl Weird platform: only the last -rpath option counts, the user
Packit f546b1
            dnl must pass all path elements in one option.
Packit f546b1
            alldirs=
Packit f546b1
            for dir in $rpathdirs; do
Packit f546b1
              alldirs="${alldirs}${alldirs:+$acl_hardcode_libdir_separator}$dir"
Packit f546b1
            done
Packit f546b1
            acl_save_libdir="$libdir"
Packit f546b1
            libdir="$alldirs"
Packit f546b1
            eval flag=\"$acl_hardcode_libdir_flag_spec\"
Packit f546b1
            libdir="$acl_save_libdir"
Packit f546b1
            $1="$flag"
Packit f546b1
          else
Packit f546b1
            dnl The -rpath options are cumulative.
Packit f546b1
            for dir in $rpathdirs; do
Packit f546b1
              acl_save_libdir="$libdir"
Packit f546b1
              libdir="$dir"
Packit f546b1
              eval flag=\"$acl_hardcode_libdir_flag_spec\"
Packit f546b1
              libdir="$acl_save_libdir"
Packit f546b1
              $1="${$1}${$1:+ }$flag"
Packit f546b1
            done
Packit f546b1
          fi
Packit f546b1
        fi
Packit f546b1
      fi
Packit f546b1
    fi
Packit f546b1
  fi
Packit f546b1
  AC_SUBST([$1])
Packit f546b1
])