# This file is configure.in # # Copyright (C) 1987-1992,1993,1994 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 # . # 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 ;; alpha-*-osf*) gas_host=ansi ;; hppa*-*-hpux*) gas_host=hpux ;; hppa*-*-bsd*) gas_host=hppabsd ;; hppa*-*-osf*) gas_host=hppaosf ;; hppa*-*-hiux*) gas_host=hpux ;; i[34]86-ibm-aix*) gas_host=i386aix ;; i[34]86-*-isc*) gas_host=sysv ;; i386-sun-sunos*) gas_host=sun386 ;; i386-*-mach*) gas_host=mach3 ;; 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 ;; vax-*-ultrix*) gas_host=vax ;; *-*-sysv4* | *-*-unixware) gas_host=sysv ;; *-*-ansi | *-*-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 # default is big endian=big # check for architecture variants case ${target_cpu} in # Actually we've only got support for the 1.1, so we shouldn't generalize, # but this is what the support files are named... hppa*) cpu_type=hppa ;; i486) cpu_type=i386 ;; m680[01234]0) cpu_type=m68k ;; m68008) cpu_type=m68k ;; m683??) cpu_type=m68k ;; m8*) cpu_type=m88k ;; mips*el) cpu_type=mips endian=little;; mips*) cpu_type=mips ;; powerpc*) cpu_type=ppc ;; rs6000*) cpu_type=ppc ;; sparc64) cpu_type=sparc64 obj_format=elf ;; # v9 sparclite*) cpu_type=sparc ;; *) cpu_type=${target_cpu} ;; esac # do we need the opcodes library? case ${cpu_type} in alpha | vax) opcodes= ;; *) opcodes="../opcodes/libopcodes.a" ;; esac gas_target=${cpu_type} generic_target=${cpu_type}-${target_vendor}-${target_os} dev=no # 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 ;; alpha-*-netware*) obj_format=ecoff ;; alpha-*-osf*) obj_format=ecoff ;; hppa-*-*elf*) obj_format=elf emulation=hppa ;; hppa-*-osf*) obj_format=som emulation=hppa ;; hppa-*-hpux*) obj_format=som emulation=hppa ;; hppa-*-bsd*) obj_format=som emulation=hppa ;; hppa-*-hiux*) obj_format=som emulation=hppa ;; h8300-*-coff) obj_format=coffbfd ;; i386-ibm-aix*) obj_format=coffbfd gas_target=i386coff emulation=i386aix ;; i386-*-bsd*) obj_format=aout emulation=386bsd ;; i386-*-netbsd0.8) obj_format=aout emulation=netbsd ;; i386-*-netbsd*) obj_format=aout emulation=netbsd ;; i386-*-linux*elf*) obj_format=elf emulation=linux ;; i386-*-linux*coff*) obj_format=coffbfd emulation=linux gas_target=i386coff ;; i386-*-linux*) obj_format=aout emulation=linux ;; i386-*-lynxos*) obj_format=coffbfd gas_target=i386coff emulation=lynx ;; i386-*-sysv4* | i386-*-solaris* | i386-*-elf) obj_format=elf ;; i386-*-coff | i386-*-sysv* | i386-*-sco* | i386-*-isc*) obj_format=coffbfd gas_target=i386coff ;; i386-*-vsta) obj_format=aout ;; i386-*-go32) obj_format=aout ;; i386-*-mach*) obj_format=aout emulation=mach bfd_gas=yes ;; i960-*-bout) obj_format=bout ;; i960-*-coff) obj_format=coffbfd emulation=ic960 gas_target=ic960coff ;; i960-*-nindy*) obj_format=bout ;; i960-*-vxworks4*) obj_format=bout ;; i960-*-vxworks5.0) obj_format=bout ;; i960-*-vxworks5.*) obj_format=coffbfd emulation=ic960 gas_target=ic960coff ;; i960-*-vxworks*) obj_format=bout ;; m68k-wrs-vxworks | m68k-ericsson-ose | m68k-*-sunos*) obj_format=aout emulation=sun3 ;; m68k-motorola-sysv) obj_format=coffbfd gas_target=m68kcoff emulation=delta ;; # The dpx2-specific support has apparently not been used in a while, or # it's not currently required. Either way, I've heard nothing about it, # and the configure.in code that would've selected te-dpx2.h wasn't being # reached because of the m68k-*-sysv* line below. This was (I think) the # last target using obj-coff.c without BFD_ASSEMBLER. I want to blast that # code. So if you really need te-dpx2.h, start with this for now, and try # to make it work: # m68k-bull-sysv3*) obj_format=coffbfd gas_target=m68kcoff emulation=dpx2 ;; m68k-*-coff | m68k-*-sysv*) obj_format=coffbfd gas_target=m68kcoff ;; m68k-*-hpux) obj_format=hp300 emulation=hp300 ;; m68k-*-lynxos*) obj_format=coffbfd gas_target=m68kcoff emulation=lynx ;; m88k-*-coff*) obj_format=coffbfd gas_target=m88kcoff ;; # 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 if [ $endian = big ] ; then gas_target=mips-big else gas_target=mips-lit fi ;; mips-*-ecoff*) obj_format=ecoff gas_target=mips-big ;; mips-*-irix5*) obj_format=elf gas_target=mips-big ;; mips-*-irix*) obj_format=ecoff gas_target=mips-big emulation=irix ;; mips-*-riscos*) obj_format=ecoff gas_target=mips-big ;; mips-*-sysv*) obj_format=ecoff gas_target=mips-big ;; mips-*-elf*) obj_format=elf if [ $endian = big ] ; then gas_target=mips-big else gas_target=mips-lit fi ;; ppc-*-aix*) obj_format=coff bfd_gas=yes ;; ppc-*-sysv4*) obj_format=elf bfd_gas=yes ;; sh-*-coff) obj_format=coffbfd ;; sparc*-*-sunos4*) obj_format=aout emulation=sun3 bfd_gas=yes ;; sparc*-*-aout | sparc*-*-vxworks) obj_format=aout bfd_gas=yes ;; sparc*-*-coff) obj_format=coff bfd_gas=yes ;; sparc*-*-lynxos*) obj_format=coff bfd_gas=yes emulation=lynx ;; sparc*-fujitsu-none) obj_format=aout bfd_gas=yes ;; sparc*-*-elf | sparc*-*-solaris*) obj_format=elf ;; sparc64-*-aout*) obj_format=aout bfd_gas=yes ;; # v9 vax-*-bsd* | vax-*-ultrix*) obj_format=aout ;; vax-*-vms) obj_format=vms ;; z8k-*-coff | z8k-*-sim) obj_format=coffbfd ;; *-*-aout | *-*-scout) obj_format=aout ;; *-*-nindy*) obj_format=bout ;; *-*-bsd*) obj_format=aout emulation=sun3 ;; *-*-generic) obj_format=generic ;; *-*-xray | *-*-hms) obj_format=coffbfd ;; *-*-sim) obj_format=coffbfd ;; *-*-elf | *-*-sysv4* | *-*-solaris*) echo '*** Warning: GAS support for ELF format is incomplete' 1>&2 obj_format=elf dev=yes ;; *-*-vxworks) obj_format=aout ;; *-*-netware) obj_format=elf ;; esac # 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 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 case "${obj_format}" in "") echo "*** GAS doesn't know what format to use for target" ${target} 1>&2 exit 1 ;; esac 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 extra_def="MANY_SEGMENTS" ;; *-elf) bfd_gas=yes ;; *-ecoff) bfd_gas=yes ;; *-som) bfd_gas=yes ;; *) ;; esac case ${with_bfd_assembler}-${bfd_gas} in yes-yes | no-no) # We didn't override user's choice. ;; no-yes) echo '*** Use of BFD is required for ${target}; overriding config options'\ 1>&2 ;; no-preferred) bfd_gas=no ;; *-preferred) bfd_gas=yes ;; -*) # User specified nothing. ;; esac reject_dev_configs=yes case ${reject_dev_configs}-${dev} in yes-yes) # Oops. echo "*** GAS does not support the ${generic_target} configuration" 1>&2 exit 1 ;; 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) extra_def="BFD_ASSEMBLER" need_bfd=yes ;; esac case ${need_bfd} in yes) bfdlib="BFDLIB=../bfd/libbfd.a" ;; *) bfdlib="" ;; esac case "x${host}" in "x${target}") cross="" ;; *) cross="CROSS=-DCROSS_COMPILE" ;; esac rm -f Makefile.tem echo $cross > Makefile.tem case "$extra_def" in "") ;; *) echo defs=$extra_def >> Makefile.tem ;; esac echo $bfdlib >> Makefile.tem echo "OPCODES_LIB=$opcodes" >> Makefile.tem cat Makefile >> Makefile.tem mv -f Makefile.tem Makefile # end of gas/configure.in