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