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