configure.in revision 107492
190731Sjhaydnl Process this file with autoconf to produce a configure script.
2158124Smarceldnl
3158124Smarcel
490731SjhayAC_PREREQ(2.13)
590731SjhayAC_INIT(libbfd.c)
690731Sjhay
790731SjhayAC_CANONICAL_SYSTEM
890731SjhayAC_ISC_POSIX
990731Sjhay
1090731SjhayAM_INIT_AUTOMAKE(bfd, 2.13.1)
1190731Sjhay# Uncomment the next line to remove the date from the reported bfd version
1290731Sjhay# is_release=y
1390731Sjhay
1490731Sjhaychangequote(,)dnl
1590731Sjhaybfd_version=`echo "${VERSION}" | sed -e 's/\([^\.]*\)\.*\([^\.]*\)\.*\([^\.]*\)\.*\([^\.]*\)\.*\([^\.]*\).*/\1.00\2.00\3.00\4.00\5/' -e 's/\([^\.]*\)\..*\(..\)\..*\(..\)\..*\(..\)\..*\(..\)$/\1\2\3\4\5/'`
1690731Sjhaychangequote([,])dnl
1790731Sjhay
1890731Sjhaybfd_version_string="\"${VERSION}\""
1990731Sjhaybfd_version_date=`sed -e 's/.*DATE //' < ${srcdir}/version.h`
2090731Sjhayif test x${is_release} = x; then
2190731Sjhaydnl Sad, but we can't use XSTRING here to pick up the date from version.h
2290731Sjhaydnl because traditional C doesn't allow it.
2390731Sjhay  bfd_version_string="\"${VERSION} ${bfd_version_date}\""
2490731Sjhayfi
2590731Sjhaydnl Since we need to edit bfd-in3.h to get the date for bfd_version_string,
2690731Sjhaydnl we may as well substitute for bfd_version_date too.  That way we don't
2790731Sjhaydnl need to #include version.h
2890731SjhayAC_SUBST(bfd_version)
2990731SjhayAC_SUBST(bfd_version_date)
3090731SjhayAC_SUBST(bfd_version_string)
3190731Sjhay
3290731Sjhaydnl These must be called before AM_PROG_LIBTOOL, because it may want
3390731Sjhaydnl to call AC_CHECK_PROG.
3490731SjhayAC_CHECK_TOOL(AR, ar)
3590731SjhayAC_CHECK_TOOL(RANLIB, ranlib, :)
36158124Smarcel
3790731Sjhaydnl Default to a non shared library.  This may be overridden by the
3890731Sjhaydnl configure option --enable-shared.
3990731SjhayAM_DISABLE_SHARED
4090731Sjhay
4190731SjhayAM_PROG_LIBTOOL
4290731Sjhay
4390731SjhayAC_ARG_ENABLE(64-bit-bfd,
44102714Sphk[  --enable-64-bit-bfd     64-bit support (on hosts with narrower word sizes)],
45158124Smarcel[case "${enableval}" in
46158124Smarcel  yes)  want64=true  ;;
47160030Sobrien  no)   want64=false ;;
4890731Sjhay  *)    AC_MSG_ERROR(bad value ${enableval} for 64-bit-bfd option) ;;
49158124Smarcelesac],[want64=false])dnl
5090731SjhayAC_ARG_ENABLE(targets,
51158124Smarcel[  --enable-targets        alternative target configurations],
52158124Smarcel[case "${enableval}" in
53158124Smarcel  yes | "") AC_ERROR(enable-targets option must specify target names or 'all')
54158124Smarcel            ;;
55158124Smarcel  no)       enable_targets= ;;
56158124Smarcel  *)        enable_targets=$enableval ;;
57158124Smarcelesac])dnl
58158124SmarcelAC_ARG_ENABLE(commonbfdlib,
5990731Sjhay[  --enable-commonbfdlib   build shared BFD/opcodes/libiberty library],
60158124Smarcel[case "${enableval}" in
6190731Sjhay  yes) commonbfdlib=true ;;
62158124Smarcel  no)  commonbfdlib=false ;;
63158124Smarcel  *)   AC_MSG_ERROR([bad value ${enableval} for BFD commonbfdlib option]) ;;
64158124Smarcelesac])dnl
65158124SmarcelAC_ARG_WITH(mmap,
66158124Smarcel[  --with-mmap             try using mmap for BFD input files if available],
67158124Smarcel[case "${withval}" in
68102893Sphk  yes)  want_mmap=true ;;
69158124Smarcel  no)   want_mmap=false ;;
70102893Sphk  *)    AC_MSG_ERROR(bad value ${withval} for BFD with-mmap option) ;;
71158124Smarcelesac],[want_mmap=false])dnl
72158124Smarcel
73158124Smarcelbuild_warnings="-W -Wall -Wstrict-prototypes -Wmissing-prototypes"
74158124SmarcelAC_ARG_ENABLE(build-warnings,
75102734Sphk[  --enable-build-warnings Enable build-time compiler warnings if gcc is used],
76158124Smarcel[case "${enableval}" in
77158124Smarcel  yes)	;;
78158124Smarcel  no)	build_warnings="-w";;
79158124Smarcel  ,*)   t=`echo "${enableval}" | sed -e "s/,/ /g"`
80102734Sphk        build_warnings="${build_warnings} ${t}";;
81158124Smarcel  *,)   t=`echo "${enableval}" | sed -e "s/,/ /g"`
82158124Smarcel        build_warnings="${t} ${build_warnings}";;
83158124Smarcel  *)    build_warnings=`echo "${enableval}" | sed -e "s/,/ /g"`;;
84158124Smarcelesac
85158124Smarcelif test x"$silent" != x"yes" && test x"$build_warnings" != x""; then
86158124Smarcel  echo "Setting warning flags = $build_warnings" 6>&1
87158124Smarcelfi])dnl
88158124SmarcelWARN_CFLAGS=""
89158124Smarcelif test "x${build_warnings}" != x -a "x$GCC" = xyes ; then
90158124Smarcel    WARN_CFLAGS="${build_warnings}"
91158124Smarcelfi
92158124SmarcelAC_SUBST(WARN_CFLAGS)
93158124Smarcel
94158124SmarcelAM_CONFIG_HEADER(config.h:config.in)
95158124Smarcel
96158124Smarcelif test -z "$target" ; then
97158124Smarcel    AC_MSG_ERROR(Unrecognized target system type; please check config.sub.)
98158124Smarcelfi
99158124Smarcel
100158124SmarcelAM_MAINTAINER_MODE
101158124SmarcelAM_INSTALL_LIBBFD
102158124SmarcelAC_EXEEXT
103158124Smarcel
104158124Smarcelhost64=false
105158124Smarceltarget64=false
106158124Smarcelbfd_default_target_size=32
107158124Smarcel
108158124Smarcel# host stuff:
109102734Sphk
110158124SmarcelAC_PROG_CC
111158124Smarcel
112158124SmarcelALL_LINGUAS="fr tr ja es sv da"
113158124SmarcelCY_GNU_GETTEXT
114158124Smarcel
115158124Smarcel# Permit host specific settings.
116158124Smarcel. ${srcdir}/configure.host
117158124Smarcel
118158124SmarcelAC_SUBST(HDEFINES)
119158124SmarcelAC_PROG_INSTALL
120158124Smarcel
121158124SmarcelBFD_HOST_64BIT_LONG=0
122142502SsamBFD_HOST_64_BIT_DEFINED=0
123158124SmarcelBFD_HOST_64_BIT=
124158124SmarcelBFD_HOST_U_64_BIT=
125102734Sphkif test "x${HOST_64BIT_TYPE}" = "xlong"; then
126102734Sphk  BFD_HOST_64BIT_LONG=1
127166901Spisoelif test "x${HOST_64BIT_TYPE}" != "x"; then
128158124Smarcel  BFD_HOST_64_BIT_DEFINED=1
129112270Ssobomax  BFD_HOST_64_BIT=${HOST_64BIT_TYPE}
130158124Smarcel  BFD_HOST_U_64_BIT=${HOST_U_64BIT_TYPE}
131158124Smarcelfi
132158124SmarcelAC_SUBST(BFD_HOST_64BIT_LONG)
133158124SmarcelAC_SUBST(BFD_HOST_64_BIT_DEFINED)
134158124SmarcelAC_SUBST(BFD_HOST_64_BIT)
135112270SsobomaxAC_SUBST(BFD_HOST_U_64_BIT)
136158124Smarcel
137158124SmarcelBFD_CC_FOR_BUILD
138158124Smarcel
139158124SmarcelAC_CHECK_HEADERS(stddef.h string.h strings.h stdlib.h time.h unistd.h)
140158124SmarcelAC_CHECK_HEADERS(fcntl.h sys/file.h sys/time.h)
141158124SmarcelAC_HEADER_TIME
142158124SmarcelAC_HEADER_DIRENT
143112270SsobomaxAC_CHECK_FUNCS(fcntl getpagesize setitimer sysconf fdopen getuid getgid)
144158124Smarcel
145158124SmarcelBFD_BINARY_FOPEN
146158124Smarcel
147158124SmarcelBFD_NEED_DECLARATION(strstr)
148158124SmarcelBFD_NEED_DECLARATION(malloc)
149158124SmarcelBFD_NEED_DECLARATION(realloc)
150158124SmarcelBFD_NEED_DECLARATION(free)
151158124SmarcelBFD_NEED_DECLARATION(getenv)
152158124Smarcel
153158124Smarcel# If we are configured native, pick a core file support file.
154158124SmarcelCOREFILE=
155112270SsobomaxCOREFLAG=
156158124SmarcelTRAD_HEADER=
157158124Smarcelif test "${target}" = "${host}"; then
158158124Smarcel  case "${host}" in
159158124Smarcel  alpha*-*-freebsd*)
160158124Smarcel	COREFILE=''
161158124Smarcel	;;
162158124Smarcel  alpha*-*-linux-gnu*)
163158124Smarcel	COREFILE=trad-core.lo
164158124Smarcel	TRAD_HEADER='"hosts/alphalinux.h"'
165112270Ssobomax	;;
166158124Smarcel  alpha*-*-netbsd* | alpha*-*-openbsd*)
167158124Smarcel	COREFILE=netbsd-core.lo
168158124Smarcel	;;
169158124Smarcel  alpha*-*-*)		COREFILE=osf-core.lo ;;
170158124Smarcel  arm-*-freebsd*)	COREFILE='' ;;
171158124Smarcel  arm-*-netbsd*)	COREFILE=netbsd-core.lo ;;
172158124Smarcel  arm-*-riscix)		COREFILE=trad-core.lo ;;
173158124Smarcel  hppa*-*-hpux*)	COREFILE=hpux-core.lo ;;
174158124Smarcel  hppa*-*-hiux*)	COREFILE=hpux-core.lo ;;
175158124Smarcel  hppa*-*-mpeix*)	COREFILE=hpux-core.lo ;;
176158124Smarcel  hppa*-*-bsd*)		COREFILE="hpux-core.lo hppabsd-core.lo"
177158124Smarcel			COREFLAG="-DHPUX_CORE -DHPPABSD_CORE" ;;
178158124Smarcel  i370-*-*)
179158124Smarcel	COREFILE=trad-core.lo
180158124Smarcel	TRAD_HEADER='"hosts/i370linux.h"'
181158124Smarcel	;;
182158124Smarcel
183158124Smarcelchangequote(,)dnl
184158124Smarcel  i[3456]86-sequent-bsd*)
185166901Spisochangequote([,])dnl
186158124Smarcel	COREFILE=trad-core.lo
187166901Spiso	TRAD_HEADER='"hosts/symmetry.h"'
188112270Ssobomax	;;
189112270Ssobomaxchangequote(,)dnl
190102714Sphk  i[3456]86-sequent-sysv4*) ;;
191158124Smarcel  i[3456]86-sequent-sysv*)
19290731Sjhaychangequote([,])dnl
193158124Smarcel	COREFILE=trad-core.lo
194158124Smarcel	TRAD_HEADER='"hosts/symmetry.h"'
195158124Smarcel	;;
19690731Sjhaychangequote(,)dnl
197158124Smarcel  i[3456]86-*-bsdi)
198158124Smarcelchangequote([,])dnl
199158124Smarcel	COREFILE=
200158124Smarcel	;;
201158124Smarcelchangequote(,)dnl
202158124Smarcel  i[3456]86-*-bsd* | i[34567]86-*-freebsd[123] | i[34567]86-*-freebsd[123]\.* | i[34567]86-*-freebsd4\.[01234]* | i[34567]86-*-freebsd*aout*)
203158124Smarcelchangequote([,])dnl
20490731Sjhay	COREFILE=trad-core.lo
205158124Smarcel	TRAD_HEADER='"hosts/i386bsd.h"'
206119814Smarcel	;;
207158124Smarcelchangequote(,)dnl
208158124Smarcel  i[3456]86-*-freebsd*)
20990731Sjhaychangequote([,])dnl
210158124Smarcel	COREFILE=''
211158124Smarcel	TRAD_HEADER='"hosts/i386bsd.h"'
212158124Smarcel	;;
213158124Smarcelchangequote(,)dnl
214158124Smarcel  i[3456]86-*-netbsd* | i[3456]86-*-openbsd*)
215158124Smarcelchangequote([,])dnl
216158124Smarcel	COREFILE=netbsd-core.lo
217158124Smarcel	;;
218158124Smarcelchangequote(,)dnl
219158124Smarcel  i[3456]86-esix-sysv3*)
220158124Smarcelchangequote([,])dnl
221158124Smarcel	COREFILE=trad-core.lo
222158124Smarcel	TRAD_HEADER='"hosts/esix.h"'
223158124Smarcel	;;
224158124Smarcelchangequote(,)dnl
225158124Smarcel  i[3456]86-*-sco3.2v5*)
226158124Smarcelchangequote([,])dnl
22790731Sjhay	COREFILE=sco5-core.lo
228158124Smarcel	;;
229158124Smarcelchangequote(,)dnl
230158124Smarcel  i[3456]86-*-sco* | i[3456]86-*-isc*)
231158124Smarcelchangequote([,])dnl
232158124Smarcel	COREFILE=trad-core.lo
233158124Smarcel	TRAD_HEADER='"hosts/i386sco.h"'
234158124Smarcel	;;
235158124Smarcelchangequote(,)dnl
236158124Smarcel  i[3456]86-*-mach3*)
23790731Sjhaychangequote([,])dnl
238158124Smarcel	COREFILE=trad-core.lo
239158124Smarcel	TRAD_HEADER='"hosts/i386mach3.h"'
240158124Smarcel	;;
241158124Smarcelchangequote(,)dnl
242158124Smarcel  i[3456]86-*-linux-gnu*)
24390731Sjhaychangequote([,])dnl
244158124Smarcel	COREFILE=trad-core.lo
245158124Smarcel	TRAD_HEADER='"hosts/i386linux.h"'
246158124Smarcel	;;
24790731Sjhaychangequote(,)dnl
248158124Smarcel  i[3456]86-*-isc*)	COREFILE=trad-core.lo ;;
249158124Smarcel  i[3456]86-*-aix*)	COREFILE=aix386-core.lo ;;
250158124Smarcelchangequote([,])dnl
251109458Smarcel  i860-*-mach3* | i860-*-osf1*)
252158124Smarcel	COREFILE=trad-core.lo
253158124Smarcel	TRAD_HEADER='"hosts/i860mach3.h"'
254158124Smarcel	;;
255158124Smarcel  mips-dec-bsd*)
256158124Smarcel	COREFILE=trad-core.lo
257158124Smarcel	TRAD_HEADER='"hosts/mipsbsd.h"'
258158124Smarcel	;;
259158124Smarcel  mips-dec-mach3*)
260158124Smarcel	COREFILE=trad-core.lo
261158124Smarcel	TRAD_HEADER='"hosts/mipsmach3.h"'
262158124Smarcel	;;
263158124Smarcel  mips-*-netbsd* | mips*-*-openbsd*)
264158124Smarcel	COREFILE=netbsd-core.lo
265158124Smarcel	;;
266119814Smarcel  mips-dec-*)
267158124Smarcel	COREFILE=trad-core.lo
268158124Smarcel	TRAD_HEADER='"hosts/decstation.h"'
269158124Smarcel	;;
270158124Smarcel  mips-sgi-irix4*)	COREFILE=irix-core.lo ;;
271158124Smarcel  mips-sgi-irix5*)	COREFILE=irix-core.lo ;;
272158124Smarcel  mips-sgi-irix6*)	COREFILE=irix-core.lo ;;
273158124Smarcel  mips-*-mach3*)
274158124Smarcel	COREFILE=trad-core.lo
275158124Smarcel	TRAD_HEADER='"hosts/mipsmach3.h"'
276158124Smarcel	;;
277158124Smarcel  mips-*-sysv4*)	;;
278158124Smarcel  mips-*-sysv* | mips-*-riscos*)
279158124Smarcel	COREFILE=trad-core.lo
280158124Smarcel	TRAD_HEADER='"hosts/riscos.h"'
281158124Smarcel	;;
282158124Smarcel  mips-sony-bsd*)
283158124Smarcel	COREFILE=trad-core.lo
284158124Smarcel	TRAD_HEADER='"hosts/news-mips.h"'
285158124Smarcel	;;
286158124Smarcel  m68*-bull*-sysv*)
28790731Sjhay	COREFILE=trad-core.lo
288158124Smarcel	TRAD_HEADER='"hosts/dpx2.h"'
289158124Smarcel	;;
290158124Smarcel  m68*-hp-hpux*)	COREFILE=hpux-core.lo ;;
291158124Smarcel  m68*-hp-bsd*)
292158124Smarcel	COREFILE=trad-core.lo
293112270Ssobomax	TRAD_HEADER='"hosts/hp300bsd.h"'
294158124Smarcel	;;
295158124Smarcel  m68*-*-linux-gnu*)
296158124Smarcel	COREFILE=trad-core.lo
297158124Smarcel	TRAD_HEADER='"hosts/m68klinux.h"'
29890731Sjhay	;;
299158124Smarcel  m68*-motorola-sysv*)
300158124Smarcel	COREFILE=trad-core.lo
301158124Smarcel	TRAD_HEADER='"hosts/delta68.h"'
302102734Sphk	;;
30390731Sjhay  m68*-sony-*)
304158124Smarcel	COREFILE=trad-core.lo
305158124Smarcel	TRAD_HEADER='"hosts/news.h"'
306158124Smarcel	;;
307158124Smarcel  m68*-*-netbsd* | m68*-*-openbsd*)
308158124Smarcel	COREFILE=netbsd-core.lo
309158124Smarcel	;;
31090731Sjhay  m68*-apple-aux*)
311158124Smarcel	COREFILE=trad-core.lo
312158124Smarcel	TRAD_HEADER='"hosts/m68kaux.h"'
313158124Smarcel	;;
314158124Smarcel  m88*-*-sysv4*)
315158124Smarcel	;;
316166901Spiso  m88*-motorola-sysv*)
317158124Smarcel	COREFILE=ptrace-core.lo
318158124Smarcel	;;
319166901Spiso  m88*-*-mach3*)
320166901Spiso	COREFILE=trad-core.lo
321158124Smarcel	TRAD_HEADER='"hosts/m88kmach3.h"'
322158124Smarcel	;;
32390731Sjhay  ns32k-pc532-mach)
324158124Smarcel	COREFILE=trad-core.lo
325158124Smarcel	TRAD_HEADER='"hosts/pc532mach.h"'
326158124Smarcel	;;
327158124Smarcel  ns32k-*-netbsd* | ns32k-*-openbsd*)
328158124Smarcel	COREFILE=netbsd-core.lo
32990731Sjhay	;;
330158124Smarcel  rs6000-*-lynx*)
331158124Smarcel  	COREFILE=lynx-core.lo
332158124Smarcel	;;
333158124Smarcel  rs6000-*-aix5.* | powerpc-*-aix5.*)
334158124Smarcel        COREFILE=rs6000-core.lo
33590731Sjhay	COREFLAG="$COREFLAG -DAIX_5_CORE -DAIX_CORE_DUMPX_CORE"
336158124Smarcel	;;
337158124Smarcelchangequote(,)dnl
338158124Smarcel  rs6000-*-aix4.[3-9]* | powerpc-*-aix4.[3-9]*)
339158124Smarcelchangequote([,])dnl
34090731Sjhay        COREFILE=rs6000-core.lo
341158124Smarcel	COREFLAG="$COREFLAG -DAIX_CORE_DUMPX_CORE"
342158124Smarcel	# Not all versions of AIX with -DAIX_CORE_DUMPX_CORE
343158124Smarcel	# have c_impl as a member of struct core_dumpx
344158124Smarcel	AC_MSG_CHECKING([for c_impl in struct core_dumpx])
34590925Snyan	AC_TRY_COMPILE([#include <core.h>],
34690731Sjhay	  [struct core_dumpx c; c.c_impl = 0;],
34790731Sjhay	  [AC_DEFINE(HAVE_ST_C_IMPL, 1,
348158124Smarcel	    [Define if struct core_dumpx has member c_impl])
349158124Smarcel	  AC_MSG_RESULT(yes)],[AC_MSG_RESULT(no)])
350158124Smarcel	;;
351158124Smarcel  rs6000-*-aix4*)	COREFILE=rs6000-core.lo ;;
352158124Smarcel  rs6000-*-*)		COREFILE=rs6000-core.lo ;;
353158124Smarcel  powerpc-*-aix4*)	COREFILE=rs6000-core.lo ;;
354158124Smarcel  powerpc-*-aix*)	COREFILE=rs6000-core.lo ;;
35590731Sjhay  powerpc-*-beos*)	;;
356158124Smarcel  powerpc-*-freebsd*)	COREFILE='' ;;
357158124Smarcel  powerpc-*-netbsd*)	COREFILE=netbsd-core.lo ;;
358158124Smarcel  powerpc-*-*bsd*)	COREFILE=netbsd-core.lo ;;
359158124Smarcel  s390*-*-*)            COREFILE=trad-core.lo ;;
360158124Smarcel  sh*-*-netbsd*)	COREFILE=netbsd-core.lo ;;
361158124Smarcel  sparc-*-netbsd* | sparc*-*-openbsd*)
362158124Smarcel	COREFILE=netbsd-core.lo
363158124Smarcel	;;
364158124Smarcel  tahoe-*-*)
365158124Smarcel	COREFILE=trad-core.lo
366158124Smarcel	TRAD_HEADER='"hosts/tahoe.h"'
367158124Smarcel	;;
368158124Smarcel  vax-*-netbsd*)	COREFILE=netbsd-core.lo ;;
369158124Smarcel  vax-*-ultrix2*)
370158124Smarcel	COREFILE=trad-core.lo
371158124Smarcel	TRAD_HEADER='"hosts/vaxult2.h"'
372158124Smarcel	;;
373158124Smarcel  vax-*-ultrix*)
374158124Smarcel	COREFILE=trad-core.lo
375158124Smarcel	TRAD_HEADER='"hosts/vaxult2.h"'
376158124Smarcel	;;
377158124Smarcel  vax-*-*)
378158124Smarcel	COREFILE=trad-core.lo
379158124Smarcel	TRAD_HEADER='"hosts/vaxbsd.h"'
380158124Smarcel	;;
38190731Sjhay  x86_64-*-netbsd*)	COREFILE=netbsd-core.lo ;;
38290731Sjhay  esac
383158124Smarcel
384158124Smarcel  case "$COREFILE" in
385112270Ssobomax  aix386-core.lo)	COREFLAG=-DAIX386_CORE ;;
386158124Smarcel  hppabsd-core.lo)	COREFLAG=-DHPPABSD_CORE ;;
387158124Smarcel  hpux-core.lo)		COREFLAG=-DHPUX_CORE ;;
388158124Smarcel  irix-core.lo)		COREFLAG=-DIRIX_CORE ;;
389158124Smarcel  lynx-core.lo)		COREFLAG=-DLYNX_CORE ;;
390112270Ssobomax  netbsd-core.lo)	COREFLAG=-DNETBSD_CORE ;;
391158124Smarcel  osf-core.lo)		COREFLAG=-DOSF_CORE ;;
392112270Ssobomax  ptrace-core.lo)	COREFLAG=-DPTRACE_CORE ;;
393158124Smarcel  rs6000-core.lo)	COREFLAG="$COREFLAG -DAIX_CORE" ;;
394158124Smarcel  sco5-core.lo)		COREFLAG="$COREFLAG -DSCO5_CORE" ;;
395158124Smarcel  trad-core.lo)		COREFLAG="$COREFLAG -DTRAD_CORE" ;;
396158124Smarcel  esac
397158124Smarcel
398158124Smarcel  # ELF corefile support has several flavors, but all of
399158124Smarcel  # them use something called <sys/procfs.h>
400158124Smarcel  AC_CHECK_HEADERS(sys/procfs.h)
401158124Smarcel  if test "$ac_cv_header_sys_procfs_h" = yes; then
402158124Smarcel    BFD_HAVE_SYS_PROCFS_TYPE(prstatus_t)
403158124Smarcel    BFD_HAVE_SYS_PROCFS_TYPE(prstatus32_t)
404158124Smarcel    BFD_HAVE_SYS_PROCFS_TYPE_MEMBER(prstatus_t, pr_who)
405158124Smarcel    BFD_HAVE_SYS_PROCFS_TYPE_MEMBER(prstatus32_t, pr_who)
406158124Smarcel    BFD_HAVE_SYS_PROCFS_TYPE(pstatus_t)
407112270Ssobomax    BFD_HAVE_SYS_PROCFS_TYPE(pxstatus_t)
408158124Smarcel    BFD_HAVE_SYS_PROCFS_TYPE(pstatus32_t)
409158124Smarcel    BFD_HAVE_SYS_PROCFS_TYPE(prpsinfo_t)
410112270Ssobomax    BFD_HAVE_SYS_PROCFS_TYPE(prpsinfo32_t)
411158124Smarcel    BFD_HAVE_SYS_PROCFS_TYPE(psinfo_t)
412158124Smarcel    BFD_HAVE_SYS_PROCFS_TYPE(psinfo32_t)
413158124Smarcel    BFD_HAVE_SYS_PROCFS_TYPE(lwpstatus_t)
41490731Sjhay    BFD_HAVE_SYS_PROCFS_TYPE(lwpxstatus_t)
415158124Smarcel    BFD_HAVE_SYS_PROCFS_TYPE_MEMBER(lwpstatus_t, pr_context)
416158124Smarcel    BFD_HAVE_SYS_PROCFS_TYPE_MEMBER(lwpstatus_t, pr_reg)
417158124Smarcel    BFD_HAVE_SYS_PROCFS_TYPE(win32_pstatus_t)
418158124Smarcel  fi
419158124Smarcelfi
420158124SmarcelAC_SUBST(COREFILE)
421158124SmarcelAC_SUBST(COREFLAG)
422158124Smarcelif test -n "$TRAD_HEADER"; then
423158124Smarcel  AC_DEFINE_UNQUOTED(TRAD_HEADER, $TRAD_HEADER,
424158124Smarcel    [Name of host specific header file to include in trad-core.c.])
425158124Smarcelfi
426158124Smarcel
427158124Smarcel# Horrible hacks to build DLLs on Windows.
428158124SmarcelWIN32LDFLAGS=
429158124SmarcelWIN32LIBADD=
43090731Sjhaycase "${host}" in
43190731Sjhay*-*-cygwin*)
432158124Smarcel  if test "$enable_shared" = "yes"; then
433158124Smarcel    WIN32LDFLAGS="-no-undefined"
43490731Sjhay    WIN32LIBADD="-L`pwd`/../libiberty -liberty -L`pwd`/../intl -lintl -lcygwin -lkernel32"
435158124Smarcel  fi
436158124Smarcel  ;;
437158124Smarcel*-*-linux*)
43890731Sjhay  # We borrow WIN32LIBADD so that the shared libbfd won't depend on
439158124Smarcel  # libiberty.a.
440158124Smarcel  case "${host}" in
441158124Smarcel  mips*-*-linux*)
44290731Sjhay    # Linux/MIPS uses PIC by default.
443158124Smarcel    if test "$enable_shared" = "yes"; then
444158124Smarcel      WIN32LIBADD="-L../libiberty -liberty"
445158124Smarcel    fi
446158124Smarcel    ;;
447158124Smarcel  *)
448158124Smarcelchangequote(,)dnl
449158124Smarcel    x=`sed -n -e 's/^[ 	]*PICFLAG[ 	]*=[ 	]*//p' < ../libiberty/Makefile | tail -1`
450158124Smarcelchangequote([,])dnl
451158124Smarcel    if test -n "$x"; then
452158124Smarcel      WIN32LIBADD="-L../libiberty/pic -liberty"
453158124Smarcel    fi
454158124Smarcel  ;;
45590731Sjhay  esac
45690731Sjhay  ;;
457102714Sphkesac
458158124SmarcelAC_SUBST(WIN32LDFLAGS)
45990731SjhayAC_SUBST(WIN32LIBADD)
46090731Sjhay
461158124Smarcel# target stuff:
462158124Smarcel
463158124Smarcel# Canonicalize the secondary target names.
464158124Smarcelif test -n "$enable_targets" ; then
46590731Sjhay    for targ in `echo $enable_targets | sed 's/,/ /g'`
466158124Smarcel    do
467158124Smarcel	result=`$ac_config_sub $targ 2>/dev/null`
468158124Smarcel	if test -n "$result" ; then
469158124Smarcel	    canon_targets="$canon_targets $result"
470158124Smarcel	else
471158124Smarcel	    # Allow targets that config.sub doesn't recognize, like "all".
472118292Sambrisko	    canon_targets="$canon_targets $targ"
473158124Smarcel	fi
474158124Smarcel    done
47590731Sjhayfi
476158124Smarcel
477158124Smarcelall_targets=false
478158124Smarceldefvec=
479158124Smarcelselvecs=
480158124Smarcelselarchs=
481158124SmarcelTDEFINES=
482158124Smarcelfor targ in $target $canon_targets
483158124Smarceldo
484158124Smarcel    if test "x$targ" = "xall"; then
485158124Smarcel        all_targets=true
486158124Smarcel    else
487118292Sambrisko	. $srcdir/config.bfd
488158124Smarcel	if test "x$targ" = "x$target"; then
48990731Sjhay	    defvec=$targ_defvec
490158124Smarcel	fi
491158124Smarcel	selvecs="$selvecs $targ_defvec $targ_selvecs"
492158124Smarcel	selarchs="$selarchs $targ_archs"
493158124Smarcel	TDEFINES="$TDEFINES $targ_cflags"
494158124Smarcel    fi
495158124Smarceldone
496158124SmarcelAC_SUBST(TDEFINES)
497158124Smarcel
498158124Smarcel# This processing still needs to be done if we're to decide properly whether
499158124Smarcel# 64-bit support needs to be compiled in.  Currently, it will be included if
500158124Smarcel# the default or any other explicitly requested target requires it; it
501158124Smarcel# will not be included on a 32-bit host if no 64-bit target is requested, and
502158124Smarcel# no "--with-64-bit-bfd" option is given, even if "--enable-targets=all" is
503158124Smarcel# used.
504158124Smarcel
505158124Smarcel# uniq the default and selected vectors in all the configured targets.
506158124Smarcelf=""
507158124Smarcelfor i in $selvecs ; do
508158124Smarcel    case " $f " in
50990731Sjhay    *" $i "*) ;;
51090731Sjhay    *) f="$f $i" ;;
511102714Sphk    esac
512158124Smarceldone
51390731Sjhayselvecs="$f"
51490731Sjhay
515158124Smarcel
516158124Smarcel# uniq the architectures in all the configured targets.
517158124Smarcelf=""
518158124Smarcelfor i in $selarchs ; do
519158124Smarcel    case " $f " in
520158124Smarcel    *" $i "*) ;;
521158124Smarcel    *) f="$f $i" ;;
522158124Smarcel    esac
523158124Smarceldone
524158124Smarcelselarchs="$f"
525158124Smarcel
526158124Smarcel# Target backend .o files.
527158124Smarceltb=
528158124Smarcel
529158124Smarcelelf="elf.lo elflink.lo elf-strtab.lo elf-eh-frame.lo dwarf1.lo"
530158124Smarcel
531158124Smarcelfor vec in $selvecs
532158124Smarceldo
533158124Smarcel    target_size=32
534158124Smarcel    case "$vec" in
535158124Smarcel    # This list is alphabetized to make it easy to compare
536158124Smarcel    # with the two vector lists in targets.c.  For the same reason,
537158124Smarcel    # use one entry per line, even though this leads to long lines.
538158124Smarcel    a29kcoff_big_vec)		tb="$tb coff-a29k.lo cofflink.lo" ;;
539158124Smarcel    a_out_adobe_vec)		tb="$tb aout-adobe.lo aout32.lo" ;;
540158124Smarcel    aix5coff64_vec)		tb="$tb coff64-rs6000.lo xcofflink.lo aix5ppc-core.lo"; target_size=64 ;;
541158124Smarcel    aout0_big_vec)		tb="$tb aout0.lo aout32.lo" ;;
542158124Smarcel    aout_arm_big_vec)		tb="$tb aout-arm.lo aout32.lo" ;;
543158124Smarcel    aout_arm_little_vec)	tb="$tb aout-arm.lo aout32.lo" ;;
544158124Smarcel    aout_mips_big_vec)		tb="$tb mipsbsd.lo aout32.lo" ;;
545158124Smarcel    aout_mips_little_vec)	tb="$tb mipsbsd.lo aout32.lo" ;;
546158124Smarcel    apollocoff_vec)		tb="$tb coff-apollo.lo" ;;
54790731Sjhay    arm_epoc_pe_big_vec)	tb="$tb epoc-pe-arm.lo peigen.lo cofflink.lo " ;;
54890731Sjhay    arm_epoc_pe_little_vec)	tb="$tb epoc-pe-arm.lo peigen.lo cofflink.lo " ;;
54990731Sjhay    arm_epoc_pei_big_vec)	tb="$tb epoc-pei-arm.lo peigen.lo cofflink.lo " ;;
550102714Sphk    arm_epoc_pei_little_vec)	tb="$tb epoc-pei-arm.lo peigen.lo cofflink.lo " ;;
551158124Smarcel    armcoff_big_vec)		tb="$tb coff-arm.lo cofflink.lo " ;;
55290731Sjhay    armcoff_little_vec)		tb="$tb coff-arm.lo cofflink.lo " ;;
55390731Sjhay    armnetbsd_vec)		tb="$tb armnetbsd.lo aout32.lo" ;;
554158124Smarcel    armpe_big_vec)		tb="$tb pe-arm.lo peigen.lo cofflink.lo " ;;
555158124Smarcel    armpe_little_vec)		tb="$tb pe-arm.lo peigen.lo cofflink.lo " ;;
556158124Smarcel    armpei_big_vec)		tb="$tb pei-arm.lo peigen.lo cofflink.lo " ;;
55790731Sjhay    armpei_little_vec)		tb="$tb pei-arm.lo peigen.lo cofflink.lo " ;;
558158124Smarcel    b_out_vec_big_host)		tb="$tb bout.lo aout32.lo" ;;
559158124Smarcel    b_out_vec_little_host)	tb="$tb bout.lo aout32.lo" ;;
560158124Smarcel    bfd_efi_app_ia32_vec)	tb="$tb efi-app-ia32.lo peigen.lo cofflink.lo" ;;
561158124Smarcel    bfd_efi_app_ia64_vec)	tb="$tb efi-app-ia64.lo pepigen.lo cofflink.lo"; target_size=64 ;;
562158124Smarcel    bfd_elf32_avr_vec)		tb="$tb elf32-avr.lo elf32.lo $elf" ;;
56390731Sjhay    bfd_elf32_big_generic_vec) 	tb="$tb elf32-gen.lo elf32.lo $elf" ;;
564158124Smarcel    bfd_elf32_bigarc_vec)	tb="$tb elf32-arc.lo elf32.lo $elf" ;;
565158124Smarcel    bfd_elf32_bigarm_oabi_vec)	tb="$tb elfarm-oabi.lo elf32.lo $elf" ;;
566158124Smarcel    bfd_elf32_bigarm_vec)	tb="$tb elfarm-nabi.lo elf32.lo $elf" ;;
567158124Smarcel    bfd_elf32_bigmips_vec) 	tb="$tb elf32-mips.lo elfxx-mips.lo elf32.lo $elf ecofflink.lo" ;;
568158124Smarcel    bfd_elf32_cris_vec)		tb="$tb elf32-cris.lo elf32.lo $elf" ;;
569158124Smarcel    bfd_elf32_d10v_vec)		tb="$tb elf32-d10v.lo elf32.lo $elf" ;;
570158124Smarcel    bfd_elf32_d30v_vec)		tb="$tb elf32-d30v.lo elf32.lo $elf" ;;
571158124Smarcel    bfd_elf32_dlx_big_vec)	tb="$tb elf32-dlx.lo elf32.lo $elf" ;;
572158124Smarcel    bfd_elf32_fr30_vec)		tb="$tb elf32-fr30.lo elf32.lo $elf" ;;
573158124Smarcel    bfd_elf32_frv_vec)		tb="$tb elf32-frv.lo elf32.lo $elf" ;;
574158124Smarcel    bfd_elf32_h8300_vec)	tb="$tb elf32-h8300.lo elf32.lo $elf" ;;
575158124Smarcel    bfd_elf32_hppa_linux_vec)	tb="$tb elf32-hppa.lo elf32.lo $elf" ;;
576158124Smarcel    bfd_elf32_hppa_vec)		tb="$tb elf32-hppa.lo elf32.lo $elf" ;;
577158124Smarcel    bfd_elf32_i370_vec)		tb="$tb elf32-i370.lo elf32.lo $elf" ;;
578158124Smarcel    bfd_elf32_i386_freebsd_vec)	tb="$tb elf32-i386-fbsd.lo elf32.lo $elf" ;;
579158124Smarcel    bfd_elf32_i386_vec)		tb="$tb elf32-i386.lo elf32.lo $elf" ;;
580158124Smarcel    bfd_elf32_i860_little_vec)	tb="$tb elf32-i860.lo elf32.lo $elf" ;;
581158124Smarcel    bfd_elf32_i860_vec)		tb="$tb elf32-i860.lo elf32.lo $elf" ;;
582158124Smarcel    bfd_elf32_i960_vec)		tb="$tb elf32-i960.lo elf32.lo $elf" ;;
58390731Sjhay    bfd_elf32_ia64_big_vec)	tb="$tb elf32-ia64.lo elf32.lo $elf" ;;
58490731Sjhay    bfd_elf32_ia64_hpux_big_vec) tb="$tb elf32-ia64.lo elf32.lo $elf";;
585102714Sphk    bfd_elf32_little_generic_vec) tb="$tb elf32-gen.lo elf32.lo $elf" ;;
586158124Smarcel    bfd_elf32_littlearc_vec)	tb="$tb elf32-arc.lo elf32.lo $elf" ;;
587166901Spiso    bfd_elf32_littlearm_oabi_vec) tb="$tb elfarm-oabi.lo elf32.lo $elf" ;;
58890731Sjhay    bfd_elf32_littlearm_vec)	tb="$tb elfarm-nabi.lo elf32.lo $elf" ;;
589158124Smarcel    bfd_elf32_littlemips_vec) 	tb="$tb elf32-mips.lo elfxx-mips.lo elf32.lo $elf ecofflink.lo" ;;
59090731Sjhay    bfd_elf32_m32r_vec)		tb="$tb elf32-m32r.lo elf32.lo $elf" ;;
591158124Smarcel    bfd_elf32_m68hc11_vec)	tb="$tb elf32-m68hc11.lo elf32.lo $elf" ;;
592158124Smarcel    bfd_elf32_m68hc12_vec)	tb="$tb elf32-m68hc12.lo elf32.lo $elf" ;;
59390731Sjhay    bfd_elf32_m68k_vec)		tb="$tb elf32-m68k.lo elf32.lo $elf" ;;
594158124Smarcel    bfd_elf32_m88k_vec)		tb="$tb elf32-m88k.lo elf32.lo $elf" ;;
595158124Smarcel    bfd_elf32_mcore_big_vec)	tb="$tb elf32-mcore.lo elf32.lo $elf" ;;
596158124Smarcel    bfd_elf32_mcore_little_vec)	tb="$tb elf32-mcore.lo elf32.lo $elf" ;;
597158124Smarcel    bfd_elf32_mn10200_vec)	tb="$tb elf-m10200.lo elf32.lo $elf" ;;
598158124Smarcel    bfd_elf32_mn10300_vec)	tb="$tb elf-m10300.lo elf32.lo $elf" ;;
599158124Smarcel    bfd_elf32_openrisc_vec)	tb="$tb elf32-openrisc.lo elf32.lo $elf" ;;
600158124Smarcel    bfd_elf32_or32_big_vec)	tb="$tb elf32-or32.lo elf32.lo $elf" ;;
601158124Smarcel    bfd_elf32_pj_vec)           tb="$tb elf32-pj.lo elf32.lo $elf";;
602158124Smarcel    bfd_elf32_pjl_vec)          tb="$tb elf32-pj.lo elf32.lo $elf";;
603158124Smarcel    bfd_elf32_powerpc_vec)	tb="$tb elf32-ppc.lo elf32.lo $elf" ;;
604158124Smarcel    bfd_elf32_powerpcle_vec)	tb="$tb elf32-ppc.lo elf32.lo $elf" ;;
605158124Smarcel    bfd_elf32_s390_vec)		tb="$tb elf32-s390.lo elf32.lo $elf" ;;
606170386Spiso    # FIXME: We include cofflink.lo not because it's needed for
607158124Smarcel    # bfd_elf32_sh64[l]_vec, but because we include bfd_elf32_sh[l]_vec
608170386Spiso    # which needs it but does not list it.  Should be fixed in right place.
609170386Spiso    bfd_elf32_sh64_vec)		tb="$tb elf32-sh64.lo elf32-sh64-com.lo elf32.lo $elf cofflink.lo" target_size=64 ;;
610170386Spiso    bfd_elf32_sh64l_vec)	tb="$tb elf32-sh64.lo elf32-sh64-com.lo elf32.lo $elf cofflink.lo" target_size=64 ;;
611158124Smarcel    bfd_elf32_sh64lnbsd_vec)	tb="$tb elf32-sh64-nbsd.lo elf32-sh64-com.lo elf32.lo $elf cofflink.lo" ;;
612102895Sphk    bfd_elf32_sh64nbsd_vec)	tb="$tb elf32-sh64-nbsd.lo elf32-sh64-com.lo elf32.lo $elf cofflink.lo" ;;
613158124Smarcel    bfd_elf32_sh_vec)		tb="$tb elf32-sh.lo elf32.lo $elf coff-sh.lo" ;;
614158124Smarcel    bfd_elf32_shblin_vec)	tb="$tb elf32-sh-lin.lo elf32.lo $elf coff-sh.lo cofflink.lo" ;;
615158124Smarcel    bfd_elf32_shl_vec)		tb="$tb elf32-sh.lo elf32.lo $elf coff-sh.lo" ;;
616158124Smarcel    bfd_elf32_shlin_vec)	tb="$tb elf32-sh-lin.lo elf32.lo $elf coff-sh.lo cofflink.lo" ;;
617158124Smarcel    bfd_elf32_shlnbsd_vec)	tb="$tb elf32-sh-nbsd.lo elf32.lo $elf coff-sh.lo cofflink.lo" ;;
618158124Smarcel    bfd_elf32_shnbsd_vec)	tb="$tb elf32-sh-nbsd.lo elf32.lo $elf coff-sh.lo cofflink.lo" ;;
619158124Smarcel    bfd_elf32_sparc_vec)	tb="$tb elf32-sparc.lo elf32.lo $elf" ;;
620158124Smarcel    bfd_elf32_tradbigmips_vec)  tb="$tb elf32-mips.lo elfxx-mips.lo elf32.lo $elf ecofflink.lo" ;;
621158124Smarcel    bfd_elf32_tradlittlemips_vec) tb="$tb elf32-mips.lo elfxx-mips.lo elf32.lo $elf ecofflink.lo" ;;
622158124Smarcel    bfd_elf32_us_cris_vec)	tb="$tb elf32-cris.lo elf32.lo $elf" ;;
623158124Smarcel    bfd_elf32_v850_vec)		tb="$tb elf32-v850.lo elf32.lo $elf" ;;
624158124Smarcel    bfd_elf32_vax_vec)		tb="$tb elf32-vax.lo elf32.lo $elf" ;;
625158124Smarcel    bfd_elf32_xstormy16_vec)	tb="$tb elf32-xstormy16.lo elf32.lo $elf" ;;
626158124Smarcel    bfd_elf64_alpha_freebsd_vec) tb="$tb elf64-alpha-fbsd.lo elf64.lo $elf"; target_size=64 ;;
62790731Sjhay    bfd_elf64_alpha_vec)	tb="$tb elf64-alpha.lo elf64.lo $elf"; target_size=64 ;;
62890731Sjhay    bfd_elf64_big_generic_vec) 	tb="$tb elf64-gen.lo elf64.lo $elf"; target_size=64 ;;
629158124Smarcel    bfd_elf64_bigmips_vec) 	tb="$tb elf64-mips.lo elf64.lo elfxx-mips.lo elf32.lo $elf ecofflink.lo"; target_size=64 ;;
630158124Smarcel    bfd_elf64_hppa_linux_vec)	tb="$tb elf64-hppa.lo elf64.lo $elf"; target_size=64 ;;
631166901Spiso    bfd_elf64_hppa_vec)		tb="$tb elf64-hppa.lo elf64.lo $elf"; target_size=64 ;;
632158124Smarcel    bfd_elf64_ia64_aix_big_vec)	tb="$tb elf64-ia64.lo elf64.lo $elf"; target_size=64 ;;
633158124Smarcel    bfd_elf64_ia64_aix_little_vec) tb="$tb elf64-ia64.lo elf64.lo $elf"; target_size=64 ;;
634158124Smarcel    bfd_elf64_ia64_big_vec)	tb="$tb elf64-ia64.lo elf64.lo $elf"; target_size=64 ;;
635158124Smarcel    bfd_elf64_ia64_hpux_big_vec) tb="$tb elf64-ia64.lo elf64.lo $elf"; target_size=64 ;;
636158124Smarcel    bfd_elf64_ia64_little_vec)	tb="$tb elf64-ia64.lo elf64.lo $elf"; target_size=64 ;;
637158124Smarcel    bfd_elf64_little_generic_vec) tb="$tb elf64-gen.lo elf64.lo $elf"; target_size=64 ;;
638158124Smarcel    bfd_elf64_littlemips_vec) 	tb="$tb elf64-mips.lo elf64.lo elfxx-mips.lo elf32.lo $elf ecofflink.lo"; target_size=64 ;;
639158124Smarcel    bfd_elf64_mmix_vec) 	tb="$tb elf64-mmix.lo elf64.lo $elf" target_size=64 ;;
64090731Sjhay    bfd_elf64_powerpc_vec)	tb="$tb elf64-ppc.lo elf64-gen.lo elf64.lo $elf"; target_size=64 ;;
64190731Sjhay    bfd_elf64_powerpcle_vec)	tb="$tb elf64-ppc.lo elf64-gen.lo elf64.lo $elf" target_size=64 ;;
642102714Sphk    bfd_elf64_s390_vec)		tb="$tb elf64-s390.lo elf64.lo $elf"; target_size=64 ;;
643158124Smarcel    bfd_elf64_sh64_vec)		tb="$tb elf64-sh64.lo elf64.lo $elf" target_size=64 ;;
644158124Smarcel    bfd_elf64_sh64l_vec)	tb="$tb elf64-sh64.lo elf64.lo $elf" target_size=64 ;;
64590731Sjhay    bfd_elf64_sh64lnbsd_vec)	tb="$tb elf64-sh64-nbsd.lo elf64.lo $elf" target_size=64 ;;
646158124Smarcel    bfd_elf64_sh64nbsd_vec)	tb="$tb elf64-sh64-nbsd.lo elf64.lo $elf" target_size=64 ;;
647158124Smarcel    bfd_elf64_sparc_vec)	tb="$tb elf64-sparc.lo elf64.lo $elf"; target_size=64 ;;
648158124Smarcel    bfd_elf64_tradbigmips_vec)	tb="$tb elf64-mips.lo elf64.lo elfxx-mips.lo elf32.lo $elf ecofflink.lo"; target_size=64 ;;
64990731Sjhay    bfd_elf64_tradlittlemips_vec) tb="$tb elf64-mips.lo elf64.lo elfxx-mips.lo elf32.lo $elf ecofflink.lo"; target_size=64 ;;
65090731Sjhay    bfd_elf64_x86_64_vec)	tb="$tb elf64-x86-64.lo elf64.lo $elf"; target_size=64 ;;
651158124Smarcel    bfd_mmo_vec)		tb="$tb mmo.lo" target_size=64 ;;
652158124Smarcel    bfd_powerpc_pe_vec)         tb="$tb pe-ppc.lo peigen.lo cofflink.lo" ;;
653158124Smarcel    bfd_powerpc_pei_vec)        tb="$tb pei-ppc.lo peigen.lo cofflink.lo" ;;
654158124Smarcel    bfd_powerpcle_pe_vec)       tb="$tb pe-ppc.lo peigen.lo cofflink.lo" ;;
655158124Smarcel    bfd_powerpcle_pei_vec)      tb="$tb pei-ppc.lo peigen.lo cofflink.lo" ;;
656158124Smarcel    cris_aout_vec)		tb="$tb aout-cris.lo" ;;
657158124Smarcel    demo_64_vec)		tb="$tb demo64.lo aout64.lo"; target_size=64 ;;
658158124Smarcel    ecoff_big_vec)		tb="$tb coff-mips.lo ecoff.lo ecofflink.lo" ;;
659158124Smarcel    ecoff_biglittle_vec)	tb="$tb coff-mips.lo ecoff.lo ecofflink.lo" ;;
660158124Smarcel    ecoff_little_vec)		tb="$tb coff-mips.lo ecoff.lo ecofflink.lo" ;;
661158124Smarcel    ecoffalpha_little_vec)	tb="$tb coff-alpha.lo ecoff.lo ecofflink.lo"; target_size=64 ;;
662158124Smarcel    go32coff_vec)		tb="$tb coff-go32.lo cofflink.lo" ;;
663158124Smarcel    go32stubbedcoff_vec)	tb="$tb coff-stgo32.lo cofflink.lo" ;;
664158124Smarcel    h8300coff_vec)		tb="$tb coff-h8300.lo reloc16.lo" ;;
665158124Smarcel    h8500coff_vec)		tb="$tb coff-h8500.lo reloc16.lo" ;;
666158124Smarcel    host_aout_vec)		tb="$tb host-aout.lo aout32.lo" ;;
667158124Smarcel    hp300bsd_vec)		tb="$tb hp300bsd.lo aout32.lo" ;;
668158124Smarcel    hp300hpux_vec)		tb="$tb hp300hpux.lo aout32.lo" ;;
669158124Smarcel    i386aout_vec)		tb="$tb i386aout.lo aout32.lo" ;;
670158124Smarcel    i386bsd_vec)		tb="$tb i386bsd.lo aout32.lo" ;;
671158124Smarcel    i386coff_vec)		tb="$tb coff-i386.lo cofflink.lo" ;;
672158124Smarcel    i386dynix_vec)		tb="$tb i386dynix.lo aout32.lo" ;;
673158124Smarcel    i386freebsd_vec)		tb="$tb i386freebsd.lo aout32.lo" ;;
674158124Smarcel    i386linux_vec)		tb="$tb i386linux.lo aout32.lo" ;;
675158124Smarcel    i386lynx_aout_vec)		tb="$tb i386lynx.lo lynx-core.lo aout32.lo" ;;
676158124Smarcel    i386lynx_coff_vec)		tb="$tb cf-i386lynx.lo cofflink.lo lynx-core.lo" ;;
677158124Smarcel    i386mach3_vec)		tb="$tb i386mach3.lo aout32.lo" ;;
678158124Smarcel    i386msdos_vec)		tb="$tb i386msdos.lo" ;;
679158124Smarcel    i386netbsd_vec)		tb="$tb i386netbsd.lo aout32.lo" ;;
680158124Smarcel    i386os9k_vec)		tb="$tb i386os9k.lo aout32.lo" ;;
681158124Smarcel    i386pe_vec)			tb="$tb pe-i386.lo peigen.lo cofflink.lo" ;;
68290731Sjhay    i386pei_vec)		tb="$tb pei-i386.lo peigen.lo cofflink.lo" ;;
68390731Sjhay    i860coff_vec)		tb="$tb coff-i860.lo cofflink.lo" ;;
684102714Sphk    icoff_big_vec)		tb="$tb coff-i960.lo cofflink.lo" ;;
685158124Smarcel    icoff_little_vec)		tb="$tb coff-i960.lo cofflink.lo" ;;
68690731Sjhay    ieee_vec)			tb="$tb ieee.lo" ;;
687158124Smarcel    m68k4knetbsd_vec)		tb="$tb m68k4knetbsd.lo aout32.lo" ;;
68890731Sjhay    m68kaux_coff_vec)		tb="$tb coff-aux.lo coff-m68k.lo cofflink.lo" ;;
689158124Smarcel    m68kcoff_vec)		tb="$tb coff-m68k.lo cofflink.lo" ;;
690158124Smarcel    m68kcoffun_vec)		tb="$tb coff-u68k.lo coff-m68k.lo cofflink.lo" ;;
691158124Smarcel    m68klinux_vec)		tb="$tb m68klinux.lo aout32.lo" ;;
692158124Smarcel    m68klynx_aout_vec)		tb="$tb m68klynx.lo lynx-core.lo aout32.lo" ;;
693158124Smarcel    m68klynx_coff_vec)		tb="$tb cf-m68klynx.lo coff-m68k.lo cofflink.lo lynx-core.lo" ;;
69490731Sjhay    m68knetbsd_vec)		tb="$tb m68knetbsd.lo aout32.lo" ;;
695158124Smarcel    m68ksysvcoff_vec)		tb="$tb coff-svm68k.lo cofflink.lo" ;;
696158124Smarcel    m88kbcs_vec)		tb="$tb coff-m88k.lo" ;;
697158124Smarcel    m88kmach3_vec)		tb="$tb m88kmach3.lo aout32.lo" ;;
698158124Smarcel    mcore_pe_big_vec)		tb="$tb pe-mcore.lo peigen.lo cofflink.lo" ;;
699158124Smarcel    mcore_pe_little_vec)	tb="$tb pe-mcore.lo peigen.lo cofflink.lo" ;;
700158124Smarcel    mcore_pei_big_vec)		tb="$tb pei-mcore.lo peigen.lo cofflink.lo" ;;
70190731Sjhay    mcore_pei_little_vec)	tb="$tb pei-mcore.lo peigen.lo cofflink.lo" ;;
702158124Smarcel    mipslpe_vec)		tb="$tb pe-mips.lo peigen.lo cofflink.lo" ;;
703158124Smarcel    mipslpei_vec)		tb="$tb pei-mips.lo peigen.lo cofflink.lo" ;;
70490731Sjhay    newsos3_vec)		tb="$tb newsos3.lo aout32.lo" ;;
705158124Smarcel    nlm32_alpha_vec)		tb="$tb nlm32-alpha.lo nlm32.lo nlm.lo"; target_size=64 ;;
706158124Smarcel    nlm32_i386_vec)		tb="$tb nlm32-i386.lo nlm32.lo nlm.lo" ;;
707119814Smarcel    nlm32_powerpc_vec)		tb="$tb nlm32-ppc.lo nlm32.lo nlm.lo" ;;
70890731Sjhay    nlm32_sparc_vec)		tb="$tb nlm32-sparc.lo nlm32.lo nlm.lo" ;;
70990731Sjhay    or32coff_big_vec)		tb="$tb coff-or32.lo cofflink.lo" ;;
71090731Sjhay    pc532machaout_vec)		tb="$tb pc532-mach.lo aout-ns32k.lo" ;;
71190731Sjhay    pc532netbsd_vec)		tb="$tb ns32knetbsd.lo aout-ns32k.lo" ;;
71290731Sjhay    pdp11_aout_vec)		tb="$tb pdp11.lo" ;;
713    pmac_xcoff_vec)		tb="$tb coff-rs6000.lo xcofflink.lo" ;;
714    ppcboot_vec)		tb="$tb ppcboot.lo" ;;
715    riscix_vec)			tb="$tb aout32.lo riscix.lo" ;;
716    rs6000coff64_vec)		tb="$tb coff64-rs6000.lo xcofflink.lo aix5ppc-core.lo"; target_size=64 ;;
717    rs6000coff_vec)		tb="$tb coff-rs6000.lo xcofflink.lo" ;;
718    shcoff_small_vec)		tb="$tb coff-sh.lo cofflink.lo" ;;
719    shcoff_vec)			tb="$tb coff-sh.lo cofflink.lo" ;;
720    shlcoff_small_vec)		tb="$tb coff-sh.lo cofflink.lo" ;;
721    shlcoff_vec)		tb="$tb coff-sh.lo cofflink.lo" ;;
722    shlpe_vec)			tb="$tb pe-sh.lo coff-sh.lo peigen.lo cofflink.lo" ;;
723    shlpei_vec)			tb="$tb pei-sh.lo coff-sh.lo peigen.lo cofflink.lo" ;;
724    som_vec)			tb="$tb som.lo" ;;
725    sparccoff_vec)		tb="$tb coff-sparc.lo" ;;
726    sparcle_aout_vec)		tb="$tb aout-sparcle.lo aout32.lo" ;;
727    sparclinux_vec)		tb="$tb sparclinux.lo aout32.lo" ;;
728    sparclynx_aout_vec)		tb="$tb sparclynx.lo lynx-core.lo aout32.lo" ;;
729    sparclynx_coff_vec)		tb="$tb cf-sparclynx.lo lynx-core.lo" ;;
730    sparcnetbsd_vec)		tb="$tb sparcnetbsd.lo aout32.lo" ;;
731    sunos_big_vec)		tb="$tb sunos.lo aout32.lo" ;;
732    tic30_aout_vec)		tb="$tb aout-tic30.lo" ;;
733    tic30_coff_vec)		tb="$tb coff-tic30.lo" ;;
734    tic54x_coff0_beh_vec)	tb="$tb coff-tic54x.lo" ;;
735    tic54x_coff0_vec)		tb="$tb coff-tic54x.lo" ;;
736    tic54x_coff1_beh_vec)	tb="$tb coff-tic54x.lo" ;;
737    tic54x_coff1_vec)		tb="$tb coff-tic54x.lo" ;;
738    tic54x_coff2_beh_vec)	tb="$tb coff-tic54x.lo" ;;
739    tic54x_coff2_vec)		tb="$tb coff-tic54x.lo" ;;
740    tic80coff_vec)		tb="$tb coff-tic80.lo cofflink.lo" ;;
741    vaxnetbsd_vec)		tb="$tb vaxnetbsd.lo aout32.lo" ;;
742    vax1knetbsd_vec)		tb="$tb vax1knetbsd.lo aout32.lo" ;;
743    vaxbsd_vec)			tb="$tb vaxbsd.lo aout32.lo" ;;
744    versados_vec)		tb="$tb versados.lo" ;;
745    vms_alpha_vec)		tb="$tb vms.lo vms-hdr.lo vms-gsd.lo vms-tir.lo vms-misc.lo"; target_size=64 ;;
746    vms_vax_vec)		tb="$tb vms.lo vms-hdr.lo vms-gsd.lo vms-tir.lo vms-misc.lo" ;;
747    w65_vec)			tb="$tb coff-w65.lo reloc16.lo" ;;
748    we32kcoff_vec)		tb="$tb coff-we32k.lo" ;;
749    z8kcoff_vec)		tb="$tb coff-z8k.lo reloc16.lo" ;;
750
751    # These appear out of order in targets.c
752    srec_vec)			tb="$tb srec.lo" ;;
753    symbolsrec_vec)		tb="$tb srec.lo" ;;
754    tekhex_vec)			tb="$tb tekhex.lo" ;;
755    cisco_core_big_vec)		tb="$tb cisco-core.lo" ;;
756    cisco_core_little_vec)	tb="$tb cisco-core.lo" ;;
757
758    "")			;;
759    *) AC_MSG_ERROR(*** unknown target vector $vec) ;;
760    esac
761
762    if test ${target_size} = 64; then
763	target64=true
764    fi
765    if test x"${vec}" = x"${defvec}"; then
766	bfd_default_target_size=${target_size}
767    fi
768done
769
770# Target architecture .o files.
771# A couple of CPUs use shorter file names to avoid problems on DOS
772# filesystems.
773ta=`echo $selarchs | sed -e s/bfd_/cpu-/g -e s/_arch/.lo/g -e s/mn10200/m10200/ -e s/mn10300/m10300/`
774
775# Weed out duplicate .o files.
776f=""
777for i in $tb ; do
778    case " $f " in
779    *" $i "*) ;;
780    *) f="$f $i" ;;
781    esac
782done
783tb="$f"
784
785f=""
786for i in $ta ; do
787    case " $f " in
788    *" $i "*) ;;
789    *) f="$f $i" ;;
790    esac
791done
792ta="$f"
793
794bfd_backends="$tb"
795bfd_machines="$ta"
796
797if test x${all_targets} = xtrue ; then
798  bfd_backends="${bfd_backends}"' $(ALL_BACKENDS)'
799  bfd_machines="${bfd_machines}"' $(ALL_MACHINES)'
800  selvecs=
801  havevecs=
802  selarchs=
803else	# all_targets is true
804  # Only set these if they will be nonempty, for the clever echo.
805  havevecs=
806  test -n "$selvecs" &&
807    havevecs=`echo $selvecs | sed -e 's/^/-DHAVE_/' -e 's/ \(.\)/ -DHAVE_\1/g'`
808  test -n "$selvecs" &&
809    selvecs=`echo $selvecs | sed -e 's/^/\&/' -e 's/ \(.\)/,\&\1/g'`
810  test -n "$selarchs" &&
811    selarchs=`echo $selarchs | sed -e 's/^/\&/' -e 's/ \(.\)/,\&\1/g'`
812fi	# all_targets is true
813
814case ${host64}-${target64}-${want64} in
815  *true*)
816    wordsize=64
817    bfd_libs='$(BFD64_LIBS) $(BFD32_LIBS)'
818    all_backends='$(BFD64_BACKENDS) $(BFD32_BACKENDS)'
819    if test -z "$GCC" && test "$BFD_HOST_64BIT_LONG" = "0" && test "$BFD_HOST_64_BIT_DEFINED" = "0"; then
820      AC_MSG_WARN([You have requested a 64 bit BFD configuration, but])
821      AC_MSG_WARN([your compiler may not have a 64 bit integral type])
822    fi
823    if test -n "$GCC" ; then
824       bad_64bit_gcc=no;
825       AC_MSG_CHECKING([for gcc version with buggy 64-bit support])
826       # Add more tests for gcc versions with non-working 64-bit support here.
827       AC_EGREP_CPP([: 2 : 91 : 1 :],[:__GNUC__:__GNUC_MINOR__:__i386__:],
828		    bad_64bit_gcc=yes;
829		    AC_MSG_RESULT([yes: egcs-1.1.2 on ix86 spotted]),
830		    AC_MSG_RESULT(no))
831       if test $bad_64bit_gcc = yes ; then
832	 AC_ERROR([A newer version of gcc is needed for the requested 64-bit BFD configuration])
833       fi
834    fi
835    ;;
836  false-false-false)
837    wordsize=32
838    bfd_libs='$(BFD32_LIBS)'
839    all_backends='$(BFD32_BACKENDS)'
840    ;;
841esac
842
843AC_SUBST(wordsize)
844AC_SUBST(bfd_libs)
845AC_SUBST(all_backends)
846AC_SUBST(bfd_backends)
847AC_SUBST(bfd_machines)
848AC_SUBST(bfd_default_target_size)
849
850tdefaults=""
851test -n "${defvec}" && tdefaults="${tdefaults} -DDEFAULT_VECTOR=${defvec}"
852test -n "${selvecs}" && tdefaults="${tdefaults} -DSELECT_VECS='${selvecs}'"
853test -n "${selarchs}" && tdefaults="${tdefaults} -DSELECT_ARCHITECTURES='${selarchs}'"
854test -n "${havevecs}" && tdefaults="${tdefaults} ${havevecs}"
855AC_SUBST(tdefaults)
856
857dnl AC_CHECK_HEADERS(sys/mman.h)
858AC_FUNC_MMAP
859AC_CHECK_FUNCS(madvise mprotect)
860case ${want_mmap}+${ac_cv_func_mmap_fixed_mapped} in
861  true+yes )  AC_DEFINE(USE_MMAP, 1, [Use mmap if it's available?]) ;;
862esac
863
864rm -f doc/config.status
865AC_OUTPUT(Makefile doc/Makefile bfd-in3.h:bfd-in2.h po/Makefile.in:po/Make-in,
866[sed -e '/SRC-POTFILES =/r po/SRC-POTFILES' -e '/BLD-POTFILES =/r po/BLD-POTFILES' po/Makefile.in > po/Makefile])
867
868