[ARM][GAS] ARMv8.2 should enable ARMv8.1 NEON instructions.
[deliverable/binutils-gdb.git] / gas / configure.ac
1 dnl Process this file with autoconf to produce a configure script.
2 dnl
3 dnl And be careful when changing it! If you must add tests with square
4 dnl brackets, be sure changequote invocations surround it.
5 dnl
6 dnl Copyright (C) 2012-2016 Free Software Foundation, Inc.
7 dnl
8 dnl This file is free software; you can redistribute it and/or modify
9 dnl it under the terms of the GNU General Public License as published by
10 dnl the Free Software Foundation; either version 3 of the License, or
11 dnl (at your option) any later version.
12 dnl
13 dnl This program is distributed in the hope that it will be useful,
14 dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
15 dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 dnl GNU General Public License for more details.
17 dnl
18 dnl You should have received a copy of the GNU General Public License
19 dnl along with this program; see the file COPYING3. If not see
20 dnl <http://www.gnu.org/licenses/>.
21 dnl
22 dnl v2.5 needed for --bindir et al
23 AC_PREREQ(2.59)
24 m4_include([../bfd/version.m4])
25 AC_INIT([gas], BFD_VERSION)
26 AC_CONFIG_SRCDIR(as.h)
27
28 dnl Autoconf 2.57 will find the aux dir without this. However, unless
29 dnl we specify this explicitly, automake-1.7 will assume that ylwrap is in
30 dnl gas/ instead of gas/../.
31 AC_CONFIG_AUX_DIR(..)
32 AC_CANONICAL_TARGET
33 AC_ISC_POSIX
34
35 AM_INIT_AUTOMAKE
36
37 AC_PROG_CC
38 AC_GNU_SOURCE
39 AC_USE_SYSTEM_EXTENSIONS
40
41 LT_INIT
42 ACX_LARGEFILE
43
44 AC_ARG_ENABLE(targets,
45 [ --enable-targets alternative target configurations besides the primary],
46 [case "${enableval}" in
47 yes | "") AC_MSG_ERROR(enable-targets option must specify target names or 'all')
48 ;;
49 no) enable_targets= ;;
50 *) enable_targets=$enableval ;;
51 esac])dnl
52
53 ac_checking=yes
54 if grep '^RELEASE=y' ${srcdir}/../bfd/Makefile.am >/dev/null 2>/dev/null ; then
55 ac_checking=
56 fi
57 AC_ARG_ENABLE(checking,
58 [ --enable-checking enable run-time checks],
59 [case "${enableval}" in
60 no|none) ac_checking= ;;
61 *) ac_checking=yes ;;
62 esac])dnl
63 if test x$ac_checking != x ; then
64 AC_DEFINE(ENABLE_CHECKING, 1, [Define if you want run-time sanity checks.])
65 fi
66
67 # PR gas/19109
68 # Decide the default method for compressing debug sections.
69 ac_default_compressed_debug_sections=unset
70 # Provide a configure time option to override our default.
71 AC_ARG_ENABLE(compressed_debug_sections,
72 AS_HELP_STRING([--enable-compressed-debug-sections={all,gas,none}],
73 [compress debug sections by default]),
74 [case ,"${enableval}", in
75 ,yes, | ,all, | *,gas,*) ac_default_compressed_debug_sections=yes ;;
76 ,no, | ,none,) ac_default_compressed_debug_sections=no ;;
77 *) ac_default_compressed_debug_sections=unset ;;
78 esac])dnl
79
80 # PR gas/19520
81 # Decide if x86 assembler should generate relax relocations.
82 ac_default_x86_relax_relocations=unset
83 # Provide a configure time option to override our default.
84 AC_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 ;;
89 esac])dnl
90
91 # Decide if ELF assembler should generate common symbols with the
92 # STT_COMMON type.
93 ac_default_elf_stt_common=unset
94 # Provide a configure time option to override our default.
95 AC_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 ;;
100 esac])dnl
101
102 using_cgen=no
103
104 AM_BINUTILS_WARNINGS
105
106 # Generate a header file
107 AC_CONFIG_HEADERS(config.h:config.in)
108
109 # PR 14072
110 AH_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). */
113 #if defined(__GLIBC__) && !defined(__FreeBSD_kernel__) && !defined(__CONFIG_H__)
114 # error config.h must be #included before system headers
115 #endif
116 #define __CONFIG_H__ 1])
117
118 # If we are on a DOS filesystem, we must use gdb.ini rather than
119 # .gdbinit.
120 case "${host}" in
121 *-*-msdos* | *-*-go32* | *-*-mingw32* | *-*-windows*)
122 GDBINIT="gdb.ini"
123 AC_CONFIG_FILES(gdb.ini:gdbinit.in)
124 ;;
125 *)
126 GDBINIT=".gdbinit"
127 AC_CONFIG_FILES(.gdbinit:gdbinit.in)
128 ;;
129 esac
130 AC_SUBST(GDBINIT)
131
132 #We need this for the host. BOUT header is in host order.
133 AC_C_BIGENDIAN
134
135 te_file=generic
136
137 # Makefile target for installing gas in $(tooldir)/bin.
138 install_tooldir=install-exec-tooldir
139
140 canon_targets=""
141 all_targets=no
142 if test -n "$enable_targets" ; then
143 for t in `echo $enable_targets | sed 's/,/ /g'`; do
144 if test $t = "all"; then
145 all_targets=yes
146 continue
147 fi
148 result=`$ac_config_sub $t 2>/dev/null`
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)
157 fi
158
159 emulations=""
160
161 for this_target in $target $canon_targets ; do
162
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 ;;
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
179 generic_target=${cpu_type}-${target_vendor}-${target_os}
180 case ${generic_target} in
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 ;;
186
187 i386-*-msdosdjgpp* \
188 | i386-*-go32* \
189 | i386-go32-rtems*)
190 AC_DEFINE(STRICTCOFF, 1, [Using strict COFF?])
191 ;;
192
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
204 i860-*-*)
205 AC_MSG_WARN(GAS support for ${generic_target} is preliminary and a work in progress)
206 ;;
207
208 microblaze*)
209 ;;
210
211 changequote(,)dnl
212 ppc-*-aix[5-9].*)
213 changequote([,])dnl
214 AC_DEFINE(AIX_WEAK_SUPPORT, 1,
215 [Define if using AIX 5.2 value for C_WEAKEXT.])
216 ;;
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 ;;
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
245 # Other random stuff.
246
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 ;;
257 mipsisa32r2 | mipsisa32r2el)
258 mips_cpu=mips32r2
259 ;;
260 mipsisa32r3 | mipsisa32r3el)
261 mips_cpu=mips32r3
262 ;;
263 mipsisa32r5 | mipsisa32r5el)
264 mips_cpu=mips32r5
265 ;;
266 mipsisa32r6 | mipsisa32r6el)
267 mips_cpu=mips32r6
268 ;;
269 mipsisa64 | mipsisa64el)
270 mips_cpu=mips64
271 ;;
272 mipsisa64r2 | mipsisa64r2el)
273 mips_cpu=mips64r2
274 ;;
275 mipsisa64r3 | mipsisa64r3el)
276 mips_cpu=mips64r3
277 ;;
278 mipsisa64r5 | mipsisa64r5el)
279 mips_cpu=mips64r5
280 ;;
281 mipsisa64r6 | mipsisa64r6el)
282 mips_cpu=mips64r6
283 ;;
284 mipstx39 | mipstx39el)
285 mips_cpu=r3900
286 ;;
287 mips64vr | mips64vrel)
288 mips_cpu=vr4100
289 ;;
290 mipsisa32r2* | mipsisa64r2*)
291 changequote(,)dnl
292 mips_cpu=`echo $target_cpu | sed -e 's/[a-z]*..r2//' -e 's/el$//'`
293 changequote([,])dnl
294 ;;
295 mipsisa32r6* | mipsisa64r6*)
296 changequote(,)dnl
297 mips_cpu=`echo $target_cpu | sed -e 's/[a-z]*..r6//' -e 's/el$//'`
298 changequote([,])dnl
299 ;;
300 mips64* | mipsisa64* | mipsisa32*)
301 changequote(,)dnl
302 mips_cpu=`echo $target_cpu | sed -e 's/[a-z]*..//' -e 's/el$//'`
303 changequote([,])dnl
304 ;;
305 mips*)
306 changequote(,)dnl
307 mips_cpu=`echo $target_cpu | sed -e 's/^mips//' -e 's/el$//'`
308 changequote([,])dnl
309 ;;
310 *)
311 AC_MSG_ERROR($target_cpu isn't a supported MIPS CPU name)
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.
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
334 # Decide which ABI to target by default.
335 case ${target} in
336 mips64*-linux* | mips-sgi-irix6* | mips64*-freebsd* | mips64*-kfreebsd*-gnu)
337 mips_default_abi=N32_ABI
338 ;;
339 mips*-linux* | mips*-freebsd* | mips*-kfreebsd*-gnu)
340 mips_default_abi=O32_ABI
341 ;;
342 mips64*-openbsd*)
343 mips_default_abi=N64_ABI
344 ;;
345 *)
346 mips_default_abi=NO_ABI
347 ;;
348 esac
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. ])
355 AC_DEFINE_UNQUOTED(MIPS_DEFAULT_ABI, $mips_default_abi,
356 [Choose a default ABI for MIPS targets. ])
357 ;;
358 esac
359
360 # Do we need the opcodes library?
361 case ${cpu_type} in
362 vax | tic30)
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
373 ;;
374 esac
375
376 # Any other special object files needed ?
377 case ${cpu_type} in
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
385 echo ${extra_objects} | grep -s "bfin-lex-wrapper.o"
386 if test $? -ne 0 ; then
387 extra_objects="$extra_objects bfin-lex-wrapper.o"
388 fi
389 ;;
390
391 epiphany | fr30 | ip2k | iq2000 | lm32 | m32r | or1k)
392 using_cgen=yes
393 ;;
394
395 m32c)
396 using_cgen=yes
397 ;;
398 frv)
399 using_cgen=yes
400 ;;
401 m68k)
402 case ${extra_objects} in
403 *m68k-parse.o*) ;;
404 *) extra_objects="$extra_objects m68k-parse.o" ;;
405 esac
406 ;;
407
408 mep)
409 using_cgen=yes
410 ;;
411
412 mips)
413 echo ${extra_objects} | grep -s "itbl-parse.o"
414 if test $? -ne 0 ; then
415 extra_objects="$extra_objects itbl-parse.o"
416 fi
417
418 echo ${extra_objects} | grep -s "itbl-lex-wrapper.o"
419 if test $? -ne 0 ; then
420 extra_objects="$extra_objects itbl-lex-wrapper.o"
421 fi
422
423 echo ${extra_objects} | grep -s "itbl-ops.o"
424 if test $? -ne 0 ; then
425 extra_objects="$extra_objects itbl-ops.o"
426 fi
427 ;;
428
429 mt)
430 using_cgen=yes
431 ;;
432
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)
452 if test "x${enable_dx_regs}" = xyes; then
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)
462 if test "x${enable_perf_ext}" = xno; then
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)
472 if test "x${enable_perf_ext2}" = xno; then
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)
482 if test "x${enable_string_ext}" = xno; then
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)
492 if test "x${enable_audio_ext}" = xno; then
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
502 i386 | s390 | sparc)
503 if test $this_target = $target ; then
504 AC_DEFINE_UNQUOTED(DEFAULT_ARCH, "${arch}", [Default architecture.])
505 fi
506 ;;
507
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
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
522 xstormy16)
523 using_cgen=yes
524 ;;
525
526 xc16x)
527 using_cgen=yes
528 ;;
529
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
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
551 obj_format=$fmt
552 te_file=$em
553 fi
554
555 case ${te_file} in
556 vms) extra_objects="$extra_objects te-vms.o" ;;
557 esac
558
559 # From target name and format, produce a list of supported emulations.
560
561 case ${generic_target}-${fmt} in
562 mips-*-*-*) case "$endian" in
563 big) emulation="mipsbelf mipslelf mipself" ;;
564 *) emulation="mipslelf mipsbelf mipself" ;;
565 esac ;;
566 # i386-pc-pe-coff != i386-pc-coff.
567 i386-*-pe-coff) ;;
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" ;;
573 i386-*-coff) emulation="i386coff" ;;
574 i386-*-elf) emulation="i386elf" ;;
575
576 # Always all formats. The first stated emulation becomes the default.
577 cris-*-*aout*) emulation="crisaout criself" ;;
578 cris-*-*) emulation="criself crisaout" ;;
579 esac
580
581 emulations="$emulations $emulation"
582
583 done
584
585 if test ${ac_default_x86_relax_relocations} = unset; then
586 ac_default_x86_relax_relocations=1
587 fi
588 AC_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
592 if test ${ac_default_elf_stt_common} = unset; then
593 ac_default_elf_stt_common=0
594 fi
595 AC_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
600 if test x$ac_default_compressed_debug_sections = xyes ; then
601 AC_DEFINE(DEFAULT_FLAG_COMPRESS_DEBUG, 1, [Define if you want compressed debug sections by default.])
602 fi
603
604 # Turn on all targets if possible
605 if 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 ;;
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 ;;
633 esac
634 fi
635
636 # PE code has way too many macros tweaking behaviour
637 case ${te_file} in
638 pe*) emulations="" ;;
639 esac
640
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.
644 case ${target_cpu} in
645 vax | pdp11 ) atof=vax ;;
646 *) atof=ieee ;;
647 esac
648
649 case "${obj_format}" in
650 "") AC_MSG_ERROR(GAS does not know what format to use for target ${target}) ;;
651 esac
652
653 # Unfortunately the cpu in cpu-opc.h file isn't always $(TARGET_CPU).
654 cgen_cpu_prefix=""
655 if test $using_cgen = yes ; then
656 case ${target_cpu} in
657 or1knd)
658 cgen_cpu_prefix=or1k ;;
659 *) cgen_cpu_prefix=${target_cpu} ;;
660 esac
661 AC_SUBST(cgen_cpu_prefix)
662 AC_DEFINE(USING_CGEN, 1, [Using cgen code?])
663 fi
664
665 dnl
666 dnl Make sure the desired support files exist.
667 dnl
668
669 if test ! -r ${srcdir}/config/tc-${target_cpu_type}.c; then
670 AC_MSG_ERROR(GAS does not support target CPU ${target_cpu_type})
671 fi
672
673 if test ! -r ${srcdir}/config/obj-${obj_format}.c; then
674 AC_MSG_ERROR(GAS does not have support for object file format ${obj_format})
675 fi
676
677 # Some COFF configurations want these random other flags set.
678 case ${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?]) ;;
684 x86_64) AC_DEFINE(I386COFF, 1, [Using i386 COFF?]) ;;
685 esac
686 ;;
687 esac
688
689 # Getting this done right is going to be a bitch. Each configuration specified
690 # with --enable-targets=... should be checked for environment, format, cpu
691 # setting.
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 #
699 # For now, just always do it for MIPS ELF configurations. Sigh.
700
701 formats="${obj_format}"
702 emfiles=""
703 EMULATIONS=""
704 GAS_UNIQ(emulations)
705 for em in . $emulations ; do
706 case $em in
707 .) continue ;;
708 mipsbelf | mipslelf | mipself)
709 fmt=elf file=mipself ;;
710 *coff)
711 fmt=coff file=$em ;;
712 *aout)
713 fmt=aout file=$em ;;
714 *elf)
715 fmt=elf file=$em ;;
716 esac
717 formats="$formats $fmt"
718 emfiles="$emfiles e-$file.o"
719 EMULATIONS="$EMULATIONS &$em,"
720 done
721 GAS_UNIQ(formats)
722 GAS_UNIQ(emfiles)
723 if 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?]) ;;
732 som) AC_DEFINE(OBJ_MAYBE_SOM, 1, [SOM support?]) ;;
733 esac
734 extra_objects="$extra_objects obj-$fmt.o"
735 done
736 obj_format=multi
737 fi
738 if test `set . $emfiles ; shift ; echo $#` -gt 0 ; then
739 DEFAULT_EMULATION=`set . $emulations ; echo $2`
740 # e-mipself has more than one emulation per file, e-i386* has just one at the
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
744 multi* | *mipself*)
745 extra_objects="$extra_objects $emfiles"
746 AC_DEFINE(USE_EMULATIONS, 1, [Use emulation support?]) ;;
747 esac
748 fi
749 AC_SUBST(extra_objects)
750 AC_DEFINE_UNQUOTED(EMULATIONS, $EMULATIONS, [Supported emulations.])
751 AC_DEFINE_UNQUOTED(DEFAULT_EMULATION, "$DEFAULT_EMULATION",
752 [Default emulation.])
753
754 reject_dev_configs=yes
755
756 case ${reject_dev_configs}-${dev} in
757 yes-yes) # Oops.
758 AC_MSG_ERROR(GAS does not support the ${generic_target} configuration.)
759 ;;
760 esac
761
762 AC_SUBST(target_cpu_type)
763 AC_SUBST(obj_format)
764 AC_SUBST(te_file)
765 AC_SUBST(install_tooldir)
766 AC_SUBST(atof)
767 dnl AC_SUBST(emulation)
768
769 # do we need the opcodes library?
770 case "${need_opcodes}" in
771 yes)
772 OPCODES_LIB=../opcodes/libopcodes.la
773 ;;
774 esac
775
776 AC_SUBST(OPCODES_LIB)
777
778 AC_DEFINE_UNQUOTED(TARGET_ALIAS, "${target_alias}", [Target alias.])
779 AC_DEFINE_UNQUOTED(TARGET_CANONICAL, "${target}", [Canonical target.])
780 AC_DEFINE_UNQUOTED(TARGET_CPU, "${target_cpu}", [Target CPU.])
781 AC_DEFINE_UNQUOTED(TARGET_VENDOR, "${target_vendor}", [Target vendor.])
782 AC_DEFINE_UNQUOTED(TARGET_OS, "${target_os}", [Target OS.])
783
784 AC_PROG_YACC
785 AM_PROG_LEX
786
787 ALL_LINGUAS="fr tr es rw id ru fi ja zh_CN"
788 ZW_GNU_GETTEXT_SISTER_DIR
789 AM_PO_SUBDIRS
790
791 AM_MAINTAINER_MODE
792 AM_CONDITIONAL(GENINSRC_NEVER, false)
793 AC_EXEEXT
794
795 AC_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)
796 ACX_HEADER_STRING
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.
800 AC_MSG_CHECKING(whether compiling a cross-assembler)
801 if test "${host}" = "${target}"; then
802 cross_gas=no
803 else
804 cross_gas=yes
805 AC_DEFINE(CROSS_COMPILE, 1, [Compiling cross-assembler?])
806 fi
807 AC_MSG_RESULT($cross_gas)
808
809 dnl ansidecl.h will deal with const
810 dnl AC_C_CONST
811 AC_FUNC_ALLOCA
812 AC_C_INLINE
813
814 # VMS doesn't have unlink.
815 AC_CHECK_FUNCS(unlink remove, break)
816 AC_CHECK_FUNCS(sbrk setlocale)
817
818 AM_LC_MESSAGES
819
820 # do we need the math library?
821 case "${need_libm}" in
822 yes)
823 LT_LIB_M
824 AC_SUBST(LIBM)
825 ;;
826 esac
827
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!
831 GAS_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.
836 gas_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 "
854
855 # Does errno.h declare errno, or do we have to add a separate declaration
856 # for it?
857 GAS_CHECK_DECL_NEEDED(errno, f, int f, [
858 #ifdef HAVE_ERRNO_H
859 #include <errno.h>
860 #endif
861 ])
862
863 AC_MSG_CHECKING(for a known getopt prototype in unistd.h)
864 AC_CACHE_VAL(gas_cv_decl_getopt_unistd_h,
865 [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([#include <unistd.h>], [extern int getopt (int, char *const*, const char *);])],
866 gas_cv_decl_getopt_unistd_h=yes, gas_cv_decl_getopt_unistd_h=no)])
867 AC_MSG_RESULT($gas_cv_decl_getopt_unistd_h)
868 if 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?])
871 fi
872
873 GAS_CHECK_DECL_NEEDED(environ, f, char **f, $gas_test_headers)
874 GAS_CHECK_DECL_NEEDED(ffs, f, int (*f)(int), $gas_test_headers)
875 GAS_CHECK_DECL_NEEDED(free, f, void (*f)(), $gas_test_headers)
876 GAS_CHECK_DECL_NEEDED(malloc, f, char *(*f)(), $gas_test_headers)
877 GAS_CHECK_DECL_NEEDED(sbrk, f, char *(*f)(), $gas_test_headers)
878 GAS_CHECK_DECL_NEEDED(strstr, f, char *(*f)(), $gas_test_headers)
879
880 AC_CHECK_DECLS([free, getenv, malloc, mempcpy, realloc, stpcpy, strstr, vsnprintf, asprintf])
881
882 BFD_BINARY_FOPEN
883
884 # Link in zlib if we can. This allows us to write compressed debug sections.
885 AM_ZLIB
886
887 # Support for VMS timestamps via cross compile
888
889 if test "$ac_cv_header_time_h" = yes; then
890 GAS_HAVE_TIME_TYPE_MEMBER(struct tm, tm_gmtoff)
891 fi
892
893 if 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)
896 fi
897
898
899 dnl Required for html, pdf, install-pdf and install-html targets.
900 AC_SUBST(datarootdir)
901 AC_SUBST(docdir)
902 AC_SUBST(htmldir)
903 AC_SUBST(pdfdir)
904
905 dnl This must come last.
906
907 dnl We used to make symlinks to files in the source directory, but now
908 dnl we just use the right name for .c files, and create .h files in
909 dnl the build directory which include the right .h file. Make sure
910 dnl the old symlinks don't exist, so that a reconfigure in an existing
911 dnl directory behaves reasonably.
912
913 AC_CONFIG_FILES(Makefile doc/Makefile po/Makefile.in:po/Make-in)
914 AC_CONFIG_COMMANDS([default],
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
922 fi],
923 [target_cpu_type=${target_cpu_type}
924 cgen_cpu_prefix=${cgen_cpu_prefix}
925 obj_format=${obj_format}
926 te_file=${te_file}])
927
928 AC_OUTPUT
This page took 0.053063 seconds and 5 git commands to generate.