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