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