Annotation of embedaddon/libiconv/srcm4/lib-link.m4, revision 1.1.1.1

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

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>