# 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
bfd_gas=no
configdirs="doc testsuite"

# per-host:

gas_host=generic

case "${host}" in

  a29k-*-*)			gas_host=a29k		;;

  hppa-hp-hpux*)		gas_host=hppahpux	;;
  hppa-hp-bsd*)			gas_host=hppabsd	;;
  hppa-hp-osf*)			gas_host=hppaosf	;;

  i[34]86-ibm-aix*)		gas_host=i386aix	;;
  i[34]86-*-isc*)		gas_host=sysv		;;
  i386-sun-sunos*)		gas_host=sun386		;;

  m68k-sun-sunos*)		gas_host=sun3		;;
  m68*-*-hpux)			gas_host=hpux		;;

  mips-dec-ultrix*)		gas_host=decstatn	;;
  mips-*-bsd*)			gas_host=mipsbsd	;;
  mips-sgi-irix*)		gas_host=irix		;;

  rs6000-*-*)			gas_host=rs6000		;;

  sparc-sun-sunos*)		gas_host=sun4		;;
  sparc-sun-solaris2*)		gas_host=sysv		;;

  vax-*-vms*)			gas_host=vms		;;
  vax-*-bsd*)			gas_host=vax		;;

  *-*-ansi | *-*-ultrix | *-*-hpux | *-*-sysv*)
				gas_host=${host_os}	;;

esac

if [ ! -r ${srcdir}/config/ho-${gas_host}.h ]; then
  echo '*** GAS does not support host' ${host} 1>&2
  exit 1
fi

# per-target:

case ${with_bfd_assembler} in
  yes)
    echo "*** Warning:  GAS BFD configuration option not yet fully 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

# 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 ;;
  # Actually we've only got support for the 1.1, so we shouldn't generalize,
  # but this is what the support files are named...
  hppa1.1)	cpu_type=hppa ;;
  *)		cpu_type=${target_cpu} ;;
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 gas_target=ebmon29k ;;
  a29k-amd-ebmon)	obj_format=coffbfd gas_target=ebmon29k ;;
  a29k-amd-ebmonold)	obj_format=coff gas_target=ebmon29k ;;

  hppa-*-osf)		obj_format=elf emulation=hppa ;;
  hppa-*-hpux*)		obj_format=som emulation=hppa ;;

  i386-ibm-aix*)	obj_format=coffbfd gas_target=i386coff
			 emulation=i386aix ;;
  i386-*-bsd*)		obj_format=aout emulation=386bsd ;;
  i386-*-linux*)	obj_format=aout emulation=linux ;;
  i386-*-coff | i386-*-sysv* | i386-*-sco* | i386-*-isc*)
			obj_format=coffbfd 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 gas_target=m68kcoff ;;
  m68k-*-hpux)		obj_format=hp300 emulation=hp300 ;;

  # don't change emulation like *-*-bsd does
  mips-*-bsd*)		bfd_gas=yes obj_format=aout gas_target=mips-lit ;;
  mips-*-ultrix*)	obj_format=ecoff gas_target=mips-lit ;;
  mips-*-ecoff)		obj_format=ecoff gas_target=mips-big ;;
  mips-*-irix*)		obj_format=ecoff gas_target=mips-big emulation=irix ;;

  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 ;;
  *-*-sysv32)		obj_format=coff emulation=sysv32 ;;
  *-*-sim)		obj_format=coffbfd ;;
  *-*-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*)
	echo '*** Warning: GAS support for ELF format is incomplete' 1>&2
			obj_format=elf ;;
  *-*-vms)		obj_format=vms ;;
esac

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

if [ ! -r ${srcdir}/config/tc-${cpu_type}.c ]; then
  echo '*** GAS does not support target CPU' ${cpu_type}		1>&2
  exit 1
fi

if [ x${obj_format} = x ]; then
  echo "*** GAS doesn't know what format to use for target" ${target}	1>&2
  exit 1
fi

if [ ! -r ${srcdir}/config/obj-${obj_format}.c ]; then
  echo '*** GAS does not have support for object file format' ${obj_format} 1>&2
  exit 1
fi

# and target makefile frag

target_makefile_frag=config/${gas_target}.mt

case ${bfd_gas}-${obj_format} in
  yes-coffbfd)	obj_format=coff ;;
  no-coffbfd)	need_bfd=yes ;;
  *-elf)	bfd_gas=yes ;;
  *-ecoff)	bfd_gas=yes ;;
  *)		;;
esac

case ${with_bfd_assembler} in
  "")
    # User specified nothing.
    ;;
  "${bfd_gas}")
    # We didn't override user's choice.
    ;;
  no)
    # ... but we overrode it.
    echo '*** Use of BFD is required for ${target}; overriding config options'\
		1>&2
    ;;
esac

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
