]> git.ipfire.org Git - thirdparty/binutils-gdb.git/blame - gas/configure.ac
Bump to autoconf 2.69 and automake 1.15.1
[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
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)
392 echo ${extra_objects} | grep -s "bfin-parse.o"
393 if test $? -ne 0 ; then
394 extra_objects="$extra_objects bfin-parse.o"
395 fi
396
df7b86aa 397 echo ${extra_objects} | grep -s "bfin-lex-wrapper.o"
07c1b327 398 if test $? -ne 0 ; then
df7b86aa 399 extra_objects="$extra_objects bfin-lex-wrapper.o"
07c1b327
CM
400 fi
401 ;;
402
73589c9d 403 epiphany | fr30 | ip2k | iq2000 | lm32 | m32r | or1k)
252b5132
RH
404 using_cgen=yes
405 ;;
406
49f58d10
JB
407 m32c)
408 using_cgen=yes
409 ;;
0ebb9a87
DB
410 frv)
411 using_cgen=yes
412 ;;
252b5132
RH
413 m68k)
414 case ${extra_objects} in
415 *m68k-parse.o*) ;;
416 *) extra_objects="$extra_objects m68k-parse.o" ;;
417 esac
418 ;;
419
280d71bf
DB
420 mep)
421 using_cgen=yes
422 ;;
423
252b5132 424 mips)
12e64c2c 425 echo ${extra_objects} | grep -s "itbl-parse.o"
252b5132
RH
426 if test $? -ne 0 ; then
427 extra_objects="$extra_objects itbl-parse.o"
428 fi
429
df7b86aa 430 echo ${extra_objects} | grep -s "itbl-lex-wrapper.o"
252b5132 431 if test $? -ne 0 ; then
df7b86aa 432 extra_objects="$extra_objects itbl-lex-wrapper.o"
252b5132
RH
433 fi
434
12e64c2c 435 echo ${extra_objects} | grep -s "itbl-ops.o"
252b5132
RH
436 if test $? -ne 0 ; then
437 extra_objects="$extra_objects itbl-ops.o"
438 fi
439 ;;
440
4970f871 441 mt)
047af9ef
AH
442 using_cgen=yes
443 ;;
444
35c08157
KLC
445 nds32)
446 # Decide BASELINE, REDUCED_REGS, FPU_DP_EXT, FPU_SP_EXT features
447 # based on arch_name.
448 AC_MSG_CHECKING(for default configuration of --with-arch)
449 if test "x${with_arch}" != x; then
450 case ${with_arch} in
451 v2j | v2s | v2f | v2 | v3m | v3j | v3s | v3f | v3 )
452 AC_DEFINE_UNQUOTED(NDS32_DEFAULT_ARCH_NAME, "$with_arch",
453 [Define value for nds32_arch_name])
454 ;;
455 *)
456 AC_MSG_ERROR(This kind of arch name does *NOT* exist!)
457 ;;
458 esac
459 fi
460 AC_MSG_RESULT($with_arch)
461
462 # Decide features one by one.
463 AC_MSG_CHECKING(for default configuration of --enable-dx-regs)
6cd8405e 464 if test "x${enable_dx_regs}" = xyes; then
35c08157
KLC
465 AC_DEFINE(NDS32_DEFAULT_DX_REGS, 1,
466 [Define value for nds32_dx_regs])
467 else
468 AC_DEFINE(NDS32_DEFAULT_DX_REGS, 0,
469 [Define default value for nds32_dx_regs])
470 fi
471 AC_MSG_RESULT($enable_dx_regs)
472
473 AC_MSG_CHECKING(for default configuration of --enable-perf-ext)
6cd8405e 474 if test "x${enable_perf_ext}" = xno; then
35c08157
KLC
475 AC_DEFINE(NDS32_DEFAULT_PERF_EXT, 0,
476 [Define value for nds32_perf_ext])
477 else
478 AC_DEFINE(NDS32_DEFAULT_PERF_EXT, 1,
479 [Define default value for nds32_perf_ext])
480 fi
481 AC_MSG_RESULT($enable_perf_ext)
482
483 AC_MSG_CHECKING(for default configuration of --enable-perf-ext2)
6cd8405e 484 if test "x${enable_perf_ext2}" = xno; then
35c08157
KLC
485 AC_DEFINE(NDS32_DEFAULT_PERF_EXT2, 0,
486 [Define value for nds32_perf_ext2])
487 else
488 AC_DEFINE(NDS32_DEFAULT_PERF_EXT2, 1,
489 [Define default value for nds32_perf_ext2])
490 fi
491 AC_MSG_RESULT($enable_perf_ext2)
492
493 AC_MSG_CHECKING(for default configuration of --enable-string-ext)
6cd8405e 494 if test "x${enable_string_ext}" = xno; then
35c08157
KLC
495 AC_DEFINE(NDS32_DEFAULT_STRING_EXT, 0,
496 [Define value for nds32_string_ext])
497 else
498 AC_DEFINE(NDS32_DEFAULT_STRING_EXT, 1,
499 [Define default value for nds32_string_ext])
500 fi
501 AC_MSG_RESULT($enable_string_ext)
502
503 AC_MSG_CHECKING(for default configuration of --enable-audio-ext)
6cd8405e 504 if test "x${enable_audio_ext}" = xno; then
35c08157
KLC
505 AC_DEFINE(NDS32_DEFAULT_AUDIO_EXT, 0,
506 [Define value for nds32_audio_ext])
507 else
508 AC_DEFINE(NDS32_DEFAULT_AUDIO_EXT, 1,
509 [Define default value for nds32_audio_ext])
510 fi
511 AC_MSG_RESULT($enable_audio_ext)
512 ;;
513
3c0367d0 514 aarch64 | i386 | riscv | s390 | sparc)
252b5132
RH
515 if test $this_target = $target ; then
516 AC_DEFINE_UNQUOTED(DEFAULT_ARCH, "${arch}", [Default architecture.])
517 fi
518 ;;
93fbbb04 519
99c513f6
DD
520 rl78)
521 echo ${extra_objects} | grep -s "rl78-parse.o"
522 if test $? -ne 0 ; then
523 extra_objects="$extra_objects rl78-parse.o"
524 fi
525 ;;
526
c7927a3c
NC
527 rx)
528 echo ${extra_objects} | grep -s "rx-parse.o"
529 if test $? -ne 0 ; then
530 extra_objects="$extra_objects rx-parse.o"
531 fi
532 ;;
533
93fbbb04
GK
534 xstormy16)
535 using_cgen=yes
536 ;;
537
d70c5fc7
NC
538 xc16x)
539 using_cgen=yes
540 ;;
541
e0001a05
NC
542 xtensa)
543 echo ${extra_objects} | grep -s "xtensa-relax.o"
544 if test $? -ne 0 ; then
545 extra_objects="$extra_objects xtensa-relax.o"
546 fi
547 ;;
548
252b5132
RH
549 *)
550 ;;
551 esac
552
553 if test $using_cgen = yes ; then
554 case "x${extra_objects}" in
555 *cgen.o*) ;;
556 *) extra_objects="$extra_objects cgen.o" ;;
557 esac
558 fi
559
560# See if we really can support this configuration with the emulation code.
561
562 if test $this_target = $target ; then
252b5132
RH
563 obj_format=$fmt
564 te_file=$em
252b5132
RH
565 fi
566
b11d79f2
TG
567 case ${te_file} in
568 vms) extra_objects="$extra_objects te-vms.o" ;;
569 esac
58797674 570
252b5132
RH
571# From target name and format, produce a list of supported emulations.
572
573 case ${generic_target}-${fmt} in
e8044f35 574 mips-*-*-*) case "$endian" in
252b5132
RH
575 big) emulation="mipsbelf mipslelf mipself" ;;
576 *) emulation="mipslelf mipsbelf mipself" ;;
252b5132 577 esac ;;
119caedd
L
578 # i386-pc-pe-coff != i386-pc-coff.
579 i386-*-pe-coff) ;;
4c63da97
AM
580 # Uncommenting the next line will turn on support for i386 AOUT
581 # for the default linux configuration
582 # i386-*-linux*-elf) emulation="i386elf i386aout" ;;
583 #
584 i386-*-aout) emulation="i386aout" ;;
4ca72d38 585 i386-*-coff) emulation="i386coff" ;;
4c63da97 586 i386-*-elf) emulation="i386elf" ;;
3bcbcc3d 587
f9c19112
HPN
588 # Always all formats. The first stated emulation becomes the default.
589 cris-*-*aout*) emulation="crisaout criself" ;;
590 cris-*-*) emulation="criself crisaout" ;;
252b5132
RH
591 esac
592
593 emulations="$emulations $emulation"
594
595done
596
0cb4071e
L
597if test ${ac_default_x86_relax_relocations} = unset; then
598 ac_default_x86_relax_relocations=1
599fi
600AC_DEFINE_UNQUOTED(DEFAULT_GENERATE_X86_RELAX_RELOCATIONS,
601 $ac_default_x86_relax_relocations,
602 [Define to 1 if you want to generate x86 relax relocations by default.])
603
b8871f35
L
604if test ${ac_default_elf_stt_common} = unset; then
605 ac_default_elf_stt_common=0
606fi
607AC_DEFINE_UNQUOTED(DEFAULT_GENERATE_ELF_STT_COMMON,
608 $ac_default_elf_stt_common,
609 [Define to 1 if you want to generate ELF common symbols with the
610 STT_COMMON type by default.])
611
0df8ad28
NC
612AC_DEFINE_UNQUOTED(DEFAULT_GENERATE_BUILD_NOTES,
613 $ac_default_generate_build_notes,
614 [Define to 1 if you want to generate GNU Build attribute notes
615 by default, if none are contained in the input.])
616
348ef89a 617if test x$ac_default_compressed_debug_sections = xyes ; then
6c3bc0f8
NC
618 AC_DEFINE(DEFAULT_FLAG_COMPRESS_DEBUG, 1, [Define if you want compressed debug sections by default.])
619fi
e12fe555 620
15886821
L
621# Turn on all targets if possible
622if test ${all_targets} = "yes"; then
623 case ${target_cpu_type} in
624 i386)
625 case ${obj_format} in
626 aout)
627 emulations="$emulations i386coff i386elf"
628 ;;
629 coff)
630 emulations="$emulations i386aout i386elf"
631 ;;
632 elf)
633 emulations="$emulations i386aout i386coff"
634 ;;
635 esac
636 ;;
99ad8390
NC
637 x86_64)
638 case ${obj_format} in
639 aout)
640 emulations="$emulations i386coff i386elf"
641 ;;
642 coff)
643 emulations="$emulations i386aout i386elf"
644 ;;
645 elf)
646 emulations="$emulations i386aout i386coff"
647 ;;
648 esac
649 ;;
15886821
L
650 esac
651fi
652
39871c07
AM
653# PE code has way too many macros tweaking behaviour
654case ${te_file} in
655 pe*) emulations="" ;;
656esac
657
252b5132
RH
658# Assign floating point type. Most processors with FP support
659# IEEE FP. On those that don't support FP at all, usually IEEE
660# is emulated.
661case ${target_cpu} in
12e64c2c 662 vax | pdp11 ) atof=vax ;;
252b5132
RH
663 *) atof=ieee ;;
664esac
665
666case "${obj_format}" in
667 "") AC_MSG_ERROR(GAS does not know what format to use for target ${target}) ;;
668esac
669
670# Unfortunately the cpu in cpu-opc.h file isn't always $(TARGET_CPU).
671cgen_cpu_prefix=""
672if test $using_cgen = yes ; then
673 case ${target_cpu} in
73589c9d
CS
674 or1knd)
675 cgen_cpu_prefix=or1k ;;
252b5132
RH
676 *) cgen_cpu_prefix=${target_cpu} ;;
677 esac
678 AC_SUBST(cgen_cpu_prefix)
679 AC_DEFINE(USING_CGEN, 1, [Using cgen code?])
680fi
681
682dnl
683dnl Make sure the desired support files exist.
684dnl
685
686if test ! -r ${srcdir}/config/tc-${target_cpu_type}.c; then
687 AC_MSG_ERROR(GAS does not support target CPU ${target_cpu_type})
688fi
689
690if test ! -r ${srcdir}/config/obj-${obj_format}.c; then
691 AC_MSG_ERROR(GAS does not have support for object file format ${obj_format})
692fi
693
252b5132
RH
694# Some COFF configurations want these random other flags set.
695case ${obj_format} in
696 coff)
697 case ${target_cpu_type} in
698 i386) AC_DEFINE(I386COFF, 1, [Using i386 COFF?]) ;;
99ad8390 699 x86_64) AC_DEFINE(I386COFF, 1, [Using i386 COFF?]) ;;
252b5132
RH
700 esac
701 ;;
702esac
703
704# Getting this done right is going to be a bitch. Each configuration specified
7be1c489
AM
705# with --enable-targets=... should be checked for environment, format, cpu
706# setting.
252b5132
RH
707#
708# For each configuration, the necessary object file support code must be linked
709# in. This might be only one, it might be up to four. The necessary emulation
710# code needs to be provided, too.
711#
712# And then there's "--enable-targets=all"....
713#
e8044f35 714# For now, just always do it for MIPS ELF configurations. Sigh.
252b5132
RH
715
716formats="${obj_format}"
717emfiles=""
718EMULATIONS=""
719GAS_UNIQ(emulations)
720for em in . $emulations ; do
721 case $em in
722 .) continue ;;
97238fbd 723 mipsbelf | mipslelf | mipself)
252b5132 724 fmt=elf file=mipself ;;
0aa5d426
HPN
725 *coff)
726 fmt=coff file=$em ;;
727 *aout)
728 fmt=aout file=$em ;;
729 *elf)
730 fmt=elf file=$em ;;
252b5132
RH
731 esac
732 formats="$formats $fmt"
d0ac1c44 733 emfiles="$emfiles config/e-$file.o"
252b5132
RH
734 EMULATIONS="$EMULATIONS &$em,"
735done
736GAS_UNIQ(formats)
737GAS_UNIQ(emfiles)
738if test `set . $formats ; shift ; echo $#` -gt 1 ; then
739 for fmt in $formats ; do
740 case $fmt in
741 aout) AC_DEFINE(OBJ_MAYBE_AOUT, 1, [a.out support?]) ;;
252b5132
RH
742 coff) AC_DEFINE(OBJ_MAYBE_COFF, 1, [COFF support?]) ;;
743 ecoff) AC_DEFINE(OBJ_MAYBE_ECOFF, 1, [ECOFF support?]) ;;
744 elf) AC_DEFINE(OBJ_MAYBE_ELF, 1, [ELF support?]) ;;
745 generic) AC_DEFINE(OBJ_MAYBE_GENERIC, 1, [generic support?]) ;;
252b5132 746 som) AC_DEFINE(OBJ_MAYBE_SOM, 1, [SOM support?]) ;;
252b5132 747 esac
d0ac1c44 748 extra_objects="$extra_objects config/obj-$fmt.o"
252b5132
RH
749 done
750 obj_format=multi
751fi
752if test `set . $emfiles ; shift ; echo $#` -gt 0 ; then
252b5132 753 DEFAULT_EMULATION=`set . $emulations ; echo $2`
e8044f35 754 # e-mipself has more than one emulation per file, e-i386* has just one at the
4ca72d38
AM
755 # moment. If only one emulation is specified, then don't define
756 # USE_EMULATIONS or include any of the e-files as they will only be bloat.
757 case "${obj_format}${emfiles}" in
e8044f35 758 multi* | *mipself*)
4ca72d38
AM
759 extra_objects="$extra_objects $emfiles"
760 AC_DEFINE(USE_EMULATIONS, 1, [Use emulation support?]) ;;
761 esac
252b5132
RH
762fi
763AC_SUBST(extra_objects)
764AC_DEFINE_UNQUOTED(EMULATIONS, $EMULATIONS, [Supported emulations.])
765AC_DEFINE_UNQUOTED(DEFAULT_EMULATION, "$DEFAULT_EMULATION",
766 [Default emulation.])
767
252b5132
RH
768reject_dev_configs=yes
769
770case ${reject_dev_configs}-${dev} in
771 yes-yes) # Oops.
772 AC_MSG_ERROR(GAS does not support the ${generic_target} configuration.)
773 ;;
774esac
775
776AC_SUBST(target_cpu_type)
777AC_SUBST(obj_format)
778AC_SUBST(te_file)
779AC_SUBST(install_tooldir)
780AC_SUBST(atof)
781dnl AC_SUBST(emulation)
782
252b5132
RH
783# do we need the opcodes library?
784case "${need_opcodes}" in
785yes)
786 OPCODES_LIB=../opcodes/libopcodes.la
787 ;;
788esac
789
252b5132
RH
790AC_SUBST(OPCODES_LIB)
791
252b5132
RH
792AC_DEFINE_UNQUOTED(TARGET_ALIAS, "${target_alias}", [Target alias.])
793AC_DEFINE_UNQUOTED(TARGET_CANONICAL, "${target}", [Canonical target.])
794AC_DEFINE_UNQUOTED(TARGET_CPU, "${target_cpu}", [Target CPU.])
795AC_DEFINE_UNQUOTED(TARGET_VENDOR, "${target_vendor}", [Target vendor.])
796AC_DEFINE_UNQUOTED(TARGET_OS, "${target_os}", [Target OS.])
797
252b5132
RH
798AC_PROG_YACC
799AM_PROG_LEX
800
e184813f 801ALL_LINGUAS="es fi fr id ja ru rw sv tr uk zh_CN"
20e95c23
DJ
802ZW_GNU_GETTEXT_SISTER_DIR
803AM_PO_SUBDIRS
252b5132
RH
804
805AM_MAINTAINER_MODE
d5fbea21 806AM_CONDITIONAL(GENINSRC_NEVER, false)
252b5132
RH
807AC_EXEEXT
808
58797674 809AC_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 810ACX_HEADER_STRING
252b5132
RH
811
812# Put this here so that autoconf's "cross-compiling" message doesn't confuse
813# people who are not cross-compiling but are compiling cross-assemblers.
814AC_MSG_CHECKING(whether compiling a cross-assembler)
815if test "${host}" = "${target}"; then
816 cross_gas=no
817else
818 cross_gas=yes
819 AC_DEFINE(CROSS_COMPILE, 1, [Compiling cross-assembler?])
820fi
821AC_MSG_RESULT($cross_gas)
822
823dnl ansidecl.h will deal with const
da594c4a 824dnl AC_C_CONST
252b5132
RH
825AC_FUNC_ALLOCA
826AC_C_INLINE
827
828# VMS doesn't have unlink.
829AC_CHECK_FUNCS(unlink remove, break)
4b0296ce 830AC_CHECK_FUNCS(sbrk setlocale)
1ec4b9f2 831AC_CHECK_FUNCS(strsignal)
252b5132 832
44350750
NC
833AM_LC_MESSAGES
834
39bec121
TW
835# do we need the math library?
836case "${need_libm}" in
12e64c2c 837yes)
da594c4a 838 LT_LIB_M
39bec121
TW
839 AC_SUBST(LIBM)
840 ;;
841esac
842
252b5132
RH
843# Some non-ANSI preprocessors botch requoting inside strings. That's bad
844# enough, but on some of those systems, the assert macro relies on requoting
845# working properly!
846GAS_WORKING_ASSERT
847
848# On some systems, the system header files may not declare malloc, realloc,
849# and free. There are places where gas needs these functions to have been
850# declared -- such as when taking their addresses.
851gas_test_headers="
852#ifdef HAVE_MEMORY_H
853#include <memory.h>
854#endif
855#ifdef HAVE_STRING_H
856#include <string.h>
857#else
858#ifdef HAVE_STRINGS_H
859#include <strings.h>
860#endif
861#endif
862#ifdef HAVE_STDLIB_H
863#include <stdlib.h>
864#endif
865#ifdef HAVE_UNISTD_H
866#include <unistd.h>
867#endif
868"
252b5132
RH
869
870# Does errno.h declare errno, or do we have to add a separate declaration
871# for it?
872GAS_CHECK_DECL_NEEDED(errno, f, int f, [
873#ifdef HAVE_ERRNO_H
874#include <errno.h>
875#endif
876])
877
56f36663
NC
878AC_MSG_CHECKING(for a known getopt prototype in unistd.h)
879AC_CACHE_VAL(gas_cv_decl_getopt_unistd_h,
da594c4a 880[AC_COMPILE_IFELSE([AC_LANG_PROGRAM([#include <unistd.h>], [extern int getopt (int, char *const*, const char *);])],
56f36663
NC
881gas_cv_decl_getopt_unistd_h=yes, gas_cv_decl_getopt_unistd_h=no)])
882AC_MSG_RESULT($gas_cv_decl_getopt_unistd_h)
883if test $gas_cv_decl_getopt_unistd_h = yes; then
884 AC_DEFINE([HAVE_DECL_GETOPT], 1,
885 [Is the prototype for getopt in <unistd.h> in the expected format?])
886fi
887
e8a38df5
AL
888GAS_CHECK_DECL_NEEDED(environ, f, char **f, $gas_test_headers)
889GAS_CHECK_DECL_NEEDED(ffs, f, int (*f)(int), $gas_test_headers)
890GAS_CHECK_DECL_NEEDED(free, f, void (*f)(), $gas_test_headers)
891GAS_CHECK_DECL_NEEDED(malloc, f, char *(*f)(), $gas_test_headers)
892GAS_CHECK_DECL_NEEDED(sbrk, f, char *(*f)(), $gas_test_headers)
893GAS_CHECK_DECL_NEEDED(strstr, f, char *(*f)(), $gas_test_headers)
894
2a7f4fa9 895AC_CHECK_DECLS([free, getenv, malloc, mempcpy, realloc, stpcpy, strstr, vsnprintf, asprintf])
6d74f28b 896
c973bc5c
NC
897BFD_BINARY_FOPEN
898
543b7933
L
899# Link in zlib if we can. This allows us to write compressed debug sections.
900AM_ZLIB
0acf065b 901
b11d79f2
TG
902# Support for VMS timestamps via cross compile
903
904if test "$ac_cv_header_time_h" = yes; then
905 GAS_HAVE_TIME_TYPE_MEMBER(struct tm, tm_gmtoff)
906fi
907
908if test "$ac_cv_header_sys_stat_h" = yes; then
909 GAS_HAVE_SYS_STAT_TYPE_MEMBER(struct stat, st_mtim, tv_sec)
910 GAS_HAVE_SYS_STAT_TYPE_MEMBER(struct stat, st_mtim, tv_nsec)
911fi
912
913
31dd3154 914dnl Required for html, pdf, install-pdf and install-html targets.
108a6f8e
CD
915AC_SUBST(datarootdir)
916AC_SUBST(docdir)
917AC_SUBST(htmldir)
31dd3154 918AC_SUBST(pdfdir)
108a6f8e 919
252b5132
RH
920dnl This must come last.
921
922dnl We used to make symlinks to files in the source directory, but now
923dnl we just use the right name for .c files, and create .h files in
924dnl the build directory which include the right .h file. Make sure
925dnl the old symlinks don't exist, so that a reconfigure in an existing
926dnl directory behaves reasonably.
927
13b2be9c
DJ
928AC_CONFIG_FILES(Makefile doc/Makefile po/Makefile.in:po/Make-in)
929AC_CONFIG_COMMANDS([default],
252b5132
RH
930[rm -f targ-cpu.c targ-cpu.h obj-format.h obj-format.c targ-env.h atof-targ.c itbl-cpu.h
931 echo '#include "tc-'"${target_cpu_type}"'.h"' > targ-cpu.h
932 echo '#include "obj-'"${obj_format}"'.h"' > obj-format.h
933 echo '#include "te-'"${te_file}"'.h"' > targ-env.h
934 echo '#include "itbl-'"${target_cpu_type}"'.h"' > itbl-cpu.h
935 if test "x$cgen_cpu_prefix" != x ; then
936 echo '#include "opcodes/'"${cgen_cpu_prefix}"'-desc.h"' > cgen-desc.h
20e95c23 937 fi],
252b5132
RH
938[target_cpu_type=${target_cpu_type}
939 cgen_cpu_prefix=${cgen_cpu_prefix}
940 obj_format=${obj_format}
941 te_file=${te_file}])
13b2be9c
DJ
942
943AC_OUTPUT