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