From a66fb012da1b88f230d9a5b6f93c3d94b99f2987 Mon Sep 17 00:00:00 2001 From: jiseung Date: Tue, 8 Aug 2017 20:25:00 -0500 Subject: Packages/cns nospec (#5023) * new package: cns-nospec * made changes as suggested and added proxy-app tag * updated edit() * adjusted logic for '+debug' * install readme and license * install readme and license * install readme and license; fix mpi version build issues * fix build issues for ~mpi * pep8 compliant --- .../repos/builtin/packages/cns-nospec/package.py | 42 +++++++++++++++++++++- 1 file changed, 41 insertions(+), 1 deletion(-) (limited to 'var') diff --git a/var/spack/repos/builtin/packages/cns-nospec/package.py b/var/spack/repos/builtin/packages/cns-nospec/package.py index d5569bdb6e..30b760ff80 100644 --- a/var/spack/repos/builtin/packages/cns-nospec/package.py +++ b/var/spack/repos/builtin/packages/cns-nospec/package.py @@ -49,6 +49,21 @@ class CnsNospec(MakefilePackage): build_directory = 'MiniApps/CNS_NoSpec' def edit(self, spec, prefix): + def_file = FileFilter('Tools/F_mk/GMakedefs.mak') + def_file.filter('tdir = t/.*', 'tdir := t/$(suf)') + def_file.filter('hdir = t/.*', 'hdir := t/html') + def_file.filter('include $(BOXLIB_HOME)/Tools/F_mk/GMakeMPI.mak', '#') + + if '+mpi' in spec: + def_file.filter('FC.*:=.*', 'FC = {0}'.format(spec['mpi'].mpifc)) + def_file.filter('F90.*:=.*', 'F90 = {0}'.format(spec['mpi'].mpifc)) + def_file.filter( + 'mpi_include_dir =.*', + 'mpi_include_dir = {0}'.format(spec['mpi'].prefix.include)) + def_file.filter( + 'mpi_lib_dir =.*', + 'mpi_lib_dir = {0}'.format(spec['mpi'].prefix.lib)) + with working_dir(self.build_directory): makefile = FileFilter('GNUmakefile') if '+mpi' in spec: @@ -60,10 +75,35 @@ class CnsNospec(MakefilePackage): if '+prof' in spec: makefile.filter('PROF.*', 'PROF := t') + if self.compiler.name == 'gcc': + makefile.filter('COMP .*', 'COMP = gfortran') + if self.compiler.name == 'intel': + makefile.filter('COMP .*', 'COMP = Intel') + if self.compiler.name == 'pgi': + makefile.filter('COMP .*', 'COMP = PGI') + if self.compiler.name == 'xl': + makefile.filter('COMP .*', 'COMP = IBM') + if self.compiler.name == 'cce': + makefile.filter('COMP .*', 'COMP = Cray') + + @property + def build_targets(self): + spec = self.spec + if '+mpi' in spec: + return ['CC = {0}'.format(spec['mpi'].mpicc), + 'CXX = {0}'.format(spec['mpi'].mpicxx)] + else: + return [] + + def build(self, spec, prefix): + with working_dir(self.build_directory): + gmake() + def install(self, spec, prefix): mkdirp(prefix.bin) files = glob.glob(join_path(self.build_directory, '*.exe')) for f in files: install(f, prefix.bin) install('README.txt', prefix) - install('license.txt', prefix) \ No newline at end of file + install('license.txt', prefix) + install(join_path(self.build_directory, 'README'), prefix) -- cgit v1.2.3-60-g2f50