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*) if test -d /usr/dde; then
330 mips-*-sysv*) fmt=ecoff ;;
331 mips-*-elf* | mips-*-rtems* | mips-*-linux-gnu* | mips-*-gnu* | mips-*-openbsd*)
333 mips-*-vxworks*) fmt=elf
334 AC_DEFINE(MIPS_STABS_ELF, 1,
335 [Use ELF stabs for MIPS, not ECOFF stabs])
337 mn10200-*-*) fmt=elf bfd_gas=yes ;;
338 mn10300-*-*) fmt=elf bfd_gas=yes ;;
340 ppc-*-pe | ppc-*-cygwin* | ppc-*-winnt*)
342 ppc-*-aix*) fmt=coff ;;
343 ppc-*-beos*) fmt=coff ;;
344 ppc-*-*bsd* | ppc-*-elf* | ppc-*-eabi* | ppc-*-sysv4*)
346 ppc-*-linux-gnu*) fmt=elf
349 *) AC_MSG_ERROR(GNU/Linux must be configured big endian) ;;
352 ppc-*-solaris*) fmt=elf
353 if test ${this_target} = $target; then
354 AC_DEFINE(TARGET_SOLARIS_COMMENT, 1,
355 [Define if default target is PowerPC Solaris.])
357 if test x${endian} = xbig; then
358 AC_MSG_ERROR(Solaris must be configured little endian)
361 ppc-*-rtems*) fmt=elf ;;
362 ppc-*-macos* | ppc-*-mpw*)
364 ppc-*-netware*) fmt=elf em=ppcnw ;;
365 ppc-*-vxworks*) fmt=elf ;;
367 sh-*-elf*) fmt=elf ;;
368 sh-*-coff*) fmt=coff ;;
369 sh-*-pe*) fmt=coff em=pe bfd_gas=yes;;
370 sh-*-rtemself*) fmt=elf ;;
371 sh-*-rtems*) fmt=coff ;;
373 ns32k-pc532-mach* | ns32k-pc532-ux*) fmt=aout em=pc532mach ;;
374 ns32k-pc532-netbsd* | ns32k-pc532-lites*) fmt=aout em=nbsd532 ;;
375 ns32k-pc532-openbsd*) fmt=aout em=nbsd532 ;;
377 sparc-*-rtems*) fmt=aout ;;
378 sparc-*-sunos4*) fmt=aout em=sun3 ;;
379 sparc-*-aout | sparc*-*-vxworks*)
380 fmt=aout em=sparcaout ;;
381 sparc-*-coff) fmt=coff ;;
382 sparc-*-linux*aout*) fmt=aout em=linux ;;
383 sparc-*-linux-gnu*) fmt=elf em=linux ;;
384 sparc-*-lynxos*) fmt=coff em=lynx ;;
385 sparc-fujitsu-none) fmt=aout ;;
386 sparc-*-elf | sparc-*-sysv4* | sparc-*-solaris*)
388 sparc-*-netbsd*) em=nbsd bfd_gas=yes
397 sparc-*-openbsd*) fmt=aout em=nbsd ;;
399 strongarm-*-coff) fmt=coff ;;
400 strongarm-*-elf) fmt=elf ;;
402 tic30-*-*aout*) fmt=aout bfd_gas=yes ;;
403 tic30-*-*coff*) fmt=coff bfd_gas=yes ;;
404 tic54x-*-* | c54x*-*-*)
405 fmt=coff bfd_gas=yes need_libm=yes;;
406 tic80-*-*) fmt=coff ;;
408 v850-*-*) fmt=elf bfd_gas=yes ;;
409 v850e-*-*) fmt=elf bfd_gas=yes ;;
410 v850ea-*-*) fmt=elf bfd_gas=yes ;;
412 vax-*-bsd* | vax-*-ultrix*)
414 vax-*-vms) fmt=vms ;;
417 z8k-*-coff | z8k-*-sim)
422 *-*-aout | *-*-scout)
428 *-*-generic) fmt=generic ;;
429 *-*-xray | *-*-hms) fmt=coff ;;
431 *-*-elf | *-*-sysv4* | *-*-solaris*)
432 AC_MSG_WARN(GAS support for ${generic_target} is incomplete.)
434 *-*-vxworks) fmt=aout ;;
435 *-*-netware) fmt=elf ;;
438 if test ${this_target} = $target ; then
440 if test x${endian} = xbig; then
442 elif test x${endian} = xlittle; then
445 if test x${endian_def} != x; then
446 AC_DEFINE_UNQUOTED(TARGET_BYTES_BIG_ENDIAN, $endian_def,
447 [Define as 1 if big endian.])
451 case ${cpu_type}-${fmt} in
452 alpha*-*) bfd_gas=yes ;;
453 arm-*) bfd_gas=yes ;;
455 # i386-aout) bfd_gas=preferred ;;
456 ia64*-*) bfd_gas=yes ;;
457 mips-*) bfd_gas=yes ;;
458 ns32k-*) bfd_gas=yes ;;
459 ppc-*) bfd_gas=yes ;;
460 sparc-*) bfd_gas=yes ;;
461 strongarm-*) bfd_gas=yes ;;
462 *-elf) bfd_gas=yes ;;
463 *-ecoff) bfd_gas=yes ;;
464 *-som) bfd_gas=yes ;;
465 #enable bfd for coff and aout to allow testing if a bfd target is
466 #the primary target, but not for coff or aout as the primary target
467 i386-coff) if test x${primary_bfd_gas} = xyes; then bfd_gas=yes; fi ;;
468 i386-aout) if test x${primary_bfd_gas} = xyes; then bfd_gas=yes; fi ;;
472 # Other random stuff.
474 # Do we need the opcodes library?
482 case "${enable_shared}" in
483 yes) shared_opcodes=true ;;
484 *opcodes*) shared_opcodes=true ;;
485 *) shared_opcodes=false ;;
487 if test "${shared_opcodes}" = "true"; then
488 # A shared libopcodes must be linked against libbfd.
494 # Any other special object files needed ?
501 case ${extra_objects} in
503 *) extra_objects="$extra_objects m68k-parse.o" ;;
508 echo ${extra_objects} | grep -s "itbl-parse.o"
509 if test $? -ne 0 ; then
510 extra_objects="$extra_objects itbl-parse.o"
513 echo ${extra_objects} | grep -s "itbl-lex.o"
514 if test $? -ne 0 ; then
515 extra_objects="$extra_objects itbl-lex.o"
518 echo ${extra_objects} | grep -s "itbl-ops.o"
519 if test $? -ne 0 ; then
520 extra_objects="$extra_objects itbl-ops.o"
525 if test $this_target = $target ; then
526 AC_DEFINE_UNQUOTED(DEFAULT_ARCH, "${arch}", [Default architecture.])
533 if test $using_cgen = yes ; then
534 case "x${extra_objects}" in
536 *) extra_objects="$extra_objects cgen.o" ;;
540 # See if we really can support this configuration with the emulation code.
542 if test $this_target = $target ; then
543 primary_bfd_gas=$bfd_gas
547 if test $bfd_gas = no ; then
548 # Can't support other configurations this way.
551 elif test $bfd_gas = no ; then
552 # Can't support this configuration.
556 # From target name and format, produce a list of supported emulations.
558 case ${generic_target}-${fmt} in
559 mips-*-irix5*-*) emulation="mipsbelf mipslelf mipself mipsbecoff mipslecoff mipsecoff" ;;
560 mips-*-linux-gnu*-*) case "$endian" in
561 big) emulation="mipsbelf mipslelf mipself mipsbecoff mipslecoff mipsecoff" ;;
562 *) emulation="mipslelf mipsbelf mipself mipslecoff mipsbecoff mipsecoff" ;;
564 mips-*-lnews*-ecoff) ;;
565 mips-*-*-ecoff) case "$endian" in
566 big) emulation="mipsbecoff mipslecoff mipsecoff" ;;
567 *) emulation="mipslecoff mipsbecoff mipsecoff" ;;
569 mips-*-*-elf) case "$endian" in
570 big) emulation="mipsbelf mipslelf mipself" ;;
571 *) emulation="mipslelf mipsbelf mipself" ;;
573 mips-*-sysv4*MP*-*) if test -d /usr/dde; then
574 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" ;;
588 emulations="$emulations $emulation"
592 # Turn on all targets if possible
593 if test ${all_targets} = "yes"; then
594 case ${target_cpu_type} in
596 case ${obj_format} in
598 emulations="$emulations i386coff i386elf"
601 emulations="$emulations i386aout i386elf"
604 emulations="$emulations i386aout i386coff"
611 # Assign floating point type. Most processors with FP support
612 # IEEE FP. On those that don't support FP at all, usually IEEE
614 case ${target_cpu} in
615 vax | tahoe ) atof=${target_cpu} ;;
619 case "${obj_format}" in
620 "") AC_MSG_ERROR(GAS does not know what format to use for target ${target}) ;;
623 # Unfortunately the cpu in cpu-opc.h file isn't always $(TARGET_CPU).
625 if test $using_cgen = yes ; then
626 case ${target_cpu} in
627 *) cgen_cpu_prefix=${target_cpu} ;;
629 AC_SUBST(cgen_cpu_prefix)
630 AC_DEFINE(USING_CGEN, 1, [Using cgen code?])
634 dnl Make sure the desired support files exist.
637 if test ! -r ${srcdir}/config/tc-${target_cpu_type}.c; then
638 AC_MSG_ERROR(GAS does not support target CPU ${target_cpu_type})
641 if test ! -r ${srcdir}/config/obj-${obj_format}.c; then
642 AC_MSG_ERROR(GAS does not have support for object file format ${obj_format})
645 case ${user_bfd_gas}-${primary_bfd_gas} in
647 # We didn't override user's choice.
650 AC_MSG_WARN(Use of BFD is required for ${target}; overriding config options.)
662 # User specified nothing.
666 # Some COFF configurations want these random other flags set.
667 case ${obj_format} in
669 case ${target_cpu_type} in
670 i386) AC_DEFINE(I386COFF, 1, [Using i386 COFF?]) ;;
671 m68k) AC_DEFINE(M68KCOFF, 1, [Using m68k COFF?]) ;;
672 m88k) AC_DEFINE(M88KCOFF, 1, [Using m88k COFF?]) ;;
677 # Getting this done right is going to be a bitch. Each configuration specified
678 # with --enable-targets=... should be checked for environment, format, cpu, and
681 # For each configuration, the necessary object file support code must be linked
682 # in. This might be only one, it might be up to four. The necessary emulation
683 # code needs to be provided, too.
685 # And then there's "--enable-targets=all"....
687 # For now, just always do it for MIPS ELF or ECOFF configurations. Sigh.
689 formats="${obj_format}"
693 for em in . $emulations ; do
697 fmt=elf file=mipself ;;
698 mipsbecoff | mipslecoff)
699 fmt=ecoff file=mipsecoff ;;
707 formats="$formats $fmt"
708 emfiles="$emfiles e-$file.o"
709 EMULATIONS="$EMULATIONS &$em,"
713 if test `set . $formats ; shift ; echo $#` -gt 1 ; then
714 for fmt in $formats ; do
716 aout) AC_DEFINE(OBJ_MAYBE_AOUT, 1, [a.out support?]) ;;
717 bout) AC_DEFINE(OBJ_MAYBE_BOUT, 1, [b.out support?]) ;;
718 coff) AC_DEFINE(OBJ_MAYBE_COFF, 1, [COFF support?]) ;;
719 ecoff) AC_DEFINE(OBJ_MAYBE_ECOFF, 1, [ECOFF support?]) ;;
720 elf) AC_DEFINE(OBJ_MAYBE_ELF, 1, [ELF support?]) ;;
721 generic) AC_DEFINE(OBJ_MAYBE_GENERIC, 1, [generic support?]) ;;
722 hp300) AC_DEFINE(OBJ_MAYBE_HP300, 1, [HP300 support?]) ;;
723 ieee) AC_DEFINE(OBJ_MAYBE_IEEE, 1, [IEEE support?]) ;;
724 som) AC_DEFINE(OBJ_MAYBE_SOM, 1, [SOM support?]) ;;
725 vms) AC_DEFINE(OBJ_MAYBE_VMS, 1, [VMS support?]) ;;
727 extra_objects="$extra_objects obj-$fmt.o"
731 if test `set . $emfiles ; shift ; echo $#` -gt 0 ; then
732 DEFAULT_EMULATION=`set . $emulations ; echo $2`
733 # e-mips* has more than one emulation per file, e-i386* has just one at the
734 # moment. If only one emulation is specified, then don't define
735 # USE_EMULATIONS or include any of the e-files as they will only be bloat.
736 case "${obj_format}${emfiles}" in
738 # if te_file is tmips, that means the target is mips-*-sysv4*MP* and we do
739 # not set it to multi.
740 if [[ $te_file -ne "tmips" ]]; then
743 extra_objects="$extra_objects $emfiles"
744 AC_DEFINE(USE_EMULATIONS, 1, [Use emulation support?]) ;;
747 AC_SUBST(extra_objects)
748 AC_DEFINE_UNQUOTED(EMULATIONS, $EMULATIONS, [Supported emulations.])
749 AC_DEFINE_UNQUOTED(DEFAULT_EMULATION, "$DEFAULT_EMULATION",
750 [Default emulation.])
752 case ${primary_bfd_gas}-${target_cpu_type}-${obj_format} in
753 yes-*-coff) need_bfd=yes ;;
754 no-*-coff) need_bfd=yes
755 AC_DEFINE(MANY_SEGMENTS, 1, [old COFF support?]) ;;
758 reject_dev_configs=yes
760 case ${reject_dev_configs}-${dev} in
762 AC_MSG_ERROR(GAS does not support the ${generic_target} configuration.)
766 AC_SUBST(target_cpu_type)
769 AC_SUBST(install_tooldir)
771 dnl AC_SUBST(emulation)
773 case "${primary_bfd_gas}" in
774 yes) AC_DEFINE(BFD_ASSEMBLER, 1, [Use BFD interface?])
778 # do we need the opcodes library?
779 case "${need_opcodes}" in
781 OPCODES_LIB=../opcodes/libopcodes.la
785 case "${need_bfd}" in
787 BFDLIB=../bfd/libbfd.la
788 ALL_OBJ_DEPS="$ALL_OBJ_DEPS ../bfd/bfd.h"
793 AC_SUBST(OPCODES_LIB)
795 AC_SUBST(ALL_OBJ_DEPS)
797 AC_DEFINE_UNQUOTED(TARGET_ALIAS, "${target_alias}", [Target alias.])
798 AC_DEFINE_UNQUOTED(TARGET_CANONICAL, "${target}", [Canonical target.])
799 AC_DEFINE_UNQUOTED(TARGET_CPU, "${target_cpu}", [Target CPU.])
800 AC_DEFINE_UNQUOTED(TARGET_VENDOR, "${target_vendor}", [Target vendor.])
801 AC_DEFINE_UNQUOTED(TARGET_OS, "${target_os}", [Target OS.])
814 AC_CHECK_HEADERS(string.h stdlib.h memory.h strings.h unistd.h stdarg.h varargs.h errno.h sys/types.h)
816 # Put this here so that autoconf's "cross-compiling" message doesn't confuse
817 # people who are not cross-compiling but are compiling cross-assemblers.
818 AC_MSG_CHECKING(whether compiling a cross-assembler)
819 if test "${host}" = "${target}"; then
823 AC_DEFINE(CROSS_COMPILE, 1, [Compiling cross-assembler?])
825 AC_MSG_RESULT($cross_gas)
827 dnl ansidecl.h will deal with const
832 # VMS doesn't have unlink.
833 AC_CHECK_FUNCS(unlink remove, break)
835 # Some systems don't have sbrk().
838 # do we need the math library?
839 case "${need_libm}" in
846 # Some non-ANSI preprocessors botch requoting inside strings. That's bad
847 # enough, but on some of those systems, the assert macro relies on requoting
851 # On some systems, the system header files may not declare malloc, realloc,
852 # and free. There are places where gas needs these functions to have been
853 # declared -- such as when taking their addresses.
861 #ifdef HAVE_STRINGS_H
872 GAS_CHECK_DECL_NEEDED(strstr, f, char *(*f)(), $gas_test_headers)
873 GAS_CHECK_DECL_NEEDED(malloc, f, char *(*f)(), $gas_test_headers)
874 GAS_CHECK_DECL_NEEDED(free, f, void (*f)(), $gas_test_headers)
875 GAS_CHECK_DECL_NEEDED(sbrk, f, char *(*f)(), $gas_test_headers)
876 GAS_CHECK_DECL_NEEDED(environ, f, char **f, $gas_test_headers)
878 # Does errno.h declare errno, or do we have to add a separate declaration
880 GAS_CHECK_DECL_NEEDED(errno, f, int f, [
886 dnl This must come last.
888 dnl We used to make symlinks to files in the source directory, but now
889 dnl we just use the right name for .c files, and create .h files in
890 dnl the build directory which include the right .h file. Make sure
891 dnl the old symlinks don't exist, so that a reconfigure in an existing
892 dnl directory behaves reasonably.
894 AC_OUTPUT(Makefile doc/Makefile ${GDBINIT}:gdbinit.in po/Makefile.in:po/Make-in,
895 [rm -f targ-cpu.c targ-cpu.h obj-format.h obj-format.c targ-env.h atof-targ.c itbl-cpu.h
896 echo '#include "tc-'"${target_cpu_type}"'.h"' > targ-cpu.h
897 echo '#include "obj-'"${obj_format}"'.h"' > obj-format.h
898 echo '#include "te-'"${te_file}"'.h"' > targ-env.h
899 echo '#include "itbl-'"${target_cpu_type}"'.h"' > itbl-cpu.h
900 if test "x$cgen_cpu_prefix" != x ; then
901 echo '#include "opcodes/'"${cgen_cpu_prefix}"'-desc.h"' > cgen-desc.h
904 sed -e '/POTFILES =/r po/POTFILES' po/Makefile.in > po/Makefile],
905 [target_cpu_type=${target_cpu_type}
906 cgen_cpu_prefix=${cgen_cpu_prefix}
907 obj_format=${obj_format}