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.