Skip to content
Snippets Groups Projects
lammps.py 1.34 KiB
Newer Older
  • Learn to ignore specific revisions
  • Easy Build's avatar
    Easy Build committed
    #!/usr/bin/env python
    #
    #  Copyright (C) 2015 IT4Innovations
    #  Lumir Jasiok
    #  lumir.jasiok@vsb.cz
    #  http://www.it4i.cz
    #
    #
    #
    
    
    """
    EasyBuild support for building and installing LAMPPS,
    implemented as an easyblock
    
    @author: Lumir Jasiok (IT4 Innovations)
    """
    
    import os
    import shutil
    
    from easybuild.framework.easyblock import EasyBlock
    from easybuild.tools.build_log import EasyBuildError
    from easybuild.tools.run import run_cmd
    
    
    class EB_LAMMPS(EasyBlock):
        """Support for building and installing LAMMPS."""
    
        def build_step(self):
            """Run simply make mkl"""
            cmd = "%s make mkl" % self.cfg['prebuildopts']
            run_cmd(cmd, log_all=True)
            srcdir = os.path.join(self.cfg['start_dir'], 'src')
            targetdir = os.path.join(self.installdir, 'bin')
            self.log.info("LAMMPS install directory is %s" % self.installdir)
            try:
                if os.path.isdir(self.installdir):
                    self.log.info("Directory %s exists, deleting"
                                  % self.installdir)
                    shutil.rmtree(self.installdir)
                os.mkdir(self.installdir)
                os.mkdir(targetdir)
                shutil.copy2(os.path.join(srcdir, 'lmp_mkl'),
                             os.path.join(targetdir, 'lmp_mkl'))
            except Exception, err:
                raise EasyBuildError("Failed to install LAMMPS binary, %s" % err)