configure.ac revision 1.5
1dnl Process this file with autoconf to produce a configure script. 2dnl 3dnl And be careful when changing it! If you must add tests with square 4dnl brackets, be sure changequote invocations surround it. 5dnl 6dnl Copyright (C) 2012-2018 Free Software Foundation, Inc. 7dnl 8dnl This file is free software; you can redistribute it and/or modify 9dnl it under the terms of the GNU General Public License as published by 10dnl the Free Software Foundation; either version 3 of the License, or 11dnl (at your option) any later version. 12dnl 13dnl This program is distributed in the hope that it will be useful, 14dnl but WITHOUT ANY WARRANTY; without even the implied warranty of 15dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16dnl GNU General Public License for more details. 17dnl 18dnl You should have received a copy of the GNU General Public License 19dnl along with this program; see the file COPYING3. If not see 20dnl <http://www.gnu.org/licenses/>. 21dnl 22dnl v2.5 needed for --bindir et al 23AC_PREREQ(2.59) 24m4_include([../bfd/version.m4]) 25AC_INIT([gas], BFD_VERSION) 26AC_CONFIG_SRCDIR(as.h) 27 28dnl Autoconf 2.57 will find the aux dir without this. However, unless 29dnl we specify this explicitly, automake-1.7 will assume that ylwrap is in 30dnl gas/ instead of gas/../. 31AC_CONFIG_AUX_DIR(..) 32AC_CANONICAL_TARGET 33AC_ISC_POSIX 34 35AM_INIT_AUTOMAKE 36 37AC_PROG_CC 38AC_GNU_SOURCE 39AC_USE_SYSTEM_EXTENSIONS 40 41LT_INIT 42ACX_LARGEFILE 43ACX_PROG_CMP_IGNORE_INITIAL 44 45AC_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 ;; 52esac])dnl 53 54ac_checking=yes 55if grep '^RELEASE=y' ${srcdir}/../bfd/Makefile.am >/dev/null 2>/dev/null ; then 56 ac_checking= 57fi 58AC_ARG_ENABLE(checking, 59[ --enable-checking enable run-time checks], 60[case "${enableval}" in 61 no|none) ac_checking= ;; 62 *) ac_checking=yes ;; 63esac])dnl 64if test x$ac_checking != x ; then 65 AC_DEFINE(ENABLE_CHECKING, 1, [Define if you want run-time sanity checks.]) 66fi 67 68# PR gas/19109 69# Decide the default method for compressing debug sections. 70ac_default_compressed_debug_sections=unset 71# Provide a configure time option to override our default. 72AC_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 ;; 79esac])dnl 80 81# PR gas/19520 82# Decide if x86 assembler should generate relax relocations. 83ac_default_x86_relax_relocations=unset 84# Provide a configure time option to override our default. 85AC_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 ;; 90esac])dnl 91 92# Decide if ELF assembler should generate common symbols with the 93# STT_COMMON type. 94ac_default_elf_stt_common=unset 95# Provide a configure time option to override our default. 96AC_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 ;; 101esac])dnl 102 103using_cgen=no 104 105AM_BINUTILS_WARNINGS 106 107# Generate a header file 108AC_CONFIG_HEADERS(config.h:config.in) 109 110dnl Option --with-cpu=TYPE allows configure type control of the default 111dnl cpu type within the assembler. Currently only the ARC target 112dnl supports this feature, but others may be added in the future. 113AC_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 122AH_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. 132case "${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 ;; 141esac 142AC_SUBST(GDBINIT) 143 144#We need this for the host. BOUT header is in host order. 145AC_C_BIGENDIAN 146 147te_file=generic 148 149# Makefile target for installing gas in $(tooldir)/bin. 150install_tooldir=install-exec-tooldir 151 152canon_targets="" 153all_targets=no 154if 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) 169fi 170 171emulations="" 172 173for 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 223changequote(,)dnl 224 ppc-*-aix[5-9].*) 225changequote([,])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*) 303changequote(,)dnl 304 mips_cpu=`echo $target_cpu | sed -e 's/[a-z]*..r2//' -e 's/el$//'` 305changequote([,])dnl 306 ;; 307 mipsisa32r6* | mipsisa64r6*) 308changequote(,)dnl 309 mips_cpu=`echo $target_cpu | sed -e 's/[a-z]*..r6//' -e 's/el$//'` 310changequote([,])dnl 311 ;; 312 mips64* | mipsisa64* | mipsisa32*) 313changequote(,)dnl 314 mips_cpu=`echo $target_cpu | sed -e 's/[a-z]*..//' -e 's/el$//'` 315changequote([,])dnl 316 ;; 317 mips*) 318changequote(,)dnl 319 mips_cpu=`echo $target_cpu | sed -e 's/^mips//' -e 's/el$//'` 320changequote([,])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* \ 349 | mips64*-kfreebsd*-gnu | mips64*-ps2-elf*) 350 mips_default_abi=N32_ABI 351 ;; 352 mips*-linux* | mips*-freebsd* | mips*-kfreebsd*-gnu) 353 mips_default_abi=O32_ABI 354 ;; 355 mips64*-openbsd*) 356 mips_default_abi=N64_ABI 357 ;; 358 *) 359 mips_default_abi=NO_ABI 360 ;; 361 esac 362 AC_DEFINE_UNQUOTED(MIPS_CPU_STRING_DEFAULT, "$mips_cpu", 363 [Default CPU for MIPS targets. ]) 364 AC_DEFINE_UNQUOTED(USE_E_MIPS_ABI_O32, $use_e_mips_abi_o32, 365 [Allow use of E_MIPS_ABI_O32 on MIPS targets. ]) 366 AC_DEFINE_UNQUOTED(MIPS_DEFAULT_64BIT, $mips_default_64bit, 367 [Generate 64-bit code by default on MIPS targets. ]) 368 AC_DEFINE_UNQUOTED(MIPS_DEFAULT_ABI, $mips_default_abi, 369 [Choose a default ABI for MIPS targets. ]) 370 ;; 371 esac 372 373 # Do we need the opcodes library? 374 case ${cpu_type} in 375 vax | tic30) 376 ;; 377 378 *) 379 need_opcodes=yes 380 381 case "${enable_shared}" in 382 yes) shared_opcodes=true ;; 383 *opcodes*) shared_opcodes=true ;; 384 *) shared_opcodes=false ;; 385 esac 386 ;; 387 esac 388 389 # Any other special object files needed ? 390 case ${cpu_type} in 391 392 bfin) 393 echo ${extra_objects} | grep -s "bfin-parse.o" 394 if test $? -ne 0 ; then 395 extra_objects="$extra_objects bfin-parse.o" 396 fi 397 398 echo ${extra_objects} | grep -s "bfin-lex-wrapper.o" 399 if test $? -ne 0 ; then 400 extra_objects="$extra_objects bfin-lex-wrapper.o" 401 fi 402 ;; 403 404 epiphany | fr30 | ip2k | iq2000 | lm32 | m32r | or1k) 405 using_cgen=yes 406 ;; 407 408 m32c) 409 using_cgen=yes 410 ;; 411 frv) 412 using_cgen=yes 413 ;; 414 m68k) 415 case ${extra_objects} in 416 *m68k-parse.o*) ;; 417 *) extra_objects="$extra_objects m68k-parse.o" ;; 418 esac 419 ;; 420 421 mep) 422 using_cgen=yes 423 ;; 424 425 mips) 426 echo ${extra_objects} | grep -s "itbl-parse.o" 427 if test $? -ne 0 ; then 428 extra_objects="$extra_objects itbl-parse.o" 429 fi 430 431 echo ${extra_objects} | grep -s "itbl-lex-wrapper.o" 432 if test $? -ne 0 ; then 433 extra_objects="$extra_objects itbl-lex-wrapper.o" 434 fi 435 436 echo ${extra_objects} | grep -s "itbl-ops.o" 437 if test $? -ne 0 ; then 438 extra_objects="$extra_objects itbl-ops.o" 439 fi 440 ;; 441 442 mt) 443 using_cgen=yes 444 ;; 445 446 nds32) 447 # Decide BASELINE, REDUCED_REGS, FPU_DP_EXT, FPU_SP_EXT features 448 # based on arch_name. 449 AC_MSG_CHECKING(for default configuration of --with-arch) 450 if test "x${with_arch}" != x; then 451 case ${with_arch} in 452 v2j | v2s | v2f | v2 | v3m | v3j | v3s | v3f | v3 ) 453 AC_DEFINE_UNQUOTED(NDS32_DEFAULT_ARCH_NAME, "$with_arch", 454 [Define value for nds32_arch_name]) 455 ;; 456 *) 457 AC_MSG_ERROR(This kind of arch name does *NOT* exist!) 458 ;; 459 esac 460 fi 461 AC_MSG_RESULT($with_arch) 462 463 # Decide features one by one. 464 AC_MSG_CHECKING(for default configuration of --enable-dx-regs) 465 if test "x${enable_dx_regs}" = xyes; then 466 AC_DEFINE(NDS32_DEFAULT_DX_REGS, 1, 467 [Define value for nds32_dx_regs]) 468 else 469 AC_DEFINE(NDS32_DEFAULT_DX_REGS, 0, 470 [Define default value for nds32_dx_regs]) 471 fi 472 AC_MSG_RESULT($enable_dx_regs) 473 474 AC_MSG_CHECKING(for default configuration of --enable-perf-ext) 475 if test "x${enable_perf_ext}" = xno; then 476 AC_DEFINE(NDS32_DEFAULT_PERF_EXT, 0, 477 [Define value for nds32_perf_ext]) 478 else 479 AC_DEFINE(NDS32_DEFAULT_PERF_EXT, 1, 480 [Define default value for nds32_perf_ext]) 481 fi 482 AC_MSG_RESULT($enable_perf_ext) 483 484 AC_MSG_CHECKING(for default configuration of --enable-perf-ext2) 485 if test "x${enable_perf_ext2}" = xno; then 486 AC_DEFINE(NDS32_DEFAULT_PERF_EXT2, 0, 487 [Define value for nds32_perf_ext2]) 488 else 489 AC_DEFINE(NDS32_DEFAULT_PERF_EXT2, 1, 490 [Define default value for nds32_perf_ext2]) 491 fi 492 AC_MSG_RESULT($enable_perf_ext2) 493 494 AC_MSG_CHECKING(for default configuration of --enable-string-ext) 495 if test "x${enable_string_ext}" = xno; then 496 AC_DEFINE(NDS32_DEFAULT_STRING_EXT, 0, 497 [Define value for nds32_string_ext]) 498 else 499 AC_DEFINE(NDS32_DEFAULT_STRING_EXT, 1, 500 [Define default value for nds32_string_ext]) 501 fi 502 AC_MSG_RESULT($enable_string_ext) 503 504 AC_MSG_CHECKING(for default configuration of --enable-audio-ext) 505 if test "x${enable_audio_ext}" = xno; then 506 AC_DEFINE(NDS32_DEFAULT_AUDIO_EXT, 0, 507 [Define value for nds32_audio_ext]) 508 else 509 AC_DEFINE(NDS32_DEFAULT_AUDIO_EXT, 1, 510 [Define default value for nds32_audio_ext]) 511 fi 512 AC_MSG_RESULT($enable_audio_ext) 513 ;; 514 515 aarch64 | i386 | riscv | s390 | sparc) 516 if test $this_target = $target ; then 517 AC_DEFINE_UNQUOTED(DEFAULT_ARCH, "${arch}", [Default architecture.]) 518 fi 519 ;; 520 521 rl78) 522 echo ${extra_objects} | grep -s "rl78-parse.o" 523 if test $? -ne 0 ; then 524 extra_objects="$extra_objects rl78-parse.o" 525 fi 526 ;; 527 528 rx) 529 echo ${extra_objects} | grep -s "rx-parse.o" 530 if test $? -ne 0 ; then 531 extra_objects="$extra_objects rx-parse.o" 532 fi 533 ;; 534 535 xstormy16) 536 using_cgen=yes 537 ;; 538 539 xc16x) 540 using_cgen=yes 541 ;; 542 543 xtensa) 544 echo ${extra_objects} | grep -s "xtensa-relax.o" 545 if test $? -ne 0 ; then 546 extra_objects="$extra_objects xtensa-relax.o" 547 fi 548 ;; 549 550 *) 551 ;; 552 esac 553 554 if test $using_cgen = yes ; then 555 case "x${extra_objects}" in 556 *cgen.o*) ;; 557 *) extra_objects="$extra_objects cgen.o" ;; 558 esac 559 fi 560 561# See if we really can support this configuration with the emulation code. 562 563 if test $this_target = $target ; then 564 obj_format=$fmt 565 te_file=$em 566 fi 567 568 case ${te_file} in 569 vms) extra_objects="$extra_objects te-vms.o" ;; 570 esac 571 572# From target name and format, produce a list of supported emulations. 573 574 case ${generic_target}-${fmt} in 575 mips-*-*-*) case "$endian" in 576 big) emulation="mipsbelf mipslelf mipself" ;; 577 *) emulation="mipslelf mipsbelf mipself" ;; 578 esac ;; 579 # i386-pc-pe-coff != i386-pc-coff. 580 i386-*-pe-coff) ;; 581 # Uncommenting the next line will turn on support for i386 AOUT 582 # for the default linux configuration 583 # i386-*-linux*-elf) emulation="i386elf i386aout" ;; 584 # 585 i386-*-aout) emulation="i386aout" ;; 586 i386-*-coff) emulation="i386coff" ;; 587 i386-*-elf) emulation="i386elf" ;; 588 589 # Always all formats. The first stated emulation becomes the default. 590 cris-*-*aout*) emulation="crisaout criself" ;; 591 cris-*-*) emulation="criself crisaout" ;; 592 esac 593 594 emulations="$emulations $emulation" 595 596done 597 598if test ${ac_default_x86_relax_relocations} = unset; then 599 ac_default_x86_relax_relocations=1 600fi 601AC_DEFINE_UNQUOTED(DEFAULT_GENERATE_X86_RELAX_RELOCATIONS, 602 $ac_default_x86_relax_relocations, 603 [Define to 1 if you want to generate x86 relax relocations by default.]) 604 605if test ${ac_default_elf_stt_common} = unset; then 606 ac_default_elf_stt_common=0 607fi 608AC_DEFINE_UNQUOTED(DEFAULT_GENERATE_ELF_STT_COMMON, 609 $ac_default_elf_stt_common, 610 [Define to 1 if you want to generate ELF common symbols with the 611 STT_COMMON type by default.]) 612 613if test x$ac_default_compressed_debug_sections = xyes ; then 614 AC_DEFINE(DEFAULT_FLAG_COMPRESS_DEBUG, 1, [Define if you want compressed debug sections by default.]) 615fi 616 617# Turn on all targets if possible 618if test ${all_targets} = "yes"; then 619 case ${target_cpu_type} in 620 i386) 621 case ${obj_format} in 622 aout) 623 emulations="$emulations i386coff i386elf" 624 ;; 625 coff) 626 emulations="$emulations i386aout i386elf" 627 ;; 628 elf) 629 emulations="$emulations i386aout i386coff" 630 ;; 631 esac 632 ;; 633 x86_64) 634 case ${obj_format} in 635 aout) 636 emulations="$emulations i386coff i386elf" 637 ;; 638 coff) 639 emulations="$emulations i386aout i386elf" 640 ;; 641 elf) 642 emulations="$emulations i386aout i386coff" 643 ;; 644 esac 645 ;; 646 esac 647fi 648 649# PE code has way too many macros tweaking behaviour 650case ${te_file} in 651 pe*) emulations="" ;; 652esac 653 654# Assign floating point type. Most processors with FP support 655# IEEE FP. On those that don't support FP at all, usually IEEE 656# is emulated. 657case ${target_cpu} in 658 vax | pdp11 ) atof=vax ;; 659 *) atof=ieee ;; 660esac 661 662case "${obj_format}" in 663 "") AC_MSG_ERROR(GAS does not know what format to use for target ${target}) ;; 664esac 665 666# Unfortunately the cpu in cpu-opc.h file isn't always $(TARGET_CPU). 667cgen_cpu_prefix="" 668if test $using_cgen = yes ; then 669 case ${target_cpu} in 670 or1knd) 671 cgen_cpu_prefix=or1k ;; 672 *) cgen_cpu_prefix=${target_cpu} ;; 673 esac 674 AC_SUBST(cgen_cpu_prefix) 675 AC_DEFINE(USING_CGEN, 1, [Using cgen code?]) 676fi 677 678dnl 679dnl Make sure the desired support files exist. 680dnl 681 682if test ! -r ${srcdir}/config/tc-${target_cpu_type}.c; then 683 AC_MSG_ERROR(GAS does not support target CPU ${target_cpu_type}) 684fi 685 686if test ! -r ${srcdir}/config/obj-${obj_format}.c; then 687 AC_MSG_ERROR(GAS does not have support for object file format ${obj_format}) 688fi 689 690# Some COFF configurations want these random other flags set. 691case ${obj_format} in 692 coff) 693 case ${target_cpu_type} in 694 i386) AC_DEFINE(I386COFF, 1, [Using i386 COFF?]) ;; 695 m68k) AC_DEFINE(M68KCOFF, 1, [Using m68k COFF?]) ;; 696 m88k) AC_DEFINE(M88KCOFF, 1, [Using m88k COFF?]) ;; 697 x86_64) AC_DEFINE(I386COFF, 1, [Using i386 COFF?]) ;; 698 esac 699 ;; 700esac 701 702# Getting this done right is going to be a bitch. Each configuration specified 703# with --enable-targets=... should be checked for environment, format, cpu 704# setting. 705# 706# For each configuration, the necessary object file support code must be linked 707# in. This might be only one, it might be up to four. The necessary emulation 708# code needs to be provided, too. 709# 710# And then there's "--enable-targets=all".... 711# 712# For now, just always do it for MIPS ELF configurations. Sigh. 713 714formats="${obj_format}" 715emfiles="" 716EMULATIONS="" 717GAS_UNIQ(emulations) 718for em in . $emulations ; do 719 case $em in 720 .) continue ;; 721 mipsbelf | mipslelf | mipself) 722 fmt=elf file=mipself ;; 723 *coff) 724 fmt=coff file=$em ;; 725 *aout) 726 fmt=aout file=$em ;; 727 *elf) 728 fmt=elf file=$em ;; 729 esac 730 formats="$formats $fmt" 731 emfiles="$emfiles e-$file.o" 732 EMULATIONS="$EMULATIONS &$em," 733done 734GAS_UNIQ(formats) 735GAS_UNIQ(emfiles) 736if test `set . $formats ; shift ; echo $#` -gt 1 ; then 737 for fmt in $formats ; do 738 case $fmt in 739 aout) AC_DEFINE(OBJ_MAYBE_AOUT, 1, [a.out support?]) ;; 740 bout) AC_DEFINE(OBJ_MAYBE_BOUT, 1, [b.out support?]) ;; 741 coff) AC_DEFINE(OBJ_MAYBE_COFF, 1, [COFF support?]) ;; 742 ecoff) AC_DEFINE(OBJ_MAYBE_ECOFF, 1, [ECOFF support?]) ;; 743 elf) AC_DEFINE(OBJ_MAYBE_ELF, 1, [ELF support?]) ;; 744 generic) AC_DEFINE(OBJ_MAYBE_GENERIC, 1, [generic support?]) ;; 745 som) AC_DEFINE(OBJ_MAYBE_SOM, 1, [SOM support?]) ;; 746 esac 747 extra_objects="$extra_objects obj-$fmt.o" 748 done 749 obj_format=multi 750fi 751if test `set . $emfiles ; shift ; echo $#` -gt 0 ; then 752 DEFAULT_EMULATION=`set . $emulations ; echo $2` 753 # e-mipself has more than one emulation per file, e-i386* has just one at the 754 # moment. If only one emulation is specified, then don't define 755 # USE_EMULATIONS or include any of the e-files as they will only be bloat. 756 case "${obj_format}${emfiles}" in 757 multi* | *mipself*) 758 extra_objects="$extra_objects $emfiles" 759 AC_DEFINE(USE_EMULATIONS, 1, [Use emulation support?]) ;; 760 esac 761fi 762AC_SUBST(extra_objects) 763AC_DEFINE_UNQUOTED(EMULATIONS, $EMULATIONS, [Supported emulations.]) 764AC_DEFINE_UNQUOTED(DEFAULT_EMULATION, "$DEFAULT_EMULATION", 765 [Default emulation.]) 766 767reject_dev_configs=yes 768 769case ${reject_dev_configs}-${dev} in 770 yes-yes) # Oops. 771 AC_MSG_ERROR(GAS does not support the ${generic_target} configuration.) 772 ;; 773esac 774 775AC_SUBST(target_cpu_type) 776AC_SUBST(obj_format) 777AC_SUBST(te_file) 778AC_SUBST(install_tooldir) 779AC_SUBST(atof) 780dnl AC_SUBST(emulation) 781 782# do we need the opcodes library? 783case "${need_opcodes}" in 784yes) 785 OPCODES_LIB=../opcodes/libopcodes.la 786 ;; 787esac 788 789AC_SUBST(OPCODES_LIB) 790 791AC_DEFINE_UNQUOTED(TARGET_ALIAS, "${target_alias}", [Target alias.]) 792AC_DEFINE_UNQUOTED(TARGET_CANONICAL, "${target}", [Canonical target.]) 793AC_DEFINE_UNQUOTED(TARGET_CPU, "${target_cpu}", [Target CPU.]) 794AC_DEFINE_UNQUOTED(TARGET_VENDOR, "${target_vendor}", [Target vendor.]) 795AC_DEFINE_UNQUOTED(TARGET_OS, "${target_os}", [Target OS.]) 796 797AC_PROG_YACC 798AM_PROG_LEX 799 800ALL_LINGUAS="fr tr es rw id ru fi ja zh_CN sv" 801ZW_GNU_GETTEXT_SISTER_DIR 802AM_PO_SUBDIRS 803 804AM_MAINTAINER_MODE 805AM_CONDITIONAL(GENINSRC_NEVER, false) 806AC_EXEEXT 807 808AC_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) 809ACX_HEADER_STRING 810 811# Put this here so that autoconf's "cross-compiling" message doesn't confuse 812# people who are not cross-compiling but are compiling cross-assemblers. 813AC_MSG_CHECKING(whether compiling a cross-assembler) 814if test "${host}" = "${target}"; then 815 cross_gas=no 816else 817 cross_gas=yes 818 AC_DEFINE(CROSS_COMPILE, 1, [Compiling cross-assembler?]) 819fi 820AC_MSG_RESULT($cross_gas) 821 822dnl ansidecl.h will deal with const 823dnl AC_C_CONST 824AC_FUNC_ALLOCA 825AC_C_INLINE 826 827# VMS doesn't have unlink. 828AC_CHECK_FUNCS(unlink remove, break) 829AC_CHECK_FUNCS(sbrk setlocale) 830AC_CHECK_FUNCS(strsignal) 831 832AM_LC_MESSAGES 833 834# do we need the math library? 835case "${need_libm}" in 836yes) 837 LT_LIB_M 838 AC_SUBST(LIBM) 839 ;; 840esac 841 842# Some non-ANSI preprocessors botch requoting inside strings. That's bad 843# enough, but on some of those systems, the assert macro relies on requoting 844# working properly! 845GAS_WORKING_ASSERT 846 847# On some systems, the system header files may not declare malloc, realloc, 848# and free. There are places where gas needs these functions to have been 849# declared -- such as when taking their addresses. 850gas_test_headers=" 851#ifdef HAVE_MEMORY_H 852#include <memory.h> 853#endif 854#ifdef HAVE_STRING_H 855#include <string.h> 856#else 857#ifdef HAVE_STRINGS_H 858#include <strings.h> 859#endif 860#endif 861#ifdef HAVE_STDLIB_H 862#include <stdlib.h> 863#endif 864#ifdef HAVE_UNISTD_H 865#include <unistd.h> 866#endif 867" 868 869# Does errno.h declare errno, or do we have to add a separate declaration 870# for it? 871GAS_CHECK_DECL_NEEDED(errno, f, int f, [ 872#ifdef HAVE_ERRNO_H 873#include <errno.h> 874#endif 875]) 876 877AC_MSG_CHECKING(for a known getopt prototype in unistd.h) 878AC_CACHE_VAL(gas_cv_decl_getopt_unistd_h, 879[AC_COMPILE_IFELSE([AC_LANG_PROGRAM([#include <unistd.h>], [extern int getopt (int, char *const*, const char *);])], 880gas_cv_decl_getopt_unistd_h=yes, gas_cv_decl_getopt_unistd_h=no)]) 881AC_MSG_RESULT($gas_cv_decl_getopt_unistd_h) 882if test $gas_cv_decl_getopt_unistd_h = yes; then 883 AC_DEFINE([HAVE_DECL_GETOPT], 1, 884 [Is the prototype for getopt in <unistd.h> in the expected format?]) 885fi 886 887GAS_CHECK_DECL_NEEDED(environ, f, char **f, $gas_test_headers) 888GAS_CHECK_DECL_NEEDED(ffs, f, int (*f)(int), $gas_test_headers) 889GAS_CHECK_DECL_NEEDED(free, f, void (*f)(), $gas_test_headers) 890GAS_CHECK_DECL_NEEDED(malloc, f, char *(*f)(), $gas_test_headers) 891GAS_CHECK_DECL_NEEDED(sbrk, f, char *(*f)(), $gas_test_headers) 892GAS_CHECK_DECL_NEEDED(strstr, f, char *(*f)(), $gas_test_headers) 893 894AC_CHECK_DECLS([free, getenv, malloc, mempcpy, realloc, stpcpy, strstr, vsnprintf, asprintf]) 895 896BFD_BINARY_FOPEN 897 898# Link in zlib if we can. This allows us to write compressed debug sections. 899AM_ZLIB 900 901# Support for VMS timestamps via cross compile 902 903if test "$ac_cv_header_time_h" = yes; then 904 GAS_HAVE_TIME_TYPE_MEMBER(struct tm, tm_gmtoff) 905fi 906 907if test "$ac_cv_header_sys_stat_h" = yes; then 908 GAS_HAVE_SYS_STAT_TYPE_MEMBER(struct stat, st_mtim, tv_sec) 909 GAS_HAVE_SYS_STAT_TYPE_MEMBER(struct stat, st_mtim, tv_nsec) 910fi 911 912 913dnl Required for html, pdf, install-pdf and install-html targets. 914AC_SUBST(datarootdir) 915AC_SUBST(docdir) 916AC_SUBST(htmldir) 917AC_SUBST(pdfdir) 918 919dnl This must come last. 920 921dnl We used to make symlinks to files in the source directory, but now 922dnl we just use the right name for .c files, and create .h files in 923dnl the build directory which include the right .h file. Make sure 924dnl the old symlinks don't exist, so that a reconfigure in an existing 925dnl directory behaves reasonably. 926 927AC_CONFIG_FILES(Makefile doc/Makefile po/Makefile.in:po/Make-in) 928AC_CONFIG_COMMANDS([default], 929[rm -f targ-cpu.c targ-cpu.h obj-format.h obj-format.c targ-env.h atof-targ.c itbl-cpu.h 930 echo '#include "tc-'"${target_cpu_type}"'.h"' > targ-cpu.h 931 echo '#include "obj-'"${obj_format}"'.h"' > obj-format.h 932 echo '#include "te-'"${te_file}"'.h"' > targ-env.h 933 echo '#include "itbl-'"${target_cpu_type}"'.h"' > itbl-cpu.h 934 if test "x$cgen_cpu_prefix" != x ; then 935 echo '#include "opcodes/'"${cgen_cpu_prefix}"'-desc.h"' > cgen-desc.h 936 fi], 937[target_cpu_type=${target_cpu_type} 938 cgen_cpu_prefix=${cgen_cpu_prefix} 939 obj_format=${obj_format} 940 te_file=${te_file}]) 941 942AC_OUTPUT 943