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