An error occurred while loading the file. Please try again.
-
ERKEN EFE authored
Added SDL2 installation clean rule to makefile, updated cleanall.
744fb078
##### Commun
CC = gcc
##### Chemins
SPATH = src/
HPATH = include/
OPATH = obj/
DPATH = dep/
LEVELPATH = levels/
##### Executables
TEST_EXEC = sokoban_test
EXEC = sokoban
##### Options
CPPFLAGS = -Iinclude
CFLAGS = -Wall -Wextra
LDFLAGS = -Llib
LDLIBS = -lncurses -lSDL2
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))
ALL_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))))
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/
DOCTARGET = $(DOCPATH)html/
##### Générateur d'archive
ARCHIVE_NAME = ERKEN_Efe.tar.gz
ARCHIVE_SOURCES = $(SOURCES) $(ALL_HEADERS) makefile $(LEVELS) README.md $(DOXYFILE)
ARCHIVER = tar
ARCHIVE_FLAGS = -cvzf
##### Divers
### Protection contre interruption lors de la compilation
POSTCOMPILE = mv -f $(DPATH)$*.Td $(DPATH)$*.d && touch $@
##### Règles de construction
.PHONY : all test SDL2 doc archive clean cleanSDL2 cleandoc cleanarchive cleanall
all : $(EXEC)
test : $(TEST_EXEC)
$(EXEC) : $(OBJECTS)
$(CC) $(CFLAGS) -o $@ $^ $(LDFLAGS) $(LDLIBS)
$(TEST_EXEC) : $(TEST_OBJECTS)
$(CC) $(CFLAGS) -o $@ $^ $(LDFLAGS) $(LDLIBS)
$(OPATH)%.o : $(SPATH)%.c $(DPATH)%.d | $(OPATH) $(DPATH)
$(CC) -c $(CFLAGS) $(CPPFLAGS) $(DEPFLAGS) -o $@ $<
@$(POSTCOMPILE)
$(OPATH) :
mkdir -p $@
$(DPATH) :
mkdir -p $@
$(ALL_DEPENDS) :
-include $(ALL_DEPENDS)
clean :
rm -f $(EXEC) $(TEST_EXEC) $(ALL_OBJECTS) $(ALL_DEPENDS)
cleanSDL2 :
rm -rf bin/ include/SDL2/ lib/ share/
cleandoc :
rm -rf $(DOCPATH)
cleanarchive :
rm -f $(ARCHIVE_NAME)
cleanall : clean
cleanall : cleanSDL2
cleanall : cleandoc
cleanall : cleanarchive
cleanall :
rm -rf $(OPATH) $(DPATH)
doc : $(DOCTARGET)
$(DOCTARGET) : $(ALL_SOURCES) $(ALL_HEADERS) README.md $(DOXYFILE)
$(DOCGEN) $(DOXYFILE)
archive : $(ARCHIVE_NAME)
$(ARCHIVE_NAME) : $(ARCHIVE_SOURCES)
$(ARCHIVER) $(ARCHIVE_FLAGS) $@ $^
SDL2 :
cd SDL2 && ./configure --prefix=$(PWD)/
cd SDL2 && make install -j6