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