Update copyright year in gdbarch.sh doc/gdb.texinfo and doc/refcard.tex
[binutils-gdb.git] / gas / configure.ac
blob34e114aa089e1fac0e5fec40279a69226e7a9133
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-2019 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
32 AC_ISC_POSIX
34 AM_INIT_AUTOMAKE
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 # PR gas/19520
80 # Decide if x86 assembler should generate relax relocations.
81 ac_default_x86_relax_relocations=unset
82 # Provide a configure time option to override our default.
83 AC_ARG_ENABLE(x86_relax_relocations,
84               AS_HELP_STRING([--enable-x86-relax-relocations],
85               [generate x86 relax relocations by default]),
86 [case "${enableval}" in
87   no)  ac_default_x86_relax_relocations=0 ;;
88 esac])dnl
90 # Decide if ELF assembler should generate common symbols with the
91 # STT_COMMON type.
92 ac_default_elf_stt_common=unset
93 # Provide a configure time option to override our default.
94 AC_ARG_ENABLE(elf_stt_common,
95               AS_HELP_STRING([--enable-elf-stt-common],
96               [generate ELF common symbols with STT_COMMON type by default]),
97 [case "${enableval}" in
98   yes)  ac_default_elf_stt_common=1 ;;
99 esac])dnl
102 # Decide if the ELF assembler should default to generating
103 # GNU Build notes if none are provided by the input.
104 ac_default_generate_build_notes=0
105 # Provide a configuration option to override the default.
106 AC_ARG_ENABLE(generate_build_notes,
107               AS_HELP_STRING([--enable-generate-build-notes],
108               [generate GNU Build notes if none are provided by the input]),
109 [case "${enableval}" in
110   yes)  ac_default_generate_build_notes=1 ;;
111   no)   ac_default_generate_build_notes=0 ;;
112 esac])dnl
114 # Decide if the MIPS assembler should default to enable MIPS fix Loongson3
115 # LLSC errata.
116 ac_default_mips_fix_loongson3_llsc=unset
117 # Provide a configuration option to override the default.
118 AC_ARG_ENABLE(mips-fix-loongson3-llsc,
119              AS_HELP_STRING([--enable-mips-fix-loongson3-llsc],
120              [enable MIPS fix Loongson3 LLSC errata]),
121 [case "${enableval}" in
122   yes)  ac_default_mips_fix_loongson3_llsc=1 ;;
123   no)   ac_default_mips_fix_loongson3_llsc=0 ;;
124 esac])dnl
126 # Decide if the x86 ELF assembler should default to generating GNU x86
127 # used ISA and feature properties.
128 ac_default_generate_x86_used_note=unset
129 # Provide a configuration option to override the default.
130 AC_ARG_ENABLE(x86-used-note,
131               AS_HELP_STRING([--enable-x86-used-note],
132               [generate GNU x86 used ISA and feature properties]),
133 [case "${enableval}" in
134   yes)  ac_default_generate_x86_used_note=1 ;;
135   no)   ac_default_generate_x86_used_note=0 ;;
136 esac])dnl
138 # Decide if the RISC-V ELF assembler should default to generating attribute.
139 ac_default_generate_riscv_attr=unset
140 # Provide a configuration option to override the default.
141 AC_ARG_ENABLE(default-riscv-attribute,
142               AS_HELP_STRING([--enable-default-riscv-attribute],
143               [generate RISC-V arch attribute by default]),
144 [case "${enableval}" in
145   yes)  ac_default_generate_riscv_attr=1 ;;
146   no)   ac_default_generate_riscv_attr=0 ;;
147 esac])dnl
149 using_cgen=no
151 AM_BINUTILS_WARNINGS
153 # Generate a header file
154 AC_CONFIG_HEADERS(config.h:config.in)
156 dnl Option --with-cpu=TYPE allows configure type control of the default
157 dnl cpu type within the assembler.  Currently only the ARC target
158 dnl supports this feature, but others may be added in the future.
159 AC_ARG_WITH(cpu,
160             AS_HELP_STRING([--with-cpu=CPU],
161             [default cpu variant is CPU (currently only supported on ARC)]),
162             [AC_DEFINE_UNQUOTED(TARGET_WITH_CPU,
163                                 "${with_cpu}",
164                                 [Target specific CPU.])],
165             [])
167 # PR 14072
168 AH_VERBATIM([00_CONFIG_H_CHECK],
169 [/* Check that config.h is #included before system headers
170    (this works only for glibc, but that should be enough).  */
171 #if defined(__GLIBC__) && !defined(__FreeBSD_kernel__) && !defined(__CONFIG_H__)
172 #  error config.h must be #included before system headers
173 #endif
174 #define __CONFIG_H__ 1])
176 # If we are on a DOS filesystem, we must use gdb.ini rather than
177 # .gdbinit.
178 case "${host}" in
179   *-*-msdos* | *-*-go32* | *-*-mingw32* | *-*-windows*)
180     GDBINIT="gdb.ini"
181     AC_CONFIG_FILES(gdb.ini:gdbinit.in)
182     ;;
183   *)
184     GDBINIT=".gdbinit"
185     AC_CONFIG_FILES(.gdbinit:gdbinit.in)
186     ;;
187 esac
188 AC_SUBST(GDBINIT)
190 #We need this for the host.
191 AC_C_BIGENDIAN
193 te_file=generic
195 # Makefile target for installing gas in $(tooldir)/bin.
196 install_tooldir=install-exec-tooldir
198 canon_targets=""
199 all_targets=no
200 if test -n "$enable_targets" ; then
201   for t in `echo $enable_targets | sed 's/,/ /g'`; do
202     if test $t = "all"; then
203       all_targets=yes
204       continue
205     fi
206     result=`$ac_config_sub $t 2>/dev/null`
207     if test -n "$result" ; then
208       canon_targets="$canon_targets $result"
209 #    else
210 #      # Permit "all", etc.  We don't support it yet though.
211 #      canon_targets="$canon_targets $t"
212     fi
213   done
214   GAS_UNIQ(canon_targets)
217 emulations=""
219 for this_target in $target $canon_targets ; do
221     targ=${this_target}
222     . ${srcdir}/configure.tgt
224     case ${target_cpu} in
225       crisv32)
226         AC_DEFINE_UNQUOTED(DEFAULT_CRIS_ARCH, $arch,
227                            [Default CRIS architecture.])
228         ;;
229     esac
231     if test ${this_target} = $target ; then
232       target_cpu_type=${cpu_type}
233     elif test ${target_cpu_type} != ${cpu_type} ; then
234       continue
235     fi
237     generic_target=${cpu_type}-${target_vendor}-${target_os}
238     case ${generic_target} in
239       i386-*-msdosdjgpp* \
240       | i386-*-go32* \
241       | i386-go32-rtems*)
242         AC_DEFINE(STRICTCOFF, 1, [Using strict COFF?])
243         ;;
245       i386-*-solaris2 \
246       | x86_64-*-solaris2 \
247       | i386-*-solaris2.[[0-9]] \
248       | i386-*-solaris2.1[[01]] \
249       | x86_64-*-solaris2.1[[01]])
250         if test ${this_target} = $target \
251            && test ${ac_default_x86_relax_relocations} = unset; then
252           ac_default_x86_relax_relocations=0
253         fi
254         ;;
256       microblaze*)
257         ;;
259 changequote(,)dnl
260       ppc-*-aix[5-9].*)
261 changequote([,])dnl
262         AC_DEFINE(AIX_WEAK_SUPPORT, 1,
263                   [Define if using AIX 5.2 value for C_WEAKEXT.])
264         ;;
265       ppc-*-solaris*)
266         if test ${this_target} = $target; then
267           AC_DEFINE(TARGET_SOLARIS_COMMENT, 1,
268                     [Define if default target is PowerPC Solaris.])
269         fi
270         if test x${endian} = xbig; then
271           AC_MSG_ERROR(Solaris must be configured little endian)
272         fi
273         ;;
274     esac
276     if test ${this_target} = $target ; then
277       endian_def=
278       if test x${endian} = xbig; then
279         endian_def=1
280       elif test x${endian} = xlittle; then
281         endian_def=0
282       fi
283       if test x${endian_def} != x; then
284         AC_DEFINE_UNQUOTED(TARGET_BYTES_BIG_ENDIAN, $endian_def,
285                            [Define as 1 if big endian.])
286       fi
287     fi
289 # Other random stuff.
291     case ${cpu_type} in
292       mips)
293         # Set mips_cpu to the name of the default CPU.
294         case ${target_cpu} in
295           mips | mipsbe | mipseb | mipsle | mipsel | mips64 | mips64el)
296             mips_cpu=from-abi
297             ;;
298           mipsisa32 | mipsisa32el)
299             mips_cpu=mips32
300             ;;
301           mipsisa32r2 | mipsisa32r2el)
302             mips_cpu=mips32r2
303             ;;
304           mipsisa32r3 | mipsisa32r3el)
305             mips_cpu=mips32r3
306             ;;
307           mipsisa32r5 | mipsisa32r5el)
308             mips_cpu=mips32r5
309             ;;
310           mipsisa32r6 | mipsisa32r6el)
311             mips_cpu=mips32r6
312             ;;
313           mipsisa64 | mipsisa64el)
314             mips_cpu=mips64
315             ;;
316           mipsisa64r2 | mipsisa64r2el)
317             mips_cpu=mips64r2
318             ;;
319           mipsisa64r3 | mipsisa64r3el)
320             mips_cpu=mips64r3
321             ;;
322           mipsisa64r5 | mipsisa64r5el)
323             mips_cpu=mips64r5
324             ;;
325           mipsisa64r6 | mipsisa64r6el)
326             mips_cpu=mips64r6
327             ;;
328           mipstx39 | mipstx39el)
329             mips_cpu=r3900
330             ;;
331           mips64vr | mips64vrel)
332             mips_cpu=vr4100
333             ;;
334           mipsisa32r2* | mipsisa64r2*)
335 changequote(,)dnl
336             mips_cpu=`echo $target_cpu | sed -e 's/[a-z]*..r2//' -e 's/el$//'`
337 changequote([,])dnl
338             ;;
339           mipsisa32r6* | mipsisa64r6*)
340 changequote(,)dnl
341             mips_cpu=`echo $target_cpu | sed -e 's/[a-z]*..r6//' -e 's/el$//'`
342 changequote([,])dnl
343             ;;
344           mips64* | mipsisa64* | mipsisa32*)
345 changequote(,)dnl
346             mips_cpu=`echo $target_cpu | sed -e 's/[a-z]*..//' -e 's/el$//'`
347 changequote([,])dnl
348             ;;
349           mips*)
350 changequote(,)dnl
351             mips_cpu=`echo $target_cpu | sed -e 's/^mips//' -e 's/el$//'`
352 changequote([,])dnl
353             ;;
354           *)
355             AC_MSG_ERROR($target_cpu isn't a supported MIPS CPU name)
356             ;;
357         esac
358         # See whether it's appropriate to set E_MIPS_ABI_O32 for o32
359         # binaries.  It's a GNU extension that some OSes don't understand.
360         case ${target} in
361           *-*-irix*)
362             use_e_mips_abi_o32=0
363             ;;
364           *)
365             use_e_mips_abi_o32=1
366             ;;
367         esac
368         # Decide whether to generate 32-bit or 64-bit code by default.
369         # Used to resolve -march=from-abi when an embedded ABI is selected.
370         case ${target} in
371           mips64*-*-* | mipsisa64*-*-*)
372             mips_default_64bit=1
373             ;;
374           *)
375             mips_default_64bit=0
376             ;;
377         esac
378         # Decide which ABI to target by default.
379         case ${target} in
380           mips64*-linux* | mips-sgi-irix6* | mips64*-freebsd* \
381           | mips64*-kfreebsd*-gnu | mips64*-ps2-elf*)
382             mips_default_abi=N32_ABI
383             ;;
384           mips*-linux* | mips*-freebsd* | mips*-kfreebsd*-gnu)
385             mips_default_abi=O32_ABI
386             ;;
387           mips64*-openbsd*)
388             mips_default_abi=N64_ABI
389             ;;
390           *)
391             mips_default_abi=NO_ABI
392             ;;
393         esac
394         AC_DEFINE_UNQUOTED(MIPS_CPU_STRING_DEFAULT, "$mips_cpu",
395                            [Default CPU for MIPS targets. ])
396         AC_DEFINE_UNQUOTED(USE_E_MIPS_ABI_O32, $use_e_mips_abi_o32,
397                            [Allow use of E_MIPS_ABI_O32 on MIPS targets. ])
398         AC_DEFINE_UNQUOTED(MIPS_DEFAULT_64BIT, $mips_default_64bit,
399                            [Generate 64-bit code by default on MIPS targets. ])
400         AC_DEFINE_UNQUOTED(MIPS_DEFAULT_ABI, $mips_default_abi,
401                            [Choose a default ABI for MIPS targets. ])
402         ;;
403     esac
405     # Do we need the opcodes library?
406     case ${cpu_type} in
407       vax | tic30)
408         ;;
410       *)
411         need_opcodes=yes
413         case "${enable_shared}" in
414         yes) shared_opcodes=true ;;
415         *opcodes*) shared_opcodes=true ;;
416         *) shared_opcodes=false ;;
417         esac
418         ;;
419     esac
421     # Any other special object files needed ?
422     case ${cpu_type} in
424       bfin)
425         for f in bfin-parse.o bfin-lex-wrapper.o; do
426           case " $extra_objects " in
427             *" $f "*) ;;
428             *) extra_objects="$extra_objects $f" ;;
429           esac
430         done
431         ;;
433       bpf)
434         if test $this_target = $target ; then
435           AC_DEFINE_UNQUOTED(DEFAULT_ARCH, "${arch}", [Default architecture.])
436         fi
437         using_cgen=yes
438         ;;
439       epiphany | fr30 | ip2k | iq2000 | lm32 | m32r | or1k)
440         using_cgen=yes
441         ;;
443       m32c)
444         using_cgen=yes
445         ;;
446       frv)
447         using_cgen=yes
448         ;;
449       m68k)
450         f=m68k-parse.o
451         case " $extra_objects " in
452           *" $f "*) ;;
453           *) extra_objects="$extra_objects $f" ;;
454         esac
455         ;;
457       mep)
458         using_cgen=yes
459         ;;
461       mips)
462         for f in itbl-parse.o itbl-lex-wrapper.o itbl-ops.o; do
463           case " $extra_objects " in
464             *" $f "*) ;;
465             *) extra_objects="$extra_objects $f" ;;
466           esac
467         done
468         ;;
470       mt)
471         using_cgen=yes
472         ;;
474       nds32)
475         # setup NDS32_LINUX_TOOLCHAIN definition
476         if test "linux" = $em; then
477           AC_DEFINE(NDS32_LINUX_TOOLCHAIN, 1,
478             [Define value for nds32_linux_toolchain])
479         else
480           AC_DEFINE(NDS32_LINUX_TOOLCHAIN, 0,
481             [Define default value for nds32_linux_toolchain])
482         fi
484         # Decide BASELINE, REDUCED_REGS, FPU_DP_EXT, FPU_SP_EXT features
485         # based on arch_name.
486         AC_MSG_CHECKING(for default configuration of --with-arch)
487         if test "x${with_arch}" != x; then
488           case ${with_arch} in
489             v2j | v2s | v2f | v2 | v3m | v3j | v3s | v3f | v3 )
490               AC_DEFINE_UNQUOTED(NDS32_DEFAULT_ARCH_NAME, "$with_arch",
491                                  [Define value for nds32_arch_name])
492               ;;
493             *)
494               AC_MSG_ERROR(This kind of arch name does *NOT* exist!)
495               ;;
496           esac
497         fi
498         AC_MSG_RESULT($with_arch)
500         # Decide features one by one.
501         AC_MSG_CHECKING(for default configuration of --enable-dx-regs)
502         if test "x${enable_dx_regs}" = xyes; then
503           AC_DEFINE(NDS32_DEFAULT_DX_REGS, 1,
504                     [Define value for nds32_dx_regs])
505         else
506           AC_DEFINE(NDS32_DEFAULT_DX_REGS, 0,
507                     [Define default value for nds32_dx_regs])
508         fi
509         AC_MSG_RESULT($enable_dx_regs)
511         AC_MSG_CHECKING(for default configuration of --enable-perf-ext)
512         if test "x${enable_perf_ext}" = xno; then
513           AC_DEFINE(NDS32_DEFAULT_PERF_EXT, 0,
514                     [Define value for nds32_perf_ext])
515         else
516           AC_DEFINE(NDS32_DEFAULT_PERF_EXT, 1,
517                     [Define default value for nds32_perf_ext])
518         fi
519         AC_MSG_RESULT($enable_perf_ext)
521         AC_MSG_CHECKING(for default configuration of --enable-perf-ext2)
522         if test "x${enable_perf_ext2}" = xno; then
523           AC_DEFINE(NDS32_DEFAULT_PERF_EXT2, 0,
524                     [Define value for nds32_perf_ext2])
525         else
526           AC_DEFINE(NDS32_DEFAULT_PERF_EXT2, 1,
527                     [Define default value for nds32_perf_ext2])
528         fi
529         AC_MSG_RESULT($enable_perf_ext2)
531         AC_MSG_CHECKING(for default configuration of --enable-string-ext)
532         if test "x${enable_string_ext}" = xno; then
533           AC_DEFINE(NDS32_DEFAULT_STRING_EXT, 0,
534                     [Define value for nds32_string_ext])
535         else
536           AC_DEFINE(NDS32_DEFAULT_STRING_EXT, 1,
537                     [Define default value for nds32_string_ext])
538         fi
539         AC_MSG_RESULT($enable_string_ext)
541         AC_MSG_CHECKING(for default configuration of --enable-audio-ext)
542         if test "x${enable_audio_ext}" = xno; then
543           AC_DEFINE(NDS32_DEFAULT_AUDIO_EXT, 0,
544                     [Define value for nds32_audio_ext])
545         else
546           AC_DEFINE(NDS32_DEFAULT_AUDIO_EXT, 1,
547                     [Define default value for nds32_audio_ext])
548         fi
549         AC_MSG_RESULT($enable_audio_ext)
551         AC_MSG_CHECKING(for default configuration of --enable-dsp-ext)
552         if test "x${enable_dsp_ext}" = xno; then
553           AC_DEFINE(NDS32_DEFAULT_DSP_EXT, 0,
554                     [Define value for nds32_dsp_ext])
555         else
556           AC_DEFINE(NDS32_DEFAULT_DSP_EXT, 1,
557                     [Define default value for nds32_dsp_ext])
558         fi
559         AC_MSG_RESULT($enable_dsp_ext)
561         AC_MSG_CHECKING(for default configuration of --enable-zol-ext)
562         if test "x${enable_zol_ext}" = xno; then
563           AC_DEFINE(NDS32_DEFAULT_ZOL_EXT, 0,
564                     [Define value for nds32_zol_ext])
565         else
566           AC_DEFINE(NDS32_DEFAULT_ZOL_EXT, 1,
567                     [Define default value for nds32_zol_ext])
568         fi
569         AC_MSG_RESULT($enable_zol_ext)
570         ;;
572       aarch64 | i386 | riscv | s390 | sparc)
573         if test $this_target = $target ; then
574           AC_DEFINE_UNQUOTED(DEFAULT_ARCH, "${arch}", [Default architecture.])
575         fi
576         ;;
578       rl78)
579         f=rl78-parse.o
580         case " $extra_objects " in
581           *" $f "*) ;;
582           *) extra_objects="$extra_objects $f" ;;
583         esac
584         ;;
586       rx)
587         f=rx-parse.o
588         case " $extra_objects " in
589           *" $f "*) ;;
590           *) extra_objects="$extra_objects $f" ;;
591         esac
592         ;;
594       xstormy16)
595         using_cgen=yes
596         ;;
598       xc16x)
599         using_cgen=yes
600         ;;
602       xtensa)
603         f=config/xtensa-relax.o
604         case " $extra_objects " in
605           *" $f "*) ;;
606           *) extra_objects="$extra_objects $f" ;;
607         esac
608         ;;
610       *)
611         ;;
612     esac
614     if test $using_cgen = yes ; then
615         f=cgen.o
616         case " $extra_objects " in
617           *" $f "*) ;;
618           *) extra_objects="$extra_objects $f" ;;
619         esac
620     fi
622 # See if we really can support this configuration with the emulation code.
624     if test $this_target = $target ; then
625       obj_format=$fmt
626       te_file=$em
627     fi
629     case ${te_file} in
630       vms)
631         f=config/te-vms.o
632         case " $extra_objects " in
633           *" $f "*) ;;
634           *) extra_objects="$extra_objects $f" ;;
635         esac ;;
636     esac
638 # From target name and format, produce a list of supported emulations.
640     case ${generic_target}-${fmt} in
641       mips-*-*-*)       case "$endian" in
642                         big)    emulation="mipsbelf mipslelf mipself" ;;
643                         *)      emulation="mipslelf mipsbelf mipself" ;;
644                         esac ;;
645       # i386-pc-pe-coff != i386-pc-coff.
646       i386-*-pe-coff)   ;;
647       # Uncommenting the next line will turn on support for i386 AOUT
648       # for the default linux configuration
649       # i386-*-linux*-elf) emulation="i386elf i386aout" ;;
650       #
651       i386-*-aout)      emulation="i386aout" ;;
652       i386-*-coff)      emulation="i386coff" ;;
653       i386-*-elf)       emulation="i386elf" ;;
655       # Always all formats.  The first stated emulation becomes the default.
656       cris-*-*aout*)    emulation="crisaout criself" ;;
657       cris-*-*)         emulation="criself crisaout" ;;
658     esac
660     emulations="$emulations $emulation"
662 done
664 if test ${ac_default_x86_relax_relocations} = unset; then
665   ac_default_x86_relax_relocations=1
667 AC_DEFINE_UNQUOTED(DEFAULT_GENERATE_X86_RELAX_RELOCATIONS,
668   $ac_default_x86_relax_relocations,
669   [Define to 1 if you want to generate x86 relax relocations by default.])
671 if test ${ac_default_elf_stt_common} = unset; then
672   ac_default_elf_stt_common=0
674 AC_DEFINE_UNQUOTED(DEFAULT_GENERATE_ELF_STT_COMMON,
675   $ac_default_elf_stt_common,
676   [Define to 1 if you want to generate ELF common symbols with the
677    STT_COMMON type by default.])
679 AC_DEFINE_UNQUOTED(DEFAULT_GENERATE_BUILD_NOTES,
680   $ac_default_generate_build_notes,
681   [Define to 1 if you want to generate GNU Build attribute notes
682    by default, if none are contained in the input.])
684 if test ${ac_default_generate_x86_used_note} = unset; then
685   ac_default_generate_x86_used_note=0
687 AC_DEFINE_UNQUOTED(DEFAULT_X86_USED_NOTE,
688   $ac_default_generate_x86_used_note,
689   [Define to 1 if you want to generate GNU x86 used ISA and feature
690    properties by default.])
692 if test ${ac_default_generate_riscv_attr} = unset; then
693     case ${target_os} in
694       elf)
695         ac_default_generate_riscv_attr=1
696         ;;
697       *)
698         ac_default_generate_riscv_attr=0
699         ;;
700   esac
703 AC_DEFINE_UNQUOTED(DEFAULT_RISCV_ATTR,
704   $ac_default_generate_riscv_attr,
705   [Define to 1 if you want to generate RISC-V arch attribute by default.])
707 if test ${ac_default_mips_fix_loongson3_llsc} = unset; then
708   ac_default_mips_fix_loongson3_llsc=0
710 AC_DEFINE_UNQUOTED(DEFAULT_MIPS_FIX_LOONGSON3_LLSC,
711   $ac_default_mips_fix_loongson3_llsc,
712   [Define to 1 if you want to fix Loongson3 LLSC Errata by default.])
714 if test x$ac_default_compressed_debug_sections = xyes ; then
715   AC_DEFINE(DEFAULT_FLAG_COMPRESS_DEBUG, 1, [Define if you want compressed debug sections by default.])
718 # Turn on all targets if possible
719 if test ${all_targets} = "yes"; then
720   case ${target_cpu_type} in
721   i386)
722     case ${obj_format} in
723     aout)
724       emulations="$emulations i386coff i386elf"
725       ;;
726     coff)
727       emulations="$emulations i386aout i386elf"
728     ;;
729     elf)
730       emulations="$emulations i386aout i386coff"
731       ;;
732     esac
733   ;;
734   x86_64)
735     case ${obj_format} in
736     aout)
737       emulations="$emulations i386coff i386elf"
738       ;;
739     coff)
740       emulations="$emulations i386aout i386elf"
741     ;;
742     elf)
743       emulations="$emulations i386aout i386coff"
744       ;;
745     esac
746   ;;
747   esac
750 # PE code has way too many macros tweaking behaviour
751 case ${te_file} in
752   pe*) emulations="" ;;
753 esac
755 # Assign floating point type.  Most processors with FP support
756 # IEEE FP.  On those that don't support FP at all, usually IEEE
757 # is emulated.
758 case ${target_cpu} in
759   vax | pdp11 ) atof=vax ;;
760   *)            atof=ieee ;;
761 esac
763 case "${obj_format}" in
764   "") AC_MSG_ERROR(GAS does not know what format to use for target ${target}) ;;
765 esac
767 # Unfortunately the cpu in cpu-opc.h file isn't always $(TARGET_CPU).
768 cgen_cpu_prefix=""
769 if test $using_cgen = yes ; then
770   case ${target_cpu} in
771     or1knd)
772        cgen_cpu_prefix=or1k ;;
773     *) cgen_cpu_prefix=${target_cpu} ;;
774   esac
775   AC_SUBST(cgen_cpu_prefix)
776   AC_DEFINE(USING_CGEN, 1, [Using cgen code?])
780 dnl Make sure the desired support files exist.
783 if test ! -r ${srcdir}/config/tc-${target_cpu_type}.c; then
784   AC_MSG_ERROR(GAS does not support target CPU ${target_cpu_type})
787 if test ! -r ${srcdir}/config/obj-${obj_format}.c; then
788   AC_MSG_ERROR(GAS does not have support for object file format ${obj_format})
791 # Some COFF configurations want these random other flags set.
792 case ${obj_format} in
793   coff)
794     case ${target_cpu_type} in
795       i386) AC_DEFINE(I386COFF, 1, [Using i386 COFF?]) ;;
796       x86_64) AC_DEFINE(I386COFF, 1, [Using i386 COFF?]) ;;
797     esac
798     ;;
799 esac
801 # Getting this done right is going to be a bitch.  Each configuration specified
802 # with --enable-targets=... should be checked for environment, format, cpu
803 # setting.
805 # For each configuration, the necessary object file support code must be linked
806 # in.  This might be only one, it might be up to four.  The necessary emulation
807 # code needs to be provided, too.
809 # And then there's "--enable-targets=all"....
811 # For now, just always do it for MIPS ELF configurations.  Sigh.
813 formats="${obj_format}"
814 emfiles=""
815 EMULATIONS=""
816 GAS_UNIQ(emulations)
817 for em in . $emulations ; do
818   case $em in
819     .)  continue ;;
820     mipsbelf | mipslelf | mipself)
821         fmt=elf   file=mipself ;;
822     *coff)
823         fmt=coff  file=$em ;;
824     *aout)
825         fmt=aout file=$em ;;
826     *elf)
827         fmt=elf file=$em ;;
828   esac
829   formats="$formats $fmt"
830   emfiles="$emfiles config/e-$file.o"
831   EMULATIONS="$EMULATIONS &$em,"
832 done
833 GAS_UNIQ(formats)
834 GAS_UNIQ(emfiles)
835 if test `set . $formats ; shift ; echo $#` -gt 1 ; then
836   for fmt in $formats ; do
837     case $fmt in
838       aout)     AC_DEFINE(OBJ_MAYBE_AOUT, 1,    [a.out support?])   ;;
839       coff)     AC_DEFINE(OBJ_MAYBE_COFF, 1,    [COFF support?])    ;;
840       ecoff)    AC_DEFINE(OBJ_MAYBE_ECOFF, 1,   [ECOFF support?])   ;;
841       elf)      AC_DEFINE(OBJ_MAYBE_ELF, 1,     [ELF support?])     ;;
842       generic)  AC_DEFINE(OBJ_MAYBE_GENERIC, 1, [generic support?]) ;;
843       som)      AC_DEFINE(OBJ_MAYBE_SOM, 1,     [SOM support?])     ;;
844     esac
845     extra_objects="$extra_objects config/obj-$fmt.o"
846   done
847   obj_format=multi
849 if test `set . $emfiles ; shift ; echo $#` -gt 0 ; then
850   DEFAULT_EMULATION=`set . $emulations ; echo $2`
851   # e-mipself has more than one emulation per file, e-i386* has just one at the
852   # moment.  If only one emulation is specified, then don't define
853   # USE_EMULATIONS or include any of the e-files as they will only be bloat.
854   case "${obj_format}${emfiles}" in
855     multi* | *mipself*)
856       extra_objects="$extra_objects $emfiles"
857       AC_DEFINE(USE_EMULATIONS, 1, [Use emulation support?]) ;;
858   esac
860 AC_SUBST(extra_objects)
861 AC_DEFINE_UNQUOTED(EMULATIONS, $EMULATIONS, [Supported emulations.])
862 AC_DEFINE_UNQUOTED(DEFAULT_EMULATION, "$DEFAULT_EMULATION",
863                    [Default emulation.])
865 reject_dev_configs=yes
867 case ${reject_dev_configs}-${dev} in
868   yes-yes) # Oops.
869     AC_MSG_ERROR(GAS does not support the ${generic_target} configuration.)
870     ;;
871 esac
873 AC_SUBST(target_cpu_type)
874 AC_SUBST(obj_format)
875 AC_SUBST(te_file)
876 AC_SUBST(install_tooldir)
877 AC_SUBST(atof)
878 dnl AC_SUBST(emulation)
880 # do we need the opcodes library?
881 case "${need_opcodes}" in
882 yes)
883   OPCODES_LIB=../opcodes/libopcodes.la
884   ;;
885 esac
887 AC_SUBST(OPCODES_LIB)
889 AC_DEFINE_UNQUOTED(TARGET_ALIAS,        "${target_alias}", [Target alias.])
890 AC_DEFINE_UNQUOTED(TARGET_CANONICAL,    "${target}",       [Canonical target.])
891 AC_DEFINE_UNQUOTED(TARGET_CPU,          "${target_cpu}",   [Target CPU.])
892 AC_DEFINE_UNQUOTED(TARGET_VENDOR,       "${target_vendor}", [Target vendor.])
893 AC_DEFINE_UNQUOTED(TARGET_OS,           "${target_os}",    [Target OS.])
895 AC_PROG_YACC
896 AM_PROG_LEX
898 ALL_LINGUAS="es fi fr id ja ru rw sv tr uk zh_CN"
899 ZW_GNU_GETTEXT_SISTER_DIR
900 AM_PO_SUBDIRS
902 AM_MAINTAINER_MODE
903 AM_CONDITIONAL(GENINSRC_NEVER, false)
904 AC_EXEEXT
906 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)
907 ACX_HEADER_STRING
909 # Put this here so that autoconf's "cross-compiling" message doesn't confuse
910 # people who are not cross-compiling but are compiling cross-assemblers.
911 AC_MSG_CHECKING(whether compiling a cross-assembler)
912 if test "${host}" = "${target}"; then
913   cross_gas=no
914 else
915   cross_gas=yes
916   AC_DEFINE(CROSS_COMPILE, 1, [Compiling cross-assembler?])
918 AC_MSG_RESULT($cross_gas)
920 dnl ansidecl.h will deal with const
921 dnl AC_C_CONST
922 AC_FUNC_ALLOCA
923 AC_C_INLINE
925 # VMS doesn't have unlink.
926 AC_CHECK_FUNCS(unlink remove, break)
927 AC_CHECK_FUNCS(sbrk setlocale)
928 AC_CHECK_FUNCS(strsignal)
930 AM_LC_MESSAGES
932 # do we need the math library?
933 case "${need_libm}" in
934 yes)
935   LT_LIB_M
936   AC_SUBST(LIBM)
937   ;;
938 esac
940 # Some non-ANSI preprocessors botch requoting inside strings.  That's bad
941 # enough, but on some of those systems, the assert macro relies on requoting
942 # working properly!
943 GAS_WORKING_ASSERT
945 # On some systems, the system header files may not declare malloc, realloc,
946 # and free.  There are places where gas needs these functions to have been
947 # declared -- such as when taking their addresses.
948 gas_test_headers="
949 #ifdef HAVE_MEMORY_H
950 #include <memory.h>
951 #endif
952 #ifdef HAVE_STRING_H
953 #include <string.h>
954 #else
955 #ifdef HAVE_STRINGS_H
956 #include <strings.h>
957 #endif
958 #endif
959 #ifdef HAVE_STDLIB_H
960 #include <stdlib.h>
961 #endif
962 #ifdef HAVE_UNISTD_H
963 #include <unistd.h>
964 #endif
967 # Does errno.h declare errno, or do we have to add a separate declaration
968 # for it?
969 GAS_CHECK_DECL_NEEDED(errno, f, int f, [
970 #ifdef HAVE_ERRNO_H
971 #include <errno.h>
972 #endif
975 AC_MSG_CHECKING(for a known getopt prototype in unistd.h)
976 AC_CACHE_VAL(gas_cv_decl_getopt_unistd_h,
977 [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([#include <unistd.h>], [extern int getopt (int, char *const*, const char *);])],
978 gas_cv_decl_getopt_unistd_h=yes, gas_cv_decl_getopt_unistd_h=no)])
979 AC_MSG_RESULT($gas_cv_decl_getopt_unistd_h)
980 if test $gas_cv_decl_getopt_unistd_h = yes; then
981   AC_DEFINE([HAVE_DECL_GETOPT], 1,
982             [Is the prototype for getopt in <unistd.h> in the expected format?])
985 GAS_CHECK_DECL_NEEDED(environ, f, char **f, $gas_test_headers)
986 GAS_CHECK_DECL_NEEDED(ffs, f, int (*f)(int), $gas_test_headers)
987 GAS_CHECK_DECL_NEEDED(free, f, void (*f)(), $gas_test_headers)
988 GAS_CHECK_DECL_NEEDED(malloc, f, char *(*f)(), $gas_test_headers)
989 GAS_CHECK_DECL_NEEDED(sbrk, f, char *(*f)(), $gas_test_headers)
990 GAS_CHECK_DECL_NEEDED(strstr, f, char *(*f)(), $gas_test_headers)
992 AC_CHECK_DECLS([free, getenv, malloc, mempcpy, realloc, stpcpy, strstr, vsnprintf, asprintf])
994 BFD_BINARY_FOPEN
996 # Link in zlib if we can.  This allows us to write compressed debug sections.
997 AM_ZLIB
999 # Support for VMS timestamps via cross compile
1001 if test "$ac_cv_header_time_h" = yes; then
1002   GAS_HAVE_TIME_TYPE_MEMBER(struct tm, tm_gmtoff)
1005 if test "$ac_cv_header_sys_stat_h" = yes; then
1006     GAS_HAVE_SYS_STAT_TYPE_MEMBER(struct stat, st_mtim, tv_sec)
1007     GAS_HAVE_SYS_STAT_TYPE_MEMBER(struct stat, st_mtim, tv_nsec)
1011 dnl Required for html, pdf, install-pdf and install-html targets.
1012 AC_SUBST(datarootdir)
1013 AC_SUBST(docdir)
1014 AC_SUBST(htmldir)
1015 AC_SUBST(pdfdir)
1017 dnl This must come last.
1019 dnl We used to make symlinks to files in the source directory, but now
1020 dnl we just use the right name for .c files, and create .h files in
1021 dnl the build directory which include the right .h file.  Make sure
1022 dnl the old symlinks don't exist, so that a reconfigure in an existing
1023 dnl directory behaves reasonably.
1025 AC_CONFIG_FILES(Makefile doc/Makefile po/Makefile.in:po/Make-in)
1026 AC_CONFIG_COMMANDS([default],
1027 [rm -f targ-cpu.c targ-cpu.h obj-format.h obj-format.c targ-env.h atof-targ.c itbl-cpu.h
1028  echo '#include "tc-'"${target_cpu_type}"'.h"' > targ-cpu.h
1029  echo '#include "obj-'"${obj_format}"'.h"' > obj-format.h
1030  echo '#include "te-'"${te_file}"'.h"' > targ-env.h
1031  echo '#include "itbl-'"${target_cpu_type}"'.h"' > itbl-cpu.h
1032  if test "x$cgen_cpu_prefix" != x ; then
1033    echo '#include "opcodes/'"${cgen_cpu_prefix}"'-desc.h"' > cgen-desc.h
1034  fi],
1035 [target_cpu_type=${target_cpu_type}
1036  cgen_cpu_prefix=${cgen_cpu_prefix}
1037  obj_format=${obj_format}
1038  te_file=${te_file}])
1040 AC_OUTPUT