dock: new package at 6.9 (#17138)
This commit is contained in:
parent
91693ef32e
commit
404ff9eb32
59
var/spack/repos/builtin/packages/dock/package.py
Normal file
59
var/spack/repos/builtin/packages/dock/package.py
Normal file
@ -0,0 +1,59 @@
|
|||||||
|
# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
|
||||||
|
# Spack Project Developers. See the top-level COPYRIGHT file for details.
|
||||||
|
#
|
||||||
|
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
||||||
|
|
||||||
|
from spack import *
|
||||||
|
import os
|
||||||
|
|
||||||
|
|
||||||
|
class Dock(Package):
|
||||||
|
"""DOCK is a molecular docking program used in drug discovery.
|
||||||
|
|
||||||
|
This program, given a protein binding site and a small molecule, tries
|
||||||
|
to predict the correct binding mode of the small molecule in the binding
|
||||||
|
site, and the associated binding energy."""
|
||||||
|
|
||||||
|
homepage = "http://dock.compbio.ucsf.edu/DOCK_6/index.htm"
|
||||||
|
url = "file://{0}/dock.6.9_source.tar.gz".format(os.getcwd())
|
||||||
|
|
||||||
|
version('6.9', sha256='c2caef9b4bb47bb0cb437f6dc21f4c605fd3d0d9cc817fa13748c050dc87a5a8')
|
||||||
|
|
||||||
|
variant('mpi', default=True, description='Enable mpi')
|
||||||
|
|
||||||
|
depends_on('bison', type='build')
|
||||||
|
depends_on('mpi', when='+mpi')
|
||||||
|
|
||||||
|
def setup_build_environment(self, env):
|
||||||
|
if '+mpi' in self.spec:
|
||||||
|
env.set('MPICH_HOME', self.spec['mpi'].prefix)
|
||||||
|
|
||||||
|
def install(self, spec, prefix):
|
||||||
|
compiler_targets = {
|
||||||
|
'gcc': 'gnu',
|
||||||
|
'intel': 'intel',
|
||||||
|
'pgi': 'pgi',
|
||||||
|
'sgi': 'sgi',
|
||||||
|
}
|
||||||
|
|
||||||
|
if self.compiler.name not in compiler_targets:
|
||||||
|
template = 'Unsupported compiler {0}! Supported compilers: {1}'
|
||||||
|
err = template.format(self.compiler.name,
|
||||||
|
', '.join(list(compiler_targets.keys())))
|
||||||
|
|
||||||
|
raise InstallError(err)
|
||||||
|
|
||||||
|
if self.compiler.name == 'pgi' and '+mpi' in spec:
|
||||||
|
raise InstallError('Parallel output is not supported with pgi.')
|
||||||
|
|
||||||
|
with working_dir('install'):
|
||||||
|
sh_args = ['./configure', compiler_targets[self.compiler.name]]
|
||||||
|
|
||||||
|
if '+mpi' in spec:
|
||||||
|
sh_args.append('parallel')
|
||||||
|
|
||||||
|
which('sh')(*sh_args)
|
||||||
|
which('make')('YACC=bison -o y.tab.c')
|
||||||
|
|
||||||
|
mkdirp(prefix.bin)
|
||||||
|
install_tree('bin', prefix.bin)
|
Loading…
Reference in New Issue
Block a user