fix dlen
[citadel.git] / citadel / Makefile
index bda087100041d2a16583d69f5f9613affdf2e067..21c758592af2c68e55e39ad7300954823a1fdae5 100644 (file)
@@ -1,43 +1,69 @@
 # Makefile for Citadel Server
-# Copyright (c) 1987-2022 by Art Cancro and the citadel.org team
+# Copyright (c) 1987-2023 by Art Cancro and the citadel.org team
 #
 # No, we are NOT using the obsolete GNU Autotools.  This configure script works
 # well on the Linux operating system (which uses the Linux kernel) and on BSD.
 #
 # This program is open source software.  Use, duplication, and/or
-# disclosure are subject to the GNU General Purpose License version 3.
-
+# disclosure are subject to the GNU General Public License version 3.
 
 # config.mk is generated by ./configure
 include config.mk
 
-all := citserver setup ctdlmigrate sendcommand citmail chkpw chkpwd
+all := ctdldump ctdlload citserver setup sendcommand citmail loadtest dbnothing ${CHKPW}
 all: $(all)
 
-citserver: server/*.c server/modules/*/*.c config.mk server/*.h
-       cc ${CFLAGS} \
-               server/*.c server/modules/*/*.c \
-               ${LDFLAGS} -lresolv -lcitadel -lpthread -lz -lical -lldap -lcrypt -lexpat -lcurl -ldb \
-               -Wno-deprecated-declarations \
+SERVER_SOURCES := $(wildcard server/*.c server/modules/*/*.c)
+SERVER_OBJECTS := $(patsubst %.c,%.o,$(SERVER_SOURCES))
+BACKEND_SOURCES := $(wildcard server/backends/*/*.c)
+BACKEND_OBJECTS := $(patsubst %.c,%.o,$(BACKEND_SOURCES))
+
+$(SERVER_SOURCES): server/*.h server/modules/*/*.h server/backends/*/*.h
+       @touch $@
+
+$(BACKEND_SOURCES): server/*.h server/modules/*/*.h server/backends/*/*.h
+       @touch $@
+
+%.o: %.c
+       @echo $<
+       @${CC} ${CFLAGS} -c $< -o $@
+
+citserver: $(SERVER_OBJECTS) $(BACKEND_OBJECTS)
+       ${CC} ${CFLAGS} \
+               $(SERVER_OBJECTS) $(BACKEND_OBJECTS) \
+               ${LDFLAGS} \
+               -lcitadel -lpthread -lz -lical -lldap -lcrypt -lexpat -lcurl ${LRESOLV} ${BACKEND_LDFLAGS} \
                -o citserver
 
 setup: utils/setup.c server/citadel_dirs.c utils/*.h server/*.h
-       cc ${CFLAGS} ${LDFLAGS} utils/setup.c -lcitadel -o setup
+       ${CC} ${CFLAGS} ${LDFLAGS} utils/setup.c -lcitadel ${LINTL} -o setup
 
 ctdlmigrate: utils/ctdlmigrate.c server/citadel_dirs.c utils/*.h server/*.h
-       cc ${CFLAGS} ${LDFLAGS} utils/ctdlmigrate.c -lcitadel -lreadline -o ctdlmigrate
+       ${CC} ${CFLAGS} ${LDFLAGS} utils/ctdlmigrate.c -lcitadel -lreadline -o ctdlmigrate
 
 sendcommand: utils/sendcommand.c server/citadel_dirs.c utils/*.h server/*.h
-       cc ${CFLAGS} ${LDFLAGS} utils/sendcommand.c -lcitadel -o sendcommand
+       ${CC} ${CFLAGS} ${LDFLAGS} utils/sendcommand.c -lcitadel -o sendcommand
 
 citmail: utils/citmail.c server/citadel_dirs.c utils/*.h server/*.h
-       cc ${CFLAGS} ${LDFLAGS} utils/citmail.c -lcitadel -o citmail
+       ${CC} ${CFLAGS} ${LDFLAGS} utils/citmail.c -lcitadel -o citmail
 
 chkpw: utils/chkpw.c utils/*.h server/*.h
-       cc ${CFLAGS} ${LDFLAGS} utils/chkpw.c -o chkpw
+       ${CC} ${CFLAGS} ${LDFLAGS} utils/chkpw.c -o chkpw
 
 chkpwd: utils/chkpwd.c utils/auth.c utils/*.h server/*.h
-       cc ${CFLAGS} ${LDFLAGS} utils/chkpwd.c utils/auth.c -lcrypt -o chkpwd
+       ${CC} ${CFLAGS} ${LDFLAGS} utils/chkpwd.c utils/auth.c -lcrypt -o chkpwd
+
+dbnothing: utils/dbnothing.c utils/*.h server/*.h ${BACKEND_OBJECTS}
+       ${CC} ${CFLAGS} ${LDFLAGS} utils/dbnothing.c ${BACKEND_OBJECTS} -lcitadel -lz ${BACKEND_LDFLAGS} -lpthread -o dbnothing
+
+ctdldump: utils/ctdldump.c utils/*.h server/*.h ${BACKEND_OBJECTS}
+       ${CC} ${CFLAGS} ${LDFLAGS} utils/ctdldump.c ${BACKEND_OBJECTS} -lcitadel -lz ${BACKEND_LDFLAGS} -lpthread -o ctdldump
+
+ctdlload: utils/ctdlload.c server/makeuserkey.c utils/*.h server/*.h ${BACKEND_OBJECTS}
+       ${CC} ${CFLAGS} ${LDFLAGS} utils/ctdlload.c server/makeuserkey.c ${BACKEND_OBJECTS} -lcitadel -lz ${BACKEND_LDFLAGS} -lpthread -o ctdlload
+
+loadtest: utils/loadtest.c server/citadel_dirs.c utils/*.h server/*.h
+       ${CC} ${CFLAGS} ${LDFLAGS} utils/loadtest.c -lcitadel -lpthread -o loadtest
 
 config.mk: configure
        ./configure
@@ -50,9 +76,7 @@ distclean: clean
        rm -vf config.mk
 
 install: $(all) utils/*.sh
-       #
-       # Installing to ${CTDLDIR}
-       #
+       @echo Installing to ${CTDLDIR}
        @for x in $(all) utils/*.sh ; do \
                install -v -C -D -t ${CTDLDIR} $$x ;\
        done