hashsum.c: Return nonzero from `checkhash' on errors.
[u/mdw/catacomb] / genmodes
CommitLineData
d03ab969 1#! /bin/sh
2
e9026a0a 3set -e
d03ab969 4baselist=$1
5extlist=$2
6
7for i in $baselist; do
8 I=`echo "$i" | tr -d '\n' | tr a-z A-Z | tr -c a-zA-Z0-9 _`
9 for j in $extlist; do
10 J=`echo "$j" | tr -d '\n' | tr a-z A-Z | tr -c a-zA-Z0-9 _`
79ba130c 11 guard="CATACOMB_${I}_${J}_H"
78b9cabc 12 cat >$i-$j.h.new <<EOF
d03ab969 13/* -*-c-*-
14 *
15 * $i-$j.h [generated]
16 */
17
18#ifndef $guard
19#define $guard
20
21#ifdef __cplusplus
22 extern "C" {
23#endif
24
79ba130c 25#ifndef CATACOMB_${J}_H
d03ab969 26# include "$j.h"
27#endif
28
79ba130c 29#ifndef CATACOMB_${I}_H
d03ab969 30# include "$i.h"
31#endif
32
33${J}_DECL($I, $i)
34
35#ifdef __cplusplus
36 }
37#endif
38
39#endif
40EOF
1cb20df9 41 if cmp "$i-$j.h" "$i-$j.h.new" >/dev/null 2>&1; then
78b9cabc 42 rm "$i-$j.h.new"
43 else
44 mv "$i-$j.h.new" "$i-$j.h"
45 echo >&2 "Written new $i-$j.h."
46 fi
47 cat >$i-$j.c.new <<EOF
d03ab969 48/* -*-c-*-
49 *
79ba130c 50 * $i-$j.c [generated]
d03ab969 51 */
52
53#include "$i-$j.h"
79ba130c 54#include "$j-def.h"
d03ab969 55${J}_DEF($I, $i)
56EOF
1cb20df9 57 if cmp "$i-$j.c" "$i-$j.c.new" >/dev/null 2>&1; then
78b9cabc 58 rm "$i-$j.c.new"
59 else
60 mv "$i-$j.c.new" "$i-$j.c"
61 echo >&2 "Written new $i-$j.c."
62 fi
d03ab969 63 done
64done