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