-
Notifications
You must be signed in to change notification settings - Fork 5
Expand file tree
/
Copy pathmakefile
More file actions
69 lines (43 loc) · 1.17 KB
/
makefile
File metadata and controls
69 lines (43 loc) · 1.17 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
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
CXX ?= g++
COMMON_FLAGS += $(EXTRA) -O2\
-Iinclude \
-std=c++2a \
-fPIE \
-Wall -Wextra -Werror \
LD_FLAGS += --static -lstdc++fs
SRC_DIR = src
BUILD_DIR = build
TEST_SRC = test_src
TEST_BUILD = test_build
INSTALL_DIR = /usr/local/bin
BIN = hc
TEST_SRCS_CXX = $(wildcard $(TEST_SRC)/*.cpp)
TEST_BIN = $(patsubst $(TEST_SRC)/%.cpp,$(TEST_BUILD)/%.o,$(TEST_SRCS_CXX))
SRCS_CXX = $(wildcard $(SRC_DIR)/*.cpp)
SRCS_HXX = $(patsubst %.cpp,%.hpp,$(SRCS_CXX))
OBJ = $(patsubst $(SRC_DIR)/%.cpp,$(BUILD_DIR)/%.o,$(SRCS_CXX))
LIBS =
.PHONY:all clean install testbin
all:$(BUILD_DIR) $(BIN)
testbin:$(TEST_BUILD) $(TEST_BIN)
$(TEST_BUILD):
mkdir $@
$(BUILD_DIR):
mkdir $@
$(BIN):$(OBJ) $(SRCS_CXX) $(SRCS_HXX)
$(CXX) -o $(BIN) $(OBJ) $(LIBS) $(LD_FLAGS)
$(TEST_BUILD)/%.o:$(TEST_SRC)/%.cpp
$(CXX) $(COMMON_FLAGS) $(CPPFLAGS) $(CFLAGS) $< -o $@
$(BUILD_DIR)/%.o:$(SRC_DIR)/%.cpp $(SRC_DIR)/%.hpp $(SRCS_HXX)
$(CXX) $(COMMON_FLAGS) $(CPPFLAGS) $(CFLAGS) -c $< -o $@
$(SRC_DIR)/%.cpp:$(SRC_DIR)/%.hpp
install:
cp $(BIN) $(INSTALL_DIR)/$(BIN)
clean :
-rm $(BUILD_DIR) -rf
-rm $(BIN) -f
-rm $(TEST_BUILD) -rf
debug:
make EXTRA=-DDEBUG
test:
nohup ./hc -bin /usr/bin/ls