all := citserver setup ctdlmigrate sendcommand citmail chkpw chkpwd
all: $(all)
-citserver: server/*.c server/modules/*/*.c config.mk server/*.h
+SRCDIRS := $(wildcard server server/modules/*)
+SOURCES := $(wildcard server/*.c server/modules/*/*.c)
+OBJECTS := $(patsubst %.c,%.o,$(SOURCES))
+
+citserver: $(OBJECTS)
cc ${CFLAGS} \
- server/*.c server/modules/*/*.c \
- ${LDFLAGS} -lresolv -lcitadel -lpthread -lz -lical -lldap -lcrypt -lexpat -lcurl -ldb \
+ $(OBJECTS) \
+ ${LDFLAGS} \
+ -lresolv -lcitadel -lpthread -lz -lical -lldap -lcrypt -lexpat -lcurl -ldb \
-o citserver
+$(SOURCES): server/*.h server/modules/*/*.h
+ touch $@
+
+%.o: %.c
+ cc ${CFLAGS} -c $< -o $@
+
setup: utils/setup.c server/citadel_dirs.c utils/*.h server/*.h
cc ${CFLAGS} ${LDFLAGS} utils/setup.c -lcitadel -o setup