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