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