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