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 ;;
466 sh*-*-linux*) fmt=elf em=linux
471 sh5*-*-netbsd*) fmt=elf em=nbsd ;;
472 sh64*-*-netbsd*) fmt=elf em=nbsd ;;
473 sh*-*-netbsdelf*) fmt=elf em=nbsd ;;
474 sh*-*-symbianelf*) fmt=elf endian=little
475 AC_DEFINE(TARGET_SYMBIAN, 1, [Define if target is Symbian OS.])
477 sh-*-elf*) fmt=elf ;;
478 sh-*-coff*) fmt=coff ;;
479 sh-*-nto*) fmt=elf ;;
480 sh-*-pe*) fmt=coff em=pe bfd_gas=yes endian=little ;;
481 sh-*-rtemscoff*) fmt=coff ;;
482 sh-*-rtems*) fmt=elf ;;
483 sh-*-kaos*) fmt=elf ;;
484 shle*-*-kaos*) fmt=elf ;;
485 sh64-*-elf*) fmt=elf ;;
487 sparc-*-rtemsaout*) fmt=aout ;;
488 sparc-*-rtemself*) fmt=elf ;;
489 sparc-*-rtems*) fmt=elf ;;
490 sparc-*-sunos4*) fmt=aout em=sun3 ;;
491 sparc-*-aout | sparc*-*-vxworks*) fmt=aout em=sparcaout ;;
492 sparc-*-coff) fmt=coff ;;
493 sparc-*-linux*aout*) fmt=aout em=linux ;;
494 sparc-*-linux-gnu*) fmt=elf em=linux ;;
495 sparc-*-lynxos*) fmt=coff em=lynx ;;
496 sparc-fujitsu-none) fmt=aout ;;
497 sparc-*-elf) fmt=elf ;;
498 sparc-*-sysv4*) fmt=elf ;;
499 sparc-*-solaris*) fmt=elf ;;
500 sparc-*-netbsdelf*) fmt=elf em=nbsd ;;
501 sparc-*-*n*bsd*) case ${cpu} in
502 sparc64) fmt=elf em=nbsd ;;
503 *) fmt=aout em=nbsd ;;
505 strongarm-*-coff) fmt=coff ;;
506 strongarm-*-elf) fmt=elf ;;
507 strongarm-*-kaos*) fmt=elf ;;
509 tic30-*-*aout*) fmt=aout bfd_gas=yes ;;
510 tic30-*-*coff*) fmt=coff bfd_gas=yes ;;
511 tic4x-*-* | c4x-*-*) fmt=coff bfd_gas=yes ;;
512 tic54x-*-* | c54x*-*-*) fmt=coff bfd_gas=yes need_libm=yes;;
513 tic80-*-*) fmt=coff ;;
516 v850e-*-*) fmt=elf ;;
517 v850ea-*-*) fmt=elf ;;
519 vax-*-netbsdelf*) fmt=elf em=nbsd ;;
520 vax-*-netbsd*) fmt=aout em=nbsd ;;
521 vax-*-bsd* | vax-*-ultrix*) fmt=aout ;;
522 vax-*-linux-gnu*) fmt=elf em=linux bfd_gas=yes ;;
523 vax-*-vms) fmt=vms ;;
527 xscale-*-coff) fmt=coff ;;
528 xscale-*-elf) fmt=elf ;;
530 xstormy16-*-*) fmt=elf ;;
532 xtensa-*-*) fmt=elf ;;
534 z8k-*-coff | z8k-*-sim) fmt=coff ;;
536 *-*-aout | *-*-scout) fmt=aout ;;
537 *-*-freebsd* | *-*-kfreebsd*-gnu) fmt=elf em=freebsd ;;
538 *-*-nindy*) fmt=bout ;;
539 *-*-bsd*) fmt=aout em=sun3 ;;
540 *-*-generic) fmt=generic ;;
541 *-*-xray | *-*-hms) fmt=coff ;;
543 *-*-elf | *-*-sysv4* | *-*-solaris*) fmt=elf dev=yes ;;
544 *-*-aros*) fmt=elf em=linux bfd_gas=yes ;;
545 *-*-vxworks | *-*-windiss) fmt=elf ;;
546 *-*-netware) fmt=elf em=netware ;;
549 if test ${this_target} = $target ; then
551 if test x${endian} = xbig; then
553 elif test x${endian} = xlittle; then
556 if test x${endian_def} != x; then
557 AC_DEFINE_UNQUOTED(TARGET_BYTES_BIG_ENDIAN, $endian_def,
558 [Define as 1 if big endian.])
562 case ${cpu_type}-${fmt} in
563 alpha*-* | arm-* | i386-* | ia64*-* | mips-* | ns32k-* \
564 | pdp11-* | ppc-* | sparc-* | strongarm-* | xscale-* \
565 | *-elf | *-ecoff | *-som)
569 # Other random stuff.
573 # Set mips_cpu to the name of the default CPU.
574 case ${target_cpu} in
575 mips | mipsbe | mipseb | mipsle | mipsel | mips64 | mips64el)
578 mipsisa32 | mipsisa32el)
581 mipsisa32r2 | mipsisa32r2el)
584 mipsisa64 | mipsisa64el)
587 mipsisa64r2 | mipsisa64r2el)
590 mipstx39 | mipstx39el)
593 mips64vr | mips64vrel)
596 mipsisa32r2* | mipsisa64r2*)
598 mips_cpu=`echo $target_cpu | sed -e 's/[a-z]*..r2//' -e 's/el$//'`
601 mips64* | mipsisa64* | mipsisa32*)
603 mips_cpu=`echo $target_cpu | sed -e 's/[a-z]*..//' -e 's/el$//'`
607 AC_ERROR($target_cpu isn't a supported MIPS CPU name)
610 # See whether it's appropriate to set E_MIPS_ABI_O32 for o32
611 # binaries. It's a GNU extension that some OSes don't understand.
612 # The value only matters on ELF targets.
621 # Decide whether to generate 32-bit or 64-bit code by default.
622 # Used to resolve -march=from-abi when an embedded ABI is selected.
624 mips64*-*-* | mipsisa64*-*-*)
631 # Decide which ABI to target by default.
633 mips64*-linux* | mips-sgi-irix6*)
634 mips_default_abi=N32_ABI
637 mips_default_abi=O32_ABI
640 mips_default_abi=NO_ABI
643 AC_DEFINE_UNQUOTED(MIPS_CPU_STRING_DEFAULT, "$mips_cpu",
644 [Default CPU for MIPS targets. ])
645 AC_DEFINE_UNQUOTED(USE_E_MIPS_ABI_O32, $use_e_mips_abi_o32,
646 [Allow use of E_MIPS_ABI_O32 on MIPS targets. ])
647 AC_DEFINE_UNQUOTED(MIPS_DEFAULT_64BIT, $mips_default_64bit,
648 [Generate 64-bit code by default on MIPS targets. ])
649 AC_DEFINE_UNQUOTED(MIPS_DEFAULT_ABI, $mips_default_abi,
650 [Choose a default ABI for MIPS targets. ])
654 # Do we need the opcodes library?
662 case "${enable_shared}" in
663 yes) shared_opcodes=true ;;
664 *opcodes*) shared_opcodes=true ;;
665 *) shared_opcodes=false ;;
667 if test "${shared_opcodes}" = "true"; then
668 # A shared libopcodes must be linked against libbfd.
674 # Any other special object files needed ?
676 fr30 | ip2k | iq2000 | m32r | openrisc)
684 case ${extra_objects} in
686 *) extra_objects="$extra_objects m68k-parse.o" ;;
691 echo ${extra_objects} | grep -s "itbl-parse.o"
692 if test $? -ne 0 ; then
693 extra_objects="$extra_objects itbl-parse.o"
696 echo ${extra_objects} | grep -s "itbl-lex.o"
697 if test $? -ne 0 ; then
698 extra_objects="$extra_objects itbl-lex.o"
701 echo ${extra_objects} | grep -s "itbl-ops.o"
702 if test $? -ne 0 ; then
703 extra_objects="$extra_objects itbl-ops.o"
708 if test $this_target = $target ; then
709 AC_DEFINE_UNQUOTED(DEFAULT_ARCH, "${arch}", [Default architecture.])
718 echo ${extra_objects} | grep -s "xtensa-relax.o"
719 if test $? -ne 0 ; then
720 extra_objects="$extra_objects xtensa-relax.o"
728 if test $using_cgen = yes ; then
729 case "x${extra_objects}" in
731 *) extra_objects="$extra_objects cgen.o" ;;
735 # See if we really can support this configuration with the emulation code.
737 if test $this_target = $target ; then
738 primary_bfd_gas=$bfd_gas
742 if test $bfd_gas = no ; then
743 # Can't support other configurations this way.
746 elif test $bfd_gas = no ; then
747 # Can't support this configuration.
751 # From target name and format, produce a list of supported emulations.
753 case ${generic_target}-${fmt} in
754 mips-*-irix5*-*) emulation="mipsbelf mipslelf mipself mipsbecoff mipslecoff mipsecoff" ;;
755 mips*-*-linux*-*) case "$endian" in
756 big) emulation="mipsbelf mipslelf mipself" ;;
757 *) emulation="mipslelf mipsbelf mipself" ;;
759 mips-*-lnews*-ecoff) ;;
760 mips-*-*-ecoff) case "$endian" in
761 big) emulation="mipsbecoff mipslecoff mipsecoff" ;;
762 *) emulation="mipslecoff mipsbecoff mipsecoff" ;;
764 mips-*-*-elf) case "$endian" in
765 big) emulation="mipsbelf mipslelf mipself" ;;
766 *) emulation="mipslelf mipsbelf mipself" ;;
768 mips-*-sysv4*MP*-*) emulation="mipsbelf mipslelf mipself mipsbecoff mipslecoff mipsecoff" ;;
769 # i386-pc-pe-coff != i386-pc-coff.
771 # Uncommenting the next line will turn on support for i386 AOUT
772 # for the default linux configuration
773 # i386-*-linux*-elf) emulation="i386elf i386aout" ;;
775 i386-*-aout) emulation="i386aout" ;;
776 i386-*-coff) emulation="i386coff" ;;
777 i386-*-elf) emulation="i386elf" ;;
779 # Always all formats. The first stated emulation becomes the default.
780 cris-*-*aout*) emulation="crisaout criself" ;;
781 cris-*-*) emulation="criself crisaout" ;;
784 emulations="$emulations $emulation"
788 # Turn on all targets if possible
789 if test ${all_targets} = "yes"; then
790 case ${target_cpu_type} in
792 case ${obj_format} in
794 emulations="$emulations i386coff i386elf"
797 emulations="$emulations i386aout i386elf"
800 emulations="$emulations i386aout i386coff"
807 # Assign floating point type. Most processors with FP support
808 # IEEE FP. On those that don't support FP at all, usually IEEE
810 case ${target_cpu} in
811 vax | tahoe ) atof=${target_cpu} ;;
816 case "${obj_format}" in
817 "") AC_MSG_ERROR(GAS does not know what format to use for target ${target}) ;;
820 # Unfortunately the cpu in cpu-opc.h file isn't always $(TARGET_CPU).
822 if test $using_cgen = yes ; then
823 case ${target_cpu} in
824 *) cgen_cpu_prefix=${target_cpu} ;;
826 AC_SUBST(cgen_cpu_prefix)
827 AC_DEFINE(USING_CGEN, 1, [Using cgen code?])
831 dnl Make sure the desired support files exist.
834 if test ! -r ${srcdir}/config/tc-${target_cpu_type}.c; then
835 AC_MSG_ERROR(GAS does not support target CPU ${target_cpu_type})
838 if test ! -r ${srcdir}/config/obj-${obj_format}.c; then
839 AC_MSG_ERROR(GAS does not have support for object file format ${obj_format})
842 case ${user_bfd_gas}-${primary_bfd_gas} in
844 # We didn't override user's choice.
847 AC_MSG_WARN(Use of BFD is required for ${target}; overriding config options.)
859 # User specified nothing.
863 # Some COFF configurations want these random other flags set.
864 case ${obj_format} in
866 case ${target_cpu_type} in
867 i386) AC_DEFINE(I386COFF, 1, [Using i386 COFF?]) ;;
868 m68k) AC_DEFINE(M68KCOFF, 1, [Using m68k COFF?]) ;;
869 m88k) AC_DEFINE(M88KCOFF, 1, [Using m88k COFF?]) ;;
874 # Getting this done right is going to be a bitch. Each configuration specified
875 # with --enable-targets=... should be checked for environment, format, cpu, and
878 # For each configuration, the necessary object file support code must be linked
879 # in. This might be only one, it might be up to four. The necessary emulation
880 # code needs to be provided, too.
882 # And then there's "--enable-targets=all"....
884 # For now, just always do it for MIPS ELF or ECOFF configurations. Sigh.
886 formats="${obj_format}"
890 for em in . $emulations ; do
893 mipsbelf | mipslelf | mipself)
894 fmt=elf file=mipself ;;
895 mipsbecoff | mipslecoff | mipsecoff)
896 fmt=ecoff file=mipsecoff ;;
904 formats="$formats $fmt"
905 emfiles="$emfiles e-$file.o"
906 EMULATIONS="$EMULATIONS &$em,"
910 if test `set . $formats ; shift ; echo $#` -gt 1 ; then
911 for fmt in $formats ; do
913 aout) AC_DEFINE(OBJ_MAYBE_AOUT, 1, [a.out support?]) ;;
914 bout) AC_DEFINE(OBJ_MAYBE_BOUT, 1, [b.out support?]) ;;
915 coff) AC_DEFINE(OBJ_MAYBE_COFF, 1, [COFF support?]) ;;
916 ecoff) AC_DEFINE(OBJ_MAYBE_ECOFF, 1, [ECOFF support?]) ;;
917 elf) AC_DEFINE(OBJ_MAYBE_ELF, 1, [ELF support?]) ;;
918 generic) AC_DEFINE(OBJ_MAYBE_GENERIC, 1, [generic support?]) ;;
919 hp300) AC_DEFINE(OBJ_MAYBE_HP300, 1, [HP300 support?]) ;;
920 ieee) AC_DEFINE(OBJ_MAYBE_IEEE, 1, [IEEE support?]) ;;
921 som) AC_DEFINE(OBJ_MAYBE_SOM, 1, [SOM support?]) ;;
922 vms) AC_DEFINE(OBJ_MAYBE_VMS, 1, [VMS support?]) ;;
924 extra_objects="$extra_objects obj-$fmt.o"
928 if test `set . $emfiles ; shift ; echo $#` -gt 0 ; then
929 DEFAULT_EMULATION=`set . $emulations ; echo $2`
930 # e-mips* has more than one emulation per file, e-i386* has just one at the
931 # moment. If only one emulation is specified, then don't define
932 # USE_EMULATIONS or include any of the e-files as they will only be bloat.
933 case "${obj_format}${emfiles}" in
935 extra_objects="$extra_objects $emfiles"
936 AC_DEFINE(USE_EMULATIONS, 1, [Use emulation support?]) ;;
939 AC_SUBST(extra_objects)
940 AC_DEFINE_UNQUOTED(EMULATIONS, $EMULATIONS, [Supported emulations.])
941 AC_DEFINE_UNQUOTED(DEFAULT_EMULATION, "$DEFAULT_EMULATION",
942 [Default emulation.])
944 case ${primary_bfd_gas}-${target_cpu_type}-${obj_format} in
945 yes-*-coff) need_bfd=yes ;;
946 no-*-coff) need_bfd=yes
947 AC_DEFINE(MANY_SEGMENTS, 1, [old COFF support?]) ;;
950 reject_dev_configs=yes
952 case ${reject_dev_configs}-${dev} in
954 AC_MSG_ERROR(GAS does not support the ${generic_target} configuration.)
958 AC_SUBST(target_cpu_type)
961 AC_SUBST(install_tooldir)
963 dnl AC_SUBST(emulation)
965 case "${primary_bfd_gas}" in
966 yes) AC_DEFINE(BFD_ASSEMBLER, 1, [Use BFD interface?])
970 # do we need the opcodes library?
971 case "${need_opcodes}" in
973 OPCODES_LIB=../opcodes/libopcodes.la
977 case "${need_bfd}" in
979 BFDLIB=../bfd/libbfd.la
980 BFDVER_H=../bfd/bfdver.h
981 ALL_OBJ_DEPS="$ALL_OBJ_DEPS"' ../bfd/bfd.h $(INCDIR)/symcat.h'
986 AC_SUBST(OPCODES_LIB)
989 AC_SUBST(ALL_OBJ_DEPS)
991 AC_DEFINE_UNQUOTED(TARGET_ALIAS, "${target_alias}", [Target alias.])
992 AC_DEFINE_UNQUOTED(TARGET_CANONICAL, "${target}", [Canonical target.])
993 AC_DEFINE_UNQUOTED(TARGET_CPU, "${target_cpu}", [Target CPU.])
994 AC_DEFINE_UNQUOTED(TARGET_VENDOR, "${target_vendor}", [Target vendor.])
995 AC_DEFINE_UNQUOTED(TARGET_OS, "${target_os}", [Target OS.])
1002 ALL_LINGUAS="fr tr es"
1008 AC_CHECK_HEADERS(string.h stdlib.h memory.h strings.h unistd.h stdarg.h varargs.h errno.h sys/types.h)
1010 # Put this here so that autoconf's "cross-compiling" message doesn't confuse
1011 # people who are not cross-compiling but are compiling cross-assemblers.
1012 AC_MSG_CHECKING(whether compiling a cross-assembler)
1013 if test "${host}" = "${target}"; then
1017 AC_DEFINE(CROSS_COMPILE, 1, [Compiling cross-assembler?])
1019 AC_MSG_RESULT($cross_gas)
1021 dnl ansidecl.h will deal with const
1026 # VMS doesn't have unlink.
1027 AC_CHECK_FUNCS(unlink remove, break)
1029 # Some systems don't have sbrk().
1030 AC_CHECK_FUNCS(sbrk)
1032 # do we need the math library?
1033 case "${need_libm}" in
1040 # Some non-ANSI preprocessors botch requoting inside strings. That's bad
1041 # enough, but on some of those systems, the assert macro relies on requoting
1045 # On some systems, the system header files may not declare malloc, realloc,
1046 # and free. There are places where gas needs these functions to have been
1047 # declared -- such as when taking their addresses.
1049 #ifdef HAVE_MEMORY_H
1052 #ifdef HAVE_STRING_H
1055 #ifdef HAVE_STRINGS_H
1056 #include <strings.h>
1059 #ifdef HAVE_STDLIB_H
1062 #ifdef HAVE_UNISTD_H
1066 GAS_CHECK_DECL_NEEDED(strstr, f, char *(*f)(), $gas_test_headers)
1067 GAS_CHECK_DECL_NEEDED(malloc, f, char *(*f)(), $gas_test_headers)
1068 GAS_CHECK_DECL_NEEDED(free, f, void (*f)(), $gas_test_headers)
1069 GAS_CHECK_DECL_NEEDED(sbrk, f, char *(*f)(), $gas_test_headers)
1070 GAS_CHECK_DECL_NEEDED(environ, f, char **f, $gas_test_headers)
1072 # Does errno.h declare errno, or do we have to add a separate declaration
1074 GAS_CHECK_DECL_NEEDED(errno, f, int f, [
1080 dnl This must come last.
1082 dnl We used to make symlinks to files in the source directory, but now
1083 dnl we just use the right name for .c files, and create .h files in
1084 dnl the build directory which include the right .h file. Make sure
1085 dnl the old symlinks don't exist, so that a reconfigure in an existing
1086 dnl directory behaves reasonably.
1088 AC_CONFIG_FILES(Makefile doc/Makefile po/Makefile.in:po/Make-in)
1089 AC_CONFIG_COMMANDS([default],
1090 [rm -f targ-cpu.c targ-cpu.h obj-format.h obj-format.c targ-env.h atof-targ.c itbl-cpu.h
1091 echo '#include "tc-'"${target_cpu_type}"'.h"' > targ-cpu.h
1092 echo '#include "obj-'"${obj_format}"'.h"' > obj-format.h
1093 echo '#include "te-'"${te_file}"'.h"' > targ-env.h
1094 echo '#include "itbl-'"${target_cpu_type}"'.h"' > itbl-cpu.h
1095 if test "x$cgen_cpu_prefix" != x ; then
1096 echo '#include "opcodes/'"${cgen_cpu_prefix}"'-desc.h"' > cgen-desc.h
1099 sed -e '/POTFILES =/r po/POTFILES' po/Makefile.in > po/Makefile],
1100 [target_cpu_type=${target_cpu_type}
1101 cgen_cpu_prefix=${cgen_cpu_prefix}
1102 obj_format=${obj_format}
1103 te_file=${te_file}])