CONF=$(PWD)/config.mk include $(CONF) CC="gcc" CFLAGS= MACROS=\ -DZMQ_TOKEN=\"$(ZMQ_TOKEN)\" \ -DZMQ_MSG_SIZE=$(ZMQ_MSG_SIZE) \ -DLOGGER_DELAY=$(LOGGER_DELAY) all: publisher subscriber logger publisher: src/publisher.c src/utils.c config.mk $(CC) -lzmq $(filter-out config.mk,$^) -o $@ $(MACROS) subscriber: src/subscriber.c src/utils.c config.mk $(CC) -lzmq $(filter-out config.mk,$^) -o $@ $(MACROS) logger: src/logger.c src/utils.c config.mk $(CC) $(filter-out config.mk,$^) -o $@ $(MACROS) publish: publisher logger [ -f pid ] && { kill $(shell cat pid); rm pid; } for client in $$(basename -a /home/loic/registers/*); \ do \ ./logger $(LOGGERS_DIR) $$client $(LOG_INTERVAL) &> logger_$${client}.log & echo $$! >> pid; \ done ./publisher $(LOGGERS_DIR) $(LOG_INTERVAL) $(SUBSCRIBER_ADDR) $(ZMQ_PORT) $(KEY) subscribe: subscriber ./subscriber $(ZMQ_PORT) $(SUBSCRIBER_DIR) clean: rm -f logger subscriber publisher .PHONY: clean publish subscribe