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