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