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