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 ;;
237 i386-*-sysv[45]* | i386-*-solaris* | i386-*-elf)
238 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 AC_DEFINE(STRICTCOFF, 1, [Using strict COFF?])
257 i386-*-rtemself*) fmt=elf ;;
258 i386-*-rtems*) fmt=coff ;;
259 i386-*-gnu*) fmt=elf ;;
261 fmt=aout em=mach bfd_gas=yes ;;
262 i386-*-msdos*) fmt=aout ;;
263 i386-*-moss*) fmt=elf ;;
264 i386-*-pe) fmt=coff em=pe bfd_gas=yes ;;
265 i386-*-cygwin*) fmt=coff em=pe bfd_gas=yes ;;
266 i386-*-interix*) fmt=coff em=interix bfd_gas=yes ;;
267 i386-*-mingw32*) fmt=coff em=pe bfd_gas=yes ;;
268 i386-*-*nt*) fmt=coff em=pe bfd_gas=yes ;;
269 i386-*-vxworks*) fmt=aout ;;
270 i860-stardent-sysv4* | i860-stardent-elf*)
271 fmt=elf bfd_gas=yes endian=little
272 AC_MSG_WARN(GAS support for ${generic_target} is preliminary and a work in progress) ;;
273 i960-*-bout) fmt=bout ;;
274 i960-*-coff) fmt=coff em=ic960 ;;
275 i960-*-rtems*) fmt=coff em=ic960 ;;
276 i960-*-nindy*) fmt=bout ;;
277 i960-*-vxworks4*) fmt=bout ;;
278 i960-*-vxworks5.0) fmt=bout ;;
279 i960-*-vxworks5.*) fmt=coff em=ic960 ;;
280 i960-*-vxworks*) fmt=bout ;;
281 i960-*-elf*) fmt=elf ;;
283 ia64-*-elf*) fmt=elf ;;
284 ia64-*-linux-gnu*) fmt=elf em=linux ;;
286 m32r-*-*) fmt=elf bfd_gas=yes ;;
288 m68hc11-*-*|m6811-*-*|m68hc12-*-*|m6812-*-*)fmt=elf bfd_gas=yes ;;
290 m68k-*-vxworks* | m68k-ericsson-ose | m68k-*-sunos*)
292 m68k-motorola-sysv*) fmt=coff em=delta ;;
293 m68k-bull-sysv3*) fmt=coff em=dpx2 ;;
294 m68k-apollo-*) fmt=coff em=apollo ;;
295 m68k-*-sysv4*) # must be before -sysv*
297 m68k-*-elf*) fmt=elf ;;
298 m68k-*-coff | m68k-*-sysv* | m68k-*-rtems*)
300 m68k-*-hpux*) fmt=hp300 em=hp300 ;;
301 m68k-*-linux*aout*) fmt=aout em=linux ;;
302 m68k-*-linux-gnu*) fmt=elf em=linux ;;
303 m68k-*-gnu*) fmt=elf ;;
304 m68k-*-lynxos*) fmt=coff em=lynx ;;
305 m68k-*-netbsd*) fmt=aout em=nbsd bfd_gas=yes ;;
306 m68k-*-openbsd*) fmt=aout em=nbsd bfd_gas=yes ;;
307 m68k-apple-aux*) fmt=coff em=aux ;;
308 m68k-*-psos*) fmt=elf em=psos;;
310 m88k-motorola-sysv3*) fmt=coff em=delt88 ;;
311 m88k-*-coff*) fmt=coff ;;
313 mcore-*-elf) fmt=elf bfd_gas=yes ;;
314 mcore-*-pe) fmt=coff em=pe bfd_gas=yes ;;
316 # don't change em like *-*-bsd does
317 mips-dec-netbsd*) fmt=elf endian=little ;;
318 mips-dec-openbsd*) fmt=elf endian=little ;;
319 mips-dec-bsd*) fmt=aout endian=little ;;
320 mips-sony-bsd*) fmt=ecoff ;;
321 mips-*-bsd*) AC_MSG_ERROR(Unknown vendor for mips-bsd configuration.) ;;
322 mips-*-ultrix*) fmt=ecoff endian=little ;;
323 mips-*-osf*) fmt=ecoff endian=little ;;
324 mips-*-ecoff*) fmt=ecoff ;;
325 mips-*-ecoff*) fmt=ecoff ;;
326 mips-*-pe*) fmt=coff endian=little em=pe ;;
327 mips-*-irix6*) fmt=elf ;;
328 mips-*-irix5*) fmt=elf ;;
329 mips-*-irix*) fmt=ecoff ;;
330 mips-*-lnews*) fmt=ecoff em=lnews ;;
331 mips-*-riscos*) fmt=ecoff ;;
332 mips-*-sysv4*MP*) fmt=elf em=tmips ;;
333 mips-*-sysv*) fmt=ecoff ;;
334 mips-*-elf* | mips-*-rtems* | mips-*-linux-gnu* | mips-*-gnu* | mips-*-openbsd*)
336 mips-*-vxworks*) fmt=elf
337 AC_DEFINE(MIPS_STABS_ELF, 1,
338 [Use ELF stabs for MIPS, not ECOFF stabs])
340 mn10200-*-*) fmt=elf bfd_gas=yes ;;
341 mn10300-*-*) fmt=elf bfd_gas=yes ;;
343 ppc-*-pe | ppc-*-cygwin* | ppc-*-winnt*)
345 ppc-*-aix*) fmt=coff ;;
346 ppc-*-beos*) fmt=coff ;;
347 ppc-*-*bsd* | ppc-*-elf* | ppc-*-eabi* | ppc-*-sysv4*)
349 ppc-*-linux-gnu*) fmt=elf
352 *) AC_MSG_ERROR(GNU/Linux must be configured big endian) ;;
355 ppc-*-solaris*) fmt=elf
356 if test ${this_target} = $target; then
357 AC_DEFINE(TARGET_SOLARIS_COMMENT, 1,
358 [Define if default target is PowerPC Solaris.])
360 if test x${endian} = xbig; then
361 AC_MSG_ERROR(Solaris must be configured little endian)
364 ppc-*-rtems*) fmt=elf ;;
365 ppc-*-macos* | ppc-*-mpw*)
367 ppc-*-netware*) fmt=elf em=ppcnw ;;
368 ppc-*-vxworks*) fmt=elf ;;
370 sh-*-elf*) fmt=elf ;;
371 sh-*-coff*) fmt=coff ;;
372 sh-*-pe*) fmt=coff em=pe bfd_gas=yes;;
373 sh-*-rtemself*) fmt=elf ;;
374 sh-*-rtems*) fmt=coff ;;
376 ns32k-pc532-mach* | ns32k-pc532-ux*) fmt=aout em=pc532mach ;;
377 ns32k-pc532-netbsd* | ns32k-pc532-lites*) fmt=aout em=nbsd532 ;;
378 ns32k-pc532-openbsd*) fmt=aout em=nbsd532 ;;
380 sparc-*-rtems*) fmt=aout ;;
381 sparc-*-sunos4*) fmt=aout em=sun3 ;;
382 sparc-*-aout | sparc*-*-vxworks*)
383 fmt=aout em=sparcaout ;;
384 sparc-*-coff) fmt=coff ;;
385 sparc-*-linux*aout*) fmt=aout em=linux ;;
386 sparc-*-linux-gnu*) fmt=elf em=linux ;;
387 sparc-*-lynxos*) fmt=coff em=lynx ;;
388 sparc-fujitsu-none) fmt=aout ;;
389 sparc-*-elf | sparc-*-sysv4* | sparc-*-solaris*)
391 sparc-*-netbsd*) em=nbsd bfd_gas=yes
400 sparc-*-openbsd*) fmt=aout em=nbsd ;;
402 strongarm-*-coff) fmt=coff ;;
403 strongarm-*-elf) fmt=elf ;;
405 tic30-*-*aout*) fmt=aout bfd_gas=yes ;;
406 tic30-*-*coff*) fmt=coff bfd_gas=yes ;;
407 tic54x-*-* | c54x*-*-*)
408 fmt=coff bfd_gas=yes need_libm=yes;;
409 tic80-*-*) fmt=coff ;;
411 v850-*-*) fmt=elf bfd_gas=yes ;;
412 v850e-*-*) fmt=elf bfd_gas=yes ;;
413 v850ea-*-*) fmt=elf bfd_gas=yes ;;
415 vax-*-bsd* | vax-*-ultrix*)
417 vax-*-vms) fmt=vms ;;
420 z8k-*-coff | z8k-*-sim)
425 *-*-aout | *-*-scout)
431 *-*-generic) fmt=generic ;;
432 *-*-xray | *-*-hms) fmt=coff ;;
434 *-*-elf | *-*-sysv4* | *-*-solaris*)
435 AC_MSG_WARN(GAS support for ${generic_target} is incomplete.)
437 *-*-vxworks) fmt=aout ;;
438 *-*-netware) fmt=elf ;;
441 if test ${this_target} = $target ; then
443 if test x${endian} = xbig; then
445 elif test x${endian} = xlittle; then
448 if test x${endian_def} != x; then
449 AC_DEFINE_UNQUOTED(TARGET_BYTES_BIG_ENDIAN, $endian_def,
450 [Define as 1 if big endian.])
454 case ${cpu_type}-${fmt} in
455 alpha*-*) bfd_gas=yes ;;
456 arm-*) bfd_gas=yes ;;
458 # i386-aout) bfd_gas=preferred ;;
459 ia64*-*) bfd_gas=yes ;;
460 mips-*) bfd_gas=yes ;;
461 ns32k-*) bfd_gas=yes ;;
462 ppc-*) bfd_gas=yes ;;
463 sparc-*) bfd_gas=yes ;;
464 strongarm-*) bfd_gas=yes ;;
465 *-elf) bfd_gas=yes ;;
466 *-ecoff) bfd_gas=yes ;;
467 *-som) bfd_gas=yes ;;
468 #enable bfd for coff and aout to allow testing if a bfd target is
469 #the primary target, but not for coff or aout as the primary target
470 i386-coff) if test x${primary_bfd_gas} = xyes; then bfd_gas=yes; fi ;;
471 i386-aout) if test x${primary_bfd_gas} = xyes; then bfd_gas=yes; fi ;;
475 # Other random stuff.
477 # Do we need the opcodes library?
485 case "${enable_shared}" in
486 yes) shared_opcodes=true ;;
487 *opcodes*) shared_opcodes=true ;;
488 *) shared_opcodes=false ;;
490 if test "${shared_opcodes}" = "true"; then
491 # A shared libopcodes must be linked against libbfd.
497 # Any other special object files needed ?
504 case ${extra_objects} in
506 *) extra_objects="$extra_objects m68k-parse.o" ;;
511 echo ${extra_objects} | grep -s "itbl-parse.o"
512 if test $? -ne 0 ; then
513 extra_objects="$extra_objects itbl-parse.o"
516 echo ${extra_objects} | grep -s "itbl-lex.o"
517 if test $? -ne 0 ; then
518 extra_objects="$extra_objects itbl-lex.o"
521 echo ${extra_objects} | grep -s "itbl-ops.o"
522 if test $? -ne 0 ; then
523 extra_objects="$extra_objects itbl-ops.o"
528 if test $this_target = $target ; then
529 AC_DEFINE_UNQUOTED(DEFAULT_ARCH, "${arch}", [Default architecture.])
536 if test $using_cgen = yes ; then
537 case "x${extra_objects}" in
539 *) extra_objects="$extra_objects cgen.o" ;;
543 # See if we really can support this configuration with the emulation code.
545 if test $this_target = $target ; then
546 primary_bfd_gas=$bfd_gas
550 if test $bfd_gas = no ; then
551 # Can't support other configurations this way.
554 elif test $bfd_gas = no ; then
555 # Can't support this configuration.
559 # From target name and format, produce a list of supported emulations.
561 case ${generic_target}-${fmt} in
562 mips-*-irix5*-*) emulation="mipsbelf mipslelf mipself mipsbecoff mipslecoff mipsecoff" ;;
563 mips-*-linux-gnu*-*) case "$endian" in
564 big) emulation="mipsbelf mipslelf mipself mipsbecoff mipslecoff mipsecoff" ;;
565 *) emulation="mipslelf mipsbelf mipself mipslecoff mipsbecoff mipsecoff" ;;
567 mips-*-lnews*-ecoff) ;;
568 mips-*-*-ecoff) case "$endian" in
569 big) emulation="mipsbecoff mipslecoff mipsecoff" ;;
570 *) emulation="mipslecoff mipsbecoff mipsecoff" ;;
572 mips-*-*-elf) case "$endian" in
573 big) emulation="mipsbelf mipslelf mipself" ;;
574 *) emulation="mipslelf mipsbelf mipself" ;;
576 mips-*-sysv4*MP*-*) emulation="mipsbelf mipslelf mipself mipsbecoff mipslecoff mipsecoff" ;;
577 # i386-pc-pe-coff != i386-pc-coff.
579 # Uncommenting the next line will turn on support for i386 AOUT
580 # for the default linux configuration
581 # i386-*-linux*-elf) emulation="i386elf i386aout" ;;
583 i386-*-aout) emulation="i386aout" ;;
584 i386-*-coff) emulation="i386coff" ;;
585 i386-*-elf) emulation="i386elf" ;;
587 # Always all formats. Having a.out first makes it the default.
588 cris-*-*) emulation="crisaout criself" ;;
591 emulations="$emulations $emulation"
595 # Turn on all targets if possible
596 if test ${all_targets} = "yes"; then
597 case ${target_cpu_type} in
599 case ${obj_format} in
601 emulations="$emulations i386coff i386elf"
604 emulations="$emulations i386aout i386elf"
607 emulations="$emulations i386aout i386coff"
614 # Assign floating point type. Most processors with FP support
615 # IEEE FP. On those that don't support FP at all, usually IEEE
617 case ${target_cpu} in
618 vax | tahoe ) atof=${target_cpu} ;;
622 case "${obj_format}" in
623 "") AC_MSG_ERROR(GAS does not know what format to use for target ${target}) ;;
626 # Unfortunately the cpu in cpu-opc.h file isn't always $(TARGET_CPU).
628 if test $using_cgen = yes ; then
629 case ${target_cpu} in
630 *) cgen_cpu_prefix=${target_cpu} ;;
632 AC_SUBST(cgen_cpu_prefix)
633 AC_DEFINE(USING_CGEN, 1, [Using cgen code?])
637 dnl Make sure the desired support files exist.
640 if test ! -r ${srcdir}/config/tc-${target_cpu_type}.c; then
641 AC_MSG_ERROR(GAS does not support target CPU ${target_cpu_type})
644 if test ! -r ${srcdir}/config/obj-${obj_format}.c; then
645 AC_MSG_ERROR(GAS does not have support for object file format ${obj_format})
648 case ${user_bfd_gas}-${primary_bfd_gas} in
650 # We didn't override user's choice.
653 AC_MSG_WARN(Use of BFD is required for ${target}; overriding config options.)
665 # User specified nothing.
669 # Some COFF configurations want these random other flags set.
670 case ${obj_format} in
672 case ${target_cpu_type} in
673 i386) AC_DEFINE(I386COFF, 1, [Using i386 COFF?]) ;;
674 m68k) AC_DEFINE(M68KCOFF, 1, [Using m68k COFF?]) ;;
675 m88k) AC_DEFINE(M88KCOFF, 1, [Using m88k COFF?]) ;;
680 # Getting this done right is going to be a bitch. Each configuration specified
681 # with --enable-targets=... should be checked for environment, format, cpu, and
684 # For each configuration, the necessary object file support code must be linked
685 # in. This might be only one, it might be up to four. The necessary emulation
686 # code needs to be provided, too.
688 # And then there's "--enable-targets=all"....
690 # For now, just always do it for MIPS ELF or ECOFF configurations. Sigh.
692 formats="${obj_format}"
696 for em in . $emulations ; do
700 fmt=elf file=mipself ;;
701 mipsbecoff | mipslecoff)
702 fmt=ecoff file=mipsecoff ;;
710 formats="$formats $fmt"
711 emfiles="$emfiles e-$file.o"
712 EMULATIONS="$EMULATIONS &$em,"
716 if test `set . $formats ; shift ; echo $#` -gt 1 ; then
717 for fmt in $formats ; do
719 aout) AC_DEFINE(OBJ_MAYBE_AOUT, 1, [a.out support?]) ;;
720 bout) AC_DEFINE(OBJ_MAYBE_BOUT, 1, [b.out support?]) ;;
721 coff) AC_DEFINE(OBJ_MAYBE_COFF, 1, [COFF support?]) ;;
722 ecoff) AC_DEFINE(OBJ_MAYBE_ECOFF, 1, [ECOFF support?]) ;;
723 elf) AC_DEFINE(OBJ_MAYBE_ELF, 1, [ELF support?]) ;;
724 generic) AC_DEFINE(OBJ_MAYBE_GENERIC, 1, [generic support?]) ;;
725 hp300) AC_DEFINE(OBJ_MAYBE_HP300, 1, [HP300 support?]) ;;
726 ieee) AC_DEFINE(OBJ_MAYBE_IEEE, 1, [IEEE support?]) ;;
727 som) AC_DEFINE(OBJ_MAYBE_SOM, 1, [SOM support?]) ;;
728 vms) AC_DEFINE(OBJ_MAYBE_VMS, 1, [VMS support?]) ;;
730 extra_objects="$extra_objects obj-$fmt.o"
734 if test `set . $emfiles ; shift ; echo $#` -gt 0 ; then
735 DEFAULT_EMULATION=`set . $emulations ; echo $2`
736 # e-mips* has more than one emulation per file, e-i386* has just one at the
737 # moment. If only one emulation is specified, then don't define
738 # USE_EMULATIONS or include any of the e-files as they will only be bloat.
739 case "${obj_format}${emfiles}" in
741 extra_objects="$extra_objects $emfiles"
742 AC_DEFINE(USE_EMULATIONS, 1, [Use emulation support?]) ;;
745 AC_SUBST(extra_objects)
746 AC_DEFINE_UNQUOTED(EMULATIONS, $EMULATIONS, [Supported emulations.])
747 AC_DEFINE_UNQUOTED(DEFAULT_EMULATION, "$DEFAULT_EMULATION",
748 [Default emulation.])
750 case ${primary_bfd_gas}-${target_cpu_type}-${obj_format} in
751 yes-*-coff) need_bfd=yes ;;
752 no-*-coff) need_bfd=yes
753 AC_DEFINE(MANY_SEGMENTS, 1, [old COFF support?]) ;;
756 reject_dev_configs=yes
758 case ${reject_dev_configs}-${dev} in
760 AC_MSG_ERROR(GAS does not support the ${generic_target} configuration.)
764 AC_SUBST(target_cpu_type)
767 AC_SUBST(install_tooldir)
769 dnl AC_SUBST(emulation)
771 case "${primary_bfd_gas}" in
772 yes) AC_DEFINE(BFD_ASSEMBLER, 1, [Use BFD interface?])
776 # do we need the opcodes library?
777 case "${need_opcodes}" in
779 OPCODES_LIB=../opcodes/libopcodes.la
783 case "${need_bfd}" in
785 BFDLIB=../bfd/libbfd.la
786 ALL_OBJ_DEPS="$ALL_OBJ_DEPS ../bfd/bfd.h"
791 AC_SUBST(OPCODES_LIB)
793 AC_SUBST(ALL_OBJ_DEPS)
795 AC_DEFINE_UNQUOTED(TARGET_ALIAS, "${target_alias}", [Target alias.])
796 AC_DEFINE_UNQUOTED(TARGET_CANONICAL, "${target}", [Canonical target.])
797 AC_DEFINE_UNQUOTED(TARGET_CPU, "${target_cpu}", [Target CPU.])
798 AC_DEFINE_UNQUOTED(TARGET_VENDOR, "${target_vendor}", [Target vendor.])
799 AC_DEFINE_UNQUOTED(TARGET_OS, "${target_os}", [Target OS.])
812 AC_CHECK_HEADERS(string.h stdlib.h memory.h strings.h unistd.h stdarg.h varargs.h errno.h sys/types.h)
814 # Put this here so that autoconf's "cross-compiling" message doesn't confuse
815 # people who are not cross-compiling but are compiling cross-assemblers.
816 AC_MSG_CHECKING(whether compiling a cross-assembler)
817 if test "${host}" = "${target}"; then
821 AC_DEFINE(CROSS_COMPILE, 1, [Compiling cross-assembler?])
823 AC_MSG_RESULT($cross_gas)
825 dnl ansidecl.h will deal with const
830 # VMS doesn't have unlink.
831 AC_CHECK_FUNCS(unlink remove, break)
833 # Some systems don't have sbrk().
836 # do we need the math library?
837 case "${need_libm}" in
844 # Some non-ANSI preprocessors botch requoting inside strings. That's bad
845 # enough, but on some of those systems, the assert macro relies on requoting
849 # On some systems, the system header files may not declare malloc, realloc,
850 # and free. There are places where gas needs these functions to have been
851 # declared -- such as when taking their addresses.
859 #ifdef HAVE_STRINGS_H
870 GAS_CHECK_DECL_NEEDED(strstr, f, char *(*f)(), $gas_test_headers)
871 GAS_CHECK_DECL_NEEDED(malloc, f, char *(*f)(), $gas_test_headers)
872 GAS_CHECK_DECL_NEEDED(free, f, void (*f)(), $gas_test_headers)
873 GAS_CHECK_DECL_NEEDED(sbrk, f, char *(*f)(), $gas_test_headers)
874 GAS_CHECK_DECL_NEEDED(environ, f, char **f, $gas_test_headers)
876 # Does errno.h declare errno, or do we have to add a separate declaration
878 GAS_CHECK_DECL_NEEDED(errno, f, int f, [
884 dnl This must come last.
886 dnl We used to make symlinks to files in the source directory, but now
887 dnl we just use the right name for .c files, and create .h files in
888 dnl the build directory which include the right .h file. Make sure
889 dnl the old symlinks don't exist, so that a reconfigure in an existing
890 dnl directory behaves reasonably.
892 AC_OUTPUT(Makefile doc/Makefile ${GDBINIT}:gdbinit.in po/Makefile.in:po/Make-in,
893 [rm -f targ-cpu.c targ-cpu.h obj-format.h obj-format.c targ-env.h atof-targ.c itbl-cpu.h
894 echo '#include "tc-'"${target_cpu_type}"'.h"' > targ-cpu.h
895 echo '#include "obj-'"${obj_format}"'.h"' > obj-format.h
896 echo '#include "te-'"${te_file}"'.h"' > targ-env.h
897 echo '#include "itbl-'"${target_cpu_type}"'.h"' > itbl-cpu.h
898 if test "x$cgen_cpu_prefix" != x ; then
899 echo '#include "opcodes/'"${cgen_cpu_prefix}"'-desc.h"' > cgen-desc.h
902 sed -e '/POTFILES =/r po/POTFILES' po/Makefile.in > po/Makefile],
903 [target_cpu_type=${target_cpu_type}
904 cgen_cpu_prefix=${cgen_cpu_prefix}
905 obj_format=${obj_format}