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