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