Dear Kenneth,

Kenneth Hoste <[email protected]> writes:

> 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...

Thanks for the information.  It turns out that it wasn't too
complicated, but it took me a while to identify the correct
CMakeList.txt and work out the right module name.  Then I was just able
to add the following patch:


  diff -ru raxml-ng.orig/src/CMakeLists.txt raxml-ng/src/CMakeLists.txt
  --- raxml-ng.orig/src/CMakeLists.txt  2019-03-05 18:30:24.000000000 +0100
  +++ raxml-ng/src/CMakeLists.txt       2019-05-02 17:09:00.895400612 +0200
  @@ -101,3 +101,5 @@
   endif()

   set_target_properties(raxml_module PROPERTIES PREFIX "")
  +
  +install(TARGETS raxml_module DESTINATION bin)

However, your suggestion of having a 'CmakeCopy' seems like a good
idea.  Nevertheless, I'll write to the developer of RAxML-NG and ask
whether an install step can be added.

Cheers,

Loris

-- 
Dr. Loris Bennett (Mr.)
ZEDAT, Freie Universität Berlin         Email [email protected]

Reply via email to