| 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 |
| AC_ISC_POSIX |
| |
| changequote(,)dnl |
| BFD_VERSION=`sed -n -e 's/^.._INIT_AUTOMAKE.*,[ ]*\([^ ]*\)[ ]*).*/\1/p' < ${srcdir}/../bfd/configure.in` |
| changequote([,])dnl |
| 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 |
| 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 |
| |
| 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) |
| |
| # 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*) |
| GDBINIT="gdb.ini" |
| ;; |
| esac |
| AC_SUBST(GDBINIT) |
| |
| te_file=generic |
| |
| # Makefile target for installing gas in $(tooldir)/bin. |
| install_tooldir=install-exec-tooldir |
| |
| canon_targets="" |
| all_targets=no |
| if test -n "$enable_targets" ; then |
| for t in `echo $enable_targets | sed 's/,/ /g'`; do |
| if test $t = "all"; then |
| all_targets=yes |
| continue |
| fi |
| result=`$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 ;; |
| arm*b|xscale*b|strongarm*b) cpu_type=arm endian=big ;; |
| arm*|xscale*|strongarm*) 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 ;; |
| sh5*) cpu_type=sh64 endian=big ;; |
| sh5le*) cpu_type=sh64 endian=little ;; |
| sh64*) cpu_type=sh64 endian=big ;; |
| sh64le*) cpu_type=sh64 endian=little ;; |
| 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} ;; |
| 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-*-rtems*) fmt=coff ;; |
| a29k-*-vxworks*) fmt=coff ;; |
| |
| alpha*-*-*vms*) fmt=evax ;; |
| alpha*-*-netware*) fmt=ecoff ;; |
| alpha*-*-osf*) fmt=ecoff ;; |
| alpha*-*-linuxecoff*) fmt=ecoff ;; |
| alpha*-*-linux-gnu*) fmt=elf em=linux ;; |
| alpha*-*-netbsd*) fmt=elf em=nbsd ;; |
| alpha*-*-openbsd*) fmt=elf em=obsd ;; |
| |
| 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 ;; |
| dlx-*-*) fmt=elf ;; |
| |
| |
| fr30-*-*) fmt=elf bfd_gas=yes ;; |
| frv-*-*) 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-*-openbsd*) fmt=elf em=hppa ;; |
| 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-*-netbsdpe*) fmt=coff em=pe bfd_gas=yes ;; |
| 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-*-nto-qnx*) fmt=elf ;; |
| 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-*-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 ;; |
| 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 ;; |
| sh5*-*-netbsd*) fmt=elf em=nbsd ;; |
| sh64*-*-netbsd*) fmt=elf em=nbsd ;; |
| 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-*-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*) em=nbsd |
| case ${cpu} in |
| sparc) fmt=aout ;; |
| sparc64) fmt=elf ;; |
| esac |
| ;; |
| |
| 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-*-netbsdelf*) fmt=elf em=nbsd bfd_gas=yes ;; |
| vax-*-netbsdaout* | vax-*-netbsd*) |
| fmt=aout em=nbsd ;; |
| 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 ;; |
| 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 ;; |
| 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 ;; |
| *) ;; |
| 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 | openrisc) |
| using_cgen=yes |
| ;; |
| |
| frv) |
| 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 |
| ;; |
| |
| i386 | s390 | sparc) |
| if test $this_target = $target ; then |
| AC_DEFINE_UNQUOTED(DEFAULT_ARCH, "${arch}", [Default architecture.]) |
| fi |
| ;; |
| |
| xstormy16) |
| using_cgen=yes |
| ;; |
| |
| *) |
| ;; |
| 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*-*) case "$endian" in |
| big) emulation="mipsbelf mipslelf mipself" ;; |
| *) emulation="mipslelf mipsbelf mipself" ;; |
| 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" ;; |
| esac ;; |
| mips-*-sysv4*MP*-*) emulation="mipsbelf mipslelf mipself mipsbecoff mipslecoff mipsecoff" ;; |
| # i386-pc-pe-coff != i386-pc-coff. |
| i386-*-pe-coff) ;; |
| # Uncommenting the next line will turn on support for i386 AOUT |
| # for the default linux configuration |
| # i386-*-linux*-elf) emulation="i386elf i386aout" ;; |
| # |
| i386-*-aout) emulation="i386aout" ;; |
| i386-*-coff) emulation="i386coff" ;; |
| i386-*-elf) emulation="i386elf" ;; |
| |
| # Always all formats. The first stated emulation becomes the default. |
| cris-*-*aout*) emulation="crisaout criself" ;; |
| cris-*-*) emulation="criself crisaout" ;; |
| esac |
| |
| emulations="$emulations $emulation" |
| |
| done |
| |
| # Turn on all targets if possible |
| if test ${all_targets} = "yes"; then |
| case ${target_cpu_type} in |
| i386) |
| case ${obj_format} in |
| aout) |
| emulations="$emulations i386coff i386elf" |
| ;; |
| coff) |
| emulations="$emulations i386aout i386elf" |
| ;; |
| elf) |
| emulations="$emulations i386aout i386coff" |
| ;; |
| esac |
| ;; |
| esac |
| fi |
| |
| # 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} ;; |
| pdp11) atof=vax ;; |
| *) 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 | mipself) |
| fmt=elf file=mipself ;; |
| mipsbecoff | mipslecoff | mipsecoff) |
| fmt=ecoff file=mipsecoff ;; |
| *coff) |
| fmt=coff file=$em ;; |
| *aout) |
| fmt=aout file=$em ;; |
| *elf) |
| fmt=elf file=$em ;; |
| 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 |
| DEFAULT_EMULATION=`set . $emulations ; echo $2` |
| # e-mips* has more than one emulation per file, e-i386* has just one at the |
| # moment. If only one emulation is specified, then don't define |
| # USE_EMULATIONS or include any of the e-files as they will only be bloat. |
| case "${obj_format}${emfiles}" in |
| multi* | *mips*) |
| extra_objects="$extra_objects $emfiles" |
| AC_DEFINE(USE_EMULATIONS, 1, [Use emulation support?]) ;; |
| esac |
| 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 $(INCDIR)/symcat.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="fr tr es" |
| 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) |
| |
| # do we need the math library? |
| case "${need_libm}" in |
| yes) |
| AC_CHECK_LIBM |
| AC_SUBST(LIBM) |
| ;; |
| esac |
| |
| # 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 <memory.h> |
| #endif |
| #ifdef HAVE_STRING_H |
| #include <string.h> |
| #else |
| #ifdef HAVE_STRINGS_H |
| #include <strings.h> |
| #endif |
| #endif |
| #ifdef HAVE_STDLIB_H |
| #include <stdlib.h> |
| #endif |
| #ifdef HAVE_UNISTD_H |
| #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? |
| GAS_CHECK_DECL_NEEDED(errno, f, int f, [ |
| #ifdef HAVE_ERRNO_H |
| #include <errno.h> |
| #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}]) |