X-Git-Url: https://code.citadel.org/?a=blobdiff_plain;f=citadel%2Fscripts%2Fmk_module_init.sh;h=cc51ae933916b291a9d829643fb75878c1ca829c;hb=66f09fdd7c3f58e13ed01431dd5148302327ca6e;hp=b9eeef46f8d9c9fff224c1c7d2489cdb502e8a9b;hpb=f1ee61891901850ebbdee1e9440b363dc6df540a;p=citadel.git diff --git a/citadel/scripts/mk_module_init.sh b/citadel/scripts/mk_module_init.sh index b9eeef46f..cc51ae933 100755 --- a/citadel/scripts/mk_module_init.sh +++ b/citadel/scripts/mk_module_init.sh @@ -4,6 +4,7 @@ # ECHO=/usr/bin/printf +SED=/bin/sed #MINUS_e=X`$ECHO -n -e` #if [ $MINUS_e != "X" ] ; then @@ -29,34 +30,22 @@ U_FILE="$CUR_DIR/modules_upgrade.c" /usr/bin/printf "Scanning extension modules for entry points.\n" +STATIC_FIRST_MODULES="citserver control modules euidindex file_ops msgbase room_ops user_ops nttlist database" +DYNAMIC_MODULES=`grep CTDL_MODULE_INIT modules/*/*.c |$SED 's;.*(\(.*\));\1;'` +if test -d user_modules; then + USER_MODULES=`grep CTDL_MODULE_INIT user_modules/*/*.c |$SED 's;.*(\(.*\));\1;'` +else + USER_MODULES= +fi +STATIC_LAST_MODULES="netconfig" -#start of the files which inturn removes any existing file -# - -# start the Makefile included file for $SERV_MODULES -cat <$MOD_FILE -# -# Make_modules -# This file is to be included by Makefile to dynamically add modules to the build process -# THIS FILE WAS AUTO GENERATED BY mk_modules_init.sh DO NOT EDIT THIS FILE -# - -EOF - -# start the Makefile included file for $SOURCES -cat <$SRC_FILE -# -# Make_sources -# This file is to be included by Makefile to dynamically add modules to the build process -# THIS FILE WAS AUTO GENERATED BY mk_modules_init.sh DO NOT EDIT THIS FILE -# - -EOF +############################################################################### +# start the c file # +############################################################################### -# start the upgrade file -cat <$U_FILE +cat <$C_FILE /* - * $U_FILE + * $C_FILE * Auto generated by mk_modules_init.sh DO NOT EDIT THIS FILE */ @@ -64,7 +53,6 @@ cat <$U_FILE #include "sysdep.h" #include -#include #include #include #include @@ -74,67 +62,50 @@ cat <$U_FILE #include "citadel.h" #include "modules_init.h" #include "sysdep_decls.h" +#include "serv_extensions.h" +void LogPrintMessages(long err); +extern long DetailErrorFlags; - -void upgrade_modules (void) +void initialise_modules (int threading) { + long filter; + const char *pMod; - syslog(LOG_INFO, "Upgrade modules.\n"); + if (threading) { + MODM_syslog(LOG_DEBUG, "Initializing, CtdlThreads enabled.\n"); + } + else { + MODM_syslog(LOG_INFO, "Initializing. CtdlThreads not yet enabled.\n"); + } EOF -# start the c file -cat <$C_FILE -/* - * $C_FILE - * Auto generated by mk_modules_init.sh DO NOT EDIT THIS FILE - */ - - -#include "sysdep.h" -#include -#include -#include -#include -#include -#include -#include -#include "citadel.h" -#include "modules_init.h" -#include "sysdep_decls.h" +for i in ${STATIC_FIRST_MODULES} ${DYNAMIC_MODULES} ${USER_MODULES} ${STATIC_LAST_MODULES}; do +cat <> $C_FILE + pMod = CTDL_INIT_CALL($i); + MOD_syslog(LOG_DEBUG, "Loaded module: %s\n", pMod); +EOF +done +cat <> $C_FILE -void LogPrintMessages(long err); -extern long DetailErrorFlags; + for (filter = 1; filter != 0; filter = filter << 1) + if ((filter & DetailErrorFlags) != 0) + LogPrintMessages(filter); +} +EOF -void initialise_modules (int threading) -{ - long filter; - nSizErrmsg = 0; - - if (threading) - syslog(LOG_INFO, "Initialize modules, CtdlThreads enabled.\n"); - else - syslog(LOG_INFO, "Initialize modules, CtdlThreads not yet enabled.\n"); -/* static server initialization: */ - syslog(LOG_INFO, "Loaded module: %s\n", CTDL_INIT_CALL(citserver)); - syslog(LOG_INFO, "Loaded module: %s\n", CTDL_INIT_CALL(control)); - syslog(LOG_INFO, "Loaded module: %s\n", CTDL_INIT_CALL(euidindex)); - syslog(LOG_INFO, "Loaded module: %s\n", CTDL_INIT_CALL(file_ops)); - syslog(LOG_INFO, "Loaded module: %s\n", CTDL_INIT_CALL(msgbase)); - syslog(LOG_INFO, "Loaded module: %s\n", CTDL_INIT_CALL(room_ops)); - syslog(LOG_INFO, "Loaded module: %s\n", CTDL_INIT_CALL(user_ops)); -/* dynamic modules: */ -EOF -#start the header file +############################################################################### +# start the header file # +############################################################################### cat < $H_FILE /* * $H_FILE @@ -149,161 +120,101 @@ extern size_t nSizErrmsg; void initialise_modules (int threading); void upgrade_modules(void); - CTDL_MODULE_INIT(citserver); - CTDL_MODULE_INIT(control); - CTDL_MODULE_INIT(euidindex); - CTDL_MODULE_INIT(file_ops); - CTDL_MODULE_INIT(msgbase); - CTDL_MODULE_INIT(room_ops); - CTDL_MODULE_INIT(user_ops); -EOF - -for i in serv_*.c -do - RES=X`grep CTDL_MODULE_INIT $i | cut -f2 -d\( | cut -f1 -d\)` - if [ $RES != "X" ] ; then - RES_OUT=`echo $RES | cut -b2-` - /usr/bin/printf "Found entry point in file $i\n" -cat <> $C_FILE - syslog(LOG_INFO, "Loaded module: %s\n", CTDL_INIT_CALL($RES_OUT)); - -EOF -cat <>$H_FILE -CTDL_MODULE_INIT($RES_OUT); EOF - fi - RES=X`grep CTDL_MODULE_UPGRADE $i | cut -f2 -d\( | cut -f1 -d\)` - if [ $RES != "X" ] ; then - RES_OUT=`echo $RES | cut -b2-` - /usr/bin/printf "Found upgrade point in file $i\n" -cat <> $U_FILE - syslog(LOG_INFO, "%s\n", CTDL_UPGRADE_CALL($RES_OUT)); +for i in ${STATIC_FIRST_MODULES} ${DYNAMIC_MODULES} ${USER_MODULES} ${STATIC_LAST_MODULES}; do +# Add this entry point to the .h file +cat <> $H_FILE + CTDL_MODULE_INIT($i); EOF -cat <>$H_FILE -CTDL_MODULE_UPGRADE($RES_OUT); -EOF - fi done +grep CTDL_MODULE_UPGRADE *.c modules/*/*.c |$SED 's;.*(\(.*\));\CTDL_MODULE_UPGRADE(\1)\;\n;' >> $H_FILE -if [ -d "modules" ] ; then - cd modules - for j in * - do - if [ -d $j ] ; then - cd $j - for k in *.c - do - if [ -f "$k" ] ; then -# Add this .c file to the Makefile included list of SOURCES -cat <> $SRC_FILE -SOURCES += modules/$j/$k -EOF - -# Generate a .o file name -O_FILE=`basename $k .c` -O_FILE="$O_FILE.o" -# Add this .o file to the Makefile included list of SERV_MODULES -cat <> $MOD_FILE -SERV_MODULES += modules/$j/$O_FILE -EOF - - RES=X`grep CTDL_MODULE_INIT $k | cut -f2 -d\( | cut -f1 -d\)` - if [ $RES != "X" ] ; then - RES_OUT=`echo $RES | cut -b2-` - /usr/bin/printf "Found entry point in file modules/$j/$k\n" -# Add this entry point to the .c file -cat <> $C_FILE - syslog(LOG_INFO, "Loaded module: %s\n", CTDL_INIT_CALL($RES_OUT)); -EOF -# Add this entry point to the .h file cat <> $H_FILE - CTDL_MODULE_INIT($RES_OUT); -EOF - fi - RES=X`grep CTDL_MODULE_UPGRADE $k | cut -f2 -d\( | cut -f1 -d\)` - if [ $RES != "X" ] ; then - RES_OUT=`echo $RES | cut -b2-` - /usr/bin/printf "Found upgrade point in file modules/$j/$k\n" -# Add this entry point to the .c file -cat <> $U_FILE - syslog(LOG_INFO, "%s\n", CTDL_UPGRADE_CALL($RES_OUT)); -EOF -# Add this entry point to the .h file -cat <> $H_FILE - CTDL_MODULE_UPGRADE($RES_OUT); -EOF - fi - fi - done - cd .. - fi - done -fi -cd $CUR_DIR - -if [ -d "user_modules" ] ; then - cd user_modules - for j in * - do - if [ -d $j ] ; then - cd $j - for k in *.c - do - if [ -f "$k" ] ; then -# Add this .c file to the Makefile included list of SOURCES -cat <> $SRC_FILE -SOURCES += user_modules/$j/$k -EOF -# Generate a .o file name -O_FILE=`basename $k .c` -O_FILE="$O_FILE.o" -# Add this .o file to the Makefile included list of SERV_MODULES -cat <> $MOD_FILE -SERV_MODULES += user_modules/$j/$O_FILE -EOF - - RES=X`grep CTDL_MODULE_INIT $k | cut -f2 -d\( | cut -f1 -d\)` - if [ $RES != "X" ] ; then - RES_OUT=`echo $RES | cut -b2-` - /usr/bin/printf "Found entry point in file user_modules/$j/$k\n" -cat <> $C_FILE - syslog(LOG_INFO, "Loaded module: %s\n", CTDL_INIT_CALL($RES_OUT)); +#endif /* MODULES_INIT_H */ + EOF -cat <> $H_FILE -CTDL_MODULE_INIT($RES_OUT); + + +############################################################################### +# u start the Makefile included file for $SERV_MODULES # +############################################################################### +cat <$MOD_FILE +# +# Make_modules +# This file is to be included by Makefile to dynamically add modules to the build process +# THIS FILE WAS AUTO GENERATED BY mk_modules_init.sh DO NOT EDIT THIS FILE +# + +SERV_MODULES = \\ EOF - fi - RES=X`grep CTDL_MODULE_UPGRADE $k | cut -f2 -d\( | cut -f1 -d\)` - if [ $RES != "X" ] ; then - RES_OUT=`echo $RES | cut -b2-` - /usr/bin/printf "Found upgrade point in file user_modules/$j/$k\n" -cat <> $U_FILE - syslog(LOG_INFO, "%s\n", CTDL_UPGRADE_CALL($RES_OUT)); + +echo modules/*/*.c | $SED -e "s;\.c ;.o \\\\\n;g" -e "s;\.c;.o;" >> $MOD_FILE +echo >> $MOD_FILE + + +############################################################################### +# start of the files which inturn removes any existing file # +############################################################################### + + +# start the Makefile included file for $SOURCES +cat <$SRC_FILE +# +# Make_sources +# This file is to be included by Makefile to dynamically add modules to the build process +# THIS FILE WAS AUTO GENERATED BY mk_modules_init.sh DO NOT EDIT THIS FILE +# + +SOURCES = \\ EOF -cat <> $H_FILE -CTDL_MODULE_UPGRADE($RES_OUT); + +echo modules/*/*.c | $SED "s;\.c ;.c \\\\\n;g" >> $SRC_FILE +echo >> $SRC_FILE + + + +############################################################################### +# start the upgrade file # +############################################################################### +cat <$U_FILE +/* + * $U_FILE + * Auto generated by mk_modules_init.sh DO NOT EDIT THIS FILE + */ + + + +#include "sysdep.h" +#include +#include +#include +#include +#include +#include +#include +#include +#include "citadel.h" +#include "modules_init.h" +#include "sysdep_decls.h" +#include "serv_extensions.h" + + + +void upgrade_modules (void) +{ + const char *pMod; + + MODM_syslog(LOG_INFO, "Upgrade modules.\n"); + EOF - fi - fi - done - cd .. - fi - done -fi -cd $CUR_DIR +# Add this entry point to the .c file -/usr/bin/printf "\n\n" >> $C_FILE -/usr/bin/printf "\tfor (filter = 1; filter != 0; filter = filter << 1)\n" >> $C_FILE -/usr/bin/printf "\t\tif ((filter & DetailErrorFlags) != 0)\n" >> $C_FILE -/usr/bin/printf "\t\t\tLogPrintMessages(filter);\n" >> $C_FILE -/usr/bin/printf "}\n" >> $C_FILE +grep CTDL_MODULE_UPGRADE *.c modules/*/*.c |$SED 's;.*(\(.*\));\tpMod = CTDL_UPGRADE_CALL(\1)\;\n\tMOD_syslog(LOG_INFO, "%s\\n", pMod)\;\n;' >> $U_FILE #close the upgrade file /usr/bin/printf "}\n" >> $U_FILE - -/usr/bin/printf "\n#endif /* MODULES_INIT_H */\n" >> $H_FILE