1- PKG_LIBS = $(shell $(R_HOME)/bin${R_ARCH_BIN}/Rscript.exe -e "Rcpp:::LdFlags()") $(LAPACK_LIBS) $(BLAS_LIBS) $(FLIBS)
1+ # BMR Makevars
2+
3+ SDIR = .
4+ BM_DIR = $(SDIR)/bmlib
5+ BM_SRC_DIR = $(BM_DIR)/src
6+ BM_HEADER_DIR = $(BM_DIR)/include
7+
8+ BMR_OPENMP=$(SHLIB_OPENMP_CXXFLAGS) -DARMA_USE_OPENMP
9+
10+ PKG_CPPFLAGS= $(CXX11STD) $(BMR_OPENMP) -DUSE_RCPP_ARMADILLO -DARMA_NO_DEBUG -DSTATSLIB_GO_INLINE -I./ -I./bmlib/include -I./bmlib/include/mcmc -I./bmlib/include/optim
11+ PKG_LIBS = $(LAPACK_LIBS) $(BLAS_LIBS) $(FLIBS)
12+
13+ CXX_STD=CXX11STD
14+
15+ OPTIM_SRC_DIR = $(BM_SRC_DIR)/optim
16+ MCMC_SRC_DIR = $(BM_SRC_DIR)/mcmc
17+
18+ # Optim and MCMC files
19+ SOURCES_MCMC= $(MCMC_SRC_DIR)/de.cpp $(MCMC_SRC_DIR)/rwmh.cpp
20+ OBJECTS_MCMC= $(SOURCES_MCMC:.cpp=.o)
21+
22+ SOURCES_OPTIM= $(OPTIM_SRC_DIR)/line_search/more_thuente.cpp $(OPTIM_SRC_DIR)/unconstrained/bfgs.cpp $(OPTIM_SRC_DIR)/unconstrained/cg.cpp $(OPTIM_SRC_DIR)/unconstrained/de.cpp $(OPTIM_SRC_DIR)/unconstrained/de_prmm.cpp $(OPTIM_SRC_DIR)/unconstrained/nm.cpp $(OPTIM_SRC_DIR)/unconstrained/pso.cpp $(OPTIM_SRC_DIR)/unconstrained/pso_dv.cpp
23+ OBJECTS_OPTIM= $(SOURCES_OPTIM:.cpp=.o)
24+
25+ # core BM files
26+ SOURCES_BM_VAR= $(BM_SRC_DIR)/var/bvarm.cpp $(BM_SRC_DIR)/var/bvars.cpp $(BM_SRC_DIR)/var/bvarw.cpp $(BM_SRC_DIR)/var/bvartvp.cpp $(BM_SRC_DIR)/var/cvar.cpp
27+ OBJECTS_BM_VAR= $(SOURCES_BM_VAR:.cpp=.o)
28+
29+ SOURCES_BM_FILT= $(BM_SRC_DIR)/filter/kalman.cpp $(BM_SRC_DIR)/filter/chandrasekhar.cpp
30+ OBJECTS_BM_FILT= $(SOURCES_BM_FILT:.cpp=.o)
31+
32+ SOURCES_BM_LRES= $(BM_SRC_DIR)/lres/gensys_solver.cpp $(BM_SRC_DIR)/lres/uhlig_solver.cpp
33+ OBJECTS_BM_LRES= $(SOURCES_BM_LRES:.cpp=.o)
34+
35+ OBJECTS_BM= $(OBJECTS_OPTIM) $(OBJECTS_MCMC) $(OBJECTS_BM_VAR) $(OBJECTS_BM_FILT) $(OBJECTS_BM_LRES)
36+
37+ SOURCES_MODULES= ./modules/bvarm_R.cpp ./modules/bvars_R.cpp ./modules/bvarw_R.cpp ./modules/bvartvp_R.cpp ./modules/cvar_R.cpp ./modules/gensys_R.cpp ./modules/uhlig_R.cpp ./modules/dsge_gensys_R.cpp ./modules/dsgevar_gensys_R.cpp
38+ OBJECTS_MODULES= $(SOURCES_MODULES:.cpp=.o)
39+
40+ OBJECTS_BMR=$(OBJECTS_BM) $(OBJECTS_MODULES)
41+
42+ all: $(SHLIB) libBMR$(SHLIB_EXT)
43+
44+ # some trickery to work around R's desire to link with gcc instead of g++
45+
46+ libBMR.dll: $(OBJECTS_TRAMERCPP)
47+ $(SHLIB_CXXLD) -shared -s -static-libstdc++ -static-libgcc -o BMR.dll $(OBJECTS_TRAMERCPP) $(SHLIB_CXXLDFLAGS) $(ALL_LIBS)
0 commit comments