CONF=$(PWD)/config.mk
include $(CONF)
CC="gcc"
CFLAGS=

MACROS=\
-DZMQ_TOKEN=\"$(ZMQ_TOKEN)\" \
-DZMQ_MSG_SIZE=$(ZMQ_MSG_SIZE) \
-DLOGGERS_DELAY=$(LOGGERS_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) -lzmq $(filter-out config.mk,$^) -o $@ $(MACROS)

publish: publisher logger
	for client in $$(basename -a /sys/kernel/ina260/*); \
	do \
		./logger $(LOGGERS_DIR) $$client $(LOG_INTERVAL) $(SUBSCRIBER_ADDR) $(ZMQ_PORT) $(KEY) ; \
	done
#	[ -f pid ] && { kill -INT $(shell cat pid); rm pid; }

subscribe: subscriber
	./subscriber $(ZMQ_PORT) $(SUBSCRIBER_DIR)

clean:
	rm -f logger subscriber publisher

.PHONY: clean publish subscribe