-
Notifications
You must be signed in to change notification settings - Fork 7
/
Copy pathMakefile
56 lines (43 loc) · 1.02 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
CXX = g++
CXXFLAGS = -Wall -fPIC -O3 -msse2
ifeq ($(no_omp), 1)
CXXFLAGS += -DDISABLE_OPENMP
else
CXXFLAGS += -fopenmp
endif
LDFLAGS =
DIR_SRC = src
DIR_BUILD = build
DIR_LIB = lib
SRC = $(wildcard $(DIR_SRC)/*.cpp $(DIR_SRC)/*/*.cpp)
OBJ = $(patsubst $(DIR_SRC)%.cpp, $(DIR_BUILD)%.o, $(SRC))
LOTER_DYLIB = libloter.so
.PHONY: clean Rpack Rbuild Rcheck
all: $(DIR_LIB)/$(LOTER_DYLIB)
$(DIR_LIB)/$(LOTER_DYLIB): $(OBJ)
@mkdir -p $(@D)
$(CXX) $(CXXFLAGS) -shared -o $@ $^ $(LDFLAGS)
$(DIR_BUILD)/%.o: $(DIR_SRC)/%.cpp
@mkdir -p $(@D)
$(CXX) -c $(CXXFLAGS) $< -o $@
clean:
rm -rf lib build loter R-package/src/src_libloter
cleanR:
rm -rf loter.Rcheck
rm -f loter*.tar.gz
cleanall: clean cleanR
Rpack:
$(MAKE) clean
rm -rf R-package/src/src_libloter
rm -f R-package/src/loter.so
mkdir R-package/src/src_libloter
cp -R src/* R-package/src/src_libloter
mkdir loter
cp -R R-package/* loter
Rbuild:
$(MAKE) Rpack
R CMD build --no-build-vignettes loter
rm -rf loter
Rcheck:
$(MAKE) Rbuild
R CMD check loter*.tar.gz