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