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
13 AM_INIT_AUTOMAKE(gas, 2.10.90)
18 AC_ARG_ENABLE(bfd-assembler,
19 [ --enable-bfd-assembler use BFD back end for writing object files],
20 [case "${enableval}" in
21 yes) need_bfd=yes user_bfd_gas=yes ;;
22 no) user_bfd_gas=no ;;
23 *) AC_MSG_ERROR(bad value ${enableval} given for bfd-assembler option) ;;
25 AC_ARG_ENABLE(targets,
26 [ targets alternative target configurations besides the primary],
27 [case "${enableval}" in
28 yes | "") AC_ERROR(enable-targets option must specify target names or 'all')
30 no) enable_targets= ;;
31 *) enable_targets=$enableval ;;
33 AC_ARG_ENABLE(commonbfdlib,
34 [ --enable-commonbfdlib build shared BFD/opcodes/libiberty library],
35 [case "${enableval}" in
36 yes) commonbfdlib=true ;;
37 no) commonbfdlib=false ;;
38 *) AC_MSG_ERROR([bad value ${enableval} for BFD commonbfdlib option]) ;;
43 build_warnings="-W -Wall"
44 AC_ARG_ENABLE(build-warnings,
45 [ --enable-build-warnings Enable build-time compiler warnings if gcc is used],
46 [case "${enableval}" in
48 no) build_warnings="-w";;
49 ,*) t=`echo "${enableval}" | sed -e "s/,/ /g"`
50 build_warnings="${build_warnings} ${t}";;
51 *,) t=`echo "${enableval}" | sed -e "s/,/ /g"`
52 build_warnings="${t} ${build_warnings}";;
53 *) build_warnings=`echo "${enableval}" | sed -e "s/,/ /g"`;;
55 if test x"$silent" != x"yes" && test x"$build_warnings" != x""; then
56 echo "Setting warning flags = $build_warnings" 6>&1
59 if test "x${build_warnings}" != x -a "x$GCC" = xyes ; then
60 WARN_CFLAGS="${build_warnings}"
64 # Generate a header file
65 AM_CONFIG_HEADER(config.h:config.in)
67 # If we are on a DOS filesystem, we must use gdb.ini rather than
71 *-*-msdos* | *-*-go32* | *-*-mingw32* | *-*-cygwin* | *-*-windows*)
79 # Makefile target for installing gas in $(tooldir)/bin.
80 install_tooldir=install-exec-tooldir
84 if test -n "$enable_targets" ; then
85 for t in `echo $enable_targets | sed 's/,/ /g'`; do
86 if test $t = "all"; then
90 result=`$ac_config_sub $t 2>/dev/null`
91 if test -n "$result" ; then
92 canon_targets="$canon_targets $result"
94 # # Permit "all", etc. We don't support it yet though.
95 # canon_targets="$canon_targets $t"
98 GAS_UNIQ(canon_targets)
103 for this_target in $target $canon_targets ; do
106 eval `echo $this_target | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/cpu=\1 vendor=\2 os=\3/'`
109 # check for architecture variants
113 alpha*) cpu_type=alpha ;;
114 armeb) cpu_type=arm endian=big ;;
115 arm*) cpu_type=arm endian=little ;;
116 armb*) cpu_type=arm endian=little ;;
117 armv*l) cpu_type=arm endian=little ;;
118 armv*b) cpu_type=arm endian=big ;;
119 strongarm*) cpu_type=arm endian=little ;;
120 thumb*) cpu_type=arm endian=little ;;
121 hppa*) cpu_type=hppa ;;
123 i[456]86) cpu_type=i386 ;;
124 ia64) cpu_type=ia64 ;;
125 m6811|m6812) cpu_type=m68hc11 ;;
126 m680[012346]0) cpu_type=m68k ;;
128 m68008) cpu_type=m68k ;;
129 m683??) cpu_type=m68k ;;
130 m5200) cpu_type=m68k ;;
131 m8*) cpu_type=m88k ;;
132 mips*el) cpu_type=mips endian=little ;;
133 mips*) cpu_type=mips endian=big ;;
134 pjl*) cpu_type=pj endian=little ;;
135 pj*) cpu_type=pj endian=big ;;
136 powerpcle*) cpu_type=ppc endian=little ;;
137 powerpc*) cpu_type=ppc endian=big ;;
138 rs6000*) cpu_type=ppc ;;
139 sparclite*) cpu_type=sparc arch=sparclite ;;
140 sparclet*) cpu_type=sparc arch=sparclet ;;
141 sparc64*) cpu_type=sparc arch=v9-64 ;;
142 sparc86x*) cpu_type=sparc arch=sparc86x ;;
143 sparc*) cpu_type=sparc arch=sparclite ;; # ??? See tc-sparc.c.
144 v850*) cpu_type=v850 ;;
145 *) cpu_type=${cpu} ;;
148 if test ${this_target} = $target ; then
149 target_cpu_type=${cpu_type}
150 elif test ${target_cpu_type} != ${cpu_type} ; then
154 generic_target=${cpu_type}-$vendor-$os
159 # assign object format
160 case ${generic_target} in
161 a29k-*-coff) fmt=coff ;;
162 a29k-amd-udi) fmt=coff ;;
163 a29k-amd-ebmon) fmt=coff ;;
164 a29k-nyu-sym1) fmt=coff ;;
165 a29k-*-vxworks*) fmt=coff ;;
167 alpha*-*-*vms*) fmt=evax ;;
168 alpha*-*-netware*) fmt=ecoff ;;
169 alpha*-*-openbsd*) fmt=ecoff ;;
170 alpha*-*-osf*) fmt=ecoff ;;
171 alpha*-*-linuxecoff*) fmt=ecoff ;;
172 alpha*-*-linux-gnu*) fmt=elf em=linux ;;
173 alpha*-*-netbsd*) fmt=elf em=nbsd ;;
175 arc-*-elf*) fmt=elf bfd_gas=yes ;;
177 arm-*-aout) fmt=aout ;;
178 arm-*-coff | thumb-*-coff) fmt=coff ;;
179 arm-*-elf | thumb-*-elf) fmt=elf ;;
180 arm*-*-conix*) fmt=elf ;;
181 arm-*-linux*aout*) fmt=aout em=linux ;;
182 arm*-*-linux-gnu*) fmt=elf em=linux ;;
183 arm-*-netbsd*) fmt=aout em=nbsd ;;
184 arm-*-oabi | thumb-*-oabi) fmt=elf ;;
185 arm-epoc-pe | thumb-epoc-pe) fmt=coff em=epoc-pe ;;
186 arm-*-wince) fmt=coff em=wince-pe ;;
187 arm-*-pe | thumb-*-pe) fmt=coff em=pe ;;
188 arm-*-riscix*) fmt=aout em=riscix ;;
190 avr-*-*) fmt=elf bfd_gas=yes ;;
192 cris-*-*) fmt=multi bfd_gas=yes ;;
194 d10v-*-*) fmt=elf bfd_gas=yes ;;
195 d30v-*-*) fmt=elf bfd_gas=yes ;;
198 fr30-*-*) fmt=elf bfd_gas=yes ;;
200 hppa-*-linux-gnu*) case ${cpu} in
202 fmt=elf em=hppalinux64;;
206 hppa-*-*elf*) fmt=elf em=hppa ;;
207 hppa-*-lites*) fmt=elf em=hppa ;;
208 hppa-*-osf*) fmt=som em=hppa ;;
209 hppa-*-rtems*) fmt=elf em=hppa ;;
210 hppa-*-hpux11*) case ${cpu} in
216 hppa-*-hpux*) fmt=som em=hppa ;;
217 hppa-*-mpeix*) fmt=som em=hppa ;;
218 hppa-*-bsd*) fmt=som em=hppa ;;
219 hppa-*-hiux*) fmt=som em=hppa ;;
221 h8300-*-coff) fmt=coff ;;
223 i370-*-elf* | i370-*-linux*) fmt=elf ;;
224 i386-ibm-aix*) fmt=coff em=i386aix ;;
225 i386-sequent-bsd*) fmt=aout em=dynix bfd_gas=yes ;;
226 i386-*-beospe*) fmt=coff em=pe bfd_gas=yes ;;
227 i386-*-beoself* | i386-*-beos*) fmt=elf bfd_gas=yes ;;
228 i386-*-bsd*) fmt=aout em=386bsd ;;
229 i386-*-netbsd0.8) fmt=aout em=386bsd ;;
230 i386-*-netbsd*) fmt=aout em=nbsd bfd_gas=yes;;
231 i386-*-openbsd*) fmt=aout em=nbsd bfd_gas=yes;;
232 i386-*-linux*aout* | i386-*-linuxoldld) fmt=aout em=linux ;;
233 i386-*-linux*coff*) fmt=coff em=linux ;;
234 i386-*-linux-gnu*) fmt=elf em=linux bfd_gas=yes ;;
235 i386-*-lynxos*) fmt=coff em=lynx ;;
236 i386-*-sysv4* | i386-*-solaris* | i386-*-elf)
237 fmt=elf bfd_gas=yes ;;
239 i386-*-freebsdaout* | i386-*-freebsd[12].* | i386-*-freebsd[12])
240 fmt=aout em=386bsd ;;
242 i386-*-freebsd*) fmt=elf bfd_gas=yes ;;
243 i386-*-coff | i386-*-sysv* | i386-*-sco3.2v5*coff | i386-*-isc*)
245 i386-*-sco3.2v5*) fmt=elf
246 if test ${this_target} = $target; then
247 AC_DEFINE(SCO_ELF, 1,
248 [Define if defaulting to ELF on SCO 5.])
251 i386-*-sco3.2*) fmt=coff ;;
252 i386-*-vsta) fmt=aout ;;
253 i386-*-msdosdjgpp* | i386-*-go32* | i386-go32-rtems*)
255 i386-*-rtemself*) fmt=elf ;;
256 i386-*-rtems*) fmt=coff ;;
257 i386-*-gnu*) fmt=elf ;;
259 fmt=aout em=mach bfd_gas=yes ;;
260 i386-*-msdos*) fmt=aout ;;
261 i386-*-moss*) fmt=elf ;;
262 i386-*-pe) fmt=coff em=pe bfd_gas=yes ;;
263 i386-*-cygwin*) fmt=coff em=pe bfd_gas=yes ;;
264 i386-*-interix*) fmt=coff em=interix bfd_gas=yes ;;
265 i386-*-mingw32*) fmt=coff em=pe bfd_gas=yes ;;
266 i386-*-*nt*) fmt=coff em=pe bfd_gas=yes ;;
267 i386-*-vxworks*) fmt=aout ;;
268 i960-*-bout) fmt=bout ;;
269 i960-*-coff) fmt=coff em=ic960 ;;
270 i960-*-rtems*) fmt=coff em=ic960 ;;
271 i960-*-nindy*) fmt=bout ;;
272 i960-*-vxworks4*) fmt=bout ;;
273 i960-*-vxworks5.0) fmt=bout ;;
274 i960-*-vxworks5.*) fmt=coff em=ic960 ;;
275 i960-*-vxworks*) fmt=bout ;;
276 i960-*-elf*) fmt=elf ;;
278 ia64-*-elf*) fmt=elf ;;
279 ia64-*-linux-gnu*) fmt=elf em=linux ;;
281 m32r-*-*) fmt=elf bfd_gas=yes ;;
283 m68hc11-*-*|m6811-*-*|m68hc12-*-*|m6812-*-*)fmt=elf bfd_gas=yes ;;
285 m68k-*-vxworks* | m68k-ericsson-ose | m68k-*-sunos*)
287 m68k-motorola-sysv*) fmt=coff em=delta ;;
288 m68k-bull-sysv3*) fmt=coff em=dpx2 ;;
289 m68k-apollo-*) fmt=coff em=apollo ;;
290 m68k-*-sysv4*) # must be before -sysv*
292 m68k-*-elf*) fmt=elf ;;
293 m68k-*-coff | m68k-*-sysv* | m68k-*-rtems*)
295 m68k-*-hpux*) fmt=hp300 em=hp300 ;;
296 m68k-*-linux*aout*) fmt=aout em=linux ;;
297 m68k-*-linux-gnu*) fmt=elf em=linux ;;
298 m68k-*-gnu*) fmt=elf ;;
299 m68k-*-lynxos*) fmt=coff em=lynx ;;
300 m68k-*-netbsd*) fmt=aout em=nbsd bfd_gas=yes ;;
301 m68k-*-openbsd*) fmt=aout em=nbsd bfd_gas=yes ;;
302 m68k-apple-aux*) fmt=coff em=aux ;;
303 m68k-*-psos*) fmt=elf em=psos;;
305 m88k-motorola-sysv3*) fmt=coff em=delt88 ;;
306 m88k-*-coff*) fmt=coff ;;
308 mcore-*-elf) fmt=elf bfd_gas=yes ;;
309 mcore-*-pe) fmt=coff em=pe bfd_gas=yes ;;
311 # don't change em like *-*-bsd does
312 mips-dec-netbsd*) fmt=elf endian=little ;;
313 mips-dec-openbsd*) fmt=elf endian=little ;;
314 mips-dec-bsd*) fmt=aout endian=little ;;
315 mips-sony-bsd*) fmt=ecoff ;;
316 mips-*-bsd*) AC_MSG_ERROR(Unknown vendor for mips-bsd configuration.) ;;
317 mips-*-ultrix*) fmt=ecoff endian=little ;;
318 mips-*-osf*) fmt=ecoff endian=little ;;
319 mips-*-ecoff*) fmt=ecoff ;;
320 mips-*-ecoff*) fmt=ecoff ;;
321 mips-*-pe*) fmt=coff endian=little em=pe ;;
322 mips-*-irix6*) fmt=elf ;;
323 mips-*-irix5*) fmt=elf ;;
324 mips-*-irix*) fmt=ecoff ;;
325 mips-*-lnews*) fmt=ecoff em=lnews ;;
326 mips-*-riscos*) fmt=ecoff ;;
327 mips-*-sysv4*MP*) fmt=elf em=tmips ;;
328 mips-*-sysv*) fmt=ecoff ;;
329 mips-*-elf* | mips-*-rtems* | mips-*-linux-gnu* | mips-*-gnu* | mips-*-openbsd*)
331 mips-*-vxworks*) fmt=elf
332 AC_DEFINE(MIPS_STABS_ELF, 1,
333 [Use ELF stabs for MIPS, not ECOFF stabs])
335 mn10200-*-*) fmt=elf bfd_gas=yes ;;
336 mn10300-*-*) fmt=elf bfd_gas=yes ;;
338 ppc-*-pe | ppc-*-cygwin* | ppc-*-winnt*)
340 ppc-*-aix*) fmt=coff ;;
341 ppc-*-beos*) fmt=coff ;;
342 ppc-*-*bsd* | ppc-*-elf* | ppc-*-eabi* | ppc-*-sysv4*)
344 ppc-*-linux-gnu*) fmt=elf
347 *) AC_MSG_ERROR(GNU/Linux must be configured big endian) ;;
350 ppc-*-solaris*) fmt=elf
351 if test ${this_target} = $target; then
352 AC_DEFINE(TARGET_SOLARIS_COMMENT, 1,
353 [Define if default target is PowerPC Solaris.])
355 if test x${endian} = xbig; then
356 AC_MSG_ERROR(Solaris must be configured little endian)
359 ppc-*-rtems*) fmt=elf ;;
360 ppc-*-macos* | ppc-*-mpw*)
362 ppc-*-netware*) fmt=elf em=ppcnw ;;
363 ppc-*-vxworks*) fmt=elf ;;
365 sh-*-elf*) fmt=elf ;;
366 sh-*-coff*) fmt=coff ;;
367 sh-*-pe*) fmt=coff em=pe bfd_gas=yes;;
368 sh-*-rtemself*) fmt=elf ;;
369 sh-*-rtems*) fmt=coff ;;
371 ns32k-pc532-mach* | ns32k-pc532-ux*) fmt=aout em=pc532mach ;;
372 ns32k-pc532-netbsd* | ns32k-pc532-lites*) fmt=aout em=nbsd532 ;;
373 ns32k-pc532-openbsd*) fmt=aout em=nbsd532 ;;
375 sparc-*-rtems*) fmt=aout ;;
376 sparc-*-sunos4*) fmt=aout em=sun3 ;;
377 sparc-*-aout | sparc*-*-vxworks*)
378 fmt=aout em=sparcaout ;;
379 sparc-*-coff) fmt=coff ;;
380 sparc-*-linux*aout*) fmt=aout em=linux ;;
381 sparc-*-linux-gnu*) fmt=elf em=linux ;;
382 sparc-*-lynxos*) fmt=coff em=lynx ;;
383 sparc-fujitsu-none) fmt=aout ;;
384 sparc-*-elf | sparc-*-sysv4* | sparc-*-solaris*)
386 sparc-*-netbsd*) em=nbsd bfd_gas=yes
395 sparc-*-openbsd*) fmt=aout em=nbsd ;;
397 strongarm-*-coff) fmt=coff ;;
398 strongarm-*-elf) fmt=elf ;;
400 tic30-*-*aout*) fmt=aout bfd_gas=yes ;;
401 tic30-*-*coff*) fmt=coff bfd_gas=yes ;;
402 tic54x-*-* | c54x*-*-*)
403 fmt=coff bfd_gas=yes need_libm=yes;;
404 tic80-*-*) fmt=coff ;;
406 v850-*-*) fmt=elf bfd_gas=yes ;;
407 v850e-*-*) fmt=elf bfd_gas=yes ;;
408 v850ea-*-*) fmt=elf bfd_gas=yes ;;
410 vax-*-bsd* | vax-*-ultrix*)
412 vax-*-vms) fmt=vms ;;
415 z8k-*-coff | z8k-*-sim)
420 *-*-aout | *-*-scout)
426 *-*-generic) fmt=generic ;;
427 *-*-xray | *-*-hms) fmt=coff ;;
429 *-*-elf | *-*-sysv4* | *-*-solaris*)
430 AC_MSG_WARN(GAS support for ${generic_target} is incomplete.)
432 *-*-vxworks) fmt=aout ;;
433 *-*-netware) fmt=elf ;;
436 if test ${this_target} = $target ; then
438 if test x${endian} = xbig; then
440 elif test x${endian} = xlittle; then
443 if test x${endian_def} != x; then
444 AC_DEFINE_UNQUOTED(TARGET_BYTES_BIG_ENDIAN, $endian_def,
445 [Define as 1 if big endian.])
449 case ${cpu_type}-${fmt} in
450 alpha*-*) bfd_gas=yes ;;
451 arm-*) bfd_gas=yes ;;
453 # i386-aout) bfd_gas=preferred ;;
454 ia64*-*) bfd_gas=yes ;;
455 mips-*) bfd_gas=yes ;;
456 ns32k-*) bfd_gas=yes ;;
457 ppc-*) bfd_gas=yes ;;
458 sparc-*) bfd_gas=yes ;;
459 strongarm-*) bfd_gas=yes ;;
460 *-elf) bfd_gas=yes ;;
461 *-ecoff) bfd_gas=yes ;;
462 *-som) bfd_gas=yes ;;
463 #enable bfd for coff and aout to allow testing if a bfd target is
464 #the primary target, but not for coff or aout as the primary target
465 i386-coff) if test x${primary_bfd_gas} = xyes; then bfd_gas=yes; fi ;;
466 i386-aout) if test x${primary_bfd_gas} = xyes; then bfd_gas=yes; fi ;;
470 # Other random stuff.
472 # Do we need the opcodes library?
480 case "${enable_shared}" in
481 yes) shared_opcodes=true ;;
482 *opcodes*) shared_opcodes=true ;;
483 *) shared_opcodes=false ;;
485 if test "${shared_opcodes}" = "true"; then
486 # A shared libopcodes must be linked against libbfd.
492 # Any other special object files needed ?
499 case ${extra_objects} in
501 *) extra_objects="$extra_objects m68k-parse.o" ;;
506 echo ${extra_objects} | grep -s "itbl-parse.o"
507 if test $? -ne 0 ; then
508 extra_objects="$extra_objects itbl-parse.o"
511 echo ${extra_objects} | grep -s "itbl-lex.o"
512 if test $? -ne 0 ; then
513 extra_objects="$extra_objects itbl-lex.o"
516 echo ${extra_objects} | grep -s "itbl-ops.o"
517 if test $? -ne 0 ; then
518 extra_objects="$extra_objects itbl-ops.o"
523 if test $this_target = $target ; then
524 AC_DEFINE_UNQUOTED(DEFAULT_ARCH, "${arch}", [Default architecture.])
531 if test $using_cgen = yes ; then
532 case "x${extra_objects}" in
534 *) extra_objects="$extra_objects cgen.o" ;;
538 # See if we really can support this configuration with the emulation code.
540 if test $this_target = $target ; then
541 primary_bfd_gas=$bfd_gas
545 if test $bfd_gas = no ; then
546 # Can't support other configurations this way.
549 elif test $bfd_gas = no ; then
550 # Can't support this configuration.
554 # From target name and format, produce a list of supported emulations.
556 case ${generic_target}-${fmt} in
557 mips-*-irix5*-*) emulation="mipsbelf mipslelf mipself mipsbecoff mipslecoff mipsecoff" ;;
558 mips-*-linux-gnu*-*) case "$endian" in
559 big) emulation="mipsbelf mipslelf mipself mipsbecoff mipslecoff mipsecoff" ;;
560 *) emulation="mipslelf mipsbelf mipself mipslecoff mipsbecoff mipsecoff" ;;
562 mips-*-lnews*-ecoff) ;;
563 mips-*-*-ecoff) case "$endian" in
564 big) emulation="mipsbecoff mipslecoff mipsecoff" ;;
565 *) emulation="mipslecoff mipsbecoff mipsecoff" ;;
567 mips-*-*-elf) case "$endian" in
568 big) emulation="mipsbelf mipslelf mipself" ;;
569 *) emulation="mipslelf mipsbelf mipself" ;;
571 mips-*-sysv4*MP*-*) emulation="mipsbelf mipslelf mipself mipsbecoff mipslecoff mipsecoff" ;;
572 # i386-pc-pe-coff != i386-pc-coff.
574 # Uncommenting the next line will turn on support for i386 AOUT
575 # for the default linux configuration
576 # i386-*-linux*-elf) emulation="i386elf i386aout" ;;
578 i386-*-aout) emulation="i386aout" ;;
579 i386-*-coff) emulation="i386coff" ;;
580 i386-*-elf) emulation="i386elf" ;;
582 # Always all formats. Having a.out first makes it the default.
583 cris-*-*) emulation="crisaout criself" ;;
586 emulations="$emulations $emulation"
590 # Turn on all targets if possible
591 if test ${all_targets} = "yes"; then
592 case ${target_cpu_type} in
594 case ${obj_format} in
596 emulations="$emulations i386coff i386elf"
599 emulations="$emulations i386aout i386elf"
602 emulations="$emulations i386aout i386coff"
609 # Assign floating point type. Most processors with FP support
610 # IEEE FP. On those that don't support FP at all, usually IEEE
612 case ${target_cpu} in
613 vax | tahoe ) atof=${target_cpu} ;;
617 case "${obj_format}" in
618 "") AC_MSG_ERROR(GAS does not know what format to use for target ${target}) ;;
621 # Unfortunately the cpu in cpu-opc.h file isn't always $(TARGET_CPU).
623 if test $using_cgen = yes ; then
624 case ${target_cpu} in
625 *) cgen_cpu_prefix=${target_cpu} ;;
627 AC_SUBST(cgen_cpu_prefix)
628 AC_DEFINE(USING_CGEN, 1, [Using cgen code?])
632 dnl Make sure the desired support files exist.
635 if test ! -r ${srcdir}/config/tc-${target_cpu_type}.c; then
636 AC_MSG_ERROR(GAS does not support target CPU ${target_cpu_type})
639 if test ! -r ${srcdir}/config/obj-${obj_format}.c; then
640 AC_MSG_ERROR(GAS does not have support for object file format ${obj_format})
643 case ${user_bfd_gas}-${primary_bfd_gas} in
645 # We didn't override user's choice.
648 AC_MSG_WARN(Use of BFD is required for ${target}; overriding config options.)
660 # User specified nothing.
664 # Some COFF configurations want these random other flags set.
665 case ${obj_format} in
667 case ${target_cpu_type} in
668 i386) AC_DEFINE(I386COFF, 1, [Using i386 COFF?]) ;;
669 m68k) AC_DEFINE(M68KCOFF, 1, [Using m68k COFF?]) ;;
670 m88k) AC_DEFINE(M88KCOFF, 1, [Using m88k COFF?]) ;;
675 # Getting this done right is going to be a bitch. Each configuration specified
676 # with --enable-targets=... should be checked for environment, format, cpu, and
679 # For each configuration, the necessary object file support code must be linked
680 # in. This might be only one, it might be up to four. The necessary emulation
681 # code needs to be provided, too.
683 # And then there's "--enable-targets=all"....
685 # For now, just always do it for MIPS ELF or ECOFF configurations. Sigh.
687 formats="${obj_format}"
691 for em in . $emulations ; do
695 fmt=elf file=mipself ;;
696 mipsbecoff | mipslecoff)
697 fmt=ecoff file=mipsecoff ;;
705 formats="$formats $fmt"
706 emfiles="$emfiles e-$file.o"
707 EMULATIONS="$EMULATIONS &$em,"
711 if test `set . $formats ; shift ; echo $#` -gt 1 ; then
712 for fmt in $formats ; do
714 aout) AC_DEFINE(OBJ_MAYBE_AOUT, 1, [a.out support?]) ;;
715 bout) AC_DEFINE(OBJ_MAYBE_BOUT, 1, [b.out support?]) ;;
716 coff) AC_DEFINE(OBJ_MAYBE_COFF, 1, [COFF support?]) ;;
717 ecoff) AC_DEFINE(OBJ_MAYBE_ECOFF, 1, [ECOFF support?]) ;;
718 elf) AC_DEFINE(OBJ_MAYBE_ELF, 1, [ELF support?]) ;;
719 generic) AC_DEFINE(OBJ_MAYBE_GENERIC, 1, [generic support?]) ;;
720 hp300) AC_DEFINE(OBJ_MAYBE_HP300, 1, [HP300 support?]) ;;
721 ieee) AC_DEFINE(OBJ_MAYBE_IEEE, 1, [IEEE support?]) ;;
722 som) AC_DEFINE(OBJ_MAYBE_SOM, 1, [SOM support?]) ;;
723 vms) AC_DEFINE(OBJ_MAYBE_VMS, 1, [VMS support?]) ;;
725 extra_objects="$extra_objects obj-$fmt.o"
729 if test `set . $emfiles ; shift ; echo $#` -gt 0 ; then
730 DEFAULT_EMULATION=`set . $emulations ; echo $2`
731 # e-mips* has more than one emulation per file, e-i386* has just one at the
732 # moment. If only one emulation is specified, then don't define
733 # USE_EMULATIONS or include any of the e-files as they will only be bloat.
734 case "${obj_format}${emfiles}" in
736 extra_objects="$extra_objects $emfiles"
737 AC_DEFINE(USE_EMULATIONS, 1, [Use emulation support?]) ;;
740 AC_SUBST(extra_objects)
741 AC_DEFINE_UNQUOTED(EMULATIONS, $EMULATIONS, [Supported emulations.])
742 AC_DEFINE_UNQUOTED(DEFAULT_EMULATION, "$DEFAULT_EMULATION",
743 [Default emulation.])
745 case ${primary_bfd_gas}-${target_cpu_type}-${obj_format} in
746 yes-*-coff) need_bfd=yes ;;
747 no-*-coff) need_bfd=yes
748 AC_DEFINE(MANY_SEGMENTS, 1, [old COFF support?]) ;;
751 reject_dev_configs=yes
753 case ${reject_dev_configs}-${dev} in
755 AC_MSG_ERROR(GAS does not support the ${generic_target} configuration.)
759 AC_SUBST(target_cpu_type)
762 AC_SUBST(install_tooldir)
764 dnl AC_SUBST(emulation)
766 case "${primary_bfd_gas}" in
767 yes) AC_DEFINE(BFD_ASSEMBLER, 1, [Use BFD interface?])
771 # do we need the opcodes library?
772 case "${need_opcodes}" in
774 OPCODES_LIB=../opcodes/libopcodes.la
778 case "${need_bfd}" in
780 BFDLIB=../bfd/libbfd.la
781 ALL_OBJ_DEPS="$ALL_OBJ_DEPS ../bfd/bfd.h"
786 AC_SUBST(OPCODES_LIB)
788 AC_SUBST(ALL_OBJ_DEPS)
790 AC_DEFINE_UNQUOTED(TARGET_ALIAS, "${target_alias}", [Target alias.])
791 AC_DEFINE_UNQUOTED(TARGET_CANONICAL, "${target}", [Canonical target.])
792 AC_DEFINE_UNQUOTED(TARGET_CPU, "${target_cpu}", [Target CPU.])
793 AC_DEFINE_UNQUOTED(TARGET_VENDOR, "${target_vendor}", [Target vendor.])
794 AC_DEFINE_UNQUOTED(TARGET_OS, "${target_os}", [Target OS.])
807 AC_CHECK_HEADERS(string.h stdlib.h memory.h strings.h unistd.h stdarg.h varargs.h errno.h sys/types.h)
809 # Put this here so that autoconf's "cross-compiling" message doesn't confuse
810 # people who are not cross-compiling but are compiling cross-assemblers.
811 AC_MSG_CHECKING(whether compiling a cross-assembler)
812 if test "${host}" = "${target}"; then
816 AC_DEFINE(CROSS_COMPILE, 1, [Compiling cross-assembler?])
818 AC_MSG_RESULT($cross_gas)
820 dnl ansidecl.h will deal with const
825 # VMS doesn't have unlink.
826 AC_CHECK_FUNCS(unlink remove, break)
828 # Some systems don't have sbrk().
831 # do we need the math library?
832 case "${need_libm}" in
839 # Some non-ANSI preprocessors botch requoting inside strings. That's bad
840 # enough, but on some of those systems, the assert macro relies on requoting
844 # On some systems, the system header files may not declare malloc, realloc,
845 # and free. There are places where gas needs these functions to have been
846 # declared -- such as when taking their addresses.
854 #ifdef HAVE_STRINGS_H
865 GAS_CHECK_DECL_NEEDED(strstr, f, char *(*f)(), $gas_test_headers)
866 GAS_CHECK_DECL_NEEDED(malloc, f, char *(*f)(), $gas_test_headers)
867 GAS_CHECK_DECL_NEEDED(free, f, void (*f)(), $gas_test_headers)
868 GAS_CHECK_DECL_NEEDED(sbrk, f, char *(*f)(), $gas_test_headers)
869 GAS_CHECK_DECL_NEEDED(environ, f, char **f, $gas_test_headers)
871 # Does errno.h declare errno, or do we have to add a separate declaration
873 GAS_CHECK_DECL_NEEDED(errno, f, int f, [
879 dnl This must come last.
881 dnl We used to make symlinks to files in the source directory, but now
882 dnl we just use the right name for .c files, and create .h files in
883 dnl the build directory which include the right .h file. Make sure
884 dnl the old symlinks don't exist, so that a reconfigure in an existing
885 dnl directory behaves reasonably.
887 AC_OUTPUT(Makefile doc/Makefile ${GDBINIT}:gdbinit.in po/Makefile.in:po/Make-in,
888 [rm -f targ-cpu.c targ-cpu.h obj-format.h obj-format.c targ-env.h atof-targ.c itbl-cpu.h
889 echo '#include "tc-'"${target_cpu_type}"'.h"' > targ-cpu.h
890 echo '#include "obj-'"${obj_format}"'.h"' > obj-format.h
891 echo '#include "te-'"${te_file}"'.h"' > targ-env.h
892 echo '#include "itbl-'"${target_cpu_type}"'.h"' > itbl-cpu.h
893 if test "x$cgen_cpu_prefix" != x ; then
894 echo '#include "opcodes/'"${cgen_cpu_prefix}"'-desc.h"' > cgen-desc.h
897 sed -e '/POTFILES =/r po/POTFILES' po/Makefile.in > po/Makefile],
898 [target_cpu_type=${target_cpu_type}
899 cgen_cpu_prefix=${cgen_cpu_prefix}
900 obj_format=${obj_format}