]> git.ipfire.org Git - thirdparty/binutils-gdb.git/blame - gas/configure.ac
binutils/testsuite: Also consider `*-*-lynxos*' and `*-*-symbianelf*' ELF
[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
da594c4a 23AC_PREREQ(2.59)
2e98a7bd
AM
24m4_include([../bfd/version.m4])
25AC_INIT([gas], BFD_VERSION)
da594c4a 26AC_CONFIG_SRCDIR(as.h)
252b5132 27
13b2be9c
DJ
28dnl Autoconf 2.57 will find the aux dir without this. However, unless
29dnl we specify this explicitly, automake-1.7 will assume that ylwrap is in
30dnl gas/ instead of gas/../.
31AC_CONFIG_AUX_DIR(..)
da594c4a 32AC_CANONICAL_TARGET
5d64ca4e 33AC_ISC_POSIX
252b5132 34
2e98a7bd 35AM_INIT_AUTOMAKE
252b5132 36
ce2cded5
L
37AC_PROG_CC
38AC_GNU_SOURCE
7357c5b6 39AC_USE_SYSTEM_EXTENSIONS
ce2cded5 40
da594c4a 41LT_INIT
b879806f 42ACX_LARGEFILE
2d7f2507 43ACX_PROG_CMP_IGNORE_INITIAL
252b5132 44
252b5132 45AC_ARG_ENABLE(targets,
241a6c40 46[ --enable-targets alternative target configurations besides the primary],
252b5132 47[case "${enableval}" in
da594c4a 48 yes | "") AC_MSG_ERROR(enable-targets option must specify target names or 'all')
252b5132
RH
49 ;;
50 no) enable_targets= ;;
51 *) enable_targets=$enableval ;;
52esac])dnl
c43a438d 53
c43a438d
AM
54ac_checking=yes
55if grep '^RELEASE=y' ${srcdir}/../bfd/Makefile.am >/dev/null 2>/dev/null ; then
56 ac_checking=
57fi
58AC_ARG_ENABLE(checking,
59[ --enable-checking enable run-time checks],
60[case "${enableval}" in
61 no|none) ac_checking= ;;
62 *) ac_checking=yes ;;
63esac])dnl
64if test x$ac_checking != x ; then
65 AC_DEFINE(ENABLE_CHECKING, 1, [Define if you want run-time sanity checks.])
66fi
67
6c3bc0f8
NC
68# PR gas/19109
69# Decide the default method for compressing debug sections.
70ac_default_compressed_debug_sections=unset
71# Provide a configure time option to override our default.
72AC_ARG_ENABLE(compressed_debug_sections,
4894d80b 73 AS_HELP_STRING([--enable-compressed-debug-sections={all,gas,none}],
27ba7c94 74 [compress debug sections by default]),
4894d80b 75[case ,"${enableval}", in
9b4c123c 76 ,yes, | ,all, | *,gas,*) ac_default_compressed_debug_sections=yes ;;
4894d80b 77 ,no, | ,none,) ac_default_compressed_debug_sections=no ;;
6c3bc0f8
NC
78 *) ac_default_compressed_debug_sections=unset ;;
79esac])dnl
80
0cb4071e
L
81# PR gas/19520
82# Decide if x86 assembler should generate relax relocations.
83ac_default_x86_relax_relocations=unset
84# Provide a configure time option to override our default.
85AC_ARG_ENABLE(x86_relax_relocations,
86 AS_HELP_STRING([--enable-x86-relax-relocations],
87 [generate x86 relax relocations by default]),
88[case "${enableval}" in
89 no) ac_default_x86_relax_relocations=0 ;;
90esac])dnl
91
b8871f35
L
92# Decide if ELF assembler should generate common symbols with the
93# STT_COMMON type.
94ac_default_elf_stt_common=unset
95# Provide a configure time option to override our default.
96AC_ARG_ENABLE(elf_stt_common,
97 AS_HELP_STRING([--enable-elf-stt-common],
98 [generate ELF common symbols with STT_COMMON type by default]),
99[case "${enableval}" in
100 yes) ac_default_elf_stt_common=1 ;;
101esac])dnl
102
252b5132
RH
103using_cgen=no
104
9e9b66a9 105AM_BINUTILS_WARNINGS
a2d91340 106
252b5132 107# Generate a header file
da594c4a 108AC_CONFIG_HEADERS(config.h:config.in)
252b5132 109
9004b6bd
AB
110dnl Option --with-cpu=TYPE allows configure type control of the default
111dnl cpu type within the assembler. Currently only the ARC target
112dnl supports this feature, but others may be added in the future.
113AC_ARG_WITH(cpu,
114 AS_HELP_STRING([--with-cpu=CPU],
115 [default cpu variant is CPU (currently only supported on ARC)]),
116 [AC_DEFINE_UNQUOTED(TARGET_WITH_CPU,
117 "${with_cpu}",
118 [Target specific CPU.])],
119 [])
120
df7b86aa
NC
121# PR 14072
122AH_VERBATIM([00_CONFIG_H_CHECK],
123[/* Check that config.h is #included before system headers
124 (this works only for glibc, but that should be enough). */
d17dce55 125#if defined(__GLIBC__) && !defined(__FreeBSD_kernel__) && !defined(__CONFIG_H__)
df7b86aa
NC
126# error config.h must be #included before system headers
127#endif
128#define __CONFIG_H__ 1])
129
76a27922
ILT
130# If we are on a DOS filesystem, we must use gdb.ini rather than
131# .gdbinit.
76a27922 132case "${host}" in
591d4689 133 *-*-msdos* | *-*-go32* | *-*-mingw32* | *-*-windows*)
76a27922 134 GDBINIT="gdb.ini"
13b2be9c
DJ
135 AC_CONFIG_FILES(gdb.ini:gdbinit.in)
136 ;;
137 *)
138 GDBINIT=".gdbinit"
139 AC_CONFIG_FILES(.gdbinit:gdbinit.in)
76a27922
ILT
140 ;;
141esac
142AC_SUBST(GDBINIT)
143
44f2f9d2
AM
144#We need this for the host. BOUT header is in host order.
145AC_C_BIGENDIAN
146
252b5132
RH
147te_file=generic
148
149# Makefile target for installing gas in $(tooldir)/bin.
150install_tooldir=install-exec-tooldir
151
152canon_targets=""
15886821 153all_targets=no
252b5132
RH
154if test -n "$enable_targets" ; then
155 for t in `echo $enable_targets | sed 's/,/ /g'`; do
15886821
L
156 if test $t = "all"; then
157 all_targets=yes
158 continue
159 fi
6d83c84b 160 result=`$ac_config_sub $t 2>/dev/null`
252b5132
RH
161 if test -n "$result" ; then
162 canon_targets="$canon_targets $result"
163# else
164# # Permit "all", etc. We don't support it yet though.
165# canon_targets="$canon_targets $t"
166 fi
167 done
168 GAS_UNIQ(canon_targets)
169fi
170
171emulations=""
172
173for this_target in $target $canon_targets ; do
174
14ee9f48
ILT
175 targ=${this_target}
176 . ${srcdir}/configure.tgt
177
178 case ${target_cpu} in
179 crisv32)
180 AC_DEFINE_UNQUOTED(DEFAULT_CRIS_ARCH, $arch,
181 [Default CRIS architecture.])
182 ;;
252b5132
RH
183 esac
184
185 if test ${this_target} = $target ; then
186 target_cpu_type=${cpu_type}
187 elif test ${target_cpu_type} != ${cpu_type} ; then
188 continue
189 fi
190
14ee9f48 191 generic_target=${cpu_type}-${target_vendor}-${target_os}
252b5132 192 case ${generic_target} in
14ee9f48
ILT
193 i386-*-sco3.2v5*)
194 if test ${this_target} = $target; then
195 AC_DEFINE(SCO_ELF, 1, [Define if defaulting to ELF on SCO 5.])
196 fi
197 ;;
1fe1f39c 198
79500683
AM
199 i386-*-msdosdjgpp* \
200 | i386-*-go32* \
14ee9f48
ILT
201 | i386-go32-rtems*)
202 AC_DEFINE(STRICTCOFF, 1, [Using strict COFF?])
203 ;;
79500683 204
0cb4071e
L
205 i386-*-solaris2 \
206 | x86_64-*-solaris2 \
207 | i386-*-solaris2.[[0-9]] \
208 | i386-*-solaris2.1[[01]] \
209 | x86_64-*-solaris2.1[[01]])
210 if test ${this_target} = $target \
211 && test ${ac_default_x86_relax_relocations} = unset; then
212 ac_default_x86_relax_relocations=0
213 fi
214 ;;
215
14ee9f48
ILT
216 i860-*-*)
217 AC_MSG_WARN(GAS support for ${generic_target} is preliminary and a work in progress)
218 ;;
79500683 219
7ba29e2a
NC
220 microblaze*)
221 ;;
222
e5231592
RS
223changequote(,)dnl
224 ppc-*-aix[5-9].*)
225changequote([,])dnl
14ee9f48 226 AC_DEFINE(AIX_WEAK_SUPPORT, 1,
f8fc3443 227 [Define if using AIX 5.2 value for C_WEAKEXT.])
14ee9f48 228 ;;
14ee9f48
ILT
229 ppc-*-solaris*)
230 if test ${this_target} = $target; then
231 AC_DEFINE(TARGET_SOLARIS_COMMENT, 1,
232 [Define if default target is PowerPC Solaris.])
233 fi
234 if test x${endian} = xbig; then
235 AC_MSG_ERROR(Solaris must be configured little endian)
236 fi
237 ;;
238
239 sh*-*-symbianelf*)
240 AC_DEFINE(TARGET_SYMBIAN, 1, [Define if target is Symbian OS.])
241 ;;
252b5132
RH
242 esac
243
244 if test ${this_target} = $target ; then
245 endian_def=
246 if test x${endian} = xbig; then
247 endian_def=1
248 elif test x${endian} = xlittle; then
249 endian_def=0
250 fi
251 if test x${endian_def} != x; then
252 AC_DEFINE_UNQUOTED(TARGET_BYTES_BIG_ENDIAN, $endian_def,
253 [Define as 1 if big endian.])
254 fi
255 fi
256
252b5132
RH
257# Other random stuff.
258
316f5878
RS
259 case ${cpu_type} in
260 mips)
261 # Set mips_cpu to the name of the default CPU.
262 case ${target_cpu} in
263 mips | mipsbe | mipseb | mipsle | mipsel | mips64 | mips64el)
264 mips_cpu=from-abi
265 ;;
266 mipsisa32 | mipsisa32el)
267 mips_cpu=mips32
268 ;;
af7ee8bf
CD
269 mipsisa32r2 | mipsisa32r2el)
270 mips_cpu=mips32r2
271 ;;
ae52f483
AB
272 mipsisa32r3 | mipsisa32r3el)
273 mips_cpu=mips32r3
274 ;;
275 mipsisa32r5 | mipsisa32r5el)
276 mips_cpu=mips32r5
277 ;;
7361da2c
AB
278 mipsisa32r6 | mipsisa32r6el)
279 mips_cpu=mips32r6
280 ;;
316f5878
RS
281 mipsisa64 | mipsisa64el)
282 mips_cpu=mips64
283 ;;
5f74bc13
CD
284 mipsisa64r2 | mipsisa64r2el)
285 mips_cpu=mips64r2
286 ;;
ae52f483
AB
287 mipsisa64r3 | mipsisa64r3el)
288 mips_cpu=mips64r3
289 ;;
290 mipsisa64r5 | mipsisa64r5el)
291 mips_cpu=mips64r5
292 ;;
7361da2c
AB
293 mipsisa64r6 | mipsisa64r6el)
294 mips_cpu=mips64r6
295 ;;
316f5878
RS
296 mipstx39 | mipstx39el)
297 mips_cpu=r3900
298 ;;
8f6847cb
RS
299 mips64vr | mips64vrel)
300 mips_cpu=vr4100
301 ;;
5f74bc13 302 mipsisa32r2* | mipsisa64r2*)
af7ee8bf
CD
303changequote(,)dnl
304 mips_cpu=`echo $target_cpu | sed -e 's/[a-z]*..r2//' -e 's/el$//'`
7361da2c
AB
305changequote([,])dnl
306 ;;
307 mipsisa32r6* | mipsisa64r6*)
308changequote(,)dnl
309 mips_cpu=`echo $target_cpu | sed -e 's/[a-z]*..r6//' -e 's/el$//'`
af7ee8bf
CD
310changequote([,])dnl
311 ;;
316f5878
RS
312 mips64* | mipsisa64* | mipsisa32*)
313changequote(,)dnl
314 mips_cpu=`echo $target_cpu | sed -e 's/[a-z]*..//' -e 's/el$//'`
e407c74b
NC
315changequote([,])dnl
316 ;;
317 mips*)
318changequote(,)dnl
319 mips_cpu=`echo $target_cpu | sed -e 's/^mips//' -e 's/el$//'`
316f5878
RS
320changequote([,])dnl
321 ;;
322 *)
da594c4a 323 AC_MSG_ERROR($target_cpu isn't a supported MIPS CPU name)
316f5878
RS
324 ;;
325 esac
326 # See whether it's appropriate to set E_MIPS_ABI_O32 for o32
327 # binaries. It's a GNU extension that some OSes don't understand.
316f5878
RS
328 case ${target} in
329 *-*-irix*)
330 use_e_mips_abi_o32=0
331 ;;
332 *)
333 use_e_mips_abi_o32=1
334 ;;
335 esac
336 # Decide whether to generate 32-bit or 64-bit code by default.
337 # Used to resolve -march=from-abi when an embedded ABI is selected.
338 case ${target} in
339 mips64*-*-* | mipsisa64*-*-*)
340 mips_default_64bit=1
341 ;;
342 *)
343 mips_default_64bit=0
344 ;;
345 esac
cac012d6
AO
346 # Decide which ABI to target by default.
347 case ${target} in
0984958b
MR
348 mips64*-linux* | mips-sgi-irix6* | mips64*-freebsd* \
349 | mips64*-kfreebsd*-gnu | mips64*-ps2-elf*)
cac012d6
AO
350 mips_default_abi=N32_ABI
351 ;;
aeffff67 352 mips*-linux* | mips*-freebsd* | mips*-kfreebsd*-gnu)
cac012d6
AO
353 mips_default_abi=O32_ABI
354 ;;
26eebcf5
MK
355 mips64*-openbsd*)
356 mips_default_abi=N64_ABI
357 ;;
cac012d6
AO
358 *)
359 mips_default_abi=NO_ABI
360 ;;
361 esac
316f5878
RS
362 AC_DEFINE_UNQUOTED(MIPS_CPU_STRING_DEFAULT, "$mips_cpu",
363 [Default CPU for MIPS targets. ])
364 AC_DEFINE_UNQUOTED(USE_E_MIPS_ABI_O32, $use_e_mips_abi_o32,
365 [Allow use of E_MIPS_ABI_O32 on MIPS targets. ])
366 AC_DEFINE_UNQUOTED(MIPS_DEFAULT_64BIT, $mips_default_64bit,
367 [Generate 64-bit code by default on MIPS targets. ])
cac012d6
AO
368 AC_DEFINE_UNQUOTED(MIPS_DEFAULT_ABI, $mips_default_abi,
369 [Choose a default ABI for MIPS targets. ])
316f5878
RS
370 ;;
371 esac
372
252b5132
RH
373 # Do we need the opcodes library?
374 case ${cpu_type} in
0b1cf022 375 vax | tic30)
252b5132
RH
376 ;;
377
378 *)
379 need_opcodes=yes
380
381 case "${enable_shared}" in
382 yes) shared_opcodes=true ;;
383 *opcodes*) shared_opcodes=true ;;
384 *) shared_opcodes=false ;;
385 esac
252b5132
RH
386 ;;
387 esac
388
389 # Any other special object files needed ?
390 case ${cpu_type} in
07c1b327
CM
391
392 bfin)
393 echo ${extra_objects} | grep -s "bfin-parse.o"
394 if test $? -ne 0 ; then
395 extra_objects="$extra_objects bfin-parse.o"
396 fi
397
df7b86aa 398 echo ${extra_objects} | grep -s "bfin-lex-wrapper.o"
07c1b327 399 if test $? -ne 0 ; then
df7b86aa 400 extra_objects="$extra_objects bfin-lex-wrapper.o"
07c1b327
CM
401 fi
402 ;;
403
73589c9d 404 epiphany | fr30 | ip2k | iq2000 | lm32 | m32r | or1k)
252b5132
RH
405 using_cgen=yes
406 ;;
407
49f58d10
JB
408 m32c)
409 using_cgen=yes
410 ;;
0ebb9a87
DB
411 frv)
412 using_cgen=yes
413 ;;
252b5132
RH
414 m68k)
415 case ${extra_objects} in
416 *m68k-parse.o*) ;;
417 *) extra_objects="$extra_objects m68k-parse.o" ;;
418 esac
419 ;;
420
280d71bf
DB
421 mep)
422 using_cgen=yes
423 ;;
424
252b5132 425 mips)
12e64c2c 426 echo ${extra_objects} | grep -s "itbl-parse.o"
252b5132
RH
427 if test $? -ne 0 ; then
428 extra_objects="$extra_objects itbl-parse.o"
429 fi
430
df7b86aa 431 echo ${extra_objects} | grep -s "itbl-lex-wrapper.o"
252b5132 432 if test $? -ne 0 ; then
df7b86aa 433 extra_objects="$extra_objects itbl-lex-wrapper.o"
252b5132
RH
434 fi
435
12e64c2c 436 echo ${extra_objects} | grep -s "itbl-ops.o"
252b5132
RH
437 if test $? -ne 0 ; then
438 extra_objects="$extra_objects itbl-ops.o"
439 fi
440 ;;
441
4970f871 442 mt)
047af9ef
AH
443 using_cgen=yes
444 ;;
445
35c08157
KLC
446 nds32)
447 # Decide BASELINE, REDUCED_REGS, FPU_DP_EXT, FPU_SP_EXT features
448 # based on arch_name.
449 AC_MSG_CHECKING(for default configuration of --with-arch)
450 if test "x${with_arch}" != x; then
451 case ${with_arch} in
452 v2j | v2s | v2f | v2 | v3m | v3j | v3s | v3f | v3 )
453 AC_DEFINE_UNQUOTED(NDS32_DEFAULT_ARCH_NAME, "$with_arch",
454 [Define value for nds32_arch_name])
455 ;;
456 *)
457 AC_MSG_ERROR(This kind of arch name does *NOT* exist!)
458 ;;
459 esac
460 fi
461 AC_MSG_RESULT($with_arch)
462
463 # Decide features one by one.
464 AC_MSG_CHECKING(for default configuration of --enable-dx-regs)
6cd8405e 465 if test "x${enable_dx_regs}" = xyes; then
35c08157
KLC
466 AC_DEFINE(NDS32_DEFAULT_DX_REGS, 1,
467 [Define value for nds32_dx_regs])
468 else
469 AC_DEFINE(NDS32_DEFAULT_DX_REGS, 0,
470 [Define default value for nds32_dx_regs])
471 fi
472 AC_MSG_RESULT($enable_dx_regs)
473
474 AC_MSG_CHECKING(for default configuration of --enable-perf-ext)
6cd8405e 475 if test "x${enable_perf_ext}" = xno; then
35c08157
KLC
476 AC_DEFINE(NDS32_DEFAULT_PERF_EXT, 0,
477 [Define value for nds32_perf_ext])
478 else
479 AC_DEFINE(NDS32_DEFAULT_PERF_EXT, 1,
480 [Define default value for nds32_perf_ext])
481 fi
482 AC_MSG_RESULT($enable_perf_ext)
483
484 AC_MSG_CHECKING(for default configuration of --enable-perf-ext2)
6cd8405e 485 if test "x${enable_perf_ext2}" = xno; then
35c08157
KLC
486 AC_DEFINE(NDS32_DEFAULT_PERF_EXT2, 0,
487 [Define value for nds32_perf_ext2])
488 else
489 AC_DEFINE(NDS32_DEFAULT_PERF_EXT2, 1,
490 [Define default value for nds32_perf_ext2])
491 fi
492 AC_MSG_RESULT($enable_perf_ext2)
493
494 AC_MSG_CHECKING(for default configuration of --enable-string-ext)
6cd8405e 495 if test "x${enable_string_ext}" = xno; then
35c08157
KLC
496 AC_DEFINE(NDS32_DEFAULT_STRING_EXT, 0,
497 [Define value for nds32_string_ext])
498 else
499 AC_DEFINE(NDS32_DEFAULT_STRING_EXT, 1,
500 [Define default value for nds32_string_ext])
501 fi
502 AC_MSG_RESULT($enable_string_ext)
503
504 AC_MSG_CHECKING(for default configuration of --enable-audio-ext)
6cd8405e 505 if test "x${enable_audio_ext}" = xno; then
35c08157
KLC
506 AC_DEFINE(NDS32_DEFAULT_AUDIO_EXT, 0,
507 [Define value for nds32_audio_ext])
508 else
509 AC_DEFINE(NDS32_DEFAULT_AUDIO_EXT, 1,
510 [Define default value for nds32_audio_ext])
511 fi
512 AC_MSG_RESULT($enable_audio_ext)
513 ;;
514
3c0367d0 515 aarch64 | i386 | riscv | s390 | sparc)
252b5132
RH
516 if test $this_target = $target ; then
517 AC_DEFINE_UNQUOTED(DEFAULT_ARCH, "${arch}", [Default architecture.])
518 fi
519 ;;
93fbbb04 520
99c513f6
DD
521 rl78)
522 echo ${extra_objects} | grep -s "rl78-parse.o"
523 if test $? -ne 0 ; then
524 extra_objects="$extra_objects rl78-parse.o"
525 fi
526 ;;
527
c7927a3c
NC
528 rx)
529 echo ${extra_objects} | grep -s "rx-parse.o"
530 if test $? -ne 0 ; then
531 extra_objects="$extra_objects rx-parse.o"
532 fi
533 ;;
534
93fbbb04
GK
535 xstormy16)
536 using_cgen=yes
537 ;;
538
d70c5fc7
NC
539 xc16x)
540 using_cgen=yes
541 ;;
542
e0001a05
NC
543 xtensa)
544 echo ${extra_objects} | grep -s "xtensa-relax.o"
545 if test $? -ne 0 ; then
546 extra_objects="$extra_objects xtensa-relax.o"
547 fi
548 ;;
549
252b5132
RH
550 *)
551 ;;
552 esac
553
554 if test $using_cgen = yes ; then
555 case "x${extra_objects}" in
556 *cgen.o*) ;;
557 *) extra_objects="$extra_objects cgen.o" ;;
558 esac
559 fi
560
561# See if we really can support this configuration with the emulation code.
562
563 if test $this_target = $target ; then
252b5132
RH
564 obj_format=$fmt
565 te_file=$em
252b5132
RH
566 fi
567
b11d79f2
TG
568 case ${te_file} in
569 vms) extra_objects="$extra_objects te-vms.o" ;;
570 esac
58797674 571
252b5132
RH
572# From target name and format, produce a list of supported emulations.
573
574 case ${generic_target}-${fmt} in
e8044f35 575 mips-*-*-*) case "$endian" in
252b5132
RH
576 big) emulation="mipsbelf mipslelf mipself" ;;
577 *) emulation="mipslelf mipsbelf mipself" ;;
252b5132 578 esac ;;
119caedd
L
579 # i386-pc-pe-coff != i386-pc-coff.
580 i386-*-pe-coff) ;;
4c63da97
AM
581 # Uncommenting the next line will turn on support for i386 AOUT
582 # for the default linux configuration
583 # i386-*-linux*-elf) emulation="i386elf i386aout" ;;
584 #
585 i386-*-aout) emulation="i386aout" ;;
4ca72d38 586 i386-*-coff) emulation="i386coff" ;;
4c63da97 587 i386-*-elf) emulation="i386elf" ;;
3bcbcc3d 588
f9c19112
HPN
589 # Always all formats. The first stated emulation becomes the default.
590 cris-*-*aout*) emulation="crisaout criself" ;;
591 cris-*-*) emulation="criself crisaout" ;;
252b5132
RH
592 esac
593
594 emulations="$emulations $emulation"
595
596done
597
0cb4071e
L
598if test ${ac_default_x86_relax_relocations} = unset; then
599 ac_default_x86_relax_relocations=1
600fi
601AC_DEFINE_UNQUOTED(DEFAULT_GENERATE_X86_RELAX_RELOCATIONS,
602 $ac_default_x86_relax_relocations,
603 [Define to 1 if you want to generate x86 relax relocations by default.])
604
b8871f35
L
605if test ${ac_default_elf_stt_common} = unset; then
606 ac_default_elf_stt_common=0
607fi
608AC_DEFINE_UNQUOTED(DEFAULT_GENERATE_ELF_STT_COMMON,
609 $ac_default_elf_stt_common,
610 [Define to 1 if you want to generate ELF common symbols with the
611 STT_COMMON type by default.])
612
348ef89a 613if test x$ac_default_compressed_debug_sections = xyes ; then
6c3bc0f8
NC
614 AC_DEFINE(DEFAULT_FLAG_COMPRESS_DEBUG, 1, [Define if you want compressed debug sections by default.])
615fi
e12fe555 616
15886821
L
617# Turn on all targets if possible
618if test ${all_targets} = "yes"; then
619 case ${target_cpu_type} in
620 i386)
621 case ${obj_format} in
622 aout)
623 emulations="$emulations i386coff i386elf"
624 ;;
625 coff)
626 emulations="$emulations i386aout i386elf"
627 ;;
628 elf)
629 emulations="$emulations i386aout i386coff"
630 ;;
631 esac
632 ;;
99ad8390
NC
633 x86_64)
634 case ${obj_format} in
635 aout)
636 emulations="$emulations i386coff i386elf"
637 ;;
638 coff)
639 emulations="$emulations i386aout i386elf"
640 ;;
641 elf)
642 emulations="$emulations i386aout i386coff"
643 ;;
644 esac
645 ;;
15886821
L
646 esac
647fi
648
39871c07
AM
649# PE code has way too many macros tweaking behaviour
650case ${te_file} in
651 pe*) emulations="" ;;
652esac
653
252b5132
RH
654# Assign floating point type. Most processors with FP support
655# IEEE FP. On those that don't support FP at all, usually IEEE
656# is emulated.
657case ${target_cpu} in
12e64c2c 658 vax | pdp11 ) atof=vax ;;
252b5132
RH
659 *) atof=ieee ;;
660esac
661
662case "${obj_format}" in
663 "") AC_MSG_ERROR(GAS does not know what format to use for target ${target}) ;;
664esac
665
666# Unfortunately the cpu in cpu-opc.h file isn't always $(TARGET_CPU).
667cgen_cpu_prefix=""
668if test $using_cgen = yes ; then
669 case ${target_cpu} in
73589c9d
CS
670 or1knd)
671 cgen_cpu_prefix=or1k ;;
252b5132
RH
672 *) cgen_cpu_prefix=${target_cpu} ;;
673 esac
674 AC_SUBST(cgen_cpu_prefix)
675 AC_DEFINE(USING_CGEN, 1, [Using cgen code?])
676fi
677
678dnl
679dnl Make sure the desired support files exist.
680dnl
681
682if test ! -r ${srcdir}/config/tc-${target_cpu_type}.c; then
683 AC_MSG_ERROR(GAS does not support target CPU ${target_cpu_type})
684fi
685
686if test ! -r ${srcdir}/config/obj-${obj_format}.c; then
687 AC_MSG_ERROR(GAS does not have support for object file format ${obj_format})
688fi
689
252b5132
RH
690# Some COFF configurations want these random other flags set.
691case ${obj_format} in
692 coff)
693 case ${target_cpu_type} in
694 i386) AC_DEFINE(I386COFF, 1, [Using i386 COFF?]) ;;
695 m68k) AC_DEFINE(M68KCOFF, 1, [Using m68k COFF?]) ;;
696 m88k) AC_DEFINE(M88KCOFF, 1, [Using m88k COFF?]) ;;
99ad8390 697 x86_64) AC_DEFINE(I386COFF, 1, [Using i386 COFF?]) ;;
252b5132
RH
698 esac
699 ;;
700esac
701
702# Getting this done right is going to be a bitch. Each configuration specified
7be1c489
AM
703# with --enable-targets=... should be checked for environment, format, cpu
704# setting.
252b5132
RH
705#
706# For each configuration, the necessary object file support code must be linked
707# in. This might be only one, it might be up to four. The necessary emulation
708# code needs to be provided, too.
709#
710# And then there's "--enable-targets=all"....
711#
e8044f35 712# For now, just always do it for MIPS ELF configurations. Sigh.
252b5132
RH
713
714formats="${obj_format}"
715emfiles=""
716EMULATIONS=""
717GAS_UNIQ(emulations)
718for em in . $emulations ; do
719 case $em in
720 .) continue ;;
97238fbd 721 mipsbelf | mipslelf | mipself)
252b5132 722 fmt=elf file=mipself ;;
0aa5d426
HPN
723 *coff)
724 fmt=coff file=$em ;;
725 *aout)
726 fmt=aout file=$em ;;
727 *elf)
728 fmt=elf file=$em ;;
252b5132
RH
729 esac
730 formats="$formats $fmt"
731 emfiles="$emfiles e-$file.o"
732 EMULATIONS="$EMULATIONS &$em,"
733done
734GAS_UNIQ(formats)
735GAS_UNIQ(emfiles)
736if test `set . $formats ; shift ; echo $#` -gt 1 ; then
737 for fmt in $formats ; do
738 case $fmt in
739 aout) AC_DEFINE(OBJ_MAYBE_AOUT, 1, [a.out support?]) ;;
740 bout) AC_DEFINE(OBJ_MAYBE_BOUT, 1, [b.out support?]) ;;
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
RH
746 esac
747 extra_objects="$extra_objects obj-$fmt.o"
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