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