summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorgebele <gebele@in-silico.ch>2018-05-04 10:12:12 +0000
committergebele <gebele@in-silico.ch>2018-05-04 10:12:12 +0000
commit91f0cfc13cb5c5e8d10f9321e68ed0304068a234 (patch)
tree6fb38cbedbd9c7551cff39d784e6c93bc1535756
parentc57ae4ce01e0f0a135db7c22d4d4284c217df57f (diff)
added ext
-rw-r--r--ext/lazar/Makefile5
-rw-r--r--ext/lazar/extconf.rb32
-rw-r--r--ext/lazar/rinstall.R12
3 files changed, 49 insertions, 0 deletions
diff --git a/ext/lazar/Makefile b/ext/lazar/Makefile
new file mode 100644
index 0000000..1d51914
--- /dev/null
+++ b/ext/lazar/Makefile
@@ -0,0 +1,5 @@
+all:
+ true
+
+install:
+ true
diff --git a/ext/lazar/extconf.rb b/ext/lazar/extconf.rb
new file mode 100644
index 0000000..9997106
--- /dev/null
+++ b/ext/lazar/extconf.rb
@@ -0,0 +1,32 @@
+require 'fileutils'
+require 'rbconfig'
+require 'mkmf'
+
+main_dir = File.expand_path(File.join(File.dirname(__FILE__),"..",".."))
+
+# check for required programs
+programs = ["R","Rscript","mongod","java","getconf"]
+programs.each do |program|
+ abort "Please install #{program} on your system." unless find_executable program
+end
+
+abort "Please install Rserve on your system. Execute 'install.packages('Rserve')' in a R console running as root ('sudo R')." unless `R CMD Rserve --version`.match(/^Rserve/)
+
+# install R packages
+r_dir = File.join main_dir, "R"
+FileUtils.mkdir_p r_dir
+#FileUtils.mkdir_p File.join(main_dir,"bin") # for Rserve binary
+rinstall = File.expand_path(File.join(File.dirname(__FILE__),"rinstall.R"))
+puts `Rscript --vanilla #{rinstall} #{r_dir}`
+
+r_libs = Dir[File.join(r_dir,"*")].collect{|l| l.sub(r_dir, '').sub('/','')}.sort
+["caret","doMC","foreach","ggplot2","gridExtra","iterators","pls"].each do |lib|
+ abort "Failed to install R package '#{lib}'." unless r_libs.include?(lib)
+end
+
+# create a fake Makefile
+File.open(File.join(File.dirname(__FILE__),"Makefile"),"w+") do |makefile|
+ makefile.puts "all:\n\ttrue\n\ninstall:\n\ttrue\n"
+end
+
+$makefile_created = true
diff --git a/ext/lazar/rinstall.R b/ext/lazar/rinstall.R
new file mode 100644
index 0000000..98e612d
--- /dev/null
+++ b/ext/lazar/rinstall.R
@@ -0,0 +1,12 @@
+libdir = commandArgs(trailingOnly=TRUE)[1]
+repo = "https://stat.ethz.ch/CRAN/"
+#install.packages("Rserve",lib=libdir,repos=repo,dependencies=TRUE)
+install.packages("stringi",lib=libdir,repos=repo,dependencies=TRUE);
+install.packages("iterators",lib=libdir,repos=repo,dependencies=TRUE);
+install.packages("foreach",lib=libdir,repos=repo,dependencies=TRUE);
+install.packages("gridExtra",lib=libdir,repos=repo,dependencies=TRUE);
+install.packages("ggplot2",lib=libdir,repos=repo,dependencies=TRUE);
+install.packages("pls",lib=libdir,repos=repo,dependencies=TRUE);
+install.packages("randomForest",lib=libdir,repos=repo,dependencies=TRUE);
+install.packages("caret",lib=libdir,repos=repo,dependencies=TRUE);
+install.packages("doMC",lib=libdir,repos=repo,dependencies=TRUE);