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

Reply via email to