3b0279ae45732c27ea71addb04ff04f1700bcf10
[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-2018 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 ACX_PROG_CMP_IGNORE_INITIAL
44
45 AC_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 ;;
52 esac])dnl
53
54 ac_checking=yes
55 if grep '^RELEASE=y' ${srcdir}/../bfd/Makefile.am >/dev/null 2>/dev/null ; then
56 ac_checking=
57 fi
58 AC_ARG_ENABLE(checking,
59 [ --enable-checking enable run-time checks],
60 [case "${enableval}" in
61 no|none) ac_checking= ;;
62 *) ac_checking=yes ;;
63 esac])dnl
64 if test x$ac_checking != x ; then
65 AC_DEFINE(ENABLE_CHECKING, 1, [Define if you want run-time sanity checks.])
66 fi
67
68 # PR gas/19109
69 # Decide the default method for compressing debug sections.
70 ac_default_compressed_debug_sections=unset
71 # Provide a configure time option to override our default.
72 AC_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 ;;
79 esac])dnl
80
81 # PR gas/19520
82 # Decide if x86 assembler should generate relax relocations.
83 ac_default_x86_relax_relocations=unset
84 # Provide a configure time option to override our default.
85 AC_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 ;;
90 esac])dnl
91
92 # Decide if ELF assembler should generate common symbols with the
93 # STT_COMMON type.
94 ac_default_elf_stt_common=unset
95 # Provide a configure time option to override our default.
96 AC_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 ;;
101 esac])dnl
102
103 using_cgen=no
104
105 AM_BINUTILS_WARNINGS
106
107 # Generate a header file
108 AC_CONFIG_HEADERS(config.h:config.in)
109
110 dnl Option --with-cpu=TYPE allows configure type control of the default
111 dnl cpu type within the assembler. Currently only the ARC target
112 dnl supports this feature, but others may be added in the future.
113 AC_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
122 AH_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.
132 case "${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 ;;
141 esac
142 AC_SUBST(GDBINIT)
143
144 #We need this for the host. BOUT header is in host order.
145 AC_C_BIGENDIAN
146
147 te_file=generic
148
149 # Makefile target for installing gas in $(tooldir)/bin.
150 install_tooldir=install-exec-tooldir
151
152 canon_targets=""
153 all_targets=no
154 if 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)
169 fi
170
171 emulations=""
172
173 for 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
223 changequote(,)dnl
224 ppc-*-aix[5-9].*)
225 changequote([,])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*)
303 changequote(,)dnl
304 mips_cpu=`echo $target_cpu | sed -e 's/[a-z]*..r2//' -e 's/el$//'`
305 changequote([,])dnl
306 ;;
307 mipsisa32r6* | mipsisa64r6*)
308 changequote(,)dnl
309 mips_cpu=`echo $target_cpu | sed -e 's/[a-z]*..r6//' -e 's/el$//'`
310 changequote([,])dnl
311 ;;
312 mips64* | mipsisa64* | mipsisa32*)
313 changequote(,)dnl
314 mips_cpu=`echo $target_cpu | sed -e 's/[a-z]*..//' -e 's/el$//'`
315 changequote([,])dnl
316 ;;
317 mips*)
318 changequote(,)dnl
319 mips_cpu=`echo $target_cpu | sed -e 's/^mips//' -e 's/el$//'`
320 changequote([,])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
596 done
597
598 if test ${ac_default_x86_relax_relocations} = unset; then
599 ac_default_x86_relax_relocations=1
600 fi
601 AC_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
605 if test ${ac_default_elf_stt_common} = unset; then
606 ac_default_elf_stt_common=0
607 fi
608 AC_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
613 if 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.])
615 fi
616
617 # Turn on all targets if possible
618 if 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
647 fi
648
649 # PE code has way too many macros tweaking behaviour
650 case ${te_file} in
651 pe*) emulations="" ;;
652 esac
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.
657 case ${target_cpu} in
658 vax | pdp11 ) atof=vax ;;
659 *) atof=ieee ;;
660 esac
661
662 case "${obj_format}" in
663 "") AC_MSG_ERROR(GAS does not know what format to use for target ${target}) ;;
664 esac
665
666 # Unfortunately the cpu in cpu-opc.h file isn't always $(TARGET_CPU).
667 cgen_cpu_prefix=""
668 if 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?])
676 fi
677
678 dnl
679 dnl Make sure the desired support files exist.
680 dnl
681
682 if test ! -r ${srcdir}/config/tc-${target_cpu_type}.c; then
683 AC_MSG_ERROR(GAS does not support target CPU ${target_cpu_type})
684 fi
685
686 if test ! -r ${srcdir}/config/obj-${obj_format}.c; then
687 AC_MSG_ERROR(GAS does not have support for object file format ${obj_format})
688 fi
689
690 # Some COFF configurations want these random other flags set.
691 case ${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 ;;
700 esac
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
714 formats="${obj_format}"
715 emfiles=""
716 EMULATIONS=""
717 GAS_UNIQ(emulations)
718 for 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,"
733 done
734 GAS_UNIQ(formats)
735 GAS_UNIQ(emfiles)
736 if 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
750 fi
751 if 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
761 fi
762 AC_SUBST(extra_objects)
763 AC_DEFINE_UNQUOTED(EMULATIONS, $EMULATIONS, [Supported emulations.])
764 AC_DEFINE_UNQUOTED(DEFAULT_EMULATION, "$DEFAULT_EMULATION",
765 [Default emulation.])
766
767 reject_dev_configs=yes
768
769 case ${reject_dev_configs}-${dev} in
770 yes-yes) # Oops.
771 AC_MSG_ERROR(GAS does not support the ${generic_target} configuration.)
772 ;;
773 esac
774
775 AC_SUBST(target_cpu_type)
776 AC_SUBST(obj_format)
777 AC_SUBST(te_file)
778 AC_SUBST(install_tooldir)
779 AC_SUBST(atof)
780 dnl AC_SUBST(emulation)
781
782 # do we need the opcodes library?
783 case "${need_opcodes}" in
784 yes)
785 OPCODES_LIB=../opcodes/libopcodes.la
786 ;;
787 esac
788
789 AC_SUBST(OPCODES_LIB)
790
791 AC_DEFINE_UNQUOTED(TARGET_ALIAS, "${target_alias}", [Target alias.])
792 AC_DEFINE_UNQUOTED(TARGET_CANONICAL, "${target}", [Canonical target.])
793 AC_DEFINE_UNQUOTED(TARGET_CPU, "${target_cpu}", [Target CPU.])
794 AC_DEFINE_UNQUOTED(TARGET_VENDOR, "${target_vendor}", [Target vendor.])
795 AC_DEFINE_UNQUOTED(TARGET_OS, "${target_os}", [Target OS.])
796
797 AC_PROG_YACC
798 AM_PROG_LEX
799
800 ALL_LINGUAS="es fi fr id ja ru rw sv tr uk zh_CN"
801 ZW_GNU_GETTEXT_SISTER_DIR
802 AM_PO_SUBDIRS
803
804 AM_MAINTAINER_MODE
805 AM_CONDITIONAL(GENINSRC_NEVER, false)
806 AC_EXEEXT
807
808 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)
809 ACX_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.
813 AC_MSG_CHECKING(whether compiling a cross-assembler)
814 if test "${host}" = "${target}"; then
815 cross_gas=no
816 else
817 cross_gas=yes
818 AC_DEFINE(CROSS_COMPILE, 1, [Compiling cross-assembler?])
819 fi
820 AC_MSG_RESULT($cross_gas)
821
822 dnl ansidecl.h will deal with const
823 dnl AC_C_CONST
824 AC_FUNC_ALLOCA
825 AC_C_INLINE
826
827 # VMS doesn't have unlink.
828 AC_CHECK_FUNCS(unlink remove, break)
829 AC_CHECK_FUNCS(sbrk setlocale)
830 AC_CHECK_FUNCS(strsignal)
831
832 AM_LC_MESSAGES
833
834 # do we need the math library?
835 case "${need_libm}" in
836 yes)
837 LT_LIB_M
838 AC_SUBST(LIBM)
839 ;;
840 esac
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!
845 GAS_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.
850 gas_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?
871 GAS_CHECK_DECL_NEEDED(errno, f, int f, [
872 #ifdef HAVE_ERRNO_H
873 #include <errno.h>
874 #endif
875 ])
876
877 AC_MSG_CHECKING(for a known getopt prototype in unistd.h)
878 AC_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 *);])],
880 gas_cv_decl_getopt_unistd_h=yes, gas_cv_decl_getopt_unistd_h=no)])
881 AC_MSG_RESULT($gas_cv_decl_getopt_unistd_h)
882 if 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?])
885 fi
886
887 GAS_CHECK_DECL_NEEDED(environ, f, char **f, $gas_test_headers)
888 GAS_CHECK_DECL_NEEDED(ffs, f, int (*f)(int), $gas_test_headers)
889 GAS_CHECK_DECL_NEEDED(free, f, void (*f)(), $gas_test_headers)
890 GAS_CHECK_DECL_NEEDED(malloc, f, char *(*f)(), $gas_test_headers)
891 GAS_CHECK_DECL_NEEDED(sbrk, f, char *(*f)(), $gas_test_headers)
892 GAS_CHECK_DECL_NEEDED(strstr, f, char *(*f)(), $gas_test_headers)
893
894 AC_CHECK_DECLS([free, getenv, malloc, mempcpy, realloc, stpcpy, strstr, vsnprintf, asprintf])
895
896 BFD_BINARY_FOPEN
897
898 # Link in zlib if we can. This allows us to write compressed debug sections.
899 AM_ZLIB
900
901 # Support for VMS timestamps via cross compile
902
903 if test "$ac_cv_header_time_h" = yes; then
904 GAS_HAVE_TIME_TYPE_MEMBER(struct tm, tm_gmtoff)
905 fi
906
907 if 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)
910 fi
911
912
913 dnl Required for html, pdf, install-pdf and install-html targets.
914 AC_SUBST(datarootdir)
915 AC_SUBST(docdir)
916 AC_SUBST(htmldir)
917 AC_SUBST(pdfdir)
918
919 dnl This must come last.
920
921 dnl We used to make symlinks to files in the source directory, but now
922 dnl we just use the right name for .c files, and create .h files in
923 dnl the build directory which include the right .h file. Make sure
924 dnl the old symlinks don't exist, so that a reconfigure in an existing
925 dnl directory behaves reasonably.
926
927 AC_CONFIG_FILES(Makefile doc/Makefile po/Makefile.in:po/Make-in)
928 AC_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
942 AC_OUTPUT
This page took 0.073638 seconds and 3 git commands to generate.