diff --git a/easybuild/easyblocks/s/scalasca1.py b/easybuild/easyblocks/s/scalasca1.py deleted file mode 100644 index 641deb4ee7..0000000000 --- a/easybuild/easyblocks/s/scalasca1.py +++ /dev/null @@ -1,112 +0,0 @@ -## -# Copyright 2013-2024 Ghent University -# -# This file is part of EasyBuild, -# originally created by the HPC team of Ghent University (http://ugent.be/hpc/en), -# with support of Ghent University (http://ugent.be/hpc), -# the Flemish Supercomputer Centre (VSC) (https://www.vscentrum.be), -# Flemish Research Foundation (FWO) (http://www.fwo.be/en) -# and the Department of Economy, Science and Innovation (EWI) (http://www.ewi-vlaanderen.be/en). -# -# https://github.com/easybuilders/easybuild -# -# EasyBuild is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation v2. -# -# EasyBuild 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 -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with EasyBuild. If not, see . -## -""" -EasyBuild support for Scalasca v1.x, implemented as an easyblock - -@author: Kenneth Hoste (Ghent University) -@author: Bernd Mohr (Juelich Supercomputing Centre) -""" -import os -from easybuild.tools import LooseVersion - -import easybuild.tools.toolchain as toolchain -from easybuild.easyblocks.generic.configuremake import ConfigureMake -from easybuild.tools.build_log import EasyBuildError -from easybuild.tools.modules import get_software_root - - -class EB_Scalasca1(ConfigureMake): - """Support for building and installing Scalasca v1.x.""" - - def check_readiness_step(self): - """Make sure this easyblock is applicable to the Scalasca version being built.""" - ver = LooseVersion(self.version) - if ver >= LooseVersion('2.0') or ver < LooseVersion('1.0'): - raise EasyBuildError("The %s easyblock should only be used for Scalasca v1.x; " - "for Scalasca v2.0 and more recent, try the EB_Score_minus_P easyblock.", - self.__class__.__name__) - - super(EB_Scalasca1, self).check_readiness_step() - - def configure_step(self, *args, **kwargs): - """Configure Scalasca build, set configure options for compiler, MPI and dependencies.""" - # compiler and MPI suite should always be specified -- MUCH quicker and SAFER than autodetect - # --compiler=(gnu|pgi|intel|path|ibm|sun|clang) - # --mpi=(mpich|mpich2|mpich3|lam|openmpi|intel|intel2|hp|scali|mpibull2|bullxmpi|sun|ibmpoe|intelpoe) - comp_opts = { - toolchain.GCC: 'gnu', - toolchain.INTELCOMP: 'intel', - } - comp_fam = self.toolchain.comp_family() - if comp_fam in comp_opts: - self.cfg.update('configopts', "--compiler=%s" % comp_opts[comp_fam]) - else: - raise EasyBuildError("Compiler family %s not supported yet (only: %s)", - comp_fam, ', '.join(comp_opts.keys())) - - mpi_opts = { - toolchain.INTELMPI: 'intel2', # intel: Intel MPI v1.x (ancient) - toolchain.OPENMPI: 'openmpi', - toolchain.MPICH: 'mpich3', # In EB terms, MPICH means MPICH 3.x; MPICH 1.x is ancient and unsupported - toolchain.MPICH2: 'mpich2', - } - mpi_fam = self.toolchain.mpi_family() - if mpi_fam in mpi_opts: - self.cfg.update('configopts', "--mpi=%s --enable-all-mpi-wrappers" % mpi_opts[mpi_fam]) - else: - raise EasyBuildError("MPI family %s not supported yet (only: %s)", mpi_fam, ', '.join(mpi_opts.keys())) - - # auto-detection for dependencies mostly works fine, but hard specify paths anyway to have full control - deps = { - 'binutils': ['--with-binutils=%s'], - 'OTF': ['--with-otf=%s'], - 'OPARI2': ['--with-opari2=%s'], - 'PAPI': ['--with-papi=%s'], - 'PDT': ['--with-pdt=%s'], - } - for (dep_name, dep_opts) in deps.items(): - dep_root = get_software_root(dep_name) - if dep_root: - for dep_opt in dep_opts: - self.cfg.update('configopts', dep_opt % dep_root) - if get_software_root('Cube'): - self.cfg.update('configopts', '--disable-gui') - - super(EB_Scalasca1, self).configure_step(*args, **kwargs) - - def build_step(self): - """Build Scalasca using make, after stepping into the build dir.""" - build_dir_found = False - try: - for entry in os.listdir(os.getcwd()): - if entry.startswith('build-linux-') and os.path.isdir(entry): - os.chdir(entry) - build_dir_found = True - self.log.info("Stepped into build dir %s" % entry) - except OSError as err: - raise EasyBuildError("Failed to step into build dir before starting actual build: %s", err) - if not build_dir_found: - raise EasyBuildError("Could not find build dir to step into.") - super(EB_Scalasca1, self).build_step() diff --git a/easybuild/easyblocks/s/shrimp.py b/easybuild/easyblocks/s/shrimp.py deleted file mode 100644 index 9c28875e35..0000000000 --- a/easybuild/easyblocks/s/shrimp.py +++ /dev/null @@ -1,96 +0,0 @@ -## -# Copyright 2009-2024 Ghent University -# -# This file is part of EasyBuild, -# originally created by the HPC team of Ghent University (http://ugent.be/hpc/en), -# with support of Ghent University (http://ugent.be/hpc), -# the Flemish Supercomputer Centre (VSC) (https://www.vscentrum.be), -# Flemish Research Foundation (FWO) (http://www.fwo.be/en) -# and the Department of Economy, Science and Innovation (EWI) (http://www.ewi-vlaanderen.be/en). -# -# https://github.com/easybuilders/easybuild -# -# EasyBuild is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation v2. -# -# EasyBuild 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 -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with EasyBuild. If not, see . -## -""" -EasyBuild support for SHRiMP, implemented as an easyblock - -@author: Kenneth Hoste (Ghent University) -""" -import glob -import os -import shutil - -import easybuild.tools.environment as env -from easybuild.easyblocks.generic.configuremake import ConfigureMake -from easybuild.tools.build_log import EasyBuildError - - -class EB_SHRiMP(ConfigureMake): - """Support for building SHRiMP.""" - - def configure_step(self): - """Add openmp compilation flag to CXX_FLAGS.""" - - cxxflags = os.getenv('CXXFLAGS') - - env.setvar('CXXFLAGS', "%s %s" % (cxxflags, self.toolchain.get_flag('openmp'))) - - def install_step(self): - """Install SHRiMP by copying files to install dir, and fix permissions.""" - - try: - for d in ["bin", "utils"]: - shutil.copytree(d, os.path.join(self.installdir, d)) - - cwd = os.getcwd() - - os.chdir(os.path.join(self.installdir, 'utils')) - for f in glob.glob("*.py"): - self.log.info("Fixing permissions of %s in utils" % f) - os.chmod(f, 0o755) - - os.chdir(cwd) - - except OSError as err: - raise EasyBuildError("Failed to copy files to install dir: %s", err) - - def sanity_check_step(self): - """Custom sanity check for SHRiMP.""" - - custom_paths = { - 'files': ['bin/%s' % x for x in ['fasta2fastq', 'gmapper', 'mergesam', - 'prettyprint', 'probcalc', 'probcalc_mp', - 'shrimp2sam', 'shrimp_var']], - 'dirs': ['utils'], - } - - super(EB_SHRiMP, self).sanity_check_step(custom_paths=custom_paths) - - def make_module_req_guess(self): - """Add both 'bin' and 'utils' directories to PATH.""" - - guesses = super(EB_SHRiMP, self).make_module_req_guess() - - guesses.update({'PATH': ['bin', 'utils']}) - - return guesses - - def make_module_extra(self): - """Set SHRIMP_FOLDER environment variable in module.""" - - txt = super(EB_SHRiMP, self).make_module_extra() - - txt += self.module_generator.set_environment('SHRIMP_FOLDER', self.installdir) - - return txt diff --git a/easybuild/easyblocks/s/soapdenovo.py b/easybuild/easyblocks/s/soapdenovo.py deleted file mode 100644 index 79c9176c37..0000000000 --- a/easybuild/easyblocks/s/soapdenovo.py +++ /dev/null @@ -1,66 +0,0 @@ -## -# This file is an EasyBuild reciPY as per https://github.com/easybuilders/easybuild -# -# Copyright:: Copyright 2012-2024 Uni.Lu/LCSB, NTUA -# Authors:: Cedric Laczny , Fotis Georgatos , Kenneth Hoste -# License:: MIT/GPL -# $Id$ -# -# This work implements a part of the HPCBIOS project and is a component of the policy: -# http://hpcbios.readthedocs.org/en/latest/HPCBIOS_2012-94.html -## -""" -EasyBuild support for building SOAPdenovo, implemented as an easyblock - -@author: Cedric Laczny (Uni.Lu) -@author: Fotis Georgatos (Uni.Lu) -@author: Kenneth Hoste (Ghent University) -""" -import os -import shutil - -from easybuild.easyblocks.generic.configuremake import ConfigureMake -from easybuild.tools.build_log import EasyBuildError - - -class EB_SOAPdenovo(ConfigureMake): - """ - Support for building SOAPdenovo. - """ - - def __init__(self, *args, **kwargs): - """Define lists of files to install.""" - super(EB_SOAPdenovo, self).__init__(*args, **kwargs) - - self.bin_suffixes = ["31mer", "63mer", "127mer"] - - def configure_step(self): - """ - Skip the configure as not part of this build process - """ - pass - - def install_step(self): - """ - Install by copying files to install dir - """ - srcdir = self.cfg['start_dir'] - destdir = os.path.join(self.installdir, 'bin') - srcfile = None - try: - os.makedirs(destdir) - for suff in self.bin_suffixes: - srcfile = os.path.join(srcdir, "bin", "SOAPdenovo-%s" % suff) - shutil.copy2(srcfile, destdir) - except OSError as err: - raise EasyBuildError("Copying %s to installation dir %s failed: %s", srcfile, destdir, err) - - def sanity_check_step(self): - """Custom sanity check for SOAPdenovo.""" - - custom_paths = { - 'files': ['bin/SOAPdenovo-%s' % x for x in self.bin_suffixes], - 'dirs': [] - } - - super(EB_SOAPdenovo, self).sanity_check_step(custom_paths=custom_paths) diff --git a/easybuild/easyblocks/u/ufc.py b/easybuild/easyblocks/u/ufc.py deleted file mode 100644 index cbf087b08a..0000000000 --- a/easybuild/easyblocks/u/ufc.py +++ /dev/null @@ -1,94 +0,0 @@ -## -# Copyright 2012-2024 Ghent University -# -# This file is part of EasyBuild, -# originally created by the HPC team of Ghent University (http://ugent.be/hpc/en), -# with support of Ghent University (http://ugent.be/hpc), -# the Flemish Supercomputer Centre (VSC) (https://www.vscentrum.be), -# Flemish Research Foundation (FWO) (http://www.fwo.be/en) -# and the Department of Economy, Science and Innovation (EWI) (http://www.ewi-vlaanderen.be/en). -# -# https://github.com/easybuilders/easybuild -# -# EasyBuild is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation v2. -# -# EasyBuild 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 -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with EasyBuild. If not, see . -## -""" -EasyBuild support for UFC, implemented as an easyblock - -@author: Kenneth Hoste (Ghent University) -""" -from easybuild.tools import LooseVersion - -from easybuild.easyblocks.generic.cmakepythonpackage import CMakePythonPackage -from easybuild.tools.build_log import EasyBuildError -from easybuild.tools.modules import get_software_root, get_software_version -from easybuild.tools.systemtools import get_shared_lib_ext - - -class EB_UFC(CMakePythonPackage): - """Support for building UFC.""" - - def __init__(self, *args, **kwargs): - """Custom initialization for UFC: set correct module name.""" - super(EB_UFC, self).__init__(*args, **kwargs) - - self.options.update({'modulename': 'ufc_utils'}) - - def configure_step(self): - """Set some extra environment variables before configuring.""" - shlib_ext = get_shared_lib_ext() - - # make sure that required dependencies are loaded - deps = ['Boost', 'Python', 'SWIG'] - depsdict = {} - for dep in deps: - deproot = get_software_root(dep) - if not deproot: - raise EasyBuildError("%s module not loaded?", dep) - else: - depsdict.update({dep: deproot}) - - # SWIG version more recent than 2.0.4 have a regression - # which causes problems with e.g. DOLFIN if UFC was built with it - # fixed in 2.0.7? see https://bugs.launchpad.net/dolfin/+bug/996398 - if LooseVersion(get_software_version('SWIG')) > '2.0.4': - raise EasyBuildError("Using bad version of SWIG, expecting swig <= 2.0.4. " - "See https://bugs.launchpad.net/dolfin/+bug/996398") - - self.pyver = ".".join(get_software_version('Python').split(".")[:-1]) - - self.cfg.update('configopts', "-DBoost_DIR=%s" % depsdict['Boost']) - self.cfg.update('configopts', "-DBOOST_INCLUDEDIR=%s/include" % depsdict['Boost']) - self.cfg.update('configopts', "-DBoost_DEBUG=ON -DBOOST_ROOT=%s" % depsdict['Boost']) - - self.cfg.update('configopts', '-DUFC_ENABLE_PYTHON:BOOL=ON') - self.cfg.update('configopts', '-DSWIG_FOUND:BOOL=ON') - python = depsdict['Python'] - self.cfg.update('configopts', '-DPYTHON_LIBRARY=%s/lib/libpython%s.%s' % (python, self.pyver, shlib_ext)) - self.cfg.update('configopts', '-DPYTHON_INCLUDE_PATH=%s/include/python%s' % (python, self.pyver)) - - super(EB_UFC, self).configure_step() - - def test_step(self): - """No test suite available for UFC.""" - # PythonPackage defines 'runtest' as 'True' by default, but ConfigureMake.test_step expects string value - # no test suite available anyway for UFC, so just pass through - pass - - def sanity_check_step(self): - """Custom sanity check for UFC.""" - custom_paths = { - 'files': ['include/ufc.h'], - 'dirs': ['lib/python%s/site-packages/%s/' % (self.pyver, x) for x in ['ufc', 'ufc_utils']], - } - super(EB_UFC, self).sanity_check_step(custom_paths=custom_paths)