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