configure.in revision 91052
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 $FreeBSD: head/contrib/binutils/gas/configure.in 91052 2002-02-22 04:48:12Z obrien $ 7dnl 8dnl v2.5 needed for --bindir et al 9AC_PREREQ(2.13) 10AC_INIT(as.h) 11 12AC_CANONICAL_SYSTEM 13AC_ISC_POSIX 14 15changequote(,)dnl 16BFD_VERSION=`sed -n -e 's/^.._INIT_AUTOMAKE.*,[ ]*\([^ ]*\)[ ]*).*/\1/p' < ${srcdir}/../bfd/configure.in` 17changequote([,])dnl 18AM_INIT_AUTOMAKE(gas, ${BFD_VERSION}) 19 20AM_PROG_LIBTOOL 21 22user_bfd_gas= 23AC_ARG_ENABLE(bfd-assembler, 24[ --enable-bfd-assembler use BFD back end for writing object files], 25[case "${enableval}" in 26 yes) need_bfd=yes user_bfd_gas=yes ;; 27 no) user_bfd_gas=no ;; 28 *) AC_MSG_ERROR(bad value ${enableval} given for bfd-assembler option) ;; 29esac])dnl 30AC_ARG_ENABLE(targets, 31[ targets alternative target configurations besides the primary], 32[case "${enableval}" in 33 yes | "") AC_ERROR(enable-targets option must specify target names or 'all') 34 ;; 35 no) enable_targets= ;; 36 *) enable_targets=$enableval ;; 37esac])dnl 38AC_ARG_ENABLE(commonbfdlib, 39[ --enable-commonbfdlib build shared BFD/opcodes/libiberty library], 40[case "${enableval}" in 41 yes) commonbfdlib=true ;; 42 no) commonbfdlib=false ;; 43 *) AC_MSG_ERROR([bad value ${enableval} for BFD commonbfdlib option]) ;; 44esac])dnl 45 46using_cgen=no 47 48build_warnings="-W -Wall -Wstrict-prototypes -Wmissing-prototypes" 49AC_ARG_ENABLE(build-warnings, 50[ --enable-build-warnings Enable build-time compiler warnings if gcc is used], 51[case "${enableval}" in 52 yes) ;; 53 no) build_warnings="-w";; 54 ,*) t=`echo "${enableval}" | sed -e "s/,/ /g"` 55 build_warnings="${build_warnings} ${t}";; 56 *,) t=`echo "${enableval}" | sed -e "s/,/ /g"` 57 build_warnings="${t} ${build_warnings}";; 58 *) build_warnings=`echo "${enableval}" | sed -e "s/,/ /g"`;; 59esac 60if test x"$silent" != x"yes" && test x"$build_warnings" != x""; then 61 echo "Setting warning flags = $build_warnings" 6>&1 62fi])dnl 63WARN_CFLAGS="" 64if test "x${build_warnings}" != x -a "x$GCC" = xyes ; then 65 WARN_CFLAGS="${build_warnings}" 66fi 67AC_SUBST(WARN_CFLAGS) 68 69# Generate a header file 70AM_CONFIG_HEADER(config.h:config.in) 71 72# If we are on a DOS filesystem, we must use gdb.ini rather than 73# .gdbinit. 74GDBINIT=".gdbinit" 75case "${host}" in 76 *-*-msdos* | *-*-go32* | *-*-mingw32* | *-*-cygwin* | *-*-windows*) 77 GDBINIT="gdb.ini" 78 ;; 79esac 80AC_SUBST(GDBINIT) 81 82te_file=generic 83 84# Makefile target for installing gas in $(tooldir)/bin. 85install_tooldir=install-exec-tooldir 86 87canon_targets="" 88all_targets=no 89if test -n "$enable_targets" ; then 90 for t in `echo $enable_targets | sed 's/,/ /g'`; do 91 if test $t = "all"; then 92 all_targets=yes 93 continue 94 fi 95 result=`$ac_config_sub $t 2>/dev/null` 96 if test -n "$result" ; then 97 canon_targets="$canon_targets $result" 98# else 99# # Permit "all", etc. We don't support it yet though. 100# canon_targets="$canon_targets $t" 101 fi 102 done 103 GAS_UNIQ(canon_targets) 104fi 105 106emulations="" 107 108for this_target in $target $canon_targets ; do 109 110changequote(,)dnl 111 eval `echo $this_target | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/cpu=\1 vendor=\2 os=\3/'` 112changequote([,])dnl 113 114 # check for architecture variants 115 arch= 116 endian= 117 case ${cpu} in 118 alpha*) cpu_type=alpha ;; 119 armeb) cpu_type=arm endian=big ;; 120 arm*) cpu_type=arm endian=little ;; 121 armb*) cpu_type=arm endian=little ;; 122 armv*l) cpu_type=arm endian=little ;; 123 armv*b) cpu_type=arm endian=big ;; 124 xscale*) cpu_type=arm endian=little ;; 125 strongarm*) cpu_type=arm endian=little ;; 126 thumb*) cpu_type=arm endian=little ;; 127 hppa*) cpu_type=hppa ;; 128changequote(,)dnl 129 i[3456]86) cpu_type=i386 arch=i386;; 130 x86_64) cpu_type=i386 arch=x86_64;; 131 ia64) cpu_type=ia64 ;; 132 m6811|m6812|m68hc12) cpu_type=m68hc11 ;; 133 m680[012346]0) cpu_type=m68k ;; 134changequote([,])dnl 135 m68008) cpu_type=m68k ;; 136 m683??) cpu_type=m68k ;; 137 m5200) cpu_type=m68k ;; 138 m8*) cpu_type=m88k ;; 139 mips*el) cpu_type=mips endian=little ;; 140 mips*) cpu_type=mips endian=big ;; 141 or32*) cpu_type=or32 endian=big ;; 142 pjl*) cpu_type=pj endian=little ;; 143 pj*) cpu_type=pj endian=big ;; 144 powerpc*le*) cpu_type=ppc endian=little ;; 145 powerpc*) cpu_type=ppc endian=big ;; 146 rs6000*) cpu_type=ppc ;; 147 s390x*) cpu_type=s390 arch=s390x ;; 148 s390*) cpu_type=s390 arch=s390 ;; 149 sh64*) cpu_type=sh64 endian=big;; 150 sh*le) cpu_type=sh endian=little ;; 151 sh*) cpu_type=sh endian=big ;; 152 sparclite*) cpu_type=sparc arch=sparclite ;; 153 sparclet*) cpu_type=sparc arch=sparclet ;; 154 sparc64*) cpu_type=sparc arch=v9-64 ;; 155 sparc86x*) cpu_type=sparc arch=sparc86x ;; 156 sparc*) cpu_type=sparc arch=sparclite ;; # ??? See tc-sparc.c. 157 v850*) cpu_type=v850 ;; 158 *) cpu_type=${cpu} ;; 159 esac 160 161 if test ${this_target} = $target ; then 162 target_cpu_type=${cpu_type} 163 elif test ${target_cpu_type} != ${cpu_type} ; then 164 continue 165 fi 166 167 generic_target=${cpu_type}-$vendor-$os 168 dev=no 169 bfd_gas=no 170 em=generic 171 mips_stabs_elf= 172 173 # assign object format 174 case ${generic_target} in 175 a29k-*-coff) fmt=coff ;; 176 a29k-amd-udi) fmt=coff ;; 177 a29k-amd-ebmon) fmt=coff ;; 178 a29k-nyu-sym1) fmt=coff ;; 179 a29k-*-rtems*) fmt=coff ;; 180 a29k-*-vxworks*) fmt=coff ;; 181 182 alpha*-*-*vms*) fmt=evax ;; 183 alpha*-*-netware*) fmt=ecoff ;; 184 alpha*-*-openbsd*) fmt=ecoff ;; 185 alpha*-*-osf*) fmt=ecoff ;; 186 alpha*-*-linuxecoff*) fmt=ecoff ;; 187 alpha*-*-linux-gnu*) fmt=elf em=linux ;; 188 alpha*-*-netbsd*) fmt=elf em=nbsd ;; 189 190 arc-*-elf*) fmt=elf bfd_gas=yes ;; 191 192 arm-*-aout) fmt=aout ;; 193 arm-*-coff | thumb-*-coff) fmt=coff ;; 194 arm-*-rtems | thumb-*-rtems) fmt=elf ;; 195 arm-*-elf | thumb-*-elf) fmt=elf ;; 196 arm*-*-conix*) fmt=elf ;; 197 arm-*-linux*aout*) fmt=aout em=linux ;; 198 arm*-*-linux-gnu* | arm*-*-uclinux*) 199 fmt=elf em=linux ;; 200 arm-*-netbsdelf*) fmt=elf em=nbsd ;; 201 arm-*-netbsd* | arm-*-openbsd*) fmt=aout em=nbsd ;; 202 arm-*-oabi | thumb-*-oabi) fmt=elf ;; 203 arm-epoc-pe | thumb-epoc-pe) fmt=coff em=epoc-pe ;; 204 arm-*-wince) fmt=coff em=wince-pe ;; 205 arm-*-pe | thumb-*-pe) fmt=coff em=pe ;; 206 arm-*-riscix*) fmt=aout em=riscix ;; 207 arm-*-vxworks) fmt=coff ;; 208 209 avr-*-*) fmt=elf bfd_gas=yes ;; 210 211 cris-*-*) fmt=multi bfd_gas=yes ;; 212 213 d10v-*-*) fmt=elf bfd_gas=yes ;; 214 d30v-*-*) fmt=elf bfd_gas=yes ;; 215 216 217 fr30-*-*) fmt=elf bfd_gas=yes ;; 218 219 hppa-*-linux-gnu*) case ${cpu} in 220 hppa*64*) 221 fmt=elf em=hppalinux64;; 222 hppa*) 223 fmt=elf em=linux;; 224 esac ;; 225 hppa-*-*elf*) fmt=elf em=hppa ;; 226 hppa-*-lites*) fmt=elf em=hppa ;; 227 hppa-*-netbsd*) fmt=elf em=nbsd ;; 228 hppa-*-osf*) fmt=som em=hppa ;; 229 hppa-*-rtems*) fmt=elf em=hppa ;; 230 hppa-*-hpux11*) case ${cpu} in 231 hppa*64*) 232 fmt=elf em=hppa64 ;; 233 hppa*) 234 fmt=som em=hppa ;; 235 esac ;; 236 hppa-*-hpux*) fmt=som em=hppa ;; 237 hppa-*-mpeix*) fmt=som em=hppa ;; 238 hppa-*-bsd*) fmt=som em=hppa ;; 239 hppa-*-hiux*) fmt=som em=hppa ;; 240 241 h8300-*-rtems*) fmt=coff ;; 242 h8300-*-coff) fmt=coff ;; 243 h8300-*-elf) fmt=elf ;; 244 h8500-*-rtems*) fmt=coff ;; 245 h8500-*-coff) fmt=coff ;; 246 247 i370-*-elf* | i370-*-linux*) fmt=elf ;; 248 i386-ibm-aix*) fmt=coff em=i386aix ;; 249 i386-sequent-bsd*) fmt=aout em=dynix bfd_gas=yes ;; 250 i386-*-beospe*) fmt=coff em=pe bfd_gas=yes ;; 251 i386-*-beoself* | i386-*-beos*) fmt=elf bfd_gas=yes ;; 252 i386-*-bsd*) fmt=aout em=386bsd ;; 253 i386-*-netbsd0.8) fmt=aout em=386bsd ;; 254 i386-*-netbsd*) em=nbsd bfd_gas=yes 255 case ${cpu} in 256 x86_64) fmt=elf ;; 257 *) case ${os} in 258 *elf*) fmt=elf ;; 259 *) fmt=aout ;; 260 esac 261 ;; 262 esac 263 ;; 264 i386-*-openbsd*) fmt=aout em=nbsd bfd_gas=yes;; 265 i386-*-linux*aout* | i386-*-linux*oldld) fmt=aout em=linux ;; 266 i386-*-linux*coff*) fmt=coff em=linux ;; 267 i386-*-linux-gnu*) fmt=elf em=linux bfd_gas=yes ;; 268 x86_64-*-linux-gnu*) fmt=elf em=linux bfd_gas=yes ;; 269 i386-*-lynxos*) fmt=coff em=lynx ;; 270changequote(,)dnl 271 i386-*-sysv[45]* | i386-*-solaris* | i386-*-elf) 272 fmt=elf bfd_gas=yes ;; 273 i386-*-freebsdaout* | i386-*-freebsd[12].* | i386-*-freebsd[12]) 274 fmt=aout em=386bsd ;; 275changequote([,])dnl 276 i386-*-coff | i386-*-sysv* | i386-*-sco3.2v5*coff | i386-*-isc*) 277 fmt=coff ;; 278 i386-*-sco3.2v5*) fmt=elf 279 if test ${this_target} = $target; then 280 AC_DEFINE(SCO_ELF, 1, 281 [Define if defaulting to ELF on SCO 5.]) 282 fi 283 ;; 284 i386-*-sco3.2*) fmt=coff ;; 285 i386-*-vsta) fmt=aout ;; 286 i386-*-msdosdjgpp* | i386-*-go32* | i386-go32-rtems*) 287 fmt=coff em=go32 bfd_gas=yes 288 AC_DEFINE(STRICTCOFF, 1, [Using strict COFF?]) 289 ;; 290 i386-*-rtemself*) fmt=elf ;; 291 i386-*-rtemscoff*) fmt=coff ;; 292 i386-*-rtems*) fmt=elf ;; 293 i386-*-gnu*) fmt=elf ;; 294 i386-*-mach*) 295 fmt=aout em=mach bfd_gas=yes ;; 296 i386-*-msdos*) fmt=aout ;; 297 i386-*-moss*) fmt=elf ;; 298 i386-*-pe) fmt=coff em=pe bfd_gas=yes ;; 299 i386-*-cygwin*) fmt=coff em=pe bfd_gas=yes ;; 300 i386-*-interix*) fmt=coff em=interix bfd_gas=yes ;; 301 i386-*-mingw32*) fmt=coff em=pe bfd_gas=yes ;; 302 i386-*-*nt*) fmt=coff em=pe bfd_gas=yes ;; 303 i386-*-vxworks*) fmt=aout ;; 304 i386-*-chaos) fmt=elf ;; 305 i860-stardent-sysv4* | i860-stardent-elf*) 306 fmt=elf bfd_gas=yes endian=little 307 AC_MSG_WARN(GAS support for ${generic_target} is preliminary and a work in progress) ;; 308 i960-*-bout) fmt=bout ;; 309 i960-*-coff) fmt=coff em=ic960 ;; 310 i960-*-rtems*) fmt=coff em=ic960 ;; 311 i960-*-nindy*) fmt=bout ;; 312 i960-*-vxworks4*) fmt=bout ;; 313 i960-*-vxworks5.0) fmt=bout ;; 314 i960-*-vxworks5.*) fmt=coff em=ic960 ;; 315 i960-*-vxworks*) fmt=bout ;; 316 i960-*-elf*) fmt=elf ;; 317 318 ia64-*-elf*) fmt=elf ;; 319 ia64-*-aix*) fmt=elf em=ia64aix ;; 320 ia64-*-linux-gnu*) fmt=elf em=linux ;; 321 ia64-*-hpux*) fmt=elf em=hpux ;; 322 ia64-*-netbsd*) fmt=elf em=nbsd ;; 323 324 m32r-*-*) fmt=elf bfd_gas=yes ;; 325 326 m68hc11-*-*|m6811-*-*|m68hc12-*-*|m6812-*-*)fmt=elf bfd_gas=yes ;; 327 328 m68k-*-vxworks* | m68k-ericsson-ose | m68k-*-sunos*) 329 fmt=aout em=sun3 ;; 330 m68k-motorola-sysv*) fmt=coff em=delta ;; 331 m68k-bull-sysv3*) fmt=coff em=dpx2 ;; 332 m68k-apollo-*) fmt=coff em=apollo ;; 333 m68k-*-sysv4*) # must be before -sysv* 334 fmt=elf em=svr4 ;; 335 m68k-*-elf*) fmt=elf ;; 336 m68k-*-coff | m68k-*-sysv* | m68k-*-rtemscoff*) 337 fmt=coff ;; 338 m68k-*-rtems*) fmt=elf ;; 339 m68k-*-hpux*) fmt=hp300 em=hp300 ;; 340 m68k-*-linux*aout*) fmt=aout em=linux ;; 341 m68k-*-linux-gnu*) fmt=elf em=linux ;; 342 m68k-*-gnu*) fmt=elf ;; 343 m68k-*-lynxos*) fmt=coff em=lynx ;; 344 m68k-*-netbsdelf*) fmt=elf em=nbsd bfd_gas=yes ;; 345 m68k-*-netbsdaout* | m68k-*-netbsd*) 346 fmt=aout em=nbsd bfd_gas=yes ;; 347 m68k-*-openbsd*) fmt=aout em=nbsd bfd_gas=yes ;; 348 m68k-apple-aux*) fmt=coff em=aux ;; 349 m68k-*-psos*) fmt=elf em=psos;; 350 351 m88k-motorola-sysv3*) fmt=coff em=delt88 ;; 352 m88k-*-coff*) fmt=coff ;; 353 354 mcore-*-elf) fmt=elf bfd_gas=yes ;; 355 mcore-*-pe) fmt=coff em=pe bfd_gas=yes ;; 356 357 # don't change em like *-*-bsd does 358 mips-dec-openbsd*) fmt=elf endian=little ;; 359 mips-dec-bsd*) fmt=aout endian=little ;; 360 mips-sony-bsd*) fmt=ecoff ;; 361 mips-*-bsd*) AC_MSG_ERROR(Unknown vendor for mips-bsd configuration.) ;; 362 mips-*-ultrix*) fmt=ecoff endian=little ;; 363 mips-*-osf*) fmt=ecoff endian=little ;; 364 mips-*-ecoff*) fmt=ecoff ;; 365 mips-*-pe*) fmt=coff endian=little em=pe ;; 366 mips-*-irix6*) fmt=elf ;; 367 mips-*-irix5*) fmt=elf ;; 368 mips-*-irix*) fmt=ecoff ;; 369 mips-*-lnews*) fmt=ecoff em=lnews ;; 370 mips-*-riscos*) fmt=ecoff ;; 371 mips*-*-linux*) fmt=elf em=tmips mips_stabs_elf=y ;; 372 mips-*-sysv4*MP* | mips-*-gnu*) 373 fmt=elf em=tmips ;; 374 mips-*-sysv*) fmt=ecoff ;; 375 mips-*-elf* | mips-*-rtems* | mips-*-netbsd* | mips-*-openbsd*) 376 fmt=elf ;; 377 mips-*-vxworks*) fmt=elf mips_stabs_elf=y ;; 378 mmix-*-*) fmt=elf bfd_gas=yes ;; 379 mn10200-*-*) fmt=elf bfd_gas=yes ;; 380 mn10300-*-*) fmt=elf bfd_gas=yes ;; 381 openrisc-*-*) fmt=elf bfd_gas=yes ;; 382 or32-*-rtems*) fmt=coff ;; 383 or32-*-coff) fmt=coff ;; 384 or32-*-elf) fmt=elf ;; 385 pj*) fmt=elf ;; 386 ppc-*-pe | ppc-*-cygwin* | ppc-*-winnt*) 387 fmt=coff em=pe ;; 388 ppc-*-aix*) fmt=coff ;; 389 ppc-*-beos*) fmt=coff ;; 390 ppc-*-*bsd* | ppc-*-elf* | ppc-*-eabi* | ppc-*-sysv4*) 391 fmt=elf ;; 392 ppc-*-linux-gnu*) fmt=elf 393 case "$endian" in 394 big) ;; 395 *) AC_MSG_ERROR(GNU/Linux must be configured big endian) ;; 396 esac 397 ;; 398 ppc-*-solaris*) fmt=elf 399 if test ${this_target} = $target; then 400 AC_DEFINE(TARGET_SOLARIS_COMMENT, 1, 401 [Define if default target is PowerPC Solaris.]) 402 fi 403 if test x${endian} = xbig; then 404 AC_MSG_ERROR(Solaris must be configured little endian) 405 fi 406 ;; 407 ppc-*-rtems*) fmt=elf ;; 408 ppc-*-macos* | ppc-*-mpw*) 409 fmt=coff em=macos ;; 410 ppc-*-netware*) fmt=elf em=ppcnw ;; 411 ppc-*-vxworks*) fmt=elf ;; 412 413 s390x-*-linux-gnu*) fmt=elf em=linux ;; 414 s390-*-linux-gnu*) fmt=elf em=linux ;; 415 416 sh*-*-linux*) fmt=elf em=linux 417 case ${cpu} in 418 sh*eb) 419 endian=big ;; 420 sh*) 421 endian=little ;; 422 esac ;; 423 sh*-*-netbsdelf*) fmt=elf em=nbsd ;; 424 sh-*-elf*) fmt=elf ;; 425 sh-*-coff*) fmt=coff bfd_gas=yes;; 426 sh-*-pe*) fmt=coff em=pe bfd_gas=yes endian=little ;; 427 sh-*-rtemself*) fmt=elf ;; 428 sh-*-rtems*) fmt=coff bfd_gas=yes;; 429 430 sh64-*-elf*) fmt=elf ;; 431 ns32k-pc532-mach* | ns32k-pc532-ux*) fmt=aout em=pc532mach ;; 432 ns32k-pc532-netbsd* | ns32k-pc532-lites*) fmt=aout em=nbsd532 ;; 433 ns32k-pc532-openbsd*) fmt=aout em=nbsd532 ;; 434 435 sparc-*-rtemsaout*) fmt=aout ;; 436 sparc-*-rtemself*) fmt=elf ;; 437 sparc-*-rtems*) fmt=elf ;; 438 sparc-*-sunos4*) fmt=aout em=sun3 ;; 439 sparc-*-aout | sparc*-*-vxworks*) 440 fmt=aout em=sparcaout ;; 441 sparc-*-coff) fmt=coff ;; 442 sparc-*-linux*aout*) fmt=aout em=linux ;; 443 sparc-*-linux-gnu*) fmt=elf em=linux ;; 444 sparc-*-lynxos*) fmt=coff em=lynx ;; 445 sparc-fujitsu-none) fmt=aout ;; 446 sparc-*-elf | sparc-*-sysv4* | sparc-*-solaris*) 447 fmt=elf ;; 448 sparc-*-netbsd*) em=nbsd bfd_gas=yes 449 case ${cpu} in 450 sparc) case ${os} in 451 *elf*) fmt=elf ;; 452 *) fmt=aout ;; 453 esac ;; 454 sparc64) fmt=elf ;; 455 esac 456 ;; 457 sparc-*-openbsd*) fmt=aout em=nbsd ;; 458 459 strongarm-*-coff) fmt=coff ;; 460 strongarm-*-elf) fmt=elf ;; 461 xscale-*-coff) fmt=coff ;; 462 xscale-*-elf) fmt=elf ;; 463 464 tic30-*-*aout*) fmt=aout bfd_gas=yes ;; 465 tic30-*-*coff*) fmt=coff bfd_gas=yes ;; 466 tic54x-*-* | c54x*-*-*) 467 fmt=coff bfd_gas=yes need_libm=yes;; 468 tic80-*-*) fmt=coff ;; 469 470 v850-*-*) fmt=elf bfd_gas=yes ;; 471 v850e-*-*) fmt=elf bfd_gas=yes ;; 472 v850ea-*-*) fmt=elf bfd_gas=yes ;; 473 474 vax-*-bsd* | vax-*-ultrix*) 475 fmt=aout ;; 476 vax-*-vms) fmt=vms ;; 477 478 w65-*-*) fmt=coff ;; 479 480 xstormy16-*-*) fmt=elf bfd_gas=yes ;; 481 482 z8k-*-coff | z8k-*-sim) 483 fmt=coff ;; 484 485 *-*-aout | *-*-scout) 486 fmt=aout ;; 487 *-*-freebsd*) fmt=elf em=freebsd bfd_gas=yes ;; 488 *-*-nindy*) 489 fmt=bout ;; 490 *-*-bsd*) 491 fmt=aout em=sun3 ;; 492 *-*-generic) fmt=generic ;; 493 *-*-xray | *-*-hms) fmt=coff ;; 494 *-*-sim) fmt=coff ;; 495 *-*-elf | *-*-sysv4* | *-*-solaris*) 496 AC_MSG_WARN(GAS support for ${generic_target} is incomplete.) 497 fmt=elf dev=yes ;; 498 *-*-vxworks) fmt=aout ;; 499 *-*-netware) fmt=elf ;; 500 esac 501 502 if test ${this_target} = $target ; then 503 endian_def= 504 if test x${endian} = xbig; then 505 endian_def=1 506 elif test x${endian} = xlittle; then 507 endian_def=0 508 fi 509 if test x${endian_def} != x; then 510 AC_DEFINE_UNQUOTED(TARGET_BYTES_BIG_ENDIAN, $endian_def, 511 [Define as 1 if big endian.]) 512 fi 513 fi 514 515 if test x${mips_stabs_elf} != x; then 516 AC_DEFINE(MIPS_STABS_ELF, 1, 517 [Use ELF stabs for MIPS, not ECOFF stabs]) 518 fi 519 520 case ${cpu_type}-${fmt} in 521 alpha*-*) bfd_gas=yes ;; 522 arm-*) bfd_gas=yes ;; 523 # not yet 524 # i386-aout) bfd_gas=preferred ;; 525 ia64*-*) bfd_gas=yes ;; 526 mips-*) bfd_gas=yes ;; 527 ns32k-*) bfd_gas=yes ;; 528 pdp11-*) bfd_gas=yes ;; 529 ppc-*) bfd_gas=yes ;; 530 sparc-*) bfd_gas=yes ;; 531 strongarm-*) bfd_gas=yes ;; 532 xscale-*) bfd_gas=yes ;; 533 *-elf) bfd_gas=yes ;; 534 *-ecoff) bfd_gas=yes ;; 535 *-som) bfd_gas=yes ;; 536 #enable bfd for coff and aout to allow testing if a bfd target is 537 #the primary target, but not for coff or aout as the primary target 538 i386-coff) if test x${primary_bfd_gas} = xyes; then bfd_gas=yes; fi ;; 539 i386-aout) if test x${primary_bfd_gas} = xyes; then bfd_gas=yes; fi ;; 540 *) ;; 541 esac 542 543# Other random stuff. 544 545 # Do we need the opcodes library? 546 case ${cpu_type} in 547 vax | i386 | tic30) 548 ;; 549 550 *) 551 need_opcodes=yes 552 553 case "${enable_shared}" in 554 yes) shared_opcodes=true ;; 555 *opcodes*) shared_opcodes=true ;; 556 *) shared_opcodes=false ;; 557 esac 558 if test "${shared_opcodes}" = "true"; then 559 # A shared libopcodes must be linked against libbfd. 560 need_bfd=yes 561 fi 562 ;; 563 esac 564 565 # Any other special object files needed ? 566 case ${cpu_type} in 567 fr30 | m32r | openrisc) 568 using_cgen=yes 569 ;; 570 571 m68k) 572 case ${extra_objects} in 573 *m68k-parse.o*) ;; 574 *) extra_objects="$extra_objects m68k-parse.o" ;; 575 esac 576 ;; 577 578 mips) 579 echo ${extra_objects} | grep -s "itbl-parse.o" 580 if test $? -ne 0 ; then 581 extra_objects="$extra_objects itbl-parse.o" 582 fi 583 584 echo ${extra_objects} | grep -s "itbl-lex.o" 585 if test $? -ne 0 ; then 586 extra_objects="$extra_objects itbl-lex.o" 587 fi 588 589 echo ${extra_objects} | grep -s "itbl-ops.o" 590 if test $? -ne 0 ; then 591 extra_objects="$extra_objects itbl-ops.o" 592 fi 593 ;; 594 595 i386 | s390 | sparc) 596 if test $this_target = $target ; then 597 AC_DEFINE_UNQUOTED(DEFAULT_ARCH, "${arch}", [Default architecture.]) 598 fi 599 ;; 600 601 xstormy16) 602 using_cgen=yes 603 ;; 604 605 *) 606 ;; 607 esac 608 609 if test $using_cgen = yes ; then 610 case "x${extra_objects}" in 611 *cgen.o*) ;; 612 *) extra_objects="$extra_objects cgen.o" ;; 613 esac 614 fi 615 616# See if we really can support this configuration with the emulation code. 617 618 if test $this_target = $target ; then 619 primary_bfd_gas=$bfd_gas 620 obj_format=$fmt 621 te_file=$em 622 623 if test $bfd_gas = no ; then 624 # Can't support other configurations this way. 625 break 626 fi 627 elif test $bfd_gas = no ; then 628 # Can't support this configuration. 629 break 630 fi 631 632# From target name and format, produce a list of supported emulations. 633 634 case ${generic_target}-${fmt} in 635 mips-*-irix5*-*) emulation="mipsbelf mipslelf mipself mipsbecoff mipslecoff mipsecoff" ;; 636 mips*-*-linux*-*) case "$endian" in 637 big) emulation="mipsbelf mipslelf mipself" ;; 638 *) emulation="mipslelf mipsbelf mipself" ;; 639 esac ;; 640 mips-*-lnews*-ecoff) ;; 641 mips-*-*-ecoff) case "$endian" in 642 big) emulation="mipsbecoff mipslecoff mipsecoff" ;; 643 *) emulation="mipslecoff mipsbecoff mipsecoff" ;; 644 esac ;; 645 mips-*-*-elf) case "$endian" in 646 big) emulation="mipsbelf mipslelf mipself" ;; 647 *) emulation="mipslelf mipsbelf mipself" ;; 648 esac ;; 649 mips-*-sysv4*MP*-*) emulation="mipsbelf mipslelf mipself mipsbecoff mipslecoff mipsecoff" ;; 650 # i386-pc-pe-coff != i386-pc-coff. 651 i386-*-pe-coff) ;; 652 # Uncommenting the next line will turn on support for i386 AOUT 653 # for the default linux configuration 654 # i386-*-linux*-elf) emulation="i386elf i386aout" ;; 655 # 656 i386-*-aout) emulation="i386aout" ;; 657 i386-*-coff) emulation="i386coff" ;; 658 i386-*-elf) emulation="i386elf" ;; 659 660 # Always all formats. The first stated emulation becomes the default. 661 cris-*-*aout*) emulation="crisaout criself" ;; 662 cris-*-*) emulation="criself crisaout" ;; 663 esac 664 665 emulations="$emulations $emulation" 666 667done 668 669# Turn on all targets if possible 670if test ${all_targets} = "yes"; then 671 case ${target_cpu_type} in 672 i386) 673 case ${obj_format} in 674 aout) 675 emulations="$emulations i386coff i386elf" 676 ;; 677 coff) 678 emulations="$emulations i386aout i386elf" 679 ;; 680 elf) 681 emulations="$emulations i386aout i386coff" 682 ;; 683 esac 684 ;; 685 esac 686fi 687 688# Assign floating point type. Most processors with FP support 689# IEEE FP. On those that don't support FP at all, usually IEEE 690# is emulated. 691case ${target_cpu} in 692 vax | tahoe ) atof=${target_cpu} ;; 693 pdp11) atof=vax ;; 694 *) atof=ieee ;; 695esac 696 697case "${obj_format}" in 698 "") AC_MSG_ERROR(GAS does not know what format to use for target ${target}) ;; 699esac 700 701# Unfortunately the cpu in cpu-opc.h file isn't always $(TARGET_CPU). 702cgen_cpu_prefix="" 703if test $using_cgen = yes ; then 704 case ${target_cpu} in 705 *) cgen_cpu_prefix=${target_cpu} ;; 706 esac 707 AC_SUBST(cgen_cpu_prefix) 708 AC_DEFINE(USING_CGEN, 1, [Using cgen code?]) 709fi 710 711dnl 712dnl Make sure the desired support files exist. 713dnl 714 715if test ! -r ${srcdir}/config/tc-${target_cpu_type}.c; then 716 AC_MSG_ERROR(GAS does not support target CPU ${target_cpu_type}) 717fi 718 719if test ! -r ${srcdir}/config/obj-${obj_format}.c; then 720 AC_MSG_ERROR(GAS does not have support for object file format ${obj_format}) 721fi 722 723case ${user_bfd_gas}-${primary_bfd_gas} in 724 yes-yes | no-no) 725 # We didn't override user's choice. 726 ;; 727 no-yes) 728 AC_MSG_WARN(Use of BFD is required for ${target}; overriding config options.) 729 ;; 730 no-preferred) 731 primary_bfd_gas=no 732 ;; 733 *-preferred) 734 primary_bfd_gas=yes 735 ;; 736 yes-*) 737 primary_bfd_gas=yes 738 ;; 739 -*) 740 # User specified nothing. 741 ;; 742esac 743 744# Some COFF configurations want these random other flags set. 745case ${obj_format} in 746 coff) 747 case ${target_cpu_type} in 748 i386) AC_DEFINE(I386COFF, 1, [Using i386 COFF?]) ;; 749 m68k) AC_DEFINE(M68KCOFF, 1, [Using m68k COFF?]) ;; 750 m88k) AC_DEFINE(M88KCOFF, 1, [Using m88k COFF?]) ;; 751 esac 752 ;; 753esac 754 755# Getting this done right is going to be a bitch. Each configuration specified 756# with --enable-targets=... should be checked for environment, format, cpu, and 757# bfd_gas setting. 758# 759# For each configuration, the necessary object file support code must be linked 760# in. This might be only one, it might be up to four. The necessary emulation 761# code needs to be provided, too. 762# 763# And then there's "--enable-targets=all".... 764# 765# For now, just always do it for MIPS ELF or ECOFF configurations. Sigh. 766 767formats="${obj_format}" 768emfiles="" 769EMULATIONS="" 770GAS_UNIQ(emulations) 771for em in . $emulations ; do 772 case $em in 773 .) continue ;; 774 mipsbelf | mipslelf | mipself) 775 fmt=elf file=mipself ;; 776 mipsbecoff | mipslecoff | mipsecoff) 777 fmt=ecoff file=mipsecoff ;; 778 *coff) 779 fmt=coff file=$em ;; 780 *aout) 781 fmt=aout file=$em ;; 782 *elf) 783 fmt=elf file=$em ;; 784 esac 785 formats="$formats $fmt" 786 emfiles="$emfiles e-$file.o" 787 EMULATIONS="$EMULATIONS &$em," 788done 789GAS_UNIQ(formats) 790GAS_UNIQ(emfiles) 791if test `set . $formats ; shift ; echo $#` -gt 1 ; then 792 for fmt in $formats ; do 793 case $fmt in 794 aout) AC_DEFINE(OBJ_MAYBE_AOUT, 1, [a.out support?]) ;; 795 bout) AC_DEFINE(OBJ_MAYBE_BOUT, 1, [b.out support?]) ;; 796 coff) AC_DEFINE(OBJ_MAYBE_COFF, 1, [COFF support?]) ;; 797 ecoff) AC_DEFINE(OBJ_MAYBE_ECOFF, 1, [ECOFF support?]) ;; 798 elf) AC_DEFINE(OBJ_MAYBE_ELF, 1, [ELF support?]) ;; 799 generic) AC_DEFINE(OBJ_MAYBE_GENERIC, 1, [generic support?]) ;; 800 hp300) AC_DEFINE(OBJ_MAYBE_HP300, 1, [HP300 support?]) ;; 801 ieee) AC_DEFINE(OBJ_MAYBE_IEEE, 1, [IEEE support?]) ;; 802 som) AC_DEFINE(OBJ_MAYBE_SOM, 1, [SOM support?]) ;; 803 vms) AC_DEFINE(OBJ_MAYBE_VMS, 1, [VMS support?]) ;; 804 esac 805 extra_objects="$extra_objects obj-$fmt.o" 806 done 807 obj_format=multi 808fi 809if test `set . $emfiles ; shift ; echo $#` -gt 0 ; then 810 DEFAULT_EMULATION=`set . $emulations ; echo $2` 811 # e-mips* has more than one emulation per file, e-i386* has just one at the 812 # moment. If only one emulation is specified, then don't define 813 # USE_EMULATIONS or include any of the e-files as they will only be bloat. 814 case "${obj_format}${emfiles}" in 815 multi* | *mips*) 816 extra_objects="$extra_objects $emfiles" 817 AC_DEFINE(USE_EMULATIONS, 1, [Use emulation support?]) ;; 818 esac 819fi 820AC_SUBST(extra_objects) 821AC_DEFINE_UNQUOTED(EMULATIONS, $EMULATIONS, [Supported emulations.]) 822AC_DEFINE_UNQUOTED(DEFAULT_EMULATION, "$DEFAULT_EMULATION", 823 [Default emulation.]) 824 825case ${primary_bfd_gas}-${target_cpu_type}-${obj_format} in 826 yes-*-coff) need_bfd=yes ;; 827 no-*-coff) need_bfd=yes 828 AC_DEFINE(MANY_SEGMENTS, 1, [old COFF support?]) ;; 829esac 830 831reject_dev_configs=yes 832 833case ${reject_dev_configs}-${dev} in 834 yes-yes) # Oops. 835 AC_MSG_ERROR(GAS does not support the ${generic_target} configuration.) 836 ;; 837esac 838 839AC_SUBST(target_cpu_type) 840AC_SUBST(obj_format) 841AC_SUBST(te_file) 842AC_SUBST(install_tooldir) 843AC_SUBST(atof) 844dnl AC_SUBST(emulation) 845 846case "${primary_bfd_gas}" in 847 yes) AC_DEFINE(BFD_ASSEMBLER, 1, [Use BFD interface?]) 848 need_bfd=yes ;; 849esac 850 851# do we need the opcodes library? 852case "${need_opcodes}" in 853yes) 854 OPCODES_LIB=../opcodes/libopcodes.la 855 ;; 856esac 857 858case "${need_bfd}" in 859yes) 860 BFDLIB=../bfd/libbfd.la 861 ALL_OBJ_DEPS="$ALL_OBJ_DEPS ../bfd/bfd.h" 862 ;; 863esac 864 865AC_SUBST(BFDLIB) 866AC_SUBST(OPCODES_LIB) 867 868AC_SUBST(ALL_OBJ_DEPS) 869 870AC_DEFINE_UNQUOTED(TARGET_ALIAS, "${target_alias}", [Target alias.]) 871AC_DEFINE_UNQUOTED(TARGET_CANONICAL, "${target}", [Canonical target.]) 872AC_DEFINE_UNQUOTED(TARGET_CPU, "${target_cpu}", [Target CPU.]) 873AC_DEFINE_UNQUOTED(TARGET_VENDOR, "${target_vendor}", [Target vendor.]) 874AC_DEFINE_UNQUOTED(TARGET_OS, "${target_os}", [Target OS.]) 875 876AC_PROG_CC 877 878AC_PROG_YACC 879AM_PROG_LEX 880 881ALL_LINGUAS="fr tr" 882CY_GNU_GETTEXT 883 884AM_MAINTAINER_MODE 885AC_EXEEXT 886 887AC_CHECK_HEADERS(string.h stdlib.h memory.h strings.h unistd.h stdarg.h varargs.h errno.h sys/types.h) 888 889# Put this here so that autoconf's "cross-compiling" message doesn't confuse 890# people who are not cross-compiling but are compiling cross-assemblers. 891AC_MSG_CHECKING(whether compiling a cross-assembler) 892if test "${host}" = "${target}"; then 893 cross_gas=no 894else 895 cross_gas=yes 896 AC_DEFINE(CROSS_COMPILE, 1, [Compiling cross-assembler?]) 897fi 898AC_MSG_RESULT($cross_gas) 899 900dnl ansidecl.h will deal with const 901dnl AC_CONST 902AC_FUNC_ALLOCA 903AC_C_INLINE 904 905# VMS doesn't have unlink. 906AC_CHECK_FUNCS(unlink remove, break) 907 908# Some systems don't have sbrk(). 909AC_CHECK_FUNCS(sbrk) 910 911# do we need the math library? 912case "${need_libm}" in 913yes) 914 AC_CHECK_LIBM 915 AC_SUBST(LIBM) 916 ;; 917esac 918 919# Some non-ANSI preprocessors botch requoting inside strings. That's bad 920# enough, but on some of those systems, the assert macro relies on requoting 921# working properly! 922GAS_WORKING_ASSERT 923 924# On some systems, the system header files may not declare malloc, realloc, 925# and free. There are places where gas needs these functions to have been 926# declared -- such as when taking their addresses. 927gas_test_headers=" 928#ifdef HAVE_MEMORY_H 929#include <memory.h> 930#endif 931#ifdef HAVE_STRING_H 932#include <string.h> 933#else 934#ifdef HAVE_STRINGS_H 935#include <strings.h> 936#endif 937#endif 938#ifdef HAVE_STDLIB_H 939#include <stdlib.h> 940#endif 941#ifdef HAVE_UNISTD_H 942#include <unistd.h> 943#endif 944" 945GAS_CHECK_DECL_NEEDED(strstr, f, char *(*f)(), $gas_test_headers) 946GAS_CHECK_DECL_NEEDED(malloc, f, char *(*f)(), $gas_test_headers) 947GAS_CHECK_DECL_NEEDED(free, f, void (*f)(), $gas_test_headers) 948GAS_CHECK_DECL_NEEDED(sbrk, f, char *(*f)(), $gas_test_headers) 949GAS_CHECK_DECL_NEEDED(environ, f, char **f, $gas_test_headers) 950 951# Does errno.h declare errno, or do we have to add a separate declaration 952# for it? 953GAS_CHECK_DECL_NEEDED(errno, f, int f, [ 954#ifdef HAVE_ERRNO_H 955#include <errno.h> 956#endif 957]) 958 959dnl This must come last. 960 961dnl We used to make symlinks to files in the source directory, but now 962dnl we just use the right name for .c files, and create .h files in 963dnl the build directory which include the right .h file. Make sure 964dnl the old symlinks don't exist, so that a reconfigure in an existing 965dnl directory behaves reasonably. 966 967AC_OUTPUT(Makefile doc/Makefile ${GDBINIT}:gdbinit.in po/Makefile.in:po/Make-in, 968[rm -f targ-cpu.c targ-cpu.h obj-format.h obj-format.c targ-env.h atof-targ.c itbl-cpu.h 969 echo '#include "tc-'"${target_cpu_type}"'.h"' > targ-cpu.h 970 echo '#include "obj-'"${obj_format}"'.h"' > obj-format.h 971 echo '#include "te-'"${te_file}"'.h"' > targ-env.h 972 echo '#include "itbl-'"${target_cpu_type}"'.h"' > itbl-cpu.h 973 if test "x$cgen_cpu_prefix" != x ; then 974 echo '#include "opcodes/'"${cgen_cpu_prefix}"'-desc.h"' > cgen-desc.h 975 fi 976 977 sed -e '/POTFILES =/r po/POTFILES' po/Makefile.in > po/Makefile], 978[target_cpu_type=${target_cpu_type} 979 cgen_cpu_prefix=${cgen_cpu_prefix} 980 obj_format=${obj_format} 981 te_file=${te_file}]) 982