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