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