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