* config/tc-sh.h (TARGET_FORMAT): Use sh-linux targets.
[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.91)
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 changequote(,)dnl
237 i386-*-sysv[45]* | i386-*-solaris* | i386-*-elf)
238 fmt=elf bfd_gas=yes ;;
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 AC_DEFINE(STRICTCOFF, 1, [Using strict COFF?])
256 ;;
257 i386-*-rtemself*) fmt=elf ;;
258 i386-*-rtems*) fmt=coff ;;
259 i386-*-gnu*) fmt=elf ;;
260 i386-*-mach*)
261 fmt=aout em=mach bfd_gas=yes ;;
262 i386-*-msdos*) fmt=aout ;;
263 i386-*-moss*) fmt=elf ;;
264 i386-*-pe) fmt=coff em=pe bfd_gas=yes ;;
265 i386-*-cygwin*) fmt=coff em=pe bfd_gas=yes ;;
266 i386-*-interix*) fmt=coff em=interix bfd_gas=yes ;;
267 i386-*-mingw32*) fmt=coff em=pe bfd_gas=yes ;;
268 i386-*-*nt*) fmt=coff em=pe bfd_gas=yes ;;
269 i386-*-vxworks*) fmt=aout ;;
270 i860-stardent-sysv4* | i860-stardent-elf*)
271 fmt=elf bfd_gas=yes endian=little
272 AC_MSG_WARN(GAS support for ${generic_target} is preliminary and a work in progress) ;;
273 i960-*-bout) fmt=bout ;;
274 i960-*-coff) fmt=coff em=ic960 ;;
275 i960-*-rtems*) fmt=coff em=ic960 ;;
276 i960-*-nindy*) fmt=bout ;;
277 i960-*-vxworks4*) fmt=bout ;;
278 i960-*-vxworks5.0) fmt=bout ;;
279 i960-*-vxworks5.*) fmt=coff em=ic960 ;;
280 i960-*-vxworks*) fmt=bout ;;
281 i960-*-elf*) fmt=elf ;;
282
283 ia64-*-elf*) fmt=elf ;;
284 ia64-*-linux-gnu*) fmt=elf em=linux ;;
285
286 m32r-*-*) fmt=elf bfd_gas=yes ;;
287
288 m68hc11-*-*|m6811-*-*|m68hc12-*-*|m6812-*-*)fmt=elf bfd_gas=yes ;;
289
290 m68k-*-vxworks* | m68k-ericsson-ose | m68k-*-sunos*)
291 fmt=aout em=sun3 ;;
292 m68k-motorola-sysv*) fmt=coff em=delta ;;
293 m68k-bull-sysv3*) fmt=coff em=dpx2 ;;
294 m68k-apollo-*) fmt=coff em=apollo ;;
295 m68k-*-sysv4*) # must be before -sysv*
296 fmt=elf em=svr4 ;;
297 m68k-*-elf*) fmt=elf ;;
298 m68k-*-coff | m68k-*-sysv* | m68k-*-rtems*)
299 fmt=coff ;;
300 m68k-*-hpux*) fmt=hp300 em=hp300 ;;
301 m68k-*-linux*aout*) fmt=aout em=linux ;;
302 m68k-*-linux-gnu*) fmt=elf em=linux ;;
303 m68k-*-gnu*) fmt=elf ;;
304 m68k-*-lynxos*) fmt=coff em=lynx ;;
305 m68k-*-netbsd*) fmt=aout em=nbsd bfd_gas=yes ;;
306 m68k-*-openbsd*) fmt=aout em=nbsd bfd_gas=yes ;;
307 m68k-apple-aux*) fmt=coff em=aux ;;
308 m68k-*-psos*) fmt=elf em=psos;;
309
310 m88k-motorola-sysv3*) fmt=coff em=delt88 ;;
311 m88k-*-coff*) fmt=coff ;;
312
313 mcore-*-elf) fmt=elf bfd_gas=yes ;;
314 mcore-*-pe) fmt=coff em=pe bfd_gas=yes ;;
315
316 # don't change em like *-*-bsd does
317 mips-dec-netbsd*) fmt=elf endian=little ;;
318 mips-dec-openbsd*) fmt=elf endian=little ;;
319 mips-dec-bsd*) fmt=aout endian=little ;;
320 mips-sony-bsd*) fmt=ecoff ;;
321 mips-*-bsd*) AC_MSG_ERROR(Unknown vendor for mips-bsd configuration.) ;;
322 mips-*-ultrix*) fmt=ecoff endian=little ;;
323 mips-*-osf*) fmt=ecoff endian=little ;;
324 mips-*-ecoff*) fmt=ecoff ;;
325 mips-*-ecoff*) fmt=ecoff ;;
326 mips-*-pe*) fmt=coff endian=little em=pe ;;
327 mips-*-irix6*) fmt=elf ;;
328 mips-*-irix5*) fmt=elf ;;
329 mips-*-irix*) fmt=ecoff ;;
330 mips-*-lnews*) fmt=ecoff em=lnews ;;
331 mips-*-riscos*) fmt=ecoff ;;
332 mips-*-sysv4*MP*) fmt=elf em=tmips ;;
333 mips-*-sysv*) fmt=ecoff ;;
334 mips-*-elf* | mips-*-rtems* | mips-*-linux-gnu* | mips-*-gnu* | mips-*-openbsd*)
335 fmt=elf ;;
336 mips-*-vxworks*) fmt=elf
337 AC_DEFINE(MIPS_STABS_ELF, 1,
338 [Use ELF stabs for MIPS, not ECOFF stabs])
339 ;;
340 mn10200-*-*) fmt=elf bfd_gas=yes ;;
341 mn10300-*-*) fmt=elf bfd_gas=yes ;;
342 pj*) fmt=elf ;;
343 ppc-*-pe | ppc-*-cygwin* | ppc-*-winnt*)
344 fmt=coff em=pe ;;
345 ppc-*-aix*) fmt=coff ;;
346 ppc-*-beos*) fmt=coff ;;
347 ppc-*-*bsd* | ppc-*-elf* | ppc-*-eabi* | ppc-*-sysv4*)
348 fmt=elf ;;
349 ppc-*-linux-gnu*) fmt=elf
350 case "$endian" in
351 big) ;;
352 *) AC_MSG_ERROR(GNU/Linux must be configured big endian) ;;
353 esac
354 ;;
355 ppc-*-solaris*) fmt=elf
356 if test ${this_target} = $target; then
357 AC_DEFINE(TARGET_SOLARIS_COMMENT, 1,
358 [Define if default target is PowerPC Solaris.])
359 fi
360 if test x${endian} = xbig; then
361 AC_MSG_ERROR(Solaris must be configured little endian)
362 fi
363 ;;
364 ppc-*-rtems*) fmt=elf ;;
365 ppc-*-macos* | ppc-*-mpw*)
366 fmt=coff em=macos ;;
367 ppc-*-netware*) fmt=elf em=ppcnw ;;
368 ppc-*-vxworks*) fmt=elf ;;
369
370 sh-*-linux*) fmt=elf em=linux ;;
371 sh-*-elf*) fmt=elf ;;
372 sh-*-coff*) fmt=coff ;;
373 sh-*-pe*) fmt=coff em=pe bfd_gas=yes;;
374 sh-*-rtemself*) fmt=elf ;;
375 sh-*-rtems*) fmt=coff ;;
376
377 ns32k-pc532-mach* | ns32k-pc532-ux*) fmt=aout em=pc532mach ;;
378 ns32k-pc532-netbsd* | ns32k-pc532-lites*) fmt=aout em=nbsd532 ;;
379 ns32k-pc532-openbsd*) fmt=aout em=nbsd532 ;;
380
381 sparc-*-rtems*) fmt=aout ;;
382 sparc-*-sunos4*) fmt=aout em=sun3 ;;
383 sparc-*-aout | sparc*-*-vxworks*)
384 fmt=aout em=sparcaout ;;
385 sparc-*-coff) fmt=coff ;;
386 sparc-*-linux*aout*) fmt=aout em=linux ;;
387 sparc-*-linux-gnu*) fmt=elf em=linux ;;
388 sparc-*-lynxos*) fmt=coff em=lynx ;;
389 sparc-fujitsu-none) fmt=aout ;;
390 sparc-*-elf | sparc-*-sysv4* | sparc-*-solaris*)
391 fmt=elf ;;
392 sparc-*-netbsd*) em=nbsd bfd_gas=yes
393 case ${cpu} in
394 sparc) case ${os} in
395 *elf*) fmt=elf ;;
396 *) fmt=aout ;;
397 esac ;;
398 sparc64) fmt=elf ;;
399 esac
400 ;;
401 sparc-*-openbsd*) fmt=aout em=nbsd ;;
402
403 strongarm-*-coff) fmt=coff ;;
404 strongarm-*-elf) fmt=elf ;;
405
406 tic30-*-*aout*) fmt=aout bfd_gas=yes ;;
407 tic30-*-*coff*) fmt=coff bfd_gas=yes ;;
408 tic54x-*-* | c54x*-*-*)
409 fmt=coff bfd_gas=yes need_libm=yes;;
410 tic80-*-*) fmt=coff ;;
411
412 v850-*-*) fmt=elf bfd_gas=yes ;;
413 v850e-*-*) fmt=elf bfd_gas=yes ;;
414 v850ea-*-*) fmt=elf bfd_gas=yes ;;
415
416 vax-*-bsd* | vax-*-ultrix*)
417 fmt=aout ;;
418 vax-*-vms) fmt=vms ;;
419
420
421 z8k-*-coff | z8k-*-sim)
422 fmt=coff ;;
423
424 w65-*-*) fmt=coff ;;
425
426 *-*-aout | *-*-scout)
427 fmt=aout ;;
428 *-*-nindy*)
429 fmt=bout ;;
430 *-*-bsd*)
431 fmt=aout em=sun3 ;;
432 *-*-generic) fmt=generic ;;
433 *-*-xray | *-*-hms) fmt=coff ;;
434 *-*-sim) fmt=coff ;;
435 *-*-elf | *-*-sysv4* | *-*-solaris*)
436 AC_MSG_WARN(GAS support for ${generic_target} is incomplete.)
437 fmt=elf dev=yes ;;
438 *-*-vxworks) fmt=aout ;;
439 *-*-netware) fmt=elf ;;
440 esac
441
442 if test ${this_target} = $target ; then
443 endian_def=
444 if test x${endian} = xbig; then
445 endian_def=1
446 elif test x${endian} = xlittle; then
447 endian_def=0
448 fi
449 if test x${endian_def} != x; then
450 AC_DEFINE_UNQUOTED(TARGET_BYTES_BIG_ENDIAN, $endian_def,
451 [Define as 1 if big endian.])
452 fi
453 fi
454
455 case ${cpu_type}-${fmt} in
456 alpha*-*) bfd_gas=yes ;;
457 arm-*) bfd_gas=yes ;;
458 # not yet
459 # i386-aout) bfd_gas=preferred ;;
460 ia64*-*) bfd_gas=yes ;;
461 mips-*) bfd_gas=yes ;;
462 ns32k-*) bfd_gas=yes ;;
463 ppc-*) bfd_gas=yes ;;
464 sparc-*) bfd_gas=yes ;;
465 strongarm-*) bfd_gas=yes ;;
466 *-elf) bfd_gas=yes ;;
467 *-ecoff) bfd_gas=yes ;;
468 *-som) bfd_gas=yes ;;
469 #enable bfd for coff and aout to allow testing if a bfd target is
470 #the primary target, but not for coff or aout as the primary target
471 i386-coff) if test x${primary_bfd_gas} = xyes; then bfd_gas=yes; fi ;;
472 i386-aout) if test x${primary_bfd_gas} = xyes; then bfd_gas=yes; fi ;;
473 *) ;;
474 esac
475
476 # Other random stuff.
477
478 # Do we need the opcodes library?
479 case ${cpu_type} in
480 vax | i386 | tic30)
481 ;;
482
483 *)
484 need_opcodes=yes
485
486 case "${enable_shared}" in
487 yes) shared_opcodes=true ;;
488 *opcodes*) shared_opcodes=true ;;
489 *) shared_opcodes=false ;;
490 esac
491 if test "${shared_opcodes}" = "true"; then
492 # A shared libopcodes must be linked against libbfd.
493 need_bfd=yes
494 fi
495 ;;
496 esac
497
498 # Any other special object files needed ?
499 case ${cpu_type} in
500 fr30 | m32r)
501 using_cgen=yes
502 ;;
503
504 m68k)
505 case ${extra_objects} in
506 *m68k-parse.o*) ;;
507 *) extra_objects="$extra_objects m68k-parse.o" ;;
508 esac
509 ;;
510
511 mips)
512 echo ${extra_objects} | grep -s "itbl-parse.o"
513 if test $? -ne 0 ; then
514 extra_objects="$extra_objects itbl-parse.o"
515 fi
516
517 echo ${extra_objects} | grep -s "itbl-lex.o"
518 if test $? -ne 0 ; then
519 extra_objects="$extra_objects itbl-lex.o"
520 fi
521
522 echo ${extra_objects} | grep -s "itbl-ops.o"
523 if test $? -ne 0 ; then
524 extra_objects="$extra_objects itbl-ops.o"
525 fi
526 ;;
527
528 sparc)
529 if test $this_target = $target ; then
530 AC_DEFINE_UNQUOTED(DEFAULT_ARCH, "${arch}", [Default architecture.])
531 fi
532 ;;
533 *)
534 ;;
535 esac
536
537 if test $using_cgen = yes ; then
538 case "x${extra_objects}" in
539 *cgen.o*) ;;
540 *) extra_objects="$extra_objects cgen.o" ;;
541 esac
542 fi
543
544 # See if we really can support this configuration with the emulation code.
545
546 if test $this_target = $target ; then
547 primary_bfd_gas=$bfd_gas
548 obj_format=$fmt
549 te_file=$em
550
551 if test $bfd_gas = no ; then
552 # Can't support other configurations this way.
553 break
554 fi
555 elif test $bfd_gas = no ; then
556 # Can't support this configuration.
557 break
558 fi
559
560 # From target name and format, produce a list of supported emulations.
561
562 case ${generic_target}-${fmt} in
563 mips-*-irix5*-*) emulation="mipsbelf mipslelf mipself mipsbecoff mipslecoff mipsecoff" ;;
564 mips-*-linux-gnu*-*) case "$endian" in
565 big) emulation="mipsbelf mipslelf mipself mipsbecoff mipslecoff mipsecoff" ;;
566 *) emulation="mipslelf mipsbelf mipself mipslecoff mipsbecoff mipsecoff" ;;
567 esac ;;
568 mips-*-lnews*-ecoff) ;;
569 mips-*-*-ecoff) case "$endian" in
570 big) emulation="mipsbecoff mipslecoff mipsecoff" ;;
571 *) emulation="mipslecoff mipsbecoff mipsecoff" ;;
572 esac ;;
573 mips-*-*-elf) case "$endian" in
574 big) emulation="mipsbelf mipslelf mipself" ;;
575 *) emulation="mipslelf mipsbelf mipself" ;;
576 esac ;;
577 mips-*-sysv4*MP*-*) emulation="mipsbelf mipslelf mipself mipsbecoff mipslecoff mipsecoff" ;;
578 # i386-pc-pe-coff != i386-pc-coff.
579 i386-*-pe-coff) ;;
580 # Uncommenting the next line will turn on support for i386 AOUT
581 # for the default linux configuration
582 # i386-*-linux*-elf) emulation="i386elf i386aout" ;;
583 #
584 i386-*-aout) emulation="i386aout" ;;
585 i386-*-coff) emulation="i386coff" ;;
586 i386-*-elf) emulation="i386elf" ;;
587
588 # Always all formats. Having a.out first makes it the default.
589 cris-*-*) emulation="crisaout criself" ;;
590 esac
591
592 emulations="$emulations $emulation"
593
594 done
595
596 # Turn on all targets if possible
597 if test ${all_targets} = "yes"; then
598 case ${target_cpu_type} in
599 i386)
600 case ${obj_format} in
601 aout)
602 emulations="$emulations i386coff i386elf"
603 ;;
604 coff)
605 emulations="$emulations i386aout i386elf"
606 ;;
607 elf)
608 emulations="$emulations i386aout i386coff"
609 ;;
610 esac
611 ;;
612 esac
613 fi
614
615 # Assign floating point type. Most processors with FP support
616 # IEEE FP. On those that don't support FP at all, usually IEEE
617 # is emulated.
618 case ${target_cpu} in
619 vax | tahoe ) atof=${target_cpu} ;;
620 *) atof=ieee ;;
621 esac
622
623 case "${obj_format}" in
624 "") AC_MSG_ERROR(GAS does not know what format to use for target ${target}) ;;
625 esac
626
627 # Unfortunately the cpu in cpu-opc.h file isn't always $(TARGET_CPU).
628 cgen_cpu_prefix=""
629 if test $using_cgen = yes ; then
630 case ${target_cpu} in
631 *) cgen_cpu_prefix=${target_cpu} ;;
632 esac
633 AC_SUBST(cgen_cpu_prefix)
634 AC_DEFINE(USING_CGEN, 1, [Using cgen code?])
635 fi
636
637 dnl
638 dnl Make sure the desired support files exist.
639 dnl
640
641 if test ! -r ${srcdir}/config/tc-${target_cpu_type}.c; then
642 AC_MSG_ERROR(GAS does not support target CPU ${target_cpu_type})
643 fi
644
645 if test ! -r ${srcdir}/config/obj-${obj_format}.c; then
646 AC_MSG_ERROR(GAS does not have support for object file format ${obj_format})
647 fi
648
649 case ${user_bfd_gas}-${primary_bfd_gas} in
650 yes-yes | no-no)
651 # We didn't override user's choice.
652 ;;
653 no-yes)
654 AC_MSG_WARN(Use of BFD is required for ${target}; overriding config options.)
655 ;;
656 no-preferred)
657 primary_bfd_gas=no
658 ;;
659 *-preferred)
660 primary_bfd_gas=yes
661 ;;
662 yes-*)
663 primary_bfd_gas=yes
664 ;;
665 -*)
666 # User specified nothing.
667 ;;
668 esac
669
670 # Some COFF configurations want these random other flags set.
671 case ${obj_format} in
672 coff)
673 case ${target_cpu_type} in
674 i386) AC_DEFINE(I386COFF, 1, [Using i386 COFF?]) ;;
675 m68k) AC_DEFINE(M68KCOFF, 1, [Using m68k COFF?]) ;;
676 m88k) AC_DEFINE(M88KCOFF, 1, [Using m88k COFF?]) ;;
677 esac
678 ;;
679 esac
680
681 # Getting this done right is going to be a bitch. Each configuration specified
682 # with --enable-targets=... should be checked for environment, format, cpu, and
683 # bfd_gas setting.
684 #
685 # For each configuration, the necessary object file support code must be linked
686 # in. This might be only one, it might be up to four. The necessary emulation
687 # code needs to be provided, too.
688 #
689 # And then there's "--enable-targets=all"....
690 #
691 # For now, just always do it for MIPS ELF or ECOFF configurations. Sigh.
692
693 formats="${obj_format}"
694 emfiles=""
695 EMULATIONS=""
696 GAS_UNIQ(emulations)
697 for em in . $emulations ; do
698 case $em in
699 .) continue ;;
700 mipsbelf | mipslelf)
701 fmt=elf file=mipself ;;
702 mipsbecoff | mipslecoff)
703 fmt=ecoff file=mipsecoff ;;
704 *coff)
705 fmt=coff file=$em ;;
706 *aout)
707 fmt=aout file=$em ;;
708 *elf)
709 fmt=elf file=$em ;;
710 esac
711 formats="$formats $fmt"
712 emfiles="$emfiles e-$file.o"
713 EMULATIONS="$EMULATIONS &$em,"
714 done
715 GAS_UNIQ(formats)
716 GAS_UNIQ(emfiles)
717 if test `set . $formats ; shift ; echo $#` -gt 1 ; then
718 for fmt in $formats ; do
719 case $fmt in
720 aout) AC_DEFINE(OBJ_MAYBE_AOUT, 1, [a.out support?]) ;;
721 bout) AC_DEFINE(OBJ_MAYBE_BOUT, 1, [b.out support?]) ;;
722 coff) AC_DEFINE(OBJ_MAYBE_COFF, 1, [COFF support?]) ;;
723 ecoff) AC_DEFINE(OBJ_MAYBE_ECOFF, 1, [ECOFF support?]) ;;
724 elf) AC_DEFINE(OBJ_MAYBE_ELF, 1, [ELF support?]) ;;
725 generic) AC_DEFINE(OBJ_MAYBE_GENERIC, 1, [generic support?]) ;;
726 hp300) AC_DEFINE(OBJ_MAYBE_HP300, 1, [HP300 support?]) ;;
727 ieee) AC_DEFINE(OBJ_MAYBE_IEEE, 1, [IEEE support?]) ;;
728 som) AC_DEFINE(OBJ_MAYBE_SOM, 1, [SOM support?]) ;;
729 vms) AC_DEFINE(OBJ_MAYBE_VMS, 1, [VMS support?]) ;;
730 esac
731 extra_objects="$extra_objects obj-$fmt.o"
732 done
733 obj_format=multi
734 fi
735 if test `set . $emfiles ; shift ; echo $#` -gt 0 ; then
736 DEFAULT_EMULATION=`set . $emulations ; echo $2`
737 # e-mips* has more than one emulation per file, e-i386* has just one at the
738 # moment. If only one emulation is specified, then don't define
739 # USE_EMULATIONS or include any of the e-files as they will only be bloat.
740 case "${obj_format}${emfiles}" in
741 multi* | *mips*)
742 extra_objects="$extra_objects $emfiles"
743 AC_DEFINE(USE_EMULATIONS, 1, [Use emulation support?]) ;;
744 esac
745 fi
746 AC_SUBST(extra_objects)
747 AC_DEFINE_UNQUOTED(EMULATIONS, $EMULATIONS, [Supported emulations.])
748 AC_DEFINE_UNQUOTED(DEFAULT_EMULATION, "$DEFAULT_EMULATION",
749 [Default emulation.])
750
751 case ${primary_bfd_gas}-${target_cpu_type}-${obj_format} in
752 yes-*-coff) need_bfd=yes ;;
753 no-*-coff) need_bfd=yes
754 AC_DEFINE(MANY_SEGMENTS, 1, [old COFF support?]) ;;
755 esac
756
757 reject_dev_configs=yes
758
759 case ${reject_dev_configs}-${dev} in
760 yes-yes) # Oops.
761 AC_MSG_ERROR(GAS does not support the ${generic_target} configuration.)
762 ;;
763 esac
764
765 AC_SUBST(target_cpu_type)
766 AC_SUBST(obj_format)
767 AC_SUBST(te_file)
768 AC_SUBST(install_tooldir)
769 AC_SUBST(atof)
770 dnl AC_SUBST(emulation)
771
772 case "${primary_bfd_gas}" in
773 yes) AC_DEFINE(BFD_ASSEMBLER, 1, [Use BFD interface?])
774 need_bfd=yes ;;
775 esac
776
777 # do we need the opcodes library?
778 case "${need_opcodes}" in
779 yes)
780 OPCODES_LIB=../opcodes/libopcodes.la
781 ;;
782 esac
783
784 case "${need_bfd}" in
785 yes)
786 BFDLIB=../bfd/libbfd.la
787 ALL_OBJ_DEPS="$ALL_OBJ_DEPS ../bfd/bfd.h"
788 ;;
789 esac
790
791 AC_SUBST(BFDLIB)
792 AC_SUBST(OPCODES_LIB)
793
794 AC_SUBST(ALL_OBJ_DEPS)
795
796 AC_DEFINE_UNQUOTED(TARGET_ALIAS, "${target_alias}", [Target alias.])
797 AC_DEFINE_UNQUOTED(TARGET_CANONICAL, "${target}", [Canonical target.])
798 AC_DEFINE_UNQUOTED(TARGET_CPU, "${target_cpu}", [Target CPU.])
799 AC_DEFINE_UNQUOTED(TARGET_VENDOR, "${target_vendor}", [Target vendor.])
800 AC_DEFINE_UNQUOTED(TARGET_OS, "${target_os}", [Target OS.])
801
802 AC_PROG_CC
803
804 AC_PROG_YACC
805 AM_PROG_LEX
806
807 ALL_LINGUAS=
808 CY_GNU_GETTEXT
809
810 AM_MAINTAINER_MODE
811 AC_EXEEXT
812
813 AC_CHECK_HEADERS(string.h stdlib.h memory.h strings.h unistd.h stdarg.h varargs.h errno.h sys/types.h)
814
815 # Put this here so that autoconf's "cross-compiling" message doesn't confuse
816 # people who are not cross-compiling but are compiling cross-assemblers.
817 AC_MSG_CHECKING(whether compiling a cross-assembler)
818 if test "${host}" = "${target}"; then
819 cross_gas=no
820 else
821 cross_gas=yes
822 AC_DEFINE(CROSS_COMPILE, 1, [Compiling cross-assembler?])
823 fi
824 AC_MSG_RESULT($cross_gas)
825
826 dnl ansidecl.h will deal with const
827 dnl AC_CONST
828 AC_FUNC_ALLOCA
829 AC_C_INLINE
830
831 # VMS doesn't have unlink.
832 AC_CHECK_FUNCS(unlink remove, break)
833
834 # Some systems don't have sbrk().
835 AC_CHECK_FUNCS(sbrk)
836
837 # do we need the math library?
838 case "${need_libm}" in
839 yes)
840 AC_CHECK_LIBM
841 AC_SUBST(LIBM)
842 ;;
843 esac
844
845 # Some non-ANSI preprocessors botch requoting inside strings. That's bad
846 # enough, but on some of those systems, the assert macro relies on requoting
847 # working properly!
848 GAS_WORKING_ASSERT
849
850 # On some systems, the system header files may not declare malloc, realloc,
851 # and free. There are places where gas needs these functions to have been
852 # declared -- such as when taking their addresses.
853 gas_test_headers="
854 #ifdef HAVE_MEMORY_H
855 #include <memory.h>
856 #endif
857 #ifdef HAVE_STRING_H
858 #include <string.h>
859 #else
860 #ifdef HAVE_STRINGS_H
861 #include <strings.h>
862 #endif
863 #endif
864 #ifdef HAVE_STDLIB_H
865 #include <stdlib.h>
866 #endif
867 #ifdef HAVE_UNISTD_H
868 #include <unistd.h>
869 #endif
870 "
871 GAS_CHECK_DECL_NEEDED(strstr, f, char *(*f)(), $gas_test_headers)
872 GAS_CHECK_DECL_NEEDED(malloc, f, char *(*f)(), $gas_test_headers)
873 GAS_CHECK_DECL_NEEDED(free, f, void (*f)(), $gas_test_headers)
874 GAS_CHECK_DECL_NEEDED(sbrk, f, char *(*f)(), $gas_test_headers)
875 GAS_CHECK_DECL_NEEDED(environ, f, char **f, $gas_test_headers)
876
877 # Does errno.h declare errno, or do we have to add a separate declaration
878 # for it?
879 GAS_CHECK_DECL_NEEDED(errno, f, int f, [
880 #ifdef HAVE_ERRNO_H
881 #include <errno.h>
882 #endif
883 ])
884
885 dnl This must come last.
886
887 dnl We used to make symlinks to files in the source directory, but now
888 dnl we just use the right name for .c files, and create .h files in
889 dnl the build directory which include the right .h file. Make sure
890 dnl the old symlinks don't exist, so that a reconfigure in an existing
891 dnl directory behaves reasonably.
892
893 AC_OUTPUT(Makefile doc/Makefile ${GDBINIT}:gdbinit.in po/Makefile.in:po/Make-in,
894 [rm -f targ-cpu.c targ-cpu.h obj-format.h obj-format.c targ-env.h atof-targ.c itbl-cpu.h
895 echo '#include "tc-'"${target_cpu_type}"'.h"' > targ-cpu.h
896 echo '#include "obj-'"${obj_format}"'.h"' > obj-format.h
897 echo '#include "te-'"${te_file}"'.h"' > targ-env.h
898 echo '#include "itbl-'"${target_cpu_type}"'.h"' > itbl-cpu.h
899 if test "x$cgen_cpu_prefix" != x ; then
900 echo '#include "opcodes/'"${cgen_cpu_prefix}"'-desc.h"' > cgen-desc.h
901 fi
902
903 sed -e '/POTFILES =/r po/POTFILES' po/Makefile.in > po/Makefile],
904 [target_cpu_type=${target_cpu_type}
905 cgen_cpu_prefix=${cgen_cpu_prefix}
906 obj_format=${obj_format}
907 te_file=${te_file}])
This page took 0.050531 seconds and 4 git commands to generate.