1 dnl Process this file with autoconf to produce a configure script.
3 dnl And be careful when changing it! If you must add tests with square
4 dnl brackets, be sure changequote invocations surround it.
7 dnl v2.5 needed for --bindir et al
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/../.
19 BFD_VERSION=`sed -n -e 's/^.._INIT_AUTOMAKE.*,[ ]*\([^ ]*\)[ ]*).*/\1/p' < ${srcdir}/../bfd/configure.in`
21 AM_INIT_AUTOMAKE(gas, ${BFD_VERSION})
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) ;;
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')
38 no) enable_targets= ;;
39 *) enable_targets=$enableval ;;
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]) ;;
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
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"`;;
63 if test x"$silent" != x"yes" && test x"$build_warnings" != x""; then
64 echo "Setting warning flags = $build_warnings" 6>&1
67 if test "x${build_warnings}" != x -a "x$GCC" = xyes ; then
68 WARN_CFLAGS="${build_warnings}"
72 # Generate a header file
73 AM_CONFIG_HEADER(config.h:config.in)
75 # If we are on a DOS filesystem, we must use gdb.ini rather than
78 *-*-msdos* | *-*-go32* | *-*-mingw32* | *-*-windows*)
80 AC_CONFIG_FILES(gdb.ini:gdbinit.in)
84 AC_CONFIG_FILES(.gdbinit:gdbinit.in)
91 # Makefile target for installing gas in $(tooldir)/bin.
92 install_tooldir=install-exec-tooldir
96 if test -n "$enable_targets" ; then
97 for t in `echo $enable_targets | sed 's/,/ /g'`; do
98 if test $t = "all"; then
102 result=`$ac_config_sub $t 2>/dev/null`
103 if test -n "$result" ; then
104 canon_targets="$canon_targets $result"
106 # # Permit "all", etc. We don't support it yet though.
107 # canon_targets="$canon_targets $t"
110 GAS_UNIQ(canon_targets)
115 for this_target in $target $canon_targets ; do
118 eval `echo $this_target | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/cpu=\1 vendor=\2 os=\3/'`
121 # Check for architecture variants.
122 # Note: This table is alpha-sorted, please try to keep it that way.
126 am33_2.0) cpu_type=mn10300 endian=little ;;
127 alpha*) cpu_type=alpha ;;
128 arm*be|xscale*be|strongarm*be | \
129 arm*b|xscale*b|strongarm*b) cpu_type=arm endian=big ;;
130 arm*|xscale*|strongarm*) cpu_type=arm endian=little ;;
131 c4x*) cpu_type=tic4x ;;
132 crisv32) cpu_type=cris arch=crisv32
133 AC_DEFINE_UNQUOTED(DEFAULT_CRIS_ARCH, $arch,
134 [Default CRIS architecture.])
136 crx*) cpu_type=crx endian=little ;;
137 hppa*) cpu_type=hppa ;;
139 i[3-7]86) cpu_type=i386 arch=i386;;
140 ia64) cpu_type=ia64 ;;
141 ip2k) cpu_type=ip2k endian=big ;;
142 iq2000) cpu_type=iq2000 endian=big ;;
143 m32r) cpu_type=m32r target_cpu=m32r endian=big ;;
144 m32rle) cpu_type=m32r target_cpu=m32r endian=little ;;
145 m6811|m6812|m68hc12) cpu_type=m68hc11 ;;
146 m680[012346]0) cpu_type=m68k ;;
148 m68008) cpu_type=m68k ;;
149 m683??) cpu_type=m68k ;;
150 m5200) cpu_type=m68k ;;
151 m8*) cpu_type=m88k ;;
152 maxq) cpu_type=maxq ;;
153 mips*el) cpu_type=mips endian=little ;;
154 mips*) cpu_type=mips endian=big ;;
155 or32*) cpu_type=or32 endian=big ;;
156 pjl*) cpu_type=pj endian=little ;;
157 pj*) cpu_type=pj endian=big ;;
158 powerpc*le*) cpu_type=ppc endian=little ;;
159 powerpc*) cpu_type=ppc endian=big ;;
160 rs6000*) cpu_type=ppc ;;
161 s390x*) cpu_type=s390 arch=s390x ;;
162 s390*) cpu_type=s390 arch=s390 ;;
163 sh5*) cpu_type=sh64 endian=big ;;
164 sh5le*) cpu_type=sh64 endian=little ;;
165 sh64*) cpu_type=sh64 endian=big ;;
166 sh64le*) cpu_type=sh64 endian=little ;;
167 sh*le) cpu_type=sh endian=little ;;
168 sh*) cpu_type=sh endian=big ;;
169 sparclite*) cpu_type=sparc arch=sparclite ;;
170 sparclet*) cpu_type=sparc arch=sparclet ;;
171 sparc64*) cpu_type=sparc arch=v9-64 ;;
172 sparc86x*) cpu_type=sparc arch=sparc86x ;;
173 sparc*) cpu_type=sparc arch=sparclite ;; # ??? See tc-sparc.c.
174 v850*) cpu_type=v850 ;;
175 x86_64) cpu_type=i386 arch=x86_64;;
176 xtensa*) cpu_type=xtensa arch=xtensa ;;
177 *) cpu_type=${cpu} ;;
180 if test ${this_target} = $target ; then
181 target_cpu_type=${cpu_type}
182 elif test ${target_cpu_type} != ${cpu_type} ; then
186 generic_target=${cpu_type}-$vendor-$os
191 # Assign object format.
192 # Note: This table is alpha-sorted, please try to keep it that way.
193 case ${generic_target} in
194 a29k-*-coff) fmt=coff ;;
195 a29k-amd-udi) fmt=coff ;;
196 a29k-amd-ebmon) fmt=coff ;;
197 a29k-nyu-sym1) fmt=coff ;;
198 a29k-*-rtems*) fmt=coff ;;
199 a29k-*-vxworks*) fmt=coff ;;
201 alpha*-*-*vms*) fmt=evax ;;
202 alpha*-*-osf*) fmt=ecoff ;;
203 alpha*-*-linuxecoff*) fmt=ecoff ;;
204 alpha*-*-linux-gnu*) fmt=elf em=linux ;;
205 alpha*-*-netbsd*) fmt=elf em=nbsd ;;
206 alpha*-*-openbsd*) fmt=elf em=obsd ;;
208 arc-*-elf*) fmt=elf ;;
210 arm-*-aout) fmt=aout ;;
211 arm-*-coff | thumb-*-coff) fmt=coff ;;
212 arm-*-rtems* | thumb-*-rtems*) fmt=elf ;;
213 arm-*-elf | thumb-*-elf) fmt=elf ;;
214 arm*-*-eabi*) fmt=elf ;;
215 arm*-*-symbianelf*) fmt=elf em=symbian ;;
216 arm-*-kaos*) fmt=elf ;;
217 arm*-*-conix*) fmt=elf ;;
218 arm-*-linux*aout*) fmt=aout em=linux ;;
219 arm*-*-linux-gnu*) fmt=elf em=linux ;;
220 arm*-*-uclinux*) fmt=elf em=linux ;;
221 arm-*-netbsdelf*) fmt=elf em=nbsd ;;
222 arm-*-*n*bsd*) fmt=aout em=nbsd ;;
223 arm-**-nto*) fmt=elf ;;
224 arm-epoc-pe | thumb-epoc-pe) fmt=coff em=epoc-pe ;;
225 arm-wince-pe | arm-*-wince) fmt=coff em=wince-pe ;;
226 arm-*-pe | thumb-*-pe) fmt=coff em=pe ;;
227 arm-*-riscix*) fmt=aout em=riscix ;;
231 cris-*-linux-gnu* | crisv32-*-linux-gnu*)
232 fmt=multi bfd_gas=yes em=linux ;;
233 cris-*-* | crisv32-*-*) fmt=multi bfd_gas=yes ;;
235 crx-*-elf*) fmt=elf ;;
242 frv-*-*linux*) fmt=elf em=linux;;
245 hppa-*-linux*) case ${cpu} in
246 hppa*64*) fmt=elf em=hppalinux64;;
247 hppa*) fmt=elf em=linux;;
249 hppa-*-*elf*) fmt=elf em=hppa ;;
250 hppa-*-lites*) fmt=elf em=hppa ;;
251 hppa-*-netbsd*) fmt=elf em=nbsd ;;
252 hppa-*-openbsd*) fmt=elf em=hppa ;;
253 hppa-*-osf*) fmt=som em=hppa ;;
254 hppa-*-rtems*) fmt=elf em=hppa ;;
255 hppa-*-hpux11*) case ${cpu} in
256 hppa*64*) fmt=elf em=hppa64 ;;
257 hppa*) fmt=som em=hppa ;;
259 hppa-*-hpux*) fmt=som em=hppa ;;
260 hppa-*-mpeix*) fmt=som em=hppa ;;
261 hppa-*-bsd*) fmt=som em=hppa ;;
262 hppa-*-hiux*) fmt=som em=hppa ;;
264 h8300-*-rtems*) fmt=coff ;;
265 h8300-*-coff) fmt=coff ;;
266 h8300-*-elf) fmt=elf ;;
267 h8500-*-rtems*) fmt=coff ;;
268 h8500-*-coff) fmt=coff ;;
270 i370-*-elf* | i370-*-linux*) fmt=elf ;;
271 i386-ibm-aix*) fmt=coff em=i386aix ;;
272 i386-sequent-bsd*) fmt=aout em=dynix ;;
273 i386-*-beospe*) fmt=coff em=pe ;;
274 i386-*-beos*) fmt=elf ;;
275 i386-*-coff) fmt=coff ;;
276 i386-*-elf) fmt=elf ;;
277 i386-*-kaos*) fmt=elf ;;
278 i386-*-bsd*) fmt=aout em=386bsd ;;
279 i386-*-netbsd0.8) fmt=aout em=386bsd ;;
280 i386-*-netbsdpe*) fmt=coff em=pe ;;
281 i386-*-netbsd*-gnu* | \
282 i386-*-knetbsd*-gnu | \
283 i386-*-netbsdelf*) fmt=elf em=nbsd ;;
284 i386-*-*n*bsd*) case ${cpu} in
285 x86_64) fmt=elf em=nbsd ;;
286 *) fmt=aout em=nbsd ;;
288 i386-*-linux*aout*) fmt=aout em=linux ;;
289 i386-*-linux*oldld) fmt=aout em=linux ;;
290 i386-*-linux*coff*) fmt=coff em=linux ;;
291 i386-*-linux-gnu*) fmt=elf em=linux ;;
292 x86_64-*-linux-gnu*) fmt=elf em=linux ;;
293 i386-*-lynxos*) fmt=elf em=lynx bfd_gas=yes ;;
295 i386-*-sysv[45]*) fmt=elf ;;
296 i386-*-solaris*) fmt=elf ;;
297 i386-*-freebsdaout*) fmt=aout em=386bsd ;;
298 i386-*-freebsd[12].*) fmt=aout em=386bsd ;;
299 i386-*-freebsd[12]) fmt=aout em=386bsd ;;
301 i386-*-freebsd* | i386-*-kfreebsd*-gnu)
302 fmt=elf em=freebsd ;;
303 i386-*-sysv*) fmt=coff ;;
304 i386-*-sco3.2v5*coff) fmt=coff ;;
305 i386-*-isc*) fmt=coff ;;
306 i386-*-sco3.2v5*) fmt=elf
307 if test ${this_target} = $target; then
308 AC_DEFINE(SCO_ELF, 1, [Define if defaulting to ELF on SCO 5.])
310 i386-*-sco3.2*) fmt=coff ;;
311 i386-*-vsta) fmt=aout ;;
314 | i386-go32-rtems*) fmt=coff em=go32
315 AC_DEFINE(STRICTCOFF, 1, [Using strict COFF?]) ;;
316 i386-*-rtemself*) fmt=elf ;;
317 i386-*-rtemscoff*) fmt=coff ;;
318 i386-*-rtems*) fmt=elf ;;
319 i386-*-gnu*) fmt=elf ;;
320 i386-*-mach*) fmt=aout em=mach ;;
321 i386-*-msdos*) fmt=aout ;;
322 i386-*-moss*) fmt=elf ;;
323 i386-*-pe) fmt=coff em=pe ;;
324 i386-*-cygwin*) fmt=coff em=pe ;;
325 i386-*-interix*) fmt=coff em=interix ;;
326 i386-*-mingw32*) fmt=coff em=pe ;;
327 i386-*-nto-qnx*) fmt=elf ;;
328 i386-*-*nt*) fmt=coff em=pe ;;
329 i386-*-chaos) fmt=elf ;;
331 i860-*-*) fmt=elf endian=little
332 AC_MSG_WARN(GAS support for ${generic_target} is preliminary and a work in progress) ;;
333 i960-*-bout) fmt=bout ;;
334 i960-*-coff) fmt=coff em=ic960 ;;
335 i960-*-rtems*) fmt=coff em=ic960 ;;
336 i960-*-nindy*) fmt=bout ;;
337 i960-*-vxworks5.0) fmt=bout ;;
338 i960-*-vxworks5.*) fmt=coff em=ic960 ;;
339 i960-*-vxworks*) fmt=bout ;;
340 i960-*-elf*) fmt=elf ;;
342 ia64-*-elf*) fmt=elf ;;
343 ia64-*-aix*) fmt=elf em=ia64aix ;;
344 ia64-*-linux-gnu*) fmt=elf em=linux ;;
345 ia64-*-hpux*) fmt=elf em=hpux ;;
346 ia64-*-netbsd*) fmt=elf em=nbsd ;;
350 iq2000-*-elf) fmt=elf bfd_gas=yes ;;
352 m32r-*-elf*) fmt=elf ;;
353 m32r-*-linux*) fmt=elf em=linux;;
355 m68hc11-*-* | m6811-*-*) fmt=elf ;;
356 m68hc12-*-* | m6812-*-*) fmt=elf ;;
358 m68k-*-vxworks*) fmt=aout em=sun3 ;;
359 m68k-ericsson-ose) fmt=aout em=sun3 ;;
360 m68k-*-sunos*) fmt=aout em=sun3 ;;
361 m68k-motorola-sysv*) fmt=coff em=delta ;;
362 m68k-bull-sysv3*) fmt=coff em=dpx2 ;;
363 m68k-apollo-*) fmt=coff em=apollo ;;
364 m68k-*-elf*) fmt=elf ;;
365 m68k-*-sysv4*) fmt=elf em=svr4 ;;
366 m68k-*-sysv*) fmt=coff ;;
367 m68k-*-coff | m68k-*-rtemscoff*) fmt=coff ;;
368 m68k-*-rtems*) fmt=elf ;;
369 m68k-*-hpux*) fmt=hp300 em=hp300 ;;
370 m68k-*-linux*aout*) fmt=aout em=linux ;;
371 m68k-*-linux-gnu*) fmt=elf em=linux ;;
372 m68k-*-uclinux*) fmt=elf ;;
373 m68k-*-gnu*) fmt=elf ;;
374 m68k-*-lynxos*) fmt=coff em=lynx ;;
375 m68k-*-netbsdelf*) fmt=elf em=nbsd ;;
376 m68k-*-netbsd*) fmt=aout em=nbsd bfd_gas=yes ;;
377 m68k-*-openbsd*) fmt=aout em=nbsd bfd_gas=yes ;;
378 m68k-apple-aux*) fmt=coff em=aux ;;
379 m68k-*-psos*) fmt=elf em=psos;;
381 m88k-motorola-sysv3*) fmt=coff em=delt88 ;;
382 m88k-*-coff*) fmt=coff ;;
384 maxq-*-coff) fmt=coff ;;
386 mcore-*-elf) fmt=elf ;;
387 mcore-*-pe) fmt=coff em=pe bfd_gas=yes ;;
389 # don't change em like *-*-bsd does
390 mips-dec-openbsd*) fmt=elf endian=little ;;
391 mips-sony-bsd*) fmt=ecoff ;;
393 AC_MSG_ERROR(Unknown vendor for mips-bsd configuration.) ;;
394 mips-*-ultrix*) fmt=ecoff endian=little ;;
395 mips-*-osf*) fmt=ecoff endian=little ;;
396 mips-*-ecoff*) fmt=ecoff ;;
397 mips-*-pe*) fmt=coff endian=little em=pe ;;
398 mips-*-irix6*) fmt=elf em=irix ;;
399 mips-*-irix5*) fmt=elf em=irix ;;
400 mips-*-irix*) fmt=ecoff em=irix ;;
401 mips-*-lnews*) fmt=ecoff em=lnews ;;
402 mips-*-riscos*) fmt=ecoff ;;
403 mips*-*-linux*) fmt=elf em=tmips ;;
404 mips-*-sysv4*MP* | mips-*-gnu*) fmt=elf em=tmips ;;
405 mips-*-sysv*) fmt=ecoff ;;
406 mips-*-elf* | mips-*-rtems*) fmt=elf ;;
407 mips-*-netbsd*) fmt=elf ;;
408 mips-*-openbsd*) fmt=elf ;;
411 mn10200-*-*) fmt=elf ;;
412 # cpu_type for am33_2.0 is set to mn10300
413 mn10300-*-linux*) fmt=elf bfd_gas=yes em=linux ;;
414 mn10300-*-*) fmt=elf ;;
416 msp430-*-*) fmt=elf ;;
418 ns32k-pc532-mach*) fmt=aout em=pc532mach ;;
419 ns32k-pc532-ux*) fmt=aout em=pc532mach ;;
420 ns32k-pc532-lites*) fmt=aout em=nbsd532 ;;
421 ns32k-*-*n*bsd*) fmt=aout em=nbsd532 ;;
423 openrisc-*-*) fmt=elf ;;
424 or32-*-rtems*) fmt=elf ;;
425 or32-*-coff) fmt=coff ;;
426 or32-*-elf) fmt=elf ;;
430 ppc-*-pe | ppc-*-cygwin*) fmt=coff em=pe ;;
431 ppc-*-winnt*) fmt=coff em=pe ;;
433 ppc-*-aix5.[01]) fmt=coff em=aix5 ;;
435 ppc-*-aix5.*) fmt=coff em=aix5
436 AC_DEFINE(AIX_WEAK_SUPPORT, 1,
437 [Define if using AIX 5.2 value for C_WEAKEXT.])
439 ppc-*-aix*) fmt=coff ;;
440 ppc-*-beos*) fmt=coff ;;
441 ppc-*-*n*bsd* | ppc-*-elf*) fmt=elf ;;
442 ppc-*-eabi* | ppc-*-sysv4*) fmt=elf ;;
443 ppc-*-linux-gnu*) fmt=elf em=linux
446 *) AC_MSG_ERROR(GNU/Linux must be configured big endian) ;;
448 ppc-*-solaris*) fmt=elf
449 if test ${this_target} = $target; then
450 AC_DEFINE(TARGET_SOLARIS_COMMENT, 1,
451 [Define if default target is PowerPC Solaris.])
453 if test x${endian} = xbig; then
454 AC_MSG_ERROR(Solaris must be configured little endian)
456 ppc-*-rtems*) fmt=elf ;;
457 ppc-*-macos*) fmt=coff em=macos ;;
458 ppc-*-nto*) fmt=elf ;;
459 ppc-*-kaos*) fmt=elf ;;
460 ppc-*-lynxos*) fmt=elf em=lynx bfd_gas=yes ;;
462 s390x-*-linux-gnu*) fmt=elf em=linux ;;
463 s390-*-linux-gnu*) fmt=elf em=linux ;;
465 sh*-*-linux*) fmt=elf em=linux
470 sh5*-*-netbsd*) fmt=elf em=nbsd ;;
471 sh64*-*-netbsd*) fmt=elf em=nbsd ;;
472 sh*-*-netbsdelf*) fmt=elf em=nbsd ;;
473 sh*-*-symbianelf*) fmt=elf endian=little
474 AC_DEFINE(TARGET_SYMBIAN, 1, [Define if target is Symbian OS.])
476 sh-*-elf*) fmt=elf ;;
477 sh-*-coff*) fmt=coff ;;
478 sh-*-nto*) fmt=elf ;;
479 sh-*-pe*) fmt=coff em=pe bfd_gas=yes endian=little ;;
480 sh-*-rtemscoff*) fmt=coff ;;
481 sh-*-rtems*) fmt=elf ;;
482 sh-*-kaos*) fmt=elf ;;
483 shle*-*-kaos*) fmt=elf ;;
484 sh64-*-elf*) fmt=elf ;;
486 sparc-*-rtemsaout*) fmt=aout ;;
487 sparc-*-rtemself*) fmt=elf ;;
488 sparc-*-rtems*) fmt=elf ;;
489 sparc-*-sunos4*) fmt=aout em=sun3 ;;
490 sparc-*-aout | sparc*-*-vxworks*) fmt=aout em=sparcaout ;;
491 sparc-*-coff) fmt=coff ;;
492 sparc-*-linux*aout*) fmt=aout em=linux ;;
493 sparc-*-linux-gnu*) fmt=elf em=linux ;;
494 sparc-*-lynxos*) fmt=coff em=lynx ;;
495 sparc-fujitsu-none) fmt=aout ;;
496 sparc-*-elf) fmt=elf ;;
497 sparc-*-sysv4*) fmt=elf ;;
498 sparc-*-solaris*) fmt=elf ;;
499 sparc-*-netbsdelf*) fmt=elf em=nbsd ;;
500 sparc-*-*n*bsd*) case ${cpu} in
501 sparc64) fmt=elf em=nbsd ;;
502 *) fmt=aout em=nbsd ;;
504 strongarm-*-coff) fmt=coff ;;
505 strongarm-*-elf) fmt=elf ;;
506 strongarm-*-kaos*) fmt=elf ;;
508 tic30-*-*aout*) fmt=aout bfd_gas=yes ;;
509 tic30-*-*coff*) fmt=coff bfd_gas=yes ;;
510 tic4x-*-* | c4x-*-*) fmt=coff bfd_gas=yes ;;
511 tic54x-*-* | c54x*-*-*) fmt=coff bfd_gas=yes need_libm=yes;;
512 tic80-*-*) fmt=coff ;;
515 v850e-*-*) fmt=elf ;;
516 v850ea-*-*) fmt=elf ;;
518 vax-*-netbsdelf*) fmt=elf em=nbsd ;;
519 vax-*-netbsd*) fmt=aout em=nbsd ;;
520 vax-*-bsd* | vax-*-ultrix*) fmt=aout ;;
521 vax-*-linux-gnu*) fmt=elf em=linux bfd_gas=yes ;;
522 vax-*-vms) fmt=vms ;;
526 xscale-*-coff) fmt=coff ;;
527 xscale-*-elf) fmt=elf ;;
529 xstormy16-*-*) fmt=elf ;;
531 xtensa-*-*) fmt=elf ;;
533 z8k-*-coff | z8k-*-sim) fmt=coff ;;
535 *-*-aout | *-*-scout) fmt=aout ;;
536 *-*-freebsd* | *-*-kfreebsd*-gnu) fmt=elf em=freebsd ;;
537 *-*-nindy*) fmt=bout ;;
538 *-*-bsd*) fmt=aout em=sun3 ;;
539 *-*-generic) fmt=generic ;;
540 *-*-xray | *-*-hms) fmt=coff ;;
542 *-*-elf | *-*-sysv4* | *-*-solaris*) fmt=elf dev=yes ;;
543 *-*-aros*) fmt=elf em=linux bfd_gas=yes ;;
544 *-*-vxworks | *-*-windiss) fmt=elf ;;
545 *-*-netware) fmt=elf em=netware ;;
548 if test ${this_target} = $target ; then
550 if test x${endian} = xbig; then
552 elif test x${endian} = xlittle; then
555 if test x${endian_def} != x; then
556 AC_DEFINE_UNQUOTED(TARGET_BYTES_BIG_ENDIAN, $endian_def,
557 [Define as 1 if big endian.])
561 case ${cpu_type}-${fmt} in
562 alpha*-* | arm-* | i386-* | ia64*-* | mips-* | ns32k-* \
563 | pdp11-* | ppc-* | sparc-* | strongarm-* | xscale-* \
564 | *-elf | *-ecoff | *-som)
568 # Other random stuff.
572 # Set mips_cpu to the name of the default CPU.
573 case ${target_cpu} in
574 mips | mipsbe | mipseb | mipsle | mipsel | mips64 | mips64el)
577 mipsisa32 | mipsisa32el)
580 mipsisa32r2 | mipsisa32r2el)
583 mipsisa64 | mipsisa64el)
586 mipsisa64r2 | mipsisa64r2el)
589 mipstx39 | mipstx39el)
592 mips64vr | mips64vrel)
595 mipsisa32r2* | mipsisa64r2*)
597 mips_cpu=`echo $target_cpu | sed -e 's/[a-z]*..r2//' -e 's/el$//'`
600 mips64* | mipsisa64* | mipsisa32*)
602 mips_cpu=`echo $target_cpu | sed -e 's/[a-z]*..//' -e 's/el$//'`
606 AC_ERROR($target_cpu isn't a supported MIPS CPU name)
609 # See whether it's appropriate to set E_MIPS_ABI_O32 for o32
610 # binaries. It's a GNU extension that some OSes don't understand.
611 # The value only matters on ELF targets.
620 # Decide whether to generate 32-bit or 64-bit code by default.
621 # Used to resolve -march=from-abi when an embedded ABI is selected.
623 mips64*-*-* | mipsisa64*-*-*)
630 # Decide which ABI to target by default.
632 mips64*-linux* | mips-sgi-irix6*)
633 mips_default_abi=N32_ABI
636 mips_default_abi=O32_ABI
639 mips_default_abi=NO_ABI
642 AC_DEFINE_UNQUOTED(MIPS_CPU_STRING_DEFAULT, "$mips_cpu",
643 [Default CPU for MIPS targets. ])
644 AC_DEFINE_UNQUOTED(USE_E_MIPS_ABI_O32, $use_e_mips_abi_o32,
645 [Allow use of E_MIPS_ABI_O32 on MIPS targets. ])
646 AC_DEFINE_UNQUOTED(MIPS_DEFAULT_64BIT, $mips_default_64bit,
647 [Generate 64-bit code by default on MIPS targets. ])
648 AC_DEFINE_UNQUOTED(MIPS_DEFAULT_ABI, $mips_default_abi,
649 [Choose a default ABI for MIPS targets. ])
653 # Do we need the opcodes library?
661 case "${enable_shared}" in
662 yes) shared_opcodes=true ;;
663 *opcodes*) shared_opcodes=true ;;
664 *) shared_opcodes=false ;;
666 if test "${shared_opcodes}" = "true"; then
667 # A shared libopcodes must be linked against libbfd.
673 # Any other special object files needed ?
675 fr30 | ip2k | iq2000 | m32r | openrisc)
683 case ${extra_objects} in
685 *) extra_objects="$extra_objects m68k-parse.o" ;;
690 echo ${extra_objects} | grep -s "itbl-parse.o"
691 if test $? -ne 0 ; then
692 extra_objects="$extra_objects itbl-parse.o"
695 echo ${extra_objects} | grep -s "itbl-lex.o"
696 if test $? -ne 0 ; then
697 extra_objects="$extra_objects itbl-lex.o"
700 echo ${extra_objects} | grep -s "itbl-ops.o"
701 if test $? -ne 0 ; then
702 extra_objects="$extra_objects itbl-ops.o"
707 if test $this_target = $target ; then
708 AC_DEFINE_UNQUOTED(DEFAULT_ARCH, "${arch}", [Default architecture.])
717 echo ${extra_objects} | grep -s "xtensa-relax.o"
718 if test $? -ne 0 ; then
719 extra_objects="$extra_objects xtensa-relax.o"
727 if test $using_cgen = yes ; then
728 case "x${extra_objects}" in
730 *) extra_objects="$extra_objects cgen.o" ;;
734 # See if we really can support this configuration with the emulation code.
736 if test $this_target = $target ; then
737 primary_bfd_gas=$bfd_gas
741 if test $bfd_gas = no ; then
742 # Can't support other configurations this way.
745 elif test $bfd_gas = no ; then
746 # Can't support this configuration.
750 # From target name and format, produce a list of supported emulations.
752 case ${generic_target}-${fmt} in
753 mips-*-irix5*-*) emulation="mipsbelf mipslelf mipself mipsbecoff mipslecoff mipsecoff" ;;
754 mips*-*-linux*-*) case "$endian" in
755 big) emulation="mipsbelf mipslelf mipself" ;;
756 *) emulation="mipslelf mipsbelf mipself" ;;
758 mips-*-lnews*-ecoff) ;;
759 mips-*-*-ecoff) case "$endian" in
760 big) emulation="mipsbecoff mipslecoff mipsecoff" ;;
761 *) emulation="mipslecoff mipsbecoff mipsecoff" ;;
763 mips-*-*-elf) case "$endian" in
764 big) emulation="mipsbelf mipslelf mipself" ;;
765 *) emulation="mipslelf mipsbelf mipself" ;;
767 mips-*-sysv4*MP*-*) emulation="mipsbelf mipslelf mipself mipsbecoff mipslecoff mipsecoff" ;;
768 # i386-pc-pe-coff != i386-pc-coff.
770 # Uncommenting the next line will turn on support for i386 AOUT
771 # for the default linux configuration
772 # i386-*-linux*-elf) emulation="i386elf i386aout" ;;
774 i386-*-aout) emulation="i386aout" ;;
775 i386-*-coff) emulation="i386coff" ;;
776 i386-*-elf) emulation="i386elf" ;;
778 # Always all formats. The first stated emulation becomes the default.
779 cris-*-*aout*) emulation="crisaout criself" ;;
780 cris-*-*) emulation="criself crisaout" ;;
783 emulations="$emulations $emulation"
787 # Turn on all targets if possible
788 if test ${all_targets} = "yes"; then
789 case ${target_cpu_type} in
791 case ${obj_format} in
793 emulations="$emulations i386coff i386elf"
796 emulations="$emulations i386aout i386elf"
799 emulations="$emulations i386aout i386coff"
806 # Assign floating point type. Most processors with FP support
807 # IEEE FP. On those that don't support FP at all, usually IEEE
809 case ${target_cpu} in
810 vax | tahoe ) atof=${target_cpu} ;;
815 case "${obj_format}" in
816 "") AC_MSG_ERROR(GAS does not know what format to use for target ${target}) ;;
819 # Unfortunately the cpu in cpu-opc.h file isn't always $(TARGET_CPU).
821 if test $using_cgen = yes ; then
822 case ${target_cpu} in
823 *) cgen_cpu_prefix=${target_cpu} ;;
825 AC_SUBST(cgen_cpu_prefix)
826 AC_DEFINE(USING_CGEN, 1, [Using cgen code?])
830 dnl Make sure the desired support files exist.
833 if test ! -r ${srcdir}/config/tc-${target_cpu_type}.c; then
834 AC_MSG_ERROR(GAS does not support target CPU ${target_cpu_type})
837 if test ! -r ${srcdir}/config/obj-${obj_format}.c; then
838 AC_MSG_ERROR(GAS does not have support for object file format ${obj_format})
841 case ${user_bfd_gas}-${primary_bfd_gas} in
843 # We didn't override user's choice.
846 AC_MSG_WARN(Use of BFD is required for ${target}; overriding config options.)
858 # User specified nothing.
862 # Some COFF configurations want these random other flags set.
863 case ${obj_format} in
865 case ${target_cpu_type} in
866 i386) AC_DEFINE(I386COFF, 1, [Using i386 COFF?]) ;;
867 m68k) AC_DEFINE(M68KCOFF, 1, [Using m68k COFF?]) ;;
868 m88k) AC_DEFINE(M88KCOFF, 1, [Using m88k COFF?]) ;;
873 # Getting this done right is going to be a bitch. Each configuration specified
874 # with --enable-targets=... should be checked for environment, format, cpu, and
877 # For each configuration, the necessary object file support code must be linked
878 # in. This might be only one, it might be up to four. The necessary emulation
879 # code needs to be provided, too.
881 # And then there's "--enable-targets=all"....
883 # For now, just always do it for MIPS ELF or ECOFF configurations. Sigh.
885 formats="${obj_format}"
889 for em in . $emulations ; do
892 mipsbelf | mipslelf | mipself)
893 fmt=elf file=mipself ;;
894 mipsbecoff | mipslecoff | mipsecoff)
895 fmt=ecoff file=mipsecoff ;;
903 formats="$formats $fmt"
904 emfiles="$emfiles e-$file.o"
905 EMULATIONS="$EMULATIONS &$em,"
909 if test `set . $formats ; shift ; echo $#` -gt 1 ; then
910 for fmt in $formats ; do
912 aout) AC_DEFINE(OBJ_MAYBE_AOUT, 1, [a.out support?]) ;;
913 bout) AC_DEFINE(OBJ_MAYBE_BOUT, 1, [b.out support?]) ;;
914 coff) AC_DEFINE(OBJ_MAYBE_COFF, 1, [COFF support?]) ;;
915 ecoff) AC_DEFINE(OBJ_MAYBE_ECOFF, 1, [ECOFF support?]) ;;
916 elf) AC_DEFINE(OBJ_MAYBE_ELF, 1, [ELF support?]) ;;
917 generic) AC_DEFINE(OBJ_MAYBE_GENERIC, 1, [generic support?]) ;;
918 hp300) AC_DEFINE(OBJ_MAYBE_HP300, 1, [HP300 support?]) ;;
919 ieee) AC_DEFINE(OBJ_MAYBE_IEEE, 1, [IEEE support?]) ;;
920 som) AC_DEFINE(OBJ_MAYBE_SOM, 1, [SOM support?]) ;;
921 vms) AC_DEFINE(OBJ_MAYBE_VMS, 1, [VMS support?]) ;;
923 extra_objects="$extra_objects obj-$fmt.o"
927 if test `set . $emfiles ; shift ; echo $#` -gt 0 ; then
928 DEFAULT_EMULATION=`set . $emulations ; echo $2`
929 # e-mips* has more than one emulation per file, e-i386* has just one at the
930 # moment. If only one emulation is specified, then don't define
931 # USE_EMULATIONS or include any of the e-files as they will only be bloat.
932 case "${obj_format}${emfiles}" in
934 extra_objects="$extra_objects $emfiles"
935 AC_DEFINE(USE_EMULATIONS, 1, [Use emulation support?]) ;;
938 AC_SUBST(extra_objects)
939 AC_DEFINE_UNQUOTED(EMULATIONS, $EMULATIONS, [Supported emulations.])
940 AC_DEFINE_UNQUOTED(DEFAULT_EMULATION, "$DEFAULT_EMULATION",
941 [Default emulation.])
943 case ${primary_bfd_gas}-${target_cpu_type}-${obj_format} in
944 yes-*-coff) need_bfd=yes ;;
945 no-*-coff) need_bfd=yes
946 AC_DEFINE(MANY_SEGMENTS, 1, [old COFF support?]) ;;
949 reject_dev_configs=yes
951 case ${reject_dev_configs}-${dev} in
953 AC_MSG_ERROR(GAS does not support the ${generic_target} configuration.)
957 AC_SUBST(target_cpu_type)
960 AC_SUBST(install_tooldir)
962 dnl AC_SUBST(emulation)
964 case "${primary_bfd_gas}" in
965 yes) AC_DEFINE(BFD_ASSEMBLER, 1, [Use BFD interface?])
969 # do we need the opcodes library?
970 case "${need_opcodes}" in
972 OPCODES_LIB=../opcodes/libopcodes.la
976 case "${need_bfd}" in
978 BFDLIB=../bfd/libbfd.la
979 BFDVER_H=../bfd/bfdver.h
980 ALL_OBJ_DEPS="$ALL_OBJ_DEPS"' ../bfd/bfd.h $(INCDIR)/symcat.h'
985 AC_SUBST(OPCODES_LIB)
988 AC_SUBST(ALL_OBJ_DEPS)
990 AC_DEFINE_UNQUOTED(TARGET_ALIAS, "${target_alias}", [Target alias.])
991 AC_DEFINE_UNQUOTED(TARGET_CANONICAL, "${target}", [Canonical target.])
992 AC_DEFINE_UNQUOTED(TARGET_CPU, "${target_cpu}", [Target CPU.])
993 AC_DEFINE_UNQUOTED(TARGET_VENDOR, "${target_vendor}", [Target vendor.])
994 AC_DEFINE_UNQUOTED(TARGET_OS, "${target_os}", [Target OS.])
1001 ALL_LINGUAS="fr tr es"
1007 AC_CHECK_HEADERS(string.h stdlib.h memory.h strings.h unistd.h stdarg.h varargs.h errno.h sys/types.h)
1009 # Put this here so that autoconf's "cross-compiling" message doesn't confuse
1010 # people who are not cross-compiling but are compiling cross-assemblers.
1011 AC_MSG_CHECKING(whether compiling a cross-assembler)
1012 if test "${host}" = "${target}"; then
1016 AC_DEFINE(CROSS_COMPILE, 1, [Compiling cross-assembler?])
1018 AC_MSG_RESULT($cross_gas)
1020 dnl ansidecl.h will deal with const
1025 # VMS doesn't have unlink.
1026 AC_CHECK_FUNCS(unlink remove, break)
1028 # Some systems don't have sbrk().
1029 AC_CHECK_FUNCS(sbrk)
1031 # do we need the math library?
1032 case "${need_libm}" in
1039 # Some non-ANSI preprocessors botch requoting inside strings. That's bad
1040 # enough, but on some of those systems, the assert macro relies on requoting
1044 # On some systems, the system header files may not declare malloc, realloc,
1045 # and free. There are places where gas needs these functions to have been
1046 # declared -- such as when taking their addresses.
1048 #ifdef HAVE_MEMORY_H
1051 #ifdef HAVE_STRING_H
1054 #ifdef HAVE_STRINGS_H
1055 #include <strings.h>
1058 #ifdef HAVE_STDLIB_H
1061 #ifdef HAVE_UNISTD_H
1065 GAS_CHECK_DECL_NEEDED(strstr, f, char *(*f)(), $gas_test_headers)
1066 GAS_CHECK_DECL_NEEDED(malloc, f, char *(*f)(), $gas_test_headers)
1067 GAS_CHECK_DECL_NEEDED(free, f, void (*f)(), $gas_test_headers)
1068 GAS_CHECK_DECL_NEEDED(sbrk, f, char *(*f)(), $gas_test_headers)
1069 GAS_CHECK_DECL_NEEDED(environ, f, char **f, $gas_test_headers)
1071 # Does errno.h declare errno, or do we have to add a separate declaration
1073 GAS_CHECK_DECL_NEEDED(errno, f, int f, [
1079 dnl This must come last.
1081 dnl We used to make symlinks to files in the source directory, but now
1082 dnl we just use the right name for .c files, and create .h files in
1083 dnl the build directory which include the right .h file. Make sure
1084 dnl the old symlinks don't exist, so that a reconfigure in an existing
1085 dnl directory behaves reasonably.
1087 AC_CONFIG_FILES(Makefile doc/Makefile po/Makefile.in:po/Make-in)
1088 AC_CONFIG_COMMANDS([default],
1089 [rm -f targ-cpu.c targ-cpu.h obj-format.h obj-format.c targ-env.h atof-targ.c itbl-cpu.h
1090 echo '#include "tc-'"${target_cpu_type}"'.h"' > targ-cpu.h
1091 echo '#include "obj-'"${obj_format}"'.h"' > obj-format.h
1092 echo '#include "te-'"${te_file}"'.h"' > targ-env.h
1093 echo '#include "itbl-'"${target_cpu_type}"'.h"' > itbl-cpu.h
1094 if test "x$cgen_cpu_prefix" != x ; then
1095 echo '#include "opcodes/'"${cgen_cpu_prefix}"'-desc.h"' > cgen-desc.h
1098 sed -e '/POTFILES =/r po/POTFILES' po/Makefile.in > po/Makefile],
1099 [target_cpu_type=${target_cpu_type}
1100 cgen_cpu_prefix=${cgen_cpu_prefix}
1101 obj_format=${obj_format}
1102 te_file=${te_file}])