From 27ce2593cad00c152e571dd851e792d8403ff68b Mon Sep 17 00:00:00 2001 From: Efe ERKEN <efe.erken@etu.unistra.fr> Date: Sat, 19 Nov 2022 14:46:19 +0100 Subject: [PATCH] :memo: DOC: Add commentary, structure to makefile Makefile is now easier to read. Also added more clean targets. --- makefile | 52 +++++++++++++++++++++++++++++++++++++++++----------- 1 file changed, 41 insertions(+), 11 deletions(-) diff --git a/makefile b/makefile index 67cc825..9ea1905 100644 --- a/makefile +++ b/makefile @@ -1,16 +1,26 @@ +##### Commun CC = gcc -CPPFLAGS = -I include -# L'option de debug -g à enlever -CFLAGS = -Wall -Wextra -g -LDFLAGS = -LDLIBS = -lncurses -DEPFLAGS = -MT $@ -MMD -MP -MF $(DPATH)$*.Td -POSTCOMPILE = mv -f $(DPATH)$*.Td $(DPATH)$*.d && touch $@ + +##### Chemins SPATH = src/ HPATH = include/ OPATH = obj/ DPATH = dep/ LEVELPATH = levels/ + +##### Executables +TEST_EXEC = sokoban_test +EXEC = sokoban + +##### Options +CPPFLAGS = -I include +### L'option de debug -g à enlever +CFLAGS = -Wall -Wextra -g +LDFLAGS = +LDLIBS = -lncurses +DEPFLAGS = -MT $@ -MMD -MP -MF $(DPATH)$*.Td + +##### Fichiers ALL_SOURCES = $(wildcard $(SPATH)*.c) TEST_SOURCES = $(filter-out $(SPATH)main.c, $(ALL_SOURCES)) SOURCES = $(filter-out $(SPATH)test.c, $(ALL_SOURCES)) @@ -20,16 +30,24 @@ TEST_OBJECTS = $(addprefix $(OPATH),$(patsubst %.c,%.o,$(notdir $(TEST_SOURCES) OBJECTS = $(addprefix $(OPATH),$(patsubst %.c,%.o,$(notdir $(SOURCES)))) ALL_DEPENDS = $(addprefix $(DPATH),$(patsubst %.c,%.d,$(notdir $(ALL_SOURCES)))) LEVELS = $(wildcard $(LEVELPATH)level*.txt) + +##### Générateur de documentation DOCGEN = doxygen DOXYFILE = doc/Doxyfile +DOCPATH = doc/doxygen + +##### Générateur d'archive ARCHIVE_NAME = ERKEN_Efe.tar.gz ARCHIVE_SOURCES = $(SOURCES) $(HEADERS) makefile $(LEVELS) README.md $(DOXYFILE) ARCHIVER = tar ARCHIVE_FLAGS = -cvzf -TEST_EXEC = sokoban_test -EXEC = sokoban -.PHONY : all test clean doc archive +##### Divers +### Protection contre interruption lors de la compilation +POSTCOMPILE = mv -f $(DPATH)$*.Td $(DPATH)$*.d && touch $@ + +##### Règles de construction +.PHONY : all test clean cleandoc cleanarchive cleanall doc archive all : $(EXEC) @@ -53,12 +71,25 @@ $(DPATH) : $(ALL_DEPENDS) : +### Un des deux, c'est la même chose # include $(wildcard $(ALL_DEPENDS)) -include $(ALL_DEPENDS) clean : rm -f $(EXEC) $(TEST_EXEC) $(ALL_OBJECTS) $(ALL_DEPENDS) +cleandoc : + rm -rf $(DOCPATH) + +cleanarchive : + rm -f $(ARCHIVE_NAME) + +cleanall : clean +cleanall : cleandoc +cleanall : cleanarchive +cleanall : + rm -rf $(OPATH) $(DPATH) + doc : $(DOCGEN) $(DOXYFILE) @@ -66,4 +97,3 @@ archive : $(ARCHIVE_NAME) $(ARCHIVE_NAME) : $(ARCHIVE_SOURCES) $(ARCHIVER) $(ARCHIVE_FLAGS) $@ $^ - -- GitLab