only build chkpw and chkpwd if we can
authorArt Cancro <ajc@citadel.org>
Sat, 2 Sep 2023 03:22:50 +0000 (23:22 -0400)
committerArt Cancro <ajc@citadel.org>
Sat, 2 Sep 2023 03:22:50 +0000 (23:22 -0400)
citadel/GNUmakefile [deleted file]
citadel/Makefile
citadel/configure

diff --git a/citadel/GNUmakefile b/citadel/GNUmakefile
deleted file mode 100644 (file)
index 49dc6fa..0000000
+++ /dev/null
@@ -1,82 +0,0 @@
-# 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 chkpw chkpwd loadtest dbnothing
-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
index 8a91905420c2ba8e58539d46d5408bcb58c49d25..21c758592af2c68e55e39ad7300954823a1fdae5 100644 (file)
@@ -1,2 +1,82 @@
-all:
-       gmake
+# 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
index b3606462055708eb635be93b0af0d5d9e38ce707..c2efb64276e14afa3c2c41dfa259f43a7e99457f 100755 (executable)
@@ -160,6 +160,29 @@ $CC $CFLAGS $CPPFLAGS $tempcc -lintl -o $tempfile && {
 }
 
 
+########################################################################
+# Are we on Linux with -lcrypt and PAMmy stuff?
+########################################################################
+echo Testing for lcrypt...
+tempfile=`tempfile 2>/dev/null` || tempfile=/tmp/configure.$$
+tempcc=${tempfile}.c
+cat >$tempcc <<!
+#include <stdlib.h>
+#include <unistd.h>
+#include <stdio.h>
+#include <crypt.h>
+int main(int argc, char **argv) {
+       return(0);
+}
+!
+
+$CC $CFLAGS $CPPFLAGS $tempcc -lcrypt -o $tempfile && {
+       CHKPW='chkpw chkpwd'
+} || {
+       CHKPW=''
+}
+
+
 ########################################################################
 # This is needed to link Berkeley DB.  We will add more here later.
 ########################################################################
@@ -185,6 +208,7 @@ CFLAGS=${CFLAGS}' -DCTDLDIR=\"'${CTDLDIR}'\"'
        echo "LRESOLV := ${LRESOLV}"
        echo "LINTL := ${LINTL}"
        echo "BACKEND_LDFLAGS := ${BACKEND_LDFLAGS}"
+       echo "CHKPW := ${CHKPW}"
 ) >config.mk
 
 cat config.mk