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
14 AM_INIT_AUTOMAKE(gas, 2.10.91)
19 AC_ARG_ENABLE(bfd-assembler,
20 [ --enable-bfd-assembler use BFD back end for writing object files],
21 [case "${enableval}" in
22 yes) need_bfd=yes user_bfd_gas=yes ;;
23 no) user_bfd_gas=no ;;
24 *) AC_MSG_ERROR(bad value ${enableval} given for bfd-assembler option) ;;
26 AC_ARG_ENABLE(targets,
27 [ targets alternative target configurations besides the primary],
28 [case "${enableval}" in
29 yes | "") AC_ERROR(enable-targets option must specify target names or 'all')
31 no) enable_targets= ;;
32 *) enable_targets=$enableval ;;
34 AC_ARG_ENABLE(commonbfdlib,
35 [ --enable-commonbfdlib build shared BFD/opcodes/libiberty library],
36 [case "${enableval}" in
37 yes) commonbfdlib=true ;;
38 no) commonbfdlib=false ;;
39 *) AC_MSG_ERROR([bad value ${enableval} for BFD commonbfdlib option]) ;;
44 build_warnings="-W -Wall"
45 AC_ARG_ENABLE(build-warnings,
46 [ --enable-build-warnings Enable build-time compiler warnings if gcc is used],
47 [case "${enableval}" in
49 no) build_warnings="-w";;
50 ,*) t=`echo "${enableval}" | sed -e "s/,/ /g"`
51 build_warnings="${build_warnings} ${t}";;
52 *,) t=`echo "${enableval}" | sed -e "s/,/ /g"`
53 build_warnings="${t} ${build_warnings}";;
54 *) build_warnings=`echo "${enableval}" | sed -e "s/,/ /g"`;;
56 if test x"$silent" != x"yes" && test x"$build_warnings" != x""; then
57 echo "Setting warning flags = $build_warnings" 6>&1
60 if test "x${build_warnings}" != x -a "x$GCC" = xyes ; then
61 WARN_CFLAGS="${build_warnings}"
65 # Generate a header file
66 AM_CONFIG_HEADER(config.h:config.in)
68 # If we are on a DOS filesystem, we must use gdb.ini rather than
72 *-*-msdos* | *-*-go32* | *-*-mingw32* | *-*-cygwin* | *-*-windows*)
80 # Makefile target for installing gas in $(tooldir)/bin.
81 install_tooldir=install-exec-tooldir
85 if test -n "$enable_targets" ; then
86 for t in `echo $enable_targets | sed 's/,/ /g'`; do
87 if test $t = "all"; then
91 result=`$ac_config_sub $t 2>/dev/null`
92 if test -n "$result" ; then
93 canon_targets="$canon_targets $result"
95 # # Permit "all", etc. We don't support it yet though.
96 # canon_targets="$canon_targets $t"
99 GAS_UNIQ(canon_targets)
104 for this_target in $target $canon_targets ; do
107 eval `echo $this_target | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/cpu=\1 vendor=\2 os=\3/'`
110 # check for architecture variants
114 alpha*) cpu_type=alpha ;;
115 armeb) cpu_type=arm endian=big ;;
116 arm*) cpu_type=arm endian=little ;;
117 armb*) cpu_type=arm endian=little ;;
118 armv*l) cpu_type=arm endian=little ;;
119 armv*b) cpu_type=arm endian=big ;;
120 xscale*) cpu_type=arm endian=little ;;
121 strongarm*) cpu_type=arm endian=little ;;
122 thumb*) cpu_type=arm endian=little ;;
123 hppa*) cpu_type=hppa ;;
125 i[456]86) cpu_type=i386 ;;
126 ia64) cpu_type=ia64 ;;
127 m6811|m6812|m68hc12) cpu_type=m68hc11 ;;
128 m680[012346]0) cpu_type=m68k ;;
130 m68008) cpu_type=m68k ;;
131 m683??) cpu_type=m68k ;;
132 m5200) cpu_type=m68k ;;
133 m8*) cpu_type=m88k ;;
134 mips*el) cpu_type=mips endian=little ;;
135 mips*) cpu_type=mips endian=big ;;
136 pjl*) cpu_type=pj endian=little ;;
137 pj*) cpu_type=pj endian=big ;;
138 powerpcle*) cpu_type=ppc endian=little ;;
139 powerpc*) cpu_type=ppc endian=big ;;
140 rs6000*) cpu_type=ppc ;;
141 sparclite*) cpu_type=sparc arch=sparclite ;;
142 sparclet*) cpu_type=sparc arch=sparclet ;;
143 sparc64*) cpu_type=sparc arch=v9-64 ;;
144 sparc86x*) cpu_type=sparc arch=sparc86x ;;
145 sparc*) cpu_type=sparc arch=sparclite ;; # ??? See tc-sparc.c.
146 v850*) cpu_type=v850 ;;
147 *) cpu_type=${cpu} ;;
150 if test ${this_target} = $target ; then
151 target_cpu_type=${cpu_type}
152 elif test ${target_cpu_type} != ${cpu_type} ; then
156 generic_target=${cpu_type}-$vendor-$os
161 # assign object format
162 case ${generic_target} in
163 a29k-*-coff) fmt=coff ;;
164 a29k-amd-udi) fmt=coff ;;
165 a29k-amd-ebmon) fmt=coff ;;
166 a29k-nyu-sym1) fmt=coff ;;
167 a29k-*-rtems*) fmt=coff ;;
168 a29k-*-vxworks*) fmt=coff ;;
170 alpha*-*-*vms*) fmt=evax ;;
171 alpha*-*-netware*) fmt=ecoff ;;
172 alpha*-*-openbsd*) fmt=ecoff ;;
173 alpha*-*-osf*) fmt=ecoff ;;
174 alpha*-*-linuxecoff*) fmt=ecoff ;;
175 alpha*-*-linux-gnu*) fmt=elf em=linux ;;
176 alpha*-*-netbsd*) fmt=elf em=nbsd ;;
178 arc-*-elf*) fmt=elf bfd_gas=yes ;;
180 arm-*-aout) fmt=aout ;;
181 arm-*-coff | thumb-*-coff) fmt=coff ;;
182 arm-*-rtems | thumb-*-rtems) fmt=elf ;;
183 arm-*-elf | thumb-*-elf) fmt=elf ;;
184 arm*-*-conix*) fmt=elf ;;
185 arm-*-linux*aout*) fmt=aout em=linux ;;
186 arm*-*-linux-gnu* | arm*-*-uclinux*)
188 arm-*-netbsd*) fmt=aout em=nbsd ;;
189 arm-*-oabi | thumb-*-oabi) fmt=elf ;;
190 arm-epoc-pe | thumb-epoc-pe) fmt=coff em=epoc-pe ;;
191 arm-*-wince) fmt=coff em=wince-pe ;;
192 arm-*-pe | thumb-*-pe) fmt=coff em=pe ;;
193 arm-*-riscix*) fmt=aout em=riscix ;;
195 avr-*-*) fmt=elf bfd_gas=yes ;;
197 cris-*-*) fmt=multi bfd_gas=yes ;;
199 d10v-*-*) fmt=elf bfd_gas=yes ;;
200 d30v-*-*) fmt=elf bfd_gas=yes ;;
203 fr30-*-*) fmt=elf bfd_gas=yes ;;
205 hppa-*-linux-gnu*) case ${cpu} in
207 fmt=elf em=hppalinux64;;
211 hppa-*-*elf*) fmt=elf em=hppa ;;
212 hppa-*-lites*) fmt=elf em=hppa ;;
213 hppa-*-osf*) fmt=som em=hppa ;;
214 hppa-*-rtems*) fmt=elf em=hppa ;;
215 hppa-*-hpux11*) case ${cpu} in
221 hppa-*-hpux*) fmt=som em=hppa ;;
222 hppa-*-mpeix*) fmt=som em=hppa ;;
223 hppa-*-bsd*) fmt=som em=hppa ;;
224 hppa-*-hiux*) fmt=som em=hppa ;;
226 h8300-*-rtems*) fmt=coff ;;
227 h8300-*-coff) fmt=coff ;;
229 i370-*-elf* | i370-*-linux*) fmt=elf ;;
230 i386-ibm-aix*) fmt=coff em=i386aix ;;
231 i386-sequent-bsd*) fmt=aout em=dynix bfd_gas=yes ;;
232 i386-*-beospe*) fmt=coff em=pe bfd_gas=yes ;;
233 i386-*-beoself* | i386-*-beos*) fmt=elf bfd_gas=yes ;;
234 i386-*-bsd*) fmt=aout em=386bsd ;;
235 i386-*-netbsd0.8) fmt=aout em=386bsd ;;
236 i386-*-netbsd*) fmt=aout em=nbsd bfd_gas=yes;;
237 i386-*-openbsd*) fmt=aout em=nbsd bfd_gas=yes;;
238 i386-*-linux*aout* | i386-*-linuxoldld) fmt=aout em=linux ;;
239 i386-*-linux*coff*) fmt=coff em=linux ;;
240 i386-*-linux-gnu*) fmt=elf em=linux bfd_gas=yes ;;
241 i386-*-lynxos*) fmt=coff em=lynx ;;
243 i386-*-sysv[45]* | i386-*-solaris* | i386-*-elf)
244 fmt=elf bfd_gas=yes ;;
245 i386-*-freebsdaout* | i386-*-freebsd[12].* | i386-*-freebsd[12])
246 fmt=aout em=386bsd ;;
248 i386-*-freebsd*) fmt=elf bfd_gas=yes ;;
249 i386-*-coff | i386-*-sysv* | i386-*-sco3.2v5*coff | i386-*-isc*)
251 i386-*-sco3.2v5*) fmt=elf
252 if test ${this_target} = $target; then
253 AC_DEFINE(SCO_ELF, 1,
254 [Define if defaulting to ELF on SCO 5.])
257 i386-*-sco3.2*) fmt=coff ;;
258 i386-*-vsta) fmt=aout ;;
259 i386-*-msdosdjgpp* | i386-*-go32* | i386-go32-rtems*)
261 AC_DEFINE(STRICTCOFF, 1, [Using strict COFF?])
263 i386-*-rtemself*) fmt=elf ;;
264 i386-*-rtems*) fmt=coff ;;
265 i386-*-gnu*) fmt=elf ;;
267 fmt=aout em=mach bfd_gas=yes ;;
268 i386-*-msdos*) fmt=aout ;;
269 i386-*-moss*) fmt=elf ;;
270 i386-*-pe) fmt=coff em=pe bfd_gas=yes ;;
271 i386-*-cygwin*) fmt=coff em=pe bfd_gas=yes ;;
272 i386-*-interix*) fmt=coff em=interix bfd_gas=yes ;;
273 i386-*-mingw32*) fmt=coff em=pe bfd_gas=yes ;;
274 i386-*-*nt*) fmt=coff em=pe bfd_gas=yes ;;
275 i386-*-vxworks*) fmt=aout ;;
276 i386-*-chaos) fmt=elf ;;
277 i860-stardent-sysv4* | i860-stardent-elf*)
278 fmt=elf bfd_gas=yes endian=little
279 AC_MSG_WARN(GAS support for ${generic_target} is preliminary and a work in progress) ;;
280 i960-*-bout) fmt=bout ;;
281 i960-*-coff) fmt=coff em=ic960 ;;
282 i960-*-rtems*) fmt=coff em=ic960 ;;
283 i960-*-nindy*) fmt=bout ;;
284 i960-*-vxworks4*) fmt=bout ;;
285 i960-*-vxworks5.0) fmt=bout ;;
286 i960-*-vxworks5.*) fmt=coff em=ic960 ;;
287 i960-*-vxworks*) fmt=bout ;;
288 i960-*-elf*) fmt=elf ;;
290 ia64-*-elf*) fmt=elf ;;
291 ia64-*-linux-gnu*) fmt=elf em=linux ;;
292 ia64-*-hpux*) fmt=elf em=hpux ;;
294 m32r-*-*) fmt=elf bfd_gas=yes ;;
296 m68hc11-*-*|m6811-*-*|m68hc12-*-*|m6812-*-*)fmt=elf bfd_gas=yes ;;
298 m68k-*-vxworks* | m68k-ericsson-ose | m68k-*-sunos*)
300 m68k-motorola-sysv*) fmt=coff em=delta ;;
301 m68k-bull-sysv3*) fmt=coff em=dpx2 ;;
302 m68k-apollo-*) fmt=coff em=apollo ;;
303 m68k-*-sysv4*) # must be before -sysv*
305 m68k-*-elf*) fmt=elf ;;
306 m68k-*-coff | m68k-*-sysv* | m68k-*-rtems*)
308 m68k-*-hpux*) fmt=hp300 em=hp300 ;;
309 m68k-*-linux*aout*) fmt=aout em=linux ;;
310 m68k-*-linux-gnu*) fmt=elf em=linux ;;
311 m68k-*-gnu*) fmt=elf ;;
312 m68k-*-lynxos*) fmt=coff em=lynx ;;
313 m68k-*-netbsd*) fmt=aout em=nbsd bfd_gas=yes ;;
314 m68k-*-openbsd*) fmt=aout em=nbsd bfd_gas=yes ;;
315 m68k-apple-aux*) fmt=coff em=aux ;;
316 m68k-*-psos*) fmt=elf em=psos;;
318 m88k-motorola-sysv3*) fmt=coff em=delt88 ;;
319 m88k-*-coff*) fmt=coff ;;
321 mcore-*-elf) fmt=elf bfd_gas=yes ;;
322 mcore-*-pe) fmt=coff em=pe bfd_gas=yes ;;
324 # don't change em like *-*-bsd does
325 mips-dec-netbsd*) fmt=elf endian=little ;;
326 mips-dec-openbsd*) fmt=elf endian=little ;;
327 mips-dec-bsd*) fmt=aout endian=little ;;
328 mips-sony-bsd*) fmt=ecoff ;;
329 mips-*-bsd*) AC_MSG_ERROR(Unknown vendor for mips-bsd configuration.) ;;
330 mips-*-ultrix*) fmt=ecoff endian=little ;;
331 mips-*-osf*) fmt=ecoff endian=little ;;
332 mips-*-ecoff*) fmt=ecoff ;;
333 mips-*-ecoff*) fmt=ecoff ;;
334 mips-*-pe*) fmt=coff endian=little em=pe ;;
335 mips-*-irix6*) fmt=elf ;;
336 mips-*-irix5*) fmt=elf ;;
337 mips-*-irix*) fmt=ecoff ;;
338 mips-*-lnews*) fmt=ecoff em=lnews ;;
339 mips-*-riscos*) fmt=ecoff ;;
340 mips-*-sysv4*MP*) fmt=elf em=tmips ;;
341 mips-*-sysv*) fmt=ecoff ;;
342 mips-*-elf* | mips-*-rtems* | mips-*-linux-gnu* | mips-*-gnu* | mips-*-openbsd*)
344 mips-*-vxworks*) fmt=elf
345 AC_DEFINE(MIPS_STABS_ELF, 1,
346 [Use ELF stabs for MIPS, not ECOFF stabs])
348 mn10200-*-*) fmt=elf bfd_gas=yes ;;
349 mn10300-*-*) fmt=elf bfd_gas=yes ;;
351 ppc-*-pe | ppc-*-cygwin* | ppc-*-winnt*)
353 ppc-*-aix*) fmt=coff ;;
354 ppc-*-beos*) fmt=coff ;;
355 ppc-*-*bsd* | ppc-*-elf* | ppc-*-eabi* | ppc-*-sysv4*)
357 ppc-*-linux-gnu*) fmt=elf
360 *) AC_MSG_ERROR(GNU/Linux must be configured big endian) ;;
363 ppc-*-solaris*) fmt=elf
364 if test ${this_target} = $target; then
365 AC_DEFINE(TARGET_SOLARIS_COMMENT, 1,
366 [Define if default target is PowerPC Solaris.])
368 if test x${endian} = xbig; then
369 AC_MSG_ERROR(Solaris must be configured little endian)
372 ppc-*-rtems*) fmt=elf ;;
373 ppc-*-macos* | ppc-*-mpw*)
375 ppc-*-netware*) fmt=elf em=ppcnw ;;
376 ppc-*-vxworks*) fmt=elf ;;
378 sh-*-linux*) fmt=elf em=linux ;;
379 sh-*-elf*) fmt=elf ;;
380 sh-*-coff*) fmt=coff ;;
381 sh-*-pe*) fmt=coff em=pe bfd_gas=yes;;
382 sh-*-rtemself*) fmt=elf ;;
383 sh-*-rtems*) fmt=coff ;;
385 ns32k-pc532-mach* | ns32k-pc532-ux*) fmt=aout em=pc532mach ;;
386 ns32k-pc532-netbsd* | ns32k-pc532-lites*) fmt=aout em=nbsd532 ;;
387 ns32k-pc532-openbsd*) fmt=aout em=nbsd532 ;;
389 sparc-*-rtemsaout*) fmt=aout ;;
390 sparc-*-rtemself*) fmt=elf ;;
391 sparc-*-rtems*) fmt=elf ;;
392 sparc-*-sunos4*) fmt=aout em=sun3 ;;
393 sparc-*-aout | sparc*-*-vxworks*)
394 fmt=aout em=sparcaout ;;
395 sparc-*-coff) fmt=coff ;;
396 sparc-*-linux*aout*) fmt=aout em=linux ;;
397 sparc-*-linux-gnu*) fmt=elf em=linux ;;
398 sparc-*-lynxos*) fmt=coff em=lynx ;;
399 sparc-fujitsu-none) fmt=aout ;;
400 sparc-*-elf | sparc-*-sysv4* | sparc-*-solaris*)
402 sparc-*-netbsd*) em=nbsd bfd_gas=yes
411 sparc-*-openbsd*) fmt=aout em=nbsd ;;
413 strongarm-*-coff) fmt=coff ;;
414 strongarm-*-elf) fmt=elf ;;
415 xscale-*-coff) fmt=coff ;;
416 xscale-*-elf) fmt=elf ;;
418 tic30-*-*aout*) fmt=aout bfd_gas=yes ;;
419 tic30-*-*coff*) fmt=coff bfd_gas=yes ;;
420 tic54x-*-* | c54x*-*-*)
421 fmt=coff bfd_gas=yes need_libm=yes;;
422 tic80-*-*) fmt=coff ;;
424 v850-*-*) fmt=elf bfd_gas=yes ;;
425 v850e-*-*) fmt=elf bfd_gas=yes ;;
426 v850ea-*-*) fmt=elf bfd_gas=yes ;;
428 vax-*-bsd* | vax-*-ultrix*)
430 vax-*-vms) fmt=vms ;;
433 z8k-*-coff | z8k-*-sim)
438 *-*-aout | *-*-scout)
444 *-*-generic) fmt=generic ;;
445 *-*-xray | *-*-hms) fmt=coff ;;
447 *-*-elf | *-*-sysv4* | *-*-solaris*)
448 AC_MSG_WARN(GAS support for ${generic_target} is incomplete.)
450 *-*-vxworks) fmt=aout ;;
451 *-*-netware) fmt=elf ;;
454 if test ${this_target} = $target ; then
456 if test x${endian} = xbig; then
458 elif test x${endian} = xlittle; then
461 if test x${endian_def} != x; then
462 AC_DEFINE_UNQUOTED(TARGET_BYTES_BIG_ENDIAN, $endian_def,
463 [Define as 1 if big endian.])
467 case ${cpu_type}-${fmt} in
468 alpha*-*) bfd_gas=yes ;;
469 arm-*) bfd_gas=yes ;;
471 # i386-aout) bfd_gas=preferred ;;
472 ia64*-*) bfd_gas=yes ;;
473 mips-*) bfd_gas=yes ;;
474 ns32k-*) bfd_gas=yes ;;
475 ppc-*) bfd_gas=yes ;;
476 sparc-*) bfd_gas=yes ;;
477 strongarm-*) bfd_gas=yes ;;
478 xscale-*) bfd_gas=yes ;;
479 *-elf) bfd_gas=yes ;;
480 *-ecoff) bfd_gas=yes ;;
481 *-som) bfd_gas=yes ;;
482 #enable bfd for coff and aout to allow testing if a bfd target is
483 #the primary target, but not for coff or aout as the primary target
484 i386-coff) if test x${primary_bfd_gas} = xyes; then bfd_gas=yes; fi ;;
485 i386-aout) if test x${primary_bfd_gas} = xyes; then bfd_gas=yes; fi ;;
489 # Other random stuff.
491 # Do we need the opcodes library?
499 case "${enable_shared}" in
500 yes) shared_opcodes=true ;;
501 *opcodes*) shared_opcodes=true ;;
502 *) shared_opcodes=false ;;
504 if test "${shared_opcodes}" = "true"; then
505 # A shared libopcodes must be linked against libbfd.
511 # Any other special object files needed ?
518 case ${extra_objects} in
520 *) extra_objects="$extra_objects m68k-parse.o" ;;
525 echo ${extra_objects} | grep -s "itbl-parse.o"
526 if test $? -ne 0 ; then
527 extra_objects="$extra_objects itbl-parse.o"
530 echo ${extra_objects} | grep -s "itbl-lex.o"
531 if test $? -ne 0 ; then
532 extra_objects="$extra_objects itbl-lex.o"
535 echo ${extra_objects} | grep -s "itbl-ops.o"
536 if test $? -ne 0 ; then
537 extra_objects="$extra_objects itbl-ops.o"
542 if test $this_target = $target ; then
543 AC_DEFINE_UNQUOTED(DEFAULT_ARCH, "${arch}", [Default architecture.])
550 if test $using_cgen = yes ; then
551 case "x${extra_objects}" in
553 *) extra_objects="$extra_objects cgen.o" ;;
557 # See if we really can support this configuration with the emulation code.
559 if test $this_target = $target ; then
560 primary_bfd_gas=$bfd_gas
564 if test $bfd_gas = no ; then
565 # Can't support other configurations this way.
568 elif test $bfd_gas = no ; then
569 # Can't support this configuration.
573 # From target name and format, produce a list of supported emulations.
575 case ${generic_target}-${fmt} in
576 mips-*-irix5*-*) emulation="mipsbelf mipslelf mipself mipsbecoff mipslecoff mipsecoff" ;;
577 mips-*-linux-gnu*-*) case "$endian" in
578 big) emulation="mipsbelf mipslelf mipself mipsbecoff mipslecoff mipsecoff" ;;
579 *) emulation="mipslelf mipsbelf mipself mipslecoff mipsbecoff mipsecoff" ;;
581 mips-*-lnews*-ecoff) ;;
582 mips-*-*-ecoff) case "$endian" in
583 big) emulation="mipsbecoff mipslecoff mipsecoff" ;;
584 *) emulation="mipslecoff mipsbecoff mipsecoff" ;;
586 mips-*-*-elf) case "$endian" in
587 big) emulation="mipsbelf mipslelf mipself" ;;
588 *) emulation="mipslelf mipsbelf mipself" ;;
590 mips-*-sysv4*MP*-*) emulation="mipsbelf mipslelf mipself mipsbecoff mipslecoff mipsecoff" ;;
591 # i386-pc-pe-coff != i386-pc-coff.
593 # Uncommenting the next line will turn on support for i386 AOUT
594 # for the default linux configuration
595 # i386-*-linux*-elf) emulation="i386elf i386aout" ;;
597 i386-*-aout) emulation="i386aout" ;;
598 i386-*-coff) emulation="i386coff" ;;
599 i386-*-elf) emulation="i386elf" ;;
601 # Always all formats. Having a.out first makes it the default.
602 cris-*-*) emulation="crisaout criself" ;;
605 emulations="$emulations $emulation"
609 # Turn on all targets if possible
610 if test ${all_targets} = "yes"; then
611 case ${target_cpu_type} in
613 case ${obj_format} in
615 emulations="$emulations i386coff i386elf"
618 emulations="$emulations i386aout i386elf"
621 emulations="$emulations i386aout i386coff"
628 # Assign floating point type. Most processors with FP support
629 # IEEE FP. On those that don't support FP at all, usually IEEE
631 case ${target_cpu} in
632 vax | tahoe ) atof=${target_cpu} ;;
636 case "${obj_format}" in
637 "") AC_MSG_ERROR(GAS does not know what format to use for target ${target}) ;;
640 # Unfortunately the cpu in cpu-opc.h file isn't always $(TARGET_CPU).
642 if test $using_cgen = yes ; then
643 case ${target_cpu} in
644 *) cgen_cpu_prefix=${target_cpu} ;;
646 AC_SUBST(cgen_cpu_prefix)
647 AC_DEFINE(USING_CGEN, 1, [Using cgen code?])
651 dnl Make sure the desired support files exist.
654 if test ! -r ${srcdir}/config/tc-${target_cpu_type}.c; then
655 AC_MSG_ERROR(GAS does not support target CPU ${target_cpu_type})
658 if test ! -r ${srcdir}/config/obj-${obj_format}.c; then
659 AC_MSG_ERROR(GAS does not have support for object file format ${obj_format})
662 case ${user_bfd_gas}-${primary_bfd_gas} in
664 # We didn't override user's choice.
667 AC_MSG_WARN(Use of BFD is required for ${target}; overriding config options.)
679 # User specified nothing.
683 # Some COFF configurations want these random other flags set.
684 case ${obj_format} in
686 case ${target_cpu_type} in
687 i386) AC_DEFINE(I386COFF, 1, [Using i386 COFF?]) ;;
688 m68k) AC_DEFINE(M68KCOFF, 1, [Using m68k COFF?]) ;;
689 m88k) AC_DEFINE(M88KCOFF, 1, [Using m88k COFF?]) ;;
694 # Getting this done right is going to be a bitch. Each configuration specified
695 # with --enable-targets=... should be checked for environment, format, cpu, and
698 # For each configuration, the necessary object file support code must be linked
699 # in. This might be only one, it might be up to four. The necessary emulation
700 # code needs to be provided, too.
702 # And then there's "--enable-targets=all"....
704 # For now, just always do it for MIPS ELF or ECOFF configurations. Sigh.
706 formats="${obj_format}"
710 for em in . $emulations ; do
714 fmt=elf file=mipself ;;
715 mipsbecoff | mipslecoff)
716 fmt=ecoff file=mipsecoff ;;
724 formats="$formats $fmt"
725 emfiles="$emfiles e-$file.o"
726 EMULATIONS="$EMULATIONS &$em,"
730 if test `set . $formats ; shift ; echo $#` -gt 1 ; then
731 for fmt in $formats ; do
733 aout) AC_DEFINE(OBJ_MAYBE_AOUT, 1, [a.out support?]) ;;
734 bout) AC_DEFINE(OBJ_MAYBE_BOUT, 1, [b.out support?]) ;;
735 coff) AC_DEFINE(OBJ_MAYBE_COFF, 1, [COFF support?]) ;;
736 ecoff) AC_DEFINE(OBJ_MAYBE_ECOFF, 1, [ECOFF support?]) ;;
737 elf) AC_DEFINE(OBJ_MAYBE_ELF, 1, [ELF support?]) ;;
738 generic) AC_DEFINE(OBJ_MAYBE_GENERIC, 1, [generic support?]) ;;
739 hp300) AC_DEFINE(OBJ_MAYBE_HP300, 1, [HP300 support?]) ;;
740 ieee) AC_DEFINE(OBJ_MAYBE_IEEE, 1, [IEEE support?]) ;;
741 som) AC_DEFINE(OBJ_MAYBE_SOM, 1, [SOM support?]) ;;
742 vms) AC_DEFINE(OBJ_MAYBE_VMS, 1, [VMS support?]) ;;
744 extra_objects="$extra_objects obj-$fmt.o"
748 if test `set . $emfiles ; shift ; echo $#` -gt 0 ; then
749 DEFAULT_EMULATION=`set . $emulations ; echo $2`
750 # e-mips* has more than one emulation per file, e-i386* has just one at the
751 # moment. If only one emulation is specified, then don't define
752 # USE_EMULATIONS or include any of the e-files as they will only be bloat.
753 case "${obj_format}${emfiles}" in
755 extra_objects="$extra_objects $emfiles"
756 AC_DEFINE(USE_EMULATIONS, 1, [Use emulation support?]) ;;
759 AC_SUBST(extra_objects)
760 AC_DEFINE_UNQUOTED(EMULATIONS, $EMULATIONS, [Supported emulations.])
761 AC_DEFINE_UNQUOTED(DEFAULT_EMULATION, "$DEFAULT_EMULATION",
762 [Default emulation.])
764 case ${primary_bfd_gas}-${target_cpu_type}-${obj_format} in
765 yes-*-coff) need_bfd=yes ;;
766 no-*-coff) need_bfd=yes
767 AC_DEFINE(MANY_SEGMENTS, 1, [old COFF support?]) ;;
770 reject_dev_configs=yes
772 case ${reject_dev_configs}-${dev} in
774 AC_MSG_ERROR(GAS does not support the ${generic_target} configuration.)
778 AC_SUBST(target_cpu_type)
781 AC_SUBST(install_tooldir)
783 dnl AC_SUBST(emulation)
785 case "${primary_bfd_gas}" in
786 yes) AC_DEFINE(BFD_ASSEMBLER, 1, [Use BFD interface?])
790 # do we need the opcodes library?
791 case "${need_opcodes}" in
793 OPCODES_LIB=../opcodes/libopcodes.la
797 case "${need_bfd}" in
799 BFDLIB=../bfd/libbfd.la
800 ALL_OBJ_DEPS="$ALL_OBJ_DEPS ../bfd/bfd.h"
805 AC_SUBST(OPCODES_LIB)
807 AC_SUBST(ALL_OBJ_DEPS)
809 AC_DEFINE_UNQUOTED(TARGET_ALIAS, "${target_alias}", [Target alias.])
810 AC_DEFINE_UNQUOTED(TARGET_CANONICAL, "${target}", [Canonical target.])
811 AC_DEFINE_UNQUOTED(TARGET_CPU, "${target_cpu}", [Target CPU.])
812 AC_DEFINE_UNQUOTED(TARGET_VENDOR, "${target_vendor}", [Target vendor.])
813 AC_DEFINE_UNQUOTED(TARGET_OS, "${target_os}", [Target OS.])
826 AC_CHECK_HEADERS(string.h stdlib.h memory.h strings.h unistd.h stdarg.h varargs.h errno.h sys/types.h)
828 # Put this here so that autoconf's "cross-compiling" message doesn't confuse
829 # people who are not cross-compiling but are compiling cross-assemblers.
830 AC_MSG_CHECKING(whether compiling a cross-assembler)
831 if test "${host}" = "${target}"; then
835 AC_DEFINE(CROSS_COMPILE, 1, [Compiling cross-assembler?])
837 AC_MSG_RESULT($cross_gas)
839 dnl ansidecl.h will deal with const
844 # VMS doesn't have unlink.
845 AC_CHECK_FUNCS(unlink remove, break)
847 # Some systems don't have sbrk().
850 # do we need the math library?
851 case "${need_libm}" in
858 # Some non-ANSI preprocessors botch requoting inside strings. That's bad
859 # enough, but on some of those systems, the assert macro relies on requoting
863 # On some systems, the system header files may not declare malloc, realloc,
864 # and free. There are places where gas needs these functions to have been
865 # declared -- such as when taking their addresses.
873 #ifdef HAVE_STRINGS_H
884 GAS_CHECK_DECL_NEEDED(strstr, f, char *(*f)(), $gas_test_headers)
885 GAS_CHECK_DECL_NEEDED(malloc, f, char *(*f)(), $gas_test_headers)
886 GAS_CHECK_DECL_NEEDED(free, f, void (*f)(), $gas_test_headers)
887 GAS_CHECK_DECL_NEEDED(sbrk, f, char *(*f)(), $gas_test_headers)
888 GAS_CHECK_DECL_NEEDED(environ, f, char **f, $gas_test_headers)
890 # Does errno.h declare errno, or do we have to add a separate declaration
892 GAS_CHECK_DECL_NEEDED(errno, f, int f, [
898 dnl This must come last.
900 dnl We used to make symlinks to files in the source directory, but now
901 dnl we just use the right name for .c files, and create .h files in
902 dnl the build directory which include the right .h file. Make sure
903 dnl the old symlinks don't exist, so that a reconfigure in an existing
904 dnl directory behaves reasonably.
906 AC_OUTPUT(Makefile doc/Makefile ${GDBINIT}:gdbinit.in po/Makefile.in:po/Make-in,
907 [rm -f targ-cpu.c targ-cpu.h obj-format.h obj-format.c targ-env.h atof-targ.c itbl-cpu.h
908 echo '#include "tc-'"${target_cpu_type}"'.h"' > targ-cpu.h
909 echo '#include "obj-'"${obj_format}"'.h"' > obj-format.h
910 echo '#include "te-'"${te_file}"'.h"' > targ-env.h
911 echo '#include "itbl-'"${target_cpu_type}"'.h"' > itbl-cpu.h
912 if test "x$cgen_cpu_prefix" != x ; then
913 echo '#include "opcodes/'"${cgen_cpu_prefix}"'-desc.h"' > cgen-desc.h
916 sed -e '/POTFILES =/r po/POTFILES' po/Makefile.in > po/Makefile],
917 [target_cpu_type=${target_cpu_type}
918 cgen_cpu_prefix=${cgen_cpu_prefix}
919 obj_format=${obj_format}