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