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