From 252b5132c753830d5fd56823373aed85f2a0db63 Mon Sep 17 00:00:00 2001 From: Richard Henderson Date: Mon, 3 May 1999 07:29:11 +0000 Subject: 19990502 sourceware import --- gas/configure.in | 766 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 766 insertions(+) create mode 100644 gas/configure.in (limited to 'gas/configure.in') diff --git a/gas/configure.in b/gas/configure.in new file mode 100644 index 0000000..4d847ba --- /dev/null +++ b/gas/configure.in @@ -0,0 +1,766 @@ +dnl Process this file with autoconf to produce a configure script. +dnl +dnl And be careful when changing it! If you must add tests with square +dnl brackets, be sure changequote invocations surround it. +dnl +dnl +dnl v2.5 needed for --bindir et al +AC_PREREQ(2.13) +AC_INIT(as.h) + +AC_CANONICAL_SYSTEM + +AM_INIT_AUTOMAKE(gas, 2.9.4) + +AM_PROG_LIBTOOL + +user_bfd_gas= +AC_ARG_ENABLE(bfd-assembler, +[ --enable-bfd-assembler use BFD back end for writing object files], +[case "${enableval}" in + yes) need_bfd=yes user_bfd_gas=yes ;; + no) user_bfd_gas=no ;; + *) AC_MSG_ERROR(bad value ${enableval} given for bfd-assembler option) ;; +esac])dnl +AC_ARG_ENABLE(targets, +[ targets alternative target configurations besides the primary], +[case "${enableval}" in + yes | "") AC_ERROR(enable-targets option must specify target names or 'all') + ;; + no) enable_targets= ;; + *) enable_targets=$enableval ;; +esac])dnl +AC_ARG_ENABLE(commonbfdlib, +[ --enable-commonbfdlib build shared BFD/opcodes/libiberty library], +[case "${enableval}" in + yes) commonbfdlib=true ;; + no) commonbfdlib=false ;; + *) AC_MSG_ERROR([bad value ${enableval} for BFD commonbfdlib option]) ;; +esac])dnl + +using_cgen=no + +# Generate a header file +AM_CONFIG_HEADER(config.h:config.in) + +te_file=generic + +# Makefile target for installing gas in $(tooldir)/bin. +install_tooldir=install-exec-tooldir + +canon_targets="" +if test -n "$enable_targets" ; then + for t in `echo $enable_targets | sed 's/,/ /g'`; do + result=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $t 2>/dev/null` + if test -n "$result" ; then + canon_targets="$canon_targets $result" +# else +# # Permit "all", etc. We don't support it yet though. +# canon_targets="$canon_targets $t" + fi + done + GAS_UNIQ(canon_targets) +fi + +emulations="" + +for this_target in $target $canon_targets ; do + +changequote(,)dnl + eval `echo $this_target | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/cpu=\1 vendor=\2 os=\3/'` +changequote([,])dnl + + # check for architecture variants + arch= + endian= + case ${cpu} in + alpha*) cpu_type=alpha ;; + armeb) cpu_type=arm endian=big ;; + arm*) cpu_type=arm endian=little ;; + armb*) cpu_type=arm endian=little ;; + armv*l) cpu_type=arm endian=little ;; + armv*b) cpu_type=arm endian=big ;; + strongarm*) cpu_type=arm endian=little ;; + thumb*) cpu_type=arm endian=little ;; + hppa*) cpu_type=hppa ;; +changequote(,)dnl + i[456]86) cpu_type=i386 ;; + m680[012346]0) cpu_type=m68k ;; +changequote([,])dnl + m68008) cpu_type=m68k ;; + m683??) cpu_type=m68k ;; + m5200) cpu_type=m68k ;; + m8*) cpu_type=m88k ;; + mips*el) cpu_type=mips endian=little ;; + mips*) cpu_type=mips endian=big ;; + powerpcle*) cpu_type=ppc endian=little ;; + powerpc*) cpu_type=ppc endian=big ;; + rs6000*) cpu_type=ppc ;; + sparclite*) cpu_type=sparc arch=sparclite ;; + sparclet*) cpu_type=sparc arch=sparclet ;; + sparc64*) cpu_type=sparc arch=v9-64 ;; + sparc86x*) cpu_type=sparc arch=sparc86x ;; + sparc*) cpu_type=sparc arch=sparclite ;; # ??? See tc-sparc.c. + v850*) cpu_type=v850 ;; + *) cpu_type=${cpu} ;; + esac + + if test ${this_target} = $target ; then + target_cpu_type=${cpu_type} + elif test ${target_cpu_type} != ${cpu_type} ; then + continue + fi + + generic_target=${cpu_type}-$vendor-$os + dev=no + bfd_gas=no + em=generic + + # assign object format + case ${generic_target} in + a29k-*-coff) fmt=coff ;; + a29k-amd-udi) fmt=coff ;; + a29k-amd-ebmon) fmt=coff ;; + a29k-nyu-sym1) fmt=coff ;; + a29k-*-vxworks*) fmt=coff ;; + + alpha*-*-*vms*) fmt=evax ;; + alpha*-*-netware*) fmt=ecoff ;; + alpha*-*-openbsd*) fmt=ecoff ;; + alpha*-*-osf*) fmt=ecoff ;; + alpha*-*-linuxecoff*) fmt=ecoff ;; + alpha*-*-linux-gnu*) fmt=elf em=linux ;; + alpha*-*-netbsd*) fmt=elf em=nbsd ;; + + arc-*-elf*) fmt=elf bfd_gas=yes ;; + + arm-*-aout) fmt=aout ;; + arm-*-coff | thumb-*-coff) fmt=coff ;; + arm-*-elf | thumb-*-elf) fmt=elf ;; + arm-*-linux*aout*) fmt=aout em=linux ;; + arm-*-linux* | armv*-*-linux-gnu) fmt=elf em=linux ;; + arm-*-netbsd*) fmt=aout em=nbsd bfd_gas=yes ;; + arm-*-oabi | thumb-*-oabi) fmt=elf ;; + arm-epoc-pe | thumb-epoc-pe) fmt=coff em=epoc-pe ;; + arm-*-pe | thumb-*-pe) fmt=coff em=pe ;; + arm-*-riscix*) fmt=aout em=riscix ;; + + d10v-*-*) fmt=elf bfd_gas=yes ;; + d30v-*-*) fmt=elf bfd_gas=yes ;; + + + fr30-*-*) fmt=elf bfd_gas=yes ;; + + hppa-*-*elf*) fmt=elf em=hppa ;; + hppa-*-lites*) fmt=elf em=hppa ;; + hppa-*-osf*) fmt=som em=hppa ;; + hppa-*-rtems*) fmt=elf em=hppa ;; + hppa-*-hpux*) fmt=som em=hppa ;; + hppa-*-mpeix*) fmt=som em=hppa ;; + hppa-*-bsd*) fmt=som em=hppa ;; + hppa-*-hiux*) fmt=som em=hppa ;; + + h8300-*-coff) fmt=coff ;; + + i386-ibm-aix*) fmt=coff em=i386aix ;; + i386-sequent-bsd*) fmt=aout em=dynix bfd_gas=yes ;; + i386-*-beospe*) fmt=coff em=pe bfd_gas=yes ;; + i386-*-beoself* | i386-*-beos*) fmt=elf bfd_gas=yes ;; + i386-*-bsd*) fmt=aout em=386bsd ;; + i386-*-netbsd0.8) fmt=aout em=386bsd ;; + i386-*-netbsd*) fmt=aout em=nbsd bfd_gas=yes;; + i386-*-openbsd*) fmt=aout em=nbsd bfd_gas=yes;; + i386-*-linux*aout* | i386-*-linuxoldld) fmt=aout em=linux ;; + i386-*-linux*coff*) fmt=coff em=linux ;; + i386-*-linux-gnu*) fmt=elf em=linux bfd_gas=yes ;; + i386-*-lynxos*) fmt=coff em=lynx ;; + i386-*-sysv4* | i386-*-solaris* | i386-*-elf) + fmt=elf bfd_gas=yes ;; + i386-*-freebsdelf*) fmt=elf bfd_gas=yes ;; + i386-*-freebsd*) fmt=aout em=386bsd ;; + i386-*-coff | i386-*-sysv* | i386-*-sco3.2v5*coff | i386-*-isc*) + fmt=coff ;; + i386-*-sco3.2v5*) fmt=elf + if test ${this_target} = $target; then + AC_DEFINE(SCO_ELF, 1, + [Define if defaulting to ELF on SCO 5.]) + fi + ;; + i386-*-sco3.2*) fmt=coff ;; + i386-*-vsta) fmt=aout ;; + i386-*-msdosdjgpp* | i386-*-go32* | i386-go32-rtems*) + fmt=coff em=go32;; + i386-*-rtems*) fmt=coff ;; + i386-*-gnu*) fmt=elf ;; + i386-*-mach*) + fmt=aout em=mach bfd_gas=yes ;; + i386-*-msdos*) fmt=aout ;; + i386-*-moss*) fmt=elf ;; + i386-*-pe) fmt=coff em=pe ;; + i386-*-cygwin*) fmt=coff em=pe bfd_gas=yes ;; + i386-*-mingw32*) fmt=coff em=pe bfd_gas=yes ;; + i386-*-*nt*) fmt=coff em=pe ;; + i960-*-bout) fmt=bout ;; + i960-*-coff) fmt=coff em=ic960 ;; + i960-*-rtems*) fmt=coff em=ic960 ;; + i960-*-nindy*) fmt=bout ;; + i960-*-vxworks4*) fmt=bout ;; + i960-*-vxworks5.0) fmt=bout ;; + i960-*-vxworks5.*) fmt=coff em=ic960 ;; + i960-*-vxworks*) fmt=bout ;; + + m32r-*-*) fmt=elf bfd_gas=yes ;; + + m68k-*-vxworks* | m68k-ericsson-ose | m68k-*-sunos*) + fmt=aout em=sun3 ;; + m68k-motorola-sysv*) fmt=coff em=delta ;; + m68k-bull-sysv3*) fmt=coff em=dpx2 ;; + m68k-apollo-*) fmt=coff em=apollo ;; + m68k-*-sysv4*) # must be before -sysv* + fmt=elf em=svr4 ;; + m68k-*-elf*) fmt=elf ;; + m68k-*-coff | m68k-*-sysv* | m68k-*-rtems*) + fmt=coff ;; + m68k-*-hpux*) fmt=hp300 em=hp300 ;; + m68k-*-linux*aout*) fmt=aout em=linux ;; + m68k-*-linux-gnu*) fmt=elf em=linux ;; + m68k-*-gnu*) fmt=elf ;; + m68k-*-lynxos*) fmt=coff em=lynx ;; + m68k-*-netbsd*) fmt=aout em=nbsd bfd_gas=yes ;; + m68k-*-openbsd*) fmt=aout em=nbsd bfd_gas=yes ;; + m68k-apple-aux*) fmt=coff em=aux ;; + m68k-*-psos*) fmt=elf em=psos;; + + m88k-motorola-sysv3*) fmt=coff em=delt88 ;; + m88k-*-coff*) fmt=coff ;; + + mcore-*-elf) fmt=elf bfd_gas=yes ;; + mcore-*-pe) fmt=coff em=pe bfd_gas=yes ;; + + # don't change em like *-*-bsd does + mips-dec-netbsd*) fmt=elf endian=little ;; + mips-dec-openbsd*) fmt=elf endian=little ;; + mips-dec-bsd*) fmt=aout endian=little ;; + mips-sony-bsd*) fmt=ecoff ;; + mips-*-bsd*) AC_MSG_ERROR(Unknown vendor for mips-bsd configuration.) ;; + mips-*-ultrix*) fmt=ecoff endian=little ;; + mips-*-osf*) fmt=ecoff endian=little ;; + mips-*-ecoff*) fmt=ecoff ;; + mips-*-ecoff*) fmt=ecoff ;; + mips-*-irix6*) fmt=elf ;; + mips-*-irix5*) fmt=elf ;; + mips-*-irix*) fmt=ecoff ;; + mips-*-lnews*) fmt=ecoff em=lnews ;; + mips-*-riscos*) fmt=ecoff ;; + mips-*-sysv*) fmt=ecoff ;; + mips-*-elf* | mips-*-rtems* | mips-*-linux-gnu* | mips-*-gnu* | mips-*-openbsd*) + fmt=elf ;; + mips-*-vxworks*) fmt=elf + AC_DEFINE(MIPS_STABS_ELF, 1, + [Use ELF stabs for MIPS, not ECOFF stabs]) + ;; + mn10200-*-*) fmt=elf bfd_gas=yes ;; + mn10300-*-*) fmt=elf bfd_gas=yes ;; + ppc-*-pe | ppc-*-cygwin* | ppc-*-winnt*) + fmt=coff em=pe ;; + ppc-*-aix*) fmt=coff ;; + ppc-*-beos*) fmt=coff ;; + ppc-*-*bsd* | ppc-*-elf* | ppc-*-eabi* | ppc-*-sysv4*) + fmt=elf ;; + ppc-*-linux-gnu*) fmt=elf + case "$endian" in + big) ;; + *) AC_MSG_ERROR(GNU/Linux must be configured big endian) ;; + esac + ;; + ppc-*-solaris*) fmt=elf + if test ${this_target} = $target; then + AC_DEFINE(TARGET_SOLARIS_COMMENT, 1, + [Define if default target is PowerPC Solaris.]) + fi + if test x${endian} = xbig; then + AC_MSG_ERROR(Solaris must be configured little endian) + fi + ;; + ppc-*-rtems*) fmt=elf ;; + ppc-*-macos* | ppc-*-mpw*) + fmt=coff em=macos ;; + ppc-*-netware*) fmt=elf em=ppcnw ;; + + sh-*-elf*) fmt=elf ;; + sh-*-coff*) fmt=coff ;; + sh-*-rtems*) fmt=coff ;; + + ns32k-pc532-mach* | ns32k-pc532-ux*) fmt=aout em=pc532mach ;; + ns32k-pc532-netbsd* | ns32k-pc532-lites*) fmt=aout em=nbsd532 ;; + ns32k-pc532-openbsd*) fmt=aout em=nbsd532 ;; + + sparc-*-rtems*) fmt=aout ;; + sparc-*-sunos4*) fmt=aout em=sun3 ;; + sparc-*-aout | sparc*-*-vxworks*) + fmt=aout em=sparcaout ;; + sparc-*-coff) fmt=coff ;; + sparc-*-linux*aout*) fmt=aout em=linux ;; + sparc-*-linux-gnu*) fmt=elf em=linux ;; + sparc-*-lynxos*) fmt=coff em=lynx ;; + sparc-fujitsu-none) fmt=aout ;; + sparc-*-elf | sparc-*-sysv4* | sparc-*-solaris*) + fmt=elf ;; + sparc-*-netbsd*) fmt=aout em=nbsd ;; + sparc-*-openbsd*) fmt=aout em=nbsd ;; + + strongarm-*-coff) fmt=coff ;; + strongarm-*-elf) fmt=elf ;; + + tic30-*-*aout*) fmt=aout bfd_gas=yes ;; + tic30-*-*coff*) fmt=coff bfd_gas=yes ;; + tic80-*-*) fmt=coff ;; + + v850-*-*) fmt=elf bfd_gas=yes ;; + v850e-*-*) fmt=elf bfd_gas=yes ;; + v850ea-*-*) fmt=elf bfd_gas=yes ;; + + vax-*-bsd* | vax-*-ultrix*) + fmt=aout ;; + vax-*-vms) fmt=vms ;; + + + z8k-*-coff | z8k-*-sim) + fmt=coff ;; + + w65-*-*) fmt=coff ;; + + *-*-aout | *-*-scout) + fmt=aout ;; + *-*-nindy*) + fmt=bout ;; + *-*-bsd*) + fmt=aout em=sun3 ;; + *-*-generic) fmt=generic ;; + *-*-xray | *-*-hms) fmt=coff ;; + *-*-sim) fmt=coff ;; + *-*-elf | *-*-sysv4* | *-*-solaris*) + AC_MSG_WARN(GAS support for ${generic_target} is incomplete.) + fmt=elf dev=yes ;; + *-*-vxworks) fmt=aout ;; + *-*-netware) fmt=elf ;; + esac + + if test ${this_target} = $target ; then + endian_def= + if test x${endian} = xbig; then + endian_def=1 + elif test x${endian} = xlittle; then + endian_def=0 + fi + if test x${endian_def} != x; then + AC_DEFINE_UNQUOTED(TARGET_BYTES_BIG_ENDIAN, $endian_def, + [Define as 1 if big endian.]) + fi + fi + + case ${cpu_type}-${fmt} in + alpha*-*) bfd_gas=yes ;; + arm-*) bfd_gas=yes ;; + # not yet + # i386-aout) bfd_gas=preferred ;; + mips-*) bfd_gas=yes ;; + ns32k-*) bfd_gas=yes ;; + ppc-*) bfd_gas=yes ;; + sparc-*) bfd_gas=yes ;; + strongarm-*) bfd_gas=yes ;; + *-elf) bfd_gas=yes ;; + *-ecoff) bfd_gas=yes ;; + *-som) bfd_gas=yes ;; + *) ;; + esac + +# Other random stuff. + + # Do we need the opcodes library? + case ${cpu_type} in + vax | i386 | tic30) + ;; + + *) + need_opcodes=yes + + case "${enable_shared}" in + yes) shared_opcodes=true ;; + *opcodes*) shared_opcodes=true ;; + *) shared_opcodes=false ;; + esac + if test "${shared_opcodes}" = "true"; then + # A shared libopcodes must be linked against libbfd. + need_bfd=yes + fi + ;; + esac + + # Any other special object files needed ? + case ${cpu_type} in + fr30 | m32r) + using_cgen=yes + ;; + + m68k) + case ${extra_objects} in + *m68k-parse.o*) ;; + *) extra_objects="$extra_objects m68k-parse.o" ;; + esac + ;; + + mips) + echo ${extra_objects} | grep -s "itbl-parse.o" + if test $? -ne 0 ; then + extra_objects="$extra_objects itbl-parse.o" + fi + + echo ${extra_objects} | grep -s "itbl-lex.o" + if test $? -ne 0 ; then + extra_objects="$extra_objects itbl-lex.o" + fi + + echo ${extra_objects} | grep -s "itbl-ops.o" + if test $? -ne 0 ; then + extra_objects="$extra_objects itbl-ops.o" + fi + ;; + + sparc) + if test $this_target = $target ; then + AC_DEFINE_UNQUOTED(DEFAULT_ARCH, "${arch}", [Default architecture.]) + fi + ;; + *) + ;; + esac + + if test $using_cgen = yes ; then + case "x${extra_objects}" in + *cgen.o*) ;; + *) extra_objects="$extra_objects cgen.o" ;; + esac + fi + +# See if we really can support this configuration with the emulation code. + + if test $this_target = $target ; then + primary_bfd_gas=$bfd_gas + obj_format=$fmt + te_file=$em + + if test $bfd_gas = no ; then + # Can't support other configurations this way. + break + fi + elif test $bfd_gas = no ; then + # Can't support this configuration. + break + fi + +# From target name and format, produce a list of supported emulations. + + case ${generic_target}-${fmt} in + mips-*-irix5*-*) emulation="mipsbelf mipslelf mipself mipsbecoff mipslecoff mipsecoff" ;; + mips-*-linux-gnu*-*) case "$endian" in + big) emulation="mipsbelf mipslelf mipself mipsbecoff mipslecoff mipsecoff" ;; + *) emulation="mipslelf mipsbelf mipself mipslecoff mipsbecoff mipsecoff" ;; + esac ;; + mips-*-lnews*-ecoff) ;; + mips-*-*-ecoff) case "$endian" in + big) emulation="mipsbecoff mipslecoff mipsecoff" ;; + *) emulation="mipslecoff mipsbecoff mipsecoff" ;; + esac ;; + mips-*-*-elf) case "$endian" in + big) emulation="mipsbelf mipslelf mipself" ;; + *) emulation="mipslelf mipsbelf mipself" ;; + # Uncommenting the next line will turn on support for i386 COFF + # in any i386 ELF configuration. This probably doesn't work + # correctly. + # i386-*-*-elf) emulation="i386coff i386elf" ;; + esac ;; + esac + + emulations="$emulations $emulation" + +done + +# Assign floating point type. Most processors with FP support +# IEEE FP. On those that don't support FP at all, usually IEEE +# is emulated. +case ${target_cpu} in + vax | tahoe ) atof=${target_cpu} ;; + *) atof=ieee ;; +esac + +case "${obj_format}" in + "") AC_MSG_ERROR(GAS does not know what format to use for target ${target}) ;; +esac + +# Unfortunately the cpu in cpu-opc.h file isn't always $(TARGET_CPU). +cgen_cpu_prefix="" +if test $using_cgen = yes ; then + case ${target_cpu} in + *) cgen_cpu_prefix=${target_cpu} ;; + esac + AC_SUBST(cgen_cpu_prefix) + AC_DEFINE(USING_CGEN, 1, [Using cgen code?]) +fi + +dnl +dnl Make sure the desired support files exist. +dnl + +if test ! -r ${srcdir}/config/tc-${target_cpu_type}.c; then + AC_MSG_ERROR(GAS does not support target CPU ${target_cpu_type}) +fi + +if test ! -r ${srcdir}/config/obj-${obj_format}.c; then + AC_MSG_ERROR(GAS does not have support for object file format ${obj_format}) +fi + +case ${user_bfd_gas}-${primary_bfd_gas} in + yes-yes | no-no) + # We didn't override user's choice. + ;; + no-yes) + AC_MSG_WARN(Use of BFD is required for ${target}; overriding config options.) + ;; + no-preferred) + primary_bfd_gas=no + ;; + *-preferred) + primary_bfd_gas=yes + ;; + yes-*) + primary_bfd_gas=yes + ;; + -*) + # User specified nothing. + ;; +esac + +# Some COFF configurations want these random other flags set. +case ${obj_format} in + coff) + case ${target_cpu_type} in + i386) AC_DEFINE(I386COFF, 1, [Using i386 COFF?]) ;; + m68k) AC_DEFINE(M68KCOFF, 1, [Using m68k COFF?]) ;; + m88k) AC_DEFINE(M88KCOFF, 1, [Using m88k COFF?]) ;; + esac + ;; +esac + +# Getting this done right is going to be a bitch. Each configuration specified +# with --enable-targets=... should be checked for environment, format, cpu, and +# bfd_gas setting. +# +# For each configuration, the necessary object file support code must be linked +# in. This might be only one, it might be up to four. The necessary emulation +# code needs to be provided, too. +# +# And then there's "--enable-targets=all".... +# +# For now, just always do it for MIPS ELF or ECOFF configurations. Sigh. + +formats="${obj_format}" +emfiles="" +EMULATIONS="" +GAS_UNIQ(emulations) +for em in . $emulations ; do + case $em in + .) continue ;; + mipsbelf | mipslelf) + fmt=elf file=mipself ;; + mipsbecoff | mipslecoff) + fmt=ecoff file=mipsecoff ;; + i386coff) + fmt=coff file=i386coff ;; + i386elf) + fmt=elf file=i386elf ;; + esac + formats="$formats $fmt" + emfiles="$emfiles e-$file.o" + EMULATIONS="$EMULATIONS &$em," +done +GAS_UNIQ(formats) +GAS_UNIQ(emfiles) +if test `set . $formats ; shift ; echo $#` -gt 1 ; then + for fmt in $formats ; do + case $fmt in + aout) AC_DEFINE(OBJ_MAYBE_AOUT, 1, [a.out support?]) ;; + bout) AC_DEFINE(OBJ_MAYBE_BOUT, 1, [b.out support?]) ;; + coff) AC_DEFINE(OBJ_MAYBE_COFF, 1, [COFF support?]) ;; + ecoff) AC_DEFINE(OBJ_MAYBE_ECOFF, 1, [ECOFF support?]) ;; + elf) AC_DEFINE(OBJ_MAYBE_ELF, 1, [ELF support?]) ;; + generic) AC_DEFINE(OBJ_MAYBE_GENERIC, 1, [generic support?]) ;; + hp300) AC_DEFINE(OBJ_MAYBE_HP300, 1, [HP300 support?]) ;; + ieee) AC_DEFINE(OBJ_MAYBE_IEEE, 1, [IEEE support?]) ;; + som) AC_DEFINE(OBJ_MAYBE_SOM, 1, [SOM support?]) ;; + vms) AC_DEFINE(OBJ_MAYBE_VMS, 1, [VMS support?]) ;; + esac + extra_objects="$extra_objects obj-$fmt.o" + done + obj_format=multi +fi +if test `set . $emfiles ; shift ; echo $#` -gt 0 ; then + te_file=multi + extra_objects="$extra_objects $emfiles" + DEFAULT_EMULATION=`set . $emulations ; echo $2` + AC_DEFINE(USE_EMULATIONS, 1, [Use emulation support?]) +fi +AC_SUBST(extra_objects) +AC_DEFINE_UNQUOTED(EMULATIONS, $EMULATIONS, [Supported emulations.]) +AC_DEFINE_UNQUOTED(DEFAULT_EMULATION, "$DEFAULT_EMULATION", + [Default emulation.]) + +case ${primary_bfd_gas}-${target_cpu_type}-${obj_format} in + yes-*-coff) need_bfd=yes ;; + no-*-coff) need_bfd=yes + AC_DEFINE(MANY_SEGMENTS, 1, [old COFF support?]) ;; +esac + +reject_dev_configs=yes + +case ${reject_dev_configs}-${dev} in + yes-yes) # Oops. + AC_MSG_ERROR(GAS does not support the ${generic_target} configuration.) + ;; +esac + +AC_SUBST(target_cpu_type) +AC_SUBST(obj_format) +AC_SUBST(te_file) +AC_SUBST(install_tooldir) +AC_SUBST(atof) +dnl AC_SUBST(emulation) + +case "${primary_bfd_gas}" in + yes) AC_DEFINE(BFD_ASSEMBLER, 1, [Use BFD interface?]) + need_bfd=yes ;; +esac + +# do we need the opcodes library? +case "${need_opcodes}" in +yes) + OPCODES_LIB=../opcodes/libopcodes.la + ;; +esac + +case "${need_bfd}" in +yes) + BFDLIB=../bfd/libbfd.la + ALL_OBJ_DEPS="$ALL_OBJ_DEPS ../bfd/bfd.h" + ;; +esac + +AC_SUBST(BFDLIB) +AC_SUBST(OPCODES_LIB) + +AC_SUBST(ALL_OBJ_DEPS) + +AC_DEFINE_UNQUOTED(TARGET_ALIAS, "${target_alias}", [Target alias.]) +AC_DEFINE_UNQUOTED(TARGET_CANONICAL, "${target}", [Canonical target.]) +AC_DEFINE_UNQUOTED(TARGET_CPU, "${target_cpu}", [Target CPU.]) +AC_DEFINE_UNQUOTED(TARGET_VENDOR, "${target_vendor}", [Target vendor.]) +AC_DEFINE_UNQUOTED(TARGET_OS, "${target_os}", [Target OS.]) + +AC_PROG_CC + +AC_PROG_YACC +AM_PROG_LEX + +ALL_LINGUAS= +CY_GNU_GETTEXT + +AM_MAINTAINER_MODE +AC_EXEEXT + +AC_CHECK_HEADERS(string.h stdlib.h memory.h strings.h unistd.h stdarg.h varargs.h errno.h sys/types.h) + +# Put this here so that autoconf's "cross-compiling" message doesn't confuse +# people who are not cross-compiling but are compiling cross-assemblers. +AC_MSG_CHECKING(whether compiling a cross-assembler) +if test "${host}" = "${target}"; then + cross_gas=no +else + cross_gas=yes + AC_DEFINE(CROSS_COMPILE, 1, [Compiling cross-assembler?]) +fi +AC_MSG_RESULT($cross_gas) + +dnl ansidecl.h will deal with const +dnl AC_CONST +AC_FUNC_ALLOCA +AC_C_INLINE + +# VMS doesn't have unlink. +AC_CHECK_FUNCS(unlink remove, break) + +# Some systems don't have sbrk(). +AC_CHECK_FUNCS(sbrk) + +# Some non-ANSI preprocessors botch requoting inside strings. That's bad +# enough, but on some of those systems, the assert macro relies on requoting +# working properly! +GAS_WORKING_ASSERT + +# On some systems, the system header files may not declare malloc, realloc, +# and free. There are places where gas needs these functions to have been +# declared -- such as when taking their addresses. +gas_test_headers=" +#ifdef HAVE_MEMORY_H +#include +#endif +#ifdef HAVE_STRING_H +#include +#else +#ifdef HAVE_STRINGS_H +#include +#endif +#endif +#ifdef HAVE_STDLIB_H +#include +#endif +#ifdef HAVE_UNISTD_H +#include +#endif +" +GAS_CHECK_DECL_NEEDED(strstr, f, char *(*f)(), $gas_test_headers) +GAS_CHECK_DECL_NEEDED(malloc, f, char *(*f)(), $gas_test_headers) +GAS_CHECK_DECL_NEEDED(free, f, void (*f)(), $gas_test_headers) +GAS_CHECK_DECL_NEEDED(sbrk, f, char *(*f)(), $gas_test_headers) +GAS_CHECK_DECL_NEEDED(environ, f, char **f, $gas_test_headers) + +# Does errno.h declare errno, or do we have to add a separate declaration +# for it? +GAS_CHECK_DECL_NEEDED(errno, f, int f, [ +#ifdef HAVE_ERRNO_H +#include +#endif +]) + +dnl This must come last. + +dnl We used to make symlinks to files in the source directory, but now +dnl we just use the right name for .c files, and create .h files in +dnl the build directory which include the right .h file. Make sure +dnl the old symlinks don't exist, so that a reconfigure in an existing +dnl directory behaves reasonably. + +AC_OUTPUT(Makefile doc/Makefile .gdbinit:gdbinit.in po/Makefile.in:po/Make-in, +[rm -f targ-cpu.c targ-cpu.h obj-format.h obj-format.c targ-env.h atof-targ.c itbl-cpu.h + echo '#include "tc-'"${target_cpu_type}"'.h"' > targ-cpu.h + echo '#include "obj-'"${obj_format}"'.h"' > obj-format.h + echo '#include "te-'"${te_file}"'.h"' > targ-env.h + echo '#include "itbl-'"${target_cpu_type}"'.h"' > itbl-cpu.h + if test "x$cgen_cpu_prefix" != x ; then + echo '#include "opcodes/'"${cgen_cpu_prefix}"'-desc.h"' > cgen-desc.h + fi + + sed -e '/POTFILES =/r po/POTFILES' po/Makefile.in > po/Makefile], +[target_cpu_type=${target_cpu_type} + cgen_cpu_prefix=${cgen_cpu_prefix} + obj_format=${obj_format} + te_file=${te_file}]) -- cgit v1.1