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