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*-*-osf*) fmt=ecoff ;;
186 alpha*-*-linuxecoff*) fmt=ecoff ;;
187 alpha*-*-linux-gnu*) fmt=elf em=linux ;;
188 alpha*-*-netbsd*) fmt=elf em=nbsd ;;
189 alpha*-*-openbsd*) fmt=elf em=obsd ;;
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 ;;
220 frv-*-*) fmt=elf bfd_gas=yes ;;
222 hppa-*-linux-gnu*) case ${cpu} in
224 fmt=elf em=hppalinux64;;
228 hppa-*-*elf*) fmt=elf em=hppa ;;
229 hppa-*-lites*) fmt=elf em=hppa ;;
230 hppa-*-netbsd*) fmt=elf em=nbsd ;;
231 hppa-*-openbsd*) fmt=elf em=hppa ;;
232 hppa-*-osf*) fmt=som em=hppa ;;
233 hppa-*-rtems*) fmt=elf em=hppa ;;
234 hppa-*-hpux11*) case ${cpu} in
240 hppa-*-hpux*) fmt=som em=hppa ;;
241 hppa-*-mpeix*) fmt=som em=hppa ;;
242 hppa-*-bsd*) fmt=som em=hppa ;;
243 hppa-*-hiux*) fmt=som em=hppa ;;
245 h8300-*-rtems*) fmt=coff ;;
246 h8300-*-coff) fmt=coff ;;
247 h8300-*-elf) fmt=elf ;;
248 h8500-*-rtems*) fmt=coff ;;
249 h8500-*-coff) fmt=coff ;;
251 i370-*-elf* | i370-*-linux*) fmt=elf ;;
252 i386-ibm-aix*) fmt=coff em=i386aix ;;
253 i386-sequent-bsd*) fmt=aout em=dynix bfd_gas=yes ;;
254 i386-*-beospe*) fmt=coff em=pe bfd_gas=yes ;;
255 i386-*-beoself* | i386-*-beos*) fmt=elf bfd_gas=yes ;;
256 i386-*-bsd*) fmt=aout em=386bsd ;;
257 i386-*-netbsd0.8) fmt=aout em=386bsd ;;
258 i386-*-netbsdpe*) fmt=coff em=pe bfd_gas=yes ;;
259 i386-*-netbsd*) em=nbsd bfd_gas=yes
269 i386-*-openbsd*) fmt=aout em=nbsd bfd_gas=yes;;
270 i386-*-linux*aout* | i386-*-linux*oldld) fmt=aout em=linux ;;
271 i386-*-linux*coff*) fmt=coff em=linux ;;
272 i386-*-linux-gnu*) fmt=elf em=linux bfd_gas=yes ;;
273 x86_64-*-linux-gnu*) fmt=elf em=linux bfd_gas=yes ;;
274 i386-*-lynxos*) fmt=coff em=lynx ;;
276 i386-*-sysv[45]* | i386-*-solaris* | i386-*-elf)
277 fmt=elf bfd_gas=yes ;;
278 i386-*-freebsdaout* | i386-*-freebsd[12].* | i386-*-freebsd[12])
279 fmt=aout em=386bsd ;;
281 i386-*-coff | i386-*-sysv* | i386-*-sco3.2v5*coff | i386-*-isc*)
283 i386-*-sco3.2v5*) fmt=elf
284 if test ${this_target} = $target; then
285 AC_DEFINE(SCO_ELF, 1,
286 [Define if defaulting to ELF on SCO 5.])
289 i386-*-sco3.2*) fmt=coff ;;
290 i386-*-vsta) fmt=aout ;;
291 i386-*-msdosdjgpp* | i386-*-go32* | i386-go32-rtems*)
292 fmt=coff em=go32 bfd_gas=yes
293 AC_DEFINE(STRICTCOFF, 1, [Using strict COFF?])
295 i386-*-rtemself*) fmt=elf ;;
296 i386-*-rtemscoff*) fmt=coff ;;
297 i386-*-rtems*) fmt=elf ;;
298 i386-*-gnu*) fmt=elf ;;
300 fmt=aout em=mach bfd_gas=yes ;;
301 i386-*-msdos*) fmt=aout ;;
302 i386-*-moss*) fmt=elf ;;
303 i386-*-pe) fmt=coff em=pe bfd_gas=yes ;;
304 i386-*-cygwin*) fmt=coff em=pe bfd_gas=yes ;;
305 i386-*-interix*) fmt=coff em=interix bfd_gas=yes ;;
306 i386-*-mingw32*) fmt=coff em=pe bfd_gas=yes ;;
307 i386-*-nto-qnx*) fmt=elf ;;
308 i386-*-*nt*) fmt=coff em=pe bfd_gas=yes ;;
309 i386-*-vxworks*) fmt=aout ;;
310 i386-*-chaos) fmt=elf ;;
311 i860-stardent-sysv4* | i860-stardent-elf*)
312 fmt=elf bfd_gas=yes endian=little
313 AC_MSG_WARN(GAS support for ${generic_target} is preliminary and a work in progress) ;;
314 i960-*-bout) fmt=bout ;;
315 i960-*-coff) fmt=coff em=ic960 ;;
316 i960-*-rtems*) fmt=coff em=ic960 ;;
317 i960-*-nindy*) fmt=bout ;;
318 i960-*-vxworks4*) fmt=bout ;;
319 i960-*-vxworks5.0) fmt=bout ;;
320 i960-*-vxworks5.*) fmt=coff em=ic960 ;;
321 i960-*-vxworks*) fmt=bout ;;
322 i960-*-elf*) fmt=elf ;;
324 ia64-*-elf*) fmt=elf ;;
325 ia64-*-aix*) fmt=elf em=ia64aix ;;
326 ia64-*-linux-gnu*) fmt=elf em=linux ;;
327 ia64-*-hpux*) fmt=elf em=hpux ;;
328 ia64-*-netbsd*) fmt=elf em=nbsd ;;
330 m32r-*-*) fmt=elf bfd_gas=yes ;;
332 m68hc11-*-*|m6811-*-*|m68hc12-*-*|m6812-*-*)fmt=elf bfd_gas=yes ;;
334 m68k-*-vxworks* | m68k-ericsson-ose | m68k-*-sunos*)
336 m68k-motorola-sysv*) fmt=coff em=delta ;;
337 m68k-bull-sysv3*) fmt=coff em=dpx2 ;;
338 m68k-apollo-*) fmt=coff em=apollo ;;
339 m68k-*-sysv4*) # must be before -sysv*
341 m68k-*-elf*) fmt=elf ;;
342 m68k-*-coff | m68k-*-sysv* | m68k-*-rtemscoff*)
344 m68k-*-rtems*) fmt=elf ;;
345 m68k-*-hpux*) fmt=hp300 em=hp300 ;;
346 m68k-*-linux*aout*) fmt=aout em=linux ;;
347 m68k-*-linux-gnu*) fmt=elf em=linux ;;
348 m68k-*-gnu*) fmt=elf ;;
349 m68k-*-lynxos*) fmt=coff em=lynx ;;
350 m68k-*-netbsdelf*) fmt=elf em=nbsd bfd_gas=yes ;;
351 m68k-*-netbsdaout* | m68k-*-netbsd*)
352 fmt=aout em=nbsd bfd_gas=yes ;;
353 m68k-*-openbsd*) fmt=aout em=nbsd bfd_gas=yes ;;
354 m68k-apple-aux*) fmt=coff em=aux ;;
355 m68k-*-psos*) fmt=elf em=psos;;
357 m88k-motorola-sysv3*) fmt=coff em=delt88 ;;
358 m88k-*-coff*) fmt=coff ;;
360 mcore-*-elf) fmt=elf bfd_gas=yes ;;
361 mcore-*-pe) fmt=coff em=pe bfd_gas=yes ;;
363 # don't change em like *-*-bsd does
364 mips-dec-openbsd*) fmt=elf endian=little ;;
365 mips-dec-bsd*) fmt=aout endian=little ;;
366 mips-sony-bsd*) fmt=ecoff ;;
367 mips-*-bsd*) AC_MSG_ERROR(Unknown vendor for mips-bsd configuration.) ;;
368 mips-*-ultrix*) fmt=ecoff endian=little ;;
369 mips-*-osf*) fmt=ecoff endian=little ;;
370 mips-*-ecoff*) fmt=ecoff ;;
371 mips-*-pe*) fmt=coff endian=little em=pe ;;
372 mips-*-irix6*) fmt=elf ;;
373 mips-*-irix5*) fmt=elf ;;
374 mips-*-irix*) fmt=ecoff ;;
375 mips-*-lnews*) fmt=ecoff em=lnews ;;
376 mips-*-riscos*) fmt=ecoff ;;
377 mips*-*-linux*) fmt=elf em=tmips ;;
378 mips-*-sysv4*MP* | mips-*-gnu*)
380 mips-*-sysv*) fmt=ecoff ;;
381 mips-*-elf* | mips-*-rtems* | mips-*-netbsd* | mips-*-openbsd*)
383 mips-*-vxworks*) fmt=elf ;;
384 mmix-*-*) fmt=elf bfd_gas=yes ;;
385 mn10200-*-*) fmt=elf bfd_gas=yes ;;
386 mn10300-*-*) fmt=elf bfd_gas=yes ;;
387 openrisc-*-*) fmt=elf bfd_gas=yes ;;
388 or32-*-rtems*) fmt=coff ;;
389 or32-*-coff) fmt=coff ;;
390 or32-*-elf) fmt=elf ;;
392 ppc-*-pe | ppc-*-cygwin* | ppc-*-winnt*)
394 ppc-*-aix5*) fmt=coff em=aix5 ;;
395 ppc-*-aix*) fmt=coff ;;
396 ppc-*-beos*) fmt=coff ;;
397 ppc-*-*bsd* | ppc-*-elf* | ppc-*-eabi* | ppc-*-sysv4*)
399 ppc-*-linux-gnu*) fmt=elf
402 *) AC_MSG_ERROR(GNU/Linux must be configured big endian) ;;
405 ppc-*-solaris*) fmt=elf
406 if test ${this_target} = $target; then
407 AC_DEFINE(TARGET_SOLARIS_COMMENT, 1,
408 [Define if default target is PowerPC Solaris.])
410 if test x${endian} = xbig; then
411 AC_MSG_ERROR(Solaris must be configured little endian)
414 ppc-*-rtems*) fmt=elf ;;
415 ppc-*-macos* | ppc-*-mpw*)
417 ppc-*-netware*) fmt=elf em=ppcnw ;;
418 ppc-*-vxworks*) fmt=elf ;;
419 ppc-*-windiss*) fmt=elf ;;
421 s390x-*-linux-gnu*) fmt=elf em=linux ;;
422 s390-*-linux-gnu*) fmt=elf em=linux ;;
424 sh*-*-linux*) fmt=elf em=linux
431 sh5*-*-netbsd*) fmt=elf em=nbsd ;;
432 sh64*-*-netbsd*) fmt=elf em=nbsd ;;
433 sh*-*-netbsdelf*) fmt=elf em=nbsd ;;
434 sh-*-elf*) fmt=elf ;;
435 sh-*-coff*) fmt=coff ;;
436 sh-*-pe*) fmt=coff em=pe bfd_gas=yes endian=little ;;
437 sh-*-rtemself*) fmt=elf ;;
438 sh-*-rtems*) fmt=coff ;;
440 sh64-*-elf*) fmt=elf ;;
441 ns32k-pc532-mach* | ns32k-pc532-ux*) fmt=aout em=pc532mach ;;
442 ns32k-*-netbsd* | ns32k-pc532-lites*) fmt=aout em=nbsd532 ;;
443 ns32k-pc532-openbsd*) fmt=aout em=nbsd532 ;;
445 sparc-*-rtemsaout*) fmt=aout ;;
446 sparc-*-rtemself*) fmt=elf ;;
447 sparc-*-rtems*) fmt=elf ;;
448 sparc-*-sunos4*) fmt=aout em=sun3 ;;
449 sparc-*-aout | sparc*-*-vxworks*)
450 fmt=aout em=sparcaout ;;
451 sparc-*-coff) fmt=coff ;;
452 sparc-*-linux*aout*) fmt=aout em=linux ;;
453 sparc-*-linux-gnu*) fmt=elf em=linux ;;
454 sparc-*-lynxos*) fmt=coff em=lynx ;;
455 sparc-fujitsu-none) fmt=aout ;;
456 sparc-*-elf | sparc-*-sysv4* | sparc-*-solaris*)
458 sparc-*-netbsd*) em=nbsd bfd_gas=yes
467 sparc-*-openbsd*) em=nbsd
474 strongarm-*-coff) fmt=coff ;;
475 strongarm-*-elf) fmt=elf ;;
476 xscale-*-coff) fmt=coff ;;
477 xscale-*-elf) fmt=elf ;;
479 tic30-*-*aout*) fmt=aout bfd_gas=yes ;;
480 tic30-*-*coff*) fmt=coff bfd_gas=yes ;;
481 tic54x-*-* | c54x*-*-*)
482 fmt=coff bfd_gas=yes need_libm=yes;;
483 tic80-*-*) fmt=coff ;;
485 v850-*-*) fmt=elf bfd_gas=yes ;;
486 v850e-*-*) fmt=elf bfd_gas=yes ;;
487 v850ea-*-*) fmt=elf bfd_gas=yes ;;
489 vax-*-netbsdelf*) fmt=elf em=nbsd bfd_gas=yes ;;
490 vax-*-netbsdaout* | vax-*-netbsd*)
492 vax-*-bsd* | vax-*-ultrix*)
494 vax-*-vms) fmt=vms ;;
498 xstormy16-*-*) fmt=elf bfd_gas=yes ;;
500 z8k-*-coff | z8k-*-sim)
503 *-*-aout | *-*-scout)
505 *-*-freebsd*) fmt=elf em=freebsd bfd_gas=yes ;;
510 *-*-generic) fmt=generic ;;
511 *-*-xray | *-*-hms) fmt=coff ;;
513 *-*-elf | *-*-sysv4* | *-*-solaris*)
514 AC_MSG_WARN(GAS support for ${generic_target} is incomplete.)
516 *-*-vxworks) fmt=aout ;;
517 *-*-netware) fmt=elf ;;
520 if test ${this_target} = $target ; then
522 if test x${endian} = xbig; then
524 elif test x${endian} = xlittle; then
527 if test x${endian_def} != x; then
528 AC_DEFINE_UNQUOTED(TARGET_BYTES_BIG_ENDIAN, $endian_def,
529 [Define as 1 if big endian.])
533 case ${cpu_type}-${fmt} in
534 alpha*-*) bfd_gas=yes ;;
535 arm-*) bfd_gas=yes ;;
537 # i386-aout) bfd_gas=preferred ;;
538 ia64*-*) bfd_gas=yes ;;
539 mips-*) bfd_gas=yes ;;
540 ns32k-*) bfd_gas=yes ;;
541 pdp11-*) bfd_gas=yes ;;
542 ppc-*) bfd_gas=yes ;;
543 sparc-*) bfd_gas=yes ;;
544 strongarm-*) bfd_gas=yes ;;
545 xscale-*) bfd_gas=yes ;;
546 *-elf) bfd_gas=yes ;;
547 *-ecoff) bfd_gas=yes ;;
548 *-som) bfd_gas=yes ;;
549 #enable bfd for coff and aout to allow testing if a bfd target is
550 #the primary target, but not for coff or aout as the primary target
551 i386-coff) if test x${primary_bfd_gas} = xyes; then bfd_gas=yes; fi ;;
552 i386-aout) if test x${primary_bfd_gas} = xyes; then bfd_gas=yes; fi ;;
556 # Other random stuff.
558 # Do we need the opcodes library?
566 case "${enable_shared}" in
567 yes) shared_opcodes=true ;;
568 *opcodes*) shared_opcodes=true ;;
569 *) shared_opcodes=false ;;
571 if test "${shared_opcodes}" = "true"; then
572 # A shared libopcodes must be linked against libbfd.
578 # Any other special object files needed ?
580 fr30 | m32r | openrisc)
588 case ${extra_objects} in
590 *) extra_objects="$extra_objects m68k-parse.o" ;;
595 echo ${extra_objects} | grep -s "itbl-parse.o"
596 if test $? -ne 0 ; then
597 extra_objects="$extra_objects itbl-parse.o"
600 echo ${extra_objects} | grep -s "itbl-lex.o"
601 if test $? -ne 0 ; then
602 extra_objects="$extra_objects itbl-lex.o"
605 echo ${extra_objects} | grep -s "itbl-ops.o"
606 if test $? -ne 0 ; then
607 extra_objects="$extra_objects itbl-ops.o"
612 if test $this_target = $target ; then
613 AC_DEFINE_UNQUOTED(DEFAULT_ARCH, "${arch}", [Default architecture.])
625 if test $using_cgen = yes ; then
626 case "x${extra_objects}" in
628 *) extra_objects="$extra_objects cgen.o" ;;
632 # See if we really can support this configuration with the emulation code.
634 if test $this_target = $target ; then
635 primary_bfd_gas=$bfd_gas
639 if test $bfd_gas = no ; then
640 # Can't support other configurations this way.
643 elif test $bfd_gas = no ; then
644 # Can't support this configuration.
648 # From target name and format, produce a list of supported emulations.
650 case ${generic_target}-${fmt} in
651 mips-*-irix5*-*) emulation="mipsbelf mipslelf mipself mipsbecoff mipslecoff mipsecoff" ;;
652 mips*-*-linux*-*) case "$endian" in
653 big) emulation="mipsbelf mipslelf mipself" ;;
654 *) emulation="mipslelf mipsbelf mipself" ;;
656 mips-*-lnews*-ecoff) ;;
657 mips-*-*-ecoff) case "$endian" in
658 big) emulation="mipsbecoff mipslecoff mipsecoff" ;;
659 *) emulation="mipslecoff mipsbecoff mipsecoff" ;;
661 mips-*-*-elf) case "$endian" in
662 big) emulation="mipsbelf mipslelf mipself" ;;
663 *) emulation="mipslelf mipsbelf mipself" ;;
665 mips-*-sysv4*MP*-*) emulation="mipsbelf mipslelf mipself mipsbecoff mipslecoff mipsecoff" ;;
666 # i386-pc-pe-coff != i386-pc-coff.
668 # Uncommenting the next line will turn on support for i386 AOUT
669 # for the default linux configuration
670 # i386-*-linux*-elf) emulation="i386elf i386aout" ;;
672 i386-*-aout) emulation="i386aout" ;;
673 i386-*-coff) emulation="i386coff" ;;
674 i386-*-elf) emulation="i386elf" ;;
676 # Always all formats. The first stated emulation becomes the default.
677 cris-*-*aout*) emulation="crisaout criself" ;;
678 cris-*-*) emulation="criself crisaout" ;;
681 emulations="$emulations $emulation"
685 # Turn on all targets if possible
686 if test ${all_targets} = "yes"; then
687 case ${target_cpu_type} in
689 case ${obj_format} in
691 emulations="$emulations i386coff i386elf"
694 emulations="$emulations i386aout i386elf"
697 emulations="$emulations i386aout i386coff"
704 # Assign floating point type. Most processors with FP support
705 # IEEE FP. On those that don't support FP at all, usually IEEE
707 case ${target_cpu} in
708 vax | tahoe ) atof=${target_cpu} ;;
713 case "${obj_format}" in
714 "") AC_MSG_ERROR(GAS does not know what format to use for target ${target}) ;;
717 # Unfortunately the cpu in cpu-opc.h file isn't always $(TARGET_CPU).
719 if test $using_cgen = yes ; then
720 case ${target_cpu} in
721 *) cgen_cpu_prefix=${target_cpu} ;;
723 AC_SUBST(cgen_cpu_prefix)
724 AC_DEFINE(USING_CGEN, 1, [Using cgen code?])
728 dnl Make sure the desired support files exist.
731 if test ! -r ${srcdir}/config/tc-${target_cpu_type}.c; then
732 AC_MSG_ERROR(GAS does not support target CPU ${target_cpu_type})
735 if test ! -r ${srcdir}/config/obj-${obj_format}.c; then
736 AC_MSG_ERROR(GAS does not have support for object file format ${obj_format})
739 case ${user_bfd_gas}-${primary_bfd_gas} in
741 # We didn't override user's choice.
744 AC_MSG_WARN(Use of BFD is required for ${target}; overriding config options.)
756 # User specified nothing.
760 # Some COFF configurations want these random other flags set.
761 case ${obj_format} in
763 case ${target_cpu_type} in
764 i386) AC_DEFINE(I386COFF, 1, [Using i386 COFF?]) ;;
765 m68k) AC_DEFINE(M68KCOFF, 1, [Using m68k COFF?]) ;;
766 m88k) AC_DEFINE(M88KCOFF, 1, [Using m88k COFF?]) ;;
771 # Getting this done right is going to be a bitch. Each configuration specified
772 # with --enable-targets=... should be checked for environment, format, cpu, and
775 # For each configuration, the necessary object file support code must be linked
776 # in. This might be only one, it might be up to four. The necessary emulation
777 # code needs to be provided, too.
779 # And then there's "--enable-targets=all"....
781 # For now, just always do it for MIPS ELF or ECOFF configurations. Sigh.
783 formats="${obj_format}"
787 for em in . $emulations ; do
790 mipsbelf | mipslelf | mipself)
791 fmt=elf file=mipself ;;
792 mipsbecoff | mipslecoff | mipsecoff)
793 fmt=ecoff file=mipsecoff ;;
801 formats="$formats $fmt"
802 emfiles="$emfiles e-$file.o"
803 EMULATIONS="$EMULATIONS &$em,"
807 if test `set . $formats ; shift ; echo $#` -gt 1 ; then
808 for fmt in $formats ; do
810 aout) AC_DEFINE(OBJ_MAYBE_AOUT, 1, [a.out support?]) ;;
811 bout) AC_DEFINE(OBJ_MAYBE_BOUT, 1, [b.out support?]) ;;
812 coff) AC_DEFINE(OBJ_MAYBE_COFF, 1, [COFF support?]) ;;
813 ecoff) AC_DEFINE(OBJ_MAYBE_ECOFF, 1, [ECOFF support?]) ;;
814 elf) AC_DEFINE(OBJ_MAYBE_ELF, 1, [ELF support?]) ;;
815 generic) AC_DEFINE(OBJ_MAYBE_GENERIC, 1, [generic support?]) ;;
816 hp300) AC_DEFINE(OBJ_MAYBE_HP300, 1, [HP300 support?]) ;;
817 ieee) AC_DEFINE(OBJ_MAYBE_IEEE, 1, [IEEE support?]) ;;
818 som) AC_DEFINE(OBJ_MAYBE_SOM, 1, [SOM support?]) ;;
819 vms) AC_DEFINE(OBJ_MAYBE_VMS, 1, [VMS support?]) ;;
821 extra_objects="$extra_objects obj-$fmt.o"
825 if test `set . $emfiles ; shift ; echo $#` -gt 0 ; then
826 DEFAULT_EMULATION=`set . $emulations ; echo $2`
827 # e-mips* has more than one emulation per file, e-i386* has just one at the
828 # moment. If only one emulation is specified, then don't define
829 # USE_EMULATIONS or include any of the e-files as they will only be bloat.
830 case "${obj_format}${emfiles}" in
832 extra_objects="$extra_objects $emfiles"
833 AC_DEFINE(USE_EMULATIONS, 1, [Use emulation support?]) ;;
836 AC_SUBST(extra_objects)
837 AC_DEFINE_UNQUOTED(EMULATIONS, $EMULATIONS, [Supported emulations.])
838 AC_DEFINE_UNQUOTED(DEFAULT_EMULATION, "$DEFAULT_EMULATION",
839 [Default emulation.])
841 case ${primary_bfd_gas}-${target_cpu_type}-${obj_format} in
842 yes-*-coff) need_bfd=yes ;;
843 no-*-coff) need_bfd=yes
844 AC_DEFINE(MANY_SEGMENTS, 1, [old COFF support?]) ;;
847 reject_dev_configs=yes
849 case ${reject_dev_configs}-${dev} in
851 AC_MSG_ERROR(GAS does not support the ${generic_target} configuration.)
855 AC_SUBST(target_cpu_type)
858 AC_SUBST(install_tooldir)
860 dnl AC_SUBST(emulation)
862 case "${primary_bfd_gas}" in
863 yes) AC_DEFINE(BFD_ASSEMBLER, 1, [Use BFD interface?])
867 # do we need the opcodes library?
868 case "${need_opcodes}" in
870 OPCODES_LIB=../opcodes/libopcodes.la
874 case "${need_bfd}" in
876 BFDLIB=../bfd/libbfd.la
877 ALL_OBJ_DEPS="$ALL_OBJ_DEPS"' ../bfd/bfd.h $(INCDIR)/symcat.h'
882 AC_SUBST(OPCODES_LIB)
884 AC_SUBST(ALL_OBJ_DEPS)
886 AC_DEFINE_UNQUOTED(TARGET_ALIAS, "${target_alias}", [Target alias.])
887 AC_DEFINE_UNQUOTED(TARGET_CANONICAL, "${target}", [Canonical target.])
888 AC_DEFINE_UNQUOTED(TARGET_CPU, "${target_cpu}", [Target CPU.])
889 AC_DEFINE_UNQUOTED(TARGET_VENDOR, "${target_vendor}", [Target vendor.])
890 AC_DEFINE_UNQUOTED(TARGET_OS, "${target_os}", [Target OS.])
897 ALL_LINGUAS="fr tr es"
903 AC_CHECK_HEADERS(string.h stdlib.h memory.h strings.h unistd.h stdarg.h varargs.h errno.h sys/types.h)
905 # Put this here so that autoconf's "cross-compiling" message doesn't confuse
906 # people who are not cross-compiling but are compiling cross-assemblers.
907 AC_MSG_CHECKING(whether compiling a cross-assembler)
908 if test "${host}" = "${target}"; then
912 AC_DEFINE(CROSS_COMPILE, 1, [Compiling cross-assembler?])
914 AC_MSG_RESULT($cross_gas)
916 dnl ansidecl.h will deal with const
921 # VMS doesn't have unlink.
922 AC_CHECK_FUNCS(unlink remove, break)
924 # Some systems don't have sbrk().
927 # do we need the math library?
928 case "${need_libm}" in
935 # Some non-ANSI preprocessors botch requoting inside strings. That's bad
936 # enough, but on some of those systems, the assert macro relies on requoting
940 # On some systems, the system header files may not declare malloc, realloc,
941 # and free. There are places where gas needs these functions to have been
942 # declared -- such as when taking their addresses.
950 #ifdef HAVE_STRINGS_H
961 GAS_CHECK_DECL_NEEDED(strstr, f, char *(*f)(), $gas_test_headers)
962 GAS_CHECK_DECL_NEEDED(malloc, f, char *(*f)(), $gas_test_headers)
963 GAS_CHECK_DECL_NEEDED(free, f, void (*f)(), $gas_test_headers)
964 GAS_CHECK_DECL_NEEDED(sbrk, f, char *(*f)(), $gas_test_headers)
965 GAS_CHECK_DECL_NEEDED(environ, f, char **f, $gas_test_headers)
967 # Does errno.h declare errno, or do we have to add a separate declaration
969 GAS_CHECK_DECL_NEEDED(errno, f, int f, [
975 dnl This must come last.
977 dnl We used to make symlinks to files in the source directory, but now
978 dnl we just use the right name for .c files, and create .h files in
979 dnl the build directory which include the right .h file. Make sure
980 dnl the old symlinks don't exist, so that a reconfigure in an existing
981 dnl directory behaves reasonably.
983 AC_OUTPUT(Makefile doc/Makefile ${GDBINIT}:gdbinit.in po/Makefile.in:po/Make-in,
984 [rm -f targ-cpu.c targ-cpu.h obj-format.h obj-format.c targ-env.h atof-targ.c itbl-cpu.h
985 echo '#include "tc-'"${target_cpu_type}"'.h"' > targ-cpu.h
986 echo '#include "obj-'"${obj_format}"'.h"' > obj-format.h
987 echo '#include "te-'"${te_file}"'.h"' > targ-env.h
988 echo '#include "itbl-'"${target_cpu_type}"'.h"' > itbl-cpu.h
989 if test "x$cgen_cpu_prefix" != x ; then
990 echo '#include "opcodes/'"${cgen_cpu_prefix}"'-desc.h"' > cgen-desc.h
993 sed -e '/POTFILES =/r po/POTFILES' po/Makefile.in > po/Makefile],
994 [target_cpu_type=${target_cpu_type}
995 cgen_cpu_prefix=${cgen_cpu_prefix}
996 obj_format=${obj_format}