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