Merge pull request #1118 from epfl-scitas/packages/swift_durham

swift : added new package
This commit is contained in:
Todd Gamblin 2016-06-27 00:39:45 -07:00 committed by GitHub
commit 3bc4a38b78
4 changed files with 137 additions and 16 deletions

View File

@ -24,18 +24,36 @@
##############################################################################
from spack import *
class Autoconf(Package):
"""Autoconf -- system configuration part of autotools"""
homepage = "https://www.gnu.org/software/autoconf/"
url = "http://ftp.gnu.org/gnu/autoconf/autoconf-2.69.tar.gz"
"""
Autoconf -- system configuration part of autotools
"""
homepage = 'https://www.gnu.org/software/autoconf/'
url = 'http://ftp.gnu.org/gnu/autoconf/autoconf-2.69.tar.gz'
version('2.69', '82d05e03b93e45f5a39b828dc9c6c29b')
version('2.62', '6c1f3b3734999035d77da5024aab4fbd')
depends_on("m4")
depends_on('m4')
def _make_executable(self, name):
return Executable(join_path(self.prefix.bin, name))
def setup_dependent_package(self, module, dependent_spec):
# Autoconf is very likely to be a build dependency,
# so we add the tools it provides to the dependent module
executables = ['autoconf',
'autoheader',
'autom4te',
'autoreconf',
'autoscan',
'autoupdate',
'ifnames']
for name in executables:
setattr(module, name, self._make_executable(name))
def install(self, spec, prefix):
configure("--prefix=%s" % prefix)
make()
make("install")

View File

@ -24,10 +24,13 @@
##############################################################################
from spack import *
class Automake(Package):
"""Automake -- make file builder part of autotools"""
homepage = "http://www.gnu.org/software/automake/"
url = "http://ftp.gnu.org/gnu/automake/automake-1.14.tar.gz"
"""
Automake -- make file builder part of autotools
"""
homepage = 'http://www.gnu.org/software/automake/'
url = 'http://ftp.gnu.org/gnu/automake/automake-1.14.tar.gz'
version('1.15', '716946a105ca228ab545fc37a70df3a3')
version('1.14.1', 'd052a3e884631b9c7892f2efce542d75')
@ -35,8 +38,17 @@ class Automake(Package):
depends_on('autoconf')
def _make_executable(self, name):
return Executable(join_path(self.prefix.bin, name))
def setup_dependent_package(self, module, dependent_spec):
# Automake is very likely to be a build dependency,
# so we add the tools it provides to the dependent module
executables = ['aclocal', 'automake']
for name in executables:
setattr(module, name, self._make_executable(name))
def install(self, spec, prefix):
configure("--prefix=%s" % prefix)
make()
make("install")

View File

@ -24,18 +24,30 @@
##############################################################################
from spack import *
class Libtool(Package):
"""libtool -- library building part of autotools"""
homepage = "https://www.gnu.org/software/libtool/"
url = "http://ftpmirror.gnu.org/libtool/libtool-2.4.2.tar.gz"
version('2.4.6' , 'addf44b646ddb4e3919805aa88fa7c5e')
version('2.4.2' , 'd2f3b7d4627e69e13514a40e72a24d50')
class Libtool(Package):
"""
libtool -- library building part of autotools
"""
homepage = 'https://www.gnu.org/software/libtool/'
url = 'http://ftpmirror.gnu.org/libtool/libtool-2.4.2.tar.gz'
version('2.4.6', 'addf44b646ddb4e3919805aa88fa7c5e')
version('2.4.2', 'd2f3b7d4627e69e13514a40e72a24d50')
depends_on('m4')
def _make_executable(self, name):
return Executable(join_path(self.prefix.bin, name))
def setup_dependent_package(self, module, dependent_spec):
# Automake is very likely to be a build dependency,
# so we add the tools it provides to the dependent module
executables = ['libtoolize', 'libtool']
for name in executables:
setattr(module, name, self._make_executable(name))
def install(self, spec, prefix):
configure("--prefix=%s" % prefix)
make()
make("install")

View File

@ -0,0 +1,79 @@
##############################################################################
# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
# Produced at the Lawrence Livermore National Laboratory.
#
# This file is part of Spack.
# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
# LLNL-CODE-647188
#
# For details, see https://github.com/llnl/spack
# Please also see the LICENSE file for our notice and the LGPL.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU Lesser General Public License (as
# published by the Free Software Foundation) version 2.1, February 1999.
#
# This program is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
# conditions of the GNU Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public
# License along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
##############################################################################
from spack import *
import spack.environment
import llnl.util.tty as tty
# Needed to be able to download from the Durham gitlab repository
tty.warn('Setting "GIT_SSL_NO_VERIFY=1"')
tty.warn('This is needed to clone SWIFT repository')
gitlab_env = spack.environment.EnvironmentModifications()
gitlab_env.set('GIT_SSL_NO_VERIFY', 1)
gitlab_env.apply_modifications()
class Swiftsim(Package):
"""
SPH With Inter-dependent Fine-grained Tasking (SWIFT) provides
astrophysicists with a state of the art framework to perform
particle based simulations.
"""
homepage = 'http://icc.dur.ac.uk/swift/'
url = 'http://gitlab.cosma.dur.ac.uk/swift/swiftsim/repository/archive.tar.gz?ref=v0.3.0'
version('0.3.0', git='https://gitlab.cosma.dur.ac.uk/swift/swiftsim.git', tag='v0.3.0')
variant('mpi', default=True, description='Enable distributed memory parallelism')
# Build dependencies
depends_on('autoconf')
depends_on('automake')
depends_on('libtool')
depends_on('m4')
# link-time / run-time dependencies
depends_on('mpi', when='+mpi')
depends_on('metis')
depends_on('hdf5~mpi', when='~mpi')
depends_on('hdf5+mpi', when='+mpi')
def install(self, spec, prefix):
# Generate configure from configure.ac
# and Makefile.am
libtoolize()
aclocal()
autoconf()
autogen = Executable('./autogen.sh')
autogen()
# Configure and install
options = ['--prefix=%s' % prefix,
'--enable-mpi' if '+mpi' in spec else '--disable-mpi',
'--enable-optimization']
configure(*options)
make()
make("install")