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