CC=gcc CFLAGS=-std=c99 -Werror -Wall -Wextra -pedantic -Wshadow -Wno-missing-field-initializers -Wstrict-overflow LDFLAGS=-std=c99 -Werror -Wall -Wextra -Wpedantic -Wshadow -Wno-missing-field-initializers -Wstrict-overflow -lm -lcurl -ljansson GFLAGS=-lcsfml-graphics -lcsfml-window -lcsfml-system DEPFLAGS=-MMD -MF OUTPUT=bin/Release/GINPA OBJ=obj/Release DEP=Dep ifdef DEBUG CFLAGS+=-g LDFLAGS+=-g OUTPUT=bin/Debug/GINPA OBJ=obj/Debug ARG=DEBUG=1 #Pour compiler en mode debug récursivement endif .SILENT: #La dépendance de OUTPUT à recursive permet de s'assurer qu'une modification d'un # fichier dans un sous-dossier sera prise en compte lors d'un nouveau make $(OUTPUT): recursive $(OBJ)/main.o $(CC) -o $@ $(OBJ)/*.o $(LDFLAGS) $(GFLAGS) recursive: make $(ARG) -C Vue make $(ARG) -C Controleur make $(ARG) -C Modele $(OBJ)/main.o: main.c $(CC) -c -o $@ $< $(CFLAGS) $(GFLAGS) $(DEPFLAGS) $(DEP)/$(basename $<).d -include $(DEP)/*.d .PHONY: debug clean mrproper doc doc-config clean-doc debug: make DEBUG=1 doc: make doc-config doxygen Doxyfile doc-config: doxygen -g sed -i 's/PROJECT_NAME.*=.*"My Project"/PROJECT_NAME = "GINPA"/' Doxyfile sed -i 's/RECURSIVE.*=.*NO/RECURSIVE = YES/' Doxyfile sed -i 's/EXTRACT_ALL.*=.*NO/EXTRACT_ALL = YES/' Doxyfile clean-doc: rm -f Doxyfile rm -f Doxyfile.bak rm -f doxygen_sqlite3.db rm -rf html rm -rf latex #Supprime tous les fichiers objets et fichiers dépendance clean: find obj -name '*.o' -delete rm -rf Dep/*.d rm -rf Modele/Dep/*.d rm -rf Controleur/Dep/*.d rm -rf Vue/Dep/*.d rm -f logs.txt #Supprime tous les fichiers binaires, objets et dépendances mrproper: clean rm -rf bin/Debug/GINPA rm -rf bin/Release/GINPA