-
Notifications
You must be signed in to change notification settings - Fork 15
/
Copy pathMakefile
executable file
·180 lines (145 loc) · 5.47 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
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
### NOTE: BOOM is primarily built using 'bazel' instead of 'make'. This
### Makefile could build and install BOOM as of January 2018, but it may be out
### of date.
all: libboom.a
# When compiling remotely (e.g. on CRAN's winbuilder) flags to be
# passed to make can be specified here.
# -k: keep going
# -j 8: use 8 threads
# MAKEFLAGS=" -k -j 8 "
CFLAGS = -I. -I./Bmath -I./math/cephes -DADD_ -O3
CPPFLAGS = -I. -I./Bmath -I./math/cephes -std=c++11 -DADD_ -O3
############################################################################
# Begin the list of all the BOOM source files.
TOP_HDRS := $(wildcard *.hpp)
BART_SRCS :=
# BART_SRCS := $(wildcard Models/Bart/*.cpp) \
# $(wildcard Models/Bart/PosteriorSamplers/*.cpp)
BART_HDRS :=
DISTRIBUTION_SRCS := $(wildcard distributions/*.cpp)
DISTRIBUTION_HDRS := distributions.hpp $(wildcard distributions/*.hpp)
GLM_SRCS := $(wildcard Models/Glm/*.cpp Models/Glm/PosteriorSamplers/*.cpp)
GLM_HDRS := $(wildcard Models/Glm/*.hpp Models/Glm/PosteriorSamplers/*.hpp)
HIERARCHICAL_SRCS := $(wildcard Models/Hierarchical/*.cpp) \
$(wildcard Models/Hierarchical/PosteriorSamplers/*.cpp)
HIERARCHICAL_HDRS := $(wildcard Models/Hierarchical/*.hpp) \
$(wildcard Models/Hierarchical/PosteriorSamplers/*.hpp)
HMM_SRCS := $(wildcard Models/HMM/*.cpp) \
$(wildcard Models/HMM/Clickstream/*.cpp) \
$(wildcard Models/HMM/Clickstream/PosteriorSamplers/*.cpp) \
$(wildcard Models/HMM/PosteriorSamplers/*.cpp)
HMM_HDRS := $(wildcard Models/HMM/*.hpp) \
$(wildcard Models/HMM/Clickstream/*.hpp) \
$(wildcard Models/HMM/Clickstream/PosteriorSamplers/*.hpp) \
$(wildcard Models/HMM/PosteriorSamplers/*.hpp)
R_INTERFACE_SRCS := $(wildcard *.cpp)
IRT_SRCS := $(wildcard Models/IRT/*.cpp)
IRT_HDRS := $(wildcard Models/IRT/*.hpp)
LINALG_SRCS := $(wildcard LinAlg/*.cpp)
LINALG_HDRS := $(wildcard LinAlg/*.hpp)
MATH_SRCS := $(wildcard math/cephes/*.cpp) \
$(wildcard math/*.cpp)
MATH_HDRS := $(wildcard math/cephes/*.hpp) \
$(wildcard math/*.hpp)
MIXTURE_SRCS := $(wildcard Models/Mixtures/*.cpp) \
$(wildcard Models/Mixtures/PosteriorSamplers/*.cpp)
MIXTURE_HDRS := $(wildcard Models/Mixtures/*.hpp) \
$(wildcard Models/Mixtures/PosteriorSamplers/*.hpp)
MODELS_SRCS := $(wildcard Models/*.cpp Models/Policies/*.cpp) \
$(wildcard Models/PosteriorSamplers/*.cpp)
MODELS_HDRS := $(wildcard Models/*.hpp Models/Policies/*.hpp) \
$(wildcard Models/PosteriorSamplers/*.hpp)
NUMOPT_SRCS := $(wildcard numopt/*.cpp)
NUMOPT_HDRS := $(wildcard numopt/*.hpp)
POINTPROCESS_SRCS := $(wildcard Models/PointProcess/*.cpp) \
$(wildcard Models/PointProcess/PosteriorSamplers/*.cpp)
POINTPROCESS_HDRS := $(wildcard Models/PointProcess/*.hpp) \
$(wildcard Models/PointProcess/PosteriorSamplers/*.hpp)
RMATH_SRCS := $(wildcard Bmath/*.cpp)
RMATH_HDRS := $(wildcard Bmath/*.hpp)
SAMPLERS_SRCS := $(wildcard Samplers/*.cpp Samplers/Gilks/*.cpp)
SAMPLERS_HDRS := $(wildcard Samplers/*.hpp Samplers/Gilks/*.hpp)
STATESPACE_SRCS := $(wildcard Models/StateSpace/*.cpp) \
$(wildcard Models/StateSpace/Filters/*.cpp) \
$(wildcard Models/StateSpace/PosteriorSamplers/*.cpp) \
$(wildcard Models/StateSpace/StateModels/*.cpp) \
$(wildcard Models/StateSpace/StateModels/PosteriorSamplers/*.cpp)
STATESPACE_HDRS := $(wildcard Models/StateSpace/*.hpp) \
$(wildcard Models/StateSpace/Filters/*.hpp) \
$(wildcard Models/StateSpace/PosteriorSamplers/*.hpp) \
$(wildcard Models/StateSpace/StateModels/*.hpp) \
$(wildcard Models/StateSpace/StateModels/PosteriorSamplers/*.hpp)
STATS_SRCS := $(wildcard stats/*.cpp)
STATS_HDRS := $(wildcard stats/*.hpp)
TARGETFUN_SRCS := $(wildcard TargetFun/*.cpp)
TARGETFUN_HDRS := $(wildcard TargetFun/*.hpp)
TIMESERIES_SRCS := $(wildcard Models/TimeSeries/*.cpp) \
$(wildcard Models/TimeSeries/PosteriorSamplers/*.cpp)
TIMESERIES_HDRS := $(wildcard Models/TimeSeries/*.hpp) \
$(wildcard Models/TimeSeries/PosteriorSamplers/*.hpp)
UTIL_SRCS := $(wildcard cpputil/*.cpp)
UTIL_HDRS := $(wildcard cpputil/*.hpp)
CXX_SRCS = ${BART_SRCS} \
${DISTRIBUTION_SRCS} \
${GLM_SRCS} \
${HIERARCHICAL_SRCS} \
${HMM_SRCS} \
${IRT_SRCS} \
${LINALG_SRCS} \
${MATH_SRCS} \
${MIXTURE_SRCS} \
${MODELS_SRCS} \
${NUMOPT_SRCS} \
${POINTPROCESS_SRCS} \
${R_INTERFACE_SRCS} \
${RMATH_SRCS} \
${SAMPLERS_SRCS} \
${STATS_SRCS} \
${STATESPACE_SRCS} \
${TARGETFUN_SRCS} \
${TIMESERIES_SRCS} \
${UTIL_SRCS}
CXX_HDRS = ${TOP_HDRS} \
${BART_HDRS} \
${DISTRIBUTION_HDRS} \
${GLM_HDRS} \
${HIERARCHICAL_HDRS} \
${HMM_HDRS} \
${IRT_HDRS} \
${LINALG_HDRS} \
${MATH_HDRS} \
${MIXTURE_HDRS} \
${MODELS_HDRS} \
${NUMOPT_HDRS} \
${POINTPROCESS_HDRS} \
${R_INTERFACE_HDRS} \
${RMATH_HDRS} \
${SAMPLERS_HDRS} \
${STATS_HDRS} \
${STATESPACE_HDRS} \
${TARGETFUN_HDRS} \
${TIMESERIES_HDRS} \
${UTIL_HDRS} \
CXX_STD = CXX11
OPT_BUILD_DIR := opt
OBJECTS = ${CXX_SRCS:.cpp=.o}
HDRS = ${CXX_HDRS}
# End list of BOOM source files
############################################################################
libboom.a: ${OBJECTS}
${AR} rcs $@ $^
.PHONY: install
install: libboom.a
install libboom.a /usr/local/lib
rm -rf /usr/local/include/BOOM
mkdir -p /usr/local/include/BOOM
./install/install_headers.py $(HDRS) /usr/local/include/BOOM
./install/install_headers.py `find ./Eigen -name "*" | gsed 's|\.\/||g' | awk 'NR > 1{print}'` /usr/local/include/BOOM
.PHONY: clean
clean:
rm ${OBJECTS} libboom.a
## Remove all build objects and uninstall the library.
.PHONY: distclean
distclean: clean
rm -f /usr/local/lib/libboom.a
rm -rf /usr/local/include/BOOM