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