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