S := CS.c Debug.c Node.c Data.c
O := $(S:.c=.o)
D := $(S:.c=.d)
CFLAGS = -Wall -D_GNU_SOURCE -lpthread -lm -lrt -lssl -lcrypto

.PHONY:	all clean
all: CS
clean:
	rm -f CS $(O)	
	
CS:	$(O)
	gcc $(CFLAGS) $(O) -o $@ 

%.o: %.c %.d 
	gcc -c $(CFLAGS) -o $@ $<

include $(D) 
%.d: %.c Makefile
	set -e; rm -f $@; \
	$(CC) -MM $(CPPFLAGS) $< > $@.$$$$; \
	sed 's,\($*\)\.o[ :]*,\1.o $@ : ,g' < $@.$$$$ > $@; \
	rm -f $@.$$$$
