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