]> code.citadel.org Git - citadel.git/blob - citadel/mk_module_init.sh
mk_module_init.sh now tests to see if echo supports -e and -E
[citadel.git] / citadel / mk_module_init.sh
1 #!/bin/sh
2 #
3 # Script to generate $C_FILE
4 #
5
6 ECHO=/bin/echo
7
8 MINUS_e=X`$ECHO -n -e`
9 if [ $MINUS_e != "X" ] ; then
10         MINUS_e=""
11 else
12         MINUS_e="-e"
13 fi
14
15 MINUS_E=X`$ECHO -n -E`
16 if [ $MINUS_E != "X" ] ; then
17         MINUS_E=""
18 else
19         MINUS_E="-E"
20 fi
21
22
23 CUR_DIR=`pwd`
24 C_FILE="$CUR_DIR/modules_init.c"
25 H_FILE="$CUR_DIR/modules_init.h"
26
27 $ECHO $MINUS_e "Scanning extension modules for entry points."
28 $ECHO $MINUS_e "This version of echo $ECHO supports $MINUS_e $MINUS_E."
29
30 #start ofs the files which inturn removes any existing file
31 #
32 $ECHO $MINUS_e "/*" > $C_FILE
33 $ECHO $MINUS_e " * $C_FILE" >> $C_FILE
34 $ECHO $MINUS_e " * Auto generated by mk_modules_init.sh DO NOT EDIT THIS FILE" >> $C_FILE
35 $ECHO $MINUS_e " */\n\n\n" >> $C_FILE
36
37 #echo $MINUS_e "#include \"sysdep.h\"\n" >> $C_FILE
38 $ECHO $MINUS_e "#include <stdlib.h>\n" >> $C_FILE
39 #echo $MINUS_e "#include <ctype.h>\n" >> $C_FILE
40 #echo $MINUS_e "#include \"citadel.h\"\n" >> $C_FILE
41 $ECHO $MINUS_e "#include \"modules_init.h\"\n" >> $C_FILE
42 $ECHO $MINUS_e "#include \"sysdep_decls.h\"\n" >> $C_FILE
43 $ECHO $MINUS_e "\n\n\n" >> $C_FILE
44 $ECHO $MINUS_e "void LogPrintMessages(long err);" >> $C_FILE
45 $ECHO $MINUS_e "static long DetailErrorFlags;" >> $C_FILE
46 $ECHO $MINUS_e "\n\n\n" >> $C_FILE
47
48 $ECHO $MINUS_e "void initialise_modules (void)" >> $C_FILE
49 $ECHO $MINUS_e "{" >> $C_FILE
50 $ECHO $MINUS_e "\tlong filter;\n\n" >> $C_FILE
51 $ECHO $MINUS_e -n "\t" >> $C_FILE
52 $ECHO $MINUS_E "lprintf (CTDL_INFO, \"New citadel module init proceedure.\n\");" >> $C_FILE
53
54 #start the header file
55 $ECHO $MINUS_e "/*" > $H_FILE
56 $ECHO $MINUS_e " * $H_FILE" >> $H_FILE
57 $ECHO $MINUS_e " * Auto generated by mk_modules_init.sh DO NOT EDIT THIS FILE" >> $H_FILE
58 $ECHO $MINUS_e " */\n\n\n" >> $H_FILE
59 $ECHO $MINUS_e "#ifndef MODULES_INIT_H" >> $H_FILE
60 $ECHO $MINUS_e "#define MODULES_INIT_H\n" >> $H_FILE
61 $ECHO $MINUS_e "#include \"ctdl_module.h\"\n" >> $H_FILE
62 $ECHO $MINUS_e "void initialise_modules (void) ;\n" >> $H_FILE
63
64
65 for i in serv_*.c
66 do
67         RES=X`grep CTDL_MODULE_INIT $i | cut -f2 -d\( | cut -f1 -d\)`
68         if [ $RES != "X" ] ; then
69                 RES_OUT=`echo $RES | cut -b2-`
70                 echo $MINUS_e "Found entry point in file $i"
71                 echo $MINUS_e -n "\t" >> $C_FILE
72                 echo $MINUS_E "lprintf (CTDL_INFO, \"%s\n\", CTDL_INIT_CALL($RES_OUT));" >> $C_FILE
73                 echo $MINUS_E "CTDL_MODULE_INIT($RES_OUT) ;" >> $H_FILE
74         fi
75 done
76
77
78 if [ -d "modules" ] ; then
79         cd modules
80         for j in *
81         do
82                 if [ -d $j ] ; then
83                         cd $j
84                         for k in *.c
85                         do
86                                 if [ -f "$k" ] ; then
87                                         RES=X`grep CTDL_MODULE_INIT $k | cut -f2 -d\( | cut -f1 -d\)`
88                                         if [ $RES != "X" ] ; then
89                                                 RES_OUT=`echo $RES | cut -b2-`
90                                                 echo $MINUS_e "Found entry point in file modules/$j/$k"
91                                                 echo $MINUS_e -n "\t" >> $C_FILE
92                                                 echo $MINUS_E "lprintf (CTDL_INFO, \"%s\n\", CTDL_INIT_CALL($RES_OUT));" >> $C_FILE
93                                                 echo $MINUS_E "CTDL_MODULE_INIT($RES_OUT) ;" >> $H_FILE
94                                         fi
95                                 fi
96                         done
97                         cd ..
98                 fi
99         done
100 fi
101
102 cd $CUR_DIR
103
104 if [ -d "user_modules" ] ; then
105         cd user_modules
106         for j in *
107         do
108                 if [ -d $j ] ; then
109                         cd $j
110                         for k in *.c
111                         do
112                                 if [ -f "$k" ] ; then
113                                         RES=X`grep CTDL_MODULE_INIT $k | cut -f2 -d\( | cut -f1 -d\)`
114                                         if [ $RES != "X" ] ; then
115                                                 RES_OUT=`echo $RES | cut -b2-`
116                                                 echo $MINUS_e "Found entry point in file user_modules/$j/$k"
117                                                 echo $MINUS_e -n "\t" >> $C_FILE
118                                                 echo $MINUS_E "lprintf (CTDL_INFO, \"%s\n\", CTDL_INIT_CALL($RES_OUT));" >> $C_FILE
119                                                 echo $MINUS_E "CTDL_MODULE_INIT($RES_OUT) ;" >> $H_FILE
120                                         fi
121                                 fi
122                         done
123                         cd ..
124                 fi
125         done
126 fi
127
128 cd $CUR_DIR
129
130 $ECHO $MINUS_e "\n\n" >> $C_FILE
131 $ECHO $MINUS_e "\tfor (filter = 1; filter != 0; filter = filter << 1)" >> $C_FILE
132 $ECHO $MINUS_e "\t\tif ((filter & DetailErrorFlags) != 0)" >> $C_FILE
133 $ECHO $MINUS_e "\t\t\tLogPrintMessages(filter);" >> $C_FILE
134 $ECHO $MINUS_e "}" >> $C_FILE
135
136
137 $ECHO $MINUS_e "\n#endif /* MODULES_INIT_H */" >> $H_FILE