CLIENT_TARGETS=citadel$(EXEEXT) whobbs$(EXEEXT) stress$(EXEEXT)
SERVER_TARGETS=citserver
-SERV_MODULES=modules/chat/serv_chat.o \
- modules/upgrade/serv_upgrade.o \
- modules/smtp/serv_smtp.o \
- modules/spam/serv_spam.o \
- modules/pop3/serv_pop3.o \
- modules/vcard/serv_vcard.o \
- vcard.o \
- modules/mrtg/serv_mrtg.o \
- modules/imap/serv_imap.o \
- modules/imap/imap_fetch.o \
- modules/imap/imap_misc.o \
- modules/imap/imap_search.o \
- modules/imap/imap_store.o \
- modules/imap/imap_acl.o \
- modules/imap/imap_metadata.o \
- modules/imap/imap_tools.o \
- modules/imap/imap_list.o \
- modules/fulltext/serv_fulltext.o \
- modules/fulltext/ft_wordbreaker.o \
+SERV_MODULES=vcard.o \
crc16.o \
- modules/network/serv_network.o \
- modules/listsub/serv_listsub.o \
- modules/netfilter/serv_netfilter.o \
- modules/newuser/serv_newuser.o \
- modules/notes/serv_notes.o \
- modules/pas2/serv_pas2.o \
- modules/pop3client/serv_pop3client.o \
md5.o \
- modules/inetcfg/serv_inetcfg.o \
- modules/rwho/serv_rwho.o \
- modules/bio/serv_bio.o \
- modules/expire/serv_expire.o \
- modules/vandelay/serv_vandelay.o \
- modules/calendar/serv_calendar.o \
- modules/crypto/serv_crypto.o \
- modules/sieve/serv_sieve.o \
- modules/managesieve/serv_managesieve.o \
- ical_dezonify.o \
- modules/ldap/serv_ldap.o \
- modules/autocompletion/serv_autocompletion.o \
- modules/funambol/serv_funambol.o \
- modules/pager/serv_pager.o \
- modules/test/serv_test.o
+ ical_dezonify.o
+
+include Make_modules
UTIL_TARGETS=aidepost msgform \
citmail userlist sendcommand \
housekeeping.c html.c ical_dezonify.c \
internet_addressing.c ecrash.c \
ipc_c_tcp.c locate_host.c md5.c messages.c \
- modules/autocompletion/serv_autocompletion.c \
mime_parser.c msgbase.c msgform.c parsedate.c policy.c \
room_ops.c rooms.c routines.c routines2.c tuiconfig.c euidindex.c \
screen.c sendcommand.c \
- modules/bio/serv_bio.c \
- modules/calendar/serv_calendar.c \
- modules/chat/serv_chat.c \
- modules/crypto/serv_crypto.c \
- modules/expire/serv_expire.c \
- modules/imap/serv_imap.c \
- modules/imap/imap_search.c \
- modules/imap/imap_store.c \
- modules/imap/imap_tools.c \
- modules/imap/imap_fetch.c \
- modules/imap/imap_misc.c \
- modules/imap/imap_acl.c \
- modules/imap/imap_list.c \
- modules/imap/imap_metadata.c \
- modules/inetcfg/serv_inetcfg.c \
- modules/listsub/serv_listsub.c \
- modules/mrtg/serv_mrtg.c \
- modules/netfilter/serv_netfilter.c \
- modules/network/serv_network.c \
- modules/ldap/serv_ldap.c \
- modules/newuser/serv_newuser.c \
- modules/pas2/serv_pas2.c \
- modules/pop3client/serv_pop3client.c \
- modules/pop3/serv_pop3.c \
- modules/rwho/serv_rwho.c \
- modules/smtp/serv_smtp.c \
- modules/spam/serv_spam.c \
- modules/upgrade/serv_upgrade.c \
- modules/vandelay/serv_vandelay.c \
- modules/vcard/serv_vcard.c \
- modules/managesieve/serv_managesieve.c \
server_main.c \
- modules/sieve/serv_sieve.c \
- modules/funambol/serv_funambol.c \
setup.c snprintf.c \
stress.c support.c sysdep.c tools.c user_ops.c userlist.c \
whobbs.c vcard.c \
- modules/notes/serv_notes.c \
- modules/fulltext/serv_fulltext.c \
- modules/fulltext/ft_wordbreaker.c \
- crc16.c journaling.c citadel_dirs.c \
- modules/test/serv_test.c
+ crc16.c journaling.c citadel_dirs.c
+
+include Make_sources
DEP_FILES=$(SOURCES:.c=.d) modules_init.d
parsedate.o: parsedate.c
-modules_init.c: mk_module_init.sh $(SOURCES)
- $(srcdir)/mk_module_init.sh
+Make_sources: modules_init.c
+
+Make_modules: modules_init.c
+
+modules_init.c: mk_module_init.sh $(SOURCES)
+ $(srcdir)/mk_module_init.sh
SERV_OBJS = server_main.o \
user_ops.o citserver.o sysdep.o serv_extensions.o \
cleaner: clean
rm -rf $(CLIENT_TARGETS) $(SERVER_TARGETS) $(UTIL_TARGETS) $(UTILBIN_TARGETS) database_cleanup.sh *.la
- rm -rf modules_init.c modules_init.h
+ rm -rf modules_init.c modules_init.h Make_modules Make_sources
distclean: cleaner
find . -name '*~' -o -name '.#*' | xargs rm -f
CUR_DIR=`pwd`
C_FILE="$CUR_DIR/modules_init.c"
H_FILE="$CUR_DIR/modules_init.h"
+MOD_FILE="$CUR_DIR/Make_modules"
+SRC_FILE="$CUR_DIR/Make_sources"
+
/usr/bin/printf "Scanning extension modules for entry points.\n"
-/usr/bin/printf "This version of echo $ECHO supports $MINUS_e $MINUS_E.\n"
#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
cat <<EOF >$C_FILE
/*
* $C_FILE
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
lprintf (CTDL_INFO, "%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
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=\$(SOURCES) $k
+EOF
RES=X`grep CTDL_MODULE_INIT $k | cut -f2 -d\( | cut -f1 -d\)`
if [ $RES != "X" ] ; then
RES_OUT=`echo $RES | cut -b2-`