1 dnl Process this file with autoconf to produce a configure script.
3 dnl And be careful when changing it! If you must add tests with square
4 dnl brackets, be sure changequote invocations surround it.
7 dnl v2.5 needed for --bindir et al
13 AM_INIT_AUTOMAKE(gas, 2.10.90)
18 AC_ARG_ENABLE(bfd-assembler,
19 [ --enable-bfd-assembler use BFD back end for writing object files],
20 [case "${enableval}" in
21 yes) need_bfd=yes user_bfd_gas=yes ;;
22 no) user_bfd_gas=no ;;
23 *) AC_MSG_ERROR(bad value ${enableval} given for bfd-assembler option) ;;
25 AC_ARG_ENABLE(targets,
26 [ targets alternative target configurations besides the primary],
27 [case "${enableval}" in
28 yes | "") AC_ERROR(enable-targets option must specify target names or 'all')
30 no) enable_targets= ;;
31 *) enable_targets=$enableval ;;
33 AC_ARG_ENABLE(commonbfdlib,
34 [ --enable-commonbfdlib build shared BFD/opcodes/libiberty library],
35 [case "${enableval}" in
36 yes) commonbfdlib=true ;;
37 no) commonbfdlib=false ;;
38 *) AC_MSG_ERROR([bad value ${enableval} for BFD commonbfdlib option]) ;;
43 build_warnings="-W -Wall"
44 AC_ARG_ENABLE(build-warnings,
45 [ --enable-build-warnings Enable build-time compiler warnings if gcc is used],
46 [case "${enableval}" in
48 no) build_warnings="-w";;
49 ,*) t=`echo "${enableval}" | sed -e "s/,/ /g"`
50 build_warnings="${build_warnings} ${t}";;
51 *,) t=`echo "${enableval}" | sed -e "s/,/ /g"`
52 build_warnings="${t} ${build_warnings}";;
53 *) build_warnings=`echo "${enableval}" | sed -e "s/,/ /g"`;;
55 if test x"$silent" != x"yes" && test x"$build_warnings" != x""; then
56 echo "Setting warning flags = $build_warnings" 6>&1
59 if test "x${build_warnings}" != x -a "x$GCC" = xyes ; then
60 WARN_CFLAGS="${build_warnings}"
64 # Generate a header file
65 AM_CONFIG_HEADER(config.h:config.in)
67 # If we are on a DOS filesystem, we must use gdb.ini rather than
71 *-*-msdos* | *-*-go32* | *-*-mingw32* | *-*-cygwin* | *-*-windows*)
79 # Makefile target for installing gas in $(tooldir)/bin.
80 install_tooldir=install-exec-tooldir
84 if test -n "$enable_targets" ; then
85 for t in `echo $enable_targets | sed 's/,/ /g'`; do
86 if test $t = "all"; then
90 result=`$ac_config_sub $t 2>/dev/null`
91 if test -n "$result" ; then
92 canon_targets="$canon_targets $result"
94 # # Permit "all", etc. We don't support it yet though.
95 # canon_targets="$canon_targets $t"
98 GAS_UNIQ(canon_targets)
103 for this_target in $target $canon_targets ; do
106 eval `echo $this_target | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/cpu=\1 vendor=\2 os=\3/'`
109 # check for architecture variants
113 alpha*) cpu_type=alpha ;;
114 armeb) cpu_type=arm endian=big ;;
115 arm*) cpu_type=arm endian=little ;;
116 armb*) cpu_type=arm endian=little ;;
117 armv*l) cpu_type=arm endian=little ;;
118 armv*b) cpu_type=arm endian=big ;;
119 strongarm*) cpu_type=arm endian=little ;;
120 thumb*) cpu_type=arm endian=little ;;
121 hppa*) cpu_type=hppa ;;
123 i[456]86) cpu_type=i386 ;;
124 ia64) cpu_type=ia64 ;;
125 m6811|m6812) cpu_type=m68hc11 ;;
126 m680[012346]0) cpu_type=m68k ;;
128 m68008) cpu_type=m68k ;;
129 m683??) cpu_type=m68k ;;
130 m5200) cpu_type=m68k ;;
131 m8*) cpu_type=m88k ;;
132 mips*el) cpu_type=mips endian=little ;;
133 mips*) cpu_type=mips endian=big ;;
134 pjl*) cpu_type=pj endian=little ;;
135 pj*) cpu_type=pj endian=big ;;
136 powerpcle*) cpu_type=ppc endian=little ;;
137 powerpc*) cpu_type=ppc endian=big ;;
138 rs6000*) cpu_type=ppc ;;
139 sparclite*) cpu_type=sparc arch=sparclite ;;
140 sparclet*) cpu_type=sparc arch=sparclet ;;
141 sparc64*) cpu_type=sparc arch=v9-64 ;;
142 sparc86x*) cpu_type=sparc arch=sparc86x ;;
143 sparc*) cpu_type=sparc arch=sparclite ;; # ??? See tc-sparc.c.
144 v850*) cpu_type=v850 ;;
145 *) cpu_type=${cpu} ;;
148 if test ${this_target} = $target ; then
149 target_cpu_type=${cpu_type}
150 elif test ${target_cpu_type} != ${cpu_type} ; then
154 generic_target=${cpu_type}-$vendor-$os
159 # assign object format
160 case ${generic_target} in
161 a29k-*-coff) fmt=coff ;;
162 a29k-amd-udi) fmt=coff ;;
163 a29k-amd-ebmon) fmt=coff ;;
164 a29k-nyu-sym1) fmt=coff ;;
165 a29k-*-vxworks*) fmt=coff ;;
167 alpha*-*-*vms*) fmt=evax ;;
168 alpha*-*-netware*) fmt=ecoff ;;
169 alpha*-*-openbsd*) fmt=ecoff ;;
170 alpha*-*-osf*) fmt=ecoff ;;
171 alpha*-*-linuxecoff*) fmt=ecoff ;;
172 alpha*-*-linux-gnu*) fmt=elf em=linux ;;
173 alpha*-*-netbsd*) fmt=elf em=nbsd ;;
175 arc-*-elf*) fmt=elf bfd_gas=yes ;;
177 arm-*-aout) fmt=aout ;;
178 arm-*-coff | thumb-*-coff) fmt=coff ;;
179 arm-*-elf | thumb-*-elf) fmt=elf ;;
180 arm*-*-conix*) fmt=elf ;;
181 arm-*-linux*aout*) fmt=aout em=linux ;;
182 arm*-*-linux-gnu*) fmt=elf em=linux ;;
183 arm-*-netbsd*) fmt=aout em=nbsd ;;
184 arm-*-oabi | thumb-*-oabi) fmt=elf ;;
185 arm-epoc-pe | thumb-epoc-pe) fmt=coff em=epoc-pe ;;
186 arm-*-wince) fmt=coff em=wince-pe ;;
187 arm-*-pe | thumb-*-pe) fmt=coff em=pe ;;
188 arm-*-riscix*) fmt=aout em=riscix ;;
190 avr-*-*) fmt=elf bfd_gas=yes ;;
192 d10v-*-*) fmt=elf bfd_gas=yes ;;
193 d30v-*-*) fmt=elf bfd_gas=yes ;;
196 fr30-*-*) fmt=elf bfd_gas=yes ;;
198 hppa-*-linux-gnu*) case ${cpu} in
200 fmt=elf em=hppalinux64;;
204 hppa-*-*elf*) fmt=elf em=hppa ;;
205 hppa-*-lites*) fmt=elf em=hppa ;;
206 hppa-*-osf*) fmt=som em=hppa ;;
207 hppa-*-rtems*) fmt=elf em=hppa ;;
208 hppa-*-hpux11*) case ${cpu} in
214 hppa-*-hpux*) fmt=som em=hppa ;;
215 hppa-*-mpeix*) fmt=som em=hppa ;;
216 hppa-*-bsd*) fmt=som em=hppa ;;
217 hppa-*-hiux*) fmt=som em=hppa ;;
219 h8300-*-coff) fmt=coff ;;
221 i370-*-elf* | i370-*-linux*) fmt=elf ;;
222 i386-ibm-aix*) fmt=coff em=i386aix ;;
223 i386-sequent-bsd*) fmt=aout em=dynix bfd_gas=yes ;;
224 i386-*-beospe*) fmt=coff em=pe bfd_gas=yes ;;
225 i386-*-beoself* | i386-*-beos*) fmt=elf bfd_gas=yes ;;
226 i386-*-bsd*) fmt=aout em=386bsd ;;
227 i386-*-netbsd0.8) fmt=aout em=386bsd ;;
228 i386-*-netbsd*) fmt=aout em=nbsd bfd_gas=yes;;
229 i386-*-openbsd*) fmt=aout em=nbsd bfd_gas=yes;;
230 i386-*-linux*aout* | i386-*-linuxoldld) fmt=aout em=linux ;;
231 i386-*-linux*coff*) fmt=coff em=linux ;;
232 i386-*-linux-gnu*) fmt=elf em=linux bfd_gas=yes ;;
233 i386-*-lynxos*) fmt=coff em=lynx ;;
234 i386-*-sysv4* | i386-*-solaris* | i386-*-elf)
235 fmt=elf bfd_gas=yes ;;
237 i386-*-freebsdaout* | i386-*-freebsd[12].* | i386-*-freebsd[12])
238 fmt=aout em=386bsd ;;
240 i386-*-freebsd*) fmt=elf bfd_gas=yes ;;
241 i386-*-coff | i386-*-sysv* | i386-*-sco3.2v5*coff | i386-*-isc*)
243 i386-*-sco3.2v5*) fmt=elf
244 if test ${this_target} = $target; then
245 AC_DEFINE(SCO_ELF, 1,
246 [Define if defaulting to ELF on SCO 5.])
249 i386-*-sco3.2*) fmt=coff ;;
250 i386-*-vsta) fmt=aout ;;
251 i386-*-msdosdjgpp* | i386-*-go32* | i386-go32-rtems*)
253 i386-*-rtemself*) fmt=elf ;;
254 i386-*-rtems*) fmt=coff ;;
255 i386-*-gnu*) fmt=elf ;;
257 fmt=aout em=mach bfd_gas=yes ;;
258 i386-*-msdos*) fmt=aout ;;
259 i386-*-moss*) fmt=elf ;;
260 i386-*-pe) fmt=coff em=pe bfd_gas=yes ;;
261 i386-*-cygwin*) fmt=coff em=pe bfd_gas=yes ;;
262 i386-*-interix*) fmt=coff em=interix bfd_gas=yes ;;
263 i386-*-mingw32*) fmt=coff em=pe bfd_gas=yes ;;
264 i386-*-*nt*) fmt=coff em=pe bfd_gas=yes ;;
265 i386-*-vxworks*) fmt=aout ;;
266 i960-*-bout) fmt=bout ;;
267 i960-*-coff) fmt=coff em=ic960 ;;
268 i960-*-rtems*) fmt=coff em=ic960 ;;
269 i960-*-nindy*) fmt=bout ;;
270 i960-*-vxworks4*) fmt=bout ;;
271 i960-*-vxworks5.0) fmt=bout ;;
272 i960-*-vxworks5.*) fmt=coff em=ic960 ;;
273 i960-*-vxworks*) fmt=bout ;;
274 i960-*-elf*) fmt=elf ;;
276 ia64-*-elf*) fmt=elf ;;
277 ia64-*-linux-gnu*) fmt=elf em=linux ;;
279 m32r-*-*) fmt=elf bfd_gas=yes ;;
281 m68hc11-*-*|m6811-*-*|m68hc12-*-*|m6812-*-*)fmt=elf bfd_gas=yes ;;
283 m68k-*-vxworks* | m68k-ericsson-ose | m68k-*-sunos*)
285 m68k-motorola-sysv*) fmt=coff em=delta ;;
286 m68k-bull-sysv3*) fmt=coff em=dpx2 ;;
287 m68k-apollo-*) fmt=coff em=apollo ;;
288 m68k-*-sysv4*) # must be before -sysv*
290 m68k-*-elf*) fmt=elf ;;
291 m68k-*-coff | m68k-*-sysv* | m68k-*-rtems*)
293 m68k-*-hpux*) fmt=hp300 em=hp300 ;;
294 m68k-*-linux*aout*) fmt=aout em=linux ;;
295 m68k-*-linux-gnu*) fmt=elf em=linux ;;
296 m68k-*-gnu*) fmt=elf ;;
297 m68k-*-lynxos*) fmt=coff em=lynx ;;
298 m68k-*-netbsd*) fmt=aout em=nbsd bfd_gas=yes ;;
299 m68k-*-openbsd*) fmt=aout em=nbsd bfd_gas=yes ;;
300 m68k-apple-aux*) fmt=coff em=aux ;;
301 m68k-*-psos*) fmt=elf em=psos;;
303 m88k-motorola-sysv3*) fmt=coff em=delt88 ;;
304 m88k-*-coff*) fmt=coff ;;
306 mcore-*-elf) fmt=elf bfd_gas=yes ;;
307 mcore-*-pe) fmt=coff em=pe bfd_gas=yes ;;
309 # don't change em like *-*-bsd does
310 mips-dec-netbsd*) fmt=elf endian=little ;;
311 mips-dec-openbsd*) fmt=elf endian=little ;;
312 mips-dec-bsd*) fmt=aout endian=little ;;
313 mips-sony-bsd*) fmt=ecoff ;;
314 mips-*-bsd*) AC_MSG_ERROR(Unknown vendor for mips-bsd configuration.) ;;
315 mips-*-ultrix*) fmt=ecoff endian=little ;;
316 mips-*-osf*) fmt=ecoff endian=little ;;
317 mips-*-ecoff*) fmt=ecoff ;;
318 mips-*-ecoff*) fmt=ecoff ;;
319 mips-*-pe*) fmt=coff endian=little em=pe ;;
320 mips-*-irix6*) fmt=elf ;;
321 mips-*-irix5*) fmt=elf ;;
322 mips-*-irix*) fmt=ecoff ;;
323 mips-*-lnews*) fmt=ecoff em=lnews ;;
324 mips-*-riscos*) fmt=ecoff ;;
325 mips-*-sysv4*MP*) fmt=elf em=tmips ;;
326 mips-*-sysv*) fmt=ecoff ;;
327 mips-*-elf* | mips-*-rtems* | mips-*-linux-gnu* | mips-*-gnu* | mips-*-openbsd*)
329 mips-*-vxworks*) fmt=elf
330 AC_DEFINE(MIPS_STABS_ELF, 1,
331 [Use ELF stabs for MIPS, not ECOFF stabs])
333 mn10200-*-*) fmt=elf bfd_gas=yes ;;
334 mn10300-*-*) fmt=elf bfd_gas=yes ;;
336 ppc-*-pe | ppc-*-cygwin* | ppc-*-winnt*)
338 ppc-*-aix*) fmt=coff ;;
339 ppc-*-beos*) fmt=coff ;;
340 ppc-*-*bsd* | ppc-*-elf* | ppc-*-eabi* | ppc-*-sysv4*)
342 ppc-*-linux-gnu*) fmt=elf
345 *) AC_MSG_ERROR(GNU/Linux must be configured big endian) ;;
348 ppc-*-solaris*) fmt=elf
349 if test ${this_target} = $target; then
350 AC_DEFINE(TARGET_SOLARIS_COMMENT, 1,
351 [Define if default target is PowerPC Solaris.])
353 if test x${endian} = xbig; then
354 AC_MSG_ERROR(Solaris must be configured little endian)
357 ppc-*-rtems*) fmt=elf ;;
358 ppc-*-macos* | ppc-*-mpw*)
360 ppc-*-netware*) fmt=elf em=ppcnw ;;
361 ppc-*-vxworks*) fmt=elf ;;
363 sh-*-elf*) fmt=elf ;;
364 sh-*-coff*) fmt=coff ;;
365 sh-*-pe*) fmt=coff em=pe bfd_gas=yes;;
366 sh-*-rtemself*) fmt=elf ;;
367 sh-*-rtems*) fmt=coff ;;
369 ns32k-pc532-mach* | ns32k-pc532-ux*) fmt=aout em=pc532mach ;;
370 ns32k-pc532-netbsd* | ns32k-pc532-lites*) fmt=aout em=nbsd532 ;;
371 ns32k-pc532-openbsd*) fmt=aout em=nbsd532 ;;
373 sparc-*-rtems*) fmt=aout ;;
374 sparc-*-sunos4*) fmt=aout em=sun3 ;;
375 sparc-*-aout | sparc*-*-vxworks*)
376 fmt=aout em=sparcaout ;;
377 sparc-*-coff) fmt=coff ;;
378 sparc-*-linux*aout*) fmt=aout em=linux ;;
379 sparc-*-linux-gnu*) fmt=elf em=linux ;;
380 sparc-*-lynxos*) fmt=coff em=lynx ;;
381 sparc-fujitsu-none) fmt=aout ;;
382 sparc-*-elf | sparc-*-sysv4* | sparc-*-solaris*)
384 sparc-*-netbsd*) em=nbsd bfd_gas=yes
393 sparc-*-openbsd*) fmt=aout em=nbsd ;;
395 strongarm-*-coff) fmt=coff ;;
396 strongarm-*-elf) fmt=elf ;;
398 tic30-*-*aout*) fmt=aout bfd_gas=yes ;;
399 tic30-*-*coff*) fmt=coff bfd_gas=yes ;;
400 tic54x-*-* | c54x*-*-*)
401 fmt=coff bfd_gas=yes need_libm=yes;;
402 tic80-*-*) fmt=coff ;;
404 v850-*-*) fmt=elf bfd_gas=yes ;;
405 v850e-*-*) fmt=elf bfd_gas=yes ;;
406 v850ea-*-*) fmt=elf bfd_gas=yes ;;
408 vax-*-bsd* | vax-*-ultrix*)
410 vax-*-vms) fmt=vms ;;
413 z8k-*-coff | z8k-*-sim)
418 *-*-aout | *-*-scout)
424 *-*-generic) fmt=generic ;;
425 *-*-xray | *-*-hms) fmt=coff ;;
427 *-*-elf | *-*-sysv4* | *-*-solaris*)
428 AC_MSG_WARN(GAS support for ${generic_target} is incomplete.)
430 *-*-vxworks) fmt=aout ;;
431 *-*-netware) fmt=elf ;;
434 if test ${this_target} = $target ; then
436 if test x${endian} = xbig; then
438 elif test x${endian} = xlittle; then
441 if test x${endian_def} != x; then
442 AC_DEFINE_UNQUOTED(TARGET_BYTES_BIG_ENDIAN, $endian_def,
443 [Define as 1 if big endian.])
447 case ${cpu_type}-${fmt} in
448 alpha*-*) bfd_gas=yes ;;
449 arm-*) bfd_gas=yes ;;
451 # i386-aout) bfd_gas=preferred ;;
452 ia64*-*) bfd_gas=yes ;;
453 mips-*) bfd_gas=yes ;;
454 ns32k-*) bfd_gas=yes ;;
455 ppc-*) bfd_gas=yes ;;
456 sparc-*) bfd_gas=yes ;;
457 strongarm-*) bfd_gas=yes ;;
458 *-elf) bfd_gas=yes ;;
459 *-ecoff) bfd_gas=yes ;;
460 *-som) bfd_gas=yes ;;
461 #enable bfd for coff and aout to allow testing if a bfd target is
462 #the primary target, but not for coff or aout as the primary target
463 i386-coff) if test x${primary_bfd_gas} = xyes; then bfd_gas=yes; fi ;;
464 i386-aout) if test x${primary_bfd_gas} = xyes; then bfd_gas=yes; fi ;;
468 # Other random stuff.
470 # Do we need the opcodes library?
478 case "${enable_shared}" in
479 yes) shared_opcodes=true ;;
480 *opcodes*) shared_opcodes=true ;;
481 *) shared_opcodes=false ;;
483 if test "${shared_opcodes}" = "true"; then
484 # A shared libopcodes must be linked against libbfd.
490 # Any other special object files needed ?
497 case ${extra_objects} in
499 *) extra_objects="$extra_objects m68k-parse.o" ;;
504 echo ${extra_objects} | grep -s "itbl-parse.o"
505 if test $? -ne 0 ; then
506 extra_objects="$extra_objects itbl-parse.o"
509 echo ${extra_objects} | grep -s "itbl-lex.o"
510 if test $? -ne 0 ; then
511 extra_objects="$extra_objects itbl-lex.o"
514 echo ${extra_objects} | grep -s "itbl-ops.o"
515 if test $? -ne 0 ; then
516 extra_objects="$extra_objects itbl-ops.o"
521 if test $this_target = $target ; then
522 AC_DEFINE_UNQUOTED(DEFAULT_ARCH, "${arch}", [Default architecture.])
529 if test $using_cgen = yes ; then
530 case "x${extra_objects}" in
532 *) extra_objects="$extra_objects cgen.o" ;;
536 # See if we really can support this configuration with the emulation code.
538 if test $this_target = $target ; then
539 primary_bfd_gas=$bfd_gas
543 if test $bfd_gas = no ; then
544 # Can't support other configurations this way.
547 elif test $bfd_gas = no ; then
548 # Can't support this configuration.
552 # From target name and format, produce a list of supported emulations.
554 case ${generic_target}-${fmt} in
555 mips-*-irix5*-*) emulation="mipsbelf mipslelf mipself mipsbecoff mipslecoff mipsecoff" ;;
556 mips-*-linux-gnu*-*) case "$endian" in
557 big) emulation="mipsbelf mipslelf mipself mipsbecoff mipslecoff mipsecoff" ;;
558 *) emulation="mipslelf mipsbelf mipself mipslecoff mipsbecoff mipsecoff" ;;
560 mips-*-lnews*-ecoff) ;;
561 mips-*-*-ecoff) case "$endian" in
562 big) emulation="mipsbecoff mipslecoff mipsecoff" ;;
563 *) emulation="mipslecoff mipsbecoff mipsecoff" ;;
565 mips-*-*-elf) case "$endian" in
566 big) emulation="mipsbelf mipslelf mipself" ;;
567 *) emulation="mipslelf mipsbelf mipself" ;;
569 mips-*-sysv4*MP*-*) emulation="mipsbelf mipslelf mipself mipsbecoff mipslecoff mipsecoff" ;;
570 # i386-pc-pe-coff != i386-pc-coff.
572 # Uncommenting the next line will turn on support for i386 AOUT
573 # for the default linux configuration
574 # i386-*-linux*-elf) emulation="i386elf i386aout" ;;
576 i386-*-aout) emulation="i386aout" ;;
577 i386-*-coff) emulation="i386coff" ;;
578 i386-*-elf) emulation="i386elf" ;;
581 emulations="$emulations $emulation"
585 # Turn on all targets if possible
586 if test ${all_targets} = "yes"; then
587 case ${target_cpu_type} in
589 case ${obj_format} in
591 emulations="$emulations i386coff i386elf"
594 emulations="$emulations i386aout i386elf"
597 emulations="$emulations i386aout i386coff"
604 # Assign floating point type. Most processors with FP support
605 # IEEE FP. On those that don't support FP at all, usually IEEE
607 case ${target_cpu} in
608 vax | tahoe ) atof=${target_cpu} ;;
612 case "${obj_format}" in
613 "") AC_MSG_ERROR(GAS does not know what format to use for target ${target}) ;;
616 # Unfortunately the cpu in cpu-opc.h file isn't always $(TARGET_CPU).
618 if test $using_cgen = yes ; then
619 case ${target_cpu} in
620 *) cgen_cpu_prefix=${target_cpu} ;;
622 AC_SUBST(cgen_cpu_prefix)
623 AC_DEFINE(USING_CGEN, 1, [Using cgen code?])
627 dnl Make sure the desired support files exist.
630 if test ! -r ${srcdir}/config/tc-${target_cpu_type}.c; then
631 AC_MSG_ERROR(GAS does not support target CPU ${target_cpu_type})
634 if test ! -r ${srcdir}/config/obj-${obj_format}.c; then
635 AC_MSG_ERROR(GAS does not have support for object file format ${obj_format})
638 case ${user_bfd_gas}-${primary_bfd_gas} in
640 # We didn't override user's choice.
643 AC_MSG_WARN(Use of BFD is required for ${target}; overriding config options.)
655 # User specified nothing.
659 # Some COFF configurations want these random other flags set.
660 case ${obj_format} in
662 case ${target_cpu_type} in
663 i386) AC_DEFINE(I386COFF, 1, [Using i386 COFF?]) ;;
664 m68k) AC_DEFINE(M68KCOFF, 1, [Using m68k COFF?]) ;;
665 m88k) AC_DEFINE(M88KCOFF, 1, [Using m88k COFF?]) ;;
670 # Getting this done right is going to be a bitch. Each configuration specified
671 # with --enable-targets=... should be checked for environment, format, cpu, and
674 # For each configuration, the necessary object file support code must be linked
675 # in. This might be only one, it might be up to four. The necessary emulation
676 # code needs to be provided, too.
678 # And then there's "--enable-targets=all"....
680 # For now, just always do it for MIPS ELF or ECOFF configurations. Sigh.
682 formats="${obj_format}"
686 for em in . $emulations ; do
690 fmt=elf file=mipself ;;
691 mipsbecoff | mipslecoff)
692 fmt=ecoff file=mipsecoff ;;
700 formats="$formats $fmt"
701 emfiles="$emfiles e-$file.o"
702 EMULATIONS="$EMULATIONS &$em,"
706 if test `set . $formats ; shift ; echo $#` -gt 1 ; then
707 for fmt in $formats ; do
709 aout) AC_DEFINE(OBJ_MAYBE_AOUT, 1, [a.out support?]) ;;
710 bout) AC_DEFINE(OBJ_MAYBE_BOUT, 1, [b.out support?]) ;;
711 coff) AC_DEFINE(OBJ_MAYBE_COFF, 1, [COFF support?]) ;;
712 ecoff) AC_DEFINE(OBJ_MAYBE_ECOFF, 1, [ECOFF support?]) ;;
713 elf) AC_DEFINE(OBJ_MAYBE_ELF, 1, [ELF support?]) ;;
714 generic) AC_DEFINE(OBJ_MAYBE_GENERIC, 1, [generic support?]) ;;
715 hp300) AC_DEFINE(OBJ_MAYBE_HP300, 1, [HP300 support?]) ;;
716 ieee) AC_DEFINE(OBJ_MAYBE_IEEE, 1, [IEEE support?]) ;;
717 som) AC_DEFINE(OBJ_MAYBE_SOM, 1, [SOM support?]) ;;
718 vms) AC_DEFINE(OBJ_MAYBE_VMS, 1, [VMS support?]) ;;
720 extra_objects="$extra_objects obj-$fmt.o"
724 if test `set . $emfiles ; shift ; echo $#` -gt 0 ; then
725 DEFAULT_EMULATION=`set . $emulations ; echo $2`
726 # e-mips* has more than one emulation per file, e-i386* has just one at the
727 # moment. If only one emulation is specified, then don't define
728 # USE_EMULATIONS or include any of the e-files as they will only be bloat.
729 case "${obj_format}${emfiles}" in
731 extra_objects="$extra_objects $emfiles"
732 AC_DEFINE(USE_EMULATIONS, 1, [Use emulation support?]) ;;
735 AC_SUBST(extra_objects)
736 AC_DEFINE_UNQUOTED(EMULATIONS, $EMULATIONS, [Supported emulations.])
737 AC_DEFINE_UNQUOTED(DEFAULT_EMULATION, "$DEFAULT_EMULATION",
738 [Default emulation.])
740 case ${primary_bfd_gas}-${target_cpu_type}-${obj_format} in
741 yes-*-coff) need_bfd=yes ;;
742 no-*-coff) need_bfd=yes
743 AC_DEFINE(MANY_SEGMENTS, 1, [old COFF support?]) ;;
746 reject_dev_configs=yes
748 case ${reject_dev_configs}-${dev} in
750 AC_MSG_ERROR(GAS does not support the ${generic_target} configuration.)
754 AC_SUBST(target_cpu_type)
757 AC_SUBST(install_tooldir)
759 dnl AC_SUBST(emulation)
761 case "${primary_bfd_gas}" in
762 yes) AC_DEFINE(BFD_ASSEMBLER, 1, [Use BFD interface?])
766 # do we need the opcodes library?
767 case "${need_opcodes}" in
769 OPCODES_LIB=../opcodes/libopcodes.la
773 case "${need_bfd}" in
775 BFDLIB=../bfd/libbfd.la
776 ALL_OBJ_DEPS="$ALL_OBJ_DEPS ../bfd/bfd.h"
781 AC_SUBST(OPCODES_LIB)
783 AC_SUBST(ALL_OBJ_DEPS)
785 AC_DEFINE_UNQUOTED(TARGET_ALIAS, "${target_alias}", [Target alias.])
786 AC_DEFINE_UNQUOTED(TARGET_CANONICAL, "${target}", [Canonical target.])
787 AC_DEFINE_UNQUOTED(TARGET_CPU, "${target_cpu}", [Target CPU.])
788 AC_DEFINE_UNQUOTED(TARGET_VENDOR, "${target_vendor}", [Target vendor.])
789 AC_DEFINE_UNQUOTED(TARGET_OS, "${target_os}", [Target OS.])
802 AC_CHECK_HEADERS(string.h stdlib.h memory.h strings.h unistd.h stdarg.h varargs.h errno.h sys/types.h)
804 # Put this here so that autoconf's "cross-compiling" message doesn't confuse
805 # people who are not cross-compiling but are compiling cross-assemblers.
806 AC_MSG_CHECKING(whether compiling a cross-assembler)
807 if test "${host}" = "${target}"; then
811 AC_DEFINE(CROSS_COMPILE, 1, [Compiling cross-assembler?])
813 AC_MSG_RESULT($cross_gas)
815 dnl ansidecl.h will deal with const
820 # VMS doesn't have unlink.
821 AC_CHECK_FUNCS(unlink remove, break)
823 # Some systems don't have sbrk().
826 # do we need the math library?
827 case "${need_libm}" in
834 # Some non-ANSI preprocessors botch requoting inside strings. That's bad
835 # enough, but on some of those systems, the assert macro relies on requoting
839 # On some systems, the system header files may not declare malloc, realloc,
840 # and free. There are places where gas needs these functions to have been
841 # declared -- such as when taking their addresses.
849 #ifdef HAVE_STRINGS_H
860 GAS_CHECK_DECL_NEEDED(strstr, f, char *(*f)(), $gas_test_headers)
861 GAS_CHECK_DECL_NEEDED(malloc, f, char *(*f)(), $gas_test_headers)
862 GAS_CHECK_DECL_NEEDED(free, f, void (*f)(), $gas_test_headers)
863 GAS_CHECK_DECL_NEEDED(sbrk, f, char *(*f)(), $gas_test_headers)
864 GAS_CHECK_DECL_NEEDED(environ, f, char **f, $gas_test_headers)
866 # Does errno.h declare errno, or do we have to add a separate declaration
868 GAS_CHECK_DECL_NEEDED(errno, f, int f, [
874 dnl This must come last.
876 dnl We used to make symlinks to files in the source directory, but now
877 dnl we just use the right name for .c files, and create .h files in
878 dnl the build directory which include the right .h file. Make sure
879 dnl the old symlinks don't exist, so that a reconfigure in an existing
880 dnl directory behaves reasonably.
882 AC_OUTPUT(Makefile doc/Makefile ${GDBINIT}:gdbinit.in po/Makefile.in:po/Make-in,
883 [rm -f targ-cpu.c targ-cpu.h obj-format.h obj-format.c targ-env.h atof-targ.c itbl-cpu.h
884 echo '#include "tc-'"${target_cpu_type}"'.h"' > targ-cpu.h
885 echo '#include "obj-'"${obj_format}"'.h"' > obj-format.h
886 echo '#include "te-'"${te_file}"'.h"' > targ-env.h
887 echo '#include "itbl-'"${target_cpu_type}"'.h"' > itbl-cpu.h
888 if test "x$cgen_cpu_prefix" != x ; then
889 echo '#include "opcodes/'"${cgen_cpu_prefix}"'-desc.h"' > cgen-desc.h
892 sed -e '/POTFILES =/r po/POTFILES' po/Makefile.in > po/Makefile],
893 [target_cpu_type=${target_cpu_type}
894 cgen_cpu_prefix=${cgen_cpu_prefix}
895 obj_format=${obj_format}