Release 2.1.4.
[u/mdw/catacomb] / genmodes
... / ...
CommitLineData
1#! /bin/sh
2
3set -e
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 _`
11 guard="CATACOMB_${I}_${J}_H"
12 cat >$i-$j.h.new <<EOF
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
25#ifndef CATACOMB_${J}_H
26# include "$j.h"
27#endif
28
29#ifndef CATACOMB_${I}_H
30# include "$i.h"
31#endif
32
33${J}_DECL($I, $i)
34
35#ifdef __cplusplus
36 }
37#endif
38
39#endif
40EOF
41 if cmp "$i-$j.h" "$i-$j.h.new" >/dev/null 2>&1; then
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
48/* -*-c-*-
49 *
50 * $i-$j.c [generated]
51 */
52
53#include "$i-$j.h"
54#include "$j-def.h"
55${J}_DEF($I, $i)
56EOF
57 if cmp "$i-$j.c" "$i-$j.c.new" >/dev/null 2>&1; then
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
63 done
64done