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