Dear Loris,
On 30/04/2019 11:48, Loris Bennett wrote:
Hi,
I am trying to write an easyconfig for RAxML-NG and have the following:
######################################################################
easyblock = 'CMakeMake'
name = 'RAxML-NG'
version = '0.8.1'
ompi_ver = '3.1.3'
versionsuffix = '-OpenMPI-%s' % ompi_ver
homepage = 'https://github.com/amkozlov/raxml-ng'
description = "RAxML-NG is a phylogenetic tree inference tool which uses
maximum-likelihood (ML) optimality criterion."
toolchain = {'name': 'foss', 'version': '2018b'}
source_urls =
['https://github.com/amkozlov/raxml-ng/releases/download/%(version)s']
sources = ['%(namelower)s_v%(version)s_linux_x86_64_MPI.zip']
#checksums = ['']
builddependencies = [
('CMake', '3.12.1'),
('Bison', '3.0.5'),
('flex', '2.6.4'),
('GMP', '6.1.2'),
]
dependencies = [
]
separate_build_dir = True
configopts = "-DUSE_MPI=ON "
sanity_check_paths = {
'files': ['bin/raxml-ng'],
'dirs': [''],
}
sanity_check_commands = ["raxml-ng -v"]
moduleclass = 'bio'
######################################################################
The install fails with:
== 2019-04-30 11:32:00,287 build_log.py:163 ERROR EasyBuild crashed
with an error (at
easybuild/software/EasyBuild/3.9.0/lib/python2.7/site-packages/vsc_base-2.8.4-py2.7.egg/vsc/utils/exceptions.py:124
in __init__): cmd " make install " exited with exit code 2 and output:
make: *** No rule to make target `install'. Stop.
I assume I therefore have to patch the install step into the
CMakeLists.txt file.
Or is there any alternative (besides getting the authors to fix their
program)?
One option is to skip the 'install' step, and just copy the binaries
yourself, for example by glueing a 'cp' command to the 'make' build
command via buildopts.
See also
https://github.com/easybuilders/easybuild-easyconfigs/pull/6411/files
This pattern (software using CMake yet not providing a proper
installation step) has been popping up before, so we should look into
making an equivalent of the generic 'MakeCp' easyblock that uses 'cmake'
rather than 'configure', so you can use 'files_to_copy' to specify which
files/directories should be copied...
regards,
Kenneth