aboutsummaryrefslogtreecommitdiff
path: root/gdb/config.gdb
diff options
context:
space:
mode:
Diffstat (limited to 'gdb/config.gdb')
-rwxr-xr-xgdb/config.gdb233
1 files changed, 151 insertions, 82 deletions
diff --git a/gdb/config.gdb b/gdb/config.gdb
index 62848f8..2578462 100755
--- a/gdb/config.gdb
+++ b/gdb/config.gdb
@@ -4,7 +4,7 @@
# Shell script to create proper links to machine-dependent files in
# preparation for compiling gdb.
#
-# Usage: config.gdb machine
+# Usage: config.gdb machine [operating-system]
#
# If config.gdb succeeds, it leaves its status in config.status.
# If config.gdb fails after disturbing the status quo,
@@ -13,79 +13,159 @@
progname=$0
-case $# in
+case $# in
1)
machine=$1
- paramfile=m-${machine}.h
- initfile=m-${machine}init.h
- pinsnfile=${machine}-pinsn.c
- opcodefile=${machine}-opcode.h
+ os="none"
+ ;;
+2)
+ machine=$1
+ os=$2
+ ;;
+*)
+ echo "Usage: $progname machine [operating-system]"
+ echo "Available machine types:"
+ echo m-*.h | sed 's/m-//g' | sed 's/\.h//g'
+ if [ -r config.status ]
+ then
+ cat config.status
+ fi
+ exit 1
+ ;;
+esac
- case $machine in
- hp9k320)
- initfile=m-sun3init.h
- pinsnfile=m68k-pinsn.c
- opcodefile=m68k-opcode.h
- ;;
- hp9k320bsd)
- initfile=m-sun3init.h
- pinsnfile=m68k-pinsn.c
- opcodefile=m68k-opcode.h
- ;;
- isi)
- # some version of m68k-pinsn.c should work here
- pinsnfile=m68k-pinsn.c
- opcodefile=m68k-opcode.h
- ;;
- merlin)
- # m-umaxinit.h?
- initfile=unknown-or-unavailable
- pinsnfile=ns32k-pinsn.c
- opcodefile=ns32k-opcode.h
- ;;
- news)
- pinsnfile=m68k-pinsn.c
- opcodefile=m68k-opcode.h
- ;;
- npl)
- pinsnfile=gld-pinsn.c
- ;;
- pn)
- pinsnfile=gld-pinsn.c
- ;;
- sun2)
- pinsnfile=m68k-pinsn.c
- opcodefile=m68k-opcode.h
- ;;
- sun3)
- pinsnfile=m68k-pinsn.c
- opcodefile=m68k-opcode.h
- ;;
- sun4)
- pinsnfile=sparc-pinsn.c
- opcodefile=sparc-opcode.h
- ;;
- umax)
- pinsnfile=ns32k-pinsn.c
- opcodefile=ns32k-opcode.h
- ;;
- test)
- paramfile=one
- initfile=two
- pinsnfile=three
- opcodefile=four
+paramfile=m-${machine}.h
+pinsnfile=${machine}-pinsn.c
+opcodefile=${machine}-opcode.h
+if [ -r ${machine}-dep.c ]
+then
+ depfile=${machine}-dep.c
+else
+ depfile=default-dep.c
+fi
+
+#
+# Special cases.
+# If a file is not needed, set the filename to 'skip' and it will be
+# ignored.
+#
+case $machine in
+aux)
+ pinsnfile=m68k-pinsn.c
+ opcodefile=m68k-opcode.h
+ ;;
+vax)
+ pinsnfile=vax-pinsn.c
+ opcodefile=vax-opcode.h
+ ;;
+hp9k320)
+ pinsnfile=m68k-pinsn.c
+ opcodefile=m68k-opcode.h
+ ;;
+isi)
+ pinsnfile=m68k-pinsn.c
+ opcodefile=m68k-opcode.h
+ ;;
+i386)
+ echo "Note: i386 users need to modify \`CLIBS' & \`REGEX*' in the Makefile"
+ opcodefile=skip
+ ;;
+i386gas)
+ echo "Note: i386 users need to modify \`CLIBS' & \`REGEX*' in the Makefile"
+ echo "Use of the coff encapsulation features also requires the GNU binutils utilities"
+ echo "to be ahead of their System V counterparts in your path."
+ pinsnfile=i386-pinsn.c
+ depfile=i386-dep.c
+ opcodefile=skip
+ ;;
+merlin)
+ pinsnfile=ns32k-pinsn.c
+ opcodefile=ns32k-opcode.h
+ ;;
+news)
+ pinsnfile=m68k-pinsn.c
+ opcodefile=m68k-opcode.h
+ ;;
+npl)
+ pinsnfile=gld-pinsn.c
+ ;;
+pn)
+ pinsnfile=gld-pinsn.c
+ ;;
+sun2)
+ case $os in
+ os4|sunos4)
+ paramfile=m-sun2os4.h
;;
+ os2|sunos2)
+ paramfile=m-sun2os2.h
esac
+ pinsnfile=m68k-pinsn.c
+ opcodefile=m68k-opcode.h
+ ;;
+sun2os2)
+ pinsnfile=m68k-pinsn.c
+ opcodefile=m68k-opcode.h
+ ;;
+sun2os4)
+ pinsnfile=m68k-pinsn.c
+ opcodefile=m68k-opcode.h
+ ;;
+sun3)
+ case $os in
+ os4|sunos4)
+ paramfile=m-sun3os4.h
+ esac
+ pinsnfile=m68k-pinsn.c
+ opcodefile=m68k-opcode.h
+ ;;
+sun3os4)
+ pinsnfile=m68k-pinsn.c
+ opcodefile=m68k-opcode.h
+ depfile=sun3-dep.c
+ ;;
+sun4os4)
+ pinsnfile=sparc-pinsn.c
+ opcodefile=sparc-opcode.h
+ depfile=sparc-dep.c
+ ;;
+umax)
+ pinsnfile=ns32k-pinsn.c
+ opcodefile=ns32k-opcode.h
+ ;;
+sparc|sun4)
+ case $os in
+ os4|sunos4)
+ paramfile=m-sun4os4.h
+ esac
+ pinsnfile=sparc-pinsn.c
+ opcodefile=sparc-opcode.h
+ depfile=sparc-dep.c
+ paramfile=m-sparc.h
+ ;;
+test)
+ paramfile=one
+ pinsnfile=three
+ opcodefile=four
+ ;;
+*)
+ echo "Unknown machine type: \`$machine'"
+ echo "Available types:"
+ echo m-*.h | sed 's/m-//g' | sed 's/\.h//g'
+ exit 1
+esac
- files="$paramfile $initfile $pinsnfile $opcodefile"
- links="param.h m-init.h pinsn.c opcode.h"
+files="$paramfile $pinsnfile $opcodefile $depfile"
+links="param.h pinsn.c opcode.h dep.c"
- while [ -n "$files" ]
- do
- # set file to car of files, files to cdr of files
- set $files; file=$1; shift; files=$*
- set $links; link=$1; shift; links=$*
+while [ -n "$files" ]
+do
+ # set file to car of files, files to cdr of files
+ set $files; file=$1; shift; files=$*
+ set $links; link=$1; shift; links=$*
+ if [ "$file" != skip ]
+ then
if [ ! -r $file ]
then
echo "$progname: cannot create a link \`$link',"
@@ -103,21 +183,10 @@ case $# in
exit 1
fi
echo "Linked \`$link' to \`$file'."
- done
-
- echo "Links are now set up for use with a $machine." \
- | tee config.status
- exit 0
- ;;
-*)
- echo "Usage: $progname machine"
- echo -n "Where \`machine' is something like "
- echo "\`vax', \`sun3', \`umax', etc."
- if [ -r config.status ]
- then
- cat config.status
fi
- exit 1
- ;;
-esac
+done
+
+echo "Links are now set up for use with a $machine." \
+ | tee config.status
+exit 0