dnl Process this file with autoconf to produce a configure script
dnl
AC_PREREQ(2.59)
AC_INIT
AC_CONFIG_SRCDIR(ldmain.c)

AC_CANONICAL_TARGET
AC_ISC_POSIX

changequote(,)dnl
BFD_VERSION=`sed -n -e 's/^.._INIT_AUTOMAKE.*,[ 	]*\([^ 	]*\)[ 	]*).*/\1/p' < ${srcdir}/../bfd/configure.in`
changequote([,])dnl
AM_INIT_AUTOMAKE(ld, ${BFD_VERSION})

AC_ARG_WITH(lib-path, [  --with-lib-path=dir1:dir2...  set default LIB_PATH],LIB_PATH=$withval)
AC_ARG_ENABLE(targets,
[  --enable-targets        alternative target configurations],
[case "${enableval}" in
  yes | "") AC_MSG_ERROR(enable-targets option must specify target names or 'all')
            ;;
  no)       enable_targets= ;;
  *)        enable_targets=$enableval ;;
esac])dnl
AC_ARG_ENABLE(64-bit-bfd,
[  --enable-64-bit-bfd     64-bit support (on hosts with narrower word sizes)],
[case "${enableval}" in
  yes)  want64=true  ;;
  no)   want64=false ;;
  *)    AC_MSG_ERROR(bad value ${enableval} for 64-bit-bfd option) ;;
esac],[want64=false])dnl

AC_ARG_WITH(sysroot,
[  --with-sysroot[=DIR] Search for usr/lib et al within DIR.],
[
 case ${with_sysroot} in
 yes) TARGET_SYSTEM_ROOT='${exec_prefix}/${target_alias}/sys-root' ;;
 *) TARGET_SYSTEM_ROOT=$with_sysroot ;;
 esac

 TARGET_SYSTEM_ROOT_DEFINE='-DTARGET_SYSTEM_ROOT=\"$(TARGET_SYSTEM_ROOT)\"'
 use_sysroot=yes

 if test "x$prefix" = xNONE; then
  test_prefix=/usr/local
 else
  test_prefix=$prefix
 fi
 if test "x$exec_prefix" = xNONE; then
  test_exec_prefix=$test_prefix
 else
  test_exec_prefix=$exec_prefix
 fi
 case ${TARGET_SYSTEM_ROOT} in
 "${test_prefix}"|"${test_prefix}/"*|\
 "${test_exec_prefix}"|"${test_exec_prefix}/"*|\
 '${prefix}'|'${prefix}/'*|\
 '${exec_prefix}'|'${exec_prefix}/'*)
   t="$TARGET_SYSTEM_ROOT_DEFINE -DTARGET_SYSTEM_ROOT_RELOCATABLE"
   TARGET_SYSTEM_ROOT_DEFINE="$t"
   ;;
 esac
], [
 use_sysroot=no
 TARGET_SYSTEM_ROOT=
 TARGET_SYSTEM_ROOT_DEFINE='-DTARGET_SYSTEM_ROOT=\"\"'
])
AC_SUBST(use_sysroot)
AC_SUBST(TARGET_SYSTEM_ROOT)
AC_SUBST(TARGET_SYSTEM_ROOT_DEFINE)

AC_ARG_ENABLE([got],
AS_HELP_STRING([--enable-got=<type>],
               [GOT handling scheme (target, single, negative, multigot)]),
[case "${enableval}" in
  target | single | negative | multigot)  got_handling=$enableval ;;
  *)  AC_MSG_ERROR(bad value ${enableval} for --enable-got option) ;;
esac],
[got_handling=target])

case "${got_handling}" in
  target)
    AC_DEFINE([GOT_HANDLING_DEFAULT], [GOT_HANDLING_TARGET_DEFAULT],
              [Define to choose default GOT handling scheme]) ;;
  single)
    AC_DEFINE([GOT_HANDLING_DEFAULT], [GOT_HANDLING_SINGLE],
              [Define to choose default GOT handling scheme]) ;;
  negative)
    AC_DEFINE([GOT_HANDLING_DEFAULT], [GOT_HANDLING_NEGATIVE],
              [Define to choose default GOT handling scheme]) ;;
  multigot)
    AC_DEFINE([GOT_HANDLING_DEFAULT], [GOT_HANDLING_MULTIGOT],
              [Define to choose default GOT handling scheme]) ;;
  *)  AC_MSG_ERROR(bad value ${got_handling} for --enable-got option) ;;
esac

AM_BINUTILS_WARNINGS

AC_CONFIG_HEADERS([config.h:config.in])

if test -z "$target" ; then
    AC_MSG_ERROR(Unrecognized target system type; please check config.sub.)
fi
if test -z "$host" ; then
    AC_MSG_ERROR(Unrecognized host system type; please check config.sub.)
fi

# host-specific stuff:

AC_PROG_CC
AC_GNU_SOURCE
AC_USE_SYSTEM_EXTENSIONS
AC_PROG_INSTALL

LT_INIT

ALL_LINGUAS="fr sv tr es da vi zh_CN zh_TW ga fi"
ZW_GNU_GETTEXT_SISTER_DIR
AM_PO_SUBDIRS

AC_EXEEXT

AC_PROG_YACC
AM_PROG_LEX

AM_MAINTAINER_MODE
AM_CONDITIONAL(GENINSRC_NEVER, false)

. ${srcdir}/configure.host

AC_SUBST(HDEFINES)
AC_SUBST(HOSTING_CRT0)
AC_SUBST(HOSTING_LIBS)
AC_SUBST(NATIVE_LIB_DIRS)

AC_CHECK_HEADERS(string.h strings.h stdlib.h unistd.h elf-hints.h limits.h sys/param.h)
AC_CHECK_FUNCS(glob mkstemp realpath sbrk waitpid)
AC_HEADER_DIRENT

AC_MSG_CHECKING(for a known getopt prototype in unistd.h)
AC_CACHE_VAL(ld_cv_decl_getopt_unistd_h,
[AC_COMPILE_IFELSE([AC_LANG_PROGRAM([#include <unistd.h>], [extern int getopt (int, char *const*, const char *);])],
ld_cv_decl_getopt_unistd_h=yes, ld_cv_decl_getopt_unistd_h=no)])
AC_MSG_RESULT($ld_cv_decl_getopt_unistd_h)
if test $ld_cv_decl_getopt_unistd_h = yes; then
  AC_DEFINE([HAVE_DECL_GETOPT], 1,
	    [Is the prototype for getopt in <unistd.h> in the expected format?])
fi
	
BFD_BINARY_FOPEN

AC_CHECK_DECLS([strstr, free, sbrk, getenv, environ])

# Link in zlib if we can.  This is needed only for the bootstrap tests
# right now, since those tests use libbfd, which depends on zlib.
AC_SEARCH_LIBS(zlibVersion, z, [AC_CHECK_HEADERS(zlib.h)])

# When converting linker scripts into strings for use in emulation
# files, use astring.sed if the compiler supports ANSI string
# concatenation, or ostring.sed otherwise.  This is to support the
# broken Microsoft MSVC compiler, which limits the length of string
# constants, while still supporting pre-ANSI compilers which do not
# support string concatenation.
AC_MSG_CHECKING([whether ANSI C string concatenation works])
AC_CACHE_VAL(ld_cv_string_concatenation,
[AC_COMPILE_IFELSE([AC_LANG_PROGRAM([], [char *a = "a" "a";])],
  ld_cv_string_concatenation=yes,
  ld_cv_string_concatenation=no)])
AC_MSG_RESULT($ld_cv_string_concatenation)
if test "$ld_cv_string_concatenation" = "yes"; then
  STRINGIFY=astring.sed
else
  STRINGIFY=ostring.sed
fi
AC_SUBST(STRINGIFY)

# target-specific stuff:

all_targets=
EMUL=
all_emuls=
all_emul_extras=
all_libpath=

dnl We need to get an arbitrary number of tdir definitions into
dnl Makefile.  We can't do it using AC_SUBST, because autoconf does
dnl not permit literal newlines in an AC_SUBST variables.  So we use a
dnl file.
rm -f tdirs

for targ_alias in `echo $target_alias $enable_targets | sed 's/,/ /g'`
do
  if test "$targ_alias" = "all"; then
    all_targets=true
  else
    # Canonicalize the secondary target names.
    result=`$ac_config_sub $targ_alias 2>/dev/null`
    if test -n "$result"; then
	targ=$result
    else
	targ=$targ_alias
    fi

    . ${srcdir}/configure.tgt

    if test "$targ" = "$target"; then
      EMUL=$targ_emul
    fi

    if test x${want64} = xfalse; then
      . ${srcdir}/../bfd/config.bfd
    fi

    if test x${want64} = xtrue; then
      targ_extra_emuls="$targ_extra_emuls $targ64_extra_emuls"
      targ_extra_libpath="$targ_extra_libpath $targ64_extra_libpath"
    fi

    for i in $targ_emul $targ_extra_emuls $targ_extra_libpath; do
	case " $all_emuls " in
	*" e${i}.o "*) ;;
	*)
	  all_emuls="$all_emuls e${i}.o"
	  eval result=\$tdir_$i
	  test -z "$result" && result=$targ_alias
	  echo tdir_$i=$result >> tdirs
	  ;;
	esac
    done

    for i in $targ_emul $targ_extra_libpath; do
	case " $all_libpath " in
	*" ${i} "*) ;;
	*)
	  if test -z "$all_libpath"; then
	    all_libpath=${i}
	  else
	    all_libpath="$all_libpath ${i}"
	  fi
	  ;;
	esac
    done

    for i in $targ_extra_ofiles; do
	case " $all_emul_extras " in
	*" ${i} "*) ;;
	*)
	  all_emul_extras="$all_emul_extras ${i}"
	  ;;
	esac
    done
  fi
done

AC_SUBST(EMUL)

TDIRS=tdirs
AC_SUBST_FILE(TDIRS)

if test x${all_targets} = xtrue; then
  if test x${want64} = xfalse; then
    AC_CHECK_SIZEOF(long)
    if test "x${ac_cv_sizeof_long}" = "x8"; then
      want64=true
    fi
  fi
  if test x${want64} = xtrue; then
    EMULATION_OFILES='$(ALL_EMULATIONS) $(ALL_64_EMULATIONS)'
  else
    EMULATION_OFILES='$(ALL_EMULATIONS)'
  fi
  EMUL_EXTRA_OFILES='$(ALL_EMUL_EXTRA_OFILES)'
else
  EMULATION_OFILES=$all_emuls
  EMUL_EXTRA_OFILES=$all_emul_extras
fi
AC_SUBST(EMULATION_OFILES)
AC_SUBST(EMUL_EXTRA_OFILES)
AC_SUBST(LIB_PATH)

EMULATION_LIBPATH=$all_libpath
AC_SUBST(EMULATION_LIBPATH)

if test x${enable_static} = xno; then
  TESTBFDLIB="--rpath ../bfd/.libs ../bfd/.libs/libbfd.so"
else
  TESTBFDLIB="../bfd/.libs/libbfd.a"
fi
AC_SUBST(TESTBFDLIB)

target_vendor=${target_vendor=$host_vendor}
case "$target_vendor" in
  hp) EXTRA_SHLIB_EXTENSION=".sl" ;;
  *)  EXTRA_SHLIB_EXTENSION= ;;
esac

case "$target_os" in
  lynxos) EXTRA_SHLIB_EXTENSION=".a" ;;
esac

if test x${EXTRA_SHLIB_EXTENSION} != x ; then
  AC_DEFINE_UNQUOTED(EXTRA_SHLIB_EXTENSION, "$EXTRA_SHLIB_EXTENSION",
   [Additional extension a shared object might have.])
fi

dnl Required by html and install-html
AC_SUBST(datarootdir)
AC_SUBST(docdir)
AC_SUBST(htmldir)

AC_CONFIG_FILES(Makefile po/Makefile.in:po/Make-in)
AC_OUTPUT
