-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathMakefile
45 lines (32 loc) · 1008 Bytes
/
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
# Emplacements de base pour les bibliothèques
BASE_PATH = /opt/homebrew/opt
GLEW_PATH = $(BASE_PATH)/glew
GLFW_PATH = $(BASE_PATH)/glfw
GLM_PATH = $(BASE_PATH)/glm
# Compilateur
CC = g++
# Drapeaux du compilateur
CFLAGS = -Wall -std=c++11
# Emplacement des en-têtes
INCLUDES = -I$(GLEW_PATH)/include -I$(GLFW_PATH)/include -I$(GLM_PATH)/include
# Emplacement des bibliothèques
LIBS = -L$(GLEW_PATH)/lib -L$(GLFW_PATH)/lib
# Liens des bibliothèques
LFLAGS = -lglfw -lGLEW -framework OpenGL
# Fichiers source
SRCS = src/main.cpp src/Camera.cpp src/Renderer.cpp src/Shader.cpp
# Fichiers objets, placés dans le dossier build
OBJS = $(SRCS:src/%.cpp=build/%.o)
# Nom du programme
TARGET = build/myOpenGLApp
# Règle principale
all: $(TARGET)
$(TARGET): $(OBJS)
$(CC) $(CFLAGS) $(INCLUDES) -o $(TARGET) $(OBJS) $(LIBS) $(LFLAGS)
# Créer le dossier build si nécessaire
build/%.o: src/%.cpp
mkdir -p build
$(CC) $(CFLAGS) $(INCLUDES) -c $< -o $@
# Règle pour nettoyer
clean:
$(RM) -r build