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 mips*el) cpu_type=mips endian=little ;;
153 mips*) cpu_type=mips endian=big ;;
154 or32*) cpu_type=or32 endian=big ;;
155 pjl*) cpu_type=pj endian=little ;;
156 pj*) cpu_type=pj endian=big ;;
157 powerpc*le*) cpu_type=ppc endian=little ;;
158 powerpc*) cpu_type=ppc endian=big ;;
159 rs6000*) cpu_type=ppc ;;
160 s390x*) cpu_type=s390 arch=s390x ;;
161 s390*) cpu_type=s390 arch=s390 ;;
162 sh5*) cpu_type=sh64 endian=big ;;
163 sh5le*) cpu_type=sh64 endian=little ;;
164 sh64*) cpu_type=sh64 endian=big ;;
165 sh64le*) cpu_type=sh64 endian=little ;;
166 sh*le) cpu_type=sh endian=little ;;
167 sh*) cpu_type=sh endian=big ;;
168 sparclite*) cpu_type=sparc arch=sparclite ;;
169 sparclet*) cpu_type=sparc arch=sparclet ;;
170 sparc64*) cpu_type=sparc arch=v9-64 ;;
171 sparc86x*) cpu_type=sparc arch=sparc86x ;;
172 sparc*) cpu_type=sparc arch=sparclite ;; # ??? See tc-sparc.c.
173 v850*) cpu_type=v850 ;;
174 x86_64) cpu_type=i386 arch=x86_64;;
175 xtensa*) cpu_type=xtensa arch=xtensa ;;
176 *) cpu_type=${cpu} ;;
179 if test ${this_target} = $target ; then
180 target_cpu_type=${cpu_type}
181 elif test ${target_cpu_type} != ${cpu_type} ; then
185 generic_target=${cpu_type}-$vendor-$os
190 # Assign object format.
191 # Note: This table is alpha-sorted, please try to keep it that way.
192 case ${generic_target} in
193 a29k-*-coff) fmt=coff ;;
194 a29k-amd-udi) fmt=coff ;;
195 a29k-amd-ebmon) fmt=coff ;;
196 a29k-nyu-sym1) fmt=coff ;;
197 a29k-*-rtems*) fmt=coff ;;
198 a29k-*-vxworks*) fmt=coff ;;
200 alpha*-*-*vms*) fmt=evax ;;
201 alpha*-*-osf*) fmt=ecoff ;;
202 alpha*-*-linuxecoff*) fmt=ecoff ;;
203 alpha*-*-linux-gnu*) fmt=elf em=linux ;;
204 alpha*-*-netbsd*) fmt=elf em=nbsd ;;
205 alpha*-*-openbsd*) fmt=elf em=obsd ;;
207 arc-*-elf*) fmt=elf ;;
209 arm-*-aout) fmt=aout ;;
210 arm-*-coff | thumb-*-coff) fmt=coff ;;
211 arm-*-rtems* | thumb-*-rtems*) fmt=elf ;;
212 arm-*-elf | thumb-*-elf) fmt=elf ;;
213 arm*-*-eabi*) fmt=elf ;;
214 arm*-*-symbianelf*) fmt=elf em=symbian ;;
215 arm-*-kaos*) fmt=elf ;;
216 arm*-*-conix*) fmt=elf ;;
217 arm-*-linux*aout*) fmt=aout em=linux ;;
218 arm*-*-linux-gnu*) fmt=elf em=linux ;;
219 arm*-*-uclinux*) fmt=elf em=linux ;;
220 arm-*-netbsdelf*) fmt=elf em=nbsd ;;
221 arm-*-*n*bsd*) fmt=aout em=nbsd ;;
222 arm-**-nto*) fmt=elf ;;
223 arm-epoc-pe | thumb-epoc-pe) fmt=coff em=epoc-pe ;;
224 arm-wince-pe | arm-*-wince) fmt=coff em=wince-pe ;;
225 arm-*-pe | thumb-*-pe) fmt=coff em=pe ;;
226 arm-*-riscix*) fmt=aout em=riscix ;;
230 cris-*-linux-gnu* | crisv32-*-linux-gnu*)
231 fmt=multi bfd_gas=yes em=linux ;;
232 cris-*-* | crisv32-*-*) fmt=multi bfd_gas=yes ;;
234 crx-*-elf*) fmt=elf ;;
241 frv-*-*linux*) fmt=elf em=linux;;
244 hppa-*-linux*) case ${cpu} in
245 hppa*64*) fmt=elf em=hppalinux64;;
246 hppa*) fmt=elf em=linux;;
248 hppa-*-*elf*) fmt=elf em=hppa ;;
249 hppa-*-lites*) fmt=elf em=hppa ;;
250 hppa-*-netbsd*) fmt=elf em=nbsd ;;
251 hppa-*-openbsd*) fmt=elf em=hppa ;;
252 hppa-*-osf*) fmt=som em=hppa ;;
253 hppa-*-rtems*) fmt=elf em=hppa ;;
254 hppa-*-hpux11*) case ${cpu} in
255 hppa*64*) fmt=elf em=hppa64 ;;
256 hppa*) fmt=som em=hppa ;;
258 hppa-*-hpux*) fmt=som em=hppa ;;
259 hppa-*-mpeix*) fmt=som em=hppa ;;
260 hppa-*-bsd*) fmt=som em=hppa ;;
261 hppa-*-hiux*) fmt=som em=hppa ;;
263 h8300-*-rtems*) fmt=coff ;;
264 h8300-*-coff) fmt=coff ;;
265 h8300-*-elf) fmt=elf ;;
266 h8500-*-rtems*) fmt=coff ;;
267 h8500-*-coff) fmt=coff ;;
269 i370-*-elf* | i370-*-linux*) fmt=elf ;;
270 i386-ibm-aix*) fmt=coff em=i386aix ;;
271 i386-sequent-bsd*) fmt=aout em=dynix ;;
272 i386-*-beospe*) fmt=coff em=pe ;;
273 i386-*-beos*) fmt=elf ;;
274 i386-*-coff) fmt=coff ;;
275 i386-*-elf) fmt=elf ;;
276 i386-*-kaos*) fmt=elf ;;
277 i386-*-bsd*) fmt=aout em=386bsd ;;
278 i386-*-netbsd0.8) fmt=aout em=386bsd ;;
279 i386-*-netbsdpe*) fmt=coff em=pe ;;
280 i386-*-netbsd*-gnu* | \
281 i386-*-knetbsd*-gnu | \
282 i386-*-netbsdelf*) fmt=elf em=nbsd ;;
283 i386-*-*n*bsd*) case ${cpu} in
284 x86_64) fmt=elf em=nbsd ;;
285 *) fmt=aout em=nbsd ;;
287 i386-*-linux*aout*) fmt=aout em=linux ;;
288 i386-*-linux*oldld) fmt=aout em=linux ;;
289 i386-*-linux*coff*) fmt=coff em=linux ;;
290 i386-*-linux-gnu*) fmt=elf em=linux ;;
291 x86_64-*-linux-gnu*) fmt=elf em=linux ;;
292 i386-*-lynxos*) fmt=elf em=lynx bfd_gas=yes ;;
294 i386-*-sysv[45]*) fmt=elf ;;
295 i386-*-solaris*) fmt=elf ;;
296 i386-*-freebsdaout*) fmt=aout em=386bsd ;;
297 i386-*-freebsd[12].*) fmt=aout em=386bsd ;;
298 i386-*-freebsd[12]) fmt=aout em=386bsd ;;
300 i386-*-freebsd* | i386-*-kfreebsd*-gnu)
301 fmt=elf em=freebsd ;;
302 i386-*-sysv*) fmt=coff ;;
303 i386-*-sco3.2v5*coff) fmt=coff ;;
304 i386-*-isc*) fmt=coff ;;
305 i386-*-sco3.2v5*) fmt=elf
306 if test ${this_target} = $target; then
307 AC_DEFINE(SCO_ELF, 1, [Define if defaulting to ELF on SCO 5.])
309 i386-*-sco3.2*) fmt=coff ;;
310 i386-*-vsta) fmt=aout ;;
313 | i386-go32-rtems*) fmt=coff em=go32
314 AC_DEFINE(STRICTCOFF, 1, [Using strict COFF?]) ;;
315 i386-*-rtemself*) fmt=elf ;;
316 i386-*-rtemscoff*) fmt=coff ;;
317 i386-*-rtems*) fmt=elf ;;
318 i386-*-gnu*) fmt=elf ;;
319 i386-*-mach*) fmt=aout em=mach ;;
320 i386-*-msdos*) fmt=aout ;;
321 i386-*-moss*) fmt=elf ;;
322 i386-*-pe) fmt=coff em=pe ;;
323 i386-*-cygwin*) fmt=coff em=pe ;;
324 i386-*-interix*) fmt=coff em=interix ;;
325 i386-*-mingw32*) fmt=coff em=pe ;;
326 i386-*-nto-qnx*) fmt=elf ;;
327 i386-*-*nt*) fmt=coff em=pe ;;
328 i386-*-chaos) fmt=elf ;;
330 i860-*-*) fmt=elf endian=little
331 AC_MSG_WARN(GAS support for ${generic_target} is preliminary and a work in progress) ;;
332 i960-*-bout) fmt=bout ;;
333 i960-*-coff) fmt=coff em=ic960 ;;
334 i960-*-rtems*) fmt=coff em=ic960 ;;
335 i960-*-nindy*) fmt=bout ;;
336 i960-*-vxworks5.0) fmt=bout ;;
337 i960-*-vxworks5.*) fmt=coff em=ic960 ;;
338 i960-*-vxworks*) fmt=bout ;;
339 i960-*-elf*) fmt=elf ;;
341 ia64-*-elf*) fmt=elf ;;
342 ia64-*-aix*) fmt=elf em=ia64aix ;;
343 ia64-*-linux-gnu*) fmt=elf em=linux ;;
344 ia64-*-hpux*) fmt=elf em=hpux ;;
345 ia64-*-netbsd*) fmt=elf em=nbsd ;;
349 iq2000-*-elf) fmt=elf bfd_gas=yes ;;
351 m32r-*-elf*) fmt=elf ;;
352 m32r-*-linux*) fmt=elf em=linux;;
354 m68hc11-*-* | m6811-*-*) fmt=elf ;;
355 m68hc12-*-* | m6812-*-*) fmt=elf ;;
357 m68k-*-vxworks*) fmt=aout em=sun3 ;;
358 m68k-ericsson-ose) fmt=aout em=sun3 ;;
359 m68k-*-sunos*) fmt=aout em=sun3 ;;
360 m68k-motorola-sysv*) fmt=coff em=delta ;;
361 m68k-bull-sysv3*) fmt=coff em=dpx2 ;;
362 m68k-apollo-*) fmt=coff em=apollo ;;
363 m68k-*-elf*) fmt=elf ;;
364 m68k-*-sysv4*) fmt=elf em=svr4 ;;
365 m68k-*-sysv*) fmt=coff ;;
366 m68k-*-coff | m68k-*-rtemscoff*) fmt=coff ;;
367 m68k-*-rtems*) fmt=elf ;;
368 m68k-*-hpux*) fmt=hp300 em=hp300 ;;
369 m68k-*-linux*aout*) fmt=aout em=linux ;;
370 m68k-*-linux-gnu*) fmt=elf em=linux ;;
371 m68k-*-uclinux*) fmt=elf ;;
372 m68k-*-gnu*) fmt=elf ;;
373 m68k-*-lynxos*) fmt=coff em=lynx ;;
374 m68k-*-netbsdelf*) fmt=elf em=nbsd ;;
375 m68k-*-netbsd*) fmt=aout em=nbsd bfd_gas=yes ;;
376 m68k-*-openbsd*) fmt=aout em=nbsd bfd_gas=yes ;;
377 m68k-apple-aux*) fmt=coff em=aux ;;
378 m68k-*-psos*) fmt=elf em=psos;;
380 m88k-motorola-sysv3*) fmt=coff em=delt88 ;;
381 m88k-*-coff*) fmt=coff ;;
383 mcore-*-elf) fmt=elf ;;
384 mcore-*-pe) fmt=coff em=pe bfd_gas=yes ;;
386 # don't change em like *-*-bsd does
387 mips-dec-openbsd*) fmt=elf endian=little ;;
388 mips-sony-bsd*) fmt=ecoff ;;
390 AC_MSG_ERROR(Unknown vendor for mips-bsd configuration.) ;;
391 mips-*-ultrix*) fmt=ecoff endian=little ;;
392 mips-*-osf*) fmt=ecoff endian=little ;;
393 mips-*-ecoff*) fmt=ecoff ;;
394 mips-*-pe*) fmt=coff endian=little em=pe ;;
395 mips-*-irix6*) fmt=elf em=irix ;;
396 mips-*-irix5*) fmt=elf em=irix ;;
397 mips-*-irix*) fmt=ecoff em=irix ;;
398 mips-*-lnews*) fmt=ecoff em=lnews ;;
399 mips-*-riscos*) fmt=ecoff ;;
400 mips*-*-linux*) fmt=elf em=tmips ;;
401 mips-*-sysv4*MP* | mips-*-gnu*) fmt=elf em=tmips ;;
402 mips-*-sysv*) fmt=ecoff ;;
403 mips-*-elf* | mips-*-rtems*) fmt=elf ;;
404 mips-*-netbsd*) fmt=elf ;;
405 mips-*-openbsd*) fmt=elf ;;
408 mn10200-*-*) fmt=elf ;;
409 # cpu_type for am33_2.0 is set to mn10300
410 mn10300-*-linux*) fmt=elf bfd_gas=yes em=linux ;;
411 mn10300-*-*) fmt=elf ;;
413 msp430-*-*) fmt=elf ;;
415 ns32k-pc532-mach*) fmt=aout em=pc532mach ;;
416 ns32k-pc532-ux*) fmt=aout em=pc532mach ;;
417 ns32k-pc532-lites*) fmt=aout em=nbsd532 ;;
418 ns32k-*-*n*bsd*) fmt=aout em=nbsd532 ;;
420 openrisc-*-*) fmt=elf ;;
421 or32-*-rtems*) fmt=elf ;;
422 or32-*-coff) fmt=coff ;;
423 or32-*-elf) fmt=elf ;;
427 ppc-*-pe | ppc-*-cygwin*) fmt=coff em=pe ;;
428 ppc-*-winnt*) fmt=coff em=pe ;;
430 ppc-*-aix5.[01]) fmt=coff em=aix5 ;;
432 ppc-*-aix5.*) fmt=coff em=aix5
433 AC_DEFINE(AIX_WEAK_SUPPORT, 1,
434 [Define if using AIX 5.2 value for C_WEAKEXT.])
436 ppc-*-aix*) fmt=coff ;;
437 ppc-*-beos*) fmt=coff ;;
438 ppc-*-*n*bsd* | ppc-*-elf*) fmt=elf ;;
439 ppc-*-eabi* | ppc-*-sysv4*) fmt=elf ;;
440 ppc-*-linux-gnu*) fmt=elf em=linux
443 *) AC_MSG_ERROR(GNU/Linux must be configured big endian) ;;
445 ppc-*-solaris*) fmt=elf
446 if test ${this_target} = $target; then
447 AC_DEFINE(TARGET_SOLARIS_COMMENT, 1,
448 [Define if default target is PowerPC Solaris.])
450 if test x${endian} = xbig; then
451 AC_MSG_ERROR(Solaris must be configured little endian)
453 ppc-*-rtems*) fmt=elf ;;
454 ppc-*-macos*) fmt=coff em=macos ;;
455 ppc-*-nto*) fmt=elf ;;
456 ppc-*-kaos*) fmt=elf ;;
457 ppc-*-lynxos*) fmt=elf em=lynx bfd_gas=yes ;;
459 s390x-*-linux-gnu*) fmt=elf em=linux ;;
460 s390-*-linux-gnu*) fmt=elf em=linux ;;
462 sh*-*-linux*) fmt=elf em=linux
467 sh5*-*-netbsd*) fmt=elf em=nbsd ;;
468 sh64*-*-netbsd*) fmt=elf em=nbsd ;;
469 sh*-*-netbsdelf*) fmt=elf em=nbsd ;;
470 sh*-*-symbianelf*) fmt=elf endian=little
471 AC_DEFINE(TARGET_SYMBIAN, 1, [Define if target is Symbian OS.])
473 sh-*-elf*) fmt=elf ;;
474 sh-*-coff*) fmt=coff ;;
475 sh-*-nto*) fmt=elf ;;
476 sh-*-pe*) fmt=coff em=pe bfd_gas=yes endian=little ;;
477 sh-*-rtemscoff*) fmt=coff ;;
478 sh-*-rtems*) fmt=elf ;;
479 sh-*-kaos*) fmt=elf ;;
480 shle*-*-kaos*) fmt=elf ;;
481 sh64-*-elf*) fmt=elf ;;
483 sparc-*-rtemsaout*) fmt=aout ;;
484 sparc-*-rtemself*) fmt=elf ;;
485 sparc-*-rtems*) fmt=elf ;;
486 sparc-*-sunos4*) fmt=aout em=sun3 ;;
487 sparc-*-aout | sparc*-*-vxworks*) fmt=aout em=sparcaout ;;
488 sparc-*-coff) fmt=coff ;;
489 sparc-*-linux*aout*) fmt=aout em=linux ;;
490 sparc-*-linux-gnu*) fmt=elf em=linux ;;
491 sparc-*-lynxos*) fmt=coff em=lynx ;;
492 sparc-fujitsu-none) fmt=aout ;;
493 sparc-*-elf) fmt=elf ;;
494 sparc-*-sysv4*) fmt=elf ;;
495 sparc-*-solaris*) fmt=elf ;;
496 sparc-*-netbsdelf*) fmt=elf em=nbsd ;;
497 sparc-*-*n*bsd*) case ${cpu} in
498 sparc64) fmt=elf em=nbsd ;;
499 *) fmt=aout em=nbsd ;;
501 strongarm-*-coff) fmt=coff ;;
502 strongarm-*-elf) fmt=elf ;;
503 strongarm-*-kaos*) fmt=elf ;;
505 tic30-*-*aout*) fmt=aout bfd_gas=yes ;;
506 tic30-*-*coff*) fmt=coff bfd_gas=yes ;;
507 tic4x-*-* | c4x-*-*) fmt=coff bfd_gas=yes ;;
508 tic54x-*-* | c54x*-*-*) fmt=coff bfd_gas=yes need_libm=yes;;
509 tic80-*-*) fmt=coff ;;
512 v850e-*-*) fmt=elf ;;
513 v850ea-*-*) fmt=elf ;;
515 vax-*-netbsdelf*) fmt=elf em=nbsd ;;
516 vax-*-netbsd*) fmt=aout em=nbsd ;;
517 vax-*-bsd* | vax-*-ultrix*) fmt=aout ;;
518 vax-*-linux-gnu*) fmt=elf em=linux bfd_gas=yes ;;
519 vax-*-vms) fmt=vms ;;
523 xscale-*-coff) fmt=coff ;;
524 xscale-*-elf) fmt=elf ;;
526 xstormy16-*-*) fmt=elf ;;
528 xtensa-*-*) fmt=elf ;;
530 z8k-*-coff | z8k-*-sim) fmt=coff ;;
532 *-*-aout | *-*-scout) fmt=aout ;;
533 *-*-freebsd* | *-*-kfreebsd*-gnu) fmt=elf em=freebsd ;;
534 *-*-nindy*) fmt=bout ;;
535 *-*-bsd*) fmt=aout em=sun3 ;;
536 *-*-generic) fmt=generic ;;
537 *-*-xray | *-*-hms) fmt=coff ;;
539 *-*-elf | *-*-sysv4* | *-*-solaris*) fmt=elf dev=yes ;;
540 *-*-aros*) fmt=elf em=linux bfd_gas=yes ;;
541 *-*-vxworks | *-*-windiss) fmt=elf ;;
542 *-*-netware) fmt=elf em=netware ;;
545 if test ${this_target} = $target ; then
547 if test x${endian} = xbig; then
549 elif test x${endian} = xlittle; then
552 if test x${endian_def} != x; then
553 AC_DEFINE_UNQUOTED(TARGET_BYTES_BIG_ENDIAN, $endian_def,
554 [Define as 1 if big endian.])
558 case ${cpu_type}-${fmt} in
559 alpha*-* | arm-* | i386-* | ia64*-* | mips-* | ns32k-* \
560 | pdp11-* | ppc-* | sparc-* | strongarm-* | xscale-* \
561 | *-elf | *-ecoff | *-som)
565 # Other random stuff.
569 # Set mips_cpu to the name of the default CPU.
570 case ${target_cpu} in
571 mips | mipsbe | mipseb | mipsle | mipsel | mips64 | mips64el)
574 mipsisa32 | mipsisa32el)
577 mipsisa32r2 | mipsisa32r2el)
580 mipsisa64 | mipsisa64el)
583 mipsisa64r2 | mipsisa64r2el)
586 mipstx39 | mipstx39el)
589 mips64vr | mips64vrel)
592 mipsisa32r2* | mipsisa64r2*)
594 mips_cpu=`echo $target_cpu | sed -e 's/[a-z]*..r2//' -e 's/el$//'`
597 mips64* | mipsisa64* | mipsisa32*)
599 mips_cpu=`echo $target_cpu | sed -e 's/[a-z]*..//' -e 's/el$//'`
603 AC_ERROR($target_cpu isn't a supported MIPS CPU name)
606 # See whether it's appropriate to set E_MIPS_ABI_O32 for o32
607 # binaries. It's a GNU extension that some OSes don't understand.
608 # The value only matters on ELF targets.
617 # Decide whether to generate 32-bit or 64-bit code by default.
618 # Used to resolve -march=from-abi when an embedded ABI is selected.
620 mips64*-*-* | mipsisa64*-*-*)
627 # Decide which ABI to target by default.
629 mips64*-linux* | mips-sgi-irix6*)
630 mips_default_abi=N32_ABI
633 mips_default_abi=O32_ABI
636 mips_default_abi=NO_ABI
639 AC_DEFINE_UNQUOTED(MIPS_CPU_STRING_DEFAULT, "$mips_cpu",
640 [Default CPU for MIPS targets. ])
641 AC_DEFINE_UNQUOTED(USE_E_MIPS_ABI_O32, $use_e_mips_abi_o32,
642 [Allow use of E_MIPS_ABI_O32 on MIPS targets. ])
643 AC_DEFINE_UNQUOTED(MIPS_DEFAULT_64BIT, $mips_default_64bit,
644 [Generate 64-bit code by default on MIPS targets. ])
645 AC_DEFINE_UNQUOTED(MIPS_DEFAULT_ABI, $mips_default_abi,
646 [Choose a default ABI for MIPS targets. ])
650 # Do we need the opcodes library?
658 case "${enable_shared}" in
659 yes) shared_opcodes=true ;;
660 *opcodes*) shared_opcodes=true ;;
661 *) shared_opcodes=false ;;
663 if test "${shared_opcodes}" = "true"; then
664 # A shared libopcodes must be linked against libbfd.
670 # Any other special object files needed ?
672 fr30 | ip2k | iq2000 | m32r | openrisc)
680 case ${extra_objects} in
682 *) extra_objects="$extra_objects m68k-parse.o" ;;
687 echo ${extra_objects} | grep -s "itbl-parse.o"
688 if test $? -ne 0 ; then
689 extra_objects="$extra_objects itbl-parse.o"
692 echo ${extra_objects} | grep -s "itbl-lex.o"
693 if test $? -ne 0 ; then
694 extra_objects="$extra_objects itbl-lex.o"
697 echo ${extra_objects} | grep -s "itbl-ops.o"
698 if test $? -ne 0 ; then
699 extra_objects="$extra_objects itbl-ops.o"
704 if test $this_target = $target ; then
705 AC_DEFINE_UNQUOTED(DEFAULT_ARCH, "${arch}", [Default architecture.])
714 echo ${extra_objects} | grep -s "xtensa-relax.o"
715 if test $? -ne 0 ; then
716 extra_objects="$extra_objects xtensa-relax.o"
724 if test $using_cgen = yes ; then
725 case "x${extra_objects}" in
727 *) extra_objects="$extra_objects cgen.o" ;;
731 # See if we really can support this configuration with the emulation code.
733 if test $this_target = $target ; then
734 primary_bfd_gas=$bfd_gas
738 if test $bfd_gas = no ; then
739 # Can't support other configurations this way.
742 elif test $bfd_gas = no ; then
743 # Can't support this configuration.
747 # From target name and format, produce a list of supported emulations.
749 case ${generic_target}-${fmt} in
750 mips-*-irix5*-*) emulation="mipsbelf mipslelf mipself mipsbecoff mipslecoff mipsecoff" ;;
751 mips*-*-linux*-*) case "$endian" in
752 big) emulation="mipsbelf mipslelf mipself" ;;
753 *) emulation="mipslelf mipsbelf mipself" ;;
755 mips-*-lnews*-ecoff) ;;
756 mips-*-*-ecoff) case "$endian" in
757 big) emulation="mipsbecoff mipslecoff mipsecoff" ;;
758 *) emulation="mipslecoff mipsbecoff mipsecoff" ;;
760 mips-*-*-elf) case "$endian" in
761 big) emulation="mipsbelf mipslelf mipself" ;;
762 *) emulation="mipslelf mipsbelf mipself" ;;
764 mips-*-sysv4*MP*-*) emulation="mipsbelf mipslelf mipself mipsbecoff mipslecoff mipsecoff" ;;
765 # i386-pc-pe-coff != i386-pc-coff.
767 # Uncommenting the next line will turn on support for i386 AOUT
768 # for the default linux configuration
769 # i386-*-linux*-elf) emulation="i386elf i386aout" ;;
771 i386-*-aout) emulation="i386aout" ;;
772 i386-*-coff) emulation="i386coff" ;;
773 i386-*-elf) emulation="i386elf" ;;
775 # Always all formats. The first stated emulation becomes the default.
776 cris-*-*aout*) emulation="crisaout criself" ;;
777 cris-*-*) emulation="criself crisaout" ;;
780 emulations="$emulations $emulation"
784 # Turn on all targets if possible
785 if test ${all_targets} = "yes"; then
786 case ${target_cpu_type} in
788 case ${obj_format} in
790 emulations="$emulations i386coff i386elf"
793 emulations="$emulations i386aout i386elf"
796 emulations="$emulations i386aout i386coff"
803 # Assign floating point type. Most processors with FP support
804 # IEEE FP. On those that don't support FP at all, usually IEEE
806 case ${target_cpu} in
807 vax | tahoe ) atof=${target_cpu} ;;
812 case "${obj_format}" in
813 "") AC_MSG_ERROR(GAS does not know what format to use for target ${target}) ;;
816 # Unfortunately the cpu in cpu-opc.h file isn't always $(TARGET_CPU).
818 if test $using_cgen = yes ; then
819 case ${target_cpu} in
820 *) cgen_cpu_prefix=${target_cpu} ;;
822 AC_SUBST(cgen_cpu_prefix)
823 AC_DEFINE(USING_CGEN, 1, [Using cgen code?])
827 dnl Make sure the desired support files exist.
830 if test ! -r ${srcdir}/config/tc-${target_cpu_type}.c; then
831 AC_MSG_ERROR(GAS does not support target CPU ${target_cpu_type})
834 if test ! -r ${srcdir}/config/obj-${obj_format}.c; then
835 AC_MSG_ERROR(GAS does not have support for object file format ${obj_format})
838 case ${user_bfd_gas}-${primary_bfd_gas} in
840 # We didn't override user's choice.
843 AC_MSG_WARN(Use of BFD is required for ${target}; overriding config options.)
855 # User specified nothing.
859 # Some COFF configurations want these random other flags set.
860 case ${obj_format} in
862 case ${target_cpu_type} in
863 i386) AC_DEFINE(I386COFF, 1, [Using i386 COFF?]) ;;
864 m68k) AC_DEFINE(M68KCOFF, 1, [Using m68k COFF?]) ;;
865 m88k) AC_DEFINE(M88KCOFF, 1, [Using m88k COFF?]) ;;
870 # Getting this done right is going to be a bitch. Each configuration specified
871 # with --enable-targets=... should be checked for environment, format, cpu, and
874 # For each configuration, the necessary object file support code must be linked
875 # in. This might be only one, it might be up to four. The necessary emulation
876 # code needs to be provided, too.
878 # And then there's "--enable-targets=all"....
880 # For now, just always do it for MIPS ELF or ECOFF configurations. Sigh.
882 formats="${obj_format}"
886 for em in . $emulations ; do
889 mipsbelf | mipslelf | mipself)
890 fmt=elf file=mipself ;;
891 mipsbecoff | mipslecoff | mipsecoff)
892 fmt=ecoff file=mipsecoff ;;
900 formats="$formats $fmt"
901 emfiles="$emfiles e-$file.o"
902 EMULATIONS="$EMULATIONS &$em,"
906 if test `set . $formats ; shift ; echo $#` -gt 1 ; then
907 for fmt in $formats ; do
909 aout) AC_DEFINE(OBJ_MAYBE_AOUT, 1, [a.out support?]) ;;
910 bout) AC_DEFINE(OBJ_MAYBE_BOUT, 1, [b.out support?]) ;;
911 coff) AC_DEFINE(OBJ_MAYBE_COFF, 1, [COFF support?]) ;;
912 ecoff) AC_DEFINE(OBJ_MAYBE_ECOFF, 1, [ECOFF support?]) ;;
913 elf) AC_DEFINE(OBJ_MAYBE_ELF, 1, [ELF support?]) ;;
914 generic) AC_DEFINE(OBJ_MAYBE_GENERIC, 1, [generic support?]) ;;
915 hp300) AC_DEFINE(OBJ_MAYBE_HP300, 1, [HP300 support?]) ;;
916 ieee) AC_DEFINE(OBJ_MAYBE_IEEE, 1, [IEEE support?]) ;;
917 som) AC_DEFINE(OBJ_MAYBE_SOM, 1, [SOM support?]) ;;
918 vms) AC_DEFINE(OBJ_MAYBE_VMS, 1, [VMS support?]) ;;
920 extra_objects="$extra_objects obj-$fmt.o"
924 if test `set . $emfiles ; shift ; echo $#` -gt 0 ; then
925 DEFAULT_EMULATION=`set . $emulations ; echo $2`
926 # e-mips* has more than one emulation per file, e-i386* has just one at the
927 # moment. If only one emulation is specified, then don't define
928 # USE_EMULATIONS or include any of the e-files as they will only be bloat.
929 case "${obj_format}${emfiles}" in
931 extra_objects="$extra_objects $emfiles"
932 AC_DEFINE(USE_EMULATIONS, 1, [Use emulation support?]) ;;
935 AC_SUBST(extra_objects)
936 AC_DEFINE_UNQUOTED(EMULATIONS, $EMULATIONS, [Supported emulations.])
937 AC_DEFINE_UNQUOTED(DEFAULT_EMULATION, "$DEFAULT_EMULATION",
938 [Default emulation.])
940 case ${primary_bfd_gas}-${target_cpu_type}-${obj_format} in
941 yes-*-coff) need_bfd=yes ;;
942 no-*-coff) need_bfd=yes
943 AC_DEFINE(MANY_SEGMENTS, 1, [old COFF support?]) ;;
946 reject_dev_configs=yes
948 case ${reject_dev_configs}-${dev} in
950 AC_MSG_ERROR(GAS does not support the ${generic_target} configuration.)
954 AC_SUBST(target_cpu_type)
957 AC_SUBST(install_tooldir)
959 dnl AC_SUBST(emulation)
961 case "${primary_bfd_gas}" in
962 yes) AC_DEFINE(BFD_ASSEMBLER, 1, [Use BFD interface?])
966 # do we need the opcodes library?
967 case "${need_opcodes}" in
969 OPCODES_LIB=../opcodes/libopcodes.la
973 case "${need_bfd}" in
975 BFDLIB=../bfd/libbfd.la
976 BFDVER_H=../bfd/bfdver.h
977 ALL_OBJ_DEPS="$ALL_OBJ_DEPS"' ../bfd/bfd.h $(INCDIR)/symcat.h'
982 AC_SUBST(OPCODES_LIB)
985 AC_SUBST(ALL_OBJ_DEPS)
987 AC_DEFINE_UNQUOTED(TARGET_ALIAS, "${target_alias}", [Target alias.])
988 AC_DEFINE_UNQUOTED(TARGET_CANONICAL, "${target}", [Canonical target.])
989 AC_DEFINE_UNQUOTED(TARGET_CPU, "${target_cpu}", [Target CPU.])
990 AC_DEFINE_UNQUOTED(TARGET_VENDOR, "${target_vendor}", [Target vendor.])
991 AC_DEFINE_UNQUOTED(TARGET_OS, "${target_os}", [Target OS.])
998 ALL_LINGUAS="fr tr es"
1004 AC_CHECK_HEADERS(string.h stdlib.h memory.h strings.h unistd.h stdarg.h varargs.h errno.h sys/types.h)
1006 # Put this here so that autoconf's "cross-compiling" message doesn't confuse
1007 # people who are not cross-compiling but are compiling cross-assemblers.
1008 AC_MSG_CHECKING(whether compiling a cross-assembler)
1009 if test "${host}" = "${target}"; then
1013 AC_DEFINE(CROSS_COMPILE, 1, [Compiling cross-assembler?])
1015 AC_MSG_RESULT($cross_gas)
1017 dnl ansidecl.h will deal with const
1022 # VMS doesn't have unlink.
1023 AC_CHECK_FUNCS(unlink remove, break)
1025 # Some systems don't have sbrk().
1026 AC_CHECK_FUNCS(sbrk)
1028 # do we need the math library?
1029 case "${need_libm}" in
1036 # Some non-ANSI preprocessors botch requoting inside strings. That's bad
1037 # enough, but on some of those systems, the assert macro relies on requoting
1041 # On some systems, the system header files may not declare malloc, realloc,
1042 # and free. There are places where gas needs these functions to have been
1043 # declared -- such as when taking their addresses.
1045 #ifdef HAVE_MEMORY_H
1048 #ifdef HAVE_STRING_H
1051 #ifdef HAVE_STRINGS_H
1052 #include <strings.h>
1055 #ifdef HAVE_STDLIB_H
1058 #ifdef HAVE_UNISTD_H
1062 GAS_CHECK_DECL_NEEDED(strstr, f, char *(*f)(), $gas_test_headers)
1063 GAS_CHECK_DECL_NEEDED(malloc, f, char *(*f)(), $gas_test_headers)
1064 GAS_CHECK_DECL_NEEDED(free, f, void (*f)(), $gas_test_headers)
1065 GAS_CHECK_DECL_NEEDED(sbrk, f, char *(*f)(), $gas_test_headers)
1066 GAS_CHECK_DECL_NEEDED(environ, f, char **f, $gas_test_headers)
1068 # Does errno.h declare errno, or do we have to add a separate declaration
1070 GAS_CHECK_DECL_NEEDED(errno, f, int f, [
1076 dnl This must come last.
1078 dnl We used to make symlinks to files in the source directory, but now
1079 dnl we just use the right name for .c files, and create .h files in
1080 dnl the build directory which include the right .h file. Make sure
1081 dnl the old symlinks don't exist, so that a reconfigure in an existing
1082 dnl directory behaves reasonably.
1084 AC_CONFIG_FILES(Makefile doc/Makefile po/Makefile.in:po/Make-in)
1085 AC_CONFIG_COMMANDS([default],
1086 [rm -f targ-cpu.c targ-cpu.h obj-format.h obj-format.c targ-env.h atof-targ.c itbl-cpu.h
1087 echo '#include "tc-'"${target_cpu_type}"'.h"' > targ-cpu.h
1088 echo '#include "obj-'"${obj_format}"'.h"' > obj-format.h
1089 echo '#include "te-'"${te_file}"'.h"' > targ-env.h
1090 echo '#include "itbl-'"${target_cpu_type}"'.h"' > itbl-cpu.h
1091 if test "x$cgen_cpu_prefix" != x ; then
1092 echo '#include "opcodes/'"${cgen_cpu_prefix}"'-desc.h"' > cgen-desc.h
1095 sed -e '/POTFILES =/r po/POTFILES' po/Makefile.in > po/Makefile],
1096 [target_cpu_type=${target_cpu_type}
1097 cgen_cpu_prefix=${cgen_cpu_prefix}
1098 obj_format=${obj_format}
1099 te_file=${te_file}])