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