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