Skip to content

Commit 937c076

Browse files
committed
refactor: Makefile
1 parent 32e3409 commit 937c076

File tree

1 file changed

+17
-10
lines changed

1 file changed

+17
-10
lines changed

Makefile

+17-10
Original file line numberDiff line numberDiff line change
@@ -1,27 +1,34 @@
11
CC=g++
2-
CC_FLAGS=-g -Wall -Wpedantic -Wextra -std=c++20
2+
STD_FLAGS=-Wall -Wpedantic -Wextra -std=c++20
3+
OPT_FLAGS=-O3 -march=native -flto -funroll-loops
4+
DEBUG_FLAGS=-g -Og -march=native -flto
5+
CC_FLAGS=$(STD_FLAGS) $(OPT_FLAGS)
36

47
SRC_DIR=src
58
HDR_DIR=include
69
OBJ_DIR=obj
710

8-
# source and object files
911
SRC_FILES=$(wildcard $(SRC_DIR)/*.cpp)
1012
OBJ_FILES=$(patsubst $(SRC_DIR)/%.cpp, $(OBJ_DIR)/%.o, $(SRC_FILES))
1113

1214
BIN_FILE=teapot
1315

14-
all: $(OBJ_DIR) $(BIN_FILE)
16+
.PHONY: all debug clean
1517

16-
$(BIN_FILE): $(OBJ_FILES)
17-
$(CC) $(CC_FLAGS) $^ -I$(HDR_DIR) -o $@
18+
all: CC_FLAGS += $(OPT_FLAGS)
19+
all: $(BIN_FILE)
1820

19-
$(OBJ_DIR)/%.o: $(SRC_DIR)/%.cpp
20-
$(CC) $(CC_FLAGS) -c $^ -I$(HDR_DIR) -o $@
21+
debug: CC_FLAGS=$(STD_FLAGS) $(DEBUG_FLAGS)
22+
debug: $(BIN_FILE)
23+
24+
$(BIN_FILE): $(OBJ_DIR) $(OBJ_FILES)
25+
$(CC) $(CC_FLAGS) $(OBJ_FILES) -I$(HDR_DIR) -o $@
26+
27+
$(OBJ_DIR)/%.o: $(SRC_DIR)/%.cpp | $(OBJ_DIR)
28+
$(CC) $(CC_FLAGS) -c $< -I$(HDR_DIR) -o $@
2129

2230
$(OBJ_DIR):
23-
mkdir $@
31+
mkdir -p $@
2432

2533
clean:
26-
rm -rf $(BIN_FILE) $(OBJ_DIR) teapot
27-
34+
rm -rf $(BIN_FILE) $(OBJ_DIR)

0 commit comments

Comments
 (0)