{bio,numlib}[intel/2016b] QTLtools v1.1, Rmath v3.3.1#5361
{bio,numlib}[intel/2016b] QTLtools v1.1, Rmath v3.3.1#5361boegel merged 3 commits intoeasybuilders:developfrom
Conversation
|
@casparvl To deal with the style issues, you can easily check locally using |
|
Yeah, silly. I knew some comments where too long and intended to change that before submitting the pul request - and then forgot. Local check is a good tip though, thanks :) |
|
|
||
| source_urls = ['https://qtltools.github.io/qtltools/binaries/'] | ||
| sources = ['QTLtools_%(version)s_source.tar.gz'] | ||
| checksums = ['9ee0d69d40e3a1827b8805eb98c1bf8a'] |
There was a problem hiding this comment.
@casparvl Please use SHA256 checksums (EasyBuild discriminates between MD5 & SHA256 based on length, see also http://easybuild.readthedocs.io/en/latest/Writing_easyconfig_files.html#checksums).
| checksums = ['9ee0d69d40e3a1827b8805eb98c1bf8a'] | ||
|
|
||
| #Overwrite CXX, CXXFLAG, LIB_FLAGS and LIB_FILES build options from the default makefile, as these use hard-coded compiler & library paths | ||
| buildopts = 'CXX="$CXX -std=c++0x" CXXFLAG="$CXXFLAGS" LIB_FLAGS="-lz -lgsl -lmkl -lbz2 -lm -lpthread -lRmath -lhts -lboost_iostreams -lboost_program_options" LIB_FILES=""' |
There was a problem hiding this comment.
@casparvl You can flesh out the LIB_FLAGS part on a separate line as follows:
buildopts = 'CXX="$CXX -std=c++0x" CXXFLAG="$CXXFLAGS" LIB_FILES="" '
buildopts += 'LIB_FLAGS="-lz -lgsl -lmkl -lbz2 -lm -lpthread -lRmath -lhts -lboost_iostreams -lboost_program_options"'| sources = ['QTLtools_%(version)s_source.tar.gz'] | ||
| checksums = ['9ee0d69d40e3a1827b8805eb98c1bf8a'] | ||
|
|
||
| #Overwrite CXX, CXXFLAG, LIB_FLAGS and LIB_FILES build options from the default makefile, as these use hard-coded compiler & library paths |
There was a problem hiding this comment.
space after # please for readability, and split this across two lines to avoid lines longer than 120 characters
| ('bzip2','1.0.6'), | ||
| ('Boost','1.61.0'), | ||
| ('Rmath','3.3.1'), | ||
| ('HTSlib','1.4') |
There was a problem hiding this comment.
please use 4 spaces for indent, no tabs, and no need to indent the closed ]
| #Overwrite CXX, CXXFLAG, LIB_FLAGS and LIB_FILES build options from the default makefile, as these use hard-coded compiler & library paths | ||
| buildopts = 'CXX="$CXX -std=c++0x" CXXFLAG="$CXXFLAGS" LIB_FLAGS="-lz -lgsl -lmkl -lbz2 -lm -lpthread -lRmath -lhts -lboost_iostreams -lboost_program_options" LIB_FILES=""' | ||
|
|
||
| moduleclass = 'bio' |
There was a problem hiding this comment.
this should be the last line (just for consistency compared to existing easyconfigs)
| ('PCRE', '8.38'), | ||
| ('XZ', '5.2.2'), | ||
| ('zlib', '1.2.8') | ||
| ] |
There was a problem hiding this comment.
please fix indent and move this up, right below sources block
| ('zlib', '1.2.8') | ||
| ] | ||
|
|
||
| moduleclass = 'numlib' |
|
|
||
| #To build Rmath, docs say you need to execute 'make' in src/nmath/standalone | ||
| prebuildopts = 'cd src/nmath/standalone;' | ||
| preinstallopts = 'cd src/nmath/standalone;' |
There was a problem hiding this comment.
use preinstallopts = prebuildopts to avoid repetition
|
|
||
| moduleclass = 'numlib' | ||
|
|
||
| #To build Rmath, docs say you need to execute 'make' in src/nmath/standalone |
There was a problem hiding this comment.
please include a pointer to the documentation
| preinstallopts = 'cd src/nmath/standalone;' | ||
| sanity_check_paths = { | ||
| 'files': [], | ||
| 'dirs': [('lib','lib64')] |
There was a problem hiding this comment.
If I do
'files': [('lib/libRmath.a', 'lib64/libRmath.a')]
'files': [('lib/libRmath.so', 'lib64/libRmath.so')]
will that check if libRmath.a and so both exist (they should, with this easyconig), and are either located under lib ór lib64? Or can I not repeat a 'files': several times to do an 'and'?
There was a problem hiding this comment.
No, you should use a list with two entries, each a tuple, but you'll need to spread it across two lines to avoid hitting the line length limit (and also, we avoid hardcoding .so, since on MacOS it's .dylib):
sanity_check_paths = {
'files': [('lib/libRmath.a', 'lib64/libRmath.a'),
('lib/libRmath.%s' % SHLIB_EXT, 'lib64/libRmath.%s' % SHLIB_EXT)],
'dirs': [],
}
|
Test report by @boegel |
…ting rules. Reordered some items. Changed checksums to SHA256. Removed BLAS & Lapack libs as they don't seem to be used/linked to libRmath anyway. Added more specific sanity check.
boegel
left a comment
There was a problem hiding this comment.
two more minor details, looks good to go otherwise! :)
| # https://cran.r-project.org/doc/manuals/r-devel/R-admin.html#Configuration-options | ||
| prebuildopts = 'cd src/nmath/standalone;' | ||
| preinstallopts = prebuildopts | ||
| sanity_check_paths = { |
There was a problem hiding this comment.
style nit-picking: please include an empty line above :)
|
|
||
| sanity_check_paths = { | ||
| 'files': [], | ||
| 'dirs': ['bin'] |
There was a problem hiding this comment.
Please make this more specific, by checking for specific binaries (no need to check all if there are a lot of them).
In this case, I'd use:
sanity_check_paths = {
'files': ['bin/QTLtools'],
'dirs': [],
}…ore sanity_check_paths for Rmath.
|
Test report by @boegel |
|
Test report by @boegel |
|
Going in, thanks @casparvl! |
(created using
eb --new-pr)QTL tools has a dependency on the Rmath shared library. Depending on configuration settings, the Rmath library may be compiled with a regular R installation, but this is not guaranteed (nor is it the case for e.g. R-3.3.1-intel-2016b.eb). The only way to guarantee the dependency is resolved, is to compile Rmath as a standalone library, which is what the attached Rmath EasyConfig does. The R documentation does not list specific dependencies for Rmath as a standalone library; the dependencies in the attached EasyConfig work on both our systems.