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