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