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