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
15 BFD_VERSION=`sed -n -e 's/^.._INIT_AUTOMAKE.*,[ ]*\([^ ]*\)[ ]*).*/\1/p' < ${srcdir}/../bfd/configure.in`
17 AM_INIT_AUTOMAKE(gas, ${BFD_VERSION})
22 AC_ARG_ENABLE(bfd-assembler,
23 [ --enable-bfd-assembler use BFD back end for writing object files],
24 [case "${enableval}" in
25 yes) need_bfd=yes user_bfd_gas=yes ;;
26 no) user_bfd_gas=no ;;
27 *) AC_MSG_ERROR(bad value ${enableval} given for bfd-assembler option) ;;
29 AC_ARG_ENABLE(targets,
30 [ targets alternative target configurations besides the primary],
31 [case "${enableval}" in
32 yes | "") AC_ERROR(enable-targets option must specify target names or 'all')
34 no) enable_targets= ;;
35 *) enable_targets=$enableval ;;
37 AC_ARG_ENABLE(commonbfdlib,
38 [ --enable-commonbfdlib build shared BFD/opcodes/libiberty library],
39 [case "${enableval}" in
40 yes) commonbfdlib=true ;;
41 no) commonbfdlib=false ;;
42 *) AC_MSG_ERROR([bad value ${enableval} for BFD commonbfdlib option]) ;;
47 build_warnings="-W -Wall -Wstrict-prototypes -Wmissing-prototypes"
48 AC_ARG_ENABLE(build-warnings,
49 [ --enable-build-warnings Enable build-time compiler warnings if gcc is used],
50 [case "${enableval}" in
52 no) build_warnings="-w";;
53 ,*) t=`echo "${enableval}" | sed -e "s/,/ /g"`
54 build_warnings="${build_warnings} ${t}";;
55 *,) t=`echo "${enableval}" | sed -e "s/,/ /g"`
56 build_warnings="${t} ${build_warnings}";;
57 *) build_warnings=`echo "${enableval}" | sed -e "s/,/ /g"`;;
59 if test x"$silent" != x"yes" && test x"$build_warnings" != x""; then
60 echo "Setting warning flags = $build_warnings" 6>&1
63 if test "x${build_warnings}" != x -a "x$GCC" = xyes ; then
64 WARN_CFLAGS="${build_warnings}"
68 # Generate a header file
69 AM_CONFIG_HEADER(config.h:config.in)
71 # If we are on a DOS filesystem, we must use gdb.ini rather than
75 *-*-msdos* | *-*-go32* | *-*-mingw32* | *-*-cygwin* | *-*-windows*)
83 # Makefile target for installing gas in $(tooldir)/bin.
84 install_tooldir=install-exec-tooldir
88 if test -n "$enable_targets" ; then
89 for t in `echo $enable_targets | sed 's/,/ /g'`; do
90 if test $t = "all"; then
94 result=`$ac_config_sub $t 2>/dev/null`
95 if test -n "$result" ; then
96 canon_targets="$canon_targets $result"
98 # # Permit "all", etc. We don't support it yet though.
99 # canon_targets="$canon_targets $t"
102 GAS_UNIQ(canon_targets)
107 for this_target in $target $canon_targets ; do
110 eval `echo $this_target | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/cpu=\1 vendor=\2 os=\3/'`
113 # check for architecture variants
117 alpha*) cpu_type=alpha ;;
118 armeb) cpu_type=arm endian=big ;;
119 arm*) cpu_type=arm endian=little ;;
120 armb*) cpu_type=arm endian=little ;;
121 armv*l) cpu_type=arm endian=little ;;
122 armv*b) cpu_type=arm endian=big ;;
123 xscale*) cpu_type=arm endian=little ;;
124 strongarm*) cpu_type=arm endian=little ;;
125 thumb*) cpu_type=arm endian=little ;;
126 hppa*) cpu_type=hppa ;;
128 i[3456]86) cpu_type=i386 arch=i386;;
129 x86_64) cpu_type=i386 arch=x86_64;;
130 ia64) cpu_type=ia64 ;;
131 m6811|m6812|m68hc12) cpu_type=m68hc11 ;;
132 m680[012346]0) cpu_type=m68k ;;
134 m68008) cpu_type=m68k ;;
135 m683??) cpu_type=m68k ;;
136 m5200) cpu_type=m68k ;;
137 m8*) cpu_type=m88k ;;
138 mips*el) cpu_type=mips endian=little ;;
139 mips*) cpu_type=mips endian=big ;;
140 or32*) cpu_type=or32 endian=big ;;
141 pjl*) cpu_type=pj endian=little ;;
142 pj*) cpu_type=pj endian=big ;;
143 powerpc*le*) cpu_type=ppc endian=little ;;
144 powerpc*) cpu_type=ppc endian=big ;;
145 rs6000*) cpu_type=ppc ;;
146 s390x*) cpu_type=s390 arch=s390x ;;
147 s390*) cpu_type=s390 arch=s390 ;;
148 sh5*) cpu_type=sh64 endian=big ;;
149 sh5le*) cpu_type=sh64 endian=little ;;
150 sh64*) cpu_type=sh64 endian=big ;;
151 sh64le*) cpu_type=sh64 endian=little ;;
152 sh*le) cpu_type=sh endian=little ;;
153 sh*) cpu_type=sh endian=big ;;
154 sparclite*) cpu_type=sparc arch=sparclite ;;
155 sparclet*) cpu_type=sparc arch=sparclet ;;
156 sparc64*) cpu_type=sparc arch=v9-64 ;;
157 sparc86x*) cpu_type=sparc arch=sparc86x ;;
158 sparc*) cpu_type=sparc arch=sparclite ;; # ??? See tc-sparc.c.
159 v850*) cpu_type=v850 ;;
160 *) cpu_type=${cpu} ;;
163 if test ${this_target} = $target ; then
164 target_cpu_type=${cpu_type}
165 elif test ${target_cpu_type} != ${cpu_type} ; then
169 generic_target=${cpu_type}-$vendor-$os
174 # assign object format
175 case ${generic_target} in
176 a29k-*-coff) fmt=coff ;;
177 a29k-amd-udi) fmt=coff ;;
178 a29k-amd-ebmon) fmt=coff ;;
179 a29k-nyu-sym1) fmt=coff ;;
180 a29k-*-rtems*) fmt=coff ;;
181 a29k-*-vxworks*) fmt=coff ;;
183 alpha*-*-*vms*) fmt=evax ;;
184 alpha*-*-netware*) fmt=ecoff ;;
185 alpha*-*-openbsd*) fmt=ecoff ;;
186 alpha*-*-osf*) fmt=ecoff ;;
187 alpha*-*-linuxecoff*) fmt=ecoff ;;
188 alpha*-*-linux-gnu*) fmt=elf em=linux ;;
189 alpha*-*-netbsd*) fmt=elf em=nbsd ;;
191 arc-*-elf*) fmt=elf bfd_gas=yes ;;
193 arm-*-aout) fmt=aout ;;
194 arm-*-coff | thumb-*-coff) fmt=coff ;;
195 arm-*-rtems | thumb-*-rtems) fmt=elf ;;
196 arm-*-elf | thumb-*-elf) fmt=elf ;;
197 arm*-*-conix*) fmt=elf ;;
198 arm-*-linux*aout*) fmt=aout em=linux ;;
199 arm*-*-linux-gnu* | arm*-*-uclinux*)
201 arm-*-netbsdelf*) fmt=elf em=nbsd ;;
202 arm-*-netbsd* | arm-*-openbsd*) fmt=aout em=nbsd ;;
203 arm-*-oabi | thumb-*-oabi) fmt=elf ;;
204 arm-epoc-pe | thumb-epoc-pe) fmt=coff em=epoc-pe ;;
205 arm-*-wince) fmt=coff em=wince-pe ;;
206 arm-*-pe | thumb-*-pe) fmt=coff em=pe ;;
207 arm-*-riscix*) fmt=aout em=riscix ;;
208 arm-*-vxworks) fmt=coff ;;
210 avr-*-*) fmt=elf bfd_gas=yes ;;
212 cris-*-*) fmt=multi bfd_gas=yes ;;
214 d10v-*-*) fmt=elf bfd_gas=yes ;;
215 d30v-*-*) fmt=elf bfd_gas=yes ;;
219 fr30-*-*) fmt=elf bfd_gas=yes ;;
221 hppa-*-linux-gnu*) case ${cpu} in
223 fmt=elf em=hppalinux64;;
227 hppa-*-*elf*) fmt=elf em=hppa ;;
228 hppa-*-lites*) fmt=elf em=hppa ;;
229 hppa-*-netbsd*) fmt=elf em=nbsd ;;
230 hppa-*-osf*) fmt=som em=hppa ;;
231 hppa-*-rtems*) fmt=elf em=hppa ;;
232 hppa-*-hpux11*) case ${cpu} in
238 hppa-*-hpux*) fmt=som em=hppa ;;
239 hppa-*-mpeix*) fmt=som em=hppa ;;
240 hppa-*-bsd*) fmt=som em=hppa ;;
241 hppa-*-hiux*) fmt=som em=hppa ;;
243 h8300-*-rtems*) fmt=coff ;;
244 h8300-*-coff) fmt=coff ;;
245 h8300-*-elf) fmt=elf ;;
246 h8500-*-rtems*) fmt=coff ;;
247 h8500-*-coff) fmt=coff ;;
249 i370-*-elf* | i370-*-linux*) fmt=elf ;;
250 i386-ibm-aix*) fmt=coff em=i386aix ;;
251 i386-sequent-bsd*) fmt=aout em=dynix bfd_gas=yes ;;
252 i386-*-beospe*) fmt=coff em=pe bfd_gas=yes ;;
253 i386-*-beoself* | i386-*-beos*) fmt=elf bfd_gas=yes ;;
254 i386-*-bsd*) fmt=aout em=386bsd ;;
255 i386-*-netbsd0.8) fmt=aout em=386bsd ;;
256 i386-*-netbsdpe*) fmt=coff em=pe bfd_gas=yes ;;
257 i386-*-netbsd*) em=nbsd bfd_gas=yes
267 i386-*-openbsd*) fmt=aout em=nbsd bfd_gas=yes;;
268 i386-*-linux*aout* | i386-*-linux*oldld) fmt=aout em=linux ;;
269 i386-*-linux*coff*) fmt=coff em=linux ;;
270 i386-*-linux-gnu*) fmt=elf em=linux bfd_gas=yes ;;
271 x86_64-*-linux-gnu*) fmt=elf em=linux bfd_gas=yes ;;
272 i386-*-lynxos*) fmt=coff em=lynx ;;
274 i386-*-sysv[45]* | i386-*-solaris* | i386-*-elf)
275 fmt=elf bfd_gas=yes ;;
276 i386-*-freebsdaout* | i386-*-freebsd[12].* | i386-*-freebsd[12])
277 fmt=aout em=386bsd ;;
279 i386-*-coff | i386-*-sysv* | i386-*-sco3.2v5*coff | i386-*-isc*)
281 i386-*-sco3.2v5*) fmt=elf
282 if test ${this_target} = $target; then
283 AC_DEFINE(SCO_ELF, 1,
284 [Define if defaulting to ELF on SCO 5.])
287 i386-*-sco3.2*) fmt=coff ;;
288 i386-*-vsta) fmt=aout ;;
289 i386-*-msdosdjgpp* | i386-*-go32* | i386-go32-rtems*)
290 fmt=coff em=go32 bfd_gas=yes
291 AC_DEFINE(STRICTCOFF, 1, [Using strict COFF?])
293 i386-*-rtemself*) fmt=elf ;;
294 i386-*-rtemscoff*) fmt=coff ;;
295 i386-*-rtems*) fmt=elf ;;
296 i386-*-gnu*) fmt=elf ;;
298 fmt=aout em=mach bfd_gas=yes ;;
299 i386-*-msdos*) fmt=aout ;;
300 i386-*-moss*) fmt=elf ;;
301 i386-*-pe) fmt=coff em=pe bfd_gas=yes ;;
302 i386-*-cygwin*) fmt=coff em=pe bfd_gas=yes ;;
303 i386-*-interix*) fmt=coff em=interix bfd_gas=yes ;;
304 i386-*-mingw32*) fmt=coff em=pe bfd_gas=yes ;;
305 i386-*-nto-qnx*) fmt=elf ;;
306 i386-*-*nt*) fmt=coff em=pe bfd_gas=yes ;;
307 i386-*-vxworks*) fmt=aout ;;
308 i386-*-chaos) fmt=elf ;;
309 i860-stardent-sysv4* | i860-stardent-elf*)
310 fmt=elf bfd_gas=yes endian=little
311 AC_MSG_WARN(GAS support for ${generic_target} is preliminary and a work in progress) ;;
312 i960-*-bout) fmt=bout ;;
313 i960-*-coff) fmt=coff em=ic960 ;;
314 i960-*-rtems*) fmt=coff em=ic960 ;;
315 i960-*-nindy*) fmt=bout ;;
316 i960-*-vxworks4*) fmt=bout ;;
317 i960-*-vxworks5.0) fmt=bout ;;
318 i960-*-vxworks5.*) fmt=coff em=ic960 ;;
319 i960-*-vxworks*) fmt=bout ;;
320 i960-*-elf*) fmt=elf ;;
322 ia64-*-elf*) fmt=elf ;;
323 ia64-*-aix*) fmt=elf em=ia64aix ;;
324 ia64-*-linux-gnu*) fmt=elf em=linux ;;
325 ia64-*-hpux*) fmt=elf em=hpux ;;
326 ia64-*-netbsd*) fmt=elf em=nbsd ;;
328 m32r-*-*) fmt=elf bfd_gas=yes ;;
330 m68hc11-*-*|m6811-*-*|m68hc12-*-*|m6812-*-*)fmt=elf bfd_gas=yes ;;
332 m68k-*-vxworks* | m68k-ericsson-ose | m68k-*-sunos*)
334 m68k-motorola-sysv*) fmt=coff em=delta ;;
335 m68k-bull-sysv3*) fmt=coff em=dpx2 ;;
336 m68k-apollo-*) fmt=coff em=apollo ;;
337 m68k-*-sysv4*) # must be before -sysv*
339 m68k-*-elf*) fmt=elf ;;
340 m68k-*-coff | m68k-*-sysv* | m68k-*-rtemscoff*)
342 m68k-*-rtems*) fmt=elf ;;
343 m68k-*-hpux*) fmt=hp300 em=hp300 ;;
344 m68k-*-linux*aout*) fmt=aout em=linux ;;
345 m68k-*-linux-gnu*) fmt=elf em=linux ;;
346 m68k-*-gnu*) fmt=elf ;;
347 m68k-*-lynxos*) fmt=coff em=lynx ;;
348 m68k-*-netbsdelf*) fmt=elf em=nbsd bfd_gas=yes ;;
349 m68k-*-netbsdaout* | m68k-*-netbsd*)
350 fmt=aout em=nbsd bfd_gas=yes ;;
351 m68k-*-openbsd*) fmt=aout em=nbsd bfd_gas=yes ;;
352 m68k-apple-aux*) fmt=coff em=aux ;;
353 m68k-*-psos*) fmt=elf em=psos;;
355 m88k-motorola-sysv3*) fmt=coff em=delt88 ;;
356 m88k-*-coff*) fmt=coff ;;
358 mcore-*-elf) fmt=elf bfd_gas=yes ;;
359 mcore-*-pe) fmt=coff em=pe bfd_gas=yes ;;
361 # don't change em like *-*-bsd does
362 mips-dec-openbsd*) fmt=elf endian=little ;;
363 mips-dec-bsd*) fmt=aout endian=little ;;
364 mips-sony-bsd*) fmt=ecoff ;;
365 mips-*-bsd*) AC_MSG_ERROR(Unknown vendor for mips-bsd configuration.) ;;
366 mips-*-ultrix*) fmt=ecoff endian=little ;;
367 mips-*-osf*) fmt=ecoff endian=little ;;
368 mips-*-ecoff*) fmt=ecoff ;;
369 mips-*-pe*) fmt=coff endian=little em=pe ;;
370 mips-*-irix6*) fmt=elf ;;
371 mips-*-irix5*) fmt=elf ;;
372 mips-*-irix*) fmt=ecoff ;;
373 mips-*-lnews*) fmt=ecoff em=lnews ;;
374 mips-*-riscos*) fmt=ecoff ;;
375 mips*-*-linux*) fmt=elf em=tmips ;;
376 mips-*-sysv4*MP* | mips-*-gnu*)
378 mips-*-sysv*) fmt=ecoff ;;
379 mips-*-elf* | mips-*-rtems* | mips-*-netbsd* | mips-*-openbsd*)
381 mips-*-vxworks*) fmt=elf ;;
382 mmix-*-*) fmt=elf bfd_gas=yes ;;
383 mn10200-*-*) fmt=elf bfd_gas=yes ;;
384 mn10300-*-*) fmt=elf bfd_gas=yes ;;
385 openrisc-*-*) fmt=elf bfd_gas=yes ;;
386 or32-*-rtems*) fmt=coff ;;
387 or32-*-coff) fmt=coff ;;
388 or32-*-elf) fmt=elf ;;
390 ppc-*-pe | ppc-*-cygwin* | ppc-*-winnt*)
392 ppc-*-aix5*) fmt=coff em=aix5 ;;
393 ppc-*-aix*) fmt=coff ;;
394 ppc-*-beos*) fmt=coff ;;
395 ppc-*-*bsd* | ppc-*-elf* | ppc-*-eabi* | ppc-*-sysv4*)
397 ppc-*-linux-gnu*) fmt=elf
400 *) AC_MSG_ERROR(GNU/Linux must be configured big endian) ;;
403 ppc-*-solaris*) fmt=elf
404 if test ${this_target} = $target; then
405 AC_DEFINE(TARGET_SOLARIS_COMMENT, 1,
406 [Define if default target is PowerPC Solaris.])
408 if test x${endian} = xbig; then
409 AC_MSG_ERROR(Solaris must be configured little endian)
412 ppc-*-rtems*) fmt=elf ;;
413 ppc-*-macos* | ppc-*-mpw*)
415 ppc-*-netware*) fmt=elf em=ppcnw ;;
416 ppc-*-vxworks*) fmt=elf ;;
417 ppc-*-windiss*) fmt=elf ;;
419 s390x-*-linux-gnu*) fmt=elf em=linux ;;
420 s390-*-linux-gnu*) fmt=elf em=linux ;;
422 sh*-*-linux*) fmt=elf em=linux
429 sh5*-*-netbsd*) fmt=elf em=nbsd ;;
430 sh64*-*-netbsd*) fmt=elf em=nbsd ;;
431 sh*-*-netbsdelf*) fmt=elf em=nbsd ;;
432 sh-*-elf*) fmt=elf ;;
433 sh-*-coff*) fmt=coff ;;
434 sh-*-pe*) fmt=coff em=pe bfd_gas=yes endian=little ;;
435 sh-*-rtemself*) fmt=elf ;;
436 sh-*-rtems*) fmt=coff ;;
438 sh64-*-elf*) fmt=elf ;;
439 ns32k-pc532-mach* | ns32k-pc532-ux*) fmt=aout em=pc532mach ;;
440 ns32k-*-netbsd* | ns32k-pc532-lites*) fmt=aout em=nbsd532 ;;
441 ns32k-pc532-openbsd*) fmt=aout em=nbsd532 ;;
443 sparc-*-rtemsaout*) fmt=aout ;;
444 sparc-*-rtemself*) fmt=elf ;;
445 sparc-*-rtems*) fmt=elf ;;
446 sparc-*-sunos4*) fmt=aout em=sun3 ;;
447 sparc-*-aout | sparc*-*-vxworks*)
448 fmt=aout em=sparcaout ;;
449 sparc-*-coff) fmt=coff ;;
450 sparc-*-linux*aout*) fmt=aout em=linux ;;
451 sparc-*-linux-gnu*) fmt=elf em=linux ;;
452 sparc-*-lynxos*) fmt=coff em=lynx ;;
453 sparc-fujitsu-none) fmt=aout ;;
454 sparc-*-elf | sparc-*-sysv4* | sparc-*-solaris*)
456 sparc-*-netbsd*) em=nbsd bfd_gas=yes
465 sparc-*-openbsd*) fmt=aout em=nbsd ;;
467 strongarm-*-coff) fmt=coff ;;
468 strongarm-*-elf) fmt=elf ;;
469 xscale-*-coff) fmt=coff ;;
470 xscale-*-elf) fmt=elf ;;
472 tic30-*-*aout*) fmt=aout bfd_gas=yes ;;
473 tic30-*-*coff*) fmt=coff bfd_gas=yes ;;
474 tic54x-*-* | c54x*-*-*)
475 fmt=coff bfd_gas=yes need_libm=yes;;
476 tic80-*-*) fmt=coff ;;
478 v850-*-*) fmt=elf bfd_gas=yes ;;
479 v850e-*-*) fmt=elf bfd_gas=yes ;;
480 v850ea-*-*) fmt=elf bfd_gas=yes ;;
482 vax-*-netbsdelf*) fmt=elf em=nbsd bfd_gas=yes ;;
483 vax-*-netbsdaout* | vax-*-netbsd*)
485 vax-*-bsd* | vax-*-ultrix*)
487 vax-*-vms) fmt=vms ;;
491 xstormy16-*-*) fmt=elf bfd_gas=yes ;;
493 z8k-*-coff | z8k-*-sim)
496 *-*-aout | *-*-scout)
498 *-*-freebsd*) fmt=elf em=freebsd bfd_gas=yes ;;
503 *-*-generic) fmt=generic ;;
504 *-*-xray | *-*-hms) fmt=coff ;;
506 *-*-elf | *-*-sysv4* | *-*-solaris*)
507 AC_MSG_WARN(GAS support for ${generic_target} is incomplete.)
509 *-*-vxworks) fmt=aout ;;
510 *-*-netware) fmt=elf ;;
513 if test ${this_target} = $target ; then
515 if test x${endian} = xbig; then
517 elif test x${endian} = xlittle; then
520 if test x${endian_def} != x; then
521 AC_DEFINE_UNQUOTED(TARGET_BYTES_BIG_ENDIAN, $endian_def,
522 [Define as 1 if big endian.])
526 case ${cpu_type}-${fmt} in
527 alpha*-*) bfd_gas=yes ;;
528 arm-*) bfd_gas=yes ;;
530 # i386-aout) bfd_gas=preferred ;;
531 ia64*-*) bfd_gas=yes ;;
532 mips-*) bfd_gas=yes ;;
533 ns32k-*) bfd_gas=yes ;;
534 pdp11-*) bfd_gas=yes ;;
535 ppc-*) bfd_gas=yes ;;
536 sparc-*) bfd_gas=yes ;;
537 strongarm-*) bfd_gas=yes ;;
538 xscale-*) bfd_gas=yes ;;
539 *-elf) bfd_gas=yes ;;
540 *-ecoff) bfd_gas=yes ;;
541 *-som) bfd_gas=yes ;;
542 #enable bfd for coff and aout to allow testing if a bfd target is
543 #the primary target, but not for coff or aout as the primary target
544 i386-coff) if test x${primary_bfd_gas} = xyes; then bfd_gas=yes; fi ;;
545 i386-aout) if test x${primary_bfd_gas} = xyes; then bfd_gas=yes; fi ;;
549 # Other random stuff.
551 # Do we need the opcodes library?
559 case "${enable_shared}" in
560 yes) shared_opcodes=true ;;
561 *opcodes*) shared_opcodes=true ;;
562 *) shared_opcodes=false ;;
564 if test "${shared_opcodes}" = "true"; then
565 # A shared libopcodes must be linked against libbfd.
571 # Any other special object files needed ?
573 fr30 | m32r | openrisc)
578 case ${extra_objects} in
580 *) extra_objects="$extra_objects m68k-parse.o" ;;
585 echo ${extra_objects} | grep -s "itbl-parse.o"
586 if test $? -ne 0 ; then
587 extra_objects="$extra_objects itbl-parse.o"
590 echo ${extra_objects} | grep -s "itbl-lex.o"
591 if test $? -ne 0 ; then
592 extra_objects="$extra_objects itbl-lex.o"
595 echo ${extra_objects} | grep -s "itbl-ops.o"
596 if test $? -ne 0 ; then
597 extra_objects="$extra_objects itbl-ops.o"
602 if test $this_target = $target ; then
603 AC_DEFINE_UNQUOTED(DEFAULT_ARCH, "${arch}", [Default architecture.])
615 if test $using_cgen = yes ; then
616 case "x${extra_objects}" in
618 *) extra_objects="$extra_objects cgen.o" ;;
622 # See if we really can support this configuration with the emulation code.
624 if test $this_target = $target ; then
625 primary_bfd_gas=$bfd_gas
629 if test $bfd_gas = no ; then
630 # Can't support other configurations this way.
633 elif test $bfd_gas = no ; then
634 # Can't support this configuration.
638 # From target name and format, produce a list of supported emulations.
640 case ${generic_target}-${fmt} in
641 mips-*-irix5*-*) emulation="mipsbelf mipslelf mipself mipsbecoff mipslecoff mipsecoff" ;;
642 mips*-*-linux*-*) case "$endian" in
643 big) emulation="mipsbelf mipslelf mipself" ;;
644 *) emulation="mipslelf mipsbelf mipself" ;;
646 mips-*-lnews*-ecoff) ;;
647 mips-*-*-ecoff) case "$endian" in
648 big) emulation="mipsbecoff mipslecoff mipsecoff" ;;
649 *) emulation="mipslecoff mipsbecoff mipsecoff" ;;
651 mips-*-*-elf) case "$endian" in
652 big) emulation="mipsbelf mipslelf mipself" ;;
653 *) emulation="mipslelf mipsbelf mipself" ;;
655 mips-*-sysv4*MP*-*) emulation="mipsbelf mipslelf mipself mipsbecoff mipslecoff mipsecoff" ;;
656 # i386-pc-pe-coff != i386-pc-coff.
658 # Uncommenting the next line will turn on support for i386 AOUT
659 # for the default linux configuration
660 # i386-*-linux*-elf) emulation="i386elf i386aout" ;;
662 i386-*-aout) emulation="i386aout" ;;
663 i386-*-coff) emulation="i386coff" ;;
664 i386-*-elf) emulation="i386elf" ;;
666 # Always all formats. The first stated emulation becomes the default.
667 cris-*-*aout*) emulation="crisaout criself" ;;
668 cris-*-*) emulation="criself crisaout" ;;
671 emulations="$emulations $emulation"
675 # Turn on all targets if possible
676 if test ${all_targets} = "yes"; then
677 case ${target_cpu_type} in
679 case ${obj_format} in
681 emulations="$emulations i386coff i386elf"
684 emulations="$emulations i386aout i386elf"
687 emulations="$emulations i386aout i386coff"
694 # Assign floating point type. Most processors with FP support
695 # IEEE FP. On those that don't support FP at all, usually IEEE
697 case ${target_cpu} in
698 vax | tahoe ) atof=${target_cpu} ;;
703 case "${obj_format}" in
704 "") AC_MSG_ERROR(GAS does not know what format to use for target ${target}) ;;
707 # Unfortunately the cpu in cpu-opc.h file isn't always $(TARGET_CPU).
709 if test $using_cgen = yes ; then
710 case ${target_cpu} in
711 *) cgen_cpu_prefix=${target_cpu} ;;
713 AC_SUBST(cgen_cpu_prefix)
714 AC_DEFINE(USING_CGEN, 1, [Using cgen code?])
718 dnl Make sure the desired support files exist.
721 if test ! -r ${srcdir}/config/tc-${target_cpu_type}.c; then
722 AC_MSG_ERROR(GAS does not support target CPU ${target_cpu_type})
725 if test ! -r ${srcdir}/config/obj-${obj_format}.c; then
726 AC_MSG_ERROR(GAS does not have support for object file format ${obj_format})
729 case ${user_bfd_gas}-${primary_bfd_gas} in
731 # We didn't override user's choice.
734 AC_MSG_WARN(Use of BFD is required for ${target}; overriding config options.)
746 # User specified nothing.
750 # Some COFF configurations want these random other flags set.
751 case ${obj_format} in
753 case ${target_cpu_type} in
754 i386) AC_DEFINE(I386COFF, 1, [Using i386 COFF?]) ;;
755 m68k) AC_DEFINE(M68KCOFF, 1, [Using m68k COFF?]) ;;
756 m88k) AC_DEFINE(M88KCOFF, 1, [Using m88k COFF?]) ;;
761 # Getting this done right is going to be a bitch. Each configuration specified
762 # with --enable-targets=... should be checked for environment, format, cpu, and
765 # For each configuration, the necessary object file support code must be linked
766 # in. This might be only one, it might be up to four. The necessary emulation
767 # code needs to be provided, too.
769 # And then there's "--enable-targets=all"....
771 # For now, just always do it for MIPS ELF or ECOFF configurations. Sigh.
773 formats="${obj_format}"
777 for em in . $emulations ; do
780 mipsbelf | mipslelf | mipself)
781 fmt=elf file=mipself ;;
782 mipsbecoff | mipslecoff | mipsecoff)
783 fmt=ecoff file=mipsecoff ;;
791 formats="$formats $fmt"
792 emfiles="$emfiles e-$file.o"
793 EMULATIONS="$EMULATIONS &$em,"
797 if test `set . $formats ; shift ; echo $#` -gt 1 ; then
798 for fmt in $formats ; do
800 aout) AC_DEFINE(OBJ_MAYBE_AOUT, 1, [a.out support?]) ;;
801 bout) AC_DEFINE(OBJ_MAYBE_BOUT, 1, [b.out support?]) ;;
802 coff) AC_DEFINE(OBJ_MAYBE_COFF, 1, [COFF support?]) ;;
803 ecoff) AC_DEFINE(OBJ_MAYBE_ECOFF, 1, [ECOFF support?]) ;;
804 elf) AC_DEFINE(OBJ_MAYBE_ELF, 1, [ELF support?]) ;;
805 generic) AC_DEFINE(OBJ_MAYBE_GENERIC, 1, [generic support?]) ;;
806 hp300) AC_DEFINE(OBJ_MAYBE_HP300, 1, [HP300 support?]) ;;
807 ieee) AC_DEFINE(OBJ_MAYBE_IEEE, 1, [IEEE support?]) ;;
808 som) AC_DEFINE(OBJ_MAYBE_SOM, 1, [SOM support?]) ;;
809 vms) AC_DEFINE(OBJ_MAYBE_VMS, 1, [VMS support?]) ;;
811 extra_objects="$extra_objects obj-$fmt.o"
815 if test `set . $emfiles ; shift ; echo $#` -gt 0 ; then
816 DEFAULT_EMULATION=`set . $emulations ; echo $2`
817 # e-mips* has more than one emulation per file, e-i386* has just one at the
818 # moment. If only one emulation is specified, then don't define
819 # USE_EMULATIONS or include any of the e-files as they will only be bloat.
820 case "${obj_format}${emfiles}" in
822 extra_objects="$extra_objects $emfiles"
823 AC_DEFINE(USE_EMULATIONS, 1, [Use emulation support?]) ;;
826 AC_SUBST(extra_objects)
827 AC_DEFINE_UNQUOTED(EMULATIONS, $EMULATIONS, [Supported emulations.])
828 AC_DEFINE_UNQUOTED(DEFAULT_EMULATION, "$DEFAULT_EMULATION",
829 [Default emulation.])
831 case ${primary_bfd_gas}-${target_cpu_type}-${obj_format} in
832 yes-*-coff) need_bfd=yes ;;
833 no-*-coff) need_bfd=yes
834 AC_DEFINE(MANY_SEGMENTS, 1, [old COFF support?]) ;;
837 reject_dev_configs=yes
839 case ${reject_dev_configs}-${dev} in
841 AC_MSG_ERROR(GAS does not support the ${generic_target} configuration.)
845 AC_SUBST(target_cpu_type)
848 AC_SUBST(install_tooldir)
850 dnl AC_SUBST(emulation)
852 case "${primary_bfd_gas}" in
853 yes) AC_DEFINE(BFD_ASSEMBLER, 1, [Use BFD interface?])
857 # do we need the opcodes library?
858 case "${need_opcodes}" in
860 OPCODES_LIB=../opcodes/libopcodes.la
864 case "${need_bfd}" in
866 BFDLIB=../bfd/libbfd.la
867 ALL_OBJ_DEPS="$ALL_OBJ_DEPS"' ../bfd/bfd.h $(INCDIR)/symcat.h'
872 AC_SUBST(OPCODES_LIB)
874 AC_SUBST(ALL_OBJ_DEPS)
876 AC_DEFINE_UNQUOTED(TARGET_ALIAS, "${target_alias}", [Target alias.])
877 AC_DEFINE_UNQUOTED(TARGET_CANONICAL, "${target}", [Canonical target.])
878 AC_DEFINE_UNQUOTED(TARGET_CPU, "${target_cpu}", [Target CPU.])
879 AC_DEFINE_UNQUOTED(TARGET_VENDOR, "${target_vendor}", [Target vendor.])
880 AC_DEFINE_UNQUOTED(TARGET_OS, "${target_os}", [Target OS.])
887 ALL_LINGUAS="fr tr es"
893 AC_CHECK_HEADERS(string.h stdlib.h memory.h strings.h unistd.h stdarg.h varargs.h errno.h sys/types.h)
895 # Put this here so that autoconf's "cross-compiling" message doesn't confuse
896 # people who are not cross-compiling but are compiling cross-assemblers.
897 AC_MSG_CHECKING(whether compiling a cross-assembler)
898 if test "${host}" = "${target}"; then
902 AC_DEFINE(CROSS_COMPILE, 1, [Compiling cross-assembler?])
904 AC_MSG_RESULT($cross_gas)
906 dnl ansidecl.h will deal with const
911 # VMS doesn't have unlink.
912 AC_CHECK_FUNCS(unlink remove, break)
914 # Some systems don't have sbrk().
917 # do we need the math library?
918 case "${need_libm}" in
925 # Some non-ANSI preprocessors botch requoting inside strings. That's bad
926 # enough, but on some of those systems, the assert macro relies on requoting
930 # On some systems, the system header files may not declare malloc, realloc,
931 # and free. There are places where gas needs these functions to have been
932 # declared -- such as when taking their addresses.
940 #ifdef HAVE_STRINGS_H
951 GAS_CHECK_DECL_NEEDED(strstr, f, char *(*f)(), $gas_test_headers)
952 GAS_CHECK_DECL_NEEDED(malloc, f, char *(*f)(), $gas_test_headers)
953 GAS_CHECK_DECL_NEEDED(free, f, void (*f)(), $gas_test_headers)
954 GAS_CHECK_DECL_NEEDED(sbrk, f, char *(*f)(), $gas_test_headers)
955 GAS_CHECK_DECL_NEEDED(environ, f, char **f, $gas_test_headers)
957 # Does errno.h declare errno, or do we have to add a separate declaration
959 GAS_CHECK_DECL_NEEDED(errno, f, int f, [
965 dnl This must come last.
967 dnl We used to make symlinks to files in the source directory, but now
968 dnl we just use the right name for .c files, and create .h files in
969 dnl the build directory which include the right .h file. Make sure
970 dnl the old symlinks don't exist, so that a reconfigure in an existing
971 dnl directory behaves reasonably.
973 AC_OUTPUT(Makefile doc/Makefile ${GDBINIT}:gdbinit.in po/Makefile.in:po/Make-in,
974 [rm -f targ-cpu.c targ-cpu.h obj-format.h obj-format.c targ-env.h atof-targ.c itbl-cpu.h
975 echo '#include "tc-'"${target_cpu_type}"'.h"' > targ-cpu.h
976 echo '#include "obj-'"${obj_format}"'.h"' > obj-format.h
977 echo '#include "te-'"${te_file}"'.h"' > targ-env.h
978 echo '#include "itbl-'"${target_cpu_type}"'.h"' > itbl-cpu.h
979 if test "x$cgen_cpu_prefix" != x ; then
980 echo '#include "opcodes/'"${cgen_cpu_prefix}"'-desc.h"' > cgen-desc.h
983 sed -e '/POTFILES =/r po/POTFILES' po/Makefile.in > po/Makefile],
984 [target_cpu_type=${target_cpu_type}
985 cgen_cpu_prefix=${cgen_cpu_prefix}
986 obj_format=${obj_format}