aboutsummaryrefslogtreecommitdiff
path: root/opcodes/configure.in
diff options
context:
space:
mode:
authorMichael Tiemann <tiemann@cygnus>1994-11-24 20:30:11 +0000
committerMichael Tiemann <tiemann@cygnus>1994-11-24 20:30:11 +0000
commitd94aca1affb15af8374bcb002f6a52fb724c9ccd (patch)
treec82833f1008f99eb1afc251e5c506ca5418a4520 /opcodes/configure.in
parent481faa25acc8ea42f8d5f5e5e37f137806616226 (diff)
downloadgdb-d94aca1affb15af8374bcb002f6a52fb724c9ccd.zip
gdb-d94aca1affb15af8374bcb002f6a52fb724c9ccd.tar.gz
gdb-d94aca1affb15af8374bcb002f6a52fb724c9ccd.tar.bz2
Safely check in r16 targets for binutils.
Diffstat (limited to 'opcodes/configure.in')
-rw-r--r--opcodes/configure.in171
1 files changed, 125 insertions, 46 deletions
diff --git a/opcodes/configure.in b/opcodes/configure.in
index b6487a6..8feb9df 100644
--- a/opcodes/configure.in
+++ b/opcodes/configure.in
@@ -8,58 +8,15 @@ srcname="opcodes"
# per-host:
-case "${host}" in
- a29k-nyu-sym1) my_host=ultra3 ;;
- hppa*-hp-bsd) my_host=hppabsd ;;
- hppa*-hp-hpux) my_host=hppahpux ;;
- i860-stratus-sysv4) my_host=stratus ;;
- i[34]86-*-go32) my_host=go32 ;;
- i[34]86-*-linux) my_host=i386linux ;;
- i[34]86-*-mach) my_host=i386mach ;;
- i[34]86-*-msdos*) my_host=dose ;;
- i[34]86-*-sysv*) my_host=i386v ;;
- i[34]86-*-sco) my_host=i386v ;;
- i[34]86-*-sysv4*) my_host=i386v4 ;;
- i[34]86-ncr-sysv4*) my_host=ncr3000 ;;
- m68k-apollo-bsd*) my_host=apollo68 ;;
- m68k-apollo-sysv*) my_host=apollov68 ;;
- m68k-cbm-amigados) my_host=amigados ;;
- m68k-cbm-sysv4*) my_host=amix ;;
- m68k-hp-bsd) my_host=hp300bsd ;;
- m68k-hp-hpux) my_host=hp300 ;; # renamed from hp9000
- m68k-sony-*) my_host=news ;;
- m68k-sun-sunos*) my_host=sun3 ;;
- m88k-dg-dgux) my_host=dgux ;;
- m88k-harris-*) my_host=harris ;;
- m88k-motorola-*) my_host=delta88 ;;
- mips-dec-ultrix) my_host=decstation ;;
- mips-sgi-irix | mips-sgi-irix3) my_host=irix3 ;;
- mips-sgi-irix4) my_host=irix4 ;;
- romp-ibm-bsd*) my_host=rtbsd ;;
- rs6000-ibm-aix) my_host=rs6000 ;;
- sparc-*-sysv4) my_host=sysv4 ;;
- sparc-*-sysv64) my_host=sysv4-ll ;;
- sparc-sun-solaris2) my_host=solaris2 ;;
- sparc-sun-sunos*) my_host=sparc ;;
- sparc-sun-sunos64) my_host=sparc-ll ;;
- tahoe-*-*) my_host=tahoe ;;
- vax-dec-bsd*) my_host=vaxbsd ;;
- vax-dec-ultrix*) my_host=vaxult ;;
- we32k-*-*) my_host=we32k ;;
-esac
-
+. ${srcdir}/../bfd/configure.host
# 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 [ ! -f ${srcdir}/${files} ] ; then
- if [ -n "${my_host}" ] ; then
- echo '***' No file ${srcdir}/${files} 1>&2
- fi
- echo '***' ${srcname} does not support host ${host} 1>&2
- exit 1
+ files=../bfd/hosts/std-host.h
+ echo "[${srcname} has no specific support for host ${host} -- using std-host]"
fi
host_makefile_frag=
@@ -68,3 +25,125 @@ if [ -f ${srcdir}/../bfd/config/${my_host}.mh ] ; then
fi
# per-target:
+
+# Canonicalize the secondary target names.
+if [ -n "$enable_targets" ]; then
+ for targ in `echo $enable_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
+
+all_targets=false
+
+for targ in $target $canon_targets
+do
+ bfd_target=`${config_shell} $srcdir/../bfd/config.bfd $targ`
+
+ if [ "x$bfd_target" = "xall" ]; then
+ all_targets=true
+ else
+ if [ ! -f ${srcdir}/../bfd/config/${bfd_target}.mt ] ; then
+ echo '***' No file ${srcdir}/../bfd/config/${bfd_target}.mt 1>&2
+ echo '***' opcodes does not support target ${bfd_target} 1>&2
+ echo '***' Look in bfd/config.bfd for supported targets 1>&2
+ exit 1
+ fi
+
+ if [ "x$targ" = "x$target" ]; then
+ target_makefile_frag=${srcdir}/../bfd/config/${bfd_target}.mt
+ else
+ target_extra_frags="$target_extra_frags ${srcdir}/../bfd/config/${bfd_target}.mt"
+ fi
+ fi
+done
+
+# We don't do any links based on the target system, just makefile config.
+
+# 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 architectures in all the configured targets.
+ SELECT_ARCHITECTURES=`sed -n '
+ s/SELECT_ARCHITECTURES[ ]*=[ ]*//p
+ ' $allfrags`
+
+ # Target architecture .o files.
+ ta=
+
+ for arch in $SELECT_ARCHITECTURES
+ do
+ ad=`echo $arch | sed -e s/bfd_//g -e s/_arch//g`
+ archdefs="$archdefs -DARCH_$ad"
+ case "$arch" in
+ bfd_a29k_arch) ta="$ta a29k-dis.o" ;;
+ bfd_alpha_arch) ta="$ta alpha-dis.o" ;;
+ bfd_arm_arch) ta="$ta arm-dis.o" ;;
+ bfd_h8300_arch) ta="$ta h8300-dis.o" ;;
+ bfd_h8500_arch) ta="$ta h8500-dis.o" ;;
+ bfd_hppa_arch) ta="$ta hppa-dis.o" ;;
+ bfd_i386_arch) ta="$ta i386-dis.o" ;;
+ bfd_i960_arch) ta="$ta i960-dis.o" ;;
+ bfd_m68k_arch) ta="$ta m68k-dis.o" ;;
+ bfd_m88k_arch) ta="$ta m88k-dis.o" ;;
+ bfd_mips_arch) ta="$ta mips-dis.o mips-opc.o" ;;
+ bfd_ns32k_arch) ta="$ta ns32k-dis.o" ;;
+ bfd_powerpc_arch) ta="$ta ppc-dis.o ppc-opc.o" ;;
+ bfd_rs6000_arch) ta="$ta ppc-dis.o ppc-opc.o" ;;
+ bfd_sh_arch) ta="$ta sh-dis.o" ;;
+# start-sanitize-r16
+ bfd_r16_arch) ta="$ta r16-dis.o" ;;
+# end-sanitize-r16
+ bfd_sparc_arch) ta="$ta sparc-dis.o sparc-opc.o" ;;
+ bfd_vax_arch) ;;
+ bfd_we32k_arch) ;;
+ bfd_z8k_arch) ta="$ta z8k-dis.o" ;;
+
+ "") ;;
+ *) echo "*** unknown target architecture $arch" 1>&2; exit 1 ;;
+ esac
+ done
+
+ # Weed out duplicate .o files.
+ f=""
+ for i in $ta ; do
+ case " $f " in
+ *" $i "*) ;;
+ *) f="$f $i" ;;
+ esac
+ done
+ ta="$f"
+
+ # And duplicate -D flags.
+ f=""
+ for i in $archdefs ; do
+ case " $f " in
+ *" $i "*) ;;
+ *) f="$f $i" ;;
+ esac
+ done
+ archdefs="$f"
+
+ echo "ARCHDEFS = $archdefs" >> Makefile.2
+ echo "BFD_MACHINES = $ta" >> Makefile.2
+
+else # all_targets is true
+ echo 'ARCHDEFS = -DARCH_all' >> Makefile.2
+ echo 'BFD_MACHINES = $(ALL_MACHINES)' >> Makefile.2
+fi # all_targets is true
+
+cat Makefile.tmp >> Makefile.2
+rm -f Makefile.tmp
+mv Makefile.2 Makefile