-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmakefile
42 lines (33 loc) · 862 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
## Compiler Flags
CPP = $(COMPILER_PREF)g++ -mavx2 -mfma
CPPFLAGS = -O2 -fPIC -std=c++11
LOCAL_INC = -I./include
INCLUDE = $(LOCAL_INC)
############################################################
## Output Settings
TARGET_EXE_NAME = compile
EXE_OUT = $(TARGET_EXE_NAME)
SRCPATH = ./
CXX_SRC := $(wildcard $(SRCPATH)*.cpp)
SRC_CXX := $(notdir $(CXX_SRC))
CXX_OBJ := $(patsubst %.cpp,%.o,$(SRC_CXX))
OBJPATH = ./
OBJS := $(patsubst %,$(OBJPATH)%, $(CXX_OBJ))
############################################################
## Make Commands
.PHONY: exe
exe: mkdirs exe_t
.PHONY: mkdirs
mkdirs:
mkdir -p $(OBJPATH)
.PHONY: exe_t
exe_t: $(OBJS)
$(CPP) $^ -o $(EXE_OUT)
$(OBJPATH)%.o: $(SRCPATH)%.cpp
$(CPP) $(CPPFLAGS) $(INCLUDE) -c -o $@ $<
.PHONY: test
test:
./$(TARGET_EXE_NAME)
.PHONY: clean
clean:
rm $(OBJPATH)*.o $(TARGET_EXE_NAME) -f