]> git.ipfire.org Git - thirdparty/binutils-gdb.git/blob - gas/configure.in
Remove long-obsolete MPW support.
[thirdparty/binutils-gdb.git] / gas / configure.in
1 dnl Process this file with autoconf to produce a configure script.
2 dnl
3 dnl And be careful when changing it! If you must add tests with square
4 dnl brackets, be sure changequote invocations surround it.
5 dnl
6 dnl
7 dnl v2.5 needed for --bindir et al
8 AC_PREREQ(2.57)
9 AC_INIT(as.h)
10
11 dnl Autoconf 2.57 will find the aux dir without this. However, unless
12 dnl we specify this explicitly, automake-1.7 will assume that ylwrap is in
13 dnl gas/ instead of gas/../.
14 AC_CONFIG_AUX_DIR(..)
15 AC_CANONICAL_SYSTEM
16 AC_ISC_POSIX
17
18 changequote(,)dnl
19 BFD_VERSION=`sed -n -e 's/^.._INIT_AUTOMAKE.*,[ ]*\([^ ]*\)[ ]*).*/\1/p' < ${srcdir}/../bfd/configure.in`
20 changequote([,])dnl
21 AM_INIT_AUTOMAKE(gas, ${BFD_VERSION})
22
23 AM_PROG_LIBTOOL
24
25 user_bfd_gas=
26 AC_ARG_ENABLE(bfd-assembler,
27 [ --enable-bfd-assembler use BFD back end for writing object files],
28 [case "${enableval}" in
29 yes) need_bfd=yes user_bfd_gas=yes ;;
30 no) user_bfd_gas=no ;;
31 *) AC_MSG_ERROR(bad value ${enableval} given for bfd-assembler option) ;;
32 esac])dnl
33 AC_ARG_ENABLE(targets,
34 [ targets alternative target configurations besides the primary],
35 [case "${enableval}" in
36 yes | "") AC_ERROR(enable-targets option must specify target names or 'all')
37 ;;
38 no) enable_targets= ;;
39 *) enable_targets=$enableval ;;
40 esac])dnl
41 AC_ARG_ENABLE(commonbfdlib,
42 [ --enable-commonbfdlib build shared BFD/opcodes/libiberty library],
43 [case "${enableval}" in
44 yes) commonbfdlib=true ;;
45 no) commonbfdlib=false ;;
46 *) AC_MSG_ERROR([bad value ${enableval} for BFD commonbfdlib option]) ;;
47 esac])dnl
48
49 using_cgen=no
50
51 build_warnings="-W -Wall -Wstrict-prototypes -Wmissing-prototypes"
52 AC_ARG_ENABLE(build-warnings,
53 [ --enable-build-warnings Enable build-time compiler warnings if gcc is used],
54 [case "${enableval}" in
55 yes) ;;
56 no) build_warnings="-w";;
57 ,*) t=`echo "${enableval}" | sed -e "s/,/ /g"`
58 build_warnings="${build_warnings} ${t}";;
59 *,) t=`echo "${enableval}" | sed -e "s/,/ /g"`
60 build_warnings="${t} ${build_warnings}";;
61 *) build_warnings=`echo "${enableval}" | sed -e "s/,/ /g"`;;
62 esac
63 if test x"$silent" != x"yes" && test x"$build_warnings" != x""; then
64 echo "Setting warning flags = $build_warnings" 6>&1
65 fi])dnl
66 WARN_CFLAGS=""
67 if test "x${build_warnings}" != x -a "x$GCC" = xyes ; then
68 WARN_CFLAGS="${build_warnings}"
69 fi
70 AC_SUBST(WARN_CFLAGS)
71
72 # Generate a header file
73 AM_CONFIG_HEADER(config.h:config.in)
74
75 # If we are on a DOS filesystem, we must use gdb.ini rather than
76 # .gdbinit.
77 case "${host}" in
78 *-*-msdos* | *-*-go32* | *-*-mingw32* | *-*-windows*)
79 GDBINIT="gdb.ini"
80 AC_CONFIG_FILES(gdb.ini:gdbinit.in)
81 ;;
82 *)
83 GDBINIT=".gdbinit"
84 AC_CONFIG_FILES(.gdbinit:gdbinit.in)
85 ;;
86 esac
87 AC_SUBST(GDBINIT)
88
89 te_file=generic
90
91 # Makefile target for installing gas in $(tooldir)/bin.
92 install_tooldir=install-exec-tooldir
93
94 canon_targets=""
95 all_targets=no
96 if test -n "$enable_targets" ; then
97 for t in `echo $enable_targets | sed 's/,/ /g'`; do
98 if test $t = "all"; then
99 all_targets=yes
100 continue
101 fi
102 result=`$ac_config_sub $t 2>/dev/null`
103 if test -n "$result" ; then
104 canon_targets="$canon_targets $result"
105 # else
106 # # Permit "all", etc. We don't support it yet though.
107 # canon_targets="$canon_targets $t"
108 fi
109 done
110 GAS_UNIQ(canon_targets)
111 fi
112
113 emulations=""
114
115 for this_target in $target $canon_targets ; do
116
117 changequote(,)dnl
118 eval `echo $this_target | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/cpu=\1 vendor=\2 os=\3/'`
119 changequote([,])dnl
120
121 # check for architecture variants
122 arch=
123 endian=
124 case ${cpu} in
125 am33_2.0) cpu_type=mn10300 endian=little ;;
126 alpha*) cpu_type=alpha ;;
127 arm*b|xscale*b|strongarm*b) cpu_type=arm endian=big ;;
128 arm*|xscale*|strongarm*) cpu_type=arm endian=little ;;
129 c4x*) cpu_type=tic4x ;;
130 hppa*) cpu_type=hppa ;;
131 changequote(,)dnl
132 i[3-7]86) cpu_type=i386 arch=i386;;
133 x86_64) cpu_type=i386 arch=x86_64;;
134 ia64) cpu_type=ia64 ;;
135 ip2k) cpu_type=ip2k endian=big ;;
136 iq2000) cpu_type=iq2000 endian=big ;;
137 m6811|m6812|m68hc12) cpu_type=m68hc11 ;;
138 m680[012346]0) cpu_type=m68k ;;
139 changequote([,])dnl
140 m68008) cpu_type=m68k ;;
141 m683??) cpu_type=m68k ;;
142 m5200) cpu_type=m68k ;;
143 m8*) cpu_type=m88k ;;
144 mips*el) cpu_type=mips endian=little ;;
145 mips*) cpu_type=mips endian=big ;;
146 or32*) cpu_type=or32 endian=big ;;
147 pjl*) cpu_type=pj endian=little ;;
148 pj*) cpu_type=pj endian=big ;;
149 powerpc*le*) cpu_type=ppc endian=little ;;
150 powerpc*) cpu_type=ppc endian=big ;;
151 rs6000*) cpu_type=ppc ;;
152 s390x*) cpu_type=s390 arch=s390x ;;
153 s390*) cpu_type=s390 arch=s390 ;;
154 sh5*) cpu_type=sh64 endian=big ;;
155 sh5le*) cpu_type=sh64 endian=little ;;
156 sh64*) cpu_type=sh64 endian=big ;;
157 sh64le*) cpu_type=sh64 endian=little ;;
158 sh*le) cpu_type=sh endian=little ;;
159 sh*) cpu_type=sh endian=big ;;
160 sparclite*) cpu_type=sparc arch=sparclite ;;
161 sparclet*) cpu_type=sparc arch=sparclet ;;
162 sparc64*) cpu_type=sparc arch=v9-64 ;;
163 sparc86x*) cpu_type=sparc arch=sparc86x ;;
164 sparc*) cpu_type=sparc arch=sparclite ;; # ??? See tc-sparc.c.
165 v850*) cpu_type=v850 ;;
166 xtensa*) cpu_type=xtensa arch=xtensa ;;
167 m32r) cpu_type=m32r target_cpu=m32r endian=big ;;
168 m32rle) cpu_type=m32r target_cpu=m32r endian=little ;;
169 *) cpu_type=${cpu} ;;
170 esac
171
172 if test ${this_target} = $target ; then
173 target_cpu_type=${cpu_type}
174 elif test ${target_cpu_type} != ${cpu_type} ; then
175 continue
176 fi
177
178 generic_target=${cpu_type}-$vendor-$os
179 dev=no
180 bfd_gas=no
181 em=generic
182
183 # assign object format
184 case ${generic_target} in
185 a29k-*-coff) fmt=coff ;;
186 a29k-amd-udi) fmt=coff ;;
187 a29k-amd-ebmon) fmt=coff ;;
188 a29k-nyu-sym1) fmt=coff ;;
189 a29k-*-rtems*) fmt=coff ;;
190 a29k-*-vxworks*) fmt=coff ;;
191
192 alpha*-*-*vms*) fmt=evax ;;
193 alpha*-*-netware*) fmt=ecoff ;;
194 alpha*-*-osf*) fmt=ecoff ;;
195 alpha*-*-linuxecoff*) fmt=ecoff ;;
196 alpha*-*-linux-gnu*) fmt=elf em=linux ;;
197 alpha*-*-netbsd*) fmt=elf em=nbsd ;;
198 alpha*-*-openbsd*) fmt=elf em=obsd ;;
199
200 # cpu_type for am33_2.0 is set to mn10300
201 mn10300-*-linux*) fmt=elf bfd_gas=yes em=linux ;;
202
203 arc-*-elf*) fmt=elf ;;
204
205 arm-*-aout) fmt=aout ;;
206 arm-*-coff | thumb-*-coff) fmt=coff ;;
207 arm-*-rtems* | thumb-*-rtems*) fmt=elf ;;
208 arm-*-elf | thumb-*-elf) fmt=elf ;;
209 arm-*-kaos*) fmt=elf ;;
210 arm*-*-conix*) fmt=elf ;;
211 arm-*-linux*aout*) fmt=aout em=linux ;;
212 arm*-*-linux-gnu*) fmt=elf em=linux ;;
213 arm*-*-uclinux*) fmt=elf em=linux ;;
214 arm-*-netbsdelf*) fmt=elf em=nbsd ;;
215 arm-*-*n*bsd*) fmt=aout em=nbsd ;;
216 arm-**-nto*) fmt=elf ;;
217 arm-*-oabi | thumb-*-oabi) fmt=elf ;;
218 arm-epoc-pe | thumb-epoc-pe) fmt=coff em=epoc-pe ;;
219 arm-wince-pe | arm-*-wince) fmt=coff em=wince-pe ;;
220 arm-*-pe | thumb-*-pe) fmt=coff em=pe ;;
221 arm-*-riscix*) fmt=aout em=riscix ;;
222
223 avr-*-*) fmt=elf ;;
224
225 cris-*-linux-gnu*) fmt=multi bfd_gas=yes em=linux ;;
226 cris-*-*) fmt=multi bfd_gas=yes ;;
227
228 d10v-*-*) fmt=elf ;;
229 d30v-*-*) fmt=elf ;;
230 dlx-*-*) fmt=elf ;;
231
232 fr30-*-*) fmt=elf ;;
233 frv-*-*) fmt=elf ;;
234
235 hppa-*-linux*) case ${cpu} in
236 hppa*64*) fmt=elf em=hppalinux64;;
237 hppa*) fmt=elf em=linux;;
238 esac ;;
239 hppa-*-*elf*) fmt=elf em=hppa ;;
240 hppa-*-lites*) fmt=elf em=hppa ;;
241 hppa-*-netbsd*) fmt=elf em=nbsd ;;
242 hppa-*-openbsd*) fmt=elf em=hppa ;;
243 hppa-*-osf*) fmt=som em=hppa ;;
244 hppa-*-rtems*) fmt=elf em=hppa ;;
245 hppa-*-hpux11*) case ${cpu} in
246 hppa*64*) fmt=elf em=hppa64 ;;
247 hppa*) fmt=som em=hppa ;;
248 esac ;;
249 hppa-*-hpux*) fmt=som em=hppa ;;
250 hppa-*-mpeix*) fmt=som em=hppa ;;
251 hppa-*-bsd*) fmt=som em=hppa ;;
252 hppa-*-hiux*) fmt=som em=hppa ;;
253
254 h8300-*-rtems*) fmt=coff ;;
255 h8300-*-coff) fmt=coff ;;
256 h8300-*-elf) fmt=elf ;;
257 h8500-*-rtems*) fmt=coff ;;
258 h8500-*-coff) fmt=coff ;;
259
260 i370-*-elf* | i370-*-linux*) fmt=elf ;;
261 i386-ibm-aix*) fmt=coff em=i386aix ;;
262 i386-sequent-bsd*) fmt=aout em=dynix ;;
263 i386-*-beospe*) fmt=coff em=pe ;;
264 i386-*-beos*) fmt=elf ;;
265 i386-*-coff) fmt=coff ;;
266 i386-*-elf) fmt=elf ;;
267 i386-*-kaos*) fmt=elf ;;
268 i386-*-bsd*) fmt=aout em=386bsd ;;
269 i386-*-netbsd0.8) fmt=aout em=386bsd ;;
270 i386-*-netbsdpe*) fmt=coff em=pe ;;
271 i386-*-netbsd*-gnu* | \
272 i386-*-knetbsd*-gnu | \
273 i386-*-netbsdelf*) fmt=elf em=nbsd ;;
274 i386-*-*n*bsd*) case ${cpu} in
275 x86_64) fmt=elf em=nbsd ;;
276 *) fmt=aout em=nbsd ;;
277 esac ;;
278 i386-*-linux*aout*) fmt=aout em=linux ;;
279 i386-*-linux*oldld) fmt=aout em=linux ;;
280 i386-*-linux*coff*) fmt=coff em=linux ;;
281 i386-*-linux-gnu*) fmt=elf em=linux ;;
282 x86_64-*-linux-gnu*) fmt=elf em=linux ;;
283 i386-*-lynxos*) fmt=coff em=lynx ;;
284 changequote(,)dnl
285 i386-*-sysv[45]*) fmt=elf ;;
286 i386-*-solaris*) fmt=elf ;;
287 i386-*-freebsdaout*) fmt=aout em=386bsd ;;
288 i386-*-freebsd[12].*) fmt=aout em=386bsd ;;
289 i386-*-freebsd[12]) fmt=aout em=386bsd ;;
290 changequote([,])dnl
291 i386-*-freebsd* | i386-*-kfreebsd*-gnu)
292 fmt=elf em=freebsd ;;
293 i386-*-sysv*) fmt=coff ;;
294 i386-*-sco3.2v5*coff) fmt=coff ;;
295 i386-*-isc*) fmt=coff ;;
296 i386-*-sco3.2v5*) fmt=elf
297 if test ${this_target} = $target; then
298 AC_DEFINE(SCO_ELF, 1, [Define if defaulting to ELF on SCO 5.])
299 fi ;;
300 i386-*-sco3.2*) fmt=coff ;;
301 i386-*-vsta) fmt=aout ;;
302 i386-*-msdosdjgpp* \
303 | i386-*-go32* \
304 | i386-go32-rtems*) fmt=coff em=go32
305 AC_DEFINE(STRICTCOFF, 1, [Using strict COFF?]) ;;
306 i386-*-rtemself*) fmt=elf ;;
307 i386-*-rtemscoff*) fmt=coff ;;
308 i386-*-rtems*) fmt=elf ;;
309 i386-*-gnu*) fmt=elf ;;
310 i386-*-mach*) fmt=aout em=mach ;;
311 i386-*-msdos*) fmt=aout ;;
312 i386-*-moss*) fmt=elf ;;
313 i386-*-pe) fmt=coff em=pe ;;
314 i386-*-cygwin*) fmt=coff em=pe ;;
315 i386-*-interix*) fmt=coff em=interix ;;
316 i386-*-mingw32*) fmt=coff em=pe ;;
317 i386-*-nto-qnx*) fmt=elf ;;
318 i386-*-*nt*) fmt=coff em=pe ;;
319 i386-*-chaos) fmt=elf ;;
320
321 i860-*-*) fmt=elf endian=little
322 AC_MSG_WARN(GAS support for ${generic_target} is preliminary and a work in progress) ;;
323 i960-*-bout) fmt=bout ;;
324 i960-*-coff) fmt=coff em=ic960 ;;
325 i960-*-rtems*) fmt=coff em=ic960 ;;
326 i960-*-nindy*) fmt=bout ;;
327 i960-*-vxworks5.0) fmt=bout ;;
328 i960-*-vxworks5.*) fmt=coff em=ic960 ;;
329 i960-*-vxworks*) fmt=bout ;;
330 i960-*-elf*) fmt=elf ;;
331
332 ia64-*-elf*) fmt=elf ;;
333 ia64-*-aix*) fmt=elf em=ia64aix ;;
334 ia64-*-linux-gnu*) fmt=elf em=linux ;;
335 ia64-*-hpux*) fmt=elf em=hpux ;;
336 ia64-*-netbsd*) fmt=elf em=nbsd ;;
337
338 ip2k-*-*) fmt=elf ;;
339
340 iq2000-*-elf) fmt=elf bfd_gas=yes ;;
341
342 m32r-*-elf*) fmt=elf ;;
343 m32r-*-linux*) fmt=elf em=linux;;
344
345 m68hc11-*-* | m6811-*-*) fmt=elf ;;
346 m68hc12-*-* | m6812-*-*) fmt=elf ;;
347
348 m68k-*-vxworks*) fmt=aout em=sun3 ;;
349 m68k-ericsson-ose) fmt=aout em=sun3 ;;
350 m68k-*-sunos*) fmt=aout em=sun3 ;;
351 m68k-motorola-sysv*) fmt=coff em=delta ;;
352 m68k-bull-sysv3*) fmt=coff em=dpx2 ;;
353 m68k-apollo-*) fmt=coff em=apollo ;;
354 m68k-*-elf*) fmt=elf ;;
355 m68k-*-sysv4*) fmt=elf em=svr4 ;;
356 m68k-*-sysv*) fmt=coff ;;
357 m68k-*-coff | m68k-*-rtemscoff*) fmt=coff ;;
358 m68k-*-rtems*) fmt=elf ;;
359 m68k-*-hpux*) fmt=hp300 em=hp300 ;;
360 m68k-*-linux*aout*) fmt=aout em=linux ;;
361 m68k-*-linux-gnu*) fmt=elf em=linux ;;
362 m68k-*-uclinux*) fmt=elf ;;
363 m68k-*-gnu*) fmt=elf ;;
364 m68k-*-lynxos*) fmt=coff em=lynx ;;
365 m68k-*-netbsdelf*) fmt=elf em=nbsd ;;
366 m68k-*-netbsd*) fmt=aout em=nbsd bfd_gas=yes ;;
367 m68k-*-openbsd*) fmt=aout em=nbsd bfd_gas=yes ;;
368 m68k-apple-aux*) fmt=coff em=aux ;;
369 m68k-*-psos*) fmt=elf em=psos;;
370
371 m88k-motorola-sysv3*) fmt=coff em=delt88 ;;
372 m88k-*-coff*) fmt=coff ;;
373
374 mcore-*-elf) fmt=elf ;;
375 mcore-*-pe) fmt=coff em=pe bfd_gas=yes ;;
376
377 # don't change em like *-*-bsd does
378 mips-dec-openbsd*) fmt=elf endian=little ;;
379 mips-dec-bsd*) fmt=aout endian=little ;;
380 mips-sony-bsd*) fmt=ecoff ;;
381 mips-*-bsd*)
382 AC_MSG_ERROR(Unknown vendor for mips-bsd configuration.) ;;
383 mips-*-ultrix*) fmt=ecoff endian=little ;;
384 mips-*-osf*) fmt=ecoff endian=little ;;
385 mips-*-ecoff*) fmt=ecoff ;;
386 mips-*-pe*) fmt=coff endian=little em=pe ;;
387 mips-*-irix6*) fmt=elf em=irix ;;
388 mips-*-irix5*) fmt=elf em=irix ;;
389 mips-*-irix*) fmt=ecoff em=irix ;;
390 mips-*-lnews*) fmt=ecoff em=lnews ;;
391 mips-*-riscos*) fmt=ecoff ;;
392 mips*-*-linux*) fmt=elf em=tmips ;;
393 mips-*-sysv4*MP* | mips-*-gnu*) fmt=elf em=tmips ;;
394 mips-*-sysv*) fmt=ecoff ;;
395 mips-*-elf* | mips-*-rtems*) fmt=elf ;;
396 mips-*-netbsd*) fmt=elf ;;
397 mips-*-openbsd*) fmt=elf ;;
398
399 mmix-*-*) fmt=elf ;;
400 mn10200-*-*) fmt=elf ;;
401 mn10300-*-*) fmt=elf ;;
402 msp430-*-*) fmt=elf ;;
403 openrisc-*-*) fmt=elf ;;
404 or32-*-rtems*) fmt=coff ;;
405 or32-*-coff) fmt=coff ;;
406 or32-*-elf) fmt=elf ;;
407 pj*) fmt=elf ;;
408
409 ppc-*-pe | ppc-*-cygwin*) fmt=coff em=pe ;;
410 ppc-*-winnt*) fmt=coff em=pe ;;
411 changequote(,)dnl
412 ppc-*-aix5.[01]) fmt=coff em=aix5 ;;
413 changequote([,])dnl
414 ppc-*-aix5.*) fmt=coff em=aix5
415 AC_DEFINE(AIX_WEAK_SUPPORT, 1,
416 [Define if using AIX 5.2 value for C_WEAKEXT.])
417 ;;
418 ppc-*-aix*) fmt=coff ;;
419 ppc-*-beos*) fmt=coff ;;
420 ppc-*-*n*bsd* | ppc-*-elf*) fmt=elf ;;
421 ppc-*-eabi* | ppc-*-sysv4*) fmt=elf ;;
422 ppc-*-linux-gnu*) fmt=elf em=linux
423 case "$endian" in
424 big) ;;
425 *) AC_MSG_ERROR(GNU/Linux must be configured big endian) ;;
426 esac ;;
427 ppc-*-solaris*) fmt=elf
428 if test ${this_target} = $target; then
429 AC_DEFINE(TARGET_SOLARIS_COMMENT, 1,
430 [Define if default target is PowerPC Solaris.])
431 fi
432 if test x${endian} = xbig; then
433 AC_MSG_ERROR(Solaris must be configured little endian)
434 fi ;;
435 ppc-*-rtems*) fmt=elf ;;
436 ppc-*-macos*) fmt=coff em=macos ;;
437 ppc-*-netware*) fmt=elf em=ppcnw ;;
438 ppc-**-nto*) fmt=elf ;;
439 ppc-*-kaos*) fmt=elf ;;
440
441 s390x-*-linux-gnu*) fmt=elf em=linux ;;
442 s390-*-linux-gnu*) fmt=elf em=linux ;;
443
444 sh*-*-linux*) fmt=elf em=linux
445 case ${cpu} in
446 sh*eb) endian=big ;;
447 *) endian=little ;;
448 esac ;;
449 sh5*-*-netbsd*) fmt=elf em=nbsd ;;
450 sh64*-*-netbsd*) fmt=elf em=nbsd ;;
451 sh*-*-netbsdelf*) fmt=elf em=nbsd ;;
452 sh-*-elf*) fmt=elf ;;
453 sh-*-coff*) fmt=coff ;;
454 sh-*-nto*) fmt=elf ;;
455 sh-*-pe*) fmt=coff em=pe bfd_gas=yes endian=little ;;
456 sh-*-rtemscoff*) fmt=coff ;;
457 sh-*-rtems*) fmt=elf ;;
458 sh-*-kaos*) fmt=elf ;;
459 shle*-*-kaos*) fmt=elf ;;
460 sh64-*-elf*) fmt=elf ;;
461
462 ns32k-pc532-mach*) fmt=aout em=pc532mach ;;
463 ns32k-pc532-ux*) fmt=aout em=pc532mach ;;
464 ns32k-pc532-lites*) fmt=aout em=nbsd532 ;;
465 ns32k-*-*n*bsd*) fmt=aout em=nbsd532 ;;
466
467 sparc-*-rtemsaout*) fmt=aout ;;
468 sparc-*-rtemself*) fmt=elf ;;
469 sparc-*-rtems*) fmt=elf ;;
470 sparc-*-sunos4*) fmt=aout em=sun3 ;;
471 sparc-*-aout | sparc*-*-vxworks*) fmt=aout em=sparcaout ;;
472 sparc-*-coff) fmt=coff ;;
473 sparc-*-linux*aout*) fmt=aout em=linux ;;
474 sparc-*-linux-gnu*) fmt=elf em=linux ;;
475 sparc-*-lynxos*) fmt=coff em=lynx ;;
476 sparc-fujitsu-none) fmt=aout ;;
477 sparc-*-elf) fmt=elf ;;
478 sparc-*-sysv4*) fmt=elf ;;
479 sparc-*-solaris*) fmt=elf ;;
480 sparc-*-netbsdelf*) fmt=elf em=nbsd ;;
481 sparc-*-*n*bsd*) case ${cpu} in
482 sparc64) fmt=elf em=nbsd ;;
483 *) fmt=aout em=nbsd ;;
484 esac ;;
485 strongarm-*-coff) fmt=coff ;;
486 strongarm-*-elf) fmt=elf ;;
487 strongarm-*-kaos*) fmt=elf ;;
488 xscale-*-coff) fmt=coff ;;
489 xscale-*-elf) fmt=elf ;;
490
491 tic30-*-*aout*) fmt=aout bfd_gas=yes ;;
492 tic30-*-*coff*) fmt=coff bfd_gas=yes ;;
493 tic4x-*-* | c4x-*-*) fmt=coff bfd_gas=yes ;;
494 tic54x-*-* | c54x*-*-*) fmt=coff bfd_gas=yes need_libm=yes;;
495 tic80-*-*) fmt=coff ;;
496
497 v850-*-*) fmt=elf ;;
498 v850e-*-*) fmt=elf ;;
499 v850ea-*-*) fmt=elf ;;
500
501 vax-*-netbsdelf*) fmt=elf em=nbsd ;;
502 vax-*-netbsd*) fmt=aout em=nbsd ;;
503 vax-*-bsd* | vax-*-ultrix*) fmt=aout ;;
504 vax-*-linux-gnu*) fmt=elf em=linux bfd_gas=yes ;;
505 vax-*-vms) fmt=vms ;;
506
507 w65-*-*) fmt=coff ;;
508
509 xstormy16-*-*) fmt=elf ;;
510
511 xtensa-*-*) fmt=elf ;;
512
513 z8k-*-coff | z8k-*-sim) fmt=coff ;;
514
515 *-*-aout | *-*-scout) fmt=aout ;;
516 *-*-freebsd* | *-*-kfreebsd*-gnu) fmt=elf em=freebsd ;;
517 *-*-nindy*) fmt=bout ;;
518 *-*-bsd*) fmt=aout em=sun3 ;;
519 *-*-generic) fmt=generic ;;
520 *-*-xray | *-*-hms) fmt=coff ;;
521 *-*-sim) fmt=coff ;;
522 *-*-elf | *-*-sysv4* | *-*-solaris*) fmt=elf dev=yes ;;
523 *-*-aros*) fmt=elf em=linux bfd_gas=yes ;;
524 *-*-vxworks | *-*-windiss) fmt=elf ;;
525 *-*-netware) fmt=elf ;;
526 esac
527
528 if test ${this_target} = $target ; then
529 endian_def=
530 if test x${endian} = xbig; then
531 endian_def=1
532 elif test x${endian} = xlittle; then
533 endian_def=0
534 fi
535 if test x${endian_def} != x; then
536 AC_DEFINE_UNQUOTED(TARGET_BYTES_BIG_ENDIAN, $endian_def,
537 [Define as 1 if big endian.])
538 fi
539 fi
540
541 case ${cpu_type}-${fmt} in
542 alpha*-* | arm-* | i386-* | ia64*-* | mips-* | ns32k-* \
543 | pdp11-* | ppc-* | sparc-* | strongarm-* | xscale-* \
544 | *-elf | *-ecoff | *-som)
545 bfd_gas=yes ;;
546 esac
547
548 # Other random stuff.
549
550 case ${cpu_type} in
551 mips)
552 # Set mips_cpu to the name of the default CPU.
553 case ${target_cpu} in
554 mips | mipsbe | mipseb | mipsle | mipsel | mips64 | mips64el)
555 mips_cpu=from-abi
556 ;;
557 mipsisa32 | mipsisa32el)
558 mips_cpu=mips32
559 ;;
560 mipsisa32r2 | mipsisa32r2el)
561 mips_cpu=mips32r2
562 ;;
563 mipsisa64 | mipsisa64el)
564 mips_cpu=mips64
565 ;;
566 mipsisa64r2 | mipsisa64r2el)
567 mips_cpu=mips64r2
568 ;;
569 mipstx39 | mipstx39el)
570 mips_cpu=r3900
571 ;;
572 mips64vr | mips64vrel)
573 mips_cpu=vr4100
574 ;;
575 mipsisa32r2* | mipsisa64r2*)
576 changequote(,)dnl
577 mips_cpu=`echo $target_cpu | sed -e 's/[a-z]*..r2//' -e 's/el$//'`
578 changequote([,])dnl
579 ;;
580 mips64* | mipsisa64* | mipsisa32*)
581 changequote(,)dnl
582 mips_cpu=`echo $target_cpu | sed -e 's/[a-z]*..//' -e 's/el$//'`
583 changequote([,])dnl
584 ;;
585 *)
586 AC_ERROR($target_cpu isn't a supported MIPS CPU name)
587 ;;
588 esac
589 # See whether it's appropriate to set E_MIPS_ABI_O32 for o32
590 # binaries. It's a GNU extension that some OSes don't understand.
591 # The value only matters on ELF targets.
592 case ${target} in
593 *-*-irix*)
594 use_e_mips_abi_o32=0
595 ;;
596 *)
597 use_e_mips_abi_o32=1
598 ;;
599 esac
600 # Decide whether to generate 32-bit or 64-bit code by default.
601 # Used to resolve -march=from-abi when an embedded ABI is selected.
602 case ${target} in
603 mips64*-*-* | mipsisa64*-*-*)
604 mips_default_64bit=1
605 ;;
606 *)
607 mips_default_64bit=0
608 ;;
609 esac
610 # Decide which ABI to target by default.
611 case ${target} in
612 mips64*-linux* | mips-sgi-irix6*)
613 mips_default_abi=N32_ABI
614 ;;
615 mips*-linux*)
616 mips_default_abi=O32_ABI
617 ;;
618 *)
619 mips_default_abi=NO_ABI
620 ;;
621 esac
622 AC_DEFINE_UNQUOTED(MIPS_CPU_STRING_DEFAULT, "$mips_cpu",
623 [Default CPU for MIPS targets. ])
624 AC_DEFINE_UNQUOTED(USE_E_MIPS_ABI_O32, $use_e_mips_abi_o32,
625 [Allow use of E_MIPS_ABI_O32 on MIPS targets. ])
626 AC_DEFINE_UNQUOTED(MIPS_DEFAULT_64BIT, $mips_default_64bit,
627 [Generate 64-bit code by default on MIPS targets. ])
628 AC_DEFINE_UNQUOTED(MIPS_DEFAULT_ABI, $mips_default_abi,
629 [Choose a default ABI for MIPS targets. ])
630 ;;
631 esac
632
633 # Do we need the opcodes library?
634 case ${cpu_type} in
635 vax | i386 | tic30)
636 ;;
637
638 *)
639 need_opcodes=yes
640
641 case "${enable_shared}" in
642 yes) shared_opcodes=true ;;
643 *opcodes*) shared_opcodes=true ;;
644 *) shared_opcodes=false ;;
645 esac
646 if test "${shared_opcodes}" = "true"; then
647 # A shared libopcodes must be linked against libbfd.
648 need_bfd=yes
649 fi
650 ;;
651 esac
652
653 # Any other special object files needed ?
654 case ${cpu_type} in
655 fr30 | ip2k | iq2000 | m32r | openrisc)
656 using_cgen=yes
657 ;;
658
659 frv)
660 using_cgen=yes
661 ;;
662 m68k)
663 case ${extra_objects} in
664 *m68k-parse.o*) ;;
665 *) extra_objects="$extra_objects m68k-parse.o" ;;
666 esac
667 ;;
668
669 mips)
670 echo ${extra_objects} | grep -s "itbl-parse.o"
671 if test $? -ne 0 ; then
672 extra_objects="$extra_objects itbl-parse.o"
673 fi
674
675 echo ${extra_objects} | grep -s "itbl-lex.o"
676 if test $? -ne 0 ; then
677 extra_objects="$extra_objects itbl-lex.o"
678 fi
679
680 echo ${extra_objects} | grep -s "itbl-ops.o"
681 if test $? -ne 0 ; then
682 extra_objects="$extra_objects itbl-ops.o"
683 fi
684 ;;
685
686 i386 | s390 | sparc)
687 if test $this_target = $target ; then
688 AC_DEFINE_UNQUOTED(DEFAULT_ARCH, "${arch}", [Default architecture.])
689 fi
690 ;;
691
692 xstormy16)
693 using_cgen=yes
694 ;;
695
696 xtensa)
697 echo ${extra_objects} | grep -s "xtensa-relax.o"
698 if test $? -ne 0 ; then
699 extra_objects="$extra_objects xtensa-relax.o"
700 fi
701 ;;
702
703 *)
704 ;;
705 esac
706
707 if test $using_cgen = yes ; then
708 case "x${extra_objects}" in
709 *cgen.o*) ;;
710 *) extra_objects="$extra_objects cgen.o" ;;
711 esac
712 fi
713
714 # See if we really can support this configuration with the emulation code.
715
716 if test $this_target = $target ; then
717 primary_bfd_gas=$bfd_gas
718 obj_format=$fmt
719 te_file=$em
720
721 if test $bfd_gas = no ; then
722 # Can't support other configurations this way.
723 break
724 fi
725 elif test $bfd_gas = no ; then
726 # Can't support this configuration.
727 break
728 fi
729
730 # From target name and format, produce a list of supported emulations.
731
732 case ${generic_target}-${fmt} in
733 mips-*-irix5*-*) emulation="mipsbelf mipslelf mipself mipsbecoff mipslecoff mipsecoff" ;;
734 mips*-*-linux*-*) case "$endian" in
735 big) emulation="mipsbelf mipslelf mipself" ;;
736 *) emulation="mipslelf mipsbelf mipself" ;;
737 esac ;;
738 mips-*-lnews*-ecoff) ;;
739 mips-*-*-ecoff) case "$endian" in
740 big) emulation="mipsbecoff mipslecoff mipsecoff" ;;
741 *) emulation="mipslecoff mipsbecoff mipsecoff" ;;
742 esac ;;
743 mips-*-*-elf) case "$endian" in
744 big) emulation="mipsbelf mipslelf mipself" ;;
745 *) emulation="mipslelf mipsbelf mipself" ;;
746 esac ;;
747 mips-*-sysv4*MP*-*) emulation="mipsbelf mipslelf mipself mipsbecoff mipslecoff mipsecoff" ;;
748 # i386-pc-pe-coff != i386-pc-coff.
749 i386-*-pe-coff) ;;
750 # Uncommenting the next line will turn on support for i386 AOUT
751 # for the default linux configuration
752 # i386-*-linux*-elf) emulation="i386elf i386aout" ;;
753 #
754 i386-*-aout) emulation="i386aout" ;;
755 i386-*-coff) emulation="i386coff" ;;
756 i386-*-elf) emulation="i386elf" ;;
757
758 # Always all formats. The first stated emulation becomes the default.
759 cris-*-*aout*) emulation="crisaout criself" ;;
760 cris-*-*) emulation="criself crisaout" ;;
761 esac
762
763 emulations="$emulations $emulation"
764
765 done
766
767 # Turn on all targets if possible
768 if test ${all_targets} = "yes"; then
769 case ${target_cpu_type} in
770 i386)
771 case ${obj_format} in
772 aout)
773 emulations="$emulations i386coff i386elf"
774 ;;
775 coff)
776 emulations="$emulations i386aout i386elf"
777 ;;
778 elf)
779 emulations="$emulations i386aout i386coff"
780 ;;
781 esac
782 ;;
783 esac
784 fi
785
786 # Assign floating point type. Most processors with FP support
787 # IEEE FP. On those that don't support FP at all, usually IEEE
788 # is emulated.
789 case ${target_cpu} in
790 vax | tahoe ) atof=${target_cpu} ;;
791 pdp11) atof=vax ;;
792 *) atof=ieee ;;
793 esac
794
795 case "${obj_format}" in
796 "") AC_MSG_ERROR(GAS does not know what format to use for target ${target}) ;;
797 esac
798
799 # Unfortunately the cpu in cpu-opc.h file isn't always $(TARGET_CPU).
800 cgen_cpu_prefix=""
801 if test $using_cgen = yes ; then
802 case ${target_cpu} in
803 *) cgen_cpu_prefix=${target_cpu} ;;
804 esac
805 AC_SUBST(cgen_cpu_prefix)
806 AC_DEFINE(USING_CGEN, 1, [Using cgen code?])
807 fi
808
809 dnl
810 dnl Make sure the desired support files exist.
811 dnl
812
813 if test ! -r ${srcdir}/config/tc-${target_cpu_type}.c; then
814 AC_MSG_ERROR(GAS does not support target CPU ${target_cpu_type})
815 fi
816
817 if test ! -r ${srcdir}/config/obj-${obj_format}.c; then
818 AC_MSG_ERROR(GAS does not have support for object file format ${obj_format})
819 fi
820
821 case ${user_bfd_gas}-${primary_bfd_gas} in
822 yes-yes | no-no)
823 # We didn't override user's choice.
824 ;;
825 no-yes)
826 AC_MSG_WARN(Use of BFD is required for ${target}; overriding config options.)
827 ;;
828 no-preferred)
829 primary_bfd_gas=no
830 ;;
831 *-preferred)
832 primary_bfd_gas=yes
833 ;;
834 yes-*)
835 primary_bfd_gas=yes
836 ;;
837 -*)
838 # User specified nothing.
839 ;;
840 esac
841
842 # Some COFF configurations want these random other flags set.
843 case ${obj_format} in
844 coff)
845 case ${target_cpu_type} in
846 i386) AC_DEFINE(I386COFF, 1, [Using i386 COFF?]) ;;
847 m68k) AC_DEFINE(M68KCOFF, 1, [Using m68k COFF?]) ;;
848 m88k) AC_DEFINE(M88KCOFF, 1, [Using m88k COFF?]) ;;
849 esac
850 ;;
851 esac
852
853 # Getting this done right is going to be a bitch. Each configuration specified
854 # with --enable-targets=... should be checked for environment, format, cpu, and
855 # bfd_gas setting.
856 #
857 # For each configuration, the necessary object file support code must be linked
858 # in. This might be only one, it might be up to four. The necessary emulation
859 # code needs to be provided, too.
860 #
861 # And then there's "--enable-targets=all"....
862 #
863 # For now, just always do it for MIPS ELF or ECOFF configurations. Sigh.
864
865 formats="${obj_format}"
866 emfiles=""
867 EMULATIONS=""
868 GAS_UNIQ(emulations)
869 for em in . $emulations ; do
870 case $em in
871 .) continue ;;
872 mipsbelf | mipslelf | mipself)
873 fmt=elf file=mipself ;;
874 mipsbecoff | mipslecoff | mipsecoff)
875 fmt=ecoff file=mipsecoff ;;
876 *coff)
877 fmt=coff file=$em ;;
878 *aout)
879 fmt=aout file=$em ;;
880 *elf)
881 fmt=elf file=$em ;;
882 esac
883 formats="$formats $fmt"
884 emfiles="$emfiles e-$file.o"
885 EMULATIONS="$EMULATIONS &$em,"
886 done
887 GAS_UNIQ(formats)
888 GAS_UNIQ(emfiles)
889 if test `set . $formats ; shift ; echo $#` -gt 1 ; then
890 for fmt in $formats ; do
891 case $fmt in
892 aout) AC_DEFINE(OBJ_MAYBE_AOUT, 1, [a.out support?]) ;;
893 bout) AC_DEFINE(OBJ_MAYBE_BOUT, 1, [b.out support?]) ;;
894 coff) AC_DEFINE(OBJ_MAYBE_COFF, 1, [COFF support?]) ;;
895 ecoff) AC_DEFINE(OBJ_MAYBE_ECOFF, 1, [ECOFF support?]) ;;
896 elf) AC_DEFINE(OBJ_MAYBE_ELF, 1, [ELF support?]) ;;
897 generic) AC_DEFINE(OBJ_MAYBE_GENERIC, 1, [generic support?]) ;;
898 hp300) AC_DEFINE(OBJ_MAYBE_HP300, 1, [HP300 support?]) ;;
899 ieee) AC_DEFINE(OBJ_MAYBE_IEEE, 1, [IEEE support?]) ;;
900 som) AC_DEFINE(OBJ_MAYBE_SOM, 1, [SOM support?]) ;;
901 vms) AC_DEFINE(OBJ_MAYBE_VMS, 1, [VMS support?]) ;;
902 esac
903 extra_objects="$extra_objects obj-$fmt.o"
904 done
905 obj_format=multi
906 fi
907 if test `set . $emfiles ; shift ; echo $#` -gt 0 ; then
908 DEFAULT_EMULATION=`set . $emulations ; echo $2`
909 # e-mips* has more than one emulation per file, e-i386* has just one at the
910 # moment. If only one emulation is specified, then don't define
911 # USE_EMULATIONS or include any of the e-files as they will only be bloat.
912 case "${obj_format}${emfiles}" in
913 multi* | *mips*)
914 extra_objects="$extra_objects $emfiles"
915 AC_DEFINE(USE_EMULATIONS, 1, [Use emulation support?]) ;;
916 esac
917 fi
918 AC_SUBST(extra_objects)
919 AC_DEFINE_UNQUOTED(EMULATIONS, $EMULATIONS, [Supported emulations.])
920 AC_DEFINE_UNQUOTED(DEFAULT_EMULATION, "$DEFAULT_EMULATION",
921 [Default emulation.])
922
923 case ${primary_bfd_gas}-${target_cpu_type}-${obj_format} in
924 yes-*-coff) need_bfd=yes ;;
925 no-*-coff) need_bfd=yes
926 AC_DEFINE(MANY_SEGMENTS, 1, [old COFF support?]) ;;
927 esac
928
929 reject_dev_configs=yes
930
931 case ${reject_dev_configs}-${dev} in
932 yes-yes) # Oops.
933 AC_MSG_ERROR(GAS does not support the ${generic_target} configuration.)
934 ;;
935 esac
936
937 AC_SUBST(target_cpu_type)
938 AC_SUBST(obj_format)
939 AC_SUBST(te_file)
940 AC_SUBST(install_tooldir)
941 AC_SUBST(atof)
942 dnl AC_SUBST(emulation)
943
944 case "${primary_bfd_gas}" in
945 yes) AC_DEFINE(BFD_ASSEMBLER, 1, [Use BFD interface?])
946 need_bfd=yes ;;
947 esac
948
949 # do we need the opcodes library?
950 case "${need_opcodes}" in
951 yes)
952 OPCODES_LIB=../opcodes/libopcodes.la
953 ;;
954 esac
955
956 case "${need_bfd}" in
957 yes)
958 BFDLIB=../bfd/libbfd.la
959 BFDVER_H=../bfd/bfdver.h
960 ALL_OBJ_DEPS="$ALL_OBJ_DEPS"' ../bfd/bfd.h $(INCDIR)/symcat.h'
961 ;;
962 esac
963
964 AC_SUBST(BFDLIB)
965 AC_SUBST(OPCODES_LIB)
966
967 AC_SUBST(BFDVER_H)
968 AC_SUBST(ALL_OBJ_DEPS)
969
970 AC_DEFINE_UNQUOTED(TARGET_ALIAS, "${target_alias}", [Target alias.])
971 AC_DEFINE_UNQUOTED(TARGET_CANONICAL, "${target}", [Canonical target.])
972 AC_DEFINE_UNQUOTED(TARGET_CPU, "${target_cpu}", [Target CPU.])
973 AC_DEFINE_UNQUOTED(TARGET_VENDOR, "${target_vendor}", [Target vendor.])
974 AC_DEFINE_UNQUOTED(TARGET_OS, "${target_os}", [Target OS.])
975
976 AC_PROG_CC
977
978 AC_PROG_YACC
979 AM_PROG_LEX
980
981 ALL_LINGUAS="fr tr es"
982 CY_GNU_GETTEXT
983
984 AM_MAINTAINER_MODE
985 AC_EXEEXT
986
987 AC_CHECK_HEADERS(string.h stdlib.h memory.h strings.h unistd.h stdarg.h varargs.h errno.h sys/types.h)
988
989 # Put this here so that autoconf's "cross-compiling" message doesn't confuse
990 # people who are not cross-compiling but are compiling cross-assemblers.
991 AC_MSG_CHECKING(whether compiling a cross-assembler)
992 if test "${host}" = "${target}"; then
993 cross_gas=no
994 else
995 cross_gas=yes
996 AC_DEFINE(CROSS_COMPILE, 1, [Compiling cross-assembler?])
997 fi
998 AC_MSG_RESULT($cross_gas)
999
1000 dnl ansidecl.h will deal with const
1001 dnl AC_CONST
1002 AC_FUNC_ALLOCA
1003 AC_C_INLINE
1004
1005 # VMS doesn't have unlink.
1006 AC_CHECK_FUNCS(unlink remove, break)
1007
1008 # Some systems don't have sbrk().
1009 AC_CHECK_FUNCS(sbrk)
1010
1011 # do we need the math library?
1012 case "${need_libm}" in
1013 yes)
1014 AC_CHECK_LIBM
1015 AC_SUBST(LIBM)
1016 ;;
1017 esac
1018
1019 # Some non-ANSI preprocessors botch requoting inside strings. That's bad
1020 # enough, but on some of those systems, the assert macro relies on requoting
1021 # working properly!
1022 GAS_WORKING_ASSERT
1023
1024 # On some systems, the system header files may not declare malloc, realloc,
1025 # and free. There are places where gas needs these functions to have been
1026 # declared -- such as when taking their addresses.
1027 gas_test_headers="
1028 #ifdef HAVE_MEMORY_H
1029 #include <memory.h>
1030 #endif
1031 #ifdef HAVE_STRING_H
1032 #include <string.h>
1033 #else
1034 #ifdef HAVE_STRINGS_H
1035 #include <strings.h>
1036 #endif
1037 #endif
1038 #ifdef HAVE_STDLIB_H
1039 #include <stdlib.h>
1040 #endif
1041 #ifdef HAVE_UNISTD_H
1042 #include <unistd.h>
1043 #endif
1044 "
1045 GAS_CHECK_DECL_NEEDED(strstr, f, char *(*f)(), $gas_test_headers)
1046 GAS_CHECK_DECL_NEEDED(malloc, f, char *(*f)(), $gas_test_headers)
1047 GAS_CHECK_DECL_NEEDED(free, f, void (*f)(), $gas_test_headers)
1048 GAS_CHECK_DECL_NEEDED(sbrk, f, char *(*f)(), $gas_test_headers)
1049 GAS_CHECK_DECL_NEEDED(environ, f, char **f, $gas_test_headers)
1050
1051 # Does errno.h declare errno, or do we have to add a separate declaration
1052 # for it?
1053 GAS_CHECK_DECL_NEEDED(errno, f, int f, [
1054 #ifdef HAVE_ERRNO_H
1055 #include <errno.h>
1056 #endif
1057 ])
1058
1059 dnl This must come last.
1060
1061 dnl We used to make symlinks to files in the source directory, but now
1062 dnl we just use the right name for .c files, and create .h files in
1063 dnl the build directory which include the right .h file. Make sure
1064 dnl the old symlinks don't exist, so that a reconfigure in an existing
1065 dnl directory behaves reasonably.
1066
1067 AC_CONFIG_FILES(Makefile doc/Makefile po/Makefile.in:po/Make-in)
1068 AC_CONFIG_COMMANDS([default],
1069 [rm -f targ-cpu.c targ-cpu.h obj-format.h obj-format.c targ-env.h atof-targ.c itbl-cpu.h
1070 echo '#include "tc-'"${target_cpu_type}"'.h"' > targ-cpu.h
1071 echo '#include "obj-'"${obj_format}"'.h"' > obj-format.h
1072 echo '#include "te-'"${te_file}"'.h"' > targ-env.h
1073 echo '#include "itbl-'"${target_cpu_type}"'.h"' > itbl-cpu.h
1074 if test "x$cgen_cpu_prefix" != x ; then
1075 echo '#include "opcodes/'"${cgen_cpu_prefix}"'-desc.h"' > cgen-desc.h
1076 fi
1077
1078 sed -e '/POTFILES =/r po/POTFILES' po/Makefile.in > po/Makefile],
1079 [target_cpu_type=${target_cpu_type}
1080 cgen_cpu_prefix=${cgen_cpu_prefix}
1081 obj_format=${obj_format}
1082 te_file=${te_file}])
1083
1084 AC_OUTPUT