]> git.ipfire.org Git - thirdparty/binutils-gdb.git/blobdiff - gas/configure.in
Add support for the Infineon XC16X.
[thirdparty/binutils-gdb.git] / gas / configure.in
index c13f82845c898dd7cfd6ed858137df65bccabeba..f7a75cd4e29d509a025a43c62c040119c45e770b 100644 (file)
@@ -5,9 +5,13 @@ dnl brackets, be sure changequote invocations surround it.
 dnl
 dnl
 dnl v2.5 needed for --bindir et al
-AC_PREREQ(2.13)
+AC_PREREQ(2.57)
 AC_INIT(as.h)
 
+dnl Autoconf 2.57 will find the aux dir without this.  However, unless
+dnl we specify this explicitly, automake-1.7 will assume that ylwrap is in
+dnl gas/ instead of gas/../.
+AC_CONFIG_AUX_DIR(..)
 AC_CANONICAL_SYSTEM
 AC_ISC_POSIX
 
@@ -18,14 +22,6 @@ AM_INIT_AUTOMAKE(gas, ${BFD_VERSION})
 
 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
@@ -44,40 +40,28 @@ esac])dnl
 
 using_cgen=no
 
-build_warnings="-W -Wall -Wstrict-prototypes -Wmissing-prototypes"
-AC_ARG_ENABLE(build-warnings,
-[  --enable-build-warnings Enable build-time compiler warnings if gcc is used],
-[case "${enableval}" in
-  yes) ;;
-  no)  build_warnings="-w";;
-  ,*)   t=`echo "${enableval}" | sed -e "s/,/ /g"`
-        build_warnings="${build_warnings} ${t}";;
-  *,)   t=`echo "${enableval}" | sed -e "s/,/ /g"`
-        build_warnings="${t} ${build_warnings}";;
-  *)    build_warnings=`echo "${enableval}" | sed -e "s/,/ /g"`;;
-esac
-if test x"$silent" != x"yes" && test x"$build_warnings" != x""; then
-  echo "Setting warning flags = $build_warnings" 6>&1
-fi])dnl
-WARN_CFLAGS=""
-if test "x${build_warnings}" != x -a "x$GCC" = xyes ; then
-    WARN_CFLAGS="${build_warnings}"
-fi
-AC_SUBST(WARN_CFLAGS)
+AM_BINUTILS_WARNINGS
 
 # Generate a header file
 AM_CONFIG_HEADER(config.h:config.in)
 
 # If we are on a DOS filesystem, we must use gdb.ini rather than
 # .gdbinit.
-GDBINIT=".gdbinit"
 case "${host}" in
-  *-*-msdos* | *-*-go32* | *-*-mingw32* | *-*-cygwin* | *-*-windows*)
+  *-*-msdos* | *-*-go32* | *-*-mingw32* | *-*-windows*)
     GDBINIT="gdb.ini"
+    AC_CONFIG_FILES(gdb.ini:gdbinit.in)
+    ;;
+  *)
+    GDBINIT=".gdbinit"
+    AC_CONFIG_FILES(.gdbinit:gdbinit.in)
     ;;
 esac
 AC_SUBST(GDBINIT)
 
+#We need this for the host.  BOUT header is in host order.
+AC_C_BIGENDIAN
+
 te_file=generic
 
 # Makefile target for installing gas in $(tooldir)/bin.
@@ -106,55 +90,14 @@ 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
+    targ=${this_target}
+    . ${srcdir}/configure.tgt
 
-    # 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 ;;
-      xscale*)         cpu_type=arm endian=little ;;
-      strongarm*)      cpu_type=arm endian=little ;;
-      thumb*)          cpu_type=arm endian=little ;;
-      hppa*)           cpu_type=hppa ;;
-changequote(,)dnl
-      i[3456]86)       cpu_type=i386 arch=i386;;
-      x86_64)          cpu_type=i386 arch=x86_64;;
-      ia64)            cpu_type=ia64 ;;
-      m6811|m6812|m68hc12) cpu_type=m68hc11 ;;
-      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 ;;
-      or32*)           cpu_type=or32 endian=big ;;
-      pjl*)            cpu_type=pj endian=little ;;
-      pj*)             cpu_type=pj endian=big ;;
-      powerpc*le*)     cpu_type=ppc endian=little ;;
-      powerpc*)                cpu_type=ppc endian=big ;;
-      rs6000*)         cpu_type=ppc ;;
-      s390x*)          cpu_type=s390 arch=s390x ;;
-      s390*)           cpu_type=s390 arch=s390 ;;
-      sh64*)            cpu_type=sh64 endian=big;;
-      sh*le)           cpu_type=sh endian=little ;;
-      sh*)             cpu_type=sh endian=big ;;
-      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} ;;
+    case ${target_cpu} in
+      crisv32)
+       AC_DEFINE_UNQUOTED(DEFAULT_CRIS_ARCH, $arch,
+                          [Default CRIS architecture.])
+       ;;
     esac
 
     if test ${this_target} = $target ; then
@@ -163,341 +106,53 @@ changequote([,])dnl
       continue
     fi
 
-    generic_target=${cpu_type}-$vendor-$os
-    dev=no
-    bfd_gas=no
-    em=generic
-    mips_stabs_elf=
-
-    # assign object format
+    generic_target=${cpu_type}-${target_vendor}-${target_os}
     case ${generic_target} in
-      a29k-*-coff)          fmt=coff ;;
-      a29k-amd-udi)         fmt=coff ;;
-      a29k-amd-ebmon)       fmt=coff ;;
-      a29k-nyu-sym1)        fmt=coff ;;
-      a29k-*-rtems*)        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-*-rtems | thumb-*-rtems)      fmt=elf ;;
-      arm-*-elf | thumb-*-elf)          fmt=elf ;;
-      arm*-*-conix*)                   fmt=elf ;;
-      arm-*-linux*aout*)               fmt=aout em=linux ;;
-      arm*-*-linux-gnu* | arm*-*-uclinux*)     
-                                       fmt=elf  em=linux ;;
-      arm-*-netbsdelf*)                 fmt=elf  em=nbsd ;;
-      arm-*-netbsd* | arm-*-openbsd*)   fmt=aout em=nbsd ;;
-      arm-*-oabi | thumb-*-oabi)        fmt=elf ;;
-      arm-epoc-pe | thumb-epoc-pe)      fmt=coff em=epoc-pe ;;
-      arm-*-wince)                     fmt=coff em=wince-pe ;;
-      arm-*-pe | thumb-*-pe)            fmt=coff em=pe ;;
-      arm-*-riscix*)                   fmt=aout em=riscix ;;
-      arm-*-vxworks)                   fmt=coff ;;
-
-      avr-*-*)             fmt=elf bfd_gas=yes ;;
-
-      cris-*-*)                    fmt=multi bfd_gas=yes ;;
-
-      d10v-*-*)                    fmt=elf bfd_gas=yes ;;
-      d30v-*-*)                    fmt=elf bfd_gas=yes ;;
-
-
-      fr30-*-*)                    fmt=elf bfd_gas=yes ;;
-
-      hppa-*-linux-gnu*)    case ${cpu} in
-                               hppa*64*)
-                                       fmt=elf em=hppalinux64;;
-                               hppa*)
-                                       fmt=elf em=linux;;
-                           esac ;;
-      hppa-*-*elf*)         fmt=elf em=hppa ;;
-      hppa-*-lites*)        fmt=elf em=hppa ;;
-      hppa-*-netbsd*)       fmt=elf em=nbsd ;;
-      hppa-*-osf*)          fmt=som em=hppa ;;
-      hppa-*-rtems*)        fmt=elf em=hppa ;;
-      hppa-*-hpux11*)      case ${cpu} in
-                               hppa*64*)
-                                       fmt=elf em=hppa64 ;;
-                               hppa*)
-                                       fmt=som em=hppa ;;
-                           esac ;;
-      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-*-rtems*)       fmt=coff ;;
-      h8300-*-coff)         fmt=coff ;;
-      h8300-*-elf)          fmt=elf ;;
-      h8500-*-rtems*)       fmt=coff ;;
-      h8500-*-coff)         fmt=coff ;;
-
-      i370-*-elf* | i370-*-linux*) fmt=elf ;;
-      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*)       em=nbsd bfd_gas=yes
-                           case ${cpu} in
-                             x86_64)   fmt=elf ;;
-                             *)        case ${os} in
-                                         *elf*) fmt=elf ;;
-                                         *)     fmt=aout ;;
-                                       esac
-                                       ;;
-                           esac
-                           ;;
-      i386-*-openbsd*)      fmt=aout em=nbsd bfd_gas=yes;;
-      i386-*-linux*aout* | i386-*-linux*oldld)   fmt=aout em=linux ;;
-      i386-*-linux*coff*)   fmt=coff em=linux ;;
-      i386-*-linux-gnu*)    fmt=elf em=linux bfd_gas=yes ;;
-      x86_64-*-linux-gnu*)  fmt=elf em=linux bfd_gas=yes ;;
-      i386-*-lynxos*)       fmt=coff em=lynx ;;
-changequote(,)dnl
-      i386-*-sysv[45]* | i386-*-solaris* | i386-*-elf)
-                           fmt=elf bfd_gas=yes ;;
-      i386-*-freebsdaout* | i386-*-freebsd[12].* | i386-*-freebsd[12])
-                            fmt=aout em=386bsd ;;
-changequote([,])dnl
-      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 bfd_gas=yes
-                           AC_DEFINE(STRICTCOFF, 1, [Using strict COFF?])
-                           ;;
-      i386-*-rtemself*)     fmt=elf ;;
-      i386-*-rtemscoff*)    fmt=coff ;;
-      i386-*-rtems*)        fmt=elf ;;
-      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 bfd_gas=yes ;;
-      i386-*-cygwin*)       fmt=coff em=pe bfd_gas=yes ;;
-      i386-*-interix*)     fmt=coff em=interix bfd_gas=yes ;;
-      i386-*-mingw32*)      fmt=coff em=pe bfd_gas=yes ;;
-      i386-*-*nt*)          fmt=coff em=pe bfd_gas=yes ;;
-      i386-*-vxworks*)      fmt=aout ;;
-      i386-*-chaos)         fmt=elf ;;
-      i860-stardent-sysv4* | i860-stardent-elf*)
-                           fmt=elf bfd_gas=yes endian=little
-                           AC_MSG_WARN(GAS support for ${generic_target} is preliminary and a work in progress) ;;
-      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 ;;
-      i960-*-elf*)         fmt=elf ;;
-
-      ia64-*-elf*)         fmt=elf ;;
-      ia64-*-aix*)         fmt=elf em=ia64aix ;;
-      ia64-*-linux-gnu*)    fmt=elf em=linux ;;
-      ia64-*-hpux*)        fmt=elf em=hpux ;;
-      ia64-*-netbsd*)       fmt=elf em=nbsd ;;
-
-      m32r-*-*)                    fmt=elf bfd_gas=yes ;;
-
-      m68hc11-*-*|m6811-*-*|m68hc12-*-*|m6812-*-*)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-*-rtemscoff*)
-                           fmt=coff ;;
-      m68k-*-rtems*)       fmt=elf ;;
-      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-*-netbsdelf*)    fmt=elf em=nbsd bfd_gas=yes ;;
-      m68k-*-netbsdaout* | 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-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-*-pe*)           fmt=coff endian=little em=pe ;;
-      mips-*-irix6*)       fmt=elf ;;
-      mips-*-irix5*)        fmt=elf ;;
-      mips-*-irix*)         fmt=ecoff ;;
-      mips-*-lnews*)        fmt=ecoff em=lnews ;;
-      mips-*-riscos*)       fmt=ecoff ;;
-      mips*-*-linux*)      fmt=elf em=tmips mips_stabs_elf=y ;;
-      mips-*-sysv4*MP* | mips-*-gnu*)
-                           fmt=elf em=tmips ;;
-      mips-*-sysv*)         fmt=ecoff ;;
-      mips-*-elf* | mips-*-rtems* | mips-*-netbsd* | mips-*-openbsd*)
-                           fmt=elf ;;
-      mips-*-vxworks*)      fmt=elf mips_stabs_elf=y ;;
-      mmix-*-*)                    fmt=elf bfd_gas=yes ;;
-      mn10200-*-*)         fmt=elf bfd_gas=yes ;;
-      mn10300-*-*)         fmt=elf bfd_gas=yes ;;
-      openrisc-*-*)        fmt=elf bfd_gas=yes ;;
-      or32-*-rtems*)       fmt=coff ;;
-      or32-*-coff)         fmt=coff ;;
-      or32-*-elf)           fmt=elf ;;
-      pj*)                 fmt=elf ;;
-      ppc-*-pe | ppc-*-cygwin* | ppc-*-winnt*)
-                           fmt=coff em=pe ;;
-      ppc-*-aix5*)          fmt=coff em=aix5 ;;
-      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 ;;
-      ppc-*-vxworks*)       fmt=elf ;;
-      ppc-*-windiss*)       fmt=elf ;;
-
-      s390x-*-linux-gnu*)   fmt=elf em=linux ;;
-      s390-*-linux-gnu*)    fmt=elf em=linux ;;
-
-      sh*-*-linux*)        fmt=elf em=linux
-                           case ${cpu} in
-                               sh*eb)
-                                       endian=big ;;
-                               sh*)
-                                       endian=little ;;
-                           esac ;;
-      sh*-*-netbsdelf*)     fmt=elf em=nbsd ;;
-      sh-*-elf*)           fmt=elf ;;
-      sh-*-coff*)           fmt=coff ;;
-      sh-*-pe*)             fmt=coff em=pe bfd_gas=yes endian=little ;;
-      sh-*-rtemself*)       fmt=elf ;;
-      sh-*-rtems*)         fmt=coff ;;
-
-      sh64-*-elf*)         fmt=elf ;;
-      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-*-rtemsaout*)   fmt=aout ;;
-      sparc-*-rtemself*)    fmt=elf ;;
-      sparc-*-rtems*)       fmt=elf ;;
-      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*)      em=nbsd bfd_gas=yes
-                            case ${cpu} in
-                                sparc) case ${os} in
-                                           *elf*) fmt=elf ;;
-                                           *)     fmt=aout ;;
-                                       esac ;;
-                                sparc64) fmt=elf ;;
-                            esac
-                            ;;
-      sparc-*-openbsd*)     fmt=aout em=nbsd ;;
-
-      strongarm-*-coff)     fmt=coff ;;
-      strongarm-*-elf)      fmt=elf ;;
-      xscale-*-coff)     fmt=coff ;;
-      xscale-*-elf)      fmt=elf ;;
-
-      tic30-*-*aout*)      fmt=aout bfd_gas=yes ;;
-      tic30-*-*coff*)       fmt=coff bfd_gas=yes ;;
-      tic54x-*-* | c54x*-*-*)
-                           fmt=coff bfd_gas=yes need_libm=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 ;;
-
-      w65-*-*)              fmt=coff ;;
-
-      xstormy16-*-*)       fmt=elf bfd_gas=yes ;;
-
-      z8k-*-coff | z8k-*-sim)
-                           fmt=coff ;;
-
-      *-*-aout | *-*-scout)
-                           fmt=aout ;;
-      *-*-freebsd*)        fmt=elf em=freebsd bfd_gas=yes ;;
-      *-*-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 ;;
+      i386-*-sco3.2v5*)
+       if test ${this_target} = $target; then
+         AC_DEFINE(SCO_ELF, 1, [Define if defaulting to ELF on SCO 5.])
+       fi
+       ;;
+
+      i386-*-msdosdjgpp* \
+      | i386-*-go32* \
+      | i386-go32-rtems*)
+       AC_DEFINE(STRICTCOFF, 1, [Using strict COFF?])
+       ;;
+
+      i860-*-*)
+       AC_MSG_WARN(GAS support for ${generic_target} is preliminary and a work in progress)
+       ;;
+
+      mips-sony-bsd*)
+       ;;
+      mips-*-bsd*)
+       AC_MSG_ERROR(Unknown vendor for mips-bsd configuration.)
+       ;;
+
+      ppc-*-aix5.*)
+       AC_DEFINE(AIX_WEAK_SUPPORT, 1,
+                 [Define if using AIX 5.2 value for C_WEAKEXT.])
+       ;;
+      ppc-*-linux-*)
+       case "$endian" in
+         big)  ;;
+         *)    AC_MSG_ERROR(GNU/Linux must be configured big endian) ;;
+       esac
+       ;;
+      ppc-*-solaris*)
+       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
+       ;;
+
+      sh*-*-symbianelf*)
+       AC_DEFINE(TARGET_SYMBIAN, 1, [Define if target is Symbian OS.])
+       ;;
     esac
 
     if test ${this_target} = $target ; then
@@ -513,36 +168,94 @@ changequote([,])dnl
       fi
     fi
 
-    if test x${mips_stabs_elf} != x; then
-      AC_DEFINE(MIPS_STABS_ELF, 1,
-               [Use ELF stabs for MIPS, not ECOFF stabs])
-    fi
+# Other random stuff.
 
-    case ${cpu_type}-${fmt} in
-      alpha*-*)        bfd_gas=yes ;;
-      arm-*)   bfd_gas=yes ;;
-    # not yet
-    # i386-aout)       bfd_gas=preferred ;;
-      ia64*-*) bfd_gas=yes ;;
-      mips-*)  bfd_gas=yes ;;
-      ns32k-*) bfd_gas=yes ;;
-      pdp11-*) bfd_gas=yes ;;
-      ppc-*)   bfd_gas=yes ;;
-      sparc-*) bfd_gas=yes ;;
-      strongarm-*)     bfd_gas=yes ;;
-      xscale-*)        bfd_gas=yes ;;
-      *-elf)   bfd_gas=yes ;;
-      *-ecoff) bfd_gas=yes ;;
-      *-som)   bfd_gas=yes ;;
-    #enable bfd for coff and aout to allow testing if a bfd target is
-    #the primary target, but not for coff or aout as the primary target
-      i386-coff)       if test x${primary_bfd_gas} = xyes; then bfd_gas=yes; fi ;;
-      i386-aout)       if test x${primary_bfd_gas} = xyes; then bfd_gas=yes; fi ;;
-      *)               ;;
+    case ${cpu_type} in
+      mips)
+       # Set mips_cpu to the name of the default CPU.
+       case ${target_cpu} in
+         mips | mipsbe | mipseb | mipsle | mipsel | mips64 | mips64el)
+           mips_cpu=from-abi
+           ;;
+         mipsisa32 | mipsisa32el)
+           mips_cpu=mips32
+           ;;
+         mipsisa32r2 | mipsisa32r2el)
+           mips_cpu=mips32r2
+           ;;
+         mipsisa64 | mipsisa64el)
+           mips_cpu=mips64
+           ;;
+         mipsisa64r2 | mipsisa64r2el)
+           mips_cpu=mips64r2
+           ;;
+         mipstx39 | mipstx39el)
+           mips_cpu=r3900
+           ;;
+         mips64vr | mips64vrel)
+           mips_cpu=vr4100
+           ;;
+         mipsisa32r2* | mipsisa64r2*)
+changequote(,)dnl
+           mips_cpu=`echo $target_cpu | sed -e 's/[a-z]*..r2//' -e 's/el$//'`
+changequote([,])dnl
+           ;;
+         mips64* | mipsisa64* | mipsisa32*)
+changequote(,)dnl
+           mips_cpu=`echo $target_cpu | sed -e 's/[a-z]*..//' -e 's/el$//'`
+changequote([,])dnl
+           ;;
+         *)
+           AC_ERROR($target_cpu isn't a supported MIPS CPU name)
+           ;;
+       esac
+       # See whether it's appropriate to set E_MIPS_ABI_O32 for o32
+       # binaries.  It's a GNU extension that some OSes don't understand.
+       # The value only matters on ELF targets.
+       case ${target} in
+         *-*-irix*)
+           use_e_mips_abi_o32=0
+           ;;
+         *)
+           use_e_mips_abi_o32=1
+           ;;
+       esac
+       # Decide whether to generate 32-bit or 64-bit code by default.
+       # Used to resolve -march=from-abi when an embedded ABI is selected.
+       case ${target} in
+         mips64*-*-* | mipsisa64*-*-*)
+           mips_default_64bit=1
+           ;;
+         *)
+           mips_default_64bit=0
+           ;;
+       esac
+       # Decide which ABI to target by default.
+       case ${target} in
+         mips64*-linux* | mips-sgi-irix6*)
+           mips_default_abi=N32_ABI
+           ;;
+         mips*-linux*)
+           mips_default_abi=O32_ABI
+           ;;
+         mips64*-openbsd*)
+           mips_default_abi=N64_ABI
+           ;;
+         *)
+           mips_default_abi=NO_ABI
+           ;;
+       esac
+       AC_DEFINE_UNQUOTED(MIPS_CPU_STRING_DEFAULT, "$mips_cpu",
+                          [Default CPU for MIPS targets. ])
+       AC_DEFINE_UNQUOTED(USE_E_MIPS_ABI_O32, $use_e_mips_abi_o32,
+                          [Allow use of E_MIPS_ABI_O32 on MIPS targets. ])
+       AC_DEFINE_UNQUOTED(MIPS_DEFAULT_64BIT, $mips_default_64bit,
+                          [Generate 64-bit code by default on MIPS targets. ])
+       AC_DEFINE_UNQUOTED(MIPS_DEFAULT_ABI, $mips_default_abi,
+                          [Choose a default ABI for MIPS targets. ])
+       ;;
     esac
 
-# Other random stuff.
-
     # Do we need the opcodes library?
     case ${cpu_type} in
       vax | i386 | tic30)
@@ -556,19 +269,34 @@ changequote([,])dnl
        *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 | openrisc)
+
+      bfin)
+        echo ${extra_objects} | grep -s "bfin-parse.o"
+        if test $? -ne 0 ; then
+          extra_objects="$extra_objects bfin-parse.o"
+        fi
+
+        echo ${extra_objects} | grep -s "bfin-lex.o"
+        if test $? -ne 0 ; then
+          extra_objects="$extra_objects bfin-lex.o"
+        fi
+        ;;
+
+      fr30 | ip2k | iq2000 | m32r | openrisc)
        using_cgen=yes
        ;;
 
+      m32c)
+       using_cgen=yes
+       ;;
+      frv)
+       using_cgen=yes
+       ;;
       m68k)
        case ${extra_objects} in
        *m68k-parse.o*) ;;
@@ -593,6 +321,10 @@ changequote([,])dnl
        fi
        ;;
 
+      mt)
+        using_cgen=yes
+       ;;
+
       i386 | s390 | sparc)
        if test $this_target = $target ; then
          AC_DEFINE_UNQUOTED(DEFAULT_ARCH, "${arch}", [Default architecture.])
@@ -603,6 +335,17 @@ changequote([,])dnl
        using_cgen=yes
        ;;
 
+      xc16x)
+       using_cgen=yes
+       ;;
+
+      xtensa)
+       echo ${extra_objects} | grep -s "xtensa-relax.o"
+       if test $? -ne 0 ; then
+         extra_objects="$extra_objects xtensa-relax.o"
+       fi
+       ;;
+
       *)
        ;;
     esac
@@ -617,17 +360,8 @@ changequote([,])dnl
 # 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.
@@ -721,27 +455,6 @@ 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)
@@ -754,8 +467,8 @@ case ${obj_format} in
 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.
+# with --enable-targets=... should be checked for environment, format, cpu
+# 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
@@ -798,10 +511,8 @@ if test `set . $formats ; shift ; echo $#` -gt 1 ; then
       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
@@ -823,12 +534,6 @@ 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
@@ -844,11 +549,6 @@ 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)
@@ -856,16 +556,14 @@ yes)
   ;;
 esac
 
-case "${need_bfd}" in
-yes)
-  BFDLIB=../bfd/libbfd.la
-  ALL_OBJ_DEPS="$ALL_OBJ_DEPS ../bfd/bfd.h"
-  ;;
-esac
+BFDLIB=../bfd/libbfd.la
+BFDVER_H=../bfd/bfdver.h
+ALL_OBJ_DEPS="$ALL_OBJ_DEPS"' ../bfd/bfd.h $(INCDIR)/symcat.h'
 
 AC_SUBST(BFDLIB)
 AC_SUBST(OPCODES_LIB)
 
+AC_SUBST(BFDVER_H)
 AC_SUBST(ALL_OBJ_DEPS)
 
 AC_DEFINE_UNQUOTED(TARGET_ALIAS,       "${target_alias}", [Target alias.])
@@ -879,7 +577,7 @@ AC_PROG_CC
 AC_PROG_YACC
 AM_PROG_LEX
 
-ALL_LINGUAS="fr tr es"
+ALL_LINGUAS="fr tr es rw"
 CY_GNU_GETTEXT
 
 AM_MAINTAINER_MODE
@@ -943,11 +641,6 @@ gas_test_headers="
 #include <unistd.h>
 #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?
@@ -957,6 +650,25 @@ GAS_CHECK_DECL_NEEDED(errno, f, int f, [
 #endif
 ])
 
+AC_MSG_CHECKING(for a known getopt prototype in unistd.h)
+AC_CACHE_VAL(gas_cv_decl_getopt_unistd_h,
+[AC_TRY_COMPILE([#include <unistd.h>], [extern int getopt (int, char *const*, const char *);],
+gas_cv_decl_getopt_unistd_h=yes, gas_cv_decl_getopt_unistd_h=no)])
+AC_MSG_RESULT($gas_cv_decl_getopt_unistd_h)
+if test $gas_cv_decl_getopt_unistd_h = yes; then
+  AC_DEFINE([HAVE_DECL_GETOPT], 1,
+           [Is the prototype for getopt in <unistd.h> in the expected format?])
+fi
+
+GAS_CHECK_DECL_NEEDED(environ, f, char **f, $gas_test_headers)
+GAS_CHECK_DECL_NEEDED(ffs, f, int (*f)(int), $gas_test_headers)
+GAS_CHECK_DECL_NEEDED(free, f, void (*f)(), $gas_test_headers)
+GAS_CHECK_DECL_NEEDED(malloc, f, char *(*f)(), $gas_test_headers)
+GAS_CHECK_DECL_NEEDED(sbrk, f, char *(*f)(), $gas_test_headers)
+GAS_CHECK_DECL_NEEDED(strstr, f, char *(*f)(), $gas_test_headers)
+
+AC_CHECK_DECLS([vsnprintf])
+
 dnl This must come last.
 
 dnl We used to make symlinks to files in the source directory, but now
@@ -965,7 +677,8 @@ 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,
+AC_CONFIG_FILES(Makefile doc/Makefile po/Makefile.in:po/Make-in)
+AC_CONFIG_COMMANDS([default],
 [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
@@ -980,3 +693,5 @@ AC_OUTPUT(Makefile doc/Makefile ${GDBINIT}:gdbinit.in po/Makefile.in:po/Make-in,
  cgen_cpu_prefix=${cgen_cpu_prefix}
  obj_format=${obj_format}
  te_file=${te_file}])
+
+AC_OUTPUT