-
Notifications
You must be signed in to change notification settings - Fork 32
Expand file tree
/
Copy pathMakefile
More file actions
68 lines (55 loc) · 1.81 KB
/
Makefile
File metadata and controls
68 lines (55 loc) · 1.81 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
EXE ?= clockwork
ARCH ?= native
PARALLEL_BUILD ?= yes
ifeq ($(origin CXX), default)
CXX = clang++
endif
ifdef MSYSTEM
SUFFIX := .exe
SUFFIX :=
COPY := cp
RM := rm -f
RM_DIR := rm -rf
MK_PATH = $(1)
else
ifeq ($(OS), Windows_NT)
SUFFIX := .exe
COPY := copy
RM := del
RM_DIR := rd /s /q
MK_PATH = $(subst /,\,$(1))
else
SUFFIX :=
COPY := cp
RM := rm -f
RM_DIR := rm -rf
MK_PATH = $(1)
endif
endif
CMAKE_FLAGS := -DCMAKE_CXX_COMPILER=$(CXX) -DCLOCKWORK_MARCH_TARGET=$(ARCH)
ifeq ($(PARALLEL_BUILD),yes)
CMAKE_BUILD_FLAGS := -j
endif
.PHONY: all release debug evaltune test clean format
all: release
release:
cmake -DCMAKE_BUILD_TYPE=Release $(CMAKE_FLAGS) -B build-release -S . && cmake --build build-release $(CMAKE_BUILD_FLAGS)
$(COPY) $(call MK_PATH,"build-release/clockwork$(SUFFIX)") $(EXE)$(SUFFIX)
debug:
cmake -DCMAKE_BUILD_TYPE=Debug $(CMAKE_FLAGS) -B build-debug -S . && cmake --build build-debug $(CMAKE_BUILD_FLAGS)
$(COPY) $(call MK_PATH,"build-debug/clockwork$(SUFFIX)") $(EXE)$(SUFFIX)
evaltune:
cmake -DCMAKE_BUILD_TYPE=Release $(CMAKE_FLAGS) -DCLOCKWORK_ENABLE_EVALTUNE=ON -B build-evaltune -S . && cmake --build build-evaltune $(CMAKE_BUILD_FLAGS)
$(COPY) $(call MK_PATH,"build-evaltune/clockwork-evaltune$(SUFFIX)") $(EXE)-evaltune$(SUFFIX)
evaltune-debug:
cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo $(CMAKE_FLAGS) -DCLOCKWORK_ENABLE_EVALTUNE=ON -B build-evaltune-debug -S . && cmake --build build-evaltune-debug $(CMAKE_BUILD_FLAGS)
$(COPY) $(call MK_PATH,"build-evaltune-debug/clockwork-evaltune$(SUFFIX)") $(EXE)-evaltune$(SUFFIX)
bench: release
./$(EXE)$(SUFFIX) bench
test: release
ctest --test-dir build-release
clean:
-$(RM_DIR) build-debug build-release build-evaltune build-evaltune-debug
-$(RM) $(EXE)$(SUFFIX)
format:
./scripts/auto_format.sh