# Copyright 2013-2019 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 *


class Powerapi(AutotoolsPackage):
    """This software is a reference implementation of the PowerAPI"""

    homepage = "https://powerapi.sandia.gov/"
    git      = "https://github.com/pwrapi/pwrapi-ref.git"

    version('1.1.1', commit='93f66dfa29f014067823f2b790a1862e5841a11c')

    variant('hwloc', default=False, description='Build hwloc support')
    variant('debug', default=False, description='Enable debug support')
    variant('mpi',   default=False, description='Enable MPI support')
    variant('gnu-ld', default=False, description='Assume GNU compiled uses gnu-ld')

    depends_on('autoconf')
    depends_on('automake')
    depends_on('libtool')
    depends_on('m4')

    depends_on('hwloc', when='+hwloc')
    depends_on('mpi', when='+mpi')

    def autoreconf(self, spec, prefix):
        bash = which('bash')
        bash('./autogen.sh')

    def configure_args(self):
        spec = self.spec
        args = ['--prefix={0}'.format(self.prefix)]

        if '+hwloc' in spec:
            args.append('--with-hwloc={0}'.format(spec['hwloc'].prefix))

        if '+mpi' in spec:
            args.append('--with-mpi={0}'.format(spec['mpi'].prefix))

        args.extend([
            '--with%s-gnu-ld' % ('' if '+gnu-ld' in spec else 'out'),
            '--%sable-debug' % ('en' if '+debug' in spec else 'dis')
        ])

        return args

    def install(self, spec, prefix):
        make('install')
