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 d10v-*-*) fmt=elf bfd_gas=yes ;;
193 d30v-*-*) fmt=elf bfd_gas=yes ;;
196 fr30-*-*) fmt=elf bfd_gas=yes ;;
198 hppa-*-linux-gnu*) fmt=elf em=linux ;;
199 hppa-*-*elf*) fmt=elf em=hppa ;;
200 hppa-*-lites*) fmt=elf em=hppa ;;
201 hppa-*-osf*) fmt=som em=hppa ;;
202 hppa-*-rtems*) fmt=elf em=hppa ;;
203 hppa-*-hpux11*) em=hppa
211 hppa-*-hpux*) fmt=som em=hppa ;;
212 hppa-*-mpeix*) fmt=som em=hppa ;;
213 hppa-*-bsd*) fmt=som em=hppa ;;
214 hppa-*-hiux*) fmt=som em=hppa ;;
216 h8300-*-coff) fmt=coff ;;
218 i370-*-elf* | i370-*-linux*) fmt=elf ;;
219 i386-ibm-aix*) fmt=coff em=i386aix ;;
220 i386-sequent-bsd*) fmt=aout em=dynix bfd_gas=yes ;;
221 i386-*-beospe*) fmt=coff em=pe bfd_gas=yes ;;
222 i386-*-beoself* | i386-*-beos*) fmt=elf bfd_gas=yes ;;
223 i386-*-bsd*) fmt=aout em=386bsd ;;
224 i386-*-netbsd0.8) fmt=aout em=386bsd ;;
225 i386-*-netbsd*) fmt=aout em=nbsd bfd_gas=yes;;
226 i386-*-openbsd*) fmt=aout em=nbsd bfd_gas=yes;;
227 i386-*-linux*aout* | i386-*-linuxoldld) fmt=aout em=linux ;;
228 i386-*-linux*coff*) fmt=coff em=linux ;;
229 i386-*-linux-gnu*) fmt=elf em=linux bfd_gas=yes ;;
230 i386-*-lynxos*) fmt=coff em=lynx ;;
231 i386-*-sysv4* | i386-*-solaris* | i386-*-elf)
232 fmt=elf bfd_gas=yes ;;
234 i386-*-freebsdaout* | i386-*-freebsd[12].* | i386-*-freebsd[12])
235 fmt=aout em=386bsd ;;
237 i386-*-freebsd*) fmt=elf bfd_gas=yes ;;
238 i386-*-coff | i386-*-sysv* | i386-*-sco3.2v5*coff | i386-*-isc*)
240 i386-*-sco3.2v5*) fmt=elf
241 if test ${this_target} = $target; then
242 AC_DEFINE(SCO_ELF, 1,
243 [Define if defaulting to ELF on SCO 5.])
246 i386-*-sco3.2*) fmt=coff ;;
247 i386-*-vsta) fmt=aout ;;
248 i386-*-msdosdjgpp* | i386-*-go32* | i386-go32-rtems*)
250 i386-*-rtemself*) fmt=elf ;;
251 i386-*-rtems*) fmt=coff ;;
252 i386-*-gnu*) fmt=elf ;;
254 fmt=aout em=mach bfd_gas=yes ;;
255 i386-*-msdos*) fmt=aout ;;
256 i386-*-moss*) fmt=elf ;;
257 i386-*-pe) fmt=coff em=pe bfd_gas=yes ;;
258 i386-*-cygwin*) fmt=coff em=pe bfd_gas=yes ;;
259 i386-*-interix*) fmt=coff em=interix bfd_gas=yes ;;
260 i386-*-mingw32*) fmt=coff em=pe bfd_gas=yes ;;
261 i386-*-*nt*) fmt=coff em=pe bfd_gas=yes ;;
262 i386-*-vxworks*) fmt=aout ;;
263 i960-*-bout) fmt=bout ;;
264 i960-*-coff) fmt=coff em=ic960 ;;
265 i960-*-rtems*) fmt=coff em=ic960 ;;
266 i960-*-nindy*) fmt=bout ;;
267 i960-*-vxworks4*) fmt=bout ;;
268 i960-*-vxworks5.0) fmt=bout ;;
269 i960-*-vxworks5.*) fmt=coff em=ic960 ;;
270 i960-*-vxworks*) fmt=bout ;;
271 i960-*-elf*) fmt=elf ;;
273 ia64-*-elf*) fmt=elf ;;
274 ia64-*-linux-gnu*) fmt=elf em=linux ;;
276 m32r-*-*) fmt=elf bfd_gas=yes ;;
278 m68hc11-*-*|m6811-*-*|m68hc12-*-*|m6812-*-*)fmt=elf bfd_gas=yes ;;
280 m68k-*-vxworks* | m68k-ericsson-ose | m68k-*-sunos*)
282 m68k-motorola-sysv*) fmt=coff em=delta ;;
283 m68k-bull-sysv3*) fmt=coff em=dpx2 ;;
284 m68k-apollo-*) fmt=coff em=apollo ;;
285 m68k-*-sysv4*) # must be before -sysv*
287 m68k-*-elf*) fmt=elf ;;
288 m68k-*-coff | m68k-*-sysv* | m68k-*-rtems*)
290 m68k-*-hpux*) fmt=hp300 em=hp300 ;;
291 m68k-*-linux*aout*) fmt=aout em=linux ;;
292 m68k-*-linux-gnu*) fmt=elf em=linux ;;
293 m68k-*-gnu*) fmt=elf ;;
294 m68k-*-lynxos*) fmt=coff em=lynx ;;
295 m68k-*-netbsd*) fmt=aout em=nbsd bfd_gas=yes ;;
296 m68k-*-openbsd*) fmt=aout em=nbsd bfd_gas=yes ;;
297 m68k-apple-aux*) fmt=coff em=aux ;;
298 m68k-*-psos*) fmt=elf em=psos;;
300 m88k-motorola-sysv3*) fmt=coff em=delt88 ;;
301 m88k-*-coff*) fmt=coff ;;
303 mcore-*-elf) fmt=elf bfd_gas=yes ;;
304 mcore-*-pe) fmt=coff em=pe bfd_gas=yes ;;
306 # don't change em like *-*-bsd does
307 mips-dec-netbsd*) fmt=elf endian=little ;;
308 mips-dec-openbsd*) fmt=elf endian=little ;;
309 mips-dec-bsd*) fmt=aout endian=little ;;
310 mips-sony-bsd*) fmt=ecoff ;;
311 mips-*-bsd*) AC_MSG_ERROR(Unknown vendor for mips-bsd configuration.) ;;
312 mips-*-ultrix*) fmt=ecoff endian=little ;;
313 mips-*-osf*) fmt=ecoff endian=little ;;
314 mips-*-ecoff*) fmt=ecoff ;;
315 mips-*-ecoff*) fmt=ecoff ;;
316 mips-*-pe*) fmt=coff endian=little em=pe ;;
317 mips-*-irix6*) fmt=elf ;;
318 mips-*-irix5*) fmt=elf ;;
319 mips-*-irix*) fmt=ecoff ;;
320 mips-*-lnews*) fmt=ecoff em=lnews ;;
321 mips-*-riscos*) fmt=ecoff ;;
322 mips-*-sysv4*MP*) if test -d /usr/dde; then
327 mips-*-sysv*) fmt=ecoff ;;
328 mips-*-elf* | mips-*-rtems* | mips-*-linux-gnu* | mips-*-gnu* | mips-*-openbsd*)
330 mips-*-vxworks*) fmt=elf
331 AC_DEFINE(MIPS_STABS_ELF, 1,
332 [Use ELF stabs for MIPS, not ECOFF stabs])
334 mn10200-*-*) fmt=elf bfd_gas=yes ;;
335 mn10300-*-*) fmt=elf bfd_gas=yes ;;
337 ppc-*-pe | ppc-*-cygwin* | ppc-*-winnt*)
339 ppc-*-aix*) fmt=coff ;;
340 ppc-*-beos*) fmt=coff ;;
341 ppc-*-*bsd* | ppc-*-elf* | ppc-*-eabi* | ppc-*-sysv4*)
343 ppc-*-linux-gnu*) fmt=elf
346 *) AC_MSG_ERROR(GNU/Linux must be configured big endian) ;;
349 ppc-*-solaris*) fmt=elf
350 if test ${this_target} = $target; then
351 AC_DEFINE(TARGET_SOLARIS_COMMENT, 1,
352 [Define if default target is PowerPC Solaris.])
354 if test x${endian} = xbig; then
355 AC_MSG_ERROR(Solaris must be configured little endian)
358 ppc-*-rtems*) fmt=elf ;;
359 ppc-*-macos* | ppc-*-mpw*)
361 ppc-*-netware*) fmt=elf em=ppcnw ;;
362 ppc-*-vxworks*) fmt=elf ;;
364 sh-*-elf*) fmt=elf ;;
365 sh-*-coff*) fmt=coff ;;
366 sh-*-pe*) fmt=coff em=pe bfd_gas=yes;;
367 sh-*-rtemself*) fmt=elf ;;
368 sh-*-rtems*) fmt=coff ;;
370 ns32k-pc532-mach* | ns32k-pc532-ux*) fmt=aout em=pc532mach ;;
371 ns32k-pc532-netbsd* | ns32k-pc532-lites*) fmt=aout em=nbsd532 ;;
372 ns32k-pc532-openbsd*) fmt=aout em=nbsd532 ;;
374 sparc-*-rtems*) fmt=aout ;;
375 sparc-*-sunos4*) fmt=aout em=sun3 ;;
376 sparc-*-aout | sparc*-*-vxworks*)
377 fmt=aout em=sparcaout ;;
378 sparc-*-coff) fmt=coff ;;
379 sparc-*-linux*aout*) fmt=aout em=linux ;;
380 sparc-*-linux-gnu*) fmt=elf em=linux ;;
381 sparc-*-lynxos*) fmt=coff em=lynx ;;
382 sparc-fujitsu-none) fmt=aout ;;
383 sparc-*-elf | sparc-*-sysv4* | sparc-*-solaris*)
385 sparc-*-netbsd*) em=nbsd bfd_gas=yes
394 sparc-*-openbsd*) fmt=aout em=nbsd ;;
396 strongarm-*-coff) fmt=coff ;;
397 strongarm-*-elf) fmt=elf ;;
399 tic30-*-*aout*) fmt=aout bfd_gas=yes ;;
400 tic30-*-*coff*) fmt=coff bfd_gas=yes ;;
401 tic54x-*-* | c54x*-*-*)
402 fmt=coff bfd_gas=yes need_libm=yes;;
403 tic80-*-*) fmt=coff ;;
405 v850-*-*) fmt=elf bfd_gas=yes ;;
406 v850e-*-*) fmt=elf bfd_gas=yes ;;
407 v850ea-*-*) fmt=elf bfd_gas=yes ;;
409 vax-*-bsd* | vax-*-ultrix*)
411 vax-*-vms) fmt=vms ;;
414 z8k-*-coff | z8k-*-sim)
419 *-*-aout | *-*-scout)
425 *-*-generic) fmt=generic ;;
426 *-*-xray | *-*-hms) fmt=coff ;;
428 *-*-elf | *-*-sysv4* | *-*-solaris*)
429 AC_MSG_WARN(GAS support for ${generic_target} is incomplete.)
431 *-*-vxworks) fmt=aout ;;
432 *-*-netware) fmt=elf ;;
435 if test ${this_target} = $target ; then
437 if test x${endian} = xbig; then
439 elif test x${endian} = xlittle; then
442 if test x${endian_def} != x; then
443 AC_DEFINE_UNQUOTED(TARGET_BYTES_BIG_ENDIAN, $endian_def,
444 [Define as 1 if big endian.])
448 case ${cpu_type}-${fmt} in
449 alpha*-*) bfd_gas=yes ;;
450 arm-*) bfd_gas=yes ;;
452 # i386-aout) bfd_gas=preferred ;;
453 ia64*-*) bfd_gas=yes ;;
454 mips-*) bfd_gas=yes ;;
455 ns32k-*) bfd_gas=yes ;;
456 ppc-*) bfd_gas=yes ;;
457 sparc-*) bfd_gas=yes ;;
458 strongarm-*) bfd_gas=yes ;;
459 *-elf) bfd_gas=yes ;;
460 *-ecoff) bfd_gas=yes ;;
461 *-som) bfd_gas=yes ;;
462 #enable bfd for coff and aout to allow testing if a bfd target is
463 #the primary target, but not for coff or aout as the primary target
464 i386-coff) if test x${primary_bfd_gas} = xyes; then bfd_gas=yes; fi ;;
465 i386-aout) if test x${primary_bfd_gas} = xyes; then bfd_gas=yes; fi ;;
469 # Other random stuff.
471 # Do we need the opcodes library?
479 case "${enable_shared}" in
480 yes) shared_opcodes=true ;;
481 *opcodes*) shared_opcodes=true ;;
482 *) shared_opcodes=false ;;
484 if test "${shared_opcodes}" = "true"; then
485 # A shared libopcodes must be linked against libbfd.
491 # Any other special object files needed ?
498 case ${extra_objects} in
500 *) extra_objects="$extra_objects m68k-parse.o" ;;
505 echo ${extra_objects} | grep -s "itbl-parse.o"
506 if test $? -ne 0 ; then
507 extra_objects="$extra_objects itbl-parse.o"
510 echo ${extra_objects} | grep -s "itbl-lex.o"
511 if test $? -ne 0 ; then
512 extra_objects="$extra_objects itbl-lex.o"
515 echo ${extra_objects} | grep -s "itbl-ops.o"
516 if test $? -ne 0 ; then
517 extra_objects="$extra_objects itbl-ops.o"
522 if test $this_target = $target ; then
523 AC_DEFINE_UNQUOTED(DEFAULT_ARCH, "${arch}", [Default architecture.])
530 if test $using_cgen = yes ; then
531 case "x${extra_objects}" in
533 *) extra_objects="$extra_objects cgen.o" ;;
537 # See if we really can support this configuration with the emulation code.
539 if test $this_target = $target ; then
540 primary_bfd_gas=$bfd_gas
544 if test $bfd_gas = no ; then
545 # Can't support other configurations this way.
548 elif test $bfd_gas = no ; then
549 # Can't support this configuration.
553 # From target name and format, produce a list of supported emulations.
555 case ${generic_target}-${fmt} in
556 mips-*-irix5*-*) emulation="mipsbelf mipslelf mipself mipsbecoff mipslecoff mipsecoff" ;;
557 mips-*-linux-gnu*-*) case "$endian" in
558 big) emulation="mipsbelf mipslelf mipself mipsbecoff mipslecoff mipsecoff" ;;
559 *) emulation="mipslelf mipsbelf mipself mipslecoff mipsbecoff mipsecoff" ;;
561 mips-*-lnews*-ecoff) ;;
562 mips-*-*-ecoff) case "$endian" in
563 big) emulation="mipsbecoff mipslecoff mipsecoff" ;;
564 *) emulation="mipslecoff mipsbecoff mipsecoff" ;;
566 mips-*-*-elf) case "$endian" in
567 big) emulation="mipsbelf mipslelf mipself" ;;
568 *) emulation="mipslelf mipsbelf mipself" ;;
570 mips-*-sysv4*MP*-*) if test -d /usr/dde; then
571 emulation="mipsbelf mipslelf mipself mipsbecoff mipslecoff mipsecoff"
574 # i386-pc-pe-coff != i386-pc-coff.
576 # Uncommenting the next line will turn on support for i386 AOUT
577 # for the default linux configuration
578 # i386-*-linux*-elf) emulation="i386elf i386aout" ;;
580 i386-*-aout) emulation="i386aout" ;;
581 i386-*-coff) emulation="i386coff" ;;
582 i386-*-elf) emulation="i386elf" ;;
585 emulations="$emulations $emulation"
589 # Turn on all targets if possible
590 if test ${all_targets} = "yes"; then
591 case ${target_cpu_type} in
593 case ${obj_format} in
595 emulations="$emulations i386coff i386elf"
598 emulations="$emulations i386aout i386elf"
601 emulations="$emulations i386aout i386coff"
608 # Assign floating point type. Most processors with FP support
609 # IEEE FP. On those that don't support FP at all, usually IEEE
611 case ${target_cpu} in
612 vax | tahoe ) atof=${target_cpu} ;;
616 case "${obj_format}" in
617 "") AC_MSG_ERROR(GAS does not know what format to use for target ${target}) ;;
620 # Unfortunately the cpu in cpu-opc.h file isn't always $(TARGET_CPU).
622 if test $using_cgen = yes ; then
623 case ${target_cpu} in
624 *) cgen_cpu_prefix=${target_cpu} ;;
626 AC_SUBST(cgen_cpu_prefix)
627 AC_DEFINE(USING_CGEN, 1, [Using cgen code?])
631 dnl Make sure the desired support files exist.
634 if test ! -r ${srcdir}/config/tc-${target_cpu_type}.c; then
635 AC_MSG_ERROR(GAS does not support target CPU ${target_cpu_type})
638 if test ! -r ${srcdir}/config/obj-${obj_format}.c; then
639 AC_MSG_ERROR(GAS does not have support for object file format ${obj_format})
642 case ${user_bfd_gas}-${primary_bfd_gas} in
644 # We didn't override user's choice.
647 AC_MSG_WARN(Use of BFD is required for ${target}; overriding config options.)
659 # User specified nothing.
663 # Some COFF configurations want these random other flags set.
664 case ${obj_format} in
666 case ${target_cpu_type} in
667 i386) AC_DEFINE(I386COFF, 1, [Using i386 COFF?]) ;;
668 m68k) AC_DEFINE(M68KCOFF, 1, [Using m68k COFF?]) ;;
669 m88k) AC_DEFINE(M88KCOFF, 1, [Using m88k COFF?]) ;;
674 # Getting this done right is going to be a bitch. Each configuration specified
675 # with --enable-targets=... should be checked for environment, format, cpu, and
678 # For each configuration, the necessary object file support code must be linked
679 # in. This might be only one, it might be up to four. The necessary emulation
680 # code needs to be provided, too.
682 # And then there's "--enable-targets=all"....
684 # For now, just always do it for MIPS ELF or ECOFF configurations. Sigh.
686 formats="${obj_format}"
690 for em in . $emulations ; do
694 fmt=elf file=mipself ;;
695 mipsbecoff | mipslecoff)
696 fmt=ecoff file=mipsecoff ;;
704 formats="$formats $fmt"
705 emfiles="$emfiles e-$file.o"
706 EMULATIONS="$EMULATIONS &$em,"
710 if test `set . $formats ; shift ; echo $#` -gt 1 ; then
711 for fmt in $formats ; do
713 aout) AC_DEFINE(OBJ_MAYBE_AOUT, 1, [a.out support?]) ;;
714 bout) AC_DEFINE(OBJ_MAYBE_BOUT, 1, [b.out support?]) ;;
715 coff) AC_DEFINE(OBJ_MAYBE_COFF, 1, [COFF support?]) ;;
716 ecoff) AC_DEFINE(OBJ_MAYBE_ECOFF, 1, [ECOFF support?]) ;;
717 elf) AC_DEFINE(OBJ_MAYBE_ELF, 1, [ELF support?]) ;;
718 generic) AC_DEFINE(OBJ_MAYBE_GENERIC, 1, [generic support?]) ;;
719 hp300) AC_DEFINE(OBJ_MAYBE_HP300, 1, [HP300 support?]) ;;
720 ieee) AC_DEFINE(OBJ_MAYBE_IEEE, 1, [IEEE support?]) ;;
721 som) AC_DEFINE(OBJ_MAYBE_SOM, 1, [SOM support?]) ;;
722 vms) AC_DEFINE(OBJ_MAYBE_VMS, 1, [VMS support?]) ;;
724 extra_objects="$extra_objects obj-$fmt.o"
728 if test `set . $emfiles ; shift ; echo $#` -gt 0 ; then
729 DEFAULT_EMULATION=`set . $emulations ; echo $2`
730 # e-mips* has more than one emulation per file, e-i386* has just one at the
731 # moment. If only one emulation is specified, then don't define
732 # USE_EMULATIONS or include any of the e-files as they will only be bloat.
733 case "${obj_format}${emfiles}" in
735 # if te_file is tmips, that means the target is mips-*-sysv4*MP* and we do
736 # not set it to multi.
737 if [[ $te_file -ne "tmips" ]]; then
740 extra_objects="$extra_objects $emfiles"
741 AC_DEFINE(USE_EMULATIONS, 1, [Use emulation support?]) ;;
744 AC_SUBST(extra_objects)
745 AC_DEFINE_UNQUOTED(EMULATIONS, $EMULATIONS, [Supported emulations.])
746 AC_DEFINE_UNQUOTED(DEFAULT_EMULATION, "$DEFAULT_EMULATION",
747 [Default emulation.])
749 case ${primary_bfd_gas}-${target_cpu_type}-${obj_format} in
750 yes-*-coff) need_bfd=yes ;;
751 no-*-coff) need_bfd=yes
752 AC_DEFINE(MANY_SEGMENTS, 1, [old COFF support?]) ;;
755 reject_dev_configs=yes
757 case ${reject_dev_configs}-${dev} in
759 AC_MSG_ERROR(GAS does not support the ${generic_target} configuration.)
763 AC_SUBST(target_cpu_type)
766 AC_SUBST(install_tooldir)
768 dnl AC_SUBST(emulation)
770 case "${primary_bfd_gas}" in
771 yes) AC_DEFINE(BFD_ASSEMBLER, 1, [Use BFD interface?])
775 # do we need the opcodes library?
776 case "${need_opcodes}" in
778 OPCODES_LIB=../opcodes/libopcodes.la
782 case "${need_bfd}" in
784 BFDLIB=../bfd/libbfd.la
785 ALL_OBJ_DEPS="$ALL_OBJ_DEPS ../bfd/bfd.h"
790 AC_SUBST(OPCODES_LIB)
792 AC_SUBST(ALL_OBJ_DEPS)
794 AC_DEFINE_UNQUOTED(TARGET_ALIAS, "${target_alias}", [Target alias.])
795 AC_DEFINE_UNQUOTED(TARGET_CANONICAL, "${target}", [Canonical target.])
796 AC_DEFINE_UNQUOTED(TARGET_CPU, "${target_cpu}", [Target CPU.])
797 AC_DEFINE_UNQUOTED(TARGET_VENDOR, "${target_vendor}", [Target vendor.])
798 AC_DEFINE_UNQUOTED(TARGET_OS, "${target_os}", [Target OS.])
811 AC_CHECK_HEADERS(string.h stdlib.h memory.h strings.h unistd.h stdarg.h varargs.h errno.h sys/types.h)
813 # Put this here so that autoconf's "cross-compiling" message doesn't confuse
814 # people who are not cross-compiling but are compiling cross-assemblers.
815 AC_MSG_CHECKING(whether compiling a cross-assembler)
816 if test "${host}" = "${target}"; then
820 AC_DEFINE(CROSS_COMPILE, 1, [Compiling cross-assembler?])
822 AC_MSG_RESULT($cross_gas)
824 dnl ansidecl.h will deal with const
829 # VMS doesn't have unlink.
830 AC_CHECK_FUNCS(unlink remove, break)
832 # Some systems don't have sbrk().
835 # do we need the math library?
836 case "${need_libm}" in
843 # Some non-ANSI preprocessors botch requoting inside strings. That's bad
844 # enough, but on some of those systems, the assert macro relies on requoting
848 # On some systems, the system header files may not declare malloc, realloc,
849 # and free. There are places where gas needs these functions to have been
850 # declared -- such as when taking their addresses.
858 #ifdef HAVE_STRINGS_H
869 GAS_CHECK_DECL_NEEDED(strstr, f, char *(*f)(), $gas_test_headers)
870 GAS_CHECK_DECL_NEEDED(malloc, f, char *(*f)(), $gas_test_headers)
871 GAS_CHECK_DECL_NEEDED(free, f, void (*f)(), $gas_test_headers)
872 GAS_CHECK_DECL_NEEDED(sbrk, f, char *(*f)(), $gas_test_headers)
873 GAS_CHECK_DECL_NEEDED(environ, f, char **f, $gas_test_headers)
875 # Does errno.h declare errno, or do we have to add a separate declaration
877 GAS_CHECK_DECL_NEEDED(errno, f, int f, [
883 dnl This must come last.
885 dnl We used to make symlinks to files in the source directory, but now
886 dnl we just use the right name for .c files, and create .h files in
887 dnl the build directory which include the right .h file. Make sure
888 dnl the old symlinks don't exist, so that a reconfigure in an existing
889 dnl directory behaves reasonably.
891 AC_OUTPUT(Makefile doc/Makefile ${GDBINIT}:gdbinit.in po/Makefile.in:po/Make-in,
892 [rm -f targ-cpu.c targ-cpu.h obj-format.h obj-format.c targ-env.h atof-targ.c itbl-cpu.h
893 echo '#include "tc-'"${target_cpu_type}"'.h"' > targ-cpu.h
894 echo '#include "obj-'"${obj_format}"'.h"' > obj-format.h
895 echo '#include "te-'"${te_file}"'.h"' > targ-env.h
896 echo '#include "itbl-'"${target_cpu_type}"'.h"' > itbl-cpu.h
897 if test "x$cgen_cpu_prefix" != x ; then
898 echo '#include "opcodes/'"${cgen_cpu_prefix}"'-desc.h"' > cgen-desc.h
901 sed -e '/POTFILES =/r po/POTFILES' po/Makefile.in > po/Makefile],
902 [target_cpu_type=${target_cpu_type}
903 cgen_cpu_prefix=${cgen_cpu_prefix}
904 obj_format=${obj_format}