From 6bfcfb78ebc37f43ccd98d3272f129bf0a405a46 Mon Sep 17 00:00:00 2001 From: Efe ERKEN <efe.erken@etu.unistra.fr> Date: Fri, 18 Nov 2022 15:27:39 +0100 Subject: [PATCH] :hammer: CONFIG: Update makefile for new structure Reworked makefile with new paths, variables for project structure. --- makefile | 48 +++++++++++++++++++++++++++++++++++------------- 1 file changed, 35 insertions(+), 13 deletions(-) diff --git a/makefile b/makefile index 0668057..d4f3e05 100644 --- a/makefile +++ b/makefile @@ -1,17 +1,25 @@ CC = gcc -CFLAGS = -Wall -Wextra -g # L'option de debug -g à enlever +CPPFLAGS = -I include +# L'option de debug -g à enlever +CFLAGS = -Wall -Wextra -g LDFLAGS = LDLIBS = -lncurses -ALL_SOURCES = $(wildcard *.c) -TEST_SOURCES = $(filter-out main.c, $(ALL_SOURCES)) -SOURCES = $(filter-out test.c, $(ALL_SOURCES)) -HEADERS = $(wildcard *.h) -ALL_OBJECTS = $(ALL_SOURCES:.c=.o) -TEST_OBJECTS = $(TEST_SOURCES:.c=.o) -OBJECTS = $(SOURCES:.c=.o) -LEVELS = $(wildcard level*.txt) +SPATH = src/ +HPATH = include/ +OPATH = obj/ +LEVELPATH = levels/ +ALL_SOURCES = $(wildcard $(SPATH)*.c) +TEST_SOURCES = $(filter-out $(SPATH)main.c, $(ALL_SOURCES)) +SOURCES = $(filter-out $(SPATH)test.c, $(ALL_SOURCES)) +HEADERS = $(wildcard $(HPATH)*.h) +ALL_OBJECTS = $(addprefix $(OPATH),$(patsubst %.c,%.o,$(notdir $(ALL_SOURCES)))) +TEST_OBJECTS = $(addprefix $(OPATH),$(patsubst %.c,%.o,$(notdir $(TEST_SOURCES)))) +OBJECTS = $(addprefix $(OPATH),$(patsubst %.c,%.o,$(notdir $(SOURCES)))) +LEVELS = $(wildcard $(LEVELPATH)level*.txt) +DOCGEN = doxygen +DOXYFILE = doc/Doxyfile ARCHIVE_NAME = ERKEN_Efe.tar.gz -ARCHIVE_SOURCES = $(SOURCES) $(HEADERS) makefile $(LEVELS) README.md Doxyfile +ARCHIVE_SOURCES = $(SOURCES) $(HEADERS) makefile $(LEVELS) README.md $(DOXYFILE) ARCHIVER = tar ARCHIVE_FLAGS = -cvzf TEST_EXEC = sokoban_test @@ -29,16 +37,30 @@ $(EXEC) : $(OBJECTS) $(TEST_EXEC) : $(TEST_OBJECTS) $(CC) $(CFLAGS) -o $@ $^ $(LDLIBS) -%.o : %.c %.h - $(CC) $(CFLAGS) -c $< +$(OPATH)%.o : $(SPATH)%.c $(HPATH)%.h | $(OPATH) + @echo "-o $@ -c $^" + $(CC) $(CPPFLAGS) $(CFLAGS) -o $@ -c $< + +$(OPATH) : + mkdir -p $@ clean : rm -f $(EXEC) $(TEST_EXEC) $(ALL_OBJECTS) doc : - doxygen Doxyfile + $(DOCGEN) $(DOXYFILE) archive : $(ARCHIVE_NAME) $(ARCHIVE_NAME) : $(ARCHIVE_SOURCES) $(ARCHIVER) $(ARCHIVE_FLAGS) $@ $^ + +echo : + @echo "All_SOURCES = $(ALL_SOURCES)" + @echo "TEST_SOURCES = $(TEST_SOURCES)" + @echo "SOURCES = $(SOURCES)" + @echo "HEADERS = $(HEADERS)" + @echo "All_OBJECTS = $(ALL_OBJECTS)" + @echo "TEST_OBJECTS = $(TEST_OBJECTS)" + @echo "OBJECTS = $(OBJECTS)" + -- GitLab