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