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