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
11 dnl Autoconf 2.57 will find the aux dir without this. However, unless
12 dnl we specify this explicitly, automake-1.7 will assume that ylwrap is in
13 dnl gas/ instead of gas/../.
19 BFD_VERSION=`sed -n -e 's/^.._INIT_AUTOMAKE.*,[ ]*\([^ ]*\)[ ]*).*/\1/p' < ${srcdir}/../bfd/configure.in`
21 AM_INIT_AUTOMAKE(gas, ${BFD_VERSION})
26 AC_ARG_ENABLE(bfd-assembler,
27 [ --enable-bfd-assembler use BFD back end for writing object files],
28 [case "${enableval}" in
29 yes) need_bfd=yes user_bfd_gas=yes ;;
30 no) user_bfd_gas=no ;;
31 *) AC_MSG_ERROR(bad value ${enableval} given for bfd-assembler option) ;;
33 AC_ARG_ENABLE(targets,
34 [ targets alternative target configurations besides the primary],
35 [case "${enableval}" in
36 yes | "") AC_ERROR(enable-targets option must specify target names or 'all')
38 no) enable_targets= ;;
39 *) enable_targets=$enableval ;;
41 AC_ARG_ENABLE(commonbfdlib,
42 [ --enable-commonbfdlib build shared BFD/opcodes/libiberty library],
43 [case "${enableval}" in
44 yes) commonbfdlib=true ;;
45 no) commonbfdlib=false ;;
46 *) AC_MSG_ERROR([bad value ${enableval} for BFD commonbfdlib option]) ;;
51 build_warnings="-W -Wall -Wstrict-prototypes -Wmissing-prototypes"
52 AC_ARG_ENABLE(build-warnings,
53 [ --enable-build-warnings Enable build-time compiler warnings if gcc is used],
54 [case "${enableval}" in
56 no) build_warnings="-w";;
57 ,*) t=`echo "${enableval}" | sed -e "s/,/ /g"`
58 build_warnings="${build_warnings} ${t}";;
59 *,) t=`echo "${enableval}" | sed -e "s/,/ /g"`
60 build_warnings="${t} ${build_warnings}";;
61 *) build_warnings=`echo "${enableval}" | sed -e "s/,/ /g"`;;
63 if test x"$silent" != x"yes" && test x"$build_warnings" != x""; then
64 echo "Setting warning flags = $build_warnings" 6>&1
67 if test "x${build_warnings}" != x -a "x$GCC" = xyes ; then
68 WARN_CFLAGS="${build_warnings}"
72 # Generate a header file
73 AM_CONFIG_HEADER(config.h:config.in)
75 # If we are on a DOS filesystem, we must use gdb.ini rather than
78 *-*-msdos* | *-*-go32* | *-*-mingw32* | *-*-windows*)
80 AC_CONFIG_FILES(gdb.ini:gdbinit.in)
84 AC_CONFIG_FILES(.gdbinit:gdbinit.in)
91 # Makefile target for installing gas in $(tooldir)/bin.
92 install_tooldir=install-exec-tooldir
96 if test -n "$enable_targets" ; then
97 for t in `echo $enable_targets | sed 's/,/ /g'`; do
98 if test $t = "all"; then
102 result=`$ac_config_sub $t 2>/dev/null`
103 if test -n "$result" ; then
104 canon_targets="$canon_targets $result"
106 # # Permit "all", etc. We don't support it yet though.
107 # canon_targets="$canon_targets $t"
110 GAS_UNIQ(canon_targets)
115 for this_target in $target $canon_targets ; do
118 eval `echo $this_target | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/cpu=\1 vendor=\2 os=\3/'`
121 # Check for architecture variants.
122 # Note: This table is alpha-sorted, please try to keep it that way.
126 am33_2.0) cpu_type=mn10300 endian=little ;;
127 alpha*) cpu_type=alpha ;;
128 arm*be|xscale*be|strongarm*be | \
129 arm*b|xscale*b|strongarm*b) cpu_type=arm endian=big ;;
130 arm*|xscale*|strongarm*) cpu_type=arm endian=little ;;
131 c4x*) cpu_type=tic4x ;;
132 crisv32) cpu_type=cris arch=crisv32
133 AC_DEFINE_UNQUOTED(DEFAULT_CRIS_ARCH, $arch,
134 [Default CRIS architecture.])
136 crx*) cpu_type=crx endian=little ;;
137 hppa*) cpu_type=hppa ;;
139 i[3-7]86) cpu_type=i386 arch=i386;;
140 ia64) cpu_type=ia64 ;;
141 ip2k) cpu_type=ip2k endian=big ;;
142 iq2000) cpu_type=iq2000 endian=big ;;
143 m32r) cpu_type=m32r target_cpu=m32r endian=big ;;
144 m32rle) cpu_type=m32r target_cpu=m32r endian=little ;;
145 m6811|m6812|m68hc12) cpu_type=m68hc11 ;;
146 m680[012346]0) cpu_type=m68k ;;
148 m68008) cpu_type=m68k ;;
149 m683??) cpu_type=m68k ;;
150 m5200) cpu_type=m68k ;;
151 m8*) cpu_type=m88k ;;
152 maxq) cpu_type=maxq ;;
153 mips*el) cpu_type=mips endian=little ;;
154 mips*) cpu_type=mips endian=big ;;
155 or32*) cpu_type=or32 endian=big ;;
156 pjl*) cpu_type=pj endian=little ;;
157 pj*) cpu_type=pj endian=big ;;
158 powerpc*le*) cpu_type=ppc endian=little ;;
159 powerpc*) cpu_type=ppc endian=big ;;
160 rs6000*) cpu_type=ppc ;;
161 s390x*) cpu_type=s390 arch=s390x ;;
162 s390*) cpu_type=s390 arch=s390 ;;
163 sh5*) cpu_type=sh64 endian=big ;;
164 sh5le*) cpu_type=sh64 endian=little ;;
165 sh64*) cpu_type=sh64 endian=big ;;
166 sh64le*) cpu_type=sh64 endian=little ;;
167 sh*le) cpu_type=sh endian=little ;;
168 sh*) cpu_type=sh endian=big ;;
169 sparclite*) cpu_type=sparc arch=sparclite ;;
170 sparclet*) cpu_type=sparc arch=sparclet ;;
171 sparc64*) cpu_type=sparc arch=v9-64 ;;
172 sparc86x*) cpu_type=sparc arch=sparc86x ;;
173 sparc*) cpu_type=sparc arch=sparclite ;; # ??? See tc-sparc.c.
174 v850*) cpu_type=v850 ;;
175 x86_64) cpu_type=i386 arch=x86_64;;
176 xtensa*) cpu_type=xtensa arch=xtensa ;;
177 *) cpu_type=${cpu} ;;
180 if test ${this_target} = $target ; then
181 target_cpu_type=${cpu_type}
182 elif test ${target_cpu_type} != ${cpu_type} ; then
186 generic_target=${cpu_type}-$vendor-$os
191 # Assign object format.
192 # Note: This table is alpha-sorted, please try to keep it that way.
193 case ${generic_target} in
194 a29k-*-coff) fmt=coff ;;
195 a29k-amd-udi) fmt=coff ;;
196 a29k-amd-ebmon) fmt=coff ;;
197 a29k-nyu-sym1) fmt=coff ;;
198 a29k-*-rtems*) fmt=coff ;;
199 a29k-*-vxworks*) fmt=coff ;;
201 alpha*-*-*vms*) fmt=evax ;;
202 alpha*-*-osf*) fmt=ecoff ;;
203 alpha*-*-linuxecoff*) fmt=ecoff ;;
204 alpha*-*-linux-gnu*) fmt=elf em=linux ;;
205 alpha*-*-netbsd*) fmt=elf em=nbsd ;;
206 alpha*-*-openbsd*) fmt=elf em=obsd ;;
208 arc-*-elf*) fmt=elf ;;
210 arm-*-aout) fmt=aout ;;
211 arm-*-coff | thumb-*-coff) fmt=coff ;;
212 arm-*-rtems* | thumb-*-rtems*) fmt=elf ;;
213 arm-*-elf | thumb-*-elf) fmt=elf ;;
214 arm*-*-eabi*) fmt=elf ;;
215 arm*-*-symbianelf*) fmt=elf em=symbian ;;
216 arm-*-kaos*) fmt=elf ;;
217 arm*-*-conix*) fmt=elf ;;
218 arm-*-linux*aout*) fmt=aout em=linux ;;
219 arm*-*-linux-gnueabi*) fmt=elf em=armlinuxeabi ;;
220 arm*-*-linux-gnu*) fmt=elf em=linux ;;
221 arm*-*-uclinux*) fmt=elf em=linux ;;
222 arm-*-netbsdelf*) fmt=elf em=nbsd ;;
223 arm-*-*n*bsd*) fmt=aout em=nbsd ;;
224 arm-**-nto*) fmt=elf ;;
225 arm-epoc-pe | thumb-epoc-pe) fmt=coff em=epoc-pe ;;
226 arm-wince-pe | arm-*-wince) fmt=coff em=wince-pe ;;
227 arm-*-pe | thumb-*-pe) fmt=coff em=pe ;;
228 arm-*-riscix*) fmt=aout em=riscix ;;
232 cris-*-linux-gnu* | crisv32-*-linux-gnu*)
233 fmt=multi bfd_gas=yes em=linux ;;
234 cris-*-* | crisv32-*-*) fmt=multi bfd_gas=yes ;;
236 crx-*-elf*) fmt=elf ;;
243 frv-*-*linux*) fmt=elf em=linux;;
246 hppa-*-linux*) case ${cpu} in
247 hppa*64*) fmt=elf em=hppalinux64;;
248 hppa*) fmt=elf em=linux;;
250 hppa-*-*elf*) fmt=elf em=hppa ;;
251 hppa-*-lites*) fmt=elf em=hppa ;;
252 hppa-*-netbsd*) fmt=elf em=nbsd ;;
253 hppa-*-openbsd*) fmt=elf em=hppa ;;
254 hppa-*-osf*) fmt=som em=hppa ;;
255 hppa-*-rtems*) fmt=elf em=hppa ;;
256 hppa-*-hpux11*) case ${cpu} in
257 hppa*64*) fmt=elf em=hppa64 ;;
258 hppa*) fmt=som em=hppa ;;
260 hppa-*-hpux*) fmt=som em=hppa ;;
261 hppa-*-mpeix*) fmt=som em=hppa ;;
262 hppa-*-bsd*) fmt=som em=hppa ;;
263 hppa-*-hiux*) fmt=som em=hppa ;;
265 h8300-*-rtems*) fmt=coff ;;
266 h8300-*-coff) fmt=coff ;;
267 h8300-*-elf) fmt=elf ;;
268 h8500-*-rtems*) fmt=coff ;;
269 h8500-*-coff) fmt=coff ;;
271 i370-*-elf* | i370-*-linux*) fmt=elf ;;
272 i386-ibm-aix*) fmt=coff em=i386aix ;;
273 i386-sequent-bsd*) fmt=aout em=dynix ;;
274 i386-*-beospe*) fmt=coff em=pe ;;
275 i386-*-beos*) fmt=elf ;;
276 i386-*-coff) fmt=coff ;;
277 i386-*-elf) fmt=elf ;;
278 i386-*-kaos*) fmt=elf ;;
279 i386-*-bsd*) fmt=aout em=386bsd ;;
280 i386-*-netbsd0.8) fmt=aout em=386bsd ;;
281 i386-*-netbsdpe*) fmt=coff em=pe ;;
282 i386-*-netbsd*-gnu* | \
283 i386-*-knetbsd*-gnu | \
284 i386-*-netbsdelf*) fmt=elf em=nbsd ;;
285 i386-*-*n*bsd*) case ${cpu} in
286 x86_64) fmt=elf em=nbsd ;;
287 *) fmt=aout em=nbsd ;;
289 i386-*-linux*aout*) fmt=aout em=linux ;;
290 i386-*-linux*oldld) fmt=aout em=linux ;;
291 i386-*-linux*coff*) fmt=coff em=linux ;;
292 i386-*-linux-gnu*) fmt=elf em=linux ;;
293 x86_64-*-linux-gnu*) fmt=elf em=linux ;;
294 i386-*-lynxos*) fmt=elf em=lynx bfd_gas=yes ;;
296 i386-*-sysv[45]*) fmt=elf ;;
297 i386-*-solaris*) fmt=elf ;;
298 i386-*-freebsdaout*) fmt=aout em=386bsd ;;
299 i386-*-freebsd[12].*) fmt=aout em=386bsd ;;
300 i386-*-freebsd[12]) fmt=aout em=386bsd ;;
302 i386-*-freebsd* | i386-*-kfreebsd*-gnu)
303 fmt=elf em=freebsd ;;
304 i386-*-sysv*) fmt=coff ;;
305 i386-*-sco3.2v5*coff) fmt=coff ;;
306 i386-*-isc*) fmt=coff ;;
307 i386-*-sco3.2v5*) fmt=elf
308 if test ${this_target} = $target; then
309 AC_DEFINE(SCO_ELF, 1, [Define if defaulting to ELF on SCO 5.])
311 i386-*-sco3.2*) fmt=coff ;;
312 i386-*-vsta) fmt=aout ;;
315 | i386-go32-rtems*) fmt=coff em=go32
316 AC_DEFINE(STRICTCOFF, 1, [Using strict COFF?]) ;;
317 i386-*-rtemself*) fmt=elf ;;
318 i386-*-rtemscoff*) fmt=coff ;;
319 i386-*-rtems*) fmt=elf ;;
320 i386-*-gnu*) fmt=elf ;;
321 i386-*-mach*) fmt=aout em=mach ;;
322 i386-*-msdos*) fmt=aout ;;
323 i386-*-moss*) fmt=elf ;;
324 i386-*-pe) fmt=coff em=pe ;;
325 i386-*-cygwin*) fmt=coff em=pe ;;
326 i386-*-interix*) fmt=coff em=interix ;;
327 i386-*-mingw32*) fmt=coff em=pe ;;
328 i386-*-nto-qnx*) fmt=elf ;;
329 i386-*-*nt*) fmt=coff em=pe ;;
330 i386-*-chaos) fmt=elf ;;
332 i860-*-*) fmt=elf endian=little
333 AC_MSG_WARN(GAS support for ${generic_target} is preliminary and a work in progress) ;;
334 i960-*-bout) fmt=bout ;;
335 i960-*-coff) fmt=coff em=ic960 ;;
336 i960-*-rtems*) fmt=coff em=ic960 ;;
337 i960-*-nindy*) fmt=bout ;;
338 i960-*-vxworks5.0) fmt=bout ;;
339 i960-*-vxworks5.*) fmt=coff em=ic960 ;;
340 i960-*-vxworks*) fmt=bout ;;
341 i960-*-elf*) fmt=elf ;;
343 ia64-*-elf*) fmt=elf ;;
344 ia64-*-aix*) fmt=elf em=ia64aix ;;
345 ia64-*-linux-gnu*) fmt=elf em=linux ;;
346 ia64-*-hpux*) fmt=elf em=hpux ;;
347 ia64-*-netbsd*) fmt=elf em=nbsd ;;
351 iq2000-*-elf) fmt=elf bfd_gas=yes ;;
353 m32r-*-elf*) fmt=elf ;;
354 m32r-*-linux*) fmt=elf em=linux;;
356 m68hc11-*-* | m6811-*-*) fmt=elf ;;
357 m68hc12-*-* | m6812-*-*) fmt=elf ;;
359 m68k-*-vxworks*) fmt=aout em=sun3 ;;
360 m68k-ericsson-ose) fmt=aout em=sun3 ;;
361 m68k-*-sunos*) fmt=aout em=sun3 ;;
362 m68k-motorola-sysv*) fmt=coff em=delta ;;
363 m68k-bull-sysv3*) fmt=coff em=dpx2 ;;
364 m68k-apollo-*) fmt=coff em=apollo ;;
365 m68k-*-elf*) fmt=elf ;;
366 m68k-*-sysv4*) fmt=elf em=svr4 ;;
367 m68k-*-sysv*) fmt=coff ;;
368 m68k-*-coff | m68k-*-rtemscoff*) fmt=coff ;;
369 m68k-*-rtems*) fmt=elf ;;
370 m68k-*-hpux*) fmt=hp300 em=hp300 ;;
371 m68k-*-linux*aout*) fmt=aout em=linux ;;
372 m68k-*-linux-gnu*) fmt=elf em=linux ;;
373 m68k-*-uclinux*) fmt=elf ;;
374 m68k-*-gnu*) fmt=elf ;;
375 m68k-*-lynxos*) fmt=coff em=lynx ;;
376 m68k-*-netbsdelf*) fmt=elf em=nbsd ;;
377 m68k-*-netbsd*) fmt=aout em=nbsd bfd_gas=yes ;;
378 m68k-*-openbsd*) fmt=aout em=nbsd bfd_gas=yes ;;
379 m68k-apple-aux*) fmt=coff em=aux ;;
380 m68k-*-psos*) fmt=elf em=psos;;
382 m88k-motorola-sysv3*) fmt=coff em=delt88 ;;
383 m88k-*-coff*) fmt=coff ;;
385 maxq-*-coff) fmt=coff bfd_gas=yes ;;
387 mcore-*-elf) fmt=elf ;;
388 mcore-*-pe) fmt=coff em=pe bfd_gas=yes ;;
390 # don't change em like *-*-bsd does
391 mips-dec-openbsd*) fmt=elf endian=little ;;
392 mips-sony-bsd*) fmt=ecoff ;;
394 AC_MSG_ERROR(Unknown vendor for mips-bsd configuration.) ;;
395 mips-*-ultrix*) fmt=ecoff endian=little ;;
396 mips-*-osf*) fmt=ecoff endian=little ;;
397 mips-*-ecoff*) fmt=ecoff ;;
398 mips-*-pe*) fmt=coff endian=little em=pe ;;
399 mips-*-irix6*) fmt=elf em=irix ;;
400 mips-*-irix5*) fmt=elf em=irix ;;
401 mips-*-irix*) fmt=ecoff em=irix ;;
402 mips-*-lnews*) fmt=ecoff em=lnews ;;
403 mips-*-riscos*) fmt=ecoff ;;
404 mips*-*-linux*) fmt=elf em=tmips ;;
405 mips-*-sysv4*MP* | mips-*-gnu*) fmt=elf em=tmips ;;
406 mips-*-sysv*) fmt=ecoff ;;
407 mips-*-elf* | mips-*-rtems*) fmt=elf ;;
408 mips-*-netbsd*) fmt=elf ;;
409 mips-*-openbsd*) fmt=elf ;;
412 mn10200-*-*) fmt=elf ;;
413 # cpu_type for am33_2.0 is set to mn10300
414 mn10300-*-linux*) fmt=elf bfd_gas=yes em=linux ;;
415 mn10300-*-*) fmt=elf ;;
417 msp430-*-*) fmt=elf ;;
419 ns32k-pc532-mach*) fmt=aout em=pc532mach ;;
420 ns32k-pc532-ux*) fmt=aout em=pc532mach ;;
421 ns32k-pc532-lites*) fmt=aout em=nbsd532 ;;
422 ns32k-*-*n*bsd*) fmt=aout em=nbsd532 ;;
424 openrisc-*-*) fmt=elf ;;
425 or32-*-rtems*) fmt=elf ;;
426 or32-*-coff) fmt=coff ;;
427 or32-*-elf) fmt=elf ;;
431 ppc-*-pe | ppc-*-cygwin*) fmt=coff em=pe ;;
432 ppc-*-winnt*) fmt=coff em=pe ;;
434 ppc-*-aix5.[01]) fmt=coff em=aix5 ;;
436 ppc-*-aix5.*) fmt=coff em=aix5
437 AC_DEFINE(AIX_WEAK_SUPPORT, 1,
438 [Define if using AIX 5.2 value for C_WEAKEXT.])
440 ppc-*-aix*) fmt=coff ;;
441 ppc-*-beos*) fmt=coff ;;
442 ppc-*-*n*bsd* | ppc-*-elf*) fmt=elf ;;
443 ppc-*-eabi* | ppc-*-sysv4*) fmt=elf ;;
444 ppc-*-linux-gnu*) fmt=elf em=linux
447 *) AC_MSG_ERROR(GNU/Linux must be configured big endian) ;;
449 ppc-*-solaris*) fmt=elf
450 if test ${this_target} = $target; then
451 AC_DEFINE(TARGET_SOLARIS_COMMENT, 1,
452 [Define if default target is PowerPC Solaris.])
454 if test x${endian} = xbig; then
455 AC_MSG_ERROR(Solaris must be configured little endian)
457 ppc-*-rtems*) fmt=elf ;;
458 ppc-*-macos*) fmt=coff em=macos ;;
459 ppc-*-nto*) fmt=elf ;;
460 ppc-*-kaos*) fmt=elf ;;
461 ppc-*-lynxos*) fmt=elf em=lynx bfd_gas=yes ;;
463 s390x-*-linux-gnu*) fmt=elf em=linux ;;
464 s390-*-linux-gnu*) fmt=elf em=linux ;;
465 s390-*-tpf*) fmt=elf ;;
467 sh*-*-linux*) fmt=elf em=linux
472 sh5*-*-netbsd*) fmt=elf em=nbsd ;;
473 sh64*-*-netbsd*) fmt=elf em=nbsd ;;
474 sh*-*-netbsdelf*) fmt=elf em=nbsd ;;
475 sh*-*-symbianelf*) fmt=elf endian=little
476 AC_DEFINE(TARGET_SYMBIAN, 1, [Define if target is Symbian OS.])
478 sh-*-elf*) fmt=elf ;;
479 sh-*-coff*) fmt=coff ;;
480 sh-*-nto*) fmt=elf ;;
481 sh-*-pe*) fmt=coff em=pe bfd_gas=yes endian=little ;;
482 sh-*-rtemscoff*) fmt=coff ;;
483 sh-*-rtems*) fmt=elf ;;
484 sh-*-kaos*) fmt=elf ;;
485 shle*-*-kaos*) fmt=elf ;;
486 sh64-*-elf*) fmt=elf ;;
488 sparc-*-rtemsaout*) fmt=aout ;;
489 sparc-*-rtemself*) fmt=elf ;;
490 sparc-*-rtems*) fmt=elf ;;
491 sparc-*-sunos4*) fmt=aout em=sun3 ;;
492 sparc-*-aout | sparc*-*-vxworks*) fmt=aout em=sparcaout ;;
493 sparc-*-coff) fmt=coff ;;
494 sparc-*-linux*aout*) fmt=aout em=linux ;;
495 sparc-*-linux-gnu*) fmt=elf em=linux ;;
496 sparc-*-lynxos*) fmt=coff em=lynx ;;
497 sparc-fujitsu-none) fmt=aout ;;
498 sparc-*-elf) fmt=elf ;;
499 sparc-*-sysv4*) fmt=elf ;;
500 sparc-*-solaris*) fmt=elf ;;
501 sparc-*-netbsdelf*) fmt=elf em=nbsd ;;
502 sparc-*-*n*bsd*) case ${cpu} in
503 sparc64) fmt=elf em=nbsd ;;
504 *) fmt=aout em=nbsd ;;
506 strongarm-*-coff) fmt=coff ;;
507 strongarm-*-elf) fmt=elf ;;
508 strongarm-*-kaos*) fmt=elf ;;
510 tic30-*-*aout*) fmt=aout bfd_gas=yes ;;
511 tic30-*-*coff*) fmt=coff bfd_gas=yes ;;
512 tic4x-*-* | c4x-*-*) fmt=coff bfd_gas=yes ;;
513 tic54x-*-* | c54x*-*-*) fmt=coff bfd_gas=yes need_libm=yes;;
514 tic80-*-*) fmt=coff ;;
517 v850e-*-*) fmt=elf ;;
518 v850ea-*-*) fmt=elf ;;
520 vax-*-netbsdelf*) fmt=elf em=nbsd ;;
521 vax-*-netbsd*) fmt=aout em=nbsd ;;
522 vax-*-bsd* | vax-*-ultrix*) fmt=aout ;;
523 vax-*-linux-gnu*) fmt=elf em=linux bfd_gas=yes ;;
524 vax-*-vms) fmt=vms ;;
528 xscale-*-coff) fmt=coff ;;
529 xscale-*-elf) fmt=elf ;;
531 xstormy16-*-*) fmt=elf ;;
533 xtensa-*-*) fmt=elf ;;
535 z8k-*-coff | z8k-*-sim) fmt=coff ;;
537 *-*-aout | *-*-scout) fmt=aout ;;
538 *-*-freebsd* | *-*-kfreebsd*-gnu) fmt=elf em=freebsd ;;
539 *-*-nindy*) fmt=bout ;;
540 *-*-bsd*) fmt=aout em=sun3 ;;
541 *-*-generic) fmt=generic ;;
542 *-*-xray | *-*-hms) fmt=coff ;;
544 *-*-elf | *-*-sysv4* | *-*-solaris*) fmt=elf dev=yes ;;
545 *-*-aros*) fmt=elf em=linux bfd_gas=yes ;;
546 *-*-vxworks | *-*-windiss) fmt=elf ;;
547 *-*-netware) fmt=elf em=netware ;;
550 if test ${this_target} = $target ; then
552 if test x${endian} = xbig; then
554 elif test x${endian} = xlittle; then
557 if test x${endian_def} != x; then
558 AC_DEFINE_UNQUOTED(TARGET_BYTES_BIG_ENDIAN, $endian_def,
559 [Define as 1 if big endian.])
563 case ${cpu_type}-${fmt} in
564 alpha*-* | arm-* | i386-* | ia64*-* | mips-* | ns32k-* \
565 | pdp11-* | ppc-* | sparc-* | strongarm-* | xscale-* \
566 | *-elf | *-ecoff | *-som)
570 # Other random stuff.
574 # Set mips_cpu to the name of the default CPU.
575 case ${target_cpu} in
576 mips | mipsbe | mipseb | mipsle | mipsel | mips64 | mips64el)
579 mipsisa32 | mipsisa32el)
582 mipsisa32r2 | mipsisa32r2el)
585 mipsisa64 | mipsisa64el)
588 mipsisa64r2 | mipsisa64r2el)
591 mipstx39 | mipstx39el)
594 mips64vr | mips64vrel)
597 mipsisa32r2* | mipsisa64r2*)
599 mips_cpu=`echo $target_cpu | sed -e 's/[a-z]*..r2//' -e 's/el$//'`
602 mips64* | mipsisa64* | mipsisa32*)
604 mips_cpu=`echo $target_cpu | sed -e 's/[a-z]*..//' -e 's/el$//'`
608 AC_ERROR($target_cpu isn't a supported MIPS CPU name)
611 # See whether it's appropriate to set E_MIPS_ABI_O32 for o32
612 # binaries. It's a GNU extension that some OSes don't understand.
613 # The value only matters on ELF targets.
622 # Decide whether to generate 32-bit or 64-bit code by default.
623 # Used to resolve -march=from-abi when an embedded ABI is selected.
625 mips64*-*-* | mipsisa64*-*-*)
632 # Decide which ABI to target by default.
634 mips64*-linux* | mips-sgi-irix6*)
635 mips_default_abi=N32_ABI
638 mips_default_abi=O32_ABI
641 mips_default_abi=NO_ABI
644 AC_DEFINE_UNQUOTED(MIPS_CPU_STRING_DEFAULT, "$mips_cpu",
645 [Default CPU for MIPS targets. ])
646 AC_DEFINE_UNQUOTED(USE_E_MIPS_ABI_O32, $use_e_mips_abi_o32,
647 [Allow use of E_MIPS_ABI_O32 on MIPS targets. ])
648 AC_DEFINE_UNQUOTED(MIPS_DEFAULT_64BIT, $mips_default_64bit,
649 [Generate 64-bit code by default on MIPS targets. ])
650 AC_DEFINE_UNQUOTED(MIPS_DEFAULT_ABI, $mips_default_abi,
651 [Choose a default ABI for MIPS targets. ])
655 # Do we need the opcodes library?
663 case "${enable_shared}" in
664 yes) shared_opcodes=true ;;
665 *opcodes*) shared_opcodes=true ;;
666 *) shared_opcodes=false ;;
668 if test "${shared_opcodes}" = "true"; then
669 # A shared libopcodes must be linked against libbfd.
675 # Any other special object files needed ?
677 fr30 | ip2k | iq2000 | m32r | openrisc)
685 case ${extra_objects} in
687 *) extra_objects="$extra_objects m68k-parse.o" ;;
692 echo ${extra_objects} | grep -s "itbl-parse.o"
693 if test $? -ne 0 ; then
694 extra_objects="$extra_objects itbl-parse.o"
697 echo ${extra_objects} | grep -s "itbl-lex.o"
698 if test $? -ne 0 ; then
699 extra_objects="$extra_objects itbl-lex.o"
702 echo ${extra_objects} | grep -s "itbl-ops.o"
703 if test $? -ne 0 ; then
704 extra_objects="$extra_objects itbl-ops.o"
709 if test $this_target = $target ; then
710 AC_DEFINE_UNQUOTED(DEFAULT_ARCH, "${arch}", [Default architecture.])
719 echo ${extra_objects} | grep -s "xtensa-relax.o"
720 if test $? -ne 0 ; then
721 extra_objects="$extra_objects xtensa-relax.o"
729 if test $using_cgen = yes ; then
730 case "x${extra_objects}" in
732 *) extra_objects="$extra_objects cgen.o" ;;
736 # See if we really can support this configuration with the emulation code.
738 if test $this_target = $target ; then
739 primary_bfd_gas=$bfd_gas
743 if test $bfd_gas = no ; then
744 # Can't support other configurations this way.
747 elif test $bfd_gas = no ; then
748 # Can't support this configuration.
752 # From target name and format, produce a list of supported emulations.
754 case ${generic_target}-${fmt} in
755 mips-*-irix5*-*) emulation="mipsbelf mipslelf mipself mipsbecoff mipslecoff mipsecoff" ;;
756 mips*-*-linux*-*) case "$endian" in
757 big) emulation="mipsbelf mipslelf mipself" ;;
758 *) emulation="mipslelf mipsbelf mipself" ;;
760 mips-*-lnews*-ecoff) ;;
761 mips-*-*-ecoff) case "$endian" in
762 big) emulation="mipsbecoff mipslecoff mipsecoff" ;;
763 *) emulation="mipslecoff mipsbecoff mipsecoff" ;;
765 mips-*-*-elf) case "$endian" in
766 big) emulation="mipsbelf mipslelf mipself" ;;
767 *) emulation="mipslelf mipsbelf mipself" ;;
769 mips-*-sysv4*MP*-*) emulation="mipsbelf mipslelf mipself mipsbecoff mipslecoff mipsecoff" ;;
770 # i386-pc-pe-coff != i386-pc-coff.
772 # Uncommenting the next line will turn on support for i386 AOUT
773 # for the default linux configuration
774 # i386-*-linux*-elf) emulation="i386elf i386aout" ;;
776 i386-*-aout) emulation="i386aout" ;;
777 i386-*-coff) emulation="i386coff" ;;
778 i386-*-elf) emulation="i386elf" ;;
780 # Always all formats. The first stated emulation becomes the default.
781 cris-*-*aout*) emulation="crisaout criself" ;;
782 cris-*-*) emulation="criself crisaout" ;;
785 emulations="$emulations $emulation"
789 # Turn on all targets if possible
790 if test ${all_targets} = "yes"; then
791 case ${target_cpu_type} in
793 case ${obj_format} in
795 emulations="$emulations i386coff i386elf"
798 emulations="$emulations i386aout i386elf"
801 emulations="$emulations i386aout i386coff"
808 # Assign floating point type. Most processors with FP support
809 # IEEE FP. On those that don't support FP at all, usually IEEE
811 case ${target_cpu} in
812 vax | tahoe ) atof=${target_cpu} ;;
817 case "${obj_format}" in
818 "") AC_MSG_ERROR(GAS does not know what format to use for target ${target}) ;;
821 # Unfortunately the cpu in cpu-opc.h file isn't always $(TARGET_CPU).
823 if test $using_cgen = yes ; then
824 case ${target_cpu} in
825 *) cgen_cpu_prefix=${target_cpu} ;;
827 AC_SUBST(cgen_cpu_prefix)
828 AC_DEFINE(USING_CGEN, 1, [Using cgen code?])
832 dnl Make sure the desired support files exist.
835 if test ! -r ${srcdir}/config/tc-${target_cpu_type}.c; then
836 AC_MSG_ERROR(GAS does not support target CPU ${target_cpu_type})
839 if test ! -r ${srcdir}/config/obj-${obj_format}.c; then
840 AC_MSG_ERROR(GAS does not have support for object file format ${obj_format})
843 case ${user_bfd_gas}-${primary_bfd_gas} in
845 # We didn't override user's choice.
848 AC_MSG_WARN(Use of BFD is required for ${target}; overriding config options.)
860 # User specified nothing.
864 # Some COFF configurations want these random other flags set.
865 case ${obj_format} in
867 case ${target_cpu_type} in
868 i386) AC_DEFINE(I386COFF, 1, [Using i386 COFF?]) ;;
869 m68k) AC_DEFINE(M68KCOFF, 1, [Using m68k COFF?]) ;;
870 m88k) AC_DEFINE(M88KCOFF, 1, [Using m88k COFF?]) ;;
875 # Getting this done right is going to be a bitch. Each configuration specified
876 # with --enable-targets=... should be checked for environment, format, cpu, and
879 # For each configuration, the necessary object file support code must be linked
880 # in. This might be only one, it might be up to four. The necessary emulation
881 # code needs to be provided, too.
883 # And then there's "--enable-targets=all"....
885 # For now, just always do it for MIPS ELF or ECOFF configurations. Sigh.
887 formats="${obj_format}"
891 for em in . $emulations ; do
894 mipsbelf | mipslelf | mipself)
895 fmt=elf file=mipself ;;
896 mipsbecoff | mipslecoff | mipsecoff)
897 fmt=ecoff file=mipsecoff ;;
905 formats="$formats $fmt"
906 emfiles="$emfiles e-$file.o"
907 EMULATIONS="$EMULATIONS &$em,"
911 if test `set . $formats ; shift ; echo $#` -gt 1 ; then
912 for fmt in $formats ; do
914 aout) AC_DEFINE(OBJ_MAYBE_AOUT, 1, [a.out support?]) ;;
915 bout) AC_DEFINE(OBJ_MAYBE_BOUT, 1, [b.out support?]) ;;
916 coff) AC_DEFINE(OBJ_MAYBE_COFF, 1, [COFF support?]) ;;
917 ecoff) AC_DEFINE(OBJ_MAYBE_ECOFF, 1, [ECOFF support?]) ;;
918 elf) AC_DEFINE(OBJ_MAYBE_ELF, 1, [ELF support?]) ;;
919 generic) AC_DEFINE(OBJ_MAYBE_GENERIC, 1, [generic support?]) ;;
920 hp300) AC_DEFINE(OBJ_MAYBE_HP300, 1, [HP300 support?]) ;;
921 ieee) AC_DEFINE(OBJ_MAYBE_IEEE, 1, [IEEE support?]) ;;
922 som) AC_DEFINE(OBJ_MAYBE_SOM, 1, [SOM support?]) ;;
923 vms) AC_DEFINE(OBJ_MAYBE_VMS, 1, [VMS support?]) ;;
925 extra_objects="$extra_objects obj-$fmt.o"
929 if test `set . $emfiles ; shift ; echo $#` -gt 0 ; then
930 DEFAULT_EMULATION=`set . $emulations ; echo $2`
931 # e-mips* has more than one emulation per file, e-i386* has just one at the
932 # moment. If only one emulation is specified, then don't define
933 # USE_EMULATIONS or include any of the e-files as they will only be bloat.
934 case "${obj_format}${emfiles}" in
936 extra_objects="$extra_objects $emfiles"
937 AC_DEFINE(USE_EMULATIONS, 1, [Use emulation support?]) ;;
940 AC_SUBST(extra_objects)
941 AC_DEFINE_UNQUOTED(EMULATIONS, $EMULATIONS, [Supported emulations.])
942 AC_DEFINE_UNQUOTED(DEFAULT_EMULATION, "$DEFAULT_EMULATION",
943 [Default emulation.])
945 case ${primary_bfd_gas}-${target_cpu_type}-${obj_format} in
946 yes-*-coff) need_bfd=yes ;;
947 no-*-coff) need_bfd=yes
948 AC_DEFINE(MANY_SEGMENTS, 1, [old COFF support?]) ;;
951 reject_dev_configs=yes
953 case ${reject_dev_configs}-${dev} in
955 AC_MSG_ERROR(GAS does not support the ${generic_target} configuration.)
959 AC_SUBST(target_cpu_type)
962 AC_SUBST(install_tooldir)
964 dnl AC_SUBST(emulation)
966 case "${primary_bfd_gas}" in
967 yes) AC_DEFINE(BFD_ASSEMBLER, 1, [Use BFD interface?])
971 # do we need the opcodes library?
972 case "${need_opcodes}" in
974 OPCODES_LIB=../opcodes/libopcodes.la
978 case "${need_bfd}" in
980 BFDLIB=../bfd/libbfd.la
981 BFDVER_H=../bfd/bfdver.h
982 ALL_OBJ_DEPS="$ALL_OBJ_DEPS"' ../bfd/bfd.h $(INCDIR)/symcat.h'
987 AC_SUBST(OPCODES_LIB)
990 AC_SUBST(ALL_OBJ_DEPS)
992 AC_DEFINE_UNQUOTED(TARGET_ALIAS, "${target_alias}", [Target alias.])
993 AC_DEFINE_UNQUOTED(TARGET_CANONICAL, "${target}", [Canonical target.])
994 AC_DEFINE_UNQUOTED(TARGET_CPU, "${target_cpu}", [Target CPU.])
995 AC_DEFINE_UNQUOTED(TARGET_VENDOR, "${target_vendor}", [Target vendor.])
996 AC_DEFINE_UNQUOTED(TARGET_OS, "${target_os}", [Target OS.])
1003 ALL_LINGUAS="fr tr es"
1009 AC_CHECK_HEADERS(string.h stdlib.h memory.h strings.h unistd.h stdarg.h varargs.h errno.h sys/types.h)
1011 # Put this here so that autoconf's "cross-compiling" message doesn't confuse
1012 # people who are not cross-compiling but are compiling cross-assemblers.
1013 AC_MSG_CHECKING(whether compiling a cross-assembler)
1014 if test "${host}" = "${target}"; then
1018 AC_DEFINE(CROSS_COMPILE, 1, [Compiling cross-assembler?])
1020 AC_MSG_RESULT($cross_gas)
1022 dnl ansidecl.h will deal with const
1027 # VMS doesn't have unlink.
1028 AC_CHECK_FUNCS(unlink remove, break)
1030 # Some systems don't have sbrk().
1031 AC_CHECK_FUNCS(sbrk)
1033 # do we need the math library?
1034 case "${need_libm}" in
1041 # Some non-ANSI preprocessors botch requoting inside strings. That's bad
1042 # enough, but on some of those systems, the assert macro relies on requoting
1046 # On some systems, the system header files may not declare malloc, realloc,
1047 # and free. There are places where gas needs these functions to have been
1048 # declared -- such as when taking their addresses.
1050 #ifdef HAVE_MEMORY_H
1053 #ifdef HAVE_STRING_H
1056 #ifdef HAVE_STRINGS_H
1057 #include <strings.h>
1060 #ifdef HAVE_STDLIB_H
1063 #ifdef HAVE_UNISTD_H
1067 GAS_CHECK_DECL_NEEDED(strstr, f, char *(*f)(), $gas_test_headers)
1068 GAS_CHECK_DECL_NEEDED(malloc, f, char *(*f)(), $gas_test_headers)
1069 GAS_CHECK_DECL_NEEDED(free, f, void (*f)(), $gas_test_headers)
1070 GAS_CHECK_DECL_NEEDED(sbrk, f, char *(*f)(), $gas_test_headers)
1071 GAS_CHECK_DECL_NEEDED(environ, f, char **f, $gas_test_headers)
1073 # Does errno.h declare errno, or do we have to add a separate declaration
1075 GAS_CHECK_DECL_NEEDED(errno, f, int f, [
1081 dnl This must come last.
1083 dnl We used to make symlinks to files in the source directory, but now
1084 dnl we just use the right name for .c files, and create .h files in
1085 dnl the build directory which include the right .h file. Make sure
1086 dnl the old symlinks don't exist, so that a reconfigure in an existing
1087 dnl directory behaves reasonably.
1089 AC_CONFIG_FILES(Makefile doc/Makefile po/Makefile.in:po/Make-in)
1090 AC_CONFIG_COMMANDS([default],
1091 [rm -f targ-cpu.c targ-cpu.h obj-format.h obj-format.c targ-env.h atof-targ.c itbl-cpu.h
1092 echo '#include "tc-'"${target_cpu_type}"'.h"' > targ-cpu.h
1093 echo '#include "obj-'"${obj_format}"'.h"' > obj-format.h
1094 echo '#include "te-'"${te_file}"'.h"' > targ-env.h
1095 echo '#include "itbl-'"${target_cpu_type}"'.h"' > itbl-cpu.h
1096 if test "x$cgen_cpu_prefix" != x ; then
1097 echo '#include "opcodes/'"${cgen_cpu_prefix}"'-desc.h"' > cgen-desc.h
1100 sed -e '/POTFILES =/r po/POTFILES' po/Makefile.in > po/Makefile],
1101 [target_cpu_type=${target_cpu_type}
1102 cgen_cpu_prefix=${cgen_cpu_prefix}
1103 obj_format=${obj_format}
1104 te_file=${te_file}])