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