-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathmakefile
More file actions
74 lines (53 loc) · 1.53 KB
/
Copy pathmakefile
File metadata and controls
74 lines (53 loc) · 1.53 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
70
71
72
73
74
CXX ?= g++
EXE ?= iris
NET ?= lavender
NET_FILE := $(NET).bin
CXXFLAGS += -DNNUE=\"$(NET_FILE)\"
ifeq ($(OS), Windows_NT)
SUFFIX := .exe
STATIC := -lstdc++fs -static -static-libgcc
else
SUFFIX :=
STATIC :=
endif
ifeq ($(PROF), true)
CXXPROF += -pg -no-pie
else
CXXPROF += -s
endif
ifeq ($(DEBUG), true)
CXXFLAGS += -fdiagnostics-color=always -DUNICODE -std=c++20 -Wall -pthread -Og -g -no-pie
else
CXXFLAGS += -fdiagnostics-color=always -DUNICODE -DNDEBUG -std=c++20 -Wall -O3 -pthread -flto $(CXXPROF)
endif
ifeq ($(TUNE), true)
CXXFLAGS += -DTUNE
endif
ifeq ($(PEXT), true)
CXXFLAGS += -DPEXT
endif
SRC := src/chess/*.cpp src/engine/*.cpp src/*.cpp
EXE := $(EXE)$(SUFFIX)
.PHONY: all build loadnet iris v1 v2 v3 release datagen cleannet clean
all: iris
build:
@$(CXX) $(CXXFLAGS) -march=native $(SRC) $(STATIC) -o $(EXE)
iris: loadnet build cleannet
v1:
@$(CXX) $(CXXFLAGS) -march=x86-64 $(SRC) $(STATIC) -o iris_x86-64-v1$(SUFFIX)
v2:
@$(CXX) $(CXXFLAGS) -march=x86-64-v2 $(SRC) $(STATIC) -o iris_x86-64-v2$(SUFFIX)
v3:
@$(CXX) $(CXXFLAGS) -march=x86-64-v3 -DPEXT $(SRC) $(STATIC) -o iris_x86-64-v3$(SUFFIX)
release: loadnet v1 v2 v3 cleannet
datagen: loadnet
@mkdir -p bin
@$(CXX) $(CXXFLAGS) -DDATAGEN -march=native $(SRC) $(STATIC) -o bin/datagen$(SUFFIX)
@make cleannet
loadnet:
@curl -sOL https://github.com/citrus610/iris-net/releases/download/$(NET)/$(NET_FILE);
cleannet:
@rm -rf $(NET_FILE)
clean: cleannet
@rm -rf $(EXE)
.DEFAULT_GOAL := iris