1 dnl Process this file with autoconf to produce a configure script.
3 dnl And be careful when changing it! If you must add tests with square
4 dnl brackets, be sure changequote invocations surround it.
6 dnl Copyright (C) 2012-2021 Free Software Foundation, Inc.
8 dnl This file is free software; you can redistribute it and/or modify
9 dnl it under the terms of the GNU General Public License as published by
10 dnl the Free Software Foundation; either version 3 of the License, or
11 dnl (at your option) any later version.
13 dnl This program is distributed in the hope that it will be useful,
14 dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
15 dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 dnl GNU General Public License for more details.
18 dnl You should have received a copy of the GNU General Public License
19 dnl along with this program; see the file COPYING3. If not see
20 dnl <http://www.gnu.org/licenses/>.
22 dnl v2.5 needed for --bindir et al
23 m4_include([../bfd/version.m4])
24 AC_INIT([gas], BFD_VERSION)
25 AC_CONFIG_SRCDIR(as.h)
27 dnl Autoconf 2.57 will find the aux dir without this. However, unless
28 dnl we specify this explicitly, automake-1.7 will assume that ylwrap is in
29 dnl gas/ instead of gas/../.
37 AC_USE_SYSTEM_EXTENSIONS
41 ACX_PROG_CMP_IGNORE_INITIAL
43 AC_ARG_ENABLE(targets,
44 [ --enable-targets alternative target configurations besides the primary],
45 [case "${enableval}" in
46 yes | "") AC_MSG_ERROR(enable-targets option must specify target names or 'all')
48 no) enable_targets= ;;
49 *) enable_targets=$enableval ;;
53 . ${srcdir}/../bfd/development.sh
54 test "$development" = true && ac_checking=yes
55 AC_ARG_ENABLE(checking,
56 [ --enable-checking enable run-time checks],
57 [case "${enableval}" in
58 no|none) ac_checking= ;;
61 if test x$ac_checking != x ; then
62 AC_DEFINE(ENABLE_CHECKING, 1, [Define if you want run-time sanity checks.])
66 # Decide the default method for compressing debug sections.
67 ac_default_compressed_debug_sections=unset
68 # Provide a configure time option to override our default.
69 AC_ARG_ENABLE(compressed_debug_sections,
70 AS_HELP_STRING([--enable-compressed-debug-sections={all,gas,none}],
71 [compress debug sections by default]),
72 [case ,"${enableval}", in
73 ,yes, | ,all, | *,gas,*) ac_default_compressed_debug_sections=yes ;;
74 ,no, | ,none,) ac_default_compressed_debug_sections=no ;;
75 *) ac_default_compressed_debug_sections=unset ;;
79 # Decide if x86 assembler should generate relax relocations.
80 ac_default_x86_relax_relocations=unset
81 # Provide a configure time option to override our default.
82 AC_ARG_ENABLE(x86_relax_relocations,
83 AS_HELP_STRING([--enable-x86-relax-relocations],
84 [generate x86 relax relocations by default]),
85 [case "${enableval}" in
86 no) ac_default_x86_relax_relocations=0 ;;
89 # Decide if ELF assembler should generate common symbols with the
91 ac_default_elf_stt_common=unset
92 # Provide a configure time option to override our default.
93 AC_ARG_ENABLE(elf_stt_common,
94 AS_HELP_STRING([--enable-elf-stt-common],
95 [generate ELF common symbols with STT_COMMON type by default]),
96 [case "${enableval}" in
97 yes) ac_default_elf_stt_common=1 ;;
101 # Decide if the ELF assembler should default to generating
102 # GNU Build notes if none are provided by the input.
103 ac_default_generate_build_notes=0
104 # Provide a configuration option to override the default.
105 AC_ARG_ENABLE(generate_build_notes,
106 AS_HELP_STRING([--enable-generate-build-notes],
107 [generate GNU Build notes if none are provided by the input]),
108 [case "${enableval}" in
109 yes) ac_default_generate_build_notes=1 ;;
110 no) ac_default_generate_build_notes=0 ;;
113 # Decide if the MIPS assembler should default to enable MIPS fix Loongson3
115 ac_default_mips_fix_loongson3_llsc=unset
116 # Provide a configuration option to override the default.
117 AC_ARG_ENABLE(mips-fix-loongson3-llsc,
118 AS_HELP_STRING([--enable-mips-fix-loongson3-llsc],
119 [enable MIPS fix Loongson3 LLSC errata]),
120 [case "${enableval}" in
121 yes) ac_default_mips_fix_loongson3_llsc=1 ;;
122 no) ac_default_mips_fix_loongson3_llsc=0 ;;
125 # Decide if the x86 ELF assembler should default to generating GNU x86
126 # used ISA and feature properties.
127 ac_default_generate_x86_used_note=unset
128 # Provide a configuration option to override the default.
129 AC_ARG_ENABLE(x86-used-note,
130 AS_HELP_STRING([--enable-x86-used-note],
131 [generate GNU x86 used ISA and feature properties]),
132 [case "${enableval}" in
133 yes) ac_default_generate_x86_used_note=1 ;;
134 no) ac_default_generate_x86_used_note=0 ;;
137 # Decide if the RISC-V ELF assembler should default to generating attribute.
138 ac_default_generate_riscv_attr=unset
139 # Provide a configuration option to override the default.
140 AC_ARG_ENABLE(default-riscv-attribute,
141 AS_HELP_STRING([--enable-default-riscv-attribute],
142 [generate RISC-V arch attribute by default]),
143 [case "${enableval}" in
144 yes) ac_default_generate_riscv_attr=1 ;;
145 no) ac_default_generate_riscv_attr=0 ;;
152 # Generate a header file
153 AC_CONFIG_HEADERS(config.h:config.in)
155 dnl Option --with-cpu=TYPE allows configure type control of the default
156 dnl cpu type within the assembler. Currently only the ARC target
157 dnl supports this feature, but others may be added in the future.
159 AS_HELP_STRING([--with-cpu=CPU],
160 [default cpu variant is CPU (currently only supported on ARC)]),
161 [AC_DEFINE_UNQUOTED(TARGET_WITH_CPU,
163 [Target specific CPU.])],
167 AH_VERBATIM([00_CONFIG_H_CHECK],
168 [/* Check that config.h is #included before system headers
169 (this works only for glibc, but that should be enough). */
170 #if defined(__GLIBC__) && !defined(__FreeBSD_kernel__) && !defined(__CONFIG_H__)
171 # error config.h must be #included before system headers
173 #define __CONFIG_H__ 1])
175 # If we are on a DOS filesystem, we must use gdb.ini rather than
178 *-*-msdos* | *-*-go32* | *-*-mingw32* | *-*-windows*)
180 AC_CONFIG_FILES(gdb.ini:gdbinit.in)
184 AC_CONFIG_FILES(.gdbinit:gdbinit.in)
189 #We need this for the host.
194 # Makefile target for installing gas in $(tooldir)/bin.
195 install_tooldir=install-exec-tooldir
199 if test -n "$enable_targets" ; then
200 for t in `echo $enable_targets | sed 's/,/ /g'`; do
201 if test $t = "all"; then
205 result=`$ac_config_sub $t 2>/dev/null`
206 if test -n "$result" ; then
207 canon_targets="$canon_targets $result"
209 # # Permit "all", etc. We don't support it yet though.
210 # canon_targets="$canon_targets $t"
213 GAS_UNIQ(canon_targets)
218 for this_target in $target $canon_targets ; do
221 . ${srcdir}/configure.tgt
223 case ${target_cpu} in
225 AC_DEFINE_UNQUOTED(DEFAULT_CRIS_ARCH, $arch,
226 [Default CRIS architecture.])
230 if test ${this_target} = $target ; then
231 target_cpu_type=${cpu_type}
232 elif test ${target_cpu_type} != ${cpu_type} ; then
236 generic_target=${cpu_type}-${target_vendor}-${target_os}
237 case ${generic_target} in
241 AC_DEFINE(STRICTCOFF, 1, [Using strict COFF?])
244 i386-*-linux-* | x86_64-*-linux-*)
245 if test ${this_target} = $target \
246 && test ${ac_default_generate_x86_used_note} = unset; then
247 ac_default_generate_x86_used_note=1
252 | x86_64-*-solaris2 \
253 | i386-*-solaris2.[[0-9]] \
254 | i386-*-solaris2.1[[01]] \
255 | x86_64-*-solaris2.1[[01]])
256 if test ${this_target} = $target \
257 && test ${ac_default_x86_relax_relocations} = unset; then
258 ac_default_x86_relax_relocations=0
268 AC_DEFINE(AIX_WEAK_SUPPORT, 1,
269 [Define if using AIX 5.2 value for C_WEAKEXT.])
272 if test ${this_target} = $target; then
273 AC_DEFINE(TARGET_SOLARIS_COMMENT, 1,
274 [Define if default target is PowerPC Solaris.])
276 if test x${endian} = xbig; then
277 AC_MSG_ERROR(Solaris must be configured little endian)
282 if test ${this_target} = $target ; then
284 if test x${endian} = xbig; then
286 elif test x${endian} = xlittle; then
289 if test x${endian_def} != x; then
290 AC_DEFINE_UNQUOTED(TARGET_BYTES_BIG_ENDIAN, $endian_def,
291 [Define as 1 if big endian.])
295 # Other random stuff.
299 # Set mips_cpu to the name of the default CPU.
300 case ${target_cpu} in
301 mips | mipsbe | mipseb | mipsle | mipsel | mips64 | mips64el)
304 mipsisa32 | mipsisa32el)
307 mipsisa32r2 | mipsisa32r2el)
310 mipsisa32r3 | mipsisa32r3el)
313 mipsisa32r5 | mipsisa32r5el)
316 mipsisa32r6 | mipsisa32r6el)
319 mipsisa64 | mipsisa64el)
322 mipsisa64r2 | mipsisa64r2el)
325 mipsisa64r3 | mipsisa64r3el)
328 mipsisa64r5 | mipsisa64r5el)
331 mipsisa64r6 | mipsisa64r6el)
334 mipstx39 | mipstx39el)
337 mips64vr | mips64vrel)
340 mipsisa32r2* | mipsisa64r2*)
342 mips_cpu=`echo $target_cpu | sed -e 's/[a-z]*..r2//' -e 's/el$//'`
345 mipsisa32r6* | mipsisa64r6*)
347 mips_cpu=`echo $target_cpu | sed -e 's/[a-z]*..r6//' -e 's/el$//'`
350 mips64* | mipsisa64* | mipsisa32*)
352 mips_cpu=`echo $target_cpu | sed -e 's/[a-z]*..//' -e 's/el$//'`
357 mips_cpu=`echo $target_cpu | sed -e 's/^mips//' -e 's/el$//'`
361 AC_MSG_ERROR($target_cpu isn't a supported MIPS CPU name)
364 # See whether it's appropriate to set E_MIPS_ABI_O32 for o32
365 # binaries. It's a GNU extension that some OSes don't understand.
374 # Decide whether to generate 32-bit or 64-bit code by default.
375 # Used to resolve -march=from-abi when an embedded ABI is selected.
377 mips64*-*-* | mipsisa64*-*-*)
384 # Decide which ABI to target by default.
386 mips64*-linux* | mips-sgi-irix6* | mips64*-freebsd* \
387 | mips64*-kfreebsd*-gnu | mips64*-ps2-elf*)
388 mips_default_abi=N32_ABI
390 mips*-linux* | mips*-freebsd* | mips*-kfreebsd*-gnu)
391 mips_default_abi=O32_ABI
394 mips_default_abi=N64_ABI
397 mips_default_abi=NO_ABI
400 AC_DEFINE_UNQUOTED(MIPS_CPU_STRING_DEFAULT, "$mips_cpu",
401 [Default CPU for MIPS targets. ])
402 AC_DEFINE_UNQUOTED(USE_E_MIPS_ABI_O32, $use_e_mips_abi_o32,
403 [Allow use of E_MIPS_ABI_O32 on MIPS targets. ])
404 AC_DEFINE_UNQUOTED(MIPS_DEFAULT_64BIT, $mips_default_64bit,
405 [Generate 64-bit code by default on MIPS targets. ])
406 AC_DEFINE_UNQUOTED(MIPS_DEFAULT_ABI, $mips_default_abi,
407 [Choose a default ABI for MIPS targets. ])
411 # Do we need the opcodes library?
419 case "${enable_shared}" in
420 yes) shared_opcodes=true ;;
421 *opcodes*) shared_opcodes=true ;;
422 *) shared_opcodes=false ;;
427 # Any other special object files needed ?
431 for f in config/bfin-parse.o config/bfin-lex-wrapper.o; do
432 case " $extra_objects " in
434 *) extra_objects="$extra_objects $f" ;;
440 if test $this_target = $target ; then
441 AC_DEFINE_UNQUOTED(DEFAULT_ARCH, "${arch}", [Default architecture.])
445 epiphany | fr30 | ip2k | iq2000 | lm32 | m32r | or1k)
456 f=config/m68k-parse.o
457 case " $extra_objects " in
459 *) extra_objects="$extra_objects $f" ;;
468 for f in itbl-parse.o itbl-lex-wrapper.o itbl-ops.o; do
469 case " $extra_objects " in
471 *) extra_objects="$extra_objects $f" ;;
481 # setup NDS32_LINUX_TOOLCHAIN definition
482 if test "linux" = $em; then
483 AC_DEFINE(NDS32_LINUX_TOOLCHAIN, 1,
484 [Define value for nds32_linux_toolchain])
486 AC_DEFINE(NDS32_LINUX_TOOLCHAIN, 0,
487 [Define default value for nds32_linux_toolchain])
490 # Decide BASELINE, REDUCED_REGS, FPU_DP_EXT, FPU_SP_EXT features
491 # based on arch_name.
492 AC_MSG_CHECKING(for default configuration of --with-arch)
493 if test "x${with_arch}" != x; then
495 v2j | v2s | v2f | v2 | v3m | v3j | v3s | v3f | v3 )
496 AC_DEFINE_UNQUOTED(NDS32_DEFAULT_ARCH_NAME, "$with_arch",
497 [Define value for nds32_arch_name])
500 AC_MSG_ERROR(This kind of arch name does *NOT* exist!)
504 AC_MSG_RESULT($with_arch)
506 # Decide features one by one.
507 AC_MSG_CHECKING(for default configuration of --enable-dx-regs)
508 if test "x${enable_dx_regs}" = xyes; then
509 AC_DEFINE(NDS32_DEFAULT_DX_REGS, 1,
510 [Define value for nds32_dx_regs])
512 AC_DEFINE(NDS32_DEFAULT_DX_REGS, 0,
513 [Define default value for nds32_dx_regs])
515 AC_MSG_RESULT($enable_dx_regs)
517 AC_MSG_CHECKING(for default configuration of --enable-perf-ext)
518 if test "x${enable_perf_ext}" = xno; then
519 AC_DEFINE(NDS32_DEFAULT_PERF_EXT, 0,
520 [Define value for nds32_perf_ext])
522 AC_DEFINE(NDS32_DEFAULT_PERF_EXT, 1,
523 [Define default value for nds32_perf_ext])
525 AC_MSG_RESULT($enable_perf_ext)
527 AC_MSG_CHECKING(for default configuration of --enable-perf-ext2)
528 if test "x${enable_perf_ext2}" = xno; then
529 AC_DEFINE(NDS32_DEFAULT_PERF_EXT2, 0,
530 [Define value for nds32_perf_ext2])
532 AC_DEFINE(NDS32_DEFAULT_PERF_EXT2, 1,
533 [Define default value for nds32_perf_ext2])
535 AC_MSG_RESULT($enable_perf_ext2)
537 AC_MSG_CHECKING(for default configuration of --enable-string-ext)
538 if test "x${enable_string_ext}" = xno; then
539 AC_DEFINE(NDS32_DEFAULT_STRING_EXT, 0,
540 [Define value for nds32_string_ext])
542 AC_DEFINE(NDS32_DEFAULT_STRING_EXT, 1,
543 [Define default value for nds32_string_ext])
545 AC_MSG_RESULT($enable_string_ext)
547 AC_MSG_CHECKING(for default configuration of --enable-audio-ext)
548 if test "x${enable_audio_ext}" = xno; then
549 AC_DEFINE(NDS32_DEFAULT_AUDIO_EXT, 0,
550 [Define value for nds32_audio_ext])
552 AC_DEFINE(NDS32_DEFAULT_AUDIO_EXT, 1,
553 [Define default value for nds32_audio_ext])
555 AC_MSG_RESULT($enable_audio_ext)
557 AC_MSG_CHECKING(for default configuration of --enable-dsp-ext)
558 if test "x${enable_dsp_ext}" = xno; then
559 AC_DEFINE(NDS32_DEFAULT_DSP_EXT, 0,
560 [Define value for nds32_dsp_ext])
562 AC_DEFINE(NDS32_DEFAULT_DSP_EXT, 1,
563 [Define default value for nds32_dsp_ext])
565 AC_MSG_RESULT($enable_dsp_ext)
567 AC_MSG_CHECKING(for default configuration of --enable-zol-ext)
568 if test "x${enable_zol_ext}" = xno; then
569 AC_DEFINE(NDS32_DEFAULT_ZOL_EXT, 0,
570 [Define value for nds32_zol_ext])
572 AC_DEFINE(NDS32_DEFAULT_ZOL_EXT, 1,
573 [Define default value for nds32_zol_ext])
575 AC_MSG_RESULT($enable_zol_ext)
578 aarch64 | i386 | s390 | sparc)
579 if test $this_target = $target ; then
580 AC_DEFINE_UNQUOTED(DEFAULT_ARCH, "${arch}", [Default architecture.])
585 # --target=riscv[32|64]-*-*. */
586 if test $this_target = $target ; then
587 AC_DEFINE_UNQUOTED(DEFAULT_ARCH, "${arch}", [Default architecture.])
590 # --with-arch=<value>. The syntax of <value> is same as Gas option -march.
591 AC_MSG_CHECKING(for default configuration of --with-arch)
592 if test "x${with_arch}" != x; then
593 AC_DEFINE_UNQUOTED(DEFAULT_RISCV_ARCH_WITH_EXT, "$with_arch",
594 [Define default value for RISC-V -march.])
596 AC_MSG_RESULT($with_arch)
598 # --with-isa-spec=[2.2|20190608|20191213].
599 AC_MSG_CHECKING(for default configuration of --with-isa-spec)
600 if test "x${with_isa_spec}" != x; then
601 AC_DEFINE_UNQUOTED(DEFAULT_RISCV_ISA_SPEC, "$with_isa_spec",
602 [Define default value for RISC-V -misa-spec.])
604 AC_MSG_RESULT($with_isa_spec)
606 # --with-priv-spec=[1.9|1.9.1|1.10|1.11].
607 AC_MSG_CHECKING(for default configuration of --with-priv-spec)
608 if test "x${with_priv_spec}" != x; then
609 AC_DEFINE_UNQUOTED(DEFAULT_RISCV_PRIV_SPEC, "$with_priv_spec",
610 [Define default value for RISC-V -mpriv-spec])
612 AC_MSG_RESULT($with_priv_spec)
616 f=config/rl78-parse.o
617 case " $extra_objects " in
619 *) extra_objects="$extra_objects $f" ;;
625 case " $extra_objects " in
627 *) extra_objects="$extra_objects $f" ;;
640 f=config/xtensa-relax.o
641 case " $extra_objects " in
643 *) extra_objects="$extra_objects $f" ;;
651 if test $using_cgen = yes ; then
653 case " $extra_objects " in
655 *) extra_objects="$extra_objects $f" ;;
659 # See if we really can support this configuration with the emulation code.
661 if test $this_target = $target ; then
669 case " $extra_objects " in
671 *) extra_objects="$extra_objects $f" ;;
675 # From target name and format, produce a list of supported emulations.
677 case ${generic_target}-${fmt} in
678 mips-*-*-*) case "$endian" in
679 big) emulation="mipsbelf mipslelf mipself" ;;
680 *) emulation="mipslelf mipsbelf mipself" ;;
682 # i386-pc-pe-coff != i386-pc-coff.
684 # Uncommenting the next line will turn on support for i386 AOUT
685 # for the default linux configuration
686 # i386-*-linux*-elf) emulation="i386elf i386aout" ;;
688 i386-*-aout) emulation="i386aout" ;;
689 i386-*-coff) emulation="i386coff" ;;
690 i386-*-elf) emulation="i386elf" ;;
692 # Always all formats. The first stated emulation becomes the default.
693 cris-*-*aout*) emulation="crisaout criself" ;;
694 cris-*-*) emulation="criself crisaout" ;;
697 emulations="$emulations $emulation"
701 if test ${ac_default_x86_relax_relocations} = unset; then
702 ac_default_x86_relax_relocations=1
704 AC_DEFINE_UNQUOTED(DEFAULT_GENERATE_X86_RELAX_RELOCATIONS,
705 $ac_default_x86_relax_relocations,
706 [Define to 1 if you want to generate x86 relax relocations by default.])
708 if test ${ac_default_elf_stt_common} = unset; then
709 ac_default_elf_stt_common=0
711 AC_DEFINE_UNQUOTED(DEFAULT_GENERATE_ELF_STT_COMMON,
712 $ac_default_elf_stt_common,
713 [Define to 1 if you want to generate ELF common symbols with the
714 STT_COMMON type by default.])
716 AC_DEFINE_UNQUOTED(DEFAULT_GENERATE_BUILD_NOTES,
717 $ac_default_generate_build_notes,
718 [Define to 1 if you want to generate GNU Build attribute notes
719 by default, if none are contained in the input.])
721 if test ${ac_default_generate_x86_used_note} = unset; then
722 ac_default_generate_x86_used_note=0
724 AC_DEFINE_UNQUOTED(DEFAULT_X86_USED_NOTE,
725 $ac_default_generate_x86_used_note,
726 [Define to 1 if you want to generate GNU x86 used ISA and feature
727 properties by default.])
729 if test ${ac_default_generate_riscv_attr} = unset; then
732 ac_default_generate_riscv_attr=1
735 ac_default_generate_riscv_attr=0
740 AC_DEFINE_UNQUOTED(DEFAULT_RISCV_ATTR,
741 $ac_default_generate_riscv_attr,
742 [Define to 1 if you want to generate RISC-V arch attribute by default.])
744 if test ${ac_default_mips_fix_loongson3_llsc} = unset; then
745 ac_default_mips_fix_loongson3_llsc=0
747 AC_DEFINE_UNQUOTED(DEFAULT_MIPS_FIX_LOONGSON3_LLSC,
748 $ac_default_mips_fix_loongson3_llsc,
749 [Define to 1 if you want to fix Loongson3 LLSC Errata by default.])
751 if test x$ac_default_compressed_debug_sections = xyes ; then
752 AC_DEFINE(DEFAULT_FLAG_COMPRESS_DEBUG, 1, [Define if you want compressed debug sections by default.])
755 # Turn on all targets if possible
756 if test ${all_targets} = "yes"; then
757 case ${target_cpu_type} in
759 case ${obj_format} in
761 emulations="$emulations i386coff i386elf"
764 emulations="$emulations i386aout i386elf"
767 emulations="$emulations i386aout i386coff"
772 case ${obj_format} in
774 emulations="$emulations i386coff i386elf"
777 emulations="$emulations i386aout i386elf"
780 emulations="$emulations i386aout i386coff"
787 # PE code has way too many macros tweaking behaviour
789 pe*) emulations="" ;;
792 # Assign floating point type. Most processors with FP support
793 # IEEE FP. On those that don't support FP at all, usually IEEE
795 case ${target_cpu} in
796 vax | pdp11 ) atof=vax ;;
800 case "${obj_format}" in
801 "") AC_MSG_ERROR(GAS does not know what format to use for target ${target}) ;;
804 # Unfortunately the cpu in cpu-opc.h file isn't always $(TARGET_CPU).
806 if test $using_cgen = yes ; then
807 case ${target_cpu} in
809 cgen_cpu_prefix=or1k ;;
810 *) cgen_cpu_prefix=${target_cpu} ;;
812 AC_SUBST(cgen_cpu_prefix)
813 AC_DEFINE(USING_CGEN, 1, [Using cgen code?])
817 dnl Make sure the desired support files exist.
820 if test ! -r ${srcdir}/config/tc-${target_cpu_type}.c; then
821 AC_MSG_ERROR(GAS does not support target CPU ${target_cpu_type})
824 if test ! -r ${srcdir}/config/obj-${obj_format}.c; then
825 AC_MSG_ERROR(GAS does not have support for object file format ${obj_format})
828 # Some COFF configurations want these random other flags set.
829 case ${obj_format} in
831 case ${target_cpu_type} in
832 i386) AC_DEFINE(I386COFF, 1, [Using i386 COFF?]) ;;
833 x86_64) AC_DEFINE(I386COFF, 1, [Using i386 COFF?]) ;;
838 # Getting this done right is going to be a bitch. Each configuration specified
839 # with --enable-targets=... should be checked for environment, format, cpu
842 # For each configuration, the necessary object file support code must be linked
843 # in. This might be only one, it might be up to four. The necessary emulation
844 # code needs to be provided, too.
846 # And then there's "--enable-targets=all"....
848 # For now, just always do it for MIPS ELF configurations. Sigh.
850 formats="${obj_format}"
854 for em in . $emulations ; do
857 mipsbelf | mipslelf | mipself)
858 fmt=elf file=mipself ;;
866 formats="$formats $fmt"
867 emfiles="$emfiles config/e-$file.o"
868 EMULATIONS="$EMULATIONS &$em,"
872 if test `set . $formats ; shift ; echo $#` -gt 1 ; then
873 for fmt in $formats ; do
875 aout) AC_DEFINE(OBJ_MAYBE_AOUT, 1, [a.out support?]) ;;
876 coff) AC_DEFINE(OBJ_MAYBE_COFF, 1, [COFF support?]) ;;
877 ecoff) AC_DEFINE(OBJ_MAYBE_ECOFF, 1, [ECOFF support?]) ;;
878 elf) AC_DEFINE(OBJ_MAYBE_ELF, 1, [ELF support?]) ;;
879 generic) AC_DEFINE(OBJ_MAYBE_GENERIC, 1, [generic support?]) ;;
880 som) AC_DEFINE(OBJ_MAYBE_SOM, 1, [SOM support?]) ;;
882 extra_objects="$extra_objects config/obj-$fmt.o"
886 if test `set . $emfiles ; shift ; echo $#` -gt 0 ; then
887 DEFAULT_EMULATION=`set . $emulations ; echo $2`
888 # e-mipself has more than one emulation per file, e-i386* has just one at the
889 # moment. If only one emulation is specified, then don't define
890 # USE_EMULATIONS or include any of the e-files as they will only be bloat.
891 case "${obj_format}${emfiles}" in
893 extra_objects="$extra_objects $emfiles"
894 AC_DEFINE(USE_EMULATIONS, 1, [Use emulation support?]) ;;
897 AC_SUBST(extra_objects)
898 AC_DEFINE_UNQUOTED(EMULATIONS, $EMULATIONS, [Supported emulations.])
899 AC_DEFINE_UNQUOTED(DEFAULT_EMULATION, "$DEFAULT_EMULATION",
900 [Default emulation.])
902 reject_dev_configs=yes
904 case ${reject_dev_configs}-${dev} in
906 AC_MSG_ERROR(GAS does not support the ${generic_target} configuration.)
910 AC_SUBST(target_cpu_type)
913 AC_SUBST(install_tooldir)
915 dnl AC_SUBST(emulation)
917 # do we need the opcodes library?
918 case "${need_opcodes}" in
920 OPCODES_LIB=../opcodes/libopcodes.la
924 AC_SUBST(OPCODES_LIB)
926 AC_DEFINE_UNQUOTED(TARGET_ALIAS, "${target_alias}", [Target alias.])
927 AC_DEFINE_UNQUOTED(TARGET_CANONICAL, "${target}", [Canonical target.])
928 AC_DEFINE_UNQUOTED(TARGET_CPU, "${target_cpu}", [Target CPU.])
929 AC_DEFINE_UNQUOTED(TARGET_VENDOR, "${target_vendor}", [Target vendor.])
930 AC_DEFINE_UNQUOTED(TARGET_OS, "${target_os}", [Target OS.])
935 ALL_LINGUAS="es fi fr id ja ru rw sv tr uk zh_CN"
936 ZW_GNU_GETTEXT_SISTER_DIR
940 AM_CONDITIONAL(GENINSRC_NEVER, false)
943 AC_CHECK_HEADERS(memory.h sys/stat.h sys/types.h unistd.h)
945 # Put this here so that autoconf's "cross-compiling" message doesn't confuse
946 # people who are not cross-compiling but are compiling cross-assemblers.
947 AC_MSG_CHECKING(whether compiling a cross-assembler)
948 if test "${host}" = "${target}"; then
952 AC_DEFINE(CROSS_COMPILE, 1, [Compiling cross-assembler?])
954 AC_MSG_RESULT($cross_gas)
956 AC_CHECK_FUNCS(strsignal)
960 # do we need the math library?
961 case "${need_libm}" in
968 # Some non-ANSI preprocessors botch requoting inside strings. That's bad
969 # enough, but on some of those systems, the assert macro relies on requoting
973 # On some systems, the system header files may not declare malloc, realloc,
974 # and free. There are places where gas needs these functions to have been
975 # declared -- such as when taking their addresses.
987 AC_MSG_CHECKING(for a known getopt prototype in unistd.h)
988 AC_CACHE_VAL(gas_cv_decl_getopt_unistd_h,
989 [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([#include <unistd.h>], [extern int getopt (int, char *const*, const char *);])],
990 gas_cv_decl_getopt_unistd_h=yes, gas_cv_decl_getopt_unistd_h=no)])
991 AC_MSG_RESULT($gas_cv_decl_getopt_unistd_h)
992 if test $gas_cv_decl_getopt_unistd_h = yes; then
993 AC_DEFINE([HAVE_DECL_GETOPT], 1,
994 [Is the prototype for getopt in <unistd.h> in the expected format?])
997 GAS_CHECK_DECL_NEEDED(environ, f, char **f, $gas_test_headers)
998 GAS_CHECK_DECL_NEEDED(ffs, f, int (*f)(int), $gas_test_headers)
1000 AC_CHECK_DECLS([asprintf, mempcpy, stpcpy])
1004 # Link in zlib if we can. This allows us to write compressed debug sections.
1007 # Support for VMS timestamps via cross compile
1009 if test "$ac_cv_header_time_h" = yes; then
1010 GAS_HAVE_TIME_TYPE_MEMBER(struct tm, tm_gmtoff)
1013 if test "$ac_cv_header_sys_stat_h" = yes; then
1014 GAS_HAVE_SYS_STAT_TYPE_MEMBER(struct stat, st_mtim, tv_sec)
1015 GAS_HAVE_SYS_STAT_TYPE_MEMBER(struct stat, st_mtim, tv_nsec)
1019 dnl Required for html, pdf, install-pdf and install-html targets.
1020 AC_SUBST(datarootdir)
1025 dnl This must come last.
1027 dnl We used to make symlinks to files in the source directory, but now
1028 dnl we just use the right name for .c files, and create .h files in
1029 dnl the build directory which include the right .h file. Make sure
1030 dnl the old symlinks don't exist, so that a reconfigure in an existing
1031 dnl directory behaves reasonably.
1033 AC_CONFIG_FILES(Makefile doc/Makefile po/Makefile.in:po/Make-in)
1034 AC_CONFIG_COMMANDS([default],
1035 [rm -f targ-cpu.c targ-cpu.h obj-format.h obj-format.c targ-env.h atof-targ.c itbl-cpu.h
1036 echo '#include "tc-'"${target_cpu_type}"'.h"' > targ-cpu.h
1037 echo '#include "obj-'"${obj_format}"'.h"' > obj-format.h
1038 echo '#include "te-'"${te_file}"'.h"' > targ-env.h
1039 echo '#include "itbl-'"${target_cpu_type}"'.h"' > itbl-cpu.h
1040 if test "x$cgen_cpu_prefix" != x ; then
1041 echo '#include "opcodes/'"${cgen_cpu_prefix}"'-desc.h"' > cgen-desc.h
1043 [target_cpu_type=${target_cpu_type}
1044 cgen_cpu_prefix=${cgen_cpu_prefix}
1045 obj_format=${obj_format}
1046 te_file=${te_file}])