From 68e9a2ed8daf4b43fe19cd062ff37a04c7978c10 Mon Sep 17 00:00:00 2001 From: Alfredo Adolfo Gimenez <alfredo.gimenez@gmail.com> Date: Sun, 18 Dec 2016 16:27:47 -0800 Subject: [PATCH] Added customization for make targets in 'build' and 'install' phases for AutotoolsPackage (#2464) * Customization for make targets in build and test phases for AutotoolsPackage * Updated Blitz++ to use customized make build and test targets * Removed flake8 error * Removed make test customization, added make install customization, need to figure out issues with multiple make targets * Changed build_targets and install_targets to normal attributes --- lib/spack/spack/build_systems/autotools.py | 14 ++++++++++---- var/spack/repos/builtin/packages/blitz/package.py | 6 ++++++ 2 files changed, 16 insertions(+), 4 deletions(-) diff --git a/lib/spack/spack/build_systems/autotools.py b/lib/spack/spack/build_systems/autotools.py index 7be0b13645..dea4ae002f 100644 --- a/lib/spack/spack/build_systems/autotools.py +++ b/lib/spack/spack/build_systems/autotools.py @@ -45,6 +45,9 @@ class AutotoolsPackage(PackageBase): They all have sensible defaults and for many packages the only thing necessary will be to override `configure_args` + + Additionally, you may specify make targets for build and install + phases by overriding `build_targets` and `install_targets` """ phases = ['autoreconf', 'configure', 'build', 'install'] # To be used in UI queries that require to know which @@ -52,6 +55,9 @@ class AutotoolsPackage(PackageBase): build_system_class = 'AutotoolsPackage' patch_config_guess = True + build_targets = [] + install_targets = ['install'] + def do_patch_config_guess(self): """Some packages ship with an older config.guess and need to have this updated when installed on a newer architecture.""" @@ -152,12 +158,12 @@ def configure(self, spec, prefix): inspect.getmodule(self).configure(*options) def build(self, spec, prefix): - """The usual `make` after configure""" - inspect.getmodule(self).make() + """Make the build targets""" + inspect.getmodule(self).make(*self.build_targets) def install(self, spec, prefix): - """...and the final `make install` after configure""" - inspect.getmodule(self).make('install') + """Make the install targets""" + inspect.getmodule(self).make(*self.install_targets) @PackageBase.sanity_check('build') @PackageBase.on_package_attributes(run_tests=True) diff --git a/var/spack/repos/builtin/packages/blitz/package.py b/var/spack/repos/builtin/packages/blitz/package.py index 16ad3bc2ab..d6fd31d637 100644 --- a/var/spack/repos/builtin/packages/blitz/package.py +++ b/var/spack/repos/builtin/packages/blitz/package.py @@ -31,3 +31,9 @@ class Blitz(AutotoolsPackage): url = "https://github.com/blitzpp/blitz/tarball/1.0.0" version('1.0.0', '9f040b9827fe22228a892603671a77af') + + build_targets = ['lib'] + + def check(self): + make('check-testsuite') + make('check-examples') -- GitLab