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