-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathMakefile
61 lines (48 loc) · 1.39 KB
/
Makefile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
CC=gcc
BUILD_DIR=build
SRC_DIR=src
INC_DIR=include
INCLUDE=-I$(INC_DIR)
LIBS=-lm -lMLV
CFLAGS=-fdiagnostics-color=always -Wall -pedantic -std=c17 -O2
NOM_ZIP=SEBAN_ABDALLAH.zip
EXEC=quadtree
CONTENU_ZIP=$(SRC_DIR) $(INC_DIR) .clang-format .clang-tidy Makefile Doxyfile README.md
SOURCES=$(wildcard $(SRC_DIR)/*.c)
HEADERS=$(wildcard $(INC_DIR)/*.h)
# On récupère tous les fichiers sources .c, et on leurs préfixe
# le chemin de build, et suffixes en .o :
OBJS=$(patsubst $(SRC_DIR)/%.c, $(BUILD_DIR)/%.o, $(SOURCES))
#$(info $(OBJS))
all: $(EXEC)
# Assemblage de l'exécutable final
$(EXEC): $(OBJS)
$(CC) $^ -o $@ $(LIBS)
# Dépendances
demo.o: demo.c args.h scenes.h
generation.o: generation.c types.h
graphics.o: graphics.c graphics.h types.h
scenes.o: scenes.c scenes.h graphics.h generation.h quadtree.h
quadtree.o: quadtree.c quadtree.h
velocite.o: velocite.c velocite.h
# Création des fichiers objets à partir des fichiers sources
$(BUILD_DIR)/%.o: $(SRC_DIR)/%.c
@mkdir --parents $(BUILD_DIR)
$(CC) $(INCLUDE) $(CFLAGS) -c $< -o $@
format: $(SOURCES) $(HEADERS)
clang-format -i --style=file $^
clang-tidy --fix $^
clean:
rm -f $(OBJS)
mrproper: clean
rm -f ./$(EXEC)
rm -f $(NOM_ZIP)
doc: $(SOURCES) $(HEADERS) Doxyfile
@mkdir --parents doc
doxygen
zip:
zip -FSr $(NOM_ZIP) $(CONTENU_ZIP)
rendu:
@$(MAKE) --no-print-directory rapport
@$(MAKE) --no-print-directory zip
.PHONY: clean all