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