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 strongarm*) cpu_type=arm endian=little ;;
121 thumb*) cpu_type=arm endian=little ;;
122 hppa*) cpu_type=hppa ;;
124 i[456]86) cpu_type=i386 ;;
125 ia64) cpu_type=ia64 ;;
126 m6811|m6812|m68hc12) cpu_type=m68hc11 ;;
127 m680[012346]0) cpu_type=m68k ;;
129 m68008) cpu_type=m68k ;;
130 m683??) cpu_type=m68k ;;
131 m5200) cpu_type=m68k ;;
132 m8*) cpu_type=m88k ;;
133 mips*el) cpu_type=mips endian=little ;;
134 mips*) cpu_type=mips endian=big ;;
135 pjl*) cpu_type=pj endian=little ;;
136 pj*) cpu_type=pj endian=big ;;
137 powerpcle*) cpu_type=ppc endian=little ;;
138 powerpc*) cpu_type=ppc endian=big ;;
139 rs6000*) cpu_type=ppc ;;
140 sparclite*) cpu_type=sparc arch=sparclite ;;
141 sparclet*) cpu_type=sparc arch=sparclet ;;
142 sparc64*) cpu_type=sparc arch=v9-64 ;;
143 sparc86x*) cpu_type=sparc arch=sparc86x ;;
144 sparc*) cpu_type=sparc arch=sparclite ;; # ??? See tc-sparc.c.
145 v850*) cpu_type=v850 ;;
146 *) cpu_type=${cpu} ;;
149 if test ${this_target} = $target ; then
150 target_cpu_type=${cpu_type}
151 elif test ${target_cpu_type} != ${cpu_type} ; then
155 generic_target=${cpu_type}-$vendor-$os
160 # assign object format
161 case ${generic_target} in
162 a29k-*-coff) fmt=coff ;;
163 a29k-amd-udi) fmt=coff ;;
164 a29k-amd-ebmon) fmt=coff ;;
165 a29k-nyu-sym1) fmt=coff ;;
166 a29k-*-rtems*) fmt=coff ;;
167 a29k-*-vxworks*) fmt=coff ;;
169 alpha*-*-*vms*) fmt=evax ;;
170 alpha*-*-netware*) fmt=ecoff ;;
171 alpha*-*-openbsd*) fmt=ecoff ;;
172 alpha*-*-osf*) fmt=ecoff ;;
173 alpha*-*-linuxecoff*) fmt=ecoff ;;
174 alpha*-*-linux-gnu*) fmt=elf em=linux ;;
175 alpha*-*-netbsd*) fmt=elf em=nbsd ;;
177 arc-*-elf*) fmt=elf bfd_gas=yes ;;
179 arm-*-aout) fmt=aout ;;
180 arm-*-coff | thumb-*-coff) fmt=coff ;;
181 arm-*-rtems | thumb-*-rtems) fmt=elf ;;
182 arm-*-elf | thumb-*-elf) fmt=elf ;;
183 arm*-*-conix*) fmt=elf ;;
184 arm-*-linux*aout*) fmt=aout em=linux ;;
185 arm*-*-linux-gnu* | arm*-*-uclinux*)
187 arm-*-netbsd*) fmt=aout em=nbsd ;;
188 arm-*-oabi | thumb-*-oabi) fmt=elf ;;
189 arm-epoc-pe | thumb-epoc-pe) fmt=coff em=epoc-pe ;;
190 arm-*-wince) fmt=coff em=wince-pe ;;
191 arm-*-pe | thumb-*-pe) fmt=coff em=pe ;;
192 arm-*-riscix*) fmt=aout em=riscix ;;
194 avr-*-*) fmt=elf bfd_gas=yes ;;
196 cris-*-*) fmt=multi bfd_gas=yes ;;
198 d10v-*-*) fmt=elf bfd_gas=yes ;;
199 d30v-*-*) fmt=elf bfd_gas=yes ;;
202 fr30-*-*) fmt=elf bfd_gas=yes ;;
204 hppa-*-linux-gnu*) case ${cpu} in
206 fmt=elf em=hppalinux64;;
210 hppa-*-*elf*) fmt=elf em=hppa ;;
211 hppa-*-lites*) fmt=elf em=hppa ;;
212 hppa-*-osf*) fmt=som em=hppa ;;
213 hppa-*-rtems*) fmt=elf em=hppa ;;
214 hppa-*-hpux11*) case ${cpu} in
220 hppa-*-hpux*) fmt=som em=hppa ;;
221 hppa-*-mpeix*) fmt=som em=hppa ;;
222 hppa-*-bsd*) fmt=som em=hppa ;;
223 hppa-*-hiux*) fmt=som em=hppa ;;
225 h8300-*-rtems*) fmt=coff ;;
226 h8300-*-coff) fmt=coff ;;
228 i370-*-elf* | i370-*-linux*) fmt=elf ;;
229 i386-ibm-aix*) fmt=coff em=i386aix ;;
230 i386-sequent-bsd*) fmt=aout em=dynix bfd_gas=yes ;;
231 i386-*-beospe*) fmt=coff em=pe bfd_gas=yes ;;
232 i386-*-beoself* | i386-*-beos*) fmt=elf bfd_gas=yes ;;
233 i386-*-bsd*) fmt=aout em=386bsd ;;
234 i386-*-netbsd0.8) fmt=aout em=386bsd ;;
235 i386-*-netbsd*) fmt=aout em=nbsd bfd_gas=yes;;
236 i386-*-openbsd*) fmt=aout em=nbsd bfd_gas=yes;;
237 i386-*-linux*aout* | i386-*-linuxoldld) fmt=aout em=linux ;;
238 i386-*-linux*coff*) fmt=coff em=linux ;;
239 i386-*-linux-gnu*) fmt=elf em=linux bfd_gas=yes ;;
240 i386-*-lynxos*) fmt=coff em=lynx ;;
242 i386-*-sysv[45]* | i386-*-solaris* | i386-*-elf)
243 fmt=elf bfd_gas=yes ;;
244 i386-*-freebsdaout* | i386-*-freebsd[12].* | i386-*-freebsd[12])
245 fmt=aout em=386bsd ;;
247 i386-*-freebsd*) fmt=elf bfd_gas=yes ;;
248 i386-*-coff | i386-*-sysv* | i386-*-sco3.2v5*coff | i386-*-isc*)
250 i386-*-sco3.2v5*) fmt=elf
251 if test ${this_target} = $target; then
252 AC_DEFINE(SCO_ELF, 1,
253 [Define if defaulting to ELF on SCO 5.])
256 i386-*-sco3.2*) fmt=coff ;;
257 i386-*-vsta) fmt=aout ;;
258 i386-*-msdosdjgpp* | i386-*-go32* | i386-go32-rtems*)
259 fmt=coff em=go32 bfd_gas=yes
260 AC_DEFINE(STRICTCOFF, 1, [Using strict COFF?])
262 i386-*-rtemself*) fmt=elf ;;
263 i386-*-rtems*) fmt=coff ;;
264 i386-*-gnu*) fmt=elf ;;
266 fmt=aout em=mach bfd_gas=yes ;;
267 i386-*-msdos*) fmt=aout ;;
268 i386-*-moss*) fmt=elf ;;
269 i386-*-pe) fmt=coff em=pe bfd_gas=yes ;;
270 i386-*-cygwin*) fmt=coff em=pe bfd_gas=yes ;;
271 i386-*-interix*) fmt=coff em=interix bfd_gas=yes ;;
272 i386-*-mingw32*) fmt=coff em=pe bfd_gas=yes ;;
273 i386-*-*nt*) fmt=coff em=pe bfd_gas=yes ;;
274 i386-*-vxworks*) fmt=aout ;;
275 i386-*-chaos) fmt=elf ;;
276 i860-stardent-sysv4* | i860-stardent-elf*)
277 fmt=elf bfd_gas=yes endian=little
278 AC_MSG_WARN(GAS support for ${generic_target} is preliminary and a work in progress) ;;
279 i960-*-bout) fmt=bout ;;
280 i960-*-coff) fmt=coff em=ic960 ;;
281 i960-*-rtems*) fmt=coff em=ic960 ;;
282 i960-*-nindy*) fmt=bout ;;
283 i960-*-vxworks4*) fmt=bout ;;
284 i960-*-vxworks5.0) fmt=bout ;;
285 i960-*-vxworks5.*) fmt=coff em=ic960 ;;
286 i960-*-vxworks*) fmt=bout ;;
287 i960-*-elf*) fmt=elf ;;
289 ia64-*-elf*) fmt=elf ;;
290 ia64-*-linux-gnu*) fmt=elf em=linux ;;
291 ia64-*-hpux*) fmt=elf em=hpux ;;
293 m32r-*-*) fmt=elf bfd_gas=yes ;;
295 m68hc11-*-*|m6811-*-*|m68hc12-*-*|m6812-*-*)fmt=elf bfd_gas=yes ;;
297 m68k-*-vxworks* | m68k-ericsson-ose | m68k-*-sunos*)
299 m68k-motorola-sysv*) fmt=coff em=delta ;;
300 m68k-bull-sysv3*) fmt=coff em=dpx2 ;;
301 m68k-apollo-*) fmt=coff em=apollo ;;
302 m68k-*-sysv4*) # must be before -sysv*
304 m68k-*-elf*) fmt=elf ;;
305 m68k-*-coff | m68k-*-sysv* | m68k-*-rtems*)
307 m68k-*-hpux*) fmt=hp300 em=hp300 ;;
308 m68k-*-linux*aout*) fmt=aout em=linux ;;
309 m68k-*-linux-gnu*) fmt=elf em=linux ;;
310 m68k-*-gnu*) fmt=elf ;;
311 m68k-*-lynxos*) fmt=coff em=lynx ;;
312 m68k-*-netbsd*) fmt=aout em=nbsd bfd_gas=yes ;;
313 m68k-*-openbsd*) fmt=aout em=nbsd bfd_gas=yes ;;
314 m68k-apple-aux*) fmt=coff em=aux ;;
315 m68k-*-psos*) fmt=elf em=psos;;
317 m88k-motorola-sysv3*) fmt=coff em=delt88 ;;
318 m88k-*-coff*) fmt=coff ;;
320 mcore-*-elf) fmt=elf bfd_gas=yes ;;
321 mcore-*-pe) fmt=coff em=pe bfd_gas=yes ;;
323 # don't change em like *-*-bsd does
324 mips-dec-netbsd*) fmt=elf endian=little ;;
325 mips-dec-openbsd*) fmt=elf endian=little ;;
326 mips-dec-bsd*) fmt=aout endian=little ;;
327 mips-sony-bsd*) fmt=ecoff ;;
328 mips-*-bsd*) AC_MSG_ERROR(Unknown vendor for mips-bsd configuration.) ;;
329 mips-*-ultrix*) fmt=ecoff endian=little ;;
330 mips-*-osf*) fmt=ecoff endian=little ;;
331 mips-*-ecoff*) fmt=ecoff ;;
332 mips-*-ecoff*) fmt=ecoff ;;
333 mips-*-pe*) fmt=coff endian=little em=pe ;;
334 mips-*-irix6*) fmt=elf ;;
335 mips-*-irix5*) fmt=elf ;;
336 mips-*-irix*) fmt=ecoff ;;
337 mips-*-lnews*) fmt=ecoff em=lnews ;;
338 mips-*-riscos*) fmt=ecoff ;;
339 mips-*-sysv4*MP*) fmt=elf em=tmips ;;
340 mips-*-sysv*) fmt=ecoff ;;
341 mips-*-elf* | mips-*-rtems* | mips-*-linux-gnu* | mips-*-gnu* | mips-*-openbsd*)
343 mips-*-vxworks*) fmt=elf
344 AC_DEFINE(MIPS_STABS_ELF, 1,
345 [Use ELF stabs for MIPS, not ECOFF stabs])
347 mn10200-*-*) fmt=elf bfd_gas=yes ;;
348 mn10300-*-*) fmt=elf bfd_gas=yes ;;
350 ppc-*-pe | ppc-*-cygwin* | ppc-*-winnt*)
352 ppc-*-aix*) fmt=coff ;;
353 ppc-*-beos*) fmt=coff ;;
354 ppc-*-*bsd* | ppc-*-elf* | ppc-*-eabi* | ppc-*-sysv4*)
356 ppc-*-linux-gnu*) fmt=elf
359 *) AC_MSG_ERROR(GNU/Linux must be configured big endian) ;;
362 ppc-*-solaris*) fmt=elf
363 if test ${this_target} = $target; then
364 AC_DEFINE(TARGET_SOLARIS_COMMENT, 1,
365 [Define if default target is PowerPC Solaris.])
367 if test x${endian} = xbig; then
368 AC_MSG_ERROR(Solaris must be configured little endian)
371 ppc-*-rtems*) fmt=elf ;;
372 ppc-*-macos* | ppc-*-mpw*)
374 ppc-*-netware*) fmt=elf em=ppcnw ;;
375 ppc-*-vxworks*) fmt=elf ;;
377 sh-*-linux*) fmt=elf em=linux ;;
378 sh-*-elf*) fmt=elf ;;
379 sh-*-coff*) fmt=coff ;;
380 sh-*-pe*) fmt=coff em=pe bfd_gas=yes;;
381 sh-*-rtemself*) fmt=elf ;;
382 sh-*-rtems*) fmt=coff ;;
384 ns32k-pc532-mach* | ns32k-pc532-ux*) fmt=aout em=pc532mach ;;
385 ns32k-pc532-netbsd* | ns32k-pc532-lites*) fmt=aout em=nbsd532 ;;
386 ns32k-pc532-openbsd*) fmt=aout em=nbsd532 ;;
388 sparc-*-rtemsaout*) fmt=aout ;;
389 sparc-*-rtemself*) fmt=elf ;;
390 sparc-*-rtems*) fmt=elf ;;
391 sparc-*-sunos4*) fmt=aout em=sun3 ;;
392 sparc-*-aout | sparc*-*-vxworks*)
393 fmt=aout em=sparcaout ;;
394 sparc-*-coff) fmt=coff ;;
395 sparc-*-linux*aout*) fmt=aout em=linux ;;
396 sparc-*-linux-gnu*) fmt=elf em=linux ;;
397 sparc-*-lynxos*) fmt=coff em=lynx ;;
398 sparc-fujitsu-none) fmt=aout ;;
399 sparc-*-elf | sparc-*-sysv4* | sparc-*-solaris*)
401 sparc-*-netbsd*) em=nbsd bfd_gas=yes
410 sparc-*-openbsd*) fmt=aout em=nbsd ;;
412 strongarm-*-coff) fmt=coff ;;
413 strongarm-*-elf) fmt=elf ;;
414 xscale-*-coff) fmt=coff ;;
415 xscale-*-elf) fmt=elf ;;
417 tic30-*-*aout*) fmt=aout bfd_gas=yes ;;
418 tic30-*-*coff*) fmt=coff bfd_gas=yes ;;
419 tic54x-*-* | c54x*-*-*)
420 fmt=coff bfd_gas=yes need_libm=yes;;
421 tic80-*-*) fmt=coff ;;
423 v850-*-*) fmt=elf bfd_gas=yes ;;
424 v850e-*-*) fmt=elf bfd_gas=yes ;;
425 v850ea-*-*) fmt=elf bfd_gas=yes ;;
427 vax-*-bsd* | vax-*-ultrix*)
429 vax-*-vms) fmt=vms ;;
432 z8k-*-coff | z8k-*-sim)
437 *-*-aout | *-*-scout)
443 *-*-generic) fmt=generic ;;
444 *-*-xray | *-*-hms) fmt=coff ;;
446 *-*-elf | *-*-sysv4* | *-*-solaris*)
447 AC_MSG_WARN(GAS support for ${generic_target} is incomplete.)
449 *-*-vxworks) fmt=aout ;;
450 *-*-netware) fmt=elf ;;
453 if test ${this_target} = $target ; then
455 if test x${endian} = xbig; then
457 elif test x${endian} = xlittle; then
460 if test x${endian_def} != x; then
461 AC_DEFINE_UNQUOTED(TARGET_BYTES_BIG_ENDIAN, $endian_def,
462 [Define as 1 if big endian.])
466 case ${cpu_type}-${fmt} in
467 alpha*-*) bfd_gas=yes ;;
468 arm-*) bfd_gas=yes ;;
470 # i386-aout) bfd_gas=preferred ;;
471 ia64*-*) bfd_gas=yes ;;
472 mips-*) bfd_gas=yes ;;
473 ns32k-*) bfd_gas=yes ;;
474 ppc-*) bfd_gas=yes ;;
475 sparc-*) bfd_gas=yes ;;
476 strongarm-*) bfd_gas=yes ;;
477 xscale-*) bfd_gas=yes ;;
478 *-elf) bfd_gas=yes ;;
479 *-ecoff) bfd_gas=yes ;;
480 *-som) bfd_gas=yes ;;
481 #enable bfd for coff and aout to allow testing if a bfd target is
482 #the primary target, but not for coff or aout as the primary target
483 i386-coff) if test x${primary_bfd_gas} = xyes; then bfd_gas=yes; fi ;;
484 i386-aout) if test x${primary_bfd_gas} = xyes; then bfd_gas=yes; fi ;;
488 # Other random stuff.
490 # Do we need the opcodes library?
498 case "${enable_shared}" in
499 yes) shared_opcodes=true ;;
500 *opcodes*) shared_opcodes=true ;;
501 *) shared_opcodes=false ;;
503 if test "${shared_opcodes}" = "true"; then
504 # A shared libopcodes must be linked against libbfd.
510 # Any other special object files needed ?
517 case ${extra_objects} in
519 *) extra_objects="$extra_objects m68k-parse.o" ;;
524 echo ${extra_objects} | grep -s "itbl-parse.o"
525 if test $? -ne 0 ; then
526 extra_objects="$extra_objects itbl-parse.o"
529 echo ${extra_objects} | grep -s "itbl-lex.o"
530 if test $? -ne 0 ; then
531 extra_objects="$extra_objects itbl-lex.o"
534 echo ${extra_objects} | grep -s "itbl-ops.o"
535 if test $? -ne 0 ; then
536 extra_objects="$extra_objects itbl-ops.o"
541 if test $this_target = $target ; then
542 AC_DEFINE_UNQUOTED(DEFAULT_ARCH, "${arch}", [Default architecture.])
549 if test $using_cgen = yes ; then
550 case "x${extra_objects}" in
552 *) extra_objects="$extra_objects cgen.o" ;;
556 # See if we really can support this configuration with the emulation code.
558 if test $this_target = $target ; then
559 primary_bfd_gas=$bfd_gas
563 if test $bfd_gas = no ; then
564 # Can't support other configurations this way.
567 elif test $bfd_gas = no ; then
568 # Can't support this configuration.
572 # From target name and format, produce a list of supported emulations.
574 case ${generic_target}-${fmt} in
575 mips-*-irix5*-*) emulation="mipsbelf mipslelf mipself mipsbecoff mipslecoff mipsecoff" ;;
576 mips-*-linux-gnu*-*) case "$endian" in
577 big) emulation="mipsbelf mipslelf mipself mipsbecoff mipslecoff mipsecoff" ;;
578 *) emulation="mipslelf mipsbelf mipself mipslecoff mipsbecoff mipsecoff" ;;
580 mips-*-lnews*-ecoff) ;;
581 mips-*-*-ecoff) case "$endian" in
582 big) emulation="mipsbecoff mipslecoff mipsecoff" ;;
583 *) emulation="mipslecoff mipsbecoff mipsecoff" ;;
585 mips-*-*-elf) case "$endian" in
586 big) emulation="mipsbelf mipslelf mipself" ;;
587 *) emulation="mipslelf mipsbelf mipself" ;;
589 mips-*-sysv4*MP*-*) emulation="mipsbelf mipslelf mipself mipsbecoff mipslecoff mipsecoff" ;;
590 # i386-pc-pe-coff != i386-pc-coff.
592 # Uncommenting the next line will turn on support for i386 AOUT
593 # for the default linux configuration
594 # i386-*-linux*-elf) emulation="i386elf i386aout" ;;
596 i386-*-aout) emulation="i386aout" ;;
597 i386-*-coff) emulation="i386coff" ;;
598 i386-*-elf) emulation="i386elf" ;;
600 # Always all formats. Having a.out first makes it the default.
601 cris-*-*) emulation="crisaout criself" ;;
604 emulations="$emulations $emulation"
608 # Turn on all targets if possible
609 if test ${all_targets} = "yes"; then
610 case ${target_cpu_type} in
612 case ${obj_format} in
614 emulations="$emulations i386coff i386elf"
617 emulations="$emulations i386aout i386elf"
620 emulations="$emulations i386aout i386coff"
627 # Assign floating point type. Most processors with FP support
628 # IEEE FP. On those that don't support FP at all, usually IEEE
630 case ${target_cpu} in
631 vax | tahoe ) atof=${target_cpu} ;;
635 case "${obj_format}" in
636 "") AC_MSG_ERROR(GAS does not know what format to use for target ${target}) ;;
639 # Unfortunately the cpu in cpu-opc.h file isn't always $(TARGET_CPU).
641 if test $using_cgen = yes ; then
642 case ${target_cpu} in
643 *) cgen_cpu_prefix=${target_cpu} ;;
645 AC_SUBST(cgen_cpu_prefix)
646 AC_DEFINE(USING_CGEN, 1, [Using cgen code?])
650 dnl Make sure the desired support files exist.
653 if test ! -r ${srcdir}/config/tc-${target_cpu_type}.c; then
654 AC_MSG_ERROR(GAS does not support target CPU ${target_cpu_type})
657 if test ! -r ${srcdir}/config/obj-${obj_format}.c; then
658 AC_MSG_ERROR(GAS does not have support for object file format ${obj_format})
661 case ${user_bfd_gas}-${primary_bfd_gas} in
663 # We didn't override user's choice.
666 AC_MSG_WARN(Use of BFD is required for ${target}; overriding config options.)
678 # User specified nothing.
682 # Some COFF configurations want these random other flags set.
683 case ${obj_format} in
685 case ${target_cpu_type} in
686 i386) AC_DEFINE(I386COFF, 1, [Using i386 COFF?]) ;;
687 m68k) AC_DEFINE(M68KCOFF, 1, [Using m68k COFF?]) ;;
688 m88k) AC_DEFINE(M88KCOFF, 1, [Using m88k COFF?]) ;;
693 # Getting this done right is going to be a bitch. Each configuration specified
694 # with --enable-targets=... should be checked for environment, format, cpu, and
697 # For each configuration, the necessary object file support code must be linked
698 # in. This might be only one, it might be up to four. The necessary emulation
699 # code needs to be provided, too.
701 # And then there's "--enable-targets=all"....
703 # For now, just always do it for MIPS ELF or ECOFF configurations. Sigh.
705 formats="${obj_format}"
709 for em in . $emulations ; do
713 fmt=elf file=mipself ;;
714 mipsbecoff | mipslecoff)
715 fmt=ecoff file=mipsecoff ;;
723 formats="$formats $fmt"
724 emfiles="$emfiles e-$file.o"
725 EMULATIONS="$EMULATIONS &$em,"
729 if test `set . $formats ; shift ; echo $#` -gt 1 ; then
730 for fmt in $formats ; do
732 aout) AC_DEFINE(OBJ_MAYBE_AOUT, 1, [a.out support?]) ;;
733 bout) AC_DEFINE(OBJ_MAYBE_BOUT, 1, [b.out support?]) ;;
734 coff) AC_DEFINE(OBJ_MAYBE_COFF, 1, [COFF support?]) ;;
735 ecoff) AC_DEFINE(OBJ_MAYBE_ECOFF, 1, [ECOFF support?]) ;;
736 elf) AC_DEFINE(OBJ_MAYBE_ELF, 1, [ELF support?]) ;;
737 generic) AC_DEFINE(OBJ_MAYBE_GENERIC, 1, [generic support?]) ;;
738 hp300) AC_DEFINE(OBJ_MAYBE_HP300, 1, [HP300 support?]) ;;
739 ieee) AC_DEFINE(OBJ_MAYBE_IEEE, 1, [IEEE support?]) ;;
740 som) AC_DEFINE(OBJ_MAYBE_SOM, 1, [SOM support?]) ;;
741 vms) AC_DEFINE(OBJ_MAYBE_VMS, 1, [VMS support?]) ;;
743 extra_objects="$extra_objects obj-$fmt.o"
747 if test `set . $emfiles ; shift ; echo $#` -gt 0 ; then
748 DEFAULT_EMULATION=`set . $emulations ; echo $2`
749 # e-mips* has more than one emulation per file, e-i386* has just one at the
750 # moment. If only one emulation is specified, then don't define
751 # USE_EMULATIONS or include any of the e-files as they will only be bloat.
752 case "${obj_format}${emfiles}" in
754 extra_objects="$extra_objects $emfiles"
755 AC_DEFINE(USE_EMULATIONS, 1, [Use emulation support?]) ;;
758 AC_SUBST(extra_objects)
759 AC_DEFINE_UNQUOTED(EMULATIONS, $EMULATIONS, [Supported emulations.])
760 AC_DEFINE_UNQUOTED(DEFAULT_EMULATION, "$DEFAULT_EMULATION",
761 [Default emulation.])
763 case ${primary_bfd_gas}-${target_cpu_type}-${obj_format} in
764 yes-*-coff) need_bfd=yes ;;
765 no-*-coff) need_bfd=yes
766 AC_DEFINE(MANY_SEGMENTS, 1, [old COFF support?]) ;;
769 reject_dev_configs=yes
771 case ${reject_dev_configs}-${dev} in
773 AC_MSG_ERROR(GAS does not support the ${generic_target} configuration.)
777 AC_SUBST(target_cpu_type)
780 AC_SUBST(install_tooldir)
782 dnl AC_SUBST(emulation)
784 case "${primary_bfd_gas}" in
785 yes) AC_DEFINE(BFD_ASSEMBLER, 1, [Use BFD interface?])
789 # do we need the opcodes library?
790 case "${need_opcodes}" in
792 OPCODES_LIB=../opcodes/libopcodes.la
796 case "${need_bfd}" in
798 BFDLIB=../bfd/libbfd.la
799 ALL_OBJ_DEPS="$ALL_OBJ_DEPS ../bfd/bfd.h"
804 AC_SUBST(OPCODES_LIB)
806 AC_SUBST(ALL_OBJ_DEPS)
808 AC_DEFINE_UNQUOTED(TARGET_ALIAS, "${target_alias}", [Target alias.])
809 AC_DEFINE_UNQUOTED(TARGET_CANONICAL, "${target}", [Canonical target.])
810 AC_DEFINE_UNQUOTED(TARGET_CPU, "${target_cpu}", [Target CPU.])
811 AC_DEFINE_UNQUOTED(TARGET_VENDOR, "${target_vendor}", [Target vendor.])
812 AC_DEFINE_UNQUOTED(TARGET_OS, "${target_os}", [Target OS.])
825 AC_CHECK_HEADERS(string.h stdlib.h memory.h strings.h unistd.h stdarg.h varargs.h errno.h sys/types.h)
827 # Put this here so that autoconf's "cross-compiling" message doesn't confuse
828 # people who are not cross-compiling but are compiling cross-assemblers.
829 AC_MSG_CHECKING(whether compiling a cross-assembler)
830 if test "${host}" = "${target}"; then
834 AC_DEFINE(CROSS_COMPILE, 1, [Compiling cross-assembler?])
836 AC_MSG_RESULT($cross_gas)
838 dnl ansidecl.h will deal with const
843 # VMS doesn't have unlink.
844 AC_CHECK_FUNCS(unlink remove, break)
846 # Some systems don't have sbrk().
849 # do we need the math library?
850 case "${need_libm}" in
857 # Some non-ANSI preprocessors botch requoting inside strings. That's bad
858 # enough, but on some of those systems, the assert macro relies on requoting
862 # On some systems, the system header files may not declare malloc, realloc,
863 # and free. There are places where gas needs these functions to have been
864 # declared -- such as when taking their addresses.
872 #ifdef HAVE_STRINGS_H
883 GAS_CHECK_DECL_NEEDED(strstr, f, char *(*f)(), $gas_test_headers)
884 GAS_CHECK_DECL_NEEDED(malloc, f, char *(*f)(), $gas_test_headers)
885 GAS_CHECK_DECL_NEEDED(free, f, void (*f)(), $gas_test_headers)
886 GAS_CHECK_DECL_NEEDED(sbrk, f, char *(*f)(), $gas_test_headers)
887 GAS_CHECK_DECL_NEEDED(environ, f, char **f, $gas_test_headers)
889 # Does errno.h declare errno, or do we have to add a separate declaration
891 GAS_CHECK_DECL_NEEDED(errno, f, int f, [
897 dnl This must come last.
899 dnl We used to make symlinks to files in the source directory, but now
900 dnl we just use the right name for .c files, and create .h files in
901 dnl the build directory which include the right .h file. Make sure
902 dnl the old symlinks don't exist, so that a reconfigure in an existing
903 dnl directory behaves reasonably.
905 AC_OUTPUT(Makefile doc/Makefile ${GDBINIT}:gdbinit.in po/Makefile.in:po/Make-in,
906 [rm -f targ-cpu.c targ-cpu.h obj-format.h obj-format.c targ-env.h atof-targ.c itbl-cpu.h
907 echo '#include "tc-'"${target_cpu_type}"'.h"' > targ-cpu.h
908 echo '#include "obj-'"${obj_format}"'.h"' > obj-format.h
909 echo '#include "te-'"${te_file}"'.h"' > targ-env.h
910 echo '#include "itbl-'"${target_cpu_type}"'.h"' > itbl-cpu.h
911 if test "x$cgen_cpu_prefix" != x ; then
912 echo '#include "opcodes/'"${cgen_cpu_prefix}"'-desc.h"' > cgen-desc.h
915 sed -e '/POTFILES =/r po/POTFILES' po/Makefile.in > po/Makefile],
916 [target_cpu_type=${target_cpu_type}
917 cgen_cpu_prefix=${cgen_cpu_prefix}
918 obj_format=${obj_format}