HDRDIR = /home/p4bl0/dev/headers #fac: /export/etu/r702394/shared/hipopt
LIBDIR = /home/p4bl0/dev/lib #fac: /export/etu/r702394/shared/hipopt
CC = gcc
CFLAGS = -ansi -Wall -pedantic -I$(HDRDIR)
OBJS = tmp/pacity.o tmp/padata.o tmp/padatetime.o tmp/paio.o tmp/paline.o \
  tmp/palinkedcity.o tmp/paride.o tmp/paheap.o tmp/padijkstra.o \
  tmp/pacluster.o tmp/pamem.o
GUIOBJS = tmp/notifier.o tmp/padraw.o tmp/pagui.o tmp/pagui_menu.o \
  tmp/pagui_drawzone.o tmp/pagui_controls.o tmp/pagui_results.o tmp/railgo.o
BIN = bin/railgo-cli
GUI = bin/railgo
REPORT = report/etape1.pdf report/etape2.pdf
DEBUG = -g #-Wl,-shared,-fbounds-checking

.PHONY: all clean clear test

all: $(BIN) $(GUI) $(REPORT) bin/pagenerator

tmp/pacity.o: src/pacity.c src/pacity.h
tmp/padata.o: src/padata.c src/padata.h
tmp/padatetime.o: src/padatetime.c src/padatetime.h
tmp/paio.o: src/paio.c src/paio.h
tmp/paline.o: src/paline.c src/paline.h
tmp/palinkedcity.o: src/palinkedcity.c src/palinkedcity.h
tmp/paride.o: src/paride.c src/paride.h
tmp/paheap.o: src/paheap.c src/paheap.h
tmp/padijkstra.o: src/padijkstra.c src/padijkstra.h
tmp/pacluster.o: src/pacluster.c src/pacluster.h
tmp/pamem.o: src/pamem.c src/pamem.h

tmp/notifier.o: src/gui/notifier.c src/gui/notifier.h
tmp/padraw.o: src/gui/padraw.c src/gui/padraw.h
tmp/pagui.o: src/gui/pagui.c src/gui/pagui.h
tmp/pagui_menu.o: src/gui/pagui_menu.c src/gui/pagui_menu.h
tmp/pagui_drawzone.o: src/gui/pagui_drawzone.c src/gui/pagui_drawzone.h
tmp/pagui_controls.o: src/gui/pagui_controls.c src/gui/pagui_controls.h
tmp/pagui_results.o: src/gui/pagui_results.c src/gui/pagui_results.h
tmp/railgo.o: src/gui/railgo.c src/gui/railgo.h

tmp/main_cli.o: src/main_cli.c
tmp/pagenerator.o: src/pagenerator.c src/pagenerator.h
tmp/main.o: src/gui/main.c src/gui/main.h

report/etape1.pdf: src/rapport1.tex
	pdflatex -output-directory tmp $<
	cp tmp/rapport1.pdf $@

report/etape2.pdf: src/rapport2.tex
	pdflatex -output-directory tmp $<
	cp tmp/rapport2.pdf $@

$(OBJS) tmp/main_cli.o tmp/pagenerator.o:
	$(CC) $(CFLAGS) $(DEBUG) -c $< -o $@

$(BIN): tmp/main_cli.o $(OBJS)
	$(CC) $^ -lm -I$(HDRDIR) -static -L$(LIBDIR) -lhipopt -o $@

bin/pagenerator: tmp/pagenerator.o $(OBJS)
	$(CC) $^ -lm -I$(HDRDIR) -static -L$(LIBDIR) -lhipopt -o $@

$(GUIOBJS) tmp/main.o:
	$(CC) $(CFLAGS) $(DEBUG) `pkg-config --libs --cflags gtk+-2.0`  -c $< -o $@

$(GUI): tmp/main.o $(OBJS) $(GUIOBJS)
	$(CC) $^ -lm `pkg-config --libs --cflags gtk+-2.0` -o $@

test:
	$(BIN) --from 4 --to 2 --at 13h51 --data="data/test1.txt"

clean: clear
	rm -f tmp/* report/*

clear:
	rm -f *~ */*~ */*/*~
