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