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]

