Home | History | Annotate | Line # | Download | only in config
      1      1.1  mrg # lib-link.m4 serial 4 (gettext-0.12)
      2      1.1  mrg dnl Copyright (C) 2001-2003 Free Software Foundation, Inc.
      3      1.1  mrg dnl This file is free software, distributed under the terms of the GNU
      4      1.1  mrg dnl General Public License.  As a special exception to the GNU General
      5      1.1  mrg dnl Public License, this file may be distributed as part of a program
      6      1.1  mrg dnl that contains a configuration script generated by Autoconf, under
      7      1.1  mrg dnl the same distribution terms as the rest of that program.
      8      1.1  mrg 
      9      1.1  mrg dnl From Bruno Haible.
     10      1.1  mrg 
     11      1.1  mrg dnl AC_LIB_LINKFLAGS(name [, dependencies]) searches for libname and
     12      1.1  mrg dnl the libraries corresponding to explicit and implicit dependencies.
     13      1.1  mrg dnl Sets and AC_SUBSTs the LIB${NAME} and LTLIB${NAME} variables and
     14      1.1  mrg dnl augments the CPPFLAGS variable.
     15      1.1  mrg AC_DEFUN([AC_LIB_LINKFLAGS],
     16      1.1  mrg [
     17      1.1  mrg   AC_REQUIRE([AC_LIB_PREPARE_PREFIX])
     18      1.1  mrg   AC_REQUIRE([AC_LIB_RPATH])
     19      1.1  mrg   define([Name],[translit([$1],[./-], [___])])
     20      1.1  mrg   define([NAME],[translit([$1],[abcdefghijklmnopqrstuvwxyz./-],
     21      1.1  mrg                                [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])])
     22      1.1  mrg   AC_CACHE_CHECK([how to link with lib[]$1], [ac_cv_lib[]Name[]_libs], [
     23      1.1  mrg     AC_LIB_LINKFLAGS_BODY([$1], [$2])
     24      1.1  mrg     ac_cv_lib[]Name[]_libs="$LIB[]NAME"
     25      1.1  mrg     ac_cv_lib[]Name[]_ltlibs="$LTLIB[]NAME"
     26      1.1  mrg     ac_cv_lib[]Name[]_cppflags="$INC[]NAME"
     27      1.1  mrg   ])
     28      1.1  mrg   LIB[]NAME="$ac_cv_lib[]Name[]_libs"
     29      1.1  mrg   LTLIB[]NAME="$ac_cv_lib[]Name[]_ltlibs"
     30      1.1  mrg   INC[]NAME="$ac_cv_lib[]Name[]_cppflags"
     31      1.1  mrg   AC_LIB_APPENDTOVAR([CPPFLAGS], [$INC]NAME)
     32      1.1  mrg   AC_SUBST([LIB]NAME)
     33      1.1  mrg   AC_SUBST([LTLIB]NAME)
     34      1.1  mrg   dnl Also set HAVE_LIB[]NAME so that AC_LIB_HAVE_LINKFLAGS can reuse the
     35      1.1  mrg   dnl results of this search when this library appears as a dependency.
     36      1.1  mrg   HAVE_LIB[]NAME=yes
     37      1.1  mrg   undefine([Name])
     38      1.1  mrg   undefine([NAME])
     39      1.1  mrg ])
     40      1.1  mrg 
     41      1.1  mrg dnl AC_LIB_HAVE_LINKFLAGS(name, dependencies, includes, testcode)
     42      1.1  mrg dnl searches for libname and the libraries corresponding to explicit and
     43      1.1  mrg dnl implicit dependencies, together with the specified include files and
     44      1.1  mrg dnl the ability to compile and link the specified testcode. If found, it
     45      1.1  mrg dnl sets and AC_SUBSTs HAVE_LIB${NAME}=yes and the LIB${NAME} and
     46      1.1  mrg dnl LTLIB${NAME} variables and augments the CPPFLAGS variable, and
     47      1.1  mrg dnl #defines HAVE_LIB${NAME} to 1. Otherwise, it sets and AC_SUBSTs
     48      1.1  mrg dnl HAVE_LIB${NAME}=no and LIB${NAME} and LTLIB${NAME} to empty.
     49      1.1  mrg AC_DEFUN([AC_LIB_HAVE_LINKFLAGS],
     50      1.1  mrg [
     51      1.1  mrg   AC_REQUIRE([AC_LIB_PREPARE_PREFIX])
     52      1.1  mrg   AC_REQUIRE([AC_LIB_RPATH])
     53      1.1  mrg   define([Name],[translit([$1],[./-], [___])])
     54      1.1  mrg   define([NAME],[translit([$1],[abcdefghijklmnopqrstuvwxyz./-],
     55      1.1  mrg                                [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])])
     56      1.1  mrg 
     57      1.1  mrg   dnl Search for lib[]Name and define LIB[]NAME, LTLIB[]NAME and INC[]NAME
     58      1.1  mrg   dnl accordingly.
     59      1.1  mrg   AC_LIB_LINKFLAGS_BODY([$1], [$2])
     60      1.1  mrg 
     61      1.1  mrg   dnl Add $INC[]NAME to CPPFLAGS before performing the following checks,
     62      1.1  mrg   dnl because if the user has installed lib[]Name and not disabled its use
     63      1.1  mrg   dnl via --without-lib[]Name-prefix, he wants to use it.
     64      1.1  mrg   ac_save_CPPFLAGS="$CPPFLAGS"
     65      1.1  mrg   AC_LIB_APPENDTOVAR([CPPFLAGS], [$INC]NAME)
     66      1.1  mrg 
     67      1.1  mrg   AC_CACHE_CHECK([for lib[]$1], [ac_cv_lib[]Name], [
     68      1.1  mrg     ac_save_LIBS="$LIBS"
     69      1.1  mrg     LIBS="$LIBS $LIB[]NAME"
     70      1.1  mrg     AC_TRY_LINK([$3], [$4], [ac_cv_lib[]Name=yes], [ac_cv_lib[]Name=no])
     71      1.1  mrg     LIBS="$ac_save_LIBS"
     72      1.1  mrg   ])
     73      1.1  mrg   if test "$ac_cv_lib[]Name" = yes; then
     74      1.1  mrg     HAVE_LIB[]NAME=yes
     75      1.1  mrg     AC_DEFINE([HAVE_LIB]NAME, 1, [Define if you have the $1 library.])
     76      1.1  mrg     AC_MSG_CHECKING([how to link with lib[]$1])
     77      1.1  mrg     AC_MSG_RESULT([$LIB[]NAME])
     78      1.1  mrg   else
     79      1.1  mrg     HAVE_LIB[]NAME=no
     80      1.1  mrg     dnl If $LIB[]NAME didn't lead to a usable library, we don't need
     81      1.1  mrg     dnl $INC[]NAME either.
     82      1.1  mrg     CPPFLAGS="$ac_save_CPPFLAGS"
     83      1.1  mrg     LIB[]NAME=
     84      1.1  mrg     LTLIB[]NAME=
     85      1.1  mrg   fi
     86      1.1  mrg   AC_SUBST([HAVE_LIB]NAME)
     87      1.1  mrg   AC_SUBST([LIB]NAME)
     88      1.1  mrg   AC_SUBST([LTLIB]NAME)
     89      1.1  mrg   undefine([Name])
     90      1.1  mrg   undefine([NAME])
     91      1.1  mrg ])
     92      1.1  mrg 
     93      1.1  mrg dnl Determine the platform dependent parameters needed to use rpath:
     94      1.1  mrg dnl libext, shlibext, hardcode_libdir_flag_spec, hardcode_libdir_separator,
     95      1.1  mrg dnl hardcode_direct, hardcode_minus_L.
     96      1.1  mrg AC_DEFUN([AC_LIB_RPATH],
     97      1.1  mrg [
     98      1.1  mrg   AC_REQUIRE([AC_PROG_CC])                dnl we use $CC, $GCC, $LDFLAGS
     99      1.1  mrg   AC_REQUIRE([AC_LIB_PROG_LD])            dnl we use $LD, $with_gnu_ld
    100      1.1  mrg   AC_REQUIRE([AC_CANONICAL_HOST])         dnl we use $host
    101      1.1  mrg   AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT]) dnl we use $ac_aux_dir
    102      1.1  mrg   AC_CACHE_CHECK([for shared library run path origin], acl_cv_rpath, [
    103      1.1  mrg     CC="$CC" GCC="$GCC" LDFLAGS="$LDFLAGS" LD="$LD" with_gnu_ld="$with_gnu_ld" \
    104      1.1  mrg     ${CONFIG_SHELL-/bin/sh} "$ac_aux_dir/config.rpath" "$host" > conftest.sh
    105      1.1  mrg     . ./conftest.sh
    106      1.1  mrg     rm -f ./conftest.sh
    107      1.1  mrg     acl_cv_rpath=done
    108      1.1  mrg   ])
    109      1.1  mrg   wl="$acl_cv_wl"
    110      1.1  mrg   libext="$acl_cv_libext"
    111      1.1  mrg   shlibext="$acl_cv_shlibext"
    112      1.1  mrg   hardcode_libdir_flag_spec="$acl_cv_hardcode_libdir_flag_spec"
    113      1.1  mrg   hardcode_libdir_separator="$acl_cv_hardcode_libdir_separator"
    114      1.1  mrg   hardcode_direct="$acl_cv_hardcode_direct"
    115      1.1  mrg   hardcode_minus_L="$acl_cv_hardcode_minus_L"
    116      1.1  mrg   dnl Determine whether the user wants rpath handling at all.
    117      1.1  mrg   AC_ARG_ENABLE(rpath,
    118      1.1  mrg     [  --disable-rpath         do not hardcode runtime library paths],
    119      1.1  mrg     :, enable_rpath=yes)
    120      1.1  mrg ])
    121      1.1  mrg 
    122      1.1  mrg dnl AC_LIB_LINKFLAGS_BODY(name [, dependencies]) searches for libname and
    123      1.1  mrg dnl the libraries corresponding to explicit and implicit dependencies.
    124      1.1  mrg dnl Sets the LIB${NAME}, LTLIB${NAME} and INC${NAME} variables.
    125      1.1  mrg AC_DEFUN([AC_LIB_LINKFLAGS_BODY],
    126      1.1  mrg [
    127      1.1  mrg   define([NAME],[translit([$1],[abcdefghijklmnopqrstuvwxyz./-],
    128      1.1  mrg                                [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])])
    129      1.1  mrg   dnl By default, look in $includedir and $libdir.
    130      1.1  mrg   use_additional=yes
    131      1.1  mrg   AC_LIB_WITH_FINAL_PREFIX([
    132      1.1  mrg     eval additional_includedir=\"$includedir\"
    133      1.1  mrg     eval additional_libdir=\"$libdir\"
    134      1.1  mrg   ])
    135      1.1  mrg   AC_LIB_ARG_WITH([lib$1-prefix],
    136      1.1  mrg [  --with-lib$1-prefix[=DIR]  search for lib$1 in DIR/include and DIR/lib
    137      1.1  mrg   --without-lib$1-prefix     don't search for lib$1 in includedir and libdir],
    138      1.1  mrg [
    139      1.1  mrg     if test "X$withval" = "Xno"; then
    140      1.1  mrg       use_additional=no
    141      1.1  mrg     else
    142      1.1  mrg       if test "X$withval" = "X"; then
    143      1.1  mrg         AC_LIB_WITH_FINAL_PREFIX([
    144      1.1  mrg           eval additional_includedir=\"$includedir\"
    145      1.1  mrg           eval additional_libdir=\"$libdir\"
    146      1.1  mrg         ])
    147      1.1  mrg       else
    148      1.1  mrg         additional_includedir="$withval/include"
    149      1.1  mrg         additional_libdir="$withval/lib"
    150      1.1  mrg       fi
    151      1.1  mrg     fi
    152      1.1  mrg ])
    153  1.1.1.2  mrg   AC_LIB_ARG_WITH([lib$1-type],
    154  1.1.1.2  mrg [  --with-lib$1-type=TYPE     type of library to search for (auto/static/shared) ],
    155  1.1.1.2  mrg   [ with_lib$1_type=$withval ], [ with_lib$1_type=auto ])
    156  1.1.1.2  mrg   lib_type=`eval echo \$with_lib$1_type`
    157  1.1.1.2  mrg 
    158      1.1  mrg   dnl Search the library and its dependencies in $additional_libdir and
    159      1.1  mrg   dnl $LDFLAGS. Using breadth-first-seach.
    160      1.1  mrg   LIB[]NAME=
    161      1.1  mrg   LTLIB[]NAME=
    162      1.1  mrg   INC[]NAME=
    163      1.1  mrg   rpathdirs=
    164      1.1  mrg   ltrpathdirs=
    165      1.1  mrg   names_already_handled=
    166      1.1  mrg   names_next_round='$1 $2'
    167      1.1  mrg   while test -n "$names_next_round"; do
    168      1.1  mrg     names_this_round="$names_next_round"
    169      1.1  mrg     names_next_round=
    170      1.1  mrg     for name in $names_this_round; do
    171      1.1  mrg       already_handled=
    172      1.1  mrg       for n in $names_already_handled; do
    173      1.1  mrg         if test "$n" = "$name"; then
    174      1.1  mrg           already_handled=yes
    175      1.1  mrg           break
    176      1.1  mrg         fi
    177      1.1  mrg       done
    178      1.1  mrg       if test -z "$already_handled"; then
    179      1.1  mrg         names_already_handled="$names_already_handled $name"
    180      1.1  mrg         dnl See if it was already located by an earlier AC_LIB_LINKFLAGS
    181      1.1  mrg         dnl or AC_LIB_HAVE_LINKFLAGS call.
    182      1.1  mrg         uppername=`echo "$name" | sed -e 'y|abcdefghijklmnopqrstuvwxyz./-|ABCDEFGHIJKLMNOPQRSTUVWXYZ___|'`
    183      1.1  mrg         eval value=\"\$HAVE_LIB$uppername\"
    184      1.1  mrg         if test -n "$value"; then
    185      1.1  mrg           if test "$value" = yes; then
    186      1.1  mrg             eval value=\"\$LIB$uppername\"
    187      1.1  mrg             test -z "$value" || LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$value"
    188      1.1  mrg             eval value=\"\$LTLIB$uppername\"
    189      1.1  mrg             test -z "$value" || LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }$value"
    190      1.1  mrg           else
    191      1.1  mrg             dnl An earlier call to AC_LIB_HAVE_LINKFLAGS has determined
    192      1.1  mrg             dnl that this library doesn't exist. So just drop it.
    193      1.1  mrg             :
    194      1.1  mrg           fi
    195      1.1  mrg         else
    196      1.1  mrg           dnl Search the library lib$name in $additional_libdir and $LDFLAGS
    197      1.1  mrg           dnl and the already constructed $LIBNAME/$LTLIBNAME.
    198      1.1  mrg           found_dir=
    199      1.1  mrg           found_la=
    200      1.1  mrg           found_so=
    201      1.1  mrg           found_a=
    202      1.1  mrg           if test $use_additional = yes; then
    203  1.1.1.2  mrg             if test -n "$shlibext" && test -f "$additional_libdir/lib$name.$shlibext" && test x$lib_type != xstatic; then
    204      1.1  mrg               found_dir="$additional_libdir"
    205      1.1  mrg               found_so="$additional_libdir/lib$name.$shlibext"
    206      1.1  mrg               if test -f "$additional_libdir/lib$name.la"; then
    207      1.1  mrg                 found_la="$additional_libdir/lib$name.la"
    208      1.1  mrg               fi
    209  1.1.1.2  mrg             elif test x$lib_type != xshared; then
    210      1.1  mrg               if test -f "$additional_libdir/lib$name.$libext"; then
    211      1.1  mrg                 found_dir="$additional_libdir"
    212      1.1  mrg                 found_a="$additional_libdir/lib$name.$libext"
    213      1.1  mrg                 if test -f "$additional_libdir/lib$name.la"; then
    214      1.1  mrg                   found_la="$additional_libdir/lib$name.la"
    215      1.1  mrg                 fi
    216      1.1  mrg               fi
    217      1.1  mrg             fi
    218      1.1  mrg           fi
    219      1.1  mrg           if test "X$found_dir" = "X"; then
    220      1.1  mrg             for x in $LDFLAGS $LTLIB[]NAME; do
    221      1.1  mrg               AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
    222      1.1  mrg               case "$x" in
    223      1.1  mrg                 -L*)
    224      1.1  mrg                   dir=`echo "X$x" | sed -e 's/^X-L//'`
    225  1.1.1.2  mrg                   if test -n "$shlibext" && test -f "$dir/lib$name.$shlibext" && test x$lib_type != xstatic; then
    226      1.1  mrg                     found_dir="$dir"
    227      1.1  mrg                     found_so="$dir/lib$name.$shlibext"
    228      1.1  mrg                     if test -f "$dir/lib$name.la"; then
    229      1.1  mrg                       found_la="$dir/lib$name.la"
    230      1.1  mrg                     fi
    231  1.1.1.2  mrg                   elif test x$lib_type != xshared; then
    232      1.1  mrg                     if test -f "$dir/lib$name.$libext"; then
    233      1.1  mrg                       found_dir="$dir"
    234      1.1  mrg                       found_a="$dir/lib$name.$libext"
    235      1.1  mrg                       if test -f "$dir/lib$name.la"; then
    236      1.1  mrg                         found_la="$dir/lib$name.la"
    237      1.1  mrg                       fi
    238      1.1  mrg                     fi
    239      1.1  mrg                   fi
    240      1.1  mrg                   ;;
    241      1.1  mrg               esac
    242      1.1  mrg               if test "X$found_dir" != "X"; then
    243      1.1  mrg                 break
    244      1.1  mrg               fi
    245      1.1  mrg             done
    246      1.1  mrg           fi
    247      1.1  mrg           if test "X$found_dir" != "X"; then
    248      1.1  mrg             dnl Found the library.
    249      1.1  mrg             LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-L$found_dir -l$name"
    250      1.1  mrg             if test "X$found_so" != "X"; then
    251      1.1  mrg               dnl Linking with a shared library. We attempt to hardcode its
    252      1.1  mrg               dnl directory into the executable's runpath, unless it's the
    253      1.1  mrg               dnl standard /usr/lib.
    254      1.1  mrg               if test "$enable_rpath" = no || test "X$found_dir" = "X/usr/lib"; then
    255      1.1  mrg                 dnl No hardcoding is needed.
    256      1.1  mrg                 LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so"
    257      1.1  mrg               else
    258      1.1  mrg                 dnl Use an explicit option to hardcode DIR into the resulting
    259      1.1  mrg                 dnl binary.
    260      1.1  mrg                 dnl Potentially add DIR to ltrpathdirs.
    261      1.1  mrg                 dnl The ltrpathdirs will be appended to $LTLIBNAME at the end.
    262      1.1  mrg                 haveit=
    263      1.1  mrg                 for x in $ltrpathdirs; do
    264      1.1  mrg                   if test "X$x" = "X$found_dir"; then
    265      1.1  mrg                     haveit=yes
    266      1.1  mrg                     break
    267      1.1  mrg                   fi
    268      1.1  mrg                 done
    269      1.1  mrg                 if test -z "$haveit"; then
    270      1.1  mrg                   ltrpathdirs="$ltrpathdirs $found_dir"
    271      1.1  mrg                 fi
    272      1.1  mrg                 dnl The hardcoding into $LIBNAME is system dependent.
    273      1.1  mrg                 if test "$hardcode_direct" = yes; then
    274      1.1  mrg                   dnl Using DIR/libNAME.so during linking hardcodes DIR into the
    275      1.1  mrg                   dnl resulting binary.
    276      1.1  mrg                   LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so"
    277      1.1  mrg                 else
    278      1.1  mrg                   if test -n "$hardcode_libdir_flag_spec" && test "$hardcode_minus_L" = no; then
    279      1.1  mrg                     dnl Use an explicit option to hardcode DIR into the resulting
    280      1.1  mrg                     dnl binary.
    281      1.1  mrg                     LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so"
    282      1.1  mrg                     dnl Potentially add DIR to rpathdirs.
    283      1.1  mrg                     dnl The rpathdirs will be appended to $LIBNAME at the end.
    284      1.1  mrg                     haveit=
    285      1.1  mrg                     for x in $rpathdirs; do
    286      1.1  mrg                       if test "X$x" = "X$found_dir"; then
    287      1.1  mrg                         haveit=yes
    288      1.1  mrg                         break
    289      1.1  mrg                       fi
    290      1.1  mrg                     done
    291      1.1  mrg                     if test -z "$haveit"; then
    292      1.1  mrg                       rpathdirs="$rpathdirs $found_dir"
    293      1.1  mrg                     fi
    294      1.1  mrg                   else
    295      1.1  mrg                     dnl Rely on "-L$found_dir".
    296      1.1  mrg                     dnl But don't add it if it's already contained in the LDFLAGS
    297      1.1  mrg                     dnl or the already constructed $LIBNAME
    298      1.1  mrg                     haveit=
    299      1.1  mrg                     for x in $LDFLAGS $LIB[]NAME; do
    300      1.1  mrg                       AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
    301      1.1  mrg                       if test "X$x" = "X-L$found_dir"; then
    302      1.1  mrg                         haveit=yes
    303      1.1  mrg                         break
    304      1.1  mrg                       fi
    305      1.1  mrg                     done
    306      1.1  mrg                     if test -z "$haveit"; then
    307      1.1  mrg                       LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$found_dir"
    308      1.1  mrg                     fi
    309      1.1  mrg                     if test "$hardcode_minus_L" != no; then
    310      1.1  mrg                       dnl FIXME: Not sure whether we should use
    311      1.1  mrg                       dnl "-L$found_dir -l$name" or "-L$found_dir $found_so"
    312      1.1  mrg                       dnl here.
    313      1.1  mrg                       LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so"
    314      1.1  mrg                     else
    315      1.1  mrg                       dnl We cannot use $hardcode_runpath_var and LD_RUN_PATH
    316      1.1  mrg                       dnl here, because this doesn't fit in flags passed to the
    317      1.1  mrg                       dnl compiler. So give up. No hardcoding. This affects only
    318      1.1  mrg                       dnl very old systems.
    319      1.1  mrg                       dnl FIXME: Not sure whether we should use
    320      1.1  mrg                       dnl "-L$found_dir -l$name" or "-L$found_dir $found_so"
    321      1.1  mrg                       dnl here.
    322      1.1  mrg                       LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-l$name"
    323      1.1  mrg                     fi
    324      1.1  mrg                   fi
    325      1.1  mrg                 fi
    326      1.1  mrg               fi
    327      1.1  mrg             else
    328      1.1  mrg               if test "X$found_a" != "X"; then
    329      1.1  mrg                 dnl Linking with a static library.
    330      1.1  mrg                 LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_a"
    331      1.1  mrg               else
    332      1.1  mrg                 dnl We shouldn't come here, but anyway it's good to have a
    333      1.1  mrg                 dnl fallback.
    334      1.1  mrg                 LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$found_dir -l$name"
    335      1.1  mrg               fi
    336      1.1  mrg             fi
    337      1.1  mrg             dnl Assume the include files are nearby.
    338      1.1  mrg             additional_includedir=
    339      1.1  mrg             case "$found_dir" in
    340      1.1  mrg               */lib | */lib/)
    341      1.1  mrg                 basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e 's,/lib/*$,,'`
    342      1.1  mrg                 additional_includedir="$basedir/include"
    343      1.1  mrg                 ;;
    344      1.1  mrg             esac
    345      1.1  mrg             if test "X$additional_includedir" != "X"; then
    346      1.1  mrg               dnl Potentially add $additional_includedir to $INCNAME.
    347      1.1  mrg               dnl But don't add it
    348      1.1  mrg               dnl   1. if it's the standard /usr/include,
    349      1.1  mrg               dnl   2. if it's /usr/local/include and we are using GCC on Linux,
    350      1.1  mrg               dnl   3. if it's already present in $CPPFLAGS or the already
    351      1.1  mrg               dnl      constructed $INCNAME,
    352      1.1  mrg               dnl   4. if it doesn't exist as a directory.
    353      1.1  mrg               if test "X$additional_includedir" != "X/usr/include"; then
    354      1.1  mrg                 haveit=
    355      1.1  mrg                 if test "X$additional_includedir" = "X/usr/local/include"; then
    356      1.1  mrg                   if test -n "$GCC"; then
    357      1.1  mrg                     case $host_os in
    358      1.1  mrg                       linux*) haveit=yes;;
    359      1.1  mrg                     esac
    360      1.1  mrg                   fi
    361      1.1  mrg                 fi
    362      1.1  mrg                 if test -z "$haveit"; then
    363      1.1  mrg                   for x in $CPPFLAGS $INC[]NAME; do
    364      1.1  mrg                     AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
    365      1.1  mrg                     if test "X$x" = "X-I$additional_includedir"; then
    366      1.1  mrg                       haveit=yes
    367      1.1  mrg                       break
    368      1.1  mrg                     fi
    369      1.1  mrg                   done
    370      1.1  mrg                   if test -z "$haveit"; then
    371      1.1  mrg                     if test -d "$additional_includedir"; then
    372      1.1  mrg                       dnl Really add $additional_includedir to $INCNAME.
    373      1.1  mrg                       INC[]NAME="${INC[]NAME}${INC[]NAME:+ }-I$additional_includedir"
    374      1.1  mrg                     fi
    375      1.1  mrg                   fi
    376      1.1  mrg                 fi
    377      1.1  mrg               fi
    378      1.1  mrg             fi
    379      1.1  mrg             dnl Look for dependencies.
    380      1.1  mrg             if test -n "$found_la"; then
    381      1.1  mrg               dnl Read the .la file. It defines the variables
    382      1.1  mrg               dnl dlname, library_names, old_library, dependency_libs, current,
    383      1.1  mrg               dnl age, revision, installed, dlopen, dlpreopen, libdir.
    384      1.1  mrg               save_libdir="$libdir"
    385      1.1  mrg               case "$found_la" in
    386      1.1  mrg                 */* | *\\*) . "$found_la" ;;
    387      1.1  mrg                 *) . "./$found_la" ;;
    388      1.1  mrg               esac
    389      1.1  mrg               libdir="$save_libdir"
    390      1.1  mrg               dnl We use only dependency_libs.
    391      1.1  mrg               for dep in $dependency_libs; do
    392      1.1  mrg                 case "$dep" in
    393      1.1  mrg                   -L*)
    394      1.1  mrg                     additional_libdir=`echo "X$dep" | sed -e 's/^X-L//'`
    395      1.1  mrg                     dnl Potentially add $additional_libdir to $LIBNAME and $LTLIBNAME.
    396      1.1  mrg                     dnl But don't add it
    397      1.1  mrg                     dnl   1. if it's the standard /usr/lib,
    398      1.1  mrg                     dnl   2. if it's /usr/local/lib and we are using GCC on Linux,
    399      1.1  mrg                     dnl   3. if it's already present in $LDFLAGS or the already
    400      1.1  mrg                     dnl      constructed $LIBNAME,
    401      1.1  mrg                     dnl   4. if it doesn't exist as a directory.
    402      1.1  mrg                     if test "X$additional_libdir" != "X/usr/lib"; then
    403      1.1  mrg                       haveit=
    404      1.1  mrg                       if test "X$additional_libdir" = "X/usr/local/lib"; then
    405      1.1  mrg                         if test -n "$GCC"; then
    406      1.1  mrg                           case $host_os in
    407      1.1  mrg                             linux*) haveit=yes;;
    408      1.1  mrg                           esac
    409      1.1  mrg                         fi
    410      1.1  mrg                       fi
    411      1.1  mrg                       if test -z "$haveit"; then
    412      1.1  mrg                         haveit=
    413      1.1  mrg                         for x in $LDFLAGS $LIB[]NAME; do
    414      1.1  mrg                           AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
    415      1.1  mrg                           if test "X$x" = "X-L$additional_libdir"; then
    416      1.1  mrg                             haveit=yes
    417      1.1  mrg                             break
    418      1.1  mrg                           fi
    419      1.1  mrg                         done
    420      1.1  mrg                         if test -z "$haveit"; then
    421      1.1  mrg                           if test -d "$additional_libdir"; then
    422      1.1  mrg                             dnl Really add $additional_libdir to $LIBNAME.
    423      1.1  mrg                             LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$additional_libdir"
    424      1.1  mrg                           fi
    425      1.1  mrg                         fi
    426      1.1  mrg                         haveit=
    427      1.1  mrg                         for x in $LDFLAGS $LTLIB[]NAME; do
    428      1.1  mrg                           AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
    429      1.1  mrg                           if test "X$x" = "X-L$additional_libdir"; then
    430      1.1  mrg                             haveit=yes
    431      1.1  mrg                             break
    432      1.1  mrg                           fi
    433      1.1  mrg                         done
    434      1.1  mrg                         if test -z "$haveit"; then
    435      1.1  mrg                           if test -d "$additional_libdir"; then
    436      1.1  mrg                             dnl Really add $additional_libdir to $LTLIBNAME.
    437      1.1  mrg                             LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-L$additional_libdir"
    438      1.1  mrg                           fi
    439      1.1  mrg                         fi
    440      1.1  mrg                       fi
    441      1.1  mrg                     fi
    442      1.1  mrg                     ;;
    443      1.1  mrg                   -R*)
    444      1.1  mrg                     dir=`echo "X$dep" | sed -e 's/^X-R//'`
    445      1.1  mrg                     if test "$enable_rpath" != no; then
    446      1.1  mrg                       dnl Potentially add DIR to rpathdirs.
    447      1.1  mrg                       dnl The rpathdirs will be appended to $LIBNAME at the end.
    448      1.1  mrg                       haveit=
    449      1.1  mrg                       for x in $rpathdirs; do
    450      1.1  mrg                         if test "X$x" = "X$dir"; then
    451      1.1  mrg                           haveit=yes
    452      1.1  mrg                           break
    453      1.1  mrg                         fi
    454      1.1  mrg                       done
    455      1.1  mrg                       if test -z "$haveit"; then
    456      1.1  mrg                         rpathdirs="$rpathdirs $dir"
    457      1.1  mrg                       fi
    458      1.1  mrg                       dnl Potentially add DIR to ltrpathdirs.
    459      1.1  mrg                       dnl The ltrpathdirs will be appended to $LTLIBNAME at the end.
    460      1.1  mrg                       haveit=
    461      1.1  mrg                       for x in $ltrpathdirs; do
    462      1.1  mrg                         if test "X$x" = "X$dir"; then
    463      1.1  mrg                           haveit=yes
    464      1.1  mrg                           break
    465      1.1  mrg                         fi
    466      1.1  mrg                       done
    467      1.1  mrg                       if test -z "$haveit"; then
    468      1.1  mrg                         ltrpathdirs="$ltrpathdirs $dir"
    469      1.1  mrg                       fi
    470      1.1  mrg                     fi
    471      1.1  mrg                     ;;
    472      1.1  mrg                   -l*)
    473      1.1  mrg                     dnl Handle this in the next round.
    474      1.1  mrg                     names_next_round="$names_next_round "`echo "X$dep" | sed -e 's/^X-l//'`
    475      1.1  mrg                     ;;
    476      1.1  mrg                   *.la)
    477      1.1  mrg                     dnl Handle this in the next round. Throw away the .la's
    478      1.1  mrg                     dnl directory; it is already contained in a preceding -L
    479      1.1  mrg                     dnl option.
    480      1.1  mrg                     names_next_round="$names_next_round "`echo "X$dep" | sed -e 's,^X.*/,,' -e 's,^lib,,' -e 's,\.la$,,'`
    481      1.1  mrg                     ;;
    482      1.1  mrg                   *)
    483      1.1  mrg                     dnl Most likely an immediate library name.
    484      1.1  mrg                     LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$dep"
    485      1.1  mrg                     LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }$dep"
    486      1.1  mrg                     ;;
    487      1.1  mrg                 esac
    488      1.1  mrg               done
    489      1.1  mrg             fi
    490      1.1  mrg           else
    491      1.1  mrg             dnl Didn't find the library; assume it is in the system directories
    492      1.1  mrg             dnl known to the linker and runtime loader. (All the system
    493      1.1  mrg             dnl directories known to the linker should also be known to the
    494      1.1  mrg             dnl runtime loader, otherwise the system is severely misconfigured.)
    495  1.1.1.2  mrg             if test "x$lib_type" = "xauto" || test "x$lib_type" = "xshared"; then
    496  1.1.1.2  mrg               LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-l$name"
    497  1.1.1.2  mrg               LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-l$name"
    498  1.1.1.2  mrg             else
    499  1.1.1.2  mrg               LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-l:lib$name.$libext"
    500  1.1.1.2  mrg               LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-l:lib$name.$libext"
    501  1.1.1.2  mrg             fi
    502      1.1  mrg           fi
    503      1.1  mrg         fi
    504      1.1  mrg       fi
    505      1.1  mrg     done
    506      1.1  mrg   done
    507      1.1  mrg   if test "X$rpathdirs" != "X"; then
    508      1.1  mrg     if test -n "$hardcode_libdir_separator"; then
    509      1.1  mrg       dnl Weird platform: only the last -rpath option counts, the user must
    510      1.1  mrg       dnl pass all path elements in one option. We can arrange that for a
    511      1.1  mrg       dnl single library, but not when more than one $LIBNAMEs are used.
    512      1.1  mrg       alldirs=
    513      1.1  mrg       for found_dir in $rpathdirs; do
    514      1.1  mrg         alldirs="${alldirs}${alldirs:+$hardcode_libdir_separator}$found_dir"
    515      1.1  mrg       done
    516      1.1  mrg       dnl Note: hardcode_libdir_flag_spec uses $libdir and $wl.
    517      1.1  mrg       acl_save_libdir="$libdir"
    518      1.1  mrg       libdir="$alldirs"
    519      1.1  mrg       eval flag=\"$hardcode_libdir_flag_spec\"
    520      1.1  mrg       libdir="$acl_save_libdir"
    521      1.1  mrg       LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$flag"
    522      1.1  mrg     else
    523      1.1  mrg       dnl The -rpath options are cumulative.
    524      1.1  mrg       for found_dir in $rpathdirs; do
    525      1.1  mrg         acl_save_libdir="$libdir"
    526      1.1  mrg         libdir="$found_dir"
    527      1.1  mrg         eval flag=\"$hardcode_libdir_flag_spec\"
    528      1.1  mrg         libdir="$acl_save_libdir"
    529      1.1  mrg         LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$flag"
    530      1.1  mrg       done
    531      1.1  mrg     fi
    532      1.1  mrg   fi
    533      1.1  mrg   if test "X$ltrpathdirs" != "X"; then
    534      1.1  mrg     dnl When using libtool, the option that works for both libraries and
    535      1.1  mrg     dnl executables is -R. The -R options are cumulative.
    536      1.1  mrg     for found_dir in $ltrpathdirs; do
    537      1.1  mrg       LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-R$found_dir"
    538      1.1  mrg     done
    539      1.1  mrg   fi
    540      1.1  mrg ])
    541      1.1  mrg 
    542      1.1  mrg dnl AC_LIB_APPENDTOVAR(VAR, CONTENTS) appends the elements of CONTENTS to VAR,
    543      1.1  mrg dnl unless already present in VAR.
    544      1.1  mrg dnl Works only for CPPFLAGS, not for LIB* variables because that sometimes
    545      1.1  mrg dnl contains two or three consecutive elements that belong together.
    546      1.1  mrg AC_DEFUN([AC_LIB_APPENDTOVAR],
    547      1.1  mrg [
    548      1.1  mrg   for element in [$2]; do
    549      1.1  mrg     haveit=
    550      1.1  mrg     for x in $[$1]; do
    551      1.1  mrg       AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
    552      1.1  mrg       if test "X$x" = "X$element"; then
    553      1.1  mrg         haveit=yes
    554      1.1  mrg         break
    555      1.1  mrg       fi
    556      1.1  mrg     done
    557      1.1  mrg     if test -z "$haveit"; then
    558      1.1  mrg       [$1]="${[$1]}${[$1]:+ }$element"
    559      1.1  mrg     fi
    560      1.1  mrg   done
    561      1.1  mrg ])
    562