]> Git Repo - binutils.git/blobdiff - ld/configure.in
Sparc COFF support
[binutils.git] / ld / configure.in
index 8e295c36324d75d30bb04af71c01860573ab03fc..c11a490bbcbe04cb555db9af17733d04160c0992 100644 (file)
@@ -9,173 +9,153 @@ target_dependent=true
 
 # per-host:
 
-case "${host_cpu}" in
-
-rs6000)        my_host=rs6000
-       ;;
-
-hppa*)
-       case "${host_vendor}" in
-       hp)
-               case "${host_os}" in
-               hpux)   my_host=hppahpux ;;
-               bsd)    my_host=hppabsd ;;
-               esac
-               ;;
-       esac
-       ;;
-
-mips)
-       case "${host_vendor}" in
-       dec)    my_host=decstation ;;
-       sgi)    my_host=irix3 ;;
-       esac
-       ;;
-m88k)
-       case "${host_vendor}" in
-       motorola)
-               my_host=delta88 ;;
-       *)
-               case "${host_os}" in
-               dgux)   my_host=dgux ;;
-               esac
-               ;;
-       esac
-       ;;
-
-m68*)
-       case "${host_vendor}" in
-       cbm)
-               case ${host_os} in
-               amigados)       my_host=amigados ;;
-               svr4)           my_host=amix ;;
-               esac
-               ;;
-       hp)     
-               case "${host_os}" in
-               hpux)   my_host=hp9000 ;;
-               bsd)    my_host=hp300bsd ;;
-               esac
-               ;;
-       apollo*)
-               case "${host_os}" in
-               sysv*)  my_host=apollov68 ;;
-               bsd*)   my_host=apollo68;;
-               esac
-               ;;
-       sony)   my_host=news ;;
-       sun)    my_host=sun3 ;;
-       esac
-       ;;
-
-i386)
-       case "${host_vendor}" in
-       *)
-               case "${host_os}" in
-               go32)   my_host=go32 ;;
-               sysv)   my_host=i386v ;;
-               mach)   my_host=i386mach ;;
-               bsd)    my_host=i386-aout ;;
-               msdos)  my_host=dose ;;
-               esac
-               ;;
-       esac
-       ;;
+. ${srcdir}/../bfd/configure.host
 
-sparc)
-       case "${host_os}" in
-       sunos64)        my_host=sparc-ll ;;
-       *)              my_host=sparc ;;
-       esac
-       ;;
+host_makefile_frag=
 
-romp)  my_host=rtbsd
-       ;;
+if [ -f ${srcdir}/config/${my_host}.mh ] ; then
+       host_makefile_frag=config/${my_host}.mh
+fi
 
-a29k)  my_host=ultra3
-       ;;
+# per-target:
 
-tahoe)
-       my_host=tahoe
-       ;;
+# Canonicalize the secondary target names.
+if [ -n "$with_targets" ]; then
+    for targ in `echo $with_targets | sed 's/,/ /g'`
+    do
+       result=`$configsub $targ 2>/dev/null`
+       if [ -n "$result" ]; then
+           canon_targets="$canon_targets $result"
+       else
+           # Allow targets that config.sub doesn't recognize, like "all".
+           canon_targets="$canon_targets $targ"
+       fi
+    done
+fi
 
-vax)
-       case "${host_os}" in
-       ultrix) my_host=vaxult ;;
-       *) my_host=vaxbsd ;;
-       esac
-       ;;
+all_targets=false
+
+for targ in $target $canon_targets
+do
+
+case "${targ}" in
+
+  sparc-sun-sunos4*)   ld_target=sun4 ;;
+  m68k-sun-sunos[34]*) ld_target=sun3 ;;
+  sparclite*-fujitsu-*) ld_target=sun4 ;;
+# start-sanitize-v9
+  sparc64-*-elf*)      ld_target=sparc64-elf ;;
+  sparc64*)            ld_target=sun4 ;;
+# end-sanitize-v9
+  sparc*-*-aout)       ld_target=sun4 ;;
+  sparc*-*-elf)                ld_target=sun4sol2 ;;
+  sparc*-*-lynxos*)    ld_target=sparc-lynx ;;
+  sparc*-*-solaris2*)  ld_target=sun4sol2 ;;
+  i960-wrs-vxworks*)    ld_target=i960 ;;
+  i960-intel-nindy)    ld_target=i960 ;;
+  m68k-wrs-vxworks*)    ld_target=vxworks68 ;;
+  m680[01234]0-wrs-vxworks*) ld_target=vxworks68 ;;
+  m683?2-wrs-vxworks*)  ld_target=vxworks68 ;;
+  sparc*-wrs-vxworks*)  ld_target=sun4 ;;
+  m68k-ericsson-ose)   ld_target=ose68 ;;
+  m680[01234]0-ericsson-ose) ld_target=ose68 ;;
+  m683?2-ericsson-ose) ld_target=ose68 ;;
+  *-tandem-none)       ld_target=st2000 ;; # FIXME needs better name
+  i[34]86-*-go32)      ld_target=go32 ;;
+  i[34]86-*-aix*)      ld_target=i386-coff ;;
+  i[34]86-*-sco*)      ld_target=i386-coff ;;
+  i[34]86-*-lynxos*)   ld_target=i386-lynx ;;
+  i[34]86-*-coff)      ld_target=i386-coff ;;
+  i[34]86-*-bsd)       ld_target=i386-bsd ;;
+  i[34]86-*-aout)      ld_target=i386-aout ;;
+  i[34]86-*-linux)     ld_target=i386-linux ;;
+  i[34]86-*-sysv4*)    ld_target=i386-elf ;;
+  i[34]86-*-elf*)      ld_target=i386-elf ;;
+  i[34]86-*-sysv*)     ld_target=i386-coff ;;
+  m8*-*-*)             ld_target=m88k-bcs ;;
+  a29k-*-udi)          ld_target=sa29200 ;;
+  a29k-*-ebmon)                ld_target=ebmon29k ;;
+  a29k-*-*)            ld_target=coff-a29k ;;
+  h8300-*-hms)         ld_target=coff-h8300 ;;
+  h8300h-*-hms)                ld_target=coff-h8300h ;;
+  h8500-*-hms)         ld_target=coff-h8500 ;;
+  sh-*-*)              ld_target=coff-sh ;;
+  m68k-sony-*)         ld_target=news ;;
+  m68k-hp-bsd*)                ld_target=hp300bsd ;;
+  m68*-*-aout)         ld_target=m68k ;;
+  m68*-*-coff)         ld_target=m68k-coff ;;
+  m68*-*-hpux)         ld_target=hp300hpux ;;
+  m68*-*-lynxos*)      ld_target=m68k-lynx ;;
+  m68*-*-*)
+    echo '***' "Unknown m68k target vendor for ld:" ${target_vendor} 1>&2
+                       exit 1 ;;
+  hppa*-hp-osf)                ld_target=hppaosf ;;
+  vax-dec-ultrix* | vax-dec-bsd*) ld_target=vax ;;
+  mips*-dec-ultrix*)   ld_target=mips-lit ;;
+  mips*-sgi-irix*)     ld_target=mips-big ;;
+  mips*el-idt-ecoff*)  ld_target=mips-idtl ;;
+  mips*-idt-ecoff*)    ld_target=mips-idt ;;
+  mips*-dec-bsd*)      ld_target=mipsbsd ;;
+  mips*-*-elf*)                ld_target=mipsb-elf32 ;;
+  alpha-*-osf*)                ld_target=alpha ;;
+  z8k-*-sim | z8k-*-coff) ld_target=z8ksim ;;
+  *-*-aout)            ld_target=${target_cpu}-${target_vendor} ;;
+  *-*-coff)            ld_target=${target_cpu}-${target_vendor} ;;
+
+  all)                 ld_target=all ;;
 esac
 
-# Set up to make a link between the host's include file and "sysdep.h".
-files="../bfd/hosts/${my_host}.h"
-links="sysdep.h"
+    if [ "x$ld_target" = "xall" ]; then
+        all_targets=true
+    else
+       if [ ! -f ${srcdir}/config/${ld_target}.mt ] ; then
+           echo '***' No file ${srcdir}/config/${ld_target}.mt 1>&2
+           echo '***' GNU LD does not support target ${ld_target} 1>&2
+           echo '***' Look in ld/configure.in for supported targets 1>&2
+           exit 1
+       fi
 
-if [ ! -f ${srcdir}/${files} ] ; then
-       if [ -n "${my_host}" ] ; then
-               echo '***' No file ${srcdir}/${files} 1>&2
+       if [ "x$targ" = "x$target" ]; then
+           target_makefile_frag=${srcdir}/config/${ld_target}.mt
+       else
+           target_extra_frags="$target_extra_frags ${srcdir}/config/${ld_target}.mt"
        fi
-       echo '***' ${srcname} does not support host ${host} 1>&2
-       exit 1
-fi
-host_makefile_frag=
-if [ -f ${srcdir}/config/${my_host}.mh ] ; then
-       host_makefile_frag=config/${my_host}.mh
-fi
+    fi
+done
 
-# per-target:
+# We don't do any links based on the target system, just makefile config.
 
-case ${target_vendor} in
-aout | coff)   my_target=${target_cpu}-${target_vendor} ;;
-sun)
-       case ${target_cpu} in
-       sparc)  my_target=sun4 ;;
-       m68k)   my_target=sun3 ;;
-       esac
-       ;;
-wrs)   
-       case ${target_cpu} in
-       i960) my_target=vxworks960 ;;
-       m68k) my_target=vxworks68;;
-       m680[01234]0) my_target=vxworks68;;
-       m683?2) my_target=vxworks68;;
-       sparc) my_target=vxsparc;;
-       esac
-       ;;
-ericsson) my_target=OSE68 ;;
-tandem) my_target=st2000 ;;
-*)
-       case ${target_cpu} in
-       i386)   my_target=go32 ;;
-       m88k)   my_target=m88k-bcs ;;
-       a29k)   case ${target_os} in
-               udi) my_target=sa29200 ;;
-               ebmon) my_target=ebmon29k ;;
-               *) my_target=coff-a29k ;;
-               esac
-               ;;
-       h8300)  case ${target_os} in
-               hms) my_target=coff-h8300 ;;
-               xray) my_target=ieee-h8300 ;;
-               esac
-               ;;
-       m68*)   
-               case ${target_vendor} in
-               sony)   my_target=news ;;
-               hp)     my_target=hp300bsd ;;
-               *)
-                       case "${target_os}" in
-                       aout)   my_target=m68k-aout ;;
-                       coff)   my_target=m68k-coff ;;
-                       *)      echo "Unknown m68k target vendor:" ${target_vendor} 1>&2
-                               exit 1
-                               ;;
-                       esac
-                       ;;
-               esac
-               ;;
+# post-target:
+
+rm -f Makefile.tmp Makefile.2
+mv Makefile Makefile.tmp
+
+if [ x${all_targets} = xfalse ]; then
+
+    allfrags="$target_makefile_frag $target_extra_frags"
+
+    # The emulations in all the configured targets.
+    tb=`sed -n '
+    s/EMUL[    ]*=[    ]*\([^  ]*\)/em_\1.o/p
+    ' $allfrags`
+    # uniq the list.
+    f=""
+    for i in $tb ; do
+       case " $f " in
+       *" $i "*) ;;
+       *) f="$f $i" ;;
        esac
-       ;;
-esac
+    done
+    tb="$f"
+
+    echo "EMULATION_OFILES = $tb" >> Makefile.2
+
+else   # all_targets is true
+    echo 'EMULATION_OFILES = $(ALL_EMULATIONS)' >> Makefile.2
+fi     # all_targets is true
+
+cat Makefile.tmp >> Makefile.2
+rm -f Makefile.tmp
+mv Makefile.2 Makefile
 
-target_makefile_frag=config/${my_target}.mt
+mkdir ldscripts 2>/dev/null
This page took 0.055522 seconds and 4 git commands to generate.