diff --git a/var/spack/repos/builtin/packages/likwid/package.py b/var/spack/repos/builtin/packages/likwid/package.py index a104b6700361dad9924e8221f99db640f8372160..0bbf69a89be0f83a05dc9ed40e653a8e539cf30c 100644 --- a/var/spack/repos/builtin/packages/likwid/package.py +++ b/var/spack/repos/builtin/packages/likwid/package.py @@ -32,6 +32,8 @@ class Likwid(Package): patch('https://github.com/RRZE-HPC/likwid/commit/e0332ace8fe8ca7dcd4b4477a25e37944f173a5c.patch', sha256='c3b8f939a46b425665577ce764d4fba080a23cab5999c53db71655fd54d7e0b1', when='@5.0.1') patch('https://github.com/RRZE-HPC/likwid/commit/d2d0ef333b5e0997d7c80fc6ac1a473b5e47d084.patch', sha256='636cbf40669261fdb36379d67253be2b731cfa7b6d610d232767d72fbdf08bc0', when='@4.3.4') + variant('fortran', default=True, description='with fortran interface') + # NOTE: There is no way to use an externally provided hwloc with Likwid. # The reason is that the internal hwloc is patched to contain extra # functionality and functions are prefixed with "likwid_". @@ -96,6 +98,20 @@ def install(self, spec, prefix): 'BUILDDAEMON = false', 'config.mk') + if '+fortran' in self.spec: + filter_file('^FORTRAN_INTERFACE .*', + 'FORTRAN_INTERFACE = true', + 'config.mk') + if self.compiler.name == 'gcc': + filter_file('ifort', 'gfortran', + join_path('make', 'include_GCC.mk')) + filter_file('-module', '-I', join_path('make', + 'include_GCC.mk')) + else: + filter_file('^FORTRAN_INTERFACE .*', + 'FORTRAN_INTERFACE = false', + 'config.mk') + if spec.satisfies('^lua'): filter_file('^#LUA_INCLUDE_DIR.*', 'LUA_INCLUDE_DIR = {0}'.format(