]> git.ipfire.org Git - thirdparty/binutils-gdb.git/blame - gas/configure.ac
Update year range in copyright notice of binutils files
[thirdparty/binutils-gdb.git] / gas / configure.ac
CommitLineData
252b5132
RH
1dnl Process this file with autoconf to produce a configure script.
2dnl
3dnl And be careful when changing it! If you must add tests with square
4dnl brackets, be sure changequote invocations surround it.
5dnl
a2c58332 6dnl Copyright (C) 2012-2022 Free Software Foundation, Inc.
5bf135a7
NC
7dnl
8dnl This file is free software; you can redistribute it and/or modify
9dnl it under the terms of the GNU General Public License as published by
10dnl the Free Software Foundation; either version 3 of the License, or
11dnl (at your option) any later version.
3739860c 12dnl
5bf135a7
NC
13dnl This program is distributed in the hope that it will be useful,
14dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
15dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16dnl GNU General Public License for more details.
3739860c 17dnl
5bf135a7
NC
18dnl You should have received a copy of the GNU General Public License
19dnl along with this program; see the file COPYING3. If not see
20dnl <http://www.gnu.org/licenses/>.
252b5132
RH
21dnl
22dnl v2.5 needed for --bindir et al
2e98a7bd
AM
23m4_include([../bfd/version.m4])
24AC_INIT([gas], BFD_VERSION)
da594c4a 25AC_CONFIG_SRCDIR(as.h)
252b5132 26
13b2be9c
DJ
27dnl Autoconf 2.57 will find the aux dir without this. However, unless
28dnl we specify this explicitly, automake-1.7 will assume that ylwrap is in
29dnl gas/ instead of gas/../.
30AC_CONFIG_AUX_DIR(..)
da594c4a 31AC_CANONICAL_TARGET
252b5132 32
2e98a7bd 33AM_INIT_AUTOMAKE
3b4d5621 34AM_SILENT_RULES([yes])
252b5132 35
ce2cded5
L
36AC_PROG_CC
37AC_GNU_SOURCE
7357c5b6 38AC_USE_SYSTEM_EXTENSIONS
ce2cded5 39
da594c4a 40LT_INIT
b879806f 41ACX_LARGEFILE
2d7f2507 42ACX_PROG_CMP_IGNORE_INITIAL
252b5132 43
252b5132 44AC_ARG_ENABLE(targets,
241a6c40 45[ --enable-targets alternative target configurations besides the primary],
252b5132 46[case "${enableval}" in
da594c4a 47 yes | "") AC_MSG_ERROR(enable-targets option must specify target names or 'all')
252b5132
RH
48 ;;
49 no) enable_targets= ;;
50 *) enable_targets=$enableval ;;
51esac])dnl
c43a438d 52
e044973b
AM
53ac_checking=
54. ${srcdir}/../bfd/development.sh
55test "$development" = true && ac_checking=yes
c43a438d
AM
56AC_ARG_ENABLE(checking,
57[ --enable-checking enable run-time checks],
58[case "${enableval}" in
59 no|none) ac_checking= ;;
60 *) ac_checking=yes ;;
61esac])dnl
62if test x$ac_checking != x ; then
63 AC_DEFINE(ENABLE_CHECKING, 1, [Define if you want run-time sanity checks.])
64fi
65
6c3bc0f8
NC
66# PR gas/19109
67# Decide the default method for compressing debug sections.
68ac_default_compressed_debug_sections=unset
69# Provide a configure time option to override our default.
70AC_ARG_ENABLE(compressed_debug_sections,
4894d80b 71 AS_HELP_STRING([--enable-compressed-debug-sections={all,gas,none}],
27ba7c94 72 [compress debug sections by default]),
4894d80b 73[case ,"${enableval}", in
9b4c123c 74 ,yes, | ,all, | *,gas,*) ac_default_compressed_debug_sections=yes ;;
4894d80b 75 ,no, | ,none,) ac_default_compressed_debug_sections=no ;;
6c3bc0f8
NC
76 *) ac_default_compressed_debug_sections=unset ;;
77esac])dnl
78
0cb4071e
L
79# PR gas/19520
80# Decide if x86 assembler should generate relax relocations.
81ac_default_x86_relax_relocations=unset
82# Provide a configure time option to override our default.
83AC_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 ;;
88esac])dnl
89
b8871f35
L
90# Decide if ELF assembler should generate common symbols with the
91# STT_COMMON type.
92ac_default_elf_stt_common=unset
93# Provide a configure time option to override our default.
94AC_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 ;;
99esac])dnl
100
0df8ad28
NC
101
102# Decide if the ELF assembler should default to generating
103# GNU Build notes if none are provided by the input.
104ac_default_generate_build_notes=0
105# Provide a configuration option to override the default.
106AC_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 ;;
112esac])dnl
113
6f2117ba
PH
114# Decide if the MIPS assembler should default to enable MIPS fix Loongson3
115# LLSC errata.
116ac_default_mips_fix_loongson3_llsc=unset
117# Provide a configuration option to override the default.
118AC_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 ;;
124esac])dnl
0df8ad28 125
b4a3a7b4
L
126# Decide if the x86 ELF assembler should default to generating GNU x86
127# used ISA and feature properties.
128ac_default_generate_x86_used_note=unset
129# Provide a configuration option to override the default.
130AC_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 ;;
136esac])dnl
137
2dc8dd17
JW
138# Decide if the RISC-V ELF assembler should default to generating attribute.
139ac_default_generate_riscv_attr=unset
140# Provide a configuration option to override the default.
141AC_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 ;;
147esac])dnl
b4a3a7b4 148
252b5132
RH
149using_cgen=no
150
9e9b66a9 151AM_BINUTILS_WARNINGS
a2d91340 152
252b5132 153# Generate a header file
da594c4a 154AC_CONFIG_HEADERS(config.h:config.in)
252b5132 155
9004b6bd
AB
156dnl Option --with-cpu=TYPE allows configure type control of the default
157dnl cpu type within the assembler. Currently only the ARC target
158dnl supports this feature, but others may be added in the future.
159AC_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 [])
166
df7b86aa
NC
167# PR 14072
168AH_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). */
d17dce55 171#if defined(__GLIBC__) && !defined(__FreeBSD_kernel__) && !defined(__CONFIG_H__)
df7b86aa
NC
172# error config.h must be #included before system headers
173#endif
174#define __CONFIG_H__ 1])
175
76a27922
ILT
176# If we are on a DOS filesystem, we must use gdb.ini rather than
177# .gdbinit.
76a27922 178case "${host}" in
591d4689 179 *-*-msdos* | *-*-go32* | *-*-mingw32* | *-*-windows*)
76a27922 180 GDBINIT="gdb.ini"
13b2be9c
DJ
181 AC_CONFIG_FILES(gdb.ini:gdbinit.in)
182 ;;
183 *)
184 GDBINIT=".gdbinit"
185 AC_CONFIG_FILES(.gdbinit:gdbinit.in)
76a27922
ILT
186 ;;
187esac
188AC_SUBST(GDBINIT)
189
a8eb42a8 190#We need this for the host.
44f2f9d2
AM
191AC_C_BIGENDIAN
192
252b5132
RH
193te_file=generic
194
195# Makefile target for installing gas in $(tooldir)/bin.
196install_tooldir=install-exec-tooldir
197
198canon_targets=""
15886821 199all_targets=no
252b5132
RH
200if test -n "$enable_targets" ; then
201 for t in `echo $enable_targets | sed 's/,/ /g'`; do
15886821
L
202 if test $t = "all"; then
203 all_targets=yes
204 continue
205 fi
6d83c84b 206 result=`$ac_config_sub $t 2>/dev/null`
252b5132
RH
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)
215fi
216
217emulations=""
218
219for this_target in $target $canon_targets ; do
220
14ee9f48
ILT
221 targ=${this_target}
222 . ${srcdir}/configure.tgt
223
224 case ${target_cpu} in
225 crisv32)
226 AC_DEFINE_UNQUOTED(DEFAULT_CRIS_ARCH, $arch,
227 [Default CRIS architecture.])
228 ;;
252b5132
RH
229 esac
230
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
236
14ee9f48 237 generic_target=${cpu_type}-${target_vendor}-${target_os}
252b5132 238 case ${generic_target} in
79500683
AM
239 i386-*-msdosdjgpp* \
240 | i386-*-go32* \
14ee9f48
ILT
241 | i386-go32-rtems*)
242 AC_DEFINE(STRICTCOFF, 1, [Using strict COFF?])
243 ;;
79500683 244
939b95c7
L
245 i386-*-linux-* | x86_64-*-linux-*)
246 if test ${this_target} = $target \
247 && test ${ac_default_generate_x86_used_note} = unset; then
248 ac_default_generate_x86_used_note=1
249 fi
250 ;;
251
0cb4071e
L
252 i386-*-solaris2 \
253 | x86_64-*-solaris2 \
254 | i386-*-solaris2.[[0-9]] \
255 | i386-*-solaris2.1[[01]] \
256 | x86_64-*-solaris2.1[[01]])
257 if test ${this_target} = $target \
258 && test ${ac_default_x86_relax_relocations} = unset; then
259 ac_default_x86_relax_relocations=0
260 fi
261 ;;
262
7ba29e2a
NC
263 microblaze*)
264 ;;
265
e5231592
RS
266changequote(,)dnl
267 ppc-*-aix[5-9].*)
268changequote([,])dnl
14ee9f48 269 AC_DEFINE(AIX_WEAK_SUPPORT, 1,
f8fc3443 270 [Define if using AIX 5.2 value for C_WEAKEXT.])
14ee9f48 271 ;;
14ee9f48
ILT
272 ppc-*-solaris*)
273 if test ${this_target} = $target; then
274 AC_DEFINE(TARGET_SOLARIS_COMMENT, 1,
275 [Define if default target is PowerPC Solaris.])
276 fi
277 if test x${endian} = xbig; then
278 AC_MSG_ERROR(Solaris must be configured little endian)
279 fi
280 ;;
252b5132
RH
281 esac
282
283 if test ${this_target} = $target ; then
284 endian_def=
285 if test x${endian} = xbig; then
286 endian_def=1
287 elif test x${endian} = xlittle; then
288 endian_def=0
289 fi
290 if test x${endian_def} != x; then
291 AC_DEFINE_UNQUOTED(TARGET_BYTES_BIG_ENDIAN, $endian_def,
292 [Define as 1 if big endian.])
293 fi
294 fi
295
252b5132
RH
296# Other random stuff.
297
316f5878
RS
298 case ${cpu_type} in
299 mips)
300 # Set mips_cpu to the name of the default CPU.
301 case ${target_cpu} in
302 mips | mipsbe | mipseb | mipsle | mipsel | mips64 | mips64el)
303 mips_cpu=from-abi
304 ;;
305 mipsisa32 | mipsisa32el)
306 mips_cpu=mips32
307 ;;
af7ee8bf
CD
308 mipsisa32r2 | mipsisa32r2el)
309 mips_cpu=mips32r2
310 ;;
ae52f483
AB
311 mipsisa32r3 | mipsisa32r3el)
312 mips_cpu=mips32r3
313 ;;
314 mipsisa32r5 | mipsisa32r5el)
315 mips_cpu=mips32r5
316 ;;
7361da2c
AB
317 mipsisa32r6 | mipsisa32r6el)
318 mips_cpu=mips32r6
319 ;;
316f5878
RS
320 mipsisa64 | mipsisa64el)
321 mips_cpu=mips64
322 ;;
5f74bc13
CD
323 mipsisa64r2 | mipsisa64r2el)
324 mips_cpu=mips64r2
325 ;;
ae52f483
AB
326 mipsisa64r3 | mipsisa64r3el)
327 mips_cpu=mips64r3
328 ;;
329 mipsisa64r5 | mipsisa64r5el)
330 mips_cpu=mips64r5
331 ;;
7361da2c
AB
332 mipsisa64r6 | mipsisa64r6el)
333 mips_cpu=mips64r6
334 ;;
316f5878
RS
335 mipstx39 | mipstx39el)
336 mips_cpu=r3900
337 ;;
8f6847cb
RS
338 mips64vr | mips64vrel)
339 mips_cpu=vr4100
340 ;;
5f74bc13 341 mipsisa32r2* | mipsisa64r2*)
af7ee8bf
CD
342changequote(,)dnl
343 mips_cpu=`echo $target_cpu | sed -e 's/[a-z]*..r2//' -e 's/el$//'`
7361da2c
AB
344changequote([,])dnl
345 ;;
346 mipsisa32r6* | mipsisa64r6*)
347changequote(,)dnl
348 mips_cpu=`echo $target_cpu | sed -e 's/[a-z]*..r6//' -e 's/el$//'`
af7ee8bf
CD
349changequote([,])dnl
350 ;;
316f5878
RS
351 mips64* | mipsisa64* | mipsisa32*)
352changequote(,)dnl
353 mips_cpu=`echo $target_cpu | sed -e 's/[a-z]*..//' -e 's/el$//'`
e407c74b
NC
354changequote([,])dnl
355 ;;
356 mips*)
357changequote(,)dnl
358 mips_cpu=`echo $target_cpu | sed -e 's/^mips//' -e 's/el$//'`
316f5878
RS
359changequote([,])dnl
360 ;;
361 *)
da594c4a 362 AC_MSG_ERROR($target_cpu isn't a supported MIPS CPU name)
316f5878
RS
363 ;;
364 esac
365 # See whether it's appropriate to set E_MIPS_ABI_O32 for o32
366 # binaries. It's a GNU extension that some OSes don't understand.
316f5878
RS
367 case ${target} in
368 *-*-irix*)
369 use_e_mips_abi_o32=0
370 ;;
371 *)
372 use_e_mips_abi_o32=1
373 ;;
374 esac
375 # Decide whether to generate 32-bit or 64-bit code by default.
376 # Used to resolve -march=from-abi when an embedded ABI is selected.
377 case ${target} in
378 mips64*-*-* | mipsisa64*-*-*)
379 mips_default_64bit=1
380 ;;
381 *)
382 mips_default_64bit=0
383 ;;
384 esac
cac012d6
AO
385 # Decide which ABI to target by default.
386 case ${target} in
0984958b
MR
387 mips64*-linux* | mips-sgi-irix6* | mips64*-freebsd* \
388 | mips64*-kfreebsd*-gnu | mips64*-ps2-elf*)
cac012d6
AO
389 mips_default_abi=N32_ABI
390 ;;
aeffff67 391 mips*-linux* | mips*-freebsd* | mips*-kfreebsd*-gnu)
cac012d6
AO
392 mips_default_abi=O32_ABI
393 ;;
26eebcf5
MK
394 mips64*-openbsd*)
395 mips_default_abi=N64_ABI
396 ;;
cac012d6
AO
397 *)
398 mips_default_abi=NO_ABI
399 ;;
400 esac
316f5878
RS
401 AC_DEFINE_UNQUOTED(MIPS_CPU_STRING_DEFAULT, "$mips_cpu",
402 [Default CPU for MIPS targets. ])
403 AC_DEFINE_UNQUOTED(USE_E_MIPS_ABI_O32, $use_e_mips_abi_o32,
404 [Allow use of E_MIPS_ABI_O32 on MIPS targets. ])
405 AC_DEFINE_UNQUOTED(MIPS_DEFAULT_64BIT, $mips_default_64bit,
406 [Generate 64-bit code by default on MIPS targets. ])
cac012d6
AO
407 AC_DEFINE_UNQUOTED(MIPS_DEFAULT_ABI, $mips_default_abi,
408 [Choose a default ABI for MIPS targets. ])
316f5878
RS
409 ;;
410 esac
411
252b5132
RH
412 # Do we need the opcodes library?
413 case ${cpu_type} in
0b1cf022 414 vax | tic30)
252b5132
RH
415 ;;
416
417 *)
418 need_opcodes=yes
419
420 case "${enable_shared}" in
421 yes) shared_opcodes=true ;;
422 *opcodes*) shared_opcodes=true ;;
423 *) shared_opcodes=false ;;
424 esac
252b5132
RH
425 ;;
426 esac
427
428 # Any other special object files needed ?
429 case ${cpu_type} in
07c1b327
CM
430
431 bfin)
55add51e 432 for f in config/bfin-parse.o config/bfin-lex-wrapper.o; do
e11078da
AM
433 case " $extra_objects " in
434 *" $f "*) ;;
435 *) extra_objects="$extra_objects $f" ;;
436 esac
437 done
438 ;;
07c1b327 439
f8861f5d
JM
440 bpf)
441 if test $this_target = $target ; then
442 AC_DEFINE_UNQUOTED(DEFAULT_ARCH, "${arch}", [Default architecture.])
443 fi
444 using_cgen=yes
445 ;;
73589c9d 446 epiphany | fr30 | ip2k | iq2000 | lm32 | m32r | or1k)
252b5132
RH
447 using_cgen=yes
448 ;;
449
4462d7c4 450 loongarch)
451 for f in config/loongarch-parse.o config/loongarch-lex-wrapper.o; do
452 case " $extra_objects " in
453 *" $f "*) ;;
454 *) extra_objects="$extra_objects $f" ;;
455 esac
456 done
457 # --target=loongarch[32|64]-*-*. */
458 if test $this_target = $target ; then
459 AC_DEFINE_UNQUOTED(DEFAULT_ARCH, "${arch}", [Default architecture.])
460 fi
461 ;;
462
49f58d10
JB
463 m32c)
464 using_cgen=yes
465 ;;
0ebb9a87
DB
466 frv)
467 using_cgen=yes
468 ;;
252b5132 469 m68k)
55add51e 470 f=config/m68k-parse.o
e11078da
AM
471 case " $extra_objects " in
472 *" $f "*) ;;
473 *) extra_objects="$extra_objects $f" ;;
252b5132
RH
474 esac
475 ;;
476
280d71bf
DB
477 mep)
478 using_cgen=yes
479 ;;
480
252b5132 481 mips)
e11078da
AM
482 for f in itbl-parse.o itbl-lex-wrapper.o itbl-ops.o; do
483 case " $extra_objects " in
484 *" $f "*) ;;
485 *) extra_objects="$extra_objects $f" ;;
486 esac
487 done
252b5132
RH
488 ;;
489
4970f871 490 mt)
e11078da 491 using_cgen=yes
047af9ef
AH
492 ;;
493
35c08157 494 nds32)
fbaf61ad
NC
495 # setup NDS32_LINUX_TOOLCHAIN definition
496 if test "linux" = $em; then
497 AC_DEFINE(NDS32_LINUX_TOOLCHAIN, 1,
498 [Define value for nds32_linux_toolchain])
499 else
500 AC_DEFINE(NDS32_LINUX_TOOLCHAIN, 0,
501 [Define default value for nds32_linux_toolchain])
502 fi
503
e11078da 504 # Decide BASELINE, REDUCED_REGS, FPU_DP_EXT, FPU_SP_EXT features
35c08157
KLC
505 # based on arch_name.
506 AC_MSG_CHECKING(for default configuration of --with-arch)
507 if test "x${with_arch}" != x; then
508 case ${with_arch} in
e11078da 509 v2j | v2s | v2f | v2 | v3m | v3j | v3s | v3f | v3 )
35c08157
KLC
510 AC_DEFINE_UNQUOTED(NDS32_DEFAULT_ARCH_NAME, "$with_arch",
511 [Define value for nds32_arch_name])
e11078da 512 ;;
35c08157
KLC
513 *)
514 AC_MSG_ERROR(This kind of arch name does *NOT* exist!)
515 ;;
e11078da 516 esac
35c08157
KLC
517 fi
518 AC_MSG_RESULT($with_arch)
519
e11078da
AM
520 # Decide features one by one.
521 AC_MSG_CHECKING(for default configuration of --enable-dx-regs)
6cd8405e 522 if test "x${enable_dx_regs}" = xyes; then
35c08157
KLC
523 AC_DEFINE(NDS32_DEFAULT_DX_REGS, 1,
524 [Define value for nds32_dx_regs])
525 else
526 AC_DEFINE(NDS32_DEFAULT_DX_REGS, 0,
527 [Define default value for nds32_dx_regs])
528 fi
529 AC_MSG_RESULT($enable_dx_regs)
530
e11078da 531 AC_MSG_CHECKING(for default configuration of --enable-perf-ext)
6cd8405e 532 if test "x${enable_perf_ext}" = xno; then
35c08157
KLC
533 AC_DEFINE(NDS32_DEFAULT_PERF_EXT, 0,
534 [Define value for nds32_perf_ext])
535 else
536 AC_DEFINE(NDS32_DEFAULT_PERF_EXT, 1,
537 [Define default value for nds32_perf_ext])
538 fi
539 AC_MSG_RESULT($enable_perf_ext)
540
e11078da 541 AC_MSG_CHECKING(for default configuration of --enable-perf-ext2)
6cd8405e 542 if test "x${enable_perf_ext2}" = xno; then
35c08157
KLC
543 AC_DEFINE(NDS32_DEFAULT_PERF_EXT2, 0,
544 [Define value for nds32_perf_ext2])
545 else
546 AC_DEFINE(NDS32_DEFAULT_PERF_EXT2, 1,
547 [Define default value for nds32_perf_ext2])
548 fi
549 AC_MSG_RESULT($enable_perf_ext2)
550
e11078da 551 AC_MSG_CHECKING(for default configuration of --enable-string-ext)
6cd8405e 552 if test "x${enable_string_ext}" = xno; then
35c08157
KLC
553 AC_DEFINE(NDS32_DEFAULT_STRING_EXT, 0,
554 [Define value for nds32_string_ext])
555 else
556 AC_DEFINE(NDS32_DEFAULT_STRING_EXT, 1,
557 [Define default value for nds32_string_ext])
558 fi
559 AC_MSG_RESULT($enable_string_ext)
560
e11078da 561 AC_MSG_CHECKING(for default configuration of --enable-audio-ext)
6cd8405e 562 if test "x${enable_audio_ext}" = xno; then
35c08157
KLC
563 AC_DEFINE(NDS32_DEFAULT_AUDIO_EXT, 0,
564 [Define value for nds32_audio_ext])
565 else
566 AC_DEFINE(NDS32_DEFAULT_AUDIO_EXT, 1,
567 [Define default value for nds32_audio_ext])
568 fi
569 AC_MSG_RESULT($enable_audio_ext)
fbaf61ad
NC
570
571 AC_MSG_CHECKING(for default configuration of --enable-dsp-ext)
572 if test "x${enable_dsp_ext}" = xno; then
573 AC_DEFINE(NDS32_DEFAULT_DSP_EXT, 0,
574 [Define value for nds32_dsp_ext])
575 else
576 AC_DEFINE(NDS32_DEFAULT_DSP_EXT, 1,
577 [Define default value for nds32_dsp_ext])
578 fi
579 AC_MSG_RESULT($enable_dsp_ext)
580
581 AC_MSG_CHECKING(for default configuration of --enable-zol-ext)
582 if test "x${enable_zol_ext}" = xno; then
583 AC_DEFINE(NDS32_DEFAULT_ZOL_EXT, 0,
584 [Define value for nds32_zol_ext])
585 else
586 AC_DEFINE(NDS32_DEFAULT_ZOL_EXT, 1,
587 [Define default value for nds32_zol_ext])
588 fi
589 AC_MSG_RESULT($enable_zol_ext)
35c08157
KLC
590 ;;
591
8f595e9b 592 aarch64 | i386 | s390 | sparc)
252b5132
RH
593 if test $this_target = $target ; then
594 AC_DEFINE_UNQUOTED(DEFAULT_ARCH, "${arch}", [Default architecture.])
595 fi
596 ;;
93fbbb04 597
8f595e9b
NC
598 riscv)
599 # --target=riscv[32|64]-*-*. */
600 if test $this_target = $target ; then
601 AC_DEFINE_UNQUOTED(DEFAULT_ARCH, "${arch}", [Default architecture.])
602 fi
603
604 # --with-arch=<value>. The syntax of <value> is same as Gas option -march.
605 AC_MSG_CHECKING(for default configuration of --with-arch)
606 if test "x${with_arch}" != x; then
607 AC_DEFINE_UNQUOTED(DEFAULT_RISCV_ARCH_WITH_EXT, "$with_arch",
608 [Define default value for RISC-V -march.])
609 fi
610 AC_MSG_RESULT($with_arch)
611
612 # --with-isa-spec=[2.2|20190608|20191213].
613 AC_MSG_CHECKING(for default configuration of --with-isa-spec)
614 if test "x${with_isa_spec}" != x; then
615 AC_DEFINE_UNQUOTED(DEFAULT_RISCV_ISA_SPEC, "$with_isa_spec",
616 [Define default value for RISC-V -misa-spec.])
617 fi
618 AC_MSG_RESULT($with_isa_spec)
619
620 # --with-priv-spec=[1.9|1.9.1|1.10|1.11].
621 AC_MSG_CHECKING(for default configuration of --with-priv-spec)
622 if test "x${with_priv_spec}" != x; then
623 AC_DEFINE_UNQUOTED(DEFAULT_RISCV_PRIV_SPEC, "$with_priv_spec",
624 [Define default value for RISC-V -mpriv-spec])
625 fi
626 AC_MSG_RESULT($with_priv_spec)
627 ;;
628
99c513f6 629 rl78)
55add51e 630 f=config/rl78-parse.o
e11078da
AM
631 case " $extra_objects " in
632 *" $f "*) ;;
633 *) extra_objects="$extra_objects $f" ;;
634 esac
99c513f6
DD
635 ;;
636
c7927a3c 637 rx)
55add51e 638 f=config/rx-parse.o
e11078da
AM
639 case " $extra_objects " in
640 *" $f "*) ;;
641 *) extra_objects="$extra_objects $f" ;;
642 esac
c7927a3c
NC
643 ;;
644
93fbbb04
GK
645 xstormy16)
646 using_cgen=yes
647 ;;
648
d70c5fc7
NC
649 xc16x)
650 using_cgen=yes
651 ;;
652
e0001a05 653 xtensa)
e11078da
AM
654 f=config/xtensa-relax.o
655 case " $extra_objects " in
656 *" $f "*) ;;
657 *) extra_objects="$extra_objects $f" ;;
658 esac
e0001a05
NC
659 ;;
660
252b5132
RH
661 *)
662 ;;
663 esac
664
665 if test $using_cgen = yes ; then
e11078da
AM
666 f=cgen.o
667 case " $extra_objects " in
668 *" $f "*) ;;
669 *) extra_objects="$extra_objects $f" ;;
252b5132
RH
670 esac
671 fi
672
673# See if we really can support this configuration with the emulation code.
674
675 if test $this_target = $target ; then
252b5132
RH
676 obj_format=$fmt
677 te_file=$em
252b5132
RH
678 fi
679
e11078da
AM
680 case ${te_file} in
681 vms)
682 f=config/te-vms.o
683 case " $extra_objects " in
684 *" $f "*) ;;
685 *) extra_objects="$extra_objects $f" ;;
686 esac ;;
687 esac
58797674 688
252b5132
RH
689# From target name and format, produce a list of supported emulations.
690
691 case ${generic_target}-${fmt} in
e8044f35 692 mips-*-*-*) case "$endian" in
252b5132
RH
693 big) emulation="mipsbelf mipslelf mipself" ;;
694 *) emulation="mipslelf mipsbelf mipself" ;;
252b5132 695 esac ;;
119caedd
L
696 # i386-pc-pe-coff != i386-pc-coff.
697 i386-*-pe-coff) ;;
4c63da97
AM
698 # Uncommenting the next line will turn on support for i386 AOUT
699 # for the default linux configuration
700 # i386-*-linux*-elf) emulation="i386elf i386aout" ;;
701 #
702 i386-*-aout) emulation="i386aout" ;;
4ca72d38 703 i386-*-coff) emulation="i386coff" ;;
4c63da97 704 i386-*-elf) emulation="i386elf" ;;
3bcbcc3d 705
f9c19112
HPN
706 # Always all formats. The first stated emulation becomes the default.
707 cris-*-*aout*) emulation="crisaout criself" ;;
708 cris-*-*) emulation="criself crisaout" ;;
252b5132
RH
709 esac
710
711 emulations="$emulations $emulation"
712
713done
714
0cb4071e
L
715if test ${ac_default_x86_relax_relocations} = unset; then
716 ac_default_x86_relax_relocations=1
717fi
718AC_DEFINE_UNQUOTED(DEFAULT_GENERATE_X86_RELAX_RELOCATIONS,
719 $ac_default_x86_relax_relocations,
720 [Define to 1 if you want to generate x86 relax relocations by default.])
721
b8871f35
L
722if test ${ac_default_elf_stt_common} = unset; then
723 ac_default_elf_stt_common=0
724fi
725AC_DEFINE_UNQUOTED(DEFAULT_GENERATE_ELF_STT_COMMON,
726 $ac_default_elf_stt_common,
727 [Define to 1 if you want to generate ELF common symbols with the
728 STT_COMMON type by default.])
729
0df8ad28
NC
730AC_DEFINE_UNQUOTED(DEFAULT_GENERATE_BUILD_NOTES,
731 $ac_default_generate_build_notes,
732 [Define to 1 if you want to generate GNU Build attribute notes
733 by default, if none are contained in the input.])
734
b4a3a7b4
L
735if test ${ac_default_generate_x86_used_note} = unset; then
736 ac_default_generate_x86_used_note=0
737fi
738AC_DEFINE_UNQUOTED(DEFAULT_X86_USED_NOTE,
739 $ac_default_generate_x86_used_note,
740 [Define to 1 if you want to generate GNU x86 used ISA and feature
741 properties by default.])
742
2dc8dd17 743if test ${ac_default_generate_riscv_attr} = unset; then
aa0587b2 744 ac_default_generate_riscv_attr=1
2dc8dd17
JW
745fi
746
747AC_DEFINE_UNQUOTED(DEFAULT_RISCV_ATTR,
748 $ac_default_generate_riscv_attr,
749 [Define to 1 if you want to generate RISC-V arch attribute by default.])
750
6f2117ba
PH
751if test ${ac_default_mips_fix_loongson3_llsc} = unset; then
752 ac_default_mips_fix_loongson3_llsc=0
753fi
754AC_DEFINE_UNQUOTED(DEFAULT_MIPS_FIX_LOONGSON3_LLSC,
755 $ac_default_mips_fix_loongson3_llsc,
756 [Define to 1 if you want to fix Loongson3 LLSC Errata by default.])
757
348ef89a 758if test x$ac_default_compressed_debug_sections = xyes ; then
6c3bc0f8
NC
759 AC_DEFINE(DEFAULT_FLAG_COMPRESS_DEBUG, 1, [Define if you want compressed debug sections by default.])
760fi
e12fe555 761
15886821
L
762# Turn on all targets if possible
763if test ${all_targets} = "yes"; then
764 case ${target_cpu_type} in
765 i386)
766 case ${obj_format} in
767 aout)
768 emulations="$emulations i386coff i386elf"
769 ;;
770 coff)
771 emulations="$emulations i386aout i386elf"
772 ;;
773 elf)
774 emulations="$emulations i386aout i386coff"
775 ;;
776 esac
777 ;;
99ad8390
NC
778 x86_64)
779 case ${obj_format} in
780 aout)
781 emulations="$emulations i386coff i386elf"
782 ;;
783 coff)
784 emulations="$emulations i386aout i386elf"
785 ;;
786 elf)
787 emulations="$emulations i386aout i386coff"
788 ;;
789 esac
790 ;;
15886821
L
791 esac
792fi
793
39871c07
AM
794# PE code has way too many macros tweaking behaviour
795case ${te_file} in
796 pe*) emulations="" ;;
797esac
798
252b5132
RH
799# Assign floating point type. Most processors with FP support
800# IEEE FP. On those that don't support FP at all, usually IEEE
801# is emulated.
802case ${target_cpu} in
12e64c2c 803 vax | pdp11 ) atof=vax ;;
252b5132
RH
804 *) atof=ieee ;;
805esac
806
807case "${obj_format}" in
808 "") AC_MSG_ERROR(GAS does not know what format to use for target ${target}) ;;
809esac
810
811# Unfortunately the cpu in cpu-opc.h file isn't always $(TARGET_CPU).
812cgen_cpu_prefix=""
813if test $using_cgen = yes ; then
814 case ${target_cpu} in
73589c9d
CS
815 or1knd)
816 cgen_cpu_prefix=or1k ;;
252b5132
RH
817 *) cgen_cpu_prefix=${target_cpu} ;;
818 esac
819 AC_SUBST(cgen_cpu_prefix)
820 AC_DEFINE(USING_CGEN, 1, [Using cgen code?])
821fi
822
823dnl
824dnl Make sure the desired support files exist.
825dnl
826
827if test ! -r ${srcdir}/config/tc-${target_cpu_type}.c; then
828 AC_MSG_ERROR(GAS does not support target CPU ${target_cpu_type})
829fi
830
831if test ! -r ${srcdir}/config/obj-${obj_format}.c; then
832 AC_MSG_ERROR(GAS does not have support for object file format ${obj_format})
833fi
834
252b5132
RH
835# Some COFF configurations want these random other flags set.
836case ${obj_format} in
837 coff)
838 case ${target_cpu_type} in
839 i386) AC_DEFINE(I386COFF, 1, [Using i386 COFF?]) ;;
99ad8390 840 x86_64) AC_DEFINE(I386COFF, 1, [Using i386 COFF?]) ;;
252b5132
RH
841 esac
842 ;;
843esac
844
845# Getting this done right is going to be a bitch. Each configuration specified
7be1c489
AM
846# with --enable-targets=... should be checked for environment, format, cpu
847# setting.
252b5132
RH
848#
849# For each configuration, the necessary object file support code must be linked
850# in. This might be only one, it might be up to four. The necessary emulation
851# code needs to be provided, too.
852#
853# And then there's "--enable-targets=all"....
854#
e8044f35 855# For now, just always do it for MIPS ELF configurations. Sigh.
252b5132
RH
856
857formats="${obj_format}"
858emfiles=""
859EMULATIONS=""
860GAS_UNIQ(emulations)
861for em in . $emulations ; do
862 case $em in
863 .) continue ;;
97238fbd 864 mipsbelf | mipslelf | mipself)
252b5132 865 fmt=elf file=mipself ;;
0aa5d426
HPN
866 *coff)
867 fmt=coff file=$em ;;
868 *aout)
869 fmt=aout file=$em ;;
870 *elf)
871 fmt=elf file=$em ;;
252b5132
RH
872 esac
873 formats="$formats $fmt"
d0ac1c44 874 emfiles="$emfiles config/e-$file.o"
252b5132
RH
875 EMULATIONS="$EMULATIONS &$em,"
876done
877GAS_UNIQ(formats)
878GAS_UNIQ(emfiles)
879if test `set . $formats ; shift ; echo $#` -gt 1 ; then
880 for fmt in $formats ; do
881 case $fmt in
882 aout) AC_DEFINE(OBJ_MAYBE_AOUT, 1, [a.out support?]) ;;
252b5132
RH
883 coff) AC_DEFINE(OBJ_MAYBE_COFF, 1, [COFF support?]) ;;
884 ecoff) AC_DEFINE(OBJ_MAYBE_ECOFF, 1, [ECOFF support?]) ;;
885 elf) AC_DEFINE(OBJ_MAYBE_ELF, 1, [ELF support?]) ;;
886 generic) AC_DEFINE(OBJ_MAYBE_GENERIC, 1, [generic support?]) ;;
252b5132 887 som) AC_DEFINE(OBJ_MAYBE_SOM, 1, [SOM support?]) ;;
252b5132 888 esac
d0ac1c44 889 extra_objects="$extra_objects config/obj-$fmt.o"
252b5132
RH
890 done
891 obj_format=multi
892fi
893if test `set . $emfiles ; shift ; echo $#` -gt 0 ; then
252b5132 894 DEFAULT_EMULATION=`set . $emulations ; echo $2`
e8044f35 895 # e-mipself has more than one emulation per file, e-i386* has just one at the
4ca72d38
AM
896 # moment. If only one emulation is specified, then don't define
897 # USE_EMULATIONS or include any of the e-files as they will only be bloat.
898 case "${obj_format}${emfiles}" in
e8044f35 899 multi* | *mipself*)
4ca72d38
AM
900 extra_objects="$extra_objects $emfiles"
901 AC_DEFINE(USE_EMULATIONS, 1, [Use emulation support?]) ;;
902 esac
252b5132
RH
903fi
904AC_SUBST(extra_objects)
905AC_DEFINE_UNQUOTED(EMULATIONS, $EMULATIONS, [Supported emulations.])
906AC_DEFINE_UNQUOTED(DEFAULT_EMULATION, "$DEFAULT_EMULATION",
907 [Default emulation.])
908
252b5132
RH
909reject_dev_configs=yes
910
911case ${reject_dev_configs}-${dev} in
912 yes-yes) # Oops.
913 AC_MSG_ERROR(GAS does not support the ${generic_target} configuration.)
914 ;;
915esac
916
917AC_SUBST(target_cpu_type)
918AC_SUBST(obj_format)
919AC_SUBST(te_file)
920AC_SUBST(install_tooldir)
921AC_SUBST(atof)
922dnl AC_SUBST(emulation)
923
252b5132
RH
924# do we need the opcodes library?
925case "${need_opcodes}" in
926yes)
927 OPCODES_LIB=../opcodes/libopcodes.la
928 ;;
929esac
930
252b5132
RH
931AC_SUBST(OPCODES_LIB)
932
252b5132
RH
933AC_DEFINE_UNQUOTED(TARGET_ALIAS, "${target_alias}", [Target alias.])
934AC_DEFINE_UNQUOTED(TARGET_CANONICAL, "${target}", [Canonical target.])
935AC_DEFINE_UNQUOTED(TARGET_CPU, "${target_cpu}", [Target CPU.])
936AC_DEFINE_UNQUOTED(TARGET_VENDOR, "${target_vendor}", [Target vendor.])
937AC_DEFINE_UNQUOTED(TARGET_OS, "${target_os}", [Target OS.])
938
252b5132
RH
939AC_PROG_YACC
940AM_PROG_LEX
941
e184813f 942ALL_LINGUAS="es fi fr id ja ru rw sv tr uk zh_CN"
20e95c23
DJ
943ZW_GNU_GETTEXT_SISTER_DIR
944AM_PO_SUBDIRS
252b5132
RH
945
946AM_MAINTAINER_MODE
d5fbea21 947AM_CONDITIONAL(GENINSRC_NEVER, false)
252b5132
RH
948AC_EXEEXT
949
23d61380 950AC_CHECK_HEADERS(memory.h sys/stat.h sys/types.h unistd.h)
252b5132
RH
951
952# Put this here so that autoconf's "cross-compiling" message doesn't confuse
953# people who are not cross-compiling but are compiling cross-assemblers.
954AC_MSG_CHECKING(whether compiling a cross-assembler)
955if test "${host}" = "${target}"; then
956 cross_gas=no
957else
958 cross_gas=yes
959 AC_DEFINE(CROSS_COMPILE, 1, [Compiling cross-assembler?])
960fi
961AC_MSG_RESULT($cross_gas)
962
1ec4b9f2 963AC_CHECK_FUNCS(strsignal)
252b5132 964
44350750
NC
965AM_LC_MESSAGES
966
39bec121
TW
967# do we need the math library?
968case "${need_libm}" in
12e64c2c 969yes)
da594c4a 970 LT_LIB_M
39bec121
TW
971 AC_SUBST(LIBM)
972 ;;
973esac
974
252b5132
RH
975# Some non-ANSI preprocessors botch requoting inside strings. That's bad
976# enough, but on some of those systems, the assert macro relies on requoting
977# working properly!
978GAS_WORKING_ASSERT
979
980# On some systems, the system header files may not declare malloc, realloc,
981# and free. There are places where gas needs these functions to have been
982# declared -- such as when taking their addresses.
983gas_test_headers="
984#ifdef HAVE_MEMORY_H
985#include <memory.h>
986#endif
252b5132 987#include <string.h>
252b5132 988#include <stdlib.h>
252b5132
RH
989#ifdef HAVE_UNISTD_H
990#include <unistd.h>
991#endif
992"
252b5132 993
56f36663
NC
994AC_MSG_CHECKING(for a known getopt prototype in unistd.h)
995AC_CACHE_VAL(gas_cv_decl_getopt_unistd_h,
da594c4a 996[AC_COMPILE_IFELSE([AC_LANG_PROGRAM([#include <unistd.h>], [extern int getopt (int, char *const*, const char *);])],
56f36663
NC
997gas_cv_decl_getopt_unistd_h=yes, gas_cv_decl_getopt_unistd_h=no)])
998AC_MSG_RESULT($gas_cv_decl_getopt_unistd_h)
999if test $gas_cv_decl_getopt_unistd_h = yes; then
1000 AC_DEFINE([HAVE_DECL_GETOPT], 1,
1001 [Is the prototype for getopt in <unistd.h> in the expected format?])
1002fi
1003
e8a38df5
AL
1004GAS_CHECK_DECL_NEEDED(environ, f, char **f, $gas_test_headers)
1005GAS_CHECK_DECL_NEEDED(ffs, f, int (*f)(int), $gas_test_headers)
e8a38df5 1006
23d61380 1007AC_CHECK_DECLS([asprintf, mempcpy, stpcpy])
6d74f28b 1008
c973bc5c
NC
1009BFD_BINARY_FOPEN
1010
543b7933
L
1011# Link in zlib if we can. This allows us to write compressed debug sections.
1012AM_ZLIB
0acf065b 1013
b11d79f2
TG
1014# Support for VMS timestamps via cross compile
1015
1016if test "$ac_cv_header_time_h" = yes; then
1017 GAS_HAVE_TIME_TYPE_MEMBER(struct tm, tm_gmtoff)
1018fi
1019
1020if test "$ac_cv_header_sys_stat_h" = yes; then
1021 GAS_HAVE_SYS_STAT_TYPE_MEMBER(struct stat, st_mtim, tv_sec)
1022 GAS_HAVE_SYS_STAT_TYPE_MEMBER(struct stat, st_mtim, tv_nsec)
1023fi
1024
1025
31dd3154 1026dnl Required for html, pdf, install-pdf and install-html targets.
108a6f8e
CD
1027AC_SUBST(datarootdir)
1028AC_SUBST(docdir)
1029AC_SUBST(htmldir)
31dd3154 1030AC_SUBST(pdfdir)
108a6f8e 1031
252b5132
RH
1032dnl This must come last.
1033
1034dnl We used to make symlinks to files in the source directory, but now
1035dnl we just use the right name for .c files, and create .h files in
1036dnl the build directory which include the right .h file. Make sure
1037dnl the old symlinks don't exist, so that a reconfigure in an existing
1038dnl directory behaves reasonably.
1039
bde299e0 1040AC_CONFIG_FILES(Makefile po/Makefile.in:po/Make-in)
13b2be9c 1041AC_CONFIG_COMMANDS([default],
252b5132
RH
1042[rm -f targ-cpu.c targ-cpu.h obj-format.h obj-format.c targ-env.h atof-targ.c itbl-cpu.h
1043 echo '#include "tc-'"${target_cpu_type}"'.h"' > targ-cpu.h
1044 echo '#include "obj-'"${obj_format}"'.h"' > obj-format.h
1045 echo '#include "te-'"${te_file}"'.h"' > targ-env.h
1046 echo '#include "itbl-'"${target_cpu_type}"'.h"' > itbl-cpu.h
1047 if test "x$cgen_cpu_prefix" != x ; then
1048 echo '#include "opcodes/'"${cgen_cpu_prefix}"'-desc.h"' > cgen-desc.h
20e95c23 1049 fi],
252b5132
RH
1050[target_cpu_type=${target_cpu_type}
1051 cgen_cpu_prefix=${cgen_cpu_prefix}
1052 obj_format=${obj_format}
1053 te_file=${te_file}])
13b2be9c
DJ
1054
1055AC_OUTPUT
d546b610
L
1056
1057GNU_MAKE_JOBSERVER