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