Update Russian translation for the gas/ sub-directory.
[deliverable/binutils-gdb.git] / gas / configure.ac
... / ...
CommitLineData
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
6dnl Copyright (C) 2012-2018 Free Software Foundation, Inc.
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.
12dnl
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.
17dnl
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/>.
21dnl
22dnl v2.5 needed for --bindir et al
23AC_PREREQ(2.59)
24m4_include([../bfd/version.m4])
25AC_INIT([gas], BFD_VERSION)
26AC_CONFIG_SRCDIR(as.h)
27
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(..)
32AC_CANONICAL_TARGET
33AC_ISC_POSIX
34
35AM_INIT_AUTOMAKE
36
37AC_PROG_CC
38AC_GNU_SOURCE
39AC_USE_SYSTEM_EXTENSIONS
40
41LT_INIT
42ACX_LARGEFILE
43ACX_PROG_CMP_IGNORE_INITIAL
44
45AC_ARG_ENABLE(targets,
46[ --enable-targets alternative target configurations besides the primary],
47[case "${enableval}" in
48 yes | "") AC_MSG_ERROR(enable-targets option must specify target names or 'all')
49 ;;
50 no) enable_targets= ;;
51 *) enable_targets=$enableval ;;
52esac])dnl
53
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
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,
73 AS_HELP_STRING([--enable-compressed-debug-sections={all,gas,none}],
74 [compress debug sections by default]),
75[case ,"${enableval}", in
76 ,yes, | ,all, | *,gas,*) ac_default_compressed_debug_sections=yes ;;
77 ,no, | ,none,) ac_default_compressed_debug_sections=no ;;
78 *) ac_default_compressed_debug_sections=unset ;;
79esac])dnl
80
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
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
103using_cgen=no
104
105AM_BINUTILS_WARNINGS
106
107# Generate a header file
108AC_CONFIG_HEADERS(config.h:config.in)
109
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
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). */
125#if defined(__GLIBC__) && !defined(__FreeBSD_kernel__) && !defined(__CONFIG_H__)
126# error config.h must be #included before system headers
127#endif
128#define __CONFIG_H__ 1])
129
130# If we are on a DOS filesystem, we must use gdb.ini rather than
131# .gdbinit.
132case "${host}" in
133 *-*-msdos* | *-*-go32* | *-*-mingw32* | *-*-windows*)
134 GDBINIT="gdb.ini"
135 AC_CONFIG_FILES(gdb.ini:gdbinit.in)
136 ;;
137 *)
138 GDBINIT=".gdbinit"
139 AC_CONFIG_FILES(.gdbinit:gdbinit.in)
140 ;;
141esac
142AC_SUBST(GDBINIT)
143
144#We need this for the host. BOUT header is in host order.
145AC_C_BIGENDIAN
146
147te_file=generic
148
149# Makefile target for installing gas in $(tooldir)/bin.
150install_tooldir=install-exec-tooldir
151
152canon_targets=""
153all_targets=no
154if test -n "$enable_targets" ; then
155 for t in `echo $enable_targets | sed 's/,/ /g'`; do
156 if test $t = "all"; then
157 all_targets=yes
158 continue
159 fi
160 result=`$ac_config_sub $t 2>/dev/null`
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
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 ;;
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
191 generic_target=${cpu_type}-${target_vendor}-${target_os}
192 case ${generic_target} in
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 ;;
198
199 i386-*-msdosdjgpp* \
200 | i386-*-go32* \
201 | i386-go32-rtems*)
202 AC_DEFINE(STRICTCOFF, 1, [Using strict COFF?])
203 ;;
204
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
216 i860-*-*)
217 AC_MSG_WARN(GAS support for ${generic_target} is preliminary and a work in progress)
218 ;;
219
220 microblaze*)
221 ;;
222
223changequote(,)dnl
224 ppc-*-aix[5-9].*)
225changequote([,])dnl
226 AC_DEFINE(AIX_WEAK_SUPPORT, 1,
227 [Define if using AIX 5.2 value for C_WEAKEXT.])
228 ;;
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 ;;
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
257# Other random stuff.
258
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 ;;
269 mipsisa32r2 | mipsisa32r2el)
270 mips_cpu=mips32r2
271 ;;
272 mipsisa32r3 | mipsisa32r3el)
273 mips_cpu=mips32r3
274 ;;
275 mipsisa32r5 | mipsisa32r5el)
276 mips_cpu=mips32r5
277 ;;
278 mipsisa32r6 | mipsisa32r6el)
279 mips_cpu=mips32r6
280 ;;
281 mipsisa64 | mipsisa64el)
282 mips_cpu=mips64
283 ;;
284 mipsisa64r2 | mipsisa64r2el)
285 mips_cpu=mips64r2
286 ;;
287 mipsisa64r3 | mipsisa64r3el)
288 mips_cpu=mips64r3
289 ;;
290 mipsisa64r5 | mipsisa64r5el)
291 mips_cpu=mips64r5
292 ;;
293 mipsisa64r6 | mipsisa64r6el)
294 mips_cpu=mips64r6
295 ;;
296 mipstx39 | mipstx39el)
297 mips_cpu=r3900
298 ;;
299 mips64vr | mips64vrel)
300 mips_cpu=vr4100
301 ;;
302 mipsisa32r2* | mipsisa64r2*)
303changequote(,)dnl
304 mips_cpu=`echo $target_cpu | sed -e 's/[a-z]*..r2//' -e 's/el$//'`
305changequote([,])dnl
306 ;;
307 mipsisa32r6* | mipsisa64r6*)
308changequote(,)dnl
309 mips_cpu=`echo $target_cpu | sed -e 's/[a-z]*..r6//' -e 's/el$//'`
310changequote([,])dnl
311 ;;
312 mips64* | mipsisa64* | mipsisa32*)
313changequote(,)dnl
314 mips_cpu=`echo $target_cpu | sed -e 's/[a-z]*..//' -e 's/el$//'`
315changequote([,])dnl
316 ;;
317 mips*)
318changequote(,)dnl
319 mips_cpu=`echo $target_cpu | sed -e 's/^mips//' -e 's/el$//'`
320changequote([,])dnl
321 ;;
322 *)
323 AC_MSG_ERROR($target_cpu isn't a supported MIPS CPU name)
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.
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
346 # Decide which ABI to target by default.
347 case ${target} in
348 mips64*-linux* | mips-sgi-irix6* | mips64*-freebsd* \
349 | mips64*-kfreebsd*-gnu | mips64*-ps2-elf*)
350 mips_default_abi=N32_ABI
351 ;;
352 mips*-linux* | mips*-freebsd* | mips*-kfreebsd*-gnu)
353 mips_default_abi=O32_ABI
354 ;;
355 mips64*-openbsd*)
356 mips_default_abi=N64_ABI
357 ;;
358 *)
359 mips_default_abi=NO_ABI
360 ;;
361 esac
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. ])
368 AC_DEFINE_UNQUOTED(MIPS_DEFAULT_ABI, $mips_default_abi,
369 [Choose a default ABI for MIPS targets. ])
370 ;;
371 esac
372
373 # Do we need the opcodes library?
374 case ${cpu_type} in
375 vax | tic30)
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
386 ;;
387 esac
388
389 # Any other special object files needed ?
390 case ${cpu_type} in
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
398 echo ${extra_objects} | grep -s "bfin-lex-wrapper.o"
399 if test $? -ne 0 ; then
400 extra_objects="$extra_objects bfin-lex-wrapper.o"
401 fi
402 ;;
403
404 epiphany | fr30 | ip2k | iq2000 | lm32 | m32r | or1k)
405 using_cgen=yes
406 ;;
407
408 m32c)
409 using_cgen=yes
410 ;;
411 frv)
412 using_cgen=yes
413 ;;
414 m68k)
415 case ${extra_objects} in
416 *m68k-parse.o*) ;;
417 *) extra_objects="$extra_objects m68k-parse.o" ;;
418 esac
419 ;;
420
421 mep)
422 using_cgen=yes
423 ;;
424
425 mips)
426 echo ${extra_objects} | grep -s "itbl-parse.o"
427 if test $? -ne 0 ; then
428 extra_objects="$extra_objects itbl-parse.o"
429 fi
430
431 echo ${extra_objects} | grep -s "itbl-lex-wrapper.o"
432 if test $? -ne 0 ; then
433 extra_objects="$extra_objects itbl-lex-wrapper.o"
434 fi
435
436 echo ${extra_objects} | grep -s "itbl-ops.o"
437 if test $? -ne 0 ; then
438 extra_objects="$extra_objects itbl-ops.o"
439 fi
440 ;;
441
442 mt)
443 using_cgen=yes
444 ;;
445
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)
465 if test "x${enable_dx_regs}" = xyes; then
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)
475 if test "x${enable_perf_ext}" = xno; then
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)
485 if test "x${enable_perf_ext2}" = xno; then
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)
495 if test "x${enable_string_ext}" = xno; then
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)
505 if test "x${enable_audio_ext}" = xno; then
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
515 aarch64 | i386 | riscv | s390 | sparc)
516 if test $this_target = $target ; then
517 AC_DEFINE_UNQUOTED(DEFAULT_ARCH, "${arch}", [Default architecture.])
518 fi
519 ;;
520
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
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
535 xstormy16)
536 using_cgen=yes
537 ;;
538
539 xc16x)
540 using_cgen=yes
541 ;;
542
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
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
564 obj_format=$fmt
565 te_file=$em
566 fi
567
568 case ${te_file} in
569 vms) extra_objects="$extra_objects te-vms.o" ;;
570 esac
571
572# From target name and format, produce a list of supported emulations.
573
574 case ${generic_target}-${fmt} in
575 mips-*-*-*) case "$endian" in
576 big) emulation="mipsbelf mipslelf mipself" ;;
577 *) emulation="mipslelf mipsbelf mipself" ;;
578 esac ;;
579 # i386-pc-pe-coff != i386-pc-coff.
580 i386-*-pe-coff) ;;
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" ;;
586 i386-*-coff) emulation="i386coff" ;;
587 i386-*-elf) emulation="i386elf" ;;
588
589 # Always all formats. The first stated emulation becomes the default.
590 cris-*-*aout*) emulation="crisaout criself" ;;
591 cris-*-*) emulation="criself crisaout" ;;
592 esac
593
594 emulations="$emulations $emulation"
595
596done
597
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
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
613if test x$ac_default_compressed_debug_sections = xyes ; then
614 AC_DEFINE(DEFAULT_FLAG_COMPRESS_DEBUG, 1, [Define if you want compressed debug sections by default.])
615fi
616
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 ;;
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 ;;
646 esac
647fi
648
649# PE code has way too many macros tweaking behaviour
650case ${te_file} in
651 pe*) emulations="" ;;
652esac
653
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
658 vax | pdp11 ) atof=vax ;;
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
670 or1knd)
671 cgen_cpu_prefix=or1k ;;
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
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?]) ;;
697 x86_64) AC_DEFINE(I386COFF, 1, [Using i386 COFF?]) ;;
698 esac
699 ;;
700esac
701
702# Getting this done right is going to be a bitch. Each configuration specified
703# with --enable-targets=... should be checked for environment, format, cpu
704# setting.
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#
712# For now, just always do it for MIPS ELF configurations. Sigh.
713
714formats="${obj_format}"
715emfiles=""
716EMULATIONS=""
717GAS_UNIQ(emulations)
718for em in . $emulations ; do
719 case $em in
720 .) continue ;;
721 mipsbelf | mipslelf | mipself)
722 fmt=elf file=mipself ;;
723 *coff)
724 fmt=coff file=$em ;;
725 *aout)
726 fmt=aout file=$em ;;
727 *elf)
728 fmt=elf file=$em ;;
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?]) ;;
745 som) AC_DEFINE(OBJ_MAYBE_SOM, 1, [SOM support?]) ;;
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
752 DEFAULT_EMULATION=`set . $emulations ; echo $2`
753 # e-mipself has more than one emulation per file, e-i386* has just one at the
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
757 multi* | *mipself*)
758 extra_objects="$extra_objects $emfiles"
759 AC_DEFINE(USE_EMULATIONS, 1, [Use emulation support?]) ;;
760 esac
761fi
762AC_SUBST(extra_objects)
763AC_DEFINE_UNQUOTED(EMULATIONS, $EMULATIONS, [Supported emulations.])
764AC_DEFINE_UNQUOTED(DEFAULT_EMULATION, "$DEFAULT_EMULATION",
765 [Default emulation.])
766
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
782# do we need the opcodes library?
783case "${need_opcodes}" in
784yes)
785 OPCODES_LIB=../opcodes/libopcodes.la
786 ;;
787esac
788
789AC_SUBST(OPCODES_LIB)
790
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
797AC_PROG_YACC
798AM_PROG_LEX
799
800ALL_LINGUAS="fr tr es rw id ru fi ja zh_CN sv"
801ZW_GNU_GETTEXT_SISTER_DIR
802AM_PO_SUBDIRS
803
804AM_MAINTAINER_MODE
805AM_CONDITIONAL(GENINSRC_NEVER, false)
806AC_EXEEXT
807
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)
809ACX_HEADER_STRING
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
823dnl AC_C_CONST
824AC_FUNC_ALLOCA
825AC_C_INLINE
826
827# VMS doesn't have unlink.
828AC_CHECK_FUNCS(unlink remove, break)
829AC_CHECK_FUNCS(sbrk setlocale)
830AC_CHECK_FUNCS(strsignal)
831
832AM_LC_MESSAGES
833
834# do we need the math library?
835case "${need_libm}" in
836yes)
837 LT_LIB_M
838 AC_SUBST(LIBM)
839 ;;
840esac
841
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"
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
877AC_MSG_CHECKING(for a known getopt prototype in unistd.h)
878AC_CACHE_VAL(gas_cv_decl_getopt_unistd_h,
879[AC_COMPILE_IFELSE([AC_LANG_PROGRAM([#include <unistd.h>], [extern int getopt (int, char *const*, const char *);])],
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
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
894AC_CHECK_DECLS([free, getenv, malloc, mempcpy, realloc, stpcpy, strstr, vsnprintf, asprintf])
895
896BFD_BINARY_FOPEN
897
898# Link in zlib if we can. This allows us to write compressed debug sections.
899AM_ZLIB
900
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
913dnl Required for html, pdf, install-pdf and install-html targets.
914AC_SUBST(datarootdir)
915AC_SUBST(docdir)
916AC_SUBST(htmldir)
917AC_SUBST(pdfdir)
918
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
927AC_CONFIG_FILES(Makefile doc/Makefile po/Makefile.in:po/Make-in)
928AC_CONFIG_COMMANDS([default],
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
936 fi],
937[target_cpu_type=${target_cpu_type}
938 cgen_cpu_prefix=${cgen_cpu_prefix}
939 obj_format=${obj_format}
940 te_file=${te_file}])
941
942AC_OUTPUT
This page took 0.025218 seconds and 4 git commands to generate.