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