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