CC=gcc
CFLAGS=-Wall -g -pthread -DT_TRACER -I.

#CFLAGS += -O3 -ffast-math -fomit-frame-pointer

LIBS=-lX11 -lm -lpng -lXft

tracer_remote: remote_old.o plot.o database.o gui.o utils.o gui/gui.a
	$(CC) $(CFLAGS) -o tracer_remote $^ $(LIBS)

textlog: utils.o textlog.o database.o event.o handler.o \
         event_selector.o view/view.a gui/gui.a logger/logger.a
	$(CC) $(CFLAGS) -o textlog $^ $(LIBS)

enb: utils.o enb.o database.o event.o handler.o \
         event_selector.o view/view.a gui/gui.a logger/logger.a
	$(CC) $(CFLAGS) -o enb $^ $(LIBS)

vcd: utils.o vcd.o database.o event.o handler.o \
         event_selector.o view/view.a gui/gui.a logger/logger.a
	$(CC) $(CFLAGS) -o vcd $^ $(LIBS)

.PHONY: gui/gui.a view/view.a logger/logger.a

gui/gui.a:
	cd gui && make

view/view.a:
	cd view && make

logger/logger.a:
	cd logger && make

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

clean:
	rm -f *.o core tracer_remote textlog enb vcd
	cd gui && make clean
	cd view && make clean
	cd logger && make clean