-
Notifications
You must be signed in to change notification settings - Fork 6
Expand file tree
/
Copy pathmakefile
More file actions
executable file
·46 lines (44 loc) · 1.35 KB
/
makefile
File metadata and controls
executable file
·46 lines (44 loc) · 1.35 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
all: solver.p solver
sanitizer: solver.m solver.a
web: solver.js solver.wasm solver-no-simd.js solver-no-simd.wasm
OPTS=-std=c++17 -Wall -Wno-missing-profile
ifeq (sse4_2, $(shell grep -m1 -o sse4_2 /proc/cpuinfo))
OPTS+=-msse4.2
endif
ifeq (bmi1, $(shell grep -m1 -o bmi1 /proc/cpuinfo))
OPTS+=-mbmi
endif
ifeq (bmi2, $(shell grep -m1 -o bmi2 /proc/cpuinfo))
OPTS+=-mbmi2
endif
solver.p: solver.cc
rm -f solver.gcda
g++ $(OPTS) -O3 -fprofile-generate -o $@ $^
./$@ -if hard_deals/deal.8 | tail
mv solver.p-solver.gcda solver.gcda
solver: solver.cc
g++ $(OPTS) -O3 -fprofile-use -o $@ $^
./$@ -if hard_deals/deal.8 | tail
solver.g: solver.cc
g++ $(OPTS) -D_DEBUG -Og -g -o $@ $^
solver.m: solver.cc
clang++ -std=c++17 -O3 -fsanitize=memory -o $@ $^
./$@ -if hard_deals/deal.1
solver.a: solver.cc
clang++ -std=c++17 -O3 -fsanitize=address -o $@ $^
./$@ -if hard_deals/deal.1
solver.js: solver.cc
emcc -D_WEB -std=c++17 -O3 -msimd128 -msse4.2 -o $@ $^ \
--bind -s ALLOW_MEMORY_GROWTH
sed -i 's/"solver.wasm"/simd?"solver.wasm":"solver-no-simd.wasm"/' $@
solver-no-simd.js: solver.cc
emcc -D_WEB -std=c++17 -O3 -o $@ $^ \
--bind -s ALLOW_MEMORY_GROWTH
rm $@
web-test: web-test.cc solver.cc
g++ $(OPTS) -O3 -o $@ web-test.cc
./$@
clean:
rm -f solver.p solver solver.g solver.m solver.a \
solver.js solver.wasm solver-no-simd.js solver-no-simd.wasm \
web-test