Add linux-elf flavour to pseudos in tc-hppa.c and some tidying
[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
13 AM_INIT_AUTOMAKE(gas, 2.10.90)
14
15 AM_PROG_LIBTOOL
16
17 user_bfd_gas=
18 AC_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) ;;
24 esac])dnl
25 AC_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 ;;
32 esac])dnl
33 AC_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]) ;;
39 esac])dnl
40
41 using_cgen=no
42
43 build_warnings="-W -Wall"
44 AC_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"`;;
54 esac
55 if test x"$silent" != x"yes" && test x"$build_warnings" != x""; then
56 echo "Setting warning flags = $build_warnings" 6>&1
57 fi])dnl
58 WARN_CFLAGS=""
59 if test "x${build_warnings}" != x -a "x$GCC" = xyes ; then
60 WARN_CFLAGS="${build_warnings}"
61 fi
62 AC_SUBST(WARN_CFLAGS)
63
64 # Generate a header file
65 AM_CONFIG_HEADER(config.h:config.in)
66
67 # If we are on a DOS filesystem, we must use gdb.ini rather than
68 # .gdbinit.
69 GDBINIT=".gdbinit"
70 case "${host}" in
71 *-*-msdos* | *-*-go32* | *-*-mingw32* | *-*-cygwin* | *-*-windows*)
72 GDBINIT="gdb.ini"
73 ;;
74 esac
75 AC_SUBST(GDBINIT)
76
77 te_file=generic
78
79 # Makefile target for installing gas in $(tooldir)/bin.
80 install_tooldir=install-exec-tooldir
81
82 canon_targets=""
83 all_targets=no
84 if test -n "$enable_targets" ; then
85 for t in `echo $enable_targets | sed 's/,/ /g'`; do
86 if test $t = "all"; then
87 all_targets=yes
88 continue
89 fi
90 result=`$ac_config_sub $t 2>/dev/null`
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)
99 fi
100
101 emulations=""
102
103 for this_target in $target $canon_targets ; do
104
105 changequote(,)dnl
106 eval `echo $this_target | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/cpu=\1 vendor=\2 os=\3/'`
107 changequote([,])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 ;;
122 changequote(,)dnl
123 i[456]86) cpu_type=i386 ;;
124 ia64) cpu_type=ia64 ;;
125 m6811|m6812) cpu_type=m68hc11 ;;
126 m680[012346]0) cpu_type=m68k ;;
127 changequote([,])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 ;;
134 pjl*) cpu_type=pj endian=little ;;
135 pj*) cpu_type=pj endian=big ;;
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 ;;
180 arm*-*-conix*) fmt=elf ;;
181 arm-*-linux*aout*) fmt=aout em=linux ;;
182 arm*-*-linux-gnu*) fmt=elf em=linux ;;
183 arm-*-netbsd*) fmt=aout em=nbsd ;;
184 arm-*-oabi | thumb-*-oabi) fmt=elf ;;
185 arm-epoc-pe | thumb-epoc-pe) fmt=coff em=epoc-pe ;;
186 arm-*-wince) fmt=coff em=wince-pe ;;
187 arm-*-pe | thumb-*-pe) fmt=coff em=pe ;;
188 arm-*-riscix*) fmt=aout em=riscix ;;
189
190 avr-*-*) fmt=elf bfd_gas=yes ;;
191
192 d10v-*-*) fmt=elf bfd_gas=yes ;;
193 d30v-*-*) fmt=elf bfd_gas=yes ;;
194
195
196 fr30-*-*) fmt=elf bfd_gas=yes ;;
197
198 hppa-*-linux-gnu*) case ${cpu} in
199 hppa*64*)
200 fmt=elf em=hppalinux64;;
201 hppa*)
202 fmt=elf em=linux;;
203 esac ;;
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 ;;
208 hppa-*-hpux11*) case ${cpu} in
209 hppa*64*)
210 fmt=elf em=hppa64 ;;
211 hppa*)
212 fmt=som em=hppa ;;
213 esac ;;
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
221 i370-*-elf* | i370-*-linux*) fmt=elf ;;
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 ;;
236 changequote(,)dnl
237 i386-*-freebsdaout* | i386-*-freebsd[12].* | i386-*-freebsd[12])
238 fmt=aout em=386bsd ;;
239 changequote([,])dnl
240 i386-*-freebsd*) fmt=elf bfd_gas=yes ;;
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;;
253 i386-*-rtemself*) fmt=elf ;;
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 ;;
260 i386-*-pe) fmt=coff em=pe bfd_gas=yes ;;
261 i386-*-cygwin*) fmt=coff em=pe bfd_gas=yes ;;
262 i386-*-interix*) fmt=coff em=interix bfd_gas=yes ;;
263 i386-*-mingw32*) fmt=coff em=pe bfd_gas=yes ;;
264 i386-*-*nt*) fmt=coff em=pe bfd_gas=yes ;;
265 i386-*-vxworks*) fmt=aout ;;
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 ;;
274 i960-*-elf*) fmt=elf ;;
275
276 ia64-*-elf*) fmt=elf ;;
277 ia64-*-linux-gnu*) fmt=elf em=linux ;;
278
279 m32r-*-*) fmt=elf bfd_gas=yes ;;
280
281 m68hc11-*-*|m6811-*-*|m68hc12-*-*|m6812-*-*)fmt=elf bfd_gas=yes ;;
282
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 ;;
319 mips-*-pe*) fmt=coff endian=little em=pe ;;
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 ;;
325 mips-*-sysv4*MP*) if test -d /usr/dde; then
326 fmt=elf
327 em=tmips
328 fi
329 ;;
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 ;;
339 pj*) fmt=elf ;;
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 ;;
365 ppc-*-vxworks*) fmt=elf ;;
366
367 sh-*-elf*) fmt=elf ;;
368 sh-*-coff*) fmt=coff ;;
369 sh-*-pe*) fmt=coff em=pe bfd_gas=yes;;
370 sh-*-rtemself*) fmt=elf ;;
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 ;;
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 ;;
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 ;;
404 tic54x-*-* | c54x*-*-*)
405 fmt=coff bfd_gas=yes need_libm=yes;;
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 ;;
456 ia64*-*) bfd_gas=yes ;;
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 ;;
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
467 i386-coff) if test x${primary_bfd_gas} = xyes; then bfd_gas=yes; fi ;;
468 i386-aout) if test x${primary_bfd_gas} = xyes; then bfd_gas=yes; fi ;;
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" ;;
572 esac ;;
573 mips-*-sysv4*MP*-*) if test -d /usr/dde; then
574 emulation="mipsbelf mipslelf mipself mipsbecoff mipslecoff mipsecoff"
575 fi
576 ;;
577 # i386-pc-pe-coff != i386-pc-coff.
578 i386-*-pe-coff) ;;
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" ;;
584 i386-*-coff) emulation="i386coff" ;;
585 i386-*-elf) emulation="i386elf" ;;
586 esac
587
588 emulations="$emulations $emulation"
589
590 done
591
592 # Turn on all targets if possible
593 if 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
609 fi
610
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.
614 case ${target_cpu} in
615 vax | tahoe ) atof=${target_cpu} ;;
616 *) atof=ieee ;;
617 esac
618
619 case "${obj_format}" in
620 "") AC_MSG_ERROR(GAS does not know what format to use for target ${target}) ;;
621 esac
622
623 # Unfortunately the cpu in cpu-opc.h file isn't always $(TARGET_CPU).
624 cgen_cpu_prefix=""
625 if 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?])
631 fi
632
633 dnl
634 dnl Make sure the desired support files exist.
635 dnl
636
637 if test ! -r ${srcdir}/config/tc-${target_cpu_type}.c; then
638 AC_MSG_ERROR(GAS does not support target CPU ${target_cpu_type})
639 fi
640
641 if test ! -r ${srcdir}/config/obj-${obj_format}.c; then
642 AC_MSG_ERROR(GAS does not have support for object file format ${obj_format})
643 fi
644
645 case ${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 ;;
664 esac
665
666 # Some COFF configurations want these random other flags set.
667 case ${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 ;;
675 esac
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
689 formats="${obj_format}"
690 emfiles=""
691 EMULATIONS=""
692 GAS_UNIQ(emulations)
693 for 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 ;;
700 *coff)
701 fmt=coff file=$em ;;
702 *aout)
703 fmt=aout file=$em ;;
704 *elf)
705 fmt=elf file=$em ;;
706 esac
707 formats="$formats $fmt"
708 emfiles="$emfiles e-$file.o"
709 EMULATIONS="$EMULATIONS &$em,"
710 done
711 GAS_UNIQ(formats)
712 GAS_UNIQ(emfiles)
713 if 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
730 fi
731 if test `set . $emfiles ; shift ; echo $#` -gt 0 ; then
732 DEFAULT_EMULATION=`set . $emulations ; echo $2`
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*)
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
743 extra_objects="$extra_objects $emfiles"
744 AC_DEFINE(USE_EMULATIONS, 1, [Use emulation support?]) ;;
745 esac
746 fi
747 AC_SUBST(extra_objects)
748 AC_DEFINE_UNQUOTED(EMULATIONS, $EMULATIONS, [Supported emulations.])
749 AC_DEFINE_UNQUOTED(DEFAULT_EMULATION, "$DEFAULT_EMULATION",
750 [Default emulation.])
751
752 case ${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?]) ;;
756 esac
757
758 reject_dev_configs=yes
759
760 case ${reject_dev_configs}-${dev} in
761 yes-yes) # Oops.
762 AC_MSG_ERROR(GAS does not support the ${generic_target} configuration.)
763 ;;
764 esac
765
766 AC_SUBST(target_cpu_type)
767 AC_SUBST(obj_format)
768 AC_SUBST(te_file)
769 AC_SUBST(install_tooldir)
770 AC_SUBST(atof)
771 dnl AC_SUBST(emulation)
772
773 case "${primary_bfd_gas}" in
774 yes) AC_DEFINE(BFD_ASSEMBLER, 1, [Use BFD interface?])
775 need_bfd=yes ;;
776 esac
777
778 # do we need the opcodes library?
779 case "${need_opcodes}" in
780 yes)
781 OPCODES_LIB=../opcodes/libopcodes.la
782 ;;
783 esac
784
785 case "${need_bfd}" in
786 yes)
787 BFDLIB=../bfd/libbfd.la
788 ALL_OBJ_DEPS="$ALL_OBJ_DEPS ../bfd/bfd.h"
789 ;;
790 esac
791
792 AC_SUBST(BFDLIB)
793 AC_SUBST(OPCODES_LIB)
794
795 AC_SUBST(ALL_OBJ_DEPS)
796
797 AC_DEFINE_UNQUOTED(TARGET_ALIAS, "${target_alias}", [Target alias.])
798 AC_DEFINE_UNQUOTED(TARGET_CANONICAL, "${target}", [Canonical target.])
799 AC_DEFINE_UNQUOTED(TARGET_CPU, "${target_cpu}", [Target CPU.])
800 AC_DEFINE_UNQUOTED(TARGET_VENDOR, "${target_vendor}", [Target vendor.])
801 AC_DEFINE_UNQUOTED(TARGET_OS, "${target_os}", [Target OS.])
802
803 AC_PROG_CC
804
805 AC_PROG_YACC
806 AM_PROG_LEX
807
808 ALL_LINGUAS=
809 CY_GNU_GETTEXT
810
811 AM_MAINTAINER_MODE
812 AC_EXEEXT
813
814 AC_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.
818 AC_MSG_CHECKING(whether compiling a cross-assembler)
819 if test "${host}" = "${target}"; then
820 cross_gas=no
821 else
822 cross_gas=yes
823 AC_DEFINE(CROSS_COMPILE, 1, [Compiling cross-assembler?])
824 fi
825 AC_MSG_RESULT($cross_gas)
826
827 dnl ansidecl.h will deal with const
828 dnl AC_CONST
829 AC_FUNC_ALLOCA
830 AC_C_INLINE
831
832 # VMS doesn't have unlink.
833 AC_CHECK_FUNCS(unlink remove, break)
834
835 # Some systems don't have sbrk().
836 AC_CHECK_FUNCS(sbrk)
837
838 # do we need the math library?
839 case "${need_libm}" in
840 yes)
841 AC_CHECK_LIBM
842 AC_SUBST(LIBM)
843 ;;
844 esac
845
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!
849 GAS_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.
854 gas_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 "
872 GAS_CHECK_DECL_NEEDED(strstr, f, char *(*f)(), $gas_test_headers)
873 GAS_CHECK_DECL_NEEDED(malloc, f, char *(*f)(), $gas_test_headers)
874 GAS_CHECK_DECL_NEEDED(free, f, void (*f)(), $gas_test_headers)
875 GAS_CHECK_DECL_NEEDED(sbrk, f, char *(*f)(), $gas_test_headers)
876 GAS_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?
880 GAS_CHECK_DECL_NEEDED(errno, f, int f, [
881 #ifdef HAVE_ERRNO_H
882 #include <errno.h>
883 #endif
884 ])
885
886 dnl This must come last.
887
888 dnl We used to make symlinks to files in the source directory, but now
889 dnl we just use the right name for .c files, and create .h files in
890 dnl the build directory which include the right .h file. Make sure
891 dnl the old symlinks don't exist, so that a reconfigure in an existing
892 dnl directory behaves reasonably.
893
894 AC_OUTPUT(Makefile doc/Makefile ${GDBINIT}:gdbinit.in po/Makefile.in:po/Make-in,
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.066012 seconds and 5 git commands to generate.