#
ECHO=/usr/bin/printf
+SED=/usr/bin/sed
#MINUS_e=X`$ECHO -n -e`
#if [ $MINUS_e != "X" ] ; then
/usr/bin/printf "Scanning extension modules for entry points.\n"
+STATIC_FIRST_MODULES="control modules euidindex msgbase 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 <<EOF >$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 <<EOF >$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 <<EOF >$U_FILE
+cat <<EOF >$C_FILE
/*
- * $U_FILE
+ * $C_FILE
* Auto generated by mk_modules_init.sh DO NOT EDIT THIS FILE
*/
#include "sysdep.h"
#include <stdlib.h>
-#include <unistd.h>
#include <time.h>
#include <ctype.h>
#include <stdio.h>
#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");
+ syslog(LOG_DEBUG, "modules: initializing, CtdlThreads %s", (threading ? "enabled" : "not yet enabled"));
EOF
-# start the c file
-cat <<EOF >$C_FILE
-/*
- * $C_FILE
- * Auto generated by mk_modules_init.sh DO NOT EDIT THIS FILE
- */
-
-
-#include "sysdep.h"
-#include <stdlib.h>
-#include <time.h>
-#include <ctype.h>
-#include <stdio.h>
-#include <sys/types.h>
-#include <unistd.h>
-#include <libcitadel.h>
-#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 <<EOF >> $C_FILE
+ pMod = CTDL_INIT_CALL($i);
+ syslog(LOG_DEBUG, "modules: loaded %s", pMod);
+EOF
+done
+cat <<EOF >> $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 <<EOF > $H_FILE
/*
* $H_FILE
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 <<EOF >> $C_FILE
- syslog(LOG_INFO, "Loaded module: %s\n", CTDL_INIT_CALL($RES_OUT));
-
-EOF
-cat <<EOF >>$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 <<EOF >> $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 <<EOF >> $H_FILE
+ CTDL_MODULE_INIT($i);
EOF
-cat <<EOF >>$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 <<EOF >> $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 <<EOF >> $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 <<EOF >> $C_FILE
- syslog(LOG_INFO, "Loaded module: %s\n", CTDL_INIT_CALL($RES_OUT));
-EOF
-# Add this entry point to the .h file
cat <<EOF >> $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 <<EOF >> $U_FILE
- syslog(LOG_INFO, "%s\n", CTDL_UPGRADE_CALL($RES_OUT));
-EOF
-# Add this entry point to the .h file
-cat <<EOF >> $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 <<EOF >> $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 <<EOF >> $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 <<EOF >> $C_FILE
- syslog(LOG_INFO, "Loaded module: %s\n", CTDL_INIT_CALL($RES_OUT));
+#endif /* MODULES_INIT_H */
+
EOF
-cat <<EOF >> $H_FILE
-CTDL_MODULE_INIT($RES_OUT);
+
+
+###############################################################################
+# u start the Makefile included file for $SERV_MODULES #
+###############################################################################
+cat <<EOF >$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 <<EOF >> $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 <<EOF >$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 <<EOF >> $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 <<EOF >$U_FILE
+/*
+ * $U_FILE
+ * Auto generated by mk_modules_init.sh DO NOT EDIT THIS FILE
+ */
+
+
+
+#include "sysdep.h"
+#include <stdlib.h>
+#include <unistd.h>
+#include <time.h>
+#include <ctype.h>
+#include <stdio.h>
+#include <sys/types.h>
+#include <unistd.h>
+#include <libcitadel.h>
+#include "citadel.h"
+#include "modules_init.h"
+#include "sysdep_decls.h"
+#include "serv_extensions.h"
+
+
+
+void upgrade_modules (void)
+{
+ const char *pMod;
+
+ syslog(LOG_INFO, "modules: upgrading.");
+
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\tsyslog(LOG_INFO, "modules: %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