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.91)
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-*-linux*) fmt=elf em=linux ;;
371 sh-*-elf*) fmt=elf ;;
372 sh-*-coff*) fmt=coff ;;
373 sh-*-pe*) fmt=coff em=pe bfd_gas=yes;;
374 sh-*-rtemself*) fmt=elf ;;
375 sh-*-rtems*) fmt=coff ;;
377 ns32k-pc532-mach* | ns32k-pc532-ux*) fmt=aout em=pc532mach ;;
378 ns32k-pc532-netbsd* | ns32k-pc532-lites*) fmt=aout em=nbsd532 ;;
379 ns32k-pc532-openbsd*) fmt=aout em=nbsd532 ;;
381 sparc-*-rtems*) fmt=aout ;;
382 sparc-*-sunos4*) fmt=aout em=sun3 ;;
383 sparc-*-aout | sparc*-*-vxworks*)
384 fmt=aout em=sparcaout ;;
385 sparc-*-coff) fmt=coff ;;
386 sparc-*-linux*aout*) fmt=aout em=linux ;;
387 sparc-*-linux-gnu*) fmt=elf em=linux ;;
388 sparc-*-lynxos*) fmt=coff em=lynx ;;
389 sparc-fujitsu-none) fmt=aout ;;
390 sparc-*-elf | sparc-*-sysv4* | sparc-*-solaris*)
392 sparc-*-netbsd*) em=nbsd bfd_gas=yes
401 sparc-*-openbsd*) fmt=aout em=nbsd ;;
403 strongarm-*-coff) fmt=coff ;;
404 strongarm-*-elf) fmt=elf ;;
406 tic30-*-*aout*) fmt=aout bfd_gas=yes ;;
407 tic30-*-*coff*) fmt=coff bfd_gas=yes ;;
408 tic54x-*-* | c54x*-*-*)
409 fmt=coff bfd_gas=yes need_libm=yes;;
410 tic80-*-*) fmt=coff ;;
412 v850-*-*) fmt=elf bfd_gas=yes ;;
413 v850e-*-*) fmt=elf bfd_gas=yes ;;
414 v850ea-*-*) fmt=elf bfd_gas=yes ;;
416 vax-*-bsd* | vax-*-ultrix*)
418 vax-*-vms) fmt=vms ;;
421 z8k-*-coff | z8k-*-sim)
426 *-*-aout | *-*-scout)
432 *-*-generic) fmt=generic ;;
433 *-*-xray | *-*-hms) fmt=coff ;;
435 *-*-elf | *-*-sysv4* | *-*-solaris*)
436 AC_MSG_WARN(GAS support for ${generic_target} is incomplete.)
438 *-*-vxworks) fmt=aout ;;
439 *-*-netware) fmt=elf ;;
442 if test ${this_target} = $target ; then
444 if test x${endian} = xbig; then
446 elif test x${endian} = xlittle; then
449 if test x${endian_def} != x; then
450 AC_DEFINE_UNQUOTED(TARGET_BYTES_BIG_ENDIAN, $endian_def,
451 [Define as 1 if big endian.])
455 case ${cpu_type}-${fmt} in
456 alpha*-*) bfd_gas=yes ;;
457 arm-*) bfd_gas=yes ;;
459 # i386-aout) bfd_gas=preferred ;;
460 ia64*-*) bfd_gas=yes ;;
461 mips-*) bfd_gas=yes ;;
462 ns32k-*) bfd_gas=yes ;;
463 ppc-*) bfd_gas=yes ;;
464 sparc-*) bfd_gas=yes ;;
465 strongarm-*) bfd_gas=yes ;;
466 *-elf) bfd_gas=yes ;;
467 *-ecoff) bfd_gas=yes ;;
468 *-som) bfd_gas=yes ;;
469 #enable bfd for coff and aout to allow testing if a bfd target is
470 #the primary target, but not for coff or aout as the primary target
471 i386-coff) if test x${primary_bfd_gas} = xyes; then bfd_gas=yes; fi ;;
472 i386-aout) if test x${primary_bfd_gas} = xyes; then bfd_gas=yes; fi ;;
476 # Other random stuff.
478 # Do we need the opcodes library?
486 case "${enable_shared}" in
487 yes) shared_opcodes=true ;;
488 *opcodes*) shared_opcodes=true ;;
489 *) shared_opcodes=false ;;
491 if test "${shared_opcodes}" = "true"; then
492 # A shared libopcodes must be linked against libbfd.
498 # Any other special object files needed ?
505 case ${extra_objects} in
507 *) extra_objects="$extra_objects m68k-parse.o" ;;
512 echo ${extra_objects} | grep -s "itbl-parse.o"
513 if test $? -ne 0 ; then
514 extra_objects="$extra_objects itbl-parse.o"
517 echo ${extra_objects} | grep -s "itbl-lex.o"
518 if test $? -ne 0 ; then
519 extra_objects="$extra_objects itbl-lex.o"
522 echo ${extra_objects} | grep -s "itbl-ops.o"
523 if test $? -ne 0 ; then
524 extra_objects="$extra_objects itbl-ops.o"
529 if test $this_target = $target ; then
530 AC_DEFINE_UNQUOTED(DEFAULT_ARCH, "${arch}", [Default architecture.])
537 if test $using_cgen = yes ; then
538 case "x${extra_objects}" in
540 *) extra_objects="$extra_objects cgen.o" ;;
544 # See if we really can support this configuration with the emulation code.
546 if test $this_target = $target ; then
547 primary_bfd_gas=$bfd_gas
551 if test $bfd_gas = no ; then
552 # Can't support other configurations this way.
555 elif test $bfd_gas = no ; then
556 # Can't support this configuration.
560 # From target name and format, produce a list of supported emulations.
562 case ${generic_target}-${fmt} in
563 mips-*-irix5*-*) emulation="mipsbelf mipslelf mipself mipsbecoff mipslecoff mipsecoff" ;;
564 mips-*-linux-gnu*-*) case "$endian" in
565 big) emulation="mipsbelf mipslelf mipself mipsbecoff mipslecoff mipsecoff" ;;
566 *) emulation="mipslelf mipsbelf mipself mipslecoff mipsbecoff mipsecoff" ;;
568 mips-*-lnews*-ecoff) ;;
569 mips-*-*-ecoff) case "$endian" in
570 big) emulation="mipsbecoff mipslecoff mipsecoff" ;;
571 *) emulation="mipslecoff mipsbecoff mipsecoff" ;;
573 mips-*-*-elf) case "$endian" in
574 big) emulation="mipsbelf mipslelf mipself" ;;
575 *) emulation="mipslelf mipsbelf mipself" ;;
577 mips-*-sysv4*MP*-*) emulation="mipsbelf mipslelf mipself mipsbecoff mipslecoff mipsecoff" ;;
578 # i386-pc-pe-coff != i386-pc-coff.
580 # Uncommenting the next line will turn on support for i386 AOUT
581 # for the default linux configuration
582 # i386-*-linux*-elf) emulation="i386elf i386aout" ;;
584 i386-*-aout) emulation="i386aout" ;;
585 i386-*-coff) emulation="i386coff" ;;
586 i386-*-elf) emulation="i386elf" ;;
588 # Always all formats. Having a.out first makes it the default.
589 cris-*-*) emulation="crisaout criself" ;;
592 emulations="$emulations $emulation"
596 # Turn on all targets if possible
597 if test ${all_targets} = "yes"; then
598 case ${target_cpu_type} in
600 case ${obj_format} in
602 emulations="$emulations i386coff i386elf"
605 emulations="$emulations i386aout i386elf"
608 emulations="$emulations i386aout i386coff"
615 # Assign floating point type. Most processors with FP support
616 # IEEE FP. On those that don't support FP at all, usually IEEE
618 case ${target_cpu} in
619 vax | tahoe ) atof=${target_cpu} ;;
623 case "${obj_format}" in
624 "") AC_MSG_ERROR(GAS does not know what format to use for target ${target}) ;;
627 # Unfortunately the cpu in cpu-opc.h file isn't always $(TARGET_CPU).
629 if test $using_cgen = yes ; then
630 case ${target_cpu} in
631 *) cgen_cpu_prefix=${target_cpu} ;;
633 AC_SUBST(cgen_cpu_prefix)
634 AC_DEFINE(USING_CGEN, 1, [Using cgen code?])
638 dnl Make sure the desired support files exist.
641 if test ! -r ${srcdir}/config/tc-${target_cpu_type}.c; then
642 AC_MSG_ERROR(GAS does not support target CPU ${target_cpu_type})
645 if test ! -r ${srcdir}/config/obj-${obj_format}.c; then
646 AC_MSG_ERROR(GAS does not have support for object file format ${obj_format})
649 case ${user_bfd_gas}-${primary_bfd_gas} in
651 # We didn't override user's choice.
654 AC_MSG_WARN(Use of BFD is required for ${target}; overriding config options.)
666 # User specified nothing.
670 # Some COFF configurations want these random other flags set.
671 case ${obj_format} in
673 case ${target_cpu_type} in
674 i386) AC_DEFINE(I386COFF, 1, [Using i386 COFF?]) ;;
675 m68k) AC_DEFINE(M68KCOFF, 1, [Using m68k COFF?]) ;;
676 m88k) AC_DEFINE(M88KCOFF, 1, [Using m88k COFF?]) ;;
681 # Getting this done right is going to be a bitch. Each configuration specified
682 # with --enable-targets=... should be checked for environment, format, cpu, and
685 # For each configuration, the necessary object file support code must be linked
686 # in. This might be only one, it might be up to four. The necessary emulation
687 # code needs to be provided, too.
689 # And then there's "--enable-targets=all"....
691 # For now, just always do it for MIPS ELF or ECOFF configurations. Sigh.
693 formats="${obj_format}"
697 for em in . $emulations ; do
701 fmt=elf file=mipself ;;
702 mipsbecoff | mipslecoff)
703 fmt=ecoff file=mipsecoff ;;
711 formats="$formats $fmt"
712 emfiles="$emfiles e-$file.o"
713 EMULATIONS="$EMULATIONS &$em,"
717 if test `set . $formats ; shift ; echo $#` -gt 1 ; then
718 for fmt in $formats ; do
720 aout) AC_DEFINE(OBJ_MAYBE_AOUT, 1, [a.out support?]) ;;
721 bout) AC_DEFINE(OBJ_MAYBE_BOUT, 1, [b.out support?]) ;;
722 coff) AC_DEFINE(OBJ_MAYBE_COFF, 1, [COFF support?]) ;;
723 ecoff) AC_DEFINE(OBJ_MAYBE_ECOFF, 1, [ECOFF support?]) ;;
724 elf) AC_DEFINE(OBJ_MAYBE_ELF, 1, [ELF support?]) ;;
725 generic) AC_DEFINE(OBJ_MAYBE_GENERIC, 1, [generic support?]) ;;
726 hp300) AC_DEFINE(OBJ_MAYBE_HP300, 1, [HP300 support?]) ;;
727 ieee) AC_DEFINE(OBJ_MAYBE_IEEE, 1, [IEEE support?]) ;;
728 som) AC_DEFINE(OBJ_MAYBE_SOM, 1, [SOM support?]) ;;
729 vms) AC_DEFINE(OBJ_MAYBE_VMS, 1, [VMS support?]) ;;
731 extra_objects="$extra_objects obj-$fmt.o"
735 if test `set . $emfiles ; shift ; echo $#` -gt 0 ; then
736 DEFAULT_EMULATION=`set . $emulations ; echo $2`
737 # e-mips* has more than one emulation per file, e-i386* has just one at the
738 # moment. If only one emulation is specified, then don't define
739 # USE_EMULATIONS or include any of the e-files as they will only be bloat.
740 case "${obj_format}${emfiles}" in
742 extra_objects="$extra_objects $emfiles"
743 AC_DEFINE(USE_EMULATIONS, 1, [Use emulation support?]) ;;
746 AC_SUBST(extra_objects)
747 AC_DEFINE_UNQUOTED(EMULATIONS, $EMULATIONS, [Supported emulations.])
748 AC_DEFINE_UNQUOTED(DEFAULT_EMULATION, "$DEFAULT_EMULATION",
749 [Default emulation.])
751 case ${primary_bfd_gas}-${target_cpu_type}-${obj_format} in
752 yes-*-coff) need_bfd=yes ;;
753 no-*-coff) need_bfd=yes
754 AC_DEFINE(MANY_SEGMENTS, 1, [old COFF support?]) ;;
757 reject_dev_configs=yes
759 case ${reject_dev_configs}-${dev} in
761 AC_MSG_ERROR(GAS does not support the ${generic_target} configuration.)
765 AC_SUBST(target_cpu_type)
768 AC_SUBST(install_tooldir)
770 dnl AC_SUBST(emulation)
772 case "${primary_bfd_gas}" in
773 yes) AC_DEFINE(BFD_ASSEMBLER, 1, [Use BFD interface?])
777 # do we need the opcodes library?
778 case "${need_opcodes}" in
780 OPCODES_LIB=../opcodes/libopcodes.la
784 case "${need_bfd}" in
786 BFDLIB=../bfd/libbfd.la
787 ALL_OBJ_DEPS="$ALL_OBJ_DEPS ../bfd/bfd.h"
792 AC_SUBST(OPCODES_LIB)
794 AC_SUBST(ALL_OBJ_DEPS)
796 AC_DEFINE_UNQUOTED(TARGET_ALIAS, "${target_alias}", [Target alias.])
797 AC_DEFINE_UNQUOTED(TARGET_CANONICAL, "${target}", [Canonical target.])
798 AC_DEFINE_UNQUOTED(TARGET_CPU, "${target_cpu}", [Target CPU.])
799 AC_DEFINE_UNQUOTED(TARGET_VENDOR, "${target_vendor}", [Target vendor.])
800 AC_DEFINE_UNQUOTED(TARGET_OS, "${target_os}", [Target OS.])
813 AC_CHECK_HEADERS(string.h stdlib.h memory.h strings.h unistd.h stdarg.h varargs.h errno.h sys/types.h)
815 # Put this here so that autoconf's "cross-compiling" message doesn't confuse
816 # people who are not cross-compiling but are compiling cross-assemblers.
817 AC_MSG_CHECKING(whether compiling a cross-assembler)
818 if test "${host}" = "${target}"; then
822 AC_DEFINE(CROSS_COMPILE, 1, [Compiling cross-assembler?])
824 AC_MSG_RESULT($cross_gas)
826 dnl ansidecl.h will deal with const
831 # VMS doesn't have unlink.
832 AC_CHECK_FUNCS(unlink remove, break)
834 # Some systems don't have sbrk().
837 # do we need the math library?
838 case "${need_libm}" in
845 # Some non-ANSI preprocessors botch requoting inside strings. That's bad
846 # enough, but on some of those systems, the assert macro relies on requoting
850 # On some systems, the system header files may not declare malloc, realloc,
851 # and free. There are places where gas needs these functions to have been
852 # declared -- such as when taking their addresses.
860 #ifdef HAVE_STRINGS_H
871 GAS_CHECK_DECL_NEEDED(strstr, f, char *(*f)(), $gas_test_headers)
872 GAS_CHECK_DECL_NEEDED(malloc, f, char *(*f)(), $gas_test_headers)
873 GAS_CHECK_DECL_NEEDED(free, f, void (*f)(), $gas_test_headers)
874 GAS_CHECK_DECL_NEEDED(sbrk, f, char *(*f)(), $gas_test_headers)
875 GAS_CHECK_DECL_NEEDED(environ, f, char **f, $gas_test_headers)
877 # Does errno.h declare errno, or do we have to add a separate declaration
879 GAS_CHECK_DECL_NEEDED(errno, f, int f, [
885 dnl This must come last.
887 dnl We used to make symlinks to files in the source directory, but now
888 dnl we just use the right name for .c files, and create .h files in
889 dnl the build directory which include the right .h file. Make sure
890 dnl the old symlinks don't exist, so that a reconfigure in an existing
891 dnl directory behaves reasonably.
893 AC_OUTPUT(Makefile doc/Makefile ${GDBINIT}:gdbinit.in po/Makefile.in:po/Make-in,
894 [rm -f targ-cpu.c targ-cpu.h obj-format.h obj-format.c targ-env.h atof-targ.c itbl-cpu.h
895 echo '#include "tc-'"${target_cpu_type}"'.h"' > targ-cpu.h
896 echo '#include "obj-'"${obj_format}"'.h"' > obj-format.h
897 echo '#include "te-'"${te_file}"'.h"' > targ-env.h
898 echo '#include "itbl-'"${target_cpu_type}"'.h"' > itbl-cpu.h
899 if test "x$cgen_cpu_prefix" != x ; then
900 echo '#include "opcodes/'"${cgen_cpu_prefix}"'-desc.h"' > cgen-desc.h
903 sed -e '/POTFILES =/r po/POTFILES' po/Makefile.in > po/Makefile],
904 [target_cpu_type=${target_cpu_type}
905 cgen_cpu_prefix=${cgen_cpu_prefix}
906 obj_format=${obj_format}