-
Notifications
You must be signed in to change notification settings - Fork 9
/
Copy pathMakefile
164 lines (119 loc) · 4.13 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
152
153
154
155
156
157
158
159
160
161
162
163
.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
ifndef NOGPU
all:
$(MAKE) all_cpu_basic
$(MAKE) all_cpu_x86_v2
$(MAKE) all_cpu_x86_v3
$(MAKE) all_cpu_x86_v4
$(MAKE) all_nv
$(MAKE) all_combined
$(MAKE) test_binaries
clean:
-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
-. ./setup_nv_h5.sh; export BUILD_VARIANT=nv; cd src && $(MAKE) clean
-cd combined && $(MAKE) clean
clean_install:
-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
-. ./setup_nv_h5.sh; export BUILD_VARIANT=nv; cd src && $(MAKE) clean_install
-cd combined && $(MAKE) clean_install
else
all:
$(MAKE) all_cpu_basic
$(MAKE) all_combined
$(MAKE) test_binaries
clean:
-cd test && $(MAKE) clean
-export BUILD_VARIANT=cpu_basic; cd src && $(MAKE) clean
-cd combined && $(MAKE) clean
clean_install:
-export BUILD_VARIANT=cpu_basic; cd src && $(MAKE) clean_install
-cd combined && $(MAKE) clean_install
endif
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_nv:
$(MAKE) api_nv
$(MAKE) install_nv
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_nv:
. ./setup_nv_h5.sh; export BUILD_VARIANT=nv ; 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_nv:
. ./setup_nv_h5.sh; export BUILD_VARIANT=nv ; 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