Commit | Line | Data |
---|---|---|
e881afb8 ILT |
1 | dnl Process this file with autoconf to produce a configure script. |
2 | dnl | |
dbbfec07 | 3 | AC_PREREQ(2.5) |
8c693660 KR |
4 | AC_INIT(libbfd.c) |
5 | ||
c0734708 ILT |
6 | AC_CANONICAL_SYSTEM |
7 | AC_ISC_POSIX | |
8 | ||
9 | AM_INIT_AUTOMAKE(bfd, 2.8.2) | |
10 | ||
11 | dnl This is a copy of AM_PROG_LIBTOOL from libtool 1.0, modified to | |
12 | dnl not produce a shared library by default. | |
13 | AC_DEFUN(AM_PROG_LIBTOOL, | |
14 | [AC_REQUIRE([AC_CANONICAL_HOST]) | |
15 | AC_REQUIRE([AC_PROG_CC]) | |
16 | AC_REQUIRE([AC_PROG_RANLIB]) | |
17 | AC_REQUIRE([AM_PROG_LD]) | |
18 | AC_REQUIRE([AC_PROG_LN_S]) | |
19 | ||
20 | # Always use our own libtool. | |
21 | LIBTOOL='$(top_builddir)/libtool' | |
22 | AC_SUBST(LIBTOOL) | |
23 | ||
24 | dnl Allow the --disable-shared flag to stop us from building shared libs. | |
25 | AC_ARG_ENABLE(shared, | |
26 | [ --enable-shared build shared libraries [default=yes]], | |
27 | test "$enableval" = no && libtool_shared=" --disable-shared", | |
28 | libtool_shared=--disable-shared) | |
29 | ||
30 | dnl Allow the --disable-static flag to stop us from building static libs. | |
31 | AC_ARG_ENABLE(static, | |
32 | [ --enable-static build static libraries [default=yes]], | |
33 | test "$enableval" = no && libtool_static=" --disable-static", | |
34 | libtool_static=) | |
35 | ||
36 | libtool_flags="$libtool_shared$libtool_static" | |
37 | test "$silent" = yes && libtool_flags="$libtool_flags --silent" | |
38 | test "$ac_cv_prog_gcc" = yes && libtool_flags="$libtool_flags --with-gcc" | |
39 | test "$ac_cv_prog_gnu_ld" = yes && libtool_flags="$libtool_flags --with-gnu-ld" | |
40 | ||
41 | # Some flags need to be propagated to the compiler or linker for good | |
42 | # libtool support. | |
43 | [case "$host" in | |
44 | *-*-irix6*) | |
45 | for f in '-32' '-64' '-cckr' '-n32' '-mips1' '-mips2' '-mips3' '-mips4'; do | |
46 | if echo " $CC $CFLAGS " | egrep -e "[ ]$f[ ]" > /dev/null; then | |
47 | LD="${LD-ld} $f" | |
48 | fi | |
49 | done | |
50 | ;; | |
51 | ||
52 | *-*-sco3.2v5*) | |
53 | # On SCO OpenServer 5, we need -belf to get full-featured binaries. | |
54 | CFLAGS="$CFLAGS -belf" | |
55 | ;; | |
56 | esac] | |
57 | ||
58 | # Actually configure libtool. ac_aux_dir is where install-sh is found. | |
59 | CC="$CC" CFLAGS="$CFLAGS" CPPFLAGS="$CPPFLAGS" \ | |
60 | LD="$LD" RANLIB="$RANLIB" LN_S="$LN_S" \ | |
61 | ${CONFIG_SHELL-/bin/sh} $ac_aux_dir/ltconfig \ | |
62 | $libtool_flags --no-verify $ac_aux_dir/ltmain.sh $host \ | |
63 | || AC_MSG_ERROR([libtool configure failed]) | |
64 | ]) | |
65 | ||
66 | # AM_PROG_LD - find the path to the GNU or non-GNU linker | |
67 | AC_DEFUN(AM_PROG_LD, | |
68 | [AC_ARG_WITH(gnu-ld, | |
69 | [ --with-gnu-ld assume the C compiler uses GNU ld [default=no]], | |
70 | test "$withval" = no || with_gnu_ld=yes, with_gnu_ld=no) | |
71 | if test "$with_gnu_ld" = yes; then | |
72 | AC_MSG_CHECKING([for GNU ld]) | |
73 | else | |
74 | AC_MSG_CHECKING([for non-GNU ld]) | |
75 | fi | |
76 | AC_CACHE_VAL(ac_cv_path_LD, | |
77 | [case "$LD" in | |
78 | /*) | |
79 | ac_cv_path_LD="$LD" # Let the user override the test with a path. | |
80 | ;; | |
81 | *) | |
82 | IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:" | |
83 | for ac_dir in $PATH; do | |
84 | test -z "$ac_dir" && ac_dir=. | |
85 | if test -f "$ac_dir/ld"; then | |
86 | ac_cv_path_LD="$ac_dir/ld" | |
87 | # Check to see if the program is GNU ld. I'd rather use --version, | |
88 | # but apparently some GNU ld's only accept -v. | |
89 | # Break only if it was the GNU/non-GNU ld that we prefer. | |
90 | if "$ac_cv_path_LD" -v 2>&1 < /dev/null | egrep '(GNU ld|with BFD)' > /dev/null; then | |
91 | test "$with_gnu_ld" = yes && break | |
92 | else | |
93 | test "$with_gnu_ld" != yes && break | |
94 | fi | |
95 | fi | |
96 | done | |
97 | IFS="$ac_save_ifs" | |
98 | ;; | |
99 | esac]) | |
100 | LD="$ac_cv_path_LD" | |
101 | if test -n "$LD"; then | |
102 | AC_MSG_RESULT($LD) | |
103 | else | |
104 | AC_MSG_RESULT(no) | |
105 | fi | |
106 | test -z "$LD" && AC_MSG_ERROR([no acceptable ld found in \$PATH]) | |
107 | AC_SUBST(LD) | |
108 | AM_PROG_LD_GNU | |
109 | ]) | |
110 | ||
111 | AC_DEFUN(AM_PROG_LD_GNU, | |
112 | [AC_CACHE_CHECK([whether we are using GNU ld], ac_cv_prog_gnu_ld, | |
113 | [# I'd rather use --version here, but apparently some GNU ld's only accept -v. | |
114 | if $LD -v 2>&1 </dev/null | egrep '(GNU ld|with BFD)' > /dev/null; then | |
115 | ac_cv_prog_gnu_ld=yes | |
116 | else | |
117 | ac_cv_prog_gnu_ld=no | |
118 | fi]) | |
119 | ]) | |
120 | ||
121 | AM_PROG_LIBTOOL | |
122 | ||
8c693660 | 123 | AC_ARG_ENABLE(64-bit-bfd, |
e818c22e | 124 | [ --enable-64-bit-bfd 64-bit support (on hosts with narrower word sizes)], |
a52a3ce8 | 125 | [case "${enableval}" in |
8c693660 KR |
126 | yes) want64=true ;; |
127 | no) want64=false ;; | |
128 | *) AC_MSG_ERROR(bad value ${enableval} for 64-bit-bfd option) ;; | |
129 | esac],[want64=false])dnl | |
130 | AC_ARG_ENABLE(targets, | |
e818c22e | 131 | [ --enable-targets alternative target configurations], |
8c693660 KR |
132 | [case "${enableval}" in |
133 | yes | "") AC_ERROR(enable-targets option must specify target names or 'all') | |
134 | ;; | |
135 | no) enable_targets= ;; | |
136 | *) enable_targets=$enableval ;; | |
137 | esac])dnl | |
44f795f7 ILT |
138 | AC_ARG_ENABLE(commonbfdlib, |
139 | [ --enable-commonbfdlib build shared BFD/opcodes/libiberty library], | |
140 | [case "${enableval}" in | |
141 | yes) commonbfdlib=true ;; | |
142 | no) commonbfdlib=false ;; | |
143 | *) AC_MSG_ERROR([bad value ${enableval} for BFD commonbfdlib option]) ;; | |
144 | esac])dnl | |
145 | AC_ARG_WITH(mmap, | |
146 | [ --with-mmap try using mmap for BFD input files if available], | |
147 | [case "${withval}" in | |
148 | yes) want_mmap=true ;; | |
149 | no) want_mmap=false ;; | |
150 | *) AC_MSG_ERROR(bad value ${withval} for BFD with-mmap option) ;; | |
151 | esac],[want_mmap=false])dnl | |
8c693660 | 152 | |
c0734708 | 153 | AM_CONFIG_HEADER(config.h:config.in) |
b7577823 | 154 | |
8c693660 KR |
155 | if test -z "$target" ; then |
156 | AC_MSG_ERROR(Unrecognized target system type; please check config.sub.) | |
157 | fi | |
158 | AC_ARG_PROGRAM | |
159 | ||
c0734708 ILT |
160 | AM_MAINTAINER_MODE |
161 | AM_CYGWIN32 | |
162 | AM_EXEEXT | |
163 | ||
b32ae8e2 JK |
164 | host64=false |
165 | target64=false | |
21c9f626 | 166 | |
8c693660 | 167 | # host stuff: |
21c9f626 | 168 | |
55626bf0 ILT |
169 | AC_PROG_CC |
170 | ||
f515fb2f | 171 | # Permit host specific settings. |
5a5fa368 | 172 | . ${srcdir}/configure.host |
4dfe09da | 173 | |
f515fb2f | 174 | AC_SUBST(HDEFINES) |
986cf3b8 ILT |
175 | AC_CHECK_TOOL(AR, ar) |
176 | AC_CHECK_TOOL(RANLIB, ranlib, :) | |
f515fb2f ILT |
177 | AC_PROG_INSTALL |
178 | ||
f4e14cb9 ILT |
179 | BFD_HOST_64BIT_LONG=0 |
180 | BFD_HOST_64_BIT_DEFINED=0 | |
181 | BFD_HOST_64_BIT= | |
182 | BFD_HOST_U_64_BIT= | |
b7577823 | 183 | if test "x${HOST_64BIT_TYPE}" = "xlong"; then |
f4e14cb9 ILT |
184 | BFD_HOST_64BIT_LONG=1 |
185 | elif test "x${HOST_64BIT_TYPE}" != "x"; then | |
186 | BFD_HOST_64_BIT_DEFINED=1 | |
187 | BFD_HOST_64_BIT=${HOST_64BIT_TYPE} | |
188 | BFD_HOST_U_64_BIT=${HOST_U_64BIT_TYPE} | |
f515fb2f | 189 | fi |
f4e14cb9 ILT |
190 | AC_SUBST(BFD_HOST_64BIT_LONG) |
191 | AC_SUBST(BFD_HOST_64_BIT_DEFINED) | |
192 | AC_SUBST(BFD_HOST_64_BIT) | |
193 | AC_SUBST(BFD_HOST_U_64_BIT) | |
b7577823 ILT |
194 | |
195 | BFD_CC_FOR_BUILD | |
8c693660 | 196 | |
b7577823 | 197 | AC_CHECK_HEADERS(stddef.h string.h strings.h stdlib.h time.h unistd.h) |
ab1aa5cd FF |
198 | AC_CHECK_HEADERS(fcntl.h sys/file.h sys/time.h) |
199 | AC_HEADER_TIME | |
60f1ad85 | 200 | AC_CHECK_FUNCS(fcntl getpagesize setitimer sysconf fdopen) |
5b2765bf | 201 | |
b7577823 ILT |
202 | BFD_BINARY_FOPEN |
203 | ||
f7954d86 | 204 | BFD_NEED_DECLARATION(strstr) |
44f795f7 | 205 | BFD_NEED_DECLARATION(malloc) |
f7954d86 | 206 | BFD_NEED_DECLARATION(realloc) |
44f795f7 | 207 | BFD_NEED_DECLARATION(free) |
cd6213ff | 208 | BFD_NEED_DECLARATION(getenv) |
8c693660 | 209 | |
a52a3ce8 ILT |
210 | # If we are configured native, pick a core file support file. |
211 | COREFILE= | |
212 | COREFLAG= | |
213 | if test "${target}" = "${host}"; then | |
214 | case "${host}" in | |
999cc186 | 215 | alpha*-*-linux*) |
c0734708 | 216 | COREFILE=trad-core.lo |
999cc186 ILT |
217 | AC_DEFINE(TRAD_HEADER,"hosts/alphalinux.h") |
218 | ;; | |
c0734708 ILT |
219 | alpha*-*-*) COREFILE=osf-core.lo ;; |
220 | arm-*-riscix) COREFILE=trad-core.lo ;; | |
221 | hppa*-*-hpux*) COREFILE=hpux-core.lo ;; | |
222 | hppa*-*-hiux*) COREFILE=hpux-core.lo ;; | |
223 | hppa*-*-bsd*) COREFILE="hpux-core.lo hppabsd-core.lo" | |
a52a3ce8 | 224 | COREFLAG="-DHPUX_CORE -DHPPABSD_CORE" ;; |
2cb159a5 | 225 | changequote(,)dnl |
f7954d86 | 226 | i[3456]86-sequent-bsd*) |
b7577823 | 227 | changequote([,])dnl |
c0734708 | 228 | COREFILE=trad-core.lo; |
b7577823 ILT |
229 | AC_DEFINE(TRAD_HEADER,"hosts/symmetry.h") |
230 | ;; | |
231 | changequote(,)dnl | |
f7954d86 MM |
232 | i[3456]86-sequent-sysv4*) ;; |
233 | i[3456]86-sequent-sysv*) | |
b7577823 | 234 | changequote([,])dnl |
c0734708 | 235 | COREFILE=trad-core.lo |
b7577823 ILT |
236 | AC_DEFINE(TRAD_HEADER,"hosts/symmetry.h") |
237 | ;; | |
238 | changequote(,)dnl | |
f7954d86 | 239 | i[3456]86-*-bsd* | i[3456]86-*-freebsd*) |
b7577823 | 240 | changequote([,])dnl |
c0734708 | 241 | COREFILE=trad-core.lo |
b7577823 ILT |
242 | AC_DEFINE(TRAD_HEADER,"hosts/i386bsd.h") |
243 | ;; | |
69a374c0 | 244 | changequote(,)dnl |
3b1b0308 | 245 | i[3456]86-*-netbsd* | i[3456]86-*-openbsd*) |
69a374c0 | 246 | changequote([,])dnl |
c0734708 | 247 | COREFILE=netbsd-core.lo |
69a374c0 | 248 | ;; |
b7577823 | 249 | changequote(,)dnl |
f7954d86 | 250 | i[3456]86-esix-sysv3*) |
b7577823 | 251 | changequote([,])dnl |
c0734708 | 252 | COREFILE=trad-core.lo |
b7577823 ILT |
253 | AC_DEFINE(TRAD_HEADER,"hosts/esix.h") |
254 | ;; | |
255 | changequote(,)dnl | |
f7954d86 | 256 | i[3456]86-*-sco* | i[3456]86-*-isc*) |
b7577823 | 257 | changequote([,])dnl |
c0734708 | 258 | COREFILE=trad-core.lo |
b7577823 ILT |
259 | AC_DEFINE(TRAD_HEADER,"hosts/i386sco.h") |
260 | ;; | |
261 | changequote(,)dnl | |
f7954d86 | 262 | i[3456]86-*-mach3*) |
b7577823 | 263 | changequote([,])dnl |
c0734708 | 264 | COREFILE=trad-core.lo |
b7577823 ILT |
265 | AC_DEFINE(TRAD_HEADER,"hosts/i386mach3.h") |
266 | ;; | |
267 | changequote(,)dnl | |
f7954d86 | 268 | i[3456]86-*-linux*) |
b7577823 | 269 | changequote([,])dnl |
c0734708 | 270 | COREFILE=trad-core.lo |
b7577823 ILT |
271 | AC_DEFINE(TRAD_HEADER,"hosts/i386linux.h") |
272 | ;; | |
273 | changequote(,)dnl | |
c0734708 ILT |
274 | i[3456]86-*-isc*) COREFILE=trad-core.lo ;; |
275 | i[3456]86-*-aix*) COREFILE=aix386-core.lo ;; | |
2cb159a5 | 276 | changequote([,])dnl |
cf587de8 | 277 | i860-*-mach3* | i860-*-osf1*) |
c0734708 | 278 | COREFILE=trad-core.lo |
cf587de8 ILT |
279 | AC_DEFINE(TRAD_HEADER,"hosts/i860mach3.h") |
280 | ;; | |
b7577823 | 281 | mips-dec-bsd*) |
c0734708 | 282 | COREFILE=trad-core.lo |
b7577823 ILT |
283 | AC_DEFINE(TRAD_HEADER,"hosts/mipsbsd.h") |
284 | ;; | |
285 | mips-dec-mach3*) | |
c0734708 | 286 | COREFILE=trad-core.lo |
b7577823 ILT |
287 | AC_DEFINE(TRAD_HEADER,"hosts/mipsmach3.h") |
288 | ;; | |
3b1b0308 | 289 | mips-*-netbsd* | mips*-*-openbsd*) |
c0734708 | 290 | COREFILE=netbsd-core.lo |
69a374c0 | 291 | ;; |
b7577823 | 292 | mips-dec-*) |
c0734708 | 293 | COREFILE=trad-core.lo |
b7577823 ILT |
294 | AC_DEFINE(TRAD_HEADER,"hosts/decstation.h") |
295 | ;; | |
c0734708 ILT |
296 | mips-sgi-irix4*) COREFILE=irix-core.lo ;; |
297 | mips-sgi-irix5*) COREFILE=irix-core.lo ;; | |
298 | mips-sgi-irix6*) COREFILE=irix-core.lo ;; | |
b7577823 | 299 | mips-*-mach3*) |
c0734708 | 300 | COREFILE=trad-core.lo |
b7577823 ILT |
301 | AC_DEFINE(TRAD_HEADER,"hosts/mipsmach3.h") |
302 | ;; | |
a52a3ce8 | 303 | mips-*-sysv4*) ;; |
b7577823 | 304 | mips-*-sysv* | mips-*-riscos*) |
c0734708 | 305 | COREFILE=trad-core.lo |
b7577823 ILT |
306 | AC_DEFINE(TRAD_HEADER,"hosts/riscos.h") |
307 | ;; | |
308 | mips-sony-bsd*) | |
c0734708 | 309 | COREFILE=trad-core.lo |
ab1aa5cd | 310 | AC_DEFINE(TRAD_HEADER,"hosts/news-mips.h") |
b7577823 ILT |
311 | ;; |
312 | m68*-bull*-sysv*) | |
c0734708 | 313 | COREFILE=trad-core.lo |
b7577823 ILT |
314 | AC_DEFINE(TRAD_HEADER,"hosts/dpx2.h") |
315 | ;; | |
c0734708 | 316 | m68*-hp-hpux*) COREFILE=hpux-core.lo ;; |
b7577823 | 317 | m68*-hp-bsd*) |
c0734708 | 318 | COREFILE=trad-core.lo |
b7577823 ILT |
319 | AC_DEFINE(TRAD_HEADER,"hosts/hp300bsd.h") |
320 | ;; | |
55626bf0 | 321 | m68*-*-linux*) |
c0734708 | 322 | COREFILE=trad-core.lo |
55626bf0 ILT |
323 | AC_DEFINE(TRAD_HEADER,"hosts/m68klinux.h") |
324 | ;; | |
4c8b9746 | 325 | m68*-motorola-sysv*) |
c0734708 | 326 | COREFILE=trad-core.lo |
7f82c7e1 ILT |
327 | AC_DEFINE(TRAD_HEADER, "hosts/delta68.h") |
328 | ;; | |
b7577823 | 329 | m68*-sony-*) |
c0734708 | 330 | COREFILE=trad-core.lo |
b7577823 ILT |
331 | AC_DEFINE(TRAD_HEADER,"hosts/news.h") |
332 | ;; | |
3b1b0308 | 333 | m68*-*-netbsd* | m68*-*-openbsd*) |
c0734708 | 334 | COREFILE=netbsd-core.lo |
69a374c0 | 335 | ;; |
44f795f7 | 336 | m68*-apple-aux*) |
c0734708 | 337 | COREFILE=trad-core.lo |
44f795f7 ILT |
338 | AC_DEFINE(TRAD_HEADER,"hosts/m68kaux.h") |
339 | ;; | |
a52a3ce8 | 340 | m88*-*-sysv4*) ;; |
c0734708 | 341 | m88*-motorola-sysv*) COREFILE=ptrace-core.lo ;; |
b7577823 | 342 | m88*-*-mach3*) |
c0734708 | 343 | COREFILE=trad-core.lo |
b7577823 ILT |
344 | AC_DEFINE(TRAD_HEADER,"hosts/m88kmach3.h") |
345 | ;; | |
346 | ns32k-pc532-mach) | |
c0734708 | 347 | COREFILE=trad-core.lo |
b7577823 ILT |
348 | AC_DEFINE(TRAD_HEADER,"hosts/pc532mach.h") |
349 | ;; | |
3b1b0308 | 350 | ns32k-*-netbsd* | ns32k-*-openbsd*) |
c0734708 ILT |
351 | COREFILE=netbsd-core.lo |
352 | ;; | |
353 | rs6000-*-lynx*) COREFILE=lynx-core.lo ;; | |
354 | rs6000-*-aix4*) COREFILE=rs6000-core.lo ;; | |
355 | rs6000-*-*) COREFILE=rs6000-core.lo ;; | |
356 | powerpc-*-*bsd*) COREFILE=netbsd-core.lo ;; | |
357 | powerpc-*-aix4*) COREFILE=rs6000-core.lo ;; | |
358 | powerpc-*-aix*) COREFILE=rs6000-core.lo ;; | |
ac388f2a | 359 | powerpc-*-beos*) ;; |
3b1b0308 | 360 | sparc-*-netbsd* | sparc-*-openbsd*) |
c0734708 | 361 | COREFILE=netbsd-core.lo |
69a374c0 | 362 | ;; |
b7577823 | 363 | tahoe-*-*) |
c0734708 | 364 | COREFILE=trad-core.lo |
b7577823 ILT |
365 | AC_DEFINE(TRAD_HEADER,"hosts/tahoe.h") |
366 | ;; | |
367 | vax-*-ultrix2*) | |
c0734708 | 368 | COREFILE=trad-core.lo |
b7577823 ILT |
369 | AC_DEFINE(TRAD_HEADER,"hosts/vaxult2.h") |
370 | ;; | |
371 | vax-*-ultrix*) | |
c0734708 | 372 | COREFILE=trad-core.lo |
b7577823 ILT |
373 | AC_DEFINE(TRAD_HEADER,"hosts/vaxult2.h") |
374 | ;; | |
375 | vax-*-*) | |
c0734708 | 376 | COREFILE=trad-core.lo |
b7577823 ILT |
377 | AC_DEFINE(TRAD_HEADER,"hosts/vaxbsd.h") |
378 | ;; | |
a52a3ce8 ILT |
379 | esac |
380 | ||
381 | case "$COREFILE" in | |
c0734708 ILT |
382 | aix386-core.lo) COREFLAG=-DAIX386_CORE ;; |
383 | hppabsd-core.lo) COREFLAG=-DHPPABSD_CORE ;; | |
384 | hpux-core.lo) COREFLAG=-DHPUX_CORE ;; | |
385 | irix-core.lo) COREFLAG=-DIRIX_CORE ;; | |
386 | lynx-core.lo) COREFLAG=-DLYNX_CORE ;; | |
387 | osf-core.lo) COREFLAG=-DOSF_CORE ;; | |
388 | ptrace-core.lo) COREFLAG=-DPTRACE_CORE ;; | |
389 | rs6000-core.lo) COREFLAG="$COREFLAG -DAIX_CORE" ;; | |
390 | trad-core.lo) COREFLAG="$COREFLAG -DTRAD_CORE" ;; | |
a52a3ce8 | 391 | esac |
1dff7902 ILT |
392 | |
393 | # The ELF code uses the native <sys/procfs.h> to handle core files. | |
394 | # Define HAVE_SYS_PROCFS_H if the file exists and defines | |
395 | # prstatus_t. | |
396 | AC_MSG_CHECKING([for sys/procfs.h]) | |
397 | AC_CACHE_VAL(bfd_cv_header_sys_procfs_h, | |
398 | [AC_TRY_COMPILE([#include <sys/procfs.h>], | |
399 | [prstatus_t t;], | |
400 | bfd_cv_header_sys_procfs_h=yes, bfd_cv_header_sys_procfs_h=no)]) | |
401 | AC_MSG_RESULT($bfd_cv_header_sys_procfs_h) | |
402 | if test $bfd_cv_header_sys_procfs_h = yes; then | |
403 | AC_DEFINE(HAVE_SYS_PROCFS_H) | |
404 | fi | |
405 | ||
a52a3ce8 ILT |
406 | fi |
407 | AC_SUBST(COREFILE) | |
408 | AC_SUBST(COREFLAG) | |
409 | ||
8c693660 | 410 | # target stuff: |
21c9f626 | 411 | |
180acef5 | 412 | # Canonicalize the secondary target names. |
8c693660 | 413 | if test -n "$enable_targets" ; then |
318b02b6 | 414 | for targ in `echo $enable_targets | sed 's/,/ /g'` |
180acef5 | 415 | do |
60f1ad85 | 416 | result=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $targ 2>/dev/null` |
8c693660 | 417 | if test -n "$result" ; then |
180acef5 DM |
418 | canon_targets="$canon_targets $result" |
419 | else | |
420 | # Allow targets that config.sub doesn't recognize, like "all". | |
421 | canon_targets="$canon_targets $targ" | |
422 | fi | |
423 | done | |
424 | fi | |
5f9a2245 DM |
425 | |
426 | all_targets=false | |
2b79a104 ILT |
427 | defvec= |
428 | selvecs= | |
429 | selarchs= | |
430 | TDEFINES= | |
180acef5 | 431 | for targ in $target $canon_targets |
5f9a2245 | 432 | do |
2b79a104 | 433 | if test "x$targ" = "xall"; then |
5f9a2245 DM |
434 | all_targets=true |
435 | else | |
2b79a104 ILT |
436 | . $srcdir/config.bfd |
437 | if test "x$targ" = "x$target"; then | |
438 | defvec=$targ_defvec | |
5f9a2245 | 439 | fi |
2b79a104 ILT |
440 | selvecs="$selvecs $targ_defvec $targ_selvecs" |
441 | selarchs="$selarchs $targ_archs" | |
442 | TDEFINES="$TDEFINES $targ_cflags" | |
5f9a2245 DM |
443 | fi |
444 | done | |
2b79a104 | 445 | AC_SUBST(TDEFINES) |
b32ae8e2 | 446 | |
ffe26398 KR |
447 | # This processing still needs to be done if we're to decide properly whether |
448 | # 64-bit support needs to be compiled in. Currently, it will be included if | |
449 | # the default or any other explicitly requested target requires it; it | |
450 | # will not be included on a 32-bit host if no 64-bit target is requested, and | |
451 | # no "--with-64-bit-bfd" option is given, even if "--with-targets=all" is | |
452 | # used. | |
453 | ||
2b79a104 | 454 | # uniq the default and selected vectors in all the configured targets. |
ffe26398 | 455 | f="" |
2b79a104 | 456 | for i in $selvecs ; do |
ffe26398 KR |
457 | case " $f " in |
458 | *" $i "*) ;; | |
459 | *) f="$f $i" ;; | |
460 | esac | |
461 | done | |
2b79a104 | 462 | selvecs="$f" |
ffe26398 | 463 | |
2b79a104 | 464 | # uniq the architectures in all the configured targets. |
ffe26398 | 465 | f="" |
2b79a104 | 466 | for i in $selarchs ; do |
ffe26398 KR |
467 | case " $f " in |
468 | *" $i "*) ;; | |
469 | *) f="$f $i" ;; | |
470 | esac | |
471 | done | |
2b79a104 | 472 | selarchs="$f" |
5f9a2245 | 473 | |
ffe26398 KR |
474 | # Target backend .o files. |
475 | tb= | |
476 | ||
c0734708 | 477 | elf="elf.lo elflink.lo" |
a52a3ce8 | 478 | |
2b79a104 | 479 | for vec in $selvecs |
ffe26398 KR |
480 | do |
481 | case "$vec" in | |
482 | # This list is alphabetized to make it easy to compare | |
483 | # with the two vector lists in targets.c. | |
c0734708 ILT |
484 | a29kcoff_big_vec) tb="$tb coff-a29k.lo cofflink.lo" ;; |
485 | a_out_adobe_vec) tb="$tb aout-adobe.lo aout32.lo" ;; | |
486 | armcoff_little_vec) tb="$tb coff-arm.lo cofflink.lo " ;; | |
487 | armcoff_big_vec) tb="$tb coff-arm.lo cofflink.lo " ;; | |
488 | armpe_little_vec) tb="$tb pe-arm.lo cofflink.lo " ;; | |
489 | armpe_big_vec) tb="$tb pe-arm.lo cofflink.lo " ;; | |
490 | armpei_little_vec) tb="$tb pei-arm.lo cofflink.lo " ;; | |
491 | armpei_big_vec) tb="$tb pei-arm.lo cofflink.lo " ;; | |
492 | aout0_big_vec) tb="$tb aout0.lo aout32.lo" ;; | |
493 | aout_arm_big_vec) tb="$tb aout-arm.lo aout32.lo" ;; | |
494 | aout_arm_little_vec) tb="$tb aout-arm.lo aout32.lo" ;; | |
495 | aout_mips_big_vec) tb="$tb mipsbsd.lo aout32.lo" ;; | |
496 | aout_mips_little_vec) tb="$tb mipsbsd.lo aout32.lo" ;; | |
497 | apollocoff_vec) tb="$tb coff-apollo.lo" ;; | |
498 | b_out_vec_big_host) tb="$tb bout.lo aout32.lo" ;; | |
499 | b_out_vec_little_host) tb="$tb bout.lo aout32.lo" ;; | |
500 | bfd_elf64_alpha_vec) tb="$tb elf64-alpha.lo elf64.lo $elf" | |
dbbfec07 | 501 | target64=true ;; |
c7b44b04 | 502 | # start-sanitize-arc |
c0734708 ILT |
503 | bfd_elf32_littlearc_vec) tb="$tb elf32-arc.lo elf32.lo $elf" ;; |
504 | bfd_elf32_bigarc_vec) tb="$tb elf32-arc.lo elf32.lo $elf" ;; | |
c7b44b04 | 505 | # end-sanitize-arc |
c0734708 ILT |
506 | bfd_elf32_big_generic_vec) tb="$tb elf32-gen.lo elf32.lo $elf" ;; |
507 | bfd_elf32_bigmips_vec) tb="$tb elf32-mips.lo elf32.lo $elf ecofflink.lo" ;; | |
508 | bfd_elf64_bigmips_vec) tb="$tb elf64-mips.lo elf64.lo elf32-mips.lo elf32.lo $elf ecofflink.lo" | |
d1bf45aa | 509 | target64=true ;; |
c0734708 | 510 | bfd_elf32_d10v_vec) tb="$tb elf32-d10v.lo elf32.lo $elf" ;; |
fd8d7c31 | 511 | # start-sanitize-d30v |
c0734708 | 512 | bfd_elf32_d30v_vec) tb="$tb elf32-d30v.lo elf32.lo $elf" ;; |
fd8d7c31 | 513 | # end-sanitize-d30v |
c0734708 ILT |
514 | bfd_elf32_hppa_vec) tb="$tb elf32-hppa.lo elf32.lo $elf" ;; |
515 | bfd_elf32_i386_vec) tb="$tb elf32-i386.lo elf32.lo $elf" ;; | |
516 | bfd_elf32_i860_vec) tb="$tb elf32-i860.lo elf32.lo $elf" ;; | |
517 | bfd_elf32_little_generic_vec) tb="$tb elf32-gen.lo elf32.lo $elf" ;; | |
518 | bfd_elf32_littlemips_vec) tb="$tb elf32-mips.lo elf32.lo $elf ecofflink.lo" ;; | |
519 | bfd_elf64_littlemips_vec) tb="$tb elf64-mips.lo elf64.lo elf32-mips.lo elf32.lo $elf ecofflink.lo" | |
d1bf45aa | 520 | target64=true ;; |
c0734708 ILT |
521 | bfd_elf32_m32r_vec) tb="$tb elf32-m32r.lo elf32.lo $elf" ;; |
522 | bfd_elf32_m68k_vec) tb="$tb elf32-m68k.lo elf32.lo $elf" ;; | |
523 | bfd_elf32_m88k_vec) tb="$tb elf32-m88k.lo elf32.lo $elf" ;; | |
524 | bfd_elf32_mn10200_vec) tb="$tb elf-m10200.lo elf32.lo $elf" ;; | |
525 | bfd_elf32_mn10300_vec) tb="$tb elf-m10300.lo elf32.lo $elf" ;; | |
526 | bfd_elf32_powerpc_vec) tb="$tb elf32-ppc.lo elf32.lo $elf" ;; | |
527 | bfd_elf32_powerpcle_vec) tb="$tb elf32-ppc.lo elf32.lo $elf" ;; | |
528 | bfd_elf32_sh_vec) tb="$tb elf32-sh.lo elf32.lo $elf coff-sh.lo" ;; | |
529 | bfd_elf32_shl_vec) tb="$tb elf32-sh.lo elf32.lo $elf coff-sh.lo" ;; | |
530 | bfd_elf32_sparc_vec) tb="$tb elf32-sparc.lo elf32.lo $elf" ;; | |
f7954d86 | 531 | # start-sanitize-v850 |
c0734708 | 532 | bfd_elf32_v850_vec) tb="$tb elf32-v850.lo elf32.lo $elf" ;; |
f7954d86 | 533 | # end-sanitize-v850 |
c0734708 | 534 | bfd_elf64_big_generic_vec) tb="$tb elf64-gen.lo elf64.lo $elf" |
7adbe989 | 535 | target64=true ;; |
c0734708 | 536 | bfd_elf64_little_generic_vec) tb="$tb elf64-gen.lo elf64.lo $elf" |
7adbe989 | 537 | target64=true ;; |
c0734708 | 538 | bfd_elf64_sparc_vec) tb="$tb elf64-sparc.lo elf64.lo $elf" |
7adbe989 | 539 | target64=true ;; |
c0734708 ILT |
540 | cisco_core_vec) tb="$tb cisco-core.lo" ;; |
541 | demo_64_vec) tb="$tb demo64.lo aout64.lo" | |
7adbe989 | 542 | target64=true ;; |
c0734708 ILT |
543 | ecoff_big_vec) tb="$tb coff-mips.lo ecoff.lo ecofflink.lo" ;; |
544 | ecoff_little_vec) tb="$tb coff-mips.lo ecoff.lo ecofflink.lo" ;; | |
545 | ecoff_biglittle_vec) tb="$tb coff-mips.lo ecoff.lo ecofflink.lo" ;; | |
546 | ecoffalpha_little_vec) tb="$tb coff-alpha.lo ecoff.lo ecofflink.lo" | |
5dac2dd5 | 547 | target64=true ;; |
c0734708 ILT |
548 | go32coff_vec) tb="$tb coff-go32.lo cofflink.lo" ;; |
549 | go32stubbedcoff_vec) tb="$tb coff-stubgo32.lo cofflink.lo" ;; | |
550 | evax_alpha_vec) tb="$tb evax-alpha.lo evax-emh.lo evax-egsd.lo evax-etir.lo evax-misc.lo" | |
dbbfec07 | 551 | target64=true ;; |
c0734708 ILT |
552 | h8300coff_vec) tb="$tb coff-h8300.lo reloc16.lo" ;; |
553 | h8500coff_vec) tb="$tb coff-h8500.lo reloc16.lo" ;; | |
554 | host_aout_vec) tb="$tb host-aout.lo aout32.lo" ;; | |
555 | hp300bsd_vec) tb="$tb hp300bsd.lo aout32.lo" ;; | |
556 | hp300hpux_vec) tb="$tb hp300hpux.lo aout32.lo" ;; | |
557 | i386aout_vec) tb="$tb i386aout.lo aout32.lo" ;; | |
558 | i386bsd_vec) tb="$tb i386bsd.lo aout32.lo" ;; | |
559 | i386coff_vec) tb="$tb coff-i386.lo cofflink.lo" ;; | |
560 | i386dynix_vec) tb="$tb i386dynix.lo aout32.lo" ;; | |
561 | i386freebsd_vec) tb="$tb i386freebsd.lo aout32.lo" ;; | |
562 | i386msdos_vec) tb="$tb i386msdos.lo" ;; | |
563 | i386pe_vec) tb="$tb pe-i386.lo cofflink.lo " ;; | |
564 | i386pei_vec) tb="$tb pei-i386.lo cofflink.lo" ;; | |
565 | i386linux_vec) tb="$tb i386linux.lo aout32.lo" ;; | |
566 | i386lynx_aout_vec) tb="$tb i386lynx.lo lynx-core.lo aout32.lo" ;; | |
567 | i386lynx_coff_vec) tb="$tb cf-i386lynx.lo cofflink.lo lynx-core.lo" ;; | |
568 | i386mach3_vec) tb="$tb i386mach3.lo aout32.lo" ;; | |
569 | i386netbsd_vec) tb="$tb i386netbsd.lo aout32.lo" ;; | |
570 | i386os9k_vec) tb="$tb i386os9k.lo aout32.lo" ;; | |
571 | i860coff_vec) tb="$tb coff-i860.lo cofflink.lo" ;; | |
572 | icoff_big_vec) tb="$tb coff-i960.lo cofflink.lo" ;; | |
573 | icoff_little_vec) tb="$tb coff-i960.lo cofflink.lo" ;; | |
574 | ieee_vec) tb="$tb ieee.lo" ;; | |
575 | m68kcoff_vec) tb="$tb coff-m68k.lo cofflink.lo" ;; | |
576 | m68kcoffun_vec) tb="$tb coff-u68k.lo coff-m68k.lo cofflink.lo" ;; | |
577 | m68klinux_vec) tb="$tb m68klinux.lo aout32.lo" ;; | |
578 | m68klynx_aout_vec) tb="$tb m68klynx.lo lynx-core.lo aout32.lo" ;; | |
579 | m68klynx_coff_vec) tb="$tb cf-m68klynx.lo coff-m68k.lo cofflink.lo lynx-core.lo" ;; | |
580 | m68knetbsd_vec) tb="$tb m68knetbsd.lo aout32.lo" ;; | |
581 | m68k4knetbsd_vec) tb="$tb m68k4knetbsd.lo aout32.lo" ;; | |
582 | m68kaux_coff_vec) tb="$tb coff-aux.lo coff-m68k.lo cofflink.lo" ;; | |
583 | m68ksysvcoff_vec) tb="$tb coff-svm68k.lo cofflink.lo" ;; | |
584 | m88kbcs_vec) tb="$tb coff-m88k.lo" ;; | |
585 | newsos3_vec) tb="$tb newsos3.lo aout32.lo" ;; | |
586 | nlm32_i386_vec) tb="$tb nlm32-i386.lo nlm32.lo nlm.lo" ;; | |
587 | nlm32_sparc_vec) tb="$tb nlm32-sparc.lo nlm32.lo nlm.lo" ;; | |
588 | nlm32_alpha_vec) tb="$tb nlm32-alpha.lo nlm32.lo nlm.lo" | |
7adbe989 | 589 | target64=true ;; |
c0734708 ILT |
590 | riscix_vec) tb="$tb aout32.lo riscix.lo" ;; |
591 | nlm32_powerpc_vec) tb="$tb nlm32-ppc.lo nlm32.lo nlm.lo" ;; | |
592 | pc532netbsd_vec) tb="$tb ns32knetbsd.lo aout-ns32k.lo" ;; | |
593 | pc532machaout_vec) tb="$tb pc532-mach.lo aout-ns32k.lo" ;; | |
594 | pmac_xcoff_vec) tb="$tb coff-pmac.lo xcofflink.lo" ;; | |
595 | rs6000coff_vec) tb="$tb coff-rs6000.lo xcofflink.lo" ;; | |
596 | bfd_powerpc_pe_vec) tb="$tb pe-ppc.lo cofflink.lo" ;; | |
597 | bfd_powerpcle_pe_vec) tb="$tb pe-ppc.lo cofflink.lo" ;; | |
598 | bfd_powerpc_pei_vec) tb="$tb pei-ppc.lo cofflink.lo" ;; | |
599 | bfd_powerpcle_pei_vec) tb="$tb pei-ppc.lo cofflink.lo" ;; | |
600 | ppcboot_vec) tb="$tb ppcboot.lo" ;; | |
601 | shcoff_vec) tb="$tb coff-sh.lo cofflink.lo" ;; | |
602 | shlcoff_vec) tb="$tb coff-sh.lo cofflink.lo" ;; | |
603 | som_vec) tb="$tb som.lo" ;; | |
604 | sparcle_aout_vec) tb="$tb aout-sparcle.lo aout32.lo" ;; | |
605 | sparclinux_vec) tb="$tb sparclinux.lo aout32.lo stab-syms.lo" ;; | |
606 | sparclynx_aout_vec) tb="$tb sparclynx.lo lynx-core.lo aout32.lo" ;; | |
607 | sparclynx_coff_vec) tb="$tb cf-sparclynx.lo lynx-core.lo" ;; | |
608 | sparcnetbsd_vec) tb="$tb sparcnetbsd.lo aout32.lo" ;; | |
609 | sparccoff_vec) tb="$tb coff-sparc.lo" ;; | |
610 | srec_vec) tb="$tb srec.lo" ;; | |
611 | sunos_big_vec) tb="$tb sunos.lo aout32.lo" ;; | |
612 | symbolsrec_vec) tb="$tb srec.lo" ;; | |
613 | tekhex_vec) tb="$tb tekhex.lo" ;; | |
cd6213ff | 614 | # start-sanitize-tic80 |
c0734708 | 615 | tic80coff_vec) tb="$tb coff-tic80.lo cofflink.lo" ;; |
cd6213ff | 616 | # end-sanitize-tic80 |
c0734708 ILT |
617 | we32kcoff_vec) tb="$tb coff-we32k.lo" ;; |
618 | z8kcoff_vec) tb="$tb coff-z8k.lo reloc16.lo" ;; | |
619 | w65_vec) tb="$tb coff-w65.lo reloc16.lo" ;; | |
620 | versados_vec) tb="$tb versados.lo" ;; | |
ffe26398 | 621 | |
ffe26398 | 622 | "") ;; |
8c693660 | 623 | *) AC_MSG_ERROR(*** unknown target vector $vec) ;; |
ffe26398 KR |
624 | esac |
625 | done | |
5f9a2245 | 626 | |
ffe26398 | 627 | # Target architecture .o files. |
b872076e ILT |
628 | # A couple of CPUs use shorter file names to avoid problems on DOS |
629 | # filesystems. | |
c0734708 | 630 | ta=`echo $selarchs | sed -e s/bfd_/cpu-/g -e s/_arch/.lo/g -e s/mn10200/m10200/ -e s/mn10300/m10300/` |
5f9a2245 | 631 | |
ffe26398 KR |
632 | # Weed out duplicate .o files. |
633 | f="" | |
634 | for i in $tb ; do | |
635 | case " $f " in | |
636 | *" $i "*) ;; | |
637 | *) f="$f $i" ;; | |
638 | esac | |
639 | done | |
640 | tb="$f" | |
641 | ||
642 | f="" | |
643 | for i in $ta ; do | |
644 | case " $f " in | |
645 | *" $i "*) ;; | |
646 | *) f="$f $i" ;; | |
647 | esac | |
648 | done | |
649 | ta="$f" | |
5f9a2245 | 650 | |
ffe26398 KR |
651 | bfd_backends="$tb" |
652 | bfd_machines="$ta" | |
5f9a2245 | 653 | |
8c693660 | 654 | if test x${all_targets} = xtrue ; then |
ffe26398 KR |
655 | bfd_backends="${bfd_backends}"' $(ALL_BACKENDS)' |
656 | bfd_machines="${bfd_machines}"' $(ALL_MACHINES)' | |
2b79a104 | 657 | selvecs= |
cd6213ff | 658 | havevecs= |
2b79a104 | 659 | selarchs= |
cede9731 PS |
660 | else # all_targets is true |
661 | # Only set these if they will be nonempty, for the clever echo. | |
cd6213ff FF |
662 | havevecs= |
663 | test -n "$selvecs" && | |
664 | havevecs=`echo $selvecs | sed -e 's/^/-DHAVE_/' -e 's/ \(.\)/ -DHAVE_\1/g'` | |
2b79a104 ILT |
665 | test -n "$selvecs" && |
666 | selvecs=`echo $selvecs | sed -e 's/^/\&/' -e 's/ \(.\)/,\&\1/g'` | |
667 | test -n "$selarchs" && | |
2ffbb79a | 668 | selarchs=`echo $selarchs | sed -e 's/^/\&/' -e 's/ \(.\)/,\&\1/g'` |
5f9a2245 DM |
669 | fi # all_targets is true |
670 | ||
7adbe989 KR |
671 | case ${host64}-${target64}-${want64} in |
672 | *true*) | |
673 | wordsize=64 | |
674 | all_backends='$(BFD64_BACKENDS) $(BFD32_BACKENDS)' | |
194141a9 | 675 | if test -z "$GCC" && test "$BFD_HOST_64BIT_LONG" = "0" && test "$BFD_HOST_64_BIT_DEFINED" = "0"; then |
dbbfec07 JM |
676 | AC_MSG_WARN([You have requested a 64 bit BFD configuration, but]) |
677 | AC_MSG_WARN([your compiler may not have a 64 bit integral type]) | |
678 | fi | |
7adbe989 KR |
679 | ;; |
680 | false-false-false) | |
681 | wordsize=32 | |
682 | all_backends='$(BFD32_BACKENDS)' | |
683 | ;; | |
684 | esac | |
685 | ||
8c693660 KR |
686 | AC_SUBST(wordsize) |
687 | AC_SUBST(all_backends) | |
688 | AC_SUBST(bfd_backends) | |
689 | AC_SUBST(bfd_machines) | |
7adbe989 | 690 | |
8c693660 | 691 | tdefaults="" |
c7b44b04 MM |
692 | test -n "${defvec}" && tdefaults="${tdefaults} -DDEFAULT_VECTOR=${defvec}" |
693 | test -n "${selvecs}" && tdefaults="${tdefaults} -DSELECT_VECS='${selvecs}'" | |
694 | test -n "${selarchs}" && tdefaults="${tdefaults} -DSELECT_ARCHITECTURES='${selarchs}'" | |
cd6213ff | 695 | test -n "${havevecs}" && tdefaults="${tdefaults} ${havevecs}" |
8c693660 | 696 | AC_SUBST(tdefaults) |
c812942f | 697 | |
4fe6d901 KR |
698 | dnl AC_CHECK_HEADERS(sys/mman.h) |
699 | AC_FUNC_MMAP | |
700 | AC_CHECK_FUNCS(madvise mprotect) | |
fd8d7c31 | 701 | case ${want_mmap}+${ac_cv_func_mmap_fixed_mapped} in |
44f795f7 ILT |
702 | true+yes ) AC_DEFINE(USE_MMAP) ;; |
703 | esac | |
4fe6d901 | 704 | |
8c693660 | 705 | rm -f doc/config.status |
c0734708 | 706 | AC_OUTPUT(Makefile doc/Makefile bfd-in3.h:bfd-in2.h) |