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