aboutsummaryrefslogtreecommitdiff
path: root/src/makesource.sh
blob: 965491ce04e0e5b39485e6f2b93c849bc5a5fea6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
#!/bin/sh

IEMBINAMBI_H=iem_bin_ambi_sources.h
IEMBINAMBI_C=iem_bin_ambi_sources.c

EGREP=egrep
SED=sed
LS=ls

#################################
## functions

function head_h() {
 echo "/* iem_bin_ambi-setup autogenerated header-file"
 echo " * generated by \"$0\""
 echo " * !! DO NOT MANUALLY EDIT  !!"
 echo " */"
 echo
 echo "#ifndef IEMBINAMBI_SOURCES_H__"
 echo "#define IEMBINAMBI_SOURCES_H__"
}

function foot_h() {
 echo "#endif /* IEMBINAMBI_SOURCES_H__ */"
 echo ""
}

function head_c() {
 echo "/* iem_bin_ambi-setup autogenerated setup-file"
 echo " * generated by \"$0\""
 echo " * !! DO NOT MANUALLY EDIT  !!"
 echo " */"
 echo 
 echo "#include \"$IEMBINAMBI_H\""
 echo
 echo "void iem_bin_ambi_sources_setup(void)"
 echo "{"
}

function foot_c() {
 echo "}"
 echo
}


##################################
## body

head_h > $IEMBINAMBI_H
head_c > $IEMBINAMBI_C

for i in $(${LS} *.c | ${EGREP} -v "iem_bin_ambi.*\.c")
do
## each c-file in iem_bin_ambi needs to have an <file>_setup()-function
## that calls all needed setup-functions
## any non-alpha-numeric-character is replaced by "_"
## e.g. "bla~.c" -> "bla__setup()"
  SETUPNAME=$(echo ${i%.c} | ${SED} -e 's/[^[:alnum:]]/_/g')_setup
  echo "void ${SETUPNAME}(void); /* $i */" >> $IEMBINAMBI_H
  echo "	${SETUPNAME}(); /* $i */" >> $IEMBINAMBI_C
done

foot_h >> $IEMBINAMBI_H
foot_c >> $IEMBINAMBI_C