chiark / gitweb /
ec-bin (ec_binproj): Make curve setup faster.
[catacomb] / genmodes
1 #! /bin/sh
2
3 set -e
4 baselist=$1
5 extlist=$2
6
7 for 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
40 EOF
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)
56 EOF
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
64 done