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