]> git.ipfire.org Git - thirdparty/binutils-gdb.git/blob - gas/configure.ac
Remove m68k-aout and m68k-coff support
[thirdparty/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 x86_64) AC_DEFINE(I386COFF, 1, [Using i386 COFF?]) ;;
688 esac
689 ;;
690 esac
691
692 # Getting this done right is going to be a bitch. Each configuration specified
693 # with --enable-targets=... should be checked for environment, format, cpu
694 # setting.
695 #
696 # For each configuration, the necessary object file support code must be linked
697 # in. This might be only one, it might be up to four. The necessary emulation
698 # code needs to be provided, too.
699 #
700 # And then there's "--enable-targets=all"....
701 #
702 # For now, just always do it for MIPS ELF configurations. Sigh.
703
704 formats="${obj_format}"
705 emfiles=""
706 EMULATIONS=""
707 GAS_UNIQ(emulations)
708 for em in . $emulations ; do
709 case $em in
710 .) continue ;;
711 mipsbelf | mipslelf | mipself)
712 fmt=elf file=mipself ;;
713 *coff)
714 fmt=coff file=$em ;;
715 *aout)
716 fmt=aout file=$em ;;
717 *elf)
718 fmt=elf file=$em ;;
719 esac
720 formats="$formats $fmt"
721 emfiles="$emfiles e-$file.o"
722 EMULATIONS="$EMULATIONS &$em,"
723 done
724 GAS_UNIQ(formats)
725 GAS_UNIQ(emfiles)
726 if test `set . $formats ; shift ; echo $#` -gt 1 ; then
727 for fmt in $formats ; do
728 case $fmt in
729 aout) AC_DEFINE(OBJ_MAYBE_AOUT, 1, [a.out support?]) ;;
730 coff) AC_DEFINE(OBJ_MAYBE_COFF, 1, [COFF support?]) ;;
731 ecoff) AC_DEFINE(OBJ_MAYBE_ECOFF, 1, [ECOFF support?]) ;;
732 elf) AC_DEFINE(OBJ_MAYBE_ELF, 1, [ELF support?]) ;;
733 generic) AC_DEFINE(OBJ_MAYBE_GENERIC, 1, [generic support?]) ;;
734 som) AC_DEFINE(OBJ_MAYBE_SOM, 1, [SOM support?]) ;;
735 esac
736 extra_objects="$extra_objects obj-$fmt.o"
737 done
738 obj_format=multi
739 fi
740 if test `set . $emfiles ; shift ; echo $#` -gt 0 ; then
741 DEFAULT_EMULATION=`set . $emulations ; echo $2`
742 # e-mipself has more than one emulation per file, e-i386* has just one at the
743 # moment. If only one emulation is specified, then don't define
744 # USE_EMULATIONS or include any of the e-files as they will only be bloat.
745 case "${obj_format}${emfiles}" in
746 multi* | *mipself*)
747 extra_objects="$extra_objects $emfiles"
748 AC_DEFINE(USE_EMULATIONS, 1, [Use emulation support?]) ;;
749 esac
750 fi
751 AC_SUBST(extra_objects)
752 AC_DEFINE_UNQUOTED(EMULATIONS, $EMULATIONS, [Supported emulations.])
753 AC_DEFINE_UNQUOTED(DEFAULT_EMULATION, "$DEFAULT_EMULATION",
754 [Default emulation.])
755
756 reject_dev_configs=yes
757
758 case ${reject_dev_configs}-${dev} in
759 yes-yes) # Oops.
760 AC_MSG_ERROR(GAS does not support the ${generic_target} configuration.)
761 ;;
762 esac
763
764 AC_SUBST(target_cpu_type)
765 AC_SUBST(obj_format)
766 AC_SUBST(te_file)
767 AC_SUBST(install_tooldir)
768 AC_SUBST(atof)
769 dnl AC_SUBST(emulation)
770
771 # do we need the opcodes library?
772 case "${need_opcodes}" in
773 yes)
774 OPCODES_LIB=../opcodes/libopcodes.la
775 ;;
776 esac
777
778 AC_SUBST(OPCODES_LIB)
779
780 AC_DEFINE_UNQUOTED(TARGET_ALIAS, "${target_alias}", [Target alias.])
781 AC_DEFINE_UNQUOTED(TARGET_CANONICAL, "${target}", [Canonical target.])
782 AC_DEFINE_UNQUOTED(TARGET_CPU, "${target_cpu}", [Target CPU.])
783 AC_DEFINE_UNQUOTED(TARGET_VENDOR, "${target_vendor}", [Target vendor.])
784 AC_DEFINE_UNQUOTED(TARGET_OS, "${target_os}", [Target OS.])
785
786 AC_PROG_YACC
787 AM_PROG_LEX
788
789 ALL_LINGUAS="es fi fr id ja ru rw sv tr uk zh_CN"
790 ZW_GNU_GETTEXT_SISTER_DIR
791 AM_PO_SUBDIRS
792
793 AM_MAINTAINER_MODE
794 AM_CONDITIONAL(GENINSRC_NEVER, false)
795 AC_EXEEXT
796
797 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)
798 ACX_HEADER_STRING
799
800 # Put this here so that autoconf's "cross-compiling" message doesn't confuse
801 # people who are not cross-compiling but are compiling cross-assemblers.
802 AC_MSG_CHECKING(whether compiling a cross-assembler)
803 if test "${host}" = "${target}"; then
804 cross_gas=no
805 else
806 cross_gas=yes
807 AC_DEFINE(CROSS_COMPILE, 1, [Compiling cross-assembler?])
808 fi
809 AC_MSG_RESULT($cross_gas)
810
811 dnl ansidecl.h will deal with const
812 dnl AC_C_CONST
813 AC_FUNC_ALLOCA
814 AC_C_INLINE
815
816 # VMS doesn't have unlink.
817 AC_CHECK_FUNCS(unlink remove, break)
818 AC_CHECK_FUNCS(sbrk setlocale)
819 AC_CHECK_FUNCS(strsignal)
820
821 AM_LC_MESSAGES
822
823 # do we need the math library?
824 case "${need_libm}" in
825 yes)
826 LT_LIB_M
827 AC_SUBST(LIBM)
828 ;;
829 esac
830
831 # Some non-ANSI preprocessors botch requoting inside strings. That's bad
832 # enough, but on some of those systems, the assert macro relies on requoting
833 # working properly!
834 GAS_WORKING_ASSERT
835
836 # On some systems, the system header files may not declare malloc, realloc,
837 # and free. There are places where gas needs these functions to have been
838 # declared -- such as when taking their addresses.
839 gas_test_headers="
840 #ifdef HAVE_MEMORY_H
841 #include <memory.h>
842 #endif
843 #ifdef HAVE_STRING_H
844 #include <string.h>
845 #else
846 #ifdef HAVE_STRINGS_H
847 #include <strings.h>
848 #endif
849 #endif
850 #ifdef HAVE_STDLIB_H
851 #include <stdlib.h>
852 #endif
853 #ifdef HAVE_UNISTD_H
854 #include <unistd.h>
855 #endif
856 "
857
858 # Does errno.h declare errno, or do we have to add a separate declaration
859 # for it?
860 GAS_CHECK_DECL_NEEDED(errno, f, int f, [
861 #ifdef HAVE_ERRNO_H
862 #include <errno.h>
863 #endif
864 ])
865
866 AC_MSG_CHECKING(for a known getopt prototype in unistd.h)
867 AC_CACHE_VAL(gas_cv_decl_getopt_unistd_h,
868 [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([#include <unistd.h>], [extern int getopt (int, char *const*, const char *);])],
869 gas_cv_decl_getopt_unistd_h=yes, gas_cv_decl_getopt_unistd_h=no)])
870 AC_MSG_RESULT($gas_cv_decl_getopt_unistd_h)
871 if test $gas_cv_decl_getopt_unistd_h = yes; then
872 AC_DEFINE([HAVE_DECL_GETOPT], 1,
873 [Is the prototype for getopt in <unistd.h> in the expected format?])
874 fi
875
876 GAS_CHECK_DECL_NEEDED(environ, f, char **f, $gas_test_headers)
877 GAS_CHECK_DECL_NEEDED(ffs, f, int (*f)(int), $gas_test_headers)
878 GAS_CHECK_DECL_NEEDED(free, f, void (*f)(), $gas_test_headers)
879 GAS_CHECK_DECL_NEEDED(malloc, f, char *(*f)(), $gas_test_headers)
880 GAS_CHECK_DECL_NEEDED(sbrk, f, char *(*f)(), $gas_test_headers)
881 GAS_CHECK_DECL_NEEDED(strstr, f, char *(*f)(), $gas_test_headers)
882
883 AC_CHECK_DECLS([free, getenv, malloc, mempcpy, realloc, stpcpy, strstr, vsnprintf, asprintf])
884
885 BFD_BINARY_FOPEN
886
887 # Link in zlib if we can. This allows us to write compressed debug sections.
888 AM_ZLIB
889
890 # Support for VMS timestamps via cross compile
891
892 if test "$ac_cv_header_time_h" = yes; then
893 GAS_HAVE_TIME_TYPE_MEMBER(struct tm, tm_gmtoff)
894 fi
895
896 if test "$ac_cv_header_sys_stat_h" = yes; then
897 GAS_HAVE_SYS_STAT_TYPE_MEMBER(struct stat, st_mtim, tv_sec)
898 GAS_HAVE_SYS_STAT_TYPE_MEMBER(struct stat, st_mtim, tv_nsec)
899 fi
900
901
902 dnl Required for html, pdf, install-pdf and install-html targets.
903 AC_SUBST(datarootdir)
904 AC_SUBST(docdir)
905 AC_SUBST(htmldir)
906 AC_SUBST(pdfdir)
907
908 dnl This must come last.
909
910 dnl We used to make symlinks to files in the source directory, but now
911 dnl we just use the right name for .c files, and create .h files in
912 dnl the build directory which include the right .h file. Make sure
913 dnl the old symlinks don't exist, so that a reconfigure in an existing
914 dnl directory behaves reasonably.
915
916 AC_CONFIG_FILES(Makefile doc/Makefile po/Makefile.in:po/Make-in)
917 AC_CONFIG_COMMANDS([default],
918 [rm -f targ-cpu.c targ-cpu.h obj-format.h obj-format.c targ-env.h atof-targ.c itbl-cpu.h
919 echo '#include "tc-'"${target_cpu_type}"'.h"' > targ-cpu.h
920 echo '#include "obj-'"${obj_format}"'.h"' > obj-format.h
921 echo '#include "te-'"${te_file}"'.h"' > targ-env.h
922 echo '#include "itbl-'"${target_cpu_type}"'.h"' > itbl-cpu.h
923 if test "x$cgen_cpu_prefix" != x ; then
924 echo '#include "opcodes/'"${cgen_cpu_prefix}"'-desc.h"' > cgen-desc.h
925 fi],
926 [target_cpu_type=${target_cpu_type}
927 cgen_cpu_prefix=${cgen_cpu_prefix}
928 obj_format=${obj_format}
929 te_file=${te_file}])
930
931 AC_OUTPUT