@@ -6,34 +6,26 @@ REPO_PATH_MAC = bin/macosx/contrib/$(R_VERSION)
6
6
TMP_BUILD_DIR = tmp_build
7
7
ifneq ($(OS ) ,Windows_NT)
8
8
OS := $(shell uname)
9
- UNAME_P := $(shell uname -p)
9
+ UNAME_P := $(shell uname -p | sed 's/unknown/x86_64/' )
10
10
else
11
11
# For windows NT the shell is odd. Cygwin 'shell uname' returns CYGWIN_NT-6.1-WOW64
12
12
# which is not really what we want. The normal CMD shell does something else.
13
13
# So don't ask for 'uname' if we already got Windows_NT
14
14
endif
15
15
16
- H2O_WRAPPER_SOURCE_FILE = h2o_$(PROJECT_VERSION ) .tar.gz
17
- H2O_WRAPPER_LINUX_FILE = h2o_$(PROJECT_VERSION ) _R_$(UNAME_P ) -pc-linux-gnu.tar.gz
18
- H2O_WRAPPER_MAC_FILE = h2o_$(PROJECT_VERSION ) .tgz
19
- H2O_WRAPPER_WINDOWS_FILE = h2o_$(PROJECT_VERSION ) .zip
20
-
21
- H2O_RCLIENT_SOURCE_FILE = h2oRClient_$(PROJECT_VERSION ) .tar.gz
22
- H2O_RCLIENT_LINUX_FILE = h2oRClient_$(PROJECT_VERSION ) _R_$(UNAME_P ) -pc-linux-gnu.tar.gz
23
- H2O_RCLIENT_MAC_FILE = h2oRClient_$(PROJECT_VERSION ) .tgz
24
- H2O_RCLIENT_WINDOWS_FILE = h2oRClient_$(PROJECT_VERSION ) .zip
16
+ H2O_R_SOURCE_FILE = h2o_$(PROJECT_VERSION ) .tar.gz
17
+ H2O_R_LINUX_FILE = h2o_$(PROJECT_VERSION ) _R_$(UNAME_P ) -pc-linux-gnu.tar.gz
18
+ H2O_R_MAC_FILE = h2o_$(PROJECT_VERSION ) .tgz
19
+ H2O_R_WINDOWS_FILE = h2o_$(PROJECT_VERSION ) .zip
25
20
26
21
ifeq ($(OS ) ,Linux)
27
- H2O_RCLIENT_PKG_FILE = $(H2O_RCLIENT_LINUX_FILE )
28
- H2O_WRAPPER_PKG_FILE = $(H2O_WRAPPER_LINUX_FILE )
22
+ H2O_R_PKG_FILE = $(H2O_R_LINUX_FILE )
29
23
endif
30
24
ifeq ($(OS ) ,Darwin)
31
- H2O_RCLIENT_PKG_FILE = $(H2O_RCLIENT_MAC_FILE )
32
- H2O_WRAPPER_PKG_FILE = $(H2O_WRAPPER_MAC_FILE )
25
+ H2O_R_PKG_FILE = $(H2O_R_MAC_FILE )
33
26
endif
34
27
ifeq ($(OS ) ,Windows_NT)
35
- H2O_RCLIENT_PKG_FILE = $(H2O_RCLIENT_WINDOWS_FILE )
36
- H2O_WRAPPER_PKG_FILE = $(H2O_WRAPPER_WINDOWS_FILE )
28
+ H2O_R_PKG_FILE = $(H2O_R_WINDOWS_FILE )
37
29
endif
38
30
39
31
# Do a best-effort attempt to see if the R user has pdflatex installed
@@ -42,16 +34,24 @@ endif
42
34
# But use the '-' to ignore failures and continue the build even if it does fail.
43
35
PDFLATEX =$(shell which pdflatex)
44
36
45
- build_outer :
37
+ build_rh2o :
46
38
sed ' s/SUBST_PROJECT_VERSION/$(PROJECT_VERSION)/' h2o-DESCRIPTION.template > h2o-package/DESCRIPTION
47
39
sed ' s/SUBST_PROJECT_VERSION/$(PROJECT_VERSION)/' h2o-package.template > h2o-package/man/h2o-package.Rd
48
40
ifeq ($(PDFLATEX ) ,)
49
41
@echo pdflatex not found, skipping pdf generation...
50
42
else
51
43
-R CMD Rd2pdf --force --output="h2o-package/h2o_package.pdf" --title="Package 'h2o'" --no-index --no-preview h2o-package/man 1> /dev/null
52
44
endif
53
- mkdir -p h2o-package/inst/java/
54
- cp -f ../target/h2o.jar h2o-package/inst/java/h2o.jar
45
+ rm -rf h2o-package/inst/java
46
+ mkdir -p h2o-package/inst/java/tmp
47
+ cp -f ../target/h2o.jar h2o-package/inst/java/tmp/h2o_full.jar
48
+ (cd h2o-package/inst/java/tmp && jar xf h2o_full.jar)
49
+ (cd h2o-package/inst/java/tmp && rm -fr hadoop/0.* hadoop/1.* hadoop/cdh[35]* hadoop/cdh4_yarn)
50
+ (cd h2o-package/inst/java/tmp && rm -f h2o_full.jar)
51
+ (cd h2o-package/inst/java/tmp && cp META-INF/MANIFEST.MF ..)
52
+ (cd h2o-package/inst/java/tmp && rm -fr META-INF)
53
+ (cd h2o-package/inst/java/tmp && jar cfm ../h2o.jar ../MANIFEST.MF *)
54
+ rm -rf h2o-package/inst/java/tmp
55
55
R CMD build h2o-package
56
56
57
57
# Create file with description of all packages
@@ -61,23 +61,23 @@ endif
61
61
# Add to repo in target directory
62
62
mkdir -p ../target/R/src/contrib
63
63
cp -p README.txt ../target/R
64
- mv $(H2O_WRAPPER_SOURCE_FILE ) ../target/R/src/contrib
64
+ mv $(H2O_R_SOURCE_FILE ) ../target/R/src/contrib
65
65
cp -p PACKAGES PACKAGES.gz ../target/R/src/contrib
66
66
67
67
# Build binary for each OS
68
68
rm -rf $(TMP_BUILD_DIR)
69
69
mkdir -p $(TMP_BUILD_DIR)
70
- R CMD INSTALL -l $(TMP_BUILD_DIR) --build h2o-package
70
+ [ -x "`which gnutar 2>/dev/null`" ] || echo 'Note: gnutar not found; package install in R may fail in the next step'
71
+ R CMD INSTALL -l $(TMP_BUILD_DIR) --build h2o-package || echo 'If you got an error like "Dependency foo is not available for package h2o" you need to install the required R package by running R and executing the R command: install.packages("foo")'
71
72
72
73
ifneq ($(OS ) ,Windows_NT)
73
- # rm -rf h2o
74
- tar zxvf $(H2O_WRAPPER_PKG_FILE)
75
- zip -r $(H2O_WRAPPER_WINDOWS_FILE) h2o
74
+ tar zxf $(H2O_R_PKG_FILE)
75
+ zip -q -r $(H2O_R_WINDOWS_FILE) h2o
76
76
rm -rf h2o
77
77
78
78
# Create repo subdirectory for MacOSX
79
79
mkdir -p ../target/R/$(REPO_PATH_MAC)
80
- mv $(H2O_WRAPPER_PKG_FILE ) ../target/R/$(REPO_PATH_MAC)/$(H2O_WRAPPER_MAC_FILE )
80
+ mv $(H2O_R_PKG_FILE ) ../target/R/$(REPO_PATH_MAC)/$(H2O_R_MAC_FILE )
81
81
cp -p PACKAGES PACKAGES.gz ../target/R/$(REPO_PATH_MAC)
82
82
83
83
rm -rf ../target/R/bin/macosx/contrib/2.15 ../target/R/bin/macosx/contrib/2.14 ../target/R/bin/macosx/contrib/2.13
88
88
89
89
# Create repo subdirectory for Windows
90
90
mkdir -p ../target/R/$(REPO_PATH_WIN)
91
- mv $(H2O_WRAPPER_WINDOWS_FILE ) ../target/R/$(REPO_PATH_WIN)
91
+ mv $(H2O_R_WINDOWS_FILE ) ../target/R/$(REPO_PATH_WIN)
92
92
mv PACKAGES PACKAGES.gz ../target/R/$(REPO_PATH_WIN)
93
93
94
94
rm -rf ../target/R/bin/windows/contrib/2.15 ../target/R/bin/windows/contrib/2.14 ../target/R/bin/windows/contrib/2.13
@@ -99,75 +99,18 @@ endif
99
99
R CMD REMOVE -l $(TMP_BUILD_DIR) h2o
100
100
rm -rf $(TMP_BUILD_DIR)
101
101
102
- build_inner :
103
- sed ' s/SUBST_PROJECT_VERSION/$(PROJECT_VERSION)/' h2oRClient-DESCRIPTION.template > h2oRClient-package/DESCRIPTION
104
- sed ' s/SUBST_PROJECT_VERSION/$(PROJECT_VERSION)/' h2oRClient-package.template > h2oRClient-package/man/h2oRClient-package.Rd
105
- ifeq ($(PDFLATEX ) ,)
106
- @echo pdflatex not found, skipping pdf generation...
107
- else
108
- -R CMD Rd2pdf --force --output="h2oRClient-package/h2oRClient_package.pdf" --title="Package 'h2oRClient'" --no-index --no-preview h2oRClient-package/man 1> /dev/null
109
- endif
110
- R CMD build h2oRClient-package
111
- echo h2oRClient_$(PROJECT_VERSION).tar.gz > info.txt
112
- # ifeq ($(OS),Windows_NT)
113
- # md5deep h2oRClient_$(PROJECT_VERSION).tar.gz | cut -d' ' -f1 >> info.txt
114
- # else
115
- # openssl md5 h2oRClient_$(PROJECT_VERSION).tar.gz | sed 's/.*= //' >> info.txt
116
- # endif
117
-
118
- # Create file with description of all packages
119
- cp -p h2oRClient-package/DESCRIPTION PACKAGES
120
- gzip -c PACKAGES > PACKAGES.gz
121
-
122
- # Add to resources directory
123
- mkdir -p ../lib/resources/R/src/contrib
124
- mv info.txt ../lib/resources/R/info.txt
125
- mv $(H2O_RCLIENT_SOURCE_FILE) ../lib/resources/R/src/contrib
126
- cp -p PACKAGES PACKAGES.gz ../lib/resources/R/src/contrib
127
-
128
- # Build binary for each OS
129
- rm -rf $(TMP_BUILD_DIR)
130
- mkdir -p $(TMP_BUILD_DIR)
131
- R CMD INSTALL -l $(TMP_BUILD_DIR) --build h2oRClient-package
132
-
133
- ifneq ($(OS ) ,Windows_NT)
134
- # rm -rf h2oRClient
135
- tar zxvf $(H2O_RCLIENT_PKG_FILE)
136
- zip -r $(H2O_RCLIENT_WINDOWS_FILE) h2oRClient
137
- rm -rf h2oRClient
138
-
139
- # Create repo subdirectory for MacOSX
140
- mkdir -p ../lib/resources/R/$(REPO_PATH_MAC)
141
- mv $(H2O_RCLIENT_PKG_FILE) ../lib/resources/R/$(REPO_PATH_MAC)/$(H2O_RCLIENT_MAC_FILE)
142
- cp -p PACKAGES PACKAGES.gz ../lib/resources/R/$(REPO_PATH_MAC)
143
- endif
144
-
145
- # Create repo subdirectory for Windows
146
- mkdir -p ../lib/resources/R/$(REPO_PATH_WIN)
147
- mv $(H2O_RCLIENT_WINDOWS_FILE) ../lib/resources/R/$(REPO_PATH_WIN)
148
- mv PACKAGES PACKAGES.gz ../lib/resources/R/$(REPO_PATH_WIN)
149
-
150
- # Create temporary directory for jarring later
151
- mkdir -p ../r_pack_tmp/resources
152
- cp -r ../lib/resources/R ../r_pack_tmp/resources
153
-
154
- R CMD REMOVE -l $(TMP_BUILD_DIR) h2oRClient
155
- rm -rf $(TMP_BUILD_DIR)
102
+ check :
103
+ find h2o-package -name .DS_Store | xargs rm -f
104
+ R CMD CHECK h2o-package
105
+ curl -v http://localhost:54321/Shutdown.json
156
106
157
107
clean :
158
- rm -f h2oRClient-package/DESCRIPTION
159
- rm -f h2oRClient-package/h2oRClient_package.pdf
160
- rm -f h2oRClient-package/man/h2oRClient-package.Rd
161
- rm -f h2oRClient_* .tar.gz
162
- rm -f h2oRClient_* .tgz
163
- rm -f h2oRClient_* .zip
164
108
rm -f h2o-package/DESCRIPTION
165
109
rm -f h2o-package/h2o_package.pdf
166
110
rm -f h2o-package/man/h2o-package.Rd
167
- rm -f h2o-package/inst/java/h2o.jar
111
+ rm -fr h2o-package/inst/java
168
112
rm -f h2o_* .tar.gz
169
113
rm -f h2o_* .tgz
170
114
rm -f h2o_* .zip
171
- rm -rf ../lib/resources/R
172
115
rm -rf h2o
173
- rm -rf h2oRClient
116
+ rm -rf h2oRClient-package
0 commit comments