-
Notifications
You must be signed in to change notification settings - Fork 1
/
Makefile
77 lines (58 loc) · 1017 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
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
##
## Practical aliases
##
BUILD = ./build
BIN = ./bin
CC = g++
MKDIR = mkdir -p
RM = rm -rf
SRCS_DIR = ./srcs
##
## code like a boss
##
CPPFLAGS += -W -Wextra -Wall -O2 -fmax-errors=3
##
## header location
##
CPPFLAGS += -I./srcs/
##
## c++ version
##
CPPFLAGS += -std=c++11
##
## libraries
##
LIBS = -lSDL2 -lSDL2_mixer -lSDL2_ttf -lm
##
## compilation options
##
PRGRM = MinimaTetris
SRCS = $(wildcard $(SRCS_DIR)/*.cpp)
OBJS = $(patsubst $(SRCS_DIR)/%.cpp,$(BUILD)/%.o,$(SRCS))
##
## compilation
##
all: dir $(BIN)/$(PRGRM)
dir:
$(MKDIR) $(BIN) $(BUILD)
$(BIN)/$(PRGRM): $(OBJS)
$(CC) $(OBJS) -o $@ $(LIBS)
$(OBJS): $(BUILD)/%.o : $(SRCS_DIR)/%.cpp
$(CC) $(CPPFLAGS) -c $< -o $@
install:
sudo apt-get install libsdl2-dev libsdl2-ttf-dev libsdl2-mixer-dev
$(MAKE) all
##
## Clean
##
RM_OBJS = $(BUILD)
RM_BIN = $(BIN)
clean:
$(RM) $(RM_OBJS)
fclean: clean
$(RM) $(RM_BIN)
re: fclean all
##
## avoid problems
##
.PHONY: all $(BIN)/$(PRGRM) clean dir fclean install $(OBJS) re