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-*-vxworks*) fmt=coff ;;
168 alpha*-*-*vms*) fmt=evax ;;
169 alpha*-*-netware*) fmt=ecoff ;;
170 alpha*-*-openbsd*) fmt=ecoff ;;
171 alpha*-*-osf*) fmt=ecoff ;;
172 alpha*-*-linuxecoff*) fmt=ecoff ;;
173 alpha*-*-linux-gnu*) fmt=elf em=linux ;;
174 alpha*-*-netbsd*) fmt=elf em=nbsd ;;
176 arc-*-elf*) fmt=elf bfd_gas=yes ;;
178 arm-*-aout) fmt=aout ;;
179 arm-*-coff | thumb-*-coff) fmt=coff ;;
180 arm-*-elf | thumb-*-elf) fmt=elf ;;
181 arm*-*-conix*) fmt=elf ;;
182 arm-*-linux*aout*) fmt=aout em=linux ;;
183 arm*-*-linux-gnu* | arm*-*-uclinux*)
185 arm-*-netbsd*) fmt=aout em=nbsd ;;
186 arm-*-oabi | thumb-*-oabi) fmt=elf ;;
187 arm-epoc-pe | thumb-epoc-pe) fmt=coff em=epoc-pe ;;
188 arm-*-wince) fmt=coff em=wince-pe ;;
189 arm-*-pe | thumb-*-pe) fmt=coff em=pe ;;
190 arm-*-riscix*) fmt=aout em=riscix ;;
192 avr-*-*) fmt=elf bfd_gas=yes ;;
194 cris-*-*) fmt=multi bfd_gas=yes ;;
196 d10v-*-*) fmt=elf bfd_gas=yes ;;
197 d30v-*-*) fmt=elf bfd_gas=yes ;;
200 fr30-*-*) fmt=elf bfd_gas=yes ;;
202 hppa-*-linux-gnu*) case ${cpu} in
204 fmt=elf em=hppalinux64;;
208 hppa-*-*elf*) fmt=elf em=hppa ;;
209 hppa-*-lites*) fmt=elf em=hppa ;;
210 hppa-*-osf*) fmt=som em=hppa ;;
211 hppa-*-rtems*) fmt=elf em=hppa ;;
212 hppa-*-hpux11*) case ${cpu} in
218 hppa-*-hpux*) fmt=som em=hppa ;;
219 hppa-*-mpeix*) fmt=som em=hppa ;;
220 hppa-*-bsd*) fmt=som em=hppa ;;
221 hppa-*-hiux*) fmt=som em=hppa ;;
223 h8300-*-coff) fmt=coff ;;
225 i370-*-elf* | i370-*-linux*) fmt=elf ;;
226 i386-ibm-aix*) fmt=coff em=i386aix ;;
227 i386-sequent-bsd*) fmt=aout em=dynix bfd_gas=yes ;;
228 i386-*-beospe*) fmt=coff em=pe bfd_gas=yes ;;
229 i386-*-beoself* | i386-*-beos*) fmt=elf bfd_gas=yes ;;
230 i386-*-bsd*) fmt=aout em=386bsd ;;
231 i386-*-netbsd0.8) fmt=aout em=386bsd ;;
232 i386-*-netbsd*) fmt=aout em=nbsd bfd_gas=yes;;
233 i386-*-openbsd*) fmt=aout em=nbsd bfd_gas=yes;;
234 i386-*-linux*aout* | i386-*-linuxoldld) fmt=aout em=linux ;;
235 i386-*-linux*coff*) fmt=coff em=linux ;;
236 i386-*-linux-gnu*) fmt=elf em=linux bfd_gas=yes ;;
237 i386-*-lynxos*) fmt=coff em=lynx ;;
239 i386-*-sysv[45]* | i386-*-solaris* | i386-*-elf)
240 fmt=elf bfd_gas=yes ;;
241 i386-*-freebsdaout* | i386-*-freebsd[12].* | i386-*-freebsd[12])
242 fmt=aout em=386bsd ;;
244 i386-*-freebsd*) fmt=elf bfd_gas=yes ;;
245 i386-*-coff | i386-*-sysv* | i386-*-sco3.2v5*coff | i386-*-isc*)
247 i386-*-sco3.2v5*) fmt=elf
248 if test ${this_target} = $target; then
249 AC_DEFINE(SCO_ELF, 1,
250 [Define if defaulting to ELF on SCO 5.])
253 i386-*-sco3.2*) fmt=coff ;;
254 i386-*-vsta) fmt=aout ;;
255 i386-*-msdosdjgpp* | i386-*-go32* | i386-go32-rtems*)
257 AC_DEFINE(STRICTCOFF, 1, [Using strict COFF?])
259 i386-*-rtemself*) fmt=elf ;;
260 i386-*-rtems*) fmt=coff ;;
261 i386-*-gnu*) fmt=elf ;;
263 fmt=aout em=mach bfd_gas=yes ;;
264 i386-*-msdos*) fmt=aout ;;
265 i386-*-moss*) fmt=elf ;;
266 i386-*-pe) fmt=coff em=pe bfd_gas=yes ;;
267 i386-*-cygwin*) fmt=coff em=pe bfd_gas=yes ;;
268 i386-*-interix*) fmt=coff em=interix bfd_gas=yes ;;
269 i386-*-mingw32*) fmt=coff em=pe bfd_gas=yes ;;
270 i386-*-*nt*) fmt=coff em=pe bfd_gas=yes ;;
271 i386-*-vxworks*) fmt=aout ;;
272 i386-*-chaos) fmt=elf ;;
273 i860-stardent-sysv4* | i860-stardent-elf*)
274 fmt=elf bfd_gas=yes endian=little
275 AC_MSG_WARN(GAS support for ${generic_target} is preliminary and a work in progress) ;;
276 i960-*-bout) fmt=bout ;;
277 i960-*-coff) fmt=coff em=ic960 ;;
278 i960-*-rtems*) fmt=coff em=ic960 ;;
279 i960-*-nindy*) fmt=bout ;;
280 i960-*-vxworks4*) fmt=bout ;;
281 i960-*-vxworks5.0) fmt=bout ;;
282 i960-*-vxworks5.*) fmt=coff em=ic960 ;;
283 i960-*-vxworks*) fmt=bout ;;
284 i960-*-elf*) fmt=elf ;;
286 ia64-*-elf*) fmt=elf ;;
287 ia64-*-linux-gnu*) fmt=elf em=linux ;;
288 ia64-*-hpux*) fmt=elf em=hpux ;;
290 m32r-*-*) fmt=elf bfd_gas=yes ;;
292 m68hc11-*-*|m6811-*-*|m68hc12-*-*|m6812-*-*)fmt=elf bfd_gas=yes ;;
294 m68k-*-vxworks* | m68k-ericsson-ose | m68k-*-sunos*)
296 m68k-motorola-sysv*) fmt=coff em=delta ;;
297 m68k-bull-sysv3*) fmt=coff em=dpx2 ;;
298 m68k-apollo-*) fmt=coff em=apollo ;;
299 m68k-*-sysv4*) # must be before -sysv*
301 m68k-*-elf*) fmt=elf ;;
302 m68k-*-coff | m68k-*-sysv* | m68k-*-rtems*)
304 m68k-*-hpux*) fmt=hp300 em=hp300 ;;
305 m68k-*-linux*aout*) fmt=aout em=linux ;;
306 m68k-*-linux-gnu*) fmt=elf em=linux ;;
307 m68k-*-gnu*) fmt=elf ;;
308 m68k-*-lynxos*) fmt=coff em=lynx ;;
309 m68k-*-netbsd*) fmt=aout em=nbsd bfd_gas=yes ;;
310 m68k-*-openbsd*) fmt=aout em=nbsd bfd_gas=yes ;;
311 m68k-apple-aux*) fmt=coff em=aux ;;
312 m68k-*-psos*) fmt=elf em=psos;;
314 m88k-motorola-sysv3*) fmt=coff em=delt88 ;;
315 m88k-*-coff*) fmt=coff ;;
317 mcore-*-elf) fmt=elf bfd_gas=yes ;;
318 mcore-*-pe) fmt=coff em=pe bfd_gas=yes ;;
320 # don't change em like *-*-bsd does
321 mips-dec-netbsd*) fmt=elf endian=little ;;
322 mips-dec-openbsd*) fmt=elf endian=little ;;
323 mips-dec-bsd*) fmt=aout endian=little ;;
324 mips-sony-bsd*) fmt=ecoff ;;
325 mips-*-bsd*) AC_MSG_ERROR(Unknown vendor for mips-bsd configuration.) ;;
326 mips-*-ultrix*) fmt=ecoff endian=little ;;
327 mips-*-osf*) fmt=ecoff endian=little ;;
328 mips-*-ecoff*) fmt=ecoff ;;
329 mips-*-ecoff*) fmt=ecoff ;;
330 mips-*-pe*) fmt=coff endian=little em=pe ;;
331 mips-*-irix6*) fmt=elf ;;
332 mips-*-irix5*) fmt=elf ;;
333 mips-*-irix*) fmt=ecoff ;;
334 mips-*-lnews*) fmt=ecoff em=lnews ;;
335 mips-*-riscos*) fmt=ecoff ;;
336 mips-*-sysv4*MP*) fmt=elf em=tmips ;;
337 mips-*-sysv*) fmt=ecoff ;;
338 mips-*-elf* | mips-*-rtems* | mips-*-linux-gnu* | mips-*-gnu* | mips-*-openbsd*)
340 mips-*-vxworks*) fmt=elf
341 AC_DEFINE(MIPS_STABS_ELF, 1,
342 [Use ELF stabs for MIPS, not ECOFF stabs])
344 mn10200-*-*) fmt=elf bfd_gas=yes ;;
345 mn10300-*-*) fmt=elf bfd_gas=yes ;;
347 ppc-*-pe | ppc-*-cygwin* | ppc-*-winnt*)
349 ppc-*-aix*) fmt=coff ;;
350 ppc-*-beos*) fmt=coff ;;
351 ppc-*-*bsd* | ppc-*-elf* | ppc-*-eabi* | ppc-*-sysv4*)
353 ppc-*-linux-gnu*) fmt=elf
356 *) AC_MSG_ERROR(GNU/Linux must be configured big endian) ;;
359 ppc-*-solaris*) fmt=elf
360 if test ${this_target} = $target; then
361 AC_DEFINE(TARGET_SOLARIS_COMMENT, 1,
362 [Define if default target is PowerPC Solaris.])
364 if test x${endian} = xbig; then
365 AC_MSG_ERROR(Solaris must be configured little endian)
368 ppc-*-rtems*) fmt=elf ;;
369 ppc-*-macos* | ppc-*-mpw*)
371 ppc-*-netware*) fmt=elf em=ppcnw ;;
372 ppc-*-vxworks*) fmt=elf ;;
374 sh-*-linux*) fmt=elf em=linux ;;
375 sh-*-elf*) fmt=elf ;;
376 sh-*-coff*) fmt=coff ;;
377 sh-*-pe*) fmt=coff em=pe bfd_gas=yes;;
378 sh-*-rtemself*) fmt=elf ;;
379 sh-*-rtems*) fmt=coff ;;
381 ns32k-pc532-mach* | ns32k-pc532-ux*) fmt=aout em=pc532mach ;;
382 ns32k-pc532-netbsd* | ns32k-pc532-lites*) fmt=aout em=nbsd532 ;;
383 ns32k-pc532-openbsd*) fmt=aout em=nbsd532 ;;
385 sparc-*-rtems*) fmt=aout ;;
386 sparc-*-sunos4*) fmt=aout em=sun3 ;;
387 sparc-*-aout | sparc*-*-vxworks*)
388 fmt=aout em=sparcaout ;;
389 sparc-*-coff) fmt=coff ;;
390 sparc-*-linux*aout*) fmt=aout em=linux ;;
391 sparc-*-linux-gnu*) fmt=elf em=linux ;;
392 sparc-*-lynxos*) fmt=coff em=lynx ;;
393 sparc-fujitsu-none) fmt=aout ;;
394 sparc-*-elf | sparc-*-sysv4* | sparc-*-solaris*)
396 sparc-*-netbsd*) em=nbsd bfd_gas=yes
405 sparc-*-openbsd*) fmt=aout em=nbsd ;;
407 strongarm-*-coff) fmt=coff ;;
408 strongarm-*-elf) fmt=elf ;;
410 tic30-*-*aout*) fmt=aout bfd_gas=yes ;;
411 tic30-*-*coff*) fmt=coff bfd_gas=yes ;;
412 tic54x-*-* | c54x*-*-*)
413 fmt=coff bfd_gas=yes need_libm=yes;;
414 tic80-*-*) fmt=coff ;;
416 v850-*-*) fmt=elf bfd_gas=yes ;;
417 v850e-*-*) fmt=elf bfd_gas=yes ;;
418 v850ea-*-*) fmt=elf bfd_gas=yes ;;
420 vax-*-bsd* | vax-*-ultrix*)
422 vax-*-vms) fmt=vms ;;
425 z8k-*-coff | z8k-*-sim)
430 *-*-aout | *-*-scout)
436 *-*-generic) fmt=generic ;;
437 *-*-xray | *-*-hms) fmt=coff ;;
439 *-*-elf | *-*-sysv4* | *-*-solaris*)
440 AC_MSG_WARN(GAS support for ${generic_target} is incomplete.)
442 *-*-vxworks) fmt=aout ;;
443 *-*-netware) fmt=elf ;;
446 if test ${this_target} = $target ; then
448 if test x${endian} = xbig; then
450 elif test x${endian} = xlittle; then
453 if test x${endian_def} != x; then
454 AC_DEFINE_UNQUOTED(TARGET_BYTES_BIG_ENDIAN, $endian_def,
455 [Define as 1 if big endian.])
459 case ${cpu_type}-${fmt} in
460 alpha*-*) bfd_gas=yes ;;
461 arm-*) bfd_gas=yes ;;
463 # i386-aout) bfd_gas=preferred ;;
464 ia64*-*) bfd_gas=yes ;;
465 mips-*) bfd_gas=yes ;;
466 ns32k-*) bfd_gas=yes ;;
467 ppc-*) bfd_gas=yes ;;
468 sparc-*) bfd_gas=yes ;;
469 strongarm-*) bfd_gas=yes ;;
470 *-elf) bfd_gas=yes ;;
471 *-ecoff) bfd_gas=yes ;;
472 *-som) bfd_gas=yes ;;
473 #enable bfd for coff and aout to allow testing if a bfd target is
474 #the primary target, but not for coff or aout as the primary target
475 i386-coff) if test x${primary_bfd_gas} = xyes; then bfd_gas=yes; fi ;;
476 i386-aout) if test x${primary_bfd_gas} = xyes; then bfd_gas=yes; fi ;;
480 # Other random stuff.
482 # Do we need the opcodes library?
490 case "${enable_shared}" in
491 yes) shared_opcodes=true ;;
492 *opcodes*) shared_opcodes=true ;;
493 *) shared_opcodes=false ;;
495 if test "${shared_opcodes}" = "true"; then
496 # A shared libopcodes must be linked against libbfd.
502 # Any other special object files needed ?
509 case ${extra_objects} in
511 *) extra_objects="$extra_objects m68k-parse.o" ;;
516 echo ${extra_objects} | grep -s "itbl-parse.o"
517 if test $? -ne 0 ; then
518 extra_objects="$extra_objects itbl-parse.o"
521 echo ${extra_objects} | grep -s "itbl-lex.o"
522 if test $? -ne 0 ; then
523 extra_objects="$extra_objects itbl-lex.o"
526 echo ${extra_objects} | grep -s "itbl-ops.o"
527 if test $? -ne 0 ; then
528 extra_objects="$extra_objects itbl-ops.o"
533 if test $this_target = $target ; then
534 AC_DEFINE_UNQUOTED(DEFAULT_ARCH, "${arch}", [Default architecture.])
541 if test $using_cgen = yes ; then
542 case "x${extra_objects}" in
544 *) extra_objects="$extra_objects cgen.o" ;;
548 # See if we really can support this configuration with the emulation code.
550 if test $this_target = $target ; then
551 primary_bfd_gas=$bfd_gas
555 if test $bfd_gas = no ; then
556 # Can't support other configurations this way.
559 elif test $bfd_gas = no ; then
560 # Can't support this configuration.
564 # From target name and format, produce a list of supported emulations.
566 case ${generic_target}-${fmt} in
567 mips-*-irix5*-*) emulation="mipsbelf mipslelf mipself mipsbecoff mipslecoff mipsecoff" ;;
568 mips-*-linux-gnu*-*) case "$endian" in
569 big) emulation="mipsbelf mipslelf mipself mipsbecoff mipslecoff mipsecoff" ;;
570 *) emulation="mipslelf mipsbelf mipself mipslecoff mipsbecoff mipsecoff" ;;
572 mips-*-lnews*-ecoff) ;;
573 mips-*-*-ecoff) case "$endian" in
574 big) emulation="mipsbecoff mipslecoff mipsecoff" ;;
575 *) emulation="mipslecoff mipsbecoff mipsecoff" ;;
577 mips-*-*-elf) case "$endian" in
578 big) emulation="mipsbelf mipslelf mipself" ;;
579 *) emulation="mipslelf mipsbelf mipself" ;;
581 mips-*-sysv4*MP*-*) emulation="mipsbelf mipslelf mipself mipsbecoff mipslecoff mipsecoff" ;;
582 # i386-pc-pe-coff != i386-pc-coff.
584 # Uncommenting the next line will turn on support for i386 AOUT
585 # for the default linux configuration
586 # i386-*-linux*-elf) emulation="i386elf i386aout" ;;
588 i386-*-aout) emulation="i386aout" ;;
589 i386-*-coff) emulation="i386coff" ;;
590 i386-*-elf) emulation="i386elf" ;;
592 # Always all formats. Having a.out first makes it the default.
593 cris-*-*) emulation="crisaout criself" ;;
596 emulations="$emulations $emulation"
600 # Turn on all targets if possible
601 if test ${all_targets} = "yes"; then
602 case ${target_cpu_type} in
604 case ${obj_format} in
606 emulations="$emulations i386coff i386elf"
609 emulations="$emulations i386aout i386elf"
612 emulations="$emulations i386aout i386coff"
619 # Assign floating point type. Most processors with FP support
620 # IEEE FP. On those that don't support FP at all, usually IEEE
622 case ${target_cpu} in
623 vax | tahoe ) atof=${target_cpu} ;;
627 case "${obj_format}" in
628 "") AC_MSG_ERROR(GAS does not know what format to use for target ${target}) ;;
631 # Unfortunately the cpu in cpu-opc.h file isn't always $(TARGET_CPU).
633 if test $using_cgen = yes ; then
634 case ${target_cpu} in
635 *) cgen_cpu_prefix=${target_cpu} ;;
637 AC_SUBST(cgen_cpu_prefix)
638 AC_DEFINE(USING_CGEN, 1, [Using cgen code?])
642 dnl Make sure the desired support files exist.
645 if test ! -r ${srcdir}/config/tc-${target_cpu_type}.c; then
646 AC_MSG_ERROR(GAS does not support target CPU ${target_cpu_type})
649 if test ! -r ${srcdir}/config/obj-${obj_format}.c; then
650 AC_MSG_ERROR(GAS does not have support for object file format ${obj_format})
653 case ${user_bfd_gas}-${primary_bfd_gas} in
655 # We didn't override user's choice.
658 AC_MSG_WARN(Use of BFD is required for ${target}; overriding config options.)
670 # User specified nothing.
674 # Some COFF configurations want these random other flags set.
675 case ${obj_format} in
677 case ${target_cpu_type} in
678 i386) AC_DEFINE(I386COFF, 1, [Using i386 COFF?]) ;;
679 m68k) AC_DEFINE(M68KCOFF, 1, [Using m68k COFF?]) ;;
680 m88k) AC_DEFINE(M88KCOFF, 1, [Using m88k COFF?]) ;;
685 # Getting this done right is going to be a bitch. Each configuration specified
686 # with --enable-targets=... should be checked for environment, format, cpu, and
689 # For each configuration, the necessary object file support code must be linked
690 # in. This might be only one, it might be up to four. The necessary emulation
691 # code needs to be provided, too.
693 # And then there's "--enable-targets=all"....
695 # For now, just always do it for MIPS ELF or ECOFF configurations. Sigh.
697 formats="${obj_format}"
701 for em in . $emulations ; do
705 fmt=elf file=mipself ;;
706 mipsbecoff | mipslecoff)
707 fmt=ecoff file=mipsecoff ;;
715 formats="$formats $fmt"
716 emfiles="$emfiles e-$file.o"
717 EMULATIONS="$EMULATIONS &$em,"
721 if test `set . $formats ; shift ; echo $#` -gt 1 ; then
722 for fmt in $formats ; do
724 aout) AC_DEFINE(OBJ_MAYBE_AOUT, 1, [a.out support?]) ;;
725 bout) AC_DEFINE(OBJ_MAYBE_BOUT, 1, [b.out support?]) ;;
726 coff) AC_DEFINE(OBJ_MAYBE_COFF, 1, [COFF support?]) ;;
727 ecoff) AC_DEFINE(OBJ_MAYBE_ECOFF, 1, [ECOFF support?]) ;;
728 elf) AC_DEFINE(OBJ_MAYBE_ELF, 1, [ELF support?]) ;;
729 generic) AC_DEFINE(OBJ_MAYBE_GENERIC, 1, [generic support?]) ;;
730 hp300) AC_DEFINE(OBJ_MAYBE_HP300, 1, [HP300 support?]) ;;
731 ieee) AC_DEFINE(OBJ_MAYBE_IEEE, 1, [IEEE support?]) ;;
732 som) AC_DEFINE(OBJ_MAYBE_SOM, 1, [SOM support?]) ;;
733 vms) AC_DEFINE(OBJ_MAYBE_VMS, 1, [VMS support?]) ;;
735 extra_objects="$extra_objects obj-$fmt.o"
739 if test `set . $emfiles ; shift ; echo $#` -gt 0 ; then
740 DEFAULT_EMULATION=`set . $emulations ; echo $2`
741 # e-mips* has more than one emulation per file, e-i386* has just one at the
742 # moment. If only one emulation is specified, then don't define
743 # USE_EMULATIONS or include any of the e-files as they will only be bloat.
744 case "${obj_format}${emfiles}" in
746 extra_objects="$extra_objects $emfiles"
747 AC_DEFINE(USE_EMULATIONS, 1, [Use emulation support?]) ;;
750 AC_SUBST(extra_objects)
751 AC_DEFINE_UNQUOTED(EMULATIONS, $EMULATIONS, [Supported emulations.])
752 AC_DEFINE_UNQUOTED(DEFAULT_EMULATION, "$DEFAULT_EMULATION",
753 [Default emulation.])
755 case ${primary_bfd_gas}-${target_cpu_type}-${obj_format} in
756 yes-*-coff) need_bfd=yes ;;
757 no-*-coff) need_bfd=yes
758 AC_DEFINE(MANY_SEGMENTS, 1, [old COFF support?]) ;;
761 reject_dev_configs=yes
763 case ${reject_dev_configs}-${dev} in
765 AC_MSG_ERROR(GAS does not support the ${generic_target} configuration.)
769 AC_SUBST(target_cpu_type)
772 AC_SUBST(install_tooldir)
774 dnl AC_SUBST(emulation)
776 case "${primary_bfd_gas}" in
777 yes) AC_DEFINE(BFD_ASSEMBLER, 1, [Use BFD interface?])
781 # do we need the opcodes library?
782 case "${need_opcodes}" in
784 OPCODES_LIB=../opcodes/libopcodes.la
788 case "${need_bfd}" in
790 BFDLIB=../bfd/libbfd.la
791 ALL_OBJ_DEPS="$ALL_OBJ_DEPS ../bfd/bfd.h"
796 AC_SUBST(OPCODES_LIB)
798 AC_SUBST(ALL_OBJ_DEPS)
800 AC_DEFINE_UNQUOTED(TARGET_ALIAS, "${target_alias}", [Target alias.])
801 AC_DEFINE_UNQUOTED(TARGET_CANONICAL, "${target}", [Canonical target.])
802 AC_DEFINE_UNQUOTED(TARGET_CPU, "${target_cpu}", [Target CPU.])
803 AC_DEFINE_UNQUOTED(TARGET_VENDOR, "${target_vendor}", [Target vendor.])
804 AC_DEFINE_UNQUOTED(TARGET_OS, "${target_os}", [Target OS.])
817 AC_CHECK_HEADERS(string.h stdlib.h memory.h strings.h unistd.h stdarg.h varargs.h errno.h sys/types.h)
819 # Put this here so that autoconf's "cross-compiling" message doesn't confuse
820 # people who are not cross-compiling but are compiling cross-assemblers.
821 AC_MSG_CHECKING(whether compiling a cross-assembler)
822 if test "${host}" = "${target}"; then
826 AC_DEFINE(CROSS_COMPILE, 1, [Compiling cross-assembler?])
828 AC_MSG_RESULT($cross_gas)
830 dnl ansidecl.h will deal with const
835 # VMS doesn't have unlink.
836 AC_CHECK_FUNCS(unlink remove, break)
838 # Some systems don't have sbrk().
841 # do we need the math library?
842 case "${need_libm}" in
849 # Some non-ANSI preprocessors botch requoting inside strings. That's bad
850 # enough, but on some of those systems, the assert macro relies on requoting
854 # On some systems, the system header files may not declare malloc, realloc,
855 # and free. There are places where gas needs these functions to have been
856 # declared -- such as when taking their addresses.
864 #ifdef HAVE_STRINGS_H
875 GAS_CHECK_DECL_NEEDED(strstr, f, char *(*f)(), $gas_test_headers)
876 GAS_CHECK_DECL_NEEDED(malloc, f, char *(*f)(), $gas_test_headers)
877 GAS_CHECK_DECL_NEEDED(free, f, void (*f)(), $gas_test_headers)
878 GAS_CHECK_DECL_NEEDED(sbrk, f, char *(*f)(), $gas_test_headers)
879 GAS_CHECK_DECL_NEEDED(environ, f, char **f, $gas_test_headers)
881 # Does errno.h declare errno, or do we have to add a separate declaration
883 GAS_CHECK_DECL_NEEDED(errno, f, int f, [
889 dnl This must come last.
891 dnl We used to make symlinks to files in the source directory, but now
892 dnl we just use the right name for .c files, and create .h files in
893 dnl the build directory which include the right .h file. Make sure
894 dnl the old symlinks don't exist, so that a reconfigure in an existing
895 dnl directory behaves reasonably.
897 AC_OUTPUT(Makefile doc/Makefile ${GDBINIT}:gdbinit.in po/Makefile.in:po/Make-in,
898 [rm -f targ-cpu.c targ-cpu.h obj-format.h obj-format.c targ-env.h atof-targ.c itbl-cpu.h
899 echo '#include "tc-'"${target_cpu_type}"'.h"' > targ-cpu.h
900 echo '#include "obj-'"${obj_format}"'.h"' > obj-format.h
901 echo '#include "te-'"${te_file}"'.h"' > targ-env.h
902 echo '#include "itbl-'"${target_cpu_type}"'.h"' > itbl-cpu.h
903 if test "x$cgen_cpu_prefix" != x ; then
904 echo '#include "opcodes/'"${cgen_cpu_prefix}"'-desc.h"' > cgen-desc.h
907 sed -e '/POTFILES =/r po/POTFILES' po/Makefile.in > po/Makefile],
908 [target_cpu_type=${target_cpu_type}
909 cgen_cpu_prefix=${cgen_cpu_prefix}
910 obj_format=${obj_format}