Blame m4/lib-ld.m4

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