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