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