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