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