valgrind: add develop; fix build on macOS with clang (#3066)

- add develop version to valgrind; fix build on macOS with clang
- switch valgrind to AutotoolsPackage
This commit is contained in:
Denis Davydov 2017-02-09 22:57:50 +01:00 committed by Todd Gamblin
parent b1eb921f28
commit b07835904a

View file

@ -22,11 +22,11 @@
# License along with this program; if not, write to the Free Software # License along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
############################################################################## ##############################################################################
from spack import * from spack import *
import sys
class Valgrind(Package): class Valgrind(AutotoolsPackage):
"""An instrumentation framework for building dynamic analysis. """An instrumentation framework for building dynamic analysis.
There are Valgrind tools that can automatically detect many memory There are Valgrind tools that can automatically detect many memory
@ -44,17 +44,31 @@ class Valgrind(Package):
version('3.11.0', '4ea62074da73ae82e0162d6550d3f129') version('3.11.0', '4ea62074da73ae82e0162d6550d3f129')
version('3.10.1', '60ddae962bc79e7c95cfc4667245707f') version('3.10.1', '60ddae962bc79e7c95cfc4667245707f')
version('3.10.0', '7c311a72a20388aceced1aa5573ce970') version('3.10.0', '7c311a72a20388aceced1aa5573ce970')
version('develop', svn='svn://svn.valgrind.org/valgrind/trunk')
variant('mpi', default=True, description='Activates MPI support for valgrind') variant('mpi', default=True,
description='Activates MPI support for valgrind')
variant('boost', default=True, variant('boost', default=True,
description='Activates boost support for valgrind') description='Activates boost support for valgrind')
depends_on('mpi', when='+mpi') depends_on('mpi', when='+mpi')
depends_on('boost', when='+boost') depends_on('boost', when='+boost')
def install(self, spec, prefix): depends_on("autoconf", type='build', when='@develop')
options = ['--prefix=%s' % prefix, depends_on("automake", type='build', when='@develop')
'--enable-ubsan'] depends_on("libtool", type='build', when='@develop')
configure(*options)
make() def configure_args(self):
make("install") spec = self.spec
options = []
if not (spec.satisfies('%clang') and sys.platform == 'darwin'):
# Otherwise with (Apple's) clang there is a linker error:
# clang: error: unknown argument: '-static-libubsan'
options.append('--enable-ubsan')
if sys.platform == 'darwin':
options.extend([
'--build=amd64-darwin',
'--enable-only64bit'
])
return options