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