binutils/:
[binutils.git] / gas / configure.in
blob3296f8c0f054e044f0f8fef6f0a91479e749572b
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.57)
9 AC_INIT(as.h)
11 dnl Autoconf 2.57 will find the aux dir without this.  However, unless
12 dnl we specify this explicitly, automake-1.7 will assume that ylwrap is in
13 dnl gas/ instead of gas/../.
14 AC_CONFIG_AUX_DIR(..)
15 AC_CANONICAL_SYSTEM
16 AC_ISC_POSIX
18 changequote(,)dnl
19 BFD_VERSION=`sed -n -e 's/^.._INIT_AUTOMAKE.*,[         ]*\([^  ]*\)[   ]*).*/\1/p' < ${srcdir}/../bfd/configure.in`
20 changequote([,])dnl
21 AM_INIT_AUTOMAKE(gas, ${BFD_VERSION})
23 AM_PROG_LIBTOOL
25 user_bfd_gas=
26 AC_ARG_ENABLE(bfd-assembler,
27 [  --enable-bfd-assembler  use BFD back end for writing object files],
28 [case "${enableval}" in
29   yes) need_bfd=yes user_bfd_gas=yes ;;
30   no)  user_bfd_gas=no ;;
31   *)   AC_MSG_ERROR(bad value ${enableval} given for bfd-assembler option) ;;
32 esac])dnl
33 AC_ARG_ENABLE(targets,
34 [    targets            alternative target configurations besides the primary],
35 [case "${enableval}" in
36   yes | "") AC_ERROR(enable-targets option must specify target names or 'all')
37             ;;
38   no)       enable_targets= ;;
39   *)        enable_targets=$enableval ;;
40 esac])dnl
41 AC_ARG_ENABLE(commonbfdlib,
42 [  --enable-commonbfdlib   build shared BFD/opcodes/libiberty library],
43 [case "${enableval}" in
44   yes) commonbfdlib=true ;;
45   no)  commonbfdlib=false ;;
46   *)   AC_MSG_ERROR([bad value ${enableval} for BFD commonbfdlib option]) ;;
47 esac])dnl
49 using_cgen=no
51 build_warnings="-W -Wall -Wstrict-prototypes -Wmissing-prototypes"
52 AC_ARG_ENABLE(build-warnings,
53 [  --enable-build-warnings Enable build-time compiler warnings if gcc is used],
54 [case "${enableval}" in
55   yes)  ;;
56   no)   build_warnings="-w";;
57   ,*)   t=`echo "${enableval}" | sed -e "s/,/ /g"`
58         build_warnings="${build_warnings} ${t}";;
59   *,)   t=`echo "${enableval}" | sed -e "s/,/ /g"`
60         build_warnings="${t} ${build_warnings}";;
61   *)    build_warnings=`echo "${enableval}" | sed -e "s/,/ /g"`;;
62 esac
63 if test x"$silent" != x"yes" && test x"$build_warnings" != x""; then
64   echo "Setting warning flags = $build_warnings" 6>&1
65 fi])dnl
66 WARN_CFLAGS=""
67 if test "x${build_warnings}" != x -a "x$GCC" = xyes ; then
68     WARN_CFLAGS="${build_warnings}"
70 AC_SUBST(WARN_CFLAGS)
72 # Generate a header file
73 AM_CONFIG_HEADER(config.h:config.in)
75 # If we are on a DOS filesystem, we must use gdb.ini rather than
76 # .gdbinit.
77 case "${host}" in
78   *-*-msdos* | *-*-go32* | *-*-mingw32* | *-*-windows*)
79     GDBINIT="gdb.ini"
80     AC_CONFIG_FILES(gdb.ini:gdbinit.in)
81     ;;
82   *)
83     GDBINIT=".gdbinit"
84     AC_CONFIG_FILES(.gdbinit:gdbinit.in)
85     ;;
86 esac
87 AC_SUBST(GDBINIT)
89 te_file=generic
91 # Makefile target for installing gas in $(tooldir)/bin.
92 install_tooldir=install-exec-tooldir
94 canon_targets=""
95 all_targets=no
96 if test -n "$enable_targets" ; then
97   for t in `echo $enable_targets | sed 's/,/ /g'`; do
98     if test $t = "all"; then
99       all_targets=yes
100       continue
101     fi
102     result=`$ac_config_sub $t 2>/dev/null`
103     if test -n "$result" ; then
104       canon_targets="$canon_targets $result"
105 #    else
106 #      # Permit "all", etc.  We don't support it yet though.
107 #      canon_targets="$canon_targets $t"
108     fi
109   done
110   GAS_UNIQ(canon_targets)
113 emulations=""
115 for this_target in $target $canon_targets ; do
117     targ=${this_target}
118     . ${srcdir}/configure.tgt
120     case ${target_cpu} in
121       crisv32)
122         AC_DEFINE_UNQUOTED(DEFAULT_CRIS_ARCH, $arch,
123                            [Default CRIS architecture.])
124         ;;
125     esac
127     if test ${this_target} = $target ; then
128       target_cpu_type=${cpu_type}
129     elif test ${target_cpu_type} != ${cpu_type} ; then
130       continue
131     fi
133     generic_target=${cpu_type}-${target_vendor}-${target_os}
134     case ${generic_target} in
135       i386-*-sco3.2v5*)
136         if test ${this_target} = $target; then
137           AC_DEFINE(SCO_ELF, 1, [Define if defaulting to ELF on SCO 5.])
138         fi
139         ;;
141       i386-*-msdosdjgpp* \
142       | i386-*-go32* \
143       | i386-go32-rtems*)
144         AC_DEFINE(STRICTCOFF, 1, [Using strict COFF?])
145         ;;
147       i860-*-*)
148         AC_MSG_WARN(GAS support for ${generic_target} is preliminary and a work in progress)
149         ;;
151       mips-sony-bsd*)
152         ;;
153       mips-*-bsd*)
154         AC_MSG_ERROR(Unknown vendor for mips-bsd configuration.)
155         ;;
157       ppc-*-aix5.*)
158         AC_DEFINE(AIX_WEAK_SUPPORT, 1,
159                   [Define if using AIX 5.2 value for C_WEAKEXT.])
160         ;;
161       ppc-*-linux-gnu*)
162         case "$endian" in
163           big)  ;;
164           *)    AC_MSG_ERROR(GNU/Linux must be configured big endian) ;;
165         esac
166         ;;
167       ppc-*-solaris*)
168         if test ${this_target} = $target; then
169           AC_DEFINE(TARGET_SOLARIS_COMMENT, 1,
170                     [Define if default target is PowerPC Solaris.])
171         fi
172         if test x${endian} = xbig; then
173           AC_MSG_ERROR(Solaris must be configured little endian)
174         fi
175         ;;
177       sh*-*-symbianelf*)
178         AC_DEFINE(TARGET_SYMBIAN, 1, [Define if target is Symbian OS.])
179         ;;
180     esac
182     if test ${this_target} = $target ; then
183       endian_def=
184       if test x${endian} = xbig; then
185         endian_def=1
186       elif test x${endian} = xlittle; then
187         endian_def=0
188       fi
189       if test x${endian_def} != x; then
190         AC_DEFINE_UNQUOTED(TARGET_BYTES_BIG_ENDIAN, $endian_def,
191                            [Define as 1 if big endian.])
192       fi
193     fi
195 # Other random stuff.
197     case ${cpu_type} in
198       mips)
199         # Set mips_cpu to the name of the default CPU.
200         case ${target_cpu} in
201           mips | mipsbe | mipseb | mipsle | mipsel | mips64 | mips64el)
202             mips_cpu=from-abi
203             ;;
204           mipsisa32 | mipsisa32el)
205             mips_cpu=mips32
206             ;;
207           mipsisa32r2 | mipsisa32r2el)
208             mips_cpu=mips32r2
209             ;;
210           mipsisa64 | mipsisa64el)
211             mips_cpu=mips64
212             ;;
213           mipsisa64r2 | mipsisa64r2el)
214             mips_cpu=mips64r2
215             ;;
216           mipstx39 | mipstx39el)
217             mips_cpu=r3900
218             ;;
219           mips64vr | mips64vrel)
220             mips_cpu=vr4100
221             ;;
222           mipsisa32r2* | mipsisa64r2*)
223 changequote(,)dnl
224             mips_cpu=`echo $target_cpu | sed -e 's/[a-z]*..r2//' -e 's/el$//'`
225 changequote([,])dnl
226             ;;
227           mips64* | mipsisa64* | mipsisa32*)
228 changequote(,)dnl
229             mips_cpu=`echo $target_cpu | sed -e 's/[a-z]*..//' -e 's/el$//'`
230 changequote([,])dnl
231             ;;
232           *)
233             AC_ERROR($target_cpu isn't a supported MIPS CPU name)
234             ;;
235         esac
236         # See whether it's appropriate to set E_MIPS_ABI_O32 for o32
237         # binaries.  It's a GNU extension that some OSes don't understand.
238         # The value only matters on ELF targets.
239         case ${target} in
240           *-*-irix*)
241             use_e_mips_abi_o32=0
242             ;;
243           *)
244             use_e_mips_abi_o32=1
245             ;;
246         esac
247         # Decide whether to generate 32-bit or 64-bit code by default.
248         # Used to resolve -march=from-abi when an embedded ABI is selected.
249         case ${target} in
250           mips64*-*-* | mipsisa64*-*-*)
251             mips_default_64bit=1
252             ;;
253           *)
254             mips_default_64bit=0
255             ;;
256         esac
257         # Decide which ABI to target by default.
258         case ${target} in
259           mips64*-linux* | mips-sgi-irix6*)
260             mips_default_abi=N32_ABI
261             ;;
262           mips*-linux*)
263             mips_default_abi=O32_ABI
264             ;;
265           *)
266             mips_default_abi=NO_ABI
267             ;;
268         esac
269         AC_DEFINE_UNQUOTED(MIPS_CPU_STRING_DEFAULT, "$mips_cpu",
270                            [Default CPU for MIPS targets. ])
271         AC_DEFINE_UNQUOTED(USE_E_MIPS_ABI_O32, $use_e_mips_abi_o32,
272                            [Allow use of E_MIPS_ABI_O32 on MIPS targets. ])
273         AC_DEFINE_UNQUOTED(MIPS_DEFAULT_64BIT, $mips_default_64bit,
274                            [Generate 64-bit code by default on MIPS targets. ])
275         AC_DEFINE_UNQUOTED(MIPS_DEFAULT_ABI, $mips_default_abi,
276                            [Choose a default ABI for MIPS targets. ])
277         ;;
278     esac
280     # Do we need the opcodes library?
281     case ${cpu_type} in
282       vax | i386 | tic30)
283         ;;
285       *)
286         need_opcodes=yes
288         case "${enable_shared}" in
289         yes) shared_opcodes=true ;;
290         *opcodes*) shared_opcodes=true ;;
291         *) shared_opcodes=false ;;
292         esac
293         if test "${shared_opcodes}" = "true"; then
294           # A shared libopcodes must be linked against libbfd.
295           need_bfd=yes
296         fi
297         ;;
298     esac
300     # Any other special object files needed ?
301     case ${cpu_type} in
302       fr30 | ip2k | iq2000 | m32r | openrisc)
303         using_cgen=yes
304         ;;
306       frv)
307         using_cgen=yes
308         ;;
309       m68k)
310         case ${extra_objects} in
311         *m68k-parse.o*) ;;
312         *) extra_objects="$extra_objects m68k-parse.o" ;;
313         esac
314         ;;
316       mips)
317         echo ${extra_objects} | grep -s "itbl-parse.o" 
318         if test $? -ne 0 ; then
319           extra_objects="$extra_objects itbl-parse.o"
320         fi
322         echo ${extra_objects} | grep -s "itbl-lex.o" 
323         if test $? -ne 0 ; then
324           extra_objects="$extra_objects itbl-lex.o"
325         fi
327         echo ${extra_objects} | grep -s "itbl-ops.o" 
328         if test $? -ne 0 ; then
329           extra_objects="$extra_objects itbl-ops.o"
330         fi
331         ;;
333       i386 | s390 | sparc)
334         if test $this_target = $target ; then
335           AC_DEFINE_UNQUOTED(DEFAULT_ARCH, "${arch}", [Default architecture.])
336         fi
337         ;;
339       xstormy16)
340         using_cgen=yes
341         ;;
343       xtensa)
344         echo ${extra_objects} | grep -s "xtensa-relax.o"
345         if test $? -ne 0 ; then
346           extra_objects="$extra_objects xtensa-relax.o"
347         fi
348         ;;
350       *)
351         ;;
352     esac
354     if test $using_cgen = yes ; then
355         case "x${extra_objects}" in
356         *cgen.o*) ;;
357         *) extra_objects="$extra_objects cgen.o" ;;
358         esac
359     fi
361 # See if we really can support this configuration with the emulation code.
363     if test $this_target = $target ; then
364       primary_bfd_gas=$bfd_gas
365       obj_format=$fmt
366       te_file=$em
368       if test $bfd_gas = no ; then
369         # Can't support other configurations this way.
370         break
371       fi
372     elif test $bfd_gas = no ; then
373       # Can't support this configuration.
374       break
375     fi
377 # From target name and format, produce a list of supported emulations.
379     case ${generic_target}-${fmt} in
380       mips-*-irix5*-*)  emulation="mipsbelf mipslelf mipself mipsbecoff mipslecoff mipsecoff" ;;
381       mips*-*-linux*-*) case "$endian" in
382                         big)    emulation="mipsbelf mipslelf mipself" ;;
383                         *)      emulation="mipslelf mipsbelf mipself" ;;
384                         esac ;;
385       mips-*-lnews*-ecoff) ;;
386       mips-*-*-ecoff)   case "$endian" in
387                         big)    emulation="mipsbecoff mipslecoff mipsecoff" ;;
388                         *)      emulation="mipslecoff mipsbecoff mipsecoff" ;;
389                         esac ;;
390       mips-*-*-elf)     case "$endian" in
391                         big)    emulation="mipsbelf mipslelf mipself" ;;
392                         *)      emulation="mipslelf mipsbelf mipself" ;;
393                         esac ;;
394       mips-*-sysv4*MP*-*) emulation="mipsbelf mipslelf mipself mipsbecoff mipslecoff mipsecoff" ;;
395       # i386-pc-pe-coff != i386-pc-coff.
396       i386-*-pe-coff)   ;;
397       # Uncommenting the next line will turn on support for i386 AOUT
398       # for the default linux configuration
399       # i386-*-linux*-elf) emulation="i386elf i386aout" ;;
400       #
401       i386-*-aout)      emulation="i386aout" ;;
402       i386-*-coff)      emulation="i386coff" ;;
403       i386-*-elf)       emulation="i386elf" ;;
405       # Always all formats.  The first stated emulation becomes the default.
406       cris-*-*aout*)    emulation="crisaout criself" ;;
407       cris-*-*)         emulation="criself crisaout" ;;
408     esac
410     emulations="$emulations $emulation"
412 done
414 # Turn on all targets if possible
415 if test ${all_targets} = "yes"; then
416   case ${target_cpu_type} in
417   i386)
418     case ${obj_format} in
419     aout)
420       emulations="$emulations i386coff i386elf"
421       ;;
422     coff)
423       emulations="$emulations i386aout i386elf"
424     ;;
425     elf)
426       emulations="$emulations i386aout i386coff"
427       ;;
428     esac
429   ;;
430   esac
433 # Assign floating point type.  Most processors with FP support
434 # IEEE FP.  On those that don't support FP at all, usually IEEE
435 # is emulated.
436 case ${target_cpu} in
437   vax | tahoe ) atof=${target_cpu} ;;
438   pdp11)        atof=vax ;;
439   *)            atof=ieee ;;
440 esac
442 case "${obj_format}" in
443   "") AC_MSG_ERROR(GAS does not know what format to use for target ${target}) ;;
444 esac
446 # Unfortunately the cpu in cpu-opc.h file isn't always $(TARGET_CPU).
447 cgen_cpu_prefix=""
448 if test $using_cgen = yes ; then
449   case ${target_cpu} in
450     *) cgen_cpu_prefix=${target_cpu} ;;
451   esac
452   AC_SUBST(cgen_cpu_prefix)
453   AC_DEFINE(USING_CGEN, 1, [Using cgen code?])
457 dnl Make sure the desired support files exist.
460 if test ! -r ${srcdir}/config/tc-${target_cpu_type}.c; then
461   AC_MSG_ERROR(GAS does not support target CPU ${target_cpu_type})
464 if test ! -r ${srcdir}/config/obj-${obj_format}.c; then
465   AC_MSG_ERROR(GAS does not have support for object file format ${obj_format})
468 case ${user_bfd_gas}-${primary_bfd_gas} in
469   yes-yes | no-no)
470     # We didn't override user's choice.
471     ;;
472   no-yes)
473     AC_MSG_WARN(Use of BFD is required for ${target}; overriding config options.)
474     ;;
475   no-preferred)
476     primary_bfd_gas=no
477     ;;
478   *-preferred)
479     primary_bfd_gas=yes
480     ;;
481   yes-*)
482     primary_bfd_gas=yes
483     ;;
484   -*)
485     # User specified nothing.
486     ;;
487 esac
489 # Some COFF configurations want these random other flags set.
490 case ${obj_format} in
491   coff)
492     case ${target_cpu_type} in
493       i386) AC_DEFINE(I386COFF, 1, [Using i386 COFF?]) ;;
494       m68k) AC_DEFINE(M68KCOFF, 1, [Using m68k COFF?]) ;;
495       m88k) AC_DEFINE(M88KCOFF, 1, [Using m88k COFF?]) ;;
496     esac
497     ;;
498 esac
500 # Getting this done right is going to be a bitch.  Each configuration specified
501 # with --enable-targets=... should be checked for environment, format, cpu, and
502 # bfd_gas setting.
504 # For each configuration, the necessary object file support code must be linked
505 # in.  This might be only one, it might be up to four.  The necessary emulation
506 # code needs to be provided, too.
508 # And then there's "--enable-targets=all"....
510 # For now, just always do it for MIPS ELF or ECOFF configurations.  Sigh.
512 formats="${obj_format}"
513 emfiles=""
514 EMULATIONS=""
515 GAS_UNIQ(emulations)
516 for em in . $emulations ; do
517   case $em in
518     .)  continue ;;
519     mipsbelf | mipslelf | mipself)
520         fmt=elf   file=mipself ;;
521     mipsbecoff | mipslecoff | mipsecoff)
522         fmt=ecoff file=mipsecoff ;;
523     *coff)
524         fmt=coff  file=$em ;;
525     *aout)
526         fmt=aout file=$em ;;
527     *elf)
528         fmt=elf file=$em ;;
529   esac
530   formats="$formats $fmt"
531   emfiles="$emfiles e-$file.o"
532   EMULATIONS="$EMULATIONS &$em,"
533 done
534 GAS_UNIQ(formats)
535 GAS_UNIQ(emfiles)
536 if test `set . $formats ; shift ; echo $#` -gt 1 ; then
537   for fmt in $formats ; do
538     case $fmt in
539       aout)     AC_DEFINE(OBJ_MAYBE_AOUT, 1,    [a.out support?])   ;;
540       bout)     AC_DEFINE(OBJ_MAYBE_BOUT, 1,    [b.out support?])   ;;
541       coff)     AC_DEFINE(OBJ_MAYBE_COFF, 1,    [COFF support?])    ;;
542       ecoff)    AC_DEFINE(OBJ_MAYBE_ECOFF, 1,   [ECOFF support?])   ;;
543       elf)      AC_DEFINE(OBJ_MAYBE_ELF, 1,     [ELF support?])     ;;
544       generic)  AC_DEFINE(OBJ_MAYBE_GENERIC, 1, [generic support?]) ;;
545       hp300)    AC_DEFINE(OBJ_MAYBE_HP300, 1,   [HP300 support?])   ;;
546       ieee)     AC_DEFINE(OBJ_MAYBE_IEEE, 1,    [IEEE support?])    ;;
547       som)      AC_DEFINE(OBJ_MAYBE_SOM, 1,     [SOM support?])     ;;
548       vms)      AC_DEFINE(OBJ_MAYBE_VMS, 1,     [VMS support?])     ;;
549     esac
550     extra_objects="$extra_objects obj-$fmt.o"
551   done
552   obj_format=multi
554 if test `set . $emfiles ; shift ; echo $#` -gt 0 ; then
555   DEFAULT_EMULATION=`set . $emulations ; echo $2`
556   # e-mips* has more than one emulation per file, e-i386* has just one at the
557   # moment.  If only one emulation is specified, then don't define
558   # USE_EMULATIONS or include any of the e-files as they will only be bloat.
559   case "${obj_format}${emfiles}" in
560     multi* | *mips*)
561       extra_objects="$extra_objects $emfiles"
562       AC_DEFINE(USE_EMULATIONS, 1, [Use emulation support?]) ;;
563   esac
565 AC_SUBST(extra_objects)
566 AC_DEFINE_UNQUOTED(EMULATIONS, $EMULATIONS, [Supported emulations.])
567 AC_DEFINE_UNQUOTED(DEFAULT_EMULATION, "$DEFAULT_EMULATION",
568                    [Default emulation.])
570 case ${primary_bfd_gas}-${target_cpu_type}-${obj_format} in
571   yes-*-coff)   need_bfd=yes ;;
572   no-*-coff)    need_bfd=yes
573                 AC_DEFINE(MANY_SEGMENTS, 1, [old COFF support?]) ;;
574 esac
576 reject_dev_configs=yes
578 case ${reject_dev_configs}-${dev} in
579   yes-yes) # Oops.
580     AC_MSG_ERROR(GAS does not support the ${generic_target} configuration.)
581     ;;
582 esac
584 AC_SUBST(target_cpu_type)
585 AC_SUBST(obj_format)
586 AC_SUBST(te_file)
587 AC_SUBST(install_tooldir)
588 AC_SUBST(atof)
589 dnl AC_SUBST(emulation)
591 case "${primary_bfd_gas}" in
592   yes)  AC_DEFINE(BFD_ASSEMBLER, 1, [Use BFD interface?])
593         need_bfd=yes ;;
594 esac
596 # do we need the opcodes library?
597 case "${need_opcodes}" in
598 yes)
599   OPCODES_LIB=../opcodes/libopcodes.la
600   ;;
601 esac
603 case "${need_bfd}" in
604 yes)
605   BFDLIB=../bfd/libbfd.la
606   BFDVER_H=../bfd/bfdver.h
607   ALL_OBJ_DEPS="$ALL_OBJ_DEPS"' ../bfd/bfd.h $(INCDIR)/symcat.h'
608   ;;
609 esac
611 AC_SUBST(BFDLIB)
612 AC_SUBST(OPCODES_LIB)
614 AC_SUBST(BFDVER_H)
615 AC_SUBST(ALL_OBJ_DEPS)
617 AC_DEFINE_UNQUOTED(TARGET_ALIAS,        "${target_alias}", [Target alias.])
618 AC_DEFINE_UNQUOTED(TARGET_CANONICAL,    "${target}",       [Canonical target.])
619 AC_DEFINE_UNQUOTED(TARGET_CPU,          "${target_cpu}",   [Target CPU.])
620 AC_DEFINE_UNQUOTED(TARGET_VENDOR,       "${target_vendor}", [Target vendor.])
621 AC_DEFINE_UNQUOTED(TARGET_OS,           "${target_os}",    [Target OS.])
623 AC_PROG_CC
625 AC_PROG_YACC
626 AM_PROG_LEX
628 ALL_LINGUAS="fr tr es"
629 CY_GNU_GETTEXT
631 AM_MAINTAINER_MODE
632 AC_EXEEXT
634 AC_CHECK_HEADERS(string.h stdlib.h memory.h strings.h unistd.h stdarg.h varargs.h errno.h sys/types.h)
636 # Put this here so that autoconf's "cross-compiling" message doesn't confuse
637 # people who are not cross-compiling but are compiling cross-assemblers.
638 AC_MSG_CHECKING(whether compiling a cross-assembler)
639 if test "${host}" = "${target}"; then
640   cross_gas=no
641 else
642   cross_gas=yes
643   AC_DEFINE(CROSS_COMPILE, 1, [Compiling cross-assembler?])
645 AC_MSG_RESULT($cross_gas)
647 dnl ansidecl.h will deal with const
648 dnl AC_CONST
649 AC_FUNC_ALLOCA
650 AC_C_INLINE
652 # VMS doesn't have unlink.
653 AC_CHECK_FUNCS(unlink remove, break)
655 # Some systems don't have sbrk().
656 AC_CHECK_FUNCS(sbrk)
658 # do we need the math library?
659 case "${need_libm}" in
660 yes) 
661   AC_CHECK_LIBM
662   AC_SUBST(LIBM)
663   ;;
664 esac
666 # Some non-ANSI preprocessors botch requoting inside strings.  That's bad
667 # enough, but on some of those systems, the assert macro relies on requoting
668 # working properly!
669 GAS_WORKING_ASSERT
671 # On some systems, the system header files may not declare malloc, realloc,
672 # and free.  There are places where gas needs these functions to have been
673 # declared -- such as when taking their addresses.
674 gas_test_headers="
675 #ifdef HAVE_MEMORY_H
676 #include <memory.h>
677 #endif
678 #ifdef HAVE_STRING_H
679 #include <string.h>
680 #else
681 #ifdef HAVE_STRINGS_H
682 #include <strings.h>
683 #endif
684 #endif
685 #ifdef HAVE_STDLIB_H
686 #include <stdlib.h>
687 #endif
688 #ifdef HAVE_UNISTD_H
689 #include <unistd.h>
690 #endif
692 GAS_CHECK_DECL_NEEDED(strstr, f, char *(*f)(), $gas_test_headers)
693 GAS_CHECK_DECL_NEEDED(malloc, f, char *(*f)(), $gas_test_headers)
694 GAS_CHECK_DECL_NEEDED(free, f, void (*f)(), $gas_test_headers)
695 GAS_CHECK_DECL_NEEDED(sbrk, f, char *(*f)(), $gas_test_headers)
696 GAS_CHECK_DECL_NEEDED(environ, f, char **f, $gas_test_headers)
698 # Does errno.h declare errno, or do we have to add a separate declaration
699 # for it?
700 GAS_CHECK_DECL_NEEDED(errno, f, int f, [
701 #ifdef HAVE_ERRNO_H
702 #include <errno.h>
703 #endif
706 dnl This must come last.
708 dnl We used to make symlinks to files in the source directory, but now
709 dnl we just use the right name for .c files, and create .h files in
710 dnl the build directory which include the right .h file.  Make sure
711 dnl the old symlinks don't exist, so that a reconfigure in an existing
712 dnl directory behaves reasonably.
714 AC_CONFIG_FILES(Makefile doc/Makefile po/Makefile.in:po/Make-in)
715 AC_CONFIG_COMMANDS([default],
716 [rm -f targ-cpu.c targ-cpu.h obj-format.h obj-format.c targ-env.h atof-targ.c itbl-cpu.h
717  echo '#include "tc-'"${target_cpu_type}"'.h"' > targ-cpu.h
718  echo '#include "obj-'"${obj_format}"'.h"' > obj-format.h
719  echo '#include "te-'"${te_file}"'.h"' > targ-env.h
720  echo '#include "itbl-'"${target_cpu_type}"'.h"' > itbl-cpu.h
721  if test "x$cgen_cpu_prefix" != x ; then
722    echo '#include "opcodes/'"${cgen_cpu_prefix}"'-desc.h"' > cgen-desc.h
723  fi
725  sed -e '/POTFILES =/r po/POTFILES' po/Makefile.in > po/Makefile],
726 [target_cpu_type=${target_cpu_type}
727  cgen_cpu_prefix=${cgen_cpu_prefix}
728  obj_format=${obj_format}
729  te_file=${te_file}])
731 AC_OUTPUT