RISC-V: Support ELF attribute for gas and readelf.
[deliverable/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
82704155 6dnl Copyright (C) 2012-2019 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
5d64ca4e 32AC_ISC_POSIX
252b5132 33
2e98a7bd 34AM_INIT_AUTOMAKE
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
c43a438d
AM
53ac_checking=yes
54if grep '^RELEASE=y' ${srcdir}/../bfd/Makefile.am >/dev/null 2>/dev/null ; then
55 ac_checking=
56fi
57AC_ARG_ENABLE(checking,
58[ --enable-checking enable run-time checks],
59[case "${enableval}" in
60 no|none) ac_checking= ;;
61 *) ac_checking=yes ;;
62esac])dnl
63if test x$ac_checking != x ; then
64 AC_DEFINE(ENABLE_CHECKING, 1, [Define if you want run-time sanity checks.])
65fi
66
6c3bc0f8
NC
67# PR gas/19109
68# Decide the default method for compressing debug sections.
69ac_default_compressed_debug_sections=unset
70# Provide a configure time option to override our default.
71AC_ARG_ENABLE(compressed_debug_sections,
4894d80b 72 AS_HELP_STRING([--enable-compressed-debug-sections={all,gas,none}],
27ba7c94 73 [compress debug sections by default]),
4894d80b 74[case ,"${enableval}", in
9b4c123c 75 ,yes, | ,all, | *,gas,*) ac_default_compressed_debug_sections=yes ;;
4894d80b 76 ,no, | ,none,) ac_default_compressed_debug_sections=no ;;
6c3bc0f8
NC
77 *) ac_default_compressed_debug_sections=unset ;;
78esac])dnl
79
0cb4071e
L
80# PR gas/19520
81# Decide if x86 assembler should generate relax relocations.
82ac_default_x86_relax_relocations=unset
83# Provide a configure time option to override our default.
84AC_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 ;;
89esac])dnl
90
b8871f35
L
91# Decide if ELF assembler should generate common symbols with the
92# STT_COMMON type.
93ac_default_elf_stt_common=unset
94# Provide a configure time option to override our default.
95AC_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 ;;
100esac])dnl
101
0df8ad28
NC
102
103# Decide if the ELF assembler should default to generating
104# GNU Build notes if none are provided by the input.
105ac_default_generate_build_notes=0
106# Provide a configuration option to override the default.
107AC_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 ;;
113esac])dnl
114
115
b4a3a7b4
L
116# Decide if the x86 ELF assembler should default to generating GNU x86
117# used ISA and feature properties.
118ac_default_generate_x86_used_note=unset
119# Provide a configuration option to override the default.
120AC_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 ;;
126esac])dnl
127
2dc8dd17
JW
128# Decide if the RISC-V ELF assembler should default to generating attribute.
129ac_default_generate_riscv_attr=unset
130# Provide a configuration option to override the default.
131AC_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 ;;
137esac])dnl
b4a3a7b4 138
252b5132
RH
139using_cgen=no
140
9e9b66a9 141AM_BINUTILS_WARNINGS
a2d91340 142
252b5132 143# Generate a header file
da594c4a 144AC_CONFIG_HEADERS(config.h:config.in)
252b5132 145
9004b6bd
AB
146dnl Option --with-cpu=TYPE allows configure type control of the default
147dnl cpu type within the assembler. Currently only the ARC target
148dnl supports this feature, but others may be added in the future.
149AC_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
df7b86aa
NC
157# PR 14072
158AH_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). */
d17dce55 161#if defined(__GLIBC__) && !defined(__FreeBSD_kernel__) && !defined(__CONFIG_H__)
df7b86aa
NC
162# error config.h must be #included before system headers
163#endif
164#define __CONFIG_H__ 1])
165
76a27922
ILT
166# If we are on a DOS filesystem, we must use gdb.ini rather than
167# .gdbinit.
76a27922 168case "${host}" in
591d4689 169 *-*-msdos* | *-*-go32* | *-*-mingw32* | *-*-windows*)
76a27922 170 GDBINIT="gdb.ini"
13b2be9c
DJ
171 AC_CONFIG_FILES(gdb.ini:gdbinit.in)
172 ;;
173 *)
174 GDBINIT=".gdbinit"
175 AC_CONFIG_FILES(.gdbinit:gdbinit.in)
76a27922
ILT
176 ;;
177esac
178AC_SUBST(GDBINIT)
179
a8eb42a8 180#We need this for the host.
44f2f9d2
AM
181AC_C_BIGENDIAN
182
252b5132
RH
183te_file=generic
184
185# Makefile target for installing gas in $(tooldir)/bin.
186install_tooldir=install-exec-tooldir
187
188canon_targets=""
15886821 189all_targets=no
252b5132
RH
190if test -n "$enable_targets" ; then
191 for t in `echo $enable_targets | sed 's/,/ /g'`; do
15886821
L
192 if test $t = "all"; then
193 all_targets=yes
194 continue
195 fi
6d83c84b 196 result=`$ac_config_sub $t 2>/dev/null`
252b5132
RH
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)
205fi
206
207emulations=""
208
209for this_target in $target $canon_targets ; do
210
14ee9f48
ILT
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 ;;
252b5132
RH
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
14ee9f48 227 generic_target=${cpu_type}-${target_vendor}-${target_os}
252b5132 228 case ${generic_target} in
79500683
AM
229 i386-*-msdosdjgpp* \
230 | i386-*-go32* \
14ee9f48
ILT
231 | i386-go32-rtems*)
232 AC_DEFINE(STRICTCOFF, 1, [Using strict COFF?])
233 ;;
79500683 234
0cb4071e
L
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
7ba29e2a
NC
246 microblaze*)
247 ;;
248
e5231592
RS
249changequote(,)dnl
250 ppc-*-aix[5-9].*)
251changequote([,])dnl
14ee9f48 252 AC_DEFINE(AIX_WEAK_SUPPORT, 1,
f8fc3443 253 [Define if using AIX 5.2 value for C_WEAKEXT.])
14ee9f48 254 ;;
14ee9f48
ILT
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 ;;
252b5132
RH
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
252b5132
RH
279# Other random stuff.
280
316f5878
RS
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 ;;
af7ee8bf
CD
291 mipsisa32r2 | mipsisa32r2el)
292 mips_cpu=mips32r2
293 ;;
ae52f483
AB
294 mipsisa32r3 | mipsisa32r3el)
295 mips_cpu=mips32r3
296 ;;
297 mipsisa32r5 | mipsisa32r5el)
298 mips_cpu=mips32r5
299 ;;
7361da2c
AB
300 mipsisa32r6 | mipsisa32r6el)
301 mips_cpu=mips32r6
302 ;;
316f5878
RS
303 mipsisa64 | mipsisa64el)
304 mips_cpu=mips64
305 ;;
5f74bc13
CD
306 mipsisa64r2 | mipsisa64r2el)
307 mips_cpu=mips64r2
308 ;;
ae52f483
AB
309 mipsisa64r3 | mipsisa64r3el)
310 mips_cpu=mips64r3
311 ;;
312 mipsisa64r5 | mipsisa64r5el)
313 mips_cpu=mips64r5
314 ;;
7361da2c
AB
315 mipsisa64r6 | mipsisa64r6el)
316 mips_cpu=mips64r6
317 ;;
316f5878
RS
318 mipstx39 | mipstx39el)
319 mips_cpu=r3900
320 ;;
8f6847cb
RS
321 mips64vr | mips64vrel)
322 mips_cpu=vr4100
323 ;;
5f74bc13 324 mipsisa32r2* | mipsisa64r2*)
af7ee8bf
CD
325changequote(,)dnl
326 mips_cpu=`echo $target_cpu | sed -e 's/[a-z]*..r2//' -e 's/el$//'`
7361da2c
AB
327changequote([,])dnl
328 ;;
329 mipsisa32r6* | mipsisa64r6*)
330changequote(,)dnl
331 mips_cpu=`echo $target_cpu | sed -e 's/[a-z]*..r6//' -e 's/el$//'`
af7ee8bf
CD
332changequote([,])dnl
333 ;;
316f5878
RS
334 mips64* | mipsisa64* | mipsisa32*)
335changequote(,)dnl
336 mips_cpu=`echo $target_cpu | sed -e 's/[a-z]*..//' -e 's/el$//'`
e407c74b
NC
337changequote([,])dnl
338 ;;
339 mips*)
340changequote(,)dnl
341 mips_cpu=`echo $target_cpu | sed -e 's/^mips//' -e 's/el$//'`
316f5878
RS
342changequote([,])dnl
343 ;;
344 *)
da594c4a 345 AC_MSG_ERROR($target_cpu isn't a supported MIPS CPU name)
316f5878
RS
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.
316f5878
RS
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
cac012d6
AO
368 # Decide which ABI to target by default.
369 case ${target} in
0984958b
MR
370 mips64*-linux* | mips-sgi-irix6* | mips64*-freebsd* \
371 | mips64*-kfreebsd*-gnu | mips64*-ps2-elf*)
cac012d6
AO
372 mips_default_abi=N32_ABI
373 ;;
aeffff67 374 mips*-linux* | mips*-freebsd* | mips*-kfreebsd*-gnu)
cac012d6
AO
375 mips_default_abi=O32_ABI
376 ;;
26eebcf5
MK
377 mips64*-openbsd*)
378 mips_default_abi=N64_ABI
379 ;;
cac012d6
AO
380 *)
381 mips_default_abi=NO_ABI
382 ;;
383 esac
316f5878
RS
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. ])
cac012d6
AO
390 AC_DEFINE_UNQUOTED(MIPS_DEFAULT_ABI, $mips_default_abi,
391 [Choose a default ABI for MIPS targets. ])
316f5878
RS
392 ;;
393 esac
394
252b5132
RH
395 # Do we need the opcodes library?
396 case ${cpu_type} in
0b1cf022 397 vax | tic30)
252b5132
RH
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
252b5132
RH
408 ;;
409 esac
410
411 # Any other special object files needed ?
412 case ${cpu_type} in
07c1b327
CM
413
414 bfin)
e11078da
AM
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 ;;
07c1b327 422
73589c9d 423 epiphany | fr30 | ip2k | iq2000 | lm32 | m32r | or1k)
252b5132
RH
424 using_cgen=yes
425 ;;
426
49f58d10
JB
427 m32c)
428 using_cgen=yes
429 ;;
0ebb9a87
DB
430 frv)
431 using_cgen=yes
432 ;;
252b5132 433 m68k)
e11078da
AM
434 f=m68k-parse.o
435 case " $extra_objects " in
436 *" $f "*) ;;
437 *) extra_objects="$extra_objects $f" ;;
252b5132
RH
438 esac
439 ;;
440
280d71bf
DB
441 mep)
442 using_cgen=yes
443 ;;
444
252b5132 445 mips)
e11078da
AM
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
252b5132
RH
452 ;;
453
4970f871 454 mt)
e11078da 455 using_cgen=yes
047af9ef
AH
456 ;;
457
35c08157 458 nds32)
fbaf61ad
NC
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
e11078da 468 # Decide BASELINE, REDUCED_REGS, FPU_DP_EXT, FPU_SP_EXT features
35c08157
KLC
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
e11078da 473 v2j | v2s | v2f | v2 | v3m | v3j | v3s | v3f | v3 )
35c08157
KLC
474 AC_DEFINE_UNQUOTED(NDS32_DEFAULT_ARCH_NAME, "$with_arch",
475 [Define value for nds32_arch_name])
e11078da 476 ;;
35c08157
KLC
477 *)
478 AC_MSG_ERROR(This kind of arch name does *NOT* exist!)
479 ;;
e11078da 480 esac
35c08157
KLC
481 fi
482 AC_MSG_RESULT($with_arch)
483
e11078da
AM
484 # Decide features one by one.
485 AC_MSG_CHECKING(for default configuration of --enable-dx-regs)
6cd8405e 486 if test "x${enable_dx_regs}" = xyes; then
35c08157
KLC
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
e11078da 495 AC_MSG_CHECKING(for default configuration of --enable-perf-ext)
6cd8405e 496 if test "x${enable_perf_ext}" = xno; then
35c08157
KLC
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
e11078da 505 AC_MSG_CHECKING(for default configuration of --enable-perf-ext2)
6cd8405e 506 if test "x${enable_perf_ext2}" = xno; then
35c08157
KLC
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
e11078da 515 AC_MSG_CHECKING(for default configuration of --enable-string-ext)
6cd8405e 516 if test "x${enable_string_ext}" = xno; then
35c08157
KLC
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
e11078da 525 AC_MSG_CHECKING(for default configuration of --enable-audio-ext)
6cd8405e 526 if test "x${enable_audio_ext}" = xno; then
35c08157
KLC
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)
fbaf61ad
NC
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)
35c08157
KLC
554 ;;
555
3c0367d0 556 aarch64 | i386 | riscv | s390 | sparc)
252b5132
RH
557 if test $this_target = $target ; then
558 AC_DEFINE_UNQUOTED(DEFAULT_ARCH, "${arch}", [Default architecture.])
559 fi
560 ;;
93fbbb04 561
99c513f6 562 rl78)
e11078da
AM
563 f=rl78-parse.o
564 case " $extra_objects " in
565 *" $f "*) ;;
566 *) extra_objects="$extra_objects $f" ;;
567 esac
99c513f6
DD
568 ;;
569
c7927a3c 570 rx)
e11078da
AM
571 f=rx-parse.o
572 case " $extra_objects " in
573 *" $f "*) ;;
574 *) extra_objects="$extra_objects $f" ;;
575 esac
c7927a3c
NC
576 ;;
577
93fbbb04
GK
578 xstormy16)
579 using_cgen=yes
580 ;;
581
d70c5fc7
NC
582 xc16x)
583 using_cgen=yes
584 ;;
585
e0001a05 586 xtensa)
e11078da
AM
587 f=config/xtensa-relax.o
588 case " $extra_objects " in
589 *" $f "*) ;;
590 *) extra_objects="$extra_objects $f" ;;
591 esac
e0001a05
NC
592 ;;
593
252b5132
RH
594 *)
595 ;;
596 esac
597
598 if test $using_cgen = yes ; then
e11078da
AM
599 f=cgen.o
600 case " $extra_objects " in
601 *" $f "*) ;;
602 *) extra_objects="$extra_objects $f" ;;
252b5132
RH
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
252b5132
RH
609 obj_format=$fmt
610 te_file=$em
252b5132
RH
611 fi
612
e11078da
AM
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
58797674 621
252b5132
RH
622# From target name and format, produce a list of supported emulations.
623
624 case ${generic_target}-${fmt} in
e8044f35 625 mips-*-*-*) case "$endian" in
252b5132
RH
626 big) emulation="mipsbelf mipslelf mipself" ;;
627 *) emulation="mipslelf mipsbelf mipself" ;;
252b5132 628 esac ;;
119caedd
L
629 # i386-pc-pe-coff != i386-pc-coff.
630 i386-*-pe-coff) ;;
4c63da97
AM
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" ;;
4ca72d38 636 i386-*-coff) emulation="i386coff" ;;
4c63da97 637 i386-*-elf) emulation="i386elf" ;;
3bcbcc3d 638
f9c19112
HPN
639 # Always all formats. The first stated emulation becomes the default.
640 cris-*-*aout*) emulation="crisaout criself" ;;
641 cris-*-*) emulation="criself crisaout" ;;
252b5132
RH
642 esac
643
644 emulations="$emulations $emulation"
645
646done
647
0cb4071e
L
648if test ${ac_default_x86_relax_relocations} = unset; then
649 ac_default_x86_relax_relocations=1
650fi
651AC_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
b8871f35
L
655if test ${ac_default_elf_stt_common} = unset; then
656 ac_default_elf_stt_common=0
657fi
658AC_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
0df8ad28
NC
663AC_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
b4a3a7b4
L
668if test ${ac_default_generate_x86_used_note} = unset; then
669 ac_default_generate_x86_used_note=0
670fi
671AC_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
2dc8dd17
JW
676if 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
685fi
686
687AC_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
348ef89a 691if test x$ac_default_compressed_debug_sections = xyes ; then
6c3bc0f8
NC
692 AC_DEFINE(DEFAULT_FLAG_COMPRESS_DEBUG, 1, [Define if you want compressed debug sections by default.])
693fi
e12fe555 694
15886821
L
695# Turn on all targets if possible
696if 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 ;;
99ad8390
NC
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 ;;
15886821
L
724 esac
725fi
726
39871c07
AM
727# PE code has way too many macros tweaking behaviour
728case ${te_file} in
729 pe*) emulations="" ;;
730esac
731
252b5132
RH
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.
735case ${target_cpu} in
12e64c2c 736 vax | pdp11 ) atof=vax ;;
252b5132
RH
737 *) atof=ieee ;;
738esac
739
740case "${obj_format}" in
741 "") AC_MSG_ERROR(GAS does not know what format to use for target ${target}) ;;
742esac
743
744# Unfortunately the cpu in cpu-opc.h file isn't always $(TARGET_CPU).
745cgen_cpu_prefix=""
746if test $using_cgen = yes ; then
747 case ${target_cpu} in
73589c9d
CS
748 or1knd)
749 cgen_cpu_prefix=or1k ;;
252b5132
RH
750 *) cgen_cpu_prefix=${target_cpu} ;;
751 esac
752 AC_SUBST(cgen_cpu_prefix)
753 AC_DEFINE(USING_CGEN, 1, [Using cgen code?])
754fi
755
756dnl
757dnl Make sure the desired support files exist.
758dnl
759
760if test ! -r ${srcdir}/config/tc-${target_cpu_type}.c; then
761 AC_MSG_ERROR(GAS does not support target CPU ${target_cpu_type})
762fi
763
764if test ! -r ${srcdir}/config/obj-${obj_format}.c; then
765 AC_MSG_ERROR(GAS does not have support for object file format ${obj_format})
766fi
767
252b5132
RH
768# Some COFF configurations want these random other flags set.
769case ${obj_format} in
770 coff)
771 case ${target_cpu_type} in
772 i386) AC_DEFINE(I386COFF, 1, [Using i386 COFF?]) ;;
99ad8390 773 x86_64) AC_DEFINE(I386COFF, 1, [Using i386 COFF?]) ;;
252b5132
RH
774 esac
775 ;;
776esac
777
778# Getting this done right is going to be a bitch. Each configuration specified
7be1c489
AM
779# with --enable-targets=... should be checked for environment, format, cpu
780# setting.
252b5132
RH
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#
e8044f35 788# For now, just always do it for MIPS ELF configurations. Sigh.
252b5132
RH
789
790formats="${obj_format}"
791emfiles=""
792EMULATIONS=""
793GAS_UNIQ(emulations)
794for em in . $emulations ; do
795 case $em in
796 .) continue ;;
97238fbd 797 mipsbelf | mipslelf | mipself)
252b5132 798 fmt=elf file=mipself ;;
0aa5d426
HPN
799 *coff)
800 fmt=coff file=$em ;;
801 *aout)
802 fmt=aout file=$em ;;
803 *elf)
804 fmt=elf file=$em ;;
252b5132
RH
805 esac
806 formats="$formats $fmt"
d0ac1c44 807 emfiles="$emfiles config/e-$file.o"
252b5132
RH
808 EMULATIONS="$EMULATIONS &$em,"
809done
810GAS_UNIQ(formats)
811GAS_UNIQ(emfiles)
812if 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?]) ;;
252b5132
RH
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?]) ;;
252b5132 820 som) AC_DEFINE(OBJ_MAYBE_SOM, 1, [SOM support?]) ;;
252b5132 821 esac
d0ac1c44 822 extra_objects="$extra_objects config/obj-$fmt.o"
252b5132
RH
823 done
824 obj_format=multi
825fi
826if test `set . $emfiles ; shift ; echo $#` -gt 0 ; then
252b5132 827 DEFAULT_EMULATION=`set . $emulations ; echo $2`
e8044f35 828 # e-mipself has more than one emulation per file, e-i386* has just one at the
4ca72d38
AM
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
e8044f35 832 multi* | *mipself*)
4ca72d38
AM
833 extra_objects="$extra_objects $emfiles"
834 AC_DEFINE(USE_EMULATIONS, 1, [Use emulation support?]) ;;
835 esac
252b5132
RH
836fi
837AC_SUBST(extra_objects)
838AC_DEFINE_UNQUOTED(EMULATIONS, $EMULATIONS, [Supported emulations.])
839AC_DEFINE_UNQUOTED(DEFAULT_EMULATION, "$DEFAULT_EMULATION",
840 [Default emulation.])
841
252b5132
RH
842reject_dev_configs=yes
843
844case ${reject_dev_configs}-${dev} in
845 yes-yes) # Oops.
846 AC_MSG_ERROR(GAS does not support the ${generic_target} configuration.)
847 ;;
848esac
849
850AC_SUBST(target_cpu_type)
851AC_SUBST(obj_format)
852AC_SUBST(te_file)
853AC_SUBST(install_tooldir)
854AC_SUBST(atof)
855dnl AC_SUBST(emulation)
856
252b5132
RH
857# do we need the opcodes library?
858case "${need_opcodes}" in
859yes)
860 OPCODES_LIB=../opcodes/libopcodes.la
861 ;;
862esac
863
252b5132
RH
864AC_SUBST(OPCODES_LIB)
865
252b5132
RH
866AC_DEFINE_UNQUOTED(TARGET_ALIAS, "${target_alias}", [Target alias.])
867AC_DEFINE_UNQUOTED(TARGET_CANONICAL, "${target}", [Canonical target.])
868AC_DEFINE_UNQUOTED(TARGET_CPU, "${target_cpu}", [Target CPU.])
869AC_DEFINE_UNQUOTED(TARGET_VENDOR, "${target_vendor}", [Target vendor.])
870AC_DEFINE_UNQUOTED(TARGET_OS, "${target_os}", [Target OS.])
871
252b5132
RH
872AC_PROG_YACC
873AM_PROG_LEX
874
e184813f 875ALL_LINGUAS="es fi fr id ja ru rw sv tr uk zh_CN"
20e95c23
DJ
876ZW_GNU_GETTEXT_SISTER_DIR
877AM_PO_SUBDIRS
252b5132
RH
878
879AM_MAINTAINER_MODE
d5fbea21 880AM_CONDITIONAL(GENINSRC_NEVER, false)
252b5132
RH
881AC_EXEEXT
882
58797674 883AC_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)
208a4923 884ACX_HEADER_STRING
252b5132
RH
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.
888AC_MSG_CHECKING(whether compiling a cross-assembler)
889if test "${host}" = "${target}"; then
890 cross_gas=no
891else
892 cross_gas=yes
893 AC_DEFINE(CROSS_COMPILE, 1, [Compiling cross-assembler?])
894fi
895AC_MSG_RESULT($cross_gas)
896
897dnl ansidecl.h will deal with const
da594c4a 898dnl AC_C_CONST
252b5132
RH
899AC_FUNC_ALLOCA
900AC_C_INLINE
901
902# VMS doesn't have unlink.
903AC_CHECK_FUNCS(unlink remove, break)
4b0296ce 904AC_CHECK_FUNCS(sbrk setlocale)
1ec4b9f2 905AC_CHECK_FUNCS(strsignal)
252b5132 906
44350750
NC
907AM_LC_MESSAGES
908
39bec121
TW
909# do we need the math library?
910case "${need_libm}" in
12e64c2c 911yes)
da594c4a 912 LT_LIB_M
39bec121
TW
913 AC_SUBST(LIBM)
914 ;;
915esac
916
252b5132
RH
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!
920GAS_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.
925gas_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"
252b5132
RH
943
944# Does errno.h declare errno, or do we have to add a separate declaration
945# for it?
946GAS_CHECK_DECL_NEEDED(errno, f, int f, [
947#ifdef HAVE_ERRNO_H
948#include <errno.h>
949#endif
950])
951
56f36663
NC
952AC_MSG_CHECKING(for a known getopt prototype in unistd.h)
953AC_CACHE_VAL(gas_cv_decl_getopt_unistd_h,
da594c4a 954[AC_COMPILE_IFELSE([AC_LANG_PROGRAM([#include <unistd.h>], [extern int getopt (int, char *const*, const char *);])],
56f36663
NC
955gas_cv_decl_getopt_unistd_h=yes, gas_cv_decl_getopt_unistd_h=no)])
956AC_MSG_RESULT($gas_cv_decl_getopt_unistd_h)
957if 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?])
960fi
961
e8a38df5
AL
962GAS_CHECK_DECL_NEEDED(environ, f, char **f, $gas_test_headers)
963GAS_CHECK_DECL_NEEDED(ffs, f, int (*f)(int), $gas_test_headers)
964GAS_CHECK_DECL_NEEDED(free, f, void (*f)(), $gas_test_headers)
965GAS_CHECK_DECL_NEEDED(malloc, f, char *(*f)(), $gas_test_headers)
966GAS_CHECK_DECL_NEEDED(sbrk, f, char *(*f)(), $gas_test_headers)
967GAS_CHECK_DECL_NEEDED(strstr, f, char *(*f)(), $gas_test_headers)
968
2a7f4fa9 969AC_CHECK_DECLS([free, getenv, malloc, mempcpy, realloc, stpcpy, strstr, vsnprintf, asprintf])
6d74f28b 970
c973bc5c
NC
971BFD_BINARY_FOPEN
972
543b7933
L
973# Link in zlib if we can. This allows us to write compressed debug sections.
974AM_ZLIB
0acf065b 975
b11d79f2
TG
976# Support for VMS timestamps via cross compile
977
978if test "$ac_cv_header_time_h" = yes; then
979 GAS_HAVE_TIME_TYPE_MEMBER(struct tm, tm_gmtoff)
980fi
981
982if 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)
985fi
986
987
31dd3154 988dnl Required for html, pdf, install-pdf and install-html targets.
108a6f8e
CD
989AC_SUBST(datarootdir)
990AC_SUBST(docdir)
991AC_SUBST(htmldir)
31dd3154 992AC_SUBST(pdfdir)
108a6f8e 993
252b5132
RH
994dnl This must come last.
995
996dnl We used to make symlinks to files in the source directory, but now
997dnl we just use the right name for .c files, and create .h files in
998dnl the build directory which include the right .h file. Make sure
999dnl the old symlinks don't exist, so that a reconfigure in an existing
1000dnl directory behaves reasonably.
1001
13b2be9c
DJ
1002AC_CONFIG_FILES(Makefile doc/Makefile po/Makefile.in:po/Make-in)
1003AC_CONFIG_COMMANDS([default],
252b5132
RH
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
20e95c23 1011 fi],
252b5132
RH
1012[target_cpu_type=${target_cpu_type}
1013 cgen_cpu_prefix=${cgen_cpu_prefix}
1014 obj_format=${obj_format}
1015 te_file=${te_file}])
13b2be9c
DJ
1016
1017AC_OUTPUT
This page took 0.942955 seconds and 4 git commands to generate.