Automatic date update in version.in
[binutils-gdb.git] / gas / configure.ac
blobfeb43399ce80542dfe72dbb8de011765cc5143b1
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   Copyright (C) 2012-2022 Free Software Foundation, Inc.
7 dnl
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.
12 dnl
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.
17 dnl
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/>.
21 dnl
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/../.
30 AC_CONFIG_AUX_DIR(..)
31 AC_CANONICAL_TARGET
33 AM_INIT_AUTOMAKE
34 AM_SILENT_RULES([yes])
36 AC_PROG_CC
37 AC_GNU_SOURCE
38 AC_USE_SYSTEM_EXTENSIONS
40 LT_INIT
41 ACX_LARGEFILE
42 ACX_PROG_CMP_IGNORE_INITIAL
44 AC_ARG_ENABLE(targets,
45 [  --enable-targets        alternative target configurations besides the primary],
46 [case "${enableval}" in
47   yes | "") AC_MSG_ERROR(enable-targets option must specify target names or 'all')
48             ;;
49   no)       enable_targets= ;;
50   *)        enable_targets=$enableval ;;
51 esac])dnl
53 ac_checking=
54 . ${srcdir}/../bfd/development.sh
55 test "$development" = true && ac_checking=yes
56 AC_ARG_ENABLE(checking,
57 [  --enable-checking       enable run-time checks],
58 [case "${enableval}" in
59   no|none)  ac_checking= ;;
60   *)        ac_checking=yes ;;
61 esac])dnl
62 if test x$ac_checking != x ; then
63   AC_DEFINE(ENABLE_CHECKING, 1, [Define if you want run-time sanity checks.])
66 # PR gas/19109
67 # Decide the default method for compressing debug sections.
68 ac_default_compressed_debug_sections=unset
69 # Provide a configure time option to override our default.
70 AC_ARG_ENABLE(compressed_debug_sections,
71               AS_HELP_STRING([--enable-compressed-debug-sections={all,gas,none}],
72               [compress debug sections by default]),
73 [case ,"${enableval}", in
74   ,yes, | ,all, | *,gas,*) ac_default_compressed_debug_sections=yes ;;
75   ,no, | ,none,)  ac_default_compressed_debug_sections=no ;;
76   *)   ac_default_compressed_debug_sections=unset ;;
77 esac])dnl
79 # Select default compression algorithm.
80 ac_default_compressed_debug_sections_algorithm=COMPRESS_DEBUG_GABI_ZLIB
81 AC_ARG_ENABLE(default_compressed_debug_sections_algorithm,
82               AS_HELP_STRING([--enable-default-compressed-debug-sections-algorithm={zlib,zstd}],
83               [Default compression algorithm for --enable-compressed-debug-sections.]),
84 [case "${enableval}" in
85    zstd) ac_default_compressed_debug_sections_algorithm=COMPRESS_DEBUG_ZSTD ;;
86 esac])dnl
88 # PR gas/19520
89 # Decide if x86 assembler should generate relax relocations.
90 ac_default_x86_relax_relocations=unset
91 # Provide a configure time option to override our default.
92 AC_ARG_ENABLE(x86_relax_relocations,
93               AS_HELP_STRING([--enable-x86-relax-relocations],
94               [generate x86 relax relocations by default]),
95 [case "${enableval}" in
96   no)  ac_default_x86_relax_relocations=0 ;;
97 esac])dnl
99 # Decide if ELF assembler should generate common symbols with the
100 # STT_COMMON type.
101 ac_default_elf_stt_common=unset
102 # Provide a configure time option to override our default.
103 AC_ARG_ENABLE(elf_stt_common,
104               AS_HELP_STRING([--enable-elf-stt-common],
105               [generate ELF common symbols with STT_COMMON type by default]),
106 [case "${enableval}" in
107   yes)  ac_default_elf_stt_common=1 ;;
108 esac])dnl
111 # Decide if the ELF assembler should default to generating
112 # GNU Build notes if none are provided by the input.
113 ac_default_generate_build_notes=0
114 # Provide a configuration option to override the default.
115 AC_ARG_ENABLE(generate_build_notes,
116               AS_HELP_STRING([--enable-generate-build-notes],
117               [generate GNU Build notes if none are provided by the input]),
118 [case "${enableval}" in
119   yes)  ac_default_generate_build_notes=1 ;;
120   no)   ac_default_generate_build_notes=0 ;;
121 esac])dnl
123 # Decide if the MIPS assembler should default to enable MIPS fix Loongson3
124 # LLSC errata.
125 ac_default_mips_fix_loongson3_llsc=unset
126 # Provide a configuration option to override the default.
127 AC_ARG_ENABLE(mips-fix-loongson3-llsc,
128              AS_HELP_STRING([--enable-mips-fix-loongson3-llsc],
129              [enable MIPS fix Loongson3 LLSC errata]),
130 [case "${enableval}" in
131   yes)  ac_default_mips_fix_loongson3_llsc=1 ;;
132   no)   ac_default_mips_fix_loongson3_llsc=0 ;;
133 esac])dnl
135 # Decide if the x86 ELF assembler should default to generating GNU x86
136 # used ISA and feature properties.
137 ac_default_generate_x86_used_note=unset
138 # Provide a configuration option to override the default.
139 AC_ARG_ENABLE(x86-used-note,
140               AS_HELP_STRING([--enable-x86-used-note],
141               [generate GNU x86 used ISA and feature properties]),
142 [case "${enableval}" in
143   yes)  ac_default_generate_x86_used_note=1 ;;
144   no)   ac_default_generate_x86_used_note=0 ;;
145 esac])dnl
147 # Decide if the RISC-V ELF assembler should default to generating attribute.
148 ac_default_generate_riscv_attr=unset
149 # Provide a configuration option to override the default.
150 AC_ARG_ENABLE(default-riscv-attribute,
151               AS_HELP_STRING([--enable-default-riscv-attribute],
152               [generate RISC-V arch attribute by default]),
153 [case "${enableval}" in
154   yes)  ac_default_generate_riscv_attr=1 ;;
155   no)   ac_default_generate_riscv_attr=0 ;;
156 esac])dnl
158 using_cgen=no
160 AM_BINUTILS_WARNINGS
162 # Generate a header file
163 AC_CONFIG_HEADERS(config.h:config.in)
165 dnl Option --with-cpu=TYPE allows configure type control of the default
166 dnl cpu type within the assembler.  Currently only the ARC target
167 dnl supports this feature, but others may be added in the future.
168 AC_ARG_WITH(cpu,
169             AS_HELP_STRING([--with-cpu=CPU],
170             [default cpu variant is CPU (currently only supported on ARC)]),
171             [AC_DEFINE_UNQUOTED(TARGET_WITH_CPU,
172                                 "${with_cpu}",
173                                 [Target specific CPU.])],
174             [])
176 # PR 14072
177 AH_VERBATIM([00_CONFIG_H_CHECK],
178 [/* Check that config.h is #included before system headers
179    (this works only for glibc, but that should be enough).  */
180 #if defined(__GLIBC__) && !defined(__FreeBSD_kernel__) && !defined(__CONFIG_H__)
181 #  error config.h must be #included before system headers
182 #endif
183 #define __CONFIG_H__ 1])
185 # If we are on a DOS filesystem, we must use gdb.ini rather than
186 # .gdbinit.
187 case "${host}" in
188   *-*-msdos* | *-*-go32* | *-*-mingw32* | *-*-windows*)
189     GDBINIT="gdb.ini"
190     AC_CONFIG_FILES(gdb.ini:gdbinit.in)
191     ;;
192   *)
193     GDBINIT=".gdbinit"
194     AC_CONFIG_FILES(.gdbinit:gdbinit.in)
195     ;;
196 esac
197 AC_SUBST(GDBINIT)
199 #We need this for the host.
200 AC_C_BIGENDIAN
202 te_file=generic
204 # Makefile target for installing gas in $(tooldir)/bin.
205 install_tooldir=install-exec-tooldir
207 canon_targets=""
208 all_targets=no
209 if test -n "$enable_targets" ; then
210   for t in `echo $enable_targets | sed 's/,/ /g'`; do
211     if test $t = "all"; then
212       all_targets=yes
213       continue
214     fi
215     result=`$ac_config_sub $t 2>/dev/null`
216     if test -n "$result" ; then
217       canon_targets="$canon_targets $result"
218 #    else
219 #      # Permit "all", etc.  We don't support it yet though.
220 #      canon_targets="$canon_targets $t"
221     fi
222   done
223   GAS_UNIQ(canon_targets)
226 emulations=""
228 for this_target in $target $canon_targets ; do
230     targ=${this_target}
231     . ${srcdir}/configure.tgt
233     case ${target_cpu} in
234       crisv32)
235         AC_DEFINE_UNQUOTED(DEFAULT_CRIS_ARCH, $arch,
236                            [Default CRIS architecture.])
237         ;;
238     esac
240     if test ${this_target} = $target ; then
241       target_cpu_type=${cpu_type}
242     elif test ${target_cpu_type} != ${cpu_type} ; then
243       continue
244     fi
246     generic_target=${cpu_type}-${target_vendor}-${target_os}
247     case ${generic_target} in
248       i386-*-msdosdjgpp* \
249       | i386-*-go32* \
250       | i386-go32-rtems*)
251         AC_DEFINE(STRICTCOFF, 1, [Using strict COFF?])
252         ;;
254       i386-*-linux-* | x86_64-*-linux-*)
255         if test ${this_target} = $target \
256            && test ${ac_default_generate_x86_used_note} = unset; then
257           ac_default_generate_x86_used_note=1
258         fi
259         ;;
261       i386-*-solaris2 \
262       | x86_64-*-solaris2 \
263       | i386-*-solaris2.[[0-9]] \
264       | i386-*-solaris2.1[[01]] \
265       | x86_64-*-solaris2.1[[01]])
266         if test ${this_target} = $target \
267            && test ${ac_default_x86_relax_relocations} = unset; then
268           ac_default_x86_relax_relocations=0
269         fi
270         ;;
272       microblaze*)
273         ;;
275 changequote(,)dnl
276       ppc-*-aix[5-9].*)
277 changequote([,])dnl
278         AC_DEFINE(AIX_WEAK_SUPPORT, 1,
279                   [Define if using AIX 5.2 value for C_WEAKEXT.])
280         ;;
281       ppc-*-solaris*)
282         if test ${this_target} = $target; then
283           AC_DEFINE(TARGET_SOLARIS_COMMENT, 1,
284                     [Define if default target is PowerPC Solaris.])
285         fi
286         if test x${endian} = xbig; then
287           AC_MSG_ERROR(Solaris must be configured little endian)
288         fi
289         ;;
290     esac
292     if test ${this_target} = $target ; then
293       endian_def=
294       if test x${endian} = xbig; then
295         endian_def=1
296       elif test x${endian} = xlittle; then
297         endian_def=0
298       fi
299       if test x${endian_def} != x; then
300         AC_DEFINE_UNQUOTED(TARGET_BYTES_BIG_ENDIAN, $endian_def,
301                            [Define as 1 if big endian.])
302       fi
303     fi
305 # Other random stuff.
307     case ${cpu_type} in
308       mips)
309         # Set mips_cpu to the name of the default CPU.
310         case ${target_cpu} in
311           mips | mipsbe | mipseb | mipsle | mipsel | mips64 | mips64el)
312             mips_cpu=from-abi
313             ;;
314           mipsisa32 | mipsisa32el)
315             mips_cpu=mips32
316             ;;
317           mipsisa32r2 | mipsisa32r2el)
318             mips_cpu=mips32r2
319             ;;
320           mipsisa32r3 | mipsisa32r3el)
321             mips_cpu=mips32r3
322             ;;
323           mipsisa32r5 | mipsisa32r5el)
324             mips_cpu=mips32r5
325             ;;
326           mipsisa32r6 | mipsisa32r6el)
327             mips_cpu=mips32r6
328             ;;
329           mipsisa64 | mipsisa64el)
330             mips_cpu=mips64
331             ;;
332           mipsisa64r2 | mipsisa64r2el)
333             mips_cpu=mips64r2
334             ;;
335           mipsisa64r3 | mipsisa64r3el)
336             mips_cpu=mips64r3
337             ;;
338           mipsisa64r5 | mipsisa64r5el)
339             mips_cpu=mips64r5
340             ;;
341           mipsisa64r6 | mipsisa64r6el)
342             mips_cpu=mips64r6
343             ;;
344           mipstx39 | mipstx39el)
345             mips_cpu=r3900
346             ;;
347           mips64vr | mips64vrel)
348             mips_cpu=vr4100
349             ;;
350           mipsisa32r2* | mipsisa64r2*)
351 changequote(,)dnl
352             mips_cpu=`echo $target_cpu | sed -e 's/[a-z]*..r2//' -e 's/el$//'`
353 changequote([,])dnl
354             ;;
355           mipsisa32r6* | mipsisa64r6*)
356 changequote(,)dnl
357             mips_cpu=`echo $target_cpu | sed -e 's/[a-z]*..r6//' -e 's/el$//'`
358 changequote([,])dnl
359             ;;
360           mips64* | mipsisa64* | mipsisa32*)
361 changequote(,)dnl
362             mips_cpu=`echo $target_cpu | sed -e 's/[a-z]*..//' -e 's/el$//'`
363 changequote([,])dnl
364             ;;
365           mips*)
366 changequote(,)dnl
367             mips_cpu=`echo $target_cpu | sed -e 's/^mips//' -e 's/el$//'`
368 changequote([,])dnl
369             ;;
370           *)
371             AC_MSG_ERROR($target_cpu isn't a supported MIPS CPU name)
372             ;;
373         esac
374         # See whether it's appropriate to set E_MIPS_ABI_O32 for o32
375         # binaries.  It's a GNU extension that some OSes don't understand.
376         case ${target} in
377           *-*-irix*)
378             use_e_mips_abi_o32=0
379             ;;
380           *)
381             use_e_mips_abi_o32=1
382             ;;
383         esac
384         # Decide whether to generate 32-bit or 64-bit code by default.
385         # Used to resolve -march=from-abi when an embedded ABI is selected.
386         case ${target} in
387           mips64*-*-* | mipsisa64*-*-*)
388             mips_default_64bit=1
389             ;;
390           *)
391             mips_default_64bit=0
392             ;;
393         esac
394         # Decide which ABI to target by default.
395         case ${target} in
396           mips64*-linux* | mips-sgi-irix6* | mips64*-freebsd* \
397           | mips64*-kfreebsd*-gnu | mips64*-ps2-elf*)
398             mips_default_abi=N32_ABI
399             ;;
400           mips*-linux* | mips*-freebsd* | mips*-kfreebsd*-gnu)
401             mips_default_abi=O32_ABI
402             ;;
403           mips64*-openbsd*)
404             mips_default_abi=N64_ABI
405             ;;
406           *)
407             mips_default_abi=NO_ABI
408             ;;
409         esac
410         AC_DEFINE_UNQUOTED(MIPS_CPU_STRING_DEFAULT, "$mips_cpu",
411                            [Default CPU for MIPS targets. ])
412         AC_DEFINE_UNQUOTED(USE_E_MIPS_ABI_O32, $use_e_mips_abi_o32,
413                            [Allow use of E_MIPS_ABI_O32 on MIPS targets. ])
414         AC_DEFINE_UNQUOTED(MIPS_DEFAULT_64BIT, $mips_default_64bit,
415                            [Generate 64-bit code by default on MIPS targets. ])
416         AC_DEFINE_UNQUOTED(MIPS_DEFAULT_ABI, $mips_default_abi,
417                            [Choose a default ABI for MIPS targets. ])
418         ;;
419     esac
421     # Do we need the opcodes library?
422     case ${cpu_type} in
423       vax | tic30)
424         ;;
426       *)
427         need_opcodes=yes
429         case "${enable_shared}" in
430         yes) shared_opcodes=true ;;
431         *opcodes*) shared_opcodes=true ;;
432         *) shared_opcodes=false ;;
433         esac
434         ;;
435     esac
437     # Any other special object files needed ?
438     case ${cpu_type} in
440       bfin)
441         for f in config/bfin-parse.o config/bfin-lex-wrapper.o; do
442           case " $extra_objects " in
443             *" $f "*) ;;
444             *) extra_objects="$extra_objects $f" ;;
445           esac
446         done
447         ;;
449       bpf)
450         if test $this_target = $target ; then
451           AC_DEFINE_UNQUOTED(DEFAULT_ARCH, "${arch}", [Default architecture.])
452         fi
453         using_cgen=yes
454         ;;
455       epiphany | fr30 | ip2k | iq2000 | lm32 | m32r | or1k)
456         using_cgen=yes
457         ;;
459       loongarch)
460         for f in config/loongarch-parse.o config/loongarch-lex-wrapper.o; do
461           case " $extra_objects " in
462             *" $f "*) ;;
463             *) extra_objects="$extra_objects $f" ;;
464           esac
465         done
466         # --target=loongarch[32|64]-*-*.  */
467         if test $this_target = $target ; then
468           AC_DEFINE_UNQUOTED(DEFAULT_ARCH, "${arch}", [Default architecture.])
469         fi
470         ;;
472       m32c)
473         using_cgen=yes
474         ;;
475       frv)
476         using_cgen=yes
477         ;;
478       m68k)
479         f=config/m68k-parse.o
480         case " $extra_objects " in
481           *" $f "*) ;;
482           *) extra_objects="$extra_objects $f" ;;
483         esac
484         ;;
486       mep)
487         using_cgen=yes
488         ;;
490       mips)
491         for f in itbl-parse.o itbl-lex-wrapper.o itbl-ops.o; do
492           case " $extra_objects " in
493             *" $f "*) ;;
494             *) extra_objects="$extra_objects $f" ;;
495           esac
496         done
497         ;;
499       mt)
500         using_cgen=yes
501         ;;
503       nds32)
504         # setup NDS32_LINUX_TOOLCHAIN definition
505         if test "linux" = $em; then
506           AC_DEFINE(NDS32_LINUX_TOOLCHAIN, 1,
507             [Define value for nds32_linux_toolchain])
508         else
509           AC_DEFINE(NDS32_LINUX_TOOLCHAIN, 0,
510             [Define default value for nds32_linux_toolchain])
511         fi
513         # Decide BASELINE, REDUCED_REGS, FPU_DP_EXT, FPU_SP_EXT features
514         # based on arch_name.
515         AC_MSG_CHECKING(for default configuration of --with-arch)
516         if test "x${with_arch}" != x; then
517           case ${with_arch} in
518             v2j | v2s | v2f | v2 | v3m | v3j | v3s | v3f | v3 )
519               AC_DEFINE_UNQUOTED(NDS32_DEFAULT_ARCH_NAME, "$with_arch",
520                                  [Define value for nds32_arch_name])
521               ;;
522             *)
523               AC_MSG_ERROR(This kind of arch name does *NOT* exist!)
524               ;;
525           esac
526         fi
527         AC_MSG_RESULT($with_arch)
529         # Decide features one by one.
530         AC_MSG_CHECKING(for default configuration of --enable-dx-regs)
531         if test "x${enable_dx_regs}" = xyes; then
532           AC_DEFINE(NDS32_DEFAULT_DX_REGS, 1,
533                     [Define value for nds32_dx_regs])
534         else
535           AC_DEFINE(NDS32_DEFAULT_DX_REGS, 0,
536                     [Define default value for nds32_dx_regs])
537         fi
538         AC_MSG_RESULT($enable_dx_regs)
540         AC_MSG_CHECKING(for default configuration of --enable-perf-ext)
541         if test "x${enable_perf_ext}" = xno; then
542           AC_DEFINE(NDS32_DEFAULT_PERF_EXT, 0,
543                     [Define value for nds32_perf_ext])
544         else
545           AC_DEFINE(NDS32_DEFAULT_PERF_EXT, 1,
546                     [Define default value for nds32_perf_ext])
547         fi
548         AC_MSG_RESULT($enable_perf_ext)
550         AC_MSG_CHECKING(for default configuration of --enable-perf-ext2)
551         if test "x${enable_perf_ext2}" = xno; then
552           AC_DEFINE(NDS32_DEFAULT_PERF_EXT2, 0,
553                     [Define value for nds32_perf_ext2])
554         else
555           AC_DEFINE(NDS32_DEFAULT_PERF_EXT2, 1,
556                     [Define default value for nds32_perf_ext2])
557         fi
558         AC_MSG_RESULT($enable_perf_ext2)
560         AC_MSG_CHECKING(for default configuration of --enable-string-ext)
561         if test "x${enable_string_ext}" = xno; then
562           AC_DEFINE(NDS32_DEFAULT_STRING_EXT, 0,
563                     [Define value for nds32_string_ext])
564         else
565           AC_DEFINE(NDS32_DEFAULT_STRING_EXT, 1,
566                     [Define default value for nds32_string_ext])
567         fi
568         AC_MSG_RESULT($enable_string_ext)
570         AC_MSG_CHECKING(for default configuration of --enable-audio-ext)
571         if test "x${enable_audio_ext}" = xno; then
572           AC_DEFINE(NDS32_DEFAULT_AUDIO_EXT, 0,
573                     [Define value for nds32_audio_ext])
574         else
575           AC_DEFINE(NDS32_DEFAULT_AUDIO_EXT, 1,
576                     [Define default value for nds32_audio_ext])
577         fi
578         AC_MSG_RESULT($enable_audio_ext)
580         AC_MSG_CHECKING(for default configuration of --enable-dsp-ext)
581         if test "x${enable_dsp_ext}" = xno; then
582           AC_DEFINE(NDS32_DEFAULT_DSP_EXT, 0,
583                     [Define value for nds32_dsp_ext])
584         else
585           AC_DEFINE(NDS32_DEFAULT_DSP_EXT, 1,
586                     [Define default value for nds32_dsp_ext])
587         fi
588         AC_MSG_RESULT($enable_dsp_ext)
590         AC_MSG_CHECKING(for default configuration of --enable-zol-ext)
591         if test "x${enable_zol_ext}" = xno; then
592           AC_DEFINE(NDS32_DEFAULT_ZOL_EXT, 0,
593                     [Define value for nds32_zol_ext])
594         else
595           AC_DEFINE(NDS32_DEFAULT_ZOL_EXT, 1,
596                     [Define default value for nds32_zol_ext])
597         fi
598         AC_MSG_RESULT($enable_zol_ext)
599         ;;
601       aarch64 | i386 | s390 | sparc)
602         if test $this_target = $target ; then
603           AC_DEFINE_UNQUOTED(DEFAULT_ARCH, "${arch}", [Default architecture.])
604         fi
605         ;;
607       riscv)
608         # --target=riscv[32|64]-*-*.  */
609         if test $this_target = $target ; then
610           AC_DEFINE_UNQUOTED(DEFAULT_ARCH, "${arch}", [Default architecture.])
611         fi
613         # --with-arch=<value>.  The syntax of <value> is same as Gas option -march.
614         AC_MSG_CHECKING(for default configuration of --with-arch)
615         if test "x${with_arch}" != x; then
616         AC_DEFINE_UNQUOTED(DEFAULT_RISCV_ARCH_WITH_EXT, "$with_arch",
617                            [Define default value for RISC-V -march.])
618         fi
619         AC_MSG_RESULT($with_arch)
621         # --with-isa-spec=[2.2|20190608|20191213].
622         AC_MSG_CHECKING(for default configuration of --with-isa-spec)
623         if test "x${with_isa_spec}" != x; then
624           AC_DEFINE_UNQUOTED(DEFAULT_RISCV_ISA_SPEC, "$with_isa_spec",
625                              [Define default value for RISC-V -misa-spec.])
626         fi
627         AC_MSG_RESULT($with_isa_spec)
629         # --with-priv-spec=[1.9.1|1.10|1.11|1.12].
630         AC_MSG_CHECKING(for default configuration of --with-priv-spec)
631         if test "x${with_priv_spec}" != x; then
632           AC_DEFINE_UNQUOTED(DEFAULT_RISCV_PRIV_SPEC, "$with_priv_spec",
633                              [Define default value for RISC-V -mpriv-spec])
634         fi
635         AC_MSG_RESULT($with_priv_spec)
636         ;;
638       rl78)
639         f=config/rl78-parse.o
640         case " $extra_objects " in
641           *" $f "*) ;;
642           *) extra_objects="$extra_objects $f" ;;
643         esac
644         ;;
646       rx)
647         f=config/rx-parse.o
648         case " $extra_objects " in
649           *" $f "*) ;;
650           *) extra_objects="$extra_objects $f" ;;
651         esac
652         ;;
654       xstormy16)
655         using_cgen=yes
656         ;;
658       xtensa)
659         f=config/xtensa-relax.o
660         case " $extra_objects " in
661           *" $f "*) ;;
662           *) extra_objects="$extra_objects $f" ;;
663         esac
664         ;;
666       *)
667         ;;
668     esac
670     if test $using_cgen = yes ; then
671         f=cgen.o
672         case " $extra_objects " in
673           *" $f "*) ;;
674           *) extra_objects="$extra_objects $f" ;;
675         esac
676     fi
678 # See if we really can support this configuration with the emulation code.
680     if test $this_target = $target ; then
681       obj_format=$fmt
682       te_file=$em
683     fi
685     case ${te_file} in
686       vms)
687         f=config/te-vms.o
688         case " $extra_objects " in
689           *" $f "*) ;;
690           *) extra_objects="$extra_objects $f" ;;
691         esac ;;
692     esac
694 # From target name and format, produce a list of supported emulations.
696     case ${generic_target}-${fmt} in
697       mips-*-*-*)       case "$endian" in
698                         big)    emulation="mipsbelf mipslelf mipself" ;;
699                         *)      emulation="mipslelf mipsbelf mipself" ;;
700                         esac ;;
701       # i386-pc-pe-coff != i386-pc-coff.
702       i386-*-pe-coff)   ;;
703       # Uncommenting the next line will turn on support for i386 AOUT
704       # for the default linux configuration
705       # i386-*-linux*-elf) emulation="i386elf i386aout" ;;
706       #
707       i386-*-aout)      emulation="i386aout" ;;
708       i386-*-coff)      emulation="i386coff" ;;
709       i386-*-elf)       emulation="i386elf" ;;
711       # Always all formats.  The first stated emulation becomes the default.
712       cris-*-*aout*)    emulation="crisaout criself" ;;
713       cris-*-*)         emulation="criself crisaout" ;;
714     esac
716     emulations="$emulations $emulation"
718 done
720 if test ${ac_default_x86_relax_relocations} = unset; then
721   ac_default_x86_relax_relocations=1
723 AC_DEFINE_UNQUOTED(DEFAULT_GENERATE_X86_RELAX_RELOCATIONS,
724   $ac_default_x86_relax_relocations,
725   [Define to 1 if you want to generate x86 relax relocations by default.])
727 if test ${ac_default_elf_stt_common} = unset; then
728   ac_default_elf_stt_common=0
730 AC_DEFINE_UNQUOTED(DEFAULT_GENERATE_ELF_STT_COMMON,
731   $ac_default_elf_stt_common,
732   [Define to 1 if you want to generate ELF common symbols with the
733    STT_COMMON type by default.])
735 AC_DEFINE_UNQUOTED(DEFAULT_GENERATE_BUILD_NOTES,
736   $ac_default_generate_build_notes,
737   [Define to 1 if you want to generate GNU Build attribute notes
738    by default, if none are contained in the input.])
740 if test ${ac_default_generate_x86_used_note} = unset; then
741   ac_default_generate_x86_used_note=0
743 AC_DEFINE_UNQUOTED(DEFAULT_X86_USED_NOTE,
744   $ac_default_generate_x86_used_note,
745   [Define to 1 if you want to generate GNU x86 used ISA and feature
746    properties by default.])
748 if test ${ac_default_generate_riscv_attr} = unset; then
749   ac_default_generate_riscv_attr=1
752 AC_DEFINE_UNQUOTED(DEFAULT_RISCV_ATTR,
753   $ac_default_generate_riscv_attr,
754   [Define to 1 if you want to generate RISC-V arch attribute by default.])
756 if test ${ac_default_mips_fix_loongson3_llsc} = unset; then
757   ac_default_mips_fix_loongson3_llsc=0
759 AC_DEFINE_UNQUOTED(DEFAULT_MIPS_FIX_LOONGSON3_LLSC,
760   $ac_default_mips_fix_loongson3_llsc,
761   [Define to 1 if you want to fix Loongson3 LLSC Errata by default.])
763 if test x$ac_default_compressed_debug_sections = xyes ; then
764   AC_DEFINE(DEFAULT_FLAG_COMPRESS_DEBUG, 1, [Define if you want compressed debug sections by default.])
767 AC_DEFINE_UNQUOTED(DEFAULT_COMPRESSED_DEBUG_ALGORITHM, $ac_default_compressed_debug_sections_algorithm,
768                    [Default compression algorithm for --enable-compressed-debug-sections.])
770 # Turn on all targets if possible
771 if test ${all_targets} = "yes"; then
772   case ${target_cpu_type} in
773   i386)
774     case ${obj_format} in
775     aout)
776       emulations="$emulations i386coff i386elf"
777       ;;
778     coff)
779       emulations="$emulations i386aout i386elf"
780     ;;
781     elf)
782       emulations="$emulations i386aout i386coff"
783       ;;
784     esac
785   ;;
786   x86_64)
787     case ${obj_format} in
788     aout)
789       emulations="$emulations i386coff i386elf"
790       ;;
791     coff)
792       emulations="$emulations i386aout i386elf"
793     ;;
794     elf)
795       emulations="$emulations i386aout i386coff"
796       ;;
797     esac
798   ;;
799   esac
802 # PE code has way too many macros tweaking behaviour
803 case ${te_file} in
804   pe*) emulations="" ;;
805 esac
807 # Assign floating point type.  Most processors with FP support
808 # IEEE FP.  On those that don't support FP at all, usually IEEE
809 # is emulated.
810 case ${target_cpu} in
811   vax | pdp11 ) atof=vax ;;
812   *)            atof=ieee ;;
813 esac
815 case "${obj_format}" in
816   "") AC_MSG_ERROR(GAS does not know what format to use for target ${target}) ;;
817 esac
819 # Unfortunately the cpu in cpu-opc.h file isn't always $(TARGET_CPU).
820 cgen_cpu_prefix=""
821 if test $using_cgen = yes ; then
822   case ${target_cpu} in
823     or1knd)
824        cgen_cpu_prefix=or1k ;;
825     *) cgen_cpu_prefix=${target_cpu} ;;
826   esac
827   AC_SUBST(cgen_cpu_prefix)
828   AC_DEFINE(USING_CGEN, 1, [Using cgen code?])
832 dnl Make sure the desired support files exist.
835 if test ! -r ${srcdir}/config/tc-${target_cpu_type}.c; then
836   AC_MSG_ERROR(GAS does not support target CPU ${target_cpu_type})
839 if test ! -r ${srcdir}/config/obj-${obj_format}.c; then
840   AC_MSG_ERROR(GAS does not have support for object file format ${obj_format})
843 # Some COFF configurations want these random other flags set.
844 case ${obj_format} in
845   coff)
846     case ${target_cpu_type} in
847       i386) AC_DEFINE(I386COFF, 1, [Using i386 COFF?]) ;;
848       x86_64) AC_DEFINE(I386COFF, 1, [Using i386 COFF?]) ;;
849     esac
850     ;;
851 esac
853 # Getting this done right is going to be a bitch.  Each configuration specified
854 # with --enable-targets=... should be checked for environment, format, cpu
855 # setting.
857 # For each configuration, the necessary object file support code must be linked
858 # in.  This might be only one, it might be up to four.  The necessary emulation
859 # code needs to be provided, too.
861 # And then there's "--enable-targets=all"....
863 # For now, just always do it for MIPS ELF configurations.  Sigh.
865 formats="${obj_format}"
866 emfiles=""
867 EMULATIONS=""
868 GAS_UNIQ(emulations)
869 for em in . $emulations ; do
870   case $em in
871     .)  continue ;;
872     mipsbelf | mipslelf | mipself)
873         fmt=elf   file=mipself ;;
874     *coff)
875         fmt=coff  file=$em ;;
876     *aout)
877         fmt=aout file=$em ;;
878     *elf)
879         fmt=elf file=$em ;;
880   esac
881   formats="$formats $fmt"
882   emfiles="$emfiles config/e-$file.o"
883   EMULATIONS="$EMULATIONS &$em,"
884 done
885 GAS_UNIQ(formats)
886 GAS_UNIQ(emfiles)
887 if test `set . $formats ; shift ; echo $#` -gt 1 ; then
888   for fmt in $formats ; do
889     case $fmt in
890       aout)     AC_DEFINE(OBJ_MAYBE_AOUT, 1,    [a.out support?])   ;;
891       coff)     AC_DEFINE(OBJ_MAYBE_COFF, 1,    [COFF support?])    ;;
892       ecoff)    AC_DEFINE(OBJ_MAYBE_ECOFF, 1,   [ECOFF support?])   ;;
893       elf)      AC_DEFINE(OBJ_MAYBE_ELF, 1,     [ELF support?])     ;;
894       generic)  AC_DEFINE(OBJ_MAYBE_GENERIC, 1, [generic support?]) ;;
895       som)      AC_DEFINE(OBJ_MAYBE_SOM, 1,     [SOM support?])     ;;
896     esac
897     extra_objects="$extra_objects config/obj-$fmt.o"
898   done
899   obj_format=multi
901 if test `set . $emfiles ; shift ; echo $#` -gt 0 ; then
902   DEFAULT_EMULATION=`set . $emulations ; echo $2`
903   # e-mipself has more than one emulation per file, e-i386* has just one at the
904   # moment.  If only one emulation is specified, then don't define
905   # USE_EMULATIONS or include any of the e-files as they will only be bloat.
906   case "${obj_format}${emfiles}" in
907     multi* | *mipself*)
908       extra_objects="$extra_objects $emfiles"
909       AC_DEFINE(USE_EMULATIONS, 1, [Use emulation support?]) ;;
910   esac
912 AC_SUBST(extra_objects)
913 AC_DEFINE_UNQUOTED(EMULATIONS, $EMULATIONS, [Supported emulations.])
914 AC_DEFINE_UNQUOTED(DEFAULT_EMULATION, "$DEFAULT_EMULATION",
915                    [Default emulation.])
917 reject_dev_configs=yes
919 case ${reject_dev_configs}-${dev} in
920   yes-yes) # Oops.
921     AC_MSG_ERROR(GAS does not support the ${generic_target} configuration.)
922     ;;
923 esac
925 AC_SUBST(target_cpu_type)
926 AC_SUBST(obj_format)
927 AC_SUBST(te_file)
928 AC_SUBST(install_tooldir)
929 AC_SUBST(atof)
930 dnl AC_SUBST(emulation)
932 # do we need the opcodes library?
933 case "${need_opcodes}" in
934 yes)
935   OPCODES_LIB=../opcodes/libopcodes.la
936   ;;
937 esac
939 AC_SUBST(OPCODES_LIB)
941 AC_DEFINE_UNQUOTED(TARGET_ALIAS,        "${target_alias}", [Target alias.])
942 AC_DEFINE_UNQUOTED(TARGET_CANONICAL,    "${target}",       [Canonical target.])
943 AC_DEFINE_UNQUOTED(TARGET_CPU,          "${target_cpu}",   [Target CPU.])
944 AC_DEFINE_UNQUOTED(TARGET_VENDOR,       "${target_vendor}", [Target vendor.])
945 AC_DEFINE_UNQUOTED(TARGET_OS,           "${target_os}",    [Target OS.])
947 AC_PROG_YACC
948 AM_PROG_LEX
950 ALL_LINGUAS="es fi fr id ja ru rw sv tr uk zh_CN"
951 ZW_GNU_GETTEXT_SISTER_DIR
952 AM_PO_SUBDIRS
954 AM_MAINTAINER_MODE
955 AM_CONDITIONAL(GENINSRC_NEVER, false)
956 AC_EXEEXT
958 AC_CHECK_HEADERS(memory.h sys/stat.h sys/types.h unistd.h)
960 # Put this here so that autoconf's "cross-compiling" message doesn't confuse
961 # people who are not cross-compiling but are compiling cross-assemblers.
962 AC_MSG_CHECKING(whether compiling a cross-assembler)
963 if test "${host}" = "${target}"; then
964   cross_gas=no
965 else
966   cross_gas=yes
967   AC_DEFINE(CROSS_COMPILE, 1, [Compiling cross-assembler?])
969 AC_MSG_RESULT($cross_gas)
971 AC_CHECK_FUNCS(strsignal)
973 AM_LC_MESSAGES
975 # do we need the math library?
976 case "${need_libm}" in
977 yes)
978   LT_LIB_M
979   AC_SUBST(LIBM)
980   ;;
981 esac
983 # Some non-ANSI preprocessors botch requoting inside strings.  That's bad
984 # enough, but on some of those systems, the assert macro relies on requoting
985 # working properly!
986 GAS_WORKING_ASSERT
988 # On some systems, the system header files may not declare malloc, realloc,
989 # and free.  There are places where gas needs these functions to have been
990 # declared -- such as when taking their addresses.
991 gas_test_headers="
992 #ifdef HAVE_MEMORY_H
993 #include <memory.h>
994 #endif
995 #include <string.h>
996 #include <stdlib.h>
997 #ifdef HAVE_UNISTD_H
998 #include <unistd.h>
999 #endif
1002 AC_MSG_CHECKING(for a known getopt prototype in unistd.h)
1003 AC_CACHE_VAL(gas_cv_decl_getopt_unistd_h,
1004 [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([#include <unistd.h>], [extern int getopt (int, char *const*, const char *);])],
1005 gas_cv_decl_getopt_unistd_h=yes, gas_cv_decl_getopt_unistd_h=no)])
1006 AC_MSG_RESULT($gas_cv_decl_getopt_unistd_h)
1007 if test $gas_cv_decl_getopt_unistd_h = yes; then
1008   AC_DEFINE([HAVE_DECL_GETOPT], 1,
1009             [Is the prototype for getopt in <unistd.h> in the expected format?])
1012 GAS_CHECK_DECL_NEEDED(environ, f, char **f, $gas_test_headers)
1013 GAS_CHECK_DECL_NEEDED(ffs, f, int (*f)(int), $gas_test_headers)
1015 AC_CHECK_DECLS([asprintf, mempcpy, stpcpy])
1017 BFD_BINARY_FOPEN
1019 # Link in zlib/zstd if we can.  This allows us to write compressed debug sections.
1020 AM_ZLIB
1021 AC_ZSTD
1023 # Support for VMS timestamps via cross compile
1025 if test "$ac_cv_header_time_h" = yes; then
1026   GAS_HAVE_TIME_TYPE_MEMBER(struct tm, tm_gmtoff)
1029 if test "$ac_cv_header_sys_stat_h" = yes; then
1030     GAS_HAVE_SYS_STAT_TYPE_MEMBER(struct stat, st_mtim, tv_sec)
1031     GAS_HAVE_SYS_STAT_TYPE_MEMBER(struct stat, st_mtim, tv_nsec)
1035 dnl Required for html, pdf, install-pdf and install-html targets.
1036 AC_SUBST(datarootdir)
1037 AC_SUBST(docdir)
1038 AC_SUBST(htmldir)
1039 AC_SUBST(pdfdir)
1041 dnl This must come last.
1043 dnl We used to make symlinks to files in the source directory, but now
1044 dnl we just use the right name for .c files, and create .h files in
1045 dnl the build directory which include the right .h file.  Make sure
1046 dnl the old symlinks don't exist, so that a reconfigure in an existing
1047 dnl directory behaves reasonably.
1049 AC_CONFIG_FILES(Makefile po/Makefile.in:po/Make-in)
1050 AC_CONFIG_COMMANDS([default],
1051 [rm -f targ-cpu.c targ-cpu.h obj-format.h obj-format.c targ-env.h atof-targ.c itbl-cpu.h
1052  echo '#include "tc-'"${target_cpu_type}"'.h"' > targ-cpu.h
1053  echo '#include "obj-'"${obj_format}"'.h"' > obj-format.h
1054  echo '#include "te-'"${te_file}"'.h"' > targ-env.h
1055  echo '#include "itbl-'"${target_cpu_type}"'.h"' > itbl-cpu.h
1056  if test "x$cgen_cpu_prefix" != x ; then
1057    echo '#include "opcodes/'"${cgen_cpu_prefix}"'-desc.h"' > cgen-desc.h
1058  fi],
1059 [target_cpu_type=${target_cpu_type}
1060  cgen_cpu_prefix=${cgen_cpu_prefix}
1061  obj_format=${obj_format}
1062  te_file=${te_file}])
1064 AC_OUTPUT
1066 GNU_MAKE_JOBSERVER