Blame m4/lib-ld.m4

Packit Service d328f3
# lib-ld.m4 serial 4 (gettext-0.18)
Packit Service d328f3
dnl Copyright (C) 1996-2003, 2009-2010 Free Software Foundation, Inc.
Packit Service d328f3
dnl This file is free software; the Free Software Foundation
Packit Service d328f3
dnl gives unlimited permission to copy and/or distribute it,
Packit Service d328f3
dnl with or without modifications, as long as this notice is preserved.
Packit Service d328f3
Packit Service d328f3
dnl Subroutines of libtool.m4,
Packit Service d328f3
dnl with replacements s/AC_/AC_LIB/ and s/lt_cv/acl_cv/ to avoid collision
Packit Service d328f3
dnl with libtool.m4.
Packit Service d328f3
Packit Service d328f3
dnl From libtool-1.4. Sets the variable with_gnu_ld to yes or no.
Packit Service d328f3
AC_DEFUN([AC_LIB_PROG_LD_GNU],
Packit Service d328f3
[AC_CACHE_CHECK([if the linker ($LD) is GNU ld], [acl_cv_prog_gnu_ld],
Packit Service d328f3
[# I'd rather use --version here, but apparently some GNU ld's only accept -v.
Packit Service d328f3
case `$LD -v 2>&1 
Packit Service d328f3
*GNU* | *'with BFD'*)
Packit Service d328f3
  acl_cv_prog_gnu_ld=yes ;;
Packit Service d328f3
*)
Packit Service d328f3
  acl_cv_prog_gnu_ld=no ;;
Packit Service d328f3
esac])
Packit Service d328f3
with_gnu_ld=$acl_cv_prog_gnu_ld
Packit Service d328f3
])
Packit Service d328f3
Packit Service d328f3
dnl From libtool-1.4. Sets the variable LD.
Packit Service d328f3
AC_DEFUN([AC_LIB_PROG_LD],
Packit Service d328f3
[AC_ARG_WITH([gnu-ld],
Packit Service d328f3
[  --with-gnu-ld           assume the C compiler uses GNU ld [default=no]],
Packit Service d328f3
test "$withval" = no || with_gnu_ld=yes, with_gnu_ld=no)
Packit Service d328f3
AC_REQUIRE([AC_PROG_CC])dnl
Packit Service d328f3
AC_REQUIRE([AC_CANONICAL_HOST])dnl
Packit Service d328f3
# Prepare PATH_SEPARATOR.
Packit Service d328f3
# The user is always right.
Packit Service d328f3
if test "${PATH_SEPARATOR+set}" != set; then
Packit Service d328f3
  echo "#! /bin/sh" >conf$$.sh
Packit Service d328f3
  echo  "exit 0"   >>conf$$.sh
Packit Service d328f3
  chmod +x conf$$.sh
Packit Service d328f3
  if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then
Packit Service d328f3
    PATH_SEPARATOR=';'
Packit Service d328f3
  else
Packit Service d328f3
    PATH_SEPARATOR=:
Packit Service d328f3
  fi
Packit Service d328f3
  rm -f conf$$.sh
Packit Service d328f3
fi
Packit Service d328f3
ac_prog=ld
Packit Service d328f3
if test "$GCC" = yes; then
Packit Service d328f3
  # Check if gcc -print-prog-name=ld gives a path.
Packit Service d328f3
  AC_MSG_CHECKING([for ld used by GCC])
Packit Service d328f3
  case $host in
Packit Service d328f3
  *-*-mingw*)
Packit Service d328f3
    # gcc leaves a trailing carriage return which upsets mingw
Packit Service d328f3
    ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;;
Packit Service d328f3
  *)
Packit Service d328f3
    ac_prog=`($CC -print-prog-name=ld) 2>&5` ;;
Packit Service d328f3
  esac
Packit Service d328f3
  case $ac_prog in
Packit Service d328f3
    # Accept absolute paths.
Packit Service d328f3
    [[\\/]* | [A-Za-z]:[\\/]*)]
Packit Service d328f3
      [re_direlt='/[^/][^/]*/\.\./']
Packit Service d328f3
      # Canonicalize the path of ld
Packit Service d328f3
      ac_prog=`echo $ac_prog| sed 's%\\\\%/%g'`
Packit Service d328f3
      while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do
Packit Service d328f3
        ac_prog=`echo $ac_prog| sed "s%$re_direlt%/%"`
Packit Service d328f3
      done
Packit Service d328f3
      test -z "$LD" && LD="$ac_prog"
Packit Service d328f3
      ;;
Packit Service d328f3
  "")
Packit Service d328f3
    # If it fails, then pretend we aren't using GCC.
Packit Service d328f3
    ac_prog=ld
Packit Service d328f3
    ;;
Packit Service d328f3
  *)
Packit Service d328f3
    # If it is relative, then search for the first ld in PATH.
Packit Service d328f3
    with_gnu_ld=unknown
Packit Service d328f3
    ;;
Packit Service d328f3
  esac
Packit Service d328f3
elif test "$with_gnu_ld" = yes; then
Packit Service d328f3
  AC_MSG_CHECKING([for GNU ld])
Packit Service d328f3
else
Packit Service d328f3
  AC_MSG_CHECKING([for non-GNU ld])
Packit Service d328f3
fi
Packit Service d328f3
AC_CACHE_VAL([acl_cv_path_LD],
Packit Service d328f3
[if test -z "$LD"; then
Packit Service d328f3
  IFS="${IFS= 	}"; ac_save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR-:}"
Packit Service d328f3
  for ac_dir in $PATH; do
Packit Service d328f3
    test -z "$ac_dir" && ac_dir=.
Packit Service d328f3
    if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
Packit Service d328f3
      acl_cv_path_LD="$ac_dir/$ac_prog"
Packit Service d328f3
      # Check to see if the program is GNU ld.  I'd rather use --version,
Packit Service d328f3
      # but apparently some GNU ld's only accept -v.
Packit Service d328f3
      # Break only if it was the GNU/non-GNU ld that we prefer.
Packit Service d328f3
      case `"$acl_cv_path_LD" -v 2>&1 < /dev/null` in
Packit Service d328f3
      *GNU* | *'with BFD'*)
Packit Service d328f3
        test "$with_gnu_ld" != no && break ;;
Packit Service d328f3
      *)
Packit Service d328f3
        test "$with_gnu_ld" != yes && break ;;
Packit Service d328f3
      esac
Packit Service d328f3
    fi
Packit Service d328f3
  done
Packit Service d328f3
  IFS="$ac_save_ifs"
Packit Service d328f3
else
Packit Service d328f3
  acl_cv_path_LD="$LD" # Let the user override the test with a path.
Packit Service d328f3
fi])
Packit Service d328f3
LD="$acl_cv_path_LD"
Packit Service d328f3
if test -n "$LD"; then
Packit Service d328f3
  AC_MSG_RESULT([$LD])
Packit Service d328f3
else
Packit Service d328f3
  AC_MSG_RESULT([no])
Packit Service d328f3
fi
Packit Service d328f3
test -z "$LD" && AC_MSG_ERROR([no acceptable ld found in \$PATH])
Packit Service d328f3
AC_LIB_PROG_LD_GNU
Packit Service d328f3
])