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