Commit 937c076 1 parent 32e3409 commit 937c076 Copy full SHA for 937c076
File tree 1 file changed +17
-10
lines changed
1 file changed +17
-10
lines changed Original file line number Diff line number Diff line change 1
1
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 )
3
6
4
7
SRC_DIR =src
5
8
HDR_DIR =include
6
9
OBJ_DIR =obj
7
10
8
- # source and object files
9
11
SRC_FILES =$(wildcard $(SRC_DIR ) /* .cpp)
10
12
OBJ_FILES =$(patsubst $(SRC_DIR ) /% .cpp, $(OBJ_DIR ) /% .o, $(SRC_FILES ) )
11
13
12
14
BIN_FILE =teapot
13
15
14
- all : $( OBJ_DIR ) $( BIN_FILE )
16
+ .PHONY : all debug clean
15
17
16
- $( BIN_FILE ) : $( OBJ_FILES )
17
- $( CC ) $(CC_FLAGS ) $^ -I $( HDR_DIR ) -o $@
18
+ all : CC_FLAGS += $( OPT_FLAGS )
19
+ all : $(BIN_FILE )
18
20
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 $@
21
29
22
30
$(OBJ_DIR ) :
23
- mkdir $@
31
+ mkdir -p $@
24
32
25
33
clean :
26
- rm -rf $(BIN_FILE ) $(OBJ_DIR ) teapot
27
-
34
+ rm -rf $(BIN_FILE ) $(OBJ_DIR )
You can’t perform that action at this time.
0 commit comments