* config/tc-i386.c (output_insn): Save frag_now and frag_now_fix ()
[binutils.git] / gas / configure.in
blob7f4b2285506124ffd7bbb59a26b79d5b392f20e0
1 dnl Process this file with autoconf to produce a configure script.
2 dnl
3 dnl And be careful when changing it!  If you must add tests with square
4 dnl brackets, be sure changequote invocations surround it.
5 dnl
6 dnl
7 dnl v2.5 needed for --bindir et al
8 AC_PREREQ(2.13)
9 AC_INIT(as.h)
11 AC_CANONICAL_SYSTEM
12 AC_ISC_POSIX
14 changequote(,)dnl
15 BFD_VERSION=`sed -n -e 's/^.._INIT_AUTOMAKE.*,[         ]*\([^  ]*\)[   ]*).*/\1/p' < ${srcdir}/../bfd/configure.in`
16 changequote([,])dnl
17 AM_INIT_AUTOMAKE(gas, ${BFD_VERSION})
19 AM_PROG_LIBTOOL
21 user_bfd_gas=
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) ;;
28 esac])dnl
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')
33             ;;
34   no)       enable_targets= ;;
35   *)        enable_targets=$enableval ;;
36 esac])dnl
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]) ;;
43 esac])dnl
45 using_cgen=no
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
51   yes)  ;;
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"`;;
58 esac
59 if test x"$silent" != x"yes" && test x"$build_warnings" != x""; then
60   echo "Setting warning flags = $build_warnings" 6>&1
61 fi])dnl
62 WARN_CFLAGS=""
63 if test "x${build_warnings}" != x -a "x$GCC" = xyes ; then
64     WARN_CFLAGS="${build_warnings}"
66 AC_SUBST(WARN_CFLAGS)
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
72 # .gdbinit.
73 GDBINIT=".gdbinit"
74 case "${host}" in
75   *-*-msdos* | *-*-go32* | *-*-mingw32* | *-*-cygwin* | *-*-windows*)
76     GDBINIT="gdb.ini"
77     ;;
78 esac
79 AC_SUBST(GDBINIT)
81 te_file=generic
83 # Makefile target for installing gas in $(tooldir)/bin.
84 install_tooldir=install-exec-tooldir
86 canon_targets=""
87 all_targets=no
88 if test -n "$enable_targets" ; then
89   for t in `echo $enable_targets | sed 's/,/ /g'`; do
90     if test $t = "all"; then
91       all_targets=yes
92       continue
93     fi
94     result=`$ac_config_sub $t 2>/dev/null`
95     if test -n "$result" ; then
96       canon_targets="$canon_targets $result"
97 #    else
98 #      # Permit "all", etc.  We don't support it yet though.
99 #      canon_targets="$canon_targets $t"
100     fi
101   done
102   GAS_UNIQ(canon_targets)
105 emulations=""
107 for this_target in $target $canon_targets ; do
109 changequote(,)dnl
110     eval `echo $this_target | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/cpu=\1 vendor=\2 os=\3/'`
111 changequote([,])dnl
113     # check for architecture variants
114     arch=
115     endian=
116     case ${cpu} in
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 ;;
127 changequote(,)dnl
128       i[3456]86)        cpu_type=i386 arch=i386;;
129       x86_64)           cpu_type=i386 arch=x86_64;;
130       ia64)             cpu_type=ia64 ;;
131       ip2k)             cpu_type=ip2k endian=big ;; 
132       m6811|m6812|m68hc12) cpu_type=m68hc11 ;;
133       m680[012346]0)    cpu_type=m68k ;;
134 changequote([,])dnl
135       m68008)           cpu_type=m68k ;;
136       m683??)           cpu_type=m68k ;;
137       m5200)            cpu_type=m68k ;;
138       m8*)              cpu_type=m88k ;;
139       mips*el)          cpu_type=mips endian=little ;;
140       mips*)            cpu_type=mips endian=big ;;
141       or32*)            cpu_type=or32 endian=big ;;
142       pjl*)             cpu_type=pj endian=little ;;
143       pj*)              cpu_type=pj endian=big ;;
144       powerpc*le*)      cpu_type=ppc endian=little ;;
145       powerpc*)         cpu_type=ppc endian=big ;;
146       rs6000*)          cpu_type=ppc ;;
147       s390x*)           cpu_type=s390 arch=s390x ;;
148       s390*)            cpu_type=s390 arch=s390 ;;
149       sh5*)             cpu_type=sh64 endian=big ;;
150       sh5le*)           cpu_type=sh64 endian=little ;;
151       sh64*)            cpu_type=sh64 endian=big ;;
152       sh64le*)          cpu_type=sh64 endian=little ;;
153       sh*le)            cpu_type=sh endian=little ;;
154       sh*)              cpu_type=sh endian=big ;;
155       sparclite*)       cpu_type=sparc arch=sparclite ;;
156       sparclet*)        cpu_type=sparc arch=sparclet ;;
157       sparc64*)         cpu_type=sparc arch=v9-64 ;;
158       sparc86x*)        cpu_type=sparc arch=sparc86x  ;;
159       sparc*)           cpu_type=sparc arch=sparclite ;; # ??? See tc-sparc.c.
160       v850*)            cpu_type=v850 ;;
161       *)                cpu_type=${cpu} ;;
162     esac
164     if test ${this_target} = $target ; then
165       target_cpu_type=${cpu_type}
166     elif test ${target_cpu_type} != ${cpu_type} ; then
167       continue
168     fi
170     generic_target=${cpu_type}-$vendor-$os
171     dev=no
172     bfd_gas=no
173     em=generic
175     # assign object format
176     case ${generic_target} in
177       a29k-*-coff)          fmt=coff ;;
178       a29k-amd-udi)         fmt=coff ;;
179       a29k-amd-ebmon)       fmt=coff ;;
180       a29k-nyu-sym1)        fmt=coff ;;
181       a29k-*-rtems*)        fmt=coff ;;
182       a29k-*-vxworks*)      fmt=coff ;;
184       alpha*-*-*vms*)       fmt=evax ;;
185       alpha*-*-netware*)    fmt=ecoff ;;
186       alpha*-*-osf*)        fmt=ecoff ;;
187       alpha*-*-linuxecoff*) fmt=ecoff ;;
188       alpha*-*-linux-gnu*)  fmt=elf em=linux ;;
189       alpha*-*-netbsd*)     fmt=elf em=nbsd ;;
190       alpha*-*-openbsd*)    fmt=elf em=obsd ;;
192       arc-*-elf*)           fmt=elf bfd_gas=yes ;;
194       arm-*-aout)                       fmt=aout ;;
195       arm-*-coff | thumb-*-coff)        fmt=coff ;;
196       arm-*-rtems | thumb-*-rtems)      fmt=elf ;;
197       arm-*-elf | thumb-*-elf)          fmt=elf ;;
198       arm*-*-conix*)                    fmt=elf ;;
199       arm-*-linux*aout*)                fmt=aout em=linux ;;
200       arm*-*-linux-gnu* | arm*-*-uclinux*)      
201                                         fmt=elf  em=linux ;;
202       arm-*-netbsdelf*)                 fmt=elf  em=nbsd ;;
203       arm-*-netbsd* | arm-*-openbsd*)   fmt=aout em=nbsd ;;
204       arm-**-nto*)                        fmt=elf ;;
205       arm-*-oabi | thumb-*-oabi)        fmt=elf ;;
206       arm-epoc-pe | thumb-epoc-pe)      fmt=coff em=epoc-pe ;;
207       arm-*-wince)                      fmt=coff em=wince-pe ;;
208       arm-*-pe | thumb-*-pe)            fmt=coff em=pe ;;
209       arm-*-riscix*)                    fmt=aout em=riscix ;;
210       arm-*-vxworks)                    fmt=coff ;;
212       avr-*-*)              fmt=elf bfd_gas=yes ;;
214       cris-*-*)             fmt=multi bfd_gas=yes ;;
216       d10v-*-*)             fmt=elf bfd_gas=yes ;;
217       d30v-*-*)             fmt=elf bfd_gas=yes ;;
218       dlx-*-*)              fmt=elf ;;
221       fr30-*-*)             fmt=elf bfd_gas=yes ;;
222       frv-*-*)              fmt=elf bfd_gas=yes ;;
224       hppa-*-linux-gnu*)    case ${cpu} in
225                                 hppa*64*)
226                                         fmt=elf em=hppalinux64;;
227                                 hppa*)
228                                         fmt=elf em=linux;;
229                             esac ;;
230       hppa-*-*elf*)         fmt=elf em=hppa ;;
231       hppa-*-lites*)        fmt=elf em=hppa ;;
232       hppa-*-netbsd*)       fmt=elf em=nbsd ;;
233       hppa-*-openbsd*)      fmt=elf em=hppa ;;
234       hppa-*-osf*)          fmt=som em=hppa ;;
235       hppa-*-rtems*)        fmt=elf em=hppa ;;
236       hppa-*-hpux11*)       case ${cpu} in
237                                 hppa*64*)
238                                         fmt=elf em=hppa64 ;;
239                                 hppa*)
240                                         fmt=som em=hppa ;;
241                             esac ;;
242       hppa-*-hpux*)         fmt=som em=hppa ;;
243       hppa-*-mpeix*)        fmt=som em=hppa ;;
244       hppa-*-bsd*)          fmt=som em=hppa ;;
245       hppa-*-hiux*)         fmt=som em=hppa ;;
247       h8300-*-rtems*)       fmt=coff ;;
248       h8300-*-coff)         fmt=coff ;;
249       h8300-*-elf)          fmt=elf ;;
250       h8500-*-rtems*)       fmt=coff ;;
251       h8500-*-coff)         fmt=coff ;;
253       i370-*-elf* | i370-*-linux*) fmt=elf ;;
254       i386-ibm-aix*)        fmt=coff em=i386aix ;;
255       i386-sequent-bsd*)    fmt=aout em=dynix bfd_gas=yes ;;
256       i386-*-beospe*)       fmt=coff em=pe bfd_gas=yes ;;
257       i386-*-beoself* | i386-*-beos*) fmt=elf bfd_gas=yes ;;
258       i386-*-bsd*)          fmt=aout em=386bsd ;;
259       i386-*-netbsd0.8)     fmt=aout em=386bsd ;;
260       i386-*-netbsdpe*)       fmt=coff em=pe bfd_gas=yes ;;
261       i386-*-netbsd*)       em=nbsd bfd_gas=yes
262                             case ${cpu} in
263                               x86_64)   fmt=elf ;;
264                               *)        case ${os} in
265                                           *elf*) fmt=elf ;;
266                                           *)     fmt=aout ;;
267                                         esac
268                                         ;;
269                             esac
270                             ;;
271       i386-*-openbsd*)      fmt=aout em=nbsd bfd_gas=yes;;
272       i386-*-linux*aout* | i386-*-linux*oldld)   fmt=aout em=linux ;;
273       i386-*-linux*coff*)   fmt=coff em=linux ;;
274       i386-*-linux-gnu*)    fmt=elf em=linux bfd_gas=yes ;;
275       x86_64-*-linux-gnu*)  fmt=elf em=linux bfd_gas=yes ;;
276       i386-*-lynxos*)       fmt=coff em=lynx ;;
277 changequote(,)dnl
278       i386-*-sysv[45]* | i386-*-solaris* | i386-*-elf)
279                             fmt=elf bfd_gas=yes ;;
280       i386-*-freebsdaout* | i386-*-freebsd[12].* | i386-*-freebsd[12])
281                             fmt=aout em=386bsd ;;
282 changequote([,])dnl
283       i386-*-coff | i386-*-sysv* | i386-*-sco3.2v5*coff | i386-*-isc*)
284                           fmt=coff ;;
285       i386-*-sco3.2v5*)      fmt=elf
286                             if test ${this_target} = $target; then
287                                 AC_DEFINE(SCO_ELF, 1,
288                                     [Define if defaulting to ELF on SCO 5.])
289                             fi
290                             ;;
291       i386-*-sco3.2*)       fmt=coff ;;
292       i386-*-vsta)          fmt=aout ;;
293       i386-*-msdosdjgpp* | i386-*-go32* | i386-go32-rtems*)
294                             fmt=coff em=go32 bfd_gas=yes
295                             AC_DEFINE(STRICTCOFF, 1, [Using strict COFF?])
296                             ;;
297       i386-*-rtemself*)     fmt=elf ;;
298       i386-*-rtemscoff*)    fmt=coff ;;
299       i386-*-rtems*)        fmt=elf ;;
300       i386-*-gnu*)          fmt=elf ;;
301       i386-*-mach*)
302                             fmt=aout em=mach bfd_gas=yes ;;
303       i386-*-msdos*)        fmt=aout ;;
304       i386-*-moss*)         fmt=elf ;;
305       i386-*-pe)            fmt=coff em=pe bfd_gas=yes ;;
306       i386-*-cygwin*)       fmt=coff em=pe bfd_gas=yes ;;
307       i386-*-interix*)      fmt=coff em=interix bfd_gas=yes ;;
308       i386-*-mingw32*)      fmt=coff em=pe bfd_gas=yes ;;
309       i386-*-nto-qnx*)      fmt=elf ;;
310       i386-*-*nt*)          fmt=coff em=pe bfd_gas=yes ;;
311       i386-*-vxworks*)      fmt=aout ;;
312       i386-*-chaos)         fmt=elf ;;
313       i860-stardent-sysv4* | i860-stardent-elf*)
314                             fmt=elf bfd_gas=yes endian=little
315                             AC_MSG_WARN(GAS support for ${generic_target} is preliminary and a work in progress) ;;
316       i960-*-bout)          fmt=bout ;;
317       i960-*-coff)          fmt=coff em=ic960 ;;
318       i960-*-rtems*)        fmt=coff em=ic960 ;;
319       i960-*-nindy*)        fmt=bout ;;
320       i960-*-vxworks4*)     fmt=bout ;;
321       i960-*-vxworks5.0)    fmt=bout ;;
322       i960-*-vxworks5.*)    fmt=coff em=ic960 ;;
323       i960-*-vxworks*)      fmt=bout ;;
324       i960-*-elf*)          fmt=elf ;;
326       ia64-*-elf*)          fmt=elf ;;
327       ia64-*-aix*)          fmt=elf em=ia64aix ;;
328       ia64-*-linux-gnu*)    fmt=elf em=linux ;;
329       ia64-*-hpux*)         fmt=elf em=hpux ;;
330       ia64-*-netbsd*)       fmt=elf em=nbsd ;;
332       ip2k-*-*)             fmt=elf bfd_gas=yes ;;
334       m32r-*-*)             fmt=elf bfd_gas=yes ;;
336       m68hc11-*-*|m6811-*-*|m68hc12-*-*|m6812-*-*)fmt=elf bfd_gas=yes ;;
338       m68k-*-vxworks* | m68k-ericsson-ose | m68k-*-sunos*)
339                             fmt=aout em=sun3 ;;
340       m68k-motorola-sysv*)  fmt=coff em=delta ;;
341       m68k-bull-sysv3*)     fmt=coff em=dpx2 ;;
342       m68k-apollo-*)        fmt=coff em=apollo ;;
343       m68k-*-sysv4*) # must be before -sysv*
344                             fmt=elf em=svr4 ;;
345       m68k-*-elf*)          fmt=elf ;;
346       m68k-*-coff | m68k-*-sysv* | m68k-*-rtemscoff*)
347                             fmt=coff ;;
348       m68k-*-rtems*)        fmt=elf ;;
349       m68k-*-hpux*)         fmt=hp300 em=hp300 ;;
350       m68k-*-linux*aout*)   fmt=aout em=linux ;;
351       m68k-*-linux-gnu*)    fmt=elf em=linux ;;
352       m68k-*-gnu*)          fmt=elf ;;
353       m68k-*-lynxos*)       fmt=coff em=lynx ;;
354       m68k-*-netbsdelf*)    fmt=elf em=nbsd bfd_gas=yes ;;
355       m68k-*-netbsdaout* | m68k-*-netbsd*)
356                             fmt=aout em=nbsd bfd_gas=yes ;;
357       m68k-*-openbsd*)      fmt=aout em=nbsd bfd_gas=yes ;;
358       m68k-apple-aux*)      fmt=coff em=aux ;;
359       m68k-*-psos*)         fmt=elf em=psos;;
361       m88k-motorola-sysv3*) fmt=coff em=delt88 ;;
362       m88k-*-coff*)         fmt=coff ;;
364       mcore-*-elf)          fmt=elf bfd_gas=yes ;;
365       mcore-*-pe)           fmt=coff em=pe bfd_gas=yes ;;
367       # don't change em like *-*-bsd does
368       mips-dec-openbsd*)    fmt=elf endian=little ;;
369       mips-dec-bsd*)        fmt=aout endian=little ;;
370       mips-sony-bsd*)       fmt=ecoff ;;
371       mips-*-bsd*)          AC_MSG_ERROR(Unknown vendor for mips-bsd configuration.) ;;
372       mips-*-ultrix*)       fmt=ecoff endian=little ;;
373       mips-*-osf*)          fmt=ecoff endian=little ;;
374       mips-*-ecoff*)        fmt=ecoff ;;
375       mips-*-pe*)           fmt=coff endian=little em=pe ;;
376       mips-*-irix6*)        fmt=elf ;;
377       mips-*-irix5*)        fmt=elf ;;
378       mips-*-irix*)         fmt=ecoff ;;
379       mips-*-lnews*)        fmt=ecoff em=lnews ;;
380       mips-*-riscos*)       fmt=ecoff ;;
381       mips*-*-linux*)       fmt=elf em=tmips ;;
382       mips-*-sysv4*MP* | mips-*-gnu*)
383                             fmt=elf em=tmips ;;
384       mips-*-sysv*)         fmt=ecoff ;;
385       mips-*-elf* | mips-*-rtems* | mips-*-netbsd* | mips-*-openbsd*)
386                             fmt=elf ;;
387       mips-*-vxworks*)      fmt=elf ;;
388       mmix-*-*)             fmt=elf bfd_gas=yes ;;
389       mn10200-*-*)          fmt=elf bfd_gas=yes ;;
390       mn10300-*-*)          fmt=elf bfd_gas=yes ;;
391       openrisc-*-*)         fmt=elf bfd_gas=yes ;;
392       or32-*-rtems*)        fmt=coff ;;
393       or32-*-coff)          fmt=coff ;;
394       or32-*-elf)           fmt=elf ;;
395       pj*)                  fmt=elf ;;
396       ppc-*-pe | ppc-*-cygwin* | ppc-*-winnt*)
397                             fmt=coff em=pe ;;
398       ppc-*-aix5*)          fmt=coff em=aix5 ;;
399       ppc-*-aix*)           fmt=coff ;;
400       ppc-*-beos*)          fmt=coff ;;
401       ppc-*-*bsd* | ppc-*-elf* | ppc-*-eabi* | ppc-*-sysv4*)
402                             fmt=elf ;;
403       ppc-*-linux-gnu*)     fmt=elf
404                             case "$endian" in
405                             big)  ;;
406                             *)    AC_MSG_ERROR(GNU/Linux must be configured big endian) ;;
407                             esac
408                             ;;
409       ppc-*-solaris*)       fmt=elf
410                             if test ${this_target} = $target; then
411                                 AC_DEFINE(TARGET_SOLARIS_COMMENT, 1,
412                                 [Define if default target is PowerPC Solaris.])
413                             fi
414                             if test x${endian} = xbig; then
415                                 AC_MSG_ERROR(Solaris must be configured little endian)
416                             fi
417                             ;;
418       ppc-*-rtems*)         fmt=elf ;;
419       ppc-*-macos* | ppc-*-mpw*)
420                             fmt=coff em=macos ;;
421       ppc-*-netware*)       fmt=elf em=ppcnw ;;
422       ppc-*-vxworks*)       fmt=elf ;;
423       ppc-*-windiss*)       fmt=elf ;;
425       s390x-*-linux-gnu*)   fmt=elf em=linux ;;
426       s390-*-linux-gnu*)    fmt=elf em=linux ;;
428       sh*-*-linux*)         fmt=elf em=linux
429                             case ${cpu} in
430                                 sh*eb)
431                                         endian=big ;;
432                                 sh*)
433                                         endian=little ;;
434                             esac ;;
435       sh5*-*-netbsd*)       fmt=elf em=nbsd ;;
436       sh64*-*-netbsd*)      fmt=elf em=nbsd ;;
437       sh*-*-netbsdelf*)     fmt=elf em=nbsd ;;
438       sh-*-elf*)            fmt=elf ;;
439       sh-*-coff*)           fmt=coff ;;
440       sh-*-pe*)             fmt=coff em=pe bfd_gas=yes endian=little ;;
441       sh-*-rtemself*)       fmt=elf ;;
442       sh-*-rtems*)          fmt=coff ;;
444       sh64-*-elf*)          fmt=elf ;;
445       ns32k-pc532-mach* | ns32k-pc532-ux*)    fmt=aout em=pc532mach ;;
446       ns32k-*-netbsd* | ns32k-pc532-lites*)  fmt=aout em=nbsd532 ;;
447       ns32k-pc532-openbsd*) fmt=aout em=nbsd532 ;;
449       sparc-*-rtemsaout*)   fmt=aout ;;
450       sparc-*-rtemself*)    fmt=elf ;;
451       sparc-*-rtems*)       fmt=elf ;;
452       sparc-*-sunos4*)      fmt=aout em=sun3 ;;
453       sparc-*-aout | sparc*-*-vxworks*)
454                             fmt=aout em=sparcaout ;;
455       sparc-*-coff)         fmt=coff ;;
456       sparc-*-linux*aout*)  fmt=aout em=linux ;;
457       sparc-*-linux-gnu*)   fmt=elf em=linux ;;
458       sparc-*-lynxos*)      fmt=coff em=lynx ;;
459       sparc-fujitsu-none)   fmt=aout ;;
460       sparc-*-elf | sparc-*-sysv4* | sparc-*-solaris*)
461                             fmt=elf ;;
462       sparc-*-netbsd*)      em=nbsd bfd_gas=yes
463                             case ${cpu} in
464                                 sparc) case ${os} in
465                                            *elf*) fmt=elf ;;
466                                            *)     fmt=aout ;;
467                                        esac ;;
468                                 sparc64) fmt=elf ;;
469                             esac
470                             ;;
471       sparc-*-openbsd*)     em=nbsd
472                             case ${cpu} in
473                                sparc) fmt=aout ;;
474                                sparc64) fmt=elf ;;
475                             esac
476                             ;;
478       strongarm-*-coff)     fmt=coff ;;
479       strongarm-*-elf)      fmt=elf ;;
480       xscale-*-coff)     fmt=coff ;;
481       xscale-*-elf)      fmt=elf ;;
483       tic30-*-*aout*)       fmt=aout bfd_gas=yes ;;
484       tic30-*-*coff*)       fmt=coff bfd_gas=yes ;;
485       tic54x-*-* | c54x*-*-*)
486                             fmt=coff bfd_gas=yes need_libm=yes;;
487       tic80-*-*)            fmt=coff ;;
489       v850-*-*)             fmt=elf bfd_gas=yes ;;
490       v850e-*-*)            fmt=elf bfd_gas=yes ;;
491       v850ea-*-*)           fmt=elf bfd_gas=yes ;;
493       vax-*-netbsdelf*)     fmt=elf em=nbsd bfd_gas=yes ;;
494       vax-*-netbsdaout* | vax-*-netbsd*)
495                             fmt=aout em=nbsd ;;
496       vax-*-bsd* | vax-*-ultrix*)
497                             fmt=aout ;;
498       vax-*-vms)            fmt=vms ;;
500       w65-*-*)              fmt=coff ;;
502       xstormy16-*-*)        fmt=elf bfd_gas=yes ;;
504       z8k-*-coff | z8k-*-sim)
505                             fmt=coff ;;
507       *-*-aout | *-*-scout)
508                             fmt=aout ;;
509       *-*-freebsd*)         fmt=elf em=freebsd bfd_gas=yes ;;
510       *-*-nindy*)
511                             fmt=bout ;;
512       *-*-bsd*)
513                             fmt=aout em=sun3 ;;
514       *-*-generic)          fmt=generic ;;
515       *-*-xray | *-*-hms)   fmt=coff ;;
516       *-*-sim)              fmt=coff ;;
517       *-*-elf | *-*-sysv4* | *-*-solaris*)
518                             AC_MSG_WARN(GAS support for ${generic_target} is incomplete.)
519                             fmt=elf dev=yes ;;
520       *-*-vxworks)          fmt=aout ;;
521       *-*-netware)          fmt=elf ;;
522     esac
524     if test ${this_target} = $target ; then
525       endian_def=
526       if test x${endian} = xbig; then
527         endian_def=1
528       elif test x${endian} = xlittle; then
529         endian_def=0
530       fi
531       if test x${endian_def} != x; then
532         AC_DEFINE_UNQUOTED(TARGET_BYTES_BIG_ENDIAN, $endian_def,
533                            [Define as 1 if big endian.])
534       fi
535     fi
537     case ${cpu_type}-${fmt} in
538       alpha*-*) bfd_gas=yes ;;
539       arm-*)    bfd_gas=yes ;;
540     # not yet
541     # i386-aout)        bfd_gas=preferred ;;
542       ia64*-*)  bfd_gas=yes ;;
543       mips-*)   bfd_gas=yes ;;
544       ns32k-*)  bfd_gas=yes ;;
545       pdp11-*)  bfd_gas=yes ;;
546       ppc-*)    bfd_gas=yes ;;
547       sparc-*)  bfd_gas=yes ;;
548       strongarm-*)      bfd_gas=yes ;;
549       xscale-*) bfd_gas=yes ;;
550       *-elf)    bfd_gas=yes ;;
551       *-ecoff)  bfd_gas=yes ;;
552       *-som)    bfd_gas=yes ;;
553     #enable bfd for coff and aout to allow testing if a bfd target is
554     #the primary target, but not for coff or aout as the primary target
555       i386-coff)        if test x${primary_bfd_gas} = xyes; then bfd_gas=yes; fi ;;
556       i386-aout)        if test x${primary_bfd_gas} = xyes; then bfd_gas=yes; fi ;;
557       *)                ;;
558     esac
560 # Other random stuff.
562     case ${cpu_type} in
563       mips)
564         # Set mips_cpu to the name of the default CPU.
565         case ${target_cpu} in
566           mips | mipsbe | mipseb | mipsle | mipsel | mips64 | mips64el)
567             mips_cpu=from-abi
568             ;;
569           mipsisa32 | mipsisa32el)
570             mips_cpu=mips32
571             ;;
572           mipsisa64 | mipsisa64el)
573             mips_cpu=mips64
574             ;;
575           mipstx39 | mipstx39el)
576             mips_cpu=r3900
577             ;;
578           mips64* | mipsisa64* | mipsisa32*)
579 changequote(,)dnl
580             mips_cpu=`echo $target_cpu | sed -e 's/[a-z]*..//' -e 's/el$//'`
581 changequote([,])dnl
582             ;;
583           *)
584             AC_ERROR($target_cpu isn't a supported MIPS CPU name)
585             ;;
586         esac
587         # See whether it's appropriate to set E_MIPS_ABI_O32 for o32
588         # binaries.  It's a GNU extension that some OSes don't understand.
589         # The value only matters on ELF targets.
590         case ${target} in
591           *-*-irix*)
592             use_e_mips_abi_o32=0
593             ;;
594           *)
595             use_e_mips_abi_o32=1
596             ;;
597         esac
598         # Decide whether to generate 32-bit or 64-bit code by default.
599         # Used to resolve -march=from-abi when an embedded ABI is selected.
600         case ${target} in
601           mips64*-*-* | mipsisa64*-*-*)
602             mips_default_64bit=1
603             ;;
604           *)
605             mips_default_64bit=0
606             ;;
607         esac
608         AC_DEFINE_UNQUOTED(MIPS_CPU_STRING_DEFAULT, "$mips_cpu",
609                            [Default CPU for MIPS targets. ])
610         AC_DEFINE_UNQUOTED(USE_E_MIPS_ABI_O32, $use_e_mips_abi_o32,
611                            [Allow use of E_MIPS_ABI_O32 on MIPS targets. ])
612         AC_DEFINE_UNQUOTED(MIPS_DEFAULT_64BIT, $mips_default_64bit,
613                            [Generate 64-bit code by default on MIPS targets. ])
614         ;;
615     esac
617     # Do we need the opcodes library?
618     case ${cpu_type} in
619       vax | i386 | tic30)
620         ;;
622       *)
623         need_opcodes=yes
625         case "${enable_shared}" in
626         yes) shared_opcodes=true ;;
627         *opcodes*) shared_opcodes=true ;;
628         *) shared_opcodes=false ;;
629         esac
630         if test "${shared_opcodes}" = "true"; then
631           # A shared libopcodes must be linked against libbfd.
632           need_bfd=yes
633         fi
634         ;;
635     esac
637     # Any other special object files needed ?
638     case ${cpu_type} in
639       fr30 | ip2k | m32r | openrisc)
640         using_cgen=yes
641         ;;
643       frv)
644         using_cgen=yes
645         ;;
646       m68k)
647         case ${extra_objects} in
648         *m68k-parse.o*) ;;
649         *) extra_objects="$extra_objects m68k-parse.o" ;;
650         esac
651         ;;
653       mips)
654         echo ${extra_objects} | grep -s "itbl-parse.o" 
655         if test $? -ne 0 ; then
656           extra_objects="$extra_objects itbl-parse.o"
657         fi
659         echo ${extra_objects} | grep -s "itbl-lex.o" 
660         if test $? -ne 0 ; then
661           extra_objects="$extra_objects itbl-lex.o"
662         fi
664         echo ${extra_objects} | grep -s "itbl-ops.o" 
665         if test $? -ne 0 ; then
666           extra_objects="$extra_objects itbl-ops.o"
667         fi
668         ;;
670       i386 | s390 | sparc)
671         if test $this_target = $target ; then
672           AC_DEFINE_UNQUOTED(DEFAULT_ARCH, "${arch}", [Default architecture.])
673         fi
674         ;;
676       xstormy16)
677         using_cgen=yes
678         ;;
680       *)
681         ;;
682     esac
684     if test $using_cgen = yes ; then
685         case "x${extra_objects}" in
686         *cgen.o*) ;;
687         *) extra_objects="$extra_objects cgen.o" ;;
688         esac
689     fi
691 # See if we really can support this configuration with the emulation code.
693     if test $this_target = $target ; then
694       primary_bfd_gas=$bfd_gas
695       obj_format=$fmt
696       te_file=$em
698       if test $bfd_gas = no ; then
699         # Can't support other configurations this way.
700         break
701       fi
702     elif test $bfd_gas = no ; then
703       # Can't support this configuration.
704       break
705     fi
707 # From target name and format, produce a list of supported emulations.
709     case ${generic_target}-${fmt} in
710       mips-*-irix5*-*)  emulation="mipsbelf mipslelf mipself mipsbecoff mipslecoff mipsecoff" ;;
711       mips*-*-linux*-*) case "$endian" in
712                         big)    emulation="mipsbelf mipslelf mipself" ;;
713                         *)      emulation="mipslelf mipsbelf mipself" ;;
714                         esac ;;
715       mips-*-lnews*-ecoff) ;;
716       mips-*-*-ecoff)   case "$endian" in
717                         big)    emulation="mipsbecoff mipslecoff mipsecoff" ;;
718                         *)      emulation="mipslecoff mipsbecoff mipsecoff" ;;
719                         esac ;;
720       mips-*-*-elf)     case "$endian" in
721                         big)    emulation="mipsbelf mipslelf mipself" ;;
722                         *)      emulation="mipslelf mipsbelf mipself" ;;
723                         esac ;;
724       mips-*-sysv4*MP*-*) emulation="mipsbelf mipslelf mipself mipsbecoff mipslecoff mipsecoff" ;;
725       # i386-pc-pe-coff != i386-pc-coff.
726       i386-*-pe-coff)   ;;
727       # Uncommenting the next line will turn on support for i386 AOUT
728       # for the default linux configuration
729       # i386-*-linux*-elf) emulation="i386elf i386aout" ;;
730       #
731       i386-*-aout)      emulation="i386aout" ;;
732       i386-*-coff)      emulation="i386coff" ;;
733       i386-*-elf)       emulation="i386elf" ;;
735       # Always all formats.  The first stated emulation becomes the default.
736       cris-*-*aout*)    emulation="crisaout criself" ;;
737       cris-*-*)         emulation="criself crisaout" ;;
738     esac
740     emulations="$emulations $emulation"
742 done
744 # Turn on all targets if possible
745 if test ${all_targets} = "yes"; then
746   case ${target_cpu_type} in
747   i386)
748     case ${obj_format} in
749     aout)
750       emulations="$emulations i386coff i386elf"
751       ;;
752     coff)
753       emulations="$emulations i386aout i386elf"
754     ;;
755     elf)
756       emulations="$emulations i386aout i386coff"
757       ;;
758     esac
759   ;;
760   esac
763 # Assign floating point type.  Most processors with FP support
764 # IEEE FP.  On those that don't support FP at all, usually IEEE
765 # is emulated.
766 case ${target_cpu} in
767   vax | tahoe ) atof=${target_cpu} ;;
768   pdp11)        atof=vax ;;
769   *)            atof=ieee ;;
770 esac
772 case "${obj_format}" in
773   "") AC_MSG_ERROR(GAS does not know what format to use for target ${target}) ;;
774 esac
776 # Unfortunately the cpu in cpu-opc.h file isn't always $(TARGET_CPU).
777 cgen_cpu_prefix=""
778 if test $using_cgen = yes ; then
779   case ${target_cpu} in
780     *) cgen_cpu_prefix=${target_cpu} ;;
781   esac
782   AC_SUBST(cgen_cpu_prefix)
783   AC_DEFINE(USING_CGEN, 1, [Using cgen code?])
787 dnl Make sure the desired support files exist.
790 if test ! -r ${srcdir}/config/tc-${target_cpu_type}.c; then
791   AC_MSG_ERROR(GAS does not support target CPU ${target_cpu_type})
794 if test ! -r ${srcdir}/config/obj-${obj_format}.c; then
795   AC_MSG_ERROR(GAS does not have support for object file format ${obj_format})
798 case ${user_bfd_gas}-${primary_bfd_gas} in
799   yes-yes | no-no)
800     # We didn't override user's choice.
801     ;;
802   no-yes)
803     AC_MSG_WARN(Use of BFD is required for ${target}; overriding config options.)
804     ;;
805   no-preferred)
806     primary_bfd_gas=no
807     ;;
808   *-preferred)
809     primary_bfd_gas=yes
810     ;;
811   yes-*)
812     primary_bfd_gas=yes
813     ;;
814   -*)
815     # User specified nothing.
816     ;;
817 esac
819 # Some COFF configurations want these random other flags set.
820 case ${obj_format} in
821   coff)
822     case ${target_cpu_type} in
823       i386) AC_DEFINE(I386COFF, 1, [Using i386 COFF?]) ;;
824       m68k) AC_DEFINE(M68KCOFF, 1, [Using m68k COFF?]) ;;
825       m88k) AC_DEFINE(M88KCOFF, 1, [Using m88k COFF?]) ;;
826     esac
827     ;;
828 esac
830 # Getting this done right is going to be a bitch.  Each configuration specified
831 # with --enable-targets=... should be checked for environment, format, cpu, and
832 # bfd_gas setting.
834 # For each configuration, the necessary object file support code must be linked
835 # in.  This might be only one, it might be up to four.  The necessary emulation
836 # code needs to be provided, too.
838 # And then there's "--enable-targets=all"....
840 # For now, just always do it for MIPS ELF or ECOFF configurations.  Sigh.
842 formats="${obj_format}"
843 emfiles=""
844 EMULATIONS=""
845 GAS_UNIQ(emulations)
846 for em in . $emulations ; do
847   case $em in
848     .)  continue ;;
849     mipsbelf | mipslelf | mipself)
850         fmt=elf   file=mipself ;;
851     mipsbecoff | mipslecoff | mipsecoff)
852         fmt=ecoff file=mipsecoff ;;
853     *coff)
854         fmt=coff  file=$em ;;
855     *aout)
856         fmt=aout file=$em ;;
857     *elf)
858         fmt=elf file=$em ;;
859   esac
860   formats="$formats $fmt"
861   emfiles="$emfiles e-$file.o"
862   EMULATIONS="$EMULATIONS &$em,"
863 done
864 GAS_UNIQ(formats)
865 GAS_UNIQ(emfiles)
866 if test `set . $formats ; shift ; echo $#` -gt 1 ; then
867   for fmt in $formats ; do
868     case $fmt in
869       aout)     AC_DEFINE(OBJ_MAYBE_AOUT, 1,    [a.out support?])   ;;
870       bout)     AC_DEFINE(OBJ_MAYBE_BOUT, 1,    [b.out support?])   ;;
871       coff)     AC_DEFINE(OBJ_MAYBE_COFF, 1,    [COFF support?])    ;;
872       ecoff)    AC_DEFINE(OBJ_MAYBE_ECOFF, 1,   [ECOFF support?])   ;;
873       elf)      AC_DEFINE(OBJ_MAYBE_ELF, 1,     [ELF support?])     ;;
874       generic)  AC_DEFINE(OBJ_MAYBE_GENERIC, 1, [generic support?]) ;;
875       hp300)    AC_DEFINE(OBJ_MAYBE_HP300, 1,   [HP300 support?])   ;;
876       ieee)     AC_DEFINE(OBJ_MAYBE_IEEE, 1,    [IEEE support?])    ;;
877       som)      AC_DEFINE(OBJ_MAYBE_SOM, 1,     [SOM support?])     ;;
878       vms)      AC_DEFINE(OBJ_MAYBE_VMS, 1,     [VMS support?])     ;;
879     esac
880     extra_objects="$extra_objects obj-$fmt.o"
881   done
882   obj_format=multi
884 if test `set . $emfiles ; shift ; echo $#` -gt 0 ; then
885   DEFAULT_EMULATION=`set . $emulations ; echo $2`
886   # e-mips* has more than one emulation per file, e-i386* has just one at the
887   # moment.  If only one emulation is specified, then don't define
888   # USE_EMULATIONS or include any of the e-files as they will only be bloat.
889   case "${obj_format}${emfiles}" in
890     multi* | *mips*)
891       extra_objects="$extra_objects $emfiles"
892       AC_DEFINE(USE_EMULATIONS, 1, [Use emulation support?]) ;;
893   esac
895 AC_SUBST(extra_objects)
896 AC_DEFINE_UNQUOTED(EMULATIONS, $EMULATIONS, [Supported emulations.])
897 AC_DEFINE_UNQUOTED(DEFAULT_EMULATION, "$DEFAULT_EMULATION",
898                    [Default emulation.])
900 case ${primary_bfd_gas}-${target_cpu_type}-${obj_format} in
901   yes-*-coff)   need_bfd=yes ;;
902   no-*-coff)    need_bfd=yes
903                 AC_DEFINE(MANY_SEGMENTS, 1, [old COFF support?]) ;;
904 esac
906 reject_dev_configs=yes
908 case ${reject_dev_configs}-${dev} in
909   yes-yes) # Oops.
910     AC_MSG_ERROR(GAS does not support the ${generic_target} configuration.)
911     ;;
912 esac
914 AC_SUBST(target_cpu_type)
915 AC_SUBST(obj_format)
916 AC_SUBST(te_file)
917 AC_SUBST(install_tooldir)
918 AC_SUBST(atof)
919 dnl AC_SUBST(emulation)
921 case "${primary_bfd_gas}" in
922   yes)  AC_DEFINE(BFD_ASSEMBLER, 1, [Use BFD interface?])
923         need_bfd=yes ;;
924 esac
926 # do we need the opcodes library?
927 case "${need_opcodes}" in
928 yes)
929   OPCODES_LIB=../opcodes/libopcodes.la
930   ;;
931 esac
933 case "${need_bfd}" in
934 yes)
935   BFDLIB=../bfd/libbfd.la
936   ALL_OBJ_DEPS="$ALL_OBJ_DEPS"' ../bfd/bfd.h $(INCDIR)/symcat.h'
937   ;;
938 esac
940 AC_SUBST(BFDLIB)
941 AC_SUBST(OPCODES_LIB)
943 AC_SUBST(ALL_OBJ_DEPS)
945 AC_DEFINE_UNQUOTED(TARGET_ALIAS,        "${target_alias}", [Target alias.])
946 AC_DEFINE_UNQUOTED(TARGET_CANONICAL,    "${target}",       [Canonical target.])
947 AC_DEFINE_UNQUOTED(TARGET_CPU,          "${target_cpu}",   [Target CPU.])
948 AC_DEFINE_UNQUOTED(TARGET_VENDOR,       "${target_vendor}", [Target vendor.])
949 AC_DEFINE_UNQUOTED(TARGET_OS,           "${target_os}",    [Target OS.])
951 AC_PROG_CC
953 AC_PROG_YACC
954 AM_PROG_LEX
956 ALL_LINGUAS="fr tr es"
957 CY_GNU_GETTEXT
959 AM_MAINTAINER_MODE
960 AC_EXEEXT
962 AC_CHECK_HEADERS(string.h stdlib.h memory.h strings.h unistd.h stdarg.h varargs.h errno.h sys/types.h)
964 # Put this here so that autoconf's "cross-compiling" message doesn't confuse
965 # people who are not cross-compiling but are compiling cross-assemblers.
966 AC_MSG_CHECKING(whether compiling a cross-assembler)
967 if test "${host}" = "${target}"; then
968   cross_gas=no
969 else
970   cross_gas=yes
971   AC_DEFINE(CROSS_COMPILE, 1, [Compiling cross-assembler?])
973 AC_MSG_RESULT($cross_gas)
975 dnl ansidecl.h will deal with const
976 dnl AC_CONST
977 AC_FUNC_ALLOCA
978 AC_C_INLINE
980 # VMS doesn't have unlink.
981 AC_CHECK_FUNCS(unlink remove, break)
983 # Some systems don't have sbrk().
984 AC_CHECK_FUNCS(sbrk)
986 # do we need the math library?
987 case "${need_libm}" in
988 yes) 
989   AC_CHECK_LIBM
990   AC_SUBST(LIBM)
991   ;;
992 esac
994 # Some non-ANSI preprocessors botch requoting inside strings.  That's bad
995 # enough, but on some of those systems, the assert macro relies on requoting
996 # working properly!
997 GAS_WORKING_ASSERT
999 # On some systems, the system header files may not declare malloc, realloc,
1000 # and free.  There are places where gas needs these functions to have been
1001 # declared -- such as when taking their addresses.
1002 gas_test_headers="
1003 #ifdef HAVE_MEMORY_H
1004 #include <memory.h>
1005 #endif
1006 #ifdef HAVE_STRING_H
1007 #include <string.h>
1008 #else
1009 #ifdef HAVE_STRINGS_H
1010 #include <strings.h>
1011 #endif
1012 #endif
1013 #ifdef HAVE_STDLIB_H
1014 #include <stdlib.h>
1015 #endif
1016 #ifdef HAVE_UNISTD_H
1017 #include <unistd.h>
1018 #endif
1020 GAS_CHECK_DECL_NEEDED(strstr, f, char *(*f)(), $gas_test_headers)
1021 GAS_CHECK_DECL_NEEDED(malloc, f, char *(*f)(), $gas_test_headers)
1022 GAS_CHECK_DECL_NEEDED(free, f, void (*f)(), $gas_test_headers)
1023 GAS_CHECK_DECL_NEEDED(sbrk, f, char *(*f)(), $gas_test_headers)
1024 GAS_CHECK_DECL_NEEDED(environ, f, char **f, $gas_test_headers)
1026 # Does errno.h declare errno, or do we have to add a separate declaration
1027 # for it?
1028 GAS_CHECK_DECL_NEEDED(errno, f, int f, [
1029 #ifdef HAVE_ERRNO_H
1030 #include <errno.h>
1031 #endif
1034 dnl This must come last.
1036 dnl We used to make symlinks to files in the source directory, but now
1037 dnl we just use the right name for .c files, and create .h files in
1038 dnl the build directory which include the right .h file.  Make sure
1039 dnl the old symlinks don't exist, so that a reconfigure in an existing
1040 dnl directory behaves reasonably.
1042 AC_OUTPUT(Makefile doc/Makefile ${GDBINIT}:gdbinit.in po/Makefile.in:po/Make-in,
1043 [rm -f targ-cpu.c targ-cpu.h obj-format.h obj-format.c targ-env.h atof-targ.c itbl-cpu.h
1044  echo '#include "tc-'"${target_cpu_type}"'.h"' > targ-cpu.h
1045  echo '#include "obj-'"${obj_format}"'.h"' > obj-format.h
1046  echo '#include "te-'"${te_file}"'.h"' > targ-env.h
1047  echo '#include "itbl-'"${target_cpu_type}"'.h"' > itbl-cpu.h
1048  if test "x$cgen_cpu_prefix" != x ; then
1049    echo '#include "opcodes/'"${cgen_cpu_prefix}"'-desc.h"' > cgen-desc.h
1050  fi
1052  sed -e '/POTFILES =/r po/POTFILES' po/Makefile.in > po/Makefile],
1053 [target_cpu_type=${target_cpu_type}
1054  cgen_cpu_prefix=${cgen_cpu_prefix}
1055  obj_format=${obj_format}
1056  te_file=${te_file}])