Home | History | Annotate | Line # | Download | only in ktruss
makeerrnos.sh revision 1.3
      1 #! /bin/sh
      2 #
      3 #	$NetBSD: makeerrnos.sh,v 1.3 2001/02/18 18:38:18 kim Exp $
      4 
      5 if [ $# -ne 3 ]; then
      6 	echo "usage: makeerrnos.sh errno.h signal.h output"
      7 	exit 1;
      8 fi
      9 
     10 ERRNOH=$1
     11 SIGNALH=$2
     12 CFILE=$3.c
     13 HFILE=$3.h
     14 
     15 : ${CPP:=cpp}
     16 : ${CPPFLAGS:=}
     17 
     18 cat <<__EOF__ > $CFILE
     19 #include "misc.h"
     20 
     21 struct systab errnos[] = {
     22 __EOF__
     23 cat ${ERRNOH} | ${CPP} ${CPPFLAGS} -dM |
     24 awk '
     25 /^#[ 	]*define[ 	]*E[A-Z0-9]*[ 	]*[0-9-][0-9]*[ 	]*.*/ {
     26 	for (i = 1; i <= NF; i++)
     27 		if ($i ~ /define/) 
     28 			break;
     29 	i++;
     30 	j = i + 1;
     31 	#
     32 	printf("\t{ \"%s\", %s },\n", $i, $j);
     33 }
     34 END {
     35 	print "	{ \"0\", 0 },\n";
     36 }
     37 ' | sort -n +2 >> $CFILE
     38 echo "	{ 0L, 0},
     39 };" >> $CFILE
     40 lines=`wc -l $CFILE|awk ' { print $1; } ' -`
     41 lines=`expr $lines - 4`
     42 
     43 cat <<__EOF__ >> $CFILE
     44 
     45 struct systab signals[] = {
     46 __EOF__
     47 cat ${SIGNALH} | ${CPP} ${CPPFLAGS} -dM |
     48 awk '
     49 /^#[ 	]*define[ 	]*S[A-Z0-9]*[ 	]*[0-9-][0-9]*[ 	]*.*/ {
     50 	for (i = 1; i <= NF; i++)
     51 		if ($i ~ /define/) 
     52 			break;
     53 	i++;
     54 	j = i + 1;
     55 	#
     56 	printf("\t{ \"%s\", %s },\n", $i, $j);
     57 }
     58 END {
     59 	print "	{ \"0\", 0 },\n";
     60 }
     61 ' | sort -n +2 >> $CFILE
     62 echo "	{ 0L, 0},
     63 };" >> $CFILE
     64 elines=`grep '{ "SIG' $CFILE | wc -l`
     65 elines=`expr $elines + 1`
     66 
     67 cat <<__EOF__ >$HFILE
     68 struct	systab	{
     69 	char	*name;
     70 	int	value;
     71 };
     72 
     73 extern struct systab errnos[$lines + 1];
     74 extern struct systab signals[$elines + 1];
     75 
     76 #define	MAXERRNOS	$lines
     77 #define	MAXSIGNALS	$elines
     78 __EOF__
     79