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-2017 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* | 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 595done 596 597if test ${ac_default_x86_relax_relocations} = unset; then 598 ac_default_x86_relax_relocations=1 599fi 600AC_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 604if test ${ac_default_elf_stt_common} = unset; then 605 ac_default_elf_stt_common=0 606fi 607AC_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 612if 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.]) 614fi 615 616# Turn on all targets if possible 617if 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 646fi 647 648# PE code has way too many macros tweaking behaviour 649case ${te_file} in 650 pe*) emulations="" ;; 651esac 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. 656case ${target_cpu} in 657 vax | pdp11 ) atof=vax ;; 658 *) atof=ieee ;; 659esac 660 661case "${obj_format}" in 662 "") AC_MSG_ERROR(GAS does not know what format to use for target ${target}) ;; 663esac 664 665# Unfortunately the cpu in cpu-opc.h file isn't always $(TARGET_CPU). 666cgen_cpu_prefix="" 667if 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?]) 675fi 676 677dnl 678dnl Make sure the desired support files exist. 679dnl 680 681if test ! -r ${srcdir}/config/tc-${target_cpu_type}.c; then 682 AC_MSG_ERROR(GAS does not support target CPU ${target_cpu_type}) 683fi 684 685if test ! -r ${srcdir}/config/obj-${obj_format}.c; then 686 AC_MSG_ERROR(GAS does not have support for object file format ${obj_format}) 687fi 688 689# Some COFF configurations want these random other flags set. 690case ${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 ;; 699esac 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 713formats="${obj_format}" 714emfiles="" 715EMULATIONS="" 716GAS_UNIQ(emulations) 717for 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," 732done 733GAS_UNIQ(formats) 734GAS_UNIQ(emfiles) 735if 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 749fi 750if 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 760fi 761AC_SUBST(extra_objects) 762AC_DEFINE_UNQUOTED(EMULATIONS, $EMULATIONS, [Supported emulations.]) 763AC_DEFINE_UNQUOTED(DEFAULT_EMULATION, "$DEFAULT_EMULATION", 764 [Default emulation.]) 765 766reject_dev_configs=yes 767 768case ${reject_dev_configs}-${dev} in 769 yes-yes) # Oops. 770 AC_MSG_ERROR(GAS does not support the ${generic_target} configuration.) 771 ;; 772esac 773 774AC_SUBST(target_cpu_type) 775AC_SUBST(obj_format) 776AC_SUBST(te_file) 777AC_SUBST(install_tooldir) 778AC_SUBST(atof) 779dnl AC_SUBST(emulation) 780 781# do we need the opcodes library? 782case "${need_opcodes}" in 783yes) 784 OPCODES_LIB=../opcodes/libopcodes.la 785 ;; 786esac 787 788AC_SUBST(OPCODES_LIB) 789 790AC_DEFINE_UNQUOTED(TARGET_ALIAS, "${target_alias}", [Target alias.]) 791AC_DEFINE_UNQUOTED(TARGET_CANONICAL, "${target}", [Canonical target.]) 792AC_DEFINE_UNQUOTED(TARGET_CPU, "${target_cpu}", [Target CPU.]) 793AC_DEFINE_UNQUOTED(TARGET_VENDOR, "${target_vendor}", [Target vendor.]) 794AC_DEFINE_UNQUOTED(TARGET_OS, "${target_os}", [Target OS.]) 795 796AC_PROG_YACC 797AM_PROG_LEX 798 799ALL_LINGUAS="fr tr es rw id ru fi ja zh_CN" 800ZW_GNU_GETTEXT_SISTER_DIR 801AM_PO_SUBDIRS 802 803AM_MAINTAINER_MODE 804AM_CONDITIONAL(GENINSRC_NEVER, false) 805AC_EXEEXT 806 807AC_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) 808ACX_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. 812AC_MSG_CHECKING(whether compiling a cross-assembler) 813if test "${host}" = "${target}"; then 814 cross_gas=no 815else 816 cross_gas=yes 817 AC_DEFINE(CROSS_COMPILE, 1, [Compiling cross-assembler?]) 818fi 819AC_MSG_RESULT($cross_gas) 820 821dnl ansidecl.h will deal with const 822dnl AC_C_CONST 823AC_FUNC_ALLOCA 824AC_C_INLINE 825 826# VMS doesn't have unlink. 827AC_CHECK_FUNCS(unlink remove, break) 828AC_CHECK_FUNCS(sbrk setlocale) 829 830AM_LC_MESSAGES 831 832# do we need the math library? 833case "${need_libm}" in 834yes) 835 LT_LIB_M 836 AC_SUBST(LIBM) 837 ;; 838esac 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! 843GAS_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. 848gas_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? 869GAS_CHECK_DECL_NEEDED(errno, f, int f, [ 870#ifdef HAVE_ERRNO_H 871#include <errno.h> 872#endif 873]) 874 875AC_MSG_CHECKING(for a known getopt prototype in unistd.h) 876AC_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 *);])], 878gas_cv_decl_getopt_unistd_h=yes, gas_cv_decl_getopt_unistd_h=no)]) 879AC_MSG_RESULT($gas_cv_decl_getopt_unistd_h) 880if 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?]) 883fi 884 885GAS_CHECK_DECL_NEEDED(environ, f, char **f, $gas_test_headers) 886GAS_CHECK_DECL_NEEDED(ffs, f, int (*f)(int), $gas_test_headers) 887GAS_CHECK_DECL_NEEDED(free, f, void (*f)(), $gas_test_headers) 888GAS_CHECK_DECL_NEEDED(malloc, f, char *(*f)(), $gas_test_headers) 889GAS_CHECK_DECL_NEEDED(sbrk, f, char *(*f)(), $gas_test_headers) 890GAS_CHECK_DECL_NEEDED(strstr, f, char *(*f)(), $gas_test_headers) 891 892AC_CHECK_DECLS([free, getenv, malloc, mempcpy, realloc, stpcpy, strstr, vsnprintf, asprintf]) 893 894BFD_BINARY_FOPEN 895 896# Link in zlib if we can. This allows us to write compressed debug sections. 897AM_ZLIB 898 899# Support for VMS timestamps via cross compile 900 901if test "$ac_cv_header_time_h" = yes; then 902 GAS_HAVE_TIME_TYPE_MEMBER(struct tm, tm_gmtoff) 903fi 904 905if 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) 908fi 909 910 911dnl Required for html, pdf, install-pdf and install-html targets. 912AC_SUBST(datarootdir) 913AC_SUBST(docdir) 914AC_SUBST(htmldir) 915AC_SUBST(pdfdir) 916 917dnl This must come last. 918 919dnl We used to make symlinks to files in the source directory, but now 920dnl we just use the right name for .c files, and create .h files in 921dnl the build directory which include the right .h file. Make sure 922dnl the old symlinks don't exist, so that a reconfigure in an existing 923dnl directory behaves reasonably. 924 925AC_CONFIG_FILES(Makefile doc/Makefile po/Makefile.in:po/Make-in) 926AC_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 940AC_OUTPUT 941