-
Notifications
You must be signed in to change notification settings - Fork 3
Expand file tree
/
Copy pathmakefile.linux
More file actions
50 lines (38 loc) · 1.07 KB
/
makefile.linux
File metadata and controls
50 lines (38 loc) · 1.07 KB
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
LIBS = -lSDL3 -lGL -lGLU
OWN_PATHS = -I.
HEADERS = $(OWN_PATHS) -I/usr/local/include
DEFINES =
CFLAGS = -std=c++20 -Wall -Wextra -O3 -ggdb
NAME = opengw
OBJDIR = obj
ALL_SRC = $(wildcard *.cpp)
SRC_FILES = $(notdir $(ALL_SRC))
OBJ_FILES = $(SRC_FILES:.cpp=.o)
OBJS = $(addprefix $(OBJDIR)/, $(OBJ_FILES))
DEPS = $(OBJS:.o=.d)
CLANG_ANALYZE = #--analyze
CLANG_THREAD = #-fsanitize=thread
CLANG_ADDRESS = #-fsanitize=address
CLANG_MEMORY = #-fsanitize=memory
CLANG_UNDEFINED = #-fsanitize=undefined
CLANG_FLAGS= $(CLANG_ANALYZE) $(CLANG_THREAD) $(CLANG_ADDRESS) $(CLANG_MEMORY) $(CLANG_UNDEFINED)
COMPILER = g++
#COMPILER = clang++
all: $(NAME)
./$(NAME)
# dependencies
$(OBJDIR)/%.d : %.cpp | $(OBJDIR)
$(COMPILER) -MM -MP -MT $(@:.d=.o) -o $@ $< $(CFLAGS) $(DEFINES) $(HEADERS)
# compiling
$(OBJDIR)/%.o : %.cpp
$(COMPILER) -o $@ -c $< $(CFLAGS) $(CLANG_FLAGS) $(DEFINES) $(HEADERS)
clean:
rm $(OBJDIR)/*
$(NAME): $(OBJS)
$(COMPILER) -o $@ $(OBJS) $(LIBS) $(CLANG_FLAGS)
$(OBJDIR):
mkdir -p $@
# Load .d files
ifneq ($(MAKECMDGOALS),clean)
-include $(DEPS)
endif