-
Notifications
You must be signed in to change notification settings - Fork 9
/
Copy pathMakefile
152 lines (110 loc) · 3.73 KB
/
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
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
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
.PHONY: test clean all clean_install
# Note: This Makefile will NOT properly work with the -j option
PLATFORM := $(shell uname -s)
COMPILER := $(shell ($(CXX) -v 2>&1) | tr A-Z a-z )
ifeq ($(PLATFORM),Darwin)
# only one optimization level and no GPU support for MacOS
all:
$(MAKE) api
$(MAKE) install
$(MAKE) main
$(MAKE) install_main
$(MAKE) test_binaries
clean:
-cd test && $(MAKE) clean
-cd src && $(MAKE) clean
clean_install:
-cd src && $(MAKE) clean_install
else
# Linux with several optimization levels and with optional GPU support
all:
$(MAKE) all_cpu
$(MAKE) all_acc
$(MAKE) test_binaries
clean:
$(MAKE) clean_cpu
clean_install:
$(MAKE) clean_install_cpu
all_cpu:
$(MAKE) all_cpu_basic
$(MAKE) all_cpu_x86_v2
$(MAKE) all_cpu_x86_v3
$(MAKE) all_cpu_x86_v4
$(MAKE) all_combined
clean_cpu:
-cd test && $(MAKE) clean
-export BUILD_VARIANT=cpu_basic; cd src && $(MAKE) clean
-export BUILD_VARIANT=cpu_x86_v2; cd src && $(MAKE) clean
-export BUILD_VARIANT=cpu_x86_v3; cd src && $(MAKE) clean
-export BUILD_VARIANT=cpu_x86_v4; cd src && $(MAKE) clean
-cd combined && $(MAKE) clean
clean_install_cpu:
-export BUILD_VARIANT=cpu_basic; cd src && $(MAKE) clean_install
-export BUILD_VARIANT=cpu_x86_v2; cd src && $(MAKE) clean_install
-export BUILD_VARIANT=cpu_x86_v3; cd src && $(MAKE) clean_install
-export BUILD_VARIANT=cpu_x86_v4; cd src && $(MAKE) clean_install
-export BUILD_VARIANT=nv; cd src && $(MAKE) clean_install
-cd combined && $(MAKE) clean_install
all_cpu_basic:
$(MAKE) api_cpu_basic
$(MAKE) install_cpu_basic
all_cpu_x86_v2:
$(MAKE) api_cpu_x86_v2
$(MAKE) install_cpu_x86_v2
all_cpu_x86_v3:
$(MAKE) api_cpu_x86_v3
$(MAKE) install_cpu_x86_v3
all_cpu_x86_v4:
$(MAKE) api_cpu_x86_v4
$(MAKE) install_cpu_x86_v4
all_acc:
$(MAKE) api_acc
$(MAKE) install_lib_acc
all_combined:
$(MAKE) api_combined
$(MAKE) install_combined
$(MAKE) main
$(MAKE) install_main
endif
########### api
api:
cd src && $(MAKE) clean && $(MAKE) api
api_cpu_basic:
export BUILD_VARIANT=cpu_basic ; export BUILD_FULL_OPTIMIZATION=False ; cd src && $(MAKE) clean && $(MAKE) api
api_cpu_x86_v2:
export BUILD_VARIANT=cpu_x86_v2 ; export BUILD_FULL_OPTIMIZATION=x86-64-v2 ; export BUILD_TUNE_OPTIMIZATION=core2; cd src && $(MAKE) clean && $(MAKE) api
api_cpu_x86_v3:
export BUILD_VARIANT=cpu_x86_v3 ; export BUILD_FULL_OPTIMIZATION=x86-64-v3 ; export BUILD_TUNE_OPTIMIZATION=znver3; cd src && $(MAKE) clean && $(MAKE) api
api_cpu_x86_v4:
export BUILD_VARIANT=cpu_x86_v4 ; export BUILD_FULL_OPTIMIZATION=x86-64-v4 ; export BUILD_TUNE_OPTIMIZATION=znver4 ;cd src && $(MAKE) clean && $(MAKE) api
api_acc:
export BUILD_FULL_OPTIMIZATION=False ; cd src && $(MAKE) clean && $(MAKE) api_acc
api_combined:
cd combined && $(MAKE) clean && $(MAKE) api
########### main
main:
cd src && $(MAKE) clean && $(MAKE) main
install_main:
cd src && $(MAKE) install
########### install
install:
cd src && $(MAKE) install_lib
install_cpu_basic:
export BUILD_VARIANT=cpu_basic ; export BUILD_FULL_OPTIMIZATION=False ; cd src && $(MAKE) install_lib
install_cpu_x86_v2:
export BUILD_VARIANT=cpu_x86_v2 ; export BUILD_FULL_OPTIMIZATION=x86-64-v2 ; cd src && $(MAKE) install_lib
install_cpu_x86_v3:
export BUILD_VARIANT=cpu_x86_v3 ; export BUILD_FULL_OPTIMIZATION=x86-64-v3 ; cd src && $(MAKE) install_lib
install_cpu_x86_v4:
export BUILD_VARIANT=cpu_x86_v4 ; export BUILD_FULL_OPTIMIZATION=x86-64-v4 ; cd src && $(MAKE) install_lib
install_lib_acc:
export BUILD_FULL_OPTIMIZATION=False ; cd src && $(MAKE) install_lib_acc
install_combined:
cd combined && $(MAKE) install
########### test
test_binaries:
cd src && $(MAKE) clean && $(MAKE) test_binaries
cd test && $(MAKE) clean && $(MAKE) test_binaries
test:
cd src && $(MAKE) test
cd test && $(MAKE) test