1999-09-04 Steve Chamberlain <sac@pobox.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 ;;
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 ;;
7d4ce8a9 165 hppa-*-linux-gnu*) fmt=elf em=hppa ;;
252b5132
RH
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 ;;
008960a5
ILT
190 i386-*-freebsdaout* | i386-*-freebsd[12].* | i386-*-freebsd[12])
191 fmt=aout em=386bsd ;;
192 i386-*-freebsd*) fmt=elf bfd_gas=yes ;;
252b5132
RH
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;;
53f3de98 205 i386-*-rtemself*) fmt=elf ;;
252b5132
RH
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 ;;
9750fcc5 214 i386-*-interix*) fmt=coff em=interix bfd_gas=yes ;;
252b5132
RH
215 i386-*-mingw32*) fmt=coff em=pe bfd_gas=yes ;;
216 i386-*-*nt*) fmt=coff em=pe ;;
29fe79d3 217 i386-*-vxworks*) fmt=aout ;;
252b5132
RH
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 ;;
bedf545c 226 i960-*-elf*) fmt=elf ;;
252b5132
RH
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 ;;
e4a86f6f 305 ppc-*-vxworks*) fmt=elf ;;
252b5132
RH
306
307 sh-*-elf*) fmt=elf ;;
308 sh-*-coff*) fmt=coff ;;
53f3de98 309 sh-*-rtemself*) fmt=elf ;;
252b5132
RH
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 ;;
4ca72d38
AM
393 #enable bfd for coff to allow testing if a bfd target is the primary target,
394 #but not for coff as the primary target
395 i386-coff) if test x${primary_bfd_gas} = xyes; then bfd_gas=yes; fi ;;
252b5132
RH
396 *) ;;
397 esac
398
399# Other random stuff.
400
401 # Do we need the opcodes library?
402 case ${cpu_type} in
403 vax | i386 | tic30)
404 ;;
405
406 *)
407 need_opcodes=yes
408
409 case "${enable_shared}" in
410 yes) shared_opcodes=true ;;
411 *opcodes*) shared_opcodes=true ;;
412 *) shared_opcodes=false ;;
413 esac
414 if test "${shared_opcodes}" = "true"; then
415 # A shared libopcodes must be linked against libbfd.
416 need_bfd=yes
417 fi
418 ;;
419 esac
420
421 # Any other special object files needed ?
422 case ${cpu_type} in
423 fr30 | m32r)
424 using_cgen=yes
425 ;;
426
427 m68k)
428 case ${extra_objects} in
429 *m68k-parse.o*) ;;
430 *) extra_objects="$extra_objects m68k-parse.o" ;;
431 esac
432 ;;
433
434 mips)
435 echo ${extra_objects} | grep -s "itbl-parse.o"
436 if test $? -ne 0 ; then
437 extra_objects="$extra_objects itbl-parse.o"
438 fi
439
440 echo ${extra_objects} | grep -s "itbl-lex.o"
441 if test $? -ne 0 ; then
442 extra_objects="$extra_objects itbl-lex.o"
443 fi
444
445 echo ${extra_objects} | grep -s "itbl-ops.o"
446 if test $? -ne 0 ; then
447 extra_objects="$extra_objects itbl-ops.o"
448 fi
449 ;;
450
451 sparc)
452 if test $this_target = $target ; then
453 AC_DEFINE_UNQUOTED(DEFAULT_ARCH, "${arch}", [Default architecture.])
454 fi
455 ;;
456 *)
457 ;;
458 esac
459
460 if test $using_cgen = yes ; then
461 case "x${extra_objects}" in
462 *cgen.o*) ;;
463 *) extra_objects="$extra_objects cgen.o" ;;
464 esac
465 fi
466
467# See if we really can support this configuration with the emulation code.
468
469 if test $this_target = $target ; then
470 primary_bfd_gas=$bfd_gas
471 obj_format=$fmt
472 te_file=$em
473
474 if test $bfd_gas = no ; then
475 # Can't support other configurations this way.
476 break
477 fi
478 elif test $bfd_gas = no ; then
479 # Can't support this configuration.
480 break
481 fi
482
483# From target name and format, produce a list of supported emulations.
484
485 case ${generic_target}-${fmt} in
486 mips-*-irix5*-*) emulation="mipsbelf mipslelf mipself mipsbecoff mipslecoff mipsecoff" ;;
487 mips-*-linux-gnu*-*) case "$endian" in
488 big) emulation="mipsbelf mipslelf mipself mipsbecoff mipslecoff mipsecoff" ;;
489 *) emulation="mipslelf mipsbelf mipself mipslecoff mipsbecoff mipsecoff" ;;
490 esac ;;
491 mips-*-lnews*-ecoff) ;;
492 mips-*-*-ecoff) case "$endian" in
493 big) emulation="mipsbecoff mipslecoff mipsecoff" ;;
494 *) emulation="mipslecoff mipsbecoff mipsecoff" ;;
495 esac ;;
496 mips-*-*-elf) case "$endian" in
497 big) emulation="mipsbelf mipslelf mipself" ;;
498 *) emulation="mipslelf mipsbelf mipself" ;;
252b5132 499 esac ;;
4ca72d38
AM
500 i386-*-elf) emulation="i386elf" ;;
501 i386-*-coff) emulation="i386coff" ;;
502 # Uncommenting the next line will turn on support for i386 COFF
503 # in any i386 ELF configuration.
504 # i386-*-*-elf) emulation="i386elf i386coff" ;;
252b5132
RH
505 esac
506
507 emulations="$emulations $emulation"
508
509done
510
511# Assign floating point type. Most processors with FP support
512# IEEE FP. On those that don't support FP at all, usually IEEE
513# is emulated.
514case ${target_cpu} in
515 vax | tahoe ) atof=${target_cpu} ;;
516 *) atof=ieee ;;
517esac
518
519case "${obj_format}" in
520 "") AC_MSG_ERROR(GAS does not know what format to use for target ${target}) ;;
521esac
522
523# Unfortunately the cpu in cpu-opc.h file isn't always $(TARGET_CPU).
524cgen_cpu_prefix=""
525if test $using_cgen = yes ; then
526 case ${target_cpu} in
527 *) cgen_cpu_prefix=${target_cpu} ;;
528 esac
529 AC_SUBST(cgen_cpu_prefix)
530 AC_DEFINE(USING_CGEN, 1, [Using cgen code?])
531fi
532
533dnl
534dnl Make sure the desired support files exist.
535dnl
536
537if test ! -r ${srcdir}/config/tc-${target_cpu_type}.c; then
538 AC_MSG_ERROR(GAS does not support target CPU ${target_cpu_type})
539fi
540
541if test ! -r ${srcdir}/config/obj-${obj_format}.c; then
542 AC_MSG_ERROR(GAS does not have support for object file format ${obj_format})
543fi
544
545case ${user_bfd_gas}-${primary_bfd_gas} in
546 yes-yes | no-no)
547 # We didn't override user's choice.
548 ;;
549 no-yes)
550 AC_MSG_WARN(Use of BFD is required for ${target}; overriding config options.)
551 ;;
552 no-preferred)
553 primary_bfd_gas=no
554 ;;
555 *-preferred)
556 primary_bfd_gas=yes
557 ;;
558 yes-*)
559 primary_bfd_gas=yes
560 ;;
561 -*)
562 # User specified nothing.
563 ;;
564esac
565
566# Some COFF configurations want these random other flags set.
567case ${obj_format} in
568 coff)
569 case ${target_cpu_type} in
570 i386) AC_DEFINE(I386COFF, 1, [Using i386 COFF?]) ;;
571 m68k) AC_DEFINE(M68KCOFF, 1, [Using m68k COFF?]) ;;
572 m88k) AC_DEFINE(M88KCOFF, 1, [Using m88k COFF?]) ;;
573 esac
574 ;;
575esac
576
577# Getting this done right is going to be a bitch. Each configuration specified
578# with --enable-targets=... should be checked for environment, format, cpu, and
579# bfd_gas setting.
580#
581# For each configuration, the necessary object file support code must be linked
582# in. This might be only one, it might be up to four. The necessary emulation
583# code needs to be provided, too.
584#
585# And then there's "--enable-targets=all"....
586#
587# For now, just always do it for MIPS ELF or ECOFF configurations. Sigh.
588
589formats="${obj_format}"
590emfiles=""
591EMULATIONS=""
592GAS_UNIQ(emulations)
593for em in . $emulations ; do
594 case $em in
595 .) continue ;;
596 mipsbelf | mipslelf)
597 fmt=elf file=mipself ;;
598 mipsbecoff | mipslecoff)
599 fmt=ecoff file=mipsecoff ;;
600 i386coff)
601 fmt=coff file=i386coff ;;
602 i386elf)
603 fmt=elf file=i386elf ;;
604 esac
605 formats="$formats $fmt"
606 emfiles="$emfiles e-$file.o"
607 EMULATIONS="$EMULATIONS &$em,"
608done
609GAS_UNIQ(formats)
610GAS_UNIQ(emfiles)
611if test `set . $formats ; shift ; echo $#` -gt 1 ; then
612 for fmt in $formats ; do
613 case $fmt in
614 aout) AC_DEFINE(OBJ_MAYBE_AOUT, 1, [a.out support?]) ;;
615 bout) AC_DEFINE(OBJ_MAYBE_BOUT, 1, [b.out support?]) ;;
616 coff) AC_DEFINE(OBJ_MAYBE_COFF, 1, [COFF support?]) ;;
617 ecoff) AC_DEFINE(OBJ_MAYBE_ECOFF, 1, [ECOFF support?]) ;;
618 elf) AC_DEFINE(OBJ_MAYBE_ELF, 1, [ELF support?]) ;;
619 generic) AC_DEFINE(OBJ_MAYBE_GENERIC, 1, [generic support?]) ;;
620 hp300) AC_DEFINE(OBJ_MAYBE_HP300, 1, [HP300 support?]) ;;
621 ieee) AC_DEFINE(OBJ_MAYBE_IEEE, 1, [IEEE support?]) ;;
622 som) AC_DEFINE(OBJ_MAYBE_SOM, 1, [SOM support?]) ;;
623 vms) AC_DEFINE(OBJ_MAYBE_VMS, 1, [VMS support?]) ;;
624 esac
625 extra_objects="$extra_objects obj-$fmt.o"
626 done
627 obj_format=multi
628fi
629if test `set . $emfiles ; shift ; echo $#` -gt 0 ; then
252b5132 630 DEFAULT_EMULATION=`set . $emulations ; echo $2`
4ca72d38
AM
631 # e-mips* has more than one emulation per file, e-i386* has just one at the
632 # moment. If only one emulation is specified, then don't define
633 # USE_EMULATIONS or include any of the e-files as they will only be bloat.
634 case "${obj_format}${emfiles}" in
635 multi* | *mips*)
636 te_file=multi
637 extra_objects="$extra_objects $emfiles"
638 AC_DEFINE(USE_EMULATIONS, 1, [Use emulation support?]) ;;
639 esac
252b5132
RH
640fi
641AC_SUBST(extra_objects)
642AC_DEFINE_UNQUOTED(EMULATIONS, $EMULATIONS, [Supported emulations.])
643AC_DEFINE_UNQUOTED(DEFAULT_EMULATION, "$DEFAULT_EMULATION",
644 [Default emulation.])
645
646case ${primary_bfd_gas}-${target_cpu_type}-${obj_format} in
647 yes-*-coff) need_bfd=yes ;;
648 no-*-coff) need_bfd=yes
649 AC_DEFINE(MANY_SEGMENTS, 1, [old COFF support?]) ;;
650esac
651
652reject_dev_configs=yes
653
654case ${reject_dev_configs}-${dev} in
655 yes-yes) # Oops.
656 AC_MSG_ERROR(GAS does not support the ${generic_target} configuration.)
657 ;;
658esac
659
660AC_SUBST(target_cpu_type)
661AC_SUBST(obj_format)
662AC_SUBST(te_file)
663AC_SUBST(install_tooldir)
664AC_SUBST(atof)
665dnl AC_SUBST(emulation)
666
667case "${primary_bfd_gas}" in
668 yes) AC_DEFINE(BFD_ASSEMBLER, 1, [Use BFD interface?])
669 need_bfd=yes ;;
670esac
671
672# do we need the opcodes library?
673case "${need_opcodes}" in
674yes)
675 OPCODES_LIB=../opcodes/libopcodes.la
676 ;;
677esac
678
679case "${need_bfd}" in
680yes)
681 BFDLIB=../bfd/libbfd.la
682 ALL_OBJ_DEPS="$ALL_OBJ_DEPS ../bfd/bfd.h"
683 ;;
684esac
685
686AC_SUBST(BFDLIB)
687AC_SUBST(OPCODES_LIB)
688
689AC_SUBST(ALL_OBJ_DEPS)
690
691AC_DEFINE_UNQUOTED(TARGET_ALIAS, "${target_alias}", [Target alias.])
692AC_DEFINE_UNQUOTED(TARGET_CANONICAL, "${target}", [Canonical target.])
693AC_DEFINE_UNQUOTED(TARGET_CPU, "${target_cpu}", [Target CPU.])
694AC_DEFINE_UNQUOTED(TARGET_VENDOR, "${target_vendor}", [Target vendor.])
695AC_DEFINE_UNQUOTED(TARGET_OS, "${target_os}", [Target OS.])
696
697AC_PROG_CC
698
699AC_PROG_YACC
700AM_PROG_LEX
701
702ALL_LINGUAS=
703CY_GNU_GETTEXT
704
705AM_MAINTAINER_MODE
706AC_EXEEXT
707
708AC_CHECK_HEADERS(string.h stdlib.h memory.h strings.h unistd.h stdarg.h varargs.h errno.h sys/types.h)
709
710# Put this here so that autoconf's "cross-compiling" message doesn't confuse
711# people who are not cross-compiling but are compiling cross-assemblers.
712AC_MSG_CHECKING(whether compiling a cross-assembler)
713if test "${host}" = "${target}"; then
714 cross_gas=no
715else
716 cross_gas=yes
717 AC_DEFINE(CROSS_COMPILE, 1, [Compiling cross-assembler?])
718fi
719AC_MSG_RESULT($cross_gas)
720
721dnl ansidecl.h will deal with const
722dnl AC_CONST
723AC_FUNC_ALLOCA
724AC_C_INLINE
725
726# VMS doesn't have unlink.
727AC_CHECK_FUNCS(unlink remove, break)
728
729# Some systems don't have sbrk().
730AC_CHECK_FUNCS(sbrk)
731
732# Some non-ANSI preprocessors botch requoting inside strings. That's bad
733# enough, but on some of those systems, the assert macro relies on requoting
734# working properly!
735GAS_WORKING_ASSERT
736
737# On some systems, the system header files may not declare malloc, realloc,
738# and free. There are places where gas needs these functions to have been
739# declared -- such as when taking their addresses.
740gas_test_headers="
741#ifdef HAVE_MEMORY_H
742#include <memory.h>
743#endif
744#ifdef HAVE_STRING_H
745#include <string.h>
746#else
747#ifdef HAVE_STRINGS_H
748#include <strings.h>
749#endif
750#endif
751#ifdef HAVE_STDLIB_H
752#include <stdlib.h>
753#endif
754#ifdef HAVE_UNISTD_H
755#include <unistd.h>
756#endif
757"
758GAS_CHECK_DECL_NEEDED(strstr, f, char *(*f)(), $gas_test_headers)
759GAS_CHECK_DECL_NEEDED(malloc, f, char *(*f)(), $gas_test_headers)
760GAS_CHECK_DECL_NEEDED(free, f, void (*f)(), $gas_test_headers)
761GAS_CHECK_DECL_NEEDED(sbrk, f, char *(*f)(), $gas_test_headers)
762GAS_CHECK_DECL_NEEDED(environ, f, char **f, $gas_test_headers)
763
764# Does errno.h declare errno, or do we have to add a separate declaration
765# for it?
766GAS_CHECK_DECL_NEEDED(errno, f, int f, [
767#ifdef HAVE_ERRNO_H
768#include <errno.h>
769#endif
770])
771
772dnl This must come last.
773
774dnl We used to make symlinks to files in the source directory, but now
775dnl we just use the right name for .c files, and create .h files in
776dnl the build directory which include the right .h file. Make sure
777dnl the old symlinks don't exist, so that a reconfigure in an existing
778dnl directory behaves reasonably.
779
76a27922 780AC_OUTPUT(Makefile doc/Makefile ${GDBINIT}:gdbinit.in po/Makefile.in:po/Make-in,
252b5132
RH
781[rm -f targ-cpu.c targ-cpu.h obj-format.h obj-format.c targ-env.h atof-targ.c itbl-cpu.h
782 echo '#include "tc-'"${target_cpu_type}"'.h"' > targ-cpu.h
783 echo '#include "obj-'"${obj_format}"'.h"' > obj-format.h
784 echo '#include "te-'"${te_file}"'.h"' > targ-env.h
785 echo '#include "itbl-'"${target_cpu_type}"'.h"' > itbl-cpu.h
786 if test "x$cgen_cpu_prefix" != x ; then
787 echo '#include "opcodes/'"${cgen_cpu_prefix}"'-desc.h"' > cgen-desc.h
788 fi
789
790 sed -e '/POTFILES =/r po/POTFILES' po/Makefile.in > po/Makefile],
791[target_cpu_type=${target_cpu_type}
792 cgen_cpu_prefix=${cgen_cpu_prefix}
793 obj_format=${obj_format}
794 te_file=${te_file}])
This page took 0.057959 seconds and 4 git commands to generate.