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