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