]> rtime.felk.cvut.cz Git - fpga/lx-cpu1/binutils-tumbl.git/blob - gas/configure.in
14f6edfe5deb041e968454931c451e1da226e0d1
[fpga/lx-cpu1/binutils-tumbl.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.59)
9 AC_INIT
10 AC_CONFIG_SRCDIR(as.h)
11
12 dnl Autoconf 2.57 will find the aux dir without this.  However, unless
13 dnl we specify this explicitly, automake-1.7 will assume that ylwrap is in
14 dnl gas/ instead of gas/../.
15 AC_CONFIG_AUX_DIR(..)
16 AC_CANONICAL_TARGET
17 AC_ISC_POSIX
18
19 changequote(,)dnl
20 BFD_VERSION=`sed -n -e 's/^.._INIT_AUTOMAKE.*,[         ]*\([^  ]*\)[   ]*).*/\1/p' < ${srcdir}/../bfd/configure.in`
21 changequote([,])dnl
22 AM_INIT_AUTOMAKE(gas, ${BFD_VERSION})
23
24 AC_PROG_CC
25 AC_GNU_SOURCE
26 AC_USE_SYSTEM_EXTENSIONS
27 ACX_LARGEFILE
28
29 LT_INIT
30
31 AC_ARG_ENABLE(targets,
32 [  --enable-targets        alternative target configurations besides the primary],
33 [case "${enableval}" in
34   yes | "") AC_MSG_ERROR(enable-targets option must specify target names or 'all')
35             ;;
36   no)       enable_targets= ;;
37   *)        enable_targets=$enableval ;;
38 esac])dnl
39
40 ac_checking=yes
41 if grep '^RELEASE=y' ${srcdir}/../bfd/Makefile.am >/dev/null 2>/dev/null ; then
42   ac_checking=
43 fi
44 AC_ARG_ENABLE(checking,
45 [  --enable-checking       enable run-time checks],
46 [case "${enableval}" in
47   no|none)  ac_checking= ;;
48   *)        ac_checking=yes ;;
49 esac])dnl
50 if test x$ac_checking != x ; then
51   AC_DEFINE(ENABLE_CHECKING, 1, [Define if you want run-time sanity checks.])
52 fi
53
54 using_cgen=no
55
56 AM_BINUTILS_WARNINGS
57
58 # Generate a header file
59 AC_CONFIG_HEADERS(config.h:config.in)
60
61 # PR 14072
62 AH_VERBATIM([00_CONFIG_H_CHECK],
63 [/* Check that config.h is #included before system headers
64    (this works only for glibc, but that should be enough).  */
65 #if defined(__GLIBC__) && !defined(__FreeBSD_kernel__) && !defined(__CONFIG_H__)
66 #  error config.h must be #included before system headers
67 #endif
68 #define __CONFIG_H__ 1])
69
70 # If we are on a DOS filesystem, we must use gdb.ini rather than
71 # .gdbinit.
72 case "${host}" in
73   *-*-msdos* | *-*-go32* | *-*-mingw32* | *-*-windows*)
74     GDBINIT="gdb.ini"
75     AC_CONFIG_FILES(gdb.ini:gdbinit.in)
76     ;;
77   *)
78     GDBINIT=".gdbinit"
79     AC_CONFIG_FILES(.gdbinit:gdbinit.in)
80     ;;
81 esac
82 AC_SUBST(GDBINIT)
83
84 #We need this for the host.  BOUT header is in host order.
85 AC_C_BIGENDIAN
86
87 te_file=generic
88
89 # Makefile target for installing gas in $(tooldir)/bin.
90 install_tooldir=install-exec-tooldir
91
92 canon_targets=""
93 all_targets=no
94 if test -n "$enable_targets" ; then
95   for t in `echo $enable_targets | sed 's/,/ /g'`; do
96     if test $t = "all"; then
97       all_targets=yes
98       continue
99     fi
100     result=`$ac_config_sub $t 2>/dev/null`
101     if test -n "$result" ; then
102       canon_targets="$canon_targets $result"
103 #    else
104 #      # Permit "all", etc.  We don't support it yet though.
105 #      canon_targets="$canon_targets $t"
106     fi
107   done
108   GAS_UNIQ(canon_targets)
109 fi
110
111 emulations=""
112
113 for this_target in $target $canon_targets ; do
114
115     targ=${this_target}
116     . ${srcdir}/configure.tgt
117
118     case ${target_cpu} in
119       crisv32)
120         AC_DEFINE_UNQUOTED(DEFAULT_CRIS_ARCH, $arch,
121                            [Default CRIS architecture.])
122         ;;
123     esac
124
125     if test ${this_target} = $target ; then
126       target_cpu_type=${cpu_type}
127     elif test ${target_cpu_type} != ${cpu_type} ; then
128       continue
129     fi
130
131     generic_target=${cpu_type}-${target_vendor}-${target_os}
132     case ${generic_target} in
133       i386-*-sco3.2v5*)
134         if test ${this_target} = $target; then
135           AC_DEFINE(SCO_ELF, 1, [Define if defaulting to ELF on SCO 5.])
136         fi
137         ;;
138
139       i386-*-msdosdjgpp* \
140       | i386-*-go32* \
141       | i386-go32-rtems*)
142         AC_DEFINE(STRICTCOFF, 1, [Using strict COFF?])
143         ;;
144
145       i860-*-*)
146         AC_MSG_WARN(GAS support for ${generic_target} is preliminary and a work in progress)
147         ;;
148
149       microblaze*)
150         ;;
151
152       mips-sony-bsd*)
153         ;;
154       mips-*-bsd*)
155         AC_MSG_ERROR(Unknown vendor for mips-bsd configuration.)
156         ;;
157
158 changequote(,)dnl
159       ppc-*-aix[5-9].*)
160 changequote([,])dnl
161         AC_DEFINE(AIX_WEAK_SUPPORT, 1,
162                   [Define if using AIX 5.2 value for C_WEAKEXT.])
163         ;;
164       ppc-*-linux-*)
165         case "$endian" in
166           big)  ;;
167           *)    AC_MSG_ERROR(GNU/Linux must be configured big endian) ;;
168         esac
169         ;;
170       ppc-*-solaris*)
171         if test ${this_target} = $target; then
172           AC_DEFINE(TARGET_SOLARIS_COMMENT, 1,
173                     [Define if default target is PowerPC Solaris.])
174         fi
175         if test x${endian} = xbig; then
176           AC_MSG_ERROR(Solaris must be configured little endian)
177         fi
178         ;;
179
180       sh*-*-symbianelf*)
181         AC_DEFINE(TARGET_SYMBIAN, 1, [Define if target is Symbian OS.])
182         ;;
183     esac
184
185     if test ${this_target} = $target ; then
186       endian_def=
187       if test x${endian} = xbig; then
188         endian_def=1
189       elif test x${endian} = xlittle; then
190         endian_def=0
191       fi
192       if test x${endian_def} != x; then
193         AC_DEFINE_UNQUOTED(TARGET_BYTES_BIG_ENDIAN, $endian_def,
194                            [Define as 1 if big endian.])
195       fi
196     fi
197
198 # Other random stuff.
199
200     case ${cpu_type} in
201       mips)
202         # Set mips_cpu to the name of the default CPU.
203         case ${target_cpu} in
204           mips | mipsbe | mipseb | mipsle | mipsel | mips64 | mips64el)
205             mips_cpu=from-abi
206             ;;
207           mipsisa32 | mipsisa32el)
208             mips_cpu=mips32
209             ;;
210           mipsisa32r2 | mipsisa32r2el)
211             mips_cpu=mips32r2
212             ;;
213           mipsisa64 | mipsisa64el)
214             mips_cpu=mips64
215             ;;
216           mipsisa64r2 | mipsisa64r2el)
217             mips_cpu=mips64r2
218             ;;
219           mipstx39 | mipstx39el)
220             mips_cpu=r3900
221             ;;
222           mips64vr | mips64vrel)
223             mips_cpu=vr4100
224             ;;
225           mipsisa32r2* | mipsisa64r2*)
226 changequote(,)dnl
227             mips_cpu=`echo $target_cpu | sed -e 's/[a-z]*..r2//' -e 's/el$//'`
228 changequote([,])dnl
229             ;;
230           mips64* | mipsisa64* | mipsisa32*)
231 changequote(,)dnl
232             mips_cpu=`echo $target_cpu | sed -e 's/[a-z]*..//' -e 's/el$//'`
233 changequote([,])dnl
234             ;;
235           *)
236             AC_MSG_ERROR($target_cpu isn't a supported MIPS CPU name)
237             ;;
238         esac
239         # See whether it's appropriate to set E_MIPS_ABI_O32 for o32
240         # binaries.  It's a GNU extension that some OSes don't understand.
241         # The value only matters on ELF targets.
242         case ${target} in
243           *-*-irix*)
244             use_e_mips_abi_o32=0
245             ;;
246           *)
247             use_e_mips_abi_o32=1
248             ;;
249         esac
250         # Decide whether to generate 32-bit or 64-bit code by default.
251         # Used to resolve -march=from-abi when an embedded ABI is selected.
252         case ${target} in
253           mips64*-*-* | mipsisa64*-*-*)
254             mips_default_64bit=1
255             ;;
256           *)
257             mips_default_64bit=0
258             ;;
259         esac
260         # Decide which ABI to target by default.
261         case ${target} in
262           mips64*-linux* | mips-sgi-irix6* | mips64*-freebsd* | mips64*-kfreebsd*-gnu)
263             mips_default_abi=N32_ABI
264             ;;
265           mips*-linux* | mips*-freebsd* | mips*-kfreebsd*-gnu)
266             mips_default_abi=O32_ABI
267             ;;
268           mips64*-openbsd*)
269             mips_default_abi=N64_ABI
270             ;;
271           *)
272             mips_default_abi=NO_ABI
273             ;;
274         esac
275         AC_DEFINE_UNQUOTED(MIPS_CPU_STRING_DEFAULT, "$mips_cpu",
276                            [Default CPU for MIPS targets. ])
277         AC_DEFINE_UNQUOTED(USE_E_MIPS_ABI_O32, $use_e_mips_abi_o32,
278                            [Allow use of E_MIPS_ABI_O32 on MIPS targets. ])
279         AC_DEFINE_UNQUOTED(MIPS_DEFAULT_64BIT, $mips_default_64bit,
280                            [Generate 64-bit code by default on MIPS targets. ])
281         AC_DEFINE_UNQUOTED(MIPS_DEFAULT_ABI, $mips_default_abi,
282                            [Choose a default ABI for MIPS targets. ])
283         ;;
284     esac
285
286     # Do we need the opcodes library?
287     case ${cpu_type} in
288       vax | tic30)
289         ;;
290
291       *)
292         need_opcodes=yes
293
294         case "${enable_shared}" in
295         yes) shared_opcodes=true ;;
296         *opcodes*) shared_opcodes=true ;;
297         *) shared_opcodes=false ;;
298         esac
299         ;;
300     esac
301
302     # Any other special object files needed ?
303     case ${cpu_type} in
304
305       bfin)
306         echo ${extra_objects} | grep -s "bfin-parse.o"
307         if test $? -ne 0 ; then
308           extra_objects="$extra_objects bfin-parse.o"
309         fi
310
311         echo ${extra_objects} | grep -s "bfin-lex-wrapper.o"
312         if test $? -ne 0 ; then
313           extra_objects="$extra_objects bfin-lex-wrapper.o"
314         fi
315         ;;
316
317       epiphany | fr30 | ip2k | iq2000 | lm32 | m32r | openrisc)
318         using_cgen=yes
319         ;;
320
321       m32c)
322         using_cgen=yes
323         ;;
324       frv)
325         using_cgen=yes
326         ;;
327       m68k)
328         case ${extra_objects} in
329         *m68k-parse.o*) ;;
330         *) extra_objects="$extra_objects m68k-parse.o" ;;
331         esac
332         ;;
333
334       mep)
335         using_cgen=yes
336         ;;
337
338       mips)
339         echo ${extra_objects} | grep -s "itbl-parse.o"
340         if test $? -ne 0 ; then
341           extra_objects="$extra_objects itbl-parse.o"
342         fi
343
344         echo ${extra_objects} | grep -s "itbl-lex-wrapper.o"
345         if test $? -ne 0 ; then
346           extra_objects="$extra_objects itbl-lex-wrapper.o"
347         fi
348
349         echo ${extra_objects} | grep -s "itbl-ops.o"
350         if test $? -ne 0 ; then
351           extra_objects="$extra_objects itbl-ops.o"
352         fi
353         ;;
354
355       mt)
356         using_cgen=yes
357         ;;
358
359       i386 | s390 | sparc)
360         if test $this_target = $target ; then
361           AC_DEFINE_UNQUOTED(DEFAULT_ARCH, "${arch}", [Default architecture.])
362         fi
363         ;;
364
365       rl78)
366         echo ${extra_objects} | grep -s "rl78-parse.o"
367         if test $? -ne 0 ; then
368           extra_objects="$extra_objects rl78-parse.o"
369         fi
370         ;;
371
372       rx)
373         echo ${extra_objects} | grep -s "rx-parse.o"
374         if test $? -ne 0 ; then
375           extra_objects="$extra_objects rx-parse.o"
376         fi
377         ;;
378
379       xstormy16)
380         using_cgen=yes
381         ;;
382
383       xc16x)
384         using_cgen=yes
385         ;;
386
387       xtensa)
388         echo ${extra_objects} | grep -s "xtensa-relax.o"
389         if test $? -ne 0 ; then
390           extra_objects="$extra_objects xtensa-relax.o"
391         fi
392         ;;
393
394       *)
395         ;;
396     esac
397
398     if test $using_cgen = yes ; then
399         case "x${extra_objects}" in
400         *cgen.o*) ;;
401         *) extra_objects="$extra_objects cgen.o" ;;
402         esac
403     fi
404
405 # See if we really can support this configuration with the emulation code.
406
407     if test $this_target = $target ; then
408       obj_format=$fmt
409       te_file=$em
410     fi
411
412    case ${te_file} in
413       vms) extra_objects="$extra_objects te-vms.o" ;;
414    esac
415
416 # From target name and format, produce a list of supported emulations.
417
418     case ${generic_target}-${fmt} in
419       mips-*-irix5*-*)  emulation="mipsbelf mipslelf mipself mipsbecoff mipslecoff mipsecoff" ;;
420       mips*-*-linux*-* | mips*-*-freebsd* | mips*-*-kfreebsd*-gnu)
421                         case "$endian" in
422                         big)    emulation="mipsbelf mipslelf mipself" ;;
423                         *)      emulation="mipslelf mipsbelf mipself" ;;
424                         esac ;;
425       mips-*-lnews*-ecoff) ;;
426       mips-*-*-ecoff)   case "$endian" in
427                         big)    emulation="mipsbecoff mipslecoff mipsecoff" ;;
428                         *)      emulation="mipslecoff mipsbecoff mipsecoff" ;;
429                         esac ;;
430       mips-*-*-elf)     case "$endian" in
431                         big)    emulation="mipsbelf mipslelf mipself" ;;
432                         *)      emulation="mipslelf mipsbelf mipself" ;;
433                         esac ;;
434       mips-*-sysv4*MP*-*) emulation="mipsbelf mipslelf mipself mipsbecoff mipslecoff mipsecoff" ;;
435       # i386-pc-pe-coff != i386-pc-coff.
436       i386-*-pe-coff)   ;;
437       # Uncommenting the next line will turn on support for i386 AOUT
438       # for the default linux configuration
439       # i386-*-linux*-elf) emulation="i386elf i386aout" ;;
440       #
441       i386-*-aout)      emulation="i386aout" ;;
442       i386-*-coff)      emulation="i386coff" ;;
443       i386-*-elf)       emulation="i386elf" ;;
444
445       # Always all formats.  The first stated emulation becomes the default.
446       cris-*-*aout*)    emulation="crisaout criself" ;;
447       cris-*-*)         emulation="criself crisaout" ;;
448     esac
449
450     emulations="$emulations $emulation"
451
452 done
453
454 # Turn on all targets if possible
455 if test ${all_targets} = "yes"; then
456   case ${target_cpu_type} in
457   i386)
458     case ${obj_format} in
459     aout)
460       emulations="$emulations i386coff i386elf"
461       ;;
462     coff)
463       emulations="$emulations i386aout i386elf"
464     ;;
465     elf)
466       emulations="$emulations i386aout i386coff"
467       ;;
468     esac
469   ;;
470   x86_64)
471     case ${obj_format} in
472     aout)
473       emulations="$emulations i386coff i386elf"
474       ;;
475     coff)
476       emulations="$emulations i386aout i386elf"
477     ;;
478     elf)
479       emulations="$emulations i386aout i386coff"
480       ;;
481     esac
482   ;;
483   esac
484 fi
485
486 # PE code has way too many macros tweaking behaviour
487 case ${te_file} in
488   pe*) emulations="" ;;
489 esac
490
491 # Assign floating point type.  Most processors with FP support
492 # IEEE FP.  On those that don't support FP at all, usually IEEE
493 # is emulated.
494 case ${target_cpu} in
495   vax | pdp11 ) atof=vax ;;
496   *)            atof=ieee ;;
497 esac
498
499 case "${obj_format}" in
500   "") AC_MSG_ERROR(GAS does not know what format to use for target ${target}) ;;
501 esac
502
503 # Unfortunately the cpu in cpu-opc.h file isn't always $(TARGET_CPU).
504 cgen_cpu_prefix=""
505 if test $using_cgen = yes ; then
506   case ${target_cpu} in
507     *) cgen_cpu_prefix=${target_cpu} ;;
508   esac
509   AC_SUBST(cgen_cpu_prefix)
510   AC_DEFINE(USING_CGEN, 1, [Using cgen code?])
511 fi
512
513 dnl
514 dnl Make sure the desired support files exist.
515 dnl
516
517 if test ! -r ${srcdir}/config/tc-${target_cpu_type}.c; then
518   AC_MSG_ERROR(GAS does not support target CPU ${target_cpu_type})
519 fi
520
521 if test ! -r ${srcdir}/config/obj-${obj_format}.c; then
522   AC_MSG_ERROR(GAS does not have support for object file format ${obj_format})
523 fi
524
525 # Some COFF configurations want these random other flags set.
526 case ${obj_format} in
527   coff)
528     case ${target_cpu_type} in
529       i386) AC_DEFINE(I386COFF, 1, [Using i386 COFF?]) ;;
530       m68k) AC_DEFINE(M68KCOFF, 1, [Using m68k COFF?]) ;;
531       m88k) AC_DEFINE(M88KCOFF, 1, [Using m88k COFF?]) ;;
532       x86_64) AC_DEFINE(I386COFF, 1, [Using i386 COFF?]) ;;
533     esac
534     ;;
535 esac
536
537 # Getting this done right is going to be a bitch.  Each configuration specified
538 # with --enable-targets=... should be checked for environment, format, cpu
539 # setting.
540 #
541 # For each configuration, the necessary object file support code must be linked
542 # in.  This might be only one, it might be up to four.  The necessary emulation
543 # code needs to be provided, too.
544 #
545 # And then there's "--enable-targets=all"....
546 #
547 # For now, just always do it for MIPS ELF or ECOFF configurations.  Sigh.
548
549 formats="${obj_format}"
550 emfiles=""
551 EMULATIONS=""
552 GAS_UNIQ(emulations)
553 for em in . $emulations ; do
554   case $em in
555     .)  continue ;;
556     mipsbelf | mipslelf | mipself)
557         fmt=elf   file=mipself ;;
558     mipsbecoff | mipslecoff | mipsecoff)
559         fmt=ecoff file=mipsecoff ;;
560     *coff)
561         fmt=coff  file=$em ;;
562     *aout)
563         fmt=aout file=$em ;;
564     *elf)
565         fmt=elf file=$em ;;
566   esac
567   formats="$formats $fmt"
568   emfiles="$emfiles e-$file.o"
569   EMULATIONS="$EMULATIONS &$em,"
570 done
571 GAS_UNIQ(formats)
572 GAS_UNIQ(emfiles)
573 if test `set . $formats ; shift ; echo $#` -gt 1 ; then
574   for fmt in $formats ; do
575     case $fmt in
576       aout)     AC_DEFINE(OBJ_MAYBE_AOUT, 1,    [a.out support?])   ;;
577       bout)     AC_DEFINE(OBJ_MAYBE_BOUT, 1,    [b.out support?])   ;;
578       coff)     AC_DEFINE(OBJ_MAYBE_COFF, 1,    [COFF support?])    ;;
579       ecoff)    AC_DEFINE(OBJ_MAYBE_ECOFF, 1,   [ECOFF support?])   ;;
580       elf)      AC_DEFINE(OBJ_MAYBE_ELF, 1,     [ELF support?])     ;;
581       generic)  AC_DEFINE(OBJ_MAYBE_GENERIC, 1, [generic support?]) ;;
582       som)      AC_DEFINE(OBJ_MAYBE_SOM, 1,     [SOM support?])     ;;
583     esac
584     extra_objects="$extra_objects obj-$fmt.o"
585   done
586   obj_format=multi
587 fi
588 if test `set . $emfiles ; shift ; echo $#` -gt 0 ; then
589   DEFAULT_EMULATION=`set . $emulations ; echo $2`
590   # e-mips* has more than one emulation per file, e-i386* has just one at the
591   # moment.  If only one emulation is specified, then don't define
592   # USE_EMULATIONS or include any of the e-files as they will only be bloat.
593   case "${obj_format}${emfiles}" in
594     multi* | *mips*)
595       extra_objects="$extra_objects $emfiles"
596       AC_DEFINE(USE_EMULATIONS, 1, [Use emulation support?]) ;;
597   esac
598 fi
599 AC_SUBST(extra_objects)
600 AC_DEFINE_UNQUOTED(EMULATIONS, $EMULATIONS, [Supported emulations.])
601 AC_DEFINE_UNQUOTED(DEFAULT_EMULATION, "$DEFAULT_EMULATION",
602                    [Default emulation.])
603
604 reject_dev_configs=yes
605
606 case ${reject_dev_configs}-${dev} in
607   yes-yes) # Oops.
608     AC_MSG_ERROR(GAS does not support the ${generic_target} configuration.)
609     ;;
610 esac
611
612 AC_SUBST(target_cpu_type)
613 AC_SUBST(obj_format)
614 AC_SUBST(te_file)
615 AC_SUBST(install_tooldir)
616 AC_SUBST(atof)
617 dnl AC_SUBST(emulation)
618
619 # do we need the opcodes library?
620 case "${need_opcodes}" in
621 yes)
622   OPCODES_LIB=../opcodes/libopcodes.la
623   ;;
624 esac
625
626 AC_SUBST(OPCODES_LIB)
627
628 AC_DEFINE_UNQUOTED(TARGET_ALIAS,        "${target_alias}", [Target alias.])
629 AC_DEFINE_UNQUOTED(TARGET_CANONICAL,    "${target}",       [Canonical target.])
630 AC_DEFINE_UNQUOTED(TARGET_CPU,          "${target_cpu}",   [Target CPU.])
631 AC_DEFINE_UNQUOTED(TARGET_VENDOR,       "${target_vendor}", [Target vendor.])
632 AC_DEFINE_UNQUOTED(TARGET_OS,           "${target_os}",    [Target OS.])
633
634 AC_PROG_YACC
635 AM_PROG_LEX
636
637 ALL_LINGUAS="fr tr es rw id ru fi ja"
638 ZW_GNU_GETTEXT_SISTER_DIR
639 AM_PO_SUBDIRS
640
641 AM_MAINTAINER_MODE
642 AM_CONDITIONAL(GENINSRC_NEVER, false)
643 AC_EXEEXT
644
645 AC_CHECK_HEADERS(string.h stdlib.h memory.h strings.h unistd.h errno.h sys/types.h limits.h locale.h time.h sys/stat.h)
646 ACX_HEADER_STRING
647
648 # Put this here so that autoconf's "cross-compiling" message doesn't confuse
649 # people who are not cross-compiling but are compiling cross-assemblers.
650 AC_MSG_CHECKING(whether compiling a cross-assembler)
651 if test "${host}" = "${target}"; then
652   cross_gas=no
653 else
654   cross_gas=yes
655   AC_DEFINE(CROSS_COMPILE, 1, [Compiling cross-assembler?])
656 fi
657 AC_MSG_RESULT($cross_gas)
658
659 dnl ansidecl.h will deal with const
660 dnl AC_C_CONST
661 AC_FUNC_ALLOCA
662 AC_C_INLINE
663
664 # VMS doesn't have unlink.
665 AC_CHECK_FUNCS(unlink remove, break)
666 AC_CHECK_FUNCS(sbrk setlocale)
667
668 AM_LC_MESSAGES
669
670 # do we need the math library?
671 case "${need_libm}" in
672 yes)
673   LT_LIB_M
674   AC_SUBST(LIBM)
675   ;;
676 esac
677
678 # Some non-ANSI preprocessors botch requoting inside strings.  That's bad
679 # enough, but on some of those systems, the assert macro relies on requoting
680 # working properly!
681 GAS_WORKING_ASSERT
682
683 # On some systems, the system header files may not declare malloc, realloc,
684 # and free.  There are places where gas needs these functions to have been
685 # declared -- such as when taking their addresses.
686 gas_test_headers="
687 #ifdef HAVE_MEMORY_H
688 #include <memory.h>
689 #endif
690 #ifdef HAVE_STRING_H
691 #include <string.h>
692 #else
693 #ifdef HAVE_STRINGS_H
694 #include <strings.h>
695 #endif
696 #endif
697 #ifdef HAVE_STDLIB_H
698 #include <stdlib.h>
699 #endif
700 #ifdef HAVE_UNISTD_H
701 #include <unistd.h>
702 #endif
703 "
704
705 # Does errno.h declare errno, or do we have to add a separate declaration
706 # for it?
707 GAS_CHECK_DECL_NEEDED(errno, f, int f, [
708 #ifdef HAVE_ERRNO_H
709 #include <errno.h>
710 #endif
711 ])
712
713 AC_MSG_CHECKING(for a known getopt prototype in unistd.h)
714 AC_CACHE_VAL(gas_cv_decl_getopt_unistd_h,
715 [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([#include <unistd.h>], [extern int getopt (int, char *const*, const char *);])],
716 gas_cv_decl_getopt_unistd_h=yes, gas_cv_decl_getopt_unistd_h=no)])
717 AC_MSG_RESULT($gas_cv_decl_getopt_unistd_h)
718 if test $gas_cv_decl_getopt_unistd_h = yes; then
719   AC_DEFINE([HAVE_DECL_GETOPT], 1,
720             [Is the prototype for getopt in <unistd.h> in the expected format?])
721 fi
722
723 GAS_CHECK_DECL_NEEDED(environ, f, char **f, $gas_test_headers)
724 GAS_CHECK_DECL_NEEDED(ffs, f, int (*f)(int), $gas_test_headers)
725 GAS_CHECK_DECL_NEEDED(free, f, void (*f)(), $gas_test_headers)
726 GAS_CHECK_DECL_NEEDED(malloc, f, char *(*f)(), $gas_test_headers)
727 GAS_CHECK_DECL_NEEDED(sbrk, f, char *(*f)(), $gas_test_headers)
728 GAS_CHECK_DECL_NEEDED(strstr, f, char *(*f)(), $gas_test_headers)
729
730 AC_CHECK_DECLS([free, getenv, malloc, mempcpy, realloc, stpcpy, strstr, vsnprintf])
731
732 BFD_BINARY_FOPEN
733
734 # Link in zlib if we can.  This allows us to write compressed debug sections.
735 AM_ZLIB
736
737 # Support for VMS timestamps via cross compile
738
739 if test "$ac_cv_header_time_h" = yes; then
740   GAS_HAVE_TIME_TYPE_MEMBER(struct tm, tm_gmtoff)
741 fi
742
743 if test "$ac_cv_header_sys_stat_h" = yes; then
744     GAS_HAVE_SYS_STAT_TYPE_MEMBER(struct stat, st_mtim, tv_sec)
745     GAS_HAVE_SYS_STAT_TYPE_MEMBER(struct stat, st_mtim, tv_nsec)
746 fi
747
748
749 dnl Required for html, pdf, install-pdf and install-html targets.
750 AC_SUBST(datarootdir)
751 AC_SUBST(docdir)
752 AC_SUBST(htmldir)
753 AC_SUBST(pdfdir)
754
755 dnl This must come last.
756
757 dnl We used to make symlinks to files in the source directory, but now
758 dnl we just use the right name for .c files, and create .h files in
759 dnl the build directory which include the right .h file.  Make sure
760 dnl the old symlinks don't exist, so that a reconfigure in an existing
761 dnl directory behaves reasonably.
762
763 AC_CONFIG_FILES(Makefile doc/Makefile po/Makefile.in:po/Make-in)
764 AC_CONFIG_COMMANDS([default],
765 [rm -f targ-cpu.c targ-cpu.h obj-format.h obj-format.c targ-env.h atof-targ.c itbl-cpu.h
766  echo '#include "tc-'"${target_cpu_type}"'.h"' > targ-cpu.h
767  echo '#include "obj-'"${obj_format}"'.h"' > obj-format.h
768  echo '#include "te-'"${te_file}"'.h"' > targ-env.h
769  echo '#include "itbl-'"${target_cpu_type}"'.h"' > itbl-cpu.h
770  if test "x$cgen_cpu_prefix" != x ; then
771    echo '#include "opcodes/'"${cgen_cpu_prefix}"'-desc.h"' > cgen-desc.h
772  fi],
773 [target_cpu_type=${target_cpu_type}
774  cgen_cpu_prefix=${cgen_cpu_prefix}
775  obj_format=${obj_format}
776  te_file=${te_file}])
777
778 AC_OUTPUT