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