From b55488a83255915f86dd86cc5a954274237f0cb8 Mon Sep 17 00:00:00 2001
From: Josef Hrabal <josef.hrabal@vsb.cz>
Date: Mon, 4 Nov 2019 10:55:25 +0100
Subject: [PATCH] 	new file:   p/PETSc/PETSc-3.12.1-intel-2017a-it4i.eb

---
 p/PETSc/PETSc-3.12.1-intel-2017a-it4i.eb | 55 ++++++++++++++++++++++++
 1 file changed, 55 insertions(+)
 create mode 100644 p/PETSc/PETSc-3.12.1-intel-2017a-it4i.eb

diff --git a/p/PETSc/PETSc-3.12.1-intel-2017a-it4i.eb b/p/PETSc/PETSc-3.12.1-intel-2017a-it4i.eb
new file mode 100644
index 00000000..91615b28
--- /dev/null
+++ b/p/PETSc/PETSc-3.12.1-intel-2017a-it4i.eb
@@ -0,0 +1,55 @@
+# IT4Innovations 2019
+
+easyblock = 'ConfigureMake'
+name = 'PETSc'
+version = '3.12.1'
+versionsuffix = '-it4i'
+
+homepage = 'http://www.mcs.anl.gov/petsc'
+description = """PETSc, pronounced PET-see (the S is silent), is a suite of data structures and routines for the
+ scalable (parallel) solution of scientific applications modeled by partial differential equations."""
+
+toolchain = {'name': 'intel', 'version': '2017a'}
+
+# build is still parallel, PETSc make doesnt support -j opt
+maxparallel = 0
+
+source_urls = ['http://ftp.mcs.anl.gov/pub/petsc/release-snapshots']
+sources = [SOURCELOWER_TAR_GZ]
+
+# (build) dependencies provided through EasyBuild
+builddependencies = [('CMake', '3.14.1', '', True)]
+
+# configure installs dependencies -> remove installdir before configure
+keeppreviousinstall = True
+preconfigopts = 'rm -rf %(installdir)s;'
+
+petscArch = 'intel-opt'
+petscDir = '%(builddir)s/%(namelower)s-%(version)s'
+
+# config options
+configopts = '--CFLAGS=-O3 -xHost --CXXFLAGS=-O3 -xHost --FFLAGS=-O3 -xHost --with-c++-support --with-pic=1 '
+configopts += '--with-cc=mpicc --with-cxx=mpicxx --with-fc=mpif90 --with-debugging=0 --with-gnu-compilers=0 '
+configopts += '--with-mpi=1 --with-x=0 '
+configopts += '--download-metis --download-parmetis --download-mumps --download-superlu --download-superlu_dist '
+configopts += '--with-blas-lapack-lib=[$EBROOTIMKL/mkl/lib/intel64_lin/libmkl_intel_lp64.a,libmkl_sequential.a,libmkl_core.a] '
+configopts += '--with-scalapack-include=$EBROOTIMKL/mkl/include '
+configopts += '--with-scalapack-lib=[$EBROOTIMKL/mkl/lib/intel64_lin/libmkl_scalapack_lp64.a,libmkl_blacs_intelmpi_lp64.a,libmkl_intel_lp64.a,libmkl_sequential.a,libmkl_core.a] '
+configopts += '--with-scalapack=1 '
+configopts += 'PETSC_ARCH=%s' % petscArch
+
+installopts = 'PETSC_DIR=%s PETSC_ARCH=%s' % (petscDir, petscArch)
+buildopts = installopts + ' all'
+
+modextravars = {'PETSC_DIR': '%(installdir)s'}
+modextrapaths = {'PATH': 'lib/petsc/bin'}
+
+moduleclass = 'numlib'
+
+# sanity checks
+runtest = 'test'   # run make test after make
+sanity_check_paths = {
+    'files': ['include/petscconf.h', 'lib/libpetsc.so'],
+    'dirs': []
+}
+sanity_check_commands = [('petscmpiexec', '-h')]