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