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