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
15 BFD_VERSION=`sed -n -e 's/^.._INIT_AUTOMAKE.*,[ ]*\([^ ]*\)[ ]*).*/\1/p' < ${srcdir}/../bfd/configure.in`
17 AM_INIT_AUTOMAKE(gas, ${BFD_VERSION})
22 AC_ARG_ENABLE(bfd-assembler,
23 [ --enable-bfd-assembler use BFD back end for writing object files],
24 [case "${enableval}" in
25 yes) need_bfd=yes user_bfd_gas=yes ;;
26 no) user_bfd_gas=no ;;
27 *) AC_MSG_ERROR(bad value ${enableval} given for bfd-assembler option) ;;
29 AC_ARG_ENABLE(targets,
30 [ targets alternative target configurations besides the primary],
31 [case "${enableval}" in
32 yes | "") AC_ERROR(enable-targets option must specify target names or 'all')
34 no) enable_targets= ;;
35 *) enable_targets=$enableval ;;
37 AC_ARG_ENABLE(commonbfdlib,
38 [ --enable-commonbfdlib build shared BFD/opcodes/libiberty library],
39 [case "${enableval}" in
40 yes) commonbfdlib=true ;;
41 no) commonbfdlib=false ;;
42 *) AC_MSG_ERROR([bad value ${enableval} for BFD commonbfdlib option]) ;;
47 build_warnings="-W -Wall -Wstrict-prototypes -Wmissing-prototypes"
48 AC_ARG_ENABLE(build-warnings,
49 [ --enable-build-warnings Enable build-time compiler warnings if gcc is used],
50 [case "${enableval}" in
52 no) build_warnings="-w";;
53 ,*) t=`echo "${enableval}" | sed -e "s/,/ /g"`
54 build_warnings="${build_warnings} ${t}";;
55 *,) t=`echo "${enableval}" | sed -e "s/,/ /g"`
56 build_warnings="${t} ${build_warnings}";;
57 *) build_warnings=`echo "${enableval}" | sed -e "s/,/ /g"`;;
59 if test x"$silent" != x"yes" && test x"$build_warnings" != x""; then
60 echo "Setting warning flags = $build_warnings" 6>&1
63 if test "x${build_warnings}" != x -a "x$GCC" = xyes ; then
64 WARN_CFLAGS="${build_warnings}"
68 # Generate a header file
69 AM_CONFIG_HEADER(config.h:config.in)
71 # If we are on a DOS filesystem, we must use gdb.ini rather than
75 *-*-msdos* | *-*-go32* | *-*-mingw32* | *-*-cygwin* | *-*-windows*)
83 # Makefile target for installing gas in $(tooldir)/bin.
84 install_tooldir=install-exec-tooldir
88 if test -n "$enable_targets" ; then
89 for t in `echo $enable_targets | sed 's/,/ /g'`; do
90 if test $t = "all"; then
94 result=`$ac_config_sub $t 2>/dev/null`
95 if test -n "$result" ; then
96 canon_targets="$canon_targets $result"
98 # # Permit "all", etc. We don't support it yet though.
99 # canon_targets="$canon_targets $t"
102 GAS_UNIQ(canon_targets)
107 for this_target in $target $canon_targets ; do
110 eval `echo $this_target | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/cpu=\1 vendor=\2 os=\3/'`
113 # check for architecture variants
117 alpha*) cpu_type=alpha ;;
118 armeb) cpu_type=arm endian=big ;;
119 arm*) cpu_type=arm endian=little ;;
120 armb*) cpu_type=arm endian=little ;;
121 armv*l) cpu_type=arm endian=little ;;
122 armv*b) cpu_type=arm endian=big ;;
123 xscale*) cpu_type=arm endian=little ;;
124 strongarm*) cpu_type=arm endian=little ;;
125 thumb*) cpu_type=arm endian=little ;;
126 hppa*) cpu_type=hppa ;;
128 i[3456]86) cpu_type=i386 arch=i386;;
129 x86_64) cpu_type=i386 arch=x86_64;;
130 ia64) cpu_type=ia64 ;;
131 m6811|m6812|m68hc12) cpu_type=m68hc11 ;;
132 m680[012346]0) cpu_type=m68k ;;
134 m68008) cpu_type=m68k ;;
135 m683??) cpu_type=m68k ;;
136 m5200) cpu_type=m68k ;;
137 m8*) cpu_type=m88k ;;
138 mips*el) cpu_type=mips endian=little ;;
139 mips*) cpu_type=mips endian=big ;;
140 pjl*) cpu_type=pj endian=little ;;
141 pj*) cpu_type=pj endian=big ;;
142 powerpc*le*) cpu_type=ppc endian=little ;;
143 powerpc*) cpu_type=ppc endian=big ;;
144 rs6000*) cpu_type=ppc ;;
145 s390x*) cpu_type=s390 arch=s390x ;;
146 s390*) cpu_type=s390 arch=s390 ;;
147 sh*) cpu_type=sh endian=big ;;
148 sparclite*) cpu_type=sparc arch=sparclite ;;
149 sparclet*) cpu_type=sparc arch=sparclet ;;
150 sparc64*) cpu_type=sparc arch=v9-64 ;;
151 sparc86x*) cpu_type=sparc arch=sparc86x ;;
152 sparc*) cpu_type=sparc arch=sparclite ;; # ??? See tc-sparc.c.
153 v850*) cpu_type=v850 ;;
154 *) cpu_type=${cpu} ;;
157 if test ${this_target} = $target ; then
158 target_cpu_type=${cpu_type}
159 elif test ${target_cpu_type} != ${cpu_type} ; then
163 generic_target=${cpu_type}-$vendor-$os
169 # assign object format
170 case ${generic_target} in
171 a29k-*-coff) fmt=coff ;;
172 a29k-amd-udi) fmt=coff ;;
173 a29k-amd-ebmon) fmt=coff ;;
174 a29k-nyu-sym1) fmt=coff ;;
175 a29k-*-rtems*) fmt=coff ;;
176 a29k-*-vxworks*) fmt=coff ;;
178 alpha*-*-*vms*) fmt=evax ;;
179 alpha*-*-netware*) fmt=ecoff ;;
180 alpha*-*-openbsd*) fmt=ecoff ;;
181 alpha*-*-osf*) fmt=ecoff ;;
182 alpha*-*-linuxecoff*) fmt=ecoff ;;
183 alpha*-*-linux-gnu*) fmt=elf em=linux ;;
184 alpha*-*-netbsd*) fmt=elf em=nbsd ;;
186 arc-*-elf*) fmt=elf bfd_gas=yes ;;
188 arm-*-aout) fmt=aout ;;
189 arm-*-coff | thumb-*-coff) fmt=coff ;;
190 arm-*-rtems | thumb-*-rtems) fmt=elf ;;
191 arm-*-elf | thumb-*-elf) fmt=elf ;;
192 arm*-*-conix*) fmt=elf ;;
193 arm-*-linux*aout*) fmt=aout em=linux ;;
194 arm*-*-linux-gnu* | arm*-*-uclinux*)
196 arm-*-netbsdelf*) fmt=elf em=nbsd ;;
197 arm-*-netbsd* | arm-*-openbsd*) fmt=aout em=nbsd ;;
198 arm-*-oabi | thumb-*-oabi) fmt=elf ;;
199 arm-epoc-pe | thumb-epoc-pe) fmt=coff em=epoc-pe ;;
200 arm-*-wince) fmt=coff em=wince-pe ;;
201 arm-*-pe | thumb-*-pe) fmt=coff em=pe ;;
202 arm-*-riscix*) fmt=aout em=riscix ;;
203 arm-*-vxworks) fmt=coff ;;
205 avr-*-*) fmt=elf bfd_gas=yes ;;
207 cris-*-*) fmt=multi bfd_gas=yes ;;
209 d10v-*-*) fmt=elf bfd_gas=yes ;;
210 d30v-*-*) fmt=elf bfd_gas=yes ;;
213 fr30-*-*) fmt=elf bfd_gas=yes ;;
215 hppa-*-linux-gnu*) case ${cpu} in
217 fmt=elf em=hppalinux64;;
221 hppa-*-*elf*) fmt=elf em=hppa ;;
222 hppa-*-lites*) fmt=elf em=hppa ;;
223 hppa-*-osf*) fmt=som em=hppa ;;
224 hppa-*-rtems*) fmt=elf em=hppa ;;
225 hppa-*-hpux11*) case ${cpu} in
231 hppa-*-hpux*) fmt=som em=hppa ;;
232 hppa-*-mpeix*) fmt=som em=hppa ;;
233 hppa-*-bsd*) fmt=som em=hppa ;;
234 hppa-*-hiux*) fmt=som em=hppa ;;
236 h8300-*-rtems*) fmt=coff ;;
237 h8300-*-coff) fmt=coff ;;
238 h8300-*-elf) fmt=elf ;;
239 h8500-*-rtems*) fmt=coff ;;
240 h8500-*-coff) fmt=coff ;;
242 i370-*-elf* | i370-*-linux*) fmt=elf ;;
243 i386-ibm-aix*) fmt=coff em=i386aix ;;
244 i386-sequent-bsd*) fmt=aout em=dynix bfd_gas=yes ;;
245 i386-*-beospe*) fmt=coff em=pe bfd_gas=yes ;;
246 i386-*-beoself* | i386-*-beos*) fmt=elf bfd_gas=yes ;;
247 i386-*-bsd*) fmt=aout em=386bsd ;;
248 i386-*-netbsd0.8) fmt=aout em=386bsd ;;
249 i386-*-netbsd*) em=nbsd bfd_gas=yes
259 i386-*-openbsd*) fmt=aout em=nbsd bfd_gas=yes;;
260 i386-*-linux*aout* | i386-*-linux*oldld) fmt=aout em=linux ;;
261 i386-*-linux*coff*) fmt=coff em=linux ;;
262 i386-*-linux-gnu*) fmt=elf em=linux bfd_gas=yes ;;
263 x86_64-*-linux-gnu*) fmt=elf em=linux bfd_gas=yes ;;
264 i386-*-lynxos*) fmt=coff em=lynx ;;
266 i386-*-sysv[45]* | i386-*-solaris* | i386-*-elf)
267 fmt=elf bfd_gas=yes ;;
268 i386-*-freebsdaout* | i386-*-freebsd[12].* | i386-*-freebsd[12])
269 fmt=aout em=386bsd ;;
271 i386-*-coff | i386-*-sysv* | i386-*-sco3.2v5*coff | i386-*-isc*)
273 i386-*-sco3.2v5*) fmt=elf
274 if test ${this_target} = $target; then
275 AC_DEFINE(SCO_ELF, 1,
276 [Define if defaulting to ELF on SCO 5.])
279 i386-*-sco3.2*) fmt=coff ;;
280 i386-*-vsta) fmt=aout ;;
281 i386-*-msdosdjgpp* | i386-*-go32* | i386-go32-rtems*)
282 fmt=coff em=go32 bfd_gas=yes
283 AC_DEFINE(STRICTCOFF, 1, [Using strict COFF?])
285 i386-*-rtemself*) fmt=elf ;;
286 i386-*-rtemscoff*) fmt=coff ;;
287 i386-*-rtems*) fmt=elf ;;
288 i386-*-gnu*) fmt=elf ;;
290 fmt=aout em=mach bfd_gas=yes ;;
291 i386-*-msdos*) fmt=aout ;;
292 i386-*-moss*) fmt=elf ;;
293 i386-*-pe) fmt=coff em=pe bfd_gas=yes ;;
294 i386-*-cygwin*) fmt=coff em=pe bfd_gas=yes ;;
295 i386-*-interix*) fmt=coff em=interix bfd_gas=yes ;;
296 i386-*-mingw32*) fmt=coff em=pe bfd_gas=yes ;;
297 i386-*-*nt*) fmt=coff em=pe bfd_gas=yes ;;
298 i386-*-vxworks*) fmt=aout ;;
299 i386-*-chaos) fmt=elf ;;
300 i860-stardent-sysv4* | i860-stardent-elf*)
301 fmt=elf bfd_gas=yes endian=little
302 AC_MSG_WARN(GAS support for ${generic_target} is preliminary and a work in progress) ;;
303 i960-*-bout) fmt=bout ;;
304 i960-*-coff) fmt=coff em=ic960 ;;
305 i960-*-rtems*) fmt=coff em=ic960 ;;
306 i960-*-nindy*) fmt=bout ;;
307 i960-*-vxworks4*) fmt=bout ;;
308 i960-*-vxworks5.0) fmt=bout ;;
309 i960-*-vxworks5.*) fmt=coff em=ic960 ;;
310 i960-*-vxworks*) fmt=bout ;;
311 i960-*-elf*) fmt=elf ;;
313 ia64-*-elf*) fmt=elf ;;
314 ia64-*-aix*) fmt=elf em=ia64aix ;;
315 ia64-*-linux-gnu*) fmt=elf em=linux ;;
316 ia64-*-hpux*) fmt=elf em=hpux ;;
318 m32r-*-*) fmt=elf bfd_gas=yes ;;
320 m68hc11-*-*|m6811-*-*|m68hc12-*-*|m6812-*-*)fmt=elf bfd_gas=yes ;;
322 m68k-*-vxworks* | m68k-ericsson-ose | m68k-*-sunos*)
324 m68k-motorola-sysv*) fmt=coff em=delta ;;
325 m68k-bull-sysv3*) fmt=coff em=dpx2 ;;
326 m68k-apollo-*) fmt=coff em=apollo ;;
327 m68k-*-sysv4*) # must be before -sysv*
329 m68k-*-elf*) fmt=elf ;;
330 m68k-*-coff | m68k-*-sysv* | m68k-*-rtemscoff*)
332 m68k-*-rtems*) fmt=elf ;;
333 m68k-*-hpux*) fmt=hp300 em=hp300 ;;
334 m68k-*-linux*aout*) fmt=aout em=linux ;;
335 m68k-*-linux-gnu*) fmt=elf em=linux ;;
336 m68k-*-gnu*) fmt=elf ;;
337 m68k-*-lynxos*) fmt=coff em=lynx ;;
338 m68k-*-netbsdelf*) fmt=elf em=nbsd bfd_gas=yes ;;
339 m68k-*-netbsdaout* | m68k-*-netbsd*)
340 fmt=aout em=nbsd bfd_gas=yes ;;
341 m68k-*-openbsd*) fmt=aout em=nbsd bfd_gas=yes ;;
342 m68k-apple-aux*) fmt=coff em=aux ;;
343 m68k-*-psos*) fmt=elf em=psos;;
345 m88k-motorola-sysv3*) fmt=coff em=delt88 ;;
346 m88k-*-coff*) fmt=coff ;;
348 mcore-*-elf) fmt=elf bfd_gas=yes ;;
349 mcore-*-pe) fmt=coff em=pe bfd_gas=yes ;;
351 # don't change em like *-*-bsd does
352 mips-dec-openbsd*) fmt=elf endian=little ;;
353 mips-dec-bsd*) fmt=aout endian=little ;;
354 mips-sony-bsd*) fmt=ecoff ;;
355 mips-*-bsd*) AC_MSG_ERROR(Unknown vendor for mips-bsd configuration.) ;;
356 mips-*-ultrix*) fmt=ecoff endian=little ;;
357 mips-*-osf*) fmt=ecoff endian=little ;;
358 mips-*-ecoff*) fmt=ecoff ;;
359 mips-*-pe*) fmt=coff endian=little em=pe ;;
360 mips-*-irix6*) fmt=elf ;;
361 mips-*-irix5*) fmt=elf ;;
362 mips-*-irix*) fmt=ecoff ;;
363 mips-*-lnews*) fmt=ecoff em=lnews ;;
364 mips-*-riscos*) fmt=ecoff ;;
365 mips*-*-linux*) fmt=elf em=tmips mips_stabs_elf=y ;;
366 mips-*-sysv4*MP* | mips-*-gnu*)
368 mips-*-sysv*) fmt=ecoff ;;
369 mips-*-elf* | mips-*-rtems* | mips-*-netbsd* | mips-*-openbsd*)
371 mips-*-vxworks*) fmt=elf mips_stabs_elf=y ;;
372 mmix-*-*) fmt=elf bfd_gas=yes ;;
373 mn10200-*-*) fmt=elf bfd_gas=yes ;;
374 mn10300-*-*) fmt=elf bfd_gas=yes ;;
375 openrisc-*-*) fmt=elf bfd_gas=yes ;;
377 ppc-*-pe | ppc-*-cygwin* | ppc-*-winnt*)
379 ppc-*-aix*) fmt=coff ;;
380 ppc-*-beos*) fmt=coff ;;
381 ppc-*-*bsd* | ppc-*-elf* | ppc-*-eabi* | ppc-*-sysv4*)
383 ppc-*-linux-gnu*) fmt=elf
386 *) AC_MSG_ERROR(GNU/Linux must be configured big endian) ;;
389 ppc-*-solaris*) fmt=elf
390 if test ${this_target} = $target; then
391 AC_DEFINE(TARGET_SOLARIS_COMMENT, 1,
392 [Define if default target is PowerPC Solaris.])
394 if test x${endian} = xbig; then
395 AC_MSG_ERROR(Solaris must be configured little endian)
398 ppc-*-rtems*) fmt=elf ;;
399 ppc-*-macos* | ppc-*-mpw*)
401 ppc-*-netware*) fmt=elf em=ppcnw ;;
402 ppc-*-vxworks*) fmt=elf ;;
404 s390x-*-linux-gnu*) fmt=elf em=linux ;;
405 s390-*-linux-gnu*) fmt=elf em=linux ;;
407 sh*-*-linux*) fmt=elf em=linux
414 sh-*-elf*) fmt=elf ;;
415 sh-*-coff*) fmt=coff bfd_gas=yes;;
416 sh-*-pe*) fmt=coff em=pe bfd_gas=yes endian=little ;;
417 sh-*-rtemself*) fmt=elf ;;
418 sh-*-rtems*) fmt=coff bfd_gas=yes;;
420 ns32k-pc532-mach* | ns32k-pc532-ux*) fmt=aout em=pc532mach ;;
421 ns32k-pc532-netbsd* | ns32k-pc532-lites*) fmt=aout em=nbsd532 ;;
422 ns32k-pc532-openbsd*) fmt=aout em=nbsd532 ;;
424 sparc-*-rtemsaout*) fmt=aout ;;
425 sparc-*-rtemself*) fmt=elf ;;
426 sparc-*-rtems*) fmt=elf ;;
427 sparc-*-sunos4*) fmt=aout em=sun3 ;;
428 sparc-*-aout | sparc*-*-vxworks*)
429 fmt=aout em=sparcaout ;;
430 sparc-*-coff) fmt=coff ;;
431 sparc-*-linux*aout*) fmt=aout em=linux ;;
432 sparc-*-linux-gnu*) fmt=elf em=linux ;;
433 sparc-*-lynxos*) fmt=coff em=lynx ;;
434 sparc-fujitsu-none) fmt=aout ;;
435 sparc-*-elf | sparc-*-sysv4* | sparc-*-solaris*)
437 sparc-*-netbsd*) em=nbsd bfd_gas=yes
446 sparc-*-openbsd*) fmt=aout em=nbsd ;;
448 strongarm-*-coff) fmt=coff ;;
449 strongarm-*-elf) fmt=elf ;;
450 xscale-*-coff) fmt=coff ;;
451 xscale-*-elf) fmt=elf ;;
453 tic30-*-*aout*) fmt=aout bfd_gas=yes ;;
454 tic30-*-*coff*) fmt=coff bfd_gas=yes ;;
455 tic54x-*-* | c54x*-*-*)
456 fmt=coff bfd_gas=yes need_libm=yes;;
457 tic80-*-*) fmt=coff ;;
459 v850-*-*) fmt=elf bfd_gas=yes ;;
460 v850e-*-*) fmt=elf bfd_gas=yes ;;
461 v850ea-*-*) fmt=elf bfd_gas=yes ;;
463 vax-*-bsd* | vax-*-ultrix*)
465 vax-*-vms) fmt=vms ;;
469 xstormy16-*-*) fmt=elf bfd_gas=yes ;;
471 z8k-*-coff | z8k-*-sim)
474 *-*-aout | *-*-scout)
476 *-*-freebsd*) fmt=elf em=freebsd bfd_gas=yes ;;
481 *-*-generic) fmt=generic ;;
482 *-*-xray | *-*-hms) fmt=coff ;;
484 *-*-elf | *-*-sysv4* | *-*-solaris*)
485 AC_MSG_WARN(GAS support for ${generic_target} is incomplete.)
487 *-*-vxworks) fmt=aout ;;
488 *-*-netware) fmt=elf ;;
491 if test ${this_target} = $target ; then
493 if test x${endian} = xbig; then
495 elif test x${endian} = xlittle; then
498 if test x${endian_def} != x; then
499 AC_DEFINE_UNQUOTED(TARGET_BYTES_BIG_ENDIAN, $endian_def,
500 [Define as 1 if big endian.])
504 if test x${mips_stabs_elf} != x; then
505 AC_DEFINE(MIPS_STABS_ELF, 1,
506 [Use ELF stabs for MIPS, not ECOFF stabs])
509 case ${cpu_type}-${fmt} in
510 alpha*-*) bfd_gas=yes ;;
511 arm-*) bfd_gas=yes ;;
513 # i386-aout) bfd_gas=preferred ;;
514 ia64*-*) bfd_gas=yes ;;
515 mips-*) bfd_gas=yes ;;
516 ns32k-*) bfd_gas=yes ;;
517 pdp11-*) bfd_gas=yes ;;
518 ppc-*) bfd_gas=yes ;;
519 sparc-*) bfd_gas=yes ;;
520 strongarm-*) bfd_gas=yes ;;
521 xscale-*) bfd_gas=yes ;;
522 *-elf) bfd_gas=yes ;;
523 *-ecoff) bfd_gas=yes ;;
524 *-som) bfd_gas=yes ;;
525 #enable bfd for coff and aout to allow testing if a bfd target is
526 #the primary target, but not for coff or aout as the primary target
527 i386-coff) if test x${primary_bfd_gas} = xyes; then bfd_gas=yes; fi ;;
528 i386-aout) if test x${primary_bfd_gas} = xyes; then bfd_gas=yes; fi ;;
532 # Other random stuff.
534 # Do we need the opcodes library?
542 case "${enable_shared}" in
543 yes) shared_opcodes=true ;;
544 *opcodes*) shared_opcodes=true ;;
545 *) shared_opcodes=false ;;
547 if test "${shared_opcodes}" = "true"; then
548 # A shared libopcodes must be linked against libbfd.
554 # Any other special object files needed ?
556 fr30 | m32r | openrisc)
561 case ${extra_objects} in
563 *) extra_objects="$extra_objects m68k-parse.o" ;;
568 echo ${extra_objects} | grep -s "itbl-parse.o"
569 if test $? -ne 0 ; then
570 extra_objects="$extra_objects itbl-parse.o"
573 echo ${extra_objects} | grep -s "itbl-lex.o"
574 if test $? -ne 0 ; then
575 extra_objects="$extra_objects itbl-lex.o"
578 echo ${extra_objects} | grep -s "itbl-ops.o"
579 if test $? -ne 0 ; then
580 extra_objects="$extra_objects itbl-ops.o"
585 if test $this_target = $target ; then
586 AC_DEFINE_UNQUOTED(DEFAULT_ARCH, "${arch}", [Default architecture.])
598 if test $using_cgen = yes ; then
599 case "x${extra_objects}" in
601 *) extra_objects="$extra_objects cgen.o" ;;
605 # See if we really can support this configuration with the emulation code.
607 if test $this_target = $target ; then
608 primary_bfd_gas=$bfd_gas
612 if test $bfd_gas = no ; then
613 # Can't support other configurations this way.
616 elif test $bfd_gas = no ; then
617 # Can't support this configuration.
621 # From target name and format, produce a list of supported emulations.
623 case ${generic_target}-${fmt} in
624 mips-*-irix5*-*) emulation="mipsbelf mipslelf mipself mipsbecoff mipslecoff mipsecoff" ;;
625 mips*-*-linux*-*) case "$endian" in
626 big) emulation="mipsbelf mipslelf mipself" ;;
627 *) emulation="mipslelf mipsbelf mipself" ;;
629 mips-*-lnews*-ecoff) ;;
630 mips-*-*-ecoff) case "$endian" in
631 big) emulation="mipsbecoff mipslecoff mipsecoff" ;;
632 *) emulation="mipslecoff mipsbecoff mipsecoff" ;;
634 mips-*-*-elf) case "$endian" in
635 big) emulation="mipsbelf mipslelf mipself" ;;
636 *) emulation="mipslelf mipsbelf mipself" ;;
638 mips-*-sysv4*MP*-*) emulation="mipsbelf mipslelf mipself mipsbecoff mipslecoff mipsecoff" ;;
639 # i386-pc-pe-coff != i386-pc-coff.
641 # Uncommenting the next line will turn on support for i386 AOUT
642 # for the default linux configuration
643 # i386-*-linux*-elf) emulation="i386elf i386aout" ;;
645 i386-*-aout) emulation="i386aout" ;;
646 i386-*-coff) emulation="i386coff" ;;
647 i386-*-elf) emulation="i386elf" ;;
649 # Always all formats. The first stated emulation becomes the default.
650 cris-*-*aout*) emulation="crisaout criself" ;;
651 cris-*-*) emulation="criself crisaout" ;;
654 emulations="$emulations $emulation"
658 # Turn on all targets if possible
659 if test ${all_targets} = "yes"; then
660 case ${target_cpu_type} in
662 case ${obj_format} in
664 emulations="$emulations i386coff i386elf"
667 emulations="$emulations i386aout i386elf"
670 emulations="$emulations i386aout i386coff"
677 # Assign floating point type. Most processors with FP support
678 # IEEE FP. On those that don't support FP at all, usually IEEE
680 case ${target_cpu} in
681 vax | tahoe ) atof=${target_cpu} ;;
686 case "${obj_format}" in
687 "") AC_MSG_ERROR(GAS does not know what format to use for target ${target}) ;;
690 # Unfortunately the cpu in cpu-opc.h file isn't always $(TARGET_CPU).
692 if test $using_cgen = yes ; then
693 case ${target_cpu} in
694 *) cgen_cpu_prefix=${target_cpu} ;;
696 AC_SUBST(cgen_cpu_prefix)
697 AC_DEFINE(USING_CGEN, 1, [Using cgen code?])
701 dnl Make sure the desired support files exist.
704 if test ! -r ${srcdir}/config/tc-${target_cpu_type}.c; then
705 AC_MSG_ERROR(GAS does not support target CPU ${target_cpu_type})
708 if test ! -r ${srcdir}/config/obj-${obj_format}.c; then
709 AC_MSG_ERROR(GAS does not have support for object file format ${obj_format})
712 case ${user_bfd_gas}-${primary_bfd_gas} in
714 # We didn't override user's choice.
717 AC_MSG_WARN(Use of BFD is required for ${target}; overriding config options.)
729 # User specified nothing.
733 # Some COFF configurations want these random other flags set.
734 case ${obj_format} in
736 case ${target_cpu_type} in
737 i386) AC_DEFINE(I386COFF, 1, [Using i386 COFF?]) ;;
738 m68k) AC_DEFINE(M68KCOFF, 1, [Using m68k COFF?]) ;;
739 m88k) AC_DEFINE(M88KCOFF, 1, [Using m88k COFF?]) ;;
744 # Getting this done right is going to be a bitch. Each configuration specified
745 # with --enable-targets=... should be checked for environment, format, cpu, and
748 # For each configuration, the necessary object file support code must be linked
749 # in. This might be only one, it might be up to four. The necessary emulation
750 # code needs to be provided, too.
752 # And then there's "--enable-targets=all"....
754 # For now, just always do it for MIPS ELF or ECOFF configurations. Sigh.
756 formats="${obj_format}"
760 for em in . $emulations ; do
763 mipsbelf | mipslelf | mipself)
764 fmt=elf file=mipself ;;
765 mipsbecoff | mipslecoff | mipsecoff)
766 fmt=ecoff file=mipsecoff ;;
774 formats="$formats $fmt"
775 emfiles="$emfiles e-$file.o"
776 EMULATIONS="$EMULATIONS &$em,"
780 if test `set . $formats ; shift ; echo $#` -gt 1 ; then
781 for fmt in $formats ; do
783 aout) AC_DEFINE(OBJ_MAYBE_AOUT, 1, [a.out support?]) ;;
784 bout) AC_DEFINE(OBJ_MAYBE_BOUT, 1, [b.out support?]) ;;
785 coff) AC_DEFINE(OBJ_MAYBE_COFF, 1, [COFF support?]) ;;
786 ecoff) AC_DEFINE(OBJ_MAYBE_ECOFF, 1, [ECOFF support?]) ;;
787 elf) AC_DEFINE(OBJ_MAYBE_ELF, 1, [ELF support?]) ;;
788 generic) AC_DEFINE(OBJ_MAYBE_GENERIC, 1, [generic support?]) ;;
789 hp300) AC_DEFINE(OBJ_MAYBE_HP300, 1, [HP300 support?]) ;;
790 ieee) AC_DEFINE(OBJ_MAYBE_IEEE, 1, [IEEE support?]) ;;
791 som) AC_DEFINE(OBJ_MAYBE_SOM, 1, [SOM support?]) ;;
792 vms) AC_DEFINE(OBJ_MAYBE_VMS, 1, [VMS support?]) ;;
794 extra_objects="$extra_objects obj-$fmt.o"
798 if test `set . $emfiles ; shift ; echo $#` -gt 0 ; then
799 DEFAULT_EMULATION=`set . $emulations ; echo $2`
800 # e-mips* has more than one emulation per file, e-i386* has just one at the
801 # moment. If only one emulation is specified, then don't define
802 # USE_EMULATIONS or include any of the e-files as they will only be bloat.
803 case "${obj_format}${emfiles}" in
805 extra_objects="$extra_objects $emfiles"
806 AC_DEFINE(USE_EMULATIONS, 1, [Use emulation support?]) ;;
809 AC_SUBST(extra_objects)
810 AC_DEFINE_UNQUOTED(EMULATIONS, $EMULATIONS, [Supported emulations.])
811 AC_DEFINE_UNQUOTED(DEFAULT_EMULATION, "$DEFAULT_EMULATION",
812 [Default emulation.])
814 case ${primary_bfd_gas}-${target_cpu_type}-${obj_format} in
815 yes-*-coff) need_bfd=yes ;;
816 no-*-coff) need_bfd=yes
817 AC_DEFINE(MANY_SEGMENTS, 1, [old COFF support?]) ;;
820 reject_dev_configs=yes
822 case ${reject_dev_configs}-${dev} in
824 AC_MSG_ERROR(GAS does not support the ${generic_target} configuration.)
828 AC_SUBST(target_cpu_type)
831 AC_SUBST(install_tooldir)
833 dnl AC_SUBST(emulation)
835 case "${primary_bfd_gas}" in
836 yes) AC_DEFINE(BFD_ASSEMBLER, 1, [Use BFD interface?])
840 # do we need the opcodes library?
841 case "${need_opcodes}" in
843 OPCODES_LIB=../opcodes/libopcodes.la
847 case "${need_bfd}" in
849 BFDLIB=../bfd/libbfd.la
850 ALL_OBJ_DEPS="$ALL_OBJ_DEPS ../bfd/bfd.h"
855 AC_SUBST(OPCODES_LIB)
857 AC_SUBST(ALL_OBJ_DEPS)
859 AC_DEFINE_UNQUOTED(TARGET_ALIAS, "${target_alias}", [Target alias.])
860 AC_DEFINE_UNQUOTED(TARGET_CANONICAL, "${target}", [Canonical target.])
861 AC_DEFINE_UNQUOTED(TARGET_CPU, "${target_cpu}", [Target CPU.])
862 AC_DEFINE_UNQUOTED(TARGET_VENDOR, "${target_vendor}", [Target vendor.])
863 AC_DEFINE_UNQUOTED(TARGET_OS, "${target_os}", [Target OS.])
876 AC_CHECK_HEADERS(string.h stdlib.h memory.h strings.h unistd.h stdarg.h varargs.h errno.h sys/types.h)
878 # Put this here so that autoconf's "cross-compiling" message doesn't confuse
879 # people who are not cross-compiling but are compiling cross-assemblers.
880 AC_MSG_CHECKING(whether compiling a cross-assembler)
881 if test "${host}" = "${target}"; then
885 AC_DEFINE(CROSS_COMPILE, 1, [Compiling cross-assembler?])
887 AC_MSG_RESULT($cross_gas)
889 dnl ansidecl.h will deal with const
894 # VMS doesn't have unlink.
895 AC_CHECK_FUNCS(unlink remove, break)
897 # Some systems don't have sbrk().
900 # do we need the math library?
901 case "${need_libm}" in
908 # Some non-ANSI preprocessors botch requoting inside strings. That's bad
909 # enough, but on some of those systems, the assert macro relies on requoting
913 # On some systems, the system header files may not declare malloc, realloc,
914 # and free. There are places where gas needs these functions to have been
915 # declared -- such as when taking their addresses.
923 #ifdef HAVE_STRINGS_H
934 GAS_CHECK_DECL_NEEDED(strstr, f, char *(*f)(), $gas_test_headers)
935 GAS_CHECK_DECL_NEEDED(malloc, f, char *(*f)(), $gas_test_headers)
936 GAS_CHECK_DECL_NEEDED(free, f, void (*f)(), $gas_test_headers)
937 GAS_CHECK_DECL_NEEDED(sbrk, f, char *(*f)(), $gas_test_headers)
938 GAS_CHECK_DECL_NEEDED(environ, f, char **f, $gas_test_headers)
940 # Does errno.h declare errno, or do we have to add a separate declaration
942 GAS_CHECK_DECL_NEEDED(errno, f, int f, [
948 dnl This must come last.
950 dnl We used to make symlinks to files in the source directory, but now
951 dnl we just use the right name for .c files, and create .h files in
952 dnl the build directory which include the right .h file. Make sure
953 dnl the old symlinks don't exist, so that a reconfigure in an existing
954 dnl directory behaves reasonably.
956 AC_OUTPUT(Makefile doc/Makefile ${GDBINIT}:gdbinit.in po/Makefile.in:po/Make-in,
957 [rm -f targ-cpu.c targ-cpu.h obj-format.h obj-format.c targ-env.h atof-targ.c itbl-cpu.h
958 echo '#include "tc-'"${target_cpu_type}"'.h"' > targ-cpu.h
959 echo '#include "obj-'"${obj_format}"'.h"' > obj-format.h
960 echo '#include "te-'"${te_file}"'.h"' > targ-env.h
961 echo '#include "itbl-'"${target_cpu_type}"'.h"' > itbl-cpu.h
962 if test "x$cgen_cpu_prefix" != x ; then
963 echo '#include "opcodes/'"${cgen_cpu_prefix}"'-desc.h"' > cgen-desc.h
966 sed -e '/POTFILES =/r po/POTFILES' po/Makefile.in > po/Makefile],
967 [target_cpu_type=${target_cpu_type}
968 cgen_cpu_prefix=${cgen_cpu_prefix}
969 obj_format=${obj_format}