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