From 04956e052a2da56151bfeb5d338319c1d175ac66 Mon Sep 17 00:00:00 2001
From: Efe ERKEN <efe.erken@etu.unistra.fr>
Date: Tue, 8 Nov 2022 01:04:46 +0100
Subject: [PATCH] :hammer: CONFIG: Enhance and format makefile

Makefile is improved with more standardized look.
---
 makefile | 37 +++++++++++++++++++++++--------------
 1 file changed, 23 insertions(+), 14 deletions(-)

diff --git a/makefile b/makefile
index 02367f9..5a469e8 100644
--- a/makefile
+++ b/makefile
@@ -1,33 +1,42 @@
 CC = gcc
-CFLAGS = -Wall -Wextra
-SOURCES = $(wildcard *.c)
+CFLAGS = -Wall -Wextra -g		# L'option de debug -g à enlever
+ALL_SOURCES = $(wildcard *.c)
+TEST_SOURCES = $(filter-out main.c, $(ALL_SOURCES))
+SOURCES = $(filter-out test.c, $(ALL_SOURCES))
 HEADERS = $(wildcard *.h)
+TEST_OBJECTS = $(TEST_SOURCES:.c=.o)
 OBJECTS = $(SOURCES:.c=.o)
-MAKEFILE = makefile
-README = README.md
-DOXYFILE = Doxyfile
-DOXYGEN = doxygen
 DOXYGEN_FLAGS =
 LEVELS = $(wildcard level*.txt)
 ARCHIVE_NAME = ERKEN_Efe.tar.gz
-ARCHIVE_SOURCES = $(SOURCES) $(HEADERS) $(MAKEFILE) $(LEVELS) $(README) $(DOXYFILE)
-ARCHIVE = tar
+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
+
+all : $(EXEC)
+
+test : $(TEST_EXEC)
+
 $(EXEC) : $(OBJECTS)
 	$(CC) $(CFLAGS) -o $@ $^
 
-%.o : %.c
+$(TEST_EXEC) : $(TEST_OBJECTS)
+	$(CC) $(CFLAGS) -o $@ $^
+
+%.o : %.c %.h
 	$(CC) $(CFLAGS) -c $<
 
 clean :
-	rm sokoban
-	rm *.o
+	rm -f $(EXEC) $(TEST_EXEC) $(OBJECTS)
 
 doc :
-	$(DOXYGEN) $(DOXYGEN_FLAGS)
+	doxygen $(DOXYGEN_FLAGS)
 
-archive : $(ARCHIVE_SOURCES)
-	$(ARCHIVE) $(ARCHIVE_FLAGS) $(ARCHIVE_NAME) $^
+archive : $(ARCHIVE_NAME)
 
+$(ARCHIVE_NAME) : $(ARCHIVE_SOURCES)
+	$(ARCHIVER) $(ARCHIVE_FLAGS) $@ $^
-- 
GitLab