b830d9e43c394aad79377a2b2d8f3e6de1379f2a
[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-2016 Free Software Foundation, Inc.
7 dnl
8 dnl This file is free software; you can redistribute it and/or modify
9 dnl it under the terms of the GNU General Public License as published by
10 dnl the Free Software Foundation; either version 3 of the License, or
11 dnl (at your option) any later version.
12 dnl
13 dnl This program is distributed in the hope that it will be useful,
14 dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
15 dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 dnl GNU General Public License for more details.
17 dnl
18 dnl You should have received a copy of the GNU General Public License
19 dnl along with this program; see the file COPYING3. If not see
20 dnl <http://www.gnu.org/licenses/>.
21 dnl
22 dnl v2.5 needed for --bindir et al
23 AC_PREREQ(2.59)
24 m4_include([../bfd/version.m4])
25 AC_INIT([gas], BFD_VERSION)
26 AC_CONFIG_SRCDIR(as.h)
27
28 dnl Autoconf 2.57 will find the aux dir without this. However, unless
29 dnl we specify this explicitly, automake-1.7 will assume that ylwrap is in
30 dnl gas/ instead of gas/../.
31 AC_CONFIG_AUX_DIR(..)
32 AC_CANONICAL_TARGET
33 AC_ISC_POSIX
34
35 AM_INIT_AUTOMAKE
36
37 AC_PROG_CC
38 AC_GNU_SOURCE
39 AC_USE_SYSTEM_EXTENSIONS
40
41 LT_INIT
42 ACX_LARGEFILE
43 ACX_PROG_CMP_IGNORE_INITIAL
44
45 AC_ARG_ENABLE(targets,
46 [ --enable-targets alternative target configurations besides the primary],
47 [case "${enableval}" in
48 yes | "") AC_MSG_ERROR(enable-targets option must specify target names or 'all')
49 ;;
50 no) enable_targets= ;;
51 *) enable_targets=$enableval ;;
52 esac])dnl
53
54 ac_checking=yes
55 if grep '^RELEASE=y' ${srcdir}/../bfd/Makefile.am >/dev/null 2>/dev/null ; then
56 ac_checking=
57 fi
58 AC_ARG_ENABLE(checking,
59 [ --enable-checking enable run-time checks],
60 [case "${enableval}" in
61 no|none) ac_checking= ;;
62 *) ac_checking=yes ;;
63 esac])dnl
64 if test x$ac_checking != x ; then
65 AC_DEFINE(ENABLE_CHECKING, 1, [Define if you want run-time sanity checks.])
66 fi
67
68 # PR gas/19109
69 # Decide the default method for compressing debug sections.
70 ac_default_compressed_debug_sections=unset
71 # Provide a configure time option to override our default.
72 AC_ARG_ENABLE(compressed_debug_sections,
73 AS_HELP_STRING([--enable-compressed-debug-sections={all,gas,none}],
74 [compress debug sections by default]),
75 [case ,"${enableval}", in
76 ,yes, | ,all, | *,gas,*) ac_default_compressed_debug_sections=yes ;;
77 ,no, | ,none,) ac_default_compressed_debug_sections=no ;;
78 *) ac_default_compressed_debug_sections=unset ;;
79 esac])dnl
80
81 # PR gas/19520
82 # Decide if x86 assembler should generate relax relocations.
83 ac_default_x86_relax_relocations=unset
84 # Provide a configure time option to override our default.
85 AC_ARG_ENABLE(x86_relax_relocations,
86 AS_HELP_STRING([--enable-x86-relax-relocations],
87 [generate x86 relax relocations by default]),
88 [case "${enableval}" in
89 no) ac_default_x86_relax_relocations=0 ;;
90 esac])dnl
91
92 # Decide if ELF assembler should generate common symbols with the
93 # STT_COMMON type.
94 ac_default_elf_stt_common=unset
95 # Provide a configure time option to override our default.
96 AC_ARG_ENABLE(elf_stt_common,
97 AS_HELP_STRING([--enable-elf-stt-common],
98 [generate ELF common symbols with STT_COMMON type by default]),
99 [case "${enableval}" in
100 yes) ac_default_elf_stt_common=1 ;;
101 esac])dnl
102
103 using_cgen=no
104
105 AM_BINUTILS_WARNINGS
106
107 # Generate a header file
108 AC_CONFIG_HEADERS(config.h:config.in)
109
110 dnl Option --with-cpu=TYPE allows configure type control of the default
111 dnl cpu type within the assembler. Currently only the ARC target
112 dnl supports this feature, but others may be added in the future.
113 AC_ARG_WITH(cpu,
114 AS_HELP_STRING([--with-cpu=CPU],
115 [default cpu variant is CPU (currently only supported on ARC)]),
116 [AC_DEFINE_UNQUOTED(TARGET_WITH_CPU,
117 "${with_cpu}",
118 [Target specific CPU.])],
119 [])
120
121 # PR 14072
122 AH_VERBATIM([00_CONFIG_H_CHECK],
123 [/* Check that config.h is #included before system headers
124 (this works only for glibc, but that should be enough). */
125 #if defined(__GLIBC__) && !defined(__FreeBSD_kernel__) && !defined(__CONFIG_H__)
126 # error config.h must be #included before system headers
127 #endif
128 #define __CONFIG_H__ 1])
129
130 # If we are on a DOS filesystem, we must use gdb.ini rather than
131 # .gdbinit.
132 case "${host}" in
133 *-*-msdos* | *-*-go32* | *-*-mingw32* | *-*-windows*)
134 GDBINIT="gdb.ini"
135 AC_CONFIG_FILES(gdb.ini:gdbinit.in)
136 ;;
137 *)
138 GDBINIT=".gdbinit"
139 AC_CONFIG_FILES(.gdbinit:gdbinit.in)
140 ;;
141 esac
142 AC_SUBST(GDBINIT)
143
144 #We need this for the host. BOUT header is in host order.
145 AC_C_BIGENDIAN
146
147 te_file=generic
148
149 # Makefile target for installing gas in $(tooldir)/bin.
150 install_tooldir=install-exec-tooldir
151
152 canon_targets=""
153 all_targets=no
154 if test -n "$enable_targets" ; then
155 for t in `echo $enable_targets | sed 's/,/ /g'`; do
156 if test $t = "all"; then
157 all_targets=yes
158 continue
159 fi
160 result=`$ac_config_sub $t 2>/dev/null`
161 if test -n "$result" ; then
162 canon_targets="$canon_targets $result"
163 # else
164 # # Permit "all", etc. We don't support it yet though.
165 # canon_targets="$canon_targets $t"
166 fi
167 done
168 GAS_UNIQ(canon_targets)
169 fi
170
171 emulations=""
172
173 for this_target in $target $canon_targets ; do
174
175 targ=${this_target}
176 . ${srcdir}/configure.tgt
177
178 case ${target_cpu} in
179 crisv32)
180 AC_DEFINE_UNQUOTED(DEFAULT_CRIS_ARCH, $arch,
181 [Default CRIS architecture.])
182 ;;
183 esac
184
185 if test ${this_target} = $target ; then
186 target_cpu_type=${cpu_type}
187 elif test ${target_cpu_type} != ${cpu_type} ; then
188 continue
189 fi
190
191 generic_target=${cpu_type}-${target_vendor}-${target_os}
192 case ${generic_target} in
193 i386-*-sco3.2v5*)
194 if test ${this_target} = $target; then
195 AC_DEFINE(SCO_ELF, 1, [Define if defaulting to ELF on SCO 5.])
196 fi
197 ;;
198
199 i386-*-msdosdjgpp* \
200 | i386-*-go32* \
201 | i386-go32-rtems*)
202 AC_DEFINE(STRICTCOFF, 1, [Using strict COFF?])
203 ;;
204
205 i386-*-solaris2 \
206 | x86_64-*-solaris2 \
207 | i386-*-solaris2.[[0-9]] \
208 | i386-*-solaris2.1[[01]] \
209 | x86_64-*-solaris2.1[[01]])
210 if test ${this_target} = $target \
211 && test ${ac_default_x86_relax_relocations} = unset; then
212 ac_default_x86_relax_relocations=0
213 fi
214 ;;
215
216 i860-*-*)
217 AC_MSG_WARN(GAS support for ${generic_target} is preliminary and a work in progress)
218 ;;
219
220 microblaze*)
221 ;;
222
223 changequote(,)dnl
224 ppc-*-aix[5-9].*)
225 changequote([,])dnl
226 AC_DEFINE(AIX_WEAK_SUPPORT, 1,
227 [Define if using AIX 5.2 value for C_WEAKEXT.])
228 ;;
229 ppc-*-solaris*)
230 if test ${this_target} = $target; then
231 AC_DEFINE(TARGET_SOLARIS_COMMENT, 1,
232 [Define if default target is PowerPC Solaris.])
233 fi
234 if test x${endian} = xbig; then
235 AC_MSG_ERROR(Solaris must be configured little endian)
236 fi
237 ;;
238
239 sh*-*-symbianelf*)
240 AC_DEFINE(TARGET_SYMBIAN, 1, [Define if target is Symbian OS.])
241 ;;
242 esac
243
244 if test ${this_target} = $target ; then
245 endian_def=
246 if test x${endian} = xbig; then
247 endian_def=1
248 elif test x${endian} = xlittle; then
249 endian_def=0
250 fi
251 if test x${endian_def} != x; then
252 AC_DEFINE_UNQUOTED(TARGET_BYTES_BIG_ENDIAN, $endian_def,
253 [Define as 1 if big endian.])
254 fi
255 fi
256
257 # Other random stuff.
258
259 case ${cpu_type} in
260 mips)
261 # Set mips_cpu to the name of the default CPU.
262 case ${target_cpu} in
263 mips | mipsbe | mipseb | mipsle | mipsel | mips64 | mips64el)
264 mips_cpu=from-abi
265 ;;
266 mipsisa32 | mipsisa32el)
267 mips_cpu=mips32
268 ;;
269 mipsisa32r2 | mipsisa32r2el)
270 mips_cpu=mips32r2
271 ;;
272 mipsisa32r3 | mipsisa32r3el)
273 mips_cpu=mips32r3
274 ;;
275 mipsisa32r5 | mipsisa32r5el)
276 mips_cpu=mips32r5
277 ;;
278 mipsisa32r6 | mipsisa32r6el)
279 mips_cpu=mips32r6
280 ;;
281 mipsisa64 | mipsisa64el)
282 mips_cpu=mips64
283 ;;
284 mipsisa64r2 | mipsisa64r2el)
285 mips_cpu=mips64r2
286 ;;
287 mipsisa64r3 | mipsisa64r3el)
288 mips_cpu=mips64r3
289 ;;
290 mipsisa64r5 | mipsisa64r5el)
291 mips_cpu=mips64r5
292 ;;
293 mipsisa64r6 | mipsisa64r6el)
294 mips_cpu=mips64r6
295 ;;
296 mipstx39 | mipstx39el)
297 mips_cpu=r3900
298 ;;
299 mips64vr | mips64vrel)
300 mips_cpu=vr4100
301 ;;
302 mipsisa32r2* | mipsisa64r2*)
303 changequote(,)dnl
304 mips_cpu=`echo $target_cpu | sed -e 's/[a-z]*..r2//' -e 's/el$//'`
305 changequote([,])dnl
306 ;;
307 mipsisa32r6* | mipsisa64r6*)
308 changequote(,)dnl
309 mips_cpu=`echo $target_cpu | sed -e 's/[a-z]*..r6//' -e 's/el$//'`
310 changequote([,])dnl
311 ;;
312 mips64* | mipsisa64* | mipsisa32*)
313 changequote(,)dnl
314 mips_cpu=`echo $target_cpu | sed -e 's/[a-z]*..//' -e 's/el$//'`
315 changequote([,])dnl
316 ;;
317 mips*)
318 changequote(,)dnl
319 mips_cpu=`echo $target_cpu | sed -e 's/^mips//' -e 's/el$//'`
320 changequote([,])dnl
321 ;;
322 *)
323 AC_MSG_ERROR($target_cpu isn't a supported MIPS CPU name)
324 ;;
325 esac
326 # See whether it's appropriate to set E_MIPS_ABI_O32 for o32
327 # binaries. It's a GNU extension that some OSes don't understand.
328 case ${target} in
329 *-*-irix*)
330 use_e_mips_abi_o32=0
331 ;;
332 *)
333 use_e_mips_abi_o32=1
334 ;;
335 esac
336 # Decide whether to generate 32-bit or 64-bit code by default.
337 # Used to resolve -march=from-abi when an embedded ABI is selected.
338 case ${target} in
339 mips64*-*-* | mipsisa64*-*-*)
340 mips_default_64bit=1
341 ;;
342 *)
343 mips_default_64bit=0
344 ;;
345 esac
346 # Decide which ABI to target by default.
347 case ${target} in
348 mips64*-linux* | mips-sgi-irix6* | mips64*-freebsd* | mips64*-kfreebsd*-gnu)
349 mips_default_abi=N32_ABI
350 ;;
351 mips*-linux* | mips*-freebsd* | mips*-kfreebsd*-gnu)
352 mips_default_abi=O32_ABI
353 ;;
354 mips64*-openbsd*)
355 mips_default_abi=N64_ABI
356 ;;
357 *)
358 mips_default_abi=NO_ABI
359 ;;
360 esac
361 AC_DEFINE_UNQUOTED(MIPS_CPU_STRING_DEFAULT, "$mips_cpu",
362 [Default CPU for MIPS targets. ])
363 AC_DEFINE_UNQUOTED(USE_E_MIPS_ABI_O32, $use_e_mips_abi_o32,
364 [Allow use of E_MIPS_ABI_O32 on MIPS targets. ])
365 AC_DEFINE_UNQUOTED(MIPS_DEFAULT_64BIT, $mips_default_64bit,
366 [Generate 64-bit code by default on MIPS targets. ])
367 AC_DEFINE_UNQUOTED(MIPS_DEFAULT_ABI, $mips_default_abi,
368 [Choose a default ABI for MIPS targets. ])
369 ;;
370 esac
371
372 # Do we need the opcodes library?
373 case ${cpu_type} in
374 vax | tic30)
375 ;;
376
377 *)
378 need_opcodes=yes
379
380 case "${enable_shared}" in
381 yes) shared_opcodes=true ;;
382 *opcodes*) shared_opcodes=true ;;
383 *) shared_opcodes=false ;;
384 esac
385 ;;
386 esac
387
388 # Any other special object files needed ?
389 case ${cpu_type} in
390
391 bfin)
392 echo ${extra_objects} | grep -s "bfin-parse.o"
393 if test $? -ne 0 ; then
394 extra_objects="$extra_objects bfin-parse.o"
395 fi
396
397 echo ${extra_objects} | grep -s "bfin-lex-wrapper.o"
398 if test $? -ne 0 ; then
399 extra_objects="$extra_objects bfin-lex-wrapper.o"
400 fi
401 ;;
402
403 epiphany | fr30 | ip2k | iq2000 | lm32 | m32r | or1k)
404 using_cgen=yes
405 ;;
406
407 m32c)
408 using_cgen=yes
409 ;;
410 frv)
411 using_cgen=yes
412 ;;
413 m68k)
414 case ${extra_objects} in
415 *m68k-parse.o*) ;;
416 *) extra_objects="$extra_objects m68k-parse.o" ;;
417 esac
418 ;;
419
420 mep)
421 using_cgen=yes
422 ;;
423
424 mips)
425 echo ${extra_objects} | grep -s "itbl-parse.o"
426 if test $? -ne 0 ; then
427 extra_objects="$extra_objects itbl-parse.o"
428 fi
429
430 echo ${extra_objects} | grep -s "itbl-lex-wrapper.o"
431 if test $? -ne 0 ; then
432 extra_objects="$extra_objects itbl-lex-wrapper.o"
433 fi
434
435 echo ${extra_objects} | grep -s "itbl-ops.o"
436 if test $? -ne 0 ; then
437 extra_objects="$extra_objects itbl-ops.o"
438 fi
439 ;;
440
441 mt)
442 using_cgen=yes
443 ;;
444
445 nds32)
446 # Decide BASELINE, REDUCED_REGS, FPU_DP_EXT, FPU_SP_EXT features
447 # based on arch_name.
448 AC_MSG_CHECKING(for default configuration of --with-arch)
449 if test "x${with_arch}" != x; then
450 case ${with_arch} in
451 v2j | v2s | v2f | v2 | v3m | v3j | v3s | v3f | v3 )
452 AC_DEFINE_UNQUOTED(NDS32_DEFAULT_ARCH_NAME, "$with_arch",
453 [Define value for nds32_arch_name])
454 ;;
455 *)
456 AC_MSG_ERROR(This kind of arch name does *NOT* exist!)
457 ;;
458 esac
459 fi
460 AC_MSG_RESULT($with_arch)
461
462 # Decide features one by one.
463 AC_MSG_CHECKING(for default configuration of --enable-dx-regs)
464 if test "x${enable_dx_regs}" = xyes; then
465 AC_DEFINE(NDS32_DEFAULT_DX_REGS, 1,
466 [Define value for nds32_dx_regs])
467 else
468 AC_DEFINE(NDS32_DEFAULT_DX_REGS, 0,
469 [Define default value for nds32_dx_regs])
470 fi
471 AC_MSG_RESULT($enable_dx_regs)
472
473 AC_MSG_CHECKING(for default configuration of --enable-perf-ext)
474 if test "x${enable_perf_ext}" = xno; then
475 AC_DEFINE(NDS32_DEFAULT_PERF_EXT, 0,
476 [Define value for nds32_perf_ext])
477 else
478 AC_DEFINE(NDS32_DEFAULT_PERF_EXT, 1,
479 [Define default value for nds32_perf_ext])
480 fi
481 AC_MSG_RESULT($enable_perf_ext)
482
483 AC_MSG_CHECKING(for default configuration of --enable-perf-ext2)
484 if test "x${enable_perf_ext2}" = xno; then
485 AC_DEFINE(NDS32_DEFAULT_PERF_EXT2, 0,
486 [Define value for nds32_perf_ext2])
487 else
488 AC_DEFINE(NDS32_DEFAULT_PERF_EXT2, 1,
489 [Define default value for nds32_perf_ext2])
490 fi
491 AC_MSG_RESULT($enable_perf_ext2)
492
493 AC_MSG_CHECKING(for default configuration of --enable-string-ext)
494 if test "x${enable_string_ext}" = xno; then
495 AC_DEFINE(NDS32_DEFAULT_STRING_EXT, 0,
496 [Define value for nds32_string_ext])
497 else
498 AC_DEFINE(NDS32_DEFAULT_STRING_EXT, 1,
499 [Define default value for nds32_string_ext])
500 fi
501 AC_MSG_RESULT($enable_string_ext)
502
503 AC_MSG_CHECKING(for default configuration of --enable-audio-ext)
504 if test "x${enable_audio_ext}" = xno; then
505 AC_DEFINE(NDS32_DEFAULT_AUDIO_EXT, 0,
506 [Define value for nds32_audio_ext])
507 else
508 AC_DEFINE(NDS32_DEFAULT_AUDIO_EXT, 1,
509 [Define default value for nds32_audio_ext])
510 fi
511 AC_MSG_RESULT($enable_audio_ext)
512 ;;
513
514 i386 | riscv | s390 | sparc)
515 if test $this_target = $target ; then
516 AC_DEFINE_UNQUOTED(DEFAULT_ARCH, "${arch}", [Default architecture.])
517 fi
518 ;;
519
520 rl78)
521 echo ${extra_objects} | grep -s "rl78-parse.o"
522 if test $? -ne 0 ; then
523 extra_objects="$extra_objects rl78-parse.o"
524 fi
525 ;;
526
527 rx)
528 echo ${extra_objects} | grep -s "rx-parse.o"
529 if test $? -ne 0 ; then
530 extra_objects="$extra_objects rx-parse.o"
531 fi
532 ;;
533
534 xstormy16)
535 using_cgen=yes
536 ;;
537
538 xc16x)
539 using_cgen=yes
540 ;;
541
542 xtensa)
543 echo ${extra_objects} | grep -s "xtensa-relax.o"
544 if test $? -ne 0 ; then
545 extra_objects="$extra_objects xtensa-relax.o"
546 fi
547 ;;
548
549 *)
550 ;;
551 esac
552
553 if test $using_cgen = yes ; then
554 case "x${extra_objects}" in
555 *cgen.o*) ;;
556 *) extra_objects="$extra_objects cgen.o" ;;
557 esac
558 fi
559
560 # See if we really can support this configuration with the emulation code.
561
562 if test $this_target = $target ; then
563 obj_format=$fmt
564 te_file=$em
565 fi
566
567 case ${te_file} in
568 vms) extra_objects="$extra_objects te-vms.o" ;;
569 esac
570
571 # From target name and format, produce a list of supported emulations.
572
573 case ${generic_target}-${fmt} in
574 mips-*-*-*) case "$endian" in
575 big) emulation="mipsbelf mipslelf mipself" ;;
576 *) emulation="mipslelf mipsbelf mipself" ;;
577 esac ;;
578 # i386-pc-pe-coff != i386-pc-coff.
579 i386-*-pe-coff) ;;
580 # Uncommenting the next line will turn on support for i386 AOUT
581 # for the default linux configuration
582 # i386-*-linux*-elf) emulation="i386elf i386aout" ;;
583 #
584 i386-*-aout) emulation="i386aout" ;;
585 i386-*-coff) emulation="i386coff" ;;
586 i386-*-elf) emulation="i386elf" ;;
587
588 # Always all formats. The first stated emulation becomes the default.
589 cris-*-*aout*) emulation="crisaout criself" ;;
590 cris-*-*) emulation="criself crisaout" ;;
591 esac
592
593 emulations="$emulations $emulation"
594
595 done
596
597 if test ${ac_default_x86_relax_relocations} = unset; then
598 ac_default_x86_relax_relocations=1
599 fi
600 AC_DEFINE_UNQUOTED(DEFAULT_GENERATE_X86_RELAX_RELOCATIONS,
601 $ac_default_x86_relax_relocations,
602 [Define to 1 if you want to generate x86 relax relocations by default.])
603
604 if test ${ac_default_elf_stt_common} = unset; then
605 ac_default_elf_stt_common=0
606 fi
607 AC_DEFINE_UNQUOTED(DEFAULT_GENERATE_ELF_STT_COMMON,
608 $ac_default_elf_stt_common,
609 [Define to 1 if you want to generate ELF common symbols with the
610 STT_COMMON type by default.])
611
612 if test x$ac_default_compressed_debug_sections = xyes ; then
613 AC_DEFINE(DEFAULT_FLAG_COMPRESS_DEBUG, 1, [Define if you want compressed debug sections by default.])
614 fi
615
616 # Turn on all targets if possible
617 if test ${all_targets} = "yes"; then
618 case ${target_cpu_type} in
619 i386)
620 case ${obj_format} in
621 aout)
622 emulations="$emulations i386coff i386elf"
623 ;;
624 coff)
625 emulations="$emulations i386aout i386elf"
626 ;;
627 elf)
628 emulations="$emulations i386aout i386coff"
629 ;;
630 esac
631 ;;
632 x86_64)
633 case ${obj_format} in
634 aout)
635 emulations="$emulations i386coff i386elf"
636 ;;
637 coff)
638 emulations="$emulations i386aout i386elf"
639 ;;
640 elf)
641 emulations="$emulations i386aout i386coff"
642 ;;
643 esac
644 ;;
645 esac
646 fi
647
648 # PE code has way too many macros tweaking behaviour
649 case ${te_file} in
650 pe*) emulations="" ;;
651 esac
652
653 # Assign floating point type. Most processors with FP support
654 # IEEE FP. On those that don't support FP at all, usually IEEE
655 # is emulated.
656 case ${target_cpu} in
657 vax | pdp11 ) atof=vax ;;
658 *) atof=ieee ;;
659 esac
660
661 case "${obj_format}" in
662 "") AC_MSG_ERROR(GAS does not know what format to use for target ${target}) ;;
663 esac
664
665 # Unfortunately the cpu in cpu-opc.h file isn't always $(TARGET_CPU).
666 cgen_cpu_prefix=""
667 if test $using_cgen = yes ; then
668 case ${target_cpu} in
669 or1knd)
670 cgen_cpu_prefix=or1k ;;
671 *) cgen_cpu_prefix=${target_cpu} ;;
672 esac
673 AC_SUBST(cgen_cpu_prefix)
674 AC_DEFINE(USING_CGEN, 1, [Using cgen code?])
675 fi
676
677 dnl
678 dnl Make sure the desired support files exist.
679 dnl
680
681 if test ! -r ${srcdir}/config/tc-${target_cpu_type}.c; then
682 AC_MSG_ERROR(GAS does not support target CPU ${target_cpu_type})
683 fi
684
685 if test ! -r ${srcdir}/config/obj-${obj_format}.c; then
686 AC_MSG_ERROR(GAS does not have support for object file format ${obj_format})
687 fi
688
689 # Some COFF configurations want these random other flags set.
690 case ${obj_format} in
691 coff)
692 case ${target_cpu_type} in
693 i386) AC_DEFINE(I386COFF, 1, [Using i386 COFF?]) ;;
694 m68k) AC_DEFINE(M68KCOFF, 1, [Using m68k COFF?]) ;;
695 m88k) AC_DEFINE(M88KCOFF, 1, [Using m88k COFF?]) ;;
696 x86_64) AC_DEFINE(I386COFF, 1, [Using i386 COFF?]) ;;
697 esac
698 ;;
699 esac
700
701 # Getting this done right is going to be a bitch. Each configuration specified
702 # with --enable-targets=... should be checked for environment, format, cpu
703 # setting.
704 #
705 # For each configuration, the necessary object file support code must be linked
706 # in. This might be only one, it might be up to four. The necessary emulation
707 # code needs to be provided, too.
708 #
709 # And then there's "--enable-targets=all"....
710 #
711 # For now, just always do it for MIPS ELF configurations. Sigh.
712
713 formats="${obj_format}"
714 emfiles=""
715 EMULATIONS=""
716 GAS_UNIQ(emulations)
717 for em in . $emulations ; do
718 case $em in
719 .) continue ;;
720 mipsbelf | mipslelf | mipself)
721 fmt=elf file=mipself ;;
722 *coff)
723 fmt=coff file=$em ;;
724 *aout)
725 fmt=aout file=$em ;;
726 *elf)
727 fmt=elf file=$em ;;
728 esac
729 formats="$formats $fmt"
730 emfiles="$emfiles e-$file.o"
731 EMULATIONS="$EMULATIONS &$em,"
732 done
733 GAS_UNIQ(formats)
734 GAS_UNIQ(emfiles)
735 if test `set . $formats ; shift ; echo $#` -gt 1 ; then
736 for fmt in $formats ; do
737 case $fmt in
738 aout) AC_DEFINE(OBJ_MAYBE_AOUT, 1, [a.out support?]) ;;
739 bout) AC_DEFINE(OBJ_MAYBE_BOUT, 1, [b.out support?]) ;;
740 coff) AC_DEFINE(OBJ_MAYBE_COFF, 1, [COFF support?]) ;;
741 ecoff) AC_DEFINE(OBJ_MAYBE_ECOFF, 1, [ECOFF support?]) ;;
742 elf) AC_DEFINE(OBJ_MAYBE_ELF, 1, [ELF support?]) ;;
743 generic) AC_DEFINE(OBJ_MAYBE_GENERIC, 1, [generic support?]) ;;
744 som) AC_DEFINE(OBJ_MAYBE_SOM, 1, [SOM support?]) ;;
745 esac
746 extra_objects="$extra_objects obj-$fmt.o"
747 done
748 obj_format=multi
749 fi
750 if test `set . $emfiles ; shift ; echo $#` -gt 0 ; then
751 DEFAULT_EMULATION=`set . $emulations ; echo $2`
752 # e-mipself has more than one emulation per file, e-i386* has just one at the
753 # moment. If only one emulation is specified, then don't define
754 # USE_EMULATIONS or include any of the e-files as they will only be bloat.
755 case "${obj_format}${emfiles}" in
756 multi* | *mipself*)
757 extra_objects="$extra_objects $emfiles"
758 AC_DEFINE(USE_EMULATIONS, 1, [Use emulation support?]) ;;
759 esac
760 fi
761 AC_SUBST(extra_objects)
762 AC_DEFINE_UNQUOTED(EMULATIONS, $EMULATIONS, [Supported emulations.])
763 AC_DEFINE_UNQUOTED(DEFAULT_EMULATION, "$DEFAULT_EMULATION",
764 [Default emulation.])
765
766 reject_dev_configs=yes
767
768 case ${reject_dev_configs}-${dev} in
769 yes-yes) # Oops.
770 AC_MSG_ERROR(GAS does not support the ${generic_target} configuration.)
771 ;;
772 esac
773
774 AC_SUBST(target_cpu_type)
775 AC_SUBST(obj_format)
776 AC_SUBST(te_file)
777 AC_SUBST(install_tooldir)
778 AC_SUBST(atof)
779 dnl AC_SUBST(emulation)
780
781 # do we need the opcodes library?
782 case "${need_opcodes}" in
783 yes)
784 OPCODES_LIB=../opcodes/libopcodes.la
785 ;;
786 esac
787
788 AC_SUBST(OPCODES_LIB)
789
790 AC_DEFINE_UNQUOTED(TARGET_ALIAS, "${target_alias}", [Target alias.])
791 AC_DEFINE_UNQUOTED(TARGET_CANONICAL, "${target}", [Canonical target.])
792 AC_DEFINE_UNQUOTED(TARGET_CPU, "${target_cpu}", [Target CPU.])
793 AC_DEFINE_UNQUOTED(TARGET_VENDOR, "${target_vendor}", [Target vendor.])
794 AC_DEFINE_UNQUOTED(TARGET_OS, "${target_os}", [Target OS.])
795
796 AC_PROG_YACC
797 AM_PROG_LEX
798
799 ALL_LINGUAS="fr tr es rw id ru fi ja zh_CN"
800 ZW_GNU_GETTEXT_SISTER_DIR
801 AM_PO_SUBDIRS
802
803 AM_MAINTAINER_MODE
804 AM_CONDITIONAL(GENINSRC_NEVER, false)
805 AC_EXEEXT
806
807 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)
808 ACX_HEADER_STRING
809
810 # Put this here so that autoconf's "cross-compiling" message doesn't confuse
811 # people who are not cross-compiling but are compiling cross-assemblers.
812 AC_MSG_CHECKING(whether compiling a cross-assembler)
813 if test "${host}" = "${target}"; then
814 cross_gas=no
815 else
816 cross_gas=yes
817 AC_DEFINE(CROSS_COMPILE, 1, [Compiling cross-assembler?])
818 fi
819 AC_MSG_RESULT($cross_gas)
820
821 dnl ansidecl.h will deal with const
822 dnl AC_C_CONST
823 AC_FUNC_ALLOCA
824 AC_C_INLINE
825
826 # VMS doesn't have unlink.
827 AC_CHECK_FUNCS(unlink remove, break)
828 AC_CHECK_FUNCS(sbrk setlocale)
829
830 AM_LC_MESSAGES
831
832 # do we need the math library?
833 case "${need_libm}" in
834 yes)
835 LT_LIB_M
836 AC_SUBST(LIBM)
837 ;;
838 esac
839
840 # Some non-ANSI preprocessors botch requoting inside strings. That's bad
841 # enough, but on some of those systems, the assert macro relies on requoting
842 # working properly!
843 GAS_WORKING_ASSERT
844
845 # On some systems, the system header files may not declare malloc, realloc,
846 # and free. There are places where gas needs these functions to have been
847 # declared -- such as when taking their addresses.
848 gas_test_headers="
849 #ifdef HAVE_MEMORY_H
850 #include <memory.h>
851 #endif
852 #ifdef HAVE_STRING_H
853 #include <string.h>
854 #else
855 #ifdef HAVE_STRINGS_H
856 #include <strings.h>
857 #endif
858 #endif
859 #ifdef HAVE_STDLIB_H
860 #include <stdlib.h>
861 #endif
862 #ifdef HAVE_UNISTD_H
863 #include <unistd.h>
864 #endif
865 "
866
867 # Does errno.h declare errno, or do we have to add a separate declaration
868 # for it?
869 GAS_CHECK_DECL_NEEDED(errno, f, int f, [
870 #ifdef HAVE_ERRNO_H
871 #include <errno.h>
872 #endif
873 ])
874
875 AC_MSG_CHECKING(for a known getopt prototype in unistd.h)
876 AC_CACHE_VAL(gas_cv_decl_getopt_unistd_h,
877 [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([#include <unistd.h>], [extern int getopt (int, char *const*, const char *);])],
878 gas_cv_decl_getopt_unistd_h=yes, gas_cv_decl_getopt_unistd_h=no)])
879 AC_MSG_RESULT($gas_cv_decl_getopt_unistd_h)
880 if test $gas_cv_decl_getopt_unistd_h = yes; then
881 AC_DEFINE([HAVE_DECL_GETOPT], 1,
882 [Is the prototype for getopt in <unistd.h> in the expected format?])
883 fi
884
885 GAS_CHECK_DECL_NEEDED(environ, f, char **f, $gas_test_headers)
886 GAS_CHECK_DECL_NEEDED(ffs, f, int (*f)(int), $gas_test_headers)
887 GAS_CHECK_DECL_NEEDED(free, f, void (*f)(), $gas_test_headers)
888 GAS_CHECK_DECL_NEEDED(malloc, f, char *(*f)(), $gas_test_headers)
889 GAS_CHECK_DECL_NEEDED(sbrk, f, char *(*f)(), $gas_test_headers)
890 GAS_CHECK_DECL_NEEDED(strstr, f, char *(*f)(), $gas_test_headers)
891
892 AC_CHECK_DECLS([free, getenv, malloc, mempcpy, realloc, stpcpy, strstr, vsnprintf, asprintf])
893
894 BFD_BINARY_FOPEN
895
896 # Link in zlib if we can. This allows us to write compressed debug sections.
897 AM_ZLIB
898
899 # Support for VMS timestamps via cross compile
900
901 if test "$ac_cv_header_time_h" = yes; then
902 GAS_HAVE_TIME_TYPE_MEMBER(struct tm, tm_gmtoff)
903 fi
904
905 if test "$ac_cv_header_sys_stat_h" = yes; then
906 GAS_HAVE_SYS_STAT_TYPE_MEMBER(struct stat, st_mtim, tv_sec)
907 GAS_HAVE_SYS_STAT_TYPE_MEMBER(struct stat, st_mtim, tv_nsec)
908 fi
909
910
911 dnl Required for html, pdf, install-pdf and install-html targets.
912 AC_SUBST(datarootdir)
913 AC_SUBST(docdir)
914 AC_SUBST(htmldir)
915 AC_SUBST(pdfdir)
916
917 dnl This must come last.
918
919 dnl We used to make symlinks to files in the source directory, but now
920 dnl we just use the right name for .c files, and create .h files in
921 dnl the build directory which include the right .h file. Make sure
922 dnl the old symlinks don't exist, so that a reconfigure in an existing
923 dnl directory behaves reasonably.
924
925 AC_CONFIG_FILES(Makefile doc/Makefile po/Makefile.in:po/Make-in)
926 AC_CONFIG_COMMANDS([default],
927 [rm -f targ-cpu.c targ-cpu.h obj-format.h obj-format.c targ-env.h atof-targ.c itbl-cpu.h
928 echo '#include "tc-'"${target_cpu_type}"'.h"' > targ-cpu.h
929 echo '#include "obj-'"${obj_format}"'.h"' > obj-format.h
930 echo '#include "te-'"${te_file}"'.h"' > targ-env.h
931 echo '#include "itbl-'"${target_cpu_type}"'.h"' > itbl-cpu.h
932 if test "x$cgen_cpu_prefix" != x ; then
933 echo '#include "opcodes/'"${cgen_cpu_prefix}"'-desc.h"' > cgen-desc.h
934 fi],
935 [target_cpu_type=${target_cpu_type}
936 cgen_cpu_prefix=${cgen_cpu_prefix}
937 obj_format=${obj_format}
938 te_file=${te_file}])
939
940 AC_OUTPUT
This page took 0.052148 seconds and 4 git commands to generate.