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-*-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-*-elf | thumb-*-elf) fmt=elf ;;
182 arm*-*-conix*) fmt=elf ;;
183 arm-*-linux*aout*) fmt=aout em=linux ;;
184 arm*-*-linux-gnu* | arm*-*-uclinux*)
186 arm-*-netbsd*) fmt=aout em=nbsd ;;
187 arm-*-oabi | thumb-*-oabi) fmt=elf ;;
188 arm-epoc-pe | thumb-epoc-pe) fmt=coff em=epoc-pe ;;
189 arm-*-wince) fmt=coff em=wince-pe ;;
190 arm-*-pe | thumb-*-pe) fmt=coff em=pe ;;
191 arm-*-riscix*) fmt=aout em=riscix ;;
193 avr-*-*) fmt=elf bfd_gas=yes ;;
195 cris-*-*) fmt=multi bfd_gas=yes ;;
197 d10v-*-*) fmt=elf bfd_gas=yes ;;
198 d30v-*-*) fmt=elf bfd_gas=yes ;;
201 fr30-*-*) fmt=elf bfd_gas=yes ;;
203 hppa-*-linux-gnu*) case ${cpu} in
205 fmt=elf em=hppalinux64;;
209 hppa-*-*elf*) fmt=elf em=hppa ;;
210 hppa-*-lites*) fmt=elf em=hppa ;;
211 hppa-*-osf*) fmt=som em=hppa ;;
212 hppa-*-rtems*) fmt=elf em=hppa ;;
213 hppa-*-hpux11*) case ${cpu} in
219 hppa-*-hpux*) fmt=som em=hppa ;;
220 hppa-*-mpeix*) fmt=som em=hppa ;;
221 hppa-*-bsd*) fmt=som em=hppa ;;
222 hppa-*-hiux*) fmt=som em=hppa ;;
224 h8300-*-coff) fmt=coff ;;
226 i370-*-elf* | i370-*-linux*) fmt=elf ;;
227 i386-ibm-aix*) fmt=coff em=i386aix ;;
228 i386-sequent-bsd*) fmt=aout em=dynix bfd_gas=yes ;;
229 i386-*-beospe*) fmt=coff em=pe bfd_gas=yes ;;
230 i386-*-beoself* | i386-*-beos*) fmt=elf bfd_gas=yes ;;
231 i386-*-bsd*) fmt=aout em=386bsd ;;
232 i386-*-netbsd0.8) fmt=aout em=386bsd ;;
233 i386-*-netbsd*) fmt=aout em=nbsd bfd_gas=yes;;
234 i386-*-openbsd*) fmt=aout em=nbsd bfd_gas=yes;;
235 i386-*-linux*aout* | i386-*-linuxoldld) fmt=aout em=linux ;;
236 i386-*-linux*coff*) fmt=coff em=linux ;;
237 i386-*-linux-gnu*) fmt=elf em=linux bfd_gas=yes ;;
238 i386-*-lynxos*) fmt=coff em=lynx ;;
240 i386-*-sysv[45]* | i386-*-solaris* | i386-*-elf)
241 fmt=elf bfd_gas=yes ;;
242 i386-*-freebsdaout* | i386-*-freebsd[12].* | i386-*-freebsd[12])
243 fmt=aout em=386bsd ;;
245 i386-*-freebsd*) fmt=elf bfd_gas=yes ;;
246 i386-*-coff | i386-*-sysv* | i386-*-sco3.2v5*coff | i386-*-isc*)
248 i386-*-sco3.2v5*) fmt=elf
249 if test ${this_target} = $target; then
250 AC_DEFINE(SCO_ELF, 1,
251 [Define if defaulting to ELF on SCO 5.])
254 i386-*-sco3.2*) fmt=coff ;;
255 i386-*-vsta) fmt=aout ;;
256 i386-*-msdosdjgpp* | i386-*-go32* | i386-go32-rtems*)
258 AC_DEFINE(STRICTCOFF, 1, [Using strict COFF?])
260 i386-*-rtemself*) fmt=elf ;;
261 i386-*-rtems*) fmt=coff ;;
262 i386-*-gnu*) fmt=elf ;;
264 fmt=aout em=mach bfd_gas=yes ;;
265 i386-*-msdos*) fmt=aout ;;
266 i386-*-moss*) fmt=elf ;;
267 i386-*-pe) fmt=coff em=pe bfd_gas=yes ;;
268 i386-*-cygwin*) fmt=coff em=pe bfd_gas=yes ;;
269 i386-*-interix*) fmt=coff em=interix bfd_gas=yes ;;
270 i386-*-mingw32*) fmt=coff em=pe bfd_gas=yes ;;
271 i386-*-*nt*) fmt=coff em=pe bfd_gas=yes ;;
272 i386-*-vxworks*) fmt=aout ;;
273 i386-*-chaos) fmt=elf ;;
274 i860-stardent-sysv4* | i860-stardent-elf*)
275 fmt=elf bfd_gas=yes endian=little
276 AC_MSG_WARN(GAS support for ${generic_target} is preliminary and a work in progress) ;;
277 i960-*-bout) fmt=bout ;;
278 i960-*-coff) fmt=coff em=ic960 ;;
279 i960-*-rtems*) fmt=coff em=ic960 ;;
280 i960-*-nindy*) fmt=bout ;;
281 i960-*-vxworks4*) fmt=bout ;;
282 i960-*-vxworks5.0) fmt=bout ;;
283 i960-*-vxworks5.*) fmt=coff em=ic960 ;;
284 i960-*-vxworks*) fmt=bout ;;
285 i960-*-elf*) fmt=elf ;;
287 ia64-*-elf*) fmt=elf ;;
288 ia64-*-linux-gnu*) fmt=elf em=linux ;;
289 ia64-*-hpux*) fmt=elf em=hpux ;;
291 m32r-*-*) fmt=elf bfd_gas=yes ;;
293 m68hc11-*-*|m6811-*-*|m68hc12-*-*|m6812-*-*)fmt=elf bfd_gas=yes ;;
295 m68k-*-vxworks* | m68k-ericsson-ose | m68k-*-sunos*)
297 m68k-motorola-sysv*) fmt=coff em=delta ;;
298 m68k-bull-sysv3*) fmt=coff em=dpx2 ;;
299 m68k-apollo-*) fmt=coff em=apollo ;;
300 m68k-*-sysv4*) # must be before -sysv*
302 m68k-*-elf*) fmt=elf ;;
303 m68k-*-coff | m68k-*-sysv* | m68k-*-rtems*)
305 m68k-*-hpux*) fmt=hp300 em=hp300 ;;
306 m68k-*-linux*aout*) fmt=aout em=linux ;;
307 m68k-*-linux-gnu*) fmt=elf em=linux ;;
308 m68k-*-gnu*) fmt=elf ;;
309 m68k-*-lynxos*) fmt=coff em=lynx ;;
310 m68k-*-netbsd*) fmt=aout em=nbsd bfd_gas=yes ;;
311 m68k-*-openbsd*) fmt=aout em=nbsd bfd_gas=yes ;;
312 m68k-apple-aux*) fmt=coff em=aux ;;
313 m68k-*-psos*) fmt=elf em=psos;;
315 m88k-motorola-sysv3*) fmt=coff em=delt88 ;;
316 m88k-*-coff*) fmt=coff ;;
318 mcore-*-elf) fmt=elf bfd_gas=yes ;;
319 mcore-*-pe) fmt=coff em=pe bfd_gas=yes ;;
321 # don't change em like *-*-bsd does
322 mips-dec-netbsd*) fmt=elf endian=little ;;
323 mips-dec-openbsd*) fmt=elf endian=little ;;
324 mips-dec-bsd*) fmt=aout endian=little ;;
325 mips-sony-bsd*) fmt=ecoff ;;
326 mips-*-bsd*) AC_MSG_ERROR(Unknown vendor for mips-bsd configuration.) ;;
327 mips-*-ultrix*) fmt=ecoff endian=little ;;
328 mips-*-osf*) fmt=ecoff endian=little ;;
329 mips-*-ecoff*) fmt=ecoff ;;
330 mips-*-ecoff*) fmt=ecoff ;;
331 mips-*-pe*) fmt=coff endian=little em=pe ;;
332 mips-*-irix6*) fmt=elf ;;
333 mips-*-irix5*) fmt=elf ;;
334 mips-*-irix*) fmt=ecoff ;;
335 mips-*-lnews*) fmt=ecoff em=lnews ;;
336 mips-*-riscos*) fmt=ecoff ;;
337 mips-*-sysv4*MP*) fmt=elf em=tmips ;;
338 mips-*-sysv*) fmt=ecoff ;;
339 mips-*-elf* | mips-*-rtems* | mips-*-linux-gnu* | mips-*-gnu* | mips-*-openbsd*)
341 mips-*-vxworks*) fmt=elf
342 AC_DEFINE(MIPS_STABS_ELF, 1,
343 [Use ELF stabs for MIPS, not ECOFF stabs])
345 mn10200-*-*) fmt=elf bfd_gas=yes ;;
346 mn10300-*-*) fmt=elf bfd_gas=yes ;;
348 ppc-*-pe | ppc-*-cygwin* | ppc-*-winnt*)
350 ppc-*-aix*) fmt=coff ;;
351 ppc-*-beos*) fmt=coff ;;
352 ppc-*-*bsd* | ppc-*-elf* | ppc-*-eabi* | ppc-*-sysv4*)
354 ppc-*-linux-gnu*) fmt=elf
357 *) AC_MSG_ERROR(GNU/Linux must be configured big endian) ;;
360 ppc-*-solaris*) fmt=elf
361 if test ${this_target} = $target; then
362 AC_DEFINE(TARGET_SOLARIS_COMMENT, 1,
363 [Define if default target is PowerPC Solaris.])
365 if test x${endian} = xbig; then
366 AC_MSG_ERROR(Solaris must be configured little endian)
369 ppc-*-rtems*) fmt=elf ;;
370 ppc-*-macos* | ppc-*-mpw*)
372 ppc-*-netware*) fmt=elf em=ppcnw ;;
373 ppc-*-vxworks*) fmt=elf ;;
375 sh-*-linux*) fmt=elf em=linux ;;
376 sh-*-elf*) fmt=elf ;;
377 sh-*-coff*) fmt=coff ;;
378 sh-*-pe*) fmt=coff em=pe bfd_gas=yes;;
379 sh-*-rtemself*) fmt=elf ;;
380 sh-*-rtems*) fmt=coff ;;
382 ns32k-pc532-mach* | ns32k-pc532-ux*) fmt=aout em=pc532mach ;;
383 ns32k-pc532-netbsd* | ns32k-pc532-lites*) fmt=aout em=nbsd532 ;;
384 ns32k-pc532-openbsd*) fmt=aout em=nbsd532 ;;
386 sparc-*-rtems*) fmt=aout ;;
387 sparc-*-sunos4*) fmt=aout em=sun3 ;;
388 sparc-*-aout | sparc*-*-vxworks*)
389 fmt=aout em=sparcaout ;;
390 sparc-*-coff) fmt=coff ;;
391 sparc-*-linux*aout*) fmt=aout em=linux ;;
392 sparc-*-linux-gnu*) fmt=elf em=linux ;;
393 sparc-*-lynxos*) fmt=coff em=lynx ;;
394 sparc-fujitsu-none) fmt=aout ;;
395 sparc-*-elf | sparc-*-sysv4* | sparc-*-solaris*)
397 sparc-*-netbsd*) em=nbsd bfd_gas=yes
406 sparc-*-openbsd*) fmt=aout em=nbsd ;;
408 strongarm-*-coff) fmt=coff ;;
409 strongarm-*-elf) fmt=elf ;;
410 xscale-*-coff) fmt=coff ;;
411 xscale-*-elf) fmt=elf ;;
413 tic30-*-*aout*) fmt=aout bfd_gas=yes ;;
414 tic30-*-*coff*) fmt=coff bfd_gas=yes ;;
415 tic54x-*-* | c54x*-*-*)
416 fmt=coff bfd_gas=yes need_libm=yes;;
417 tic80-*-*) fmt=coff ;;
419 v850-*-*) fmt=elf bfd_gas=yes ;;
420 v850e-*-*) fmt=elf bfd_gas=yes ;;
421 v850ea-*-*) fmt=elf bfd_gas=yes ;;
423 vax-*-bsd* | vax-*-ultrix*)
425 vax-*-vms) fmt=vms ;;
428 z8k-*-coff | z8k-*-sim)
433 *-*-aout | *-*-scout)
439 *-*-generic) fmt=generic ;;
440 *-*-xray | *-*-hms) fmt=coff ;;
442 *-*-elf | *-*-sysv4* | *-*-solaris*)
443 AC_MSG_WARN(GAS support for ${generic_target} is incomplete.)
445 *-*-vxworks) fmt=aout ;;
446 *-*-netware) fmt=elf ;;
449 if test ${this_target} = $target ; then
451 if test x${endian} = xbig; then
453 elif test x${endian} = xlittle; then
456 if test x${endian_def} != x; then
457 AC_DEFINE_UNQUOTED(TARGET_BYTES_BIG_ENDIAN, $endian_def,
458 [Define as 1 if big endian.])
462 case ${cpu_type}-${fmt} in
463 alpha*-*) bfd_gas=yes ;;
464 arm-*) bfd_gas=yes ;;
466 # i386-aout) bfd_gas=preferred ;;
467 ia64*-*) bfd_gas=yes ;;
468 mips-*) bfd_gas=yes ;;
469 ns32k-*) bfd_gas=yes ;;
470 ppc-*) bfd_gas=yes ;;
471 sparc-*) bfd_gas=yes ;;
472 strongarm-*) bfd_gas=yes ;;
473 *-elf) bfd_gas=yes ;;
474 *-ecoff) bfd_gas=yes ;;
475 *-som) bfd_gas=yes ;;
476 #enable bfd for coff and aout to allow testing if a bfd target is
477 #the primary target, but not for coff or aout as the primary target
478 i386-coff) if test x${primary_bfd_gas} = xyes; then bfd_gas=yes; fi ;;
479 i386-aout) if test x${primary_bfd_gas} = xyes; then bfd_gas=yes; fi ;;
483 # Other random stuff.
485 # Do we need the opcodes library?
493 case "${enable_shared}" in
494 yes) shared_opcodes=true ;;
495 *opcodes*) shared_opcodes=true ;;
496 *) shared_opcodes=false ;;
498 if test "${shared_opcodes}" = "true"; then
499 # A shared libopcodes must be linked against libbfd.
505 # Any other special object files needed ?
512 case ${extra_objects} in
514 *) extra_objects="$extra_objects m68k-parse.o" ;;
519 echo ${extra_objects} | grep -s "itbl-parse.o"
520 if test $? -ne 0 ; then
521 extra_objects="$extra_objects itbl-parse.o"
524 echo ${extra_objects} | grep -s "itbl-lex.o"
525 if test $? -ne 0 ; then
526 extra_objects="$extra_objects itbl-lex.o"
529 echo ${extra_objects} | grep -s "itbl-ops.o"
530 if test $? -ne 0 ; then
531 extra_objects="$extra_objects itbl-ops.o"
536 if test $this_target = $target ; then
537 AC_DEFINE_UNQUOTED(DEFAULT_ARCH, "${arch}", [Default architecture.])
544 if test $using_cgen = yes ; then
545 case "x${extra_objects}" in
547 *) extra_objects="$extra_objects cgen.o" ;;
551 # See if we really can support this configuration with the emulation code.
553 if test $this_target = $target ; then
554 primary_bfd_gas=$bfd_gas
558 if test $bfd_gas = no ; then
559 # Can't support other configurations this way.
562 elif test $bfd_gas = no ; then
563 # Can't support this configuration.
567 # From target name and format, produce a list of supported emulations.
569 case ${generic_target}-${fmt} in
570 mips-*-irix5*-*) emulation="mipsbelf mipslelf mipself mipsbecoff mipslecoff mipsecoff" ;;
571 mips-*-linux-gnu*-*) case "$endian" in
572 big) emulation="mipsbelf mipslelf mipself mipsbecoff mipslecoff mipsecoff" ;;
573 *) emulation="mipslelf mipsbelf mipself mipslecoff mipsbecoff mipsecoff" ;;
575 mips-*-lnews*-ecoff) ;;
576 mips-*-*-ecoff) case "$endian" in
577 big) emulation="mipsbecoff mipslecoff mipsecoff" ;;
578 *) emulation="mipslecoff mipsbecoff mipsecoff" ;;
580 mips-*-*-elf) case "$endian" in
581 big) emulation="mipsbelf mipslelf mipself" ;;
582 *) emulation="mipslelf mipsbelf mipself" ;;
584 mips-*-sysv4*MP*-*) emulation="mipsbelf mipslelf mipself mipsbecoff mipslecoff mipsecoff" ;;
585 # i386-pc-pe-coff != i386-pc-coff.
587 # Uncommenting the next line will turn on support for i386 AOUT
588 # for the default linux configuration
589 # i386-*-linux*-elf) emulation="i386elf i386aout" ;;
591 i386-*-aout) emulation="i386aout" ;;
592 i386-*-coff) emulation="i386coff" ;;
593 i386-*-elf) emulation="i386elf" ;;
595 # Always all formats. Having a.out first makes it the default.
596 cris-*-*) emulation="crisaout criself" ;;
599 emulations="$emulations $emulation"
603 # Turn on all targets if possible
604 if test ${all_targets} = "yes"; then
605 case ${target_cpu_type} in
607 case ${obj_format} in
609 emulations="$emulations i386coff i386elf"
612 emulations="$emulations i386aout i386elf"
615 emulations="$emulations i386aout i386coff"
622 # Assign floating point type. Most processors with FP support
623 # IEEE FP. On those that don't support FP at all, usually IEEE
625 case ${target_cpu} in
626 vax | tahoe ) atof=${target_cpu} ;;
630 case "${obj_format}" in
631 "") AC_MSG_ERROR(GAS does not know what format to use for target ${target}) ;;
634 # Unfortunately the cpu in cpu-opc.h file isn't always $(TARGET_CPU).
636 if test $using_cgen = yes ; then
637 case ${target_cpu} in
638 *) cgen_cpu_prefix=${target_cpu} ;;
640 AC_SUBST(cgen_cpu_prefix)
641 AC_DEFINE(USING_CGEN, 1, [Using cgen code?])
645 dnl Make sure the desired support files exist.
648 if test ! -r ${srcdir}/config/tc-${target_cpu_type}.c; then
649 AC_MSG_ERROR(GAS does not support target CPU ${target_cpu_type})
652 if test ! -r ${srcdir}/config/obj-${obj_format}.c; then
653 AC_MSG_ERROR(GAS does not have support for object file format ${obj_format})
656 case ${user_bfd_gas}-${primary_bfd_gas} in
658 # We didn't override user's choice.
661 AC_MSG_WARN(Use of BFD is required for ${target}; overriding config options.)
673 # User specified nothing.
677 # Some COFF configurations want these random other flags set.
678 case ${obj_format} in
680 case ${target_cpu_type} in
681 i386) AC_DEFINE(I386COFF, 1, [Using i386 COFF?]) ;;
682 m68k) AC_DEFINE(M68KCOFF, 1, [Using m68k COFF?]) ;;
683 m88k) AC_DEFINE(M88KCOFF, 1, [Using m88k COFF?]) ;;
688 # Getting this done right is going to be a bitch. Each configuration specified
689 # with --enable-targets=... should be checked for environment, format, cpu, and
692 # For each configuration, the necessary object file support code must be linked
693 # in. This might be only one, it might be up to four. The necessary emulation
694 # code needs to be provided, too.
696 # And then there's "--enable-targets=all"....
698 # For now, just always do it for MIPS ELF or ECOFF configurations. Sigh.
700 formats="${obj_format}"
704 for em in . $emulations ; do
708 fmt=elf file=mipself ;;
709 mipsbecoff | mipslecoff)
710 fmt=ecoff file=mipsecoff ;;
718 formats="$formats $fmt"
719 emfiles="$emfiles e-$file.o"
720 EMULATIONS="$EMULATIONS &$em,"
724 if test `set . $formats ; shift ; echo $#` -gt 1 ; then
725 for fmt in $formats ; do
727 aout) AC_DEFINE(OBJ_MAYBE_AOUT, 1, [a.out support?]) ;;
728 bout) AC_DEFINE(OBJ_MAYBE_BOUT, 1, [b.out support?]) ;;
729 coff) AC_DEFINE(OBJ_MAYBE_COFF, 1, [COFF support?]) ;;
730 ecoff) AC_DEFINE(OBJ_MAYBE_ECOFF, 1, [ECOFF support?]) ;;
731 elf) AC_DEFINE(OBJ_MAYBE_ELF, 1, [ELF support?]) ;;
732 generic) AC_DEFINE(OBJ_MAYBE_GENERIC, 1, [generic support?]) ;;
733 hp300) AC_DEFINE(OBJ_MAYBE_HP300, 1, [HP300 support?]) ;;
734 ieee) AC_DEFINE(OBJ_MAYBE_IEEE, 1, [IEEE support?]) ;;
735 som) AC_DEFINE(OBJ_MAYBE_SOM, 1, [SOM support?]) ;;
736 vms) AC_DEFINE(OBJ_MAYBE_VMS, 1, [VMS support?]) ;;
738 extra_objects="$extra_objects obj-$fmt.o"
742 if test `set . $emfiles ; shift ; echo $#` -gt 0 ; then
743 DEFAULT_EMULATION=`set . $emulations ; echo $2`
744 # e-mips* has more than one emulation per file, e-i386* has just one at the
745 # moment. If only one emulation is specified, then don't define
746 # USE_EMULATIONS or include any of the e-files as they will only be bloat.
747 case "${obj_format}${emfiles}" in
749 extra_objects="$extra_objects $emfiles"
750 AC_DEFINE(USE_EMULATIONS, 1, [Use emulation support?]) ;;
753 AC_SUBST(extra_objects)
754 AC_DEFINE_UNQUOTED(EMULATIONS, $EMULATIONS, [Supported emulations.])
755 AC_DEFINE_UNQUOTED(DEFAULT_EMULATION, "$DEFAULT_EMULATION",
756 [Default emulation.])
758 case ${primary_bfd_gas}-${target_cpu_type}-${obj_format} in
759 yes-*-coff) need_bfd=yes ;;
760 no-*-coff) need_bfd=yes
761 AC_DEFINE(MANY_SEGMENTS, 1, [old COFF support?]) ;;
764 reject_dev_configs=yes
766 case ${reject_dev_configs}-${dev} in
768 AC_MSG_ERROR(GAS does not support the ${generic_target} configuration.)
772 AC_SUBST(target_cpu_type)
775 AC_SUBST(install_tooldir)
777 dnl AC_SUBST(emulation)
779 case "${primary_bfd_gas}" in
780 yes) AC_DEFINE(BFD_ASSEMBLER, 1, [Use BFD interface?])
784 # do we need the opcodes library?
785 case "${need_opcodes}" in
787 OPCODES_LIB=../opcodes/libopcodes.la
791 case "${need_bfd}" in
793 BFDLIB=../bfd/libbfd.la
794 ALL_OBJ_DEPS="$ALL_OBJ_DEPS ../bfd/bfd.h"
799 AC_SUBST(OPCODES_LIB)
801 AC_SUBST(ALL_OBJ_DEPS)
803 AC_DEFINE_UNQUOTED(TARGET_ALIAS, "${target_alias}", [Target alias.])
804 AC_DEFINE_UNQUOTED(TARGET_CANONICAL, "${target}", [Canonical target.])
805 AC_DEFINE_UNQUOTED(TARGET_CPU, "${target_cpu}", [Target CPU.])
806 AC_DEFINE_UNQUOTED(TARGET_VENDOR, "${target_vendor}", [Target vendor.])
807 AC_DEFINE_UNQUOTED(TARGET_OS, "${target_os}", [Target OS.])
820 AC_CHECK_HEADERS(string.h stdlib.h memory.h strings.h unistd.h stdarg.h varargs.h errno.h sys/types.h)
822 # Put this here so that autoconf's "cross-compiling" message doesn't confuse
823 # people who are not cross-compiling but are compiling cross-assemblers.
824 AC_MSG_CHECKING(whether compiling a cross-assembler)
825 if test "${host}" = "${target}"; then
829 AC_DEFINE(CROSS_COMPILE, 1, [Compiling cross-assembler?])
831 AC_MSG_RESULT($cross_gas)
833 dnl ansidecl.h will deal with const
838 # VMS doesn't have unlink.
839 AC_CHECK_FUNCS(unlink remove, break)
841 # Some systems don't have sbrk().
844 # do we need the math library?
845 case "${need_libm}" in
852 # Some non-ANSI preprocessors botch requoting inside strings. That's bad
853 # enough, but on some of those systems, the assert macro relies on requoting
857 # On some systems, the system header files may not declare malloc, realloc,
858 # and free. There are places where gas needs these functions to have been
859 # declared -- such as when taking their addresses.
867 #ifdef HAVE_STRINGS_H
878 GAS_CHECK_DECL_NEEDED(strstr, f, char *(*f)(), $gas_test_headers)
879 GAS_CHECK_DECL_NEEDED(malloc, f, char *(*f)(), $gas_test_headers)
880 GAS_CHECK_DECL_NEEDED(free, f, void (*f)(), $gas_test_headers)
881 GAS_CHECK_DECL_NEEDED(sbrk, f, char *(*f)(), $gas_test_headers)
882 GAS_CHECK_DECL_NEEDED(environ, f, char **f, $gas_test_headers)
884 # Does errno.h declare errno, or do we have to add a separate declaration
886 GAS_CHECK_DECL_NEEDED(errno, f, int f, [
892 dnl This must come last.
894 dnl We used to make symlinks to files in the source directory, but now
895 dnl we just use the right name for .c files, and create .h files in
896 dnl the build directory which include the right .h file. Make sure
897 dnl the old symlinks don't exist, so that a reconfigure in an existing
898 dnl directory behaves reasonably.
900 AC_OUTPUT(Makefile doc/Makefile ${GDBINIT}:gdbinit.in po/Makefile.in:po/Make-in,
901 [rm -f targ-cpu.c targ-cpu.h obj-format.h obj-format.c targ-env.h atof-targ.c itbl-cpu.h
902 echo '#include "tc-'"${target_cpu_type}"'.h"' > targ-cpu.h
903 echo '#include "obj-'"${obj_format}"'.h"' > obj-format.h
904 echo '#include "te-'"${te_file}"'.h"' > targ-env.h
905 echo '#include "itbl-'"${target_cpu_type}"'.h"' > itbl-cpu.h
906 if test "x$cgen_cpu_prefix" != x ; then
907 echo '#include "opcodes/'"${cgen_cpu_prefix}"'-desc.h"' > cgen-desc.h
910 sed -e '/POTFILES =/r po/POTFILES' po/Makefile.in > po/Makefile],
911 [target_cpu_type=${target_cpu_type}
912 cgen_cpu_prefix=${cgen_cpu_prefix}
913 obj_format=${obj_format}