Loris Bennett <loris.benn...@fu-berlin.de> writes:

> Dear Kenneth,
>
> Kenneth Hoste <kenneth.ho...@ugent.be> 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.

The developer has added the install step, so no there is no urgency for
'CmakeCp' with regard to RAxML-NG.

Cheers,

Loris

-- 
Dr. Loris Bennett (Mr.)
ZEDAT, Freie Universität Berlin         Email loris.benn...@fu-berlin.de

Reply via email to