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