# Makefile for Citadel Server # 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 Public License version 3. # config.mk is generated by ./configure include config.mk all := ctdldump ctdlload citserver setup sendcommand citmail loadtest dbnothing ${CHKPW} all: $(all) 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 ${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 sendcommand: utils/sendcommand.c server/citadel_dirs.c utils/*.h server/*.h ${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 chkpw: utils/chkpw.c utils/*.h server/*.h ${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 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 clean: rm -vf $(all) find . -name *.o | xargs rm -vf distclean: clean rm -vf config.mk install: $(all) utils/*.sh @echo Installing to ${CTDLDIR} @for x in $(all) utils/*.sh ; do \ install -v -C -D -t ${CTDLDIR} $$x ;\ done