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