# Makefile for Citadel Server
-# Copyright (c) 1987-2022 by Art Cancro and the citadel.org team
-#
-# This is the new and improved version that does not use the GNU Autotools,
-# because it is The Current Year and we aren't trying to build for weird
-# obscure systems anymore.
+# 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.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-
# config.mk is generated by ./configure
include config.mk
-citserver: server/*.c server/modules/*/*.c config.mk
+all := citserver setup ctdlmigrate sendcommand citmail chkpw chkpwd #ctdl3264
+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 \
-o citserver
+setup: utils/setup.c server/citadel_dirs.c utils/*.h server/*.h
+ cc ${CFLAGS} ${LDFLAGS} utils/setup.c -lcitadel -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
+
+ctdl3264: utils/ctdl3264.c utils/*.h server/*.h utils/ctdl3264_structs.h
+ cc ${CFLAGS} ${LDFLAGS} utils/ctdl3264.c -lcitadel -lz -ldb -o ctdl3264
+
+utils/ctdl3264_structs.h: server/server.h utils/ctdl3264_prep.sh
+ utils/ctdl3264_prep.sh
+
config.mk: configure
./configure
+
+clean:
+ rm -vf $(all)
+ find . -name *.o | xargs rm -vf
+
+distclean: clean
+ rm -vf config.mk
+
+install: $(all) utils/*.sh
+ #
+ # Installing to ${CTDLDIR}
+ #
+ @for x in $(all) utils/*.sh ; do \
+ install -v -C -D -t ${CTDLDIR} $$x ;\
+ done