|
|
DataMuseum.dkPresents historical artifacts from the history of: RC9000 |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about RC9000 Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - downloadIndex: @ M T
Length: 2678 (0xa76)
Types: TextFile
Notes: @(#)MakeResult 13.4 (RC International) 91/03/25 16:33:37
Names: »MakeResult«
└─⟦50656ff4a⟧ Bits:30010538 TX 3.1 Coldstart
└─⟦bbf173f5c⟧ »0004«
└─⟦this⟧ »./etc/MakeResult«
#!/bin/sh -e
#
# @(#)MakeResult 13.4 (RC International) 91/03/25 16:33:37
#
prog=`basename $0`
pu=`puname`
mkresult=/etc/mkresult
hfile=result.h
cfile=result.c
vers=
errdefs=
files=
errfiles=
nerrfiles=
tmpvers=/$pu/tmp/vers$$
sedscript=/$pu/tmp/sed$$
trap 'rm -f $nerrfiles $tmpvers $sedscript $cfile $hfile; exit 1' 0 1 2 15
while [ $# -gt 0 ]
do
case $1
in
-c) shift; cfile=$1 ;;
-d) shift; errdefs=$1 ;;
-h) shift; hfile=$1 ;;
-m) shift; mkresult=$1 ;;
-v) shift; vers=$1 ;;
-*) echo 2>&1 $prog: unrecognized flag $1
exit 1 ;;
*) files="$files $1"
if [ ! -f $1 ]
then
echo 2>&1 $1: no such file [$prog]
exit 1
fi ;;
esac
shift
done
if [ "$files" = "" ]
then
echo MakeResult: empty .doc or .err file list
exit 1
fi
> $sedscript
if [ -n "$errdefs" -a -r "$errdefs" ]; then
sed < $errdefs '
/^#/d
/^$/d
s?\(\<.*\>\) *\(.*\)?s/\1/\2/g?
' >> $sedscript
fi
cat << EOF >> $sedscript
/^\./d
/^ /d
s/^unused/info/
/^\/\*/p
/^subsys/p
/^ret/p
/^info/p
/^warn/p
/^severe/p
/^fatal/p
EOF
if [ -n "$vers" -a -w "$vers" ]; then
echo 0 `cat $vers` 1 + p | dc > $tmpvers
cp $tmpvers $vers
version="version `cat $vers`"
rm -f $tmpvers
else
version=""
fi
for file in $files
do
err=`echo $file | sed -e "s/\.doc/\.err/"`
errfiles="$errfiles $err"
if [ $file != $err ]
then
rm -f $err
nerrfiles="$nerrfiles $err"
sed -n -f $sedscript < $file > $err
fi
done
rm -f $sedscript $cfile $hfile
date=`date | sed -e 's%... %%' -e 's% ..:..:.. .*\( ....\)$%\1%'`
xx=`basename $hfile`
cat << EOF > $hfile
/* @(#)$xx $version (RC International) $date */
#ifndef ERR
#define ERR(x, y) ((int) x)
#define ERR_RPU 0x08000000
#define ERR_INFO 0x00000000
#define ERR_WARN 0x20000000
#define ERR_SEVERE 0x40000000
#define ERR_FATAL 0x60000000
#endif ERR
#ifndef __RESULT__
#define __RESULT__
typedef enum result
{
EOF
awk 'BEGIN { printf " %-31.31s=0x0%07x,\n", "MAKERESULT_OK", 0; }
/^\/\*.*\*\/$/ { print }
/^subsys/ { count=$3 * 65536;
printf "/* %s: subsystem %s class 0x%x */\n", FILENAME, $2, $3; }
/^ret/ { printf " %-31.31s=0x0%07x,\n", $2, count++; }
/^info/ { printf " %-31.31s=0x0%07x,\n", $2, count++; }
/^warn/ { printf " %-31.31s=0x2%07x,\n", $2, count++; }
/^severe/ { printf " %-31.31s=0x4%07x,\n", $2, count++; }
/^fatal/ { printf " %-31.31s=0x6%07x,\n", $2, count++; }
' $errfiles >> $hfile
cat << EOF >> $hfile
} result_t;
#endif __RESULT__
EOF
xx=`basename $cfile`
cat << EOF > $cfile
/* @(#)$xx $version (RC International) $date */
EOF
$mkresult $errfiles >> $cfile
trap 0 1 2 15
exit 0