Hi Kenneth,

On 31/05/2016 15:54, Kenneth Hoste wrote:
Hi Andy,

On 31/05/16 16:43, Andy Turner wrote:
Hi All,

This is probably a silly question but I could not determine the answer
from reading the docs or by examining the easyblock files themselves.

I want to write an easyblock for building VASP and am not sure which
generic block to start from (or even if I need to add a new one). The
basic build procedure consists of:

1) Unpack the source from a tarball located on the local file system
2) Write a "makefile.include" file with the correct options in the top
level of the unpacked source
3) Issue "make veryclean"
4) Issue "make all"

I looked at "makecp.py" and various other generic easyblocks but none
of them, as far as I can see, have a configure step that just consists
of writing a file.

Any help much appreciated

There's an easyconfig file for VASP included in EasyBuild v2.8.x, which
indeed uses the MakeCp easyblock,
see [1] (or "eb -S VASP" if you have EasyBuild v2.8.0 or more recent
installed).

It slightly goes beyond what is generally done in an easyconfig file
(copying makefile.include & patching it with sed), but it does allow to
avoid producing a custom easyblock...

Does that help?


regards,

Kenneth

[1]
https://github.com/hpcugent/easybuild-easyconfigs/blob/master/easybuild/easyconfigs/v/VASP/VASP-5.4.1-intel-2016.02-GCC-4.9.eb



Ah! I was looking for a block rather than just a config so missed this. I see what it does now.

Actually, the "makefile.include" I want to use does not correspond to any of the default supplied ones with VASP so simply copying across from the source is not an option.

I could just put the file somewhere local and copy it across as in your example but I really wanted to be able to capture the full build logic in the framework (so it would be of use to other sites that do not have access to our makefile.include on our local disk).

Is there a simple way to have a step that writes the makefile.include before building so that I can encode all the settings or will I have to write a new generic easyblock for this (e.g. WriteMake.py)? I guess the other option is simply to use the MakeCp.py block and encode writing makefile.include into the make step before I call the make command but this seems to be breaking the spirit of the tool...

Cheers
Andy


--
=============================================
         Dr Andrew R. Turner
      e: [email protected]
  skype: aturner-epcc
      t: +44 (0)131 650 5845
      p: EPCC, University of Edinburgh EH9 3FD

The University of Edinburgh is a charitable body, registered in
Scotland, with registration number SC005336.

Reply via email to