1dnl Process this file with autoconf to produce a configure script
2dnl
3AC_PREREQ(2.57)
4AC_INIT(ldmain.c)
5
6AC_CANONICAL_SYSTEM
7AC_ISC_POSIX
8
9changequote(,)dnl
10BFD_VERSION=`sed -n -e 's/^.._INIT_AUTOMAKE.*,[ 	]*\([^ 	]*\)[ 	]*).*/\1/p' < ${srcdir}/../bfd/configure.in`
11changequote([,])dnl
12AM_INIT_AUTOMAKE(ld, ${BFD_VERSION})
13
14AM_PROG_LIBTOOL
15
16AC_ARG_WITH(lib-path, [  --with-lib-path=dir1:dir2...  set default LIB_PATH],LIB_PATH=$withval)
17AC_ARG_ENABLE(targets,
18[  --enable-targets        alternative target configurations],
19[case "${enableval}" in
20  yes | "") AC_ERROR(enable-targets option must specify target names or 'all')
21            ;;
22  no)       enable_targets= ;;
23  *)        enable_targets=$enableval ;;
24esac])dnl
25AC_ARG_ENABLE(64-bit-bfd,
26[  --enable-64-bit-bfd     64-bit support (on hosts with narrower word sizes)],
27[case "${enableval}" in
28  yes)  want64=true  ;;
29  no)   want64=false ;;
30  *)    AC_MSG_ERROR(bad value ${enableval} for 64-bit-bfd option) ;;
31esac],[want64=false])dnl
32
33AC_ARG_WITH(sysroot,
34[  --with-sysroot[=DIR] Search for usr/lib et al within DIR.],
35[
36 case ${with_sysroot} in
37 yes) TARGET_SYSTEM_ROOT='${exec_prefix}/${target_alias}/sys-root' ;;
38 *) TARGET_SYSTEM_ROOT=$with_sysroot ;;
39 esac
40
41 TARGET_SYSTEM_ROOT_DEFINE='-DTARGET_SYSTEM_ROOT=\"$(TARGET_SYSTEM_ROOT)\"'
42 use_sysroot=yes
43
44 if test "x$prefix" = xNONE; then
45  test_prefix=/usr/local
46 else
47  test_prefix=$prefix
48 fi
49 if test "x$exec_prefix" = xNONE; then
50  test_exec_prefix=$test_prefix
51 else
52  test_exec_prefix=$exec_prefix
53 fi
54 case ${TARGET_SYSTEM_ROOT} in
55 "${test_prefix}"|"${test_prefix}/"*|\
56 "${test_exec_prefix}"|"${test_exec_prefix}/"*|\
57 '${prefix}'|'${prefix}/'*|\
58 '${exec_prefix}'|'${exec_prefix}/'*)
59   t="$TARGET_SYSTEM_ROOT_DEFINE -DTARGET_SYSTEM_ROOT_RELOCATABLE"
60   TARGET_SYSTEM_ROOT_DEFINE="$t"
61   ;;
62 esac
63], [
64 use_sysroot=no
65 TARGET_SYSTEM_ROOT=
66 TARGET_SYSTEM_ROOT_DEFINE='-DTARGET_SYSTEM_ROOT=\"\"'
67])
68AC_SUBST(use_sysroot)
69AC_SUBST(TARGET_SYSTEM_ROOT)
70AC_SUBST(TARGET_SYSTEM_ROOT_DEFINE)
71
72AM_BINUTILS_WARNINGS
73
74AM_CONFIG_HEADER(config.h:config.in)
75
76if test -z "$target" ; then
77    AC_MSG_ERROR(Unrecognized target system type; please check config.sub.)
78fi
79if test -z "$host" ; then
80    AC_MSG_ERROR(Unrecognized host system type; please check config.sub.)
81fi
82
83# host-specific stuff:
84
85AC_PROG_CC
86AC_PROG_INSTALL
87
88ALL_LINGUAS="fr sv tr es da vi zh_CN zh_TW ga"
89ZW_GNU_GETTEXT_SISTER_DIR
90AM_PO_SUBDIRS
91
92AC_EXEEXT
93
94AC_PROG_YACC
95AM_PROG_LEX
96
97AM_MAINTAINER_MODE
98AM_CONDITIONAL(GENINSRC_NEVER, false)
99
100. ${srcdir}/configure.host
101
102AC_SUBST(HDEFINES)
103AC_SUBST(HOSTING_CRT0)
104AC_SUBST(HOSTING_LIBS)
105AC_SUBST(NATIVE_LIB_DIRS)
106
107AC_CHECK_HEADERS(string.h strings.h stdlib.h unistd.h elf-hints.h limits.h sys/param.h)
108AC_CHECK_FUNCS(glob mkstemp realpath sbrk waitpid)
109AC_HEADER_DIRENT
110
111AC_MSG_CHECKING(for a known getopt prototype in unistd.h)
112AC_CACHE_VAL(ld_cv_decl_getopt_unistd_h,
113[AC_TRY_COMPILE([#include <unistd.h>], [extern int getopt (int, char *const*, const char *);],
114ld_cv_decl_getopt_unistd_h=yes, ld_cv_decl_getopt_unistd_h=no)])
115AC_MSG_RESULT($ld_cv_decl_getopt_unistd_h)
116if test $ld_cv_decl_getopt_unistd_h = yes; then
117  AC_DEFINE([HAVE_DECL_GETOPT], 1,
118	    [Is the prototype for getopt in <unistd.h> in the expected format?])
119fi
120	
121BFD_BINARY_FOPEN
122
123AC_CHECK_DECLS([strstr, free, sbrk, getenv, environ])
124
125# When converting linker scripts into strings for use in emulation
126# files, use astring.sed if the compiler supports ANSI string
127# concatenation, or ostring.sed otherwise.  This is to support the
128# broken Microsoft MSVC compiler, which limits the length of string
129# constants, while still supporting pre-ANSI compilers which do not
130# support string concatenation.
131AC_MSG_CHECKING([whether ANSI C string concatenation works])
132AC_CACHE_VAL(ld_cv_string_concatenation,
133[AC_TRY_COMPILE(,[char *a = "a" "a";],
134  [ld_cv_string_concatenation=yes],
135  [ld_cv_string_concatenation=no])])
136AC_MSG_RESULT($ld_cv_string_concatenation)
137if test "$ld_cv_string_concatenation" = "yes"; then
138  STRINGIFY=astring.sed
139else
140  STRINGIFY=ostring.sed
141fi
142AC_SUBST(STRINGIFY)
143
144# target-specific stuff:
145
146all_targets=
147EMUL=
148all_emuls=
149all_emul_extras=
150all_libpath=
151
152dnl We need to get an arbitrary number of tdir definitions into
153dnl Makefile.  We can't do it using AC_SUBST, because autoconf does
154dnl not permit literal newlines in an AC_SUBST variables.  So we use a
155dnl file.
156rm -f tdirs
157
158for targ_alias in `echo $target_alias $enable_targets | sed 's/,/ /g'`
159do
160  if test "$targ_alias" = "all"; then
161    all_targets=true
162  else
163    # Canonicalize the secondary target names.
164    result=`$ac_config_sub $targ_alias 2>/dev/null`
165    if test -n "$result"; then
166	targ=$result
167    else
168	targ=$targ_alias
169    fi
170
171    . ${srcdir}/configure.tgt
172
173    if test "$targ" = "$target"; then
174      EMUL=$targ_emul
175    fi
176
177    if test x${want64} = xfalse; then
178      . ${srcdir}/../bfd/config.bfd
179    fi
180
181    if test x${want64} = xtrue; then
182      targ_extra_emuls="$targ_extra_emuls $targ64_extra_emuls"
183      targ_extra_libpath="$targ_extra_libpath $targ64_extra_libpath"
184    fi
185
186    for i in $targ_emul $targ_extra_emuls $targ_extra_libpath; do
187	case " $all_emuls " in
188	*" e${i}.o "*) ;;
189	*)
190	  all_emuls="$all_emuls e${i}.o"
191	  eval result=\$tdir_$i
192	  test -z "$result" && result=$targ_alias
193	  echo tdir_$i=$result >> tdirs
194	  ;;
195	esac
196    done
197
198    for i in $targ_emul $targ_extra_libpath; do
199	case " $all_libpath " in
200	*" ${i} "*) ;;
201	*)
202	  if test -z "$all_libpath"; then
203	    all_libpath=${i}
204	  else
205	    all_libpath="$all_libpath ${i}"
206	  fi
207	  ;;
208	esac
209    done
210
211    for i in $targ_extra_ofiles; do
212	case " $all_emul_extras " in
213	*" ${i} "*) ;;
214	*)
215	  all_emul_extras="$all_emul_extras ${i}"
216	  ;;
217	esac
218    done
219  fi
220done
221
222AC_SUBST(EMUL)
223
224TDIRS=tdirs
225AC_SUBST_FILE(TDIRS)
226
227if test x${all_targets} = xtrue; then
228  if test x${want64} = xfalse; then
229    AC_CHECK_SIZEOF(long)
230    if test "x${ac_cv_sizeof_long}" = "x8"; then
231      want64=true
232    fi
233  fi
234  if test x${want64} = xtrue; then
235    EMULATION_OFILES='$(ALL_EMULATIONS) $(ALL_64_EMULATIONS)'
236  else
237    EMULATION_OFILES='$(ALL_EMULATIONS)'
238  fi
239  EMUL_EXTRA_OFILES='$(ALL_EMUL_EXTRA_OFILES)'
240else
241  EMULATION_OFILES=$all_emuls
242  EMUL_EXTRA_OFILES=$all_emul_extras
243fi
244AC_SUBST(EMULATION_OFILES)
245AC_SUBST(EMUL_EXTRA_OFILES)
246AC_SUBST(LIB_PATH)
247
248EMULATION_LIBPATH=$all_libpath
249AC_SUBST(EMULATION_LIBPATH)
250
251if test x${enable_static} = xno; then
252  TESTBFDLIB="--rpath ../bfd/.libs ../bfd/.libs/libbfd.so"
253else
254  TESTBFDLIB="../bfd/.libs/libbfd.a"
255fi
256AC_SUBST(TESTBFDLIB)
257
258target_vendor=${target_vendor=$host_vendor}
259case "$target_vendor" in
260  hp) EXTRA_SHLIB_EXTENSION=".sl" ;;
261  *)  EXTRA_SHLIB_EXTENSION= ;;
262esac
263
264case "$target_os" in
265  lynxos) EXTRA_SHLIB_EXTENSION=".a" ;;
266esac
267
268if test x${EXTRA_SHLIB_EXTENSION} != x ; then
269  AC_DEFINE_UNQUOTED(EXTRA_SHLIB_EXTENSION, "$EXTRA_SHLIB_EXTENSION",
270   [Additional extension a shared object might have.])
271fi
272
273dnl Required by html and install-html
274AC_SUBST(datarootdir)
275AC_SUBST(docdir)
276AC_SUBST(htmldir)
277
278AC_OUTPUT(Makefile po/Makefile.in:po/Make-in)
279