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