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