# This file is configure.in
#
#   Copyright (C) 1987-1992 Free Software Foundation, Inc.
#   
#  This file is part of GAS, the GNU Assembler.
#   
#   GAS is free software; you can redistribute it and/or modify
#   it under the terms of the GNU General Public License as published by
#   the Free Software Foundation; either version 2, or (at your option)
#   any later version.
#   
#   GAS is distributed in the hope that it will be useful,
#   but WITHOUT ANY WARRANTY; without even the implied warranty of
#   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
#   GNU General Public License for more details.
#   
#   You should have received a copy of the GNU General Public License
#   along with GAS; see the file COPYING.  If not, write to
#   the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.  */
#

# This file was written, and is maintained by K. Richard Pixley
# <rich@cygnus.com>.

# This file is a shell script that supplies the information necessary
# to tailor a template configure script into the configure script
# appropriate for this directory.  For more information, check any
# existing configure script.

srctrigger=as.c
srcname="gas"
need_bfd=no
configdirs="doc testsuite"

# per-host:

gas_host=generic

case "${host}" in
  a29k-*-* | rs6000-*-* | vax-*-*)
    case "${host_os}" in
    vms*)	gas_host=vms ;;
    bsd*)	gas_host=bsd ;;
    *)		gas_host=${host_cpu} ;;
    esac
    ;;	
  mips-dec-ultrix) 
    gas_host=decstatn 
    ;;
  mips-*-bsd*)
    gas_host=mipsbsd
    ;;
  mips-sgi-irix*)
    gas_host=irix
    ;;
  i[34]86-ibm-aix*)
    gas_host=i386aix
    ;;
  i[34]86-*-isc*)
    gas_host=sysv
    ;;
  m68k-sun-sunos*)
    gas_host=sun3 
    ;;
  i386-sun-sunos*)
    gas_host=sun386  
    ;;
  sparc-sun-sunos*)
    gas_host=sun4 
    ;;
  sparc-sun-solaris2*)
    gas_host=sysv
    ;;
  *-*-ansi | *-*-ultrix | *-*-hpux | *-*-sysv*)
    gas_host=${host_os} 
    ;;
esac

# per-target:

# not yet...
case ${with_bfd_assembler} in
  yes)
    echo "*** Warning:  GAS BFD configuration option not yet supported" 1>&2
    need_bfd=yes
    bfd_gas=yes
    ;;
  no | "")
    ;;
  *)
    echo "*** Bad value \"${with_bfd_assembler}\" for --with_bfd_assembler option" 1>&2
    exit 1
    ;;
esac

# assign cpu type
emulation=generic

cpu_type=${target_cpu}

# check for architecture variants
case ${target_cpu} in
  sparclite*)   cpu_type=sparc ;;
  sparc64)	cpu_type=sparc obj_format=aout ;;
  m680[01234]0) cpu_type=m68k ;;
  m683??)       cpu_type=m68k ;;
  i486)		cpu_type=i386 ;;
esac

gas_target=${cpu_type}

generic_target=${cpu_type}-${target_vendor}-${target_os}

# assign object format
case ${generic_target} in
  a29k-amd-udi)
    obj_format=coffbfd
    need_bfd=yes
    gas_target=ebmon29k
    ;;
  a29k-amd-ebmon)
    obj_format=coffbfd
    need_bfd=yes
    gas_target=ebmon29k
    ;;
  a29k-amd-ebmonold)
    obj_format=coff
    need_bfd=yes
    gas_target=ebmon29k
    ;;
  i386-ibm-aix*)
    obj_format=coffbfd
    need_bfd=yes
    gas_target=i386coff
    emulation=i386aix
    ;;
  i386-*-bsd*) 
    obj_format=aout 
    ;;
  i386-*-coff | i386-*-sysv* | i386-*-sco* | i386-*-isc*)
    obj_format=coffbfd
    need_bfd=yes
    gas_target=i386coff
    ;; 
  i386-*-go32) 
    obj_format=aout 
    ;;
  i960-wrs-vxworks)
    obj_format=bout 
    ;;
  i960-*-coff)
    obj_format=coff
    emulation=ic960 
    ;;
  m68k-wrs-vxworks)
    obj_format=aout
    emulation=sun3
    ;;    
  m68k-ericsson-[Oo][Ss][Ee])
    obj_format=aout
    emulation=sun3
    ;;
  m68k-*-coff)
    obj_format=coffbfd
    need_bfd=yes
    gas_target=m68kcoff
    ;;
  mips-*-bsd*)
    # don't change emulation like *-*-bsd does
    bfd_gas=yes
    obj_format=aout
    gas_target=mips-lit
    ;;
  mips-*-ultrix*)
    bfd_gas=yes
    obj_format=ecoff
    gas_target=mips-lit
    ;;
  mips-*-irix* | mips-*-ecoff)
    bfd_gas=yes
    obj_format=ecoff
    gas_target=mips-big
    ;;
  sparclite*-fujitsu-none)
    obj_format=aout
    ;;
  *-*-aout | *-*-scout | *-*-linux)
    obj_format=aout
    ;;
  *-*-bout* | *-*-nindy*)
    obj_format=bout 
    ;;
  *-*-bsd* | *-*-sunos*) 
    obj_format=aout 
    emulation=sun3	
    ;;
  *-*-generic)
    obj_format=generic 
    ;;
  *-*-xray | *-*-hms)
    obj_format=coffbfd
    need_bfd=yes
    ;;
  *-*-sysv32)
    obj_format=coff
    emulation=sysv32
    ;;
  *-*-sim)	
    obj_format=coffbfd
    need_bfd=yes
    ;;
  *-*-coff* | *-sysv* | *-*-sco*)
    obj_format=coff
    case ${target_vendor} in
      bull)  emulation=dpx2 ;;
      sun)   emulation=sun3 ;;
    esac
    ;;
  *-*-vxworks)
    obj_format=aout 
    ;;
  *-*-coff)
    obj_format=coff
    ;;
  *-*-elf | *-*-solaris*)
    case ${bfd_gas} in
      yes) ;;
      *)
	echo "*** warning: gas ${target_os} configuration implies" 1>&2
	echo "             (unsupported) --with-bfd-assembler option" 1>&2
	bfd_gas=yes
	;;
    esac
    obj_format=elf
    ;;
  *-*-vms)
    obj_format=vms
    ;;
esac

# assign floating point type
case ${target_cpu} in
  ns32k) atof=ns32k ;;
  vax)	 atof=vax ;;
  tahoe) atof=tahoe ;;
  *)	 atof=ieee ;;
esac

# and target makefile frag

target_makefile_frag=config/${gas_target}.mt

files="config/ho-${gas_host}.h config/tc-${cpu_type}.c \
	config/tc-${cpu_type}.h config/te-${emulation}.h \
	config/obj-${obj_format}.h config/obj-${obj_format}.c \
	config/atof-${atof}.c"

links="host.h targ-cpu.c targ-cpu.h targ-env.h obj-format.h obj-format.c atof-targ.c"

# post-target:

case ${bfd_gas} in
  yes)
    rm -f Makefile.tem
    mv Makefile Makefile.tem
    echo BFDDEF=-DBFD_ASSEMBLER > Makefile
    cat Makefile.tem >> Makefile
    rm -f Makefile.tem
    need_bfd=yes
    ;;
  *)
    ;;
esac

case ${need_bfd} in
  yes)
    rm -f Makefile.tem
    mv Makefile Makefile.tem
    echo BFDLIB=../bfd/libbfd.a > Makefile
    cat Makefile.tem >> Makefile
    rm -f Makefile.tem
    ;;
  *)
    ;;
esac

# end of gas/configure.in
