diff options
Diffstat (limited to 'var/spack/repos/builtin/packages/libxc/package.py')
-rw-r--r-- | var/spack/repos/builtin/packages/libxc/package.py | 85 |
1 files changed, 39 insertions, 46 deletions
diff --git a/var/spack/repos/builtin/packages/libxc/package.py b/var/spack/repos/builtin/packages/libxc/package.py index d92ba97e73..bdb5fcabd2 100644 --- a/var/spack/repos/builtin/packages/libxc/package.py +++ b/var/spack/repos/builtin/packages/libxc/package.py @@ -1,31 +1,12 @@ -############################################################################## -# Copyright (c) 2013-2017, Lawrence Livermore National Security, LLC. -# Produced at the Lawrence Livermore National Laboratory. +# Copyright 2013-2018 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. # -# 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/spack/spack -# Please also see the NOTICE and LICENSE files 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 -############################################################################## +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + from spack import * -class Libxc(Package): +class Libxc(AutotoolsPackage): """Libxc is a library of exchange-correlation functionals for density-functional theory.""" @@ -52,7 +33,7 @@ class Libxc(Package): # Libxc installs both shared and static libraries. # If a client ask for static explicitly then return # the static libraries - shared = False if 'static' in query_parameters else True + shared = ('static' not in query_parameters) # Libxc has a fortran90 interface: give clients the # possibility to query for it @@ -60,34 +41,46 @@ class Libxc(Package): libraries = ['libxcf90'] + libraries return find_libraries( - libraries, root=self.prefix, shared=shared, recurse=True + libraries, root=self.prefix, shared=shared, recursive=True ) - def install(self, spec, prefix): - # Optimizations for the Intel compiler, suggested by CP2K + def setup_environment(self, spack_env, run_env): optflags = '-O2' if self.compiler.name == 'intel': - optflags += ' -xAVX -axCORE-AVX2 -ipo' + # Optimizations for the Intel compiler, suggested by CP2K + # + # Note that not every lowly login node has advanced CPUs: + # + # $ icc -xAVX -axCORE-AVX2 -ipo hello.c + # $ ./a.out + # Please verify that both the operating system and the \ + # processor support Intel(R) AVX instructions. + # + # NB: The same flags are applied in: + # - ../libint/package.py + # + # Related: + # - ../fftw/package.py variants: simd, fma + # - ../c-blosc/package.py variant: avx2 + # - ../r-rcppblaze/package.py AVX* in "info" but not in code? + # - ../openblas/package.py variants: cpu_target!?! + # - ../cp2k/package.py + # + # Documentation at: + # https://software.intel.com/en-us/cpp-compiler-18.0-developer-guide-and-reference-ax-qax + # + optflags += ' -xSSE4.2 -axAVX,CORE-AVX2 -ipo' if which('xiar'): - env['AR'] = 'xiar' - - if 'CFLAGS' in env and env['CFLAGS']: - env['CFLAGS'] += ' ' + optflags - else: - env['CFLAGS'] = optflags + spack_env.set('AR', 'xiar') - if 'FCFLAGS' in env and env['FCFLAGS']: - env['FCFLAGS'] += ' ' + optflags - else: - env['FCFLAGS'] = optflags + spack_env.append_flags('CFLAGS', optflags) + spack_env.append_flags('FCFLAGS', optflags) - configure('--prefix={0}'.format(prefix), - '--enable-shared') - - make() + def configure_args(self): + args = ['--enable-shared'] + return args + def check(self): # libxc provides a testsuite, but many tests fail # http://www.tddft.org/pipermail/libxc/2013-February/000032.html - # make('check') - - make('install') + pass |