commit 24bfd69f16c30bd4846f9a721c6500a6e36bf8d3 Author: Lukas Krupcik Date: Thu Mar 9 11:57:40 2017 +0100 .add code.it4i.cz backup diff --git a/a/ABAQUS/ABAQUS-6.12.1-linux-x86_64.eb b/a/ABAQUS/ABAQUS-6.12.1-linux-x86_64.eb new file mode 100644 index 00000000..094f6485 --- /dev/null +++ b/a/ABAQUS/ABAQUS-6.12.1-linux-x86_64.eb @@ -0,0 +1,16 @@ +name = 'ABAQUS' +version = '6.12.1' +versionsuffix = '-linux-x86_64' + +homepage = 'http://www.simulia.com/products/abaqus_fea.html' +description = "Finite Element Analysis software for modeling, visualization and best-in-class implicit and explicit dynamics FEA." + +toolchain = {'name': 'dummy', 'version': ''} + +sources = [SOURCE_TGZ] + +builddependencies = [('Java', '1.7.0_60')] + +preinstallopts = "export CHECK_DISK_SPACE=OFF && " + +moduleclass = 'cae' diff --git a/a/ABAQUS/ABAQUS-6.13.5-linux-x86_64.eb b/a/ABAQUS/ABAQUS-6.13.5-linux-x86_64.eb new file mode 100644 index 00000000..f899ce8f --- /dev/null +++ b/a/ABAQUS/ABAQUS-6.13.5-linux-x86_64.eb @@ -0,0 +1,16 @@ +name = 'ABAQUS' +version = '6.13.5' +versionsuffix = '-linux-x86_64' + +homepage = 'http://www.simulia.com/products/abaqus_fea.html' +description = "Finite Element Analysis software for modeling, visualization and best-in-class implicit and explicit dynamics FEA." + +toolchain = {'name': 'dummy', 'version': ''} + +sources = [SOURCE_TGZ] + +builddependencies = [('Java', '1.7.0_60')] + +preinstallopts = "export CHECK_DISK_SPACE=OFF && " + +moduleclass = 'cae' diff --git a/a/ABAQUS/ABAQUS-6.14.1-linux-x86_64.eb b/a/ABAQUS/ABAQUS-6.14.1-linux-x86_64.eb new file mode 100644 index 00000000..2063066a --- /dev/null +++ b/a/ABAQUS/ABAQUS-6.14.1-linux-x86_64.eb @@ -0,0 +1,16 @@ +name = 'ABAQUS' +version = '6.14.1' +versionsuffix = '-linux-x86_64' + +homepage = 'http://www.simulia.com/products/abaqus_fea.html' +description = "Finite Element Analysis software for modeling, visualization and best-in-class implicit and explicit dynamics FEA." + +toolchain = {'name': 'dummy', 'version': ''} + +sources = [SOURCE_TGZ] + +builddependencies = [('Java', '1.7.0_60')] + +preinstallopts = "export CHECK_DISK_SPACE=OFF && " + +moduleclass = 'cae' diff --git a/a/ABINIT/ABINIT-7.10.1-foss-2015b.eb b/a/ABINIT/ABINIT-7.10.1-foss-2015b.eb new file mode 100644 index 00000000..45870abc --- /dev/null +++ b/a/ABINIT/ABINIT-7.10.1-foss-2015b.eb @@ -0,0 +1,30 @@ +# ABINIT recipe +# 2015 Martin Stachon +## + +easyblock = "ConfigureMake" + +name = 'ABINIT' +version = '7.10.1' + +homepage = 'http://www.abinit.org/' +description = """Abinit is a plane wave pseudopotential code for doing + condensed phase electronic structure calculations using DFT.""" + +toolchain = {'name': 'foss', 'version': '2015b'} + +# eg. http://ftp.abinit.org/abinit-7.10.1.tar.gz +sources = [('abinit-%s.tar.gz' % (version), 'tar xfz %s')] +source_urls = ['http://ftp.abinit.org/'] + +#sanity_check_paths = { +# 'files': ["bin/abinit"], +# 'dirs': [] +# } + +moduleclass = 'chem' + +configopts = '''CC=mpicc CXX=mpicxx FC=mpif90 --enable-mpi --enable-mpi-io --enable-64bit-flags --enable-optim="yes" --enable-clib="yes"''' + \ + ''' --enable-gw-dpc="yes" --enable-memory-profiling="no" --enable-openmp="no" --enable-maintainer-checks="no"''' + \ + ''' --enable-debug="no" ''' + \ + ''' --with-trio-flavor="netcdf+etsf_io+fox" --with-dft-flavor="atompaw+bigdft+libxc+wannier90"''' diff --git a/a/ABINIT/ABINIT-7.10.1-goolf-1.5.16.eb b/a/ABINIT/ABINIT-7.10.1-goolf-1.5.16.eb new file mode 100644 index 00000000..a4d74a5e --- /dev/null +++ b/a/ABINIT/ABINIT-7.10.1-goolf-1.5.16.eb @@ -0,0 +1,32 @@ +## +# ABINIT recipe +# 2015 Martin Stachon +## + +easyblock = "ConfigureMake" + +name = 'ABINIT' +version = '7.10.1' + +homepage = 'http://www.abinit.org/' +description = """Abinit is a plane wave pseudopotential code for doing + condensed phase electronic structure calculations using DFT.""" + +toolchain = {'name': 'goolf', 'version': '1.5.16'} + +# eg. http://ftp.abinit.org/abinit-7.10.1.tar.gz +sources = [('abinit-%s.tar.gz' % (version), 'tar xfz %s')] +source_urls = ['http://ftp.abinit.org/'] + +#sanity_check_paths = { +# 'files': ["bin/abinit"], +# 'dirs': [] +# } + +moduleclass = 'chem' + +configopts = '''CC=mpicc CXX=mpicxx FC=mpif90 --enable-mpi --enable-mpi-io --enable-64bit-flags --enable-optim="yes" --enable-clib="yes"''' + \ + ''' --enable-gw-dpc="yes" --enable-memory-profiling="no" --enable-openmp="no" --enable-maintainer-checks="no"''' + \ + ''' --enable-debug="no" ''' + \ + ''' --with-trio-flavor="netcdf+etsf_io+fox" --with-dft-flavor="atompaw+bigdft+libxc+wannier90"''' + diff --git a/a/ADF/ADF-2014.02.eb b/a/ADF/ADF-2014.02.eb new file mode 100644 index 00000000..045e5244 --- /dev/null +++ b/a/ADF/ADF-2014.02.eb @@ -0,0 +1,31 @@ +easyblock = 'Tarball' + +name = 'ADF' +version = '2014.02' + +homepage = 'http://www.scm.com/ADF/' +description = """ADF is an accurate, parallelized, powerful computational chemistry program to understand and + predict chemical structure and reactivity with density functional theory (DFT).""" + +toolchain = {'name': 'dummy', 'version': 'dummy'} + +sources = ['%(namelower)s%(version)s.pc64_linux.IntelMPI+CUDA.tgz'] + +keepsymlinks = True + +sanity_check_paths = { + 'files': [], + 'dirs': ['atomicdata', 'bin', 'examples'], +} + +modextravars = { + 'ADFHOME': '%(installdir)s', + 'ADFBIN': '%(installdir)s/bin', + 'ADFRESOURCES': '%(installdir)s/atomicdata', +} + +modloadmsg = "These environment variables need to be defined before using ADF:\n" +modloadmsg += " * $SCMLICENSE: path to ADF license file\n" +modloadmsg += " * $SCM_TMPDIR: path to user scratch directory" + +moduleclass = 'chem' diff --git a/a/ADF/ADF-2014.11.r48287-intel-2016a.eb b/a/ADF/ADF-2014.11.r48287-intel-2016a.eb new file mode 100644 index 00000000..21843552 --- /dev/null +++ b/a/ADF/ADF-2014.11.r48287-intel-2016a.eb @@ -0,0 +1,22 @@ +name = 'ADF' +version = '2014.11.r48287' + +homepage = 'http://www.scm.com/ADF/' +description = """ADF is an accurate, parallelized, powerful computational chemistry program to understand and + predict chemical structure and reactivity with density functional theory (DFT).""" + +toolchain = {'name': 'intel', 'version': '2016a'} + +sources = [ + '%(namelower)s%(version)s.src.tgz', + # no exact match on revision ID available, but not strictly needed + 'fix2014.pc64_linux.intelmpi.r48660.2.555.bin.tgz', +] + +license_file = HOME + "/licenses/ADF/license.txt" + +modloadmsg = "These environment variables need to be defined before using ADF:\n" +modloadmsg += " * $SCMLICENSE: path to ADF license file\n" +modloadmsg += " * $SCM_TMPDIR: path to user scratch directory" + +moduleclass = 'chem' diff --git a/a/ADF/ADF-2016.101.eb b/a/ADF/ADF-2016.101.eb new file mode 100644 index 00000000..5fe5e14c --- /dev/null +++ b/a/ADF/ADF-2016.101.eb @@ -0,0 +1,31 @@ +easyblock = 'Tarball' + +name = 'ADF' +version = '2016.101' + +homepage = 'http://www.scm.com/ADF/' +description = """ADF is an accurate, parallelized, powerful computational chemistry program to understand and + predict chemical structure and reactivity with density functional theory (DFT).""" + +toolchain = {'name': 'dummy', 'version': 'dummy'} + +sources = ['adf%(version)s.pc64_linux.intelmpi.tgz'] + +keepsymlinks = True + +sanity_check_paths = { + 'files': [], + 'dirs': ['atomicdata', 'bin', 'examples'], +} + +modextravars = { + 'ADFHOME': '%(installdir)s', + 'ADFBIN': '%(installdir)s/bin', + 'ADFRESOURCES': '%(installdir)s/atomicdata', +} + +modloadmsg = "These environment variables need to be defined before using ADF:\n" +modloadmsg += " * $SCMLICENSE: path to ADF license file\n" +modloadmsg += " * $SCM_TMPDIR: path to user scratch directory" + +moduleclass = 'chem' diff --git a/a/ALLPATHS-LG/ALLPATHS-LG-46968-goolf-1.4.10.eb b/a/ALLPATHS-LG/ALLPATHS-LG-46968-goolf-1.4.10.eb new file mode 100644 index 00000000..bde28633 --- /dev/null +++ b/a/ALLPATHS-LG/ALLPATHS-LG-46968-goolf-1.4.10.eb @@ -0,0 +1,33 @@ +## +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# +# Copyright:: Copyright 2012-2013 The Cyprus Institute +# Authors:: Andreas Panteli , Thekla Loizou , George Tsouloupas +# License:: MIT/GPL +# +## + +easyblock = 'ConfigureMake' + +name = 'ALLPATHS-LG' +version = '46968' + +homepage = 'http://www.broadinstitute.org/software/allpaths-lg/blog/' +description = """ALLPATHS-LG, the new short read genome assembler.""" + +toolchain = {'name': 'goolf', 'version': '1.4.10'} + +# source is moved over time, hence multiple URLs below +source_urls = [ + 'ftp://ftp.broadinstitute.org/pub/crd/ALLPATHS/Release-LG/latest_source_code', + 'ftp://ftp.broadinstitute.org/pub/crd/ALLPATHS/Release-LG/latest_source_code/2013-06', + 'ftp://ftp.broadinstitute.org/pub/crd/ALLPATHS/Release-LG/latest_source_code/2013/2013-06', +] +sources = ['allpathslg-%(version)s.tar.gz'] + +sanity_check_paths = { + 'files': [], + 'dirs': ['bin'], +} + +moduleclass = 'bio' diff --git a/a/ALPS/ALPS-2.3.0-foss-2016b-Python-2.7.12.eb b/a/ALPS/ALPS-2.3.0-foss-2016b-Python-2.7.12.eb new file mode 100644 index 00000000..12d87fd3 --- /dev/null +++ b/a/ALPS/ALPS-2.3.0-foss-2016b-Python-2.7.12.eb @@ -0,0 +1,40 @@ +easyblock = 'CMakeMake' + +name = 'ALPS' +version = '2.3.0' +versionsuffix = '-Python-%(pyver)s' + +homepage = "http://alps.comp-phys.org/" +description = """The ALPS project (Algorithms and Libraries for Physics Simulations) is an open source effort + aiming at providing high-end simulation codes for strongly correlated quantum mechanical systems as well as + C++ libraries for simplifying the development of such code. +""" + +toolchain = {'name': 'foss', 'version': '2016b'} +toolchainopts = {'cstd': 'c++03'} + +sources = ['%(namelower)s-%(version)s-src.tar.gz'] +source_urls = ['http://alps.comp-phys.org/static/software/releases/'] + +dependencies = [ + ('CMake', '3.6.2'), + ('Python', '2.7.12'), + ('Boost', '1.63.0', versionsuffix), + ('HDF5', '1.8.17') +] + +separate_build_dir = True + +modextravars = { + 'ALPS_ROOT': '$root', +} +modextrapaths = { + 'PYTHONPATH': ['lib/'] +} + +sanity_check_paths={ + 'files': ['lib/libalps.%s' % SHLIB_EXT], + 'dirs': ['include/alps', 'bin/', 'share/'], +} + +moduleclass = 'phys' diff --git a/a/ALPS/ALPS-2.3.0-foss-2016b-Python-3.5.2.eb b/a/ALPS/ALPS-2.3.0-foss-2016b-Python-3.5.2.eb new file mode 100644 index 00000000..33dbe5c7 --- /dev/null +++ b/a/ALPS/ALPS-2.3.0-foss-2016b-Python-3.5.2.eb @@ -0,0 +1,40 @@ +easyblock = 'CMakeMake' + +name = 'ALPS' +version = '2.3.0' +versionsuffix = '-Python-%(pyver)s' + +homepage = "http://alps.comp-phys.org/" +description = """The ALPS project (Algorithms and Libraries for Physics Simulations) is an open source effort + aiming at providing high-end simulation codes for strongly correlated quantum mechanical systems as well as + C++ libraries for simplifying the development of such code. +""" + +toolchain = {'name': 'foss', 'version': '2016b'} +toolchainopts = {'cstd': 'c++03'} + +sources = ['%(namelower)s-%(version)s-src.tar.gz'] +source_urls = ['http://alps.comp-phys.org/static/software/releases/'] + +dependencies = [ + ('CMake', '3.6.2'), + ('Python', '3.5.2'), + ('Boost', '1.63.0', versionsuffix), + ('HDF5', '1.8.17') +] + +separate_build_dir = True + +modextravars = { + 'ALPS_ROOT': '$root', +} +modextrapaths = { + 'PYTHONPATH': ['lib/'] +} + +sanity_check_paths={ + 'files': ['lib/libalps.%s' % SHLIB_EXT], + 'dirs': ['include/alps', 'bin/', 'share/'], +} + +moduleclass = 'phys' diff --git a/a/ANSYS/ANSYS-18.0.eb b/a/ANSYS/ANSYS-18.0.eb new file mode 100644 index 00000000..8c281023 --- /dev/null +++ b/a/ANSYS/ANSYS-18.0.eb @@ -0,0 +1,19 @@ +name = 'ANSYS' +version = '18.0' + +homepage = 'http://www.ansys.com' +description = """ANSYS simulation software enables organizations to confidently predict + how their products will operate in the real world. We believe that every product is + a promise of something greater. """ + +toolchain = {'name': 'dummy', 'version': 'dummy'} + +# create a zip file from the 3 install iso files. +# make sure all files of the iso's are in the same directory. +sources = ['ANSYS-18.0.zip'] + +import os +license_server = os.getenv('EB_ANSYS_LICENSE_SERVER', 'license.it4i.cz') +license_server_port = os.getenv('EB_ANSYS_LICENSE_SERVER_PORT', '2325:1055') + +moduleclass = 'tools' diff --git a/a/ASHS/ASHS-rev103_20140612.eb b/a/ASHS/ASHS-rev103_20140612.eb new file mode 100644 index 00000000..1e7fda13 --- /dev/null +++ b/a/ASHS/ASHS-rev103_20140612.eb @@ -0,0 +1,29 @@ +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# Author: Ravi Tripathi +# Email: ravi89@uab.edu + +easyblock = "Tarball" + +name = 'ASHS' +version = 'rev103_20140612' + +homepage = 'https://sites.google.com/site/hipposubfields/home' +description = """ Automatic Segmentation of Hippocampal Subfields (ASHS) """ + +toolchain = {'name': 'dummy', 'version': 'dummy'} + +#You need to create an account to download the source +#from https://www.nitrc.org/frs/?group_id=370 +sources = ['ashs_Linux64_%(version)s.tgz'] + +checksums= ["07fea2883b856af8797b200212b72e71"] + +modextravars = {'ASHS_ROOT': '%(installdir)s'} + +sanity_check_paths = { + 'files': ["bin/ashs_main.sh", "bin/ashs_template_qsub.sh", "bin/ashs_train.sh", + "bin/ashs_util_makepdf.sh"], + 'dirs': ["ext"] +} + +moduleclass = 'bio' diff --git a/a/Advisor/Advisor-2016_update2.eb b/a/Advisor/Advisor-2016_update2.eb new file mode 100644 index 00000000..0e9c615b --- /dev/null +++ b/a/Advisor/Advisor-2016_update2.eb @@ -0,0 +1,21 @@ +name = 'Advisor' +version = '2016_update2' + +homepage = 'https://software.intel.com/intel-advisor-xe' +description = """Vectorization Optimization and Thread Prototyping + - Vectorize & thread code or performance “dies” + - Easy workflow + data + tips = faster code faster + - Prioritize, Prototype & Predict performance gain + """ + +toolchain = {'name': 'dummy', 'version': 'dummy'} + +sources = ['advisor_xe_%(version)s.tar.gz'] + +dontcreateinstalldir = 'True' + +# license file +import os +license_file = os.path.join(os.getenv('HOME'), "licenses", "intel", "license.lic") + +moduleclass = 'perf' diff --git a/a/Advisor/Advisor-2017_update1.eb b/a/Advisor/Advisor-2017_update1.eb new file mode 100644 index 00000000..22d5beba --- /dev/null +++ b/a/Advisor/Advisor-2017_update1.eb @@ -0,0 +1,23 @@ +name = 'Advisor' +version = '2017_update1' + +homepage = 'https://software.intel.com/intel-advisor-xe' +description = """Vectorization Optimization and Thread Prototyping + - Vectorize & thread code or performance “dies” + - Easy workflow + data + tips = faster code faster + - Prioritize, Prototype & Predict performance gain + """ + +toolchain = {'name': 'dummy', 'version': 'dummy'} + +sources = ['advisor_%(version)s.tar.gz'] + +checksums = ['af87b381394be3100507827a3461b3bc'] + +dontcreateinstalldir = 'True' + +# license file +import os +license_file = os.path.join(os.getenv('HOME'), "licenses", "intel", "license.lic") + +moduleclass = 'perf' diff --git a/a/Allinea/Allinea-4.1-32834-Redhat-5.7-x86_64.eb b/a/Allinea/Allinea-4.1-32834-Redhat-5.7-x86_64.eb new file mode 100644 index 00000000..d4565683 --- /dev/null +++ b/a/Allinea/Allinea-4.1-32834-Redhat-5.7-x86_64.eb @@ -0,0 +1,17 @@ +name = 'Allinea' +version = '4.1-32834-Redhat-5.7-x86_64' + +homepage = 'http://www.allinea.com' +description = """The Allinea environment is an essential toolkit for developers and computational scientists +looking to get results faster.""" + +toolchain = {'name': 'dummy', 'version': 'dummy'} + +source_urls = ['http://content.allinea.com/downloads/'] +sources = ['%(namelower)s-tools-%(version)s.tar'] + +# license file +import os +license_file = os.path.join(os.getenv('HOME'), "licenses", "allinea", "license.lic") + +moduleclass = 'tools' diff --git a/a/Allinea/Allinea-4.1-32834-Redhat-6.0-x86_64.eb b/a/Allinea/Allinea-4.1-32834-Redhat-6.0-x86_64.eb new file mode 100644 index 00000000..90466a26 --- /dev/null +++ b/a/Allinea/Allinea-4.1-32834-Redhat-6.0-x86_64.eb @@ -0,0 +1,17 @@ +name = 'Allinea' +version = '4.1-32834-Redhat-6.0-x86_64' + +homepage = 'http://www.allinea.com' +description = """The Allinea environment is an essential toolkit for developers and computational scientists +looking to get results faster.""" + +toolchain = {'name': 'dummy', 'version': 'dummy'} + +source_urls = ['http://content.allinea.com/downloads/'] +sources = ['%(namelower)s-tools-%(version)s.tar'] + +# license file +import os +license_file = os.path.join(os.getenv('HOME'), "licenses", "allinea", "license.lic") + +moduleclass = 'tools' diff --git a/a/Allinea/Allinea-6.1.1-Ubuntu-14.04-x86_64.eb b/a/Allinea/Allinea-6.1.1-Ubuntu-14.04-x86_64.eb new file mode 100644 index 00000000..9a71b607 --- /dev/null +++ b/a/Allinea/Allinea-6.1.1-Ubuntu-14.04-x86_64.eb @@ -0,0 +1,25 @@ +name = 'Allinea' +version = '6.1.1-Ubuntu-14.04-x86_64' + +homepage = 'http://www.allinea.com' +description = """The Allinea environment is an essential toolkit for developers and computational scientists +looking to get results faster.""" + +toolchain = {'name': 'dummy', 'version': 'dummy'} + +source_urls = ['http://content.allinea.com/downloads/'] +sources = ['%(namelower)s-forge-%(version)s.tar'] + +# Example of templates usage +#templates = [ +# 'kebnekaise.qtf', +# 'kebnekaise-gpu.qtf', +#] + +# Example of sysconfig usage +#sysconfig = 'system.config.hpc2n' + +# license file +license_file = HOME + '/licenses/allinea/license.lic' + +moduleclass = 'tools' diff --git a/a/Amber/Amber-16-iomkl-2016.07-AmberTools-16-patchlevel-5-14-serial.eb b/a/Amber/Amber-16-iomkl-2016.07-AmberTools-16-patchlevel-5-14-serial.eb new file mode 100644 index 00000000..4e451954 --- /dev/null +++ b/a/Amber/Amber-16-iomkl-2016.07-AmberTools-16-patchlevel-5-14-serial.eb @@ -0,0 +1,29 @@ +name = 'Amber' +version = '16' +ambertools_ver = '16' +# Patch levels from http://ambermd.org/bugfixes16.html and http://ambermd.org/bugfixesat.html +patchlevels = (5, 14) # (AmberTools, Amber) +versionsuffix = '-AmberTools-%s-patchlevel-%s-%s-serial' %(ambertools_ver, patchlevels[0], patchlevels[1]) + +homepage = 'http://ambermd.org/amber.html' +description = """Amber (originally Assisted Model Building with Energy + Refinement) is software for performing molecular dynamics and structure + prediction.""" + +toolchain = {'name': 'iomkl', 'version': '2016.07'} +toolchainopts = {'usempi': False} + +sources = [ + 'Amber%(version)s.tar.bz2', + 'AmberTools%s.tar.bz2' % ambertools_ver, +] + +patches = ['Amber-%(version)s_fix-hardcoding.patch'] + +dependencies = [ + ('netCDF', '4.4.0'), + ('netCDF-Fortran', '4.4.4'), + ('Python', '2.7.11'), +] + +moduleclass = 'chem' diff --git a/a/Amber/Amber-16-iomkl-2016.07-AmberTools-16-patchlevel-5-14.eb b/a/Amber/Amber-16-iomkl-2016.07-AmberTools-16-patchlevel-5-14.eb new file mode 100644 index 00000000..f910ba54 --- /dev/null +++ b/a/Amber/Amber-16-iomkl-2016.07-AmberTools-16-patchlevel-5-14.eb @@ -0,0 +1,29 @@ +name = 'Amber' +version = '16' +ambertools_ver = '16' +# Patch levels from http://ambermd.org/bugfixes16.html and http://ambermd.org/bugfixesat.html +patchlevels = (5, 14) # (AmberTools, Amber) +versionsuffix = '-AmberTools-%s-patchlevel-%s-%s' %(ambertools_ver, patchlevels[0], patchlevels[1]) + +homepage = 'http://ambermd.org/amber.html' +description = """Amber (originally Assisted Model Building with Energy + Refinement) is software for performing molecular dynamics and structure + prediction.""" + +toolchain = {'name': 'iomkl', 'version': '2016.07'} +toolchainopts = {'usempi': True} + +sources = [ + 'Amber%(version)s.tar.bz2', + 'AmberTools%s.tar.bz2' % ambertools_ver, +] + +patches = ['Amber-%(version)s_fix-hardcoding.patch'] + +dependencies = [ + ('netCDF', '4.4.0'), + ('netCDF-Fortran', '4.4.4'), + ('Python', '2.7.11'), +] + +moduleclass = 'chem' diff --git a/a/Amber/Amber-16-iomkl-2016.09-GCC-4.9.3-2.25-AmberTools-16-patchlevel-5-14-CUDA.eb b/a/Amber/Amber-16-iomkl-2016.09-GCC-4.9.3-2.25-AmberTools-16-patchlevel-5-14-CUDA.eb new file mode 100644 index 00000000..1b29f57d --- /dev/null +++ b/a/Amber/Amber-16-iomkl-2016.09-GCC-4.9.3-2.25-AmberTools-16-patchlevel-5-14-CUDA.eb @@ -0,0 +1,32 @@ +name = 'Amber' +version = '16' +ambertools_ver = '16' +# Patch levels from http://ambermd.org/bugfixes16.html and http://ambermd.org/bugfixesat.html +patchlevels = (5, 14) # (AmberTools, Amber) +versionsuffix = '-AmberTools-%s-patchlevel-%s-%s-CUDA' %(ambertools_ver, patchlevels[0], patchlevels[1]) + +homepage = 'http://ambermd.org/amber.html' +description = """Amber (originally Assisted Model Building with Energy + Refinement) is software for performing molecular dynamics and structure + prediction.""" + +toolchain = {'name': 'iomkl', 'version': '2016.09-GCC-4.9.3-2.25'} +toolchainopts = {'usempi': True} + +sources = [ + 'Amber%(version)s.tar.bz2', + 'AmberTools%s.tar.bz2' % ambertools_ver, +] + +patches = ['Amber-%(version)s_fix-hardcoding.patch', + 'Amber-%(version)s_test_cuda.patch'] + + +dependencies = [ + ('CUDA', '7.5.18', '', True), + ('netCDF', '4.4.0'), + ('netCDF-Fortran', '4.4.4'), + ('Python', '2.7.11'), +] + +moduleclass = 'chem' diff --git a/a/AmberTools/AmberTools-15-intel-2015b-Python-2.7.11.eb b/a/AmberTools/AmberTools-15-intel-2015b-Python-2.7.11.eb new file mode 100644 index 00000000..8f07d270 --- /dev/null +++ b/a/AmberTools/AmberTools-15-intel-2015b-Python-2.7.11.eb @@ -0,0 +1,46 @@ +# +# modified by Stephane Thiell (Stanford University) for Amber v14 +# +# author: Benjamin P. Roberts (University of Auckland) +# +# based on work by Marios Constantinou (University of Cyprus) +# +easyblock = 'ConfigureMake' + +name = 'AmberTools' +version = '14' + +homepage = 'http://ambermd.org/amber.html' +description = """Amber (originally Assisted Model Building with Energy + Refinement) is software for performing molecular dynamics and structure + prediction.""" + +toolchain = {'name': 'intel', 'version': '2016a'} +toolchainopts = {'openmp': False, 'usempi': True} + +ambertools_ver = '15' +sources = [ +# 'Amber%(version)s.tar.bz2', + 'AmberTools%s.tar.bz2' % ambertools_ver, +] + +configopts = '--no-updates' + +#patches = [ +# 'Amber-%(version)s_fix-hardcoding.patch', +# 'AmberTools-%s_fix-mdgx-print-bug.patch' % ambertools_ver, +#] + +dependencies = [ +# ('CUDA', '7.5.18', '', True), +# ('netCDF', '4.4.0'), +# ('netCDF-Fortran', '4.4.4'), + ('Python', '2.7.11'), +] + +patchlevels = (13, 13) +patchruns = 1 + +versionsuffix = '-Python-2.7.11)' + +moduleclass = 'chem' diff --git a/a/AmberTools/AmberTools-16-intel-2015b-Python-2.7.11.eb b/a/AmberTools/AmberTools-16-intel-2015b-Python-2.7.11.eb new file mode 100644 index 00000000..f35306dc --- /dev/null +++ b/a/AmberTools/AmberTools-16-intel-2015b-Python-2.7.11.eb @@ -0,0 +1,36 @@ +easyblock = 'ConfigureMake' + +name = 'AmberTools' +version = '16' + +homepage = 'http://ambermd.org/amber.html' +description = """Amber (originally Assisted Model Building with Energy + Refinement) is software for performing molecular dynamics and structure + prediction.""" + +toolchain = {'name': 'intel', 'version': '2015b'} +toolchainopts = {'openmp': False, 'usempi': True} + +ambertools_ver = '16' +sources = [ +# 'Amber%(version)s.tar.bz2', + 'AmberTools%s.tar.bz2' % ambertools_ver, +] +patches = [ +# 'Amber-%(version)s_fix-hardcoding.patch', + 'AmberTools-%s_fix-mdgx-print-bug.patch' % ambertools_ver, +] + +dependencies = [ + # ('CUDA', '7.5.18', '', True), + # ('netCDF', '4.4.0'), + # ('netCDF-Fortran', '4.4.4'), + ('Python', '2.7.11'), +] + +patchlevels = (13, 13) +patchruns = 1 + +versionsuffix = '-AmberTools-%s-patchlevel-%d-%d' % (ambertools_ver, patchlevels[0], patchlevels[1]) + +moduleclass = 'chem' diff --git a/a/Armadillo/Armadillo b/a/Armadillo/Armadillo new file mode 100644 index 00000000..fe9b338d Binary files /dev/null and b/a/Armadillo/Armadillo differ diff --git a/a/Armadillo/Armadillo-7.500.0-foss-2016a-Python-3.5.2.eb b/a/Armadillo/Armadillo-7.500.0-foss-2016a-Python-3.5.2.eb new file mode 100644 index 00000000..e8f3b967 --- /dev/null +++ b/a/Armadillo/Armadillo-7.500.0-foss-2016a-Python-3.5.2.eb @@ -0,0 +1,24 @@ +name = 'Armadillo' +version = '7.500.0' +versionsuffix = '-Python-3.5.2' + +homepage = 'http://arma.sourceforge.net/' +description = """Armadillo is an open-source C++ linear algebra library (matrix maths) aiming towards + a good balance between speed and ease of use. Integer, floating point and complex numbers are supported, + as well as a subset of trigonometric and statistics functions.""" + +toolchain = {'name': 'foss', 'version': '2016a'} + +sources = [SOURCELOWER_TAR_XZ] +source_urls = ['http://sourceforge.net/projects/arma/files'] + +dependencies = [ + ('Boost', '1.61.0', '-serial'), + ('arpack-ng', '3.3.0'), + ('CMake', '3.5.2'), + ('HDF5', '1.8.16'), + ('libxml2', '2.9.3'), + ('XZ', '5.2.2'), +] + +moduleclass = 'numlib' diff --git a/a/Autoconf/Autoconf-2.69-GCC-4.7.2.eb b/a/Autoconf/Autoconf-2.69-GCC-4.7.2.eb new file mode 100644 index 00000000..3d86e53a --- /dev/null +++ b/a/Autoconf/Autoconf-2.69-GCC-4.7.2.eb @@ -0,0 +1,22 @@ +easyblock = 'ConfigureMake' + +name = 'Autoconf' +version = '2.69' + +homepage = 'http://www.gnu.org/software/autoconf/' +description = """Autoconf is an extensible package of M4 macros that produce shell scripts to automatically configure software source code packages. These scripts can adapt the packages to many kinds of UNIX-like systems without manual user intervention. Autoconf creates a configuration script for a package from a template file that lists the operating system features that the package can use, in the form of M4 macro calls.""" + +toolchain = {'name': 'GCC', 'version': '4.7.2'} + +source_urls = [GNU_SOURCE] +sources = [SOURCELOWER_TAR_GZ] + +dependencies = [('M4', '1.4.16')] + +sanity_check_paths = { + 'files': ["bin/%s" % x for x in ["autoconf", "autoheader", "autom4te", "autoreconf", + "autoscan", "autoupdate", "ifnames"]], + 'dirs': [], +} + +moduleclass = 'devel' diff --git a/a/Autoconf/Autoconf-2.69-GCC-6.3.0-2.27.eb b/a/Autoconf/Autoconf-2.69-GCC-6.3.0-2.27.eb new file mode 100644 index 00000000..f4168ff4 --- /dev/null +++ b/a/Autoconf/Autoconf-2.69-GCC-6.3.0-2.27.eb @@ -0,0 +1,26 @@ +easyblock = 'ConfigureMake' + +name = 'Autoconf' +version = '2.69' + +homepage = 'http://www.gnu.org/software/autoconf/' +description = """Autoconf is an extensible package of M4 macros that produce shell scripts + to automatically configure software source code packages. These scripts can adapt the + packages to many kinds of UNIX-like systems without manual user intervention. Autoconf + creates a configuration script for a package from a template file that lists the + operating system features that the package can use, in the form of M4 macro calls.""" + +toolchain = {'name': 'GCC', 'version': '6.3.0-2.27'} + +source_urls = [GNU_SOURCE] +sources = [SOURCELOWER_TAR_GZ] + +dependencies = [('M4', '1.4.18')] + +sanity_check_paths = { + 'files': ["bin/%s" % x for x in ["autoconf", "autoheader", "autom4te", "autoreconf", "autoscan", + "autoupdate", "ifnames"]], + 'dirs': [], +} + +moduleclass = 'devel' diff --git a/a/Autoconf/Autoconf-2.69-goolf-1.4.10.eb b/a/Autoconf/Autoconf-2.69-goolf-1.4.10.eb new file mode 100644 index 00000000..1e344106 --- /dev/null +++ b/a/Autoconf/Autoconf-2.69-goolf-1.4.10.eb @@ -0,0 +1,22 @@ +easyblock = 'ConfigureMake' + +name = 'Autoconf' +version = '2.69' + +homepage = 'http://www.gnu.org/software/autoconf/' +description = """Autoconf is an extensible package of M4 macros that produce shell scripts to automatically configure software source code packages. These scripts can adapt the packages to many kinds of UNIX-like systems without manual user intervention. Autoconf creates a configuration script for a package from a template file that lists the operating system features that the package can use, in the form of M4 macro calls.""" + +toolchain = {'name': 'goolf', 'version': '1.4.10'} + +source_urls = [GNU_SOURCE] +sources = [SOURCELOWER_TAR_GZ] + +dependencies = [('M4', '1.4.16')] + +sanity_check_paths = { + 'files': ["bin/%s" % x for x in ["autoconf", "autoheader", "autom4te", "autoreconf", + "autoscan", "autoupdate", "ifnames"]], + 'dirs': [], +} + +moduleclass = 'devel' diff --git a/a/Autoconf/Autoconf-2.69-intel-2017.00.eb b/a/Autoconf/Autoconf-2.69-intel-2017.00.eb new file mode 100644 index 00000000..ad6977d5 --- /dev/null +++ b/a/Autoconf/Autoconf-2.69-intel-2017.00.eb @@ -0,0 +1,26 @@ +easyblock = 'ConfigureMake' + +name = 'Autoconf' +version = '2.69' + +homepage = 'http://www.gnu.org/software/autoconf/' +description = """Autoconf is an extensible package of M4 macros that produce shell scripts + to automatically configure software source code packages. These scripts can adapt the + packages to many kinds of UNIX-like systems without manual user intervention. Autoconf + creates a configuration script for a package from a template file that lists the + operating system features that the package can use, in the form of M4 macro calls.""" + +toolchain = {'name': 'intel', 'version': '2017.00'} + +source_urls = [GNU_SOURCE] +sources = [SOURCELOWER_TAR_GZ] + +dependencies = [('M4', '1.4.17')] + +sanity_check_paths = { + 'files': ["bin/%s" % x for x in ["autoconf", "autoheader", "autom4te", "autoreconf", "autoscan", + "autoupdate", "ifnames"]], + 'dirs': [], +} + +moduleclass = 'devel' diff --git a/a/Autoconf/Autoconf-2.69-intel-2017a.eb b/a/Autoconf/Autoconf-2.69-intel-2017a.eb new file mode 100644 index 00000000..a061900f --- /dev/null +++ b/a/Autoconf/Autoconf-2.69-intel-2017a.eb @@ -0,0 +1,26 @@ +easyblock = 'ConfigureMake' + +name = 'Autoconf' +version = '2.69' + +homepage = 'http://www.gnu.org/software/autoconf/' +description = """Autoconf is an extensible package of M4 macros that produce shell scripts + to automatically configure software source code packages. These scripts can adapt the + packages to many kinds of UNIX-like systems without manual user intervention. Autoconf + creates a configuration script for a package from a template file that lists the + operating system features that the package can use, in the form of M4 macro calls.""" + +toolchain = {'name': 'intel', 'version': '2017a'} + +source_urls = [GNU_SOURCE] +sources = [SOURCELOWER_TAR_GZ] + +dependencies = [('M4', '1.4.18')] + +sanity_check_paths = { + 'files': ["bin/%s" % x for x in ["autoconf", "autoheader", "autom4te", "autoreconf", "autoscan", + "autoupdate", "ifnames"]], + 'dirs': [], +} + +moduleclass = 'devel' diff --git a/a/Autoconf/Autoconf-2.69.eb b/a/Autoconf/Autoconf-2.69.eb new file mode 100644 index 00000000..4ff7117b --- /dev/null +++ b/a/Autoconf/Autoconf-2.69.eb @@ -0,0 +1,26 @@ +easyblock = 'ConfigureMake' + +name = 'Autoconf' +version = '2.69' + +homepage = 'http://www.gnu.org/software/autoconf/' +description = """Autoconf is an extensible package of M4 macros that produce shell scripts + to automatically configure software source code packages. These scripts can adapt the + packages to many kinds of UNIX-like systems without manual user intervention. Autoconf + creates a configuration script for a package from a template file that lists the + operating system features that the package can use, in the form of M4 macro calls.""" + +toolchain = {'name': 'dummy', 'version': ''} + +source_urls = [GNU_SOURCE] +sources = [SOURCELOWER_TAR_GZ] + +dependencies = [('M4', '1.4.18')] + +sanity_check_paths = { + 'files': ["bin/%s" % x for x in ["autoconf", "autoheader", "autom4te", "autoreconf", "autoscan", + "autoupdate", "ifnames"]], + 'dirs': [], +} + +moduleclass = 'devel' diff --git a/a/Automake/Automake-1.15-GCC-6.3.0-2.27.eb b/a/Automake/Automake-1.15-GCC-6.3.0-2.27.eb new file mode 100644 index 00000000..9b9fc45d --- /dev/null +++ b/a/Automake/Automake-1.15-GCC-6.3.0-2.27.eb @@ -0,0 +1,33 @@ +## +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# +# Copyright:: Copyright 2012-2014 Uni.Lu/LCSB, NTUA +# Authors:: Fotis Georgatos +# 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/ +## + +easyblock = 'ConfigureMake' + +name = 'Automake' +version = "1.15" + +homepage = 'http://www.gnu.org/software/automake/automake.html' +description = "Automake: GNU Standards-compliant Makefile generator" + +toolchain = {'name': 'GCC', 'version': '6.3.0-2.27'} + +source_urls = [GNU_SOURCE] +sources = [SOURCELOWER_TAR_GZ] + +dependencies = [('Autoconf', '2.69')] + +sanity_check_paths = { + 'files': ['bin/automake', 'bin/aclocal'], + 'dirs': [] +} + +moduleclass = 'devel' diff --git a/a/Automake/Automake-1.15-intel-2017.00.eb b/a/Automake/Automake-1.15-intel-2017.00.eb new file mode 100644 index 00000000..f42576df --- /dev/null +++ b/a/Automake/Automake-1.15-intel-2017.00.eb @@ -0,0 +1,33 @@ +## +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# +# Copyright:: Copyright 2012-2014 Uni.Lu/LCSB, NTUA +# Authors:: Fotis Georgatos +# 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/ +## + +easyblock = 'ConfigureMake' + +name = 'Automake' +version = "1.15" + +homepage = 'http://www.gnu.org/software/automake/automake.html' +description = "Automake: GNU Standards-compliant Makefile generator" + +toolchain = {'name': 'intel', 'version': '2017.00'} + +source_urls = [GNU_SOURCE] +sources = [SOURCELOWER_TAR_GZ] + +dependencies = [('Autoconf', '2.69')] + +sanity_check_paths = { + 'files': ['bin/automake', 'bin/aclocal'], + 'dirs': [] +} + +moduleclass = 'devel' diff --git a/a/Automake/Automake-1.15-intel-2017a.eb b/a/Automake/Automake-1.15-intel-2017a.eb new file mode 100644 index 00000000..17be70b2 --- /dev/null +++ b/a/Automake/Automake-1.15-intel-2017a.eb @@ -0,0 +1,33 @@ +## +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# +# Copyright:: Copyright 2012-2014 Uni.Lu/LCSB, NTUA +# Authors:: Fotis Georgatos +# 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/ +## + +easyblock = 'ConfigureMake' + +name = 'Automake' +version = "1.15" + +homepage = 'http://www.gnu.org/software/automake/automake.html' +description = "Automake: GNU Standards-compliant Makefile generator" + +toolchain = {'name': 'intel', 'version': '2017a'} + +source_urls = [GNU_SOURCE] +sources = [SOURCELOWER_TAR_GZ] + +dependencies = [('Autoconf', '2.69')] + +sanity_check_paths = { + 'files': ['bin/automake', 'bin/aclocal'], + 'dirs': [] +} + +moduleclass = 'devel' diff --git a/a/Autotools/Autotools-20150215-GCC-6.3.0-2.27.eb b/a/Autotools/Autotools-20150215-GCC-6.3.0-2.27.eb new file mode 100644 index 00000000..2ff89889 --- /dev/null +++ b/a/Autotools/Autotools-20150215-GCC-6.3.0-2.27.eb @@ -0,0 +1,17 @@ +easyblock = 'Bundle' + +name = 'Autotools' +version = '20150215' # date of the most recent change + +homepage = 'http://autotools.io' +description = """This bundle collect the standard GNU build tools: Autoconf, Automake and libtool""" + +toolchain = {'name': 'GCC', 'version': '6.3.0-2.27'} + +dependencies = [ + ('Autoconf', '2.69'), # 20120424 + ('Automake', '1.15'), # 20150105 + ('libtool', '2.4.6'), # 20150215 +] + +moduleclass = 'devel' diff --git a/a/Autotools/Autotools-20150215-foss-2017a.eb b/a/Autotools/Autotools-20150215-foss-2017a.eb new file mode 100644 index 00000000..3956676f --- /dev/null +++ b/a/Autotools/Autotools-20150215-foss-2017a.eb @@ -0,0 +1,17 @@ +easyblock = 'Bundle' + +name = 'Autotools' +version = '20150215' # date of the most recent change + +homepage = 'http://autotools.io' +description = """This bundle collect the standard GNU build tools: Autoconf, Automake and libtool""" + +toolchain = {'name': 'foss', 'version': '2017a'} + +dependencies = [ + ('Autoconf', '2.69'), # 20120424 + ('Automake', '1.15'), # 20150105 + ('libtool', '2.4.6'), # 20150215 +] + +moduleclass = 'devel' diff --git a/a/Autotools/Autotools-20150215-intel-2017.00.eb b/a/Autotools/Autotools-20150215-intel-2017.00.eb new file mode 100644 index 00000000..4c32da6f --- /dev/null +++ b/a/Autotools/Autotools-20150215-intel-2017.00.eb @@ -0,0 +1,17 @@ +easyblock = 'Bundle' + +name = 'Autotools' +version = '20150215' # date of the most recent change + +homepage = 'http://autotools.io' +description = """This bundle collect the standard GNU build tools: Autoconf, Automake and libtool""" + +toolchain = {'name': 'intel', 'version': '2017.00'} + +dependencies = [ + ('Autoconf', '2.69'), # 20120424 + ('Automake', '1.15'), # 20150105 + ('libtool', '2.4.6'), # 20150215 +] + +moduleclass = 'devel' diff --git a/a/Autotools/Autotools-20150215-intel-2017a.eb b/a/Autotools/Autotools-20150215-intel-2017a.eb new file mode 100644 index 00000000..e0e854c4 --- /dev/null +++ b/a/Autotools/Autotools-20150215-intel-2017a.eb @@ -0,0 +1,17 @@ +easyblock = 'Bundle' + +name = 'Autotools' +version = '20150215' # date of the most recent change + +homepage = 'http://autotools.io' +description = """This bundle collect the standard GNU build tools: Autoconf, Automake and libtool""" + +toolchain = {'name': 'intel', 'version': '2017a'} + +dependencies = [ + ('Autoconf', '2.69'), # 20120424 + ('Automake', '1.15'), # 20150105 + ('libtool', '2.4.6'), # 20150215 +] + +moduleclass = 'devel' diff --git a/a/almost/almost-2.1.0-foss-2015b.eb b/a/almost/almost-2.1.0-foss-2015b.eb new file mode 100644 index 00000000..242bd5b0 --- /dev/null +++ b/a/almost/almost-2.1.0-foss-2015b.eb @@ -0,0 +1,31 @@ +easyblock = 'ConfigureMake' + +name = 'almost' +version = '2.1.0' + +homepage = 'http://www-almost.ch.cam.ac.uk/site' +description = """all atom molecular simulation toolkit + - is a fast and flexible molecular modeling environment + that provides powerful and efficient algorithms for molecular + simulation, homology modeling, de novo design and ab-initio + calculations. + """ + +toolchain = {'name': 'foss', 'version': '2015b'} + +source_urls = ['http://www-almost.ch.cam.ac.uk/site/downloads'] +sources = [SOURCELOWER_TAR_GZ] + +builddependencies = [ + ('ScaLAPACK', '2.0.2', '-OpenBLAS-0.2.14-LAPACK-3.5.0', ('gompi', '2015b')), + ('OpenBLAS', '0.2.14', '-LAPACK-3.5.0', ('GNU', '5.1.0-2.25')), + ('SQLite', '3.8.8.1', '', ('intel', '2015b')), + ('gzip', '1.6', '', ('intel','2015b')) +] + +sanity_check_paths = { + 'files': ['bin/almost'], + 'dirs': [] +} + +moduleclass = 'bio' diff --git a/a/almost/almost-2.1.0-foss-2015g.eb b/a/almost/almost-2.1.0-foss-2015g.eb new file mode 100644 index 00000000..8f81ac4c --- /dev/null +++ b/a/almost/almost-2.1.0-foss-2015g.eb @@ -0,0 +1,44 @@ +easyblock = 'ConfigureMake' + +name = 'almost' +version = '2.1.0' + +homepage = 'http://www-almost.ch.cam.ac.uk/site' +description = """all atom molecular simulation toolkit + - is a fast and flexible molecular modeling environment + that provides powerful and efficient algorithms for molecular + simulation, homology modeling, de novo design and ab-initio + calculations. + """ + +toolchain = {'name': 'foss', 'version': '2015g'} + +# Sources checked out using svn +# svn checkout svn://svn.code.sf.net/p/almost/code/ almost-code). +# ALMOST 2.1 can be found in branches/almost-2.1 +# tar.gz file created from almost-2.1 directory and put to the +# /easybuild/sources +source_urls = ['http://www-almost.ch.cam.ac.uk/site/downloads'] +sources = [SOURCELOWER_TAR_GZ] + +builddependencies = [ + ('ScaLAPACK', '2.0.2', '-OpenBLAS-0.2.14-LAPACK-3.5.0', ('gompi', '2015g')), + ('OpenBLAS', '0.2.14', '-LAPACK-3.5.0', ('GNU', '4.9.3-2.25')), + ('SQLite', '3.8.8.1'), + ('gzip', '1.6'), + ('Autotools', '20150215', '', ('GNU', '4.9.3-2.25')), +] + +configopts = 'CPPFLAGS="-I$EBROOTOPENMPI/include" ' +configopts += 'LDFLAGS="-L$EBROOTOPENMPI/lib -lmpi" ' +configopts += 'CXXFLAGS="-O3 -fPIC" CFLAGS="-O3 -fPIC" ' +configopts += '--enable-mpi ' + +preconfigopts = 'autoreconf -fi && automake && ' + +sanity_check_paths = { + 'files': ['bin/almost'], + 'dirs': [] +} + +moduleclass = 'bio' diff --git a/a/almost/almost-2.1.0-foss-2016a.eb b/a/almost/almost-2.1.0-foss-2016a.eb new file mode 100644 index 00000000..7adcff37 --- /dev/null +++ b/a/almost/almost-2.1.0-foss-2016a.eb @@ -0,0 +1,44 @@ +easyblock = 'ConfigureMake' + +name = 'almost' +version = '2.1.0' + +homepage = 'http://www-almost.ch.cam.ac.uk/site' +description = """all atom molecular simulation toolkit + - is a fast and flexible molecular modeling environment + that provides powerful and efficient algorithms for molecular + simulation, homology modeling, de novo design and ab-initio + calculations. + """ + +toolchain = {'name': 'foss', 'version': '2016a'} + +# Sources checked out using svn +# svn checkout svn://svn.code.sf.net/p/almost/code/ almost-code). +# ALMOST 2.1 can be found in branches/almost-2.1 +# tar.gz file created from almost-2.1 directory and put to the +# /easybuild/sources +source_urls = ['http://www-almost.ch.cam.ac.uk/site/downloads'] +sources = [SOURCELOWER_TAR_GZ] + +builddependencies = [ + ('ScaLAPACK', '2.0.2', '-OpenBLAS-0.2.15-LAPACK-3.6.0', ('gompi', '2016a')), + ('OpenBLAS', '0.2.15', '-LAPACK-3.6.0', ('GCC', '4.9.3-2.25')), + ('SQLite', '3.8.8.1'), + ('gzip', '1.6'), + ('Autotools', '20150215'), +] + +configopts = 'CPPFLAGS="-I$EBROOTOPENMPI/include" ' +configopts += 'LDFLAGS="-L$EBROOTOPENMPI/lib -lmpi" ' +configopts += 'CXXFLAGS="-O3 -fPIC" CFLAGS="-O3 -fPIC" ' +configopts += '--enable-mpi ' + +preconfigopts = 'autoreconf -fi && automake && ' + +sanity_check_paths = { + 'files': ['bin/almost'], + 'dirs': [] +} + +moduleclass = 'bio' diff --git a/a/almost/almost-2.1.0-intel-2015b.eb b/a/almost/almost-2.1.0-intel-2015b.eb new file mode 100644 index 00000000..31029013 --- /dev/null +++ b/a/almost/almost-2.1.0-intel-2015b.eb @@ -0,0 +1,31 @@ +easyblock = 'ConfigureMake' + +name = 'almost' +version = '2.1.0' + +homepage = 'http://www-almost.ch.cam.ac.uk/site' +description = """all atom molecular simulation toolkit + - is a fast and flexible molecular modeling environment + that provides powerful and efficient algorithms for molecular + simulation, homology modeling, de novo design and ab-initio + calculations. + """ + +toolchain = {'name': 'intel', 'version': '2015b'} + +source_urls = ['http://www-almost.ch.cam.ac.uk/site/downloads'] +sources = [SOURCELOWER_TAR_GZ] + +builddependencies = [ + ('ScaLAPACK', '2.0.2', '-OpenBLAS-0.2.14-LAPACK-3.5.0', ('gompi', '2015b')), + ('OpenBLAS', '0.2.14', '-LAPACK-3.5.0', ('GNU', '5.1.0-2.25')), + ('SQLite', '3.8.8.1'), + ('gzip', '1.6') +] + +sanity_check_paths = { + 'files': ['bin/almost'], + 'dirs': [] +} + +moduleclass = 'bio' diff --git a/a/almost/almost-2.1.0.eb b/a/almost/almost-2.1.0.eb new file mode 100644 index 00000000..3b7b9469 --- /dev/null +++ b/a/almost/almost-2.1.0.eb @@ -0,0 +1,44 @@ +easyblock = 'ConfigureMake' + +name = 'almost' +version = '2.1.0' + +homepage = 'http://www-almost.ch.cam.ac.uk/site' +description = """all atom molecular simulation toolkit + - is a fast and flexible molecular modeling environment + that provides powerful and efficient algorithms for molecular + simulation, homology modeling, de novo design and ab-initio + calculations. + """ + +toolchain = {'name': 'dummy', 'version': ''} + +# Sources checked out using svn +# svn checkout svn://svn.code.sf.net/p/almost/code/ almost-code). +# ALMOST 2.1 can be found in branches/almost-2.1 +# tar.gz file created from almost-2.1 directory and put to the +# /easybuild/sources +source_urls = ['http://www-almost.ch.cam.ac.uk/site/downloads'] +sources = [SOURCELOWER_TAR_GZ] + +builddependencies = [ + ('ScaLAPACK', '2.0.2', '-OpenBLAS-0.2.15-LAPACK-3.6.0', ('gompi', '2016a')), + ('OpenBLAS', '0.2.15', '-LAPACK-3.6.0', ('GCC', '4.9.3-2.25')), + ('SQLite', '3.8.8.1'), + ('gzip', '1.6'), + ('Autotools', '20150215'), +] + +configopts = 'CPPFLAGS="-I$EBROOTOPENMPI/include" ' +configopts += 'LDFLAGS="-L$EBROOTOPENMPI/lib -lmpi" ' +configopts += 'CXXFLAGS="-O3 -fPIC" CFLAGS="-O3 -fPIC" ' +configopts += '--enable-mpi ' + +preconfigopts = 'autoreconf -fi && automake && ' + +sanity_check_paths = { + 'files': ['bin/almost'], + 'dirs': [] +} + +moduleclass = 'bio' diff --git a/a/angsd/angsd-0.910-foss-2016a.eb b/a/angsd/angsd-0.910-foss-2016a.eb new file mode 100644 index 00000000..c9d9db6e --- /dev/null +++ b/a/angsd/angsd-0.910-foss-2016a.eb @@ -0,0 +1,26 @@ +easyblock = 'MakeCp' + +name = 'angsd' +version = '0.910' + +homepage = 'http://www.popgen.dk/angsd' +description = """Program for analysing NGS data.""" + +toolchain = {'name': 'foss', 'version': '2016a'} + +source_urls = ['https://github.com/ANGSD/angsd/archive/'] +sources = ['%(version)s.tar.gz'] + +dependencies = [('HTSlib', '1.3.1')] + +files_to_copy = [ + (['angsd'], 'bin'), + 'doc', +] + +sanity_check_paths = { + 'files': ['bin/angsd'], + 'dirs': ['doc'], +} + +moduleclass = 'bio' diff --git a/a/ant/ant-1.10.0-Java-1.8.0_112.eb b/a/ant/ant-1.10.0-Java-1.8.0_112.eb new file mode 100644 index 00000000..cf1f192a --- /dev/null +++ b/a/ant/ant-1.10.0-Java-1.8.0_112.eb @@ -0,0 +1,25 @@ +name = 'ant' +version = '1.10.0' +versionsuffix = '-Java-%(javaver)s' + +homepage = 'http://ant.apache.org/' +description = """Apache Ant is a Java library and command-line tool whose mission is to drive processes described in build files + as targets and extension points dependent upon each other. The main known usage of Ant is the build of Java applications.""" + +toolchain = {'name': 'dummy', 'version': ''} + +sources = ['apache-%(name)s-%(version)s-src.tar.gz'] +source_urls = ['http://archive.apache.org/dist/%(name)s/source/'] + +dependencies = [('Java', '1.8.0_112')] + +builddependencies = [('JUnit', '4.12', versionsuffix)] + +sanity_check_paths = { + 'files': ['bin/ant', 'lib/ant.jar', 'lib/ant.jar'], + 'dirs': [], +} + +modextravars = {'ANT_HOME': '%(installdir)s'} + +moduleclass = 'devel' diff --git a/a/ant/ant-1.8.4-Java-1.7.0_10.eb b/a/ant/ant-1.8.4-Java-1.7.0_10.eb new file mode 100644 index 00000000..69f6af4a --- /dev/null +++ b/a/ant/ant-1.8.4-Java-1.7.0_10.eb @@ -0,0 +1,26 @@ +name = 'ant' +version = '1.8.4' + +homepage = 'http://ant.apache.org/' +description = """Apache Ant is a Java library and command-line tool whose mission is to drive processes described in build files + as targets and extension points dependent upon each other. The main known usage of Ant is the build of Java applications.""" + +toolchain = {'name': 'dummy', 'version': ''} + +sources = ['apache-%s-%s-src.tar.gz' % (name, version)] +source_urls = ['http://archive.apache.org/dist/%s/source/' % name] + +java = 'Java' +javaver = '1.7.0_10' +versionsuffix = '-%s-%s' % (java, javaver) + +dependencies = [(java, javaver)] + +builddependencies = [('JUnit', '4.10', versionsuffix)] + +sanity_check_paths = { + 'files': ['bin/ant', 'lib/ant.jar', 'lib/ant.jar'], + 'dirs': [], +} + +moduleclass = 'devel' diff --git a/a/ant/ant-1.8.4-Java-1.7.0_21.eb b/a/ant/ant-1.8.4-Java-1.7.0_21.eb new file mode 100644 index 00000000..ed48c651 --- /dev/null +++ b/a/ant/ant-1.8.4-Java-1.7.0_21.eb @@ -0,0 +1,26 @@ +name = 'ant' +version = '1.8.4' + +homepage = 'http://ant.apache.org/' +description = """Apache Ant is a Java library and command-line tool whose mission is to drive processes described in build files + as targets and extension points dependent upon each other. The main known usage of Ant is the build of Java applications.""" + +toolchain = {'name': 'dummy', 'version': ''} + +sources = ['apache-%s-%s-src.tar.gz' % (name, version)] +source_urls = ['http://archive.apache.org/dist/%s/source/' % name] + +java = 'Java' +javaver = '1.7.0_21' +versionsuffix = '-%s-%s' % (java, javaver) + +dependencies = [(java, javaver)] + +builddependencies = [('JUnit', '4.10', versionsuffix)] + +sanity_check_paths = { + 'files': ['bin/ant', 'lib/ant.jar', 'lib/ant.jar'], + 'dirs': [], +} + +moduleclass = 'devel' diff --git a/a/ant/ant-1.9.0-Java-1.7.0_15.eb b/a/ant/ant-1.9.0-Java-1.7.0_15.eb new file mode 100644 index 00000000..4e4944c6 --- /dev/null +++ b/a/ant/ant-1.9.0-Java-1.7.0_15.eb @@ -0,0 +1,26 @@ +name = 'ant' +version = '1.9.0' + +homepage = 'http://ant.apache.org/' +description = """Apache Ant is a Java library and command-line tool whose mission is to drive processes described in build files + as targets and extension points dependent upon each other. The main known usage of Ant is the build of Java applications.""" + +toolchain = {'name': 'dummy', 'version': ''} + +sources = ['apache-%s-%s-src.tar.gz' % (name, version)] +source_urls = ['http://archive.apache.org/dist/%s/source/' % name] + +java = 'Java' +javaver = '1.7.0_15' +versionsuffix = '-%s-%s' % (java, javaver) + +dependencies = [(java, javaver)] + +builddependencies = [('JUnit', '4.11', versionsuffix)] + +sanity_check_paths = { + 'files': ['bin/ant', 'lib/ant.jar', 'lib/ant.jar'], + 'dirs': [] +} + +moduleclass = 'devel' diff --git a/a/ant/ant-1.9.0-Java-1.7.0_21.eb b/a/ant/ant-1.9.0-Java-1.7.0_21.eb new file mode 100644 index 00000000..b01a6297 --- /dev/null +++ b/a/ant/ant-1.9.0-Java-1.7.0_21.eb @@ -0,0 +1,26 @@ +name = 'ant' +version = '1.9.0' + +homepage = 'http://ant.apache.org/' +description = """Apache Ant is a Java library and command-line tool whose mission is to drive processes described in build files + as targets and extension points dependent upon each other. The main known usage of Ant is the build of Java applications.""" + +toolchain = {'name': 'dummy', 'version': ''} + +sources = ['apache-%s-%s-src.tar.gz' % (name, version)] +source_urls = ['http://archive.apache.org/dist/%s/source/' % name] + +java = 'Java' +javaver = '1.7.0_21' +versionsuffix = '-%s-%s' % (java, javaver) + +dependencies = [(java, javaver)] + +builddependencies = [('JUnit', '4.11', versionsuffix)] + +sanity_check_paths = { + 'files': ['bin/ant', 'lib/ant.jar', 'lib/ant.jar'], + 'dirs': [], +} + +moduleclass = 'devel' diff --git a/a/ant/ant-1.9.3-Java-1.7.0_60.eb b/a/ant/ant-1.9.3-Java-1.7.0_60.eb new file mode 100644 index 00000000..ad986bd5 --- /dev/null +++ b/a/ant/ant-1.9.3-Java-1.7.0_60.eb @@ -0,0 +1,26 @@ +name = 'ant' +version = '1.9.3' + +homepage = 'http://ant.apache.org/' +description = """Apache Ant is a Java library and command-line tool whose mission is to drive processes described in build files + as targets and extension points dependent upon each other. The main known usage of Ant is the build of Java applications.""" + +toolchain = {'name': 'dummy', 'version': ''} + +sources = ['apache-%(name)s-%(version)s-src.tar.gz'] +source_urls = ['http://archive.apache.org/dist/%(name)s/source/'] + +java = 'Java' +javaver = '1.7.0_60' +versionsuffix = '-%s-%s' % (java, javaver) + +dependencies = [(java, javaver)] + +builddependencies = [('JUnit', '4.11', versionsuffix)] + +sanity_check_paths = { + 'files': ['bin/ant', 'lib/ant.jar', 'lib/ant.jar'], + 'dirs': [], +} + +moduleclass = 'devel' diff --git a/a/ant/ant-1.9.3-Java-1.7.0_79.eb b/a/ant/ant-1.9.3-Java-1.7.0_79.eb new file mode 100644 index 00000000..e1662e8b --- /dev/null +++ b/a/ant/ant-1.9.3-Java-1.7.0_79.eb @@ -0,0 +1,26 @@ +name = 'ant' +version = '1.9.3' + +homepage = 'http://ant.apache.org/' +description = """Apache Ant is a Java library and command-line tool whose mission is to drive processes described in build files + as targets and extension points dependent upon each other. The main known usage of Ant is the build of Java applications.""" + +toolchain = {'name': 'dummy', 'version': ''} + +sources = ['apache-%(name)s-%(version)s-src.tar.gz'] +source_urls = ['http://archive.apache.org/dist/%(name)s/source/'] + +java = 'Java' +javaver = '1.7.0_79' +versionsuffix = '-%s-%s' % (java, javaver) + +dependencies = [(java, javaver)] + +builddependencies = [('JUnit', '4.11', versionsuffix)] + +sanity_check_paths = { + 'files': ['bin/ant', 'lib/ant.jar', 'lib/ant.jar'], + 'dirs': [], +} + +moduleclass = 'devel' diff --git a/a/ant/ant-1.9.6-Java-1.7.0_75.eb b/a/ant/ant-1.9.6-Java-1.7.0_75.eb new file mode 100644 index 00000000..7da7aa32 --- /dev/null +++ b/a/ant/ant-1.9.6-Java-1.7.0_75.eb @@ -0,0 +1,26 @@ +name = 'ant' +version = '1.9.6' + +homepage = 'http://ant.apache.org/' +description = """Apache Ant is a Java library and command-line tool whose mission is to drive processes described in build files + as targets and extension points dependent upon each other. The main known usage of Ant is the build of Java applications.""" + +toolchain = {'name': 'dummy', 'version': ''} + +sources = ['apache-%(name)s-%(version)s-src.tar.gz'] +source_urls = ['http://archive.apache.org/dist/%(name)s/source/'] + +java = 'Java' +javaver = '1.7.0_75' +versionsuffix = '-%s-%s' % (java, javaver) + +dependencies = [(java, javaver)] + +builddependencies = [('JUnit', '4.11', versionsuffix)] + +sanity_check_paths = { + 'files': ['bin/ant', 'lib/ant.jar', 'lib/ant.jar'], + 'dirs': [], +} + +moduleclass = 'devel' diff --git a/a/ant/ant-1.9.6-Java-1.7.0_79.eb b/a/ant/ant-1.9.6-Java-1.7.0_79.eb new file mode 100644 index 00000000..3ee7c5b4 --- /dev/null +++ b/a/ant/ant-1.9.6-Java-1.7.0_79.eb @@ -0,0 +1,23 @@ +name = 'ant' +version = '1.9.6' +versionsuffix = '-Java-%(javaver)s' + +homepage = 'http://ant.apache.org/' +description = """Apache Ant is a Java library and command-line tool whose mission is to drive processes described in build files + as targets and extension points dependent upon each other. The main known usage of Ant is the build of Java applications.""" + +toolchain = {'name': 'dummy', 'version': ''} + +sources = ['apache-%(name)s-%(version)s-src.tar.gz'] +source_urls = ['http://archive.apache.org/dist/%(name)s/source/'] + +dependencies = [('Java', '1.7.0_79')] + +builddependencies = [('JUnit', '4.11', versionsuffix)] + +sanity_check_paths = { + 'files': ['bin/ant', 'lib/ant.jar', 'lib/ant.jar'], + 'dirs': [], +} + +moduleclass = 'devel' diff --git a/a/ant/ant-1.9.6-Java-1.7.0_80.eb b/a/ant/ant-1.9.6-Java-1.7.0_80.eb new file mode 100644 index 00000000..d93ecdb1 --- /dev/null +++ b/a/ant/ant-1.9.6-Java-1.7.0_80.eb @@ -0,0 +1,23 @@ +name = 'ant' +version = '1.9.6' +versionsuffix = '-Java-%(javaver)s' + +homepage = 'http://ant.apache.org/' +description = """Apache Ant is a Java library and command-line tool whose mission is to drive processes described in build files + as targets and extension points dependent upon each other. The main known usage of Ant is the build of Java applications.""" + +toolchain = {'name': 'dummy', 'version': ''} + +sources = ['apache-%(name)s-%(version)s-src.tar.gz'] +source_urls = ['http://archive.apache.org/dist/%(name)s/source/'] + +dependencies = [('Java', '1.7.0_80')] + +builddependencies = [('JUnit', '4.12', versionsuffix)] + +sanity_check_paths = { + 'files': ['bin/ant', 'lib/ant.jar', 'lib/ant.jar'], + 'dirs': [], +} + +moduleclass = 'devel' diff --git a/a/ant/ant-1.9.6-Java-1.8.0_51.eb b/a/ant/ant-1.9.6-Java-1.8.0_51.eb new file mode 100644 index 00000000..c6e9a0e5 --- /dev/null +++ b/a/ant/ant-1.9.6-Java-1.8.0_51.eb @@ -0,0 +1,26 @@ +name = 'ant' +version = '1.9.6' + +homepage = 'http://ant.apache.org/' +description = """Apache Ant is a Java library and command-line tool whose mission is to drive processes described in build files + as targets and extension points dependent upon each other. The main known usage of Ant is the build of Java applications.""" + +toolchain = {'name': 'dummy', 'version': ''} + +sources = ['apache-%(name)s-%(version)s-src.tar.gz'] +source_urls = ['http://archive.apache.org/dist/%(name)s/source/'] + +java = 'Java' +javaver = '1.8.0_51' +versionsuffix = '-%s-%s' % (java, javaver) + +dependencies = [(java, javaver)] + +builddependencies = [('JUnit', '4.11', versionsuffix)] + +sanity_check_paths = { + 'files': ['bin/ant', 'lib/ant.jar', 'lib/ant.jar'], + 'dirs': [], +} + +moduleclass = 'devel' diff --git a/a/ant/ant-1.9.6-Java-1.8.0_66.eb b/a/ant/ant-1.9.6-Java-1.8.0_66.eb new file mode 100644 index 00000000..b048fcd0 --- /dev/null +++ b/a/ant/ant-1.9.6-Java-1.8.0_66.eb @@ -0,0 +1,26 @@ +name = 'ant' +version = '1.9.6' + +homepage = 'http://ant.apache.org/' +description = """Apache Ant is a Java library and command-line tool whose mission is to drive processes described in build files + as targets and extension points dependent upon each other. The main known usage of Ant is the build of Java applications.""" + +toolchain = {'name': 'dummy', 'version': ''} + +sources = ['apache-%(name)s-%(version)s-src.tar.gz'] +source_urls = ['http://archive.apache.org/dist/%(name)s/source/'] + +java = 'Java' +javaver = '1.8.0_66' +versionsuffix = '-%s-%s' % (java, javaver) + +dependencies = [(java, javaver)] + +builddependencies = [('JUnit', '4.12', versionsuffix)] + +sanity_check_paths = { + 'files': ['bin/ant', 'lib/ant.jar', 'lib/ant.jar'], + 'dirs': [], +} + +moduleclass = 'devel' diff --git a/a/ant/ant-1.9.6-Java-1.8.0_72.eb b/a/ant/ant-1.9.6-Java-1.8.0_72.eb new file mode 100644 index 00000000..407fa7e1 --- /dev/null +++ b/a/ant/ant-1.9.6-Java-1.8.0_72.eb @@ -0,0 +1,25 @@ +name = 'ant' +version = '1.9.6' +versionsuffix = '-Java-%(javaver)s' + +homepage = 'http://ant.apache.org/' +description = """Apache Ant is a Java library and command-line tool whose mission is to drive processes described in build files + as targets and extension points dependent upon each other. The main known usage of Ant is the build of Java applications.""" + +toolchain = {'name': 'dummy', 'version': ''} + +sources = ['apache-%(name)s-%(version)s-src.tar.gz'] +source_urls = ['http://archive.apache.org/dist/%(name)s/source/'] + +dependencies = [('Java', '1.8.0_72')] + +builddependencies = [('JUnit', '4.12', versionsuffix)] + +sanity_check_paths = { + 'files': ['bin/ant', 'lib/ant.jar', 'lib/ant.jar'], + 'dirs': [], +} + +modextravars = {'ANT_HOME': '%(installdir)s'} + +moduleclass = 'devel' diff --git a/a/ant/ant-1.9.6-Java-1.8.0_77.eb b/a/ant/ant-1.9.6-Java-1.8.0_77.eb new file mode 100644 index 00000000..08bcaf86 --- /dev/null +++ b/a/ant/ant-1.9.6-Java-1.8.0_77.eb @@ -0,0 +1,25 @@ +name = 'ant' +version = '1.9.6' +versionsuffix = '-Java-%(javaver)s' + +homepage = 'http://ant.apache.org/' +description = """Apache Ant is a Java library and command-line tool whose mission is to drive processes described in build files + as targets and extension points dependent upon each other. The main known usage of Ant is the build of Java applications.""" + +toolchain = {'name': 'dummy', 'version': ''} + +sources = ['apache-%(name)s-%(version)s-src.tar.gz'] +source_urls = ['http://archive.apache.org/dist/%(name)s/source/'] + +dependencies = [('Java', '1.8.0_77')] + +builddependencies = [('JUnit', '4.12', versionsuffix)] + +sanity_check_paths = { + 'files': ['bin/ant', 'lib/ant.jar', 'lib/ant.jar'], + 'dirs': [], +} + +modextravars = {'ANT_HOME': '%(installdir)s'} + +moduleclass = 'devel' diff --git a/a/ant/ant-1.9.7-Java-1.8.0_92.eb b/a/ant/ant-1.9.7-Java-1.8.0_92.eb new file mode 100644 index 00000000..186bcfb5 --- /dev/null +++ b/a/ant/ant-1.9.7-Java-1.8.0_92.eb @@ -0,0 +1,25 @@ +name = 'ant' +version = '1.9.7' +versionsuffix = '-Java-%(javaver)s' + +homepage = 'http://ant.apache.org/' +description = """Apache Ant is a Java library and command-line tool whose mission is to drive processes described in build files + as targets and extension points dependent upon each other. The main known usage of Ant is the build of Java applications.""" + +toolchain = {'name': 'dummy', 'version': ''} + +sources = ['apache-%(name)s-%(version)s-src.tar.gz'] +source_urls = ['http://archive.apache.org/dist/%(name)s/source/'] + +dependencies = [('Java', '1.8.0_92')] + +builddependencies = [('JUnit', '4.12', versionsuffix)] + +sanity_check_paths = { + 'files': ['bin/ant', 'lib/ant.jar', 'lib/ant.jar'], + 'dirs': [], +} + +modextravars = {'ANT_HOME': '%(installdir)s'} + +moduleclass = 'devel' diff --git a/a/arpack-ng/arpack-ng-3.1.3-ictce-5.3.0-mt.eb b/a/arpack-ng/arpack-ng-3.1.3-ictce-5.3.0-mt.eb new file mode 100644 index 00000000..38638c65 --- /dev/null +++ b/a/arpack-ng/arpack-ng-3.1.3-ictce-5.3.0-mt.eb @@ -0,0 +1,29 @@ +easyblock = 'ConfigureMake' + +name = 'arpack-ng' +version = '3.1.3' +versionsuffix = '-mt' + +homepage = 'http://forge.scilab.org/index.php/p/arpack-ng/' +description = """ARPACK is a collection of Fortran77 subroutines designed to solve large scale eigenvalue problems.""" + +toolchain = {'name': 'ictce', 'version': '5.3.0'} +toolchainopts = {'opt': True, 'optarch': True, 'pic': True, 'usempi': False} + +source_urls = ['http://forge.scilab.org/index.php/p/arpack-ng/downloads/get/'] +sources = [SOURCELOWER_TAR_GZ] + +# do not change the order of the patches or things will break +patches = [ + 'arpack-ng-3.1.3-update-to-head.patch', + 'arpack-ng-3.1.3-pkgconfig.patch', +] + +configopts = '--with-pic --with-blas="$LIBBLAS_MT" --with-lapack="$LIBLAPACK_MT"' + +sanity_check_paths = { + 'files': ["lib/libarpack.a", "lib/libarpack.%s" % SHLIB_EXT], + 'dirs': [] +} + +moduleclass = 'numlib' diff --git a/a/arpack-ng/arpack-ng-3.1.3-ictce-5.3.0.eb b/a/arpack-ng/arpack-ng-3.1.3-ictce-5.3.0.eb new file mode 100644 index 00000000..e567606a --- /dev/null +++ b/a/arpack-ng/arpack-ng-3.1.3-ictce-5.3.0.eb @@ -0,0 +1,29 @@ +easyblock = 'ConfigureMake' + +name = 'arpack-ng' +version = '3.1.3' + +homepage = 'http://forge.scilab.org/index.php/p/arpack-ng/' +description = """ARPACK is a collection of Fortran77 subroutines designed to solve large scale eigenvalue problems.""" + +toolchain = {'name': 'ictce', 'version': '5.3.0'} +toolchainopts = {'opt': True, 'optarch': True, 'pic': True, 'usempi': True} + +source_urls = ['http://forge.scilab.org/index.php/p/arpack-ng/downloads/get/'] +sources = [SOURCELOWER_TAR_GZ] + +# do not change the order of the patches or things will break +patches = [ + 'arpack-ng-3.1.3-update-to-head.patch', + 'arpack-ng-3.1.3-pkgconfig.patch', + 'arpack-ng-3.1.3-configure-mpi.patch', +] + +configopts = '--enable-mpi --with-pic --with-blas="$LIBBLAS" --with-lapack="$LIBLAPACK"' + +sanity_check_paths = { + 'files': ["lib/libarpack.a", "lib/libarpack.%s" % SHLIB_EXT, "lib/libparpack.a", "lib/libparpack.%s" % SHLIB_EXT], + 'dirs': [] +} + +moduleclass = 'numlib' diff --git a/a/arpack-ng/arpack-ng-3.1.3-ictce-5.5.0-mt.eb b/a/arpack-ng/arpack-ng-3.1.3-ictce-5.5.0-mt.eb new file mode 100644 index 00000000..837fa583 --- /dev/null +++ b/a/arpack-ng/arpack-ng-3.1.3-ictce-5.5.0-mt.eb @@ -0,0 +1,29 @@ +easyblock = 'ConfigureMake' + +name = 'arpack-ng' +version = '3.1.3' +versionsuffix = '-mt' + +homepage = 'http://forge.scilab.org/index.php/p/arpack-ng/' +description = """ARPACK is a collection of Fortran77 subroutines designed to solve large scale eigenvalue problems.""" + +toolchain = {'name': 'ictce', 'version': '5.5.0'} +toolchainopts = {'opt': True, 'optarch': True, 'pic': True, 'usempi': False} + +source_urls = ['http://forge.scilab.org/index.php/p/arpack-ng/downloads/get/'] +sources = [SOURCELOWER_TAR_GZ] + +# do not change the order of the patches or things will break +patches = [ + 'arpack-ng-3.1.3-update-to-head.patch', + 'arpack-ng-3.1.3-pkgconfig.patch', +] + +configopts = '--with-pic --with-blas="$LIBBLAS_MT" --with-lapack="$LIBLAPACK_MT"' + +sanity_check_paths = { + 'files': ["lib/libarpack.a", "lib/libarpack.%s" % SHLIB_EXT], + 'dirs': [] +} + +moduleclass = 'numlib' diff --git a/a/arpack-ng/arpack-ng-3.1.3-ictce-5.5.0.eb b/a/arpack-ng/arpack-ng-3.1.3-ictce-5.5.0.eb new file mode 100644 index 00000000..15e7a3b7 --- /dev/null +++ b/a/arpack-ng/arpack-ng-3.1.3-ictce-5.5.0.eb @@ -0,0 +1,29 @@ +easyblock = 'ConfigureMake' + +name = 'arpack-ng' +version = '3.1.3' + +homepage = 'http://forge.scilab.org/index.php/p/arpack-ng/' +description = """ARPACK is a collection of Fortran77 subroutines designed to solve large scale eigenvalue problems.""" + +toolchain = {'name': 'ictce', 'version': '5.5.0'} +toolchainopts = {'opt': True, 'optarch': True, 'pic': True, 'usempi': True} + +source_urls = ['http://forge.scilab.org/index.php/p/arpack-ng/downloads/get/'] +sources = [SOURCELOWER_TAR_GZ] + +# do not change the order of the patches or things will break +patches = [ + 'arpack-ng-3.1.3-update-to-head.patch', + 'arpack-ng-3.1.3-pkgconfig.patch', + 'arpack-ng-3.1.3-configure-mpi.patch', +] + +configopts = '--enable-mpi --with-pic --with-blas="$LIBBLAS" --with-lapack="$LIBLAPACK"' + +sanity_check_paths = { + 'files': ["lib/libarpack.a", "lib/libarpack.%s" % SHLIB_EXT, "lib/libparpack.a", "lib/libparpack.%s" % SHLIB_EXT], + 'dirs': [] +} + +moduleclass = 'numlib' diff --git a/a/arpack-ng/arpack-ng-3.1.5-ictce-7.1.2-mt.eb b/a/arpack-ng/arpack-ng-3.1.5-ictce-7.1.2-mt.eb new file mode 100644 index 00000000..6388557c --- /dev/null +++ b/a/arpack-ng/arpack-ng-3.1.5-ictce-7.1.2-mt.eb @@ -0,0 +1,23 @@ +easyblock = 'ConfigureMake' + +name = 'arpack-ng' +version = '3.1.5' +versionsuffix = '-mt' + +homepage = 'http://forge.scilab.org/index.php/p/arpack-ng/' +description = """ARPACK is a collection of Fortran77 subroutines designed to solve large scale eigenvalue problems.""" + +toolchain = {'name': 'ictce', 'version': '7.1.2'} +toolchainopts = {'opt': True, 'optarch': True, 'pic': True, 'usempi': False} + +source_urls = ['http://forge.scilab.org/index.php/p/arpack-ng/downloads/get/'] +sources = ['%(name)s_%(version)s.tar.gz'] + +configopts = '--with-pic --with-blas="$LIBBLAS_MT" --with-lapack="$LIBLAPACK_MT"' + +sanity_check_paths = { + 'files': ["lib/libarpack.a", "lib/libarpack.%s" % SHLIB_EXT], + 'dirs': [] +} + +moduleclass = 'numlib' diff --git a/a/arpack-ng/arpack-ng-3.1.5-ictce-7.1.2.eb b/a/arpack-ng/arpack-ng-3.1.5-ictce-7.1.2.eb new file mode 100644 index 00000000..15bec194 --- /dev/null +++ b/a/arpack-ng/arpack-ng-3.1.5-ictce-7.1.2.eb @@ -0,0 +1,22 @@ +easyblock = 'ConfigureMake' + +name = 'arpack-ng' +version = '3.1.5' + +homepage = 'http://forge.scilab.org/index.php/p/arpack-ng/' +description = """ARPACK is a collection of Fortran77 subroutines designed to solve large scale eigenvalue problems.""" + +toolchain = {'name': 'ictce', 'version': '7.1.2'} +toolchainopts = {'opt': True, 'optarch': True, 'pic': True, 'usempi': True} + +source_urls = ['http://forge.scilab.org/index.php/p/arpack-ng/downloads/get/'] +sources = ['%(name)s_%(version)s.tar.gz'] + +configopts = '--with-pic --with-blas="$LIBBLAS_MT" --with-lapack="$LIBLAPACK_MT"' + +sanity_check_paths = { + 'files': ["lib/libarpack.a", "lib/libarpack.%s" % SHLIB_EXT], + 'dirs': [] +} + +moduleclass = 'numlib' diff --git a/a/arpack-ng/arpack-ng-3.3.0-GCC-4.9.3.eb b/a/arpack-ng/arpack-ng-3.3.0-GCC-4.9.3.eb new file mode 100644 index 00000000..e2390505 --- /dev/null +++ b/a/arpack-ng/arpack-ng-3.3.0-GCC-4.9.3.eb @@ -0,0 +1,25 @@ +easyblock = 'ConfigureMake' + +name = 'arpack-ng' +version = '3.3.0' + +homepage = 'http://forge.scilab.org/index.php/p/arpack-ng/' +description = """ARPACK is a collection of Fortran77 subroutines designed to solve large scale eigenvalue problems.""" + +toolchain = {'name': 'GCC', 'version': '4.9.3'} +#toolchainopts = {'opt': True, 'pic': True, 'usempi': True} + +source_urls = ['https://github.com/opencollab/arpack-ng/archive/'] +sources = ['%(version)s.tar.gz'] + +builddependencies = [('Autotools', '20150215', '', ('GCC', '4.9.3-2.25'))] + +preconfigopts = "sh bootstrap && " +configopts = '--with-pic --with-blas="$LIBBLAS" --with-lapack="$LIBLAPACK"' + +sanity_check_paths = { + 'files': ["lib/libarpack.a", "lib/libarpack.so"], + 'dirs': [] +} + +moduleclass = 'numlib' diff --git a/a/arpack-ng/arpack-ng-3.3.0-foss-2016a.eb b/a/arpack-ng/arpack-ng-3.3.0-foss-2016a.eb new file mode 100644 index 00000000..e082fa78 --- /dev/null +++ b/a/arpack-ng/arpack-ng-3.3.0-foss-2016a.eb @@ -0,0 +1,25 @@ +easyblock = 'ConfigureMake' + +name = 'arpack-ng' +version = '3.3.0' + +homepage = 'http://forge.scilab.org/index.php/p/arpack-ng/' +description = """ARPACK is a collection of Fortran77 subroutines designed to solve large scale eigenvalue problems.""" + +toolchain = {'name': 'foss', 'version': '2016a'} +toolchainopts = {'opt': True, 'pic': True, 'usempi': True} + +source_urls = ['https://github.com/opencollab/arpack-ng/archive/'] +sources = ['%(version)s.tar.gz'] + +builddependencies = [('Autotools', '20150215', '', ('foss', '2016a'))] + +preconfigopts = "sh bootstrap && " +configopts = '--with-pic --with-blas="$LIBBLAS" --with-lapack="$LIBLAPACK"' + +sanity_check_paths = { + 'files': ["lib/libarpack.a", "lib/libarpack.so"], + 'dirs': [] +} + +moduleclass = 'numlib' diff --git a/a/arpack-ng/arpack-ng-3.3.0-intel-2015b.eb b/a/arpack-ng/arpack-ng-3.3.0-intel-2015b.eb new file mode 100644 index 00000000..ccd45e2b --- /dev/null +++ b/a/arpack-ng/arpack-ng-3.3.0-intel-2015b.eb @@ -0,0 +1,26 @@ +easyblock = 'ConfigureMake' + +name = 'arpack-ng' +version = '3.3.0' + +homepage = 'http://forge.scilab.org/index.php/p/arpack-ng/' +description = """ARPACK is a collection of Fortran77 subroutines designed to solve large scale eigenvalue problems.""" + +toolchain = {'name': 'intel', 'version': '2015b'} +toolchainopts = {'opt': True, 'pic': True, 'usempi': True} + +source_urls = ['https://github.com/opencollab/arpack-ng/archive/'] +sources = ['%(version)s.tar.gz'] + +# IT4I modification: because we have GCC 5.1.0 in intel/2015b toolchain... +builddependencies = [('Autotools', '20150215', '', ('GNU', '5.1.0-2.25'))] + +preconfigopts = "sh bootstrap && " +configopts = '--with-pic --with-blas="$LIBBLAS" --with-lapack="$LIBLAPACK"' + +sanity_check_paths = { + 'files': ["lib/libarpack.a", "lib/libarpack.so"], + 'dirs': [] +} + +moduleclass = 'numlib' diff --git a/a/arpack-ng/arpack-ng-3.3.0-intel-2017.00.eb b/a/arpack-ng/arpack-ng-3.3.0-intel-2017.00.eb new file mode 100644 index 00000000..cf908832 --- /dev/null +++ b/a/arpack-ng/arpack-ng-3.3.0-intel-2017.00.eb @@ -0,0 +1,25 @@ +easyblock = 'ConfigureMake' + +name = 'arpack-ng' +version = '3.3.0' + +homepage = 'http://forge.scilab.org/index.php/p/arpack-ng/' +description = """ARPACK is a collection of Fortran77 subroutines designed to solve large scale eigenvalue problems.""" + +toolchain = {'name': 'intel', 'version': '2017.00'} +toolchainopts = {'opt': True, 'pic': True, 'usempi': True} + +source_urls = ['https://github.com/opencollab/arpack-ng/archive/'] +sources = ['%(version)s.tar.gz'] + +builddependencies = [('Autotools', '20150215', '', ('intel', '2017.00'))] + +preconfigopts = "sh bootstrap && " +configopts = '--with-pic --with-blas="$LIBBLAS" --with-lapack="$LIBLAPACK"' + +sanity_check_paths = { + 'files': ["lib/libarpack.a", "lib/libarpack.so"], + 'dirs': [] +} + +moduleclass = 'numlib' diff --git a/a/arpack-ng/arpack-ng-3.4.0-intel-2017.00.eb b/a/arpack-ng/arpack-ng-3.4.0-intel-2017.00.eb new file mode 100644 index 00000000..bb669809 --- /dev/null +++ b/a/arpack-ng/arpack-ng-3.4.0-intel-2017.00.eb @@ -0,0 +1,25 @@ +easyblock = 'ConfigureMake' + +name = 'arpack-ng' +version = '3.4.0' + +homepage = 'http://forge.scilab.org/index.php/p/arpack-ng/' +description = """ARPACK is a collection of Fortran77 subroutines designed to solve large scale eigenvalue problems.""" + +toolchain = {'name': 'intel', 'version': '2017.00'} +toolchainopts = {'opt': True, 'pic': True, 'usempi': True} + +source_urls = ['https://github.com/opencollab/arpack-ng/archive/'] +sources = ['%(version)s.tar.gz'] + +builddependencies = [('Autotools', '20150215', '', ('intel', '2017.00'))] + +preconfigopts = "sh bootstrap && " +configopts = '--with-pic --with-blas="$LIBBLAS" --with-lapack="$LIBLAPACK"' + +sanity_check_paths = { + 'files': ["lib/libarpack.a", "lib/libarpack.so"], + 'dirs': [] +} + +moduleclass = 'numlib' diff --git a/b/BBMap/BBMap-35.82-foss-2015b-Java-1.8.0_66.eb b/b/BBMap/BBMap-35.82-foss-2015b-Java-1.8.0_66.eb new file mode 100644 index 00000000..cd21d99d --- /dev/null +++ b/b/BBMap/BBMap-35.82-foss-2015b-Java-1.8.0_66.eb @@ -0,0 +1,36 @@ +easyblock = 'MakeCp' + +name = 'BBMap' +version = '35.82' + +homepage = 'https://sourceforge.net/projects/bbmap/' +description = """BBMap short read aligner, and other bioinformatic tools.""" + +toolchain = {'name': 'foss', 'version': '2015b'} + +source_urls = [SOURCEFORGE_SOURCE] +sources = ['%(name)s_%(version)s.tar.gz' ] + +java = 'Java' +javaver = '1.8.0_66' +versionsuffix = '-%s-%s' % (java, javaver) +dependencies = [(java, javaver, '', True)] + +prebuildopts = 'cd jni && ' + +suff = {'Darwin': 'osx', 'Linux': 'linux'}[OS_TYPE] +buildopts = "-f makefile.%s" % suff + +files_to_copy = ['*'] + +sanity_check_paths = { + 'files': ['bbmap.sh'], + 'dirs': [] +} + +modextrapaths = {'PATH': ''} + +modloadmsg = """For improved speed, add 'usejni=t' to the command line of %(name)s tools which support the use of the + compiled jni C code.""" + +moduleclass = 'bio' diff --git a/b/BBMap/BBMap-35.82-foss-2015b-Java-1.8.0_74.eb b/b/BBMap/BBMap-35.82-foss-2015b-Java-1.8.0_74.eb new file mode 100644 index 00000000..dff5ba78 --- /dev/null +++ b/b/BBMap/BBMap-35.82-foss-2015b-Java-1.8.0_74.eb @@ -0,0 +1,36 @@ +easyblock = 'MakeCp' + +name = 'BBMap' +version = '35.82' + +homepage = 'https://sourceforge.net/projects/bbmap/' +description = """BBMap short read aligner, and other bioinformatic tools.""" + +toolchain = {'name': 'foss', 'version': '2015b'} + +source_urls = [SOURCEFORGE_SOURCE] +sources = ['%(name)s_%(version)s.tar.gz' ] + +java = 'Java' +javaver = '1.8.0_74' +versionsuffix = '-%s-%s' % (java, javaver) +dependencies = [(java, javaver, '', True)] + +prebuildopts = 'cd jni && ' + +suff = {'Darwin': 'osx', 'Linux': 'linux'}[OS_TYPE] +buildopts = "-f makefile.%s" % suff + +files_to_copy = ['*'] + +sanity_check_paths = { + 'files': ['bbmap.sh'], + 'dirs': [] +} + +modextrapaths = {'PATH': ''} + +modloadmsg = """For improved speed, add 'usejni=t' to the command line of %(name)s tools which support the use of the + compiled jni C code.""" + +moduleclass = 'bio' diff --git a/b/BBMap/BBMap-36.62-intel-2016b-Java-1.8.0_112.eb b/b/BBMap/BBMap-36.62-intel-2016b-Java-1.8.0_112.eb new file mode 100644 index 00000000..7e9be8c9 --- /dev/null +++ b/b/BBMap/BBMap-36.62-intel-2016b-Java-1.8.0_112.eb @@ -0,0 +1,34 @@ +easyblock = 'MakeCp' + +name = 'BBMap' +version = '36.62' +versionsuffix = '-Java-%(javaver)s' + +homepage = 'https://sourceforge.net/projects/bbmap/' +description = """BBMap short read aligner, and other bioinformatic tools.""" + +toolchain = {'name': 'intel', 'version': '2016b'} + +source_urls = [SOURCEFORGE_SOURCE] +sources = ['%(name)s_%(version)s.tar.gz' ] + +dependencies = [('Java', '1.8.0_112', '', True)] + +prebuildopts = 'cd jni && ' + +suff = {'Darwin': 'osx', 'Linux': 'linux'}[OS_TYPE] +buildopts = "-f makefile.%s" % suff + +files_to_copy = ['*'] + +sanity_check_paths = { + 'files': ['bbmap.sh'], + 'dirs': [] +} + +modextrapaths = {'PATH': ''} + +modloadmsg = "For improved speed, add 'usejni=t' to the command line of %(name)s tools which support the use of the" +modloadmsg += " compiled jni C code.\n" + +moduleclass = 'bio' diff --git a/b/BCFtools/BCFtools-1.2-foss-2015a.eb b/b/BCFtools/BCFtools-1.2-foss-2015a.eb new file mode 100644 index 00000000..2ee4f622 --- /dev/null +++ b/b/BCFtools/BCFtools-1.2-foss-2015a.eb @@ -0,0 +1,39 @@ +easyblock = 'ConfigureMake' + +name = 'BCFtools' +version = '1.2' + +homepage = 'http://www.htslib.org/' +description = """Samtools is a suite of programs for interacting with high-throughput sequencing data. + BCFtools - Reading/writing BCF2/VCF/gVCF files and calling/filtering/summarising SNP and short indel sequence variants""" + +toolchain = {'name': 'foss', 'version': '2015a'} +toolchainopts = {'optarch': True, 'pic': True} + +sources = [SOURCELOWER_TAR_BZ2] +source_urls = ['https://github.com/samtools/%(namelower)s/releases/download/%(version)s'] + +patches = ['%(name)s-%(version)s_extHTSlib_Makefile.patch'] + +dependencies = [ + ('HTSlib', '1.2.1'), + ('zlib', '1.2.8'), +] + +parallel = 1 + +skipsteps = ['configure'] + +installopts = ' prefix=%(installdir)s' + +postinstallcmds = [ + 'mkdir -p %(installdir)s/lib/plugins', + 'cp -a plugins/*.so %(installdir)s/lib/plugins/.', +] + +sanity_check_paths = { + 'files': ['bin/%s' % x for x in ['bcftools', 'plot-vcfstats', 'vcfutils.pl']], + 'dirs': ['lib/plugins'], +} + +moduleclass = 'bio' diff --git a/b/BCFtools/BCFtools-1.2-intel-2015a.eb b/b/BCFtools/BCFtools-1.2-intel-2015a.eb new file mode 100644 index 00000000..f9319eca --- /dev/null +++ b/b/BCFtools/BCFtools-1.2-intel-2015a.eb @@ -0,0 +1,39 @@ +easyblock = 'ConfigureMake' + +name = 'BCFtools' +version = '1.2' + +homepage = 'http://www.htslib.org/' +description = """Samtools is a suite of programs for interacting with high-throughput sequencing data. + BCFtools - Reading/writing BCF2/VCF/gVCF files and calling/filtering/summarising SNP and short indel sequence variants""" + +toolchain = {'name': 'intel', 'version': '2015a'} +toolchainopts = {'optarch': True, 'pic': True} + +sources = [SOURCELOWER_TAR_BZ2] +source_urls = ['https://github.com/samtools/%(namelower)s/releases/download/%(version)s'] + +patches = ['%(name)s-%(version)s_extHTSlib_Makefile.patch'] + +dependencies = [ + ('HTSlib', '1.2.1'), + ('zlib', '1.2.8'), +] + +parallel = 1 + +skipsteps = ['configure'] + +installopts = ' prefix=%(installdir)s' + +postinstallcmds = [ + 'mkdir -p %(installdir)s/lib/plugins', + 'cp -a plugins/*.so %(installdir)s/lib/plugins/.', +] + +sanity_check_paths = { + 'files': ['bin/%s' % x for x in ['bcftools', 'plot-vcfstats', 'vcfutils.pl']], + 'dirs': ['lib/plugins'], +} + +moduleclass = 'bio' diff --git a/b/BCFtools/BCFtools-1.3-foss-2015g.eb b/b/BCFtools/BCFtools-1.3-foss-2015g.eb new file mode 100644 index 00000000..6107157d --- /dev/null +++ b/b/BCFtools/BCFtools-1.3-foss-2015g.eb @@ -0,0 +1,37 @@ +easyblock = 'ConfigureMake' + +name = 'BCFtools' +version = '1.3' + +homepage = 'http://www.htslib.org/' +description = """Samtools is a suite of programs for interacting with high-throughput sequencing data. + BCFtools - Reading/writing BCF2/VCF/gVCF files and calling/filtering/summarising SNP and short indel sequence variants""" + +toolchain = {'name': 'foss', 'version': '2015g'} +toolchainopts = {'optarch': True, 'pic': True} + +sources = [SOURCELOWER_TAR_BZ2] +source_urls = ['https://github.com/samtools/%(namelower)s/releases/download/%(version)s'] + +dependencies = [ + ('HTSlib', '1.3'), + ('zlib', '1.2.8'), +] + +parallel = 1 + +skipsteps = ['configure'] + +installopts = ' prefix=%(installdir)s' + +postinstallcmds = [ + 'mkdir -p %(installdir)s/lib/plugins', + 'cp plugins/*.so %(installdir)s/lib/plugins/.', +] + +sanity_check_paths = { + 'files': ['bin/%s' % x for x in ['bcftools', 'plot-vcfstats', 'vcfutils.pl']], + 'dirs': ['lib/plugins'], +} + +moduleclass = 'bio' diff --git a/b/BCFtools/BCFtools-1.3-foss-2016a.eb b/b/BCFtools/BCFtools-1.3-foss-2016a.eb new file mode 100644 index 00000000..6d469bdd --- /dev/null +++ b/b/BCFtools/BCFtools-1.3-foss-2016a.eb @@ -0,0 +1,41 @@ +easyblock = 'ConfigureMake' + +name = 'BCFtools' +version = '1.3' + +homepage = 'http://www.htslib.org/' +description = """Samtools is a suite of programs for interacting with high-throughput sequencing data. + BCFtools - Reading/writing BCF2/VCF/gVCF files and calling/filtering/summarising SNP and short indel sequence variants""" + +toolchain = {'name': 'foss', 'version': '2016a'} +toolchainopts = {'optarch': True, 'pic': True} + +sources = [SOURCELOWER_TAR_BZ2] +source_urls = ['https://github.com/samtools/%(namelower)s/releases/download/%(version)s'] + +patches = ['%(name)s-%(version)s_extHTSlib_Makefile.patch'] + +dependencies = [ + ('HTSlib', '1.3'), + ('zlib', '1.2.8'), + ('GSL', '2.1'), +] + +parallel = 1 + +skipsteps = ['configure'] + +buildopts = 'CC="$CC" CFLAGS="$CFLAGS" USE_GSL=1' +installopts = ' prefix=%(installdir)s' + +postinstallcmds = [ + 'mkdir -p %(installdir)s/lib/plugins', + 'cp -a plugins/*.so %(installdir)s/lib/plugins/.', +] + +sanity_check_paths = { + 'files': ['bin/%s' % x for x in ['bcftools', 'plot-vcfstats', 'vcfutils.pl']], + 'dirs': ['lib/plugins'], +} + +moduleclass = 'bio' diff --git a/b/BCFtools/BCFtools-1.3-intel-2016a.eb b/b/BCFtools/BCFtools-1.3-intel-2016a.eb new file mode 100644 index 00000000..bd1b0422 --- /dev/null +++ b/b/BCFtools/BCFtools-1.3-intel-2016a.eb @@ -0,0 +1,41 @@ +easyblock = 'ConfigureMake' + +name = 'BCFtools' +version = '1.3' + +homepage = 'http://www.htslib.org/' +description = """Samtools is a suite of programs for interacting with high-throughput sequencing data. + BCFtools - Reading/writing BCF2/VCF/gVCF files and calling/filtering/summarising SNP and short indel sequence variants""" + +toolchain = {'name': 'intel', 'version': '2016a'} +toolchainopts = {'optarch': True, 'pic': True} + +sources = [SOURCELOWER_TAR_BZ2] +source_urls = ['https://github.com/samtools/%(namelower)s/releases/download/%(version)s'] + +patches = ['BCFtools-%(version)s_extHTSlib_Makefile.patch'] + +dependencies = [ + ('zlib', '1.2.8'), + ('HTSlib', '1.3'), + ('GSL', '2.1'), +] + +parallel = 1 + +skipsteps = ['configure'] + +buildopts = 'CC="$CC" CFLAGS="$CFLAGS" USE_GSL=1' +installopts = ' prefix=%(installdir)s' + +postinstallcmds = [ + 'mkdir -p %(installdir)s/lib/plugins', + 'cp -a plugins/*.so %(installdir)s/lib/plugins/.', +] + +sanity_check_paths = { + 'files': ['bin/%s' % x for x in ['bcftools', 'plot-vcfstats', 'vcfutils.pl']], + 'dirs': ['lib/plugins'], +} + +moduleclass = 'bio' diff --git a/b/BCFtools/BCFtools-1.3.1-goolf-1.7.20.eb b/b/BCFtools/BCFtools-1.3.1-goolf-1.7.20.eb new file mode 100644 index 00000000..056a4ca4 --- /dev/null +++ b/b/BCFtools/BCFtools-1.3.1-goolf-1.7.20.eb @@ -0,0 +1,37 @@ +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# Author: Pablo Escobar Lopez +# sciCORE - University of Basel +# SIB Swiss Institute of Bioinformatics + +easyblock = 'MakeCp' + +name = 'BCFtools' +version = '1.3.1' + +homepage = 'http://www.htslib.org/' +description = """BCFtools is a set of utilities that manipulate variant calls in the + Variant Call Format (VCF) and its binary counterpart BCF""" + +toolchain = {'name': 'goolf', 'version': '1.7.20'} + +source_urls = ['https://github.com/samtools/bcftools/releases/download/%(version)s/'] +sources = [SOURCELOWER_TAR_BZ2] + +dependencies = [ + ('zlib', '1.2.8'), + ('GSL', '1.16'), +] + +buildopts = " USE_GPL=1 GSL_LIBS='-lgsl -lgslcblas'" + +runtest = 'test' + +files_to_copy = [(["bcftools", "plot-vcfstats", "vcfutils.pl"], "bin"), + "doc", "plugins", "test", "LICENSE", "README", "AUTHORS"] + +sanity_check_paths = { + 'files': ["bin/bcftools"], + 'dirs': [], +} + +moduleclass = 'bio' diff --git a/b/BEDOPS/BEDOPS-2.4.1-GCC-4.8.4.eb b/b/BEDOPS/BEDOPS-2.4.1-GCC-4.8.4.eb new file mode 100644 index 00000000..47aaf73f --- /dev/null +++ b/b/BEDOPS/BEDOPS-2.4.1-GCC-4.8.4.eb @@ -0,0 +1,36 @@ +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# Author: Pablo Escobar Lopez +# Swiss Institute of Bioinformatics +# Biozentrum - University of Basel + +easyblock = 'MakeCp' + +name = "BEDOPS" +version = "2.4.1" + +homepage = 'https://github.com/bedops/bedops' +description = """ BEDOPS is an open-source command-line toolkit that performs highly + efficient and scalable Boolean and other set operations, statistical calculations, + archiving, conversion and other management of genomic data of arbitrary scale.""" + +# this application requires GCC-4.8.x or higher +# be aware if you switch to a different toolchain +toolchain = {'name': 'GCC', 'version': '4.8.4'} + +source_urls = ['https://github.com/bedops/bedops/archive/'] +sources = ['v%(version)s.tar.gz'] + +buildopts = ' static && make install' + +parallel = 1 + +files_to_copy = ["bin"] + +sanity_check_paths = { + 'files': ["bin/%s" % x for x in ["bedmap", "bam2bed" , "sort-bed", + "starchcat", "vcf2bed", "wig2bed", + "gtf2bed", "bedops", "wig2bed"]], + 'dirs': [] +} + +moduleclass = 'bio' diff --git a/b/BLAST/BLAST-2.2.26-Linux_x86_64.eb b/b/BLAST/BLAST-2.2.26-Linux_x86_64.eb new file mode 100644 index 00000000..22babb46 --- /dev/null +++ b/b/BLAST/BLAST-2.2.26-Linux_x86_64.eb @@ -0,0 +1,27 @@ +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# Author: Pablo Escobar Lopez +# Swiss Institute of Bioinformatics +# Biozentrum - University of Basel + +easyblock = "Tarball" + +name = 'BLAST' +version = '2.2.26' +versionsuffix = "-Linux_x86_64" + +homepage = 'http://blast.ncbi.nlm.nih.gov/' +description = """Basic Local Alignment Search Tool, or BLAST, is an algorithm + for comparing primary biological sequence information, such as the amino-acid + sequences of different proteins or the nucleotides of DNA sequences.""" + +toolchain = {'name': 'dummy', 'version': 'dummy'} + +source_urls = ['http://ftp.ncbi.nlm.nih.gov/blast/executables/release/%(version)s/'] +sources = ['%(namelower)s-%(version)s-x64-linux.tar.gz'] + +sanity_check_paths = { + 'files': ["bin/blastall", "bin/impala", "bin/blastpgp"], + 'dirs': [] +} + +moduleclass = 'bio' diff --git a/b/BLAT/BLAT-3.5-goolf-1.4.10.eb b/b/BLAT/BLAT-3.5-goolf-1.4.10.eb new file mode 100644 index 00000000..afbf2938 --- /dev/null +++ b/b/BLAT/BLAT-3.5-goolf-1.4.10.eb @@ -0,0 +1,33 @@ +## +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# +# Copyright:: Copyright 2012-2013 The Cyprus Institute +# Authors:: Andreas Panteli , Thekla Loizou +# License:: MIT/GPL +# +## + +name = 'BLAT' +version = '3.5' + +homepage = 'http://genome.ucsc.edu/FAQ/FAQblat.html' +description = "BLAT on DNA is designed to quickly find sequences of 95% and greater similarity of length 25 bases or more." + +toolchain = {'name': 'goolf', 'version': '1.4.10'} + +sources = ['%%(namelower)sSrc%s.zip' % ''.join(version.split('.'))] +source_urls = ['http://users.soe.ucsc.edu/~kent/src'] + +dependencies = [('libpng', '1.6.2')] + +buildopts = 'CC="$CC" COPT= L="$LIBS"' + +files_to_copy = ["bin", "blat", "gfClient", "gfServer", "hg", "inc", "jkOwnLib", "lib", "utils", "webBlat"] + +sanity_check_paths = { + 'files': ["bin/%s" % x for x in ['blat', 'faToNib', 'faToTwoBit', 'gfClient', 'gfServer', 'nibFrag', + 'pslPretty', 'pslReps', 'pslSort', 'twoBitInfo', 'twoBitToFa']], + 'dirs': files_to_copy, +} + +moduleclass = 'bio' diff --git a/b/BLAT/BLAT-3.5-ictce-5.5.0-libpng-1.6.9.eb b/b/BLAT/BLAT-3.5-ictce-5.5.0-libpng-1.6.9.eb new file mode 100644 index 00000000..e2d58baf --- /dev/null +++ b/b/BLAT/BLAT-3.5-ictce-5.5.0-libpng-1.6.9.eb @@ -0,0 +1,37 @@ +## +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# +# Copyright:: Copyright 2012-2013 The Cyprus Institute +# Authors:: Andreas Panteli , Thekla Loizou +# License:: MIT/GPL +# +## + +name = 'BLAT' +version = '3.5' + +homepage = 'http://genome.ucsc.edu/FAQ/FAQblat.html' +description = "BLAT on DNA is designed to quickly find sequences of 95% and greater similarity of length 25 bases or more." + +toolchain = {'name': 'ictce', 'version': '5.5.0'} + +sources = ['%%(namelower)sSrc%s.zip' % ''.join(version.split('.'))] +source_urls = ['http://users.soe.ucsc.edu/~kent/src'] + +libpng = 'libpng' +libpng_ver = '1.6.9' +versionsuffix = '-%s-%s' % (libpng, libpng_ver) + +dependencies = [(libpng, libpng_ver)] + +buildopts = 'CC="$CC" COPT= L="$LIBS"' + +files_to_copy = ["bin", "blat", "gfClient", "gfServer", "hg", "inc", "jkOwnLib", "lib", "utils", "webBlat"] + +sanity_check_paths = { + 'files': ["bin/%s" % x for x in ['blat', 'faToNib', 'faToTwoBit', 'gfClient', 'gfServer', 'nibFrag', + 'pslPretty', 'pslReps', 'pslSort', 'twoBitInfo', 'twoBitToFa']], + 'dirs': files_to_copy, +} + +moduleclass = 'bio' diff --git a/b/BLAT/BLAT-3.5-ictce-5.5.0.eb b/b/BLAT/BLAT-3.5-ictce-5.5.0.eb new file mode 100644 index 00000000..5f6044dc --- /dev/null +++ b/b/BLAT/BLAT-3.5-ictce-5.5.0.eb @@ -0,0 +1,33 @@ +## +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# +# Copyright:: Copyright 2012-2013 The Cyprus Institute +# Authors:: Andreas Panteli , Thekla Loizou +# License:: MIT/GPL +# +## + +name = 'BLAT' +version = '3.5' + +homepage = 'http://genome.ucsc.edu/FAQ/FAQblat.html' +description = "BLAT on DNA is designed to quickly find sequences of 95% and greater similarity of length 25 bases or more." + +toolchain = {'name': 'ictce', 'version': '5.5.0'} + +sources = ['%%(namelower)sSrc%s.zip' % ''.join(version.split('.'))] +source_urls = ['http://users.soe.ucsc.edu/~kent/src'] + +dependencies = [('libpng', '1.6.6')] + +buildopts = 'CC="$CC" COPT= L="$LIBS"' + +files_to_copy = ["bin", "blat", "gfClient", "gfServer", "hg", "inc", "jkOwnLib", "lib", "utils", "webBlat"] + +sanity_check_paths = { + 'files': ["bin/%s" % x for x in ['blat', 'faToNib', 'faToTwoBit', 'gfClient', 'gfServer', 'nibFrag', + 'pslPretty', 'pslReps', 'pslSort', 'twoBitInfo', 'twoBitToFa']], + 'dirs': files_to_copy, +} + +moduleclass = 'bio' diff --git a/b/BLCR/BLCR-0.8.5-GNU-5.1.0-2.25.eb b/b/BLCR/BLCR-0.8.5-GNU-5.1.0-2.25.eb new file mode 100644 index 00000000..d8e1c5a5 --- /dev/null +++ b/b/BLCR/BLCR-0.8.5-GNU-5.1.0-2.25.eb @@ -0,0 +1,23 @@ +easyblock = 'ConfigureMake' + +name = 'BLCR' +version = '0.8.5' + +homepage = 'http://crd.lbl.gov/departments/computer-science/CLaSS/research/BLCR/' +description = """Berkeley Lab Checkpoint/Restart (BLCR) for LINUX. Future Technologies Group researchers +are developing a hybrid kernel/user implementation of checkpoint/restart. Their goal is to provide +a robust, production quality implementation that checkpoints a wide range of applications, +without requiring changes to be made to application code. """ + +toolchain = {'name': 'GNU', 'version': '5.1.0-2.25'} +toolchainopts = {'optarch': True, 'pic': True} + +sources = [SOURCELOWER_TAR_GZ] +source_urls = [('http://crd.lbl.gov/assets/Uploads/FTG/Projects/CheckpointRestart/downloads')] + +sanity_check_paths = { + 'files': ['include/libcr.h'], + 'dirs': [], +} + +moduleclass = 'lib' diff --git a/b/BWA/BWA-0.7.13-goolf-1.4.10.eb b/b/BWA/BWA-0.7.13-goolf-1.4.10.eb new file mode 100644 index 00000000..9cbb01f1 --- /dev/null +++ b/b/BWA/BWA-0.7.13-goolf-1.4.10.eb @@ -0,0 +1,28 @@ +## +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# +# Copyright:: Copyright 2012-2014 Cyprus Institute / CaSToRC, Uni.Lu/LCSB, NTUA +# Authors:: George Tsouloupas , Fotis Georgatos , Daniel Navarro +# 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 +## + +name = 'BWA' +version = '0.7.13' + +homepage = 'http://bio-bwa.sourceforge.net/' +description = """Burrows-Wheeler Aligner (BWA) is an efficient program that aligns + relatively short nucleotide sequences against a long reference sequence such as the human genome.""" + +toolchain = {'name': 'goolf', 'version': '1.4.10'} +toolchainopts = {'optarch': True, 'pic': True} + +sources = [SOURCELOWER_TAR_BZ2] +source_urls = [('http://sourceforge.net/projects/bio-bwa/files/', 'download')] + +dependencies = [('zlib', '1.2.8')] + +moduleclass = 'bio' diff --git a/b/BXH_XCEDE_TOOLS/BXH_XCEDE_TOOLS-1.11.1.eb b/b/BXH_XCEDE_TOOLS/BXH_XCEDE_TOOLS-1.11.1.eb new file mode 100644 index 00000000..9cd875e7 --- /dev/null +++ b/b/BXH_XCEDE_TOOLS/BXH_XCEDE_TOOLS-1.11.1.eb @@ -0,0 +1,28 @@ +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# Author: Ravi Tripathi +# Email: ravi89@uab.edu + +easyblock = "Tarball" + +name = 'BXH_XCEDE_TOOLS' +version = '1.11.1' + +homepage = 'http://www.nitrc.org/projects/bxh_xcede_tools/' +description = """A collection of data processing and image analysis +tools for data in BXH or XCEDE format. This includes data format +encapsulation/conversion, event-related analysis, QA tools, and more. +These tools form the basis of the fBIRN QA procedures and are also +distributed as part of the fBIRN Data Upload Scripts.""" + +toolchain = {'name': 'dummy', 'version': 'dummy'} + +source_urls = ['http://www.nitrc.org/frs/download.php/7384/'] +sources = ['bxh_xcede_tools-%(version)s-lsb30.x86_64.tgz'] + +sanity_check_paths = { + 'files': ["bin/dicom2bxh", "bin/dicom2xcede"], + 'dirs': [] +} + +moduleclass = 'bio' + diff --git a/b/BamUtil/BamUtil-1.0.13-foss-2015b.eb b/b/BamUtil/BamUtil-1.0.13-foss-2015b.eb new file mode 100644 index 00000000..66b054cc --- /dev/null +++ b/b/BamUtil/BamUtil-1.0.13-foss-2015b.eb @@ -0,0 +1,31 @@ +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# +# Author: Adam Huffman +# adam.huffman@crick.ac.uk +# The Francis Crick Institute +# +# This is the version with the bundled libStatGen library + +name = 'BamUtil' +version = '1.0.13' + +easyblock = 'MakeCp' + +homepage = 'http://genome.sph.umich.edu/wiki/BamUtil' +description = """BamUtil is a repository that contains several programs + that perform operations on SAM/BAM files. All of these programs + are built into a single executable, bam.""" + +toolchain = {'name': 'foss', 'version': '2015b'} + +sources = ['%(name)sLibStatGen.%(version)s.tgz'] +source_urls = ['http://genome.sph.umich.edu/w/images/7/70/'] + +files_to_copy = ["bamUtil/bin", "libStatGen"] + +sanity_check_paths = { + 'files': ["bin/bam"], + 'dirs': ["libStatGen"], +} + +moduleclass = 'bio' diff --git a/b/Bash/Bash-4.2-intel-2015b.eb b/b/Bash/Bash-4.2-intel-2015b.eb new file mode 100644 index 00000000..07307a48 --- /dev/null +++ b/b/Bash/Bash-4.2-intel-2015b.eb @@ -0,0 +1,59 @@ +# Built with EasyBuild version 2.1.1 on 2015-06-30_09-17-37 +## +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# +# Copyright:: Copyright 2012-2013 University of Luxembourg/Computer Science and Communications Research Unit +# Authors:: Valentin Plugaru +# 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_05-06.html +## + +easyblock = 'ConfigureMake' + +name = 'Bash' +version = '4.2' + +homepage = 'http://www.gnu.org/software/bash' +description = """Bash is an sh-compatible command language interpreter that executes commands + read from the standard input or from a file. Bash also incorporates useful features from the + Korn and C shells (ksh and csh).""" + +toolchain = {'name': 'intel', 'version': '2015b'} + +sources = [SOURCELOWER_TAR_GZ] +source_urls = [GNU_SOURCE] + +sanity_check_paths = { + 'files': ["bin/bash"], + 'dirs': [] +} + +moduleclass = 'tools' + +# Build statistics +buildstats = [{ + "easybuild-framework_version": "2.1.1", + "easybuild-easyblocks_version": "2.1.1", + "timestamp": 1435648657, + "build_time": 125.54, + "install_size": 4996169, + "command_line": ['--buildpath=/easybuild/build', '--installpath=/apps', '--installpath-modules=/apps/modules', '--installpath-software=/apps', '--module-naming-scheme=IT4IModuleNamingScheme', '--modules-footer=/easybuild/templates/modules/jas02_footer.txt', '--repositorypath=/easybuild/file-repository', '--robot=/easybuild/easyconfigs-salomon/easybuild/easyconfigs', '--robot-paths=/easybuild/easyconfigs-salomon/easybuild/easyconfigs', '--sourcepath=/easybuild/sources', '--try-toolchain="[\'intel\', \'2015b\']"', 'Bash-4.2-ictce-5.3.0.eb'], + "modules_tool": ('EnvironmentModulesC', '/usr/bin/modulecmd', '3.2.10'), + "core_count": 28, + "cpu_model": "Intel(R) Xeon(R) CPU E5-2695 v3 @ 2.30GHz", + "cpu_speed": 2300.041, + "cpu_vendor": "Intel", + "gcc_version": "Using built-in specs.; COLLECT_GCC=gcc; COLLECT_LTO_WRAPPER=/apps/all/GCC/5.1.0-binutils-2.25/libexec/gcc/x86_64-unknown-linux-gnu/5.1.0/lto-wrapper; Target: x86_64-unknown-linux-gnu; Configured with: ../configure --enable-languages=c,c++,fortran --enable-lto --enable-checking=release --disable-multilib --enable-shared=yes --enable-static=yes --enable-threads=posix --enable-gold=default --enable-plugins --enable-ld --with-plugin-ld=ld.gold --prefix=/apps/all/GCC/5.1.0-binutils-2.25 --with-local-prefix=/apps/all/GCC/5.1.0-binutils-2.25 --enable-bootstrap --with-isl=/easybuild/build/GCC/5.1.0/dummy--binutils-2.25/gcc-5.1.0/stage2_stuff; Thread model: posix; gcc version 5.1.0 (GCC) ; ", + "glibc_version": "2.12", + "hostname": "login1", + "os_name": "centos", + "os_type": "Linux", + "os_version": "6.6", + "platform_name": "x86_64-unknown-linux", + "python_version": "2.6.6 (r266:84292, Jan 22 2014, 09:42:36) ; [GCC 4.4.7 20120313 (Red Hat 4.4.7-4)]", + "system_gcc_path": "/apps/all/GCC/5.1.0-binutils-2.25/bin/gcc", + "system_python_path": "/usr/bin/python", +}] diff --git a/b/BayPass/BayPass-2.1-goolf-1.7.20.eb b/b/BayPass/BayPass-2.1-goolf-1.7.20.eb new file mode 100644 index 00000000..e948c06e --- /dev/null +++ b/b/BayPass/BayPass-2.1-goolf-1.7.20.eb @@ -0,0 +1,40 @@ +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# Author: Pablo Escobar Lopez +# sciCORE - University of Basel +# SIB Swiss Institute of Bioinformatics + +easyblock = 'MakeCp' + +name = 'BayPass' +version = '2.1' + +homepage = 'http://www1.montpellier.inra.fr/CBGP/software/baypass/index.html' +description = """BayPass is a population genomics software which is primarily aimed at identifying + genetic markers subjected to selection and/or associated to population-specific covariates + (e.g., environmental variables, quantitative or categorical phenotypic characteristics). + The underlying models explicitly account for (and may estimate) the covariance structure among the + population allele frequencies that originates from the shared history of the populations under study""" + +toolchain = {'name': 'goolf', 'version': '1.7.20'} +toolchainopts = {'openmp': True} + +source_urls = ['http://www1.montpellier.inra.fr/CBGP/software/baypass/files/'] +sources = ['%(namelower)s_%(version)s.tar.gz'] + +start_dir = 'sources' + +parallel = 1 + +files_to_copy = [(['sources/g_baypass'], 'bin/'), + 'BayPass_manual_2.1.pdf', + 'examples', + 'Licence_CeCILL-B_V1-en.txt', + 'utils' +] + +sanity_check_paths = { + 'files': ['bin/g_baypass'], + 'dirs': [] +} + +moduleclass = 'bio' diff --git a/b/BayeScEnv/BayeScEnv-1.1-foss-2016a.eb b/b/BayeScEnv/BayeScEnv-1.1-foss-2016a.eb new file mode 100644 index 00000000..cd1dd259 --- /dev/null +++ b/b/BayeScEnv/BayeScEnv-1.1-foss-2016a.eb @@ -0,0 +1,32 @@ +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# Author: Pablo Escobar Lopez +# sciCORE - University of Basel +# SIB Swiss Institute of Bioinformatics + +easyblock = 'MakeCp' + +name = 'BayeScEnv' +version = '1.1' + +homepage = 'https://github.com/devillemereuil/bayescenv' +description = """BayeScEnv is a Fst-based, genome-scan method that uses environmental variables to detect +local adaptation.""" + +toolchain = {'name': 'foss', 'version': '2016a'} +toolchainopts = {'openmp': True} + +source_urls = ['https://github.com/devillemereuil/bayescenv/archive/'] +sources = ['v%(version)s.tar.gz'] + +start_dir = 'source' + +files_to_copy = [(['source/bayescenv'], 'bin'), 'test', 'COPYING', 'README.md', 'ChangeLog'] + +parallel = 1 + +sanity_check_paths = { + 'files': ['bin/bayescenv'], + 'dirs': [], +} + +moduleclass = 'bio' diff --git a/b/BayeScEnv/BayeScEnv-1.1-goolf-1.4.10.eb b/b/BayeScEnv/BayeScEnv-1.1-goolf-1.4.10.eb new file mode 100644 index 00000000..7a976185 --- /dev/null +++ b/b/BayeScEnv/BayeScEnv-1.1-goolf-1.4.10.eb @@ -0,0 +1,31 @@ +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# Author: Pablo Escobar Lopez +# sciCORE - University of Basel +# SIB Swiss Institute of Bioinformatics + +easyblock = 'MakeCp' + +name = 'BayeScEnv' +version = '1.1' + +homepage = 'https://github.com/devillemereuil/bayescenv' +description = """BayeScEnv is a Fst-based, genome-scan method that uses environmental variables to detect local adaptation.""" + +toolchain = {'name': 'goolf', 'version': '1.4.10'} +toolchainopts = {'openmp': True} + +source_urls = ['https://github.com/devillemereuil/bayescenv/archive/'] +sources = ['v%(version)s.tar.gz'] + +start_dir = 'source' + +files_to_copy = [(['source/bayescenv'], 'bin'), 'test', 'COPYING', 'README.md', 'ChangeLog'] + +parallel = 1 + +sanity_check_paths = { + 'files': ['bin/bayescenv'], + 'dirs': [], +} + +moduleclass = 'bio' diff --git a/b/BayeScan/BayeScan-2.1-foss-2016a.eb b/b/BayeScan/BayeScan-2.1-foss-2016a.eb new file mode 100644 index 00000000..c4932d39 --- /dev/null +++ b/b/BayeScan/BayeScan-2.1-foss-2016a.eb @@ -0,0 +1,39 @@ +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# Author: Pablo Escobar Lopez +# sciCORE - University of Basel +# SIB Swiss Institute of Bioinformatics + +easyblock = 'MakeCp' + +name = 'BayeScan' +version = '2.1' + +homepage = 'http://cmpg.unibe.ch/software/BayeScan/' +description = """BayeScan aims at identifying candidate loci under natural selection from genetic data, + using differences in allele frequencies between populations.""" + +toolchain = {'name': 'foss', 'version': '2016a'} +toolchainopts = {'openmp': True} + +source_urls = ['http://cmpg.unibe.ch/software/BayeScan/files/'] +sources = ['%(name)s%(version)s.zip'] + +prebuildopts = "sed -i.bk 's/g++/${CXX} ${CXXFLAGS}/g' Makefile && " + +start_dir = 'source' + +files_to_copy = [ + (['source/bayescan_%(version)s'], 'bin'), + 'BayeScan%(version)s_manual.pdf', + 'input_examples', + 'R functions' +] + +parallel = 1 + +sanity_check_paths = { + 'files': ['bin/bayescan_%(version)s'], + 'dirs': [], +} + +moduleclass = 'bio' diff --git a/b/BayeScan/BayeScan-2.1-goolf-1.4.10.eb b/b/BayeScan/BayeScan-2.1-goolf-1.4.10.eb new file mode 100644 index 00000000..3745f65f --- /dev/null +++ b/b/BayeScan/BayeScan-2.1-goolf-1.4.10.eb @@ -0,0 +1,40 @@ +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# Author: Pablo Escobar Lopez +# sciCORE - University of Basel +# SIB Swiss Institute of Bioinformatics + +easyblock = 'MakeCp' + +name = 'BayeScan' +version = '2.1' + +homepage = 'http://cmpg.unibe.ch/software/BayeScan/' +description = """BayeScan aims at identifying candidate loci under natural selection from genetic data, + using differences in allele frequencies between populations.""" + +# BayeScan makefile is hardcoded to use g++. In case you want to use a non-gcc toolchain you will need to patch the makefile +toolchain = {'name': 'goolf', 'version': '1.4.10'} +toolchainopts = {'openmp': True} + +source_urls = ['http://cmpg.unibe.ch/software/BayeScan/files/'] +sources = ['%(name)s%(version)s.zip'] + +start_dir = 'source' + +# fix the makefile which hardcodes g++ compiler +prebuildopts = "sed -i -e 's/g++/${CXX} ${CFLAGS}/g' Makefile && " + +files_to_copy = [ + (['source/bayescan_%(version)s'], 'bin'), + 'BayeScan%(version)s_manual.pdf', + 'input_examples', + 'R functions'] + +parallel = 1 + +sanity_check_paths = { + 'files': ['bin/bayescan_%(version)s'], + 'dirs': [], +} + +moduleclass = 'bio' diff --git a/b/BayesAss/BayesAss-3.0.4-foss-2016a.eb b/b/BayesAss/BayesAss-3.0.4-foss-2016a.eb new file mode 100644 index 00000000..0dc4a540 --- /dev/null +++ b/b/BayesAss/BayesAss-3.0.4-foss-2016a.eb @@ -0,0 +1,27 @@ +easyblock = 'ConfigureMake' + +name = 'BayesAss' +version = '3.0.4' + +homepage = 'http://www.rannala.org/?page_id=245' +description = """ +BayesAss: Bayesian Inference of Recent Migration Using Multilocus Genotypes +""" + +toolchain = {'name': 'foss','version': '2016a'} +sources = ['BA3-%(version)s.tar.gz'] + +source_urls = ['http://downloads.sourceforge.net/project/bayesass/BA3/%(version)s/src/'] + +dependencies = [ + ('GSL','2.1') +] + +runtest = 'check' + +sanity_check_paths = { + 'files': ['bin/BA3'], + 'dirs' : ['bin', 'include'] +} + +moduleclass = 'bio' diff --git a/b/Bazel/Bazel-0.3.0-CrayGNU-2016.03.eb b/b/Bazel/Bazel-0.3.0-CrayGNU-2016.03.eb new file mode 100644 index 00000000..2490a425 --- /dev/null +++ b/b/Bazel/Bazel-0.3.0-CrayGNU-2016.03.eb @@ -0,0 +1,30 @@ +# @author: Guilherme Peretti-Pezzi (CSCS) + +easyblock = "CmdCp" + +name = 'Bazel' +version = '0.3.0' + +homepage = 'http://bazel.io/' +description = """Bazel is a build tool that builds code quickly and reliably. +It is used to build the majority of Google's software.""" + +toolchain = {'name': 'CrayGNU', 'version': '2016.03'} + +dependencies = [ + ('java/jdk1.8.0_51', EXTERNAL_MODULE), +] + +sources = ['%(version)s.tar.gz'] +source_urls = ['https://github.com/bazelbuild/bazel/archive/'] + +cmds_map = [('.*', "JAVA_VERSION=1.8 CC=gcc CXX=g++ ./compile.sh")] + +files_to_copy = [(['output/bazel'], 'bin')] + +sanity_check_paths={ + 'files': ['bin/bazel'], + 'dirs': ['bin'], +} + +moduleclass = 'devel' diff --git a/b/Bazel/Bazel-0.4.4.eb b/b/Bazel/Bazel-0.4.4.eb new file mode 100644 index 00000000..2494ff10 --- /dev/null +++ b/b/Bazel/Bazel-0.4.4.eb @@ -0,0 +1,31 @@ +# @author: Robert Schmidt (OHRI) +# @author: Guilherme Peretti-Pezzi (CSCS) + +easyblock = "CmdCp" + +name = 'Bazel' +version = '0.4.4' + +homepage = 'http://bazel.io/' +description = """Bazel is a build tool that builds code quickly and reliably. +It is used to build the majority of Google's software.""" + +toolchain = {'name': 'dummy', 'version': 'dummy'} + +sources = ['%(namelower)s-%(version)s-dist.zip'] +source_urls = ['https://github.com/bazelbuild/bazel/releases/download/%(version)s'] + +dependencies = [ + ('Java', '1.8.0_121'), +] + +cmds_map = [('.*', "./compile.sh")] + +files_to_copy = [(['output/bazel'], 'bin')] + +sanity_check_paths={ + 'files': ['bin/bazel'], + 'dirs': [], +} + +moduleclass = 'devel' diff --git a/b/Beast/Beast-1.8.4.eb b/b/Beast/Beast-1.8.4.eb new file mode 100644 index 00000000..972161d1 --- /dev/null +++ b/b/Beast/Beast-1.8.4.eb @@ -0,0 +1,33 @@ +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# Author: Pablo Escobar Lopez +# Swiss Institute of Bioinformatics +# Biozentrum - University of Basel + +easyblock = "Tarball" + +name = 'Beast' +version = '1.8.4' + +homepage = 'http://beast.bio.ed.ac.uk/' +description = """ BEAST is a cross-platform program for Bayesian MCMC analysis of molecular + sequences. It is entirely orientated towards rooted, time-measured phylogenies inferred using + strict or relaxed molecular clock models. It can be used as a method of reconstructing phylogenies + but is also a framework for testing evolutionary hypotheses without conditioning on a single + tree topology. BEAST uses MCMC to average over tree space, so that each tree is weighted + proportional to its posterior probability. """ + +toolchain = {'name': 'dummy', 'version': ''} + +source_urls= ['https://github.com/beast-dev/beast-mcmc/releases/download/v%(version)s/'] +sources = ['BEASTv%(version)s.tgz'] + +dependencies = [ + ('Java', '1.8.0_74', '', True), +] + +sanity_check_paths = { + 'files': ["bin/beast"], + 'dirs': [] +} + +moduleclass = 'bio' diff --git a/b/BerkeleyGW/BerkeleyGW-1.0.6-intel-2016.02-GCC-4.9.eb b/b/BerkeleyGW/BerkeleyGW-1.0.6-intel-2016.02-GCC-4.9.eb new file mode 100644 index 00000000..5afb842c --- /dev/null +++ b/b/BerkeleyGW/BerkeleyGW-1.0.6-intel-2016.02-GCC-4.9.eb @@ -0,0 +1,37 @@ +easyblock = 'ConfigureMake' + +name = 'BerkeleyGW' +version = "1.0.6" + +homepage = 'http://www.berkeleygw.org' +description = """The BerkeleyGW Package is a set of computer codes that calculates the quasiparticle + properties and the optical responses of a large variety of materials from bulk periodic crystals to + nanostructures such as slabs, wires and molecules.""" + +toolchain = {'name': 'intel', 'version': '2016.02-GCC-4.9'} +toolchainopts = {'usempi': True} + +source_urls = ['http://www.berkeleygw.org/releases/'] +sources = ['BGW-%(version)s.tar.gz'] +checksums = ['8740562da41e87a62eb8d457675e4bfd'] + +skipsteps = ['configure'] + +prebuildopts = 'cp config/generic.mpi.linux.mk arch.mk && ' + +buildopts = 'all-flavors COMPFLAG=-DINTEL PARAFLAG="-DMPI -DOMP" DEBUGFLAG="" F90free="$MPIF90 -free" LINK="$MPIF90" ' +buildopts += 'FOPTS="$FFLAGS -qopenmp" MOD_OPT="-module " C_PARAFLAG="$PARAFLAG" CC_COMP="$MPICXX" C_COMP="$MPICC" ' +buildopts += 'C_LINK="$MPICXX" C_OPTS="$CFLAGS -qopenmp" MKLPATH="$MKLROOT" LAPACKLIB="$LIBLAPACK" ' +buildopts += 'BLACSDIR="$BLACS_LIB_DIR" BLACS="$LIBBLACS" SCALAPACKLIB="$LIBSCALAPACK" ' +buildopts += 'FFTWINCLUDE="$FFTW_INC_DIR" FFTWLIB="$MKLROOT/lib/intel64/libfftw2xf_double_intel.a" ' + +installopts = 'INSTDIR=%(installdir)s' + +sanity_check_paths = { + 'files': ['bin/'+prog+'.'+flavor+'.x' + for prog in ['epsilon', 'sigma', 'kernel', 'absorption'] + for flavor in ['real', 'cplx']], + 'dirs': [] +} + +moduleclass = 'phys' diff --git a/b/BerkeleyGW/BerkeleyGW-1.1-beta2-intel-2016.02-GCC-4.9.eb b/b/BerkeleyGW/BerkeleyGW-1.1-beta2-intel-2016.02-GCC-4.9.eb new file mode 100644 index 00000000..9d064dae --- /dev/null +++ b/b/BerkeleyGW/BerkeleyGW-1.1-beta2-intel-2016.02-GCC-4.9.eb @@ -0,0 +1,37 @@ +easyblock = 'ConfigureMake' + +name = 'BerkeleyGW' +version = "1.1-beta2" + +homepage = 'http://www.berkeleygw.org' +description = """The BerkeleyGW Package is a set of computer codes that calculates the quasiparticle + properties and the optical responses of a large variety of materials from bulk periodic crystals to + nanostructures such as slabs, wires and molecules.""" + +toolchain = {'name': 'intel', 'version': '2016.02-GCC-4.9'} +toolchainopts = {'usempi': True} + +source_urls = ['http://www.berkeleygw.org/releases/'] +sources = ['BGW-%(version)s.tar.gz'] +checksums = ['75a258c9a5d255da9e0b15bd3e7f08b2'] + +skipsteps = ['configure'] + +prebuildopts = 'cp config/generic.mpi.linux.mk arch.mk && ' + +buildopts = 'all-flavors COMPFLAG=-DINTEL PARAFLAG="-DMPI -DOMP" DEBUGFLAG="" F90free="$MPIF90 -free" LINK="$MPIF90" ' +buildopts += 'FOPTS="$FFLAGS -qopenmp" MOD_OPT="-module " C_PARAFLAG="$PARAFLAG" CC_COMP="$MPICXX" C_COMP="$MPICC" ' +buildopts += 'C_LINK="$MPICXX" C_OPTS="$CFLAGS -qopenmp" MKLPATH="$MKLROOT" LAPACKLIB="$LIBLAPACK" ' +buildopts += 'BLACSDIR="$BLACS_LIB_DIR" BLACS="$LIBBLACS" SCALAPACKLIB="$LIBSCALAPACK" ' +buildopts += 'FFTWINCLUDE="$FFTW_INC_DIR" FFTWLIB="$MKLROOT/lib/intel64/libfftw2xf_double_intel.a" ' + +installopts = 'INSTDIR=%(installdir)s' + +sanity_check_paths = { + 'files': ['bin/'+prog+'.'+flavor+'.x' + for prog in ['epsilon', 'sigma', 'kernel', 'absorption'] + for flavor in ['real', 'cplx']], + 'dirs': [] +} + +moduleclass = 'phys' diff --git a/b/BerkeleyUPC/BerkeleyUPC-2.16.2-gompi-2015b.eb b/b/BerkeleyUPC/BerkeleyUPC-2.16.2-gompi-2015b.eb new file mode 100644 index 00000000..f54add81 --- /dev/null +++ b/b/BerkeleyUPC/BerkeleyUPC-2.16.2-gompi-2015b.eb @@ -0,0 +1,42 @@ +easyblock = 'ConfigureMake' + +name = 'BerkeleyUPC' +version = '2.16.2' + +homepage = 'http://upc.lbl.gov' +description = """The goal of the Berkeley UPC compiler group is to develop a portable, +high performance implementation of UPC for large-scale multiprocessors, PC clusters, +and clusters of shared memory multiprocessors. +""" + +toolchain = {'name': 'gompi', 'version': '2015b'} + +source_urls = [ + 'http://upc.lbl.gov/download/release/' +] +sources = ['berkeley_upc-%(version)s.tar.gz'] + +preconfigopts = './Bootstrap -L && ' +preconfigopts += 'export CFLAGS="$OPTFLAGS -fopenmp -Wl,-rpath,$EBROOTGCC/lib64" && ' +# Manually create build directory +preconfigopts += 'mkdir build && cd build && ' + +# To be able run "../configure" +configure_cmd_prefix = "." + +configopts = 'MPI_CC=$EBROOTOPENMPI/bin/mpicc --enable-sptr-symmetric --disable-aligned-segments ' +configopts += '--enable-pshm --disable-pshm-posix --enable-pshm-sysv --enable-par --enable-udp ' +configopts += '--enable-smp --enable-mpi --enable-ibv --with-default-network=smp --disable-shmem ' + +prebuildopts = 'cd build && ' + +preinstallopts = 'cd build && ' + +sanity_check_paths = { + 'files': ['bin/upcc_multi'], + 'dirs': ['bin', 'etc'], +} + +parallel = 1 + +moduleclass = 'compiler' diff --git a/b/BioPerl/BioPerl-1.6.924-foss-2016a-Perl-5.22.1.eb b/b/BioPerl/BioPerl-1.6.924-foss-2016a-Perl-5.22.1.eb new file mode 100644 index 00000000..d62e2cbb --- /dev/null +++ b/b/BioPerl/BioPerl-1.6.924-foss-2016a-Perl-5.22.1.eb @@ -0,0 +1,40 @@ +easyblock = 'Bundle' + +name = 'BioPerl' +version = '1.6.924' +versionsuffix = '-Perl-%(perlver)s' + +homepage = 'http://www.bioperl.org/' +description = """Bioperl is the product of a community effort to produce Perl code which is useful in biology. + Examples include Sequence objects, Alignment objects and database searching objects.""" + +toolchain = {'name': 'foss', 'version': '2016a'} + +# this is a bundle of Perl modules +exts_defaultclass = 'PerlModule' +exts_filter = ("perldoc -lm %(ext_name)s ", "") + +dependencies = [ + ('Perl', '5.22.1'), + ('DB_File', '1.835', versionsuffix), +] + +exts_list = [ + # CGI has been removed from the Perl core since version 5.22 + ('CGI', '4.28', { + 'source_tmpl': 'CGI-4.28.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/L/LE/LEEJO/'], + }), + (name, version, { + 'modulename': 'Bio::Perl', + 'source_tmpl': 'release-%s.tar.gz' % version.replace('.', '-'), + 'source_urls': ['https://github.com/bioperl/bioperl-live/archive/'], + }), +] + +modextrapaths = { + 'PERL5LIB': 'lib/perl5/site_perl/%(perlver)s/' +} + +moduleclass = 'bio' + diff --git a/b/Biopython/Biopython-1.61-goolf-1.4.10-Python-2.7.3.eb b/b/Biopython/Biopython-1.61-goolf-1.4.10-Python-2.7.3.eb new file mode 100644 index 00000000..a3dca177 --- /dev/null +++ b/b/Biopython/Biopython-1.61-goolf-1.4.10-Python-2.7.3.eb @@ -0,0 +1,45 @@ +## +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# +# Copyright:: Copyright 2012-2013 The Cyprus Institute +# Authors:: Andreas Panteli , Thekla Loizou , George Tsouloupas +# License:: MIT/GPL +# +## +easyblock = "PythonPackage" + +name = 'Biopython' +version = '1.61' + +homepage = 'http://www.biopython.org' +description = """Biopython is a set of freely available tools for biological computation written +in Python by an international team of developers. It is a distributed collaborative effort to +develop Python libraries and applications which address the needs of current and future work in +bioinformatics. """ + +toolchain = {'name': 'goolf', 'version': '1.4.10'} + +source_urls = ['http://biopython.org/DIST'] +sources = ['%(namelower)s-%(version)s.tar.gz'] + +python = 'Python' +pyver = '2.7.3' +pyshortver = '.'.join(pyver.split('.')[:2]) + +versionsuffix = "-%s-%s" % (python, pyver) + +dependencies = [ + (python, pyver), + ('numpy', '1.6.2', versionsuffix) +] + +sanity_check_paths = { + 'files': [], + 'dirs': ['lib/python%s/site-packages/Bio' % pyshortver, + 'lib/python%s/site-packages/biopython-%s-py%s.egg-info' % (pyshortver, version, pyshortver), + 'lib/python%s/site-packages/BioSQL' % pyshortver] +} + +options = {'modulename': 'Bio'} + +moduleclass = 'bio' diff --git a/b/Biopython/Biopython-1.61-ictce-5.3.0-Python-2.7.3.eb b/b/Biopython/Biopython-1.61-ictce-5.3.0-Python-2.7.3.eb new file mode 100644 index 00000000..5efa64f0 --- /dev/null +++ b/b/Biopython/Biopython-1.61-ictce-5.3.0-Python-2.7.3.eb @@ -0,0 +1,45 @@ +## +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# +# Copyright:: Copyright 2012-2013 The Cyprus Institute +# Authors:: Andreas Panteli , Thekla Loizou , George Tsouloupas +# License:: MIT/GPL +# +## +easyblock = "PythonPackage" + +name = 'Biopython' +version = '1.61' + +homepage = 'http://www.biopython.org' +description = """Biopython is a set of freely available tools for biological computation written +in Python by an international team of developers. It is a distributed collaborative effort to +develop Python libraries and applications which address the needs of current and future work in +bioinformatics. """ + +toolchain = {'name': 'ictce', 'version': '5.3.0'} + +source_urls = ['http://biopython.org/DIST'] +sources = ['%(namelower)s-%(version)s.tar.gz'] + +python = 'Python' +pyver = '2.7.3' +pyshortver = '.'.join(pyver.split('.')[:2]) + +versionsuffix = "-%s-%s" % (python, pyver) + +dependencies = [ + (python, pyver), + ('numpy', '1.6.2', versionsuffix) +] + +sanity_check_paths = { + 'files': [], + 'dirs': ['lib/python%s/site-packages/Bio' % pyshortver, + 'lib/python%s/site-packages/biopython-%s-py%s.egg-info' % (pyshortver, version, pyshortver), + 'lib/python%s/site-packages/BioSQL' % pyshortver] +} + +options = {'modulename': 'Bio'} + +moduleclass = 'bio' diff --git a/b/Biopython/Biopython-1.65-foss-2016a-Python-2.7.11.eb b/b/Biopython/Biopython-1.65-foss-2016a-Python-2.7.11.eb new file mode 100644 index 00000000..a42f248e --- /dev/null +++ b/b/Biopython/Biopython-1.65-foss-2016a-Python-2.7.11.eb @@ -0,0 +1,37 @@ +## +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# +# Copyright:: Copyright 2012-2013 The Cyprus Institute +# Authors:: Andreas Panteli , Thekla Loizou , George Tsouloupas +# License:: MIT/GPL +# +## +easyblock = "PythonPackage" + +name = 'Biopython' +version = '1.65' +versionsuffix = "-Python-%(pyver)s" + +homepage = 'http://www.biopython.org' +description = """Biopython is a set of freely available tools for biological computation written +in Python by an international team of developers. It is a distributed collaborative effort to +develop Python libraries and applications which address the needs of current and future work in +bioinformatics. """ + +toolchain = {'name': 'foss', 'version': '2016a'} + +source_urls = ['http://biopython.org/DIST'] +sources = ['%(namelower)s-%(version)s.tar.gz'] + +dependencies = [ + ('Python', '2.7.11') +] + +sanity_check_paths = { + 'files': [], + 'dirs': ['lib/python%(pyshortver)s/site-packages/Bio', 'lib/python%(pyshortver)s/site-packages/BioSQL'] +} + +options = {'modulename': 'Bio'} + +moduleclass = 'bio' diff --git a/b/Biopython/Biopython-1.68-foss-2016b-Python-2.7.12.eb b/b/Biopython/Biopython-1.68-foss-2016b-Python-2.7.12.eb new file mode 100644 index 00000000..1c5fd3f3 --- /dev/null +++ b/b/Biopython/Biopython-1.68-foss-2016b-Python-2.7.12.eb @@ -0,0 +1,41 @@ +## +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# +# Copyright:: Copyright 2012-2013 The Cyprus Institute +# Authors:: Andreas Panteli , Thekla Loizou , George Tsouloupas +# License:: MIT/GPL +# +## +# foss-2016b modified by: +# Adam Huffman +# The Francis Crick Institute + +easyblock = "PythonPackage" + +name = 'Biopython' +version = '1.68' +versionsuffix = "-Python-%(pyver)s" + +homepage = 'http://www.biopython.org' +description = """Biopython is a set of freely available tools for biological computation written +in Python by an international team of developers. It is a distributed collaborative effort to +develop Python libraries and applications which address the needs of current and future work in +bioinformatics. """ + +toolchain = {'name': 'foss', 'version': '2016b'} + +source_urls = ['http://biopython.org/DIST'] +sources = ['%(namelower)s-%(version)s.tar.gz'] + +dependencies = [ + ('Python', '2.7.12') +] + +sanity_check_paths = { + 'files': [], + 'dirs': ['lib/python%(pyshortver)s/site-packages/Bio', 'lib/python%(pyshortver)s/site-packages/BioSQL'] +} + +options = {'modulename': 'Bio'} + +moduleclass = 'bio' diff --git a/b/Biopython/Biopython-1.68-intel-2016b-Python-2.7.12.eb b/b/Biopython/Biopython-1.68-intel-2016b-Python-2.7.12.eb new file mode 100644 index 00000000..95330484 --- /dev/null +++ b/b/Biopython/Biopython-1.68-intel-2016b-Python-2.7.12.eb @@ -0,0 +1,37 @@ +## +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# +# Copyright:: Copyright 2012-2013 The Cyprus Institute +# Authors:: Andreas Panteli , Thekla Loizou , George Tsouloupas +# License:: MIT/GPL +# +## +easyblock = 'PythonPackage' + +name = 'Biopython' +version = '1.68' +versionsuffix = '-Python-%(pyver)s' + +homepage = 'http://www.biopython.org' +description = """Biopython is a set of freely available tools for biological computation written +in Python by an international team of developers. It is a distributed collaborative effort to +develop Python libraries and applications which address the needs of current and future work in +bioinformatics. """ + +toolchain = {'name': 'intel', 'version': '2016b'} + +source_urls = ['http://biopython.org/DIST'] +sources = [SOURCELOWER_TAR_GZ] + +dependencies = [ + ('Python', '2.7.12') +] + +sanity_check_paths = { + 'files': [], + 'dirs': ['lib/python%(pyshortver)s/site-packages/Bio', 'lib/python%(pyshortver)s/site-packages/BioSQL'] +} + +options = {'modulename': 'Bio'} + +moduleclass = 'bio' diff --git a/b/Biopython/Biopython-1.68-intel-2016b-Python-3.5.2.eb b/b/Biopython/Biopython-1.68-intel-2016b-Python-3.5.2.eb new file mode 100644 index 00000000..b22f5170 --- /dev/null +++ b/b/Biopython/Biopython-1.68-intel-2016b-Python-3.5.2.eb @@ -0,0 +1,37 @@ +## +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# +# Copyright:: Copyright 2012-2013 The Cyprus Institute +# Authors:: Andreas Panteli , Thekla Loizou , George Tsouloupas +# License:: MIT/GPL +# +## +easyblock = 'PythonPackage' + +name = 'Biopython' +version = '1.68' +versionsuffix = '-Python-%(pyver)s' + +homepage = 'http://www.biopython.org' +description = """Biopython is a set of freely available tools for biological computation written +in Python by an international team of developers. It is a distributed collaborative effort to +develop Python libraries and applications which address the needs of current and future work in +bioinformatics. """ + +toolchain = {'name': 'intel', 'version': '2016b'} + +source_urls = ['http://biopython.org/DIST'] +sources = [SOURCELOWER_TAR_GZ] + +dependencies = [ + ('Python', '3.5.2') +] + +sanity_check_paths = { + 'files': [], + 'dirs': ['lib/python%(pyshortver)s/site-packages/Bio', 'lib/python%(pyshortver)s/site-packages/BioSQL'] +} + +options = {'modulename': 'Bio'} + +moduleclass = 'bio' diff --git a/b/Bison/Bison-2.5-intel-2015b.eb b/b/Bison/Bison-2.5-intel-2015b.eb new file mode 100644 index 00000000..2d39a7be --- /dev/null +++ b/b/Bison/Bison-2.5-intel-2015b.eb @@ -0,0 +1,49 @@ +# Built with EasyBuild version 2.1.1 on 2015-08-17_09-21-44 +easyblock = 'ConfigureMake' + +name = 'Bison' +version = '2.5' + +homepage = 'http://www.gnu.org/software/bison' +description = """Bison is a general-purpose parser generator that converts an annotated context-free grammar + into a deterministic LR or generalized LR (GLR) parser employing LALR(1) parser tables.""" + + +toolchain = {'name': 'intel', 'version': '2015b'} + +sources = [SOURCELOWER_TAR_GZ] +source_urls = [GNU_SOURCE] + +builddependencies = [('M4', '1.4.16')] + +sanity_check_paths = { + 'files': ["bin/%s" % x for x in ["bison", "yacc"]] + ["lib/liby.a"], + 'dirs': [], +} + +moduleclass = 'lang' + +# Build statistics +buildstats = [{ + "easybuild-framework_version": "2.1.1", + "easybuild-easyblocks_version": "2.1.1", + "timestamp": 1439796104, + "build_time": 172.3, + "install_size": 2032630, + "command_line": ['--buildpath=/easybuild/build', '--installpath=/apps', '--installpath-modules=/apps/modules', '--installpath-software=/apps', '--module-naming-scheme=IT4IModuleNamingScheme', '--modules-footer=/easybuild/templates/modules/jas02_footer.txt', '--repositorypath=/easybuild/file-repository', '--robot=/easybuild/easyconfigs-salomon/easybuild/easyconfigs', '--robot-paths=/easybuild/easyconfigs-salomon/easybuild/easyconfigs', '--sourcepath=/easybuild/sources', '--try-toolchain="[\'intel\', \'2015b\']"', 'libmatheval-1.1.8-ictce-5.3.0.eb'], + "modules_tool": ('EnvironmentModulesC', '/usr/bin/modulecmd', '3.2.10'), + "core_count": 28, + "cpu_model": "Intel(R) Xeon(R) CPU E5-2695 v3 @ 2.30GHz", + "cpu_speed": 2299.825, + "cpu_vendor": "Intel", + "gcc_version": "Using built-in specs.; COLLECT_GCC=gcc; COLLECT_LTO_WRAPPER=/apps/all/GCC/5.1.0-binutils-2.25/libexec/gcc/x86_64-unknown-linux-gnu/5.1.0/lto-wrapper; Target: x86_64-unknown-linux-gnu; Configured with: ../configure --enable-languages=c,c++,fortran --enable-lto --enable-checking=release --disable-multilib --enable-shared=yes --enable-static=yes --enable-threads=posix --enable-gold=default --enable-plugins --enable-ld --with-plugin-ld=ld.gold --prefix=/apps/all/GCC/5.1.0-binutils-2.25 --with-local-prefix=/apps/all/GCC/5.1.0-binutils-2.25 --enable-bootstrap --with-isl=/easybuild/build/GCC/5.1.0/dummy--binutils-2.25/gcc-5.1.0/stage2_stuff; Thread model: posix; gcc version 5.1.0 (GCC) ; ", + "glibc_version": "2.12", + "hostname": "login1", + "os_name": "centos", + "os_type": "Linux", + "os_version": "6.6", + "platform_name": "x86_64-unknown-linux", + "python_version": "2.6.6 (r266:84292, Jan 22 2014, 09:42:36) ; [GCC 4.4.7 20120313 (Red Hat 4.4.7-4)]", + "system_gcc_path": "/apps/all/GCC/5.1.0-binutils-2.25/bin/gcc", + "system_python_path": "/usr/bin/python", +}] diff --git a/b/Bison/Bison-2.7-GNU-5.1.0-2.25.eb b/b/Bison/Bison-2.7-GNU-5.1.0-2.25.eb new file mode 100644 index 00000000..d73ad460 --- /dev/null +++ b/b/Bison/Bison-2.7-GNU-5.1.0-2.25.eb @@ -0,0 +1,23 @@ +# Built with EasyBuild version 2.1.1 on 2015-07-07_14-44-07 +easyblock = 'ConfigureMake' + +name = 'Bison' +version = '2.7' + +homepage = 'http://www.gnu.org/software/bison' +description = """Bison is a general-purpose parser generator that converts an annotated context-free grammar + into a deterministic LR or generalized LR (GLR) parser employing LALR(1) parser tables.""" + +toolchain = {'name': 'GNU', 'version': '5.1.0-2.25'} + +sources = [SOURCELOWER_TAR_GZ] +source_urls = [GNU_SOURCE] + +builddependencies = [('M4', '1.4.17')] + +sanity_check_paths = { + 'files': ["bin/%s" % x for x in ["bison", "yacc"]] + ["lib/liby.a"], + 'dirs': [], +} + +moduleclass = 'lang' diff --git a/b/Bison/Bison-2.7-foss-2015b.eb b/b/Bison/Bison-2.7-foss-2015b.eb new file mode 100644 index 00000000..95693c5d --- /dev/null +++ b/b/Bison/Bison-2.7-foss-2015b.eb @@ -0,0 +1,23 @@ +# Built with EasyBuild version 2.1.1 on 2015-06-29_19-24-16 +easyblock = 'ConfigureMake' + +name = 'Bison' +version = '2.7' + +homepage = 'http://www.gnu.org/software/bison' +description = """Bison is a general-purpose parser generator that converts an annotated context-free grammar + into a deterministic LR or generalized LR (GLR) parser employing LALR(1) parser tables.""" + +toolchain = {'name': 'foss', 'version': '2015b'} + +sources = [SOURCELOWER_TAR_GZ] +source_urls = [GNU_SOURCE] + +builddependencies = [('M4', '1.4.17')] + +sanity_check_paths = { + 'files': ["bin/%s" % x for x in ["bison", "yacc"]] + ["lib/liby.a"], + 'dirs': [], +} + +moduleclass = 'lang' diff --git a/b/Bison/Bison-2.7-foss-2015g.eb b/b/Bison/Bison-2.7-foss-2015g.eb new file mode 100644 index 00000000..8ea1b09b --- /dev/null +++ b/b/Bison/Bison-2.7-foss-2015g.eb @@ -0,0 +1,22 @@ +easyblock = 'ConfigureMake' + +name = 'Bison' +version = '2.7' + +homepage = 'http://www.gnu.org/software/bison' +description = """Bison is a general-purpose parser generator that converts an annotated context-free grammar + into a deterministic LR or generalized LR (GLR) parser employing LALR(1) parser tables.""" + +toolchain = {'name': 'foss', 'version': '2015g'} + +sources = [SOURCELOWER_TAR_GZ] +source_urls = [GNU_SOURCE] + +builddependencies = [('M4', '1.4.17', '', ('GNU', '4.9.3-2.25'))] + +sanity_check_paths = { + 'files': ["bin/%s" % x for x in ["bison", "yacc"]] + ["lib/liby.a"], + 'dirs': [], +} + +moduleclass = 'lang' diff --git a/b/Bison/Bison-2.7-foss-2016a.eb b/b/Bison/Bison-2.7-foss-2016a.eb new file mode 100644 index 00000000..24d5df02 --- /dev/null +++ b/b/Bison/Bison-2.7-foss-2016a.eb @@ -0,0 +1,22 @@ +easyblock = 'ConfigureMake' + +name = 'Bison' +version = '2.7' + +homepage = 'http://www.gnu.org/software/bison' +description = """Bison is a general-purpose parser generator that converts an annotated context-free grammar + into a deterministic LR or generalized LR (GLR) parser employing LALR(1) parser tables.""" + +toolchain = {'name': 'foss', 'version': '2016a'} + +sources = [SOURCELOWER_TAR_GZ] +source_urls = [GNU_SOURCE] + +builddependencies = [('M4', '1.4.17', '', ('GNU', '4.9.3-2.25'))] + +sanity_check_paths = { + 'files': ["bin/%s" % x for x in ["bison", "yacc"]] + ["lib/liby.a"], + 'dirs': [], +} + +moduleclass = 'lang' diff --git a/b/Bison/Bison-3.0.2-GCC-4.8.3.eb b/b/Bison/Bison-3.0.2-GCC-4.8.3.eb new file mode 100644 index 00000000..d3a883e2 --- /dev/null +++ b/b/Bison/Bison-3.0.2-GCC-4.8.3.eb @@ -0,0 +1,48 @@ +# Built with EasyBuild version 2.1.1 on 2015-06-09_16-06-48 +easyblock = 'ConfigureMake' + +name = 'Bison' +version = '3.0.2' + +homepage = 'http://www.gnu.org/software/bison' +description = """Bison is a general-purpose parser generator that converts an annotated context-free grammar + into a deterministic LR or generalized LR (GLR) parser employing LALR(1) parser tables.""" + +toolchain = {'name': 'GCC', 'version': '4.8.3'} + +sources = [SOURCELOWER_TAR_GZ] +source_urls = [GNU_SOURCE] + +builddependencies = [('M4', '1.4.17')] + +sanity_check_paths = { + 'files': ["bin/%s" % x for x in ["bison", "yacc"]] + ["lib/liby.a"], + 'dirs': [], +} + +moduleclass = 'lang' + +# Build statistics +buildstats = [{ + "easybuild-framework_version": "2.1.1", + "easybuild-easyblocks_version": "2.1.1", + "timestamp": 1433858808, + "build_time": 59.57, + "install_size": 2111129, + "command_line": ['--debug', '--force', '--robot=/var/lib/gitlab/ci_runner/.local/easy/software/EasyBuild/2.1.1/lib/python2.6/site-packages/easybuild_easyconfigs-2.1.1-py2.6.egg/easybuild/easyconfigs:/var/lib/gitlab/ci_runner/gitlab-ci-runner/tmp/builds/project-2', '--robot-paths=:/var/lib/gitlab/ci_runner/gitlab-ci-runner/tmp/builds/project-2', '--try-toolchain="[\'GCC\', \'4.8.3\']"', 'Bison-3.0.2-GCC-4.8.2.eb'], + "modules_tool": ('EnvironmentModulesC', '/usr/bin/modulecmd', '3.2.10'), + "core_count": 16, + "cpu_model": "Intel(R) Xeon(R) CPU E5-2665 0 @ 2.40GHz", + "cpu_speed": 2400.0, + "cpu_vendor": "Intel", + "gcc_version": "Using built-in specs.; COLLECT_GCC=gcc; COLLECT_LTO_WRAPPER=/var/lib/gitlab/ci_runner/.local/easybuild/software/GCC/4.8.3/libexec/gcc/x86_64-unknown-linux-gnu/4.8.3/lto-wrapper; Target: x86_64-unknown-linux-gnu; Configured with: ../configure --enable-languages=c,c++,fortran --enable-lto --enable-checking=release --disable-multilib --enable-shared=yes --enable-static=yes --enable-threads=posix --enable-gold=default --enable-plugins --enable-ld --with-plugin-ld=ld.gold --enable-bootstrap --prefix=/var/lib/gitlab/ci_runner/.local/easybuild/software/GCC/4.8.3 --with-local-prefix=/var/lib/gitlab/ci_runner/.local/easybuild/software/GCC/4.8.3; Thread model: posix; gcc version 4.8.3 (GCC) ; ", + "glibc_version": "2.12", + "hostname": "jas02-easybuild-ebfiles", + "os_name": "centos", + "os_type": "Linux", + "os_version": "6.6", + "platform_name": "x86_64-unknown-linux", + "python_version": "2.6.6 (r266:84292, Jan 22 2014, 09:42:36) ; [GCC 4.4.7 20120313 (Red Hat 4.4.7-4)]", + "system_gcc_path": "/var/lib/gitlab/ci_runner/.local/easybuild/software/GCC/4.8.3/bin/gcc", + "system_python_path": "/usr/bin/python", +}] diff --git a/b/Bison/Bison-3.0.2-intel-2015b.eb b/b/Bison/Bison-3.0.2-intel-2015b.eb new file mode 100644 index 00000000..5fa3b429 --- /dev/null +++ b/b/Bison/Bison-3.0.2-intel-2015b.eb @@ -0,0 +1,48 @@ +# Built with EasyBuild version 2.1.1 on 2015-06-30_09-48-19 +easyblock = 'ConfigureMake' + +name = 'Bison' +version = '3.0.2' + +homepage = 'http://www.gnu.org/software/bison' +description = """Bison is a general-purpose parser generator that converts an annotated context-free grammar + into a deterministic LR or generalized LR (GLR) parser employing LALR(1) parser tables.""" + +toolchain = {'name': 'intel', 'version': '2015b'} + +sources = [SOURCELOWER_TAR_GZ] +source_urls = [GNU_SOURCE] + +builddependencies = [('M4', '1.4.17')] + +sanity_check_paths = { + 'files': ["bin/%s" % x for x in ["bison", "yacc"]] + ["lib/liby.a"], + 'dirs': [], +} + +moduleclass = 'lang' + +# Build statistics +buildstats = [{ + "easybuild-framework_version": "2.1.1", + "easybuild-easyblocks_version": "2.1.1", + "timestamp": 1435650499, + "build_time": 167.17, + "install_size": 2318597, + "command_line": ['--buildpath=/easybuild/build', '--installpath=/apps', '--installpath-modules=/apps/modules', '--installpath-software=/apps', '--module-naming-scheme=IT4IModuleNamingScheme', '--modules-footer=/easybuild/templates/modules/jas02_footer.txt', '--repositorypath=/easybuild/file-repository', '--robot=/easybuild/easyconfigs-salomon/easybuild/easyconfigs', '--robot-paths=/easybuild/easyconfigs-salomon/easybuild/easyconfigs', '--sourcepath=/easybuild/sources', '--try-toolchain="[\'intel\', \'2015b\']"', 'netCDF-4.3.2-intel-2015a.eb'], + "modules_tool": ('EnvironmentModulesC', '/usr/bin/modulecmd', '3.2.10'), + "core_count": 28, + "cpu_model": "Intel(R) Xeon(R) CPU E5-2695 v3 @ 2.30GHz", + "cpu_speed": 2300.041, + "cpu_vendor": "Intel", + "gcc_version": "Using built-in specs.; COLLECT_GCC=gcc; COLLECT_LTO_WRAPPER=/apps/all/GCC/5.1.0-binutils-2.25/libexec/gcc/x86_64-unknown-linux-gnu/5.1.0/lto-wrapper; Target: x86_64-unknown-linux-gnu; Configured with: ../configure --enable-languages=c,c++,fortran --enable-lto --enable-checking=release --disable-multilib --enable-shared=yes --enable-static=yes --enable-threads=posix --enable-gold=default --enable-plugins --enable-ld --with-plugin-ld=ld.gold --prefix=/apps/all/GCC/5.1.0-binutils-2.25 --with-local-prefix=/apps/all/GCC/5.1.0-binutils-2.25 --enable-bootstrap --with-isl=/easybuild/build/GCC/5.1.0/dummy--binutils-2.25/gcc-5.1.0/stage2_stuff; Thread model: posix; gcc version 5.1.0 (GCC) ; ", + "glibc_version": "2.12", + "hostname": "login1", + "os_name": "centos", + "os_type": "Linux", + "os_version": "6.6", + "platform_name": "x86_64-unknown-linux", + "python_version": "2.6.6 (r266:84292, Jan 22 2014, 09:42:36) ; [GCC 4.4.7 20120313 (Red Hat 4.4.7-4)]", + "system_gcc_path": "/apps/all/GCC/5.1.0-binutils-2.25/bin/gcc", + "system_python_path": "/usr/bin/python", +}] diff --git a/b/Bison/Bison-3.0.4-foss-2017a.eb b/b/Bison/Bison-3.0.4-foss-2017a.eb new file mode 100644 index 00000000..99f8ffd7 --- /dev/null +++ b/b/Bison/Bison-3.0.4-foss-2017a.eb @@ -0,0 +1,22 @@ +easyblock = 'ConfigureMake' + +name = 'Bison' +version = '3.0.4' + +homepage = 'http://www.gnu.org/software/bison' +description = """Bison is a general-purpose parser generator that converts an annotated context-free grammar + into a deterministic LR or generalized LR (GLR) parser employing LALR(1) parser tables.""" + +toolchain = {'name': 'foss', 'version': '2017a'} + +sources = [SOURCELOWER_TAR_GZ] +source_urls = [GNU_SOURCE] + +builddependencies = [('M4', '1.4.18')] + +sanity_check_paths = { + 'files': ["bin/%s" % x for x in ["bison", "yacc"]] + ["lib/liby.a"], + 'dirs': [], +} + +moduleclass = 'lang' diff --git a/b/Bison/Bison-3.0.4-intel-2017.00.eb b/b/Bison/Bison-3.0.4-intel-2017.00.eb new file mode 100644 index 00000000..6f8b202f --- /dev/null +++ b/b/Bison/Bison-3.0.4-intel-2017.00.eb @@ -0,0 +1,22 @@ +easyblock = 'ConfigureMake' + +name = 'Bison' +version = '3.0.4' + +homepage = 'http://www.gnu.org/software/bison' +description = """Bison is a general-purpose parser generator that converts an annotated context-free grammar + into a deterministic LR or generalized LR (GLR) parser employing LALR(1) parser tables.""" + +toolchain = {'name': 'intel', 'version': '2017.00'} + +sources = [SOURCELOWER_TAR_GZ] +source_urls = [GNU_SOURCE] + +builddependencies = [('M4', '1.4.17')] + +sanity_check_paths = { + 'files': ["bin/%s" % x for x in ["bison", "yacc"]] + ["lib/liby.a"], + 'dirs': [], +} + +moduleclass = 'lang' diff --git a/b/Bison/Bison-3.0.4.eb b/b/Bison/Bison-3.0.4.eb new file mode 100644 index 00000000..1a4316fd --- /dev/null +++ b/b/Bison/Bison-3.0.4.eb @@ -0,0 +1,22 @@ +easyblock = 'ConfigureMake' + +name = 'Bison' +version = '3.0.4' + +homepage = 'http://www.gnu.org/software/bison' +description = """Bison is a general-purpose parser generator that converts an annotated context-free grammar +into a deterministic LR or generalized LR (GLR) parser employing LALR(1) parser tables.""" + +toolchain = {'name': 'dummy', 'version': ''} + +sources = [SOURCELOWER_TAR_GZ] +source_urls = [GNU_SOURCE] + +builddependencies = [('M4', '1.4.18')] + +sanity_check_paths = { + 'files': ["bin/%s" % x for x in ["bison", "yacc"]] + ["lib/liby.a"], + 'dirs': [], +} + +moduleclass = 'lang' diff --git a/b/Boost/Boost-1.49.0-goolf-1.5.16-Python-2.7.3.eb b/b/Boost/Boost-1.49.0-goolf-1.5.16-Python-2.7.3.eb new file mode 100644 index 00000000..abb2ecc8 --- /dev/null +++ b/b/Boost/Boost-1.49.0-goolf-1.5.16-Python-2.7.3.eb @@ -0,0 +1,26 @@ +name = 'Boost' +version = '1.49.0' + +homepage = 'http://www.boost.org/' +description = """Boost provides free peer-reviewed portable C++ source libraries.""" + +toolchain = {'name': 'goolf', 'version': '1.5.16'} +toolchainopts = {'pic': True, 'usempi': True} + +source_urls = [SOURCEFORGE_SOURCE] +sources = ['%%(namelower)s_%s.tar.gz' % '_'.join(version.split('.'))] + +pythonversion = '2.7.3' +versionsuffix = '-Python-%s' % pythonversion + +dependencies = [ + ('bzip2', '1.0.6'), + ('Python', pythonversion), +] + +# also build boost_mpi +boost_mpi = True + +osdependencies = [('zlib-devel','zlib1g-dev')] + +moduleclass = 'devel' diff --git a/b/Boost/Boost-1.58.0-foss-2015g-Python-2.7.9.eb b/b/Boost/Boost-1.58.0-foss-2015g-Python-2.7.9.eb new file mode 100644 index 00000000..764b67b4 --- /dev/null +++ b/b/Boost/Boost-1.58.0-foss-2015g-Python-2.7.9.eb @@ -0,0 +1,26 @@ +# Built with EasyBuild version 2.1.1 on 2015-08-10_13-26-38 +name = 'Boost' +version = '1.58.0' + +homepage = 'http://www.boost.org/' +description = """Boost provides free peer-reviewed portable C++ source libraries.""" + +toolchain = {'name': 'foss', 'version': '2015g'} +toolchainopts = {'pic': True, 'usempi': True} + +source_urls = [SOURCEFORGE_SOURCE] +sources = ['%%(namelower)s_%s.tar.gz' % '_'.join(version.split('.'))] + +pythonversion = '2.7.9' +versionsuffix = '-Python-%s' % pythonversion + +dependencies = [ + ('bzip2', '1.0.6'), + ('zlib', '1.2.8'), + ('Python', pythonversion), +] + +# also build boost_mpi +boost_mpi = True + +moduleclass = 'devel' diff --git a/b/Boost/Boost-1.58.0-gompi-2015e-Python-2.7.9.eb b/b/Boost/Boost-1.58.0-gompi-2015e-Python-2.7.9.eb new file mode 100644 index 00000000..71e6f18e --- /dev/null +++ b/b/Boost/Boost-1.58.0-gompi-2015e-Python-2.7.9.eb @@ -0,0 +1,25 @@ +name = 'Boost' +version = '1.58.0' + +homepage = 'http://www.boost.org/' +description = """Boost provides free peer-reviewed portable C++ source libraries.""" + +toolchain = {'name': 'gompi', 'version': '2015e'} +toolchainopts = {'pic': True, 'usempi': True} + +source_urls = [SOURCEFORGE_SOURCE] +sources = ['%%(namelower)s_%s.tar.gz' % '_'.join(version.split('.'))] + +pythonversion = '2.7.9' +versionsuffix = '-Python-%s' % pythonversion + +dependencies = [ + ('bzip2', '1.0.6'), + ('zlib', '1.2.8'), + ('Python', pythonversion), +] + +# also build boost_mpi +boost_mpi = True + +moduleclass = 'devel' diff --git a/b/Boost/Boost-1.58.0-ictce-7.3.5-Python-2.7.9.eb b/b/Boost/Boost-1.58.0-ictce-7.3.5-Python-2.7.9.eb new file mode 100644 index 00000000..0a5e8bf6 --- /dev/null +++ b/b/Boost/Boost-1.58.0-ictce-7.3.5-Python-2.7.9.eb @@ -0,0 +1,26 @@ +# Built with EasyBuild version 2.1.1 on 2015-08-10_13-26-38 +name = 'Boost' +version = '1.58.0' + +homepage = 'http://www.boost.org/' +description = """Boost provides free peer-reviewed portable C++ source libraries.""" + +toolchain = {'name': 'ictce', 'version': '7.3.5'} +toolchainopts = {'pic': True, 'usempi': True} + +source_urls = [SOURCEFORGE_SOURCE] +sources = ['%%(namelower)s_%s.tar.gz' % '_'.join(version.split('.'))] + +pythonversion = '2.7.9' +versionsuffix = '-Python-%s' % pythonversion + +dependencies = [ + ('bzip2', '1.0.6'), + ('zlib', '1.2.8'), + ('Python', pythonversion), +] + +# also build boost_mpi +boost_mpi = True + +moduleclass = 'devel' diff --git a/b/Boost/Boost-1.58.0-intel-2015b-Python-2.7.9.eb b/b/Boost/Boost-1.58.0-intel-2015b-Python-2.7.9.eb new file mode 100644 index 00000000..c8093bd8 --- /dev/null +++ b/b/Boost/Boost-1.58.0-intel-2015b-Python-2.7.9.eb @@ -0,0 +1,51 @@ +# Built with EasyBuild version 2.1.1 on 2015-08-10_13-26-38 +name = 'Boost' +version = '1.58.0' + +homepage = 'http://www.boost.org/' +description = """Boost provides free peer-reviewed portable C++ source libraries.""" + +toolchain = {'name': 'intel', 'version': '2015b'} +toolchainopts = {'pic': True, 'usempi': True} + +source_urls = [SOURCEFORGE_SOURCE] +sources = ['%%(namelower)s_%s.tar.gz' % '_'.join(version.split('.'))] + +pythonversion = '2.7.9' +versionsuffix = '-Python-%s' % pythonversion + +dependencies = [ + ('bzip2', '1.0.6'), + ('zlib', '1.2.8'), + ('Python', pythonversion), +] + +# also build boost_mpi +boost_mpi = True + +moduleclass = 'devel' + +# Build statistics +buildstats = [{ + "easybuild-framework_version": "2.1.1", + "easybuild-easyblocks_version": "2.1.1", + "timestamp": 1439205997, + "build_time": 2676.48, + "install_size": 202109237, + "command_line": ['--buildpath=/easybuild/build', '--installpath=/apps', '--installpath-modules=/apps/modules', '--installpath-software=/apps', '--module-naming-scheme=IT4IModuleNamingScheme', '--modules-footer=/easybuild/templates/modules/jas02_footer.txt', '--repositorypath=/easybuild/file-repository', '--robot=/easybuild/easyconfigs-salomon/easybuild/easyconfigs', '--robot-paths=/easybuild/easyconfigs-salomon/easybuild/easyconfigs', '--sourcepath=/easybuild/sources', '--try-toolchain="[\'intel\', \'2015b\']"', 'Boost-1.58.0-intel-2015a-Python-2.7.9.eb'], + "modules_tool": ('EnvironmentModulesC', '/usr/bin/modulecmd', '3.2.10'), + "core_count": 28, + "cpu_model": "Intel(R) Xeon(R) CPU E5-2695 v3 @ 2.30GHz", + "cpu_speed": 2299.825, + "cpu_vendor": "Intel", + "gcc_version": "Using built-in specs.; COLLECT_GCC=gcc; COLLECT_LTO_WRAPPER=/apps/all/GCC/5.1.0-binutils-2.25/libexec/gcc/x86_64-unknown-linux-gnu/5.1.0/lto-wrapper; Target: x86_64-unknown-linux-gnu; Configured with: ../configure --enable-languages=c,c++,fortran --enable-lto --enable-checking=release --disable-multilib --enable-shared=yes --enable-static=yes --enable-threads=posix --enable-gold=default --enable-plugins --enable-ld --with-plugin-ld=ld.gold --prefix=/apps/all/GCC/5.1.0-binutils-2.25 --with-local-prefix=/apps/all/GCC/5.1.0-binutils-2.25 --enable-bootstrap --with-isl=/easybuild/build/GCC/5.1.0/dummy--binutils-2.25/gcc-5.1.0/stage2_stuff; Thread model: posix; gcc version 5.1.0 (GCC) ; ", + "glibc_version": "2.12", + "hostname": "login1", + "os_name": "centos", + "os_type": "Linux", + "os_version": "6.6", + "platform_name": "x86_64-unknown-linux", + "python_version": "2.6.6 (r266:84292, Jan 22 2014, 09:42:36) ; [GCC 4.4.7 20120313 (Red Hat 4.4.7-4)]", + "system_gcc_path": "/apps/all/GCC/5.1.0-binutils-2.25/bin/gcc", + "system_python_path": "/apps/all/Python/2.7.9-intel-2015b/bin/python", +}] diff --git a/b/Boost/Boost-1.59.0-intel-2015b-Python-2.7.11 b/b/Boost/Boost-1.59.0-intel-2015b-Python-2.7.11 new file mode 100644 index 00000000..e69de29b diff --git a/b/Boost/Boost-1.60.0-CrayGNU-2016.03-Python-2.7.11.eb b/b/Boost/Boost-1.60.0-CrayGNU-2016.03-Python-2.7.11.eb new file mode 100644 index 00000000..18a7a4b7 --- /dev/null +++ b/b/Boost/Boost-1.60.0-CrayGNU-2016.03-Python-2.7.11.eb @@ -0,0 +1,30 @@ +# @author: Luca Marsella (CSCS) +# @author: Guilherme Peretti-Pezzi (CSCS) +# @author: Petar Forai (IMP/IMBA) + +name = 'Boost' +version = "1.60.0" + +homepage = 'http://www.boost.org/' +description = """Boost provides free peer-reviewed portable C++ source libraries.""" + +toolchain = {'name': 'CrayGNU', 'version': '2016.03'} +toolchainopts = {'pic': True, 'usempi': True} + +source_urls = [SOURCEFORGE_SOURCE] +sources = ['%%(namelower)s_%s.tar.bz2' % '_'.join(version.split('.'))] + +pythonversion = '2.7.11' +versionsuffix = '-Python-%s' % pythonversion + +dependencies = [ + ('bzip2', '1.0.6' ), + ('Python', pythonversion), +] + +# also build boost_mpi +boost_mpi = True + +osdependencies = [('zlib-devel','zlib1g-dev')] + +moduleclass = 'devel' diff --git a/b/Boost/Boost-1.60.0-foss-2015a.eb b/b/Boost/Boost-1.60.0-foss-2015a.eb new file mode 100644 index 00000000..76d7cbc2 --- /dev/null +++ b/b/Boost/Boost-1.60.0-foss-2015a.eb @@ -0,0 +1,23 @@ +name = 'Boost' +version = '1.60.0' + +homepage = 'http://www.boost.org/' +description = """Boost provides free peer-reviewed portable C++ source libraries.""" + +toolchain = {'name': 'foss', 'version': '2015a'} +toolchainopts = {'pic': True, 'usempi': True} + +sources = ['%%(namelower)s_%s.tar.gz' % '_'.join(version.split('.'))] +source_urls = [SOURCEFORGE_SOURCE] + +dependencies = [ + ('bzip2', '1.0.6'), + ('zlib', '1.2.8'), +] + +configopts = '--without-libraries=python' + +# also build boost_mpi +boost_mpi = True + +moduleclass = 'devel' diff --git a/b/Boost/Boost-1.60.0-foss-2015b.eb b/b/Boost/Boost-1.60.0-foss-2015b.eb new file mode 100644 index 00000000..63197810 --- /dev/null +++ b/b/Boost/Boost-1.60.0-foss-2015b.eb @@ -0,0 +1,23 @@ +name = 'Boost' +version = '1.60.0' + +homepage = 'http://www.boost.org/' +description = """Boost provides free peer-reviewed portable C++ source libraries.""" + +toolchain = {'name': 'foss', 'version': '2015b'} +toolchainopts = {'pic': True, 'usempi': True} + +sources = ['%%(namelower)s_%s.tar.gz' % '_'.join(version.split('.'))] +source_urls = [SOURCEFORGE_SOURCE] + +dependencies = [ + ('bzip2', '1.0.6'), + ('zlib', '1.2.8'), +] + +configopts = '--without-libraries=python' + +# also build boost_mpi +boost_mpi = True + +moduleclass = 'devel' diff --git a/b/Boost/Boost-1.60.0-foss-2015g-Python-2.7.9 b/b/Boost/Boost-1.60.0-foss-2015g-Python-2.7.9 new file mode 100644 index 00000000..e69de29b diff --git a/b/Boost/Boost-1.60.0-foss-2015g-Python-2.7.9.eb b/b/Boost/Boost-1.60.0-foss-2015g-Python-2.7.9.eb new file mode 100644 index 00000000..2887ffaf --- /dev/null +++ b/b/Boost/Boost-1.60.0-foss-2015g-Python-2.7.9.eb @@ -0,0 +1,26 @@ +# Built with EasyBuild version 2.1.1 on 2015-08-10_13-26-38 +name = 'Boost' +version = '1.60.0' + +homepage = 'http://www.boost.org/' +description = """Boost provides free peer-reviewed portable C++ source libraries.""" + +toolchain = {'name': 'foss', 'version': '2015g'} +toolchainopts = {'pic': True, 'usempi': True} + +source_urls = [SOURCEFORGE_SOURCE] +sources = ['%%(namelower)s_%s.tar.gz' % '_'.join(version.split('.'))] + +pythonversion = '2.7.9' +versionsuffix = '-Python-%s' % pythonversion + +dependencies = [ + ('bzip2', '1.0.6'), + ('zlib', '1.2.8'), + ('Python', pythonversion), +] + +# also build boost_mpi +boost_mpi = True + +moduleclass = 'devel' diff --git a/b/Boost/Boost-1.60.0-foss-2016a-Python-2.7.11.eb b/b/Boost/Boost-1.60.0-foss-2016a-Python-2.7.11.eb new file mode 100644 index 00000000..a913c208 --- /dev/null +++ b/b/Boost/Boost-1.60.0-foss-2016a-Python-2.7.11.eb @@ -0,0 +1,23 @@ +name = 'Boost' +version = '1.60.0' +versionsuffix = '-Python-%(pyver)s' + +homepage = 'http://www.boost.org/' +description = """Boost provides free peer-reviewed portable C++ source libraries.""" + +toolchain = {'name': 'foss', 'version': '2016a'} +toolchainopts = {'pic': True, 'usempi': True} + +source_urls = [SOURCEFORGE_SOURCE] +sources = ['%%(namelower)s_%s.tar.gz' % '_'.join(version.split('.'))] + +dependencies = [ + ('bzip2', '1.0.6'), + ('zlib', '1.2.8'), + ('Python', '2.7.11'), +] + +# also build boost_mpi +boost_mpi = True + +moduleclass = 'devel' diff --git a/b/Boost/Boost-1.60.0-foss-2016a.eb b/b/Boost/Boost-1.60.0-foss-2016a.eb new file mode 100644 index 00000000..c5051071 --- /dev/null +++ b/b/Boost/Boost-1.60.0-foss-2016a.eb @@ -0,0 +1,23 @@ +name = 'Boost' +version = '1.60.0' + +homepage = 'http://www.boost.org/' +description = """Boost provides free peer-reviewed portable C++ source libraries.""" + +toolchain = {'name': 'foss', 'version': '2016a'} +toolchainopts = {'pic': True, 'usempi': True} + +sources = ['%%(namelower)s_%s.tar.gz' % '_'.join(version.split('.'))] +source_urls = [SOURCEFORGE_SOURCE] + +dependencies = [ + ('bzip2', '1.0.6'), + ('zlib', '1.2.8'), +] + +configopts = '--without-libraries=python' + +# also build boost_mpi +boost_mpi = True + +moduleclass = 'devel' diff --git a/b/Boost/Boost-1.60.0-intel-2015b-Python-2.7.11.eb b/b/Boost/Boost-1.60.0-intel-2015b-Python-2.7.11.eb new file mode 100644 index 00000000..cdf31cad --- /dev/null +++ b/b/Boost/Boost-1.60.0-intel-2015b-Python-2.7.11.eb @@ -0,0 +1,23 @@ +name = 'Boost' +version = '1.60.0' +versionsuffix = '-Python-%(pyver)s' + +homepage = 'http://www.boost.org/' +description = """Boost provides free peer-reviewed portable C++ source libraries.""" + +toolchain = {'name': 'intel', 'version': '2015b'} +toolchainopts = {'pic': True, 'usempi': True} + +source_urls = [SOURCEFORGE_SOURCE] +sources = ['%%(namelower)s_%s.tar.gz' % '_'.join(version.split('.'))] + +dependencies = [ + ('bzip2', '1.0.6'), + ('zlib', '1.2.8'), + ('Python', '2.7.11'), +] + +# also build boost_mpi +boost_mpi = True + +moduleclass = 'devel' diff --git a/b/Boost/Boost-1.60.0-intel-2016a-Python-2.7.11.eb b/b/Boost/Boost-1.60.0-intel-2016a-Python-2.7.11.eb new file mode 100644 index 00000000..5a422511 --- /dev/null +++ b/b/Boost/Boost-1.60.0-intel-2016a-Python-2.7.11.eb @@ -0,0 +1,23 @@ +name = 'Boost' +version = '1.60.0' +versionsuffix = '-Python-%(pyver)s' + +homepage = 'http://www.boost.org/' +description = """Boost provides free peer-reviewed portable C++ source libraries.""" + +toolchain = {'name': 'intel', 'version': '2016a'} +toolchainopts = {'pic': True, 'usempi': True} + +source_urls = [SOURCEFORGE_SOURCE] +sources = ['%%(namelower)s_%s.tar.gz' % '_'.join(version.split('.'))] + +dependencies = [ + ('bzip2', '1.0.6'), + ('zlib', '1.2.8'), + ('Python', '2.7.11'), +] + +# also build boost_mpi +boost_mpi = True + +moduleclass = 'devel' diff --git a/b/Boost/Boost-1.60.0-intel-2016a.eb b/b/Boost/Boost-1.60.0-intel-2016a.eb new file mode 100644 index 00000000..c6b8b5f0 --- /dev/null +++ b/b/Boost/Boost-1.60.0-intel-2016a.eb @@ -0,0 +1,21 @@ +name = 'Boost' +version = '1.60.0' + +homepage = 'http://www.boost.org/' +description = """Boost provides free peer-reviewed portable C++ source libraries.""" + +toolchain = {'name': 'intel', 'version': '2016a'} +toolchainopts = {'pic': True, 'usempi': True} + +source_urls = [SOURCEFORGE_SOURCE] +sources = ['%%(namelower)s_%s.tar.gz' % '_'.join(version.split('.'))] + +dependencies = [ + ('bzip2', '1.0.6'), + ('zlib', '1.2.8'), +] + +# also build boost_mpi +boost_mpi = True + +moduleclass = 'devel' diff --git a/b/Boost/Boost-1.61.0-foss-2016a-Python-3.5.2.eb b/b/Boost/Boost-1.61.0-foss-2016a-Python-3.5.2.eb new file mode 100644 index 00000000..cda60bff --- /dev/null +++ b/b/Boost/Boost-1.61.0-foss-2016a-Python-3.5.2.eb @@ -0,0 +1,23 @@ +name = 'Boost' +version = '1.61.0' +versionsuffix = '-Python-%(pyver)s' + +homepage = 'http://www.boost.org/' +description = """Boost provides free peer-reviewed portable C++ source libraries.""" + +toolchain = {'name': 'foss', 'version': '2016a'} +toolchainopts = {'pic': True, 'usempi': True} + +source_urls = [SOURCEFORGE_SOURCE] +sources = ['%%(namelower)s_%s.tar.gz' % '_'.join(version.split('.'))] + +dependencies = [ + ('bzip2', '1.0.6'), + ('zlib', '1.2.8'), + ('Python', '3.5.2'), +] + +# also build boost_mpi +boost_mpi = True + +moduleclass = 'devel' diff --git a/b/Boost/Boost-1.61.0-foss-2016a-serial.eb b/b/Boost/Boost-1.61.0-foss-2016a-serial.eb new file mode 100644 index 00000000..4a2f24fa --- /dev/null +++ b/b/Boost/Boost-1.61.0-foss-2016a-serial.eb @@ -0,0 +1,25 @@ +name = 'Boost' +version = '1.61.0' +versionsuffix = '-serial' + +homepage = 'http://www.boost.org/' +description = """Boost provides free peer-reviewed portable C++ source libraries.""" + +toolchain = {'name': 'foss', 'version': '2016a'} +toolchainopts = {'pic': True, 'usempi': True} + +source_urls = [SOURCEFORGE_SOURCE] +sources = ['%%(namelower)s_%s.tar.gz' % '_'.join(version.split('.'))] + +dependencies = [ + ('bzip2', '1.0.6'), + ('zlib', '1.2.8'), +] + +configopts = '--with-libraries=serialization' +configopts = '--without-libraries=python' + +# also build boost_mpi +boost_mpi = True + +moduleclass = 'devel' diff --git a/b/Boost/Boost-1.61.0-foss-2016a.eb b/b/Boost/Boost-1.61.0-foss-2016a.eb new file mode 100644 index 00000000..3eb69288 --- /dev/null +++ b/b/Boost/Boost-1.61.0-foss-2016a.eb @@ -0,0 +1,23 @@ +name = 'Boost' +version = '1.61.0' + +homepage = 'http://www.boost.org/' +description = """Boost provides free peer-reviewed portable C++ source libraries.""" + +toolchain = {'name': 'foss', 'version': '2016a'} +toolchainopts = {'pic': True, 'usempi': True} + +source_urls = [SOURCEFORGE_SOURCE] +sources = ['%%(namelower)s_%s.tar.gz' % '_'.join(version.split('.'))] + +dependencies = [ + ('bzip2', '1.0.6'), + ('zlib', '1.2.8'), +] + +configopts = '--without-libraries=python' + +# also build boost_mpi +boost_mpi = True + +moduleclass = 'devel' diff --git a/b/Boost/Boost-1.61.0-foss-2017a-serial.eb b/b/Boost/Boost-1.61.0-foss-2017a-serial.eb new file mode 100644 index 00000000..9863e153 --- /dev/null +++ b/b/Boost/Boost-1.61.0-foss-2017a-serial.eb @@ -0,0 +1,25 @@ +name = 'Boost' +version = '1.61.0' +versionsuffix = '-serial' + +homepage = 'http://www.boost.org/' +description = """Boost provides free peer-reviewed portable C++ source libraries.""" + +toolchain = {'name': 'foss', 'version': '2017a'} +toolchainopts = {'pic': True, 'usempi': True} + +source_urls = [SOURCEFORGE_SOURCE] +sources = ['%%(namelower)s_%s.tar.gz' % '_'.join(version.split('.'))] + +dependencies = [ + ('bzip2', '1.0.6'), + ('zlib', '1.2.11'), +] + +configopts = '--with-libraries=serialization' +configopts = '--without-libraries=python' + +# also build boost_mpi +boost_mpi = True + +moduleclass = 'devel' diff --git a/b/Boost/Boost-1.61.0-intel-2016a-Python-2.7.11.eb b/b/Boost/Boost-1.61.0-intel-2016a-Python-2.7.11.eb new file mode 100644 index 00000000..822d74b1 --- /dev/null +++ b/b/Boost/Boost-1.61.0-intel-2016a-Python-2.7.11.eb @@ -0,0 +1,23 @@ +name = 'Boost' +version = '1.61.0' +versionsuffix = '-Python-%(pyver)s' + +homepage = 'http://www.boost.org/' +description = """Boost provides free peer-reviewed portable C++ source libraries.""" + +toolchain = {'name': 'intel', 'version': '2016a'} +toolchainopts = {'pic': True, 'usempi': True} + +source_urls = [SOURCEFORGE_SOURCE] +sources = ['%%(namelower)s_%s.tar.gz' % '_'.join(version.split('.'))] + +dependencies = [ + ('bzip2', '1.0.6'), + ('zlib', '1.2.8'), + ('Python', '2.7.11'), +] + +# also build boost_mpi +boost_mpi = True + +moduleclass = 'devel' diff --git a/b/Boost/Boost-1.61.0-intel-2016a.eb b/b/Boost/Boost-1.61.0-intel-2016a.eb new file mode 100644 index 00000000..7840698e --- /dev/null +++ b/b/Boost/Boost-1.61.0-intel-2016a.eb @@ -0,0 +1,21 @@ +name = 'Boost' +version = '1.61.0' + +homepage = 'http://www.boost.org/' +description = """Boost provides free peer-reviewed portable C++ source libraries.""" + +toolchain = {'name': 'intel', 'version': '2016a'} +toolchainopts = {'pic': True, 'usempi': True} + +source_urls = [SOURCEFORGE_SOURCE] +sources = ['%%(namelower)s_%s.tar.gz' % '_'.join(version.split('.'))] + +dependencies = [ + ('bzip2', '1.0.6'), + ('zlib', '1.2.8'), +] + +# also build boost_mpi +boost_mpi = True + +moduleclass = 'devel' diff --git a/b/Boost/Boost-1.61.0-intel-2016b-Python-2.7.12.eb b/b/Boost/Boost-1.61.0-intel-2016b-Python-2.7.12.eb new file mode 100644 index 00000000..015aad27 --- /dev/null +++ b/b/Boost/Boost-1.61.0-intel-2016b-Python-2.7.12.eb @@ -0,0 +1,23 @@ +name = 'Boost' +version = '1.61.0' +versionsuffix = '-Python-%(pyver)s' + +homepage = 'http://www.boost.org/' +description = """Boost provides free peer-reviewed portable C++ source libraries.""" + +toolchain = {'name': 'intel', 'version': '2016b'} +toolchainopts = {'pic': True, 'usempi': True} + +source_urls = [SOURCEFORGE_SOURCE] +sources = ['%%(namelower)s_%s.tar.gz' % '_'.join(version.split('.'))] + +dependencies = [ + ('bzip2', '1.0.6'), + ('zlib', '1.2.8'), + ('Python', '2.7.12'), +] + +# also build boost_mpi +boost_mpi = True + +moduleclass = 'devel' diff --git a/b/Boost/Boost-1.61.0-intel-2016b.eb b/b/Boost/Boost-1.61.0-intel-2016b.eb new file mode 100644 index 00000000..67f61996 --- /dev/null +++ b/b/Boost/Boost-1.61.0-intel-2016b.eb @@ -0,0 +1,23 @@ +name = 'Boost' +version = '1.61.0' + +homepage = 'http://www.boost.org/' +description = """Boost provides free peer-reviewed portable C++ source libraries.""" + +toolchain = {'name': 'intel', 'version': '2016b'} +toolchainopts = {'pic': True, 'usempi': True} + +source_urls = [SOURCEFORGE_SOURCE] +sources = ['%%(namelower)s_%s.tar.gz' % '_'.join(version.split('.'))] + +dependencies = [ + ('bzip2', '1.0.6'), + ('zlib', '1.2.8'), +] + +configopts = '--without-libraries=python' + +# also build boost_mpi +boost_mpi = True + +moduleclass = 'devel' diff --git a/b/Boost/Boost-1.62.0-intel-2016b-Python-2.7.12.eb b/b/Boost/Boost-1.62.0-intel-2016b-Python-2.7.12.eb new file mode 100644 index 00000000..8f216753 --- /dev/null +++ b/b/Boost/Boost-1.62.0-intel-2016b-Python-2.7.12.eb @@ -0,0 +1,23 @@ +name = 'Boost' +version = '1.62.0' +versionsuffix = '-Python-%(pyver)s' + +homepage = 'http://www.boost.org/' +description = """Boost provides free peer-reviewed portable C++ source libraries.""" + +toolchain = {'name': 'intel', 'version': '2016b'} +toolchainopts = {'pic': True, 'usempi': True} + +source_urls = [SOURCEFORGE_SOURCE] +sources = ['%%(namelower)s_%s.tar.gz' % '_'.join(version.split('.'))] + +dependencies = [ + ('bzip2', '1.0.6'), + ('zlib', '1.2.8'), + ('Python', '2.7.12'), +] + +# also build boost_mpi +boost_mpi = True + +moduleclass = 'devel' diff --git a/b/Boost/Boost-1.63.0-intel-2017a-Python-2.7.11.eb b/b/Boost/Boost-1.63.0-intel-2017a-Python-2.7.11.eb new file mode 100644 index 00000000..055aa2f3 --- /dev/null +++ b/b/Boost/Boost-1.63.0-intel-2017a-Python-2.7.11.eb @@ -0,0 +1,23 @@ +name = 'Boost' +version = '1.63.0' +versionsuffix = '-Python-%(pyver)s' + +homepage = 'http://www.boost.org/' +description = """Boost provides free peer-reviewed portable C++ source libraries.""" + +toolchain = {'name': 'intel', 'version': '2017a'} +toolchainopts = {'pic': True, 'usempi': True} + +source_urls = [SOURCEFORGE_SOURCE] +sources = ['%%(namelower)s_%s.tar.gz' % '_'.join(version.split('.'))] + +dependencies = [ + ('bzip2', '1.0.6'), + ('zlib', '1.2.11'), + ('Python', '2.7.11'), +] + +# also build boost_mpi +boost_mpi = True + +moduleclass = 'devel' diff --git a/b/Boost/Boost-1.63.0-intel-2017a.eb b/b/Boost/Boost-1.63.0-intel-2017a.eb new file mode 100644 index 00000000..15b63be4 --- /dev/null +++ b/b/Boost/Boost-1.63.0-intel-2017a.eb @@ -0,0 +1,23 @@ +name = 'Boost' +version = '1.63.0' + +homepage = 'http://www.boost.org/' +description = """Boost provides free peer-reviewed portable C++ source libraries.""" + +toolchain = {'name': 'intel', 'version': '2017a'} +toolchainopts = {'pic': True, 'usempi': True} + +source_urls = [SOURCEFORGE_SOURCE] +sources = ['%%(namelower)s_%s.tar.gz' % '_'.join(version.split('.'))] + +dependencies = [ + ('bzip2', '1.0.6'), + ('zlib', '1.2.11'), +] + +configopts = '--without-libraries=python' + +# also build boost_mpi +boost_mpi = True + +moduleclass = 'devel' diff --git a/b/Bowtie2/Bowtie2-2.0.5-goolf-1.4.10.eb b/b/Bowtie2/Bowtie2-2.0.5-goolf-1.4.10.eb new file mode 100644 index 00000000..361932b8 --- /dev/null +++ b/b/Bowtie2/Bowtie2-2.0.5-goolf-1.4.10.eb @@ -0,0 +1,35 @@ +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# Author: Pablo Escobar Lopez +# Swiss Institute of Bioinformatics +# Biozentrum - University of Basel + +easyblock = 'MakeCp' + +name = 'Bowtie2' +version = '2.0.5' + +homepage = 'http://bowtie-bio.sourceforge.net/bowtie2/index.shtml' +description = """ Bowtie 2 is an ultrafast and memory-efficient tool for aligning sequencing reads + to long reference sequences. It is particularly good at aligning reads of about 50 up to 100s or 1,000s + of characters, and particularly good at aligning to relatively long (e.g. mammalian) genomes. + Bowtie 2 indexes the genome with an FM Index to keep its memory footprint small: for the human genome, + its memory footprint is typically around 3.2 GB. Bowtie 2 supports gapped, local, and paired-end alignment modes.""" + +toolchain = {'name': 'goolf', 'version': '1.4.10'} + +sources = ['%(namelower)s-%(version)s-source.zip'] +source_urls = [('http://sourceforge.net/projects/bowtie-bio/files/%(namelower)s/%(version)s', 'download')] + +files_to_copy = [ + (["bowtie2", "bowtie2-align", "bowtie2-build", "bowtie2-inspect"], 'bin'), + "doc", "example", "scripts"] + +sanity_check_paths = { + 'files': ["bin/bowtie2-align", "bin/bowtie2-build", "bin/bowtie2-inspect"], + 'dirs': [], +} + +# to add scripts folder to $PATH just uncomment this line +#modextrapaths = {'PATH': 'scripts'} + +moduleclass = 'bio' diff --git a/b/Bowtie2/Bowtie2-2.0.6-goolf-1.4.10.eb b/b/Bowtie2/Bowtie2-2.0.6-goolf-1.4.10.eb new file mode 100644 index 00000000..02e855be --- /dev/null +++ b/b/Bowtie2/Bowtie2-2.0.6-goolf-1.4.10.eb @@ -0,0 +1,35 @@ +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# Author: Pablo Escobar Lopez +# Swiss Institute of Bioinformatics +# Biozentrum - University of Basel + +easyblock = 'MakeCp' + +name = 'Bowtie2' +version = '2.0.6' + +homepage = 'http://bowtie-bio.sourceforge.net/bowtie2/index.shtml' +description = """ Bowtie 2 is an ultrafast and memory-efficient tool for aligning sequencing reads + to long reference sequences. It is particularly good at aligning reads of about 50 up to 100s or 1,000s + of characters, and particularly good at aligning to relatively long (e.g. mammalian) genomes. + Bowtie 2 indexes the genome with an FM Index to keep its memory footprint small: for the human genome, + its memory footprint is typically around 3.2 GB. Bowtie 2 supports gapped, local, and paired-end alignment modes.""" + +toolchain = {'name': 'goolf', 'version': '1.4.10'} + +sources = ['%(namelower)s-%(version)s-source.zip'] +source_urls = [('http://sourceforge.net/projects/bowtie-bio/files/%(namelower)s/%(version)s', 'download')] + +files_to_copy = [ + (["bowtie2", "bowtie2-align", "bowtie2-build", "bowtie2-inspect"], 'bin'), + "doc", "example", "scripts"] + +sanity_check_paths = { + 'files': ["bin/bowtie2-align", "bin/bowtie2-build", "bin/bowtie2-inspect"], + 'dirs': [], +} + +# to add scripts folder to $PATH just uncomment this line +#modextrapaths = {'PATH': 'scripts'} + +moduleclass = 'bio' diff --git a/b/Bowtie2/Bowtie2-2.1.0-goolf-1.4.10.eb b/b/Bowtie2/Bowtie2-2.1.0-goolf-1.4.10.eb new file mode 100644 index 00000000..28778538 --- /dev/null +++ b/b/Bowtie2/Bowtie2-2.1.0-goolf-1.4.10.eb @@ -0,0 +1,35 @@ +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# Author: Pablo Escobar Lopez +# Swiss Institute of Bioinformatics +# Biozentrum - University of Basel + +easyblock = 'MakeCp' + +name = 'Bowtie2' +version = '2.1.0' + +homepage = 'http://bowtie-bio.sourceforge.net/bowtie2/index.shtml' +description = """ Bowtie 2 is an ultrafast and memory-efficient tool for aligning sequencing reads + to long reference sequences. It is particularly good at aligning reads of about 50 up to 100s or 1,000s + of characters, and particularly good at aligning to relatively long (e.g. mammalian) genomes. + Bowtie 2 indexes the genome with an FM Index to keep its memory footprint small: for the human genome, + its memory footprint is typically around 3.2 GB. Bowtie 2 supports gapped, local, and paired-end alignment modes.""" + +toolchain = {'name': 'goolf', 'version': '1.4.10'} + +sources = ['%(namelower)s-%(version)s-source.zip'] +source_urls = [('http://sourceforge.net/projects/bowtie-bio/files/%(namelower)s/%(version)s', 'download')] + +files_to_copy = [ + (["bowtie2", "bowtie2-align", "bowtie2-build", "bowtie2-inspect"], 'bin'), + "doc", "example", "scripts"] + +sanity_check_paths = { + 'files': ["bin/bowtie2-align", "bin/bowtie2-build", "bin/bowtie2-inspect"], + 'dirs': [], +} + +# to add scripts folder to $PATH just uncomment this line +#modextrapaths = {'PATH': 'scripts'} + +moduleclass = 'bio' diff --git a/b/Bowtie2/Bowtie2-2.2.0-goolf-1.4.10.eb b/b/Bowtie2/Bowtie2-2.2.0-goolf-1.4.10.eb new file mode 100644 index 00000000..58e8cf38 --- /dev/null +++ b/b/Bowtie2/Bowtie2-2.2.0-goolf-1.4.10.eb @@ -0,0 +1,36 @@ +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# Author: Pablo Escobar Lopez +# Swiss Institute of Bioinformatics +# Biozentrum - University of Basel + +easyblock = 'MakeCp' + +name = 'Bowtie2' +version = '2.2.0' + +homepage = 'http://bowtie-bio.sourceforge.net/bowtie2/index.shtml' +description = """ Bowtie 2 is an ultrafast and memory-efficient tool for aligning sequencing reads + to long reference sequences. It is particularly good at aligning reads of about 50 up to 100s or 1,000s + of characters, and particularly good at aligning to relatively long (e.g. mammalian) genomes. + Bowtie 2 indexes the genome with an FM Index to keep its memory footprint small: for the human genome, + its memory footprint is typically around 3.2 GB. Bowtie 2 supports gapped, local, and paired-end alignment modes.""" + +toolchain = {'name': 'goolf', 'version': '1.4.10'} + +sources = ['%(namelower)s-%(version)s-source.zip'] +source_urls = [('http://sourceforge.net/projects/bowtie-bio/files/%(namelower)s/%(version)s', 'download')] + +files_to_copy = [ + (["bowtie2", "bowtie2-align-l", "bowtie2-align-s", "bowtie2-build", "bowtie2-build-l", "bowtie2-build-s", + "bowtie2-inspect", "bowtie2-inspect-l", "bowtie2-inspect-s"], 'bin'), + "doc", "example", "scripts"] + +sanity_check_paths = { + 'files': ["bin/bowtie2-align-l", "bin/bowtie2-build", "bin/bowtie2-inspect"], + 'dirs': [], +} + +# to add scripts folder to $PATH just uncomment this line +#modextrapaths = {'PATH': 'scripts'} + +moduleclass = 'bio' diff --git a/b/Bowtie2/Bowtie2-2.2.2-goolf-1.4.10.eb b/b/Bowtie2/Bowtie2-2.2.2-goolf-1.4.10.eb new file mode 100644 index 00000000..da151491 --- /dev/null +++ b/b/Bowtie2/Bowtie2-2.2.2-goolf-1.4.10.eb @@ -0,0 +1,36 @@ +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# Author: Pablo Escobar Lopez +# Swiss Institute of Bioinformatics +# Biozentrum - University of Basel + +easyblock = 'MakeCp' + +name = 'Bowtie2' +version = '2.2.2' + +homepage = 'http://bowtie-bio.sourceforge.net/bowtie2/index.shtml' +description = """ Bowtie 2 is an ultrafast and memory-efficient tool for aligning sequencing reads + to long reference sequences. It is particularly good at aligning reads of about 50 up to 100s or 1,000s + of characters, and particularly good at aligning to relatively long (e.g. mammalian) genomes. + Bowtie 2 indexes the genome with an FM Index to keep its memory footprint small: for the human genome, + its memory footprint is typically around 3.2 GB. Bowtie 2 supports gapped, local, and paired-end alignment modes.""" + +toolchain = {'name': 'goolf', 'version': '1.4.10'} + +sources = ['%(namelower)s-%(version)s-source.zip'] +source_urls = [('http://sourceforge.net/projects/bowtie-bio/files/%(namelower)s/%(version)s', 'download')] + +files_to_copy = [ + (["bowtie2", "bowtie2-align-l", "bowtie2-align-s", "bowtie2-build", "bowtie2-build-l", "bowtie2-build-s", + "bowtie2-inspect", "bowtie2-inspect-l", "bowtie2-inspect-s"], 'bin'), + "doc", "example", "scripts", "MANUAL", "MANUAL.markdown", "NEWS"] + +sanity_check_paths = { + 'files': ["bin/bowtie2-align-l", "bin/bowtie2-build", "bin/bowtie2-inspect"], + 'dirs': [], +} + +# to add script folder to path just uncomment this line +#modextrapaths = {'PATH': 'scripts'} + +moduleclass = 'bio' diff --git a/b/Bowtie2/Bowtie2-2.2.4-goolf-1.4.10.eb b/b/Bowtie2/Bowtie2-2.2.4-goolf-1.4.10.eb new file mode 100644 index 00000000..d2d24de2 --- /dev/null +++ b/b/Bowtie2/Bowtie2-2.2.4-goolf-1.4.10.eb @@ -0,0 +1,38 @@ +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# Author: Pablo Escobar Lopez +# Swiss Institute of Bioinformatics +# Biozentrum - University of Basel +# Modified by: Robert Schmidt +# Ottawa Hospital Research Institute - Bioinformatics Team + +easyblock = 'MakeCp' + +name = 'Bowtie2' +version = '2.2.4' + +homepage = 'http://bowtie-bio.sourceforge.net/bowtie2/index.shtml' +description = """ Bowtie 2 is an ultrafast and memory-efficient tool for aligning sequencing reads + to long reference sequences. It is particularly good at aligning reads of about 50 up to 100s or 1,000s + of characters, and particularly good at aligning to relatively long (e.g. mammalian) genomes. + Bowtie 2 indexes the genome with an FM Index to keep its memory footprint small: for the human genome, + its memory footprint is typically around 3.2 GB. Bowtie 2 supports gapped, local, and paired-end alignment modes.""" + +toolchain = {'name': 'goolf', 'version': '1.4.10'} + +sources = ['%(namelower)s-%(version)s-source.zip'] +source_urls = [('http://sourceforge.net/projects/bowtie-bio/files/%(namelower)s/%(version)s', 'download')] + +files_to_copy = [ + (["bowtie2", "bowtie2-align-l", "bowtie2-align-s", "bowtie2-build", "bowtie2-build-l", "bowtie2-build-s", + "bowtie2-inspect", "bowtie2-inspect-l", "bowtie2-inspect-s"], 'bin'), + "doc", "example", "scripts", "MANUAL", "MANUAL.markdown", "NEWS"] + +sanity_check_paths = { + 'files': ["bin/bowtie2-align-l", "bin/bowtie2-build", "bin/bowtie2-inspect"], + 'dirs': [], +} + +# to add script folder to path just uncomment this line +#modextrapaths = {'PATH': 'scripts'} + +moduleclass = 'bio' diff --git a/b/Bowtie2/Bowtie2-2.2.5-goolf-1.7.20.eb b/b/Bowtie2/Bowtie2-2.2.5-goolf-1.7.20.eb new file mode 100644 index 00000000..3f05bda0 --- /dev/null +++ b/b/Bowtie2/Bowtie2-2.2.5-goolf-1.7.20.eb @@ -0,0 +1,38 @@ +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# Author: Pablo Escobar Lopez +# Swiss Institute of Bioinformatics +# Biozentrum - University of Basel +# Modified by: Robert Schmidt +# Ottawa Hospital Research Institute - Bioinformatics Team + +easyblock = 'MakeCp' + +name = 'Bowtie2' +version = '2.2.5' + +homepage = 'http://bowtie-bio.sourceforge.net/bowtie2/index.shtml' +description = """ Bowtie 2 is an ultrafast and memory-efficient tool for aligning sequencing reads + to long reference sequences. It is particularly good at aligning reads of about 50 up to 100s or 1,000s + of characters, and particularly good at aligning to relatively long (e.g. mammalian) genomes. + Bowtie 2 indexes the genome with an FM Index to keep its memory footprint small: for the human genome, + its memory footprint is typically around 3.2 GB. Bowtie 2 supports gapped, local, and paired-end alignment modes.""" + +toolchain = {'name': 'goolf', 'version': '1.7.20'} + +sources = ['%(namelower)s-%(version)s-source.zip'] +source_urls = [('http://sourceforge.net/projects/bowtie-bio/files/%(namelower)s/%(version)s', 'download')] + +files_to_copy = [ + (["bowtie2", "bowtie2-align-l", "bowtie2-align-s", "bowtie2-build", "bowtie2-build-l", "bowtie2-build-s", + "bowtie2-inspect", "bowtie2-inspect-l", "bowtie2-inspect-s"], 'bin'), + "doc", "example", "scripts", "MANUAL", "MANUAL.markdown", "NEWS"] + +sanity_check_paths = { + 'files': ["bin/bowtie2-align-l", "bin/bowtie2-build", "bin/bowtie2-inspect"], + 'dirs': [], +} + +# to add script folder to path just uncomment this line +#modextrapaths = {'PATH': 'scripts'} + +moduleclass = 'bio' diff --git a/b/Bowtie2/Bowtie2-2.2.5-intel-2015a.eb b/b/Bowtie2/Bowtie2-2.2.5-intel-2015a.eb new file mode 100644 index 00000000..d7856c8f --- /dev/null +++ b/b/Bowtie2/Bowtie2-2.2.5-intel-2015a.eb @@ -0,0 +1,38 @@ +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# Author: Pablo Escobar Lopez +# Swiss Institute of Bioinformatics +# Biozentrum - University of Basel +# Modified by: Robert Schmidt +# Ottawa Hospital Research Institute - Bioinformatics Team + +easyblock = 'MakeCp' + +name = 'Bowtie2' +version = '2.2.5' + +homepage = 'http://bowtie-bio.sourceforge.net/bowtie2/index.shtml' +description = """ Bowtie 2 is an ultrafast and memory-efficient tool for aligning sequencing reads + to long reference sequences. It is particularly good at aligning reads of about 50 up to 100s or 1,000s + of characters, and particularly good at aligning to relatively long (e.g. mammalian) genomes. + Bowtie 2 indexes the genome with an FM Index to keep its memory footprint small: for the human genome, + its memory footprint is typically around 3.2 GB. Bowtie 2 supports gapped, local, and paired-end alignment modes.""" + +toolchain = {'name': 'intel', 'version': '2015a'} + +sources = ['%(namelower)s-%(version)s-source.zip'] +source_urls = [('http://sourceforge.net/projects/bowtie-bio/files/%(namelower)s/%(version)s', 'download')] + +files_to_copy = [ + (["bowtie2", "bowtie2-align-l", "bowtie2-align-s", "bowtie2-build", "bowtie2-build-l", "bowtie2-build-s", + "bowtie2-inspect", "bowtie2-inspect-l", "bowtie2-inspect-s"], 'bin'), + "doc", "example", "scripts", "MANUAL", "MANUAL.markdown", "NEWS"] + +sanity_check_paths = { + 'files': ["bin/bowtie2-align-l", "bin/bowtie2-build", "bin/bowtie2-inspect"], + 'dirs': [], +} + +# to add script folder to path just uncomment this line +#modextrapaths = {'PATH': 'scripts'} + +moduleclass = 'bio' diff --git a/b/Bowtie2/Bowtie2-2.2.6-foss-2015b.eb b/b/Bowtie2/Bowtie2-2.2.6-foss-2015b.eb new file mode 100644 index 00000000..a342fa3e --- /dev/null +++ b/b/Bowtie2/Bowtie2-2.2.6-foss-2015b.eb @@ -0,0 +1,38 @@ +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# Author: Pablo Escobar Lopez +# Swiss Institute of Bioinformatics +# Biozentrum - University of Basel +# Modified by: Robert Schmidt +# Ottawa Hospital Research Institute - Bioinformatics Team + +easyblock = 'MakeCp' + +name = 'Bowtie2' +version = '2.2.6' + +homepage = 'http://bowtie-bio.sourceforge.net/bowtie2/index.shtml' +description = """ Bowtie 2 is an ultrafast and memory-efficient tool for aligning sequencing reads + to long reference sequences. It is particularly good at aligning reads of about 50 up to 100s or 1,000s + of characters, and particularly good at aligning to relatively long (e.g. mammalian) genomes. + Bowtie 2 indexes the genome with an FM Index to keep its memory footprint small: for the human genome, + its memory footprint is typically around 3.2 GB. Bowtie 2 supports gapped, local, and paired-end alignment modes.""" + +toolchain = {'name': 'foss', 'version': '2015b'} + +sources = ['%(namelower)s-%(version)s-source.zip'] +source_urls = [('http://sourceforge.net/projects/bowtie-bio/files/%(namelower)s/%(version)s', 'download')] + +files_to_copy = [ + (["bowtie2", "bowtie2-align-l", "bowtie2-align-s", "bowtie2-build", "bowtie2-build-l", "bowtie2-build-s", + "bowtie2-inspect", "bowtie2-inspect-l", "bowtie2-inspect-s"], 'bin'), + "doc", "example", "scripts", "MANUAL", "MANUAL.markdown", "NEWS"] + +sanity_check_paths = { + 'files': ["bin/bowtie2-align-l", "bin/bowtie2-build", "bin/bowtie2-inspect"], + 'dirs': [], +} + +# to add script folder to path just uncomment this line +#modextrapaths = {'PATH': 'scripts'} + +moduleclass = 'bio' diff --git a/b/Bowtie2/Bowtie2-2.2.6-intel-2015b.eb b/b/Bowtie2/Bowtie2-2.2.6-intel-2015b.eb new file mode 100644 index 00000000..3901df0e --- /dev/null +++ b/b/Bowtie2/Bowtie2-2.2.6-intel-2015b.eb @@ -0,0 +1,38 @@ +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# Author: Pablo Escobar Lopez +# Swiss Institute of Bioinformatics +# Biozentrum - University of Basel +# Modified by: Robert Schmidt +# Ottawa Hospital Research Institute - Bioinformatics Team + +easyblock = 'MakeCp' + +name = 'Bowtie2' +version = '2.2.6' + +homepage = 'http://bowtie-bio.sourceforge.net/bowtie2/index.shtml' +description = """ Bowtie 2 is an ultrafast and memory-efficient tool for aligning sequencing reads + to long reference sequences. It is particularly good at aligning reads of about 50 up to 100s or 1,000s + of characters, and particularly good at aligning to relatively long (e.g. mammalian) genomes. + Bowtie 2 indexes the genome with an FM Index to keep its memory footprint small: for the human genome, + its memory footprint is typically around 3.2 GB. Bowtie 2 supports gapped, local, and paired-end alignment modes.""" + +toolchain = {'name': 'intel', 'version': '2015b'} + +sources = ['%(namelower)s-%(version)s-source.zip'] +source_urls = [('http://sourceforge.net/projects/bowtie-bio/files/%(namelower)s/%(version)s', 'download')] + +files_to_copy = [ + (["bowtie2", "bowtie2-align-l", "bowtie2-align-s", "bowtie2-build", "bowtie2-build-l", "bowtie2-build-s", + "bowtie2-inspect", "bowtie2-inspect-l", "bowtie2-inspect-s"], 'bin'), + "doc", "example", "scripts", "MANUAL", "MANUAL.markdown", "NEWS"] + +sanity_check_paths = { + 'files': ["bin/bowtie2-align-l", "bin/bowtie2-build", "bin/bowtie2-inspect"], + 'dirs': [], +} + +# to add script folder to path just uncomment this line +#modextrapaths = {'PATH': 'scripts'} + +moduleclass = 'bio' diff --git a/b/Bowtie2/Bowtie2-2.2.7-foss-2015b.eb b/b/Bowtie2/Bowtie2-2.2.7-foss-2015b.eb new file mode 100644 index 00000000..f7436224 --- /dev/null +++ b/b/Bowtie2/Bowtie2-2.2.7-foss-2015b.eb @@ -0,0 +1,40 @@ +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# Author: Pablo Escobar Lopez +# Swiss Institute of Bioinformatics +# Biozentrum - University of Basel +# Modified by: Robert Schmidt +# Ottawa Hospital Research Institute - Bioinformatics Team +# Modified by: Adam Huffman +# The Francis Crick Institute + +easyblock = 'MakeCp' + +name = 'Bowtie2' +version = '2.2.7' + +homepage = 'http://bowtie-bio.sourceforge.net/bowtie2/index.shtml' +description = """ Bowtie 2 is an ultrafast and memory-efficient tool for aligning sequencing reads + to long reference sequences. It is particularly good at aligning reads of about 50 up to 100s or 1,000s + of characters, and particularly good at aligning to relatively long (e.g. mammalian) genomes. + Bowtie 2 indexes the genome with an FM Index to keep its memory footprint small: for the human genome, + its memory footprint is typically around 3.2 GB. Bowtie 2 supports gapped, local, and paired-end alignment modes.""" + +toolchain = {'name': 'foss', 'version': '2015b'} + +sources = ['%(namelower)s-%(version)s-source.zip'] +source_urls = [('http://sourceforge.net/projects/bowtie-bio/files/%(namelower)s/%(version)s', 'download')] + +files_to_copy = [ + (["bowtie2", "bowtie2-align-l", "bowtie2-align-s", "bowtie2-build", "bowtie2-build-l", "bowtie2-build-s", + "bowtie2-inspect", "bowtie2-inspect-l", "bowtie2-inspect-s"], 'bin'), + "doc", "example", "scripts", "MANUAL", "MANUAL.markdown", "NEWS"] + +sanity_check_paths = { + 'files': ["bin/bowtie2-align-l", "bin/bowtie2-build", "bin/bowtie2-inspect"], + 'dirs': [], +} + +# to add script folder to path just uncomment this line +#modextrapaths = {'PATH': 'scripts'} + +moduleclass = 'bio' diff --git a/b/Bowtie2/Bowtie2-2.2.8-foss-2015b.eb b/b/Bowtie2/Bowtie2-2.2.8-foss-2015b.eb new file mode 100644 index 00000000..29bf068b --- /dev/null +++ b/b/Bowtie2/Bowtie2-2.2.8-foss-2015b.eb @@ -0,0 +1,40 @@ +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# Author: Pablo Escobar Lopez +# Swiss Institute of Bioinformatics +# Biozentrum - University of Basel +# Modified by: Robert Schmidt +# Ottawa Hospital Research Institute - Bioinformatics Team +# Modified by: Adam Huffman +# The Francis Crick Institute + +easyblock = 'MakeCp' + +name = 'Bowtie2' +version = '2.2.8' + +homepage = 'http://bowtie-bio.sourceforge.net/bowtie2/index.shtml' +description = """ Bowtie 2 is an ultrafast and memory-efficient tool for aligning sequencing reads + to long reference sequences. It is particularly good at aligning reads of about 50 up to 100s or 1,000s + of characters, and particularly good at aligning to relatively long (e.g. mammalian) genomes. + Bowtie 2 indexes the genome with an FM Index to keep its memory footprint small: for the human genome, + its memory footprint is typically around 3.2 GB. Bowtie 2 supports gapped, local, and paired-end alignment modes.""" + +toolchain = {'name': 'foss', 'version': '2015b'} + +sources = ['%(namelower)s-%(version)s-source.zip'] +source_urls = [('http://sourceforge.net/projects/bowtie-bio/files/%(namelower)s/%(version)s', 'download')] + +files_to_copy = [ + (["bowtie2", "bowtie2-align-l", "bowtie2-align-s", "bowtie2-build", "bowtie2-build-l", "bowtie2-build-s", + "bowtie2-inspect", "bowtie2-inspect-l", "bowtie2-inspect-s"], 'bin'), + "doc", "example", "scripts", "MANUAL", "MANUAL.markdown", "NEWS"] + +sanity_check_paths = { + 'files': ["bin/bowtie2-align-l", "bin/bowtie2-build", "bin/bowtie2-inspect"], + 'dirs': [], +} + +# to add script folder to path just uncomment this line +#modextrapaths = {'PATH': 'scripts'} + +moduleclass = 'bio' diff --git a/b/Bowtie2/Bowtie2-2.2.8-foss-2016a.eb b/b/Bowtie2/Bowtie2-2.2.8-foss-2016a.eb new file mode 100644 index 00000000..e4888885 --- /dev/null +++ b/b/Bowtie2/Bowtie2-2.2.8-foss-2016a.eb @@ -0,0 +1,40 @@ +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# Author: Pablo Escobar Lopez +# Swiss Institute of Bioinformatics +# Biozentrum - University of Basel +# Modified by: Robert Schmidt +# Ottawa Hospital Research Institute - Bioinformatics Team +# Modified by: Adam Huffman +# The Francis Crick Institute + +easyblock = 'MakeCp' + +name = 'Bowtie2' +version = '2.2.8' + +homepage = 'http://bowtie-bio.sourceforge.net/bowtie2/index.shtml' +description = """ Bowtie 2 is an ultrafast and memory-efficient tool for aligning sequencing reads + to long reference sequences. It is particularly good at aligning reads of about 50 up to 100s or 1,000s + of characters, and particularly good at aligning to relatively long (e.g. mammalian) genomes. + Bowtie 2 indexes the genome with an FM Index to keep its memory footprint small: for the human genome, + its memory footprint is typically around 3.2 GB. Bowtie 2 supports gapped, local, and paired-end alignment modes.""" + +toolchain = {'name': 'foss', 'version': '2016a'} + +sources = ['%(namelower)s-%(version)s-source.zip'] +source_urls = [('http://sourceforge.net/projects/bowtie-bio/files/%(namelower)s/%(version)s', 'download')] + +files_to_copy = [ + (["bowtie2", "bowtie2-align-l", "bowtie2-align-s", "bowtie2-build", "bowtie2-build-l", "bowtie2-build-s", + "bowtie2-inspect", "bowtie2-inspect-l", "bowtie2-inspect-s"], 'bin'), + "doc", "example", "scripts", "MANUAL", "MANUAL.markdown", "NEWS"] + +sanity_check_paths = { + 'files': ["bin/bowtie2-align-l", "bin/bowtie2-build", "bin/bowtie2-inspect"], + 'dirs': [], +} + +# to add script folder to path just uncomment this line +#modextrapaths = {'PATH': 'scripts'} + +moduleclass = 'bio' diff --git a/b/Bowtie2/Bowtie2-2.2.9-foss-2016a.eb b/b/Bowtie2/Bowtie2-2.2.9-foss-2016a.eb new file mode 100644 index 00000000..63080d8e --- /dev/null +++ b/b/Bowtie2/Bowtie2-2.2.9-foss-2016a.eb @@ -0,0 +1,40 @@ +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# Author: Pablo Escobar Lopez +# Swiss Institute of Bioinformatics +# Biozentrum - University of Basel +# Modified by: Robert Schmidt +# Ottawa Hospital Research Institute - Bioinformatics Team +# Modified by: Adam Huffman +# The Francis Crick Institute + +easyblock = 'MakeCp' + +name = 'Bowtie2' +version = '2.2.9' + +homepage = 'http://bowtie-bio.sourceforge.net/bowtie2/index.shtml' +description = """ Bowtie 2 is an ultrafast and memory-efficient tool for aligning sequencing reads + to long reference sequences. It is particularly good at aligning reads of about 50 up to 100s or 1,000s + of characters, and particularly good at aligning to relatively long (e.g. mammalian) genomes. + Bowtie 2 indexes the genome with an FM Index to keep its memory footprint small: for the human genome, + its memory footprint is typically around 3.2 GB. Bowtie 2 supports gapped, local, and paired-end alignment modes.""" + +toolchain = {'name': 'foss', 'version': '2016a'} + +sources = ['%(namelower)s-%(version)s-source.zip'] +source_urls = [('http://sourceforge.net/projects/bowtie-bio/files/%(namelower)s/%(version)s', 'download')] + +files_to_copy = [ + (["bowtie2", "bowtie2-align-l", "bowtie2-align-s", "bowtie2-build", "bowtie2-build-l", "bowtie2-build-s", + "bowtie2-inspect", "bowtie2-inspect-l", "bowtie2-inspect-s"], 'bin'), + "doc", "example", "scripts", "MANUAL", "MANUAL.markdown", "NEWS"] + +sanity_check_paths = { + 'files': ["bin/bowtie2-align-l", "bin/bowtie2-build", "bin/bowtie2-inspect"], + 'dirs': [], +} + +# to add script folder to path just uncomment this line +#modextrapaths = {'PATH': 'scripts'} + +moduleclass = 'bio' diff --git a/b/Bowtie2/Bowtie2-2.2.9-goolf-1.7.20.eb b/b/Bowtie2/Bowtie2-2.2.9-goolf-1.7.20.eb new file mode 100644 index 00000000..ab9ee385 --- /dev/null +++ b/b/Bowtie2/Bowtie2-2.2.9-goolf-1.7.20.eb @@ -0,0 +1,40 @@ +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# Author: Pablo Escobar Lopez +# Swiss Institute of Bioinformatics +# Biozentrum - University of Basel +# Modified by: Robert Schmidt +# Ottawa Hospital Research Institute - Bioinformatics Team +# Modified by: Adam Huffman +# The Francis Crick Institute + +easyblock = 'MakeCp' + +name = 'Bowtie2' +version = "2.2.9" + +homepage = 'http://bowtie-bio.sourceforge.net/bowtie2/index.shtml' +description = """ Bowtie 2 is an ultrafast and memory-efficient tool for aligning sequencing reads + to long reference sequences. It is particularly good at aligning reads of about 50 up to 100s or 1,000s + of characters, and particularly good at aligning to relatively long (e.g. mammalian) genomes. + Bowtie 2 indexes the genome with an FM Index to keep its memory footprint small: for the human genome, + its memory footprint is typically around 3.2 GB. Bowtie 2 supports gapped, local, and paired-end alignment modes.""" + +toolchain = {'name': 'goolf', 'version': '1.7.20'} + +sources = ['%(namelower)s-%(version)s-source.zip'] +source_urls = [('http://sourceforge.net/projects/bowtie-bio/files/%(namelower)s/%(version)s', 'download')] + +files_to_copy = [ + (["bowtie2", "bowtie2-align-l", "bowtie2-align-s", "bowtie2-build", "bowtie2-build-l", "bowtie2-build-s", + "bowtie2-inspect", "bowtie2-inspect-l", "bowtie2-inspect-s"], 'bin'), + "doc", "example", "scripts", "MANUAL", "MANUAL.markdown", "NEWS"] + +sanity_check_paths = { + 'files': ["bin/bowtie2-align-l", "bin/bowtie2-build", "bin/bowtie2-inspect"], + 'dirs': [], +} + +# to add script folder to path just uncomment this line +#modextrapaths = {'PATH': 'scripts'} + +moduleclass = 'bio' diff --git a/b/Bullet/Bullet-2.83.7-foss-2016a.eb b/b/Bullet/Bullet-2.83.7-foss-2016a.eb new file mode 100644 index 00000000..95d2b2fb --- /dev/null +++ b/b/Bullet/Bullet-2.83.7-foss-2016a.eb @@ -0,0 +1,29 @@ +easyblock = 'CMakeMake' + +name = 'Bullet' +version = '2.83.7' + +homepage = "http://bulletphysics.org/" +description = """Bullet professional 3D Game Multiphysics Library provides state + of the art collision detection, soft body and rigid body dynamics.""" + +toolchain = {'name': 'foss', 'version': '2016a'} +toolchainopts = {'usempi': False, 'pic': True} + +source_urls = ['https://github.com/bulletphysics/bullet3/archive/'] +sources = ["%(version)s.tar.gz"] + +builddependencies = [('CMake', '3.5.2')] + +# build shared libraries +configopts = "-DBUILD_SHARED_LIBS=ON" + +sanity_check_paths = { + 'files': ['include/bullet/btBullet%sCommon.h' % x for x in ['Collision', 'Dynamics']] + + ['lib/libBullet%s.%s' % (x,SHLIB_EXT) for x in ['Collision', 'Dynamics']], + 'dirs': [], +} + +modextrapaths = {'CPATH': 'include/bullet'} + +moduleclass = 'phys' diff --git a/b/Bullet/Bullet-2.83.7-intel-2016a.eb b/b/Bullet/Bullet-2.83.7-intel-2016a.eb new file mode 100644 index 00000000..d23fa88f --- /dev/null +++ b/b/Bullet/Bullet-2.83.7-intel-2016a.eb @@ -0,0 +1,29 @@ +easyblock = 'CMakeMake' + +name = 'Bullet' +version = '2.83.7' + +homepage = "http://bulletphysics.org/" +description = """Bullet professional 3D Game Multiphysics Library provides state + of the art collision detection, soft body and rigid body dynamics.""" + +toolchain = {'name': 'intel', 'version': '2016a'} +toolchainopts = {'usempi': False, 'pic': True} + +source_urls = ['https://github.com/bulletphysics/bullet3/archive/'] +sources = ["%(version)s.tar.gz"] + +builddependencies = [('CMake', '3.5.2')] + +# build shared libraries +configopts = "-DBUILD_SHARED_LIBS=ON" + +sanity_check_paths = { + 'files': ['include/bullet/btBullet%sCommon.h' % x for x in ['Collision', 'Dynamics']] + + ['lib/libBullet%s.%s' % (x,SHLIB_EXT) for x in ['Collision', 'Dynamics']], + 'dirs': [], +} + +modextrapaths = {'CPATH': 'include/bullet'} + +moduleclass = 'phys' diff --git a/b/bbcp/bbcp-12.01.30.00.0-amd64_linux26.eb b/b/bbcp/bbcp-12.01.30.00.0-amd64_linux26.eb new file mode 100644 index 00000000..17f6d6b1 --- /dev/null +++ b/b/bbcp/bbcp-12.01.30.00.0-amd64_linux26.eb @@ -0,0 +1,37 @@ +## +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# +# Copyright:: Copyright 2012-2014 Uni.Lu/LCSB, NTUA +# Authors:: Fotis Georgatos +# 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-90.html +## + +easyblock = 'Binary' + +name = 'bbcp' +version = '12.01.30.00.0' +versionsuffix = '-amd64_linux26' + +homepage = 'http://www.slac.stanford.edu/~abh/bbcp/' +description = """BBCP is an alternative to Gridftp when transferring large amounts of data, + capable of breaking up your transfer into multiple simultaneous transferring streams, + thereby transferring data much faster than single-streaming utilities such as SCP and SFTP. + See details at http://pcbunn.cithep.caltech.edu/bbcp/using_bbcp.htm + or http://www.nics.tennessee.edu/computing-resources/data-transfer/bbcp""" + +toolchain = {'name': 'dummy', 'version': 'dummy'} + +# fi. http://www.slac.stanford.edu/~abh/bbcp/bin/amd64_linux26/bbcp # VERY poor way of distributing software +sources = [name] +source_urls = [homepage + 'bin/%s' % versionsuffix] + +sanity_check_paths = { + 'files': ['bbcp'], + 'dirs': [] +} + +moduleclass = 'tools' diff --git a/b/beagle-lib/beagle-lib-2.1.2-foss-2016a.eb b/b/beagle-lib/beagle-lib-2.1.2-foss-2016a.eb new file mode 100644 index 00000000..29785ed5 --- /dev/null +++ b/b/beagle-lib/beagle-lib-2.1.2-foss-2016a.eb @@ -0,0 +1,35 @@ +easyblock = 'ConfigureMake' + +name = 'beagle-lib' +version = '2.1.2' +homepage= 'https://github.com/beagle-dev/beagle-lib' +description = """ +beagle-lib is a high-performance library that can perform the core +calculations at the heart of most Bayesian and Maximum Likelihood +phylogenetics packages. +""" + +toolchain = {'name': 'foss', 'version': '2016a'} + +# https://github.com/beagle-dev/beagle-lib/archive/beagle_release_2_1_2.tar.gz +source_urls = ['https://github.com/beagle-dev/beagle-lib/archive/'] +sources = ['beagle_release_%s.tar.gz' % version.replace('.', '_')] + +dependencies = [('Java', '1.8.0_74', '', True)] + +builddependencies = [('Autotools', '20150215')] + +# parallel build does not work (to test) +parallel = 1 + +preconfigopts = "./autogen.sh && " + +sanity_check_paths = { + 'files': ["include/libhmsbeagle-1/libhmsbeagle/%s" % includefile + for includefile in ["beagle.h", "platform.h"]] + + ["lib/libhmsbeagle%s.so" % libfile + for libfile in ["-cpu", "-cpu-sse", "-jni", ""]], + 'dirs': [] +} + +moduleclass = 'numlib' diff --git a/b/beagle-lib/beagle-lib-2.1.2-goolf-1.7.20.eb b/b/beagle-lib/beagle-lib-2.1.2-goolf-1.7.20.eb new file mode 100644 index 00000000..ba27dc85 --- /dev/null +++ b/b/beagle-lib/beagle-lib-2.1.2-goolf-1.7.20.eb @@ -0,0 +1,36 @@ +easyblock = 'ConfigureMake' + +name = 'beagle-lib' +version = '2.1.2' + +homepage= 'https://github.com/beagle-dev/beagle-lib' +description = """ +beagle-lib is a high-performance library that can perform the core +calculations at the heart of most Bayesian and Maximum Likelihood +phylogenetics packages. +""" + +toolchain = {'name': 'goolf', 'version': '1.7.20'} + +# https://github.com/beagle-dev/beagle-lib/archive/beagle_release_2_1_2.tar.gz +source_urls = ['https://github.com/beagle-dev/beagle-lib/archive/'] +sources = ['beagle_release_%s.tar.gz' % version.replace('.', '_')] + +dependencies = [('Java', '1.7.0_80', '', True)] + +builddependencies = [('Autotools', '20150215', '', True)] + +# parallel build does not work (to test) +parallel = 1 + +preconfigopts = "./autogen.sh && " + +sanity_check_paths = { + 'files': ["include/libhmsbeagle-1/libhmsbeagle/%s" % includefile + for includefile in ["beagle.h", "platform.h"]] + + ["lib/libhmsbeagle%s.so" % libfile + for libfile in ["-cpu", "-cpu-sse", "-jni", ""]], + 'dirs': [] +} + +moduleclass = 'numlib' diff --git a/b/beagle-lib/beagle-lib-20120124-goolf-1.4.10.eb b/b/beagle-lib/beagle-lib-20120124-goolf-1.4.10.eb new file mode 100644 index 00000000..f54d7128 --- /dev/null +++ b/b/beagle-lib/beagle-lib-20120124-goolf-1.4.10.eb @@ -0,0 +1,34 @@ +easyblock = 'ConfigureMake' + +name = 'beagle-lib' +version = '20120124' + +homepage = 'http://code.google.com/p/beagle-lib/' +description = """ +beagle-lib is a high-performance library that can perform the core +calculations at the heart of most Bayesian and Maximum Likelihood +phylogenetics packages. +""" + +toolchain = {'name': 'goolf', 'version': '1.4.10'} + +# there is no tarball provided, only SVN checkout through: +# svn checkout http://beagle-lib.googlecode.com/svn/trunk/ beagle-lib +sources = [SOURCE_TGZ] + +dependencies = [('Java', '1.7.0_15', '', True)] + +patches = ['beagle-lib-20120124_GCC-4.7.patch'] + +# parallel build does not work +parallel = 1 + +sanity_check_paths = { + 'files': ["include/libhmsbeagle-1/libhmsbeagle/%s" % includefile + for includefile in ["beagle.h", "platform.h"]] + + ["lib/libhmsbeagle%s.so" % libfile + for libfile in ["-cpu", "-cpu-sse", "-jni", ""]], + 'dirs': [] +} + +moduleclass = 'numlib' diff --git a/b/beagle-lib/beagle-lib-20120124-ictce-5.3.0.eb b/b/beagle-lib/beagle-lib-20120124-ictce-5.3.0.eb new file mode 100644 index 00000000..d4fc0c8f --- /dev/null +++ b/b/beagle-lib/beagle-lib-20120124-ictce-5.3.0.eb @@ -0,0 +1,30 @@ +easyblock = 'ConfigureMake' + +name = 'beagle-lib' +version = '20120124' + +homepage = 'http://code.google.com/p/beagle-lib/' +description = """beagle-lib is a high-performance library that can perform the core + calculations at the heart of most Bayesian and Maximum Likelihood + phylogenetics packages.""" + +toolchain = {'name': 'ictce', 'version': '5.3.0'} + +# there is no tarball provided, only SVN checkout through: +# svn checkout http://beagle-lib.googlecode.com/svn/trunk/ beagle-lib +sources = [SOURCE_TGZ] + +dependencies = [('Java', '1.7.0_15', '', True)] + +# parallel build does not work +parallel = 1 + +sanity_check_paths = { + 'files': ["include/libhmsbeagle-1/libhmsbeagle/%s" % includefile + for includefile in ["beagle.h", "platform.h"]] + + ["lib/libhmsbeagle%s.so" % libfile + for libfile in ["-cpu", "-cpu-sse", "-jni", ""]], + 'dirs': [] +} + +moduleclass = 'numlib' diff --git a/b/beagle-lib/beagle-lib-20141202-intel-2015a.eb b/b/beagle-lib/beagle-lib-20141202-intel-2015a.eb new file mode 100644 index 00000000..cc7febf4 --- /dev/null +++ b/b/beagle-lib/beagle-lib-20141202-intel-2015a.eb @@ -0,0 +1,36 @@ +easyblock = 'ConfigureMake' + +name = 'beagle-lib' +# revision r1261 +version = '20141202' + +homepage = 'http://code.google.com/p/beagle-lib/' +description = """beagle-lib is a high-performance library that can perform the core + calculations at the heart of most Bayesian and Maximum Likelihood + phylogenetics packages.""" + +toolchain = {'name': 'intel', 'version': '2015a'} + +# there is no tarball provided, only SVN checkout through: +# svn checkout http://beagle-lib.googlecode.com/svn/trunk/ beagle-lib +sources = [SOURCE_TGZ] + +dependencies = [ + ('Java', '1.8.0_31', '', True), + ('Autoconf', '2.69') +] + +preconfigopts = './autogen.sh && ' + +# parallel build does not work +parallel = 1 + +sanity_check_paths = { + 'files': ["include/libhmsbeagle-1/libhmsbeagle/%s" % includefile + for includefile in ["beagle.h", "platform.h"]] + + ["lib/libhmsbeagle%s.so" % libfile + for libfile in ["-cpu", "-cpu-sse", "-jni", ""]], + 'dirs': [] +} + +moduleclass = 'numlib' diff --git a/b/binutils/binutils-2.24-intel-2014b.eb b/b/binutils/binutils-2.24-intel-2014b.eb new file mode 100644 index 00000000..7598e76c --- /dev/null +++ b/b/binutils/binutils-2.24-intel-2014b.eb @@ -0,0 +1,19 @@ +name = 'binutils' +version = '2.24' + +homepage = 'http://directory.fsf.org/project/binutils/' +description = "binutils-2.22: GNU binary utilities" + +sources = [SOURCE_TAR_GZ] +source_urls = [GNU_SOURCE] + +toolchain = {'name': 'intel', 'version': '2014b'} + +dependencies = [ + ('zlib', '1.2.8'), +] + +# disable warning/error #175 ("subscript out of range") +buildopts = 'CFLAGS="$CFLAGS -wd175"' + +moduleclass = 'tools' diff --git a/b/binutils/binutils-2.27-GCCcore-6.2.0.eb b/b/binutils/binutils-2.27-GCCcore-6.2.0.eb new file mode 100644 index 00000000..e5d60d57 --- /dev/null +++ b/b/binutils/binutils-2.27-GCCcore-6.2.0.eb @@ -0,0 +1,24 @@ +name = 'binutils' +version = '2.27' + +homepage = 'http://directory.fsf.org/project/binutils/' +description = "binutils: GNU binary utilities" + +toolchain = {'name': 'GCCcore', 'version': '6.2.0'} + +sources = [SOURCE_TAR_GZ] +source_urls = [GNU_SOURCE] + +builddependencies = [ + ('flex', '2.6.0'), + ('Bison', '3.0.4'), + # zlib required, but being linked in statically, so not a runtime dep + ('zlib', '1.2.8'), + # use same binutils version that was used when building GCC toolchain, to 'bootstrap' this binutils + ('binutils', version, '', True) +] + +##--enable-share +configopts = '--enable-share' + +moduleclass = 'tools' diff --git a/b/binutils/binutils-2.27.eb b/b/binutils/binutils-2.27.eb new file mode 100644 index 00000000..a3ea80b0 --- /dev/null +++ b/b/binutils/binutils-2.27.eb @@ -0,0 +1,23 @@ +name = 'binutils' +version = '2.27' + +homepage = 'http://directory.fsf.org/project/binutils/' +description = "binutils: GNU binary utilities" + +toolchain = {'name': 'dummy', 'version': ''} + +sources = [SOURCE_TAR_GZ] +source_urls = [GNU_SOURCE] + +builddependencies = [ + ('flex', '2.6.0'), + ('Bison', '3.0.4'), + # zlib required, but being linked in statically, so not a runtime dep + ('zlib', '1.2.11'), +] + +##--enable-share +configopts = '--enable-share' + + +moduleclass = 'tools' diff --git a/b/bsoft/bsoft-1.8.8-goolf-1.5.14.eb b/b/bsoft/bsoft-1.8.8-goolf-1.5.14.eb new file mode 100644 index 00000000..5bba6900 --- /dev/null +++ b/b/bsoft/bsoft-1.8.8-goolf-1.5.14.eb @@ -0,0 +1,27 @@ +easyblock = 'CmdCp' + +name = 'bsoft' +version = '1.8.8' + +homepage = 'http://lsbr.niams.nih.gov/bsoft/' +description = """Bsoft is a collection of programs and a platform for development of software +for image and molecular processing in structural biology. Problems in structural biology +are approached with a highly modular design, allowing fast development of new algorithms +without the burden of issues such as file I/O. It provides an easily accessible interface, +a resource that can be and has been used in other packages.""" + +toolchain = {'name': 'goolf', 'version': '1.5.14'} +toolchainopts = {'openmp': True} + +source_urls = ['http://lsbr.niams.nih.gov/bsoft/'] +sources = ['%%(name)s%s.tar' % '_'.join(version.split('.'))] + +cmds_map = [('.*', "./bmake omp fftw=$EBROOTFFTW")] +files_to_copy = ['bin'] + +sanity_check_paths = { + 'files': ['bin/brun', 'bin/bshow', 'bin/bview'], + 'dirs': [], +} + +moduleclass = 'bio' diff --git a/b/byacc/byacc-20120526-foss-2015b.eb b/b/byacc/byacc-20120526-foss-2015b.eb new file mode 100644 index 00000000..2999a894 --- /dev/null +++ b/b/byacc/byacc-20120526-foss-2015b.eb @@ -0,0 +1,72 @@ +# Built with EasyBuild version 2.1.1 on 2015-09-08_14-17-26 +# Built with EasyBuild version 2.1.1 on 2015-08-17_09-16-43 +easyblock = 'ConfigureMake' + +name = 'byacc' +version = '20120526' + +homepage = 'http://invisible-island.net/byacc/byacc.html' +description = """Berkeley Yacc (byacc) is generally conceded to be the best yacc variant available. + In contrast to bison, it is written to avoid dependencies upon a particular compiler.""" + + +toolchain = {'name': 'foss', 'version': '2015b'} + +sources = [SOURCELOWER_TGZ] +source_urls = ['ftp://invisible-island.net/byacc'] + +sanity_check_paths = { + 'files': ["bin/yacc"], + 'dirs': [] + } + +moduleclass = 'lang' + +# Build statistics +buildstats = [{ + "easybuild-framework_version": "2.1.1", + "easybuild-easyblocks_version": "2.1.1", + "timestamp": 1439795803, + "build_time": 13.95, + "install_size": 208457, + "command_line": ['--buildpath=/easybuild/build', '--installpath=/apps', '--installpath-modules=/apps/modules', '--installpath-software=/apps', '--module-naming-scheme=IT4IModuleNamingScheme', '--modules-footer=/easybuild/templates/modules/jas02_footer.txt', '--repositorypath=/easybuild/file-repository', '--robot=/easybuild/easyconfigs-salomon/easybuild/easyconfigs', '--robot-paths=/easybuild/easyconfigs-salomon/easybuild/easyconfigs', '--sourcepath=/easybuild/sources', '--try-toolchain="[\'intel\', \'2015b\']"', 'libmatheval-1.1.8-ictce-5.3.0.eb'], + "modules_tool": ('EnvironmentModulesC', '/usr/bin/modulecmd', '3.2.10'), + "core_count": 28, + "cpu_model": "Intel(R) Xeon(R) CPU E5-2695 v3 @ 2.30GHz", + "cpu_speed": 2299.825, + "cpu_vendor": "Intel", + "gcc_version": "Using built-in specs.; COLLECT_GCC=gcc; COLLECT_LTO_WRAPPER=/apps/all/GCC/5.1.0-binutils-2.25/libexec/gcc/x86_64-unknown-linux-gnu/5.1.0/lto-wrapper; Target: x86_64-unknown-linux-gnu; Configured with: ../configure --enable-languages=c,c++,fortran --enable-lto --enable-checking=release --disable-multilib --enable-shared=yes --enable-static=yes --enable-threads=posix --enable-gold=default --enable-plugins --enable-ld --with-plugin-ld=ld.gold --prefix=/apps/all/GCC/5.1.0-binutils-2.25 --with-local-prefix=/apps/all/GCC/5.1.0-binutils-2.25 --enable-bootstrap --with-isl=/easybuild/build/GCC/5.1.0/dummy--binutils-2.25/gcc-5.1.0/stage2_stuff; Thread model: posix; gcc version 5.1.0 (GCC) ; ", + "glibc_version": "2.12", + "hostname": "login1", + "os_name": "centos", + "os_type": "Linux", + "os_version": "6.6", + "platform_name": "x86_64-unknown-linux", + "python_version": "2.6.6 (r266:84292, Jan 22 2014, 09:42:36) ; [GCC 4.4.7 20120313 (Red Hat 4.4.7-4)]", + "system_gcc_path": "/apps/all/GCC/5.1.0-binutils-2.25/bin/gcc", + "system_python_path": "/usr/bin/python", +}] + +buildstats.append({ + "easybuild-framework_version": "2.1.1", + "easybuild-easyblocks_version": "2.1.1", + "timestamp": 1441714646, + "build_time": 7.41, + "install_size": 116385, + "command_line": ['--buildpath=/easybuild/build', '--installpath=/apps', '--installpath-modules=/apps/modules', '--installpath-software=/apps', '--module-naming-scheme=IT4IModuleNamingScheme', '--modules-footer=/easybuild/templates/modules/jas02_footer.txt', '--repositorypath=/easybuild/file-repository', '--robot=/easybuild/easyconfigs-salomon/easybuild/easyconfigs', '--robot-paths=/easybuild/easyconfigs-salomon/easybuild/easyconfigs', '--sourcepath=/easybuild/sources', '--try-toolchain="[\'foss\', \'2015b\']"', 'byacc-20120526-intel-2015b.eb'], + "modules_tool": ('EnvironmentModulesC', '/usr/bin/modulecmd', '3.2.10'), + "core_count": 28, + "cpu_model": "Intel(R) Xeon(R) CPU E5-2695 v3 @ 2.30GHz", + "cpu_speed": 2300.196, + "cpu_vendor": "Intel", + "gcc_version": "Using built-in specs.; COLLECT_GCC=gcc; COLLECT_LTO_WRAPPER=/apps/all/GCC/5.1.0-binutils-2.25/libexec/gcc/x86_64-unknown-linux-gnu/5.1.0/lto-wrapper; Target: x86_64-unknown-linux-gnu; Configured with: ../configure --enable-languages=c,c++,fortran --enable-lto --enable-checking=release --disable-multilib --enable-shared=yes --enable-static=yes --enable-threads=posix --enable-gold=default --enable-plugins --enable-ld --with-plugin-ld=ld.gold --prefix=/apps/all/GCC/5.1.0-binutils-2.25 --with-local-prefix=/apps/all/GCC/5.1.0-binutils-2.25 --enable-bootstrap --with-isl=/easybuild/build/GCC/5.1.0/dummy--binutils-2.25/gcc-5.1.0/stage2_stuff; Thread model: posix; gcc version 5.1.0 (GCC) ; ", + "glibc_version": "2.12", + "hostname": "login3", + "os_name": "centos", + "os_type": "Linux", + "os_version": "6.6", + "platform_name": "x86_64-unknown-linux", + "python_version": "2.6.6 (r266:84292, Jan 22 2014, 09:42:36) ; [GCC 4.4.7 20120313 (Red Hat 4.4.7-4)]", + "system_gcc_path": "/apps/all/GCC/5.1.0-binutils-2.25/bin/gcc", + "system_python_path": "/usr/bin/python", +}) diff --git a/b/byacc/byacc-20120526-foss-2015g.eb b/b/byacc/byacc-20120526-foss-2015g.eb new file mode 100644 index 00000000..be0c552d --- /dev/null +++ b/b/byacc/byacc-20120526-foss-2015g.eb @@ -0,0 +1,23 @@ +# Built with EasyBuild version 2.1.1 on 2015-09-08_14-17-26 +# Built with EasyBuild version 2.1.1 on 2015-08-17_09-16-43 +easyblock = 'ConfigureMake' + +name = 'byacc' +version = '20120526' + +homepage = 'http://invisible-island.net/byacc/byacc.html' +description = """Berkeley Yacc (byacc) is generally conceded to be the best yacc variant available. + In contrast to bison, it is written to avoid dependencies upon a particular compiler.""" + + +toolchain = {'name': 'foss', 'version': '2015g'} + +sources = [SOURCELOWER_TGZ] +source_urls = ['ftp://invisible-island.net/byacc'] + +sanity_check_paths = { + 'files': ["bin/yacc"], + 'dirs': [] + } + +moduleclass = 'lang' diff --git a/b/byacc/byacc-20120526-foss-2016a.eb b/b/byacc/byacc-20120526-foss-2016a.eb new file mode 100644 index 00000000..4172568e --- /dev/null +++ b/b/byacc/byacc-20120526-foss-2016a.eb @@ -0,0 +1,23 @@ +# Built with EasyBuild version 2.1.1 on 2015-09-08_14-17-26 +# Built with EasyBuild version 2.1.1 on 2015-08-17_09-16-43 +easyblock = 'ConfigureMake' + +name = 'byacc' +version = '20120526' + +homepage = 'http://invisible-island.net/byacc/byacc.html' +description = """Berkeley Yacc (byacc) is generally conceded to be the best yacc variant available. + In contrast to bison, it is written to avoid dependencies upon a particular compiler.""" + + +toolchain = {'name': 'foss', 'version': '2016a'} + +sources = [SOURCELOWER_TGZ] +source_urls = ['ftp://invisible-island.net/byacc'] + +sanity_check_paths = { + 'files': ["bin/yacc"], + 'dirs': [] + } + +moduleclass = 'lang' diff --git a/b/byacc/byacc-20120526-intel-2015b.eb b/b/byacc/byacc-20120526-intel-2015b.eb new file mode 100644 index 00000000..81f79a9a --- /dev/null +++ b/b/byacc/byacc-20120526-intel-2015b.eb @@ -0,0 +1,47 @@ +# Built with EasyBuild version 2.1.1 on 2015-08-17_09-16-43 +easyblock = 'ConfigureMake' + +name = 'byacc' +version = '20120526' + +homepage = 'http://invisible-island.net/byacc/byacc.html' +description = """Berkeley Yacc (byacc) is generally conceded to be the best yacc variant available. + In contrast to bison, it is written to avoid dependencies upon a particular compiler.""" + + +toolchain = {'name': 'intel', 'version': '2015b'} + +sources = [SOURCELOWER_TGZ] +source_urls = ['ftp://invisible-island.net/byacc'] + +sanity_check_paths = { + 'files': ["bin/yacc"], + 'dirs': [] + } + +moduleclass = 'lang' + +# Build statistics +buildstats = [{ + "easybuild-framework_version": "2.1.1", + "easybuild-easyblocks_version": "2.1.1", + "timestamp": 1439795803, + "build_time": 13.95, + "install_size": 208457, + "command_line": ['--buildpath=/easybuild/build', '--installpath=/apps', '--installpath-modules=/apps/modules', '--installpath-software=/apps', '--module-naming-scheme=IT4IModuleNamingScheme', '--modules-footer=/easybuild/templates/modules/jas02_footer.txt', '--repositorypath=/easybuild/file-repository', '--robot=/easybuild/easyconfigs-salomon/easybuild/easyconfigs', '--robot-paths=/easybuild/easyconfigs-salomon/easybuild/easyconfigs', '--sourcepath=/easybuild/sources', '--try-toolchain="[\'intel\', \'2015b\']"', 'libmatheval-1.1.8-ictce-5.3.0.eb'], + "modules_tool": ('EnvironmentModulesC', '/usr/bin/modulecmd', '3.2.10'), + "core_count": 28, + "cpu_model": "Intel(R) Xeon(R) CPU E5-2695 v3 @ 2.30GHz", + "cpu_speed": 2299.825, + "cpu_vendor": "Intel", + "gcc_version": "Using built-in specs.; COLLECT_GCC=gcc; COLLECT_LTO_WRAPPER=/apps/all/GCC/5.1.0-binutils-2.25/libexec/gcc/x86_64-unknown-linux-gnu/5.1.0/lto-wrapper; Target: x86_64-unknown-linux-gnu; Configured with: ../configure --enable-languages=c,c++,fortran --enable-lto --enable-checking=release --disable-multilib --enable-shared=yes --enable-static=yes --enable-threads=posix --enable-gold=default --enable-plugins --enable-ld --with-plugin-ld=ld.gold --prefix=/apps/all/GCC/5.1.0-binutils-2.25 --with-local-prefix=/apps/all/GCC/5.1.0-binutils-2.25 --enable-bootstrap --with-isl=/easybuild/build/GCC/5.1.0/dummy--binutils-2.25/gcc-5.1.0/stage2_stuff; Thread model: posix; gcc version 5.1.0 (GCC) ; ", + "glibc_version": "2.12", + "hostname": "login1", + "os_name": "centos", + "os_type": "Linux", + "os_version": "6.6", + "platform_name": "x86_64-unknown-linux", + "python_version": "2.6.6 (r266:84292, Jan 22 2014, 09:42:36) ; [GCC 4.4.7 20120313 (Red Hat 4.4.7-4)]", + "system_gcc_path": "/apps/all/GCC/5.1.0-binutils-2.25/bin/gcc", + "system_python_path": "/usr/bin/python", +}] diff --git a/b/byacc/byacc-20160606.eb b/b/byacc/byacc-20160606.eb new file mode 100644 index 00000000..5100470e --- /dev/null +++ b/b/byacc/byacc-20160606.eb @@ -0,0 +1,22 @@ +easyblock = 'ConfigureMake' + +name = 'byacc' +version = '20160606' + +homepage = 'http://invisible-island.net/byacc/byacc.html' +description = """Berkeley Yacc (byacc) is generally conceded to be the best yacc variant available. + In contrast to bison, it is written to avoid dependencies upon a particular compiler.""" + +toolchain = {'name': 'dummy', 'version': ''} + +sources = [SOURCELOWER_TGZ] +source_urls = ['ftp://invisible-island.net/byacc'] + +checksums = ['d527c811b360f04a8c5f5a0a90625966'] + +sanity_check_paths = { + 'files': ["bin/yacc"], + 'dirs': [] +} + +moduleclass = 'lang' diff --git a/b/bzip2/bzip2-1.0.6-GNU-5.1.0-2.25.eb b/b/bzip2/bzip2-1.0.6-GNU-5.1.0-2.25.eb new file mode 100644 index 00000000..c49d1d3c --- /dev/null +++ b/b/bzip2/bzip2-1.0.6-GNU-5.1.0-2.25.eb @@ -0,0 +1,15 @@ +name = 'bzip2' +version = '1.0.6' + +homepage = 'http://www.bzip.org/' +description = """bzip2 is a freely available, patent free, high-quality data compressor. It typically + compresses files to within 10% to 15% of the best available techniques (the PPM family of statistical + compressors), whilst being around twice as fast at compression and six times faster at decompression.""" + +toolchain = {'name': 'GNU', 'version': '5.1.0-2.25'} +toolchainopts = {'pic': True} + +sources = [SOURCE_TAR_GZ] +source_urls = ['http://www.bzip.org/%(version)s'] + +moduleclass = 'tools' diff --git a/b/bzip2/bzip2-1.0.6-foss-2015g.eb b/b/bzip2/bzip2-1.0.6-foss-2015g.eb new file mode 100644 index 00000000..6b70bfce --- /dev/null +++ b/b/bzip2/bzip2-1.0.6-foss-2015g.eb @@ -0,0 +1,16 @@ +# Built with EasyBuild version 2.1.1 on 2015-06-29_19-09-07 +name = 'bzip2' +version = '1.0.6' + +homepage = 'http://www.bzip.org/' +description = """bzip2 is a freely available, patent free, high-quality data compressor. It typically +compresses files to within 10% to 15% of the best available techniques (the PPM family of statistical +compressors), whilst being around twice as fast at compression and six times faster at decompression.""" + +toolchain = {'name': 'foss', 'version': '2015g'} +toolchainopts = {'pic': True} + +sources = [SOURCE_TAR_GZ] +source_urls = ['http://www.bzip.org/%(version)s/'] + +moduleclass = 'tools' diff --git a/b/bzip2/bzip2-1.0.6-foss-2017a.eb b/b/bzip2/bzip2-1.0.6-foss-2017a.eb new file mode 100644 index 00000000..c973e048 --- /dev/null +++ b/b/bzip2/bzip2-1.0.6-foss-2017a.eb @@ -0,0 +1,15 @@ +name = 'bzip2' +version = '1.0.6' + +homepage = 'http://www.bzip.org/' +description = """bzip2 is a freely available, patent free, high-quality data compressor. It typically + compresses files to within 10% to 15% of the best available techniques (the PPM family of statistical + compressors), whilst being around twice as fast at compression and six times faster at decompression.""" + +toolchain = {'name': 'foss', 'version': '2017a'} +toolchainopts = {'pic': True} + +sources = [SOURCE_TAR_GZ] +source_urls = ['http://www.bzip.org/%(version)s'] + +moduleclass = 'tools' diff --git a/b/bzip2/bzip2-1.0.6-gompi-2015e.eb b/b/bzip2/bzip2-1.0.6-gompi-2015e.eb new file mode 100644 index 00000000..f06f0f3d --- /dev/null +++ b/b/bzip2/bzip2-1.0.6-gompi-2015e.eb @@ -0,0 +1,15 @@ +name = 'bzip2' +version = '1.0.6' + +homepage = 'http://www.bzip.org/' +description = """bzip2 is a freely available, patent free, high-quality data compressor. It typically + compresses files to within 10% to 15% of the best available techniques (the PPM family of statistical + compressors), whilst being around twice as fast at compression and six times faster at decompression.""" + +toolchain = {'name': 'gompi', 'version': '2015e'} +toolchainopts = {'pic': True} + +sources = [SOURCE_TAR_GZ] +source_urls = ['http://www.bzip.org/%(version)s'] + +moduleclass = 'tools' diff --git a/b/bzip2/bzip2-1.0.6-ictce-7.3.5.eb b/b/bzip2/bzip2-1.0.6-ictce-7.3.5.eb new file mode 100644 index 00000000..44350eb9 --- /dev/null +++ b/b/bzip2/bzip2-1.0.6-ictce-7.3.5.eb @@ -0,0 +1,66 @@ +# Built with EasyBuild version 2.1.1 on 2015-08-21_14-28-31 +# Built with EasyBuild version 2.1.1 on 2015-06-29_22-18-16 +name = 'bzip2' +version = '1.0.6' + +homepage = 'http://www.bzip.org/' +description = """bzip2 is a freely available, patent free, high-quality data compressor. It typically + compresses files to within 10% to 15% of the best available techniques (the PPM family of statistical + compressors), whilst being around twice as fast at compression and six times faster at decompression.""" + +toolchain = {'name': 'ictce', 'version': '7.3.5'} +toolchainopts = {'pic': True} + +sources = [SOURCE_TAR_GZ] +source_urls = ['http://www.bzip.org/%(version)s'] + +moduleclass = 'tools' + +# Build statistics +buildstats = [{ + "easybuild-framework_version": "2.1.1", + "easybuild-easyblocks_version": "2.1.1", + "timestamp": 1435609096, + "build_time": 3.35, + "install_size": 1436756, + "command_line": ['--buildpath=/easybuild/build', '--installpath=/apps', '--installpath-modules=/apps/modules', '--installpath-software=/apps', '--module-naming-scheme=IT4IModuleNamingScheme', '--modules-footer=/easybuild/templates/modules/jas02_footer.txt', '--repositorypath=/easybuild/file-repository', '--robot=/easybuild/easyconfigs-salomon/easybuild/easyconfigs', '--robot-paths=/easybuild/easyconfigs-salomon/easybuild/easyconfigs', '--sourcepath=/easybuild/sources', '--try-toolchain="[\'intel\', \'2015b\']"', 'RELION-1.3-intel-2014b.eb'], + "modules_tool": ('EnvironmentModulesC', '/usr/bin/modulecmd', '3.2.10'), + "core_count": 28, + "cpu_model": "Intel(R) Xeon(R) CPU E5-2695 v3 @ 2.30GHz", + "cpu_speed": 2300.041, + "cpu_vendor": "Intel", + "gcc_version": "Using built-in specs.; COLLECT_GCC=gcc; COLLECT_LTO_WRAPPER=/apps/all/GCC/5.1.0-binutils-2.25/libexec/gcc/x86_64-unknown-linux-gnu/5.1.0/lto-wrapper; Target: x86_64-unknown-linux-gnu; Configured with: ../configure --enable-languages=c,c++,fortran --enable-lto --enable-checking=release --disable-multilib --enable-shared=yes --enable-static=yes --enable-threads=posix --enable-gold=default --enable-plugins --enable-ld --with-plugin-ld=ld.gold --prefix=/apps/all/GCC/5.1.0-binutils-2.25 --with-local-prefix=/apps/all/GCC/5.1.0-binutils-2.25 --enable-bootstrap --with-isl=/easybuild/build/GCC/5.1.0/dummy--binutils-2.25/gcc-5.1.0/stage2_stuff; Thread model: posix; gcc version 5.1.0 (GCC) ; ", + "glibc_version": "2.12", + "hostname": "login1", + "os_name": "centos", + "os_type": "Linux", + "os_version": "6.6", + "platform_name": "x86_64-unknown-linux", + "python_version": "2.6.6 (r266:84292, Jan 22 2014, 09:42:36) ; [GCC 4.4.7 20120313 (Red Hat 4.4.7-4)]", + "system_gcc_path": "/apps/all/GCC/5.1.0-binutils-2.25/bin/gcc", + "system_python_path": "/usr/bin/python", +}] + +buildstats.append({ + "easybuild-framework_version": "2.1.1", + "easybuild-easyblocks_version": "2.1.1", + "timestamp": 1440160111, + "build_time": 5.73, + "install_size": 1441925, + "command_line": ['--buildpath=/easybuild/build', '--installpath=/apps', '--installpath-modules=/apps/modules', '--installpath-software=/apps', '--module-naming-scheme=IT4IModuleNamingScheme', '--modules-footer=/easybuild/templates/modules/jas02_footer.txt', '--repositorypath=/easybuild/file-repository', '--robot=/easybuild/easyconfigs-salomon/easybuild/easyconfigs', '--robot-paths=/easybuild/easyconfigs-salomon/easybuild/easyconfigs', '--sourcepath=/easybuild/sources', '--try-toolchain="[\'ictce\', \'7.3.5\']"', 'bzip2-1.0.6-intel-2015b.eb'], + "modules_tool": ('EnvironmentModulesC', '/usr/bin/modulecmd', '3.2.10'), + "core_count": 28, + "cpu_model": "Intel(R) Xeon(R) CPU E5-2695 v3 @ 2.30GHz", + "cpu_speed": 2299.859, + "cpu_vendor": "Intel", + "gcc_version": "Using built-in specs.; Target: x86_64-redhat-linux; Configured with: ../configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --with-bugurl=http://bugzilla.redhat.com/bugzilla --enable-bootstrap --enable-shared --enable-threads=posix --enable-checking=release --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-gnu-unique-object --enable-languages=c,c++,objc,obj-c++,java,fortran,ada --enable-java-awt=gtk --disable-dssi --with-java-home=/usr/lib/jvm/java-1.5.0-gcj-1.5.0.0/jre --enable-libgcj-multifile --enable-java-maintainer-mode --with-ecj-jar=/usr/share/java/eclipse-ecj.jar --disable-libjava-multilib --with-ppl --with-cloog --with-tune=generic --with-arch_32=i686 --build=x86_64-redhat-linux; Thread model: posix; gcc version 4.4.7 20120313 (Red Hat 4.4.7-11) (GCC) ; ", + "glibc_version": "2.12", + "hostname": "login4", + "os_name": "centos", + "os_type": "Linux", + "os_version": "6.6", + "platform_name": "x86_64-unknown-linux", + "python_version": "2.6.6 (r266:84292, Jan 22 2014, 09:42:36) ; [GCC 4.4.7 20120313 (Red Hat 4.4.7-4)]", + "system_gcc_path": "/usr/bin/gcc", + "system_python_path": "/usr/bin/python", +}) diff --git a/b/bzip2/bzip2-1.0.6-intel-2017.00.eb b/b/bzip2/bzip2-1.0.6-intel-2017.00.eb new file mode 100644 index 00000000..34a16ee7 --- /dev/null +++ b/b/bzip2/bzip2-1.0.6-intel-2017.00.eb @@ -0,0 +1,15 @@ +name = 'bzip2' +version = '1.0.6' + +homepage = 'http://www.bzip.org/' +description = """bzip2 is a freely available, patent free, high-quality data compressor. It typically + compresses files to within 10% to 15% of the best available techniques (the PPM family of statistical + compressors), whilst being around twice as fast at compression and six times faster at decompression.""" + +toolchain = {'name': 'intel', 'version': '2017.00'} +toolchainopts = {'pic': True} + +sources = [SOURCE_TAR_GZ] +source_urls = ['http://www.bzip.org/%(version)s'] + +moduleclass = 'tools' diff --git a/b/bzip2/bzip2-1.0.6-intel-2017a.eb b/b/bzip2/bzip2-1.0.6-intel-2017a.eb new file mode 100644 index 00000000..2cf6ee13 --- /dev/null +++ b/b/bzip2/bzip2-1.0.6-intel-2017a.eb @@ -0,0 +1,15 @@ +name = 'bzip2' +version = '1.0.6' + +homepage = 'http://www.bzip.org/' +description = """bzip2 is a freely available, patent free, high-quality data compressor. It typically + compresses files to within 10% to 15% of the best available techniques (the PPM family of statistical + compressors), whilst being around twice as fast at compression and six times faster at decompression.""" + +toolchain = {'name': 'intel', 'version': '2017a'} +toolchainopts = {'pic': True} + +sources = [SOURCE_TAR_GZ] +source_urls = ['http://www.bzip.org/%(version)s'] + +moduleclass = 'tools' diff --git a/c/CFITSIO/CFITSIO-3.300-ictce-5.5.0.eb b/c/CFITSIO/CFITSIO-3.300-ictce-5.5.0.eb new file mode 100755 index 00000000..8c90ec64 --- /dev/null +++ b/c/CFITSIO/CFITSIO-3.300-ictce-5.5.0.eb @@ -0,0 +1,22 @@ +easyblock = 'ConfigureMake' + +name = 'CFITSIO' +version = '3.300' + +homepage = 'http://heasarc.gsfc.nasa.gov/fitsio/' +description = """CFITSIO is a library of C and Fortran subroutines for reading and writing data files in +FITS (Flexible Image Transport System) data format.""" + +toolchain = {'name': 'ictce', 'version': '5.5.0'} +toolchainopts = {'pic': True} + +srcversion = version.replace('.', '') +source_urls = ['ftp://heasarc.gsfc.nasa.gov/software/fitsio/c/'] +sources = ['%%(namelower)s%s.tar.gz' % srcversion] + +sanity_check_paths = { + 'files': ['lib/libcfitsio.a'], + 'dirs': ['include'], +} + +moduleclass = 'lib' diff --git a/c/CFITSIO/CFITSIO-3.34-goolf-1.4.10.eb b/c/CFITSIO/CFITSIO-3.34-goolf-1.4.10.eb new file mode 100644 index 00000000..9a156bff --- /dev/null +++ b/c/CFITSIO/CFITSIO-3.34-goolf-1.4.10.eb @@ -0,0 +1,22 @@ +easyblock = 'ConfigureMake' + +name = 'CFITSIO' +version = '3.34' + +homepage = 'http://heasarc.gsfc.nasa.gov/fitsio/' +description = """CFITSIO is a library of C and Fortran subroutines for reading and writing data files in +FITS (Flexible Image Transport System) data format.""" + +toolchain = {'name': 'goolf', 'version': '1.4.10'} +toolchainopts = {'optarch': True, 'pic': True} + +srcversion = '%s0' % version.replace('.', '') +source_urls = ['ftp://heasarc.gsfc.nasa.gov/software/fitsio/c/'] +sources = ['%%(namelower)s%s.tar.gz' % srcversion] + +sanity_check_paths = { + 'files': ["lib/libcfitsio.a"], + 'dirs': ["include"], +} + +moduleclass = 'lib' diff --git a/c/CFITSIO/CFITSIO-3.34-ictce-5.3.0.eb b/c/CFITSIO/CFITSIO-3.34-ictce-5.3.0.eb new file mode 100644 index 00000000..bf8fb571 --- /dev/null +++ b/c/CFITSIO/CFITSIO-3.34-ictce-5.3.0.eb @@ -0,0 +1,22 @@ +easyblock = 'ConfigureMake' + +name = 'CFITSIO' +version = '3.34' + +homepage = 'http://heasarc.gsfc.nasa.gov/fitsio/' +description = """CFITSIO is a library of C and Fortran subroutines for reading and writing data files in +FITS (Flexible Image Transport System) data format.""" + +toolchain = {'name': 'ictce', 'version': '5.3.0'} +toolchainopts = {'optarch': True, 'pic': True} + +srcversion = '%s0' % version.replace('.', '') +source_urls = ['ftp://heasarc.gsfc.nasa.gov/software/fitsio/c/'] +sources = ['%%(namelower)s%s.tar.gz' % srcversion] + +sanity_check_paths = { + 'files': ["lib/libcfitsio.a"], + 'dirs': ["include"], +} + +moduleclass = 'lib' diff --git a/c/CFITSIO/CFITSIO-3.34-ictce-5.5.0.eb b/c/CFITSIO/CFITSIO-3.34-ictce-5.5.0.eb new file mode 100644 index 00000000..acdf7bfb --- /dev/null +++ b/c/CFITSIO/CFITSIO-3.34-ictce-5.5.0.eb @@ -0,0 +1,22 @@ +easyblock = 'ConfigureMake' + +name = 'CFITSIO' +version = '3.34' + +homepage = 'http://heasarc.gsfc.nasa.gov/fitsio/' +description = """CFITSIO is a library of C and Fortran subroutines for reading and writing data files in +FITS (Flexible Image Transport System) data format.""" + +toolchain = {'name': 'ictce', 'version': '5.5.0'} +toolchainopts = {'optarch': True, 'pic': True} + +srcversion = '%s0' % version.replace('.', '') +source_urls = ['ftp://heasarc.gsfc.nasa.gov/software/fitsio/c/'] +sources = ['%%(namelower)s%s.tar.gz' % srcversion] + +sanity_check_paths = { + 'files': ["lib/libcfitsio.a"], + 'dirs': ["include"], +} + +moduleclass = 'lib' diff --git a/c/CFITSIO/CFITSIO-3.350-ictce-5.5.0.eb b/c/CFITSIO/CFITSIO-3.350-ictce-5.5.0.eb new file mode 100644 index 00000000..177bb20d --- /dev/null +++ b/c/CFITSIO/CFITSIO-3.350-ictce-5.5.0.eb @@ -0,0 +1,22 @@ +easyblock = 'ConfigureMake' + +name = 'CFITSIO' +version = '3.350' + +homepage = 'http://heasarc.gsfc.nasa.gov/fitsio/' +description = """CFITSIO is a library of C and Fortran subroutines for reading and writing data files in +FITS (Flexible Image Transport System) data format.""" + +toolchain = {'name': 'ictce', 'version': '5.5.0'} +toolchainopts = {'optarch': True, 'pic': True} + +srcversion = '%s' % version.replace('.', '') +source_urls = ['ftp://heasarc.gsfc.nasa.gov/software/fitsio/c/'] +sources = ['%%(namelower)s%s.tar.gz' % srcversion] + +sanity_check_paths = { + 'files': ["lib/libcfitsio.a"], + 'dirs': ["include"], +} + +moduleclass = 'lib' diff --git a/c/CFITSIO/CFITSIO-3.37-intel-2015a.eb b/c/CFITSIO/CFITSIO-3.37-intel-2015a.eb new file mode 100644 index 00000000..08e0bf17 --- /dev/null +++ b/c/CFITSIO/CFITSIO-3.37-intel-2015a.eb @@ -0,0 +1,22 @@ +easyblock = 'ConfigureMake' + +name = 'CFITSIO' +version = '3.37' + +homepage = 'http://heasarc.gsfc.nasa.gov/fitsio/' +description = """CFITSIO is a library of C and Fortran subroutines for reading and writing data files in +FITS (Flexible Image Transport System) data format.""" + +toolchain = {'name': 'intel', 'version': '2015a'} +toolchainopts = {'optarch': True, 'pic': True} + +srcversion = '%s0' % version.replace('.', '') +source_urls = ['ftp://heasarc.gsfc.nasa.gov/software/fitsio/c/'] +sources = ['%%(namelower)s%s.tar.gz' % srcversion] + +sanity_check_paths = { + 'files': ["lib/libcfitsio.a"], + 'dirs': ["include"], +} + +moduleclass = 'lib' diff --git a/c/CFITSIO/CFITSIO-3.38-foss-2016a.eb b/c/CFITSIO/CFITSIO-3.38-foss-2016a.eb new file mode 100644 index 00000000..654a6284 --- /dev/null +++ b/c/CFITSIO/CFITSIO-3.38-foss-2016a.eb @@ -0,0 +1,22 @@ +easyblock = 'ConfigureMake' + +name = 'CFITSIO' +version = '3.38' + +homepage = 'http://heasarc.gsfc.nasa.gov/fitsio/' +description = """CFITSIO is a library of C and Fortran subroutines for reading and writing data files in +FITS (Flexible Image Transport System) data format.""" + +toolchain = {'name': 'foss', 'version': '2016a'} +toolchainopts = {'optarch': True, 'pic': True} + +srcversion = '%s0' % version.replace('.', '') +source_urls = ['ftp://heasarc.gsfc.nasa.gov/software/fitsio/c/'] +sources = ['%%(namelower)s%s.tar.gz' % srcversion] + +sanity_check_paths = { + 'files': ["lib/libcfitsio.a"], + 'dirs': ["include"], +} + +moduleclass = 'lib' diff --git a/c/CFITSIO/CFITSIO-3.38-intel-2016a.eb b/c/CFITSIO/CFITSIO-3.38-intel-2016a.eb new file mode 100644 index 00000000..6291c971 --- /dev/null +++ b/c/CFITSIO/CFITSIO-3.38-intel-2016a.eb @@ -0,0 +1,22 @@ +easyblock = 'ConfigureMake' + +name = 'CFITSIO' +version = '3.38' + +homepage = 'http://heasarc.gsfc.nasa.gov/fitsio/' +description = """CFITSIO is a library of C and Fortran subroutines for reading and writing data files in +FITS (Flexible Image Transport System) data format.""" + +toolchain = {'name': 'intel', 'version': '2016a'} +toolchainopts = {'optarch': True, 'pic': True} + +srcversion = '%s0' % version.replace('.', '') +source_urls = ['ftp://heasarc.gsfc.nasa.gov/software/fitsio/c/'] +sources = ['%%(namelower)s%s.tar.gz' % srcversion] + +sanity_check_paths = { + 'files': ["lib/libcfitsio.a"], + 'dirs': ["include"], +} + +moduleclass = 'lib' diff --git a/c/CLooG/CLooG-0.18.1-GCC-4.8.2.eb b/c/CLooG/CLooG-0.18.1-GCC-4.8.2.eb new file mode 100644 index 00000000..fbd1e0f8 --- /dev/null +++ b/c/CLooG/CLooG-0.18.1-GCC-4.8.2.eb @@ -0,0 +1,27 @@ +easyblock = 'ConfigureMake' + +name = 'CLooG' +version = '0.18.1' + +homepage = 'http://www.bastoul.net/cloog/index.php' +description = """CLooG is a free software and library to generate code for scanning Z-polyhedra. +That is, it finds a code (e.g. in C, FORTRAN...) that reaches each integral point of one or more parameterized polyhedra. +CLooG has been originally written to solve the code generation problem for optimizing compilers based on the polytope model. +Nevertheless it is used now in various area e.g. to build control automata for high-level synthesis or to find the best +polynomial approximation of a function. CLooG may help in any situation where scanning polyhedra matters. While the user +has full control on generated code quality, CLooG is designed to avoid control overhead and to produce a very effective code. +""" + +toolchain = {'name': 'GCC', 'version': '4.8.2'} + +sources = [SOURCELOWER_TAR_GZ] +source_urls = ['http://www.bastoul.net/cloog/pages/download/'] + +dependencies = [('GMP', '5.1.3')] + +sanity_check_paths = { + 'files': ['bin/cloog', 'lib/libcloog-isl.%s' % SHLIB_EXT, 'lib/libisl.%s' % SHLIB_EXT], + 'dirs': [] +} + +moduleclass = 'compiler' diff --git a/c/CMake/CMake-2.8.4-goolf-1.5.16.eb b/c/CMake/CMake-2.8.4-goolf-1.5.16.eb new file mode 100644 index 00000000..93b44f5c --- /dev/null +++ b/c/CMake/CMake-2.8.4-goolf-1.5.16.eb @@ -0,0 +1,22 @@ +easyblock = 'ConfigureMake' + +name = 'CMake' +version = '2.8.4' + +homepage = 'http://www.cmake.org' +description = """CMake, the cross-platform, open-source build system. + CMake is a family of tools designed to build, test and package software.""" + +toolchain = {'name': 'goolf', 'version': '1.5.16'} + +source_urls = ['http://www.cmake.org/files/v%(version_major_minor)s'] +sources = [SOURCELOWER_TAR_GZ] + +dependencies = [('ncurses', '5.9')] + +sanity_check_paths = { + 'files': ["bin/%s" % x for x in ['cmake', 'cpack', 'ctest']], + 'dirs': [], +} + +moduleclass = 'devel' diff --git a/c/CMake/CMake-3.0.0-ictce-7.3.5.eb b/c/CMake/CMake-3.0.0-ictce-7.3.5.eb new file mode 100644 index 00000000..cae0d157 --- /dev/null +++ b/c/CMake/CMake-3.0.0-ictce-7.3.5.eb @@ -0,0 +1,73 @@ +# Built with EasyBuild version 2.1.1 on 2015-08-25_12-28-01 +# Built with EasyBuild version 2.1.1 on 2015-06-30_09-32-57 +easyblock = 'ConfigureMake' + +name = 'CMake' +version = '3.0.0' + +homepage = 'http://www.cmake.org' +description = """CMake, the cross-platform, open-source build system. + CMake is a family of tools designed to build, test and package software.""" + +toolchain = {'name': 'ictce', 'version': '7.3.5'} + +source_urls = ['http://www.cmake.org/files/v%(version_major_minor)s'] +sources = [SOURCELOWER_TAR_GZ] + +dependencies = [('ncurses', '5.9')] + +sanity_check_paths = { + 'files': ["bin/%s" % x for x in ['cmake', 'cpack', 'ctest']], + 'dirs': [], +} + +moduleclass = 'devel' + +# Build statistics +buildstats = [{ + "easybuild-framework_version": "2.1.1", + "easybuild-easyblocks_version": "2.1.1", + "timestamp": 1435649577, + "build_time": 502.32, + "install_size": 39598491, + "command_line": ['--buildpath=/easybuild/build', '--installpath=/apps', '--installpath-modules=/apps/modules', '--installpath-software=/apps', '--module-naming-scheme=IT4IModuleNamingScheme', '--modules-footer=/easybuild/templates/modules/jas02_footer.txt', '--repositorypath=/easybuild/file-repository', '--robot=/easybuild/easyconfigs-salomon/easybuild/easyconfigs', '--robot-paths=/easybuild/easyconfigs-salomon/easybuild/easyconfigs', '--sourcepath=/easybuild/sources', '--try-toolchain="[\'intel\', \'2015b\']"', 'netCDF-4.3.2-intel-2015a.eb'], + "modules_tool": ('EnvironmentModulesC', '/usr/bin/modulecmd', '3.2.10'), + "core_count": 28, + "cpu_model": "Intel(R) Xeon(R) CPU E5-2695 v3 @ 2.30GHz", + "cpu_speed": 2300.041, + "cpu_vendor": "Intel", + "gcc_version": "Using built-in specs.; COLLECT_GCC=gcc; COLLECT_LTO_WRAPPER=/apps/all/GCC/5.1.0-binutils-2.25/libexec/gcc/x86_64-unknown-linux-gnu/5.1.0/lto-wrapper; Target: x86_64-unknown-linux-gnu; Configured with: ../configure --enable-languages=c,c++,fortran --enable-lto --enable-checking=release --disable-multilib --enable-shared=yes --enable-static=yes --enable-threads=posix --enable-gold=default --enable-plugins --enable-ld --with-plugin-ld=ld.gold --prefix=/apps/all/GCC/5.1.0-binutils-2.25 --with-local-prefix=/apps/all/GCC/5.1.0-binutils-2.25 --enable-bootstrap --with-isl=/easybuild/build/GCC/5.1.0/dummy--binutils-2.25/gcc-5.1.0/stage2_stuff; Thread model: posix; gcc version 5.1.0 (GCC) ; ", + "glibc_version": "2.12", + "hostname": "login1", + "os_name": "centos", + "os_type": "Linux", + "os_version": "6.6", + "platform_name": "x86_64-unknown-linux", + "python_version": "2.6.6 (r266:84292, Jan 22 2014, 09:42:36) ; [GCC 4.4.7 20120313 (Red Hat 4.4.7-4)]", + "system_gcc_path": "/apps/all/GCC/5.1.0-binutils-2.25/bin/gcc", + "system_python_path": "/usr/bin/python", +}] + +buildstats.append({ + "easybuild-framework_version": "2.1.1", + "easybuild-easyblocks_version": "2.1.1", + "timestamp": 1440498481, + "build_time": 632.37, + "install_size": 42201725, + "command_line": ['--buildpath=/easybuild/build', '--installpath=/apps', '--installpath-modules=/apps/modules', '--installpath-software=/apps', '--module-naming-scheme=IT4IModuleNamingScheme', '--modules-footer=/easybuild/templates/modules/jas02_footer.txt', '--repositorypath=/easybuild/file-repository', '--robot=/easybuild/easyconfigs-salomon/easybuild/easyconfigs', '--robot-paths=/easybuild/easyconfigs-salomon/easybuild/easyconfigs', '--sourcepath=/easybuild/sources', '--try-toolchain="[\'ictce\', \'7.3.5\']"', 'CMake-3.0.0-intel-2015b.eb'], + "modules_tool": ('EnvironmentModulesC', '/usr/bin/modulecmd', '3.2.10'), + "core_count": 28, + "cpu_model": "Intel(R) Xeon(R) CPU E5-2695 v3 @ 2.30GHz", + "cpu_speed": 2299.859, + "cpu_vendor": "Intel", + "gcc_version": "Using built-in specs.; Target: x86_64-redhat-linux; Configured with: ../configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --with-bugurl=http://bugzilla.redhat.com/bugzilla --enable-bootstrap --enable-shared --enable-threads=posix --enable-checking=release --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-gnu-unique-object --enable-languages=c,c++,objc,obj-c++,java,fortran,ada --enable-java-awt=gtk --disable-dssi --with-java-home=/usr/lib/jvm/java-1.5.0-gcj-1.5.0.0/jre --enable-libgcj-multifile --enable-java-maintainer-mode --with-ecj-jar=/usr/share/java/eclipse-ecj.jar --disable-libjava-multilib --with-ppl --with-cloog --with-tune=generic --with-arch_32=i686 --build=x86_64-redhat-linux; Thread model: posix; gcc version 4.4.7 20120313 (Red Hat 4.4.7-11) (GCC) ; ", + "glibc_version": "2.12", + "hostname": "login4", + "os_name": "centos", + "os_type": "Linux", + "os_version": "6.6", + "platform_name": "x86_64-unknown-linux", + "python_version": "2.6.6 (r266:84292, Jan 22 2014, 09:42:36) ; [GCC 4.4.7 20120313 (Red Hat 4.4.7-4)]", + "system_gcc_path": "/usr/bin/gcc", + "system_python_path": "/usr/bin/python", +}) diff --git a/c/CMake/CMake-3.0.0-intel-2015b.eb b/c/CMake/CMake-3.0.0-intel-2015b.eb new file mode 100644 index 00000000..cf02a560 --- /dev/null +++ b/c/CMake/CMake-3.0.0-intel-2015b.eb @@ -0,0 +1,48 @@ +# Built with EasyBuild version 2.1.1 on 2015-06-30_09-32-57 +easyblock = 'ConfigureMake' + +name = 'CMake' +version = '3.0.0' + +homepage = 'http://www.cmake.org' +description = """CMake, the cross-platform, open-source build system. + CMake is a family of tools designed to build, test and package software.""" + +toolchain = {'name': 'intel', 'version': '2015b'} + +source_urls = ['http://www.cmake.org/files/v%(version_major_minor)s'] +sources = [SOURCELOWER_TAR_GZ] + +dependencies = [('ncurses', '5.9')] + +sanity_check_paths = { + 'files': ["bin/%s" % x for x in ['cmake', 'cpack', 'ctest']], + 'dirs': [], +} + +moduleclass = 'devel' + +# Build statistics +buildstats = [{ + "easybuild-framework_version": "2.1.1", + "easybuild-easyblocks_version": "2.1.1", + "timestamp": 1435649577, + "build_time": 502.32, + "install_size": 39598491, + "command_line": ['--buildpath=/easybuild/build', '--installpath=/apps', '--installpath-modules=/apps/modules', '--installpath-software=/apps', '--module-naming-scheme=IT4IModuleNamingScheme', '--modules-footer=/easybuild/templates/modules/jas02_footer.txt', '--repositorypath=/easybuild/file-repository', '--robot=/easybuild/easyconfigs-salomon/easybuild/easyconfigs', '--robot-paths=/easybuild/easyconfigs-salomon/easybuild/easyconfigs', '--sourcepath=/easybuild/sources', '--try-toolchain="[\'intel\', \'2015b\']"', 'netCDF-4.3.2-intel-2015a.eb'], + "modules_tool": ('EnvironmentModulesC', '/usr/bin/modulecmd', '3.2.10'), + "core_count": 28, + "cpu_model": "Intel(R) Xeon(R) CPU E5-2695 v3 @ 2.30GHz", + "cpu_speed": 2300.041, + "cpu_vendor": "Intel", + "gcc_version": "Using built-in specs.; COLLECT_GCC=gcc; COLLECT_LTO_WRAPPER=/apps/all/GCC/5.1.0-binutils-2.25/libexec/gcc/x86_64-unknown-linux-gnu/5.1.0/lto-wrapper; Target: x86_64-unknown-linux-gnu; Configured with: ../configure --enable-languages=c,c++,fortran --enable-lto --enable-checking=release --disable-multilib --enable-shared=yes --enable-static=yes --enable-threads=posix --enable-gold=default --enable-plugins --enable-ld --with-plugin-ld=ld.gold --prefix=/apps/all/GCC/5.1.0-binutils-2.25 --with-local-prefix=/apps/all/GCC/5.1.0-binutils-2.25 --enable-bootstrap --with-isl=/easybuild/build/GCC/5.1.0/dummy--binutils-2.25/gcc-5.1.0/stage2_stuff; Thread model: posix; gcc version 5.1.0 (GCC) ; ", + "glibc_version": "2.12", + "hostname": "login1", + "os_name": "centos", + "os_type": "Linux", + "os_version": "6.6", + "platform_name": "x86_64-unknown-linux", + "python_version": "2.6.6 (r266:84292, Jan 22 2014, 09:42:36) ; [GCC 4.4.7 20120313 (Red Hat 4.4.7-4)]", + "system_gcc_path": "/apps/all/GCC/5.1.0-binutils-2.25/bin/gcc", + "system_python_path": "/usr/bin/python", +}] diff --git a/c/CMake/CMake-3.2.3-foss-2015a.eb b/c/CMake/CMake-3.2.3-foss-2015a.eb new file mode 100644 index 00000000..e6f905f4 --- /dev/null +++ b/c/CMake/CMake-3.2.3-foss-2015a.eb @@ -0,0 +1,31 @@ +easyblock = 'ConfigureMake' + +name = 'CMake' +version = '3.2.3' + +homepage = 'http://www.cmake.org' +description = """CMake, the cross-platform, open-source build system. + CMake is a family of tools designed to build, test and package software.""" + +toolchain = {'name': 'foss', 'version': '2015a'} + +source_urls = ['http://www.cmake.org/files/v%(version_major_minor)s'] +sources = [SOURCELOWER_TAR_GZ] + +configopts = '-- -DCMAKE_USE_OPENSSL=1' + +dependencies = [ + ('ncurses', '5.9'), + # OS dependency should be preferred if the os version is more recent then this version, + # it's nice to have an up to date openssl for security reasons + #('OpenSSL', '1.0.1k'), +] + +osdependencies = [('openssl-devel', 'libssl-dev', 'libopenssl-devel')] + +sanity_check_paths = { + 'files': ["bin/%s" % x for x in ['cmake', 'cpack', 'ctest']], + 'dirs': [], +} + +moduleclass = 'devel' diff --git a/c/CMake/CMake-3.2.3-goolf-1.4.10.eb b/c/CMake/CMake-3.2.3-goolf-1.4.10.eb new file mode 100644 index 00000000..130d3553 --- /dev/null +++ b/c/CMake/CMake-3.2.3-goolf-1.4.10.eb @@ -0,0 +1,31 @@ +easyblock = 'ConfigureMake' + +name = 'CMake' +version = '3.2.3' + +homepage = 'http://www.cmake.org' +description = """CMake, the cross-platform, open-source build system. + CMake is a family of tools designed to build, test and package software.""" + +toolchain = {'name': 'goolf', 'version': '1.4.10'} + +source_urls = ['http://www.cmake.org/files/v%(version_major_minor)s'] +sources = [SOURCELOWER_TAR_GZ] + +configopts = '-- -DCMAKE_USE_OPENSSL=1' + +dependencies = [ + ('ncurses', '5.9'), + # OS dependency should be preferred if the os version is more recent then this version, + # it's nice to have an up to date openssl for security reasons + #('OpenSSL', '1.0.1k'), +] + +osdependencies = [('openssl-devel', 'libssl-dev', 'libopenssl-devel')] + +sanity_check_paths = { + 'files': ["bin/%s" % x for x in ['cmake', 'cpack', 'ctest']], + 'dirs': [], +} + +moduleclass = 'devel' diff --git a/c/CMake/CMake-3.2.3-intel-2015a.eb b/c/CMake/CMake-3.2.3-intel-2015a.eb new file mode 100644 index 00000000..5e1447f0 --- /dev/null +++ b/c/CMake/CMake-3.2.3-intel-2015a.eb @@ -0,0 +1,31 @@ +easyblock = 'ConfigureMake' + +name = 'CMake' +version = '3.2.3' + +homepage = 'http://www.cmake.org' +description = """CMake, the cross-platform, open-source build system. + CMake is a family of tools designed to build, test and package software.""" + +toolchain = {'name': 'intel', 'version': '2015a'} + +source_urls = ['http://www.cmake.org/files/v%(version_major_minor)s'] +sources = [SOURCELOWER_TAR_GZ] + +configopts = '-- -DCMAKE_USE_OPENSSL=1' + +dependencies = [ + ('ncurses', '5.9'), + # OS dependency should be preferred if the os version is more recent then this version, + # it's nice to have an up to date openssl for security reasons + #('OpenSSL', '1.0.1k'), +] + +osdependencies = [('openssl-devel', 'libssl-dev', 'libopenssl-devel')] + +sanity_check_paths = { + 'files': ["bin/%s" % x for x in ['cmake', 'cpack', 'ctest']], + 'dirs': [], +} + +moduleclass = 'devel' diff --git a/c/CMake/CMake-3.2.3-intel-2015b.eb b/c/CMake/CMake-3.2.3-intel-2015b.eb new file mode 100644 index 00000000..13531598 --- /dev/null +++ b/c/CMake/CMake-3.2.3-intel-2015b.eb @@ -0,0 +1,31 @@ +easyblock = 'ConfigureMake' + +name = 'CMake' +version = '3.2.3' + +homepage = 'http://www.cmake.org' +description = """CMake, the cross-platform, open-source build system. + CMake is a family of tools designed to build, test and package software.""" + +toolchain = {'name': 'intel', 'version': '2015b'} + +source_urls = ['http://www.cmake.org/files/v%(version_major_minor)s'] +sources = [SOURCELOWER_TAR_GZ] + +configopts = '-- -DCMAKE_USE_OPENSSL=1' + +dependencies = [ + ('ncurses', '5.9'), + # OS dependency should be preferred if the os version is more recent then this version, + # it's nice to have an up to date openssl for security reasons + #('OpenSSL', '1.0.1k'), +] + +osdependencies = [('openssl-devel', 'libssl-dev', 'libopenssl-devel')] + +sanity_check_paths = { + 'files': ["bin/%s" % x for x in ['cmake', 'cpack', 'ctest']], + 'dirs': [], +} + +moduleclass = 'devel' diff --git a/c/CMake/CMake-3.3.1-GNU-4.9.3-2.25.eb b/c/CMake/CMake-3.3.1-GNU-4.9.3-2.25.eb new file mode 100644 index 00000000..98cc1250 --- /dev/null +++ b/c/CMake/CMake-3.3.1-GNU-4.9.3-2.25.eb @@ -0,0 +1,22 @@ +easyblock = 'ConfigureMake' + +name = 'CMake' +version = '3.3.1' + +homepage = 'http://www.cmake.org' +description = """CMake, the cross-platform, open-source build system. + CMake is a family of tools designed to build, test and package software.""" + +toolchain = {'name': 'GNU', 'version': '4.9.3-2.25'} + +source_urls = ['http://www.cmake.org/files/v%(version_major_minor)s'] +sources = [SOURCELOWER_TAR_GZ] + +dependencies = [('ncurses', '5.9')] + +sanity_check_paths = { + 'files': ["bin/%s" % x for x in ['cmake', 'cpack', 'ctest']], + 'dirs': [], +} + +moduleclass = 'devel' diff --git a/c/CMake/CMake-3.3.1-GNU-5.1.0-2.25.eb b/c/CMake/CMake-3.3.1-GNU-5.1.0-2.25.eb new file mode 100644 index 00000000..2a3d1f16 --- /dev/null +++ b/c/CMake/CMake-3.3.1-GNU-5.1.0-2.25.eb @@ -0,0 +1,22 @@ +easyblock = 'ConfigureMake' + +name = 'CMake' +version = '3.3.1' + +homepage = 'http://www.cmake.org' +description = """CMake, the cross-platform, open-source build system. + CMake is a family of tools designed to build, test and package software.""" + +toolchain = {'name': 'GNU', 'version': '5.1.0-2.25'} + +source_urls = ['http://www.cmake.org/files/v%(version_major_minor)s'] +sources = [SOURCELOWER_TAR_GZ] + +dependencies = [('ncurses', '5.9')] + +sanity_check_paths = { + 'files': ["bin/%s" % x for x in ['cmake', 'cpack', 'ctest']], + 'dirs': [], +} + +moduleclass = 'devel' diff --git a/c/CMake/CMake-3.3.1-foss-2015g.eb b/c/CMake/CMake-3.3.1-foss-2015g.eb new file mode 100644 index 00000000..5f9e5106 --- /dev/null +++ b/c/CMake/CMake-3.3.1-foss-2015g.eb @@ -0,0 +1,22 @@ +easyblock = 'ConfigureMake' + +name = 'CMake' +version = '3.3.1' + +homepage = 'http://www.cmake.org' +description = """CMake, the cross-platform, open-source build system. + CMake is a family of tools designed to build, test and package software.""" + +toolchain = {'name': 'foss', 'version': '2015g'} + +source_urls = ['http://www.cmake.org/files/v%(version_major_minor)s'] +sources = [SOURCELOWER_TAR_GZ] + +dependencies = [('ncurses', '5.9')] + +sanity_check_paths = { + 'files': ["bin/%s" % x for x in ['cmake', 'cpack', 'ctest']], + 'dirs': [], +} + +moduleclass = 'devel' diff --git a/c/CMake/CMake-3.3.1-foss-2016a.eb b/c/CMake/CMake-3.3.1-foss-2016a.eb new file mode 100644 index 00000000..4fc6dffc --- /dev/null +++ b/c/CMake/CMake-3.3.1-foss-2016a.eb @@ -0,0 +1,22 @@ +easyblock = 'ConfigureMake' + +name = 'CMake' +version = '3.3.1' + +homepage = 'http://www.cmake.org' +description = """CMake, the cross-platform, open-source build system. + CMake is a family of tools designed to build, test and package software.""" + +toolchain = {'name': 'foss', 'version': '2016a'} + +source_urls = ['http://www.cmake.org/files/v%(version_major_minor)s'] +sources = [SOURCELOWER_TAR_GZ] + +dependencies = [('ncurses', '6.0')] + +sanity_check_paths = { + 'files': ["bin/%s" % x for x in ['cmake', 'cpack', 'ctest']], + 'dirs': [], +} + +moduleclass = 'devel' diff --git a/c/CMake/CMake-3.3.1-intel-2015a.eb b/c/CMake/CMake-3.3.1-intel-2015a.eb new file mode 100644 index 00000000..b8e7064f --- /dev/null +++ b/c/CMake/CMake-3.3.1-intel-2015a.eb @@ -0,0 +1,31 @@ +easyblock = 'ConfigureMake' + +name = 'CMake' +version = '3.3.1' + +homepage = 'http://www.cmake.org' +description = """CMake, the cross-platform, open-source build system. + CMake is a family of tools designed to build, test and package software.""" + +toolchain = {'name': 'intel', 'version': '2015a'} + +source_urls = ['http://www.cmake.org/files/v%(version_major_minor)s'] +sources = [SOURCELOWER_TAR_GZ] + +configopts = '-- -DCMAKE_USE_OPENSSL=1' + +dependencies = [ + ('ncurses', '5.9'), + # OS dependency should be preferred if the os version is more recent then this version, + # it's nice to have an up to date openssl for security reasons + #('OpenSSL', '1.0.1p'), +] + +osdependencies = [('openssl-devel', 'libssl-dev', 'libopenssl-devel')] + +sanity_check_paths = { + 'files': ["bin/%s" % x for x in ['cmake', 'cpack', 'ctest']], + 'dirs': [], +} + +moduleclass = 'devel' diff --git a/c/CMake/CMake-3.3.2-GNU-4.9.3-2.25.eb b/c/CMake/CMake-3.3.2-GNU-4.9.3-2.25.eb new file mode 100644 index 00000000..86f4ad56 --- /dev/null +++ b/c/CMake/CMake-3.3.2-GNU-4.9.3-2.25.eb @@ -0,0 +1,31 @@ +easyblock = 'ConfigureMake' + +name = 'CMake' +version = '3.3.2' + +homepage = 'http://www.cmake.org' +description = """CMake, the cross-platform, open-source build system. + CMake is a family of tools designed to build, test and package software.""" + +toolchain = {'name': 'GNU', 'version': '4.9.3-2.25'} + +source_urls = ['http://www.cmake.org/files/v%(version_major_minor)s'] +sources = [SOURCELOWER_TAR_GZ] + +configopts = '-- -DCMAKE_USE_OPENSSL=1' + +dependencies = [ + ('ncurses', '5.9'), + # OS dependency should be preferred if the os version is more recent then this version, + # it's nice to have an up to date openssl for security reasons + #('OpenSSL', '1.0.1p'), +] + +osdependencies = [('openssl-devel', 'libssl-dev', 'libopenssl-devel')] + +sanity_check_paths = { + 'files': ["bin/%s" % x for x in ['cmake', 'cpack', 'ctest']], + 'dirs': [], +} + +moduleclass = 'devel' diff --git a/c/CMake/CMake-3.3.2-gimkl-2.11.5.eb b/c/CMake/CMake-3.3.2-gimkl-2.11.5.eb new file mode 100644 index 00000000..635df845 --- /dev/null +++ b/c/CMake/CMake-3.3.2-gimkl-2.11.5.eb @@ -0,0 +1,31 @@ +easyblock = 'ConfigureMake' + +name = 'CMake' +version = '3.3.2' + +homepage = 'http://www.cmake.org' +description = """CMake, the cross-platform, open-source build system. + CMake is a family of tools designed to build, test and package software.""" + +toolchain = {'name': 'gimkl', 'version': '2.11.5'} + +source_urls = ['http://www.cmake.org/files/v%(version_major_minor)s'] +sources = [SOURCELOWER_TAR_GZ] + +configopts = '-- -DCMAKE_USE_OPENSSL=1' + +dependencies = [ + ('ncurses', '5.9'), + # OS dependency should be preferred if the os version is more recent then this version, + # it's nice to have an up to date openssl for security reasons + #('OpenSSL', '1.0.1p'), +] + +osdependencies = [('openssl-devel', 'libssl-dev', 'libopenssl-devel')] + +sanity_check_paths = { + 'files': ["bin/%s" % x for x in ['cmake', 'cpack', 'ctest']], + 'dirs': [], +} + +moduleclass = 'devel' diff --git a/c/CMake/CMake-3.3.2-intel-2015b.eb b/c/CMake/CMake-3.3.2-intel-2015b.eb new file mode 100644 index 00000000..ba3ca2e1 --- /dev/null +++ b/c/CMake/CMake-3.3.2-intel-2015b.eb @@ -0,0 +1,31 @@ +easyblock = 'ConfigureMake' + +name = 'CMake' +version = '3.3.2' + +homepage = 'http://www.cmake.org' +description = """CMake, the cross-platform, open-source build system. + CMake is a family of tools designed to build, test and package software.""" + +toolchain = {'name': 'intel', 'version': '2015b'} + +source_urls = ['http://www.cmake.org/files/v%(version_major_minor)s'] +sources = [SOURCELOWER_TAR_GZ] + +configopts = '-- -DCMAKE_USE_OPENSSL=1' + +dependencies = [ + ('ncurses', '5.9'), + # OS dependency should be preferred if the os version is more recent then this version, + # it's nice to have an up to date openssl for security reasons + #('OpenSSL', '1.0.1p'), +] + +osdependencies = [('openssl-devel', 'libssl-dev', 'libopenssl-devel')] + +sanity_check_paths = { + 'files': ["bin/%s" % x for x in ['cmake', 'cpack', 'ctest']], + 'dirs': [], +} + +moduleclass = 'devel' diff --git a/c/CMake/CMake-3.4.0-intel-2015b.eb b/c/CMake/CMake-3.4.0-intel-2015b.eb new file mode 100644 index 00000000..21bbc293 --- /dev/null +++ b/c/CMake/CMake-3.4.0-intel-2015b.eb @@ -0,0 +1,31 @@ +easyblock = 'ConfigureMake' + +name = 'CMake' +version = '3.4.0' + +homepage = 'http://www.cmake.org' +description = """CMake, the cross-platform, open-source build system. + CMake is a family of tools designed to build, test and package software.""" + +toolchain = {'name': 'intel', 'version': '2015b'} + +source_urls = ['http://www.cmake.org/files/v%(version_major_minor)s'] +sources = [SOURCELOWER_TAR_GZ] + +configopts = '-- -DCMAKE_USE_OPENSSL=1' + +dependencies = [ + ('ncurses', '5.9'), + # OS dependency should be preferred if the os version is more recent then this version, + # it's nice to have an up to date openssl for security reasons + #('OpenSSL', '1.0.1p'), +] + +osdependencies = [('openssl-devel', 'libssl-dev', 'libopenssl-devel')] + +sanity_check_paths = { + 'files': ["bin/%s" % x for x in ['cmake', 'cpack', 'ctest']], + 'dirs': [], +} + +moduleclass = 'devel' diff --git a/c/CMake/CMake-3.4.1-GCC-4.9.2.eb b/c/CMake/CMake-3.4.1-GCC-4.9.2.eb new file mode 100644 index 00000000..cb117db3 --- /dev/null +++ b/c/CMake/CMake-3.4.1-GCC-4.9.2.eb @@ -0,0 +1,22 @@ +easyblock = 'ConfigureMake' + +name = 'CMake' +version = '3.4.1' + +homepage = 'http://www.cmake.org' +description = """CMake, the cross-platform, open-source build system. + CMake is a family of tools designed to build, test and package software.""" + +toolchain = {'name': 'GCC', 'version': '4.9.2'} + +source_urls = ['http://www.cmake.org/files/v%(version_major_minor)s'] +sources = [SOURCELOWER_TAR_GZ] + +dependencies = [('ncurses', '5.9')] + +sanity_check_paths = { + 'files': ["bin/%s" % x for x in ['cmake', 'cpack', 'ctest']], + 'dirs': [], +} + +moduleclass = 'devel' diff --git a/c/CMake/CMake-3.4.1-GCCcore-4.9.3.eb b/c/CMake/CMake-3.4.1-GCCcore-4.9.3.eb new file mode 100644 index 00000000..1a599467 --- /dev/null +++ b/c/CMake/CMake-3.4.1-GCCcore-4.9.3.eb @@ -0,0 +1,33 @@ +easyblock = 'ConfigureMake' + +name = 'CMake' +version = '3.4.1' + +homepage = 'http://www.cmake.org' +description = """CMake, the cross-platform, open-source build system. + CMake is a family of tools designed to build, test and package software.""" + +toolchain = {'name': 'GCCcore', 'version': '4.9.3'} + +source_urls = ['http://www.cmake.org/files/v%(version_major_minor)s'] +sources = [SOURCELOWER_TAR_GZ] + +builddependencies = [('binutils', '2.25')] + +configopts = '-- -DCMAKE_USE_OPENSSL=1' + +dependencies = [ + ('ncurses', '6.0'), + # OS dependency should be preferred if the os version is more recent then this version, + # it's nice to have an up to date openssl for security reasons + #('OpenSSL', '1.0.1p'), +] + +osdependencies = [('openssl-devel', 'libssl-dev', 'libopenssl-devel')] + +sanity_check_paths = { + 'files': ["bin/%s" % x for x in ['cmake', 'cpack', 'ctest']], + 'dirs': [], +} + +moduleclass = 'devel' diff --git a/c/CMake/CMake-3.4.1-foss-2015a.eb b/c/CMake/CMake-3.4.1-foss-2015a.eb new file mode 100644 index 00000000..4f9c1dcf --- /dev/null +++ b/c/CMake/CMake-3.4.1-foss-2015a.eb @@ -0,0 +1,28 @@ +easyblock = 'ConfigureMake' + +name = 'CMake' +version = '3.4.1' + +homepage = 'http://www.cmake.org' +description = """CMake, the cross-platform, open-source build system. + CMake is a family of tools designed to build, test and package software.""" + +toolchain = {'name': 'foss', 'version': '2015a'} + +source_urls = ['http://www.cmake.org/files/v%(version_major_minor)s'] +sources = [SOURCELOWER_TAR_GZ] + +configopts = '-- -DCMAKE_USE_OPENSSL=1' + +dependencies = [ + ('ncurses', '5.9'), +] + +osdependencies = [('openssl-devel', 'libssl-dev', 'libopenssl-devel')] + +sanity_check_paths = { + 'files': ["bin/%s" % x for x in ['cmake', 'cpack', 'ctest']], + 'dirs': [], +} + +moduleclass = 'devel' diff --git a/c/CMake/CMake-3.4.1-foss-2015b.eb b/c/CMake/CMake-3.4.1-foss-2015b.eb new file mode 100644 index 00000000..5702e997 --- /dev/null +++ b/c/CMake/CMake-3.4.1-foss-2015b.eb @@ -0,0 +1,31 @@ +easyblock = 'ConfigureMake' + +name = 'CMake' +version = '3.4.1' + +homepage = 'http://www.cmake.org' +description = """CMake, the cross-platform, open-source build system. + CMake is a family of tools designed to build, test and package software.""" + +toolchain = {'name': 'foss', 'version': '2015b'} + +source_urls = ['http://www.cmake.org/files/v%(version_major_minor)s'] +sources = [SOURCELOWER_TAR_GZ] + +configopts = '-- -DCMAKE_USE_OPENSSL=1' + +dependencies = [ + ('ncurses', '5.9'), + # OS dependency should be preferred if the os version is more recent then this version, + # it's nice to have an up to date openssl for security reasons + #('OpenSSL', '1.0.1p'), +] + +osdependencies = [('openssl-devel', 'libssl-dev', 'libopenssl-devel')] + +sanity_check_paths = { + 'files': ["bin/%s" % x for x in ['cmake', 'cpack', 'ctest']], + 'dirs': [], +} + +moduleclass = 'devel' diff --git a/c/CMake/CMake-3.4.1-foss-2016a.eb b/c/CMake/CMake-3.4.1-foss-2016a.eb new file mode 100644 index 00000000..87dc8ebe --- /dev/null +++ b/c/CMake/CMake-3.4.1-foss-2016a.eb @@ -0,0 +1,31 @@ +easyblock = 'ConfigureMake' + +name = 'CMake' +version = '3.4.1' + +homepage = 'http://www.cmake.org' +description = """CMake, the cross-platform, open-source build system. + CMake is a family of tools designed to build, test and package software.""" + +toolchain = {'name': 'foss', 'version': '2016a'} + +source_urls = ['http://www.cmake.org/files/v%(version_major_minor)s'] +sources = [SOURCELOWER_TAR_GZ] + +configopts = '-- -DCMAKE_USE_OPENSSL=1' + +dependencies = [ + ('ncurses', '6.0'), + # OS dependency should be preferred if the os version is more recent then this version, + # it's nice to have an up to date openssl for security reasons + #('OpenSSL', '1.0.1p'), +] + +osdependencies = [('openssl-devel', 'libssl-dev', 'libopenssl-devel')] + +sanity_check_paths = { + 'files': ["bin/%s" % x for x in ['cmake', 'cpack', 'ctest']], + 'dirs': [], +} + +moduleclass = 'devel' diff --git a/c/CMake/CMake-3.4.1-intel-2015b.eb b/c/CMake/CMake-3.4.1-intel-2015b.eb new file mode 100644 index 00000000..638514df --- /dev/null +++ b/c/CMake/CMake-3.4.1-intel-2015b.eb @@ -0,0 +1,31 @@ +easyblock = 'ConfigureMake' + +name = 'CMake' +version = '3.4.1' + +homepage = 'http://www.cmake.org' +description = """CMake, the cross-platform, open-source build system. + CMake is a family of tools designed to build, test and package software.""" + +toolchain = {'name': 'intel', 'version': '2015b'} + +source_urls = ['http://www.cmake.org/files/v%(version_major_minor)s'] +sources = [SOURCELOWER_TAR_GZ] + +configopts = '-- -DCMAKE_USE_OPENSSL=1' + +dependencies = [ + ('ncurses', '5.9'), + # OS dependency should be preferred if the os version is more recent then this version, + # it's nice to have an up to date openssl for security reasons + #('OpenSSL', '1.0.1p'), +] + +osdependencies = [('openssl-devel', 'libssl-dev', 'libopenssl-devel')] + +sanity_check_paths = { + 'files': ["bin/%s" % x for x in ['cmake', 'cpack', 'ctest']], + 'dirs': [], +} + +moduleclass = 'devel' diff --git a/c/CMake/CMake-3.4.1-intel-2016.02-GCC-4.9.eb b/c/CMake/CMake-3.4.1-intel-2016.02-GCC-4.9.eb new file mode 100644 index 00000000..df5823de --- /dev/null +++ b/c/CMake/CMake-3.4.1-intel-2016.02-GCC-4.9.eb @@ -0,0 +1,31 @@ +easyblock = 'ConfigureMake' + +name = 'CMake' +version = '3.4.1' + +homepage = 'http://www.cmake.org' +description = """CMake, the cross-platform, open-source build system. + CMake is a family of tools designed to build, test and package software.""" + +toolchain = {'name': 'intel', 'version': '2016.02-GCC-4.9'} + +source_urls = ['http://www.cmake.org/files/v%(version_major_minor)s'] +sources = [SOURCELOWER_TAR_GZ] + +configopts = '-- -DCMAKE_USE_OPENSSL=1' + +dependencies = [ + ('ncurses', '6.0'), + # OS dependency should be preferred if the os version is more recent then this version, + # it's nice to have an up to date openssl for security reasons + #('OpenSSL', '1.0.1p'), +] + +osdependencies = [('openssl-devel', 'libssl-dev', 'libopenssl-devel')] + +sanity_check_paths = { + 'files': ["bin/%s" % x for x in ['cmake', 'cpack', 'ctest']], + 'dirs': [], +} + +moduleclass = 'devel' diff --git a/c/CMake/CMake-3.4.1-intel-2016a.eb b/c/CMake/CMake-3.4.1-intel-2016a.eb new file mode 100644 index 00000000..db841bba --- /dev/null +++ b/c/CMake/CMake-3.4.1-intel-2016a.eb @@ -0,0 +1,31 @@ +easyblock = 'ConfigureMake' + +name = 'CMake' +version = '3.4.1' + +homepage = 'http://www.cmake.org' +description = """CMake, the cross-platform, open-source build system. + CMake is a family of tools designed to build, test and package software.""" + +toolchain = {'name': 'intel', 'version': '2016a'} + +source_urls = ['http://www.cmake.org/files/v%(version_major_minor)s'] +sources = [SOURCELOWER_TAR_GZ] + +configopts = '-- -DCMAKE_USE_OPENSSL=1' + +dependencies = [ + ('ncurses', '6.0'), + # OS dependency should be preferred if the os version is more recent then this version, + # it's nice to have an up to date openssl for security reasons + #('OpenSSL', '1.0.1p'), +] + +osdependencies = [('openssl-devel', 'libssl-dev', 'libopenssl-devel')] + +sanity_check_paths = { + 'files': ["bin/%s" % x for x in ['cmake', 'cpack', 'ctest']], + 'dirs': [], +} + +moduleclass = 'devel' diff --git a/c/CMake/CMake-3.4.1-iomkl-2016.07.eb b/c/CMake/CMake-3.4.1-iomkl-2016.07.eb new file mode 100644 index 00000000..0204c038 --- /dev/null +++ b/c/CMake/CMake-3.4.1-iomkl-2016.07.eb @@ -0,0 +1,31 @@ +easyblock = 'ConfigureMake' + +name = 'CMake' +version = '3.4.1' + +homepage = 'http://www.cmake.org' +description = """CMake, the cross-platform, open-source build system. + CMake is a family of tools designed to build, test and package software.""" + +toolchain = {'name': 'iomkl', 'version': '2016.07'} + +source_urls = ['http://www.cmake.org/files/v%(version_major_minor)s'] +sources = [SOURCELOWER_TAR_GZ] + +configopts = '-- -DCMAKE_USE_OPENSSL=1' + +dependencies = [ + ('ncurses', '6.0'), + # OS dependency should be preferred if the os version is more recent then this version, + # it's nice to have an up to date openssl for security reasons + #('OpenSSL', '1.0.1p'), +] + +osdependencies = [('openssl-devel', 'libssl-dev', 'libopenssl-devel')] + +sanity_check_paths = { + 'files': ["bin/%s" % x for x in ['cmake', 'cpack', 'ctest']], + 'dirs': [], +} + +moduleclass = 'devel' diff --git a/c/CMake/CMake-3.4.1-iomkl-2016.09-GCC-4.9.3-2.25.eb b/c/CMake/CMake-3.4.1-iomkl-2016.09-GCC-4.9.3-2.25.eb new file mode 100644 index 00000000..36a239c2 --- /dev/null +++ b/c/CMake/CMake-3.4.1-iomkl-2016.09-GCC-4.9.3-2.25.eb @@ -0,0 +1,31 @@ +easyblock = 'ConfigureMake' + +name = 'CMake' +version = '3.4.1' + +homepage = 'http://www.cmake.org' +description = """CMake, the cross-platform, open-source build system. + CMake is a family of tools designed to build, test and package software.""" + +toolchain = {'name': 'iomkl', 'version': '2016.09-GCC-4.9.3-2.25'} + +source_urls = ['http://www.cmake.org/files/v%(version_major_minor)s'] +sources = [SOURCELOWER_TAR_GZ] + +configopts = '-- -DCMAKE_USE_OPENSSL=1' + +dependencies = [ + ('ncurses', '6.0'), + # OS dependency should be preferred if the os version is more recent then this version, + # it's nice to have an up to date openssl for security reasons + #('OpenSSL', '1.0.1p'), +] + +osdependencies = [('openssl-devel', 'libssl-dev', 'libopenssl-devel')] + +sanity_check_paths = { + 'files': ["bin/%s" % x for x in ['cmake', 'cpack', 'ctest']], + 'dirs': [], +} + +moduleclass = 'devel' diff --git a/c/CMake/CMake-3.4.3-foss-2016a.eb b/c/CMake/CMake-3.4.3-foss-2016a.eb new file mode 100644 index 00000000..e6beb92b --- /dev/null +++ b/c/CMake/CMake-3.4.3-foss-2016a.eb @@ -0,0 +1,31 @@ +easyblock = 'ConfigureMake' + +name = 'CMake' +version = '3.4.3' + +homepage = 'http://www.cmake.org' +description = """CMake, the cross-platform, open-source build system. + CMake is a family of tools designed to build, test and package software.""" + +toolchain = {'name': 'foss', 'version': '2016a'} + +source_urls = ['http://www.cmake.org/files/v%(version_major_minor)s'] +sources = [SOURCELOWER_TAR_GZ] + +configopts = '-- -DCMAKE_USE_OPENSSL=1' + +dependencies = [ + ('ncurses', '6.0'), + # OS dependency should be preferred if the os version is more recent then this version, + # it's nice to have an up to date openssl for security reasons + #('OpenSSL', '1.0.1p'), +] + +osdependencies = [('openssl-devel', 'libssl-dev', 'libopenssl-devel')] + +sanity_check_paths = { + 'files': ["bin/%s" % x for x in ['cmake', 'cpack', 'ctest']], + 'dirs': [], +} + +moduleclass = 'devel' diff --git a/c/CMake/CMake-3.4.3-foss-2016b.eb b/c/CMake/CMake-3.4.3-foss-2016b.eb new file mode 100644 index 00000000..cfb29da8 --- /dev/null +++ b/c/CMake/CMake-3.4.3-foss-2016b.eb @@ -0,0 +1,31 @@ +easyblock = 'ConfigureMake' + +name = 'CMake' +version = '3.4.3' + +homepage = 'http://www.cmake.org' +description = """CMake, the cross-platform, open-source build system. + CMake is a family of tools designed to build, test and package software.""" + +toolchain = {'name': 'foss', 'version': '2016b'} + +source_urls = ['http://www.cmake.org/files/v%(version_major_minor)s'] +sources = [SOURCELOWER_TAR_GZ] + +configopts = '-- -DCMAKE_USE_OPENSSL=1' + +dependencies = [ + ('ncurses', '6.0'), + # OS dependency should be preferred if the os version is more recent then this version, + # it's nice to have an up to date openssl for security reasons + #('OpenSSL', '1.0.1p'), +] + +osdependencies = [('openssl-devel', 'libssl-dev', 'libopenssl-devel')] + +sanity_check_paths = { + 'files': ["bin/%s" % x for x in ['cmake', 'cpack', 'ctest']], + 'dirs': [], +} + +moduleclass = 'devel' diff --git a/c/CMake/CMake-3.4.3-gimkl-2.11.5.eb b/c/CMake/CMake-3.4.3-gimkl-2.11.5.eb new file mode 100644 index 00000000..f5527c16 --- /dev/null +++ b/c/CMake/CMake-3.4.3-gimkl-2.11.5.eb @@ -0,0 +1,31 @@ +easyblock = 'ConfigureMake' + +name = 'CMake' +version = '3.4.3' + +homepage = 'http://www.cmake.org' +description = """CMake, the cross-platform, open-source build system. + CMake is a family of tools designed to build, test and package software.""" + +toolchain = {'name': 'gimkl', 'version': '2.11.5'} + +source_urls = ['http://www.cmake.org/files/v%(version_major_minor)s'] +sources = [SOURCELOWER_TAR_GZ] + +configopts = '-- -DCMAKE_USE_OPENSSL=1' + +dependencies = [ + ('ncurses', '5.9'), + # OS dependency should be preferred if the os version is more recent then this version, + # it's nice to have an up to date openssl for security reasons + #('OpenSSL', '1.0.1p'), +] + +osdependencies = [('openssl-devel', 'libssl-dev', 'libopenssl-devel')] + +sanity_check_paths = { + 'files': ["bin/%s" % x for x in ['cmake', 'cpack', 'ctest']], + 'dirs': [], +} + +moduleclass = 'devel' diff --git a/c/CMake/CMake-3.4.3-goolf-1.7.20.eb b/c/CMake/CMake-3.4.3-goolf-1.7.20.eb new file mode 100644 index 00000000..383be7ac --- /dev/null +++ b/c/CMake/CMake-3.4.3-goolf-1.7.20.eb @@ -0,0 +1,31 @@ +easyblock = 'ConfigureMake' + +name = 'CMake' +version = '3.4.3' + +homepage = 'http://www.cmake.org' +description = """CMake, the cross-platform, open-source build system. + CMake is a family of tools designed to build, test and package software.""" + +toolchain = {'name': 'goolf', 'version': '1.7.20'} + +source_urls = ['http://www.cmake.org/files/v%(version_major_minor)s'] +sources = [SOURCELOWER_TAR_GZ] + +configopts = '-- -DCMAKE_USE_OPENSSL=1' + +dependencies = [ + ('ncurses', '5.9'), + # OS dependency should be preferred if the os version is more recent then this version, + # it's nice to have an up to date openssl for security reasons + #('OpenSSL', '1.0.1p'), +] + +osdependencies = [('openssl-devel', 'libssl-dev', 'libopenssl-devel')] + +sanity_check_paths = { + 'files': ["bin/%s" % x for x in ['cmake', 'cpack', 'ctest']], + 'dirs': [], +} + +moduleclass = 'devel' diff --git a/c/CMake/CMake-3.4.3-ictce-7.3.5.eb b/c/CMake/CMake-3.4.3-ictce-7.3.5.eb new file mode 100644 index 00000000..7deb175b --- /dev/null +++ b/c/CMake/CMake-3.4.3-ictce-7.3.5.eb @@ -0,0 +1,31 @@ +easyblock = 'ConfigureMake' + +name = 'CMake' +version = '3.4.3' + +homepage = 'http://www.cmake.org' +description = """CMake, the cross-platform, open-source build system. + CMake is a family of tools designed to build, test and package software.""" + +toolchain = {'name': 'ictce', 'version': '7.3.5'} + +source_urls = ['http://www.cmake.org/files/v%(version_major_minor)s'] +sources = [SOURCELOWER_TAR_GZ] + +configopts = '-- -DCMAKE_USE_OPENSSL=1' + +dependencies = [ + ('ncurses', '5.9'), + # OS dependency should be preferred if the os version is more recent then this version, + # it's nice to have an up to date openssl for security reasons + #('OpenSSL', '1.0.1k'), +] + +osdependencies = [('openssl-devel', 'libssl-dev', 'libopenssl-devel')] + +sanity_check_paths = { + 'files': ["bin/%s" % x for x in ['cmake', 'cpack', 'ctest']], + 'dirs': [], +} + +moduleclass = 'devel' diff --git a/c/CMake/CMake-3.4.3-intel-2016a.eb b/c/CMake/CMake-3.4.3-intel-2016a.eb new file mode 100644 index 00000000..31b70f1b --- /dev/null +++ b/c/CMake/CMake-3.4.3-intel-2016a.eb @@ -0,0 +1,31 @@ +easyblock = 'ConfigureMake' + +name = 'CMake' +version = '3.4.3' + +homepage = 'http://www.cmake.org' +description = """CMake, the cross-platform, open-source build system. + CMake is a family of tools designed to build, test and package software.""" + +toolchain = {'name': 'intel', 'version': '2016a'} + +source_urls = ['http://www.cmake.org/files/v%(version_major_minor)s'] +sources = [SOURCELOWER_TAR_GZ] + +configopts = '-- -DCMAKE_USE_OPENSSL=1' + +dependencies = [ + ('ncurses', '6.0'), + # OS dependency should be preferred if the os version is more recent then this version, + # it's nice to have an up to date openssl for security reasons + #('OpenSSL', '1.0.1p'), +] + +osdependencies = [('openssl-devel', 'libssl-dev', 'libopenssl-devel')] + +sanity_check_paths = { + 'files': ["bin/%s" % x for x in ['cmake', 'cpack', 'ctest']], + 'dirs': [], +} + +moduleclass = 'devel' diff --git a/c/CMake/CMake-3.5.0-CrayGNU-2015.11.eb b/c/CMake/CMake-3.5.0-CrayGNU-2015.11.eb new file mode 100644 index 00000000..c7cd4a57 --- /dev/null +++ b/c/CMake/CMake-3.5.0-CrayGNU-2015.11.eb @@ -0,0 +1,23 @@ +# Contributed by Luca Marsella (CSCS) +easyblock = 'ConfigureMake' + +name = 'CMake' +version = '3.5.0' + +homepage = 'http://www.cmake.org' +description = """CMake, the cross-platform, open-source build system. + CMake is a family of tools designed to build, test and package software.""" + +toolchain = {'name': 'CrayGNU', 'version': '2015.11'} + +source_urls = ['http://www.cmake.org/files/v%(version_major_minor)s'] +sources = [SOURCELOWER_TAR_GZ] + +dependencies = [('ncurses', '5.9')] + +sanity_check_paths = { + 'files': ["bin/%s" % x for x in ['cmake', 'cpack', 'ctest']], + 'dirs': [], +} + +moduleclass = 'devel' diff --git a/c/CMake/CMake-3.5.0-CrayGNU-2016.03.eb b/c/CMake/CMake-3.5.0-CrayGNU-2016.03.eb new file mode 100644 index 00000000..f9e868c7 --- /dev/null +++ b/c/CMake/CMake-3.5.0-CrayGNU-2016.03.eb @@ -0,0 +1,23 @@ +# Contributed by Luca Marsella (CSCS) +easyblock = 'ConfigureMake' + +name = 'CMake' +version = '3.5.0' + +homepage = 'http://www.cmake.org' +description = """CMake, the cross-platform, open-source build system. + CMake is a family of tools designed to build, test and package software.""" + +toolchain = {'name': 'CrayGNU', 'version': '2016.03'} + +source_urls = ['http://www.cmake.org/files/v%(version_major_minor)s'] +sources = [SOURCELOWER_TAR_GZ] + +dependencies = [('ncurses', '6.0')] + +sanity_check_paths = { + 'files': ["bin/%s" % x for x in ['cmake', 'cpack', 'ctest']], + 'dirs': [], +} + +moduleclass = 'devel' diff --git a/c/CMake/CMake-3.5.1-intel-2016a.eb b/c/CMake/CMake-3.5.1-intel-2016a.eb new file mode 100644 index 00000000..a7044137 --- /dev/null +++ b/c/CMake/CMake-3.5.1-intel-2016a.eb @@ -0,0 +1,31 @@ +easyblock = 'ConfigureMake' + +name = 'CMake' +version = '3.5.1' + +homepage = 'http://www.cmake.org' +description = """CMake, the cross-platform, open-source build system. + CMake is a family of tools designed to build, test and package software.""" + +toolchain = {'name': 'intel', 'version': '2016a'} + +source_urls = ['http://www.cmake.org/files/v%(version_major_minor)s'] +sources = [SOURCELOWER_TAR_GZ] + +configopts = '-- -DCMAKE_USE_OPENSSL=1' + +dependencies = [ + ('ncurses', '6.0'), + # OS dependency should be preferred if the os version is more recent then this version, + # it's nice to have an up to date openssl for security reasons + #('OpenSSL', '1.0.1s'), +] + +osdependencies = [('openssl-devel', 'libssl-dev', 'libopenssl-devel')] + +sanity_check_paths = { + 'files': ["bin/%s" % x for x in ['cmake', 'cpack', 'ctest']], + 'dirs': [], +} + +moduleclass = 'devel' diff --git a/c/CMake/CMake-3.5.2-GCC-4.9.3-2.25.eb b/c/CMake/CMake-3.5.2-GCC-4.9.3-2.25.eb new file mode 100644 index 00000000..619aaa3a --- /dev/null +++ b/c/CMake/CMake-3.5.2-GCC-4.9.3-2.25.eb @@ -0,0 +1,31 @@ +easyblock = 'ConfigureMake' + +name = 'CMake' +version = '3.5.2' + +homepage = 'http://www.cmake.org' +description = """CMake, the cross-platform, open-source build system. + CMake is a family of tools designed to build, test and package software.""" + +toolchain = {'name': 'GCC', 'version': '4.9.3-2.25'} + +source_urls = ['http://www.cmake.org/files/v%(version_major_minor)s'] +sources = [SOURCELOWER_TAR_GZ] + +configopts = '-- -DCMAKE_USE_OPENSSL=1' + +dependencies = [ + ('ncurses', '6.0', '', ('GCCcore', '4.9.3')), + # OS dependency should be preferred if the os version is more recent then this version, + # it's nice to have an up to date openssl for security reasons + #('OpenSSL', '1.0.1s'), +] + +osdependencies = [('openssl-devel', 'libssl-dev', 'libopenssl-devel')] + +sanity_check_paths = { + 'files': ["bin/%s" % x for x in ['cmake', 'cpack', 'ctest']], + 'dirs': [], +} + +moduleclass = 'devel' diff --git a/c/CMake/CMake-3.5.2-foss-2016a.eb b/c/CMake/CMake-3.5.2-foss-2016a.eb new file mode 100644 index 00000000..9075c094 --- /dev/null +++ b/c/CMake/CMake-3.5.2-foss-2016a.eb @@ -0,0 +1,31 @@ +easyblock = 'ConfigureMake' + +name = 'CMake' +version = '3.5.2' + +homepage = 'http://www.cmake.org' +description = """CMake, the cross-platform, open-source build system. + CMake is a family of tools designed to build, test and package software.""" + +toolchain = {'name': 'foss', 'version': '2016a'} + +source_urls = ['http://www.cmake.org/files/v%(version_major_minor)s'] +sources = [SOURCELOWER_TAR_GZ] + +configopts = '-- -DCMAKE_USE_OPENSSL=1' + +dependencies = [ + ('ncurses', '6.0'), + # OS dependency should be preferred if the os version is more recent then this version, + # it's nice to have an up to date openssl for security reasons + #('OpenSSL', '1.0.1s'), +] + +osdependencies = [('openssl-devel', 'libssl-dev', 'libopenssl-devel')] + +sanity_check_paths = { + 'files': ["bin/%s" % x for x in ['cmake', 'cpack', 'ctest']], + 'dirs': [], +} + +moduleclass = 'devel' diff --git a/c/CMake/CMake-3.5.2-foss-2016b.eb b/c/CMake/CMake-3.5.2-foss-2016b.eb new file mode 100644 index 00000000..42e9b3b3 --- /dev/null +++ b/c/CMake/CMake-3.5.2-foss-2016b.eb @@ -0,0 +1,31 @@ +easyblock = 'ConfigureMake' + +name = 'CMake' +version = '3.5.2' + +homepage = 'http://www.cmake.org' +description = """CMake, the cross-platform, open-source build system. + CMake is a family of tools designed to build, test and package software.""" + +toolchain = {'name': 'foss', 'version': '2016b'} + +source_urls = ['http://www.cmake.org/files/v%(version_major_minor)s'] +sources = [SOURCELOWER_TAR_GZ] + +configopts = '-- -DCMAKE_USE_OPENSSL=1' + +dependencies = [ + ('ncurses', '6.0'), + # OS dependency should be preferred if the os version is more recent then this version, + # it's nice to have an up to date openssl for security reasons + #('OpenSSL', '1.0.1s'), +] + +osdependencies = [('openssl-devel', 'libssl-dev', 'libopenssl-devel')] + +sanity_check_paths = { + 'files': ["bin/%s" % x for x in ['cmake', 'cpack', 'ctest']], + 'dirs': [], +} + +moduleclass = 'devel' diff --git a/c/CMake/CMake-3.5.2-goolf-1.7.20.eb b/c/CMake/CMake-3.5.2-goolf-1.7.20.eb new file mode 100644 index 00000000..1f3daa32 --- /dev/null +++ b/c/CMake/CMake-3.5.2-goolf-1.7.20.eb @@ -0,0 +1,31 @@ +easyblock = 'ConfigureMake' + +name = 'CMake' +version = '3.5.2' + +homepage = 'http://www.cmake.org' +description = """CMake, the cross-platform, open-source build system. + CMake is a family of tools designed to build, test and package software.""" + +toolchain = {'name': 'goolf', 'version': '1.7.20'} + +source_urls = ['http://www.cmake.org/files/v%(version_major_minor)s'] +sources = [SOURCELOWER_TAR_GZ] + +configopts = '-- -DCMAKE_USE_OPENSSL=1' + +dependencies = [ + ('ncurses', '5.9'), + # OS dependency should be preferred if the os version is more recent then this version, + # it's nice to have an up to date openssl for security reasons + #('OpenSSL', '1.0.1s'), +] + +osdependencies = [('openssl-devel', 'libssl-dev', 'libopenssl-devel')] + +sanity_check_paths = { + 'files': ["bin/%s" % x for x in ['cmake', 'cpack', 'ctest']], + 'dirs': [], +} + +moduleclass = 'devel' diff --git a/c/CMake/CMake-3.5.2-intel-2016a.eb b/c/CMake/CMake-3.5.2-intel-2016a.eb new file mode 100644 index 00000000..6d07f31e --- /dev/null +++ b/c/CMake/CMake-3.5.2-intel-2016a.eb @@ -0,0 +1,31 @@ +easyblock = 'ConfigureMake' + +name = 'CMake' +version = '3.5.2' + +homepage = 'http://www.cmake.org' +description = """CMake, the cross-platform, open-source build system. + CMake is a family of tools designed to build, test and package software.""" + +toolchain = {'name': 'intel', 'version': '2016a'} + +source_urls = ['http://www.cmake.org/files/v%(version_major_minor)s'] +sources = [SOURCELOWER_TAR_GZ] + +configopts = '-- -DCMAKE_USE_OPENSSL=1' + +dependencies = [ + ('ncurses', '6.0'), + # OS dependency should be preferred if the os version is more recent then this version, + # it's nice to have an up to date openssl for security reasons + #('OpenSSL', '1.0.1s'), +] + +osdependencies = [('openssl-devel', 'libssl-dev', 'libopenssl-devel')] + +sanity_check_paths = { + 'files': ["bin/%s" % x for x in ['cmake', 'cpack', 'ctest']], + 'dirs': [], +} + +moduleclass = 'devel' diff --git a/c/CMake/CMake-3.5.2-intel-2016b.eb b/c/CMake/CMake-3.5.2-intel-2016b.eb new file mode 100644 index 00000000..b68274e5 --- /dev/null +++ b/c/CMake/CMake-3.5.2-intel-2016b.eb @@ -0,0 +1,31 @@ +easyblock = 'ConfigureMake' + +name = 'CMake' +version = '3.5.2' + +homepage = 'http://www.cmake.org' +description = """CMake, the cross-platform, open-source build system. + CMake is a family of tools designed to build, test and package software.""" + +toolchain = {'name': 'intel', 'version': '2016b'} + +source_urls = ['http://www.cmake.org/files/v%(version_major_minor)s'] +sources = [SOURCELOWER_TAR_GZ] + +configopts = '-- -DCMAKE_USE_OPENSSL=1' + +dependencies = [ + ('ncurses', '6.0'), + # OS dependency should be preferred if the os version is more recent then this version, + # it's nice to have an up to date openssl for security reasons + #('OpenSSL', '1.0.1s'), +] + +osdependencies = [('openssl-devel', 'libssl-dev', 'libopenssl-devel')] + +sanity_check_paths = { + 'files': ["bin/%s" % x for x in ['cmake', 'cpack', 'ctest']], + 'dirs': [], +} + +moduleclass = 'devel' diff --git a/c/CMake/CMake-3.5.2-intel-2017.00.eb b/c/CMake/CMake-3.5.2-intel-2017.00.eb new file mode 100644 index 00000000..52fa85cc --- /dev/null +++ b/c/CMake/CMake-3.5.2-intel-2017.00.eb @@ -0,0 +1,31 @@ +easyblock = 'ConfigureMake' + +name = 'CMake' +version = '3.5.2' + +homepage = 'http://www.cmake.org' +description = """CMake, the cross-platform, open-source build system. + CMake is a family of tools designed to build, test and package software.""" + +toolchain = {'name': 'intel', 'version': '2017.00'} + +source_urls = ['http://www.cmake.org/files/v%(version_major_minor)s'] +sources = [SOURCELOWER_TAR_GZ] + +configopts = '-- -DCMAKE_USE_OPENSSL=1' + +dependencies = [ + ('ncurses', '6.0'), + # OS dependency should be preferred if the os version is more recent then this version, + # it's nice to have an up to date openssl for security reasons + #('OpenSSL', '1.0.1s'), +] + +osdependencies = [('openssl-devel', 'libssl-dev', 'libopenssl-devel')] + +sanity_check_paths = { + 'files': ["bin/%s" % x for x in ['cmake', 'cpack', 'ctest']], + 'dirs': [], +} + +moduleclass = 'devel' diff --git a/c/CMake/CMake-3.5.2.eb b/c/CMake/CMake-3.5.2.eb new file mode 100644 index 00000000..412e055d --- /dev/null +++ b/c/CMake/CMake-3.5.2.eb @@ -0,0 +1,22 @@ +easyblock = 'ConfigureMake' + +name = 'CMake' +version = '3.5.2' + +homepage = 'http://www.cmake.org' +description = """CMake, the cross-platform, open-source build system. + CMake is a family of tools designed to build, test and package software.""" + +toolchain = {'name': 'dummy', 'version': ''} + +source_urls = ['http://www.cmake.org/files/v%(version_major_minor)s'] +sources = [SOURCELOWER_TAR_GZ] + +dependencies = [('ncurses', '6.0')] + +sanity_check_paths = { + 'files': ["bin/%s" % x for x in ['cmake', 'cpack', 'ctest']], + 'dirs': [], +} + +moduleclass = 'devel' diff --git a/c/CMake/CMake-3.6.1-GCC-5.4.0-2.26.eb b/c/CMake/CMake-3.6.1-GCC-5.4.0-2.26.eb new file mode 100644 index 00000000..97b22823 --- /dev/null +++ b/c/CMake/CMake-3.6.1-GCC-5.4.0-2.26.eb @@ -0,0 +1,31 @@ +easyblock = 'ConfigureMake' + +name = 'CMake' +version = '3.6.1' + +homepage = 'http://www.cmake.org' +description = """CMake, the cross-platform, open-source build system. + CMake is a family of tools designed to build, test and package software.""" + +toolchain = {'name': 'GCC', 'version': '5.4.0-2.26'} + +source_urls = ['http://www.cmake.org/files/v%(version_major_minor)s'] +sources = [SOURCELOWER_TAR_GZ] + +configopts = '-- -DCMAKE_USE_OPENSSL=1' + +dependencies = [ + ('ncurses', '6.0'), + # OS dependency should be preferred if the os version is more recent then this version, + # it's nice to have an up to date openssl for security reasons + #('OpenSSL', '1.0.1s'), +] + +osdependencies = [('openssl-devel', 'libssl-dev', 'libopenssl-devel')] + +sanity_check_paths = { + 'files': ["bin/%s" % x for x in ['cmake', 'cpack', 'ctest']], + 'dirs': [], +} + +moduleclass = 'devel' diff --git a/c/CMake/CMake-3.6.1-GCCcore-4.9.3.eb b/c/CMake/CMake-3.6.1-GCCcore-4.9.3.eb new file mode 100644 index 00000000..d5ca429e --- /dev/null +++ b/c/CMake/CMake-3.6.1-GCCcore-4.9.3.eb @@ -0,0 +1,35 @@ +easyblock = 'ConfigureMake' + +name = 'CMake' +version = '3.6.1' + +homepage = 'http://www.cmake.org' +description = """CMake, the cross-platform, open-source build system. + CMake is a family of tools designed to build, test and package software.""" + +toolchain = {'name': 'GCCcore', 'version': '4.9.3'} + +source_urls = ['http://www.cmake.org/files/v%(version_major_minor)s'] +sources = [SOURCELOWER_TAR_GZ] + +configopts = '-- -DCMAKE_USE_OPENSSL=1' + +builddependencies = [ + ('binutils', '2.25'), +] + +dependencies = [ + ('ncurses', '6.0'), + # OS dependency should be preferred if the os version is more recent then this version, + # it's nice to have an up to date openssl for security reasons + #('OpenSSL', '1.0.1p'), +] + +osdependencies = [('openssl-devel', 'libssl-dev', 'libopenssl-devel')] + +sanity_check_paths = { + 'files': ["bin/%s" % x for x in ['cmake', 'cpack', 'ctest']], + 'dirs': [], +} + +moduleclass = 'devel' diff --git a/c/CMake/CMake-3.6.1-foss-2016b.eb b/c/CMake/CMake-3.6.1-foss-2016b.eb new file mode 100644 index 00000000..c1386c78 --- /dev/null +++ b/c/CMake/CMake-3.6.1-foss-2016b.eb @@ -0,0 +1,31 @@ +easyblock = 'ConfigureMake' + +name = 'CMake' +version = '3.6.1' + +homepage = 'http://www.cmake.org' +description = """CMake, the cross-platform, open-source build system. + CMake is a family of tools designed to build, test and package software.""" + +toolchain = {'name': 'foss', 'version': '2016b'} + +source_urls = ['http://www.cmake.org/files/v%(version_major_minor)s'] +sources = [SOURCELOWER_TAR_GZ] + +configopts = '-- -DCMAKE_USE_OPENSSL=1' + +dependencies = [ + ('ncurses', '6.0'), + # OS dependency should be preferred if the os version is more recent then this version, + # it's nice to have an up to date openssl for security reasons + #('OpenSSL', '1.0.1s'), +] + +osdependencies = [('openssl-devel', 'libssl-dev', 'libopenssl-devel')] + +sanity_check_paths = { + 'files': ["bin/%s" % x for x in ['cmake', 'cpack', 'ctest']], + 'dirs': [], +} + +moduleclass = 'devel' diff --git a/c/CMake/CMake-3.6.1-intel-2016b.eb b/c/CMake/CMake-3.6.1-intel-2016b.eb new file mode 100644 index 00000000..40d915d1 --- /dev/null +++ b/c/CMake/CMake-3.6.1-intel-2016b.eb @@ -0,0 +1,33 @@ +easyblock = 'ConfigureMake' + +name = 'CMake' +version = '3.6.1' + +homepage = 'http://www.cmake.org' +description = """CMake, the cross-platform, open-source build system. + CMake is a family of tools designed to build, test and package software.""" + +toolchain = {'name': 'intel', 'version': '2016b'} + +source_urls = ['http://www.cmake.org/files/v%(version_major_minor)s'] +sources = [SOURCELOWER_TAR_GZ] + +patches = ['%(name)s-%(version)s-use-gnu11.patch'] + +configopts = '-- -DCMAKE_USE_OPENSSL=1' + +dependencies = [ + ('ncurses', '6.0'), + # OS dependency should be preferred if the os version is more recent then this version, + # it's nice to have an up to date openssl for security reasons + #('OpenSSL', '1.0.1s'), +] + +osdependencies = [('openssl-devel', 'libssl-dev', 'libopenssl-devel')] + +sanity_check_paths = { + 'files': ["bin/%s" % x for x in ['cmake', 'cpack', 'ctest']], + 'dirs': [], +} + +moduleclass = 'devel' diff --git a/c/CMake/CMake-3.6.2-GCCcore-5.4.0.eb b/c/CMake/CMake-3.6.2-GCCcore-5.4.0.eb new file mode 100644 index 00000000..aa63de70 --- /dev/null +++ b/c/CMake/CMake-3.6.2-GCCcore-5.4.0.eb @@ -0,0 +1,36 @@ +easyblock = 'ConfigureMake' + +name = 'CMake' +version = '3.6.2' + +homepage = 'http://www.cmake.org' +description = """CMake, the cross-platform, open-source build system. + CMake is a family of tools designed to build, test and package software.""" + +toolchain = {'name': 'GCCcore', 'version': '5.4.0'} + +source_urls = ['http://www.cmake.org/files/v%(version_major_minor)s'] +sources = [SOURCELOWER_TAR_GZ] + +configopts = '-- -DCMAKE_USE_OPENSSL=1' + +builddependencies = [ + ('binutils', '2.26'), +] + + +dependencies = [ + ('ncurses', '6.0'), + # OS dependency should be preferred if the os version is more recent then this version, + # it's nice to have an up to date openssl for security reasons + #('OpenSSL', '1.1.0c'), +] + +osdependencies = [('openssl-devel', 'libssl-dev', 'libopenssl-devel')] + +sanity_check_paths = { + 'files': ["bin/%s" % x for x in ['cmake', 'cpack', 'ctest']], + 'dirs': [], +} + +moduleclass = 'devel' diff --git a/c/CMake/CMake-3.6.2-foss-2016b.eb b/c/CMake/CMake-3.6.2-foss-2016b.eb new file mode 100644 index 00000000..adb07244 --- /dev/null +++ b/c/CMake/CMake-3.6.2-foss-2016b.eb @@ -0,0 +1,31 @@ +easyblock = 'ConfigureMake' + +name = 'CMake' +version = '3.6.2' + +homepage = 'http://www.cmake.org' +description = """CMake, the cross-platform, open-source build system. + CMake is a family of tools designed to build, test and package software.""" + +toolchain = {'name': 'foss', 'version': '2016b'} + +source_urls = ['http://www.cmake.org/files/v%(version_major_minor)s'] +sources = [SOURCELOWER_TAR_GZ] + +configopts = '-- -DCMAKE_USE_OPENSSL=1' + +dependencies = [ + ('ncurses', '6.0'), + # OS dependency should be preferred if the os version is more recent then this version, + # it's nice to have an up to date openssl for security reasons + #('OpenSSL', '1.0.2j'), +] + +osdependencies = [('openssl-devel', 'libssl-dev', 'libopenssl-devel')] + +sanity_check_paths = { + 'files': ["bin/%s" % x for x in ['cmake', 'cpack', 'ctest']], + 'dirs': [], +} + +moduleclass = 'devel' diff --git a/c/CMake/CMake-3.6.2-intel-2016b.eb b/c/CMake/CMake-3.6.2-intel-2016b.eb new file mode 100644 index 00000000..b6e49683 --- /dev/null +++ b/c/CMake/CMake-3.6.2-intel-2016b.eb @@ -0,0 +1,31 @@ +easyblock = 'ConfigureMake' + +name = 'CMake' +version = '3.6.2' + +homepage = 'http://www.cmake.org' +description = """CMake, the cross-platform, open-source build system. + CMake is a family of tools designed to build, test and package software.""" + +toolchain = {'name': 'intel', 'version': '2016b'} + +source_urls = ['http://www.cmake.org/files/v%(version_major_minor)s'] +sources = [SOURCELOWER_TAR_GZ] + +configopts = '-- -DCMAKE_USE_OPENSSL=1' + +dependencies = [ + ('ncurses', '6.0'), + # OS dependency should be preferred if the os version is more recent then this version, + # it's nice to have an up to date openssl for security reasons + #('OpenSSL', '1.0.2j'), +] + +osdependencies = [('openssl-devel', 'libssl-dev', 'libopenssl-devel')] + +sanity_check_paths = { + 'files': ["bin/%s" % x for x in ['cmake', 'cpack', 'ctest']], + 'dirs': [], +} + +moduleclass = 'devel' diff --git a/c/CMake/CMake-3.6.2-intel-2017.00.eb b/c/CMake/CMake-3.6.2-intel-2017.00.eb new file mode 100644 index 00000000..b690990e --- /dev/null +++ b/c/CMake/CMake-3.6.2-intel-2017.00.eb @@ -0,0 +1,31 @@ +easyblock = 'ConfigureMake' + +name = 'CMake' +version = '3.6.2' + +homepage = 'http://www.cmake.org' +description = """CMake, the cross-platform, open-source build system. + CMake is a family of tools designed to build, test and package software.""" + +toolchain = {'name': 'intel', 'version': '2017.00'} + +source_urls = ['http://www.cmake.org/files/v%(version_major_minor)s'] +sources = [SOURCELOWER_TAR_GZ] + +configopts = '-- -DCMAKE_USE_OPENSSL=1' + +dependencies = [ + ('ncurses', '6.0'), + # OS dependency should be preferred if the os version is more recent then this version, + # it's nice to have an up to date openssl for security reasons + #('OpenSSL', '1.0.1s'), +] + +osdependencies = [('openssl-devel', 'libssl-dev', 'libopenssl-devel')] + +sanity_check_paths = { + 'files': ["bin/%s" % x for x in ['cmake', 'cpack', 'ctest']], + 'dirs': [], +} + +moduleclass = 'devel' diff --git a/c/CMake/CMake-3.6.2.eb b/c/CMake/CMake-3.6.2.eb new file mode 100644 index 00000000..11ad651a --- /dev/null +++ b/c/CMake/CMake-3.6.2.eb @@ -0,0 +1,22 @@ +easyblock = 'ConfigureMake' + +name = 'CMake' +version = '3.6.2' + +homepage = 'http://www.cmake.org' +description = """CMake, the cross-platform, open-source build system. + CMake is a family of tools designed to build, test and package software.""" + +toolchain = {'name': 'dummy', 'version': ''} + +source_urls = ['http://www.cmake.org/files/v%(version_major_minor)s'] +sources = [SOURCELOWER_TAR_GZ] + +dependencies = [('ncurses', '6.0')] + +sanity_check_paths = { + 'files': ["bin/%s" % x for x in ['cmake', 'cpack', 'ctest']], + 'dirs': [], +} + +moduleclass = 'devel' diff --git a/c/CMake/CMake-3.7.1-GCCcore-5.4.0.eb b/c/CMake/CMake-3.7.1-GCCcore-5.4.0.eb new file mode 100644 index 00000000..5b3221d0 --- /dev/null +++ b/c/CMake/CMake-3.7.1-GCCcore-5.4.0.eb @@ -0,0 +1,36 @@ +easyblock = 'ConfigureMake' + +name = 'CMake' +version = '3.7.1' + +homepage = 'http://www.cmake.org' +description = """CMake, the cross-platform, open-source build system. + CMake is a family of tools designed to build, test and package software.""" + +toolchain = {'name': 'GCCcore', 'version': '5.4.0'} + +source_urls = ['http://www.cmake.org/files/v%(version_major_minor)s'] +sources = [SOURCELOWER_TAR_GZ] + +configopts = '-- -DCMAKE_USE_OPENSSL=1' + +builddependencies = [ + ('binutils', '2.26'), +] + + +dependencies = [ + ('ncurses', '6.0'), + # OS dependency should be preferred if the os version is more recent then this version, + # it's nice to have an up to date openssl for security reasons + #('OpenSSL', '1.1.0c'), +] + +osdependencies = [('openssl-devel', 'libssl-dev', 'libopenssl-devel')] + +sanity_check_paths = { + 'files': ["bin/%s" % x for x in ['cmake', 'cpack', 'ctest']], + 'dirs': [], +} + +moduleclass = 'devel' diff --git a/c/CMake/CMake-3.7.1-GCCcore-6.2.0.eb b/c/CMake/CMake-3.7.1-GCCcore-6.2.0.eb new file mode 100644 index 00000000..b364332e --- /dev/null +++ b/c/CMake/CMake-3.7.1-GCCcore-6.2.0.eb @@ -0,0 +1,35 @@ +easyblock = 'ConfigureMake' + +name = 'CMake' +version = '3.7.1' +homepage = 'http://www.cmake.org' +description = """CMake, the cross-platform, open-source build system. + CMake is a family of tools designed to build, test and package software.""" + +toolchain = {'name': 'GCCcore', 'version': '6.2.0'} + +source_urls = ['http://www.cmake.org/files/v%(version_major_minor)s'] +sources = [SOURCELOWER_TAR_GZ] + +configopts = '-- -DCMAKE_USE_OPENSSL=1' + +builddependencies = [ + ('binutils', '2.27'), +] + + +dependencies = [ + ('ncurses', '6.0'), + # OS dependency should be preferred if the os version is more recent then this version, + # it's nice to have an up to date openssl for security reasons + #('OpenSSL', '1.1.0c'), +] + +osdependencies = [('openssl-devel', 'libssl-dev', 'libopenssl-devel')] + +sanity_check_paths = { + 'files': ["bin/%s" % x for x in ['cmake', 'cpack', 'ctest']], + 'dirs': [], +} + +moduleclass = 'devel' diff --git a/c/CMake/CMake-3.7.1-foss-2016b.eb b/c/CMake/CMake-3.7.1-foss-2016b.eb new file mode 100644 index 00000000..e459f784 --- /dev/null +++ b/c/CMake/CMake-3.7.1-foss-2016b.eb @@ -0,0 +1,31 @@ +easyblock = 'ConfigureMake' + +name = 'CMake' +version = '3.7.1' + +homepage = 'http://www.cmake.org' +description = """CMake, the cross-platform, open-source build system. + CMake is a family of tools designed to build, test and package software.""" + +toolchain = {'name': 'foss', 'version': '2016b'} + +source_urls = ['http://www.cmake.org/files/v%(version_major_minor)s'] +sources = [SOURCELOWER_TAR_GZ] + +configopts = '-- -DCMAKE_USE_OPENSSL=1' + +dependencies = [ + ('ncurses', '6.0'), + # OS dependency should be preferred if the os version is more recent then this version, + # it's nice to have an up to date openssl for security reasons + #('OpenSSL', '1.0.2j'), +] + +osdependencies = [('openssl-devel', 'libssl-dev', 'libopenssl-devel')] + +sanity_check_paths = { + 'files': ["bin/%s" % x for x in ['cmake', 'cpack', 'ctest']], + 'dirs': [], +} + +moduleclass = 'devel' diff --git a/c/CMake/CMake-3.7.1-intel-2016b.eb b/c/CMake/CMake-3.7.1-intel-2016b.eb new file mode 100644 index 00000000..0464c902 --- /dev/null +++ b/c/CMake/CMake-3.7.1-intel-2016b.eb @@ -0,0 +1,31 @@ +easyblock = 'ConfigureMake' + +name = 'CMake' +version = '3.7.1' + +homepage = 'http://www.cmake.org' +description = """CMake, the cross-platform, open-source build system. + CMake is a family of tools designed to build, test and package software.""" + +toolchain = {'name': 'intel', 'version': '2016b'} + +source_urls = ['http://www.cmake.org/files/v%(version_major_minor)s'] +sources = [SOURCELOWER_TAR_GZ] + +configopts = '-- -DCMAKE_USE_OPENSSL=1' + +dependencies = [ + ('ncurses', '6.0'), + # OS dependency should be preferred if the os version is more recent then this version, + # it's nice to have an up to date openssl for security reasons + #('OpenSSL', '1.0.2j'), +] + +osdependencies = [('openssl-devel', 'libssl-dev', 'libopenssl-devel')] + +sanity_check_paths = { + 'files': ["bin/%s" % x for x in ['cmake', 'cpack', 'ctest']], + 'dirs': [], +} + +moduleclass = 'devel' diff --git a/c/CMake/CMake-3.7.2-intel-2017a.eb b/c/CMake/CMake-3.7.2-intel-2017a.eb new file mode 100644 index 00000000..bf238f35 --- /dev/null +++ b/c/CMake/CMake-3.7.2-intel-2017a.eb @@ -0,0 +1,31 @@ +easyblock = 'ConfigureMake' + +name = 'CMake' +version = '3.7.2' + +homepage = 'http://www.cmake.org' +description = """CMake, the cross-platform, open-source build system. + CMake is a family of tools designed to build, test and package software.""" + +toolchain = {'name': 'intel', 'version': '2017a'} + +source_urls = ['http://www.cmake.org/files/v%(version_major_minor)s'] +sources = [SOURCELOWER_TAR_GZ] + +configopts = '-- -DCMAKE_USE_OPENSSL=1' + +dependencies = [ + ('ncurses', '6.0'), + # OS dependency should be preferred if the os version is more recent then this version, + # it's nice to have an up to date openssl for security reasons + #('OpenSSL', '1.0.2j'), +] + +osdependencies = [('openssl-devel', 'libssl-dev', 'libopenssl-devel')] + +sanity_check_paths = { + 'files': ["bin/%s" % x for x in ['cmake', 'cpack', 'ctest']], + 'dirs': [], +} + +moduleclass = 'devel' diff --git a/c/CMake/CMake-3.7.2.eb b/c/CMake/CMake-3.7.2.eb new file mode 100644 index 00000000..a960ed5c --- /dev/null +++ b/c/CMake/CMake-3.7.2.eb @@ -0,0 +1,31 @@ +easyblock = 'ConfigureMake' + +name = 'CMake' +version = '3.7.2' + +homepage = 'http://www.cmake.org' +description = """CMake, the cross-platform, open-source build system. + CMake is a family of tools designed to build, test and package software.""" + +toolchain = {'name': 'dummy', 'version': ''} + +source_urls = ['http://www.cmake.org/files/v%(version_major_minor)s'] +sources = [SOURCELOWER_TAR_GZ] + +configopts = '-- -DCMAKE_USE_OPENSSL=1' + +dependencies = [ + ('ncurses', '6.0'), + # OS dependency should be preferred if the os version is more recent then this version, + # it's nice to have an up to date openssl for security reasons + #('OpenSSL', '1.0.2j'), +] + +osdependencies = [('openssl-devel', 'libssl-dev', 'libopenssl-devel')] + +sanity_check_paths = { + 'files': ["bin/%s" % x for x in ['cmake', 'cpack', 'ctest']], + 'dirs': [], +} + +moduleclass = 'devel' diff --git a/c/CP2K/CP2K-2.5.1-goolf-1.5.16.eb b/c/CP2K/CP2K-2.5.1-goolf-1.5.16.eb new file mode 100644 index 00000000..3c9854d8 --- /dev/null +++ b/c/CP2K/CP2K-2.5.1-goolf-1.5.16.eb @@ -0,0 +1,38 @@ +name = 'CP2K' +version = '2.5.1' + +homepage = 'http://www.cp2k.org/' +description = """CP2K is a freely available (GPL) program, written in Fortran 95, to perform atomistic and molecular + simulations of solid state, liquid, molecular and biological systems. It provides a general framework for different + methods such as e.g. density functional theory (DFT) using a mixed Gaussian and plane waves approach (GPW), and + classical pair and many-body potentials. """ + +toolchain = {'name': 'goolf', 'version': '1.5.16'} +toolchainopts = {'pic': True} + +sources = [SOURCELOWER_TAR_BZ2] +source_urls = [SOURCEFORGE_SOURCE] + +patches = [ + 'CP2K-20131211-ifort-compiler-bug-fix.patch', + 'CP2K-2.4.0-fix_compile_date_lastsvn.patch', +] + +dependencies = [ + ('Libint', '1.1.4'), + ('libxc', '2.2.0'), +] + +builddependencies = [ + ('flex', '2.5.38', '', ('GCC', '4.8.3')), + ('Bison', '3.0.2', '', ('GCC', '4.8.3')), +] + +# don't use parallel make, results in compilation failure +# because Fortran module files aren't created before they are needed +parallel = 1 + +# regression test reports failures +ignore_regtest_fails = True + +moduleclass = 'chem' diff --git a/c/CP2K/CP2K-2.5.1-ictce-5.5.0.eb b/c/CP2K/CP2K-2.5.1-ictce-5.5.0.eb new file mode 100644 index 00000000..50e1f809 --- /dev/null +++ b/c/CP2K/CP2K-2.5.1-ictce-5.5.0.eb @@ -0,0 +1,38 @@ +name = 'CP2K' +version = '2.5.1' + +homepage = 'http://www.cp2k.org/' +description = """CP2K is a freely available (GPL) program, written in Fortran 95, to perform atomistic and molecular + simulations of solid state, liquid, molecular and biological systems. It provides a general framework for different + methods such as e.g. density functional theory (DFT) using a mixed Gaussian and plane waves approach (GPW), and + classical pair and many-body potentials. """ + +toolchain = {'name': 'ictce', 'version': '5.5.0'} +toolchainopts = {'pic': True} + +sources = [SOURCELOWER_TAR_BZ2] +source_urls = [SOURCEFORGE_SOURCE] + +patches = [ + 'CP2K-20131211-ifort-compiler-bug-fix.patch', + 'CP2K-2.4.0-fix_compile_date_lastsvn.patch', +] + +dependencies = [ + ('Libint', '1.1.4'), + ('libxc', '2.2.0'), +] + +builddependencies = [ + ('flex', '2.5.38', '', ('GCC', '4.8.2')), + ('Bison', '3.0.2', '', ('GCC', '4.8.2')), +] + +# don't use parallel make, results in compilation failure +# because Fortran module files aren't created before they are needed +parallel = 1 + +# regression test reports failures +ignore_regtest_fails = True + +moduleclass = 'chem' diff --git a/c/CP2K/CP2K-2.6.0-CrayGNU-2015.06.eb b/c/CP2K/CP2K-2.6.0-CrayGNU-2015.06.eb new file mode 100644 index 00000000..428626ae --- /dev/null +++ b/c/CP2K/CP2K-2.6.0-CrayGNU-2015.06.eb @@ -0,0 +1,38 @@ +name = 'CP2K' +version = '2.6.0' + +homepage = 'http://www.cp2k.org/' +description = """CP2K is a freely available (GPL) program, written in Fortran 95, to perform atomistic and molecular + simulations of solid state, liquid, molecular and biological systems. It provides a general framework for different + methods such as e.g. density functional theory (DFT) using a mixed Gaussian and plane waves approach (GPW), and + classical pair and many-body potentials. """ + +toolchain = {'name': 'CrayGNU', 'version': '2015.06'} +toolchainopts = {'pic': True} + +sources = [SOURCELOWER_TAR_BZ2] +source_urls = [SOURCEFORGE_SOURCE] + +patches = [ + 'CP2K-2.6.0-ifort-compiler-bug-fix.patch', + 'CP2K-2.4.0-fix_compile_date_lastsvn.patch', +] + +dependencies = [ + ('Libint', '1.1.4'), + ('libxc', '2.2.1'), +] + +builddependencies = [ + ('flex', '2.5.39'), + ('Bison', '3.0.2'), +] + +# don't use parallel make, results in compilation failure +# because Fortran module files aren't created before they are needed +parallel = 1 + +# regression test reports failures +ignore_regtest_fails = True + +moduleclass = 'chem' diff --git a/c/CP2K/CP2K-2.6.0-CrayGNU-2015.11.eb b/c/CP2K/CP2K-2.6.0-CrayGNU-2015.11.eb new file mode 100644 index 00000000..1b2b44d8 --- /dev/null +++ b/c/CP2K/CP2K-2.6.0-CrayGNU-2015.11.eb @@ -0,0 +1,38 @@ +name = 'CP2K' +version = '2.6.0' + +homepage = 'http://www.cp2k.org/' +description = """CP2K is a freely available (GPL) program, written in Fortran 95, to perform atomistic and molecular + simulations of solid state, liquid, molecular and biological systems. It provides a general framework for different + methods such as e.g. density functional theory (DFT) using a mixed Gaussian and plane waves approach (GPW), and + classical pair and many-body potentials. """ + +toolchain = {'name': 'CrayGNU', 'version': '2015.11'} +toolchainopts = {'pic': True} + +sources = [SOURCELOWER_TAR_BZ2] +source_urls = [SOURCEFORGE_SOURCE] + +patches = [ + 'CP2K-2.6.0-ifort-compiler-bug-fix.patch', + 'CP2K-2.4.0-fix_compile_date_lastsvn.patch', +] + +dependencies = [ + ('Libint', '1.1.4'), + ('libxc', '2.2.1'), +] + +builddependencies = [ + ('flex', '2.5.39'), + ('Bison', '3.0.2'), +] + +# don't use parallel make, results in compilation failure +# because Fortran module files aren't created before they are needed +parallel = 1 + +# regression test reports failures +ignore_regtest_fails = True + +moduleclass = 'chem' diff --git a/c/CP2K/CP2K-3.0-CrayGNU-2015.11-cuda-7.0.eb b/c/CP2K/CP2K-3.0-CrayGNU-2015.11-cuda-7.0.eb new file mode 100644 index 00000000..d34361f2 --- /dev/null +++ b/c/CP2K/CP2K-3.0-CrayGNU-2015.11-cuda-7.0.eb @@ -0,0 +1,48 @@ +# contributed by Luca Marsella (CSCS) +name = 'CP2K' +version = "3.0" +cudaversion = '7.0' +versionsuffix = '-cuda-%s' % cudaversion + +homepage = 'http://www.cp2k.org/' +description = """CP2K is a freely available (GPL) program, written in Fortran 95, to perform atomistic and molecular + simulations of solid state, liquid, molecular and biological systems. It provides a general framework for different + methods such as e.g. density functional theory (DFT) using a mixed Gaussian and plane waves approach (GPW), and + classical pair and many-body potentials. """ + +toolchain = {'name': 'CrayGNU', 'version': '2015.11'} +toolchainopts = {'pic': True} + +sources = [SOURCELOWER_TAR_BZ2] +source_urls = [SOURCEFORGE_SOURCE] + +patches = [ + 'CP2K-2.6.0-ifort-compiler-bug-fix.patch', + 'CP2K-2.4.0-fix_compile_date_lastsvn.patch', +] + +dependencies = [ + ('Libint', '1.1.4'), + ('libxc', '2.2.2'), +] + +builddependencies = [ + ('cudatoolkit/7.0.28-1.0502.10742.5.1', EXTERNAL_MODULE), + ('fftw/3.3.4.3', EXTERNAL_MODULE), + ('flex', '2.5.39'), + ('Bison', '3.0.2'), +] + +# don't use parallel make, results in compilation failure +# because Fortran module files aren't created before they are needed +parallel = 1 + +# regression test +runtest = False +# regression test reports failures +#ignore_regtest_fails = True + +# build type +type = 'psmp' + +moduleclass = 'chem' diff --git a/c/CP2K/CP2K-3.0-CrayGNU-2015.11.eb b/c/CP2K/CP2K-3.0-CrayGNU-2015.11.eb new file mode 100644 index 00000000..e7bf9550 --- /dev/null +++ b/c/CP2K/CP2K-3.0-CrayGNU-2015.11.eb @@ -0,0 +1,45 @@ +# contributed by Luca Marsella (CSCS) +name = 'CP2K' +version = "3.0" + +homepage = 'http://www.cp2k.org/' +description = """CP2K is a freely available (GPL) program, written in Fortran 95, to perform atomistic and molecular + simulations of solid state, liquid, molecular and biological systems. It provides a general framework for different + methods such as e.g. density functional theory (DFT) using a mixed Gaussian and plane waves approach (GPW), and + classical pair and many-body potentials. """ + +toolchain = {'name': 'CrayGNU', 'version': '2015.11'} +toolchainopts = {'pic': True} + +sources = [SOURCELOWER_TAR_BZ2] +source_urls = [SOURCEFORGE_SOURCE] + +patches = [ + 'CP2K-2.6.0-ifort-compiler-bug-fix.patch', + 'CP2K-2.4.0-fix_compile_date_lastsvn.patch', +] + +dependencies = [ + ('Libint', '1.1.4'), + ('libxc', '2.2.2'), +] + +builddependencies = [ + ('fftw/3.3.4.3', EXTERNAL_MODULE), + ('flex', '2.5.39'), + ('Bison', '3.0.2'), +] + +# don't use parallel make, results in compilation failure +# because Fortran module files aren't created before they are needed +parallel = 1 + +# regression test +runtest = False +# regression test reports failures +#ignore_regtest_fails = True + +# build type +type = 'psmp' + +moduleclass = 'chem' diff --git a/c/CUDA/CUDA-5.0.35-1.eb b/c/CUDA/CUDA-5.0.35-1.eb new file mode 100644 index 00000000..299410b7 --- /dev/null +++ b/c/CUDA/CUDA-5.0.35-1.eb @@ -0,0 +1,50 @@ +## +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# +# Copyright:: Copyright 2012-2014 Cyprus Institute / CaSToRC, Uni.Lu/LCSB, NTUA, Ghent University +# Authors:: George Tsouloupas , 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-99.html +## + +name = 'CUDA' +version = '5.0.35' +versionsuffix = '-1' + +homepage = 'https://developer.nvidia.com/cuda-toolkit' +description = """CUDA (formerly Compute Unified Device Architecture) is a parallel + computing platform and programming model created by NVIDIA and implemented by the + graphics processing units (GPUs) that they produce. CUDA gives developers access + to the virtual instruction set and memory of the parallel computational elements in CUDA GPUs.""" + +toolchain = {'name': 'dummy', 'version': 'dummy'} + +# eg. http://developer.download.nvidia.com/compute/cuda/5_0/rel-update-1/installers/cuda_5.0.35_linux_64_rhel5.x-1.run +source_urls = ['http://developer.download.nvidia.com/compute/cuda/5_0/rel-update-1/installers/'] + +# exhaustive list of all known Linux packages for CUDA v5.0.35 +if OS_NAME in ['fedora', 'redhat']: + system = 'fedora16' +elif OS_NAME in ["RHEL", "SL", "centos"]: + system = 'rhel%s.x' % OS_VERSION.split('.')[0] +elif OS_NAME in ['debian'] and OS_VERSION.startswith('6.'): + system = 'ubuntu10.04' +elif OS_NAME in ['debian', 'ubuntu']: + if OS_VERSION in ['11.10', '10.04']: + system = 'ubuntu%s' % OS_VERSION + else: + print "Falling back to ubuntu11.10 as default for OS_NAME=%s, OS_VERSION=%s; kindly amend this easyconfig" % (OS_NAME, OS_VERSION) + system = 'ubuntu11.10' +elif OS_NAME == "opensuse": + system = 'suse12.1' +elif OS_NAME in ["suse", "SLES"] and OS_VERSION.startswith('11_SP'): + system = 'sles%s' % OS_VERSION.lower().replace('_', '') +else: + system = 'UNKNOWN' + +sources = ['%%(namelower)s_%%(version)s_linux_64_%s%%(versionsuffix)s.run' % system] + +moduleclass = 'system' diff --git a/c/CUDA/CUDA-5.0.35-GCC-4.6.4-1.eb b/c/CUDA/CUDA-5.0.35-GCC-4.6.4-1.eb new file mode 100644 index 00000000..9b2a072f --- /dev/null +++ b/c/CUDA/CUDA-5.0.35-GCC-4.6.4-1.eb @@ -0,0 +1,50 @@ +## +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# +# Copyright:: Copyright 2012-2014 Cyprus Institute / CaSToRC, Uni.Lu/LCSB, NTUA, Ghent University +# Authors:: George Tsouloupas , 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-99.html +## + +name = 'CUDA' +version = '5.0.35' +versionsuffix = '-1' + +homepage = 'https://developer.nvidia.com/cuda-toolkit' +description = """CUDA (formerly Compute Unified Device Architecture) is a parallel + computing platform and programming model created by NVIDIA and implemented by the + graphics processing units (GPUs) that they produce. CUDA gives developers access + to the virtual instruction set and memory of the parallel computational elements in CUDA GPUs.""" + +toolchain = {'name': 'GCC', 'version': '4.6.4'} + +# eg. http://developer.download.nvidia.com/compute/cuda/5_0/rel-update-1/installers/cuda_5.0.35_linux_64_rhel5.x-1.run +source_urls = ['http://developer.download.nvidia.com/compute/cuda/5_0/rel-update-1/installers/'] + +# exhaustive list of all known Linux packages for CUDA v5.0.35 +if OS_NAME in ['fedora', 'redhat']: + system = 'fedora16' +elif OS_NAME in ["RHEL", "SL", "centos"]: + system = 'rhel%s.x' % OS_VERSION.split('.')[0] +elif OS_NAME in ['debian'] and OS_VERSION.startswith('6.'): + system = 'ubuntu10.04' +elif OS_NAME in ['debian', 'ubuntu']: + if OS_VERSION in ['11.10', '10.04']: + system = 'ubuntu%s' % OS_VERSION + else: + print "Falling back to ubuntu11.10 as default for OS_NAME=%s, OS_VERSION=%s; kindly amend this easyconfig" % (OS_NAME, OS_VERSION) + system = 'ubuntu11.10' +elif OS_NAME == "opensuse": + system = 'suse12.1' +elif OS_NAME in ["suse", "SLES"] and OS_VERSION.startswith('11_SP'): + system = 'sles%s' % OS_VERSION.lower().replace('_', '') +else: + system = 'UNKNOWN' + +sources = ['%%(namelower)s_%%(version)s_linux_64_%s%%(versionsuffix)s.run' % system] + +moduleclass = 'system' diff --git a/c/CUDA/CUDA-7.5.18-iccifort-2015.3.187-GNU-4.9.3-2.25.eb b/c/CUDA/CUDA-7.5.18-iccifort-2015.3.187-GNU-4.9.3-2.25.eb new file mode 100644 index 00000000..f2ca68b5 --- /dev/null +++ b/c/CUDA/CUDA-7.5.18-iccifort-2015.3.187-GNU-4.9.3-2.25.eb @@ -0,0 +1,43 @@ +## +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# +# Copyright:: Copyright 2012-2013 Cyprus Institute / CaSToRC, University of Luxembourg / LCSB, Ghent University, +# Forschungszentrum Juelich +# Authors:: George Tsouloupas , Fotis Georgatos , Kenneth Hoste +# Authors:: Damian Alvarez +# 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-99.html +## + +#easyblock = 'ConfigureMake' + +name = 'CUDA' +version = '7.5.18' + +homepage = 'https://developer.nvidia.com/cuda-toolkit' +description = """CUDA (formerly Compute Unified Device Architecture) is a parallel + computing platform and programming model created by NVIDIA and implemented by the + graphics processing units (GPUs) that they produce. CUDA gives developers access + to the virtual instruction set and memory of the parallel computational elements in CUDA GPUs.""" + +toolchain = {'name': 'iccifort', 'version': '2015.3.187-GNU-4.9.3-2.25'} + +source_urls = ['http://developer.download.nvidia.com/compute/cuda/%(version_major_minor)s/Prod/local_installers/'] + +sources = ['%(namelower)s_%(version)s_linux.run'] +checksums = ['4b3bcecf0dfc35928a0898793cf3e4c6'] + +# Necessary to allow to use a GCC 4.9.3 toolchain, as CUDA by default just supports up to 4.9.2. +# Tested, but not throughly, so it is not guaranteed to don't cause problems +installopts = '-override compiler' + +host_compilers = ["icpc", "g++"] + +# Be careful and have a message consistent with the generated wrappers +modloadmsg = "nvcc uses g++ as the default host compiler. If you want to use icpc as a host compiler you can use" +modloadmsg += " nvcc_icpc, or nvcc -ccbin=icpc. Likewise, a g++ wrapper called nvcc_g++ has been also created." + +moduleclass = 'system' diff --git a/c/CUDA/CUDA-7.5.18-iccifort-2016.3.210-GCC-4.9.3-2.25.eb b/c/CUDA/CUDA-7.5.18-iccifort-2016.3.210-GCC-4.9.3-2.25.eb new file mode 100644 index 00000000..dc4d389b --- /dev/null +++ b/c/CUDA/CUDA-7.5.18-iccifort-2016.3.210-GCC-4.9.3-2.25.eb @@ -0,0 +1,43 @@ +## +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# +# Copyright:: Copyright 2012-2013 Cyprus Institute / CaSToRC, University of Luxembourg / LCSB, Ghent University, +# Forschungszentrum Juelich +# Authors:: George Tsouloupas , Fotis Georgatos , Kenneth Hoste +# Authors:: Damian Alvarez +# 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-99.html +## + +#easyblock = 'ConfigureMake' + +name = 'CUDA' +version = '7.5.18' + +homepage = 'https://developer.nvidia.com/cuda-toolkit' +description = """CUDA (formerly Compute Unified Device Architecture) is a parallel + computing platform and programming model created by NVIDIA and implemented by the + graphics processing units (GPUs) that they produce. CUDA gives developers access + to the virtual instruction set and memory of the parallel computational elements in CUDA GPUs.""" + +toolchain = {'name': 'iccifort', 'version': '2016.3.210-GCC-4.9.3-2.25'} + +source_urls = ['http://developer.download.nvidia.com/compute/cuda/%(version_major_minor)s/Prod/local_installers/'] + +sources = ['%(namelower)s_%(version)s_linux.run'] +checksums = ['4b3bcecf0dfc35928a0898793cf3e4c6'] + +# Necessary to allow to use a GCC 4.9.3 toolchain, as CUDA by default just supports up to 4.9.2. +# Tested, but not throughly, so it is not guaranteed to don't cause problems +installopts = '-override compiler' + +host_compilers = ["icpc", "g++"] + +# Be careful and have a message consistent with the generated wrappers +modloadmsg = "nvcc uses g++ as the default host compiler. If you want to use icpc as a host compiler you can use" +modloadmsg += " nvcc_icpc, or nvcc -ccbin=icpc. Likewise, a g++ wrapper called nvcc_g++ has been also created.\n" + +moduleclass = 'system' diff --git a/c/CUDA/CUDA-8.0.44-intel-2017.00.eb b/c/CUDA/CUDA-8.0.44-intel-2017.00.eb new file mode 100644 index 00000000..9a862611 --- /dev/null +++ b/c/CUDA/CUDA-8.0.44-intel-2017.00.eb @@ -0,0 +1,19 @@ +name = 'CUDA' +version = '8.0.44' + +homepage = 'https://developer.nvidia.com/cuda-toolkit' +description = """CUDA (formerly Compute Unified Device Architecture) is a parallel + computing platform and programming model created by NVIDIA and implemented by the + graphics processing units (GPUs) that they produce. CUDA gives developers access + to the virtual instruction set and memory of the parallel computational elements in CUDA GPUs.""" + +toolchain = {'name': 'intel', 'version': '2017.00'} + +source_urls = [ + 'http://developer.download.nvidia.com/compute/cuda/%(version_major_minor)s/Prod/local_installers/', + 'https://developer.nvidia.com/compute/cuda/%(version_major_minor)s/prod/local_installers/' +] + +sources = ['%(namelower)s_%(version)s_linux-run'] + +moduleclass = 'system' diff --git a/c/CUDA/CUDA-8.0.44.eb b/c/CUDA/CUDA-8.0.44.eb new file mode 100644 index 00000000..9407a639 --- /dev/null +++ b/c/CUDA/CUDA-8.0.44.eb @@ -0,0 +1,18 @@ +name = 'CUDA' +version = '8.0.44' + +homepage = 'https://developer.nvidia.com/cuda-toolkit' +description = """CUDA (formerly Compute Unified Device Architecture) is a parallel + computing platform and programming model created by NVIDIA and implemented by the + graphics processing units (GPUs) that they produce. CUDA gives developers access + to the virtual instruction set and memory of the parallel computational elements in CUDA GPUs.""" + +toolchain = {'name': 'dummy', 'version': 'dummy'} + +source_urls = ['https://developer.nvidia.com/compute/cuda/%(version_major_minor)s/prod/local_installers/'] + +sources = ['%(namelower)s_%(version)s_linux-run'] + +modextravars = { 'CUDA_HOME': '%(installdir)s' } + +moduleclass = 'system' diff --git a/c/CVXOPT/CVXOPT-1.1.5-goolf-1.4.10-Python-2.7.3.eb b/c/CVXOPT/CVXOPT-1.1.5-goolf-1.4.10-Python-2.7.3.eb new file mode 100644 index 00000000..071eb016 --- /dev/null +++ b/c/CVXOPT/CVXOPT-1.1.5-goolf-1.4.10-Python-2.7.3.eb @@ -0,0 +1,34 @@ +easyblock = "PythonPackage" + +name = 'CVXOPT' +version = '1.1.5' + +homepage = 'http://abel.ee.ucla.edu/cvxopt/' +description = """CVXOPT is a free software package for convex optimization based on the Python programming language. +Its main purpose is to make the development of software for convex optimization applications straightforward +by building on Python's extensive standard library and on the strengths of Python as a high-level programming language.""" + +toolchain = {'name': 'goolf', 'version': '1.4.10'} + +source_urls = ['http://abel.ee.ucla.edu/src/'] +sources = [SOURCELOWER_TAR_GZ] + +patches = ['CVXOPT-blas-lapack.patch'] + +python = 'Python' +pythonver = '2.7.3' +pythonshortver = '.'.join(pythonver.split('.')[0:2]) +versionsuffix = '-%s-%s' % (python, pythonver) + +dependencies = [ + (python, pythonver), +] + +start_dir = 'src' + +sanity_check_paths = { + 'files': [], + 'dirs': ['lib/python%s/site-packages/%%(namelower)s' % pythonshortver], +} + +moduleclass = 'math' diff --git a/c/CVXOPT/CVXOPT-1.1.5-ictce-5.3.0-Python-2.7.3.eb b/c/CVXOPT/CVXOPT-1.1.5-ictce-5.3.0-Python-2.7.3.eb new file mode 100644 index 00000000..3e32468f --- /dev/null +++ b/c/CVXOPT/CVXOPT-1.1.5-ictce-5.3.0-Python-2.7.3.eb @@ -0,0 +1,35 @@ +easyblock = "PythonPackage" + +name = 'CVXOPT' +version = '1.1.5' + +homepage = 'http://abel.ee.ucla.edu/cvxopt/' +description = """CVXOPT is a free software package for convex optimization based on the Python programming language. + Its main purpose is to make the development of software for convex optimization applications straightforward + by building on Python's extensive standard library and on the strengths of Python as a high-level programming language.""" + + +toolchain = {'name': 'ictce', 'version': '5.3.0'} + +source_urls = ['http://abel.ee.ucla.edu/src/'] +sources = [SOURCELOWER_TAR_GZ] + +patches = ['CVXOPT-blas-lapack.patch'] + +python = 'Python' +pythonver = '2.7.3' +pythonshortver = '.'.join(pythonver.split('.')[0:2]) +versionsuffix = '-%s-%s' % (python, pythonver) + +dependencies = [ + (python, pythonver), +] + +start_dir = 'src' + +sanity_check_paths = { + 'files': [], + 'dirs': ['lib/python%s/site-packages/%%(namelower)s' % pythonshortver], +} + +moduleclass = 'math' diff --git a/c/Cantera/Cantera-2.2.1-intel-2016b-Python-2.7.12.eb b/c/Cantera/Cantera-2.2.1-intel-2016b-Python-2.7.12.eb new file mode 100644 index 00000000..df2115bf --- /dev/null +++ b/c/Cantera/Cantera-2.2.1-intel-2016b-Python-2.7.12.eb @@ -0,0 +1,41 @@ +easyblock = 'SCons' + +name = 'Cantera' +version = '2.2.1' +versionsuffix = '-Python-%(pyver)s' + +homepage = 'https://github.com/Cantera/cantera' +description = """Chemical kinetics, thermodynamics, and transport tool suite""" + +toolchain = {'name': 'intel', 'version': '2016b'} + +source_urls = ['https://github.com/Cantera/cantera/archive/'] +sources = ['v%(version)s.tar.gz'] + +dependencies = [ + ('Python', '2.7.12'), + ('Boost', '1.61.0', versionsuffix), + ('SUNDIALS', '2.6.2'), +] +builddependencies = [ + ('SCons', '2.5.0', versionsuffix), + ('3to2', '1.1.1', versionsuffix), +] + +common_opts = 'env_vars=all CC="$CC" CXX="$CXX" blas_lapack_libs=mkl_rt blas_lapack_dir=$BLAS_LAPACK_LIB_DIR' +common_opts += ' sundials_include=$EBROOTSUNDIALS/include sundials_libdir=$EBROOTSUNDIALS/lib' +buildopts = 'build ' + common_opts +runtest = 'test ' + common_opts +buildopts = 'install ' + common_opts +prefix_arg = 'prefix=' + +modextrapaths = {'PYTHONPATH': ['lib/python%(pyshortver)s/site-packages']} + +sanity_check_paths = { + 'files': ['bin/mixmaster'], + 'dirs': ['include/cantera', 'lib/pkgconfig', 'lib/python%(pyshortver)s/site-packages'], +} + +sanity_check_commands = [('python', "-c 'import cantera'")] + +moduleclass = 'chem' diff --git a/c/ChIP-Seq/ChIP-Seq-1.5-1-goolf-1.4.10.eb b/c/ChIP-Seq/ChIP-Seq-1.5-1-goolf-1.4.10.eb new file mode 100644 index 00000000..eb2d005b --- /dev/null +++ b/c/ChIP-Seq/ChIP-Seq-1.5-1-goolf-1.4.10.eb @@ -0,0 +1,48 @@ +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# Author: Pablo Escobar Lopez +# sciCORE - University of Basel +# SIB Swiss Institute of Bioinformatics + +easyblock = 'ConfigureMake' + +name = 'ChIP-Seq' +version = '1.5-1' + +homepage = 'http://chip-seq.sourceforge.net/' +description = """The ChIP-Seq software provides methods for the analysis of ChIP-seq data and + other types of mass genome annotation data. The most common analysis tasks include positional + correlation analysis, peak detection, and genome partitioning into signal-rich and signal-depleted regions.""" + +toolchain = {'name': 'goolf', 'version': '1.4.10'} + +source_urls = ['http://downloads.sourceforge.net/project/chip-seq/chip-seq/%(version)s/'] +sources = ['%(namelower)s.%(version)s.tar.gz'] + +skipsteps = ['configure'] + +buildopts = ' CC=$CC' + +preinstallopts = 'mkdir -p %(installdir)s/bin && ' + +installopts = ' binDir=%(installdir)s/bin && ' +installopts += 'mkdir -p %(installdir)s/man/man1 && ' +installopts += 'make man manDir=%(installdir)s/man/man1/ && ' +installopts += 'cp -a tools/ %(installdir)s && ' +installopts += 'cp -a README doc/ %(installdir)s' + +sanity_check_paths = { + 'files': ["bin/%s" % x for x in ["chipcenter", "chipcor", "chipextract", "chippart", "chippeak", + "chipscore", "compactsga", "counts_filter", "countsga", "featreplace"]], + 'dirs': [] +} + +# add tools dir to PATH +modextrapaths = { + 'PATH': "tools", +} + +# fix shebang line in all provided perl scripts in tools folder +postinstallcmds = ["sed -i -e 's|/usr/bin/perl|/usr/bin/env\ perl|' %(installdir)s/tools/*.pl", + "sed -i -e 's|/usr/local/bin/perl|/usr/bin/env\ perl|' %(installdir)s/tools/*.pl"] + +moduleclass = 'bio' diff --git a/c/ChIP-Seq/ChIP-Seq-1.5-1-goolf-1.7.20.eb b/c/ChIP-Seq/ChIP-Seq-1.5-1-goolf-1.7.20.eb new file mode 100644 index 00000000..dcbe783b --- /dev/null +++ b/c/ChIP-Seq/ChIP-Seq-1.5-1-goolf-1.7.20.eb @@ -0,0 +1,48 @@ +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# Author: Pablo Escobar Lopez +# sciCORE - University of Basel +# SIB Swiss Institute of Bioinformatics + +easyblock = 'ConfigureMake' + +name = 'ChIP-Seq' +version = '1.5-1' + +homepage = 'http://chip-seq.sourceforge.net/' +description = """The ChIP-Seq software provides methods for the analysis of ChIP-seq data and + other types of mass genome annotation data. The most common analysis tasks include positional + correlation analysis, peak detection, and genome partitioning into signal-rich and signal-depleted regions.""" + +toolchain = {'name': 'goolf', 'version': '1.7.20'} + +source_urls = ['http://downloads.sourceforge.net/project/chip-seq/chip-seq/%(version)s/'] +sources = ['%(namelower)s.%(version)s.tar.gz'] + +skipsteps = ['configure'] + +buildopts = ' CC=$CC' + +preinstallopts = 'mkdir -p %(installdir)s/bin && ' + +installopts = ' binDir=%(installdir)s/bin && ' +installopts += 'mkdir -p %(installdir)s/man/man1 && ' +installopts += 'make man manDir=%(installdir)s/man/man1/ && ' +installopts += 'cp -a tools/ %(installdir)s && ' +installopts += 'cp -a README doc/ %(installdir)s' + +sanity_check_paths = { + 'files': ["bin/%s" % x for x in ["chipcenter", "chipcor", "chipextract", "chippart", "chippeak", + "chipscore", "compactsga", "counts_filter", "countsga", "featreplace"]], + 'dirs': [] +} + +# add tools dir to PATH +modextrapaths = { + 'PATH': "tools", +} + +# fix shebang line in all provided perl scripts in tools folder +postinstallcmds = ["sed -i -e 's|/usr/bin/perl|/usr/bin/env\ perl|' %(installdir)s/tools/*.pl", + "sed -i -e 's|/usr/local/bin/perl|/usr/bin/env\ perl|' %(installdir)s/tools/*.pl"] + +moduleclass = 'bio' diff --git a/c/Clang/Clang-3.7.0-GNU-5.1.0-2.25.eb b/c/Clang/Clang-3.7.0-GNU-5.1.0-2.25.eb new file mode 100644 index 00000000..389630c2 --- /dev/null +++ b/c/Clang/Clang-3.7.0-GNU-5.1.0-2.25.eb @@ -0,0 +1,42 @@ +easyblock = "CMakeMake" +name = "Clang" +version = "3.7.0" + +homepage = "http://clang.llvm.org/" +description = """C, C++, Objective-C compiler, based on LLVM. Does not + include C++ standard library -- use libstdc++ from GCC.""" + +# Clang also depends on libstdc++ during runtime, but this dependency is +# already specified as the toolchain. +toolchain = {'name': 'GNU', 'version': '5.1.0-2.25'} +# Do not set optarch to True: it will cause the build to fail +toolchainopts = {'optarch': False} + +source_urls = ["http://llvm.org/releases/%(version)s"] +sources = [ + "llvm-%(version)s.src.tar.xz", + "cfe-%(version)s.src.tar.xz", + "compiler-rt-%(version)s.src.tar.xz", + "polly-%(version)s.src.tar.xz", +] + +dependencies = [ + ('GMP', '6.0.0a'), + ('ISL', '0.14'), +] + +builddependencies = [ + ('CMake', '3.3.1'), + ('Python', '2.7.9'), + ('libxml2', '2.9.2'), +] + +separate_build_dir = True + +assertions = True + +usepolly = True + +build_targets = ['X86'] + +moduleclass = 'compiler' diff --git a/c/Clustering/clustering-2.6.6.eb b/c/Clustering/clustering-2.6.6.eb new file mode 100644 index 00000000..c8440a5c --- /dev/null +++ b/c/Clustering/clustering-2.6.6.eb @@ -0,0 +1,15 @@ +easyblock = 'ConfigureMake' + +name = 'clustering' +version = '2.6.6' + +homepage = 'https://tools.bsc.es/' +description = "Cluster analysis tools" + +toolchain = {'name': 'intel', 'version': '2017.00'} + +sources = ['clusteringsuite-%(version)s.tar.bz2'] +source_urls = ['https://ftp.tools.bsc.es/clusteringsuite/clusteringsuite-%(version)s.tar.bz2'] + +moduleclass = 'tools' + diff --git a/c/Commet/Commet-20150415-foss-2016a-Python-2.7.11.eb b/c/Commet/Commet-20150415-foss-2016a-Python-2.7.11.eb new file mode 100644 index 00000000..549296f0 --- /dev/null +++ b/c/Commet/Commet-20150415-foss-2016a-Python-2.7.11.eb @@ -0,0 +1,32 @@ +easyblock = 'MakeCp' + +name = 'Commet' +version = '20150415' +commit = '4ef0705' +versionsuffix = '-Python-%(pyver)s' + +homepage = 'https://colibread.inria.fr/software/commet/' +description = """ COMMET ("COmpare Multiple METagenomes") provides a global similarity overview between all datasets of + a large metagenomic project. +""" + +toolchain = {'name': 'foss', 'version': '2016a'} + +source_urls = ['https://github.com/pierrepeterlongo/commet/archive'] +sources = ['%s.tar.gz' % commit] + +checksums = ['19cba09ca7a92eaed75ed6af820d9451'] + +dependencies = [ + ('Python', '2.7.11'), +] + +files_to_copy = ["bin","doc","include","ABCDE_bench",(["Commet.py"],'bin')] + +sanity_check_paths = { + 'files': ['bin/%s' % binfile for binfile in ['Commet.py', 'bvop', 'compare_reads', + 'extract_reads', 'filter_reads', 'index_and_search']], + 'dirs' : ['doc', 'include'] +} + +moduleclass = 'bio' diff --git a/c/ConnectomeWorkbench/ConnectomeWorkbench-1.2.2.eb b/c/ConnectomeWorkbench/ConnectomeWorkbench-1.2.2.eb new file mode 100644 index 00000000..edd7b1aa --- /dev/null +++ b/c/ConnectomeWorkbench/ConnectomeWorkbench-1.2.2.eb @@ -0,0 +1,36 @@ +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# Author: Ravi Tripathi +# Email: ravi89@uab.edu + +easyblock = "Tarball" + +name = 'ConnectomeWorkbench' +version = '1.2.2' + +homepage = 'http://www.humanconnectome.org/software/connectome-workbench.html' +description = """Connectome Workbench is an open-source +visualization and discovery tool used to explore data generated +by the Human Connectome Project. The distribution includes wb_view, +a GUI-based visualization platform, and wb_command, a command-line +program for performing a variety of algorithmic tasks using volume, +surface, and grayordinate data.""" + +toolchain = {'name': 'dummy', 'version': 'dummy'} + +source_urls = ['https://ftp.humanconnectome.org/workbench/'] +sources = ['workbench-rh_linux64-v%(version)s.zip'] + +modextrapaths = { + 'PATH': 'bin_rh_linux64', + 'LIBRARY_PATH': 'libs_rh_linux64', + 'LD_LIBRARY_PATH': 'libs_rh_linux64', +} + +sanity_check_paths = { + 'files': ["bin_rh_linux64/wb_import", "bin_rh_linux64/wb_command", + "bin_rh_linux64/wb_view",], + 'dirs': ["resources"] +} + +moduleclass = 'bio' + diff --git a/c/CrayPGI/CrayPGI-2016.04.eb b/c/CrayPGI/CrayPGI-2016.04.eb new file mode 100644 index 00000000..112a9312 --- /dev/null +++ b/c/CrayPGI/CrayPGI-2016.04.eb @@ -0,0 +1,19 @@ +easyblock = 'CrayToolchain' + +name = 'CrayPGI' +version = '2016.04' + +homepage = 'http://www.pgroup.com/' +description = """Toolchain using Cray compiler wrapper, using PrgEnv-pgi module.""" + +toolchain = {'name': 'dummy', 'version': 'dummy'} + +dependencies = [ + # PrgEnv version is not pinned, as Cray recommends to use the latest (default) version + ('PrgEnv-pgi', EXTERNAL_MODULE), + ('pgi/16.3.0' , EXTERNAL_MODULE), + ('cray-mpich/7.3.2', EXTERNAL_MODULE), +] + +moduleclass = 'toolchain' + diff --git a/c/CrossTalkZ/CrossTalkZ-1.4-foss-2016a.eb b/c/CrossTalkZ/CrossTalkZ-1.4-foss-2016a.eb new file mode 100644 index 00000000..2facea57 --- /dev/null +++ b/c/CrossTalkZ/CrossTalkZ-1.4-foss-2016a.eb @@ -0,0 +1,34 @@ +easyblock = 'CMakeMake' + +name = 'CrossTalkZ' +version = '1.4' + +homepage = 'http://sonnhammer.sbc.su.se/download/software/CrossTalkZ/' +description = """ +CrossTalkZ is a statistical method and software to assess the significance of crosstalk enrichment +between pairs of gene or protein groups in large biological networks. +""" + +toolchain = {'name': 'foss', 'version': '2016a'} +toolchainopts = {'usempi': True, 'pic': True} + +source_urls = [ + 'http://sonnhammer.sbc.su.se/download/software/CrossTalkZ/' +] +sources = ['%(name)s_%(version)s.tgz'] + +dependencies = [('Boost', '1.60.0')] + +builddependencies = [('CMake', '3.4.3',)] + + +start_dir = 'src' + +configopts = " -DBoost_NO_BOOST_CMAKE=ON -DBoost_NO_SYSTEM_PATHS=ON -DBOOST_ROOT=$EBROOTBOOST" + +sanity_check_paths = { + 'files': ['bin/CrossTalkZ'], + 'dirs': [''], +} + +moduleclass = 'bio' diff --git a/c/Cython/Cython-0.16-goolf-1.4.10-Python-2.7.3.eb b/c/Cython/Cython-0.16-goolf-1.4.10-Python-2.7.3.eb new file mode 100644 index 00000000..fa53744e --- /dev/null +++ b/c/Cython/Cython-0.16-goolf-1.4.10-Python-2.7.3.eb @@ -0,0 +1,28 @@ +easyblock = "PythonPackage" + +name = 'Cython' +version = '0.16' + +homepage = 'https://pypi.python.org/pypi/Cython/' +description = """The Cython language makes writing C extensions for the Python language as easy as Python itself. + Cython is a source code translator based on the well-known Pyrex, but supports more cutting edge functionality and optimizations.""" + +toolchain = {'name': 'goolf', 'version': '1.4.10'} + +source_urls = [PYPI_SOURCE] +sources = [SOURCE_TAR_GZ] + +python = 'Python' +pythonver = '2.7.3' +pythonshortver = '.'.join(pythonver.split('.')[0:2]) +pylibdir = 'lib/python%s/site-packages' % pythonshortver +versionsuffix = '-%s-%s' % (python, pythonver) + +dependencies = [(python, pythonver)] + +sanity_check_paths = { + 'files': ['bin/cygdb', 'bin/cython', '%s/%%(namelower)s.py' % pylibdir], + 'dirs': ['%s/%%(name)s' % pylibdir], +} + +moduleclass = 'lang' diff --git a/c/Cython/Cython-0.16-ictce-5.3.0-Python-2.7.3.eb b/c/Cython/Cython-0.16-ictce-5.3.0-Python-2.7.3.eb new file mode 100644 index 00000000..f2fb2774 --- /dev/null +++ b/c/Cython/Cython-0.16-ictce-5.3.0-Python-2.7.3.eb @@ -0,0 +1,28 @@ +easyblock = "PythonPackage" + +name = 'Cython' +version = '0.16' + +homepage = 'https://pypi.python.org/pypi/Cython/' +description = """The Cython language makes writing C extensions for the Python language as easy as Python itself. + Cython is a source code translator based on the well-known Pyrex, but supports more cutting edge functionality and optimizations.""" + +toolchain = {'name': 'ictce', 'version': '5.3.0'} + +source_urls = [PYPI_SOURCE] +sources = [SOURCE_TAR_GZ] + +python = 'Python' +pythonver = '2.7.3' +pythonshortver = '.'.join(pythonver.split('.')[0:2]) +pylibdir = 'lib/python%s/site-packages' % pythonshortver +versionsuffix = '-%s-%s' % (python, pythonver) + +dependencies = [(python, pythonver)] + +sanity_check_paths = { + 'files': ['bin/cygdb', 'bin/cython', '%s/%%(namelower)s.py' % pylibdir], + 'dirs': ['%s/%%(name)s' % pylibdir], +} + +moduleclass = 'lang' diff --git a/c/Cython/Cython-0.19.1-goolf-1.4.10-Python-2.7.3.eb b/c/Cython/Cython-0.19.1-goolf-1.4.10-Python-2.7.3.eb new file mode 100644 index 00000000..0e8ac631 --- /dev/null +++ b/c/Cython/Cython-0.19.1-goolf-1.4.10-Python-2.7.3.eb @@ -0,0 +1,28 @@ +easyblock = "PythonPackage" + +name = 'Cython' +version = '0.19.1' + +homepage = 'https://pypi.python.org/pypi/Cython/' +description = """The Cython language makes writing C extensions for the Python language as easy as Python itself. + Cython is a source code translator based on the well-known Pyrex, but supports more cutting edge functionality and optimizations.""" + +toolchain = {'name': 'goolf', 'version': '1.4.10'} + +source_urls = [PYPI_SOURCE] +sources = [SOURCE_TAR_GZ] + +python = 'Python' +pythonver = '2.7.3' +pythonshortver = '.'.join(pythonver.split('.')[0:2]) +pylibdir = 'lib/python%s/site-packages' % pythonshortver +versionsuffix = '-%s-%s' % (python, pythonver) + +dependencies = [(python, pythonver)] + +sanity_check_paths = { + 'files': ['bin/cygdb', 'bin/cython', '%s/%%(namelower)s.py' % pylibdir], + 'dirs': ['%s/%%(name)s' % pylibdir], +} + +moduleclass = 'lang' diff --git a/c/Cython/Cython-0.19.1-ictce-5.3.0-Python-2.7.3.eb b/c/Cython/Cython-0.19.1-ictce-5.3.0-Python-2.7.3.eb new file mode 100644 index 00000000..6ba8ee33 --- /dev/null +++ b/c/Cython/Cython-0.19.1-ictce-5.3.0-Python-2.7.3.eb @@ -0,0 +1,28 @@ +easyblock = "PythonPackage" + +name = 'Cython' +version = '0.19.1' + +homepage = 'https://pypi.python.org/pypi/Cython/' +description = """The Cython language makes writing C extensions for the Python language as easy as Python itself. + Cython is a source code translator based on the well-known Pyrex, but supports more cutting edge functionality and optimizations.""" + +toolchain = {'name': 'ictce', 'version': '5.3.0'} + +source_urls = [PYPI_SOURCE] +sources = [SOURCE_TAR_GZ] + +python = 'Python' +pythonver = '2.7.3' +pythonshortver = '.'.join(pythonver.split('.')[0:2]) +pylibdir = 'lib/python%s/site-packages' % pythonshortver +versionsuffix = '-%s-%s' % (python, pythonver) + +dependencies = [(python, pythonver)] + +sanity_check_paths = { + 'files': ['bin/cygdb', 'bin/cython', '%s/%%(namelower)s.py' % pylibdir], + 'dirs': ['%s/%%(name)s' % pylibdir], +} + +moduleclass = 'lang' diff --git a/c/Cython/Cython-0.19.2-ictce-5.5.0-Python-2.7.6.eb b/c/Cython/Cython-0.19.2-ictce-5.5.0-Python-2.7.6.eb new file mode 100644 index 00000000..80955e4c --- /dev/null +++ b/c/Cython/Cython-0.19.2-ictce-5.5.0-Python-2.7.6.eb @@ -0,0 +1,28 @@ +easyblock = "PythonPackage" + +name = 'Cython' +version = '0.19.2' + +homepage = 'https://pypi.python.org/pypi/Cython/' +description = """The Cython language makes writing C extensions for the Python language as easy as Python itself. + Cython is a source code translator based on the well-known Pyrex, but supports more cutting edge functionality and optimizations.""" + +toolchain = {'name': 'ictce', 'version': '5.5.0'} + +source_urls = [PYPI_SOURCE] +sources = [SOURCE_TAR_GZ] + +python = 'Python' +pythonver = '2.7.6' +pythonshortver = '.'.join(pythonver.split('.')[0:2]) +pylibdir = 'lib/python%s/site-packages' % pythonshortver +versionsuffix = '-%s-%s' % (python, pythonver) + +dependencies = [(python, pythonver)] + +sanity_check_paths = { + 'files': ['bin/cygdb', 'bin/cython', '%s/%%(namelower)s.py' % pylibdir], + 'dirs': ['%s/%%(name)s' % pylibdir], +} + +moduleclass = 'lang' diff --git a/c/Cython/Cython-0.22-goolf-1.4.10-Python-2.7.3.eb b/c/Cython/Cython-0.22-goolf-1.4.10-Python-2.7.3.eb new file mode 100644 index 00000000..1a87b1c9 --- /dev/null +++ b/c/Cython/Cython-0.22-goolf-1.4.10-Python-2.7.3.eb @@ -0,0 +1,28 @@ +easyblock = "PythonPackage" + +name = 'Cython' +version = '0.22' + +homepage = 'https://pypi.python.org/pypi/Cython/' +description = """The Cython language makes writing C extensions for the Python language as easy as Python itself. +Cython is a source code translator based on the well-known Pyrex, but supports more cutting edge functionality and optimizations.""" + +toolchain = {'name': 'goolf', 'version': '1.4.10'} + +source_urls = [PYPI_SOURCE] +sources = [SOURCELOWER_TAR_GZ] + +python = 'Python' +pythonver = '2.7.3' +versionsuffix = '-%s-%s' % (python, pythonver) +pyshortver = '.'.join(pythonver.split('.')[0:2]) +cythonlibdir = 'lib/python' + pyshortver + '/site-packages/Cython-%(version)s-py' + pyshortver + '-linux-x86_64.egg' + +dependencies = [(python, pythonver)] + +sanity_check_paths = { + 'files': ['bin/cygdb', 'bin/cython', '%s/%%(namelower)s.py' % cythonlibdir], + 'dirs': ['%s/%%(name)s' % cythonlibdir], +} + +moduleclass = 'lang' diff --git a/c/Cython/Cython-0.23.4-gimkl-2.11.5-Python-2.7.10.eb b/c/Cython/Cython-0.23.4-gimkl-2.11.5-Python-2.7.10.eb new file mode 100644 index 00000000..426fedf8 --- /dev/null +++ b/c/Cython/Cython-0.23.4-gimkl-2.11.5-Python-2.7.10.eb @@ -0,0 +1,24 @@ +easyblock = 'PythonPackage' + +name = 'Cython' +version = '0.23.4' +versionsuffix = '-Python-%(pyver)s' + +homepage = 'https://pypi.python.org/pypi/Cython/' +description = """The Cython language makes writing C extensions for the Python language as easy as Python itself. +Cython is a source code translator based on the well-known Pyrex, but supports more cutting edge functionality and optimizations.""" + +toolchain = {'name': 'gimkl', 'version': '2.11.5'} + +source_urls = [PYPI_SOURCE] +sources = [SOURCE_TAR_GZ] + +dependencies = [('Python', '2.7.10')] + +cythonlibdir = 'lib/python%(pyshortver)s/site-packages/Cython-%(version)s-py%(pyshortver)s-linux-x86_64.egg' +sanity_check_paths = { + 'files': ['bin/cygdb', 'bin/cython', '%s/%%(namelower)s.py' % cythonlibdir], + 'dirs': [cythonlibdir + '/%(name)s'] +} + +moduleclass = 'lang' diff --git a/c/Cython/Cython-0.24.1-foss-2016a-Python-2.7.11.eb b/c/Cython/Cython-0.24.1-foss-2016a-Python-2.7.11.eb new file mode 100644 index 00000000..a2db0bdd --- /dev/null +++ b/c/Cython/Cython-0.24.1-foss-2016a-Python-2.7.11.eb @@ -0,0 +1,24 @@ +easyblock = 'PythonPackage' + +name = 'Cython' +version = '0.24.1' +versionsuffix = '-Python-%(pyver)s' + +homepage = 'https://pypi.python.org/pypi/Cython/' +description = """The Cython language makes writing C extensions for the Python language as easy as Python itself. +Cython is a source code translator based on the well-known Pyrex, but supports more cutting edge functionality and optimizations.""" + +toolchain = {'name': 'foss', 'version': '2016a'} + +source_urls = [PYPI_SOURCE] +sources = [SOURCE_TAR_GZ] + +dependencies = [('Python', '2.7.11')] + +cythonlibdir = 'lib/python%(pyshortver)s/site-packages/Cython-%(version)s-py%(pyshortver)s-linux-x86_64.egg' +sanity_check_paths = { + 'files': ['bin/cygdb', 'bin/cython', '%s/%%(namelower)s.py' % cythonlibdir], + 'dirs': [cythonlibdir + '/%(name)s'] +} + +moduleclass = 'lang' diff --git a/c/cURL/cURL-7.37.1-intel-2015b.eb b/c/cURL/cURL-7.37.1-intel-2015b.eb new file mode 100644 index 00000000..0ff71847 --- /dev/null +++ b/c/cURL/cURL-7.37.1-intel-2015b.eb @@ -0,0 +1,53 @@ +# Built with EasyBuild version 2.1.1 on 2015-06-30_09-42-47 +easyblock = 'ConfigureMake' + +name = 'cURL' +version = '7.37.1' + +homepage = 'http://curl.haxx.se' +description = """libcurl is a free and easy-to-use client-side URL transfer library, + supporting DICT, FILE, FTP, FTPS, Gopher, HTTP, HTTPS, IMAP, IMAPS, LDAP, LDAPS, + POP3, POP3S, RTMP, RTSP, SCP, SFTP, SMTP, SMTPS, Telnet and TFTP. libcurl supports + SSL certificates, HTTP POST, HTTP PUT, FTP uploading, HTTP form based upload, + proxies, cookies, user+password authentication (Basic, Digest, NTLM, Negotiate, + Kerberos), file transfer resume, http proxy tunneling and more.""" + +toolchain = {'name': 'intel', 'version': '2015b'} + +sources = [SOURCELOWER_TAR_GZ] +source_urls = ['http://curl.haxx.se/download/'] + +#dependencies = [('OpenSSL', '1.0.1i')] # OS dependency should be preferred for security reasons +osdependencies = [('openssl-devel', 'libssl-dev', 'libopenssl-devel')] + +sanity_check_paths = { + 'files': ['bin/curl', 'lib/libcurl.a', 'lib/libcurl.so'], + 'dirs': ['lib/pkgconfig'], +} + +moduleclass = 'tools' + +# Build statistics +buildstats = [{ + "easybuild-framework_version": "2.1.1", + "easybuild-easyblocks_version": "2.1.1", + "timestamp": 1435650167, + "build_time": 192.99, + "install_size": 4111864, + "command_line": ['--buildpath=/easybuild/build', '--installpath=/apps', '--installpath-modules=/apps/modules', '--installpath-software=/apps', '--module-naming-scheme=IT4IModuleNamingScheme', '--modules-footer=/easybuild/templates/modules/jas02_footer.txt', '--repositorypath=/easybuild/file-repository', '--robot=/easybuild/easyconfigs-salomon/easybuild/easyconfigs', '--robot-paths=/easybuild/easyconfigs-salomon/easybuild/easyconfigs', '--sourcepath=/easybuild/sources', '--try-toolchain="[\'intel\', \'2015b\']"', 'netCDF-4.3.2-intel-2015a.eb'], + "modules_tool": ('EnvironmentModulesC', '/usr/bin/modulecmd', '3.2.10'), + "core_count": 28, + "cpu_model": "Intel(R) Xeon(R) CPU E5-2695 v3 @ 2.30GHz", + "cpu_speed": 2300.041, + "cpu_vendor": "Intel", + "gcc_version": "Using built-in specs.; COLLECT_GCC=gcc; COLLECT_LTO_WRAPPER=/apps/all/GCC/5.1.0-binutils-2.25/libexec/gcc/x86_64-unknown-linux-gnu/5.1.0/lto-wrapper; Target: x86_64-unknown-linux-gnu; Configured with: ../configure --enable-languages=c,c++,fortran --enable-lto --enable-checking=release --disable-multilib --enable-shared=yes --enable-static=yes --enable-threads=posix --enable-gold=default --enable-plugins --enable-ld --with-plugin-ld=ld.gold --prefix=/apps/all/GCC/5.1.0-binutils-2.25 --with-local-prefix=/apps/all/GCC/5.1.0-binutils-2.25 --enable-bootstrap --with-isl=/easybuild/build/GCC/5.1.0/dummy--binutils-2.25/gcc-5.1.0/stage2_stuff; Thread model: posix; gcc version 5.1.0 (GCC) ; ", + "glibc_version": "2.12", + "hostname": "login1", + "os_name": "centos", + "os_type": "Linux", + "os_version": "6.6", + "platform_name": "x86_64-unknown-linux", + "python_version": "2.6.6 (r266:84292, Jan 22 2014, 09:42:36) ; [GCC 4.4.7 20120313 (Red Hat 4.4.7-4)]", + "system_gcc_path": "/apps/all/GCC/5.1.0-binutils-2.25/bin/gcc", + "system_python_path": "/usr/bin/python", +}] diff --git a/c/cURL/cURL-7.37.1.eb b/c/cURL/cURL-7.37.1.eb new file mode 100644 index 00000000..aff46906 --- /dev/null +++ b/c/cURL/cURL-7.37.1.eb @@ -0,0 +1,27 @@ +easyblock = 'ConfigureMake' + +name = 'cURL' +version = '7.37.1' + +homepage = 'http://curl.haxx.se' +description = """libcurl is a free and easy-to-use client-side URL transfer library, + supporting DICT, FILE, FTP, FTPS, Gopher, HTTP, HTTPS, IMAP, IMAPS, LDAP, LDAPS, + POP3, POP3S, RTMP, RTSP, SCP, SFTP, SMTP, SMTPS, Telnet and TFTP. libcurl supports + SSL certificates, HTTP POST, HTTP PUT, FTP uploading, HTTP form based upload, + proxies, cookies, user+password authentication (Basic, Digest, NTLM, Negotiate, + Kerberos), file transfer resume, http proxy tunneling and more.""" + +toolchain = {'name': 'dummy', 'version': ''} + +sources = [SOURCELOWER_TAR_GZ] +source_urls = ['http://curl.haxx.se/download/'] + +# dependencies = [('OpenSSL', '1.0.1i')] # OS dependency should be preferred for security reasons +osdependencies = [('openssl-devel', 'libssl-dev', 'libopenssl-devel')] + +sanity_check_paths = { + 'files': ['bin/curl', 'lib/libcurl.a', 'lib/libcurl.%s' % SHLIB_EXT], + 'dirs': ['lib/pkgconfig'], +} + +moduleclass = 'tools' diff --git a/c/cURL/cURL-7.47.0-intel-2017.00.eb b/c/cURL/cURL-7.47.0-intel-2017.00.eb new file mode 100644 index 00000000..9acffcaf --- /dev/null +++ b/c/cURL/cURL-7.47.0-intel-2017.00.eb @@ -0,0 +1,31 @@ +easyblock = 'ConfigureMake' + +name = 'cURL' +version = '7.47.0' + +homepage = 'http://curl.haxx.se' +description = """libcurl is a free and easy-to-use client-side URL transfer library, + supporting DICT, FILE, FTP, FTPS, Gopher, HTTP, HTTPS, IMAP, IMAPS, LDAP, LDAPS, + POP3, POP3S, RTMP, RTSP, SCP, SFTP, SMTP, SMTPS, Telnet and TFTP. libcurl supports + SSL certificates, HTTP POST, HTTP PUT, FTP uploading, HTTP form based upload, + proxies, cookies, user+password authentication (Basic, Digest, NTLM, Negotiate, + Kerberos), file transfer resume, http proxy tunneling and more.""" + +toolchain = {'name': 'intel', 'version': '2017.00'} + +sources = [SOURCELOWER_TAR_GZ] +source_urls = ['http://curl.haxx.se/download/'] + +osdependencies = [('openssl-devel', 'libssl-dev', 'libopenssl-devel')] + +# dependencies = [('OpenSSL', '1.0.1s')] +# configopts = "--with-ssl=$EBROOTOPENSSL" + +modextravars = {'CURL_INCLUDES': '%(installdir)s/include'} + +sanity_check_paths = { + 'files': ['bin/curl', 'lib/libcurl.a', 'lib/libcurl.%s' % SHLIB_EXT], + 'dirs': ['lib/pkgconfig'], +} + +moduleclass = 'tools' diff --git a/c/cURL/cURL-7.49.1-intel-2017a.eb b/c/cURL/cURL-7.49.1-intel-2017a.eb new file mode 100644 index 00000000..91407dd7 --- /dev/null +++ b/c/cURL/cURL-7.49.1-intel-2017a.eb @@ -0,0 +1,31 @@ +easyblock = 'ConfigureMake' + +name = 'cURL' +version = '7.49.1' + +homepage = 'http://curl.haxx.se' +description = """libcurl is a free and easy-to-use client-side URL transfer library, + supporting DICT, FILE, FTP, FTPS, Gopher, HTTP, HTTPS, IMAP, IMAPS, LDAP, LDAPS, + POP3, POP3S, RTMP, RTSP, SCP, SFTP, SMTP, SMTPS, Telnet and TFTP. libcurl supports + SSL certificates, HTTP POST, HTTP PUT, FTP uploading, HTTP form based upload, + proxies, cookies, user+password authentication (Basic, Digest, NTLM, Negotiate, + Kerberos), file transfer resume, http proxy tunneling and more.""" + +toolchain = {'name': 'intel', 'version': '2017a'} + +sources = [SOURCELOWER_TAR_GZ] +source_urls = ['http://curl.haxx.se/download/'] + +osdependencies = [('openssl-devel', 'libssl-dev', 'libopenssl-devel')] + +# dependencies = [('OpenSSL', '1.0.1t')] +# configopts = "--with-ssl=$EBROOTOPENSSL" + +modextravars = {'CURL_INCLUDES': '%(installdir)s/include'} + +sanity_check_paths = { + 'files': ['bin/curl', 'lib/libcurl.a', 'lib/libcurl.%s' % SHLIB_EXT], + 'dirs': ['lib/pkgconfig'], +} + +moduleclass = 'tools' diff --git a/c/cURL/cURL-7.51.0-intel-2017.00.eb b/c/cURL/cURL-7.51.0-intel-2017.00.eb new file mode 100644 index 00000000..a3bf471d --- /dev/null +++ b/c/cURL/cURL-7.51.0-intel-2017.00.eb @@ -0,0 +1,31 @@ +easyblock = 'ConfigureMake' + +name = 'cURL' +version = '7.51.0' + +homepage = 'http://curl.haxx.se' +description = """libcurl is a free and easy-to-use client-side URL transfer library, + supporting DICT, FILE, FTP, FTPS, Gopher, HTTP, HTTPS, IMAP, IMAPS, LDAP, LDAPS, + POP3, POP3S, RTMP, RTSP, SCP, SFTP, SMTP, SMTPS, Telnet and TFTP. libcurl supports + SSL certificates, HTTP POST, HTTP PUT, FTP uploading, HTTP form based upload, + proxies, cookies, user+password authentication (Basic, Digest, NTLM, Negotiate, + Kerberos), file transfer resume, http proxy tunneling and more.""" + +toolchain = {'name': 'intel', 'version': '2017.00'} + +sources = [SOURCELOWER_TAR_GZ] +source_urls = ['http://curl.haxx.se/download/'] + +osdependencies = [('openssl-devel', 'libssl-dev', 'libopenssl-devel')] + +# dependencies = [('OpenSSL', '1.0.1s')] +# configopts = "--with-ssl=$EBROOTOPENSSL" + +modextravars = {'CURL_INCLUDES': '%(installdir)s/include'} + +sanity_check_paths = { + 'files': ['bin/curl', 'lib/libcurl.a', 'lib/libcurl.%s' % SHLIB_EXT], + 'dirs': ['lib/pkgconfig'], +} + +moduleclass = 'tools' diff --git a/c/cURL/cURL-7.51.0.eb b/c/cURL/cURL-7.51.0.eb new file mode 100644 index 00000000..0f414129 --- /dev/null +++ b/c/cURL/cURL-7.51.0.eb @@ -0,0 +1,27 @@ +easyblock = 'ConfigureMake' + +name = 'cURL' +version = '7.51.0' + +homepage = 'http://curl.haxx.se' +description = """libcurl is a free and easy-to-use client-side URL transfer library, + supporting DICT, FILE, FTP, FTPS, Gopher, HTTP, HTTPS, IMAP, IMAPS, LDAP, LDAPS, + POP3, POP3S, RTMP, RTSP, SCP, SFTP, SMTP, SMTPS, Telnet and TFTP. libcurl supports + SSL certificates, HTTP POST, HTTP PUT, FTP uploading, HTTP form based upload, + proxies, cookies, user+password authentication (Basic, Digest, NTLM, Negotiate, + Kerberos), file transfer resume, http proxy tunneling and more.""" + +toolchain = {'name': 'dummy', 'version': ''} + +sources = [SOURCELOWER_TAR_GZ] +source_urls = ['http://curl.haxx.se/download/'] + +# dependencies = [('OpenSSL', '1.0.1i')] # OS dependency should be preferred for security reasons +osdependencies = [('openssl-devel', 'libssl-dev', 'libopenssl-devel')] + +sanity_check_paths = { + 'files': ['bin/curl', 'lib/libcurl.a', 'lib/libcurl.%s' % SHLIB_EXT], + 'dirs': ['lib/pkgconfig'], +} + +moduleclass = 'tools' diff --git a/c/cclib/cclib-1.5-foss-2016b-Python-3.5.2.eb b/c/cclib/cclib-1.5-foss-2016b-Python-3.5.2.eb new file mode 100644 index 00000000..78196b3b --- /dev/null +++ b/c/cclib/cclib-1.5-foss-2016b-Python-3.5.2.eb @@ -0,0 +1,26 @@ +easyblock = 'PythonPackage' + +name = 'cclib' +version = '1.5' +versionsuffix = '-Python-%(pyver)s' + +homepage = 'http://cclib.github.io/' +description = """cclib is a Python library that provides parsers for computational chemistry log files. + It alsoprovides a platform to implement algorithms in a package-independent manner. +""" + +toolchain = {'name': 'foss', 'version': '2016b'} + +source_urls = ['https://github.com/cclib/cclib/releases/download/v%(version)s/'] +sources = ['%(name)s-%(version)s.post1.tar.gz'] + +dependencies = [ + ('Python', '3.5.2'), # This contains numpy as extension needed for cclib +] + +sanity_check_paths = { + 'files': [], + 'dirs': ['lib/python%(pyshortver)s/site-packages/%(name)s'], +} + +moduleclass = 'tools' diff --git a/c/cramtools/cramtools-2.0-Java-1.7.0_80.eb b/c/cramtools/cramtools-2.0-Java-1.7.0_80.eb new file mode 100644 index 00000000..d2027312 --- /dev/null +++ b/c/cramtools/cramtools-2.0-Java-1.7.0_80.eb @@ -0,0 +1,29 @@ +easyblock = 'Tarball' + +name = 'cramtools' +version = '2.0' + +homepage = 'https://github.com/enasequence/cramtools/' +description = """CRAMTools is a set of Java tools and APIs for efficient compression of sequence +read data. Although this is intended as a stable version the code is released as +early access. Parts of the CRAMTools are experimental and may not be supported +in the future.""" + +toolchain = {'name': 'dummy', 'version': ''} + +sources = ['v%(version)s.tar.gz'] +source_urls = ['https://github.com/enasequence/%(name)s/archive/'] + +java = 'Java' +javaver = '1.7.0_80' +versionsuffix = '-%s-%s' % (java, javaver) +dependencies = [(java, javaver)] + +modloadmsg = "To execute cramtools run: java -jar \\${EBROOTCRAMTOOLS}/%(name)s-%(version)s.jar" + +sanity_check_paths = { + 'files': ["%(name)s-%(version)s.jar"], + 'dirs': ["lib"] +} + +moduleclass = 'bio' diff --git a/c/cramtools/cramtools-3.0-Java-1.7.0_80.eb b/c/cramtools/cramtools-3.0-Java-1.7.0_80.eb new file mode 100644 index 00000000..d00a912e --- /dev/null +++ b/c/cramtools/cramtools-3.0-Java-1.7.0_80.eb @@ -0,0 +1,27 @@ +easyblock = 'Tarball' + +name = 'cramtools' +version = '3.0' +versionsuffix = "-Java-%(javaver)s" + +homepage = 'https://github.com/enasequence/cramtools/' +description = """CRAMTools is a set of Java tools and APIs for efficient compression of sequence +read data. Although this is intended as a stable version the code is released as +early access. Parts of the CRAMTools are experimental and may not be supported +in the future.""" + +toolchain = {'name': 'dummy', 'version': ''} + +sources = ['v%(version)s.tar.gz'] +source_urls = ['https://github.com/enasequence/%(name)s/archive/'] + +dependencies = [('Java', '1.7.0_80')] + +modloadmsg = "To execute cramtools run: java -jar \\${EBROOTCRAMTOOLS}/%(name)s-%(version)s.jar" + +sanity_check_paths = { + 'files': ["%(name)s-%(version)s.jar"], + 'dirs': ["lib"] +} + +moduleclass = 'bio' diff --git a/c/ctffind/ctffind-4.0.17-intel-2015b.eb b/c/ctffind/ctffind-4.0.17-intel-2015b.eb new file mode 100644 index 00000000..c378da30 --- /dev/null +++ b/c/ctffind/ctffind-4.0.17-intel-2015b.eb @@ -0,0 +1,38 @@ +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# Author: Pablo Escobar Lopez +# sciCORE - University of Basel +# SIB Swiss Institute of Bioinformatics + +easyblock = 'MakeCp' + +name = 'ctffind' +version = '4.0.17' + +homepage = 'http://grigoriefflab.janelia.org/ctffind4' +description = """program for finding CTFs of electron micrographs""" + +toolchain = {'name': 'intel', 'version': '2015b'} +toolchainopts = {'openmp': True} + +source_urls = ['http://grigoriefflab.janelia.org/sites/default/files/'] +sources = [SOURCELOWER_TAR_GZ] + +dependencies = [('GSL', '1.16')] + +# when running ./configure in the root folder it fails. +# application doesn't provide a 'make install' +prebuildopts = 'mkdir build && cd build && ' +prebuildopts += ' ../configure --enable-static --disable-debug --enable-optimisations --enable-openmp FC=${FC} F77=${F77} && ' + +files_to_copy = [(['build/ctffind'], 'bin'), 'doc', 'scripts'] + +parallel = 1 + +sanity_check_paths = { + 'files': ['bin/ctffind'], + 'dirs': [], +} + +modloadmsg = """Define OMP_NUM_THREADS or use the command line option --omp-num-threads=N when using this application""" + +moduleclass = 'bio' diff --git a/c/cuDNN/cuDNN-5.1-CUDA-8.0.44.eb b/c/cuDNN/cuDNN-5.1-CUDA-8.0.44.eb new file mode 100644 index 00000000..0cbdeea8 --- /dev/null +++ b/c/cuDNN/cuDNN-5.1-CUDA-8.0.44.eb @@ -0,0 +1,35 @@ +## +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# +# Author: Stephane Thiell +## +easyblock = 'Tarball' + +name = 'cuDNN' +version = '5.1' +cuda_version = '8.0.44' + +versionsuffix = '-CUDA-%s' % cuda_version + +homepage = 'https://developer.nvidia.com/cudnn' +description = """The NVIDIA CUDA Deep Neural Network library (cuDNN) is a GPU-accelerated library of primitives for + deep neural networks.""" + +toolchain = {'name': 'dummy', 'version': 'dummy'} + +# Nvidia developer registration required. +# Download link: https://developer.nvidia.com/rdp/cudnn-download +sources = ['%(namelower)s-8.0-linux-x64-v%(version)s.tgz'] + +dependencies = [('CUDA', cuda_version)] + +checksums = [ + '099ca6a9b21b35e32f3408eff2a1c06d', # cudnn-8.0-linux-x64-v5.1.tgz +] + +sanity_check_paths = { + 'files': ['include/cudnn.h', 'lib64/libcudnn_static.a'], + 'dirs': ['include', 'lib64'], +} + +moduleclass = 'numlib' diff --git a/c/cutadapt/cutadapt-1.5-goolf-1.4.10-Python-2.7.10.eb b/c/cutadapt/cutadapt-1.5-goolf-1.4.10-Python-2.7.10.eb new file mode 100644 index 00000000..141aedc7 --- /dev/null +++ b/c/cutadapt/cutadapt-1.5-goolf-1.4.10-Python-2.7.10.eb @@ -0,0 +1,33 @@ +easyblock = "PythonPackage" + +name = 'cutadapt' +version = '1.5' + +homepage = 'http://code.google.com/p/cutadapt/' +description = """ cutadapt removes adapter sequences + from high-throughput sequencing data. This is usually + necessary when the read length of the sequencing machine + is longer than the molecule that is sequenced, for + example when sequencing microRNAs. """ + +toolchain = {'name': 'goolf', 'version': '1.4.10'} + +source_urls = ['http://cutadapt.googlecode.com/files/'] +sources = [SOURCELOWER_TAR_GZ] + +python = 'Python' +pyver = '2.7.10' +pyshortver = '.'.join(pyver.split('.')[:2]) + +versionsuffix = "-%s-%s" % (python, pyver) + +dependencies = [ + (python, pyver), +] + +sanity_check_paths = { + 'files': ['lib/python%s/site-packages/cutadapt/_align.%s' % (pyshortver, SHLIB_EXT)], + 'dirs': [], +} + +moduleclass = 'bio' diff --git a/c/cutadapt/cutadapt-1.9.1-foss-2016a-Python-2.7.11.eb b/c/cutadapt/cutadapt-1.9.1-foss-2016a-Python-2.7.11.eb new file mode 100644 index 00000000..5c57e584 --- /dev/null +++ b/c/cutadapt/cutadapt-1.9.1-foss-2016a-Python-2.7.11.eb @@ -0,0 +1,32 @@ +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# Author: Pablo Escobar Lopez +# Swiss Institute of Bioinformatics (SIB) +# Biozentrum - University of Basel +# Author: Adam Huffman +# The Francis Crick Institute + +easyblock = "PythonPackage" + +name = 'cutadapt' +version = '1.9.1' +versionsuffix = '-Python-%(pyver)s' + +homepage = 'http://opensource.scilifelab.se/projects/cutadapt/' +description = """ Cutadapt finds and removes adapter sequences, primers, poly-A tails and + other types of unwanted sequence from your high-throughput sequencing reads. """ + +toolchain = {'name': 'foss', 'version': '2016a'} + +source_urls = [PYPI_SOURCE] +sources = [SOURCELOWER_TAR_GZ] + +dependencies = [ + ('Python', '2.7.11'), +] + +sanity_check_paths = { + 'files': ['bin/cutadapt'], + 'dirs': ['lib/python%(pyshortver)s/site-packages/cutadapt/'], +} + +moduleclass = 'bio' diff --git a/d/DB/DB-6.2.23-foss-2016a.eb b/d/DB/DB-6.2.23-foss-2016a.eb new file mode 100644 index 00000000..fcf1bd76 --- /dev/null +++ b/d/DB/DB-6.2.23-foss-2016a.eb @@ -0,0 +1,18 @@ +name = 'DB' +version = '6.2.23' + +homepage = 'http://www.oracle.com/technetwork/products/berkeleydb' +description = """Berkeley DB enables the development of custom data management solutions, + without the overhead traditionally associated with such custom projects.""" + +toolchain = {'name': 'foss', 'version': '2016a'} + +# download via http://www.oracle.com/technetwork/products/berkeleydb/downloads/, requires registration +sources = [SOURCELOWER_TAR_GZ] + +sanity_check_paths = { + 'files': ["include/db.h"], + 'dirs': [], +} + +moduleclass = 'tools' \ No newline at end of file diff --git a/d/DBD-mysql/DBD-mysql-4.032-intel-2016a-Perl-5.22.2.eb b/d/DBD-mysql/DBD-mysql-4.032-intel-2016a-Perl-5.22.2.eb new file mode 100644 index 00000000..6491ebe7 --- /dev/null +++ b/d/DBD-mysql/DBD-mysql-4.032-intel-2016a-Perl-5.22.2.eb @@ -0,0 +1,36 @@ +easyblock = 'PerlModule' + +name = 'DBD-mysql' +version = '4.032' +versionsuffix = '-Perl-%(perlver)s' + +homepage = 'http://search.cpan.org/~capttofu/DBD-mysql-%(version)s/' +description = """Perl binding for MySQL""" + +toolchain = {'name': 'intel', 'version': '2016a'} + +source_urls = ['http://cpan.metacpan.org/authors/id/C/CA/CAPTTOFU/'] +sources = [SOURCE_TAR_GZ] + +dependencies = [ + ('Perl', '5.22.2'), + ('MariaDB', '10.1.13'), + ('zlib', '1.2.8'), + # OS dependency should be preferred if the os version is more recent then this version + # it's nice to have an up to date openssl for security reasons + #('OpenSSL', '1.0.1q'), +] + +osdependencies = [('openssl-devel', 'libssl-dev', 'libopenssl-devel')] + +# force static linking of libmysqlclient to dance around problem with unresolved symbols +configopts = '--libs="-L$EBROOTMARIADB/lib -Wl,-Bstatic -lmysqlclient -Wl,-Bdynamic -lpthread -lz -lrt -lssl -lcrypto"' + +options = {'modulename': 'DBD::mysql'} + +sanity_check_paths = { + 'files': ['lib/perl5/site_perl/%(perlver)s/x86_64-linux-thread-multi/DBD/mysql.pm'], + 'dirs': ['lib/perl5/site_perl/%(perlver)s/x86_64-linux-thread-multi/DBD/mysql'], +} + +moduleclass = 'data' diff --git a/d/DBD-mysql/DBD-mysql-4.033-intel-2016b-Perl-5.24.0.eb b/d/DBD-mysql/DBD-mysql-4.033-intel-2016b-Perl-5.24.0.eb new file mode 100644 index 00000000..0a65c07d --- /dev/null +++ b/d/DBD-mysql/DBD-mysql-4.033-intel-2016b-Perl-5.24.0.eb @@ -0,0 +1,36 @@ +easyblock = 'PerlModule' + +name = 'DBD-mysql' +version = '4.033' +versionsuffix = '-Perl-%(perlver)s' + +homepage = 'http://search.cpan.org/~capttofu/DBD-mysql-%(version)s/' +description = """Perl binding for MySQL""" + +toolchain = {'name': 'intel', 'version': '2016b'} + +source_urls = ['http://cpan.metacpan.org/authors/id/C/CA/CAPTTOFU/'] +sources = [SOURCE_TAR_GZ] + +dependencies = [ + ('Perl', '5.24.0'), + ('MariaDB', '10.1.17'), + ('zlib', '1.2.8'), + # OS dependency should be preferred if the os version is more recent then this version + # it's nice to have an up to date openssl for security reasons + #('OpenSSL', '1.0.1q'), +] + +osdependencies = [('openssl-devel', 'libssl-dev', 'libopenssl-devel')] + +# force static linking of libmysqlclient to dance around problem with unresolved symbols +configopts = '--libs="-L$EBROOTMARIADB/lib -Wl,-Bstatic -lmysqlclient -Wl,-Bdynamic -lpthread -lz -lrt -lssl -lcrypto"' + +options = {'modulename': 'DBD::mysql'} + +sanity_check_paths = { + 'files': ['lib/perl5/site_perl/%(perlver)s/x86_64-linux-thread-multi/DBD/mysql.pm'], + 'dirs': ['lib/perl5/site_perl/%(perlver)s/x86_64-linux-thread-multi/DBD/mysql'], +} + +moduleclass = 'data' diff --git a/d/DB_File/DB_File-1.835-foss-2016a-Perl-5.22.1.eb b/d/DB_File/DB_File-1.835-foss-2016a-Perl-5.22.1.eb new file mode 100644 index 00000000..8c069fec --- /dev/null +++ b/d/DB_File/DB_File-1.835-foss-2016a-Perl-5.22.1.eb @@ -0,0 +1,28 @@ +easyblock = 'PerlModule' + +name = 'DB_File' +version = '1.835' +versionsuffix = '-Perl-%(perlver)s' + +homepage = 'http://perldoc.perl.org/DB_File.html' +description = """Perl5 access to Berkeley DB version 1.x.""" + +toolchain = {'name': 'foss', 'version': '2016a'} + +source_urls = ['http://www.cpan.org/modules/by-module/DB_File/PMQS'] +sources = [SOURCE_TAR_GZ] + +dependencies = [ + ('Perl', '5.22.1'), + ('DB', '6.2.23'), +] + +preconfigopts = 'env DB_FILE_INCLUDE="$EBROOTDB/include" DB_FILE_LIB="$EBROOTDB/lib" ' + +sanity_check_paths = { + 'files': ['lib/perl5/site_perl/%(perlver)s/x86_64-linux-thread-multi/DB_File.pm'], + 'dirs': [], +} + +moduleclass = 'data' + diff --git a/d/DBus/DBus-1.10.12-intel-2016b.eb b/d/DBus/DBus-1.10.12-intel-2016b.eb new file mode 100644 index 00000000..7071afdb --- /dev/null +++ b/d/DBus/DBus-1.10.12-intel-2016b.eb @@ -0,0 +1,24 @@ +easyblock = 'ConfigureMake' + +name = 'DBus' +version = '1.10.12' + +homepage = 'http://dbus.freedesktop.org/doc/dbus-glib' +description = """D-Bus is a message bus system, a simple way for applications to talk + to one another. In addition to interprocess communication, D-Bus helps + coordinate process lifecycle; it makes it simple and reliable to code + a "single instance" application or daemon, and to launch applications + and daemons on demand when their services are needed.""" + +toolchain = {'name': 'intel', 'version': '2016b'} + +source_urls = ['http://dbus.freedesktop.org/releases/dbus'] +sources = [SOURCELOWER_TAR_GZ] + +sanity_check_paths = { + 'files': ['bin/dbus-%s' % x for x in ['cleanup-sockets', 'daemon', 'launch', 'monitor', 'run-session', 'send', 'uuidgen']] + + ['lib/libdbus-1.%s' % x for x in ['a', SHLIB_EXT]], + 'dirs': ['include', 'share'] +} + +moduleclass = 'devel' diff --git a/d/DBus/DBus-1.10.8-foss-2016a.eb b/d/DBus/DBus-1.10.8-foss-2016a.eb new file mode 100644 index 00000000..0940c66f --- /dev/null +++ b/d/DBus/DBus-1.10.8-foss-2016a.eb @@ -0,0 +1,24 @@ +easyblock = 'ConfigureMake' + +name = 'DBus' +version = '1.10.8' + +homepage = 'http://dbus.freedesktop.org/doc/dbus-glib' +description = """D-Bus is a message bus system, a simple way for applications to talk + to one another. In addition to interprocess communication, D-Bus helps + coordinate process lifecycle; it makes it simple and reliable to code + a "single instance" application or daemon, and to launch applications + and daemons on demand when their services are needed.""" + +toolchain = {'name': 'foss', 'version': '2016a'} + +source_urls = ['http://dbus.freedesktop.org/releases/dbus'] +sources = [SOURCELOWER_TAR_GZ] + +sanity_check_paths = { + 'files': ['bin/dbus-%s' % x for x in ['cleanup-sockets', 'daemon', 'launch', 'monitor', 'run-session', 'send', 'uuidgen']] + + ['lib/libdbus-1.%s' % x for x in ['a', SHLIB_EXT]], + 'dirs': ['include', 'share'] +} + +moduleclass = 'devel' diff --git a/d/DBus/DBus-1.10.8-intel-2016a.eb b/d/DBus/DBus-1.10.8-intel-2016a.eb new file mode 100644 index 00000000..f3228813 --- /dev/null +++ b/d/DBus/DBus-1.10.8-intel-2016a.eb @@ -0,0 +1,24 @@ +easyblock = 'ConfigureMake' + +name = 'DBus' +version = '1.10.8' + +homepage = 'http://dbus.freedesktop.org/doc/dbus-glib' +description = """D-Bus is a message bus system, a simple way for applications to talk + to one another. In addition to interprocess communication, D-Bus helps + coordinate process lifecycle; it makes it simple and reliable to code + a "single instance" application or daemon, and to launch applications + and daemons on demand when their services are needed.""" + +toolchain = {'name': 'intel', 'version': '2016a'} + +source_urls = ['http://dbus.freedesktop.org/releases/dbus'] +sources = [SOURCELOWER_TAR_GZ] + +sanity_check_paths = { + 'files': ['bin/dbus-%s' % x for x in ['cleanup-sockets', 'daemon', 'launch', 'monitor', 'run-session', 'send', 'uuidgen']] + + ['lib/libdbus-1.%s' % x for x in ['a', SHLIB_EXT]], + 'dirs': ['include', 'share'] +} + +moduleclass = 'devel' diff --git a/d/DCW/DCW-1.1.2.eb b/d/DCW/DCW-1.1.2.eb new file mode 100644 index 00000000..dc7ed03d --- /dev/null +++ b/d/DCW/DCW-1.1.2.eb @@ -0,0 +1,19 @@ +easyblock = 'Tarball' + +name = 'DCW' +version = '1.1.2' + +homepage = 'http://gmt.soest.hawaii.edu/projects/gmt' +description = """country polygons for GMT""" + +toolchain = {'name': 'dummy', 'version': 'dummy'} + +source_urls = ['ftp://ftp.geologi.uio.no/pub/gmt'] +sources = ['%(namelower)s-gmt-%(version)s.tar.gz'] + +sanity_check_paths = { + 'files': ['dcw-gmt.nc'], + 'dirs': [], +} + +moduleclass = 'geo' diff --git a/d/DFT-D3/DFT-D3-3.1.1-intel-2015a.eb b/d/DFT-D3/DFT-D3-3.1.1-intel-2015a.eb new file mode 100644 index 00000000..99e680c2 --- /dev/null +++ b/d/DFT-D3/DFT-D3-3.1.1-intel-2015a.eb @@ -0,0 +1,29 @@ +easyblock = 'MakeCp' + +name = 'DFT-D3' +version = '3.1.1' + +homepage = 'http://www.thch.uni-bonn.de/tc/index.php?section=downloads&subsection=DFT-D3&lang=english' +description = """DFT-D3 implements a dispersion correction for density functionals, Hartree-Fock and semi-empirical quantum chemical methods.""" + +toolchain = {'name': 'intel', 'version': '2015a'} + +source_urls = ['http://www.thch.uni-bonn.de/tc/downloads/%(name)s/data'] +# Note that the DFT-D3 tarball is named as "dftd3.tgz" with no version +# numbering. Also, the authors are prone (alas) to stealth upgrades, so that two +# tarballs with the same version number can have different checksums. For this +# reason, it is suggested to manually download and rename the tarball. The +# checksum may also need updating from time to time. +# Checksum last updated: 15 April 2016 +# Date tarball was reported to have been modified: 11 January 2016 +sources = ['dftd3-%(version)s.tgz'] +checksums = [('md5', 'c9d6a92c43bb2ba71ad75f388fdce216')] + +files_to_copy = [(['dftd3'], 'bin'), (['man.pdf'], 'doc')] + +sanity_check_paths = { + 'files': ['bin/dftd3'], + 'dirs': [], +} + +moduleclass = 'chem' diff --git a/d/DIAL/DIAL-2011.06.06-foss-2016a.eb b/d/DIAL/DIAL-2011.06.06-foss-2016a.eb new file mode 100644 index 00000000..0edd0228 --- /dev/null +++ b/d/DIAL/DIAL-2011.06.06-foss-2016a.eb @@ -0,0 +1,33 @@ +easyblock = 'ConfigureMake' + +name = 'DIAL' +version = '2011.06.06' + +homepage = 'http://www.bx.psu.edu/miller_lab/' +description = """DIAL (De novo Identification of Alleles) is a collection of programs + to automate the discovery of alleles for a species where we lack a reference sequence. + The SNPs/alleles are specifically selected for a low error rate in genotyping assays. +""" + +toolchain = {'name': 'foss', 'version': '2016a'} + +sources = [SOURCE_TAR_GZ] +source_urls = ['http://www.bx.psu.edu/miller_lab/dist/'] + +patches = ['DIAL-%(version)s_Makefile.in.patch'] + +dependencies = [ + ('LASTZ', '1.02.00'), +] + +binaries = [ 'assemble', 'assemble1', 'assemble_illumina', 'build_sff_index', 'convertFastqFasta', + 'cull_components', 'DIAL', 'filter', 'filter_clusters', 'fish_clusters', 'make_template', + 'masker', 'partition', 'remove_clones', 'remove_clusters', 'update', 'update_clusters', + 'update_status',] + +sanity_check_paths = { + 'files': ['bin/%s' % binfile for binfile in binaries], + 'dirs': ['bin'] +} + +moduleclass = 'bio' diff --git a/d/DL_POLY_Classic/DL_POLY_Classic-1.9-ictce-5.3.0-no-gui.eb b/d/DL_POLY_Classic/DL_POLY_Classic-1.9-ictce-5.3.0-no-gui.eb new file mode 100644 index 00000000..a5b0e169 --- /dev/null +++ b/d/DL_POLY_Classic/DL_POLY_Classic-1.9-ictce-5.3.0-no-gui.eb @@ -0,0 +1,22 @@ +name = 'DL_POLY_Classic' +version = '1.9' +versionsuffix = '-no-gui' + +homepage = 'http://ccpforge.cse.rl.ac.uk/gf/project/dl_poly_classic/' +description = """DL_POLY Classic is a freely available molecular dynamics program developed + from the DL_POLY_2 package. This version does not install the java gui.""" + +toolchain = {'name': 'ictce', 'version': '5.3.0'} + +sources = ['dl_class_%(version)s.tar.gz'] +source_urls = ['http://ccpforge.cse.rl.ac.uk/gf/download/frsrelease/255/2627/'] + +sanity_check_paths = { + 'files': ['bin/DLPOLY.X'], + 'dirs': [] +} + +# parallel build tends to break +parallel = 1 + +moduleclass = 'chem' diff --git a/d/DMTCP/DMTCP-2.4.5.eb b/d/DMTCP/DMTCP-2.4.5.eb new file mode 100644 index 00000000..597de079 --- /dev/null +++ b/d/DMTCP/DMTCP-2.4.5.eb @@ -0,0 +1,27 @@ +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# Author: Ravi Tripathi +# Email: ravi89@uab.edu + +easyblock = 'ConfigureMake' + +name = 'DMTCP' +version = '2.4.5' + +homepage = "http://dmtcp.sourceforge.net/index.html" +description = """DMTCP (Distributed MultiThreaded Checkpointing) +transparently checkpoints a single-host or distributed computation +in user-space -- with no modifications to user code or to the O/S.""" + +toolchain = {'name': 'dummy', 'version': 'dummy'} + +source_urls = ['https://github.com/dmtcp/dmtcp/archive/'] +sources = ['%(version)s.tar.gz'] + +sanity_check_paths = { + 'files': ['bin/dmtcp_command', 'bin/dmtcp_discover_rm', 'bin/dmtcp_nocheckpoint', 'bin/dmtcp_srun_helper', + 'bin/dmtcp_sshd', 'bin/dmtcp_coordinator', 'bin/dmtcp_launch', 'bin/dmtcp_restart', 'bin/dmtcp_ssh'], + 'dirs': [], +} + +moduleclass = 'tools' + diff --git a/d/Doxygen/Doxygen-1.8.10-intel-2017.00.eb b/d/Doxygen/Doxygen-1.8.10-intel-2017.00.eb new file mode 100644 index 00000000..3c5df3c7 --- /dev/null +++ b/d/Doxygen/Doxygen-1.8.10-intel-2017.00.eb @@ -0,0 +1,19 @@ +name = 'Doxygen' +version = '1.8.10' + +homepage = 'http://www.doxygen.org' +description = """Doxygen is a documentation system for C++, C, Java, Objective-C, Python, + IDL (Corba and Microsoft flavors), Fortran, VHDL, PHP, C#, and to some extent D.""" + +toolchain = {'name': 'intel', 'version': '2017.00'} + +sources = ['%(namelower)s-%(version)s.src.tar.gz'] +source_urls = ['http://ftp.stack.nl/pub/users/dimitri/'] + +builddependencies = [ + ('CMake', '3.5.2'), + ('flex', '2.5.39'), + ('Bison', '3.0.4'), +] + +moduleclass = 'devel' diff --git a/d/Doxygen/Doxygen-1.8.11-intel-2017.00.eb b/d/Doxygen/Doxygen-1.8.11-intel-2017.00.eb new file mode 100644 index 00000000..a430f06c --- /dev/null +++ b/d/Doxygen/Doxygen-1.8.11-intel-2017.00.eb @@ -0,0 +1,19 @@ +name = 'Doxygen' +version = '1.8.11' + +homepage = 'http://www.doxygen.org' +description = """Doxygen is a documentation system for C++, C, Java, Objective-C, Python, + IDL (Corba and Microsoft flavors), Fortran, VHDL, PHP, C#, and to some extent D.""" + +toolchain = {'name': 'intel', 'version': '2017.00'} + +sources = ['%(namelower)s-%(version)s.src.tar.gz'] +source_urls = ['http://ftp.stack.nl/pub/users/dimitri/'] + +builddependencies = [ + ('CMake', '3.5.2'), + ('flex', '2.5.39'), + ('Bison', '3.0.4'), +] + +moduleclass = 'devel' diff --git a/d/Doxygen/Doxygen-1.8.11-intel-2017a.eb b/d/Doxygen/Doxygen-1.8.11-intel-2017a.eb new file mode 100644 index 00000000..3c0fdf85 --- /dev/null +++ b/d/Doxygen/Doxygen-1.8.11-intel-2017a.eb @@ -0,0 +1,21 @@ +name = 'Doxygen' +version = '1.8.11' + +homepage = 'http://www.doxygen.org' +description = """Doxygen is a documentation system for C++, C, Java, Objective-C, Python, + IDL (Corba and Microsoft flavors), Fortran, VHDL, PHP, C#, and to some extent D.""" + +toolchain = {'name': 'intel', 'version': '2017a'} + +sources = ['%(namelower)s-%(version)s.src.tar.gz'] +source_urls = ['http://ftp.stack.nl/pub/users/dimitri/'] + +builddependencies = [ + ('CMake', '3.7.2'), + ('flex', '2.6.0'), + ('Bison', '3.0.4'), +] + +parallel = 1 + +moduleclass = 'devel' diff --git a/d/Doxygen/Doxygen-1.8.11.eb b/d/Doxygen/Doxygen-1.8.11.eb new file mode 100644 index 00000000..600e44c4 --- /dev/null +++ b/d/Doxygen/Doxygen-1.8.11.eb @@ -0,0 +1,21 @@ +name = 'Doxygen' +version = '1.8.11' + +homepage = 'http://www.doxygen.org' +description = """Doxygen is a documentation system for C++, C, Java, Objective-C, Python, + IDL (Corba and Microsoft flavors), Fortran, VHDL, PHP, C#, and to some extent D.""" + +toolchain = {'name': 'dummy', 'version': ''} + +sources = ['%(namelower)s-%(version)s.src.tar.gz'] +source_urls = ['http://ftp.stack.nl/pub/users/dimitri/'] + +builddependencies = [ + ('CMake', '3.5.2'), + ('flex', '2.6.0'), + ('Bison', '3.0.4'), +] + +parallel = 1 + +moduleclass = 'devel' diff --git a/d/Doxygen/Doxygen-1.8.7-intel-2015b.eb b/d/Doxygen/Doxygen-1.8.7-intel-2015b.eb new file mode 100644 index 00000000..49bea67e --- /dev/null +++ b/d/Doxygen/Doxygen-1.8.7-intel-2015b.eb @@ -0,0 +1,44 @@ +# Built with EasyBuild version 2.1.1 on 2015-06-30_09-49-24 +name = 'Doxygen' +version = '1.8.7' + +homepage = 'http://www.doxygen.org' +description = """Doxygen is a documentation system for C++, C, Java, Objective-C, Python, + IDL (Corba and Microsoft flavors), Fortran, VHDL, PHP, C#, and to some extent D.""" + +toolchain = {'name': 'intel', 'version': '2015b'} + +sources = ['%(namelower)s-%(version)s.src.tar.gz'] +source_urls = ['http://ftp.stack.nl/pub/users/dimitri/'] + +builddependencies = [ + ('flex', '2.5.39'), + ('Bison', '3.0.2'), +] + +moduleclass = 'devel' + +# Build statistics +buildstats = [{ + "easybuild-framework_version": "2.1.1", + "easybuild-easyblocks_version": "2.1.1", + "timestamp": 1435650564, + "build_time": 65.02, + "install_size": 11846753, + "command_line": ['--buildpath=/easybuild/build', '--installpath=/apps', '--installpath-modules=/apps/modules', '--installpath-software=/apps', '--module-naming-scheme=IT4IModuleNamingScheme', '--modules-footer=/easybuild/templates/modules/jas02_footer.txt', '--repositorypath=/easybuild/file-repository', '--robot=/easybuild/easyconfigs-salomon/easybuild/easyconfigs', '--robot-paths=/easybuild/easyconfigs-salomon/easybuild/easyconfigs', '--sourcepath=/easybuild/sources', '--try-toolchain="[\'intel\', \'2015b\']"', 'netCDF-4.3.2-intel-2015a.eb'], + "modules_tool": ('EnvironmentModulesC', '/usr/bin/modulecmd', '3.2.10'), + "core_count": 28, + "cpu_model": "Intel(R) Xeon(R) CPU E5-2695 v3 @ 2.30GHz", + "cpu_speed": 2300.041, + "cpu_vendor": "Intel", + "gcc_version": "Using built-in specs.; COLLECT_GCC=gcc; COLLECT_LTO_WRAPPER=/apps/all/GCC/5.1.0-binutils-2.25/libexec/gcc/x86_64-unknown-linux-gnu/5.1.0/lto-wrapper; Target: x86_64-unknown-linux-gnu; Configured with: ../configure --enable-languages=c,c++,fortran --enable-lto --enable-checking=release --disable-multilib --enable-shared=yes --enable-static=yes --enable-threads=posix --enable-gold=default --enable-plugins --enable-ld --with-plugin-ld=ld.gold --prefix=/apps/all/GCC/5.1.0-binutils-2.25 --with-local-prefix=/apps/all/GCC/5.1.0-binutils-2.25 --enable-bootstrap --with-isl=/easybuild/build/GCC/5.1.0/dummy--binutils-2.25/gcc-5.1.0/stage2_stuff; Thread model: posix; gcc version 5.1.0 (GCC) ; ", + "glibc_version": "2.12", + "hostname": "login1", + "os_name": "centos", + "os_type": "Linux", + "os_version": "6.6", + "platform_name": "x86_64-unknown-linux", + "python_version": "2.6.6 (r266:84292, Jan 22 2014, 09:42:36) ; [GCC 4.4.7 20120313 (Red Hat 4.4.7-4)]", + "system_gcc_path": "/apps/all/GCC/5.1.0-binutils-2.25/bin/gcc", + "system_python_path": "/usr/bin/python", +}] diff --git a/d/drFAST/drFAST-1.0.0.0-goolf-1.4.10.eb b/d/drFAST/drFAST-1.0.0.0-goolf-1.4.10.eb new file mode 100644 index 00000000..ed4f3f69 --- /dev/null +++ b/d/drFAST/drFAST-1.0.0.0-goolf-1.4.10.eb @@ -0,0 +1,33 @@ +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# Author: Pablo Escobar Lopez +# sciCORE - University of Basel +# SIB Swiss Institute of Bioinformatics + +easyblock = 'MakeCp' + +name = 'drFAST' +version = '1.0.0.0' + +homepage = 'http://drfast.sourceforge.net/' +description = """ drFAST is designed to map di-base reads (SOLiD color space reads) + to reference genome assemblies; in a fast and memory-efficient manner. """ + +toolchain = {'name': 'goolf', 'version': '1.4.10'} + +source_urls = [SOURCEFORGE_SOURCE] +sources = [SOURCE_ZIP] + +dependencies = [('zlib', '1.2.8')] + +buildopts = ' CC="$CC"' + +parallel = 1 + +files_to_copy = [ (['drfast'], 'bin'), "README.txt" ] + +sanity_check_paths = { + 'files': ["bin/drfast", "README.txt"], + 'dirs': [], +} + +moduleclass = 'bio' diff --git a/d/drFAST/drFAST-1.0.0.0-ictce-6.2.5.eb b/d/drFAST/drFAST-1.0.0.0-ictce-6.2.5.eb new file mode 100644 index 00000000..3f01a8df --- /dev/null +++ b/d/drFAST/drFAST-1.0.0.0-ictce-6.2.5.eb @@ -0,0 +1,33 @@ +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# Author: Pablo Escobar Lopez +# sciCORE - University of Basel +# SIB Swiss Institute of Bioinformatics + +easyblock = 'MakeCp' + +name = 'drFAST' +version = '1.0.0.0' + +homepage = 'http://drfast.sourceforge.net/' +description = """ drFAST is designed to map di-base reads (SOLiD color space reads) + to reference genome assemblies; in a fast and memory-efficient manner. """ + +toolchain = {'name': 'ictce', 'version': '6.2.5'} + +source_urls = [SOURCEFORGE_SOURCE] +sources = [SOURCE_ZIP] + +dependencies = [('zlib', '1.2.8')] + +buildopts = ' CC="$CC"' + +parallel = 1 + +files_to_copy = [ (['drfast'], 'bin'), "README.txt" ] + +sanity_check_paths = { + 'files': ["bin/drfast", "README.txt"], + 'dirs': [], +} + +moduleclass = 'bio' diff --git a/e/EIGENSOFT/EIGENSOFT-6.1.1-goolf-1.7.20.eb b/e/EIGENSOFT/EIGENSOFT-6.1.1-goolf-1.7.20.eb new file mode 100644 index 00000000..6b962c66 --- /dev/null +++ b/e/EIGENSOFT/EIGENSOFT-6.1.1-goolf-1.7.20.eb @@ -0,0 +1,37 @@ +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# Author: Pablo Escobar Lopez +# sciCORE - University of Basel +# SIB Swiss Institute of Bioinformatics + +# Provided binaries required OpenBLAS and GSL libraries + +easyblock = 'Tarball' + +name = 'EIGENSOFT' +version = '6.1.1' + +homepage = 'http://www.hsph.harvard.edu/alkes-price/software/' +description = """The EIGENSOFT package combines functionality from our population genetics methods (Patterson et al. 2006) + and our EIGENSTRAT stratification correction method (Price et al. 2006). The EIGENSTRAT method uses principal components + analysis to explicitly model ancestry differences between cases and controls along continuous axes of variation; + the resulting correction is specific to a candidate marker’s variation in frequency across ancestral populations, + minimizing spurious associations while maximizing power to detect true associations. The EIGENSOFT package has a built-in + plotting script and supports multiple file formats and quantitative phenotypes.""" + +toolchain = {'name': 'goolf', 'version': '1.7.20'} + +dependencies = [ + ('GSL', '1.16'), +] + +source_urls = [ + 'https://data.broadinstitute.org/alkesgroup/EIGENSOFT/', + 'https://data.broadinstitute.org/alkesgroup/EIGENSOFT/OLD/'] +sources = ['EIG%(version)s.tar.gz'] + +sanity_check_paths = { + 'files': ['bin/%s' % x for x in ["baseprog", "convertf", "eigenstrat", "eigenstratQTL"]], + 'dirs': [] +} + +moduleclass = 'bio' diff --git a/e/ELPA/ELPA-2013.11-ictce-5.3.0.eb b/e/ELPA/ELPA-2013.11-ictce-5.3.0.eb new file mode 100644 index 00000000..89cd537f --- /dev/null +++ b/e/ELPA/ELPA-2013.11-ictce-5.3.0.eb @@ -0,0 +1,34 @@ +## +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# +# Authors:: Inge Gutheil , Alan O'Cais +# License:: MIT/GPL +# $Id$ +# +## + +easyblock = 'ConfigureMake' + +name = 'ELPA' +version = '2013.11' + +homepage = 'http://elpa.rzg.mpg.de' +description = """Eigenvalue SoLvers for Petaflop-Applications .""" + +toolchain = {'name': 'ictce', 'version': '5.3.0'} +toolchainopts = {'optarch': True, 'usempi': True} + +# download at http://elpa.rzg.mpg.de/elpa-tar-archive +sources = ['%(name)s_%(version)s.006_20140312.tar.gz'] + +patches = ['ELPA_fix-tests.patch'] + +configopts = '--with-generic-simple --disable-shared FCFLAGS="-I$EBROOTIMKL/mkl/include/intel64/lp64 $FCFLAGS" LIBS="$LIBSCALAPACK"' +buildopts = ' V=1 LIBS="$LIBSCALAPACK"' +start_dir = '%(name)s_%(version)s' + +builddependencies = [('Automake', '1.13.4')] + +parallel = 1 + +moduleclass = 'math' diff --git a/e/ELPA/ELPA-2013.11-ictce-5.5.0.eb b/e/ELPA/ELPA-2013.11-ictce-5.5.0.eb new file mode 100644 index 00000000..bbbc8c56 --- /dev/null +++ b/e/ELPA/ELPA-2013.11-ictce-5.5.0.eb @@ -0,0 +1,34 @@ +## +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# +# Authors:: Inge Gutheil , Alan O'Cais +# License:: MIT/GPL +# $Id$ +# +## + +easyblock = 'ConfigureMake' + +name = 'ELPA' +version = '2013.11' + +homepage = 'http://elpa.rzg.mpg.de' +description = """Eigenvalue SoLvers for Petaflop-Applications .""" + +toolchain = {'name': 'ictce', 'version': '5.5.0'} +toolchainopts = {'optarch': True, 'usempi': True} + +# download at http://elpa.rzg.mpg.de/elpa-tar-archive +sources = ['%(name)s_%(version)s.006_20140312.tar.gz'] + +patches = ['ELPA_fix-tests.patch'] + +configopts = '--with-generic-simple --disable-shared FCFLAGS="-I$EBROOTIMKL/mkl/include/intel64/lp64 $FCFLAGS" LIBS="$LIBSCALAPACK"' +buildopts = ' V=1 LIBS="$LIBSCALAPACK"' +start_dir = '%(name)s_%(version)s' + +builddependencies = [('Automake', '1.13.4')] + +parallel = 1 + +moduleclass = 'math' diff --git a/e/EMBOSS/EMBOSS-6.5.7-goolf-1.4.10.eb b/e/EMBOSS/EMBOSS-6.5.7-goolf-1.4.10.eb new file mode 100644 index 00000000..c8367acc --- /dev/null +++ b/e/EMBOSS/EMBOSS-6.5.7-goolf-1.4.10.eb @@ -0,0 +1,41 @@ +# authors: Kenneth Hoste (Ghent University), George Tsouloupas , Fotis Georgatos +# +# 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 + +easyblock = 'ConfigureMake' + +name = 'EMBOSS' +version = '6.5.7' + +homepage = 'http://emboss.sourceforge.net/' +description = """EMBOSS is 'The European Molecular Biology Open Software Suite'. + EMBOSS is a free Open Source software analysis package specially developed for + the needs of the molecular biology (e.g. EMBnet) user community.""" + +toolchain = {'name': 'goolf', 'version': '1.4.10'} + +source_urls = ['ftp://emboss.open-bio.org/pub/EMBOSS/'] +sources = [SOURCE_TAR_GZ] + +patches = ['EMBOSS_disable-embossupdate.patch'] + +dependencies = [ + ('libharu', '2.2.0'), + ('Java', '1.7.0_10', '', True), +] + +configopts = " --with-hpdf=$EBROOTLIBHARU " + +# jemboss.jar does not build in a parallel build +parallel = 1 + +sanity_check_paths = { + 'files': ['bin/%s' % x for x in ['seqret', 'aligncopy', 'profit', 'prophet']] + + ['lib/lib%s.a' % x for x in ['acd', 'ajax', 'ajaxdb', 'ajaxg', 'eexpat', 'ensembl', + 'epcre', 'eplplot', 'ezlib', 'nucleus']] + + ['share/EMBOSS/jemboss/lib/jemboss.jar'], + 'dirs': [], +} + +moduleclass = 'bio' diff --git a/e/EMBOSS/EMBOSS-6.5.7-ictce-5.3.0.eb b/e/EMBOSS/EMBOSS-6.5.7-ictce-5.3.0.eb new file mode 100644 index 00000000..88380bcb --- /dev/null +++ b/e/EMBOSS/EMBOSS-6.5.7-ictce-5.3.0.eb @@ -0,0 +1,41 @@ +# authors: Kenneth Hoste (Ghent University), George Tsouloupas , Fotis Georgatos +# +# 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 + +easyblock = 'ConfigureMake' + +name = 'EMBOSS' +version = '6.5.7' + +homepage = 'http://emboss.sourceforge.net/' +description = """EMBOSS is 'The European Molecular Biology Open Software Suite'. + EMBOSS is a free Open Source software analysis package specially developed for + the needs of the molecular biology (e.g. EMBnet) user community.""" + +toolchain = {'name': 'ictce', 'version': '5.3.0'} + +source_urls = ['ftp://emboss.open-bio.org/pub/EMBOSS/'] +sources = [SOURCE_TAR_GZ] + +patches = ['EMBOSS_disable-embossupdate.patch'] + +dependencies = [ + ('libharu', '2.2.0'), + ('Java', '1.7.0_10', '', True), +] + +configopts = " --with-hpdf=$EBROOTLIBHARU " + +# jemboss.jar does not build in a parallel build +parallel = 1 + +sanity_check_paths = { + 'files': ['bin/%s' % x for x in ['seqret', 'aligncopy', 'profit', 'prophet']] + + ['lib/lib%s.a' % x for x in ['acd', 'ajax', 'ajaxdb', 'ajaxg', 'eexpat', 'ensembl', + 'epcre', 'eplplot', 'ezlib', 'nucleus']] + + ['share/EMBOSS/jemboss/lib/jemboss.jar'], + 'dirs': [], +} + +moduleclass = 'bio' diff --git a/e/ea-utils/ea-utils-27a4809-foss-2016a.eb b/e/ea-utils/ea-utils-27a4809-foss-2016a.eb new file mode 100644 index 00000000..7cf3821e --- /dev/null +++ b/e/ea-utils/ea-utils-27a4809-foss-2016a.eb @@ -0,0 +1,48 @@ +easyblock = 'MakeCp' + +name = 'ea-utils' +version = '27a4809' + +homepage = 'https://code.google.com/p/ea-utils/' +description = """Command-line tools for processing biological sequencing data. +Barcode demultiplexing, adapter trimming, etc. + +Primarily written to support an Illumina based pipeline - +but should work with any FASTQs.""" + +toolchain = {'name': 'foss', 'version': '2016a'} +toolchainopts = {'optarch': True, 'pic': True} + +source_urls = ['https://github.com/ExpressionAnalysis/%(name)s/tarball/master'] +sources = [SOURCE_TGZ] + +checksums = ['45eef4b040f83abe2c9f51d4a7d18271'] + +start_dir = 'clipper' + +prebuildopts = "sed -i 's/$(CFLAGS)/$(CFLAGS) $(LDFLAGS) -I./' Makefile && PREFIX=%(installdir)s " +buildopts = 'fastq-mcf fastq-multx fastq-join fastq-stats fastq-clipper sam-stats varcall' + +builddependencies = [ + ('Perl', '5.22.1'), +] + +dependencies = [ + ('GSL', '2.1'), +] + +files_to_copy = [([ + 'fastq-mcf', 'fastq-multx', 'fastq-join', 'fastq-stats', 'fastq-clipper', + 'sam-stats', 'varcall', 'randomFQ', 'alc', 'determine-phred'], 'bin' +)] + + +sanity_check_paths = { + 'files': [ + 'bin/fastq-mcf', 'bin/fastq-multx', 'bin/fastq-join', 'bin/fastq-stats', + 'bin/fastq-clipper', 'bin/sam-stats', 'bin/varcall' + ], + 'dirs': [] +} + +moduleclass = 'bio' \ No newline at end of file diff --git a/e/ea-utils/ea-utils-27a4809-foss-2016b.eb b/e/ea-utils/ea-utils-27a4809-foss-2016b.eb new file mode 100644 index 00000000..e8447b7c --- /dev/null +++ b/e/ea-utils/ea-utils-27a4809-foss-2016b.eb @@ -0,0 +1,48 @@ +easyblock = 'MakeCp' + +name = 'ea-utils' +version = '27a4809' + +homepage = 'https://code.google.com/p/ea-utils/' +description = """Command-line tools for processing biological sequencing data. +Barcode demultiplexing, adapter trimming, etc. + +Primarily written to support an Illumina based pipeline - +but should work with any FASTQs.""" + +toolchain = {'name': 'foss', 'version': '2016b'} +toolchainopts = {'optarch': True, 'pic': True} + +source_urls = ['https://github.com/ExpressionAnalysis/%(name)s/tarball/master'] +sources = [SOURCE_TGZ] + +checksums = ['45eef4b040f83abe2c9f51d4a7d18271'] + +start_dir = 'clipper' + +prebuildopts = "sed -i 's/$(CFLAGS)/$(CFLAGS) $(LDFLAGS) -I./' Makefile && PREFIX=%(installdir)s " +buildopts = 'fastq-mcf fastq-multx fastq-join fastq-stats fastq-clipper sam-stats varcall' + +builddependencies = [ + ('Perl', '5.22.1'), +] + +dependencies = [ + ('GSL', '2.1'), +] + +files_to_copy = [([ + 'fastq-mcf', 'fastq-multx', 'fastq-join', 'fastq-stats', 'fastq-clipper', + 'sam-stats', 'varcall', 'randomFQ', 'alc', 'determine-phred'], 'bin' +)] + + +sanity_check_paths = { + 'files': [ + 'bin/fastq-mcf', 'bin/fastq-multx', 'bin/fastq-join', 'bin/fastq-stats', + 'bin/fastq-clipper', 'bin/sam-stats', 'bin/varcall' + ], + 'dirs': [] +} + +moduleclass = 'bio' diff --git a/e/eudev/eudev-3.1.5-foss-2015g.eb b/e/eudev/eudev-3.1.5-foss-2015g.eb new file mode 100644 index 00000000..bf525135 --- /dev/null +++ b/e/eudev/eudev-3.1.5-foss-2015g.eb @@ -0,0 +1,35 @@ +easyblock = 'ConfigureMake' + +name = 'eudev' +version = '3.1.5' + +homepage = 'https://wiki.gentoo.org/wiki/Project:Eudev' +description = """eudev is a fork of systemd-udev with the goal of obtaining + better compatibility with existing software such as + OpenRC and Upstart, older kernels, various toolchains + and anything else required by users and various distributions.""" + +toolchain = {'name': 'foss', 'version': '2015g'} +toolchainopts = {'cstd': 'c99'} + +sources = [SOURCE_TAR_GZ] +source_urls = ['http://dev.gentoo.org/~blueness/%(name)s/'] +patches = ['%(name)s-3.1.2_pre-2.6.34_kernel.patch'] + +builddependencies = [ + ('gperf', '3.0.4'), +] + +osdependencies = [('kernel-headers', 'linux-libc-dev')] + +configopts = '--disable-blkid --disable-selinux --disable-manpages ' +runtest = 'check' + +sanity_check_paths = { + 'files' : ['bin/udevadm', 'include/libudev.h', 'include/udev.h', 'lib/libudev.so.1'], + 'dirs' : [], +} + +maxparallel = 1 + +moduleclass = 'system' diff --git a/e/expat/expat-2.1.0-foss-2015g.eb b/e/expat/expat-2.1.0-foss-2015g.eb new file mode 100644 index 00000000..79ea543f --- /dev/null +++ b/e/expat/expat-2.1.0-foss-2015g.eb @@ -0,0 +1,16 @@ +easyblock = 'ConfigureMake' + +name = 'expat' +version = '2.1.0' + +homepage = 'http://expat.sourceforge.net/' +description = """Expat is an XML parser library written in C. It is a stream-oriented parser in which an application + registers handlers for things the parser might find in the XML document (like start tags)""" + +toolchain = {'name': 'foss', 'version': '2015g'} +toolchainopts = {'pic': True} + +sources = [SOURCELOWER_TAR_GZ] +source_urls = [SOURCEFORGE_SOURCE] + +moduleclass = 'tools' diff --git a/e/expat/expat-2.1.0-intel-2017.00.eb b/e/expat/expat-2.1.0-intel-2017.00.eb new file mode 100644 index 00000000..19091bc4 --- /dev/null +++ b/e/expat/expat-2.1.0-intel-2017.00.eb @@ -0,0 +1,16 @@ +easyblock = 'ConfigureMake' + +name = 'expat' +version = '2.1.0' + +homepage = 'http://expat.sourceforge.net/' +description = """Expat is an XML parser library written in C. It is a stream-oriented parser in which an application + registers handlers for things the parser might find in the XML document (like start tags)""" + +toolchain = {'name': 'intel', 'version': '2017.00'} +toolchainopts = {'pic': True} + +sources = [SOURCELOWER_TAR_GZ] +source_urls = [SOURCEFORGE_SOURCE] + +moduleclass = 'tools' diff --git a/e/expat/expat-2.1.0.eb b/e/expat/expat-2.1.0.eb new file mode 100644 index 00000000..8dc3c916 --- /dev/null +++ b/e/expat/expat-2.1.0.eb @@ -0,0 +1,16 @@ +easyblock = 'ConfigureMake' + +name = 'expat' +version = '2.1.0' + +homepage = 'http://expat.sourceforge.net/' +description = """Expat is an XML parser library written in C. It is a stream-oriented parser in which an application + registers handlers for things the parser might find in the XML document (like start tags)""" + +toolchain = {'name': 'dummy', 'version': ''} +toolchainopts = {'pic': True} + +sources = [SOURCELOWER_TAR_GZ] +source_urls = [SOURCEFORGE_SOURCE] + +moduleclass = 'tools' diff --git a/f/FASTA/FASTA-36.3.5e-goolf-1.4.10.eb b/f/FASTA/FASTA-36.3.5e-goolf-1.4.10.eb new file mode 100644 index 00000000..c1501d5c --- /dev/null +++ b/f/FASTA/FASTA-36.3.5e-goolf-1.4.10.eb @@ -0,0 +1,36 @@ +## +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# +# Copyright:: Copyright 2012-2013 The Cyprus Institute +# Authors:: Andreas Panteli , Thekla Loizou , George Tsouloupas +# License:: MIT/GPL +# +## +easyblock = 'MakeCp' + +name = "FASTA" +version = "36.3.5e" + +homepage = 'http://fasta.bioch.virginia.edu' +description = """The FASTA programs find regions of local or global (new) similarity between +protein or DNA sequences, either by searching Protein or DNA databases, or by identifying +local duplications within a sequence.""" + +toolchain = {'name': 'goolf', 'version': '1.4.10'} + +source_urls = ['http://faculty.virginia.edu/wrpearson/fasta/fasta36'] +sources = [SOURCELOWER_TAR_GZ] + +buildopts = '-C ./src -f ../make/Makefile.linux_sse2 all' + +files_to_copy = ["bin", "conf", "data", "doc", "FASTA_LIST", "misc", "README", "seq", "sql", "test"] + +sanity_check_paths = { + 'files': ["FASTA_LIST", "README"] + ['bin/%s' % x for x in ['lav2svg', 'lav2ps', 'map_db']] + + ['bin/%s%%(version_major)s' % x for x in ['fasta', 'fastm', 'fastx', 'ggsearch', 'lalign', 'tfastf', + 'tfasts', 'tfasty', 'fastf', 'fasts', 'fasty', 'glsearch', + 'ssearch', 'tfastm', 'tfastx']], + 'dirs': ["conf", "data", "doc", "misc", "seq", "sql", "test"] +} + +moduleclass = 'bio' diff --git a/f/FASTA/FASTA-36.3.5e-ictce-5.3.0.eb b/f/FASTA/FASTA-36.3.5e-ictce-5.3.0.eb new file mode 100644 index 00000000..6b9a39e1 --- /dev/null +++ b/f/FASTA/FASTA-36.3.5e-ictce-5.3.0.eb @@ -0,0 +1,36 @@ +## +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# +# Copyright:: Copyright 2012-2013 The Cyprus Institute +# Authors:: Andreas Panteli , Thekla Loizou , George Tsouloupas +# License:: MIT/GPL +# +## +easyblock = 'MakeCp' + +name = "FASTA" +version = "36.3.5e" + +homepage = 'http://fasta.bioch.virginia.edu' +description = """The FASTA programs find regions of local or global (new) similarity between +protein or DNA sequences, either by searching Protein or DNA databases, or by identifying +local duplications within a sequence.""" + +toolchain = {'name': 'ictce', 'version': '5.3.0'} + +source_urls = ['http://faculty.virginia.edu/wrpearson/fasta/fasta36'] +sources = [SOURCELOWER_TAR_GZ] + +buildopts = '-C ./src -f ../make/Makefile.linux_sse2 all' + +files_to_copy = ["bin", "conf", "data", "doc", "FASTA_LIST", "misc", "README", "seq", "sql", "test"] + +sanity_check_paths = { + 'files': ["FASTA_LIST", "README"] + ['bin/%s' % x for x in ['lav2svg', 'lav2ps', 'map_db']] + + ['bin/%s%%(version_major)s' % x for x in ['fasta', 'fastm', 'fastx', 'ggsearch', 'lalign', 'tfastf', + 'tfasts', 'tfasty', 'fastf', 'fasts', 'fasty', 'glsearch', + 'ssearch', 'tfastm', 'tfastx']], + 'dirs': ["conf", "data", "doc", "misc", "seq", "sql", "test"] +} + +moduleclass = 'bio' diff --git a/f/FDS/FDS-6.3.0-intel-2015b.eb b/f/FDS/FDS-6.3.0-intel-2015b.eb new file mode 100644 index 00000000..7278d23d --- /dev/null +++ b/f/FDS/FDS-6.3.0-intel-2015b.eb @@ -0,0 +1,34 @@ +easyblock = 'ConfigureMake' + +name = 'FDS' +version = '6.3.0' + +homepage = 'http://firemodels.github.io/fds-smv/' +description = """Fire Dynamics Simulator (FDS) is a large-eddy simulation (LES) code for low-speed flows, + with an emphasis on smoke and heat transport from fires.""" + +toolchain = {'name': 'intel', 'version': '2015b'} +toolchainopts = {'pic': True, 'usempi': True} + +source_urls = ['https://github.com/firemodels/fds-smv/archive/'] +sources = ['e6ca47c.tar.gz'] + +patches = ['FDS-r18915_makefile.patch'] + +unpack_options = '--strip-components=1' + +start_dir = 'FDS_Compilation' + +# just run make in the install dir +skipsteps = ['configure', 'install'] +buildininstalldir = True + +prebuildopts = 'env FFLAGS="$FFLAGS -fpp"' + +modextrapaths = {'PATH': 'FDS_Compilation'} + +sanity_check_paths = { + 'files': ['FDS_Compilation/fds'], + 'dirs': [], +} +moduleclass = 'phys' diff --git a/f/FDS/FDS-r17534-intel-2015a.eb b/f/FDS/FDS-r17534-intel-2015a.eb new file mode 100644 index 00000000..2779e0dd --- /dev/null +++ b/f/FDS/FDS-r17534-intel-2015a.eb @@ -0,0 +1,33 @@ +easyblock = 'ConfigureMake' + +name = 'FDS' +version = 'r17534' + +homepage = 'https://code.google.com/p/fds-smv/' +description = """Fire Dynamics Simulator (FDS) is a large-eddy simulation (LES) code for low-speed flows, + with an emphasis on smoke and heat transport from fires.""" + +toolchain = {'name': 'intel', 'version': '2015a'} +toolchainopts = {'pic': True, 'usempi': True} + +sources = [SOURCE_TAR_GZ] +patches = ['FDS-%(version)s_makefile.patch'] + +unpack_options = '--strip-components=1' + +start_dir = 'FDS_Compilation' + +parallel = 1 + +# just run make in the install dir +skipsteps = ['configure', 'install'] +buildininstalldir = True + +modextrapaths = {'PATH': 'FDS_Compilation'} + +sanity_check_paths = { + 'files': ['FDS_Compilation/fds'], + 'dirs': [], +} + +moduleclass = 'phys' diff --git a/f/FDS/FDS-r18915-goolf-1.4.10.eb b/f/FDS/FDS-r18915-goolf-1.4.10.eb new file mode 100644 index 00000000..cefbd7a7 --- /dev/null +++ b/f/FDS/FDS-r18915-goolf-1.4.10.eb @@ -0,0 +1,27 @@ +easyblock = 'ConfigureMake' + +name = 'FDS' +version = 'r18915' + +homepage = 'https://code.google.com/p/fds-smv/' +description = """Fire Dynamics Simulator (FDS) is a large-eddy simulation (LES) code for low-speed flows, + with an emphasis on smoke and heat transport from fires.""" + +toolchain = {'name': 'goolf', 'version': '1.4.10'} +toolchainopts = {'pic': True, 'usempi': True} + +sources = [SOURCE_TAR_GZ] +patches = ['FDS-%(version)s_makefile.patch'] + +# just run make in the install dir +skipsteps = ['configure', 'install'] +buildininstalldir = True + +modextrapaths = {'PATH': 'FDS_Source'} + +sanity_check_paths = { + 'files': ['FDS_Source/fds'], + 'dirs': [], +} + +moduleclass = 'phys' diff --git a/f/FDS/FDS-r18915-ictce-5.5.0.eb b/f/FDS/FDS-r18915-ictce-5.5.0.eb new file mode 100644 index 00000000..bbf40656 --- /dev/null +++ b/f/FDS/FDS-r18915-ictce-5.5.0.eb @@ -0,0 +1,27 @@ +easyblock = 'ConfigureMake' + +name = 'FDS' +version = 'r18915' + +homepage = 'https://code.google.com/p/fds-smv/' +description = """Fire Dynamics Simulator (FDS) is a large-eddy simulation (LES) code for low-speed flows, + with an emphasis on smoke and heat transport from fires.""" + +toolchain = {'name': 'ictce', 'version': '5.5.0'} +toolchainopts = {'pic': True, 'usempi': True} + +sources = [SOURCE_TAR_GZ] +patches = ['FDS-%(version)s_makefile.patch'] + +# just run make in the install dir +skipsteps = ['configure', 'install'] +buildininstalldir = True + +modextrapaths = {'PATH': 'FDS_Source'} + +sanity_check_paths = { + 'files': ['FDS_Source/fds'], + 'dirs': [], +} + +moduleclass = 'phys' diff --git a/f/FDS/FDS-r18915-intel-2015a.eb b/f/FDS/FDS-r18915-intel-2015a.eb new file mode 100644 index 00000000..e4ac832f --- /dev/null +++ b/f/FDS/FDS-r18915-intel-2015a.eb @@ -0,0 +1,27 @@ +easyblock = 'ConfigureMake' + +name = 'FDS' +version = 'r18915' + +homepage = 'https://code.google.com/p/fds-smv/' +description = """Fire Dynamics Simulator (FDS) is a large-eddy simulation (LES) code for low-speed flows, + with an emphasis on smoke and heat transport from fires.""" + +toolchain = {'name': 'intel', 'version': '2015a'} +toolchainopts = {'pic': True, 'usempi': True} + +sources = [SOURCE_TAR_GZ] +patches = ['FDS-%(version)s_makefile.patch'] + +# just run make in the install dir +skipsteps = ['configure', 'install'] +buildininstalldir = True + +modextrapaths = {'PATH': 'FDS_Source'} + +sanity_check_paths = { + 'files': ['FDS_Source/fds'], + 'dirs': [], +} + +moduleclass = 'phys' diff --git a/f/FDS/FDS-r22681-intel-2015a.eb b/f/FDS/FDS-r22681-intel-2015a.eb new file mode 100644 index 00000000..75d4dcf4 --- /dev/null +++ b/f/FDS/FDS-r22681-intel-2015a.eb @@ -0,0 +1,31 @@ +easyblock = 'ConfigureMake' + +name = 'FDS' +version = 'r22681' + +homepage = 'https://code.google.com/p/fds-smv/' +description = """Fire Dynamics Simulator (FDS) is a large-eddy simulation (LES) code for low-speed flows, + with an emphasis on smoke and heat transport from fires.""" + +toolchain = {'name': 'intel', 'version': '2015a'} +toolchainopts = {'pic': True, 'usempi': True} + +sources = [SOURCE_TAR_GZ] +patches = ['FDS-r18915_makefile.patch'] + +unpack_options = '--strip-components=1' + +start_dir = 'FDS_Compilation' + +# just run make in the install dir +skipsteps = ['configure', 'install'] +buildininstalldir = True + +modextrapaths = {'PATH': 'FDS_Compilation'} + +sanity_check_paths = { + 'files': ['FDS_Compilation/fds'], + 'dirs': [], +} + +moduleclass = 'phys' diff --git a/f/FFTW/FFTW-2.1.5-gompi-1.5.12.eb b/f/FFTW/FFTW-2.1.5-gompi-1.5.12.eb new file mode 100644 index 00000000..537898c0 --- /dev/null +++ b/f/FFTW/FFTW-2.1.5-gompi-1.5.12.eb @@ -0,0 +1,30 @@ +easyblock = 'ConfigureMake' + +name = 'FFTW' +version = '2.1.5' + +homepage = 'http://www.fftw.org' +description = """FFTW is a C subroutine library for computing the discrete Fourier transform (DFT) + in one or more dimensions, of arbitrary input size, and of both real and complex data.""" + +toolchain = {'name': 'gompi', 'version': '1.5.12'} +toolchainopts = {'optarch': True, 'pic': True} + +sources = [SOURCELOWER_TAR_GZ] +source_urls = [homepage] + +common_configopts = "--enable-shared --enable-type-prefix --enable-threads --with-pic" + +configopts = [ + common_configopts + " --enable-float --enable-mpi", + common_configopts + " --enable-mpi", # default as last +] + +sanity_check_paths = { + 'files': ['include/%sfftw%s.h' % (x, y) for x in ['d', 'dr', 's', 'sr'] for y in ['', '_mpi', '_threads']] + + ['lib/lib%sfftw%s.a' % (x, y) for x in ['d', 'dr', 's', 'sr'] for y in ['', '_mpi', '_threads']] + + ['lib/lib%sfftw%s.%s' % (x, y, SHLIB_EXT) for x in ['d', 'dr', 's', 'sr'] for y in ['', '_mpi', '_threads']], + 'dirs': [], +} + +moduleclass = 'numlib' diff --git a/f/FFTW/FFTW-3.3.4-gompi-2015e.eb b/f/FFTW/FFTW-3.3.4-gompi-2015e.eb new file mode 100644 index 00000000..ceb882d6 --- /dev/null +++ b/f/FFTW/FFTW-3.3.4-gompi-2015e.eb @@ -0,0 +1,29 @@ +easyblock = 'ConfigureMake' + +name = 'FFTW' +version = '3.3.4' + +homepage = 'http://www.fftw.org' +description = """FFTW is a C subroutine library for computing the discrete Fourier transform (DFT) + in one or more dimensions, of arbitrary input size, and of both real and complex data.""" + +toolchain = {'name': 'gompi', 'version': '2015e'} +toolchainopts = {'optarch': True, 'pic': True} + +sources = [SOURCELOWER_TAR_GZ] +source_urls = [homepage] + +common_configopts = "--enable-threads --enable-openmp --with-pic" + +configopts = [ + common_configopts + " --enable-single --enable-sse2 --enable-mpi", + common_configopts + " --enable-long-double --enable-mpi", + common_configopts + " --enable-avx --enable-mpi", # default as last +] + +sanity_check_paths = { + 'files': [''], + 'dirs': ['lib', 'bin', 'include'], +} + +moduleclass = 'numlib' diff --git a/f/FFTW/FFTW-3.3.4-gompi-2015g.eb b/f/FFTW/FFTW-3.3.4-gompi-2015g.eb new file mode 100644 index 00000000..ffa3e0f5 --- /dev/null +++ b/f/FFTW/FFTW-3.3.4-gompi-2015g.eb @@ -0,0 +1,34 @@ +easyblock = 'ConfigureMake' + +name = 'FFTW' +version = '3.3.4' + +homepage = 'http://www.fftw.org' +description = """FFTW is a C subroutine library for computing the discrete Fourier transform (DFT) + in one or more dimensions, of arbitrary input size, and of both real and complex data.""" + +toolchain = {'name': 'gompi', 'version': '2015g'} +toolchainopts = {'optarch': True, 'pic': True} + +sources = [SOURCELOWER_TAR_GZ] +source_urls = [homepage] + +common_configopts = "--enable-threads --enable-openmp --with-pic" + +configopts = [ + common_configopts + " --enable-single --enable-sse2 --enable-mpi", + common_configopts + " --enable-long-double --enable-mpi", + common_configopts + " --enable-quad-precision", + common_configopts + " --enable-avx --enable-mpi", # default as last +] + +sanity_check_paths = { + 'files': ['bin/fftw%s' % x for x in ['-wisdom', '-wisdom-to-conf', 'f-wisdom', 'l-wisdom', 'q-wisdom']] + + ['include/fftw3%s' % x for x in ['-mpi.f03', '-mpi.h', '.f', '.f03', + '.h', 'l-mpi.f03', 'l.f03', 'q.f03']] + + ['lib/libfftw3%s%s.a' % (x, y) for x in ['', 'f', 'l'] for y in ['', '_mpi', '_omp', '_threads']] + + ['lib/libfftw3q.a', 'lib/libfftw3q_omp.a'], + 'dirs': ['lib/pkgconfig'], +} + +moduleclass = 'numlib' diff --git a/f/FFTW/FFTW-3.3.4-intel-2015b.eb b/f/FFTW/FFTW-3.3.4-intel-2015b.eb new file mode 100644 index 00000000..4769fdf8 --- /dev/null +++ b/f/FFTW/FFTW-3.3.4-intel-2015b.eb @@ -0,0 +1,34 @@ +# Built with EasyBuild version 2.1.1 on 2015-06-29_22-09-37 +easyblock = 'ConfigureMake' + +name = 'FFTW' +version = '3.3.4' + +homepage = 'http://www.fftw.org' +description = """FFTW is a C subroutine library for computing the discrete Fourier transform (DFT) + in one or more dimensions, of arbitrary input size, and of both real and complex data.""" + +toolchain = {'name': 'intel', 'version': '2015b'} +toolchainopts = {'optarch': True, 'pic': True} + +sources = [SOURCELOWER_TAR_GZ] +source_urls = [homepage] + +common_configopts = "--enable-threads --enable-openmp --with-pic" + +# no quad precision, requires GCC v4.6 or higher +configopts = [ + common_configopts + " --enable-single --enable-sse2 --enable-mpi", + common_configopts + " --enable-long-double --enable-mpi", + common_configopts + " --enable-sse2 --enable-mpi", # default as last +] + +sanity_check_paths = { + 'files': ['bin/fftw%s' % x for x in ['-wisdom', '-wisdom-to-conf', 'f-wisdom', 'l-wisdom']] + + ['include/fftw3%s' % x for x in ['-mpi.f03', '-mpi.h', '.f', '.f03', + '.h', 'l-mpi.f03', 'l.f03', 'q.f03']] + + ['lib/libfftw3%s%s.a' % (x, y) for x in ['', 'f', 'l'] for y in ['', '_mpi', '_omp', '_threads']], + 'dirs': ['lib/pkgconfig'], +} + +moduleclass = 'numlib' diff --git a/f/FFTW/FFTW-3.3.5-foss-2016a.eb b/f/FFTW/FFTW-3.3.5-foss-2016a.eb new file mode 100644 index 00000000..c28e71ef --- /dev/null +++ b/f/FFTW/FFTW-3.3.5-foss-2016a.eb @@ -0,0 +1,34 @@ +easyblock = 'ConfigureMake' + +name = 'FFTW' +version = '3.3.5' + +homepage = 'http://www.fftw.org' +description = """FFTW is a C subroutine library for computing the discrete Fourier transform (DFT) + in one or more dimensions, of arbitrary input size, and of both real and complex data.""" + +toolchain = {'name': 'foss', 'version': '2016a'} +toolchainopts = {'pic': True} + +sources = [SOURCELOWER_TAR_GZ] +source_urls = [homepage] + +common_configopts = "--enable-threads --enable-openmp --with-pic" + +# no quad precision, requires GCC v4.6 or higher +# see also http://www.fftw.org/doc/Extended-and-quadruple-precision-in-Fortran.html +configopts = [ + common_configopts + " --enable-single --enable-sse2 --enable-mpi", + common_configopts + " --enable-long-double --enable-mpi", + common_configopts + " --enable-sse2 --enable-mpi", # default as last +] + +sanity_check_paths = { + 'files': ['bin/fftw%s' % x for x in ['-wisdom', '-wisdom-to-conf', 'f-wisdom', 'l-wisdom']] + + ['include/fftw3%s' % x for x in ['-mpi.f03', '-mpi.h', '.f', '.f03', + '.h', 'l-mpi.f03', 'l.f03', 'q.f03']] + + ['lib/libfftw3%s%s.a' % (x, y) for x in ['', 'f', 'l'] for y in ['', '_mpi', '_omp', '_threads']], + 'dirs': ['lib/pkgconfig'], +} + +moduleclass = 'numlib' diff --git a/f/FFTW/FFTW-3.3.5-gompi-2016a.eb b/f/FFTW/FFTW-3.3.5-gompi-2016a.eb new file mode 100644 index 00000000..58edcf6b --- /dev/null +++ b/f/FFTW/FFTW-3.3.5-gompi-2016a.eb @@ -0,0 +1,34 @@ +easyblock = 'ConfigureMake' + +name = 'FFTW' +version = '3.3.5' + +homepage = 'http://www.fftw.org' +description = """FFTW is a C subroutine library for computing the discrete Fourier transform (DFT) + in one or more dimensions, of arbitrary input size, and of both real and complex data.""" + +toolchain = {'name': 'gompi', 'version': '2016a'} +toolchainopts = {'optarch': True, 'pic': True} + +sources = [SOURCELOWER_TAR_GZ] +source_urls = [homepage] + +common_configopts = "--enable-threads --enable-openmp --with-pic" + +configopts = [ + common_configopts + " --enable-single --enable-sse2 --enable-mpi", + common_configopts + " --enable-long-double --enable-mpi", + common_configopts + " --enable-quad-precision", + common_configopts + " --enable-sse2 --enable-mpi", # default as last +] + +sanity_check_paths = { + 'files': ['bin/fftw%s' % x for x in ['-wisdom', '-wisdom-to-conf', 'f-wisdom', 'l-wisdom', 'q-wisdom']] + + ['include/fftw3%s' % x for x in ['-mpi.f03', '-mpi.h', '.f', '.f03', + '.h', 'l-mpi.f03', 'l.f03', 'q.f03']] + + ['lib/libfftw3%s%s.a' % (x, y) for x in ['', 'f', 'l'] for y in ['', '_mpi', '_omp', '_threads']] + + ['lib/libfftw3q.a', 'lib/libfftw3q_omp.a'], + 'dirs': ['lib/pkgconfig'], +} + +moduleclass = 'numlib' diff --git a/f/FFTW/FFTW-3.3.5-intel-2016a.eb b/f/FFTW/FFTW-3.3.5-intel-2016a.eb new file mode 100644 index 00000000..bfcfb2fa --- /dev/null +++ b/f/FFTW/FFTW-3.3.5-intel-2016a.eb @@ -0,0 +1,34 @@ +easyblock = 'ConfigureMake' + +name = 'FFTW' +version = '3.3.5' + +homepage = 'http://www.fftw.org' +description = """FFTW is a C subroutine library for computing the discrete Fourier transform (DFT) + in one or more dimensions, of arbitrary input size, and of both real and complex data.""" + +toolchain = {'name': 'intel', 'version': '2016a'} +toolchainopts = {'pic': True} + +sources = [SOURCELOWER_TAR_GZ] +source_urls = [homepage] + +common_configopts = "--enable-threads --enable-openmp --with-pic" + +# no quad precision, requires GCC v4.6 or higher +# see also http://www.fftw.org/doc/Extended-and-quadruple-precision-in-Fortran.html +configopts = [ + common_configopts + " --enable-single --enable-sse2 --enable-mpi", + common_configopts + " --enable-long-double --enable-mpi", + common_configopts + " --enable-sse2 --enable-mpi", # default as last +] + +sanity_check_paths = { + 'files': ['bin/fftw%s' % x for x in ['-wisdom', '-wisdom-to-conf', 'f-wisdom', 'l-wisdom']] + + ['include/fftw3%s' % x for x in ['-mpi.f03', '-mpi.h', '.f', '.f03', + '.h', 'l-mpi.f03', 'l.f03', 'q.f03']] + + ['lib/libfftw3%s%s.a' % (x, y) for x in ['', 'f', 'l'] for y in ['', '_mpi', '_omp', '_threads']], + 'dirs': ['lib/pkgconfig'], +} + +moduleclass = 'numlib' diff --git a/f/FFTW/FFTW-3.3.5-intel-2017.00.eb b/f/FFTW/FFTW-3.3.5-intel-2017.00.eb new file mode 100644 index 00000000..12078f3f --- /dev/null +++ b/f/FFTW/FFTW-3.3.5-intel-2017.00.eb @@ -0,0 +1,34 @@ +easyblock = 'ConfigureMake' + +name = 'FFTW' +version = '3.3.5' + +homepage = 'http://www.fftw.org' +description = """FFTW is a C subroutine library for computing the discrete Fourier transform (DFT) + in one or more dimensions, of arbitrary input size, and of both real and complex data.""" + +toolchain = {'name': 'intel', 'version': '2017.00'} +toolchainopts = {'pic': True} + +sources = [SOURCELOWER_TAR_GZ] +source_urls = [homepage] + +common_configopts = "--enable-threads --enable-openmp --with-pic" + +# no quad precision, requires GCC v4.6 or higher +# see also http://www.fftw.org/doc/Extended-and-quadruple-precision-in-Fortran.html +configopts = [ + common_configopts + " --enable-single --enable-sse2 --enable-mpi", + common_configopts + " --enable-long-double --enable-mpi", + common_configopts + " --enable-sse2 --enable-mpi --enable-avx2", # default as last +] + +sanity_check_paths = { + 'files': ['bin/fftw%s' % x for x in ['-wisdom', '-wisdom-to-conf', 'f-wisdom', 'l-wisdom']] + + ['include/fftw3%s' % x for x in ['-mpi.f03', '-mpi.h', '.f', '.f03', + '.h', 'l-mpi.f03', 'l.f03', 'q.f03']] + + ['lib/libfftw3%s%s.a' % (x, y) for x in ['', 'f', 'l'] for y in ['', '_mpi', '_omp', '_threads']], + 'dirs': ['lib/pkgconfig'], +} + +moduleclass = 'numlib' diff --git a/f/FFTW/FFTW-3.3.5-intel-2017a.eb b/f/FFTW/FFTW-3.3.5-intel-2017a.eb new file mode 100644 index 00000000..31f20324 --- /dev/null +++ b/f/FFTW/FFTW-3.3.5-intel-2017a.eb @@ -0,0 +1,34 @@ +easyblock = 'ConfigureMake' + +name = 'FFTW' +version = '3.3.5' + +homepage = 'http://www.fftw.org' +description = """FFTW is a C subroutine library for computing the discrete Fourier transform (DFT) + in one or more dimensions, of arbitrary input size, and of both real and complex data.""" + +toolchain = {'name': 'intel', 'version': '2017a'} +toolchainopts = {'pic': True} + +sources = [SOURCELOWER_TAR_GZ] +source_urls = [homepage] + +common_configopts = "--enable-threads --enable-openmp --with-pic" + +# no quad precision, requires GCC v4.6 or higher +# see also http://www.fftw.org/doc/Extended-and-quadruple-precision-in-Fortran.html +configopts = [ + common_configopts + " --enable-single --enable-sse2 --enable-mpi", + common_configopts + " --enable-long-double --enable-mpi", + common_configopts + " --enable-sse2 --enable-mpi --enable-avx2", # default as last +] + +sanity_check_paths = { + 'files': ['bin/fftw%s' % x for x in ['-wisdom', '-wisdom-to-conf', 'f-wisdom', 'l-wisdom']] + + ['include/fftw3%s' % x for x in ['-mpi.f03', '-mpi.h', '.f', '.f03', + '.h', 'l-mpi.f03', 'l.f03', 'q.f03']] + + ['lib/libfftw3%s%s.a' % (x, y) for x in ['', 'f', 'l'] for y in ['', '_mpi', '_omp', '_threads']], + 'dirs': ['lib/pkgconfig'], +} + +moduleclass = 'numlib' diff --git a/f/FFTW/FFTW-3.3.6-gompi-2017a.eb b/f/FFTW/FFTW-3.3.6-gompi-2017a.eb new file mode 100644 index 00000000..ca8ad732 --- /dev/null +++ b/f/FFTW/FFTW-3.3.6-gompi-2017a.eb @@ -0,0 +1,19 @@ +easyblock = 'ConfigureMake' + +name = 'FFTW' +version = '3.3.6' + +homepage = 'http://www.fftw.org' +description = """FFTW is a C subroutine library for computing the discrete Fourier transform (DFT) + in one or more dimensions, of arbitrary input size, and of both real and complex data.""" + +toolchain = {'name': 'gompi', 'version': '2017a'} +toolchainopts = {'pic': True} + +source_urls = [homepage] +sources = ['fftw-%(version)s-pl1.tar.gz'] +checksums = ['682a0e78d6966ca37c7446d4ab4cc2a1'] + +runtest = 'check' + +moduleclass = 'numlib' diff --git a/f/FFmpeg/FFmpeg-0.10.16-intel-2016a.eb b/f/FFmpeg/FFmpeg-0.10.16-intel-2016a.eb new file mode 100644 index 00000000..3e71d0c5 --- /dev/null +++ b/f/FFmpeg/FFmpeg-0.10.16-intel-2016a.eb @@ -0,0 +1,32 @@ +easyblock = 'ConfigureMake' + +name = 'FFmpeg' +version = '0.10.16' + +homepage = 'https://www.ffmpeg.org/' +description = """A complete, cross-platform solution to record, convert and stream audio and video.""" + +toolchain = {'name': 'intel', 'version': '2016a'} +# disable use of -xHOST, since it can trigger an internal compiler error in this case +toolchainopts = {'optarch': False} + +sources = [SOURCELOWER_TAR_BZ2] +source_urls = ['http://ffmpeg.org/releases/'] + +dependencies = [ + ('NASM', '2.11.08'), + ('zlib', '1.2.8'), + ('x264', '20160114'), +] + +configopts = '--enable-pic --enable-shared --enable-gpl --enable-version3 --enable-nonfree --cc="$CC" --cxx="$CXX" ' +configopts += '--enable-libx264' + +sanity_check_paths = { + 'files': ['bin/ff%s' % x for x in ['mpeg', 'probe', 'server']] + + ['lib/lib%s.%s' % (x, y) for x in ['avdevice', 'avfilter', 'avformat', 'avcodec', 'postproc', + 'swresample', 'swscale', 'avutil'] for y in ['so', 'a']], + 'dirs': ['include'] +} + +moduleclass = 'vis' diff --git a/f/FFmpeg/FFmpeg-2.8.6-intel-2016a.eb b/f/FFmpeg/FFmpeg-2.8.6-intel-2016a.eb new file mode 100644 index 00000000..40be8fe3 --- /dev/null +++ b/f/FFmpeg/FFmpeg-2.8.6-intel-2016a.eb @@ -0,0 +1,30 @@ +easyblock = 'ConfigureMake' + +name = 'FFmpeg' +version = '2.8.6' + +homepage = 'https://www.ffmpeg.org/' +description = """A complete, cross-platform solution to record, convert and stream audio and video.""" + +toolchain = {'name': 'intel', 'version': '2016a'} + +sources = [SOURCELOWER_TAR_BZ2] +source_urls = ['http://ffmpeg.org/releases/'] + +dependencies = [ + ('NASM', '2.11.08'), + ('zlib', '1.2.8'), + ('x264', '20160114'), +] + +configopts = '--enable-pic --enable-shared --enable-gpl --enable-version3 --enable-nonfree --cc="$CC" --cxx="$CXX" ' +configopts += '--enable-libx264' + +sanity_check_paths = { + 'files': ['bin/ff%s' % x for x in ['mpeg', 'probe', 'server']] + + ['lib/lib%s.%s' % (x, y) for x in ['avdevice', 'avfilter', 'avformat', 'avcodec', 'postproc', + 'swresample', 'swscale', 'avutil'] for y in ['so', 'a']], + 'dirs': ['include'] +} + +moduleclass = 'vis' diff --git a/f/FFmpeg/FFmpeg-2.8.7-foss-2016a.eb b/f/FFmpeg/FFmpeg-2.8.7-foss-2016a.eb new file mode 100644 index 00000000..0badebf4 --- /dev/null +++ b/f/FFmpeg/FFmpeg-2.8.7-foss-2016a.eb @@ -0,0 +1,30 @@ +easyblock = 'ConfigureMake' + +name = 'FFmpeg' +version = '2.8.7' + +homepage = 'https://www.ffmpeg.org/' +description = """A complete, cross-platform solution to record, convert and stream audio and video.""" + +toolchain = {'name': 'foss', 'version': '2016a'} + +sources = [SOURCELOWER_TAR_BZ2] +source_urls = ['http://ffmpeg.org/releases/'] + +dependencies = [ + ('NASM', '2.12.01'), + ('zlib', '1.2.8'), + ('x264', '20160430'), +] + +configopts = '--enable-pic --enable-shared --enable-gpl --enable-version3 --enable-nonfree --cc="$CC" --cxx="$CXX" ' +configopts += '--enable-libx264' + +sanity_check_paths = { + 'files': ['bin/ff%s' % x for x in ['mpeg', 'probe', 'server']] + + ['lib/lib%s.%s' % (x, y) for x in ['avdevice', 'avfilter', 'avformat', 'avcodec', 'postproc', + 'swresample', 'swscale', 'avutil'] for y in [SHLIB_EXT, 'a']], + 'dirs': ['include'] +} + +moduleclass = 'vis' diff --git a/f/FFmpeg/FFmpeg-2.8.7-intel-2016a.eb b/f/FFmpeg/FFmpeg-2.8.7-intel-2016a.eb new file mode 100644 index 00000000..05478cca --- /dev/null +++ b/f/FFmpeg/FFmpeg-2.8.7-intel-2016a.eb @@ -0,0 +1,30 @@ +easyblock = 'ConfigureMake' + +name = 'FFmpeg' +version = '2.8.7' + +homepage = 'https://www.ffmpeg.org/' +description = """A complete, cross-platform solution to record, convert and stream audio and video.""" + +toolchain = {'name': 'intel', 'version': '2016a'} + +sources = [SOURCELOWER_TAR_BZ2] +source_urls = ['http://ffmpeg.org/releases/'] + +dependencies = [ + ('NASM', '2.12.01'), + ('zlib', '1.2.8'), + ('x264', '20160430'), +] + +configopts = '--enable-pic --enable-shared --enable-gpl --enable-version3 --enable-nonfree --cc="$CC" --cxx="$CXX" ' +configopts += '--enable-libx264' + +sanity_check_paths = { + 'files': ['bin/ff%s' % x for x in ['mpeg', 'probe', 'server']] + + ['lib/lib%s.%s' % (x, y) for x in ['avdevice', 'avfilter', 'avformat', 'avcodec', 'postproc', + 'swresample', 'swscale', 'avutil'] for y in ['so', 'a']], + 'dirs': ['include'] +} + +moduleclass = 'vis' diff --git a/f/FFmpeg/FFmpeg-3.0.2-intel-2016a.eb b/f/FFmpeg/FFmpeg-3.0.2-intel-2016a.eb new file mode 100644 index 00000000..fb0c75a2 --- /dev/null +++ b/f/FFmpeg/FFmpeg-3.0.2-intel-2016a.eb @@ -0,0 +1,30 @@ +easyblock = 'ConfigureMake' + +name = 'FFmpeg' +version = '3.0.2' + +homepage = 'https://www.ffmpeg.org/' +description = """A complete, cross-platform solution to record, convert and stream audio and video.""" + +toolchain = {'name': 'intel', 'version': '2016a'} + +sources = [SOURCELOWER_TAR_BZ2] +source_urls = ['http://ffmpeg.org/releases/'] + +dependencies = [ + ('NASM', '2.12.01'), + ('zlib', '1.2.8'), + ('x264', '20160430'), +] + +configopts = '--enable-pic --enable-shared --enable-gpl --enable-version3 --enable-nonfree --cc="$CC" --cxx="$CXX" ' +configopts += '--enable-libx264' + +sanity_check_paths = { + 'files': ['bin/ff%s' % x for x in ['mpeg', 'probe', 'server']] + + ['lib/lib%s.%s' % (x, y) for x in ['avdevice', 'avfilter', 'avformat', 'avcodec', 'postproc', + 'swresample', 'swscale', 'avutil'] for y in ['so', 'a']], + 'dirs': ['include'] +} + +moduleclass = 'vis' diff --git a/f/FIAT/FIAT-1.6.0-intel-2015b-Python-2.7.9.eb b/f/FIAT/FIAT-1.6.0-intel-2015b-Python-2.7.9.eb new file mode 100644 index 00000000..1871acb0 --- /dev/null +++ b/f/FIAT/FIAT-1.6.0-intel-2015b-Python-2.7.9.eb @@ -0,0 +1,36 @@ +easyblock = 'PythonPackage' + +name = 'FIAT' +version = '1.6.0' + +homepage = 'https://bitbucket.org/fenics-project/fiat' +description = """The FInite element Automatic Tabulator FIAT supports generation of arbitrary order +instances of the Lagrange elements on lines, triangles, and tetrahedra. It is also capable of generating +arbitrary order instances of Jacobi-type quadrature rules on the same element shapes.""" + +toolchain = {'name': 'intel', 'version': '2015b'} + +source_urls = ['https://bitbucket.org/fenics-project/fiat/downloads'] +sources = [SOURCELOWER_TAR_GZ] + +python = "Python" +pythonversion = '2.7.9' +pythonshortversion = ".".join(pythonversion.split('.')[:-1]) + +versionsuffix = "-%s-%s" % (python, pythonversion) + +dependencies = [ + (python, pythonversion), + ('ScientificPython', '2.9.4', versionsuffix), + ('sympy', '0.7.6', versionsuffix), +] + +options = {'modulename': name} + +sanity_check_paths = { + 'files': [''], + #'dirs': ['lib/python%s/site-packages/FIAT' % pythonshortversion], + 'dirs': [''], +} + +moduleclass = 'math' diff --git a/f/FIAT/FIAT-1.6.0-intel-2016.01-Python-2.7.9.eb b/f/FIAT/FIAT-1.6.0-intel-2016.01-Python-2.7.9.eb new file mode 100644 index 00000000..eb33a733 --- /dev/null +++ b/f/FIAT/FIAT-1.6.0-intel-2016.01-Python-2.7.9.eb @@ -0,0 +1,35 @@ +easyblock = 'PythonPackage' + +name = 'FIAT' +version = '1.6.0' + +homepage = 'https://bitbucket.org/fenics-project/fiat' +description = """The FInite element Automatic Tabulator FIAT supports generation of arbitrary order +instances of the Lagrange elements on lines, triangles, and tetrahedra. It is also capable of generating +arbitrary order instances of Jacobi-type quadrature rules on the same element shapes.""" + +toolchain = {'name': 'intel', 'version': '2016.01'} + +source_urls = ['https://bitbucket.org/fenics-project/fiat/downloads'] +sources = [SOURCELOWER_TAR_GZ] + +python = "Python" +pythonversion = '2.7.9' +pythonshortversion = ".".join(pythonversion.split('.')[:-1]) + +versionsuffix = "-%s-%s" % (python, pythonversion) + +dependencies = [ + (python, pythonversion), + ('ScientificPython', '2.9.4', versionsuffix), + ('sympy', '0.7.6', versionsuffix), +] + +options = {'modulename': name} + +sanity_check_paths = { + 'files': [], + 'dirs': ['lib'], +} + +moduleclass = 'math' diff --git a/f/FLEUR/FLEUR-0.26e-intel-2016a.eb b/f/FLEUR/FLEUR-0.26e-intel-2016a.eb new file mode 100644 index 00000000..d7d71121 --- /dev/null +++ b/f/FLEUR/FLEUR-0.26e-intel-2016a.eb @@ -0,0 +1,45 @@ +easyblock = 'MakeCp' + +name = 'FLEUR' +version = '0.26e' + +homepage = 'http://www.flapw.de/' +description = """FLEUR is a feature-full, freely available FLAPW (full potential linearized augmented planewave) code, + based on density-functional theory.""" + +toolchain = {'name': 'intel', 'version': '2016a'} +toolchainopts = {'usempi': True, 'r8': True} + +# dowload requires registration, see http://www.flapw.de/pm/index.php?n=FLEUR.Downloads +sources = ['v%s.tgz' % version.split('.')[1]] + +builddependencies = [('imake', '1.0.7')] + +dependencies = [ + ('zlib', '1.2.8'), + ('Szip', '2.1'), + ('HDF5', '1.8.16'), +# ('Wannier90', '2.0.1'), # only needed if '#define wann' is added to Imakefile +] + +# define hardware platform to be 'parallel intel compiler, 64 bit, use scalapack') +prebuildopts = "sed -i 's/^#define jureca/#define linux_evp_64/g' Imakefile && " +# don't specialize for systems with structural symmetry +prebuildopts += "sed -i 's/^#define inversion//g' Imakefile && " +# no need to jump through hoops to make compilation work with older Fortran compilers +prebuildopts += "sed -i 's/^#define f_90//g' Imakefile && " + +prebuildopts += "imake && " +buildopts = 'FC="$FC" FFLAGS="$FFLAGS" HDFROOT=$EBROOTHDF5 fleur.x inpgen.x' + +# parallel build tends to fail +parallel = 1 + +files_to_copy = [(['fleur.x', 'inpgen.x'], 'bin')] + +sanity_check_paths = { + 'files': ['bin/fleur.x', 'bin/inpgen.x'], + 'dirs': [], +} + +moduleclass = 'chem' diff --git a/f/FLTK/FLTK-1.3.3-foss-2016a.eb b/f/FLTK/FLTK-1.3.3-foss-2016a.eb new file mode 100644 index 00000000..0056b113 --- /dev/null +++ b/f/FLTK/FLTK-1.3.3-foss-2016a.eb @@ -0,0 +1,39 @@ +# +# author: Dina Mahmoud Ibrahim ( Cairo University ) +# +easyblock = 'ConfigureMake' + +name = 'FLTK' +version = '1.3.3' + +homepage = 'http://www.fltk.org' +description = """FLTK is a cross-platform C++ GUI toolkit for UNIX/Linux (X11), Microsoft Windows, + and MacOS X. FLTK provides modern GUI functionality without the bloat and supports 3D graphics via OpenGL + and its built-in GLUT emulation.""" + +toolchain = {'name': 'foss', 'version': '2016a'} +toolchainopts = {'optarch': True, 'pic': True} + +sources = ['%(namelower)s-%(version)s-source.tar.gz'] +source_urls = ['http://fltk.org/pub/%(namelower)s/%(version)s/'] + +configopts = '--enable-shared --enable-threads --enable-xft' + +dependencies = [ + ('libX11', '1.6.3'), + ('libXcursor', '1.1.14'), + ('libXinerama', '1.1.3'), + ('Mesa', '11.1.2'), + ('libGLU', '9.0.0'), + ('libpng', '1.6.21'), + ('libjpeg-turbo', '1.4.2'), + ('xprop', '1.2.2'), + ('libXft', '2.3.2'), +] + +sanity_check_paths = { + 'files': ['bin/fltk-config', 'bin/fluid', 'lib/libfltk.a', 'lib/libfltk.%s' % SHLIB_EXT], + 'dirs': ['lib'], +} + +moduleclass = 'vis' diff --git a/f/FLTK/FLTK-1.3.3-intel-2016a.eb b/f/FLTK/FLTK-1.3.3-intel-2016a.eb new file mode 100644 index 00000000..d88b64d9 --- /dev/null +++ b/f/FLTK/FLTK-1.3.3-intel-2016a.eb @@ -0,0 +1,39 @@ +# +# author: Dina Mahmoud Ibrahim ( Cairo University ) +# +easyblock = 'ConfigureMake' + +name = 'FLTK' +version = '1.3.3' + +homepage = 'http://www.fltk.org' +description = """FLTK is a cross-platform C++ GUI toolkit for UNIX/Linux (X11), Microsoft Windows, + and MacOS X. FLTK provides modern GUI functionality without the bloat and supports 3D graphics via OpenGL + and its built-in GLUT emulation.""" + +toolchain = {'name': 'intel', 'version': '2016a'} +toolchainopts = {'optarch': True, 'pic': True} + +sources = ['%(namelower)s-%(version)s-source.tar.gz'] +source_urls = ['http://fltk.org/pub/%(namelower)s/%(version)s/'] + +configopts = '--enable-shared --enable-threads --enable-xft' + +dependencies = [ + ('libX11', '1.6.3'), + ('libXcursor', '1.1.14'), + ('libXinerama', '1.1.3'), + ('Mesa', '11.1.2'), + ('libGLU', '9.0.0'), + ('libpng', '1.6.21'), + ('libjpeg-turbo', '1.4.2'), + ('xprop', '1.2.2'), + ('libXft', '2.3.2'), +] + +sanity_check_paths = { + 'files': ['bin/fltk-config', 'bin/fluid', 'lib/libfltk.a', 'lib/libfltk.%s' % SHLIB_EXT], + 'dirs': ['lib'], +} + +moduleclass = 'vis' diff --git a/f/FOX/FOX-1.6.51-foss-2015g.eb b/f/FOX/FOX-1.6.51-foss-2015g.eb new file mode 100644 index 00000000..7190b969 --- /dev/null +++ b/f/FOX/FOX-1.6.51-foss-2015g.eb @@ -0,0 +1,22 @@ +easyblock = 'ConfigureMake' + +name = 'FOX' +version = '1.6.51' + +homepage = 'http://fox-toolkit.org' + +description = """FOX is a C++ based Toolkit for developing Graphical User Interfaces easily and effectively. +It offers a wide, and growing, collection of Controls, and provides state of the art facilities such as +drag and drop, selection, as well as OpenGL widgets for 3D graphical manipulation.""" + +toolchain = {'name': 'foss', 'version': '2015g'} + +source_urls = ['ftp://ftp.fox-toolkit.org/pub'] +sources = [SOURCELOWER_TAR_GZ] + +sanity_check_paths = { + 'files': ['bin/fox-config'], + 'dirs': ['bin', 'lib', 'include'], +} + +moduleclass = 'lib' diff --git a/f/Firefox/Firefox-44.0.2.eb b/f/Firefox/Firefox-44.0.2.eb new file mode 100644 index 00000000..21da1fdd --- /dev/null +++ b/f/Firefox/Firefox-44.0.2.eb @@ -0,0 +1,31 @@ +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# Author: Pablo Escobar Lopez +# sciCORE - University of Basel +# SIB Swiss Institute of Bioinformatics + +easyblock = 'Tarball' + +name = 'Firefox' +version = '44.0.2' + +homepage = 'https://www.mozilla.org/en-US/firefox/new/' +description = """Firefox is a free, open source Web browser for Windows, Linux and Mac OS X. It is based on the Mozilla code + base and offers customization options and features such as its capability to block pop-up windows, tabbed browsing, privacy + and security measures, smart searching, and RSS live bookmarks.""" + +toolchain = {'name': 'dummy', 'version': ''} + +source_urls = ['https://ftp.mozilla.org/pub/firefox/releases/%(version)s/linux-x86_64/en-US/'] +sources = [SOURCELOWER_TAR_BZ2] + +sanity_check_paths = { + 'files': ['firefox'], + 'dirs': [] +} + +# add the installation dir to PATH +modextrapaths = { + 'PATH': "", +} + +moduleclass = 'tools' diff --git a/f/Forge/Forge-5.1-43967.eb b/f/Forge/Forge-5.1-43967.eb new file mode 100644 index 00000000..845d212a --- /dev/null +++ b/f/Forge/Forge-5.1-43967.eb @@ -0,0 +1,38 @@ +easyblock = 'AllineaBase' + +name = 'Forge' +version = '5.1-43967' + +homepage = 'http://www.allinea.com/products/develop-allinea-forge' +description = """Allinea Forge is the complete toolsuite for software development +- with everything needed to debug, profile, optimize, edit and build C, C++ +and FORTRAN applications on Linux for high performance - from single threads through +to complex parallel HPC codes with MPI, OpenMP, threads or CUDA. +""" + +toolchain = {'name': 'dummy', 'version': 'dummy'} + +source_urls = [ + # Use manually downloaded sources + # http://content.allinea.com/downloads/allinea-forge-latest-Redhat-6.0-x86_64+MIC-2.1-k1om.tar + # and rename it to format %(namelower)s-%(version)s.tar, so forge-5.1-43967.tar. +] + +#### IMPORTANT NOTE! #### +# Right now, we do not have support for +# copying Allinea licence file to the +# installation directory +# You have to copy file manually +# to the %(installdir)s/licences/ directory! +########################### + +sources = [SOURCELOWER_TAR] + +skipsteps = ['configure', 'build'] + +sanity_check_paths = { + 'files': ['bin/ddt'], + 'dirs': ['lib'], +} + +moduleclass = 'debugger' diff --git a/f/Forge/Forge-6.1.2.eb b/f/Forge/Forge-6.1.2.eb new file mode 100644 index 00000000..1218e939 --- /dev/null +++ b/f/Forge/Forge-6.1.2.eb @@ -0,0 +1,38 @@ +easyblock = 'AllineaBase' + +name = 'Forge' +version = "6.1.2" + +homepage = 'http://www.allinea.com/products/develop-allinea-forge' +description = """Allinea Forge is the complete toolsuite for software development +- with everything needed to debug, profile, optimize, edit and build C, C++ +and FORTRAN applications on Linux for high performance - from single threads through +to complex parallel HPC codes with MPI, OpenMP, threads or CUDA. +""" + +toolchain = {'name': 'dummy', 'version': 'dummy'} + +source_urls = [ + # Use manually downloaded sources + # http://content.allinea.com/downloads/allinea-forge-latest-Redhat-6.1.2-x86_64+MIC-2.1-k1om.tar + # and rename it to format %(namelower)s-%(version)s.tar, so forge-6.1.2.tar. +] + +#### IMPORTANT NOTE! #### +# Right now, we do not have support for +# copying Allinea licence file to the +# installation directory +# You have to copy file manually +# to the %(installdir)s/licences/ directory! +########################### + +sources = [SOURCELOWER_TAR] + +skipsteps = ['configure', 'build'] + +sanity_check_paths = { + 'files': ['bin/ddt'], + 'dirs': ['lib'], +} + +moduleclass = 'debugger' diff --git a/f/Forge/Forge-7.0.eb b/f/Forge/Forge-7.0.eb new file mode 100644 index 00000000..5ab6275c --- /dev/null +++ b/f/Forge/Forge-7.0.eb @@ -0,0 +1,38 @@ +easyblock = 'AllineaBase' + +name = 'Forge' +version = "7.0" + +homepage = 'http://www.allinea.com/products/develop-allinea-forge' +description = """Allinea Forge is the complete toolsuite for software development +- with everything needed to debug, profile, optimize, edit and build C, C++ +and FORTRAN applications on Linux for high performance - from single threads through +to complex parallel HPC codes with MPI, OpenMP, threads or CUDA. +""" + +toolchain = {'name': 'dummy', 'version': 'dummy'} + +source_urls = [ + # Use manually downloaded sources + # http://content.allinea.com/downloads/allinea-forge-latest-Redhat-6.1.2-x86_64+MIC-2.1-k1om.tar + # and rename it to format %(namelower)s-%(version)s.tar, so forge-6.1.2.tar. +] + +#### IMPORTANT NOTE! #### +# Right now, we do not have support for +# copying Allinea licence file to the +# installation directory +# You have to copy file manually +# to the %(installdir)s/licences/ directory! +########################### + +sources = [SOURCELOWER_TAR] + +skipsteps = ['configure', 'build'] + +sanity_check_paths = { + 'files': ['bin/ddt'], + 'dirs': ['lib'], +} + +moduleclass = 'debugger' diff --git a/f/FreeFem++/FreeFem++-3.45-intel-2015b.eb b/f/FreeFem++/FreeFem++-3.45-intel-2015b.eb new file mode 100644 index 00000000..af642c75 --- /dev/null +++ b/f/FreeFem++/FreeFem++-3.45-intel-2015b.eb @@ -0,0 +1,42 @@ +easyblock = 'ConfigureMake' + +name = 'FreeFem++' +version = '3.45' + +homepage = 'http://www.freefem.org' +description = """FreeFem++ is a partial differential equation solver. It has its own language. freefem scripts can solve multiphysics non linear systems in 2D and 3D. +Problems involving PDE (2d, 3d) from several branches of physics such as fluid-structure interactions require interpolations of data on several meshes and their manipulation within one program. FreeFem++ includes a fast 2^d-tree-based interpolation algorithm and a language for the manipulation of data on multiple meshes (as a follow up of bamg (now a part of FreeFem++ ). + +FreeFem++ is written in C++ and the FreeFem++ language is a C++ idiom. It runs on Macs, Windows, Unix machines. FreeFem++ replaces the older freefem and freefem+.""" + +toolchain = {'name': 'intel', 'version': '2015b'} +toolchainopts = {'opt': True, 'optarch': True} + +sources = [SOURCELOWER_TAR_GZ] +source_urls = ['http://www.freefem.org/ff++/ftp/'] + +patches = ['FreeFem_metis.patch'] + +dependencies = [ + ('HDF5', '1.8.13'), + ('SuiteSparse', '4.4.6', '-ParMETIS-4.0.3'), + ('PETSc', '3.6.3', '-Python-2.7.11'), + ('GSL', '1.16'), + ('arpack-ng', '3.3.0'), + ('FFTW', '3.3.4') +] + +configopts = '--with-umfpack="-lumfpack -lcholmod -lcolamd -lamd -lsuitesparseconfig" ' + \ + '--with-amd="-lumfpack -lcholmod -lcolamd -lamd -lsuitesparseconfig" --with-arpack="-larpack" ' + \ + '--with-petsc=$EBROOTPETSC --enable-generic --with-parmetis-include=$EBROOTPARMETIS/include --with-parmetis-ldflags="-lparmetis" ' + \ + '--disable-hpddm' # unable to get this one to work + +# parallel builds tend to fail ? or not ? +parallel=1 + +sanity_check_paths = { + 'files': [], + 'dirs': ['bin'] +} + +moduleclass = 'cae' diff --git a/f/FreeFem++/FreeFem_metis.patch b/f/FreeFem++/FreeFem_metis.patch new file mode 100644 index 00000000..bbca89ae --- /dev/null +++ b/f/FreeFem++/FreeFem_metis.patch @@ -0,0 +1,59 @@ +diff -Naur freefem++-3.45-old/examples++-load/metis.cpp freefem++-3.45/examples++-load/metis.cpp +--- freefem++-3.45-old/examples++-load/metis.cpp 2015-10-03 14:46:37.000000000 +0200 ++++ freefem++-3.45/examples++-load/metis.cpp 2016-04-08 13:37:34.040518685 +0200 +@@ -51,21 +51,21 @@ + { + ffassert(pTh); + const Mesh & Th(*pTh); +- int nt=Th.nt,nv=Th.nv; +- int nve = Mesh::Rd::d+1; ++ idx_t nt=Th.nt,nv=Th.nv; ++ idx_t nve = Mesh::Rd::d+1; + + KN eptr(nt+1),elmnts(nve*nt), epart(nt), npart(nv); +- for(int k=0,i=0;k elmnts(nve*nt), epart(nt), npart(nv); +- for(int k=0,i=0;k, Fotis Georgatos , Kenneth Hoste (UGent) +# 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 +## + +easyblock = 'Tarball' + +name = 'GATK' +version = '2.5-2' + +homepage = 'http://www.broadinstitute.org/gatk/' +description = """The Genome Analysis Toolkit or GATK is a software package developed at the Broad Institute + to analyse next-generation resequencing data. The toolkit offers a wide variety of tools, + with a primary focus on variant discovery and genotyping as well as strong emphasis on + data quality assurance. Its robust architecture, powerful processing engine and + high-performance computing features make it capable of taking on projects of any size.""" + +toolchain = {'name': 'dummy', 'version': ''} + +# download manually from http://www.broadinstitute.org/gatk/download +sources = ['GenomeAnalysisTK-%(version)s.tar.bz2'] + +java = 'Java' +javaver = '1.7.0_10' +versionsuffix = '-%s-%s' % (java, javaver) +dependencies = [(java, javaver)] + +modloadmsg = """To execute GATK run: java -jar \\$EBROOTGATK/GenomeAnalysisTK.jar""" + +sanity_check_paths = { + 'files': ["GenomeAnalysisTK.jar"], + 'dirs': ["resources"], +} + +moduleclass = 'bio' diff --git a/g/GATK/GATK-2.6-5-Java-1.7.0_10.eb b/g/GATK/GATK-2.6-5-Java-1.7.0_10.eb new file mode 100644 index 00000000..dde93eb1 --- /dev/null +++ b/g/GATK/GATK-2.6-5-Java-1.7.0_10.eb @@ -0,0 +1,42 @@ +## +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# +# Copyright:: Copyright 2012-2014 Cyprus Institute / CaSToRC, Uni.Lu/LCSB, NTUA +# Authors:: George Tsouloupas , Fotis Georgatos , Kenneth Hoste (UGent) +# 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 +## + +easyblock = 'Tarball' + +name = 'GATK' +version = '2.6-5' + +homepage = 'http://www.broadinstitute.org/gatk/' +description = """The Genome Analysis Toolkit or GATK is a software package developed at the Broad Institute + to analyse next-generation resequencing data. The toolkit offers a wide variety of tools, + with a primary focus on variant discovery and genotyping as well as strong emphasis on + data quality assurance. Its robust architecture, powerful processing engine and + high-performance computing features make it capable of taking on projects of any size.""" + +toolchain = {'name': 'dummy', 'version': ''} + +# download manually from http://www.broadinstitute.org/gatk/download +sources = ['GenomeAnalysisTK-%(version)s.tar.bz2'] + +java = 'Java' +javaver = '1.7.0_10' +versionsuffix = '-%s-%s' % (java, javaver) +dependencies = [(java, javaver)] + +modloadmsg = """To execute GATK run: java -jar \\$EBROOTGATK/GenomeAnalysisTK.jar""" + +sanity_check_paths = { + 'files': ["GenomeAnalysisTK.jar"], + 'dirs': ["resources"], +} + +moduleclass = 'bio' diff --git a/g/GATK/GATK-2.6-5-Java-1.7.0_79.eb b/g/GATK/GATK-2.6-5-Java-1.7.0_79.eb new file mode 100644 index 00000000..487a6eea --- /dev/null +++ b/g/GATK/GATK-2.6-5-Java-1.7.0_79.eb @@ -0,0 +1,30 @@ +easyblock = 'Tarball' + +name = 'GATK' +version = '2.6-5' + +homepage = 'http://www.broadinstitute.org/gatk/' +description = """The Genome Analysis Toolkit or GATK is a software package developed at the Broad Institute + to analyse next-generation resequencing data. The toolkit offers a wide variety of tools, + with a primary focus on variant discovery and genotyping as well as strong emphasis on + data quality assurance. Its robust architecture, powerful processing engine and + high-performance computing features make it capable of taking on projects of any size.""" + +toolchain = {'name': 'dummy', 'version': 'dummy'} + +# download manually from http://www.broadinstitute.org/gatk/download +sources = ['GenomeAnalysisTK-%(version)s.tar.bz2'] + +java = 'Java' +javaver = '1.7.0_79' +versionsuffix = '-%s-%s' % (java, javaver) +dependencies = [(java, javaver)] + +modaliases = {'gatk': "java -jar \\$EBROOTGATK/GenomeAnalysisTK.jar"} + +sanity_check_paths = { + 'files': ["GenomeAnalysisTK.jar"], + 'dirs': ["resources"], +} + +moduleclass = 'bio' diff --git a/g/GATK/GATK-2.7-4-Java-1.7.0_10.eb b/g/GATK/GATK-2.7-4-Java-1.7.0_10.eb new file mode 100644 index 00000000..a45cb4ec --- /dev/null +++ b/g/GATK/GATK-2.7-4-Java-1.7.0_10.eb @@ -0,0 +1,42 @@ +## +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# +# Copyright:: Copyright 2012-2014 Cyprus Institute / CaSToRC, Uni.Lu/LCSB, NTUA +# Authors:: George Tsouloupas , Fotis Georgatos , Kenneth Hoste (UGent) +# 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 +## + +easyblock = 'Tarball' + +name = 'GATK' +version = '2.7-4' + +homepage = 'http://www.broadinstitute.org/gatk/' +description = """The Genome Analysis Toolkit or GATK is a software package developed at the Broad Institute + to analyse next-generation resequencing data. The toolkit offers a wide variety of tools, + with a primary focus on variant discovery and genotyping as well as strong emphasis on + data quality assurance. Its robust architecture, powerful processing engine and + high-performance computing features make it capable of taking on projects of any size.""" + +toolchain = {'name': 'dummy', 'version': ''} + +# download manually from http://www.broadinstitute.org/gatk/download +sources = ['GenomeAnalysisTK-%(version)s.tar.bz2'] + +java = 'Java' +javaver = '1.7.0_10' +versionsuffix = '-%s-%s' % (java, javaver) +dependencies = [(java, javaver)] + +modloadmsg = """To execute GATK run: java -jar \\$EBROOTGATK/GenomeAnalysisTK.jar""" + +sanity_check_paths = { + 'files': ["GenomeAnalysisTK.jar"], + 'dirs': ["resources"], +} + +moduleclass = 'bio' diff --git a/g/GATK/GATK-2.7-4.eb b/g/GATK/GATK-2.7-4.eb new file mode 100644 index 00000000..1bdef83c --- /dev/null +++ b/g/GATK/GATK-2.7-4.eb @@ -0,0 +1,26 @@ +easyblock = 'Tarball' + +name = 'GATK' +version = '2.7-4' + +homepage = 'http://www.broadinstitute.org/gsa/wiki/index.php/The_Genome_Analysis_Toolkit' +description = """The GATK is a structured software library that makes writing efficient analysis tools + using next-generation sequencing data very easy, and second it's a suite of tools for working with human + medical resequencing projects such as 1000 Genomes and The Cancer Genome Atlas. These tools include things + like a depth of coverage analyzers, a quality score recalibrator, a SNP/indel caller and a local realigner.""" + +toolchain = {'name': 'dummy', 'version': ''} + +# download manually from http://www.broadinstitute.org/gatk/download +sources = ['GenomeAnalysisTK-%(version)s.tar.bz2'] + +dependencies = [('Java', '1.7.0_10')] + +modloadmsg = """To execute GATK run: java -jar \\$EBROOTGATK/GenomeAnalysisTK.jar""" + +sanity_check_paths = { + 'files': ["GenomeAnalysisTK.jar"], + 'dirs': ["resources"], +} + +moduleclass = 'bio' diff --git a/g/GATK/GATK-2.8-1-Java-1.7.0_10.eb b/g/GATK/GATK-2.8-1-Java-1.7.0_10.eb new file mode 100644 index 00000000..21448792 --- /dev/null +++ b/g/GATK/GATK-2.8-1-Java-1.7.0_10.eb @@ -0,0 +1,42 @@ +## +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# +# Copyright:: Copyright 2012-2014 Cyprus Institute / CaSToRC, Uni.Lu/LCSB, NTUA +# Authors:: George Tsouloupas , Fotis Georgatos , Kenneth Hoste (UGent) +# 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 +## + +easyblock = 'Tarball' + +name = 'GATK' +version = '2.8-1' + +homepage = 'http://www.broadinstitute.org/gatk/' +description = """The Genome Analysis Toolkit or GATK is a software package developed at the Broad Institute + to analyse next-generation resequencing data. The toolkit offers a wide variety of tools, + with a primary focus on variant discovery and genotyping as well as strong emphasis on + data quality assurance. Its robust architecture, powerful processing engine and + high-performance computing features make it capable of taking on projects of any size.""" + +toolchain = {'name': 'dummy', 'version': ''} + +# download manually from http://www.broadinstitute.org/gatk/download +sources = ['GenomeAnalysisTK-%(version)s.tar.bz2'] + +java = 'Java' +javaver = '1.7.0_10' +versionsuffix = '-%s-%s' % (java, javaver) +dependencies = [(java, javaver)] + +modloadmsg = """To execute GATK run: java -jar \\$EBROOTGATK/GenomeAnalysisTK.jar""" + +sanity_check_paths = { + 'files': ["GenomeAnalysisTK.jar"], + 'dirs': ["resources"], +} + +moduleclass = 'bio' diff --git a/g/GATK/GATK-3.3-0-Java-1.7.0_21.eb b/g/GATK/GATK-3.3-0-Java-1.7.0_21.eb new file mode 100644 index 00000000..38e7ae6d --- /dev/null +++ b/g/GATK/GATK-3.3-0-Java-1.7.0_21.eb @@ -0,0 +1,42 @@ +## +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# +# Copyright:: Copyright 2012-2013 Cyprus Institute / CaSToRC, University of Luxembourg / LCSB +# Authors:: George Tsouloupas , Fotis Georgatos , Kenneth Hoste (UGent) +# 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 +## + +easyblock = 'Tarball' + +name = 'GATK' +version = '3.3-0' + +homepage = 'http://www.broadinstitute.org/gatk/' +description = """The Genome Analysis Toolkit or GATK is a software package developed at the Broad Institute + to analyse next-generation resequencing data. The toolkit offers a wide variety of tools, + with a primary focus on variant discovery and genotyping as well as strong emphasis on + data quality assurance. Its robust architecture, powerful processing engine and + high-performance computing features make it capable of taking on projects of any size.""" + +toolchain = {'name': 'dummy', 'version': ''} + +# download manually from http://www.broadinstitute.org/gatk/download +sources = ['GenomeAnalysisTK-%(version)s.tar.bz2'] + +java = 'Java' +javaver = '1.7.0_21' +versionsuffix = '-%s-%s' % (java, javaver) +dependencies = [(java, javaver)] + +modloadmsg = """To execute GATK run: java -jar \\$EBROOTGATK/GenomeAnalysisTK.jar""" + +sanity_check_paths = { + 'files': ["GenomeAnalysisTK.jar"], + 'dirs': ["resources"], +} + +moduleclass = 'bio' diff --git a/g/GATK/GATK-3.3-0-Java-1.7.0_80.eb b/g/GATK/GATK-3.3-0-Java-1.7.0_80.eb new file mode 100644 index 00000000..689accfb --- /dev/null +++ b/g/GATK/GATK-3.3-0-Java-1.7.0_80.eb @@ -0,0 +1,42 @@ +## +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# +# Copyright:: Copyright 2012-2013 Cyprus Institute / CaSToRC, University of Luxembourg / LCSB +# Authors:: George Tsouloupas , Fotis Georgatos , Kenneth Hoste (UGent) +# 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 +## + +easyblock = 'Tarball' + +name = 'GATK' +version = '3.3-0' + +homepage = 'http://www.broadinstitute.org/gatk/' +description = """The Genome Analysis Toolkit or GATK is a software package developed at the Broad Institute + to analyse next-generation resequencing data. The toolkit offers a wide variety of tools, + with a primary focus on variant discovery and genotyping as well as strong emphasis on + data quality assurance. Its robust architecture, powerful processing engine and + high-performance computing features make it capable of taking on projects of any size.""" + +toolchain = {'name': 'dummy', 'version': ''} + +# download manually from http://www.broadinstitute.org/gatk/download +sources = ['GenomeAnalysisTK-%(version)s.tar.bz2'] + +java = 'Java' +javaver = '1.7.0_80' +versionsuffix = '-%s-%s' % (java, javaver) +dependencies = [(java, javaver)] + +modloadmsg = """To execute GATK run: java -jar \\$EBROOTGATK/GenomeAnalysisTK.jar""" + +sanity_check_paths = { + 'files': ["GenomeAnalysisTK.jar"], + 'dirs': ["resources"], +} + +moduleclass = 'bio' diff --git a/g/GATK/GATK-3.3-0-Java-1.8.0_66.eb b/g/GATK/GATK-3.3-0-Java-1.8.0_66.eb new file mode 100644 index 00000000..520cb6b3 --- /dev/null +++ b/g/GATK/GATK-3.3-0-Java-1.8.0_66.eb @@ -0,0 +1,42 @@ +## +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# +# Copyright:: Copyright 2012-2013 Cyprus Institute / CaSToRC, University of Luxembourg / LCSB +# Authors:: George Tsouloupas , Fotis Georgatos , Kenneth Hoste (UGent) +# 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 +## + +easyblock = 'Tarball' + +name = 'GATK' +version = '3.3-0' + +homepage = 'http://www.broadinstitute.org/gatk/' +description = """The Genome Analysis Toolkit or GATK is a software package developed at the Broad Institute + to analyse next-generation resequencing data. The toolkit offers a wide variety of tools, + with a primary focus on variant discovery and genotyping as well as strong emphasis on + data quality assurance. Its robust architecture, powerful processing engine and + high-performance computing features make it capable of taking on projects of any size.""" + +toolchain = {'name': 'dummy', 'version': ''} + +# download manually from http://www.broadinstitute.org/gatk/download +sources = ['GenomeAnalysisTK-%(version)s.tar.bz2'] + +java = 'Java' +javaver = '1.8.0_66' +versionsuffix = '-%s-%s' % (java, javaver) +dependencies = [(java, javaver)] + +modloadmsg = """To execute GATK run: java -jar \\$EBROOTGATK/GenomeAnalysisTK.jar""" + +sanity_check_paths = { + 'files': ["GenomeAnalysisTK.jar"], + 'dirs': ["resources"], +} + +moduleclass = 'bio' diff --git a/g/GATK/GATK-3.5-Java-1.7.0_79.eb b/g/GATK/GATK-3.5-Java-1.7.0_79.eb new file mode 100644 index 00000000..37fb0608 --- /dev/null +++ b/g/GATK/GATK-3.5-Java-1.7.0_79.eb @@ -0,0 +1,42 @@ +## +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# +# Copyright:: Copyright 2012-2013 Cyprus Institute / CaSToRC, University of Luxembourg / LCSB +# Authors:: George Tsouloupas , Fotis Georgatos , Kenneth Hoste (UGent) +# 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 +## + +easyblock = 'Tarball' + +name = 'GATK' +version = '3.5' + +homepage = 'http://www.broadinstitute.org/gatk/' +description = """The Genome Analysis Toolkit or GATK is a software package developed at the Broad Institute + to analyse next-generation resequencing data. The toolkit offers a wide variety of tools, + with a primary focus on variant discovery and genotyping as well as strong emphasis on + data quality assurance. Its robust architecture, powerful processing engine and + high-performance computing features make it capable of taking on projects of any size.""" + +toolchain = {'name': 'dummy', 'version': 'dummy'} + +# download manually from http://www.broadinstitute.org/gatk/download +sources = ['GenomeAnalysisTK-%(version)s.tar.bz2'] + +java = 'Java' +javaver = '1.7.0_79' +versionsuffix = '-%s-%s' % (java, javaver) +dependencies = [(java, javaver)] + +modloadmsg = """To execute GATK run: java -jar \\$EBROOTGATK/GenomeAnalysisTK.jar""" + +sanity_check_paths = { + 'files': ["GenomeAnalysisTK.jar"], + 'dirs': ["resources"], +} + +moduleclass = 'bio' diff --git a/g/GATK/GATK-3.5-Java-1.8.0_66.eb b/g/GATK/GATK-3.5-Java-1.8.0_66.eb new file mode 100644 index 00000000..adf96fa7 --- /dev/null +++ b/g/GATK/GATK-3.5-Java-1.8.0_66.eb @@ -0,0 +1,42 @@ +## +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# +# Copyright:: Copyright 2012-2013 Cyprus Institute / CaSToRC, University of Luxembourg / LCSB +# Authors:: George Tsouloupas , Fotis Georgatos , Kenneth Hoste (UGent) +# 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 +## + +easyblock = 'Tarball' + +name = 'GATK' +version = '3.5' + +homepage = 'http://www.broadinstitute.org/gatk/' +description = """The Genome Analysis Toolkit or GATK is a software package developed at the Broad Institute + to analyse next-generation resequencing data. The toolkit offers a wide variety of tools, + with a primary focus on variant discovery and genotyping as well as strong emphasis on + data quality assurance. Its robust architecture, powerful processing engine and + high-performance computing features make it capable of taking on projects of any size.""" + +toolchain = {'name': 'dummy', 'version': ''} + +# download manually from http://www.broadinstitute.org/gatk/download +sources = ['GenomeAnalysisTK-%(version)s.tar.bz2'] + +java = 'Java' +javaver = '1.8.0_66' +versionsuffix = '-%s-%s' % (java, javaver) +dependencies = [(java, javaver)] + +modloadmsg = """To execute GATK run: java -jar \\$EBROOTGATK/GenomeAnalysisTK.jar""" + +sanity_check_paths = { + 'files': ["GenomeAnalysisTK.jar"], + 'dirs': ["resources"], +} + +moduleclass = 'bio' diff --git a/g/GATK/GATK-3.5-Java-1.8.0_74.eb b/g/GATK/GATK-3.5-Java-1.8.0_74.eb new file mode 100644 index 00000000..c52824dc --- /dev/null +++ b/g/GATK/GATK-3.5-Java-1.8.0_74.eb @@ -0,0 +1,40 @@ +## +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# +# Copyright:: Copyright 2012-2013 Cyprus Institute / CaSToRC, University of Luxembourg / LCSB +# Authors:: George Tsouloupas , Fotis Georgatos , Kenneth Hoste (UGent) +# 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 +## + +easyblock = 'Tarball' + +name = 'GATK' +version = '3.5' +versionsuffix = '-Java-%(javaver)s' + +homepage = 'http://www.broadinstitute.org/gatk/' +description = """The Genome Analysis Toolkit or GATK is a software package developed at the Broad Institute + to analyse next-generation resequencing data. The toolkit offers a wide variety of tools, + with a primary focus on variant discovery and genotyping as well as strong emphasis on + data quality assurance. Its robust architecture, powerful processing engine and + high-performance computing features make it capable of taking on projects of any size.""" + +toolchain = {'name': 'dummy', 'version': ''} + +# download manually from http://www.broadinstitute.org/gatk/download +sources = ['GenomeAnalysisTK-%(version)s.tar.bz2'] + +dependencies = [('Java', '1.8.0_74')] + +modloadmsg = """To execute GATK run: java -jar \\$EBROOTGATK/GenomeAnalysisTK.jar""" + +sanity_check_paths = { + 'files': ["GenomeAnalysisTK.jar"], + 'dirs': ["resources"], +} + +moduleclass = 'bio' diff --git a/g/GATK/GATK-3.6-Java-1.8.0_92.eb b/g/GATK/GATK-3.6-Java-1.8.0_92.eb new file mode 100644 index 00000000..fa068137 --- /dev/null +++ b/g/GATK/GATK-3.6-Java-1.8.0_92.eb @@ -0,0 +1,42 @@ +## +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# +# Copyright:: Copyright 2012-2013 Cyprus Institute / CaSToRC, University of Luxembourg / LCSB +# Authors:: George Tsouloupas , Fotis Georgatos , Kenneth Hoste (UGent) +# 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 +# Modified by: Adam Huffman +# The Francis Crick Institute +## + +easyblock = 'Tarball' + +name = 'GATK' +version = '3.6' +versionsuffix = '-Java-%(javaver)s' + +homepage = 'http://www.broadinstitute.org/gatk/' +description = """The Genome Analysis Toolkit or GATK is a software package developed at the Broad Institute + to analyse next-generation resequencing data. The toolkit offers a wide variety of tools, + with a primary focus on variant discovery and genotyping as well as strong emphasis on + data quality assurance. Its robust architecture, powerful processing engine and + high-performance computing features make it capable of taking on projects of any size.""" + +toolchain = {'name': 'dummy', 'version': 'dummy'} + +# download manually from http://www.broadinstitute.org/gatk/download +sources = ['GenomeAnalysisTK-%(version)s.tar.bz2'] + +dependencies = [('Java', '1.8.0_92')] + +modloadmsg = "To execute GATK run: java -jar $EBROOTGATK/GenomeAnalysisTK.jar\n" + +sanity_check_paths = { + 'files': ["GenomeAnalysisTK.jar"], + 'dirs': ["resources"], +} + +moduleclass = 'bio' diff --git a/g/GATK/GATK-3.7-Java-1.8.0_112.eb b/g/GATK/GATK-3.7-Java-1.8.0_112.eb new file mode 100644 index 00000000..9d0b198d --- /dev/null +++ b/g/GATK/GATK-3.7-Java-1.8.0_112.eb @@ -0,0 +1,42 @@ +## +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# +# Copyright:: Copyright 2012-2013 Cyprus Institute / CaSToRC, University of Luxembourg / LCSB +# Authors:: George Tsouloupas , Fotis Georgatos , Kenneth Hoste (UGent) +# 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 +# Modified by: Adam Huffman +# The Francis Crick Institute +## + +easyblock = 'Tarball' + +name = 'GATK' +version = '3.7' +versionsuffix = '-Java-%(javaver)s' + +homepage = 'http://www.broadinstitute.org/gatk/' +description = """The Genome Analysis Toolkit or GATK is a software package developed at the Broad Institute + to analyse next-generation resequencing data. The toolkit offers a wide variety of tools, + with a primary focus on variant discovery and genotyping as well as strong emphasis on + data quality assurance. Its robust architecture, powerful processing engine and + high-performance computing features make it capable of taking on projects of any size.""" + +toolchain = {'name': 'dummy', 'version': 'dummy'} + +# download manually from http://www.broadinstitute.org/gatk/download +sources = ['GenomeAnalysisTK-%(version)s.tar.bz2'] + +dependencies = [('Java', '1.8.0_112')] + +modloadmsg = "To execute GATK run: java -jar $EBROOTGATK/GenomeAnalysisTK.jar\n" + +sanity_check_paths = { + 'files': ["GenomeAnalysisTK.jar"], + 'dirs': ["resources"], +} + +moduleclass = 'bio' diff --git a/g/GC3Pie/GC3Pie-2.2.3.eb b/g/GC3Pie/GC3Pie-2.2.3.eb new file mode 100644 index 00000000..a6eca83b --- /dev/null +++ b/g/GC3Pie/GC3Pie-2.2.3.eb @@ -0,0 +1,108 @@ +easyblock = 'Bundle' + +name = 'GC3Pie' +version = '2.2.3' + +homepage = 'https://gc3pie.readthedocs.org' +description = """GC3Pie is a Python package for running large job campaigns on diverse batch-oriented execution + environments.""" + +toolchain = {'name': 'dummy', 'version': 'dummy'} + +# this is a bundle of Python packages +exts_defaultclass = 'PythonPackage' + +# allow use of system Python +allow_system_deps = [('Python', SYS_PYTHON_VERSION)] + +exts_list = [ + ('setuptools', '17.1.1', { + 'source_urls': ['https://pypi.python.org/packages/source/s/setuptools/'], + }), + # required for paramiko + ('ecdsa', '0.11', { + 'source_urls': ['https://pypi.python.org/packages/source/e/ecdsa/'], + }), + # required for paramiko + ('pycrypto', '2.6.1', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pycrypto/'], + 'modulename': 'Crypto', + }), + ('paramiko', '1.13.0', { + 'source_urls': ['https://pypi.python.org/packages/source/p/paramiko/'], + }), + ('PrettyTable', '0.7.2', { + 'source_urls': ['https://pypi.python.org/packages/source/P/PrettyTable/'], + 'source_tmpl': 'prettytable-%(version)s.tar.gz', + }), + ('pyCLI', '2.0.3', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pyCLI/'], + 'modulename': 'cli', + }), + ('SQLAlchemy', '0.7.9', { + 'source_urls': ['https://pypi.python.org/packages/source/S/SQLAlchemy/'], + }), + ('parsedatetime', '0.8.7', { + 'source_urls': ['https://pypi.python.org/packages/source/p/parsedatetime/'], + }), + ('boto', '2.9.4', { + 'source_urls': ['https://pypi.python.org/packages/source/b/boto/'], + }), + # required for pbr + ('pip', '7.0.3', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pip/'], + }), + # required for python-novaclient + ('pbr', '0.11.0', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pbr/'], + }), + # required for python-novaclient + ('Babel', '1.3', { + 'source_urls': ['https://pypi.python.org/packages/source/B/Babel/'], + }), + # required for python-novaclient + ('simplejson', '3.7.3', { + 'source_urls': ['https://pypi.python.org/packages/source/s/simplejson/'], + }), + # required for python-novaclient + ('requests', '2.4.2', { + 'source_urls': ['https://pypi.python.org/packages/source/r/requests/'], + }), + # required for python-novaclient + ('iso8601', '0.1.10', { + 'source_urls': ['https://pypi.python.org/packages/source/i/iso8601/'], + }), + # required for python-novaclient + ('argparse', '1.3.0', { + 'source_urls': ['https://pypi.python.org/packages/source/a/argparse/'], + }), + # required for python-novaclient + ('six', '1.9.0', { + 'source_urls': ['https://pypi.python.org/packages/source/s/six/'], + }), + ('python-novaclient', '2.15.0', { + 'source_urls': ['https://pypi.python.org/packages/source/p/python-novaclient/'], + 'modulename': 'novaclient', + }), + (name.lower(), version, { + 'source_urls': ['https://pypi.python.org/packages/source/g/gc3pie/'], + 'modulename': 'gc3libs', + }), +] + +pyshortver = '.'.join(SYS_PYTHON_VERSION.split('.')[:2]) + +# on RHEL-based systems, some extensions get installed to lib, some to lib64 +modextrapaths = {'PYTHONPATH': ['lib/python%s/site-packages' % pyshortver, 'lib64/python%s/site-packages' % pyshortver]} + +# specify that Bundle easyblock should run a full sanity check, rather than just trying to load the module +full_sanity_check = True + +sanity_check_paths = { + 'files': ['bin/gc3utils'], + 'dirs': ['lib/python%(pyver)s/site-packages/gc3pie-%%(version)s-py%(pyver)s.egg/gc3libs' % {'pyver': pyshortver}], +} + +sanity_check_commands = [('gc3utils', 'info --version')] + +moduleclass = 'tools' diff --git a/g/GC3Pie/GC3Pie-2.3.eb b/g/GC3Pie/GC3Pie-2.3.eb new file mode 100644 index 00000000..84677a51 --- /dev/null +++ b/g/GC3Pie/GC3Pie-2.3.eb @@ -0,0 +1,110 @@ +easyblock = 'Bundle' + +name = 'GC3Pie' +version = '2.3' + +homepage = 'https://gc3pie.readthedocs.org' +description = """GC3Pie is a Python package for running large job campaigns on diverse batch-oriented execution + environments.""" + +toolchain = {'name': 'dummy', 'version': 'dummy'} + +# this is a bundle of Python packages +exts_defaultclass = 'PythonPackage' + +# allow use of system Python +allow_system_deps = [('Python', SYS_PYTHON_VERSION)] + +exts_list = [ + ('setuptools', '18.0.1', { + 'source_urls': ['https://pypi.python.org/packages/source/s/setuptools/'], + }), + # required for paramiko + ('ecdsa', '0.13', { + 'source_urls': ['https://pypi.python.org/packages/source/e/ecdsa/'], + }), + # required for paramiko + ('pycrypto', '2.6.1', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pycrypto/'], + 'modulename': 'Crypto', + }), + ('paramiko', '1.15.2', { + 'source_urls': ['https://pypi.python.org/packages/source/p/paramiko/'], + }), + ('PrettyTable', '0.7.2', { + 'source_urls': ['https://pypi.python.org/packages/source/P/PrettyTable/'], + 'source_tmpl': 'prettytable-%(version)s.tar.gz', + }), + ('pyCLI', 'devel', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pyCLI/'], + 'modulename': 'cli', + }), + ('SQLAlchemy', '1.0.6', { + 'source_urls': ['https://pypi.python.org/packages/source/S/SQLAlchemy/'], + }), + ('parsedatetime', '1.5', { + 'source_urls': ['https://pypi.python.org/packages/source/p/parsedatetime/'], + }), + ('boto', '2.38.0', { + 'source_urls': ['https://pypi.python.org/packages/source/b/boto/'], + }), + # required for pbr + ('pip', '7.0.3', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pip/'], + }), + # required for python-novaclient + ('pbr', '1.2.0', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pbr/'], + }), + # required for python-novaclient + ('Babel', '1.3', { + 'source_urls': ['https://pypi.python.org/packages/source/B/Babel/'], + }), + # required for python-novaclient + ('simplejson', '3.7.3', { + 'source_urls': ['https://pypi.python.org/packages/source/s/simplejson/'], + }), + # required for python-novaclient + ('requests', '2.7.0', { + 'source_urls': ['https://pypi.python.org/packages/source/r/requests/'], + }), + # required for python-novaclient + ('iso8601', '0.1.10', { + 'source_urls': ['https://pypi.python.org/packages/source/i/iso8601/'], + }), + # required for python-novaclient + ('argparse', '1.3.0', { + 'source_urls': ['https://pypi.python.org/packages/source/a/argparse/'], + }), + # required for python-novaclient + ('six', '1.9.0', { + 'source_urls': ['https://pypi.python.org/packages/source/s/six/'], + }), + ('python-novaclient', '2.26.0', { + 'source_urls': ['https://pypi.python.org/packages/source/p/python-novaclient/'], + 'modulename': 'novaclient', + }), + (name.lower(), version, { + 'source_urls': ['https://pypi.python.org/packages/source/g/gc3pie/'], + 'modulename': 'gc3libs', + }), +] + +pyver = '.'.join(SYS_PYTHON_VERSION.split('.')[:2]) + +# on RHEL-based systems, some extensions get installed to lib, some to lib64 +modextrapaths = {'PYTHONPATH': ['lib/python%s/site-packages' % pyver, 'lib64/python%s/site-packages' % pyver]} + +# specify that Bundle easyblock should run a full sanity check, rather than just trying to load the module +full_sanity_check = True + +eggname = 'gc3pie-%%(version)s-py%s.egg' % pyver +sanity_check_paths = { + 'files': ['bin/gc3utils', + ('lib/python%s/site-packages/%s' % (pyver, eggname), 'lib64/python%s/site-packages/%s' % (pyver, eggname))], + 'dirs': [], +} + +sanity_check_commands = [('gc3utils', 'info --version')] + +moduleclass = 'tools' diff --git a/g/GC3Pie/GC3Pie-2.4.0.eb b/g/GC3Pie/GC3Pie-2.4.0.eb new file mode 100644 index 00000000..55217f87 --- /dev/null +++ b/g/GC3Pie/GC3Pie-2.4.0.eb @@ -0,0 +1,110 @@ +easyblock = 'Bundle' + +name = 'GC3Pie' +version = '2.4.0' + +homepage = 'https://gc3pie.readthedocs.org' +description = """GC3Pie is a Python package for running large job campaigns on diverse batch-oriented execution + environments.""" + +toolchain = {'name': 'dummy', 'version': 'dummy'} + +# this is a bundle of Python packages +exts_defaultclass = 'PythonPackage' + +# allow use of system Python +allow_system_deps = [('Python', SYS_PYTHON_VERSION)] + +exts_list = [ + ('setuptools', '18.0.1', { + 'source_urls': ['https://pypi.python.org/packages/source/s/setuptools/'], + }), + # required for paramiko + ('ecdsa', '0.13', { + 'source_urls': ['https://pypi.python.org/packages/source/e/ecdsa/'], + }), + # required for paramiko + ('pycrypto', '2.6.1', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pycrypto/'], + 'modulename': 'Crypto', + }), + ('paramiko', '1.15.2', { + 'source_urls': ['https://pypi.python.org/packages/source/p/paramiko/'], + }), + ('PrettyTable', '0.7.2', { + 'source_urls': ['https://pypi.python.org/packages/source/P/PrettyTable/'], + 'source_tmpl': 'prettytable-%(version)s.tar.gz', + }), + ('pyCLI', 'devel', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pyCLI/'], + 'modulename': 'cli', + }), + ('SQLAlchemy', '1.0.6', { + 'source_urls': ['https://pypi.python.org/packages/source/S/SQLAlchemy/'], + }), + ('parsedatetime', '1.5', { + 'source_urls': ['https://pypi.python.org/packages/source/p/parsedatetime/'], + }), + ('boto', '2.38.0', { + 'source_urls': ['https://pypi.python.org/packages/source/b/boto/'], + }), + # required for pbr + ('pip', '7.1.0', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pip/'], + }), + # required for python-novaclient + ('pbr', '1.2.0', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pbr/'], + }), + # required for python-novaclient + ('Babel', '1.3', { + 'source_urls': ['https://pypi.python.org/packages/source/B/Babel/'], + }), + # required for python-novaclient + ('simplejson', '3.7.3', { + 'source_urls': ['https://pypi.python.org/packages/source/s/simplejson/'], + }), + # required for python-novaclient + ('requests', '2.7.0', { + 'source_urls': ['https://pypi.python.org/packages/source/r/requests/'], + }), + # required for python-novaclient + ('iso8601', '0.1.10', { + 'source_urls': ['https://pypi.python.org/packages/source/i/iso8601/'], + }), + # required for python-novaclient + ('argparse', '1.3.0', { + 'source_urls': ['https://pypi.python.org/packages/source/a/argparse/'], + }), + # required for python-novaclient + ('six', '1.9.0', { + 'source_urls': ['https://pypi.python.org/packages/source/s/six/'], + }), + ('python-novaclient', '2.26.0', { + 'source_urls': ['https://pypi.python.org/packages/source/p/python-novaclient/'], + 'modulename': 'novaclient', + }), + (name.lower(), version, { + 'source_urls': ['https://pypi.python.org/packages/source/g/gc3pie/'], + 'modulename': 'gc3libs', + }), +] + +pyver = '.'.join(SYS_PYTHON_VERSION.split('.')[:2]) + +# on RHEL-based systems, some extensions get installed to lib, some to lib64 +modextrapaths = {'PYTHONPATH': ['lib/python%s/site-packages' % pyver, 'lib64/python%s/site-packages' % pyver]} + +# specify that Bundle easyblock should run a full sanity check, rather than just trying to load the module +full_sanity_check = True + +eggname = 'gc3pie-%%(version)s-py%s.egg' % pyver +sanity_check_paths = { + 'files': ['bin/gc3utils', + ('lib/python%s/site-packages/%s' % (pyver, eggname), 'lib64/python%s/site-packages/%s' % (pyver, eggname))], + 'dirs': [], +} + +sanity_check_commands = [('gc3utils', 'info --version')] + +moduleclass = 'tools' diff --git a/g/GC3Pie/GC3Pie-2.4.1.eb b/g/GC3Pie/GC3Pie-2.4.1.eb new file mode 100644 index 00000000..dbc732d1 --- /dev/null +++ b/g/GC3Pie/GC3Pie-2.4.1.eb @@ -0,0 +1,110 @@ +easyblock = 'Bundle' + +name = 'GC3Pie' +version = '2.4.1' + +homepage = 'https://gc3pie.readthedocs.org' +description = """GC3Pie is a Python package for running large job campaigns on diverse batch-oriented execution + environments.""" + +toolchain = {'name': 'dummy', 'version': 'dummy'} + +# this is a bundle of Python packages +exts_defaultclass = 'PythonPackage' + +# allow use of system Python +allow_system_deps = [('Python', SYS_PYTHON_VERSION)] + +exts_list = [ + ('setuptools', '18.1', { + 'source_urls': ['https://pypi.python.org/packages/source/s/setuptools/'], + }), + # required for paramiko + ('ecdsa', '0.13', { + 'source_urls': ['https://pypi.python.org/packages/source/e/ecdsa/'], + }), + # required for paramiko + ('pycrypto', '2.6.1', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pycrypto/'], + 'modulename': 'Crypto', + }), + ('paramiko', '1.15.2', { + 'source_urls': ['https://pypi.python.org/packages/source/p/paramiko/'], + }), + ('PrettyTable', '0.7.2', { + 'source_urls': ['https://pypi.python.org/packages/source/P/PrettyTable/'], + 'source_tmpl': 'prettytable-%(version)s.tar.gz', + }), + ('pyCLI', 'devel', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pyCLI/'], + 'modulename': 'cli', + }), + ('SQLAlchemy', '1.0.8', { + 'source_urls': ['https://pypi.python.org/packages/source/S/SQLAlchemy/'], + }), + ('parsedatetime', '1.5', { + 'source_urls': ['https://pypi.python.org/packages/source/p/parsedatetime/'], + }), + ('boto', '2.38.0', { + 'source_urls': ['https://pypi.python.org/packages/source/b/boto/'], + }), + # required for pbr + ('pip', '7.1.0', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pip/'], + }), + # required for python-novaclient + ('pbr', '1.4.0', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pbr/'], + }), + # required for python-novaclient + ('Babel', '2.0', { + 'source_urls': ['https://pypi.python.org/packages/source/B/Babel/'], + }), + # required for python-novaclient + ('simplejson', '3.8.0', { + 'source_urls': ['https://pypi.python.org/packages/source/s/simplejson/'], + }), + # required for python-novaclient + ('requests', '2.7.0', { + 'source_urls': ['https://pypi.python.org/packages/source/r/requests/'], + }), + # required for python-novaclient + ('iso8601', '0.1.10', { + 'source_urls': ['https://pypi.python.org/packages/source/i/iso8601/'], + }), + # required for python-novaclient + ('argparse', '1.3.0', { + 'source_urls': ['https://pypi.python.org/packages/source/a/argparse/'], + }), + # required for python-novaclient + ('six', '1.9.0', { + 'source_urls': ['https://pypi.python.org/packages/source/s/six/'], + }), + ('python-novaclient', '2.23.1', { + 'source_urls': ['https://pypi.python.org/packages/source/p/python-novaclient/'], + 'modulename': 'novaclient', + }), + (name.lower(), version, { + 'source_urls': ['https://pypi.python.org/packages/source/g/gc3pie/'], + 'modulename': 'gc3libs', + }), +] + +pyver = '.'.join(SYS_PYTHON_VERSION.split('.')[:2]) + +# on RHEL-based systems, some extensions get installed to lib, some to lib64 +modextrapaths = {'PYTHONPATH': ['lib/python%s/site-packages' % pyver, 'lib64/python%s/site-packages' % pyver]} + +# specify that Bundle easyblock should run a full sanity check, rather than just trying to load the module +full_sanity_check = True + +eggname = 'gc3pie-%%(version)s-py%s.egg' % pyver +sanity_check_paths = { + 'files': ['bin/gc3utils', + ('lib/python%s/site-packages/%s' % (pyver, eggname), 'lib64/python%s/site-packages/%s' % (pyver, eggname))], + 'dirs': [], +} + +sanity_check_commands = [('gc3utils', 'info --version')] + +moduleclass = 'tools' diff --git a/g/GC3Pie/GC3Pie-2.4.2.eb b/g/GC3Pie/GC3Pie-2.4.2.eb new file mode 100644 index 00000000..0e7690c9 --- /dev/null +++ b/g/GC3Pie/GC3Pie-2.4.2.eb @@ -0,0 +1,110 @@ +easyblock = 'Bundle' + +name = 'GC3Pie' +version = '2.4.2' + +homepage = 'https://gc3pie.readthedocs.org' +description = """GC3Pie is a Python package for running large job campaigns on diverse batch-oriented execution + environments.""" + +toolchain = {'name': 'dummy', 'version': 'dummy'} + +# this is a bundle of Python packages +exts_defaultclass = 'PythonPackage' + +# allow use of system Python +allow_system_deps = [('Python', SYS_PYTHON_VERSION)] + +exts_list = [ + ('setuptools', '18.1', { + 'source_urls': ['https://pypi.python.org/packages/source/s/setuptools/'], + }), + # required for paramiko + ('ecdsa', '0.13', { + 'source_urls': ['https://pypi.python.org/packages/source/e/ecdsa/'], + }), + # required for paramiko + ('pycrypto', '2.6.1', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pycrypto/'], + 'modulename': 'Crypto', + }), + ('paramiko', '1.15.2', { + 'source_urls': ['https://pypi.python.org/packages/source/p/paramiko/'], + }), + ('PrettyTable', '0.7.2', { + 'source_urls': ['https://pypi.python.org/packages/source/P/PrettyTable/'], + 'source_tmpl': 'prettytable-%(version)s.tar.gz', + }), + ('pyCLI', 'devel', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pyCLI/'], + 'modulename': 'cli', + }), + ('SQLAlchemy', '1.0.8', { + 'source_urls': ['https://pypi.python.org/packages/source/S/SQLAlchemy/'], + }), + ('parsedatetime', '1.5', { + 'source_urls': ['https://pypi.python.org/packages/source/p/parsedatetime/'], + }), + ('boto', '2.38.0', { + 'source_urls': ['https://pypi.python.org/packages/source/b/boto/'], + }), + # required for pbr + ('pip', '7.1.0', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pip/'], + }), + # required for python-novaclient + ('pbr', '1.4.0', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pbr/'], + }), + # required for python-novaclient + ('Babel', '2.0', { + 'source_urls': ['https://pypi.python.org/packages/source/B/Babel/'], + }), + # required for python-novaclient + ('simplejson', '3.8.0', { + 'source_urls': ['https://pypi.python.org/packages/source/s/simplejson/'], + }), + # required for python-novaclient + ('requests', '2.7.0', { + 'source_urls': ['https://pypi.python.org/packages/source/r/requests/'], + }), + # required for python-novaclient + ('iso8601', '0.1.10', { + 'source_urls': ['https://pypi.python.org/packages/source/i/iso8601/'], + }), + # required for python-novaclient + ('argparse', '1.3.0', { + 'source_urls': ['https://pypi.python.org/packages/source/a/argparse/'], + }), + # required for python-novaclient + ('six', '1.9.0', { + 'source_urls': ['https://pypi.python.org/packages/source/s/six/'], + }), + ('python-novaclient', '2.23.1', { + 'source_urls': ['https://pypi.python.org/packages/source/p/python-novaclient/'], + 'modulename': 'novaclient', + }), + (name.lower(), version, { + 'source_urls': ['https://pypi.python.org/packages/source/g/gc3pie/'], + 'modulename': 'gc3libs', + }), +] + +pyver = '.'.join(SYS_PYTHON_VERSION.split('.')[:2]) + +# on RHEL-based systems, some extensions get installed to lib, some to lib64 +modextrapaths = {'PYTHONPATH': ['lib/python%s/site-packages' % pyver, 'lib64/python%s/site-packages' % pyver]} + +# specify that Bundle easyblock should run a full sanity check, rather than just trying to load the module +full_sanity_check = True + +eggname = 'gc3pie-%%(version)s-py%s.egg' % pyver +sanity_check_paths = { + 'files': ['bin/gc3utils', + ('lib/python%s/site-packages/%s' % (pyver, eggname), 'lib64/python%s/site-packages/%s' % (pyver, eggname))], + 'dirs': [], +} + +sanity_check_commands = [('gc3utils', 'info --version')] + +moduleclass = 'tools' diff --git a/g/GCC/GCC-4.4.7-system.eb b/g/GCC/GCC-4.4.7-system.eb new file mode 100644 index 00000000..82f16f9d --- /dev/null +++ b/g/GCC/GCC-4.4.7-system.eb @@ -0,0 +1,22 @@ +name = "GCC" +version = '4.4.7' +versionsuffix = "-system" + +homepage = 'http://gcc.gnu.org/' +description = """The GNU Compiler Collection includes front ends for C, C++, Objective-C, Fortran, + Java, and Ada, as well as libraries for these languages (libstdc++, libgcj,...).""" + +toolchain = {'name': 'dummy', 'version': ''} # empty version to ensure that dependencies are loaded + +osdependencies = ['gcc'] + +languages = ['c', 'c++', 'fortran'] + +skipsteps = ['source', 'patch', 'prepare','configure', 'build', 'test','install'] + +sanity_check_paths = { + 'files': ['/usr/bin/gcc'], + 'dirs': ['/usr/share/doc/gcc-4.4.7'] +} + +moduleclass = 'compiler' diff --git a/g/GCC/GCC-4.8.1-CLooG.eb b/g/GCC/GCC-4.8.1-CLooG.eb new file mode 100644 index 00000000..97ecab72 --- /dev/null +++ b/g/GCC/GCC-4.8.1-CLooG.eb @@ -0,0 +1,47 @@ +name = "GCC" +version = '4.8.1' +versionsuffix = "-CLooG" + +homepage = 'http://gcc.gnu.org/' +description = """The GNU Compiler Collection includes front ends for C, C++, Objective-C, Fortran, Java, and Ada, + as well as libraries for these languages (libstdc++, libgcj,...).""" + +toolchain = {'name': 'dummy', 'version': 'dummy'} + +source_urls = [ + 'http://ftpmirror.gnu.org/%(namelower)s/%(namelower)s-%(version)s', # GCC auto-resolving HTTP mirror + 'http://ftpmirror.gnu.org/gmp', # idem for GMP + 'http://ftpmirror.gnu.org/mpfr', # idem for MPFR + 'http://www.multiprecision.org/mpc/download', # MPC official + 'http://www.bastoul.net/cloog/pages/download/', # CLooG official + 'ftp://gcc.gnu.org/pub/gcc/infrastructure/', # GCC dependencies + 'http://gcc.cybermirror.org/infrastructure/', # HTTP mirror for GCC dependencies +] +sources = [ + SOURCELOWER_TAR_GZ, + 'gmp-5.1.2.tar.bz2', + 'mpfr-3.1.2.tar.gz', + 'mpc-1.0.1.tar.gz', + 'cloog-0.18.0.tar.gz', + 'isl-0.11.1.tar.bz2', +] + +checksums = [ + '74cc12b7afe051ab7d0e00269e49fc9b', # gcc-4.8.1.tar.gz + '7e3516128487956cd825fef01aafe4bc', # gmp-5.1.2.tar.bz2 + '181aa7bb0e452c409f2788a4a7f38476', # mpfr-3.1.2.tar.gz + 'b32a2e1a3daa392372fbd586d1ed3679', # mpc-1.0.1.tar.gz + 'be78a47bd82523250eb3e91646db5b3d', # cloog-0.18.0.tar.gz + 'bce1586384d8635a76d2f017fb067cd2', # isl-0.11.1.tar.bz2 +] + +languages = ['c', 'c++', 'fortran'] + +withcloog = True +withisl = True +clooguseisl = True + +# building GCC sometimes fails if make parallelism is too high, so let's limit it +maxparallel = 4 + +moduleclass = 'compiler' diff --git a/g/GCC/GCC-4.8.1.eb b/g/GCC/GCC-4.8.1.eb new file mode 100644 index 00000000..18a5c26a --- /dev/null +++ b/g/GCC/GCC-4.8.1.eb @@ -0,0 +1,35 @@ +name = "GCC" +version = '4.8.1' + +homepage = 'http://gcc.gnu.org/' +description = """The GNU Compiler Collection includes front ends for C, C++, Objective-C, Fortran, Java, and Ada, + as well as libraries for these languages (libstdc++, libgcj,...).""" + +toolchain = {'name': 'dummy', 'version': 'dummy'} + +source_urls = [ + 'http://ftpmirror.gnu.org/%(namelower)s/%(namelower)s-%(version)s', # GCC auto-resolving HTTP mirror + 'http://ftpmirror.gnu.org/gmp', # idem for GMP + 'http://ftpmirror.gnu.org/mpfr', # idem for MPFR + 'http://www.multiprecision.org/mpc/download', # MPC official +] +sources = [ + SOURCELOWER_TAR_GZ, + 'gmp-5.1.2.tar.bz2', + 'mpfr-3.1.2.tar.gz', + 'mpc-1.0.1.tar.gz', +] + +checksums = [ + '74cc12b7afe051ab7d0e00269e49fc9b', # gcc-4.8.1.tar.gz + '7e3516128487956cd825fef01aafe4bc', # gmp-5.1.2.tar.bz2 + '181aa7bb0e452c409f2788a4a7f38476', # mpfr-3.1.2.tar.gz + 'b32a2e1a3daa392372fbd586d1ed3679', # mpc-1.0.1.tar.gz +] + +languages = ['c', 'c++', 'fortran'] + +# building GCC sometimes fails if make parallelism is too high, so let's limit it +maxparallel = 4 + +moduleclass = 'compiler' diff --git a/g/GCC/GCC-4.8.2-CLooG-multilib.eb b/g/GCC/GCC-4.8.2-CLooG-multilib.eb new file mode 100644 index 00000000..0cc4d2d8 --- /dev/null +++ b/g/GCC/GCC-4.8.2-CLooG-multilib.eb @@ -0,0 +1,49 @@ +name = "GCC" +version = '4.8.2' +versionsuffix = "-CLooG-multilib" + +homepage = 'http://gcc.gnu.org/' +description = """The GNU Compiler Collection includes front ends for C, C++, Objective-C, Fortran, Java, and Ada, + as well as libraries for these languages (libstdc++, libgcj,...).""" + +toolchain = {'name': 'dummy', 'version': 'dummy'} + +source_urls = [ + 'http://ftpmirror.gnu.org/%(namelower)s/%(namelower)s-%(version)s', # GCC auto-resolving HTTP mirror + 'http://ftpmirror.gnu.org/gmp', # idem for GMP + 'http://ftpmirror.gnu.org/mpfr', # idem for MPFR + 'http://www.multiprecision.org/mpc/download', # MPC official + 'http://www.bastoul.net/cloog/pages/download/', # CLooG official + 'ftp://gcc.gnu.org/pub/gcc/infrastructure/', # GCC dependencies + 'http://gcc.cybermirror.org/infrastructure/', # HTTP mirror for GCC dependencies +] +sources = [ + SOURCELOWER_TAR_GZ, + 'gmp-5.1.3.tar.bz2', + 'mpfr-3.1.2.tar.gz', + 'mpc-1.0.1.tar.gz', + 'cloog-0.18.0.tar.gz', + 'isl-0.11.1.tar.bz2', +] + +checksums = [ + 'deca88241c1135e2ff9fa5486ab5957b', # gcc-4.8.2.tar.gz + 'a082867cbca5e898371a97bb27b31fea', # gmp-5.1.3.tar.bz2 + '181aa7bb0e452c409f2788a4a7f38476', # mpfr-3.1.2.tar.gz + 'b32a2e1a3daa392372fbd586d1ed3679', # mpc-1.0.1.tar.gz + 'be78a47bd82523250eb3e91646db5b3d', # cloog-0.18.0.tar.gz + 'bce1586384d8635a76d2f017fb067cd2', # isl-0.11.1.tar.bz2 +] + +languages = ['c', 'c++', 'fortran'] + +withcloog = True +withisl = True +clooguseisl = True + +multilib = True + +# building GCC sometimes fails if make parallelism is too high, so let's limit it +maxparallel = 4 + +moduleclass = 'compiler' diff --git a/g/GCC/GCC-4.8.2-CLooG.eb b/g/GCC/GCC-4.8.2-CLooG.eb new file mode 100644 index 00000000..76ee0868 --- /dev/null +++ b/g/GCC/GCC-4.8.2-CLooG.eb @@ -0,0 +1,47 @@ +name = "GCC" +version = '4.8.2' +versionsuffix = "-CLooG" + +homepage = 'http://gcc.gnu.org/' +description = """The GNU Compiler Collection includes front ends for C, C++, Objective-C, Fortran, Java, and Ada, + as well as libraries for these languages (libstdc++, libgcj,...).""" + +toolchain = {'name': 'dummy', 'version': 'dummy'} + +source_urls = [ + 'http://ftpmirror.gnu.org/%(namelower)s/%(namelower)s-%(version)s', # GCC auto-resolving HTTP mirror + 'http://ftpmirror.gnu.org/gmp', # idem for GMP + 'http://ftpmirror.gnu.org/mpfr', # idem for MPFR + 'http://www.multiprecision.org/mpc/download', # MPC official + 'http://www.bastoul.net/cloog/pages/download/', # CLooG official + 'ftp://gcc.gnu.org/pub/gcc/infrastructure/', # GCC dependencies + 'http://gcc.cybermirror.org/infrastructure/', # HTTP mirror for GCC dependencies +] +sources = [ + SOURCELOWER_TAR_GZ, + 'gmp-5.1.3.tar.bz2', + 'mpfr-3.1.2.tar.gz', + 'mpc-1.0.1.tar.gz', + 'cloog-0.18.0.tar.gz', + 'isl-0.11.1.tar.bz2', +] + +checksums = [ + 'deca88241c1135e2ff9fa5486ab5957b', # gcc-4.8.2.tar.gz + 'a082867cbca5e898371a97bb27b31fea', # gmp-5.1.3.tar.bz2 + '181aa7bb0e452c409f2788a4a7f38476', # mpfr-3.1.2.tar.gz + 'b32a2e1a3daa392372fbd586d1ed3679', # mpc-1.0.1.tar.gz + 'be78a47bd82523250eb3e91646db5b3d', # cloog-0.18.0.tar.gz + 'bce1586384d8635a76d2f017fb067cd2', # isl-0.11.1.tar.bz2 +] + +languages = ['c', 'c++', 'fortran'] + +withcloog = True +withisl = True +clooguseisl = True + +# building GCC sometimes fails if make parallelism is too high, so let's limit it +maxparallel = 4 + +moduleclass = 'compiler' diff --git a/g/GCC/GCC-4.8.2-multilib.eb b/g/GCC/GCC-4.8.2-multilib.eb new file mode 100644 index 00000000..45168e25 --- /dev/null +++ b/g/GCC/GCC-4.8.2-multilib.eb @@ -0,0 +1,38 @@ +name = "GCC" +version = '4.8.2' +versionsuffix = '-multilib' + +homepage = 'http://gcc.gnu.org/' +description = """The GNU Compiler Collection includes front ends for C, C++, Objective-C, Fortran, Java, and Ada, + as well as libraries for these languages (libstdc++, libgcj,...).""" + +toolchain = {'name': 'dummy', 'version': 'dummy'} + +source_urls = [ + 'http://ftpmirror.gnu.org/%(namelower)s/%(namelower)s-%(version)s', # GCC auto-resolving HTTP mirror + 'http://ftpmirror.gnu.org/gmp', # idem for GMP + 'http://ftpmirror.gnu.org/mpfr', # idem for MPFR + 'http://www.multiprecision.org/mpc/download', # MPC official +] +sources = [ + SOURCELOWER_TAR_GZ, + 'gmp-5.1.3.tar.bz2', + 'mpfr-3.1.2.tar.gz', + 'mpc-1.0.1.tar.gz', +] + +checksums = [ + 'deca88241c1135e2ff9fa5486ab5957b', # gcc-4.8.2.tar.gz + 'a082867cbca5e898371a97bb27b31fea', # gmp-5.1.3.tar.bz2 + '181aa7bb0e452c409f2788a4a7f38476', # mpfr-3.1.2.tar.gz + 'b32a2e1a3daa392372fbd586d1ed3679', # mpc-1.0.1.tar.gz +] + +languages = ['c', 'c++', 'fortran'] + +multilib = True + +# building GCC sometimes fails if make parallelism is too high, so let's limit it +maxparallel = 4 + +moduleclass = 'compiler' diff --git a/g/GCC/GCC-4.8.2.eb b/g/GCC/GCC-4.8.2.eb new file mode 100644 index 00000000..4f8e1b94 --- /dev/null +++ b/g/GCC/GCC-4.8.2.eb @@ -0,0 +1,35 @@ +name = "GCC" +version = '4.8.2' + +homepage = 'http://gcc.gnu.org/' +description = """The GNU Compiler Collection includes front ends for C, C++, Objective-C, Fortran, Java, and Ada, + as well as libraries for these languages (libstdc++, libgcj,...).""" + +toolchain = {'name': 'dummy', 'version': 'dummy'} + +source_urls = [ + 'http://ftpmirror.gnu.org/%(namelower)s/%(namelower)s-%(version)s', # GCC auto-resolving HTTP mirror + 'http://ftpmirror.gnu.org/gmp', # idem for GMP + 'http://ftpmirror.gnu.org/mpfr', # idem for MPFR + 'http://www.multiprecision.org/mpc/download', # MPC official +] +sources = [ + SOURCELOWER_TAR_GZ, + 'gmp-5.1.3.tar.bz2', + 'mpfr-3.1.2.tar.gz', + 'mpc-1.0.1.tar.gz', +] + +checksums = [ + 'deca88241c1135e2ff9fa5486ab5957b', # gcc-4.8.2.tar.gz + 'a082867cbca5e898371a97bb27b31fea', # gmp-5.1.3.tar.bz2 + '181aa7bb0e452c409f2788a4a7f38476', # mpfr-3.1.2.tar.gz + 'b32a2e1a3daa392372fbd586d1ed3679', # mpc-1.0.1.tar.gz +] + +languages = ['c', 'c++', 'fortran'] + +# building GCC sometimes fails if make parallelism is too high, so let's limit it +maxparallel = 4 + +moduleclass = 'compiler' diff --git a/g/GCC/GCC-4.8.3-CLooG-multilib.eb b/g/GCC/GCC-4.8.3-CLooG-multilib.eb new file mode 100644 index 00000000..8f71a86f --- /dev/null +++ b/g/GCC/GCC-4.8.3-CLooG-multilib.eb @@ -0,0 +1,49 @@ +name = "GCC" +version = '4.8.3' +versionsuffix = "-CLooG-multilib" + +homepage = 'http://gcc.gnu.org/' +description = """The GNU Compiler Collection includes front ends for C, C++, Objective-C, Fortran, Java, and Ada, + as well as libraries for these languages (libstdc++, libgcj,...).""" + +toolchain = {'name': 'dummy', 'version': 'dummy'} + +source_urls = [ + 'http://ftpmirror.gnu.org/%(namelower)s/%(namelower)s-%(version)s', # GCC auto-resolving HTTP mirror + 'http://ftpmirror.gnu.org/gmp', # idem for GMP + 'http://ftpmirror.gnu.org/mpfr', # idem for MPFR + 'http://www.multiprecision.org/mpc/download', # MPC official + 'http://www.bastoul.net/cloog/pages/download/', # CLooG official + 'ftp://gcc.gnu.org/pub/gcc/infrastructure/', # GCC dependencies + 'http://gcc.cybermirror.org/infrastructure/', # HTTP mirror for GCC dependencies +] +sources = [ + SOURCELOWER_TAR_GZ, + 'gmp-5.1.3.tar.bz2', + 'mpfr-3.1.2.tar.gz', + 'mpc-1.0.1.tar.gz', + 'cloog-0.18.0.tar.gz', + 'isl-0.11.1.tar.bz2', +] + +checksums = [ + 'e2c60f5ef918be2db08df96c7d97d0c4', # gcc-4.8.3.tar.gz + 'a082867cbca5e898371a97bb27b31fea', # gmp-5.1.3.tar.bz2 + '181aa7bb0e452c409f2788a4a7f38476', # mpfr-3.1.2.tar.gz + 'b32a2e1a3daa392372fbd586d1ed3679', # mpc-1.0.1.tar.gz + 'be78a47bd82523250eb3e91646db5b3d', # cloog-0.18.0.tar.gz + 'bce1586384d8635a76d2f017fb067cd2', # isl-0.11.1.tar.bz2 +] + +languages = ['c', 'c++', 'fortran'] + +withcloog = True +withisl = True +clooguseisl = True + +multilib = True + +# building GCC sometimes fails if make parallelism is too high, so let's limit it +maxparallel = 4 + +moduleclass = 'compiler' diff --git a/g/GCC/GCC-4.8.3.eb b/g/GCC/GCC-4.8.3.eb new file mode 100644 index 00000000..ab84d307 --- /dev/null +++ b/g/GCC/GCC-4.8.3.eb @@ -0,0 +1,47 @@ +name = "GCC" +version = '4.8.3' + +homepage = 'http://gcc.gnu.org/' +description = """The GNU Compiler Collection includes front ends for C, C++, Objective-C, Fortran, Java, and Ada, + as well as libraries for these languages (libstdc++, libgcj,...).""" + +toolchain = {'name': 'dummy', 'version': 'dummy'} + +source_urls = [ + 'http://ftpmirror.gnu.org/%(namelower)s/%(namelower)s-%(version)s', # GCC auto-resolving HTTP mirror + 'http://ftpmirror.gnu.org/gmp', # idem for GMP + 'http://ftpmirror.gnu.org/mpfr', # idem for MPFR + 'http://www.multiprecision.org/mpc/download', # MPC official +] +sources = [ + SOURCELOWER_TAR_GZ, + 'gmp-5.1.3.tar.bz2', + 'mpfr-3.1.2.tar.gz', + 'mpc-1.0.1.tar.gz', +] + +checksums = [ + 'e2c60f5ef918be2db08df96c7d97d0c4', # gcc-4.8.3.tar.gz + 'a082867cbca5e898371a97bb27b31fea', # gmp-5.1.3.tar.bz2 + '181aa7bb0e452c409f2788a4a7f38476', # mpfr-3.1.2.tar.gz + 'b32a2e1a3daa392372fbd586d1ed3679', # mpc-1.0.1.tar.gz +] + +languages = ['c', 'c++', 'fortran'] + +# building GCC sometimes fails if make parallelism is too high, so let's limit it +maxparallel = 4 + +moduleclass = 'compiler' + +opt = True + +# Salomon specific optimalization +modextravars = { + 'CC': '%(installdir)s/bin/gcc', + 'CXX': '%(installdir)s/bin/g++', + 'F90': '%(installdir)s/bin/gfortran', + 'F77': '%(installdir)s/bin/gfortran', + 'FC': '%(installdir)s/bin/gfortran', + 'F9X': '%(installdir)s/bin/gfortran', +} diff --git a/g/GCC/GCC-4.8.4-CLooG-multilib.eb b/g/GCC/GCC-4.8.4-CLooG-multilib.eb new file mode 100644 index 00000000..a553c070 --- /dev/null +++ b/g/GCC/GCC-4.8.4-CLooG-multilib.eb @@ -0,0 +1,49 @@ +name = "GCC" +version = '4.8.4' +versionsuffix = "-CLooG-multilib" + +homepage = 'http://gcc.gnu.org/' +description = """The GNU Compiler Collection includes front ends for C, C++, Objective-C, Fortran, Java, and Ada, + as well as libraries for these languages (libstdc++, libgcj,...).""" + +toolchain = {'name': 'dummy', 'version': 'dummy'} + +source_urls = [ + 'http://ftpmirror.gnu.org/%(namelower)s/%(namelower)s-%(version)s', # GCC auto-resolving HTTP mirror + 'http://ftpmirror.gnu.org/gmp', # idem for GMP + 'http://ftpmirror.gnu.org/mpfr', # idem for MPFR + 'http://www.multiprecision.org/mpc/download', # MPC official + 'http://www.bastoul.net/cloog/pages/download/', # CLooG official + 'ftp://gcc.gnu.org/pub/gcc/infrastructure/', # GCC dependencies + 'http://gcc.cybermirror.org/infrastructure/', # HTTP mirror for GCC dependencies +] +sources = [ + SOURCELOWER_TAR_GZ, + 'gmp-5.1.3.tar.bz2', + 'mpfr-3.1.2.tar.gz', + 'mpc-1.0.1.tar.gz', + 'cloog-0.18.0.tar.gz', + 'isl-0.11.1.tar.bz2', +] + +checksums = [ + '0c92ac45af5b280e301ca56b40fdaea2', # gcc-4.8.4.tar.gz + 'a082867cbca5e898371a97bb27b31fea', # gmp-5.1.3.tar.bz2 + '181aa7bb0e452c409f2788a4a7f38476', # mpfr-3.1.2.tar.gz + 'b32a2e1a3daa392372fbd586d1ed3679', # mpc-1.0.1.tar.gz + 'be78a47bd82523250eb3e91646db5b3d', # cloog-0.18.0.tar.gz + 'bce1586384d8635a76d2f017fb067cd2', # isl-0.11.1.tar.bz2 +] + +languages = ['c', 'c++', 'fortran'] + +withcloog = True +withisl = True +clooguseisl = True + +multilib = True + +# building GCC sometimes fails if make parallelism is too high, so let's limit it +maxparallel = 4 + +moduleclass = 'compiler' diff --git a/g/GCC/GCC-4.8.4-CLooG.eb b/g/GCC/GCC-4.8.4-CLooG.eb new file mode 100644 index 00000000..7dd0f5df --- /dev/null +++ b/g/GCC/GCC-4.8.4-CLooG.eb @@ -0,0 +1,47 @@ +name = "GCC" +version = '4.8.4' +versionsuffix = "-CLooG" + +homepage = 'http://gcc.gnu.org/' +description = """The GNU Compiler Collection includes front ends for C, C++, Objective-C, Fortran, Java, and Ada, + as well as libraries for these languages (libstdc++, libgcj,...).""" + +toolchain = {'name': 'dummy', 'version': 'dummy'} + +source_urls = [ + 'http://ftpmirror.gnu.org/%(namelower)s/%(namelower)s-%(version)s', # GCC auto-resolving HTTP mirror + 'http://ftpmirror.gnu.org/gmp', # idem for GMP + 'http://ftpmirror.gnu.org/mpfr', # idem for MPFR + 'http://www.multiprecision.org/mpc/download', # MPC official + 'http://www.bastoul.net/cloog/pages/download/', # CLooG official + 'ftp://gcc.gnu.org/pub/gcc/infrastructure/', # GCC dependencies + 'http://gcc.cybermirror.org/infrastructure/', # HTTP mirror for GCC dependencies +] +sources = [ + SOURCELOWER_TAR_GZ, + 'gmp-5.1.3.tar.bz2', + 'mpfr-3.1.2.tar.gz', + 'mpc-1.0.1.tar.gz', + 'cloog-0.18.0.tar.gz', + 'isl-0.11.1.tar.bz2', +] + +checksums = [ + '0c92ac45af5b280e301ca56b40fdaea2', # gcc-4.8.4.tar.gz + 'a082867cbca5e898371a97bb27b31fea', # gmp-5.1.3.tar.bz2 + '181aa7bb0e452c409f2788a4a7f38476', # mpfr-3.1.2.tar.gz + 'b32a2e1a3daa392372fbd586d1ed3679', # mpc-1.0.1.tar.gz + 'be78a47bd82523250eb3e91646db5b3d', # cloog-0.18.0.tar.gz + 'bce1586384d8635a76d2f017fb067cd2', # isl-0.11.1.tar.bz2 +] + +languages = ['c', 'c++', 'fortran'] + +withcloog = True +withisl = True +clooguseisl = True + +# building GCC sometimes fails if make parallelism is too high, so let's limit it +maxparallel = 4 + +moduleclass = 'compiler' diff --git a/g/GCC/GCC-4.8.4.eb b/g/GCC/GCC-4.8.4.eb new file mode 100644 index 00000000..5ac47478 --- /dev/null +++ b/g/GCC/GCC-4.8.4.eb @@ -0,0 +1,35 @@ +name = "GCC" +version = '4.8.4' + +homepage = 'http://gcc.gnu.org/' +description = """The GNU Compiler Collection includes front ends for C, C++, Objective-C, Fortran, Java, and Ada, + as well as libraries for these languages (libstdc++, libgcj,...).""" + +toolchain = {'name': 'dummy', 'version': 'dummy'} + +source_urls = [ + 'http://ftpmirror.gnu.org/%(namelower)s/%(namelower)s-%(version)s', # GCC auto-resolving HTTP mirror + 'http://ftpmirror.gnu.org/gmp', # idem for GMP + 'http://ftpmirror.gnu.org/mpfr', # idem for MPFR + 'http://www.multiprecision.org/mpc/download', # MPC official +] +sources = [ + SOURCELOWER_TAR_GZ, + 'gmp-5.1.3.tar.bz2', + 'mpfr-3.1.2.tar.gz', + 'mpc-1.0.1.tar.gz', +] + +checksums = [ + '0c92ac45af5b280e301ca56b40fdaea2', # gcc-4.8.4.tar.gz + 'a082867cbca5e898371a97bb27b31fea', # gmp-5.1.3.tar.bz2 + '181aa7bb0e452c409f2788a4a7f38476', # mpfr-3.1.2.tar.gz + 'b32a2e1a3daa392372fbd586d1ed3679', # mpc-1.0.1.tar.gz +] + +languages = ['c', 'c++', 'fortran'] + +# building GCC sometimes fails if make parallelism is too high, so let's limit it +maxparallel = 4 + +moduleclass = 'compiler' diff --git a/g/GCC/GCC-4.8.5.eb b/g/GCC/GCC-4.8.5.eb new file mode 100644 index 00000000..86186615 --- /dev/null +++ b/g/GCC/GCC-4.8.5.eb @@ -0,0 +1,35 @@ +name = "GCC" +version = '4.8.5' + +homepage = 'http://gcc.gnu.org/' +description = """The GNU Compiler Collection includes front ends for C, C++, Objective-C, Fortran, Java, and Ada, + as well as libraries for these languages (libstdc++, libgcj,...).""" + +toolchain = {'name': 'dummy', 'version': 'dummy'} + +source_urls = [ + 'http://ftpmirror.gnu.org/%(namelower)s/%(namelower)s-%(version)s', # GCC auto-resolving HTTP mirror + 'http://ftpmirror.gnu.org/gmp', # idem for GMP + 'http://ftpmirror.gnu.org/mpfr', # idem for MPFR + 'http://www.multiprecision.org/mpc/download', # MPC official +] +sources = [ + SOURCELOWER_TAR_GZ, + 'gmp-5.1.3.tar.bz2', + 'mpfr-3.1.2.tar.gz', + 'mpc-1.0.1.tar.gz', +] + +checksums = [ + 'bfe56e74d31d25009c8fb55fd3ca7e01', # gcc-4.8.5.tar.gz + 'a082867cbca5e898371a97bb27b31fea', # gmp-5.1.3.tar.bz2 + '181aa7bb0e452c409f2788a4a7f38476', # mpfr-3.1.2.tar.gz + 'b32a2e1a3daa392372fbd586d1ed3679', # mpc-1.0.1.tar.gz +] + +languages = ['c', 'c++', 'fortran'] + +# building GCC sometimes fails if make parallelism is too high, so let's limit it +maxparallel = 4 + +moduleclass = 'compiler' diff --git a/g/GCC/GCC-4.9.0-CLooG-multilib.eb b/g/GCC/GCC-4.9.0-CLooG-multilib.eb new file mode 100644 index 00000000..f77a70ef --- /dev/null +++ b/g/GCC/GCC-4.9.0-CLooG-multilib.eb @@ -0,0 +1,54 @@ +name = "GCC" +version = '4.9.0' +versionsuffix = "-CLooG-multilib" + +homepage = 'http://gcc.gnu.org/' +description = """The GNU Compiler Collection includes front ends for C, C++, Objective-C, Fortran, Java, and Ada, + as well as libraries for these languages (libstdc++, libgcj,...).""" + +toolchain = {'name': 'dummy', 'version': 'dummy'} + +mpfr_version = '3.1.2' + +source_urls = [ + 'http://ftpmirror.gnu.org/%(namelower)s/%(namelower)s-%(version)s', # GCC auto-resolving HTTP mirror + 'http://ftpmirror.gnu.org/gmp', # idem for GMP + 'http://ftpmirror.gnu.org/mpfr', # idem for MPFR + 'http://www.multiprecision.org/mpc/download', # MPC official + 'http://www.bastoul.net/cloog/pages/download/', # CLooG official + 'ftp://gcc.gnu.org/pub/gcc/infrastructure/', # GCC dependencies + 'http://gcc.cybermirror.org/infrastructure/', # HTTP mirror for GCC dependencies +] +sources = [ + SOURCELOWER_TAR_BZ2, + 'gmp-6.0.0a.tar.bz2', + 'mpfr-%s.tar.gz' % mpfr_version, + 'mpc-1.0.2.tar.gz', + 'cloog-0.18.1.tar.gz', + 'isl-0.12.2.tar.bz2', +] + +patches = [('mpfr-%s-allpatches-20140630.patch' % mpfr_version, '../mpfr-%s' % mpfr_version)] + +checksums = [ + '9709b49ae0e904cbb0a6a1b62853b556', # gcc-4.9.0.tar.bz2 + 'b7ff2d88cae7f8085bd5006096eed470', # gmp-6.0.0a.tar.bz2 + '181aa7bb0e452c409f2788a4a7f38476', # mpfr-3.1.2.tar.gz + '68fadff3358fb3e7976c7a398a0af4c3', # mpc-1.0.2.tar.gz + 'e34fca0540d840e5d0f6427e98c92252', # cloog-0.18.1.tar.gz + 'e039bfcfb6c2ab039b8ee69bf883e824', # isl-0.12.2.tar.bz2 + '21958aaf3d242e51b2f45cefcb9560d9', # mpfr-3.1.2-allpatches-20140630.patch +] + +languages = ['c', 'c++', 'fortran'] + +withcloog = True +withisl = True +clooguseisl = True + +multilib = True + +# building GCC sometimes fails if make parallelism is too high, so let's limit it +maxparallel = 4 + +moduleclass = 'compiler' diff --git a/g/GCC/GCC-4.9.0-CLooG.eb b/g/GCC/GCC-4.9.0-CLooG.eb new file mode 100644 index 00000000..9974833b --- /dev/null +++ b/g/GCC/GCC-4.9.0-CLooG.eb @@ -0,0 +1,52 @@ +name = "GCC" +version = '4.9.0' +versionsuffix = "-CLooG" + +homepage = 'http://gcc.gnu.org/' +description = """The GNU Compiler Collection includes front ends for C, C++, Objective-C, Fortran, Java, and Ada, + as well as libraries for these languages (libstdc++, libgcj,...).""" + +toolchain = {'name': 'dummy', 'version': 'dummy'} + +mpfr_version = '3.1.2' + +source_urls = [ + 'http://ftpmirror.gnu.org/%(namelower)s/%(namelower)s-%(version)s', # GCC auto-resolving HTTP mirror + 'http://ftpmirror.gnu.org/gmp', # idem for GMP + 'http://ftpmirror.gnu.org/mpfr', # idem for MPFR + 'http://www.multiprecision.org/mpc/download', # MPC official + 'http://www.bastoul.net/cloog/pages/download/', # CLooG official + 'ftp://gcc.gnu.org/pub/gcc/infrastructure/', # GCC dependencies + 'http://gcc.cybermirror.org/infrastructure/', # HTTP mirror for GCC dependencies +] +sources = [ + SOURCELOWER_TAR_BZ2, + 'gmp-6.0.0a.tar.bz2', + 'mpfr-%s.tar.gz' % mpfr_version, + 'mpc-1.0.2.tar.gz', + 'cloog-0.18.1.tar.gz', + 'isl-0.12.2.tar.bz2', +] + +patches = [('mpfr-%s-allpatches-20140630.patch' % mpfr_version, '../mpfr-%s' % mpfr_version)] + +checksums = [ + '9709b49ae0e904cbb0a6a1b62853b556', # gcc-4.9.0.tar.bz2 + 'b7ff2d88cae7f8085bd5006096eed470', # gmp-6.0.0a.tar.bz2 + '181aa7bb0e452c409f2788a4a7f38476', # mpfr-3.1.2.tar.gz + '68fadff3358fb3e7976c7a398a0af4c3', # mpc-1.0.2.tar.gz + 'e34fca0540d840e5d0f6427e98c92252', # cloog-0.18.1.tar.gz + 'e039bfcfb6c2ab039b8ee69bf883e824', # isl-0.12.2.tar.bz2 + '21958aaf3d242e51b2f45cefcb9560d9', # mpfr-3.1.2-allpatches-20140630.patch +] + +languages = ['c', 'c++', 'fortran'] + +withcloog = True +withisl = True +clooguseisl = True + +# building GCC sometimes fails if make parallelism is too high, so let's limit it +maxparallel = 4 + +moduleclass = 'compiler' diff --git a/g/GCC/GCC-4.9.0.eb b/g/GCC/GCC-4.9.0.eb new file mode 100644 index 00000000..cd09534c --- /dev/null +++ b/g/GCC/GCC-4.9.0.eb @@ -0,0 +1,40 @@ +name = "GCC" +version = '4.9.0' + +homepage = 'http://gcc.gnu.org/' +description = """The GNU Compiler Collection includes front ends for C, C++, Objective-C, Fortran, Java, and Ada, + as well as libraries for these languages (libstdc++, libgcj,...).""" + +toolchain = {'name': 'dummy', 'version': 'dummy'} + +mpfr_version = '3.1.2' + +source_urls = [ + 'http://ftpmirror.gnu.org/%(namelower)s/%(namelower)s-%(version)s', # GCC auto-resolving HTTP mirror + 'http://ftpmirror.gnu.org/gmp', # idem for GMP + 'http://ftpmirror.gnu.org/mpfr', # idem for MPFR + 'http://www.multiprecision.org/mpc/download', # MPC official +] +sources = [ + SOURCELOWER_TAR_BZ2, + 'gmp-6.0.0a.tar.bz2', + 'mpfr-%s.tar.gz' % mpfr_version, + 'mpc-1.0.2.tar.gz', +] + +patches = [('mpfr-%s-allpatches-20140630.patch' % mpfr_version, '../mpfr-%s' % mpfr_version)] + +checksums = [ + '9709b49ae0e904cbb0a6a1b62853b556', # gcc-4.9.0.tar.bz2 + 'b7ff2d88cae7f8085bd5006096eed470', # gmp-6.0.0a.tar.bz2 + '181aa7bb0e452c409f2788a4a7f38476', # mpfr-3.1.2.tar.gz + '68fadff3358fb3e7976c7a398a0af4c3', # mpc-1.0.2.tar.gz + '21958aaf3d242e51b2f45cefcb9560d9', # mpfr-3.1.2-allpatches-20140630.patch +] + +languages = ['c', 'c++', 'fortran'] + +# building GCC sometimes fails if make parallelism is too high, so let's limit it +maxparallel = 4 + +moduleclass = 'compiler' diff --git a/g/GCC/GCC-4.9.1-CLooG-multilib.eb b/g/GCC/GCC-4.9.1-CLooG-multilib.eb new file mode 100644 index 00000000..a3c67d64 --- /dev/null +++ b/g/GCC/GCC-4.9.1-CLooG-multilib.eb @@ -0,0 +1,54 @@ +name = "GCC" +version = '4.9.1' +versionsuffix = "-CLooG-multilib" + +homepage = 'http://gcc.gnu.org/' +description = """The GNU Compiler Collection includes front ends for C, C++, Objective-C, Fortran, Java, and Ada, + as well as libraries for these languages (libstdc++, libgcj,...).""" + +toolchain = {'name': 'dummy', 'version': 'dummy'} + +mpfr_version = '3.1.2' + +source_urls = [ + 'http://ftpmirror.gnu.org/%(namelower)s/%(namelower)s-%(version)s', # GCC auto-resolving HTTP mirror + 'http://ftpmirror.gnu.org/gmp', # idem for GMP + 'http://ftpmirror.gnu.org/mpfr', # idem for MPFR + 'http://www.multiprecision.org/mpc/download', # MPC official + 'http://www.bastoul.net/cloog/pages/download/', # CLooG official + 'ftp://gcc.gnu.org/pub/gcc/infrastructure/', # GCC dependencies + 'http://gcc.cybermirror.org/infrastructure/', # HTTP mirror for GCC dependencies +] +sources = [ + SOURCELOWER_TAR_BZ2, + 'gmp-6.0.0a.tar.bz2', + 'mpfr-%s.tar.gz' % mpfr_version, + 'mpc-1.0.2.tar.gz', + 'cloog-0.18.1.tar.gz', + 'isl-0.12.2.tar.bz2', +] + +patches = [('mpfr-%s-allpatches-20140630.patch' % mpfr_version, '../mpfr-%s' % mpfr_version)] + +checksums = [ + 'fddf71348546af523353bd43d34919c1', # gcc-4.9.1.tar.gz + 'b7ff2d88cae7f8085bd5006096eed470', # gmp-6.0.0a.tar.bz2 + '181aa7bb0e452c409f2788a4a7f38476', # mpfr-3.1.2.tar.gz + '68fadff3358fb3e7976c7a398a0af4c3', # mpc-1.0.2.tar.gz + 'e34fca0540d840e5d0f6427e98c92252', # cloog-0.18.1.tar.gz + 'e039bfcfb6c2ab039b8ee69bf883e824', # isl-0.12.2.tar.bz2 + '21958aaf3d242e51b2f45cefcb9560d9', # mpfr-3.1.2-allpatches-20140630.patch +] + +languages = ['c', 'c++', 'fortran'] + +withcloog = True +withisl = True +clooguseisl = True + +multilib = True + +# building GCC sometimes fails if make parallelism is too high, so let's limit it +maxparallel = 4 + +moduleclass = 'compiler' diff --git a/g/GCC/GCC-4.9.1-CLooG.eb b/g/GCC/GCC-4.9.1-CLooG.eb new file mode 100644 index 00000000..b78ac530 --- /dev/null +++ b/g/GCC/GCC-4.9.1-CLooG.eb @@ -0,0 +1,52 @@ +name = "GCC" +version = '4.9.1' +versionsuffix = "-CLooG" + +homepage = 'http://gcc.gnu.org/' +description = """The GNU Compiler Collection includes front ends for C, C++, Objective-C, Fortran, Java, and Ada, + as well as libraries for these languages (libstdc++, libgcj,...).""" + +toolchain = {'name': 'dummy', 'version': 'dummy'} + +mpfr_version = '3.1.2' + +source_urls = [ + 'http://ftpmirror.gnu.org/%(namelower)s/%(namelower)s-%(version)s', # GCC auto-resolving HTTP mirror + 'http://ftpmirror.gnu.org/gmp', # idem for GMP + 'http://ftpmirror.gnu.org/mpfr', # idem for MPFR + 'http://www.multiprecision.org/mpc/download', # MPC official + 'http://www.bastoul.net/cloog/pages/download/', # CLooG official + 'ftp://gcc.gnu.org/pub/gcc/infrastructure/', # GCC dependencies + 'http://gcc.cybermirror.org/infrastructure/', # HTTP mirror for GCC dependencies +] +sources = [ + SOURCELOWER_TAR_BZ2, + 'gmp-6.0.0a.tar.bz2', + 'mpfr-%s.tar.gz' % mpfr_version, + 'mpc-1.0.2.tar.gz', + 'cloog-0.18.1.tar.gz', + 'isl-0.12.2.tar.bz2', +] + +patches = [('mpfr-%s-allpatches-20140630.patch' % mpfr_version, '../mpfr-%s' % mpfr_version)] + +checksums = [ + 'fddf71348546af523353bd43d34919c1', # gcc-4.9.1.tar.gz + 'b7ff2d88cae7f8085bd5006096eed470', # gmp-6.0.0a.tar.bz2 + '181aa7bb0e452c409f2788a4a7f38476', # mpfr-3.1.2.tar.gz + '68fadff3358fb3e7976c7a398a0af4c3', # mpc-1.0.2.tar.gz + 'e34fca0540d840e5d0f6427e98c92252', # cloog-0.18.1.tar.gz + 'e039bfcfb6c2ab039b8ee69bf883e824', # isl-0.12.2.tar.bz2 + '21958aaf3d242e51b2f45cefcb9560d9', # mpfr-3.1.2-allpatches-20140630.patch +] + +languages = ['c', 'c++', 'fortran'] + +withcloog = True +withisl = True +clooguseisl = True + +# building GCC sometimes fails if make parallelism is too high, so let's limit it +maxparallel = 4 + +moduleclass = 'compiler' diff --git a/g/GCC/GCC-4.9.1.eb b/g/GCC/GCC-4.9.1.eb new file mode 100644 index 00000000..21e41342 --- /dev/null +++ b/g/GCC/GCC-4.9.1.eb @@ -0,0 +1,40 @@ +name = "GCC" +version = '4.9.1' + +homepage = 'http://gcc.gnu.org/' +description = """The GNU Compiler Collection includes front ends for C, C++, Objective-C, Fortran, Java, and Ada, + as well as libraries for these languages (libstdc++, libgcj,...).""" + +toolchain = {'name': 'dummy', 'version': 'dummy'} + +mpfr_version = '3.1.2' + +source_urls = [ + 'http://ftpmirror.gnu.org/%(namelower)s/%(namelower)s-%(version)s', # GCC auto-resolving HTTP mirror + 'http://ftpmirror.gnu.org/gmp', # idem for GMP + 'http://ftpmirror.gnu.org/mpfr', # idem for MPFR + 'http://www.multiprecision.org/mpc/download', # MPC official +] +sources = [ + SOURCELOWER_TAR_BZ2, + 'gmp-6.0.0a.tar.bz2', + 'mpfr-%s.tar.gz' % mpfr_version, + 'mpc-1.0.2.tar.gz', +] + +patches = [('mpfr-%s-allpatches-20140630.patch' % mpfr_version, '../mpfr-%s' % mpfr_version)] + +checksums = [ + 'fddf71348546af523353bd43d34919c1', # gcc-4.9.1.tar.gz + 'b7ff2d88cae7f8085bd5006096eed470', # gmp-6.0.0a.tar.bz2 + '181aa7bb0e452c409f2788a4a7f38476', # mpfr-3.1.2.tar.gz + '68fadff3358fb3e7976c7a398a0af4c3', # mpc-1.0.2.tar.gz + '21958aaf3d242e51b2f45cefcb9560d9', # mpfr-3.1.2-allpatches-20140630.patch +] + +languages = ['c', 'c++', 'fortran'] + +# building GCC sometimes fails if make parallelism is too high, so let's limit it +maxparallel = 4 + +moduleclass = 'compiler' diff --git a/g/GCC/GCC-4.9.2-CLooG-multilib.eb b/g/GCC/GCC-4.9.2-CLooG-multilib.eb new file mode 100644 index 00000000..0906283a --- /dev/null +++ b/g/GCC/GCC-4.9.2-CLooG-multilib.eb @@ -0,0 +1,54 @@ +name = "GCC" +version = '4.9.2' +versionsuffix = "-CLooG-multilib" + +homepage = 'http://gcc.gnu.org/' +description = """The GNU Compiler Collection includes front ends for C, C++, Objective-C, Fortran, Java, and Ada, + as well as libraries for these languages (libstdc++, libgcj,...).""" + +toolchain = {'name': 'dummy', 'version': 'dummy'} + +mpfr_version = '3.1.2' + +source_urls = [ + 'http://ftpmirror.gnu.org/%(namelower)s/%(namelower)s-%(version)s', # GCC auto-resolving HTTP mirror + 'http://ftpmirror.gnu.org/gmp', # idem for GMP + 'http://ftpmirror.gnu.org/mpfr', # idem for MPFR + 'http://www.multiprecision.org/mpc/download', # MPC official + 'http://www.bastoul.net/cloog/pages/download/', # CLooG official + 'ftp://gcc.gnu.org/pub/gcc/infrastructure/', # GCC dependencies + 'http://gcc.cybermirror.org/infrastructure/', # HTTP mirror for GCC dependencies +] +sources = [ + SOURCELOWER_TAR_BZ2, + 'gmp-6.0.0a.tar.bz2', + 'mpfr-%s.tar.gz' % mpfr_version, + 'mpc-1.0.2.tar.gz', + 'cloog-0.18.1.tar.gz', + 'isl-0.12.2.tar.bz2', +] + +patches = [('mpfr-%s-allpatches-20140630.patch' % mpfr_version, '../mpfr-%s' % mpfr_version)] + +checksums = [ + '4df8ee253b7f3863ad0b86359cd39c43', # gcc-4.9.2.tar.bz2 + 'b7ff2d88cae7f8085bd5006096eed470', # gmp-6.0.0a.tar.bz2 + '181aa7bb0e452c409f2788a4a7f38476', # mpfr-3.1.2.tar.gz + '68fadff3358fb3e7976c7a398a0af4c3', # mpc-1.0.2.tar.gz + 'e34fca0540d840e5d0f6427e98c92252', # cloog-0.18.1.tar.gz + 'e039bfcfb6c2ab039b8ee69bf883e824', # isl-0.12.2.tar.bz2 + '21958aaf3d242e51b2f45cefcb9560d9', # mpfr-3.1.2-allpatches-20140630.patch +] + +languages = ['c', 'c++', 'fortran'] + +withcloog = True +withisl = True +clooguseisl = True + +multilib = True + +# building GCC sometimes fails if make parallelism is too high, so let's limit it +maxparallel = 4 + +moduleclass = 'compiler' diff --git a/g/GCC/GCC-4.9.2-CLooG.eb b/g/GCC/GCC-4.9.2-CLooG.eb new file mode 100644 index 00000000..1af6bd9c --- /dev/null +++ b/g/GCC/GCC-4.9.2-CLooG.eb @@ -0,0 +1,52 @@ +name = "GCC" +version = '4.9.2' +versionsuffix = "-CLooG" + +homepage = 'http://gcc.gnu.org/' +description = """The GNU Compiler Collection includes front ends for C, C++, Objective-C, Fortran, Java, and Ada, + as well as libraries for these languages (libstdc++, libgcj,...).""" + +toolchain = {'name': 'dummy', 'version': 'dummy'} + +mpfr_version = '3.1.2' + +source_urls = [ + 'http://ftpmirror.gnu.org/%(namelower)s/%(namelower)s-%(version)s', # GCC auto-resolving HTTP mirror + 'http://ftpmirror.gnu.org/gmp', # idem for GMP + 'http://ftpmirror.gnu.org/mpfr', # idem for MPFR + 'http://www.multiprecision.org/mpc/download', # MPC official + 'http://www.bastoul.net/cloog/pages/download/', # CLooG official + 'ftp://gcc.gnu.org/pub/gcc/infrastructure/', # GCC dependencies + 'http://gcc.cybermirror.org/infrastructure/', # HTTP mirror for GCC dependencies +] +sources = [ + SOURCELOWER_TAR_BZ2, + 'gmp-6.0.0a.tar.bz2', + 'mpfr-%s.tar.gz' % mpfr_version, + 'mpc-1.0.2.tar.gz', + 'cloog-0.18.1.tar.gz', + 'isl-0.12.2.tar.bz2', +] + +patches = [('mpfr-%s-allpatches-20140630.patch' % mpfr_version, '../mpfr-%s' % mpfr_version)] + +checksums = [ + '4df8ee253b7f3863ad0b86359cd39c43', # gcc-4.9.2.tar.bz2 + 'b7ff2d88cae7f8085bd5006096eed470', # gmp-6.0.0a.tar.bz2 + '181aa7bb0e452c409f2788a4a7f38476', # mpfr-3.1.2.tar.gz + '68fadff3358fb3e7976c7a398a0af4c3', # mpc-1.0.2.tar.gz + 'e34fca0540d840e5d0f6427e98c92252', # cloog-0.18.1.tar.gz + 'e039bfcfb6c2ab039b8ee69bf883e824', # isl-0.12.2.tar.bz2 + '21958aaf3d242e51b2f45cefcb9560d9', # mpfr-3.1.2-allpatches-20140630.patch +] + +languages = ['c', 'c++', 'fortran'] + +withcloog = True +withisl = True +clooguseisl = True + +# building GCC sometimes fails if make parallelism is too high, so let's limit it +maxparallel = 4 + +moduleclass = 'compiler' diff --git a/g/GCC/GCC-4.9.2-binutils-2.25.eb b/g/GCC/GCC-4.9.2-binutils-2.25.eb new file mode 100644 index 00000000..4985b922 --- /dev/null +++ b/g/GCC/GCC-4.9.2-binutils-2.25.eb @@ -0,0 +1,45 @@ +name = "GCC" +version = '4.9.2' + +binutilsver = '2.25' +versionsuffix = '-binutils-%s' % binutilsver + +homepage = 'http://gcc.gnu.org/' +description = """The GNU Compiler Collection includes front ends for C, C++, Objective-C, Fortran, Java, and Ada, + as well as libraries for these languages (libstdc++, libgcj,...).""" + +toolchain = {'name': 'dummy', 'version': ''} + +mpfr_version = '3.1.2' + +source_urls = [ + 'http://ftpmirror.gnu.org/%(namelower)s/%(namelower)s-%(version)s', # GCC auto-resolving HTTP mirror + 'http://ftpmirror.gnu.org/gmp', # idem for GMP + 'http://ftpmirror.gnu.org/mpfr', # idem for MPFR + 'http://www.multiprecision.org/mpc/download', # MPC official +] +sources = [ + SOURCELOWER_TAR_BZ2, + 'gmp-6.0.0a.tar.bz2', + 'mpfr-%s.tar.gz' % mpfr_version, + 'mpc-1.0.2.tar.gz', +] + +builddependencies = [('binutils', binutilsver)] + +patches = [('mpfr-%s-allpatches-20140630.patch' % mpfr_version, '../mpfr-%s' % mpfr_version)] + +checksums = [ + '4df8ee253b7f3863ad0b86359cd39c43', # gcc-4.9.2.tar.bz2 + 'b7ff2d88cae7f8085bd5006096eed470', # gmp-6.0.0a.tar.bz2 + '181aa7bb0e452c409f2788a4a7f38476', # mpfr-3.1.2.tar.gz + '68fadff3358fb3e7976c7a398a0af4c3', # mpc-1.0.2.tar.gz + '21958aaf3d242e51b2f45cefcb9560d9', # mpfr-3.1.2-allpatches-20140630.patch +] + +languages = ['c', 'c++', 'fortran'] + +# building GCC sometimes fails if make parallelism is too high, so let's limit it +maxparallel = 4 + +moduleclass = 'compiler' diff --git a/g/GCC/GCC-4.9.2.eb b/g/GCC/GCC-4.9.2.eb new file mode 100644 index 00000000..cb9f3aa4 --- /dev/null +++ b/g/GCC/GCC-4.9.2.eb @@ -0,0 +1,40 @@ +name = "GCC" +version = '4.9.2' + +homepage = 'http://gcc.gnu.org/' +description = """The GNU Compiler Collection includes front ends for C, C++, Objective-C, Fortran, Java, and Ada, + as well as libraries for these languages (libstdc++, libgcj,...).""" + +toolchain = {'name': 'dummy', 'version': 'dummy'} + +mpfr_version = '3.1.2' + +source_urls = [ + 'http://ftpmirror.gnu.org/%(namelower)s/%(namelower)s-%(version)s', # GCC auto-resolving HTTP mirror + 'http://ftpmirror.gnu.org/gmp', # idem for GMP + 'http://ftpmirror.gnu.org/mpfr', # idem for MPFR + 'http://www.multiprecision.org/mpc/download', # MPC official +] +sources = [ + SOURCELOWER_TAR_BZ2, + 'gmp-6.0.0a.tar.bz2', + 'mpfr-%s.tar.gz' % mpfr_version, + 'mpc-1.0.2.tar.gz', +] + +patches = [('mpfr-%s-allpatches-20140630.patch' % mpfr_version, '../mpfr-%s' % mpfr_version)] + +checksums = [ + '4df8ee253b7f3863ad0b86359cd39c43', # gcc-4.9.2.tar.bz2 + 'b7ff2d88cae7f8085bd5006096eed470', # gmp-6.0.0a.tar.bz2 + '181aa7bb0e452c409f2788a4a7f38476', # mpfr-3.1.2.tar.gz + '68fadff3358fb3e7976c7a398a0af4c3', # mpc-1.0.2.tar.gz + '21958aaf3d242e51b2f45cefcb9560d9', # mpfr-3.1.2-allpatches-20140630.patch +] + +languages = ['c', 'c++', 'fortran'] + +# building GCC sometimes fails if make parallelism is too high, so let's limit it +maxparallel = 4 + +moduleclass = 'compiler' diff --git a/g/GCC/GCC-4.9.3-binutils-2.25.eb b/g/GCC/GCC-4.9.3-binutils-2.25.eb new file mode 100644 index 00000000..59468360 --- /dev/null +++ b/g/GCC/GCC-4.9.3-binutils-2.25.eb @@ -0,0 +1,57 @@ +name = "GCC" +version = '4.9.3' + +binutilsver = '2.25' +versionsuffix = '-binutils-%s' % binutilsver + +homepage = 'http://gcc.gnu.org/' +description = """The GNU Compiler Collection includes front ends for C, C++, Objective-C, Fortran, Java, and Ada, + as well as libraries for these languages (libstdc++, libgcj,...).""" + +toolchain = {'name': 'dummy', 'version': ''} + +mpfr_version = '3.1.2' + +source_urls = [ + 'http://ftpmirror.gnu.org/%(namelower)s/%(namelower)s-%(version)s', # GCC auto-resolving HTTP mirror + 'http://ftpmirror.gnu.org/gmp', # idem for GMP + 'http://ftpmirror.gnu.org/mpfr', # idem for MPFR + 'http://www.multiprecision.org/mpc/download', # MPC official +] +sources = [ + SOURCELOWER_TAR_BZ2, + 'gmp-6.0.0a.tar.bz2', + 'mpfr-%s.tar.gz' % mpfr_version, + 'mpc-1.0.2.tar.gz', +] + +builddependencies = [('binutils', binutilsver)] + +patches = [('mpfr-%s-allpatches-20141204.patch' % mpfr_version, '../mpfr-%s' % mpfr_version)] + +checksums = [ + '6f831b4d251872736e8e9cc09746f327', # gcc-4.9.3.tar.bz2 + 'b7ff2d88cae7f8085bd5006096eed470', # gmp-6.0.0a.tar.bz2 + '181aa7bb0e452c409f2788a4a7f38476', # mpfr-3.1.2.tar.gz + '68fadff3358fb3e7976c7a398a0af4c3', # mpc-1.0.2.tar.gz + '58aec98d15982f9744a043d2f1c5af82', # mpfr-3.1.2-allpatches-20141204.patch +] + +languages = ['c', 'c++', 'fortran'] + +# building GCC sometimes fails if make parallelism is too high, so let's limit it +maxparallel = 4 + +# Salomon specific optimalization +modextravars = { + 'CC': '%(installdir)s/bin/gcc', + 'CXX': '%(installdir)s/bin/g++', + 'F90': '%(installdir)s/bin/gfortran', + 'F77': '%(installdir)s/bin/gfortran', + 'FC': '%(installdir)s/bin/gfortran', + 'F9X': '%(installdir)s/bin/gfortran', + 'OPTFLAGS': '-O3 -march=native', + 'DEBUGFLAGS': '-O0 -g' +} + +moduleclass = 'compiler' diff --git a/g/GCC/GCC-4.9.3.eb b/g/GCC/GCC-4.9.3.eb new file mode 100644 index 00000000..759f134b --- /dev/null +++ b/g/GCC/GCC-4.9.3.eb @@ -0,0 +1,40 @@ +name = "GCC" +version = '4.9.3' + +homepage = 'http://gcc.gnu.org/' +description = """The GNU Compiler Collection includes front ends for C, C++, Objective-C, Fortran, Java, and Ada, + as well as libraries for these languages (libstdc++, libgcj,...).""" + +toolchain = {'name': 'dummy', 'version': 'dummy'} + +mpfr_version = '3.1.2' + +source_urls = [ + 'http://ftpmirror.gnu.org/%(namelower)s/%(namelower)s-%(version)s', # GCC auto-resolving HTTP mirror + 'http://ftpmirror.gnu.org/gmp', # idem for GMP + 'http://ftpmirror.gnu.org/mpfr', # idem for MPFR + 'http://www.multiprecision.org/mpc/download', # MPC official +] +sources = [ + SOURCELOWER_TAR_BZ2, + 'gmp-6.0.0a.tar.bz2', + 'mpfr-%s.tar.gz' % mpfr_version, + 'mpc-1.0.2.tar.gz', +] + +patches = [('mpfr-%s-allpatches-20141204.patch' % mpfr_version, '../mpfr-%s' % mpfr_version)] + +checksums = [ + '6f831b4d251872736e8e9cc09746f327', # gcc-4.9.3.tar.bz2 + 'b7ff2d88cae7f8085bd5006096eed470', # gmp-6.0.0a.tar.bz2 + '181aa7bb0e452c409f2788a4a7f38476', # mpfr-3.1.2.tar.gz + '68fadff3358fb3e7976c7a398a0af4c3', # mpc-1.0.2.tar.gz + '58aec98d15982f9744a043d2f1c5af82', # mpfr-3.1.2-allpatches-20141204.patch +] + +languages = ['c', 'c++', 'fortran'] + +# building GCC sometimes fails if make parallelism is too high, so let's limit it +maxparallel = 4 + +moduleclass = 'compiler' diff --git a/g/GCC/GCC-5.1.0-binutils-2.25.eb b/g/GCC/GCC-5.1.0-binutils-2.25.eb new file mode 100644 index 00000000..02940397 --- /dev/null +++ b/g/GCC/GCC-5.1.0-binutils-2.25.eb @@ -0,0 +1,67 @@ +name = "GCC" +version = '5.1.0' + +binutilsver = '2.25' +versionsuffix = '-binutils-%s' % binutilsver + +homepage = 'http://gcc.gnu.org/' +description = """The GNU Compiler Collection includes front ends for C, C++, Objective-C, Fortran, Java, and Ada, + as well as libraries for these languages (libstdc++, libgcj,...).""" + +toolchain = {'name': 'dummy', 'version': ''} + +mpfr_version = '3.1.2' + +source_urls = [ + 'http://ftpmirror.gnu.org/%(namelower)s/%(namelower)s-%(version)s', # GCC auto-resolving HTTP mirror + 'http://ftpmirror.gnu.org/gmp', # idem for GMP + 'http://ftpmirror.gnu.org/mpfr', # idem for MPFR + 'http://www.multiprecision.org/mpc/download', # MPC official + 'ftp://gcc.gnu.org/pub/gcc/infrastructure/', # GCC dependencies + 'http://gcc.cybermirror.org/infrastructure/', # HTTP mirror for GCC dependencies +] + +sources = [ + SOURCELOWER_TAR_BZ2, + 'gmp-6.0.0a.tar.bz2', + 'mpfr-%s.tar.gz' % mpfr_version, + 'mpc-1.0.3.tar.gz', + 'isl-0.14.tar.bz2', +] + +builddependencies = [ + ('M4', '1.4.17'), + ('binutils', binutilsver), +] + +patches = [('mpfr-%s-allpatches-20141204.patch' % mpfr_version, '../mpfr-%s' % mpfr_version)] + +checksums = [ + 'd5525b1127d07d215960e6051c5da35e', # gcc-5.1.0.tar.bz2 + 'b7ff2d88cae7f8085bd5006096eed470', # gmp-6.0.0a.tar.bz2 + '181aa7bb0e452c409f2788a4a7f38476', # mpfr-3.1.2.tar.gz + 'd6a1d5f8ddea3abd2cc3e98f58352d26', # mpc-1.0.3.tar.gz + 'acd347243fca5609e3df37dba47fd0bb', # isl-0.14.tar.bz2 + '58aec98d15982f9744a043d2f1c5af82', # mpfr-3.1.2-allpatches-20141204.patch +] + +languages = ['c', 'c++', 'fortran'] + +withisl = True + +# building GCC sometimes fails if make parallelism is too high, so let's limit it +maxparallel = 4 + +moduleclass = 'compiler' + +# Salomon specific optimalization +modextravars = { + 'CC': '%(installdir)s/bin/gcc', + 'CXX': '%(installdir)s/bin/g++', + 'F90': '%(installdir)s/bin/gfortran', + 'F77': '%(installdir)s/bin/gfortran', + 'FC': '%(installdir)s/bin/gfortran', + 'F9X': '%(installdir)s/bin/gfortran', + 'OPTFLAGS': '-O3 -march=native', + 'DEBUGFLAGS': '-O0 -g' +} diff --git a/g/GCC/GCC-5.1.0.eb b/g/GCC/GCC-5.1.0.eb new file mode 100644 index 00000000..8849659b --- /dev/null +++ b/g/GCC/GCC-5.1.0.eb @@ -0,0 +1,61 @@ +name = "GCC" +version = '5.1.0' + +homepage = 'http://gcc.gnu.org/' +description = """The GNU Compiler Collection includes front ends for C, C++, Objective-C, Fortran, Java, and Ada, + as well as libraries for these languages (libstdc++, libgcj,...).""" + +toolchain = {'name': 'dummy', 'version': ''} + +mpfr_version = '3.1.2' + +source_urls = [ + 'http://ftpmirror.gnu.org/%(namelower)s/%(namelower)s-%(version)s', # GCC auto-resolving HTTP mirror + 'http://ftpmirror.gnu.org/gmp', # idem for GMP + 'http://ftpmirror.gnu.org/mpfr', # idem for MPFR + 'http://www.multiprecision.org/mpc/download', # MPC official + 'ftp://gcc.gnu.org/pub/gcc/infrastructure/', # GCC dependencies + 'http://gcc.cybermirror.org/infrastructure/', # HTTP mirror for GCC dependencies +] + +sources = [ + SOURCELOWER_TAR_BZ2, + 'gmp-6.0.0a.tar.bz2', + 'mpfr-%s.tar.gz' % mpfr_version, + 'mpc-1.0.3.tar.gz', + 'isl-0.14.tar.bz2', +] + +patches = [('mpfr-%s-allpatches-20141204.patch' % mpfr_version, '../mpfr-%s' % mpfr_version)] + +builddependencies = [('M4', '1.4.17')] + +checksums = [ + 'd5525b1127d07d215960e6051c5da35e', # gcc-5.1.0.tar.bz2 + 'b7ff2d88cae7f8085bd5006096eed470', # gmp-6.0.0a.tar.bz2 + '181aa7bb0e452c409f2788a4a7f38476', # mpfr-3.1.2.tar.gz + 'd6a1d5f8ddea3abd2cc3e98f58352d26', # mpc-1.0.3.tar.gz + 'acd347243fca5609e3df37dba47fd0bb', # isl-0.14.tar.bz2 + '58aec98d15982f9744a043d2f1c5af82', # mpfr-3.1.2-allpatches-20141204.patch +] + +languages = ['c', 'c++', 'fortran'] + +withisl = True + +# building GCC sometimes fails if make parallelism is too high, so let's limit it +maxparallel = 4 + +moduleclass = 'compiler' + +# Salomon specific optimalization +modextravars = { + 'CC': '%(installdir)s/bin/gcc', + 'CXX': '%(installdir)s/bin/g++', + 'F90': '%(installdir)s/bin/gfortran', + 'F77': '%(installdir)s/bin/gfortran', + 'FC': '%(installdir)s/bin/gfortran', + 'F9X': '%(installdir)s/bin/gfortran', + 'OPTFLAGS': '-O3 -march=native', + 'DEBUGFLAGS': '-O0 -g' +} diff --git a/g/GCC/GCC-5.2.0.eb b/g/GCC/GCC-5.2.0.eb new file mode 100644 index 00000000..c25b63f7 --- /dev/null +++ b/g/GCC/GCC-5.2.0.eb @@ -0,0 +1,49 @@ +name = 'GCC' +version = '5.2.0' + +homepage = 'http://gcc.gnu.org/' +description = """The GNU Compiler Collection includes front ends for C, C++, Objective-C, Fortran, Java, and Ada, + as well as libraries for these languages (libstdc++, libgcj,...).""" + +toolchain = {'name': 'dummy', 'version': ''} + +mpfr_version = '3.1.3' + +source_urls = [ + 'http://ftpmirror.gnu.org/%(namelower)s/%(namelower)s-%(version)s', # GCC auto-resolving HTTP mirror + 'http://ftpmirror.gnu.org/gmp', # idem for GMP + 'http://ftpmirror.gnu.org/mpfr', # idem for MPFR + 'http://www.multiprecision.org/mpc/download', # MPC official + 'ftp://gcc.gnu.org/pub/gcc/infrastructure/', # GCC dependencies + 'http://gcc.cybermirror.org/infrastructure/', # HTTP mirror for GCC dependencies +] + +sources = [ + SOURCELOWER_TAR_BZ2, + 'gmp-6.0.0a.tar.bz2', + 'mpfr-%s.tar.gz' % mpfr_version, + 'mpc-1.0.3.tar.gz', + 'isl-0.14.tar.bz2', +] + +patches = [('mpfr-%s-allpatches-20150717.patch' % mpfr_version, '../mpfr-%s' % mpfr_version)] + +builddependencies = [('M4', '1.4.17')] + +checksums = [ + 'a51bcfeb3da7dd4c623e27207ed43467', # gcc-5.2.0.tar.bz2 + 'b7ff2d88cae7f8085bd5006096eed470', # gmp-6.0.0a.tar.bz2 + '7b650781f0a7c4a62e9bc8bdaaa0018b', # mpfr-3.1.l.tar.gz + 'd6a1d5f8ddea3abd2cc3e98f58352d26', # mpc-1.0.3.tar.gz + 'acd347243fca5609e3df37dba47fd0bb', # isl-0.14.tar.bz2 + 'e502185ebb22b41c528f183bb22a7569', # mpfr-3.1.3-allpatches-20150717.patch +] + +languages = ['c', 'c++', 'fortran'] + +withisl = True + +# building GCC sometimes fails if make parallelism is too high, so let's limit it +maxparallel = 4 + +moduleclass = 'compiler' diff --git a/g/GCC/GCC-5.3.0-2.25.eb b/g/GCC/GCC-5.3.0-2.25.eb new file mode 100644 index 00000000..ed5e8298 --- /dev/null +++ b/g/GCC/GCC-5.3.0-2.25.eb @@ -0,0 +1,25 @@ +easyblock = 'Bundle' + +name = 'GCC' +version = '5.3.0' + +binutilsver = '2.25' +versionsuffix = '-%s' % binutilsver + +homepage = 'http://gcc.gnu.org/' +description = """The GNU Compiler Collection includes front ends for C, C++, Objective-C, Fortran, Java, and Ada, + as well as libraries for these languages (libstdc++, libgcj,...).""" + +toolchain = {'name': 'dummy', 'version': ''} + +dependencies = [ + ('GCCcore', version), + # binutils built on top of GCCcore, which was built on top of (dummy-built) binutils + ('binutils', binutilsver, '', ('GCCcore', version)), +] + +altroot = 'GCCcore' +altversion = 'GCCcore' + +# this bundle serves as a compiler-only toolchain, so it should be marked as compiler (important for HMNS) +moduleclass = 'compiler' diff --git a/g/GCC/GCC-5.3.0-binutils-2.25.eb b/g/GCC/GCC-5.3.0-binutils-2.25.eb new file mode 100644 index 00000000..4d3fa6e3 --- /dev/null +++ b/g/GCC/GCC-5.3.0-binutils-2.25.eb @@ -0,0 +1,67 @@ +name = 'GCC' +version = '5.3.0' + +binutilsver = '2.25' +versionsuffix = '-binutils-%s' % binutilsver + +homepage = 'http://gcc.gnu.org/' +description = """The GNU Compiler Collection includes front ends for C, C++, Objective-C, Fortran, Java, and Ada, + as well as libraries for these languages (libstdc++, libgcj,...).""" + +toolchain = {'name': 'dummy', 'version': ''} + +mpfr_version = '3.1.3' + +source_urls = [ + 'http://ftpmirror.gnu.org/%(namelower)s/%(namelower)s-%(version)s', # GCC auto-resolving HTTP mirror + 'http://ftpmirror.gnu.org/gmp', # idem for GMP + 'http://ftpmirror.gnu.org/mpfr', # idem for MPFR + 'http://www.multiprecision.org/mpc/download', # MPC official + 'ftp://gcc.gnu.org/pub/gcc/infrastructure/', # GCC dependencies + 'http://gcc.cybermirror.org/infrastructure/', # HTTP mirror for GCC dependencies +] + +sources = [ + SOURCELOWER_TAR_BZ2, + 'gmp-6.1.0.tar.bz2', + 'mpfr-%s.tar.gz' % mpfr_version, + 'mpc-1.0.3.tar.gz', + 'isl-0.15.tar.bz2', +] + +patches = [('mpfr-%s-allpatches-20151029.patch' % mpfr_version, '../mpfr-%s' % mpfr_version)] + +builddependencies = [ + ('M4', '1.4.17'), + ('binutils', binutilsver), +] + +checksums = [ + 'c9616fd448f980259c31de613e575719', # gcc-5.3.0.tar.bz2 + '86ee6e54ebfc4a90b643a65e402c4048', # gmp-6.1.0.tar.bz2 + '7b650781f0a7c4a62e9bc8bdaaa0018b', # mpfr-3.1.3.tar.gz + 'd6a1d5f8ddea3abd2cc3e98f58352d26', # mpc-1.0.3.tar.gz + '8428efbbc6f6e2810ce5c1ba73ecf98c', # isl-0.15.tar.bz2 + '6476b450c3db177b2250f3549362380e', # mpfr-3.1.3-allpatches-20151029.patch +] + +languages = ['c', 'c++', 'fortran'] + +withisl = True + +# building GCC sometimes fails if make parallelism is too high, so let's limit it +maxparallel = 4 + +moduleclass = 'compiler' + +# IT4I specific optimalization +modextravars = { + 'CC': '%(installdir)s/bin/gcc', + 'CXX': '%(installdir)s/bin/g++', + 'F90': '%(installdir)s/bin/gfortran', + 'F77': '%(installdir)s/bin/gfortran', + 'FC': '%(installdir)s/bin/gfortran', + 'F9X': '%(installdir)s/bin/gfortran', + 'OPTFLAGS': '-O3 -march=native', + 'DEBUGFLAGS': '-O0 -g' +} diff --git a/g/GCC/GCC-5.3.0.eb b/g/GCC/GCC-5.3.0.eb new file mode 100644 index 00000000..83ebb4cb --- /dev/null +++ b/g/GCC/GCC-5.3.0.eb @@ -0,0 +1,49 @@ +name = 'GCC' +version = '5.3.0' + +homepage = 'http://gcc.gnu.org/' +description = """The GNU Compiler Collection includes front ends for C, C++, Objective-C, Fortran, Java, and Ada, + as well as libraries for these languages (libstdc++, libgcj,...).""" + +toolchain = {'name': 'dummy', 'version': ''} + +mpfr_version = '3.1.3' + +source_urls = [ + 'http://ftpmirror.gnu.org/%(namelower)s/%(namelower)s-%(version)s', # GCC auto-resolving HTTP mirror + 'http://ftpmirror.gnu.org/gmp', # idem for GMP + 'http://ftpmirror.gnu.org/mpfr', # idem for MPFR + 'http://www.multiprecision.org/mpc/download', # MPC official + 'ftp://gcc.gnu.org/pub/gcc/infrastructure/', # GCC dependencies + 'http://gcc.cybermirror.org/infrastructure/', # HTTP mirror for GCC dependencies +] + +sources = [ + SOURCELOWER_TAR_BZ2, + 'gmp-6.1.0.tar.bz2', + 'mpfr-%s.tar.gz' % mpfr_version, + 'mpc-1.0.3.tar.gz', + 'isl-0.15.tar.bz2', +] + +patches = [('mpfr-%s-allpatches-20151029.patch' % mpfr_version, '../mpfr-%s' % mpfr_version)] + +builddependencies = [('M4', '1.4.17')] + +checksums = [ + 'c9616fd448f980259c31de613e575719', # gcc-5.3.0.tar.bz2 + '86ee6e54ebfc4a90b643a65e402c4048', # gmp-6.1.0.tar.bz2 + '7b650781f0a7c4a62e9bc8bdaaa0018b', # mpfr-3.1.3.tar.gz + 'd6a1d5f8ddea3abd2cc3e98f58352d26', # mpc-1.0.3.tar.gz + '8428efbbc6f6e2810ce5c1ba73ecf98c', # isl-0.15.tar.bz2 + '6476b450c3db177b2250f3549362380e', # mpfr-3.1.3-allpatches-20151029.patch +] + +languages = ['c', 'c++', 'fortran'] + +withisl = True + +# building GCC sometimes fails if make parallelism is too high, so let's limit it +maxparallel = 4 + +moduleclass = 'compiler' diff --git a/g/GCC/GCC-5.3.1-snapshot-20160419-2.25.eb b/g/GCC/GCC-5.3.1-snapshot-20160419-2.25.eb new file mode 100644 index 00000000..b6598a02 --- /dev/null +++ b/g/GCC/GCC-5.3.1-snapshot-20160419-2.25.eb @@ -0,0 +1,25 @@ +easyblock = 'Bundle' + +name = 'GCC' +version = '5.3.1' +snapshot = '20160419' +binutilsver = '2.25' +versionsuffix = '-snapshot-%s-%s' % (snapshot, binutilsver) + +homepage = 'http://gcc.gnu.org/' +description = """The GNU Compiler Collection includes front ends for C, C++, Objective-C, Fortran, Java, and Ada, + as well as libraries for these languages (libstdc++, libgcj,...).""" + +toolchain = {'name': 'dummy', 'version': ''} + +dependencies = [ + ('GCCcore', version, '-snapshot-%s' % snapshot), + # binutils built on top of GCCcore, which was built on top of (dummy-built) binutils + ('binutils', binutilsver, '', ('GCCcore', '%s-snapshot-%s' % (version, snapshot))), +] + +altroot = 'GCCcore' +altversion = 'GCCcore' + +# this bundle serves as a compiler-only toolchain, so it should be marked as compiler (important for HMNS) +moduleclass = 'compiler' diff --git a/g/GCCcore/GCCcore-4.9.2.eb b/g/GCCcore/GCCcore-4.9.2.eb new file mode 100644 index 00000000..01f4776c --- /dev/null +++ b/g/GCCcore/GCCcore-4.9.2.eb @@ -0,0 +1,48 @@ +easyblock = 'EB_GCC' + +name = 'GCCcore' +version = '4.9.2' + +homepage = 'http://gcc.gnu.org/' +description = """The GNU Compiler Collection includes front ends for C, C++, Objective-C, Fortran, Java, and Ada, + as well as libraries for these languages (libstdc++, libgcj,...).""" + +toolchain = {'name': 'dummy', 'version': ''} + +mpfr_version = '3.1.2' +gcc_name = 'GCC' + +source_urls = [ + 'http://ftpmirror.gnu.org/gcc/gcc-%s' % version, # GCC auto-resolving HTTP mirror + 'http://ftpmirror.gnu.org/gmp', # idem for GMP + 'http://ftpmirror.gnu.org/mpfr', # idem for MPFR + 'http://www.multiprecision.org/mpc/download', # MPC official +] +sources = [ + '%s-%s.tar.bz2' % (gcc_name.lower(), version), + 'gmp-6.0.0a.tar.bz2', + 'mpfr-%s.tar.gz' % mpfr_version, + 'mpc-1.0.2.tar.gz', +] + +builddependencies = [ + ('Autotools', '20150215'), + ('binutils', '2.25'), +] + +patches = [('mpfr-%s-allpatches-20141204.patch' % mpfr_version, '../mpfr-%s' % mpfr_version)] + +checksums = [ + '4df8ee253b7f3863ad0b86359cd39c43', # gcc-4.9.2.tar.bz2 + 'b7ff2d88cae7f8085bd5006096eed470', # gmp-6.0.0a.tar.bz2 + '181aa7bb0e452c409f2788a4a7f38476', # mpfr-3.1.2.tar.gz + '68fadff3358fb3e7976c7a398a0af4c3', # mpc-1.0.2.tar.gz + '58aec98d15982f9744a043d2f1c5af82', # mpfr-3.1.2-allpatches-20141204.patch +] + +languages = ['c', 'c++', 'fortran'] + +# building GCC sometimes fails if make parallelism is too high, so let's limit it +maxparallel = 4 + +moduleclass = 'compiler' diff --git a/g/GCCcore/GCCcore-4.9.3.eb b/g/GCCcore/GCCcore-4.9.3.eb new file mode 100644 index 00000000..4f94f970 --- /dev/null +++ b/g/GCCcore/GCCcore-4.9.3.eb @@ -0,0 +1,59 @@ +easyblock = 'EB_GCC' + +name = 'GCCcore' +version = '4.9.3' + +homepage = 'http://gcc.gnu.org/' +description = """The GNU Compiler Collection includes front ends for C, C++, Objective-C, Fortran, Java, and Ada, + as well as libraries for these languages (libstdc++, libgcj,...).""" + +toolchain = {'name': 'dummy', 'version': ''} + +mpfr_version = '3.1.2' + +source_urls = [ + 'http://ftpmirror.gnu.org/gcc/gcc-%s' % version, # GCC auto-resolving HTTP mirror + 'http://ftpmirror.gnu.org/gmp', # idem for GMP + 'http://ftpmirror.gnu.org/mpfr', # idem for MPFR + 'http://www.multiprecision.org/mpc/download', # MPC official +] +sources = [ + 'gcc-%(version)s.tar.bz2', + 'gmp-6.0.0a.tar.bz2', + 'mpfr-%s.tar.gz' % mpfr_version, + 'mpc-1.0.2.tar.gz', +] + +builddependencies = [ + ('Autotools', '20150215'), + ('binutils', '2.25'), +] + +patches = [('mpfr-%s-allpatches-20141204.patch' % mpfr_version, '../mpfr-%s' % mpfr_version)] + +checksums = [ + '6f831b4d251872736e8e9cc09746f327', # gcc-4.9.3.tar.bz2 + 'b7ff2d88cae7f8085bd5006096eed470', # gmp-6.0.0a.tar.bz2 + '181aa7bb0e452c409f2788a4a7f38476', # mpfr-3.1.2.tar.gz + '68fadff3358fb3e7976c7a398a0af4c3', # mpc-1.0.2.tar.gz + '58aec98d15982f9744a043d2f1c5af82', # mpfr-3.1.2-allpatches-20141204.patch +] + +languages = ['c', 'c++', 'fortran'] + +# building GCC sometimes fails if make parallelism is too high, so let's limit it +maxparallel = 4 + +moduleclass = 'compiler' + +# Salomon specific optimalization +modextravars = { + 'CC': '%(installdir)s/bin/gcc', + 'CXX': '%(installdir)s/bin/g++', + 'F90': '%(installdir)s/bin/gfortran', + 'F77': '%(installdir)s/bin/gfortran', + 'FC': '%(installdir)s/bin/gfortran', + 'F9X': '%(installdir)s/bin/gfortran', + 'OPTFLAGS': '-O3 -march=native', + 'DEBUGFLAGS': '-O0 -g' +} diff --git a/g/GCCcore/GCCcore-5.3.0.eb b/g/GCCcore/GCCcore-5.3.0.eb new file mode 100644 index 00000000..79c4b15e --- /dev/null +++ b/g/GCCcore/GCCcore-5.3.0.eb @@ -0,0 +1,66 @@ +easyblock = 'EB_GCC' + +name = 'GCCcore' +version = '5.3.0' + +homepage = 'http://gcc.gnu.org/' +description = """The GNU Compiler Collection includes front ends for C, C++, Objective-C, Fortran, Java, and Ada, + as well as libraries for these languages (libstdc++, libgcj,...).""" + +toolchain = {'name': 'dummy', 'version': ''} + +mpfr_version = '3.1.3' + +source_urls = [ + 'http://ftpmirror.gnu.org/gcc/gcc-%(version)s', # GCC auto-resolving HTTP mirror + 'http://ftpmirror.gnu.org/gmp', # idem for GMP + 'http://ftpmirror.gnu.org/mpfr', # idem for MPFR + 'http://www.multiprecision.org/mpc/download', # MPC official + 'ftp://gcc.gnu.org/pub/gcc/infrastructure/', # GCC dependencies + 'http://gcc.cybermirror.org/infrastructure/', # HTTP mirror for GCC dependencies +] + +sources = [ + 'gcc-%(version)s.tar.bz2', + 'gmp-6.1.0.tar.bz2', + 'mpfr-%s.tar.gz' % mpfr_version, + 'mpc-1.0.3.tar.gz', + 'isl-0.15.tar.bz2', +] + +patches = [('mpfr-%s-allpatches-20151029.patch' % mpfr_version, '../mpfr-%s' % mpfr_version)] + +builddependencies = [ + ('binutils', '2.26'), + ('M4', '1.4.17'), +] + +checksums = [ + 'c9616fd448f980259c31de613e575719', # gcc-5.3.0.tar.bz2 + '86ee6e54ebfc4a90b643a65e402c4048', # gmp-6.1.0.tar.bz2 + '7b650781f0a7c4a62e9bc8bdaaa0018b', # mpfr-3.1.3.tar.gz + 'd6a1d5f8ddea3abd2cc3e98f58352d26', # mpc-1.0.3.tar.gz + '8428efbbc6f6e2810ce5c1ba73ecf98c', # isl-0.15.tar.bz2 + '6476b450c3db177b2250f3549362380e', # mpfr-3.1.3-allpatches-20151029.patch +] + +languages = ['c', 'c++', 'fortran'] + +withisl = True + +# building GCC sometimes fails if make parallelism is too high, so let's limit it +maxparallel = 4 + +moduleclass = 'compiler' + +# Salomon specific optimalization +modextravars = { + 'CC': '%(installdir)s/bin/gcc', + 'CXX': '%(installdir)s/bin/g++', + 'F90': '%(installdir)s/bin/gfortran', + 'F77': '%(installdir)s/bin/gfortran', + 'FC': '%(installdir)s/bin/gfortran', + 'F9X': '%(installdir)s/bin/gfortran', + 'OPTFLAGS': '-O3 -march=native', + 'DEBUGFLAGS': '-O0 -g' +} diff --git a/g/GCCcore/GCCcore-5.3.1-snapshot-20160419.eb b/g/GCCcore/GCCcore-5.3.1-snapshot-20160419.eb new file mode 100644 index 00000000..f51d4e21 --- /dev/null +++ b/g/GCCcore/GCCcore-5.3.1-snapshot-20160419.eb @@ -0,0 +1,63 @@ +easyblock = 'EB_GCC' + +name = 'GCCcore' +version = '5.3.1' +snapshot = '20160419' +versionsuffix = '-snapshot-%s' % snapshot + +homepage = 'http://gcc.gnu.org/' +description = """The GNU Compiler Collection includes front ends for C, C++, Objective-C, Fortran, Java, and Ada, + as well as libraries for these languages (libstdc++, libgcj,...).""" + +toolchain = {'name': 'dummy', 'version': ''} + +mpfr_version = '3.1.3' +gcc_name = 'GCC' + +source_urls = [ + 'http://gcc.parentingamerica.com/snapshots/LATEST-5/', # GCC auto-resolving HTTP mirror + 'http://ftpmirror.gnu.org/gmp', # idem for GMP + 'http://ftpmirror.gnu.org/mpfr', # idem for MPFR + 'http://www.multiprecision.org/mpc/download', # MPC official +] +sources = [ + 'gcc-5-%s.tar.bz2' % snapshot, + 'gmp-6.1.0.tar.bz2', + 'mpfr-%s.tar.gz' % mpfr_version, + 'mpc-1.0.3.tar.gz', + 'isl-0.15.tar.bz2', +] + +builddependencies = [('binutils', '2.25')] + +patches = [('mpfr-%s-allpatches-20151029.patch' % mpfr_version, '../mpfr-%s' % mpfr_version)] + +checksums = [ + 'bf701ac49b63272cf77ba0f272214a38', # gcc-5-20160419.tar.bz2 + '86ee6e54ebfc4a90b643a65e402c4048', # gmp-6.1.0.tar.bz2 + '7b650781f0a7c4a62e9bc8bdaaa0018b', # mpfr-3.1.3.tar.gz + 'd6a1d5f8ddea3abd2cc3e98f58352d26', # mpc-1.0.3.tar.gz + '8428efbbc6f6e2810ce5c1ba73ecf98c', # isl-0.15.tar.bz2 + '6476b450c3db177b2250f3549362380e', # mpfr-3.1.3-allpatches-20151029.patch +] + +languages = ['c', 'c++', 'fortran'] + +withisl = True + +# building GCC sometimes fails if make parallelism is too high, so let's limit it +maxparallel = 4 + +moduleclass = 'compiler' + +# Salomon specific optimalization +modextravars = { + 'CC': '%(installdir)s/bin/gcc', + 'CXX': '%(installdir)s/bin/g++', + 'F90': '%(installdir)s/bin/gfortran', + 'F77': '%(installdir)s/bin/gfortran', + 'FC': '%(installdir)s/bin/gfortran', + 'F9X': '%(installdir)s/bin/gfortran', + 'OPTFLAGS': '-O3 -march=native', + 'DEBUGFLAGS': '-O0 -g' +} diff --git a/g/GCCcore/GCCcore-5.4.0.eb b/g/GCCcore/GCCcore-5.4.0.eb new file mode 100644 index 00000000..5b9a1748 --- /dev/null +++ b/g/GCCcore/GCCcore-5.4.0.eb @@ -0,0 +1,54 @@ +easyblock = 'EB_GCC' + +name = 'GCCcore' +version = '5.4.0' + +homepage = 'http://gcc.gnu.org/' +description = """The GNU Compiler Collection includes front ends for C, C++, Objective-C, Fortran, Java, and Ada, + as well as libraries for these languages (libstdc++, libgcj,...).""" + +toolchain = {'name': 'dummy', 'version': ''} + +mpfr_version = '3.1.4' + +source_urls = [ + 'http://ftpmirror.gnu.org/gcc/gcc-%(version)s', # GCC auto-resolving HTTP mirror + 'http://ftpmirror.gnu.org/gmp', # idem for GMP + 'http://ftpmirror.gnu.org/mpfr', # idem for MPFR + 'http://www.multiprecision.org/mpc/download', # MPC official + 'ftp://gcc.gnu.org/pub/gcc/infrastructure/', # GCC dependencies + 'http://gcc.cybermirror.org/infrastructure/', # HTTP mirror for GCC dependencies +] + +sources = [ + 'gcc-%(version)s.tar.bz2', + 'gmp-6.1.0.tar.bz2', + 'mpfr-%s.tar.gz' % mpfr_version, + 'mpc-1.0.3.tar.gz', + 'isl-0.15.tar.bz2', +] + +patches = [('mpfr-%s-allpatches-20160601.patch' % mpfr_version, '../mpfr-%s' % mpfr_version)] + +builddependencies = [ + ('binutils', '2.26'), + ('M4', '1.4.17'), +] + +checksums = [ + '4c626ac2a83ef30dfb9260e6f59c2b30', # gcc-5.4.0.tar.bz2 + '86ee6e54ebfc4a90b643a65e402c4048', # gmp-6.1.0.tar.bz2 + '482ab3c120ffc959f631b4ba9ec59a46', # mpfr-3.1.4.tar.gz + 'd6a1d5f8ddea3abd2cc3e98f58352d26', # mpc-1.0.3.tar.gz + '8428efbbc6f6e2810ce5c1ba73ecf98c', # isl-0.15.tar.bz2 + '22164533561142b70fda09af4e775acc', # mpfr-3.1.4-allpatches-20150603.patch +] + +languages = ['c', 'c++', 'fortran'] + +withisl = True + +# building GCC sometimes fails if make parallelism is too high, so let's limit it +maxparallel = 4 + +moduleclass = 'compiler' diff --git a/g/GCCcore/GCCcore-6.1.0.eb b/g/GCCcore/GCCcore-6.1.0.eb new file mode 100644 index 00000000..603dbd6c --- /dev/null +++ b/g/GCCcore/GCCcore-6.1.0.eb @@ -0,0 +1,55 @@ +easyblock = 'EB_GCC' + +name = 'GCCcore' +version = '6.1.0' + +homepage = 'http://gcc.gnu.org/' +description = """The GNU Compiler Collection includes front ends for C, C++, Objective-C, Fortran, Java, and Ada, + as well as libraries for these languages (libstdc++, libgcj,...).""" + +toolchain = {'name': 'dummy', 'version': ''} + +mpfr_version = '3.1.4' + +source_urls = [ + 'http://ftpmirror.gnu.org/gmp', # idem for GMP + 'http://ftpmirror.gnu.org/mpfr', # idem for MPFR + 'http://www.multiprecision.org/mpc/download', # MPC official + 'ftp://gcc.gnu.org/pub/gcc/infrastructure/', # GCC dependencies + 'http://gcc.cybermirror.org/infrastructure/', # HTTP mirror for GCC dependencies + 'http://ftpmirror.gnu.org/gcc/gcc-%(version)s', # GCC auto-resolving HTTP mirror + 'https://ftp.gnu.org/gnu/gcc/gcc-%(version)s/', # Alternative GCC + 'http://isl.gforge.inria.fr/', # original HTTP source for ISL +] + +sources = [ + 'gcc-%(version)s.tar.bz2', + 'gmp-6.1.1.tar.bz2', + 'mpfr-%s.tar.bz2' % mpfr_version, + 'mpc-1.0.3.tar.gz', + 'isl-0.16.1.tar.bz2', +] + +builddependencies = [ + ('M4', '1.4.17'), + ('binutils', '2.27'), +] + +patches = [ + ('mpfr-%s-allpatches-20160804.patch' % mpfr_version, '../mpfr-%s' % mpfr_version), + ('%s-%s_fix-find-isl.patch' % (name, version)), +] + +checksums = [ + '8fb6cb98b8459f5863328380fbf06bd1', # gcc-6.1.0.tar.bz2 + '4c175f86e11eb32d8bf9872ca3a8e11d', # gmp-6.1.1.tar.bz2 + 'b8a2f6b0e68bef46e53da2ac439e1cf4', # mpfr-3.1.4.tar.gz + 'd6a1d5f8ddea3abd2cc3e98f58352d26', # mpc-1.0.3.tar.gz + 'ac1f25a0677912952718a51f5bc20f32', # isl-0.16.1.tar.bz2 +] + +languages = ['c', 'c++', 'fortran'] + +withisl = True + +moduleclass = 'compiler' diff --git a/g/GCCcore/GCCcore-6.2.0.eb b/g/GCCcore/GCCcore-6.2.0.eb new file mode 100644 index 00000000..be485430 --- /dev/null +++ b/g/GCCcore/GCCcore-6.2.0.eb @@ -0,0 +1,66 @@ +easyblock = 'EB_GCC' + +name = 'GCCcore' +version = '6.2.0' + +homepage = 'http://gcc.gnu.org/' +description = """The GNU Compiler Collection includes front ends for C, C++, Objective-C, Fortran, Java, and Ada, + as well as libraries for these languages (libstdc++, libgcj,...).""" + +toolchain = {'name': 'dummy', 'version': ''} + +mpfr_version = '3.1.4' + +source_urls = [ + 'http://ftpmirror.gnu.org/gcc/gcc-%(version)s', # GCC auto-resolving HTTP mirror + 'http://ftpmirror.gnu.org/gmp', # idem for GMP + 'http://ftpmirror.gnu.org/mpfr', # idem for MPFR + 'http://www.multiprecision.org/mpc/download', # MPC official + 'ftp://gcc.gnu.org/pub/gcc/infrastructure/', # GCC dependencies + 'http://gcc.cybermirror.org/infrastructure/', # HTTP mirror for GCC dependencies + 'http://isl.gforge.inria.fr/', # original HTTP source for ISL +] + +sources = [ + 'gcc-%(version)s.tar.bz2', + 'gmp-6.1.1.tar.bz2', + 'mpfr-%s.tar.bz2' % mpfr_version, + 'mpc-1.0.3.tar.gz', + 'isl-0.16.1.tar.bz2', +] + +builddependencies = [ + ('M4', '1.4.17'), + ('binutils', '2.27'), +] + +patches = [ + ('mpfr-%s-allpatches-20160804.patch' % mpfr_version, '../mpfr-%s' % mpfr_version), + '%(name)s-%(version)s-fix-find-isl.patch', +] + +checksums = [ + '9768625159663b300ae4de2f4745fcc4', # gcc-6.2.0.tar.bz2 + '4c175f86e11eb32d8bf9872ca3a8e11d', # gmp-6.1.1.tar.bz2 + 'b8a2f6b0e68bef46e53da2ac439e1cf4', # mpfr-3.1.4.tar.gz + 'd6a1d5f8ddea3abd2cc3e98f58352d26', # mpc-1.0.3.tar.gz + 'ac1f25a0677912952718a51f5bc20f32', # isl-0.16.1.tar.bz2 +] + +languages = ['c', 'c++', 'fortran'] + +withisl = True + +moduleclass = 'compiler' + +# Salomon specific optimalization +modextravars = { + 'CC': '%(installdir)s/bin/gcc', + 'CXX': '%(installdir)s/bin/g++', + 'F90': '%(installdir)s/bin/gfortran', + 'F77': '%(installdir)s/bin/gfortran', + 'FC': '%(installdir)s/bin/gfortran', + 'F9X': '%(installdir)s/bin/gfortran', + 'OPTFLAGS': '-O3 -march=native', + 'DEBUGFLAGS': '-O0 -g' +} diff --git a/g/GCCcore/GCCcore-6.3.0.eb b/g/GCCcore/GCCcore-6.3.0.eb new file mode 100644 index 00000000..86c90d40 --- /dev/null +++ b/g/GCCcore/GCCcore-6.3.0.eb @@ -0,0 +1,66 @@ +easyblock = 'EB_GCC' + +name = 'GCCcore' +version = '6.3.0' + +homepage = 'http://gcc.gnu.org/' +description = """The GNU Compiler Collection includes front ends for C, C++, Objective-C, Fortran, Java, and Ada, + as well as libraries for these languages (libstdc++, libgcj,...).""" + +toolchain = {'name': 'dummy', 'version': ''} + +mpfr_version = '3.1.5' + +source_urls = [ + 'http://ftpmirror.gnu.org/gcc/gcc-%(version)s', # GCC auto-resolving HTTP mirror + 'http://ftpmirror.gnu.org/gmp', # idem for GMP + 'http://ftpmirror.gnu.org/mpfr', # idem for MPFR + 'http://www.multiprecision.org/mpc/download', # MPC official + 'ftp://gcc.gnu.org/pub/gcc/infrastructure/', # GCC dependencies + 'http://gcc.cybermirror.org/infrastructure/', # HTTP mirror for GCC dependencies + 'http://isl.gforge.inria.fr/', # original HTTP source for ISL +] + +sources = [ + 'gcc-%(version)s.tar.bz2', + 'gmp-6.1.1.tar.bz2', + 'mpfr-%s.tar.bz2' % mpfr_version, + 'mpc-1.0.3.tar.gz', + 'isl-0.16.1.tar.bz2', +] + +builddependencies = [ + ('M4', '1.4.18'), + ('binutils', '2.27'), +] + +patches = [ + ('mpfr-%s-allpatches-20161215.patch' % mpfr_version, '../mpfr-%s' % mpfr_version), + 'GCCcore-6.2.0-fix-find-isl.patch', +] + +checksums = [ + '677a7623c7ef6ab99881bc4e048debb6', # gcc-6.3.0.tar.bz2 + '4c175f86e11eb32d8bf9872ca3a8e11d', # gmp-6.1.1.tar.bz2 + 'b1d23a55588e3b2a13e3be66bc69fd8d', # mpfr-3.1.5.tar.gz + 'd6a1d5f8ddea3abd2cc3e98f58352d26', # mpc-1.0.3.tar.gz + 'ac1f25a0677912952718a51f5bc20f32', # isl-0.16.1.tar.bz2 +] + +languages = ['c', 'c++', 'fortran'] + +modextravars = { + 'CC': '%(installdir)s/bin/gcc', + 'CXX': '%(installdir)s/bin/g++', + 'F90': '%(installdir)s/bin/gfortran', + 'F77': '%(installdir)s/bin/gfortran', + 'FC': '%(installdir)s/bin/gfortran', + 'F9X': '%(installdir)s/bin/gfortran', + 'OPTFLAGS': '-O3 -march=native', + 'DEBUGFLAGS': '-O0 -g' +} + + +withisl = True + +moduleclass = 'compiler' diff --git a/g/GDAL/GDAL-1.9.2-foss-2015g.eb b/g/GDAL/GDAL-1.9.2-foss-2015g.eb new file mode 100644 index 00000000..2481f727 --- /dev/null +++ b/g/GDAL/GDAL-1.9.2-foss-2015g.eb @@ -0,0 +1,24 @@ +easyblock = 'ConfigureMake' + +name = 'GDAL' +version = '1.9.2' + +homepage = 'http://www.gdal.org/' +description = """GDAL is a translator library for raster geospatial data formats that is released under an X/MIT style + Open Source license by the Open Source Geospatial Foundation. As a library, it presents a single abstract data model + to the calling application for all supported formats. It also comes with a variety of useful commandline utilities for + data translation and processing.""" + +toolchain = {'name': 'foss', 'version': '2015g'} + +source_urls = ['http://download.osgeo.org/gdal/'] +sources = [SOURCELOWER_TAR_GZ] + +dependencies = [('zlib', '1.2.8')] + +sanity_check_paths = { + 'files': ['lib/libgdal.so', 'lib/libgdal.a'], + 'dirs': ['bin', 'include'] +} + +moduleclass = 'data' diff --git a/g/GDAL/GDAL-2.0.2-intel-2017.00.eb b/g/GDAL/GDAL-2.0.2-intel-2017.00.eb new file mode 100644 index 00000000..123dd889 --- /dev/null +++ b/g/GDAL/GDAL-2.0.2-intel-2017.00.eb @@ -0,0 +1,29 @@ +easyblock = 'ConfigureMake' + +name = 'GDAL' +version = '2.0.2' + +homepage = 'http://www.gdal.org/' +description = """GDAL is a translator library for raster geospatial data formats that is released under an X/MIT style + Open Source license by the Open Source Geospatial Foundation. As a library, it presents a single abstract data model + to the calling application for all supported formats. It also comes with a variety of useful commandline utilities for + data translation and processing.""" + +toolchain = {'name': 'intel', 'version': '2017.00'} + +source_urls = ['http://download.osgeo.org/gdal/%(version)s/'] +sources = [SOURCELOWER_TAR_XZ] + +dependencies = [ + ('netCDF', '4.3.3.1'), + ('expat', '2.1.0'), + ('libxml2', '2.9.3'), + ('zlib', '1.2.8'), +] + +sanity_check_paths = { + 'files': ['lib/libgdal.%s' % SHLIB_EXT, 'lib/libgdal.a'], + 'dirs': ['bin', 'include'] +} + +moduleclass = 'data' diff --git a/g/GDAL/GDAL-2.1.0-foss-2015g.eb b/g/GDAL/GDAL-2.1.0-foss-2015g.eb new file mode 100644 index 00000000..6bc7e486 --- /dev/null +++ b/g/GDAL/GDAL-2.1.0-foss-2015g.eb @@ -0,0 +1,31 @@ +easyblock = 'ConfigureMake' + +name = 'GDAL' +version = "2.1.0" + +homepage = 'http://www.gdal.org/' +description = """GDAL is a translator library for raster geospatial data formats that is released under an X/MIT style + Open Source license by the Open Source Geospatial Foundation. As a library, it presents a single abstract data model + to the calling application for all supported formats. It also comes with a variety of useful commandline utilities for + data translation and processing.""" + +toolchain = {'name': 'foss', 'version': '2015g'} + +source_urls = ['http://download.osgeo.org/gdal/'] +sources = [SOURCELOWER_TAR_GZ] + + +dependencies = [('zlib', '1.2.8'),] + +configopts = '--with-python=/usr/bin/python ' + +# to avoid libtool error, http://www.michael-joost.de/gdal_install.html +preconfigopts = 'unset CC CPP CXX &&' +prebuildopts = 'unset CC CPP CXX &&' + +sanity_check_paths = { + 'files': ['lib/libgdal.so', 'lib/libgdal.a'], + 'dirs': ['bin', 'include'] +} + +moduleclass = 'data' diff --git a/g/GDAL/GDAL-2.1.0-intel-2015b.eb b/g/GDAL/GDAL-2.1.0-intel-2015b.eb new file mode 100644 index 00000000..6fddb171 --- /dev/null +++ b/g/GDAL/GDAL-2.1.0-intel-2015b.eb @@ -0,0 +1,25 @@ +easyblock = 'ConfigureMake' + +name = 'GDAL' +version = "2.1.0" + +homepage = 'http://www.gdal.org/' +description = """GDAL is a translator library for raster geospatial data formats that is released under an X/MIT style + Open Source license by the Open Source Geospatial Foundation. As a library, it presents a single abstract data model + to the calling application for all supported formats. It also comes with a variety of useful commandline utilities for + data translation and processing.""" + +toolchain = {'name': 'intel', 'version': '2015b'} + +source_urls = ['http://download.osgeo.org/gdal/'] +sources = [SOURCELOWER_TAR_GZ] + + +dependencies = [('zlib', '1.2.8'),] + +sanity_check_paths = { + 'files': ['lib/libgdal.%s' % SHLIB_EXT, 'lib/libgdal.a'], + 'dirs': ['bin', 'include'] +} + +moduleclass = 'data' diff --git a/g/GEM-library/GEM-library-20130406-045632_pre-release-3_Linux-x86_64.eb b/g/GEM-library/GEM-library-20130406-045632_pre-release-3_Linux-x86_64.eb new file mode 100644 index 00000000..009df93c --- /dev/null +++ b/g/GEM-library/GEM-library-20130406-045632_pre-release-3_Linux-x86_64.eb @@ -0,0 +1,45 @@ +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# Author: Pablo Escobar Lopez +# Swiss Institute of Bioinformatics +# Biozentrum - University of Basel + +easyblock = "MakeCp" + +name = 'GEM-library' +version = '20130406-045632' +versionsuffix = '_pre-release-3_Linux-x86_64' + +homepage = 'http://algorithms.cnag.cat/wiki/The_GEM_library' +description = """ Next-generation sequencing platforms (Illumina/Solexa, ABI/SOLiD, etc.) + call for powerful and very optimized tools to index/analyze huge genomes. The GEM library + strives to be a true "next-generation" tool for handling any kind of sequence data, offering + state-of-the-art algorithms and data structures specifically tailored to this demanding task. + At the moment, efficient indexing and searching algorithms based on the Burrows-Wheeler + transform (BWT) have been implemented. The library core is written in C for maximum speed, + with concise interfaces to higher-level programming languages like OCaml and Python. + Many high-performance standalone programs (mapper, splice mapper, etc.) are provided along + with the library; in general, new algorithms and tools can be easily implemented on the top of it. """ + +toolchain = {'name': 'dummy', 'version': 'dummy'} + +source_urls = [('http://sourceforge.net/projects/gemlibrary/files/gem-library/Binary%20pre-release%203/', 'download')] +# core_i3 is the recommended version by developers. Better performance +sources = ['GEM-binaries-Linux-x86_64-core_i3-20130406-045632.tbz2'] +# if core_i3 version doesn't work for you, try core_2 version below +#sources = ['GEM-binaries-Linux-x86_64-core_2-20130406-045632.tbz2'] + +# only Linux_x86-64 binaries are provided so we skip build_step. +# We just use the MakeCp block to copy each file to the right destination folder (mainly the man files) +skipsteps = ['build'] + +# glob support in MakeCp easyblock is required so EasyBuild-1.12 or higher is required +easybuild_version = '1.12.0' + +files_to_copy = [(["man/*"], 'man/man1/'), "bin"] + +sanity_check_paths = { + 'files': ["bin/gem-indexer", "bin/gem-mapper", "bin/gem-rna-mapper"], + 'dirs': ["man"], +} + +moduleclass = 'bio' diff --git a/g/GEOS/GEOS-3.5.0-foss-2015a-Python-2.7.11.eb b/g/GEOS/GEOS-3.5.0-foss-2015a-Python-2.7.11.eb new file mode 100644 index 00000000..3053b75e --- /dev/null +++ b/g/GEOS/GEOS-3.5.0-foss-2015a-Python-2.7.11.eb @@ -0,0 +1,31 @@ +easyblock = 'ConfigureMake' + +name = 'GEOS' +version = '3.5.0' + +homepage = 'http://trac.osgeo.org/geos' +description = """GEOS (Geometry Engine - Open Source) is a C++ port of the Java Topology Suite (JTS)""" + +toolchain = {'name': 'foss', 'version': '2015a'} + +source_urls = ['http://download.osgeo.org/geos/'] +sources = [SOURCELOWER_TAR_BZ2] + +pyver = '2.7.11' +pyshortver = '.'.join(pyver.split('.')[0:2]) +versionsuffix = '-Python-%s' % pyver + +dependencies = [('Python', pyver)] + +builddependencies = [('SWIG', '3.0.8', versionsuffix)] + +configopts = '--enable-python' + +modextrapaths = {'PYTHONPATH': 'lib/python%s/site-packages' % pyshortver} + +sanity_check_paths = { + 'files': ['bin/geos-config', 'lib/libgeos.%s' % SHLIB_EXT, 'lib/libgeos.a', 'include/geos.h'], + 'dirs': ['lib/python%s/site-packages/geos' % pyshortver] +} + +moduleclass = 'math' diff --git a/g/GEOS/GEOS-3.5.0-foss-2015g.eb b/g/GEOS/GEOS-3.5.0-foss-2015g.eb new file mode 100644 index 00000000..b88f593e --- /dev/null +++ b/g/GEOS/GEOS-3.5.0-foss-2015g.eb @@ -0,0 +1,14 @@ +easyblock = 'ConfigureMake' + +name = 'GEOS' +version = '3.5.0' + +homepage = 'http://trac.osgeo.org/geos' +description = """GEOS (Geometry Engine - Open Source) is a C++ port of the Java Topology Suite (JTS)""" + +source_urls = [ 'http://download.osgeo.org/geos/' ] +sources = [SOURCELOWER_TAR_BZ2] + +toolchain = {'name': 'foss', 'version': '2015g'} + +moduleclass = 'math' diff --git a/g/GLM/GLM-0.9.7.2-intel-2017a.eb b/g/GLM/GLM-0.9.7.2-intel-2017a.eb new file mode 100644 index 00000000..03bf8321 --- /dev/null +++ b/g/GLM/GLM-0.9.7.2-intel-2017a.eb @@ -0,0 +1,22 @@ +easyblock = 'CMakeMake' + +name = 'GLM' +version = '0.9.7.2' + +homepage = 'https://github.com/g-truc/glm' +description = """OpenGL Mathematics (GLM) is a header only C++ mathematics library for graphics software based on + the OpenGL Shading Language (GLSL) specifications.""" + +toolchain = {'name': 'intel', 'version': '2017a'} + +source_urls = ['https://github.com/g-truc/glm/archive/'] +sources = ['%(version)s.tar.gz'] + +builddependencies = [('CMake', '3.7.2')] + +sanity_check_paths = { + 'files': [], + 'dirs': ['include/glm/'], +} + +moduleclass = 'lib' diff --git a/g/GLib/GLib-2.40.0-GCC-4.4.7-system.eb b/g/GLib/GLib-2.40.0-GCC-4.4.7-system.eb new file mode 100644 index 00000000..25bd3f99 --- /dev/null +++ b/g/GLib/GLib-2.40.0-GCC-4.4.7-system.eb @@ -0,0 +1,21 @@ +easyblock = 'ConfigureMake' + +name = 'GLib' +version = '2.40.0' + +homepage = 'http://www.gtk.org/' +description = """GLib is one of the base libraries of the GTK+ project""" + +toolchain = {'name': 'GCC', 'version': '4.4.7-system'} +toolchainopts = {'optarch': True, 'pic': True} + +source_urls = ['http://ftp.gnome.org/pub/gnome/sources/glib/%(version_major_minor)s/'] +sources = ['glib-%(version)s.tar.xz'] + +dependencies = [ + ('libffi', '3.2.1'), + ('gettext', '0.19.4'), + ('libxml2', '2.9.2'), +] + +moduleclass = 'vis' diff --git a/g/GLib/GLib-2.40.0-GCC-4.9.3-binutils-2.25.eb b/g/GLib/GLib-2.40.0-GCC-4.9.3-binutils-2.25.eb new file mode 100644 index 00000000..e4a611fb --- /dev/null +++ b/g/GLib/GLib-2.40.0-GCC-4.9.3-binutils-2.25.eb @@ -0,0 +1,21 @@ +easyblock = 'ConfigureMake' + +name = 'GLib' +version = '2.40.0' + +homepage = 'http://www.gtk.org/' +description = """GLib is one of the base libraries of the GTK+ project""" + +toolchain = {'name': 'GCC', 'version': '4.9.3-binutils-2.25'} +toolchainopts = {'optarch': True, 'pic': True} + +source_urls = ['http://ftp.gnome.org/pub/gnome/sources/glib/%(version_major_minor)s/'] +sources = ['glib-%(version)s.tar.xz'] + +dependencies = [ + ('libffi', '3.2.1'), + ('gettext', '0.19.4'), + ('libxml2', '2.9.2'), +] + +moduleclass = 'vis' diff --git a/g/GLib/GLib-2.40.0-foss-2015b.eb b/g/GLib/GLib-2.40.0-foss-2015b.eb new file mode 100644 index 00000000..1f349e10 --- /dev/null +++ b/g/GLib/GLib-2.40.0-foss-2015b.eb @@ -0,0 +1,22 @@ +# Built with EasyBuild version 2.1.1 on 2015-07-07_13-08-51 +easyblock = 'ConfigureMake' + +name = 'GLib' +version = '2.40.0' + +homepage = 'http://www.gtk.org/' +description = """GLib is one of the base libraries of the GTK+ project""" + +toolchain = {'name': 'foss', 'version': '2015b'} +toolchainopts = {'optarch': True, 'pic': True} + +source_urls = ['http://ftp.gnome.org/pub/gnome/sources/glib/%(version_major_minor)s/'] +sources = ['glib-%(version)s.tar.xz'] + +dependencies = [ + ('libffi', '3.0.13'), + ('gettext', '0.19.2'), +] +builddependencies = [('Python', '2.7.9')] + +moduleclass = 'vis' diff --git a/g/GLib/GLib-2.40.0-foss-2015g.eb b/g/GLib/GLib-2.40.0-foss-2015g.eb new file mode 100644 index 00000000..85c4146f --- /dev/null +++ b/g/GLib/GLib-2.40.0-foss-2015g.eb @@ -0,0 +1,22 @@ +# Built with EasyBuild version 2.1.1 on 2015-07-07_13-08-51 +easyblock = 'ConfigureMake' + +name = 'GLib' +version = '2.40.0' + +homepage = 'http://www.gtk.org/' +description = """GLib is one of the base libraries of the GTK+ project""" + +toolchain = {'name': 'foss', 'version': '2015g'} +toolchainopts = {'optarch': True, 'pic': True} + +source_urls = ['http://ftp.gnome.org/pub/gnome/sources/glib/%(version_major_minor)s/'] +sources = ['glib-%(version)s.tar.xz'] + +dependencies = [ + ('libffi', '3.0.13'), + ('gettext', '0.19.2'), +] +builddependencies = [('Python', '2.7.9')] + +moduleclass = 'vis' diff --git a/g/GLib/GLib-2.40.0-intel-2015b.eb b/g/GLib/GLib-2.40.0-intel-2015b.eb new file mode 100644 index 00000000..6843fa03 --- /dev/null +++ b/g/GLib/GLib-2.40.0-intel-2015b.eb @@ -0,0 +1,22 @@ +# Built with EasyBuild version 2.1.1 on 2015-07-07_13-08-51 +easyblock = 'ConfigureMake' + +name = 'GLib' +version = '2.40.0' + +homepage = 'http://www.gtk.org/' +description = """GLib is one of the base libraries of the GTK+ project""" + +toolchain = {'name': 'intel', 'version': '2015b'} +toolchainopts = {'optarch': True, 'pic': True} + +source_urls = ['http://ftp.gnome.org/pub/gnome/sources/glib/%(version_major_minor)s/'] +sources = ['glib-%(version)s.tar.xz'] + +dependencies = [ + ('libffi', '3.1'), + ('gettext', '0.19.2'), +] +builddependencies = [('Python', '2.7.8')] + +moduleclass = 'vis' diff --git a/g/GLib/GLib-2.48.0-foss-2016a.eb b/g/GLib/GLib-2.48.0-foss-2016a.eb new file mode 100644 index 00000000..73ce1be6 --- /dev/null +++ b/g/GLib/GLib-2.48.0-foss-2016a.eb @@ -0,0 +1,33 @@ +easyblock = 'ConfigureMake' + +name = 'GLib' +version = '2.48.0' + +homepage = 'http://www.gtk.org/' +description = """GLib is one of the base libraries of the GTK+ project""" + +toolchain = {'name': 'foss', 'version': '2016a'} +toolchainopts = {'optarch': True, 'pic': True} + +source_urls = [FTPGNOME_SOURCE] +sources = [SOURCELOWER_TAR_XZ] + +dependencies = [ + ('libffi', '3.2.1'), + ('gettext', '0.19.7'), + ('libxml2', '2.9.3'), + ('PCRE', '8.38'), +] + +builddependencies = [('Python', '2.7.11')] + +configopts = "--disable-maintainer-mode --disable-silent-rules --disable-libelf --enable-static --enable-shared --disable-systemtap" + +postinstallcmds = ["sed -i -e 's|#!.*python|#!/usr/bin/env python|' %(installdir)s/bin/*"] + +sanity_check_paths = { + 'files': ['lib/libglib-%(version_major)s.0.a', 'lib/libglib-%%(version_major)s.0.%s' % SHLIB_EXT], + 'dirs': ['bin', 'include'], +} + +moduleclass = 'vis' diff --git a/g/GLib/GLib-2.48.0-intel-2016a.eb b/g/GLib/GLib-2.48.0-intel-2016a.eb new file mode 100644 index 00000000..918c5aec --- /dev/null +++ b/g/GLib/GLib-2.48.0-intel-2016a.eb @@ -0,0 +1,33 @@ +easyblock = 'ConfigureMake' + +name = 'GLib' +version = '2.48.0' + +homepage = 'http://www.gtk.org/' +description = """GLib is one of the base libraries of the GTK+ project""" + +toolchain = {'name': 'intel', 'version': '2016a'} +toolchainopts = {'optarch': True, 'pic': True} + +source_urls = [FTPGNOME_SOURCE] +sources = [SOURCELOWER_TAR_XZ] + +dependencies = [ + ('libffi', '3.2.1'), + ('gettext', '0.19.7'), + ('libxml2', '2.9.3'), + ('PCRE', '8.38'), +] + +builddependencies = [('Python', '2.7.11')] + +configopts = "--disable-maintainer-mode --disable-silent-rules --disable-libelf --enable-static --enable-shared --disable-systemtap" + +postinstallcmds = ["sed -i -e 's|#!.*python|#!/usr/bin/env python|' %(installdir)s/bin/*"] + +sanity_check_paths = { + 'files': ['lib/libglib-%(version_major)s.0.a', 'lib/libglib-%%(version_major)s.0.%s' % SHLIB_EXT], + 'dirs': ['bin', 'include'], +} + +moduleclass = 'vis' diff --git a/g/GLib/GLib-2.49.5-foss-2016b.eb b/g/GLib/GLib-2.49.5-foss-2016b.eb new file mode 100644 index 00000000..3e8dd8b2 --- /dev/null +++ b/g/GLib/GLib-2.49.5-foss-2016b.eb @@ -0,0 +1,33 @@ +easyblock = 'ConfigureMake' + +name = 'GLib' +version = '2.49.5' + +homepage = 'http://www.gtk.org/' +description = """GLib is one of the base libraries of the GTK+ project""" + +toolchain = {'name': 'foss', 'version': '2016b'} +toolchainopts = {'pic': True} + +source_urls = [FTPGNOME_SOURCE] +sources = [SOURCELOWER_TAR_XZ] + +dependencies = [ + ('libffi', '3.2.1'), + ('gettext', '0.19.8'), + ('libxml2', '2.9.4'), + ('PCRE', '8.39'), +] + +builddependencies = [('Python', '2.7.12')] + +configopts = "--disable-maintainer-mode --disable-silent-rules --disable-libelf --enable-static --enable-shared --disable-systemtap" + +postinstallcmds = ["sed -i -e 's|#!.*python|#!/usr/bin/env python|' %(installdir)s/bin/*"] + +sanity_check_paths = { + 'files': ['lib/libglib-%(version_major)s.0.a', 'lib/libglib-%%(version_major)s.0.%s' % SHLIB_EXT], + 'dirs': ['bin', 'include'], +} + +moduleclass = 'vis' diff --git a/g/GLib/GLib-2.49.5-intel-2016b.eb b/g/GLib/GLib-2.49.5-intel-2016b.eb new file mode 100644 index 00000000..cabfe78d --- /dev/null +++ b/g/GLib/GLib-2.49.5-intel-2016b.eb @@ -0,0 +1,33 @@ +easyblock = 'ConfigureMake' + +name = 'GLib' +version = '2.49.5' + +homepage = 'http://www.gtk.org/' +description = """GLib is one of the base libraries of the GTK+ project""" + +toolchain = {'name': 'intel', 'version': '2016b'} +toolchainopts = {'pic': True} + +source_urls = [FTPGNOME_SOURCE] +sources = [SOURCELOWER_TAR_XZ] + +dependencies = [ + ('libffi', '3.2.1'), + ('gettext', '0.19.8'), + ('libxml2', '2.9.4'), + ('PCRE', '8.39'), +] + +builddependencies = [('Python', '2.7.12')] + +configopts = "--disable-maintainer-mode --disable-silent-rules --disable-libelf --enable-static --enable-shared --disable-systemtap" + +postinstallcmds = ["sed -i -e 's|#!.*python|#!/usr/bin/env python|' %(installdir)s/bin/*"] + +sanity_check_paths = { + 'files': ['lib/libglib-%(version_major)s.0.a', 'lib/libglib-%%(version_major)s.0.%s' % SHLIB_EXT], + 'dirs': ['bin', 'include'], +} + +moduleclass = 'vis' diff --git a/g/GMAP-GSNAP/GMAP-GSNAP-2014-01-21-goolf-1.4.10.eb b/g/GMAP-GSNAP/GMAP-GSNAP-2014-01-21-goolf-1.4.10.eb new file mode 100644 index 00000000..5fbe4acc --- /dev/null +++ b/g/GMAP-GSNAP/GMAP-GSNAP-2014-01-21-goolf-1.4.10.eb @@ -0,0 +1,37 @@ +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# Author: Pablo Escobar Lopez +# Swiss Institute of Bioinformatics +# Biozentrum - University of Basel + +easyblock = 'ConfigureMake' + +name = 'GMAP-GSNAP' +version = '2014-01-21' + +homepage = 'http://research-pub.gene.com/gmap/' +description = """GMAP: A Genomic Mapping and Alignment Program for mRNA and EST Sequences + GSNAP: Genomic Short-read Nucleotide Alignment Program""" + +toolchain = {'name': 'goolf', 'version': '1.4.10'} + +# with these deps you can use standard compressed files +# to support files in gobby format take a look at README for extra dependencies +# http://research-pub.gene.com/gmap/src/README +dependencies = [ + ('bzip2', '1.0.6'), + ('zlib', '1.2.8'), +] + +source_urls = ['http://research-pub.gene.com/gmap/src/'] +sources = [SOURCELOWER_TAR_GZ] + +# you can change the MAX_READLENGTH for GSNAP with something like this. +# details in the README http://research-pub.gene.com/gmap/src/README +#configopts = 'MAX_READLENGTH=250' + +sanity_check_paths = { + 'files': ['bin/gmap', 'bin/gsnap'], + 'dirs': [], +} + +moduleclass = 'bio' diff --git a/g/GMAP-GSNAP/GMAP-GSNAP-2014-06-10-goolf-1.4.10.eb b/g/GMAP-GSNAP/GMAP-GSNAP-2014-06-10-goolf-1.4.10.eb new file mode 100644 index 00000000..6189b95f --- /dev/null +++ b/g/GMAP-GSNAP/GMAP-GSNAP-2014-06-10-goolf-1.4.10.eb @@ -0,0 +1,37 @@ +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# Author: Pablo Escobar Lopez +# Swiss Institute of Bioinformatics +# Biozentrum - University of Basel + +easyblock = 'ConfigureMake' + +name = 'GMAP-GSNAP' +version = "2014-06-10" + +homepage = 'http://research-pub.gene.com/gmap/' +description = """GMAP: A Genomic Mapping and Alignment Program for mRNA and EST Sequences + GSNAP: Genomic Short-read Nucleotide Alignment Program""" + +toolchain = {'name': 'goolf', 'version': '1.4.10'} + +# with these deps you can use standard compressed files +# to support files in gobby format take a look at README for extra dependencies +# http://research-pub.gene.com/gmap/src/README +dependencies = [ + ('bzip2', '1.0.6'), + ('zlib', '1.2.8'), +] + +source_urls = ['http://research-pub.gene.com/gmap/src/'] +sources = [SOURCELOWER_TAR_GZ] + +# you can change the MAX_READLENGTH for GSNAP with something like this. +# details in the README http://research-pub.gene.com/gmap/src/README +#configopts = 'MAX_READLENGTH=250' + +sanity_check_paths = { + 'files': ['bin/gmap', 'bin/gsnap'], + 'dirs': [], +} + +moduleclass = 'bio' diff --git a/g/GMAP-GSNAP/GMAP-GSNAP-2015-12-31.v2-foss-2015b.eb b/g/GMAP-GSNAP/GMAP-GSNAP-2015-12-31.v2-foss-2015b.eb new file mode 100644 index 00000000..db19b280 --- /dev/null +++ b/g/GMAP-GSNAP/GMAP-GSNAP-2015-12-31.v2-foss-2015b.eb @@ -0,0 +1,37 @@ +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# Author: Pablo Escobar Lopez +# Swiss Institute of Bioinformatics +# Biozentrum - University of Basel + +easyblock = 'ConfigureMake' + +name = 'GMAP-GSNAP' +version = "2015-12-31.v2" + +homepage = 'http://research-pub.gene.com/gmap/' +description = """GMAP: A Genomic Mapping and Alignment Program for mRNA and EST Sequences + GSNAP: Genomic Short-read Nucleotide Alignment Program""" + +toolchain = {'name': 'foss', 'version': '2015b'} + +source_urls = ['http://research-pub.gene.com/gmap/src/'] +sources = [SOURCELOWER_TAR_GZ] + +# with these deps you can use standard compressed files +# to support files in gobby format take a look at README for extra dependencies +# http://research-pub.gene.com/gmap/src/README +dependencies = [ + ('bzip2', '1.0.6'), + ('zlib', '1.2.8'), +] + +# you can change the MAX_READLENGTH for GSNAP with something like this. +# details in the README http://research-pub.gene.com/gmap/src/README +#configopts = 'MAX_READLENGTH=250' + +sanity_check_paths = { + 'files': ['bin/gmap', 'bin/gsnap'], + 'dirs': [], +} + +moduleclass = 'bio' diff --git a/g/GMAP-GSNAP/GMAP-GSNAP-2016-05-01-foss-2016a.eb b/g/GMAP-GSNAP/GMAP-GSNAP-2016-05-01-foss-2016a.eb new file mode 100644 index 00000000..84e054bf --- /dev/null +++ b/g/GMAP-GSNAP/GMAP-GSNAP-2016-05-01-foss-2016a.eb @@ -0,0 +1,37 @@ +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# Author: Pablo Escobar Lopez +# Swiss Institute of Bioinformatics +# Biozentrum - University of Basel + +easyblock = 'ConfigureMake' + +name = 'GMAP-GSNAP' +version = '2016-05-01' + +homepage = 'http://research-pub.gene.com/gmap/' +description = """GMAP: A Genomic Mapping and Alignment Program for mRNA and EST Sequences + GSNAP: Genomic Short-read Nucleotide Alignment Program""" + +toolchain = {'name': 'foss', 'version': '2016a'} + +source_urls = ['http://research-pub.gene.com/gmap/src/'] +sources = [SOURCELOWER_TAR_GZ] + +# with these deps you can use standard compressed files +# to support files in gobby format take a look at README for extra dependencies +# http://research-pub.gene.com/gmap/src/README +dependencies = [ + ('bzip2', '1.0.6'), + ('zlib', '1.2.8'), +] + +# you can change the MAX_READLENGTH for GSNAP with something like this. +# details in the README http://research-pub.gene.com/gmap/src/README +#configopts = 'MAX_READLENGTH=250' + +sanity_check_paths = { + 'files': ['bin/gmap', 'bin/gsnap'], + 'dirs': [], +} + +moduleclass = 'bio' diff --git a/g/GMAP-GSNAP/GMAP-GSNAP-2016-11-07-foss-2016b.eb b/g/GMAP-GSNAP/GMAP-GSNAP-2016-11-07-foss-2016b.eb new file mode 100644 index 00000000..a8ca2795 --- /dev/null +++ b/g/GMAP-GSNAP/GMAP-GSNAP-2016-11-07-foss-2016b.eb @@ -0,0 +1,40 @@ +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# Author: Pablo Escobar Lopez +# Swiss Institute of Bioinformatics +# Biozentrum - University of Basel +# 2016-11-07 modified by: +# Adam Huffman +# The Francis Crick Institute + +easyblock = 'ConfigureMake' + +name = 'GMAP-GSNAP' +version = '2016-11-07' + +homepage = 'http://research-pub.gene.com/gmap/' +description = """GMAP: A Genomic Mapping and Alignment Program for mRNA and EST Sequences + GSNAP: Genomic Short-read Nucleotide Alignment Program""" + +toolchain = {'name': 'foss', 'version': '2016b'} + +source_urls = ['http://research-pub.gene.com/gmap/src/'] +sources = [SOURCELOWER_TAR_GZ] + +# with these deps you can use standard compressed files +# to support files in gobby format take a look at README for extra dependencies +# http://research-pub.gene.com/gmap/src/README +dependencies = [ + ('bzip2', '1.0.6'), + ('zlib', '1.2.8'), +] + +# you can change the MAX_READLENGTH for GSNAP with something like this. +# details in the README http://research-pub.gene.com/gmap/src/README +#configopts = 'MAX_READLENGTH=250' + +sanity_check_paths = { + 'files': ['bin/gmap', 'bin/gsnap'], + 'dirs': [], +} + +moduleclass = 'bio' diff --git a/g/GMP/GMP-5.0.5-foss-2015b.eb b/g/GMP/GMP-5.0.5-foss-2015b.eb new file mode 100644 index 00000000..daaeb796 --- /dev/null +++ b/g/GMP/GMP-5.0.5-foss-2015b.eb @@ -0,0 +1,73 @@ +# Built with EasyBuild version 2.1.1 on 2015-09-08_14-20-28 +# Built with EasyBuild version 2.1.1 on 2015-08-17_08-18-23 +easyblock = 'ConfigureMake' + +name = 'GMP' +version = '5.0.5' + +homepage = 'http://gmplib.org/' +description = """GMP is a free library for arbitrary precision arithmetic, + operating on signed integers, rational numbers, and floating point numbers. """ + +toolchain = {'name': 'foss', 'version': '2015b'} + +sources = [SOURCELOWER_TAR_BZ2] +source_urls = [GNU_SOURCE] + +runtest = 'check' + +sanity_check_paths = { + 'files': ['lib/libgmp.%s' % SHLIB_EXT, 'include/gmp.h'], + 'dirs': [], +} + +moduleclass = 'math' + +# Build statistics +buildstats = [{ + "easybuild-framework_version": "2.1.1", + "easybuild-easyblocks_version": "2.1.1", + "timestamp": 1439792303, + "build_time": 334.88, + "install_size": 3516586, + "command_line": ['--buildpath=/easybuild/build', '--installpath=/apps', '--installpath-modules=/apps/modules', '--installpath-software=/apps', '--module-naming-scheme=IT4IModuleNamingScheme', '--modules-footer=/easybuild/templates/modules/jas02_footer.txt', '--repositorypath=/easybuild/file-repository', '--robot=/easybuild/easyconfigs-salomon/easybuild/easyconfigs', '--robot-paths=/easybuild/easyconfigs-salomon/easybuild/easyconfigs', '--sourcepath=/easybuild/sources', '--try-toolchain="[\'intel\', \'2015b\']"', 'guile-1.8.8-intel-2015a.eb'], + "modules_tool": ('EnvironmentModulesC', '/usr/bin/modulecmd', '3.2.10'), + "core_count": 28, + "cpu_model": "Intel(R) Xeon(R) CPU E5-2695 v3 @ 2.30GHz", + "cpu_speed": 2299.825, + "cpu_vendor": "Intel", + "gcc_version": "Using built-in specs.; COLLECT_GCC=gcc; COLLECT_LTO_WRAPPER=/apps/all/GCC/5.1.0-binutils-2.25/libexec/gcc/x86_64-unknown-linux-gnu/5.1.0/lto-wrapper; Target: x86_64-unknown-linux-gnu; Configured with: ../configure --enable-languages=c,c++,fortran --enable-lto --enable-checking=release --disable-multilib --enable-shared=yes --enable-static=yes --enable-threads=posix --enable-gold=default --enable-plugins --enable-ld --with-plugin-ld=ld.gold --prefix=/apps/all/GCC/5.1.0-binutils-2.25 --with-local-prefix=/apps/all/GCC/5.1.0-binutils-2.25 --enable-bootstrap --with-isl=/easybuild/build/GCC/5.1.0/dummy--binutils-2.25/gcc-5.1.0/stage2_stuff; Thread model: posix; gcc version 5.1.0 (GCC) ; ", + "glibc_version": "2.12", + "hostname": "login1", + "os_name": "centos", + "os_type": "Linux", + "os_version": "6.6", + "platform_name": "x86_64-unknown-linux", + "python_version": "2.6.6 (r266:84292, Jan 22 2014, 09:42:36) ; [GCC 4.4.7 20120313 (Red Hat 4.4.7-4)]", + "system_gcc_path": "/apps/all/GCC/5.1.0-binutils-2.25/bin/gcc", + "system_python_path": "/usr/bin/python", +}] + +buildstats.append({ + "easybuild-framework_version": "2.1.1", + "easybuild-easyblocks_version": "2.1.1", + "timestamp": 1441714828, + "build_time": 122.17, + "install_size": 3274244, + "command_line": ['--buildpath=/easybuild/build', '--installpath=/apps', '--installpath-modules=/apps/modules', '--installpath-software=/apps', '--module-naming-scheme=IT4IModuleNamingScheme', '--modules-footer=/easybuild/templates/modules/jas02_footer.txt', '--repositorypath=/easybuild/file-repository', '--robot=/easybuild/easyconfigs-salomon/easybuild/easyconfigs', '--robot-paths=/easybuild/easyconfigs-salomon/easybuild/easyconfigs', '--sourcepath=/easybuild/sources', '--try-toolchain="[\'foss\', \'2015b\']"', 'guile-1.8.8-intel-2015b.eb'], + "modules_tool": ('EnvironmentModulesC', '/usr/bin/modulecmd', '3.2.10'), + "core_count": 28, + "cpu_model": "Intel(R) Xeon(R) CPU E5-2695 v3 @ 2.30GHz", + "cpu_speed": 2300.196, + "cpu_vendor": "Intel", + "gcc_version": "Using built-in specs.; COLLECT_GCC=gcc; COLLECT_LTO_WRAPPER=/apps/all/GCC/5.1.0-binutils-2.25/libexec/gcc/x86_64-unknown-linux-gnu/5.1.0/lto-wrapper; Target: x86_64-unknown-linux-gnu; Configured with: ../configure --enable-languages=c,c++,fortran --enable-lto --enable-checking=release --disable-multilib --enable-shared=yes --enable-static=yes --enable-threads=posix --enable-gold=default --enable-plugins --enable-ld --with-plugin-ld=ld.gold --prefix=/apps/all/GCC/5.1.0-binutils-2.25 --with-local-prefix=/apps/all/GCC/5.1.0-binutils-2.25 --enable-bootstrap --with-isl=/easybuild/build/GCC/5.1.0/dummy--binutils-2.25/gcc-5.1.0/stage2_stuff; Thread model: posix; gcc version 5.1.0 (GCC) ; ", + "glibc_version": "2.12", + "hostname": "login3", + "os_name": "centos", + "os_type": "Linux", + "os_version": "6.6", + "platform_name": "x86_64-unknown-linux", + "python_version": "2.6.6 (r266:84292, Jan 22 2014, 09:42:36) ; [GCC 4.4.7 20120313 (Red Hat 4.4.7-4)]", + "system_gcc_path": "/apps/all/GCC/5.1.0-binutils-2.25/bin/gcc", + "system_python_path": "/usr/bin/python", +}) diff --git a/g/GMP/GMP-5.0.5-foss-2015g.eb b/g/GMP/GMP-5.0.5-foss-2015g.eb new file mode 100644 index 00000000..25c9975c --- /dev/null +++ b/g/GMP/GMP-5.0.5-foss-2015g.eb @@ -0,0 +1,22 @@ +easyblock = 'ConfigureMake' + +name = 'GMP' +version = '5.0.5' + +homepage = 'http://gmplib.org/' +description = """GMP is a free library for arbitrary precision arithmetic, + operating on signed integers, rational numbers, and floating point numbers. """ + +toolchain = {'name': 'foss', 'version': '2015g'} + +sources = [SOURCELOWER_TAR_BZ2] +source_urls = [GNU_SOURCE] + +runtest = 'check' + +sanity_check_paths = { + 'files': ['lib/libgmp.%s' % SHLIB_EXT, 'include/gmp.h'], + 'dirs': [], +} + +moduleclass = 'math' diff --git a/g/GMP/GMP-5.0.5-intel-2015b.eb b/g/GMP/GMP-5.0.5-intel-2015b.eb new file mode 100644 index 00000000..311a7814 --- /dev/null +++ b/g/GMP/GMP-5.0.5-intel-2015b.eb @@ -0,0 +1,48 @@ +# Built with EasyBuild version 2.1.1 on 2015-08-17_08-18-23 +easyblock = 'ConfigureMake' + +name = 'GMP' +version = '5.0.5' + +homepage = 'http://gmplib.org/' +description = """GMP is a free library for arbitrary precision arithmetic, + operating on signed integers, rational numbers, and floating point numbers. """ + +toolchain = {'name': 'intel', 'version': '2015b'} + +sources = [SOURCELOWER_TAR_BZ2] +source_urls = [GNU_SOURCE] + +runtest = 'check' + +sanity_check_paths = { + 'files': ['lib/libgmp.%s' % SHLIB_EXT, 'include/gmp.h'], + 'dirs': [], +} + +moduleclass = 'math' + +# Build statistics +buildstats = [{ + "easybuild-framework_version": "2.1.1", + "easybuild-easyblocks_version": "2.1.1", + "timestamp": 1439792303, + "build_time": 334.88, + "install_size": 3516586, + "command_line": ['--buildpath=/easybuild/build', '--installpath=/apps', '--installpath-modules=/apps/modules', '--installpath-software=/apps', '--module-naming-scheme=IT4IModuleNamingScheme', '--modules-footer=/easybuild/templates/modules/jas02_footer.txt', '--repositorypath=/easybuild/file-repository', '--robot=/easybuild/easyconfigs-salomon/easybuild/easyconfigs', '--robot-paths=/easybuild/easyconfigs-salomon/easybuild/easyconfigs', '--sourcepath=/easybuild/sources', '--try-toolchain="[\'intel\', \'2015b\']"', 'guile-1.8.8-intel-2015a.eb'], + "modules_tool": ('EnvironmentModulesC', '/usr/bin/modulecmd', '3.2.10'), + "core_count": 28, + "cpu_model": "Intel(R) Xeon(R) CPU E5-2695 v3 @ 2.30GHz", + "cpu_speed": 2299.825, + "cpu_vendor": "Intel", + "gcc_version": "Using built-in specs.; COLLECT_GCC=gcc; COLLECT_LTO_WRAPPER=/apps/all/GCC/5.1.0-binutils-2.25/libexec/gcc/x86_64-unknown-linux-gnu/5.1.0/lto-wrapper; Target: x86_64-unknown-linux-gnu; Configured with: ../configure --enable-languages=c,c++,fortran --enable-lto --enable-checking=release --disable-multilib --enable-shared=yes --enable-static=yes --enable-threads=posix --enable-gold=default --enable-plugins --enable-ld --with-plugin-ld=ld.gold --prefix=/apps/all/GCC/5.1.0-binutils-2.25 --with-local-prefix=/apps/all/GCC/5.1.0-binutils-2.25 --enable-bootstrap --with-isl=/easybuild/build/GCC/5.1.0/dummy--binutils-2.25/gcc-5.1.0/stage2_stuff; Thread model: posix; gcc version 5.1.0 (GCC) ; ", + "glibc_version": "2.12", + "hostname": "login1", + "os_name": "centos", + "os_type": "Linux", + "os_version": "6.6", + "platform_name": "x86_64-unknown-linux", + "python_version": "2.6.6 (r266:84292, Jan 22 2014, 09:42:36) ; [GCC 4.4.7 20120313 (Red Hat 4.4.7-4)]", + "system_gcc_path": "/apps/all/GCC/5.1.0-binutils-2.25/bin/gcc", + "system_python_path": "/usr/bin/python", +}] diff --git a/g/GMP/GMP-6.0.0a-GNU-5.1.0-2.25.eb b/g/GMP/GMP-6.0.0a-GNU-5.1.0-2.25.eb new file mode 100644 index 00000000..de509c3b --- /dev/null +++ b/g/GMP/GMP-6.0.0a-GNU-5.1.0-2.25.eb @@ -0,0 +1,25 @@ +easyblock = 'ConfigureMake' + +name = 'GMP' +version = '6.0.0a' + +homepage = 'http://gmplib.org/' +description = """GMP is a free library for arbitrary precision arithmetic, +operating on signed integers, rational numbers, and floating point numbers. """ + +toolchain = {'name': 'GNU', 'version': '5.1.0-2.25'} + +sources = [SOURCELOWER_TAR_BZ2] +source_urls = ['http://ftp.gnu.org/gnu/gmp'] + +# enable C++ interface +configopts = '--enable-cxx' + +runtest = 'check' + +sanity_check_paths = { + 'files': ['lib/libgmp.%s' % SHLIB_EXT, 'include/gmp.h'], + 'dirs': [], +} + +moduleclass = 'math' diff --git a/g/GMP/GMP-6.0.0a-foss-2015b.eb b/g/GMP/GMP-6.0.0a-foss-2015b.eb new file mode 100644 index 00000000..ab0d6b9b --- /dev/null +++ b/g/GMP/GMP-6.0.0a-foss-2015b.eb @@ -0,0 +1,27 @@ +easyblock = 'ConfigureMake' + +name = 'GMP' +version = '6.0.0a' + +homepage = 'http://gmplib.org/' +description = """GMP is a free library for arbitrary precision arithmetic, +operating on signed integers, rational numbers, and floating point numbers. """ + +toolchain = {'name': 'foss', 'version': '2015b'} +toolchainopts = {'pic': True, 'precise': True} + +sources = [SOURCELOWER_TAR_BZ2] +source_urls = [GNU_SOURCE] + +# enable C++ interface +configopts = '--enable-cxx' + +runtest = 'check' + +sanity_check_paths = { + 'files': ['lib/libgmp.%s' % SHLIB_EXT, 'include/gmp.h'], + 'dirs': [], +} + +moduleclass = 'math' + diff --git a/g/GMP/GMP-6.1.0-intel-2017.00.eb b/g/GMP/GMP-6.1.0-intel-2017.00.eb new file mode 100644 index 00000000..20a5fa75 --- /dev/null +++ b/g/GMP/GMP-6.1.0-intel-2017.00.eb @@ -0,0 +1,30 @@ +easyblock = 'ConfigureMake' + +name = 'GMP' +version = '6.1.0' + +homepage = 'http://gmplib.org/' +description = """GMP is a free library for arbitrary precision arithmetic, +operating on signed integers, rational numbers, and floating point numbers. """ + +toolchain = {'name': 'intel', 'version': '2017.00'} +toolchainopts = {'pic': True, 'precise': True} + +sources = [SOURCELOWER_TAR_BZ2] +source_urls = ['http://ftp.gnu.org/gnu/gmp'] + +builddependencies = [ + ('Autotools', '20150215'), +] + +# enable C++ interface +configopts = '--enable-cxx' + +runtest = 'check' + +sanity_check_paths = { + 'files': ['lib/libgmp.%s' % SHLIB_EXT, 'include/gmp.h'], + 'dirs': [], +} + +moduleclass = 'math' diff --git a/g/GMP/GMP-6.1.1-foss-2017a.eb b/g/GMP/GMP-6.1.1-foss-2017a.eb new file mode 100644 index 00000000..9f34ff8e --- /dev/null +++ b/g/GMP/GMP-6.1.1-foss-2017a.eb @@ -0,0 +1,30 @@ +easyblock = 'ConfigureMake' + +name = 'GMP' +version = '6.1.1' + +homepage = 'http://gmplib.org/' +description = """GMP is a free library for arbitrary precision arithmetic, +operating on signed integers, rational numbers, and floating point numbers. """ + +toolchain = {'name': 'foss', 'version': '2017a'} +toolchainopts = {'pic': True, 'precise': True} + +sources = [SOURCELOWER_TAR_BZ2] +source_urls = ['http://ftp.gnu.org/gnu/gmp'] + +builddependencies = [ + ('Autotools', '20150215'), +] + +# enable C++ interface +configopts = '--enable-cxx' + +runtest = 'check' + +sanity_check_paths = { + 'files': ['lib/libgmp.%s' % SHLIB_EXT, 'include/gmp.h'], + 'dirs': [], +} + +moduleclass = 'math' diff --git a/g/GMP/GMP-6.1.1-intel-2017.00.eb b/g/GMP/GMP-6.1.1-intel-2017.00.eb new file mode 100644 index 00000000..4ddda7ca --- /dev/null +++ b/g/GMP/GMP-6.1.1-intel-2017.00.eb @@ -0,0 +1,30 @@ +easyblock = 'ConfigureMake' + +name = 'GMP' +version = '6.1.1' + +homepage = 'http://gmplib.org/' +description = """GMP is a free library for arbitrary precision arithmetic, +operating on signed integers, rational numbers, and floating point numbers. """ + +toolchain = {'name': 'intel', 'version': '2017.00'} +toolchainopts = {'pic': True, 'precise': True} + +sources = [SOURCELOWER_TAR_BZ2] +source_urls = ['http://ftp.gnu.org/gnu/gmp'] + +builddependencies = [ + ('Autotools', '20150215'), +] + +# enable C++ interface +configopts = '--enable-cxx' + +runtest = 'check' + +sanity_check_paths = { + 'files': ['lib/libgmp.%s' % SHLIB_EXT, 'include/gmp.h'], + 'dirs': [], +} + +moduleclass = 'math' diff --git a/g/GMP/GMP-6.1.1-intel-2017a.eb b/g/GMP/GMP-6.1.1-intel-2017a.eb new file mode 100644 index 00000000..36dd892f --- /dev/null +++ b/g/GMP/GMP-6.1.1-intel-2017a.eb @@ -0,0 +1,30 @@ +easyblock = 'ConfigureMake' + +name = 'GMP' +version = '6.1.1' + +homepage = 'http://gmplib.org/' +description = """GMP is a free library for arbitrary precision arithmetic, +operating on signed integers, rational numbers, and floating point numbers. """ + +toolchain = {'name': 'intel', 'version': '2017a'} +toolchainopts = {'pic': True, 'precise': True} + +sources = [SOURCELOWER_TAR_BZ2] +source_urls = ['http://ftp.gnu.org/gnu/gmp'] + +builddependencies = [ + ('Autotools', '20150215'), +] + +# enable C++ interface +configopts = '--enable-cxx' + +runtest = 'check' + +sanity_check_paths = { + 'files': ['lib/libgmp.%s' % SHLIB_EXT, 'include/gmp.h'], + 'dirs': [], +} + +moduleclass = 'math' diff --git a/g/GMP/GMP-6.1.1.eb b/g/GMP/GMP-6.1.1.eb new file mode 100644 index 00000000..069aae91 --- /dev/null +++ b/g/GMP/GMP-6.1.1.eb @@ -0,0 +1,30 @@ +easyblock = 'ConfigureMake' + +name = 'GMP' +version = '6.1.1' + +homepage = 'http://gmplib.org/' +description = """GMP is a free library for arbitrary precision arithmetic, +operating on signed integers, rational numbers, and floating point numbers. """ + +toolchain = {'name': 'dummy', 'version': 'dummy'} +toolchainopts = {'pic': True, 'precise': True} + +sources = [SOURCELOWER_TAR_BZ2] +source_urls = ['http://ftp.gnu.org/gnu/gmp'] + +builddependencies = [ + ('Autotools', '20150215'), +] + +# enable C++ interface +configopts = '--enable-cxx' + +runtest = 'check' + +sanity_check_paths = { + 'files': ['lib/libgmp.%s' % SHLIB_EXT, 'include/gmp.h'], + 'dirs': [], +} + +moduleclass = 'math' diff --git a/g/GMT/GMT-5.2.1-foss-2015g.eb b/g/GMT/GMT-5.2.1-foss-2015g.eb new file mode 100644 index 00000000..aed12110 --- /dev/null +++ b/g/GMT/GMT-5.2.1-foss-2015g.eb @@ -0,0 +1,62 @@ +easyblock = "CMakeMake" + +name = "GMT" +version = "5.2.1" + +homepage = 'http://gmt.soest.hawaii.edu/' +description = """GMT is an open source collection of about 80 command-line tools for manipulating + geographic and Cartesian data sets (including filtering, trend fitting, gridding, projecting, + etc.) and producing PostScript illustrations ranging from simple x-y plots via contour maps + to artificially illuminated surfaces and 3D perspective views; the GMT supplements add another + 40 more specialized and discipline-specific tools. """ + +toolchain = {'name': 'foss', 'version': '2015g'} + +gshhg_ver = '2.3.4' +dcw_ver = '1.1.2' +sources = [ + 'gmt-%(version)s-src.tar.gz', + # coastlines, rivers, and political boundaries + 'gshhg-gmt-%s.tar.gz' % gshhg_ver, + # country polygons + 'dcw-gmt-%s.tar.gz' % dcw_ver, +] + +# 'http://gmt.soest.hawaii.edu/files/download?name=' needs flash enabled browser +source_urls = [ + 'http://ftp.soest.hawaii.edu/gmt', +# 'ftp://ftp.soest.hawaii.edu/gmt/legacy', +# 'ftp://ftp.soest.hawaii.edu/gshhg', +# 'ftp://ftp.soest.hawaii.edu/gshhg/legacy', +# 'ftp://ftp.soest.hawaii.edu/dcw', +# 'ftp://ftp.soest.hawaii.edu/dcw/legacy', +] + +#patches = ['GMT-%(version)s_netCDF.patch'] + +builddependencies = [('CMake', '3.3.1')] + +dependencies = [ + ('PCRE', '8.36'), + ('GDAL', '1.9.2'), + ('FFTW', '3.3.4', '', ('gompi', '2015g')), + ('netCDF', '4.3.2'), +# ('Ghostscript', '9.14'), +] + +preconfigopts = "export CMAKE_LIBRARY_PATH=$LD_LIBRARY_PATH && " + +configopts = '-DCOPY_GSHHG=TRUE -DGSHHG_ROOT=%%(builddir)s/gshhg-gmt-%s ' % gshhg_ver +configopts += '-DCOPY_DCW=TRUE -DDCW_ROOT=%%(builddir)s/dcw-gmt-%s ' % dcw_ver +configopts += '-DHAVE_NETCDF4=1 ' + +separate_build_dir = True + +sanity_check_paths = { + 'files': ['bin/gmt', 'bin/isogmt'], + 'dirs': [] +} + +modextrapaths = {'GMTHOME': ''} + +moduleclass = 'geo' diff --git a/g/GP2C/GP2C-0.0.9pl5-foss-2016a.eb b/g/GP2C/GP2C-0.0.9pl5-foss-2016a.eb new file mode 100644 index 00000000..e78f2ba7 --- /dev/null +++ b/g/GP2C/GP2C-0.0.9pl5-foss-2016a.eb @@ -0,0 +1,29 @@ +easyblock = 'ConfigureMake' + +name = 'GP2C' +version = '0.0.9pl5' + +homepage = 'http://pari.math.u-bordeaux.fr/pub/pari/manuals/gp2c/gp2c.html' +description = """The gp2c compiler is a package for translating GP routines into the C programming language, so that + they can be compiled and used with the PARI system or the GP calculator. +""" + +toolchain = {'name': 'foss', 'version': '2016a'} + +sources = [SOURCELOWER_TAR_GZ] +source_urls = ['http://pari.math.u-bordeaux.fr/pub/pari/GP2C/'] + +dependencies = [ + ('PARI-GP', '2.7.6'), +] + +configopts = '--with-paricfg=$EBROOTPARIMINGP/lib/pari/pari.cfg' + +runtest = 'check' + +sanity_check_paths = { + 'files': ['bin/%s' % binfile for binfile in ['gp2c', 'gp2c-run',]], + 'dirs': ['bin'] +} + +moduleclass = 'math' diff --git a/g/GPI-2/GPI-2-1.1.1-gompi-2015e-MPI.eb b/g/GPI-2/GPI-2-1.1.1-gompi-2015e-MPI.eb new file mode 100644 index 00000000..4b6f47ec --- /dev/null +++ b/g/GPI-2/GPI-2-1.1.1-gompi-2015e-MPI.eb @@ -0,0 +1,34 @@ +name = 'GPI-2' +version = '1.1.1' +versionsuffix = '-MPI' + +homepage = 'http://www.gpi-site.com/gpi2/' +description = """GPI-2 is an API for the development of scalable, +asynchronous and fault tolerant parallel applications. +""" + +toolchain = {'name': 'gompi', 'version': '2015e'} +toolchainopts = {'usempi': True} + +source_urls = [ + 'http://www.gpi-site.com/gpi2/register/' +] +sources = [SOURCELOWER_TAR_GZ] + +skipsteps = ['configure', 'install'] + +sanity_check_paths = { + 'files': ['bin/gaspi_run'], + 'dirs': ['bin', 'include', 'lib64'], +} + +moduleclass = 'vis' + +# NOTE! +# To add Xeon Phi support is necessary: +# 1. Go to the unpacked GPI-2 directory +# 2. Obtain node with Xeon Phi +# qsub -I -q qprod -l select=1:ncpus=24:accelerator=True:naccelerators=2:accelerator_model=phi7120 -A SERVICE +# 3. module add intel/2015b +# 4. run "make mic" +# 5. copy directory lib64/mic to the %installdir/lib64 diff --git a/g/GPI-2/GPI-2-1.1.1-gompi-2015e.eb b/g/GPI-2/GPI-2-1.1.1-gompi-2015e.eb new file mode 100644 index 00000000..95946fe9 --- /dev/null +++ b/g/GPI-2/GPI-2-1.1.1-gompi-2015e.eb @@ -0,0 +1,33 @@ +name = 'GPI-2' +version = '1.1.1' + +homepage = 'http://www.gpi-site.com/gpi2/' +description = """GPI-2 is an API for the development of scalable, +asynchronous and fault tolerant parallel applications. +""" + +toolchain = {'name': 'gompi', 'version': '2015e'} +toolchainopts = {'usempi': False} + +source_urls = [ + 'http://www.gpi-site.com/gpi2/register/' +] +sources = [SOURCELOWER_TAR_GZ] + +skipsteps = ['configure', 'install'] + +sanity_check_paths = { + 'files': ['bin/gaspi_run'], + 'dirs': ['bin', 'include', 'lib64'], +} + +moduleclass = 'vis' + +# NOTE! +# To add Xeon Phi support is necessary: +# 1. Go to the unpacked GPI-2 directory +# 2. Obtain node with Xeon Phi +# qsub -I -q qprod -l select=1:ncpus=24:accelerator=True:naccelerators=2:accelerator_model=phi7120 -A SERVICE +# 3. module add intel/2015b +# 4. run "make mic" +# 5. copy directory lib64/mic to the %installdir/lib64 diff --git a/g/GROMACS/GROMACS-4.6.7-CrayGNU-2015.06-mpi.eb b/g/GROMACS/GROMACS-4.6.7-CrayGNU-2015.06-mpi.eb new file mode 100644 index 00000000..7fae7e2b --- /dev/null +++ b/g/GROMACS/GROMACS-4.6.7-CrayGNU-2015.06-mpi.eb @@ -0,0 +1,45 @@ +## +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# +# Copyright:: Copyright 2012-2013 University of Luxembourg / LCSB, Cyprus Institute / CaSToRC, Ghent University +# Authors:: Wiktor Jurkowski , Fotis Georgatos , \ +# George Tsouloupas , 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-93.html +## +name = 'GROMACS' +version = '4.6.7' +versionsuffix = '-mpi' + +homepage = 'http://www.gromacs.org' +description = """GROMACS is a versatile package to perform molecular dynamics, + i.e. simulate the Newtonian equations of motion for systems with hundreds to millions of particles.""" + +toolchain = {'name': 'CrayGNU', 'version': '2015.06'} +toolchainopts = {'usempi': True} + +# eg. ftp://ftp.gromacs.org/pub/gromacs/gromacs-4.6.tar.gz +source_urls = [ + 'ftp://ftp.gromacs.org/pub/gromacs/', # GROMACS sources + 'http://gerrit.gromacs.org/download/', # regression tests sources +] +sources = [ + SOURCELOWER_TAR_GZ, + 'regressiontests-%(version)s.tar.gz', +] + +preconfigopts = "export CMAKE_LIBRARY_PATH=$CMAKE_LIBRARY_PATH:${EBROOTFFTW}/lib && " +preconfigopts += "export CMAKE_INCLUDE_PATH=$CMAKE_INCLUDE_PATH:${EBROOTFFTW}/include && " + +dependencies = [ + ('fftw/3.3.4.3', EXTERNAL_MODULE), +] + +builddependencies = [('CMake', '3.2.2')] + +runtest = False + +moduleclass = 'bio' diff --git a/g/GROMACS/GROMACS-4.6.7-CrayGNU-2015.11-mpi.eb b/g/GROMACS/GROMACS-4.6.7-CrayGNU-2015.11-mpi.eb new file mode 100644 index 00000000..83b2732f --- /dev/null +++ b/g/GROMACS/GROMACS-4.6.7-CrayGNU-2015.11-mpi.eb @@ -0,0 +1,45 @@ +## +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# +# Copyright:: Copyright 2012-2013 University of Luxembourg / LCSB, Cyprus Institute / CaSToRC, Ghent University +# Authors:: Wiktor Jurkowski , Fotis Georgatos , \ +# George Tsouloupas , 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-93.html +## +name = 'GROMACS' +version = '4.6.7' +versionsuffix = '-mpi' + +homepage = 'http://www.gromacs.org' +description = """GROMACS is a versatile package to perform molecular dynamics, + i.e. simulate the Newtonian equations of motion for systems with hundreds to millions of particles.""" + +toolchain = {'name': 'CrayGNU', 'version': '2015.11'} +toolchainopts = {'usempi': True} + +# eg. ftp://ftp.gromacs.org/pub/gromacs/gromacs-4.6.tar.gz +source_urls = [ + 'ftp://ftp.gromacs.org/pub/gromacs/', # GROMACS sources + 'http://gerrit.gromacs.org/download/', # regression tests sources +] +sources = [ + SOURCELOWER_TAR_GZ, + 'regressiontests-%(version)s.tar.gz', +] + +preconfigopts = "export CMAKE_LIBRARY_PATH=$CMAKE_LIBRARY_PATH:$EBROOTFFTW/lib && " +preconfigopts += "export CMAKE_INCLUDE_PATH=$CMAKE_INCLUDE_PATH:$EBROOTFFTW/include && " + +dependencies = [ + ('fftw/3.3.4.5', EXTERNAL_MODULE), +] + +builddependencies = [('CMake', '3.2.2')] + +runtest = False + +moduleclass = 'bio' diff --git a/g/GROMACS/GROMACS-4.6.7-CrayIntel-2015.11-mpi.eb b/g/GROMACS/GROMACS-4.6.7-CrayIntel-2015.11-mpi.eb new file mode 100644 index 00000000..350a3d6c --- /dev/null +++ b/g/GROMACS/GROMACS-4.6.7-CrayIntel-2015.11-mpi.eb @@ -0,0 +1,45 @@ +## +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# +# Copyright:: Copyright 2012-2013 University of Luxembourg / LCSB, Cyprus Institute / CaSToRC, Ghent University +# Authors:: Wiktor Jurkowski , Fotis Georgatos , \ +# George Tsouloupas , 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-93.html +## +name = 'GROMACS' +version = '4.6.7' +versionsuffix = '-mpi' + +homepage = 'http://www.gromacs.org' +description = """GROMACS is a versatile package to perform molecular dynamics, + i.e. simulate the Newtonian equations of motion for systems with hundreds to millions of particles.""" + +toolchain = {'name': 'CrayIntel', 'version': '2015.11'} +toolchainopts = {'usempi': True} + +# eg. ftp://ftp.gromacs.org/pub/gromacs/gromacs-4.6.tar.gz +source_urls = [ + 'ftp://ftp.gromacs.org/pub/gromacs/', # GROMACS sources + 'http://gerrit.gromacs.org/download/', # regression tests sources +] +sources = [ + SOURCELOWER_TAR_GZ, + 'regressiontests-%(version)s.tar.gz', +] + +preconfigopts = "export CMAKE_LIBRARY_PATH=$CMAKE_LIBRARY_PATH:$EBROOTFFTW/lib && " +preconfigopts += "export CMAKE_INCLUDE_PATH=$CMAKE_INCLUDE_PATH:$EBROOTFFTW/include && " + +dependencies = [ + ('fftw/3.3.4.5', EXTERNAL_MODULE), +] + +builddependencies = [('CMake', '3.2.2')] + +runtest = False + +moduleclass = 'bio' diff --git a/g/GROMACS/GROMACS-4.6.7-foss-2015g-hybrid-single-PLUMED.eb b/g/GROMACS/GROMACS-4.6.7-foss-2015g-hybrid-single-PLUMED.eb new file mode 100644 index 00000000..9f8f25d7 --- /dev/null +++ b/g/GROMACS/GROMACS-4.6.7-foss-2015g-hybrid-single-PLUMED.eb @@ -0,0 +1,37 @@ +name = 'GROMACS' +version = '4.6.7' +versionsuffix = '-hybrid-single-PLUMED' + +homepage = 'http://www.gromacs.org' +description = """GROMACS is a versatile package to perform molecular dynamics, + i.e. simulate the Newtonian equations of motion for systems with hundreds to millions of particles.""" + +toolchain = {'name': 'foss', 'version': '2015g'} +toolchainopts = {'openmp': True, 'usempi': True} + +patches = ['gromacs-%s-plumed-2.1.3-mpi.patch' % version] + +source_urls = ['ftp://ftp.gromacs.org/pub/gromacs/'] +sources = [SOURCELOWER_TAR_GZ] + +builddependencies = [ + ('CMake', '3.3.1'), # We are using system CMake + ('libxml2', '2.9.2'), + ('almost', '2.1.0'), + ('libmatheval', '1.1.8') +] + +configopts = ' -DGMX_GPU=OFF -DGMX_DOUBLE=OFF -DGMX_SIMD=AVX2_256 ' + +dependencies = [ + ('Boost', '1.58.0', '-Python-2.7.9'), + ('almost', '2.1.0'), + ('libmatheval', '1.1.8'), +] + +sanity_check_paths = { + 'files': [''], + 'dirs': ['bin', 'include'], +} + +moduleclass = 'bio' diff --git a/g/GROMACS/GROMACS-5.0.4-foss-2015e-hybrid-single-PLUMED.eb b/g/GROMACS/GROMACS-5.0.4-foss-2015e-hybrid-single-PLUMED.eb new file mode 100644 index 00000000..5c411f44 --- /dev/null +++ b/g/GROMACS/GROMACS-5.0.4-foss-2015e-hybrid-single-PLUMED.eb @@ -0,0 +1,26 @@ +name = 'GROMACS' +version = '5.0.4' +versionsuffix = '-hybrid-single-PLUMED' + +homepage = 'http://www.gromacs.org' +description = """GROMACS is a versatile package to perform molecular dynamics, + i.e. simulate the Newtonian equations of motion for systems with hundreds to millions of particles.""" + +toolchain = {'name': 'foss', 'version': '2015e'} +toolchainopts = {'openmp': True, 'usempi': True} + +patches = ['gromacs-5.0.4-plumed-2.1.3.patch'] + +source_urls = ['ftp://ftp.gromacs.org/pub/gromacs/'] +sources = [SOURCELOWER_TAR_GZ] + +builddependencies = [ + # ('CMake', '3.0.0'), # We are using system CMake + ('libxml2', '2.9.2', '', ('gompi', '2015e')) +] + +configopts = ' -DGMX_GPU=OFF -DGMX_DOUBLE=OFF -DGMX_SIMD=AVX_256' + +dependencies = [('Boost', '1.58.0', '-Python-2.7.9', ('gompi', '2015e'))] + +moduleclass = 'bio' diff --git a/g/GROMACS/GROMACS-5.0.4-foss-2015g-hybrid-single-PLUMED.eb b/g/GROMACS/GROMACS-5.0.4-foss-2015g-hybrid-single-PLUMED.eb new file mode 100644 index 00000000..f72cabf9 --- /dev/null +++ b/g/GROMACS/GROMACS-5.0.4-foss-2015g-hybrid-single-PLUMED.eb @@ -0,0 +1,37 @@ +name = 'GROMACS' +version = '5.0.4' +versionsuffix = '-hybrid-single-PLUMED' + +homepage = 'http://www.gromacs.org' +description = """GROMACS is a versatile package to perform molecular dynamics, + i.e. simulate the Newtonian equations of motion for systems with hundreds to millions of particles.""" + +toolchain = {'name': 'foss', 'version': '2015g'} +toolchainopts = {'openmp': True, 'usempi': True} + +patches = ['gromacs-%s-plumed-2.1.3-mpi.patch' % version] + +source_urls = ['ftp://ftp.gromacs.org/pub/gromacs/'] +sources = [SOURCELOWER_TAR_GZ] + +builddependencies = [ + ('CMake', '3.3.1'), # We are using system CMake + ('libxml2', '2.9.2'), + ('almost', '2.1.0'), + ('libmatheval', '1.1.8') +] + +configopts = ' -DGMX_GPU=OFF -DGMX_DOUBLE=OFF -DGMX_SIMD=AVX2_256 ' + +dependencies = [ + ('Boost', '1.58.0', '-Python-2.7.9'), + ('almost', '2.1.0'), + ('libmatheval', '1.1.8'), +] + +sanity_check_paths = { + 'files': ['bin/gmx_mpi'], + 'dirs': [''], +} + +moduleclass = 'bio' diff --git a/g/GROMACS/GROMACS-5.0.4-foss-2015g-hybrid-single.eb b/g/GROMACS/GROMACS-5.0.4-foss-2015g-hybrid-single.eb new file mode 100644 index 00000000..d0acac34 --- /dev/null +++ b/g/GROMACS/GROMACS-5.0.4-foss-2015g-hybrid-single.eb @@ -0,0 +1,36 @@ +name = 'GROMACS' +version = '5.0.4' +versionsuffix = '-hybrid-single' + +homepage = 'http://www.gromacs.org' +description = """GROMACS is a versatile package to perform molecular dynamics, + i.e. simulate the Newtonian equations of motion for systems with hundreds to millions of particles.""" + +toolchain = {'name': 'foss', 'version': '2015g'} +toolchainopts = {'openmp': True, 'usempi': True} + +source_urls = ['ftp://ftp.gromacs.org/pub/gromacs/'] +sources = [SOURCELOWER_TAR_GZ] + +dependencies = [ + ('almost', '2.1.0'), + ('libmatheval', '1.1.8') +] + +builddependencies = [ + ('CMake', '3.3.1'), # We are using system CMake + ('libxml2', '2.9.2'), + ('almost', '2.1.0'), + ('libmatheval', '1.1.8') +] + +configopts = ' -DGMX_GPU=OFF -DGMX_DOUBLE=OFF -DGMX_SIMD=AVX2_256 ' + +dependencies = [('Boost', '1.58.0', '-Python-2.7.9')] + +sanity_check_paths = { + 'files': ['bin/gmx_mpi'], + 'dirs': [''], +} + +moduleclass = 'bio' diff --git a/g/GROMACS/GROMACS-5.0.4-gompi-2015e-hybrid-single-PLUMED.eb b/g/GROMACS/GROMACS-5.0.4-gompi-2015e-hybrid-single-PLUMED.eb new file mode 100644 index 00000000..663369fe --- /dev/null +++ b/g/GROMACS/GROMACS-5.0.4-gompi-2015e-hybrid-single-PLUMED.eb @@ -0,0 +1,26 @@ +name = 'GROMACS' +version = '5.0.4' +versionsuffix = '-hybrid-single-PLUMED' + +homepage = 'http://www.gromacs.org' +description = """GROMACS is a versatile package to perform molecular dynamics, + i.e. simulate the Newtonian equations of motion for systems with hundreds to millions of particles.""" + +toolchain = {'name': 'gompi', 'version': '2015e'} +toolchainopts = {'openmp': True, 'usempi': True} + +patches = ['gromacs-5.0.4-plumed-2.1.3.patch'] + +source_urls = ['ftp://ftp.gromacs.org/pub/gromacs/'] +sources = [SOURCELOWER_TAR_GZ] + +builddependencies = [ + # ('CMake', '3.0.0'), # We are using system CMake + ('libxml2', '2.9.2') +] + +configopts = ' -DGMX_GPU=OFF -DGMX_DOUBLE=OFF -DGMX_SIMD=AVX2' + +dependencies = [('Boost', '1.58.0', '-Python-2.7.9')] + +moduleclass = 'bio' diff --git a/g/GROMACS/GROMACS-5.0.4-ictce-7.3.5-hybrid-single-PLUMED.eb b/g/GROMACS/GROMACS-5.0.4-ictce-7.3.5-hybrid-single-PLUMED.eb new file mode 100644 index 00000000..a455e6fe --- /dev/null +++ b/g/GROMACS/GROMACS-5.0.4-ictce-7.3.5-hybrid-single-PLUMED.eb @@ -0,0 +1,26 @@ +name = 'GROMACS' +version = '5.0.4' +versionsuffix = '-hybrid-single-PLUMED' + +homepage = 'http://www.gromacs.org' +description = """GROMACS is a versatile package to perform molecular dynamics, + i.e. simulate the Newtonian equations of motion for systems with hundreds to millions of particles.""" + +toolchain = {'name': 'ictce', 'version': '7.3.5'} +toolchainopts = {'openmp': True, 'usempi': True} + +patches = ['gromacs-5.0.4-plumed-2.1.3.patch'] + +source_urls = ['ftp://ftp.gromacs.org/pub/gromacs/'] +sources = [SOURCELOWER_TAR_GZ] + +builddependencies = [ + ('CMake', '3.0.0'), + ('libxml2', '2.9.2') +] + +configopts = ' -DGMX_GPU=OFF -DGMX_DOUBLE=OFF' + +dependencies = [('Boost', '1.58.0', '-Python-2.7.9')] + +moduleclass = 'bio' diff --git a/g/GROMACS/GROMACS-5.0.4-ictce-7.3.5-hybrid-single.eb b/g/GROMACS/GROMACS-5.0.4-ictce-7.3.5-hybrid-single.eb new file mode 100644 index 00000000..fcce8863 --- /dev/null +++ b/g/GROMACS/GROMACS-5.0.4-ictce-7.3.5-hybrid-single.eb @@ -0,0 +1,24 @@ +name = 'GROMACS' +version = '5.0.4' +versionsuffix = '-hybrid-single' + +homepage = 'http://www.gromacs.org' +description = """GROMACS is a versatile package to perform molecular dynamics, + i.e. simulate the Newtonian equations of motion for systems with hundreds to millions of particles.""" + +toolchain = {'name': 'ictce', 'version': '7.3.5'} +toolchainopts = {'openmp': True, 'usempi': True} + +source_urls = ['ftp://ftp.gromacs.org/pub/gromacs/'] +sources = [SOURCELOWER_TAR_GZ] + +builddependencies = [ + ('CMake', '3.0.0'), + ('libxml2', '2.9.2') +] + +configopts = ' -DGMX_GPU=OFF -DGMX_DOUBLE=OFF' + +dependencies = [('Boost', '1.58.0', '-Python-2.7.9')] + +moduleclass = 'bio' diff --git a/g/GROMACS/GROMACS-5.0.4-intel-2015b-hybrid-single.eb b/g/GROMACS/GROMACS-5.0.4-intel-2015b-hybrid-single.eb new file mode 100644 index 00000000..072f8a7e --- /dev/null +++ b/g/GROMACS/GROMACS-5.0.4-intel-2015b-hybrid-single.eb @@ -0,0 +1,24 @@ +name = 'GROMACS' +version = '5.0.4' +versionsuffix = '-hybrid-single' + +homepage = 'http://www.gromacs.org' +description = """GROMACS is a versatile package to perform molecular dynamics, + i.e. simulate the Newtonian equations of motion for systems with hundreds to millions of particles.""" + +toolchain = {'name': 'intel', 'version': '2015b'} +toolchainopts = {'openmp': True, 'usempi': True} + +source_urls = ['ftp://ftp.gromacs.org/pub/gromacs/'] +sources = [SOURCELOWER_TAR_GZ] + +builddependencies = [ + ('CMake', '3.0.0'), + ('libxml2', '2.9.2') +] + +configopts = ' -DGMX_GPU=OFF -DGMX_DOUBLE=OFF' + +dependencies = [('Boost', '1.58.0', '-Python-2.7.9')] + +moduleclass = 'bio' diff --git a/g/GROMACS/GROMACS-5.1.2-foss-2015g-hybrid-single-CUDA-7.5-PLUMED.eb b/g/GROMACS/GROMACS-5.1.2-foss-2015g-hybrid-single-CUDA-7.5-PLUMED.eb new file mode 100644 index 00000000..e6fb13ad --- /dev/null +++ b/g/GROMACS/GROMACS-5.1.2-foss-2015g-hybrid-single-CUDA-7.5-PLUMED.eb @@ -0,0 +1,39 @@ +name = 'GROMACS' +version = '5.1.2' +versionsuffix = '-hybrid-single-CUDA-7.5-PLUMED' + +homepage = 'http://www.gromacs.org' +description = """GROMACS is a versatile package to perform molecular dynamics, + i.e. simulate the Newtonian equations of motion for systems with hundreds to millions of particles.""" + +toolchain = {'name': 'foss', 'version': '2015g'} +toolchainopts = {'openmp': True, 'usempi': True} + +source_urls = ['ftp://ftp.gromacs.org/pub/gromacs/'] +sources = [SOURCELOWER_TAR_GZ] + +builddependencies = [ + ('CMake', '3.3.1'), # We are using system CMake + ('libxml2', '2.9.2'), + ('almost', '2.1.0'), + ('libmatheval', '1.1.8') +] + +preconfigopts = 'plumed patch -p -e gromacs-5.1.0 --shared &&' + +configopts = ' -DGMX_GPU=ON -DGMX_DOUBLE=OFF -DGMX_SIMD=AVX_256' + +dependencies = [ + ('Boost', '1.58.0', '-Python-2.7.9'), + ('almost', '2.1.0'), + ('libmatheval', '1.1.8'), + ('PLUMED', '2.3b'), + ('CUDA', '7.5.18', '', ('dummy', '')), +] + +sanity_check_paths = { + 'files': ['bin/gmx_mpi'], + 'dirs': [''], +} + +moduleclass = 'bio' diff --git a/g/GROMACS/GROMACS-5.1.2-foss-2015g-hybrid-single-PLUMED.eb b/g/GROMACS/GROMACS-5.1.2-foss-2015g-hybrid-single-PLUMED.eb new file mode 100644 index 00000000..76713adc --- /dev/null +++ b/g/GROMACS/GROMACS-5.1.2-foss-2015g-hybrid-single-PLUMED.eb @@ -0,0 +1,38 @@ +name = 'GROMACS' +version = '5.1.2' +versionsuffix = '-hybrid-single-PLUMED' + +homepage = 'http://www.gromacs.org' +description = """GROMACS is a versatile package to perform molecular dynamics, + i.e. simulate the Newtonian equations of motion for systems with hundreds to millions of particles.""" + +toolchain = {'name': 'foss', 'version': '2015g'} +toolchainopts = {'openmp': True, 'usempi': True} + +source_urls = ['ftp://ftp.gromacs.org/pub/gromacs/'] +sources = [SOURCELOWER_TAR_GZ] + +builddependencies = [ + ('CMake', '3.3.1'), # We are using system CMake + ('libxml2', '2.9.2'), + ('almost', '2.1.0'), + ('libmatheval', '1.1.8') +] + +preconfigopts = 'plumed patch -p -e gromacs-5.1.0 --shared &&' + +configopts = ' -DGMX_GPU=OFF -DGMX_DOUBLE=OFF -DGMX_SIMD=AVX2_256' + +dependencies = [ + ('Boost', '1.58.0', '-Python-2.7.9'), + ('almost', '2.1.0'), + ('libmatheval', '1.1.8'), + ('PLUMED', '2.3b') +] + +sanity_check_paths = { + 'files': ['bin/gmx_mpi'], + 'dirs': [''], +} + +moduleclass = 'bio' diff --git a/g/GROMACS/GROMACS-5.1.2-foss-2016a-hybrid-single-CUDA-7.5-PLUMED-2.3b.eb b/g/GROMACS/GROMACS-5.1.2-foss-2016a-hybrid-single-CUDA-7.5-PLUMED-2.3b.eb new file mode 100644 index 00000000..834aaba6 --- /dev/null +++ b/g/GROMACS/GROMACS-5.1.2-foss-2016a-hybrid-single-CUDA-7.5-PLUMED-2.3b.eb @@ -0,0 +1,47 @@ +## +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# +# Copyright:: Copyright 2012-2013 University of Luxembourg / LCSB, Cyprus Institute / CaSToRC, Ghent University +# Authors:: Wiktor Jurkowski , Fotis Georgatos , \ +# George Tsouloupas , 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-93.html +# +# Version 5.1.2 +# Author: Adam Huffman +# The Francis Crick Institute +## + +name = 'GROMACS' +version = '5.1.2' +versionsuffix = '-hybrid-single-CUDA-7.5-PLUMED-2.3b' + +homepage = 'http://www.gromacs.org' +description = """GROMACS is a versatile package to perform molecular dynamics, + i.e. simulate the Newtonian equations of motion for systems with hundreds to millions of particles.""" + +toolchain = {'name': 'foss', 'version': '2016a'} +toolchainopts = {'openmp': True, 'usempi': True} + +source_urls = ['ftp://ftp.gromacs.org/pub/gromacs/'] +sources = [SOURCELOWER_TAR_GZ] + +builddependencies = [ + ('CMake', '3.4.1'), + ('libxml2', '2.9.3') +] + +dependencies = [ + ('Boost', '1.61.0', '-serial'), + ('CUDA', '7.5.18', '', ('dummy', '')), + ('PLUMED', '2.3b') +] + +configopts = ' -DGMX_GPU=ON -DGMX_DOUBLE=OFF' + +preconfigopts = 'plumed patch -p -e gromacs-5.1.0 --shared &&' + +moduleclass = 'bio' diff --git a/g/GROMACS/GROMACS-5.1.2-foss-2016a-hybrid-single-PLUMED.eb b/g/GROMACS/GROMACS-5.1.2-foss-2016a-hybrid-single-PLUMED.eb new file mode 100644 index 00000000..bcc9bdf4 --- /dev/null +++ b/g/GROMACS/GROMACS-5.1.2-foss-2016a-hybrid-single-PLUMED.eb @@ -0,0 +1,38 @@ +name = 'GROMACS' +version = '5.1.4' +versionsuffix = '-hybrid-single-PLUMED' + +homepage = 'http://www.gromacs.org' +description = """GROMACS is a versatile package to perform molecular dynamics, + i.e. simulate the Newtonian equations of motion for systems with hundreds to millions of particles.""" + +toolchain = {'name': 'foss', 'version': '2016a'} +toolchainopts = {'openmp': True, 'usempi': True} + +source_urls = ['ftp://ftp.gromacs.org/pub/gromacs/'] +sources = [SOURCELOWER_TAR_GZ] + +builddependencies = [ + ('CMake', '3.3.1'), # We are using system CMake + ('libxml2', '2.9.3'), + ('almost', '2.1.0'), + ('libmatheval', '1.1.8') +] + +preconfigopts = 'plumed patch -p -e gromacs-5.1.0 --shared &&' + +configopts = ' -DGMX_GPU=ON -DGMX_DOUBLE=OFF -DGMX_SIMD=AVX_128_FMA' + +dependencies = [ + ('Boost', '1.61.0', '-serial'), + ('almost', '2.1.0'), + ('libmatheval', '1.1.8'), + ('PLUMED', '2.3.0') +] + +sanity_check_paths = { + 'files': ['bin/gmx_mpi'], + 'dirs': [''], +} + +moduleclass = 'bio' diff --git a/g/GROMACS/GROMACS-5.1.2-goolf-1.7.20-mt.eb b/g/GROMACS/GROMACS-5.1.2-goolf-1.7.20-mt.eb new file mode 100644 index 00000000..f8d1e53e --- /dev/null +++ b/g/GROMACS/GROMACS-5.1.2-goolf-1.7.20-mt.eb @@ -0,0 +1,42 @@ +## +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# +# Copyright:: Copyright 2012-2013 University of Luxembourg / LCSB, Cyprus Institute / CaSToRC, Ghent University +# Authors:: Wiktor Jurkowski , Fotis Georgatos , \ +# George Tsouloupas , 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-93.html +## +name = 'GROMACS' +version = '5.1.2' +versionsuffix = '-mt' + +homepage = 'http://www.gromacs.org' +description = """GROMACS is a versatile package to perform molecular dynamics, + i.e. simulate the Newtonian equations of motion for systems with hundreds to millions of particles.""" + +toolchain = {'name': 'goolf', 'version': '1.7.20'} +toolchainopts = {'openmp': True, 'usempi': False} + +source_urls = [ + 'ftp://ftp.gromacs.org/pub/gromacs/', + 'http://gerrit.gromacs.org/download/', +] + +sources = [ + SOURCELOWER_TAR_GZ, +# seems to have disappeared? +# 'regressiontests-5.0.2.tar.gz', +] + +builddependencies = [ + ('CMake', '2.8.12'), + ('libxml2', '2.9.3') +] + +dependencies = [('Boost', '1.53.0')] + +moduleclass = 'bio' diff --git a/g/GROMACS/GROMACS-5.1.2-intel-2015b-hybrid-single-CUDA-7.5-PLUMED-2.2.1.eb b/g/GROMACS/GROMACS-5.1.2-intel-2015b-hybrid-single-CUDA-7.5-PLUMED-2.2.1.eb new file mode 100644 index 00000000..2e5c8e65 --- /dev/null +++ b/g/GROMACS/GROMACS-5.1.2-intel-2015b-hybrid-single-CUDA-7.5-PLUMED-2.2.1.eb @@ -0,0 +1,47 @@ +## +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# +# Copyright:: Copyright 2012-2013 University of Luxembourg / LCSB, Cyprus Institute / CaSToRC, Ghent University +# Authors:: Wiktor Jurkowski , Fotis Georgatos , \ +# George Tsouloupas , 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-93.html +# +# Version 5.1.2 +# Author: Adam Huffman +# The Francis Crick Institute +## + +name = 'GROMACS' +version = '5.1.2' +versionsuffix = '-hybrid-single-CUDA-7.5-PLUMED-2.2.1' + +homepage = 'http://www.gromacs.org' +description = """GROMACS is a versatile package to perform molecular dynamics, + i.e. simulate the Newtonian equations of motion for systems with hundreds to millions of particles.""" + +toolchain = {'name': 'intel', 'version': '2015b'} +toolchainopts = {'openmp': True, 'usempi': True} + +source_urls = ['ftp://ftp.gromacs.org/pub/gromacs/'] +sources = [SOURCELOWER_TAR_GZ] + +builddependencies = [ + ('CMake', '3.4.1'), + ('libxml2', '2.9.2') +] + +dependencies = [ + ('Boost', '1.59.0'), + ('CUDA', '7.5.18', '', ('dummy', '')), + ('PLUMED', '2.2.1') +] + +configopts = ' -DGMX_GPU=ON -DGMX_DOUBLE=OFF' + +preconfigopts = 'plumed patch -p -e gromacs-5.1.0 --shared &&' + +moduleclass = 'bio' diff --git a/g/GROMACS/GROMACS-5.1.2-intel-2015b-hybrid-single-cuda.eb b/g/GROMACS/GROMACS-5.1.2-intel-2015b-hybrid-single-cuda.eb new file mode 100644 index 00000000..c812aea4 --- /dev/null +++ b/g/GROMACS/GROMACS-5.1.2-intel-2015b-hybrid-single-cuda.eb @@ -0,0 +1,44 @@ +## +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# +# Copyright:: Copyright 2012-2013 University of Luxembourg / LCSB, Cyprus Institute / CaSToRC, Ghent University +# Authors:: Wiktor Jurkowski , Fotis Georgatos , \ +# George Tsouloupas , 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-93.html +# +# Version 5.1.2 +# Author: Adam Huffman +# The Francis Crick Institute +## + +name = 'GROMACS' +version = '5.1.2' +versionsuffix = '-hybrid-single-cuda' + +homepage = 'http://www.gromacs.org' +description = """GROMACS is a versatile package to perform molecular dynamics, + i.e. simulate the Newtonian equations of motion for systems with hundreds to millions of particles.""" + +toolchain = {'name': 'intel', 'version': '2015b'} +toolchainopts = {'openmp': True, 'usempi': True} + +source_urls = ['ftp://ftp.gromacs.org/pub/gromacs/'] +sources = [SOURCELOWER_TAR_GZ] + +builddependencies = [ + ('CMake', '3.4.1'), + ('libxml2', '2.9.2') +] + +dependencies = [ + ('Boost', '1.59.0'), + ('CUDA', '7.5.18', '', ('dummy', '')) +] + +configopts = ' -DGMX_GPU=ON -DGMX_DOUBLE=OFF' + +moduleclass = 'bio' diff --git a/g/GROMACS/GROMACS-5.1.2-intel-2016a-hybrid-single-cuda.eb b/g/GROMACS/GROMACS-5.1.2-intel-2016a-hybrid-single-cuda.eb new file mode 100644 index 00000000..8cbf964d --- /dev/null +++ b/g/GROMACS/GROMACS-5.1.2-intel-2016a-hybrid-single-cuda.eb @@ -0,0 +1,44 @@ +## +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# +# Copyright:: Copyright 2012-2013 University of Luxembourg / LCSB, Cyprus Institute / CaSToRC, Ghent University +# Authors:: Wiktor Jurkowski , Fotis Georgatos , \ +# George Tsouloupas , 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-93.html +# +# Version 5.1.2 +# Author: Adam Huffman +# The Francis Crick Institute +## + +name = 'GROMACS' +version = '5.1.2' +versionsuffix = '-hybrid-single-cuda' + +homepage = 'http://www.gromacs.org' +description = """GROMACS is a versatile package to perform molecular dynamics, + i.e. simulate the Newtonian equations of motion for systems with hundreds to millions of particles.""" + +toolchain = {'name': 'intel', 'version': '2016a'} +toolchainopts = {'openmp': True, 'usempi': True} + +source_urls = ['ftp://ftp.gromacs.org/pub/gromacs/'] +sources = [SOURCELOWER_TAR_GZ] + +builddependencies = [ + ('CMake', '3.5.2'), + ('libxml2', '2.9.3') +] + +dependencies = [ + ('Boost', '1.60.0'), + ('CUDA', '7.5.18', '', ('dummy', '')) +] + +configopts = ' -DGMX_GPU=ON -DGMX_DOUBLE=OFF' + +moduleclass = 'bio' diff --git a/g/GROMACS/GROMACS-5.1.4-foss-2015g-hybrid-single-PLUMED.eb b/g/GROMACS/GROMACS-5.1.4-foss-2015g-hybrid-single-PLUMED.eb new file mode 100644 index 00000000..f72cabf9 --- /dev/null +++ b/g/GROMACS/GROMACS-5.1.4-foss-2015g-hybrid-single-PLUMED.eb @@ -0,0 +1,37 @@ +name = 'GROMACS' +version = '5.0.4' +versionsuffix = '-hybrid-single-PLUMED' + +homepage = 'http://www.gromacs.org' +description = """GROMACS is a versatile package to perform molecular dynamics, + i.e. simulate the Newtonian equations of motion for systems with hundreds to millions of particles.""" + +toolchain = {'name': 'foss', 'version': '2015g'} +toolchainopts = {'openmp': True, 'usempi': True} + +patches = ['gromacs-%s-plumed-2.1.3-mpi.patch' % version] + +source_urls = ['ftp://ftp.gromacs.org/pub/gromacs/'] +sources = [SOURCELOWER_TAR_GZ] + +builddependencies = [ + ('CMake', '3.3.1'), # We are using system CMake + ('libxml2', '2.9.2'), + ('almost', '2.1.0'), + ('libmatheval', '1.1.8') +] + +configopts = ' -DGMX_GPU=OFF -DGMX_DOUBLE=OFF -DGMX_SIMD=AVX2_256 ' + +dependencies = [ + ('Boost', '1.58.0', '-Python-2.7.9'), + ('almost', '2.1.0'), + ('libmatheval', '1.1.8'), +] + +sanity_check_paths = { + 'files': ['bin/gmx_mpi'], + 'dirs': [''], +} + +moduleclass = 'bio' diff --git a/g/GROMACS/GROMACS-5.1.4-foss-2016a-hybrid-single-PLUMED.eb b/g/GROMACS/GROMACS-5.1.4-foss-2016a-hybrid-single-PLUMED.eb new file mode 100644 index 00000000..608e9d0f --- /dev/null +++ b/g/GROMACS/GROMACS-5.1.4-foss-2016a-hybrid-single-PLUMED.eb @@ -0,0 +1,38 @@ +name = 'GROMACS' +version = '5.1.4' +versionsuffix = '-hybrid-single-PLUMED' + +homepage = 'http://www.gromacs.org' +description = """GROMACS is a versatile package to perform molecular dynamics, + i.e. simulate the Newtonian equations of motion for systems with hundreds to millions of particles.""" + +toolchain = {'name': 'foss', 'version': '2016a'} +toolchainopts = {'openmp': True, 'usempi': True} + +source_urls = ['ftp://ftp.gromacs.org/pub/gromacs/'] +sources = [SOURCELOWER_TAR_GZ] + +builddependencies = [ + ('CMake', '3.7.2', '', ('dummy', '')), # We are using system CMake + ('libxml2', '2.9.2', '', ('dummy', '')), + ('almost', '2.1.0'), + ('libmatheval', '1.1.8') +] + +preconfigopts = 'plumed patch -p -e gromacs-5.1.0 --shared &&' + +configopts = ' -DGMX_GPU=ON -DGMX_DOUBLE=OFF -DGMX_SIMD=AVX_128_FMA' + +dependencies = [ + ('Boost', '1.61.0', '-serial'), + ('almost', '2.1.0'), + ('libmatheval', '1.1.8'), + ('PLUMED', '2.3.0') +] + +#sanity_check_paths = { +# 'files': ['bin/gmx_mpi'], +# 'dirs': [''], +#} + +moduleclass = 'bio' diff --git a/g/GROMACS/GROMACS-5.1.4-foss-2017a-hybrid-single-PLUMED.eb b/g/GROMACS/GROMACS-5.1.4-foss-2017a-hybrid-single-PLUMED.eb new file mode 100644 index 00000000..f231b02b --- /dev/null +++ b/g/GROMACS/GROMACS-5.1.4-foss-2017a-hybrid-single-PLUMED.eb @@ -0,0 +1,38 @@ +name = 'GROMACS' +version = '5.1.4' +versionsuffix = '-hybrid-single-PLUMED' + +homepage = 'http://www.gromacs.org' +description = """GROMACS is a versatile package to perform molecular dynamics, + i.e. simulate the Newtonian equations of motion for systems with hundreds to millions of particles.""" + +toolchain = {'name': 'foss', 'version': '2017a'} +toolchainopts = {'openmp': True, 'usempi': True} + +source_urls = ['ftp://ftp.gromacs.org/pub/gromacs/'] +sources = [SOURCELOWER_TAR_GZ] + +#patches = ['gromacs-%s-plumed-2.3.0-mpi.patch' % version] + +builddependencies = [ + ('CMake', '3.7.2', '', ('dummy', '')), # We are using system CMake + ('libxml2', '2.9.2', '', ('dummy', '')), +] + +preconfigopts = 'plumed patch -p -e gromacs-5.1.4 --shared &&' + +configopts = ' -DGMX_GPU=OFF -DGMX_DOUBLE=OFF -DGMX_SIMD=AVX2_256' + +dependencies = [ + ('Boost', '1.61.0', '-serial'), + ('almost', '2.1.0', '', ('foss', '2016a')), + ('libmatheval', '1.1.11'), + ('PLUMED', '2.3.0') +] + +sanity_check_paths = { + 'files': ['bin/gmx_mpi'], + 'dirs': [''], +} + +moduleclass = 'bio' diff --git a/g/GROMACS/gromacs-4.6.7-plumed-2.1.3-mpi.patch b/g/GROMACS/gromacs-4.6.7-plumed-2.1.3-mpi.patch new file mode 100644 index 00000000..6583388a --- /dev/null +++ b/g/GROMACS/gromacs-4.6.7-plumed-2.1.3-mpi.patch @@ -0,0 +1,9676 @@ +diff --git a/Plumed.cmake b/Plumed.cmake +new file mode 100644 +index 0000000..01472f0 +--- /dev/null ++++ b/Plumed.cmake +@@ -0,0 +1,3 @@ ++# PLUMED: shared installation ++set(PLUMED_LOAD /apps/all/PLUMED/2.1.3-foss-2015g/lib/plumed///src/lib/libplumed.so -ldl ) ++set(PLUMED_DEPENDENCIES /apps/all/PLUMED/2.1.3-foss-2015g/lib/plumed///src/lib/libplumed.so) +diff --git a/Plumed.h b/Plumed.h +new file mode 100644 +index 0000000..16da74a +--- /dev/null ++++ b/Plumed.h +@@ -0,0 +1,494 @@ ++/* +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ++ Copyright (c) 2011-2014 The plumed team ++ (see the PEOPLE file at the root of the distribution for a list of names) ++ ++ See http://www.plumed-code.org for more information. ++ ++ This file is part of plumed, version 2. ++ ++ plumed 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, either version 3 of the License, or ++ (at your option) any later version. ++ ++ plumed 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 Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public License ++ along with plumed. If not, see . +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ */ ++#ifndef __PLUMED_wrapper_Plumed_h ++#define __PLUMED_wrapper_Plumed_h ++ ++/** ++\page ReferencePlumedH Reference for interfacing MD codes with PLUMED ++ ++ Plumed.h and Plumed.c contain the external plumed interface, which is used to ++ integrate it with MD engines. This interface is very general, and is expected ++ not to change across plumed versions. Plumed.c also implements a dummy version ++ of the interface, so as to allow a code to be fully linked even if the plumed ++ library is not available yet. These files could be directly included in the official ++ host MD distribution. In this manner, it will be sufficient to link the plumed ++ library at link time (on all systems) or directly at runtime (on system where ++ dynamic loading is enabled) to include plumed features. ++ ++ Why is Plumed.c written in C and not C++? The reason is that the resulting Plumed.o ++ needs to be linked with the host MD code immediately (whereas the rest of plumed ++ could be linked a posteriori). Imagine the MD code is written in FORTRAN: when we ++ link the Plumed.o file we would like not to need any C++ library linked. In this ++ manner, we do not need to know which C++ compiler will be used to compile plumed. ++ The C++ library is only linked to the "rest" of plumed, which actually use it. ++ Anyway, Plumed.c is written in such a manner to allow its compilation also in C++ ++ (C++ is a bit stricter than C; compatibility is checked when PlumedStatic.cpp, ++ which basically includes Plumed.c, is compiled with the C++ compiler). This will ++ allow e.g. MD codes written in C++ to just incorporate Plumed.c (maybe renamed into ++ Plumed.cpp), without the need of configuring a plain C compiler. ++ ++ Plumed interface can be used from C, C++ and FORTRAN. Everything concerning plumed ++ is hidden inside a single object type, which is described in C by a structure ++ (struct \ref plumed), in C++ by a class (PLMD::Plumed) and in FORTRAN by a ++ fixed-length string (CHARACTER(LEN=32)). Obviously C++ can use both struct ++ and class interfaces, but the first should be preferred. The reference interface ++ is the C one, whereas FORTRAN and C++ interfaces are implemented as wrappers ++ around it. ++ ++ In the C++ interface, all the routines are implemented as methods of PLMD::Plumed. ++ In the C and FORTRAN interfaces, all the routines are named plumed_*, to ++ avoid potential name clashes. Notice that the entire plumed library ++ is implemented in C++, and it is hidden inside the PLMD namespace. ++ ++ Handlers to the plumed object can be converted among different representations, ++ to allow inter-operability among languages. In C, there are tools to convert ++ to/from FORTRAN, whereas in C++ there are tools to convert to/from FORTRAN and C. ++ ++ These handlers only contain a pointer to the real structure, so that ++ when a plumed object is brought from one language to another, ++ it brings a reference to the same environment. ++ ++ Moreover, to simplify life in all cases where a single Plumed object is ++ required for the entire simulation (which covers most of the practical ++ applications with conventional MD codes) it is possible to take advantage ++ of a global interface, which is implicitly referring to a unique global instance. ++ The global object should still be initialized and finalized properly. ++ ++ The basic method to send a message to plumed is ++\verbatim ++ (C) plumed_cmd ++ (C++) PLMD::Plumed::cmd ++ (FORTRAN) PLUMED_F_CMD ++\endverbatim ++ ++ To initialize a plumed object, use: ++\verbatim ++ (C) plumed_create ++ (C++) (constructor of PLMD::Plumed) ++ (FORTRAN) PLUMED_F_CREATE ++\endverbatim ++ ++ To finalize it, use ++\verbatim ++ (C) plumed_finalize ++ (C++) (destructor of PLMD::Plumed) ++ (FORTRAN) PLUMED_F_FINALIZE ++\endverbatim ++ ++ To access to the global-object, use ++\verbatim ++ (C) plumed_gcreate, plumed_gfinalize, plumed_gcmd ++ (C++) PLMD::Plumed::gcreate, PLMD::Plumed::gfinalize, PLMD::Plumed::gcmd ++ (FORTRAN) PLUMED_F_GCREATE, PLUMED_F_GFINALIZE, PLUMED_F_GCMD ++\endverbatim ++ ++ To check if the global object has been initialized, use ++\verbatim ++ (C) plumed_ginitialized ++ (C++) PLMD::Plumed::ginitialized ++ (FORTRAN) PLUMED_F_GINITIALIZED ++\endverbatim ++ ++ To check if plumed library is available (this is useful for runtime linking), use ++\verbatim ++ (C) plumed_installed ++ (C++) PLMD::Plumed::installed ++ (FORTRAN) PLUMED_F_INSTALLED ++\endverbatim ++ ++ To convert handlers use ++\verbatim ++ (C) plumed_c2f (C to FORTRAN) ++ (C) plumed_f2c (FORTRAN to C) ++ (C++) Plumed(plumed) constructor (C to C++) ++ (C++) operator plumed() cast (C++ to C) ++ (C++) Plumed(char*) constructor (FORTRAN to C++) ++ (C++) toFortran(char*) (C++ to FORTRAN) ++\endverbatim ++ ++\verbatim ++ FORTRAN interface ++ SUBROUTINE PLUMED_F_INSTALLED(i) ++ INTEGER, INTENT(OUT) :: i ++ SUBROUTINE PLUMED_F_GINITIALIZED(i) ++ INTEGER, INTENT(OUT) :: i ++ SUBROUTINE PLUMED_F_GCREATE() ++ SUBROUTINE PLUMED_F_GCMD(key,val) ++ CHARACTER(LEN=*), INTENT(IN) :: key ++ UNSPECIFIED_TYPE, INTENT(INOUT) :: val(*) ++ SUBROUTINE PLUMED_F_GFINALIZE() ++ SUBROUTINE PLUMED_F_GLOBAL(p) ++ CHARACTER(LEN=32), INTENT(OUT) :: p ++ SUBROUTINE PLUMED_F_CREATE(p) ++ CHARACTER(LEN=32), INTENT(OUT) :: p ++ SUBROUTINE PLUMED_F_CMD(p,key,val) ++ CHARACTER(LEN=32), INTENT(IN) :: p ++ CHARACTER(LEN=*), INTENT(IN) :: key ++ UNSPECIFIED_TYPE, INTENT(INOUT) :: val(*) ++ SUBROUTINE PLUMED_F_FINALIZE(p) ++ CHARACTER(LEN=32), INTENT(IN) :: p ++\endverbatim ++ ++ The main routine is "cmd", which accepts two arguments: ++ key is a string containing the name of the command ++ val is the argument. it is declared const so as to use allow passing const objects, but in practice plumed ++ is going to modify val in several cases (using a const_cast). ++ In some cases val can be omitted: just pass a NULL pointer (in C++, val is optional and can be omitted). ++ The set of possible keys is the real API of the plumed library, and will be expanded with time. ++ New commands will be added, but backward compatibility will be retained as long as possible. ++ ++ To pass plumed a callback function use the following syntax (not available in FORTRAN yet) ++\verbatim ++ plumed_function_holder ff; ++ ff.p=your_function; ++ plumed_cmd(plumed,"xxxx",&ff); ++\endverbatim ++ (this is passing the your_function() function to the "xxxx" command) ++*/ ++ ++#ifdef __cplusplus ++ extern "C" { ++#endif ++ ++/* Generic function pointer */ ++typedef void (*plumed_function_pointer)(void); ++ ++/** ++ \brief Holder for function pointer. ++ ++ To pass plumed a callback function use the following syntax: ++\verbatim ++ plumed_function_holder ff; ++ ff.p=your_function; ++ plumed_cmd(plumed,"xxxx",&ff); ++\endverbatim ++ (this is going to pass the your_function() function to the "xxxx" command) ++*/ ++ ++typedef struct { ++ plumed_function_pointer p; ++} plumed_function_holder; ++ ++/** ++ \brief Main plumed object ++ ++ This is an object containing a Plumed instance, which should be used in ++ the MD engine. It should first be initialized with plumed_create(), ++ then it communicates with the MD engine using plumed_cmd(). Finally, ++ before the termination, it should be deallocated with plumed_finalize(). ++ Its interface is very simple and general, and is expected ++ not to change across plumed versions. See \ref ReferencePlumedH. ++*/ ++typedef struct { ++/** ++ \private ++ \brief Void pointer holding the real PlumedMain structure ++*/ ++ void*p; ++} plumed; ++ ++/** \relates plumed ++ \brief Constructor ++ ++ \return The constructed plumed object ++*/ ++plumed plumed_create(void); ++ ++/** \relates plumed ++ \brief Tells p to execute a command ++ ++ \param p The plumed object on which command is acting ++ \param key The name of the command to be executed ++ \param val The argument. It is declared as const to allow calls like plumed_cmd(p,"A","B"), ++ but for some choice of key it can change the content ++*/ ++void plumed_cmd(plumed p,const char*key,const void*val); ++ ++/** \relates plumed ++ \brief Destructor ++ ++ \param p The plumed object to be deallocated ++*/ ++void plumed_finalize(plumed p); ++ ++/** \relates plumed ++ \brief Check if plumed is installed (for runtime binding) ++ ++ \return 1 if plumed is installed, to 0 otherwise ++*/ ++int plumed_installed(void); ++ ++/** \relates plumed ++ \brief Retrieves an handler to the global structure. ++*/ ++plumed plumed_global(void); ++ ++/** \relates plumed ++ \brief Check if the global interface has been initialized ++ ++ \return 1 if plumed has been initialized, 0 otherwise ++*/ ++int plumed_ginitialized(void); ++ ++/* global C interface, working on a global object */ ++ ++/** \relates plumed ++ \brief Constructor for the global interface. ++ ++ \note Equivalent to plumed_create(), but initialize a static global plumed object ++*/ ++void plumed_gcreate(void); ++ ++/** \relates plumed ++ \brief Tells to the global interface to execute a command. ++ ++ \param key The name of the command to be executed ++ \param val The argument. It is declared as const to allow calls like plumed_gcmd("A","B"), ++ but for some choice of key it can change the content ++ ++ \note Equivalent to plumed_cmd(), but skipping the plumed argument ++*/ ++void plumed_gcmd(const char* key,const void* val); ++ ++/** \relates plumed ++ \brief Destructor for the global interface. ++ ++ \note Equivalent to plumed_finalize(), but skipping the plumed argument ++*/ ++void plumed_gfinalize(void); ++ ++/* routines to convert char handler from/to plumed objects */ ++ ++/** \related plumed ++ \brief Converts a C handler to a FORTRAN handler ++ ++ \param p The C handler ++ \param c The FORTRAN handler (a char[32]) ++*/ ++void plumed_c2f(plumed p,char* c); ++ ++/** \related plumed ++ \brief Converts a FORTRAN handler to a C handler ++ \param c The FORTRAN handler (a char[32]) ++ \return The C handler ++*/ ++plumed plumed_f2c(const char* c); ++ ++#ifdef __cplusplus ++ } ++#endif ++ ++#ifdef __cplusplus ++ ++/* this is to include the NULL pointer */ ++#include ++ ++/* C++ interface is hidden in PLMD namespace (same as plumed library) */ ++namespace PLMD { ++ ++/** ++ C++ wrapper for \ref plumed. ++ ++ This class provides a C++ interface to PLUMED. ++*/ ++ ++class Plumed{ ++ plumed main; ++/** ++ keeps track if the object was created from scratch using ++ the defaults destructor (cloned=false) or if it was imported ++ from C or FORTRAN (cloned-true). In the latter case, the ++ plumed_finalize() method is not called when destructing the object, ++ since it is expected to be finalized in the C/FORTRAN code ++*/ ++ bool cloned; ++public: ++/** ++ Check if plumed is installed (for runtime binding) ++ \return true if plumed is installed, false otherwise ++*/ ++ static bool installed(); ++/** ++ Check if global-plumed has been initialized ++ \return true if global plumed object (see global()) is initialized (i.e. if gcreate() has been ++ called), false otherwise. ++*/ ++ static bool ginitialized(); ++/** ++ Initialize global-plumed ++*/ ++ static void gcreate(); ++/** ++ Send a command to global-plumed ++ \param key The name of the command to be executed ++ \param val The argument. It is declared as const to allow calls like gcmd("A","B"), ++ but for some choice of key it can change the content ++*/ ++ static void gcmd(const char* key,const void* val); ++/** ++ Finalize global-plumed ++*/ ++ static void gfinalize(); ++/** ++ Returns the Plumed global object ++ \return The Plumed global object ++*/ ++ static Plumed global(); ++/** ++ Constructor ++*/ ++ Plumed(); ++/** ++ Clone a Plumed object from a FORTRAN char* handler ++ \param c The FORTRAN handler (a char[32]). ++ ++ \attention The Plumed object created in this manner ++ will not finalize the corresponding plumed structure. ++ It is expected that the FORTRAN code calls plumed_c_finalize for it ++*/ ++ Plumed(const char*c); ++/** ++ Clone a Plumed object from a C plumed structure ++ \param p The C plumed structure. ++ ++ \attention The Plumed object created in this manner ++ will not finalize the corresponding plumed structure. ++ It is expected that the C code calls plumed_finalize for it ++*/ ++ Plumed(plumed p); ++private: ++/** Copy constructor is disabled (private and unimplemented) ++ The problem here is that after copying it will not be clear who is ++ going to finalize the corresponding plumed structure. ++*/ ++ Plumed(const Plumed&); ++/** Assignment operator is disabled (private and unimplemented) ++ The problem here is that after copying it will not be clear who is ++ going to finalize the corresponding plumed structure. ++*/ ++ Plumed&operator=(const Plumed&); ++public: ++/** ++ Retrieve the C plumed structure for this object ++*/ ++ operator plumed()const; ++/** ++ Retrieve a FORTRAN handler for this object ++ \param c The FORTRAN handler (a char[32]). ++*/ ++ void toFortran(char*c)const; ++/** ++ Send a command to this plumed object ++ \param key The name of the command to be executed ++ \param val The argument. It is declared as const to allow calls like p.cmd("A","B"), ++ but for some choice of key it can change the content ++*/ ++ void cmd(const char*key,const void*val=NULL); ++/** ++ Destructor ++ ++ Destructor is virtual so as to allow correct inheritance from Plumed object. ++ To avoid linking problems with g++, I specify "inline" also here (in principle ++ it should be enough to specify it down in the definition of the function, but ++ for some reason that I do not understand g++ does not inline it properly in that ++ case and complains when Plumed.h is included but Plumed.o is not linked. Anyway, the ++ way it is done here seems to work properly). ++*/ ++ inline virtual ~Plumed(); ++}; ++ ++/* All methods are inlined so as to avoid the compilation of an extra c++ file */ ++ ++inline ++bool Plumed::installed(){ ++ return plumed_installed(); ++} ++ ++inline ++Plumed::Plumed(): ++ main(plumed_create()), ++ cloned(false) ++{} ++ ++inline ++Plumed::Plumed(const char*c): ++ main(plumed_f2c(c)), ++ cloned(true) ++{} ++ ++inline ++Plumed::Plumed(plumed p): ++ main(p), ++ cloned(true) ++{} ++ ++inline ++Plumed::operator plumed()const{ ++ return main; ++} ++ ++inline ++void Plumed::toFortran(char*c)const{ ++ plumed_c2f(main,c); ++} ++ ++inline ++void Plumed::cmd(const char*key,const void*val){ ++ plumed_cmd(main,key,val); ++} ++ ++inline ++Plumed::~Plumed(){ ++ if(!cloned)plumed_finalize(main); ++} ++ ++inline ++bool Plumed::ginitialized(){ ++ return plumed_ginitialized(); ++} ++ ++inline ++void Plumed::gcreate(){ ++ plumed_gcreate(); ++} ++ ++inline ++void Plumed::gcmd(const char* key,const void* val){ ++ plumed_gcmd(key,val); ++} ++ ++inline ++void Plumed::gfinalize(){ ++ plumed_gfinalize(); ++} ++ ++inline ++Plumed Plumed::global(){ ++ return plumed_global(); ++} ++ ++} ++ ++#endif ++ ++ ++#endif +diff --git a/Plumed.inc b/Plumed.inc +new file mode 100644 +index 0000000..e1e29a7 +--- /dev/null ++++ b/Plumed.inc +@@ -0,0 +1,3 @@ ++# PLUMED: shared installation ++PLUMED_LOAD= /apps/all/PLUMED/2.1.3-foss-2015g/lib/plumed///src/lib/libplumed.so -ldl ++PLUMED_DEPENDENCIES= /apps/all/PLUMED/2.1.3-foss-2015g/lib/plumed///src/lib/libplumed.so +diff --git a/src/kernel/CMakeLists.txt b/src/kernel/CMakeLists.txt +index fea8282..8e108b3 100644 +--- a/src/kernel/CMakeLists.txt ++++ b/src/kernel/CMakeLists.txt +@@ -33,6 +33,8 @@ + # the research papers on the package. Check out http://www.gromacs.org. + # + ++include(${CMAKE_SOURCE_DIR}/Plumed.cmake) ++ + set(GMXPREPROCESS_SOURCES + add_par.c + calc_verletbuf.c +@@ -123,7 +125,7 @@ endforeach() + + add_executable(mdrun ${MDRUN_SOURCES} main.c) + gmx_add_man_page(mdrun) +-target_link_libraries(mdrun gmxpreprocess md gmx ${OpenMP_LINKER_FLAGS}) ++target_link_libraries(mdrun gmxpreprocess md gmx ${OpenMP_LINKER_FLAGS} ${PLUMED_LOAD}) + set_target_properties(mdrun PROPERTIES OUTPUT_NAME "mdrun${GMX_BINARY_SUFFIX}" COMPILE_FLAGS "${OpenMP_C_FLAGS}") + + if(GMX_OPENMM) +diff --git a/src/kernel/CMakeLists.txt.preplumed b/src/kernel/CMakeLists.txt.preplumed +new file mode 100644 +index 0000000..fea8282 +--- /dev/null ++++ b/src/kernel/CMakeLists.txt.preplumed +@@ -0,0 +1,195 @@ ++# ++# This file is part of the GROMACS molecular simulation package. ++# ++# Copyright (c) 2012,2013, by the GROMACS development team, led by ++# David van der Spoel, Berk Hess, Erik Lindahl, and including many ++# others, as listed in the AUTHORS file in the top-level source ++# directory and at http://www.gromacs.org. ++# ++# GROMACS 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; either version 2.1 ++# of the License, or (at your option) any later version. ++# ++# GROMACS 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 ++# Lesser General Public License for more details. ++# ++# You should have received a copy of the GNU Lesser General Public ++# License along with GROMACS; if not, see ++# http://www.gnu.org/licenses, or write to the Free Software Foundation, ++# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. ++# ++# If you want to redistribute modifications to GROMACS, please ++# consider that scientific software is very special. Version ++# control is crucial - bugs must be traceable. We will be happy to ++# consider code for inclusion in the official distribution, but ++# derived work must not be called official GROMACS. Details are found ++# in the README & COPYING files - if they are missing, get the ++# official version at http://www.gromacs.org. ++# ++# To help us fund GROMACS development, we humbly ask that you cite ++# the research papers on the package. Check out http://www.gromacs.org. ++# ++ ++set(GMXPREPROCESS_SOURCES ++ add_par.c ++ calc_verletbuf.c ++ compute_io.c ++ convparm.c ++ gen_ad.c ++ gen_vsite.c ++ genhydro.c ++ gpp_atomtype.c ++ gpp_bond_atomtype.c ++ h_db.c ++ hackblock.c ++ hizzie.c ++ nm2type.c ++ pdb2top.c ++ pgutil.c ++ readir.c ++ readpull.c ++ readadress.c ++ readrot.c ++ resall.c ++ sorting.c ++ specbond.c ++ ter_db.c ++ tomorse.c ++ topdirs.c ++ topexcl.c ++ topio.c ++ toppush.c ++ topshake.c ++ toputil.c ++ tpbcmp.c ++ vsite_parm.c ++ fflibutil.c ++ xlate.c) ++ ++set(MDRUN_SOURCES ++ gctio.c ionize.c runner.c ++ do_gct.c repl_ex.c xutils.c pme_loadbal.c ++ md.c mdrun.c genalg.c membed.c) ++ ++add_library(gmxpreprocess ${GMXPREPROCESS_SOURCES}) ++target_link_libraries(gmxpreprocess md) ++set_target_properties(gmxpreprocess PROPERTIES OUTPUT_NAME "gmxpreprocess${GMX_LIBS_SUFFIX}" SOVERSION ${SOVERSION} ++ COMPILE_FLAGS "${OpenMP_C_FLAGS}") ++ ++ ++if(GMX_GPU) ++ include_directories(${CMAKE_SOURCE_DIR}/src/gmxlib/gpu_utils) ++endif() ++ ++if(GMX_OPENMM) ++ # Even though the OpenMM build has "moved to contrib", many things ++ # have be be done from within the scope of the CMakeLists.txt that ++ # builds its mdrun, and that is here ++ list(APPEND CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/src/contrib) ++ find_package(OpenMM) ++ include_directories(${CMAKE_CURRENT_SOURCE_DIR}) ++ include(${CMAKE_SOURCE_DIR}/src/contrib/BuildMdrunOpenMM.cmake) ++endif(GMX_OPENMM) ++ ++if(GMX_GPU OR GMX_FORCE_CXX) ++ set_source_files_properties(main.c PROPERTIES LANGUAGE CXX) ++ if ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang") ++ set_source_files_properties(main.c PROPERTIES COMPILE_FLAGS "-x c++") ++ endif() ++endif() ++ ++if(GMX_FAHCORE) ++ add_library(fahcore ${MDRUN_SOURCES}) ++else(GMX_FAHCORE) ++ ++set(GMX_KERNEL_PROGRAMS ++ grompp tpbconv pdb2gmx g_protonate gmxdump g_x2top gmxcheck) ++if (NOT GMX_NO_QUOTES) ++ set(GMX_KERNEL_PROGRAMS ${GMX_KERNEL_PROGRAMS} g_luck) ++endif (NOT GMX_NO_QUOTES) ++ ++ ++foreach(PROGRAM ${GMX_KERNEL_PROGRAMS}) ++ add_executable(${PROGRAM} ${PROGRAM}.c main.c) ++ if (NOT ${PROGRAM} STREQUAL "g_luck") ++ gmx_add_man_page(${PROGRAM}) ++ endif() ++ target_link_libraries(${PROGRAM} gmxpreprocess md gmx ${OpenMP_LINKER_FLAGS}) ++ set_target_properties(${PROGRAM} PROPERTIES OUTPUT_NAME "${PROGRAM}${GMX_BINARY_SUFFIX}") ++endforeach() ++ ++add_executable(mdrun ${MDRUN_SOURCES} main.c) ++gmx_add_man_page(mdrun) ++target_link_libraries(mdrun gmxpreprocess md gmx ${OpenMP_LINKER_FLAGS}) ++set_target_properties(mdrun PROPERTIES OUTPUT_NAME "mdrun${GMX_BINARY_SUFFIX}" COMPILE_FLAGS "${OpenMP_C_FLAGS}") ++ ++if(GMX_OPENMM) ++ target_link_libraries(mdrun openmm_api_wrapper) ++endif() ++ ++# Construct component groups for installation; note that a component may ++# belong to only one group ++foreach(PROGRAM ${GMX_KERNEL_PROGRAMS}) ++ set(CPACK_COMPONENT_${PROGRAM}_GROUP tools) ++endforeach() ++set(CPACK_COMPONENT_MDRUN_GROUP mdrun) ++ ++foreach(PROGRAM ${GMX_KERNEL_PROGRAMS} mdrun) ++ # Manage CPack component dependencies ++ set(CPACK_COMPONENT_${PROGRAM}_DEPENDS libraries libraries-gmxpreprocess) ++ ++ # Create custom install-xxxx target ++ if (BUILD_SHARED_LIBS) ++ # If shared libraries are used, we need to install the libraries in ++ # addition to the mdrun binary. ++ add_custom_target(install-${PROGRAM} ++ COMMAND ${CMAKE_COMMAND} -DCOMPONENT=libraries ++ -P ${CMAKE_BINARY_DIR}/cmake_install.cmake ++ COMMAND ${CMAKE_COMMAND} -DCOMPONENT=libraries-gmxpreprocess ++ -P ${CMAKE_BINARY_DIR}/cmake_install.cmake ++ COMMAND ${CMAKE_COMMAND} -DCOMPONENT=${PROGRAM} ++ -P ${CMAKE_BINARY_DIR}/cmake_install.cmake ++ COMMENT "Installing ${PROGRAM}") ++ else() ++ add_custom_target(install-${PROGRAM} ++ COMMAND ${CMAKE_COMMAND} -DCOMPONENT=${PROGRAM} ++ -P ${CMAKE_BINARY_DIR}/cmake_install.cmake ++ COMMENT "Installing ${PROGRAM}") ++ endif() ++ add_dependencies(install-${PROGRAM} ${PROGRAM}) ++ ++ # Finally, trigger installation ++ install( ++ TARGETS ${PROGRAM} ++ COMPONENT ${PROGRAM} ++ DESTINATION ${BIN_INSTALL_DIR} ++ ) ++endforeach() ++ ++install(TARGETS gmxpreprocess DESTINATION ${LIB_INSTALL_DIR} COMPONENT libraries-gmxpreprocess) ++ ++if (INSTALL_CUDART_LIB) #can be set manual by user ++ if (GMX_GPU) ++ foreach(CUDA_LIB ${CUDA_LIBRARIES}) ++ string(REGEX MATCH "cudart" IS_CUDART ${CUDA_LIB}) ++ if(IS_CUDART) #libcuda should not be installed ++ #install also name-links (linker uses those) ++ file(GLOB CUDA_LIBS ${CUDA_LIB}*) ++ install(FILES ${CUDA_LIBS} DESTINATION ++ ${LIB_INSTALL_DIR} COMPONENT libraries) ++ endif() ++ endforeach() ++ else() ++ message(WARNING "INSTALL_CUDART_LIB only makes sense with GMX_GPU") ++ endif() ++endif () ++endif(GMX_FAHCORE) ++ ++configure_file(${CMAKE_CURRENT_SOURCE_DIR}/libgmxpreprocess.pc.cmakein ${CMAKE_CURRENT_BINARY_DIR}/libgmxpreprocess.pc @ONLY) ++install(FILES ${CMAKE_CURRENT_BINARY_DIR}/libgmxpreprocess.pc ++ DESTINATION ${LIB_INSTALL_DIR}/pkgconfig ++ RENAME "libgmxpreprocess${GMX_LIBS_SUFFIX}.pc" ++ COMPONENT development) +diff --git a/src/kernel/md.c b/src/kernel/md.c +index 4c4a88c..b4b8c51 100644 +--- a/src/kernel/md.c ++++ b/src/kernel/md.c +@@ -93,6 +93,12 @@ + #include "types/iteratedconstraints.h" + #include "nbnxn_cuda_data_mgmt.h" + ++/* PLUMED */ ++#include "../../Plumed.h" ++extern int plumedswitch; ++extern plumed plumedmain; ++/* END PLUMED */ ++ + #ifdef GMX_LIB_MPI + #include + #endif +@@ -236,6 +242,12 @@ double do_md(FILE *fplog, t_commrec *cr, int nfile, const t_filenm fnm[], + double cycles_pmes; + gmx_bool bPMETuneTry = FALSE, bPMETuneRunning = FALSE; + ++/* PLUMED */ ++ int plumedNeedsEnergy=0; ++ int plumedWantsToStop=0; ++ matrix plumed_vir; ++/* END PLUMED */ ++ + #ifdef GMX_FAHCORE + /* Temporary addition for FAHCORE checkpointing */ + int chkpt_ret; +@@ -732,6 +744,53 @@ double do_md(FILE *fplog, t_commrec *cr, int nfile, const t_filenm fnm[], + fprintf(fplog, "\n"); + } + ++ /* PLUMED */ ++ if(plumedswitch){ ++ /* detect plumed API version */ ++ int pversion=0; ++ plumed_cmd(plumedmain,"getApiVersion",&pversion); ++ /* setting kbT is only implemented with api>1) */ ++ real kbT=ir->opts.ref_t[0]*BOLTZ; ++ if(pversion>1) plumed_cmd(plumedmain,"setKbT",&kbT); ++ ++ if(cr->ms && cr->ms->nsim>1) { ++ if(MASTER(cr)) plumed_cmd(plumedmain,"GREX setMPIIntercomm",&cr->ms->mpi_comm_masters); ++ if(PAR(cr)){ ++ if(DOMAINDECOMP(cr)) { ++ plumed_cmd(plumedmain,"GREX setMPIIntracomm",&cr->dd->mpi_comm_all); ++ }else{ ++ plumed_cmd(plumedmain,"GREX setMPIIntracomm",&cr->mpi_comm_mysim); ++ } ++ } ++ plumed_cmd(plumedmain,"GREX init",NULL); ++ } ++ if(PAR(cr)){ ++ if(DOMAINDECOMP(cr)) { ++ plumed_cmd(plumedmain,"setMPIComm",&cr->dd->mpi_comm_all); ++ }else{ ++ plumed_cmd(plumedmain,"setMPIComm",&cr->mpi_comm_mysim); ++ } ++ } ++ plumed_cmd(plumedmain,"setNatoms",&top_global->natoms); ++ plumed_cmd(plumedmain,"setMDEngine","gromacs"); ++ plumed_cmd(plumedmain,"setLog",fplog); ++ real real_delta_t; ++ real_delta_t=ir->delta_t; ++ plumed_cmd(plumedmain,"setTimestep",&real_delta_t); ++ plumed_cmd(plumedmain,"init",NULL); ++ ++ if(PAR(cr)){ ++ if(DOMAINDECOMP(cr)) { ++ plumed_cmd(plumedmain,"setAtomsNlocal",&cr->dd->nat_home); ++ plumed_cmd(plumedmain,"setAtomsGatindex",cr->dd->gatindex); ++ }else{ ++ plumed_cmd(plumedmain,"setAtomsNlocal",&mdatoms->homenr); ++ plumed_cmd(plumedmain,"setAtomsContiguous",&mdatoms->start); ++ } ++ } ++ } ++ /* END PLUMED */ ++ + print_start(fplog, cr, runtime, "mdrun"); + runtime_start(runtime); + wallcycle_start(wcycle, ewcRUN); +@@ -1044,6 +1103,13 @@ double do_md(FILE *fplog, t_commrec *cr, int nfile, const t_filenm fnm[], + do_verbose && !bPMETuneRunning); + wallcycle_stop(wcycle, ewcDOMDEC); + /* If using an iterative integrator, reallocate space to match the decomposition */ ++ ++ /* PLUMED */ ++ if(plumedswitch){ ++ plumed_cmd(plumedmain,"setAtomsNlocal",&cr->dd->nat_home); ++ plumed_cmd(plumedmain,"setAtomsGatindex",cr->dd->gatindex); ++ } ++ /* END PLUMED */ + } + } + +@@ -1189,12 +1255,45 @@ double do_md(FILE *fplog, t_commrec *cr, int nfile, const t_filenm fnm[], + * This is parallellized as well, and does communication too. + * Check comments in sim_util.c + */ ++ ++ /* PLUMED */ ++ plumedNeedsEnergy=0; ++ if(plumedswitch){ ++ long int lstep=step; plumed_cmd(plumedmain,"setStepLong",&lstep); ++ plumed_cmd(plumedmain,"setPositions",&state->x[mdatoms->start][0]); ++ plumed_cmd(plumedmain,"setMasses",&mdatoms->massT[mdatoms->start]); ++ plumed_cmd(plumedmain,"setCharges",&mdatoms->chargeA[mdatoms->start]); ++ plumed_cmd(plumedmain,"setBox",&state->box[0][0]); ++ plumed_cmd(plumedmain,"prepareCalc",NULL); ++ plumed_cmd(plumedmain,"setStopFlag",&plumedWantsToStop); ++ plumed_cmd(plumedmain,"setForces",&f[mdatoms->start][0]); ++ plumed_cmd(plumedmain,"isEnergyNeeded",&plumedNeedsEnergy); ++ clear_mat(plumed_vir); ++ plumed_cmd(plumedmain,"setVirial",&plumed_vir[0][0]); ++ } ++ /* END PLUMED */ + do_force(fplog, cr, ir, step, nrnb, wcycle, top, top_global, groups, + state->box, state->x, &state->hist, + f, force_vir, mdatoms, enerd, fcd, + state->lambda, graph, + fr, vsite, mu_tot, t, outf->fp_field, ed, bBornRadii, +- (bNS ? GMX_FORCE_NS : 0) | force_flags); ++ (plumedNeedsEnergy? GMX_FORCE_ENERGY : 0) |(bNS ? GMX_FORCE_NS : 0) | force_flags); ++ /* PLUMED */ ++ if(plumedswitch){ ++ if(plumedNeedsEnergy){ ++ msmul(force_vir,2.0,plumed_vir); ++ plumed_cmd(plumedmain,"setEnergy",&enerd->term[F_EPOT]); ++ plumed_cmd(plumedmain,"performCalc",NULL); ++ msmul(plumed_vir,0.5,force_vir); ++ } else { ++ msmul(plumed_vir,0.5,plumed_vir); ++ m_add(force_vir,plumed_vir,force_vir); ++ } ++ if ((repl_ex_nst > 0) && (step > 0) && !bLastStep && ++ do_per_step(step,repl_ex_nst)) plumed_cmd(plumedmain,"GREX savePositions",NULL); ++ if(plumedWantsToStop) ir->nsteps=step_rel+1; ++ } ++ /* END PLUMED */ + } + + GMX_BARRIER(cr->mpi_comm_mygroup); +diff --git a/src/kernel/md.c.preplumed b/src/kernel/md.c.preplumed +new file mode 100644 +index 0000000..4c4a88c +--- /dev/null ++++ b/src/kernel/md.c.preplumed +@@ -0,0 +1,2283 @@ ++/* ++ * This file is part of the GROMACS molecular simulation package. ++ * ++ * Copyright (c) 1991-2000, University of Groningen, The Netherlands. ++ * Copyright (c) 2001-2004, The GROMACS development team, ++ * check out http://www.gromacs.org for more information. ++ * Copyright (c) 2012,2013, by the GROMACS development team, led by ++ * David van der Spoel, Berk Hess, Erik Lindahl, and including many ++ * others, as listed in the AUTHORS file in the top-level source ++ * directory and at http://www.gromacs.org. ++ * ++ * GROMACS 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; either version 2.1 ++ * of the License, or (at your option) any later version. ++ * ++ * GROMACS 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 ++ * Lesser General Public License for more details. ++ * ++ * You should have received a copy of the GNU Lesser General Public ++ * License along with GROMACS; if not, see ++ * http://www.gnu.org/licenses, or write to the Free Software Foundation, ++ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. ++ * ++ * If you want to redistribute modifications to GROMACS, please ++ * consider that scientific software is very special. Version ++ * control is crucial - bugs must be traceable. We will be happy to ++ * consider code for inclusion in the official distribution, but ++ * derived work must not be called official GROMACS. Details are found ++ * in the README & COPYING files - if they are missing, get the ++ * official version at http://www.gromacs.org. ++ * ++ * To help us fund GROMACS development, we humbly ask that you cite ++ * the research papers on the package. Check out http://www.gromacs.org. ++ */ ++#ifdef HAVE_CONFIG_H ++#include ++#endif ++ ++#include "typedefs.h" ++#include "smalloc.h" ++#include "sysstuff.h" ++#include "vec.h" ++#include "statutil.h" ++#include "vcm.h" ++#include "mdebin.h" ++#include "nrnb.h" ++#include "calcmu.h" ++#include "index.h" ++#include "vsite.h" ++#include "update.h" ++#include "ns.h" ++#include "trnio.h" ++#include "xtcio.h" ++#include "mdrun.h" ++#include "md_support.h" ++#include "md_logging.h" ++#include "confio.h" ++#include "network.h" ++#include "pull.h" ++#include "xvgr.h" ++#include "physics.h" ++#include "names.h" ++#include "xmdrun.h" ++#include "ionize.h" ++#include "disre.h" ++#include "orires.h" ++#include "pme.h" ++#include "mdatoms.h" ++#include "repl_ex.h" ++#include "qmmm.h" ++#include "mpelogging.h" ++#include "domdec.h" ++#include "domdec_network.h" ++#include "partdec.h" ++#include "topsort.h" ++#include "coulomb.h" ++#include "constr.h" ++#include "shellfc.h" ++#include "compute_io.h" ++#include "mvdata.h" ++#include "checkpoint.h" ++#include "mtop_util.h" ++#include "sighandler.h" ++#include "txtdump.h" ++#include "string2.h" ++#include "pme_loadbal.h" ++#include "bondf.h" ++#include "membed.h" ++#include "types/nlistheuristics.h" ++#include "types/iteratedconstraints.h" ++#include "nbnxn_cuda_data_mgmt.h" ++ ++#ifdef GMX_LIB_MPI ++#include ++#endif ++#ifdef GMX_THREAD_MPI ++#include "tmpi.h" ++#endif ++ ++#ifdef GMX_FAHCORE ++#include "corewrap.h" ++#endif ++ ++static void reset_all_counters(FILE *fplog, t_commrec *cr, ++ gmx_large_int_t step, ++ gmx_large_int_t *step_rel, t_inputrec *ir, ++ gmx_wallcycle_t wcycle, t_nrnb *nrnb, ++ gmx_runtime_t *runtime, ++ nbnxn_cuda_ptr_t cu_nbv) ++{ ++ char sbuf[STEPSTRSIZE]; ++ ++ /* Reset all the counters related to performance over the run */ ++ md_print_warn(cr, fplog, "step %s: resetting all time and cycle counters\n", ++ gmx_step_str(step, sbuf)); ++ ++ if (cu_nbv) ++ { ++ nbnxn_cuda_reset_timings(cu_nbv); ++ } ++ ++ wallcycle_stop(wcycle, ewcRUN); ++ wallcycle_reset_all(wcycle); ++ if (DOMAINDECOMP(cr)) ++ { ++ reset_dd_statistics_counters(cr->dd); ++ } ++ init_nrnb(nrnb); ++ ir->init_step += *step_rel; ++ ir->nsteps -= *step_rel; ++ *step_rel = 0; ++ wallcycle_start(wcycle, ewcRUN); ++ runtime_start(runtime); ++ print_date_and_time(fplog, cr->nodeid, "Restarted time", runtime); ++} ++ ++double do_md(FILE *fplog, t_commrec *cr, int nfile, const t_filenm fnm[], ++ const output_env_t oenv, gmx_bool bVerbose, gmx_bool bCompact, ++ int nstglobalcomm, ++ gmx_vsite_t *vsite, gmx_constr_t constr, ++ int stepout, t_inputrec *ir, ++ gmx_mtop_t *top_global, ++ t_fcdata *fcd, ++ t_state *state_global, ++ t_mdatoms *mdatoms, ++ t_nrnb *nrnb, gmx_wallcycle_t wcycle, ++ gmx_edsam_t ed, t_forcerec *fr, ++ int repl_ex_nst, int repl_ex_nex, int repl_ex_seed, gmx_membed_t membed, ++ real cpt_period, real max_hours, ++ const char *deviceOptions, ++ unsigned long Flags, ++ gmx_runtime_t *runtime) ++{ ++ gmx_mdoutf_t *outf; ++ gmx_large_int_t step, step_rel; ++ double run_time; ++ double t, t0, lam0[efptNR]; ++ gmx_bool bGStatEveryStep, bGStat, bCalcVir, bCalcEner; ++ gmx_bool bNS, bNStList, bSimAnn, bStopCM, bRerunMD, bNotLastFrame = FALSE, ++ bFirstStep, bStateFromCP, bStateFromTPX, bInitStep, bLastStep, ++ bBornRadii, bStartingFromCpt; ++ gmx_bool bDoDHDL = FALSE, bDoFEP = FALSE, bDoExpanded = FALSE; ++ gmx_bool do_ene, do_log, do_verbose, bRerunWarnNoV = TRUE, ++ bForceUpdate = FALSE, bCPT; ++ int mdof_flags; ++ gmx_bool bMasterState; ++ int force_flags, cglo_flags; ++ tensor force_vir, shake_vir, total_vir, tmp_vir, pres; ++ int i, m; ++ t_trxstatus *status; ++ rvec mu_tot; ++ t_vcm *vcm; ++ t_state *bufstate = NULL; ++ matrix *scale_tot, pcoupl_mu, M, ebox; ++ gmx_nlheur_t nlh; ++ t_trxframe rerun_fr; ++ gmx_repl_ex_t repl_ex = NULL; ++ int nchkpt = 1; ++ gmx_localtop_t *top; ++ t_mdebin *mdebin = NULL; ++ t_state *state = NULL; ++ rvec *f_global = NULL; ++ int n_xtc = -1; ++ rvec *x_xtc = NULL; ++ gmx_enerdata_t *enerd; ++ rvec *f = NULL; ++ gmx_global_stat_t gstat; ++ gmx_update_t upd = NULL; ++ t_graph *graph = NULL; ++ globsig_t gs; ++ gmx_rng_t mcrng = NULL; ++ gmx_bool bFFscan; ++ gmx_groups_t *groups; ++ gmx_ekindata_t *ekind, *ekind_save; ++ gmx_shellfc_t shellfc; ++ int count, nconverged = 0; ++ real timestep = 0; ++ double tcount = 0; ++ gmx_bool bIonize = FALSE; ++ gmx_bool bTCR = FALSE, bConverged = TRUE, bOK, bSumEkinhOld, bExchanged; ++ gmx_bool bAppend; ++ gmx_bool bResetCountersHalfMaxH = FALSE; ++ gmx_bool bVV, bIterativeCase, bFirstIterate, bTemp, bPres, bTrotter; ++ gmx_bool bUpdateDoLR; ++ real mu_aver = 0, dvdl_constr; ++ int a0, a1, gnx = 0, ii; ++ atom_id *grpindex = NULL; ++ char *grpname; ++ t_coupl_rec *tcr = NULL; ++ rvec *xcopy = NULL, *vcopy = NULL, *cbuf = NULL; ++ matrix boxcopy = {{0}}, lastbox; ++ tensor tmpvir; ++ real fom, oldfom, veta_save, pcurr, scalevir, tracevir; ++ real vetanew = 0; ++ int lamnew = 0; ++ /* for FEP */ ++ int nstfep; ++ real rate; ++ double cycles; ++ real saved_conserved_quantity = 0; ++ real last_ekin = 0; ++ int iter_i; ++ t_extmass MassQ; ++ int **trotter_seq; ++ char sbuf[STEPSTRSIZE], sbuf2[STEPSTRSIZE]; ++ int handled_stop_condition = gmx_stop_cond_none; /* compare to get_stop_condition*/ ++ gmx_iterate_t iterate; ++ gmx_large_int_t multisim_nsteps = -1; /* number of steps to do before first multisim ++ simulation stops. If equal to zero, don't ++ communicate any more between multisims.*/ ++ /* PME load balancing data for GPU kernels */ ++ pme_load_balancing_t pme_loadbal = NULL; ++ double cycles_pmes; ++ gmx_bool bPMETuneTry = FALSE, bPMETuneRunning = FALSE; ++ ++#ifdef GMX_FAHCORE ++ /* Temporary addition for FAHCORE checkpointing */ ++ int chkpt_ret; ++#endif ++ ++ /* Check for special mdrun options */ ++ bRerunMD = (Flags & MD_RERUN); ++ bIonize = (Flags & MD_IONIZE); ++ bFFscan = (Flags & MD_FFSCAN); ++ bAppend = (Flags & MD_APPENDFILES); ++ if (Flags & MD_RESETCOUNTERSHALFWAY) ++ { ++ if (ir->nsteps > 0) ++ { ++ /* Signal to reset the counters half the simulation steps. */ ++ wcycle_set_reset_counters(wcycle, ir->nsteps/2); ++ } ++ /* Signal to reset the counters halfway the simulation time. */ ++ bResetCountersHalfMaxH = (max_hours > 0); ++ } ++ ++ /* md-vv uses averaged full step velocities for T-control ++ md-vv-avek uses averaged half step velocities for T-control (but full step ekin for P control) ++ md uses averaged half step kinetic energies to determine temperature unless defined otherwise by GMX_EKIN_AVE_VEL; */ ++ bVV = EI_VV(ir->eI); ++ if (bVV) /* to store the initial velocities while computing virial */ ++ { ++ snew(cbuf, top_global->natoms); ++ } ++ /* all the iteratative cases - only if there are constraints */ ++ bIterativeCase = ((IR_NPH_TROTTER(ir) || IR_NPT_TROTTER(ir)) && (constr) && (!bRerunMD)); ++ gmx_iterate_init(&iterate, FALSE); /* The default value of iterate->bIterationActive is set to ++ false in this step. The correct value, true or false, ++ is set at each step, as it depends on the frequency of temperature ++ and pressure control.*/ ++ bTrotter = (bVV && (IR_NPT_TROTTER(ir) || IR_NPH_TROTTER(ir) || IR_NVT_TROTTER(ir))); ++ ++ if (bRerunMD) ++ { ++ /* Since we don't know if the frames read are related in any way, ++ * rebuild the neighborlist at every step. ++ */ ++ ir->nstlist = 1; ++ ir->nstcalcenergy = 1; ++ nstglobalcomm = 1; ++ } ++ ++ check_ir_old_tpx_versions(cr, fplog, ir, top_global); ++ ++ nstglobalcomm = check_nstglobalcomm(fplog, cr, nstglobalcomm, ir); ++ bGStatEveryStep = (nstglobalcomm == 1); ++ ++ if (!bGStatEveryStep && ir->nstlist == -1 && fplog != NULL) ++ { ++ fprintf(fplog, ++ "To reduce the energy communication with nstlist = -1\n" ++ "the neighbor list validity should not be checked at every step,\n" ++ "this means that exact integration is not guaranteed.\n" ++ "The neighbor list validity is checked after:\n" ++ " - 2*std.dev.(n.list life time) steps.\n" ++ "In most cases this will result in exact integration.\n" ++ "This reduces the energy communication by a factor of 2 to 3.\n" ++ "If you want less energy communication, set nstlist > 3.\n\n"); ++ } ++ ++ if (bRerunMD || bFFscan) ++ { ++ ir->nstxtcout = 0; ++ } ++ groups = &top_global->groups; ++ ++ /* Initial values */ ++ init_md(fplog, cr, ir, oenv, &t, &t0, state_global->lambda, ++ &(state_global->fep_state), lam0, ++ nrnb, top_global, &upd, ++ nfile, fnm, &outf, &mdebin, ++ force_vir, shake_vir, mu_tot, &bSimAnn, &vcm, state_global, Flags); ++ ++ clear_mat(total_vir); ++ clear_mat(pres); ++ /* Energy terms and groups */ ++ snew(enerd, 1); ++ init_enerdata(top_global->groups.grps[egcENER].nr, ir->fepvals->n_lambda, ++ enerd); ++ if (DOMAINDECOMP(cr)) ++ { ++ f = NULL; ++ } ++ else ++ { ++ snew(f, top_global->natoms); ++ } ++ ++ /* Kinetic energy data */ ++ snew(ekind, 1); ++ init_ekindata(fplog, top_global, &(ir->opts), ekind); ++ /* needed for iteration of constraints */ ++ snew(ekind_save, 1); ++ init_ekindata(fplog, top_global, &(ir->opts), ekind_save); ++ /* Copy the cos acceleration to the groups struct */ ++ ekind->cosacc.cos_accel = ir->cos_accel; ++ ++ gstat = global_stat_init(ir); ++ debug_gmx(); ++ ++ /* Check for polarizable models and flexible constraints */ ++ shellfc = init_shell_flexcon(fplog, ++ top_global, n_flexible_constraints(constr), ++ (ir->bContinuation || ++ (DOMAINDECOMP(cr) && !MASTER(cr))) ? ++ NULL : state_global->x); ++ if (shellfc && ir->nstcalcenergy != 1) ++ { ++ gmx_fatal(FARGS, "You have nstcalcenergy set to a value (%d) that is different from 1.\nThis is not supported in combinations with shell particles.\nPlease make a new tpr file.", ir->nstcalcenergy); ++ } ++ if (shellfc && DOMAINDECOMP(cr)) ++ { ++ gmx_fatal(FARGS, "In order to run parallel simulations with shells you need to use the -pd flag to mdrun."); ++ } ++ if (shellfc && ir->eI == eiNM) ++ { ++ /* Currently shells don't work with Normal Modes */ ++ gmx_fatal(FARGS, "Normal Mode analysis is not supported with shells.\nIf you'd like to help with adding support, we have an open discussion at http://redmine.gromacs.org/issues/879\n"); ++ } ++ ++ if (vsite && ir->eI == eiNM) ++ { ++ /* Currently virtual sites don't work with Normal Modes */ ++ gmx_fatal(FARGS, "Normal Mode analysis is not supported with virtual sites.\nIf you'd like to help with adding support, we have an open discussion at http://redmine.gromacs.org/issues/879\n"); ++ } ++ ++ if (DEFORM(*ir)) ++ { ++#ifdef GMX_THREAD_MPI ++ tMPI_Thread_mutex_lock(&deform_init_box_mutex); ++#endif ++ set_deform_reference_box(upd, ++ deform_init_init_step_tpx, ++ deform_init_box_tpx); ++#ifdef GMX_THREAD_MPI ++ tMPI_Thread_mutex_unlock(&deform_init_box_mutex); ++#endif ++ } ++ ++ { ++ double io = compute_io(ir, top_global->natoms, groups, mdebin->ebin->nener, 1); ++ if ((io > 2000) && MASTER(cr)) ++ { ++ fprintf(stderr, ++ "\nWARNING: This run will generate roughly %.0f Mb of data\n\n", ++ io); ++ } ++ } ++ ++ if (DOMAINDECOMP(cr)) ++ { ++ top = dd_init_local_top(top_global); ++ ++ snew(state, 1); ++ dd_init_local_state(cr->dd, state_global, state); ++ ++ if (DDMASTER(cr->dd) && ir->nstfout) ++ { ++ snew(f_global, state_global->natoms); ++ } ++ } ++ else ++ { ++ if (PAR(cr)) ++ { ++ /* Initialize the particle decomposition and split the topology */ ++ top = split_system(fplog, top_global, ir, cr); ++ ++ pd_cg_range(cr, &fr->cg0, &fr->hcg); ++ pd_at_range(cr, &a0, &a1); ++ } ++ else ++ { ++ top = gmx_mtop_generate_local_top(top_global, ir); ++ ++ a0 = 0; ++ a1 = top_global->natoms; ++ } ++ ++ forcerec_set_excl_load(fr, top, cr); ++ ++ state = partdec_init_local_state(cr, state_global); ++ f_global = f; ++ ++ atoms2md(top_global, ir, 0, NULL, a0, a1-a0, mdatoms); ++ ++ if (vsite) ++ { ++ set_vsite_top(vsite, top, mdatoms, cr); ++ } ++ ++ if (ir->ePBC != epbcNONE && !fr->bMolPBC) ++ { ++ graph = mk_graph(fplog, &(top->idef), 0, top_global->natoms, FALSE, FALSE); ++ } ++ ++ if (shellfc) ++ { ++ make_local_shells(cr, mdatoms, shellfc); ++ } ++ ++ setup_bonded_threading(fr, &top->idef); ++ ++ if (ir->pull && PAR(cr)) ++ { ++ dd_make_local_pull_groups(NULL, ir->pull, mdatoms); ++ } ++ } ++ ++ if (DOMAINDECOMP(cr)) ++ { ++ /* Distribute the charge groups over the nodes from the master node */ ++ dd_partition_system(fplog, ir->init_step, cr, TRUE, 1, ++ state_global, top_global, ir, ++ state, &f, mdatoms, top, fr, ++ vsite, shellfc, constr, ++ nrnb, wcycle, FALSE); ++ ++ } ++ ++ update_mdatoms(mdatoms, state->lambda[efptMASS]); ++ ++ if (opt2bSet("-cpi", nfile, fnm)) ++ { ++ bStateFromCP = gmx_fexist_master(opt2fn_master("-cpi", nfile, fnm, cr), cr); ++ } ++ else ++ { ++ bStateFromCP = FALSE; ++ } ++ ++ if (ir->bExpanded) ++ { ++ init_expanded_ensemble(bStateFromCP,ir,&mcrng,&state->dfhist); ++ } ++ ++ if (MASTER(cr)) ++ { ++ if (bStateFromCP) ++ { ++ /* Update mdebin with energy history if appending to output files */ ++ if (Flags & MD_APPENDFILES) ++ { ++ restore_energyhistory_from_state(mdebin, &state_global->enerhist); ++ } ++ else ++ { ++ /* We might have read an energy history from checkpoint, ++ * free the allocated memory and reset the counts. ++ */ ++ done_energyhistory(&state_global->enerhist); ++ init_energyhistory(&state_global->enerhist); ++ } ++ } ++ /* Set the initial energy history in state by updating once */ ++ update_energyhistory(&state_global->enerhist, mdebin); ++ } ++ ++ if ((state->flags & (1<flags & (1<mols.nr; ++ snew(grpindex, gnx); ++ for (i = 0; (i < gnx); i++) ++ { ++ grpindex[i] = i; ++ } ++ } ++ ++ if (repl_ex_nst > 0) ++ { ++ /* We need to be sure replica exchange can only occur ++ * when the energies are current */ ++ check_nst_param(fplog, cr, "nstcalcenergy", ir->nstcalcenergy, ++ "repl_ex_nst", &repl_ex_nst); ++ /* This check needs to happen before inter-simulation ++ * signals are initialized, too */ ++ } ++ if (repl_ex_nst > 0 && MASTER(cr)) ++ { ++ repl_ex = init_replica_exchange(fplog, cr->ms, state_global, ir, ++ repl_ex_nst, repl_ex_nex, repl_ex_seed); ++ } ++ ++ /* PME tuning is only supported with GPUs or PME nodes and not with rerun. ++ * With perturbed charges with soft-core we should not change the cut-off. ++ */ ++ if ((Flags & MD_TUNEPME) && ++ EEL_PME(fr->eeltype) && ++ ( (fr->cutoff_scheme == ecutsVERLET && fr->nbv->bUseGPU) || !(cr->duty & DUTY_PME)) && ++ !(ir->efep != efepNO && mdatoms->nChargePerturbed > 0 && ir->fepvals->bScCoul) && ++ !bRerunMD) ++ { ++ pme_loadbal_init(&pme_loadbal, ir, state->box, fr->ic, fr->pmedata); ++ cycles_pmes = 0; ++ if (cr->duty & DUTY_PME) ++ { ++ /* Start tuning right away, as we can't measure the load */ ++ bPMETuneRunning = TRUE; ++ } ++ else ++ { ++ /* Separate PME nodes, we can measure the PP/PME load balance */ ++ bPMETuneTry = TRUE; ++ } ++ } ++ ++ if (!ir->bContinuation && !bRerunMD) ++ { ++ if (mdatoms->cFREEZE && (state->flags & (1<start; i < mdatoms->start+mdatoms->homenr; i++) ++ { ++ for (m = 0; m < DIM; m++) ++ { ++ if (ir->opts.nFreeze[mdatoms->cFREEZE[i]][m]) ++ { ++ state->v[i][m] = 0; ++ } ++ } ++ } ++ } ++ ++ if (constr) ++ { ++ /* Constrain the initial coordinates and velocities */ ++ do_constrain_first(fplog, constr, ir, mdatoms, state, f, ++ graph, cr, nrnb, fr, top, shake_vir); ++ } ++ if (vsite) ++ { ++ /* Construct the virtual sites for the initial configuration */ ++ construct_vsites(fplog, vsite, state->x, nrnb, ir->delta_t, NULL, ++ top->idef.iparams, top->idef.il, ++ fr->ePBC, fr->bMolPBC, graph, cr, state->box); ++ } ++ } ++ ++ debug_gmx(); ++ ++ /* set free energy calculation frequency as the minimum ++ greatest common denominator of nstdhdl, nstexpanded, and repl_ex_nst*/ ++ nstfep = ir->fepvals->nstdhdl; ++ if (ir->bExpanded) ++ { ++ nstfep = gmx_greatest_common_divisor(ir->fepvals->nstdhdl,nstfep); ++ } ++ if (repl_ex_nst > 0) ++ { ++ nstfep = gmx_greatest_common_divisor(repl_ex_nst,nstfep); ++ } ++ ++ /* I'm assuming we need global communication the first time! MRS */ ++ cglo_flags = (CGLO_TEMPERATURE | CGLO_GSTAT ++ | ((ir->comm_mode != ecmNO) ? CGLO_STOPCM : 0) ++ | (bVV ? CGLO_PRESSURE : 0) ++ | (bVV ? CGLO_CONSTRAINT : 0) ++ | (bRerunMD ? CGLO_RERUNMD : 0) ++ | ((Flags & MD_READ_EKIN) ? CGLO_READEKIN : 0)); ++ ++ bSumEkinhOld = FALSE; ++ compute_globals(fplog, gstat, cr, ir, fr, ekind, state, state_global, mdatoms, nrnb, vcm, ++ NULL, enerd, force_vir, shake_vir, total_vir, pres, mu_tot, ++ constr, NULL, FALSE, state->box, ++ top_global, &pcurr, top_global->natoms, &bSumEkinhOld, cglo_flags); ++ if (ir->eI == eiVVAK) ++ { ++ /* a second call to get the half step temperature initialized as well */ ++ /* we do the same call as above, but turn the pressure off -- internally to ++ compute_globals, this is recognized as a velocity verlet half-step ++ kinetic energy calculation. This minimized excess variables, but ++ perhaps loses some logic?*/ ++ ++ compute_globals(fplog, gstat, cr, ir, fr, ekind, state, state_global, mdatoms, nrnb, vcm, ++ NULL, enerd, force_vir, shake_vir, total_vir, pres, mu_tot, ++ constr, NULL, FALSE, state->box, ++ top_global, &pcurr, top_global->natoms, &bSumEkinhOld, ++ cglo_flags &~(CGLO_STOPCM | CGLO_PRESSURE)); ++ } ++ ++ /* Calculate the initial half step temperature, and save the ekinh_old */ ++ if (!(Flags & MD_STARTFROMCPT)) ++ { ++ for (i = 0; (i < ir->opts.ngtc); i++) ++ { ++ copy_mat(ekind->tcstat[i].ekinh, ekind->tcstat[i].ekinh_old); ++ } ++ } ++ if (ir->eI != eiVV) ++ { ++ enerd->term[F_TEMP] *= 2; /* result of averages being done over previous and current step, ++ and there is no previous step */ ++ } ++ ++ /* if using an iterative algorithm, we need to create a working directory for the state. */ ++ if (bIterativeCase) ++ { ++ bufstate = init_bufstate(state); ++ } ++ if (bFFscan) ++ { ++ snew(xcopy, state->natoms); ++ snew(vcopy, state->natoms); ++ copy_rvecn(state->x, xcopy, 0, state->natoms); ++ copy_rvecn(state->v, vcopy, 0, state->natoms); ++ copy_mat(state->box, boxcopy); ++ } ++ ++ /* need to make an initiation call to get the Trotter variables set, as well as other constants for non-trotter ++ temperature control */ ++ trotter_seq = init_npt_vars(ir, state, &MassQ, bTrotter); ++ ++ if (MASTER(cr)) ++ { ++ if (constr && !ir->bContinuation && ir->eConstrAlg == econtLINCS) ++ { ++ fprintf(fplog, ++ "RMS relative constraint deviation after constraining: %.2e\n", ++ constr_rmsd(constr, FALSE)); ++ } ++ if (EI_STATE_VELOCITY(ir->eI)) ++ { ++ fprintf(fplog, "Initial temperature: %g K\n", enerd->term[F_TEMP]); ++ } ++ if (bRerunMD) ++ { ++ fprintf(stderr, "starting md rerun '%s', reading coordinates from" ++ " input trajectory '%s'\n\n", ++ *(top_global->name), opt2fn("-rerun", nfile, fnm)); ++ if (bVerbose) ++ { ++ fprintf(stderr, "Calculated time to finish depends on nsteps from " ++ "run input file,\nwhich may not correspond to the time " ++ "needed to process input trajectory.\n\n"); ++ } ++ } ++ else ++ { ++ char tbuf[20]; ++ fprintf(stderr, "starting mdrun '%s'\n", ++ *(top_global->name)); ++ if (ir->nsteps >= 0) ++ { ++ sprintf(tbuf, "%8.1f", (ir->init_step+ir->nsteps)*ir->delta_t); ++ } ++ else ++ { ++ sprintf(tbuf, "%s", "infinite"); ++ } ++ if (ir->init_step > 0) ++ { ++ fprintf(stderr, "%s steps, %s ps (continuing from step %s, %8.1f ps).\n", ++ gmx_step_str(ir->init_step+ir->nsteps, sbuf), tbuf, ++ gmx_step_str(ir->init_step, sbuf2), ++ ir->init_step*ir->delta_t); ++ } ++ else ++ { ++ fprintf(stderr, "%s steps, %s ps.\n", ++ gmx_step_str(ir->nsteps, sbuf), tbuf); ++ } ++ } ++ fprintf(fplog, "\n"); ++ } ++ ++ print_start(fplog, cr, runtime, "mdrun"); ++ runtime_start(runtime); ++ wallcycle_start(wcycle, ewcRUN); ++ ++ /* safest point to do file checkpointing is here. More general point would be immediately before integrator call */ ++#ifdef GMX_FAHCORE ++ chkpt_ret = fcCheckPointParallel( cr->nodeid, ++ NULL, 0); ++ if (chkpt_ret == 0) ++ { ++ gmx_fatal( 3, __FILE__, __LINE__, "Checkpoint error on step %d\n", 0 ); ++ } ++#endif ++ ++ debug_gmx(); ++ /*********************************************************** ++ * ++ * Loop over MD steps ++ * ++ ************************************************************/ ++ ++ /* if rerunMD then read coordinates and velocities from input trajectory */ ++ if (bRerunMD) ++ { ++ if (getenv("GMX_FORCE_UPDATE")) ++ { ++ bForceUpdate = TRUE; ++ } ++ ++ rerun_fr.natoms = 0; ++ if (MASTER(cr)) ++ { ++ bNotLastFrame = read_first_frame(oenv, &status, ++ opt2fn("-rerun", nfile, fnm), ++ &rerun_fr, TRX_NEED_X | TRX_READ_V); ++ if (rerun_fr.natoms != top_global->natoms) ++ { ++ gmx_fatal(FARGS, ++ "Number of atoms in trajectory (%d) does not match the " ++ "run input file (%d)\n", ++ rerun_fr.natoms, top_global->natoms); ++ } ++ if (ir->ePBC != epbcNONE) ++ { ++ if (!rerun_fr.bBox) ++ { ++ gmx_fatal(FARGS, "Rerun trajectory frame step %d time %f does not contain a box, while pbc is used", rerun_fr.step, rerun_fr.time); ++ } ++ if (max_cutoff2(ir->ePBC, rerun_fr.box) < sqr(fr->rlistlong)) ++ { ++ gmx_fatal(FARGS, "Rerun trajectory frame step %d time %f has too small box dimensions", rerun_fr.step, rerun_fr.time); ++ } ++ } ++ } ++ ++ if (PAR(cr)) ++ { ++ rerun_parallel_comm(cr, &rerun_fr, &bNotLastFrame); ++ } ++ ++ if (ir->ePBC != epbcNONE) ++ { ++ /* Set the shift vectors. ++ * Necessary here when have a static box different from the tpr box. ++ */ ++ calc_shifts(rerun_fr.box, fr->shift_vec); ++ } ++ } ++ ++ /* loop over MD steps or if rerunMD to end of input trajectory */ ++ bFirstStep = TRUE; ++ /* Skip the first Nose-Hoover integration when we get the state from tpx */ ++ bStateFromTPX = !bStateFromCP; ++ bInitStep = bFirstStep && (bStateFromTPX || bVV); ++ bStartingFromCpt = (Flags & MD_STARTFROMCPT) && bInitStep; ++ bLastStep = FALSE; ++ bSumEkinhOld = FALSE; ++ bExchanged = FALSE; ++ ++ init_global_signals(&gs, cr, ir, repl_ex_nst); ++ ++ step = ir->init_step; ++ step_rel = 0; ++ ++ if (ir->nstlist == -1) ++ { ++ init_nlistheuristics(&nlh, bGStatEveryStep, step); ++ } ++ ++ if (MULTISIM(cr) && (repl_ex_nst <= 0 )) ++ { ++ /* check how many steps are left in other sims */ ++ multisim_nsteps = get_multisim_nsteps(cr, ir->nsteps); ++ } ++ ++ ++ /* and stop now if we should */ ++ bLastStep = (bRerunMD || (ir->nsteps >= 0 && step_rel > ir->nsteps) || ++ ((multisim_nsteps >= 0) && (step_rel >= multisim_nsteps ))); ++ while (!bLastStep || (bRerunMD && bNotLastFrame)) ++ { ++ ++ wallcycle_start(wcycle, ewcSTEP); ++ ++ GMX_MPE_LOG(ev_timestep1); ++ ++ if (bRerunMD) ++ { ++ if (rerun_fr.bStep) ++ { ++ step = rerun_fr.step; ++ step_rel = step - ir->init_step; ++ } ++ if (rerun_fr.bTime) ++ { ++ t = rerun_fr.time; ++ } ++ else ++ { ++ t = step; ++ } ++ } ++ else ++ { ++ bLastStep = (step_rel == ir->nsteps); ++ t = t0 + step*ir->delta_t; ++ } ++ ++ if (ir->efep != efepNO || ir->bSimTemp) ++ { ++ /* find and set the current lambdas. If rerunning, we either read in a state, or a lambda value, ++ requiring different logic. */ ++ ++ set_current_lambdas(step, ir->fepvals, bRerunMD, &rerun_fr, state_global, state, lam0); ++ bDoDHDL = do_per_step(step, ir->fepvals->nstdhdl); ++ bDoFEP = (do_per_step(step, nstfep) && (ir->efep != efepNO)); ++ bDoExpanded = (do_per_step(step, ir->expandedvals->nstexpanded) ++ && (ir->bExpanded) && (step > 0) && (!bStartingFromCpt)); ++ } ++ ++ if (bSimAnn) ++ { ++ update_annealing_target_temp(&(ir->opts), t); ++ } ++ ++ if (bRerunMD) ++ { ++ if (!(DOMAINDECOMP(cr) && !MASTER(cr))) ++ { ++ for (i = 0; i < state_global->natoms; i++) ++ { ++ copy_rvec(rerun_fr.x[i], state_global->x[i]); ++ } ++ if (rerun_fr.bV) ++ { ++ for (i = 0; i < state_global->natoms; i++) ++ { ++ copy_rvec(rerun_fr.v[i], state_global->v[i]); ++ } ++ } ++ else ++ { ++ for (i = 0; i < state_global->natoms; i++) ++ { ++ clear_rvec(state_global->v[i]); ++ } ++ if (bRerunWarnNoV) ++ { ++ fprintf(stderr, "\nWARNING: Some frames do not contain velocities.\n" ++ " Ekin, temperature and pressure are incorrect,\n" ++ " the virial will be incorrect when constraints are present.\n" ++ "\n"); ++ bRerunWarnNoV = FALSE; ++ } ++ } ++ } ++ copy_mat(rerun_fr.box, state_global->box); ++ copy_mat(state_global->box, state->box); ++ ++ if (vsite && (Flags & MD_RERUN_VSITE)) ++ { ++ if (DOMAINDECOMP(cr)) ++ { ++ gmx_fatal(FARGS, "Vsite recalculation with -rerun is not implemented for domain decomposition, use particle decomposition"); ++ } ++ if (graph) ++ { ++ /* Following is necessary because the graph may get out of sync ++ * with the coordinates if we only have every N'th coordinate set ++ */ ++ mk_mshift(fplog, graph, fr->ePBC, state->box, state->x); ++ shift_self(graph, state->box, state->x); ++ } ++ construct_vsites(fplog, vsite, state->x, nrnb, ir->delta_t, state->v, ++ top->idef.iparams, top->idef.il, ++ fr->ePBC, fr->bMolPBC, graph, cr, state->box); ++ if (graph) ++ { ++ unshift_self(graph, state->box, state->x); ++ } ++ } ++ } ++ ++ /* Stop Center of Mass motion */ ++ bStopCM = (ir->comm_mode != ecmNO && do_per_step(step, ir->nstcomm)); ++ ++ /* Copy back starting coordinates in case we're doing a forcefield scan */ ++ if (bFFscan) ++ { ++ for (ii = 0; (ii < state->natoms); ii++) ++ { ++ copy_rvec(xcopy[ii], state->x[ii]); ++ copy_rvec(vcopy[ii], state->v[ii]); ++ } ++ copy_mat(boxcopy, state->box); ++ } ++ ++ if (bRerunMD) ++ { ++ /* for rerun MD always do Neighbour Searching */ ++ bNS = (bFirstStep || ir->nstlist != 0); ++ bNStList = bNS; ++ } ++ else ++ { ++ /* Determine whether or not to do Neighbour Searching and LR */ ++ bNStList = (ir->nstlist > 0 && step % ir->nstlist == 0); ++ ++ bNS = (bFirstStep || bExchanged || bNStList || bDoFEP || ++ (ir->nstlist == -1 && nlh.nabnsb > 0)); ++ ++ if (bNS && ir->nstlist == -1) ++ { ++ set_nlistheuristics(&nlh, bFirstStep || bExchanged || bDoFEP, step); ++ } ++ } ++ ++ /* check whether we should stop because another simulation has ++ stopped. */ ++ if (MULTISIM(cr)) ++ { ++ if ( (multisim_nsteps >= 0) && (step_rel >= multisim_nsteps) && ++ (multisim_nsteps != ir->nsteps) ) ++ { ++ if (bNS) ++ { ++ if (MASTER(cr)) ++ { ++ fprintf(stderr, ++ "Stopping simulation %d because another one has finished\n", ++ cr->ms->sim); ++ } ++ bLastStep = TRUE; ++ gs.sig[eglsCHKPT] = 1; ++ } ++ } ++ } ++ ++ /* < 0 means stop at next step, > 0 means stop at next NS step */ ++ if ( (gs.set[eglsSTOPCOND] < 0) || ++ ( (gs.set[eglsSTOPCOND] > 0) && (bNStList || ir->nstlist == 0) ) ) ++ { ++ bLastStep = TRUE; ++ } ++ ++ /* Determine whether or not to update the Born radii if doing GB */ ++ bBornRadii = bFirstStep; ++ if (ir->implicit_solvent && (step % ir->nstgbradii == 0)) ++ { ++ bBornRadii = TRUE; ++ } ++ ++ do_log = do_per_step(step, ir->nstlog) || bFirstStep || bLastStep; ++ do_verbose = bVerbose && ++ (step % stepout == 0 || bFirstStep || bLastStep); ++ ++ if (bNS && !(bFirstStep && ir->bContinuation && !bRerunMD)) ++ { ++ if (bRerunMD) ++ { ++ bMasterState = TRUE; ++ } ++ else ++ { ++ bMasterState = FALSE; ++ /* Correct the new box if it is too skewed */ ++ if (DYNAMIC_BOX(*ir)) ++ { ++ if (correct_box(fplog, step, state->box, graph)) ++ { ++ bMasterState = TRUE; ++ } ++ } ++ if (DOMAINDECOMP(cr) && bMasterState) ++ { ++ dd_collect_state(cr->dd, state, state_global); ++ } ++ } ++ ++ if (DOMAINDECOMP(cr)) ++ { ++ /* Repartition the domain decomposition */ ++ wallcycle_start(wcycle, ewcDOMDEC); ++ dd_partition_system(fplog, step, cr, ++ bMasterState, nstglobalcomm, ++ state_global, top_global, ir, ++ state, &f, mdatoms, top, fr, ++ vsite, shellfc, constr, ++ nrnb, wcycle, ++ do_verbose && !bPMETuneRunning); ++ wallcycle_stop(wcycle, ewcDOMDEC); ++ /* If using an iterative integrator, reallocate space to match the decomposition */ ++ } ++ } ++ ++ if (MASTER(cr) && do_log && !bFFscan) ++ { ++ print_ebin_header(fplog, step, t, state->lambda[efptFEP]); /* can we improve the information printed here? */ ++ } ++ ++ if (ir->efep != efepNO) ++ { ++ update_mdatoms(mdatoms, state->lambda[efptMASS]); ++ } ++ ++ if ((bRerunMD && rerun_fr.bV) || bExchanged) ++ { ++ ++ /* We need the kinetic energy at minus the half step for determining ++ * the full step kinetic energy and possibly for T-coupling.*/ ++ /* This may not be quite working correctly yet . . . . */ ++ compute_globals(fplog, gstat, cr, ir, fr, ekind, state, state_global, mdatoms, nrnb, vcm, ++ wcycle, enerd, NULL, NULL, NULL, NULL, mu_tot, ++ constr, NULL, FALSE, state->box, ++ top_global, &pcurr, top_global->natoms, &bSumEkinhOld, ++ CGLO_RERUNMD | CGLO_GSTAT | CGLO_TEMPERATURE); ++ } ++ clear_mat(force_vir); ++ ++ /* Ionize the atoms if necessary */ ++ if (bIonize) ++ { ++ ionize(fplog, oenv, mdatoms, top_global, t, ir, state->x, state->v, ++ mdatoms->start, mdatoms->start+mdatoms->homenr, state->box, cr); ++ } ++ ++ /* Update force field in ffscan program */ ++ if (bFFscan) ++ { ++ if (update_forcefield(fplog, ++ nfile, fnm, fr, ++ mdatoms->nr, state->x, state->box)) ++ { ++ gmx_finalize_par(); ++ ++ exit(0); ++ } ++ } ++ ++ GMX_MPE_LOG(ev_timestep2); ++ ++ /* We write a checkpoint at this MD step when: ++ * either at an NS step when we signalled through gs, ++ * or at the last step (but not when we do not want confout), ++ * but never at the first step or with rerun. ++ */ ++ bCPT = (((gs.set[eglsCHKPT] && (bNS || ir->nstlist == 0)) || ++ (bLastStep && (Flags & MD_CONFOUT))) && ++ step > ir->init_step && !bRerunMD); ++ if (bCPT) ++ { ++ gs.set[eglsCHKPT] = 0; ++ } ++ ++ /* Determine the energy and pressure: ++ * at nstcalcenergy steps and at energy output steps (set below). ++ */ ++ if (EI_VV(ir->eI) && (!bInitStep)) ++ { ++ /* for vv, the first half of the integration actually corresponds ++ to the previous step. bCalcEner is only required to be evaluated on the 'next' step, ++ but the virial needs to be calculated on both the current step and the 'next' step. Future ++ reorganization may be able to get rid of one of the bCalcVir=TRUE steps. */ ++ ++ bCalcEner = do_per_step(step-1, ir->nstcalcenergy); ++ bCalcVir = bCalcEner || ++ (ir->epc != epcNO && (do_per_step(step, ir->nstpcouple) || do_per_step(step-1, ir->nstpcouple))); ++ } ++ else ++ { ++ bCalcEner = do_per_step(step, ir->nstcalcenergy); ++ bCalcVir = bCalcEner || ++ (ir->epc != epcNO && do_per_step(step, ir->nstpcouple)); ++ } ++ ++ /* Do we need global communication ? */ ++ bGStat = (bCalcVir || bCalcEner || bStopCM || ++ do_per_step(step, nstglobalcomm) || (bVV && IR_NVT_TROTTER(ir) && do_per_step(step-1, nstglobalcomm)) || ++ (ir->nstlist == -1 && !bRerunMD && step >= nlh.step_nscheck)); ++ ++ do_ene = (do_per_step(step, ir->nstenergy) || bLastStep); ++ ++ if (do_ene || do_log) ++ { ++ bCalcVir = TRUE; ++ bCalcEner = TRUE; ++ bGStat = TRUE; ++ } ++ ++ /* these CGLO_ options remain the same throughout the iteration */ ++ cglo_flags = ((bRerunMD ? CGLO_RERUNMD : 0) | ++ (bGStat ? CGLO_GSTAT : 0) ++ ); ++ ++ force_flags = (GMX_FORCE_STATECHANGED | ++ ((DYNAMIC_BOX(*ir) || bRerunMD) ? GMX_FORCE_DYNAMICBOX : 0) | ++ GMX_FORCE_ALLFORCES | ++ GMX_FORCE_SEPLRF | ++ (bCalcVir ? GMX_FORCE_VIRIAL : 0) | ++ (bCalcEner ? GMX_FORCE_ENERGY : 0) | ++ (bDoFEP ? GMX_FORCE_DHDL : 0) ++ ); ++ ++ if (fr->bTwinRange) ++ { ++ if (do_per_step(step, ir->nstcalclr)) ++ { ++ force_flags |= GMX_FORCE_DO_LR; ++ } ++ } ++ ++ if (shellfc) ++ { ++ /* Now is the time to relax the shells */ ++ count = relax_shell_flexcon(fplog, cr, bVerbose, bFFscan ? step+1 : step, ++ ir, bNS, force_flags, ++ bStopCM, top, top_global, ++ constr, enerd, fcd, ++ state, f, force_vir, mdatoms, ++ nrnb, wcycle, graph, groups, ++ shellfc, fr, bBornRadii, t, mu_tot, ++ state->natoms, &bConverged, vsite, ++ outf->fp_field); ++ tcount += count; ++ ++ if (bConverged) ++ { ++ nconverged++; ++ } ++ } ++ else ++ { ++ /* The coordinates (x) are shifted (to get whole molecules) ++ * in do_force. ++ * This is parallellized as well, and does communication too. ++ * Check comments in sim_util.c ++ */ ++ do_force(fplog, cr, ir, step, nrnb, wcycle, top, top_global, groups, ++ state->box, state->x, &state->hist, ++ f, force_vir, mdatoms, enerd, fcd, ++ state->lambda, graph, ++ fr, vsite, mu_tot, t, outf->fp_field, ed, bBornRadii, ++ (bNS ? GMX_FORCE_NS : 0) | force_flags); ++ } ++ ++ GMX_BARRIER(cr->mpi_comm_mygroup); ++ ++ if (bTCR) ++ { ++ mu_aver = calc_mu_aver(cr, state->x, mdatoms->chargeA, ++ mu_tot, &top_global->mols, mdatoms, gnx, grpindex); ++ } ++ ++ if (bTCR && bFirstStep) ++ { ++ tcr = init_coupling(fplog, nfile, fnm, cr, fr, mdatoms, &(top->idef)); ++ fprintf(fplog, "Done init_coupling\n"); ++ fflush(fplog); ++ } ++ ++ if (bVV && !bStartingFromCpt && !bRerunMD) ++ /* ############### START FIRST UPDATE HALF-STEP FOR VV METHODS############### */ ++ { ++ if (ir->eI == eiVV && bInitStep) ++ { ++ /* if using velocity verlet with full time step Ekin, ++ * take the first half step only to compute the ++ * virial for the first step. From there, ++ * revert back to the initial coordinates ++ * so that the input is actually the initial step. ++ */ ++ copy_rvecn(state->v, cbuf, 0, state->natoms); /* should make this better for parallelizing? */ ++ } ++ else ++ { ++ /* this is for NHC in the Ekin(t+dt/2) version of vv */ ++ trotter_update(ir, step, ekind, enerd, state, total_vir, mdatoms, &MassQ, trotter_seq, ettTSEQ1); ++ } ++ ++ /* If we are using twin-range interactions where the long-range component ++ * is only evaluated every nstcalclr>1 steps, we should do a special update ++ * step to combine the long-range forces on these steps. ++ * For nstcalclr=1 this is not done, since the forces would have been added ++ * directly to the short-range forces already. ++ * ++ * TODO Remove various aspects of VV+twin-range in master ++ * branch, because VV integrators did not ever support ++ * twin-range multiple time stepping with constraints. ++ */ ++ bUpdateDoLR = (fr->bTwinRange && do_per_step(step, ir->nstcalclr)); ++ ++ update_coords(fplog, step, ir, mdatoms, state, fr->bMolPBC, ++ f, bUpdateDoLR, fr->f_twin, bCalcVir ? &fr->vir_twin_constr : NULL, fcd, ++ ekind, M, wcycle, upd, bInitStep, etrtVELOCITY1, ++ cr, nrnb, constr, &top->idef); ++ ++ if (bIterativeCase && do_per_step(step-1, ir->nstpcouple) && !bInitStep) ++ { ++ gmx_iterate_init(&iterate, TRUE); ++ } ++ /* for iterations, we save these vectors, as we will be self-consistently iterating ++ the calculations */ ++ ++ /*#### UPDATE EXTENDED VARIABLES IN TROTTER FORMULATION */ ++ ++ /* save the state */ ++ if (iterate.bIterationActive) ++ { ++ copy_coupling_state(state, bufstate, ekind, ekind_save, &(ir->opts)); ++ } ++ ++ bFirstIterate = TRUE; ++ while (bFirstIterate || iterate.bIterationActive) ++ { ++ if (iterate.bIterationActive) ++ { ++ copy_coupling_state(bufstate, state, ekind_save, ekind, &(ir->opts)); ++ if (bFirstIterate && bTrotter) ++ { ++ /* The first time through, we need a decent first estimate ++ of veta(t+dt) to compute the constraints. Do ++ this by computing the box volume part of the ++ trotter integration at this time. Nothing else ++ should be changed by this routine here. If ++ !(first time), we start with the previous value ++ of veta. */ ++ ++ veta_save = state->veta; ++ trotter_update(ir, step, ekind, enerd, state, total_vir, mdatoms, &MassQ, trotter_seq, ettTSEQ0); ++ vetanew = state->veta; ++ state->veta = veta_save; ++ } ++ } ++ ++ bOK = TRUE; ++ if (!bRerunMD || rerun_fr.bV || bForceUpdate) /* Why is rerun_fr.bV here? Unclear. */ ++ { ++ update_constraints(fplog, step, NULL, ir, ekind, mdatoms, ++ state, fr->bMolPBC, graph, f, ++ &top->idef, shake_vir, NULL, ++ cr, nrnb, wcycle, upd, constr, ++ bInitStep, TRUE, bCalcVir, vetanew); ++ ++ if (bCalcVir && bUpdateDoLR && ir->nstcalclr > 1) ++ { ++ /* Correct the virial for multiple time stepping */ ++ m_sub(shake_vir, fr->vir_twin_constr, shake_vir); ++ } ++ ++ if (!bOK && !bFFscan) ++ { ++ gmx_fatal(FARGS, "Constraint error: Shake, Lincs or Settle could not solve the constrains"); ++ } ++ ++ } ++ else if (graph) ++ { ++ /* Need to unshift here if a do_force has been ++ called in the previous step */ ++ unshift_self(graph, state->box, state->x); ++ } ++ ++ /* if VV, compute the pressure and constraints */ ++ /* For VV2, we strictly only need this if using pressure ++ * control, but we really would like to have accurate pressures ++ * printed out. ++ * Think about ways around this in the future? ++ * For now, keep this choice in comments. ++ */ ++ /*bPres = (ir->eI==eiVV || IR_NPT_TROTTER(ir)); */ ++ /*bTemp = ((ir->eI==eiVV &&(!bInitStep)) || (ir->eI==eiVVAK && IR_NPT_TROTTER(ir)));*/ ++ bPres = TRUE; ++ bTemp = ((ir->eI == eiVV && (!bInitStep)) || (ir->eI == eiVVAK)); ++ if (bCalcEner && ir->eI == eiVVAK) /*MRS: 7/9/2010 -- this still doesn't fix it?*/ ++ { ++ bSumEkinhOld = TRUE; ++ } ++ /* for vv, the first half of the integration actually corresponds to the previous step. ++ So we need information from the last step in the first half of the integration */ ++ if (bGStat || do_per_step(step-1, nstglobalcomm)) ++ { ++ compute_globals(fplog, gstat, cr, ir, fr, ekind, state, state_global, mdatoms, nrnb, vcm, ++ wcycle, enerd, force_vir, shake_vir, total_vir, pres, mu_tot, ++ constr, NULL, FALSE, state->box, ++ top_global, &pcurr, top_global->natoms, &bSumEkinhOld, ++ cglo_flags ++ | CGLO_ENERGY ++ | (bTemp ? CGLO_TEMPERATURE : 0) ++ | (bPres ? CGLO_PRESSURE : 0) ++ | (bPres ? CGLO_CONSTRAINT : 0) ++ | ((iterate.bIterationActive) ? CGLO_ITERATE : 0) ++ | (bFirstIterate ? CGLO_FIRSTITERATE : 0) ++ | CGLO_SCALEEKIN ++ ); ++ /* explanation of above: ++ a) We compute Ekin at the full time step ++ if 1) we are using the AveVel Ekin, and it's not the ++ initial step, or 2) if we are using AveEkin, but need the full ++ time step kinetic energy for the pressure (always true now, since we want accurate statistics). ++ b) If we are using EkinAveEkin for the kinetic energy for the temperature control, we still feed in ++ EkinAveVel because it's needed for the pressure */ ++ } ++ /* temperature scaling and pressure scaling to produce the extended variables at t+dt */ ++ if (!bInitStep) ++ { ++ if (bTrotter) ++ { ++ m_add(force_vir, shake_vir, total_vir); /* we need the un-dispersion corrected total vir here */ ++ trotter_update(ir, step, ekind, enerd, state, total_vir, mdatoms, &MassQ, trotter_seq, ettTSEQ2); ++ } ++ else ++ { ++ if (bExchanged) ++ { ++ ++ /* We need the kinetic energy at minus the half step for determining ++ * the full step kinetic energy and possibly for T-coupling.*/ ++ /* This may not be quite working correctly yet . . . . */ ++ compute_globals(fplog, gstat, cr, ir, fr, ekind, state, state_global, mdatoms, nrnb, vcm, ++ wcycle, enerd, NULL, NULL, NULL, NULL, mu_tot, ++ constr, NULL, FALSE, state->box, ++ top_global, &pcurr, top_global->natoms, &bSumEkinhOld, ++ CGLO_RERUNMD | CGLO_GSTAT | CGLO_TEMPERATURE); ++ } ++ } ++ } ++ ++ if (iterate.bIterationActive && ++ done_iterating(cr, fplog, step, &iterate, bFirstIterate, ++ state->veta, &vetanew)) ++ { ++ break; ++ } ++ bFirstIterate = FALSE; ++ } ++ ++ if (bTrotter && !bInitStep) ++ { ++ copy_mat(shake_vir, state->svir_prev); ++ copy_mat(force_vir, state->fvir_prev); ++ if (IR_NVT_TROTTER(ir) && ir->eI == eiVV) ++ { ++ /* update temperature and kinetic energy now that step is over - this is the v(t+dt) point */ ++ enerd->term[F_TEMP] = sum_ekin(&(ir->opts), ekind, NULL, (ir->eI == eiVV), FALSE, FALSE); ++ enerd->term[F_EKIN] = trace(ekind->ekin); ++ } ++ } ++ /* if it's the initial step, we performed this first step just to get the constraint virial */ ++ if (bInitStep && ir->eI == eiVV) ++ { ++ copy_rvecn(cbuf, state->v, 0, state->natoms); ++ } ++ ++ GMX_MPE_LOG(ev_timestep1); ++ } ++ ++ /* MRS -- now done iterating -- compute the conserved quantity */ ++ if (bVV) ++ { ++ saved_conserved_quantity = compute_conserved_from_auxiliary(ir, state, &MassQ); ++ if (ir->eI == eiVV) ++ { ++ last_ekin = enerd->term[F_EKIN]; ++ } ++ if ((ir->eDispCorr != edispcEnerPres) && (ir->eDispCorr != edispcAllEnerPres)) ++ { ++ saved_conserved_quantity -= enerd->term[F_DISPCORR]; ++ } ++ /* sum up the foreign energy and dhdl terms for vv. currently done every step so that dhdl is correct in the .edr */ ++ if (!bRerunMD) ++ { ++ sum_dhdl(enerd, state->lambda, ir->fepvals); ++ } ++ } ++ ++ /* ######## END FIRST UPDATE STEP ############## */ ++ /* ######## If doing VV, we now have v(dt) ###### */ ++ if (bDoExpanded) ++ { ++ /* perform extended ensemble sampling in lambda - we don't ++ actually move to the new state before outputting ++ statistics, but if performing simulated tempering, we ++ do update the velocities and the tau_t. */ ++ ++ lamnew = ExpandedEnsembleDynamics(fplog, ir, enerd, state, &MassQ, state->fep_state, &state->dfhist, step, mcrng, state->v, mdatoms); ++ /* history is maintained in state->dfhist, but state_global is what is sent to trajectory and log output */ ++ copy_df_history(&state_global->dfhist,&state->dfhist); ++ } ++ /* ################## START TRAJECTORY OUTPUT ################# */ ++ ++ /* Now we have the energies and forces corresponding to the ++ * coordinates at time t. We must output all of this before ++ * the update. ++ * for RerunMD t is read from input trajectory ++ */ ++ GMX_MPE_LOG(ev_output_start); ++ ++ mdof_flags = 0; ++ if (do_per_step(step, ir->nstxout)) ++ { ++ mdof_flags |= MDOF_X; ++ } ++ if (do_per_step(step, ir->nstvout)) ++ { ++ mdof_flags |= MDOF_V; ++ } ++ if (do_per_step(step, ir->nstfout)) ++ { ++ mdof_flags |= MDOF_F; ++ } ++ if (do_per_step(step, ir->nstxtcout)) ++ { ++ mdof_flags |= MDOF_XTC; ++ } ++ if (bCPT) ++ { ++ mdof_flags |= MDOF_CPT; ++ } ++ ; ++ ++#if defined(GMX_FAHCORE) || defined(GMX_WRITELASTSTEP) ++ if (bLastStep) ++ { ++ /* Enforce writing positions and velocities at end of run */ ++ mdof_flags |= (MDOF_X | MDOF_V); ++ } ++#endif ++#ifdef GMX_FAHCORE ++ if (MASTER(cr)) ++ { ++ fcReportProgress( ir->nsteps, step ); ++ } ++ ++#if defined(__native_client__) ++ fcCheckin(MASTER(cr)); ++#endif ++ ++ /* sync bCPT and fc record-keeping */ ++ if (bCPT && MASTER(cr)) ++ { ++ fcRequestCheckPoint(); ++ } ++#endif ++ ++ if (mdof_flags != 0) ++ { ++ wallcycle_start(wcycle, ewcTRAJ); ++ if (bCPT) ++ { ++ if (state->flags & (1<flags & (1<ekinstate.bUpToDate = FALSE; ++ } ++ else ++ { ++ update_ekinstate(&state_global->ekinstate, ekind); ++ state_global->ekinstate.bUpToDate = TRUE; ++ } ++ update_energyhistory(&state_global->enerhist, mdebin); ++ } ++ } ++ write_traj(fplog, cr, outf, mdof_flags, top_global, ++ step, t, state, state_global, f, f_global, &n_xtc, &x_xtc); ++ if (bCPT) ++ { ++ nchkpt++; ++ bCPT = FALSE; ++ } ++ debug_gmx(); ++ if (bLastStep && step_rel == ir->nsteps && ++ (Flags & MD_CONFOUT) && MASTER(cr) && ++ !bRerunMD && !bFFscan) ++ { ++ /* x and v have been collected in write_traj, ++ * because a checkpoint file will always be written ++ * at the last step. ++ */ ++ fprintf(stderr, "\nWriting final coordinates.\n"); ++ if (fr->bMolPBC) ++ { ++ /* Make molecules whole only for confout writing */ ++ do_pbc_mtop(fplog, ir->ePBC, state->box, top_global, state_global->x); ++ } ++ write_sto_conf_mtop(ftp2fn(efSTO, nfile, fnm), ++ *top_global->name, top_global, ++ state_global->x, state_global->v, ++ ir->ePBC, state->box); ++ debug_gmx(); ++ } ++ wallcycle_stop(wcycle, ewcTRAJ); ++ } ++ GMX_MPE_LOG(ev_output_finish); ++ ++ /* kludge -- virial is lost with restart for NPT control. Must restart */ ++ if (bStartingFromCpt && bVV) ++ { ++ copy_mat(state->svir_prev, shake_vir); ++ copy_mat(state->fvir_prev, force_vir); ++ } ++ /* ################## END TRAJECTORY OUTPUT ################ */ ++ ++ /* Determine the wallclock run time up till now */ ++ run_time = gmx_gettime() - (double)runtime->real; ++ ++ /* Check whether everything is still allright */ ++ if (((int)gmx_get_stop_condition() > handled_stop_condition) ++#ifdef GMX_THREAD_MPI ++ && MASTER(cr) ++#endif ++ ) ++ { ++ /* this is just make gs.sig compatible with the hack ++ of sending signals around by MPI_Reduce with together with ++ other floats */ ++ if (gmx_get_stop_condition() == gmx_stop_cond_next_ns) ++ { ++ gs.sig[eglsSTOPCOND] = 1; ++ } ++ if (gmx_get_stop_condition() == gmx_stop_cond_next) ++ { ++ gs.sig[eglsSTOPCOND] = -1; ++ } ++ /* < 0 means stop at next step, > 0 means stop at next NS step */ ++ if (fplog) ++ { ++ fprintf(fplog, ++ "\n\nReceived the %s signal, stopping at the next %sstep\n\n", ++ gmx_get_signal_name(), ++ gs.sig[eglsSTOPCOND] == 1 ? "NS " : ""); ++ fflush(fplog); ++ } ++ fprintf(stderr, ++ "\n\nReceived the %s signal, stopping at the next %sstep\n\n", ++ gmx_get_signal_name(), ++ gs.sig[eglsSTOPCOND] == 1 ? "NS " : ""); ++ fflush(stderr); ++ handled_stop_condition = (int)gmx_get_stop_condition(); ++ } ++ else if (MASTER(cr) && (bNS || ir->nstlist <= 0) && ++ (max_hours > 0 && run_time > max_hours*60.0*60.0*0.99) && ++ gs.sig[eglsSTOPCOND] == 0 && gs.set[eglsSTOPCOND] == 0) ++ { ++ /* Signal to terminate the run */ ++ gs.sig[eglsSTOPCOND] = 1; ++ if (fplog) ++ { ++ fprintf(fplog, "\nStep %s: Run time exceeded %.3f hours, will terminate the run\n", gmx_step_str(step, sbuf), max_hours*0.99); ++ } ++ fprintf(stderr, "\nStep %s: Run time exceeded %.3f hours, will terminate the run\n", gmx_step_str(step, sbuf), max_hours*0.99); ++ } ++ ++ if (bResetCountersHalfMaxH && MASTER(cr) && ++ run_time > max_hours*60.0*60.0*0.495) ++ { ++ gs.sig[eglsRESETCOUNTERS] = 1; ++ } ++ ++ if (ir->nstlist == -1 && !bRerunMD) ++ { ++ /* When bGStatEveryStep=FALSE, global_stat is only called ++ * when we check the atom displacements, not at NS steps. ++ * This means that also the bonded interaction count check is not ++ * performed immediately after NS. Therefore a few MD steps could ++ * be performed with missing interactions. ++ * But wrong energies are never written to file, ++ * since energies are only written after global_stat ++ * has been called. ++ */ ++ if (step >= nlh.step_nscheck) ++ { ++ nlh.nabnsb = natoms_beyond_ns_buffer(ir, fr, &top->cgs, ++ nlh.scale_tot, state->x); ++ } ++ else ++ { ++ /* This is not necessarily true, ++ * but step_nscheck is determined quite conservatively. ++ */ ++ nlh.nabnsb = 0; ++ } ++ } ++ ++ /* In parallel we only have to check for checkpointing in steps ++ * where we do global communication, ++ * otherwise the other nodes don't know. ++ */ ++ if (MASTER(cr) && ((bGStat || !PAR(cr)) && ++ cpt_period >= 0 && ++ (cpt_period == 0 || ++ run_time >= nchkpt*cpt_period*60.0)) && ++ gs.set[eglsCHKPT] == 0) ++ { ++ gs.sig[eglsCHKPT] = 1; ++ } ++ ++ /* at the start of step, randomize or scale the velocities (trotter done elsewhere) */ ++ if (EI_VV(ir->eI)) ++ { ++ if (!bInitStep) ++ { ++ update_tcouple(fplog, step, ir, state, ekind, wcycle, upd, &MassQ, mdatoms); ++ } ++ if (ETC_ANDERSEN(ir->etc)) /* keep this outside of update_tcouple because of the extra info required to pass */ ++ { ++ gmx_bool bIfRandomize; ++ bIfRandomize = update_randomize_velocities(ir, step, mdatoms, state, upd, &top->idef, constr, DOMAINDECOMP(cr)); ++ /* if we have constraints, we have to remove the kinetic energy parallel to the bonds */ ++ if (constr && bIfRandomize) ++ { ++ update_constraints(fplog, step, NULL, ir, ekind, mdatoms, ++ state, fr->bMolPBC, graph, f, ++ &top->idef, tmp_vir, NULL, ++ cr, nrnb, wcycle, upd, constr, ++ bInitStep, TRUE, bCalcVir, vetanew); ++ } ++ } ++ } ++ ++ if (bIterativeCase && do_per_step(step, ir->nstpcouple)) ++ { ++ gmx_iterate_init(&iterate, TRUE); ++ /* for iterations, we save these vectors, as we will be redoing the calculations */ ++ copy_coupling_state(state, bufstate, ekind, ekind_save, &(ir->opts)); ++ } ++ ++ bFirstIterate = TRUE; ++ while (bFirstIterate || iterate.bIterationActive) ++ { ++ /* We now restore these vectors to redo the calculation with improved extended variables */ ++ if (iterate.bIterationActive) ++ { ++ copy_coupling_state(bufstate, state, ekind_save, ekind, &(ir->opts)); ++ } ++ ++ /* We make the decision to break or not -after- the calculation of Ekin and Pressure, ++ so scroll down for that logic */ ++ ++ /* ######### START SECOND UPDATE STEP ################# */ ++ GMX_MPE_LOG(ev_update_start); ++ /* Box is changed in update() when we do pressure coupling, ++ * but we should still use the old box for energy corrections and when ++ * writing it to the energy file, so it matches the trajectory files for ++ * the same timestep above. Make a copy in a separate array. ++ */ ++ copy_mat(state->box, lastbox); ++ ++ bOK = TRUE; ++ dvdl_constr = 0; ++ ++ if (!(bRerunMD && !rerun_fr.bV && !bForceUpdate)) ++ { ++ wallcycle_start(wcycle, ewcUPDATE); ++ /* UPDATE PRESSURE VARIABLES IN TROTTER FORMULATION WITH CONSTRAINTS */ ++ if (bTrotter) ++ { ++ if (iterate.bIterationActive) ++ { ++ if (bFirstIterate) ++ { ++ scalevir = 1; ++ } ++ else ++ { ++ /* we use a new value of scalevir to converge the iterations faster */ ++ scalevir = tracevir/trace(shake_vir); ++ } ++ msmul(shake_vir, scalevir, shake_vir); ++ m_add(force_vir, shake_vir, total_vir); ++ clear_mat(shake_vir); ++ } ++ trotter_update(ir, step, ekind, enerd, state, total_vir, mdatoms, &MassQ, trotter_seq, ettTSEQ3); ++ /* We can only do Berendsen coupling after we have summed ++ * the kinetic energy or virial. Since the happens ++ * in global_state after update, we should only do it at ++ * step % nstlist = 1 with bGStatEveryStep=FALSE. ++ */ ++ } ++ else ++ { ++ update_tcouple(fplog, step, ir, state, ekind, wcycle, upd, &MassQ, mdatoms); ++ update_pcouple(fplog, step, ir, state, pcoupl_mu, M, wcycle, ++ upd, bInitStep); ++ } ++ ++ if (bVV) ++ { ++ bUpdateDoLR = (fr->bTwinRange && do_per_step(step, ir->nstcalclr)); ++ ++ /* velocity half-step update */ ++ update_coords(fplog, step, ir, mdatoms, state, fr->bMolPBC, f, ++ bUpdateDoLR, fr->f_twin, bCalcVir ? &fr->vir_twin_constr : NULL, fcd, ++ ekind, M, wcycle, upd, FALSE, etrtVELOCITY2, ++ cr, nrnb, constr, &top->idef); ++ } ++ ++ /* Above, initialize just copies ekinh into ekin, ++ * it doesn't copy position (for VV), ++ * and entire integrator for MD. ++ */ ++ ++ if (ir->eI == eiVVAK) ++ { ++ copy_rvecn(state->x, cbuf, 0, state->natoms); ++ } ++ bUpdateDoLR = (fr->bTwinRange && do_per_step(step, ir->nstcalclr)); ++ ++ update_coords(fplog, step, ir, mdatoms, state, fr->bMolPBC, f, ++ bUpdateDoLR, fr->f_twin, bCalcVir ? &fr->vir_twin_constr : NULL, fcd, ++ ekind, M, wcycle, upd, bInitStep, etrtPOSITION, cr, nrnb, constr, &top->idef); ++ wallcycle_stop(wcycle, ewcUPDATE); ++ ++ update_constraints(fplog, step, &dvdl_constr, ir, ekind, mdatoms, state, ++ fr->bMolPBC, graph, f, ++ &top->idef, shake_vir, force_vir, ++ cr, nrnb, wcycle, upd, constr, ++ bInitStep, FALSE, bCalcVir, state->veta); ++ ++ if (bCalcVir && bUpdateDoLR && ir->nstcalclr > 1) ++ { ++ /* Correct the virial for multiple time stepping */ ++ m_sub(shake_vir, fr->vir_twin_constr, shake_vir); ++ } ++ ++ if (ir->eI == eiVVAK) ++ { ++ /* erase F_EKIN and F_TEMP here? */ ++ /* just compute the kinetic energy at the half step to perform a trotter step */ ++ compute_globals(fplog, gstat, cr, ir, fr, ekind, state, state_global, mdatoms, nrnb, vcm, ++ wcycle, enerd, force_vir, shake_vir, total_vir, pres, mu_tot, ++ constr, NULL, FALSE, lastbox, ++ top_global, &pcurr, top_global->natoms, &bSumEkinhOld, ++ cglo_flags | CGLO_TEMPERATURE ++ ); ++ wallcycle_start(wcycle, ewcUPDATE); ++ trotter_update(ir, step, ekind, enerd, state, total_vir, mdatoms, &MassQ, trotter_seq, ettTSEQ4); ++ /* now we know the scaling, we can compute the positions again again */ ++ copy_rvecn(cbuf, state->x, 0, state->natoms); ++ ++ bUpdateDoLR = (fr->bTwinRange && do_per_step(step, ir->nstcalclr)); ++ ++ update_coords(fplog, step, ir, mdatoms, state, fr->bMolPBC, f, ++ bUpdateDoLR, fr->f_twin, bCalcVir ? &fr->vir_twin_constr : NULL, fcd, ++ ekind, M, wcycle, upd, bInitStep, etrtPOSITION, cr, nrnb, constr, &top->idef); ++ wallcycle_stop(wcycle, ewcUPDATE); ++ ++ /* do we need an extra constraint here? just need to copy out of state->v to upd->xp? */ ++ /* are the small terms in the shake_vir here due ++ * to numerical errors, or are they important ++ * physically? I'm thinking they are just errors, but not completely sure. ++ * For now, will call without actually constraining, constr=NULL*/ ++ update_constraints(fplog, step, NULL, ir, ekind, mdatoms, ++ state, fr->bMolPBC, graph, f, ++ &top->idef, tmp_vir, force_vir, ++ cr, nrnb, wcycle, upd, NULL, ++ bInitStep, FALSE, bCalcVir, ++ state->veta); ++ } ++ if (!bOK && !bFFscan) ++ { ++ gmx_fatal(FARGS, "Constraint error: Shake, Lincs or Settle could not solve the constrains"); ++ } ++ ++ if (fr->bSepDVDL && fplog && do_log) ++ { ++ fprintf(fplog, sepdvdlformat, "Constraint dV/dl", 0.0, dvdl_constr); ++ } ++ if (bVV) ++ { ++ /* this factor or 2 correction is necessary ++ because half of the constraint force is removed ++ in the vv step, so we have to double it. See ++ the Redmine issue #1255. It is not yet clear ++ if the factor of 2 is exact, or just a very ++ good approximation, and this will be ++ investigated. The next step is to see if this ++ can be done adding a dhdl contribution from the ++ rattle step, but this is somewhat more ++ complicated with the current code. Will be ++ investigated, hopefully for 4.6.3. However, ++ this current solution is much better than ++ having it completely wrong. ++ */ ++ enerd->term[F_DVDL_CONSTR] += 2*dvdl_constr; ++ } ++ else ++ { ++ enerd->term[F_DVDL_CONSTR] += dvdl_constr; ++ } ++ } ++ else if (graph) ++ { ++ /* Need to unshift here */ ++ unshift_self(graph, state->box, state->x); ++ } ++ ++ GMX_BARRIER(cr->mpi_comm_mygroup); ++ GMX_MPE_LOG(ev_update_finish); ++ ++ if (vsite != NULL) ++ { ++ wallcycle_start(wcycle, ewcVSITECONSTR); ++ if (graph != NULL) ++ { ++ shift_self(graph, state->box, state->x); ++ } ++ construct_vsites(fplog, vsite, state->x, nrnb, ir->delta_t, state->v, ++ top->idef.iparams, top->idef.il, ++ fr->ePBC, fr->bMolPBC, graph, cr, state->box); ++ ++ if (graph != NULL) ++ { ++ unshift_self(graph, state->box, state->x); ++ } ++ wallcycle_stop(wcycle, ewcVSITECONSTR); ++ } ++ ++ /* ############## IF NOT VV, Calculate globals HERE, also iterate constraints ############ */ ++ /* With Leap-Frog we can skip compute_globals at ++ * non-communication steps, but we need to calculate ++ * the kinetic energy one step before communication. ++ */ ++ if (bGStat || (!EI_VV(ir->eI) && do_per_step(step+1, nstglobalcomm))) ++ { ++ if (ir->nstlist == -1 && bFirstIterate) ++ { ++ gs.sig[eglsNABNSB] = nlh.nabnsb; ++ } ++ compute_globals(fplog, gstat, cr, ir, fr, ekind, state, state_global, mdatoms, nrnb, vcm, ++ wcycle, enerd, force_vir, shake_vir, total_vir, pres, mu_tot, ++ constr, ++ bFirstIterate ? &gs : NULL, ++ (step_rel % gs.nstms == 0) && ++ (multisim_nsteps < 0 || (step_rel < multisim_nsteps)), ++ lastbox, ++ top_global, &pcurr, top_global->natoms, &bSumEkinhOld, ++ cglo_flags ++ | (!EI_VV(ir->eI) || bRerunMD ? CGLO_ENERGY : 0) ++ | (!EI_VV(ir->eI) && bStopCM ? CGLO_STOPCM : 0) ++ | (!EI_VV(ir->eI) ? CGLO_TEMPERATURE : 0) ++ | (!EI_VV(ir->eI) || bRerunMD ? CGLO_PRESSURE : 0) ++ | (iterate.bIterationActive ? CGLO_ITERATE : 0) ++ | (bFirstIterate ? CGLO_FIRSTITERATE : 0) ++ | CGLO_CONSTRAINT ++ ); ++ if (ir->nstlist == -1 && bFirstIterate) ++ { ++ nlh.nabnsb = gs.set[eglsNABNSB]; ++ gs.set[eglsNABNSB] = 0; ++ } ++ } ++ /* bIterate is set to keep it from eliminating the old ekin kinetic energy terms */ ++ /* ############# END CALC EKIN AND PRESSURE ################# */ ++ ++ /* Note: this is OK, but there are some numerical precision issues with using the convergence of ++ the virial that should probably be addressed eventually. state->veta has better properies, ++ but what we actually need entering the new cycle is the new shake_vir value. Ideally, we could ++ generate the new shake_vir, but test the veta value for convergence. This will take some thought. */ ++ ++ if (iterate.bIterationActive && ++ done_iterating(cr, fplog, step, &iterate, bFirstIterate, ++ trace(shake_vir), &tracevir)) ++ { ++ break; ++ } ++ bFirstIterate = FALSE; ++ } ++ ++ if (!bVV || bRerunMD) ++ { ++ /* sum up the foreign energy and dhdl terms for md and sd. currently done every step so that dhdl is correct in the .edr */ ++ sum_dhdl(enerd, state->lambda, ir->fepvals); ++ } ++ update_box(fplog, step, ir, mdatoms, state, graph, f, ++ ir->nstlist == -1 ? &nlh.scale_tot : NULL, pcoupl_mu, nrnb, wcycle, upd, bInitStep, FALSE); ++ ++ /* ################# END UPDATE STEP 2 ################# */ ++ /* #### We now have r(t+dt) and v(t+dt/2) ############# */ ++ ++ /* The coordinates (x) were unshifted in update */ ++ if (bFFscan && (shellfc == NULL || bConverged)) ++ { ++ if (print_forcefield(fplog, enerd->term, mdatoms->homenr, ++ f, NULL, xcopy, ++ &(top_global->mols), mdatoms->massT, pres)) ++ { ++ gmx_finalize_par(); ++ ++ fprintf(stderr, "\n"); ++ exit(0); ++ } ++ } ++ if (!bGStat) ++ { ++ /* We will not sum ekinh_old, ++ * so signal that we still have to do it. ++ */ ++ bSumEkinhOld = TRUE; ++ } ++ ++ if (bTCR) ++ { ++ /* Only do GCT when the relaxation of shells (minimization) has converged, ++ * otherwise we might be coupling to bogus energies. ++ * In parallel we must always do this, because the other sims might ++ * update the FF. ++ */ ++ ++ /* Since this is called with the new coordinates state->x, I assume ++ * we want the new box state->box too. / EL 20040121 ++ */ ++ do_coupling(fplog, oenv, nfile, fnm, tcr, t, step, enerd->term, fr, ++ ir, MASTER(cr), ++ mdatoms, &(top->idef), mu_aver, ++ top_global->mols.nr, cr, ++ state->box, total_vir, pres, ++ mu_tot, state->x, f, bConverged); ++ debug_gmx(); ++ } ++ ++ /* ######### BEGIN PREPARING EDR OUTPUT ########### */ ++ ++ /* use the directly determined last velocity, not actually the averaged half steps */ ++ if (bTrotter && ir->eI == eiVV) ++ { ++ enerd->term[F_EKIN] = last_ekin; ++ } ++ enerd->term[F_ETOT] = enerd->term[F_EPOT] + enerd->term[F_EKIN]; ++ ++ if (bVV) ++ { ++ enerd->term[F_ECONSERVED] = enerd->term[F_ETOT] + saved_conserved_quantity; ++ } ++ else ++ { ++ enerd->term[F_ECONSERVED] = enerd->term[F_ETOT] + compute_conserved_from_auxiliary(ir, state, &MassQ); ++ } ++ /* Check for excessively large energies */ ++ if (bIonize) ++ { ++#ifdef GMX_DOUBLE ++ real etot_max = 1e200; ++#else ++ real etot_max = 1e30; ++#endif ++ if (fabs(enerd->term[F_ETOT]) > etot_max) ++ { ++ fprintf(stderr, "Energy too large (%g), giving up\n", ++ enerd->term[F_ETOT]); ++ } ++ } ++ /* ######### END PREPARING EDR OUTPUT ########### */ ++ ++ /* Time for performance */ ++ if (((step % stepout) == 0) || bLastStep) ++ { ++ runtime_upd_proc(runtime); ++ } ++ ++ /* Output stuff */ ++ if (MASTER(cr)) ++ { ++ gmx_bool do_dr, do_or; ++ ++ if (fplog && do_log && bDoExpanded) ++ { ++ /* only needed if doing expanded ensemble */ ++ PrintFreeEnergyInfoToFile(fplog, ir->fepvals, ir->expandedvals, ir->bSimTemp ? ir->simtempvals : NULL, ++ &state_global->dfhist, state->fep_state, ir->nstlog, step); ++ } ++ if (!(bStartingFromCpt && (EI_VV(ir->eI)))) ++ { ++ if (bCalcEner) ++ { ++ upd_mdebin(mdebin, bDoDHDL, TRUE, ++ t, mdatoms->tmass, enerd, state, ++ ir->fepvals, ir->expandedvals, lastbox, ++ shake_vir, force_vir, total_vir, pres, ++ ekind, mu_tot, constr); ++ } ++ else ++ { ++ upd_mdebin_step(mdebin); ++ } ++ ++ do_dr = do_per_step(step, ir->nstdisreout); ++ do_or = do_per_step(step, ir->nstorireout); ++ ++ print_ebin(outf->fp_ene, do_ene, do_dr, do_or, do_log ? fplog : NULL, ++ step, t, ++ eprNORMAL, bCompact, mdebin, fcd, groups, &(ir->opts)); ++ } ++ if (ir->ePull != epullNO) ++ { ++ pull_print_output(ir->pull, step, t); ++ } ++ ++ if (do_per_step(step, ir->nstlog)) ++ { ++ if (fflush(fplog) != 0) ++ { ++ gmx_fatal(FARGS, "Cannot flush logfile - maybe you are out of disk space?"); ++ } ++ } ++ } ++ if (bDoExpanded) ++ { ++ /* Have to do this part _after_ outputting the logfile and the edr file */ ++ /* Gets written into the state at the beginning of next loop*/ ++ state->fep_state = lamnew; ++ } ++ ++ /* Remaining runtime */ ++ if (MULTIMASTER(cr) && (do_verbose || gmx_got_usr_signal()) && !bPMETuneRunning) ++ { ++ if (shellfc) ++ { ++ fprintf(stderr, "\n"); ++ } ++ print_time(stderr, runtime, step, ir, cr); ++ } ++ ++ /* Replica exchange */ ++ bExchanged = FALSE; ++ if ((repl_ex_nst > 0) && (step > 0) && !bLastStep && ++ do_per_step(step, repl_ex_nst)) ++ { ++ bExchanged = replica_exchange(fplog, cr, repl_ex, ++ state_global, enerd, ++ state, step, t); ++ ++ if (bExchanged && DOMAINDECOMP(cr)) ++ { ++ dd_partition_system(fplog, step, cr, TRUE, 1, ++ state_global, top_global, ir, ++ state, &f, mdatoms, top, fr, ++ vsite, shellfc, constr, ++ nrnb, wcycle, FALSE); ++ } ++ } ++ ++ bFirstStep = FALSE; ++ bInitStep = FALSE; ++ bStartingFromCpt = FALSE; ++ ++ /* ####### SET VARIABLES FOR NEXT ITERATION IF THEY STILL NEED IT ###### */ ++ /* With all integrators, except VV, we need to retain the pressure ++ * at the current step for coupling at the next step. ++ */ ++ if ((state->flags & (1<nstpcouple > 0 && step % ir->nstpcouple == 0))) ++ { ++ /* Store the pressure in t_state for pressure coupling ++ * at the next MD step. ++ */ ++ copy_mat(pres, state->pres_prev); ++ } ++ ++ /* ####### END SET VARIABLES FOR NEXT ITERATION ###### */ ++ ++ if ( (membed != NULL) && (!bLastStep) ) ++ { ++ rescale_membed(step_rel, membed, state_global->x); ++ } ++ ++ if (bRerunMD) ++ { ++ if (MASTER(cr)) ++ { ++ /* read next frame from input trajectory */ ++ bNotLastFrame = read_next_frame(oenv, status, &rerun_fr); ++ } ++ ++ if (PAR(cr)) ++ { ++ rerun_parallel_comm(cr, &rerun_fr, &bNotLastFrame); ++ } ++ } ++ ++ if (!bRerunMD || !rerun_fr.bStep) ++ { ++ /* increase the MD step number */ ++ step++; ++ step_rel++; ++ } ++ ++ cycles = wallcycle_stop(wcycle, ewcSTEP); ++ if (DOMAINDECOMP(cr) && wcycle) ++ { ++ dd_cycles_add(cr->dd, cycles, ddCyclStep); ++ } ++ ++ if (bPMETuneRunning || bPMETuneTry) ++ { ++ /* PME grid + cut-off optimization with GPUs or PME nodes */ ++ ++ /* Count the total cycles over the last steps */ ++ cycles_pmes += cycles; ++ ++ /* We can only switch cut-off at NS steps */ ++ if (step % ir->nstlist == 0) ++ { ++ /* PME grid + cut-off optimization with GPUs or PME nodes */ ++ if (bPMETuneTry) ++ { ++ if (DDMASTER(cr->dd)) ++ { ++ /* PME node load is too high, start tuning */ ++ bPMETuneRunning = (dd_pme_f_ratio(cr->dd) >= 1.05); ++ } ++ dd_bcast(cr->dd, sizeof(gmx_bool), &bPMETuneRunning); ++ ++ if (bPMETuneRunning || step_rel > ir->nstlist*50) ++ { ++ bPMETuneTry = FALSE; ++ } ++ } ++ if (bPMETuneRunning) ++ { ++ /* init_step might not be a multiple of nstlist, ++ * but the first cycle is always skipped anyhow. ++ */ ++ bPMETuneRunning = ++ pme_load_balance(pme_loadbal, cr, ++ (bVerbose && MASTER(cr)) ? stderr : NULL, ++ fplog, ++ ir, state, cycles_pmes, ++ fr->ic, fr->nbv, &fr->pmedata, ++ step); ++ ++ /* Update constants in forcerec/inputrec to keep them in sync with fr->ic */ ++ fr->ewaldcoeff = fr->ic->ewaldcoeff; ++ fr->rlist = fr->ic->rlist; ++ fr->rlistlong = fr->ic->rlistlong; ++ fr->rcoulomb = fr->ic->rcoulomb; ++ fr->rvdw = fr->ic->rvdw; ++ } ++ cycles_pmes = 0; ++ } ++ } ++ ++ if (step_rel == wcycle_get_reset_counters(wcycle) || ++ gs.set[eglsRESETCOUNTERS] != 0) ++ { ++ /* Reset all the counters related to performance over the run */ ++ reset_all_counters(fplog, cr, step, &step_rel, ir, wcycle, nrnb, runtime, ++ fr->nbv != NULL && fr->nbv->bUseGPU ? fr->nbv->cu_nbv : NULL); ++ wcycle_set_reset_counters(wcycle, -1); ++ if (!(cr->duty & DUTY_PME)) ++ { ++ /* Tell our PME node to reset its counters */ ++ gmx_pme_send_resetcounters(cr, step); ++ } ++ /* Correct max_hours for the elapsed time */ ++ max_hours -= run_time/(60.0*60.0); ++ bResetCountersHalfMaxH = FALSE; ++ gs.set[eglsRESETCOUNTERS] = 0; ++ } ++ ++ } ++ /* End of main MD loop */ ++ debug_gmx(); ++ ++ /* Stop the time */ ++ runtime_end(runtime); ++ ++ if (bRerunMD && MASTER(cr)) ++ { ++ close_trj(status); ++ } ++ ++ if (!(cr->duty & DUTY_PME)) ++ { ++ /* Tell the PME only node to finish */ ++ gmx_pme_send_finish(cr); ++ } ++ ++ if (MASTER(cr)) ++ { ++ if (ir->nstcalcenergy > 0 && !bRerunMD) ++ { ++ print_ebin(outf->fp_ene, FALSE, FALSE, FALSE, fplog, step, t, ++ eprAVER, FALSE, mdebin, fcd, groups, &(ir->opts)); ++ } ++ } ++ ++ done_mdoutf(outf); ++ ++ debug_gmx(); ++ ++ if (ir->nstlist == -1 && nlh.nns > 0 && fplog) ++ { ++ fprintf(fplog, "Average neighborlist lifetime: %.1f steps, std.dev.: %.1f steps\n", nlh.s1/nlh.nns, sqrt(nlh.s2/nlh.nns - sqr(nlh.s1/nlh.nns))); ++ fprintf(fplog, "Average number of atoms that crossed the half buffer length: %.1f\n\n", nlh.ab/nlh.nns); ++ } ++ ++ if (pme_loadbal != NULL) ++ { ++ pme_loadbal_done(pme_loadbal, cr, fplog, ++ fr->nbv != NULL && fr->nbv->bUseGPU); ++ } ++ ++ if (shellfc && fplog) ++ { ++ fprintf(fplog, "Fraction of iterations that converged: %.2f %%\n", ++ (nconverged*100.0)/step_rel); ++ fprintf(fplog, "Average number of force evaluations per MD step: %.2f\n\n", ++ tcount/step_rel); ++ } ++ ++ if (repl_ex_nst > 0 && MASTER(cr)) ++ { ++ print_replica_exchange_statistics(fplog, repl_ex); ++ } ++ ++ runtime->nsteps_done = step_rel; ++ ++ return 0; ++} +diff --git a/src/kernel/mdrun.c b/src/kernel/mdrun.c +index eb30fc9..ca3b657 100644 +--- a/src/kernel/mdrun.c ++++ b/src/kernel/mdrun.c +@@ -58,6 +58,12 @@ + /* afm stuf */ + #include "pull.h" + ++/* PLUMED */ ++#include "../../Plumed.h" ++extern int plumedswitch; ++extern plumed plumedmain; extern void(*plumedcmd)(plumed,const char*,const void*); ++/* END PLUMED */ ++ + int cmain(int argc, char *argv[]) + { + const char *desc[] = { +@@ -415,6 +421,7 @@ int cmain(int argc, char *argv[]) + { efMTX, "-mtx", "nm", ffOPTWR }, + { efNDX, "-dn", "dipole", ffOPTWR }, + { efRND, "-multidir", NULL, ffOPTRDMULT}, ++ { efDAT, "-plumed", "plumed", ffOPTRD }, /* PLUMED */ + { efDAT, "-membed", "membed", ffOPTRD }, + { efTOP, "-mp", "membed", ffOPTRD }, + { efNDX, "-mn", "membed", ffOPTRD } +@@ -752,6 +759,31 @@ int cmain(int argc, char *argv[]) + ddxyz[XX] = (int)(realddxyz[XX] + 0.5); + ddxyz[YY] = (int)(realddxyz[YY] + 0.5); + ddxyz[ZZ] = (int)(realddxyz[ZZ] + 0.5); ++ /* PLUMED */ ++ plumedswitch=0; ++ if (opt2bSet("-plumed",NFILE,fnm)) plumedswitch=1; ++ if(plumedswitch){ plumedcmd=plumed_cmd; ++ int plumed_is_there=0; ++ int real_precision=sizeof(real); ++ real energyUnits=1.0; ++ real lengthUnits=1.0; ++ real timeUnits=1.0; ++ ++ ++ if(!plumed_installed()){ ++ gmx_fatal(FARGS,"Plumed is not available. Check your PLUMED_KERNEL variable."); ++ } ++ plumedmain=plumed_create(); ++ plumed_cmd(plumedmain,"setRealPrecision",&real_precision); ++ // this is not necessary for gromacs units: ++ plumed_cmd(plumedmain,"setMDEnergyUnits",&energyUnits); ++ plumed_cmd(plumedmain,"setMDLengthUnits",&lengthUnits); ++ plumed_cmd(plumedmain,"setMDTimeUnits",&timeUnits); ++ // ++ plumed_cmd(plumedmain,"setPlumedDat",ftp2fn(efDAT,NFILE,fnm)); ++ plumedswitch=1; ++ } ++ /* END PLUMED */ + + rc = mdrunner(&hw_opt, fplog, cr, NFILE, fnm, oenv, bVerbose, bCompact, + nstglobalcomm, ddxyz, dd_node_order, rdd, rconstr, +@@ -761,6 +793,12 @@ int cmain(int argc, char *argv[]) + nmultisim, repl_ex_nst, repl_ex_nex, repl_ex_seed, + pforce, cpt_period, max_hours, deviceOptions, Flags); + ++ /* PLUMED */ ++ if(plumedswitch){ ++ plumed_finalize(plumedmain); ++ } ++ /* END PLUMED */ ++ + gmx_finalize_par(); + + if (MULTIMASTER(cr)) +diff --git a/src/kernel/mdrun.c.preplumed b/src/kernel/mdrun.c.preplumed +new file mode 100644 +index 0000000..eb30fc9 +--- /dev/null ++++ b/src/kernel/mdrun.c.preplumed +@@ -0,0 +1,779 @@ ++/* ++ * This file is part of the GROMACS molecular simulation package. ++ * ++ * Copyright (c) 1991-2000, University of Groningen, The Netherlands. ++ * Copyright (c) 2001-2004, The GROMACS development team, ++ * check out http://www.gromacs.org for more information. ++ * Copyright (c) 2012,2013, by the GROMACS development team, led by ++ * David van der Spoel, Berk Hess, Erik Lindahl, and including many ++ * others, as listed in the AUTHORS file in the top-level source ++ * directory and at http://www.gromacs.org. ++ * ++ * GROMACS 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; either version 2.1 ++ * of the License, or (at your option) any later version. ++ * ++ * GROMACS 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 ++ * Lesser General Public License for more details. ++ * ++ * You should have received a copy of the GNU Lesser General Public ++ * License along with GROMACS; if not, see ++ * http://www.gnu.org/licenses, or write to the Free Software Foundation, ++ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. ++ * ++ * If you want to redistribute modifications to GROMACS, please ++ * consider that scientific software is very special. Version ++ * control is crucial - bugs must be traceable. We will be happy to ++ * consider code for inclusion in the official distribution, but ++ * derived work must not be called official GROMACS. Details are found ++ * in the README & COPYING files - if they are missing, get the ++ * official version at http://www.gromacs.org. ++ * ++ * To help us fund GROMACS development, we humbly ask that you cite ++ * the research papers on the package. Check out http://www.gromacs.org. ++ */ ++#ifdef HAVE_CONFIG_H ++#include ++#endif ++ ++#include "typedefs.h" ++#include "macros.h" ++#include "copyrite.h" ++#include "main.h" ++#include "statutil.h" ++#include "smalloc.h" ++#include "futil.h" ++#include "smalloc.h" ++#include "edsam.h" ++#include "mdrun.h" ++#include "xmdrun.h" ++#include "checkpoint.h" ++#ifdef GMX_THREAD_MPI ++#include "thread_mpi.h" ++#endif ++ ++/* afm stuf */ ++#include "pull.h" ++ ++int cmain(int argc, char *argv[]) ++{ ++ const char *desc[] = { ++ "The [TT]mdrun[tt] program is the main computational chemistry engine", ++ "within GROMACS. Obviously, it performs Molecular Dynamics simulations,", ++ "but it can also perform Stochastic Dynamics, Energy Minimization,", ++ "test particle insertion or (re)calculation of energies.", ++ "Normal mode analysis is another option. In this case [TT]mdrun[tt]", ++ "builds a Hessian matrix from single conformation.", ++ "For usual Normal Modes-like calculations, make sure that", ++ "the structure provided is properly energy-minimized.", ++ "The generated matrix can be diagonalized by [TT]g_nmeig[tt].[PAR]", ++ "The [TT]mdrun[tt] program reads the run input file ([TT]-s[tt])", ++ "and distributes the topology over nodes if needed.", ++ "[TT]mdrun[tt] produces at least four output files.", ++ "A single log file ([TT]-g[tt]) is written, unless the option", ++ "[TT]-seppot[tt] is used, in which case each node writes a log file.", ++ "The trajectory file ([TT]-o[tt]), contains coordinates, velocities and", ++ "optionally forces.", ++ "The structure file ([TT]-c[tt]) contains the coordinates and", ++ "velocities of the last step.", ++ "The energy file ([TT]-e[tt]) contains energies, the temperature,", ++ "pressure, etc, a lot of these things are also printed in the log file.", ++ "Optionally coordinates can be written to a compressed trajectory file", ++ "([TT]-x[tt]).[PAR]", ++ "The option [TT]-dhdl[tt] is only used when free energy calculation is", ++ "turned on.[PAR]", ++ "A simulation can be run in parallel using two different parallelization", ++ "schemes: MPI parallelization and/or OpenMP thread parallelization.", ++ "The MPI parallelization uses multiple processes when [TT]mdrun[tt] is", ++ "compiled with a normal MPI library or threads when [TT]mdrun[tt] is", ++ "compiled with the GROMACS built-in thread-MPI library. OpenMP threads", ++ "are supported when mdrun is compiled with OpenMP. Full OpenMP support", ++ "is only available with the Verlet cut-off scheme, with the (older)", ++ "group scheme only PME-only processes can use OpenMP parallelization.", ++ "In all cases [TT]mdrun[tt] will by default try to use all the available", ++ "hardware resources. With a normal MPI library only the options", ++ "[TT]-ntomp[tt] (with the Verlet cut-off scheme) and [TT]-ntomp_pme[tt],", ++ "for PME-only processes, can be used to control the number of threads.", ++ "With thread-MPI there are additional options [TT]-nt[tt], which sets", ++ "the total number of threads, and [TT]-ntmpi[tt], which sets the number", ++ "of thread-MPI threads.", ++ "The number of OpenMP threads used by [TT]mdrun[tt] can also be set with", ++ "the standard environment variable, [TT]OMP_NUM_THREADS[tt].", ++ "The [TT]GMX_PME_NUM_THREADS[tt] environment variable can be used to specify", ++ "the number of threads used by the PME-only processes.[PAR]", ++ "Note that combined MPI+OpenMP parallelization is in many cases", ++ "slower than either on its own. However, at high parallelization, using the", ++ "combination is often beneficial as it reduces the number of domains and/or", ++ "the number of MPI ranks. (Less and larger domains can improve scaling,", ++ "with separate PME processes fewer MPI ranks reduces communication cost.)", ++ "OpenMP-only parallelization is typically faster than MPI-only parallelization", ++ "on a single CPU(-die). Since we currently don't have proper hardware", ++ "topology detection, [TT]mdrun[tt] compiled with thread-MPI will only", ++ "automatically use OpenMP-only parallelization when you use up to 4", ++ "threads, up to 12 threads with Intel Nehalem/Westmere, or up to 16", ++ "threads with Intel Sandy Bridge or newer CPUs. Otherwise MPI-only", ++ "parallelization is used (except with GPUs, see below).", ++ "[PAR]", ++ "To quickly test the performance of the new Verlet cut-off scheme", ++ "with old [TT].tpr[tt] files, either on CPUs or CPUs+GPUs, you can use", ++ "the [TT]-testverlet[tt] option. This should not be used for production,", ++ "since it can slightly modify potentials and it will remove charge groups", ++ "making analysis difficult, as the [TT].tpr[tt] file will still contain", ++ "charge groups. For production simulations it is highly recommended", ++ "to specify [TT]cutoff-scheme = Verlet[tt] in the [TT].mdp[tt] file.", ++ "[PAR]", ++ "With GPUs (only supported with the Verlet cut-off scheme), the number", ++ "of GPUs should match the number of MPI processes or MPI threads,", ++ "excluding PME-only processes/threads. With thread-MPI, unless set on the command line, the number", ++ "of MPI threads will automatically be set to the number of GPUs detected.", ++ "To use a subset of the available GPUs, or to manually provide a mapping of", ++ "GPUs to PP ranks, you can use the [TT]-gpu_id[tt] option. The argument of [TT]-gpu_id[tt] is", ++ "a string of digits (without delimiter) representing device id-s of the GPUs to be used.", ++ "For example, \"[TT]02[tt]\" specifies using GPUs 0 and 2 in the first and second PP ranks per compute node", ++ "respectively. To select different sets of GPU-s", ++ "on different nodes of a compute cluster, use the [TT]GMX_GPU_ID[tt] environment", ++ "variable instead. The format for [TT]GMX_GPU_ID[tt] is identical to ", ++ "[TT]-gpu_id[tt], with the difference that an environment variable can have", ++ "different values on different compute nodes. Multiple MPI ranks on each node", ++ "can share GPUs. This is accomplished by specifying the id(s) of the GPU(s)", ++ "multiple times, e.g. \"[TT]0011[tt]\" for four ranks sharing two GPUs in this node.", ++ "This works within a single simulation, or a multi-simulation, with any form of MPI.", ++ "[PAR]", ++ "When using PME with separate PME nodes or with a GPU, the two major", ++ "compute tasks, the non-bonded force calculation and the PME calculation", ++ "run on different compute resources. If this load is not balanced,", ++ "some of the resources will be idle part of time. With the Verlet", ++ "cut-off scheme this load is automatically balanced when the PME load", ++ "is too high (but not when it is too low). This is done by scaling", ++ "the Coulomb cut-off and PME grid spacing by the same amount. In the first", ++ "few hundred steps different settings are tried and the fastest is chosen", ++ "for the rest of the simulation. This does not affect the accuracy of", ++ "the results, but it does affect the decomposition of the Coulomb energy", ++ "into particle and mesh contributions. The auto-tuning can be turned off", ++ "with the option [TT]-notunepme[tt].", ++ "[PAR]", ++ "[TT]mdrun[tt] pins (sets affinity of) threads to specific cores,", ++ "when all (logical) cores on a compute node are used by [TT]mdrun[tt],", ++ "even when no multi-threading is used,", ++ "as this usually results in significantly better performance.", ++ "If the queuing systems or the OpenMP library pinned threads, we honor", ++ "this and don't pin again, even though the layout may be sub-optimal.", ++ "If you want to have [TT]mdrun[tt] override an already set thread affinity", ++ "or pin threads when using less cores, use [TT]-pin on[tt].", ++ "With SMT (simultaneous multithreading), e.g. Intel Hyper-Threading,", ++ "there are multiple logical cores per physical core.", ++ "The option [TT]-pinstride[tt] sets the stride in logical cores for", ++ "pinning consecutive threads. Without SMT, 1 is usually the best choice.", ++ "With Intel Hyper-Threading 2 is best when using half or less of the", ++ "logical cores, 1 otherwise. The default value of 0 do exactly that:", ++ "it minimizes the threads per logical core, to optimize performance.", ++ "If you want to run multiple mdrun jobs on the same physical node," ++ "you should set [TT]-pinstride[tt] to 1 when using all logical cores.", ++ "When running multiple mdrun (or other) simulations on the same physical", ++ "node, some simulations need to start pinning from a non-zero core", ++ "to avoid overloading cores; with [TT]-pinoffset[tt] you can specify", ++ "the offset in logical cores for pinning.", ++ "[PAR]", ++ "When [TT]mdrun[tt] is started using MPI with more than 1 process", ++ "or with thread-MPI with more than 1 thread, MPI parallelization is used.", ++ "By default domain decomposition is used, unless the [TT]-pd[tt]", ++ "option is set, which selects particle decomposition.", ++ "[PAR]", ++ "With domain decomposition, the spatial decomposition can be set", ++ "with option [TT]-dd[tt]. By default [TT]mdrun[tt] selects a good decomposition.", ++ "The user only needs to change this when the system is very inhomogeneous.", ++ "Dynamic load balancing is set with the option [TT]-dlb[tt],", ++ "which can give a significant performance improvement,", ++ "especially for inhomogeneous systems. The only disadvantage of", ++ "dynamic load balancing is that runs are no longer binary reproducible,", ++ "but in most cases this is not important.", ++ "By default the dynamic load balancing is automatically turned on", ++ "when the measured performance loss due to load imbalance is 5% or more.", ++ "At low parallelization these are the only important options", ++ "for domain decomposition.", ++ "At high parallelization the options in the next two sections", ++ "could be important for increasing the performace.", ++ "[PAR]", ++ "When PME is used with domain decomposition, separate nodes can", ++ "be assigned to do only the PME mesh calculation;", ++ "this is computationally more efficient starting at about 12 nodes", ++ "or even fewer when OpenMP parallelization is used.", ++ "The number of PME nodes is set with option [TT]-npme[tt],", ++ "this can not be more than half of the nodes.", ++ "By default [TT]mdrun[tt] makes a guess for the number of PME", ++ "nodes when the number of nodes is larger than 16. With GPUs,", ++ "PME nodes are not selected automatically, since the optimal setup", ++ "depends very much on the details of the hardware.", ++ "In all cases you might gain performance by optimizing [TT]-npme[tt].", ++ "Performance statistics on this issue", ++ "are written at the end of the log file.", ++ "For good load balancing at high parallelization, the PME grid x and y", ++ "dimensions should be divisible by the number of PME nodes", ++ "(the simulation will run correctly also when this is not the case).", ++ "[PAR]", ++ "This section lists all options that affect the domain decomposition.", ++ "[PAR]", ++ "Option [TT]-rdd[tt] can be used to set the required maximum distance", ++ "for inter charge-group bonded interactions.", ++ "Communication for two-body bonded interactions below the non-bonded", ++ "cut-off distance always comes for free with the non-bonded communication.", ++ "Atoms beyond the non-bonded cut-off are only communicated when they have", ++ "missing bonded interactions; this means that the extra cost is minor", ++ "and nearly indepedent of the value of [TT]-rdd[tt].", ++ "With dynamic load balancing option [TT]-rdd[tt] also sets", ++ "the lower limit for the domain decomposition cell sizes.", ++ "By default [TT]-rdd[tt] is determined by [TT]mdrun[tt] based on", ++ "the initial coordinates. The chosen value will be a balance", ++ "between interaction range and communication cost.", ++ "[PAR]", ++ "When inter charge-group bonded interactions are beyond", ++ "the bonded cut-off distance, [TT]mdrun[tt] terminates with an error message.", ++ "For pair interactions and tabulated bonds", ++ "that do not generate exclusions, this check can be turned off", ++ "with the option [TT]-noddcheck[tt].", ++ "[PAR]", ++ "When constraints are present, option [TT]-rcon[tt] influences", ++ "the cell size limit as well.", ++ "Atoms connected by NC constraints, where NC is the LINCS order plus 1,", ++ "should not be beyond the smallest cell size. A error message is", ++ "generated when this happens and the user should change the decomposition", ++ "or decrease the LINCS order and increase the number of LINCS iterations.", ++ "By default [TT]mdrun[tt] estimates the minimum cell size required for P-LINCS", ++ "in a conservative fashion. For high parallelization it can be useful", ++ "to set the distance required for P-LINCS with the option [TT]-rcon[tt].", ++ "[PAR]", ++ "The [TT]-dds[tt] option sets the minimum allowed x, y and/or z scaling", ++ "of the cells with dynamic load balancing. [TT]mdrun[tt] will ensure that", ++ "the cells can scale down by at least this factor. This option is used", ++ "for the automated spatial decomposition (when not using [TT]-dd[tt])", ++ "as well as for determining the number of grid pulses, which in turn", ++ "sets the minimum allowed cell size. Under certain circumstances", ++ "the value of [TT]-dds[tt] might need to be adjusted to account for", ++ "high or low spatial inhomogeneity of the system.", ++ "[PAR]", ++ "The option [TT]-gcom[tt] can be used to only do global communication", ++ "every n steps.", ++ "This can improve performance for highly parallel simulations", ++ "where this global communication step becomes the bottleneck.", ++ "For a global thermostat and/or barostat the temperature", ++ "and/or pressure will also only be updated every [TT]-gcom[tt] steps.", ++ "By default it is set to the minimum of nstcalcenergy and nstlist.[PAR]", ++ "With [TT]-rerun[tt] an input trajectory can be given for which ", ++ "forces and energies will be (re)calculated. Neighbor searching will be", ++ "performed for every frame, unless [TT]nstlist[tt] is zero", ++ "(see the [TT].mdp[tt] file).[PAR]", ++ "ED (essential dynamics) sampling and/or additional flooding potentials", ++ "are switched on by using the [TT]-ei[tt] flag followed by an [TT].edi[tt]", ++ "file. The [TT].edi[tt] file can be produced with the [TT]make_edi[tt] tool", ++ "or by using options in the essdyn menu of the WHAT IF program.", ++ "[TT]mdrun[tt] produces a [TT].xvg[tt] output file that", ++ "contains projections of positions, velocities and forces onto selected", ++ "eigenvectors.[PAR]", ++ "When user-defined potential functions have been selected in the", ++ "[TT].mdp[tt] file the [TT]-table[tt] option is used to pass [TT]mdrun[tt]", ++ "a formatted table with potential functions. The file is read from", ++ "either the current directory or from the [TT]GMXLIB[tt] directory.", ++ "A number of pre-formatted tables are presented in the [TT]GMXLIB[tt] dir,", ++ "for 6-8, 6-9, 6-10, 6-11, 6-12 Lennard-Jones potentials with", ++ "normal Coulomb.", ++ "When pair interactions are present, a separate table for pair interaction", ++ "functions is read using the [TT]-tablep[tt] option.[PAR]", ++ "When tabulated bonded functions are present in the topology,", ++ "interaction functions are read using the [TT]-tableb[tt] option.", ++ "For each different tabulated interaction type the table file name is", ++ "modified in a different way: before the file extension an underscore is", ++ "appended, then a 'b' for bonds, an 'a' for angles or a 'd' for dihedrals", ++ "and finally the table number of the interaction type.[PAR]", ++ "The options [TT]-px[tt] and [TT]-pf[tt] are used for writing pull COM", ++ "coordinates and forces when pulling is selected", ++ "in the [TT].mdp[tt] file.[PAR]", ++ "With [TT]-multi[tt] or [TT]-multidir[tt], multiple systems can be ", ++ "simulated in parallel.", ++ "As many input files/directories are required as the number of systems. ", ++ "The [TT]-multidir[tt] option takes a list of directories (one for each ", ++ "system) and runs in each of them, using the input/output file names, ", ++ "such as specified by e.g. the [TT]-s[tt] option, relative to these ", ++ "directories.", ++ "With [TT]-multi[tt], the system number is appended to the run input ", ++ "and each output filename, for instance [TT]topol.tpr[tt] becomes", ++ "[TT]topol0.tpr[tt], [TT]topol1.tpr[tt] etc.", ++ "The number of nodes per system is the total number of nodes", ++ "divided by the number of systems.", ++ "One use of this option is for NMR refinement: when distance", ++ "or orientation restraints are present these can be ensemble averaged", ++ "over all the systems.[PAR]", ++ "With [TT]-replex[tt] replica exchange is attempted every given number", ++ "of steps. The number of replicas is set with the [TT]-multi[tt] or ", ++ "[TT]-multidir[tt] option, described above.", ++ "All run input files should use a different coupling temperature,", ++ "the order of the files is not important. The random seed is set with", ++ "[TT]-reseed[tt]. The velocities are scaled and neighbor searching", ++ "is performed after every exchange.[PAR]", ++ "Finally some experimental algorithms can be tested when the", ++ "appropriate options have been given. Currently under", ++ "investigation are: polarizability and X-ray bombardments.", ++ "[PAR]", ++ "The option [TT]-membed[tt] does what used to be g_membed, i.e. embed", ++ "a protein into a membrane. The data file should contain the options", ++ "that where passed to g_membed before. The [TT]-mn[tt] and [TT]-mp[tt]", ++ "both apply to this as well.", ++ "[PAR]", ++ "The option [TT]-pforce[tt] is useful when you suspect a simulation", ++ "crashes due to too large forces. With this option coordinates and", ++ "forces of atoms with a force larger than a certain value will", ++ "be printed to stderr.", ++ "[PAR]", ++ "Checkpoints containing the complete state of the system are written", ++ "at regular intervals (option [TT]-cpt[tt]) to the file [TT]-cpo[tt],", ++ "unless option [TT]-cpt[tt] is set to -1.", ++ "The previous checkpoint is backed up to [TT]state_prev.cpt[tt] to", ++ "make sure that a recent state of the system is always available,", ++ "even when the simulation is terminated while writing a checkpoint.", ++ "With [TT]-cpnum[tt] all checkpoint files are kept and appended", ++ "with the step number.", ++ "A simulation can be continued by reading the full state from file", ++ "with option [TT]-cpi[tt]. This option is intelligent in the way that", ++ "if no checkpoint file is found, Gromacs just assumes a normal run and", ++ "starts from the first step of the [TT].tpr[tt] file. By default the output", ++ "will be appending to the existing output files. The checkpoint file", ++ "contains checksums of all output files, such that you will never", ++ "loose data when some output files are modified, corrupt or removed.", ++ "There are three scenarios with [TT]-cpi[tt]:[PAR]", ++ "[TT]*[tt] no files with matching names are present: new output files are written[PAR]", ++ "[TT]*[tt] all files are present with names and checksums matching those stored", ++ "in the checkpoint file: files are appended[PAR]", ++ "[TT]*[tt] otherwise no files are modified and a fatal error is generated[PAR]", ++ "With [TT]-noappend[tt] new output files are opened and the simulation", ++ "part number is added to all output file names.", ++ "Note that in all cases the checkpoint file itself is not renamed", ++ "and will be overwritten, unless its name does not match", ++ "the [TT]-cpo[tt] option.", ++ "[PAR]", ++ "With checkpointing the output is appended to previously written", ++ "output files, unless [TT]-noappend[tt] is used or none of the previous", ++ "output files are present (except for the checkpoint file).", ++ "The integrity of the files to be appended is verified using checksums", ++ "which are stored in the checkpoint file. This ensures that output can", ++ "not be mixed up or corrupted due to file appending. When only some", ++ "of the previous output files are present, a fatal error is generated", ++ "and no old output files are modified and no new output files are opened.", ++ "The result with appending will be the same as from a single run.", ++ "The contents will be binary identical, unless you use a different number", ++ "of nodes or dynamic load balancing or the FFT library uses optimizations", ++ "through timing.", ++ "[PAR]", ++ "With option [TT]-maxh[tt] a simulation is terminated and a checkpoint", ++ "file is written at the first neighbor search step where the run time", ++ "exceeds [TT]-maxh[tt]*0.99 hours.", ++ "[PAR]", ++ "When [TT]mdrun[tt] receives a TERM signal, it will set nsteps to the current", ++ "step plus one. When [TT]mdrun[tt] receives an INT signal (e.g. when ctrl+C is", ++ "pressed), it will stop after the next neighbor search step ", ++ "(with nstlist=0 at the next step).", ++ "In both cases all the usual output will be written to file.", ++ "When running with MPI, a signal to one of the [TT]mdrun[tt] processes", ++ "is sufficient, this signal should not be sent to mpirun or", ++ "the [TT]mdrun[tt] process that is the parent of the others.", ++ "[PAR]", ++ "When [TT]mdrun[tt] is started with MPI, it does not run niced by default." ++ }; ++ t_commrec *cr; ++ t_filenm fnm[] = { ++ { efTPX, NULL, NULL, ffREAD }, ++ { efTRN, "-o", NULL, ffWRITE }, ++ { efXTC, "-x", NULL, ffOPTWR }, ++ { efCPT, "-cpi", NULL, ffOPTRD }, ++ { efCPT, "-cpo", NULL, ffOPTWR }, ++ { efSTO, "-c", "confout", ffWRITE }, ++ { efEDR, "-e", "ener", ffWRITE }, ++ { efLOG, "-g", "md", ffWRITE }, ++ { efXVG, "-dhdl", "dhdl", ffOPTWR }, ++ { efXVG, "-field", "field", ffOPTWR }, ++ { efXVG, "-table", "table", ffOPTRD }, ++ { efXVG, "-tabletf", "tabletf", ffOPTRD }, ++ { efXVG, "-tablep", "tablep", ffOPTRD }, ++ { efXVG, "-tableb", "table", ffOPTRD }, ++ { efTRX, "-rerun", "rerun", ffOPTRD }, ++ { efXVG, "-tpi", "tpi", ffOPTWR }, ++ { efXVG, "-tpid", "tpidist", ffOPTWR }, ++ { efEDI, "-ei", "sam", ffOPTRD }, ++ { efXVG, "-eo", "edsam", ffOPTWR }, ++ { efGCT, "-j", "wham", ffOPTRD }, ++ { efGCT, "-jo", "bam", ffOPTWR }, ++ { efXVG, "-ffout", "gct", ffOPTWR }, ++ { efXVG, "-devout", "deviatie", ffOPTWR }, ++ { efXVG, "-runav", "runaver", ffOPTWR }, ++ { efXVG, "-px", "pullx", ffOPTWR }, ++ { efXVG, "-pf", "pullf", ffOPTWR }, ++ { efXVG, "-ro", "rotation", ffOPTWR }, ++ { efLOG, "-ra", "rotangles", ffOPTWR }, ++ { efLOG, "-rs", "rotslabs", ffOPTWR }, ++ { efLOG, "-rt", "rottorque", ffOPTWR }, ++ { efMTX, "-mtx", "nm", ffOPTWR }, ++ { efNDX, "-dn", "dipole", ffOPTWR }, ++ { efRND, "-multidir", NULL, ffOPTRDMULT}, ++ { efDAT, "-membed", "membed", ffOPTRD }, ++ { efTOP, "-mp", "membed", ffOPTRD }, ++ { efNDX, "-mn", "membed", ffOPTRD } ++ }; ++#define NFILE asize(fnm) ++ ++ /* Command line options ! */ ++ gmx_bool bCart = FALSE; ++ gmx_bool bPPPME = FALSE; ++ gmx_bool bPartDec = FALSE; ++ gmx_bool bDDBondCheck = TRUE; ++ gmx_bool bDDBondComm = TRUE; ++ gmx_bool bTunePME = TRUE; ++ gmx_bool bTestVerlet = FALSE; ++ gmx_bool bVerbose = FALSE; ++ gmx_bool bCompact = TRUE; ++ gmx_bool bSepPot = FALSE; ++ gmx_bool bRerunVSite = FALSE; ++ gmx_bool bIonize = FALSE; ++ gmx_bool bConfout = TRUE; ++ gmx_bool bReproducible = FALSE; ++ ++ int npme = -1; ++ int nmultisim = 0; ++ int nstglobalcomm = -1; ++ int repl_ex_nst = 0; ++ int repl_ex_seed = -1; ++ int repl_ex_nex = 0; ++ int nstepout = 100; ++ int resetstep = -1; ++ gmx_large_int_t nsteps = -2; /* the value -2 means that the mdp option will be used */ ++ ++ rvec realddxyz = {0, 0, 0}; ++ const char *ddno_opt[ddnoNR+1] = ++ { NULL, "interleave", "pp_pme", "cartesian", NULL }; ++ const char *dddlb_opt[] = ++ { NULL, "auto", "no", "yes", NULL }; ++ const char *thread_aff_opt[threadaffNR+1] = ++ { NULL, "auto", "on", "off", NULL }; ++ const char *nbpu_opt[] = ++ { NULL, "auto", "cpu", "gpu", "gpu_cpu", NULL }; ++ real rdd = 0.0, rconstr = 0.0, dlb_scale = 0.8, pforce = -1; ++ char *ddcsx = NULL, *ddcsy = NULL, *ddcsz = NULL; ++ real cpt_period = 15.0, max_hours = -1; ++ gmx_bool bAppendFiles = TRUE; ++ gmx_bool bKeepAndNumCPT = FALSE; ++ gmx_bool bResetCountersHalfWay = FALSE; ++ output_env_t oenv = NULL; ++ const char *deviceOptions = ""; ++ ++ /* Non transparent initialization of a complex gmx_hw_opt_t struct. ++ * But unfortunately we are not allowed to call a function here, ++ * since declarations follow below. ++ */ ++ gmx_hw_opt_t hw_opt = { 0, 0, 0, 0, threadaffSEL, 0, 0, ++ { NULL, FALSE, 0, NULL } }; ++ ++ t_pargs pa[] = { ++ ++ { "-pd", FALSE, etBOOL, {&bPartDec}, ++ "Use particle decompostion" }, ++ { "-dd", FALSE, etRVEC, {&realddxyz}, ++ "Domain decomposition grid, 0 is optimize" }, ++ { "-ddorder", FALSE, etENUM, {ddno_opt}, ++ "DD node order" }, ++ { "-npme", FALSE, etINT, {&npme}, ++ "Number of separate nodes to be used for PME, -1 is guess" }, ++ { "-nt", FALSE, etINT, {&hw_opt.nthreads_tot}, ++ "Total number of threads to start (0 is guess)" }, ++ { "-ntmpi", FALSE, etINT, {&hw_opt.nthreads_tmpi}, ++ "Number of thread-MPI threads to start (0 is guess)" }, ++ { "-ntomp", FALSE, etINT, {&hw_opt.nthreads_omp}, ++ "Number of OpenMP threads per MPI process/thread to start (0 is guess)" }, ++ { "-ntomp_pme", FALSE, etINT, {&hw_opt.nthreads_omp_pme}, ++ "Number of OpenMP threads per MPI process/thread to start (0 is -ntomp)" }, ++ { "-pin", FALSE, etENUM, {thread_aff_opt}, ++ "Fix threads (or processes) to specific cores" }, ++ { "-pinoffset", FALSE, etINT, {&hw_opt.core_pinning_offset}, ++ "The starting logical core number for pinning to cores; used to avoid pinning threads from different mdrun instances to the same core" }, ++ { "-pinstride", FALSE, etINT, {&hw_opt.core_pinning_stride}, ++ "Pinning distance in logical cores for threads, use 0 to minimize the number of threads per physical core" }, ++ { "-gpu_id", FALSE, etSTR, {&hw_opt.gpu_opt.gpu_id}, ++ "List of GPU device id-s to use, specifies the per-node PP rank to GPU mapping" }, ++ { "-ddcheck", FALSE, etBOOL, {&bDDBondCheck}, ++ "Check for all bonded interactions with DD" }, ++ { "-ddbondcomm", FALSE, etBOOL, {&bDDBondComm}, ++ "HIDDENUse special bonded atom communication when [TT]-rdd[tt] > cut-off" }, ++ { "-rdd", FALSE, etREAL, {&rdd}, ++ "The maximum distance for bonded interactions with DD (nm), 0 is determine from initial coordinates" }, ++ { "-rcon", FALSE, etREAL, {&rconstr}, ++ "Maximum distance for P-LINCS (nm), 0 is estimate" }, ++ { "-dlb", FALSE, etENUM, {dddlb_opt}, ++ "Dynamic load balancing (with DD)" }, ++ { "-dds", FALSE, etREAL, {&dlb_scale}, ++ "Minimum allowed dlb scaling of the DD cell size" }, ++ { "-ddcsx", FALSE, etSTR, {&ddcsx}, ++ "HIDDENThe DD cell sizes in x" }, ++ { "-ddcsy", FALSE, etSTR, {&ddcsy}, ++ "HIDDENThe DD cell sizes in y" }, ++ { "-ddcsz", FALSE, etSTR, {&ddcsz}, ++ "HIDDENThe DD cell sizes in z" }, ++ { "-gcom", FALSE, etINT, {&nstglobalcomm}, ++ "Global communication frequency" }, ++ { "-nb", FALSE, etENUM, {&nbpu_opt}, ++ "Calculate non-bonded interactions on" }, ++ { "-tunepme", FALSE, etBOOL, {&bTunePME}, ++ "Optimize PME load between PP/PME nodes or GPU/CPU" }, ++ { "-testverlet", FALSE, etBOOL, {&bTestVerlet}, ++ "Test the Verlet non-bonded scheme" }, ++ { "-v", FALSE, etBOOL, {&bVerbose}, ++ "Be loud and noisy" }, ++ { "-compact", FALSE, etBOOL, {&bCompact}, ++ "Write a compact log file" }, ++ { "-seppot", FALSE, etBOOL, {&bSepPot}, ++ "Write separate V and dVdl terms for each interaction type and node to the log file(s)" }, ++ { "-pforce", FALSE, etREAL, {&pforce}, ++ "Print all forces larger than this (kJ/mol nm)" }, ++ { "-reprod", FALSE, etBOOL, {&bReproducible}, ++ "Try to avoid optimizations that affect binary reproducibility" }, ++ { "-cpt", FALSE, etREAL, {&cpt_period}, ++ "Checkpoint interval (minutes)" }, ++ { "-cpnum", FALSE, etBOOL, {&bKeepAndNumCPT}, ++ "Keep and number checkpoint files" }, ++ { "-append", FALSE, etBOOL, {&bAppendFiles}, ++ "Append to previous output files when continuing from checkpoint instead of adding the simulation part number to all file names" }, ++ { "-nsteps", FALSE, etGMX_LARGE_INT, {&nsteps}, ++ "Run this number of steps, overrides .mdp file option" }, ++ { "-maxh", FALSE, etREAL, {&max_hours}, ++ "Terminate after 0.99 times this time (hours)" }, ++ { "-multi", FALSE, etINT, {&nmultisim}, ++ "Do multiple simulations in parallel" }, ++ { "-replex", FALSE, etINT, {&repl_ex_nst}, ++ "Attempt replica exchange periodically with this period (steps)" }, ++ { "-nex", FALSE, etINT, {&repl_ex_nex}, ++ "Number of random exchanges to carry out each exchange interval (N^3 is one suggestion). -nex zero or not specified gives neighbor replica exchange." }, ++ { "-reseed", FALSE, etINT, {&repl_ex_seed}, ++ "Seed for replica exchange, -1 is generate a seed" }, ++ { "-rerunvsite", FALSE, etBOOL, {&bRerunVSite}, ++ "HIDDENRecalculate virtual site coordinates with [TT]-rerun[tt]" }, ++ { "-ionize", FALSE, etBOOL, {&bIonize}, ++ "Do a simulation including the effect of an X-Ray bombardment on your system" }, ++ { "-confout", FALSE, etBOOL, {&bConfout}, ++ "HIDDENWrite the last configuration with [TT]-c[tt] and force checkpointing at the last step" }, ++ { "-stepout", FALSE, etINT, {&nstepout}, ++ "HIDDENFrequency of writing the remaining runtime" }, ++ { "-resetstep", FALSE, etINT, {&resetstep}, ++ "HIDDENReset cycle counters after these many time steps" }, ++ { "-resethway", FALSE, etBOOL, {&bResetCountersHalfWay}, ++ "HIDDENReset the cycle counters after half the number of steps or halfway [TT]-maxh[tt]" } ++ }; ++ gmx_edsam_t ed; ++ unsigned long Flags, PCA_Flags; ++ ivec ddxyz; ++ int dd_node_order; ++ gmx_bool bAddPart; ++ FILE *fplog, *fpmulti; ++ int sim_part, sim_part_fn; ++ const char *part_suffix = ".part"; ++ char suffix[STRLEN]; ++ int rc; ++ char **multidir = NULL; ++ ++ ++ cr = init_par(&argc, &argv); ++ ++ if (MASTER(cr)) ++ { ++ CopyRight(stderr, argv[0]); ++ } ++ ++ PCA_Flags = (PCA_CAN_SET_DEFFNM | (MASTER(cr) ? 0 : PCA_QUIET)); ++ ++ /* Comment this in to do fexist calls only on master ++ * works not with rerun or tables at the moment ++ * also comment out the version of init_forcerec in md.c ++ * with NULL instead of opt2fn ++ */ ++ /* ++ if (!MASTER(cr)) ++ { ++ PCA_Flags |= PCA_NOT_READ_NODE; ++ } ++ */ ++ ++ parse_common_args(&argc, argv, PCA_Flags, NFILE, fnm, asize(pa), pa, ++ asize(desc), desc, 0, NULL, &oenv); ++ ++ ++ /* we set these early because they might be used in init_multisystem() ++ Note that there is the potential for npme>nnodes until the number of ++ threads is set later on, if there's thread parallelization. That shouldn't ++ lead to problems. */ ++ dd_node_order = nenum(ddno_opt); ++ cr->npmenodes = npme; ++ ++ hw_opt.thread_affinity = nenum(thread_aff_opt); ++ ++ /* now check the -multi and -multidir option */ ++ if (opt2bSet("-multidir", NFILE, fnm)) ++ { ++ int i; ++ if (nmultisim > 0) ++ { ++ gmx_fatal(FARGS, "mdrun -multi and -multidir options are mutually exclusive."); ++ } ++ nmultisim = opt2fns(&multidir, "-multidir", NFILE, fnm); ++ } ++ ++ ++ if (repl_ex_nst != 0 && nmultisim < 2) ++ { ++ gmx_fatal(FARGS, "Need at least two replicas for replica exchange (option -multi)"); ++ } ++ ++ if (repl_ex_nex < 0) ++ { ++ gmx_fatal(FARGS, "Replica exchange number of exchanges needs to be positive"); ++ } ++ ++ if (nmultisim > 1) ++ { ++#ifndef GMX_THREAD_MPI ++ gmx_bool bParFn = (multidir == NULL); ++ init_multisystem(cr, nmultisim, multidir, NFILE, fnm, bParFn); ++#else ++ gmx_fatal(FARGS, "mdrun -multi is not supported with the thread library.Please compile GROMACS with MPI support"); ++#endif ++ } ++ ++ bAddPart = !bAppendFiles; ++ ++ /* Check if there is ANY checkpoint file available */ ++ sim_part = 1; ++ sim_part_fn = sim_part; ++ if (opt2bSet("-cpi", NFILE, fnm)) ++ { ++ if (bSepPot && bAppendFiles) ++ { ++ gmx_fatal(FARGS, "Output file appending is not supported with -seppot"); ++ } ++ ++ bAppendFiles = ++ read_checkpoint_simulation_part(opt2fn_master("-cpi", NFILE, ++ fnm, cr), ++ &sim_part_fn, NULL, cr, ++ bAppendFiles, NFILE, fnm, ++ part_suffix, &bAddPart); ++ if (sim_part_fn == 0 && MULTIMASTER(cr)) ++ { ++ fprintf(stdout, "No previous checkpoint file present, assuming this is a new run.\n"); ++ } ++ else ++ { ++ sim_part = sim_part_fn + 1; ++ } ++ ++ if (MULTISIM(cr) && MASTER(cr)) ++ { ++ if (MULTIMASTER(cr)) ++ { ++ /* Log file is not yet available, so if there's a ++ * problem we can only write to stderr. */ ++ fpmulti = stderr; ++ } ++ else ++ { ++ fpmulti = NULL; ++ } ++ check_multi_int(fpmulti, cr->ms, sim_part, "simulation part", TRUE); ++ } ++ } ++ else ++ { ++ bAppendFiles = FALSE; ++ } ++ ++ if (!bAppendFiles) ++ { ++ sim_part_fn = sim_part; ++ } ++ ++ if (bAddPart) ++ { ++ /* Rename all output files (except checkpoint files) */ ++ /* create new part name first (zero-filled) */ ++ sprintf(suffix, "%s%04d", part_suffix, sim_part_fn); ++ ++ add_suffix_to_output_names(fnm, NFILE, suffix); ++ if (MULTIMASTER(cr)) ++ { ++ fprintf(stdout, "Checkpoint file is from part %d, new output files will be suffixed '%s'.\n", sim_part-1, suffix); ++ } ++ } ++ ++ Flags = opt2bSet("-rerun", NFILE, fnm) ? MD_RERUN : 0; ++ Flags = Flags | (bSepPot ? MD_SEPPOT : 0); ++ Flags = Flags | (bIonize ? MD_IONIZE : 0); ++ Flags = Flags | (bPartDec ? MD_PARTDEC : 0); ++ Flags = Flags | (bDDBondCheck ? MD_DDBONDCHECK : 0); ++ Flags = Flags | (bDDBondComm ? MD_DDBONDCOMM : 0); ++ Flags = Flags | (bTunePME ? MD_TUNEPME : 0); ++ Flags = Flags | (bTestVerlet ? MD_TESTVERLET : 0); ++ Flags = Flags | (bConfout ? MD_CONFOUT : 0); ++ Flags = Flags | (bRerunVSite ? MD_RERUN_VSITE : 0); ++ Flags = Flags | (bReproducible ? MD_REPRODUCIBLE : 0); ++ Flags = Flags | (bAppendFiles ? MD_APPENDFILES : 0); ++ Flags = Flags | (opt2parg_bSet("-append", asize(pa), pa) ? MD_APPENDFILESSET : 0); ++ Flags = Flags | (bKeepAndNumCPT ? MD_KEEPANDNUMCPT : 0); ++ Flags = Flags | (sim_part > 1 ? MD_STARTFROMCPT : 0); ++ Flags = Flags | (bResetCountersHalfWay ? MD_RESETCOUNTERSHALFWAY : 0); ++ ++ ++ /* We postpone opening the log file if we are appending, so we can ++ first truncate the old log file and append to the correct position ++ there instead. */ ++ if ((MASTER(cr) || bSepPot) && !bAppendFiles) ++ { ++ gmx_log_open(ftp2fn(efLOG, NFILE, fnm), cr, ++ !bSepPot, Flags & MD_APPENDFILES, &fplog); ++ CopyRight(fplog, argv[0]); ++ please_cite(fplog, "Hess2008b"); ++ please_cite(fplog, "Spoel2005a"); ++ please_cite(fplog, "Lindahl2001a"); ++ please_cite(fplog, "Berendsen95a"); ++ } ++ else if (!MASTER(cr) && bSepPot) ++ { ++ gmx_log_open(ftp2fn(efLOG, NFILE, fnm), cr, !bSepPot, Flags, &fplog); ++ } ++ else ++ { ++ fplog = NULL; ++ } ++ ++ ddxyz[XX] = (int)(realddxyz[XX] + 0.5); ++ ddxyz[YY] = (int)(realddxyz[YY] + 0.5); ++ ddxyz[ZZ] = (int)(realddxyz[ZZ] + 0.5); ++ ++ rc = mdrunner(&hw_opt, fplog, cr, NFILE, fnm, oenv, bVerbose, bCompact, ++ nstglobalcomm, ddxyz, dd_node_order, rdd, rconstr, ++ dddlb_opt[0], dlb_scale, ddcsx, ddcsy, ddcsz, ++ nbpu_opt[0], ++ nsteps, nstepout, resetstep, ++ nmultisim, repl_ex_nst, repl_ex_nex, repl_ex_seed, ++ pforce, cpt_period, max_hours, deviceOptions, Flags); ++ ++ gmx_finalize_par(); ++ ++ if (MULTIMASTER(cr)) ++ { ++ thanx(stderr); ++ } ++ ++ /* Log file has to be closed in mdrunner if we are appending to it ++ (fplog not set here) */ ++ if (MASTER(cr) && !bAppendFiles) ++ { ++ gmx_log_close(fplog); ++ } ++ ++ return rc; ++} +diff --git a/src/kernel/repl_ex.c b/src/kernel/repl_ex.c +index 0f094d4..7f27136 100644 +--- a/src/kernel/repl_ex.c ++++ b/src/kernel/repl_ex.c +@@ -53,6 +53,12 @@ + #include "domdec.h" + #include "partdec.h" + ++/* PLUMED */ ++#include "../../Plumed.h" ++extern int plumedswitch; ++extern plumed plumedmain; ++/* END PLUMED */ ++ + #define PROBABILITYCUTOFF 100 + /* we don't bother evaluating if events are more rare than exp(-100) = 3.7x10^-44 */ + +@@ -113,14 +119,16 @@ static gmx_bool repl_quantity(FILE *fplog, const gmx_multisim_t *ms, + qall[re->repl] = q; + gmx_sum_sim(ms->nsim, qall, ms); + +- bDiff = FALSE; +- for (s = 1; s < ms->nsim; s++) +- { +- if (qall[s] != qall[0]) +- { ++ /* PLUMED */ ++ //bDiff = FALSE; ++ //for (s = 1; s < ms->nsim; s++) ++ //{ ++ // if (qall[s] != qall[0]) ++ // { + bDiff = TRUE; +- } +- } ++ // } ++ //} ++ /* END PLUMED */ + + if (bDiff) + { +@@ -257,6 +265,10 @@ gmx_repl_ex_t init_replica_exchange(FILE *fplog, + re->ind[i] = i; + } + ++ /* PLUMED */ ++ // plumed2: check if we want alternative patterns (i.e. for bias-exchange metaD) ++ // in those cases replicas can share the same temperature. ++ /* + if (re->type < ereENDSINGLE) + { + +@@ -266,10 +278,6 @@ gmx_repl_ex_t init_replica_exchange(FILE *fplog, + { + if (re->q[re->type][re->ind[j]] < re->q[re->type][re->ind[i]]) + { +- /* Unordered replicas are supposed to work, but there +- * is still an issues somewhere. +- * Note that at this point still re->ind[i]=i. +- */ + gmx_fatal(FARGS, "Replicas with indices %d < %d have %ss %g > %g, please order your replicas on increasing %s", + i, j, + erename[re->type], +@@ -287,6 +295,8 @@ gmx_repl_ex_t init_replica_exchange(FILE *fplog, + } + } + } ++ */ ++ /* END PLUMED */ + + /* keep track of all the swaps, starting with the initial placement. */ + snew(re->allswaps, re->nrepl); +@@ -988,6 +998,10 @@ test_for_replica_exchange(FILE *fplog, + pind[i] = re->ind[i]; + } + ++ /* PLUMED */ ++ int plumed_test_exchange_pattern=0; ++ /* END PLUMED */ ++ + if (bMultiEx) + { + /* multiple random switch exchange */ +@@ -1057,6 +1071,31 @@ test_for_replica_exchange(FILE *fplog, + { + /* standard nearest neighbor replica exchange */ + m = (step / re->nst) % 2; ++ /* PLUMED */ ++ if(plumedswitch){ ++ int partner=re->repl; ++ plumed_cmd(plumedmain,"getExchangesFlag",&plumed_test_exchange_pattern); ++ if(plumed_test_exchange_pattern>0){ ++ int *list; ++ snew(list,re->nrepl); ++ plumed_cmd(plumedmain,"setNumberOfReplicas",&(re->nrepl)); ++ plumed_cmd(plumedmain,"getExchangesList",list); ++ for(i=0; inrepl; i++) re->ind[i]=list[i]; ++ sfree(list); ++ } ++ ++ for(i=1; inrepl; i++) { ++ if (i % 2 != m) continue; ++ a = re->ind[i-1]; ++ b = re->ind[i]; ++ if(re->repl==a) partner=b; ++ if(re->repl==b) partner=a; ++ } ++ plumed_cmd(plumedmain,"GREX setPartner",&partner); ++ plumed_cmd(plumedmain,"GREX calculate",NULL); ++ plumed_cmd(plumedmain,"GREX shareAllDeltaBias",NULL); ++ } ++ /* END PLUMED */ + for (i = 1; i < re->nrepl; i++) + { + a = re->ind[i-1]; +@@ -1066,6 +1105,18 @@ test_for_replica_exchange(FILE *fplog, + if (i % 2 == m) + { + delta = calc_delta(fplog, bPrint, re, a, b, a, b); ++ /* PLUMED */ ++ if(plumedswitch){ ++ real adb,bdb,dplumed; ++ char buf[300]; ++ sprintf(buf,"GREX getDeltaBias %d",a); plumed_cmd(plumedmain,buf,&adb); ++ sprintf(buf,"GREX getDeltaBias %d",b); plumed_cmd(plumedmain,buf,&bdb); ++ dplumed=adb*re->beta[a]+bdb*re->beta[b]; ++ delta+=dplumed; ++ if (bPrint) ++ fprintf(fplog,"dplumed = %10.3e dE_Term = %10.3e (kT)\n",dplumed,delta); ++ } ++ /* END PLUMED */ + if (delta <= 0) + { + /* accepted */ +@@ -1089,11 +1140,22 @@ test_for_replica_exchange(FILE *fplog, + + if (bEx[i]) + { ++ /* PLUMED */ ++ if(!plumed_test_exchange_pattern) { ++ /* standard neighbour swapping */ + /* swap these two */ + tmp = pind[i-1]; + pind[i-1] = pind[i]; + pind[i] = tmp; + re->nexchange[i]++; /* statistics for back compatibility */ ++ } else { ++ /* alternative swapping patterns */ ++ tmp = pind[a]; ++ pind[a] = pind[b]; ++ pind[b] = tmp; ++ re->nexchange[i]++; /* statistics for back compatibility */ ++ } ++ /* END PLUMED */ + } + } + else +@@ -1109,6 +1171,15 @@ test_for_replica_exchange(FILE *fplog, + re->nattempt[m]++; + } + ++ /* PLUMED */ ++ if(plumed_test_exchange_pattern>0) { ++ for (i = 0; i < re->nrepl; i++) ++ { ++ re->ind[i] = i; ++ } ++ } ++ /* END PLUMED */ ++ + /* record which moves were made and accepted */ + for (i = 0; i < re->nrepl; i++) + { +@@ -1314,6 +1385,10 @@ gmx_bool replica_exchange(FILE *fplog, const t_commrec *cr, struct gmx_repl_ex * + /* The order in which multiple exchanges will occur. */ + gmx_bool bThisReplicaExchanged = FALSE; + ++ /* PLUMED */ ++ if(plumedswitch)plumed_cmd(plumedmain,"GREX prepare",NULL); ++ /* END PLUMED */ ++ + if (MASTER(cr)) + { + replica_id = re->repl; +diff --git a/src/kernel/repl_ex.c.preplumed b/src/kernel/repl_ex.c.preplumed +new file mode 100644 +index 0000000..0f094d4 +--- /dev/null ++++ b/src/kernel/repl_ex.c.preplumed +@@ -0,0 +1,1450 @@ ++/* ++ * This file is part of the GROMACS molecular simulation package. ++ * ++ * Copyright (c) 1991-2000, University of Groningen, The Netherlands. ++ * Copyright (c) 2001-2004, The GROMACS development team, ++ * check out http://www.gromacs.org for more information. ++ * Copyright (c) 2012,2013, by the GROMACS development team, led by ++ * David van der Spoel, Berk Hess, Erik Lindahl, and including many ++ * others, as listed in the AUTHORS file in the top-level source ++ * directory and at http://www.gromacs.org. ++ * ++ * GROMACS 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; either version 2.1 ++ * of the License, or (at your option) any later version. ++ * ++ * GROMACS 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 ++ * Lesser General Public License for more details. ++ * ++ * You should have received a copy of the GNU Lesser General Public ++ * License along with GROMACS; if not, see ++ * http://www.gnu.org/licenses, or write to the Free Software Foundation, ++ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. ++ * ++ * If you want to redistribute modifications to GROMACS, please ++ * consider that scientific software is very special. Version ++ * control is crucial - bugs must be traceable. We will be happy to ++ * consider code for inclusion in the official distribution, but ++ * derived work must not be called official GROMACS. Details are found ++ * in the README & COPYING files - if they are missing, get the ++ * official version at http://www.gromacs.org. ++ * ++ * To help us fund GROMACS development, we humbly ask that you cite ++ * the research papers on the package. Check out http://www.gromacs.org. ++ */ ++#ifdef HAVE_CONFIG_H ++#include ++#endif ++ ++#include ++#include "repl_ex.h" ++#include "network.h" ++#include "random.h" ++#include "smalloc.h" ++#include "physics.h" ++#include "copyrite.h" ++#include "macros.h" ++#include "vec.h" ++#include "names.h" ++#include "mvdata.h" ++#include "domdec.h" ++#include "partdec.h" ++ ++#define PROBABILITYCUTOFF 100 ++/* we don't bother evaluating if events are more rare than exp(-100) = 3.7x10^-44 */ ++ ++enum { ++ ereTEMP, ereLAMBDA, ereENDSINGLE, ereTL, ereNR ++}; ++const char *erename[ereNR] = { "temperature", "lambda", "end_single_marker", "temperature and lambda"}; ++/* end_single_marker merely notes the end of single variable replica exchange. All types higher than ++ it are multiple replica exchange methods */ ++/* Eventually, should add 'pressure', 'temperature and pressure', 'lambda_and_pressure', 'temperature_lambda_pressure'?; ++ Let's wait until we feel better about the pressure control methods giving exact ensembles. Right now, we assume constant pressure */ ++ ++typedef struct gmx_repl_ex ++{ ++ int repl; ++ int nrepl; ++ real temp; ++ int type; ++ real **q; ++ gmx_bool bNPT; ++ real *pres; ++ int *ind; ++ int *allswaps; ++ int nst; ++ int nex; ++ int seed; ++ int nattempt[2]; ++ real *prob_sum; ++ int **nmoves; ++ int *nexchange; ++ ++ /* these are helper arrays for replica exchange; allocated here so they ++ don't have to be allocated each time */ ++ int *destinations; ++ int **cyclic; ++ int **order; ++ int *tmpswap; ++ gmx_bool *incycle; ++ gmx_bool *bEx; ++ ++ /* helper arrays to hold the quantities that are exchanged */ ++ real *prob; ++ real *Epot; ++ real *beta; ++ real *Vol; ++ real **de; ++ ++} t_gmx_repl_ex; ++ ++static gmx_bool repl_quantity(FILE *fplog, const gmx_multisim_t *ms, ++ struct gmx_repl_ex *re, int ere, real q) ++{ ++ real *qall; ++ gmx_bool bDiff; ++ int i, s; ++ ++ snew(qall, ms->nsim); ++ qall[re->repl] = q; ++ gmx_sum_sim(ms->nsim, qall, ms); ++ ++ bDiff = FALSE; ++ for (s = 1; s < ms->nsim; s++) ++ { ++ if (qall[s] != qall[0]) ++ { ++ bDiff = TRUE; ++ } ++ } ++ ++ if (bDiff) ++ { ++ /* Set the replica exchange type and quantities */ ++ re->type = ere; ++ ++ snew(re->q[ere], re->nrepl); ++ for (s = 0; s < ms->nsim; s++) ++ { ++ re->q[ere][s] = qall[s]; ++ } ++ } ++ sfree(qall); ++ return bDiff; ++} ++ ++gmx_repl_ex_t init_replica_exchange(FILE *fplog, ++ const gmx_multisim_t *ms, ++ const t_state *state, ++ const t_inputrec *ir, ++ int nst, int nex, int init_seed) ++{ ++ real temp, pres; ++ int i, j, k; ++ struct gmx_repl_ex *re; ++ gmx_bool bTemp; ++ gmx_bool bLambda = FALSE; ++ ++ fprintf(fplog, "\nInitializing Replica Exchange\n"); ++ ++ if (ms == NULL || ms->nsim == 1) ++ { ++ gmx_fatal(FARGS, "Nothing to exchange with only one replica, maybe you forgot to set the -multi option of mdrun?"); ++ } ++ ++ snew(re, 1); ++ ++ re->repl = ms->sim; ++ re->nrepl = ms->nsim; ++ snew(re->q, ereENDSINGLE); ++ ++ fprintf(fplog, "Repl There are %d replicas:\n", re->nrepl); ++ ++ check_multi_int(fplog, ms, state->natoms, "the number of atoms", FALSE); ++ check_multi_int(fplog, ms, ir->eI, "the integrator", FALSE); ++ check_multi_large_int(fplog, ms, ir->init_step+ir->nsteps, "init_step+nsteps", FALSE); ++ check_multi_large_int(fplog, ms, (ir->init_step+nst-1)/nst, ++ "first exchange step: init_step/-replex", FALSE); ++ check_multi_int(fplog, ms, ir->etc, "the temperature coupling", FALSE); ++ check_multi_int(fplog, ms, ir->opts.ngtc, ++ "the number of temperature coupling groups", FALSE); ++ check_multi_int(fplog, ms, ir->epc, "the pressure coupling", FALSE); ++ check_multi_int(fplog, ms, ir->efep, "free energy", FALSE); ++ check_multi_int(fplog, ms, ir->fepvals->n_lambda, "number of lambda states", FALSE); ++ ++ re->temp = ir->opts.ref_t[0]; ++ for (i = 1; (i < ir->opts.ngtc); i++) ++ { ++ if (ir->opts.ref_t[i] != re->temp) ++ { ++ fprintf(fplog, "\nWARNING: The temperatures of the different temperature coupling groups are not identical\n\n"); ++ fprintf(stderr, "\nWARNING: The temperatures of the different temperature coupling groups are not identical\n\n"); ++ } ++ } ++ ++ re->type = -1; ++ bTemp = repl_quantity(fplog, ms, re, ereTEMP, re->temp); ++ if (ir->efep != efepNO) ++ { ++ bLambda = repl_quantity(fplog, ms, re, ereLAMBDA, (real)ir->fepvals->init_fep_state); ++ } ++ if (re->type == -1) /* nothing was assigned */ ++ { ++ gmx_fatal(FARGS, "The properties of the %d systems are all the same, there is nothing to exchange", re->nrepl); ++ } ++ if (bLambda && bTemp) ++ { ++ re->type = ereTL; ++ } ++ ++ if (bTemp) ++ { ++ please_cite(fplog, "Sugita1999a"); ++ if (ir->epc != epcNO) ++ { ++ re->bNPT = TRUE; ++ fprintf(fplog, "Repl Using Constant Pressure REMD.\n"); ++ please_cite(fplog, "Okabe2001a"); ++ } ++ if (ir->etc == etcBERENDSEN) ++ { ++ gmx_fatal(FARGS, "REMD with the %s thermostat does not produce correct potential energy distributions, consider using the %s thermostat instead", ++ ETCOUPLTYPE(ir->etc), ETCOUPLTYPE(etcVRESCALE)); ++ } ++ } ++ if (bLambda) ++ { ++ if (ir->fepvals->delta_lambda != 0) /* check this? */ ++ { ++ gmx_fatal(FARGS, "delta_lambda is not zero"); ++ } ++ } ++ if (re->bNPT) ++ { ++ snew(re->pres, re->nrepl); ++ if (ir->epct == epctSURFACETENSION) ++ { ++ pres = ir->ref_p[ZZ][ZZ]; ++ } ++ else ++ { ++ pres = 0; ++ j = 0; ++ for (i = 0; i < DIM; i++) ++ { ++ if (ir->compress[i][i] != 0) ++ { ++ pres += ir->ref_p[i][i]; ++ j++; ++ } ++ } ++ pres /= j; ++ } ++ re->pres[re->repl] = pres; ++ gmx_sum_sim(re->nrepl, re->pres, ms); ++ } ++ ++ /* Make an index for increasing replica order */ ++ /* only makes sense if one or the other is varying, not both! ++ if both are varying, we trust the order the person gave. */ ++ snew(re->ind, re->nrepl); ++ for (i = 0; i < re->nrepl; i++) ++ { ++ re->ind[i] = i; ++ } ++ ++ if (re->type < ereENDSINGLE) ++ { ++ ++ for (i = 0; i < re->nrepl; i++) ++ { ++ for (j = i+1; j < re->nrepl; j++) ++ { ++ if (re->q[re->type][re->ind[j]] < re->q[re->type][re->ind[i]]) ++ { ++ /* Unordered replicas are supposed to work, but there ++ * is still an issues somewhere. ++ * Note that at this point still re->ind[i]=i. ++ */ ++ gmx_fatal(FARGS, "Replicas with indices %d < %d have %ss %g > %g, please order your replicas on increasing %s", ++ i, j, ++ erename[re->type], ++ re->q[re->type][i], re->q[re->type][j], ++ erename[re->type]); ++ ++ k = re->ind[i]; ++ re->ind[i] = re->ind[j]; ++ re->ind[j] = k; ++ } ++ else if (re->q[re->type][re->ind[j]] == re->q[re->type][re->ind[i]]) ++ { ++ gmx_fatal(FARGS, "Two replicas have identical %ss", erename[re->type]); ++ } ++ } ++ } ++ } ++ ++ /* keep track of all the swaps, starting with the initial placement. */ ++ snew(re->allswaps, re->nrepl); ++ for (i = 0; i < re->nrepl; i++) ++ { ++ re->allswaps[i] = re->ind[i]; ++ } ++ ++ switch (re->type) ++ { ++ case ereTEMP: ++ fprintf(fplog, "\nReplica exchange in temperature\n"); ++ for (i = 0; i < re->nrepl; i++) ++ { ++ fprintf(fplog, " %5.1f", re->q[re->type][re->ind[i]]); ++ } ++ fprintf(fplog, "\n"); ++ break; ++ case ereLAMBDA: ++ fprintf(fplog, "\nReplica exchange in lambda\n"); ++ for (i = 0; i < re->nrepl; i++) ++ { ++ fprintf(fplog, " %3d", (int)re->q[re->type][re->ind[i]]); ++ } ++ fprintf(fplog, "\n"); ++ break; ++ case ereTL: ++ fprintf(fplog, "\nReplica exchange in temperature and lambda state\n"); ++ for (i = 0; i < re->nrepl; i++) ++ { ++ fprintf(fplog, " %5.1f", re->q[ereTEMP][re->ind[i]]); ++ } ++ fprintf(fplog, "\n"); ++ for (i = 0; i < re->nrepl; i++) ++ { ++ fprintf(fplog, " %5d", (int)re->q[ereLAMBDA][re->ind[i]]); ++ } ++ fprintf(fplog, "\n"); ++ break; ++ default: ++ gmx_incons("Unknown replica exchange quantity"); ++ } ++ if (re->bNPT) ++ { ++ fprintf(fplog, "\nRepl p"); ++ for (i = 0; i < re->nrepl; i++) ++ { ++ fprintf(fplog, " %5.2f", re->pres[re->ind[i]]); ++ } ++ ++ for (i = 0; i < re->nrepl; i++) ++ { ++ if ((i > 0) && (re->pres[re->ind[i]] < re->pres[re->ind[i-1]])) ++ { ++ fprintf(fplog, "\nWARNING: The reference pressures decrease with increasing temperatures\n\n"); ++ fprintf(stderr, "\nWARNING: The reference pressures decrease with increasing temperatures\n\n"); ++ } ++ } ++ } ++ re->nst = nst; ++ if (init_seed == -1) ++ { ++ if (MASTERSIM(ms)) ++ { ++ re->seed = make_seed(); ++ } ++ else ++ { ++ re->seed = 0; ++ } ++ gmx_sumi_sim(1, &(re->seed), ms); ++ } ++ else ++ { ++ re->seed = init_seed; ++ } ++ fprintf(fplog, "\nReplica exchange interval: %d\n", re->nst); ++ fprintf(fplog, "\nReplica random seed: %d\n", re->seed); ++ ++ re->nattempt[0] = 0; ++ re->nattempt[1] = 0; ++ ++ snew(re->prob_sum, re->nrepl); ++ snew(re->nexchange, re->nrepl); ++ snew(re->nmoves, re->nrepl); ++ for (i = 0; i < re->nrepl; i++) ++ { ++ snew(re->nmoves[i], re->nrepl); ++ } ++ fprintf(fplog, "Replica exchange information below: x=exchange, pr=probability\n"); ++ ++ /* generate space for the helper functions so we don't have to snew each time */ ++ ++ snew(re->destinations, re->nrepl); ++ snew(re->incycle, re->nrepl); ++ snew(re->tmpswap, re->nrepl); ++ snew(re->cyclic, re->nrepl); ++ snew(re->order, re->nrepl); ++ for (i = 0; i < re->nrepl; i++) ++ { ++ snew(re->cyclic[i], re->nrepl); ++ snew(re->order[i], re->nrepl); ++ } ++ /* allocate space for the functions storing the data for the replicas */ ++ /* not all of these arrays needed in all cases, but they don't take ++ up much space, since the max size is nrepl**2 */ ++ snew(re->prob, re->nrepl); ++ snew(re->bEx, re->nrepl); ++ snew(re->beta, re->nrepl); ++ snew(re->Vol, re->nrepl); ++ snew(re->Epot, re->nrepl); ++ snew(re->de, re->nrepl); ++ for (i = 0; i < re->nrepl; i++) ++ { ++ snew(re->de[i], re->nrepl); ++ } ++ re->nex = nex; ++ return re; ++} ++ ++static void exchange_reals(const gmx_multisim_t *ms, int b, real *v, int n) ++{ ++ real *buf; ++ int i; ++ ++ if (v) ++ { ++ snew(buf, n); ++#ifdef GMX_MPI ++ /* ++ MPI_Sendrecv(v, n*sizeof(real),MPI_BYTE,MSRANK(ms,b),0, ++ buf,n*sizeof(real),MPI_BYTE,MSRANK(ms,b),0, ++ ms->mpi_comm_masters,MPI_STATUS_IGNORE); ++ */ ++ { ++ MPI_Request mpi_req; ++ ++ MPI_Isend(v, n*sizeof(real), MPI_BYTE, MSRANK(ms, b), 0, ++ ms->mpi_comm_masters, &mpi_req); ++ MPI_Recv(buf, n*sizeof(real), MPI_BYTE, MSRANK(ms, b), 0, ++ ms->mpi_comm_masters, MPI_STATUS_IGNORE); ++ MPI_Wait(&mpi_req, MPI_STATUS_IGNORE); ++ } ++#endif ++ for (i = 0; i < n; i++) ++ { ++ v[i] = buf[i]; ++ } ++ sfree(buf); ++ } ++} ++ ++ ++static void exchange_ints(const gmx_multisim_t *ms, int b, int *v, int n) ++{ ++ int *buf; ++ int i; ++ ++ if (v) ++ { ++ snew(buf, n); ++#ifdef GMX_MPI ++ /* ++ MPI_Sendrecv(v, n*sizeof(int),MPI_BYTE,MSRANK(ms,b),0, ++ buf,n*sizeof(int),MPI_BYTE,MSRANK(ms,b),0, ++ ms->mpi_comm_masters,MPI_STATUS_IGNORE); ++ */ ++ { ++ MPI_Request mpi_req; ++ ++ MPI_Isend(v, n*sizeof(int), MPI_BYTE, MSRANK(ms, b), 0, ++ ms->mpi_comm_masters, &mpi_req); ++ MPI_Recv(buf, n*sizeof(int), MPI_BYTE, MSRANK(ms, b), 0, ++ ms->mpi_comm_masters, MPI_STATUS_IGNORE); ++ MPI_Wait(&mpi_req, MPI_STATUS_IGNORE); ++ } ++#endif ++ for (i = 0; i < n; i++) ++ { ++ v[i] = buf[i]; ++ } ++ sfree(buf); ++ } ++} ++ ++static void exchange_doubles(const gmx_multisim_t *ms, int b, double *v, int n) ++{ ++ double *buf; ++ int i; ++ ++ if (v) ++ { ++ snew(buf, n); ++#ifdef GMX_MPI ++ /* ++ MPI_Sendrecv(v, n*sizeof(double),MPI_BYTE,MSRANK(ms,b),0, ++ buf,n*sizeof(double),MPI_BYTE,MSRANK(ms,b),0, ++ ms->mpi_comm_masters,MPI_STATUS_IGNORE); ++ */ ++ { ++ MPI_Request mpi_req; ++ ++ MPI_Isend(v, n*sizeof(double), MPI_BYTE, MSRANK(ms, b), 0, ++ ms->mpi_comm_masters, &mpi_req); ++ MPI_Recv(buf, n*sizeof(double), MPI_BYTE, MSRANK(ms, b), 0, ++ ms->mpi_comm_masters, MPI_STATUS_IGNORE); ++ MPI_Wait(&mpi_req, MPI_STATUS_IGNORE); ++ } ++#endif ++ for (i = 0; i < n; i++) ++ { ++ v[i] = buf[i]; ++ } ++ sfree(buf); ++ } ++} ++ ++static void exchange_rvecs(const gmx_multisim_t *ms, int b, rvec *v, int n) ++{ ++ rvec *buf; ++ int i; ++ ++ if (v) ++ { ++ snew(buf, n); ++#ifdef GMX_MPI ++ /* ++ MPI_Sendrecv(v[0], n*sizeof(rvec),MPI_BYTE,MSRANK(ms,b),0, ++ buf[0],n*sizeof(rvec),MPI_BYTE,MSRANK(ms,b),0, ++ ms->mpi_comm_masters,MPI_STATUS_IGNORE); ++ */ ++ { ++ MPI_Request mpi_req; ++ ++ MPI_Isend(v[0], n*sizeof(rvec), MPI_BYTE, MSRANK(ms, b), 0, ++ ms->mpi_comm_masters, &mpi_req); ++ MPI_Recv(buf[0], n*sizeof(rvec), MPI_BYTE, MSRANK(ms, b), 0, ++ ms->mpi_comm_masters, MPI_STATUS_IGNORE); ++ MPI_Wait(&mpi_req, MPI_STATUS_IGNORE); ++ } ++#endif ++ for (i = 0; i < n; i++) ++ { ++ copy_rvec(buf[i], v[i]); ++ } ++ sfree(buf); ++ } ++} ++ ++static void exchange_state(const gmx_multisim_t *ms, int b, t_state *state) ++{ ++ /* When t_state changes, this code should be updated. */ ++ int ngtc, nnhpres; ++ ngtc = state->ngtc * state->nhchainlength; ++ nnhpres = state->nnhpres* state->nhchainlength; ++ exchange_rvecs(ms, b, state->box, DIM); ++ exchange_rvecs(ms, b, state->box_rel, DIM); ++ exchange_rvecs(ms, b, state->boxv, DIM); ++ exchange_reals(ms, b, &(state->veta), 1); ++ exchange_reals(ms, b, &(state->vol0), 1); ++ exchange_rvecs(ms, b, state->svir_prev, DIM); ++ exchange_rvecs(ms, b, state->fvir_prev, DIM); ++ exchange_rvecs(ms, b, state->pres_prev, DIM); ++ exchange_doubles(ms, b, state->nosehoover_xi, ngtc); ++ exchange_doubles(ms, b, state->nosehoover_vxi, ngtc); ++ exchange_doubles(ms, b, state->nhpres_xi, nnhpres); ++ exchange_doubles(ms, b, state->nhpres_vxi, nnhpres); ++ exchange_doubles(ms, b, state->therm_integral, state->ngtc); ++ exchange_rvecs(ms, b, state->x, state->natoms); ++ exchange_rvecs(ms, b, state->v, state->natoms); ++ exchange_rvecs(ms, b, state->sd_X, state->natoms); ++} ++ ++static void copy_rvecs(rvec *s, rvec *d, int n) ++{ ++ int i; ++ ++ if (d != NULL) ++ { ++ for (i = 0; i < n; i++) ++ { ++ copy_rvec(s[i], d[i]); ++ } ++ } ++} ++ ++static void copy_doubles(const double *s, double *d, int n) ++{ ++ int i; ++ ++ if (d != NULL) ++ { ++ for (i = 0; i < n; i++) ++ { ++ d[i] = s[i]; ++ } ++ } ++} ++ ++static void copy_reals(const real *s, real *d, int n) ++{ ++ int i; ++ ++ if (d != NULL) ++ { ++ for (i = 0; i < n; i++) ++ { ++ d[i] = s[i]; ++ } ++ } ++} ++ ++static void copy_ints(const int *s, int *d, int n) ++{ ++ int i; ++ ++ if (d != NULL) ++ { ++ for (i = 0; i < n; i++) ++ { ++ d[i] = s[i]; ++ } ++ } ++} ++ ++#define scopy_rvecs(v, n) copy_rvecs(state->v, state_local->v, n); ++#define scopy_doubles(v, n) copy_doubles(state->v, state_local->v, n); ++#define scopy_reals(v, n) copy_reals(state->v, state_local->v, n); ++#define scopy_ints(v, n) copy_ints(state->v, state_local->v, n); ++ ++static void copy_state_nonatomdata(t_state *state, t_state *state_local) ++{ ++ /* When t_state changes, this code should be updated. */ ++ int ngtc, nnhpres; ++ ngtc = state->ngtc * state->nhchainlength; ++ nnhpres = state->nnhpres* state->nhchainlength; ++ scopy_rvecs(box, DIM); ++ scopy_rvecs(box_rel, DIM); ++ scopy_rvecs(boxv, DIM); ++ state_local->veta = state->veta; ++ state_local->vol0 = state->vol0; ++ scopy_rvecs(svir_prev, DIM); ++ scopy_rvecs(fvir_prev, DIM); ++ scopy_rvecs(pres_prev, DIM); ++ scopy_doubles(nosehoover_xi, ngtc); ++ scopy_doubles(nosehoover_vxi, ngtc); ++ scopy_doubles(nhpres_xi, nnhpres); ++ scopy_doubles(nhpres_vxi, nnhpres); ++ scopy_doubles(therm_integral, state->ngtc); ++ scopy_rvecs(x, state->natoms); ++ scopy_rvecs(v, state->natoms); ++ scopy_rvecs(sd_X, state->natoms); ++ copy_ints(&(state->fep_state), &(state_local->fep_state), 1); ++ scopy_reals(lambda, efptNR); ++} ++ ++static void scale_velocities(t_state *state, real fac) ++{ ++ int i; ++ ++ if (state->v) ++ { ++ for (i = 0; i < state->natoms; i++) ++ { ++ svmul(fac, state->v[i], state->v[i]); ++ } ++ } ++} ++ ++static void pd_collect_state(const t_commrec *cr, t_state *state) ++{ ++ int shift; ++ ++ if (debug) ++ { ++ fprintf(debug, "Collecting state before exchange\n"); ++ } ++ shift = cr->nnodes - cr->npmenodes - 1; ++ move_rvecs(cr, FALSE, FALSE, GMX_LEFT, GMX_RIGHT, state->x, NULL, shift, NULL); ++ if (state->v) ++ { ++ move_rvecs(cr, FALSE, FALSE, GMX_LEFT, GMX_RIGHT, state->v, NULL, shift, NULL); ++ } ++ if (state->sd_X) ++ { ++ move_rvecs(cr, FALSE, FALSE, GMX_LEFT, GMX_RIGHT, state->sd_X, NULL, shift, NULL); ++ } ++} ++ ++static void print_transition_matrix(FILE *fplog, const char *leg, int n, int **nmoves, int *nattempt) ++{ ++ int i, j, ntot; ++ float Tprint; ++ ++ ntot = nattempt[0] + nattempt[1]; ++ fprintf(fplog, "\n"); ++ fprintf(fplog, "Repl"); ++ for (i = 0; i < n; i++) ++ { ++ fprintf(fplog, " "); /* put the title closer to the center */ ++ } ++ fprintf(fplog, "Empirical Transition Matrix\n"); ++ ++ fprintf(fplog, "Repl"); ++ for (i = 0; i < n; i++) ++ { ++ fprintf(fplog, "%8d", (i+1)); ++ } ++ fprintf(fplog, "\n"); ++ ++ for (i = 0; i < n; i++) ++ { ++ fprintf(fplog, "Repl"); ++ for (j = 0; j < n; j++) ++ { ++ Tprint = 0.0; ++ if (nmoves[i][j] > 0) ++ { ++ Tprint = nmoves[i][j]/(2.0*ntot); ++ } ++ fprintf(fplog, "%8.4f", Tprint); ++ } ++ fprintf(fplog, "%3d\n", i); ++ } ++} ++ ++static void print_ind(FILE *fplog, const char *leg, int n, int *ind, gmx_bool *bEx) ++{ ++ int i; ++ ++ fprintf(fplog, "Repl %2s %2d", leg, ind[0]); ++ for (i = 1; i < n; i++) ++ { ++ fprintf(fplog, " %c %2d", (bEx != 0 && bEx[i]) ? 'x' : ' ', ind[i]); ++ } ++ fprintf(fplog, "\n"); ++} ++ ++static void print_allswitchind(FILE *fplog, int n, int *ind, int *pind, int *allswaps, int *tmpswap) ++{ ++ int i; ++ ++ for (i = 0; i < n; i++) ++ { ++ tmpswap[i] = allswaps[i]; ++ } ++ for (i = 0; i < n; i++) ++ { ++ allswaps[i] = tmpswap[pind[i]]; ++ } ++ ++ fprintf(fplog, "\nAccepted Exchanges: "); ++ for (i = 0; i < n; i++) ++ { ++ fprintf(fplog, "%d ", pind[i]); ++ } ++ fprintf(fplog, "\n"); ++ ++ /* the "Order After Exchange" is the state label corresponding to the configuration that ++ started in state listed in order, i.e. ++ ++ 3 0 1 2 ++ ++ means that the: ++ configuration starting in simulation 3 is now in simulation 0, ++ configuration starting in simulation 0 is now in simulation 1, ++ configuration starting in simulation 1 is now in simulation 2, ++ configuration starting in simulation 2 is now in simulation 3 ++ */ ++ fprintf(fplog, "Order After Exchange: "); ++ for (i = 0; i < n; i++) ++ { ++ fprintf(fplog, "%d ", allswaps[i]); ++ } ++ fprintf(fplog, "\n\n"); ++} ++ ++static void print_prob(FILE *fplog, const char *leg, int n, real *prob) ++{ ++ int i; ++ char buf[8]; ++ ++ fprintf(fplog, "Repl %2s ", leg); ++ for (i = 1; i < n; i++) ++ { ++ if (prob[i] >= 0) ++ { ++ sprintf(buf, "%4.2f", prob[i]); ++ fprintf(fplog, " %3s", buf[0] == '1' ? "1.0" : buf+1); ++ } ++ else ++ { ++ fprintf(fplog, " "); ++ } ++ } ++ fprintf(fplog, "\n"); ++} ++ ++static void print_count(FILE *fplog, const char *leg, int n, int *count) ++{ ++ int i; ++ ++ fprintf(fplog, "Repl %2s ", leg); ++ for (i = 1; i < n; i++) ++ { ++ fprintf(fplog, " %4d", count[i]); ++ } ++ fprintf(fplog, "\n"); ++} ++ ++static real calc_delta(FILE *fplog, gmx_bool bPrint, struct gmx_repl_ex *re, int a, int b, int ap, int bp) ++{ ++ ++ real ediff, dpV, delta = 0; ++ real *Epot = re->Epot; ++ real *Vol = re->Vol; ++ real **de = re->de; ++ real *beta = re->beta; ++ ++ /* Two cases; we are permuted and not. In all cases, setting ap = a and bp = b will reduce ++ to the non permuted case */ ++ ++ switch (re->type) ++ { ++ case ereTEMP: ++ /* ++ * Okabe et. al. Chem. Phys. Lett. 335 (2001) 435-439 ++ */ ++ ediff = Epot[b] - Epot[a]; ++ delta = -(beta[bp] - beta[ap])*ediff; ++ break; ++ case ereLAMBDA: ++ /* two cases: when we are permuted, and not. */ ++ /* non-permuted: ++ ediff = E_new - E_old ++ = [H_b(x_a) + H_a(x_b)] - [H_b(x_b) + H_a(x_a)] ++ = [H_b(x_a) - H_a(x_a)] + [H_a(x_b) - H_b(x_b)] ++ = de[b][a] + de[a][b] */ ++ ++ /* permuted: ++ ediff = E_new - E_old ++ = [H_bp(x_a) + H_ap(x_b)] - [H_bp(x_b) + H_ap(x_a)] ++ = [H_bp(x_a) - H_ap(x_a)] + [H_ap(x_b) - H_bp(x_b)] ++ = [H_bp(x_a) - H_a(x_a) + H_a(x_a) - H_ap(x_a)] + [H_ap(x_b) - H_b(x_b) + H_b(x_b) - H_bp(x_b)] ++ = [H_bp(x_a) - H_a(x_a)] - [H_ap(x_a) - H_a(x_a)] + [H_ap(x_b) - H_b(x_b)] - H_bp(x_b) - H_b(x_b)] ++ = (de[bp][a] - de[ap][a]) + (de[ap][b] - de[bp][b]) */ ++ /* but, in the current code implementation, we flip configurations, not indices . . . ++ So let's examine that. ++ = [H_b(x_ap) - H_a(x_a)] - [H_a(x_ap) - H_a(x_a)] + [H_a(x_bp) - H_b(x_b)] - H_b(x_bp) - H_b(x_b)] ++ = [H_b(x_ap) - H_a(x_ap)] + [H_a(x_bp) - H_b(x_pb)] ++ = (de[b][ap] - de[a][ap]) + (de[a][bp] - de[b][bp] ++ So, if we exchange b<=> bp and a<=> ap, we return to the same result. ++ So the simple solution is to flip the ++ position of perturbed and original indices in the tests. ++ */ ++ ++ ediff = (de[bp][a] - de[ap][a]) + (de[ap][b] - de[bp][b]); ++ delta = ediff*beta[a]; /* assume all same temperature in this case */ ++ break; ++ case ereTL: ++ /* not permuted: */ ++ /* delta = reduced E_new - reduced E_old ++ = [beta_b H_b(x_a) + beta_a H_a(x_b)] - [beta_b H_b(x_b) + beta_a H_a(x_a)] ++ = [beta_b H_b(x_a) - beta_a H_a(x_a)] + [beta_a H_a(x_b) - beta_b H_b(x_b)] ++ = [beta_b dH_b(x_a) + beta_b H_a(x_a) - beta_a H_a(x_a)] + ++ [beta_a dH_a(x_b) + beta_a H_b(x_b) - beta_b H_b(x_b)] ++ = [beta_b dH_b(x_a) + [beta_a dH_a(x_b) + ++ beta_b (H_a(x_a) - H_b(x_b)]) - beta_a (H_a(x_a) - H_b(x_b)) ++ = beta_b dH_b(x_a) + beta_a dH_a(x_b) - (beta_b - beta_a)(H_b(x_b) - H_a(x_a) */ ++ /* delta = beta[b]*de[b][a] + beta[a]*de[a][b] - (beta[b] - beta[a])*(Epot[b] - Epot[a]; */ ++ /* permuted (big breath!) */ ++ /* delta = reduced E_new - reduced E_old ++ = [beta_bp H_bp(x_a) + beta_ap H_ap(x_b)] - [beta_bp H_bp(x_b) + beta_ap H_ap(x_a)] ++ = [beta_bp H_bp(x_a) - beta_ap H_ap(x_a)] + [beta_ap H_ap(x_b) - beta_bp H_bp(x_b)] ++ = [beta_bp H_bp(x_a) - beta_ap H_ap(x_a)] + [beta_ap H_ap(x_b) - beta_bp H_bp(x_b)] ++ - beta_pb H_a(x_a) + beta_ap H_a(x_a) + beta_pb H_a(x_a) - beta_ap H_a(x_a) ++ - beta_ap H_b(x_b) + beta_bp H_b(x_b) + beta_ap H_b(x_b) - beta_bp H_b(x_b) ++ = [(beta_bp H_bp(x_a) - beta_bp H_a(x_a)) - (beta_ap H_ap(x_a) - beta_ap H_a(x_a))] + ++ [(beta_ap H_ap(x_b) - beta_ap H_b(x_b)) - (beta_bp H_bp(x_b) - beta_bp H_b(x_b))] ++ + beta_pb H_a(x_a) - beta_ap H_a(x_a) + beta_ap H_b(x_b) - beta_bp H_b(x_b) ++ = [beta_bp (H_bp(x_a) - H_a(x_a)) - beta_ap (H_ap(x_a) - H_a(x_a))] + ++ [beta_ap (H_ap(x_b) - H_b(x_b)) - beta_bp (H_bp(x_b) - H_b(x_b))] ++ + beta_pb (H_a(x_a) - H_b(x_b)) - beta_ap (H_a(x_a) - H_b(x_b)) ++ = ([beta_bp de[bp][a] - beta_ap de[ap][a]) + beta_ap de[ap][b] - beta_bp de[bp][b]) ++ + (beta_pb-beta_ap)(H_a(x_a) - H_b(x_b)) */ ++ delta = beta[bp]*(de[bp][a] - de[bp][b]) + beta[ap]*(de[ap][b] - de[ap][a]) - (beta[bp]-beta[ap])*(Epot[b]-Epot[a]); ++ break; ++ default: ++ gmx_incons("Unknown replica exchange quantity"); ++ } ++ if (bPrint) ++ { ++ fprintf(fplog, "Repl %d <-> %d dE_term = %10.3e (kT)\n", a, b, delta); ++ } ++ if (re->bNPT) ++ { ++ /* revist the calculation for 5.0. Might be some improvements. */ ++ dpV = (beta[ap]*re->pres[ap]-beta[bp]*re->pres[bp])*(Vol[b]-Vol[a])/PRESFAC; ++ if (bPrint) ++ { ++ fprintf(fplog, " dpV = %10.3e d = %10.3e\n", dpV, delta + dpV); ++ } ++ delta += dpV; ++ } ++ return delta; ++} ++ ++static void ++test_for_replica_exchange(FILE *fplog, ++ const gmx_multisim_t *ms, ++ struct gmx_repl_ex *re, ++ gmx_enerdata_t *enerd, ++ real vol, ++ gmx_large_int_t step, ++ real time) ++{ ++ int m, i, j, a, b, ap, bp, i0, i1, tmp; ++ real ediff = 0, delta = 0, dpV = 0; ++ gmx_bool bPrint, bMultiEx; ++ gmx_bool *bEx = re->bEx; ++ real *prob = re->prob; ++ int *pind = re->destinations; /* permuted index */ ++ gmx_bool bEpot = FALSE; ++ gmx_bool bDLambda = FALSE; ++ gmx_bool bVol = FALSE; ++ ++ bMultiEx = (re->nex > 1); /* multiple exchanges at each state */ ++ fprintf(fplog, "Replica exchange at step " gmx_large_int_pfmt " time %.5f\n", step, time); ++ ++ if (re->bNPT) ++ { ++ for (i = 0; i < re->nrepl; i++) ++ { ++ re->Vol[i] = 0; ++ } ++ bVol = TRUE; ++ re->Vol[re->repl] = vol; ++ } ++ if ((re->type == ereTEMP || re->type == ereTL)) ++ { ++ for (i = 0; i < re->nrepl; i++) ++ { ++ re->Epot[i] = 0; ++ } ++ bEpot = TRUE; ++ re->Epot[re->repl] = enerd->term[F_EPOT]; ++ /* temperatures of different states*/ ++ for (i = 0; i < re->nrepl; i++) ++ { ++ re->beta[i] = 1.0/(re->q[ereTEMP][i]*BOLTZ); ++ } ++ } ++ else ++ { ++ for (i = 0; i < re->nrepl; i++) ++ { ++ re->beta[i] = 1.0/(re->temp*BOLTZ); /* we have a single temperature */ ++ } ++ } ++ if (re->type == ereLAMBDA || re->type == ereTL) ++ { ++ bDLambda = TRUE; ++ /* lambda differences. */ ++ /* de[i][j] is the energy of the jth simulation in the ith Hamiltonian ++ minus the energy of the jth simulation in the jth Hamiltonian */ ++ for (i = 0; i < re->nrepl; i++) ++ { ++ for (j = 0; j < re->nrepl; j++) ++ { ++ re->de[i][j] = 0; ++ } ++ } ++ for (i = 0; i < re->nrepl; i++) ++ { ++ re->de[i][re->repl] = (enerd->enerpart_lambda[(int)re->q[ereLAMBDA][i]+1]-enerd->enerpart_lambda[0]); ++ } ++ } ++ ++ /* now actually do the communication */ ++ if (bVol) ++ { ++ gmx_sum_sim(re->nrepl, re->Vol, ms); ++ } ++ if (bEpot) ++ { ++ gmx_sum_sim(re->nrepl, re->Epot, ms); ++ } ++ if (bDLambda) ++ { ++ for (i = 0; i < re->nrepl; i++) ++ { ++ gmx_sum_sim(re->nrepl, re->de[i], ms); ++ } ++ } ++ ++ /* make a duplicate set of indices for shuffling */ ++ for (i = 0; i < re->nrepl; i++) ++ { ++ pind[i] = re->ind[i]; ++ } ++ ++ if (bMultiEx) ++ { ++ /* multiple random switch exchange */ ++ for (i = 0; i < re->nex; i++) ++ { ++ /* randomly select a pair */ ++ /* in theory, could reduce this by identifying only which switches had a nonneglibible ++ probability of occurring (log p > -100) and only operate on those switches */ ++ /* find out which state it is from, and what label that state currently has. Likely ++ more work that useful. */ ++ i0 = (int)(re->nrepl*rando(&(re->seed))); ++ i1 = (int)(re->nrepl*rando(&(re->seed))); ++ if (i0 == i1) ++ { ++ i--; ++ continue; /* self-exchange, back up and do it again */ ++ } ++ ++ a = re->ind[i0]; /* what are the indices of these states? */ ++ b = re->ind[i1]; ++ ap = pind[i0]; ++ bp = pind[i1]; ++ ++ bPrint = FALSE; /* too noisy */ ++ /* calculate the energy difference */ ++ /* if the code changes to flip the STATES, rather than the configurations, ++ use the commented version of the code */ ++ /* delta = calc_delta(fplog,bPrint,re,a,b,ap,bp); */ ++ delta = calc_delta(fplog, bPrint, re, ap, bp, a, b); ++ ++ /* we actually only use the first space in the prob and bEx array, ++ since there are actually many switches between pairs. */ ++ ++ if (delta <= 0) ++ { ++ /* accepted */ ++ prob[0] = 1; ++ bEx[0] = TRUE; ++ } ++ else ++ { ++ if (delta > PROBABILITYCUTOFF) ++ { ++ prob[0] = 0; ++ } ++ else ++ { ++ prob[0] = exp(-delta); ++ } ++ /* roll a number to determine if accepted */ ++ bEx[0] = (rando(&(re->seed)) < prob[0]); ++ } ++ re->prob_sum[0] += prob[0]; ++ ++ if (bEx[0]) ++ { ++ /* swap the states */ ++ tmp = pind[i0]; ++ pind[i0] = pind[i1]; ++ pind[i1] = tmp; ++ } ++ } ++ re->nattempt[0]++; /* keep track of total permutation trials here */ ++ print_allswitchind(fplog, re->nrepl, re->ind, pind, re->allswaps, re->tmpswap); ++ } ++ else ++ { ++ /* standard nearest neighbor replica exchange */ ++ m = (step / re->nst) % 2; ++ for (i = 1; i < re->nrepl; i++) ++ { ++ a = re->ind[i-1]; ++ b = re->ind[i]; ++ ++ bPrint = (re->repl == a || re->repl == b); ++ if (i % 2 == m) ++ { ++ delta = calc_delta(fplog, bPrint, re, a, b, a, b); ++ if (delta <= 0) ++ { ++ /* accepted */ ++ prob[i] = 1; ++ bEx[i] = TRUE; ++ } ++ else ++ { ++ if (delta > PROBABILITYCUTOFF) ++ { ++ prob[i] = 0; ++ } ++ else ++ { ++ prob[i] = exp(-delta); ++ } ++ /* roll a number to determine if accepted */ ++ bEx[i] = (rando(&(re->seed)) < prob[i]); ++ } ++ re->prob_sum[i] += prob[i]; ++ ++ if (bEx[i]) ++ { ++ /* swap these two */ ++ tmp = pind[i-1]; ++ pind[i-1] = pind[i]; ++ pind[i] = tmp; ++ re->nexchange[i]++; /* statistics for back compatibility */ ++ } ++ } ++ else ++ { ++ prob[i] = -1; ++ bEx[i] = FALSE; ++ } ++ } ++ /* print some statistics */ ++ print_ind(fplog, "ex", re->nrepl, re->ind, bEx); ++ print_prob(fplog, "pr", re->nrepl, prob); ++ fprintf(fplog, "\n"); ++ re->nattempt[m]++; ++ } ++ ++ /* record which moves were made and accepted */ ++ for (i = 0; i < re->nrepl; i++) ++ { ++ re->nmoves[re->ind[i]][pind[i]] += 1; ++ re->nmoves[pind[i]][re->ind[i]] += 1; ++ } ++ fflush(fplog); /* make sure we can see what the last exchange was */ ++} ++ ++static void write_debug_x(t_state *state) ++{ ++ int i; ++ ++ if (debug) ++ { ++ for (i = 0; i < state->natoms; i += 10) ++ { ++ fprintf(debug, "dx %5d %10.5f %10.5f %10.5f\n", i, state->x[i][XX], state->x[i][YY], state->x[i][ZZ]); ++ } ++ } ++} ++ ++static void ++cyclic_decomposition(FILE *fplog, ++ const int *destinations, ++ int **cyclic, ++ gmx_bool *incycle, ++ const int nrepl, ++ int *nswap) ++{ ++ ++ int i, j, c, p; ++ int maxlen = 1; ++ for (i = 0; i < nrepl; i++) ++ { ++ incycle[i] = FALSE; ++ } ++ for (i = 0; i < nrepl; i++) /* one cycle for each replica */ ++ { ++ if (incycle[i]) ++ { ++ cyclic[i][0] = -1; ++ continue; ++ } ++ cyclic[i][0] = i; ++ incycle[i] = TRUE; ++ c = 1; ++ p = i; ++ for (j = 0; j < nrepl; j++) /* potentially all cycles are part, but we will break first */ ++ { ++ p = destinations[p]; /* start permuting */ ++ if (p == i) ++ { ++ cyclic[i][c] = -1; ++ if (c > maxlen) ++ { ++ maxlen = c; ++ } ++ break; /* we've reached the original element, the cycle is complete, and we marked the end. */ ++ } ++ else ++ { ++ cyclic[i][c] = p; /* each permutation gives a new member of the cycle */ ++ incycle[p] = TRUE; ++ c++; ++ } ++ } ++ } ++ *nswap = maxlen - 1; ++ ++ if (debug) ++ { ++ for (i = 0; i < nrepl; i++) ++ { ++ fprintf(debug, "Cycle %d:", i); ++ for (j = 0; j < nrepl; j++) ++ { ++ if (cyclic[i][j] < 0) ++ { ++ break; ++ } ++ fprintf(debug, "%2d", cyclic[i][j]); ++ } ++ fprintf(debug, "\n"); ++ } ++ fflush(debug); ++ } ++} ++ ++static void ++compute_exchange_order(FILE *fplog, ++ int **cyclic, ++ int **order, ++ const int nrepl, ++ const int maxswap) ++{ ++ int i, j; ++ ++ for (j = 0; j < maxswap; j++) ++ { ++ for (i = 0; i < nrepl; i++) ++ { ++ if (cyclic[i][j+1] >= 0) ++ { ++ order[cyclic[i][j+1]][j] = cyclic[i][j]; ++ order[cyclic[i][j]][j] = cyclic[i][j+1]; ++ } ++ } ++ for (i = 0; i < nrepl; i++) ++ { ++ if (order[i][j] < 0) ++ { ++ order[i][j] = i; /* if it's not exchanging, it should stay this round*/ ++ } ++ } ++ } ++ ++ if (debug) ++ { ++ fprintf(fplog, "Replica Exchange Order\n"); ++ for (i = 0; i < nrepl; i++) ++ { ++ fprintf(fplog, "Replica %d:", i); ++ for (j = 0; j < maxswap; j++) ++ { ++ if (order[i][j] < 0) ++ { ++ break; ++ } ++ fprintf(debug, "%2d", order[i][j]); ++ } ++ fprintf(fplog, "\n"); ++ } ++ fflush(fplog); ++ } ++} ++ ++static void ++prepare_to_do_exchange(FILE *fplog, ++ struct gmx_repl_ex *re, ++ const int replica_id, ++ int *maxswap, ++ gmx_bool *bThisReplicaExchanged) ++{ ++ int i, j; ++ /* Hold the cyclic decomposition of the (multiple) replica ++ * exchange. */ ++ gmx_bool bAnyReplicaExchanged = FALSE; ++ *bThisReplicaExchanged = FALSE; ++ ++ for (i = 0; i < re->nrepl; i++) ++ { ++ if (re->destinations[i] != re->ind[i]) ++ { ++ /* only mark as exchanged if the index has been shuffled */ ++ bAnyReplicaExchanged = TRUE; ++ break; ++ } ++ } ++ if (bAnyReplicaExchanged) ++ { ++ /* reinitialize the placeholder arrays */ ++ for (i = 0; i < re->nrepl; i++) ++ { ++ for (j = 0; j < re->nrepl; j++) ++ { ++ re->cyclic[i][j] = -1; ++ re->order[i][j] = -1; ++ } ++ } ++ ++ /* Identify the cyclic decomposition of the permutation (very ++ * fast if neighbor replica exchange). */ ++ cyclic_decomposition(fplog, re->destinations, re->cyclic, re->incycle, re->nrepl, maxswap); ++ ++ /* Now translate the decomposition into a replica exchange ++ * order at each step. */ ++ compute_exchange_order(fplog, re->cyclic, re->order, re->nrepl, *maxswap); ++ ++ /* Did this replica do any exchange at any point? */ ++ for (j = 0; j < *maxswap; j++) ++ { ++ if (replica_id != re->order[replica_id][j]) ++ { ++ *bThisReplicaExchanged = TRUE; ++ break; ++ } ++ } ++ } ++} ++ ++gmx_bool replica_exchange(FILE *fplog, const t_commrec *cr, struct gmx_repl_ex *re, ++ t_state *state, gmx_enerdata_t *enerd, ++ t_state *state_local, gmx_large_int_t step, real time) ++{ ++ int i, j; ++ int replica_id = 0; ++ int exchange_partner; ++ int maxswap = 0; ++ /* Number of rounds of exchanges needed to deal with any multiple ++ * exchanges. */ ++ /* Where each replica ends up after the exchange attempt(s). */ ++ /* The order in which multiple exchanges will occur. */ ++ gmx_bool bThisReplicaExchanged = FALSE; ++ ++ if (MASTER(cr)) ++ { ++ replica_id = re->repl; ++ test_for_replica_exchange(fplog, cr->ms, re, enerd, det(state_local->box), step, time); ++ prepare_to_do_exchange(fplog, re, replica_id, &maxswap, &bThisReplicaExchanged); ++ } ++ /* Do intra-simulation broadcast so all processors belonging to ++ * each simulation know whether they need to participate in ++ * collecting the state. Otherwise, they might as well get on with ++ * the next thing to do. */ ++ if (PAR(cr)) ++ { ++#ifdef GMX_MPI ++ MPI_Bcast(&bThisReplicaExchanged, sizeof(gmx_bool), MPI_BYTE, MASTERRANK(cr), ++ cr->mpi_comm_mygroup); ++#endif ++ } ++ ++ if (bThisReplicaExchanged) ++ { ++ /* Exchange the states */ ++ ++ if (PAR(cr)) ++ { ++ /* Collect the global state on the master node */ ++ if (DOMAINDECOMP(cr)) ++ { ++ dd_collect_state(cr->dd, state_local, state); ++ } ++ else ++ { ++ pd_collect_state(cr, state); ++ } ++ } ++ else ++ { ++ copy_state_nonatomdata(state_local, state); ++ } ++ ++ if (MASTER(cr)) ++ { ++ /* There will be only one swap cycle with standard replica ++ * exchange, but there may be multiple swap cycles if we ++ * allow multiple swaps. */ ++ ++ for (j = 0; j < maxswap; j++) ++ { ++ exchange_partner = re->order[replica_id][j]; ++ ++ if (exchange_partner != replica_id) ++ { ++ /* Exchange the global states between the master nodes */ ++ if (debug) ++ { ++ fprintf(debug, "Exchanging %d with %d\n", replica_id, exchange_partner); ++ } ++ exchange_state(cr->ms, exchange_partner, state); ++ } ++ } ++ /* For temperature-type replica exchange, we need to scale ++ * the velocities. */ ++ if (re->type == ereTEMP || re->type == ereTL) ++ { ++ scale_velocities(state, sqrt(re->q[ereTEMP][replica_id]/re->q[ereTEMP][re->destinations[replica_id]])); ++ } ++ ++ } ++ ++ /* With domain decomposition the global state is distributed later */ ++ if (!DOMAINDECOMP(cr)) ++ { ++ /* Copy the global state to the local state data structure */ ++ copy_state_nonatomdata(state, state_local); ++ ++ if (PAR(cr)) ++ { ++ bcast_state(cr, state, FALSE); ++ } ++ } ++ } ++ ++ return bThisReplicaExchanged; ++} ++ ++void print_replica_exchange_statistics(FILE *fplog, struct gmx_repl_ex *re) ++{ ++ int i; ++ ++ fprintf(fplog, "\nReplica exchange statistics\n"); ++ ++ if (re->nex == 0) ++ { ++ fprintf(fplog, "Repl %d attempts, %d odd, %d even\n", ++ re->nattempt[0]+re->nattempt[1], re->nattempt[1], re->nattempt[0]); ++ ++ fprintf(fplog, "Repl average probabilities:\n"); ++ for (i = 1; i < re->nrepl; i++) ++ { ++ if (re->nattempt[i%2] == 0) ++ { ++ re->prob[i] = 0; ++ } ++ else ++ { ++ re->prob[i] = re->prob_sum[i]/re->nattempt[i%2]; ++ } ++ } ++ print_ind(fplog, "", re->nrepl, re->ind, NULL); ++ print_prob(fplog, "", re->nrepl, re->prob); ++ ++ fprintf(fplog, "Repl number of exchanges:\n"); ++ print_ind(fplog, "", re->nrepl, re->ind, NULL); ++ print_count(fplog, "", re->nrepl, re->nexchange); ++ ++ fprintf(fplog, "Repl average number of exchanges:\n"); ++ for (i = 1; i < re->nrepl; i++) ++ { ++ if (re->nattempt[i%2] == 0) ++ { ++ re->prob[i] = 0; ++ } ++ else ++ { ++ re->prob[i] = ((real)re->nexchange[i])/re->nattempt[i%2]; ++ } ++ } ++ print_ind(fplog, "", re->nrepl, re->ind, NULL); ++ print_prob(fplog, "", re->nrepl, re->prob); ++ ++ fprintf(fplog, "\n"); ++ } ++ /* print the transition matrix */ ++ print_transition_matrix(fplog, "", re->nrepl, re->nmoves, re->nattempt); ++} +diff --git a/src/mdlib/force.c b/src/mdlib/force.c +index 75da6bd..a36cbd0 100644 +--- a/src/mdlib/force.c ++++ b/src/mdlib/force.c +@@ -67,6 +67,14 @@ + #include "mpelogging.h" + #include "gmx_omp_nthreads.h" + ++/* PLUMED */ ++#include "../../Plumed.h" ++int plumedswitch=0; ++plumed plumedmain; ++void(*plumedcmd)(plumed,const char*,const void*)=NULL; ++/* END PLUMED */ ++ ++ + void ns(FILE *fp, + t_forcerec *fr, + rvec x[], +@@ -692,6 +700,16 @@ void do_force_lowlevel(FILE *fplog, gmx_large_int_t step, + + GMX_MPE_LOG(ev_force_finish); + ++ ++/* PLUMED */ ++ if(plumedswitch){ ++ int plumedNeedsEnergy; ++ (*plumedcmd)(plumedmain,"isEnergyNeeded",&plumedNeedsEnergy); ++ if(!plumedNeedsEnergy) (*plumedcmd)(plumedmain,"performCalc",NULL); ++ } ++/* END PLUMED */ ++ ++ + } + + void init_enerdata(int ngener, int n_lambda, gmx_enerdata_t *enerd) +diff --git a/src/mdlib/force.c.preplumed b/src/mdlib/force.c.preplumed +new file mode 100644 +index 0000000..75da6bd +--- /dev/null ++++ b/src/mdlib/force.c.preplumed +@@ -0,0 +1,973 @@ ++/* ++ * This file is part of the GROMACS molecular simulation package. ++ * ++ * Copyright (c) 1991-2000, University of Groningen, The Netherlands. ++ * Copyright (c) 2001-2004, The GROMACS development team, ++ * check out http://www.gromacs.org for more information. ++ * Copyright (c) 2012,2013, by the GROMACS development team, led by ++ * David van der Spoel, Berk Hess, Erik Lindahl, and including many ++ * others, as listed in the AUTHORS file in the top-level source ++ * directory and at http://www.gromacs.org. ++ * ++ * GROMACS 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; either version 2.1 ++ * of the License, or (at your option) any later version. ++ * ++ * GROMACS 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 ++ * Lesser General Public License for more details. ++ * ++ * You should have received a copy of the GNU Lesser General Public ++ * License along with GROMACS; if not, see ++ * http://www.gnu.org/licenses, or write to the Free Software Foundation, ++ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. ++ * ++ * If you want to redistribute modifications to GROMACS, please ++ * consider that scientific software is very special. Version ++ * control is crucial - bugs must be traceable. We will be happy to ++ * consider code for inclusion in the official distribution, but ++ * derived work must not be called official GROMACS. Details are found ++ * in the README & COPYING files - if they are missing, get the ++ * official version at http://www.gromacs.org. ++ * ++ * To help us fund GROMACS development, we humbly ask that you cite ++ * the research papers on the package. Check out http://www.gromacs.org. ++ */ ++#ifdef HAVE_CONFIG_H ++#include ++#endif ++ ++#include ++#include ++#include ++#include "sysstuff.h" ++#include "typedefs.h" ++#include "macros.h" ++#include "smalloc.h" ++#include "macros.h" ++#include "physics.h" ++#include "force.h" ++#include "nonbonded.h" ++#include "names.h" ++#include "network.h" ++#include "pbc.h" ++#include "ns.h" ++#include "nrnb.h" ++#include "bondf.h" ++#include "mshift.h" ++#include "txtdump.h" ++#include "coulomb.h" ++#include "pme.h" ++#include "mdrun.h" ++#include "domdec.h" ++#include "partdec.h" ++#include "qmmm.h" ++#include "mpelogging.h" ++#include "gmx_omp_nthreads.h" ++ ++void ns(FILE *fp, ++ t_forcerec *fr, ++ rvec x[], ++ matrix box, ++ gmx_groups_t *groups, ++ t_grpopts *opts, ++ gmx_localtop_t *top, ++ t_mdatoms *md, ++ t_commrec *cr, ++ t_nrnb *nrnb, ++ real *lambda, ++ real *dvdlambda, ++ gmx_grppairener_t *grppener, ++ gmx_bool bFillGrid, ++ gmx_bool bDoLongRangeNS) ++{ ++ char *ptr; ++ int nsearch; ++ ++ GMX_MPE_LOG(ev_ns_start); ++ if (!fr->ns.nblist_initialized) ++ { ++ init_neighbor_list(fp, fr, md->homenr); ++ } ++ ++ if (fr->bTwinRange) ++ { ++ fr->nlr = 0; ++ } ++ ++ nsearch = search_neighbours(fp, fr, x, box, top, groups, cr, nrnb, md, ++ lambda, dvdlambda, grppener, ++ bFillGrid, bDoLongRangeNS, TRUE); ++ if (debug) ++ { ++ fprintf(debug, "nsearch = %d\n", nsearch); ++ } ++ ++ /* Check whether we have to do dynamic load balancing */ ++ /*if ((nsb->nstDlb > 0) && (mod(step,nsb->nstDlb) == 0)) ++ count_nb(cr,nsb,&(top->blocks[ebCGS]),nns,fr->nlr, ++ &(top->idef),opts->ngener); ++ */ ++ if (fr->ns.dump_nl > 0) ++ { ++ dump_nblist(fp, cr, fr, fr->ns.dump_nl); ++ } ++ ++ GMX_MPE_LOG(ev_ns_finish); ++} ++ ++static void reduce_thread_forces(int n, rvec *f, ++ tensor vir, ++ real *Vcorr, ++ int efpt_ind, real *dvdl, ++ int nthreads, f_thread_t *f_t) ++{ ++ int t, i; ++ ++ /* This reduction can run over any number of threads */ ++#pragma omp parallel for num_threads(gmx_omp_nthreads_get(emntBonded)) private(t) schedule(static) ++ for (i = 0; i < n; i++) ++ { ++ for (t = 1; t < nthreads; t++) ++ { ++ rvec_inc(f[i], f_t[t].f[i]); ++ } ++ } ++ for (t = 1; t < nthreads; t++) ++ { ++ *Vcorr += f_t[t].Vcorr; ++ *dvdl += f_t[t].dvdl[efpt_ind]; ++ m_add(vir, f_t[t].vir, vir); ++ } ++} ++ ++void do_force_lowlevel(FILE *fplog, gmx_large_int_t step, ++ t_forcerec *fr, t_inputrec *ir, ++ t_idef *idef, t_commrec *cr, ++ t_nrnb *nrnb, gmx_wallcycle_t wcycle, ++ t_mdatoms *md, ++ t_grpopts *opts, ++ rvec x[], history_t *hist, ++ rvec f[], ++ rvec f_longrange[], ++ gmx_enerdata_t *enerd, ++ t_fcdata *fcd, ++ gmx_mtop_t *mtop, ++ gmx_localtop_t *top, ++ gmx_genborn_t *born, ++ t_atomtypes *atype, ++ gmx_bool bBornRadii, ++ matrix box, ++ t_lambda *fepvals, ++ real *lambda, ++ t_graph *graph, ++ t_blocka *excl, ++ rvec mu_tot[], ++ int flags, ++ float *cycles_pme) ++{ ++ int i, j, status; ++ int donb_flags; ++ gmx_bool bDoEpot, bSepDVDL, bSB; ++ int pme_flags; ++ matrix boxs; ++ rvec box_size; ++ real Vsr, Vlr, Vcorr = 0; ++ t_pbc pbc; ++ real dvdgb; ++ char buf[22]; ++ double clam_i, vlam_i; ++ real dvdl_dum[efptNR], dvdl, dvdl_nb[efptNR], lam_i[efptNR]; ++ real dvdlsum; ++ ++#ifdef GMX_MPI ++ double t0 = 0.0, t1, t2, t3; /* time measurement for coarse load balancing */ ++#endif ++ ++#define PRINT_SEPDVDL(s, v, dvdlambda) if (bSepDVDL) {fprintf(fplog, sepdvdlformat, s, v, dvdlambda); } ++ ++ GMX_MPE_LOG(ev_force_start); ++ set_pbc(&pbc, fr->ePBC, box); ++ ++ /* reset free energy components */ ++ for (i = 0; i < efptNR; i++) ++ { ++ dvdl_nb[i] = 0; ++ dvdl_dum[i] = 0; ++ } ++ ++ /* Reset box */ ++ for (i = 0; (i < DIM); i++) ++ { ++ box_size[i] = box[i][i]; ++ } ++ ++ bSepDVDL = (fr->bSepDVDL && do_per_step(step, ir->nstlog)); ++ debug_gmx(); ++ ++ /* do QMMM first if requested */ ++ if (fr->bQMMM) ++ { ++ enerd->term[F_EQM] = calculate_QMMM(cr, x, f, fr, md); ++ } ++ ++ if (bSepDVDL) ++ { ++ fprintf(fplog, "Step %s: non-bonded V and dVdl for node %d:\n", ++ gmx_step_str(step, buf), cr->nodeid); ++ } ++ ++ /* Call the short range functions all in one go. */ ++ GMX_MPE_LOG(ev_do_fnbf_start); ++ ++#ifdef GMX_MPI ++ /*#define TAKETIME ((cr->npmenodes) && (fr->timesteps < 12))*/ ++#define TAKETIME FALSE ++ if (TAKETIME) ++ { ++ MPI_Barrier(cr->mpi_comm_mygroup); ++ t0 = MPI_Wtime(); ++ } ++#endif ++ ++ if (ir->nwall) ++ { ++ /* foreign lambda component for walls */ ++ dvdl = do_walls(ir, fr, box, md, x, f, lambda[efptVDW], ++ enerd->grpp.ener[egLJSR], nrnb); ++ PRINT_SEPDVDL("Walls", 0.0, dvdl); ++ enerd->dvdl_lin[efptVDW] += dvdl; ++ } ++ ++ /* If doing GB, reset dvda and calculate the Born radii */ ++ if (ir->implicit_solvent) ++ { ++ wallcycle_sub_start(wcycle, ewcsNONBONDED); ++ ++ for (i = 0; i < born->nr; i++) ++ { ++ fr->dvda[i] = 0; ++ } ++ ++ if (bBornRadii) ++ { ++ calc_gb_rad(cr, fr, ir, top, atype, x, &(fr->gblist), born, md, nrnb); ++ } ++ ++ wallcycle_sub_stop(wcycle, ewcsNONBONDED); ++ } ++ ++ where(); ++ /* We only do non-bonded calculation with group scheme here, the verlet ++ * calls are done from do_force_cutsVERLET(). */ ++ if (fr->cutoff_scheme == ecutsGROUP && (flags & GMX_FORCE_NONBONDED)) ++ { ++ donb_flags = 0; ++ /* Add short-range interactions */ ++ donb_flags |= GMX_NONBONDED_DO_SR; ++ ++ if (flags & GMX_FORCE_FORCES) ++ { ++ donb_flags |= GMX_NONBONDED_DO_FORCE; ++ } ++ if (flags & GMX_FORCE_ENERGY) ++ { ++ donb_flags |= GMX_NONBONDED_DO_POTENTIAL; ++ } ++ if (flags & GMX_FORCE_DO_LR) ++ { ++ donb_flags |= GMX_NONBONDED_DO_LR; ++ } ++ ++ wallcycle_sub_start(wcycle, ewcsNONBONDED); ++ do_nonbonded(cr, fr, x, f, f_longrange, md, excl, ++ &enerd->grpp, box_size, nrnb, ++ lambda, dvdl_nb, -1, -1, donb_flags); ++ ++ /* If we do foreign lambda and we have soft-core interactions ++ * we have to recalculate the (non-linear) energies contributions. ++ */ ++ if (fepvals->n_lambda > 0 && (flags & GMX_FORCE_DHDL) && fepvals->sc_alpha != 0) ++ { ++ for (i = 0; i < enerd->n_lambda; i++) ++ { ++ for (j = 0; j < efptNR; j++) ++ { ++ lam_i[j] = (i == 0 ? lambda[j] : fepvals->all_lambda[j][i-1]); ++ } ++ reset_foreign_enerdata(enerd); ++ do_nonbonded(cr, fr, x, f, f_longrange, md, excl, ++ &(enerd->foreign_grpp), box_size, nrnb, ++ lam_i, dvdl_dum, -1, -1, ++ (donb_flags & ~GMX_NONBONDED_DO_FORCE) | GMX_NONBONDED_DO_FOREIGNLAMBDA); ++ sum_epot(&ir->opts, &(enerd->foreign_grpp), enerd->foreign_term); ++ enerd->enerpart_lambda[i] += enerd->foreign_term[F_EPOT]; ++ } ++ } ++ wallcycle_sub_stop(wcycle, ewcsNONBONDED); ++ where(); ++ } ++ ++ /* If we are doing GB, calculate bonded forces and apply corrections ++ * to the solvation forces */ ++ /* MRS: Eventually, many need to include free energy contribution here! */ ++ if (ir->implicit_solvent) ++ { ++ wallcycle_sub_start(wcycle, ewcsBONDED); ++ calc_gb_forces(cr, md, born, top, atype, x, f, fr, idef, ++ ir->gb_algorithm, ir->sa_algorithm, nrnb, bBornRadii, &pbc, graph, enerd); ++ wallcycle_sub_stop(wcycle, ewcsBONDED); ++ } ++ ++#ifdef GMX_MPI ++ if (TAKETIME) ++ { ++ t1 = MPI_Wtime(); ++ fr->t_fnbf += t1-t0; ++ } ++#endif ++ ++ if (fepvals->sc_alpha != 0) ++ { ++ enerd->dvdl_nonlin[efptVDW] += dvdl_nb[efptVDW]; ++ } ++ else ++ { ++ enerd->dvdl_lin[efptVDW] += dvdl_nb[efptVDW]; ++ } ++ ++ if (fepvals->sc_alpha != 0) ++ ++ /* even though coulomb part is linear, we already added it, beacuse we ++ need to go through the vdw calculation anyway */ ++ { ++ enerd->dvdl_nonlin[efptCOUL] += dvdl_nb[efptCOUL]; ++ } ++ else ++ { ++ enerd->dvdl_lin[efptCOUL] += dvdl_nb[efptCOUL]; ++ } ++ ++ Vsr = 0; ++ if (bSepDVDL) ++ { ++ for (i = 0; i < enerd->grpp.nener; i++) ++ { ++ Vsr += ++ (fr->bBHAM ? ++ enerd->grpp.ener[egBHAMSR][i] : ++ enerd->grpp.ener[egLJSR][i]) ++ + enerd->grpp.ener[egCOULSR][i] + enerd->grpp.ener[egGB][i]; ++ } ++ dvdlsum = dvdl_nb[efptVDW] + dvdl_nb[efptCOUL]; ++ PRINT_SEPDVDL("VdW and Coulomb SR particle-p.", Vsr, dvdlsum); ++ } ++ debug_gmx(); ++ ++ GMX_MPE_LOG(ev_do_fnbf_finish); ++ ++ if (debug) ++ { ++ pr_rvecs(debug, 0, "fshift after SR", fr->fshift, SHIFTS); ++ } ++ ++ /* Shift the coordinates. Must be done before bonded forces and PPPM, ++ * but is also necessary for SHAKE and update, therefore it can NOT ++ * go when no bonded forces have to be evaluated. ++ */ ++ ++ /* Here sometimes we would not need to shift with NBFonly, ++ * but we do so anyhow for consistency of the returned coordinates. ++ */ ++ if (graph) ++ { ++ shift_self(graph, box, x); ++ if (TRICLINIC(box)) ++ { ++ inc_nrnb(nrnb, eNR_SHIFTX, 2*graph->nnodes); ++ } ++ else ++ { ++ inc_nrnb(nrnb, eNR_SHIFTX, graph->nnodes); ++ } ++ } ++ /* Check whether we need to do bondeds or correct for exclusions */ ++ if (fr->bMolPBC && ++ ((flags & GMX_FORCE_BONDED) ++ || EEL_RF(fr->eeltype) || EEL_FULL(fr->eeltype))) ++ { ++ /* Since all atoms are in the rectangular or triclinic unit-cell, ++ * only single box vector shifts (2 in x) are required. ++ */ ++ set_pbc_dd(&pbc, fr->ePBC, cr->dd, TRUE, box); ++ } ++ debug_gmx(); ++ ++ if (flags & GMX_FORCE_BONDED) ++ { ++ GMX_MPE_LOG(ev_calc_bonds_start); ++ ++ wallcycle_sub_start(wcycle, ewcsBONDED); ++ calc_bonds(fplog, cr->ms, ++ idef, x, hist, f, fr, &pbc, graph, enerd, nrnb, lambda, md, fcd, ++ DOMAINDECOMP(cr) ? cr->dd->gatindex : NULL, atype, born, ++ flags, ++ fr->bSepDVDL && do_per_step(step, ir->nstlog), step); ++ ++ /* Check if we have to determine energy differences ++ * at foreign lambda's. ++ */ ++ if (fepvals->n_lambda > 0 && (flags & GMX_FORCE_DHDL) && ++ idef->ilsort != ilsortNO_FE) ++ { ++ if (idef->ilsort != ilsortFE_SORTED) ++ { ++ gmx_incons("The bonded interactions are not sorted for free energy"); ++ } ++ for (i = 0; i < enerd->n_lambda; i++) ++ { ++ reset_foreign_enerdata(enerd); ++ for (j = 0; j < efptNR; j++) ++ { ++ lam_i[j] = (i == 0 ? lambda[j] : fepvals->all_lambda[j][i-1]); ++ } ++ calc_bonds_lambda(fplog, idef, x, fr, &pbc, graph, &(enerd->foreign_grpp), enerd->foreign_term, nrnb, lam_i, md, ++ fcd, DOMAINDECOMP(cr) ? cr->dd->gatindex : NULL); ++ sum_epot(&ir->opts, &(enerd->foreign_grpp), enerd->foreign_term); ++ enerd->enerpart_lambda[i] += enerd->foreign_term[F_EPOT]; ++ } ++ } ++ debug_gmx(); ++ GMX_MPE_LOG(ev_calc_bonds_finish); ++ wallcycle_sub_stop(wcycle, ewcsBONDED); ++ } ++ ++ where(); ++ ++ *cycles_pme = 0; ++ if (EEL_FULL(fr->eeltype)) ++ { ++ bSB = (ir->nwall == 2); ++ if (bSB) ++ { ++ copy_mat(box, boxs); ++ svmul(ir->wall_ewald_zfac, boxs[ZZ], boxs[ZZ]); ++ box_size[ZZ] *= ir->wall_ewald_zfac; ++ } ++ ++ clear_mat(fr->vir_el_recip); ++ ++ if (fr->bEwald) ++ { ++ Vcorr = 0; ++ dvdl = 0; ++ ++ /* With the Verlet scheme exclusion forces are calculated ++ * in the non-bonded kernel. ++ */ ++ /* The TPI molecule does not have exclusions with the rest ++ * of the system and no intra-molecular PME grid contributions ++ * will be calculated in gmx_pme_calc_energy. ++ */ ++ if ((ir->cutoff_scheme == ecutsGROUP && fr->n_tpi == 0) || ++ ir->ewald_geometry != eewg3D || ++ ir->epsilon_surface != 0) ++ { ++ int nthreads, t; ++ ++ wallcycle_sub_start(wcycle, ewcsEWALD_CORRECTION); ++ ++ if (fr->n_tpi > 0) ++ { ++ gmx_fatal(FARGS, "TPI with PME currently only works in a 3D geometry with tin-foil boundary conditions"); ++ } ++ ++ nthreads = gmx_omp_nthreads_get(emntBonded); ++#pragma omp parallel for num_threads(nthreads) schedule(static) ++ for (t = 0; t < nthreads; t++) ++ { ++ int s, e, i; ++ rvec *fnv; ++ tensor *vir; ++ real *Vcorrt, *dvdlt; ++ if (t == 0) ++ { ++ fnv = fr->f_novirsum; ++ vir = &fr->vir_el_recip; ++ Vcorrt = &Vcorr; ++ dvdlt = &dvdl; ++ } ++ else ++ { ++ fnv = fr->f_t[t].f; ++ vir = &fr->f_t[t].vir; ++ Vcorrt = &fr->f_t[t].Vcorr; ++ dvdlt = &fr->f_t[t].dvdl[efptCOUL]; ++ for (i = 0; i < fr->natoms_force; i++) ++ { ++ clear_rvec(fnv[i]); ++ } ++ clear_mat(*vir); ++ } ++ *dvdlt = 0; ++ *Vcorrt = ++ ewald_LRcorrection(fplog, ++ fr->excl_load[t], fr->excl_load[t+1], ++ cr, t, fr, ++ md->chargeA, ++ md->nChargePerturbed ? md->chargeB : NULL, ++ ir->cutoff_scheme != ecutsVERLET, ++ excl, x, bSB ? boxs : box, mu_tot, ++ ir->ewald_geometry, ++ ir->epsilon_surface, ++ fnv, *vir, ++ lambda[efptCOUL], dvdlt); ++ } ++ if (nthreads > 1) ++ { ++ reduce_thread_forces(fr->natoms_force, fr->f_novirsum, ++ fr->vir_el_recip, ++ &Vcorr, efptCOUL, &dvdl, ++ nthreads, fr->f_t); ++ } ++ ++ wallcycle_sub_stop(wcycle, ewcsEWALD_CORRECTION); ++ } ++ ++ if (fr->n_tpi == 0) ++ { ++ Vcorr += ewald_charge_correction(cr, fr, lambda[efptCOUL], box, ++ &dvdl, fr->vir_el_recip); ++ } ++ ++ PRINT_SEPDVDL("Ewald excl./charge/dip. corr.", Vcorr, dvdl); ++ enerd->dvdl_lin[efptCOUL] += dvdl; ++ } ++ ++ status = 0; ++ Vlr = 0; ++ dvdl = 0; ++ switch (fr->eeltype) ++ { ++ case eelPME: ++ case eelPMESWITCH: ++ case eelPMEUSER: ++ case eelPMEUSERSWITCH: ++ case eelP3M_AD: ++ if (cr->duty & DUTY_PME) ++ { ++ assert(fr->n_tpi >= 0); ++ if (fr->n_tpi == 0 || (flags & GMX_FORCE_STATECHANGED)) ++ { ++ pme_flags = GMX_PME_SPREAD_Q | GMX_PME_SOLVE; ++ if (flags & GMX_FORCE_FORCES) ++ { ++ pme_flags |= GMX_PME_CALC_F; ++ } ++ if (flags & (GMX_FORCE_VIRIAL | GMX_FORCE_ENERGY)) ++ { ++ pme_flags |= GMX_PME_CALC_ENER_VIR; ++ } ++ if (fr->n_tpi > 0) ++ { ++ /* We don't calculate f, but we do want the potential */ ++ pme_flags |= GMX_PME_CALC_POT; ++ } ++ wallcycle_start(wcycle, ewcPMEMESH); ++ status = gmx_pme_do(fr->pmedata, ++ md->start, md->homenr - fr->n_tpi, ++ x, fr->f_novirsum, ++ md->chargeA, md->chargeB, ++ bSB ? boxs : box, cr, ++ DOMAINDECOMP(cr) ? dd_pme_maxshift_x(cr->dd) : 0, ++ DOMAINDECOMP(cr) ? dd_pme_maxshift_y(cr->dd) : 0, ++ nrnb, wcycle, ++ fr->vir_el_recip, fr->ewaldcoeff, ++ &Vlr, lambda[efptCOUL], &dvdl, ++ pme_flags); ++ *cycles_pme = wallcycle_stop(wcycle, ewcPMEMESH); ++ ++ /* We should try to do as little computation after ++ * this as possible, because parallel PME synchronizes ++ * the nodes, so we want all load imbalance of the rest ++ * of the force calculation to be before the PME call. ++ * DD load balancing is done on the whole time of ++ * the force call (without PME). ++ */ ++ } ++ if (fr->n_tpi > 0) ++ { ++ /* Determine the PME grid energy of the test molecule ++ * with the PME grid potential of the other charges. ++ */ ++ gmx_pme_calc_energy(fr->pmedata, fr->n_tpi, ++ x + md->homenr - fr->n_tpi, ++ md->chargeA + md->homenr - fr->n_tpi, ++ &Vlr); ++ } ++ PRINT_SEPDVDL("PME mesh", Vlr, dvdl); ++ } ++ break; ++ case eelEWALD: ++ Vlr = do_ewald(fplog, FALSE, ir, x, fr->f_novirsum, ++ md->chargeA, md->chargeB, ++ box_size, cr, md->homenr, ++ fr->vir_el_recip, fr->ewaldcoeff, ++ lambda[efptCOUL], &dvdl, fr->ewald_table); ++ PRINT_SEPDVDL("Ewald long-range", Vlr, dvdl); ++ break; ++ default: ++ gmx_fatal(FARGS, "No such electrostatics method implemented %s", ++ eel_names[fr->eeltype]); ++ } ++ if (status != 0) ++ { ++ gmx_fatal(FARGS, "Error %d in long range electrostatics routine %s", ++ status, EELTYPE(fr->eeltype)); ++ } ++ /* Note that with separate PME nodes we get the real energies later */ ++ enerd->dvdl_lin[efptCOUL] += dvdl; ++ enerd->term[F_COUL_RECIP] = Vlr + Vcorr; ++ if (debug) ++ { ++ fprintf(debug, "Vlr = %g, Vcorr = %g, Vlr_corr = %g\n", ++ Vlr, Vcorr, enerd->term[F_COUL_RECIP]); ++ pr_rvecs(debug, 0, "vir_el_recip after corr", fr->vir_el_recip, DIM); ++ pr_rvecs(debug, 0, "fshift after LR Corrections", fr->fshift, SHIFTS); ++ } ++ } ++ else ++ { ++ if (EEL_RF(fr->eeltype)) ++ { ++ /* With the Verlet scheme exclusion forces are calculated ++ * in the non-bonded kernel. ++ */ ++ if (ir->cutoff_scheme != ecutsVERLET && fr->eeltype != eelRF_NEC) ++ { ++ dvdl = 0; ++ enerd->term[F_RF_EXCL] = ++ RF_excl_correction(fplog, fr, graph, md, excl, x, f, ++ fr->fshift, &pbc, lambda[efptCOUL], &dvdl); ++ } ++ ++ enerd->dvdl_lin[efptCOUL] += dvdl; ++ PRINT_SEPDVDL("RF exclusion correction", ++ enerd->term[F_RF_EXCL], dvdl); ++ } ++ } ++ where(); ++ debug_gmx(); ++ ++ if (debug) ++ { ++ print_nrnb(debug, nrnb); ++ } ++ debug_gmx(); ++ ++#ifdef GMX_MPI ++ if (TAKETIME) ++ { ++ t2 = MPI_Wtime(); ++ MPI_Barrier(cr->mpi_comm_mygroup); ++ t3 = MPI_Wtime(); ++ fr->t_wait += t3-t2; ++ if (fr->timesteps == 11) ++ { ++ fprintf(stderr, "* PP load balancing info: node %d, step %s, rel wait time=%3.0f%% , load string value: %7.2f\n", ++ cr->nodeid, gmx_step_str(fr->timesteps, buf), ++ 100*fr->t_wait/(fr->t_wait+fr->t_fnbf), ++ (fr->t_fnbf+fr->t_wait)/fr->t_fnbf); ++ } ++ fr->timesteps++; ++ } ++#endif ++ ++ if (debug) ++ { ++ pr_rvecs(debug, 0, "fshift after bondeds", fr->fshift, SHIFTS); ++ } ++ ++ GMX_MPE_LOG(ev_force_finish); ++ ++} ++ ++void init_enerdata(int ngener, int n_lambda, gmx_enerdata_t *enerd) ++{ ++ int i, n2; ++ ++ for (i = 0; i < F_NRE; i++) ++ { ++ enerd->term[i] = 0; ++ enerd->foreign_term[i] = 0; ++ } ++ ++ ++ for (i = 0; i < efptNR; i++) ++ { ++ enerd->dvdl_lin[i] = 0; ++ enerd->dvdl_nonlin[i] = 0; ++ } ++ ++ n2 = ngener*ngener; ++ if (debug) ++ { ++ fprintf(debug, "Creating %d sized group matrix for energies\n", n2); ++ } ++ enerd->grpp.nener = n2; ++ enerd->foreign_grpp.nener = n2; ++ for (i = 0; (i < egNR); i++) ++ { ++ snew(enerd->grpp.ener[i], n2); ++ snew(enerd->foreign_grpp.ener[i], n2); ++ } ++ ++ if (n_lambda) ++ { ++ enerd->n_lambda = 1 + n_lambda; ++ snew(enerd->enerpart_lambda, enerd->n_lambda); ++ } ++ else ++ { ++ enerd->n_lambda = 0; ++ } ++} ++ ++void destroy_enerdata(gmx_enerdata_t *enerd) ++{ ++ int i; ++ ++ for (i = 0; (i < egNR); i++) ++ { ++ sfree(enerd->grpp.ener[i]); ++ } ++ ++ for (i = 0; (i < egNR); i++) ++ { ++ sfree(enerd->foreign_grpp.ener[i]); ++ } ++ ++ if (enerd->n_lambda) ++ { ++ sfree(enerd->enerpart_lambda); ++ } ++} ++ ++static real sum_v(int n, real v[]) ++{ ++ real t; ++ int i; ++ ++ t = 0.0; ++ for (i = 0; (i < n); i++) ++ { ++ t = t + v[i]; ++ } ++ ++ return t; ++} ++ ++void sum_epot(t_grpopts *opts, gmx_grppairener_t *grpp, real *epot) ++{ ++ int i; ++ ++ /* Accumulate energies */ ++ epot[F_COUL_SR] = sum_v(grpp->nener, grpp->ener[egCOULSR]); ++ epot[F_LJ] = sum_v(grpp->nener, grpp->ener[egLJSR]); ++ epot[F_LJ14] = sum_v(grpp->nener, grpp->ener[egLJ14]); ++ epot[F_COUL14] = sum_v(grpp->nener, grpp->ener[egCOUL14]); ++ epot[F_COUL_LR] = sum_v(grpp->nener, grpp->ener[egCOULLR]); ++ epot[F_LJ_LR] = sum_v(grpp->nener, grpp->ener[egLJLR]); ++ /* We have already added 1-2,1-3, and 1-4 terms to F_GBPOL */ ++ epot[F_GBPOL] += sum_v(grpp->nener, grpp->ener[egGB]); ++ ++/* lattice part of LR doesnt belong to any group ++ * and has been added earlier ++ */ ++ epot[F_BHAM] = sum_v(grpp->nener, grpp->ener[egBHAMSR]); ++ epot[F_BHAM_LR] = sum_v(grpp->nener, grpp->ener[egBHAMLR]); ++ ++ epot[F_EPOT] = 0; ++ for (i = 0; (i < F_EPOT); i++) ++ { ++ if (i != F_DISRESVIOL && i != F_ORIRESDEV) ++ { ++ epot[F_EPOT] += epot[i]; ++ } ++ } ++} ++ ++void sum_dhdl(gmx_enerdata_t *enerd, real *lambda, t_lambda *fepvals) ++{ ++ int i, j, index; ++ double dlam; ++ ++ enerd->dvdl_lin[efptVDW] += enerd->term[F_DVDL_VDW]; /* include dispersion correction */ ++ enerd->term[F_DVDL] = 0.0; ++ for (i = 0; i < efptNR; i++) ++ { ++ if (fepvals->separate_dvdl[i]) ++ { ++ /* could this be done more readably/compactly? */ ++ switch (i) ++ { ++ case (efptMASS): ++ index = F_DKDL; ++ break; ++ case (efptCOUL): ++ index = F_DVDL_COUL; ++ break; ++ case (efptVDW): ++ index = F_DVDL_VDW; ++ break; ++ case (efptBONDED): ++ index = F_DVDL_BONDED; ++ break; ++ case (efptRESTRAINT): ++ index = F_DVDL_RESTRAINT; ++ break; ++ default: ++ index = F_DVDL; ++ break; ++ } ++ enerd->term[index] = enerd->dvdl_lin[i] + enerd->dvdl_nonlin[i]; ++ if (debug) ++ { ++ fprintf(debug, "dvdl-%s[%2d]: %f: non-linear %f + linear %f\n", ++ efpt_names[i], i, enerd->term[index], enerd->dvdl_nonlin[i], enerd->dvdl_lin[i]); ++ } ++ } ++ else ++ { ++ enerd->term[F_DVDL] += enerd->dvdl_lin[i] + enerd->dvdl_nonlin[i]; ++ if (debug) ++ { ++ fprintf(debug, "dvd-%sl[%2d]: %f: non-linear %f + linear %f\n", ++ efpt_names[0], i, enerd->term[F_DVDL], enerd->dvdl_nonlin[i], enerd->dvdl_lin[i]); ++ } ++ } ++ } ++ ++ /* Notes on the foreign lambda free energy difference evaluation: ++ * Adding the potential and ekin terms that depend linearly on lambda ++ * as delta lam * dvdl to the energy differences is exact. ++ * For the constraints this is not exact, but we have no other option ++ * without literally changing the lengths and reevaluating the energies at each step. ++ * (try to remedy this post 4.6 - MRS) ++ * For the non-bonded LR term we assume that the soft-core (if present) ++ * no longer affects the energy beyond the short-range cut-off, ++ * which is a very good approximation (except for exotic settings). ++ * (investigate how to overcome this post 4.6 - MRS) ++ */ ++ if (fepvals->separate_dvdl[efptBONDED]) ++ { ++ enerd->term[F_DVDL_BONDED] += enerd->term[F_DVDL_CONSTR]; ++ } ++ else ++ { ++ enerd->term[F_DVDL] += enerd->term[F_DVDL_CONSTR]; ++ } ++ enerd->term[F_DVDL_CONSTR] = 0; ++ ++ for (i = 0; i < fepvals->n_lambda; i++) ++ { /* note we are iterating over fepvals here! ++ For the current lam, dlam = 0 automatically, ++ so we don't need to add anything to the ++ enerd->enerpart_lambda[0] */ ++ ++ /* we don't need to worry about dvdl_lin contributions to dE at ++ current lambda, because the contributions to the current ++ lambda are automatically zeroed */ ++ ++ for (j = 0; j < efptNR; j++) ++ { ++ /* Note that this loop is over all dhdl components, not just the separated ones */ ++ dlam = (fepvals->all_lambda[j][i]-lambda[j]); ++ enerd->enerpart_lambda[i+1] += dlam*enerd->dvdl_lin[j]; ++ if (debug) ++ { ++ fprintf(debug, "enerdiff lam %g: (%15s), non-linear %f linear %f*%f\n", ++ fepvals->all_lambda[j][i], efpt_names[j], ++ (enerd->enerpart_lambda[i+1] - enerd->enerpart_lambda[0]), ++ dlam, enerd->dvdl_lin[j]); ++ } ++ } ++ } ++} ++ ++ ++void reset_foreign_enerdata(gmx_enerdata_t *enerd) ++{ ++ int i, j; ++ ++ /* First reset all foreign energy components. Foreign energies always called on ++ neighbor search steps */ ++ for (i = 0; (i < egNR); i++) ++ { ++ for (j = 0; (j < enerd->grpp.nener); j++) ++ { ++ enerd->foreign_grpp.ener[i][j] = 0.0; ++ } ++ } ++ ++ /* potential energy components */ ++ for (i = 0; (i <= F_EPOT); i++) ++ { ++ enerd->foreign_term[i] = 0.0; ++ } ++} ++ ++void reset_enerdata(t_grpopts *opts, ++ t_forcerec *fr, gmx_bool bNS, ++ gmx_enerdata_t *enerd, ++ gmx_bool bMaster) ++{ ++ gmx_bool bKeepLR; ++ int i, j; ++ ++ /* First reset all energy components, except for the long range terms ++ * on the master at non neighbor search steps, since the long range ++ * terms have already been summed at the last neighbor search step. ++ */ ++ bKeepLR = (fr->bTwinRange && !bNS); ++ for (i = 0; (i < egNR); i++) ++ { ++ if (!(bKeepLR && bMaster && (i == egCOULLR || i == egLJLR))) ++ { ++ for (j = 0; (j < enerd->grpp.nener); j++) ++ { ++ enerd->grpp.ener[i][j] = 0.0; ++ } ++ } ++ } ++ for (i = 0; i < efptNR; i++) ++ { ++ enerd->dvdl_lin[i] = 0.0; ++ enerd->dvdl_nonlin[i] = 0.0; ++ } ++ ++ /* Normal potential energy components */ ++ for (i = 0; (i <= F_EPOT); i++) ++ { ++ enerd->term[i] = 0.0; ++ } ++ /* Initialize the dVdlambda term with the long range contribution */ ++ /* Initialize the dvdl term with the long range contribution */ ++ enerd->term[F_DVDL] = 0.0; ++ enerd->term[F_DVDL_COUL] = 0.0; ++ enerd->term[F_DVDL_VDW] = 0.0; ++ enerd->term[F_DVDL_BONDED] = 0.0; ++ enerd->term[F_DVDL_RESTRAINT] = 0.0; ++ enerd->term[F_DKDL] = 0.0; ++ if (enerd->n_lambda > 0) ++ { ++ for (i = 0; i < enerd->n_lambda; i++) ++ { ++ enerd->enerpart_lambda[i] = 0.0; ++ } ++ } ++ /* reset foreign energy data - separate function since we also call it elsewhere */ ++ reset_foreign_enerdata(enerd); ++} +diff --git a/src/mdlib/minimize.c b/src/mdlib/minimize.c +index 8afe436..15fd15a 100644 +--- a/src/mdlib/minimize.c ++++ b/src/mdlib/minimize.c +@@ -83,6 +83,12 @@ + #include "gmx_omp_nthreads.h" + #include "md_logging.h" + ++/* PLUMED */ ++#include "../../Plumed.h" ++extern int plumedswitch; ++extern plumed plumedmain; ++extern void(*plumedcmd)(plumed,const char*,const void*); ++/* END PLUMED */ + + typedef struct { + t_state s; +@@ -459,6 +465,47 @@ void init_em(FILE *fplog, const char *title, + + clear_rvec(mu_tot); + calc_shifts(ems->s.box, fr->shift_vec); ++ ++ /* PLUMED */ ++ if(plumedswitch){ ++ if(cr->ms && cr->ms->nsim>1) { ++ if(MASTER(cr)) (*plumedcmd) (plumedmain,"GREX setMPIIntercomm",&cr->ms->mpi_comm_masters); ++ if(PAR(cr)){ ++ if(DOMAINDECOMP(cr)) { ++ (*plumedcmd) (plumedmain,"GREX setMPIIntracomm",&cr->dd->mpi_comm_all); ++ }else{ ++ (*plumedcmd) (plumedmain,"GREX setMPIIntracomm",&cr->mpi_comm_mysim); ++ } ++ } ++ (*plumedcmd) (plumedmain,"GREX init",NULL); ++ } ++ if(PAR(cr)){ ++ if(DOMAINDECOMP(cr)) { ++ (*plumedcmd) (plumedmain,"setMPIComm",&cr->dd->mpi_comm_all); ++ }else{ ++ (*plumedcmd) (plumedmain,"setMPIComm",&cr->mpi_comm_mysim); ++ } ++ } ++ (*plumedcmd) (plumedmain,"setNatoms",&top_global->natoms); ++ (*plumedcmd) (plumedmain,"setMDEngine","gromacs"); ++ (*plumedcmd) (plumedmain,"setLog",fplog); ++ real real_delta_t; ++ real_delta_t=ir->delta_t; ++ (*plumedcmd) (plumedmain,"setTimestep",&real_delta_t); ++ (*plumedcmd) (plumedmain,"init",NULL); ++ ++ if(PAR(cr)){ ++ if(DOMAINDECOMP(cr)) { ++ (*plumedcmd) (plumedmain,"setAtomsNlocal",&cr->dd->nat_home); ++ (*plumedcmd) (plumedmain,"setAtomsGatindex",cr->dd->gatindex); ++ }else{ ++ (*plumedcmd) (plumedmain,"setAtomsNlocal",&mdatoms->homenr); ++ (*plumedcmd) (plumedmain,"setAtomsContiguous",&mdatoms->start); ++ } ++ } ++ } ++ /* END PLUMED */ ++ + } + + static void finish_em(FILE *fplog, t_commrec *cr, gmx_mdoutf_t *outf, +@@ -738,6 +785,12 @@ static void evaluate_energy(FILE *fplog, gmx_bool bVerbose, t_commrec *cr, + em_dd_partition_system(fplog, count, cr, top_global, inputrec, + ems, top, mdatoms, fr, vsite, constr, + nrnb, wcycle); ++ /* PLUMED */ ++ if(plumedswitch){ ++ (*plumedcmd) (plumedmain,"setAtomsNlocal",&cr->dd->nat_home); ++ (*plumedcmd) (plumedmain,"setAtomsGatindex",cr->dd->gatindex); ++ } ++ /* END PLUMED */ + } + } + +@@ -745,6 +798,22 @@ static void evaluate_energy(FILE *fplog, gmx_bool bVerbose, t_commrec *cr, + /* do_force always puts the charge groups in the box and shifts again + * We do not unshift, so molecules are always whole in congrad.c + */ ++ /* PLUMED */ ++ int plumedNeedsEnergy=0; ++ matrix plumed_vir; ++ if(plumedswitch){ ++ long int lstep=count; (*plumedcmd)(plumedmain,"setStepLong",&count); ++ (*plumedcmd) (plumedmain,"setPositions",&ems->s.x[mdatoms->start][0]); ++ (*plumedcmd) (plumedmain,"setMasses",&mdatoms->massT[mdatoms->start]); ++ (*plumedcmd) (plumedmain,"setCharges",&mdatoms->chargeA[mdatoms->start]); ++ (*plumedcmd) (plumedmain,"setBox",&ems->s.box[0][0]); ++ (*plumedcmd) (plumedmain,"prepareCalc",NULL); ++ (*plumedcmd) (plumedmain,"setForces",&ems->f[mdatoms->start][0]); ++ (*plumedcmd) (plumedmain,"isEnergyNeeded",&plumedNeedsEnergy); ++ clear_mat(plumed_vir); ++ (*plumedcmd) (plumedmain,"setVirial",&plumed_vir[0][0]); ++ } ++ /* END PLUMED */ + do_force(fplog, cr, inputrec, + count, nrnb, wcycle, top, top_global, &top_global->groups, + ems->s.box, ems->s.x, &ems->s.hist, +@@ -753,6 +822,19 @@ static void evaluate_energy(FILE *fplog, gmx_bool bVerbose, t_commrec *cr, + GMX_FORCE_STATECHANGED | GMX_FORCE_ALLFORCES | + GMX_FORCE_VIRIAL | GMX_FORCE_ENERGY | + (bNS ? GMX_FORCE_NS | GMX_FORCE_DO_LR : 0)); ++ /* PLUMED */ ++ if(plumedswitch){ ++ if(plumedNeedsEnergy) { ++ msmul(force_vir,2.0,plumed_vir); ++ (*plumedcmd) (plumedmain,"setEnergy",&enerd->term[F_EPOT]); ++ (*plumedcmd) (plumedmain,"performCalc",NULL); ++ msmul(plumed_vir,0.5,force_vir); ++ } else { ++ msmul(plumed_vir,0.5,plumed_vir); ++ m_add(force_vir,plumed_vir,force_vir); ++ } ++ } ++ /* END PLUMED */ + + /* Clear the unused shake virial and pressure */ + clear_mat(shake_vir); +diff --git a/src/mdlib/minimize.c.preplumed b/src/mdlib/minimize.c.preplumed +new file mode 100644 +index 0000000..8afe436 +--- /dev/null ++++ b/src/mdlib/minimize.c.preplumed +@@ -0,0 +1,2864 @@ ++/* ++ * This file is part of the GROMACS molecular simulation package. ++ * ++ * Copyright (c) 1991-2000, University of Groningen, The Netherlands. ++ * Copyright (c) 2001-2004, The GROMACS development team, ++ * check out http://www.gromacs.org for more information. ++ * Copyright (c) 2012,2013, by the GROMACS development team, led by ++ * David van der Spoel, Berk Hess, Erik Lindahl, and including many ++ * others, as listed in the AUTHORS file in the top-level source ++ * directory and at http://www.gromacs.org. ++ * ++ * GROMACS 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; either version 2.1 ++ * of the License, or (at your option) any later version. ++ * ++ * GROMACS 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 ++ * Lesser General Public License for more details. ++ * ++ * You should have received a copy of the GNU Lesser General Public ++ * License along with GROMACS; if not, see ++ * http://www.gnu.org/licenses, or write to the Free Software Foundation, ++ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. ++ * ++ * If you want to redistribute modifications to GROMACS, please ++ * consider that scientific software is very special. Version ++ * control is crucial - bugs must be traceable. We will be happy to ++ * consider code for inclusion in the official distribution, but ++ * derived work must not be called official GROMACS. Details are found ++ * in the README & COPYING files - if they are missing, get the ++ * official version at http://www.gromacs.org. ++ * ++ * To help us fund GROMACS development, we humbly ask that you cite ++ * the research papers on the package. Check out http://www.gromacs.org. ++ */ ++#ifdef HAVE_CONFIG_H ++#include ++#endif ++ ++#include ++#include ++#include ++#include "sysstuff.h" ++#include "string2.h" ++#include "network.h" ++#include "confio.h" ++#include "copyrite.h" ++#include "smalloc.h" ++#include "nrnb.h" ++#include "main.h" ++#include "force.h" ++#include "macros.h" ++#include "random.h" ++#include "names.h" ++#include "gmx_fatal.h" ++#include "txtdump.h" ++#include "typedefs.h" ++#include "update.h" ++#include "constr.h" ++#include "vec.h" ++#include "statutil.h" ++#include "tgroup.h" ++#include "mdebin.h" ++#include "vsite.h" ++#include "force.h" ++#include "mdrun.h" ++#include "md_support.h" ++#include "sim_util.h" ++#include "domdec.h" ++#include "partdec.h" ++#include "trnio.h" ++#include "sparsematrix.h" ++#include "mtxio.h" ++#include "mdatoms.h" ++#include "ns.h" ++#include "gmx_wallcycle.h" ++#include "mtop_util.h" ++#include "gmxfio.h" ++#include "pme.h" ++#include "bondf.h" ++#include "gmx_omp_nthreads.h" ++#include "md_logging.h" ++ ++ ++typedef struct { ++ t_state s; ++ rvec *f; ++ real epot; ++ real fnorm; ++ real fmax; ++ int a_fmax; ++} em_state_t; ++ ++static em_state_t *init_em_state() ++{ ++ em_state_t *ems; ++ ++ snew(ems, 1); ++ ++ /* does this need to be here? Should the array be declared differently (staticaly)in the state definition? */ ++ snew(ems->s.lambda, efptNR); ++ ++ return ems; ++} ++ ++static void print_em_start(FILE *fplog, t_commrec *cr, gmx_runtime_t *runtime, ++ gmx_wallcycle_t wcycle, ++ const char *name) ++{ ++ runtime_start(runtime); ++ wallcycle_start(wcycle, ewcRUN); ++ print_start(fplog, cr, runtime, name); ++} ++ ++static void em_time_end(FILE *fplog, t_commrec *cr, gmx_runtime_t *runtime, ++ gmx_wallcycle_t wcycle) ++{ ++ wallcycle_stop(wcycle, ewcRUN); ++ ++ runtime_end(runtime); ++} ++ ++static void sp_header(FILE *out, const char *minimizer, real ftol, int nsteps) ++{ ++ fprintf(out, "\n"); ++ fprintf(out, "%s:\n", minimizer); ++ fprintf(out, " Tolerance (Fmax) = %12.5e\n", ftol); ++ fprintf(out, " Number of steps = %12d\n", nsteps); ++} ++ ++static void warn_step(FILE *fp, real ftol, gmx_bool bLastStep, gmx_bool bConstrain) ++{ ++ char buffer[2048]; ++ if (bLastStep) ++ { ++ sprintf(buffer, ++ "\nEnergy minimization reached the maximum number " ++ "of steps before the forces reached the requested " ++ "precision Fmax < %g.\n", ftol); ++ } ++ else ++ { ++ sprintf(buffer, ++ "\nEnergy minimization has stopped, but the forces have " ++ "not converged to the requested precision Fmax < %g (which " ++ "may not be possible for your system). It stopped " ++ "because the algorithm tried to make a new step whose size " ++ "was too small, or there was no change in the energy since " ++ "last step. Either way, we regard the minimization as " ++ "converged to within the available machine precision, " ++ "given your starting configuration and EM parameters.\n%s%s", ++ ftol, ++ sizeof(real) < sizeof(double) ? ++ "\nDouble precision normally gives you higher accuracy, but " ++ "this is often not needed for preparing to run molecular " ++ "dynamics.\n" : ++ "", ++ bConstrain ? ++ "You might need to increase your constraint accuracy, or turn\n" ++ "off constraints altogether (set constraints = none in mdp file)\n" : ++ ""); ++ } ++ fputs(wrap_lines(buffer, 78, 0, FALSE), fp); ++} ++ ++ ++ ++static void print_converged(FILE *fp, const char *alg, real ftol, ++ gmx_large_int_t count, gmx_bool bDone, gmx_large_int_t nsteps, ++ real epot, real fmax, int nfmax, real fnorm) ++{ ++ char buf[STEPSTRSIZE]; ++ ++ if (bDone) ++ { ++ fprintf(fp, "\n%s converged to Fmax < %g in %s steps\n", ++ alg, ftol, gmx_step_str(count, buf)); ++ } ++ else if (count < nsteps) ++ { ++ fprintf(fp, "\n%s converged to machine precision in %s steps,\n" ++ "but did not reach the requested Fmax < %g.\n", ++ alg, gmx_step_str(count, buf), ftol); ++ } ++ else ++ { ++ fprintf(fp, "\n%s did not converge to Fmax < %g in %s steps.\n", ++ alg, ftol, gmx_step_str(count, buf)); ++ } ++ ++#ifdef GMX_DOUBLE ++ fprintf(fp, "Potential Energy = %21.14e\n", epot); ++ fprintf(fp, "Maximum force = %21.14e on atom %d\n", fmax, nfmax+1); ++ fprintf(fp, "Norm of force = %21.14e\n", fnorm); ++#else ++ fprintf(fp, "Potential Energy = %14.7e\n", epot); ++ fprintf(fp, "Maximum force = %14.7e on atom %d\n", fmax, nfmax+1); ++ fprintf(fp, "Norm of force = %14.7e\n", fnorm); ++#endif ++} ++ ++static void get_f_norm_max(t_commrec *cr, ++ t_grpopts *opts, t_mdatoms *mdatoms, rvec *f, ++ real *fnorm, real *fmax, int *a_fmax) ++{ ++ double fnorm2, *sum; ++ real fmax2, fmax2_0, fam; ++ int la_max, a_max, start, end, i, m, gf; ++ ++ /* This routine finds the largest force and returns it. ++ * On parallel machines the global max is taken. ++ */ ++ fnorm2 = 0; ++ fmax2 = 0; ++ la_max = -1; ++ gf = 0; ++ start = mdatoms->start; ++ end = mdatoms->homenr + start; ++ if (mdatoms->cFREEZE) ++ { ++ for (i = start; i < end; i++) ++ { ++ gf = mdatoms->cFREEZE[i]; ++ fam = 0; ++ for (m = 0; m < DIM; m++) ++ { ++ if (!opts->nFreeze[gf][m]) ++ { ++ fam += sqr(f[i][m]); ++ } ++ } ++ fnorm2 += fam; ++ if (fam > fmax2) ++ { ++ fmax2 = fam; ++ la_max = i; ++ } ++ } ++ } ++ else ++ { ++ for (i = start; i < end; i++) ++ { ++ fam = norm2(f[i]); ++ fnorm2 += fam; ++ if (fam > fmax2) ++ { ++ fmax2 = fam; ++ la_max = i; ++ } ++ } ++ } ++ ++ if (la_max >= 0 && DOMAINDECOMP(cr)) ++ { ++ a_max = cr->dd->gatindex[la_max]; ++ } ++ else ++ { ++ a_max = la_max; ++ } ++ if (PAR(cr)) ++ { ++ snew(sum, 2*cr->nnodes+1); ++ sum[2*cr->nodeid] = fmax2; ++ sum[2*cr->nodeid+1] = a_max; ++ sum[2*cr->nnodes] = fnorm2; ++ gmx_sumd(2*cr->nnodes+1, sum, cr); ++ fnorm2 = sum[2*cr->nnodes]; ++ /* Determine the global maximum */ ++ for (i = 0; i < cr->nnodes; i++) ++ { ++ if (sum[2*i] > fmax2) ++ { ++ fmax2 = sum[2*i]; ++ a_max = (int)(sum[2*i+1] + 0.5); ++ } ++ } ++ sfree(sum); ++ } ++ ++ if (fnorm) ++ { ++ *fnorm = sqrt(fnorm2); ++ } ++ if (fmax) ++ { ++ *fmax = sqrt(fmax2); ++ } ++ if (a_fmax) ++ { ++ *a_fmax = a_max; ++ } ++} ++ ++static void get_state_f_norm_max(t_commrec *cr, ++ t_grpopts *opts, t_mdatoms *mdatoms, ++ em_state_t *ems) ++{ ++ get_f_norm_max(cr, opts, mdatoms, ems->f, &ems->fnorm, &ems->fmax, &ems->a_fmax); ++} ++ ++void init_em(FILE *fplog, const char *title, ++ t_commrec *cr, t_inputrec *ir, ++ t_state *state_global, gmx_mtop_t *top_global, ++ em_state_t *ems, gmx_localtop_t **top, ++ rvec **f, rvec **f_global, ++ t_nrnb *nrnb, rvec mu_tot, ++ t_forcerec *fr, gmx_enerdata_t **enerd, ++ t_graph **graph, t_mdatoms *mdatoms, gmx_global_stat_t *gstat, ++ gmx_vsite_t *vsite, gmx_constr_t constr, ++ int nfile, const t_filenm fnm[], ++ gmx_mdoutf_t **outf, t_mdebin **mdebin) ++{ ++ int start, homenr, i; ++ real dvdl_constr; ++ ++ if (fplog) ++ { ++ fprintf(fplog, "Initiating %s\n", title); ++ } ++ ++ state_global->ngtc = 0; ++ ++ /* Initialize lambda variables */ ++ initialize_lambdas(fplog, ir, &(state_global->fep_state), state_global->lambda, NULL); ++ ++ init_nrnb(nrnb); ++ ++ if (DOMAINDECOMP(cr)) ++ { ++ *top = dd_init_local_top(top_global); ++ ++ dd_init_local_state(cr->dd, state_global, &ems->s); ++ ++ *f = NULL; ++ ++ /* Distribute the charge groups over the nodes from the master node */ ++ dd_partition_system(fplog, ir->init_step, cr, TRUE, 1, ++ state_global, top_global, ir, ++ &ems->s, &ems->f, mdatoms, *top, ++ fr, vsite, NULL, constr, ++ nrnb, NULL, FALSE); ++ dd_store_state(cr->dd, &ems->s); ++ ++ if (ir->nstfout) ++ { ++ snew(*f_global, top_global->natoms); ++ } ++ else ++ { ++ *f_global = NULL; ++ } ++ *graph = NULL; ++ } ++ else ++ { ++ snew(*f, top_global->natoms); ++ ++ /* Just copy the state */ ++ ems->s = *state_global; ++ snew(ems->s.x, ems->s.nalloc); ++ snew(ems->f, ems->s.nalloc); ++ for (i = 0; i < state_global->natoms; i++) ++ { ++ copy_rvec(state_global->x[i], ems->s.x[i]); ++ } ++ copy_mat(state_global->box, ems->s.box); ++ ++ if (PAR(cr) && ir->eI != eiNM) ++ { ++ /* Initialize the particle decomposition and split the topology */ ++ *top = split_system(fplog, top_global, ir, cr); ++ ++ pd_cg_range(cr, &fr->cg0, &fr->hcg); ++ } ++ else ++ { ++ *top = gmx_mtop_generate_local_top(top_global, ir); ++ } ++ *f_global = *f; ++ ++ forcerec_set_excl_load(fr, *top, cr); ++ ++ setup_bonded_threading(fr, &(*top)->idef); ++ ++ if (ir->ePBC != epbcNONE && !fr->bMolPBC) ++ { ++ *graph = mk_graph(fplog, &((*top)->idef), 0, top_global->natoms, FALSE, FALSE); ++ } ++ else ++ { ++ *graph = NULL; ++ } ++ ++ if (PARTDECOMP(cr)) ++ { ++ pd_at_range(cr, &start, &homenr); ++ homenr -= start; ++ } ++ else ++ { ++ start = 0; ++ homenr = top_global->natoms; ++ } ++ atoms2md(top_global, ir, 0, NULL, start, homenr, mdatoms); ++ update_mdatoms(mdatoms, state_global->lambda[efptFEP]); ++ ++ if (vsite) ++ { ++ set_vsite_top(vsite, *top, mdatoms, cr); ++ } ++ } ++ ++ if (constr) ++ { ++ if (ir->eConstrAlg == econtSHAKE && ++ gmx_mtop_ftype_count(top_global, F_CONSTR) > 0) ++ { ++ gmx_fatal(FARGS, "Can not do energy minimization with %s, use %s\n", ++ econstr_names[econtSHAKE], econstr_names[econtLINCS]); ++ } ++ ++ if (!DOMAINDECOMP(cr)) ++ { ++ set_constraints(constr, *top, ir, mdatoms, cr); ++ } ++ ++ if (!ir->bContinuation) ++ { ++ /* Constrain the starting coordinates */ ++ dvdl_constr = 0; ++ constrain(PAR(cr) ? NULL : fplog, TRUE, TRUE, constr, &(*top)->idef, ++ ir, NULL, cr, -1, 0, mdatoms, ++ ems->s.x, ems->s.x, NULL, fr->bMolPBC, ems->s.box, ++ ems->s.lambda[efptFEP], &dvdl_constr, ++ NULL, NULL, nrnb, econqCoord, FALSE, 0, 0); ++ } ++ } ++ ++ if (PAR(cr)) ++ { ++ *gstat = global_stat_init(ir); ++ } ++ ++ *outf = init_mdoutf(nfile, fnm, 0, cr, ir, NULL); ++ ++ snew(*enerd, 1); ++ init_enerdata(top_global->groups.grps[egcENER].nr, ir->fepvals->n_lambda, ++ *enerd); ++ ++ if (mdebin != NULL) ++ { ++ /* Init bin for energy stuff */ ++ *mdebin = init_mdebin((*outf)->fp_ene, top_global, ir, NULL); ++ } ++ ++ clear_rvec(mu_tot); ++ calc_shifts(ems->s.box, fr->shift_vec); ++} ++ ++static void finish_em(FILE *fplog, t_commrec *cr, gmx_mdoutf_t *outf, ++ gmx_runtime_t *runtime, gmx_wallcycle_t wcycle) ++{ ++ if (!(cr->duty & DUTY_PME)) ++ { ++ /* Tell the PME only node to finish */ ++ gmx_pme_send_finish(cr); ++ } ++ ++ done_mdoutf(outf); ++ ++ em_time_end(fplog, cr, runtime, wcycle); ++} ++ ++static void swap_em_state(em_state_t *ems1, em_state_t *ems2) ++{ ++ em_state_t tmp; ++ ++ tmp = *ems1; ++ *ems1 = *ems2; ++ *ems2 = tmp; ++} ++ ++static void copy_em_coords(em_state_t *ems, t_state *state) ++{ ++ int i; ++ ++ for (i = 0; (i < state->natoms); i++) ++ { ++ copy_rvec(ems->s.x[i], state->x[i]); ++ } ++} ++ ++static void write_em_traj(FILE *fplog, t_commrec *cr, ++ gmx_mdoutf_t *outf, ++ gmx_bool bX, gmx_bool bF, const char *confout, ++ gmx_mtop_t *top_global, ++ t_inputrec *ir, gmx_large_int_t step, ++ em_state_t *state, ++ t_state *state_global, rvec *f_global) ++{ ++ int mdof_flags; ++ ++ if ((bX || bF || confout != NULL) && !DOMAINDECOMP(cr)) ++ { ++ copy_em_coords(state, state_global); ++ f_global = state->f; ++ } ++ ++ mdof_flags = 0; ++ if (bX) ++ { ++ mdof_flags |= MDOF_X; ++ } ++ if (bF) ++ { ++ mdof_flags |= MDOF_F; ++ } ++ write_traj(fplog, cr, outf, mdof_flags, ++ top_global, step, (double)step, ++ &state->s, state_global, state->f, f_global, NULL, NULL); ++ ++ if (confout != NULL && MASTER(cr)) ++ { ++ if (ir->ePBC != epbcNONE && !ir->bPeriodicMols && DOMAINDECOMP(cr)) ++ { ++ /* Make molecules whole only for confout writing */ ++ do_pbc_mtop(fplog, ir->ePBC, state_global->box, top_global, ++ state_global->x); ++ } ++ ++ write_sto_conf_mtop(confout, ++ *top_global->name, top_global, ++ state_global->x, NULL, ir->ePBC, state_global->box); ++ } ++} ++ ++static void do_em_step(t_commrec *cr, t_inputrec *ir, t_mdatoms *md, ++ gmx_bool bMolPBC, ++ em_state_t *ems1, real a, rvec *f, em_state_t *ems2, ++ gmx_constr_t constr, gmx_localtop_t *top, ++ t_nrnb *nrnb, gmx_wallcycle_t wcycle, ++ gmx_large_int_t count) ++ ++{ ++ t_state *s1, *s2; ++ int i; ++ int start, end; ++ rvec *x1, *x2; ++ real dvdl_constr; ++ ++ s1 = &ems1->s; ++ s2 = &ems2->s; ++ ++ if (DOMAINDECOMP(cr) && s1->ddp_count != cr->dd->ddp_count) ++ { ++ gmx_incons("state mismatch in do_em_step"); ++ } ++ ++ s2->flags = s1->flags; ++ ++ if (s2->nalloc != s1->nalloc) ++ { ++ s2->nalloc = s1->nalloc; ++ srenew(s2->x, s1->nalloc); ++ srenew(ems2->f, s1->nalloc); ++ if (s2->flags & (1<cg_p, s1->nalloc); ++ } ++ } ++ ++ s2->natoms = s1->natoms; ++ copy_mat(s1->box, s2->box); ++ /* Copy free energy state */ ++ for (i = 0; i < efptNR; i++) ++ { ++ s2->lambda[i] = s1->lambda[i]; ++ } ++ copy_mat(s1->box, s2->box); ++ ++ start = md->start; ++ end = md->start + md->homenr; ++ ++ x1 = s1->x; ++ x2 = s2->x; ++ ++#pragma omp parallel num_threads(gmx_omp_nthreads_get(emntUpdate)) ++ { ++ int gf, i, m; ++ ++ gf = 0; ++#pragma omp for schedule(static) nowait ++ for (i = start; i < end; i++) ++ { ++ if (md->cFREEZE) ++ { ++ gf = md->cFREEZE[i]; ++ } ++ for (m = 0; m < DIM; m++) ++ { ++ if (ir->opts.nFreeze[gf][m]) ++ { ++ x2[i][m] = x1[i][m]; ++ } ++ else ++ { ++ x2[i][m] = x1[i][m] + a*f[i][m]; ++ } ++ } ++ } ++ ++ if (s2->flags & (1<cg_p; ++ x2 = s2->cg_p; ++#pragma omp for schedule(static) nowait ++ for (i = start; i < end; i++) ++ { ++ copy_rvec(x1[i], x2[i]); ++ } ++ } ++ ++ if (DOMAINDECOMP(cr)) ++ { ++ s2->ddp_count = s1->ddp_count; ++ if (s2->cg_gl_nalloc < s1->cg_gl_nalloc) ++ { ++#pragma omp barrier ++ s2->cg_gl_nalloc = s1->cg_gl_nalloc; ++ srenew(s2->cg_gl, s2->cg_gl_nalloc); ++#pragma omp barrier ++ } ++ s2->ncg_gl = s1->ncg_gl; ++#pragma omp for schedule(static) nowait ++ for (i = 0; i < s2->ncg_gl; i++) ++ { ++ s2->cg_gl[i] = s1->cg_gl[i]; ++ } ++ s2->ddp_count_cg_gl = s1->ddp_count_cg_gl; ++ } ++ } ++ ++ if (constr) ++ { ++ wallcycle_start(wcycle, ewcCONSTR); ++ dvdl_constr = 0; ++ constrain(NULL, TRUE, TRUE, constr, &top->idef, ++ ir, NULL, cr, count, 0, md, ++ s1->x, s2->x, NULL, bMolPBC, s2->box, ++ s2->lambda[efptBONDED], &dvdl_constr, ++ NULL, NULL, nrnb, econqCoord, FALSE, 0, 0); ++ wallcycle_stop(wcycle, ewcCONSTR); ++ } ++} ++ ++static void em_dd_partition_system(FILE *fplog, int step, t_commrec *cr, ++ gmx_mtop_t *top_global, t_inputrec *ir, ++ em_state_t *ems, gmx_localtop_t *top, ++ t_mdatoms *mdatoms, t_forcerec *fr, ++ gmx_vsite_t *vsite, gmx_constr_t constr, ++ t_nrnb *nrnb, gmx_wallcycle_t wcycle) ++{ ++ /* Repartition the domain decomposition */ ++ wallcycle_start(wcycle, ewcDOMDEC); ++ dd_partition_system(fplog, step, cr, FALSE, 1, ++ NULL, top_global, ir, ++ &ems->s, &ems->f, ++ mdatoms, top, fr, vsite, NULL, constr, ++ nrnb, wcycle, FALSE); ++ dd_store_state(cr->dd, &ems->s); ++ wallcycle_stop(wcycle, ewcDOMDEC); ++} ++ ++static void evaluate_energy(FILE *fplog, gmx_bool bVerbose, t_commrec *cr, ++ t_state *state_global, gmx_mtop_t *top_global, ++ em_state_t *ems, gmx_localtop_t *top, ++ t_inputrec *inputrec, ++ t_nrnb *nrnb, gmx_wallcycle_t wcycle, ++ gmx_global_stat_t gstat, ++ gmx_vsite_t *vsite, gmx_constr_t constr, ++ t_fcdata *fcd, ++ t_graph *graph, t_mdatoms *mdatoms, ++ t_forcerec *fr, rvec mu_tot, ++ gmx_enerdata_t *enerd, tensor vir, tensor pres, ++ gmx_large_int_t count, gmx_bool bFirst) ++{ ++ real t; ++ gmx_bool bNS; ++ int nabnsb; ++ tensor force_vir, shake_vir, ekin; ++ real dvdl_constr, prescorr, enercorr, dvdlcorr; ++ real terminate = 0; ++ ++ /* Set the time to the initial time, the time does not change during EM */ ++ t = inputrec->init_t; ++ ++ if (bFirst || ++ (DOMAINDECOMP(cr) && ems->s.ddp_count < cr->dd->ddp_count)) ++ { ++ /* This the first state or an old state used before the last ns */ ++ bNS = TRUE; ++ } ++ else ++ { ++ bNS = FALSE; ++ if (inputrec->nstlist > 0) ++ { ++ bNS = TRUE; ++ } ++ else if (inputrec->nstlist == -1) ++ { ++ nabnsb = natoms_beyond_ns_buffer(inputrec, fr, &top->cgs, NULL, ems->s.x); ++ if (PAR(cr)) ++ { ++ gmx_sumi(1, &nabnsb, cr); ++ } ++ bNS = (nabnsb > 0); ++ } ++ } ++ ++ if (vsite) ++ { ++ construct_vsites(fplog, vsite, ems->s.x, nrnb, 1, NULL, ++ top->idef.iparams, top->idef.il, ++ fr->ePBC, fr->bMolPBC, graph, cr, ems->s.box); ++ } ++ ++ if (DOMAINDECOMP(cr)) ++ { ++ if (bNS) ++ { ++ /* Repartition the domain decomposition */ ++ em_dd_partition_system(fplog, count, cr, top_global, inputrec, ++ ems, top, mdatoms, fr, vsite, constr, ++ nrnb, wcycle); ++ } ++ } ++ ++ /* Calc force & energy on new trial position */ ++ /* do_force always puts the charge groups in the box and shifts again ++ * We do not unshift, so molecules are always whole in congrad.c ++ */ ++ do_force(fplog, cr, inputrec, ++ count, nrnb, wcycle, top, top_global, &top_global->groups, ++ ems->s.box, ems->s.x, &ems->s.hist, ++ ems->f, force_vir, mdatoms, enerd, fcd, ++ ems->s.lambda, graph, fr, vsite, mu_tot, t, NULL, NULL, TRUE, ++ GMX_FORCE_STATECHANGED | GMX_FORCE_ALLFORCES | ++ GMX_FORCE_VIRIAL | GMX_FORCE_ENERGY | ++ (bNS ? GMX_FORCE_NS | GMX_FORCE_DO_LR : 0)); ++ ++ /* Clear the unused shake virial and pressure */ ++ clear_mat(shake_vir); ++ clear_mat(pres); ++ ++ /* Communicate stuff when parallel */ ++ if (PAR(cr) && inputrec->eI != eiNM) ++ { ++ wallcycle_start(wcycle, ewcMoveE); ++ ++ global_stat(fplog, gstat, cr, enerd, force_vir, shake_vir, mu_tot, ++ inputrec, NULL, NULL, NULL, 1, &terminate, ++ top_global, &ems->s, FALSE, ++ CGLO_ENERGY | ++ CGLO_PRESSURE | ++ CGLO_CONSTRAINT | ++ CGLO_FIRSTITERATE); ++ ++ wallcycle_stop(wcycle, ewcMoveE); ++ } ++ ++ /* Calculate long range corrections to pressure and energy */ ++ calc_dispcorr(fplog, inputrec, fr, count, top_global->natoms, ems->s.box, ems->s.lambda[efptVDW], ++ pres, force_vir, &prescorr, &enercorr, &dvdlcorr); ++ enerd->term[F_DISPCORR] = enercorr; ++ enerd->term[F_EPOT] += enercorr; ++ enerd->term[F_PRES] += prescorr; ++ enerd->term[F_DVDL] += dvdlcorr; ++ ++ ems->epot = enerd->term[F_EPOT]; ++ ++ if (constr) ++ { ++ /* Project out the constraint components of the force */ ++ wallcycle_start(wcycle, ewcCONSTR); ++ dvdl_constr = 0; ++ constrain(NULL, FALSE, FALSE, constr, &top->idef, ++ inputrec, NULL, cr, count, 0, mdatoms, ++ ems->s.x, ems->f, ems->f, fr->bMolPBC, ems->s.box, ++ ems->s.lambda[efptBONDED], &dvdl_constr, ++ NULL, &shake_vir, nrnb, econqForceDispl, FALSE, 0, 0); ++ if (fr->bSepDVDL && fplog) ++ { ++ fprintf(fplog, sepdvdlformat, "Constraints", t, dvdl_constr); ++ } ++ enerd->term[F_DVDL_CONSTR] += dvdl_constr; ++ m_add(force_vir, shake_vir, vir); ++ wallcycle_stop(wcycle, ewcCONSTR); ++ } ++ else ++ { ++ copy_mat(force_vir, vir); ++ } ++ ++ clear_mat(ekin); ++ enerd->term[F_PRES] = ++ calc_pres(fr->ePBC, inputrec->nwall, ems->s.box, ekin, vir, pres); ++ ++ sum_dhdl(enerd, ems->s.lambda, inputrec->fepvals); ++ ++ if (EI_ENERGY_MINIMIZATION(inputrec->eI)) ++ { ++ get_state_f_norm_max(cr, &(inputrec->opts), mdatoms, ems); ++ } ++} ++ ++static double reorder_partsum(t_commrec *cr, t_grpopts *opts, t_mdatoms *mdatoms, ++ gmx_mtop_t *mtop, ++ em_state_t *s_min, em_state_t *s_b) ++{ ++ rvec *fm, *fb, *fmg; ++ t_block *cgs_gl; ++ int ncg, *cg_gl, *index, c, cg, i, a0, a1, a, gf, m; ++ double partsum; ++ unsigned char *grpnrFREEZE; ++ ++ if (debug) ++ { ++ fprintf(debug, "Doing reorder_partsum\n"); ++ } ++ ++ fm = s_min->f; ++ fb = s_b->f; ++ ++ cgs_gl = dd_charge_groups_global(cr->dd); ++ index = cgs_gl->index; ++ ++ /* Collect fm in a global vector fmg. ++ * This conflicts with the spirit of domain decomposition, ++ * but to fully optimize this a much more complicated algorithm is required. ++ */ ++ snew(fmg, mtop->natoms); ++ ++ ncg = s_min->s.ncg_gl; ++ cg_gl = s_min->s.cg_gl; ++ i = 0; ++ for (c = 0; c < ncg; c++) ++ { ++ cg = cg_gl[c]; ++ a0 = index[cg]; ++ a1 = index[cg+1]; ++ for (a = a0; a < a1; a++) ++ { ++ copy_rvec(fm[i], fmg[a]); ++ i++; ++ } ++ } ++ gmx_sum(mtop->natoms*3, fmg[0], cr); ++ ++ /* Now we will determine the part of the sum for the cgs in state s_b */ ++ ncg = s_b->s.ncg_gl; ++ cg_gl = s_b->s.cg_gl; ++ partsum = 0; ++ i = 0; ++ gf = 0; ++ grpnrFREEZE = mtop->groups.grpnr[egcFREEZE]; ++ for (c = 0; c < ncg; c++) ++ { ++ cg = cg_gl[c]; ++ a0 = index[cg]; ++ a1 = index[cg+1]; ++ for (a = a0; a < a1; a++) ++ { ++ if (mdatoms->cFREEZE && grpnrFREEZE) ++ { ++ gf = grpnrFREEZE[i]; ++ } ++ for (m = 0; m < DIM; m++) ++ { ++ if (!opts->nFreeze[gf][m]) ++ { ++ partsum += (fb[i][m] - fmg[a][m])*fb[i][m]; ++ } ++ } ++ i++; ++ } ++ } ++ ++ sfree(fmg); ++ ++ return partsum; ++} ++ ++static real pr_beta(t_commrec *cr, t_grpopts *opts, t_mdatoms *mdatoms, ++ gmx_mtop_t *mtop, ++ em_state_t *s_min, em_state_t *s_b) ++{ ++ rvec *fm, *fb; ++ double sum; ++ int gf, i, m; ++ ++ /* This is just the classical Polak-Ribiere calculation of beta; ++ * it looks a bit complicated since we take freeze groups into account, ++ * and might have to sum it in parallel runs. ++ */ ++ ++ if (!DOMAINDECOMP(cr) || ++ (s_min->s.ddp_count == cr->dd->ddp_count && ++ s_b->s.ddp_count == cr->dd->ddp_count)) ++ { ++ fm = s_min->f; ++ fb = s_b->f; ++ sum = 0; ++ gf = 0; ++ /* This part of code can be incorrect with DD, ++ * since the atom ordering in s_b and s_min might differ. ++ */ ++ for (i = mdatoms->start; i < mdatoms->start+mdatoms->homenr; i++) ++ { ++ if (mdatoms->cFREEZE) ++ { ++ gf = mdatoms->cFREEZE[i]; ++ } ++ for (m = 0; m < DIM; m++) ++ { ++ if (!opts->nFreeze[gf][m]) ++ { ++ sum += (fb[i][m] - fm[i][m])*fb[i][m]; ++ } ++ } ++ } ++ } ++ else ++ { ++ /* We need to reorder cgs while summing */ ++ sum = reorder_partsum(cr, opts, mdatoms, mtop, s_min, s_b); ++ } ++ if (PAR(cr)) ++ { ++ gmx_sumd(1, &sum, cr); ++ } ++ ++ return sum/sqr(s_min->fnorm); ++} ++ ++double do_cg(FILE *fplog, t_commrec *cr, ++ int nfile, const t_filenm fnm[], ++ const output_env_t oenv, gmx_bool bVerbose, gmx_bool bCompact, ++ int nstglobalcomm, ++ gmx_vsite_t *vsite, gmx_constr_t constr, ++ int stepout, ++ t_inputrec *inputrec, ++ gmx_mtop_t *top_global, t_fcdata *fcd, ++ t_state *state_global, ++ t_mdatoms *mdatoms, ++ t_nrnb *nrnb, gmx_wallcycle_t wcycle, ++ gmx_edsam_t ed, ++ t_forcerec *fr, ++ int repl_ex_nst, int repl_ex_nex, int repl_ex_seed, ++ gmx_membed_t membed, ++ real cpt_period, real max_hours, ++ const char *deviceOptions, ++ unsigned long Flags, ++ gmx_runtime_t *runtime) ++{ ++ const char *CG = "Polak-Ribiere Conjugate Gradients"; ++ ++ em_state_t *s_min, *s_a, *s_b, *s_c; ++ gmx_localtop_t *top; ++ gmx_enerdata_t *enerd; ++ rvec *f; ++ gmx_global_stat_t gstat; ++ t_graph *graph; ++ rvec *f_global, *p, *sf, *sfm; ++ double gpa, gpb, gpc, tmp, sum[2], minstep; ++ real fnormn; ++ real stepsize; ++ real a, b, c, beta = 0.0; ++ real epot_repl = 0; ++ real pnorm; ++ t_mdebin *mdebin; ++ gmx_bool converged, foundlower; ++ rvec mu_tot; ++ gmx_bool do_log = FALSE, do_ene = FALSE, do_x, do_f; ++ tensor vir, pres; ++ int number_steps, neval = 0, nstcg = inputrec->nstcgsteep; ++ gmx_mdoutf_t *outf; ++ int i, m, gf, step, nminstep; ++ real terminate = 0; ++ ++ step = 0; ++ ++ s_min = init_em_state(); ++ s_a = init_em_state(); ++ s_b = init_em_state(); ++ s_c = init_em_state(); ++ ++ /* Init em and store the local state in s_min */ ++ init_em(fplog, CG, cr, inputrec, ++ state_global, top_global, s_min, &top, &f, &f_global, ++ nrnb, mu_tot, fr, &enerd, &graph, mdatoms, &gstat, vsite, constr, ++ nfile, fnm, &outf, &mdebin); ++ ++ /* Print to log file */ ++ print_em_start(fplog, cr, runtime, wcycle, CG); ++ ++ /* Max number of steps */ ++ number_steps = inputrec->nsteps; ++ ++ if (MASTER(cr)) ++ { ++ sp_header(stderr, CG, inputrec->em_tol, number_steps); ++ } ++ if (fplog) ++ { ++ sp_header(fplog, CG, inputrec->em_tol, number_steps); ++ } ++ ++ /* Call the force routine and some auxiliary (neighboursearching etc.) */ ++ /* do_force always puts the charge groups in the box and shifts again ++ * We do not unshift, so molecules are always whole in congrad.c ++ */ ++ evaluate_energy(fplog, bVerbose, cr, ++ state_global, top_global, s_min, top, ++ inputrec, nrnb, wcycle, gstat, ++ vsite, constr, fcd, graph, mdatoms, fr, ++ mu_tot, enerd, vir, pres, -1, TRUE); ++ where(); ++ ++ if (MASTER(cr)) ++ { ++ /* Copy stuff to the energy bin for easy printing etc. */ ++ upd_mdebin(mdebin, FALSE, FALSE, (double)step, ++ mdatoms->tmass, enerd, &s_min->s, inputrec->fepvals, inputrec->expandedvals, s_min->s.box, ++ NULL, NULL, vir, pres, NULL, mu_tot, constr); ++ ++ print_ebin_header(fplog, step, step, s_min->s.lambda[efptFEP]); ++ print_ebin(outf->fp_ene, TRUE, FALSE, FALSE, fplog, step, step, eprNORMAL, ++ TRUE, mdebin, fcd, &(top_global->groups), &(inputrec->opts)); ++ } ++ where(); ++ ++ /* Estimate/guess the initial stepsize */ ++ stepsize = inputrec->em_stepsize/s_min->fnorm; ++ ++ if (MASTER(cr)) ++ { ++ fprintf(stderr, " F-max = %12.5e on atom %d\n", ++ s_min->fmax, s_min->a_fmax+1); ++ fprintf(stderr, " F-Norm = %12.5e\n", ++ s_min->fnorm/sqrt(state_global->natoms)); ++ fprintf(stderr, "\n"); ++ /* and copy to the log file too... */ ++ fprintf(fplog, " F-max = %12.5e on atom %d\n", ++ s_min->fmax, s_min->a_fmax+1); ++ fprintf(fplog, " F-Norm = %12.5e\n", ++ s_min->fnorm/sqrt(state_global->natoms)); ++ fprintf(fplog, "\n"); ++ } ++ /* Start the loop over CG steps. ++ * Each successful step is counted, and we continue until ++ * we either converge or reach the max number of steps. ++ */ ++ converged = FALSE; ++ for (step = 0; (number_steps < 0 || (number_steps >= 0 && step <= number_steps)) && !converged; step++) ++ { ++ ++ /* start taking steps in a new direction ++ * First time we enter the routine, beta=0, and the direction is ++ * simply the negative gradient. ++ */ ++ ++ /* Calculate the new direction in p, and the gradient in this direction, gpa */ ++ p = s_min->s.cg_p; ++ sf = s_min->f; ++ gpa = 0; ++ gf = 0; ++ for (i = mdatoms->start; i < mdatoms->start+mdatoms->homenr; i++) ++ { ++ if (mdatoms->cFREEZE) ++ { ++ gf = mdatoms->cFREEZE[i]; ++ } ++ for (m = 0; m < DIM; m++) ++ { ++ if (!inputrec->opts.nFreeze[gf][m]) ++ { ++ p[i][m] = sf[i][m] + beta*p[i][m]; ++ gpa -= p[i][m]*sf[i][m]; ++ /* f is negative gradient, thus the sign */ ++ } ++ else ++ { ++ p[i][m] = 0; ++ } ++ } ++ } ++ ++ /* Sum the gradient along the line across CPUs */ ++ if (PAR(cr)) ++ { ++ gmx_sumd(1, &gpa, cr); ++ } ++ ++ /* Calculate the norm of the search vector */ ++ get_f_norm_max(cr, &(inputrec->opts), mdatoms, p, &pnorm, NULL, NULL); ++ ++ /* Just in case stepsize reaches zero due to numerical precision... */ ++ if (stepsize <= 0) ++ { ++ stepsize = inputrec->em_stepsize/pnorm; ++ } ++ ++ /* ++ * Double check the value of the derivative in the search direction. ++ * If it is positive it must be due to the old information in the ++ * CG formula, so just remove that and start over with beta=0. ++ * This corresponds to a steepest descent step. ++ */ ++ if (gpa > 0) ++ { ++ beta = 0; ++ step--; /* Don't count this step since we are restarting */ ++ continue; /* Go back to the beginning of the big for-loop */ ++ } ++ ++ /* Calculate minimum allowed stepsize, before the average (norm) ++ * relative change in coordinate is smaller than precision ++ */ ++ minstep = 0; ++ for (i = mdatoms->start; i < mdatoms->start+mdatoms->homenr; i++) ++ { ++ for (m = 0; m < DIM; m++) ++ { ++ tmp = fabs(s_min->s.x[i][m]); ++ if (tmp < 1.0) ++ { ++ tmp = 1.0; ++ } ++ tmp = p[i][m]/tmp; ++ minstep += tmp*tmp; ++ } ++ } ++ /* Add up from all CPUs */ ++ if (PAR(cr)) ++ { ++ gmx_sumd(1, &minstep, cr); ++ } ++ ++ minstep = GMX_REAL_EPS/sqrt(minstep/(3*state_global->natoms)); ++ ++ if (stepsize < minstep) ++ { ++ converged = TRUE; ++ break; ++ } ++ ++ /* Write coordinates if necessary */ ++ do_x = do_per_step(step, inputrec->nstxout); ++ do_f = do_per_step(step, inputrec->nstfout); ++ ++ write_em_traj(fplog, cr, outf, do_x, do_f, NULL, ++ top_global, inputrec, step, ++ s_min, state_global, f_global); ++ ++ /* Take a step downhill. ++ * In theory, we should minimize the function along this direction. ++ * That is quite possible, but it turns out to take 5-10 function evaluations ++ * for each line. However, we dont really need to find the exact minimum - ++ * it is much better to start a new CG step in a modified direction as soon ++ * as we are close to it. This will save a lot of energy evaluations. ++ * ++ * In practice, we just try to take a single step. ++ * If it worked (i.e. lowered the energy), we increase the stepsize but ++ * the continue straight to the next CG step without trying to find any minimum. ++ * If it didn't work (higher energy), there must be a minimum somewhere between ++ * the old position and the new one. ++ * ++ * Due to the finite numerical accuracy, it turns out that it is a good idea ++ * to even accept a SMALL increase in energy, if the derivative is still downhill. ++ * This leads to lower final energies in the tests I've done. / Erik ++ */ ++ s_a->epot = s_min->epot; ++ a = 0.0; ++ c = a + stepsize; /* reference position along line is zero */ ++ ++ if (DOMAINDECOMP(cr) && s_min->s.ddp_count < cr->dd->ddp_count) ++ { ++ em_dd_partition_system(fplog, step, cr, top_global, inputrec, ++ s_min, top, mdatoms, fr, vsite, constr, ++ nrnb, wcycle); ++ } ++ ++ /* Take a trial step (new coords in s_c) */ ++ do_em_step(cr, inputrec, mdatoms, fr->bMolPBC, s_min, c, s_min->s.cg_p, s_c, ++ constr, top, nrnb, wcycle, -1); ++ ++ neval++; ++ /* Calculate energy for the trial step */ ++ evaluate_energy(fplog, bVerbose, cr, ++ state_global, top_global, s_c, top, ++ inputrec, nrnb, wcycle, gstat, ++ vsite, constr, fcd, graph, mdatoms, fr, ++ mu_tot, enerd, vir, pres, -1, FALSE); ++ ++ /* Calc derivative along line */ ++ p = s_c->s.cg_p; ++ sf = s_c->f; ++ gpc = 0; ++ for (i = mdatoms->start; i < mdatoms->start+mdatoms->homenr; i++) ++ { ++ for (m = 0; m < DIM; m++) ++ { ++ gpc -= p[i][m]*sf[i][m]; /* f is negative gradient, thus the sign */ ++ } ++ } ++ /* Sum the gradient along the line across CPUs */ ++ if (PAR(cr)) ++ { ++ gmx_sumd(1, &gpc, cr); ++ } ++ ++ /* This is the max amount of increase in energy we tolerate */ ++ tmp = sqrt(GMX_REAL_EPS)*fabs(s_a->epot); ++ ++ /* Accept the step if the energy is lower, or if it is not significantly higher ++ * and the line derivative is still negative. ++ */ ++ if (s_c->epot < s_a->epot || (gpc < 0 && s_c->epot < (s_a->epot + tmp))) ++ { ++ foundlower = TRUE; ++ /* Great, we found a better energy. Increase step for next iteration ++ * if we are still going down, decrease it otherwise ++ */ ++ if (gpc < 0) ++ { ++ stepsize *= 1.618034; /* The golden section */ ++ } ++ else ++ { ++ stepsize *= 0.618034; /* 1/golden section */ ++ } ++ } ++ else ++ { ++ /* New energy is the same or higher. We will have to do some work ++ * to find a smaller value in the interval. Take smaller step next time! ++ */ ++ foundlower = FALSE; ++ stepsize *= 0.618034; ++ } ++ ++ ++ ++ ++ /* OK, if we didn't find a lower value we will have to locate one now - there must ++ * be one in the interval [a=0,c]. ++ * The same thing is valid here, though: Don't spend dozens of iterations to find ++ * the line minimum. We try to interpolate based on the derivative at the endpoints, ++ * and only continue until we find a lower value. In most cases this means 1-2 iterations. ++ * ++ * I also have a safeguard for potentially really patological functions so we never ++ * take more than 20 steps before we give up ... ++ * ++ * If we already found a lower value we just skip this step and continue to the update. ++ */ ++ if (!foundlower) ++ { ++ nminstep = 0; ++ ++ do ++ { ++ /* Select a new trial point. ++ * If the derivatives at points a & c have different sign we interpolate to zero, ++ * otherwise just do a bisection. ++ */ ++ if (gpa < 0 && gpc > 0) ++ { ++ b = a + gpa*(a-c)/(gpc-gpa); ++ } ++ else ++ { ++ b = 0.5*(a+c); ++ } ++ ++ /* safeguard if interpolation close to machine accuracy causes errors: ++ * never go outside the interval ++ */ ++ if (b <= a || b >= c) ++ { ++ b = 0.5*(a+c); ++ } ++ ++ if (DOMAINDECOMP(cr) && s_min->s.ddp_count != cr->dd->ddp_count) ++ { ++ /* Reload the old state */ ++ em_dd_partition_system(fplog, -1, cr, top_global, inputrec, ++ s_min, top, mdatoms, fr, vsite, constr, ++ nrnb, wcycle); ++ } ++ ++ /* Take a trial step to this new point - new coords in s_b */ ++ do_em_step(cr, inputrec, mdatoms, fr->bMolPBC, s_min, b, s_min->s.cg_p, s_b, ++ constr, top, nrnb, wcycle, -1); ++ ++ neval++; ++ /* Calculate energy for the trial step */ ++ evaluate_energy(fplog, bVerbose, cr, ++ state_global, top_global, s_b, top, ++ inputrec, nrnb, wcycle, gstat, ++ vsite, constr, fcd, graph, mdatoms, fr, ++ mu_tot, enerd, vir, pres, -1, FALSE); ++ ++ /* p does not change within a step, but since the domain decomposition ++ * might change, we have to use cg_p of s_b here. ++ */ ++ p = s_b->s.cg_p; ++ sf = s_b->f; ++ gpb = 0; ++ for (i = mdatoms->start; i < mdatoms->start+mdatoms->homenr; i++) ++ { ++ for (m = 0; m < DIM; m++) ++ { ++ gpb -= p[i][m]*sf[i][m]; /* f is negative gradient, thus the sign */ ++ } ++ } ++ /* Sum the gradient along the line across CPUs */ ++ if (PAR(cr)) ++ { ++ gmx_sumd(1, &gpb, cr); ++ } ++ ++ if (debug) ++ { ++ fprintf(debug, "CGE: EpotA %f EpotB %f EpotC %f gpb %f\n", ++ s_a->epot, s_b->epot, s_c->epot, gpb); ++ } ++ ++ epot_repl = s_b->epot; ++ ++ /* Keep one of the intervals based on the value of the derivative at the new point */ ++ if (gpb > 0) ++ { ++ /* Replace c endpoint with b */ ++ swap_em_state(s_b, s_c); ++ c = b; ++ gpc = gpb; ++ } ++ else ++ { ++ /* Replace a endpoint with b */ ++ swap_em_state(s_b, s_a); ++ a = b; ++ gpa = gpb; ++ } ++ ++ /* ++ * Stop search as soon as we find a value smaller than the endpoints. ++ * Never run more than 20 steps, no matter what. ++ */ ++ nminstep++; ++ } ++ while ((epot_repl > s_a->epot || epot_repl > s_c->epot) && ++ (nminstep < 20)); ++ ++ if (fabs(epot_repl - s_min->epot) < fabs(s_min->epot)*GMX_REAL_EPS || ++ nminstep >= 20) ++ { ++ /* OK. We couldn't find a significantly lower energy. ++ * If beta==0 this was steepest descent, and then we give up. ++ * If not, set beta=0 and restart with steepest descent before quitting. ++ */ ++ if (beta == 0.0) ++ { ++ /* Converged */ ++ converged = TRUE; ++ break; ++ } ++ else ++ { ++ /* Reset memory before giving up */ ++ beta = 0.0; ++ continue; ++ } ++ } ++ ++ /* Select min energy state of A & C, put the best in B. ++ */ ++ if (s_c->epot < s_a->epot) ++ { ++ if (debug) ++ { ++ fprintf(debug, "CGE: C (%f) is lower than A (%f), moving C to B\n", ++ s_c->epot, s_a->epot); ++ } ++ swap_em_state(s_b, s_c); ++ gpb = gpc; ++ b = c; ++ } ++ else ++ { ++ if (debug) ++ { ++ fprintf(debug, "CGE: A (%f) is lower than C (%f), moving A to B\n", ++ s_a->epot, s_c->epot); ++ } ++ swap_em_state(s_b, s_a); ++ gpb = gpa; ++ b = a; ++ } ++ ++ } ++ else ++ { ++ if (debug) ++ { ++ fprintf(debug, "CGE: Found a lower energy %f, moving C to B\n", ++ s_c->epot); ++ } ++ swap_em_state(s_b, s_c); ++ gpb = gpc; ++ b = c; ++ } ++ ++ /* new search direction */ ++ /* beta = 0 means forget all memory and restart with steepest descents. */ ++ if (nstcg && ((step % nstcg) == 0)) ++ { ++ beta = 0.0; ++ } ++ else ++ { ++ /* s_min->fnorm cannot be zero, because then we would have converged ++ * and broken out. ++ */ ++ ++ /* Polak-Ribiere update. ++ * Change to fnorm2/fnorm2_old for Fletcher-Reeves ++ */ ++ beta = pr_beta(cr, &inputrec->opts, mdatoms, top_global, s_min, s_b); ++ } ++ /* Limit beta to prevent oscillations */ ++ if (fabs(beta) > 5.0) ++ { ++ beta = 0.0; ++ } ++ ++ ++ /* update positions */ ++ swap_em_state(s_min, s_b); ++ gpa = gpb; ++ ++ /* Print it if necessary */ ++ if (MASTER(cr)) ++ { ++ if (bVerbose) ++ { ++ fprintf(stderr, "\rStep %d, Epot=%12.6e, Fnorm=%9.3e, Fmax=%9.3e (atom %d)\n", ++ step, s_min->epot, s_min->fnorm/sqrt(state_global->natoms), ++ s_min->fmax, s_min->a_fmax+1); ++ } ++ /* Store the new (lower) energies */ ++ upd_mdebin(mdebin, FALSE, FALSE, (double)step, ++ mdatoms->tmass, enerd, &s_min->s, inputrec->fepvals, inputrec->expandedvals, s_min->s.box, ++ NULL, NULL, vir, pres, NULL, mu_tot, constr); ++ ++ do_log = do_per_step(step, inputrec->nstlog); ++ do_ene = do_per_step(step, inputrec->nstenergy); ++ if (do_log) ++ { ++ print_ebin_header(fplog, step, step, s_min->s.lambda[efptFEP]); ++ } ++ print_ebin(outf->fp_ene, do_ene, FALSE, FALSE, ++ do_log ? fplog : NULL, step, step, eprNORMAL, ++ TRUE, mdebin, fcd, &(top_global->groups), &(inputrec->opts)); ++ } ++ ++ /* Stop when the maximum force lies below tolerance. ++ * If we have reached machine precision, converged is already set to true. ++ */ ++ converged = converged || (s_min->fmax < inputrec->em_tol); ++ ++ } /* End of the loop */ ++ ++ if (converged) ++ { ++ step--; /* we never took that last step in this case */ ++ ++ } ++ if (s_min->fmax > inputrec->em_tol) ++ { ++ if (MASTER(cr)) ++ { ++ warn_step(stderr, inputrec->em_tol, step-1 == number_steps, FALSE); ++ warn_step(fplog, inputrec->em_tol, step-1 == number_steps, FALSE); ++ } ++ converged = FALSE; ++ } ++ ++ if (MASTER(cr)) ++ { ++ /* If we printed energy and/or logfile last step (which was the last step) ++ * we don't have to do it again, but otherwise print the final values. ++ */ ++ if (!do_log) ++ { ++ /* Write final value to log since we didn't do anything the last step */ ++ print_ebin_header(fplog, step, step, s_min->s.lambda[efptFEP]); ++ } ++ if (!do_ene || !do_log) ++ { ++ /* Write final energy file entries */ ++ print_ebin(outf->fp_ene, !do_ene, FALSE, FALSE, ++ !do_log ? fplog : NULL, step, step, eprNORMAL, ++ TRUE, mdebin, fcd, &(top_global->groups), &(inputrec->opts)); ++ } ++ } ++ ++ /* Print some stuff... */ ++ if (MASTER(cr)) ++ { ++ fprintf(stderr, "\nwriting lowest energy coordinates.\n"); ++ } ++ ++ /* IMPORTANT! ++ * For accurate normal mode calculation it is imperative that we ++ * store the last conformation into the full precision binary trajectory. ++ * ++ * However, we should only do it if we did NOT already write this step ++ * above (which we did if do_x or do_f was true). ++ */ ++ do_x = !do_per_step(step, inputrec->nstxout); ++ do_f = (inputrec->nstfout > 0 && !do_per_step(step, inputrec->nstfout)); ++ ++ write_em_traj(fplog, cr, outf, do_x, do_f, ftp2fn(efSTO, nfile, fnm), ++ top_global, inputrec, step, ++ s_min, state_global, f_global); ++ ++ fnormn = s_min->fnorm/sqrt(state_global->natoms); ++ ++ if (MASTER(cr)) ++ { ++ print_converged(stderr, CG, inputrec->em_tol, step, converged, number_steps, ++ s_min->epot, s_min->fmax, s_min->a_fmax, fnormn); ++ print_converged(fplog, CG, inputrec->em_tol, step, converged, number_steps, ++ s_min->epot, s_min->fmax, s_min->a_fmax, fnormn); ++ ++ fprintf(fplog, "\nPerformed %d energy evaluations in total.\n", neval); ++ } ++ ++ finish_em(fplog, cr, outf, runtime, wcycle); ++ ++ /* To print the actual number of steps we needed somewhere */ ++ runtime->nsteps_done = step; ++ ++ return 0; ++} /* That's all folks */ ++ ++ ++double do_lbfgs(FILE *fplog, t_commrec *cr, ++ int nfile, const t_filenm fnm[], ++ const output_env_t oenv, gmx_bool bVerbose, gmx_bool bCompact, ++ int nstglobalcomm, ++ gmx_vsite_t *vsite, gmx_constr_t constr, ++ int stepout, ++ t_inputrec *inputrec, ++ gmx_mtop_t *top_global, t_fcdata *fcd, ++ t_state *state, ++ t_mdatoms *mdatoms, ++ t_nrnb *nrnb, gmx_wallcycle_t wcycle, ++ gmx_edsam_t ed, ++ t_forcerec *fr, ++ int repl_ex_nst, int repl_ex_nex, int repl_ex_seed, ++ gmx_membed_t membed, ++ real cpt_period, real max_hours, ++ const char *deviceOptions, ++ unsigned long Flags, ++ gmx_runtime_t *runtime) ++{ ++ static const char *LBFGS = "Low-Memory BFGS Minimizer"; ++ em_state_t ems; ++ gmx_localtop_t *top; ++ gmx_enerdata_t *enerd; ++ rvec *f; ++ gmx_global_stat_t gstat; ++ t_graph *graph; ++ rvec *f_global; ++ int ncorr, nmaxcorr, point, cp, neval, nminstep; ++ double stepsize, gpa, gpb, gpc, tmp, minstep; ++ real *rho, *alpha, *ff, *xx, *p, *s, *lastx, *lastf, **dx, **dg; ++ real *xa, *xb, *xc, *fa, *fb, *fc, *xtmp, *ftmp; ++ real a, b, c, maxdelta, delta; ++ real diag, Epot0, Epot, EpotA, EpotB, EpotC; ++ real dgdx, dgdg, sq, yr, beta; ++ t_mdebin *mdebin; ++ gmx_bool converged, first; ++ rvec mu_tot; ++ real fnorm, fmax; ++ gmx_bool do_log, do_ene, do_x, do_f, foundlower, *frozen; ++ tensor vir, pres; ++ int start, end, number_steps; ++ gmx_mdoutf_t *outf; ++ int i, k, m, n, nfmax, gf, step; ++ int mdof_flags; ++ /* not used */ ++ real terminate; ++ ++ if (PAR(cr)) ++ { ++ gmx_fatal(FARGS, "Cannot do parallel L-BFGS Minimization - yet.\n"); ++ } ++ ++ if (NULL != constr) ++ { ++ gmx_fatal(FARGS, "The combination of constraints and L-BFGS minimization is not implemented. Either do not use constraints, or use another minimizer (e.g. steepest descent)."); ++ } ++ ++ n = 3*state->natoms; ++ nmaxcorr = inputrec->nbfgscorr; ++ ++ /* Allocate memory */ ++ /* Use pointers to real so we dont have to loop over both atoms and ++ * dimensions all the time... ++ * x/f are allocated as rvec *, so make new x0/f0 pointers-to-real ++ * that point to the same memory. ++ */ ++ snew(xa, n); ++ snew(xb, n); ++ snew(xc, n); ++ snew(fa, n); ++ snew(fb, n); ++ snew(fc, n); ++ snew(frozen, n); ++ ++ snew(p, n); ++ snew(lastx, n); ++ snew(lastf, n); ++ snew(rho, nmaxcorr); ++ snew(alpha, nmaxcorr); ++ ++ snew(dx, nmaxcorr); ++ for (i = 0; i < nmaxcorr; i++) ++ { ++ snew(dx[i], n); ++ } ++ ++ snew(dg, nmaxcorr); ++ for (i = 0; i < nmaxcorr; i++) ++ { ++ snew(dg[i], n); ++ } ++ ++ step = 0; ++ neval = 0; ++ ++ /* Init em */ ++ init_em(fplog, LBFGS, cr, inputrec, ++ state, top_global, &ems, &top, &f, &f_global, ++ nrnb, mu_tot, fr, &enerd, &graph, mdatoms, &gstat, vsite, constr, ++ nfile, fnm, &outf, &mdebin); ++ /* Do_lbfgs is not completely updated like do_steep and do_cg, ++ * so we free some memory again. ++ */ ++ sfree(ems.s.x); ++ sfree(ems.f); ++ ++ xx = (real *)state->x; ++ ff = (real *)f; ++ ++ start = mdatoms->start; ++ end = mdatoms->homenr + start; ++ ++ /* Print to log file */ ++ print_em_start(fplog, cr, runtime, wcycle, LBFGS); ++ ++ do_log = do_ene = do_x = do_f = TRUE; ++ ++ /* Max number of steps */ ++ number_steps = inputrec->nsteps; ++ ++ /* Create a 3*natoms index to tell whether each degree of freedom is frozen */ ++ gf = 0; ++ for (i = start; i < end; i++) ++ { ++ if (mdatoms->cFREEZE) ++ { ++ gf = mdatoms->cFREEZE[i]; ++ } ++ for (m = 0; m < DIM; m++) ++ { ++ frozen[3*i+m] = inputrec->opts.nFreeze[gf][m]; ++ } ++ } ++ if (MASTER(cr)) ++ { ++ sp_header(stderr, LBFGS, inputrec->em_tol, number_steps); ++ } ++ if (fplog) ++ { ++ sp_header(fplog, LBFGS, inputrec->em_tol, number_steps); ++ } ++ ++ if (vsite) ++ { ++ construct_vsites(fplog, vsite, state->x, nrnb, 1, NULL, ++ top->idef.iparams, top->idef.il, ++ fr->ePBC, fr->bMolPBC, graph, cr, state->box); ++ } ++ ++ /* Call the force routine and some auxiliary (neighboursearching etc.) */ ++ /* do_force always puts the charge groups in the box and shifts again ++ * We do not unshift, so molecules are always whole ++ */ ++ neval++; ++ ems.s.x = state->x; ++ ems.f = f; ++ evaluate_energy(fplog, bVerbose, cr, ++ state, top_global, &ems, top, ++ inputrec, nrnb, wcycle, gstat, ++ vsite, constr, fcd, graph, mdatoms, fr, ++ mu_tot, enerd, vir, pres, -1, TRUE); ++ where(); ++ ++ if (MASTER(cr)) ++ { ++ /* Copy stuff to the energy bin for easy printing etc. */ ++ upd_mdebin(mdebin, FALSE, FALSE, (double)step, ++ mdatoms->tmass, enerd, state, inputrec->fepvals, inputrec->expandedvals, state->box, ++ NULL, NULL, vir, pres, NULL, mu_tot, constr); ++ ++ print_ebin_header(fplog, step, step, state->lambda[efptFEP]); ++ print_ebin(outf->fp_ene, TRUE, FALSE, FALSE, fplog, step, step, eprNORMAL, ++ TRUE, mdebin, fcd, &(top_global->groups), &(inputrec->opts)); ++ } ++ where(); ++ ++ /* This is the starting energy */ ++ Epot = enerd->term[F_EPOT]; ++ ++ fnorm = ems.fnorm; ++ fmax = ems.fmax; ++ nfmax = ems.a_fmax; ++ ++ /* Set the initial step. ++ * since it will be multiplied by the non-normalized search direction ++ * vector (force vector the first time), we scale it by the ++ * norm of the force. ++ */ ++ ++ if (MASTER(cr)) ++ { ++ fprintf(stderr, "Using %d BFGS correction steps.\n\n", nmaxcorr); ++ fprintf(stderr, " F-max = %12.5e on atom %d\n", fmax, nfmax+1); ++ fprintf(stderr, " F-Norm = %12.5e\n", fnorm/sqrt(state->natoms)); ++ fprintf(stderr, "\n"); ++ /* and copy to the log file too... */ ++ fprintf(fplog, "Using %d BFGS correction steps.\n\n", nmaxcorr); ++ fprintf(fplog, " F-max = %12.5e on atom %d\n", fmax, nfmax+1); ++ fprintf(fplog, " F-Norm = %12.5e\n", fnorm/sqrt(state->natoms)); ++ fprintf(fplog, "\n"); ++ } ++ ++ point = 0; ++ for (i = 0; i < n; i++) ++ { ++ if (!frozen[i]) ++ { ++ dx[point][i] = ff[i]; /* Initial search direction */ ++ } ++ else ++ { ++ dx[point][i] = 0; ++ } ++ } ++ ++ stepsize = 1.0/fnorm; ++ converged = FALSE; ++ ++ /* Start the loop over BFGS steps. ++ * Each successful step is counted, and we continue until ++ * we either converge or reach the max number of steps. ++ */ ++ ++ ncorr = 0; ++ ++ /* Set the gradient from the force */ ++ converged = FALSE; ++ for (step = 0; (number_steps < 0 || (number_steps >= 0 && step <= number_steps)) && !converged; step++) ++ { ++ ++ /* Write coordinates if necessary */ ++ do_x = do_per_step(step, inputrec->nstxout); ++ do_f = do_per_step(step, inputrec->nstfout); ++ ++ mdof_flags = 0; ++ if (do_x) ++ { ++ mdof_flags |= MDOF_X; ++ } ++ ++ if (do_f) ++ { ++ mdof_flags |= MDOF_F; ++ } ++ ++ write_traj(fplog, cr, outf, mdof_flags, ++ top_global, step, (real)step, state, state, f, f, NULL, NULL); ++ ++ /* Do the linesearching in the direction dx[point][0..(n-1)] */ ++ ++ /* pointer to current direction - point=0 first time here */ ++ s = dx[point]; ++ ++ /* calculate line gradient */ ++ for (gpa = 0, i = 0; i < n; i++) ++ { ++ gpa -= s[i]*ff[i]; ++ } ++ ++ /* Calculate minimum allowed stepsize, before the average (norm) ++ * relative change in coordinate is smaller than precision ++ */ ++ for (minstep = 0, i = 0; i < n; i++) ++ { ++ tmp = fabs(xx[i]); ++ if (tmp < 1.0) ++ { ++ tmp = 1.0; ++ } ++ tmp = s[i]/tmp; ++ minstep += tmp*tmp; ++ } ++ minstep = GMX_REAL_EPS/sqrt(minstep/n); ++ ++ if (stepsize < minstep) ++ { ++ converged = TRUE; ++ break; ++ } ++ ++ /* Store old forces and coordinates */ ++ for (i = 0; i < n; i++) ++ { ++ lastx[i] = xx[i]; ++ lastf[i] = ff[i]; ++ } ++ Epot0 = Epot; ++ ++ first = TRUE; ++ ++ for (i = 0; i < n; i++) ++ { ++ xa[i] = xx[i]; ++ } ++ ++ /* Take a step downhill. ++ * In theory, we should minimize the function along this direction. ++ * That is quite possible, but it turns out to take 5-10 function evaluations ++ * for each line. However, we dont really need to find the exact minimum - ++ * it is much better to start a new BFGS step in a modified direction as soon ++ * as we are close to it. This will save a lot of energy evaluations. ++ * ++ * In practice, we just try to take a single step. ++ * If it worked (i.e. lowered the energy), we increase the stepsize but ++ * the continue straight to the next BFGS step without trying to find any minimum. ++ * If it didn't work (higher energy), there must be a minimum somewhere between ++ * the old position and the new one. ++ * ++ * Due to the finite numerical accuracy, it turns out that it is a good idea ++ * to even accept a SMALL increase in energy, if the derivative is still downhill. ++ * This leads to lower final energies in the tests I've done. / Erik ++ */ ++ foundlower = FALSE; ++ EpotA = Epot0; ++ a = 0.0; ++ c = a + stepsize; /* reference position along line is zero */ ++ ++ /* Check stepsize first. We do not allow displacements ++ * larger than emstep. ++ */ ++ do ++ { ++ c = a + stepsize; ++ maxdelta = 0; ++ for (i = 0; i < n; i++) ++ { ++ delta = c*s[i]; ++ if (delta > maxdelta) ++ { ++ maxdelta = delta; ++ } ++ } ++ if (maxdelta > inputrec->em_stepsize) ++ { ++ stepsize *= 0.1; ++ } ++ } ++ while (maxdelta > inputrec->em_stepsize); ++ ++ /* Take a trial step */ ++ for (i = 0; i < n; i++) ++ { ++ xc[i] = lastx[i] + c*s[i]; ++ } ++ ++ neval++; ++ /* Calculate energy for the trial step */ ++ ems.s.x = (rvec *)xc; ++ ems.f = (rvec *)fc; ++ evaluate_energy(fplog, bVerbose, cr, ++ state, top_global, &ems, top, ++ inputrec, nrnb, wcycle, gstat, ++ vsite, constr, fcd, graph, mdatoms, fr, ++ mu_tot, enerd, vir, pres, step, FALSE); ++ EpotC = ems.epot; ++ ++ /* Calc derivative along line */ ++ for (gpc = 0, i = 0; i < n; i++) ++ { ++ gpc -= s[i]*fc[i]; /* f is negative gradient, thus the sign */ ++ } ++ /* Sum the gradient along the line across CPUs */ ++ if (PAR(cr)) ++ { ++ gmx_sumd(1, &gpc, cr); ++ } ++ ++ /* This is the max amount of increase in energy we tolerate */ ++ tmp = sqrt(GMX_REAL_EPS)*fabs(EpotA); ++ ++ /* Accept the step if the energy is lower, or if it is not significantly higher ++ * and the line derivative is still negative. ++ */ ++ if (EpotC < EpotA || (gpc < 0 && EpotC < (EpotA+tmp))) ++ { ++ foundlower = TRUE; ++ /* Great, we found a better energy. Increase step for next iteration ++ * if we are still going down, decrease it otherwise ++ */ ++ if (gpc < 0) ++ { ++ stepsize *= 1.618034; /* The golden section */ ++ } ++ else ++ { ++ stepsize *= 0.618034; /* 1/golden section */ ++ } ++ } ++ else ++ { ++ /* New energy is the same or higher. We will have to do some work ++ * to find a smaller value in the interval. Take smaller step next time! ++ */ ++ foundlower = FALSE; ++ stepsize *= 0.618034; ++ } ++ ++ /* OK, if we didn't find a lower value we will have to locate one now - there must ++ * be one in the interval [a=0,c]. ++ * The same thing is valid here, though: Don't spend dozens of iterations to find ++ * the line minimum. We try to interpolate based on the derivative at the endpoints, ++ * and only continue until we find a lower value. In most cases this means 1-2 iterations. ++ * ++ * I also have a safeguard for potentially really patological functions so we never ++ * take more than 20 steps before we give up ... ++ * ++ * If we already found a lower value we just skip this step and continue to the update. ++ */ ++ ++ if (!foundlower) ++ { ++ ++ nminstep = 0; ++ do ++ { ++ /* Select a new trial point. ++ * If the derivatives at points a & c have different sign we interpolate to zero, ++ * otherwise just do a bisection. ++ */ ++ ++ if (gpa < 0 && gpc > 0) ++ { ++ b = a + gpa*(a-c)/(gpc-gpa); ++ } ++ else ++ { ++ b = 0.5*(a+c); ++ } ++ ++ /* safeguard if interpolation close to machine accuracy causes errors: ++ * never go outside the interval ++ */ ++ if (b <= a || b >= c) ++ { ++ b = 0.5*(a+c); ++ } ++ ++ /* Take a trial step */ ++ for (i = 0; i < n; i++) ++ { ++ xb[i] = lastx[i] + b*s[i]; ++ } ++ ++ neval++; ++ /* Calculate energy for the trial step */ ++ ems.s.x = (rvec *)xb; ++ ems.f = (rvec *)fb; ++ evaluate_energy(fplog, bVerbose, cr, ++ state, top_global, &ems, top, ++ inputrec, nrnb, wcycle, gstat, ++ vsite, constr, fcd, graph, mdatoms, fr, ++ mu_tot, enerd, vir, pres, step, FALSE); ++ EpotB = ems.epot; ++ ++ fnorm = ems.fnorm; ++ ++ for (gpb = 0, i = 0; i < n; i++) ++ { ++ gpb -= s[i]*fb[i]; /* f is negative gradient, thus the sign */ ++ ++ } ++ /* Sum the gradient along the line across CPUs */ ++ if (PAR(cr)) ++ { ++ gmx_sumd(1, &gpb, cr); ++ } ++ ++ /* Keep one of the intervals based on the value of the derivative at the new point */ ++ if (gpb > 0) ++ { ++ /* Replace c endpoint with b */ ++ EpotC = EpotB; ++ c = b; ++ gpc = gpb; ++ /* swap coord pointers b/c */ ++ xtmp = xb; ++ ftmp = fb; ++ xb = xc; ++ fb = fc; ++ xc = xtmp; ++ fc = ftmp; ++ } ++ else ++ { ++ /* Replace a endpoint with b */ ++ EpotA = EpotB; ++ a = b; ++ gpa = gpb; ++ /* swap coord pointers a/b */ ++ xtmp = xb; ++ ftmp = fb; ++ xb = xa; ++ fb = fa; ++ xa = xtmp; ++ fa = ftmp; ++ } ++ ++ /* ++ * Stop search as soon as we find a value smaller than the endpoints, ++ * or if the tolerance is below machine precision. ++ * Never run more than 20 steps, no matter what. ++ */ ++ nminstep++; ++ } ++ while ((EpotB > EpotA || EpotB > EpotC) && (nminstep < 20)); ++ ++ if (fabs(EpotB-Epot0) < GMX_REAL_EPS || nminstep >= 20) ++ { ++ /* OK. We couldn't find a significantly lower energy. ++ * If ncorr==0 this was steepest descent, and then we give up. ++ * If not, reset memory to restart as steepest descent before quitting. ++ */ ++ if (ncorr == 0) ++ { ++ /* Converged */ ++ converged = TRUE; ++ break; ++ } ++ else ++ { ++ /* Reset memory */ ++ ncorr = 0; ++ /* Search in gradient direction */ ++ for (i = 0; i < n; i++) ++ { ++ dx[point][i] = ff[i]; ++ } ++ /* Reset stepsize */ ++ stepsize = 1.0/fnorm; ++ continue; ++ } ++ } ++ ++ /* Select min energy state of A & C, put the best in xx/ff/Epot ++ */ ++ if (EpotC < EpotA) ++ { ++ Epot = EpotC; ++ /* Use state C */ ++ for (i = 0; i < n; i++) ++ { ++ xx[i] = xc[i]; ++ ff[i] = fc[i]; ++ } ++ stepsize = c; ++ } ++ else ++ { ++ Epot = EpotA; ++ /* Use state A */ ++ for (i = 0; i < n; i++) ++ { ++ xx[i] = xa[i]; ++ ff[i] = fa[i]; ++ } ++ stepsize = a; ++ } ++ ++ } ++ else ++ { ++ /* found lower */ ++ Epot = EpotC; ++ /* Use state C */ ++ for (i = 0; i < n; i++) ++ { ++ xx[i] = xc[i]; ++ ff[i] = fc[i]; ++ } ++ stepsize = c; ++ } ++ ++ /* Update the memory information, and calculate a new ++ * approximation of the inverse hessian ++ */ ++ ++ /* Have new data in Epot, xx, ff */ ++ if (ncorr < nmaxcorr) ++ { ++ ncorr++; ++ } ++ ++ for (i = 0; i < n; i++) ++ { ++ dg[point][i] = lastf[i]-ff[i]; ++ dx[point][i] *= stepsize; ++ } ++ ++ dgdg = 0; ++ dgdx = 0; ++ for (i = 0; i < n; i++) ++ { ++ dgdg += dg[point][i]*dg[point][i]; ++ dgdx += dg[point][i]*dx[point][i]; ++ } ++ ++ diag = dgdx/dgdg; ++ ++ rho[point] = 1.0/dgdx; ++ point++; ++ ++ if (point >= nmaxcorr) ++ { ++ point = 0; ++ } ++ ++ /* Update */ ++ for (i = 0; i < n; i++) ++ { ++ p[i] = ff[i]; ++ } ++ ++ cp = point; ++ ++ /* Recursive update. First go back over the memory points */ ++ for (k = 0; k < ncorr; k++) ++ { ++ cp--; ++ if (cp < 0) ++ { ++ cp = ncorr-1; ++ } ++ ++ sq = 0; ++ for (i = 0; i < n; i++) ++ { ++ sq += dx[cp][i]*p[i]; ++ } ++ ++ alpha[cp] = rho[cp]*sq; ++ ++ for (i = 0; i < n; i++) ++ { ++ p[i] -= alpha[cp]*dg[cp][i]; ++ } ++ } ++ ++ for (i = 0; i < n; i++) ++ { ++ p[i] *= diag; ++ } ++ ++ /* And then go forward again */ ++ for (k = 0; k < ncorr; k++) ++ { ++ yr = 0; ++ for (i = 0; i < n; i++) ++ { ++ yr += p[i]*dg[cp][i]; ++ } ++ ++ beta = rho[cp]*yr; ++ beta = alpha[cp]-beta; ++ ++ for (i = 0; i < n; i++) ++ { ++ p[i] += beta*dx[cp][i]; ++ } ++ ++ cp++; ++ if (cp >= ncorr) ++ { ++ cp = 0; ++ } ++ } ++ ++ for (i = 0; i < n; i++) ++ { ++ if (!frozen[i]) ++ { ++ dx[point][i] = p[i]; ++ } ++ else ++ { ++ dx[point][i] = 0; ++ } ++ } ++ ++ stepsize = 1.0; ++ ++ /* Test whether the convergence criterion is met */ ++ get_f_norm_max(cr, &(inputrec->opts), mdatoms, f, &fnorm, &fmax, &nfmax); ++ ++ /* Print it if necessary */ ++ if (MASTER(cr)) ++ { ++ if (bVerbose) ++ { ++ fprintf(stderr, "\rStep %d, Epot=%12.6e, Fnorm=%9.3e, Fmax=%9.3e (atom %d)\n", ++ step, Epot, fnorm/sqrt(state->natoms), fmax, nfmax+1); ++ } ++ /* Store the new (lower) energies */ ++ upd_mdebin(mdebin, FALSE, FALSE, (double)step, ++ mdatoms->tmass, enerd, state, inputrec->fepvals, inputrec->expandedvals, state->box, ++ NULL, NULL, vir, pres, NULL, mu_tot, constr); ++ do_log = do_per_step(step, inputrec->nstlog); ++ do_ene = do_per_step(step, inputrec->nstenergy); ++ if (do_log) ++ { ++ print_ebin_header(fplog, step, step, state->lambda[efptFEP]); ++ } ++ print_ebin(outf->fp_ene, do_ene, FALSE, FALSE, ++ do_log ? fplog : NULL, step, step, eprNORMAL, ++ TRUE, mdebin, fcd, &(top_global->groups), &(inputrec->opts)); ++ } ++ ++ /* Stop when the maximum force lies below tolerance. ++ * If we have reached machine precision, converged is already set to true. ++ */ ++ ++ converged = converged || (fmax < inputrec->em_tol); ++ ++ } /* End of the loop */ ++ ++ if (converged) ++ { ++ step--; /* we never took that last step in this case */ ++ ++ } ++ if (fmax > inputrec->em_tol) ++ { ++ if (MASTER(cr)) ++ { ++ warn_step(stderr, inputrec->em_tol, step-1 == number_steps, FALSE); ++ warn_step(fplog, inputrec->em_tol, step-1 == number_steps, FALSE); ++ } ++ converged = FALSE; ++ } ++ ++ /* If we printed energy and/or logfile last step (which was the last step) ++ * we don't have to do it again, but otherwise print the final values. ++ */ ++ if (!do_log) /* Write final value to log since we didn't do anythin last step */ ++ { ++ print_ebin_header(fplog, step, step, state->lambda[efptFEP]); ++ } ++ if (!do_ene || !do_log) /* Write final energy file entries */ ++ { ++ print_ebin(outf->fp_ene, !do_ene, FALSE, FALSE, ++ !do_log ? fplog : NULL, step, step, eprNORMAL, ++ TRUE, mdebin, fcd, &(top_global->groups), &(inputrec->opts)); ++ } ++ ++ /* Print some stuff... */ ++ if (MASTER(cr)) ++ { ++ fprintf(stderr, "\nwriting lowest energy coordinates.\n"); ++ } ++ ++ /* IMPORTANT! ++ * For accurate normal mode calculation it is imperative that we ++ * store the last conformation into the full precision binary trajectory. ++ * ++ * However, we should only do it if we did NOT already write this step ++ * above (which we did if do_x or do_f was true). ++ */ ++ do_x = !do_per_step(step, inputrec->nstxout); ++ do_f = !do_per_step(step, inputrec->nstfout); ++ write_em_traj(fplog, cr, outf, do_x, do_f, ftp2fn(efSTO, nfile, fnm), ++ top_global, inputrec, step, ++ &ems, state, f); ++ ++ if (MASTER(cr)) ++ { ++ print_converged(stderr, LBFGS, inputrec->em_tol, step, converged, ++ number_steps, Epot, fmax, nfmax, fnorm/sqrt(state->natoms)); ++ print_converged(fplog, LBFGS, inputrec->em_tol, step, converged, ++ number_steps, Epot, fmax, nfmax, fnorm/sqrt(state->natoms)); ++ ++ fprintf(fplog, "\nPerformed %d energy evaluations in total.\n", neval); ++ } ++ ++ finish_em(fplog, cr, outf, runtime, wcycle); ++ ++ /* To print the actual number of steps we needed somewhere */ ++ runtime->nsteps_done = step; ++ ++ return 0; ++} /* That's all folks */ ++ ++ ++double do_steep(FILE *fplog, t_commrec *cr, ++ int nfile, const t_filenm fnm[], ++ const output_env_t oenv, gmx_bool bVerbose, gmx_bool bCompact, ++ int nstglobalcomm, ++ gmx_vsite_t *vsite, gmx_constr_t constr, ++ int stepout, ++ t_inputrec *inputrec, ++ gmx_mtop_t *top_global, t_fcdata *fcd, ++ t_state *state_global, ++ t_mdatoms *mdatoms, ++ t_nrnb *nrnb, gmx_wallcycle_t wcycle, ++ gmx_edsam_t ed, ++ t_forcerec *fr, ++ int repl_ex_nst, int repl_ex_nex, int repl_ex_seed, ++ gmx_membed_t membed, ++ real cpt_period, real max_hours, ++ const char *deviceOptions, ++ unsigned long Flags, ++ gmx_runtime_t *runtime) ++{ ++ const char *SD = "Steepest Descents"; ++ em_state_t *s_min, *s_try; ++ rvec *f_global; ++ gmx_localtop_t *top; ++ gmx_enerdata_t *enerd; ++ rvec *f; ++ gmx_global_stat_t gstat; ++ t_graph *graph; ++ real stepsize, constepsize; ++ real ustep, fnormn; ++ gmx_mdoutf_t *outf; ++ t_mdebin *mdebin; ++ gmx_bool bDone, bAbort, do_x, do_f; ++ tensor vir, pres; ++ rvec mu_tot; ++ int nsteps; ++ int count = 0; ++ int steps_accepted = 0; ++ /* not used */ ++ real terminate = 0; ++ ++ s_min = init_em_state(); ++ s_try = init_em_state(); ++ ++ /* Init em and store the local state in s_try */ ++ init_em(fplog, SD, cr, inputrec, ++ state_global, top_global, s_try, &top, &f, &f_global, ++ nrnb, mu_tot, fr, &enerd, &graph, mdatoms, &gstat, vsite, constr, ++ nfile, fnm, &outf, &mdebin); ++ ++ /* Print to log file */ ++ print_em_start(fplog, cr, runtime, wcycle, SD); ++ ++ /* Set variables for stepsize (in nm). This is the largest ++ * step that we are going to make in any direction. ++ */ ++ ustep = inputrec->em_stepsize; ++ stepsize = 0; ++ ++ /* Max number of steps */ ++ nsteps = inputrec->nsteps; ++ ++ if (MASTER(cr)) ++ { ++ /* Print to the screen */ ++ sp_header(stderr, SD, inputrec->em_tol, nsteps); ++ } ++ if (fplog) ++ { ++ sp_header(fplog, SD, inputrec->em_tol, nsteps); ++ } ++ ++ /**** HERE STARTS THE LOOP **** ++ * count is the counter for the number of steps ++ * bDone will be TRUE when the minimization has converged ++ * bAbort will be TRUE when nsteps steps have been performed or when ++ * the stepsize becomes smaller than is reasonable for machine precision ++ */ ++ count = 0; ++ bDone = FALSE; ++ bAbort = FALSE; ++ while (!bDone && !bAbort) ++ { ++ bAbort = (nsteps >= 0) && (count == nsteps); ++ ++ /* set new coordinates, except for first step */ ++ if (count > 0) ++ { ++ do_em_step(cr, inputrec, mdatoms, fr->bMolPBC, ++ s_min, stepsize, s_min->f, s_try, ++ constr, top, nrnb, wcycle, count); ++ } ++ ++ evaluate_energy(fplog, bVerbose, cr, ++ state_global, top_global, s_try, top, ++ inputrec, nrnb, wcycle, gstat, ++ vsite, constr, fcd, graph, mdatoms, fr, ++ mu_tot, enerd, vir, pres, count, count == 0); ++ ++ if (MASTER(cr)) ++ { ++ print_ebin_header(fplog, count, count, s_try->s.lambda[efptFEP]); ++ } ++ ++ if (count == 0) ++ { ++ s_min->epot = s_try->epot + 1; ++ } ++ ++ /* Print it if necessary */ ++ if (MASTER(cr)) ++ { ++ if (bVerbose) ++ { ++ fprintf(stderr, "Step=%5d, Dmax= %6.1e nm, Epot= %12.5e Fmax= %11.5e, atom= %d%c", ++ count, ustep, s_try->epot, s_try->fmax, s_try->a_fmax+1, ++ (s_try->epot < s_min->epot) ? '\n' : '\r'); ++ } ++ ++ if (s_try->epot < s_min->epot) ++ { ++ /* Store the new (lower) energies */ ++ upd_mdebin(mdebin, FALSE, FALSE, (double)count, ++ mdatoms->tmass, enerd, &s_try->s, inputrec->fepvals, inputrec->expandedvals, ++ s_try->s.box, NULL, NULL, vir, pres, NULL, mu_tot, constr); ++ print_ebin(outf->fp_ene, TRUE, ++ do_per_step(steps_accepted, inputrec->nstdisreout), ++ do_per_step(steps_accepted, inputrec->nstorireout), ++ fplog, count, count, eprNORMAL, TRUE, ++ mdebin, fcd, &(top_global->groups), &(inputrec->opts)); ++ fflush(fplog); ++ } ++ } ++ ++ /* Now if the new energy is smaller than the previous... ++ * or if this is the first step! ++ * or if we did random steps! ++ */ ++ ++ if ( (count == 0) || (s_try->epot < s_min->epot) ) ++ { ++ steps_accepted++; ++ ++ /* Test whether the convergence criterion is met... */ ++ bDone = (s_try->fmax < inputrec->em_tol); ++ ++ /* Copy the arrays for force, positions and energy */ ++ /* The 'Min' array always holds the coords and forces of the minimal ++ sampled energy */ ++ swap_em_state(s_min, s_try); ++ if (count > 0) ++ { ++ ustep *= 1.2; ++ } ++ ++ /* Write to trn, if necessary */ ++ do_x = do_per_step(steps_accepted, inputrec->nstxout); ++ do_f = do_per_step(steps_accepted, inputrec->nstfout); ++ write_em_traj(fplog, cr, outf, do_x, do_f, NULL, ++ top_global, inputrec, count, ++ s_min, state_global, f_global); ++ } ++ else ++ { ++ /* If energy is not smaller make the step smaller... */ ++ ustep *= 0.5; ++ ++ if (DOMAINDECOMP(cr) && s_min->s.ddp_count != cr->dd->ddp_count) ++ { ++ /* Reload the old state */ ++ em_dd_partition_system(fplog, count, cr, top_global, inputrec, ++ s_min, top, mdatoms, fr, vsite, constr, ++ nrnb, wcycle); ++ } ++ } ++ ++ /* Determine new step */ ++ stepsize = ustep/s_min->fmax; ++ ++ /* Check if stepsize is too small, with 1 nm as a characteristic length */ ++#ifdef GMX_DOUBLE ++ if (count == nsteps || ustep < 1e-12) ++#else ++ if (count == nsteps || ustep < 1e-6) ++#endif ++ { ++ if (MASTER(cr)) ++ { ++ warn_step(stderr, inputrec->em_tol, count == nsteps, constr != NULL); ++ warn_step(fplog, inputrec->em_tol, count == nsteps, constr != NULL); ++ } ++ bAbort = TRUE; ++ } ++ ++ count++; ++ } /* End of the loop */ ++ ++ /* Print some shit... */ ++ if (MASTER(cr)) ++ { ++ fprintf(stderr, "\nwriting lowest energy coordinates.\n"); ++ } ++ write_em_traj(fplog, cr, outf, TRUE, inputrec->nstfout, ftp2fn(efSTO, nfile, fnm), ++ top_global, inputrec, count, ++ s_min, state_global, f_global); ++ ++ fnormn = s_min->fnorm/sqrt(state_global->natoms); ++ ++ if (MASTER(cr)) ++ { ++ print_converged(stderr, SD, inputrec->em_tol, count, bDone, nsteps, ++ s_min->epot, s_min->fmax, s_min->a_fmax, fnormn); ++ print_converged(fplog, SD, inputrec->em_tol, count, bDone, nsteps, ++ s_min->epot, s_min->fmax, s_min->a_fmax, fnormn); ++ } ++ ++ finish_em(fplog, cr, outf, runtime, wcycle); ++ ++ /* To print the actual number of steps we needed somewhere */ ++ inputrec->nsteps = count; ++ ++ runtime->nsteps_done = count; ++ ++ return 0; ++} /* That's all folks */ ++ ++ ++double do_nm(FILE *fplog, t_commrec *cr, ++ int nfile, const t_filenm fnm[], ++ const output_env_t oenv, gmx_bool bVerbose, gmx_bool bCompact, ++ int nstglobalcomm, ++ gmx_vsite_t *vsite, gmx_constr_t constr, ++ int stepout, ++ t_inputrec *inputrec, ++ gmx_mtop_t *top_global, t_fcdata *fcd, ++ t_state *state_global, ++ t_mdatoms *mdatoms, ++ t_nrnb *nrnb, gmx_wallcycle_t wcycle, ++ gmx_edsam_t ed, ++ t_forcerec *fr, ++ int repl_ex_nst, int repl_ex_nex, int repl_ex_seed, ++ gmx_membed_t membed, ++ real cpt_period, real max_hours, ++ const char *deviceOptions, ++ unsigned long Flags, ++ gmx_runtime_t *runtime) ++{ ++ const char *NM = "Normal Mode Analysis"; ++ gmx_mdoutf_t *outf; ++ int natoms, atom, d; ++ int nnodes, node; ++ rvec *f_global; ++ gmx_localtop_t *top; ++ gmx_enerdata_t *enerd; ++ rvec *f; ++ gmx_global_stat_t gstat; ++ t_graph *graph; ++ real t, t0, lambda, lam0; ++ gmx_bool bNS; ++ tensor vir, pres; ++ rvec mu_tot; ++ rvec *fneg, *dfdx; ++ gmx_bool bSparse; /* use sparse matrix storage format */ ++ size_t sz=0; ++ gmx_sparsematrix_t * sparse_matrix = NULL; ++ real * full_matrix = NULL; ++ em_state_t * state_work; ++ ++ /* added with respect to mdrun */ ++ int i, j, k, row, col; ++ real der_range = 10.0*sqrt(GMX_REAL_EPS); ++ real x_min; ++ real fnorm, fmax; ++ ++ if (constr != NULL) ++ { ++ gmx_fatal(FARGS, "Constraints present with Normal Mode Analysis, this combination is not supported"); ++ } ++ ++ state_work = init_em_state(); ++ ++ /* Init em and store the local state in state_minimum */ ++ init_em(fplog, NM, cr, inputrec, ++ state_global, top_global, state_work, &top, ++ &f, &f_global, ++ nrnb, mu_tot, fr, &enerd, &graph, mdatoms, &gstat, vsite, constr, ++ nfile, fnm, &outf, NULL); ++ ++ natoms = top_global->natoms; ++ snew(fneg, natoms); ++ snew(dfdx, natoms); ++ ++#ifndef GMX_DOUBLE ++ if (MASTER(cr)) ++ { ++ fprintf(stderr, ++ "NOTE: This version of Gromacs has been compiled in single precision,\n" ++ " which MIGHT not be accurate enough for normal mode analysis.\n" ++ " Gromacs now uses sparse matrix storage, so the memory requirements\n" ++ " are fairly modest even if you recompile in double precision.\n\n"); ++ } ++#endif ++ ++ /* Check if we can/should use sparse storage format. ++ * ++ * Sparse format is only useful when the Hessian itself is sparse, which it ++ * will be when we use a cutoff. ++ * For small systems (n<1000) it is easier to always use full matrix format, though. ++ */ ++ if (EEL_FULL(fr->eeltype) || fr->rlist == 0.0) ++ { ++ md_print_info(cr, fplog, "Non-cutoff electrostatics used, forcing full Hessian format.\n"); ++ bSparse = FALSE; ++ } ++ else if (top_global->natoms < 1000) ++ { ++ md_print_info(cr, fplog, "Small system size (N=%d), using full Hessian format.\n", top_global->natoms); ++ bSparse = FALSE; ++ } ++ else ++ { ++ md_print_info(cr, fplog, "Using compressed symmetric sparse Hessian format.\n"); ++ bSparse = TRUE; ++ } ++ ++ if (MASTER(cr)) ++ { ++ sz = DIM*top_global->natoms; ++ ++ fprintf(stderr, "Allocating Hessian memory...\n\n"); ++ ++ if (bSparse) ++ { ++ sparse_matrix = gmx_sparsematrix_init(sz); ++ sparse_matrix->compressed_symmetric = TRUE; ++ } ++ else ++ { ++ snew(full_matrix, sz*sz); ++ } ++ } ++ ++ /* Initial values */ ++ t0 = inputrec->init_t; ++ lam0 = inputrec->fepvals->init_lambda; ++ t = t0; ++ lambda = lam0; ++ ++ init_nrnb(nrnb); ++ ++ where(); ++ ++ /* Write start time and temperature */ ++ print_em_start(fplog, cr, runtime, wcycle, NM); ++ ++ /* fudge nr of steps to nr of atoms */ ++ inputrec->nsteps = natoms*2; ++ ++ if (MASTER(cr)) ++ { ++ fprintf(stderr, "starting normal mode calculation '%s'\n%d steps.\n\n", ++ *(top_global->name), (int)inputrec->nsteps); ++ } ++ ++ nnodes = cr->nnodes; ++ ++ /* Make evaluate_energy do a single node force calculation */ ++ cr->nnodes = 1; ++ evaluate_energy(fplog, bVerbose, cr, ++ state_global, top_global, state_work, top, ++ inputrec, nrnb, wcycle, gstat, ++ vsite, constr, fcd, graph, mdatoms, fr, ++ mu_tot, enerd, vir, pres, -1, TRUE); ++ cr->nnodes = nnodes; ++ ++ /* if forces are not small, warn user */ ++ get_state_f_norm_max(cr, &(inputrec->opts), mdatoms, state_work); ++ ++ md_print_info(cr, fplog, "Maximum force:%12.5e\n", state_work->fmax); ++ if (state_work->fmax > 1.0e-3) ++ { ++ md_print_info(cr, fplog, ++ "The force is probably not small enough to " ++ "ensure that you are at a minimum.\n" ++ "Be aware that negative eigenvalues may occur\n" ++ "when the resulting matrix is diagonalized.\n\n"); ++ } ++ ++ /*********************************************************** ++ * ++ * Loop over all pairs in matrix ++ * ++ * do_force called twice. Once with positive and ++ * once with negative displacement ++ * ++ ************************************************************/ ++ ++ /* Steps are divided one by one over the nodes */ ++ for (atom = cr->nodeid; atom < natoms; atom += nnodes) ++ { ++ ++ for (d = 0; d < DIM; d++) ++ { ++ x_min = state_work->s.x[atom][d]; ++ ++ state_work->s.x[atom][d] = x_min - der_range; ++ ++ /* Make evaluate_energy do a single node force calculation */ ++ cr->nnodes = 1; ++ evaluate_energy(fplog, bVerbose, cr, ++ state_global, top_global, state_work, top, ++ inputrec, nrnb, wcycle, gstat, ++ vsite, constr, fcd, graph, mdatoms, fr, ++ mu_tot, enerd, vir, pres, atom*2, FALSE); ++ ++ for (i = 0; i < natoms; i++) ++ { ++ copy_rvec(state_work->f[i], fneg[i]); ++ } ++ ++ state_work->s.x[atom][d] = x_min + der_range; ++ ++ evaluate_energy(fplog, bVerbose, cr, ++ state_global, top_global, state_work, top, ++ inputrec, nrnb, wcycle, gstat, ++ vsite, constr, fcd, graph, mdatoms, fr, ++ mu_tot, enerd, vir, pres, atom*2+1, FALSE); ++ cr->nnodes = nnodes; ++ ++ /* x is restored to original */ ++ state_work->s.x[atom][d] = x_min; ++ ++ for (j = 0; j < natoms; j++) ++ { ++ for (k = 0; (k < DIM); k++) ++ { ++ dfdx[j][k] = ++ -(state_work->f[j][k] - fneg[j][k])/(2*der_range); ++ } ++ } ++ ++ if (!MASTER(cr)) ++ { ++#ifdef GMX_MPI ++#ifdef GMX_DOUBLE ++#define mpi_type MPI_DOUBLE ++#else ++#define mpi_type MPI_FLOAT ++#endif ++ MPI_Send(dfdx[0], natoms*DIM, mpi_type, MASTERNODE(cr), cr->nodeid, ++ cr->mpi_comm_mygroup); ++#endif ++ } ++ else ++ { ++ for (node = 0; (node < nnodes && atom+node < natoms); node++) ++ { ++ if (node > 0) ++ { ++#ifdef GMX_MPI ++ MPI_Status stat; ++ MPI_Recv(dfdx[0], natoms*DIM, mpi_type, node, node, ++ cr->mpi_comm_mygroup, &stat); ++#undef mpi_type ++#endif ++ } ++ ++ row = (atom + node)*DIM + d; ++ ++ for (j = 0; j < natoms; j++) ++ { ++ for (k = 0; k < DIM; k++) ++ { ++ col = j*DIM + k; ++ ++ if (bSparse) ++ { ++ if (col >= row && dfdx[j][k] != 0.0) ++ { ++ gmx_sparsematrix_increment_value(sparse_matrix, ++ row, col, dfdx[j][k]); ++ } ++ } ++ else ++ { ++ full_matrix[row*sz+col] = dfdx[j][k]; ++ } ++ } ++ } ++ } ++ } ++ ++ if (bVerbose && fplog) ++ { ++ fflush(fplog); ++ } ++ } ++ /* write progress */ ++ if (MASTER(cr) && bVerbose) ++ { ++ fprintf(stderr, "\rFinished step %d out of %d", ++ min(atom+nnodes, natoms), natoms); ++ fflush(stderr); ++ } ++ } ++ ++ if (MASTER(cr)) ++ { ++ fprintf(stderr, "\n\nWriting Hessian...\n"); ++ gmx_mtxio_write(ftp2fn(efMTX, nfile, fnm), sz, sz, full_matrix, sparse_matrix); ++ } ++ ++ finish_em(fplog, cr, outf, runtime, wcycle); ++ ++ runtime->nsteps_done = natoms*2; ++ ++ return 0; ++} diff --git a/g/GROMACS/gromacs-5.0.4-plumed-2.1.3-mpi.patch b/g/GROMACS/gromacs-5.0.4-plumed-2.1.3-mpi.patch new file mode 100644 index 00000000..50df9639 --- /dev/null +++ b/g/GROMACS/gromacs-5.0.4-plumed-2.1.3-mpi.patch @@ -0,0 +1,9575 @@ +diff --git a/Plumed.cmake b/Plumed.cmake +new file mode 100644 +index 0000000..01472f0 +--- /dev/null ++++ b/Plumed.cmake +@@ -0,0 +1,3 @@ ++# PLUMED: shared installation ++set(PLUMED_LOAD /apps/all/PLUMED/2.1.3-foss-2015g/lib/plumed///src/lib/libplumed.so -ldl ) ++set(PLUMED_DEPENDENCIES /apps/all/PLUMED/2.1.3-foss-2015g/lib/plumed///src/lib/libplumed.so) +diff --git a/Plumed.h b/Plumed.h +new file mode 100644 +index 0000000..16da74a +--- /dev/null ++++ b/Plumed.h +@@ -0,0 +1,494 @@ ++/* +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ++ Copyright (c) 2011-2014 The plumed team ++ (see the PEOPLE file at the root of the distribution for a list of names) ++ ++ See http://www.plumed-code.org for more information. ++ ++ This file is part of plumed, version 2. ++ ++ plumed 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, either version 3 of the License, or ++ (at your option) any later version. ++ ++ plumed 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 Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public License ++ along with plumed. If not, see . +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ */ ++#ifndef __PLUMED_wrapper_Plumed_h ++#define __PLUMED_wrapper_Plumed_h ++ ++/** ++\page ReferencePlumedH Reference for interfacing MD codes with PLUMED ++ ++ Plumed.h and Plumed.c contain the external plumed interface, which is used to ++ integrate it with MD engines. This interface is very general, and is expected ++ not to change across plumed versions. Plumed.c also implements a dummy version ++ of the interface, so as to allow a code to be fully linked even if the plumed ++ library is not available yet. These files could be directly included in the official ++ host MD distribution. In this manner, it will be sufficient to link the plumed ++ library at link time (on all systems) or directly at runtime (on system where ++ dynamic loading is enabled) to include plumed features. ++ ++ Why is Plumed.c written in C and not C++? The reason is that the resulting Plumed.o ++ needs to be linked with the host MD code immediately (whereas the rest of plumed ++ could be linked a posteriori). Imagine the MD code is written in FORTRAN: when we ++ link the Plumed.o file we would like not to need any C++ library linked. In this ++ manner, we do not need to know which C++ compiler will be used to compile plumed. ++ The C++ library is only linked to the "rest" of plumed, which actually use it. ++ Anyway, Plumed.c is written in such a manner to allow its compilation also in C++ ++ (C++ is a bit stricter than C; compatibility is checked when PlumedStatic.cpp, ++ which basically includes Plumed.c, is compiled with the C++ compiler). This will ++ allow e.g. MD codes written in C++ to just incorporate Plumed.c (maybe renamed into ++ Plumed.cpp), without the need of configuring a plain C compiler. ++ ++ Plumed interface can be used from C, C++ and FORTRAN. Everything concerning plumed ++ is hidden inside a single object type, which is described in C by a structure ++ (struct \ref plumed), in C++ by a class (PLMD::Plumed) and in FORTRAN by a ++ fixed-length string (CHARACTER(LEN=32)). Obviously C++ can use both struct ++ and class interfaces, but the first should be preferred. The reference interface ++ is the C one, whereas FORTRAN and C++ interfaces are implemented as wrappers ++ around it. ++ ++ In the C++ interface, all the routines are implemented as methods of PLMD::Plumed. ++ In the C and FORTRAN interfaces, all the routines are named plumed_*, to ++ avoid potential name clashes. Notice that the entire plumed library ++ is implemented in C++, and it is hidden inside the PLMD namespace. ++ ++ Handlers to the plumed object can be converted among different representations, ++ to allow inter-operability among languages. In C, there are tools to convert ++ to/from FORTRAN, whereas in C++ there are tools to convert to/from FORTRAN and C. ++ ++ These handlers only contain a pointer to the real structure, so that ++ when a plumed object is brought from one language to another, ++ it brings a reference to the same environment. ++ ++ Moreover, to simplify life in all cases where a single Plumed object is ++ required for the entire simulation (which covers most of the practical ++ applications with conventional MD codes) it is possible to take advantage ++ of a global interface, which is implicitly referring to a unique global instance. ++ The global object should still be initialized and finalized properly. ++ ++ The basic method to send a message to plumed is ++\verbatim ++ (C) plumed_cmd ++ (C++) PLMD::Plumed::cmd ++ (FORTRAN) PLUMED_F_CMD ++\endverbatim ++ ++ To initialize a plumed object, use: ++\verbatim ++ (C) plumed_create ++ (C++) (constructor of PLMD::Plumed) ++ (FORTRAN) PLUMED_F_CREATE ++\endverbatim ++ ++ To finalize it, use ++\verbatim ++ (C) plumed_finalize ++ (C++) (destructor of PLMD::Plumed) ++ (FORTRAN) PLUMED_F_FINALIZE ++\endverbatim ++ ++ To access to the global-object, use ++\verbatim ++ (C) plumed_gcreate, plumed_gfinalize, plumed_gcmd ++ (C++) PLMD::Plumed::gcreate, PLMD::Plumed::gfinalize, PLMD::Plumed::gcmd ++ (FORTRAN) PLUMED_F_GCREATE, PLUMED_F_GFINALIZE, PLUMED_F_GCMD ++\endverbatim ++ ++ To check if the global object has been initialized, use ++\verbatim ++ (C) plumed_ginitialized ++ (C++) PLMD::Plumed::ginitialized ++ (FORTRAN) PLUMED_F_GINITIALIZED ++\endverbatim ++ ++ To check if plumed library is available (this is useful for runtime linking), use ++\verbatim ++ (C) plumed_installed ++ (C++) PLMD::Plumed::installed ++ (FORTRAN) PLUMED_F_INSTALLED ++\endverbatim ++ ++ To convert handlers use ++\verbatim ++ (C) plumed_c2f (C to FORTRAN) ++ (C) plumed_f2c (FORTRAN to C) ++ (C++) Plumed(plumed) constructor (C to C++) ++ (C++) operator plumed() cast (C++ to C) ++ (C++) Plumed(char*) constructor (FORTRAN to C++) ++ (C++) toFortran(char*) (C++ to FORTRAN) ++\endverbatim ++ ++\verbatim ++ FORTRAN interface ++ SUBROUTINE PLUMED_F_INSTALLED(i) ++ INTEGER, INTENT(OUT) :: i ++ SUBROUTINE PLUMED_F_GINITIALIZED(i) ++ INTEGER, INTENT(OUT) :: i ++ SUBROUTINE PLUMED_F_GCREATE() ++ SUBROUTINE PLUMED_F_GCMD(key,val) ++ CHARACTER(LEN=*), INTENT(IN) :: key ++ UNSPECIFIED_TYPE, INTENT(INOUT) :: val(*) ++ SUBROUTINE PLUMED_F_GFINALIZE() ++ SUBROUTINE PLUMED_F_GLOBAL(p) ++ CHARACTER(LEN=32), INTENT(OUT) :: p ++ SUBROUTINE PLUMED_F_CREATE(p) ++ CHARACTER(LEN=32), INTENT(OUT) :: p ++ SUBROUTINE PLUMED_F_CMD(p,key,val) ++ CHARACTER(LEN=32), INTENT(IN) :: p ++ CHARACTER(LEN=*), INTENT(IN) :: key ++ UNSPECIFIED_TYPE, INTENT(INOUT) :: val(*) ++ SUBROUTINE PLUMED_F_FINALIZE(p) ++ CHARACTER(LEN=32), INTENT(IN) :: p ++\endverbatim ++ ++ The main routine is "cmd", which accepts two arguments: ++ key is a string containing the name of the command ++ val is the argument. it is declared const so as to use allow passing const objects, but in practice plumed ++ is going to modify val in several cases (using a const_cast). ++ In some cases val can be omitted: just pass a NULL pointer (in C++, val is optional and can be omitted). ++ The set of possible keys is the real API of the plumed library, and will be expanded with time. ++ New commands will be added, but backward compatibility will be retained as long as possible. ++ ++ To pass plumed a callback function use the following syntax (not available in FORTRAN yet) ++\verbatim ++ plumed_function_holder ff; ++ ff.p=your_function; ++ plumed_cmd(plumed,"xxxx",&ff); ++\endverbatim ++ (this is passing the your_function() function to the "xxxx" command) ++*/ ++ ++#ifdef __cplusplus ++ extern "C" { ++#endif ++ ++/* Generic function pointer */ ++typedef void (*plumed_function_pointer)(void); ++ ++/** ++ \brief Holder for function pointer. ++ ++ To pass plumed a callback function use the following syntax: ++\verbatim ++ plumed_function_holder ff; ++ ff.p=your_function; ++ plumed_cmd(plumed,"xxxx",&ff); ++\endverbatim ++ (this is going to pass the your_function() function to the "xxxx" command) ++*/ ++ ++typedef struct { ++ plumed_function_pointer p; ++} plumed_function_holder; ++ ++/** ++ \brief Main plumed object ++ ++ This is an object containing a Plumed instance, which should be used in ++ the MD engine. It should first be initialized with plumed_create(), ++ then it communicates with the MD engine using plumed_cmd(). Finally, ++ before the termination, it should be deallocated with plumed_finalize(). ++ Its interface is very simple and general, and is expected ++ not to change across plumed versions. See \ref ReferencePlumedH. ++*/ ++typedef struct { ++/** ++ \private ++ \brief Void pointer holding the real PlumedMain structure ++*/ ++ void*p; ++} plumed; ++ ++/** \relates plumed ++ \brief Constructor ++ ++ \return The constructed plumed object ++*/ ++plumed plumed_create(void); ++ ++/** \relates plumed ++ \brief Tells p to execute a command ++ ++ \param p The plumed object on which command is acting ++ \param key The name of the command to be executed ++ \param val The argument. It is declared as const to allow calls like plumed_cmd(p,"A","B"), ++ but for some choice of key it can change the content ++*/ ++void plumed_cmd(plumed p,const char*key,const void*val); ++ ++/** \relates plumed ++ \brief Destructor ++ ++ \param p The plumed object to be deallocated ++*/ ++void plumed_finalize(plumed p); ++ ++/** \relates plumed ++ \brief Check if plumed is installed (for runtime binding) ++ ++ \return 1 if plumed is installed, to 0 otherwise ++*/ ++int plumed_installed(void); ++ ++/** \relates plumed ++ \brief Retrieves an handler to the global structure. ++*/ ++plumed plumed_global(void); ++ ++/** \relates plumed ++ \brief Check if the global interface has been initialized ++ ++ \return 1 if plumed has been initialized, 0 otherwise ++*/ ++int plumed_ginitialized(void); ++ ++/* global C interface, working on a global object */ ++ ++/** \relates plumed ++ \brief Constructor for the global interface. ++ ++ \note Equivalent to plumed_create(), but initialize a static global plumed object ++*/ ++void plumed_gcreate(void); ++ ++/** \relates plumed ++ \brief Tells to the global interface to execute a command. ++ ++ \param key The name of the command to be executed ++ \param val The argument. It is declared as const to allow calls like plumed_gcmd("A","B"), ++ but for some choice of key it can change the content ++ ++ \note Equivalent to plumed_cmd(), but skipping the plumed argument ++*/ ++void plumed_gcmd(const char* key,const void* val); ++ ++/** \relates plumed ++ \brief Destructor for the global interface. ++ ++ \note Equivalent to plumed_finalize(), but skipping the plumed argument ++*/ ++void plumed_gfinalize(void); ++ ++/* routines to convert char handler from/to plumed objects */ ++ ++/** \related plumed ++ \brief Converts a C handler to a FORTRAN handler ++ ++ \param p The C handler ++ \param c The FORTRAN handler (a char[32]) ++*/ ++void plumed_c2f(plumed p,char* c); ++ ++/** \related plumed ++ \brief Converts a FORTRAN handler to a C handler ++ \param c The FORTRAN handler (a char[32]) ++ \return The C handler ++*/ ++plumed plumed_f2c(const char* c); ++ ++#ifdef __cplusplus ++ } ++#endif ++ ++#ifdef __cplusplus ++ ++/* this is to include the NULL pointer */ ++#include ++ ++/* C++ interface is hidden in PLMD namespace (same as plumed library) */ ++namespace PLMD { ++ ++/** ++ C++ wrapper for \ref plumed. ++ ++ This class provides a C++ interface to PLUMED. ++*/ ++ ++class Plumed{ ++ plumed main; ++/** ++ keeps track if the object was created from scratch using ++ the defaults destructor (cloned=false) or if it was imported ++ from C or FORTRAN (cloned-true). In the latter case, the ++ plumed_finalize() method is not called when destructing the object, ++ since it is expected to be finalized in the C/FORTRAN code ++*/ ++ bool cloned; ++public: ++/** ++ Check if plumed is installed (for runtime binding) ++ \return true if plumed is installed, false otherwise ++*/ ++ static bool installed(); ++/** ++ Check if global-plumed has been initialized ++ \return true if global plumed object (see global()) is initialized (i.e. if gcreate() has been ++ called), false otherwise. ++*/ ++ static bool ginitialized(); ++/** ++ Initialize global-plumed ++*/ ++ static void gcreate(); ++/** ++ Send a command to global-plumed ++ \param key The name of the command to be executed ++ \param val The argument. It is declared as const to allow calls like gcmd("A","B"), ++ but for some choice of key it can change the content ++*/ ++ static void gcmd(const char* key,const void* val); ++/** ++ Finalize global-plumed ++*/ ++ static void gfinalize(); ++/** ++ Returns the Plumed global object ++ \return The Plumed global object ++*/ ++ static Plumed global(); ++/** ++ Constructor ++*/ ++ Plumed(); ++/** ++ Clone a Plumed object from a FORTRAN char* handler ++ \param c The FORTRAN handler (a char[32]). ++ ++ \attention The Plumed object created in this manner ++ will not finalize the corresponding plumed structure. ++ It is expected that the FORTRAN code calls plumed_c_finalize for it ++*/ ++ Plumed(const char*c); ++/** ++ Clone a Plumed object from a C plumed structure ++ \param p The C plumed structure. ++ ++ \attention The Plumed object created in this manner ++ will not finalize the corresponding plumed structure. ++ It is expected that the C code calls plumed_finalize for it ++*/ ++ Plumed(plumed p); ++private: ++/** Copy constructor is disabled (private and unimplemented) ++ The problem here is that after copying it will not be clear who is ++ going to finalize the corresponding plumed structure. ++*/ ++ Plumed(const Plumed&); ++/** Assignment operator is disabled (private and unimplemented) ++ The problem here is that after copying it will not be clear who is ++ going to finalize the corresponding plumed structure. ++*/ ++ Plumed&operator=(const Plumed&); ++public: ++/** ++ Retrieve the C plumed structure for this object ++*/ ++ operator plumed()const; ++/** ++ Retrieve a FORTRAN handler for this object ++ \param c The FORTRAN handler (a char[32]). ++*/ ++ void toFortran(char*c)const; ++/** ++ Send a command to this plumed object ++ \param key The name of the command to be executed ++ \param val The argument. It is declared as const to allow calls like p.cmd("A","B"), ++ but for some choice of key it can change the content ++*/ ++ void cmd(const char*key,const void*val=NULL); ++/** ++ Destructor ++ ++ Destructor is virtual so as to allow correct inheritance from Plumed object. ++ To avoid linking problems with g++, I specify "inline" also here (in principle ++ it should be enough to specify it down in the definition of the function, but ++ for some reason that I do not understand g++ does not inline it properly in that ++ case and complains when Plumed.h is included but Plumed.o is not linked. Anyway, the ++ way it is done here seems to work properly). ++*/ ++ inline virtual ~Plumed(); ++}; ++ ++/* All methods are inlined so as to avoid the compilation of an extra c++ file */ ++ ++inline ++bool Plumed::installed(){ ++ return plumed_installed(); ++} ++ ++inline ++Plumed::Plumed(): ++ main(plumed_create()), ++ cloned(false) ++{} ++ ++inline ++Plumed::Plumed(const char*c): ++ main(plumed_f2c(c)), ++ cloned(true) ++{} ++ ++inline ++Plumed::Plumed(plumed p): ++ main(p), ++ cloned(true) ++{} ++ ++inline ++Plumed::operator plumed()const{ ++ return main; ++} ++ ++inline ++void Plumed::toFortran(char*c)const{ ++ plumed_c2f(main,c); ++} ++ ++inline ++void Plumed::cmd(const char*key,const void*val){ ++ plumed_cmd(main,key,val); ++} ++ ++inline ++Plumed::~Plumed(){ ++ if(!cloned)plumed_finalize(main); ++} ++ ++inline ++bool Plumed::ginitialized(){ ++ return plumed_ginitialized(); ++} ++ ++inline ++void Plumed::gcreate(){ ++ plumed_gcreate(); ++} ++ ++inline ++void Plumed::gcmd(const char* key,const void* val){ ++ plumed_gcmd(key,val); ++} ++ ++inline ++void Plumed::gfinalize(){ ++ plumed_gfinalize(); ++} ++ ++inline ++Plumed Plumed::global(){ ++ return plumed_global(); ++} ++ ++} ++ ++#endif ++ ++ ++#endif +diff --git a/Plumed.inc b/Plumed.inc +new file mode 100644 +index 0000000..e1e29a7 +--- /dev/null ++++ b/Plumed.inc +@@ -0,0 +1,3 @@ ++# PLUMED: shared installation ++PLUMED_LOAD= /apps/all/PLUMED/2.1.3-foss-2015g/lib/plumed///src/lib/libplumed.so -ldl ++PLUMED_DEPENDENCIES= /apps/all/PLUMED/2.1.3-foss-2015g/lib/plumed///src/lib/libplumed.so +diff --git a/src/gromacs/CMakeLists.txt b/src/gromacs/CMakeLists.txt +index 6db37e2..cc97aa8 100644 +--- a/src/gromacs/CMakeLists.txt ++++ b/src/gromacs/CMakeLists.txt +@@ -32,6 +32,8 @@ + # To help us fund GROMACS development, we humbly ask that you cite + # the research papers on the package. Check out http://www.gromacs.org. + ++include(${CMAKE_SOURCE_DIR}/Plumed.cmake) ++ + set(LIBGROMACS_SOURCES) + + function (gmx_install_headers DESTINATION) +@@ -189,7 +191,7 @@ target_link_libraries(libgromacs + ${TNG_IO_LIBRARIES} + ${FFT_LIBRARIES} ${LINEAR_ALGEBRA_LIBRARIES} + ${XML_LIBRARIES} +- ${THREAD_LIB} ${GMX_SHARED_LINKER_FLAGS}) ++ ${THREAD_LIB} ${GMX_SHARED_LINKER_FLAGS} ${PLUMED_LOAD}) + set_target_properties(libgromacs PROPERTIES + OUTPUT_NAME "gromacs${GMX_LIBS_SUFFIX}" + SOVERSION ${LIBRARY_SOVERSION} +diff --git a/src/gromacs/CMakeLists.txt.preplumed b/src/gromacs/CMakeLists.txt.preplumed +new file mode 100644 +index 0000000..6db37e2 +--- /dev/null ++++ b/src/gromacs/CMakeLists.txt.preplumed +@@ -0,0 +1,232 @@ ++# ++# This file is part of the GROMACS molecular simulation package. ++# ++# Copyright (c) 2010,2011,2012,2013,2014, by the GROMACS development team, led by ++# Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl, ++# and including many others, as listed in the AUTHORS file in the ++# top-level source directory and at http://www.gromacs.org. ++# ++# GROMACS 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; either version 2.1 ++# of the License, or (at your option) any later version. ++# ++# GROMACS 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 ++# Lesser General Public License for more details. ++# ++# You should have received a copy of the GNU Lesser General Public ++# License along with GROMACS; if not, see ++# http://www.gnu.org/licenses, or write to the Free Software Foundation, ++# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. ++# ++# If you want to redistribute modifications to GROMACS, please ++# consider that scientific software is very special. Version ++# control is crucial - bugs must be traceable. We will be happy to ++# consider code for inclusion in the official distribution, but ++# derived work must not be called official GROMACS. Details are found ++# in the README & COPYING files - if they are missing, get the ++# official version at http://www.gromacs.org. ++# ++# To help us fund GROMACS development, we humbly ask that you cite ++# the research papers on the package. Check out http://www.gromacs.org. ++ ++set(LIBGROMACS_SOURCES) ++ ++function (gmx_install_headers DESTINATION) ++ if (NOT GMX_BUILD_MDRUN_ONLY) ++ if (DESTINATION) ++ set(DESTINATION ${INCL_INSTALL_DIR}/gromacs/${DESTINATION}) ++ else() ++ set(DESTINATION ${INCL_INSTALL_DIR}/gromacs) ++ endif() ++ install(FILES ${ARGN} DESTINATION ${DESTINATION} COMPONENT development) ++ endif() ++endfunction () ++ ++if(GMX_USE_TNG) ++ option(GMX_EXTERNAL_TNG "Use external TNG instead of compiling the version shipped with GROMACS." ++ OFF) ++ # Detect TNG if GMX_EXTERNAL_TNG is explicitly ON ++ if(GMX_EXTERNAL_TNG) ++ find_package(TNG_IO 1.6.0) ++ if(NOT TNG_IO_FOUND) ++ message(FATAL_ERROR ++ "TNG >= 1.6.0 not found. " ++ "You can set GMX_EXTERNAL_TNG=OFF to compile TNG.") ++ endif() ++ include_directories(${TNG_IO_INCLUDE_DIRS}) ++ endif() ++ if(NOT GMX_EXTERNAL_TNG) ++ include(${CMAKE_SOURCE_DIR}/src/external/tng_io/BuildTNG.cmake) ++ tng_get_source_list(TNG_SOURCES TNG_IO_DEFINITIONS) ++ list(APPEND LIBGROMACS_SOURCES ${TNG_SOURCES}) ++ tng_set_source_properties(WITH_ZLIB ${HAVE_ZLIB}) ++ ++ if (HAVE_ZLIB) ++ list(APPEND GMX_EXTRA_LIBRARIES ${ZLIB_LIBRARIES}) ++ include_directories(${ZLIB_INCLUDE_DIRS}) ++ endif() ++ endif() ++else() ++ # We still need to get tng/tng_io_fwd.h from somewhere! ++ include_directories(BEFORE ${CMAKE_SOURCE_DIR}/src/external/tng_io/include) ++endif() ++ ++add_subdirectory(gmxlib) ++add_subdirectory(mdlib) ++add_subdirectory(gmxpreprocess) ++add_subdirectory(commandline) ++add_subdirectory(fft) ++add_subdirectory(linearalgebra) ++add_subdirectory(math) ++add_subdirectory(random) ++add_subdirectory(onlinehelp) ++add_subdirectory(options) ++add_subdirectory(timing) ++add_subdirectory(utility) ++add_subdirectory(fileio) ++add_subdirectory(swap) ++add_subdirectory(essentialdynamics) ++add_subdirectory(pulling) ++add_subdirectory(simd) ++add_subdirectory(imd) ++if (NOT GMX_BUILD_MDRUN_ONLY) ++ add_subdirectory(legacyheaders) ++ add_subdirectory(gmxana) ++ add_subdirectory(statistics) ++ add_subdirectory(analysisdata) ++ add_subdirectory(selection) ++ add_subdirectory(trajectoryanalysis) ++ add_subdirectory(tools) ++endif() ++ ++list(APPEND LIBGROMACS_SOURCES ${GMXLIB_SOURCES} ${MDLIB_SOURCES}) ++ ++# This would be the standard way to include thread_mpi, but ++# we want libgromacs to link the functions directly ++#if(GMX_THREAD_MPI) ++# add_subdirectory(thread_mpi) ++#endif() ++#target_link_libraries(gmx ${GMX_EXTRA_LIBRARIES} ${THREAD_MPI_LIB}) ++ ++tmpi_get_source_list(THREAD_MPI_SOURCES ${CMAKE_SOURCE_DIR}/src/external/thread_mpi/src) ++list(APPEND LIBGROMACS_SOURCES ${THREAD_MPI_SOURCES}) ++ ++file(GLOB LIBGROMACS_HEADERS *.h) ++configure_file(version.h.cmakein version.h) ++gmx_install_headers("" ${LIBGROMACS_HEADERS}) ++gmx_install_headers("" ${CMAKE_CURRENT_BINARY_DIR}/version.h) ++ ++# Add target that generates baseversion-gen.c every time make is run ++# if git version info is requested, or create it statically. ++# This code is here instead of utility/CMakeLists.txt because CMake ++# ignores set_source_file_properties from subdirectories. ++set(GENERATED_VERSION_FILE ++ ${CMAKE_CURRENT_BINARY_DIR}/utility/baseversion-gen.c) ++set(GENERATED_VERSION_FILE_SOURCE ++ ${CMAKE_CURRENT_SOURCE_DIR}/utility/baseversion-gen.c.cmakein) ++if (GMX_GIT_VERSION_INFO) ++ add_custom_target(gmx-version ALL ++ COMMAND ${CMAKE_COMMAND} ++ -D GIT_EXECUTABLE="${GIT_EXECUTABLE}" ++ -D PROJECT_VERSION="${PROJECT_VERSION}" ++ -D PROJECT_SOURCE_DIR="${PROJECT_SOURCE_DIR}" ++ -D VERSION_CMAKEIN=${GENERATED_VERSION_FILE_SOURCE} ++ -D VERSION_OUT=${GENERATED_VERSION_FILE} ++ -P ${CMAKE_SOURCE_DIR}/cmake/gmxGenerateVersionInfo.cmake ++ WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} ++ DEPENDS ${GENERATED_VERSION_FILE_SOURCE} ++ COMMENT "Generating git version information") ++ set_source_files_properties(${GENERATED_VERSION_FILE} ++ PROPERTIES GENERATED true) ++else() ++ set(GMX_PROJECT_VERSION_STR ${PROJECT_VERSION}) ++ configure_file(${GENERATED_VERSION_FILE_SOURCE} ${GENERATED_VERSION_FILE}) ++endif() ++list(APPEND LIBGROMACS_SOURCES ${GENERATED_VERSION_FILE}) ++ ++# apply gcc 4.4.x bug workaround ++if(GMX_USE_GCC44_BUG_WORKAROUND) ++ include(gmxGCC44O3BugWorkaround) ++ gmx_apply_gcc44_bug_workaround("gmxlib/bondfree.c") ++ gmx_apply_gcc44_bug_workaround("mdlib/force.c") ++ gmx_apply_gcc44_bug_workaround("mdlib/constr.c") ++endif() ++ ++add_library(libgromacs ${LIBGROMACS_SOURCES}) ++if (GMX_GIT_VERSION_INFO) ++ add_dependencies(libgromacs gmx-version) ++endif() ++ ++# Recent versions of gcc and clang give warnings on scanner.cpp, which ++# is a generated source file. These are awkward to suppress inline, so ++# we do it in the compilation command (after testing that the compiler ++# supports the suppressions). Setting the properties only works after ++# the related target has been created, e.g. after when the file is ++# used with add_library(). ++include(CheckCXXCompilerFlag) ++check_cxx_compiler_flag(-Wno-unused-parameter HAS_NO_UNUSED_PARAMETER) ++if (HAS_NO_UNUSED_PARAMETER) ++ set(_scanner_cpp_compiler_flags "${_scanner_cpp_compiler_flags} -Wno-unused-parameter") ++endif() ++check_cxx_compiler_flag(-Wno-deprecated-register HAS_NO_DEPRECATED_REGISTER) ++if (HAS_NO_DEPRECATED_REGISTER) ++ set(_scanner_cpp_compiler_flags "${_scanner_cpp_compiler_flags} -Wno-deprecated-register") ++else() ++ check_cxx_compiler_flag(-Wno-deprecated HAS_NO_DEPRECATED) ++ if (HAS_NO_DEPRECATED) ++ set(_scanner_cpp_compiler_flags "${_scanner_cpp_compiler_flags} -Wno-deprecated") ++ endif() ++endif() ++set_source_files_properties(selection/scanner.cpp PROPERTIES COMPILE_FLAGS "${_scanner_cpp_compiler_flags}") ++ ++target_link_libraries(libgromacs ++ ${EXTRAE_LIBRARIES} ++ ${GMX_GPU_LIBRARIES} ++ ${GMX_EXTRA_LIBRARIES} ++ ${TNG_IO_LIBRARIES} ++ ${FFT_LIBRARIES} ${LINEAR_ALGEBRA_LIBRARIES} ++ ${XML_LIBRARIES} ++ ${THREAD_LIB} ${GMX_SHARED_LINKER_FLAGS}) ++set_target_properties(libgromacs PROPERTIES ++ OUTPUT_NAME "gromacs${GMX_LIBS_SUFFIX}" ++ SOVERSION ${LIBRARY_SOVERSION} ++ VERSION ${LIBRARY_VERSION} ++ COMPILE_FLAGS "${OpenMP_C_FLAGS}") ++ ++# Only install the library in mdrun-only mode if it is actually necessary ++# for the binary ++if (NOT GMX_BUILD_MDRUN_ONLY OR BUILD_SHARED_LIBS) ++ install(TARGETS libgromacs ++ LIBRARY DESTINATION ${LIB_INSTALL_DIR} ++ RUNTIME DESTINATION ${BIN_INSTALL_DIR} ++ ARCHIVE DESTINATION ${LIB_INSTALL_DIR} ++ COMPONENT libraries) ++endif() ++ ++if (NOT GMX_BUILD_MDRUN_ONLY) ++ configure_file(${CMAKE_CURRENT_SOURCE_DIR}/libgromacs.pc.cmakein ++ ${CMAKE_CURRENT_BINARY_DIR}/libgromacs.pc @ONLY) ++ install(FILES ${CMAKE_CURRENT_BINARY_DIR}/libgromacs.pc ++ DESTINATION ${LIB_INSTALL_DIR}/pkgconfig ++ RENAME "libgromacs${GMX_LIBS_SUFFIX}.pc" ++ COMPONENT development) ++endif() ++ ++if (INSTALL_CUDART_LIB) #can be set manual by user ++ if (GMX_GPU) ++ foreach(CUDA_LIB ${CUDA_LIBRARIES}) ++ string(REGEX MATCH "cudart" IS_CUDART ${CUDA_LIB}) ++ if(IS_CUDART) #libcuda should not be installed ++ #install also name-links (linker uses those) ++ file(GLOB CUDA_LIBS ${CUDA_LIB}*) ++ install(FILES ${CUDA_LIBS} DESTINATION ++ ${LIB_INSTALL_DIR} COMPONENT libraries) ++ endif() ++ endforeach() ++ else() ++ message(WARNING "INSTALL_CUDART_LIB only makes sense with GMX_GPU") ++ endif() ++endif() +diff --git a/src/gromacs/mdlib/force.c b/src/gromacs/mdlib/force.c +index 5230983..8227d5b 100644 +--- a/src/gromacs/mdlib/force.c ++++ b/src/gromacs/mdlib/force.c +@@ -67,6 +67,14 @@ + #include "gromacs/timing/wallcycle.h" + #include "gmx_fatal.h" + ++/* PLUMED */ ++#include "../../../Plumed.h" ++int plumedswitch=0; ++plumed plumedmain; ++void(*plumedcmd)(plumed,const char*,const void*)=NULL; ++/* END PLUMED */ ++ ++ + void ns(FILE *fp, + t_forcerec *fr, + matrix box, +@@ -737,6 +745,13 @@ void do_force_lowlevel(FILE *fplog, gmx_int64_t step, + pr_rvecs(debug, 0, "fshift after bondeds", fr->fshift, SHIFTS); + } + ++ /* PLUMED */ ++ if(plumedswitch){ ++ int plumedNeedsEnergy; ++ (*plumedcmd)(plumedmain,"isEnergyNeeded",&plumedNeedsEnergy); ++ if(!plumedNeedsEnergy) (*plumedcmd)(plumedmain,"performCalc",NULL); ++ } ++ /* END PLUMED */ + } + + void init_enerdata(int ngener, int n_lambda, gmx_enerdata_t *enerd) +diff --git a/src/gromacs/mdlib/force.c.preplumed b/src/gromacs/mdlib/force.c.preplumed +new file mode 100644 +index 0000000..5230983 +--- /dev/null ++++ b/src/gromacs/mdlib/force.c.preplumed +@@ -0,0 +1,1018 @@ ++/* ++ * This file is part of the GROMACS molecular simulation package. ++ * ++ * Copyright (c) 1991-2000, University of Groningen, The Netherlands. ++ * Copyright (c) 2001-2004, The GROMACS development team. ++ * Copyright (c) 2013,2014, by the GROMACS development team, led by ++ * Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl, ++ * and including many others, as listed in the AUTHORS file in the ++ * top-level source directory and at http://www.gromacs.org. ++ * ++ * GROMACS 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; either version 2.1 ++ * of the License, or (at your option) any later version. ++ * ++ * GROMACS 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 ++ * Lesser General Public License for more details. ++ * ++ * You should have received a copy of the GNU Lesser General Public ++ * License along with GROMACS; if not, see ++ * http://www.gnu.org/licenses, or write to the Free Software Foundation, ++ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. ++ * ++ * If you want to redistribute modifications to GROMACS, please ++ * consider that scientific software is very special. Version ++ * control is crucial - bugs must be traceable. We will be happy to ++ * consider code for inclusion in the official distribution, but ++ * derived work must not be called official GROMACS. Details are found ++ * in the README & COPYING files - if they are missing, get the ++ * official version at http://www.gromacs.org. ++ * ++ * To help us fund GROMACS development, we humbly ask that you cite ++ * the research papers on the package. Check out http://www.gromacs.org. ++ */ ++#ifdef HAVE_CONFIG_H ++#include ++#endif ++ ++#include ++#include ++#include ++#include "sysstuff.h" ++#include "typedefs.h" ++#include "macros.h" ++#include "gromacs/utility/smalloc.h" ++#include "macros.h" ++#include "physics.h" ++#include "force.h" ++#include "nonbonded.h" ++#include "names.h" ++#include "network.h" ++#include "pbc.h" ++#include "ns.h" ++#include "nrnb.h" ++#include "bondf.h" ++#include "mshift.h" ++#include "txtdump.h" ++#include "coulomb.h" ++#include "pme.h" ++#include "mdrun.h" ++#include "domdec.h" ++#include "qmmm.h" ++#include "gmx_omp_nthreads.h" ++ ++#include "gromacs/timing/wallcycle.h" ++#include "gmx_fatal.h" ++ ++void ns(FILE *fp, ++ t_forcerec *fr, ++ matrix box, ++ gmx_groups_t *groups, ++ gmx_localtop_t *top, ++ t_mdatoms *md, ++ t_commrec *cr, ++ t_nrnb *nrnb, ++ gmx_bool bFillGrid, ++ gmx_bool bDoLongRangeNS) ++{ ++ char *ptr; ++ int nsearch; ++ ++ ++ if (!fr->ns.nblist_initialized) ++ { ++ init_neighbor_list(fp, fr, md->homenr); ++ } ++ ++ if (fr->bTwinRange) ++ { ++ fr->nlr = 0; ++ } ++ ++ nsearch = search_neighbours(fp, fr, box, top, groups, cr, nrnb, md, ++ bFillGrid, bDoLongRangeNS); ++ if (debug) ++ { ++ fprintf(debug, "nsearch = %d\n", nsearch); ++ } ++ ++ /* Check whether we have to do dynamic load balancing */ ++ /*if ((nsb->nstDlb > 0) && (mod(step,nsb->nstDlb) == 0)) ++ count_nb(cr,nsb,&(top->blocks[ebCGS]),nns,fr->nlr, ++ &(top->idef),opts->ngener); ++ */ ++ if (fr->ns.dump_nl > 0) ++ { ++ dump_nblist(fp, cr, fr, fr->ns.dump_nl); ++ } ++} ++ ++static void reduce_thread_forces(int n, rvec *f, ++ tensor vir_q, tensor vir_lj, ++ real *Vcorr_q, real *Vcorr_lj, ++ real *dvdl_q, real *dvdl_lj, ++ int nthreads, f_thread_t *f_t) ++{ ++ int t, i; ++ int nthreads_loop gmx_unused; ++ ++ /* This reduction can run over any number of threads */ ++ nthreads_loop = gmx_omp_nthreads_get(emntBonded); ++#pragma omp parallel for num_threads(nthreads_loop) private(t) schedule(static) ++ for (i = 0; i < n; i++) ++ { ++ for (t = 1; t < nthreads; t++) ++ { ++ rvec_inc(f[i], f_t[t].f[i]); ++ } ++ } ++ for (t = 1; t < nthreads; t++) ++ { ++ *Vcorr_q += f_t[t].Vcorr_q; ++ *Vcorr_lj += f_t[t].Vcorr_lj; ++ *dvdl_q += f_t[t].dvdl[efptCOUL]; ++ *dvdl_lj += f_t[t].dvdl[efptVDW]; ++ m_add(vir_q, f_t[t].vir_q, vir_q); ++ m_add(vir_lj, f_t[t].vir_lj, vir_lj); ++ } ++} ++ ++void gmx_print_sepdvdl(FILE *fplog, const char *s, real v, real dvdlambda) ++{ ++ fprintf(fplog, " %-30s V %12.5e dVdl %12.5e\n", s, v, dvdlambda); ++} ++ ++void do_force_lowlevel(FILE *fplog, gmx_int64_t step, ++ t_forcerec *fr, t_inputrec *ir, ++ t_idef *idef, t_commrec *cr, ++ t_nrnb *nrnb, gmx_wallcycle_t wcycle, ++ t_mdatoms *md, ++ rvec x[], history_t *hist, ++ rvec f[], ++ rvec f_longrange[], ++ gmx_enerdata_t *enerd, ++ t_fcdata *fcd, ++ gmx_localtop_t *top, ++ gmx_genborn_t *born, ++ t_atomtypes *atype, ++ gmx_bool bBornRadii, ++ matrix box, ++ t_lambda *fepvals, ++ real *lambda, ++ t_graph *graph, ++ t_blocka *excl, ++ rvec mu_tot[], ++ int flags, ++ float *cycles_pme) ++{ ++ int i, j; ++ int donb_flags; ++ gmx_bool bDoEpot, bSepDVDL, bSB; ++ int pme_flags; ++ matrix boxs; ++ rvec box_size; ++ t_pbc pbc; ++ char buf[22]; ++ double clam_i, vlam_i; ++ real dvdl_dum[efptNR], dvdl_nb[efptNR], lam_i[efptNR]; ++ real dvdl_q, dvdl_lj; ++ ++#ifdef GMX_MPI ++ double t0 = 0.0, t1, t2, t3; /* time measurement for coarse load balancing */ ++#endif ++ ++#define PRINT_SEPDVDL(s, v, dvdlambda) if (bSepDVDL) { gmx_print_sepdvdl(fplog, s, v, dvdlambda); } ++ ++ set_pbc(&pbc, fr->ePBC, box); ++ ++ /* reset free energy components */ ++ for (i = 0; i < efptNR; i++) ++ { ++ dvdl_nb[i] = 0; ++ dvdl_dum[i] = 0; ++ } ++ ++ /* Reset box */ ++ for (i = 0; (i < DIM); i++) ++ { ++ box_size[i] = box[i][i]; ++ } ++ ++ bSepDVDL = (fr->bSepDVDL && do_per_step(step, ir->nstlog)); ++ debug_gmx(); ++ ++ /* do QMMM first if requested */ ++ if (fr->bQMMM) ++ { ++ enerd->term[F_EQM] = calculate_QMMM(cr, x, f, fr); ++ } ++ ++ if (bSepDVDL) ++ { ++ fprintf(fplog, "Step %s: non-bonded V and dVdl for rank %d:\n", ++ gmx_step_str(step, buf), cr->nodeid); ++ } ++ ++ /* Call the short range functions all in one go. */ ++ ++#ifdef GMX_MPI ++ /*#define TAKETIME ((cr->npmenodes) && (fr->timesteps < 12))*/ ++#define TAKETIME FALSE ++ if (TAKETIME) ++ { ++ MPI_Barrier(cr->mpi_comm_mygroup); ++ t0 = MPI_Wtime(); ++ } ++#endif ++ ++ if (ir->nwall) ++ { ++ /* foreign lambda component for walls */ ++ real dvdl_walls = do_walls(ir, fr, box, md, x, f, lambda[efptVDW], ++ enerd->grpp.ener[egLJSR], nrnb); ++ PRINT_SEPDVDL("Walls", 0.0, dvdl_walls); ++ enerd->dvdl_lin[efptVDW] += dvdl_walls; ++ } ++ ++ /* If doing GB, reset dvda and calculate the Born radii */ ++ if (ir->implicit_solvent) ++ { ++ wallcycle_sub_start(wcycle, ewcsNONBONDED); ++ ++ for (i = 0; i < born->nr; i++) ++ { ++ fr->dvda[i] = 0; ++ } ++ ++ if (bBornRadii) ++ { ++ calc_gb_rad(cr, fr, ir, top, x, &(fr->gblist), born, md, nrnb); ++ } ++ ++ wallcycle_sub_stop(wcycle, ewcsNONBONDED); ++ } ++ ++ where(); ++ /* We only do non-bonded calculation with group scheme here, the verlet ++ * calls are done from do_force_cutsVERLET(). */ ++ if (fr->cutoff_scheme == ecutsGROUP && (flags & GMX_FORCE_NONBONDED)) ++ { ++ donb_flags = 0; ++ /* Add short-range interactions */ ++ donb_flags |= GMX_NONBONDED_DO_SR; ++ ++ /* Currently all group scheme kernels always calculate (shift-)forces */ ++ if (flags & GMX_FORCE_FORCES) ++ { ++ donb_flags |= GMX_NONBONDED_DO_FORCE; ++ } ++ if (flags & GMX_FORCE_VIRIAL) ++ { ++ donb_flags |= GMX_NONBONDED_DO_SHIFTFORCE; ++ } ++ if (flags & GMX_FORCE_ENERGY) ++ { ++ donb_flags |= GMX_NONBONDED_DO_POTENTIAL; ++ } ++ if (flags & GMX_FORCE_DO_LR) ++ { ++ donb_flags |= GMX_NONBONDED_DO_LR; ++ } ++ ++ wallcycle_sub_start(wcycle, ewcsNONBONDED); ++ do_nonbonded(fr, x, f, f_longrange, md, excl, ++ &enerd->grpp, nrnb, ++ lambda, dvdl_nb, -1, -1, donb_flags); ++ ++ /* If we do foreign lambda and we have soft-core interactions ++ * we have to recalculate the (non-linear) energies contributions. ++ */ ++ if (fepvals->n_lambda > 0 && (flags & GMX_FORCE_DHDL) && fepvals->sc_alpha != 0) ++ { ++ for (i = 0; i < enerd->n_lambda; i++) ++ { ++ for (j = 0; j < efptNR; j++) ++ { ++ lam_i[j] = (i == 0 ? lambda[j] : fepvals->all_lambda[j][i-1]); ++ } ++ reset_foreign_enerdata(enerd); ++ do_nonbonded(fr, x, f, f_longrange, md, excl, ++ &(enerd->foreign_grpp), nrnb, ++ lam_i, dvdl_dum, -1, -1, ++ (donb_flags & ~GMX_NONBONDED_DO_FORCE) | GMX_NONBONDED_DO_FOREIGNLAMBDA); ++ sum_epot(&(enerd->foreign_grpp), enerd->foreign_term); ++ enerd->enerpart_lambda[i] += enerd->foreign_term[F_EPOT]; ++ } ++ } ++ wallcycle_sub_stop(wcycle, ewcsNONBONDED); ++ where(); ++ } ++ ++ /* If we are doing GB, calculate bonded forces and apply corrections ++ * to the solvation forces */ ++ /* MRS: Eventually, many need to include free energy contribution here! */ ++ if (ir->implicit_solvent) ++ { ++ wallcycle_sub_start(wcycle, ewcsBONDED); ++ calc_gb_forces(cr, md, born, top, x, f, fr, idef, ++ ir->gb_algorithm, ir->sa_algorithm, nrnb, &pbc, graph, enerd); ++ wallcycle_sub_stop(wcycle, ewcsBONDED); ++ } ++ ++#ifdef GMX_MPI ++ if (TAKETIME) ++ { ++ t1 = MPI_Wtime(); ++ fr->t_fnbf += t1-t0; ++ } ++#endif ++ ++ if (fepvals->sc_alpha != 0) ++ { ++ enerd->dvdl_nonlin[efptVDW] += dvdl_nb[efptVDW]; ++ } ++ else ++ { ++ enerd->dvdl_lin[efptVDW] += dvdl_nb[efptVDW]; ++ } ++ ++ if (fepvals->sc_alpha != 0) ++ ++ /* even though coulomb part is linear, we already added it, beacuse we ++ need to go through the vdw calculation anyway */ ++ { ++ enerd->dvdl_nonlin[efptCOUL] += dvdl_nb[efptCOUL]; ++ } ++ else ++ { ++ enerd->dvdl_lin[efptCOUL] += dvdl_nb[efptCOUL]; ++ } ++ ++ if (bSepDVDL) ++ { ++ real V_short_range = 0; ++ real dvdl_short_range = 0; ++ ++ for (i = 0; i < enerd->grpp.nener; i++) ++ { ++ V_short_range += ++ (fr->bBHAM ? ++ enerd->grpp.ener[egBHAMSR][i] : ++ enerd->grpp.ener[egLJSR][i]) ++ + enerd->grpp.ener[egCOULSR][i] + enerd->grpp.ener[egGB][i]; ++ } ++ dvdl_short_range = dvdl_nb[efptVDW] + dvdl_nb[efptCOUL]; ++ PRINT_SEPDVDL("VdW and Coulomb SR particle-p.", ++ V_short_range, ++ dvdl_short_range); ++ } ++ debug_gmx(); ++ ++ ++ if (debug) ++ { ++ pr_rvecs(debug, 0, "fshift after SR", fr->fshift, SHIFTS); ++ } ++ ++ /* Shift the coordinates. Must be done before bonded forces and PPPM, ++ * but is also necessary for SHAKE and update, therefore it can NOT ++ * go when no bonded forces have to be evaluated. ++ */ ++ ++ /* Here sometimes we would not need to shift with NBFonly, ++ * but we do so anyhow for consistency of the returned coordinates. ++ */ ++ if (graph) ++ { ++ shift_self(graph, box, x); ++ if (TRICLINIC(box)) ++ { ++ inc_nrnb(nrnb, eNR_SHIFTX, 2*graph->nnodes); ++ } ++ else ++ { ++ inc_nrnb(nrnb, eNR_SHIFTX, graph->nnodes); ++ } ++ } ++ /* Check whether we need to do bondeds or correct for exclusions */ ++ if (fr->bMolPBC && ++ ((flags & GMX_FORCE_BONDED) ++ || EEL_RF(fr->eeltype) || EEL_FULL(fr->eeltype) || EVDW_PME(fr->vdwtype))) ++ { ++ /* Since all atoms are in the rectangular or triclinic unit-cell, ++ * only single box vector shifts (2 in x) are required. ++ */ ++ set_pbc_dd(&pbc, fr->ePBC, cr->dd, TRUE, box); ++ } ++ debug_gmx(); ++ ++ if (flags & GMX_FORCE_BONDED) ++ { ++ wallcycle_sub_start(wcycle, ewcsBONDED); ++ calc_bonds(fplog, cr->ms, ++ idef, x, hist, f, fr, &pbc, graph, enerd, nrnb, lambda, md, fcd, ++ DOMAINDECOMP(cr) ? cr->dd->gatindex : NULL, atype, born, ++ flags, ++ fr->bSepDVDL && do_per_step(step, ir->nstlog), step); ++ ++ /* Check if we have to determine energy differences ++ * at foreign lambda's. ++ */ ++ if (fepvals->n_lambda > 0 && (flags & GMX_FORCE_DHDL) && ++ idef->ilsort != ilsortNO_FE) ++ { ++ if (idef->ilsort != ilsortFE_SORTED) ++ { ++ gmx_incons("The bonded interactions are not sorted for free energy"); ++ } ++ for (i = 0; i < enerd->n_lambda; i++) ++ { ++ reset_foreign_enerdata(enerd); ++ for (j = 0; j < efptNR; j++) ++ { ++ lam_i[j] = (i == 0 ? lambda[j] : fepvals->all_lambda[j][i-1]); ++ } ++ calc_bonds_lambda(fplog, idef, x, fr, &pbc, graph, &(enerd->foreign_grpp), enerd->foreign_term, nrnb, lam_i, md, ++ fcd, DOMAINDECOMP(cr) ? cr->dd->gatindex : NULL); ++ sum_epot(&(enerd->foreign_grpp), enerd->foreign_term); ++ enerd->enerpart_lambda[i] += enerd->foreign_term[F_EPOT]; ++ } ++ } ++ debug_gmx(); ++ ++ wallcycle_sub_stop(wcycle, ewcsBONDED); ++ } ++ ++ where(); ++ ++ *cycles_pme = 0; ++ if (EEL_FULL(fr->eeltype) || EVDW_PME(fr->vdwtype)) ++ { ++ real Vlr = 0, Vcorr = 0; ++ real dvdl_long_range = 0; ++ int status = 0; ++ ++ bSB = (ir->nwall == 2); ++ if (bSB) ++ { ++ copy_mat(box, boxs); ++ svmul(ir->wall_ewald_zfac, boxs[ZZ], boxs[ZZ]); ++ box_size[ZZ] *= ir->wall_ewald_zfac; ++ } ++ } ++ ++ /* Do long-range electrostatics and/or LJ-PME, including related short-range ++ * corrections. ++ */ ++ ++ clear_mat(fr->vir_el_recip); ++ clear_mat(fr->vir_lj_recip); ++ ++ if (EEL_FULL(fr->eeltype) || EVDW_PME(fr->vdwtype)) ++ { ++ real Vlr_q = 0, Vlr_lj = 0, Vcorr_q = 0, Vcorr_lj = 0; ++ real dvdl_long_range_q = 0, dvdl_long_range_lj = 0; ++ int status = 0; ++ ++ if (EEL_PME_EWALD(fr->eeltype) || EVDW_PME(fr->vdwtype)) ++ { ++ real dvdl_long_range_correction_q = 0; ++ real dvdl_long_range_correction_lj = 0; ++ /* With the Verlet scheme exclusion forces are calculated ++ * in the non-bonded kernel. ++ */ ++ /* The TPI molecule does not have exclusions with the rest ++ * of the system and no intra-molecular PME grid ++ * contributions will be calculated in ++ * gmx_pme_calc_energy. ++ */ ++ if ((ir->cutoff_scheme == ecutsGROUP && fr->n_tpi == 0) || ++ ir->ewald_geometry != eewg3D || ++ ir->epsilon_surface != 0) ++ { ++ int nthreads, t; ++ ++ wallcycle_sub_start(wcycle, ewcsEWALD_CORRECTION); ++ ++ if (fr->n_tpi > 0) ++ { ++ gmx_fatal(FARGS, "TPI with PME currently only works in a 3D geometry with tin-foil boundary conditions"); ++ } ++ ++ nthreads = gmx_omp_nthreads_get(emntBonded); ++#pragma omp parallel for num_threads(nthreads) schedule(static) ++ for (t = 0; t < nthreads; t++) ++ { ++ int s, e, i; ++ rvec *fnv; ++ tensor *vir_q, *vir_lj; ++ real *Vcorrt_q, *Vcorrt_lj, *dvdlt_q, *dvdlt_lj; ++ if (t == 0) ++ { ++ fnv = fr->f_novirsum; ++ vir_q = &fr->vir_el_recip; ++ vir_lj = &fr->vir_lj_recip; ++ Vcorrt_q = &Vcorr_q; ++ Vcorrt_lj = &Vcorr_lj; ++ dvdlt_q = &dvdl_long_range_correction_q; ++ dvdlt_lj = &dvdl_long_range_correction_lj; ++ } ++ else ++ { ++ fnv = fr->f_t[t].f; ++ vir_q = &fr->f_t[t].vir_q; ++ vir_lj = &fr->f_t[t].vir_lj; ++ Vcorrt_q = &fr->f_t[t].Vcorr_q; ++ Vcorrt_lj = &fr->f_t[t].Vcorr_lj; ++ dvdlt_q = &fr->f_t[t].dvdl[efptCOUL]; ++ dvdlt_lj = &fr->f_t[t].dvdl[efptVDW]; ++ for (i = 0; i < fr->natoms_force; i++) ++ { ++ clear_rvec(fnv[i]); ++ } ++ clear_mat(*vir_q); ++ clear_mat(*vir_lj); ++ } ++ *dvdlt_q = 0; ++ *dvdlt_lj = 0; ++ ++ ewald_LRcorrection(fr->excl_load[t], fr->excl_load[t+1], ++ cr, t, fr, ++ md->chargeA, md->chargeB, ++ md->sqrt_c6A, md->sqrt_c6B, ++ md->sigmaA, md->sigmaB, ++ md->sigma3A, md->sigma3B, ++ md->nChargePerturbed || md->nTypePerturbed, ++ ir->cutoff_scheme != ecutsVERLET, ++ excl, x, bSB ? boxs : box, mu_tot, ++ ir->ewald_geometry, ++ ir->epsilon_surface, ++ fnv, *vir_q, *vir_lj, ++ Vcorrt_q, Vcorrt_lj, ++ lambda[efptCOUL], lambda[efptVDW], ++ dvdlt_q, dvdlt_lj); ++ } ++ if (nthreads > 1) ++ { ++ reduce_thread_forces(fr->natoms_force, fr->f_novirsum, ++ fr->vir_el_recip, fr->vir_lj_recip, ++ &Vcorr_q, &Vcorr_lj, ++ &dvdl_long_range_correction_q, ++ &dvdl_long_range_correction_lj, ++ nthreads, fr->f_t); ++ } ++ wallcycle_sub_stop(wcycle, ewcsEWALD_CORRECTION); ++ } ++ ++ if (EEL_PME_EWALD(fr->eeltype) && fr->n_tpi == 0) ++ { ++ Vcorr_q += ewald_charge_correction(cr, fr, lambda[efptCOUL], box, ++ &dvdl_long_range_correction_q, ++ fr->vir_el_recip); ++ } ++ ++ PRINT_SEPDVDL("Ewald excl./charge/dip. corr.", Vcorr_q, dvdl_long_range_correction_q); ++ PRINT_SEPDVDL("Ewald excl. corr. LJ", Vcorr_lj, dvdl_long_range_correction_lj); ++ enerd->dvdl_lin[efptCOUL] += dvdl_long_range_correction_q; ++ enerd->dvdl_lin[efptVDW] += dvdl_long_range_correction_lj; ++ } ++ ++ if ((EEL_PME(fr->eeltype) || EVDW_PME(fr->vdwtype))) ++ { ++ if (cr->duty & DUTY_PME) ++ { ++ /* Do reciprocal PME for Coulomb and/or LJ. */ ++ assert(fr->n_tpi >= 0); ++ if (fr->n_tpi == 0 || (flags & GMX_FORCE_STATECHANGED)) ++ { ++ pme_flags = GMX_PME_SPREAD | GMX_PME_SOLVE; ++ if (EEL_PME(fr->eeltype)) ++ { ++ pme_flags |= GMX_PME_DO_COULOMB; ++ } ++ if (EVDW_PME(fr->vdwtype)) ++ { ++ pme_flags |= GMX_PME_DO_LJ; ++ } ++ if (flags & GMX_FORCE_FORCES) ++ { ++ pme_flags |= GMX_PME_CALC_F; ++ } ++ if (flags & GMX_FORCE_VIRIAL) ++ { ++ pme_flags |= GMX_PME_CALC_ENER_VIR; ++ } ++ if (fr->n_tpi > 0) ++ { ++ /* We don't calculate f, but we do want the potential */ ++ pme_flags |= GMX_PME_CALC_POT; ++ } ++ wallcycle_start(wcycle, ewcPMEMESH); ++ status = gmx_pme_do(fr->pmedata, ++ 0, md->homenr - fr->n_tpi, ++ x, fr->f_novirsum, ++ md->chargeA, md->chargeB, ++ md->sqrt_c6A, md->sqrt_c6B, ++ md->sigmaA, md->sigmaB, ++ bSB ? boxs : box, cr, ++ DOMAINDECOMP(cr) ? dd_pme_maxshift_x(cr->dd) : 0, ++ DOMAINDECOMP(cr) ? dd_pme_maxshift_y(cr->dd) : 0, ++ nrnb, wcycle, ++ fr->vir_el_recip, fr->ewaldcoeff_q, ++ fr->vir_lj_recip, fr->ewaldcoeff_lj, ++ &Vlr_q, &Vlr_lj, ++ lambda[efptCOUL], lambda[efptVDW], ++ &dvdl_long_range_q, &dvdl_long_range_lj, pme_flags); ++ *cycles_pme = wallcycle_stop(wcycle, ewcPMEMESH); ++ if (status != 0) ++ { ++ gmx_fatal(FARGS, "Error %d in reciprocal PME routine", status); ++ } ++ /* We should try to do as little computation after ++ * this as possible, because parallel PME synchronizes ++ * the nodes, so we want all load imbalance of the ++ * rest of the force calculation to be before the PME ++ * call. DD load balancing is done on the whole time ++ * of the force call (without PME). ++ */ ++ } ++ if (fr->n_tpi > 0) ++ { ++ if (EVDW_PME(ir->vdwtype)) ++ { ++ ++ gmx_fatal(FARGS, "Test particle insertion not implemented with LJ-PME"); ++ } ++ /* Determine the PME grid energy of the test molecule ++ * with the PME grid potential of the other charges. ++ */ ++ gmx_pme_calc_energy(fr->pmedata, fr->n_tpi, ++ x + md->homenr - fr->n_tpi, ++ md->chargeA + md->homenr - fr->n_tpi, ++ &Vlr_q); ++ } ++ PRINT_SEPDVDL("PME mesh", Vlr_q + Vlr_lj, dvdl_long_range_q+dvdl_long_range_lj); ++ } ++ } ++ ++ if (!EEL_PME(fr->eeltype) && EEL_PME_EWALD(fr->eeltype)) ++ { ++ Vlr_q = do_ewald(ir, x, fr->f_novirsum, ++ md->chargeA, md->chargeB, ++ box_size, cr, md->homenr, ++ fr->vir_el_recip, fr->ewaldcoeff_q, ++ lambda[efptCOUL], &dvdl_long_range_q, fr->ewald_table); ++ PRINT_SEPDVDL("Ewald long-range", Vlr_q, dvdl_long_range_q); ++ } ++ ++ /* Note that with separate PME nodes we get the real energies later */ ++ enerd->dvdl_lin[efptCOUL] += dvdl_long_range_q; ++ enerd->dvdl_lin[efptVDW] += dvdl_long_range_lj; ++ enerd->term[F_COUL_RECIP] = Vlr_q + Vcorr_q; ++ enerd->term[F_LJ_RECIP] = Vlr_lj + Vcorr_lj; ++ if (debug) ++ { ++ fprintf(debug, "Vlr_q = %g, Vcorr_q = %g, Vlr_corr_q = %g\n", ++ Vlr_q, Vcorr_q, enerd->term[F_COUL_RECIP]); ++ pr_rvecs(debug, 0, "vir_el_recip after corr", fr->vir_el_recip, DIM); ++ pr_rvecs(debug, 0, "fshift after LR Corrections", fr->fshift, SHIFTS); ++ fprintf(debug, "Vlr_lj: %g, Vcorr_lj = %g, Vlr_corr_lj = %g\n", ++ Vlr_lj, Vcorr_lj, enerd->term[F_LJ_RECIP]); ++ pr_rvecs(debug, 0, "vir_lj_recip after corr", fr->vir_lj_recip, DIM); ++ } ++ } ++ else ++ { ++ /* Is there a reaction-field exclusion correction needed? */ ++ if (EEL_RF(fr->eeltype) && eelRF_NEC != fr->eeltype) ++ { ++ /* With the Verlet scheme, exclusion forces are calculated ++ * in the non-bonded kernel. ++ */ ++ if (ir->cutoff_scheme != ecutsVERLET) ++ { ++ real dvdl_rf_excl = 0; ++ enerd->term[F_RF_EXCL] = ++ RF_excl_correction(fr, graph, md, excl, x, f, ++ fr->fshift, &pbc, lambda[efptCOUL], &dvdl_rf_excl); ++ ++ enerd->dvdl_lin[efptCOUL] += dvdl_rf_excl; ++ PRINT_SEPDVDL("RF exclusion correction", ++ enerd->term[F_RF_EXCL], dvdl_rf_excl); ++ } ++ } ++ } ++ where(); ++ debug_gmx(); ++ ++ if (debug) ++ { ++ print_nrnb(debug, nrnb); ++ } ++ debug_gmx(); ++ ++#ifdef GMX_MPI ++ if (TAKETIME) ++ { ++ t2 = MPI_Wtime(); ++ MPI_Barrier(cr->mpi_comm_mygroup); ++ t3 = MPI_Wtime(); ++ fr->t_wait += t3-t2; ++ if (fr->timesteps == 11) ++ { ++ fprintf(stderr, "* PP load balancing info: rank %d, step %s, rel wait time=%3.0f%% , load string value: %7.2f\n", ++ cr->nodeid, gmx_step_str(fr->timesteps, buf), ++ 100*fr->t_wait/(fr->t_wait+fr->t_fnbf), ++ (fr->t_fnbf+fr->t_wait)/fr->t_fnbf); ++ } ++ fr->timesteps++; ++ } ++#endif ++ ++ if (debug) ++ { ++ pr_rvecs(debug, 0, "fshift after bondeds", fr->fshift, SHIFTS); ++ } ++ ++} ++ ++void init_enerdata(int ngener, int n_lambda, gmx_enerdata_t *enerd) ++{ ++ int i, n2; ++ ++ for (i = 0; i < F_NRE; i++) ++ { ++ enerd->term[i] = 0; ++ enerd->foreign_term[i] = 0; ++ } ++ ++ ++ for (i = 0; i < efptNR; i++) ++ { ++ enerd->dvdl_lin[i] = 0; ++ enerd->dvdl_nonlin[i] = 0; ++ } ++ ++ n2 = ngener*ngener; ++ if (debug) ++ { ++ fprintf(debug, "Creating %d sized group matrix for energies\n", n2); ++ } ++ enerd->grpp.nener = n2; ++ enerd->foreign_grpp.nener = n2; ++ for (i = 0; (i < egNR); i++) ++ { ++ snew(enerd->grpp.ener[i], n2); ++ snew(enerd->foreign_grpp.ener[i], n2); ++ } ++ ++ if (n_lambda) ++ { ++ enerd->n_lambda = 1 + n_lambda; ++ snew(enerd->enerpart_lambda, enerd->n_lambda); ++ } ++ else ++ { ++ enerd->n_lambda = 0; ++ } ++} ++ ++void destroy_enerdata(gmx_enerdata_t *enerd) ++{ ++ int i; ++ ++ for (i = 0; (i < egNR); i++) ++ { ++ sfree(enerd->grpp.ener[i]); ++ } ++ ++ for (i = 0; (i < egNR); i++) ++ { ++ sfree(enerd->foreign_grpp.ener[i]); ++ } ++ ++ if (enerd->n_lambda) ++ { ++ sfree(enerd->enerpart_lambda); ++ } ++} ++ ++static real sum_v(int n, real v[]) ++{ ++ real t; ++ int i; ++ ++ t = 0.0; ++ for (i = 0; (i < n); i++) ++ { ++ t = t + v[i]; ++ } ++ ++ return t; ++} ++ ++void sum_epot(gmx_grppairener_t *grpp, real *epot) ++{ ++ int i; ++ ++ /* Accumulate energies */ ++ epot[F_COUL_SR] = sum_v(grpp->nener, grpp->ener[egCOULSR]); ++ epot[F_LJ] = sum_v(grpp->nener, grpp->ener[egLJSR]); ++ epot[F_LJ14] = sum_v(grpp->nener, grpp->ener[egLJ14]); ++ epot[F_COUL14] = sum_v(grpp->nener, grpp->ener[egCOUL14]); ++ epot[F_COUL_LR] = sum_v(grpp->nener, grpp->ener[egCOULLR]); ++ epot[F_LJ_LR] = sum_v(grpp->nener, grpp->ener[egLJLR]); ++ /* We have already added 1-2,1-3, and 1-4 terms to F_GBPOL */ ++ epot[F_GBPOL] += sum_v(grpp->nener, grpp->ener[egGB]); ++ ++/* lattice part of LR doesnt belong to any group ++ * and has been added earlier ++ */ ++ epot[F_BHAM] = sum_v(grpp->nener, grpp->ener[egBHAMSR]); ++ epot[F_BHAM_LR] = sum_v(grpp->nener, grpp->ener[egBHAMLR]); ++ ++ epot[F_EPOT] = 0; ++ for (i = 0; (i < F_EPOT); i++) ++ { ++ if (i != F_DISRESVIOL && i != F_ORIRESDEV) ++ { ++ epot[F_EPOT] += epot[i]; ++ } ++ } ++} ++ ++void sum_dhdl(gmx_enerdata_t *enerd, real *lambda, t_lambda *fepvals) ++{ ++ int i, j, index; ++ double dlam; ++ ++ enerd->dvdl_lin[efptVDW] += enerd->term[F_DVDL_VDW]; /* include dispersion correction */ ++ enerd->term[F_DVDL] = 0.0; ++ for (i = 0; i < efptNR; i++) ++ { ++ if (fepvals->separate_dvdl[i]) ++ { ++ /* could this be done more readably/compactly? */ ++ switch (i) ++ { ++ case (efptMASS): ++ index = F_DKDL; ++ break; ++ case (efptCOUL): ++ index = F_DVDL_COUL; ++ break; ++ case (efptVDW): ++ index = F_DVDL_VDW; ++ break; ++ case (efptBONDED): ++ index = F_DVDL_BONDED; ++ break; ++ case (efptRESTRAINT): ++ index = F_DVDL_RESTRAINT; ++ break; ++ default: ++ index = F_DVDL; ++ break; ++ } ++ enerd->term[index] = enerd->dvdl_lin[i] + enerd->dvdl_nonlin[i]; ++ if (debug) ++ { ++ fprintf(debug, "dvdl-%s[%2d]: %f: non-linear %f + linear %f\n", ++ efpt_names[i], i, enerd->term[index], enerd->dvdl_nonlin[i], enerd->dvdl_lin[i]); ++ } ++ } ++ else ++ { ++ enerd->term[F_DVDL] += enerd->dvdl_lin[i] + enerd->dvdl_nonlin[i]; ++ if (debug) ++ { ++ fprintf(debug, "dvd-%sl[%2d]: %f: non-linear %f + linear %f\n", ++ efpt_names[0], i, enerd->term[F_DVDL], enerd->dvdl_nonlin[i], enerd->dvdl_lin[i]); ++ } ++ } ++ } ++ ++ /* Notes on the foreign lambda free energy difference evaluation: ++ * Adding the potential and ekin terms that depend linearly on lambda ++ * as delta lam * dvdl to the energy differences is exact. ++ * For the constraints this is not exact, but we have no other option ++ * without literally changing the lengths and reevaluating the energies at each step. ++ * (try to remedy this post 4.6 - MRS) ++ * For the non-bonded LR term we assume that the soft-core (if present) ++ * no longer affects the energy beyond the short-range cut-off, ++ * which is a very good approximation (except for exotic settings). ++ * (investigate how to overcome this post 4.6 - MRS) ++ */ ++ if (fepvals->separate_dvdl[efptBONDED]) ++ { ++ enerd->term[F_DVDL_BONDED] += enerd->term[F_DVDL_CONSTR]; ++ } ++ else ++ { ++ enerd->term[F_DVDL] += enerd->term[F_DVDL_CONSTR]; ++ } ++ enerd->term[F_DVDL_CONSTR] = 0; ++ ++ for (i = 0; i < fepvals->n_lambda; i++) ++ { ++ /* note we are iterating over fepvals here! ++ For the current lam, dlam = 0 automatically, ++ so we don't need to add anything to the ++ enerd->enerpart_lambda[0] */ ++ ++ /* we don't need to worry about dvdl_lin contributions to dE at ++ current lambda, because the contributions to the current ++ lambda are automatically zeroed */ ++ ++ for (j = 0; j < efptNR; j++) ++ { ++ /* Note that this loop is over all dhdl components, not just the separated ones */ ++ dlam = (fepvals->all_lambda[j][i]-lambda[j]); ++ enerd->enerpart_lambda[i+1] += dlam*enerd->dvdl_lin[j]; ++ if (debug) ++ { ++ fprintf(debug, "enerdiff lam %g: (%15s), non-linear %f linear %f*%f\n", ++ fepvals->all_lambda[j][i], efpt_names[j], ++ (enerd->enerpart_lambda[i+1] - enerd->enerpart_lambda[0]), ++ dlam, enerd->dvdl_lin[j]); ++ } ++ } ++ } ++} ++ ++ ++void reset_foreign_enerdata(gmx_enerdata_t *enerd) ++{ ++ int i, j; ++ ++ /* First reset all foreign energy components. Foreign energies always called on ++ neighbor search steps */ ++ for (i = 0; (i < egNR); i++) ++ { ++ for (j = 0; (j < enerd->grpp.nener); j++) ++ { ++ enerd->foreign_grpp.ener[i][j] = 0.0; ++ } ++ } ++ ++ /* potential energy components */ ++ for (i = 0; (i <= F_EPOT); i++) ++ { ++ enerd->foreign_term[i] = 0.0; ++ } ++} ++ ++void reset_enerdata(t_forcerec *fr, gmx_bool bNS, ++ gmx_enerdata_t *enerd, ++ gmx_bool bMaster) ++{ ++ gmx_bool bKeepLR; ++ int i, j; ++ ++ /* First reset all energy components, except for the long range terms ++ * on the master at non neighbor search steps, since the long range ++ * terms have already been summed at the last neighbor search step. ++ */ ++ bKeepLR = (fr->bTwinRange && !bNS); ++ for (i = 0; (i < egNR); i++) ++ { ++ if (!(bKeepLR && bMaster && (i == egCOULLR || i == egLJLR))) ++ { ++ for (j = 0; (j < enerd->grpp.nener); j++) ++ { ++ enerd->grpp.ener[i][j] = 0.0; ++ } ++ } ++ } ++ for (i = 0; i < efptNR; i++) ++ { ++ enerd->dvdl_lin[i] = 0.0; ++ enerd->dvdl_nonlin[i] = 0.0; ++ } ++ ++ /* Normal potential energy components */ ++ for (i = 0; (i <= F_EPOT); i++) ++ { ++ enerd->term[i] = 0.0; ++ } ++ /* Initialize the dVdlambda term with the long range contribution */ ++ /* Initialize the dvdl term with the long range contribution */ ++ enerd->term[F_DVDL] = 0.0; ++ enerd->term[F_DVDL_COUL] = 0.0; ++ enerd->term[F_DVDL_VDW] = 0.0; ++ enerd->term[F_DVDL_BONDED] = 0.0; ++ enerd->term[F_DVDL_RESTRAINT] = 0.0; ++ enerd->term[F_DKDL] = 0.0; ++ if (enerd->n_lambda > 0) ++ { ++ for (i = 0; i < enerd->n_lambda; i++) ++ { ++ enerd->enerpart_lambda[i] = 0.0; ++ } ++ } ++ /* reset foreign energy data - separate function since we also call it elsewhere */ ++ reset_foreign_enerdata(enerd); ++} +diff --git a/src/gromacs/mdlib/minimize.c b/src/gromacs/mdlib/minimize.c +index 69008f5..5114fa0 100644 +--- a/src/gromacs/mdlib/minimize.c ++++ b/src/gromacs/mdlib/minimize.c +@@ -80,6 +80,13 @@ + #include "gromacs/timing/walltime_accounting.h" + #include "gromacs/imd/imd.h" + ++/* PLUMED */ ++#include "../../../Plumed.h" ++extern int plumedswitch; ++extern plumed plumedmain; ++extern void(*plumedcmd)(plumed,const char*,const void*); ++/* END PLUMED */ ++ + typedef struct { + t_state s; + rvec *f; +@@ -442,6 +449,43 @@ void init_em(FILE *fplog, const char *title, + + clear_rvec(mu_tot); + calc_shifts(ems->s.box, fr->shift_vec); ++ ++ /* PLUMED */ ++ if(plumedswitch){ ++ if(cr->ms && cr->ms->nsim>1) { ++ if(MASTER(cr)) (*plumedcmd) (plumedmain,"GREX setMPIIntercomm",&cr->ms->mpi_comm_masters); ++ if(PAR(cr)){ ++ if(DOMAINDECOMP(cr)) { ++ (*plumedcmd) (plumedmain,"GREX setMPIIntracomm",&cr->dd->mpi_comm_all); ++ }else{ ++ (*plumedcmd) (plumedmain,"GREX setMPIIntracomm",&cr->mpi_comm_mysim); ++ } ++ } ++ (*plumedcmd) (plumedmain,"GREX init",NULL); ++ } ++ if(PAR(cr)){ ++ if(DOMAINDECOMP(cr)) { ++ (*plumedcmd) (plumedmain,"setMPIComm",&cr->dd->mpi_comm_all); ++ }else{ ++ (*plumedcmd) (plumedmain,"setMPIComm",&cr->mpi_comm_mysim); ++ } ++ } ++ (*plumedcmd) (plumedmain,"setNatoms",&top_global->natoms); ++ (*plumedcmd) (plumedmain,"setMDEngine","gromacs"); ++ (*plumedcmd) (plumedmain,"setLog",fplog); ++ real real_delta_t; ++ real_delta_t=ir->delta_t; ++ (*plumedcmd) (plumedmain,"setTimestep",&real_delta_t); ++ (*plumedcmd) (plumedmain,"init",NULL); ++ ++ if(PAR(cr)){ ++ if(DOMAINDECOMP(cr)) { ++ (*plumedcmd) (plumedmain,"setAtomsNlocal",&cr->dd->nat_home); ++ (*plumedcmd) (plumedmain,"setAtomsGatindex",cr->dd->gatindex); ++ } ++ } ++ } ++ /* END PLUMED */ + } + + static void finish_em(t_commrec *cr, gmx_mdoutf_t outf, +@@ -737,12 +781,34 @@ static void evaluate_energy(FILE *fplog, t_commrec *cr, + em_dd_partition_system(fplog, count, cr, top_global, inputrec, + ems, top, mdatoms, fr, vsite, constr, + nrnb, wcycle); ++ /* PLUMED */ ++ if(plumedswitch){ ++ (*plumedcmd) (plumedmain,"setAtomsNlocal",&cr->dd->nat_home); ++ (*plumedcmd) (plumedmain,"setAtomsGatindex",cr->dd->gatindex); ++ } ++ /* END PLUMED */ + } + + /* Calc force & energy on new trial position */ + /* do_force always puts the charge groups in the box and shifts again + * We do not unshift, so molecules are always whole in congrad.c + */ ++ /* PLUMED */ ++ int plumedNeedsEnergy=0; ++ matrix plumed_vir; ++ if(plumedswitch){ ++ long int lstep=count; (*plumedcmd)(plumedmain,"setStepLong",&count); ++ (*plumedcmd) (plumedmain,"setPositions",&ems->s.x[0][0]); ++ (*plumedcmd) (plumedmain,"setMasses",&mdatoms->massT[0]); ++ (*plumedcmd) (plumedmain,"setCharges",&mdatoms->chargeA[0]); ++ (*plumedcmd) (plumedmain,"setBox",&ems->s.box[0][0]); ++ (*plumedcmd) (plumedmain,"prepareCalc",NULL); ++ (*plumedcmd) (plumedmain,"setForces",&ems->f[0][0]); ++ (*plumedcmd) (plumedmain,"isEnergyNeeded",&plumedNeedsEnergy); ++ clear_mat(plumed_vir); ++ (*plumedcmd) (plumedmain,"setVirial",&plumed_vir[0][0]); ++ } ++ /* END PLUMED */ + do_force(fplog, cr, inputrec, + count, nrnb, wcycle, top, &top_global->groups, + ems->s.box, ems->s.x, &ems->s.hist, +@@ -751,6 +817,19 @@ static void evaluate_energy(FILE *fplog, t_commrec *cr, + GMX_FORCE_STATECHANGED | GMX_FORCE_ALLFORCES | + GMX_FORCE_VIRIAL | GMX_FORCE_ENERGY | + (bNS ? GMX_FORCE_NS | GMX_FORCE_DO_LR : 0)); ++ /* PLUMED */ ++ if(plumedswitch){ ++ if(plumedNeedsEnergy) { ++ msmul(force_vir,2.0,plumed_vir); ++ (*plumedcmd) (plumedmain,"setEnergy",&enerd->term[F_EPOT]); ++ (*plumedcmd) (plumedmain,"performCalc",NULL); ++ msmul(plumed_vir,0.5,force_vir); ++ } else { ++ msmul(plumed_vir,0.5,plumed_vir); ++ m_add(force_vir,plumed_vir,force_vir); ++ } ++ } ++ /* END PLUMED */ + + /* Clear the unused shake virial and pressure */ + clear_mat(shake_vir); +diff --git a/src/gromacs/mdlib/minimize.c.preplumed b/src/gromacs/mdlib/minimize.c.preplumed +new file mode 100644 +index 0000000..69008f5 +--- /dev/null ++++ b/src/gromacs/mdlib/minimize.c.preplumed +@@ -0,0 +1,2906 @@ ++/* ++ * This file is part of the GROMACS molecular simulation package. ++ * ++ * Copyright (c) 1991-2000, University of Groningen, The Netherlands. ++ * Copyright (c) 2001-2004, The GROMACS development team. ++ * Copyright (c) 2013,2014, by the GROMACS development team, led by ++ * Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl, ++ * and including many others, as listed in the AUTHORS file in the ++ * top-level source directory and at http://www.gromacs.org. ++ * ++ * GROMACS 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; either version 2.1 ++ * of the License, or (at your option) any later version. ++ * ++ * GROMACS 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 ++ * Lesser General Public License for more details. ++ * ++ * You should have received a copy of the GNU Lesser General Public ++ * License along with GROMACS; if not, see ++ * http://www.gnu.org/licenses, or write to the Free Software Foundation, ++ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. ++ * ++ * If you want to redistribute modifications to GROMACS, please ++ * consider that scientific software is very special. Version ++ * control is crucial - bugs must be traceable. We will be happy to ++ * consider code for inclusion in the official distribution, but ++ * derived work must not be called official GROMACS. Details are found ++ * in the README & COPYING files - if they are missing, get the ++ * official version at http://www.gromacs.org. ++ * ++ * To help us fund GROMACS development, we humbly ask that you cite ++ * the research papers on the package. Check out http://www.gromacs.org. ++ */ ++#ifdef HAVE_CONFIG_H ++#include ++#endif ++ ++#include ++#include ++#include ++#include "sysstuff.h" ++#include "gromacs/utility/cstringutil.h" ++#include "network.h" ++#include "gromacs/utility/smalloc.h" ++#include "nrnb.h" ++#include "main.h" ++#include "force.h" ++#include "macros.h" ++#include "names.h" ++#include "gmx_fatal.h" ++#include "txtdump.h" ++#include "typedefs.h" ++#include "update.h" ++#include "constr.h" ++#include "vec.h" ++#include "tgroup.h" ++#include "mdebin.h" ++#include "vsite.h" ++#include "force.h" ++#include "mdrun.h" ++#include "md_support.h" ++#include "sim_util.h" ++#include "domdec.h" ++#include "mdatoms.h" ++#include "ns.h" ++#include "mtop_util.h" ++#include "pme.h" ++#include "bondf.h" ++#include "gmx_omp_nthreads.h" ++#include "md_logging.h" ++ ++#include "gromacs/fileio/confio.h" ++#include "gromacs/fileio/trajectory_writing.h" ++#include "gromacs/linearalgebra/mtxio.h" ++#include "gromacs/linearalgebra/sparsematrix.h" ++#include "gromacs/timing/wallcycle.h" ++#include "gromacs/timing/walltime_accounting.h" ++#include "gromacs/imd/imd.h" ++ ++typedef struct { ++ t_state s; ++ rvec *f; ++ real epot; ++ real fnorm; ++ real fmax; ++ int a_fmax; ++} em_state_t; ++ ++static em_state_t *init_em_state() ++{ ++ em_state_t *ems; ++ ++ snew(ems, 1); ++ ++ /* does this need to be here? Should the array be declared differently (staticaly)in the state definition? */ ++ snew(ems->s.lambda, efptNR); ++ ++ return ems; ++} ++ ++static void print_em_start(FILE *fplog, ++ t_commrec *cr, ++ gmx_walltime_accounting_t walltime_accounting, ++ gmx_wallcycle_t wcycle, ++ const char *name) ++{ ++ walltime_accounting_start(walltime_accounting); ++ wallcycle_start(wcycle, ewcRUN); ++ print_start(fplog, cr, walltime_accounting, name); ++} ++static void em_time_end(gmx_walltime_accounting_t walltime_accounting, ++ gmx_wallcycle_t wcycle) ++{ ++ wallcycle_stop(wcycle, ewcRUN); ++ ++ walltime_accounting_end(walltime_accounting); ++} ++ ++static void sp_header(FILE *out, const char *minimizer, real ftol, int nsteps) ++{ ++ fprintf(out, "\n"); ++ fprintf(out, "%s:\n", minimizer); ++ fprintf(out, " Tolerance (Fmax) = %12.5e\n", ftol); ++ fprintf(out, " Number of steps = %12d\n", nsteps); ++} ++ ++static void warn_step(FILE *fp, real ftol, gmx_bool bLastStep, gmx_bool bConstrain) ++{ ++ char buffer[2048]; ++ if (bLastStep) ++ { ++ sprintf(buffer, ++ "\nEnergy minimization reached the maximum number " ++ "of steps before the forces reached the requested " ++ "precision Fmax < %g.\n", ftol); ++ } ++ else ++ { ++ sprintf(buffer, ++ "\nEnergy minimization has stopped, but the forces have " ++ "not converged to the requested precision Fmax < %g (which " ++ "may not be possible for your system). It stopped " ++ "because the algorithm tried to make a new step whose size " ++ "was too small, or there was no change in the energy since " ++ "last step. Either way, we regard the minimization as " ++ "converged to within the available machine precision, " ++ "given your starting configuration and EM parameters.\n%s%s", ++ ftol, ++ sizeof(real) < sizeof(double) ? ++ "\nDouble precision normally gives you higher accuracy, but " ++ "this is often not needed for preparing to run molecular " ++ "dynamics.\n" : ++ "", ++ bConstrain ? ++ "You might need to increase your constraint accuracy, or turn\n" ++ "off constraints altogether (set constraints = none in mdp file)\n" : ++ ""); ++ } ++ fputs(wrap_lines(buffer, 78, 0, FALSE), fp); ++} ++ ++ ++ ++static void print_converged(FILE *fp, const char *alg, real ftol, ++ gmx_int64_t count, gmx_bool bDone, gmx_int64_t nsteps, ++ real epot, real fmax, int nfmax, real fnorm) ++{ ++ char buf[STEPSTRSIZE]; ++ ++ if (bDone) ++ { ++ fprintf(fp, "\n%s converged to Fmax < %g in %s steps\n", ++ alg, ftol, gmx_step_str(count, buf)); ++ } ++ else if (count < nsteps) ++ { ++ fprintf(fp, "\n%s converged to machine precision in %s steps,\n" ++ "but did not reach the requested Fmax < %g.\n", ++ alg, gmx_step_str(count, buf), ftol); ++ } ++ else ++ { ++ fprintf(fp, "\n%s did not converge to Fmax < %g in %s steps.\n", ++ alg, ftol, gmx_step_str(count, buf)); ++ } ++ ++#ifdef GMX_DOUBLE ++ fprintf(fp, "Potential Energy = %21.14e\n", epot); ++ fprintf(fp, "Maximum force = %21.14e on atom %d\n", fmax, nfmax+1); ++ fprintf(fp, "Norm of force = %21.14e\n", fnorm); ++#else ++ fprintf(fp, "Potential Energy = %14.7e\n", epot); ++ fprintf(fp, "Maximum force = %14.7e on atom %d\n", fmax, nfmax+1); ++ fprintf(fp, "Norm of force = %14.7e\n", fnorm); ++#endif ++} ++ ++static void get_f_norm_max(t_commrec *cr, ++ t_grpopts *opts, t_mdatoms *mdatoms, rvec *f, ++ real *fnorm, real *fmax, int *a_fmax) ++{ ++ double fnorm2, *sum; ++ real fmax2, fmax2_0, fam; ++ int la_max, a_max, start, end, i, m, gf; ++ ++ /* This routine finds the largest force and returns it. ++ * On parallel machines the global max is taken. ++ */ ++ fnorm2 = 0; ++ fmax2 = 0; ++ la_max = -1; ++ gf = 0; ++ start = 0; ++ end = mdatoms->homenr; ++ if (mdatoms->cFREEZE) ++ { ++ for (i = start; i < end; i++) ++ { ++ gf = mdatoms->cFREEZE[i]; ++ fam = 0; ++ for (m = 0; m < DIM; m++) ++ { ++ if (!opts->nFreeze[gf][m]) ++ { ++ fam += sqr(f[i][m]); ++ } ++ } ++ fnorm2 += fam; ++ if (fam > fmax2) ++ { ++ fmax2 = fam; ++ la_max = i; ++ } ++ } ++ } ++ else ++ { ++ for (i = start; i < end; i++) ++ { ++ fam = norm2(f[i]); ++ fnorm2 += fam; ++ if (fam > fmax2) ++ { ++ fmax2 = fam; ++ la_max = i; ++ } ++ } ++ } ++ ++ if (la_max >= 0 && DOMAINDECOMP(cr)) ++ { ++ a_max = cr->dd->gatindex[la_max]; ++ } ++ else ++ { ++ a_max = la_max; ++ } ++ if (PAR(cr)) ++ { ++ snew(sum, 2*cr->nnodes+1); ++ sum[2*cr->nodeid] = fmax2; ++ sum[2*cr->nodeid+1] = a_max; ++ sum[2*cr->nnodes] = fnorm2; ++ gmx_sumd(2*cr->nnodes+1, sum, cr); ++ fnorm2 = sum[2*cr->nnodes]; ++ /* Determine the global maximum */ ++ for (i = 0; i < cr->nnodes; i++) ++ { ++ if (sum[2*i] > fmax2) ++ { ++ fmax2 = sum[2*i]; ++ a_max = (int)(sum[2*i+1] + 0.5); ++ } ++ } ++ sfree(sum); ++ } ++ ++ if (fnorm) ++ { ++ *fnorm = sqrt(fnorm2); ++ } ++ if (fmax) ++ { ++ *fmax = sqrt(fmax2); ++ } ++ if (a_fmax) ++ { ++ *a_fmax = a_max; ++ } ++} ++ ++static void get_state_f_norm_max(t_commrec *cr, ++ t_grpopts *opts, t_mdatoms *mdatoms, ++ em_state_t *ems) ++{ ++ get_f_norm_max(cr, opts, mdatoms, ems->f, &ems->fnorm, &ems->fmax, &ems->a_fmax); ++} ++ ++void init_em(FILE *fplog, const char *title, ++ t_commrec *cr, t_inputrec *ir, ++ t_state *state_global, gmx_mtop_t *top_global, ++ em_state_t *ems, gmx_localtop_t **top, ++ rvec **f, rvec **f_global, ++ t_nrnb *nrnb, rvec mu_tot, ++ t_forcerec *fr, gmx_enerdata_t **enerd, ++ t_graph **graph, t_mdatoms *mdatoms, gmx_global_stat_t *gstat, ++ gmx_vsite_t *vsite, gmx_constr_t constr, ++ int nfile, const t_filenm fnm[], ++ gmx_mdoutf_t *outf, t_mdebin **mdebin, ++ int imdport, unsigned long gmx_unused Flags, ++ gmx_wallcycle_t wcycle) ++{ ++ int i; ++ real dvdl_constr; ++ ++ if (fplog) ++ { ++ fprintf(fplog, "Initiating %s\n", title); ++ } ++ ++ state_global->ngtc = 0; ++ ++ /* Initialize lambda variables */ ++ initialize_lambdas(fplog, ir, &(state_global->fep_state), state_global->lambda, NULL); ++ ++ init_nrnb(nrnb); ++ ++ /* Interactive molecular dynamics */ ++ init_IMD(ir, cr, top_global, fplog, 1, state_global->x, ++ nfile, fnm, NULL, imdport, Flags); ++ ++ if (DOMAINDECOMP(cr)) ++ { ++ *top = dd_init_local_top(top_global); ++ ++ dd_init_local_state(cr->dd, state_global, &ems->s); ++ ++ *f = NULL; ++ ++ /* Distribute the charge groups over the nodes from the master node */ ++ dd_partition_system(fplog, ir->init_step, cr, TRUE, 1, ++ state_global, top_global, ir, ++ &ems->s, &ems->f, mdatoms, *top, ++ fr, vsite, NULL, constr, ++ nrnb, NULL, FALSE); ++ dd_store_state(cr->dd, &ems->s); ++ ++ if (ir->nstfout) ++ { ++ snew(*f_global, top_global->natoms); ++ } ++ else ++ { ++ *f_global = NULL; ++ } ++ *graph = NULL; ++ } ++ else ++ { ++ snew(*f, top_global->natoms); ++ ++ /* Just copy the state */ ++ ems->s = *state_global; ++ snew(ems->s.x, ems->s.nalloc); ++ snew(ems->f, ems->s.nalloc); ++ for (i = 0; i < state_global->natoms; i++) ++ { ++ copy_rvec(state_global->x[i], ems->s.x[i]); ++ } ++ copy_mat(state_global->box, ems->s.box); ++ ++ *top = gmx_mtop_generate_local_top(top_global, ir); ++ *f_global = *f; ++ ++ forcerec_set_excl_load(fr, *top); ++ ++ setup_bonded_threading(fr, &(*top)->idef); ++ ++ if (ir->ePBC != epbcNONE && !fr->bMolPBC) ++ { ++ *graph = mk_graph(fplog, &((*top)->idef), 0, top_global->natoms, FALSE, FALSE); ++ } ++ else ++ { ++ *graph = NULL; ++ } ++ ++ atoms2md(top_global, ir, 0, NULL, top_global->natoms, mdatoms); ++ update_mdatoms(mdatoms, state_global->lambda[efptFEP]); ++ ++ if (vsite) ++ { ++ set_vsite_top(vsite, *top, mdatoms, cr); ++ } ++ } ++ ++ if (constr) ++ { ++ if (ir->eConstrAlg == econtSHAKE && ++ gmx_mtop_ftype_count(top_global, F_CONSTR) > 0) ++ { ++ gmx_fatal(FARGS, "Can not do energy minimization with %s, use %s\n", ++ econstr_names[econtSHAKE], econstr_names[econtLINCS]); ++ } ++ ++ if (!DOMAINDECOMP(cr)) ++ { ++ set_constraints(constr, *top, ir, mdatoms, cr); ++ } ++ ++ if (!ir->bContinuation) ++ { ++ /* Constrain the starting coordinates */ ++ dvdl_constr = 0; ++ constrain(PAR(cr) ? NULL : fplog, TRUE, TRUE, constr, &(*top)->idef, ++ ir, NULL, cr, -1, 0, 1.0, mdatoms, ++ ems->s.x, ems->s.x, NULL, fr->bMolPBC, ems->s.box, ++ ems->s.lambda[efptFEP], &dvdl_constr, ++ NULL, NULL, nrnb, econqCoord, FALSE, 0, 0); ++ } ++ } ++ ++ if (PAR(cr)) ++ { ++ *gstat = global_stat_init(ir); ++ } ++ ++ *outf = init_mdoutf(fplog, nfile, fnm, 0, cr, ir, top_global, NULL, wcycle); ++ ++ snew(*enerd, 1); ++ init_enerdata(top_global->groups.grps[egcENER].nr, ir->fepvals->n_lambda, ++ *enerd); ++ ++ if (mdebin != NULL) ++ { ++ /* Init bin for energy stuff */ ++ *mdebin = init_mdebin(mdoutf_get_fp_ene(*outf), top_global, ir, NULL); ++ } ++ ++ clear_rvec(mu_tot); ++ calc_shifts(ems->s.box, fr->shift_vec); ++} ++ ++static void finish_em(t_commrec *cr, gmx_mdoutf_t outf, ++ gmx_walltime_accounting_t walltime_accounting, ++ gmx_wallcycle_t wcycle) ++{ ++ if (!(cr->duty & DUTY_PME)) ++ { ++ /* Tell the PME only node to finish */ ++ gmx_pme_send_finish(cr); ++ } ++ ++ done_mdoutf(outf); ++ ++ em_time_end(walltime_accounting, wcycle); ++} ++ ++static void swap_em_state(em_state_t *ems1, em_state_t *ems2) ++{ ++ em_state_t tmp; ++ ++ tmp = *ems1; ++ *ems1 = *ems2; ++ *ems2 = tmp; ++} ++ ++static void copy_em_coords(em_state_t *ems, t_state *state) ++{ ++ int i; ++ ++ for (i = 0; (i < state->natoms); i++) ++ { ++ copy_rvec(ems->s.x[i], state->x[i]); ++ } ++} ++ ++static void write_em_traj(FILE *fplog, t_commrec *cr, ++ gmx_mdoutf_t outf, ++ gmx_bool bX, gmx_bool bF, const char *confout, ++ gmx_mtop_t *top_global, ++ t_inputrec *ir, gmx_int64_t step, ++ em_state_t *state, ++ t_state *state_global, rvec *f_global) ++{ ++ int mdof_flags; ++ gmx_bool bIMDout = FALSE; ++ ++ ++ /* Shall we do IMD output? */ ++ if (ir->bIMD) ++ { ++ bIMDout = do_per_step(step, IMD_get_step(ir->imd->setup)); ++ } ++ ++ if ((bX || bF || bIMDout || confout != NULL) && !DOMAINDECOMP(cr)) ++ { ++ copy_em_coords(state, state_global); ++ f_global = state->f; ++ } ++ ++ mdof_flags = 0; ++ if (bX) ++ { ++ mdof_flags |= MDOF_X; ++ } ++ if (bF) ++ { ++ mdof_flags |= MDOF_F; ++ } ++ ++ /* If we want IMD output, set appropriate MDOF flag */ ++ if (ir->bIMD) ++ { ++ mdof_flags |= MDOF_IMD; ++ } ++ ++ mdoutf_write_to_trajectory_files(fplog, cr, outf, mdof_flags, ++ top_global, step, (double)step, ++ &state->s, state_global, state->f, f_global); ++ ++ if (confout != NULL && MASTER(cr)) ++ { ++ if (ir->ePBC != epbcNONE && !ir->bPeriodicMols && DOMAINDECOMP(cr)) ++ { ++ /* Make molecules whole only for confout writing */ ++ do_pbc_mtop(fplog, ir->ePBC, state_global->box, top_global, ++ state_global->x); ++ } ++ ++ write_sto_conf_mtop(confout, ++ *top_global->name, top_global, ++ state_global->x, NULL, ir->ePBC, state_global->box); ++ } ++} ++ ++static void do_em_step(t_commrec *cr, t_inputrec *ir, t_mdatoms *md, ++ gmx_bool bMolPBC, ++ em_state_t *ems1, real a, rvec *f, em_state_t *ems2, ++ gmx_constr_t constr, gmx_localtop_t *top, ++ t_nrnb *nrnb, gmx_wallcycle_t wcycle, ++ gmx_int64_t count) ++ ++{ ++ t_state *s1, *s2; ++ int i; ++ int start, end; ++ rvec *x1, *x2; ++ real dvdl_constr; ++ int nthreads gmx_unused; ++ ++ s1 = &ems1->s; ++ s2 = &ems2->s; ++ ++ if (DOMAINDECOMP(cr) && s1->ddp_count != cr->dd->ddp_count) ++ { ++ gmx_incons("state mismatch in do_em_step"); ++ } ++ ++ s2->flags = s1->flags; ++ ++ if (s2->nalloc != s1->nalloc) ++ { ++ s2->nalloc = s1->nalloc; ++ srenew(s2->x, s1->nalloc); ++ srenew(ems2->f, s1->nalloc); ++ if (s2->flags & (1<cg_p, s1->nalloc); ++ } ++ } ++ ++ s2->natoms = s1->natoms; ++ copy_mat(s1->box, s2->box); ++ /* Copy free energy state */ ++ for (i = 0; i < efptNR; i++) ++ { ++ s2->lambda[i] = s1->lambda[i]; ++ } ++ copy_mat(s1->box, s2->box); ++ ++ start = 0; ++ end = md->homenr; ++ ++ x1 = s1->x; ++ x2 = s2->x; ++ ++ nthreads = gmx_omp_nthreads_get(emntUpdate); ++#pragma omp parallel num_threads(nthreads) ++ { ++ int gf, i, m; ++ ++ gf = 0; ++#pragma omp for schedule(static) nowait ++ for (i = start; i < end; i++) ++ { ++ if (md->cFREEZE) ++ { ++ gf = md->cFREEZE[i]; ++ } ++ for (m = 0; m < DIM; m++) ++ { ++ if (ir->opts.nFreeze[gf][m]) ++ { ++ x2[i][m] = x1[i][m]; ++ } ++ else ++ { ++ x2[i][m] = x1[i][m] + a*f[i][m]; ++ } ++ } ++ } ++ ++ if (s2->flags & (1<cg_p; ++ x2 = s2->cg_p; ++#pragma omp for schedule(static) nowait ++ for (i = start; i < end; i++) ++ { ++ copy_rvec(x1[i], x2[i]); ++ } ++ } ++ ++ if (DOMAINDECOMP(cr)) ++ { ++ s2->ddp_count = s1->ddp_count; ++ if (s2->cg_gl_nalloc < s1->cg_gl_nalloc) ++ { ++#pragma omp barrier ++ s2->cg_gl_nalloc = s1->cg_gl_nalloc; ++ srenew(s2->cg_gl, s2->cg_gl_nalloc); ++#pragma omp barrier ++ } ++ s2->ncg_gl = s1->ncg_gl; ++#pragma omp for schedule(static) nowait ++ for (i = 0; i < s2->ncg_gl; i++) ++ { ++ s2->cg_gl[i] = s1->cg_gl[i]; ++ } ++ s2->ddp_count_cg_gl = s1->ddp_count_cg_gl; ++ } ++ } ++ ++ if (constr) ++ { ++ wallcycle_start(wcycle, ewcCONSTR); ++ dvdl_constr = 0; ++ constrain(NULL, TRUE, TRUE, constr, &top->idef, ++ ir, NULL, cr, count, 0, 1.0, md, ++ s1->x, s2->x, NULL, bMolPBC, s2->box, ++ s2->lambda[efptBONDED], &dvdl_constr, ++ NULL, NULL, nrnb, econqCoord, FALSE, 0, 0); ++ wallcycle_stop(wcycle, ewcCONSTR); ++ } ++} ++ ++static void em_dd_partition_system(FILE *fplog, int step, t_commrec *cr, ++ gmx_mtop_t *top_global, t_inputrec *ir, ++ em_state_t *ems, gmx_localtop_t *top, ++ t_mdatoms *mdatoms, t_forcerec *fr, ++ gmx_vsite_t *vsite, gmx_constr_t constr, ++ t_nrnb *nrnb, gmx_wallcycle_t wcycle) ++{ ++ /* Repartition the domain decomposition */ ++ wallcycle_start(wcycle, ewcDOMDEC); ++ dd_partition_system(fplog, step, cr, FALSE, 1, ++ NULL, top_global, ir, ++ &ems->s, &ems->f, ++ mdatoms, top, fr, vsite, NULL, constr, ++ nrnb, wcycle, FALSE); ++ dd_store_state(cr->dd, &ems->s); ++ wallcycle_stop(wcycle, ewcDOMDEC); ++} ++ ++static void evaluate_energy(FILE *fplog, t_commrec *cr, ++ gmx_mtop_t *top_global, ++ em_state_t *ems, gmx_localtop_t *top, ++ t_inputrec *inputrec, ++ t_nrnb *nrnb, gmx_wallcycle_t wcycle, ++ gmx_global_stat_t gstat, ++ gmx_vsite_t *vsite, gmx_constr_t constr, ++ t_fcdata *fcd, ++ t_graph *graph, t_mdatoms *mdatoms, ++ t_forcerec *fr, rvec mu_tot, ++ gmx_enerdata_t *enerd, tensor vir, tensor pres, ++ gmx_int64_t count, gmx_bool bFirst) ++{ ++ real t; ++ gmx_bool bNS; ++ int nabnsb; ++ tensor force_vir, shake_vir, ekin; ++ real dvdl_constr, prescorr, enercorr, dvdlcorr; ++ real terminate = 0; ++ ++ /* Set the time to the initial time, the time does not change during EM */ ++ t = inputrec->init_t; ++ ++ if (bFirst || ++ (DOMAINDECOMP(cr) && ems->s.ddp_count < cr->dd->ddp_count)) ++ { ++ /* This is the first state or an old state used before the last ns */ ++ bNS = TRUE; ++ } ++ else ++ { ++ bNS = FALSE; ++ if (inputrec->nstlist > 0) ++ { ++ bNS = TRUE; ++ } ++ else if (inputrec->nstlist == -1) ++ { ++ nabnsb = natoms_beyond_ns_buffer(inputrec, fr, &top->cgs, NULL, ems->s.x); ++ if (PAR(cr)) ++ { ++ gmx_sumi(1, &nabnsb, cr); ++ } ++ bNS = (nabnsb > 0); ++ } ++ } ++ ++ if (vsite) ++ { ++ construct_vsites(vsite, ems->s.x, 1, NULL, ++ top->idef.iparams, top->idef.il, ++ fr->ePBC, fr->bMolPBC, cr, ems->s.box); ++ } ++ ++ if (DOMAINDECOMP(cr) && bNS) ++ { ++ /* Repartition the domain decomposition */ ++ em_dd_partition_system(fplog, count, cr, top_global, inputrec, ++ ems, top, mdatoms, fr, vsite, constr, ++ nrnb, wcycle); ++ } ++ ++ /* Calc force & energy on new trial position */ ++ /* do_force always puts the charge groups in the box and shifts again ++ * We do not unshift, so molecules are always whole in congrad.c ++ */ ++ do_force(fplog, cr, inputrec, ++ count, nrnb, wcycle, top, &top_global->groups, ++ ems->s.box, ems->s.x, &ems->s.hist, ++ ems->f, force_vir, mdatoms, enerd, fcd, ++ ems->s.lambda, graph, fr, vsite, mu_tot, t, NULL, NULL, TRUE, ++ GMX_FORCE_STATECHANGED | GMX_FORCE_ALLFORCES | ++ GMX_FORCE_VIRIAL | GMX_FORCE_ENERGY | ++ (bNS ? GMX_FORCE_NS | GMX_FORCE_DO_LR : 0)); ++ ++ /* Clear the unused shake virial and pressure */ ++ clear_mat(shake_vir); ++ clear_mat(pres); ++ ++ /* Communicate stuff when parallel */ ++ if (PAR(cr) && inputrec->eI != eiNM) ++ { ++ wallcycle_start(wcycle, ewcMoveE); ++ ++ global_stat(fplog, gstat, cr, enerd, force_vir, shake_vir, mu_tot, ++ inputrec, NULL, NULL, NULL, 1, &terminate, ++ top_global, &ems->s, FALSE, ++ CGLO_ENERGY | ++ CGLO_PRESSURE | ++ CGLO_CONSTRAINT | ++ CGLO_FIRSTITERATE); ++ ++ wallcycle_stop(wcycle, ewcMoveE); ++ } ++ ++ /* Calculate long range corrections to pressure and energy */ ++ calc_dispcorr(fplog, inputrec, fr, count, top_global->natoms, ems->s.box, ems->s.lambda[efptVDW], ++ pres, force_vir, &prescorr, &enercorr, &dvdlcorr); ++ enerd->term[F_DISPCORR] = enercorr; ++ enerd->term[F_EPOT] += enercorr; ++ enerd->term[F_PRES] += prescorr; ++ enerd->term[F_DVDL] += dvdlcorr; ++ ++ ems->epot = enerd->term[F_EPOT]; ++ ++ if (constr) ++ { ++ /* Project out the constraint components of the force */ ++ wallcycle_start(wcycle, ewcCONSTR); ++ dvdl_constr = 0; ++ constrain(NULL, FALSE, FALSE, constr, &top->idef, ++ inputrec, NULL, cr, count, 0, 1.0, mdatoms, ++ ems->s.x, ems->f, ems->f, fr->bMolPBC, ems->s.box, ++ ems->s.lambda[efptBONDED], &dvdl_constr, ++ NULL, &shake_vir, nrnb, econqForceDispl, FALSE, 0, 0); ++ if (fr->bSepDVDL && fplog) ++ { ++ gmx_print_sepdvdl(fplog, "Constraints", t, dvdl_constr); ++ } ++ enerd->term[F_DVDL_CONSTR] += dvdl_constr; ++ m_add(force_vir, shake_vir, vir); ++ wallcycle_stop(wcycle, ewcCONSTR); ++ } ++ else ++ { ++ copy_mat(force_vir, vir); ++ } ++ ++ clear_mat(ekin); ++ enerd->term[F_PRES] = ++ calc_pres(fr->ePBC, inputrec->nwall, ems->s.box, ekin, vir, pres); ++ ++ sum_dhdl(enerd, ems->s.lambda, inputrec->fepvals); ++ ++ if (EI_ENERGY_MINIMIZATION(inputrec->eI)) ++ { ++ get_state_f_norm_max(cr, &(inputrec->opts), mdatoms, ems); ++ } ++} ++ ++static double reorder_partsum(t_commrec *cr, t_grpopts *opts, t_mdatoms *mdatoms, ++ gmx_mtop_t *mtop, ++ em_state_t *s_min, em_state_t *s_b) ++{ ++ rvec *fm, *fb, *fmg; ++ t_block *cgs_gl; ++ int ncg, *cg_gl, *index, c, cg, i, a0, a1, a, gf, m; ++ double partsum; ++ unsigned char *grpnrFREEZE; ++ ++ if (debug) ++ { ++ fprintf(debug, "Doing reorder_partsum\n"); ++ } ++ ++ fm = s_min->f; ++ fb = s_b->f; ++ ++ cgs_gl = dd_charge_groups_global(cr->dd); ++ index = cgs_gl->index; ++ ++ /* Collect fm in a global vector fmg. ++ * This conflicts with the spirit of domain decomposition, ++ * but to fully optimize this a much more complicated algorithm is required. ++ */ ++ snew(fmg, mtop->natoms); ++ ++ ncg = s_min->s.ncg_gl; ++ cg_gl = s_min->s.cg_gl; ++ i = 0; ++ for (c = 0; c < ncg; c++) ++ { ++ cg = cg_gl[c]; ++ a0 = index[cg]; ++ a1 = index[cg+1]; ++ for (a = a0; a < a1; a++) ++ { ++ copy_rvec(fm[i], fmg[a]); ++ i++; ++ } ++ } ++ gmx_sum(mtop->natoms*3, fmg[0], cr); ++ ++ /* Now we will determine the part of the sum for the cgs in state s_b */ ++ ncg = s_b->s.ncg_gl; ++ cg_gl = s_b->s.cg_gl; ++ partsum = 0; ++ i = 0; ++ gf = 0; ++ grpnrFREEZE = mtop->groups.grpnr[egcFREEZE]; ++ for (c = 0; c < ncg; c++) ++ { ++ cg = cg_gl[c]; ++ a0 = index[cg]; ++ a1 = index[cg+1]; ++ for (a = a0; a < a1; a++) ++ { ++ if (mdatoms->cFREEZE && grpnrFREEZE) ++ { ++ gf = grpnrFREEZE[i]; ++ } ++ for (m = 0; m < DIM; m++) ++ { ++ if (!opts->nFreeze[gf][m]) ++ { ++ partsum += (fb[i][m] - fmg[a][m])*fb[i][m]; ++ } ++ } ++ i++; ++ } ++ } ++ ++ sfree(fmg); ++ ++ return partsum; ++} ++ ++static real pr_beta(t_commrec *cr, t_grpopts *opts, t_mdatoms *mdatoms, ++ gmx_mtop_t *mtop, ++ em_state_t *s_min, em_state_t *s_b) ++{ ++ rvec *fm, *fb; ++ double sum; ++ int gf, i, m; ++ ++ /* This is just the classical Polak-Ribiere calculation of beta; ++ * it looks a bit complicated since we take freeze groups into account, ++ * and might have to sum it in parallel runs. ++ */ ++ ++ if (!DOMAINDECOMP(cr) || ++ (s_min->s.ddp_count == cr->dd->ddp_count && ++ s_b->s.ddp_count == cr->dd->ddp_count)) ++ { ++ fm = s_min->f; ++ fb = s_b->f; ++ sum = 0; ++ gf = 0; ++ /* This part of code can be incorrect with DD, ++ * since the atom ordering in s_b and s_min might differ. ++ */ ++ for (i = 0; i < mdatoms->homenr; i++) ++ { ++ if (mdatoms->cFREEZE) ++ { ++ gf = mdatoms->cFREEZE[i]; ++ } ++ for (m = 0; m < DIM; m++) ++ { ++ if (!opts->nFreeze[gf][m]) ++ { ++ sum += (fb[i][m] - fm[i][m])*fb[i][m]; ++ } ++ } ++ } ++ } ++ else ++ { ++ /* We need to reorder cgs while summing */ ++ sum = reorder_partsum(cr, opts, mdatoms, mtop, s_min, s_b); ++ } ++ if (PAR(cr)) ++ { ++ gmx_sumd(1, &sum, cr); ++ } ++ ++ return sum/sqr(s_min->fnorm); ++} ++ ++double do_cg(FILE *fplog, t_commrec *cr, ++ int nfile, const t_filenm fnm[], ++ const output_env_t gmx_unused oenv, gmx_bool bVerbose, gmx_bool gmx_unused bCompact, ++ int gmx_unused nstglobalcomm, ++ gmx_vsite_t *vsite, gmx_constr_t constr, ++ int gmx_unused stepout, ++ t_inputrec *inputrec, ++ gmx_mtop_t *top_global, t_fcdata *fcd, ++ t_state *state_global, ++ t_mdatoms *mdatoms, ++ t_nrnb *nrnb, gmx_wallcycle_t wcycle, ++ gmx_edsam_t gmx_unused ed, ++ t_forcerec *fr, ++ int gmx_unused repl_ex_nst, int gmx_unused repl_ex_nex, int gmx_unused repl_ex_seed, ++ gmx_membed_t gmx_unused membed, ++ real gmx_unused cpt_period, real gmx_unused max_hours, ++ const char gmx_unused *deviceOptions, ++ int imdport, ++ unsigned long gmx_unused Flags, ++ gmx_walltime_accounting_t walltime_accounting) ++{ ++ const char *CG = "Polak-Ribiere Conjugate Gradients"; ++ ++ em_state_t *s_min, *s_a, *s_b, *s_c; ++ gmx_localtop_t *top; ++ gmx_enerdata_t *enerd; ++ rvec *f; ++ gmx_global_stat_t gstat; ++ t_graph *graph; ++ rvec *f_global, *p, *sf, *sfm; ++ double gpa, gpb, gpc, tmp, sum[2], minstep; ++ real fnormn; ++ real stepsize; ++ real a, b, c, beta = 0.0; ++ real epot_repl = 0; ++ real pnorm; ++ t_mdebin *mdebin; ++ gmx_bool converged, foundlower; ++ rvec mu_tot; ++ gmx_bool do_log = FALSE, do_ene = FALSE, do_x, do_f; ++ tensor vir, pres; ++ int number_steps, neval = 0, nstcg = inputrec->nstcgsteep; ++ gmx_mdoutf_t outf; ++ int i, m, gf, step, nminstep; ++ real terminate = 0; ++ ++ step = 0; ++ ++ s_min = init_em_state(); ++ s_a = init_em_state(); ++ s_b = init_em_state(); ++ s_c = init_em_state(); ++ ++ /* Init em and store the local state in s_min */ ++ init_em(fplog, CG, cr, inputrec, ++ state_global, top_global, s_min, &top, &f, &f_global, ++ nrnb, mu_tot, fr, &enerd, &graph, mdatoms, &gstat, vsite, constr, ++ nfile, fnm, &outf, &mdebin, imdport, Flags, wcycle); ++ ++ /* Print to log file */ ++ print_em_start(fplog, cr, walltime_accounting, wcycle, CG); ++ ++ /* Max number of steps */ ++ number_steps = inputrec->nsteps; ++ ++ if (MASTER(cr)) ++ { ++ sp_header(stderr, CG, inputrec->em_tol, number_steps); ++ } ++ if (fplog) ++ { ++ sp_header(fplog, CG, inputrec->em_tol, number_steps); ++ } ++ ++ /* Call the force routine and some auxiliary (neighboursearching etc.) */ ++ /* do_force always puts the charge groups in the box and shifts again ++ * We do not unshift, so molecules are always whole in congrad.c ++ */ ++ evaluate_energy(fplog, cr, ++ top_global, s_min, top, ++ inputrec, nrnb, wcycle, gstat, ++ vsite, constr, fcd, graph, mdatoms, fr, ++ mu_tot, enerd, vir, pres, -1, TRUE); ++ where(); ++ ++ if (MASTER(cr)) ++ { ++ /* Copy stuff to the energy bin for easy printing etc. */ ++ upd_mdebin(mdebin, FALSE, FALSE, (double)step, ++ mdatoms->tmass, enerd, &s_min->s, inputrec->fepvals, inputrec->expandedvals, s_min->s.box, ++ NULL, NULL, vir, pres, NULL, mu_tot, constr); ++ ++ print_ebin_header(fplog, step, step, s_min->s.lambda[efptFEP]); ++ print_ebin(mdoutf_get_fp_ene(outf), TRUE, FALSE, FALSE, fplog, step, step, eprNORMAL, ++ TRUE, mdebin, fcd, &(top_global->groups), &(inputrec->opts)); ++ } ++ where(); ++ ++ /* Estimate/guess the initial stepsize */ ++ stepsize = inputrec->em_stepsize/s_min->fnorm; ++ ++ if (MASTER(cr)) ++ { ++ fprintf(stderr, " F-max = %12.5e on atom %d\n", ++ s_min->fmax, s_min->a_fmax+1); ++ fprintf(stderr, " F-Norm = %12.5e\n", ++ s_min->fnorm/sqrt(state_global->natoms)); ++ fprintf(stderr, "\n"); ++ /* and copy to the log file too... */ ++ fprintf(fplog, " F-max = %12.5e on atom %d\n", ++ s_min->fmax, s_min->a_fmax+1); ++ fprintf(fplog, " F-Norm = %12.5e\n", ++ s_min->fnorm/sqrt(state_global->natoms)); ++ fprintf(fplog, "\n"); ++ } ++ /* Start the loop over CG steps. ++ * Each successful step is counted, and we continue until ++ * we either converge or reach the max number of steps. ++ */ ++ converged = FALSE; ++ for (step = 0; (number_steps < 0 || (number_steps >= 0 && step <= number_steps)) && !converged; step++) ++ { ++ ++ /* start taking steps in a new direction ++ * First time we enter the routine, beta=0, and the direction is ++ * simply the negative gradient. ++ */ ++ ++ /* Calculate the new direction in p, and the gradient in this direction, gpa */ ++ p = s_min->s.cg_p; ++ sf = s_min->f; ++ gpa = 0; ++ gf = 0; ++ for (i = 0; i < mdatoms->homenr; i++) ++ { ++ if (mdatoms->cFREEZE) ++ { ++ gf = mdatoms->cFREEZE[i]; ++ } ++ for (m = 0; m < DIM; m++) ++ { ++ if (!inputrec->opts.nFreeze[gf][m]) ++ { ++ p[i][m] = sf[i][m] + beta*p[i][m]; ++ gpa -= p[i][m]*sf[i][m]; ++ /* f is negative gradient, thus the sign */ ++ } ++ else ++ { ++ p[i][m] = 0; ++ } ++ } ++ } ++ ++ /* Sum the gradient along the line across CPUs */ ++ if (PAR(cr)) ++ { ++ gmx_sumd(1, &gpa, cr); ++ } ++ ++ /* Calculate the norm of the search vector */ ++ get_f_norm_max(cr, &(inputrec->opts), mdatoms, p, &pnorm, NULL, NULL); ++ ++ /* Just in case stepsize reaches zero due to numerical precision... */ ++ if (stepsize <= 0) ++ { ++ stepsize = inputrec->em_stepsize/pnorm; ++ } ++ ++ /* ++ * Double check the value of the derivative in the search direction. ++ * If it is positive it must be due to the old information in the ++ * CG formula, so just remove that and start over with beta=0. ++ * This corresponds to a steepest descent step. ++ */ ++ if (gpa > 0) ++ { ++ beta = 0; ++ step--; /* Don't count this step since we are restarting */ ++ continue; /* Go back to the beginning of the big for-loop */ ++ } ++ ++ /* Calculate minimum allowed stepsize, before the average (norm) ++ * relative change in coordinate is smaller than precision ++ */ ++ minstep = 0; ++ for (i = 0; i < mdatoms->homenr; i++) ++ { ++ for (m = 0; m < DIM; m++) ++ { ++ tmp = fabs(s_min->s.x[i][m]); ++ if (tmp < 1.0) ++ { ++ tmp = 1.0; ++ } ++ tmp = p[i][m]/tmp; ++ minstep += tmp*tmp; ++ } ++ } ++ /* Add up from all CPUs */ ++ if (PAR(cr)) ++ { ++ gmx_sumd(1, &minstep, cr); ++ } ++ ++ minstep = GMX_REAL_EPS/sqrt(minstep/(3*state_global->natoms)); ++ ++ if (stepsize < minstep) ++ { ++ converged = TRUE; ++ break; ++ } ++ ++ /* Write coordinates if necessary */ ++ do_x = do_per_step(step, inputrec->nstxout); ++ do_f = do_per_step(step, inputrec->nstfout); ++ ++ write_em_traj(fplog, cr, outf, do_x, do_f, NULL, ++ top_global, inputrec, step, ++ s_min, state_global, f_global); ++ ++ /* Take a step downhill. ++ * In theory, we should minimize the function along this direction. ++ * That is quite possible, but it turns out to take 5-10 function evaluations ++ * for each line. However, we dont really need to find the exact minimum - ++ * it is much better to start a new CG step in a modified direction as soon ++ * as we are close to it. This will save a lot of energy evaluations. ++ * ++ * In practice, we just try to take a single step. ++ * If it worked (i.e. lowered the energy), we increase the stepsize but ++ * the continue straight to the next CG step without trying to find any minimum. ++ * If it didn't work (higher energy), there must be a minimum somewhere between ++ * the old position and the new one. ++ * ++ * Due to the finite numerical accuracy, it turns out that it is a good idea ++ * to even accept a SMALL increase in energy, if the derivative is still downhill. ++ * This leads to lower final energies in the tests I've done. / Erik ++ */ ++ s_a->epot = s_min->epot; ++ a = 0.0; ++ c = a + stepsize; /* reference position along line is zero */ ++ ++ if (DOMAINDECOMP(cr) && s_min->s.ddp_count < cr->dd->ddp_count) ++ { ++ em_dd_partition_system(fplog, step, cr, top_global, inputrec, ++ s_min, top, mdatoms, fr, vsite, constr, ++ nrnb, wcycle); ++ } ++ ++ /* Take a trial step (new coords in s_c) */ ++ do_em_step(cr, inputrec, mdatoms, fr->bMolPBC, s_min, c, s_min->s.cg_p, s_c, ++ constr, top, nrnb, wcycle, -1); ++ ++ neval++; ++ /* Calculate energy for the trial step */ ++ evaluate_energy(fplog, cr, ++ top_global, s_c, top, ++ inputrec, nrnb, wcycle, gstat, ++ vsite, constr, fcd, graph, mdatoms, fr, ++ mu_tot, enerd, vir, pres, -1, FALSE); ++ ++ /* Calc derivative along line */ ++ p = s_c->s.cg_p; ++ sf = s_c->f; ++ gpc = 0; ++ for (i = 0; i < mdatoms->homenr; i++) ++ { ++ for (m = 0; m < DIM; m++) ++ { ++ gpc -= p[i][m]*sf[i][m]; /* f is negative gradient, thus the sign */ ++ } ++ } ++ /* Sum the gradient along the line across CPUs */ ++ if (PAR(cr)) ++ { ++ gmx_sumd(1, &gpc, cr); ++ } ++ ++ /* This is the max amount of increase in energy we tolerate */ ++ tmp = sqrt(GMX_REAL_EPS)*fabs(s_a->epot); ++ ++ /* Accept the step if the energy is lower, or if it is not significantly higher ++ * and the line derivative is still negative. ++ */ ++ if (s_c->epot < s_a->epot || (gpc < 0 && s_c->epot < (s_a->epot + tmp))) ++ { ++ foundlower = TRUE; ++ /* Great, we found a better energy. Increase step for next iteration ++ * if we are still going down, decrease it otherwise ++ */ ++ if (gpc < 0) ++ { ++ stepsize *= 1.618034; /* The golden section */ ++ } ++ else ++ { ++ stepsize *= 0.618034; /* 1/golden section */ ++ } ++ } ++ else ++ { ++ /* New energy is the same or higher. We will have to do some work ++ * to find a smaller value in the interval. Take smaller step next time! ++ */ ++ foundlower = FALSE; ++ stepsize *= 0.618034; ++ } ++ ++ ++ ++ ++ /* OK, if we didn't find a lower value we will have to locate one now - there must ++ * be one in the interval [a=0,c]. ++ * The same thing is valid here, though: Don't spend dozens of iterations to find ++ * the line minimum. We try to interpolate based on the derivative at the endpoints, ++ * and only continue until we find a lower value. In most cases this means 1-2 iterations. ++ * ++ * I also have a safeguard for potentially really patological functions so we never ++ * take more than 20 steps before we give up ... ++ * ++ * If we already found a lower value we just skip this step and continue to the update. ++ */ ++ if (!foundlower) ++ { ++ nminstep = 0; ++ ++ do ++ { ++ /* Select a new trial point. ++ * If the derivatives at points a & c have different sign we interpolate to zero, ++ * otherwise just do a bisection. ++ */ ++ if (gpa < 0 && gpc > 0) ++ { ++ b = a + gpa*(a-c)/(gpc-gpa); ++ } ++ else ++ { ++ b = 0.5*(a+c); ++ } ++ ++ /* safeguard if interpolation close to machine accuracy causes errors: ++ * never go outside the interval ++ */ ++ if (b <= a || b >= c) ++ { ++ b = 0.5*(a+c); ++ } ++ ++ if (DOMAINDECOMP(cr) && s_min->s.ddp_count != cr->dd->ddp_count) ++ { ++ /* Reload the old state */ ++ em_dd_partition_system(fplog, -1, cr, top_global, inputrec, ++ s_min, top, mdatoms, fr, vsite, constr, ++ nrnb, wcycle); ++ } ++ ++ /* Take a trial step to this new point - new coords in s_b */ ++ do_em_step(cr, inputrec, mdatoms, fr->bMolPBC, s_min, b, s_min->s.cg_p, s_b, ++ constr, top, nrnb, wcycle, -1); ++ ++ neval++; ++ /* Calculate energy for the trial step */ ++ evaluate_energy(fplog, cr, ++ top_global, s_b, top, ++ inputrec, nrnb, wcycle, gstat, ++ vsite, constr, fcd, graph, mdatoms, fr, ++ mu_tot, enerd, vir, pres, -1, FALSE); ++ ++ /* p does not change within a step, but since the domain decomposition ++ * might change, we have to use cg_p of s_b here. ++ */ ++ p = s_b->s.cg_p; ++ sf = s_b->f; ++ gpb = 0; ++ for (i = 0; i < mdatoms->homenr; i++) ++ { ++ for (m = 0; m < DIM; m++) ++ { ++ gpb -= p[i][m]*sf[i][m]; /* f is negative gradient, thus the sign */ ++ } ++ } ++ /* Sum the gradient along the line across CPUs */ ++ if (PAR(cr)) ++ { ++ gmx_sumd(1, &gpb, cr); ++ } ++ ++ if (debug) ++ { ++ fprintf(debug, "CGE: EpotA %f EpotB %f EpotC %f gpb %f\n", ++ s_a->epot, s_b->epot, s_c->epot, gpb); ++ } ++ ++ epot_repl = s_b->epot; ++ ++ /* Keep one of the intervals based on the value of the derivative at the new point */ ++ if (gpb > 0) ++ { ++ /* Replace c endpoint with b */ ++ swap_em_state(s_b, s_c); ++ c = b; ++ gpc = gpb; ++ } ++ else ++ { ++ /* Replace a endpoint with b */ ++ swap_em_state(s_b, s_a); ++ a = b; ++ gpa = gpb; ++ } ++ ++ /* ++ * Stop search as soon as we find a value smaller than the endpoints. ++ * Never run more than 20 steps, no matter what. ++ */ ++ nminstep++; ++ } ++ while ((epot_repl > s_a->epot || epot_repl > s_c->epot) && ++ (nminstep < 20)); ++ ++ if (fabs(epot_repl - s_min->epot) < fabs(s_min->epot)*GMX_REAL_EPS || ++ nminstep >= 20) ++ { ++ /* OK. We couldn't find a significantly lower energy. ++ * If beta==0 this was steepest descent, and then we give up. ++ * If not, set beta=0 and restart with steepest descent before quitting. ++ */ ++ if (beta == 0.0) ++ { ++ /* Converged */ ++ converged = TRUE; ++ break; ++ } ++ else ++ { ++ /* Reset memory before giving up */ ++ beta = 0.0; ++ continue; ++ } ++ } ++ ++ /* Select min energy state of A & C, put the best in B. ++ */ ++ if (s_c->epot < s_a->epot) ++ { ++ if (debug) ++ { ++ fprintf(debug, "CGE: C (%f) is lower than A (%f), moving C to B\n", ++ s_c->epot, s_a->epot); ++ } ++ swap_em_state(s_b, s_c); ++ gpb = gpc; ++ b = c; ++ } ++ else ++ { ++ if (debug) ++ { ++ fprintf(debug, "CGE: A (%f) is lower than C (%f), moving A to B\n", ++ s_a->epot, s_c->epot); ++ } ++ swap_em_state(s_b, s_a); ++ gpb = gpa; ++ b = a; ++ } ++ ++ } ++ else ++ { ++ if (debug) ++ { ++ fprintf(debug, "CGE: Found a lower energy %f, moving C to B\n", ++ s_c->epot); ++ } ++ swap_em_state(s_b, s_c); ++ gpb = gpc; ++ b = c; ++ } ++ ++ /* new search direction */ ++ /* beta = 0 means forget all memory and restart with steepest descents. */ ++ if (nstcg && ((step % nstcg) == 0)) ++ { ++ beta = 0.0; ++ } ++ else ++ { ++ /* s_min->fnorm cannot be zero, because then we would have converged ++ * and broken out. ++ */ ++ ++ /* Polak-Ribiere update. ++ * Change to fnorm2/fnorm2_old for Fletcher-Reeves ++ */ ++ beta = pr_beta(cr, &inputrec->opts, mdatoms, top_global, s_min, s_b); ++ } ++ /* Limit beta to prevent oscillations */ ++ if (fabs(beta) > 5.0) ++ { ++ beta = 0.0; ++ } ++ ++ ++ /* update positions */ ++ swap_em_state(s_min, s_b); ++ gpa = gpb; ++ ++ /* Print it if necessary */ ++ if (MASTER(cr)) ++ { ++ if (bVerbose) ++ { ++ fprintf(stderr, "\rStep %d, Epot=%12.6e, Fnorm=%9.3e, Fmax=%9.3e (atom %d)\n", ++ step, s_min->epot, s_min->fnorm/sqrt(state_global->natoms), ++ s_min->fmax, s_min->a_fmax+1); ++ } ++ /* Store the new (lower) energies */ ++ upd_mdebin(mdebin, FALSE, FALSE, (double)step, ++ mdatoms->tmass, enerd, &s_min->s, inputrec->fepvals, inputrec->expandedvals, s_min->s.box, ++ NULL, NULL, vir, pres, NULL, mu_tot, constr); ++ ++ do_log = do_per_step(step, inputrec->nstlog); ++ do_ene = do_per_step(step, inputrec->nstenergy); ++ ++ /* Prepare IMD energy record, if bIMD is TRUE. */ ++ IMD_fill_energy_record(inputrec->bIMD, inputrec->imd, enerd, step, TRUE); ++ ++ if (do_log) ++ { ++ print_ebin_header(fplog, step, step, s_min->s.lambda[efptFEP]); ++ } ++ print_ebin(mdoutf_get_fp_ene(outf), do_ene, FALSE, FALSE, ++ do_log ? fplog : NULL, step, step, eprNORMAL, ++ TRUE, mdebin, fcd, &(top_global->groups), &(inputrec->opts)); ++ } ++ ++ /* Send energies and positions to the IMD client if bIMD is TRUE. */ ++ if (do_IMD(inputrec->bIMD, step, cr, TRUE, state_global->box, state_global->x, inputrec, 0, wcycle) && MASTER(cr)) ++ { ++ IMD_send_positions(inputrec->imd); ++ } ++ ++ /* Stop when the maximum force lies below tolerance. ++ * If we have reached machine precision, converged is already set to true. ++ */ ++ converged = converged || (s_min->fmax < inputrec->em_tol); ++ ++ } /* End of the loop */ ++ ++ /* IMD cleanup, if bIMD is TRUE. */ ++ IMD_finalize(inputrec->bIMD, inputrec->imd); ++ ++ if (converged) ++ { ++ step--; /* we never took that last step in this case */ ++ ++ } ++ if (s_min->fmax > inputrec->em_tol) ++ { ++ if (MASTER(cr)) ++ { ++ warn_step(stderr, inputrec->em_tol, step-1 == number_steps, FALSE); ++ warn_step(fplog, inputrec->em_tol, step-1 == number_steps, FALSE); ++ } ++ converged = FALSE; ++ } ++ ++ if (MASTER(cr)) ++ { ++ /* If we printed energy and/or logfile last step (which was the last step) ++ * we don't have to do it again, but otherwise print the final values. ++ */ ++ if (!do_log) ++ { ++ /* Write final value to log since we didn't do anything the last step */ ++ print_ebin_header(fplog, step, step, s_min->s.lambda[efptFEP]); ++ } ++ if (!do_ene || !do_log) ++ { ++ /* Write final energy file entries */ ++ print_ebin(mdoutf_get_fp_ene(outf), !do_ene, FALSE, FALSE, ++ !do_log ? fplog : NULL, step, step, eprNORMAL, ++ TRUE, mdebin, fcd, &(top_global->groups), &(inputrec->opts)); ++ } ++ } ++ ++ /* Print some stuff... */ ++ if (MASTER(cr)) ++ { ++ fprintf(stderr, "\nwriting lowest energy coordinates.\n"); ++ } ++ ++ /* IMPORTANT! ++ * For accurate normal mode calculation it is imperative that we ++ * store the last conformation into the full precision binary trajectory. ++ * ++ * However, we should only do it if we did NOT already write this step ++ * above (which we did if do_x or do_f was true). ++ */ ++ do_x = !do_per_step(step, inputrec->nstxout); ++ do_f = (inputrec->nstfout > 0 && !do_per_step(step, inputrec->nstfout)); ++ ++ write_em_traj(fplog, cr, outf, do_x, do_f, ftp2fn(efSTO, nfile, fnm), ++ top_global, inputrec, step, ++ s_min, state_global, f_global); ++ ++ fnormn = s_min->fnorm/sqrt(state_global->natoms); ++ ++ if (MASTER(cr)) ++ { ++ print_converged(stderr, CG, inputrec->em_tol, step, converged, number_steps, ++ s_min->epot, s_min->fmax, s_min->a_fmax, fnormn); ++ print_converged(fplog, CG, inputrec->em_tol, step, converged, number_steps, ++ s_min->epot, s_min->fmax, s_min->a_fmax, fnormn); ++ ++ fprintf(fplog, "\nPerformed %d energy evaluations in total.\n", neval); ++ } ++ ++ finish_em(cr, outf, walltime_accounting, wcycle); ++ ++ /* To print the actual number of steps we needed somewhere */ ++ walltime_accounting_set_nsteps_done(walltime_accounting, step); ++ ++ return 0; ++} /* That's all folks */ ++ ++ ++double do_lbfgs(FILE *fplog, t_commrec *cr, ++ int nfile, const t_filenm fnm[], ++ const output_env_t gmx_unused oenv, gmx_bool bVerbose, gmx_bool gmx_unused bCompact, ++ int gmx_unused nstglobalcomm, ++ gmx_vsite_t *vsite, gmx_constr_t constr, ++ int gmx_unused stepout, ++ t_inputrec *inputrec, ++ gmx_mtop_t *top_global, t_fcdata *fcd, ++ t_state *state, ++ t_mdatoms *mdatoms, ++ t_nrnb *nrnb, gmx_wallcycle_t wcycle, ++ gmx_edsam_t gmx_unused ed, ++ t_forcerec *fr, ++ int gmx_unused repl_ex_nst, int gmx_unused repl_ex_nex, int gmx_unused repl_ex_seed, ++ gmx_membed_t gmx_unused membed, ++ real gmx_unused cpt_period, real gmx_unused max_hours, ++ const char gmx_unused *deviceOptions, ++ int imdport, ++ unsigned long gmx_unused Flags, ++ gmx_walltime_accounting_t walltime_accounting) ++{ ++ static const char *LBFGS = "Low-Memory BFGS Minimizer"; ++ em_state_t ems; ++ gmx_localtop_t *top; ++ gmx_enerdata_t *enerd; ++ rvec *f; ++ gmx_global_stat_t gstat; ++ t_graph *graph; ++ rvec *f_global; ++ int ncorr, nmaxcorr, point, cp, neval, nminstep; ++ double stepsize, gpa, gpb, gpc, tmp, minstep; ++ real *rho, *alpha, *ff, *xx, *p, *s, *lastx, *lastf, **dx, **dg; ++ real *xa, *xb, *xc, *fa, *fb, *fc, *xtmp, *ftmp; ++ real a, b, c, maxdelta, delta; ++ real diag, Epot0, Epot, EpotA, EpotB, EpotC; ++ real dgdx, dgdg, sq, yr, beta; ++ t_mdebin *mdebin; ++ gmx_bool converged, first; ++ rvec mu_tot; ++ real fnorm, fmax; ++ gmx_bool do_log, do_ene, do_x, do_f, foundlower, *frozen; ++ tensor vir, pres; ++ int start, end, number_steps; ++ gmx_mdoutf_t outf; ++ int i, k, m, n, nfmax, gf, step; ++ int mdof_flags; ++ /* not used */ ++ real terminate; ++ ++ if (PAR(cr)) ++ { ++ gmx_fatal(FARGS, "Cannot do parallel L-BFGS Minimization - yet.\n"); ++ } ++ ++ if (NULL != constr) ++ { ++ gmx_fatal(FARGS, "The combination of constraints and L-BFGS minimization is not implemented. Either do not use constraints, or use another minimizer (e.g. steepest descent)."); ++ } ++ ++ n = 3*state->natoms; ++ nmaxcorr = inputrec->nbfgscorr; ++ ++ /* Allocate memory */ ++ /* Use pointers to real so we dont have to loop over both atoms and ++ * dimensions all the time... ++ * x/f are allocated as rvec *, so make new x0/f0 pointers-to-real ++ * that point to the same memory. ++ */ ++ snew(xa, n); ++ snew(xb, n); ++ snew(xc, n); ++ snew(fa, n); ++ snew(fb, n); ++ snew(fc, n); ++ snew(frozen, n); ++ ++ snew(p, n); ++ snew(lastx, n); ++ snew(lastf, n); ++ snew(rho, nmaxcorr); ++ snew(alpha, nmaxcorr); ++ ++ snew(dx, nmaxcorr); ++ for (i = 0; i < nmaxcorr; i++) ++ { ++ snew(dx[i], n); ++ } ++ ++ snew(dg, nmaxcorr); ++ for (i = 0; i < nmaxcorr; i++) ++ { ++ snew(dg[i], n); ++ } ++ ++ step = 0; ++ neval = 0; ++ ++ /* Init em */ ++ init_em(fplog, LBFGS, cr, inputrec, ++ state, top_global, &ems, &top, &f, &f_global, ++ nrnb, mu_tot, fr, &enerd, &graph, mdatoms, &gstat, vsite, constr, ++ nfile, fnm, &outf, &mdebin, imdport, Flags, wcycle); ++ /* Do_lbfgs is not completely updated like do_steep and do_cg, ++ * so we free some memory again. ++ */ ++ sfree(ems.s.x); ++ sfree(ems.f); ++ ++ xx = (real *)state->x; ++ ff = (real *)f; ++ ++ start = 0; ++ end = mdatoms->homenr; ++ ++ /* Print to log file */ ++ print_em_start(fplog, cr, walltime_accounting, wcycle, LBFGS); ++ ++ do_log = do_ene = do_x = do_f = TRUE; ++ ++ /* Max number of steps */ ++ number_steps = inputrec->nsteps; ++ ++ /* Create a 3*natoms index to tell whether each degree of freedom is frozen */ ++ gf = 0; ++ for (i = start; i < end; i++) ++ { ++ if (mdatoms->cFREEZE) ++ { ++ gf = mdatoms->cFREEZE[i]; ++ } ++ for (m = 0; m < DIM; m++) ++ { ++ frozen[3*i+m] = inputrec->opts.nFreeze[gf][m]; ++ } ++ } ++ if (MASTER(cr)) ++ { ++ sp_header(stderr, LBFGS, inputrec->em_tol, number_steps); ++ } ++ if (fplog) ++ { ++ sp_header(fplog, LBFGS, inputrec->em_tol, number_steps); ++ } ++ ++ if (vsite) ++ { ++ construct_vsites(vsite, state->x, 1, NULL, ++ top->idef.iparams, top->idef.il, ++ fr->ePBC, fr->bMolPBC, cr, state->box); ++ } ++ ++ /* Call the force routine and some auxiliary (neighboursearching etc.) */ ++ /* do_force always puts the charge groups in the box and shifts again ++ * We do not unshift, so molecules are always whole ++ */ ++ neval++; ++ ems.s.x = state->x; ++ ems.f = f; ++ evaluate_energy(fplog, cr, ++ top_global, &ems, top, ++ inputrec, nrnb, wcycle, gstat, ++ vsite, constr, fcd, graph, mdatoms, fr, ++ mu_tot, enerd, vir, pres, -1, TRUE); ++ where(); ++ ++ if (MASTER(cr)) ++ { ++ /* Copy stuff to the energy bin for easy printing etc. */ ++ upd_mdebin(mdebin, FALSE, FALSE, (double)step, ++ mdatoms->tmass, enerd, state, inputrec->fepvals, inputrec->expandedvals, state->box, ++ NULL, NULL, vir, pres, NULL, mu_tot, constr); ++ ++ print_ebin_header(fplog, step, step, state->lambda[efptFEP]); ++ print_ebin(mdoutf_get_fp_ene(outf), TRUE, FALSE, FALSE, fplog, step, step, eprNORMAL, ++ TRUE, mdebin, fcd, &(top_global->groups), &(inputrec->opts)); ++ } ++ where(); ++ ++ /* This is the starting energy */ ++ Epot = enerd->term[F_EPOT]; ++ ++ fnorm = ems.fnorm; ++ fmax = ems.fmax; ++ nfmax = ems.a_fmax; ++ ++ /* Set the initial step. ++ * since it will be multiplied by the non-normalized search direction ++ * vector (force vector the first time), we scale it by the ++ * norm of the force. ++ */ ++ ++ if (MASTER(cr)) ++ { ++ fprintf(stderr, "Using %d BFGS correction steps.\n\n", nmaxcorr); ++ fprintf(stderr, " F-max = %12.5e on atom %d\n", fmax, nfmax+1); ++ fprintf(stderr, " F-Norm = %12.5e\n", fnorm/sqrt(state->natoms)); ++ fprintf(stderr, "\n"); ++ /* and copy to the log file too... */ ++ fprintf(fplog, "Using %d BFGS correction steps.\n\n", nmaxcorr); ++ fprintf(fplog, " F-max = %12.5e on atom %d\n", fmax, nfmax+1); ++ fprintf(fplog, " F-Norm = %12.5e\n", fnorm/sqrt(state->natoms)); ++ fprintf(fplog, "\n"); ++ } ++ ++ point = 0; ++ for (i = 0; i < n; i++) ++ { ++ if (!frozen[i]) ++ { ++ dx[point][i] = ff[i]; /* Initial search direction */ ++ } ++ else ++ { ++ dx[point][i] = 0; ++ } ++ } ++ ++ stepsize = 1.0/fnorm; ++ converged = FALSE; ++ ++ /* Start the loop over BFGS steps. ++ * Each successful step is counted, and we continue until ++ * we either converge or reach the max number of steps. ++ */ ++ ++ ncorr = 0; ++ ++ /* Set the gradient from the force */ ++ converged = FALSE; ++ for (step = 0; (number_steps < 0 || (number_steps >= 0 && step <= number_steps)) && !converged; step++) ++ { ++ ++ /* Write coordinates if necessary */ ++ do_x = do_per_step(step, inputrec->nstxout); ++ do_f = do_per_step(step, inputrec->nstfout); ++ ++ mdof_flags = 0; ++ if (do_x) ++ { ++ mdof_flags |= MDOF_X; ++ } ++ ++ if (do_f) ++ { ++ mdof_flags |= MDOF_F; ++ } ++ ++ if (inputrec->bIMD) ++ { ++ mdof_flags |= MDOF_IMD; ++ } ++ ++ mdoutf_write_to_trajectory_files(fplog, cr, outf, mdof_flags, ++ top_global, step, (real)step, state, state, f, f); ++ ++ /* Do the linesearching in the direction dx[point][0..(n-1)] */ ++ ++ /* pointer to current direction - point=0 first time here */ ++ s = dx[point]; ++ ++ /* calculate line gradient */ ++ for (gpa = 0, i = 0; i < n; i++) ++ { ++ gpa -= s[i]*ff[i]; ++ } ++ ++ /* Calculate minimum allowed stepsize, before the average (norm) ++ * relative change in coordinate is smaller than precision ++ */ ++ for (minstep = 0, i = 0; i < n; i++) ++ { ++ tmp = fabs(xx[i]); ++ if (tmp < 1.0) ++ { ++ tmp = 1.0; ++ } ++ tmp = s[i]/tmp; ++ minstep += tmp*tmp; ++ } ++ minstep = GMX_REAL_EPS/sqrt(minstep/n); ++ ++ if (stepsize < minstep) ++ { ++ converged = TRUE; ++ break; ++ } ++ ++ /* Store old forces and coordinates */ ++ for (i = 0; i < n; i++) ++ { ++ lastx[i] = xx[i]; ++ lastf[i] = ff[i]; ++ } ++ Epot0 = Epot; ++ ++ first = TRUE; ++ ++ for (i = 0; i < n; i++) ++ { ++ xa[i] = xx[i]; ++ } ++ ++ /* Take a step downhill. ++ * In theory, we should minimize the function along this direction. ++ * That is quite possible, but it turns out to take 5-10 function evaluations ++ * for each line. However, we dont really need to find the exact minimum - ++ * it is much better to start a new BFGS step in a modified direction as soon ++ * as we are close to it. This will save a lot of energy evaluations. ++ * ++ * In practice, we just try to take a single step. ++ * If it worked (i.e. lowered the energy), we increase the stepsize but ++ * the continue straight to the next BFGS step without trying to find any minimum. ++ * If it didn't work (higher energy), there must be a minimum somewhere between ++ * the old position and the new one. ++ * ++ * Due to the finite numerical accuracy, it turns out that it is a good idea ++ * to even accept a SMALL increase in energy, if the derivative is still downhill. ++ * This leads to lower final energies in the tests I've done. / Erik ++ */ ++ foundlower = FALSE; ++ EpotA = Epot0; ++ a = 0.0; ++ c = a + stepsize; /* reference position along line is zero */ ++ ++ /* Check stepsize first. We do not allow displacements ++ * larger than emstep. ++ */ ++ do ++ { ++ c = a + stepsize; ++ maxdelta = 0; ++ for (i = 0; i < n; i++) ++ { ++ delta = c*s[i]; ++ if (delta > maxdelta) ++ { ++ maxdelta = delta; ++ } ++ } ++ if (maxdelta > inputrec->em_stepsize) ++ { ++ stepsize *= 0.1; ++ } ++ } ++ while (maxdelta > inputrec->em_stepsize); ++ ++ /* Take a trial step */ ++ for (i = 0; i < n; i++) ++ { ++ xc[i] = lastx[i] + c*s[i]; ++ } ++ ++ neval++; ++ /* Calculate energy for the trial step */ ++ ems.s.x = (rvec *)xc; ++ ems.f = (rvec *)fc; ++ evaluate_energy(fplog, cr, ++ top_global, &ems, top, ++ inputrec, nrnb, wcycle, gstat, ++ vsite, constr, fcd, graph, mdatoms, fr, ++ mu_tot, enerd, vir, pres, step, FALSE); ++ EpotC = ems.epot; ++ ++ /* Calc derivative along line */ ++ for (gpc = 0, i = 0; i < n; i++) ++ { ++ gpc -= s[i]*fc[i]; /* f is negative gradient, thus the sign */ ++ } ++ /* Sum the gradient along the line across CPUs */ ++ if (PAR(cr)) ++ { ++ gmx_sumd(1, &gpc, cr); ++ } ++ ++ /* This is the max amount of increase in energy we tolerate */ ++ tmp = sqrt(GMX_REAL_EPS)*fabs(EpotA); ++ ++ /* Accept the step if the energy is lower, or if it is not significantly higher ++ * and the line derivative is still negative. ++ */ ++ if (EpotC < EpotA || (gpc < 0 && EpotC < (EpotA+tmp))) ++ { ++ foundlower = TRUE; ++ /* Great, we found a better energy. Increase step for next iteration ++ * if we are still going down, decrease it otherwise ++ */ ++ if (gpc < 0) ++ { ++ stepsize *= 1.618034; /* The golden section */ ++ } ++ else ++ { ++ stepsize *= 0.618034; /* 1/golden section */ ++ } ++ } ++ else ++ { ++ /* New energy is the same or higher. We will have to do some work ++ * to find a smaller value in the interval. Take smaller step next time! ++ */ ++ foundlower = FALSE; ++ stepsize *= 0.618034; ++ } ++ ++ /* OK, if we didn't find a lower value we will have to locate one now - there must ++ * be one in the interval [a=0,c]. ++ * The same thing is valid here, though: Don't spend dozens of iterations to find ++ * the line minimum. We try to interpolate based on the derivative at the endpoints, ++ * and only continue until we find a lower value. In most cases this means 1-2 iterations. ++ * ++ * I also have a safeguard for potentially really patological functions so we never ++ * take more than 20 steps before we give up ... ++ * ++ * If we already found a lower value we just skip this step and continue to the update. ++ */ ++ ++ if (!foundlower) ++ { ++ ++ nminstep = 0; ++ do ++ { ++ /* Select a new trial point. ++ * If the derivatives at points a & c have different sign we interpolate to zero, ++ * otherwise just do a bisection. ++ */ ++ ++ if (gpa < 0 && gpc > 0) ++ { ++ b = a + gpa*(a-c)/(gpc-gpa); ++ } ++ else ++ { ++ b = 0.5*(a+c); ++ } ++ ++ /* safeguard if interpolation close to machine accuracy causes errors: ++ * never go outside the interval ++ */ ++ if (b <= a || b >= c) ++ { ++ b = 0.5*(a+c); ++ } ++ ++ /* Take a trial step */ ++ for (i = 0; i < n; i++) ++ { ++ xb[i] = lastx[i] + b*s[i]; ++ } ++ ++ neval++; ++ /* Calculate energy for the trial step */ ++ ems.s.x = (rvec *)xb; ++ ems.f = (rvec *)fb; ++ evaluate_energy(fplog, cr, ++ top_global, &ems, top, ++ inputrec, nrnb, wcycle, gstat, ++ vsite, constr, fcd, graph, mdatoms, fr, ++ mu_tot, enerd, vir, pres, step, FALSE); ++ EpotB = ems.epot; ++ ++ fnorm = ems.fnorm; ++ ++ for (gpb = 0, i = 0; i < n; i++) ++ { ++ gpb -= s[i]*fb[i]; /* f is negative gradient, thus the sign */ ++ ++ } ++ /* Sum the gradient along the line across CPUs */ ++ if (PAR(cr)) ++ { ++ gmx_sumd(1, &gpb, cr); ++ } ++ ++ /* Keep one of the intervals based on the value of the derivative at the new point */ ++ if (gpb > 0) ++ { ++ /* Replace c endpoint with b */ ++ EpotC = EpotB; ++ c = b; ++ gpc = gpb; ++ /* swap coord pointers b/c */ ++ xtmp = xb; ++ ftmp = fb; ++ xb = xc; ++ fb = fc; ++ xc = xtmp; ++ fc = ftmp; ++ } ++ else ++ { ++ /* Replace a endpoint with b */ ++ EpotA = EpotB; ++ a = b; ++ gpa = gpb; ++ /* swap coord pointers a/b */ ++ xtmp = xb; ++ ftmp = fb; ++ xb = xa; ++ fb = fa; ++ xa = xtmp; ++ fa = ftmp; ++ } ++ ++ /* ++ * Stop search as soon as we find a value smaller than the endpoints, ++ * or if the tolerance is below machine precision. ++ * Never run more than 20 steps, no matter what. ++ */ ++ nminstep++; ++ } ++ while ((EpotB > EpotA || EpotB > EpotC) && (nminstep < 20)); ++ ++ if (fabs(EpotB-Epot0) < GMX_REAL_EPS || nminstep >= 20) ++ { ++ /* OK. We couldn't find a significantly lower energy. ++ * If ncorr==0 this was steepest descent, and then we give up. ++ * If not, reset memory to restart as steepest descent before quitting. ++ */ ++ if (ncorr == 0) ++ { ++ /* Converged */ ++ converged = TRUE; ++ break; ++ } ++ else ++ { ++ /* Reset memory */ ++ ncorr = 0; ++ /* Search in gradient direction */ ++ for (i = 0; i < n; i++) ++ { ++ dx[point][i] = ff[i]; ++ } ++ /* Reset stepsize */ ++ stepsize = 1.0/fnorm; ++ continue; ++ } ++ } ++ ++ /* Select min energy state of A & C, put the best in xx/ff/Epot ++ */ ++ if (EpotC < EpotA) ++ { ++ Epot = EpotC; ++ /* Use state C */ ++ for (i = 0; i < n; i++) ++ { ++ xx[i] = xc[i]; ++ ff[i] = fc[i]; ++ } ++ stepsize = c; ++ } ++ else ++ { ++ Epot = EpotA; ++ /* Use state A */ ++ for (i = 0; i < n; i++) ++ { ++ xx[i] = xa[i]; ++ ff[i] = fa[i]; ++ } ++ stepsize = a; ++ } ++ ++ } ++ else ++ { ++ /* found lower */ ++ Epot = EpotC; ++ /* Use state C */ ++ for (i = 0; i < n; i++) ++ { ++ xx[i] = xc[i]; ++ ff[i] = fc[i]; ++ } ++ stepsize = c; ++ } ++ ++ /* Update the memory information, and calculate a new ++ * approximation of the inverse hessian ++ */ ++ ++ /* Have new data in Epot, xx, ff */ ++ if (ncorr < nmaxcorr) ++ { ++ ncorr++; ++ } ++ ++ for (i = 0; i < n; i++) ++ { ++ dg[point][i] = lastf[i]-ff[i]; ++ dx[point][i] *= stepsize; ++ } ++ ++ dgdg = 0; ++ dgdx = 0; ++ for (i = 0; i < n; i++) ++ { ++ dgdg += dg[point][i]*dg[point][i]; ++ dgdx += dg[point][i]*dx[point][i]; ++ } ++ ++ diag = dgdx/dgdg; ++ ++ rho[point] = 1.0/dgdx; ++ point++; ++ ++ if (point >= nmaxcorr) ++ { ++ point = 0; ++ } ++ ++ /* Update */ ++ for (i = 0; i < n; i++) ++ { ++ p[i] = ff[i]; ++ } ++ ++ cp = point; ++ ++ /* Recursive update. First go back over the memory points */ ++ for (k = 0; k < ncorr; k++) ++ { ++ cp--; ++ if (cp < 0) ++ { ++ cp = ncorr-1; ++ } ++ ++ sq = 0; ++ for (i = 0; i < n; i++) ++ { ++ sq += dx[cp][i]*p[i]; ++ } ++ ++ alpha[cp] = rho[cp]*sq; ++ ++ for (i = 0; i < n; i++) ++ { ++ p[i] -= alpha[cp]*dg[cp][i]; ++ } ++ } ++ ++ for (i = 0; i < n; i++) ++ { ++ p[i] *= diag; ++ } ++ ++ /* And then go forward again */ ++ for (k = 0; k < ncorr; k++) ++ { ++ yr = 0; ++ for (i = 0; i < n; i++) ++ { ++ yr += p[i]*dg[cp][i]; ++ } ++ ++ beta = rho[cp]*yr; ++ beta = alpha[cp]-beta; ++ ++ for (i = 0; i < n; i++) ++ { ++ p[i] += beta*dx[cp][i]; ++ } ++ ++ cp++; ++ if (cp >= ncorr) ++ { ++ cp = 0; ++ } ++ } ++ ++ for (i = 0; i < n; i++) ++ { ++ if (!frozen[i]) ++ { ++ dx[point][i] = p[i]; ++ } ++ else ++ { ++ dx[point][i] = 0; ++ } ++ } ++ ++ stepsize = 1.0; ++ ++ /* Test whether the convergence criterion is met */ ++ get_f_norm_max(cr, &(inputrec->opts), mdatoms, f, &fnorm, &fmax, &nfmax); ++ ++ /* Print it if necessary */ ++ if (MASTER(cr)) ++ { ++ if (bVerbose) ++ { ++ fprintf(stderr, "\rStep %d, Epot=%12.6e, Fnorm=%9.3e, Fmax=%9.3e (atom %d)\n", ++ step, Epot, fnorm/sqrt(state->natoms), fmax, nfmax+1); ++ } ++ /* Store the new (lower) energies */ ++ upd_mdebin(mdebin, FALSE, FALSE, (double)step, ++ mdatoms->tmass, enerd, state, inputrec->fepvals, inputrec->expandedvals, state->box, ++ NULL, NULL, vir, pres, NULL, mu_tot, constr); ++ do_log = do_per_step(step, inputrec->nstlog); ++ do_ene = do_per_step(step, inputrec->nstenergy); ++ if (do_log) ++ { ++ print_ebin_header(fplog, step, step, state->lambda[efptFEP]); ++ } ++ print_ebin(mdoutf_get_fp_ene(outf), do_ene, FALSE, FALSE, ++ do_log ? fplog : NULL, step, step, eprNORMAL, ++ TRUE, mdebin, fcd, &(top_global->groups), &(inputrec->opts)); ++ } ++ ++ /* Send x and E to IMD client, if bIMD is TRUE. */ ++ if (do_IMD(inputrec->bIMD, step, cr, TRUE, state->box, state->x, inputrec, 0, wcycle) && MASTER(cr)) ++ { ++ IMD_send_positions(inputrec->imd); ++ } ++ ++ /* Stop when the maximum force lies below tolerance. ++ * If we have reached machine precision, converged is already set to true. ++ */ ++ ++ converged = converged || (fmax < inputrec->em_tol); ++ ++ } /* End of the loop */ ++ ++ /* IMD cleanup, if bIMD is TRUE. */ ++ IMD_finalize(inputrec->bIMD, inputrec->imd); ++ ++ if (converged) ++ { ++ step--; /* we never took that last step in this case */ ++ ++ } ++ if (fmax > inputrec->em_tol) ++ { ++ if (MASTER(cr)) ++ { ++ warn_step(stderr, inputrec->em_tol, step-1 == number_steps, FALSE); ++ warn_step(fplog, inputrec->em_tol, step-1 == number_steps, FALSE); ++ } ++ converged = FALSE; ++ } ++ ++ /* If we printed energy and/or logfile last step (which was the last step) ++ * we don't have to do it again, but otherwise print the final values. ++ */ ++ if (!do_log) /* Write final value to log since we didn't do anythin last step */ ++ { ++ print_ebin_header(fplog, step, step, state->lambda[efptFEP]); ++ } ++ if (!do_ene || !do_log) /* Write final energy file entries */ ++ { ++ print_ebin(mdoutf_get_fp_ene(outf), !do_ene, FALSE, FALSE, ++ !do_log ? fplog : NULL, step, step, eprNORMAL, ++ TRUE, mdebin, fcd, &(top_global->groups), &(inputrec->opts)); ++ } ++ ++ /* Print some stuff... */ ++ if (MASTER(cr)) ++ { ++ fprintf(stderr, "\nwriting lowest energy coordinates.\n"); ++ } ++ ++ /* IMPORTANT! ++ * For accurate normal mode calculation it is imperative that we ++ * store the last conformation into the full precision binary trajectory. ++ * ++ * However, we should only do it if we did NOT already write this step ++ * above (which we did if do_x or do_f was true). ++ */ ++ do_x = !do_per_step(step, inputrec->nstxout); ++ do_f = !do_per_step(step, inputrec->nstfout); ++ write_em_traj(fplog, cr, outf, do_x, do_f, ftp2fn(efSTO, nfile, fnm), ++ top_global, inputrec, step, ++ &ems, state, f); ++ ++ if (MASTER(cr)) ++ { ++ print_converged(stderr, LBFGS, inputrec->em_tol, step, converged, ++ number_steps, Epot, fmax, nfmax, fnorm/sqrt(state->natoms)); ++ print_converged(fplog, LBFGS, inputrec->em_tol, step, converged, ++ number_steps, Epot, fmax, nfmax, fnorm/sqrt(state->natoms)); ++ ++ fprintf(fplog, "\nPerformed %d energy evaluations in total.\n", neval); ++ } ++ ++ finish_em(cr, outf, walltime_accounting, wcycle); ++ ++ /* To print the actual number of steps we needed somewhere */ ++ walltime_accounting_set_nsteps_done(walltime_accounting, step); ++ ++ return 0; ++} /* That's all folks */ ++ ++ ++double do_steep(FILE *fplog, t_commrec *cr, ++ int nfile, const t_filenm fnm[], ++ const output_env_t gmx_unused oenv, gmx_bool bVerbose, gmx_bool gmx_unused bCompact, ++ int gmx_unused nstglobalcomm, ++ gmx_vsite_t *vsite, gmx_constr_t constr, ++ int gmx_unused stepout, ++ t_inputrec *inputrec, ++ gmx_mtop_t *top_global, t_fcdata *fcd, ++ t_state *state_global, ++ t_mdatoms *mdatoms, ++ t_nrnb *nrnb, gmx_wallcycle_t wcycle, ++ gmx_edsam_t gmx_unused ed, ++ t_forcerec *fr, ++ int gmx_unused repl_ex_nst, int gmx_unused repl_ex_nex, int gmx_unused repl_ex_seed, ++ gmx_membed_t gmx_unused membed, ++ real gmx_unused cpt_period, real gmx_unused max_hours, ++ const char gmx_unused *deviceOptions, ++ int imdport, ++ unsigned long gmx_unused Flags, ++ gmx_walltime_accounting_t walltime_accounting) ++{ ++ const char *SD = "Steepest Descents"; ++ em_state_t *s_min, *s_try; ++ rvec *f_global; ++ gmx_localtop_t *top; ++ gmx_enerdata_t *enerd; ++ rvec *f; ++ gmx_global_stat_t gstat; ++ t_graph *graph; ++ real stepsize, constepsize; ++ real ustep, fnormn; ++ gmx_mdoutf_t outf; ++ t_mdebin *mdebin; ++ gmx_bool bDone, bAbort, do_x, do_f; ++ tensor vir, pres; ++ rvec mu_tot; ++ int nsteps; ++ int count = 0; ++ int steps_accepted = 0; ++ /* not used */ ++ real terminate = 0; ++ ++ s_min = init_em_state(); ++ s_try = init_em_state(); ++ ++ /* Init em and store the local state in s_try */ ++ init_em(fplog, SD, cr, inputrec, ++ state_global, top_global, s_try, &top, &f, &f_global, ++ nrnb, mu_tot, fr, &enerd, &graph, mdatoms, &gstat, vsite, constr, ++ nfile, fnm, &outf, &mdebin, imdport, Flags, wcycle); ++ ++ /* Print to log file */ ++ print_em_start(fplog, cr, walltime_accounting, wcycle, SD); ++ ++ /* Set variables for stepsize (in nm). This is the largest ++ * step that we are going to make in any direction. ++ */ ++ ustep = inputrec->em_stepsize; ++ stepsize = 0; ++ ++ /* Max number of steps */ ++ nsteps = inputrec->nsteps; ++ ++ if (MASTER(cr)) ++ { ++ /* Print to the screen */ ++ sp_header(stderr, SD, inputrec->em_tol, nsteps); ++ } ++ if (fplog) ++ { ++ sp_header(fplog, SD, inputrec->em_tol, nsteps); ++ } ++ ++ /**** HERE STARTS THE LOOP **** ++ * count is the counter for the number of steps ++ * bDone will be TRUE when the minimization has converged ++ * bAbort will be TRUE when nsteps steps have been performed or when ++ * the stepsize becomes smaller than is reasonable for machine precision ++ */ ++ count = 0; ++ bDone = FALSE; ++ bAbort = FALSE; ++ while (!bDone && !bAbort) ++ { ++ bAbort = (nsteps >= 0) && (count == nsteps); ++ ++ /* set new coordinates, except for first step */ ++ if (count > 0) ++ { ++ do_em_step(cr, inputrec, mdatoms, fr->bMolPBC, ++ s_min, stepsize, s_min->f, s_try, ++ constr, top, nrnb, wcycle, count); ++ } ++ ++ evaluate_energy(fplog, cr, ++ top_global, s_try, top, ++ inputrec, nrnb, wcycle, gstat, ++ vsite, constr, fcd, graph, mdatoms, fr, ++ mu_tot, enerd, vir, pres, count, count == 0); ++ ++ if (MASTER(cr)) ++ { ++ print_ebin_header(fplog, count, count, s_try->s.lambda[efptFEP]); ++ } ++ ++ if (count == 0) ++ { ++ s_min->epot = s_try->epot + 1; ++ } ++ ++ /* Print it if necessary */ ++ if (MASTER(cr)) ++ { ++ if (bVerbose) ++ { ++ fprintf(stderr, "Step=%5d, Dmax= %6.1e nm, Epot= %12.5e Fmax= %11.5e, atom= %d%c", ++ count, ustep, s_try->epot, s_try->fmax, s_try->a_fmax+1, ++ (s_try->epot < s_min->epot) ? '\n' : '\r'); ++ } ++ ++ if (s_try->epot < s_min->epot) ++ { ++ /* Store the new (lower) energies */ ++ upd_mdebin(mdebin, FALSE, FALSE, (double)count, ++ mdatoms->tmass, enerd, &s_try->s, inputrec->fepvals, inputrec->expandedvals, ++ s_try->s.box, NULL, NULL, vir, pres, NULL, mu_tot, constr); ++ ++ /* Prepare IMD energy record, if bIMD is TRUE. */ ++ IMD_fill_energy_record(inputrec->bIMD, inputrec->imd, enerd, count, TRUE); ++ ++ print_ebin(mdoutf_get_fp_ene(outf), TRUE, ++ do_per_step(steps_accepted, inputrec->nstdisreout), ++ do_per_step(steps_accepted, inputrec->nstorireout), ++ fplog, count, count, eprNORMAL, TRUE, ++ mdebin, fcd, &(top_global->groups), &(inputrec->opts)); ++ fflush(fplog); ++ } ++ } ++ ++ /* Now if the new energy is smaller than the previous... ++ * or if this is the first step! ++ * or if we did random steps! ++ */ ++ ++ if ( (count == 0) || (s_try->epot < s_min->epot) ) ++ { ++ steps_accepted++; ++ ++ /* Test whether the convergence criterion is met... */ ++ bDone = (s_try->fmax < inputrec->em_tol); ++ ++ /* Copy the arrays for force, positions and energy */ ++ /* The 'Min' array always holds the coords and forces of the minimal ++ sampled energy */ ++ swap_em_state(s_min, s_try); ++ if (count > 0) ++ { ++ ustep *= 1.2; ++ } ++ ++ /* Write to trn, if necessary */ ++ do_x = do_per_step(steps_accepted, inputrec->nstxout); ++ do_f = do_per_step(steps_accepted, inputrec->nstfout); ++ write_em_traj(fplog, cr, outf, do_x, do_f, NULL, ++ top_global, inputrec, count, ++ s_min, state_global, f_global); ++ } ++ else ++ { ++ /* If energy is not smaller make the step smaller... */ ++ ustep *= 0.5; ++ ++ if (DOMAINDECOMP(cr) && s_min->s.ddp_count != cr->dd->ddp_count) ++ { ++ /* Reload the old state */ ++ em_dd_partition_system(fplog, count, cr, top_global, inputrec, ++ s_min, top, mdatoms, fr, vsite, constr, ++ nrnb, wcycle); ++ } ++ } ++ ++ /* Determine new step */ ++ stepsize = ustep/s_min->fmax; ++ ++ /* Check if stepsize is too small, with 1 nm as a characteristic length */ ++#ifdef GMX_DOUBLE ++ if (count == nsteps || ustep < 1e-12) ++#else ++ if (count == nsteps || ustep < 1e-6) ++#endif ++ { ++ if (MASTER(cr)) ++ { ++ warn_step(stderr, inputrec->em_tol, count == nsteps, constr != NULL); ++ warn_step(fplog, inputrec->em_tol, count == nsteps, constr != NULL); ++ } ++ bAbort = TRUE; ++ } ++ ++ /* Send IMD energies and positions, if bIMD is TRUE. */ ++ if (do_IMD(inputrec->bIMD, count, cr, TRUE, state_global->box, state_global->x, inputrec, 0, wcycle) && MASTER(cr)) ++ { ++ IMD_send_positions(inputrec->imd); ++ } ++ ++ count++; ++ } /* End of the loop */ ++ ++ /* IMD cleanup, if bIMD is TRUE. */ ++ IMD_finalize(inputrec->bIMD, inputrec->imd); ++ ++ /* Print some data... */ ++ if (MASTER(cr)) ++ { ++ fprintf(stderr, "\nwriting lowest energy coordinates.\n"); ++ } ++ write_em_traj(fplog, cr, outf, TRUE, inputrec->nstfout, ftp2fn(efSTO, nfile, fnm), ++ top_global, inputrec, count, ++ s_min, state_global, f_global); ++ ++ fnormn = s_min->fnorm/sqrt(state_global->natoms); ++ ++ if (MASTER(cr)) ++ { ++ print_converged(stderr, SD, inputrec->em_tol, count, bDone, nsteps, ++ s_min->epot, s_min->fmax, s_min->a_fmax, fnormn); ++ print_converged(fplog, SD, inputrec->em_tol, count, bDone, nsteps, ++ s_min->epot, s_min->fmax, s_min->a_fmax, fnormn); ++ } ++ ++ finish_em(cr, outf, walltime_accounting, wcycle); ++ ++ /* To print the actual number of steps we needed somewhere */ ++ inputrec->nsteps = count; ++ ++ walltime_accounting_set_nsteps_done(walltime_accounting, count); ++ ++ return 0; ++} /* That's all folks */ ++ ++ ++double do_nm(FILE *fplog, t_commrec *cr, ++ int nfile, const t_filenm fnm[], ++ const output_env_t gmx_unused oenv, gmx_bool bVerbose, gmx_bool gmx_unused bCompact, ++ int gmx_unused nstglobalcomm, ++ gmx_vsite_t *vsite, gmx_constr_t constr, ++ int gmx_unused stepout, ++ t_inputrec *inputrec, ++ gmx_mtop_t *top_global, t_fcdata *fcd, ++ t_state *state_global, ++ t_mdatoms *mdatoms, ++ t_nrnb *nrnb, gmx_wallcycle_t wcycle, ++ gmx_edsam_t gmx_unused ed, ++ t_forcerec *fr, ++ int gmx_unused repl_ex_nst, int gmx_unused repl_ex_nex, int gmx_unused repl_ex_seed, ++ gmx_membed_t gmx_unused membed, ++ real gmx_unused cpt_period, real gmx_unused max_hours, ++ const char gmx_unused *deviceOptions, ++ int imdport, ++ unsigned long gmx_unused Flags, ++ gmx_walltime_accounting_t walltime_accounting) ++{ ++ const char *NM = "Normal Mode Analysis"; ++ gmx_mdoutf_t outf; ++ int natoms, atom, d; ++ int nnodes, node; ++ rvec *f_global; ++ gmx_localtop_t *top; ++ gmx_enerdata_t *enerd; ++ rvec *f; ++ gmx_global_stat_t gstat; ++ t_graph *graph; ++ real t, t0, lambda, lam0; ++ gmx_bool bNS; ++ tensor vir, pres; ++ rvec mu_tot; ++ rvec *fneg, *dfdx; ++ gmx_bool bSparse; /* use sparse matrix storage format */ ++ size_t sz = 0; ++ gmx_sparsematrix_t * sparse_matrix = NULL; ++ real * full_matrix = NULL; ++ em_state_t * state_work; ++ ++ /* added with respect to mdrun */ ++ int i, j, k, row, col; ++ real der_range = 10.0*sqrt(GMX_REAL_EPS); ++ real x_min; ++ real fnorm, fmax; ++ ++ if (constr != NULL) ++ { ++ gmx_fatal(FARGS, "Constraints present with Normal Mode Analysis, this combination is not supported"); ++ } ++ ++ state_work = init_em_state(); ++ ++ /* Init em and store the local state in state_minimum */ ++ init_em(fplog, NM, cr, inputrec, ++ state_global, top_global, state_work, &top, ++ &f, &f_global, ++ nrnb, mu_tot, fr, &enerd, &graph, mdatoms, &gstat, vsite, constr, ++ nfile, fnm, &outf, NULL, imdport, Flags, wcycle); ++ ++ natoms = top_global->natoms; ++ snew(fneg, natoms); ++ snew(dfdx, natoms); ++ ++#ifndef GMX_DOUBLE ++ if (MASTER(cr)) ++ { ++ fprintf(stderr, ++ "NOTE: This version of Gromacs has been compiled in single precision,\n" ++ " which MIGHT not be accurate enough for normal mode analysis.\n" ++ " Gromacs now uses sparse matrix storage, so the memory requirements\n" ++ " are fairly modest even if you recompile in double precision.\n\n"); ++ } ++#endif ++ ++ /* Check if we can/should use sparse storage format. ++ * ++ * Sparse format is only useful when the Hessian itself is sparse, which it ++ * will be when we use a cutoff. ++ * For small systems (n<1000) it is easier to always use full matrix format, though. ++ */ ++ if (EEL_FULL(fr->eeltype) || fr->rlist == 0.0) ++ { ++ md_print_info(cr, fplog, "Non-cutoff electrostatics used, forcing full Hessian format.\n"); ++ bSparse = FALSE; ++ } ++ else if (top_global->natoms < 1000) ++ { ++ md_print_info(cr, fplog, "Small system size (N=%d), using full Hessian format.\n", top_global->natoms); ++ bSparse = FALSE; ++ } ++ else ++ { ++ md_print_info(cr, fplog, "Using compressed symmetric sparse Hessian format.\n"); ++ bSparse = TRUE; ++ } ++ ++ if (MASTER(cr)) ++ { ++ sz = DIM*top_global->natoms; ++ ++ fprintf(stderr, "Allocating Hessian memory...\n\n"); ++ ++ if (bSparse) ++ { ++ sparse_matrix = gmx_sparsematrix_init(sz); ++ sparse_matrix->compressed_symmetric = TRUE; ++ } ++ else ++ { ++ snew(full_matrix, sz*sz); ++ } ++ } ++ ++ /* Initial values */ ++ t0 = inputrec->init_t; ++ lam0 = inputrec->fepvals->init_lambda; ++ t = t0; ++ lambda = lam0; ++ ++ init_nrnb(nrnb); ++ ++ where(); ++ ++ /* Write start time and temperature */ ++ print_em_start(fplog, cr, walltime_accounting, wcycle, NM); ++ ++ /* fudge nr of steps to nr of atoms */ ++ inputrec->nsteps = natoms*2; ++ ++ if (MASTER(cr)) ++ { ++ fprintf(stderr, "starting normal mode calculation '%s'\n%d steps.\n\n", ++ *(top_global->name), (int)inputrec->nsteps); ++ } ++ ++ nnodes = cr->nnodes; ++ ++ /* Make evaluate_energy do a single node force calculation */ ++ cr->nnodes = 1; ++ evaluate_energy(fplog, cr, ++ top_global, state_work, top, ++ inputrec, nrnb, wcycle, gstat, ++ vsite, constr, fcd, graph, mdatoms, fr, ++ mu_tot, enerd, vir, pres, -1, TRUE); ++ cr->nnodes = nnodes; ++ ++ /* if forces are not small, warn user */ ++ get_state_f_norm_max(cr, &(inputrec->opts), mdatoms, state_work); ++ ++ md_print_info(cr, fplog, "Maximum force:%12.5e\n", state_work->fmax); ++ if (state_work->fmax > 1.0e-3) ++ { ++ md_print_info(cr, fplog, ++ "The force is probably not small enough to " ++ "ensure that you are at a minimum.\n" ++ "Be aware that negative eigenvalues may occur\n" ++ "when the resulting matrix is diagonalized.\n\n"); ++ } ++ ++ /*********************************************************** ++ * ++ * Loop over all pairs in matrix ++ * ++ * do_force called twice. Once with positive and ++ * once with negative displacement ++ * ++ ************************************************************/ ++ ++ /* Steps are divided one by one over the nodes */ ++ for (atom = cr->nodeid; atom < natoms; atom += nnodes) ++ { ++ ++ for (d = 0; d < DIM; d++) ++ { ++ x_min = state_work->s.x[atom][d]; ++ ++ state_work->s.x[atom][d] = x_min - der_range; ++ ++ /* Make evaluate_energy do a single node force calculation */ ++ cr->nnodes = 1; ++ evaluate_energy(fplog, cr, ++ top_global, state_work, top, ++ inputrec, nrnb, wcycle, gstat, ++ vsite, constr, fcd, graph, mdatoms, fr, ++ mu_tot, enerd, vir, pres, atom*2, FALSE); ++ ++ for (i = 0; i < natoms; i++) ++ { ++ copy_rvec(state_work->f[i], fneg[i]); ++ } ++ ++ state_work->s.x[atom][d] = x_min + der_range; ++ ++ evaluate_energy(fplog, cr, ++ top_global, state_work, top, ++ inputrec, nrnb, wcycle, gstat, ++ vsite, constr, fcd, graph, mdatoms, fr, ++ mu_tot, enerd, vir, pres, atom*2+1, FALSE); ++ cr->nnodes = nnodes; ++ ++ /* x is restored to original */ ++ state_work->s.x[atom][d] = x_min; ++ ++ for (j = 0; j < natoms; j++) ++ { ++ for (k = 0; (k < DIM); k++) ++ { ++ dfdx[j][k] = ++ -(state_work->f[j][k] - fneg[j][k])/(2*der_range); ++ } ++ } ++ ++ if (!MASTER(cr)) ++ { ++#ifdef GMX_MPI ++#ifdef GMX_DOUBLE ++#define mpi_type MPI_DOUBLE ++#else ++#define mpi_type MPI_FLOAT ++#endif ++ MPI_Send(dfdx[0], natoms*DIM, mpi_type, MASTERNODE(cr), cr->nodeid, ++ cr->mpi_comm_mygroup); ++#endif ++ } ++ else ++ { ++ for (node = 0; (node < nnodes && atom+node < natoms); node++) ++ { ++ if (node > 0) ++ { ++#ifdef GMX_MPI ++ MPI_Status stat; ++ MPI_Recv(dfdx[0], natoms*DIM, mpi_type, node, node, ++ cr->mpi_comm_mygroup, &stat); ++#undef mpi_type ++#endif ++ } ++ ++ row = (atom + node)*DIM + d; ++ ++ for (j = 0; j < natoms; j++) ++ { ++ for (k = 0; k < DIM; k++) ++ { ++ col = j*DIM + k; ++ ++ if (bSparse) ++ { ++ if (col >= row && dfdx[j][k] != 0.0) ++ { ++ gmx_sparsematrix_increment_value(sparse_matrix, ++ row, col, dfdx[j][k]); ++ } ++ } ++ else ++ { ++ full_matrix[row*sz+col] = dfdx[j][k]; ++ } ++ } ++ } ++ } ++ } ++ ++ if (bVerbose && fplog) ++ { ++ fflush(fplog); ++ } ++ } ++ /* write progress */ ++ if (MASTER(cr) && bVerbose) ++ { ++ fprintf(stderr, "\rFinished step %d out of %d", ++ min(atom+nnodes, natoms), natoms); ++ fflush(stderr); ++ } ++ } ++ ++ if (MASTER(cr)) ++ { ++ fprintf(stderr, "\n\nWriting Hessian...\n"); ++ gmx_mtxio_write(ftp2fn(efMTX, nfile, fnm), sz, sz, full_matrix, sparse_matrix); ++ } ++ ++ finish_em(cr, outf, walltime_accounting, wcycle); ++ ++ walltime_accounting_set_nsteps_done(walltime_accounting, natoms*2); ++ ++ return 0; ++} +diff --git a/src/programs/mdrun/md.c b/src/programs/mdrun/md.c +index 3d98d59..b34d23c 100644 +--- a/src/programs/mdrun/md.c ++++ b/src/programs/mdrun/md.c +@@ -96,6 +96,12 @@ + #include "gromacs/swap/swapcoords.h" + #include "gromacs/imd/imd.h" + ++/* PLUMED */ ++#include "../../../Plumed.h" ++extern int plumedswitch; ++extern plumed plumedmain; ++/* END PLUMED */ ++ + #ifdef GMX_FAHCORE + #include "corewrap.h" + #endif +@@ -224,6 +230,12 @@ double do_md(FILE *fplog, t_commrec *cr, int nfile, const t_filenm fnm[], + /* Interactive MD */ + gmx_bool bIMDstep = FALSE; + ++ /* PLUMED */ ++ int plumedNeedsEnergy=0; ++ int plumedWantsToStop=0; ++ matrix plumed_vir; ++ /* END PLUMED */ ++ + #ifdef GMX_FAHCORE + /* Temporary addition for FAHCORE checkpointing */ + int chkpt_ret; +@@ -651,6 +663,48 @@ double do_md(FILE *fplog, t_commrec *cr, int nfile, const t_filenm fnm[], + fprintf(fplog, "\n"); + } + ++ /* PLUMED */ ++ if(plumedswitch){ ++ /* detect plumed API version */ ++ int pversion=0; ++ plumed_cmd(plumedmain,"getApiVersion",&pversion); ++ /* setting kbT is only implemented with api>1) */ ++ real kbT=ir->opts.ref_t[0]*BOLTZ; ++ if(pversion>1) plumed_cmd(plumedmain,"setKbT",&kbT); ++ ++ if(cr->ms && cr->ms->nsim>1) { ++ if(MASTER(cr)) plumed_cmd(plumedmain,"GREX setMPIIntercomm",&cr->ms->mpi_comm_masters); ++ if(PAR(cr)){ ++ if(DOMAINDECOMP(cr)) { ++ plumed_cmd(plumedmain,"GREX setMPIIntracomm",&cr->dd->mpi_comm_all); ++ }else{ ++ plumed_cmd(plumedmain,"GREX setMPIIntracomm",&cr->mpi_comm_mysim); ++ } ++ } ++ plumed_cmd(plumedmain,"GREX init",NULL); ++ } ++ if(PAR(cr)){ ++ if(DOMAINDECOMP(cr)) { ++ plumed_cmd(plumedmain,"setMPIComm",&cr->dd->mpi_comm_all); ++ } ++ } ++ plumed_cmd(plumedmain,"setNatoms",&top_global->natoms); ++ plumed_cmd(plumedmain,"setMDEngine","gromacs"); ++ plumed_cmd(plumedmain,"setLog",fplog); ++ real real_delta_t; ++ real_delta_t=ir->delta_t; ++ plumed_cmd(plumedmain,"setTimestep",&real_delta_t); ++ plumed_cmd(plumedmain,"init",NULL); ++ ++ if(PAR(cr)){ ++ if(DOMAINDECOMP(cr)) { ++ plumed_cmd(plumedmain,"setAtomsNlocal",&cr->dd->nat_home); ++ plumed_cmd(plumedmain,"setAtomsGatindex",cr->dd->gatindex); ++ } ++ } ++ } ++ /* END PLUMED */ ++ + walltime_accounting_start(walltime_accounting); + wallcycle_start(wcycle, ewcRUN); + print_start(fplog, cr, walltime_accounting, "mdrun"); +@@ -955,6 +1009,13 @@ double do_md(FILE *fplog, t_commrec *cr, int nfile, const t_filenm fnm[], + do_verbose && !bPMETuneRunning); + wallcycle_stop(wcycle, ewcDOMDEC); + /* If using an iterative integrator, reallocate space to match the decomposition */ ++ ++ /* PLUMED */ ++ if(plumedswitch){ ++ plumed_cmd(plumedmain,"setAtomsNlocal",&cr->dd->nat_home); ++ plumed_cmd(plumedmain,"setAtomsGatindex",cr->dd->gatindex); ++ } ++ /* END PLUMED */ + } + } + +@@ -1078,12 +1139,45 @@ double do_md(FILE *fplog, t_commrec *cr, int nfile, const t_filenm fnm[], + * This is parallellized as well, and does communication too. + * Check comments in sim_util.c + */ ++ ++ /* PLUMED */ ++ plumedNeedsEnergy=0; ++ if(plumedswitch){ ++ long int lstep=step; plumed_cmd(plumedmain,"setStepLong",&lstep); ++ plumed_cmd(plumedmain,"setPositions",&state->x[0][0]); ++ plumed_cmd(plumedmain,"setMasses",&mdatoms->massT[0]); ++ plumed_cmd(plumedmain,"setCharges",&mdatoms->chargeA[0]); ++ plumed_cmd(plumedmain,"setBox",&state->box[0][0]); ++ plumed_cmd(plumedmain,"prepareCalc",NULL); ++ plumed_cmd(plumedmain,"setStopFlag",&plumedWantsToStop); ++ plumed_cmd(plumedmain,"setForces",&f[0][0]); ++ plumed_cmd(plumedmain,"isEnergyNeeded",&plumedNeedsEnergy); ++ clear_mat(plumed_vir); ++ plumed_cmd(plumedmain,"setVirial",&plumed_vir[0][0]); ++ } ++ /* END PLUMED */ + do_force(fplog, cr, ir, step, nrnb, wcycle, top, groups, + state->box, state->x, &state->hist, + f, force_vir, mdatoms, enerd, fcd, + state->lambda, graph, + fr, vsite, mu_tot, t, mdoutf_get_fp_field(outf), ed, bBornRadii, + (bNS ? GMX_FORCE_NS : 0) | force_flags); ++ /* PLUMED */ ++ if(plumedswitch){ ++ if(plumedNeedsEnergy){ ++ msmul(force_vir,2.0,plumed_vir); ++ plumed_cmd(plumedmain,"setEnergy",&enerd->term[F_EPOT]); ++ plumed_cmd(plumedmain,"performCalc",NULL); ++ msmul(plumed_vir,0.5,force_vir); ++ } else { ++ msmul(plumed_vir,0.5,plumed_vir); ++ m_add(force_vir,plumed_vir,force_vir); ++ } ++ if ((repl_ex_nst > 0) && (step > 0) && !bLastStep && ++ do_per_step(step,repl_ex_nst)) plumed_cmd(plumedmain,"GREX savePositions",NULL); ++ if(plumedWantsToStop) ir->nsteps=step_rel+1; ++ } ++ /* END PLUMED */ + } + + if (bVV && !bStartingFromCpt && !bRerunMD) +diff --git a/src/programs/mdrun/md.c.preplumed b/src/programs/mdrun/md.c.preplumed +new file mode 100644 +index 0000000..3d98d59 +--- /dev/null ++++ b/src/programs/mdrun/md.c.preplumed +@@ -0,0 +1,2058 @@ ++/* ++ * This file is part of the GROMACS molecular simulation package. ++ * ++ * Copyright (c) 1991-2000, University of Groningen, The Netherlands. ++ * Copyright (c) 2001-2004, The GROMACS development team. ++ * Copyright (c) 2011,2012,2013,2014, by the GROMACS development team, led by ++ * Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl, ++ * and including many others, as listed in the AUTHORS file in the ++ * top-level source directory and at http://www.gromacs.org. ++ * ++ * GROMACS 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; either version 2.1 ++ * of the License, or (at your option) any later version. ++ * ++ * GROMACS 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 ++ * Lesser General Public License for more details. ++ * ++ * You should have received a copy of the GNU Lesser General Public ++ * License along with GROMACS; if not, see ++ * http://www.gnu.org/licenses, or write to the Free Software Foundation, ++ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. ++ * ++ * If you want to redistribute modifications to GROMACS, please ++ * consider that scientific software is very special. Version ++ * control is crucial - bugs must be traceable. We will be happy to ++ * consider code for inclusion in the official distribution, but ++ * derived work must not be called official GROMACS. Details are found ++ * in the README & COPYING files - if they are missing, get the ++ * official version at http://www.gromacs.org. ++ * ++ * To help us fund GROMACS development, we humbly ask that you cite ++ * the research papers on the package. Check out http://www.gromacs.org. ++ */ ++#ifdef HAVE_CONFIG_H ++#include ++#endif ++ ++#include "typedefs.h" ++#include "gromacs/utility/smalloc.h" ++#include "sysstuff.h" ++#include "vec.h" ++#include "vcm.h" ++#include "mdebin.h" ++#include "nrnb.h" ++#include "calcmu.h" ++#include "index.h" ++#include "vsite.h" ++#include "update.h" ++#include "ns.h" ++#include "mdrun.h" ++#include "md_support.h" ++#include "md_logging.h" ++#include "network.h" ++#include "xvgr.h" ++#include "physics.h" ++#include "names.h" ++#include "force.h" ++#include "disre.h" ++#include "orires.h" ++#include "pme.h" ++#include "mdatoms.h" ++#include "repl_ex.h" ++#include "deform.h" ++#include "qmmm.h" ++#include "domdec.h" ++#include "domdec_network.h" ++#include "gromacs/gmxlib/topsort.h" ++#include "coulomb.h" ++#include "constr.h" ++#include "shellfc.h" ++#include "gromacs/gmxpreprocess/compute_io.h" ++#include "checkpoint.h" ++#include "mtop_util.h" ++#include "sighandler.h" ++#include "txtdump.h" ++#include "gromacs/utility/cstringutil.h" ++#include "pme_loadbal.h" ++#include "bondf.h" ++#include "membed.h" ++#include "types/nlistheuristics.h" ++#include "types/iteratedconstraints.h" ++#include "nbnxn_cuda_data_mgmt.h" ++ ++#include "gromacs/utility/gmxmpi.h" ++#include "gromacs/fileio/confio.h" ++#include "gromacs/fileio/trajectory_writing.h" ++#include "gromacs/fileio/trnio.h" ++#include "gromacs/fileio/trxio.h" ++#include "gromacs/fileio/xtcio.h" ++#include "gromacs/timing/wallcycle.h" ++#include "gromacs/timing/walltime_accounting.h" ++#include "gromacs/pulling/pull.h" ++#include "gromacs/swap/swapcoords.h" ++#include "gromacs/imd/imd.h" ++ ++#ifdef GMX_FAHCORE ++#include "corewrap.h" ++#endif ++ ++static void reset_all_counters(FILE *fplog, t_commrec *cr, ++ gmx_int64_t step, ++ gmx_int64_t *step_rel, t_inputrec *ir, ++ gmx_wallcycle_t wcycle, t_nrnb *nrnb, ++ gmx_walltime_accounting_t walltime_accounting, ++ nbnxn_cuda_ptr_t cu_nbv) ++{ ++ char sbuf[STEPSTRSIZE]; ++ ++ /* Reset all the counters related to performance over the run */ ++ md_print_warn(cr, fplog, "step %s: resetting all time and cycle counters\n", ++ gmx_step_str(step, sbuf)); ++ ++ if (cu_nbv) ++ { ++ nbnxn_cuda_reset_timings(cu_nbv); ++ } ++ ++ wallcycle_stop(wcycle, ewcRUN); ++ wallcycle_reset_all(wcycle); ++ if (DOMAINDECOMP(cr)) ++ { ++ reset_dd_statistics_counters(cr->dd); ++ } ++ init_nrnb(nrnb); ++ ir->init_step += *step_rel; ++ ir->nsteps -= *step_rel; ++ *step_rel = 0; ++ wallcycle_start(wcycle, ewcRUN); ++ walltime_accounting_start(walltime_accounting); ++ print_date_and_time(fplog, cr->nodeid, "Restarted time", gmx_gettime()); ++} ++ ++double do_md(FILE *fplog, t_commrec *cr, int nfile, const t_filenm fnm[], ++ const output_env_t oenv, gmx_bool bVerbose, gmx_bool bCompact, ++ int nstglobalcomm, ++ gmx_vsite_t *vsite, gmx_constr_t constr, ++ int stepout, t_inputrec *ir, ++ gmx_mtop_t *top_global, ++ t_fcdata *fcd, ++ t_state *state_global, ++ t_mdatoms *mdatoms, ++ t_nrnb *nrnb, gmx_wallcycle_t wcycle, ++ gmx_edsam_t ed, t_forcerec *fr, ++ int repl_ex_nst, int repl_ex_nex, int repl_ex_seed, gmx_membed_t membed, ++ real cpt_period, real max_hours, ++ const char gmx_unused *deviceOptions, ++ int imdport, ++ unsigned long Flags, ++ gmx_walltime_accounting_t walltime_accounting) ++{ ++ gmx_mdoutf_t outf = NULL; ++ gmx_int64_t step, step_rel; ++ double elapsed_time; ++ double t, t0, lam0[efptNR]; ++ gmx_bool bGStatEveryStep, bGStat, bCalcVir, bCalcEner; ++ gmx_bool bNS, bNStList, bSimAnn, bStopCM, bRerunMD, bNotLastFrame = FALSE, ++ bFirstStep, bStateFromCP, bStateFromTPX, bInitStep, bLastStep, ++ bBornRadii, bStartingFromCpt; ++ gmx_bool bDoDHDL = FALSE, bDoFEP = FALSE, bDoExpanded = FALSE; ++ gmx_bool do_ene, do_log, do_verbose, bRerunWarnNoV = TRUE, ++ bForceUpdate = FALSE, bCPT; ++ gmx_bool bMasterState; ++ int force_flags, cglo_flags; ++ tensor force_vir, shake_vir, total_vir, tmp_vir, pres; ++ int i, m; ++ t_trxstatus *status; ++ rvec mu_tot; ++ t_vcm *vcm; ++ t_state *bufstate = NULL; ++ matrix *scale_tot, pcoupl_mu, M, ebox; ++ gmx_nlheur_t nlh; ++ t_trxframe rerun_fr; ++ gmx_repl_ex_t repl_ex = NULL; ++ int nchkpt = 1; ++ gmx_localtop_t *top; ++ t_mdebin *mdebin = NULL; ++ t_state *state = NULL; ++ rvec *f_global = NULL; ++ gmx_enerdata_t *enerd; ++ rvec *f = NULL; ++ gmx_global_stat_t gstat; ++ gmx_update_t upd = NULL; ++ t_graph *graph = NULL; ++ globsig_t gs; ++ gmx_groups_t *groups; ++ gmx_ekindata_t *ekind, *ekind_save; ++ gmx_shellfc_t shellfc; ++ int count, nconverged = 0; ++ real timestep = 0; ++ double tcount = 0; ++ gmx_bool bConverged = TRUE, bOK, bSumEkinhOld, bDoReplEx, bExchanged, bNeedRepartition; ++ gmx_bool bAppend; ++ gmx_bool bResetCountersHalfMaxH = FALSE; ++ gmx_bool bVV, bIterativeCase, bFirstIterate, bTemp, bPres, bTrotter; ++ gmx_bool bUpdateDoLR; ++ real dvdl_constr; ++ rvec *cbuf = NULL; ++ matrix lastbox; ++ real veta_save, scalevir, tracevir; ++ real vetanew = 0; ++ int lamnew = 0; ++ /* for FEP */ ++ int nstfep; ++ double cycles; ++ real saved_conserved_quantity = 0; ++ real last_ekin = 0; ++ int iter_i; ++ t_extmass MassQ; ++ int **trotter_seq; ++ char sbuf[STEPSTRSIZE], sbuf2[STEPSTRSIZE]; ++ int handled_stop_condition = gmx_stop_cond_none; /* compare to get_stop_condition*/ ++ gmx_iterate_t iterate; ++ gmx_int64_t multisim_nsteps = -1; /* number of steps to do before first multisim ++ simulation stops. If equal to zero, don't ++ communicate any more between multisims.*/ ++ /* PME load balancing data for GPU kernels */ ++ pme_load_balancing_t pme_loadbal = NULL; ++ double cycles_pmes; ++ gmx_bool bPMETuneTry = FALSE, bPMETuneRunning = FALSE; ++ ++ /* Interactive MD */ ++ gmx_bool bIMDstep = FALSE; ++ ++#ifdef GMX_FAHCORE ++ /* Temporary addition for FAHCORE checkpointing */ ++ int chkpt_ret; ++#endif ++ ++ /* Check for special mdrun options */ ++ bRerunMD = (Flags & MD_RERUN); ++ bAppend = (Flags & MD_APPENDFILES); ++ if (Flags & MD_RESETCOUNTERSHALFWAY) ++ { ++ if (ir->nsteps > 0) ++ { ++ /* Signal to reset the counters half the simulation steps. */ ++ wcycle_set_reset_counters(wcycle, ir->nsteps/2); ++ } ++ /* Signal to reset the counters halfway the simulation time. */ ++ bResetCountersHalfMaxH = (max_hours > 0); ++ } ++ ++ /* md-vv uses averaged full step velocities for T-control ++ md-vv-avek uses averaged half step velocities for T-control (but full step ekin for P control) ++ md uses averaged half step kinetic energies to determine temperature unless defined otherwise by GMX_EKIN_AVE_VEL; */ ++ bVV = EI_VV(ir->eI); ++ if (bVV) /* to store the initial velocities while computing virial */ ++ { ++ snew(cbuf, top_global->natoms); ++ } ++ /* all the iteratative cases - only if there are constraints */ ++ bIterativeCase = ((IR_NPH_TROTTER(ir) || IR_NPT_TROTTER(ir)) && (constr) && (!bRerunMD)); ++ gmx_iterate_init(&iterate, FALSE); /* The default value of iterate->bIterationActive is set to ++ false in this step. The correct value, true or false, ++ is set at each step, as it depends on the frequency of temperature ++ and pressure control.*/ ++ bTrotter = (bVV && (IR_NPT_TROTTER(ir) || IR_NPH_TROTTER(ir) || IR_NVT_TROTTER(ir))); ++ ++ if (bRerunMD) ++ { ++ /* Since we don't know if the frames read are related in any way, ++ * rebuild the neighborlist at every step. ++ */ ++ ir->nstlist = 1; ++ ir->nstcalcenergy = 1; ++ nstglobalcomm = 1; ++ } ++ ++ check_ir_old_tpx_versions(cr, fplog, ir, top_global); ++ ++ nstglobalcomm = check_nstglobalcomm(fplog, cr, nstglobalcomm, ir); ++ bGStatEveryStep = (nstglobalcomm == 1); ++ ++ if (!bGStatEveryStep && ir->nstlist == -1 && fplog != NULL) ++ { ++ fprintf(fplog, ++ "To reduce the energy communication with nstlist = -1\n" ++ "the neighbor list validity should not be checked at every step,\n" ++ "this means that exact integration is not guaranteed.\n" ++ "The neighbor list validity is checked after:\n" ++ " - 2*std.dev.(n.list life time) steps.\n" ++ "In most cases this will result in exact integration.\n" ++ "This reduces the energy communication by a factor of 2 to 3.\n" ++ "If you want less energy communication, set nstlist > 3.\n\n"); ++ } ++ ++ if (bRerunMD) ++ { ++ ir->nstxout_compressed = 0; ++ } ++ groups = &top_global->groups; ++ ++ /* Initial values */ ++ init_md(fplog, cr, ir, oenv, &t, &t0, state_global->lambda, ++ &(state_global->fep_state), lam0, ++ nrnb, top_global, &upd, ++ nfile, fnm, &outf, &mdebin, ++ force_vir, shake_vir, mu_tot, &bSimAnn, &vcm, Flags, wcycle); ++ ++ clear_mat(total_vir); ++ clear_mat(pres); ++ /* Energy terms and groups */ ++ snew(enerd, 1); ++ init_enerdata(top_global->groups.grps[egcENER].nr, ir->fepvals->n_lambda, ++ enerd); ++ if (DOMAINDECOMP(cr)) ++ { ++ f = NULL; ++ } ++ else ++ { ++ snew(f, top_global->natoms); ++ } ++ ++ /* Kinetic energy data */ ++ snew(ekind, 1); ++ init_ekindata(fplog, top_global, &(ir->opts), ekind); ++ /* needed for iteration of constraints */ ++ snew(ekind_save, 1); ++ init_ekindata(fplog, top_global, &(ir->opts), ekind_save); ++ /* Copy the cos acceleration to the groups struct */ ++ ekind->cosacc.cos_accel = ir->cos_accel; ++ ++ gstat = global_stat_init(ir); ++ debug_gmx(); ++ ++ /* Check for polarizable models and flexible constraints */ ++ shellfc = init_shell_flexcon(fplog, ++ top_global, n_flexible_constraints(constr), ++ (ir->bContinuation || ++ (DOMAINDECOMP(cr) && !MASTER(cr))) ? ++ NULL : state_global->x); ++ if (shellfc && ir->nstcalcenergy != 1) ++ { ++ gmx_fatal(FARGS, "You have nstcalcenergy set to a value (%d) that is different from 1.\nThis is not supported in combinations with shell particles.\nPlease make a new tpr file.", ir->nstcalcenergy); ++ } ++ if (shellfc && DOMAINDECOMP(cr)) ++ { ++ gmx_fatal(FARGS, "Shell particles are not implemented with domain decomposition, use a single rank"); ++ } ++ if (shellfc && ir->eI == eiNM) ++ { ++ /* Currently shells don't work with Normal Modes */ ++ gmx_fatal(FARGS, "Normal Mode analysis is not supported with shells.\nIf you'd like to help with adding support, we have an open discussion at http://redmine.gromacs.org/issues/879\n"); ++ } ++ ++ if (vsite && ir->eI == eiNM) ++ { ++ /* Currently virtual sites don't work with Normal Modes */ ++ gmx_fatal(FARGS, "Normal Mode analysis is not supported with virtual sites.\nIf you'd like to help with adding support, we have an open discussion at http://redmine.gromacs.org/issues/879\n"); ++ } ++ ++ if (DEFORM(*ir)) ++ { ++ tMPI_Thread_mutex_lock(&deform_init_box_mutex); ++ set_deform_reference_box(upd, ++ deform_init_init_step_tpx, ++ deform_init_box_tpx); ++ tMPI_Thread_mutex_unlock(&deform_init_box_mutex); ++ } ++ ++ { ++ double io = compute_io(ir, top_global->natoms, groups, mdebin->ebin->nener, 1); ++ if ((io > 2000) && MASTER(cr)) ++ { ++ fprintf(stderr, ++ "\nWARNING: This run will generate roughly %.0f Mb of data\n\n", ++ io); ++ } ++ } ++ ++ if (DOMAINDECOMP(cr)) ++ { ++ top = dd_init_local_top(top_global); ++ ++ snew(state, 1); ++ dd_init_local_state(cr->dd, state_global, state); ++ ++ if (DDMASTER(cr->dd) && ir->nstfout) ++ { ++ snew(f_global, state_global->natoms); ++ } ++ } ++ else ++ { ++ top = gmx_mtop_generate_local_top(top_global, ir); ++ ++ forcerec_set_excl_load(fr, top); ++ ++ state = serial_init_local_state(state_global); ++ f_global = f; ++ ++ atoms2md(top_global, ir, 0, NULL, top_global->natoms, mdatoms); ++ ++ if (vsite) ++ { ++ set_vsite_top(vsite, top, mdatoms, cr); ++ } ++ ++ if (ir->ePBC != epbcNONE && !fr->bMolPBC) ++ { ++ graph = mk_graph(fplog, &(top->idef), 0, top_global->natoms, FALSE, FALSE); ++ } ++ ++ if (shellfc) ++ { ++ make_local_shells(cr, mdatoms, shellfc); ++ } ++ ++ setup_bonded_threading(fr, &top->idef); ++ } ++ ++ /* Set up interactive MD (IMD) */ ++ init_IMD(ir, cr, top_global, fplog, ir->nstcalcenergy, state_global->x, ++ nfile, fnm, oenv, imdport, Flags); ++ ++ if (DOMAINDECOMP(cr)) ++ { ++ /* Distribute the charge groups over the nodes from the master node */ ++ dd_partition_system(fplog, ir->init_step, cr, TRUE, 1, ++ state_global, top_global, ir, ++ state, &f, mdatoms, top, fr, ++ vsite, shellfc, constr, ++ nrnb, wcycle, FALSE); ++ ++ } ++ ++ update_mdatoms(mdatoms, state->lambda[efptMASS]); ++ ++ if (opt2bSet("-cpi", nfile, fnm)) ++ { ++ bStateFromCP = gmx_fexist_master(opt2fn_master("-cpi", nfile, fnm, cr), cr); ++ } ++ else ++ { ++ bStateFromCP = FALSE; ++ } ++ ++ if (ir->bExpanded) ++ { ++ init_expanded_ensemble(bStateFromCP, ir, &state->dfhist); ++ } ++ ++ if (MASTER(cr)) ++ { ++ if (bStateFromCP) ++ { ++ /* Update mdebin with energy history if appending to output files */ ++ if (Flags & MD_APPENDFILES) ++ { ++ restore_energyhistory_from_state(mdebin, &state_global->enerhist); ++ } ++ else ++ { ++ /* We might have read an energy history from checkpoint, ++ * free the allocated memory and reset the counts. ++ */ ++ done_energyhistory(&state_global->enerhist); ++ init_energyhistory(&state_global->enerhist); ++ } ++ } ++ /* Set the initial energy history in state by updating once */ ++ update_energyhistory(&state_global->enerhist, mdebin); ++ } ++ ++ /* Initialize constraints */ ++ if (constr && !DOMAINDECOMP(cr)) ++ { ++ set_constraints(constr, top, ir, mdatoms, cr); ++ } ++ ++ if (repl_ex_nst > 0 && MASTER(cr)) ++ { ++ repl_ex = init_replica_exchange(fplog, cr->ms, state_global, ir, ++ repl_ex_nst, repl_ex_nex, repl_ex_seed); ++ } ++ ++ /* PME tuning is only supported with GPUs or PME nodes and not with rerun. ++ * PME tuning is not supported with PME only for LJ and not for Coulomb. ++ */ ++ if ((Flags & MD_TUNEPME) && ++ EEL_PME(fr->eeltype) && ++ ( (fr->cutoff_scheme == ecutsVERLET && fr->nbv->bUseGPU) || !(cr->duty & DUTY_PME)) && ++ !bRerunMD) ++ { ++ pme_loadbal_init(&pme_loadbal, ir, state->box, fr->ic, fr->pmedata); ++ cycles_pmes = 0; ++ if (cr->duty & DUTY_PME) ++ { ++ /* Start tuning right away, as we can't measure the load */ ++ bPMETuneRunning = TRUE; ++ } ++ else ++ { ++ /* Separate PME nodes, we can measure the PP/PME load balance */ ++ bPMETuneTry = TRUE; ++ } ++ } ++ ++ if (!ir->bContinuation && !bRerunMD) ++ { ++ if (mdatoms->cFREEZE && (state->flags & (1<homenr; i++) ++ { ++ for (m = 0; m < DIM; m++) ++ { ++ if (ir->opts.nFreeze[mdatoms->cFREEZE[i]][m]) ++ { ++ state->v[i][m] = 0; ++ } ++ } ++ } ++ } ++ ++ if (constr) ++ { ++ /* Constrain the initial coordinates and velocities */ ++ do_constrain_first(fplog, constr, ir, mdatoms, state, ++ cr, nrnb, fr, top); ++ } ++ if (vsite) ++ { ++ /* Construct the virtual sites for the initial configuration */ ++ construct_vsites(vsite, state->x, ir->delta_t, NULL, ++ top->idef.iparams, top->idef.il, ++ fr->ePBC, fr->bMolPBC, cr, state->box); ++ } ++ } ++ ++ debug_gmx(); ++ ++ /* set free energy calculation frequency as the minimum ++ greatest common denominator of nstdhdl, nstexpanded, and repl_ex_nst*/ ++ nstfep = ir->fepvals->nstdhdl; ++ if (ir->bExpanded) ++ { ++ nstfep = gmx_greatest_common_divisor(ir->fepvals->nstdhdl, nstfep); ++ } ++ if (repl_ex_nst > 0) ++ { ++ nstfep = gmx_greatest_common_divisor(repl_ex_nst, nstfep); ++ } ++ ++ /* I'm assuming we need global communication the first time! MRS */ ++ cglo_flags = (CGLO_TEMPERATURE | CGLO_GSTAT ++ | ((ir->comm_mode != ecmNO) ? CGLO_STOPCM : 0) ++ | (bVV ? CGLO_PRESSURE : 0) ++ | (bVV ? CGLO_CONSTRAINT : 0) ++ | (bRerunMD ? CGLO_RERUNMD : 0) ++ | ((Flags & MD_READ_EKIN) ? CGLO_READEKIN : 0)); ++ ++ bSumEkinhOld = FALSE; ++ compute_globals(fplog, gstat, cr, ir, fr, ekind, state, state_global, mdatoms, nrnb, vcm, ++ NULL, enerd, force_vir, shake_vir, total_vir, pres, mu_tot, ++ constr, NULL, FALSE, state->box, ++ top_global, &bSumEkinhOld, cglo_flags); ++ if (ir->eI == eiVVAK) ++ { ++ /* a second call to get the half step temperature initialized as well */ ++ /* we do the same call as above, but turn the pressure off -- internally to ++ compute_globals, this is recognized as a velocity verlet half-step ++ kinetic energy calculation. This minimized excess variables, but ++ perhaps loses some logic?*/ ++ ++ compute_globals(fplog, gstat, cr, ir, fr, ekind, state, state_global, mdatoms, nrnb, vcm, ++ NULL, enerd, force_vir, shake_vir, total_vir, pres, mu_tot, ++ constr, NULL, FALSE, state->box, ++ top_global, &bSumEkinhOld, ++ cglo_flags &~(CGLO_STOPCM | CGLO_PRESSURE)); ++ } ++ ++ /* Calculate the initial half step temperature, and save the ekinh_old */ ++ if (!(Flags & MD_STARTFROMCPT)) ++ { ++ for (i = 0; (i < ir->opts.ngtc); i++) ++ { ++ copy_mat(ekind->tcstat[i].ekinh, ekind->tcstat[i].ekinh_old); ++ } ++ } ++ if (ir->eI != eiVV) ++ { ++ enerd->term[F_TEMP] *= 2; /* result of averages being done over previous and current step, ++ and there is no previous step */ ++ } ++ ++ /* if using an iterative algorithm, we need to create a working directory for the state. */ ++ if (bIterativeCase) ++ { ++ bufstate = init_bufstate(state); ++ } ++ ++ /* need to make an initiation call to get the Trotter variables set, as well as other constants for non-trotter ++ temperature control */ ++ trotter_seq = init_npt_vars(ir, state, &MassQ, bTrotter); ++ ++ if (MASTER(cr)) ++ { ++ if (constr && !ir->bContinuation && ir->eConstrAlg == econtLINCS) ++ { ++ fprintf(fplog, ++ "RMS relative constraint deviation after constraining: %.2e\n", ++ constr_rmsd(constr, FALSE)); ++ } ++ if (EI_STATE_VELOCITY(ir->eI)) ++ { ++ fprintf(fplog, "Initial temperature: %g K\n", enerd->term[F_TEMP]); ++ } ++ if (bRerunMD) ++ { ++ fprintf(stderr, "starting md rerun '%s', reading coordinates from" ++ " input trajectory '%s'\n\n", ++ *(top_global->name), opt2fn("-rerun", nfile, fnm)); ++ if (bVerbose) ++ { ++ fprintf(stderr, "Calculated time to finish depends on nsteps from " ++ "run input file,\nwhich may not correspond to the time " ++ "needed to process input trajectory.\n\n"); ++ } ++ } ++ else ++ { ++ char tbuf[20]; ++ fprintf(stderr, "starting mdrun '%s'\n", ++ *(top_global->name)); ++ if (ir->nsteps >= 0) ++ { ++ sprintf(tbuf, "%8.1f", (ir->init_step+ir->nsteps)*ir->delta_t); ++ } ++ else ++ { ++ sprintf(tbuf, "%s", "infinite"); ++ } ++ if (ir->init_step > 0) ++ { ++ fprintf(stderr, "%s steps, %s ps (continuing from step %s, %8.1f ps).\n", ++ gmx_step_str(ir->init_step+ir->nsteps, sbuf), tbuf, ++ gmx_step_str(ir->init_step, sbuf2), ++ ir->init_step*ir->delta_t); ++ } ++ else ++ { ++ fprintf(stderr, "%s steps, %s ps.\n", ++ gmx_step_str(ir->nsteps, sbuf), tbuf); ++ } ++ } ++ fprintf(fplog, "\n"); ++ } ++ ++ walltime_accounting_start(walltime_accounting); ++ wallcycle_start(wcycle, ewcRUN); ++ print_start(fplog, cr, walltime_accounting, "mdrun"); ++ ++ /* safest point to do file checkpointing is here. More general point would be immediately before integrator call */ ++#ifdef GMX_FAHCORE ++ chkpt_ret = fcCheckPointParallel( cr->nodeid, ++ NULL, 0); ++ if (chkpt_ret == 0) ++ { ++ gmx_fatal( 3, __FILE__, __LINE__, "Checkpoint error on step %d\n", 0 ); ++ } ++#endif ++ ++ debug_gmx(); ++ /*********************************************************** ++ * ++ * Loop over MD steps ++ * ++ ************************************************************/ ++ ++ /* if rerunMD then read coordinates and velocities from input trajectory */ ++ if (bRerunMD) ++ { ++ if (getenv("GMX_FORCE_UPDATE")) ++ { ++ bForceUpdate = TRUE; ++ } ++ ++ rerun_fr.natoms = 0; ++ if (MASTER(cr)) ++ { ++ bNotLastFrame = read_first_frame(oenv, &status, ++ opt2fn("-rerun", nfile, fnm), ++ &rerun_fr, TRX_NEED_X | TRX_READ_V); ++ if (rerun_fr.natoms != top_global->natoms) ++ { ++ gmx_fatal(FARGS, ++ "Number of atoms in trajectory (%d) does not match the " ++ "run input file (%d)\n", ++ rerun_fr.natoms, top_global->natoms); ++ } ++ if (ir->ePBC != epbcNONE) ++ { ++ if (!rerun_fr.bBox) ++ { ++ gmx_fatal(FARGS, "Rerun trajectory frame step %d time %f does not contain a box, while pbc is used", rerun_fr.step, rerun_fr.time); ++ } ++ if (max_cutoff2(ir->ePBC, rerun_fr.box) < sqr(fr->rlistlong)) ++ { ++ gmx_fatal(FARGS, "Rerun trajectory frame step %d time %f has too small box dimensions", rerun_fr.step, rerun_fr.time); ++ } ++ } ++ } ++ ++ if (PAR(cr)) ++ { ++ rerun_parallel_comm(cr, &rerun_fr, &bNotLastFrame); ++ } ++ ++ if (ir->ePBC != epbcNONE) ++ { ++ /* Set the shift vectors. ++ * Necessary here when have a static box different from the tpr box. ++ */ ++ calc_shifts(rerun_fr.box, fr->shift_vec); ++ } ++ } ++ ++ /* loop over MD steps or if rerunMD to end of input trajectory */ ++ bFirstStep = TRUE; ++ /* Skip the first Nose-Hoover integration when we get the state from tpx */ ++ bStateFromTPX = !bStateFromCP; ++ bInitStep = bFirstStep && (bStateFromTPX || bVV); ++ bStartingFromCpt = (Flags & MD_STARTFROMCPT) && bInitStep; ++ bLastStep = FALSE; ++ bSumEkinhOld = FALSE; ++ bDoReplEx = FALSE; ++ bExchanged = FALSE; ++ bNeedRepartition = FALSE; ++ ++ init_global_signals(&gs, cr, ir, repl_ex_nst); ++ ++ step = ir->init_step; ++ step_rel = 0; ++ ++ if (ir->nstlist == -1) ++ { ++ init_nlistheuristics(&nlh, bGStatEveryStep, step); ++ } ++ ++ if (MULTISIM(cr) && (repl_ex_nst <= 0 )) ++ { ++ /* check how many steps are left in other sims */ ++ multisim_nsteps = get_multisim_nsteps(cr, ir->nsteps); ++ } ++ ++ ++ /* and stop now if we should */ ++ bLastStep = (bRerunMD || (ir->nsteps >= 0 && step_rel > ir->nsteps) || ++ ((multisim_nsteps >= 0) && (step_rel >= multisim_nsteps ))); ++ while (!bLastStep || (bRerunMD && bNotLastFrame)) ++ { ++ ++ wallcycle_start(wcycle, ewcSTEP); ++ ++ if (bRerunMD) ++ { ++ if (rerun_fr.bStep) ++ { ++ step = rerun_fr.step; ++ step_rel = step - ir->init_step; ++ } ++ if (rerun_fr.bTime) ++ { ++ t = rerun_fr.time; ++ } ++ else ++ { ++ t = step; ++ } ++ } ++ else ++ { ++ bLastStep = (step_rel == ir->nsteps); ++ t = t0 + step*ir->delta_t; ++ } ++ ++ if (ir->efep != efepNO || ir->bSimTemp) ++ { ++ /* find and set the current lambdas. If rerunning, we either read in a state, or a lambda value, ++ requiring different logic. */ ++ ++ set_current_lambdas(step, ir->fepvals, bRerunMD, &rerun_fr, state_global, state, lam0); ++ bDoDHDL = do_per_step(step, ir->fepvals->nstdhdl); ++ bDoFEP = (do_per_step(step, nstfep) && (ir->efep != efepNO)); ++ bDoExpanded = (do_per_step(step, ir->expandedvals->nstexpanded) ++ && (ir->bExpanded) && (step > 0) && (!bStartingFromCpt)); ++ } ++ ++ bDoReplEx = ((repl_ex_nst > 0) && (step > 0) && !bLastStep && ++ do_per_step(step, repl_ex_nst)); ++ ++ if (bSimAnn) ++ { ++ update_annealing_target_temp(&(ir->opts), t); ++ } ++ ++ if (bRerunMD) ++ { ++ if (!DOMAINDECOMP(cr) || MASTER(cr)) ++ { ++ for (i = 0; i < state_global->natoms; i++) ++ { ++ copy_rvec(rerun_fr.x[i], state_global->x[i]); ++ } ++ if (rerun_fr.bV) ++ { ++ for (i = 0; i < state_global->natoms; i++) ++ { ++ copy_rvec(rerun_fr.v[i], state_global->v[i]); ++ } ++ } ++ else ++ { ++ for (i = 0; i < state_global->natoms; i++) ++ { ++ clear_rvec(state_global->v[i]); ++ } ++ if (bRerunWarnNoV) ++ { ++ fprintf(stderr, "\nWARNING: Some frames do not contain velocities.\n" ++ " Ekin, temperature and pressure are incorrect,\n" ++ " the virial will be incorrect when constraints are present.\n" ++ "\n"); ++ bRerunWarnNoV = FALSE; ++ } ++ } ++ } ++ copy_mat(rerun_fr.box, state_global->box); ++ copy_mat(state_global->box, state->box); ++ ++ if (vsite && (Flags & MD_RERUN_VSITE)) ++ { ++ if (DOMAINDECOMP(cr)) ++ { ++ gmx_fatal(FARGS, "Vsite recalculation with -rerun is not implemented with domain decomposition, use a single rank"); ++ } ++ if (graph) ++ { ++ /* Following is necessary because the graph may get out of sync ++ * with the coordinates if we only have every N'th coordinate set ++ */ ++ mk_mshift(fplog, graph, fr->ePBC, state->box, state->x); ++ shift_self(graph, state->box, state->x); ++ } ++ construct_vsites(vsite, state->x, ir->delta_t, state->v, ++ top->idef.iparams, top->idef.il, ++ fr->ePBC, fr->bMolPBC, cr, state->box); ++ if (graph) ++ { ++ unshift_self(graph, state->box, state->x); ++ } ++ } ++ } ++ ++ /* Stop Center of Mass motion */ ++ bStopCM = (ir->comm_mode != ecmNO && do_per_step(step, ir->nstcomm)); ++ ++ if (bRerunMD) ++ { ++ /* for rerun MD always do Neighbour Searching */ ++ bNS = (bFirstStep || ir->nstlist != 0); ++ bNStList = bNS; ++ } ++ else ++ { ++ /* Determine whether or not to do Neighbour Searching and LR */ ++ bNStList = (ir->nstlist > 0 && step % ir->nstlist == 0); ++ ++ bNS = (bFirstStep || bExchanged || bNeedRepartition || bNStList || bDoFEP || ++ (ir->nstlist == -1 && nlh.nabnsb > 0)); ++ ++ if (bNS && ir->nstlist == -1) ++ { ++ set_nlistheuristics(&nlh, bFirstStep || bExchanged || bNeedRepartition || bDoFEP, step); ++ } ++ } ++ ++ /* check whether we should stop because another simulation has ++ stopped. */ ++ if (MULTISIM(cr)) ++ { ++ if ( (multisim_nsteps >= 0) && (step_rel >= multisim_nsteps) && ++ (multisim_nsteps != ir->nsteps) ) ++ { ++ if (bNS) ++ { ++ if (MASTER(cr)) ++ { ++ fprintf(stderr, ++ "Stopping simulation %d because another one has finished\n", ++ cr->ms->sim); ++ } ++ bLastStep = TRUE; ++ gs.sig[eglsCHKPT] = 1; ++ } ++ } ++ } ++ ++ /* < 0 means stop at next step, > 0 means stop at next NS step */ ++ if ( (gs.set[eglsSTOPCOND] < 0) || ++ ( (gs.set[eglsSTOPCOND] > 0) && (bNStList || ir->nstlist == 0) ) ) ++ { ++ bLastStep = TRUE; ++ } ++ ++ /* Determine whether or not to update the Born radii if doing GB */ ++ bBornRadii = bFirstStep; ++ if (ir->implicit_solvent && (step % ir->nstgbradii == 0)) ++ { ++ bBornRadii = TRUE; ++ } ++ ++ do_log = do_per_step(step, ir->nstlog) || bFirstStep || bLastStep; ++ do_verbose = bVerbose && ++ (step % stepout == 0 || bFirstStep || bLastStep); ++ ++ if (bNS && !(bFirstStep && ir->bContinuation && !bRerunMD)) ++ { ++ if (bRerunMD) ++ { ++ bMasterState = TRUE; ++ } ++ else ++ { ++ bMasterState = FALSE; ++ /* Correct the new box if it is too skewed */ ++ if (DYNAMIC_BOX(*ir)) ++ { ++ if (correct_box(fplog, step, state->box, graph)) ++ { ++ bMasterState = TRUE; ++ } ++ } ++ if (DOMAINDECOMP(cr) && bMasterState) ++ { ++ dd_collect_state(cr->dd, state, state_global); ++ } ++ } ++ ++ if (DOMAINDECOMP(cr)) ++ { ++ /* Repartition the domain decomposition */ ++ wallcycle_start(wcycle, ewcDOMDEC); ++ dd_partition_system(fplog, step, cr, ++ bMasterState, nstglobalcomm, ++ state_global, top_global, ir, ++ state, &f, mdatoms, top, fr, ++ vsite, shellfc, constr, ++ nrnb, wcycle, ++ do_verbose && !bPMETuneRunning); ++ wallcycle_stop(wcycle, ewcDOMDEC); ++ /* If using an iterative integrator, reallocate space to match the decomposition */ ++ } ++ } ++ ++ if (MASTER(cr) && do_log) ++ { ++ print_ebin_header(fplog, step, t, state->lambda[efptFEP]); /* can we improve the information printed here? */ ++ } ++ ++ if (ir->efep != efepNO) ++ { ++ update_mdatoms(mdatoms, state->lambda[efptMASS]); ++ } ++ ++ if ((bRerunMD && rerun_fr.bV) || bExchanged) ++ { ++ ++ /* We need the kinetic energy at minus the half step for determining ++ * the full step kinetic energy and possibly for T-coupling.*/ ++ /* This may not be quite working correctly yet . . . . */ ++ compute_globals(fplog, gstat, cr, ir, fr, ekind, state, state_global, mdatoms, nrnb, vcm, ++ wcycle, enerd, NULL, NULL, NULL, NULL, mu_tot, ++ constr, NULL, FALSE, state->box, ++ top_global, &bSumEkinhOld, ++ CGLO_RERUNMD | CGLO_GSTAT | CGLO_TEMPERATURE); ++ } ++ clear_mat(force_vir); ++ ++ /* We write a checkpoint at this MD step when: ++ * either at an NS step when we signalled through gs, ++ * or at the last step (but not when we do not want confout), ++ * but never at the first step or with rerun. ++ */ ++ bCPT = (((gs.set[eglsCHKPT] && (bNS || ir->nstlist == 0)) || ++ (bLastStep && (Flags & MD_CONFOUT))) && ++ step > ir->init_step && !bRerunMD); ++ if (bCPT) ++ { ++ gs.set[eglsCHKPT] = 0; ++ } ++ ++ /* Determine the energy and pressure: ++ * at nstcalcenergy steps and at energy output steps (set below). ++ */ ++ if (EI_VV(ir->eI) && (!bInitStep)) ++ { ++ /* for vv, the first half of the integration actually corresponds ++ to the previous step. bCalcEner is only required to be evaluated on the 'next' step, ++ but the virial needs to be calculated on both the current step and the 'next' step. Future ++ reorganization may be able to get rid of one of the bCalcVir=TRUE steps. */ ++ ++ bCalcEner = do_per_step(step-1, ir->nstcalcenergy); ++ bCalcVir = bCalcEner || ++ (ir->epc != epcNO && (do_per_step(step, ir->nstpcouple) || do_per_step(step-1, ir->nstpcouple))); ++ } ++ else ++ { ++ bCalcEner = do_per_step(step, ir->nstcalcenergy); ++ bCalcVir = bCalcEner || ++ (ir->epc != epcNO && do_per_step(step, ir->nstpcouple)); ++ } ++ ++ /* Do we need global communication ? */ ++ bGStat = (bCalcVir || bCalcEner || bStopCM || ++ do_per_step(step, nstglobalcomm) || (bVV && IR_NVT_TROTTER(ir) && do_per_step(step-1, nstglobalcomm)) || ++ (ir->nstlist == -1 && !bRerunMD && step >= nlh.step_nscheck)); ++ ++ do_ene = (do_per_step(step, ir->nstenergy) || bLastStep); ++ ++ if (do_ene || do_log || bDoReplEx) ++ { ++ bCalcVir = TRUE; ++ bCalcEner = TRUE; ++ bGStat = TRUE; ++ } ++ ++ /* these CGLO_ options remain the same throughout the iteration */ ++ cglo_flags = ((bRerunMD ? CGLO_RERUNMD : 0) | ++ (bGStat ? CGLO_GSTAT : 0) ++ ); ++ ++ force_flags = (GMX_FORCE_STATECHANGED | ++ ((DYNAMIC_BOX(*ir) || bRerunMD) ? GMX_FORCE_DYNAMICBOX : 0) | ++ GMX_FORCE_ALLFORCES | ++ GMX_FORCE_SEPLRF | ++ (bCalcVir ? GMX_FORCE_VIRIAL : 0) | ++ (bCalcEner ? GMX_FORCE_ENERGY : 0) | ++ (bDoFEP ? GMX_FORCE_DHDL : 0) ++ ); ++ ++ if (fr->bTwinRange) ++ { ++ if (do_per_step(step, ir->nstcalclr)) ++ { ++ force_flags |= GMX_FORCE_DO_LR; ++ } ++ } ++ ++ if (shellfc) ++ { ++ /* Now is the time to relax the shells */ ++ count = relax_shell_flexcon(fplog, cr, bVerbose, step, ++ ir, bNS, force_flags, ++ top, ++ constr, enerd, fcd, ++ state, f, force_vir, mdatoms, ++ nrnb, wcycle, graph, groups, ++ shellfc, fr, bBornRadii, t, mu_tot, ++ &bConverged, vsite, ++ mdoutf_get_fp_field(outf)); ++ tcount += count; ++ ++ if (bConverged) ++ { ++ nconverged++; ++ } ++ } ++ else ++ { ++ /* The coordinates (x) are shifted (to get whole molecules) ++ * in do_force. ++ * This is parallellized as well, and does communication too. ++ * Check comments in sim_util.c ++ */ ++ do_force(fplog, cr, ir, step, nrnb, wcycle, top, groups, ++ state->box, state->x, &state->hist, ++ f, force_vir, mdatoms, enerd, fcd, ++ state->lambda, graph, ++ fr, vsite, mu_tot, t, mdoutf_get_fp_field(outf), ed, bBornRadii, ++ (bNS ? GMX_FORCE_NS : 0) | force_flags); ++ } ++ ++ if (bVV && !bStartingFromCpt && !bRerunMD) ++ /* ############### START FIRST UPDATE HALF-STEP FOR VV METHODS############### */ ++ { ++ wallcycle_start(wcycle, ewcUPDATE); ++ if (ir->eI == eiVV && bInitStep) ++ { ++ /* if using velocity verlet with full time step Ekin, ++ * take the first half step only to compute the ++ * virial for the first step. From there, ++ * revert back to the initial coordinates ++ * so that the input is actually the initial step. ++ */ ++ copy_rvecn(state->v, cbuf, 0, state->natoms); /* should make this better for parallelizing? */ ++ } ++ else ++ { ++ /* this is for NHC in the Ekin(t+dt/2) version of vv */ ++ trotter_update(ir, step, ekind, enerd, state, total_vir, mdatoms, &MassQ, trotter_seq, ettTSEQ1); ++ } ++ ++ /* If we are using twin-range interactions where the long-range component ++ * is only evaluated every nstcalclr>1 steps, we should do a special update ++ * step to combine the long-range forces on these steps. ++ * For nstcalclr=1 this is not done, since the forces would have been added ++ * directly to the short-range forces already. ++ * ++ * TODO Remove various aspects of VV+twin-range in master ++ * branch, because VV integrators did not ever support ++ * twin-range multiple time stepping with constraints. ++ */ ++ bUpdateDoLR = (fr->bTwinRange && do_per_step(step, ir->nstcalclr)); ++ ++ update_coords(fplog, step, ir, mdatoms, state, fr->bMolPBC, ++ f, bUpdateDoLR, fr->f_twin, bCalcVir ? &fr->vir_twin_constr : NULL, fcd, ++ ekind, M, upd, bInitStep, etrtVELOCITY1, ++ cr, nrnb, constr, &top->idef); ++ ++ if (bIterativeCase && do_per_step(step-1, ir->nstpcouple) && !bInitStep) ++ { ++ gmx_iterate_init(&iterate, TRUE); ++ } ++ /* for iterations, we save these vectors, as we will be self-consistently iterating ++ the calculations */ ++ ++ /*#### UPDATE EXTENDED VARIABLES IN TROTTER FORMULATION */ ++ ++ /* save the state */ ++ if (iterate.bIterationActive) ++ { ++ copy_coupling_state(state, bufstate, ekind, ekind_save, &(ir->opts)); ++ } ++ ++ bFirstIterate = TRUE; ++ while (bFirstIterate || iterate.bIterationActive) ++ { ++ if (iterate.bIterationActive) ++ { ++ copy_coupling_state(bufstate, state, ekind_save, ekind, &(ir->opts)); ++ if (bFirstIterate && bTrotter) ++ { ++ /* The first time through, we need a decent first estimate ++ of veta(t+dt) to compute the constraints. Do ++ this by computing the box volume part of the ++ trotter integration at this time. Nothing else ++ should be changed by this routine here. If ++ !(first time), we start with the previous value ++ of veta. */ ++ ++ veta_save = state->veta; ++ trotter_update(ir, step, ekind, enerd, state, total_vir, mdatoms, &MassQ, trotter_seq, ettTSEQ0); ++ vetanew = state->veta; ++ state->veta = veta_save; ++ } ++ } ++ ++ bOK = TRUE; ++ if (!bRerunMD || rerun_fr.bV || bForceUpdate) /* Why is rerun_fr.bV here? Unclear. */ ++ { ++ wallcycle_stop(wcycle, ewcUPDATE); ++ update_constraints(fplog, step, NULL, ir, ekind, mdatoms, ++ state, fr->bMolPBC, graph, f, ++ &top->idef, shake_vir, ++ cr, nrnb, wcycle, upd, constr, ++ TRUE, bCalcVir, vetanew); ++ wallcycle_start(wcycle, ewcUPDATE); ++ ++ if (bCalcVir && bUpdateDoLR && ir->nstcalclr > 1) ++ { ++ /* Correct the virial for multiple time stepping */ ++ m_sub(shake_vir, fr->vir_twin_constr, shake_vir); ++ } ++ ++ if (!bOK) ++ { ++ gmx_fatal(FARGS, "Constraint error: Shake, Lincs or Settle could not solve the constrains"); ++ } ++ ++ } ++ else if (graph) ++ { ++ /* Need to unshift here if a do_force has been ++ called in the previous step */ ++ unshift_self(graph, state->box, state->x); ++ } ++ ++ /* if VV, compute the pressure and constraints */ ++ /* For VV2, we strictly only need this if using pressure ++ * control, but we really would like to have accurate pressures ++ * printed out. ++ * Think about ways around this in the future? ++ * For now, keep this choice in comments. ++ */ ++ /*bPres = (ir->eI==eiVV || IR_NPT_TROTTER(ir)); */ ++ /*bTemp = ((ir->eI==eiVV &&(!bInitStep)) || (ir->eI==eiVVAK && IR_NPT_TROTTER(ir)));*/ ++ bPres = TRUE; ++ bTemp = ((ir->eI == eiVV && (!bInitStep)) || (ir->eI == eiVVAK)); ++ if (bCalcEner && ir->eI == eiVVAK) /*MRS: 7/9/2010 -- this still doesn't fix it?*/ ++ { ++ bSumEkinhOld = TRUE; ++ } ++ /* for vv, the first half of the integration actually corresponds to the previous step. ++ So we need information from the last step in the first half of the integration */ ++ if (bGStat || do_per_step(step-1, nstglobalcomm)) ++ { ++ wallcycle_stop(wcycle, ewcUPDATE); ++ compute_globals(fplog, gstat, cr, ir, fr, ekind, state, state_global, mdatoms, nrnb, vcm, ++ wcycle, enerd, force_vir, shake_vir, total_vir, pres, mu_tot, ++ constr, NULL, FALSE, state->box, ++ top_global, &bSumEkinhOld, ++ cglo_flags ++ | CGLO_ENERGY ++ | (bTemp ? CGLO_TEMPERATURE : 0) ++ | (bPres ? CGLO_PRESSURE : 0) ++ | (bPres ? CGLO_CONSTRAINT : 0) ++ | ((iterate.bIterationActive) ? CGLO_ITERATE : 0) ++ | (bFirstIterate ? CGLO_FIRSTITERATE : 0) ++ | CGLO_SCALEEKIN ++ ); ++ /* explanation of above: ++ a) We compute Ekin at the full time step ++ if 1) we are using the AveVel Ekin, and it's not the ++ initial step, or 2) if we are using AveEkin, but need the full ++ time step kinetic energy for the pressure (always true now, since we want accurate statistics). ++ b) If we are using EkinAveEkin for the kinetic energy for the temperature control, we still feed in ++ EkinAveVel because it's needed for the pressure */ ++ wallcycle_start(wcycle, ewcUPDATE); ++ } ++ /* temperature scaling and pressure scaling to produce the extended variables at t+dt */ ++ if (!bInitStep) ++ { ++ if (bTrotter) ++ { ++ m_add(force_vir, shake_vir, total_vir); /* we need the un-dispersion corrected total vir here */ ++ trotter_update(ir, step, ekind, enerd, state, total_vir, mdatoms, &MassQ, trotter_seq, ettTSEQ2); ++ } ++ else ++ { ++ if (bExchanged) ++ { ++ wallcycle_stop(wcycle, ewcUPDATE); ++ /* We need the kinetic energy at minus the half step for determining ++ * the full step kinetic energy and possibly for T-coupling.*/ ++ /* This may not be quite working correctly yet . . . . */ ++ compute_globals(fplog, gstat, cr, ir, fr, ekind, state, state_global, mdatoms, nrnb, vcm, ++ wcycle, enerd, NULL, NULL, NULL, NULL, mu_tot, ++ constr, NULL, FALSE, state->box, ++ top_global, &bSumEkinhOld, ++ CGLO_RERUNMD | CGLO_GSTAT | CGLO_TEMPERATURE); ++ wallcycle_start(wcycle, ewcUPDATE); ++ } ++ } ++ } ++ ++ if (iterate.bIterationActive && ++ done_iterating(cr, fplog, step, &iterate, bFirstIterate, ++ state->veta, &vetanew)) ++ { ++ break; ++ } ++ bFirstIterate = FALSE; ++ } ++ ++ if (bTrotter && !bInitStep) ++ { ++ copy_mat(shake_vir, state->svir_prev); ++ copy_mat(force_vir, state->fvir_prev); ++ if (IR_NVT_TROTTER(ir) && ir->eI == eiVV) ++ { ++ /* update temperature and kinetic energy now that step is over - this is the v(t+dt) point */ ++ enerd->term[F_TEMP] = sum_ekin(&(ir->opts), ekind, NULL, (ir->eI == eiVV), FALSE); ++ enerd->term[F_EKIN] = trace(ekind->ekin); ++ } ++ } ++ /* if it's the initial step, we performed this first step just to get the constraint virial */ ++ if (bInitStep && ir->eI == eiVV) ++ { ++ copy_rvecn(cbuf, state->v, 0, state->natoms); ++ } ++ wallcycle_stop(wcycle, ewcUPDATE); ++ } ++ ++ /* MRS -- now done iterating -- compute the conserved quantity */ ++ if (bVV) ++ { ++ saved_conserved_quantity = compute_conserved_from_auxiliary(ir, state, &MassQ); ++ if (ir->eI == eiVV) ++ { ++ last_ekin = enerd->term[F_EKIN]; ++ } ++ if ((ir->eDispCorr != edispcEnerPres) && (ir->eDispCorr != edispcAllEnerPres)) ++ { ++ saved_conserved_quantity -= enerd->term[F_DISPCORR]; ++ } ++ /* sum up the foreign energy and dhdl terms for vv. currently done every step so that dhdl is correct in the .edr */ ++ if (!bRerunMD) ++ { ++ sum_dhdl(enerd, state->lambda, ir->fepvals); ++ } ++ } ++ ++ /* ######## END FIRST UPDATE STEP ############## */ ++ /* ######## If doing VV, we now have v(dt) ###### */ ++ if (bDoExpanded) ++ { ++ /* perform extended ensemble sampling in lambda - we don't ++ actually move to the new state before outputting ++ statistics, but if performing simulated tempering, we ++ do update the velocities and the tau_t. */ ++ ++ lamnew = ExpandedEnsembleDynamics(fplog, ir, enerd, state, &MassQ, state->fep_state, &state->dfhist, step, state->v, mdatoms); ++ /* history is maintained in state->dfhist, but state_global is what is sent to trajectory and log output */ ++ copy_df_history(&state_global->dfhist, &state->dfhist); ++ } ++ ++ /* Now we have the energies and forces corresponding to the ++ * coordinates at time t. We must output all of this before ++ * the update. ++ */ ++ do_md_trajectory_writing(fplog, cr, nfile, fnm, step, step_rel, t, ++ ir, state, state_global, top_global, fr, ++ outf, mdebin, ekind, f, f_global, ++ &nchkpt, ++ bCPT, bRerunMD, bLastStep, (Flags & MD_CONFOUT), ++ bSumEkinhOld); ++ /* Check if IMD step and do IMD communication, if bIMD is TRUE. */ ++ bIMDstep = do_IMD(ir->bIMD, step, cr, bNS, state->box, state->x, ir, t, wcycle); ++ ++ /* kludge -- virial is lost with restart for NPT control. Must restart */ ++ if (bStartingFromCpt && bVV) ++ { ++ copy_mat(state->svir_prev, shake_vir); ++ copy_mat(state->fvir_prev, force_vir); ++ } ++ ++ elapsed_time = walltime_accounting_get_current_elapsed_time(walltime_accounting); ++ ++ /* Check whether everything is still allright */ ++ if (((int)gmx_get_stop_condition() > handled_stop_condition) ++#ifdef GMX_THREAD_MPI ++ && MASTER(cr) ++#endif ++ ) ++ { ++ /* this is just make gs.sig compatible with the hack ++ of sending signals around by MPI_Reduce with together with ++ other floats */ ++ if (gmx_get_stop_condition() == gmx_stop_cond_next_ns) ++ { ++ gs.sig[eglsSTOPCOND] = 1; ++ } ++ if (gmx_get_stop_condition() == gmx_stop_cond_next) ++ { ++ gs.sig[eglsSTOPCOND] = -1; ++ } ++ /* < 0 means stop at next step, > 0 means stop at next NS step */ ++ if (fplog) ++ { ++ fprintf(fplog, ++ "\n\nReceived the %s signal, stopping at the next %sstep\n\n", ++ gmx_get_signal_name(), ++ gs.sig[eglsSTOPCOND] == 1 ? "NS " : ""); ++ fflush(fplog); ++ } ++ fprintf(stderr, ++ "\n\nReceived the %s signal, stopping at the next %sstep\n\n", ++ gmx_get_signal_name(), ++ gs.sig[eglsSTOPCOND] == 1 ? "NS " : ""); ++ fflush(stderr); ++ handled_stop_condition = (int)gmx_get_stop_condition(); ++ } ++ else if (MASTER(cr) && (bNS || ir->nstlist <= 0) && ++ (max_hours > 0 && elapsed_time > max_hours*60.0*60.0*0.99) && ++ gs.sig[eglsSTOPCOND] == 0 && gs.set[eglsSTOPCOND] == 0) ++ { ++ /* Signal to terminate the run */ ++ gs.sig[eglsSTOPCOND] = 1; ++ if (fplog) ++ { ++ fprintf(fplog, "\nStep %s: Run time exceeded %.3f hours, will terminate the run\n", gmx_step_str(step, sbuf), max_hours*0.99); ++ } ++ fprintf(stderr, "\nStep %s: Run time exceeded %.3f hours, will terminate the run\n", gmx_step_str(step, sbuf), max_hours*0.99); ++ } ++ ++ if (bResetCountersHalfMaxH && MASTER(cr) && ++ elapsed_time > max_hours*60.0*60.0*0.495) ++ { ++ gs.sig[eglsRESETCOUNTERS] = 1; ++ } ++ ++ if (ir->nstlist == -1 && !bRerunMD) ++ { ++ /* When bGStatEveryStep=FALSE, global_stat is only called ++ * when we check the atom displacements, not at NS steps. ++ * This means that also the bonded interaction count check is not ++ * performed immediately after NS. Therefore a few MD steps could ++ * be performed with missing interactions. ++ * But wrong energies are never written to file, ++ * since energies are only written after global_stat ++ * has been called. ++ */ ++ if (step >= nlh.step_nscheck) ++ { ++ nlh.nabnsb = natoms_beyond_ns_buffer(ir, fr, &top->cgs, ++ nlh.scale_tot, state->x); ++ } ++ else ++ { ++ /* This is not necessarily true, ++ * but step_nscheck is determined quite conservatively. ++ */ ++ nlh.nabnsb = 0; ++ } ++ } ++ ++ /* In parallel we only have to check for checkpointing in steps ++ * where we do global communication, ++ * otherwise the other nodes don't know. ++ */ ++ if (MASTER(cr) && ((bGStat || !PAR(cr)) && ++ cpt_period >= 0 && ++ (cpt_period == 0 || ++ elapsed_time >= nchkpt*cpt_period*60.0)) && ++ gs.set[eglsCHKPT] == 0) ++ { ++ gs.sig[eglsCHKPT] = 1; ++ } ++ ++ /* at the start of step, randomize or scale the velocities (trotter done elsewhere) */ ++ if (EI_VV(ir->eI)) ++ { ++ if (!bInitStep) ++ { ++ update_tcouple(step, ir, state, ekind, &MassQ, mdatoms); ++ } ++ if (ETC_ANDERSEN(ir->etc)) /* keep this outside of update_tcouple because of the extra info required to pass */ ++ { ++ gmx_bool bIfRandomize; ++ bIfRandomize = update_randomize_velocities(ir, step, cr, mdatoms, state, upd, constr); ++ /* if we have constraints, we have to remove the kinetic energy parallel to the bonds */ ++ if (constr && bIfRandomize) ++ { ++ update_constraints(fplog, step, NULL, ir, ekind, mdatoms, ++ state, fr->bMolPBC, graph, f, ++ &top->idef, tmp_vir, ++ cr, nrnb, wcycle, upd, constr, ++ TRUE, bCalcVir, vetanew); ++ } ++ } ++ } ++ ++ if (bIterativeCase && do_per_step(step, ir->nstpcouple)) ++ { ++ gmx_iterate_init(&iterate, TRUE); ++ /* for iterations, we save these vectors, as we will be redoing the calculations */ ++ copy_coupling_state(state, bufstate, ekind, ekind_save, &(ir->opts)); ++ } ++ ++ bFirstIterate = TRUE; ++ while (bFirstIterate || iterate.bIterationActive) ++ { ++ /* We now restore these vectors to redo the calculation with improved extended variables */ ++ if (iterate.bIterationActive) ++ { ++ copy_coupling_state(bufstate, state, ekind_save, ekind, &(ir->opts)); ++ } ++ ++ /* We make the decision to break or not -after- the calculation of Ekin and Pressure, ++ so scroll down for that logic */ ++ ++ /* ######### START SECOND UPDATE STEP ################# */ ++ /* Box is changed in update() when we do pressure coupling, ++ * but we should still use the old box for energy corrections and when ++ * writing it to the energy file, so it matches the trajectory files for ++ * the same timestep above. Make a copy in a separate array. ++ */ ++ copy_mat(state->box, lastbox); ++ ++ bOK = TRUE; ++ dvdl_constr = 0; ++ ++ if (!(bRerunMD && !rerun_fr.bV && !bForceUpdate)) ++ { ++ wallcycle_start(wcycle, ewcUPDATE); ++ /* UPDATE PRESSURE VARIABLES IN TROTTER FORMULATION WITH CONSTRAINTS */ ++ if (bTrotter) ++ { ++ if (iterate.bIterationActive) ++ { ++ if (bFirstIterate) ++ { ++ scalevir = 1; ++ } ++ else ++ { ++ /* we use a new value of scalevir to converge the iterations faster */ ++ scalevir = tracevir/trace(shake_vir); ++ } ++ msmul(shake_vir, scalevir, shake_vir); ++ m_add(force_vir, shake_vir, total_vir); ++ clear_mat(shake_vir); ++ } ++ trotter_update(ir, step, ekind, enerd, state, total_vir, mdatoms, &MassQ, trotter_seq, ettTSEQ3); ++ /* We can only do Berendsen coupling after we have summed ++ * the kinetic energy or virial. Since the happens ++ * in global_state after update, we should only do it at ++ * step % nstlist = 1 with bGStatEveryStep=FALSE. ++ */ ++ } ++ else ++ { ++ update_tcouple(step, ir, state, ekind, &MassQ, mdatoms); ++ update_pcouple(fplog, step, ir, state, pcoupl_mu, M, bInitStep); ++ } ++ ++ if (bVV) ++ { ++ bUpdateDoLR = (fr->bTwinRange && do_per_step(step, ir->nstcalclr)); ++ ++ /* velocity half-step update */ ++ update_coords(fplog, step, ir, mdatoms, state, fr->bMolPBC, f, ++ bUpdateDoLR, fr->f_twin, bCalcVir ? &fr->vir_twin_constr : NULL, fcd, ++ ekind, M, upd, FALSE, etrtVELOCITY2, ++ cr, nrnb, constr, &top->idef); ++ } ++ ++ /* Above, initialize just copies ekinh into ekin, ++ * it doesn't copy position (for VV), ++ * and entire integrator for MD. ++ */ ++ ++ if (ir->eI == eiVVAK) ++ { ++ copy_rvecn(state->x, cbuf, 0, state->natoms); ++ } ++ bUpdateDoLR = (fr->bTwinRange && do_per_step(step, ir->nstcalclr)); ++ ++ update_coords(fplog, step, ir, mdatoms, state, fr->bMolPBC, f, ++ bUpdateDoLR, fr->f_twin, bCalcVir ? &fr->vir_twin_constr : NULL, fcd, ++ ekind, M, upd, bInitStep, etrtPOSITION, cr, nrnb, constr, &top->idef); ++ wallcycle_stop(wcycle, ewcUPDATE); ++ ++ update_constraints(fplog, step, &dvdl_constr, ir, ekind, mdatoms, state, ++ fr->bMolPBC, graph, f, ++ &top->idef, shake_vir, ++ cr, nrnb, wcycle, upd, constr, ++ FALSE, bCalcVir, state->veta); ++ ++ if (bCalcVir && bUpdateDoLR && ir->nstcalclr > 1) ++ { ++ /* Correct the virial for multiple time stepping */ ++ m_sub(shake_vir, fr->vir_twin_constr, shake_vir); ++ } ++ ++ if (ir->eI == eiVVAK) ++ { ++ /* erase F_EKIN and F_TEMP here? */ ++ /* just compute the kinetic energy at the half step to perform a trotter step */ ++ compute_globals(fplog, gstat, cr, ir, fr, ekind, state, state_global, mdatoms, nrnb, vcm, ++ wcycle, enerd, force_vir, shake_vir, total_vir, pres, mu_tot, ++ constr, NULL, FALSE, lastbox, ++ top_global, &bSumEkinhOld, ++ cglo_flags | CGLO_TEMPERATURE ++ ); ++ wallcycle_start(wcycle, ewcUPDATE); ++ trotter_update(ir, step, ekind, enerd, state, total_vir, mdatoms, &MassQ, trotter_seq, ettTSEQ4); ++ /* now we know the scaling, we can compute the positions again again */ ++ copy_rvecn(cbuf, state->x, 0, state->natoms); ++ ++ bUpdateDoLR = (fr->bTwinRange && do_per_step(step, ir->nstcalclr)); ++ ++ update_coords(fplog, step, ir, mdatoms, state, fr->bMolPBC, f, ++ bUpdateDoLR, fr->f_twin, bCalcVir ? &fr->vir_twin_constr : NULL, fcd, ++ ekind, M, upd, bInitStep, etrtPOSITION, cr, nrnb, constr, &top->idef); ++ wallcycle_stop(wcycle, ewcUPDATE); ++ ++ /* do we need an extra constraint here? just need to copy out of state->v to upd->xp? */ ++ /* are the small terms in the shake_vir here due ++ * to numerical errors, or are they important ++ * physically? I'm thinking they are just errors, but not completely sure. ++ * For now, will call without actually constraining, constr=NULL*/ ++ update_constraints(fplog, step, NULL, ir, ekind, mdatoms, ++ state, fr->bMolPBC, graph, f, ++ &top->idef, tmp_vir, ++ cr, nrnb, wcycle, upd, NULL, ++ FALSE, bCalcVir, ++ state->veta); ++ } ++ if (!bOK) ++ { ++ gmx_fatal(FARGS, "Constraint error: Shake, Lincs or Settle could not solve the constrains"); ++ } ++ ++ if (fr->bSepDVDL && fplog && do_log) ++ { ++ gmx_print_sepdvdl(fplog, "Constraint dV/dl", 0.0, dvdl_constr); ++ } ++ if (bVV) ++ { ++ /* this factor or 2 correction is necessary ++ because half of the constraint force is removed ++ in the vv step, so we have to double it. See ++ the Redmine issue #1255. It is not yet clear ++ if the factor of 2 is exact, or just a very ++ good approximation, and this will be ++ investigated. The next step is to see if this ++ can be done adding a dhdl contribution from the ++ rattle step, but this is somewhat more ++ complicated with the current code. Will be ++ investigated, hopefully for 4.6.3. However, ++ this current solution is much better than ++ having it completely wrong. ++ */ ++ enerd->term[F_DVDL_CONSTR] += 2*dvdl_constr; ++ } ++ else ++ { ++ enerd->term[F_DVDL_CONSTR] += dvdl_constr; ++ } ++ } ++ else if (graph) ++ { ++ /* Need to unshift here */ ++ unshift_self(graph, state->box, state->x); ++ } ++ ++ if (vsite != NULL) ++ { ++ wallcycle_start(wcycle, ewcVSITECONSTR); ++ if (graph != NULL) ++ { ++ shift_self(graph, state->box, state->x); ++ } ++ construct_vsites(vsite, state->x, ir->delta_t, state->v, ++ top->idef.iparams, top->idef.il, ++ fr->ePBC, fr->bMolPBC, cr, state->box); ++ ++ if (graph != NULL) ++ { ++ unshift_self(graph, state->box, state->x); ++ } ++ wallcycle_stop(wcycle, ewcVSITECONSTR); ++ } ++ ++ /* ############## IF NOT VV, Calculate globals HERE, also iterate constraints ############ */ ++ /* With Leap-Frog we can skip compute_globals at ++ * non-communication steps, but we need to calculate ++ * the kinetic energy one step before communication. ++ */ ++ if (bGStat || (!EI_VV(ir->eI) && do_per_step(step+1, nstglobalcomm))) ++ { ++ if (ir->nstlist == -1 && bFirstIterate) ++ { ++ gs.sig[eglsNABNSB] = nlh.nabnsb; ++ } ++ compute_globals(fplog, gstat, cr, ir, fr, ekind, state, state_global, mdatoms, nrnb, vcm, ++ wcycle, enerd, force_vir, shake_vir, total_vir, pres, mu_tot, ++ constr, ++ bFirstIterate ? &gs : NULL, ++ (step_rel % gs.nstms == 0) && ++ (multisim_nsteps < 0 || (step_rel < multisim_nsteps)), ++ lastbox, ++ top_global, &bSumEkinhOld, ++ cglo_flags ++ | (!EI_VV(ir->eI) || bRerunMD ? CGLO_ENERGY : 0) ++ | (!EI_VV(ir->eI) && bStopCM ? CGLO_STOPCM : 0) ++ | (!EI_VV(ir->eI) ? CGLO_TEMPERATURE : 0) ++ | (!EI_VV(ir->eI) || bRerunMD ? CGLO_PRESSURE : 0) ++ | (iterate.bIterationActive ? CGLO_ITERATE : 0) ++ | (bFirstIterate ? CGLO_FIRSTITERATE : 0) ++ | CGLO_CONSTRAINT ++ ); ++ if (ir->nstlist == -1 && bFirstIterate) ++ { ++ nlh.nabnsb = gs.set[eglsNABNSB]; ++ gs.set[eglsNABNSB] = 0; ++ } ++ } ++ /* bIterate is set to keep it from eliminating the old ekin kinetic energy terms */ ++ /* ############# END CALC EKIN AND PRESSURE ################# */ ++ ++ /* Note: this is OK, but there are some numerical precision issues with using the convergence of ++ the virial that should probably be addressed eventually. state->veta has better properies, ++ but what we actually need entering the new cycle is the new shake_vir value. Ideally, we could ++ generate the new shake_vir, but test the veta value for convergence. This will take some thought. */ ++ ++ if (iterate.bIterationActive && ++ done_iterating(cr, fplog, step, &iterate, bFirstIterate, ++ trace(shake_vir), &tracevir)) ++ { ++ break; ++ } ++ bFirstIterate = FALSE; ++ } ++ ++ if (!bVV || bRerunMD) ++ { ++ /* sum up the foreign energy and dhdl terms for md and sd. currently done every step so that dhdl is correct in the .edr */ ++ sum_dhdl(enerd, state->lambda, ir->fepvals); ++ } ++ update_box(fplog, step, ir, mdatoms, state, f, ++ ir->nstlist == -1 ? &nlh.scale_tot : NULL, pcoupl_mu, nrnb, upd); ++ ++ /* ################# END UPDATE STEP 2 ################# */ ++ /* #### We now have r(t+dt) and v(t+dt/2) ############# */ ++ ++ /* The coordinates (x) were unshifted in update */ ++ if (!bGStat) ++ { ++ /* We will not sum ekinh_old, ++ * so signal that we still have to do it. ++ */ ++ bSumEkinhOld = TRUE; ++ } ++ ++ /* ######### BEGIN PREPARING EDR OUTPUT ########### */ ++ ++ /* use the directly determined last velocity, not actually the averaged half steps */ ++ if (bTrotter && ir->eI == eiVV) ++ { ++ enerd->term[F_EKIN] = last_ekin; ++ } ++ enerd->term[F_ETOT] = enerd->term[F_EPOT] + enerd->term[F_EKIN]; ++ ++ if (bVV) ++ { ++ enerd->term[F_ECONSERVED] = enerd->term[F_ETOT] + saved_conserved_quantity; ++ } ++ else ++ { ++ enerd->term[F_ECONSERVED] = enerd->term[F_ETOT] + compute_conserved_from_auxiliary(ir, state, &MassQ); ++ } ++ /* ######### END PREPARING EDR OUTPUT ########### */ ++ ++ /* Output stuff */ ++ if (MASTER(cr)) ++ { ++ gmx_bool do_dr, do_or; ++ ++ if (fplog && do_log && bDoExpanded) ++ { ++ /* only needed if doing expanded ensemble */ ++ PrintFreeEnergyInfoToFile(fplog, ir->fepvals, ir->expandedvals, ir->bSimTemp ? ir->simtempvals : NULL, ++ &state_global->dfhist, state->fep_state, ir->nstlog, step); ++ } ++ if (!(bStartingFromCpt && (EI_VV(ir->eI)))) ++ { ++ if (bCalcEner) ++ { ++ upd_mdebin(mdebin, bDoDHDL, TRUE, ++ t, mdatoms->tmass, enerd, state, ++ ir->fepvals, ir->expandedvals, lastbox, ++ shake_vir, force_vir, total_vir, pres, ++ ekind, mu_tot, constr); ++ } ++ else ++ { ++ upd_mdebin_step(mdebin); ++ } ++ ++ do_dr = do_per_step(step, ir->nstdisreout); ++ do_or = do_per_step(step, ir->nstorireout); ++ ++ print_ebin(mdoutf_get_fp_ene(outf), do_ene, do_dr, do_or, do_log ? fplog : NULL, ++ step, t, ++ eprNORMAL, bCompact, mdebin, fcd, groups, &(ir->opts)); ++ } ++ if (ir->ePull != epullNO) ++ { ++ pull_print_output(ir->pull, step, t); ++ } ++ ++ if (do_per_step(step, ir->nstlog)) ++ { ++ if (fflush(fplog) != 0) ++ { ++ gmx_fatal(FARGS, "Cannot flush logfile - maybe you are out of disk space?"); ++ } ++ } ++ } ++ if (bDoExpanded) ++ { ++ /* Have to do this part _after_ outputting the logfile and the edr file */ ++ /* Gets written into the state at the beginning of next loop*/ ++ state->fep_state = lamnew; ++ } ++ /* Print the remaining wall clock time for the run */ ++ if (MULTIMASTER(cr) && (do_verbose || gmx_got_usr_signal()) && !bPMETuneRunning) ++ { ++ if (shellfc) ++ { ++ fprintf(stderr, "\n"); ++ } ++ print_time(stderr, walltime_accounting, step, ir, cr); ++ } ++ ++ /* Ion/water position swapping. ++ * Not done in last step since trajectory writing happens before this call ++ * in the MD loop and exchanges would be lost anyway. */ ++ bNeedRepartition = FALSE; ++ if ((ir->eSwapCoords != eswapNO) && (step > 0) && !bLastStep && ++ do_per_step(step, ir->swap->nstswap)) ++ { ++ bNeedRepartition = do_swapcoords(cr, step, t, ir, wcycle, ++ bRerunMD ? rerun_fr.x : state->x, ++ bRerunMD ? rerun_fr.box : state->box, ++ top_global, MASTER(cr) && bVerbose, bRerunMD); ++ ++ if (bNeedRepartition && DOMAINDECOMP(cr)) ++ { ++ dd_collect_state(cr->dd, state, state_global); ++ } ++ } ++ ++ /* Replica exchange */ ++ bExchanged = FALSE; ++ if (bDoReplEx) ++ { ++ bExchanged = replica_exchange(fplog, cr, repl_ex, ++ state_global, enerd, ++ state, step, t); ++ } ++ ++ if ( (bExchanged || bNeedRepartition) && DOMAINDECOMP(cr) ) ++ { ++ dd_partition_system(fplog, step, cr, TRUE, 1, ++ state_global, top_global, ir, ++ state, &f, mdatoms, top, fr, ++ vsite, shellfc, constr, ++ nrnb, wcycle, FALSE); ++ } ++ ++ bFirstStep = FALSE; ++ bInitStep = FALSE; ++ bStartingFromCpt = FALSE; ++ ++ /* ####### SET VARIABLES FOR NEXT ITERATION IF THEY STILL NEED IT ###### */ ++ /* With all integrators, except VV, we need to retain the pressure ++ * at the current step for coupling at the next step. ++ */ ++ if ((state->flags & (1<nstpcouple > 0 && step % ir->nstpcouple == 0))) ++ { ++ /* Store the pressure in t_state for pressure coupling ++ * at the next MD step. ++ */ ++ copy_mat(pres, state->pres_prev); ++ } ++ ++ /* ####### END SET VARIABLES FOR NEXT ITERATION ###### */ ++ ++ if ( (membed != NULL) && (!bLastStep) ) ++ { ++ rescale_membed(step_rel, membed, state_global->x); ++ } ++ ++ if (bRerunMD) ++ { ++ if (MASTER(cr)) ++ { ++ /* read next frame from input trajectory */ ++ bNotLastFrame = read_next_frame(oenv, status, &rerun_fr); ++ } ++ ++ if (PAR(cr)) ++ { ++ rerun_parallel_comm(cr, &rerun_fr, &bNotLastFrame); ++ } ++ } ++ ++ if (!bRerunMD || !rerun_fr.bStep) ++ { ++ /* increase the MD step number */ ++ step++; ++ step_rel++; ++ } ++ ++ cycles = wallcycle_stop(wcycle, ewcSTEP); ++ if (DOMAINDECOMP(cr) && wcycle) ++ { ++ dd_cycles_add(cr->dd, cycles, ddCyclStep); ++ } ++ ++ if (bPMETuneRunning || bPMETuneTry) ++ { ++ /* PME grid + cut-off optimization with GPUs or PME nodes */ ++ ++ /* Count the total cycles over the last steps */ ++ cycles_pmes += cycles; ++ ++ /* We can only switch cut-off at NS steps */ ++ if (step % ir->nstlist == 0) ++ { ++ /* PME grid + cut-off optimization with GPUs or PME nodes */ ++ if (bPMETuneTry) ++ { ++ if (DDMASTER(cr->dd)) ++ { ++ /* PME node load is too high, start tuning */ ++ bPMETuneRunning = (dd_pme_f_ratio(cr->dd) >= 1.05); ++ } ++ dd_bcast(cr->dd, sizeof(gmx_bool), &bPMETuneRunning); ++ ++ if (bPMETuneRunning && ++ fr->nbv->bUseGPU && DOMAINDECOMP(cr) && ++ !(cr->duty & DUTY_PME)) ++ { ++ /* Lock DLB=auto to off (does nothing when DLB=yes/no). ++ * With GPUs + separate PME ranks, we don't want DLB. ++ * This could happen when we scan coarse grids and ++ * it would then never be turned off again. ++ * This would hurt performance at the final, optimal ++ * grid spacing, where DLB almost never helps. ++ * Also, DLB can limit the cut-off for PME tuning. ++ */ ++ dd_dlb_set_lock(cr->dd, TRUE); ++ } ++ ++ if (bPMETuneRunning || step_rel > ir->nstlist*50) ++ { ++ bPMETuneTry = FALSE; ++ } ++ } ++ if (bPMETuneRunning) ++ { ++ /* init_step might not be a multiple of nstlist, ++ * but the first cycle is always skipped anyhow. ++ */ ++ bPMETuneRunning = ++ pme_load_balance(pme_loadbal, cr, ++ (bVerbose && MASTER(cr)) ? stderr : NULL, ++ fplog, ++ ir, state, cycles_pmes, ++ fr->ic, fr->nbv, &fr->pmedata, ++ step); ++ ++ /* Update constants in forcerec/inputrec to keep them in sync with fr->ic */ ++ fr->ewaldcoeff_q = fr->ic->ewaldcoeff_q; ++ fr->ewaldcoeff_lj = fr->ic->ewaldcoeff_lj; ++ fr->rlist = fr->ic->rlist; ++ fr->rlistlong = fr->ic->rlistlong; ++ fr->rcoulomb = fr->ic->rcoulomb; ++ fr->rvdw = fr->ic->rvdw; ++ ++ if (ir->eDispCorr != edispcNO) ++ { ++ calc_enervirdiff(NULL, ir->eDispCorr, fr); ++ } ++ ++ if (!bPMETuneRunning && ++ DOMAINDECOMP(cr) && ++ dd_dlb_is_locked(cr->dd)) ++ { ++ /* Unlock the DLB=auto, DLB is allowed to activate ++ * (but we don't expect it to activate in most cases). ++ */ ++ dd_dlb_set_lock(cr->dd, FALSE); ++ } ++ } ++ cycles_pmes = 0; ++ } ++ } ++ ++ if (step_rel == wcycle_get_reset_counters(wcycle) || ++ gs.set[eglsRESETCOUNTERS] != 0) ++ { ++ /* Reset all the counters related to performance over the run */ ++ reset_all_counters(fplog, cr, step, &step_rel, ir, wcycle, nrnb, walltime_accounting, ++ fr->nbv != NULL && fr->nbv->bUseGPU ? fr->nbv->cu_nbv : NULL); ++ wcycle_set_reset_counters(wcycle, -1); ++ if (!(cr->duty & DUTY_PME)) ++ { ++ /* Tell our PME node to reset its counters */ ++ gmx_pme_send_resetcounters(cr, step); ++ } ++ /* Correct max_hours for the elapsed time */ ++ max_hours -= elapsed_time/(60.0*60.0); ++ bResetCountersHalfMaxH = FALSE; ++ gs.set[eglsRESETCOUNTERS] = 0; ++ } ++ ++ /* If bIMD is TRUE, the master updates the IMD energy record and sends positions to VMD client */ ++ IMD_prep_energies_send_positions(ir->bIMD && MASTER(cr), bIMDstep, ir->imd, enerd, step, bCalcEner, wcycle); ++ ++ } ++ /* End of main MD loop */ ++ debug_gmx(); ++ ++ /* Closing TNG files can include compressing data. Therefore it is good to do that ++ * before stopping the time measurements. */ ++ mdoutf_tng_close(outf); ++ ++ /* Stop measuring walltime */ ++ walltime_accounting_end(walltime_accounting); ++ ++ if (bRerunMD && MASTER(cr)) ++ { ++ close_trj(status); ++ } ++ ++ if (!(cr->duty & DUTY_PME)) ++ { ++ /* Tell the PME only node to finish */ ++ gmx_pme_send_finish(cr); ++ } ++ ++ if (MASTER(cr)) ++ { ++ if (ir->nstcalcenergy > 0 && !bRerunMD) ++ { ++ print_ebin(mdoutf_get_fp_ene(outf), FALSE, FALSE, FALSE, fplog, step, t, ++ eprAVER, FALSE, mdebin, fcd, groups, &(ir->opts)); ++ } ++ } ++ ++ done_mdoutf(outf); ++ debug_gmx(); ++ ++ if (ir->nstlist == -1 && nlh.nns > 0 && fplog) ++ { ++ fprintf(fplog, "Average neighborlist lifetime: %.1f steps, std.dev.: %.1f steps\n", nlh.s1/nlh.nns, sqrt(nlh.s2/nlh.nns - sqr(nlh.s1/nlh.nns))); ++ fprintf(fplog, "Average number of atoms that crossed the half buffer length: %.1f\n\n", nlh.ab/nlh.nns); ++ } ++ ++ if (pme_loadbal != NULL) ++ { ++ pme_loadbal_done(pme_loadbal, cr, fplog, ++ fr->nbv != NULL && fr->nbv->bUseGPU); ++ } ++ ++ if (shellfc && fplog) ++ { ++ fprintf(fplog, "Fraction of iterations that converged: %.2f %%\n", ++ (nconverged*100.0)/step_rel); ++ fprintf(fplog, "Average number of force evaluations per MD step: %.2f\n\n", ++ tcount/step_rel); ++ } ++ ++ if (repl_ex_nst > 0 && MASTER(cr)) ++ { ++ print_replica_exchange_statistics(fplog, repl_ex); ++ } ++ ++ /* IMD cleanup, if bIMD is TRUE. */ ++ IMD_finalize(ir->bIMD, ir->imd); ++ ++ walltime_accounting_set_nsteps_done(walltime_accounting, step_rel); ++ ++ return 0; ++} +diff --git a/src/programs/mdrun/mdrun.cpp b/src/programs/mdrun/mdrun.cpp +index 6bac3f0..e9fbf48 100644 +--- a/src/programs/mdrun/mdrun.cpp ++++ b/src/programs/mdrun/mdrun.cpp +@@ -55,6 +55,12 @@ + + #include "gromacs/commandline/pargs.h" + #include "gromacs/fileio/filenm.h" ++/* PLUMED */ ++#include "../../../Plumed.h" ++extern int plumedswitch; ++extern plumed plumedmain; ++extern void(*plumedcmd)(plumed,const char*,const void*); ++/* END PLUMED */ + + int gmx_mdrun(int argc, char *argv[]) + { +@@ -428,6 +434,7 @@ int gmx_mdrun(int argc, char *argv[]) + { efMTX, "-mtx", "nm", ffOPTWR }, + { efNDX, "-dn", "dipole", ffOPTWR }, + { efRND, "-multidir", NULL, ffOPTRDMULT}, ++ { efDAT, "-plumed", "plumed", ffOPTRD }, /* PLUMED */ + { efDAT, "-membed", "membed", ffOPTRD }, + { efTOP, "-mp", "membed", ffOPTRD }, + { efNDX, "-mn", "membed", ffOPTRD }, +@@ -780,6 +787,32 @@ int gmx_mdrun(int argc, char *argv[]) + ddxyz[YY] = (int)(realddxyz[YY] + 0.5); + ddxyz[ZZ] = (int)(realddxyz[ZZ] + 0.5); + ++ /* PLUMED */ ++ plumedswitch=0; ++ if (opt2bSet("-plumed",NFILE,fnm)) plumedswitch=1; ++ if(plumedswitch){ ++ plumedcmd=plumed_cmd; ++ int plumed_is_there=0; ++ int real_precision=sizeof(real); ++ real energyUnits=1.0; ++ real lengthUnits=1.0; ++ real timeUnits=1.0; ++ ++ if(!plumed_installed()){ ++ gmx_fatal(FARGS,"Plumed is not available. Check your PLUMED_KERNEL variable."); ++ } ++ plumedmain=plumed_create(); ++ plumed_cmd(plumedmain,"setRealPrecision",&real_precision); ++ // this is not necessary for gromacs units: ++ plumed_cmd(plumedmain,"setMDEnergyUnits",&energyUnits); ++ plumed_cmd(plumedmain,"setMDLengthUnits",&lengthUnits); ++ plumed_cmd(plumedmain,"setMDTimeUnits",&timeUnits); ++ // ++ plumed_cmd(plumedmain,"setPlumedDat",ftp2fn(efDAT,NFILE,fnm)); ++ plumedswitch=1; ++ } ++ /* END PLUMED */ ++ + rc = mdrunner(&hw_opt, fplog, cr, NFILE, fnm, oenv, bVerbose, bCompact, + nstglobalcomm, ddxyz, dd_node_order, rdd, rconstr, + dddlb_opt[0], dlb_scale, ddcsx, ddcsy, ddcsz, +@@ -788,6 +821,12 @@ int gmx_mdrun(int argc, char *argv[]) + nmultisim, repl_ex_nst, repl_ex_nex, repl_ex_seed, + pforce, cpt_period, max_hours, deviceOptions, imdport, Flags); + ++ /* PLUMED */ ++ if(plumedswitch){ ++ plumed_finalize(plumedmain); ++ } ++ /* END PLUMED */ ++ + /* Log file has to be closed in mdrunner if we are appending to it + (fplog not set here) */ + if (MASTER(cr) && !bAppendFiles) +diff --git a/src/programs/mdrun/mdrun.cpp.preplumed b/src/programs/mdrun/mdrun.cpp.preplumed +new file mode 100644 +index 0000000..6bac3f0 +--- /dev/null ++++ b/src/programs/mdrun/mdrun.cpp.preplumed +@@ -0,0 +1,799 @@ ++/* ++ * This file is part of the GROMACS molecular simulation package. ++ * ++ * Copyright (c) 1991-2000, University of Groningen, The Netherlands. ++ * Copyright (c) 2001-2004, The GROMACS development team. ++ * Copyright (c) 2011,2012,2013,2014, by the GROMACS development team, led by ++ * Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl, ++ * and including many others, as listed in the AUTHORS file in the ++ * top-level source directory and at http://www.gromacs.org. ++ * ++ * GROMACS 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; either version 2.1 ++ * of the License, or (at your option) any later version. ++ * ++ * GROMACS 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 ++ * Lesser General Public License for more details. ++ * ++ * You should have received a copy of the GNU Lesser General Public ++ * License along with GROMACS; if not, see ++ * http://www.gnu.org/licenses, or write to the Free Software Foundation, ++ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. ++ * ++ * If you want to redistribute modifications to GROMACS, please ++ * consider that scientific software is very special. Version ++ * control is crucial - bugs must be traceable. We will be happy to ++ * consider code for inclusion in the official distribution, but ++ * derived work must not be called official GROMACS. Details are found ++ * in the README & COPYING files - if they are missing, get the ++ * official version at http://www.gromacs.org. ++ * ++ * To help us fund GROMACS development, we humbly ask that you cite ++ * the research papers on the package. Check out http://www.gromacs.org. ++ */ ++#include "mdrun_main.h" ++ ++#ifdef HAVE_CONFIG_H ++#include "config.h" ++#endif ++ ++#include ++ ++#include "gromacs/legacyheaders/checkpoint.h" ++#include "gromacs/legacyheaders/copyrite.h" ++#include "gromacs/legacyheaders/gmx_fatal.h" ++#include "gromacs/legacyheaders/macros.h" ++#include "gromacs/legacyheaders/main.h" ++#include "gromacs/legacyheaders/mdrun.h" ++#include "gromacs/legacyheaders/network.h" ++#include "gromacs/legacyheaders/readinp.h" ++#include "gromacs/legacyheaders/typedefs.h" ++#include "gromacs/legacyheaders/types/commrec.h" ++ ++#include "gromacs/commandline/pargs.h" ++#include "gromacs/fileio/filenm.h" ++ ++int gmx_mdrun(int argc, char *argv[]) ++{ ++ const char *desc[] = { ++ "[THISMODULE] is the main computational chemistry engine", ++ "within GROMACS. Obviously, it performs Molecular Dynamics simulations,", ++ "but it can also perform Stochastic Dynamics, Energy Minimization,", ++ "test particle insertion or (re)calculation of energies.", ++ "Normal mode analysis is another option. In this case [TT]mdrun[tt]", ++ "builds a Hessian matrix from single conformation.", ++ "For usual Normal Modes-like calculations, make sure that", ++ "the structure provided is properly energy-minimized.", ++ "The generated matrix can be diagonalized by [gmx-nmeig].[PAR]", ++ "The [TT]mdrun[tt] program reads the run input file ([TT]-s[tt])", ++ "and distributes the topology over ranks if needed.", ++ "[TT]mdrun[tt] produces at least four output files.", ++ "A single log file ([TT]-g[tt]) is written, unless the option", ++ "[TT]-seppot[tt] is used, in which case each rank writes a log file.", ++ "The trajectory file ([TT]-o[tt]), contains coordinates, velocities and", ++ "optionally forces.", ++ "The structure file ([TT]-c[tt]) contains the coordinates and", ++ "velocities of the last step.", ++ "The energy file ([TT]-e[tt]) contains energies, the temperature,", ++ "pressure, etc, a lot of these things are also printed in the log file.", ++ "Optionally coordinates can be written to a compressed trajectory file", ++ "([TT]-x[tt]).[PAR]", ++ "The option [TT]-dhdl[tt] is only used when free energy calculation is", ++ "turned on.[PAR]", ++ "A simulation can be run in parallel using two different parallelization", ++ "schemes: MPI parallelization and/or OpenMP thread parallelization.", ++ "The MPI parallelization uses multiple processes when [TT]mdrun[tt] is", ++ "compiled with a normal MPI library or threads when [TT]mdrun[tt] is", ++ "compiled with the GROMACS built-in thread-MPI library. OpenMP threads", ++ "are supported when [TT]mdrun[tt] is compiled with OpenMP. Full OpenMP support", ++ "is only available with the Verlet cut-off scheme, with the (older)", ++ "group scheme only PME-only ranks can use OpenMP parallelization.", ++ "In all cases [TT]mdrun[tt] will by default try to use all the available", ++ "hardware resources. With a normal MPI library only the options", ++ "[TT]-ntomp[tt] (with the Verlet cut-off scheme) and [TT]-ntomp_pme[tt],", ++ "for PME-only ranks, can be used to control the number of threads.", ++ "With thread-MPI there are additional options [TT]-nt[tt], which sets", ++ "the total number of threads, and [TT]-ntmpi[tt], which sets the number", ++ "of thread-MPI threads.", ++ "The number of OpenMP threads used by [TT]mdrun[tt] can also be set with", ++ "the standard environment variable, [TT]OMP_NUM_THREADS[tt].", ++ "The [TT]GMX_PME_NUM_THREADS[tt] environment variable can be used to specify", ++ "the number of threads used by the PME-only ranks.[PAR]", ++ "Note that combined MPI+OpenMP parallelization is in many cases", ++ "slower than either on its own. However, at high parallelization, using the", ++ "combination is often beneficial as it reduces the number of domains and/or", ++ "the number of MPI ranks. (Less and larger domains can improve scaling,", ++ "with separate PME ranks, using fewer MPI ranks reduces communication costs.)", ++ "OpenMP-only parallelization is typically faster than MPI-only parallelization", ++ "on a single CPU(-die). Since we currently don't have proper hardware", ++ "topology detection, [TT]mdrun[tt] compiled with thread-MPI will only", ++ "automatically use OpenMP-only parallelization when you use up to 4", ++ "threads, up to 12 threads with Intel Nehalem/Westmere, or up to 16", ++ "threads with Intel Sandy Bridge or newer CPUs. Otherwise MPI-only", ++ "parallelization is used (except with GPUs, see below).", ++ "[PAR]", ++ "To quickly test the performance of the new Verlet cut-off scheme", ++ "with old [TT].tpr[tt] files, either on CPUs or CPUs+GPUs, you can use", ++ "the [TT]-testverlet[tt] option. This should not be used for production,", ++ "since it can slightly modify potentials and it will remove charge groups", ++ "making analysis difficult, as the [TT].tpr[tt] file will still contain", ++ "charge groups. For production simulations it is highly recommended", ++ "to specify [TT]cutoff-scheme = Verlet[tt] in the [TT].mdp[tt] file.", ++ "[PAR]", ++ "With GPUs (only supported with the Verlet cut-off scheme), the number", ++ "of GPUs should match the number of particle-particle ranks, i.e.", ++ "excluding PME-only ranks. With thread-MPI, unless set on the command line, the number", ++ "of MPI threads will automatically be set to the number of GPUs detected.", ++ "To use a subset of the available GPUs, or to manually provide a mapping of", ++ "GPUs to PP ranks, you can use the [TT]-gpu_id[tt] option. The argument of [TT]-gpu_id[tt] is", ++ "a string of digits (without delimiter) representing device id-s of the GPUs to be used.", ++ "For example, \"[TT]02[tt]\" specifies using GPUs 0 and 2 in the first and second PP ranks per compute node", ++ "respectively. To select different sets of GPU-s", ++ "on different nodes of a compute cluster, use the [TT]GMX_GPU_ID[tt] environment", ++ "variable instead. The format for [TT]GMX_GPU_ID[tt] is identical to ", ++ "[TT]-gpu_id[tt], with the difference that an environment variable can have", ++ "different values on different compute nodes. Multiple MPI ranks on each node", ++ "can share GPUs. This is accomplished by specifying the id(s) of the GPU(s)", ++ "multiple times, e.g. \"[TT]0011[tt]\" for four ranks sharing two GPUs in this node.", ++ "This works within a single simulation, or a multi-simulation, with any form of MPI.", ++ "[PAR]", ++ "With the Verlet cut-off scheme and verlet-buffer-tolerance set,", ++ "the pair-list update interval nstlist can be chosen freely with", ++ "the option [TT]-nstlist[tt]. [TT]mdrun[tt] will then adjust", ++ "the pair-list cut-off to maintain accuracy, and not adjust nstlist.", ++ "Otherwise, by default, [TT]mdrun[tt] will try to increase the", ++ "value of nstlist set in the [TT].mdp[tt] file to improve the", ++ "performance. For CPU-only runs, nstlist might increase to 20, for", ++ "GPU runs up to 40. For medium to high parallelization or with", ++ "fast GPUs, a (user-supplied) larger nstlist value can give much", ++ "better performance.", ++ "[PAR]", ++ "When using PME with separate PME ranks or with a GPU, the two major", ++ "compute tasks, the non-bonded force calculation and the PME calculation", ++ "run on different compute resources. If this load is not balanced,", ++ "some of the resources will be idle part of time. With the Verlet", ++ "cut-off scheme this load is automatically balanced when the PME load", ++ "is too high (but not when it is too low). This is done by scaling", ++ "the Coulomb cut-off and PME grid spacing by the same amount. In the first", ++ "few hundred steps different settings are tried and the fastest is chosen", ++ "for the rest of the simulation. This does not affect the accuracy of", ++ "the results, but it does affect the decomposition of the Coulomb energy", ++ "into particle and mesh contributions. The auto-tuning can be turned off", ++ "with the option [TT]-notunepme[tt].", ++ "[PAR]", ++ "[TT]mdrun[tt] pins (sets affinity of) threads to specific cores,", ++ "when all (logical) cores on a compute node are used by [TT]mdrun[tt],", ++ "even when no multi-threading is used,", ++ "as this usually results in significantly better performance.", ++ "If the queuing systems or the OpenMP library pinned threads, we honor", ++ "this and don't pin again, even though the layout may be sub-optimal.", ++ "If you want to have [TT]mdrun[tt] override an already set thread affinity", ++ "or pin threads when using less cores, use [TT]-pin on[tt].", ++ "With SMT (simultaneous multithreading), e.g. Intel Hyper-Threading,", ++ "there are multiple logical cores per physical core.", ++ "The option [TT]-pinstride[tt] sets the stride in logical cores for", ++ "pinning consecutive threads. Without SMT, 1 is usually the best choice.", ++ "With Intel Hyper-Threading 2 is best when using half or less of the", ++ "logical cores, 1 otherwise. The default value of 0 do exactly that:", ++ "it minimizes the threads per logical core, to optimize performance.", ++ "If you want to run multiple [TT]mdrun[tt] jobs on the same physical node," ++ "you should set [TT]-pinstride[tt] to 1 when using all logical cores.", ++ "When running multiple [TT]mdrun[tt] (or other) simulations on the same physical", ++ "node, some simulations need to start pinning from a non-zero core", ++ "to avoid overloading cores; with [TT]-pinoffset[tt] you can specify", ++ "the offset in logical cores for pinning.", ++ "[PAR]", ++ "When [TT]mdrun[tt] is started with more than 1 rank,", ++ "parallelization with domain decomposition is used.", ++ "[PAR]", ++ "With domain decomposition, the spatial decomposition can be set", ++ "with option [TT]-dd[tt]. By default [TT]mdrun[tt] selects a good decomposition.", ++ "The user only needs to change this when the system is very inhomogeneous.", ++ "Dynamic load balancing is set with the option [TT]-dlb[tt],", ++ "which can give a significant performance improvement,", ++ "especially for inhomogeneous systems. The only disadvantage of", ++ "dynamic load balancing is that runs are no longer binary reproducible,", ++ "but in most cases this is not important.", ++ "By default the dynamic load balancing is automatically turned on", ++ "when the measured performance loss due to load imbalance is 5% or more.", ++ "At low parallelization these are the only important options", ++ "for domain decomposition.", ++ "At high parallelization the options in the next two sections", ++ "could be important for increasing the performace.", ++ "[PAR]", ++ "When PME is used with domain decomposition, separate ranks can", ++ "be assigned to do only the PME mesh calculation;", ++ "this is computationally more efficient starting at about 12 ranks,", ++ "or even fewer when OpenMP parallelization is used.", ++ "The number of PME ranks is set with option [TT]-npme[tt],", ++ "but this cannot be more than half of the ranks.", ++ "By default [TT]mdrun[tt] makes a guess for the number of PME", ++ "ranks when the number of ranks is larger than 16. With GPUs,", ++ "using separate PME ranks is not selected automatically,", ++ "since the optimal setup depends very much on the details", ++ "of the hardware. In all cases, you might gain performance", ++ "by optimizing [TT]-npme[tt]. Performance statistics on this issue", ++ "are written at the end of the log file.", ++ "For good load balancing at high parallelization, the PME grid x and y", ++ "dimensions should be divisible by the number of PME ranks", ++ "(the simulation will run correctly also when this is not the case).", ++ "[PAR]", ++ "This section lists all options that affect the domain decomposition.", ++ "[PAR]", ++ "Option [TT]-rdd[tt] can be used to set the required maximum distance", ++ "for inter charge-group bonded interactions.", ++ "Communication for two-body bonded interactions below the non-bonded", ++ "cut-off distance always comes for free with the non-bonded communication.", ++ "Atoms beyond the non-bonded cut-off are only communicated when they have", ++ "missing bonded interactions; this means that the extra cost is minor", ++ "and nearly indepedent of the value of [TT]-rdd[tt].", ++ "With dynamic load balancing option [TT]-rdd[tt] also sets", ++ "the lower limit for the domain decomposition cell sizes.", ++ "By default [TT]-rdd[tt] is determined by [TT]mdrun[tt] based on", ++ "the initial coordinates. The chosen value will be a balance", ++ "between interaction range and communication cost.", ++ "[PAR]", ++ "When inter charge-group bonded interactions are beyond", ++ "the bonded cut-off distance, [TT]mdrun[tt] terminates with an error message.", ++ "For pair interactions and tabulated bonds", ++ "that do not generate exclusions, this check can be turned off", ++ "with the option [TT]-noddcheck[tt].", ++ "[PAR]", ++ "When constraints are present, option [TT]-rcon[tt] influences", ++ "the cell size limit as well.", ++ "Atoms connected by NC constraints, where NC is the LINCS order plus 1,", ++ "should not be beyond the smallest cell size. A error message is", ++ "generated when this happens and the user should change the decomposition", ++ "or decrease the LINCS order and increase the number of LINCS iterations.", ++ "By default [TT]mdrun[tt] estimates the minimum cell size required for P-LINCS", ++ "in a conservative fashion. For high parallelization it can be useful", ++ "to set the distance required for P-LINCS with the option [TT]-rcon[tt].", ++ "[PAR]", ++ "The [TT]-dds[tt] option sets the minimum allowed x, y and/or z scaling", ++ "of the cells with dynamic load balancing. [TT]mdrun[tt] will ensure that", ++ "the cells can scale down by at least this factor. This option is used", ++ "for the automated spatial decomposition (when not using [TT]-dd[tt])", ++ "as well as for determining the number of grid pulses, which in turn", ++ "sets the minimum allowed cell size. Under certain circumstances", ++ "the value of [TT]-dds[tt] might need to be adjusted to account for", ++ "high or low spatial inhomogeneity of the system.", ++ "[PAR]", ++ "The option [TT]-gcom[tt] can be used to only do global communication", ++ "every n steps.", ++ "This can improve performance for highly parallel simulations", ++ "where this global communication step becomes the bottleneck.", ++ "For a global thermostat and/or barostat the temperature", ++ "and/or pressure will also only be updated every [TT]-gcom[tt] steps.", ++ "By default it is set to the minimum of nstcalcenergy and nstlist.[PAR]", ++ "With [TT]-rerun[tt] an input trajectory can be given for which ", ++ "forces and energies will be (re)calculated. Neighbor searching will be", ++ "performed for every frame, unless [TT]nstlist[tt] is zero", ++ "(see the [TT].mdp[tt] file).[PAR]", ++ "ED (essential dynamics) sampling and/or additional flooding potentials", ++ "are switched on by using the [TT]-ei[tt] flag followed by an [TT].edi[tt]", ++ "file. The [TT].edi[tt] file can be produced with the [TT]make_edi[tt] tool", ++ "or by using options in the essdyn menu of the WHAT IF program.", ++ "[TT]mdrun[tt] produces a [TT].xvg[tt] output file that", ++ "contains projections of positions, velocities and forces onto selected", ++ "eigenvectors.[PAR]", ++ "When user-defined potential functions have been selected in the", ++ "[TT].mdp[tt] file the [TT]-table[tt] option is used to pass [TT]mdrun[tt]", ++ "a formatted table with potential functions. The file is read from", ++ "either the current directory or from the [TT]GMXLIB[tt] directory.", ++ "A number of pre-formatted tables are presented in the [TT]GMXLIB[tt] dir,", ++ "for 6-8, 6-9, 6-10, 6-11, 6-12 Lennard-Jones potentials with", ++ "normal Coulomb.", ++ "When pair interactions are present, a separate table for pair interaction", ++ "functions is read using the [TT]-tablep[tt] option.[PAR]", ++ "When tabulated bonded functions are present in the topology,", ++ "interaction functions are read using the [TT]-tableb[tt] option.", ++ "For each different tabulated interaction type the table file name is", ++ "modified in a different way: before the file extension an underscore is", ++ "appended, then a 'b' for bonds, an 'a' for angles or a 'd' for dihedrals", ++ "and finally the table number of the interaction type.[PAR]", ++ "The options [TT]-px[tt] and [TT]-pf[tt] are used for writing pull COM", ++ "coordinates and forces when pulling is selected", ++ "in the [TT].mdp[tt] file.[PAR]", ++ "With [TT]-multi[tt] or [TT]-multidir[tt], multiple systems can be ", ++ "simulated in parallel.", ++ "As many input files/directories are required as the number of systems. ", ++ "The [TT]-multidir[tt] option takes a list of directories (one for each ", ++ "system) and runs in each of them, using the input/output file names, ", ++ "such as specified by e.g. the [TT]-s[tt] option, relative to these ", ++ "directories.", ++ "With [TT]-multi[tt], the system number is appended to the run input ", ++ "and each output filename, for instance [TT]topol.tpr[tt] becomes", ++ "[TT]topol0.tpr[tt], [TT]topol1.tpr[tt] etc.", ++ "The number of ranks per system is the total number of ranks", ++ "divided by the number of systems.", ++ "One use of this option is for NMR refinement: when distance", ++ "or orientation restraints are present these can be ensemble averaged", ++ "over all the systems.[PAR]", ++ "With [TT]-replex[tt] replica exchange is attempted every given number", ++ "of steps. The number of replicas is set with the [TT]-multi[tt] or ", ++ "[TT]-multidir[tt] option, described above.", ++ "All run input files should use a different coupling temperature,", ++ "the order of the files is not important. The random seed is set with", ++ "[TT]-reseed[tt]. The velocities are scaled and neighbor searching", ++ "is performed after every exchange.[PAR]", ++ "Finally some experimental algorithms can be tested when the", ++ "appropriate options have been given. Currently under", ++ "investigation are: polarizability.", ++ "[PAR]", ++ "The option [TT]-membed[tt] does what used to be g_membed, i.e. embed", ++ "a protein into a membrane. The data file should contain the options", ++ "that where passed to g_membed before. The [TT]-mn[tt] and [TT]-mp[tt]", ++ "both apply to this as well.", ++ "[PAR]", ++ "The option [TT]-pforce[tt] is useful when you suspect a simulation", ++ "crashes due to too large forces. With this option coordinates and", ++ "forces of atoms with a force larger than a certain value will", ++ "be printed to stderr.", ++ "[PAR]", ++ "Checkpoints containing the complete state of the system are written", ++ "at regular intervals (option [TT]-cpt[tt]) to the file [TT]-cpo[tt],", ++ "unless option [TT]-cpt[tt] is set to -1.", ++ "The previous checkpoint is backed up to [TT]state_prev.cpt[tt] to", ++ "make sure that a recent state of the system is always available,", ++ "even when the simulation is terminated while writing a checkpoint.", ++ "With [TT]-cpnum[tt] all checkpoint files are kept and appended", ++ "with the step number.", ++ "A simulation can be continued by reading the full state from file", ++ "with option [TT]-cpi[tt]. This option is intelligent in the way that", ++ "if no checkpoint file is found, Gromacs just assumes a normal run and", ++ "starts from the first step of the [TT].tpr[tt] file. By default the output", ++ "will be appending to the existing output files. The checkpoint file", ++ "contains checksums of all output files, such that you will never", ++ "loose data when some output files are modified, corrupt or removed.", ++ "There are three scenarios with [TT]-cpi[tt]:[PAR]", ++ "[TT]*[tt] no files with matching names are present: new output files are written[PAR]", ++ "[TT]*[tt] all files are present with names and checksums matching those stored", ++ "in the checkpoint file: files are appended[PAR]", ++ "[TT]*[tt] otherwise no files are modified and a fatal error is generated[PAR]", ++ "With [TT]-noappend[tt] new output files are opened and the simulation", ++ "part number is added to all output file names.", ++ "Note that in all cases the checkpoint file itself is not renamed", ++ "and will be overwritten, unless its name does not match", ++ "the [TT]-cpo[tt] option.", ++ "[PAR]", ++ "With checkpointing the output is appended to previously written", ++ "output files, unless [TT]-noappend[tt] is used or none of the previous", ++ "output files are present (except for the checkpoint file).", ++ "The integrity of the files to be appended is verified using checksums", ++ "which are stored in the checkpoint file. This ensures that output can", ++ "not be mixed up or corrupted due to file appending. When only some", ++ "of the previous output files are present, a fatal error is generated", ++ "and no old output files are modified and no new output files are opened.", ++ "The result with appending will be the same as from a single run.", ++ "The contents will be binary identical, unless you use a different number", ++ "of ranks or dynamic load balancing or the FFT library uses optimizations", ++ "through timing.", ++ "[PAR]", ++ "With option [TT]-maxh[tt] a simulation is terminated and a checkpoint", ++ "file is written at the first neighbor search step where the run time", ++ "exceeds [TT]-maxh[tt]*0.99 hours.", ++ "[PAR]", ++ "When [TT]mdrun[tt] receives a TERM signal, it will set nsteps to the current", ++ "step plus one. When [TT]mdrun[tt] receives an INT signal (e.g. when ctrl+C is", ++ "pressed), it will stop after the next neighbor search step ", ++ "(with nstlist=0 at the next step).", ++ "In both cases all the usual output will be written to file.", ++ "When running with MPI, a signal to one of the [TT]mdrun[tt] ranks", ++ "is sufficient, this signal should not be sent to mpirun or", ++ "the [TT]mdrun[tt] process that is the parent of the others.", ++ "[PAR]", ++ "Interactive molecular dynamics (IMD) can be activated by using at least one", ++ "of the three IMD switches: The [TT]-imdterm[tt] switch allows to terminate the", ++ "simulation from the molecular viewer (e.g. VMD). With [TT]-imdwait[tt],", ++ "[TT]mdrun[tt] pauses whenever no IMD client is connected. Pulling from the", ++ "IMD remote can be turned on by [TT]-imdpull[tt].", ++ "The port [TT]mdrun[tt] listens to can be altered by [TT]-imdport[tt].The", ++ "file pointed to by [TT]-if[tt] contains atom indices and forces if IMD", ++ "pulling is used." ++ "[PAR]", ++ "When [TT]mdrun[tt] is started with MPI, it does not run niced by default." ++ }; ++ t_commrec *cr; ++ t_filenm fnm[] = { ++ { efTPX, NULL, NULL, ffREAD }, ++ { efTRN, "-o", NULL, ffWRITE }, ++ { efCOMPRESSED, "-x", NULL, ffOPTWR }, ++ { efCPT, "-cpi", NULL, ffOPTRD }, ++ { efCPT, "-cpo", NULL, ffOPTWR }, ++ { efSTO, "-c", "confout", ffWRITE }, ++ { efEDR, "-e", "ener", ffWRITE }, ++ { efLOG, "-g", "md", ffWRITE }, ++ { efXVG, "-dhdl", "dhdl", ffOPTWR }, ++ { efXVG, "-field", "field", ffOPTWR }, ++ { efXVG, "-table", "table", ffOPTRD }, ++ { efXVG, "-tabletf", "tabletf", ffOPTRD }, ++ { efXVG, "-tablep", "tablep", ffOPTRD }, ++ { efXVG, "-tableb", "table", ffOPTRD }, ++ { efTRX, "-rerun", "rerun", ffOPTRD }, ++ { efXVG, "-tpi", "tpi", ffOPTWR }, ++ { efXVG, "-tpid", "tpidist", ffOPTWR }, ++ { efEDI, "-ei", "sam", ffOPTRD }, ++ { efXVG, "-eo", "edsam", ffOPTWR }, ++ { efXVG, "-devout", "deviatie", ffOPTWR }, ++ { efXVG, "-runav", "runaver", ffOPTWR }, ++ { efXVG, "-px", "pullx", ffOPTWR }, ++ { efXVG, "-pf", "pullf", ffOPTWR }, ++ { efXVG, "-ro", "rotation", ffOPTWR }, ++ { efLOG, "-ra", "rotangles", ffOPTWR }, ++ { efLOG, "-rs", "rotslabs", ffOPTWR }, ++ { efLOG, "-rt", "rottorque", ffOPTWR }, ++ { efMTX, "-mtx", "nm", ffOPTWR }, ++ { efNDX, "-dn", "dipole", ffOPTWR }, ++ { efRND, "-multidir", NULL, ffOPTRDMULT}, ++ { efDAT, "-membed", "membed", ffOPTRD }, ++ { efTOP, "-mp", "membed", ffOPTRD }, ++ { efNDX, "-mn", "membed", ffOPTRD }, ++ { efXVG, "-if", "imdforces", ffOPTWR }, ++ { efXVG, "-swap", "swapions", ffOPTWR } ++ }; ++#define NFILE asize(fnm) ++ ++ /* Command line options ! */ ++ gmx_bool bDDBondCheck = TRUE; ++ gmx_bool bDDBondComm = TRUE; ++ gmx_bool bTunePME = TRUE; ++ gmx_bool bTestVerlet = FALSE; ++ gmx_bool bVerbose = FALSE; ++ gmx_bool bCompact = TRUE; ++ gmx_bool bSepPot = FALSE; ++ gmx_bool bRerunVSite = FALSE; ++ gmx_bool bConfout = TRUE; ++ gmx_bool bReproducible = FALSE; ++ gmx_bool bIMDwait = FALSE; ++ gmx_bool bIMDterm = FALSE; ++ gmx_bool bIMDpull = FALSE; ++ ++ int npme = -1; ++ int nstlist = 0; ++ int nmultisim = 0; ++ int nstglobalcomm = -1; ++ int repl_ex_nst = 0; ++ int repl_ex_seed = -1; ++ int repl_ex_nex = 0; ++ int nstepout = 100; ++ int resetstep = -1; ++ gmx_int64_t nsteps = -2; /* the value -2 means that the mdp option will be used */ ++ int imdport = 8888; /* can be almost anything, 8888 is easy to remember */ ++ ++ rvec realddxyz = {0, 0, 0}; ++ const char *ddno_opt[ddnoNR+1] = ++ { NULL, "interleave", "pp_pme", "cartesian", NULL }; ++ const char *dddlb_opt[] = ++ { NULL, "auto", "no", "yes", NULL }; ++ const char *thread_aff_opt[threadaffNR+1] = ++ { NULL, "auto", "on", "off", NULL }; ++ const char *nbpu_opt[] = ++ { NULL, "auto", "cpu", "gpu", "gpu_cpu", NULL }; ++ real rdd = 0.0, rconstr = 0.0, dlb_scale = 0.8, pforce = -1; ++ char *ddcsx = NULL, *ddcsy = NULL, *ddcsz = NULL; ++ real cpt_period = 15.0, max_hours = -1; ++ gmx_bool bAppendFiles = TRUE; ++ gmx_bool bKeepAndNumCPT = FALSE; ++ gmx_bool bResetCountersHalfWay = FALSE; ++ output_env_t oenv = NULL; ++ const char *deviceOptions = ""; ++ ++ /* Non transparent initialization of a complex gmx_hw_opt_t struct. ++ * But unfortunately we are not allowed to call a function here, ++ * since declarations follow below. ++ */ ++ gmx_hw_opt_t hw_opt = { ++ 0, 0, 0, 0, threadaffSEL, 0, 0, ++ { NULL, FALSE, 0, NULL } ++ }; ++ ++ t_pargs pa[] = { ++ ++ { "-dd", FALSE, etRVEC, {&realddxyz}, ++ "Domain decomposition grid, 0 is optimize" }, ++ { "-ddorder", FALSE, etENUM, {ddno_opt}, ++ "DD rank order" }, ++ { "-npme", FALSE, etINT, {&npme}, ++ "Number of separate ranks to be used for PME, -1 is guess" }, ++ { "-nt", FALSE, etINT, {&hw_opt.nthreads_tot}, ++ "Total number of threads to start (0 is guess)" }, ++ { "-ntmpi", FALSE, etINT, {&hw_opt.nthreads_tmpi}, ++ "Number of thread-MPI threads to start (0 is guess)" }, ++ { "-ntomp", FALSE, etINT, {&hw_opt.nthreads_omp}, ++ "Number of OpenMP threads per MPI rank to start (0 is guess)" }, ++ { "-ntomp_pme", FALSE, etINT, {&hw_opt.nthreads_omp_pme}, ++ "Number of OpenMP threads per MPI rank to start (0 is -ntomp)" }, ++ { "-pin", FALSE, etENUM, {thread_aff_opt}, ++ "Set thread affinities" }, ++ { "-pinoffset", FALSE, etINT, {&hw_opt.core_pinning_offset}, ++ "The starting logical core number for pinning to cores; used to avoid pinning threads from different mdrun instances to the same core" }, ++ { "-pinstride", FALSE, etINT, {&hw_opt.core_pinning_stride}, ++ "Pinning distance in logical cores for threads, use 0 to minimize the number of threads per physical core" }, ++ { "-gpu_id", FALSE, etSTR, {&hw_opt.gpu_opt.gpu_id}, ++ "List of GPU device id-s to use, specifies the per-node PP rank to GPU mapping" }, ++ { "-ddcheck", FALSE, etBOOL, {&bDDBondCheck}, ++ "Check for all bonded interactions with DD" }, ++ { "-ddbondcomm", FALSE, etBOOL, {&bDDBondComm}, ++ "HIDDENUse special bonded atom communication when [TT]-rdd[tt] > cut-off" }, ++ { "-rdd", FALSE, etREAL, {&rdd}, ++ "The maximum distance for bonded interactions with DD (nm), 0 is determine from initial coordinates" }, ++ { "-rcon", FALSE, etREAL, {&rconstr}, ++ "Maximum distance for P-LINCS (nm), 0 is estimate" }, ++ { "-dlb", FALSE, etENUM, {dddlb_opt}, ++ "Dynamic load balancing (with DD)" }, ++ { "-dds", FALSE, etREAL, {&dlb_scale}, ++ "Fraction in (0,1) by whose reciprocal the initial DD cell size will be increased in order to " ++ "provide a margin in which dynamic load balancing can act while preserving the minimum cell size." }, ++ { "-ddcsx", FALSE, etSTR, {&ddcsx}, ++ "HIDDENA string containing a vector of the relative sizes in the x " ++ "direction of the corresponding DD cells. Only effective with static " ++ "load balancing." }, ++ { "-ddcsy", FALSE, etSTR, {&ddcsy}, ++ "HIDDENA string containing a vector of the relative sizes in the y " ++ "direction of the corresponding DD cells. Only effective with static " ++ "load balancing." }, ++ { "-ddcsz", FALSE, etSTR, {&ddcsz}, ++ "HIDDENA string containing a vector of the relative sizes in the z " ++ "direction of the corresponding DD cells. Only effective with static " ++ "load balancing." }, ++ { "-gcom", FALSE, etINT, {&nstglobalcomm}, ++ "Global communication frequency" }, ++ { "-nb", FALSE, etENUM, {&nbpu_opt}, ++ "Calculate non-bonded interactions on" }, ++ { "-nstlist", FALSE, etINT, {&nstlist}, ++ "Set nstlist when using a Verlet buffer tolerance (0 is guess)" }, ++ { "-tunepme", FALSE, etBOOL, {&bTunePME}, ++ "Optimize PME load between PP/PME ranks or GPU/CPU" }, ++ { "-testverlet", FALSE, etBOOL, {&bTestVerlet}, ++ "Test the Verlet non-bonded scheme" }, ++ { "-v", FALSE, etBOOL, {&bVerbose}, ++ "Be loud and noisy" }, ++ { "-compact", FALSE, etBOOL, {&bCompact}, ++ "Write a compact log file" }, ++ { "-seppot", FALSE, etBOOL, {&bSepPot}, ++ "Write separate V and dVdl terms for each interaction type and rank to the log file(s)" }, ++ { "-pforce", FALSE, etREAL, {&pforce}, ++ "Print all forces larger than this (kJ/mol nm)" }, ++ { "-reprod", FALSE, etBOOL, {&bReproducible}, ++ "Try to avoid optimizations that affect binary reproducibility" }, ++ { "-cpt", FALSE, etREAL, {&cpt_period}, ++ "Checkpoint interval (minutes)" }, ++ { "-cpnum", FALSE, etBOOL, {&bKeepAndNumCPT}, ++ "Keep and number checkpoint files" }, ++ { "-append", FALSE, etBOOL, {&bAppendFiles}, ++ "Append to previous output files when continuing from checkpoint instead of adding the simulation part number to all file names" }, ++ { "-nsteps", FALSE, etINT64, {&nsteps}, ++ "Run this number of steps, overrides .mdp file option" }, ++ { "-maxh", FALSE, etREAL, {&max_hours}, ++ "Terminate after 0.99 times this time (hours)" }, ++ { "-multi", FALSE, etINT, {&nmultisim}, ++ "Do multiple simulations in parallel" }, ++ { "-replex", FALSE, etINT, {&repl_ex_nst}, ++ "Attempt replica exchange periodically with this period (steps)" }, ++ { "-nex", FALSE, etINT, {&repl_ex_nex}, ++ "Number of random exchanges to carry out each exchange interval (N^3 is one suggestion). -nex zero or not specified gives neighbor replica exchange." }, ++ { "-reseed", FALSE, etINT, {&repl_ex_seed}, ++ "Seed for replica exchange, -1 is generate a seed" }, ++ { "-imdport", FALSE, etINT, {&imdport}, ++ "HIDDENIMD listening port" }, ++ { "-imdwait", FALSE, etBOOL, {&bIMDwait}, ++ "HIDDENPause the simulation while no IMD client is connected" }, ++ { "-imdterm", FALSE, etBOOL, {&bIMDterm}, ++ "HIDDENAllow termination of the simulation from IMD client" }, ++ { "-imdpull", FALSE, etBOOL, {&bIMDpull}, ++ "HIDDENAllow pulling in the simulation from IMD client" }, ++ { "-rerunvsite", FALSE, etBOOL, {&bRerunVSite}, ++ "HIDDENRecalculate virtual site coordinates with [TT]-rerun[tt]" }, ++ { "-confout", FALSE, etBOOL, {&bConfout}, ++ "HIDDENWrite the last configuration with [TT]-c[tt] and force checkpointing at the last step" }, ++ { "-stepout", FALSE, etINT, {&nstepout}, ++ "HIDDENFrequency of writing the remaining wall clock time for the run" }, ++ { "-resetstep", FALSE, etINT, {&resetstep}, ++ "HIDDENReset cycle counters after these many time steps" }, ++ { "-resethway", FALSE, etBOOL, {&bResetCountersHalfWay}, ++ "HIDDENReset the cycle counters after half the number of steps or halfway [TT]-maxh[tt]" } ++ }; ++ unsigned long Flags, PCA_Flags; ++ ivec ddxyz; ++ int dd_node_order; ++ gmx_bool bAddPart; ++ FILE *fplog, *fpmulti; ++ int sim_part, sim_part_fn; ++ const char *part_suffix = ".part"; ++ char suffix[STRLEN]; ++ int rc; ++ char **multidir = NULL; ++ ++ ++ cr = init_commrec(); ++ ++ PCA_Flags = (PCA_CAN_SET_DEFFNM | (MASTER(cr) ? 0 : PCA_QUIET)); ++ ++ /* Comment this in to do fexist calls only on master ++ * works not with rerun or tables at the moment ++ * also comment out the version of init_forcerec in md.c ++ * with NULL instead of opt2fn ++ */ ++ /* ++ if (!MASTER(cr)) ++ { ++ PCA_Flags |= PCA_NOT_READ_NODE; ++ } ++ */ ++ ++ if (!parse_common_args(&argc, argv, PCA_Flags, NFILE, fnm, asize(pa), pa, ++ asize(desc), desc, 0, NULL, &oenv)) ++ { ++ return 0; ++ } ++ ++ ++ /* we set these early because they might be used in init_multisystem() ++ Note that there is the potential for npme>nnodes until the number of ++ threads is set later on, if there's thread parallelization. That shouldn't ++ lead to problems. */ ++ dd_node_order = nenum(ddno_opt); ++ cr->npmenodes = npme; ++ ++ hw_opt.thread_affinity = nenum(thread_aff_opt); ++ ++ /* now check the -multi and -multidir option */ ++ if (opt2bSet("-multidir", NFILE, fnm)) ++ { ++ if (nmultisim > 0) ++ { ++ gmx_fatal(FARGS, "mdrun -multi and -multidir options are mutually exclusive."); ++ } ++ nmultisim = opt2fns(&multidir, "-multidir", NFILE, fnm); ++ } ++ ++ ++ if (repl_ex_nst != 0 && nmultisim < 2) ++ { ++ gmx_fatal(FARGS, "Need at least two replicas for replica exchange (option -multi)"); ++ } ++ ++ if (repl_ex_nex < 0) ++ { ++ gmx_fatal(FARGS, "Replica exchange number of exchanges needs to be positive"); ++ } ++ ++ if (nmultisim > 1) ++ { ++#ifndef GMX_THREAD_MPI ++ gmx_bool bParFn = (multidir == NULL); ++ init_multisystem(cr, nmultisim, multidir, NFILE, fnm, bParFn); ++#else ++ gmx_fatal(FARGS, "mdrun -multi is not supported with the thread library. " ++ "Please compile GROMACS with MPI support"); ++#endif ++ } ++ ++ bAddPart = !bAppendFiles; ++ ++ /* Check if there is ANY checkpoint file available */ ++ sim_part = 1; ++ sim_part_fn = sim_part; ++ if (opt2bSet("-cpi", NFILE, fnm)) ++ { ++ if (bSepPot && bAppendFiles) ++ { ++ gmx_fatal(FARGS, "Output file appending is not supported with -seppot"); ++ } ++ ++ bAppendFiles = ++ read_checkpoint_simulation_part(opt2fn_master("-cpi", NFILE, ++ fnm, cr), ++ &sim_part_fn, NULL, cr, ++ bAppendFiles, NFILE, fnm, ++ part_suffix, &bAddPart); ++ if (sim_part_fn == 0 && MULTIMASTER(cr)) ++ { ++ fprintf(stdout, "No previous checkpoint file present, assuming this is a new run.\n"); ++ } ++ else ++ { ++ sim_part = sim_part_fn + 1; ++ } ++ ++ if (MULTISIM(cr) && MASTER(cr)) ++ { ++ if (MULTIMASTER(cr)) ++ { ++ /* Log file is not yet available, so if there's a ++ * problem we can only write to stderr. */ ++ fpmulti = stderr; ++ } ++ else ++ { ++ fpmulti = NULL; ++ } ++ check_multi_int(fpmulti, cr->ms, sim_part, "simulation part", TRUE); ++ } ++ } ++ else ++ { ++ bAppendFiles = FALSE; ++ } ++ ++ if (!bAppendFiles) ++ { ++ sim_part_fn = sim_part; ++ } ++ ++ if (bAddPart) ++ { ++ /* Rename all output files (except checkpoint files) */ ++ /* create new part name first (zero-filled) */ ++ sprintf(suffix, "%s%04d", part_suffix, sim_part_fn); ++ ++ add_suffix_to_output_names(fnm, NFILE, suffix); ++ if (MULTIMASTER(cr)) ++ { ++ fprintf(stdout, "Checkpoint file is from part %d, new output files will be suffixed '%s'.\n", sim_part-1, suffix); ++ } ++ } ++ ++ Flags = opt2bSet("-rerun", NFILE, fnm) ? MD_RERUN : 0; ++ Flags = Flags | (bSepPot ? MD_SEPPOT : 0); ++ Flags = Flags | (bDDBondCheck ? MD_DDBONDCHECK : 0); ++ Flags = Flags | (bDDBondComm ? MD_DDBONDCOMM : 0); ++ Flags = Flags | (bTunePME ? MD_TUNEPME : 0); ++ Flags = Flags | (bTestVerlet ? MD_TESTVERLET : 0); ++ Flags = Flags | (bConfout ? MD_CONFOUT : 0); ++ Flags = Flags | (bRerunVSite ? MD_RERUN_VSITE : 0); ++ Flags = Flags | (bReproducible ? MD_REPRODUCIBLE : 0); ++ Flags = Flags | (bAppendFiles ? MD_APPENDFILES : 0); ++ Flags = Flags | (opt2parg_bSet("-append", asize(pa), pa) ? MD_APPENDFILESSET : 0); ++ Flags = Flags | (bKeepAndNumCPT ? MD_KEEPANDNUMCPT : 0); ++ Flags = Flags | (sim_part > 1 ? MD_STARTFROMCPT : 0); ++ Flags = Flags | (bResetCountersHalfWay ? MD_RESETCOUNTERSHALFWAY : 0); ++ Flags = Flags | (bIMDwait ? MD_IMDWAIT : 0); ++ Flags = Flags | (bIMDterm ? MD_IMDTERM : 0); ++ Flags = Flags | (bIMDpull ? MD_IMDPULL : 0); ++ ++ /* We postpone opening the log file if we are appending, so we can ++ first truncate the old log file and append to the correct position ++ there instead. */ ++ if ((MASTER(cr) || bSepPot) && !bAppendFiles) ++ { ++ gmx_log_open(ftp2fn(efLOG, NFILE, fnm), cr, ++ !bSepPot, Flags & MD_APPENDFILES, &fplog); ++ please_cite(fplog, "Hess2008b"); ++ please_cite(fplog, "Spoel2005a"); ++ please_cite(fplog, "Lindahl2001a"); ++ please_cite(fplog, "Berendsen95a"); ++ } ++ else if (!MASTER(cr) && bSepPot) ++ { ++ gmx_log_open(ftp2fn(efLOG, NFILE, fnm), cr, !bSepPot, Flags, &fplog); ++ } ++ else ++ { ++ fplog = NULL; ++ } ++ ++ ddxyz[XX] = (int)(realddxyz[XX] + 0.5); ++ ddxyz[YY] = (int)(realddxyz[YY] + 0.5); ++ ddxyz[ZZ] = (int)(realddxyz[ZZ] + 0.5); ++ ++ rc = mdrunner(&hw_opt, fplog, cr, NFILE, fnm, oenv, bVerbose, bCompact, ++ nstglobalcomm, ddxyz, dd_node_order, rdd, rconstr, ++ dddlb_opt[0], dlb_scale, ddcsx, ddcsy, ddcsz, ++ nbpu_opt[0], nstlist, ++ nsteps, nstepout, resetstep, ++ nmultisim, repl_ex_nst, repl_ex_nex, repl_ex_seed, ++ pforce, cpt_period, max_hours, deviceOptions, imdport, Flags); ++ ++ /* Log file has to be closed in mdrunner if we are appending to it ++ (fplog not set here) */ ++ if (MASTER(cr) && !bAppendFiles) ++ { ++ gmx_log_close(fplog); ++ } ++ ++ return rc; ++} +diff --git a/src/programs/mdrun/repl_ex.c b/src/programs/mdrun/repl_ex.c +index 46a9bc0..cfb0b7f 100644 +--- a/src/programs/mdrun/repl_ex.c ++++ b/src/programs/mdrun/repl_ex.c +@@ -51,6 +51,12 @@ + #include "domdec.h" + #include "gromacs/random/random.h" + ++/* PLUMED */ ++#include "../../../Plumed.h" ++extern int plumedswitch; ++extern plumed plumedmain; ++/* END PLUMED */ ++ + #define PROBABILITYCUTOFF 100 + /* we don't bother evaluating if events are more rare than exp(-100) = 3.7x10^-44 */ + +@@ -112,14 +118,16 @@ static gmx_bool repl_quantity(const gmx_multisim_t *ms, + qall[re->repl] = q; + gmx_sum_sim(ms->nsim, qall, ms); + +- bDiff = FALSE; +- for (s = 1; s < ms->nsim; s++) +- { +- if (qall[s] != qall[0]) +- { ++ /* PLUMED */ ++ //bDiff = FALSE; ++ //for (s = 1; s < ms->nsim; s++) ++ //{ ++ // if (qall[s] != qall[0]) ++ // { + bDiff = TRUE; +- } +- } ++ // } ++ //} ++ /* END PLUMED */ + + if (bDiff) + { +@@ -269,6 +277,10 @@ gmx_repl_ex_t init_replica_exchange(FILE *fplog, + re->ind[i] = i; + } + ++ /* PLUMED */ ++ // plumed2: check if we want alternative patterns (i.e. for bias-exchange metaD) ++ // in those cases replicas can share the same temperature. ++ /* + if (re->type < ereENDSINGLE) + { + +@@ -277,11 +289,12 @@ gmx_repl_ex_t init_replica_exchange(FILE *fplog, + for (j = i+1; j < re->nrepl; j++) + { + if (re->q[re->type][re->ind[j]] < re->q[re->type][re->ind[i]]) +- { ++ {*/ + /* Unordered replicas are supposed to work, but there + * is still an issues somewhere. + * Note that at this point still re->ind[i]=i. + */ ++ /* + gmx_fatal(FARGS, "Replicas with indices %d < %d have %ss %g > %g, please order your replicas on increasing %s", + i, j, + erename[re->type], +@@ -299,6 +312,8 @@ gmx_repl_ex_t init_replica_exchange(FILE *fplog, + } + } + } ++ */ ++ /* END PLUMED */ + + /* keep track of all the swaps, starting with the initial placement. */ + snew(re->allswaps, re->nrepl); +@@ -982,6 +997,10 @@ test_for_replica_exchange(FILE *fplog, + pind[i] = re->ind[i]; + } + ++ /* PLUMED */ ++ int plumed_test_exchange_pattern=0; ++ /* END PLUMED */ ++ + if (bMultiEx) + { + /* multiple random switch exchange */ +@@ -1057,6 +1076,31 @@ test_for_replica_exchange(FILE *fplog, + /* standard nearest neighbor replica exchange */ + + m = (step / re->nst) % 2; ++ /* PLUMED */ ++ if(plumedswitch){ ++ int partner=re->repl; ++ plumed_cmd(plumedmain,"getExchangesFlag",&plumed_test_exchange_pattern); ++ if(plumed_test_exchange_pattern>0){ ++ int *list; ++ snew(list,re->nrepl); ++ plumed_cmd(plumedmain,"setNumberOfReplicas",&(re->nrepl)); ++ plumed_cmd(plumedmain,"getExchangesList",list); ++ for(i=0; inrepl; i++) re->ind[i]=list[i]; ++ sfree(list); ++ } ++ ++ for(i=1; inrepl; i++) { ++ if (i % 2 != m) continue; ++ a = re->ind[i-1]; ++ b = re->ind[i]; ++ if(re->repl==a) partner=b; ++ if(re->repl==b) partner=a; ++ } ++ plumed_cmd(plumedmain,"GREX setPartner",&partner); ++ plumed_cmd(plumedmain,"GREX calculate",NULL); ++ plumed_cmd(plumedmain,"GREX shareAllDeltaBias",NULL); ++ } ++ /* END PLUMED */ + for (i = 1; i < re->nrepl; i++) + { + a = re->ind[i-1]; +@@ -1066,6 +1110,18 @@ test_for_replica_exchange(FILE *fplog, + if (i % 2 == m) + { + delta = calc_delta(fplog, bPrint, re, a, b, a, b); ++ /* PLUMED */ ++ if(plumedswitch){ ++ real adb,bdb,dplumed; ++ char buf[300]; ++ sprintf(buf,"GREX getDeltaBias %d",a); plumed_cmd(plumedmain,buf,&adb); ++ sprintf(buf,"GREX getDeltaBias %d",b); plumed_cmd(plumedmain,buf,&bdb); ++ dplumed=adb*re->beta[a]+bdb*re->beta[b]; ++ delta+=dplumed; ++ if (bPrint) ++ fprintf(fplog,"dplumed = %10.3e dE_Term = %10.3e (kT)\n",dplumed,delta); ++ } ++ /* END PLUMED */ + if (delta <= 0) + { + /* accepted */ +@@ -1092,11 +1148,22 @@ test_for_replica_exchange(FILE *fplog, + + if (bEx[i]) + { ++ /* PLUMED */ ++ if(!plumed_test_exchange_pattern) { ++ /* standard neighbour swapping */ + /* swap these two */ + tmp = pind[i-1]; + pind[i-1] = pind[i]; + pind[i] = tmp; + re->nexchange[i]++; /* statistics for back compatibility */ ++ } else { ++ /* alternative swapping patterns */ ++ tmp = pind[a]; ++ pind[a] = pind[b]; ++ pind[b] = tmp; ++ re->nexchange[i]++; /* statistics for back compatibility */ ++ } ++ /* END PLUMED */ + } + } + else +@@ -1112,6 +1179,15 @@ test_for_replica_exchange(FILE *fplog, + re->nattempt[m]++; + } + ++ /* PLUMED */ ++ if(plumed_test_exchange_pattern>0) { ++ for (i = 0; i < re->nrepl; i++) ++ { ++ re->ind[i] = i; ++ } ++ } ++ /* END PLUMED */ ++ + /* record which moves were made and accepted */ + for (i = 0; i < re->nrepl; i++) + { +@@ -1316,6 +1392,10 @@ gmx_bool replica_exchange(FILE *fplog, const t_commrec *cr, struct gmx_repl_ex * + /* The order in which multiple exchanges will occur. */ + gmx_bool bThisReplicaExchanged = FALSE; + ++ /* PLUMED */ ++ if(plumedswitch)plumed_cmd(plumedmain,"GREX prepare",NULL); ++ /* END PLUMED */ ++ + if (MASTER(cr)) + { + replica_id = re->repl; +diff --git a/src/programs/mdrun/repl_ex.c.preplumed b/src/programs/mdrun/repl_ex.c.preplumed +new file mode 100644 +index 0000000..46a9bc0 +--- /dev/null ++++ b/src/programs/mdrun/repl_ex.c.preplumed +@@ -0,0 +1,1439 @@ ++/* ++ * This file is part of the GROMACS molecular simulation package. ++ * ++ * Copyright (c) 1991-2000, University of Groningen, The Netherlands. ++ * Copyright (c) 2001-2004, The GROMACS development team. ++ * Copyright (c) 2011,2012,2013,2014, by the GROMACS development team, led by ++ * Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl, ++ * and including many others, as listed in the AUTHORS file in the ++ * top-level source directory and at http://www.gromacs.org. ++ * ++ * GROMACS 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; either version 2.1 ++ * of the License, or (at your option) any later version. ++ * ++ * GROMACS 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 ++ * Lesser General Public License for more details. ++ * ++ * You should have received a copy of the GNU Lesser General Public ++ * License along with GROMACS; if not, see ++ * http://www.gnu.org/licenses, or write to the Free Software Foundation, ++ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. ++ * ++ * If you want to redistribute modifications to GROMACS, please ++ * consider that scientific software is very special. Version ++ * control is crucial - bugs must be traceable. We will be happy to ++ * consider code for inclusion in the official distribution, but ++ * derived work must not be called official GROMACS. Details are found ++ * in the README & COPYING files - if they are missing, get the ++ * official version at http://www.gromacs.org. ++ * ++ * To help us fund GROMACS development, we humbly ask that you cite ++ * the research papers on the package. Check out http://www.gromacs.org. ++ */ ++#ifdef HAVE_CONFIG_H ++#include ++#endif ++ ++#include ++#include "repl_ex.h" ++#include "network.h" ++#include "gromacs/random/random.h" ++#include "gromacs/utility/smalloc.h" ++#include "physics.h" ++#include "copyrite.h" ++#include "macros.h" ++#include "vec.h" ++#include "names.h" ++#include "domdec.h" ++#include "gromacs/random/random.h" ++ ++#define PROBABILITYCUTOFF 100 ++/* we don't bother evaluating if events are more rare than exp(-100) = 3.7x10^-44 */ ++ ++enum { ++ ereTEMP, ereLAMBDA, ereENDSINGLE, ereTL, ereNR ++}; ++const char *erename[ereNR] = { "temperature", "lambda", "end_single_marker", "temperature and lambda"}; ++/* end_single_marker merely notes the end of single variable replica exchange. All types higher than ++ it are multiple replica exchange methods */ ++/* Eventually, should add 'pressure', 'temperature and pressure', 'lambda_and_pressure', 'temperature_lambda_pressure'?; ++ Let's wait until we feel better about the pressure control methods giving exact ensembles. Right now, we assume constant pressure */ ++ ++typedef struct gmx_repl_ex ++{ ++ int repl; ++ int nrepl; ++ real temp; ++ int type; ++ real **q; ++ gmx_bool bNPT; ++ real *pres; ++ int *ind; ++ int *allswaps; ++ int nst; ++ int nex; ++ int seed; ++ int nattempt[2]; ++ real *prob_sum; ++ int **nmoves; ++ int *nexchange; ++ gmx_rng_t rng; ++ ++ /* these are helper arrays for replica exchange; allocated here so they ++ don't have to be allocated each time */ ++ int *destinations; ++ int **cyclic; ++ int **order; ++ int *tmpswap; ++ gmx_bool *incycle; ++ gmx_bool *bEx; ++ ++ /* helper arrays to hold the quantities that are exchanged */ ++ real *prob; ++ real *Epot; ++ real *beta; ++ real *Vol; ++ real **de; ++ ++} t_gmx_repl_ex; ++ ++static gmx_bool repl_quantity(const gmx_multisim_t *ms, ++ struct gmx_repl_ex *re, int ere, real q) ++{ ++ real *qall; ++ gmx_bool bDiff; ++ int i, s; ++ ++ snew(qall, ms->nsim); ++ qall[re->repl] = q; ++ gmx_sum_sim(ms->nsim, qall, ms); ++ ++ bDiff = FALSE; ++ for (s = 1; s < ms->nsim; s++) ++ { ++ if (qall[s] != qall[0]) ++ { ++ bDiff = TRUE; ++ } ++ } ++ ++ if (bDiff) ++ { ++ /* Set the replica exchange type and quantities */ ++ re->type = ere; ++ ++ snew(re->q[ere], re->nrepl); ++ for (s = 0; s < ms->nsim; s++) ++ { ++ re->q[ere][s] = qall[s]; ++ } ++ } ++ sfree(qall); ++ return bDiff; ++} ++ ++gmx_repl_ex_t init_replica_exchange(FILE *fplog, ++ const gmx_multisim_t *ms, ++ const t_state *state, ++ const t_inputrec *ir, ++ int nst, int nex, int init_seed) ++{ ++ real temp, pres; ++ int i, j, k; ++ struct gmx_repl_ex *re; ++ gmx_bool bTemp; ++ gmx_bool bLambda = FALSE; ++ ++ fprintf(fplog, "\nInitializing Replica Exchange\n"); ++ ++ if (ms == NULL || ms->nsim == 1) ++ { ++ gmx_fatal(FARGS, "Nothing to exchange with only one replica, maybe you forgot to set the -multi option of mdrun?"); ++ } ++ if (!EI_DYNAMICS(ir->eI)) ++ { ++ gmx_fatal(FARGS, "Replica exchange is only supported by dynamical simulations"); ++ /* Note that PAR(cr) is defined by cr->nnodes > 1, which is ++ * distinct from MULTISIM(cr). A multi-simulation only runs ++ * with real MPI parallelism, but this does not imply PAR(cr) ++ * is true! ++ * ++ * Since we are using a dynamical integrator, the only ++ * decomposition is DD, so PAR(cr) and DOMAINDECOMP(cr) are ++ * synonymous. The only way for cr->nnodes > 1 to be true is ++ * if we are using DD. */ ++ } ++ ++ snew(re, 1); ++ ++ re->repl = ms->sim; ++ re->nrepl = ms->nsim; ++ snew(re->q, ereENDSINGLE); ++ ++ fprintf(fplog, "Repl There are %d replicas:\n", re->nrepl); ++ ++ check_multi_int(fplog, ms, state->natoms, "the number of atoms", FALSE); ++ check_multi_int(fplog, ms, ir->eI, "the integrator", FALSE); ++ check_multi_int64(fplog, ms, ir->init_step+ir->nsteps, "init_step+nsteps", FALSE); ++ check_multi_int64(fplog, ms, (ir->init_step+nst-1)/nst, ++ "first exchange step: init_step/-replex", FALSE); ++ check_multi_int(fplog, ms, ir->etc, "the temperature coupling", FALSE); ++ check_multi_int(fplog, ms, ir->opts.ngtc, ++ "the number of temperature coupling groups", FALSE); ++ check_multi_int(fplog, ms, ir->epc, "the pressure coupling", FALSE); ++ check_multi_int(fplog, ms, ir->efep, "free energy", FALSE); ++ check_multi_int(fplog, ms, ir->fepvals->n_lambda, "number of lambda states", FALSE); ++ ++ re->temp = ir->opts.ref_t[0]; ++ for (i = 1; (i < ir->opts.ngtc); i++) ++ { ++ if (ir->opts.ref_t[i] != re->temp) ++ { ++ fprintf(fplog, "\nWARNING: The temperatures of the different temperature coupling groups are not identical\n\n"); ++ fprintf(stderr, "\nWARNING: The temperatures of the different temperature coupling groups are not identical\n\n"); ++ } ++ } ++ ++ re->type = -1; ++ bTemp = repl_quantity(ms, re, ereTEMP, re->temp); ++ if (ir->efep != efepNO) ++ { ++ bLambda = repl_quantity(ms, re, ereLAMBDA, (real)ir->fepvals->init_fep_state); ++ } ++ if (re->type == -1) /* nothing was assigned */ ++ { ++ gmx_fatal(FARGS, "The properties of the %d systems are all the same, there is nothing to exchange", re->nrepl); ++ } ++ if (bLambda && bTemp) ++ { ++ re->type = ereTL; ++ } ++ ++ if (bTemp) ++ { ++ please_cite(fplog, "Sugita1999a"); ++ if (ir->epc != epcNO) ++ { ++ re->bNPT = TRUE; ++ fprintf(fplog, "Repl Using Constant Pressure REMD.\n"); ++ please_cite(fplog, "Okabe2001a"); ++ } ++ if (ir->etc == etcBERENDSEN) ++ { ++ gmx_fatal(FARGS, "REMD with the %s thermostat does not produce correct potential energy distributions, consider using the %s thermostat instead", ++ ETCOUPLTYPE(ir->etc), ETCOUPLTYPE(etcVRESCALE)); ++ } ++ } ++ if (bLambda) ++ { ++ if (ir->fepvals->delta_lambda != 0) /* check this? */ ++ { ++ gmx_fatal(FARGS, "delta_lambda is not zero"); ++ } ++ } ++ if (re->bNPT) ++ { ++ snew(re->pres, re->nrepl); ++ if (ir->epct == epctSURFACETENSION) ++ { ++ pres = ir->ref_p[ZZ][ZZ]; ++ } ++ else ++ { ++ pres = 0; ++ j = 0; ++ for (i = 0; i < DIM; i++) ++ { ++ if (ir->compress[i][i] != 0) ++ { ++ pres += ir->ref_p[i][i]; ++ j++; ++ } ++ } ++ pres /= j; ++ } ++ re->pres[re->repl] = pres; ++ gmx_sum_sim(re->nrepl, re->pres, ms); ++ } ++ ++ /* Make an index for increasing replica order */ ++ /* only makes sense if one or the other is varying, not both! ++ if both are varying, we trust the order the person gave. */ ++ snew(re->ind, re->nrepl); ++ for (i = 0; i < re->nrepl; i++) ++ { ++ re->ind[i] = i; ++ } ++ ++ if (re->type < ereENDSINGLE) ++ { ++ ++ for (i = 0; i < re->nrepl; i++) ++ { ++ for (j = i+1; j < re->nrepl; j++) ++ { ++ if (re->q[re->type][re->ind[j]] < re->q[re->type][re->ind[i]]) ++ { ++ /* Unordered replicas are supposed to work, but there ++ * is still an issues somewhere. ++ * Note that at this point still re->ind[i]=i. ++ */ ++ gmx_fatal(FARGS, "Replicas with indices %d < %d have %ss %g > %g, please order your replicas on increasing %s", ++ i, j, ++ erename[re->type], ++ re->q[re->type][i], re->q[re->type][j], ++ erename[re->type]); ++ ++ k = re->ind[i]; ++ re->ind[i] = re->ind[j]; ++ re->ind[j] = k; ++ } ++ else if (re->q[re->type][re->ind[j]] == re->q[re->type][re->ind[i]]) ++ { ++ gmx_fatal(FARGS, "Two replicas have identical %ss", erename[re->type]); ++ } ++ } ++ } ++ } ++ ++ /* keep track of all the swaps, starting with the initial placement. */ ++ snew(re->allswaps, re->nrepl); ++ for (i = 0; i < re->nrepl; i++) ++ { ++ re->allswaps[i] = re->ind[i]; ++ } ++ ++ switch (re->type) ++ { ++ case ereTEMP: ++ fprintf(fplog, "\nReplica exchange in temperature\n"); ++ for (i = 0; i < re->nrepl; i++) ++ { ++ fprintf(fplog, " %5.1f", re->q[re->type][re->ind[i]]); ++ } ++ fprintf(fplog, "\n"); ++ break; ++ case ereLAMBDA: ++ fprintf(fplog, "\nReplica exchange in lambda\n"); ++ for (i = 0; i < re->nrepl; i++) ++ { ++ fprintf(fplog, " %3d", (int)re->q[re->type][re->ind[i]]); ++ } ++ fprintf(fplog, "\n"); ++ break; ++ case ereTL: ++ fprintf(fplog, "\nReplica exchange in temperature and lambda state\n"); ++ for (i = 0; i < re->nrepl; i++) ++ { ++ fprintf(fplog, " %5.1f", re->q[ereTEMP][re->ind[i]]); ++ } ++ fprintf(fplog, "\n"); ++ for (i = 0; i < re->nrepl; i++) ++ { ++ fprintf(fplog, " %5d", (int)re->q[ereLAMBDA][re->ind[i]]); ++ } ++ fprintf(fplog, "\n"); ++ break; ++ default: ++ gmx_incons("Unknown replica exchange quantity"); ++ } ++ if (re->bNPT) ++ { ++ fprintf(fplog, "\nRepl p"); ++ for (i = 0; i < re->nrepl; i++) ++ { ++ fprintf(fplog, " %5.2f", re->pres[re->ind[i]]); ++ } ++ ++ for (i = 0; i < re->nrepl; i++) ++ { ++ if ((i > 0) && (re->pres[re->ind[i]] < re->pres[re->ind[i-1]])) ++ { ++ fprintf(fplog, "\nWARNING: The reference pressures decrease with increasing temperatures\n\n"); ++ fprintf(stderr, "\nWARNING: The reference pressures decrease with increasing temperatures\n\n"); ++ } ++ } ++ } ++ re->nst = nst; ++ if (init_seed == -1) ++ { ++ if (MASTERSIM(ms)) ++ { ++ re->seed = (int)gmx_rng_make_seed(); ++ } ++ else ++ { ++ re->seed = 0; ++ } ++ gmx_sumi_sim(1, &(re->seed), ms); ++ } ++ else ++ { ++ re->seed = init_seed; ++ } ++ fprintf(fplog, "\nReplica exchange interval: %d\n", re->nst); ++ fprintf(fplog, "\nReplica random seed: %d\n", re->seed); ++ re->rng = gmx_rng_init(re->seed); ++ ++ re->nattempt[0] = 0; ++ re->nattempt[1] = 0; ++ ++ snew(re->prob_sum, re->nrepl); ++ snew(re->nexchange, re->nrepl); ++ snew(re->nmoves, re->nrepl); ++ for (i = 0; i < re->nrepl; i++) ++ { ++ snew(re->nmoves[i], re->nrepl); ++ } ++ fprintf(fplog, "Replica exchange information below: x=exchange, pr=probability\n"); ++ ++ /* generate space for the helper functions so we don't have to snew each time */ ++ ++ snew(re->destinations, re->nrepl); ++ snew(re->incycle, re->nrepl); ++ snew(re->tmpswap, re->nrepl); ++ snew(re->cyclic, re->nrepl); ++ snew(re->order, re->nrepl); ++ for (i = 0; i < re->nrepl; i++) ++ { ++ snew(re->cyclic[i], re->nrepl); ++ snew(re->order[i], re->nrepl); ++ } ++ /* allocate space for the functions storing the data for the replicas */ ++ /* not all of these arrays needed in all cases, but they don't take ++ up much space, since the max size is nrepl**2 */ ++ snew(re->prob, re->nrepl); ++ snew(re->bEx, re->nrepl); ++ snew(re->beta, re->nrepl); ++ snew(re->Vol, re->nrepl); ++ snew(re->Epot, re->nrepl); ++ snew(re->de, re->nrepl); ++ for (i = 0; i < re->nrepl; i++) ++ { ++ snew(re->de[i], re->nrepl); ++ } ++ re->nex = nex; ++ return re; ++} ++ ++static void exchange_reals(const gmx_multisim_t gmx_unused *ms, int gmx_unused b, real *v, int n) ++{ ++ real *buf; ++ int i; ++ ++ if (v) ++ { ++ snew(buf, n); ++#ifdef GMX_MPI ++ /* ++ MPI_Sendrecv(v, n*sizeof(real),MPI_BYTE,MSRANK(ms,b),0, ++ buf,n*sizeof(real),MPI_BYTE,MSRANK(ms,b),0, ++ ms->mpi_comm_masters,MPI_STATUS_IGNORE); ++ */ ++ { ++ MPI_Request mpi_req; ++ ++ MPI_Isend(v, n*sizeof(real), MPI_BYTE, MSRANK(ms, b), 0, ++ ms->mpi_comm_masters, &mpi_req); ++ MPI_Recv(buf, n*sizeof(real), MPI_BYTE, MSRANK(ms, b), 0, ++ ms->mpi_comm_masters, MPI_STATUS_IGNORE); ++ MPI_Wait(&mpi_req, MPI_STATUS_IGNORE); ++ } ++#endif ++ for (i = 0; i < n; i++) ++ { ++ v[i] = buf[i]; ++ } ++ sfree(buf); ++ } ++} ++ ++ ++static void exchange_ints(const gmx_multisim_t gmx_unused *ms, int gmx_unused b, int *v, int n) ++{ ++ int *buf; ++ int i; ++ ++ if (v) ++ { ++ snew(buf, n); ++#ifdef GMX_MPI ++ /* ++ MPI_Sendrecv(v, n*sizeof(int),MPI_BYTE,MSRANK(ms,b),0, ++ buf,n*sizeof(int),MPI_BYTE,MSRANK(ms,b),0, ++ ms->mpi_comm_masters,MPI_STATUS_IGNORE); ++ */ ++ { ++ MPI_Request mpi_req; ++ ++ MPI_Isend(v, n*sizeof(int), MPI_BYTE, MSRANK(ms, b), 0, ++ ms->mpi_comm_masters, &mpi_req); ++ MPI_Recv(buf, n*sizeof(int), MPI_BYTE, MSRANK(ms, b), 0, ++ ms->mpi_comm_masters, MPI_STATUS_IGNORE); ++ MPI_Wait(&mpi_req, MPI_STATUS_IGNORE); ++ } ++#endif ++ for (i = 0; i < n; i++) ++ { ++ v[i] = buf[i]; ++ } ++ sfree(buf); ++ } ++} ++ ++static void exchange_doubles(const gmx_multisim_t gmx_unused *ms, int gmx_unused b, double *v, int n) ++{ ++ double *buf; ++ int i; ++ ++ if (v) ++ { ++ snew(buf, n); ++#ifdef GMX_MPI ++ /* ++ MPI_Sendrecv(v, n*sizeof(double),MPI_BYTE,MSRANK(ms,b),0, ++ buf,n*sizeof(double),MPI_BYTE,MSRANK(ms,b),0, ++ ms->mpi_comm_masters,MPI_STATUS_IGNORE); ++ */ ++ { ++ MPI_Request mpi_req; ++ ++ MPI_Isend(v, n*sizeof(double), MPI_BYTE, MSRANK(ms, b), 0, ++ ms->mpi_comm_masters, &mpi_req); ++ MPI_Recv(buf, n*sizeof(double), MPI_BYTE, MSRANK(ms, b), 0, ++ ms->mpi_comm_masters, MPI_STATUS_IGNORE); ++ MPI_Wait(&mpi_req, MPI_STATUS_IGNORE); ++ } ++#endif ++ for (i = 0; i < n; i++) ++ { ++ v[i] = buf[i]; ++ } ++ sfree(buf); ++ } ++} ++ ++static void exchange_rvecs(const gmx_multisim_t gmx_unused *ms, int gmx_unused b, rvec *v, int n) ++{ ++ rvec *buf; ++ int i; ++ ++ if (v) ++ { ++ snew(buf, n); ++#ifdef GMX_MPI ++ /* ++ MPI_Sendrecv(v[0], n*sizeof(rvec),MPI_BYTE,MSRANK(ms,b),0, ++ buf[0],n*sizeof(rvec),MPI_BYTE,MSRANK(ms,b),0, ++ ms->mpi_comm_masters,MPI_STATUS_IGNORE); ++ */ ++ { ++ MPI_Request mpi_req; ++ ++ MPI_Isend(v[0], n*sizeof(rvec), MPI_BYTE, MSRANK(ms, b), 0, ++ ms->mpi_comm_masters, &mpi_req); ++ MPI_Recv(buf[0], n*sizeof(rvec), MPI_BYTE, MSRANK(ms, b), 0, ++ ms->mpi_comm_masters, MPI_STATUS_IGNORE); ++ MPI_Wait(&mpi_req, MPI_STATUS_IGNORE); ++ } ++#endif ++ for (i = 0; i < n; i++) ++ { ++ copy_rvec(buf[i], v[i]); ++ } ++ sfree(buf); ++ } ++} ++ ++static void exchange_state(const gmx_multisim_t *ms, int b, t_state *state) ++{ ++ /* When t_state changes, this code should be updated. */ ++ int ngtc, nnhpres; ++ ngtc = state->ngtc * state->nhchainlength; ++ nnhpres = state->nnhpres* state->nhchainlength; ++ exchange_rvecs(ms, b, state->box, DIM); ++ exchange_rvecs(ms, b, state->box_rel, DIM); ++ exchange_rvecs(ms, b, state->boxv, DIM); ++ exchange_reals(ms, b, &(state->veta), 1); ++ exchange_reals(ms, b, &(state->vol0), 1); ++ exchange_rvecs(ms, b, state->svir_prev, DIM); ++ exchange_rvecs(ms, b, state->fvir_prev, DIM); ++ exchange_rvecs(ms, b, state->pres_prev, DIM); ++ exchange_doubles(ms, b, state->nosehoover_xi, ngtc); ++ exchange_doubles(ms, b, state->nosehoover_vxi, ngtc); ++ exchange_doubles(ms, b, state->nhpres_xi, nnhpres); ++ exchange_doubles(ms, b, state->nhpres_vxi, nnhpres); ++ exchange_doubles(ms, b, state->therm_integral, state->ngtc); ++ exchange_rvecs(ms, b, state->x, state->natoms); ++ exchange_rvecs(ms, b, state->v, state->natoms); ++ exchange_rvecs(ms, b, state->sd_X, state->natoms); ++} ++ ++static void copy_rvecs(rvec *s, rvec *d, int n) ++{ ++ int i; ++ ++ if (d != NULL) ++ { ++ for (i = 0; i < n; i++) ++ { ++ copy_rvec(s[i], d[i]); ++ } ++ } ++} ++ ++static void copy_doubles(const double *s, double *d, int n) ++{ ++ int i; ++ ++ if (d != NULL) ++ { ++ for (i = 0; i < n; i++) ++ { ++ d[i] = s[i]; ++ } ++ } ++} ++ ++static void copy_reals(const real *s, real *d, int n) ++{ ++ int i; ++ ++ if (d != NULL) ++ { ++ for (i = 0; i < n; i++) ++ { ++ d[i] = s[i]; ++ } ++ } ++} ++ ++static void copy_ints(const int *s, int *d, int n) ++{ ++ int i; ++ ++ if (d != NULL) ++ { ++ for (i = 0; i < n; i++) ++ { ++ d[i] = s[i]; ++ } ++ } ++} ++ ++#define scopy_rvecs(v, n) copy_rvecs(state->v, state_local->v, n); ++#define scopy_doubles(v, n) copy_doubles(state->v, state_local->v, n); ++#define scopy_reals(v, n) copy_reals(state->v, state_local->v, n); ++#define scopy_ints(v, n) copy_ints(state->v, state_local->v, n); ++ ++static void copy_state_nonatomdata(t_state *state, t_state *state_local) ++{ ++ /* When t_state changes, this code should be updated. */ ++ int ngtc, nnhpres; ++ ngtc = state->ngtc * state->nhchainlength; ++ nnhpres = state->nnhpres* state->nhchainlength; ++ scopy_rvecs(box, DIM); ++ scopy_rvecs(box_rel, DIM); ++ scopy_rvecs(boxv, DIM); ++ state_local->veta = state->veta; ++ state_local->vol0 = state->vol0; ++ scopy_rvecs(svir_prev, DIM); ++ scopy_rvecs(fvir_prev, DIM); ++ scopy_rvecs(pres_prev, DIM); ++ scopy_doubles(nosehoover_xi, ngtc); ++ scopy_doubles(nosehoover_vxi, ngtc); ++ scopy_doubles(nhpres_xi, nnhpres); ++ scopy_doubles(nhpres_vxi, nnhpres); ++ scopy_doubles(therm_integral, state->ngtc); ++ scopy_rvecs(x, state->natoms); ++ scopy_rvecs(v, state->natoms); ++ scopy_rvecs(sd_X, state->natoms); ++ copy_ints(&(state->fep_state), &(state_local->fep_state), 1); ++ scopy_reals(lambda, efptNR); ++} ++ ++static void scale_velocities(t_state *state, real fac) ++{ ++ int i; ++ ++ if (state->v) ++ { ++ for (i = 0; i < state->natoms; i++) ++ { ++ svmul(fac, state->v[i], state->v[i]); ++ } ++ } ++} ++ ++static void print_transition_matrix(FILE *fplog, int n, int **nmoves, int *nattempt) ++{ ++ int i, j, ntot; ++ float Tprint; ++ ++ ntot = nattempt[0] + nattempt[1]; ++ fprintf(fplog, "\n"); ++ fprintf(fplog, "Repl"); ++ for (i = 0; i < n; i++) ++ { ++ fprintf(fplog, " "); /* put the title closer to the center */ ++ } ++ fprintf(fplog, "Empirical Transition Matrix\n"); ++ ++ fprintf(fplog, "Repl"); ++ for (i = 0; i < n; i++) ++ { ++ fprintf(fplog, "%8d", (i+1)); ++ } ++ fprintf(fplog, "\n"); ++ ++ for (i = 0; i < n; i++) ++ { ++ fprintf(fplog, "Repl"); ++ for (j = 0; j < n; j++) ++ { ++ Tprint = 0.0; ++ if (nmoves[i][j] > 0) ++ { ++ Tprint = nmoves[i][j]/(2.0*ntot); ++ } ++ fprintf(fplog, "%8.4f", Tprint); ++ } ++ fprintf(fplog, "%3d\n", i); ++ } ++} ++ ++static void print_ind(FILE *fplog, const char *leg, int n, int *ind, gmx_bool *bEx) ++{ ++ int i; ++ ++ fprintf(fplog, "Repl %2s %2d", leg, ind[0]); ++ for (i = 1; i < n; i++) ++ { ++ fprintf(fplog, " %c %2d", (bEx != 0 && bEx[i]) ? 'x' : ' ', ind[i]); ++ } ++ fprintf(fplog, "\n"); ++} ++ ++static void print_allswitchind(FILE *fplog, int n, int *pind, int *allswaps, int *tmpswap) ++{ ++ int i; ++ ++ for (i = 0; i < n; i++) ++ { ++ tmpswap[i] = allswaps[i]; ++ } ++ for (i = 0; i < n; i++) ++ { ++ allswaps[i] = tmpswap[pind[i]]; ++ } ++ ++ fprintf(fplog, "\nAccepted Exchanges: "); ++ for (i = 0; i < n; i++) ++ { ++ fprintf(fplog, "%d ", pind[i]); ++ } ++ fprintf(fplog, "\n"); ++ ++ /* the "Order After Exchange" is the state label corresponding to the configuration that ++ started in state listed in order, i.e. ++ ++ 3 0 1 2 ++ ++ means that the: ++ configuration starting in simulation 3 is now in simulation 0, ++ configuration starting in simulation 0 is now in simulation 1, ++ configuration starting in simulation 1 is now in simulation 2, ++ configuration starting in simulation 2 is now in simulation 3 ++ */ ++ fprintf(fplog, "Order After Exchange: "); ++ for (i = 0; i < n; i++) ++ { ++ fprintf(fplog, "%d ", allswaps[i]); ++ } ++ fprintf(fplog, "\n\n"); ++} ++ ++static void print_prob(FILE *fplog, const char *leg, int n, real *prob) ++{ ++ int i; ++ char buf[8]; ++ ++ fprintf(fplog, "Repl %2s ", leg); ++ for (i = 1; i < n; i++) ++ { ++ if (prob[i] >= 0) ++ { ++ sprintf(buf, "%4.2f", prob[i]); ++ fprintf(fplog, " %3s", buf[0] == '1' ? "1.0" : buf+1); ++ } ++ else ++ { ++ fprintf(fplog, " "); ++ } ++ } ++ fprintf(fplog, "\n"); ++} ++ ++static void print_count(FILE *fplog, const char *leg, int n, int *count) ++{ ++ int i; ++ ++ fprintf(fplog, "Repl %2s ", leg); ++ for (i = 1; i < n; i++) ++ { ++ fprintf(fplog, " %4d", count[i]); ++ } ++ fprintf(fplog, "\n"); ++} ++ ++static real calc_delta(FILE *fplog, gmx_bool bPrint, struct gmx_repl_ex *re, int a, int b, int ap, int bp) ++{ ++ ++ real ediff, dpV, delta = 0; ++ real *Epot = re->Epot; ++ real *Vol = re->Vol; ++ real **de = re->de; ++ real *beta = re->beta; ++ ++ /* Two cases; we are permuted and not. In all cases, setting ap = a and bp = b will reduce ++ to the non permuted case */ ++ ++ switch (re->type) ++ { ++ case ereTEMP: ++ /* ++ * Okabe et. al. Chem. Phys. Lett. 335 (2001) 435-439 ++ */ ++ ediff = Epot[b] - Epot[a]; ++ delta = -(beta[bp] - beta[ap])*ediff; ++ break; ++ case ereLAMBDA: ++ /* two cases: when we are permuted, and not. */ ++ /* non-permuted: ++ ediff = E_new - E_old ++ = [H_b(x_a) + H_a(x_b)] - [H_b(x_b) + H_a(x_a)] ++ = [H_b(x_a) - H_a(x_a)] + [H_a(x_b) - H_b(x_b)] ++ = de[b][a] + de[a][b] */ ++ ++ /* permuted: ++ ediff = E_new - E_old ++ = [H_bp(x_a) + H_ap(x_b)] - [H_bp(x_b) + H_ap(x_a)] ++ = [H_bp(x_a) - H_ap(x_a)] + [H_ap(x_b) - H_bp(x_b)] ++ = [H_bp(x_a) - H_a(x_a) + H_a(x_a) - H_ap(x_a)] + [H_ap(x_b) - H_b(x_b) + H_b(x_b) - H_bp(x_b)] ++ = [H_bp(x_a) - H_a(x_a)] - [H_ap(x_a) - H_a(x_a)] + [H_ap(x_b) - H_b(x_b)] - H_bp(x_b) - H_b(x_b)] ++ = (de[bp][a] - de[ap][a]) + (de[ap][b] - de[bp][b]) */ ++ /* but, in the current code implementation, we flip configurations, not indices . . . ++ So let's examine that. ++ = [H_b(x_ap) - H_a(x_a)] - [H_a(x_ap) - H_a(x_a)] + [H_a(x_bp) - H_b(x_b)] - H_b(x_bp) - H_b(x_b)] ++ = [H_b(x_ap) - H_a(x_ap)] + [H_a(x_bp) - H_b(x_pb)] ++ = (de[b][ap] - de[a][ap]) + (de[a][bp] - de[b][bp] ++ So, if we exchange b<=> bp and a<=> ap, we return to the same result. ++ So the simple solution is to flip the ++ position of perturbed and original indices in the tests. ++ */ ++ ++ ediff = (de[bp][a] - de[ap][a]) + (de[ap][b] - de[bp][b]); ++ delta = ediff*beta[a]; /* assume all same temperature in this case */ ++ break; ++ case ereTL: ++ /* not permuted: */ ++ /* delta = reduced E_new - reduced E_old ++ = [beta_b H_b(x_a) + beta_a H_a(x_b)] - [beta_b H_b(x_b) + beta_a H_a(x_a)] ++ = [beta_b H_b(x_a) - beta_a H_a(x_a)] + [beta_a H_a(x_b) - beta_b H_b(x_b)] ++ = [beta_b dH_b(x_a) + beta_b H_a(x_a) - beta_a H_a(x_a)] + ++ [beta_a dH_a(x_b) + beta_a H_b(x_b) - beta_b H_b(x_b)] ++ = [beta_b dH_b(x_a) + [beta_a dH_a(x_b) + ++ beta_b (H_a(x_a) - H_b(x_b)]) - beta_a (H_a(x_a) - H_b(x_b)) ++ = beta_b dH_b(x_a) + beta_a dH_a(x_b) - (beta_b - beta_a)(H_b(x_b) - H_a(x_a) */ ++ /* delta = beta[b]*de[b][a] + beta[a]*de[a][b] - (beta[b] - beta[a])*(Epot[b] - Epot[a]; */ ++ /* permuted (big breath!) */ ++ /* delta = reduced E_new - reduced E_old ++ = [beta_bp H_bp(x_a) + beta_ap H_ap(x_b)] - [beta_bp H_bp(x_b) + beta_ap H_ap(x_a)] ++ = [beta_bp H_bp(x_a) - beta_ap H_ap(x_a)] + [beta_ap H_ap(x_b) - beta_bp H_bp(x_b)] ++ = [beta_bp H_bp(x_a) - beta_ap H_ap(x_a)] + [beta_ap H_ap(x_b) - beta_bp H_bp(x_b)] ++ - beta_pb H_a(x_a) + beta_ap H_a(x_a) + beta_pb H_a(x_a) - beta_ap H_a(x_a) ++ - beta_ap H_b(x_b) + beta_bp H_b(x_b) + beta_ap H_b(x_b) - beta_bp H_b(x_b) ++ = [(beta_bp H_bp(x_a) - beta_bp H_a(x_a)) - (beta_ap H_ap(x_a) - beta_ap H_a(x_a))] + ++ [(beta_ap H_ap(x_b) - beta_ap H_b(x_b)) - (beta_bp H_bp(x_b) - beta_bp H_b(x_b))] ++ + beta_pb H_a(x_a) - beta_ap H_a(x_a) + beta_ap H_b(x_b) - beta_bp H_b(x_b) ++ = [beta_bp (H_bp(x_a) - H_a(x_a)) - beta_ap (H_ap(x_a) - H_a(x_a))] + ++ [beta_ap (H_ap(x_b) - H_b(x_b)) - beta_bp (H_bp(x_b) - H_b(x_b))] ++ + beta_pb (H_a(x_a) - H_b(x_b)) - beta_ap (H_a(x_a) - H_b(x_b)) ++ = ([beta_bp de[bp][a] - beta_ap de[ap][a]) + beta_ap de[ap][b] - beta_bp de[bp][b]) ++ + (beta_pb-beta_ap)(H_a(x_a) - H_b(x_b)) */ ++ delta = beta[bp]*(de[bp][a] - de[bp][b]) + beta[ap]*(de[ap][b] - de[ap][a]) - (beta[bp]-beta[ap])*(Epot[b]-Epot[a]); ++ break; ++ default: ++ gmx_incons("Unknown replica exchange quantity"); ++ } ++ if (bPrint) ++ { ++ fprintf(fplog, "Repl %d <-> %d dE_term = %10.3e (kT)\n", a, b, delta); ++ } ++ if (re->bNPT) ++ { ++ /* revist the calculation for 5.0. Might be some improvements. */ ++ dpV = (beta[ap]*re->pres[ap]-beta[bp]*re->pres[bp])*(Vol[b]-Vol[a])/PRESFAC; ++ if (bPrint) ++ { ++ fprintf(fplog, " dpV = %10.3e d = %10.3e\n", dpV, delta + dpV); ++ } ++ delta += dpV; ++ } ++ return delta; ++} ++ ++static void ++test_for_replica_exchange(FILE *fplog, ++ const gmx_multisim_t *ms, ++ struct gmx_repl_ex *re, ++ gmx_enerdata_t *enerd, ++ real vol, ++ gmx_int64_t step, ++ real time) ++{ ++ int m, i, j, a, b, ap, bp, i0, i1, tmp; ++ real ediff = 0, delta = 0, dpV = 0; ++ gmx_bool bPrint, bMultiEx; ++ gmx_bool *bEx = re->bEx; ++ real *prob = re->prob; ++ int *pind = re->destinations; /* permuted index */ ++ gmx_bool bEpot = FALSE; ++ gmx_bool bDLambda = FALSE; ++ gmx_bool bVol = FALSE; ++ gmx_rng_t rng; ++ ++ bMultiEx = (re->nex > 1); /* multiple exchanges at each state */ ++ fprintf(fplog, "Replica exchange at step " "%"GMX_PRId64 " time %.5f\n", step, time); ++ ++ if (re->bNPT) ++ { ++ for (i = 0; i < re->nrepl; i++) ++ { ++ re->Vol[i] = 0; ++ } ++ bVol = TRUE; ++ re->Vol[re->repl] = vol; ++ } ++ if ((re->type == ereTEMP || re->type == ereTL)) ++ { ++ for (i = 0; i < re->nrepl; i++) ++ { ++ re->Epot[i] = 0; ++ } ++ bEpot = TRUE; ++ re->Epot[re->repl] = enerd->term[F_EPOT]; ++ /* temperatures of different states*/ ++ for (i = 0; i < re->nrepl; i++) ++ { ++ re->beta[i] = 1.0/(re->q[ereTEMP][i]*BOLTZ); ++ } ++ } ++ else ++ { ++ for (i = 0; i < re->nrepl; i++) ++ { ++ re->beta[i] = 1.0/(re->temp*BOLTZ); /* we have a single temperature */ ++ } ++ } ++ if (re->type == ereLAMBDA || re->type == ereTL) ++ { ++ bDLambda = TRUE; ++ /* lambda differences. */ ++ /* de[i][j] is the energy of the jth simulation in the ith Hamiltonian ++ minus the energy of the jth simulation in the jth Hamiltonian */ ++ for (i = 0; i < re->nrepl; i++) ++ { ++ for (j = 0; j < re->nrepl; j++) ++ { ++ re->de[i][j] = 0; ++ } ++ } ++ for (i = 0; i < re->nrepl; i++) ++ { ++ re->de[i][re->repl] = (enerd->enerpart_lambda[(int)re->q[ereLAMBDA][i]+1]-enerd->enerpart_lambda[0]); ++ } ++ } ++ ++ /* now actually do the communication */ ++ if (bVol) ++ { ++ gmx_sum_sim(re->nrepl, re->Vol, ms); ++ } ++ if (bEpot) ++ { ++ gmx_sum_sim(re->nrepl, re->Epot, ms); ++ } ++ if (bDLambda) ++ { ++ for (i = 0; i < re->nrepl; i++) ++ { ++ gmx_sum_sim(re->nrepl, re->de[i], ms); ++ } ++ } ++ ++ /* make a duplicate set of indices for shuffling */ ++ for (i = 0; i < re->nrepl; i++) ++ { ++ pind[i] = re->ind[i]; ++ } ++ ++ if (bMultiEx) ++ { ++ /* multiple random switch exchange */ ++ int nself = 0; ++ for (i = 0; i < re->nex + nself; i++) ++ { ++ double rnd[2]; ++ ++ gmx_rng_cycle_2uniform(step, i*2, re->seed, RND_SEED_REPLEX, rnd); ++ /* randomly select a pair */ ++ /* in theory, could reduce this by identifying only which switches had a nonneglibible ++ probability of occurring (log p > -100) and only operate on those switches */ ++ /* find out which state it is from, and what label that state currently has. Likely ++ more work that useful. */ ++ i0 = (int)(re->nrepl*rnd[0]); ++ i1 = (int)(re->nrepl*rnd[1]); ++ if (i0 == i1) ++ { ++ nself++; ++ continue; /* self-exchange, back up and do it again */ ++ } ++ ++ a = re->ind[i0]; /* what are the indices of these states? */ ++ b = re->ind[i1]; ++ ap = pind[i0]; ++ bp = pind[i1]; ++ ++ bPrint = FALSE; /* too noisy */ ++ /* calculate the energy difference */ ++ /* if the code changes to flip the STATES, rather than the configurations, ++ use the commented version of the code */ ++ /* delta = calc_delta(fplog,bPrint,re,a,b,ap,bp); */ ++ delta = calc_delta(fplog, bPrint, re, ap, bp, a, b); ++ ++ /* we actually only use the first space in the prob and bEx array, ++ since there are actually many switches between pairs. */ ++ ++ if (delta <= 0) ++ { ++ /* accepted */ ++ prob[0] = 1; ++ bEx[0] = TRUE; ++ } ++ else ++ { ++ if (delta > PROBABILITYCUTOFF) ++ { ++ prob[0] = 0; ++ } ++ else ++ { ++ prob[0] = exp(-delta); ++ } ++ /* roll a number to determine if accepted */ ++ gmx_rng_cycle_2uniform(step, i*2+1, re->seed, RND_SEED_REPLEX, rnd); ++ bEx[0] = rnd[0] < prob[0]; ++ } ++ re->prob_sum[0] += prob[0]; ++ ++ if (bEx[0]) ++ { ++ /* swap the states */ ++ tmp = pind[i0]; ++ pind[i0] = pind[i1]; ++ pind[i1] = tmp; ++ } ++ } ++ re->nattempt[0]++; /* keep track of total permutation trials here */ ++ print_allswitchind(fplog, re->nrepl, pind, re->allswaps, re->tmpswap); ++ } ++ else ++ { ++ /* standard nearest neighbor replica exchange */ ++ ++ m = (step / re->nst) % 2; ++ for (i = 1; i < re->nrepl; i++) ++ { ++ a = re->ind[i-1]; ++ b = re->ind[i]; ++ ++ bPrint = (re->repl == a || re->repl == b); ++ if (i % 2 == m) ++ { ++ delta = calc_delta(fplog, bPrint, re, a, b, a, b); ++ if (delta <= 0) ++ { ++ /* accepted */ ++ prob[i] = 1; ++ bEx[i] = TRUE; ++ } ++ else ++ { ++ double rnd[2]; ++ ++ if (delta > PROBABILITYCUTOFF) ++ { ++ prob[i] = 0; ++ } ++ else ++ { ++ prob[i] = exp(-delta); ++ } ++ /* roll a number to determine if accepted */ ++ gmx_rng_cycle_2uniform(step, i, re->seed, RND_SEED_REPLEX, rnd); ++ bEx[i] = rnd[0] < prob[i]; ++ } ++ re->prob_sum[i] += prob[i]; ++ ++ if (bEx[i]) ++ { ++ /* swap these two */ ++ tmp = pind[i-1]; ++ pind[i-1] = pind[i]; ++ pind[i] = tmp; ++ re->nexchange[i]++; /* statistics for back compatibility */ ++ } ++ } ++ else ++ { ++ prob[i] = -1; ++ bEx[i] = FALSE; ++ } ++ } ++ /* print some statistics */ ++ print_ind(fplog, "ex", re->nrepl, re->ind, bEx); ++ print_prob(fplog, "pr", re->nrepl, prob); ++ fprintf(fplog, "\n"); ++ re->nattempt[m]++; ++ } ++ ++ /* record which moves were made and accepted */ ++ for (i = 0; i < re->nrepl; i++) ++ { ++ re->nmoves[re->ind[i]][pind[i]] += 1; ++ re->nmoves[pind[i]][re->ind[i]] += 1; ++ } ++ fflush(fplog); /* make sure we can see what the last exchange was */ ++} ++ ++static void write_debug_x(t_state *state) ++{ ++ int i; ++ ++ if (debug) ++ { ++ for (i = 0; i < state->natoms; i += 10) ++ { ++ fprintf(debug, "dx %5d %10.5f %10.5f %10.5f\n", i, state->x[i][XX], state->x[i][YY], state->x[i][ZZ]); ++ } ++ } ++} ++ ++static void ++cyclic_decomposition(const int *destinations, ++ int **cyclic, ++ gmx_bool *incycle, ++ const int nrepl, ++ int *nswap) ++{ ++ ++ int i, j, c, p; ++ int maxlen = 1; ++ for (i = 0; i < nrepl; i++) ++ { ++ incycle[i] = FALSE; ++ } ++ for (i = 0; i < nrepl; i++) /* one cycle for each replica */ ++ { ++ if (incycle[i]) ++ { ++ cyclic[i][0] = -1; ++ continue; ++ } ++ cyclic[i][0] = i; ++ incycle[i] = TRUE; ++ c = 1; ++ p = i; ++ for (j = 0; j < nrepl; j++) /* potentially all cycles are part, but we will break first */ ++ { ++ p = destinations[p]; /* start permuting */ ++ if (p == i) ++ { ++ cyclic[i][c] = -1; ++ if (c > maxlen) ++ { ++ maxlen = c; ++ } ++ break; /* we've reached the original element, the cycle is complete, and we marked the end. */ ++ } ++ else ++ { ++ cyclic[i][c] = p; /* each permutation gives a new member of the cycle */ ++ incycle[p] = TRUE; ++ c++; ++ } ++ } ++ } ++ *nswap = maxlen - 1; ++ ++ if (debug) ++ { ++ for (i = 0; i < nrepl; i++) ++ { ++ fprintf(debug, "Cycle %d:", i); ++ for (j = 0; j < nrepl; j++) ++ { ++ if (cyclic[i][j] < 0) ++ { ++ break; ++ } ++ fprintf(debug, "%2d", cyclic[i][j]); ++ } ++ fprintf(debug, "\n"); ++ } ++ fflush(debug); ++ } ++} ++ ++static void ++compute_exchange_order(FILE *fplog, ++ int **cyclic, ++ int **order, ++ const int nrepl, ++ const int maxswap) ++{ ++ int i, j; ++ ++ for (j = 0; j < maxswap; j++) ++ { ++ for (i = 0; i < nrepl; i++) ++ { ++ if (cyclic[i][j+1] >= 0) ++ { ++ order[cyclic[i][j+1]][j] = cyclic[i][j]; ++ order[cyclic[i][j]][j] = cyclic[i][j+1]; ++ } ++ } ++ for (i = 0; i < nrepl; i++) ++ { ++ if (order[i][j] < 0) ++ { ++ order[i][j] = i; /* if it's not exchanging, it should stay this round*/ ++ } ++ } ++ } ++ ++ if (debug) ++ { ++ fprintf(fplog, "Replica Exchange Order\n"); ++ for (i = 0; i < nrepl; i++) ++ { ++ fprintf(fplog, "Replica %d:", i); ++ for (j = 0; j < maxswap; j++) ++ { ++ if (order[i][j] < 0) ++ { ++ break; ++ } ++ fprintf(debug, "%2d", order[i][j]); ++ } ++ fprintf(fplog, "\n"); ++ } ++ fflush(fplog); ++ } ++} ++ ++static void ++prepare_to_do_exchange(FILE *fplog, ++ struct gmx_repl_ex *re, ++ const int replica_id, ++ int *maxswap, ++ gmx_bool *bThisReplicaExchanged) ++{ ++ int i, j; ++ /* Hold the cyclic decomposition of the (multiple) replica ++ * exchange. */ ++ gmx_bool bAnyReplicaExchanged = FALSE; ++ *bThisReplicaExchanged = FALSE; ++ ++ for (i = 0; i < re->nrepl; i++) ++ { ++ if (re->destinations[i] != re->ind[i]) ++ { ++ /* only mark as exchanged if the index has been shuffled */ ++ bAnyReplicaExchanged = TRUE; ++ break; ++ } ++ } ++ if (bAnyReplicaExchanged) ++ { ++ /* reinitialize the placeholder arrays */ ++ for (i = 0; i < re->nrepl; i++) ++ { ++ for (j = 0; j < re->nrepl; j++) ++ { ++ re->cyclic[i][j] = -1; ++ re->order[i][j] = -1; ++ } ++ } ++ ++ /* Identify the cyclic decomposition of the permutation (very ++ * fast if neighbor replica exchange). */ ++ cyclic_decomposition(re->destinations, re->cyclic, re->incycle, re->nrepl, maxswap); ++ ++ /* Now translate the decomposition into a replica exchange ++ * order at each step. */ ++ compute_exchange_order(fplog, re->cyclic, re->order, re->nrepl, *maxswap); ++ ++ /* Did this replica do any exchange at any point? */ ++ for (j = 0; j < *maxswap; j++) ++ { ++ if (replica_id != re->order[replica_id][j]) ++ { ++ *bThisReplicaExchanged = TRUE; ++ break; ++ } ++ } ++ } ++} ++ ++gmx_bool replica_exchange(FILE *fplog, const t_commrec *cr, struct gmx_repl_ex *re, ++ t_state *state, gmx_enerdata_t *enerd, ++ t_state *state_local, gmx_int64_t step, real time) ++{ ++ int i, j; ++ int replica_id = 0; ++ int exchange_partner; ++ int maxswap = 0; ++ /* Number of rounds of exchanges needed to deal with any multiple ++ * exchanges. */ ++ /* Where each replica ends up after the exchange attempt(s). */ ++ /* The order in which multiple exchanges will occur. */ ++ gmx_bool bThisReplicaExchanged = FALSE; ++ ++ if (MASTER(cr)) ++ { ++ replica_id = re->repl; ++ test_for_replica_exchange(fplog, cr->ms, re, enerd, det(state_local->box), step, time); ++ prepare_to_do_exchange(fplog, re, replica_id, &maxswap, &bThisReplicaExchanged); ++ } ++ /* Do intra-simulation broadcast so all processors belonging to ++ * each simulation know whether they need to participate in ++ * collecting the state. Otherwise, they might as well get on with ++ * the next thing to do. */ ++ if (DOMAINDECOMP(cr)) ++ { ++#ifdef GMX_MPI ++ MPI_Bcast(&bThisReplicaExchanged, sizeof(gmx_bool), MPI_BYTE, MASTERRANK(cr), ++ cr->mpi_comm_mygroup); ++#endif ++ } ++ ++ if (bThisReplicaExchanged) ++ { ++ /* Exchange the states */ ++ /* Collect the global state on the master node */ ++ if (DOMAINDECOMP(cr)) ++ { ++ dd_collect_state(cr->dd, state_local, state); ++ } ++ else ++ { ++ copy_state_nonatomdata(state_local, state); ++ } ++ ++ if (MASTER(cr)) ++ { ++ /* There will be only one swap cycle with standard replica ++ * exchange, but there may be multiple swap cycles if we ++ * allow multiple swaps. */ ++ ++ for (j = 0; j < maxswap; j++) ++ { ++ exchange_partner = re->order[replica_id][j]; ++ ++ if (exchange_partner != replica_id) ++ { ++ /* Exchange the global states between the master nodes */ ++ if (debug) ++ { ++ fprintf(debug, "Exchanging %d with %d\n", replica_id, exchange_partner); ++ } ++ exchange_state(cr->ms, exchange_partner, state); ++ } ++ } ++ /* For temperature-type replica exchange, we need to scale ++ * the velocities. */ ++ if (re->type == ereTEMP || re->type == ereTL) ++ { ++ scale_velocities(state, sqrt(re->q[ereTEMP][replica_id]/re->q[ereTEMP][re->destinations[replica_id]])); ++ } ++ ++ } ++ ++ /* With domain decomposition the global state is distributed later */ ++ if (!DOMAINDECOMP(cr)) ++ { ++ /* Copy the global state to the local state data structure */ ++ copy_state_nonatomdata(state, state_local); ++ } ++ } ++ ++ return bThisReplicaExchanged; ++} ++ ++void print_replica_exchange_statistics(FILE *fplog, struct gmx_repl_ex *re) ++{ ++ int i; ++ ++ fprintf(fplog, "\nReplica exchange statistics\n"); ++ ++ if (re->nex == 0) ++ { ++ fprintf(fplog, "Repl %d attempts, %d odd, %d even\n", ++ re->nattempt[0]+re->nattempt[1], re->nattempt[1], re->nattempt[0]); ++ ++ fprintf(fplog, "Repl average probabilities:\n"); ++ for (i = 1; i < re->nrepl; i++) ++ { ++ if (re->nattempt[i%2] == 0) ++ { ++ re->prob[i] = 0; ++ } ++ else ++ { ++ re->prob[i] = re->prob_sum[i]/re->nattempt[i%2]; ++ } ++ } ++ print_ind(fplog, "", re->nrepl, re->ind, NULL); ++ print_prob(fplog, "", re->nrepl, re->prob); ++ ++ fprintf(fplog, "Repl number of exchanges:\n"); ++ print_ind(fplog, "", re->nrepl, re->ind, NULL); ++ print_count(fplog, "", re->nrepl, re->nexchange); ++ ++ fprintf(fplog, "Repl average number of exchanges:\n"); ++ for (i = 1; i < re->nrepl; i++) ++ { ++ if (re->nattempt[i%2] == 0) ++ { ++ re->prob[i] = 0; ++ } ++ else ++ { ++ re->prob[i] = ((real)re->nexchange[i])/re->nattempt[i%2]; ++ } ++ } ++ print_ind(fplog, "", re->nrepl, re->ind, NULL); ++ print_prob(fplog, "", re->nrepl, re->prob); ++ ++ fprintf(fplog, "\n"); ++ } ++ /* print the transition matrix */ ++ print_transition_matrix(fplog, re->nrepl, re->nmoves, re->nattempt); ++} diff --git a/g/GROMACS/gromacs-5.0.4-plumed-2.1.3.patch b/g/GROMACS/gromacs-5.0.4-plumed-2.1.3.patch new file mode 100644 index 00000000..9faba3c3 --- /dev/null +++ b/g/GROMACS/gromacs-5.0.4-plumed-2.1.3.patch @@ -0,0 +1,9575 @@ +diff --git a/Plumed.cmake b/Plumed.cmake +new file mode 100644 +index 0000000..f66e115 +--- /dev/null ++++ b/Plumed.cmake +@@ -0,0 +1,3 @@ ++# PLUMED: shared installation ++set(PLUMED_LOAD /home/jas02/software/PLUMED/2.1.3-foss-2015b/lib/plumed///src/lib/libplumed.so -ldl ) ++set(PLUMED_DEPENDENCIES /home/jas02/software/PLUMED/2.1.3-foss-2015b/lib/plumed///src/lib/libplumed.so) +diff --git a/Plumed.h b/Plumed.h +new file mode 100644 +index 0000000..16da74a +--- /dev/null ++++ b/Plumed.h +@@ -0,0 +1,494 @@ ++/* +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ++ Copyright (c) 2011-2014 The plumed team ++ (see the PEOPLE file at the root of the distribution for a list of names) ++ ++ See http://www.plumed-code.org for more information. ++ ++ This file is part of plumed, version 2. ++ ++ plumed 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, either version 3 of the License, or ++ (at your option) any later version. ++ ++ plumed 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 Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public License ++ along with plumed. If not, see . +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ */ ++#ifndef __PLUMED_wrapper_Plumed_h ++#define __PLUMED_wrapper_Plumed_h ++ ++/** ++\page ReferencePlumedH Reference for interfacing MD codes with PLUMED ++ ++ Plumed.h and Plumed.c contain the external plumed interface, which is used to ++ integrate it with MD engines. This interface is very general, and is expected ++ not to change across plumed versions. Plumed.c also implements a dummy version ++ of the interface, so as to allow a code to be fully linked even if the plumed ++ library is not available yet. These files could be directly included in the official ++ host MD distribution. In this manner, it will be sufficient to link the plumed ++ library at link time (on all systems) or directly at runtime (on system where ++ dynamic loading is enabled) to include plumed features. ++ ++ Why is Plumed.c written in C and not C++? The reason is that the resulting Plumed.o ++ needs to be linked with the host MD code immediately (whereas the rest of plumed ++ could be linked a posteriori). Imagine the MD code is written in FORTRAN: when we ++ link the Plumed.o file we would like not to need any C++ library linked. In this ++ manner, we do not need to know which C++ compiler will be used to compile plumed. ++ The C++ library is only linked to the "rest" of plumed, which actually use it. ++ Anyway, Plumed.c is written in such a manner to allow its compilation also in C++ ++ (C++ is a bit stricter than C; compatibility is checked when PlumedStatic.cpp, ++ which basically includes Plumed.c, is compiled with the C++ compiler). This will ++ allow e.g. MD codes written in C++ to just incorporate Plumed.c (maybe renamed into ++ Plumed.cpp), without the need of configuring a plain C compiler. ++ ++ Plumed interface can be used from C, C++ and FORTRAN. Everything concerning plumed ++ is hidden inside a single object type, which is described in C by a structure ++ (struct \ref plumed), in C++ by a class (PLMD::Plumed) and in FORTRAN by a ++ fixed-length string (CHARACTER(LEN=32)). Obviously C++ can use both struct ++ and class interfaces, but the first should be preferred. The reference interface ++ is the C one, whereas FORTRAN and C++ interfaces are implemented as wrappers ++ around it. ++ ++ In the C++ interface, all the routines are implemented as methods of PLMD::Plumed. ++ In the C and FORTRAN interfaces, all the routines are named plumed_*, to ++ avoid potential name clashes. Notice that the entire plumed library ++ is implemented in C++, and it is hidden inside the PLMD namespace. ++ ++ Handlers to the plumed object can be converted among different representations, ++ to allow inter-operability among languages. In C, there are tools to convert ++ to/from FORTRAN, whereas in C++ there are tools to convert to/from FORTRAN and C. ++ ++ These handlers only contain a pointer to the real structure, so that ++ when a plumed object is brought from one language to another, ++ it brings a reference to the same environment. ++ ++ Moreover, to simplify life in all cases where a single Plumed object is ++ required for the entire simulation (which covers most of the practical ++ applications with conventional MD codes) it is possible to take advantage ++ of a global interface, which is implicitly referring to a unique global instance. ++ The global object should still be initialized and finalized properly. ++ ++ The basic method to send a message to plumed is ++\verbatim ++ (C) plumed_cmd ++ (C++) PLMD::Plumed::cmd ++ (FORTRAN) PLUMED_F_CMD ++\endverbatim ++ ++ To initialize a plumed object, use: ++\verbatim ++ (C) plumed_create ++ (C++) (constructor of PLMD::Plumed) ++ (FORTRAN) PLUMED_F_CREATE ++\endverbatim ++ ++ To finalize it, use ++\verbatim ++ (C) plumed_finalize ++ (C++) (destructor of PLMD::Plumed) ++ (FORTRAN) PLUMED_F_FINALIZE ++\endverbatim ++ ++ To access to the global-object, use ++\verbatim ++ (C) plumed_gcreate, plumed_gfinalize, plumed_gcmd ++ (C++) PLMD::Plumed::gcreate, PLMD::Plumed::gfinalize, PLMD::Plumed::gcmd ++ (FORTRAN) PLUMED_F_GCREATE, PLUMED_F_GFINALIZE, PLUMED_F_GCMD ++\endverbatim ++ ++ To check if the global object has been initialized, use ++\verbatim ++ (C) plumed_ginitialized ++ (C++) PLMD::Plumed::ginitialized ++ (FORTRAN) PLUMED_F_GINITIALIZED ++\endverbatim ++ ++ To check if plumed library is available (this is useful for runtime linking), use ++\verbatim ++ (C) plumed_installed ++ (C++) PLMD::Plumed::installed ++ (FORTRAN) PLUMED_F_INSTALLED ++\endverbatim ++ ++ To convert handlers use ++\verbatim ++ (C) plumed_c2f (C to FORTRAN) ++ (C) plumed_f2c (FORTRAN to C) ++ (C++) Plumed(plumed) constructor (C to C++) ++ (C++) operator plumed() cast (C++ to C) ++ (C++) Plumed(char*) constructor (FORTRAN to C++) ++ (C++) toFortran(char*) (C++ to FORTRAN) ++\endverbatim ++ ++\verbatim ++ FORTRAN interface ++ SUBROUTINE PLUMED_F_INSTALLED(i) ++ INTEGER, INTENT(OUT) :: i ++ SUBROUTINE PLUMED_F_GINITIALIZED(i) ++ INTEGER, INTENT(OUT) :: i ++ SUBROUTINE PLUMED_F_GCREATE() ++ SUBROUTINE PLUMED_F_GCMD(key,val) ++ CHARACTER(LEN=*), INTENT(IN) :: key ++ UNSPECIFIED_TYPE, INTENT(INOUT) :: val(*) ++ SUBROUTINE PLUMED_F_GFINALIZE() ++ SUBROUTINE PLUMED_F_GLOBAL(p) ++ CHARACTER(LEN=32), INTENT(OUT) :: p ++ SUBROUTINE PLUMED_F_CREATE(p) ++ CHARACTER(LEN=32), INTENT(OUT) :: p ++ SUBROUTINE PLUMED_F_CMD(p,key,val) ++ CHARACTER(LEN=32), INTENT(IN) :: p ++ CHARACTER(LEN=*), INTENT(IN) :: key ++ UNSPECIFIED_TYPE, INTENT(INOUT) :: val(*) ++ SUBROUTINE PLUMED_F_FINALIZE(p) ++ CHARACTER(LEN=32), INTENT(IN) :: p ++\endverbatim ++ ++ The main routine is "cmd", which accepts two arguments: ++ key is a string containing the name of the command ++ val is the argument. it is declared const so as to use allow passing const objects, but in practice plumed ++ is going to modify val in several cases (using a const_cast). ++ In some cases val can be omitted: just pass a NULL pointer (in C++, val is optional and can be omitted). ++ The set of possible keys is the real API of the plumed library, and will be expanded with time. ++ New commands will be added, but backward compatibility will be retained as long as possible. ++ ++ To pass plumed a callback function use the following syntax (not available in FORTRAN yet) ++\verbatim ++ plumed_function_holder ff; ++ ff.p=your_function; ++ plumed_cmd(plumed,"xxxx",&ff); ++\endverbatim ++ (this is passing the your_function() function to the "xxxx" command) ++*/ ++ ++#ifdef __cplusplus ++ extern "C" { ++#endif ++ ++/* Generic function pointer */ ++typedef void (*plumed_function_pointer)(void); ++ ++/** ++ \brief Holder for function pointer. ++ ++ To pass plumed a callback function use the following syntax: ++\verbatim ++ plumed_function_holder ff; ++ ff.p=your_function; ++ plumed_cmd(plumed,"xxxx",&ff); ++\endverbatim ++ (this is going to pass the your_function() function to the "xxxx" command) ++*/ ++ ++typedef struct { ++ plumed_function_pointer p; ++} plumed_function_holder; ++ ++/** ++ \brief Main plumed object ++ ++ This is an object containing a Plumed instance, which should be used in ++ the MD engine. It should first be initialized with plumed_create(), ++ then it communicates with the MD engine using plumed_cmd(). Finally, ++ before the termination, it should be deallocated with plumed_finalize(). ++ Its interface is very simple and general, and is expected ++ not to change across plumed versions. See \ref ReferencePlumedH. ++*/ ++typedef struct { ++/** ++ \private ++ \brief Void pointer holding the real PlumedMain structure ++*/ ++ void*p; ++} plumed; ++ ++/** \relates plumed ++ \brief Constructor ++ ++ \return The constructed plumed object ++*/ ++plumed plumed_create(void); ++ ++/** \relates plumed ++ \brief Tells p to execute a command ++ ++ \param p The plumed object on which command is acting ++ \param key The name of the command to be executed ++ \param val The argument. It is declared as const to allow calls like plumed_cmd(p,"A","B"), ++ but for some choice of key it can change the content ++*/ ++void plumed_cmd(plumed p,const char*key,const void*val); ++ ++/** \relates plumed ++ \brief Destructor ++ ++ \param p The plumed object to be deallocated ++*/ ++void plumed_finalize(plumed p); ++ ++/** \relates plumed ++ \brief Check if plumed is installed (for runtime binding) ++ ++ \return 1 if plumed is installed, to 0 otherwise ++*/ ++int plumed_installed(void); ++ ++/** \relates plumed ++ \brief Retrieves an handler to the global structure. ++*/ ++plumed plumed_global(void); ++ ++/** \relates plumed ++ \brief Check if the global interface has been initialized ++ ++ \return 1 if plumed has been initialized, 0 otherwise ++*/ ++int plumed_ginitialized(void); ++ ++/* global C interface, working on a global object */ ++ ++/** \relates plumed ++ \brief Constructor for the global interface. ++ ++ \note Equivalent to plumed_create(), but initialize a static global plumed object ++*/ ++void plumed_gcreate(void); ++ ++/** \relates plumed ++ \brief Tells to the global interface to execute a command. ++ ++ \param key The name of the command to be executed ++ \param val The argument. It is declared as const to allow calls like plumed_gcmd("A","B"), ++ but for some choice of key it can change the content ++ ++ \note Equivalent to plumed_cmd(), but skipping the plumed argument ++*/ ++void plumed_gcmd(const char* key,const void* val); ++ ++/** \relates plumed ++ \brief Destructor for the global interface. ++ ++ \note Equivalent to plumed_finalize(), but skipping the plumed argument ++*/ ++void plumed_gfinalize(void); ++ ++/* routines to convert char handler from/to plumed objects */ ++ ++/** \related plumed ++ \brief Converts a C handler to a FORTRAN handler ++ ++ \param p The C handler ++ \param c The FORTRAN handler (a char[32]) ++*/ ++void plumed_c2f(plumed p,char* c); ++ ++/** \related plumed ++ \brief Converts a FORTRAN handler to a C handler ++ \param c The FORTRAN handler (a char[32]) ++ \return The C handler ++*/ ++plumed plumed_f2c(const char* c); ++ ++#ifdef __cplusplus ++ } ++#endif ++ ++#ifdef __cplusplus ++ ++/* this is to include the NULL pointer */ ++#include ++ ++/* C++ interface is hidden in PLMD namespace (same as plumed library) */ ++namespace PLMD { ++ ++/** ++ C++ wrapper for \ref plumed. ++ ++ This class provides a C++ interface to PLUMED. ++*/ ++ ++class Plumed{ ++ plumed main; ++/** ++ keeps track if the object was created from scratch using ++ the defaults destructor (cloned=false) or if it was imported ++ from C or FORTRAN (cloned-true). In the latter case, the ++ plumed_finalize() method is not called when destructing the object, ++ since it is expected to be finalized in the C/FORTRAN code ++*/ ++ bool cloned; ++public: ++/** ++ Check if plumed is installed (for runtime binding) ++ \return true if plumed is installed, false otherwise ++*/ ++ static bool installed(); ++/** ++ Check if global-plumed has been initialized ++ \return true if global plumed object (see global()) is initialized (i.e. if gcreate() has been ++ called), false otherwise. ++*/ ++ static bool ginitialized(); ++/** ++ Initialize global-plumed ++*/ ++ static void gcreate(); ++/** ++ Send a command to global-plumed ++ \param key The name of the command to be executed ++ \param val The argument. It is declared as const to allow calls like gcmd("A","B"), ++ but for some choice of key it can change the content ++*/ ++ static void gcmd(const char* key,const void* val); ++/** ++ Finalize global-plumed ++*/ ++ static void gfinalize(); ++/** ++ Returns the Plumed global object ++ \return The Plumed global object ++*/ ++ static Plumed global(); ++/** ++ Constructor ++*/ ++ Plumed(); ++/** ++ Clone a Plumed object from a FORTRAN char* handler ++ \param c The FORTRAN handler (a char[32]). ++ ++ \attention The Plumed object created in this manner ++ will not finalize the corresponding plumed structure. ++ It is expected that the FORTRAN code calls plumed_c_finalize for it ++*/ ++ Plumed(const char*c); ++/** ++ Clone a Plumed object from a C plumed structure ++ \param p The C plumed structure. ++ ++ \attention The Plumed object created in this manner ++ will not finalize the corresponding plumed structure. ++ It is expected that the C code calls plumed_finalize for it ++*/ ++ Plumed(plumed p); ++private: ++/** Copy constructor is disabled (private and unimplemented) ++ The problem here is that after copying it will not be clear who is ++ going to finalize the corresponding plumed structure. ++*/ ++ Plumed(const Plumed&); ++/** Assignment operator is disabled (private and unimplemented) ++ The problem here is that after copying it will not be clear who is ++ going to finalize the corresponding plumed structure. ++*/ ++ Plumed&operator=(const Plumed&); ++public: ++/** ++ Retrieve the C plumed structure for this object ++*/ ++ operator plumed()const; ++/** ++ Retrieve a FORTRAN handler for this object ++ \param c The FORTRAN handler (a char[32]). ++*/ ++ void toFortran(char*c)const; ++/** ++ Send a command to this plumed object ++ \param key The name of the command to be executed ++ \param val The argument. It is declared as const to allow calls like p.cmd("A","B"), ++ but for some choice of key it can change the content ++*/ ++ void cmd(const char*key,const void*val=NULL); ++/** ++ Destructor ++ ++ Destructor is virtual so as to allow correct inheritance from Plumed object. ++ To avoid linking problems with g++, I specify "inline" also here (in principle ++ it should be enough to specify it down in the definition of the function, but ++ for some reason that I do not understand g++ does not inline it properly in that ++ case and complains when Plumed.h is included but Plumed.o is not linked. Anyway, the ++ way it is done here seems to work properly). ++*/ ++ inline virtual ~Plumed(); ++}; ++ ++/* All methods are inlined so as to avoid the compilation of an extra c++ file */ ++ ++inline ++bool Plumed::installed(){ ++ return plumed_installed(); ++} ++ ++inline ++Plumed::Plumed(): ++ main(plumed_create()), ++ cloned(false) ++{} ++ ++inline ++Plumed::Plumed(const char*c): ++ main(plumed_f2c(c)), ++ cloned(true) ++{} ++ ++inline ++Plumed::Plumed(plumed p): ++ main(p), ++ cloned(true) ++{} ++ ++inline ++Plumed::operator plumed()const{ ++ return main; ++} ++ ++inline ++void Plumed::toFortran(char*c)const{ ++ plumed_c2f(main,c); ++} ++ ++inline ++void Plumed::cmd(const char*key,const void*val){ ++ plumed_cmd(main,key,val); ++} ++ ++inline ++Plumed::~Plumed(){ ++ if(!cloned)plumed_finalize(main); ++} ++ ++inline ++bool Plumed::ginitialized(){ ++ return plumed_ginitialized(); ++} ++ ++inline ++void Plumed::gcreate(){ ++ plumed_gcreate(); ++} ++ ++inline ++void Plumed::gcmd(const char* key,const void* val){ ++ plumed_gcmd(key,val); ++} ++ ++inline ++void Plumed::gfinalize(){ ++ plumed_gfinalize(); ++} ++ ++inline ++Plumed Plumed::global(){ ++ return plumed_global(); ++} ++ ++} ++ ++#endif ++ ++ ++#endif +diff --git a/Plumed.inc b/Plumed.inc +new file mode 100644 +index 0000000..cd6097a +--- /dev/null ++++ b/Plumed.inc +@@ -0,0 +1,3 @@ ++# PLUMED: shared installation ++PLUMED_LOAD= /home/jas02/software/PLUMED/2.1.3-foss-2015b/lib/plumed///src/lib/libplumed.so -ldl ++PLUMED_DEPENDENCIES= /home/jas02/software/PLUMED/2.1.3-foss-2015b/lib/plumed///src/lib/libplumed.so +diff --git a/src/gromacs/CMakeLists.txt b/src/gromacs/CMakeLists.txt +index 6db37e2..cc97aa8 100644 +--- a/src/gromacs/CMakeLists.txt ++++ b/src/gromacs/CMakeLists.txt +@@ -32,6 +32,8 @@ + # To help us fund GROMACS development, we humbly ask that you cite + # the research papers on the package. Check out http://www.gromacs.org. + ++include(${CMAKE_SOURCE_DIR}/Plumed.cmake) ++ + set(LIBGROMACS_SOURCES) + + function (gmx_install_headers DESTINATION) +@@ -189,7 +191,7 @@ target_link_libraries(libgromacs + ${TNG_IO_LIBRARIES} + ${FFT_LIBRARIES} ${LINEAR_ALGEBRA_LIBRARIES} + ${XML_LIBRARIES} +- ${THREAD_LIB} ${GMX_SHARED_LINKER_FLAGS}) ++ ${THREAD_LIB} ${GMX_SHARED_LINKER_FLAGS} ${PLUMED_LOAD}) + set_target_properties(libgromacs PROPERTIES + OUTPUT_NAME "gromacs${GMX_LIBS_SUFFIX}" + SOVERSION ${LIBRARY_SOVERSION} +diff --git a/src/gromacs/CMakeLists.txt.preplumed b/src/gromacs/CMakeLists.txt.preplumed +new file mode 100644 +index 0000000..6db37e2 +--- /dev/null ++++ b/src/gromacs/CMakeLists.txt.preplumed +@@ -0,0 +1,232 @@ ++# ++# This file is part of the GROMACS molecular simulation package. ++# ++# Copyright (c) 2010,2011,2012,2013,2014, by the GROMACS development team, led by ++# Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl, ++# and including many others, as listed in the AUTHORS file in the ++# top-level source directory and at http://www.gromacs.org. ++# ++# GROMACS 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; either version 2.1 ++# of the License, or (at your option) any later version. ++# ++# GROMACS 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 ++# Lesser General Public License for more details. ++# ++# You should have received a copy of the GNU Lesser General Public ++# License along with GROMACS; if not, see ++# http://www.gnu.org/licenses, or write to the Free Software Foundation, ++# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. ++# ++# If you want to redistribute modifications to GROMACS, please ++# consider that scientific software is very special. Version ++# control is crucial - bugs must be traceable. We will be happy to ++# consider code for inclusion in the official distribution, but ++# derived work must not be called official GROMACS. Details are found ++# in the README & COPYING files - if they are missing, get the ++# official version at http://www.gromacs.org. ++# ++# To help us fund GROMACS development, we humbly ask that you cite ++# the research papers on the package. Check out http://www.gromacs.org. ++ ++set(LIBGROMACS_SOURCES) ++ ++function (gmx_install_headers DESTINATION) ++ if (NOT GMX_BUILD_MDRUN_ONLY) ++ if (DESTINATION) ++ set(DESTINATION ${INCL_INSTALL_DIR}/gromacs/${DESTINATION}) ++ else() ++ set(DESTINATION ${INCL_INSTALL_DIR}/gromacs) ++ endif() ++ install(FILES ${ARGN} DESTINATION ${DESTINATION} COMPONENT development) ++ endif() ++endfunction () ++ ++if(GMX_USE_TNG) ++ option(GMX_EXTERNAL_TNG "Use external TNG instead of compiling the version shipped with GROMACS." ++ OFF) ++ # Detect TNG if GMX_EXTERNAL_TNG is explicitly ON ++ if(GMX_EXTERNAL_TNG) ++ find_package(TNG_IO 1.6.0) ++ if(NOT TNG_IO_FOUND) ++ message(FATAL_ERROR ++ "TNG >= 1.6.0 not found. " ++ "You can set GMX_EXTERNAL_TNG=OFF to compile TNG.") ++ endif() ++ include_directories(${TNG_IO_INCLUDE_DIRS}) ++ endif() ++ if(NOT GMX_EXTERNAL_TNG) ++ include(${CMAKE_SOURCE_DIR}/src/external/tng_io/BuildTNG.cmake) ++ tng_get_source_list(TNG_SOURCES TNG_IO_DEFINITIONS) ++ list(APPEND LIBGROMACS_SOURCES ${TNG_SOURCES}) ++ tng_set_source_properties(WITH_ZLIB ${HAVE_ZLIB}) ++ ++ if (HAVE_ZLIB) ++ list(APPEND GMX_EXTRA_LIBRARIES ${ZLIB_LIBRARIES}) ++ include_directories(${ZLIB_INCLUDE_DIRS}) ++ endif() ++ endif() ++else() ++ # We still need to get tng/tng_io_fwd.h from somewhere! ++ include_directories(BEFORE ${CMAKE_SOURCE_DIR}/src/external/tng_io/include) ++endif() ++ ++add_subdirectory(gmxlib) ++add_subdirectory(mdlib) ++add_subdirectory(gmxpreprocess) ++add_subdirectory(commandline) ++add_subdirectory(fft) ++add_subdirectory(linearalgebra) ++add_subdirectory(math) ++add_subdirectory(random) ++add_subdirectory(onlinehelp) ++add_subdirectory(options) ++add_subdirectory(timing) ++add_subdirectory(utility) ++add_subdirectory(fileio) ++add_subdirectory(swap) ++add_subdirectory(essentialdynamics) ++add_subdirectory(pulling) ++add_subdirectory(simd) ++add_subdirectory(imd) ++if (NOT GMX_BUILD_MDRUN_ONLY) ++ add_subdirectory(legacyheaders) ++ add_subdirectory(gmxana) ++ add_subdirectory(statistics) ++ add_subdirectory(analysisdata) ++ add_subdirectory(selection) ++ add_subdirectory(trajectoryanalysis) ++ add_subdirectory(tools) ++endif() ++ ++list(APPEND LIBGROMACS_SOURCES ${GMXLIB_SOURCES} ${MDLIB_SOURCES}) ++ ++# This would be the standard way to include thread_mpi, but ++# we want libgromacs to link the functions directly ++#if(GMX_THREAD_MPI) ++# add_subdirectory(thread_mpi) ++#endif() ++#target_link_libraries(gmx ${GMX_EXTRA_LIBRARIES} ${THREAD_MPI_LIB}) ++ ++tmpi_get_source_list(THREAD_MPI_SOURCES ${CMAKE_SOURCE_DIR}/src/external/thread_mpi/src) ++list(APPEND LIBGROMACS_SOURCES ${THREAD_MPI_SOURCES}) ++ ++file(GLOB LIBGROMACS_HEADERS *.h) ++configure_file(version.h.cmakein version.h) ++gmx_install_headers("" ${LIBGROMACS_HEADERS}) ++gmx_install_headers("" ${CMAKE_CURRENT_BINARY_DIR}/version.h) ++ ++# Add target that generates baseversion-gen.c every time make is run ++# if git version info is requested, or create it statically. ++# This code is here instead of utility/CMakeLists.txt because CMake ++# ignores set_source_file_properties from subdirectories. ++set(GENERATED_VERSION_FILE ++ ${CMAKE_CURRENT_BINARY_DIR}/utility/baseversion-gen.c) ++set(GENERATED_VERSION_FILE_SOURCE ++ ${CMAKE_CURRENT_SOURCE_DIR}/utility/baseversion-gen.c.cmakein) ++if (GMX_GIT_VERSION_INFO) ++ add_custom_target(gmx-version ALL ++ COMMAND ${CMAKE_COMMAND} ++ -D GIT_EXECUTABLE="${GIT_EXECUTABLE}" ++ -D PROJECT_VERSION="${PROJECT_VERSION}" ++ -D PROJECT_SOURCE_DIR="${PROJECT_SOURCE_DIR}" ++ -D VERSION_CMAKEIN=${GENERATED_VERSION_FILE_SOURCE} ++ -D VERSION_OUT=${GENERATED_VERSION_FILE} ++ -P ${CMAKE_SOURCE_DIR}/cmake/gmxGenerateVersionInfo.cmake ++ WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} ++ DEPENDS ${GENERATED_VERSION_FILE_SOURCE} ++ COMMENT "Generating git version information") ++ set_source_files_properties(${GENERATED_VERSION_FILE} ++ PROPERTIES GENERATED true) ++else() ++ set(GMX_PROJECT_VERSION_STR ${PROJECT_VERSION}) ++ configure_file(${GENERATED_VERSION_FILE_SOURCE} ${GENERATED_VERSION_FILE}) ++endif() ++list(APPEND LIBGROMACS_SOURCES ${GENERATED_VERSION_FILE}) ++ ++# apply gcc 4.4.x bug workaround ++if(GMX_USE_GCC44_BUG_WORKAROUND) ++ include(gmxGCC44O3BugWorkaround) ++ gmx_apply_gcc44_bug_workaround("gmxlib/bondfree.c") ++ gmx_apply_gcc44_bug_workaround("mdlib/force.c") ++ gmx_apply_gcc44_bug_workaround("mdlib/constr.c") ++endif() ++ ++add_library(libgromacs ${LIBGROMACS_SOURCES}) ++if (GMX_GIT_VERSION_INFO) ++ add_dependencies(libgromacs gmx-version) ++endif() ++ ++# Recent versions of gcc and clang give warnings on scanner.cpp, which ++# is a generated source file. These are awkward to suppress inline, so ++# we do it in the compilation command (after testing that the compiler ++# supports the suppressions). Setting the properties only works after ++# the related target has been created, e.g. after when the file is ++# used with add_library(). ++include(CheckCXXCompilerFlag) ++check_cxx_compiler_flag(-Wno-unused-parameter HAS_NO_UNUSED_PARAMETER) ++if (HAS_NO_UNUSED_PARAMETER) ++ set(_scanner_cpp_compiler_flags "${_scanner_cpp_compiler_flags} -Wno-unused-parameter") ++endif() ++check_cxx_compiler_flag(-Wno-deprecated-register HAS_NO_DEPRECATED_REGISTER) ++if (HAS_NO_DEPRECATED_REGISTER) ++ set(_scanner_cpp_compiler_flags "${_scanner_cpp_compiler_flags} -Wno-deprecated-register") ++else() ++ check_cxx_compiler_flag(-Wno-deprecated HAS_NO_DEPRECATED) ++ if (HAS_NO_DEPRECATED) ++ set(_scanner_cpp_compiler_flags "${_scanner_cpp_compiler_flags} -Wno-deprecated") ++ endif() ++endif() ++set_source_files_properties(selection/scanner.cpp PROPERTIES COMPILE_FLAGS "${_scanner_cpp_compiler_flags}") ++ ++target_link_libraries(libgromacs ++ ${EXTRAE_LIBRARIES} ++ ${GMX_GPU_LIBRARIES} ++ ${GMX_EXTRA_LIBRARIES} ++ ${TNG_IO_LIBRARIES} ++ ${FFT_LIBRARIES} ${LINEAR_ALGEBRA_LIBRARIES} ++ ${XML_LIBRARIES} ++ ${THREAD_LIB} ${GMX_SHARED_LINKER_FLAGS}) ++set_target_properties(libgromacs PROPERTIES ++ OUTPUT_NAME "gromacs${GMX_LIBS_SUFFIX}" ++ SOVERSION ${LIBRARY_SOVERSION} ++ VERSION ${LIBRARY_VERSION} ++ COMPILE_FLAGS "${OpenMP_C_FLAGS}") ++ ++# Only install the library in mdrun-only mode if it is actually necessary ++# for the binary ++if (NOT GMX_BUILD_MDRUN_ONLY OR BUILD_SHARED_LIBS) ++ install(TARGETS libgromacs ++ LIBRARY DESTINATION ${LIB_INSTALL_DIR} ++ RUNTIME DESTINATION ${BIN_INSTALL_DIR} ++ ARCHIVE DESTINATION ${LIB_INSTALL_DIR} ++ COMPONENT libraries) ++endif() ++ ++if (NOT GMX_BUILD_MDRUN_ONLY) ++ configure_file(${CMAKE_CURRENT_SOURCE_DIR}/libgromacs.pc.cmakein ++ ${CMAKE_CURRENT_BINARY_DIR}/libgromacs.pc @ONLY) ++ install(FILES ${CMAKE_CURRENT_BINARY_DIR}/libgromacs.pc ++ DESTINATION ${LIB_INSTALL_DIR}/pkgconfig ++ RENAME "libgromacs${GMX_LIBS_SUFFIX}.pc" ++ COMPONENT development) ++endif() ++ ++if (INSTALL_CUDART_LIB) #can be set manual by user ++ if (GMX_GPU) ++ foreach(CUDA_LIB ${CUDA_LIBRARIES}) ++ string(REGEX MATCH "cudart" IS_CUDART ${CUDA_LIB}) ++ if(IS_CUDART) #libcuda should not be installed ++ #install also name-links (linker uses those) ++ file(GLOB CUDA_LIBS ${CUDA_LIB}*) ++ install(FILES ${CUDA_LIBS} DESTINATION ++ ${LIB_INSTALL_DIR} COMPONENT libraries) ++ endif() ++ endforeach() ++ else() ++ message(WARNING "INSTALL_CUDART_LIB only makes sense with GMX_GPU") ++ endif() ++endif() +diff --git a/src/gromacs/mdlib/force.c b/src/gromacs/mdlib/force.c +index 5230983..8227d5b 100644 +--- a/src/gromacs/mdlib/force.c ++++ b/src/gromacs/mdlib/force.c +@@ -67,6 +67,14 @@ + #include "gromacs/timing/wallcycle.h" + #include "gmx_fatal.h" + ++/* PLUMED */ ++#include "../../../Plumed.h" ++int plumedswitch=0; ++plumed plumedmain; ++void(*plumedcmd)(plumed,const char*,const void*)=NULL; ++/* END PLUMED */ ++ ++ + void ns(FILE *fp, + t_forcerec *fr, + matrix box, +@@ -737,6 +745,13 @@ void do_force_lowlevel(FILE *fplog, gmx_int64_t step, + pr_rvecs(debug, 0, "fshift after bondeds", fr->fshift, SHIFTS); + } + ++ /* PLUMED */ ++ if(plumedswitch){ ++ int plumedNeedsEnergy; ++ (*plumedcmd)(plumedmain,"isEnergyNeeded",&plumedNeedsEnergy); ++ if(!plumedNeedsEnergy) (*plumedcmd)(plumedmain,"performCalc",NULL); ++ } ++ /* END PLUMED */ + } + + void init_enerdata(int ngener, int n_lambda, gmx_enerdata_t *enerd) +diff --git a/src/gromacs/mdlib/force.c.preplumed b/src/gromacs/mdlib/force.c.preplumed +new file mode 100644 +index 0000000..5230983 +--- /dev/null ++++ b/src/gromacs/mdlib/force.c.preplumed +@@ -0,0 +1,1018 @@ ++/* ++ * This file is part of the GROMACS molecular simulation package. ++ * ++ * Copyright (c) 1991-2000, University of Groningen, The Netherlands. ++ * Copyright (c) 2001-2004, The GROMACS development team. ++ * Copyright (c) 2013,2014, by the GROMACS development team, led by ++ * Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl, ++ * and including many others, as listed in the AUTHORS file in the ++ * top-level source directory and at http://www.gromacs.org. ++ * ++ * GROMACS 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; either version 2.1 ++ * of the License, or (at your option) any later version. ++ * ++ * GROMACS 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 ++ * Lesser General Public License for more details. ++ * ++ * You should have received a copy of the GNU Lesser General Public ++ * License along with GROMACS; if not, see ++ * http://www.gnu.org/licenses, or write to the Free Software Foundation, ++ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. ++ * ++ * If you want to redistribute modifications to GROMACS, please ++ * consider that scientific software is very special. Version ++ * control is crucial - bugs must be traceable. We will be happy to ++ * consider code for inclusion in the official distribution, but ++ * derived work must not be called official GROMACS. Details are found ++ * in the README & COPYING files - if they are missing, get the ++ * official version at http://www.gromacs.org. ++ * ++ * To help us fund GROMACS development, we humbly ask that you cite ++ * the research papers on the package. Check out http://www.gromacs.org. ++ */ ++#ifdef HAVE_CONFIG_H ++#include ++#endif ++ ++#include ++#include ++#include ++#include "sysstuff.h" ++#include "typedefs.h" ++#include "macros.h" ++#include "gromacs/utility/smalloc.h" ++#include "macros.h" ++#include "physics.h" ++#include "force.h" ++#include "nonbonded.h" ++#include "names.h" ++#include "network.h" ++#include "pbc.h" ++#include "ns.h" ++#include "nrnb.h" ++#include "bondf.h" ++#include "mshift.h" ++#include "txtdump.h" ++#include "coulomb.h" ++#include "pme.h" ++#include "mdrun.h" ++#include "domdec.h" ++#include "qmmm.h" ++#include "gmx_omp_nthreads.h" ++ ++#include "gromacs/timing/wallcycle.h" ++#include "gmx_fatal.h" ++ ++void ns(FILE *fp, ++ t_forcerec *fr, ++ matrix box, ++ gmx_groups_t *groups, ++ gmx_localtop_t *top, ++ t_mdatoms *md, ++ t_commrec *cr, ++ t_nrnb *nrnb, ++ gmx_bool bFillGrid, ++ gmx_bool bDoLongRangeNS) ++{ ++ char *ptr; ++ int nsearch; ++ ++ ++ if (!fr->ns.nblist_initialized) ++ { ++ init_neighbor_list(fp, fr, md->homenr); ++ } ++ ++ if (fr->bTwinRange) ++ { ++ fr->nlr = 0; ++ } ++ ++ nsearch = search_neighbours(fp, fr, box, top, groups, cr, nrnb, md, ++ bFillGrid, bDoLongRangeNS); ++ if (debug) ++ { ++ fprintf(debug, "nsearch = %d\n", nsearch); ++ } ++ ++ /* Check whether we have to do dynamic load balancing */ ++ /*if ((nsb->nstDlb > 0) && (mod(step,nsb->nstDlb) == 0)) ++ count_nb(cr,nsb,&(top->blocks[ebCGS]),nns,fr->nlr, ++ &(top->idef),opts->ngener); ++ */ ++ if (fr->ns.dump_nl > 0) ++ { ++ dump_nblist(fp, cr, fr, fr->ns.dump_nl); ++ } ++} ++ ++static void reduce_thread_forces(int n, rvec *f, ++ tensor vir_q, tensor vir_lj, ++ real *Vcorr_q, real *Vcorr_lj, ++ real *dvdl_q, real *dvdl_lj, ++ int nthreads, f_thread_t *f_t) ++{ ++ int t, i; ++ int nthreads_loop gmx_unused; ++ ++ /* This reduction can run over any number of threads */ ++ nthreads_loop = gmx_omp_nthreads_get(emntBonded); ++#pragma omp parallel for num_threads(nthreads_loop) private(t) schedule(static) ++ for (i = 0; i < n; i++) ++ { ++ for (t = 1; t < nthreads; t++) ++ { ++ rvec_inc(f[i], f_t[t].f[i]); ++ } ++ } ++ for (t = 1; t < nthreads; t++) ++ { ++ *Vcorr_q += f_t[t].Vcorr_q; ++ *Vcorr_lj += f_t[t].Vcorr_lj; ++ *dvdl_q += f_t[t].dvdl[efptCOUL]; ++ *dvdl_lj += f_t[t].dvdl[efptVDW]; ++ m_add(vir_q, f_t[t].vir_q, vir_q); ++ m_add(vir_lj, f_t[t].vir_lj, vir_lj); ++ } ++} ++ ++void gmx_print_sepdvdl(FILE *fplog, const char *s, real v, real dvdlambda) ++{ ++ fprintf(fplog, " %-30s V %12.5e dVdl %12.5e\n", s, v, dvdlambda); ++} ++ ++void do_force_lowlevel(FILE *fplog, gmx_int64_t step, ++ t_forcerec *fr, t_inputrec *ir, ++ t_idef *idef, t_commrec *cr, ++ t_nrnb *nrnb, gmx_wallcycle_t wcycle, ++ t_mdatoms *md, ++ rvec x[], history_t *hist, ++ rvec f[], ++ rvec f_longrange[], ++ gmx_enerdata_t *enerd, ++ t_fcdata *fcd, ++ gmx_localtop_t *top, ++ gmx_genborn_t *born, ++ t_atomtypes *atype, ++ gmx_bool bBornRadii, ++ matrix box, ++ t_lambda *fepvals, ++ real *lambda, ++ t_graph *graph, ++ t_blocka *excl, ++ rvec mu_tot[], ++ int flags, ++ float *cycles_pme) ++{ ++ int i, j; ++ int donb_flags; ++ gmx_bool bDoEpot, bSepDVDL, bSB; ++ int pme_flags; ++ matrix boxs; ++ rvec box_size; ++ t_pbc pbc; ++ char buf[22]; ++ double clam_i, vlam_i; ++ real dvdl_dum[efptNR], dvdl_nb[efptNR], lam_i[efptNR]; ++ real dvdl_q, dvdl_lj; ++ ++#ifdef GMX_MPI ++ double t0 = 0.0, t1, t2, t3; /* time measurement for coarse load balancing */ ++#endif ++ ++#define PRINT_SEPDVDL(s, v, dvdlambda) if (bSepDVDL) { gmx_print_sepdvdl(fplog, s, v, dvdlambda); } ++ ++ set_pbc(&pbc, fr->ePBC, box); ++ ++ /* reset free energy components */ ++ for (i = 0; i < efptNR; i++) ++ { ++ dvdl_nb[i] = 0; ++ dvdl_dum[i] = 0; ++ } ++ ++ /* Reset box */ ++ for (i = 0; (i < DIM); i++) ++ { ++ box_size[i] = box[i][i]; ++ } ++ ++ bSepDVDL = (fr->bSepDVDL && do_per_step(step, ir->nstlog)); ++ debug_gmx(); ++ ++ /* do QMMM first if requested */ ++ if (fr->bQMMM) ++ { ++ enerd->term[F_EQM] = calculate_QMMM(cr, x, f, fr); ++ } ++ ++ if (bSepDVDL) ++ { ++ fprintf(fplog, "Step %s: non-bonded V and dVdl for rank %d:\n", ++ gmx_step_str(step, buf), cr->nodeid); ++ } ++ ++ /* Call the short range functions all in one go. */ ++ ++#ifdef GMX_MPI ++ /*#define TAKETIME ((cr->npmenodes) && (fr->timesteps < 12))*/ ++#define TAKETIME FALSE ++ if (TAKETIME) ++ { ++ MPI_Barrier(cr->mpi_comm_mygroup); ++ t0 = MPI_Wtime(); ++ } ++#endif ++ ++ if (ir->nwall) ++ { ++ /* foreign lambda component for walls */ ++ real dvdl_walls = do_walls(ir, fr, box, md, x, f, lambda[efptVDW], ++ enerd->grpp.ener[egLJSR], nrnb); ++ PRINT_SEPDVDL("Walls", 0.0, dvdl_walls); ++ enerd->dvdl_lin[efptVDW] += dvdl_walls; ++ } ++ ++ /* If doing GB, reset dvda and calculate the Born radii */ ++ if (ir->implicit_solvent) ++ { ++ wallcycle_sub_start(wcycle, ewcsNONBONDED); ++ ++ for (i = 0; i < born->nr; i++) ++ { ++ fr->dvda[i] = 0; ++ } ++ ++ if (bBornRadii) ++ { ++ calc_gb_rad(cr, fr, ir, top, x, &(fr->gblist), born, md, nrnb); ++ } ++ ++ wallcycle_sub_stop(wcycle, ewcsNONBONDED); ++ } ++ ++ where(); ++ /* We only do non-bonded calculation with group scheme here, the verlet ++ * calls are done from do_force_cutsVERLET(). */ ++ if (fr->cutoff_scheme == ecutsGROUP && (flags & GMX_FORCE_NONBONDED)) ++ { ++ donb_flags = 0; ++ /* Add short-range interactions */ ++ donb_flags |= GMX_NONBONDED_DO_SR; ++ ++ /* Currently all group scheme kernels always calculate (shift-)forces */ ++ if (flags & GMX_FORCE_FORCES) ++ { ++ donb_flags |= GMX_NONBONDED_DO_FORCE; ++ } ++ if (flags & GMX_FORCE_VIRIAL) ++ { ++ donb_flags |= GMX_NONBONDED_DO_SHIFTFORCE; ++ } ++ if (flags & GMX_FORCE_ENERGY) ++ { ++ donb_flags |= GMX_NONBONDED_DO_POTENTIAL; ++ } ++ if (flags & GMX_FORCE_DO_LR) ++ { ++ donb_flags |= GMX_NONBONDED_DO_LR; ++ } ++ ++ wallcycle_sub_start(wcycle, ewcsNONBONDED); ++ do_nonbonded(fr, x, f, f_longrange, md, excl, ++ &enerd->grpp, nrnb, ++ lambda, dvdl_nb, -1, -1, donb_flags); ++ ++ /* If we do foreign lambda and we have soft-core interactions ++ * we have to recalculate the (non-linear) energies contributions. ++ */ ++ if (fepvals->n_lambda > 0 && (flags & GMX_FORCE_DHDL) && fepvals->sc_alpha != 0) ++ { ++ for (i = 0; i < enerd->n_lambda; i++) ++ { ++ for (j = 0; j < efptNR; j++) ++ { ++ lam_i[j] = (i == 0 ? lambda[j] : fepvals->all_lambda[j][i-1]); ++ } ++ reset_foreign_enerdata(enerd); ++ do_nonbonded(fr, x, f, f_longrange, md, excl, ++ &(enerd->foreign_grpp), nrnb, ++ lam_i, dvdl_dum, -1, -1, ++ (donb_flags & ~GMX_NONBONDED_DO_FORCE) | GMX_NONBONDED_DO_FOREIGNLAMBDA); ++ sum_epot(&(enerd->foreign_grpp), enerd->foreign_term); ++ enerd->enerpart_lambda[i] += enerd->foreign_term[F_EPOT]; ++ } ++ } ++ wallcycle_sub_stop(wcycle, ewcsNONBONDED); ++ where(); ++ } ++ ++ /* If we are doing GB, calculate bonded forces and apply corrections ++ * to the solvation forces */ ++ /* MRS: Eventually, many need to include free energy contribution here! */ ++ if (ir->implicit_solvent) ++ { ++ wallcycle_sub_start(wcycle, ewcsBONDED); ++ calc_gb_forces(cr, md, born, top, x, f, fr, idef, ++ ir->gb_algorithm, ir->sa_algorithm, nrnb, &pbc, graph, enerd); ++ wallcycle_sub_stop(wcycle, ewcsBONDED); ++ } ++ ++#ifdef GMX_MPI ++ if (TAKETIME) ++ { ++ t1 = MPI_Wtime(); ++ fr->t_fnbf += t1-t0; ++ } ++#endif ++ ++ if (fepvals->sc_alpha != 0) ++ { ++ enerd->dvdl_nonlin[efptVDW] += dvdl_nb[efptVDW]; ++ } ++ else ++ { ++ enerd->dvdl_lin[efptVDW] += dvdl_nb[efptVDW]; ++ } ++ ++ if (fepvals->sc_alpha != 0) ++ ++ /* even though coulomb part is linear, we already added it, beacuse we ++ need to go through the vdw calculation anyway */ ++ { ++ enerd->dvdl_nonlin[efptCOUL] += dvdl_nb[efptCOUL]; ++ } ++ else ++ { ++ enerd->dvdl_lin[efptCOUL] += dvdl_nb[efptCOUL]; ++ } ++ ++ if (bSepDVDL) ++ { ++ real V_short_range = 0; ++ real dvdl_short_range = 0; ++ ++ for (i = 0; i < enerd->grpp.nener; i++) ++ { ++ V_short_range += ++ (fr->bBHAM ? ++ enerd->grpp.ener[egBHAMSR][i] : ++ enerd->grpp.ener[egLJSR][i]) ++ + enerd->grpp.ener[egCOULSR][i] + enerd->grpp.ener[egGB][i]; ++ } ++ dvdl_short_range = dvdl_nb[efptVDW] + dvdl_nb[efptCOUL]; ++ PRINT_SEPDVDL("VdW and Coulomb SR particle-p.", ++ V_short_range, ++ dvdl_short_range); ++ } ++ debug_gmx(); ++ ++ ++ if (debug) ++ { ++ pr_rvecs(debug, 0, "fshift after SR", fr->fshift, SHIFTS); ++ } ++ ++ /* Shift the coordinates. Must be done before bonded forces and PPPM, ++ * but is also necessary for SHAKE and update, therefore it can NOT ++ * go when no bonded forces have to be evaluated. ++ */ ++ ++ /* Here sometimes we would not need to shift with NBFonly, ++ * but we do so anyhow for consistency of the returned coordinates. ++ */ ++ if (graph) ++ { ++ shift_self(graph, box, x); ++ if (TRICLINIC(box)) ++ { ++ inc_nrnb(nrnb, eNR_SHIFTX, 2*graph->nnodes); ++ } ++ else ++ { ++ inc_nrnb(nrnb, eNR_SHIFTX, graph->nnodes); ++ } ++ } ++ /* Check whether we need to do bondeds or correct for exclusions */ ++ if (fr->bMolPBC && ++ ((flags & GMX_FORCE_BONDED) ++ || EEL_RF(fr->eeltype) || EEL_FULL(fr->eeltype) || EVDW_PME(fr->vdwtype))) ++ { ++ /* Since all atoms are in the rectangular or triclinic unit-cell, ++ * only single box vector shifts (2 in x) are required. ++ */ ++ set_pbc_dd(&pbc, fr->ePBC, cr->dd, TRUE, box); ++ } ++ debug_gmx(); ++ ++ if (flags & GMX_FORCE_BONDED) ++ { ++ wallcycle_sub_start(wcycle, ewcsBONDED); ++ calc_bonds(fplog, cr->ms, ++ idef, x, hist, f, fr, &pbc, graph, enerd, nrnb, lambda, md, fcd, ++ DOMAINDECOMP(cr) ? cr->dd->gatindex : NULL, atype, born, ++ flags, ++ fr->bSepDVDL && do_per_step(step, ir->nstlog), step); ++ ++ /* Check if we have to determine energy differences ++ * at foreign lambda's. ++ */ ++ if (fepvals->n_lambda > 0 && (flags & GMX_FORCE_DHDL) && ++ idef->ilsort != ilsortNO_FE) ++ { ++ if (idef->ilsort != ilsortFE_SORTED) ++ { ++ gmx_incons("The bonded interactions are not sorted for free energy"); ++ } ++ for (i = 0; i < enerd->n_lambda; i++) ++ { ++ reset_foreign_enerdata(enerd); ++ for (j = 0; j < efptNR; j++) ++ { ++ lam_i[j] = (i == 0 ? lambda[j] : fepvals->all_lambda[j][i-1]); ++ } ++ calc_bonds_lambda(fplog, idef, x, fr, &pbc, graph, &(enerd->foreign_grpp), enerd->foreign_term, nrnb, lam_i, md, ++ fcd, DOMAINDECOMP(cr) ? cr->dd->gatindex : NULL); ++ sum_epot(&(enerd->foreign_grpp), enerd->foreign_term); ++ enerd->enerpart_lambda[i] += enerd->foreign_term[F_EPOT]; ++ } ++ } ++ debug_gmx(); ++ ++ wallcycle_sub_stop(wcycle, ewcsBONDED); ++ } ++ ++ where(); ++ ++ *cycles_pme = 0; ++ if (EEL_FULL(fr->eeltype) || EVDW_PME(fr->vdwtype)) ++ { ++ real Vlr = 0, Vcorr = 0; ++ real dvdl_long_range = 0; ++ int status = 0; ++ ++ bSB = (ir->nwall == 2); ++ if (bSB) ++ { ++ copy_mat(box, boxs); ++ svmul(ir->wall_ewald_zfac, boxs[ZZ], boxs[ZZ]); ++ box_size[ZZ] *= ir->wall_ewald_zfac; ++ } ++ } ++ ++ /* Do long-range electrostatics and/or LJ-PME, including related short-range ++ * corrections. ++ */ ++ ++ clear_mat(fr->vir_el_recip); ++ clear_mat(fr->vir_lj_recip); ++ ++ if (EEL_FULL(fr->eeltype) || EVDW_PME(fr->vdwtype)) ++ { ++ real Vlr_q = 0, Vlr_lj = 0, Vcorr_q = 0, Vcorr_lj = 0; ++ real dvdl_long_range_q = 0, dvdl_long_range_lj = 0; ++ int status = 0; ++ ++ if (EEL_PME_EWALD(fr->eeltype) || EVDW_PME(fr->vdwtype)) ++ { ++ real dvdl_long_range_correction_q = 0; ++ real dvdl_long_range_correction_lj = 0; ++ /* With the Verlet scheme exclusion forces are calculated ++ * in the non-bonded kernel. ++ */ ++ /* The TPI molecule does not have exclusions with the rest ++ * of the system and no intra-molecular PME grid ++ * contributions will be calculated in ++ * gmx_pme_calc_energy. ++ */ ++ if ((ir->cutoff_scheme == ecutsGROUP && fr->n_tpi == 0) || ++ ir->ewald_geometry != eewg3D || ++ ir->epsilon_surface != 0) ++ { ++ int nthreads, t; ++ ++ wallcycle_sub_start(wcycle, ewcsEWALD_CORRECTION); ++ ++ if (fr->n_tpi > 0) ++ { ++ gmx_fatal(FARGS, "TPI with PME currently only works in a 3D geometry with tin-foil boundary conditions"); ++ } ++ ++ nthreads = gmx_omp_nthreads_get(emntBonded); ++#pragma omp parallel for num_threads(nthreads) schedule(static) ++ for (t = 0; t < nthreads; t++) ++ { ++ int s, e, i; ++ rvec *fnv; ++ tensor *vir_q, *vir_lj; ++ real *Vcorrt_q, *Vcorrt_lj, *dvdlt_q, *dvdlt_lj; ++ if (t == 0) ++ { ++ fnv = fr->f_novirsum; ++ vir_q = &fr->vir_el_recip; ++ vir_lj = &fr->vir_lj_recip; ++ Vcorrt_q = &Vcorr_q; ++ Vcorrt_lj = &Vcorr_lj; ++ dvdlt_q = &dvdl_long_range_correction_q; ++ dvdlt_lj = &dvdl_long_range_correction_lj; ++ } ++ else ++ { ++ fnv = fr->f_t[t].f; ++ vir_q = &fr->f_t[t].vir_q; ++ vir_lj = &fr->f_t[t].vir_lj; ++ Vcorrt_q = &fr->f_t[t].Vcorr_q; ++ Vcorrt_lj = &fr->f_t[t].Vcorr_lj; ++ dvdlt_q = &fr->f_t[t].dvdl[efptCOUL]; ++ dvdlt_lj = &fr->f_t[t].dvdl[efptVDW]; ++ for (i = 0; i < fr->natoms_force; i++) ++ { ++ clear_rvec(fnv[i]); ++ } ++ clear_mat(*vir_q); ++ clear_mat(*vir_lj); ++ } ++ *dvdlt_q = 0; ++ *dvdlt_lj = 0; ++ ++ ewald_LRcorrection(fr->excl_load[t], fr->excl_load[t+1], ++ cr, t, fr, ++ md->chargeA, md->chargeB, ++ md->sqrt_c6A, md->sqrt_c6B, ++ md->sigmaA, md->sigmaB, ++ md->sigma3A, md->sigma3B, ++ md->nChargePerturbed || md->nTypePerturbed, ++ ir->cutoff_scheme != ecutsVERLET, ++ excl, x, bSB ? boxs : box, mu_tot, ++ ir->ewald_geometry, ++ ir->epsilon_surface, ++ fnv, *vir_q, *vir_lj, ++ Vcorrt_q, Vcorrt_lj, ++ lambda[efptCOUL], lambda[efptVDW], ++ dvdlt_q, dvdlt_lj); ++ } ++ if (nthreads > 1) ++ { ++ reduce_thread_forces(fr->natoms_force, fr->f_novirsum, ++ fr->vir_el_recip, fr->vir_lj_recip, ++ &Vcorr_q, &Vcorr_lj, ++ &dvdl_long_range_correction_q, ++ &dvdl_long_range_correction_lj, ++ nthreads, fr->f_t); ++ } ++ wallcycle_sub_stop(wcycle, ewcsEWALD_CORRECTION); ++ } ++ ++ if (EEL_PME_EWALD(fr->eeltype) && fr->n_tpi == 0) ++ { ++ Vcorr_q += ewald_charge_correction(cr, fr, lambda[efptCOUL], box, ++ &dvdl_long_range_correction_q, ++ fr->vir_el_recip); ++ } ++ ++ PRINT_SEPDVDL("Ewald excl./charge/dip. corr.", Vcorr_q, dvdl_long_range_correction_q); ++ PRINT_SEPDVDL("Ewald excl. corr. LJ", Vcorr_lj, dvdl_long_range_correction_lj); ++ enerd->dvdl_lin[efptCOUL] += dvdl_long_range_correction_q; ++ enerd->dvdl_lin[efptVDW] += dvdl_long_range_correction_lj; ++ } ++ ++ if ((EEL_PME(fr->eeltype) || EVDW_PME(fr->vdwtype))) ++ { ++ if (cr->duty & DUTY_PME) ++ { ++ /* Do reciprocal PME for Coulomb and/or LJ. */ ++ assert(fr->n_tpi >= 0); ++ if (fr->n_tpi == 0 || (flags & GMX_FORCE_STATECHANGED)) ++ { ++ pme_flags = GMX_PME_SPREAD | GMX_PME_SOLVE; ++ if (EEL_PME(fr->eeltype)) ++ { ++ pme_flags |= GMX_PME_DO_COULOMB; ++ } ++ if (EVDW_PME(fr->vdwtype)) ++ { ++ pme_flags |= GMX_PME_DO_LJ; ++ } ++ if (flags & GMX_FORCE_FORCES) ++ { ++ pme_flags |= GMX_PME_CALC_F; ++ } ++ if (flags & GMX_FORCE_VIRIAL) ++ { ++ pme_flags |= GMX_PME_CALC_ENER_VIR; ++ } ++ if (fr->n_tpi > 0) ++ { ++ /* We don't calculate f, but we do want the potential */ ++ pme_flags |= GMX_PME_CALC_POT; ++ } ++ wallcycle_start(wcycle, ewcPMEMESH); ++ status = gmx_pme_do(fr->pmedata, ++ 0, md->homenr - fr->n_tpi, ++ x, fr->f_novirsum, ++ md->chargeA, md->chargeB, ++ md->sqrt_c6A, md->sqrt_c6B, ++ md->sigmaA, md->sigmaB, ++ bSB ? boxs : box, cr, ++ DOMAINDECOMP(cr) ? dd_pme_maxshift_x(cr->dd) : 0, ++ DOMAINDECOMP(cr) ? dd_pme_maxshift_y(cr->dd) : 0, ++ nrnb, wcycle, ++ fr->vir_el_recip, fr->ewaldcoeff_q, ++ fr->vir_lj_recip, fr->ewaldcoeff_lj, ++ &Vlr_q, &Vlr_lj, ++ lambda[efptCOUL], lambda[efptVDW], ++ &dvdl_long_range_q, &dvdl_long_range_lj, pme_flags); ++ *cycles_pme = wallcycle_stop(wcycle, ewcPMEMESH); ++ if (status != 0) ++ { ++ gmx_fatal(FARGS, "Error %d in reciprocal PME routine", status); ++ } ++ /* We should try to do as little computation after ++ * this as possible, because parallel PME synchronizes ++ * the nodes, so we want all load imbalance of the ++ * rest of the force calculation to be before the PME ++ * call. DD load balancing is done on the whole time ++ * of the force call (without PME). ++ */ ++ } ++ if (fr->n_tpi > 0) ++ { ++ if (EVDW_PME(ir->vdwtype)) ++ { ++ ++ gmx_fatal(FARGS, "Test particle insertion not implemented with LJ-PME"); ++ } ++ /* Determine the PME grid energy of the test molecule ++ * with the PME grid potential of the other charges. ++ */ ++ gmx_pme_calc_energy(fr->pmedata, fr->n_tpi, ++ x + md->homenr - fr->n_tpi, ++ md->chargeA + md->homenr - fr->n_tpi, ++ &Vlr_q); ++ } ++ PRINT_SEPDVDL("PME mesh", Vlr_q + Vlr_lj, dvdl_long_range_q+dvdl_long_range_lj); ++ } ++ } ++ ++ if (!EEL_PME(fr->eeltype) && EEL_PME_EWALD(fr->eeltype)) ++ { ++ Vlr_q = do_ewald(ir, x, fr->f_novirsum, ++ md->chargeA, md->chargeB, ++ box_size, cr, md->homenr, ++ fr->vir_el_recip, fr->ewaldcoeff_q, ++ lambda[efptCOUL], &dvdl_long_range_q, fr->ewald_table); ++ PRINT_SEPDVDL("Ewald long-range", Vlr_q, dvdl_long_range_q); ++ } ++ ++ /* Note that with separate PME nodes we get the real energies later */ ++ enerd->dvdl_lin[efptCOUL] += dvdl_long_range_q; ++ enerd->dvdl_lin[efptVDW] += dvdl_long_range_lj; ++ enerd->term[F_COUL_RECIP] = Vlr_q + Vcorr_q; ++ enerd->term[F_LJ_RECIP] = Vlr_lj + Vcorr_lj; ++ if (debug) ++ { ++ fprintf(debug, "Vlr_q = %g, Vcorr_q = %g, Vlr_corr_q = %g\n", ++ Vlr_q, Vcorr_q, enerd->term[F_COUL_RECIP]); ++ pr_rvecs(debug, 0, "vir_el_recip after corr", fr->vir_el_recip, DIM); ++ pr_rvecs(debug, 0, "fshift after LR Corrections", fr->fshift, SHIFTS); ++ fprintf(debug, "Vlr_lj: %g, Vcorr_lj = %g, Vlr_corr_lj = %g\n", ++ Vlr_lj, Vcorr_lj, enerd->term[F_LJ_RECIP]); ++ pr_rvecs(debug, 0, "vir_lj_recip after corr", fr->vir_lj_recip, DIM); ++ } ++ } ++ else ++ { ++ /* Is there a reaction-field exclusion correction needed? */ ++ if (EEL_RF(fr->eeltype) && eelRF_NEC != fr->eeltype) ++ { ++ /* With the Verlet scheme, exclusion forces are calculated ++ * in the non-bonded kernel. ++ */ ++ if (ir->cutoff_scheme != ecutsVERLET) ++ { ++ real dvdl_rf_excl = 0; ++ enerd->term[F_RF_EXCL] = ++ RF_excl_correction(fr, graph, md, excl, x, f, ++ fr->fshift, &pbc, lambda[efptCOUL], &dvdl_rf_excl); ++ ++ enerd->dvdl_lin[efptCOUL] += dvdl_rf_excl; ++ PRINT_SEPDVDL("RF exclusion correction", ++ enerd->term[F_RF_EXCL], dvdl_rf_excl); ++ } ++ } ++ } ++ where(); ++ debug_gmx(); ++ ++ if (debug) ++ { ++ print_nrnb(debug, nrnb); ++ } ++ debug_gmx(); ++ ++#ifdef GMX_MPI ++ if (TAKETIME) ++ { ++ t2 = MPI_Wtime(); ++ MPI_Barrier(cr->mpi_comm_mygroup); ++ t3 = MPI_Wtime(); ++ fr->t_wait += t3-t2; ++ if (fr->timesteps == 11) ++ { ++ fprintf(stderr, "* PP load balancing info: rank %d, step %s, rel wait time=%3.0f%% , load string value: %7.2f\n", ++ cr->nodeid, gmx_step_str(fr->timesteps, buf), ++ 100*fr->t_wait/(fr->t_wait+fr->t_fnbf), ++ (fr->t_fnbf+fr->t_wait)/fr->t_fnbf); ++ } ++ fr->timesteps++; ++ } ++#endif ++ ++ if (debug) ++ { ++ pr_rvecs(debug, 0, "fshift after bondeds", fr->fshift, SHIFTS); ++ } ++ ++} ++ ++void init_enerdata(int ngener, int n_lambda, gmx_enerdata_t *enerd) ++{ ++ int i, n2; ++ ++ for (i = 0; i < F_NRE; i++) ++ { ++ enerd->term[i] = 0; ++ enerd->foreign_term[i] = 0; ++ } ++ ++ ++ for (i = 0; i < efptNR; i++) ++ { ++ enerd->dvdl_lin[i] = 0; ++ enerd->dvdl_nonlin[i] = 0; ++ } ++ ++ n2 = ngener*ngener; ++ if (debug) ++ { ++ fprintf(debug, "Creating %d sized group matrix for energies\n", n2); ++ } ++ enerd->grpp.nener = n2; ++ enerd->foreign_grpp.nener = n2; ++ for (i = 0; (i < egNR); i++) ++ { ++ snew(enerd->grpp.ener[i], n2); ++ snew(enerd->foreign_grpp.ener[i], n2); ++ } ++ ++ if (n_lambda) ++ { ++ enerd->n_lambda = 1 + n_lambda; ++ snew(enerd->enerpart_lambda, enerd->n_lambda); ++ } ++ else ++ { ++ enerd->n_lambda = 0; ++ } ++} ++ ++void destroy_enerdata(gmx_enerdata_t *enerd) ++{ ++ int i; ++ ++ for (i = 0; (i < egNR); i++) ++ { ++ sfree(enerd->grpp.ener[i]); ++ } ++ ++ for (i = 0; (i < egNR); i++) ++ { ++ sfree(enerd->foreign_grpp.ener[i]); ++ } ++ ++ if (enerd->n_lambda) ++ { ++ sfree(enerd->enerpart_lambda); ++ } ++} ++ ++static real sum_v(int n, real v[]) ++{ ++ real t; ++ int i; ++ ++ t = 0.0; ++ for (i = 0; (i < n); i++) ++ { ++ t = t + v[i]; ++ } ++ ++ return t; ++} ++ ++void sum_epot(gmx_grppairener_t *grpp, real *epot) ++{ ++ int i; ++ ++ /* Accumulate energies */ ++ epot[F_COUL_SR] = sum_v(grpp->nener, grpp->ener[egCOULSR]); ++ epot[F_LJ] = sum_v(grpp->nener, grpp->ener[egLJSR]); ++ epot[F_LJ14] = sum_v(grpp->nener, grpp->ener[egLJ14]); ++ epot[F_COUL14] = sum_v(grpp->nener, grpp->ener[egCOUL14]); ++ epot[F_COUL_LR] = sum_v(grpp->nener, grpp->ener[egCOULLR]); ++ epot[F_LJ_LR] = sum_v(grpp->nener, grpp->ener[egLJLR]); ++ /* We have already added 1-2,1-3, and 1-4 terms to F_GBPOL */ ++ epot[F_GBPOL] += sum_v(grpp->nener, grpp->ener[egGB]); ++ ++/* lattice part of LR doesnt belong to any group ++ * and has been added earlier ++ */ ++ epot[F_BHAM] = sum_v(grpp->nener, grpp->ener[egBHAMSR]); ++ epot[F_BHAM_LR] = sum_v(grpp->nener, grpp->ener[egBHAMLR]); ++ ++ epot[F_EPOT] = 0; ++ for (i = 0; (i < F_EPOT); i++) ++ { ++ if (i != F_DISRESVIOL && i != F_ORIRESDEV) ++ { ++ epot[F_EPOT] += epot[i]; ++ } ++ } ++} ++ ++void sum_dhdl(gmx_enerdata_t *enerd, real *lambda, t_lambda *fepvals) ++{ ++ int i, j, index; ++ double dlam; ++ ++ enerd->dvdl_lin[efptVDW] += enerd->term[F_DVDL_VDW]; /* include dispersion correction */ ++ enerd->term[F_DVDL] = 0.0; ++ for (i = 0; i < efptNR; i++) ++ { ++ if (fepvals->separate_dvdl[i]) ++ { ++ /* could this be done more readably/compactly? */ ++ switch (i) ++ { ++ case (efptMASS): ++ index = F_DKDL; ++ break; ++ case (efptCOUL): ++ index = F_DVDL_COUL; ++ break; ++ case (efptVDW): ++ index = F_DVDL_VDW; ++ break; ++ case (efptBONDED): ++ index = F_DVDL_BONDED; ++ break; ++ case (efptRESTRAINT): ++ index = F_DVDL_RESTRAINT; ++ break; ++ default: ++ index = F_DVDL; ++ break; ++ } ++ enerd->term[index] = enerd->dvdl_lin[i] + enerd->dvdl_nonlin[i]; ++ if (debug) ++ { ++ fprintf(debug, "dvdl-%s[%2d]: %f: non-linear %f + linear %f\n", ++ efpt_names[i], i, enerd->term[index], enerd->dvdl_nonlin[i], enerd->dvdl_lin[i]); ++ } ++ } ++ else ++ { ++ enerd->term[F_DVDL] += enerd->dvdl_lin[i] + enerd->dvdl_nonlin[i]; ++ if (debug) ++ { ++ fprintf(debug, "dvd-%sl[%2d]: %f: non-linear %f + linear %f\n", ++ efpt_names[0], i, enerd->term[F_DVDL], enerd->dvdl_nonlin[i], enerd->dvdl_lin[i]); ++ } ++ } ++ } ++ ++ /* Notes on the foreign lambda free energy difference evaluation: ++ * Adding the potential and ekin terms that depend linearly on lambda ++ * as delta lam * dvdl to the energy differences is exact. ++ * For the constraints this is not exact, but we have no other option ++ * without literally changing the lengths and reevaluating the energies at each step. ++ * (try to remedy this post 4.6 - MRS) ++ * For the non-bonded LR term we assume that the soft-core (if present) ++ * no longer affects the energy beyond the short-range cut-off, ++ * which is a very good approximation (except for exotic settings). ++ * (investigate how to overcome this post 4.6 - MRS) ++ */ ++ if (fepvals->separate_dvdl[efptBONDED]) ++ { ++ enerd->term[F_DVDL_BONDED] += enerd->term[F_DVDL_CONSTR]; ++ } ++ else ++ { ++ enerd->term[F_DVDL] += enerd->term[F_DVDL_CONSTR]; ++ } ++ enerd->term[F_DVDL_CONSTR] = 0; ++ ++ for (i = 0; i < fepvals->n_lambda; i++) ++ { ++ /* note we are iterating over fepvals here! ++ For the current lam, dlam = 0 automatically, ++ so we don't need to add anything to the ++ enerd->enerpart_lambda[0] */ ++ ++ /* we don't need to worry about dvdl_lin contributions to dE at ++ current lambda, because the contributions to the current ++ lambda are automatically zeroed */ ++ ++ for (j = 0; j < efptNR; j++) ++ { ++ /* Note that this loop is over all dhdl components, not just the separated ones */ ++ dlam = (fepvals->all_lambda[j][i]-lambda[j]); ++ enerd->enerpart_lambda[i+1] += dlam*enerd->dvdl_lin[j]; ++ if (debug) ++ { ++ fprintf(debug, "enerdiff lam %g: (%15s), non-linear %f linear %f*%f\n", ++ fepvals->all_lambda[j][i], efpt_names[j], ++ (enerd->enerpart_lambda[i+1] - enerd->enerpart_lambda[0]), ++ dlam, enerd->dvdl_lin[j]); ++ } ++ } ++ } ++} ++ ++ ++void reset_foreign_enerdata(gmx_enerdata_t *enerd) ++{ ++ int i, j; ++ ++ /* First reset all foreign energy components. Foreign energies always called on ++ neighbor search steps */ ++ for (i = 0; (i < egNR); i++) ++ { ++ for (j = 0; (j < enerd->grpp.nener); j++) ++ { ++ enerd->foreign_grpp.ener[i][j] = 0.0; ++ } ++ } ++ ++ /* potential energy components */ ++ for (i = 0; (i <= F_EPOT); i++) ++ { ++ enerd->foreign_term[i] = 0.0; ++ } ++} ++ ++void reset_enerdata(t_forcerec *fr, gmx_bool bNS, ++ gmx_enerdata_t *enerd, ++ gmx_bool bMaster) ++{ ++ gmx_bool bKeepLR; ++ int i, j; ++ ++ /* First reset all energy components, except for the long range terms ++ * on the master at non neighbor search steps, since the long range ++ * terms have already been summed at the last neighbor search step. ++ */ ++ bKeepLR = (fr->bTwinRange && !bNS); ++ for (i = 0; (i < egNR); i++) ++ { ++ if (!(bKeepLR && bMaster && (i == egCOULLR || i == egLJLR))) ++ { ++ for (j = 0; (j < enerd->grpp.nener); j++) ++ { ++ enerd->grpp.ener[i][j] = 0.0; ++ } ++ } ++ } ++ for (i = 0; i < efptNR; i++) ++ { ++ enerd->dvdl_lin[i] = 0.0; ++ enerd->dvdl_nonlin[i] = 0.0; ++ } ++ ++ /* Normal potential energy components */ ++ for (i = 0; (i <= F_EPOT); i++) ++ { ++ enerd->term[i] = 0.0; ++ } ++ /* Initialize the dVdlambda term with the long range contribution */ ++ /* Initialize the dvdl term with the long range contribution */ ++ enerd->term[F_DVDL] = 0.0; ++ enerd->term[F_DVDL_COUL] = 0.0; ++ enerd->term[F_DVDL_VDW] = 0.0; ++ enerd->term[F_DVDL_BONDED] = 0.0; ++ enerd->term[F_DVDL_RESTRAINT] = 0.0; ++ enerd->term[F_DKDL] = 0.0; ++ if (enerd->n_lambda > 0) ++ { ++ for (i = 0; i < enerd->n_lambda; i++) ++ { ++ enerd->enerpart_lambda[i] = 0.0; ++ } ++ } ++ /* reset foreign energy data - separate function since we also call it elsewhere */ ++ reset_foreign_enerdata(enerd); ++} +diff --git a/src/gromacs/mdlib/minimize.c b/src/gromacs/mdlib/minimize.c +index 69008f5..5114fa0 100644 +--- a/src/gromacs/mdlib/minimize.c ++++ b/src/gromacs/mdlib/minimize.c +@@ -80,6 +80,13 @@ + #include "gromacs/timing/walltime_accounting.h" + #include "gromacs/imd/imd.h" + ++/* PLUMED */ ++#include "../../../Plumed.h" ++extern int plumedswitch; ++extern plumed plumedmain; ++extern void(*plumedcmd)(plumed,const char*,const void*); ++/* END PLUMED */ ++ + typedef struct { + t_state s; + rvec *f; +@@ -442,6 +449,43 @@ void init_em(FILE *fplog, const char *title, + + clear_rvec(mu_tot); + calc_shifts(ems->s.box, fr->shift_vec); ++ ++ /* PLUMED */ ++ if(plumedswitch){ ++ if(cr->ms && cr->ms->nsim>1) { ++ if(MASTER(cr)) (*plumedcmd) (plumedmain,"GREX setMPIIntercomm",&cr->ms->mpi_comm_masters); ++ if(PAR(cr)){ ++ if(DOMAINDECOMP(cr)) { ++ (*plumedcmd) (plumedmain,"GREX setMPIIntracomm",&cr->dd->mpi_comm_all); ++ }else{ ++ (*plumedcmd) (plumedmain,"GREX setMPIIntracomm",&cr->mpi_comm_mysim); ++ } ++ } ++ (*plumedcmd) (plumedmain,"GREX init",NULL); ++ } ++ if(PAR(cr)){ ++ if(DOMAINDECOMP(cr)) { ++ (*plumedcmd) (plumedmain,"setMPIComm",&cr->dd->mpi_comm_all); ++ }else{ ++ (*plumedcmd) (plumedmain,"setMPIComm",&cr->mpi_comm_mysim); ++ } ++ } ++ (*plumedcmd) (plumedmain,"setNatoms",&top_global->natoms); ++ (*plumedcmd) (plumedmain,"setMDEngine","gromacs"); ++ (*plumedcmd) (plumedmain,"setLog",fplog); ++ real real_delta_t; ++ real_delta_t=ir->delta_t; ++ (*plumedcmd) (plumedmain,"setTimestep",&real_delta_t); ++ (*plumedcmd) (plumedmain,"init",NULL); ++ ++ if(PAR(cr)){ ++ if(DOMAINDECOMP(cr)) { ++ (*plumedcmd) (plumedmain,"setAtomsNlocal",&cr->dd->nat_home); ++ (*plumedcmd) (plumedmain,"setAtomsGatindex",cr->dd->gatindex); ++ } ++ } ++ } ++ /* END PLUMED */ + } + + static void finish_em(t_commrec *cr, gmx_mdoutf_t outf, +@@ -737,12 +781,34 @@ static void evaluate_energy(FILE *fplog, t_commrec *cr, + em_dd_partition_system(fplog, count, cr, top_global, inputrec, + ems, top, mdatoms, fr, vsite, constr, + nrnb, wcycle); ++ /* PLUMED */ ++ if(plumedswitch){ ++ (*plumedcmd) (plumedmain,"setAtomsNlocal",&cr->dd->nat_home); ++ (*plumedcmd) (plumedmain,"setAtomsGatindex",cr->dd->gatindex); ++ } ++ /* END PLUMED */ + } + + /* Calc force & energy on new trial position */ + /* do_force always puts the charge groups in the box and shifts again + * We do not unshift, so molecules are always whole in congrad.c + */ ++ /* PLUMED */ ++ int plumedNeedsEnergy=0; ++ matrix plumed_vir; ++ if(plumedswitch){ ++ long int lstep=count; (*plumedcmd)(plumedmain,"setStepLong",&count); ++ (*plumedcmd) (plumedmain,"setPositions",&ems->s.x[0][0]); ++ (*plumedcmd) (plumedmain,"setMasses",&mdatoms->massT[0]); ++ (*plumedcmd) (plumedmain,"setCharges",&mdatoms->chargeA[0]); ++ (*plumedcmd) (plumedmain,"setBox",&ems->s.box[0][0]); ++ (*plumedcmd) (plumedmain,"prepareCalc",NULL); ++ (*plumedcmd) (plumedmain,"setForces",&ems->f[0][0]); ++ (*plumedcmd) (plumedmain,"isEnergyNeeded",&plumedNeedsEnergy); ++ clear_mat(plumed_vir); ++ (*plumedcmd) (plumedmain,"setVirial",&plumed_vir[0][0]); ++ } ++ /* END PLUMED */ + do_force(fplog, cr, inputrec, + count, nrnb, wcycle, top, &top_global->groups, + ems->s.box, ems->s.x, &ems->s.hist, +@@ -751,6 +817,19 @@ static void evaluate_energy(FILE *fplog, t_commrec *cr, + GMX_FORCE_STATECHANGED | GMX_FORCE_ALLFORCES | + GMX_FORCE_VIRIAL | GMX_FORCE_ENERGY | + (bNS ? GMX_FORCE_NS | GMX_FORCE_DO_LR : 0)); ++ /* PLUMED */ ++ if(plumedswitch){ ++ if(plumedNeedsEnergy) { ++ msmul(force_vir,2.0,plumed_vir); ++ (*plumedcmd) (plumedmain,"setEnergy",&enerd->term[F_EPOT]); ++ (*plumedcmd) (plumedmain,"performCalc",NULL); ++ msmul(plumed_vir,0.5,force_vir); ++ } else { ++ msmul(plumed_vir,0.5,plumed_vir); ++ m_add(force_vir,plumed_vir,force_vir); ++ } ++ } ++ /* END PLUMED */ + + /* Clear the unused shake virial and pressure */ + clear_mat(shake_vir); +diff --git a/src/gromacs/mdlib/minimize.c.preplumed b/src/gromacs/mdlib/minimize.c.preplumed +new file mode 100644 +index 0000000..69008f5 +--- /dev/null ++++ b/src/gromacs/mdlib/minimize.c.preplumed +@@ -0,0 +1,2906 @@ ++/* ++ * This file is part of the GROMACS molecular simulation package. ++ * ++ * Copyright (c) 1991-2000, University of Groningen, The Netherlands. ++ * Copyright (c) 2001-2004, The GROMACS development team. ++ * Copyright (c) 2013,2014, by the GROMACS development team, led by ++ * Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl, ++ * and including many others, as listed in the AUTHORS file in the ++ * top-level source directory and at http://www.gromacs.org. ++ * ++ * GROMACS 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; either version 2.1 ++ * of the License, or (at your option) any later version. ++ * ++ * GROMACS 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 ++ * Lesser General Public License for more details. ++ * ++ * You should have received a copy of the GNU Lesser General Public ++ * License along with GROMACS; if not, see ++ * http://www.gnu.org/licenses, or write to the Free Software Foundation, ++ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. ++ * ++ * If you want to redistribute modifications to GROMACS, please ++ * consider that scientific software is very special. Version ++ * control is crucial - bugs must be traceable. We will be happy to ++ * consider code for inclusion in the official distribution, but ++ * derived work must not be called official GROMACS. Details are found ++ * in the README & COPYING files - if they are missing, get the ++ * official version at http://www.gromacs.org. ++ * ++ * To help us fund GROMACS development, we humbly ask that you cite ++ * the research papers on the package. Check out http://www.gromacs.org. ++ */ ++#ifdef HAVE_CONFIG_H ++#include ++#endif ++ ++#include ++#include ++#include ++#include "sysstuff.h" ++#include "gromacs/utility/cstringutil.h" ++#include "network.h" ++#include "gromacs/utility/smalloc.h" ++#include "nrnb.h" ++#include "main.h" ++#include "force.h" ++#include "macros.h" ++#include "names.h" ++#include "gmx_fatal.h" ++#include "txtdump.h" ++#include "typedefs.h" ++#include "update.h" ++#include "constr.h" ++#include "vec.h" ++#include "tgroup.h" ++#include "mdebin.h" ++#include "vsite.h" ++#include "force.h" ++#include "mdrun.h" ++#include "md_support.h" ++#include "sim_util.h" ++#include "domdec.h" ++#include "mdatoms.h" ++#include "ns.h" ++#include "mtop_util.h" ++#include "pme.h" ++#include "bondf.h" ++#include "gmx_omp_nthreads.h" ++#include "md_logging.h" ++ ++#include "gromacs/fileio/confio.h" ++#include "gromacs/fileio/trajectory_writing.h" ++#include "gromacs/linearalgebra/mtxio.h" ++#include "gromacs/linearalgebra/sparsematrix.h" ++#include "gromacs/timing/wallcycle.h" ++#include "gromacs/timing/walltime_accounting.h" ++#include "gromacs/imd/imd.h" ++ ++typedef struct { ++ t_state s; ++ rvec *f; ++ real epot; ++ real fnorm; ++ real fmax; ++ int a_fmax; ++} em_state_t; ++ ++static em_state_t *init_em_state() ++{ ++ em_state_t *ems; ++ ++ snew(ems, 1); ++ ++ /* does this need to be here? Should the array be declared differently (staticaly)in the state definition? */ ++ snew(ems->s.lambda, efptNR); ++ ++ return ems; ++} ++ ++static void print_em_start(FILE *fplog, ++ t_commrec *cr, ++ gmx_walltime_accounting_t walltime_accounting, ++ gmx_wallcycle_t wcycle, ++ const char *name) ++{ ++ walltime_accounting_start(walltime_accounting); ++ wallcycle_start(wcycle, ewcRUN); ++ print_start(fplog, cr, walltime_accounting, name); ++} ++static void em_time_end(gmx_walltime_accounting_t walltime_accounting, ++ gmx_wallcycle_t wcycle) ++{ ++ wallcycle_stop(wcycle, ewcRUN); ++ ++ walltime_accounting_end(walltime_accounting); ++} ++ ++static void sp_header(FILE *out, const char *minimizer, real ftol, int nsteps) ++{ ++ fprintf(out, "\n"); ++ fprintf(out, "%s:\n", minimizer); ++ fprintf(out, " Tolerance (Fmax) = %12.5e\n", ftol); ++ fprintf(out, " Number of steps = %12d\n", nsteps); ++} ++ ++static void warn_step(FILE *fp, real ftol, gmx_bool bLastStep, gmx_bool bConstrain) ++{ ++ char buffer[2048]; ++ if (bLastStep) ++ { ++ sprintf(buffer, ++ "\nEnergy minimization reached the maximum number " ++ "of steps before the forces reached the requested " ++ "precision Fmax < %g.\n", ftol); ++ } ++ else ++ { ++ sprintf(buffer, ++ "\nEnergy minimization has stopped, but the forces have " ++ "not converged to the requested precision Fmax < %g (which " ++ "may not be possible for your system). It stopped " ++ "because the algorithm tried to make a new step whose size " ++ "was too small, or there was no change in the energy since " ++ "last step. Either way, we regard the minimization as " ++ "converged to within the available machine precision, " ++ "given your starting configuration and EM parameters.\n%s%s", ++ ftol, ++ sizeof(real) < sizeof(double) ? ++ "\nDouble precision normally gives you higher accuracy, but " ++ "this is often not needed for preparing to run molecular " ++ "dynamics.\n" : ++ "", ++ bConstrain ? ++ "You might need to increase your constraint accuracy, or turn\n" ++ "off constraints altogether (set constraints = none in mdp file)\n" : ++ ""); ++ } ++ fputs(wrap_lines(buffer, 78, 0, FALSE), fp); ++} ++ ++ ++ ++static void print_converged(FILE *fp, const char *alg, real ftol, ++ gmx_int64_t count, gmx_bool bDone, gmx_int64_t nsteps, ++ real epot, real fmax, int nfmax, real fnorm) ++{ ++ char buf[STEPSTRSIZE]; ++ ++ if (bDone) ++ { ++ fprintf(fp, "\n%s converged to Fmax < %g in %s steps\n", ++ alg, ftol, gmx_step_str(count, buf)); ++ } ++ else if (count < nsteps) ++ { ++ fprintf(fp, "\n%s converged to machine precision in %s steps,\n" ++ "but did not reach the requested Fmax < %g.\n", ++ alg, gmx_step_str(count, buf), ftol); ++ } ++ else ++ { ++ fprintf(fp, "\n%s did not converge to Fmax < %g in %s steps.\n", ++ alg, ftol, gmx_step_str(count, buf)); ++ } ++ ++#ifdef GMX_DOUBLE ++ fprintf(fp, "Potential Energy = %21.14e\n", epot); ++ fprintf(fp, "Maximum force = %21.14e on atom %d\n", fmax, nfmax+1); ++ fprintf(fp, "Norm of force = %21.14e\n", fnorm); ++#else ++ fprintf(fp, "Potential Energy = %14.7e\n", epot); ++ fprintf(fp, "Maximum force = %14.7e on atom %d\n", fmax, nfmax+1); ++ fprintf(fp, "Norm of force = %14.7e\n", fnorm); ++#endif ++} ++ ++static void get_f_norm_max(t_commrec *cr, ++ t_grpopts *opts, t_mdatoms *mdatoms, rvec *f, ++ real *fnorm, real *fmax, int *a_fmax) ++{ ++ double fnorm2, *sum; ++ real fmax2, fmax2_0, fam; ++ int la_max, a_max, start, end, i, m, gf; ++ ++ /* This routine finds the largest force and returns it. ++ * On parallel machines the global max is taken. ++ */ ++ fnorm2 = 0; ++ fmax2 = 0; ++ la_max = -1; ++ gf = 0; ++ start = 0; ++ end = mdatoms->homenr; ++ if (mdatoms->cFREEZE) ++ { ++ for (i = start; i < end; i++) ++ { ++ gf = mdatoms->cFREEZE[i]; ++ fam = 0; ++ for (m = 0; m < DIM; m++) ++ { ++ if (!opts->nFreeze[gf][m]) ++ { ++ fam += sqr(f[i][m]); ++ } ++ } ++ fnorm2 += fam; ++ if (fam > fmax2) ++ { ++ fmax2 = fam; ++ la_max = i; ++ } ++ } ++ } ++ else ++ { ++ for (i = start; i < end; i++) ++ { ++ fam = norm2(f[i]); ++ fnorm2 += fam; ++ if (fam > fmax2) ++ { ++ fmax2 = fam; ++ la_max = i; ++ } ++ } ++ } ++ ++ if (la_max >= 0 && DOMAINDECOMP(cr)) ++ { ++ a_max = cr->dd->gatindex[la_max]; ++ } ++ else ++ { ++ a_max = la_max; ++ } ++ if (PAR(cr)) ++ { ++ snew(sum, 2*cr->nnodes+1); ++ sum[2*cr->nodeid] = fmax2; ++ sum[2*cr->nodeid+1] = a_max; ++ sum[2*cr->nnodes] = fnorm2; ++ gmx_sumd(2*cr->nnodes+1, sum, cr); ++ fnorm2 = sum[2*cr->nnodes]; ++ /* Determine the global maximum */ ++ for (i = 0; i < cr->nnodes; i++) ++ { ++ if (sum[2*i] > fmax2) ++ { ++ fmax2 = sum[2*i]; ++ a_max = (int)(sum[2*i+1] + 0.5); ++ } ++ } ++ sfree(sum); ++ } ++ ++ if (fnorm) ++ { ++ *fnorm = sqrt(fnorm2); ++ } ++ if (fmax) ++ { ++ *fmax = sqrt(fmax2); ++ } ++ if (a_fmax) ++ { ++ *a_fmax = a_max; ++ } ++} ++ ++static void get_state_f_norm_max(t_commrec *cr, ++ t_grpopts *opts, t_mdatoms *mdatoms, ++ em_state_t *ems) ++{ ++ get_f_norm_max(cr, opts, mdatoms, ems->f, &ems->fnorm, &ems->fmax, &ems->a_fmax); ++} ++ ++void init_em(FILE *fplog, const char *title, ++ t_commrec *cr, t_inputrec *ir, ++ t_state *state_global, gmx_mtop_t *top_global, ++ em_state_t *ems, gmx_localtop_t **top, ++ rvec **f, rvec **f_global, ++ t_nrnb *nrnb, rvec mu_tot, ++ t_forcerec *fr, gmx_enerdata_t **enerd, ++ t_graph **graph, t_mdatoms *mdatoms, gmx_global_stat_t *gstat, ++ gmx_vsite_t *vsite, gmx_constr_t constr, ++ int nfile, const t_filenm fnm[], ++ gmx_mdoutf_t *outf, t_mdebin **mdebin, ++ int imdport, unsigned long gmx_unused Flags, ++ gmx_wallcycle_t wcycle) ++{ ++ int i; ++ real dvdl_constr; ++ ++ if (fplog) ++ { ++ fprintf(fplog, "Initiating %s\n", title); ++ } ++ ++ state_global->ngtc = 0; ++ ++ /* Initialize lambda variables */ ++ initialize_lambdas(fplog, ir, &(state_global->fep_state), state_global->lambda, NULL); ++ ++ init_nrnb(nrnb); ++ ++ /* Interactive molecular dynamics */ ++ init_IMD(ir, cr, top_global, fplog, 1, state_global->x, ++ nfile, fnm, NULL, imdport, Flags); ++ ++ if (DOMAINDECOMP(cr)) ++ { ++ *top = dd_init_local_top(top_global); ++ ++ dd_init_local_state(cr->dd, state_global, &ems->s); ++ ++ *f = NULL; ++ ++ /* Distribute the charge groups over the nodes from the master node */ ++ dd_partition_system(fplog, ir->init_step, cr, TRUE, 1, ++ state_global, top_global, ir, ++ &ems->s, &ems->f, mdatoms, *top, ++ fr, vsite, NULL, constr, ++ nrnb, NULL, FALSE); ++ dd_store_state(cr->dd, &ems->s); ++ ++ if (ir->nstfout) ++ { ++ snew(*f_global, top_global->natoms); ++ } ++ else ++ { ++ *f_global = NULL; ++ } ++ *graph = NULL; ++ } ++ else ++ { ++ snew(*f, top_global->natoms); ++ ++ /* Just copy the state */ ++ ems->s = *state_global; ++ snew(ems->s.x, ems->s.nalloc); ++ snew(ems->f, ems->s.nalloc); ++ for (i = 0; i < state_global->natoms; i++) ++ { ++ copy_rvec(state_global->x[i], ems->s.x[i]); ++ } ++ copy_mat(state_global->box, ems->s.box); ++ ++ *top = gmx_mtop_generate_local_top(top_global, ir); ++ *f_global = *f; ++ ++ forcerec_set_excl_load(fr, *top); ++ ++ setup_bonded_threading(fr, &(*top)->idef); ++ ++ if (ir->ePBC != epbcNONE && !fr->bMolPBC) ++ { ++ *graph = mk_graph(fplog, &((*top)->idef), 0, top_global->natoms, FALSE, FALSE); ++ } ++ else ++ { ++ *graph = NULL; ++ } ++ ++ atoms2md(top_global, ir, 0, NULL, top_global->natoms, mdatoms); ++ update_mdatoms(mdatoms, state_global->lambda[efptFEP]); ++ ++ if (vsite) ++ { ++ set_vsite_top(vsite, *top, mdatoms, cr); ++ } ++ } ++ ++ if (constr) ++ { ++ if (ir->eConstrAlg == econtSHAKE && ++ gmx_mtop_ftype_count(top_global, F_CONSTR) > 0) ++ { ++ gmx_fatal(FARGS, "Can not do energy minimization with %s, use %s\n", ++ econstr_names[econtSHAKE], econstr_names[econtLINCS]); ++ } ++ ++ if (!DOMAINDECOMP(cr)) ++ { ++ set_constraints(constr, *top, ir, mdatoms, cr); ++ } ++ ++ if (!ir->bContinuation) ++ { ++ /* Constrain the starting coordinates */ ++ dvdl_constr = 0; ++ constrain(PAR(cr) ? NULL : fplog, TRUE, TRUE, constr, &(*top)->idef, ++ ir, NULL, cr, -1, 0, 1.0, mdatoms, ++ ems->s.x, ems->s.x, NULL, fr->bMolPBC, ems->s.box, ++ ems->s.lambda[efptFEP], &dvdl_constr, ++ NULL, NULL, nrnb, econqCoord, FALSE, 0, 0); ++ } ++ } ++ ++ if (PAR(cr)) ++ { ++ *gstat = global_stat_init(ir); ++ } ++ ++ *outf = init_mdoutf(fplog, nfile, fnm, 0, cr, ir, top_global, NULL, wcycle); ++ ++ snew(*enerd, 1); ++ init_enerdata(top_global->groups.grps[egcENER].nr, ir->fepvals->n_lambda, ++ *enerd); ++ ++ if (mdebin != NULL) ++ { ++ /* Init bin for energy stuff */ ++ *mdebin = init_mdebin(mdoutf_get_fp_ene(*outf), top_global, ir, NULL); ++ } ++ ++ clear_rvec(mu_tot); ++ calc_shifts(ems->s.box, fr->shift_vec); ++} ++ ++static void finish_em(t_commrec *cr, gmx_mdoutf_t outf, ++ gmx_walltime_accounting_t walltime_accounting, ++ gmx_wallcycle_t wcycle) ++{ ++ if (!(cr->duty & DUTY_PME)) ++ { ++ /* Tell the PME only node to finish */ ++ gmx_pme_send_finish(cr); ++ } ++ ++ done_mdoutf(outf); ++ ++ em_time_end(walltime_accounting, wcycle); ++} ++ ++static void swap_em_state(em_state_t *ems1, em_state_t *ems2) ++{ ++ em_state_t tmp; ++ ++ tmp = *ems1; ++ *ems1 = *ems2; ++ *ems2 = tmp; ++} ++ ++static void copy_em_coords(em_state_t *ems, t_state *state) ++{ ++ int i; ++ ++ for (i = 0; (i < state->natoms); i++) ++ { ++ copy_rvec(ems->s.x[i], state->x[i]); ++ } ++} ++ ++static void write_em_traj(FILE *fplog, t_commrec *cr, ++ gmx_mdoutf_t outf, ++ gmx_bool bX, gmx_bool bF, const char *confout, ++ gmx_mtop_t *top_global, ++ t_inputrec *ir, gmx_int64_t step, ++ em_state_t *state, ++ t_state *state_global, rvec *f_global) ++{ ++ int mdof_flags; ++ gmx_bool bIMDout = FALSE; ++ ++ ++ /* Shall we do IMD output? */ ++ if (ir->bIMD) ++ { ++ bIMDout = do_per_step(step, IMD_get_step(ir->imd->setup)); ++ } ++ ++ if ((bX || bF || bIMDout || confout != NULL) && !DOMAINDECOMP(cr)) ++ { ++ copy_em_coords(state, state_global); ++ f_global = state->f; ++ } ++ ++ mdof_flags = 0; ++ if (bX) ++ { ++ mdof_flags |= MDOF_X; ++ } ++ if (bF) ++ { ++ mdof_flags |= MDOF_F; ++ } ++ ++ /* If we want IMD output, set appropriate MDOF flag */ ++ if (ir->bIMD) ++ { ++ mdof_flags |= MDOF_IMD; ++ } ++ ++ mdoutf_write_to_trajectory_files(fplog, cr, outf, mdof_flags, ++ top_global, step, (double)step, ++ &state->s, state_global, state->f, f_global); ++ ++ if (confout != NULL && MASTER(cr)) ++ { ++ if (ir->ePBC != epbcNONE && !ir->bPeriodicMols && DOMAINDECOMP(cr)) ++ { ++ /* Make molecules whole only for confout writing */ ++ do_pbc_mtop(fplog, ir->ePBC, state_global->box, top_global, ++ state_global->x); ++ } ++ ++ write_sto_conf_mtop(confout, ++ *top_global->name, top_global, ++ state_global->x, NULL, ir->ePBC, state_global->box); ++ } ++} ++ ++static void do_em_step(t_commrec *cr, t_inputrec *ir, t_mdatoms *md, ++ gmx_bool bMolPBC, ++ em_state_t *ems1, real a, rvec *f, em_state_t *ems2, ++ gmx_constr_t constr, gmx_localtop_t *top, ++ t_nrnb *nrnb, gmx_wallcycle_t wcycle, ++ gmx_int64_t count) ++ ++{ ++ t_state *s1, *s2; ++ int i; ++ int start, end; ++ rvec *x1, *x2; ++ real dvdl_constr; ++ int nthreads gmx_unused; ++ ++ s1 = &ems1->s; ++ s2 = &ems2->s; ++ ++ if (DOMAINDECOMP(cr) && s1->ddp_count != cr->dd->ddp_count) ++ { ++ gmx_incons("state mismatch in do_em_step"); ++ } ++ ++ s2->flags = s1->flags; ++ ++ if (s2->nalloc != s1->nalloc) ++ { ++ s2->nalloc = s1->nalloc; ++ srenew(s2->x, s1->nalloc); ++ srenew(ems2->f, s1->nalloc); ++ if (s2->flags & (1<cg_p, s1->nalloc); ++ } ++ } ++ ++ s2->natoms = s1->natoms; ++ copy_mat(s1->box, s2->box); ++ /* Copy free energy state */ ++ for (i = 0; i < efptNR; i++) ++ { ++ s2->lambda[i] = s1->lambda[i]; ++ } ++ copy_mat(s1->box, s2->box); ++ ++ start = 0; ++ end = md->homenr; ++ ++ x1 = s1->x; ++ x2 = s2->x; ++ ++ nthreads = gmx_omp_nthreads_get(emntUpdate); ++#pragma omp parallel num_threads(nthreads) ++ { ++ int gf, i, m; ++ ++ gf = 0; ++#pragma omp for schedule(static) nowait ++ for (i = start; i < end; i++) ++ { ++ if (md->cFREEZE) ++ { ++ gf = md->cFREEZE[i]; ++ } ++ for (m = 0; m < DIM; m++) ++ { ++ if (ir->opts.nFreeze[gf][m]) ++ { ++ x2[i][m] = x1[i][m]; ++ } ++ else ++ { ++ x2[i][m] = x1[i][m] + a*f[i][m]; ++ } ++ } ++ } ++ ++ if (s2->flags & (1<cg_p; ++ x2 = s2->cg_p; ++#pragma omp for schedule(static) nowait ++ for (i = start; i < end; i++) ++ { ++ copy_rvec(x1[i], x2[i]); ++ } ++ } ++ ++ if (DOMAINDECOMP(cr)) ++ { ++ s2->ddp_count = s1->ddp_count; ++ if (s2->cg_gl_nalloc < s1->cg_gl_nalloc) ++ { ++#pragma omp barrier ++ s2->cg_gl_nalloc = s1->cg_gl_nalloc; ++ srenew(s2->cg_gl, s2->cg_gl_nalloc); ++#pragma omp barrier ++ } ++ s2->ncg_gl = s1->ncg_gl; ++#pragma omp for schedule(static) nowait ++ for (i = 0; i < s2->ncg_gl; i++) ++ { ++ s2->cg_gl[i] = s1->cg_gl[i]; ++ } ++ s2->ddp_count_cg_gl = s1->ddp_count_cg_gl; ++ } ++ } ++ ++ if (constr) ++ { ++ wallcycle_start(wcycle, ewcCONSTR); ++ dvdl_constr = 0; ++ constrain(NULL, TRUE, TRUE, constr, &top->idef, ++ ir, NULL, cr, count, 0, 1.0, md, ++ s1->x, s2->x, NULL, bMolPBC, s2->box, ++ s2->lambda[efptBONDED], &dvdl_constr, ++ NULL, NULL, nrnb, econqCoord, FALSE, 0, 0); ++ wallcycle_stop(wcycle, ewcCONSTR); ++ } ++} ++ ++static void em_dd_partition_system(FILE *fplog, int step, t_commrec *cr, ++ gmx_mtop_t *top_global, t_inputrec *ir, ++ em_state_t *ems, gmx_localtop_t *top, ++ t_mdatoms *mdatoms, t_forcerec *fr, ++ gmx_vsite_t *vsite, gmx_constr_t constr, ++ t_nrnb *nrnb, gmx_wallcycle_t wcycle) ++{ ++ /* Repartition the domain decomposition */ ++ wallcycle_start(wcycle, ewcDOMDEC); ++ dd_partition_system(fplog, step, cr, FALSE, 1, ++ NULL, top_global, ir, ++ &ems->s, &ems->f, ++ mdatoms, top, fr, vsite, NULL, constr, ++ nrnb, wcycle, FALSE); ++ dd_store_state(cr->dd, &ems->s); ++ wallcycle_stop(wcycle, ewcDOMDEC); ++} ++ ++static void evaluate_energy(FILE *fplog, t_commrec *cr, ++ gmx_mtop_t *top_global, ++ em_state_t *ems, gmx_localtop_t *top, ++ t_inputrec *inputrec, ++ t_nrnb *nrnb, gmx_wallcycle_t wcycle, ++ gmx_global_stat_t gstat, ++ gmx_vsite_t *vsite, gmx_constr_t constr, ++ t_fcdata *fcd, ++ t_graph *graph, t_mdatoms *mdatoms, ++ t_forcerec *fr, rvec mu_tot, ++ gmx_enerdata_t *enerd, tensor vir, tensor pres, ++ gmx_int64_t count, gmx_bool bFirst) ++{ ++ real t; ++ gmx_bool bNS; ++ int nabnsb; ++ tensor force_vir, shake_vir, ekin; ++ real dvdl_constr, prescorr, enercorr, dvdlcorr; ++ real terminate = 0; ++ ++ /* Set the time to the initial time, the time does not change during EM */ ++ t = inputrec->init_t; ++ ++ if (bFirst || ++ (DOMAINDECOMP(cr) && ems->s.ddp_count < cr->dd->ddp_count)) ++ { ++ /* This is the first state or an old state used before the last ns */ ++ bNS = TRUE; ++ } ++ else ++ { ++ bNS = FALSE; ++ if (inputrec->nstlist > 0) ++ { ++ bNS = TRUE; ++ } ++ else if (inputrec->nstlist == -1) ++ { ++ nabnsb = natoms_beyond_ns_buffer(inputrec, fr, &top->cgs, NULL, ems->s.x); ++ if (PAR(cr)) ++ { ++ gmx_sumi(1, &nabnsb, cr); ++ } ++ bNS = (nabnsb > 0); ++ } ++ } ++ ++ if (vsite) ++ { ++ construct_vsites(vsite, ems->s.x, 1, NULL, ++ top->idef.iparams, top->idef.il, ++ fr->ePBC, fr->bMolPBC, cr, ems->s.box); ++ } ++ ++ if (DOMAINDECOMP(cr) && bNS) ++ { ++ /* Repartition the domain decomposition */ ++ em_dd_partition_system(fplog, count, cr, top_global, inputrec, ++ ems, top, mdatoms, fr, vsite, constr, ++ nrnb, wcycle); ++ } ++ ++ /* Calc force & energy on new trial position */ ++ /* do_force always puts the charge groups in the box and shifts again ++ * We do not unshift, so molecules are always whole in congrad.c ++ */ ++ do_force(fplog, cr, inputrec, ++ count, nrnb, wcycle, top, &top_global->groups, ++ ems->s.box, ems->s.x, &ems->s.hist, ++ ems->f, force_vir, mdatoms, enerd, fcd, ++ ems->s.lambda, graph, fr, vsite, mu_tot, t, NULL, NULL, TRUE, ++ GMX_FORCE_STATECHANGED | GMX_FORCE_ALLFORCES | ++ GMX_FORCE_VIRIAL | GMX_FORCE_ENERGY | ++ (bNS ? GMX_FORCE_NS | GMX_FORCE_DO_LR : 0)); ++ ++ /* Clear the unused shake virial and pressure */ ++ clear_mat(shake_vir); ++ clear_mat(pres); ++ ++ /* Communicate stuff when parallel */ ++ if (PAR(cr) && inputrec->eI != eiNM) ++ { ++ wallcycle_start(wcycle, ewcMoveE); ++ ++ global_stat(fplog, gstat, cr, enerd, force_vir, shake_vir, mu_tot, ++ inputrec, NULL, NULL, NULL, 1, &terminate, ++ top_global, &ems->s, FALSE, ++ CGLO_ENERGY | ++ CGLO_PRESSURE | ++ CGLO_CONSTRAINT | ++ CGLO_FIRSTITERATE); ++ ++ wallcycle_stop(wcycle, ewcMoveE); ++ } ++ ++ /* Calculate long range corrections to pressure and energy */ ++ calc_dispcorr(fplog, inputrec, fr, count, top_global->natoms, ems->s.box, ems->s.lambda[efptVDW], ++ pres, force_vir, &prescorr, &enercorr, &dvdlcorr); ++ enerd->term[F_DISPCORR] = enercorr; ++ enerd->term[F_EPOT] += enercorr; ++ enerd->term[F_PRES] += prescorr; ++ enerd->term[F_DVDL] += dvdlcorr; ++ ++ ems->epot = enerd->term[F_EPOT]; ++ ++ if (constr) ++ { ++ /* Project out the constraint components of the force */ ++ wallcycle_start(wcycle, ewcCONSTR); ++ dvdl_constr = 0; ++ constrain(NULL, FALSE, FALSE, constr, &top->idef, ++ inputrec, NULL, cr, count, 0, 1.0, mdatoms, ++ ems->s.x, ems->f, ems->f, fr->bMolPBC, ems->s.box, ++ ems->s.lambda[efptBONDED], &dvdl_constr, ++ NULL, &shake_vir, nrnb, econqForceDispl, FALSE, 0, 0); ++ if (fr->bSepDVDL && fplog) ++ { ++ gmx_print_sepdvdl(fplog, "Constraints", t, dvdl_constr); ++ } ++ enerd->term[F_DVDL_CONSTR] += dvdl_constr; ++ m_add(force_vir, shake_vir, vir); ++ wallcycle_stop(wcycle, ewcCONSTR); ++ } ++ else ++ { ++ copy_mat(force_vir, vir); ++ } ++ ++ clear_mat(ekin); ++ enerd->term[F_PRES] = ++ calc_pres(fr->ePBC, inputrec->nwall, ems->s.box, ekin, vir, pres); ++ ++ sum_dhdl(enerd, ems->s.lambda, inputrec->fepvals); ++ ++ if (EI_ENERGY_MINIMIZATION(inputrec->eI)) ++ { ++ get_state_f_norm_max(cr, &(inputrec->opts), mdatoms, ems); ++ } ++} ++ ++static double reorder_partsum(t_commrec *cr, t_grpopts *opts, t_mdatoms *mdatoms, ++ gmx_mtop_t *mtop, ++ em_state_t *s_min, em_state_t *s_b) ++{ ++ rvec *fm, *fb, *fmg; ++ t_block *cgs_gl; ++ int ncg, *cg_gl, *index, c, cg, i, a0, a1, a, gf, m; ++ double partsum; ++ unsigned char *grpnrFREEZE; ++ ++ if (debug) ++ { ++ fprintf(debug, "Doing reorder_partsum\n"); ++ } ++ ++ fm = s_min->f; ++ fb = s_b->f; ++ ++ cgs_gl = dd_charge_groups_global(cr->dd); ++ index = cgs_gl->index; ++ ++ /* Collect fm in a global vector fmg. ++ * This conflicts with the spirit of domain decomposition, ++ * but to fully optimize this a much more complicated algorithm is required. ++ */ ++ snew(fmg, mtop->natoms); ++ ++ ncg = s_min->s.ncg_gl; ++ cg_gl = s_min->s.cg_gl; ++ i = 0; ++ for (c = 0; c < ncg; c++) ++ { ++ cg = cg_gl[c]; ++ a0 = index[cg]; ++ a1 = index[cg+1]; ++ for (a = a0; a < a1; a++) ++ { ++ copy_rvec(fm[i], fmg[a]); ++ i++; ++ } ++ } ++ gmx_sum(mtop->natoms*3, fmg[0], cr); ++ ++ /* Now we will determine the part of the sum for the cgs in state s_b */ ++ ncg = s_b->s.ncg_gl; ++ cg_gl = s_b->s.cg_gl; ++ partsum = 0; ++ i = 0; ++ gf = 0; ++ grpnrFREEZE = mtop->groups.grpnr[egcFREEZE]; ++ for (c = 0; c < ncg; c++) ++ { ++ cg = cg_gl[c]; ++ a0 = index[cg]; ++ a1 = index[cg+1]; ++ for (a = a0; a < a1; a++) ++ { ++ if (mdatoms->cFREEZE && grpnrFREEZE) ++ { ++ gf = grpnrFREEZE[i]; ++ } ++ for (m = 0; m < DIM; m++) ++ { ++ if (!opts->nFreeze[gf][m]) ++ { ++ partsum += (fb[i][m] - fmg[a][m])*fb[i][m]; ++ } ++ } ++ i++; ++ } ++ } ++ ++ sfree(fmg); ++ ++ return partsum; ++} ++ ++static real pr_beta(t_commrec *cr, t_grpopts *opts, t_mdatoms *mdatoms, ++ gmx_mtop_t *mtop, ++ em_state_t *s_min, em_state_t *s_b) ++{ ++ rvec *fm, *fb; ++ double sum; ++ int gf, i, m; ++ ++ /* This is just the classical Polak-Ribiere calculation of beta; ++ * it looks a bit complicated since we take freeze groups into account, ++ * and might have to sum it in parallel runs. ++ */ ++ ++ if (!DOMAINDECOMP(cr) || ++ (s_min->s.ddp_count == cr->dd->ddp_count && ++ s_b->s.ddp_count == cr->dd->ddp_count)) ++ { ++ fm = s_min->f; ++ fb = s_b->f; ++ sum = 0; ++ gf = 0; ++ /* This part of code can be incorrect with DD, ++ * since the atom ordering in s_b and s_min might differ. ++ */ ++ for (i = 0; i < mdatoms->homenr; i++) ++ { ++ if (mdatoms->cFREEZE) ++ { ++ gf = mdatoms->cFREEZE[i]; ++ } ++ for (m = 0; m < DIM; m++) ++ { ++ if (!opts->nFreeze[gf][m]) ++ { ++ sum += (fb[i][m] - fm[i][m])*fb[i][m]; ++ } ++ } ++ } ++ } ++ else ++ { ++ /* We need to reorder cgs while summing */ ++ sum = reorder_partsum(cr, opts, mdatoms, mtop, s_min, s_b); ++ } ++ if (PAR(cr)) ++ { ++ gmx_sumd(1, &sum, cr); ++ } ++ ++ return sum/sqr(s_min->fnorm); ++} ++ ++double do_cg(FILE *fplog, t_commrec *cr, ++ int nfile, const t_filenm fnm[], ++ const output_env_t gmx_unused oenv, gmx_bool bVerbose, gmx_bool gmx_unused bCompact, ++ int gmx_unused nstglobalcomm, ++ gmx_vsite_t *vsite, gmx_constr_t constr, ++ int gmx_unused stepout, ++ t_inputrec *inputrec, ++ gmx_mtop_t *top_global, t_fcdata *fcd, ++ t_state *state_global, ++ t_mdatoms *mdatoms, ++ t_nrnb *nrnb, gmx_wallcycle_t wcycle, ++ gmx_edsam_t gmx_unused ed, ++ t_forcerec *fr, ++ int gmx_unused repl_ex_nst, int gmx_unused repl_ex_nex, int gmx_unused repl_ex_seed, ++ gmx_membed_t gmx_unused membed, ++ real gmx_unused cpt_period, real gmx_unused max_hours, ++ const char gmx_unused *deviceOptions, ++ int imdport, ++ unsigned long gmx_unused Flags, ++ gmx_walltime_accounting_t walltime_accounting) ++{ ++ const char *CG = "Polak-Ribiere Conjugate Gradients"; ++ ++ em_state_t *s_min, *s_a, *s_b, *s_c; ++ gmx_localtop_t *top; ++ gmx_enerdata_t *enerd; ++ rvec *f; ++ gmx_global_stat_t gstat; ++ t_graph *graph; ++ rvec *f_global, *p, *sf, *sfm; ++ double gpa, gpb, gpc, tmp, sum[2], minstep; ++ real fnormn; ++ real stepsize; ++ real a, b, c, beta = 0.0; ++ real epot_repl = 0; ++ real pnorm; ++ t_mdebin *mdebin; ++ gmx_bool converged, foundlower; ++ rvec mu_tot; ++ gmx_bool do_log = FALSE, do_ene = FALSE, do_x, do_f; ++ tensor vir, pres; ++ int number_steps, neval = 0, nstcg = inputrec->nstcgsteep; ++ gmx_mdoutf_t outf; ++ int i, m, gf, step, nminstep; ++ real terminate = 0; ++ ++ step = 0; ++ ++ s_min = init_em_state(); ++ s_a = init_em_state(); ++ s_b = init_em_state(); ++ s_c = init_em_state(); ++ ++ /* Init em and store the local state in s_min */ ++ init_em(fplog, CG, cr, inputrec, ++ state_global, top_global, s_min, &top, &f, &f_global, ++ nrnb, mu_tot, fr, &enerd, &graph, mdatoms, &gstat, vsite, constr, ++ nfile, fnm, &outf, &mdebin, imdport, Flags, wcycle); ++ ++ /* Print to log file */ ++ print_em_start(fplog, cr, walltime_accounting, wcycle, CG); ++ ++ /* Max number of steps */ ++ number_steps = inputrec->nsteps; ++ ++ if (MASTER(cr)) ++ { ++ sp_header(stderr, CG, inputrec->em_tol, number_steps); ++ } ++ if (fplog) ++ { ++ sp_header(fplog, CG, inputrec->em_tol, number_steps); ++ } ++ ++ /* Call the force routine and some auxiliary (neighboursearching etc.) */ ++ /* do_force always puts the charge groups in the box and shifts again ++ * We do not unshift, so molecules are always whole in congrad.c ++ */ ++ evaluate_energy(fplog, cr, ++ top_global, s_min, top, ++ inputrec, nrnb, wcycle, gstat, ++ vsite, constr, fcd, graph, mdatoms, fr, ++ mu_tot, enerd, vir, pres, -1, TRUE); ++ where(); ++ ++ if (MASTER(cr)) ++ { ++ /* Copy stuff to the energy bin for easy printing etc. */ ++ upd_mdebin(mdebin, FALSE, FALSE, (double)step, ++ mdatoms->tmass, enerd, &s_min->s, inputrec->fepvals, inputrec->expandedvals, s_min->s.box, ++ NULL, NULL, vir, pres, NULL, mu_tot, constr); ++ ++ print_ebin_header(fplog, step, step, s_min->s.lambda[efptFEP]); ++ print_ebin(mdoutf_get_fp_ene(outf), TRUE, FALSE, FALSE, fplog, step, step, eprNORMAL, ++ TRUE, mdebin, fcd, &(top_global->groups), &(inputrec->opts)); ++ } ++ where(); ++ ++ /* Estimate/guess the initial stepsize */ ++ stepsize = inputrec->em_stepsize/s_min->fnorm; ++ ++ if (MASTER(cr)) ++ { ++ fprintf(stderr, " F-max = %12.5e on atom %d\n", ++ s_min->fmax, s_min->a_fmax+1); ++ fprintf(stderr, " F-Norm = %12.5e\n", ++ s_min->fnorm/sqrt(state_global->natoms)); ++ fprintf(stderr, "\n"); ++ /* and copy to the log file too... */ ++ fprintf(fplog, " F-max = %12.5e on atom %d\n", ++ s_min->fmax, s_min->a_fmax+1); ++ fprintf(fplog, " F-Norm = %12.5e\n", ++ s_min->fnorm/sqrt(state_global->natoms)); ++ fprintf(fplog, "\n"); ++ } ++ /* Start the loop over CG steps. ++ * Each successful step is counted, and we continue until ++ * we either converge or reach the max number of steps. ++ */ ++ converged = FALSE; ++ for (step = 0; (number_steps < 0 || (number_steps >= 0 && step <= number_steps)) && !converged; step++) ++ { ++ ++ /* start taking steps in a new direction ++ * First time we enter the routine, beta=0, and the direction is ++ * simply the negative gradient. ++ */ ++ ++ /* Calculate the new direction in p, and the gradient in this direction, gpa */ ++ p = s_min->s.cg_p; ++ sf = s_min->f; ++ gpa = 0; ++ gf = 0; ++ for (i = 0; i < mdatoms->homenr; i++) ++ { ++ if (mdatoms->cFREEZE) ++ { ++ gf = mdatoms->cFREEZE[i]; ++ } ++ for (m = 0; m < DIM; m++) ++ { ++ if (!inputrec->opts.nFreeze[gf][m]) ++ { ++ p[i][m] = sf[i][m] + beta*p[i][m]; ++ gpa -= p[i][m]*sf[i][m]; ++ /* f is negative gradient, thus the sign */ ++ } ++ else ++ { ++ p[i][m] = 0; ++ } ++ } ++ } ++ ++ /* Sum the gradient along the line across CPUs */ ++ if (PAR(cr)) ++ { ++ gmx_sumd(1, &gpa, cr); ++ } ++ ++ /* Calculate the norm of the search vector */ ++ get_f_norm_max(cr, &(inputrec->opts), mdatoms, p, &pnorm, NULL, NULL); ++ ++ /* Just in case stepsize reaches zero due to numerical precision... */ ++ if (stepsize <= 0) ++ { ++ stepsize = inputrec->em_stepsize/pnorm; ++ } ++ ++ /* ++ * Double check the value of the derivative in the search direction. ++ * If it is positive it must be due to the old information in the ++ * CG formula, so just remove that and start over with beta=0. ++ * This corresponds to a steepest descent step. ++ */ ++ if (gpa > 0) ++ { ++ beta = 0; ++ step--; /* Don't count this step since we are restarting */ ++ continue; /* Go back to the beginning of the big for-loop */ ++ } ++ ++ /* Calculate minimum allowed stepsize, before the average (norm) ++ * relative change in coordinate is smaller than precision ++ */ ++ minstep = 0; ++ for (i = 0; i < mdatoms->homenr; i++) ++ { ++ for (m = 0; m < DIM; m++) ++ { ++ tmp = fabs(s_min->s.x[i][m]); ++ if (tmp < 1.0) ++ { ++ tmp = 1.0; ++ } ++ tmp = p[i][m]/tmp; ++ minstep += tmp*tmp; ++ } ++ } ++ /* Add up from all CPUs */ ++ if (PAR(cr)) ++ { ++ gmx_sumd(1, &minstep, cr); ++ } ++ ++ minstep = GMX_REAL_EPS/sqrt(minstep/(3*state_global->natoms)); ++ ++ if (stepsize < minstep) ++ { ++ converged = TRUE; ++ break; ++ } ++ ++ /* Write coordinates if necessary */ ++ do_x = do_per_step(step, inputrec->nstxout); ++ do_f = do_per_step(step, inputrec->nstfout); ++ ++ write_em_traj(fplog, cr, outf, do_x, do_f, NULL, ++ top_global, inputrec, step, ++ s_min, state_global, f_global); ++ ++ /* Take a step downhill. ++ * In theory, we should minimize the function along this direction. ++ * That is quite possible, but it turns out to take 5-10 function evaluations ++ * for each line. However, we dont really need to find the exact minimum - ++ * it is much better to start a new CG step in a modified direction as soon ++ * as we are close to it. This will save a lot of energy evaluations. ++ * ++ * In practice, we just try to take a single step. ++ * If it worked (i.e. lowered the energy), we increase the stepsize but ++ * the continue straight to the next CG step without trying to find any minimum. ++ * If it didn't work (higher energy), there must be a minimum somewhere between ++ * the old position and the new one. ++ * ++ * Due to the finite numerical accuracy, it turns out that it is a good idea ++ * to even accept a SMALL increase in energy, if the derivative is still downhill. ++ * This leads to lower final energies in the tests I've done. / Erik ++ */ ++ s_a->epot = s_min->epot; ++ a = 0.0; ++ c = a + stepsize; /* reference position along line is zero */ ++ ++ if (DOMAINDECOMP(cr) && s_min->s.ddp_count < cr->dd->ddp_count) ++ { ++ em_dd_partition_system(fplog, step, cr, top_global, inputrec, ++ s_min, top, mdatoms, fr, vsite, constr, ++ nrnb, wcycle); ++ } ++ ++ /* Take a trial step (new coords in s_c) */ ++ do_em_step(cr, inputrec, mdatoms, fr->bMolPBC, s_min, c, s_min->s.cg_p, s_c, ++ constr, top, nrnb, wcycle, -1); ++ ++ neval++; ++ /* Calculate energy for the trial step */ ++ evaluate_energy(fplog, cr, ++ top_global, s_c, top, ++ inputrec, nrnb, wcycle, gstat, ++ vsite, constr, fcd, graph, mdatoms, fr, ++ mu_tot, enerd, vir, pres, -1, FALSE); ++ ++ /* Calc derivative along line */ ++ p = s_c->s.cg_p; ++ sf = s_c->f; ++ gpc = 0; ++ for (i = 0; i < mdatoms->homenr; i++) ++ { ++ for (m = 0; m < DIM; m++) ++ { ++ gpc -= p[i][m]*sf[i][m]; /* f is negative gradient, thus the sign */ ++ } ++ } ++ /* Sum the gradient along the line across CPUs */ ++ if (PAR(cr)) ++ { ++ gmx_sumd(1, &gpc, cr); ++ } ++ ++ /* This is the max amount of increase in energy we tolerate */ ++ tmp = sqrt(GMX_REAL_EPS)*fabs(s_a->epot); ++ ++ /* Accept the step if the energy is lower, or if it is not significantly higher ++ * and the line derivative is still negative. ++ */ ++ if (s_c->epot < s_a->epot || (gpc < 0 && s_c->epot < (s_a->epot + tmp))) ++ { ++ foundlower = TRUE; ++ /* Great, we found a better energy. Increase step for next iteration ++ * if we are still going down, decrease it otherwise ++ */ ++ if (gpc < 0) ++ { ++ stepsize *= 1.618034; /* The golden section */ ++ } ++ else ++ { ++ stepsize *= 0.618034; /* 1/golden section */ ++ } ++ } ++ else ++ { ++ /* New energy is the same or higher. We will have to do some work ++ * to find a smaller value in the interval. Take smaller step next time! ++ */ ++ foundlower = FALSE; ++ stepsize *= 0.618034; ++ } ++ ++ ++ ++ ++ /* OK, if we didn't find a lower value we will have to locate one now - there must ++ * be one in the interval [a=0,c]. ++ * The same thing is valid here, though: Don't spend dozens of iterations to find ++ * the line minimum. We try to interpolate based on the derivative at the endpoints, ++ * and only continue until we find a lower value. In most cases this means 1-2 iterations. ++ * ++ * I also have a safeguard for potentially really patological functions so we never ++ * take more than 20 steps before we give up ... ++ * ++ * If we already found a lower value we just skip this step and continue to the update. ++ */ ++ if (!foundlower) ++ { ++ nminstep = 0; ++ ++ do ++ { ++ /* Select a new trial point. ++ * If the derivatives at points a & c have different sign we interpolate to zero, ++ * otherwise just do a bisection. ++ */ ++ if (gpa < 0 && gpc > 0) ++ { ++ b = a + gpa*(a-c)/(gpc-gpa); ++ } ++ else ++ { ++ b = 0.5*(a+c); ++ } ++ ++ /* safeguard if interpolation close to machine accuracy causes errors: ++ * never go outside the interval ++ */ ++ if (b <= a || b >= c) ++ { ++ b = 0.5*(a+c); ++ } ++ ++ if (DOMAINDECOMP(cr) && s_min->s.ddp_count != cr->dd->ddp_count) ++ { ++ /* Reload the old state */ ++ em_dd_partition_system(fplog, -1, cr, top_global, inputrec, ++ s_min, top, mdatoms, fr, vsite, constr, ++ nrnb, wcycle); ++ } ++ ++ /* Take a trial step to this new point - new coords in s_b */ ++ do_em_step(cr, inputrec, mdatoms, fr->bMolPBC, s_min, b, s_min->s.cg_p, s_b, ++ constr, top, nrnb, wcycle, -1); ++ ++ neval++; ++ /* Calculate energy for the trial step */ ++ evaluate_energy(fplog, cr, ++ top_global, s_b, top, ++ inputrec, nrnb, wcycle, gstat, ++ vsite, constr, fcd, graph, mdatoms, fr, ++ mu_tot, enerd, vir, pres, -1, FALSE); ++ ++ /* p does not change within a step, but since the domain decomposition ++ * might change, we have to use cg_p of s_b here. ++ */ ++ p = s_b->s.cg_p; ++ sf = s_b->f; ++ gpb = 0; ++ for (i = 0; i < mdatoms->homenr; i++) ++ { ++ for (m = 0; m < DIM; m++) ++ { ++ gpb -= p[i][m]*sf[i][m]; /* f is negative gradient, thus the sign */ ++ } ++ } ++ /* Sum the gradient along the line across CPUs */ ++ if (PAR(cr)) ++ { ++ gmx_sumd(1, &gpb, cr); ++ } ++ ++ if (debug) ++ { ++ fprintf(debug, "CGE: EpotA %f EpotB %f EpotC %f gpb %f\n", ++ s_a->epot, s_b->epot, s_c->epot, gpb); ++ } ++ ++ epot_repl = s_b->epot; ++ ++ /* Keep one of the intervals based on the value of the derivative at the new point */ ++ if (gpb > 0) ++ { ++ /* Replace c endpoint with b */ ++ swap_em_state(s_b, s_c); ++ c = b; ++ gpc = gpb; ++ } ++ else ++ { ++ /* Replace a endpoint with b */ ++ swap_em_state(s_b, s_a); ++ a = b; ++ gpa = gpb; ++ } ++ ++ /* ++ * Stop search as soon as we find a value smaller than the endpoints. ++ * Never run more than 20 steps, no matter what. ++ */ ++ nminstep++; ++ } ++ while ((epot_repl > s_a->epot || epot_repl > s_c->epot) && ++ (nminstep < 20)); ++ ++ if (fabs(epot_repl - s_min->epot) < fabs(s_min->epot)*GMX_REAL_EPS || ++ nminstep >= 20) ++ { ++ /* OK. We couldn't find a significantly lower energy. ++ * If beta==0 this was steepest descent, and then we give up. ++ * If not, set beta=0 and restart with steepest descent before quitting. ++ */ ++ if (beta == 0.0) ++ { ++ /* Converged */ ++ converged = TRUE; ++ break; ++ } ++ else ++ { ++ /* Reset memory before giving up */ ++ beta = 0.0; ++ continue; ++ } ++ } ++ ++ /* Select min energy state of A & C, put the best in B. ++ */ ++ if (s_c->epot < s_a->epot) ++ { ++ if (debug) ++ { ++ fprintf(debug, "CGE: C (%f) is lower than A (%f), moving C to B\n", ++ s_c->epot, s_a->epot); ++ } ++ swap_em_state(s_b, s_c); ++ gpb = gpc; ++ b = c; ++ } ++ else ++ { ++ if (debug) ++ { ++ fprintf(debug, "CGE: A (%f) is lower than C (%f), moving A to B\n", ++ s_a->epot, s_c->epot); ++ } ++ swap_em_state(s_b, s_a); ++ gpb = gpa; ++ b = a; ++ } ++ ++ } ++ else ++ { ++ if (debug) ++ { ++ fprintf(debug, "CGE: Found a lower energy %f, moving C to B\n", ++ s_c->epot); ++ } ++ swap_em_state(s_b, s_c); ++ gpb = gpc; ++ b = c; ++ } ++ ++ /* new search direction */ ++ /* beta = 0 means forget all memory and restart with steepest descents. */ ++ if (nstcg && ((step % nstcg) == 0)) ++ { ++ beta = 0.0; ++ } ++ else ++ { ++ /* s_min->fnorm cannot be zero, because then we would have converged ++ * and broken out. ++ */ ++ ++ /* Polak-Ribiere update. ++ * Change to fnorm2/fnorm2_old for Fletcher-Reeves ++ */ ++ beta = pr_beta(cr, &inputrec->opts, mdatoms, top_global, s_min, s_b); ++ } ++ /* Limit beta to prevent oscillations */ ++ if (fabs(beta) > 5.0) ++ { ++ beta = 0.0; ++ } ++ ++ ++ /* update positions */ ++ swap_em_state(s_min, s_b); ++ gpa = gpb; ++ ++ /* Print it if necessary */ ++ if (MASTER(cr)) ++ { ++ if (bVerbose) ++ { ++ fprintf(stderr, "\rStep %d, Epot=%12.6e, Fnorm=%9.3e, Fmax=%9.3e (atom %d)\n", ++ step, s_min->epot, s_min->fnorm/sqrt(state_global->natoms), ++ s_min->fmax, s_min->a_fmax+1); ++ } ++ /* Store the new (lower) energies */ ++ upd_mdebin(mdebin, FALSE, FALSE, (double)step, ++ mdatoms->tmass, enerd, &s_min->s, inputrec->fepvals, inputrec->expandedvals, s_min->s.box, ++ NULL, NULL, vir, pres, NULL, mu_tot, constr); ++ ++ do_log = do_per_step(step, inputrec->nstlog); ++ do_ene = do_per_step(step, inputrec->nstenergy); ++ ++ /* Prepare IMD energy record, if bIMD is TRUE. */ ++ IMD_fill_energy_record(inputrec->bIMD, inputrec->imd, enerd, step, TRUE); ++ ++ if (do_log) ++ { ++ print_ebin_header(fplog, step, step, s_min->s.lambda[efptFEP]); ++ } ++ print_ebin(mdoutf_get_fp_ene(outf), do_ene, FALSE, FALSE, ++ do_log ? fplog : NULL, step, step, eprNORMAL, ++ TRUE, mdebin, fcd, &(top_global->groups), &(inputrec->opts)); ++ } ++ ++ /* Send energies and positions to the IMD client if bIMD is TRUE. */ ++ if (do_IMD(inputrec->bIMD, step, cr, TRUE, state_global->box, state_global->x, inputrec, 0, wcycle) && MASTER(cr)) ++ { ++ IMD_send_positions(inputrec->imd); ++ } ++ ++ /* Stop when the maximum force lies below tolerance. ++ * If we have reached machine precision, converged is already set to true. ++ */ ++ converged = converged || (s_min->fmax < inputrec->em_tol); ++ ++ } /* End of the loop */ ++ ++ /* IMD cleanup, if bIMD is TRUE. */ ++ IMD_finalize(inputrec->bIMD, inputrec->imd); ++ ++ if (converged) ++ { ++ step--; /* we never took that last step in this case */ ++ ++ } ++ if (s_min->fmax > inputrec->em_tol) ++ { ++ if (MASTER(cr)) ++ { ++ warn_step(stderr, inputrec->em_tol, step-1 == number_steps, FALSE); ++ warn_step(fplog, inputrec->em_tol, step-1 == number_steps, FALSE); ++ } ++ converged = FALSE; ++ } ++ ++ if (MASTER(cr)) ++ { ++ /* If we printed energy and/or logfile last step (which was the last step) ++ * we don't have to do it again, but otherwise print the final values. ++ */ ++ if (!do_log) ++ { ++ /* Write final value to log since we didn't do anything the last step */ ++ print_ebin_header(fplog, step, step, s_min->s.lambda[efptFEP]); ++ } ++ if (!do_ene || !do_log) ++ { ++ /* Write final energy file entries */ ++ print_ebin(mdoutf_get_fp_ene(outf), !do_ene, FALSE, FALSE, ++ !do_log ? fplog : NULL, step, step, eprNORMAL, ++ TRUE, mdebin, fcd, &(top_global->groups), &(inputrec->opts)); ++ } ++ } ++ ++ /* Print some stuff... */ ++ if (MASTER(cr)) ++ { ++ fprintf(stderr, "\nwriting lowest energy coordinates.\n"); ++ } ++ ++ /* IMPORTANT! ++ * For accurate normal mode calculation it is imperative that we ++ * store the last conformation into the full precision binary trajectory. ++ * ++ * However, we should only do it if we did NOT already write this step ++ * above (which we did if do_x or do_f was true). ++ */ ++ do_x = !do_per_step(step, inputrec->nstxout); ++ do_f = (inputrec->nstfout > 0 && !do_per_step(step, inputrec->nstfout)); ++ ++ write_em_traj(fplog, cr, outf, do_x, do_f, ftp2fn(efSTO, nfile, fnm), ++ top_global, inputrec, step, ++ s_min, state_global, f_global); ++ ++ fnormn = s_min->fnorm/sqrt(state_global->natoms); ++ ++ if (MASTER(cr)) ++ { ++ print_converged(stderr, CG, inputrec->em_tol, step, converged, number_steps, ++ s_min->epot, s_min->fmax, s_min->a_fmax, fnormn); ++ print_converged(fplog, CG, inputrec->em_tol, step, converged, number_steps, ++ s_min->epot, s_min->fmax, s_min->a_fmax, fnormn); ++ ++ fprintf(fplog, "\nPerformed %d energy evaluations in total.\n", neval); ++ } ++ ++ finish_em(cr, outf, walltime_accounting, wcycle); ++ ++ /* To print the actual number of steps we needed somewhere */ ++ walltime_accounting_set_nsteps_done(walltime_accounting, step); ++ ++ return 0; ++} /* That's all folks */ ++ ++ ++double do_lbfgs(FILE *fplog, t_commrec *cr, ++ int nfile, const t_filenm fnm[], ++ const output_env_t gmx_unused oenv, gmx_bool bVerbose, gmx_bool gmx_unused bCompact, ++ int gmx_unused nstglobalcomm, ++ gmx_vsite_t *vsite, gmx_constr_t constr, ++ int gmx_unused stepout, ++ t_inputrec *inputrec, ++ gmx_mtop_t *top_global, t_fcdata *fcd, ++ t_state *state, ++ t_mdatoms *mdatoms, ++ t_nrnb *nrnb, gmx_wallcycle_t wcycle, ++ gmx_edsam_t gmx_unused ed, ++ t_forcerec *fr, ++ int gmx_unused repl_ex_nst, int gmx_unused repl_ex_nex, int gmx_unused repl_ex_seed, ++ gmx_membed_t gmx_unused membed, ++ real gmx_unused cpt_period, real gmx_unused max_hours, ++ const char gmx_unused *deviceOptions, ++ int imdport, ++ unsigned long gmx_unused Flags, ++ gmx_walltime_accounting_t walltime_accounting) ++{ ++ static const char *LBFGS = "Low-Memory BFGS Minimizer"; ++ em_state_t ems; ++ gmx_localtop_t *top; ++ gmx_enerdata_t *enerd; ++ rvec *f; ++ gmx_global_stat_t gstat; ++ t_graph *graph; ++ rvec *f_global; ++ int ncorr, nmaxcorr, point, cp, neval, nminstep; ++ double stepsize, gpa, gpb, gpc, tmp, minstep; ++ real *rho, *alpha, *ff, *xx, *p, *s, *lastx, *lastf, **dx, **dg; ++ real *xa, *xb, *xc, *fa, *fb, *fc, *xtmp, *ftmp; ++ real a, b, c, maxdelta, delta; ++ real diag, Epot0, Epot, EpotA, EpotB, EpotC; ++ real dgdx, dgdg, sq, yr, beta; ++ t_mdebin *mdebin; ++ gmx_bool converged, first; ++ rvec mu_tot; ++ real fnorm, fmax; ++ gmx_bool do_log, do_ene, do_x, do_f, foundlower, *frozen; ++ tensor vir, pres; ++ int start, end, number_steps; ++ gmx_mdoutf_t outf; ++ int i, k, m, n, nfmax, gf, step; ++ int mdof_flags; ++ /* not used */ ++ real terminate; ++ ++ if (PAR(cr)) ++ { ++ gmx_fatal(FARGS, "Cannot do parallel L-BFGS Minimization - yet.\n"); ++ } ++ ++ if (NULL != constr) ++ { ++ gmx_fatal(FARGS, "The combination of constraints and L-BFGS minimization is not implemented. Either do not use constraints, or use another minimizer (e.g. steepest descent)."); ++ } ++ ++ n = 3*state->natoms; ++ nmaxcorr = inputrec->nbfgscorr; ++ ++ /* Allocate memory */ ++ /* Use pointers to real so we dont have to loop over both atoms and ++ * dimensions all the time... ++ * x/f are allocated as rvec *, so make new x0/f0 pointers-to-real ++ * that point to the same memory. ++ */ ++ snew(xa, n); ++ snew(xb, n); ++ snew(xc, n); ++ snew(fa, n); ++ snew(fb, n); ++ snew(fc, n); ++ snew(frozen, n); ++ ++ snew(p, n); ++ snew(lastx, n); ++ snew(lastf, n); ++ snew(rho, nmaxcorr); ++ snew(alpha, nmaxcorr); ++ ++ snew(dx, nmaxcorr); ++ for (i = 0; i < nmaxcorr; i++) ++ { ++ snew(dx[i], n); ++ } ++ ++ snew(dg, nmaxcorr); ++ for (i = 0; i < nmaxcorr; i++) ++ { ++ snew(dg[i], n); ++ } ++ ++ step = 0; ++ neval = 0; ++ ++ /* Init em */ ++ init_em(fplog, LBFGS, cr, inputrec, ++ state, top_global, &ems, &top, &f, &f_global, ++ nrnb, mu_tot, fr, &enerd, &graph, mdatoms, &gstat, vsite, constr, ++ nfile, fnm, &outf, &mdebin, imdport, Flags, wcycle); ++ /* Do_lbfgs is not completely updated like do_steep and do_cg, ++ * so we free some memory again. ++ */ ++ sfree(ems.s.x); ++ sfree(ems.f); ++ ++ xx = (real *)state->x; ++ ff = (real *)f; ++ ++ start = 0; ++ end = mdatoms->homenr; ++ ++ /* Print to log file */ ++ print_em_start(fplog, cr, walltime_accounting, wcycle, LBFGS); ++ ++ do_log = do_ene = do_x = do_f = TRUE; ++ ++ /* Max number of steps */ ++ number_steps = inputrec->nsteps; ++ ++ /* Create a 3*natoms index to tell whether each degree of freedom is frozen */ ++ gf = 0; ++ for (i = start; i < end; i++) ++ { ++ if (mdatoms->cFREEZE) ++ { ++ gf = mdatoms->cFREEZE[i]; ++ } ++ for (m = 0; m < DIM; m++) ++ { ++ frozen[3*i+m] = inputrec->opts.nFreeze[gf][m]; ++ } ++ } ++ if (MASTER(cr)) ++ { ++ sp_header(stderr, LBFGS, inputrec->em_tol, number_steps); ++ } ++ if (fplog) ++ { ++ sp_header(fplog, LBFGS, inputrec->em_tol, number_steps); ++ } ++ ++ if (vsite) ++ { ++ construct_vsites(vsite, state->x, 1, NULL, ++ top->idef.iparams, top->idef.il, ++ fr->ePBC, fr->bMolPBC, cr, state->box); ++ } ++ ++ /* Call the force routine and some auxiliary (neighboursearching etc.) */ ++ /* do_force always puts the charge groups in the box and shifts again ++ * We do not unshift, so molecules are always whole ++ */ ++ neval++; ++ ems.s.x = state->x; ++ ems.f = f; ++ evaluate_energy(fplog, cr, ++ top_global, &ems, top, ++ inputrec, nrnb, wcycle, gstat, ++ vsite, constr, fcd, graph, mdatoms, fr, ++ mu_tot, enerd, vir, pres, -1, TRUE); ++ where(); ++ ++ if (MASTER(cr)) ++ { ++ /* Copy stuff to the energy bin for easy printing etc. */ ++ upd_mdebin(mdebin, FALSE, FALSE, (double)step, ++ mdatoms->tmass, enerd, state, inputrec->fepvals, inputrec->expandedvals, state->box, ++ NULL, NULL, vir, pres, NULL, mu_tot, constr); ++ ++ print_ebin_header(fplog, step, step, state->lambda[efptFEP]); ++ print_ebin(mdoutf_get_fp_ene(outf), TRUE, FALSE, FALSE, fplog, step, step, eprNORMAL, ++ TRUE, mdebin, fcd, &(top_global->groups), &(inputrec->opts)); ++ } ++ where(); ++ ++ /* This is the starting energy */ ++ Epot = enerd->term[F_EPOT]; ++ ++ fnorm = ems.fnorm; ++ fmax = ems.fmax; ++ nfmax = ems.a_fmax; ++ ++ /* Set the initial step. ++ * since it will be multiplied by the non-normalized search direction ++ * vector (force vector the first time), we scale it by the ++ * norm of the force. ++ */ ++ ++ if (MASTER(cr)) ++ { ++ fprintf(stderr, "Using %d BFGS correction steps.\n\n", nmaxcorr); ++ fprintf(stderr, " F-max = %12.5e on atom %d\n", fmax, nfmax+1); ++ fprintf(stderr, " F-Norm = %12.5e\n", fnorm/sqrt(state->natoms)); ++ fprintf(stderr, "\n"); ++ /* and copy to the log file too... */ ++ fprintf(fplog, "Using %d BFGS correction steps.\n\n", nmaxcorr); ++ fprintf(fplog, " F-max = %12.5e on atom %d\n", fmax, nfmax+1); ++ fprintf(fplog, " F-Norm = %12.5e\n", fnorm/sqrt(state->natoms)); ++ fprintf(fplog, "\n"); ++ } ++ ++ point = 0; ++ for (i = 0; i < n; i++) ++ { ++ if (!frozen[i]) ++ { ++ dx[point][i] = ff[i]; /* Initial search direction */ ++ } ++ else ++ { ++ dx[point][i] = 0; ++ } ++ } ++ ++ stepsize = 1.0/fnorm; ++ converged = FALSE; ++ ++ /* Start the loop over BFGS steps. ++ * Each successful step is counted, and we continue until ++ * we either converge or reach the max number of steps. ++ */ ++ ++ ncorr = 0; ++ ++ /* Set the gradient from the force */ ++ converged = FALSE; ++ for (step = 0; (number_steps < 0 || (number_steps >= 0 && step <= number_steps)) && !converged; step++) ++ { ++ ++ /* Write coordinates if necessary */ ++ do_x = do_per_step(step, inputrec->nstxout); ++ do_f = do_per_step(step, inputrec->nstfout); ++ ++ mdof_flags = 0; ++ if (do_x) ++ { ++ mdof_flags |= MDOF_X; ++ } ++ ++ if (do_f) ++ { ++ mdof_flags |= MDOF_F; ++ } ++ ++ if (inputrec->bIMD) ++ { ++ mdof_flags |= MDOF_IMD; ++ } ++ ++ mdoutf_write_to_trajectory_files(fplog, cr, outf, mdof_flags, ++ top_global, step, (real)step, state, state, f, f); ++ ++ /* Do the linesearching in the direction dx[point][0..(n-1)] */ ++ ++ /* pointer to current direction - point=0 first time here */ ++ s = dx[point]; ++ ++ /* calculate line gradient */ ++ for (gpa = 0, i = 0; i < n; i++) ++ { ++ gpa -= s[i]*ff[i]; ++ } ++ ++ /* Calculate minimum allowed stepsize, before the average (norm) ++ * relative change in coordinate is smaller than precision ++ */ ++ for (minstep = 0, i = 0; i < n; i++) ++ { ++ tmp = fabs(xx[i]); ++ if (tmp < 1.0) ++ { ++ tmp = 1.0; ++ } ++ tmp = s[i]/tmp; ++ minstep += tmp*tmp; ++ } ++ minstep = GMX_REAL_EPS/sqrt(minstep/n); ++ ++ if (stepsize < minstep) ++ { ++ converged = TRUE; ++ break; ++ } ++ ++ /* Store old forces and coordinates */ ++ for (i = 0; i < n; i++) ++ { ++ lastx[i] = xx[i]; ++ lastf[i] = ff[i]; ++ } ++ Epot0 = Epot; ++ ++ first = TRUE; ++ ++ for (i = 0; i < n; i++) ++ { ++ xa[i] = xx[i]; ++ } ++ ++ /* Take a step downhill. ++ * In theory, we should minimize the function along this direction. ++ * That is quite possible, but it turns out to take 5-10 function evaluations ++ * for each line. However, we dont really need to find the exact minimum - ++ * it is much better to start a new BFGS step in a modified direction as soon ++ * as we are close to it. This will save a lot of energy evaluations. ++ * ++ * In practice, we just try to take a single step. ++ * If it worked (i.e. lowered the energy), we increase the stepsize but ++ * the continue straight to the next BFGS step without trying to find any minimum. ++ * If it didn't work (higher energy), there must be a minimum somewhere between ++ * the old position and the new one. ++ * ++ * Due to the finite numerical accuracy, it turns out that it is a good idea ++ * to even accept a SMALL increase in energy, if the derivative is still downhill. ++ * This leads to lower final energies in the tests I've done. / Erik ++ */ ++ foundlower = FALSE; ++ EpotA = Epot0; ++ a = 0.0; ++ c = a + stepsize; /* reference position along line is zero */ ++ ++ /* Check stepsize first. We do not allow displacements ++ * larger than emstep. ++ */ ++ do ++ { ++ c = a + stepsize; ++ maxdelta = 0; ++ for (i = 0; i < n; i++) ++ { ++ delta = c*s[i]; ++ if (delta > maxdelta) ++ { ++ maxdelta = delta; ++ } ++ } ++ if (maxdelta > inputrec->em_stepsize) ++ { ++ stepsize *= 0.1; ++ } ++ } ++ while (maxdelta > inputrec->em_stepsize); ++ ++ /* Take a trial step */ ++ for (i = 0; i < n; i++) ++ { ++ xc[i] = lastx[i] + c*s[i]; ++ } ++ ++ neval++; ++ /* Calculate energy for the trial step */ ++ ems.s.x = (rvec *)xc; ++ ems.f = (rvec *)fc; ++ evaluate_energy(fplog, cr, ++ top_global, &ems, top, ++ inputrec, nrnb, wcycle, gstat, ++ vsite, constr, fcd, graph, mdatoms, fr, ++ mu_tot, enerd, vir, pres, step, FALSE); ++ EpotC = ems.epot; ++ ++ /* Calc derivative along line */ ++ for (gpc = 0, i = 0; i < n; i++) ++ { ++ gpc -= s[i]*fc[i]; /* f is negative gradient, thus the sign */ ++ } ++ /* Sum the gradient along the line across CPUs */ ++ if (PAR(cr)) ++ { ++ gmx_sumd(1, &gpc, cr); ++ } ++ ++ /* This is the max amount of increase in energy we tolerate */ ++ tmp = sqrt(GMX_REAL_EPS)*fabs(EpotA); ++ ++ /* Accept the step if the energy is lower, or if it is not significantly higher ++ * and the line derivative is still negative. ++ */ ++ if (EpotC < EpotA || (gpc < 0 && EpotC < (EpotA+tmp))) ++ { ++ foundlower = TRUE; ++ /* Great, we found a better energy. Increase step for next iteration ++ * if we are still going down, decrease it otherwise ++ */ ++ if (gpc < 0) ++ { ++ stepsize *= 1.618034; /* The golden section */ ++ } ++ else ++ { ++ stepsize *= 0.618034; /* 1/golden section */ ++ } ++ } ++ else ++ { ++ /* New energy is the same or higher. We will have to do some work ++ * to find a smaller value in the interval. Take smaller step next time! ++ */ ++ foundlower = FALSE; ++ stepsize *= 0.618034; ++ } ++ ++ /* OK, if we didn't find a lower value we will have to locate one now - there must ++ * be one in the interval [a=0,c]. ++ * The same thing is valid here, though: Don't spend dozens of iterations to find ++ * the line minimum. We try to interpolate based on the derivative at the endpoints, ++ * and only continue until we find a lower value. In most cases this means 1-2 iterations. ++ * ++ * I also have a safeguard for potentially really patological functions so we never ++ * take more than 20 steps before we give up ... ++ * ++ * If we already found a lower value we just skip this step and continue to the update. ++ */ ++ ++ if (!foundlower) ++ { ++ ++ nminstep = 0; ++ do ++ { ++ /* Select a new trial point. ++ * If the derivatives at points a & c have different sign we interpolate to zero, ++ * otherwise just do a bisection. ++ */ ++ ++ if (gpa < 0 && gpc > 0) ++ { ++ b = a + gpa*(a-c)/(gpc-gpa); ++ } ++ else ++ { ++ b = 0.5*(a+c); ++ } ++ ++ /* safeguard if interpolation close to machine accuracy causes errors: ++ * never go outside the interval ++ */ ++ if (b <= a || b >= c) ++ { ++ b = 0.5*(a+c); ++ } ++ ++ /* Take a trial step */ ++ for (i = 0; i < n; i++) ++ { ++ xb[i] = lastx[i] + b*s[i]; ++ } ++ ++ neval++; ++ /* Calculate energy for the trial step */ ++ ems.s.x = (rvec *)xb; ++ ems.f = (rvec *)fb; ++ evaluate_energy(fplog, cr, ++ top_global, &ems, top, ++ inputrec, nrnb, wcycle, gstat, ++ vsite, constr, fcd, graph, mdatoms, fr, ++ mu_tot, enerd, vir, pres, step, FALSE); ++ EpotB = ems.epot; ++ ++ fnorm = ems.fnorm; ++ ++ for (gpb = 0, i = 0; i < n; i++) ++ { ++ gpb -= s[i]*fb[i]; /* f is negative gradient, thus the sign */ ++ ++ } ++ /* Sum the gradient along the line across CPUs */ ++ if (PAR(cr)) ++ { ++ gmx_sumd(1, &gpb, cr); ++ } ++ ++ /* Keep one of the intervals based on the value of the derivative at the new point */ ++ if (gpb > 0) ++ { ++ /* Replace c endpoint with b */ ++ EpotC = EpotB; ++ c = b; ++ gpc = gpb; ++ /* swap coord pointers b/c */ ++ xtmp = xb; ++ ftmp = fb; ++ xb = xc; ++ fb = fc; ++ xc = xtmp; ++ fc = ftmp; ++ } ++ else ++ { ++ /* Replace a endpoint with b */ ++ EpotA = EpotB; ++ a = b; ++ gpa = gpb; ++ /* swap coord pointers a/b */ ++ xtmp = xb; ++ ftmp = fb; ++ xb = xa; ++ fb = fa; ++ xa = xtmp; ++ fa = ftmp; ++ } ++ ++ /* ++ * Stop search as soon as we find a value smaller than the endpoints, ++ * or if the tolerance is below machine precision. ++ * Never run more than 20 steps, no matter what. ++ */ ++ nminstep++; ++ } ++ while ((EpotB > EpotA || EpotB > EpotC) && (nminstep < 20)); ++ ++ if (fabs(EpotB-Epot0) < GMX_REAL_EPS || nminstep >= 20) ++ { ++ /* OK. We couldn't find a significantly lower energy. ++ * If ncorr==0 this was steepest descent, and then we give up. ++ * If not, reset memory to restart as steepest descent before quitting. ++ */ ++ if (ncorr == 0) ++ { ++ /* Converged */ ++ converged = TRUE; ++ break; ++ } ++ else ++ { ++ /* Reset memory */ ++ ncorr = 0; ++ /* Search in gradient direction */ ++ for (i = 0; i < n; i++) ++ { ++ dx[point][i] = ff[i]; ++ } ++ /* Reset stepsize */ ++ stepsize = 1.0/fnorm; ++ continue; ++ } ++ } ++ ++ /* Select min energy state of A & C, put the best in xx/ff/Epot ++ */ ++ if (EpotC < EpotA) ++ { ++ Epot = EpotC; ++ /* Use state C */ ++ for (i = 0; i < n; i++) ++ { ++ xx[i] = xc[i]; ++ ff[i] = fc[i]; ++ } ++ stepsize = c; ++ } ++ else ++ { ++ Epot = EpotA; ++ /* Use state A */ ++ for (i = 0; i < n; i++) ++ { ++ xx[i] = xa[i]; ++ ff[i] = fa[i]; ++ } ++ stepsize = a; ++ } ++ ++ } ++ else ++ { ++ /* found lower */ ++ Epot = EpotC; ++ /* Use state C */ ++ for (i = 0; i < n; i++) ++ { ++ xx[i] = xc[i]; ++ ff[i] = fc[i]; ++ } ++ stepsize = c; ++ } ++ ++ /* Update the memory information, and calculate a new ++ * approximation of the inverse hessian ++ */ ++ ++ /* Have new data in Epot, xx, ff */ ++ if (ncorr < nmaxcorr) ++ { ++ ncorr++; ++ } ++ ++ for (i = 0; i < n; i++) ++ { ++ dg[point][i] = lastf[i]-ff[i]; ++ dx[point][i] *= stepsize; ++ } ++ ++ dgdg = 0; ++ dgdx = 0; ++ for (i = 0; i < n; i++) ++ { ++ dgdg += dg[point][i]*dg[point][i]; ++ dgdx += dg[point][i]*dx[point][i]; ++ } ++ ++ diag = dgdx/dgdg; ++ ++ rho[point] = 1.0/dgdx; ++ point++; ++ ++ if (point >= nmaxcorr) ++ { ++ point = 0; ++ } ++ ++ /* Update */ ++ for (i = 0; i < n; i++) ++ { ++ p[i] = ff[i]; ++ } ++ ++ cp = point; ++ ++ /* Recursive update. First go back over the memory points */ ++ for (k = 0; k < ncorr; k++) ++ { ++ cp--; ++ if (cp < 0) ++ { ++ cp = ncorr-1; ++ } ++ ++ sq = 0; ++ for (i = 0; i < n; i++) ++ { ++ sq += dx[cp][i]*p[i]; ++ } ++ ++ alpha[cp] = rho[cp]*sq; ++ ++ for (i = 0; i < n; i++) ++ { ++ p[i] -= alpha[cp]*dg[cp][i]; ++ } ++ } ++ ++ for (i = 0; i < n; i++) ++ { ++ p[i] *= diag; ++ } ++ ++ /* And then go forward again */ ++ for (k = 0; k < ncorr; k++) ++ { ++ yr = 0; ++ for (i = 0; i < n; i++) ++ { ++ yr += p[i]*dg[cp][i]; ++ } ++ ++ beta = rho[cp]*yr; ++ beta = alpha[cp]-beta; ++ ++ for (i = 0; i < n; i++) ++ { ++ p[i] += beta*dx[cp][i]; ++ } ++ ++ cp++; ++ if (cp >= ncorr) ++ { ++ cp = 0; ++ } ++ } ++ ++ for (i = 0; i < n; i++) ++ { ++ if (!frozen[i]) ++ { ++ dx[point][i] = p[i]; ++ } ++ else ++ { ++ dx[point][i] = 0; ++ } ++ } ++ ++ stepsize = 1.0; ++ ++ /* Test whether the convergence criterion is met */ ++ get_f_norm_max(cr, &(inputrec->opts), mdatoms, f, &fnorm, &fmax, &nfmax); ++ ++ /* Print it if necessary */ ++ if (MASTER(cr)) ++ { ++ if (bVerbose) ++ { ++ fprintf(stderr, "\rStep %d, Epot=%12.6e, Fnorm=%9.3e, Fmax=%9.3e (atom %d)\n", ++ step, Epot, fnorm/sqrt(state->natoms), fmax, nfmax+1); ++ } ++ /* Store the new (lower) energies */ ++ upd_mdebin(mdebin, FALSE, FALSE, (double)step, ++ mdatoms->tmass, enerd, state, inputrec->fepvals, inputrec->expandedvals, state->box, ++ NULL, NULL, vir, pres, NULL, mu_tot, constr); ++ do_log = do_per_step(step, inputrec->nstlog); ++ do_ene = do_per_step(step, inputrec->nstenergy); ++ if (do_log) ++ { ++ print_ebin_header(fplog, step, step, state->lambda[efptFEP]); ++ } ++ print_ebin(mdoutf_get_fp_ene(outf), do_ene, FALSE, FALSE, ++ do_log ? fplog : NULL, step, step, eprNORMAL, ++ TRUE, mdebin, fcd, &(top_global->groups), &(inputrec->opts)); ++ } ++ ++ /* Send x and E to IMD client, if bIMD is TRUE. */ ++ if (do_IMD(inputrec->bIMD, step, cr, TRUE, state->box, state->x, inputrec, 0, wcycle) && MASTER(cr)) ++ { ++ IMD_send_positions(inputrec->imd); ++ } ++ ++ /* Stop when the maximum force lies below tolerance. ++ * If we have reached machine precision, converged is already set to true. ++ */ ++ ++ converged = converged || (fmax < inputrec->em_tol); ++ ++ } /* End of the loop */ ++ ++ /* IMD cleanup, if bIMD is TRUE. */ ++ IMD_finalize(inputrec->bIMD, inputrec->imd); ++ ++ if (converged) ++ { ++ step--; /* we never took that last step in this case */ ++ ++ } ++ if (fmax > inputrec->em_tol) ++ { ++ if (MASTER(cr)) ++ { ++ warn_step(stderr, inputrec->em_tol, step-1 == number_steps, FALSE); ++ warn_step(fplog, inputrec->em_tol, step-1 == number_steps, FALSE); ++ } ++ converged = FALSE; ++ } ++ ++ /* If we printed energy and/or logfile last step (which was the last step) ++ * we don't have to do it again, but otherwise print the final values. ++ */ ++ if (!do_log) /* Write final value to log since we didn't do anythin last step */ ++ { ++ print_ebin_header(fplog, step, step, state->lambda[efptFEP]); ++ } ++ if (!do_ene || !do_log) /* Write final energy file entries */ ++ { ++ print_ebin(mdoutf_get_fp_ene(outf), !do_ene, FALSE, FALSE, ++ !do_log ? fplog : NULL, step, step, eprNORMAL, ++ TRUE, mdebin, fcd, &(top_global->groups), &(inputrec->opts)); ++ } ++ ++ /* Print some stuff... */ ++ if (MASTER(cr)) ++ { ++ fprintf(stderr, "\nwriting lowest energy coordinates.\n"); ++ } ++ ++ /* IMPORTANT! ++ * For accurate normal mode calculation it is imperative that we ++ * store the last conformation into the full precision binary trajectory. ++ * ++ * However, we should only do it if we did NOT already write this step ++ * above (which we did if do_x or do_f was true). ++ */ ++ do_x = !do_per_step(step, inputrec->nstxout); ++ do_f = !do_per_step(step, inputrec->nstfout); ++ write_em_traj(fplog, cr, outf, do_x, do_f, ftp2fn(efSTO, nfile, fnm), ++ top_global, inputrec, step, ++ &ems, state, f); ++ ++ if (MASTER(cr)) ++ { ++ print_converged(stderr, LBFGS, inputrec->em_tol, step, converged, ++ number_steps, Epot, fmax, nfmax, fnorm/sqrt(state->natoms)); ++ print_converged(fplog, LBFGS, inputrec->em_tol, step, converged, ++ number_steps, Epot, fmax, nfmax, fnorm/sqrt(state->natoms)); ++ ++ fprintf(fplog, "\nPerformed %d energy evaluations in total.\n", neval); ++ } ++ ++ finish_em(cr, outf, walltime_accounting, wcycle); ++ ++ /* To print the actual number of steps we needed somewhere */ ++ walltime_accounting_set_nsteps_done(walltime_accounting, step); ++ ++ return 0; ++} /* That's all folks */ ++ ++ ++double do_steep(FILE *fplog, t_commrec *cr, ++ int nfile, const t_filenm fnm[], ++ const output_env_t gmx_unused oenv, gmx_bool bVerbose, gmx_bool gmx_unused bCompact, ++ int gmx_unused nstglobalcomm, ++ gmx_vsite_t *vsite, gmx_constr_t constr, ++ int gmx_unused stepout, ++ t_inputrec *inputrec, ++ gmx_mtop_t *top_global, t_fcdata *fcd, ++ t_state *state_global, ++ t_mdatoms *mdatoms, ++ t_nrnb *nrnb, gmx_wallcycle_t wcycle, ++ gmx_edsam_t gmx_unused ed, ++ t_forcerec *fr, ++ int gmx_unused repl_ex_nst, int gmx_unused repl_ex_nex, int gmx_unused repl_ex_seed, ++ gmx_membed_t gmx_unused membed, ++ real gmx_unused cpt_period, real gmx_unused max_hours, ++ const char gmx_unused *deviceOptions, ++ int imdport, ++ unsigned long gmx_unused Flags, ++ gmx_walltime_accounting_t walltime_accounting) ++{ ++ const char *SD = "Steepest Descents"; ++ em_state_t *s_min, *s_try; ++ rvec *f_global; ++ gmx_localtop_t *top; ++ gmx_enerdata_t *enerd; ++ rvec *f; ++ gmx_global_stat_t gstat; ++ t_graph *graph; ++ real stepsize, constepsize; ++ real ustep, fnormn; ++ gmx_mdoutf_t outf; ++ t_mdebin *mdebin; ++ gmx_bool bDone, bAbort, do_x, do_f; ++ tensor vir, pres; ++ rvec mu_tot; ++ int nsteps; ++ int count = 0; ++ int steps_accepted = 0; ++ /* not used */ ++ real terminate = 0; ++ ++ s_min = init_em_state(); ++ s_try = init_em_state(); ++ ++ /* Init em and store the local state in s_try */ ++ init_em(fplog, SD, cr, inputrec, ++ state_global, top_global, s_try, &top, &f, &f_global, ++ nrnb, mu_tot, fr, &enerd, &graph, mdatoms, &gstat, vsite, constr, ++ nfile, fnm, &outf, &mdebin, imdport, Flags, wcycle); ++ ++ /* Print to log file */ ++ print_em_start(fplog, cr, walltime_accounting, wcycle, SD); ++ ++ /* Set variables for stepsize (in nm). This is the largest ++ * step that we are going to make in any direction. ++ */ ++ ustep = inputrec->em_stepsize; ++ stepsize = 0; ++ ++ /* Max number of steps */ ++ nsteps = inputrec->nsteps; ++ ++ if (MASTER(cr)) ++ { ++ /* Print to the screen */ ++ sp_header(stderr, SD, inputrec->em_tol, nsteps); ++ } ++ if (fplog) ++ { ++ sp_header(fplog, SD, inputrec->em_tol, nsteps); ++ } ++ ++ /**** HERE STARTS THE LOOP **** ++ * count is the counter for the number of steps ++ * bDone will be TRUE when the minimization has converged ++ * bAbort will be TRUE when nsteps steps have been performed or when ++ * the stepsize becomes smaller than is reasonable for machine precision ++ */ ++ count = 0; ++ bDone = FALSE; ++ bAbort = FALSE; ++ while (!bDone && !bAbort) ++ { ++ bAbort = (nsteps >= 0) && (count == nsteps); ++ ++ /* set new coordinates, except for first step */ ++ if (count > 0) ++ { ++ do_em_step(cr, inputrec, mdatoms, fr->bMolPBC, ++ s_min, stepsize, s_min->f, s_try, ++ constr, top, nrnb, wcycle, count); ++ } ++ ++ evaluate_energy(fplog, cr, ++ top_global, s_try, top, ++ inputrec, nrnb, wcycle, gstat, ++ vsite, constr, fcd, graph, mdatoms, fr, ++ mu_tot, enerd, vir, pres, count, count == 0); ++ ++ if (MASTER(cr)) ++ { ++ print_ebin_header(fplog, count, count, s_try->s.lambda[efptFEP]); ++ } ++ ++ if (count == 0) ++ { ++ s_min->epot = s_try->epot + 1; ++ } ++ ++ /* Print it if necessary */ ++ if (MASTER(cr)) ++ { ++ if (bVerbose) ++ { ++ fprintf(stderr, "Step=%5d, Dmax= %6.1e nm, Epot= %12.5e Fmax= %11.5e, atom= %d%c", ++ count, ustep, s_try->epot, s_try->fmax, s_try->a_fmax+1, ++ (s_try->epot < s_min->epot) ? '\n' : '\r'); ++ } ++ ++ if (s_try->epot < s_min->epot) ++ { ++ /* Store the new (lower) energies */ ++ upd_mdebin(mdebin, FALSE, FALSE, (double)count, ++ mdatoms->tmass, enerd, &s_try->s, inputrec->fepvals, inputrec->expandedvals, ++ s_try->s.box, NULL, NULL, vir, pres, NULL, mu_tot, constr); ++ ++ /* Prepare IMD energy record, if bIMD is TRUE. */ ++ IMD_fill_energy_record(inputrec->bIMD, inputrec->imd, enerd, count, TRUE); ++ ++ print_ebin(mdoutf_get_fp_ene(outf), TRUE, ++ do_per_step(steps_accepted, inputrec->nstdisreout), ++ do_per_step(steps_accepted, inputrec->nstorireout), ++ fplog, count, count, eprNORMAL, TRUE, ++ mdebin, fcd, &(top_global->groups), &(inputrec->opts)); ++ fflush(fplog); ++ } ++ } ++ ++ /* Now if the new energy is smaller than the previous... ++ * or if this is the first step! ++ * or if we did random steps! ++ */ ++ ++ if ( (count == 0) || (s_try->epot < s_min->epot) ) ++ { ++ steps_accepted++; ++ ++ /* Test whether the convergence criterion is met... */ ++ bDone = (s_try->fmax < inputrec->em_tol); ++ ++ /* Copy the arrays for force, positions and energy */ ++ /* The 'Min' array always holds the coords and forces of the minimal ++ sampled energy */ ++ swap_em_state(s_min, s_try); ++ if (count > 0) ++ { ++ ustep *= 1.2; ++ } ++ ++ /* Write to trn, if necessary */ ++ do_x = do_per_step(steps_accepted, inputrec->nstxout); ++ do_f = do_per_step(steps_accepted, inputrec->nstfout); ++ write_em_traj(fplog, cr, outf, do_x, do_f, NULL, ++ top_global, inputrec, count, ++ s_min, state_global, f_global); ++ } ++ else ++ { ++ /* If energy is not smaller make the step smaller... */ ++ ustep *= 0.5; ++ ++ if (DOMAINDECOMP(cr) && s_min->s.ddp_count != cr->dd->ddp_count) ++ { ++ /* Reload the old state */ ++ em_dd_partition_system(fplog, count, cr, top_global, inputrec, ++ s_min, top, mdatoms, fr, vsite, constr, ++ nrnb, wcycle); ++ } ++ } ++ ++ /* Determine new step */ ++ stepsize = ustep/s_min->fmax; ++ ++ /* Check if stepsize is too small, with 1 nm as a characteristic length */ ++#ifdef GMX_DOUBLE ++ if (count == nsteps || ustep < 1e-12) ++#else ++ if (count == nsteps || ustep < 1e-6) ++#endif ++ { ++ if (MASTER(cr)) ++ { ++ warn_step(stderr, inputrec->em_tol, count == nsteps, constr != NULL); ++ warn_step(fplog, inputrec->em_tol, count == nsteps, constr != NULL); ++ } ++ bAbort = TRUE; ++ } ++ ++ /* Send IMD energies and positions, if bIMD is TRUE. */ ++ if (do_IMD(inputrec->bIMD, count, cr, TRUE, state_global->box, state_global->x, inputrec, 0, wcycle) && MASTER(cr)) ++ { ++ IMD_send_positions(inputrec->imd); ++ } ++ ++ count++; ++ } /* End of the loop */ ++ ++ /* IMD cleanup, if bIMD is TRUE. */ ++ IMD_finalize(inputrec->bIMD, inputrec->imd); ++ ++ /* Print some data... */ ++ if (MASTER(cr)) ++ { ++ fprintf(stderr, "\nwriting lowest energy coordinates.\n"); ++ } ++ write_em_traj(fplog, cr, outf, TRUE, inputrec->nstfout, ftp2fn(efSTO, nfile, fnm), ++ top_global, inputrec, count, ++ s_min, state_global, f_global); ++ ++ fnormn = s_min->fnorm/sqrt(state_global->natoms); ++ ++ if (MASTER(cr)) ++ { ++ print_converged(stderr, SD, inputrec->em_tol, count, bDone, nsteps, ++ s_min->epot, s_min->fmax, s_min->a_fmax, fnormn); ++ print_converged(fplog, SD, inputrec->em_tol, count, bDone, nsteps, ++ s_min->epot, s_min->fmax, s_min->a_fmax, fnormn); ++ } ++ ++ finish_em(cr, outf, walltime_accounting, wcycle); ++ ++ /* To print the actual number of steps we needed somewhere */ ++ inputrec->nsteps = count; ++ ++ walltime_accounting_set_nsteps_done(walltime_accounting, count); ++ ++ return 0; ++} /* That's all folks */ ++ ++ ++double do_nm(FILE *fplog, t_commrec *cr, ++ int nfile, const t_filenm fnm[], ++ const output_env_t gmx_unused oenv, gmx_bool bVerbose, gmx_bool gmx_unused bCompact, ++ int gmx_unused nstglobalcomm, ++ gmx_vsite_t *vsite, gmx_constr_t constr, ++ int gmx_unused stepout, ++ t_inputrec *inputrec, ++ gmx_mtop_t *top_global, t_fcdata *fcd, ++ t_state *state_global, ++ t_mdatoms *mdatoms, ++ t_nrnb *nrnb, gmx_wallcycle_t wcycle, ++ gmx_edsam_t gmx_unused ed, ++ t_forcerec *fr, ++ int gmx_unused repl_ex_nst, int gmx_unused repl_ex_nex, int gmx_unused repl_ex_seed, ++ gmx_membed_t gmx_unused membed, ++ real gmx_unused cpt_period, real gmx_unused max_hours, ++ const char gmx_unused *deviceOptions, ++ int imdport, ++ unsigned long gmx_unused Flags, ++ gmx_walltime_accounting_t walltime_accounting) ++{ ++ const char *NM = "Normal Mode Analysis"; ++ gmx_mdoutf_t outf; ++ int natoms, atom, d; ++ int nnodes, node; ++ rvec *f_global; ++ gmx_localtop_t *top; ++ gmx_enerdata_t *enerd; ++ rvec *f; ++ gmx_global_stat_t gstat; ++ t_graph *graph; ++ real t, t0, lambda, lam0; ++ gmx_bool bNS; ++ tensor vir, pres; ++ rvec mu_tot; ++ rvec *fneg, *dfdx; ++ gmx_bool bSparse; /* use sparse matrix storage format */ ++ size_t sz = 0; ++ gmx_sparsematrix_t * sparse_matrix = NULL; ++ real * full_matrix = NULL; ++ em_state_t * state_work; ++ ++ /* added with respect to mdrun */ ++ int i, j, k, row, col; ++ real der_range = 10.0*sqrt(GMX_REAL_EPS); ++ real x_min; ++ real fnorm, fmax; ++ ++ if (constr != NULL) ++ { ++ gmx_fatal(FARGS, "Constraints present with Normal Mode Analysis, this combination is not supported"); ++ } ++ ++ state_work = init_em_state(); ++ ++ /* Init em and store the local state in state_minimum */ ++ init_em(fplog, NM, cr, inputrec, ++ state_global, top_global, state_work, &top, ++ &f, &f_global, ++ nrnb, mu_tot, fr, &enerd, &graph, mdatoms, &gstat, vsite, constr, ++ nfile, fnm, &outf, NULL, imdport, Flags, wcycle); ++ ++ natoms = top_global->natoms; ++ snew(fneg, natoms); ++ snew(dfdx, natoms); ++ ++#ifndef GMX_DOUBLE ++ if (MASTER(cr)) ++ { ++ fprintf(stderr, ++ "NOTE: This version of Gromacs has been compiled in single precision,\n" ++ " which MIGHT not be accurate enough for normal mode analysis.\n" ++ " Gromacs now uses sparse matrix storage, so the memory requirements\n" ++ " are fairly modest even if you recompile in double precision.\n\n"); ++ } ++#endif ++ ++ /* Check if we can/should use sparse storage format. ++ * ++ * Sparse format is only useful when the Hessian itself is sparse, which it ++ * will be when we use a cutoff. ++ * For small systems (n<1000) it is easier to always use full matrix format, though. ++ */ ++ if (EEL_FULL(fr->eeltype) || fr->rlist == 0.0) ++ { ++ md_print_info(cr, fplog, "Non-cutoff electrostatics used, forcing full Hessian format.\n"); ++ bSparse = FALSE; ++ } ++ else if (top_global->natoms < 1000) ++ { ++ md_print_info(cr, fplog, "Small system size (N=%d), using full Hessian format.\n", top_global->natoms); ++ bSparse = FALSE; ++ } ++ else ++ { ++ md_print_info(cr, fplog, "Using compressed symmetric sparse Hessian format.\n"); ++ bSparse = TRUE; ++ } ++ ++ if (MASTER(cr)) ++ { ++ sz = DIM*top_global->natoms; ++ ++ fprintf(stderr, "Allocating Hessian memory...\n\n"); ++ ++ if (bSparse) ++ { ++ sparse_matrix = gmx_sparsematrix_init(sz); ++ sparse_matrix->compressed_symmetric = TRUE; ++ } ++ else ++ { ++ snew(full_matrix, sz*sz); ++ } ++ } ++ ++ /* Initial values */ ++ t0 = inputrec->init_t; ++ lam0 = inputrec->fepvals->init_lambda; ++ t = t0; ++ lambda = lam0; ++ ++ init_nrnb(nrnb); ++ ++ where(); ++ ++ /* Write start time and temperature */ ++ print_em_start(fplog, cr, walltime_accounting, wcycle, NM); ++ ++ /* fudge nr of steps to nr of atoms */ ++ inputrec->nsteps = natoms*2; ++ ++ if (MASTER(cr)) ++ { ++ fprintf(stderr, "starting normal mode calculation '%s'\n%d steps.\n\n", ++ *(top_global->name), (int)inputrec->nsteps); ++ } ++ ++ nnodes = cr->nnodes; ++ ++ /* Make evaluate_energy do a single node force calculation */ ++ cr->nnodes = 1; ++ evaluate_energy(fplog, cr, ++ top_global, state_work, top, ++ inputrec, nrnb, wcycle, gstat, ++ vsite, constr, fcd, graph, mdatoms, fr, ++ mu_tot, enerd, vir, pres, -1, TRUE); ++ cr->nnodes = nnodes; ++ ++ /* if forces are not small, warn user */ ++ get_state_f_norm_max(cr, &(inputrec->opts), mdatoms, state_work); ++ ++ md_print_info(cr, fplog, "Maximum force:%12.5e\n", state_work->fmax); ++ if (state_work->fmax > 1.0e-3) ++ { ++ md_print_info(cr, fplog, ++ "The force is probably not small enough to " ++ "ensure that you are at a minimum.\n" ++ "Be aware that negative eigenvalues may occur\n" ++ "when the resulting matrix is diagonalized.\n\n"); ++ } ++ ++ /*********************************************************** ++ * ++ * Loop over all pairs in matrix ++ * ++ * do_force called twice. Once with positive and ++ * once with negative displacement ++ * ++ ************************************************************/ ++ ++ /* Steps are divided one by one over the nodes */ ++ for (atom = cr->nodeid; atom < natoms; atom += nnodes) ++ { ++ ++ for (d = 0; d < DIM; d++) ++ { ++ x_min = state_work->s.x[atom][d]; ++ ++ state_work->s.x[atom][d] = x_min - der_range; ++ ++ /* Make evaluate_energy do a single node force calculation */ ++ cr->nnodes = 1; ++ evaluate_energy(fplog, cr, ++ top_global, state_work, top, ++ inputrec, nrnb, wcycle, gstat, ++ vsite, constr, fcd, graph, mdatoms, fr, ++ mu_tot, enerd, vir, pres, atom*2, FALSE); ++ ++ for (i = 0; i < natoms; i++) ++ { ++ copy_rvec(state_work->f[i], fneg[i]); ++ } ++ ++ state_work->s.x[atom][d] = x_min + der_range; ++ ++ evaluate_energy(fplog, cr, ++ top_global, state_work, top, ++ inputrec, nrnb, wcycle, gstat, ++ vsite, constr, fcd, graph, mdatoms, fr, ++ mu_tot, enerd, vir, pres, atom*2+1, FALSE); ++ cr->nnodes = nnodes; ++ ++ /* x is restored to original */ ++ state_work->s.x[atom][d] = x_min; ++ ++ for (j = 0; j < natoms; j++) ++ { ++ for (k = 0; (k < DIM); k++) ++ { ++ dfdx[j][k] = ++ -(state_work->f[j][k] - fneg[j][k])/(2*der_range); ++ } ++ } ++ ++ if (!MASTER(cr)) ++ { ++#ifdef GMX_MPI ++#ifdef GMX_DOUBLE ++#define mpi_type MPI_DOUBLE ++#else ++#define mpi_type MPI_FLOAT ++#endif ++ MPI_Send(dfdx[0], natoms*DIM, mpi_type, MASTERNODE(cr), cr->nodeid, ++ cr->mpi_comm_mygroup); ++#endif ++ } ++ else ++ { ++ for (node = 0; (node < nnodes && atom+node < natoms); node++) ++ { ++ if (node > 0) ++ { ++#ifdef GMX_MPI ++ MPI_Status stat; ++ MPI_Recv(dfdx[0], natoms*DIM, mpi_type, node, node, ++ cr->mpi_comm_mygroup, &stat); ++#undef mpi_type ++#endif ++ } ++ ++ row = (atom + node)*DIM + d; ++ ++ for (j = 0; j < natoms; j++) ++ { ++ for (k = 0; k < DIM; k++) ++ { ++ col = j*DIM + k; ++ ++ if (bSparse) ++ { ++ if (col >= row && dfdx[j][k] != 0.0) ++ { ++ gmx_sparsematrix_increment_value(sparse_matrix, ++ row, col, dfdx[j][k]); ++ } ++ } ++ else ++ { ++ full_matrix[row*sz+col] = dfdx[j][k]; ++ } ++ } ++ } ++ } ++ } ++ ++ if (bVerbose && fplog) ++ { ++ fflush(fplog); ++ } ++ } ++ /* write progress */ ++ if (MASTER(cr) && bVerbose) ++ { ++ fprintf(stderr, "\rFinished step %d out of %d", ++ min(atom+nnodes, natoms), natoms); ++ fflush(stderr); ++ } ++ } ++ ++ if (MASTER(cr)) ++ { ++ fprintf(stderr, "\n\nWriting Hessian...\n"); ++ gmx_mtxio_write(ftp2fn(efMTX, nfile, fnm), sz, sz, full_matrix, sparse_matrix); ++ } ++ ++ finish_em(cr, outf, walltime_accounting, wcycle); ++ ++ walltime_accounting_set_nsteps_done(walltime_accounting, natoms*2); ++ ++ return 0; ++} +diff --git a/src/programs/mdrun/md.c b/src/programs/mdrun/md.c +index 3d98d59..b34d23c 100644 +--- a/src/programs/mdrun/md.c ++++ b/src/programs/mdrun/md.c +@@ -96,6 +96,12 @@ + #include "gromacs/swap/swapcoords.h" + #include "gromacs/imd/imd.h" + ++/* PLUMED */ ++#include "../../../Plumed.h" ++extern int plumedswitch; ++extern plumed plumedmain; ++/* END PLUMED */ ++ + #ifdef GMX_FAHCORE + #include "corewrap.h" + #endif +@@ -224,6 +230,12 @@ double do_md(FILE *fplog, t_commrec *cr, int nfile, const t_filenm fnm[], + /* Interactive MD */ + gmx_bool bIMDstep = FALSE; + ++ /* PLUMED */ ++ int plumedNeedsEnergy=0; ++ int plumedWantsToStop=0; ++ matrix plumed_vir; ++ /* END PLUMED */ ++ + #ifdef GMX_FAHCORE + /* Temporary addition for FAHCORE checkpointing */ + int chkpt_ret; +@@ -651,6 +663,48 @@ double do_md(FILE *fplog, t_commrec *cr, int nfile, const t_filenm fnm[], + fprintf(fplog, "\n"); + } + ++ /* PLUMED */ ++ if(plumedswitch){ ++ /* detect plumed API version */ ++ int pversion=0; ++ plumed_cmd(plumedmain,"getApiVersion",&pversion); ++ /* setting kbT is only implemented with api>1) */ ++ real kbT=ir->opts.ref_t[0]*BOLTZ; ++ if(pversion>1) plumed_cmd(plumedmain,"setKbT",&kbT); ++ ++ if(cr->ms && cr->ms->nsim>1) { ++ if(MASTER(cr)) plumed_cmd(plumedmain,"GREX setMPIIntercomm",&cr->ms->mpi_comm_masters); ++ if(PAR(cr)){ ++ if(DOMAINDECOMP(cr)) { ++ plumed_cmd(plumedmain,"GREX setMPIIntracomm",&cr->dd->mpi_comm_all); ++ }else{ ++ plumed_cmd(plumedmain,"GREX setMPIIntracomm",&cr->mpi_comm_mysim); ++ } ++ } ++ plumed_cmd(plumedmain,"GREX init",NULL); ++ } ++ if(PAR(cr)){ ++ if(DOMAINDECOMP(cr)) { ++ plumed_cmd(plumedmain,"setMPIComm",&cr->dd->mpi_comm_all); ++ } ++ } ++ plumed_cmd(plumedmain,"setNatoms",&top_global->natoms); ++ plumed_cmd(plumedmain,"setMDEngine","gromacs"); ++ plumed_cmd(plumedmain,"setLog",fplog); ++ real real_delta_t; ++ real_delta_t=ir->delta_t; ++ plumed_cmd(plumedmain,"setTimestep",&real_delta_t); ++ plumed_cmd(plumedmain,"init",NULL); ++ ++ if(PAR(cr)){ ++ if(DOMAINDECOMP(cr)) { ++ plumed_cmd(plumedmain,"setAtomsNlocal",&cr->dd->nat_home); ++ plumed_cmd(plumedmain,"setAtomsGatindex",cr->dd->gatindex); ++ } ++ } ++ } ++ /* END PLUMED */ ++ + walltime_accounting_start(walltime_accounting); + wallcycle_start(wcycle, ewcRUN); + print_start(fplog, cr, walltime_accounting, "mdrun"); +@@ -955,6 +1009,13 @@ double do_md(FILE *fplog, t_commrec *cr, int nfile, const t_filenm fnm[], + do_verbose && !bPMETuneRunning); + wallcycle_stop(wcycle, ewcDOMDEC); + /* If using an iterative integrator, reallocate space to match the decomposition */ ++ ++ /* PLUMED */ ++ if(plumedswitch){ ++ plumed_cmd(plumedmain,"setAtomsNlocal",&cr->dd->nat_home); ++ plumed_cmd(plumedmain,"setAtomsGatindex",cr->dd->gatindex); ++ } ++ /* END PLUMED */ + } + } + +@@ -1078,12 +1139,45 @@ double do_md(FILE *fplog, t_commrec *cr, int nfile, const t_filenm fnm[], + * This is parallellized as well, and does communication too. + * Check comments in sim_util.c + */ ++ ++ /* PLUMED */ ++ plumedNeedsEnergy=0; ++ if(plumedswitch){ ++ long int lstep=step; plumed_cmd(plumedmain,"setStepLong",&lstep); ++ plumed_cmd(plumedmain,"setPositions",&state->x[0][0]); ++ plumed_cmd(plumedmain,"setMasses",&mdatoms->massT[0]); ++ plumed_cmd(plumedmain,"setCharges",&mdatoms->chargeA[0]); ++ plumed_cmd(plumedmain,"setBox",&state->box[0][0]); ++ plumed_cmd(plumedmain,"prepareCalc",NULL); ++ plumed_cmd(plumedmain,"setStopFlag",&plumedWantsToStop); ++ plumed_cmd(plumedmain,"setForces",&f[0][0]); ++ plumed_cmd(plumedmain,"isEnergyNeeded",&plumedNeedsEnergy); ++ clear_mat(plumed_vir); ++ plumed_cmd(plumedmain,"setVirial",&plumed_vir[0][0]); ++ } ++ /* END PLUMED */ + do_force(fplog, cr, ir, step, nrnb, wcycle, top, groups, + state->box, state->x, &state->hist, + f, force_vir, mdatoms, enerd, fcd, + state->lambda, graph, + fr, vsite, mu_tot, t, mdoutf_get_fp_field(outf), ed, bBornRadii, + (bNS ? GMX_FORCE_NS : 0) | force_flags); ++ /* PLUMED */ ++ if(plumedswitch){ ++ if(plumedNeedsEnergy){ ++ msmul(force_vir,2.0,plumed_vir); ++ plumed_cmd(plumedmain,"setEnergy",&enerd->term[F_EPOT]); ++ plumed_cmd(plumedmain,"performCalc",NULL); ++ msmul(plumed_vir,0.5,force_vir); ++ } else { ++ msmul(plumed_vir,0.5,plumed_vir); ++ m_add(force_vir,plumed_vir,force_vir); ++ } ++ if ((repl_ex_nst > 0) && (step > 0) && !bLastStep && ++ do_per_step(step,repl_ex_nst)) plumed_cmd(plumedmain,"GREX savePositions",NULL); ++ if(plumedWantsToStop) ir->nsteps=step_rel+1; ++ } ++ /* END PLUMED */ + } + + if (bVV && !bStartingFromCpt && !bRerunMD) +diff --git a/src/programs/mdrun/md.c.preplumed b/src/programs/mdrun/md.c.preplumed +new file mode 100644 +index 0000000..3d98d59 +--- /dev/null ++++ b/src/programs/mdrun/md.c.preplumed +@@ -0,0 +1,2058 @@ ++/* ++ * This file is part of the GROMACS molecular simulation package. ++ * ++ * Copyright (c) 1991-2000, University of Groningen, The Netherlands. ++ * Copyright (c) 2001-2004, The GROMACS development team. ++ * Copyright (c) 2011,2012,2013,2014, by the GROMACS development team, led by ++ * Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl, ++ * and including many others, as listed in the AUTHORS file in the ++ * top-level source directory and at http://www.gromacs.org. ++ * ++ * GROMACS 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; either version 2.1 ++ * of the License, or (at your option) any later version. ++ * ++ * GROMACS 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 ++ * Lesser General Public License for more details. ++ * ++ * You should have received a copy of the GNU Lesser General Public ++ * License along with GROMACS; if not, see ++ * http://www.gnu.org/licenses, or write to the Free Software Foundation, ++ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. ++ * ++ * If you want to redistribute modifications to GROMACS, please ++ * consider that scientific software is very special. Version ++ * control is crucial - bugs must be traceable. We will be happy to ++ * consider code for inclusion in the official distribution, but ++ * derived work must not be called official GROMACS. Details are found ++ * in the README & COPYING files - if they are missing, get the ++ * official version at http://www.gromacs.org. ++ * ++ * To help us fund GROMACS development, we humbly ask that you cite ++ * the research papers on the package. Check out http://www.gromacs.org. ++ */ ++#ifdef HAVE_CONFIG_H ++#include ++#endif ++ ++#include "typedefs.h" ++#include "gromacs/utility/smalloc.h" ++#include "sysstuff.h" ++#include "vec.h" ++#include "vcm.h" ++#include "mdebin.h" ++#include "nrnb.h" ++#include "calcmu.h" ++#include "index.h" ++#include "vsite.h" ++#include "update.h" ++#include "ns.h" ++#include "mdrun.h" ++#include "md_support.h" ++#include "md_logging.h" ++#include "network.h" ++#include "xvgr.h" ++#include "physics.h" ++#include "names.h" ++#include "force.h" ++#include "disre.h" ++#include "orires.h" ++#include "pme.h" ++#include "mdatoms.h" ++#include "repl_ex.h" ++#include "deform.h" ++#include "qmmm.h" ++#include "domdec.h" ++#include "domdec_network.h" ++#include "gromacs/gmxlib/topsort.h" ++#include "coulomb.h" ++#include "constr.h" ++#include "shellfc.h" ++#include "gromacs/gmxpreprocess/compute_io.h" ++#include "checkpoint.h" ++#include "mtop_util.h" ++#include "sighandler.h" ++#include "txtdump.h" ++#include "gromacs/utility/cstringutil.h" ++#include "pme_loadbal.h" ++#include "bondf.h" ++#include "membed.h" ++#include "types/nlistheuristics.h" ++#include "types/iteratedconstraints.h" ++#include "nbnxn_cuda_data_mgmt.h" ++ ++#include "gromacs/utility/gmxmpi.h" ++#include "gromacs/fileio/confio.h" ++#include "gromacs/fileio/trajectory_writing.h" ++#include "gromacs/fileio/trnio.h" ++#include "gromacs/fileio/trxio.h" ++#include "gromacs/fileio/xtcio.h" ++#include "gromacs/timing/wallcycle.h" ++#include "gromacs/timing/walltime_accounting.h" ++#include "gromacs/pulling/pull.h" ++#include "gromacs/swap/swapcoords.h" ++#include "gromacs/imd/imd.h" ++ ++#ifdef GMX_FAHCORE ++#include "corewrap.h" ++#endif ++ ++static void reset_all_counters(FILE *fplog, t_commrec *cr, ++ gmx_int64_t step, ++ gmx_int64_t *step_rel, t_inputrec *ir, ++ gmx_wallcycle_t wcycle, t_nrnb *nrnb, ++ gmx_walltime_accounting_t walltime_accounting, ++ nbnxn_cuda_ptr_t cu_nbv) ++{ ++ char sbuf[STEPSTRSIZE]; ++ ++ /* Reset all the counters related to performance over the run */ ++ md_print_warn(cr, fplog, "step %s: resetting all time and cycle counters\n", ++ gmx_step_str(step, sbuf)); ++ ++ if (cu_nbv) ++ { ++ nbnxn_cuda_reset_timings(cu_nbv); ++ } ++ ++ wallcycle_stop(wcycle, ewcRUN); ++ wallcycle_reset_all(wcycle); ++ if (DOMAINDECOMP(cr)) ++ { ++ reset_dd_statistics_counters(cr->dd); ++ } ++ init_nrnb(nrnb); ++ ir->init_step += *step_rel; ++ ir->nsteps -= *step_rel; ++ *step_rel = 0; ++ wallcycle_start(wcycle, ewcRUN); ++ walltime_accounting_start(walltime_accounting); ++ print_date_and_time(fplog, cr->nodeid, "Restarted time", gmx_gettime()); ++} ++ ++double do_md(FILE *fplog, t_commrec *cr, int nfile, const t_filenm fnm[], ++ const output_env_t oenv, gmx_bool bVerbose, gmx_bool bCompact, ++ int nstglobalcomm, ++ gmx_vsite_t *vsite, gmx_constr_t constr, ++ int stepout, t_inputrec *ir, ++ gmx_mtop_t *top_global, ++ t_fcdata *fcd, ++ t_state *state_global, ++ t_mdatoms *mdatoms, ++ t_nrnb *nrnb, gmx_wallcycle_t wcycle, ++ gmx_edsam_t ed, t_forcerec *fr, ++ int repl_ex_nst, int repl_ex_nex, int repl_ex_seed, gmx_membed_t membed, ++ real cpt_period, real max_hours, ++ const char gmx_unused *deviceOptions, ++ int imdport, ++ unsigned long Flags, ++ gmx_walltime_accounting_t walltime_accounting) ++{ ++ gmx_mdoutf_t outf = NULL; ++ gmx_int64_t step, step_rel; ++ double elapsed_time; ++ double t, t0, lam0[efptNR]; ++ gmx_bool bGStatEveryStep, bGStat, bCalcVir, bCalcEner; ++ gmx_bool bNS, bNStList, bSimAnn, bStopCM, bRerunMD, bNotLastFrame = FALSE, ++ bFirstStep, bStateFromCP, bStateFromTPX, bInitStep, bLastStep, ++ bBornRadii, bStartingFromCpt; ++ gmx_bool bDoDHDL = FALSE, bDoFEP = FALSE, bDoExpanded = FALSE; ++ gmx_bool do_ene, do_log, do_verbose, bRerunWarnNoV = TRUE, ++ bForceUpdate = FALSE, bCPT; ++ gmx_bool bMasterState; ++ int force_flags, cglo_flags; ++ tensor force_vir, shake_vir, total_vir, tmp_vir, pres; ++ int i, m; ++ t_trxstatus *status; ++ rvec mu_tot; ++ t_vcm *vcm; ++ t_state *bufstate = NULL; ++ matrix *scale_tot, pcoupl_mu, M, ebox; ++ gmx_nlheur_t nlh; ++ t_trxframe rerun_fr; ++ gmx_repl_ex_t repl_ex = NULL; ++ int nchkpt = 1; ++ gmx_localtop_t *top; ++ t_mdebin *mdebin = NULL; ++ t_state *state = NULL; ++ rvec *f_global = NULL; ++ gmx_enerdata_t *enerd; ++ rvec *f = NULL; ++ gmx_global_stat_t gstat; ++ gmx_update_t upd = NULL; ++ t_graph *graph = NULL; ++ globsig_t gs; ++ gmx_groups_t *groups; ++ gmx_ekindata_t *ekind, *ekind_save; ++ gmx_shellfc_t shellfc; ++ int count, nconverged = 0; ++ real timestep = 0; ++ double tcount = 0; ++ gmx_bool bConverged = TRUE, bOK, bSumEkinhOld, bDoReplEx, bExchanged, bNeedRepartition; ++ gmx_bool bAppend; ++ gmx_bool bResetCountersHalfMaxH = FALSE; ++ gmx_bool bVV, bIterativeCase, bFirstIterate, bTemp, bPres, bTrotter; ++ gmx_bool bUpdateDoLR; ++ real dvdl_constr; ++ rvec *cbuf = NULL; ++ matrix lastbox; ++ real veta_save, scalevir, tracevir; ++ real vetanew = 0; ++ int lamnew = 0; ++ /* for FEP */ ++ int nstfep; ++ double cycles; ++ real saved_conserved_quantity = 0; ++ real last_ekin = 0; ++ int iter_i; ++ t_extmass MassQ; ++ int **trotter_seq; ++ char sbuf[STEPSTRSIZE], sbuf2[STEPSTRSIZE]; ++ int handled_stop_condition = gmx_stop_cond_none; /* compare to get_stop_condition*/ ++ gmx_iterate_t iterate; ++ gmx_int64_t multisim_nsteps = -1; /* number of steps to do before first multisim ++ simulation stops. If equal to zero, don't ++ communicate any more between multisims.*/ ++ /* PME load balancing data for GPU kernels */ ++ pme_load_balancing_t pme_loadbal = NULL; ++ double cycles_pmes; ++ gmx_bool bPMETuneTry = FALSE, bPMETuneRunning = FALSE; ++ ++ /* Interactive MD */ ++ gmx_bool bIMDstep = FALSE; ++ ++#ifdef GMX_FAHCORE ++ /* Temporary addition for FAHCORE checkpointing */ ++ int chkpt_ret; ++#endif ++ ++ /* Check for special mdrun options */ ++ bRerunMD = (Flags & MD_RERUN); ++ bAppend = (Flags & MD_APPENDFILES); ++ if (Flags & MD_RESETCOUNTERSHALFWAY) ++ { ++ if (ir->nsteps > 0) ++ { ++ /* Signal to reset the counters half the simulation steps. */ ++ wcycle_set_reset_counters(wcycle, ir->nsteps/2); ++ } ++ /* Signal to reset the counters halfway the simulation time. */ ++ bResetCountersHalfMaxH = (max_hours > 0); ++ } ++ ++ /* md-vv uses averaged full step velocities for T-control ++ md-vv-avek uses averaged half step velocities for T-control (but full step ekin for P control) ++ md uses averaged half step kinetic energies to determine temperature unless defined otherwise by GMX_EKIN_AVE_VEL; */ ++ bVV = EI_VV(ir->eI); ++ if (bVV) /* to store the initial velocities while computing virial */ ++ { ++ snew(cbuf, top_global->natoms); ++ } ++ /* all the iteratative cases - only if there are constraints */ ++ bIterativeCase = ((IR_NPH_TROTTER(ir) || IR_NPT_TROTTER(ir)) && (constr) && (!bRerunMD)); ++ gmx_iterate_init(&iterate, FALSE); /* The default value of iterate->bIterationActive is set to ++ false in this step. The correct value, true or false, ++ is set at each step, as it depends on the frequency of temperature ++ and pressure control.*/ ++ bTrotter = (bVV && (IR_NPT_TROTTER(ir) || IR_NPH_TROTTER(ir) || IR_NVT_TROTTER(ir))); ++ ++ if (bRerunMD) ++ { ++ /* Since we don't know if the frames read are related in any way, ++ * rebuild the neighborlist at every step. ++ */ ++ ir->nstlist = 1; ++ ir->nstcalcenergy = 1; ++ nstglobalcomm = 1; ++ } ++ ++ check_ir_old_tpx_versions(cr, fplog, ir, top_global); ++ ++ nstglobalcomm = check_nstglobalcomm(fplog, cr, nstglobalcomm, ir); ++ bGStatEveryStep = (nstglobalcomm == 1); ++ ++ if (!bGStatEveryStep && ir->nstlist == -1 && fplog != NULL) ++ { ++ fprintf(fplog, ++ "To reduce the energy communication with nstlist = -1\n" ++ "the neighbor list validity should not be checked at every step,\n" ++ "this means that exact integration is not guaranteed.\n" ++ "The neighbor list validity is checked after:\n" ++ " - 2*std.dev.(n.list life time) steps.\n" ++ "In most cases this will result in exact integration.\n" ++ "This reduces the energy communication by a factor of 2 to 3.\n" ++ "If you want less energy communication, set nstlist > 3.\n\n"); ++ } ++ ++ if (bRerunMD) ++ { ++ ir->nstxout_compressed = 0; ++ } ++ groups = &top_global->groups; ++ ++ /* Initial values */ ++ init_md(fplog, cr, ir, oenv, &t, &t0, state_global->lambda, ++ &(state_global->fep_state), lam0, ++ nrnb, top_global, &upd, ++ nfile, fnm, &outf, &mdebin, ++ force_vir, shake_vir, mu_tot, &bSimAnn, &vcm, Flags, wcycle); ++ ++ clear_mat(total_vir); ++ clear_mat(pres); ++ /* Energy terms and groups */ ++ snew(enerd, 1); ++ init_enerdata(top_global->groups.grps[egcENER].nr, ir->fepvals->n_lambda, ++ enerd); ++ if (DOMAINDECOMP(cr)) ++ { ++ f = NULL; ++ } ++ else ++ { ++ snew(f, top_global->natoms); ++ } ++ ++ /* Kinetic energy data */ ++ snew(ekind, 1); ++ init_ekindata(fplog, top_global, &(ir->opts), ekind); ++ /* needed for iteration of constraints */ ++ snew(ekind_save, 1); ++ init_ekindata(fplog, top_global, &(ir->opts), ekind_save); ++ /* Copy the cos acceleration to the groups struct */ ++ ekind->cosacc.cos_accel = ir->cos_accel; ++ ++ gstat = global_stat_init(ir); ++ debug_gmx(); ++ ++ /* Check for polarizable models and flexible constraints */ ++ shellfc = init_shell_flexcon(fplog, ++ top_global, n_flexible_constraints(constr), ++ (ir->bContinuation || ++ (DOMAINDECOMP(cr) && !MASTER(cr))) ? ++ NULL : state_global->x); ++ if (shellfc && ir->nstcalcenergy != 1) ++ { ++ gmx_fatal(FARGS, "You have nstcalcenergy set to a value (%d) that is different from 1.\nThis is not supported in combinations with shell particles.\nPlease make a new tpr file.", ir->nstcalcenergy); ++ } ++ if (shellfc && DOMAINDECOMP(cr)) ++ { ++ gmx_fatal(FARGS, "Shell particles are not implemented with domain decomposition, use a single rank"); ++ } ++ if (shellfc && ir->eI == eiNM) ++ { ++ /* Currently shells don't work with Normal Modes */ ++ gmx_fatal(FARGS, "Normal Mode analysis is not supported with shells.\nIf you'd like to help with adding support, we have an open discussion at http://redmine.gromacs.org/issues/879\n"); ++ } ++ ++ if (vsite && ir->eI == eiNM) ++ { ++ /* Currently virtual sites don't work with Normal Modes */ ++ gmx_fatal(FARGS, "Normal Mode analysis is not supported with virtual sites.\nIf you'd like to help with adding support, we have an open discussion at http://redmine.gromacs.org/issues/879\n"); ++ } ++ ++ if (DEFORM(*ir)) ++ { ++ tMPI_Thread_mutex_lock(&deform_init_box_mutex); ++ set_deform_reference_box(upd, ++ deform_init_init_step_tpx, ++ deform_init_box_tpx); ++ tMPI_Thread_mutex_unlock(&deform_init_box_mutex); ++ } ++ ++ { ++ double io = compute_io(ir, top_global->natoms, groups, mdebin->ebin->nener, 1); ++ if ((io > 2000) && MASTER(cr)) ++ { ++ fprintf(stderr, ++ "\nWARNING: This run will generate roughly %.0f Mb of data\n\n", ++ io); ++ } ++ } ++ ++ if (DOMAINDECOMP(cr)) ++ { ++ top = dd_init_local_top(top_global); ++ ++ snew(state, 1); ++ dd_init_local_state(cr->dd, state_global, state); ++ ++ if (DDMASTER(cr->dd) && ir->nstfout) ++ { ++ snew(f_global, state_global->natoms); ++ } ++ } ++ else ++ { ++ top = gmx_mtop_generate_local_top(top_global, ir); ++ ++ forcerec_set_excl_load(fr, top); ++ ++ state = serial_init_local_state(state_global); ++ f_global = f; ++ ++ atoms2md(top_global, ir, 0, NULL, top_global->natoms, mdatoms); ++ ++ if (vsite) ++ { ++ set_vsite_top(vsite, top, mdatoms, cr); ++ } ++ ++ if (ir->ePBC != epbcNONE && !fr->bMolPBC) ++ { ++ graph = mk_graph(fplog, &(top->idef), 0, top_global->natoms, FALSE, FALSE); ++ } ++ ++ if (shellfc) ++ { ++ make_local_shells(cr, mdatoms, shellfc); ++ } ++ ++ setup_bonded_threading(fr, &top->idef); ++ } ++ ++ /* Set up interactive MD (IMD) */ ++ init_IMD(ir, cr, top_global, fplog, ir->nstcalcenergy, state_global->x, ++ nfile, fnm, oenv, imdport, Flags); ++ ++ if (DOMAINDECOMP(cr)) ++ { ++ /* Distribute the charge groups over the nodes from the master node */ ++ dd_partition_system(fplog, ir->init_step, cr, TRUE, 1, ++ state_global, top_global, ir, ++ state, &f, mdatoms, top, fr, ++ vsite, shellfc, constr, ++ nrnb, wcycle, FALSE); ++ ++ } ++ ++ update_mdatoms(mdatoms, state->lambda[efptMASS]); ++ ++ if (opt2bSet("-cpi", nfile, fnm)) ++ { ++ bStateFromCP = gmx_fexist_master(opt2fn_master("-cpi", nfile, fnm, cr), cr); ++ } ++ else ++ { ++ bStateFromCP = FALSE; ++ } ++ ++ if (ir->bExpanded) ++ { ++ init_expanded_ensemble(bStateFromCP, ir, &state->dfhist); ++ } ++ ++ if (MASTER(cr)) ++ { ++ if (bStateFromCP) ++ { ++ /* Update mdebin with energy history if appending to output files */ ++ if (Flags & MD_APPENDFILES) ++ { ++ restore_energyhistory_from_state(mdebin, &state_global->enerhist); ++ } ++ else ++ { ++ /* We might have read an energy history from checkpoint, ++ * free the allocated memory and reset the counts. ++ */ ++ done_energyhistory(&state_global->enerhist); ++ init_energyhistory(&state_global->enerhist); ++ } ++ } ++ /* Set the initial energy history in state by updating once */ ++ update_energyhistory(&state_global->enerhist, mdebin); ++ } ++ ++ /* Initialize constraints */ ++ if (constr && !DOMAINDECOMP(cr)) ++ { ++ set_constraints(constr, top, ir, mdatoms, cr); ++ } ++ ++ if (repl_ex_nst > 0 && MASTER(cr)) ++ { ++ repl_ex = init_replica_exchange(fplog, cr->ms, state_global, ir, ++ repl_ex_nst, repl_ex_nex, repl_ex_seed); ++ } ++ ++ /* PME tuning is only supported with GPUs or PME nodes and not with rerun. ++ * PME tuning is not supported with PME only for LJ and not for Coulomb. ++ */ ++ if ((Flags & MD_TUNEPME) && ++ EEL_PME(fr->eeltype) && ++ ( (fr->cutoff_scheme == ecutsVERLET && fr->nbv->bUseGPU) || !(cr->duty & DUTY_PME)) && ++ !bRerunMD) ++ { ++ pme_loadbal_init(&pme_loadbal, ir, state->box, fr->ic, fr->pmedata); ++ cycles_pmes = 0; ++ if (cr->duty & DUTY_PME) ++ { ++ /* Start tuning right away, as we can't measure the load */ ++ bPMETuneRunning = TRUE; ++ } ++ else ++ { ++ /* Separate PME nodes, we can measure the PP/PME load balance */ ++ bPMETuneTry = TRUE; ++ } ++ } ++ ++ if (!ir->bContinuation && !bRerunMD) ++ { ++ if (mdatoms->cFREEZE && (state->flags & (1<homenr; i++) ++ { ++ for (m = 0; m < DIM; m++) ++ { ++ if (ir->opts.nFreeze[mdatoms->cFREEZE[i]][m]) ++ { ++ state->v[i][m] = 0; ++ } ++ } ++ } ++ } ++ ++ if (constr) ++ { ++ /* Constrain the initial coordinates and velocities */ ++ do_constrain_first(fplog, constr, ir, mdatoms, state, ++ cr, nrnb, fr, top); ++ } ++ if (vsite) ++ { ++ /* Construct the virtual sites for the initial configuration */ ++ construct_vsites(vsite, state->x, ir->delta_t, NULL, ++ top->idef.iparams, top->idef.il, ++ fr->ePBC, fr->bMolPBC, cr, state->box); ++ } ++ } ++ ++ debug_gmx(); ++ ++ /* set free energy calculation frequency as the minimum ++ greatest common denominator of nstdhdl, nstexpanded, and repl_ex_nst*/ ++ nstfep = ir->fepvals->nstdhdl; ++ if (ir->bExpanded) ++ { ++ nstfep = gmx_greatest_common_divisor(ir->fepvals->nstdhdl, nstfep); ++ } ++ if (repl_ex_nst > 0) ++ { ++ nstfep = gmx_greatest_common_divisor(repl_ex_nst, nstfep); ++ } ++ ++ /* I'm assuming we need global communication the first time! MRS */ ++ cglo_flags = (CGLO_TEMPERATURE | CGLO_GSTAT ++ | ((ir->comm_mode != ecmNO) ? CGLO_STOPCM : 0) ++ | (bVV ? CGLO_PRESSURE : 0) ++ | (bVV ? CGLO_CONSTRAINT : 0) ++ | (bRerunMD ? CGLO_RERUNMD : 0) ++ | ((Flags & MD_READ_EKIN) ? CGLO_READEKIN : 0)); ++ ++ bSumEkinhOld = FALSE; ++ compute_globals(fplog, gstat, cr, ir, fr, ekind, state, state_global, mdatoms, nrnb, vcm, ++ NULL, enerd, force_vir, shake_vir, total_vir, pres, mu_tot, ++ constr, NULL, FALSE, state->box, ++ top_global, &bSumEkinhOld, cglo_flags); ++ if (ir->eI == eiVVAK) ++ { ++ /* a second call to get the half step temperature initialized as well */ ++ /* we do the same call as above, but turn the pressure off -- internally to ++ compute_globals, this is recognized as a velocity verlet half-step ++ kinetic energy calculation. This minimized excess variables, but ++ perhaps loses some logic?*/ ++ ++ compute_globals(fplog, gstat, cr, ir, fr, ekind, state, state_global, mdatoms, nrnb, vcm, ++ NULL, enerd, force_vir, shake_vir, total_vir, pres, mu_tot, ++ constr, NULL, FALSE, state->box, ++ top_global, &bSumEkinhOld, ++ cglo_flags &~(CGLO_STOPCM | CGLO_PRESSURE)); ++ } ++ ++ /* Calculate the initial half step temperature, and save the ekinh_old */ ++ if (!(Flags & MD_STARTFROMCPT)) ++ { ++ for (i = 0; (i < ir->opts.ngtc); i++) ++ { ++ copy_mat(ekind->tcstat[i].ekinh, ekind->tcstat[i].ekinh_old); ++ } ++ } ++ if (ir->eI != eiVV) ++ { ++ enerd->term[F_TEMP] *= 2; /* result of averages being done over previous and current step, ++ and there is no previous step */ ++ } ++ ++ /* if using an iterative algorithm, we need to create a working directory for the state. */ ++ if (bIterativeCase) ++ { ++ bufstate = init_bufstate(state); ++ } ++ ++ /* need to make an initiation call to get the Trotter variables set, as well as other constants for non-trotter ++ temperature control */ ++ trotter_seq = init_npt_vars(ir, state, &MassQ, bTrotter); ++ ++ if (MASTER(cr)) ++ { ++ if (constr && !ir->bContinuation && ir->eConstrAlg == econtLINCS) ++ { ++ fprintf(fplog, ++ "RMS relative constraint deviation after constraining: %.2e\n", ++ constr_rmsd(constr, FALSE)); ++ } ++ if (EI_STATE_VELOCITY(ir->eI)) ++ { ++ fprintf(fplog, "Initial temperature: %g K\n", enerd->term[F_TEMP]); ++ } ++ if (bRerunMD) ++ { ++ fprintf(stderr, "starting md rerun '%s', reading coordinates from" ++ " input trajectory '%s'\n\n", ++ *(top_global->name), opt2fn("-rerun", nfile, fnm)); ++ if (bVerbose) ++ { ++ fprintf(stderr, "Calculated time to finish depends on nsteps from " ++ "run input file,\nwhich may not correspond to the time " ++ "needed to process input trajectory.\n\n"); ++ } ++ } ++ else ++ { ++ char tbuf[20]; ++ fprintf(stderr, "starting mdrun '%s'\n", ++ *(top_global->name)); ++ if (ir->nsteps >= 0) ++ { ++ sprintf(tbuf, "%8.1f", (ir->init_step+ir->nsteps)*ir->delta_t); ++ } ++ else ++ { ++ sprintf(tbuf, "%s", "infinite"); ++ } ++ if (ir->init_step > 0) ++ { ++ fprintf(stderr, "%s steps, %s ps (continuing from step %s, %8.1f ps).\n", ++ gmx_step_str(ir->init_step+ir->nsteps, sbuf), tbuf, ++ gmx_step_str(ir->init_step, sbuf2), ++ ir->init_step*ir->delta_t); ++ } ++ else ++ { ++ fprintf(stderr, "%s steps, %s ps.\n", ++ gmx_step_str(ir->nsteps, sbuf), tbuf); ++ } ++ } ++ fprintf(fplog, "\n"); ++ } ++ ++ walltime_accounting_start(walltime_accounting); ++ wallcycle_start(wcycle, ewcRUN); ++ print_start(fplog, cr, walltime_accounting, "mdrun"); ++ ++ /* safest point to do file checkpointing is here. More general point would be immediately before integrator call */ ++#ifdef GMX_FAHCORE ++ chkpt_ret = fcCheckPointParallel( cr->nodeid, ++ NULL, 0); ++ if (chkpt_ret == 0) ++ { ++ gmx_fatal( 3, __FILE__, __LINE__, "Checkpoint error on step %d\n", 0 ); ++ } ++#endif ++ ++ debug_gmx(); ++ /*********************************************************** ++ * ++ * Loop over MD steps ++ * ++ ************************************************************/ ++ ++ /* if rerunMD then read coordinates and velocities from input trajectory */ ++ if (bRerunMD) ++ { ++ if (getenv("GMX_FORCE_UPDATE")) ++ { ++ bForceUpdate = TRUE; ++ } ++ ++ rerun_fr.natoms = 0; ++ if (MASTER(cr)) ++ { ++ bNotLastFrame = read_first_frame(oenv, &status, ++ opt2fn("-rerun", nfile, fnm), ++ &rerun_fr, TRX_NEED_X | TRX_READ_V); ++ if (rerun_fr.natoms != top_global->natoms) ++ { ++ gmx_fatal(FARGS, ++ "Number of atoms in trajectory (%d) does not match the " ++ "run input file (%d)\n", ++ rerun_fr.natoms, top_global->natoms); ++ } ++ if (ir->ePBC != epbcNONE) ++ { ++ if (!rerun_fr.bBox) ++ { ++ gmx_fatal(FARGS, "Rerun trajectory frame step %d time %f does not contain a box, while pbc is used", rerun_fr.step, rerun_fr.time); ++ } ++ if (max_cutoff2(ir->ePBC, rerun_fr.box) < sqr(fr->rlistlong)) ++ { ++ gmx_fatal(FARGS, "Rerun trajectory frame step %d time %f has too small box dimensions", rerun_fr.step, rerun_fr.time); ++ } ++ } ++ } ++ ++ if (PAR(cr)) ++ { ++ rerun_parallel_comm(cr, &rerun_fr, &bNotLastFrame); ++ } ++ ++ if (ir->ePBC != epbcNONE) ++ { ++ /* Set the shift vectors. ++ * Necessary here when have a static box different from the tpr box. ++ */ ++ calc_shifts(rerun_fr.box, fr->shift_vec); ++ } ++ } ++ ++ /* loop over MD steps or if rerunMD to end of input trajectory */ ++ bFirstStep = TRUE; ++ /* Skip the first Nose-Hoover integration when we get the state from tpx */ ++ bStateFromTPX = !bStateFromCP; ++ bInitStep = bFirstStep && (bStateFromTPX || bVV); ++ bStartingFromCpt = (Flags & MD_STARTFROMCPT) && bInitStep; ++ bLastStep = FALSE; ++ bSumEkinhOld = FALSE; ++ bDoReplEx = FALSE; ++ bExchanged = FALSE; ++ bNeedRepartition = FALSE; ++ ++ init_global_signals(&gs, cr, ir, repl_ex_nst); ++ ++ step = ir->init_step; ++ step_rel = 0; ++ ++ if (ir->nstlist == -1) ++ { ++ init_nlistheuristics(&nlh, bGStatEveryStep, step); ++ } ++ ++ if (MULTISIM(cr) && (repl_ex_nst <= 0 )) ++ { ++ /* check how many steps are left in other sims */ ++ multisim_nsteps = get_multisim_nsteps(cr, ir->nsteps); ++ } ++ ++ ++ /* and stop now if we should */ ++ bLastStep = (bRerunMD || (ir->nsteps >= 0 && step_rel > ir->nsteps) || ++ ((multisim_nsteps >= 0) && (step_rel >= multisim_nsteps ))); ++ while (!bLastStep || (bRerunMD && bNotLastFrame)) ++ { ++ ++ wallcycle_start(wcycle, ewcSTEP); ++ ++ if (bRerunMD) ++ { ++ if (rerun_fr.bStep) ++ { ++ step = rerun_fr.step; ++ step_rel = step - ir->init_step; ++ } ++ if (rerun_fr.bTime) ++ { ++ t = rerun_fr.time; ++ } ++ else ++ { ++ t = step; ++ } ++ } ++ else ++ { ++ bLastStep = (step_rel == ir->nsteps); ++ t = t0 + step*ir->delta_t; ++ } ++ ++ if (ir->efep != efepNO || ir->bSimTemp) ++ { ++ /* find and set the current lambdas. If rerunning, we either read in a state, or a lambda value, ++ requiring different logic. */ ++ ++ set_current_lambdas(step, ir->fepvals, bRerunMD, &rerun_fr, state_global, state, lam0); ++ bDoDHDL = do_per_step(step, ir->fepvals->nstdhdl); ++ bDoFEP = (do_per_step(step, nstfep) && (ir->efep != efepNO)); ++ bDoExpanded = (do_per_step(step, ir->expandedvals->nstexpanded) ++ && (ir->bExpanded) && (step > 0) && (!bStartingFromCpt)); ++ } ++ ++ bDoReplEx = ((repl_ex_nst > 0) && (step > 0) && !bLastStep && ++ do_per_step(step, repl_ex_nst)); ++ ++ if (bSimAnn) ++ { ++ update_annealing_target_temp(&(ir->opts), t); ++ } ++ ++ if (bRerunMD) ++ { ++ if (!DOMAINDECOMP(cr) || MASTER(cr)) ++ { ++ for (i = 0; i < state_global->natoms; i++) ++ { ++ copy_rvec(rerun_fr.x[i], state_global->x[i]); ++ } ++ if (rerun_fr.bV) ++ { ++ for (i = 0; i < state_global->natoms; i++) ++ { ++ copy_rvec(rerun_fr.v[i], state_global->v[i]); ++ } ++ } ++ else ++ { ++ for (i = 0; i < state_global->natoms; i++) ++ { ++ clear_rvec(state_global->v[i]); ++ } ++ if (bRerunWarnNoV) ++ { ++ fprintf(stderr, "\nWARNING: Some frames do not contain velocities.\n" ++ " Ekin, temperature and pressure are incorrect,\n" ++ " the virial will be incorrect when constraints are present.\n" ++ "\n"); ++ bRerunWarnNoV = FALSE; ++ } ++ } ++ } ++ copy_mat(rerun_fr.box, state_global->box); ++ copy_mat(state_global->box, state->box); ++ ++ if (vsite && (Flags & MD_RERUN_VSITE)) ++ { ++ if (DOMAINDECOMP(cr)) ++ { ++ gmx_fatal(FARGS, "Vsite recalculation with -rerun is not implemented with domain decomposition, use a single rank"); ++ } ++ if (graph) ++ { ++ /* Following is necessary because the graph may get out of sync ++ * with the coordinates if we only have every N'th coordinate set ++ */ ++ mk_mshift(fplog, graph, fr->ePBC, state->box, state->x); ++ shift_self(graph, state->box, state->x); ++ } ++ construct_vsites(vsite, state->x, ir->delta_t, state->v, ++ top->idef.iparams, top->idef.il, ++ fr->ePBC, fr->bMolPBC, cr, state->box); ++ if (graph) ++ { ++ unshift_self(graph, state->box, state->x); ++ } ++ } ++ } ++ ++ /* Stop Center of Mass motion */ ++ bStopCM = (ir->comm_mode != ecmNO && do_per_step(step, ir->nstcomm)); ++ ++ if (bRerunMD) ++ { ++ /* for rerun MD always do Neighbour Searching */ ++ bNS = (bFirstStep || ir->nstlist != 0); ++ bNStList = bNS; ++ } ++ else ++ { ++ /* Determine whether or not to do Neighbour Searching and LR */ ++ bNStList = (ir->nstlist > 0 && step % ir->nstlist == 0); ++ ++ bNS = (bFirstStep || bExchanged || bNeedRepartition || bNStList || bDoFEP || ++ (ir->nstlist == -1 && nlh.nabnsb > 0)); ++ ++ if (bNS && ir->nstlist == -1) ++ { ++ set_nlistheuristics(&nlh, bFirstStep || bExchanged || bNeedRepartition || bDoFEP, step); ++ } ++ } ++ ++ /* check whether we should stop because another simulation has ++ stopped. */ ++ if (MULTISIM(cr)) ++ { ++ if ( (multisim_nsteps >= 0) && (step_rel >= multisim_nsteps) && ++ (multisim_nsteps != ir->nsteps) ) ++ { ++ if (bNS) ++ { ++ if (MASTER(cr)) ++ { ++ fprintf(stderr, ++ "Stopping simulation %d because another one has finished\n", ++ cr->ms->sim); ++ } ++ bLastStep = TRUE; ++ gs.sig[eglsCHKPT] = 1; ++ } ++ } ++ } ++ ++ /* < 0 means stop at next step, > 0 means stop at next NS step */ ++ if ( (gs.set[eglsSTOPCOND] < 0) || ++ ( (gs.set[eglsSTOPCOND] > 0) && (bNStList || ir->nstlist == 0) ) ) ++ { ++ bLastStep = TRUE; ++ } ++ ++ /* Determine whether or not to update the Born radii if doing GB */ ++ bBornRadii = bFirstStep; ++ if (ir->implicit_solvent && (step % ir->nstgbradii == 0)) ++ { ++ bBornRadii = TRUE; ++ } ++ ++ do_log = do_per_step(step, ir->nstlog) || bFirstStep || bLastStep; ++ do_verbose = bVerbose && ++ (step % stepout == 0 || bFirstStep || bLastStep); ++ ++ if (bNS && !(bFirstStep && ir->bContinuation && !bRerunMD)) ++ { ++ if (bRerunMD) ++ { ++ bMasterState = TRUE; ++ } ++ else ++ { ++ bMasterState = FALSE; ++ /* Correct the new box if it is too skewed */ ++ if (DYNAMIC_BOX(*ir)) ++ { ++ if (correct_box(fplog, step, state->box, graph)) ++ { ++ bMasterState = TRUE; ++ } ++ } ++ if (DOMAINDECOMP(cr) && bMasterState) ++ { ++ dd_collect_state(cr->dd, state, state_global); ++ } ++ } ++ ++ if (DOMAINDECOMP(cr)) ++ { ++ /* Repartition the domain decomposition */ ++ wallcycle_start(wcycle, ewcDOMDEC); ++ dd_partition_system(fplog, step, cr, ++ bMasterState, nstglobalcomm, ++ state_global, top_global, ir, ++ state, &f, mdatoms, top, fr, ++ vsite, shellfc, constr, ++ nrnb, wcycle, ++ do_verbose && !bPMETuneRunning); ++ wallcycle_stop(wcycle, ewcDOMDEC); ++ /* If using an iterative integrator, reallocate space to match the decomposition */ ++ } ++ } ++ ++ if (MASTER(cr) && do_log) ++ { ++ print_ebin_header(fplog, step, t, state->lambda[efptFEP]); /* can we improve the information printed here? */ ++ } ++ ++ if (ir->efep != efepNO) ++ { ++ update_mdatoms(mdatoms, state->lambda[efptMASS]); ++ } ++ ++ if ((bRerunMD && rerun_fr.bV) || bExchanged) ++ { ++ ++ /* We need the kinetic energy at minus the half step for determining ++ * the full step kinetic energy and possibly for T-coupling.*/ ++ /* This may not be quite working correctly yet . . . . */ ++ compute_globals(fplog, gstat, cr, ir, fr, ekind, state, state_global, mdatoms, nrnb, vcm, ++ wcycle, enerd, NULL, NULL, NULL, NULL, mu_tot, ++ constr, NULL, FALSE, state->box, ++ top_global, &bSumEkinhOld, ++ CGLO_RERUNMD | CGLO_GSTAT | CGLO_TEMPERATURE); ++ } ++ clear_mat(force_vir); ++ ++ /* We write a checkpoint at this MD step when: ++ * either at an NS step when we signalled through gs, ++ * or at the last step (but not when we do not want confout), ++ * but never at the first step or with rerun. ++ */ ++ bCPT = (((gs.set[eglsCHKPT] && (bNS || ir->nstlist == 0)) || ++ (bLastStep && (Flags & MD_CONFOUT))) && ++ step > ir->init_step && !bRerunMD); ++ if (bCPT) ++ { ++ gs.set[eglsCHKPT] = 0; ++ } ++ ++ /* Determine the energy and pressure: ++ * at nstcalcenergy steps and at energy output steps (set below). ++ */ ++ if (EI_VV(ir->eI) && (!bInitStep)) ++ { ++ /* for vv, the first half of the integration actually corresponds ++ to the previous step. bCalcEner is only required to be evaluated on the 'next' step, ++ but the virial needs to be calculated on both the current step and the 'next' step. Future ++ reorganization may be able to get rid of one of the bCalcVir=TRUE steps. */ ++ ++ bCalcEner = do_per_step(step-1, ir->nstcalcenergy); ++ bCalcVir = bCalcEner || ++ (ir->epc != epcNO && (do_per_step(step, ir->nstpcouple) || do_per_step(step-1, ir->nstpcouple))); ++ } ++ else ++ { ++ bCalcEner = do_per_step(step, ir->nstcalcenergy); ++ bCalcVir = bCalcEner || ++ (ir->epc != epcNO && do_per_step(step, ir->nstpcouple)); ++ } ++ ++ /* Do we need global communication ? */ ++ bGStat = (bCalcVir || bCalcEner || bStopCM || ++ do_per_step(step, nstglobalcomm) || (bVV && IR_NVT_TROTTER(ir) && do_per_step(step-1, nstglobalcomm)) || ++ (ir->nstlist == -1 && !bRerunMD && step >= nlh.step_nscheck)); ++ ++ do_ene = (do_per_step(step, ir->nstenergy) || bLastStep); ++ ++ if (do_ene || do_log || bDoReplEx) ++ { ++ bCalcVir = TRUE; ++ bCalcEner = TRUE; ++ bGStat = TRUE; ++ } ++ ++ /* these CGLO_ options remain the same throughout the iteration */ ++ cglo_flags = ((bRerunMD ? CGLO_RERUNMD : 0) | ++ (bGStat ? CGLO_GSTAT : 0) ++ ); ++ ++ force_flags = (GMX_FORCE_STATECHANGED | ++ ((DYNAMIC_BOX(*ir) || bRerunMD) ? GMX_FORCE_DYNAMICBOX : 0) | ++ GMX_FORCE_ALLFORCES | ++ GMX_FORCE_SEPLRF | ++ (bCalcVir ? GMX_FORCE_VIRIAL : 0) | ++ (bCalcEner ? GMX_FORCE_ENERGY : 0) | ++ (bDoFEP ? GMX_FORCE_DHDL : 0) ++ ); ++ ++ if (fr->bTwinRange) ++ { ++ if (do_per_step(step, ir->nstcalclr)) ++ { ++ force_flags |= GMX_FORCE_DO_LR; ++ } ++ } ++ ++ if (shellfc) ++ { ++ /* Now is the time to relax the shells */ ++ count = relax_shell_flexcon(fplog, cr, bVerbose, step, ++ ir, bNS, force_flags, ++ top, ++ constr, enerd, fcd, ++ state, f, force_vir, mdatoms, ++ nrnb, wcycle, graph, groups, ++ shellfc, fr, bBornRadii, t, mu_tot, ++ &bConverged, vsite, ++ mdoutf_get_fp_field(outf)); ++ tcount += count; ++ ++ if (bConverged) ++ { ++ nconverged++; ++ } ++ } ++ else ++ { ++ /* The coordinates (x) are shifted (to get whole molecules) ++ * in do_force. ++ * This is parallellized as well, and does communication too. ++ * Check comments in sim_util.c ++ */ ++ do_force(fplog, cr, ir, step, nrnb, wcycle, top, groups, ++ state->box, state->x, &state->hist, ++ f, force_vir, mdatoms, enerd, fcd, ++ state->lambda, graph, ++ fr, vsite, mu_tot, t, mdoutf_get_fp_field(outf), ed, bBornRadii, ++ (bNS ? GMX_FORCE_NS : 0) | force_flags); ++ } ++ ++ if (bVV && !bStartingFromCpt && !bRerunMD) ++ /* ############### START FIRST UPDATE HALF-STEP FOR VV METHODS############### */ ++ { ++ wallcycle_start(wcycle, ewcUPDATE); ++ if (ir->eI == eiVV && bInitStep) ++ { ++ /* if using velocity verlet with full time step Ekin, ++ * take the first half step only to compute the ++ * virial for the first step. From there, ++ * revert back to the initial coordinates ++ * so that the input is actually the initial step. ++ */ ++ copy_rvecn(state->v, cbuf, 0, state->natoms); /* should make this better for parallelizing? */ ++ } ++ else ++ { ++ /* this is for NHC in the Ekin(t+dt/2) version of vv */ ++ trotter_update(ir, step, ekind, enerd, state, total_vir, mdatoms, &MassQ, trotter_seq, ettTSEQ1); ++ } ++ ++ /* If we are using twin-range interactions where the long-range component ++ * is only evaluated every nstcalclr>1 steps, we should do a special update ++ * step to combine the long-range forces on these steps. ++ * For nstcalclr=1 this is not done, since the forces would have been added ++ * directly to the short-range forces already. ++ * ++ * TODO Remove various aspects of VV+twin-range in master ++ * branch, because VV integrators did not ever support ++ * twin-range multiple time stepping with constraints. ++ */ ++ bUpdateDoLR = (fr->bTwinRange && do_per_step(step, ir->nstcalclr)); ++ ++ update_coords(fplog, step, ir, mdatoms, state, fr->bMolPBC, ++ f, bUpdateDoLR, fr->f_twin, bCalcVir ? &fr->vir_twin_constr : NULL, fcd, ++ ekind, M, upd, bInitStep, etrtVELOCITY1, ++ cr, nrnb, constr, &top->idef); ++ ++ if (bIterativeCase && do_per_step(step-1, ir->nstpcouple) && !bInitStep) ++ { ++ gmx_iterate_init(&iterate, TRUE); ++ } ++ /* for iterations, we save these vectors, as we will be self-consistently iterating ++ the calculations */ ++ ++ /*#### UPDATE EXTENDED VARIABLES IN TROTTER FORMULATION */ ++ ++ /* save the state */ ++ if (iterate.bIterationActive) ++ { ++ copy_coupling_state(state, bufstate, ekind, ekind_save, &(ir->opts)); ++ } ++ ++ bFirstIterate = TRUE; ++ while (bFirstIterate || iterate.bIterationActive) ++ { ++ if (iterate.bIterationActive) ++ { ++ copy_coupling_state(bufstate, state, ekind_save, ekind, &(ir->opts)); ++ if (bFirstIterate && bTrotter) ++ { ++ /* The first time through, we need a decent first estimate ++ of veta(t+dt) to compute the constraints. Do ++ this by computing the box volume part of the ++ trotter integration at this time. Nothing else ++ should be changed by this routine here. If ++ !(first time), we start with the previous value ++ of veta. */ ++ ++ veta_save = state->veta; ++ trotter_update(ir, step, ekind, enerd, state, total_vir, mdatoms, &MassQ, trotter_seq, ettTSEQ0); ++ vetanew = state->veta; ++ state->veta = veta_save; ++ } ++ } ++ ++ bOK = TRUE; ++ if (!bRerunMD || rerun_fr.bV || bForceUpdate) /* Why is rerun_fr.bV here? Unclear. */ ++ { ++ wallcycle_stop(wcycle, ewcUPDATE); ++ update_constraints(fplog, step, NULL, ir, ekind, mdatoms, ++ state, fr->bMolPBC, graph, f, ++ &top->idef, shake_vir, ++ cr, nrnb, wcycle, upd, constr, ++ TRUE, bCalcVir, vetanew); ++ wallcycle_start(wcycle, ewcUPDATE); ++ ++ if (bCalcVir && bUpdateDoLR && ir->nstcalclr > 1) ++ { ++ /* Correct the virial for multiple time stepping */ ++ m_sub(shake_vir, fr->vir_twin_constr, shake_vir); ++ } ++ ++ if (!bOK) ++ { ++ gmx_fatal(FARGS, "Constraint error: Shake, Lincs or Settle could not solve the constrains"); ++ } ++ ++ } ++ else if (graph) ++ { ++ /* Need to unshift here if a do_force has been ++ called in the previous step */ ++ unshift_self(graph, state->box, state->x); ++ } ++ ++ /* if VV, compute the pressure and constraints */ ++ /* For VV2, we strictly only need this if using pressure ++ * control, but we really would like to have accurate pressures ++ * printed out. ++ * Think about ways around this in the future? ++ * For now, keep this choice in comments. ++ */ ++ /*bPres = (ir->eI==eiVV || IR_NPT_TROTTER(ir)); */ ++ /*bTemp = ((ir->eI==eiVV &&(!bInitStep)) || (ir->eI==eiVVAK && IR_NPT_TROTTER(ir)));*/ ++ bPres = TRUE; ++ bTemp = ((ir->eI == eiVV && (!bInitStep)) || (ir->eI == eiVVAK)); ++ if (bCalcEner && ir->eI == eiVVAK) /*MRS: 7/9/2010 -- this still doesn't fix it?*/ ++ { ++ bSumEkinhOld = TRUE; ++ } ++ /* for vv, the first half of the integration actually corresponds to the previous step. ++ So we need information from the last step in the first half of the integration */ ++ if (bGStat || do_per_step(step-1, nstglobalcomm)) ++ { ++ wallcycle_stop(wcycle, ewcUPDATE); ++ compute_globals(fplog, gstat, cr, ir, fr, ekind, state, state_global, mdatoms, nrnb, vcm, ++ wcycle, enerd, force_vir, shake_vir, total_vir, pres, mu_tot, ++ constr, NULL, FALSE, state->box, ++ top_global, &bSumEkinhOld, ++ cglo_flags ++ | CGLO_ENERGY ++ | (bTemp ? CGLO_TEMPERATURE : 0) ++ | (bPres ? CGLO_PRESSURE : 0) ++ | (bPres ? CGLO_CONSTRAINT : 0) ++ | ((iterate.bIterationActive) ? CGLO_ITERATE : 0) ++ | (bFirstIterate ? CGLO_FIRSTITERATE : 0) ++ | CGLO_SCALEEKIN ++ ); ++ /* explanation of above: ++ a) We compute Ekin at the full time step ++ if 1) we are using the AveVel Ekin, and it's not the ++ initial step, or 2) if we are using AveEkin, but need the full ++ time step kinetic energy for the pressure (always true now, since we want accurate statistics). ++ b) If we are using EkinAveEkin for the kinetic energy for the temperature control, we still feed in ++ EkinAveVel because it's needed for the pressure */ ++ wallcycle_start(wcycle, ewcUPDATE); ++ } ++ /* temperature scaling and pressure scaling to produce the extended variables at t+dt */ ++ if (!bInitStep) ++ { ++ if (bTrotter) ++ { ++ m_add(force_vir, shake_vir, total_vir); /* we need the un-dispersion corrected total vir here */ ++ trotter_update(ir, step, ekind, enerd, state, total_vir, mdatoms, &MassQ, trotter_seq, ettTSEQ2); ++ } ++ else ++ { ++ if (bExchanged) ++ { ++ wallcycle_stop(wcycle, ewcUPDATE); ++ /* We need the kinetic energy at minus the half step for determining ++ * the full step kinetic energy and possibly for T-coupling.*/ ++ /* This may not be quite working correctly yet . . . . */ ++ compute_globals(fplog, gstat, cr, ir, fr, ekind, state, state_global, mdatoms, nrnb, vcm, ++ wcycle, enerd, NULL, NULL, NULL, NULL, mu_tot, ++ constr, NULL, FALSE, state->box, ++ top_global, &bSumEkinhOld, ++ CGLO_RERUNMD | CGLO_GSTAT | CGLO_TEMPERATURE); ++ wallcycle_start(wcycle, ewcUPDATE); ++ } ++ } ++ } ++ ++ if (iterate.bIterationActive && ++ done_iterating(cr, fplog, step, &iterate, bFirstIterate, ++ state->veta, &vetanew)) ++ { ++ break; ++ } ++ bFirstIterate = FALSE; ++ } ++ ++ if (bTrotter && !bInitStep) ++ { ++ copy_mat(shake_vir, state->svir_prev); ++ copy_mat(force_vir, state->fvir_prev); ++ if (IR_NVT_TROTTER(ir) && ir->eI == eiVV) ++ { ++ /* update temperature and kinetic energy now that step is over - this is the v(t+dt) point */ ++ enerd->term[F_TEMP] = sum_ekin(&(ir->opts), ekind, NULL, (ir->eI == eiVV), FALSE); ++ enerd->term[F_EKIN] = trace(ekind->ekin); ++ } ++ } ++ /* if it's the initial step, we performed this first step just to get the constraint virial */ ++ if (bInitStep && ir->eI == eiVV) ++ { ++ copy_rvecn(cbuf, state->v, 0, state->natoms); ++ } ++ wallcycle_stop(wcycle, ewcUPDATE); ++ } ++ ++ /* MRS -- now done iterating -- compute the conserved quantity */ ++ if (bVV) ++ { ++ saved_conserved_quantity = compute_conserved_from_auxiliary(ir, state, &MassQ); ++ if (ir->eI == eiVV) ++ { ++ last_ekin = enerd->term[F_EKIN]; ++ } ++ if ((ir->eDispCorr != edispcEnerPres) && (ir->eDispCorr != edispcAllEnerPres)) ++ { ++ saved_conserved_quantity -= enerd->term[F_DISPCORR]; ++ } ++ /* sum up the foreign energy and dhdl terms for vv. currently done every step so that dhdl is correct in the .edr */ ++ if (!bRerunMD) ++ { ++ sum_dhdl(enerd, state->lambda, ir->fepvals); ++ } ++ } ++ ++ /* ######## END FIRST UPDATE STEP ############## */ ++ /* ######## If doing VV, we now have v(dt) ###### */ ++ if (bDoExpanded) ++ { ++ /* perform extended ensemble sampling in lambda - we don't ++ actually move to the new state before outputting ++ statistics, but if performing simulated tempering, we ++ do update the velocities and the tau_t. */ ++ ++ lamnew = ExpandedEnsembleDynamics(fplog, ir, enerd, state, &MassQ, state->fep_state, &state->dfhist, step, state->v, mdatoms); ++ /* history is maintained in state->dfhist, but state_global is what is sent to trajectory and log output */ ++ copy_df_history(&state_global->dfhist, &state->dfhist); ++ } ++ ++ /* Now we have the energies and forces corresponding to the ++ * coordinates at time t. We must output all of this before ++ * the update. ++ */ ++ do_md_trajectory_writing(fplog, cr, nfile, fnm, step, step_rel, t, ++ ir, state, state_global, top_global, fr, ++ outf, mdebin, ekind, f, f_global, ++ &nchkpt, ++ bCPT, bRerunMD, bLastStep, (Flags & MD_CONFOUT), ++ bSumEkinhOld); ++ /* Check if IMD step and do IMD communication, if bIMD is TRUE. */ ++ bIMDstep = do_IMD(ir->bIMD, step, cr, bNS, state->box, state->x, ir, t, wcycle); ++ ++ /* kludge -- virial is lost with restart for NPT control. Must restart */ ++ if (bStartingFromCpt && bVV) ++ { ++ copy_mat(state->svir_prev, shake_vir); ++ copy_mat(state->fvir_prev, force_vir); ++ } ++ ++ elapsed_time = walltime_accounting_get_current_elapsed_time(walltime_accounting); ++ ++ /* Check whether everything is still allright */ ++ if (((int)gmx_get_stop_condition() > handled_stop_condition) ++#ifdef GMX_THREAD_MPI ++ && MASTER(cr) ++#endif ++ ) ++ { ++ /* this is just make gs.sig compatible with the hack ++ of sending signals around by MPI_Reduce with together with ++ other floats */ ++ if (gmx_get_stop_condition() == gmx_stop_cond_next_ns) ++ { ++ gs.sig[eglsSTOPCOND] = 1; ++ } ++ if (gmx_get_stop_condition() == gmx_stop_cond_next) ++ { ++ gs.sig[eglsSTOPCOND] = -1; ++ } ++ /* < 0 means stop at next step, > 0 means stop at next NS step */ ++ if (fplog) ++ { ++ fprintf(fplog, ++ "\n\nReceived the %s signal, stopping at the next %sstep\n\n", ++ gmx_get_signal_name(), ++ gs.sig[eglsSTOPCOND] == 1 ? "NS " : ""); ++ fflush(fplog); ++ } ++ fprintf(stderr, ++ "\n\nReceived the %s signal, stopping at the next %sstep\n\n", ++ gmx_get_signal_name(), ++ gs.sig[eglsSTOPCOND] == 1 ? "NS " : ""); ++ fflush(stderr); ++ handled_stop_condition = (int)gmx_get_stop_condition(); ++ } ++ else if (MASTER(cr) && (bNS || ir->nstlist <= 0) && ++ (max_hours > 0 && elapsed_time > max_hours*60.0*60.0*0.99) && ++ gs.sig[eglsSTOPCOND] == 0 && gs.set[eglsSTOPCOND] == 0) ++ { ++ /* Signal to terminate the run */ ++ gs.sig[eglsSTOPCOND] = 1; ++ if (fplog) ++ { ++ fprintf(fplog, "\nStep %s: Run time exceeded %.3f hours, will terminate the run\n", gmx_step_str(step, sbuf), max_hours*0.99); ++ } ++ fprintf(stderr, "\nStep %s: Run time exceeded %.3f hours, will terminate the run\n", gmx_step_str(step, sbuf), max_hours*0.99); ++ } ++ ++ if (bResetCountersHalfMaxH && MASTER(cr) && ++ elapsed_time > max_hours*60.0*60.0*0.495) ++ { ++ gs.sig[eglsRESETCOUNTERS] = 1; ++ } ++ ++ if (ir->nstlist == -1 && !bRerunMD) ++ { ++ /* When bGStatEveryStep=FALSE, global_stat is only called ++ * when we check the atom displacements, not at NS steps. ++ * This means that also the bonded interaction count check is not ++ * performed immediately after NS. Therefore a few MD steps could ++ * be performed with missing interactions. ++ * But wrong energies are never written to file, ++ * since energies are only written after global_stat ++ * has been called. ++ */ ++ if (step >= nlh.step_nscheck) ++ { ++ nlh.nabnsb = natoms_beyond_ns_buffer(ir, fr, &top->cgs, ++ nlh.scale_tot, state->x); ++ } ++ else ++ { ++ /* This is not necessarily true, ++ * but step_nscheck is determined quite conservatively. ++ */ ++ nlh.nabnsb = 0; ++ } ++ } ++ ++ /* In parallel we only have to check for checkpointing in steps ++ * where we do global communication, ++ * otherwise the other nodes don't know. ++ */ ++ if (MASTER(cr) && ((bGStat || !PAR(cr)) && ++ cpt_period >= 0 && ++ (cpt_period == 0 || ++ elapsed_time >= nchkpt*cpt_period*60.0)) && ++ gs.set[eglsCHKPT] == 0) ++ { ++ gs.sig[eglsCHKPT] = 1; ++ } ++ ++ /* at the start of step, randomize or scale the velocities (trotter done elsewhere) */ ++ if (EI_VV(ir->eI)) ++ { ++ if (!bInitStep) ++ { ++ update_tcouple(step, ir, state, ekind, &MassQ, mdatoms); ++ } ++ if (ETC_ANDERSEN(ir->etc)) /* keep this outside of update_tcouple because of the extra info required to pass */ ++ { ++ gmx_bool bIfRandomize; ++ bIfRandomize = update_randomize_velocities(ir, step, cr, mdatoms, state, upd, constr); ++ /* if we have constraints, we have to remove the kinetic energy parallel to the bonds */ ++ if (constr && bIfRandomize) ++ { ++ update_constraints(fplog, step, NULL, ir, ekind, mdatoms, ++ state, fr->bMolPBC, graph, f, ++ &top->idef, tmp_vir, ++ cr, nrnb, wcycle, upd, constr, ++ TRUE, bCalcVir, vetanew); ++ } ++ } ++ } ++ ++ if (bIterativeCase && do_per_step(step, ir->nstpcouple)) ++ { ++ gmx_iterate_init(&iterate, TRUE); ++ /* for iterations, we save these vectors, as we will be redoing the calculations */ ++ copy_coupling_state(state, bufstate, ekind, ekind_save, &(ir->opts)); ++ } ++ ++ bFirstIterate = TRUE; ++ while (bFirstIterate || iterate.bIterationActive) ++ { ++ /* We now restore these vectors to redo the calculation with improved extended variables */ ++ if (iterate.bIterationActive) ++ { ++ copy_coupling_state(bufstate, state, ekind_save, ekind, &(ir->opts)); ++ } ++ ++ /* We make the decision to break or not -after- the calculation of Ekin and Pressure, ++ so scroll down for that logic */ ++ ++ /* ######### START SECOND UPDATE STEP ################# */ ++ /* Box is changed in update() when we do pressure coupling, ++ * but we should still use the old box for energy corrections and when ++ * writing it to the energy file, so it matches the trajectory files for ++ * the same timestep above. Make a copy in a separate array. ++ */ ++ copy_mat(state->box, lastbox); ++ ++ bOK = TRUE; ++ dvdl_constr = 0; ++ ++ if (!(bRerunMD && !rerun_fr.bV && !bForceUpdate)) ++ { ++ wallcycle_start(wcycle, ewcUPDATE); ++ /* UPDATE PRESSURE VARIABLES IN TROTTER FORMULATION WITH CONSTRAINTS */ ++ if (bTrotter) ++ { ++ if (iterate.bIterationActive) ++ { ++ if (bFirstIterate) ++ { ++ scalevir = 1; ++ } ++ else ++ { ++ /* we use a new value of scalevir to converge the iterations faster */ ++ scalevir = tracevir/trace(shake_vir); ++ } ++ msmul(shake_vir, scalevir, shake_vir); ++ m_add(force_vir, shake_vir, total_vir); ++ clear_mat(shake_vir); ++ } ++ trotter_update(ir, step, ekind, enerd, state, total_vir, mdatoms, &MassQ, trotter_seq, ettTSEQ3); ++ /* We can only do Berendsen coupling after we have summed ++ * the kinetic energy or virial. Since the happens ++ * in global_state after update, we should only do it at ++ * step % nstlist = 1 with bGStatEveryStep=FALSE. ++ */ ++ } ++ else ++ { ++ update_tcouple(step, ir, state, ekind, &MassQ, mdatoms); ++ update_pcouple(fplog, step, ir, state, pcoupl_mu, M, bInitStep); ++ } ++ ++ if (bVV) ++ { ++ bUpdateDoLR = (fr->bTwinRange && do_per_step(step, ir->nstcalclr)); ++ ++ /* velocity half-step update */ ++ update_coords(fplog, step, ir, mdatoms, state, fr->bMolPBC, f, ++ bUpdateDoLR, fr->f_twin, bCalcVir ? &fr->vir_twin_constr : NULL, fcd, ++ ekind, M, upd, FALSE, etrtVELOCITY2, ++ cr, nrnb, constr, &top->idef); ++ } ++ ++ /* Above, initialize just copies ekinh into ekin, ++ * it doesn't copy position (for VV), ++ * and entire integrator for MD. ++ */ ++ ++ if (ir->eI == eiVVAK) ++ { ++ copy_rvecn(state->x, cbuf, 0, state->natoms); ++ } ++ bUpdateDoLR = (fr->bTwinRange && do_per_step(step, ir->nstcalclr)); ++ ++ update_coords(fplog, step, ir, mdatoms, state, fr->bMolPBC, f, ++ bUpdateDoLR, fr->f_twin, bCalcVir ? &fr->vir_twin_constr : NULL, fcd, ++ ekind, M, upd, bInitStep, etrtPOSITION, cr, nrnb, constr, &top->idef); ++ wallcycle_stop(wcycle, ewcUPDATE); ++ ++ update_constraints(fplog, step, &dvdl_constr, ir, ekind, mdatoms, state, ++ fr->bMolPBC, graph, f, ++ &top->idef, shake_vir, ++ cr, nrnb, wcycle, upd, constr, ++ FALSE, bCalcVir, state->veta); ++ ++ if (bCalcVir && bUpdateDoLR && ir->nstcalclr > 1) ++ { ++ /* Correct the virial for multiple time stepping */ ++ m_sub(shake_vir, fr->vir_twin_constr, shake_vir); ++ } ++ ++ if (ir->eI == eiVVAK) ++ { ++ /* erase F_EKIN and F_TEMP here? */ ++ /* just compute the kinetic energy at the half step to perform a trotter step */ ++ compute_globals(fplog, gstat, cr, ir, fr, ekind, state, state_global, mdatoms, nrnb, vcm, ++ wcycle, enerd, force_vir, shake_vir, total_vir, pres, mu_tot, ++ constr, NULL, FALSE, lastbox, ++ top_global, &bSumEkinhOld, ++ cglo_flags | CGLO_TEMPERATURE ++ ); ++ wallcycle_start(wcycle, ewcUPDATE); ++ trotter_update(ir, step, ekind, enerd, state, total_vir, mdatoms, &MassQ, trotter_seq, ettTSEQ4); ++ /* now we know the scaling, we can compute the positions again again */ ++ copy_rvecn(cbuf, state->x, 0, state->natoms); ++ ++ bUpdateDoLR = (fr->bTwinRange && do_per_step(step, ir->nstcalclr)); ++ ++ update_coords(fplog, step, ir, mdatoms, state, fr->bMolPBC, f, ++ bUpdateDoLR, fr->f_twin, bCalcVir ? &fr->vir_twin_constr : NULL, fcd, ++ ekind, M, upd, bInitStep, etrtPOSITION, cr, nrnb, constr, &top->idef); ++ wallcycle_stop(wcycle, ewcUPDATE); ++ ++ /* do we need an extra constraint here? just need to copy out of state->v to upd->xp? */ ++ /* are the small terms in the shake_vir here due ++ * to numerical errors, or are they important ++ * physically? I'm thinking they are just errors, but not completely sure. ++ * For now, will call without actually constraining, constr=NULL*/ ++ update_constraints(fplog, step, NULL, ir, ekind, mdatoms, ++ state, fr->bMolPBC, graph, f, ++ &top->idef, tmp_vir, ++ cr, nrnb, wcycle, upd, NULL, ++ FALSE, bCalcVir, ++ state->veta); ++ } ++ if (!bOK) ++ { ++ gmx_fatal(FARGS, "Constraint error: Shake, Lincs or Settle could not solve the constrains"); ++ } ++ ++ if (fr->bSepDVDL && fplog && do_log) ++ { ++ gmx_print_sepdvdl(fplog, "Constraint dV/dl", 0.0, dvdl_constr); ++ } ++ if (bVV) ++ { ++ /* this factor or 2 correction is necessary ++ because half of the constraint force is removed ++ in the vv step, so we have to double it. See ++ the Redmine issue #1255. It is not yet clear ++ if the factor of 2 is exact, or just a very ++ good approximation, and this will be ++ investigated. The next step is to see if this ++ can be done adding a dhdl contribution from the ++ rattle step, but this is somewhat more ++ complicated with the current code. Will be ++ investigated, hopefully for 4.6.3. However, ++ this current solution is much better than ++ having it completely wrong. ++ */ ++ enerd->term[F_DVDL_CONSTR] += 2*dvdl_constr; ++ } ++ else ++ { ++ enerd->term[F_DVDL_CONSTR] += dvdl_constr; ++ } ++ } ++ else if (graph) ++ { ++ /* Need to unshift here */ ++ unshift_self(graph, state->box, state->x); ++ } ++ ++ if (vsite != NULL) ++ { ++ wallcycle_start(wcycle, ewcVSITECONSTR); ++ if (graph != NULL) ++ { ++ shift_self(graph, state->box, state->x); ++ } ++ construct_vsites(vsite, state->x, ir->delta_t, state->v, ++ top->idef.iparams, top->idef.il, ++ fr->ePBC, fr->bMolPBC, cr, state->box); ++ ++ if (graph != NULL) ++ { ++ unshift_self(graph, state->box, state->x); ++ } ++ wallcycle_stop(wcycle, ewcVSITECONSTR); ++ } ++ ++ /* ############## IF NOT VV, Calculate globals HERE, also iterate constraints ############ */ ++ /* With Leap-Frog we can skip compute_globals at ++ * non-communication steps, but we need to calculate ++ * the kinetic energy one step before communication. ++ */ ++ if (bGStat || (!EI_VV(ir->eI) && do_per_step(step+1, nstglobalcomm))) ++ { ++ if (ir->nstlist == -1 && bFirstIterate) ++ { ++ gs.sig[eglsNABNSB] = nlh.nabnsb; ++ } ++ compute_globals(fplog, gstat, cr, ir, fr, ekind, state, state_global, mdatoms, nrnb, vcm, ++ wcycle, enerd, force_vir, shake_vir, total_vir, pres, mu_tot, ++ constr, ++ bFirstIterate ? &gs : NULL, ++ (step_rel % gs.nstms == 0) && ++ (multisim_nsteps < 0 || (step_rel < multisim_nsteps)), ++ lastbox, ++ top_global, &bSumEkinhOld, ++ cglo_flags ++ | (!EI_VV(ir->eI) || bRerunMD ? CGLO_ENERGY : 0) ++ | (!EI_VV(ir->eI) && bStopCM ? CGLO_STOPCM : 0) ++ | (!EI_VV(ir->eI) ? CGLO_TEMPERATURE : 0) ++ | (!EI_VV(ir->eI) || bRerunMD ? CGLO_PRESSURE : 0) ++ | (iterate.bIterationActive ? CGLO_ITERATE : 0) ++ | (bFirstIterate ? CGLO_FIRSTITERATE : 0) ++ | CGLO_CONSTRAINT ++ ); ++ if (ir->nstlist == -1 && bFirstIterate) ++ { ++ nlh.nabnsb = gs.set[eglsNABNSB]; ++ gs.set[eglsNABNSB] = 0; ++ } ++ } ++ /* bIterate is set to keep it from eliminating the old ekin kinetic energy terms */ ++ /* ############# END CALC EKIN AND PRESSURE ################# */ ++ ++ /* Note: this is OK, but there are some numerical precision issues with using the convergence of ++ the virial that should probably be addressed eventually. state->veta has better properies, ++ but what we actually need entering the new cycle is the new shake_vir value. Ideally, we could ++ generate the new shake_vir, but test the veta value for convergence. This will take some thought. */ ++ ++ if (iterate.bIterationActive && ++ done_iterating(cr, fplog, step, &iterate, bFirstIterate, ++ trace(shake_vir), &tracevir)) ++ { ++ break; ++ } ++ bFirstIterate = FALSE; ++ } ++ ++ if (!bVV || bRerunMD) ++ { ++ /* sum up the foreign energy and dhdl terms for md and sd. currently done every step so that dhdl is correct in the .edr */ ++ sum_dhdl(enerd, state->lambda, ir->fepvals); ++ } ++ update_box(fplog, step, ir, mdatoms, state, f, ++ ir->nstlist == -1 ? &nlh.scale_tot : NULL, pcoupl_mu, nrnb, upd); ++ ++ /* ################# END UPDATE STEP 2 ################# */ ++ /* #### We now have r(t+dt) and v(t+dt/2) ############# */ ++ ++ /* The coordinates (x) were unshifted in update */ ++ if (!bGStat) ++ { ++ /* We will not sum ekinh_old, ++ * so signal that we still have to do it. ++ */ ++ bSumEkinhOld = TRUE; ++ } ++ ++ /* ######### BEGIN PREPARING EDR OUTPUT ########### */ ++ ++ /* use the directly determined last velocity, not actually the averaged half steps */ ++ if (bTrotter && ir->eI == eiVV) ++ { ++ enerd->term[F_EKIN] = last_ekin; ++ } ++ enerd->term[F_ETOT] = enerd->term[F_EPOT] + enerd->term[F_EKIN]; ++ ++ if (bVV) ++ { ++ enerd->term[F_ECONSERVED] = enerd->term[F_ETOT] + saved_conserved_quantity; ++ } ++ else ++ { ++ enerd->term[F_ECONSERVED] = enerd->term[F_ETOT] + compute_conserved_from_auxiliary(ir, state, &MassQ); ++ } ++ /* ######### END PREPARING EDR OUTPUT ########### */ ++ ++ /* Output stuff */ ++ if (MASTER(cr)) ++ { ++ gmx_bool do_dr, do_or; ++ ++ if (fplog && do_log && bDoExpanded) ++ { ++ /* only needed if doing expanded ensemble */ ++ PrintFreeEnergyInfoToFile(fplog, ir->fepvals, ir->expandedvals, ir->bSimTemp ? ir->simtempvals : NULL, ++ &state_global->dfhist, state->fep_state, ir->nstlog, step); ++ } ++ if (!(bStartingFromCpt && (EI_VV(ir->eI)))) ++ { ++ if (bCalcEner) ++ { ++ upd_mdebin(mdebin, bDoDHDL, TRUE, ++ t, mdatoms->tmass, enerd, state, ++ ir->fepvals, ir->expandedvals, lastbox, ++ shake_vir, force_vir, total_vir, pres, ++ ekind, mu_tot, constr); ++ } ++ else ++ { ++ upd_mdebin_step(mdebin); ++ } ++ ++ do_dr = do_per_step(step, ir->nstdisreout); ++ do_or = do_per_step(step, ir->nstorireout); ++ ++ print_ebin(mdoutf_get_fp_ene(outf), do_ene, do_dr, do_or, do_log ? fplog : NULL, ++ step, t, ++ eprNORMAL, bCompact, mdebin, fcd, groups, &(ir->opts)); ++ } ++ if (ir->ePull != epullNO) ++ { ++ pull_print_output(ir->pull, step, t); ++ } ++ ++ if (do_per_step(step, ir->nstlog)) ++ { ++ if (fflush(fplog) != 0) ++ { ++ gmx_fatal(FARGS, "Cannot flush logfile - maybe you are out of disk space?"); ++ } ++ } ++ } ++ if (bDoExpanded) ++ { ++ /* Have to do this part _after_ outputting the logfile and the edr file */ ++ /* Gets written into the state at the beginning of next loop*/ ++ state->fep_state = lamnew; ++ } ++ /* Print the remaining wall clock time for the run */ ++ if (MULTIMASTER(cr) && (do_verbose || gmx_got_usr_signal()) && !bPMETuneRunning) ++ { ++ if (shellfc) ++ { ++ fprintf(stderr, "\n"); ++ } ++ print_time(stderr, walltime_accounting, step, ir, cr); ++ } ++ ++ /* Ion/water position swapping. ++ * Not done in last step since trajectory writing happens before this call ++ * in the MD loop and exchanges would be lost anyway. */ ++ bNeedRepartition = FALSE; ++ if ((ir->eSwapCoords != eswapNO) && (step > 0) && !bLastStep && ++ do_per_step(step, ir->swap->nstswap)) ++ { ++ bNeedRepartition = do_swapcoords(cr, step, t, ir, wcycle, ++ bRerunMD ? rerun_fr.x : state->x, ++ bRerunMD ? rerun_fr.box : state->box, ++ top_global, MASTER(cr) && bVerbose, bRerunMD); ++ ++ if (bNeedRepartition && DOMAINDECOMP(cr)) ++ { ++ dd_collect_state(cr->dd, state, state_global); ++ } ++ } ++ ++ /* Replica exchange */ ++ bExchanged = FALSE; ++ if (bDoReplEx) ++ { ++ bExchanged = replica_exchange(fplog, cr, repl_ex, ++ state_global, enerd, ++ state, step, t); ++ } ++ ++ if ( (bExchanged || bNeedRepartition) && DOMAINDECOMP(cr) ) ++ { ++ dd_partition_system(fplog, step, cr, TRUE, 1, ++ state_global, top_global, ir, ++ state, &f, mdatoms, top, fr, ++ vsite, shellfc, constr, ++ nrnb, wcycle, FALSE); ++ } ++ ++ bFirstStep = FALSE; ++ bInitStep = FALSE; ++ bStartingFromCpt = FALSE; ++ ++ /* ####### SET VARIABLES FOR NEXT ITERATION IF THEY STILL NEED IT ###### */ ++ /* With all integrators, except VV, we need to retain the pressure ++ * at the current step for coupling at the next step. ++ */ ++ if ((state->flags & (1<nstpcouple > 0 && step % ir->nstpcouple == 0))) ++ { ++ /* Store the pressure in t_state for pressure coupling ++ * at the next MD step. ++ */ ++ copy_mat(pres, state->pres_prev); ++ } ++ ++ /* ####### END SET VARIABLES FOR NEXT ITERATION ###### */ ++ ++ if ( (membed != NULL) && (!bLastStep) ) ++ { ++ rescale_membed(step_rel, membed, state_global->x); ++ } ++ ++ if (bRerunMD) ++ { ++ if (MASTER(cr)) ++ { ++ /* read next frame from input trajectory */ ++ bNotLastFrame = read_next_frame(oenv, status, &rerun_fr); ++ } ++ ++ if (PAR(cr)) ++ { ++ rerun_parallel_comm(cr, &rerun_fr, &bNotLastFrame); ++ } ++ } ++ ++ if (!bRerunMD || !rerun_fr.bStep) ++ { ++ /* increase the MD step number */ ++ step++; ++ step_rel++; ++ } ++ ++ cycles = wallcycle_stop(wcycle, ewcSTEP); ++ if (DOMAINDECOMP(cr) && wcycle) ++ { ++ dd_cycles_add(cr->dd, cycles, ddCyclStep); ++ } ++ ++ if (bPMETuneRunning || bPMETuneTry) ++ { ++ /* PME grid + cut-off optimization with GPUs or PME nodes */ ++ ++ /* Count the total cycles over the last steps */ ++ cycles_pmes += cycles; ++ ++ /* We can only switch cut-off at NS steps */ ++ if (step % ir->nstlist == 0) ++ { ++ /* PME grid + cut-off optimization with GPUs or PME nodes */ ++ if (bPMETuneTry) ++ { ++ if (DDMASTER(cr->dd)) ++ { ++ /* PME node load is too high, start tuning */ ++ bPMETuneRunning = (dd_pme_f_ratio(cr->dd) >= 1.05); ++ } ++ dd_bcast(cr->dd, sizeof(gmx_bool), &bPMETuneRunning); ++ ++ if (bPMETuneRunning && ++ fr->nbv->bUseGPU && DOMAINDECOMP(cr) && ++ !(cr->duty & DUTY_PME)) ++ { ++ /* Lock DLB=auto to off (does nothing when DLB=yes/no). ++ * With GPUs + separate PME ranks, we don't want DLB. ++ * This could happen when we scan coarse grids and ++ * it would then never be turned off again. ++ * This would hurt performance at the final, optimal ++ * grid spacing, where DLB almost never helps. ++ * Also, DLB can limit the cut-off for PME tuning. ++ */ ++ dd_dlb_set_lock(cr->dd, TRUE); ++ } ++ ++ if (bPMETuneRunning || step_rel > ir->nstlist*50) ++ { ++ bPMETuneTry = FALSE; ++ } ++ } ++ if (bPMETuneRunning) ++ { ++ /* init_step might not be a multiple of nstlist, ++ * but the first cycle is always skipped anyhow. ++ */ ++ bPMETuneRunning = ++ pme_load_balance(pme_loadbal, cr, ++ (bVerbose && MASTER(cr)) ? stderr : NULL, ++ fplog, ++ ir, state, cycles_pmes, ++ fr->ic, fr->nbv, &fr->pmedata, ++ step); ++ ++ /* Update constants in forcerec/inputrec to keep them in sync with fr->ic */ ++ fr->ewaldcoeff_q = fr->ic->ewaldcoeff_q; ++ fr->ewaldcoeff_lj = fr->ic->ewaldcoeff_lj; ++ fr->rlist = fr->ic->rlist; ++ fr->rlistlong = fr->ic->rlistlong; ++ fr->rcoulomb = fr->ic->rcoulomb; ++ fr->rvdw = fr->ic->rvdw; ++ ++ if (ir->eDispCorr != edispcNO) ++ { ++ calc_enervirdiff(NULL, ir->eDispCorr, fr); ++ } ++ ++ if (!bPMETuneRunning && ++ DOMAINDECOMP(cr) && ++ dd_dlb_is_locked(cr->dd)) ++ { ++ /* Unlock the DLB=auto, DLB is allowed to activate ++ * (but we don't expect it to activate in most cases). ++ */ ++ dd_dlb_set_lock(cr->dd, FALSE); ++ } ++ } ++ cycles_pmes = 0; ++ } ++ } ++ ++ if (step_rel == wcycle_get_reset_counters(wcycle) || ++ gs.set[eglsRESETCOUNTERS] != 0) ++ { ++ /* Reset all the counters related to performance over the run */ ++ reset_all_counters(fplog, cr, step, &step_rel, ir, wcycle, nrnb, walltime_accounting, ++ fr->nbv != NULL && fr->nbv->bUseGPU ? fr->nbv->cu_nbv : NULL); ++ wcycle_set_reset_counters(wcycle, -1); ++ if (!(cr->duty & DUTY_PME)) ++ { ++ /* Tell our PME node to reset its counters */ ++ gmx_pme_send_resetcounters(cr, step); ++ } ++ /* Correct max_hours for the elapsed time */ ++ max_hours -= elapsed_time/(60.0*60.0); ++ bResetCountersHalfMaxH = FALSE; ++ gs.set[eglsRESETCOUNTERS] = 0; ++ } ++ ++ /* If bIMD is TRUE, the master updates the IMD energy record and sends positions to VMD client */ ++ IMD_prep_energies_send_positions(ir->bIMD && MASTER(cr), bIMDstep, ir->imd, enerd, step, bCalcEner, wcycle); ++ ++ } ++ /* End of main MD loop */ ++ debug_gmx(); ++ ++ /* Closing TNG files can include compressing data. Therefore it is good to do that ++ * before stopping the time measurements. */ ++ mdoutf_tng_close(outf); ++ ++ /* Stop measuring walltime */ ++ walltime_accounting_end(walltime_accounting); ++ ++ if (bRerunMD && MASTER(cr)) ++ { ++ close_trj(status); ++ } ++ ++ if (!(cr->duty & DUTY_PME)) ++ { ++ /* Tell the PME only node to finish */ ++ gmx_pme_send_finish(cr); ++ } ++ ++ if (MASTER(cr)) ++ { ++ if (ir->nstcalcenergy > 0 && !bRerunMD) ++ { ++ print_ebin(mdoutf_get_fp_ene(outf), FALSE, FALSE, FALSE, fplog, step, t, ++ eprAVER, FALSE, mdebin, fcd, groups, &(ir->opts)); ++ } ++ } ++ ++ done_mdoutf(outf); ++ debug_gmx(); ++ ++ if (ir->nstlist == -1 && nlh.nns > 0 && fplog) ++ { ++ fprintf(fplog, "Average neighborlist lifetime: %.1f steps, std.dev.: %.1f steps\n", nlh.s1/nlh.nns, sqrt(nlh.s2/nlh.nns - sqr(nlh.s1/nlh.nns))); ++ fprintf(fplog, "Average number of atoms that crossed the half buffer length: %.1f\n\n", nlh.ab/nlh.nns); ++ } ++ ++ if (pme_loadbal != NULL) ++ { ++ pme_loadbal_done(pme_loadbal, cr, fplog, ++ fr->nbv != NULL && fr->nbv->bUseGPU); ++ } ++ ++ if (shellfc && fplog) ++ { ++ fprintf(fplog, "Fraction of iterations that converged: %.2f %%\n", ++ (nconverged*100.0)/step_rel); ++ fprintf(fplog, "Average number of force evaluations per MD step: %.2f\n\n", ++ tcount/step_rel); ++ } ++ ++ if (repl_ex_nst > 0 && MASTER(cr)) ++ { ++ print_replica_exchange_statistics(fplog, repl_ex); ++ } ++ ++ /* IMD cleanup, if bIMD is TRUE. */ ++ IMD_finalize(ir->bIMD, ir->imd); ++ ++ walltime_accounting_set_nsteps_done(walltime_accounting, step_rel); ++ ++ return 0; ++} +diff --git a/src/programs/mdrun/mdrun.cpp b/src/programs/mdrun/mdrun.cpp +index 6bac3f0..e9fbf48 100644 +--- a/src/programs/mdrun/mdrun.cpp ++++ b/src/programs/mdrun/mdrun.cpp +@@ -55,6 +55,12 @@ + + #include "gromacs/commandline/pargs.h" + #include "gromacs/fileio/filenm.h" ++/* PLUMED */ ++#include "../../../Plumed.h" ++extern int plumedswitch; ++extern plumed plumedmain; ++extern void(*plumedcmd)(plumed,const char*,const void*); ++/* END PLUMED */ + + int gmx_mdrun(int argc, char *argv[]) + { +@@ -428,6 +434,7 @@ int gmx_mdrun(int argc, char *argv[]) + { efMTX, "-mtx", "nm", ffOPTWR }, + { efNDX, "-dn", "dipole", ffOPTWR }, + { efRND, "-multidir", NULL, ffOPTRDMULT}, ++ { efDAT, "-plumed", "plumed", ffOPTRD }, /* PLUMED */ + { efDAT, "-membed", "membed", ffOPTRD }, + { efTOP, "-mp", "membed", ffOPTRD }, + { efNDX, "-mn", "membed", ffOPTRD }, +@@ -780,6 +787,32 @@ int gmx_mdrun(int argc, char *argv[]) + ddxyz[YY] = (int)(realddxyz[YY] + 0.5); + ddxyz[ZZ] = (int)(realddxyz[ZZ] + 0.5); + ++ /* PLUMED */ ++ plumedswitch=0; ++ if (opt2bSet("-plumed",NFILE,fnm)) plumedswitch=1; ++ if(plumedswitch){ ++ plumedcmd=plumed_cmd; ++ int plumed_is_there=0; ++ int real_precision=sizeof(real); ++ real energyUnits=1.0; ++ real lengthUnits=1.0; ++ real timeUnits=1.0; ++ ++ if(!plumed_installed()){ ++ gmx_fatal(FARGS,"Plumed is not available. Check your PLUMED_KERNEL variable."); ++ } ++ plumedmain=plumed_create(); ++ plumed_cmd(plumedmain,"setRealPrecision",&real_precision); ++ // this is not necessary for gromacs units: ++ plumed_cmd(plumedmain,"setMDEnergyUnits",&energyUnits); ++ plumed_cmd(plumedmain,"setMDLengthUnits",&lengthUnits); ++ plumed_cmd(plumedmain,"setMDTimeUnits",&timeUnits); ++ // ++ plumed_cmd(plumedmain,"setPlumedDat",ftp2fn(efDAT,NFILE,fnm)); ++ plumedswitch=1; ++ } ++ /* END PLUMED */ ++ + rc = mdrunner(&hw_opt, fplog, cr, NFILE, fnm, oenv, bVerbose, bCompact, + nstglobalcomm, ddxyz, dd_node_order, rdd, rconstr, + dddlb_opt[0], dlb_scale, ddcsx, ddcsy, ddcsz, +@@ -788,6 +821,12 @@ int gmx_mdrun(int argc, char *argv[]) + nmultisim, repl_ex_nst, repl_ex_nex, repl_ex_seed, + pforce, cpt_period, max_hours, deviceOptions, imdport, Flags); + ++ /* PLUMED */ ++ if(plumedswitch){ ++ plumed_finalize(plumedmain); ++ } ++ /* END PLUMED */ ++ + /* Log file has to be closed in mdrunner if we are appending to it + (fplog not set here) */ + if (MASTER(cr) && !bAppendFiles) +diff --git a/src/programs/mdrun/mdrun.cpp.preplumed b/src/programs/mdrun/mdrun.cpp.preplumed +new file mode 100644 +index 0000000..6bac3f0 +--- /dev/null ++++ b/src/programs/mdrun/mdrun.cpp.preplumed +@@ -0,0 +1,799 @@ ++/* ++ * This file is part of the GROMACS molecular simulation package. ++ * ++ * Copyright (c) 1991-2000, University of Groningen, The Netherlands. ++ * Copyright (c) 2001-2004, The GROMACS development team. ++ * Copyright (c) 2011,2012,2013,2014, by the GROMACS development team, led by ++ * Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl, ++ * and including many others, as listed in the AUTHORS file in the ++ * top-level source directory and at http://www.gromacs.org. ++ * ++ * GROMACS 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; either version 2.1 ++ * of the License, or (at your option) any later version. ++ * ++ * GROMACS 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 ++ * Lesser General Public License for more details. ++ * ++ * You should have received a copy of the GNU Lesser General Public ++ * License along with GROMACS; if not, see ++ * http://www.gnu.org/licenses, or write to the Free Software Foundation, ++ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. ++ * ++ * If you want to redistribute modifications to GROMACS, please ++ * consider that scientific software is very special. Version ++ * control is crucial - bugs must be traceable. We will be happy to ++ * consider code for inclusion in the official distribution, but ++ * derived work must not be called official GROMACS. Details are found ++ * in the README & COPYING files - if they are missing, get the ++ * official version at http://www.gromacs.org. ++ * ++ * To help us fund GROMACS development, we humbly ask that you cite ++ * the research papers on the package. Check out http://www.gromacs.org. ++ */ ++#include "mdrun_main.h" ++ ++#ifdef HAVE_CONFIG_H ++#include "config.h" ++#endif ++ ++#include ++ ++#include "gromacs/legacyheaders/checkpoint.h" ++#include "gromacs/legacyheaders/copyrite.h" ++#include "gromacs/legacyheaders/gmx_fatal.h" ++#include "gromacs/legacyheaders/macros.h" ++#include "gromacs/legacyheaders/main.h" ++#include "gromacs/legacyheaders/mdrun.h" ++#include "gromacs/legacyheaders/network.h" ++#include "gromacs/legacyheaders/readinp.h" ++#include "gromacs/legacyheaders/typedefs.h" ++#include "gromacs/legacyheaders/types/commrec.h" ++ ++#include "gromacs/commandline/pargs.h" ++#include "gromacs/fileio/filenm.h" ++ ++int gmx_mdrun(int argc, char *argv[]) ++{ ++ const char *desc[] = { ++ "[THISMODULE] is the main computational chemistry engine", ++ "within GROMACS. Obviously, it performs Molecular Dynamics simulations,", ++ "but it can also perform Stochastic Dynamics, Energy Minimization,", ++ "test particle insertion or (re)calculation of energies.", ++ "Normal mode analysis is another option. In this case [TT]mdrun[tt]", ++ "builds a Hessian matrix from single conformation.", ++ "For usual Normal Modes-like calculations, make sure that", ++ "the structure provided is properly energy-minimized.", ++ "The generated matrix can be diagonalized by [gmx-nmeig].[PAR]", ++ "The [TT]mdrun[tt] program reads the run input file ([TT]-s[tt])", ++ "and distributes the topology over ranks if needed.", ++ "[TT]mdrun[tt] produces at least four output files.", ++ "A single log file ([TT]-g[tt]) is written, unless the option", ++ "[TT]-seppot[tt] is used, in which case each rank writes a log file.", ++ "The trajectory file ([TT]-o[tt]), contains coordinates, velocities and", ++ "optionally forces.", ++ "The structure file ([TT]-c[tt]) contains the coordinates and", ++ "velocities of the last step.", ++ "The energy file ([TT]-e[tt]) contains energies, the temperature,", ++ "pressure, etc, a lot of these things are also printed in the log file.", ++ "Optionally coordinates can be written to a compressed trajectory file", ++ "([TT]-x[tt]).[PAR]", ++ "The option [TT]-dhdl[tt] is only used when free energy calculation is", ++ "turned on.[PAR]", ++ "A simulation can be run in parallel using two different parallelization", ++ "schemes: MPI parallelization and/or OpenMP thread parallelization.", ++ "The MPI parallelization uses multiple processes when [TT]mdrun[tt] is", ++ "compiled with a normal MPI library or threads when [TT]mdrun[tt] is", ++ "compiled with the GROMACS built-in thread-MPI library. OpenMP threads", ++ "are supported when [TT]mdrun[tt] is compiled with OpenMP. Full OpenMP support", ++ "is only available with the Verlet cut-off scheme, with the (older)", ++ "group scheme only PME-only ranks can use OpenMP parallelization.", ++ "In all cases [TT]mdrun[tt] will by default try to use all the available", ++ "hardware resources. With a normal MPI library only the options", ++ "[TT]-ntomp[tt] (with the Verlet cut-off scheme) and [TT]-ntomp_pme[tt],", ++ "for PME-only ranks, can be used to control the number of threads.", ++ "With thread-MPI there are additional options [TT]-nt[tt], which sets", ++ "the total number of threads, and [TT]-ntmpi[tt], which sets the number", ++ "of thread-MPI threads.", ++ "The number of OpenMP threads used by [TT]mdrun[tt] can also be set with", ++ "the standard environment variable, [TT]OMP_NUM_THREADS[tt].", ++ "The [TT]GMX_PME_NUM_THREADS[tt] environment variable can be used to specify", ++ "the number of threads used by the PME-only ranks.[PAR]", ++ "Note that combined MPI+OpenMP parallelization is in many cases", ++ "slower than either on its own. However, at high parallelization, using the", ++ "combination is often beneficial as it reduces the number of domains and/or", ++ "the number of MPI ranks. (Less and larger domains can improve scaling,", ++ "with separate PME ranks, using fewer MPI ranks reduces communication costs.)", ++ "OpenMP-only parallelization is typically faster than MPI-only parallelization", ++ "on a single CPU(-die). Since we currently don't have proper hardware", ++ "topology detection, [TT]mdrun[tt] compiled with thread-MPI will only", ++ "automatically use OpenMP-only parallelization when you use up to 4", ++ "threads, up to 12 threads with Intel Nehalem/Westmere, or up to 16", ++ "threads with Intel Sandy Bridge or newer CPUs. Otherwise MPI-only", ++ "parallelization is used (except with GPUs, see below).", ++ "[PAR]", ++ "To quickly test the performance of the new Verlet cut-off scheme", ++ "with old [TT].tpr[tt] files, either on CPUs or CPUs+GPUs, you can use", ++ "the [TT]-testverlet[tt] option. This should not be used for production,", ++ "since it can slightly modify potentials and it will remove charge groups", ++ "making analysis difficult, as the [TT].tpr[tt] file will still contain", ++ "charge groups. For production simulations it is highly recommended", ++ "to specify [TT]cutoff-scheme = Verlet[tt] in the [TT].mdp[tt] file.", ++ "[PAR]", ++ "With GPUs (only supported with the Verlet cut-off scheme), the number", ++ "of GPUs should match the number of particle-particle ranks, i.e.", ++ "excluding PME-only ranks. With thread-MPI, unless set on the command line, the number", ++ "of MPI threads will automatically be set to the number of GPUs detected.", ++ "To use a subset of the available GPUs, or to manually provide a mapping of", ++ "GPUs to PP ranks, you can use the [TT]-gpu_id[tt] option. The argument of [TT]-gpu_id[tt] is", ++ "a string of digits (without delimiter) representing device id-s of the GPUs to be used.", ++ "For example, \"[TT]02[tt]\" specifies using GPUs 0 and 2 in the first and second PP ranks per compute node", ++ "respectively. To select different sets of GPU-s", ++ "on different nodes of a compute cluster, use the [TT]GMX_GPU_ID[tt] environment", ++ "variable instead. The format for [TT]GMX_GPU_ID[tt] is identical to ", ++ "[TT]-gpu_id[tt], with the difference that an environment variable can have", ++ "different values on different compute nodes. Multiple MPI ranks on each node", ++ "can share GPUs. This is accomplished by specifying the id(s) of the GPU(s)", ++ "multiple times, e.g. \"[TT]0011[tt]\" for four ranks sharing two GPUs in this node.", ++ "This works within a single simulation, or a multi-simulation, with any form of MPI.", ++ "[PAR]", ++ "With the Verlet cut-off scheme and verlet-buffer-tolerance set,", ++ "the pair-list update interval nstlist can be chosen freely with", ++ "the option [TT]-nstlist[tt]. [TT]mdrun[tt] will then adjust", ++ "the pair-list cut-off to maintain accuracy, and not adjust nstlist.", ++ "Otherwise, by default, [TT]mdrun[tt] will try to increase the", ++ "value of nstlist set in the [TT].mdp[tt] file to improve the", ++ "performance. For CPU-only runs, nstlist might increase to 20, for", ++ "GPU runs up to 40. For medium to high parallelization or with", ++ "fast GPUs, a (user-supplied) larger nstlist value can give much", ++ "better performance.", ++ "[PAR]", ++ "When using PME with separate PME ranks or with a GPU, the two major", ++ "compute tasks, the non-bonded force calculation and the PME calculation", ++ "run on different compute resources. If this load is not balanced,", ++ "some of the resources will be idle part of time. With the Verlet", ++ "cut-off scheme this load is automatically balanced when the PME load", ++ "is too high (but not when it is too low). This is done by scaling", ++ "the Coulomb cut-off and PME grid spacing by the same amount. In the first", ++ "few hundred steps different settings are tried and the fastest is chosen", ++ "for the rest of the simulation. This does not affect the accuracy of", ++ "the results, but it does affect the decomposition of the Coulomb energy", ++ "into particle and mesh contributions. The auto-tuning can be turned off", ++ "with the option [TT]-notunepme[tt].", ++ "[PAR]", ++ "[TT]mdrun[tt] pins (sets affinity of) threads to specific cores,", ++ "when all (logical) cores on a compute node are used by [TT]mdrun[tt],", ++ "even when no multi-threading is used,", ++ "as this usually results in significantly better performance.", ++ "If the queuing systems or the OpenMP library pinned threads, we honor", ++ "this and don't pin again, even though the layout may be sub-optimal.", ++ "If you want to have [TT]mdrun[tt] override an already set thread affinity", ++ "or pin threads when using less cores, use [TT]-pin on[tt].", ++ "With SMT (simultaneous multithreading), e.g. Intel Hyper-Threading,", ++ "there are multiple logical cores per physical core.", ++ "The option [TT]-pinstride[tt] sets the stride in logical cores for", ++ "pinning consecutive threads. Without SMT, 1 is usually the best choice.", ++ "With Intel Hyper-Threading 2 is best when using half or less of the", ++ "logical cores, 1 otherwise. The default value of 0 do exactly that:", ++ "it minimizes the threads per logical core, to optimize performance.", ++ "If you want to run multiple [TT]mdrun[tt] jobs on the same physical node," ++ "you should set [TT]-pinstride[tt] to 1 when using all logical cores.", ++ "When running multiple [TT]mdrun[tt] (or other) simulations on the same physical", ++ "node, some simulations need to start pinning from a non-zero core", ++ "to avoid overloading cores; with [TT]-pinoffset[tt] you can specify", ++ "the offset in logical cores for pinning.", ++ "[PAR]", ++ "When [TT]mdrun[tt] is started with more than 1 rank,", ++ "parallelization with domain decomposition is used.", ++ "[PAR]", ++ "With domain decomposition, the spatial decomposition can be set", ++ "with option [TT]-dd[tt]. By default [TT]mdrun[tt] selects a good decomposition.", ++ "The user only needs to change this when the system is very inhomogeneous.", ++ "Dynamic load balancing is set with the option [TT]-dlb[tt],", ++ "which can give a significant performance improvement,", ++ "especially for inhomogeneous systems. The only disadvantage of", ++ "dynamic load balancing is that runs are no longer binary reproducible,", ++ "but in most cases this is not important.", ++ "By default the dynamic load balancing is automatically turned on", ++ "when the measured performance loss due to load imbalance is 5% or more.", ++ "At low parallelization these are the only important options", ++ "for domain decomposition.", ++ "At high parallelization the options in the next two sections", ++ "could be important for increasing the performace.", ++ "[PAR]", ++ "When PME is used with domain decomposition, separate ranks can", ++ "be assigned to do only the PME mesh calculation;", ++ "this is computationally more efficient starting at about 12 ranks,", ++ "or even fewer when OpenMP parallelization is used.", ++ "The number of PME ranks is set with option [TT]-npme[tt],", ++ "but this cannot be more than half of the ranks.", ++ "By default [TT]mdrun[tt] makes a guess for the number of PME", ++ "ranks when the number of ranks is larger than 16. With GPUs,", ++ "using separate PME ranks is not selected automatically,", ++ "since the optimal setup depends very much on the details", ++ "of the hardware. In all cases, you might gain performance", ++ "by optimizing [TT]-npme[tt]. Performance statistics on this issue", ++ "are written at the end of the log file.", ++ "For good load balancing at high parallelization, the PME grid x and y", ++ "dimensions should be divisible by the number of PME ranks", ++ "(the simulation will run correctly also when this is not the case).", ++ "[PAR]", ++ "This section lists all options that affect the domain decomposition.", ++ "[PAR]", ++ "Option [TT]-rdd[tt] can be used to set the required maximum distance", ++ "for inter charge-group bonded interactions.", ++ "Communication for two-body bonded interactions below the non-bonded", ++ "cut-off distance always comes for free with the non-bonded communication.", ++ "Atoms beyond the non-bonded cut-off are only communicated when they have", ++ "missing bonded interactions; this means that the extra cost is minor", ++ "and nearly indepedent of the value of [TT]-rdd[tt].", ++ "With dynamic load balancing option [TT]-rdd[tt] also sets", ++ "the lower limit for the domain decomposition cell sizes.", ++ "By default [TT]-rdd[tt] is determined by [TT]mdrun[tt] based on", ++ "the initial coordinates. The chosen value will be a balance", ++ "between interaction range and communication cost.", ++ "[PAR]", ++ "When inter charge-group bonded interactions are beyond", ++ "the bonded cut-off distance, [TT]mdrun[tt] terminates with an error message.", ++ "For pair interactions and tabulated bonds", ++ "that do not generate exclusions, this check can be turned off", ++ "with the option [TT]-noddcheck[tt].", ++ "[PAR]", ++ "When constraints are present, option [TT]-rcon[tt] influences", ++ "the cell size limit as well.", ++ "Atoms connected by NC constraints, where NC is the LINCS order plus 1,", ++ "should not be beyond the smallest cell size. A error message is", ++ "generated when this happens and the user should change the decomposition", ++ "or decrease the LINCS order and increase the number of LINCS iterations.", ++ "By default [TT]mdrun[tt] estimates the minimum cell size required for P-LINCS", ++ "in a conservative fashion. For high parallelization it can be useful", ++ "to set the distance required for P-LINCS with the option [TT]-rcon[tt].", ++ "[PAR]", ++ "The [TT]-dds[tt] option sets the minimum allowed x, y and/or z scaling", ++ "of the cells with dynamic load balancing. [TT]mdrun[tt] will ensure that", ++ "the cells can scale down by at least this factor. This option is used", ++ "for the automated spatial decomposition (when not using [TT]-dd[tt])", ++ "as well as for determining the number of grid pulses, which in turn", ++ "sets the minimum allowed cell size. Under certain circumstances", ++ "the value of [TT]-dds[tt] might need to be adjusted to account for", ++ "high or low spatial inhomogeneity of the system.", ++ "[PAR]", ++ "The option [TT]-gcom[tt] can be used to only do global communication", ++ "every n steps.", ++ "This can improve performance for highly parallel simulations", ++ "where this global communication step becomes the bottleneck.", ++ "For a global thermostat and/or barostat the temperature", ++ "and/or pressure will also only be updated every [TT]-gcom[tt] steps.", ++ "By default it is set to the minimum of nstcalcenergy and nstlist.[PAR]", ++ "With [TT]-rerun[tt] an input trajectory can be given for which ", ++ "forces and energies will be (re)calculated. Neighbor searching will be", ++ "performed for every frame, unless [TT]nstlist[tt] is zero", ++ "(see the [TT].mdp[tt] file).[PAR]", ++ "ED (essential dynamics) sampling and/or additional flooding potentials", ++ "are switched on by using the [TT]-ei[tt] flag followed by an [TT].edi[tt]", ++ "file. The [TT].edi[tt] file can be produced with the [TT]make_edi[tt] tool", ++ "or by using options in the essdyn menu of the WHAT IF program.", ++ "[TT]mdrun[tt] produces a [TT].xvg[tt] output file that", ++ "contains projections of positions, velocities and forces onto selected", ++ "eigenvectors.[PAR]", ++ "When user-defined potential functions have been selected in the", ++ "[TT].mdp[tt] file the [TT]-table[tt] option is used to pass [TT]mdrun[tt]", ++ "a formatted table with potential functions. The file is read from", ++ "either the current directory or from the [TT]GMXLIB[tt] directory.", ++ "A number of pre-formatted tables are presented in the [TT]GMXLIB[tt] dir,", ++ "for 6-8, 6-9, 6-10, 6-11, 6-12 Lennard-Jones potentials with", ++ "normal Coulomb.", ++ "When pair interactions are present, a separate table for pair interaction", ++ "functions is read using the [TT]-tablep[tt] option.[PAR]", ++ "When tabulated bonded functions are present in the topology,", ++ "interaction functions are read using the [TT]-tableb[tt] option.", ++ "For each different tabulated interaction type the table file name is", ++ "modified in a different way: before the file extension an underscore is", ++ "appended, then a 'b' for bonds, an 'a' for angles or a 'd' for dihedrals", ++ "and finally the table number of the interaction type.[PAR]", ++ "The options [TT]-px[tt] and [TT]-pf[tt] are used for writing pull COM", ++ "coordinates and forces when pulling is selected", ++ "in the [TT].mdp[tt] file.[PAR]", ++ "With [TT]-multi[tt] or [TT]-multidir[tt], multiple systems can be ", ++ "simulated in parallel.", ++ "As many input files/directories are required as the number of systems. ", ++ "The [TT]-multidir[tt] option takes a list of directories (one for each ", ++ "system) and runs in each of them, using the input/output file names, ", ++ "such as specified by e.g. the [TT]-s[tt] option, relative to these ", ++ "directories.", ++ "With [TT]-multi[tt], the system number is appended to the run input ", ++ "and each output filename, for instance [TT]topol.tpr[tt] becomes", ++ "[TT]topol0.tpr[tt], [TT]topol1.tpr[tt] etc.", ++ "The number of ranks per system is the total number of ranks", ++ "divided by the number of systems.", ++ "One use of this option is for NMR refinement: when distance", ++ "or orientation restraints are present these can be ensemble averaged", ++ "over all the systems.[PAR]", ++ "With [TT]-replex[tt] replica exchange is attempted every given number", ++ "of steps. The number of replicas is set with the [TT]-multi[tt] or ", ++ "[TT]-multidir[tt] option, described above.", ++ "All run input files should use a different coupling temperature,", ++ "the order of the files is not important. The random seed is set with", ++ "[TT]-reseed[tt]. The velocities are scaled and neighbor searching", ++ "is performed after every exchange.[PAR]", ++ "Finally some experimental algorithms can be tested when the", ++ "appropriate options have been given. Currently under", ++ "investigation are: polarizability.", ++ "[PAR]", ++ "The option [TT]-membed[tt] does what used to be g_membed, i.e. embed", ++ "a protein into a membrane. The data file should contain the options", ++ "that where passed to g_membed before. The [TT]-mn[tt] and [TT]-mp[tt]", ++ "both apply to this as well.", ++ "[PAR]", ++ "The option [TT]-pforce[tt] is useful when you suspect a simulation", ++ "crashes due to too large forces. With this option coordinates and", ++ "forces of atoms with a force larger than a certain value will", ++ "be printed to stderr.", ++ "[PAR]", ++ "Checkpoints containing the complete state of the system are written", ++ "at regular intervals (option [TT]-cpt[tt]) to the file [TT]-cpo[tt],", ++ "unless option [TT]-cpt[tt] is set to -1.", ++ "The previous checkpoint is backed up to [TT]state_prev.cpt[tt] to", ++ "make sure that a recent state of the system is always available,", ++ "even when the simulation is terminated while writing a checkpoint.", ++ "With [TT]-cpnum[tt] all checkpoint files are kept and appended", ++ "with the step number.", ++ "A simulation can be continued by reading the full state from file", ++ "with option [TT]-cpi[tt]. This option is intelligent in the way that", ++ "if no checkpoint file is found, Gromacs just assumes a normal run and", ++ "starts from the first step of the [TT].tpr[tt] file. By default the output", ++ "will be appending to the existing output files. The checkpoint file", ++ "contains checksums of all output files, such that you will never", ++ "loose data when some output files are modified, corrupt or removed.", ++ "There are three scenarios with [TT]-cpi[tt]:[PAR]", ++ "[TT]*[tt] no files with matching names are present: new output files are written[PAR]", ++ "[TT]*[tt] all files are present with names and checksums matching those stored", ++ "in the checkpoint file: files are appended[PAR]", ++ "[TT]*[tt] otherwise no files are modified and a fatal error is generated[PAR]", ++ "With [TT]-noappend[tt] new output files are opened and the simulation", ++ "part number is added to all output file names.", ++ "Note that in all cases the checkpoint file itself is not renamed", ++ "and will be overwritten, unless its name does not match", ++ "the [TT]-cpo[tt] option.", ++ "[PAR]", ++ "With checkpointing the output is appended to previously written", ++ "output files, unless [TT]-noappend[tt] is used or none of the previous", ++ "output files are present (except for the checkpoint file).", ++ "The integrity of the files to be appended is verified using checksums", ++ "which are stored in the checkpoint file. This ensures that output can", ++ "not be mixed up or corrupted due to file appending. When only some", ++ "of the previous output files are present, a fatal error is generated", ++ "and no old output files are modified and no new output files are opened.", ++ "The result with appending will be the same as from a single run.", ++ "The contents will be binary identical, unless you use a different number", ++ "of ranks or dynamic load balancing or the FFT library uses optimizations", ++ "through timing.", ++ "[PAR]", ++ "With option [TT]-maxh[tt] a simulation is terminated and a checkpoint", ++ "file is written at the first neighbor search step where the run time", ++ "exceeds [TT]-maxh[tt]*0.99 hours.", ++ "[PAR]", ++ "When [TT]mdrun[tt] receives a TERM signal, it will set nsteps to the current", ++ "step plus one. When [TT]mdrun[tt] receives an INT signal (e.g. when ctrl+C is", ++ "pressed), it will stop after the next neighbor search step ", ++ "(with nstlist=0 at the next step).", ++ "In both cases all the usual output will be written to file.", ++ "When running with MPI, a signal to one of the [TT]mdrun[tt] ranks", ++ "is sufficient, this signal should not be sent to mpirun or", ++ "the [TT]mdrun[tt] process that is the parent of the others.", ++ "[PAR]", ++ "Interactive molecular dynamics (IMD) can be activated by using at least one", ++ "of the three IMD switches: The [TT]-imdterm[tt] switch allows to terminate the", ++ "simulation from the molecular viewer (e.g. VMD). With [TT]-imdwait[tt],", ++ "[TT]mdrun[tt] pauses whenever no IMD client is connected. Pulling from the", ++ "IMD remote can be turned on by [TT]-imdpull[tt].", ++ "The port [TT]mdrun[tt] listens to can be altered by [TT]-imdport[tt].The", ++ "file pointed to by [TT]-if[tt] contains atom indices and forces if IMD", ++ "pulling is used." ++ "[PAR]", ++ "When [TT]mdrun[tt] is started with MPI, it does not run niced by default." ++ }; ++ t_commrec *cr; ++ t_filenm fnm[] = { ++ { efTPX, NULL, NULL, ffREAD }, ++ { efTRN, "-o", NULL, ffWRITE }, ++ { efCOMPRESSED, "-x", NULL, ffOPTWR }, ++ { efCPT, "-cpi", NULL, ffOPTRD }, ++ { efCPT, "-cpo", NULL, ffOPTWR }, ++ { efSTO, "-c", "confout", ffWRITE }, ++ { efEDR, "-e", "ener", ffWRITE }, ++ { efLOG, "-g", "md", ffWRITE }, ++ { efXVG, "-dhdl", "dhdl", ffOPTWR }, ++ { efXVG, "-field", "field", ffOPTWR }, ++ { efXVG, "-table", "table", ffOPTRD }, ++ { efXVG, "-tabletf", "tabletf", ffOPTRD }, ++ { efXVG, "-tablep", "tablep", ffOPTRD }, ++ { efXVG, "-tableb", "table", ffOPTRD }, ++ { efTRX, "-rerun", "rerun", ffOPTRD }, ++ { efXVG, "-tpi", "tpi", ffOPTWR }, ++ { efXVG, "-tpid", "tpidist", ffOPTWR }, ++ { efEDI, "-ei", "sam", ffOPTRD }, ++ { efXVG, "-eo", "edsam", ffOPTWR }, ++ { efXVG, "-devout", "deviatie", ffOPTWR }, ++ { efXVG, "-runav", "runaver", ffOPTWR }, ++ { efXVG, "-px", "pullx", ffOPTWR }, ++ { efXVG, "-pf", "pullf", ffOPTWR }, ++ { efXVG, "-ro", "rotation", ffOPTWR }, ++ { efLOG, "-ra", "rotangles", ffOPTWR }, ++ { efLOG, "-rs", "rotslabs", ffOPTWR }, ++ { efLOG, "-rt", "rottorque", ffOPTWR }, ++ { efMTX, "-mtx", "nm", ffOPTWR }, ++ { efNDX, "-dn", "dipole", ffOPTWR }, ++ { efRND, "-multidir", NULL, ffOPTRDMULT}, ++ { efDAT, "-membed", "membed", ffOPTRD }, ++ { efTOP, "-mp", "membed", ffOPTRD }, ++ { efNDX, "-mn", "membed", ffOPTRD }, ++ { efXVG, "-if", "imdforces", ffOPTWR }, ++ { efXVG, "-swap", "swapions", ffOPTWR } ++ }; ++#define NFILE asize(fnm) ++ ++ /* Command line options ! */ ++ gmx_bool bDDBondCheck = TRUE; ++ gmx_bool bDDBondComm = TRUE; ++ gmx_bool bTunePME = TRUE; ++ gmx_bool bTestVerlet = FALSE; ++ gmx_bool bVerbose = FALSE; ++ gmx_bool bCompact = TRUE; ++ gmx_bool bSepPot = FALSE; ++ gmx_bool bRerunVSite = FALSE; ++ gmx_bool bConfout = TRUE; ++ gmx_bool bReproducible = FALSE; ++ gmx_bool bIMDwait = FALSE; ++ gmx_bool bIMDterm = FALSE; ++ gmx_bool bIMDpull = FALSE; ++ ++ int npme = -1; ++ int nstlist = 0; ++ int nmultisim = 0; ++ int nstglobalcomm = -1; ++ int repl_ex_nst = 0; ++ int repl_ex_seed = -1; ++ int repl_ex_nex = 0; ++ int nstepout = 100; ++ int resetstep = -1; ++ gmx_int64_t nsteps = -2; /* the value -2 means that the mdp option will be used */ ++ int imdport = 8888; /* can be almost anything, 8888 is easy to remember */ ++ ++ rvec realddxyz = {0, 0, 0}; ++ const char *ddno_opt[ddnoNR+1] = ++ { NULL, "interleave", "pp_pme", "cartesian", NULL }; ++ const char *dddlb_opt[] = ++ { NULL, "auto", "no", "yes", NULL }; ++ const char *thread_aff_opt[threadaffNR+1] = ++ { NULL, "auto", "on", "off", NULL }; ++ const char *nbpu_opt[] = ++ { NULL, "auto", "cpu", "gpu", "gpu_cpu", NULL }; ++ real rdd = 0.0, rconstr = 0.0, dlb_scale = 0.8, pforce = -1; ++ char *ddcsx = NULL, *ddcsy = NULL, *ddcsz = NULL; ++ real cpt_period = 15.0, max_hours = -1; ++ gmx_bool bAppendFiles = TRUE; ++ gmx_bool bKeepAndNumCPT = FALSE; ++ gmx_bool bResetCountersHalfWay = FALSE; ++ output_env_t oenv = NULL; ++ const char *deviceOptions = ""; ++ ++ /* Non transparent initialization of a complex gmx_hw_opt_t struct. ++ * But unfortunately we are not allowed to call a function here, ++ * since declarations follow below. ++ */ ++ gmx_hw_opt_t hw_opt = { ++ 0, 0, 0, 0, threadaffSEL, 0, 0, ++ { NULL, FALSE, 0, NULL } ++ }; ++ ++ t_pargs pa[] = { ++ ++ { "-dd", FALSE, etRVEC, {&realddxyz}, ++ "Domain decomposition grid, 0 is optimize" }, ++ { "-ddorder", FALSE, etENUM, {ddno_opt}, ++ "DD rank order" }, ++ { "-npme", FALSE, etINT, {&npme}, ++ "Number of separate ranks to be used for PME, -1 is guess" }, ++ { "-nt", FALSE, etINT, {&hw_opt.nthreads_tot}, ++ "Total number of threads to start (0 is guess)" }, ++ { "-ntmpi", FALSE, etINT, {&hw_opt.nthreads_tmpi}, ++ "Number of thread-MPI threads to start (0 is guess)" }, ++ { "-ntomp", FALSE, etINT, {&hw_opt.nthreads_omp}, ++ "Number of OpenMP threads per MPI rank to start (0 is guess)" }, ++ { "-ntomp_pme", FALSE, etINT, {&hw_opt.nthreads_omp_pme}, ++ "Number of OpenMP threads per MPI rank to start (0 is -ntomp)" }, ++ { "-pin", FALSE, etENUM, {thread_aff_opt}, ++ "Set thread affinities" }, ++ { "-pinoffset", FALSE, etINT, {&hw_opt.core_pinning_offset}, ++ "The starting logical core number for pinning to cores; used to avoid pinning threads from different mdrun instances to the same core" }, ++ { "-pinstride", FALSE, etINT, {&hw_opt.core_pinning_stride}, ++ "Pinning distance in logical cores for threads, use 0 to minimize the number of threads per physical core" }, ++ { "-gpu_id", FALSE, etSTR, {&hw_opt.gpu_opt.gpu_id}, ++ "List of GPU device id-s to use, specifies the per-node PP rank to GPU mapping" }, ++ { "-ddcheck", FALSE, etBOOL, {&bDDBondCheck}, ++ "Check for all bonded interactions with DD" }, ++ { "-ddbondcomm", FALSE, etBOOL, {&bDDBondComm}, ++ "HIDDENUse special bonded atom communication when [TT]-rdd[tt] > cut-off" }, ++ { "-rdd", FALSE, etREAL, {&rdd}, ++ "The maximum distance for bonded interactions with DD (nm), 0 is determine from initial coordinates" }, ++ { "-rcon", FALSE, etREAL, {&rconstr}, ++ "Maximum distance for P-LINCS (nm), 0 is estimate" }, ++ { "-dlb", FALSE, etENUM, {dddlb_opt}, ++ "Dynamic load balancing (with DD)" }, ++ { "-dds", FALSE, etREAL, {&dlb_scale}, ++ "Fraction in (0,1) by whose reciprocal the initial DD cell size will be increased in order to " ++ "provide a margin in which dynamic load balancing can act while preserving the minimum cell size." }, ++ { "-ddcsx", FALSE, etSTR, {&ddcsx}, ++ "HIDDENA string containing a vector of the relative sizes in the x " ++ "direction of the corresponding DD cells. Only effective with static " ++ "load balancing." }, ++ { "-ddcsy", FALSE, etSTR, {&ddcsy}, ++ "HIDDENA string containing a vector of the relative sizes in the y " ++ "direction of the corresponding DD cells. Only effective with static " ++ "load balancing." }, ++ { "-ddcsz", FALSE, etSTR, {&ddcsz}, ++ "HIDDENA string containing a vector of the relative sizes in the z " ++ "direction of the corresponding DD cells. Only effective with static " ++ "load balancing." }, ++ { "-gcom", FALSE, etINT, {&nstglobalcomm}, ++ "Global communication frequency" }, ++ { "-nb", FALSE, etENUM, {&nbpu_opt}, ++ "Calculate non-bonded interactions on" }, ++ { "-nstlist", FALSE, etINT, {&nstlist}, ++ "Set nstlist when using a Verlet buffer tolerance (0 is guess)" }, ++ { "-tunepme", FALSE, etBOOL, {&bTunePME}, ++ "Optimize PME load between PP/PME ranks or GPU/CPU" }, ++ { "-testverlet", FALSE, etBOOL, {&bTestVerlet}, ++ "Test the Verlet non-bonded scheme" }, ++ { "-v", FALSE, etBOOL, {&bVerbose}, ++ "Be loud and noisy" }, ++ { "-compact", FALSE, etBOOL, {&bCompact}, ++ "Write a compact log file" }, ++ { "-seppot", FALSE, etBOOL, {&bSepPot}, ++ "Write separate V and dVdl terms for each interaction type and rank to the log file(s)" }, ++ { "-pforce", FALSE, etREAL, {&pforce}, ++ "Print all forces larger than this (kJ/mol nm)" }, ++ { "-reprod", FALSE, etBOOL, {&bReproducible}, ++ "Try to avoid optimizations that affect binary reproducibility" }, ++ { "-cpt", FALSE, etREAL, {&cpt_period}, ++ "Checkpoint interval (minutes)" }, ++ { "-cpnum", FALSE, etBOOL, {&bKeepAndNumCPT}, ++ "Keep and number checkpoint files" }, ++ { "-append", FALSE, etBOOL, {&bAppendFiles}, ++ "Append to previous output files when continuing from checkpoint instead of adding the simulation part number to all file names" }, ++ { "-nsteps", FALSE, etINT64, {&nsteps}, ++ "Run this number of steps, overrides .mdp file option" }, ++ { "-maxh", FALSE, etREAL, {&max_hours}, ++ "Terminate after 0.99 times this time (hours)" }, ++ { "-multi", FALSE, etINT, {&nmultisim}, ++ "Do multiple simulations in parallel" }, ++ { "-replex", FALSE, etINT, {&repl_ex_nst}, ++ "Attempt replica exchange periodically with this period (steps)" }, ++ { "-nex", FALSE, etINT, {&repl_ex_nex}, ++ "Number of random exchanges to carry out each exchange interval (N^3 is one suggestion). -nex zero or not specified gives neighbor replica exchange." }, ++ { "-reseed", FALSE, etINT, {&repl_ex_seed}, ++ "Seed for replica exchange, -1 is generate a seed" }, ++ { "-imdport", FALSE, etINT, {&imdport}, ++ "HIDDENIMD listening port" }, ++ { "-imdwait", FALSE, etBOOL, {&bIMDwait}, ++ "HIDDENPause the simulation while no IMD client is connected" }, ++ { "-imdterm", FALSE, etBOOL, {&bIMDterm}, ++ "HIDDENAllow termination of the simulation from IMD client" }, ++ { "-imdpull", FALSE, etBOOL, {&bIMDpull}, ++ "HIDDENAllow pulling in the simulation from IMD client" }, ++ { "-rerunvsite", FALSE, etBOOL, {&bRerunVSite}, ++ "HIDDENRecalculate virtual site coordinates with [TT]-rerun[tt]" }, ++ { "-confout", FALSE, etBOOL, {&bConfout}, ++ "HIDDENWrite the last configuration with [TT]-c[tt] and force checkpointing at the last step" }, ++ { "-stepout", FALSE, etINT, {&nstepout}, ++ "HIDDENFrequency of writing the remaining wall clock time for the run" }, ++ { "-resetstep", FALSE, etINT, {&resetstep}, ++ "HIDDENReset cycle counters after these many time steps" }, ++ { "-resethway", FALSE, etBOOL, {&bResetCountersHalfWay}, ++ "HIDDENReset the cycle counters after half the number of steps or halfway [TT]-maxh[tt]" } ++ }; ++ unsigned long Flags, PCA_Flags; ++ ivec ddxyz; ++ int dd_node_order; ++ gmx_bool bAddPart; ++ FILE *fplog, *fpmulti; ++ int sim_part, sim_part_fn; ++ const char *part_suffix = ".part"; ++ char suffix[STRLEN]; ++ int rc; ++ char **multidir = NULL; ++ ++ ++ cr = init_commrec(); ++ ++ PCA_Flags = (PCA_CAN_SET_DEFFNM | (MASTER(cr) ? 0 : PCA_QUIET)); ++ ++ /* Comment this in to do fexist calls only on master ++ * works not with rerun or tables at the moment ++ * also comment out the version of init_forcerec in md.c ++ * with NULL instead of opt2fn ++ */ ++ /* ++ if (!MASTER(cr)) ++ { ++ PCA_Flags |= PCA_NOT_READ_NODE; ++ } ++ */ ++ ++ if (!parse_common_args(&argc, argv, PCA_Flags, NFILE, fnm, asize(pa), pa, ++ asize(desc), desc, 0, NULL, &oenv)) ++ { ++ return 0; ++ } ++ ++ ++ /* we set these early because they might be used in init_multisystem() ++ Note that there is the potential for npme>nnodes until the number of ++ threads is set later on, if there's thread parallelization. That shouldn't ++ lead to problems. */ ++ dd_node_order = nenum(ddno_opt); ++ cr->npmenodes = npme; ++ ++ hw_opt.thread_affinity = nenum(thread_aff_opt); ++ ++ /* now check the -multi and -multidir option */ ++ if (opt2bSet("-multidir", NFILE, fnm)) ++ { ++ if (nmultisim > 0) ++ { ++ gmx_fatal(FARGS, "mdrun -multi and -multidir options are mutually exclusive."); ++ } ++ nmultisim = opt2fns(&multidir, "-multidir", NFILE, fnm); ++ } ++ ++ ++ if (repl_ex_nst != 0 && nmultisim < 2) ++ { ++ gmx_fatal(FARGS, "Need at least two replicas for replica exchange (option -multi)"); ++ } ++ ++ if (repl_ex_nex < 0) ++ { ++ gmx_fatal(FARGS, "Replica exchange number of exchanges needs to be positive"); ++ } ++ ++ if (nmultisim > 1) ++ { ++#ifndef GMX_THREAD_MPI ++ gmx_bool bParFn = (multidir == NULL); ++ init_multisystem(cr, nmultisim, multidir, NFILE, fnm, bParFn); ++#else ++ gmx_fatal(FARGS, "mdrun -multi is not supported with the thread library. " ++ "Please compile GROMACS with MPI support"); ++#endif ++ } ++ ++ bAddPart = !bAppendFiles; ++ ++ /* Check if there is ANY checkpoint file available */ ++ sim_part = 1; ++ sim_part_fn = sim_part; ++ if (opt2bSet("-cpi", NFILE, fnm)) ++ { ++ if (bSepPot && bAppendFiles) ++ { ++ gmx_fatal(FARGS, "Output file appending is not supported with -seppot"); ++ } ++ ++ bAppendFiles = ++ read_checkpoint_simulation_part(opt2fn_master("-cpi", NFILE, ++ fnm, cr), ++ &sim_part_fn, NULL, cr, ++ bAppendFiles, NFILE, fnm, ++ part_suffix, &bAddPart); ++ if (sim_part_fn == 0 && MULTIMASTER(cr)) ++ { ++ fprintf(stdout, "No previous checkpoint file present, assuming this is a new run.\n"); ++ } ++ else ++ { ++ sim_part = sim_part_fn + 1; ++ } ++ ++ if (MULTISIM(cr) && MASTER(cr)) ++ { ++ if (MULTIMASTER(cr)) ++ { ++ /* Log file is not yet available, so if there's a ++ * problem we can only write to stderr. */ ++ fpmulti = stderr; ++ } ++ else ++ { ++ fpmulti = NULL; ++ } ++ check_multi_int(fpmulti, cr->ms, sim_part, "simulation part", TRUE); ++ } ++ } ++ else ++ { ++ bAppendFiles = FALSE; ++ } ++ ++ if (!bAppendFiles) ++ { ++ sim_part_fn = sim_part; ++ } ++ ++ if (bAddPart) ++ { ++ /* Rename all output files (except checkpoint files) */ ++ /* create new part name first (zero-filled) */ ++ sprintf(suffix, "%s%04d", part_suffix, sim_part_fn); ++ ++ add_suffix_to_output_names(fnm, NFILE, suffix); ++ if (MULTIMASTER(cr)) ++ { ++ fprintf(stdout, "Checkpoint file is from part %d, new output files will be suffixed '%s'.\n", sim_part-1, suffix); ++ } ++ } ++ ++ Flags = opt2bSet("-rerun", NFILE, fnm) ? MD_RERUN : 0; ++ Flags = Flags | (bSepPot ? MD_SEPPOT : 0); ++ Flags = Flags | (bDDBondCheck ? MD_DDBONDCHECK : 0); ++ Flags = Flags | (bDDBondComm ? MD_DDBONDCOMM : 0); ++ Flags = Flags | (bTunePME ? MD_TUNEPME : 0); ++ Flags = Flags | (bTestVerlet ? MD_TESTVERLET : 0); ++ Flags = Flags | (bConfout ? MD_CONFOUT : 0); ++ Flags = Flags | (bRerunVSite ? MD_RERUN_VSITE : 0); ++ Flags = Flags | (bReproducible ? MD_REPRODUCIBLE : 0); ++ Flags = Flags | (bAppendFiles ? MD_APPENDFILES : 0); ++ Flags = Flags | (opt2parg_bSet("-append", asize(pa), pa) ? MD_APPENDFILESSET : 0); ++ Flags = Flags | (bKeepAndNumCPT ? MD_KEEPANDNUMCPT : 0); ++ Flags = Flags | (sim_part > 1 ? MD_STARTFROMCPT : 0); ++ Flags = Flags | (bResetCountersHalfWay ? MD_RESETCOUNTERSHALFWAY : 0); ++ Flags = Flags | (bIMDwait ? MD_IMDWAIT : 0); ++ Flags = Flags | (bIMDterm ? MD_IMDTERM : 0); ++ Flags = Flags | (bIMDpull ? MD_IMDPULL : 0); ++ ++ /* We postpone opening the log file if we are appending, so we can ++ first truncate the old log file and append to the correct position ++ there instead. */ ++ if ((MASTER(cr) || bSepPot) && !bAppendFiles) ++ { ++ gmx_log_open(ftp2fn(efLOG, NFILE, fnm), cr, ++ !bSepPot, Flags & MD_APPENDFILES, &fplog); ++ please_cite(fplog, "Hess2008b"); ++ please_cite(fplog, "Spoel2005a"); ++ please_cite(fplog, "Lindahl2001a"); ++ please_cite(fplog, "Berendsen95a"); ++ } ++ else if (!MASTER(cr) && bSepPot) ++ { ++ gmx_log_open(ftp2fn(efLOG, NFILE, fnm), cr, !bSepPot, Flags, &fplog); ++ } ++ else ++ { ++ fplog = NULL; ++ } ++ ++ ddxyz[XX] = (int)(realddxyz[XX] + 0.5); ++ ddxyz[YY] = (int)(realddxyz[YY] + 0.5); ++ ddxyz[ZZ] = (int)(realddxyz[ZZ] + 0.5); ++ ++ rc = mdrunner(&hw_opt, fplog, cr, NFILE, fnm, oenv, bVerbose, bCompact, ++ nstglobalcomm, ddxyz, dd_node_order, rdd, rconstr, ++ dddlb_opt[0], dlb_scale, ddcsx, ddcsy, ddcsz, ++ nbpu_opt[0], nstlist, ++ nsteps, nstepout, resetstep, ++ nmultisim, repl_ex_nst, repl_ex_nex, repl_ex_seed, ++ pforce, cpt_period, max_hours, deviceOptions, imdport, Flags); ++ ++ /* Log file has to be closed in mdrunner if we are appending to it ++ (fplog not set here) */ ++ if (MASTER(cr) && !bAppendFiles) ++ { ++ gmx_log_close(fplog); ++ } ++ ++ return rc; ++} +diff --git a/src/programs/mdrun/repl_ex.c b/src/programs/mdrun/repl_ex.c +index 46a9bc0..cfb0b7f 100644 +--- a/src/programs/mdrun/repl_ex.c ++++ b/src/programs/mdrun/repl_ex.c +@@ -51,6 +51,12 @@ + #include "domdec.h" + #include "gromacs/random/random.h" + ++/* PLUMED */ ++#include "../../../Plumed.h" ++extern int plumedswitch; ++extern plumed plumedmain; ++/* END PLUMED */ ++ + #define PROBABILITYCUTOFF 100 + /* we don't bother evaluating if events are more rare than exp(-100) = 3.7x10^-44 */ + +@@ -112,14 +118,16 @@ static gmx_bool repl_quantity(const gmx_multisim_t *ms, + qall[re->repl] = q; + gmx_sum_sim(ms->nsim, qall, ms); + +- bDiff = FALSE; +- for (s = 1; s < ms->nsim; s++) +- { +- if (qall[s] != qall[0]) +- { ++ /* PLUMED */ ++ //bDiff = FALSE; ++ //for (s = 1; s < ms->nsim; s++) ++ //{ ++ // if (qall[s] != qall[0]) ++ // { + bDiff = TRUE; +- } +- } ++ // } ++ //} ++ /* END PLUMED */ + + if (bDiff) + { +@@ -269,6 +277,10 @@ gmx_repl_ex_t init_replica_exchange(FILE *fplog, + re->ind[i] = i; + } + ++ /* PLUMED */ ++ // plumed2: check if we want alternative patterns (i.e. for bias-exchange metaD) ++ // in those cases replicas can share the same temperature. ++ /* + if (re->type < ereENDSINGLE) + { + +@@ -277,11 +289,12 @@ gmx_repl_ex_t init_replica_exchange(FILE *fplog, + for (j = i+1; j < re->nrepl; j++) + { + if (re->q[re->type][re->ind[j]] < re->q[re->type][re->ind[i]]) +- { ++ {*/ + /* Unordered replicas are supposed to work, but there + * is still an issues somewhere. + * Note that at this point still re->ind[i]=i. + */ ++ /* + gmx_fatal(FARGS, "Replicas with indices %d < %d have %ss %g > %g, please order your replicas on increasing %s", + i, j, + erename[re->type], +@@ -299,6 +312,8 @@ gmx_repl_ex_t init_replica_exchange(FILE *fplog, + } + } + } ++ */ ++ /* END PLUMED */ + + /* keep track of all the swaps, starting with the initial placement. */ + snew(re->allswaps, re->nrepl); +@@ -982,6 +997,10 @@ test_for_replica_exchange(FILE *fplog, + pind[i] = re->ind[i]; + } + ++ /* PLUMED */ ++ int plumed_test_exchange_pattern=0; ++ /* END PLUMED */ ++ + if (bMultiEx) + { + /* multiple random switch exchange */ +@@ -1057,6 +1076,31 @@ test_for_replica_exchange(FILE *fplog, + /* standard nearest neighbor replica exchange */ + + m = (step / re->nst) % 2; ++ /* PLUMED */ ++ if(plumedswitch){ ++ int partner=re->repl; ++ plumed_cmd(plumedmain,"getExchangesFlag",&plumed_test_exchange_pattern); ++ if(plumed_test_exchange_pattern>0){ ++ int *list; ++ snew(list,re->nrepl); ++ plumed_cmd(plumedmain,"setNumberOfReplicas",&(re->nrepl)); ++ plumed_cmd(plumedmain,"getExchangesList",list); ++ for(i=0; inrepl; i++) re->ind[i]=list[i]; ++ sfree(list); ++ } ++ ++ for(i=1; inrepl; i++) { ++ if (i % 2 != m) continue; ++ a = re->ind[i-1]; ++ b = re->ind[i]; ++ if(re->repl==a) partner=b; ++ if(re->repl==b) partner=a; ++ } ++ plumed_cmd(plumedmain,"GREX setPartner",&partner); ++ plumed_cmd(plumedmain,"GREX calculate",NULL); ++ plumed_cmd(plumedmain,"GREX shareAllDeltaBias",NULL); ++ } ++ /* END PLUMED */ + for (i = 1; i < re->nrepl; i++) + { + a = re->ind[i-1]; +@@ -1066,6 +1110,18 @@ test_for_replica_exchange(FILE *fplog, + if (i % 2 == m) + { + delta = calc_delta(fplog, bPrint, re, a, b, a, b); ++ /* PLUMED */ ++ if(plumedswitch){ ++ real adb,bdb,dplumed; ++ char buf[300]; ++ sprintf(buf,"GREX getDeltaBias %d",a); plumed_cmd(plumedmain,buf,&adb); ++ sprintf(buf,"GREX getDeltaBias %d",b); plumed_cmd(plumedmain,buf,&bdb); ++ dplumed=adb*re->beta[a]+bdb*re->beta[b]; ++ delta+=dplumed; ++ if (bPrint) ++ fprintf(fplog,"dplumed = %10.3e dE_Term = %10.3e (kT)\n",dplumed,delta); ++ } ++ /* END PLUMED */ + if (delta <= 0) + { + /* accepted */ +@@ -1092,11 +1148,22 @@ test_for_replica_exchange(FILE *fplog, + + if (bEx[i]) + { ++ /* PLUMED */ ++ if(!plumed_test_exchange_pattern) { ++ /* standard neighbour swapping */ + /* swap these two */ + tmp = pind[i-1]; + pind[i-1] = pind[i]; + pind[i] = tmp; + re->nexchange[i]++; /* statistics for back compatibility */ ++ } else { ++ /* alternative swapping patterns */ ++ tmp = pind[a]; ++ pind[a] = pind[b]; ++ pind[b] = tmp; ++ re->nexchange[i]++; /* statistics for back compatibility */ ++ } ++ /* END PLUMED */ + } + } + else +@@ -1112,6 +1179,15 @@ test_for_replica_exchange(FILE *fplog, + re->nattempt[m]++; + } + ++ /* PLUMED */ ++ if(plumed_test_exchange_pattern>0) { ++ for (i = 0; i < re->nrepl; i++) ++ { ++ re->ind[i] = i; ++ } ++ } ++ /* END PLUMED */ ++ + /* record which moves were made and accepted */ + for (i = 0; i < re->nrepl; i++) + { +@@ -1316,6 +1392,10 @@ gmx_bool replica_exchange(FILE *fplog, const t_commrec *cr, struct gmx_repl_ex * + /* The order in which multiple exchanges will occur. */ + gmx_bool bThisReplicaExchanged = FALSE; + ++ /* PLUMED */ ++ if(plumedswitch)plumed_cmd(plumedmain,"GREX prepare",NULL); ++ /* END PLUMED */ ++ + if (MASTER(cr)) + { + replica_id = re->repl; +diff --git a/src/programs/mdrun/repl_ex.c.preplumed b/src/programs/mdrun/repl_ex.c.preplumed +new file mode 100644 +index 0000000..46a9bc0 +--- /dev/null ++++ b/src/programs/mdrun/repl_ex.c.preplumed +@@ -0,0 +1,1439 @@ ++/* ++ * This file is part of the GROMACS molecular simulation package. ++ * ++ * Copyright (c) 1991-2000, University of Groningen, The Netherlands. ++ * Copyright (c) 2001-2004, The GROMACS development team. ++ * Copyright (c) 2011,2012,2013,2014, by the GROMACS development team, led by ++ * Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl, ++ * and including many others, as listed in the AUTHORS file in the ++ * top-level source directory and at http://www.gromacs.org. ++ * ++ * GROMACS 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; either version 2.1 ++ * of the License, or (at your option) any later version. ++ * ++ * GROMACS 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 ++ * Lesser General Public License for more details. ++ * ++ * You should have received a copy of the GNU Lesser General Public ++ * License along with GROMACS; if not, see ++ * http://www.gnu.org/licenses, or write to the Free Software Foundation, ++ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. ++ * ++ * If you want to redistribute modifications to GROMACS, please ++ * consider that scientific software is very special. Version ++ * control is crucial - bugs must be traceable. We will be happy to ++ * consider code for inclusion in the official distribution, but ++ * derived work must not be called official GROMACS. Details are found ++ * in the README & COPYING files - if they are missing, get the ++ * official version at http://www.gromacs.org. ++ * ++ * To help us fund GROMACS development, we humbly ask that you cite ++ * the research papers on the package. Check out http://www.gromacs.org. ++ */ ++#ifdef HAVE_CONFIG_H ++#include ++#endif ++ ++#include ++#include "repl_ex.h" ++#include "network.h" ++#include "gromacs/random/random.h" ++#include "gromacs/utility/smalloc.h" ++#include "physics.h" ++#include "copyrite.h" ++#include "macros.h" ++#include "vec.h" ++#include "names.h" ++#include "domdec.h" ++#include "gromacs/random/random.h" ++ ++#define PROBABILITYCUTOFF 100 ++/* we don't bother evaluating if events are more rare than exp(-100) = 3.7x10^-44 */ ++ ++enum { ++ ereTEMP, ereLAMBDA, ereENDSINGLE, ereTL, ereNR ++}; ++const char *erename[ereNR] = { "temperature", "lambda", "end_single_marker", "temperature and lambda"}; ++/* end_single_marker merely notes the end of single variable replica exchange. All types higher than ++ it are multiple replica exchange methods */ ++/* Eventually, should add 'pressure', 'temperature and pressure', 'lambda_and_pressure', 'temperature_lambda_pressure'?; ++ Let's wait until we feel better about the pressure control methods giving exact ensembles. Right now, we assume constant pressure */ ++ ++typedef struct gmx_repl_ex ++{ ++ int repl; ++ int nrepl; ++ real temp; ++ int type; ++ real **q; ++ gmx_bool bNPT; ++ real *pres; ++ int *ind; ++ int *allswaps; ++ int nst; ++ int nex; ++ int seed; ++ int nattempt[2]; ++ real *prob_sum; ++ int **nmoves; ++ int *nexchange; ++ gmx_rng_t rng; ++ ++ /* these are helper arrays for replica exchange; allocated here so they ++ don't have to be allocated each time */ ++ int *destinations; ++ int **cyclic; ++ int **order; ++ int *tmpswap; ++ gmx_bool *incycle; ++ gmx_bool *bEx; ++ ++ /* helper arrays to hold the quantities that are exchanged */ ++ real *prob; ++ real *Epot; ++ real *beta; ++ real *Vol; ++ real **de; ++ ++} t_gmx_repl_ex; ++ ++static gmx_bool repl_quantity(const gmx_multisim_t *ms, ++ struct gmx_repl_ex *re, int ere, real q) ++{ ++ real *qall; ++ gmx_bool bDiff; ++ int i, s; ++ ++ snew(qall, ms->nsim); ++ qall[re->repl] = q; ++ gmx_sum_sim(ms->nsim, qall, ms); ++ ++ bDiff = FALSE; ++ for (s = 1; s < ms->nsim; s++) ++ { ++ if (qall[s] != qall[0]) ++ { ++ bDiff = TRUE; ++ } ++ } ++ ++ if (bDiff) ++ { ++ /* Set the replica exchange type and quantities */ ++ re->type = ere; ++ ++ snew(re->q[ere], re->nrepl); ++ for (s = 0; s < ms->nsim; s++) ++ { ++ re->q[ere][s] = qall[s]; ++ } ++ } ++ sfree(qall); ++ return bDiff; ++} ++ ++gmx_repl_ex_t init_replica_exchange(FILE *fplog, ++ const gmx_multisim_t *ms, ++ const t_state *state, ++ const t_inputrec *ir, ++ int nst, int nex, int init_seed) ++{ ++ real temp, pres; ++ int i, j, k; ++ struct gmx_repl_ex *re; ++ gmx_bool bTemp; ++ gmx_bool bLambda = FALSE; ++ ++ fprintf(fplog, "\nInitializing Replica Exchange\n"); ++ ++ if (ms == NULL || ms->nsim == 1) ++ { ++ gmx_fatal(FARGS, "Nothing to exchange with only one replica, maybe you forgot to set the -multi option of mdrun?"); ++ } ++ if (!EI_DYNAMICS(ir->eI)) ++ { ++ gmx_fatal(FARGS, "Replica exchange is only supported by dynamical simulations"); ++ /* Note that PAR(cr) is defined by cr->nnodes > 1, which is ++ * distinct from MULTISIM(cr). A multi-simulation only runs ++ * with real MPI parallelism, but this does not imply PAR(cr) ++ * is true! ++ * ++ * Since we are using a dynamical integrator, the only ++ * decomposition is DD, so PAR(cr) and DOMAINDECOMP(cr) are ++ * synonymous. The only way for cr->nnodes > 1 to be true is ++ * if we are using DD. */ ++ } ++ ++ snew(re, 1); ++ ++ re->repl = ms->sim; ++ re->nrepl = ms->nsim; ++ snew(re->q, ereENDSINGLE); ++ ++ fprintf(fplog, "Repl There are %d replicas:\n", re->nrepl); ++ ++ check_multi_int(fplog, ms, state->natoms, "the number of atoms", FALSE); ++ check_multi_int(fplog, ms, ir->eI, "the integrator", FALSE); ++ check_multi_int64(fplog, ms, ir->init_step+ir->nsteps, "init_step+nsteps", FALSE); ++ check_multi_int64(fplog, ms, (ir->init_step+nst-1)/nst, ++ "first exchange step: init_step/-replex", FALSE); ++ check_multi_int(fplog, ms, ir->etc, "the temperature coupling", FALSE); ++ check_multi_int(fplog, ms, ir->opts.ngtc, ++ "the number of temperature coupling groups", FALSE); ++ check_multi_int(fplog, ms, ir->epc, "the pressure coupling", FALSE); ++ check_multi_int(fplog, ms, ir->efep, "free energy", FALSE); ++ check_multi_int(fplog, ms, ir->fepvals->n_lambda, "number of lambda states", FALSE); ++ ++ re->temp = ir->opts.ref_t[0]; ++ for (i = 1; (i < ir->opts.ngtc); i++) ++ { ++ if (ir->opts.ref_t[i] != re->temp) ++ { ++ fprintf(fplog, "\nWARNING: The temperatures of the different temperature coupling groups are not identical\n\n"); ++ fprintf(stderr, "\nWARNING: The temperatures of the different temperature coupling groups are not identical\n\n"); ++ } ++ } ++ ++ re->type = -1; ++ bTemp = repl_quantity(ms, re, ereTEMP, re->temp); ++ if (ir->efep != efepNO) ++ { ++ bLambda = repl_quantity(ms, re, ereLAMBDA, (real)ir->fepvals->init_fep_state); ++ } ++ if (re->type == -1) /* nothing was assigned */ ++ { ++ gmx_fatal(FARGS, "The properties of the %d systems are all the same, there is nothing to exchange", re->nrepl); ++ } ++ if (bLambda && bTemp) ++ { ++ re->type = ereTL; ++ } ++ ++ if (bTemp) ++ { ++ please_cite(fplog, "Sugita1999a"); ++ if (ir->epc != epcNO) ++ { ++ re->bNPT = TRUE; ++ fprintf(fplog, "Repl Using Constant Pressure REMD.\n"); ++ please_cite(fplog, "Okabe2001a"); ++ } ++ if (ir->etc == etcBERENDSEN) ++ { ++ gmx_fatal(FARGS, "REMD with the %s thermostat does not produce correct potential energy distributions, consider using the %s thermostat instead", ++ ETCOUPLTYPE(ir->etc), ETCOUPLTYPE(etcVRESCALE)); ++ } ++ } ++ if (bLambda) ++ { ++ if (ir->fepvals->delta_lambda != 0) /* check this? */ ++ { ++ gmx_fatal(FARGS, "delta_lambda is not zero"); ++ } ++ } ++ if (re->bNPT) ++ { ++ snew(re->pres, re->nrepl); ++ if (ir->epct == epctSURFACETENSION) ++ { ++ pres = ir->ref_p[ZZ][ZZ]; ++ } ++ else ++ { ++ pres = 0; ++ j = 0; ++ for (i = 0; i < DIM; i++) ++ { ++ if (ir->compress[i][i] != 0) ++ { ++ pres += ir->ref_p[i][i]; ++ j++; ++ } ++ } ++ pres /= j; ++ } ++ re->pres[re->repl] = pres; ++ gmx_sum_sim(re->nrepl, re->pres, ms); ++ } ++ ++ /* Make an index for increasing replica order */ ++ /* only makes sense if one or the other is varying, not both! ++ if both are varying, we trust the order the person gave. */ ++ snew(re->ind, re->nrepl); ++ for (i = 0; i < re->nrepl; i++) ++ { ++ re->ind[i] = i; ++ } ++ ++ if (re->type < ereENDSINGLE) ++ { ++ ++ for (i = 0; i < re->nrepl; i++) ++ { ++ for (j = i+1; j < re->nrepl; j++) ++ { ++ if (re->q[re->type][re->ind[j]] < re->q[re->type][re->ind[i]]) ++ { ++ /* Unordered replicas are supposed to work, but there ++ * is still an issues somewhere. ++ * Note that at this point still re->ind[i]=i. ++ */ ++ gmx_fatal(FARGS, "Replicas with indices %d < %d have %ss %g > %g, please order your replicas on increasing %s", ++ i, j, ++ erename[re->type], ++ re->q[re->type][i], re->q[re->type][j], ++ erename[re->type]); ++ ++ k = re->ind[i]; ++ re->ind[i] = re->ind[j]; ++ re->ind[j] = k; ++ } ++ else if (re->q[re->type][re->ind[j]] == re->q[re->type][re->ind[i]]) ++ { ++ gmx_fatal(FARGS, "Two replicas have identical %ss", erename[re->type]); ++ } ++ } ++ } ++ } ++ ++ /* keep track of all the swaps, starting with the initial placement. */ ++ snew(re->allswaps, re->nrepl); ++ for (i = 0; i < re->nrepl; i++) ++ { ++ re->allswaps[i] = re->ind[i]; ++ } ++ ++ switch (re->type) ++ { ++ case ereTEMP: ++ fprintf(fplog, "\nReplica exchange in temperature\n"); ++ for (i = 0; i < re->nrepl; i++) ++ { ++ fprintf(fplog, " %5.1f", re->q[re->type][re->ind[i]]); ++ } ++ fprintf(fplog, "\n"); ++ break; ++ case ereLAMBDA: ++ fprintf(fplog, "\nReplica exchange in lambda\n"); ++ for (i = 0; i < re->nrepl; i++) ++ { ++ fprintf(fplog, " %3d", (int)re->q[re->type][re->ind[i]]); ++ } ++ fprintf(fplog, "\n"); ++ break; ++ case ereTL: ++ fprintf(fplog, "\nReplica exchange in temperature and lambda state\n"); ++ for (i = 0; i < re->nrepl; i++) ++ { ++ fprintf(fplog, " %5.1f", re->q[ereTEMP][re->ind[i]]); ++ } ++ fprintf(fplog, "\n"); ++ for (i = 0; i < re->nrepl; i++) ++ { ++ fprintf(fplog, " %5d", (int)re->q[ereLAMBDA][re->ind[i]]); ++ } ++ fprintf(fplog, "\n"); ++ break; ++ default: ++ gmx_incons("Unknown replica exchange quantity"); ++ } ++ if (re->bNPT) ++ { ++ fprintf(fplog, "\nRepl p"); ++ for (i = 0; i < re->nrepl; i++) ++ { ++ fprintf(fplog, " %5.2f", re->pres[re->ind[i]]); ++ } ++ ++ for (i = 0; i < re->nrepl; i++) ++ { ++ if ((i > 0) && (re->pres[re->ind[i]] < re->pres[re->ind[i-1]])) ++ { ++ fprintf(fplog, "\nWARNING: The reference pressures decrease with increasing temperatures\n\n"); ++ fprintf(stderr, "\nWARNING: The reference pressures decrease with increasing temperatures\n\n"); ++ } ++ } ++ } ++ re->nst = nst; ++ if (init_seed == -1) ++ { ++ if (MASTERSIM(ms)) ++ { ++ re->seed = (int)gmx_rng_make_seed(); ++ } ++ else ++ { ++ re->seed = 0; ++ } ++ gmx_sumi_sim(1, &(re->seed), ms); ++ } ++ else ++ { ++ re->seed = init_seed; ++ } ++ fprintf(fplog, "\nReplica exchange interval: %d\n", re->nst); ++ fprintf(fplog, "\nReplica random seed: %d\n", re->seed); ++ re->rng = gmx_rng_init(re->seed); ++ ++ re->nattempt[0] = 0; ++ re->nattempt[1] = 0; ++ ++ snew(re->prob_sum, re->nrepl); ++ snew(re->nexchange, re->nrepl); ++ snew(re->nmoves, re->nrepl); ++ for (i = 0; i < re->nrepl; i++) ++ { ++ snew(re->nmoves[i], re->nrepl); ++ } ++ fprintf(fplog, "Replica exchange information below: x=exchange, pr=probability\n"); ++ ++ /* generate space for the helper functions so we don't have to snew each time */ ++ ++ snew(re->destinations, re->nrepl); ++ snew(re->incycle, re->nrepl); ++ snew(re->tmpswap, re->nrepl); ++ snew(re->cyclic, re->nrepl); ++ snew(re->order, re->nrepl); ++ for (i = 0; i < re->nrepl; i++) ++ { ++ snew(re->cyclic[i], re->nrepl); ++ snew(re->order[i], re->nrepl); ++ } ++ /* allocate space for the functions storing the data for the replicas */ ++ /* not all of these arrays needed in all cases, but they don't take ++ up much space, since the max size is nrepl**2 */ ++ snew(re->prob, re->nrepl); ++ snew(re->bEx, re->nrepl); ++ snew(re->beta, re->nrepl); ++ snew(re->Vol, re->nrepl); ++ snew(re->Epot, re->nrepl); ++ snew(re->de, re->nrepl); ++ for (i = 0; i < re->nrepl; i++) ++ { ++ snew(re->de[i], re->nrepl); ++ } ++ re->nex = nex; ++ return re; ++} ++ ++static void exchange_reals(const gmx_multisim_t gmx_unused *ms, int gmx_unused b, real *v, int n) ++{ ++ real *buf; ++ int i; ++ ++ if (v) ++ { ++ snew(buf, n); ++#ifdef GMX_MPI ++ /* ++ MPI_Sendrecv(v, n*sizeof(real),MPI_BYTE,MSRANK(ms,b),0, ++ buf,n*sizeof(real),MPI_BYTE,MSRANK(ms,b),0, ++ ms->mpi_comm_masters,MPI_STATUS_IGNORE); ++ */ ++ { ++ MPI_Request mpi_req; ++ ++ MPI_Isend(v, n*sizeof(real), MPI_BYTE, MSRANK(ms, b), 0, ++ ms->mpi_comm_masters, &mpi_req); ++ MPI_Recv(buf, n*sizeof(real), MPI_BYTE, MSRANK(ms, b), 0, ++ ms->mpi_comm_masters, MPI_STATUS_IGNORE); ++ MPI_Wait(&mpi_req, MPI_STATUS_IGNORE); ++ } ++#endif ++ for (i = 0; i < n; i++) ++ { ++ v[i] = buf[i]; ++ } ++ sfree(buf); ++ } ++} ++ ++ ++static void exchange_ints(const gmx_multisim_t gmx_unused *ms, int gmx_unused b, int *v, int n) ++{ ++ int *buf; ++ int i; ++ ++ if (v) ++ { ++ snew(buf, n); ++#ifdef GMX_MPI ++ /* ++ MPI_Sendrecv(v, n*sizeof(int),MPI_BYTE,MSRANK(ms,b),0, ++ buf,n*sizeof(int),MPI_BYTE,MSRANK(ms,b),0, ++ ms->mpi_comm_masters,MPI_STATUS_IGNORE); ++ */ ++ { ++ MPI_Request mpi_req; ++ ++ MPI_Isend(v, n*sizeof(int), MPI_BYTE, MSRANK(ms, b), 0, ++ ms->mpi_comm_masters, &mpi_req); ++ MPI_Recv(buf, n*sizeof(int), MPI_BYTE, MSRANK(ms, b), 0, ++ ms->mpi_comm_masters, MPI_STATUS_IGNORE); ++ MPI_Wait(&mpi_req, MPI_STATUS_IGNORE); ++ } ++#endif ++ for (i = 0; i < n; i++) ++ { ++ v[i] = buf[i]; ++ } ++ sfree(buf); ++ } ++} ++ ++static void exchange_doubles(const gmx_multisim_t gmx_unused *ms, int gmx_unused b, double *v, int n) ++{ ++ double *buf; ++ int i; ++ ++ if (v) ++ { ++ snew(buf, n); ++#ifdef GMX_MPI ++ /* ++ MPI_Sendrecv(v, n*sizeof(double),MPI_BYTE,MSRANK(ms,b),0, ++ buf,n*sizeof(double),MPI_BYTE,MSRANK(ms,b),0, ++ ms->mpi_comm_masters,MPI_STATUS_IGNORE); ++ */ ++ { ++ MPI_Request mpi_req; ++ ++ MPI_Isend(v, n*sizeof(double), MPI_BYTE, MSRANK(ms, b), 0, ++ ms->mpi_comm_masters, &mpi_req); ++ MPI_Recv(buf, n*sizeof(double), MPI_BYTE, MSRANK(ms, b), 0, ++ ms->mpi_comm_masters, MPI_STATUS_IGNORE); ++ MPI_Wait(&mpi_req, MPI_STATUS_IGNORE); ++ } ++#endif ++ for (i = 0; i < n; i++) ++ { ++ v[i] = buf[i]; ++ } ++ sfree(buf); ++ } ++} ++ ++static void exchange_rvecs(const gmx_multisim_t gmx_unused *ms, int gmx_unused b, rvec *v, int n) ++{ ++ rvec *buf; ++ int i; ++ ++ if (v) ++ { ++ snew(buf, n); ++#ifdef GMX_MPI ++ /* ++ MPI_Sendrecv(v[0], n*sizeof(rvec),MPI_BYTE,MSRANK(ms,b),0, ++ buf[0],n*sizeof(rvec),MPI_BYTE,MSRANK(ms,b),0, ++ ms->mpi_comm_masters,MPI_STATUS_IGNORE); ++ */ ++ { ++ MPI_Request mpi_req; ++ ++ MPI_Isend(v[0], n*sizeof(rvec), MPI_BYTE, MSRANK(ms, b), 0, ++ ms->mpi_comm_masters, &mpi_req); ++ MPI_Recv(buf[0], n*sizeof(rvec), MPI_BYTE, MSRANK(ms, b), 0, ++ ms->mpi_comm_masters, MPI_STATUS_IGNORE); ++ MPI_Wait(&mpi_req, MPI_STATUS_IGNORE); ++ } ++#endif ++ for (i = 0; i < n; i++) ++ { ++ copy_rvec(buf[i], v[i]); ++ } ++ sfree(buf); ++ } ++} ++ ++static void exchange_state(const gmx_multisim_t *ms, int b, t_state *state) ++{ ++ /* When t_state changes, this code should be updated. */ ++ int ngtc, nnhpres; ++ ngtc = state->ngtc * state->nhchainlength; ++ nnhpres = state->nnhpres* state->nhchainlength; ++ exchange_rvecs(ms, b, state->box, DIM); ++ exchange_rvecs(ms, b, state->box_rel, DIM); ++ exchange_rvecs(ms, b, state->boxv, DIM); ++ exchange_reals(ms, b, &(state->veta), 1); ++ exchange_reals(ms, b, &(state->vol0), 1); ++ exchange_rvecs(ms, b, state->svir_prev, DIM); ++ exchange_rvecs(ms, b, state->fvir_prev, DIM); ++ exchange_rvecs(ms, b, state->pres_prev, DIM); ++ exchange_doubles(ms, b, state->nosehoover_xi, ngtc); ++ exchange_doubles(ms, b, state->nosehoover_vxi, ngtc); ++ exchange_doubles(ms, b, state->nhpres_xi, nnhpres); ++ exchange_doubles(ms, b, state->nhpres_vxi, nnhpres); ++ exchange_doubles(ms, b, state->therm_integral, state->ngtc); ++ exchange_rvecs(ms, b, state->x, state->natoms); ++ exchange_rvecs(ms, b, state->v, state->natoms); ++ exchange_rvecs(ms, b, state->sd_X, state->natoms); ++} ++ ++static void copy_rvecs(rvec *s, rvec *d, int n) ++{ ++ int i; ++ ++ if (d != NULL) ++ { ++ for (i = 0; i < n; i++) ++ { ++ copy_rvec(s[i], d[i]); ++ } ++ } ++} ++ ++static void copy_doubles(const double *s, double *d, int n) ++{ ++ int i; ++ ++ if (d != NULL) ++ { ++ for (i = 0; i < n; i++) ++ { ++ d[i] = s[i]; ++ } ++ } ++} ++ ++static void copy_reals(const real *s, real *d, int n) ++{ ++ int i; ++ ++ if (d != NULL) ++ { ++ for (i = 0; i < n; i++) ++ { ++ d[i] = s[i]; ++ } ++ } ++} ++ ++static void copy_ints(const int *s, int *d, int n) ++{ ++ int i; ++ ++ if (d != NULL) ++ { ++ for (i = 0; i < n; i++) ++ { ++ d[i] = s[i]; ++ } ++ } ++} ++ ++#define scopy_rvecs(v, n) copy_rvecs(state->v, state_local->v, n); ++#define scopy_doubles(v, n) copy_doubles(state->v, state_local->v, n); ++#define scopy_reals(v, n) copy_reals(state->v, state_local->v, n); ++#define scopy_ints(v, n) copy_ints(state->v, state_local->v, n); ++ ++static void copy_state_nonatomdata(t_state *state, t_state *state_local) ++{ ++ /* When t_state changes, this code should be updated. */ ++ int ngtc, nnhpres; ++ ngtc = state->ngtc * state->nhchainlength; ++ nnhpres = state->nnhpres* state->nhchainlength; ++ scopy_rvecs(box, DIM); ++ scopy_rvecs(box_rel, DIM); ++ scopy_rvecs(boxv, DIM); ++ state_local->veta = state->veta; ++ state_local->vol0 = state->vol0; ++ scopy_rvecs(svir_prev, DIM); ++ scopy_rvecs(fvir_prev, DIM); ++ scopy_rvecs(pres_prev, DIM); ++ scopy_doubles(nosehoover_xi, ngtc); ++ scopy_doubles(nosehoover_vxi, ngtc); ++ scopy_doubles(nhpres_xi, nnhpres); ++ scopy_doubles(nhpres_vxi, nnhpres); ++ scopy_doubles(therm_integral, state->ngtc); ++ scopy_rvecs(x, state->natoms); ++ scopy_rvecs(v, state->natoms); ++ scopy_rvecs(sd_X, state->natoms); ++ copy_ints(&(state->fep_state), &(state_local->fep_state), 1); ++ scopy_reals(lambda, efptNR); ++} ++ ++static void scale_velocities(t_state *state, real fac) ++{ ++ int i; ++ ++ if (state->v) ++ { ++ for (i = 0; i < state->natoms; i++) ++ { ++ svmul(fac, state->v[i], state->v[i]); ++ } ++ } ++} ++ ++static void print_transition_matrix(FILE *fplog, int n, int **nmoves, int *nattempt) ++{ ++ int i, j, ntot; ++ float Tprint; ++ ++ ntot = nattempt[0] + nattempt[1]; ++ fprintf(fplog, "\n"); ++ fprintf(fplog, "Repl"); ++ for (i = 0; i < n; i++) ++ { ++ fprintf(fplog, " "); /* put the title closer to the center */ ++ } ++ fprintf(fplog, "Empirical Transition Matrix\n"); ++ ++ fprintf(fplog, "Repl"); ++ for (i = 0; i < n; i++) ++ { ++ fprintf(fplog, "%8d", (i+1)); ++ } ++ fprintf(fplog, "\n"); ++ ++ for (i = 0; i < n; i++) ++ { ++ fprintf(fplog, "Repl"); ++ for (j = 0; j < n; j++) ++ { ++ Tprint = 0.0; ++ if (nmoves[i][j] > 0) ++ { ++ Tprint = nmoves[i][j]/(2.0*ntot); ++ } ++ fprintf(fplog, "%8.4f", Tprint); ++ } ++ fprintf(fplog, "%3d\n", i); ++ } ++} ++ ++static void print_ind(FILE *fplog, const char *leg, int n, int *ind, gmx_bool *bEx) ++{ ++ int i; ++ ++ fprintf(fplog, "Repl %2s %2d", leg, ind[0]); ++ for (i = 1; i < n; i++) ++ { ++ fprintf(fplog, " %c %2d", (bEx != 0 && bEx[i]) ? 'x' : ' ', ind[i]); ++ } ++ fprintf(fplog, "\n"); ++} ++ ++static void print_allswitchind(FILE *fplog, int n, int *pind, int *allswaps, int *tmpswap) ++{ ++ int i; ++ ++ for (i = 0; i < n; i++) ++ { ++ tmpswap[i] = allswaps[i]; ++ } ++ for (i = 0; i < n; i++) ++ { ++ allswaps[i] = tmpswap[pind[i]]; ++ } ++ ++ fprintf(fplog, "\nAccepted Exchanges: "); ++ for (i = 0; i < n; i++) ++ { ++ fprintf(fplog, "%d ", pind[i]); ++ } ++ fprintf(fplog, "\n"); ++ ++ /* the "Order After Exchange" is the state label corresponding to the configuration that ++ started in state listed in order, i.e. ++ ++ 3 0 1 2 ++ ++ means that the: ++ configuration starting in simulation 3 is now in simulation 0, ++ configuration starting in simulation 0 is now in simulation 1, ++ configuration starting in simulation 1 is now in simulation 2, ++ configuration starting in simulation 2 is now in simulation 3 ++ */ ++ fprintf(fplog, "Order After Exchange: "); ++ for (i = 0; i < n; i++) ++ { ++ fprintf(fplog, "%d ", allswaps[i]); ++ } ++ fprintf(fplog, "\n\n"); ++} ++ ++static void print_prob(FILE *fplog, const char *leg, int n, real *prob) ++{ ++ int i; ++ char buf[8]; ++ ++ fprintf(fplog, "Repl %2s ", leg); ++ for (i = 1; i < n; i++) ++ { ++ if (prob[i] >= 0) ++ { ++ sprintf(buf, "%4.2f", prob[i]); ++ fprintf(fplog, " %3s", buf[0] == '1' ? "1.0" : buf+1); ++ } ++ else ++ { ++ fprintf(fplog, " "); ++ } ++ } ++ fprintf(fplog, "\n"); ++} ++ ++static void print_count(FILE *fplog, const char *leg, int n, int *count) ++{ ++ int i; ++ ++ fprintf(fplog, "Repl %2s ", leg); ++ for (i = 1; i < n; i++) ++ { ++ fprintf(fplog, " %4d", count[i]); ++ } ++ fprintf(fplog, "\n"); ++} ++ ++static real calc_delta(FILE *fplog, gmx_bool bPrint, struct gmx_repl_ex *re, int a, int b, int ap, int bp) ++{ ++ ++ real ediff, dpV, delta = 0; ++ real *Epot = re->Epot; ++ real *Vol = re->Vol; ++ real **de = re->de; ++ real *beta = re->beta; ++ ++ /* Two cases; we are permuted and not. In all cases, setting ap = a and bp = b will reduce ++ to the non permuted case */ ++ ++ switch (re->type) ++ { ++ case ereTEMP: ++ /* ++ * Okabe et. al. Chem. Phys. Lett. 335 (2001) 435-439 ++ */ ++ ediff = Epot[b] - Epot[a]; ++ delta = -(beta[bp] - beta[ap])*ediff; ++ break; ++ case ereLAMBDA: ++ /* two cases: when we are permuted, and not. */ ++ /* non-permuted: ++ ediff = E_new - E_old ++ = [H_b(x_a) + H_a(x_b)] - [H_b(x_b) + H_a(x_a)] ++ = [H_b(x_a) - H_a(x_a)] + [H_a(x_b) - H_b(x_b)] ++ = de[b][a] + de[a][b] */ ++ ++ /* permuted: ++ ediff = E_new - E_old ++ = [H_bp(x_a) + H_ap(x_b)] - [H_bp(x_b) + H_ap(x_a)] ++ = [H_bp(x_a) - H_ap(x_a)] + [H_ap(x_b) - H_bp(x_b)] ++ = [H_bp(x_a) - H_a(x_a) + H_a(x_a) - H_ap(x_a)] + [H_ap(x_b) - H_b(x_b) + H_b(x_b) - H_bp(x_b)] ++ = [H_bp(x_a) - H_a(x_a)] - [H_ap(x_a) - H_a(x_a)] + [H_ap(x_b) - H_b(x_b)] - H_bp(x_b) - H_b(x_b)] ++ = (de[bp][a] - de[ap][a]) + (de[ap][b] - de[bp][b]) */ ++ /* but, in the current code implementation, we flip configurations, not indices . . . ++ So let's examine that. ++ = [H_b(x_ap) - H_a(x_a)] - [H_a(x_ap) - H_a(x_a)] + [H_a(x_bp) - H_b(x_b)] - H_b(x_bp) - H_b(x_b)] ++ = [H_b(x_ap) - H_a(x_ap)] + [H_a(x_bp) - H_b(x_pb)] ++ = (de[b][ap] - de[a][ap]) + (de[a][bp] - de[b][bp] ++ So, if we exchange b<=> bp and a<=> ap, we return to the same result. ++ So the simple solution is to flip the ++ position of perturbed and original indices in the tests. ++ */ ++ ++ ediff = (de[bp][a] - de[ap][a]) + (de[ap][b] - de[bp][b]); ++ delta = ediff*beta[a]; /* assume all same temperature in this case */ ++ break; ++ case ereTL: ++ /* not permuted: */ ++ /* delta = reduced E_new - reduced E_old ++ = [beta_b H_b(x_a) + beta_a H_a(x_b)] - [beta_b H_b(x_b) + beta_a H_a(x_a)] ++ = [beta_b H_b(x_a) - beta_a H_a(x_a)] + [beta_a H_a(x_b) - beta_b H_b(x_b)] ++ = [beta_b dH_b(x_a) + beta_b H_a(x_a) - beta_a H_a(x_a)] + ++ [beta_a dH_a(x_b) + beta_a H_b(x_b) - beta_b H_b(x_b)] ++ = [beta_b dH_b(x_a) + [beta_a dH_a(x_b) + ++ beta_b (H_a(x_a) - H_b(x_b)]) - beta_a (H_a(x_a) - H_b(x_b)) ++ = beta_b dH_b(x_a) + beta_a dH_a(x_b) - (beta_b - beta_a)(H_b(x_b) - H_a(x_a) */ ++ /* delta = beta[b]*de[b][a] + beta[a]*de[a][b] - (beta[b] - beta[a])*(Epot[b] - Epot[a]; */ ++ /* permuted (big breath!) */ ++ /* delta = reduced E_new - reduced E_old ++ = [beta_bp H_bp(x_a) + beta_ap H_ap(x_b)] - [beta_bp H_bp(x_b) + beta_ap H_ap(x_a)] ++ = [beta_bp H_bp(x_a) - beta_ap H_ap(x_a)] + [beta_ap H_ap(x_b) - beta_bp H_bp(x_b)] ++ = [beta_bp H_bp(x_a) - beta_ap H_ap(x_a)] + [beta_ap H_ap(x_b) - beta_bp H_bp(x_b)] ++ - beta_pb H_a(x_a) + beta_ap H_a(x_a) + beta_pb H_a(x_a) - beta_ap H_a(x_a) ++ - beta_ap H_b(x_b) + beta_bp H_b(x_b) + beta_ap H_b(x_b) - beta_bp H_b(x_b) ++ = [(beta_bp H_bp(x_a) - beta_bp H_a(x_a)) - (beta_ap H_ap(x_a) - beta_ap H_a(x_a))] + ++ [(beta_ap H_ap(x_b) - beta_ap H_b(x_b)) - (beta_bp H_bp(x_b) - beta_bp H_b(x_b))] ++ + beta_pb H_a(x_a) - beta_ap H_a(x_a) + beta_ap H_b(x_b) - beta_bp H_b(x_b) ++ = [beta_bp (H_bp(x_a) - H_a(x_a)) - beta_ap (H_ap(x_a) - H_a(x_a))] + ++ [beta_ap (H_ap(x_b) - H_b(x_b)) - beta_bp (H_bp(x_b) - H_b(x_b))] ++ + beta_pb (H_a(x_a) - H_b(x_b)) - beta_ap (H_a(x_a) - H_b(x_b)) ++ = ([beta_bp de[bp][a] - beta_ap de[ap][a]) + beta_ap de[ap][b] - beta_bp de[bp][b]) ++ + (beta_pb-beta_ap)(H_a(x_a) - H_b(x_b)) */ ++ delta = beta[bp]*(de[bp][a] - de[bp][b]) + beta[ap]*(de[ap][b] - de[ap][a]) - (beta[bp]-beta[ap])*(Epot[b]-Epot[a]); ++ break; ++ default: ++ gmx_incons("Unknown replica exchange quantity"); ++ } ++ if (bPrint) ++ { ++ fprintf(fplog, "Repl %d <-> %d dE_term = %10.3e (kT)\n", a, b, delta); ++ } ++ if (re->bNPT) ++ { ++ /* revist the calculation for 5.0. Might be some improvements. */ ++ dpV = (beta[ap]*re->pres[ap]-beta[bp]*re->pres[bp])*(Vol[b]-Vol[a])/PRESFAC; ++ if (bPrint) ++ { ++ fprintf(fplog, " dpV = %10.3e d = %10.3e\n", dpV, delta + dpV); ++ } ++ delta += dpV; ++ } ++ return delta; ++} ++ ++static void ++test_for_replica_exchange(FILE *fplog, ++ const gmx_multisim_t *ms, ++ struct gmx_repl_ex *re, ++ gmx_enerdata_t *enerd, ++ real vol, ++ gmx_int64_t step, ++ real time) ++{ ++ int m, i, j, a, b, ap, bp, i0, i1, tmp; ++ real ediff = 0, delta = 0, dpV = 0; ++ gmx_bool bPrint, bMultiEx; ++ gmx_bool *bEx = re->bEx; ++ real *prob = re->prob; ++ int *pind = re->destinations; /* permuted index */ ++ gmx_bool bEpot = FALSE; ++ gmx_bool bDLambda = FALSE; ++ gmx_bool bVol = FALSE; ++ gmx_rng_t rng; ++ ++ bMultiEx = (re->nex > 1); /* multiple exchanges at each state */ ++ fprintf(fplog, "Replica exchange at step " "%"GMX_PRId64 " time %.5f\n", step, time); ++ ++ if (re->bNPT) ++ { ++ for (i = 0; i < re->nrepl; i++) ++ { ++ re->Vol[i] = 0; ++ } ++ bVol = TRUE; ++ re->Vol[re->repl] = vol; ++ } ++ if ((re->type == ereTEMP || re->type == ereTL)) ++ { ++ for (i = 0; i < re->nrepl; i++) ++ { ++ re->Epot[i] = 0; ++ } ++ bEpot = TRUE; ++ re->Epot[re->repl] = enerd->term[F_EPOT]; ++ /* temperatures of different states*/ ++ for (i = 0; i < re->nrepl; i++) ++ { ++ re->beta[i] = 1.0/(re->q[ereTEMP][i]*BOLTZ); ++ } ++ } ++ else ++ { ++ for (i = 0; i < re->nrepl; i++) ++ { ++ re->beta[i] = 1.0/(re->temp*BOLTZ); /* we have a single temperature */ ++ } ++ } ++ if (re->type == ereLAMBDA || re->type == ereTL) ++ { ++ bDLambda = TRUE; ++ /* lambda differences. */ ++ /* de[i][j] is the energy of the jth simulation in the ith Hamiltonian ++ minus the energy of the jth simulation in the jth Hamiltonian */ ++ for (i = 0; i < re->nrepl; i++) ++ { ++ for (j = 0; j < re->nrepl; j++) ++ { ++ re->de[i][j] = 0; ++ } ++ } ++ for (i = 0; i < re->nrepl; i++) ++ { ++ re->de[i][re->repl] = (enerd->enerpart_lambda[(int)re->q[ereLAMBDA][i]+1]-enerd->enerpart_lambda[0]); ++ } ++ } ++ ++ /* now actually do the communication */ ++ if (bVol) ++ { ++ gmx_sum_sim(re->nrepl, re->Vol, ms); ++ } ++ if (bEpot) ++ { ++ gmx_sum_sim(re->nrepl, re->Epot, ms); ++ } ++ if (bDLambda) ++ { ++ for (i = 0; i < re->nrepl; i++) ++ { ++ gmx_sum_sim(re->nrepl, re->de[i], ms); ++ } ++ } ++ ++ /* make a duplicate set of indices for shuffling */ ++ for (i = 0; i < re->nrepl; i++) ++ { ++ pind[i] = re->ind[i]; ++ } ++ ++ if (bMultiEx) ++ { ++ /* multiple random switch exchange */ ++ int nself = 0; ++ for (i = 0; i < re->nex + nself; i++) ++ { ++ double rnd[2]; ++ ++ gmx_rng_cycle_2uniform(step, i*2, re->seed, RND_SEED_REPLEX, rnd); ++ /* randomly select a pair */ ++ /* in theory, could reduce this by identifying only which switches had a nonneglibible ++ probability of occurring (log p > -100) and only operate on those switches */ ++ /* find out which state it is from, and what label that state currently has. Likely ++ more work that useful. */ ++ i0 = (int)(re->nrepl*rnd[0]); ++ i1 = (int)(re->nrepl*rnd[1]); ++ if (i0 == i1) ++ { ++ nself++; ++ continue; /* self-exchange, back up and do it again */ ++ } ++ ++ a = re->ind[i0]; /* what are the indices of these states? */ ++ b = re->ind[i1]; ++ ap = pind[i0]; ++ bp = pind[i1]; ++ ++ bPrint = FALSE; /* too noisy */ ++ /* calculate the energy difference */ ++ /* if the code changes to flip the STATES, rather than the configurations, ++ use the commented version of the code */ ++ /* delta = calc_delta(fplog,bPrint,re,a,b,ap,bp); */ ++ delta = calc_delta(fplog, bPrint, re, ap, bp, a, b); ++ ++ /* we actually only use the first space in the prob and bEx array, ++ since there are actually many switches between pairs. */ ++ ++ if (delta <= 0) ++ { ++ /* accepted */ ++ prob[0] = 1; ++ bEx[0] = TRUE; ++ } ++ else ++ { ++ if (delta > PROBABILITYCUTOFF) ++ { ++ prob[0] = 0; ++ } ++ else ++ { ++ prob[0] = exp(-delta); ++ } ++ /* roll a number to determine if accepted */ ++ gmx_rng_cycle_2uniform(step, i*2+1, re->seed, RND_SEED_REPLEX, rnd); ++ bEx[0] = rnd[0] < prob[0]; ++ } ++ re->prob_sum[0] += prob[0]; ++ ++ if (bEx[0]) ++ { ++ /* swap the states */ ++ tmp = pind[i0]; ++ pind[i0] = pind[i1]; ++ pind[i1] = tmp; ++ } ++ } ++ re->nattempt[0]++; /* keep track of total permutation trials here */ ++ print_allswitchind(fplog, re->nrepl, pind, re->allswaps, re->tmpswap); ++ } ++ else ++ { ++ /* standard nearest neighbor replica exchange */ ++ ++ m = (step / re->nst) % 2; ++ for (i = 1; i < re->nrepl; i++) ++ { ++ a = re->ind[i-1]; ++ b = re->ind[i]; ++ ++ bPrint = (re->repl == a || re->repl == b); ++ if (i % 2 == m) ++ { ++ delta = calc_delta(fplog, bPrint, re, a, b, a, b); ++ if (delta <= 0) ++ { ++ /* accepted */ ++ prob[i] = 1; ++ bEx[i] = TRUE; ++ } ++ else ++ { ++ double rnd[2]; ++ ++ if (delta > PROBABILITYCUTOFF) ++ { ++ prob[i] = 0; ++ } ++ else ++ { ++ prob[i] = exp(-delta); ++ } ++ /* roll a number to determine if accepted */ ++ gmx_rng_cycle_2uniform(step, i, re->seed, RND_SEED_REPLEX, rnd); ++ bEx[i] = rnd[0] < prob[i]; ++ } ++ re->prob_sum[i] += prob[i]; ++ ++ if (bEx[i]) ++ { ++ /* swap these two */ ++ tmp = pind[i-1]; ++ pind[i-1] = pind[i]; ++ pind[i] = tmp; ++ re->nexchange[i]++; /* statistics for back compatibility */ ++ } ++ } ++ else ++ { ++ prob[i] = -1; ++ bEx[i] = FALSE; ++ } ++ } ++ /* print some statistics */ ++ print_ind(fplog, "ex", re->nrepl, re->ind, bEx); ++ print_prob(fplog, "pr", re->nrepl, prob); ++ fprintf(fplog, "\n"); ++ re->nattempt[m]++; ++ } ++ ++ /* record which moves were made and accepted */ ++ for (i = 0; i < re->nrepl; i++) ++ { ++ re->nmoves[re->ind[i]][pind[i]] += 1; ++ re->nmoves[pind[i]][re->ind[i]] += 1; ++ } ++ fflush(fplog); /* make sure we can see what the last exchange was */ ++} ++ ++static void write_debug_x(t_state *state) ++{ ++ int i; ++ ++ if (debug) ++ { ++ for (i = 0; i < state->natoms; i += 10) ++ { ++ fprintf(debug, "dx %5d %10.5f %10.5f %10.5f\n", i, state->x[i][XX], state->x[i][YY], state->x[i][ZZ]); ++ } ++ } ++} ++ ++static void ++cyclic_decomposition(const int *destinations, ++ int **cyclic, ++ gmx_bool *incycle, ++ const int nrepl, ++ int *nswap) ++{ ++ ++ int i, j, c, p; ++ int maxlen = 1; ++ for (i = 0; i < nrepl; i++) ++ { ++ incycle[i] = FALSE; ++ } ++ for (i = 0; i < nrepl; i++) /* one cycle for each replica */ ++ { ++ if (incycle[i]) ++ { ++ cyclic[i][0] = -1; ++ continue; ++ } ++ cyclic[i][0] = i; ++ incycle[i] = TRUE; ++ c = 1; ++ p = i; ++ for (j = 0; j < nrepl; j++) /* potentially all cycles are part, but we will break first */ ++ { ++ p = destinations[p]; /* start permuting */ ++ if (p == i) ++ { ++ cyclic[i][c] = -1; ++ if (c > maxlen) ++ { ++ maxlen = c; ++ } ++ break; /* we've reached the original element, the cycle is complete, and we marked the end. */ ++ } ++ else ++ { ++ cyclic[i][c] = p; /* each permutation gives a new member of the cycle */ ++ incycle[p] = TRUE; ++ c++; ++ } ++ } ++ } ++ *nswap = maxlen - 1; ++ ++ if (debug) ++ { ++ for (i = 0; i < nrepl; i++) ++ { ++ fprintf(debug, "Cycle %d:", i); ++ for (j = 0; j < nrepl; j++) ++ { ++ if (cyclic[i][j] < 0) ++ { ++ break; ++ } ++ fprintf(debug, "%2d", cyclic[i][j]); ++ } ++ fprintf(debug, "\n"); ++ } ++ fflush(debug); ++ } ++} ++ ++static void ++compute_exchange_order(FILE *fplog, ++ int **cyclic, ++ int **order, ++ const int nrepl, ++ const int maxswap) ++{ ++ int i, j; ++ ++ for (j = 0; j < maxswap; j++) ++ { ++ for (i = 0; i < nrepl; i++) ++ { ++ if (cyclic[i][j+1] >= 0) ++ { ++ order[cyclic[i][j+1]][j] = cyclic[i][j]; ++ order[cyclic[i][j]][j] = cyclic[i][j+1]; ++ } ++ } ++ for (i = 0; i < nrepl; i++) ++ { ++ if (order[i][j] < 0) ++ { ++ order[i][j] = i; /* if it's not exchanging, it should stay this round*/ ++ } ++ } ++ } ++ ++ if (debug) ++ { ++ fprintf(fplog, "Replica Exchange Order\n"); ++ for (i = 0; i < nrepl; i++) ++ { ++ fprintf(fplog, "Replica %d:", i); ++ for (j = 0; j < maxswap; j++) ++ { ++ if (order[i][j] < 0) ++ { ++ break; ++ } ++ fprintf(debug, "%2d", order[i][j]); ++ } ++ fprintf(fplog, "\n"); ++ } ++ fflush(fplog); ++ } ++} ++ ++static void ++prepare_to_do_exchange(FILE *fplog, ++ struct gmx_repl_ex *re, ++ const int replica_id, ++ int *maxswap, ++ gmx_bool *bThisReplicaExchanged) ++{ ++ int i, j; ++ /* Hold the cyclic decomposition of the (multiple) replica ++ * exchange. */ ++ gmx_bool bAnyReplicaExchanged = FALSE; ++ *bThisReplicaExchanged = FALSE; ++ ++ for (i = 0; i < re->nrepl; i++) ++ { ++ if (re->destinations[i] != re->ind[i]) ++ { ++ /* only mark as exchanged if the index has been shuffled */ ++ bAnyReplicaExchanged = TRUE; ++ break; ++ } ++ } ++ if (bAnyReplicaExchanged) ++ { ++ /* reinitialize the placeholder arrays */ ++ for (i = 0; i < re->nrepl; i++) ++ { ++ for (j = 0; j < re->nrepl; j++) ++ { ++ re->cyclic[i][j] = -1; ++ re->order[i][j] = -1; ++ } ++ } ++ ++ /* Identify the cyclic decomposition of the permutation (very ++ * fast if neighbor replica exchange). */ ++ cyclic_decomposition(re->destinations, re->cyclic, re->incycle, re->nrepl, maxswap); ++ ++ /* Now translate the decomposition into a replica exchange ++ * order at each step. */ ++ compute_exchange_order(fplog, re->cyclic, re->order, re->nrepl, *maxswap); ++ ++ /* Did this replica do any exchange at any point? */ ++ for (j = 0; j < *maxswap; j++) ++ { ++ if (replica_id != re->order[replica_id][j]) ++ { ++ *bThisReplicaExchanged = TRUE; ++ break; ++ } ++ } ++ } ++} ++ ++gmx_bool replica_exchange(FILE *fplog, const t_commrec *cr, struct gmx_repl_ex *re, ++ t_state *state, gmx_enerdata_t *enerd, ++ t_state *state_local, gmx_int64_t step, real time) ++{ ++ int i, j; ++ int replica_id = 0; ++ int exchange_partner; ++ int maxswap = 0; ++ /* Number of rounds of exchanges needed to deal with any multiple ++ * exchanges. */ ++ /* Where each replica ends up after the exchange attempt(s). */ ++ /* The order in which multiple exchanges will occur. */ ++ gmx_bool bThisReplicaExchanged = FALSE; ++ ++ if (MASTER(cr)) ++ { ++ replica_id = re->repl; ++ test_for_replica_exchange(fplog, cr->ms, re, enerd, det(state_local->box), step, time); ++ prepare_to_do_exchange(fplog, re, replica_id, &maxswap, &bThisReplicaExchanged); ++ } ++ /* Do intra-simulation broadcast so all processors belonging to ++ * each simulation know whether they need to participate in ++ * collecting the state. Otherwise, they might as well get on with ++ * the next thing to do. */ ++ if (DOMAINDECOMP(cr)) ++ { ++#ifdef GMX_MPI ++ MPI_Bcast(&bThisReplicaExchanged, sizeof(gmx_bool), MPI_BYTE, MASTERRANK(cr), ++ cr->mpi_comm_mygroup); ++#endif ++ } ++ ++ if (bThisReplicaExchanged) ++ { ++ /* Exchange the states */ ++ /* Collect the global state on the master node */ ++ if (DOMAINDECOMP(cr)) ++ { ++ dd_collect_state(cr->dd, state_local, state); ++ } ++ else ++ { ++ copy_state_nonatomdata(state_local, state); ++ } ++ ++ if (MASTER(cr)) ++ { ++ /* There will be only one swap cycle with standard replica ++ * exchange, but there may be multiple swap cycles if we ++ * allow multiple swaps. */ ++ ++ for (j = 0; j < maxswap; j++) ++ { ++ exchange_partner = re->order[replica_id][j]; ++ ++ if (exchange_partner != replica_id) ++ { ++ /* Exchange the global states between the master nodes */ ++ if (debug) ++ { ++ fprintf(debug, "Exchanging %d with %d\n", replica_id, exchange_partner); ++ } ++ exchange_state(cr->ms, exchange_partner, state); ++ } ++ } ++ /* For temperature-type replica exchange, we need to scale ++ * the velocities. */ ++ if (re->type == ereTEMP || re->type == ereTL) ++ { ++ scale_velocities(state, sqrt(re->q[ereTEMP][replica_id]/re->q[ereTEMP][re->destinations[replica_id]])); ++ } ++ ++ } ++ ++ /* With domain decomposition the global state is distributed later */ ++ if (!DOMAINDECOMP(cr)) ++ { ++ /* Copy the global state to the local state data structure */ ++ copy_state_nonatomdata(state, state_local); ++ } ++ } ++ ++ return bThisReplicaExchanged; ++} ++ ++void print_replica_exchange_statistics(FILE *fplog, struct gmx_repl_ex *re) ++{ ++ int i; ++ ++ fprintf(fplog, "\nReplica exchange statistics\n"); ++ ++ if (re->nex == 0) ++ { ++ fprintf(fplog, "Repl %d attempts, %d odd, %d even\n", ++ re->nattempt[0]+re->nattempt[1], re->nattempt[1], re->nattempt[0]); ++ ++ fprintf(fplog, "Repl average probabilities:\n"); ++ for (i = 1; i < re->nrepl; i++) ++ { ++ if (re->nattempt[i%2] == 0) ++ { ++ re->prob[i] = 0; ++ } ++ else ++ { ++ re->prob[i] = re->prob_sum[i]/re->nattempt[i%2]; ++ } ++ } ++ print_ind(fplog, "", re->nrepl, re->ind, NULL); ++ print_prob(fplog, "", re->nrepl, re->prob); ++ ++ fprintf(fplog, "Repl number of exchanges:\n"); ++ print_ind(fplog, "", re->nrepl, re->ind, NULL); ++ print_count(fplog, "", re->nrepl, re->nexchange); ++ ++ fprintf(fplog, "Repl average number of exchanges:\n"); ++ for (i = 1; i < re->nrepl; i++) ++ { ++ if (re->nattempt[i%2] == 0) ++ { ++ re->prob[i] = 0; ++ } ++ else ++ { ++ re->prob[i] = ((real)re->nexchange[i])/re->nattempt[i%2]; ++ } ++ } ++ print_ind(fplog, "", re->nrepl, re->ind, NULL); ++ print_prob(fplog, "", re->nrepl, re->prob); ++ ++ fprintf(fplog, "\n"); ++ } ++ /* print the transition matrix */ ++ print_transition_matrix(fplog, re->nrepl, re->nmoves, re->nattempt); ++} diff --git a/g/GROMACS/gromacs-5.1.4-plumed-2.3.0-mpi.patch b/g/GROMACS/gromacs-5.1.4-plumed-2.3.0-mpi.patch new file mode 100644 index 00000000..e91a0aef --- /dev/null +++ b/g/GROMACS/gromacs-5.1.4-plumed-2.3.0-mpi.patch @@ -0,0 +1,9575 @@ +diff --git a/Plumed.cmake b/Plumed.cmake +new file mode 100644 +index 0000000..01472f0 +--- /dev/null ++++ b/Plumed.cmake +@@ -0,0 +1,3 @@ ++# PLUMED: shared installation ++set(PLUMED_LOAD /apps/all/PLUMED/2.3.0-foss-2017a/lib/plumed///src/lib/libplumed.so -ldl ) ++set(PLUMED_DEPENDENCIES /apps/all/PLUMED/2.3.0-foss-2017a/lib/plumed///src/lib/libplumed.so) +diff --git a/Plumed.h b/Plumed.h +new file mode 100644 +index 0000000..16da74a +--- /dev/null ++++ b/Plumed.h +@@ -0,0 +1,494 @@ ++/* +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ++ Copyright (c) 2011-2014 The plumed team ++ (see the PEOPLE file at the root of the distribution for a list of names) ++ ++ See http://www.plumed-code.org for more information. ++ ++ This file is part of plumed, version 2. ++ ++ plumed 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, either version 3 of the License, or ++ (at your option) any later version. ++ ++ plumed 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 Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public License ++ along with plumed. If not, see . +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ */ ++#ifndef __PLUMED_wrapper_Plumed_h ++#define __PLUMED_wrapper_Plumed_h ++ ++/** ++\page ReferencePlumedH Reference for interfacing MD codes with PLUMED ++ ++ Plumed.h and Plumed.c contain the external plumed interface, which is used to ++ integrate it with MD engines. This interface is very general, and is expected ++ not to change across plumed versions. Plumed.c also implements a dummy version ++ of the interface, so as to allow a code to be fully linked even if the plumed ++ library is not available yet. These files could be directly included in the official ++ host MD distribution. In this manner, it will be sufficient to link the plumed ++ library at link time (on all systems) or directly at runtime (on system where ++ dynamic loading is enabled) to include plumed features. ++ ++ Why is Plumed.c written in C and not C++? The reason is that the resulting Plumed.o ++ needs to be linked with the host MD code immediately (whereas the rest of plumed ++ could be linked a posteriori). Imagine the MD code is written in FORTRAN: when we ++ link the Plumed.o file we would like not to need any C++ library linked. In this ++ manner, we do not need to know which C++ compiler will be used to compile plumed. ++ The C++ library is only linked to the "rest" of plumed, which actually use it. ++ Anyway, Plumed.c is written in such a manner to allow its compilation also in C++ ++ (C++ is a bit stricter than C; compatibility is checked when PlumedStatic.cpp, ++ which basically includes Plumed.c, is compiled with the C++ compiler). This will ++ allow e.g. MD codes written in C++ to just incorporate Plumed.c (maybe renamed into ++ Plumed.cpp), without the need of configuring a plain C compiler. ++ ++ Plumed interface can be used from C, C++ and FORTRAN. Everything concerning plumed ++ is hidden inside a single object type, which is described in C by a structure ++ (struct \ref plumed), in C++ by a class (PLMD::Plumed) and in FORTRAN by a ++ fixed-length string (CHARACTER(LEN=32)). Obviously C++ can use both struct ++ and class interfaces, but the first should be preferred. The reference interface ++ is the C one, whereas FORTRAN and C++ interfaces are implemented as wrappers ++ around it. ++ ++ In the C++ interface, all the routines are implemented as methods of PLMD::Plumed. ++ In the C and FORTRAN interfaces, all the routines are named plumed_*, to ++ avoid potential name clashes. Notice that the entire plumed library ++ is implemented in C++, and it is hidden inside the PLMD namespace. ++ ++ Handlers to the plumed object can be converted among different representations, ++ to allow inter-operability among languages. In C, there are tools to convert ++ to/from FORTRAN, whereas in C++ there are tools to convert to/from FORTRAN and C. ++ ++ These handlers only contain a pointer to the real structure, so that ++ when a plumed object is brought from one language to another, ++ it brings a reference to the same environment. ++ ++ Moreover, to simplify life in all cases where a single Plumed object is ++ required for the entire simulation (which covers most of the practical ++ applications with conventional MD codes) it is possible to take advantage ++ of a global interface, which is implicitly referring to a unique global instance. ++ The global object should still be initialized and finalized properly. ++ ++ The basic method to send a message to plumed is ++\verbatim ++ (C) plumed_cmd ++ (C++) PLMD::Plumed::cmd ++ (FORTRAN) PLUMED_F_CMD ++\endverbatim ++ ++ To initialize a plumed object, use: ++\verbatim ++ (C) plumed_create ++ (C++) (constructor of PLMD::Plumed) ++ (FORTRAN) PLUMED_F_CREATE ++\endverbatim ++ ++ To finalize it, use ++\verbatim ++ (C) plumed_finalize ++ (C++) (destructor of PLMD::Plumed) ++ (FORTRAN) PLUMED_F_FINALIZE ++\endverbatim ++ ++ To access to the global-object, use ++\verbatim ++ (C) plumed_gcreate, plumed_gfinalize, plumed_gcmd ++ (C++) PLMD::Plumed::gcreate, PLMD::Plumed::gfinalize, PLMD::Plumed::gcmd ++ (FORTRAN) PLUMED_F_GCREATE, PLUMED_F_GFINALIZE, PLUMED_F_GCMD ++\endverbatim ++ ++ To check if the global object has been initialized, use ++\verbatim ++ (C) plumed_ginitialized ++ (C++) PLMD::Plumed::ginitialized ++ (FORTRAN) PLUMED_F_GINITIALIZED ++\endverbatim ++ ++ To check if plumed library is available (this is useful for runtime linking), use ++\verbatim ++ (C) plumed_installed ++ (C++) PLMD::Plumed::installed ++ (FORTRAN) PLUMED_F_INSTALLED ++\endverbatim ++ ++ To convert handlers use ++\verbatim ++ (C) plumed_c2f (C to FORTRAN) ++ (C) plumed_f2c (FORTRAN to C) ++ (C++) Plumed(plumed) constructor (C to C++) ++ (C++) operator plumed() cast (C++ to C) ++ (C++) Plumed(char*) constructor (FORTRAN to C++) ++ (C++) toFortran(char*) (C++ to FORTRAN) ++\endverbatim ++ ++\verbatim ++ FORTRAN interface ++ SUBROUTINE PLUMED_F_INSTALLED(i) ++ INTEGER, INTENT(OUT) :: i ++ SUBROUTINE PLUMED_F_GINITIALIZED(i) ++ INTEGER, INTENT(OUT) :: i ++ SUBROUTINE PLUMED_F_GCREATE() ++ SUBROUTINE PLUMED_F_GCMD(key,val) ++ CHARACTER(LEN=*), INTENT(IN) :: key ++ UNSPECIFIED_TYPE, INTENT(INOUT) :: val(*) ++ SUBROUTINE PLUMED_F_GFINALIZE() ++ SUBROUTINE PLUMED_F_GLOBAL(p) ++ CHARACTER(LEN=32), INTENT(OUT) :: p ++ SUBROUTINE PLUMED_F_CREATE(p) ++ CHARACTER(LEN=32), INTENT(OUT) :: p ++ SUBROUTINE PLUMED_F_CMD(p,key,val) ++ CHARACTER(LEN=32), INTENT(IN) :: p ++ CHARACTER(LEN=*), INTENT(IN) :: key ++ UNSPECIFIED_TYPE, INTENT(INOUT) :: val(*) ++ SUBROUTINE PLUMED_F_FINALIZE(p) ++ CHARACTER(LEN=32), INTENT(IN) :: p ++\endverbatim ++ ++ The main routine is "cmd", which accepts two arguments: ++ key is a string containing the name of the command ++ val is the argument. it is declared const so as to use allow passing const objects, but in practice plumed ++ is going to modify val in several cases (using a const_cast). ++ In some cases val can be omitted: just pass a NULL pointer (in C++, val is optional and can be omitted). ++ The set of possible keys is the real API of the plumed library, and will be expanded with time. ++ New commands will be added, but backward compatibility will be retained as long as possible. ++ ++ To pass plumed a callback function use the following syntax (not available in FORTRAN yet) ++\verbatim ++ plumed_function_holder ff; ++ ff.p=your_function; ++ plumed_cmd(plumed,"xxxx",&ff); ++\endverbatim ++ (this is passing the your_function() function to the "xxxx" command) ++*/ ++ ++#ifdef __cplusplus ++ extern "C" { ++#endif ++ ++/* Generic function pointer */ ++typedef void (*plumed_function_pointer)(void); ++ ++/** ++ \brief Holder for function pointer. ++ ++ To pass plumed a callback function use the following syntax: ++\verbatim ++ plumed_function_holder ff; ++ ff.p=your_function; ++ plumed_cmd(plumed,"xxxx",&ff); ++\endverbatim ++ (this is going to pass the your_function() function to the "xxxx" command) ++*/ ++ ++typedef struct { ++ plumed_function_pointer p; ++} plumed_function_holder; ++ ++/** ++ \brief Main plumed object ++ ++ This is an object containing a Plumed instance, which should be used in ++ the MD engine. It should first be initialized with plumed_create(), ++ then it communicates with the MD engine using plumed_cmd(). Finally, ++ before the termination, it should be deallocated with plumed_finalize(). ++ Its interface is very simple and general, and is expected ++ not to change across plumed versions. See \ref ReferencePlumedH. ++*/ ++typedef struct { ++/** ++ \private ++ \brief Void pointer holding the real PlumedMain structure ++*/ ++ void*p; ++} plumed; ++ ++/** \relates plumed ++ \brief Constructor ++ ++ \return The constructed plumed object ++*/ ++plumed plumed_create(void); ++ ++/** \relates plumed ++ \brief Tells p to execute a command ++ ++ \param p The plumed object on which command is acting ++ \param key The name of the command to be executed ++ \param val The argument. It is declared as const to allow calls like plumed_cmd(p,"A","B"), ++ but for some choice of key it can change the content ++*/ ++void plumed_cmd(plumed p,const char*key,const void*val); ++ ++/** \relates plumed ++ \brief Destructor ++ ++ \param p The plumed object to be deallocated ++*/ ++void plumed_finalize(plumed p); ++ ++/** \relates plumed ++ \brief Check if plumed is installed (for runtime binding) ++ ++ \return 1 if plumed is installed, to 0 otherwise ++*/ ++int plumed_installed(void); ++ ++/** \relates plumed ++ \brief Retrieves an handler to the global structure. ++*/ ++plumed plumed_global(void); ++ ++/** \relates plumed ++ \brief Check if the global interface has been initialized ++ ++ \return 1 if plumed has been initialized, 0 otherwise ++*/ ++int plumed_ginitialized(void); ++ ++/* global C interface, working on a global object */ ++ ++/** \relates plumed ++ \brief Constructor for the global interface. ++ ++ \note Equivalent to plumed_create(), but initialize a static global plumed object ++*/ ++void plumed_gcreate(void); ++ ++/** \relates plumed ++ \brief Tells to the global interface to execute a command. ++ ++ \param key The name of the command to be executed ++ \param val The argument. It is declared as const to allow calls like plumed_gcmd("A","B"), ++ but for some choice of key it can change the content ++ ++ \note Equivalent to plumed_cmd(), but skipping the plumed argument ++*/ ++void plumed_gcmd(const char* key,const void* val); ++ ++/** \relates plumed ++ \brief Destructor for the global interface. ++ ++ \note Equivalent to plumed_finalize(), but skipping the plumed argument ++*/ ++void plumed_gfinalize(void); ++ ++/* routines to convert char handler from/to plumed objects */ ++ ++/** \related plumed ++ \brief Converts a C handler to a FORTRAN handler ++ ++ \param p The C handler ++ \param c The FORTRAN handler (a char[32]) ++*/ ++void plumed_c2f(plumed p,char* c); ++ ++/** \related plumed ++ \brief Converts a FORTRAN handler to a C handler ++ \param c The FORTRAN handler (a char[32]) ++ \return The C handler ++*/ ++plumed plumed_f2c(const char* c); ++ ++#ifdef __cplusplus ++ } ++#endif ++ ++#ifdef __cplusplus ++ ++/* this is to include the NULL pointer */ ++#include ++ ++/* C++ interface is hidden in PLMD namespace (same as plumed library) */ ++namespace PLMD { ++ ++/** ++ C++ wrapper for \ref plumed. ++ ++ This class provides a C++ interface to PLUMED. ++*/ ++ ++class Plumed{ ++ plumed main; ++/** ++ keeps track if the object was created from scratch using ++ the defaults destructor (cloned=false) or if it was imported ++ from C or FORTRAN (cloned-true). In the latter case, the ++ plumed_finalize() method is not called when destructing the object, ++ since it is expected to be finalized in the C/FORTRAN code ++*/ ++ bool cloned; ++public: ++/** ++ Check if plumed is installed (for runtime binding) ++ \return true if plumed is installed, false otherwise ++*/ ++ static bool installed(); ++/** ++ Check if global-plumed has been initialized ++ \return true if global plumed object (see global()) is initialized (i.e. if gcreate() has been ++ called), false otherwise. ++*/ ++ static bool ginitialized(); ++/** ++ Initialize global-plumed ++*/ ++ static void gcreate(); ++/** ++ Send a command to global-plumed ++ \param key The name of the command to be executed ++ \param val The argument. It is declared as const to allow calls like gcmd("A","B"), ++ but for some choice of key it can change the content ++*/ ++ static void gcmd(const char* key,const void* val); ++/** ++ Finalize global-plumed ++*/ ++ static void gfinalize(); ++/** ++ Returns the Plumed global object ++ \return The Plumed global object ++*/ ++ static Plumed global(); ++/** ++ Constructor ++*/ ++ Plumed(); ++/** ++ Clone a Plumed object from a FORTRAN char* handler ++ \param c The FORTRAN handler (a char[32]). ++ ++ \attention The Plumed object created in this manner ++ will not finalize the corresponding plumed structure. ++ It is expected that the FORTRAN code calls plumed_c_finalize for it ++*/ ++ Plumed(const char*c); ++/** ++ Clone a Plumed object from a C plumed structure ++ \param p The C plumed structure. ++ ++ \attention The Plumed object created in this manner ++ will not finalize the corresponding plumed structure. ++ It is expected that the C code calls plumed_finalize for it ++*/ ++ Plumed(plumed p); ++private: ++/** Copy constructor is disabled (private and unimplemented) ++ The problem here is that after copying it will not be clear who is ++ going to finalize the corresponding plumed structure. ++*/ ++ Plumed(const Plumed&); ++/** Assignment operator is disabled (private and unimplemented) ++ The problem here is that after copying it will not be clear who is ++ going to finalize the corresponding plumed structure. ++*/ ++ Plumed&operator=(const Plumed&); ++public: ++/** ++ Retrieve the C plumed structure for this object ++*/ ++ operator plumed()const; ++/** ++ Retrieve a FORTRAN handler for this object ++ \param c The FORTRAN handler (a char[32]). ++*/ ++ void toFortran(char*c)const; ++/** ++ Send a command to this plumed object ++ \param key The name of the command to be executed ++ \param val The argument. It is declared as const to allow calls like p.cmd("A","B"), ++ but for some choice of key it can change the content ++*/ ++ void cmd(const char*key,const void*val=NULL); ++/** ++ Destructor ++ ++ Destructor is virtual so as to allow correct inheritance from Plumed object. ++ To avoid linking problems with g++, I specify "inline" also here (in principle ++ it should be enough to specify it down in the definition of the function, but ++ for some reason that I do not understand g++ does not inline it properly in that ++ case and complains when Plumed.h is included but Plumed.o is not linked. Anyway, the ++ way it is done here seems to work properly). ++*/ ++ inline virtual ~Plumed(); ++}; ++ ++/* All methods are inlined so as to avoid the compilation of an extra c++ file */ ++ ++inline ++bool Plumed::installed(){ ++ return plumed_installed(); ++} ++ ++inline ++Plumed::Plumed(): ++ main(plumed_create()), ++ cloned(false) ++{} ++ ++inline ++Plumed::Plumed(const char*c): ++ main(plumed_f2c(c)), ++ cloned(true) ++{} ++ ++inline ++Plumed::Plumed(plumed p): ++ main(p), ++ cloned(true) ++{} ++ ++inline ++Plumed::operator plumed()const{ ++ return main; ++} ++ ++inline ++void Plumed::toFortran(char*c)const{ ++ plumed_c2f(main,c); ++} ++ ++inline ++void Plumed::cmd(const char*key,const void*val){ ++ plumed_cmd(main,key,val); ++} ++ ++inline ++Plumed::~Plumed(){ ++ if(!cloned)plumed_finalize(main); ++} ++ ++inline ++bool Plumed::ginitialized(){ ++ return plumed_ginitialized(); ++} ++ ++inline ++void Plumed::gcreate(){ ++ plumed_gcreate(); ++} ++ ++inline ++void Plumed::gcmd(const char* key,const void* val){ ++ plumed_gcmd(key,val); ++} ++ ++inline ++void Plumed::gfinalize(){ ++ plumed_gfinalize(); ++} ++ ++inline ++Plumed Plumed::global(){ ++ return plumed_global(); ++} ++ ++} ++ ++#endif ++ ++ ++#endif +diff --git a/Plumed.inc b/Plumed.inc +new file mode 100644 +index 0000000..e1e29a7 +--- /dev/null ++++ b/Plumed.inc +@@ -0,0 +1,3 @@ ++# PLUMED: shared installation ++PLUMED_LOAD= /apps/all/PLUMED/2.3.0-foss-2017a/lib/plumed///src/lib/libplumed.so -ldl ++PLUMED_DEPENDENCIES= /apps/all/PLUMED/2.3.0-foss-2017a/lib/plumed///src/lib/libplumed.so +diff --git a/src/gromacs/CMakeLists.txt b/src/gromacs/CMakeLists.txt +index 6db37e2..cc97aa8 100644 +--- a/src/gromacs/CMakeLists.txt ++++ b/src/gromacs/CMakeLists.txt +@@ -32,6 +32,8 @@ + # To help us fund GROMACS development, we humbly ask that you cite + # the research papers on the package. Check out http://www.gromacs.org. + ++include(${CMAKE_SOURCE_DIR}/Plumed.cmake) ++ + set(LIBGROMACS_SOURCES) + + function (gmx_install_headers DESTINATION) +@@ -189,7 +191,7 @@ target_link_libraries(libgromacs + ${TNG_IO_LIBRARIES} + ${FFT_LIBRARIES} ${LINEAR_ALGEBRA_LIBRARIES} + ${XML_LIBRARIES} +- ${THREAD_LIB} ${GMX_SHARED_LINKER_FLAGS}) ++ ${THREAD_LIB} ${GMX_SHARED_LINKER_FLAGS} ${PLUMED_LOAD}) + set_target_properties(libgromacs PROPERTIES + OUTPUT_NAME "gromacs${GMX_LIBS_SUFFIX}" + SOVERSION ${LIBRARY_SOVERSION} +diff --git a/src/gromacs/CMakeLists.txt.preplumed b/src/gromacs/CMakeLists.txt.preplumed +new file mode 100644 +index 0000000..6db37e2 +--- /dev/null ++++ b/src/gromacs/CMakeLists.txt.preplumed +@@ -0,0 +1,232 @@ ++# ++# This file is part of the GROMACS molecular simulation package. ++# ++# Copyright (c) 2010,2011,2012,2013,2014, by the GROMACS development team, led by ++# Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl, ++# and including many others, as listed in the AUTHORS file in the ++# top-level source directory and at http://www.gromacs.org. ++# ++# GROMACS 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; either version 2.1 ++# of the License, or (at your option) any later version. ++# ++# GROMACS 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 ++# Lesser General Public License for more details. ++# ++# You should have received a copy of the GNU Lesser General Public ++# License along with GROMACS; if not, see ++# http://www.gnu.org/licenses, or write to the Free Software Foundation, ++# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. ++# ++# If you want to redistribute modifications to GROMACS, please ++# consider that scientific software is very special. Version ++# control is crucial - bugs must be traceable. We will be happy to ++# consider code for inclusion in the official distribution, but ++# derived work must not be called official GROMACS. Details are found ++# in the README & COPYING files - if they are missing, get the ++# official version at http://www.gromacs.org. ++# ++# To help us fund GROMACS development, we humbly ask that you cite ++# the research papers on the package. Check out http://www.gromacs.org. ++ ++set(LIBGROMACS_SOURCES) ++ ++function (gmx_install_headers DESTINATION) ++ if (NOT GMX_BUILD_MDRUN_ONLY) ++ if (DESTINATION) ++ set(DESTINATION ${INCL_INSTALL_DIR}/gromacs/${DESTINATION}) ++ else() ++ set(DESTINATION ${INCL_INSTALL_DIR}/gromacs) ++ endif() ++ install(FILES ${ARGN} DESTINATION ${DESTINATION} COMPONENT development) ++ endif() ++endfunction () ++ ++if(GMX_USE_TNG) ++ option(GMX_EXTERNAL_TNG "Use external TNG instead of compiling the version shipped with GROMACS." ++ OFF) ++ # Detect TNG if GMX_EXTERNAL_TNG is explicitly ON ++ if(GMX_EXTERNAL_TNG) ++ find_package(TNG_IO 1.6.0) ++ if(NOT TNG_IO_FOUND) ++ message(FATAL_ERROR ++ "TNG >= 1.6.0 not found. " ++ "You can set GMX_EXTERNAL_TNG=OFF to compile TNG.") ++ endif() ++ include_directories(${TNG_IO_INCLUDE_DIRS}) ++ endif() ++ if(NOT GMX_EXTERNAL_TNG) ++ include(${CMAKE_SOURCE_DIR}/src/external/tng_io/BuildTNG.cmake) ++ tng_get_source_list(TNG_SOURCES TNG_IO_DEFINITIONS) ++ list(APPEND LIBGROMACS_SOURCES ${TNG_SOURCES}) ++ tng_set_source_properties(WITH_ZLIB ${HAVE_ZLIB}) ++ ++ if (HAVE_ZLIB) ++ list(APPEND GMX_EXTRA_LIBRARIES ${ZLIB_LIBRARIES}) ++ include_directories(${ZLIB_INCLUDE_DIRS}) ++ endif() ++ endif() ++else() ++ # We still need to get tng/tng_io_fwd.h from somewhere! ++ include_directories(BEFORE ${CMAKE_SOURCE_DIR}/src/external/tng_io/include) ++endif() ++ ++add_subdirectory(gmxlib) ++add_subdirectory(mdlib) ++add_subdirectory(gmxpreprocess) ++add_subdirectory(commandline) ++add_subdirectory(fft) ++add_subdirectory(linearalgebra) ++add_subdirectory(math) ++add_subdirectory(random) ++add_subdirectory(onlinehelp) ++add_subdirectory(options) ++add_subdirectory(timing) ++add_subdirectory(utility) ++add_subdirectory(fileio) ++add_subdirectory(swap) ++add_subdirectory(essentialdynamics) ++add_subdirectory(pulling) ++add_subdirectory(simd) ++add_subdirectory(imd) ++if (NOT GMX_BUILD_MDRUN_ONLY) ++ add_subdirectory(legacyheaders) ++ add_subdirectory(gmxana) ++ add_subdirectory(statistics) ++ add_subdirectory(analysisdata) ++ add_subdirectory(selection) ++ add_subdirectory(trajectoryanalysis) ++ add_subdirectory(tools) ++endif() ++ ++list(APPEND LIBGROMACS_SOURCES ${GMXLIB_SOURCES} ${MDLIB_SOURCES}) ++ ++# This would be the standard way to include thread_mpi, but ++# we want libgromacs to link the functions directly ++#if(GMX_THREAD_MPI) ++# add_subdirectory(thread_mpi) ++#endif() ++#target_link_libraries(gmx ${GMX_EXTRA_LIBRARIES} ${THREAD_MPI_LIB}) ++ ++tmpi_get_source_list(THREAD_MPI_SOURCES ${CMAKE_SOURCE_DIR}/src/external/thread_mpi/src) ++list(APPEND LIBGROMACS_SOURCES ${THREAD_MPI_SOURCES}) ++ ++file(GLOB LIBGROMACS_HEADERS *.h) ++configure_file(version.h.cmakein version.h) ++gmx_install_headers("" ${LIBGROMACS_HEADERS}) ++gmx_install_headers("" ${CMAKE_CURRENT_BINARY_DIR}/version.h) ++ ++# Add target that generates baseversion-gen.c every time make is run ++# if git version info is requested, or create it statically. ++# This code is here instead of utility/CMakeLists.txt because CMake ++# ignores set_source_file_properties from subdirectories. ++set(GENERATED_VERSION_FILE ++ ${CMAKE_CURRENT_BINARY_DIR}/utility/baseversion-gen.c) ++set(GENERATED_VERSION_FILE_SOURCE ++ ${CMAKE_CURRENT_SOURCE_DIR}/utility/baseversion-gen.c.cmakein) ++if (GMX_GIT_VERSION_INFO) ++ add_custom_target(gmx-version ALL ++ COMMAND ${CMAKE_COMMAND} ++ -D GIT_EXECUTABLE="${GIT_EXECUTABLE}" ++ -D PROJECT_VERSION="${PROJECT_VERSION}" ++ -D PROJECT_SOURCE_DIR="${PROJECT_SOURCE_DIR}" ++ -D VERSION_CMAKEIN=${GENERATED_VERSION_FILE_SOURCE} ++ -D VERSION_OUT=${GENERATED_VERSION_FILE} ++ -P ${CMAKE_SOURCE_DIR}/cmake/gmxGenerateVersionInfo.cmake ++ WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} ++ DEPENDS ${GENERATED_VERSION_FILE_SOURCE} ++ COMMENT "Generating git version information") ++ set_source_files_properties(${GENERATED_VERSION_FILE} ++ PROPERTIES GENERATED true) ++else() ++ set(GMX_PROJECT_VERSION_STR ${PROJECT_VERSION}) ++ configure_file(${GENERATED_VERSION_FILE_SOURCE} ${GENERATED_VERSION_FILE}) ++endif() ++list(APPEND LIBGROMACS_SOURCES ${GENERATED_VERSION_FILE}) ++ ++# apply gcc 4.4.x bug workaround ++if(GMX_USE_GCC44_BUG_WORKAROUND) ++ include(gmxGCC44O3BugWorkaround) ++ gmx_apply_gcc44_bug_workaround("gmxlib/bondfree.c") ++ gmx_apply_gcc44_bug_workaround("mdlib/force.c") ++ gmx_apply_gcc44_bug_workaround("mdlib/constr.c") ++endif() ++ ++add_library(libgromacs ${LIBGROMACS_SOURCES}) ++if (GMX_GIT_VERSION_INFO) ++ add_dependencies(libgromacs gmx-version) ++endif() ++ ++# Recent versions of gcc and clang give warnings on scanner.cpp, which ++# is a generated source file. These are awkward to suppress inline, so ++# we do it in the compilation command (after testing that the compiler ++# supports the suppressions). Setting the properties only works after ++# the related target has been created, e.g. after when the file is ++# used with add_library(). ++include(CheckCXXCompilerFlag) ++check_cxx_compiler_flag(-Wno-unused-parameter HAS_NO_UNUSED_PARAMETER) ++if (HAS_NO_UNUSED_PARAMETER) ++ set(_scanner_cpp_compiler_flags "${_scanner_cpp_compiler_flags} -Wno-unused-parameter") ++endif() ++check_cxx_compiler_flag(-Wno-deprecated-register HAS_NO_DEPRECATED_REGISTER) ++if (HAS_NO_DEPRECATED_REGISTER) ++ set(_scanner_cpp_compiler_flags "${_scanner_cpp_compiler_flags} -Wno-deprecated-register") ++else() ++ check_cxx_compiler_flag(-Wno-deprecated HAS_NO_DEPRECATED) ++ if (HAS_NO_DEPRECATED) ++ set(_scanner_cpp_compiler_flags "${_scanner_cpp_compiler_flags} -Wno-deprecated") ++ endif() ++endif() ++set_source_files_properties(selection/scanner.cpp PROPERTIES COMPILE_FLAGS "${_scanner_cpp_compiler_flags}") ++ ++target_link_libraries(libgromacs ++ ${EXTRAE_LIBRARIES} ++ ${GMX_GPU_LIBRARIES} ++ ${GMX_EXTRA_LIBRARIES} ++ ${TNG_IO_LIBRARIES} ++ ${FFT_LIBRARIES} ${LINEAR_ALGEBRA_LIBRARIES} ++ ${XML_LIBRARIES} ++ ${THREAD_LIB} ${GMX_SHARED_LINKER_FLAGS}) ++set_target_properties(libgromacs PROPERTIES ++ OUTPUT_NAME "gromacs${GMX_LIBS_SUFFIX}" ++ SOVERSION ${LIBRARY_SOVERSION} ++ VERSION ${LIBRARY_VERSION} ++ COMPILE_FLAGS "${OpenMP_C_FLAGS}") ++ ++# Only install the library in mdrun-only mode if it is actually necessary ++# for the binary ++if (NOT GMX_BUILD_MDRUN_ONLY OR BUILD_SHARED_LIBS) ++ install(TARGETS libgromacs ++ LIBRARY DESTINATION ${LIB_INSTALL_DIR} ++ RUNTIME DESTINATION ${BIN_INSTALL_DIR} ++ ARCHIVE DESTINATION ${LIB_INSTALL_DIR} ++ COMPONENT libraries) ++endif() ++ ++if (NOT GMX_BUILD_MDRUN_ONLY) ++ configure_file(${CMAKE_CURRENT_SOURCE_DIR}/libgromacs.pc.cmakein ++ ${CMAKE_CURRENT_BINARY_DIR}/libgromacs.pc @ONLY) ++ install(FILES ${CMAKE_CURRENT_BINARY_DIR}/libgromacs.pc ++ DESTINATION ${LIB_INSTALL_DIR}/pkgconfig ++ RENAME "libgromacs${GMX_LIBS_SUFFIX}.pc" ++ COMPONENT development) ++endif() ++ ++if (INSTALL_CUDART_LIB) #can be set manual by user ++ if (GMX_GPU) ++ foreach(CUDA_LIB ${CUDA_LIBRARIES}) ++ string(REGEX MATCH "cudart" IS_CUDART ${CUDA_LIB}) ++ if(IS_CUDART) #libcuda should not be installed ++ #install also name-links (linker uses those) ++ file(GLOB CUDA_LIBS ${CUDA_LIB}*) ++ install(FILES ${CUDA_LIBS} DESTINATION ++ ${LIB_INSTALL_DIR} COMPONENT libraries) ++ endif() ++ endforeach() ++ else() ++ message(WARNING "INSTALL_CUDART_LIB only makes sense with GMX_GPU") ++ endif() ++endif() +diff --git a/src/gromacs/mdlib/force.c b/src/gromacs/mdlib/force.c +index 5230983..8227d5b 100644 +--- a/src/gromacs/mdlib/force.c ++++ b/src/gromacs/mdlib/force.c +@@ -67,6 +67,14 @@ + #include "gromacs/timing/wallcycle.h" + #include "gmx_fatal.h" + ++/* PLUMED */ ++#include "../../../Plumed.h" ++int plumedswitch=0; ++plumed plumedmain; ++void(*plumedcmd)(plumed,const char*,const void*)=NULL; ++/* END PLUMED */ ++ ++ + void ns(FILE *fp, + t_forcerec *fr, + matrix box, +@@ -737,6 +745,13 @@ void do_force_lowlevel(FILE *fplog, gmx_int64_t step, + pr_rvecs(debug, 0, "fshift after bondeds", fr->fshift, SHIFTS); + } + ++ /* PLUMED */ ++ if(plumedswitch){ ++ int plumedNeedsEnergy; ++ (*plumedcmd)(plumedmain,"isEnergyNeeded",&plumedNeedsEnergy); ++ if(!plumedNeedsEnergy) (*plumedcmd)(plumedmain,"performCalc",NULL); ++ } ++ /* END PLUMED */ + } + + void init_enerdata(int ngener, int n_lambda, gmx_enerdata_t *enerd) +diff --git a/src/gromacs/mdlib/force.c.preplumed b/src/gromacs/mdlib/force.c.preplumed +new file mode 100644 +index 0000000..5230983 +--- /dev/null ++++ b/src/gromacs/mdlib/force.c.preplumed +@@ -0,0 +1,1018 @@ ++/* ++ * This file is part of the GROMACS molecular simulation package. ++ * ++ * Copyright (c) 1991-2000, University of Groningen, The Netherlands. ++ * Copyright (c) 2001-2004, The GROMACS development team. ++ * Copyright (c) 2013,2014, by the GROMACS development team, led by ++ * Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl, ++ * and including many others, as listed in the AUTHORS file in the ++ * top-level source directory and at http://www.gromacs.org. ++ * ++ * GROMACS 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; either version 2.1 ++ * of the License, or (at your option) any later version. ++ * ++ * GROMACS 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 ++ * Lesser General Public License for more details. ++ * ++ * You should have received a copy of the GNU Lesser General Public ++ * License along with GROMACS; if not, see ++ * http://www.gnu.org/licenses, or write to the Free Software Foundation, ++ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. ++ * ++ * If you want to redistribute modifications to GROMACS, please ++ * consider that scientific software is very special. Version ++ * control is crucial - bugs must be traceable. We will be happy to ++ * consider code for inclusion in the official distribution, but ++ * derived work must not be called official GROMACS. Details are found ++ * in the README & COPYING files - if they are missing, get the ++ * official version at http://www.gromacs.org. ++ * ++ * To help us fund GROMACS development, we humbly ask that you cite ++ * the research papers on the package. Check out http://www.gromacs.org. ++ */ ++#ifdef HAVE_CONFIG_H ++#include ++#endif ++ ++#include ++#include ++#include ++#include "sysstuff.h" ++#include "typedefs.h" ++#include "macros.h" ++#include "gromacs/utility/smalloc.h" ++#include "macros.h" ++#include "physics.h" ++#include "force.h" ++#include "nonbonded.h" ++#include "names.h" ++#include "network.h" ++#include "pbc.h" ++#include "ns.h" ++#include "nrnb.h" ++#include "bondf.h" ++#include "mshift.h" ++#include "txtdump.h" ++#include "coulomb.h" ++#include "pme.h" ++#include "mdrun.h" ++#include "domdec.h" ++#include "qmmm.h" ++#include "gmx_omp_nthreads.h" ++ ++#include "gromacs/timing/wallcycle.h" ++#include "gmx_fatal.h" ++ ++void ns(FILE *fp, ++ t_forcerec *fr, ++ matrix box, ++ gmx_groups_t *groups, ++ gmx_localtop_t *top, ++ t_mdatoms *md, ++ t_commrec *cr, ++ t_nrnb *nrnb, ++ gmx_bool bFillGrid, ++ gmx_bool bDoLongRangeNS) ++{ ++ char *ptr; ++ int nsearch; ++ ++ ++ if (!fr->ns.nblist_initialized) ++ { ++ init_neighbor_list(fp, fr, md->homenr); ++ } ++ ++ if (fr->bTwinRange) ++ { ++ fr->nlr = 0; ++ } ++ ++ nsearch = search_neighbours(fp, fr, box, top, groups, cr, nrnb, md, ++ bFillGrid, bDoLongRangeNS); ++ if (debug) ++ { ++ fprintf(debug, "nsearch = %d\n", nsearch); ++ } ++ ++ /* Check whether we have to do dynamic load balancing */ ++ /*if ((nsb->nstDlb > 0) && (mod(step,nsb->nstDlb) == 0)) ++ count_nb(cr,nsb,&(top->blocks[ebCGS]),nns,fr->nlr, ++ &(top->idef),opts->ngener); ++ */ ++ if (fr->ns.dump_nl > 0) ++ { ++ dump_nblist(fp, cr, fr, fr->ns.dump_nl); ++ } ++} ++ ++static void reduce_thread_forces(int n, rvec *f, ++ tensor vir_q, tensor vir_lj, ++ real *Vcorr_q, real *Vcorr_lj, ++ real *dvdl_q, real *dvdl_lj, ++ int nthreads, f_thread_t *f_t) ++{ ++ int t, i; ++ int nthreads_loop gmx_unused; ++ ++ /* This reduction can run over any number of threads */ ++ nthreads_loop = gmx_omp_nthreads_get(emntBonded); ++#pragma omp parallel for num_threads(nthreads_loop) private(t) schedule(static) ++ for (i = 0; i < n; i++) ++ { ++ for (t = 1; t < nthreads; t++) ++ { ++ rvec_inc(f[i], f_t[t].f[i]); ++ } ++ } ++ for (t = 1; t < nthreads; t++) ++ { ++ *Vcorr_q += f_t[t].Vcorr_q; ++ *Vcorr_lj += f_t[t].Vcorr_lj; ++ *dvdl_q += f_t[t].dvdl[efptCOUL]; ++ *dvdl_lj += f_t[t].dvdl[efptVDW]; ++ m_add(vir_q, f_t[t].vir_q, vir_q); ++ m_add(vir_lj, f_t[t].vir_lj, vir_lj); ++ } ++} ++ ++void gmx_print_sepdvdl(FILE *fplog, const char *s, real v, real dvdlambda) ++{ ++ fprintf(fplog, " %-30s V %12.5e dVdl %12.5e\n", s, v, dvdlambda); ++} ++ ++void do_force_lowlevel(FILE *fplog, gmx_int64_t step, ++ t_forcerec *fr, t_inputrec *ir, ++ t_idef *idef, t_commrec *cr, ++ t_nrnb *nrnb, gmx_wallcycle_t wcycle, ++ t_mdatoms *md, ++ rvec x[], history_t *hist, ++ rvec f[], ++ rvec f_longrange[], ++ gmx_enerdata_t *enerd, ++ t_fcdata *fcd, ++ gmx_localtop_t *top, ++ gmx_genborn_t *born, ++ t_atomtypes *atype, ++ gmx_bool bBornRadii, ++ matrix box, ++ t_lambda *fepvals, ++ real *lambda, ++ t_graph *graph, ++ t_blocka *excl, ++ rvec mu_tot[], ++ int flags, ++ float *cycles_pme) ++{ ++ int i, j; ++ int donb_flags; ++ gmx_bool bDoEpot, bSepDVDL, bSB; ++ int pme_flags; ++ matrix boxs; ++ rvec box_size; ++ t_pbc pbc; ++ char buf[22]; ++ double clam_i, vlam_i; ++ real dvdl_dum[efptNR], dvdl_nb[efptNR], lam_i[efptNR]; ++ real dvdl_q, dvdl_lj; ++ ++#ifdef GMX_MPI ++ double t0 = 0.0, t1, t2, t3; /* time measurement for coarse load balancing */ ++#endif ++ ++#define PRINT_SEPDVDL(s, v, dvdlambda) if (bSepDVDL) { gmx_print_sepdvdl(fplog, s, v, dvdlambda); } ++ ++ set_pbc(&pbc, fr->ePBC, box); ++ ++ /* reset free energy components */ ++ for (i = 0; i < efptNR; i++) ++ { ++ dvdl_nb[i] = 0; ++ dvdl_dum[i] = 0; ++ } ++ ++ /* Reset box */ ++ for (i = 0; (i < DIM); i++) ++ { ++ box_size[i] = box[i][i]; ++ } ++ ++ bSepDVDL = (fr->bSepDVDL && do_per_step(step, ir->nstlog)); ++ debug_gmx(); ++ ++ /* do QMMM first if requested */ ++ if (fr->bQMMM) ++ { ++ enerd->term[F_EQM] = calculate_QMMM(cr, x, f, fr); ++ } ++ ++ if (bSepDVDL) ++ { ++ fprintf(fplog, "Step %s: non-bonded V and dVdl for rank %d:\n", ++ gmx_step_str(step, buf), cr->nodeid); ++ } ++ ++ /* Call the short range functions all in one go. */ ++ ++#ifdef GMX_MPI ++ /*#define TAKETIME ((cr->npmenodes) && (fr->timesteps < 12))*/ ++#define TAKETIME FALSE ++ if (TAKETIME) ++ { ++ MPI_Barrier(cr->mpi_comm_mygroup); ++ t0 = MPI_Wtime(); ++ } ++#endif ++ ++ if (ir->nwall) ++ { ++ /* foreign lambda component for walls */ ++ real dvdl_walls = do_walls(ir, fr, box, md, x, f, lambda[efptVDW], ++ enerd->grpp.ener[egLJSR], nrnb); ++ PRINT_SEPDVDL("Walls", 0.0, dvdl_walls); ++ enerd->dvdl_lin[efptVDW] += dvdl_walls; ++ } ++ ++ /* If doing GB, reset dvda and calculate the Born radii */ ++ if (ir->implicit_solvent) ++ { ++ wallcycle_sub_start(wcycle, ewcsNONBONDED); ++ ++ for (i = 0; i < born->nr; i++) ++ { ++ fr->dvda[i] = 0; ++ } ++ ++ if (bBornRadii) ++ { ++ calc_gb_rad(cr, fr, ir, top, x, &(fr->gblist), born, md, nrnb); ++ } ++ ++ wallcycle_sub_stop(wcycle, ewcsNONBONDED); ++ } ++ ++ where(); ++ /* We only do non-bonded calculation with group scheme here, the verlet ++ * calls are done from do_force_cutsVERLET(). */ ++ if (fr->cutoff_scheme == ecutsGROUP && (flags & GMX_FORCE_NONBONDED)) ++ { ++ donb_flags = 0; ++ /* Add short-range interactions */ ++ donb_flags |= GMX_NONBONDED_DO_SR; ++ ++ /* Currently all group scheme kernels always calculate (shift-)forces */ ++ if (flags & GMX_FORCE_FORCES) ++ { ++ donb_flags |= GMX_NONBONDED_DO_FORCE; ++ } ++ if (flags & GMX_FORCE_VIRIAL) ++ { ++ donb_flags |= GMX_NONBONDED_DO_SHIFTFORCE; ++ } ++ if (flags & GMX_FORCE_ENERGY) ++ { ++ donb_flags |= GMX_NONBONDED_DO_POTENTIAL; ++ } ++ if (flags & GMX_FORCE_DO_LR) ++ { ++ donb_flags |= GMX_NONBONDED_DO_LR; ++ } ++ ++ wallcycle_sub_start(wcycle, ewcsNONBONDED); ++ do_nonbonded(fr, x, f, f_longrange, md, excl, ++ &enerd->grpp, nrnb, ++ lambda, dvdl_nb, -1, -1, donb_flags); ++ ++ /* If we do foreign lambda and we have soft-core interactions ++ * we have to recalculate the (non-linear) energies contributions. ++ */ ++ if (fepvals->n_lambda > 0 && (flags & GMX_FORCE_DHDL) && fepvals->sc_alpha != 0) ++ { ++ for (i = 0; i < enerd->n_lambda; i++) ++ { ++ for (j = 0; j < efptNR; j++) ++ { ++ lam_i[j] = (i == 0 ? lambda[j] : fepvals->all_lambda[j][i-1]); ++ } ++ reset_foreign_enerdata(enerd); ++ do_nonbonded(fr, x, f, f_longrange, md, excl, ++ &(enerd->foreign_grpp), nrnb, ++ lam_i, dvdl_dum, -1, -1, ++ (donb_flags & ~GMX_NONBONDED_DO_FORCE) | GMX_NONBONDED_DO_FOREIGNLAMBDA); ++ sum_epot(&(enerd->foreign_grpp), enerd->foreign_term); ++ enerd->enerpart_lambda[i] += enerd->foreign_term[F_EPOT]; ++ } ++ } ++ wallcycle_sub_stop(wcycle, ewcsNONBONDED); ++ where(); ++ } ++ ++ /* If we are doing GB, calculate bonded forces and apply corrections ++ * to the solvation forces */ ++ /* MRS: Eventually, many need to include free energy contribution here! */ ++ if (ir->implicit_solvent) ++ { ++ wallcycle_sub_start(wcycle, ewcsBONDED); ++ calc_gb_forces(cr, md, born, top, x, f, fr, idef, ++ ir->gb_algorithm, ir->sa_algorithm, nrnb, &pbc, graph, enerd); ++ wallcycle_sub_stop(wcycle, ewcsBONDED); ++ } ++ ++#ifdef GMX_MPI ++ if (TAKETIME) ++ { ++ t1 = MPI_Wtime(); ++ fr->t_fnbf += t1-t0; ++ } ++#endif ++ ++ if (fepvals->sc_alpha != 0) ++ { ++ enerd->dvdl_nonlin[efptVDW] += dvdl_nb[efptVDW]; ++ } ++ else ++ { ++ enerd->dvdl_lin[efptVDW] += dvdl_nb[efptVDW]; ++ } ++ ++ if (fepvals->sc_alpha != 0) ++ ++ /* even though coulomb part is linear, we already added it, beacuse we ++ need to go through the vdw calculation anyway */ ++ { ++ enerd->dvdl_nonlin[efptCOUL] += dvdl_nb[efptCOUL]; ++ } ++ else ++ { ++ enerd->dvdl_lin[efptCOUL] += dvdl_nb[efptCOUL]; ++ } ++ ++ if (bSepDVDL) ++ { ++ real V_short_range = 0; ++ real dvdl_short_range = 0; ++ ++ for (i = 0; i < enerd->grpp.nener; i++) ++ { ++ V_short_range += ++ (fr->bBHAM ? ++ enerd->grpp.ener[egBHAMSR][i] : ++ enerd->grpp.ener[egLJSR][i]) ++ + enerd->grpp.ener[egCOULSR][i] + enerd->grpp.ener[egGB][i]; ++ } ++ dvdl_short_range = dvdl_nb[efptVDW] + dvdl_nb[efptCOUL]; ++ PRINT_SEPDVDL("VdW and Coulomb SR particle-p.", ++ V_short_range, ++ dvdl_short_range); ++ } ++ debug_gmx(); ++ ++ ++ if (debug) ++ { ++ pr_rvecs(debug, 0, "fshift after SR", fr->fshift, SHIFTS); ++ } ++ ++ /* Shift the coordinates. Must be done before bonded forces and PPPM, ++ * but is also necessary for SHAKE and update, therefore it can NOT ++ * go when no bonded forces have to be evaluated. ++ */ ++ ++ /* Here sometimes we would not need to shift with NBFonly, ++ * but we do so anyhow for consistency of the returned coordinates. ++ */ ++ if (graph) ++ { ++ shift_self(graph, box, x); ++ if (TRICLINIC(box)) ++ { ++ inc_nrnb(nrnb, eNR_SHIFTX, 2*graph->nnodes); ++ } ++ else ++ { ++ inc_nrnb(nrnb, eNR_SHIFTX, graph->nnodes); ++ } ++ } ++ /* Check whether we need to do bondeds or correct for exclusions */ ++ if (fr->bMolPBC && ++ ((flags & GMX_FORCE_BONDED) ++ || EEL_RF(fr->eeltype) || EEL_FULL(fr->eeltype) || EVDW_PME(fr->vdwtype))) ++ { ++ /* Since all atoms are in the rectangular or triclinic unit-cell, ++ * only single box vector shifts (2 in x) are required. ++ */ ++ set_pbc_dd(&pbc, fr->ePBC, cr->dd, TRUE, box); ++ } ++ debug_gmx(); ++ ++ if (flags & GMX_FORCE_BONDED) ++ { ++ wallcycle_sub_start(wcycle, ewcsBONDED); ++ calc_bonds(fplog, cr->ms, ++ idef, x, hist, f, fr, &pbc, graph, enerd, nrnb, lambda, md, fcd, ++ DOMAINDECOMP(cr) ? cr->dd->gatindex : NULL, atype, born, ++ flags, ++ fr->bSepDVDL && do_per_step(step, ir->nstlog), step); ++ ++ /* Check if we have to determine energy differences ++ * at foreign lambda's. ++ */ ++ if (fepvals->n_lambda > 0 && (flags & GMX_FORCE_DHDL) && ++ idef->ilsort != ilsortNO_FE) ++ { ++ if (idef->ilsort != ilsortFE_SORTED) ++ { ++ gmx_incons("The bonded interactions are not sorted for free energy"); ++ } ++ for (i = 0; i < enerd->n_lambda; i++) ++ { ++ reset_foreign_enerdata(enerd); ++ for (j = 0; j < efptNR; j++) ++ { ++ lam_i[j] = (i == 0 ? lambda[j] : fepvals->all_lambda[j][i-1]); ++ } ++ calc_bonds_lambda(fplog, idef, x, fr, &pbc, graph, &(enerd->foreign_grpp), enerd->foreign_term, nrnb, lam_i, md, ++ fcd, DOMAINDECOMP(cr) ? cr->dd->gatindex : NULL); ++ sum_epot(&(enerd->foreign_grpp), enerd->foreign_term); ++ enerd->enerpart_lambda[i] += enerd->foreign_term[F_EPOT]; ++ } ++ } ++ debug_gmx(); ++ ++ wallcycle_sub_stop(wcycle, ewcsBONDED); ++ } ++ ++ where(); ++ ++ *cycles_pme = 0; ++ if (EEL_FULL(fr->eeltype) || EVDW_PME(fr->vdwtype)) ++ { ++ real Vlr = 0, Vcorr = 0; ++ real dvdl_long_range = 0; ++ int status = 0; ++ ++ bSB = (ir->nwall == 2); ++ if (bSB) ++ { ++ copy_mat(box, boxs); ++ svmul(ir->wall_ewald_zfac, boxs[ZZ], boxs[ZZ]); ++ box_size[ZZ] *= ir->wall_ewald_zfac; ++ } ++ } ++ ++ /* Do long-range electrostatics and/or LJ-PME, including related short-range ++ * corrections. ++ */ ++ ++ clear_mat(fr->vir_el_recip); ++ clear_mat(fr->vir_lj_recip); ++ ++ if (EEL_FULL(fr->eeltype) || EVDW_PME(fr->vdwtype)) ++ { ++ real Vlr_q = 0, Vlr_lj = 0, Vcorr_q = 0, Vcorr_lj = 0; ++ real dvdl_long_range_q = 0, dvdl_long_range_lj = 0; ++ int status = 0; ++ ++ if (EEL_PME_EWALD(fr->eeltype) || EVDW_PME(fr->vdwtype)) ++ { ++ real dvdl_long_range_correction_q = 0; ++ real dvdl_long_range_correction_lj = 0; ++ /* With the Verlet scheme exclusion forces are calculated ++ * in the non-bonded kernel. ++ */ ++ /* The TPI molecule does not have exclusions with the rest ++ * of the system and no intra-molecular PME grid ++ * contributions will be calculated in ++ * gmx_pme_calc_energy. ++ */ ++ if ((ir->cutoff_scheme == ecutsGROUP && fr->n_tpi == 0) || ++ ir->ewald_geometry != eewg3D || ++ ir->epsilon_surface != 0) ++ { ++ int nthreads, t; ++ ++ wallcycle_sub_start(wcycle, ewcsEWALD_CORRECTION); ++ ++ if (fr->n_tpi > 0) ++ { ++ gmx_fatal(FARGS, "TPI with PME currently only works in a 3D geometry with tin-foil boundary conditions"); ++ } ++ ++ nthreads = gmx_omp_nthreads_get(emntBonded); ++#pragma omp parallel for num_threads(nthreads) schedule(static) ++ for (t = 0; t < nthreads; t++) ++ { ++ int s, e, i; ++ rvec *fnv; ++ tensor *vir_q, *vir_lj; ++ real *Vcorrt_q, *Vcorrt_lj, *dvdlt_q, *dvdlt_lj; ++ if (t == 0) ++ { ++ fnv = fr->f_novirsum; ++ vir_q = &fr->vir_el_recip; ++ vir_lj = &fr->vir_lj_recip; ++ Vcorrt_q = &Vcorr_q; ++ Vcorrt_lj = &Vcorr_lj; ++ dvdlt_q = &dvdl_long_range_correction_q; ++ dvdlt_lj = &dvdl_long_range_correction_lj; ++ } ++ else ++ { ++ fnv = fr->f_t[t].f; ++ vir_q = &fr->f_t[t].vir_q; ++ vir_lj = &fr->f_t[t].vir_lj; ++ Vcorrt_q = &fr->f_t[t].Vcorr_q; ++ Vcorrt_lj = &fr->f_t[t].Vcorr_lj; ++ dvdlt_q = &fr->f_t[t].dvdl[efptCOUL]; ++ dvdlt_lj = &fr->f_t[t].dvdl[efptVDW]; ++ for (i = 0; i < fr->natoms_force; i++) ++ { ++ clear_rvec(fnv[i]); ++ } ++ clear_mat(*vir_q); ++ clear_mat(*vir_lj); ++ } ++ *dvdlt_q = 0; ++ *dvdlt_lj = 0; ++ ++ ewald_LRcorrection(fr->excl_load[t], fr->excl_load[t+1], ++ cr, t, fr, ++ md->chargeA, md->chargeB, ++ md->sqrt_c6A, md->sqrt_c6B, ++ md->sigmaA, md->sigmaB, ++ md->sigma3A, md->sigma3B, ++ md->nChargePerturbed || md->nTypePerturbed, ++ ir->cutoff_scheme != ecutsVERLET, ++ excl, x, bSB ? boxs : box, mu_tot, ++ ir->ewald_geometry, ++ ir->epsilon_surface, ++ fnv, *vir_q, *vir_lj, ++ Vcorrt_q, Vcorrt_lj, ++ lambda[efptCOUL], lambda[efptVDW], ++ dvdlt_q, dvdlt_lj); ++ } ++ if (nthreads > 1) ++ { ++ reduce_thread_forces(fr->natoms_force, fr->f_novirsum, ++ fr->vir_el_recip, fr->vir_lj_recip, ++ &Vcorr_q, &Vcorr_lj, ++ &dvdl_long_range_correction_q, ++ &dvdl_long_range_correction_lj, ++ nthreads, fr->f_t); ++ } ++ wallcycle_sub_stop(wcycle, ewcsEWALD_CORRECTION); ++ } ++ ++ if (EEL_PME_EWALD(fr->eeltype) && fr->n_tpi == 0) ++ { ++ Vcorr_q += ewald_charge_correction(cr, fr, lambda[efptCOUL], box, ++ &dvdl_long_range_correction_q, ++ fr->vir_el_recip); ++ } ++ ++ PRINT_SEPDVDL("Ewald excl./charge/dip. corr.", Vcorr_q, dvdl_long_range_correction_q); ++ PRINT_SEPDVDL("Ewald excl. corr. LJ", Vcorr_lj, dvdl_long_range_correction_lj); ++ enerd->dvdl_lin[efptCOUL] += dvdl_long_range_correction_q; ++ enerd->dvdl_lin[efptVDW] += dvdl_long_range_correction_lj; ++ } ++ ++ if ((EEL_PME(fr->eeltype) || EVDW_PME(fr->vdwtype))) ++ { ++ if (cr->duty & DUTY_PME) ++ { ++ /* Do reciprocal PME for Coulomb and/or LJ. */ ++ assert(fr->n_tpi >= 0); ++ if (fr->n_tpi == 0 || (flags & GMX_FORCE_STATECHANGED)) ++ { ++ pme_flags = GMX_PME_SPREAD | GMX_PME_SOLVE; ++ if (EEL_PME(fr->eeltype)) ++ { ++ pme_flags |= GMX_PME_DO_COULOMB; ++ } ++ if (EVDW_PME(fr->vdwtype)) ++ { ++ pme_flags |= GMX_PME_DO_LJ; ++ } ++ if (flags & GMX_FORCE_FORCES) ++ { ++ pme_flags |= GMX_PME_CALC_F; ++ } ++ if (flags & GMX_FORCE_VIRIAL) ++ { ++ pme_flags |= GMX_PME_CALC_ENER_VIR; ++ } ++ if (fr->n_tpi > 0) ++ { ++ /* We don't calculate f, but we do want the potential */ ++ pme_flags |= GMX_PME_CALC_POT; ++ } ++ wallcycle_start(wcycle, ewcPMEMESH); ++ status = gmx_pme_do(fr->pmedata, ++ 0, md->homenr - fr->n_tpi, ++ x, fr->f_novirsum, ++ md->chargeA, md->chargeB, ++ md->sqrt_c6A, md->sqrt_c6B, ++ md->sigmaA, md->sigmaB, ++ bSB ? boxs : box, cr, ++ DOMAINDECOMP(cr) ? dd_pme_maxshift_x(cr->dd) : 0, ++ DOMAINDECOMP(cr) ? dd_pme_maxshift_y(cr->dd) : 0, ++ nrnb, wcycle, ++ fr->vir_el_recip, fr->ewaldcoeff_q, ++ fr->vir_lj_recip, fr->ewaldcoeff_lj, ++ &Vlr_q, &Vlr_lj, ++ lambda[efptCOUL], lambda[efptVDW], ++ &dvdl_long_range_q, &dvdl_long_range_lj, pme_flags); ++ *cycles_pme = wallcycle_stop(wcycle, ewcPMEMESH); ++ if (status != 0) ++ { ++ gmx_fatal(FARGS, "Error %d in reciprocal PME routine", status); ++ } ++ /* We should try to do as little computation after ++ * this as possible, because parallel PME synchronizes ++ * the nodes, so we want all load imbalance of the ++ * rest of the force calculation to be before the PME ++ * call. DD load balancing is done on the whole time ++ * of the force call (without PME). ++ */ ++ } ++ if (fr->n_tpi > 0) ++ { ++ if (EVDW_PME(ir->vdwtype)) ++ { ++ ++ gmx_fatal(FARGS, "Test particle insertion not implemented with LJ-PME"); ++ } ++ /* Determine the PME grid energy of the test molecule ++ * with the PME grid potential of the other charges. ++ */ ++ gmx_pme_calc_energy(fr->pmedata, fr->n_tpi, ++ x + md->homenr - fr->n_tpi, ++ md->chargeA + md->homenr - fr->n_tpi, ++ &Vlr_q); ++ } ++ PRINT_SEPDVDL("PME mesh", Vlr_q + Vlr_lj, dvdl_long_range_q+dvdl_long_range_lj); ++ } ++ } ++ ++ if (!EEL_PME(fr->eeltype) && EEL_PME_EWALD(fr->eeltype)) ++ { ++ Vlr_q = do_ewald(ir, x, fr->f_novirsum, ++ md->chargeA, md->chargeB, ++ box_size, cr, md->homenr, ++ fr->vir_el_recip, fr->ewaldcoeff_q, ++ lambda[efptCOUL], &dvdl_long_range_q, fr->ewald_table); ++ PRINT_SEPDVDL("Ewald long-range", Vlr_q, dvdl_long_range_q); ++ } ++ ++ /* Note that with separate PME nodes we get the real energies later */ ++ enerd->dvdl_lin[efptCOUL] += dvdl_long_range_q; ++ enerd->dvdl_lin[efptVDW] += dvdl_long_range_lj; ++ enerd->term[F_COUL_RECIP] = Vlr_q + Vcorr_q; ++ enerd->term[F_LJ_RECIP] = Vlr_lj + Vcorr_lj; ++ if (debug) ++ { ++ fprintf(debug, "Vlr_q = %g, Vcorr_q = %g, Vlr_corr_q = %g\n", ++ Vlr_q, Vcorr_q, enerd->term[F_COUL_RECIP]); ++ pr_rvecs(debug, 0, "vir_el_recip after corr", fr->vir_el_recip, DIM); ++ pr_rvecs(debug, 0, "fshift after LR Corrections", fr->fshift, SHIFTS); ++ fprintf(debug, "Vlr_lj: %g, Vcorr_lj = %g, Vlr_corr_lj = %g\n", ++ Vlr_lj, Vcorr_lj, enerd->term[F_LJ_RECIP]); ++ pr_rvecs(debug, 0, "vir_lj_recip after corr", fr->vir_lj_recip, DIM); ++ } ++ } ++ else ++ { ++ /* Is there a reaction-field exclusion correction needed? */ ++ if (EEL_RF(fr->eeltype) && eelRF_NEC != fr->eeltype) ++ { ++ /* With the Verlet scheme, exclusion forces are calculated ++ * in the non-bonded kernel. ++ */ ++ if (ir->cutoff_scheme != ecutsVERLET) ++ { ++ real dvdl_rf_excl = 0; ++ enerd->term[F_RF_EXCL] = ++ RF_excl_correction(fr, graph, md, excl, x, f, ++ fr->fshift, &pbc, lambda[efptCOUL], &dvdl_rf_excl); ++ ++ enerd->dvdl_lin[efptCOUL] += dvdl_rf_excl; ++ PRINT_SEPDVDL("RF exclusion correction", ++ enerd->term[F_RF_EXCL], dvdl_rf_excl); ++ } ++ } ++ } ++ where(); ++ debug_gmx(); ++ ++ if (debug) ++ { ++ print_nrnb(debug, nrnb); ++ } ++ debug_gmx(); ++ ++#ifdef GMX_MPI ++ if (TAKETIME) ++ { ++ t2 = MPI_Wtime(); ++ MPI_Barrier(cr->mpi_comm_mygroup); ++ t3 = MPI_Wtime(); ++ fr->t_wait += t3-t2; ++ if (fr->timesteps == 11) ++ { ++ fprintf(stderr, "* PP load balancing info: rank %d, step %s, rel wait time=%3.0f%% , load string value: %7.2f\n", ++ cr->nodeid, gmx_step_str(fr->timesteps, buf), ++ 100*fr->t_wait/(fr->t_wait+fr->t_fnbf), ++ (fr->t_fnbf+fr->t_wait)/fr->t_fnbf); ++ } ++ fr->timesteps++; ++ } ++#endif ++ ++ if (debug) ++ { ++ pr_rvecs(debug, 0, "fshift after bondeds", fr->fshift, SHIFTS); ++ } ++ ++} ++ ++void init_enerdata(int ngener, int n_lambda, gmx_enerdata_t *enerd) ++{ ++ int i, n2; ++ ++ for (i = 0; i < F_NRE; i++) ++ { ++ enerd->term[i] = 0; ++ enerd->foreign_term[i] = 0; ++ } ++ ++ ++ for (i = 0; i < efptNR; i++) ++ { ++ enerd->dvdl_lin[i] = 0; ++ enerd->dvdl_nonlin[i] = 0; ++ } ++ ++ n2 = ngener*ngener; ++ if (debug) ++ { ++ fprintf(debug, "Creating %d sized group matrix for energies\n", n2); ++ } ++ enerd->grpp.nener = n2; ++ enerd->foreign_grpp.nener = n2; ++ for (i = 0; (i < egNR); i++) ++ { ++ snew(enerd->grpp.ener[i], n2); ++ snew(enerd->foreign_grpp.ener[i], n2); ++ } ++ ++ if (n_lambda) ++ { ++ enerd->n_lambda = 1 + n_lambda; ++ snew(enerd->enerpart_lambda, enerd->n_lambda); ++ } ++ else ++ { ++ enerd->n_lambda = 0; ++ } ++} ++ ++void destroy_enerdata(gmx_enerdata_t *enerd) ++{ ++ int i; ++ ++ for (i = 0; (i < egNR); i++) ++ { ++ sfree(enerd->grpp.ener[i]); ++ } ++ ++ for (i = 0; (i < egNR); i++) ++ { ++ sfree(enerd->foreign_grpp.ener[i]); ++ } ++ ++ if (enerd->n_lambda) ++ { ++ sfree(enerd->enerpart_lambda); ++ } ++} ++ ++static real sum_v(int n, real v[]) ++{ ++ real t; ++ int i; ++ ++ t = 0.0; ++ for (i = 0; (i < n); i++) ++ { ++ t = t + v[i]; ++ } ++ ++ return t; ++} ++ ++void sum_epot(gmx_grppairener_t *grpp, real *epot) ++{ ++ int i; ++ ++ /* Accumulate energies */ ++ epot[F_COUL_SR] = sum_v(grpp->nener, grpp->ener[egCOULSR]); ++ epot[F_LJ] = sum_v(grpp->nener, grpp->ener[egLJSR]); ++ epot[F_LJ14] = sum_v(grpp->nener, grpp->ener[egLJ14]); ++ epot[F_COUL14] = sum_v(grpp->nener, grpp->ener[egCOUL14]); ++ epot[F_COUL_LR] = sum_v(grpp->nener, grpp->ener[egCOULLR]); ++ epot[F_LJ_LR] = sum_v(grpp->nener, grpp->ener[egLJLR]); ++ /* We have already added 1-2,1-3, and 1-4 terms to F_GBPOL */ ++ epot[F_GBPOL] += sum_v(grpp->nener, grpp->ener[egGB]); ++ ++/* lattice part of LR doesnt belong to any group ++ * and has been added earlier ++ */ ++ epot[F_BHAM] = sum_v(grpp->nener, grpp->ener[egBHAMSR]); ++ epot[F_BHAM_LR] = sum_v(grpp->nener, grpp->ener[egBHAMLR]); ++ ++ epot[F_EPOT] = 0; ++ for (i = 0; (i < F_EPOT); i++) ++ { ++ if (i != F_DISRESVIOL && i != F_ORIRESDEV) ++ { ++ epot[F_EPOT] += epot[i]; ++ } ++ } ++} ++ ++void sum_dhdl(gmx_enerdata_t *enerd, real *lambda, t_lambda *fepvals) ++{ ++ int i, j, index; ++ double dlam; ++ ++ enerd->dvdl_lin[efptVDW] += enerd->term[F_DVDL_VDW]; /* include dispersion correction */ ++ enerd->term[F_DVDL] = 0.0; ++ for (i = 0; i < efptNR; i++) ++ { ++ if (fepvals->separate_dvdl[i]) ++ { ++ /* could this be done more readably/compactly? */ ++ switch (i) ++ { ++ case (efptMASS): ++ index = F_DKDL; ++ break; ++ case (efptCOUL): ++ index = F_DVDL_COUL; ++ break; ++ case (efptVDW): ++ index = F_DVDL_VDW; ++ break; ++ case (efptBONDED): ++ index = F_DVDL_BONDED; ++ break; ++ case (efptRESTRAINT): ++ index = F_DVDL_RESTRAINT; ++ break; ++ default: ++ index = F_DVDL; ++ break; ++ } ++ enerd->term[index] = enerd->dvdl_lin[i] + enerd->dvdl_nonlin[i]; ++ if (debug) ++ { ++ fprintf(debug, "dvdl-%s[%2d]: %f: non-linear %f + linear %f\n", ++ efpt_names[i], i, enerd->term[index], enerd->dvdl_nonlin[i], enerd->dvdl_lin[i]); ++ } ++ } ++ else ++ { ++ enerd->term[F_DVDL] += enerd->dvdl_lin[i] + enerd->dvdl_nonlin[i]; ++ if (debug) ++ { ++ fprintf(debug, "dvd-%sl[%2d]: %f: non-linear %f + linear %f\n", ++ efpt_names[0], i, enerd->term[F_DVDL], enerd->dvdl_nonlin[i], enerd->dvdl_lin[i]); ++ } ++ } ++ } ++ ++ /* Notes on the foreign lambda free energy difference evaluation: ++ * Adding the potential and ekin terms that depend linearly on lambda ++ * as delta lam * dvdl to the energy differences is exact. ++ * For the constraints this is not exact, but we have no other option ++ * without literally changing the lengths and reevaluating the energies at each step. ++ * (try to remedy this post 4.6 - MRS) ++ * For the non-bonded LR term we assume that the soft-core (if present) ++ * no longer affects the energy beyond the short-range cut-off, ++ * which is a very good approximation (except for exotic settings). ++ * (investigate how to overcome this post 4.6 - MRS) ++ */ ++ if (fepvals->separate_dvdl[efptBONDED]) ++ { ++ enerd->term[F_DVDL_BONDED] += enerd->term[F_DVDL_CONSTR]; ++ } ++ else ++ { ++ enerd->term[F_DVDL] += enerd->term[F_DVDL_CONSTR]; ++ } ++ enerd->term[F_DVDL_CONSTR] = 0; ++ ++ for (i = 0; i < fepvals->n_lambda; i++) ++ { ++ /* note we are iterating over fepvals here! ++ For the current lam, dlam = 0 automatically, ++ so we don't need to add anything to the ++ enerd->enerpart_lambda[0] */ ++ ++ /* we don't need to worry about dvdl_lin contributions to dE at ++ current lambda, because the contributions to the current ++ lambda are automatically zeroed */ ++ ++ for (j = 0; j < efptNR; j++) ++ { ++ /* Note that this loop is over all dhdl components, not just the separated ones */ ++ dlam = (fepvals->all_lambda[j][i]-lambda[j]); ++ enerd->enerpart_lambda[i+1] += dlam*enerd->dvdl_lin[j]; ++ if (debug) ++ { ++ fprintf(debug, "enerdiff lam %g: (%15s), non-linear %f linear %f*%f\n", ++ fepvals->all_lambda[j][i], efpt_names[j], ++ (enerd->enerpart_lambda[i+1] - enerd->enerpart_lambda[0]), ++ dlam, enerd->dvdl_lin[j]); ++ } ++ } ++ } ++} ++ ++ ++void reset_foreign_enerdata(gmx_enerdata_t *enerd) ++{ ++ int i, j; ++ ++ /* First reset all foreign energy components. Foreign energies always called on ++ neighbor search steps */ ++ for (i = 0; (i < egNR); i++) ++ { ++ for (j = 0; (j < enerd->grpp.nener); j++) ++ { ++ enerd->foreign_grpp.ener[i][j] = 0.0; ++ } ++ } ++ ++ /* potential energy components */ ++ for (i = 0; (i <= F_EPOT); i++) ++ { ++ enerd->foreign_term[i] = 0.0; ++ } ++} ++ ++void reset_enerdata(t_forcerec *fr, gmx_bool bNS, ++ gmx_enerdata_t *enerd, ++ gmx_bool bMaster) ++{ ++ gmx_bool bKeepLR; ++ int i, j; ++ ++ /* First reset all energy components, except for the long range terms ++ * on the master at non neighbor search steps, since the long range ++ * terms have already been summed at the last neighbor search step. ++ */ ++ bKeepLR = (fr->bTwinRange && !bNS); ++ for (i = 0; (i < egNR); i++) ++ { ++ if (!(bKeepLR && bMaster && (i == egCOULLR || i == egLJLR))) ++ { ++ for (j = 0; (j < enerd->grpp.nener); j++) ++ { ++ enerd->grpp.ener[i][j] = 0.0; ++ } ++ } ++ } ++ for (i = 0; i < efptNR; i++) ++ { ++ enerd->dvdl_lin[i] = 0.0; ++ enerd->dvdl_nonlin[i] = 0.0; ++ } ++ ++ /* Normal potential energy components */ ++ for (i = 0; (i <= F_EPOT); i++) ++ { ++ enerd->term[i] = 0.0; ++ } ++ /* Initialize the dVdlambda term with the long range contribution */ ++ /* Initialize the dvdl term with the long range contribution */ ++ enerd->term[F_DVDL] = 0.0; ++ enerd->term[F_DVDL_COUL] = 0.0; ++ enerd->term[F_DVDL_VDW] = 0.0; ++ enerd->term[F_DVDL_BONDED] = 0.0; ++ enerd->term[F_DVDL_RESTRAINT] = 0.0; ++ enerd->term[F_DKDL] = 0.0; ++ if (enerd->n_lambda > 0) ++ { ++ for (i = 0; i < enerd->n_lambda; i++) ++ { ++ enerd->enerpart_lambda[i] = 0.0; ++ } ++ } ++ /* reset foreign energy data - separate function since we also call it elsewhere */ ++ reset_foreign_enerdata(enerd); ++} +diff --git a/src/gromacs/mdlib/minimize.c b/src/gromacs/mdlib/minimize.c +index 69008f5..5114fa0 100644 +--- a/src/gromacs/mdlib/minimize.c ++++ b/src/gromacs/mdlib/minimize.c +@@ -80,6 +80,13 @@ + #include "gromacs/timing/walltime_accounting.h" + #include "gromacs/imd/imd.h" + ++/* PLUMED */ ++#include "../../../Plumed.h" ++extern int plumedswitch; ++extern plumed plumedmain; ++extern void(*plumedcmd)(plumed,const char*,const void*); ++/* END PLUMED */ ++ + typedef struct { + t_state s; + rvec *f; +@@ -442,6 +449,43 @@ void init_em(FILE *fplog, const char *title, + + clear_rvec(mu_tot); + calc_shifts(ems->s.box, fr->shift_vec); ++ ++ /* PLUMED */ ++ if(plumedswitch){ ++ if(cr->ms && cr->ms->nsim>1) { ++ if(MASTER(cr)) (*plumedcmd) (plumedmain,"GREX setMPIIntercomm",&cr->ms->mpi_comm_masters); ++ if(PAR(cr)){ ++ if(DOMAINDECOMP(cr)) { ++ (*plumedcmd) (plumedmain,"GREX setMPIIntracomm",&cr->dd->mpi_comm_all); ++ }else{ ++ (*plumedcmd) (plumedmain,"GREX setMPIIntracomm",&cr->mpi_comm_mysim); ++ } ++ } ++ (*plumedcmd) (plumedmain,"GREX init",NULL); ++ } ++ if(PAR(cr)){ ++ if(DOMAINDECOMP(cr)) { ++ (*plumedcmd) (plumedmain,"setMPIComm",&cr->dd->mpi_comm_all); ++ }else{ ++ (*plumedcmd) (plumedmain,"setMPIComm",&cr->mpi_comm_mysim); ++ } ++ } ++ (*plumedcmd) (plumedmain,"setNatoms",&top_global->natoms); ++ (*plumedcmd) (plumedmain,"setMDEngine","gromacs"); ++ (*plumedcmd) (plumedmain,"setLog",fplog); ++ real real_delta_t; ++ real_delta_t=ir->delta_t; ++ (*plumedcmd) (plumedmain,"setTimestep",&real_delta_t); ++ (*plumedcmd) (plumedmain,"init",NULL); ++ ++ if(PAR(cr)){ ++ if(DOMAINDECOMP(cr)) { ++ (*plumedcmd) (plumedmain,"setAtomsNlocal",&cr->dd->nat_home); ++ (*plumedcmd) (plumedmain,"setAtomsGatindex",cr->dd->gatindex); ++ } ++ } ++ } ++ /* END PLUMED */ + } + + static void finish_em(t_commrec *cr, gmx_mdoutf_t outf, +@@ -737,12 +781,34 @@ static void evaluate_energy(FILE *fplog, t_commrec *cr, + em_dd_partition_system(fplog, count, cr, top_global, inputrec, + ems, top, mdatoms, fr, vsite, constr, + nrnb, wcycle); ++ /* PLUMED */ ++ if(plumedswitch){ ++ (*plumedcmd) (plumedmain,"setAtomsNlocal",&cr->dd->nat_home); ++ (*plumedcmd) (plumedmain,"setAtomsGatindex",cr->dd->gatindex); ++ } ++ /* END PLUMED */ + } + + /* Calc force & energy on new trial position */ + /* do_force always puts the charge groups in the box and shifts again + * We do not unshift, so molecules are always whole in congrad.c + */ ++ /* PLUMED */ ++ int plumedNeedsEnergy=0; ++ matrix plumed_vir; ++ if(plumedswitch){ ++ long int lstep=count; (*plumedcmd)(plumedmain,"setStepLong",&count); ++ (*plumedcmd) (plumedmain,"setPositions",&ems->s.x[0][0]); ++ (*plumedcmd) (plumedmain,"setMasses",&mdatoms->massT[0]); ++ (*plumedcmd) (plumedmain,"setCharges",&mdatoms->chargeA[0]); ++ (*plumedcmd) (plumedmain,"setBox",&ems->s.box[0][0]); ++ (*plumedcmd) (plumedmain,"prepareCalc",NULL); ++ (*plumedcmd) (plumedmain,"setForces",&ems->f[0][0]); ++ (*plumedcmd) (plumedmain,"isEnergyNeeded",&plumedNeedsEnergy); ++ clear_mat(plumed_vir); ++ (*plumedcmd) (plumedmain,"setVirial",&plumed_vir[0][0]); ++ } ++ /* END PLUMED */ + do_force(fplog, cr, inputrec, + count, nrnb, wcycle, top, &top_global->groups, + ems->s.box, ems->s.x, &ems->s.hist, +@@ -751,6 +817,19 @@ static void evaluate_energy(FILE *fplog, t_commrec *cr, + GMX_FORCE_STATECHANGED | GMX_FORCE_ALLFORCES | + GMX_FORCE_VIRIAL | GMX_FORCE_ENERGY | + (bNS ? GMX_FORCE_NS | GMX_FORCE_DO_LR : 0)); ++ /* PLUMED */ ++ if(plumedswitch){ ++ if(plumedNeedsEnergy) { ++ msmul(force_vir,2.0,plumed_vir); ++ (*plumedcmd) (plumedmain,"setEnergy",&enerd->term[F_EPOT]); ++ (*plumedcmd) (plumedmain,"performCalc",NULL); ++ msmul(plumed_vir,0.5,force_vir); ++ } else { ++ msmul(plumed_vir,0.5,plumed_vir); ++ m_add(force_vir,plumed_vir,force_vir); ++ } ++ } ++ /* END PLUMED */ + + /* Clear the unused shake virial and pressure */ + clear_mat(shake_vir); +diff --git a/src/gromacs/mdlib/minimize.c.preplumed b/src/gromacs/mdlib/minimize.c.preplumed +new file mode 100644 +index 0000000..69008f5 +--- /dev/null ++++ b/src/gromacs/mdlib/minimize.c.preplumed +@@ -0,0 +1,2906 @@ ++/* ++ * This file is part of the GROMACS molecular simulation package. ++ * ++ * Copyright (c) 1991-2000, University of Groningen, The Netherlands. ++ * Copyright (c) 2001-2004, The GROMACS development team. ++ * Copyright (c) 2013,2014, by the GROMACS development team, led by ++ * Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl, ++ * and including many others, as listed in the AUTHORS file in the ++ * top-level source directory and at http://www.gromacs.org. ++ * ++ * GROMACS 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; either version 2.1 ++ * of the License, or (at your option) any later version. ++ * ++ * GROMACS 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 ++ * Lesser General Public License for more details. ++ * ++ * You should have received a copy of the GNU Lesser General Public ++ * License along with GROMACS; if not, see ++ * http://www.gnu.org/licenses, or write to the Free Software Foundation, ++ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. ++ * ++ * If you want to redistribute modifications to GROMACS, please ++ * consider that scientific software is very special. Version ++ * control is crucial - bugs must be traceable. We will be happy to ++ * consider code for inclusion in the official distribution, but ++ * derived work must not be called official GROMACS. Details are found ++ * in the README & COPYING files - if they are missing, get the ++ * official version at http://www.gromacs.org. ++ * ++ * To help us fund GROMACS development, we humbly ask that you cite ++ * the research papers on the package. Check out http://www.gromacs.org. ++ */ ++#ifdef HAVE_CONFIG_H ++#include ++#endif ++ ++#include ++#include ++#include ++#include "sysstuff.h" ++#include "gromacs/utility/cstringutil.h" ++#include "network.h" ++#include "gromacs/utility/smalloc.h" ++#include "nrnb.h" ++#include "main.h" ++#include "force.h" ++#include "macros.h" ++#include "names.h" ++#include "gmx_fatal.h" ++#include "txtdump.h" ++#include "typedefs.h" ++#include "update.h" ++#include "constr.h" ++#include "vec.h" ++#include "tgroup.h" ++#include "mdebin.h" ++#include "vsite.h" ++#include "force.h" ++#include "mdrun.h" ++#include "md_support.h" ++#include "sim_util.h" ++#include "domdec.h" ++#include "mdatoms.h" ++#include "ns.h" ++#include "mtop_util.h" ++#include "pme.h" ++#include "bondf.h" ++#include "gmx_omp_nthreads.h" ++#include "md_logging.h" ++ ++#include "gromacs/fileio/confio.h" ++#include "gromacs/fileio/trajectory_writing.h" ++#include "gromacs/linearalgebra/mtxio.h" ++#include "gromacs/linearalgebra/sparsematrix.h" ++#include "gromacs/timing/wallcycle.h" ++#include "gromacs/timing/walltime_accounting.h" ++#include "gromacs/imd/imd.h" ++ ++typedef struct { ++ t_state s; ++ rvec *f; ++ real epot; ++ real fnorm; ++ real fmax; ++ int a_fmax; ++} em_state_t; ++ ++static em_state_t *init_em_state() ++{ ++ em_state_t *ems; ++ ++ snew(ems, 1); ++ ++ /* does this need to be here? Should the array be declared differently (staticaly)in the state definition? */ ++ snew(ems->s.lambda, efptNR); ++ ++ return ems; ++} ++ ++static void print_em_start(FILE *fplog, ++ t_commrec *cr, ++ gmx_walltime_accounting_t walltime_accounting, ++ gmx_wallcycle_t wcycle, ++ const char *name) ++{ ++ walltime_accounting_start(walltime_accounting); ++ wallcycle_start(wcycle, ewcRUN); ++ print_start(fplog, cr, walltime_accounting, name); ++} ++static void em_time_end(gmx_walltime_accounting_t walltime_accounting, ++ gmx_wallcycle_t wcycle) ++{ ++ wallcycle_stop(wcycle, ewcRUN); ++ ++ walltime_accounting_end(walltime_accounting); ++} ++ ++static void sp_header(FILE *out, const char *minimizer, real ftol, int nsteps) ++{ ++ fprintf(out, "\n"); ++ fprintf(out, "%s:\n", minimizer); ++ fprintf(out, " Tolerance (Fmax) = %12.5e\n", ftol); ++ fprintf(out, " Number of steps = %12d\n", nsteps); ++} ++ ++static void warn_step(FILE *fp, real ftol, gmx_bool bLastStep, gmx_bool bConstrain) ++{ ++ char buffer[2048]; ++ if (bLastStep) ++ { ++ sprintf(buffer, ++ "\nEnergy minimization reached the maximum number " ++ "of steps before the forces reached the requested " ++ "precision Fmax < %g.\n", ftol); ++ } ++ else ++ { ++ sprintf(buffer, ++ "\nEnergy minimization has stopped, but the forces have " ++ "not converged to the requested precision Fmax < %g (which " ++ "may not be possible for your system). It stopped " ++ "because the algorithm tried to make a new step whose size " ++ "was too small, or there was no change in the energy since " ++ "last step. Either way, we regard the minimization as " ++ "converged to within the available machine precision, " ++ "given your starting configuration and EM parameters.\n%s%s", ++ ftol, ++ sizeof(real) < sizeof(double) ? ++ "\nDouble precision normally gives you higher accuracy, but " ++ "this is often not needed for preparing to run molecular " ++ "dynamics.\n" : ++ "", ++ bConstrain ? ++ "You might need to increase your constraint accuracy, or turn\n" ++ "off constraints altogether (set constraints = none in mdp file)\n" : ++ ""); ++ } ++ fputs(wrap_lines(buffer, 78, 0, FALSE), fp); ++} ++ ++ ++ ++static void print_converged(FILE *fp, const char *alg, real ftol, ++ gmx_int64_t count, gmx_bool bDone, gmx_int64_t nsteps, ++ real epot, real fmax, int nfmax, real fnorm) ++{ ++ char buf[STEPSTRSIZE]; ++ ++ if (bDone) ++ { ++ fprintf(fp, "\n%s converged to Fmax < %g in %s steps\n", ++ alg, ftol, gmx_step_str(count, buf)); ++ } ++ else if (count < nsteps) ++ { ++ fprintf(fp, "\n%s converged to machine precision in %s steps,\n" ++ "but did not reach the requested Fmax < %g.\n", ++ alg, gmx_step_str(count, buf), ftol); ++ } ++ else ++ { ++ fprintf(fp, "\n%s did not converge to Fmax < %g in %s steps.\n", ++ alg, ftol, gmx_step_str(count, buf)); ++ } ++ ++#ifdef GMX_DOUBLE ++ fprintf(fp, "Potential Energy = %21.14e\n", epot); ++ fprintf(fp, "Maximum force = %21.14e on atom %d\n", fmax, nfmax+1); ++ fprintf(fp, "Norm of force = %21.14e\n", fnorm); ++#else ++ fprintf(fp, "Potential Energy = %14.7e\n", epot); ++ fprintf(fp, "Maximum force = %14.7e on atom %d\n", fmax, nfmax+1); ++ fprintf(fp, "Norm of force = %14.7e\n", fnorm); ++#endif ++} ++ ++static void get_f_norm_max(t_commrec *cr, ++ t_grpopts *opts, t_mdatoms *mdatoms, rvec *f, ++ real *fnorm, real *fmax, int *a_fmax) ++{ ++ double fnorm2, *sum; ++ real fmax2, fmax2_0, fam; ++ int la_max, a_max, start, end, i, m, gf; ++ ++ /* This routine finds the largest force and returns it. ++ * On parallel machines the global max is taken. ++ */ ++ fnorm2 = 0; ++ fmax2 = 0; ++ la_max = -1; ++ gf = 0; ++ start = 0; ++ end = mdatoms->homenr; ++ if (mdatoms->cFREEZE) ++ { ++ for (i = start; i < end; i++) ++ { ++ gf = mdatoms->cFREEZE[i]; ++ fam = 0; ++ for (m = 0; m < DIM; m++) ++ { ++ if (!opts->nFreeze[gf][m]) ++ { ++ fam += sqr(f[i][m]); ++ } ++ } ++ fnorm2 += fam; ++ if (fam > fmax2) ++ { ++ fmax2 = fam; ++ la_max = i; ++ } ++ } ++ } ++ else ++ { ++ for (i = start; i < end; i++) ++ { ++ fam = norm2(f[i]); ++ fnorm2 += fam; ++ if (fam > fmax2) ++ { ++ fmax2 = fam; ++ la_max = i; ++ } ++ } ++ } ++ ++ if (la_max >= 0 && DOMAINDECOMP(cr)) ++ { ++ a_max = cr->dd->gatindex[la_max]; ++ } ++ else ++ { ++ a_max = la_max; ++ } ++ if (PAR(cr)) ++ { ++ snew(sum, 2*cr->nnodes+1); ++ sum[2*cr->nodeid] = fmax2; ++ sum[2*cr->nodeid+1] = a_max; ++ sum[2*cr->nnodes] = fnorm2; ++ gmx_sumd(2*cr->nnodes+1, sum, cr); ++ fnorm2 = sum[2*cr->nnodes]; ++ /* Determine the global maximum */ ++ for (i = 0; i < cr->nnodes; i++) ++ { ++ if (sum[2*i] > fmax2) ++ { ++ fmax2 = sum[2*i]; ++ a_max = (int)(sum[2*i+1] + 0.5); ++ } ++ } ++ sfree(sum); ++ } ++ ++ if (fnorm) ++ { ++ *fnorm = sqrt(fnorm2); ++ } ++ if (fmax) ++ { ++ *fmax = sqrt(fmax2); ++ } ++ if (a_fmax) ++ { ++ *a_fmax = a_max; ++ } ++} ++ ++static void get_state_f_norm_max(t_commrec *cr, ++ t_grpopts *opts, t_mdatoms *mdatoms, ++ em_state_t *ems) ++{ ++ get_f_norm_max(cr, opts, mdatoms, ems->f, &ems->fnorm, &ems->fmax, &ems->a_fmax); ++} ++ ++void init_em(FILE *fplog, const char *title, ++ t_commrec *cr, t_inputrec *ir, ++ t_state *state_global, gmx_mtop_t *top_global, ++ em_state_t *ems, gmx_localtop_t **top, ++ rvec **f, rvec **f_global, ++ t_nrnb *nrnb, rvec mu_tot, ++ t_forcerec *fr, gmx_enerdata_t **enerd, ++ t_graph **graph, t_mdatoms *mdatoms, gmx_global_stat_t *gstat, ++ gmx_vsite_t *vsite, gmx_constr_t constr, ++ int nfile, const t_filenm fnm[], ++ gmx_mdoutf_t *outf, t_mdebin **mdebin, ++ int imdport, unsigned long gmx_unused Flags, ++ gmx_wallcycle_t wcycle) ++{ ++ int i; ++ real dvdl_constr; ++ ++ if (fplog) ++ { ++ fprintf(fplog, "Initiating %s\n", title); ++ } ++ ++ state_global->ngtc = 0; ++ ++ /* Initialize lambda variables */ ++ initialize_lambdas(fplog, ir, &(state_global->fep_state), state_global->lambda, NULL); ++ ++ init_nrnb(nrnb); ++ ++ /* Interactive molecular dynamics */ ++ init_IMD(ir, cr, top_global, fplog, 1, state_global->x, ++ nfile, fnm, NULL, imdport, Flags); ++ ++ if (DOMAINDECOMP(cr)) ++ { ++ *top = dd_init_local_top(top_global); ++ ++ dd_init_local_state(cr->dd, state_global, &ems->s); ++ ++ *f = NULL; ++ ++ /* Distribute the charge groups over the nodes from the master node */ ++ dd_partition_system(fplog, ir->init_step, cr, TRUE, 1, ++ state_global, top_global, ir, ++ &ems->s, &ems->f, mdatoms, *top, ++ fr, vsite, NULL, constr, ++ nrnb, NULL, FALSE); ++ dd_store_state(cr->dd, &ems->s); ++ ++ if (ir->nstfout) ++ { ++ snew(*f_global, top_global->natoms); ++ } ++ else ++ { ++ *f_global = NULL; ++ } ++ *graph = NULL; ++ } ++ else ++ { ++ snew(*f, top_global->natoms); ++ ++ /* Just copy the state */ ++ ems->s = *state_global; ++ snew(ems->s.x, ems->s.nalloc); ++ snew(ems->f, ems->s.nalloc); ++ for (i = 0; i < state_global->natoms; i++) ++ { ++ copy_rvec(state_global->x[i], ems->s.x[i]); ++ } ++ copy_mat(state_global->box, ems->s.box); ++ ++ *top = gmx_mtop_generate_local_top(top_global, ir); ++ *f_global = *f; ++ ++ forcerec_set_excl_load(fr, *top); ++ ++ setup_bonded_threading(fr, &(*top)->idef); ++ ++ if (ir->ePBC != epbcNONE && !fr->bMolPBC) ++ { ++ *graph = mk_graph(fplog, &((*top)->idef), 0, top_global->natoms, FALSE, FALSE); ++ } ++ else ++ { ++ *graph = NULL; ++ } ++ ++ atoms2md(top_global, ir, 0, NULL, top_global->natoms, mdatoms); ++ update_mdatoms(mdatoms, state_global->lambda[efptFEP]); ++ ++ if (vsite) ++ { ++ set_vsite_top(vsite, *top, mdatoms, cr); ++ } ++ } ++ ++ if (constr) ++ { ++ if (ir->eConstrAlg == econtSHAKE && ++ gmx_mtop_ftype_count(top_global, F_CONSTR) > 0) ++ { ++ gmx_fatal(FARGS, "Can not do energy minimization with %s, use %s\n", ++ econstr_names[econtSHAKE], econstr_names[econtLINCS]); ++ } ++ ++ if (!DOMAINDECOMP(cr)) ++ { ++ set_constraints(constr, *top, ir, mdatoms, cr); ++ } ++ ++ if (!ir->bContinuation) ++ { ++ /* Constrain the starting coordinates */ ++ dvdl_constr = 0; ++ constrain(PAR(cr) ? NULL : fplog, TRUE, TRUE, constr, &(*top)->idef, ++ ir, NULL, cr, -1, 0, 1.0, mdatoms, ++ ems->s.x, ems->s.x, NULL, fr->bMolPBC, ems->s.box, ++ ems->s.lambda[efptFEP], &dvdl_constr, ++ NULL, NULL, nrnb, econqCoord, FALSE, 0, 0); ++ } ++ } ++ ++ if (PAR(cr)) ++ { ++ *gstat = global_stat_init(ir); ++ } ++ ++ *outf = init_mdoutf(fplog, nfile, fnm, 0, cr, ir, top_global, NULL, wcycle); ++ ++ snew(*enerd, 1); ++ init_enerdata(top_global->groups.grps[egcENER].nr, ir->fepvals->n_lambda, ++ *enerd); ++ ++ if (mdebin != NULL) ++ { ++ /* Init bin for energy stuff */ ++ *mdebin = init_mdebin(mdoutf_get_fp_ene(*outf), top_global, ir, NULL); ++ } ++ ++ clear_rvec(mu_tot); ++ calc_shifts(ems->s.box, fr->shift_vec); ++} ++ ++static void finish_em(t_commrec *cr, gmx_mdoutf_t outf, ++ gmx_walltime_accounting_t walltime_accounting, ++ gmx_wallcycle_t wcycle) ++{ ++ if (!(cr->duty & DUTY_PME)) ++ { ++ /* Tell the PME only node to finish */ ++ gmx_pme_send_finish(cr); ++ } ++ ++ done_mdoutf(outf); ++ ++ em_time_end(walltime_accounting, wcycle); ++} ++ ++static void swap_em_state(em_state_t *ems1, em_state_t *ems2) ++{ ++ em_state_t tmp; ++ ++ tmp = *ems1; ++ *ems1 = *ems2; ++ *ems2 = tmp; ++} ++ ++static void copy_em_coords(em_state_t *ems, t_state *state) ++{ ++ int i; ++ ++ for (i = 0; (i < state->natoms); i++) ++ { ++ copy_rvec(ems->s.x[i], state->x[i]); ++ } ++} ++ ++static void write_em_traj(FILE *fplog, t_commrec *cr, ++ gmx_mdoutf_t outf, ++ gmx_bool bX, gmx_bool bF, const char *confout, ++ gmx_mtop_t *top_global, ++ t_inputrec *ir, gmx_int64_t step, ++ em_state_t *state, ++ t_state *state_global, rvec *f_global) ++{ ++ int mdof_flags; ++ gmx_bool bIMDout = FALSE; ++ ++ ++ /* Shall we do IMD output? */ ++ if (ir->bIMD) ++ { ++ bIMDout = do_per_step(step, IMD_get_step(ir->imd->setup)); ++ } ++ ++ if ((bX || bF || bIMDout || confout != NULL) && !DOMAINDECOMP(cr)) ++ { ++ copy_em_coords(state, state_global); ++ f_global = state->f; ++ } ++ ++ mdof_flags = 0; ++ if (bX) ++ { ++ mdof_flags |= MDOF_X; ++ } ++ if (bF) ++ { ++ mdof_flags |= MDOF_F; ++ } ++ ++ /* If we want IMD output, set appropriate MDOF flag */ ++ if (ir->bIMD) ++ { ++ mdof_flags |= MDOF_IMD; ++ } ++ ++ mdoutf_write_to_trajectory_files(fplog, cr, outf, mdof_flags, ++ top_global, step, (double)step, ++ &state->s, state_global, state->f, f_global); ++ ++ if (confout != NULL && MASTER(cr)) ++ { ++ if (ir->ePBC != epbcNONE && !ir->bPeriodicMols && DOMAINDECOMP(cr)) ++ { ++ /* Make molecules whole only for confout writing */ ++ do_pbc_mtop(fplog, ir->ePBC, state_global->box, top_global, ++ state_global->x); ++ } ++ ++ write_sto_conf_mtop(confout, ++ *top_global->name, top_global, ++ state_global->x, NULL, ir->ePBC, state_global->box); ++ } ++} ++ ++static void do_em_step(t_commrec *cr, t_inputrec *ir, t_mdatoms *md, ++ gmx_bool bMolPBC, ++ em_state_t *ems1, real a, rvec *f, em_state_t *ems2, ++ gmx_constr_t constr, gmx_localtop_t *top, ++ t_nrnb *nrnb, gmx_wallcycle_t wcycle, ++ gmx_int64_t count) ++ ++{ ++ t_state *s1, *s2; ++ int i; ++ int start, end; ++ rvec *x1, *x2; ++ real dvdl_constr; ++ int nthreads gmx_unused; ++ ++ s1 = &ems1->s; ++ s2 = &ems2->s; ++ ++ if (DOMAINDECOMP(cr) && s1->ddp_count != cr->dd->ddp_count) ++ { ++ gmx_incons("state mismatch in do_em_step"); ++ } ++ ++ s2->flags = s1->flags; ++ ++ if (s2->nalloc != s1->nalloc) ++ { ++ s2->nalloc = s1->nalloc; ++ srenew(s2->x, s1->nalloc); ++ srenew(ems2->f, s1->nalloc); ++ if (s2->flags & (1<cg_p, s1->nalloc); ++ } ++ } ++ ++ s2->natoms = s1->natoms; ++ copy_mat(s1->box, s2->box); ++ /* Copy free energy state */ ++ for (i = 0; i < efptNR; i++) ++ { ++ s2->lambda[i] = s1->lambda[i]; ++ } ++ copy_mat(s1->box, s2->box); ++ ++ start = 0; ++ end = md->homenr; ++ ++ x1 = s1->x; ++ x2 = s2->x; ++ ++ nthreads = gmx_omp_nthreads_get(emntUpdate); ++#pragma omp parallel num_threads(nthreads) ++ { ++ int gf, i, m; ++ ++ gf = 0; ++#pragma omp for schedule(static) nowait ++ for (i = start; i < end; i++) ++ { ++ if (md->cFREEZE) ++ { ++ gf = md->cFREEZE[i]; ++ } ++ for (m = 0; m < DIM; m++) ++ { ++ if (ir->opts.nFreeze[gf][m]) ++ { ++ x2[i][m] = x1[i][m]; ++ } ++ else ++ { ++ x2[i][m] = x1[i][m] + a*f[i][m]; ++ } ++ } ++ } ++ ++ if (s2->flags & (1<cg_p; ++ x2 = s2->cg_p; ++#pragma omp for schedule(static) nowait ++ for (i = start; i < end; i++) ++ { ++ copy_rvec(x1[i], x2[i]); ++ } ++ } ++ ++ if (DOMAINDECOMP(cr)) ++ { ++ s2->ddp_count = s1->ddp_count; ++ if (s2->cg_gl_nalloc < s1->cg_gl_nalloc) ++ { ++#pragma omp barrier ++ s2->cg_gl_nalloc = s1->cg_gl_nalloc; ++ srenew(s2->cg_gl, s2->cg_gl_nalloc); ++#pragma omp barrier ++ } ++ s2->ncg_gl = s1->ncg_gl; ++#pragma omp for schedule(static) nowait ++ for (i = 0; i < s2->ncg_gl; i++) ++ { ++ s2->cg_gl[i] = s1->cg_gl[i]; ++ } ++ s2->ddp_count_cg_gl = s1->ddp_count_cg_gl; ++ } ++ } ++ ++ if (constr) ++ { ++ wallcycle_start(wcycle, ewcCONSTR); ++ dvdl_constr = 0; ++ constrain(NULL, TRUE, TRUE, constr, &top->idef, ++ ir, NULL, cr, count, 0, 1.0, md, ++ s1->x, s2->x, NULL, bMolPBC, s2->box, ++ s2->lambda[efptBONDED], &dvdl_constr, ++ NULL, NULL, nrnb, econqCoord, FALSE, 0, 0); ++ wallcycle_stop(wcycle, ewcCONSTR); ++ } ++} ++ ++static void em_dd_partition_system(FILE *fplog, int step, t_commrec *cr, ++ gmx_mtop_t *top_global, t_inputrec *ir, ++ em_state_t *ems, gmx_localtop_t *top, ++ t_mdatoms *mdatoms, t_forcerec *fr, ++ gmx_vsite_t *vsite, gmx_constr_t constr, ++ t_nrnb *nrnb, gmx_wallcycle_t wcycle) ++{ ++ /* Repartition the domain decomposition */ ++ wallcycle_start(wcycle, ewcDOMDEC); ++ dd_partition_system(fplog, step, cr, FALSE, 1, ++ NULL, top_global, ir, ++ &ems->s, &ems->f, ++ mdatoms, top, fr, vsite, NULL, constr, ++ nrnb, wcycle, FALSE); ++ dd_store_state(cr->dd, &ems->s); ++ wallcycle_stop(wcycle, ewcDOMDEC); ++} ++ ++static void evaluate_energy(FILE *fplog, t_commrec *cr, ++ gmx_mtop_t *top_global, ++ em_state_t *ems, gmx_localtop_t *top, ++ t_inputrec *inputrec, ++ t_nrnb *nrnb, gmx_wallcycle_t wcycle, ++ gmx_global_stat_t gstat, ++ gmx_vsite_t *vsite, gmx_constr_t constr, ++ t_fcdata *fcd, ++ t_graph *graph, t_mdatoms *mdatoms, ++ t_forcerec *fr, rvec mu_tot, ++ gmx_enerdata_t *enerd, tensor vir, tensor pres, ++ gmx_int64_t count, gmx_bool bFirst) ++{ ++ real t; ++ gmx_bool bNS; ++ int nabnsb; ++ tensor force_vir, shake_vir, ekin; ++ real dvdl_constr, prescorr, enercorr, dvdlcorr; ++ real terminate = 0; ++ ++ /* Set the time to the initial time, the time does not change during EM */ ++ t = inputrec->init_t; ++ ++ if (bFirst || ++ (DOMAINDECOMP(cr) && ems->s.ddp_count < cr->dd->ddp_count)) ++ { ++ /* This is the first state or an old state used before the last ns */ ++ bNS = TRUE; ++ } ++ else ++ { ++ bNS = FALSE; ++ if (inputrec->nstlist > 0) ++ { ++ bNS = TRUE; ++ } ++ else if (inputrec->nstlist == -1) ++ { ++ nabnsb = natoms_beyond_ns_buffer(inputrec, fr, &top->cgs, NULL, ems->s.x); ++ if (PAR(cr)) ++ { ++ gmx_sumi(1, &nabnsb, cr); ++ } ++ bNS = (nabnsb > 0); ++ } ++ } ++ ++ if (vsite) ++ { ++ construct_vsites(vsite, ems->s.x, 1, NULL, ++ top->idef.iparams, top->idef.il, ++ fr->ePBC, fr->bMolPBC, cr, ems->s.box); ++ } ++ ++ if (DOMAINDECOMP(cr) && bNS) ++ { ++ /* Repartition the domain decomposition */ ++ em_dd_partition_system(fplog, count, cr, top_global, inputrec, ++ ems, top, mdatoms, fr, vsite, constr, ++ nrnb, wcycle); ++ } ++ ++ /* Calc force & energy on new trial position */ ++ /* do_force always puts the charge groups in the box and shifts again ++ * We do not unshift, so molecules are always whole in congrad.c ++ */ ++ do_force(fplog, cr, inputrec, ++ count, nrnb, wcycle, top, &top_global->groups, ++ ems->s.box, ems->s.x, &ems->s.hist, ++ ems->f, force_vir, mdatoms, enerd, fcd, ++ ems->s.lambda, graph, fr, vsite, mu_tot, t, NULL, NULL, TRUE, ++ GMX_FORCE_STATECHANGED | GMX_FORCE_ALLFORCES | ++ GMX_FORCE_VIRIAL | GMX_FORCE_ENERGY | ++ (bNS ? GMX_FORCE_NS | GMX_FORCE_DO_LR : 0)); ++ ++ /* Clear the unused shake virial and pressure */ ++ clear_mat(shake_vir); ++ clear_mat(pres); ++ ++ /* Communicate stuff when parallel */ ++ if (PAR(cr) && inputrec->eI != eiNM) ++ { ++ wallcycle_start(wcycle, ewcMoveE); ++ ++ global_stat(fplog, gstat, cr, enerd, force_vir, shake_vir, mu_tot, ++ inputrec, NULL, NULL, NULL, 1, &terminate, ++ top_global, &ems->s, FALSE, ++ CGLO_ENERGY | ++ CGLO_PRESSURE | ++ CGLO_CONSTRAINT | ++ CGLO_FIRSTITERATE); ++ ++ wallcycle_stop(wcycle, ewcMoveE); ++ } ++ ++ /* Calculate long range corrections to pressure and energy */ ++ calc_dispcorr(fplog, inputrec, fr, count, top_global->natoms, ems->s.box, ems->s.lambda[efptVDW], ++ pres, force_vir, &prescorr, &enercorr, &dvdlcorr); ++ enerd->term[F_DISPCORR] = enercorr; ++ enerd->term[F_EPOT] += enercorr; ++ enerd->term[F_PRES] += prescorr; ++ enerd->term[F_DVDL] += dvdlcorr; ++ ++ ems->epot = enerd->term[F_EPOT]; ++ ++ if (constr) ++ { ++ /* Project out the constraint components of the force */ ++ wallcycle_start(wcycle, ewcCONSTR); ++ dvdl_constr = 0; ++ constrain(NULL, FALSE, FALSE, constr, &top->idef, ++ inputrec, NULL, cr, count, 0, 1.0, mdatoms, ++ ems->s.x, ems->f, ems->f, fr->bMolPBC, ems->s.box, ++ ems->s.lambda[efptBONDED], &dvdl_constr, ++ NULL, &shake_vir, nrnb, econqForceDispl, FALSE, 0, 0); ++ if (fr->bSepDVDL && fplog) ++ { ++ gmx_print_sepdvdl(fplog, "Constraints", t, dvdl_constr); ++ } ++ enerd->term[F_DVDL_CONSTR] += dvdl_constr; ++ m_add(force_vir, shake_vir, vir); ++ wallcycle_stop(wcycle, ewcCONSTR); ++ } ++ else ++ { ++ copy_mat(force_vir, vir); ++ } ++ ++ clear_mat(ekin); ++ enerd->term[F_PRES] = ++ calc_pres(fr->ePBC, inputrec->nwall, ems->s.box, ekin, vir, pres); ++ ++ sum_dhdl(enerd, ems->s.lambda, inputrec->fepvals); ++ ++ if (EI_ENERGY_MINIMIZATION(inputrec->eI)) ++ { ++ get_state_f_norm_max(cr, &(inputrec->opts), mdatoms, ems); ++ } ++} ++ ++static double reorder_partsum(t_commrec *cr, t_grpopts *opts, t_mdatoms *mdatoms, ++ gmx_mtop_t *mtop, ++ em_state_t *s_min, em_state_t *s_b) ++{ ++ rvec *fm, *fb, *fmg; ++ t_block *cgs_gl; ++ int ncg, *cg_gl, *index, c, cg, i, a0, a1, a, gf, m; ++ double partsum; ++ unsigned char *grpnrFREEZE; ++ ++ if (debug) ++ { ++ fprintf(debug, "Doing reorder_partsum\n"); ++ } ++ ++ fm = s_min->f; ++ fb = s_b->f; ++ ++ cgs_gl = dd_charge_groups_global(cr->dd); ++ index = cgs_gl->index; ++ ++ /* Collect fm in a global vector fmg. ++ * This conflicts with the spirit of domain decomposition, ++ * but to fully optimize this a much more complicated algorithm is required. ++ */ ++ snew(fmg, mtop->natoms); ++ ++ ncg = s_min->s.ncg_gl; ++ cg_gl = s_min->s.cg_gl; ++ i = 0; ++ for (c = 0; c < ncg; c++) ++ { ++ cg = cg_gl[c]; ++ a0 = index[cg]; ++ a1 = index[cg+1]; ++ for (a = a0; a < a1; a++) ++ { ++ copy_rvec(fm[i], fmg[a]); ++ i++; ++ } ++ } ++ gmx_sum(mtop->natoms*3, fmg[0], cr); ++ ++ /* Now we will determine the part of the sum for the cgs in state s_b */ ++ ncg = s_b->s.ncg_gl; ++ cg_gl = s_b->s.cg_gl; ++ partsum = 0; ++ i = 0; ++ gf = 0; ++ grpnrFREEZE = mtop->groups.grpnr[egcFREEZE]; ++ for (c = 0; c < ncg; c++) ++ { ++ cg = cg_gl[c]; ++ a0 = index[cg]; ++ a1 = index[cg+1]; ++ for (a = a0; a < a1; a++) ++ { ++ if (mdatoms->cFREEZE && grpnrFREEZE) ++ { ++ gf = grpnrFREEZE[i]; ++ } ++ for (m = 0; m < DIM; m++) ++ { ++ if (!opts->nFreeze[gf][m]) ++ { ++ partsum += (fb[i][m] - fmg[a][m])*fb[i][m]; ++ } ++ } ++ i++; ++ } ++ } ++ ++ sfree(fmg); ++ ++ return partsum; ++} ++ ++static real pr_beta(t_commrec *cr, t_grpopts *opts, t_mdatoms *mdatoms, ++ gmx_mtop_t *mtop, ++ em_state_t *s_min, em_state_t *s_b) ++{ ++ rvec *fm, *fb; ++ double sum; ++ int gf, i, m; ++ ++ /* This is just the classical Polak-Ribiere calculation of beta; ++ * it looks a bit complicated since we take freeze groups into account, ++ * and might have to sum it in parallel runs. ++ */ ++ ++ if (!DOMAINDECOMP(cr) || ++ (s_min->s.ddp_count == cr->dd->ddp_count && ++ s_b->s.ddp_count == cr->dd->ddp_count)) ++ { ++ fm = s_min->f; ++ fb = s_b->f; ++ sum = 0; ++ gf = 0; ++ /* This part of code can be incorrect with DD, ++ * since the atom ordering in s_b and s_min might differ. ++ */ ++ for (i = 0; i < mdatoms->homenr; i++) ++ { ++ if (mdatoms->cFREEZE) ++ { ++ gf = mdatoms->cFREEZE[i]; ++ } ++ for (m = 0; m < DIM; m++) ++ { ++ if (!opts->nFreeze[gf][m]) ++ { ++ sum += (fb[i][m] - fm[i][m])*fb[i][m]; ++ } ++ } ++ } ++ } ++ else ++ { ++ /* We need to reorder cgs while summing */ ++ sum = reorder_partsum(cr, opts, mdatoms, mtop, s_min, s_b); ++ } ++ if (PAR(cr)) ++ { ++ gmx_sumd(1, &sum, cr); ++ } ++ ++ return sum/sqr(s_min->fnorm); ++} ++ ++double do_cg(FILE *fplog, t_commrec *cr, ++ int nfile, const t_filenm fnm[], ++ const output_env_t gmx_unused oenv, gmx_bool bVerbose, gmx_bool gmx_unused bCompact, ++ int gmx_unused nstglobalcomm, ++ gmx_vsite_t *vsite, gmx_constr_t constr, ++ int gmx_unused stepout, ++ t_inputrec *inputrec, ++ gmx_mtop_t *top_global, t_fcdata *fcd, ++ t_state *state_global, ++ t_mdatoms *mdatoms, ++ t_nrnb *nrnb, gmx_wallcycle_t wcycle, ++ gmx_edsam_t gmx_unused ed, ++ t_forcerec *fr, ++ int gmx_unused repl_ex_nst, int gmx_unused repl_ex_nex, int gmx_unused repl_ex_seed, ++ gmx_membed_t gmx_unused membed, ++ real gmx_unused cpt_period, real gmx_unused max_hours, ++ const char gmx_unused *deviceOptions, ++ int imdport, ++ unsigned long gmx_unused Flags, ++ gmx_walltime_accounting_t walltime_accounting) ++{ ++ const char *CG = "Polak-Ribiere Conjugate Gradients"; ++ ++ em_state_t *s_min, *s_a, *s_b, *s_c; ++ gmx_localtop_t *top; ++ gmx_enerdata_t *enerd; ++ rvec *f; ++ gmx_global_stat_t gstat; ++ t_graph *graph; ++ rvec *f_global, *p, *sf, *sfm; ++ double gpa, gpb, gpc, tmp, sum[2], minstep; ++ real fnormn; ++ real stepsize; ++ real a, b, c, beta = 0.0; ++ real epot_repl = 0; ++ real pnorm; ++ t_mdebin *mdebin; ++ gmx_bool converged, foundlower; ++ rvec mu_tot; ++ gmx_bool do_log = FALSE, do_ene = FALSE, do_x, do_f; ++ tensor vir, pres; ++ int number_steps, neval = 0, nstcg = inputrec->nstcgsteep; ++ gmx_mdoutf_t outf; ++ int i, m, gf, step, nminstep; ++ real terminate = 0; ++ ++ step = 0; ++ ++ s_min = init_em_state(); ++ s_a = init_em_state(); ++ s_b = init_em_state(); ++ s_c = init_em_state(); ++ ++ /* Init em and store the local state in s_min */ ++ init_em(fplog, CG, cr, inputrec, ++ state_global, top_global, s_min, &top, &f, &f_global, ++ nrnb, mu_tot, fr, &enerd, &graph, mdatoms, &gstat, vsite, constr, ++ nfile, fnm, &outf, &mdebin, imdport, Flags, wcycle); ++ ++ /* Print to log file */ ++ print_em_start(fplog, cr, walltime_accounting, wcycle, CG); ++ ++ /* Max number of steps */ ++ number_steps = inputrec->nsteps; ++ ++ if (MASTER(cr)) ++ { ++ sp_header(stderr, CG, inputrec->em_tol, number_steps); ++ } ++ if (fplog) ++ { ++ sp_header(fplog, CG, inputrec->em_tol, number_steps); ++ } ++ ++ /* Call the force routine and some auxiliary (neighboursearching etc.) */ ++ /* do_force always puts the charge groups in the box and shifts again ++ * We do not unshift, so molecules are always whole in congrad.c ++ */ ++ evaluate_energy(fplog, cr, ++ top_global, s_min, top, ++ inputrec, nrnb, wcycle, gstat, ++ vsite, constr, fcd, graph, mdatoms, fr, ++ mu_tot, enerd, vir, pres, -1, TRUE); ++ where(); ++ ++ if (MASTER(cr)) ++ { ++ /* Copy stuff to the energy bin for easy printing etc. */ ++ upd_mdebin(mdebin, FALSE, FALSE, (double)step, ++ mdatoms->tmass, enerd, &s_min->s, inputrec->fepvals, inputrec->expandedvals, s_min->s.box, ++ NULL, NULL, vir, pres, NULL, mu_tot, constr); ++ ++ print_ebin_header(fplog, step, step, s_min->s.lambda[efptFEP]); ++ print_ebin(mdoutf_get_fp_ene(outf), TRUE, FALSE, FALSE, fplog, step, step, eprNORMAL, ++ TRUE, mdebin, fcd, &(top_global->groups), &(inputrec->opts)); ++ } ++ where(); ++ ++ /* Estimate/guess the initial stepsize */ ++ stepsize = inputrec->em_stepsize/s_min->fnorm; ++ ++ if (MASTER(cr)) ++ { ++ fprintf(stderr, " F-max = %12.5e on atom %d\n", ++ s_min->fmax, s_min->a_fmax+1); ++ fprintf(stderr, " F-Norm = %12.5e\n", ++ s_min->fnorm/sqrt(state_global->natoms)); ++ fprintf(stderr, "\n"); ++ /* and copy to the log file too... */ ++ fprintf(fplog, " F-max = %12.5e on atom %d\n", ++ s_min->fmax, s_min->a_fmax+1); ++ fprintf(fplog, " F-Norm = %12.5e\n", ++ s_min->fnorm/sqrt(state_global->natoms)); ++ fprintf(fplog, "\n"); ++ } ++ /* Start the loop over CG steps. ++ * Each successful step is counted, and we continue until ++ * we either converge or reach the max number of steps. ++ */ ++ converged = FALSE; ++ for (step = 0; (number_steps < 0 || (number_steps >= 0 && step <= number_steps)) && !converged; step++) ++ { ++ ++ /* start taking steps in a new direction ++ * First time we enter the routine, beta=0, and the direction is ++ * simply the negative gradient. ++ */ ++ ++ /* Calculate the new direction in p, and the gradient in this direction, gpa */ ++ p = s_min->s.cg_p; ++ sf = s_min->f; ++ gpa = 0; ++ gf = 0; ++ for (i = 0; i < mdatoms->homenr; i++) ++ { ++ if (mdatoms->cFREEZE) ++ { ++ gf = mdatoms->cFREEZE[i]; ++ } ++ for (m = 0; m < DIM; m++) ++ { ++ if (!inputrec->opts.nFreeze[gf][m]) ++ { ++ p[i][m] = sf[i][m] + beta*p[i][m]; ++ gpa -= p[i][m]*sf[i][m]; ++ /* f is negative gradient, thus the sign */ ++ } ++ else ++ { ++ p[i][m] = 0; ++ } ++ } ++ } ++ ++ /* Sum the gradient along the line across CPUs */ ++ if (PAR(cr)) ++ { ++ gmx_sumd(1, &gpa, cr); ++ } ++ ++ /* Calculate the norm of the search vector */ ++ get_f_norm_max(cr, &(inputrec->opts), mdatoms, p, &pnorm, NULL, NULL); ++ ++ /* Just in case stepsize reaches zero due to numerical precision... */ ++ if (stepsize <= 0) ++ { ++ stepsize = inputrec->em_stepsize/pnorm; ++ } ++ ++ /* ++ * Double check the value of the derivative in the search direction. ++ * If it is positive it must be due to the old information in the ++ * CG formula, so just remove that and start over with beta=0. ++ * This corresponds to a steepest descent step. ++ */ ++ if (gpa > 0) ++ { ++ beta = 0; ++ step--; /* Don't count this step since we are restarting */ ++ continue; /* Go back to the beginning of the big for-loop */ ++ } ++ ++ /* Calculate minimum allowed stepsize, before the average (norm) ++ * relative change in coordinate is smaller than precision ++ */ ++ minstep = 0; ++ for (i = 0; i < mdatoms->homenr; i++) ++ { ++ for (m = 0; m < DIM; m++) ++ { ++ tmp = fabs(s_min->s.x[i][m]); ++ if (tmp < 1.0) ++ { ++ tmp = 1.0; ++ } ++ tmp = p[i][m]/tmp; ++ minstep += tmp*tmp; ++ } ++ } ++ /* Add up from all CPUs */ ++ if (PAR(cr)) ++ { ++ gmx_sumd(1, &minstep, cr); ++ } ++ ++ minstep = GMX_REAL_EPS/sqrt(minstep/(3*state_global->natoms)); ++ ++ if (stepsize < minstep) ++ { ++ converged = TRUE; ++ break; ++ } ++ ++ /* Write coordinates if necessary */ ++ do_x = do_per_step(step, inputrec->nstxout); ++ do_f = do_per_step(step, inputrec->nstfout); ++ ++ write_em_traj(fplog, cr, outf, do_x, do_f, NULL, ++ top_global, inputrec, step, ++ s_min, state_global, f_global); ++ ++ /* Take a step downhill. ++ * In theory, we should minimize the function along this direction. ++ * That is quite possible, but it turns out to take 5-10 function evaluations ++ * for each line. However, we dont really need to find the exact minimum - ++ * it is much better to start a new CG step in a modified direction as soon ++ * as we are close to it. This will save a lot of energy evaluations. ++ * ++ * In practice, we just try to take a single step. ++ * If it worked (i.e. lowered the energy), we increase the stepsize but ++ * the continue straight to the next CG step without trying to find any minimum. ++ * If it didn't work (higher energy), there must be a minimum somewhere between ++ * the old position and the new one. ++ * ++ * Due to the finite numerical accuracy, it turns out that it is a good idea ++ * to even accept a SMALL increase in energy, if the derivative is still downhill. ++ * This leads to lower final energies in the tests I've done. / Erik ++ */ ++ s_a->epot = s_min->epot; ++ a = 0.0; ++ c = a + stepsize; /* reference position along line is zero */ ++ ++ if (DOMAINDECOMP(cr) && s_min->s.ddp_count < cr->dd->ddp_count) ++ { ++ em_dd_partition_system(fplog, step, cr, top_global, inputrec, ++ s_min, top, mdatoms, fr, vsite, constr, ++ nrnb, wcycle); ++ } ++ ++ /* Take a trial step (new coords in s_c) */ ++ do_em_step(cr, inputrec, mdatoms, fr->bMolPBC, s_min, c, s_min->s.cg_p, s_c, ++ constr, top, nrnb, wcycle, -1); ++ ++ neval++; ++ /* Calculate energy for the trial step */ ++ evaluate_energy(fplog, cr, ++ top_global, s_c, top, ++ inputrec, nrnb, wcycle, gstat, ++ vsite, constr, fcd, graph, mdatoms, fr, ++ mu_tot, enerd, vir, pres, -1, FALSE); ++ ++ /* Calc derivative along line */ ++ p = s_c->s.cg_p; ++ sf = s_c->f; ++ gpc = 0; ++ for (i = 0; i < mdatoms->homenr; i++) ++ { ++ for (m = 0; m < DIM; m++) ++ { ++ gpc -= p[i][m]*sf[i][m]; /* f is negative gradient, thus the sign */ ++ } ++ } ++ /* Sum the gradient along the line across CPUs */ ++ if (PAR(cr)) ++ { ++ gmx_sumd(1, &gpc, cr); ++ } ++ ++ /* This is the max amount of increase in energy we tolerate */ ++ tmp = sqrt(GMX_REAL_EPS)*fabs(s_a->epot); ++ ++ /* Accept the step if the energy is lower, or if it is not significantly higher ++ * and the line derivative is still negative. ++ */ ++ if (s_c->epot < s_a->epot || (gpc < 0 && s_c->epot < (s_a->epot + tmp))) ++ { ++ foundlower = TRUE; ++ /* Great, we found a better energy. Increase step for next iteration ++ * if we are still going down, decrease it otherwise ++ */ ++ if (gpc < 0) ++ { ++ stepsize *= 1.618034; /* The golden section */ ++ } ++ else ++ { ++ stepsize *= 0.618034; /* 1/golden section */ ++ } ++ } ++ else ++ { ++ /* New energy is the same or higher. We will have to do some work ++ * to find a smaller value in the interval. Take smaller step next time! ++ */ ++ foundlower = FALSE; ++ stepsize *= 0.618034; ++ } ++ ++ ++ ++ ++ /* OK, if we didn't find a lower value we will have to locate one now - there must ++ * be one in the interval [a=0,c]. ++ * The same thing is valid here, though: Don't spend dozens of iterations to find ++ * the line minimum. We try to interpolate based on the derivative at the endpoints, ++ * and only continue until we find a lower value. In most cases this means 1-2 iterations. ++ * ++ * I also have a safeguard for potentially really patological functions so we never ++ * take more than 20 steps before we give up ... ++ * ++ * If we already found a lower value we just skip this step and continue to the update. ++ */ ++ if (!foundlower) ++ { ++ nminstep = 0; ++ ++ do ++ { ++ /* Select a new trial point. ++ * If the derivatives at points a & c have different sign we interpolate to zero, ++ * otherwise just do a bisection. ++ */ ++ if (gpa < 0 && gpc > 0) ++ { ++ b = a + gpa*(a-c)/(gpc-gpa); ++ } ++ else ++ { ++ b = 0.5*(a+c); ++ } ++ ++ /* safeguard if interpolation close to machine accuracy causes errors: ++ * never go outside the interval ++ */ ++ if (b <= a || b >= c) ++ { ++ b = 0.5*(a+c); ++ } ++ ++ if (DOMAINDECOMP(cr) && s_min->s.ddp_count != cr->dd->ddp_count) ++ { ++ /* Reload the old state */ ++ em_dd_partition_system(fplog, -1, cr, top_global, inputrec, ++ s_min, top, mdatoms, fr, vsite, constr, ++ nrnb, wcycle); ++ } ++ ++ /* Take a trial step to this new point - new coords in s_b */ ++ do_em_step(cr, inputrec, mdatoms, fr->bMolPBC, s_min, b, s_min->s.cg_p, s_b, ++ constr, top, nrnb, wcycle, -1); ++ ++ neval++; ++ /* Calculate energy for the trial step */ ++ evaluate_energy(fplog, cr, ++ top_global, s_b, top, ++ inputrec, nrnb, wcycle, gstat, ++ vsite, constr, fcd, graph, mdatoms, fr, ++ mu_tot, enerd, vir, pres, -1, FALSE); ++ ++ /* p does not change within a step, but since the domain decomposition ++ * might change, we have to use cg_p of s_b here. ++ */ ++ p = s_b->s.cg_p; ++ sf = s_b->f; ++ gpb = 0; ++ for (i = 0; i < mdatoms->homenr; i++) ++ { ++ for (m = 0; m < DIM; m++) ++ { ++ gpb -= p[i][m]*sf[i][m]; /* f is negative gradient, thus the sign */ ++ } ++ } ++ /* Sum the gradient along the line across CPUs */ ++ if (PAR(cr)) ++ { ++ gmx_sumd(1, &gpb, cr); ++ } ++ ++ if (debug) ++ { ++ fprintf(debug, "CGE: EpotA %f EpotB %f EpotC %f gpb %f\n", ++ s_a->epot, s_b->epot, s_c->epot, gpb); ++ } ++ ++ epot_repl = s_b->epot; ++ ++ /* Keep one of the intervals based on the value of the derivative at the new point */ ++ if (gpb > 0) ++ { ++ /* Replace c endpoint with b */ ++ swap_em_state(s_b, s_c); ++ c = b; ++ gpc = gpb; ++ } ++ else ++ { ++ /* Replace a endpoint with b */ ++ swap_em_state(s_b, s_a); ++ a = b; ++ gpa = gpb; ++ } ++ ++ /* ++ * Stop search as soon as we find a value smaller than the endpoints. ++ * Never run more than 20 steps, no matter what. ++ */ ++ nminstep++; ++ } ++ while ((epot_repl > s_a->epot || epot_repl > s_c->epot) && ++ (nminstep < 20)); ++ ++ if (fabs(epot_repl - s_min->epot) < fabs(s_min->epot)*GMX_REAL_EPS || ++ nminstep >= 20) ++ { ++ /* OK. We couldn't find a significantly lower energy. ++ * If beta==0 this was steepest descent, and then we give up. ++ * If not, set beta=0 and restart with steepest descent before quitting. ++ */ ++ if (beta == 0.0) ++ { ++ /* Converged */ ++ converged = TRUE; ++ break; ++ } ++ else ++ { ++ /* Reset memory before giving up */ ++ beta = 0.0; ++ continue; ++ } ++ } ++ ++ /* Select min energy state of A & C, put the best in B. ++ */ ++ if (s_c->epot < s_a->epot) ++ { ++ if (debug) ++ { ++ fprintf(debug, "CGE: C (%f) is lower than A (%f), moving C to B\n", ++ s_c->epot, s_a->epot); ++ } ++ swap_em_state(s_b, s_c); ++ gpb = gpc; ++ b = c; ++ } ++ else ++ { ++ if (debug) ++ { ++ fprintf(debug, "CGE: A (%f) is lower than C (%f), moving A to B\n", ++ s_a->epot, s_c->epot); ++ } ++ swap_em_state(s_b, s_a); ++ gpb = gpa; ++ b = a; ++ } ++ ++ } ++ else ++ { ++ if (debug) ++ { ++ fprintf(debug, "CGE: Found a lower energy %f, moving C to B\n", ++ s_c->epot); ++ } ++ swap_em_state(s_b, s_c); ++ gpb = gpc; ++ b = c; ++ } ++ ++ /* new search direction */ ++ /* beta = 0 means forget all memory and restart with steepest descents. */ ++ if (nstcg && ((step % nstcg) == 0)) ++ { ++ beta = 0.0; ++ } ++ else ++ { ++ /* s_min->fnorm cannot be zero, because then we would have converged ++ * and broken out. ++ */ ++ ++ /* Polak-Ribiere update. ++ * Change to fnorm2/fnorm2_old for Fletcher-Reeves ++ */ ++ beta = pr_beta(cr, &inputrec->opts, mdatoms, top_global, s_min, s_b); ++ } ++ /* Limit beta to prevent oscillations */ ++ if (fabs(beta) > 5.0) ++ { ++ beta = 0.0; ++ } ++ ++ ++ /* update positions */ ++ swap_em_state(s_min, s_b); ++ gpa = gpb; ++ ++ /* Print it if necessary */ ++ if (MASTER(cr)) ++ { ++ if (bVerbose) ++ { ++ fprintf(stderr, "\rStep %d, Epot=%12.6e, Fnorm=%9.3e, Fmax=%9.3e (atom %d)\n", ++ step, s_min->epot, s_min->fnorm/sqrt(state_global->natoms), ++ s_min->fmax, s_min->a_fmax+1); ++ } ++ /* Store the new (lower) energies */ ++ upd_mdebin(mdebin, FALSE, FALSE, (double)step, ++ mdatoms->tmass, enerd, &s_min->s, inputrec->fepvals, inputrec->expandedvals, s_min->s.box, ++ NULL, NULL, vir, pres, NULL, mu_tot, constr); ++ ++ do_log = do_per_step(step, inputrec->nstlog); ++ do_ene = do_per_step(step, inputrec->nstenergy); ++ ++ /* Prepare IMD energy record, if bIMD is TRUE. */ ++ IMD_fill_energy_record(inputrec->bIMD, inputrec->imd, enerd, step, TRUE); ++ ++ if (do_log) ++ { ++ print_ebin_header(fplog, step, step, s_min->s.lambda[efptFEP]); ++ } ++ print_ebin(mdoutf_get_fp_ene(outf), do_ene, FALSE, FALSE, ++ do_log ? fplog : NULL, step, step, eprNORMAL, ++ TRUE, mdebin, fcd, &(top_global->groups), &(inputrec->opts)); ++ } ++ ++ /* Send energies and positions to the IMD client if bIMD is TRUE. */ ++ if (do_IMD(inputrec->bIMD, step, cr, TRUE, state_global->box, state_global->x, inputrec, 0, wcycle) && MASTER(cr)) ++ { ++ IMD_send_positions(inputrec->imd); ++ } ++ ++ /* Stop when the maximum force lies below tolerance. ++ * If we have reached machine precision, converged is already set to true. ++ */ ++ converged = converged || (s_min->fmax < inputrec->em_tol); ++ ++ } /* End of the loop */ ++ ++ /* IMD cleanup, if bIMD is TRUE. */ ++ IMD_finalize(inputrec->bIMD, inputrec->imd); ++ ++ if (converged) ++ { ++ step--; /* we never took that last step in this case */ ++ ++ } ++ if (s_min->fmax > inputrec->em_tol) ++ { ++ if (MASTER(cr)) ++ { ++ warn_step(stderr, inputrec->em_tol, step-1 == number_steps, FALSE); ++ warn_step(fplog, inputrec->em_tol, step-1 == number_steps, FALSE); ++ } ++ converged = FALSE; ++ } ++ ++ if (MASTER(cr)) ++ { ++ /* If we printed energy and/or logfile last step (which was the last step) ++ * we don't have to do it again, but otherwise print the final values. ++ */ ++ if (!do_log) ++ { ++ /* Write final value to log since we didn't do anything the last step */ ++ print_ebin_header(fplog, step, step, s_min->s.lambda[efptFEP]); ++ } ++ if (!do_ene || !do_log) ++ { ++ /* Write final energy file entries */ ++ print_ebin(mdoutf_get_fp_ene(outf), !do_ene, FALSE, FALSE, ++ !do_log ? fplog : NULL, step, step, eprNORMAL, ++ TRUE, mdebin, fcd, &(top_global->groups), &(inputrec->opts)); ++ } ++ } ++ ++ /* Print some stuff... */ ++ if (MASTER(cr)) ++ { ++ fprintf(stderr, "\nwriting lowest energy coordinates.\n"); ++ } ++ ++ /* IMPORTANT! ++ * For accurate normal mode calculation it is imperative that we ++ * store the last conformation into the full precision binary trajectory. ++ * ++ * However, we should only do it if we did NOT already write this step ++ * above (which we did if do_x or do_f was true). ++ */ ++ do_x = !do_per_step(step, inputrec->nstxout); ++ do_f = (inputrec->nstfout > 0 && !do_per_step(step, inputrec->nstfout)); ++ ++ write_em_traj(fplog, cr, outf, do_x, do_f, ftp2fn(efSTO, nfile, fnm), ++ top_global, inputrec, step, ++ s_min, state_global, f_global); ++ ++ fnormn = s_min->fnorm/sqrt(state_global->natoms); ++ ++ if (MASTER(cr)) ++ { ++ print_converged(stderr, CG, inputrec->em_tol, step, converged, number_steps, ++ s_min->epot, s_min->fmax, s_min->a_fmax, fnormn); ++ print_converged(fplog, CG, inputrec->em_tol, step, converged, number_steps, ++ s_min->epot, s_min->fmax, s_min->a_fmax, fnormn); ++ ++ fprintf(fplog, "\nPerformed %d energy evaluations in total.\n", neval); ++ } ++ ++ finish_em(cr, outf, walltime_accounting, wcycle); ++ ++ /* To print the actual number of steps we needed somewhere */ ++ walltime_accounting_set_nsteps_done(walltime_accounting, step); ++ ++ return 0; ++} /* That's all folks */ ++ ++ ++double do_lbfgs(FILE *fplog, t_commrec *cr, ++ int nfile, const t_filenm fnm[], ++ const output_env_t gmx_unused oenv, gmx_bool bVerbose, gmx_bool gmx_unused bCompact, ++ int gmx_unused nstglobalcomm, ++ gmx_vsite_t *vsite, gmx_constr_t constr, ++ int gmx_unused stepout, ++ t_inputrec *inputrec, ++ gmx_mtop_t *top_global, t_fcdata *fcd, ++ t_state *state, ++ t_mdatoms *mdatoms, ++ t_nrnb *nrnb, gmx_wallcycle_t wcycle, ++ gmx_edsam_t gmx_unused ed, ++ t_forcerec *fr, ++ int gmx_unused repl_ex_nst, int gmx_unused repl_ex_nex, int gmx_unused repl_ex_seed, ++ gmx_membed_t gmx_unused membed, ++ real gmx_unused cpt_period, real gmx_unused max_hours, ++ const char gmx_unused *deviceOptions, ++ int imdport, ++ unsigned long gmx_unused Flags, ++ gmx_walltime_accounting_t walltime_accounting) ++{ ++ static const char *LBFGS = "Low-Memory BFGS Minimizer"; ++ em_state_t ems; ++ gmx_localtop_t *top; ++ gmx_enerdata_t *enerd; ++ rvec *f; ++ gmx_global_stat_t gstat; ++ t_graph *graph; ++ rvec *f_global; ++ int ncorr, nmaxcorr, point, cp, neval, nminstep; ++ double stepsize, gpa, gpb, gpc, tmp, minstep; ++ real *rho, *alpha, *ff, *xx, *p, *s, *lastx, *lastf, **dx, **dg; ++ real *xa, *xb, *xc, *fa, *fb, *fc, *xtmp, *ftmp; ++ real a, b, c, maxdelta, delta; ++ real diag, Epot0, Epot, EpotA, EpotB, EpotC; ++ real dgdx, dgdg, sq, yr, beta; ++ t_mdebin *mdebin; ++ gmx_bool converged, first; ++ rvec mu_tot; ++ real fnorm, fmax; ++ gmx_bool do_log, do_ene, do_x, do_f, foundlower, *frozen; ++ tensor vir, pres; ++ int start, end, number_steps; ++ gmx_mdoutf_t outf; ++ int i, k, m, n, nfmax, gf, step; ++ int mdof_flags; ++ /* not used */ ++ real terminate; ++ ++ if (PAR(cr)) ++ { ++ gmx_fatal(FARGS, "Cannot do parallel L-BFGS Minimization - yet.\n"); ++ } ++ ++ if (NULL != constr) ++ { ++ gmx_fatal(FARGS, "The combination of constraints and L-BFGS minimization is not implemented. Either do not use constraints, or use another minimizer (e.g. steepest descent)."); ++ } ++ ++ n = 3*state->natoms; ++ nmaxcorr = inputrec->nbfgscorr; ++ ++ /* Allocate memory */ ++ /* Use pointers to real so we dont have to loop over both atoms and ++ * dimensions all the time... ++ * x/f are allocated as rvec *, so make new x0/f0 pointers-to-real ++ * that point to the same memory. ++ */ ++ snew(xa, n); ++ snew(xb, n); ++ snew(xc, n); ++ snew(fa, n); ++ snew(fb, n); ++ snew(fc, n); ++ snew(frozen, n); ++ ++ snew(p, n); ++ snew(lastx, n); ++ snew(lastf, n); ++ snew(rho, nmaxcorr); ++ snew(alpha, nmaxcorr); ++ ++ snew(dx, nmaxcorr); ++ for (i = 0; i < nmaxcorr; i++) ++ { ++ snew(dx[i], n); ++ } ++ ++ snew(dg, nmaxcorr); ++ for (i = 0; i < nmaxcorr; i++) ++ { ++ snew(dg[i], n); ++ } ++ ++ step = 0; ++ neval = 0; ++ ++ /* Init em */ ++ init_em(fplog, LBFGS, cr, inputrec, ++ state, top_global, &ems, &top, &f, &f_global, ++ nrnb, mu_tot, fr, &enerd, &graph, mdatoms, &gstat, vsite, constr, ++ nfile, fnm, &outf, &mdebin, imdport, Flags, wcycle); ++ /* Do_lbfgs is not completely updated like do_steep and do_cg, ++ * so we free some memory again. ++ */ ++ sfree(ems.s.x); ++ sfree(ems.f); ++ ++ xx = (real *)state->x; ++ ff = (real *)f; ++ ++ start = 0; ++ end = mdatoms->homenr; ++ ++ /* Print to log file */ ++ print_em_start(fplog, cr, walltime_accounting, wcycle, LBFGS); ++ ++ do_log = do_ene = do_x = do_f = TRUE; ++ ++ /* Max number of steps */ ++ number_steps = inputrec->nsteps; ++ ++ /* Create a 3*natoms index to tell whether each degree of freedom is frozen */ ++ gf = 0; ++ for (i = start; i < end; i++) ++ { ++ if (mdatoms->cFREEZE) ++ { ++ gf = mdatoms->cFREEZE[i]; ++ } ++ for (m = 0; m < DIM; m++) ++ { ++ frozen[3*i+m] = inputrec->opts.nFreeze[gf][m]; ++ } ++ } ++ if (MASTER(cr)) ++ { ++ sp_header(stderr, LBFGS, inputrec->em_tol, number_steps); ++ } ++ if (fplog) ++ { ++ sp_header(fplog, LBFGS, inputrec->em_tol, number_steps); ++ } ++ ++ if (vsite) ++ { ++ construct_vsites(vsite, state->x, 1, NULL, ++ top->idef.iparams, top->idef.il, ++ fr->ePBC, fr->bMolPBC, cr, state->box); ++ } ++ ++ /* Call the force routine and some auxiliary (neighboursearching etc.) */ ++ /* do_force always puts the charge groups in the box and shifts again ++ * We do not unshift, so molecules are always whole ++ */ ++ neval++; ++ ems.s.x = state->x; ++ ems.f = f; ++ evaluate_energy(fplog, cr, ++ top_global, &ems, top, ++ inputrec, nrnb, wcycle, gstat, ++ vsite, constr, fcd, graph, mdatoms, fr, ++ mu_tot, enerd, vir, pres, -1, TRUE); ++ where(); ++ ++ if (MASTER(cr)) ++ { ++ /* Copy stuff to the energy bin for easy printing etc. */ ++ upd_mdebin(mdebin, FALSE, FALSE, (double)step, ++ mdatoms->tmass, enerd, state, inputrec->fepvals, inputrec->expandedvals, state->box, ++ NULL, NULL, vir, pres, NULL, mu_tot, constr); ++ ++ print_ebin_header(fplog, step, step, state->lambda[efptFEP]); ++ print_ebin(mdoutf_get_fp_ene(outf), TRUE, FALSE, FALSE, fplog, step, step, eprNORMAL, ++ TRUE, mdebin, fcd, &(top_global->groups), &(inputrec->opts)); ++ } ++ where(); ++ ++ /* This is the starting energy */ ++ Epot = enerd->term[F_EPOT]; ++ ++ fnorm = ems.fnorm; ++ fmax = ems.fmax; ++ nfmax = ems.a_fmax; ++ ++ /* Set the initial step. ++ * since it will be multiplied by the non-normalized search direction ++ * vector (force vector the first time), we scale it by the ++ * norm of the force. ++ */ ++ ++ if (MASTER(cr)) ++ { ++ fprintf(stderr, "Using %d BFGS correction steps.\n\n", nmaxcorr); ++ fprintf(stderr, " F-max = %12.5e on atom %d\n", fmax, nfmax+1); ++ fprintf(stderr, " F-Norm = %12.5e\n", fnorm/sqrt(state->natoms)); ++ fprintf(stderr, "\n"); ++ /* and copy to the log file too... */ ++ fprintf(fplog, "Using %d BFGS correction steps.\n\n", nmaxcorr); ++ fprintf(fplog, " F-max = %12.5e on atom %d\n", fmax, nfmax+1); ++ fprintf(fplog, " F-Norm = %12.5e\n", fnorm/sqrt(state->natoms)); ++ fprintf(fplog, "\n"); ++ } ++ ++ point = 0; ++ for (i = 0; i < n; i++) ++ { ++ if (!frozen[i]) ++ { ++ dx[point][i] = ff[i]; /* Initial search direction */ ++ } ++ else ++ { ++ dx[point][i] = 0; ++ } ++ } ++ ++ stepsize = 1.0/fnorm; ++ converged = FALSE; ++ ++ /* Start the loop over BFGS steps. ++ * Each successful step is counted, and we continue until ++ * we either converge or reach the max number of steps. ++ */ ++ ++ ncorr = 0; ++ ++ /* Set the gradient from the force */ ++ converged = FALSE; ++ for (step = 0; (number_steps < 0 || (number_steps >= 0 && step <= number_steps)) && !converged; step++) ++ { ++ ++ /* Write coordinates if necessary */ ++ do_x = do_per_step(step, inputrec->nstxout); ++ do_f = do_per_step(step, inputrec->nstfout); ++ ++ mdof_flags = 0; ++ if (do_x) ++ { ++ mdof_flags |= MDOF_X; ++ } ++ ++ if (do_f) ++ { ++ mdof_flags |= MDOF_F; ++ } ++ ++ if (inputrec->bIMD) ++ { ++ mdof_flags |= MDOF_IMD; ++ } ++ ++ mdoutf_write_to_trajectory_files(fplog, cr, outf, mdof_flags, ++ top_global, step, (real)step, state, state, f, f); ++ ++ /* Do the linesearching in the direction dx[point][0..(n-1)] */ ++ ++ /* pointer to current direction - point=0 first time here */ ++ s = dx[point]; ++ ++ /* calculate line gradient */ ++ for (gpa = 0, i = 0; i < n; i++) ++ { ++ gpa -= s[i]*ff[i]; ++ } ++ ++ /* Calculate minimum allowed stepsize, before the average (norm) ++ * relative change in coordinate is smaller than precision ++ */ ++ for (minstep = 0, i = 0; i < n; i++) ++ { ++ tmp = fabs(xx[i]); ++ if (tmp < 1.0) ++ { ++ tmp = 1.0; ++ } ++ tmp = s[i]/tmp; ++ minstep += tmp*tmp; ++ } ++ minstep = GMX_REAL_EPS/sqrt(minstep/n); ++ ++ if (stepsize < minstep) ++ { ++ converged = TRUE; ++ break; ++ } ++ ++ /* Store old forces and coordinates */ ++ for (i = 0; i < n; i++) ++ { ++ lastx[i] = xx[i]; ++ lastf[i] = ff[i]; ++ } ++ Epot0 = Epot; ++ ++ first = TRUE; ++ ++ for (i = 0; i < n; i++) ++ { ++ xa[i] = xx[i]; ++ } ++ ++ /* Take a step downhill. ++ * In theory, we should minimize the function along this direction. ++ * That is quite possible, but it turns out to take 5-10 function evaluations ++ * for each line. However, we dont really need to find the exact minimum - ++ * it is much better to start a new BFGS step in a modified direction as soon ++ * as we are close to it. This will save a lot of energy evaluations. ++ * ++ * In practice, we just try to take a single step. ++ * If it worked (i.e. lowered the energy), we increase the stepsize but ++ * the continue straight to the next BFGS step without trying to find any minimum. ++ * If it didn't work (higher energy), there must be a minimum somewhere between ++ * the old position and the new one. ++ * ++ * Due to the finite numerical accuracy, it turns out that it is a good idea ++ * to even accept a SMALL increase in energy, if the derivative is still downhill. ++ * This leads to lower final energies in the tests I've done. / Erik ++ */ ++ foundlower = FALSE; ++ EpotA = Epot0; ++ a = 0.0; ++ c = a + stepsize; /* reference position along line is zero */ ++ ++ /* Check stepsize first. We do not allow displacements ++ * larger than emstep. ++ */ ++ do ++ { ++ c = a + stepsize; ++ maxdelta = 0; ++ for (i = 0; i < n; i++) ++ { ++ delta = c*s[i]; ++ if (delta > maxdelta) ++ { ++ maxdelta = delta; ++ } ++ } ++ if (maxdelta > inputrec->em_stepsize) ++ { ++ stepsize *= 0.1; ++ } ++ } ++ while (maxdelta > inputrec->em_stepsize); ++ ++ /* Take a trial step */ ++ for (i = 0; i < n; i++) ++ { ++ xc[i] = lastx[i] + c*s[i]; ++ } ++ ++ neval++; ++ /* Calculate energy for the trial step */ ++ ems.s.x = (rvec *)xc; ++ ems.f = (rvec *)fc; ++ evaluate_energy(fplog, cr, ++ top_global, &ems, top, ++ inputrec, nrnb, wcycle, gstat, ++ vsite, constr, fcd, graph, mdatoms, fr, ++ mu_tot, enerd, vir, pres, step, FALSE); ++ EpotC = ems.epot; ++ ++ /* Calc derivative along line */ ++ for (gpc = 0, i = 0; i < n; i++) ++ { ++ gpc -= s[i]*fc[i]; /* f is negative gradient, thus the sign */ ++ } ++ /* Sum the gradient along the line across CPUs */ ++ if (PAR(cr)) ++ { ++ gmx_sumd(1, &gpc, cr); ++ } ++ ++ /* This is the max amount of increase in energy we tolerate */ ++ tmp = sqrt(GMX_REAL_EPS)*fabs(EpotA); ++ ++ /* Accept the step if the energy is lower, or if it is not significantly higher ++ * and the line derivative is still negative. ++ */ ++ if (EpotC < EpotA || (gpc < 0 && EpotC < (EpotA+tmp))) ++ { ++ foundlower = TRUE; ++ /* Great, we found a better energy. Increase step for next iteration ++ * if we are still going down, decrease it otherwise ++ */ ++ if (gpc < 0) ++ { ++ stepsize *= 1.618034; /* The golden section */ ++ } ++ else ++ { ++ stepsize *= 0.618034; /* 1/golden section */ ++ } ++ } ++ else ++ { ++ /* New energy is the same or higher. We will have to do some work ++ * to find a smaller value in the interval. Take smaller step next time! ++ */ ++ foundlower = FALSE; ++ stepsize *= 0.618034; ++ } ++ ++ /* OK, if we didn't find a lower value we will have to locate one now - there must ++ * be one in the interval [a=0,c]. ++ * The same thing is valid here, though: Don't spend dozens of iterations to find ++ * the line minimum. We try to interpolate based on the derivative at the endpoints, ++ * and only continue until we find a lower value. In most cases this means 1-2 iterations. ++ * ++ * I also have a safeguard for potentially really patological functions so we never ++ * take more than 20 steps before we give up ... ++ * ++ * If we already found a lower value we just skip this step and continue to the update. ++ */ ++ ++ if (!foundlower) ++ { ++ ++ nminstep = 0; ++ do ++ { ++ /* Select a new trial point. ++ * If the derivatives at points a & c have different sign we interpolate to zero, ++ * otherwise just do a bisection. ++ */ ++ ++ if (gpa < 0 && gpc > 0) ++ { ++ b = a + gpa*(a-c)/(gpc-gpa); ++ } ++ else ++ { ++ b = 0.5*(a+c); ++ } ++ ++ /* safeguard if interpolation close to machine accuracy causes errors: ++ * never go outside the interval ++ */ ++ if (b <= a || b >= c) ++ { ++ b = 0.5*(a+c); ++ } ++ ++ /* Take a trial step */ ++ for (i = 0; i < n; i++) ++ { ++ xb[i] = lastx[i] + b*s[i]; ++ } ++ ++ neval++; ++ /* Calculate energy for the trial step */ ++ ems.s.x = (rvec *)xb; ++ ems.f = (rvec *)fb; ++ evaluate_energy(fplog, cr, ++ top_global, &ems, top, ++ inputrec, nrnb, wcycle, gstat, ++ vsite, constr, fcd, graph, mdatoms, fr, ++ mu_tot, enerd, vir, pres, step, FALSE); ++ EpotB = ems.epot; ++ ++ fnorm = ems.fnorm; ++ ++ for (gpb = 0, i = 0; i < n; i++) ++ { ++ gpb -= s[i]*fb[i]; /* f is negative gradient, thus the sign */ ++ ++ } ++ /* Sum the gradient along the line across CPUs */ ++ if (PAR(cr)) ++ { ++ gmx_sumd(1, &gpb, cr); ++ } ++ ++ /* Keep one of the intervals based on the value of the derivative at the new point */ ++ if (gpb > 0) ++ { ++ /* Replace c endpoint with b */ ++ EpotC = EpotB; ++ c = b; ++ gpc = gpb; ++ /* swap coord pointers b/c */ ++ xtmp = xb; ++ ftmp = fb; ++ xb = xc; ++ fb = fc; ++ xc = xtmp; ++ fc = ftmp; ++ } ++ else ++ { ++ /* Replace a endpoint with b */ ++ EpotA = EpotB; ++ a = b; ++ gpa = gpb; ++ /* swap coord pointers a/b */ ++ xtmp = xb; ++ ftmp = fb; ++ xb = xa; ++ fb = fa; ++ xa = xtmp; ++ fa = ftmp; ++ } ++ ++ /* ++ * Stop search as soon as we find a value smaller than the endpoints, ++ * or if the tolerance is below machine precision. ++ * Never run more than 20 steps, no matter what. ++ */ ++ nminstep++; ++ } ++ while ((EpotB > EpotA || EpotB > EpotC) && (nminstep < 20)); ++ ++ if (fabs(EpotB-Epot0) < GMX_REAL_EPS || nminstep >= 20) ++ { ++ /* OK. We couldn't find a significantly lower energy. ++ * If ncorr==0 this was steepest descent, and then we give up. ++ * If not, reset memory to restart as steepest descent before quitting. ++ */ ++ if (ncorr == 0) ++ { ++ /* Converged */ ++ converged = TRUE; ++ break; ++ } ++ else ++ { ++ /* Reset memory */ ++ ncorr = 0; ++ /* Search in gradient direction */ ++ for (i = 0; i < n; i++) ++ { ++ dx[point][i] = ff[i]; ++ } ++ /* Reset stepsize */ ++ stepsize = 1.0/fnorm; ++ continue; ++ } ++ } ++ ++ /* Select min energy state of A & C, put the best in xx/ff/Epot ++ */ ++ if (EpotC < EpotA) ++ { ++ Epot = EpotC; ++ /* Use state C */ ++ for (i = 0; i < n; i++) ++ { ++ xx[i] = xc[i]; ++ ff[i] = fc[i]; ++ } ++ stepsize = c; ++ } ++ else ++ { ++ Epot = EpotA; ++ /* Use state A */ ++ for (i = 0; i < n; i++) ++ { ++ xx[i] = xa[i]; ++ ff[i] = fa[i]; ++ } ++ stepsize = a; ++ } ++ ++ } ++ else ++ { ++ /* found lower */ ++ Epot = EpotC; ++ /* Use state C */ ++ for (i = 0; i < n; i++) ++ { ++ xx[i] = xc[i]; ++ ff[i] = fc[i]; ++ } ++ stepsize = c; ++ } ++ ++ /* Update the memory information, and calculate a new ++ * approximation of the inverse hessian ++ */ ++ ++ /* Have new data in Epot, xx, ff */ ++ if (ncorr < nmaxcorr) ++ { ++ ncorr++; ++ } ++ ++ for (i = 0; i < n; i++) ++ { ++ dg[point][i] = lastf[i]-ff[i]; ++ dx[point][i] *= stepsize; ++ } ++ ++ dgdg = 0; ++ dgdx = 0; ++ for (i = 0; i < n; i++) ++ { ++ dgdg += dg[point][i]*dg[point][i]; ++ dgdx += dg[point][i]*dx[point][i]; ++ } ++ ++ diag = dgdx/dgdg; ++ ++ rho[point] = 1.0/dgdx; ++ point++; ++ ++ if (point >= nmaxcorr) ++ { ++ point = 0; ++ } ++ ++ /* Update */ ++ for (i = 0; i < n; i++) ++ { ++ p[i] = ff[i]; ++ } ++ ++ cp = point; ++ ++ /* Recursive update. First go back over the memory points */ ++ for (k = 0; k < ncorr; k++) ++ { ++ cp--; ++ if (cp < 0) ++ { ++ cp = ncorr-1; ++ } ++ ++ sq = 0; ++ for (i = 0; i < n; i++) ++ { ++ sq += dx[cp][i]*p[i]; ++ } ++ ++ alpha[cp] = rho[cp]*sq; ++ ++ for (i = 0; i < n; i++) ++ { ++ p[i] -= alpha[cp]*dg[cp][i]; ++ } ++ } ++ ++ for (i = 0; i < n; i++) ++ { ++ p[i] *= diag; ++ } ++ ++ /* And then go forward again */ ++ for (k = 0; k < ncorr; k++) ++ { ++ yr = 0; ++ for (i = 0; i < n; i++) ++ { ++ yr += p[i]*dg[cp][i]; ++ } ++ ++ beta = rho[cp]*yr; ++ beta = alpha[cp]-beta; ++ ++ for (i = 0; i < n; i++) ++ { ++ p[i] += beta*dx[cp][i]; ++ } ++ ++ cp++; ++ if (cp >= ncorr) ++ { ++ cp = 0; ++ } ++ } ++ ++ for (i = 0; i < n; i++) ++ { ++ if (!frozen[i]) ++ { ++ dx[point][i] = p[i]; ++ } ++ else ++ { ++ dx[point][i] = 0; ++ } ++ } ++ ++ stepsize = 1.0; ++ ++ /* Test whether the convergence criterion is met */ ++ get_f_norm_max(cr, &(inputrec->opts), mdatoms, f, &fnorm, &fmax, &nfmax); ++ ++ /* Print it if necessary */ ++ if (MASTER(cr)) ++ { ++ if (bVerbose) ++ { ++ fprintf(stderr, "\rStep %d, Epot=%12.6e, Fnorm=%9.3e, Fmax=%9.3e (atom %d)\n", ++ step, Epot, fnorm/sqrt(state->natoms), fmax, nfmax+1); ++ } ++ /* Store the new (lower) energies */ ++ upd_mdebin(mdebin, FALSE, FALSE, (double)step, ++ mdatoms->tmass, enerd, state, inputrec->fepvals, inputrec->expandedvals, state->box, ++ NULL, NULL, vir, pres, NULL, mu_tot, constr); ++ do_log = do_per_step(step, inputrec->nstlog); ++ do_ene = do_per_step(step, inputrec->nstenergy); ++ if (do_log) ++ { ++ print_ebin_header(fplog, step, step, state->lambda[efptFEP]); ++ } ++ print_ebin(mdoutf_get_fp_ene(outf), do_ene, FALSE, FALSE, ++ do_log ? fplog : NULL, step, step, eprNORMAL, ++ TRUE, mdebin, fcd, &(top_global->groups), &(inputrec->opts)); ++ } ++ ++ /* Send x and E to IMD client, if bIMD is TRUE. */ ++ if (do_IMD(inputrec->bIMD, step, cr, TRUE, state->box, state->x, inputrec, 0, wcycle) && MASTER(cr)) ++ { ++ IMD_send_positions(inputrec->imd); ++ } ++ ++ /* Stop when the maximum force lies below tolerance. ++ * If we have reached machine precision, converged is already set to true. ++ */ ++ ++ converged = converged || (fmax < inputrec->em_tol); ++ ++ } /* End of the loop */ ++ ++ /* IMD cleanup, if bIMD is TRUE. */ ++ IMD_finalize(inputrec->bIMD, inputrec->imd); ++ ++ if (converged) ++ { ++ step--; /* we never took that last step in this case */ ++ ++ } ++ if (fmax > inputrec->em_tol) ++ { ++ if (MASTER(cr)) ++ { ++ warn_step(stderr, inputrec->em_tol, step-1 == number_steps, FALSE); ++ warn_step(fplog, inputrec->em_tol, step-1 == number_steps, FALSE); ++ } ++ converged = FALSE; ++ } ++ ++ /* If we printed energy and/or logfile last step (which was the last step) ++ * we don't have to do it again, but otherwise print the final values. ++ */ ++ if (!do_log) /* Write final value to log since we didn't do anythin last step */ ++ { ++ print_ebin_header(fplog, step, step, state->lambda[efptFEP]); ++ } ++ if (!do_ene || !do_log) /* Write final energy file entries */ ++ { ++ print_ebin(mdoutf_get_fp_ene(outf), !do_ene, FALSE, FALSE, ++ !do_log ? fplog : NULL, step, step, eprNORMAL, ++ TRUE, mdebin, fcd, &(top_global->groups), &(inputrec->opts)); ++ } ++ ++ /* Print some stuff... */ ++ if (MASTER(cr)) ++ { ++ fprintf(stderr, "\nwriting lowest energy coordinates.\n"); ++ } ++ ++ /* IMPORTANT! ++ * For accurate normal mode calculation it is imperative that we ++ * store the last conformation into the full precision binary trajectory. ++ * ++ * However, we should only do it if we did NOT already write this step ++ * above (which we did if do_x or do_f was true). ++ */ ++ do_x = !do_per_step(step, inputrec->nstxout); ++ do_f = !do_per_step(step, inputrec->nstfout); ++ write_em_traj(fplog, cr, outf, do_x, do_f, ftp2fn(efSTO, nfile, fnm), ++ top_global, inputrec, step, ++ &ems, state, f); ++ ++ if (MASTER(cr)) ++ { ++ print_converged(stderr, LBFGS, inputrec->em_tol, step, converged, ++ number_steps, Epot, fmax, nfmax, fnorm/sqrt(state->natoms)); ++ print_converged(fplog, LBFGS, inputrec->em_tol, step, converged, ++ number_steps, Epot, fmax, nfmax, fnorm/sqrt(state->natoms)); ++ ++ fprintf(fplog, "\nPerformed %d energy evaluations in total.\n", neval); ++ } ++ ++ finish_em(cr, outf, walltime_accounting, wcycle); ++ ++ /* To print the actual number of steps we needed somewhere */ ++ walltime_accounting_set_nsteps_done(walltime_accounting, step); ++ ++ return 0; ++} /* That's all folks */ ++ ++ ++double do_steep(FILE *fplog, t_commrec *cr, ++ int nfile, const t_filenm fnm[], ++ const output_env_t gmx_unused oenv, gmx_bool bVerbose, gmx_bool gmx_unused bCompact, ++ int gmx_unused nstglobalcomm, ++ gmx_vsite_t *vsite, gmx_constr_t constr, ++ int gmx_unused stepout, ++ t_inputrec *inputrec, ++ gmx_mtop_t *top_global, t_fcdata *fcd, ++ t_state *state_global, ++ t_mdatoms *mdatoms, ++ t_nrnb *nrnb, gmx_wallcycle_t wcycle, ++ gmx_edsam_t gmx_unused ed, ++ t_forcerec *fr, ++ int gmx_unused repl_ex_nst, int gmx_unused repl_ex_nex, int gmx_unused repl_ex_seed, ++ gmx_membed_t gmx_unused membed, ++ real gmx_unused cpt_period, real gmx_unused max_hours, ++ const char gmx_unused *deviceOptions, ++ int imdport, ++ unsigned long gmx_unused Flags, ++ gmx_walltime_accounting_t walltime_accounting) ++{ ++ const char *SD = "Steepest Descents"; ++ em_state_t *s_min, *s_try; ++ rvec *f_global; ++ gmx_localtop_t *top; ++ gmx_enerdata_t *enerd; ++ rvec *f; ++ gmx_global_stat_t gstat; ++ t_graph *graph; ++ real stepsize, constepsize; ++ real ustep, fnormn; ++ gmx_mdoutf_t outf; ++ t_mdebin *mdebin; ++ gmx_bool bDone, bAbort, do_x, do_f; ++ tensor vir, pres; ++ rvec mu_tot; ++ int nsteps; ++ int count = 0; ++ int steps_accepted = 0; ++ /* not used */ ++ real terminate = 0; ++ ++ s_min = init_em_state(); ++ s_try = init_em_state(); ++ ++ /* Init em and store the local state in s_try */ ++ init_em(fplog, SD, cr, inputrec, ++ state_global, top_global, s_try, &top, &f, &f_global, ++ nrnb, mu_tot, fr, &enerd, &graph, mdatoms, &gstat, vsite, constr, ++ nfile, fnm, &outf, &mdebin, imdport, Flags, wcycle); ++ ++ /* Print to log file */ ++ print_em_start(fplog, cr, walltime_accounting, wcycle, SD); ++ ++ /* Set variables for stepsize (in nm). This is the largest ++ * step that we are going to make in any direction. ++ */ ++ ustep = inputrec->em_stepsize; ++ stepsize = 0; ++ ++ /* Max number of steps */ ++ nsteps = inputrec->nsteps; ++ ++ if (MASTER(cr)) ++ { ++ /* Print to the screen */ ++ sp_header(stderr, SD, inputrec->em_tol, nsteps); ++ } ++ if (fplog) ++ { ++ sp_header(fplog, SD, inputrec->em_tol, nsteps); ++ } ++ ++ /**** HERE STARTS THE LOOP **** ++ * count is the counter for the number of steps ++ * bDone will be TRUE when the minimization has converged ++ * bAbort will be TRUE when nsteps steps have been performed or when ++ * the stepsize becomes smaller than is reasonable for machine precision ++ */ ++ count = 0; ++ bDone = FALSE; ++ bAbort = FALSE; ++ while (!bDone && !bAbort) ++ { ++ bAbort = (nsteps >= 0) && (count == nsteps); ++ ++ /* set new coordinates, except for first step */ ++ if (count > 0) ++ { ++ do_em_step(cr, inputrec, mdatoms, fr->bMolPBC, ++ s_min, stepsize, s_min->f, s_try, ++ constr, top, nrnb, wcycle, count); ++ } ++ ++ evaluate_energy(fplog, cr, ++ top_global, s_try, top, ++ inputrec, nrnb, wcycle, gstat, ++ vsite, constr, fcd, graph, mdatoms, fr, ++ mu_tot, enerd, vir, pres, count, count == 0); ++ ++ if (MASTER(cr)) ++ { ++ print_ebin_header(fplog, count, count, s_try->s.lambda[efptFEP]); ++ } ++ ++ if (count == 0) ++ { ++ s_min->epot = s_try->epot + 1; ++ } ++ ++ /* Print it if necessary */ ++ if (MASTER(cr)) ++ { ++ if (bVerbose) ++ { ++ fprintf(stderr, "Step=%5d, Dmax= %6.1e nm, Epot= %12.5e Fmax= %11.5e, atom= %d%c", ++ count, ustep, s_try->epot, s_try->fmax, s_try->a_fmax+1, ++ (s_try->epot < s_min->epot) ? '\n' : '\r'); ++ } ++ ++ if (s_try->epot < s_min->epot) ++ { ++ /* Store the new (lower) energies */ ++ upd_mdebin(mdebin, FALSE, FALSE, (double)count, ++ mdatoms->tmass, enerd, &s_try->s, inputrec->fepvals, inputrec->expandedvals, ++ s_try->s.box, NULL, NULL, vir, pres, NULL, mu_tot, constr); ++ ++ /* Prepare IMD energy record, if bIMD is TRUE. */ ++ IMD_fill_energy_record(inputrec->bIMD, inputrec->imd, enerd, count, TRUE); ++ ++ print_ebin(mdoutf_get_fp_ene(outf), TRUE, ++ do_per_step(steps_accepted, inputrec->nstdisreout), ++ do_per_step(steps_accepted, inputrec->nstorireout), ++ fplog, count, count, eprNORMAL, TRUE, ++ mdebin, fcd, &(top_global->groups), &(inputrec->opts)); ++ fflush(fplog); ++ } ++ } ++ ++ /* Now if the new energy is smaller than the previous... ++ * or if this is the first step! ++ * or if we did random steps! ++ */ ++ ++ if ( (count == 0) || (s_try->epot < s_min->epot) ) ++ { ++ steps_accepted++; ++ ++ /* Test whether the convergence criterion is met... */ ++ bDone = (s_try->fmax < inputrec->em_tol); ++ ++ /* Copy the arrays for force, positions and energy */ ++ /* The 'Min' array always holds the coords and forces of the minimal ++ sampled energy */ ++ swap_em_state(s_min, s_try); ++ if (count > 0) ++ { ++ ustep *= 1.2; ++ } ++ ++ /* Write to trn, if necessary */ ++ do_x = do_per_step(steps_accepted, inputrec->nstxout); ++ do_f = do_per_step(steps_accepted, inputrec->nstfout); ++ write_em_traj(fplog, cr, outf, do_x, do_f, NULL, ++ top_global, inputrec, count, ++ s_min, state_global, f_global); ++ } ++ else ++ { ++ /* If energy is not smaller make the step smaller... */ ++ ustep *= 0.5; ++ ++ if (DOMAINDECOMP(cr) && s_min->s.ddp_count != cr->dd->ddp_count) ++ { ++ /* Reload the old state */ ++ em_dd_partition_system(fplog, count, cr, top_global, inputrec, ++ s_min, top, mdatoms, fr, vsite, constr, ++ nrnb, wcycle); ++ } ++ } ++ ++ /* Determine new step */ ++ stepsize = ustep/s_min->fmax; ++ ++ /* Check if stepsize is too small, with 1 nm as a characteristic length */ ++#ifdef GMX_DOUBLE ++ if (count == nsteps || ustep < 1e-12) ++#else ++ if (count == nsteps || ustep < 1e-6) ++#endif ++ { ++ if (MASTER(cr)) ++ { ++ warn_step(stderr, inputrec->em_tol, count == nsteps, constr != NULL); ++ warn_step(fplog, inputrec->em_tol, count == nsteps, constr != NULL); ++ } ++ bAbort = TRUE; ++ } ++ ++ /* Send IMD energies and positions, if bIMD is TRUE. */ ++ if (do_IMD(inputrec->bIMD, count, cr, TRUE, state_global->box, state_global->x, inputrec, 0, wcycle) && MASTER(cr)) ++ { ++ IMD_send_positions(inputrec->imd); ++ } ++ ++ count++; ++ } /* End of the loop */ ++ ++ /* IMD cleanup, if bIMD is TRUE. */ ++ IMD_finalize(inputrec->bIMD, inputrec->imd); ++ ++ /* Print some data... */ ++ if (MASTER(cr)) ++ { ++ fprintf(stderr, "\nwriting lowest energy coordinates.\n"); ++ } ++ write_em_traj(fplog, cr, outf, TRUE, inputrec->nstfout, ftp2fn(efSTO, nfile, fnm), ++ top_global, inputrec, count, ++ s_min, state_global, f_global); ++ ++ fnormn = s_min->fnorm/sqrt(state_global->natoms); ++ ++ if (MASTER(cr)) ++ { ++ print_converged(stderr, SD, inputrec->em_tol, count, bDone, nsteps, ++ s_min->epot, s_min->fmax, s_min->a_fmax, fnormn); ++ print_converged(fplog, SD, inputrec->em_tol, count, bDone, nsteps, ++ s_min->epot, s_min->fmax, s_min->a_fmax, fnormn); ++ } ++ ++ finish_em(cr, outf, walltime_accounting, wcycle); ++ ++ /* To print the actual number of steps we needed somewhere */ ++ inputrec->nsteps = count; ++ ++ walltime_accounting_set_nsteps_done(walltime_accounting, count); ++ ++ return 0; ++} /* That's all folks */ ++ ++ ++double do_nm(FILE *fplog, t_commrec *cr, ++ int nfile, const t_filenm fnm[], ++ const output_env_t gmx_unused oenv, gmx_bool bVerbose, gmx_bool gmx_unused bCompact, ++ int gmx_unused nstglobalcomm, ++ gmx_vsite_t *vsite, gmx_constr_t constr, ++ int gmx_unused stepout, ++ t_inputrec *inputrec, ++ gmx_mtop_t *top_global, t_fcdata *fcd, ++ t_state *state_global, ++ t_mdatoms *mdatoms, ++ t_nrnb *nrnb, gmx_wallcycle_t wcycle, ++ gmx_edsam_t gmx_unused ed, ++ t_forcerec *fr, ++ int gmx_unused repl_ex_nst, int gmx_unused repl_ex_nex, int gmx_unused repl_ex_seed, ++ gmx_membed_t gmx_unused membed, ++ real gmx_unused cpt_period, real gmx_unused max_hours, ++ const char gmx_unused *deviceOptions, ++ int imdport, ++ unsigned long gmx_unused Flags, ++ gmx_walltime_accounting_t walltime_accounting) ++{ ++ const char *NM = "Normal Mode Analysis"; ++ gmx_mdoutf_t outf; ++ int natoms, atom, d; ++ int nnodes, node; ++ rvec *f_global; ++ gmx_localtop_t *top; ++ gmx_enerdata_t *enerd; ++ rvec *f; ++ gmx_global_stat_t gstat; ++ t_graph *graph; ++ real t, t0, lambda, lam0; ++ gmx_bool bNS; ++ tensor vir, pres; ++ rvec mu_tot; ++ rvec *fneg, *dfdx; ++ gmx_bool bSparse; /* use sparse matrix storage format */ ++ size_t sz = 0; ++ gmx_sparsematrix_t * sparse_matrix = NULL; ++ real * full_matrix = NULL; ++ em_state_t * state_work; ++ ++ /* added with respect to mdrun */ ++ int i, j, k, row, col; ++ real der_range = 10.0*sqrt(GMX_REAL_EPS); ++ real x_min; ++ real fnorm, fmax; ++ ++ if (constr != NULL) ++ { ++ gmx_fatal(FARGS, "Constraints present with Normal Mode Analysis, this combination is not supported"); ++ } ++ ++ state_work = init_em_state(); ++ ++ /* Init em and store the local state in state_minimum */ ++ init_em(fplog, NM, cr, inputrec, ++ state_global, top_global, state_work, &top, ++ &f, &f_global, ++ nrnb, mu_tot, fr, &enerd, &graph, mdatoms, &gstat, vsite, constr, ++ nfile, fnm, &outf, NULL, imdport, Flags, wcycle); ++ ++ natoms = top_global->natoms; ++ snew(fneg, natoms); ++ snew(dfdx, natoms); ++ ++#ifndef GMX_DOUBLE ++ if (MASTER(cr)) ++ { ++ fprintf(stderr, ++ "NOTE: This version of Gromacs has been compiled in single precision,\n" ++ " which MIGHT not be accurate enough for normal mode analysis.\n" ++ " Gromacs now uses sparse matrix storage, so the memory requirements\n" ++ " are fairly modest even if you recompile in double precision.\n\n"); ++ } ++#endif ++ ++ /* Check if we can/should use sparse storage format. ++ * ++ * Sparse format is only useful when the Hessian itself is sparse, which it ++ * will be when we use a cutoff. ++ * For small systems (n<1000) it is easier to always use full matrix format, though. ++ */ ++ if (EEL_FULL(fr->eeltype) || fr->rlist == 0.0) ++ { ++ md_print_info(cr, fplog, "Non-cutoff electrostatics used, forcing full Hessian format.\n"); ++ bSparse = FALSE; ++ } ++ else if (top_global->natoms < 1000) ++ { ++ md_print_info(cr, fplog, "Small system size (N=%d), using full Hessian format.\n", top_global->natoms); ++ bSparse = FALSE; ++ } ++ else ++ { ++ md_print_info(cr, fplog, "Using compressed symmetric sparse Hessian format.\n"); ++ bSparse = TRUE; ++ } ++ ++ if (MASTER(cr)) ++ { ++ sz = DIM*top_global->natoms; ++ ++ fprintf(stderr, "Allocating Hessian memory...\n\n"); ++ ++ if (bSparse) ++ { ++ sparse_matrix = gmx_sparsematrix_init(sz); ++ sparse_matrix->compressed_symmetric = TRUE; ++ } ++ else ++ { ++ snew(full_matrix, sz*sz); ++ } ++ } ++ ++ /* Initial values */ ++ t0 = inputrec->init_t; ++ lam0 = inputrec->fepvals->init_lambda; ++ t = t0; ++ lambda = lam0; ++ ++ init_nrnb(nrnb); ++ ++ where(); ++ ++ /* Write start time and temperature */ ++ print_em_start(fplog, cr, walltime_accounting, wcycle, NM); ++ ++ /* fudge nr of steps to nr of atoms */ ++ inputrec->nsteps = natoms*2; ++ ++ if (MASTER(cr)) ++ { ++ fprintf(stderr, "starting normal mode calculation '%s'\n%d steps.\n\n", ++ *(top_global->name), (int)inputrec->nsteps); ++ } ++ ++ nnodes = cr->nnodes; ++ ++ /* Make evaluate_energy do a single node force calculation */ ++ cr->nnodes = 1; ++ evaluate_energy(fplog, cr, ++ top_global, state_work, top, ++ inputrec, nrnb, wcycle, gstat, ++ vsite, constr, fcd, graph, mdatoms, fr, ++ mu_tot, enerd, vir, pres, -1, TRUE); ++ cr->nnodes = nnodes; ++ ++ /* if forces are not small, warn user */ ++ get_state_f_norm_max(cr, &(inputrec->opts), mdatoms, state_work); ++ ++ md_print_info(cr, fplog, "Maximum force:%12.5e\n", state_work->fmax); ++ if (state_work->fmax > 1.0e-3) ++ { ++ md_print_info(cr, fplog, ++ "The force is probably not small enough to " ++ "ensure that you are at a minimum.\n" ++ "Be aware that negative eigenvalues may occur\n" ++ "when the resulting matrix is diagonalized.\n\n"); ++ } ++ ++ /*********************************************************** ++ * ++ * Loop over all pairs in matrix ++ * ++ * do_force called twice. Once with positive and ++ * once with negative displacement ++ * ++ ************************************************************/ ++ ++ /* Steps are divided one by one over the nodes */ ++ for (atom = cr->nodeid; atom < natoms; atom += nnodes) ++ { ++ ++ for (d = 0; d < DIM; d++) ++ { ++ x_min = state_work->s.x[atom][d]; ++ ++ state_work->s.x[atom][d] = x_min - der_range; ++ ++ /* Make evaluate_energy do a single node force calculation */ ++ cr->nnodes = 1; ++ evaluate_energy(fplog, cr, ++ top_global, state_work, top, ++ inputrec, nrnb, wcycle, gstat, ++ vsite, constr, fcd, graph, mdatoms, fr, ++ mu_tot, enerd, vir, pres, atom*2, FALSE); ++ ++ for (i = 0; i < natoms; i++) ++ { ++ copy_rvec(state_work->f[i], fneg[i]); ++ } ++ ++ state_work->s.x[atom][d] = x_min + der_range; ++ ++ evaluate_energy(fplog, cr, ++ top_global, state_work, top, ++ inputrec, nrnb, wcycle, gstat, ++ vsite, constr, fcd, graph, mdatoms, fr, ++ mu_tot, enerd, vir, pres, atom*2+1, FALSE); ++ cr->nnodes = nnodes; ++ ++ /* x is restored to original */ ++ state_work->s.x[atom][d] = x_min; ++ ++ for (j = 0; j < natoms; j++) ++ { ++ for (k = 0; (k < DIM); k++) ++ { ++ dfdx[j][k] = ++ -(state_work->f[j][k] - fneg[j][k])/(2*der_range); ++ } ++ } ++ ++ if (!MASTER(cr)) ++ { ++#ifdef GMX_MPI ++#ifdef GMX_DOUBLE ++#define mpi_type MPI_DOUBLE ++#else ++#define mpi_type MPI_FLOAT ++#endif ++ MPI_Send(dfdx[0], natoms*DIM, mpi_type, MASTERNODE(cr), cr->nodeid, ++ cr->mpi_comm_mygroup); ++#endif ++ } ++ else ++ { ++ for (node = 0; (node < nnodes && atom+node < natoms); node++) ++ { ++ if (node > 0) ++ { ++#ifdef GMX_MPI ++ MPI_Status stat; ++ MPI_Recv(dfdx[0], natoms*DIM, mpi_type, node, node, ++ cr->mpi_comm_mygroup, &stat); ++#undef mpi_type ++#endif ++ } ++ ++ row = (atom + node)*DIM + d; ++ ++ for (j = 0; j < natoms; j++) ++ { ++ for (k = 0; k < DIM; k++) ++ { ++ col = j*DIM + k; ++ ++ if (bSparse) ++ { ++ if (col >= row && dfdx[j][k] != 0.0) ++ { ++ gmx_sparsematrix_increment_value(sparse_matrix, ++ row, col, dfdx[j][k]); ++ } ++ } ++ else ++ { ++ full_matrix[row*sz+col] = dfdx[j][k]; ++ } ++ } ++ } ++ } ++ } ++ ++ if (bVerbose && fplog) ++ { ++ fflush(fplog); ++ } ++ } ++ /* write progress */ ++ if (MASTER(cr) && bVerbose) ++ { ++ fprintf(stderr, "\rFinished step %d out of %d", ++ min(atom+nnodes, natoms), natoms); ++ fflush(stderr); ++ } ++ } ++ ++ if (MASTER(cr)) ++ { ++ fprintf(stderr, "\n\nWriting Hessian...\n"); ++ gmx_mtxio_write(ftp2fn(efMTX, nfile, fnm), sz, sz, full_matrix, sparse_matrix); ++ } ++ ++ finish_em(cr, outf, walltime_accounting, wcycle); ++ ++ walltime_accounting_set_nsteps_done(walltime_accounting, natoms*2); ++ ++ return 0; ++} +diff --git a/src/programs/mdrun/md.c b/src/programs/mdrun/md.c +index 3d98d59..b34d23c 100644 +--- a/src/programs/mdrun/md.c ++++ b/src/programs/mdrun/md.c +@@ -96,6 +96,12 @@ + #include "gromacs/swap/swapcoords.h" + #include "gromacs/imd/imd.h" + ++/* PLUMED */ ++#include "../../../Plumed.h" ++extern int plumedswitch; ++extern plumed plumedmain; ++/* END PLUMED */ ++ + #ifdef GMX_FAHCORE + #include "corewrap.h" + #endif +@@ -224,6 +230,12 @@ double do_md(FILE *fplog, t_commrec *cr, int nfile, const t_filenm fnm[], + /* Interactive MD */ + gmx_bool bIMDstep = FALSE; + ++ /* PLUMED */ ++ int plumedNeedsEnergy=0; ++ int plumedWantsToStop=0; ++ matrix plumed_vir; ++ /* END PLUMED */ ++ + #ifdef GMX_FAHCORE + /* Temporary addition for FAHCORE checkpointing */ + int chkpt_ret; +@@ -651,6 +663,48 @@ double do_md(FILE *fplog, t_commrec *cr, int nfile, const t_filenm fnm[], + fprintf(fplog, "\n"); + } + ++ /* PLUMED */ ++ if(plumedswitch){ ++ /* detect plumed API version */ ++ int pversion=0; ++ plumed_cmd(plumedmain,"getApiVersion",&pversion); ++ /* setting kbT is only implemented with api>1) */ ++ real kbT=ir->opts.ref_t[0]*BOLTZ; ++ if(pversion>1) plumed_cmd(plumedmain,"setKbT",&kbT); ++ ++ if(cr->ms && cr->ms->nsim>1) { ++ if(MASTER(cr)) plumed_cmd(plumedmain,"GREX setMPIIntercomm",&cr->ms->mpi_comm_masters); ++ if(PAR(cr)){ ++ if(DOMAINDECOMP(cr)) { ++ plumed_cmd(plumedmain,"GREX setMPIIntracomm",&cr->dd->mpi_comm_all); ++ }else{ ++ plumed_cmd(plumedmain,"GREX setMPIIntracomm",&cr->mpi_comm_mysim); ++ } ++ } ++ plumed_cmd(plumedmain,"GREX init",NULL); ++ } ++ if(PAR(cr)){ ++ if(DOMAINDECOMP(cr)) { ++ plumed_cmd(plumedmain,"setMPIComm",&cr->dd->mpi_comm_all); ++ } ++ } ++ plumed_cmd(plumedmain,"setNatoms",&top_global->natoms); ++ plumed_cmd(plumedmain,"setMDEngine","gromacs"); ++ plumed_cmd(plumedmain,"setLog",fplog); ++ real real_delta_t; ++ real_delta_t=ir->delta_t; ++ plumed_cmd(plumedmain,"setTimestep",&real_delta_t); ++ plumed_cmd(plumedmain,"init",NULL); ++ ++ if(PAR(cr)){ ++ if(DOMAINDECOMP(cr)) { ++ plumed_cmd(plumedmain,"setAtomsNlocal",&cr->dd->nat_home); ++ plumed_cmd(plumedmain,"setAtomsGatindex",cr->dd->gatindex); ++ } ++ } ++ } ++ /* END PLUMED */ ++ + walltime_accounting_start(walltime_accounting); + wallcycle_start(wcycle, ewcRUN); + print_start(fplog, cr, walltime_accounting, "mdrun"); +@@ -955,6 +1009,13 @@ double do_md(FILE *fplog, t_commrec *cr, int nfile, const t_filenm fnm[], + do_verbose && !bPMETuneRunning); + wallcycle_stop(wcycle, ewcDOMDEC); + /* If using an iterative integrator, reallocate space to match the decomposition */ ++ ++ /* PLUMED */ ++ if(plumedswitch){ ++ plumed_cmd(plumedmain,"setAtomsNlocal",&cr->dd->nat_home); ++ plumed_cmd(plumedmain,"setAtomsGatindex",cr->dd->gatindex); ++ } ++ /* END PLUMED */ + } + } + +@@ -1078,12 +1139,45 @@ double do_md(FILE *fplog, t_commrec *cr, int nfile, const t_filenm fnm[], + * This is parallellized as well, and does communication too. + * Check comments in sim_util.c + */ ++ ++ /* PLUMED */ ++ plumedNeedsEnergy=0; ++ if(plumedswitch){ ++ long int lstep=step; plumed_cmd(plumedmain,"setStepLong",&lstep); ++ plumed_cmd(plumedmain,"setPositions",&state->x[0][0]); ++ plumed_cmd(plumedmain,"setMasses",&mdatoms->massT[0]); ++ plumed_cmd(plumedmain,"setCharges",&mdatoms->chargeA[0]); ++ plumed_cmd(plumedmain,"setBox",&state->box[0][0]); ++ plumed_cmd(plumedmain,"prepareCalc",NULL); ++ plumed_cmd(plumedmain,"setStopFlag",&plumedWantsToStop); ++ plumed_cmd(plumedmain,"setForces",&f[0][0]); ++ plumed_cmd(plumedmain,"isEnergyNeeded",&plumedNeedsEnergy); ++ clear_mat(plumed_vir); ++ plumed_cmd(plumedmain,"setVirial",&plumed_vir[0][0]); ++ } ++ /* END PLUMED */ + do_force(fplog, cr, ir, step, nrnb, wcycle, top, groups, + state->box, state->x, &state->hist, + f, force_vir, mdatoms, enerd, fcd, + state->lambda, graph, + fr, vsite, mu_tot, t, mdoutf_get_fp_field(outf), ed, bBornRadii, + (bNS ? GMX_FORCE_NS : 0) | force_flags); ++ /* PLUMED */ ++ if(plumedswitch){ ++ if(plumedNeedsEnergy){ ++ msmul(force_vir,2.0,plumed_vir); ++ plumed_cmd(plumedmain,"setEnergy",&enerd->term[F_EPOT]); ++ plumed_cmd(plumedmain,"performCalc",NULL); ++ msmul(plumed_vir,0.5,force_vir); ++ } else { ++ msmul(plumed_vir,0.5,plumed_vir); ++ m_add(force_vir,plumed_vir,force_vir); ++ } ++ if ((repl_ex_nst > 0) && (step > 0) && !bLastStep && ++ do_per_step(step,repl_ex_nst)) plumed_cmd(plumedmain,"GREX savePositions",NULL); ++ if(plumedWantsToStop) ir->nsteps=step_rel+1; ++ } ++ /* END PLUMED */ + } + + if (bVV && !bStartingFromCpt && !bRerunMD) +diff --git a/src/programs/mdrun/md.c.preplumed b/src/programs/mdrun/md.c.preplumed +new file mode 100644 +index 0000000..3d98d59 +--- /dev/null ++++ b/src/programs/mdrun/md.c.preplumed +@@ -0,0 +1,2058 @@ ++/* ++ * This file is part of the GROMACS molecular simulation package. ++ * ++ * Copyright (c) 1991-2000, University of Groningen, The Netherlands. ++ * Copyright (c) 2001-2004, The GROMACS development team. ++ * Copyright (c) 2011,2012,2013,2014, by the GROMACS development team, led by ++ * Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl, ++ * and including many others, as listed in the AUTHORS file in the ++ * top-level source directory and at http://www.gromacs.org. ++ * ++ * GROMACS 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; either version 2.1 ++ * of the License, or (at your option) any later version. ++ * ++ * GROMACS 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 ++ * Lesser General Public License for more details. ++ * ++ * You should have received a copy of the GNU Lesser General Public ++ * License along with GROMACS; if not, see ++ * http://www.gnu.org/licenses, or write to the Free Software Foundation, ++ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. ++ * ++ * If you want to redistribute modifications to GROMACS, please ++ * consider that scientific software is very special. Version ++ * control is crucial - bugs must be traceable. We will be happy to ++ * consider code for inclusion in the official distribution, but ++ * derived work must not be called official GROMACS. Details are found ++ * in the README & COPYING files - if they are missing, get the ++ * official version at http://www.gromacs.org. ++ * ++ * To help us fund GROMACS development, we humbly ask that you cite ++ * the research papers on the package. Check out http://www.gromacs.org. ++ */ ++#ifdef HAVE_CONFIG_H ++#include ++#endif ++ ++#include "typedefs.h" ++#include "gromacs/utility/smalloc.h" ++#include "sysstuff.h" ++#include "vec.h" ++#include "vcm.h" ++#include "mdebin.h" ++#include "nrnb.h" ++#include "calcmu.h" ++#include "index.h" ++#include "vsite.h" ++#include "update.h" ++#include "ns.h" ++#include "mdrun.h" ++#include "md_support.h" ++#include "md_logging.h" ++#include "network.h" ++#include "xvgr.h" ++#include "physics.h" ++#include "names.h" ++#include "force.h" ++#include "disre.h" ++#include "orires.h" ++#include "pme.h" ++#include "mdatoms.h" ++#include "repl_ex.h" ++#include "deform.h" ++#include "qmmm.h" ++#include "domdec.h" ++#include "domdec_network.h" ++#include "gromacs/gmxlib/topsort.h" ++#include "coulomb.h" ++#include "constr.h" ++#include "shellfc.h" ++#include "gromacs/gmxpreprocess/compute_io.h" ++#include "checkpoint.h" ++#include "mtop_util.h" ++#include "sighandler.h" ++#include "txtdump.h" ++#include "gromacs/utility/cstringutil.h" ++#include "pme_loadbal.h" ++#include "bondf.h" ++#include "membed.h" ++#include "types/nlistheuristics.h" ++#include "types/iteratedconstraints.h" ++#include "nbnxn_cuda_data_mgmt.h" ++ ++#include "gromacs/utility/gmxmpi.h" ++#include "gromacs/fileio/confio.h" ++#include "gromacs/fileio/trajectory_writing.h" ++#include "gromacs/fileio/trnio.h" ++#include "gromacs/fileio/trxio.h" ++#include "gromacs/fileio/xtcio.h" ++#include "gromacs/timing/wallcycle.h" ++#include "gromacs/timing/walltime_accounting.h" ++#include "gromacs/pulling/pull.h" ++#include "gromacs/swap/swapcoords.h" ++#include "gromacs/imd/imd.h" ++ ++#ifdef GMX_FAHCORE ++#include "corewrap.h" ++#endif ++ ++static void reset_all_counters(FILE *fplog, t_commrec *cr, ++ gmx_int64_t step, ++ gmx_int64_t *step_rel, t_inputrec *ir, ++ gmx_wallcycle_t wcycle, t_nrnb *nrnb, ++ gmx_walltime_accounting_t walltime_accounting, ++ nbnxn_cuda_ptr_t cu_nbv) ++{ ++ char sbuf[STEPSTRSIZE]; ++ ++ /* Reset all the counters related to performance over the run */ ++ md_print_warn(cr, fplog, "step %s: resetting all time and cycle counters\n", ++ gmx_step_str(step, sbuf)); ++ ++ if (cu_nbv) ++ { ++ nbnxn_cuda_reset_timings(cu_nbv); ++ } ++ ++ wallcycle_stop(wcycle, ewcRUN); ++ wallcycle_reset_all(wcycle); ++ if (DOMAINDECOMP(cr)) ++ { ++ reset_dd_statistics_counters(cr->dd); ++ } ++ init_nrnb(nrnb); ++ ir->init_step += *step_rel; ++ ir->nsteps -= *step_rel; ++ *step_rel = 0; ++ wallcycle_start(wcycle, ewcRUN); ++ walltime_accounting_start(walltime_accounting); ++ print_date_and_time(fplog, cr->nodeid, "Restarted time", gmx_gettime()); ++} ++ ++double do_md(FILE *fplog, t_commrec *cr, int nfile, const t_filenm fnm[], ++ const output_env_t oenv, gmx_bool bVerbose, gmx_bool bCompact, ++ int nstglobalcomm, ++ gmx_vsite_t *vsite, gmx_constr_t constr, ++ int stepout, t_inputrec *ir, ++ gmx_mtop_t *top_global, ++ t_fcdata *fcd, ++ t_state *state_global, ++ t_mdatoms *mdatoms, ++ t_nrnb *nrnb, gmx_wallcycle_t wcycle, ++ gmx_edsam_t ed, t_forcerec *fr, ++ int repl_ex_nst, int repl_ex_nex, int repl_ex_seed, gmx_membed_t membed, ++ real cpt_period, real max_hours, ++ const char gmx_unused *deviceOptions, ++ int imdport, ++ unsigned long Flags, ++ gmx_walltime_accounting_t walltime_accounting) ++{ ++ gmx_mdoutf_t outf = NULL; ++ gmx_int64_t step, step_rel; ++ double elapsed_time; ++ double t, t0, lam0[efptNR]; ++ gmx_bool bGStatEveryStep, bGStat, bCalcVir, bCalcEner; ++ gmx_bool bNS, bNStList, bSimAnn, bStopCM, bRerunMD, bNotLastFrame = FALSE, ++ bFirstStep, bStateFromCP, bStateFromTPX, bInitStep, bLastStep, ++ bBornRadii, bStartingFromCpt; ++ gmx_bool bDoDHDL = FALSE, bDoFEP = FALSE, bDoExpanded = FALSE; ++ gmx_bool do_ene, do_log, do_verbose, bRerunWarnNoV = TRUE, ++ bForceUpdate = FALSE, bCPT; ++ gmx_bool bMasterState; ++ int force_flags, cglo_flags; ++ tensor force_vir, shake_vir, total_vir, tmp_vir, pres; ++ int i, m; ++ t_trxstatus *status; ++ rvec mu_tot; ++ t_vcm *vcm; ++ t_state *bufstate = NULL; ++ matrix *scale_tot, pcoupl_mu, M, ebox; ++ gmx_nlheur_t nlh; ++ t_trxframe rerun_fr; ++ gmx_repl_ex_t repl_ex = NULL; ++ int nchkpt = 1; ++ gmx_localtop_t *top; ++ t_mdebin *mdebin = NULL; ++ t_state *state = NULL; ++ rvec *f_global = NULL; ++ gmx_enerdata_t *enerd; ++ rvec *f = NULL; ++ gmx_global_stat_t gstat; ++ gmx_update_t upd = NULL; ++ t_graph *graph = NULL; ++ globsig_t gs; ++ gmx_groups_t *groups; ++ gmx_ekindata_t *ekind, *ekind_save; ++ gmx_shellfc_t shellfc; ++ int count, nconverged = 0; ++ real timestep = 0; ++ double tcount = 0; ++ gmx_bool bConverged = TRUE, bOK, bSumEkinhOld, bDoReplEx, bExchanged, bNeedRepartition; ++ gmx_bool bAppend; ++ gmx_bool bResetCountersHalfMaxH = FALSE; ++ gmx_bool bVV, bIterativeCase, bFirstIterate, bTemp, bPres, bTrotter; ++ gmx_bool bUpdateDoLR; ++ real dvdl_constr; ++ rvec *cbuf = NULL; ++ matrix lastbox; ++ real veta_save, scalevir, tracevir; ++ real vetanew = 0; ++ int lamnew = 0; ++ /* for FEP */ ++ int nstfep; ++ double cycles; ++ real saved_conserved_quantity = 0; ++ real last_ekin = 0; ++ int iter_i; ++ t_extmass MassQ; ++ int **trotter_seq; ++ char sbuf[STEPSTRSIZE], sbuf2[STEPSTRSIZE]; ++ int handled_stop_condition = gmx_stop_cond_none; /* compare to get_stop_condition*/ ++ gmx_iterate_t iterate; ++ gmx_int64_t multisim_nsteps = -1; /* number of steps to do before first multisim ++ simulation stops. If equal to zero, don't ++ communicate any more between multisims.*/ ++ /* PME load balancing data for GPU kernels */ ++ pme_load_balancing_t pme_loadbal = NULL; ++ double cycles_pmes; ++ gmx_bool bPMETuneTry = FALSE, bPMETuneRunning = FALSE; ++ ++ /* Interactive MD */ ++ gmx_bool bIMDstep = FALSE; ++ ++#ifdef GMX_FAHCORE ++ /* Temporary addition for FAHCORE checkpointing */ ++ int chkpt_ret; ++#endif ++ ++ /* Check for special mdrun options */ ++ bRerunMD = (Flags & MD_RERUN); ++ bAppend = (Flags & MD_APPENDFILES); ++ if (Flags & MD_RESETCOUNTERSHALFWAY) ++ { ++ if (ir->nsteps > 0) ++ { ++ /* Signal to reset the counters half the simulation steps. */ ++ wcycle_set_reset_counters(wcycle, ir->nsteps/2); ++ } ++ /* Signal to reset the counters halfway the simulation time. */ ++ bResetCountersHalfMaxH = (max_hours > 0); ++ } ++ ++ /* md-vv uses averaged full step velocities for T-control ++ md-vv-avek uses averaged half step velocities for T-control (but full step ekin for P control) ++ md uses averaged half step kinetic energies to determine temperature unless defined otherwise by GMX_EKIN_AVE_VEL; */ ++ bVV = EI_VV(ir->eI); ++ if (bVV) /* to store the initial velocities while computing virial */ ++ { ++ snew(cbuf, top_global->natoms); ++ } ++ /* all the iteratative cases - only if there are constraints */ ++ bIterativeCase = ((IR_NPH_TROTTER(ir) || IR_NPT_TROTTER(ir)) && (constr) && (!bRerunMD)); ++ gmx_iterate_init(&iterate, FALSE); /* The default value of iterate->bIterationActive is set to ++ false in this step. The correct value, true or false, ++ is set at each step, as it depends on the frequency of temperature ++ and pressure control.*/ ++ bTrotter = (bVV && (IR_NPT_TROTTER(ir) || IR_NPH_TROTTER(ir) || IR_NVT_TROTTER(ir))); ++ ++ if (bRerunMD) ++ { ++ /* Since we don't know if the frames read are related in any way, ++ * rebuild the neighborlist at every step. ++ */ ++ ir->nstlist = 1; ++ ir->nstcalcenergy = 1; ++ nstglobalcomm = 1; ++ } ++ ++ check_ir_old_tpx_versions(cr, fplog, ir, top_global); ++ ++ nstglobalcomm = check_nstglobalcomm(fplog, cr, nstglobalcomm, ir); ++ bGStatEveryStep = (nstglobalcomm == 1); ++ ++ if (!bGStatEveryStep && ir->nstlist == -1 && fplog != NULL) ++ { ++ fprintf(fplog, ++ "To reduce the energy communication with nstlist = -1\n" ++ "the neighbor list validity should not be checked at every step,\n" ++ "this means that exact integration is not guaranteed.\n" ++ "The neighbor list validity is checked after:\n" ++ " - 2*std.dev.(n.list life time) steps.\n" ++ "In most cases this will result in exact integration.\n" ++ "This reduces the energy communication by a factor of 2 to 3.\n" ++ "If you want less energy communication, set nstlist > 3.\n\n"); ++ } ++ ++ if (bRerunMD) ++ { ++ ir->nstxout_compressed = 0; ++ } ++ groups = &top_global->groups; ++ ++ /* Initial values */ ++ init_md(fplog, cr, ir, oenv, &t, &t0, state_global->lambda, ++ &(state_global->fep_state), lam0, ++ nrnb, top_global, &upd, ++ nfile, fnm, &outf, &mdebin, ++ force_vir, shake_vir, mu_tot, &bSimAnn, &vcm, Flags, wcycle); ++ ++ clear_mat(total_vir); ++ clear_mat(pres); ++ /* Energy terms and groups */ ++ snew(enerd, 1); ++ init_enerdata(top_global->groups.grps[egcENER].nr, ir->fepvals->n_lambda, ++ enerd); ++ if (DOMAINDECOMP(cr)) ++ { ++ f = NULL; ++ } ++ else ++ { ++ snew(f, top_global->natoms); ++ } ++ ++ /* Kinetic energy data */ ++ snew(ekind, 1); ++ init_ekindata(fplog, top_global, &(ir->opts), ekind); ++ /* needed for iteration of constraints */ ++ snew(ekind_save, 1); ++ init_ekindata(fplog, top_global, &(ir->opts), ekind_save); ++ /* Copy the cos acceleration to the groups struct */ ++ ekind->cosacc.cos_accel = ir->cos_accel; ++ ++ gstat = global_stat_init(ir); ++ debug_gmx(); ++ ++ /* Check for polarizable models and flexible constraints */ ++ shellfc = init_shell_flexcon(fplog, ++ top_global, n_flexible_constraints(constr), ++ (ir->bContinuation || ++ (DOMAINDECOMP(cr) && !MASTER(cr))) ? ++ NULL : state_global->x); ++ if (shellfc && ir->nstcalcenergy != 1) ++ { ++ gmx_fatal(FARGS, "You have nstcalcenergy set to a value (%d) that is different from 1.\nThis is not supported in combinations with shell particles.\nPlease make a new tpr file.", ir->nstcalcenergy); ++ } ++ if (shellfc && DOMAINDECOMP(cr)) ++ { ++ gmx_fatal(FARGS, "Shell particles are not implemented with domain decomposition, use a single rank"); ++ } ++ if (shellfc && ir->eI == eiNM) ++ { ++ /* Currently shells don't work with Normal Modes */ ++ gmx_fatal(FARGS, "Normal Mode analysis is not supported with shells.\nIf you'd like to help with adding support, we have an open discussion at http://redmine.gromacs.org/issues/879\n"); ++ } ++ ++ if (vsite && ir->eI == eiNM) ++ { ++ /* Currently virtual sites don't work with Normal Modes */ ++ gmx_fatal(FARGS, "Normal Mode analysis is not supported with virtual sites.\nIf you'd like to help with adding support, we have an open discussion at http://redmine.gromacs.org/issues/879\n"); ++ } ++ ++ if (DEFORM(*ir)) ++ { ++ tMPI_Thread_mutex_lock(&deform_init_box_mutex); ++ set_deform_reference_box(upd, ++ deform_init_init_step_tpx, ++ deform_init_box_tpx); ++ tMPI_Thread_mutex_unlock(&deform_init_box_mutex); ++ } ++ ++ { ++ double io = compute_io(ir, top_global->natoms, groups, mdebin->ebin->nener, 1); ++ if ((io > 2000) && MASTER(cr)) ++ { ++ fprintf(stderr, ++ "\nWARNING: This run will generate roughly %.0f Mb of data\n\n", ++ io); ++ } ++ } ++ ++ if (DOMAINDECOMP(cr)) ++ { ++ top = dd_init_local_top(top_global); ++ ++ snew(state, 1); ++ dd_init_local_state(cr->dd, state_global, state); ++ ++ if (DDMASTER(cr->dd) && ir->nstfout) ++ { ++ snew(f_global, state_global->natoms); ++ } ++ } ++ else ++ { ++ top = gmx_mtop_generate_local_top(top_global, ir); ++ ++ forcerec_set_excl_load(fr, top); ++ ++ state = serial_init_local_state(state_global); ++ f_global = f; ++ ++ atoms2md(top_global, ir, 0, NULL, top_global->natoms, mdatoms); ++ ++ if (vsite) ++ { ++ set_vsite_top(vsite, top, mdatoms, cr); ++ } ++ ++ if (ir->ePBC != epbcNONE && !fr->bMolPBC) ++ { ++ graph = mk_graph(fplog, &(top->idef), 0, top_global->natoms, FALSE, FALSE); ++ } ++ ++ if (shellfc) ++ { ++ make_local_shells(cr, mdatoms, shellfc); ++ } ++ ++ setup_bonded_threading(fr, &top->idef); ++ } ++ ++ /* Set up interactive MD (IMD) */ ++ init_IMD(ir, cr, top_global, fplog, ir->nstcalcenergy, state_global->x, ++ nfile, fnm, oenv, imdport, Flags); ++ ++ if (DOMAINDECOMP(cr)) ++ { ++ /* Distribute the charge groups over the nodes from the master node */ ++ dd_partition_system(fplog, ir->init_step, cr, TRUE, 1, ++ state_global, top_global, ir, ++ state, &f, mdatoms, top, fr, ++ vsite, shellfc, constr, ++ nrnb, wcycle, FALSE); ++ ++ } ++ ++ update_mdatoms(mdatoms, state->lambda[efptMASS]); ++ ++ if (opt2bSet("-cpi", nfile, fnm)) ++ { ++ bStateFromCP = gmx_fexist_master(opt2fn_master("-cpi", nfile, fnm, cr), cr); ++ } ++ else ++ { ++ bStateFromCP = FALSE; ++ } ++ ++ if (ir->bExpanded) ++ { ++ init_expanded_ensemble(bStateFromCP, ir, &state->dfhist); ++ } ++ ++ if (MASTER(cr)) ++ { ++ if (bStateFromCP) ++ { ++ /* Update mdebin with energy history if appending to output files */ ++ if (Flags & MD_APPENDFILES) ++ { ++ restore_energyhistory_from_state(mdebin, &state_global->enerhist); ++ } ++ else ++ { ++ /* We might have read an energy history from checkpoint, ++ * free the allocated memory and reset the counts. ++ */ ++ done_energyhistory(&state_global->enerhist); ++ init_energyhistory(&state_global->enerhist); ++ } ++ } ++ /* Set the initial energy history in state by updating once */ ++ update_energyhistory(&state_global->enerhist, mdebin); ++ } ++ ++ /* Initialize constraints */ ++ if (constr && !DOMAINDECOMP(cr)) ++ { ++ set_constraints(constr, top, ir, mdatoms, cr); ++ } ++ ++ if (repl_ex_nst > 0 && MASTER(cr)) ++ { ++ repl_ex = init_replica_exchange(fplog, cr->ms, state_global, ir, ++ repl_ex_nst, repl_ex_nex, repl_ex_seed); ++ } ++ ++ /* PME tuning is only supported with GPUs or PME nodes and not with rerun. ++ * PME tuning is not supported with PME only for LJ and not for Coulomb. ++ */ ++ if ((Flags & MD_TUNEPME) && ++ EEL_PME(fr->eeltype) && ++ ( (fr->cutoff_scheme == ecutsVERLET && fr->nbv->bUseGPU) || !(cr->duty & DUTY_PME)) && ++ !bRerunMD) ++ { ++ pme_loadbal_init(&pme_loadbal, ir, state->box, fr->ic, fr->pmedata); ++ cycles_pmes = 0; ++ if (cr->duty & DUTY_PME) ++ { ++ /* Start tuning right away, as we can't measure the load */ ++ bPMETuneRunning = TRUE; ++ } ++ else ++ { ++ /* Separate PME nodes, we can measure the PP/PME load balance */ ++ bPMETuneTry = TRUE; ++ } ++ } ++ ++ if (!ir->bContinuation && !bRerunMD) ++ { ++ if (mdatoms->cFREEZE && (state->flags & (1<homenr; i++) ++ { ++ for (m = 0; m < DIM; m++) ++ { ++ if (ir->opts.nFreeze[mdatoms->cFREEZE[i]][m]) ++ { ++ state->v[i][m] = 0; ++ } ++ } ++ } ++ } ++ ++ if (constr) ++ { ++ /* Constrain the initial coordinates and velocities */ ++ do_constrain_first(fplog, constr, ir, mdatoms, state, ++ cr, nrnb, fr, top); ++ } ++ if (vsite) ++ { ++ /* Construct the virtual sites for the initial configuration */ ++ construct_vsites(vsite, state->x, ir->delta_t, NULL, ++ top->idef.iparams, top->idef.il, ++ fr->ePBC, fr->bMolPBC, cr, state->box); ++ } ++ } ++ ++ debug_gmx(); ++ ++ /* set free energy calculation frequency as the minimum ++ greatest common denominator of nstdhdl, nstexpanded, and repl_ex_nst*/ ++ nstfep = ir->fepvals->nstdhdl; ++ if (ir->bExpanded) ++ { ++ nstfep = gmx_greatest_common_divisor(ir->fepvals->nstdhdl, nstfep); ++ } ++ if (repl_ex_nst > 0) ++ { ++ nstfep = gmx_greatest_common_divisor(repl_ex_nst, nstfep); ++ } ++ ++ /* I'm assuming we need global communication the first time! MRS */ ++ cglo_flags = (CGLO_TEMPERATURE | CGLO_GSTAT ++ | ((ir->comm_mode != ecmNO) ? CGLO_STOPCM : 0) ++ | (bVV ? CGLO_PRESSURE : 0) ++ | (bVV ? CGLO_CONSTRAINT : 0) ++ | (bRerunMD ? CGLO_RERUNMD : 0) ++ | ((Flags & MD_READ_EKIN) ? CGLO_READEKIN : 0)); ++ ++ bSumEkinhOld = FALSE; ++ compute_globals(fplog, gstat, cr, ir, fr, ekind, state, state_global, mdatoms, nrnb, vcm, ++ NULL, enerd, force_vir, shake_vir, total_vir, pres, mu_tot, ++ constr, NULL, FALSE, state->box, ++ top_global, &bSumEkinhOld, cglo_flags); ++ if (ir->eI == eiVVAK) ++ { ++ /* a second call to get the half step temperature initialized as well */ ++ /* we do the same call as above, but turn the pressure off -- internally to ++ compute_globals, this is recognized as a velocity verlet half-step ++ kinetic energy calculation. This minimized excess variables, but ++ perhaps loses some logic?*/ ++ ++ compute_globals(fplog, gstat, cr, ir, fr, ekind, state, state_global, mdatoms, nrnb, vcm, ++ NULL, enerd, force_vir, shake_vir, total_vir, pres, mu_tot, ++ constr, NULL, FALSE, state->box, ++ top_global, &bSumEkinhOld, ++ cglo_flags &~(CGLO_STOPCM | CGLO_PRESSURE)); ++ } ++ ++ /* Calculate the initial half step temperature, and save the ekinh_old */ ++ if (!(Flags & MD_STARTFROMCPT)) ++ { ++ for (i = 0; (i < ir->opts.ngtc); i++) ++ { ++ copy_mat(ekind->tcstat[i].ekinh, ekind->tcstat[i].ekinh_old); ++ } ++ } ++ if (ir->eI != eiVV) ++ { ++ enerd->term[F_TEMP] *= 2; /* result of averages being done over previous and current step, ++ and there is no previous step */ ++ } ++ ++ /* if using an iterative algorithm, we need to create a working directory for the state. */ ++ if (bIterativeCase) ++ { ++ bufstate = init_bufstate(state); ++ } ++ ++ /* need to make an initiation call to get the Trotter variables set, as well as other constants for non-trotter ++ temperature control */ ++ trotter_seq = init_npt_vars(ir, state, &MassQ, bTrotter); ++ ++ if (MASTER(cr)) ++ { ++ if (constr && !ir->bContinuation && ir->eConstrAlg == econtLINCS) ++ { ++ fprintf(fplog, ++ "RMS relative constraint deviation after constraining: %.2e\n", ++ constr_rmsd(constr, FALSE)); ++ } ++ if (EI_STATE_VELOCITY(ir->eI)) ++ { ++ fprintf(fplog, "Initial temperature: %g K\n", enerd->term[F_TEMP]); ++ } ++ if (bRerunMD) ++ { ++ fprintf(stderr, "starting md rerun '%s', reading coordinates from" ++ " input trajectory '%s'\n\n", ++ *(top_global->name), opt2fn("-rerun", nfile, fnm)); ++ if (bVerbose) ++ { ++ fprintf(stderr, "Calculated time to finish depends on nsteps from " ++ "run input file,\nwhich may not correspond to the time " ++ "needed to process input trajectory.\n\n"); ++ } ++ } ++ else ++ { ++ char tbuf[20]; ++ fprintf(stderr, "starting mdrun '%s'\n", ++ *(top_global->name)); ++ if (ir->nsteps >= 0) ++ { ++ sprintf(tbuf, "%8.1f", (ir->init_step+ir->nsteps)*ir->delta_t); ++ } ++ else ++ { ++ sprintf(tbuf, "%s", "infinite"); ++ } ++ if (ir->init_step > 0) ++ { ++ fprintf(stderr, "%s steps, %s ps (continuing from step %s, %8.1f ps).\n", ++ gmx_step_str(ir->init_step+ir->nsteps, sbuf), tbuf, ++ gmx_step_str(ir->init_step, sbuf2), ++ ir->init_step*ir->delta_t); ++ } ++ else ++ { ++ fprintf(stderr, "%s steps, %s ps.\n", ++ gmx_step_str(ir->nsteps, sbuf), tbuf); ++ } ++ } ++ fprintf(fplog, "\n"); ++ } ++ ++ walltime_accounting_start(walltime_accounting); ++ wallcycle_start(wcycle, ewcRUN); ++ print_start(fplog, cr, walltime_accounting, "mdrun"); ++ ++ /* safest point to do file checkpointing is here. More general point would be immediately before integrator call */ ++#ifdef GMX_FAHCORE ++ chkpt_ret = fcCheckPointParallel( cr->nodeid, ++ NULL, 0); ++ if (chkpt_ret == 0) ++ { ++ gmx_fatal( 3, __FILE__, __LINE__, "Checkpoint error on step %d\n", 0 ); ++ } ++#endif ++ ++ debug_gmx(); ++ /*********************************************************** ++ * ++ * Loop over MD steps ++ * ++ ************************************************************/ ++ ++ /* if rerunMD then read coordinates and velocities from input trajectory */ ++ if (bRerunMD) ++ { ++ if (getenv("GMX_FORCE_UPDATE")) ++ { ++ bForceUpdate = TRUE; ++ } ++ ++ rerun_fr.natoms = 0; ++ if (MASTER(cr)) ++ { ++ bNotLastFrame = read_first_frame(oenv, &status, ++ opt2fn("-rerun", nfile, fnm), ++ &rerun_fr, TRX_NEED_X | TRX_READ_V); ++ if (rerun_fr.natoms != top_global->natoms) ++ { ++ gmx_fatal(FARGS, ++ "Number of atoms in trajectory (%d) does not match the " ++ "run input file (%d)\n", ++ rerun_fr.natoms, top_global->natoms); ++ } ++ if (ir->ePBC != epbcNONE) ++ { ++ if (!rerun_fr.bBox) ++ { ++ gmx_fatal(FARGS, "Rerun trajectory frame step %d time %f does not contain a box, while pbc is used", rerun_fr.step, rerun_fr.time); ++ } ++ if (max_cutoff2(ir->ePBC, rerun_fr.box) < sqr(fr->rlistlong)) ++ { ++ gmx_fatal(FARGS, "Rerun trajectory frame step %d time %f has too small box dimensions", rerun_fr.step, rerun_fr.time); ++ } ++ } ++ } ++ ++ if (PAR(cr)) ++ { ++ rerun_parallel_comm(cr, &rerun_fr, &bNotLastFrame); ++ } ++ ++ if (ir->ePBC != epbcNONE) ++ { ++ /* Set the shift vectors. ++ * Necessary here when have a static box different from the tpr box. ++ */ ++ calc_shifts(rerun_fr.box, fr->shift_vec); ++ } ++ } ++ ++ /* loop over MD steps or if rerunMD to end of input trajectory */ ++ bFirstStep = TRUE; ++ /* Skip the first Nose-Hoover integration when we get the state from tpx */ ++ bStateFromTPX = !bStateFromCP; ++ bInitStep = bFirstStep && (bStateFromTPX || bVV); ++ bStartingFromCpt = (Flags & MD_STARTFROMCPT) && bInitStep; ++ bLastStep = FALSE; ++ bSumEkinhOld = FALSE; ++ bDoReplEx = FALSE; ++ bExchanged = FALSE; ++ bNeedRepartition = FALSE; ++ ++ init_global_signals(&gs, cr, ir, repl_ex_nst); ++ ++ step = ir->init_step; ++ step_rel = 0; ++ ++ if (ir->nstlist == -1) ++ { ++ init_nlistheuristics(&nlh, bGStatEveryStep, step); ++ } ++ ++ if (MULTISIM(cr) && (repl_ex_nst <= 0 )) ++ { ++ /* check how many steps are left in other sims */ ++ multisim_nsteps = get_multisim_nsteps(cr, ir->nsteps); ++ } ++ ++ ++ /* and stop now if we should */ ++ bLastStep = (bRerunMD || (ir->nsteps >= 0 && step_rel > ir->nsteps) || ++ ((multisim_nsteps >= 0) && (step_rel >= multisim_nsteps ))); ++ while (!bLastStep || (bRerunMD && bNotLastFrame)) ++ { ++ ++ wallcycle_start(wcycle, ewcSTEP); ++ ++ if (bRerunMD) ++ { ++ if (rerun_fr.bStep) ++ { ++ step = rerun_fr.step; ++ step_rel = step - ir->init_step; ++ } ++ if (rerun_fr.bTime) ++ { ++ t = rerun_fr.time; ++ } ++ else ++ { ++ t = step; ++ } ++ } ++ else ++ { ++ bLastStep = (step_rel == ir->nsteps); ++ t = t0 + step*ir->delta_t; ++ } ++ ++ if (ir->efep != efepNO || ir->bSimTemp) ++ { ++ /* find and set the current lambdas. If rerunning, we either read in a state, or a lambda value, ++ requiring different logic. */ ++ ++ set_current_lambdas(step, ir->fepvals, bRerunMD, &rerun_fr, state_global, state, lam0); ++ bDoDHDL = do_per_step(step, ir->fepvals->nstdhdl); ++ bDoFEP = (do_per_step(step, nstfep) && (ir->efep != efepNO)); ++ bDoExpanded = (do_per_step(step, ir->expandedvals->nstexpanded) ++ && (ir->bExpanded) && (step > 0) && (!bStartingFromCpt)); ++ } ++ ++ bDoReplEx = ((repl_ex_nst > 0) && (step > 0) && !bLastStep && ++ do_per_step(step, repl_ex_nst)); ++ ++ if (bSimAnn) ++ { ++ update_annealing_target_temp(&(ir->opts), t); ++ } ++ ++ if (bRerunMD) ++ { ++ if (!DOMAINDECOMP(cr) || MASTER(cr)) ++ { ++ for (i = 0; i < state_global->natoms; i++) ++ { ++ copy_rvec(rerun_fr.x[i], state_global->x[i]); ++ } ++ if (rerun_fr.bV) ++ { ++ for (i = 0; i < state_global->natoms; i++) ++ { ++ copy_rvec(rerun_fr.v[i], state_global->v[i]); ++ } ++ } ++ else ++ { ++ for (i = 0; i < state_global->natoms; i++) ++ { ++ clear_rvec(state_global->v[i]); ++ } ++ if (bRerunWarnNoV) ++ { ++ fprintf(stderr, "\nWARNING: Some frames do not contain velocities.\n" ++ " Ekin, temperature and pressure are incorrect,\n" ++ " the virial will be incorrect when constraints are present.\n" ++ "\n"); ++ bRerunWarnNoV = FALSE; ++ } ++ } ++ } ++ copy_mat(rerun_fr.box, state_global->box); ++ copy_mat(state_global->box, state->box); ++ ++ if (vsite && (Flags & MD_RERUN_VSITE)) ++ { ++ if (DOMAINDECOMP(cr)) ++ { ++ gmx_fatal(FARGS, "Vsite recalculation with -rerun is not implemented with domain decomposition, use a single rank"); ++ } ++ if (graph) ++ { ++ /* Following is necessary because the graph may get out of sync ++ * with the coordinates if we only have every N'th coordinate set ++ */ ++ mk_mshift(fplog, graph, fr->ePBC, state->box, state->x); ++ shift_self(graph, state->box, state->x); ++ } ++ construct_vsites(vsite, state->x, ir->delta_t, state->v, ++ top->idef.iparams, top->idef.il, ++ fr->ePBC, fr->bMolPBC, cr, state->box); ++ if (graph) ++ { ++ unshift_self(graph, state->box, state->x); ++ } ++ } ++ } ++ ++ /* Stop Center of Mass motion */ ++ bStopCM = (ir->comm_mode != ecmNO && do_per_step(step, ir->nstcomm)); ++ ++ if (bRerunMD) ++ { ++ /* for rerun MD always do Neighbour Searching */ ++ bNS = (bFirstStep || ir->nstlist != 0); ++ bNStList = bNS; ++ } ++ else ++ { ++ /* Determine whether or not to do Neighbour Searching and LR */ ++ bNStList = (ir->nstlist > 0 && step % ir->nstlist == 0); ++ ++ bNS = (bFirstStep || bExchanged || bNeedRepartition || bNStList || bDoFEP || ++ (ir->nstlist == -1 && nlh.nabnsb > 0)); ++ ++ if (bNS && ir->nstlist == -1) ++ { ++ set_nlistheuristics(&nlh, bFirstStep || bExchanged || bNeedRepartition || bDoFEP, step); ++ } ++ } ++ ++ /* check whether we should stop because another simulation has ++ stopped. */ ++ if (MULTISIM(cr)) ++ { ++ if ( (multisim_nsteps >= 0) && (step_rel >= multisim_nsteps) && ++ (multisim_nsteps != ir->nsteps) ) ++ { ++ if (bNS) ++ { ++ if (MASTER(cr)) ++ { ++ fprintf(stderr, ++ "Stopping simulation %d because another one has finished\n", ++ cr->ms->sim); ++ } ++ bLastStep = TRUE; ++ gs.sig[eglsCHKPT] = 1; ++ } ++ } ++ } ++ ++ /* < 0 means stop at next step, > 0 means stop at next NS step */ ++ if ( (gs.set[eglsSTOPCOND] < 0) || ++ ( (gs.set[eglsSTOPCOND] > 0) && (bNStList || ir->nstlist == 0) ) ) ++ { ++ bLastStep = TRUE; ++ } ++ ++ /* Determine whether or not to update the Born radii if doing GB */ ++ bBornRadii = bFirstStep; ++ if (ir->implicit_solvent && (step % ir->nstgbradii == 0)) ++ { ++ bBornRadii = TRUE; ++ } ++ ++ do_log = do_per_step(step, ir->nstlog) || bFirstStep || bLastStep; ++ do_verbose = bVerbose && ++ (step % stepout == 0 || bFirstStep || bLastStep); ++ ++ if (bNS && !(bFirstStep && ir->bContinuation && !bRerunMD)) ++ { ++ if (bRerunMD) ++ { ++ bMasterState = TRUE; ++ } ++ else ++ { ++ bMasterState = FALSE; ++ /* Correct the new box if it is too skewed */ ++ if (DYNAMIC_BOX(*ir)) ++ { ++ if (correct_box(fplog, step, state->box, graph)) ++ { ++ bMasterState = TRUE; ++ } ++ } ++ if (DOMAINDECOMP(cr) && bMasterState) ++ { ++ dd_collect_state(cr->dd, state, state_global); ++ } ++ } ++ ++ if (DOMAINDECOMP(cr)) ++ { ++ /* Repartition the domain decomposition */ ++ wallcycle_start(wcycle, ewcDOMDEC); ++ dd_partition_system(fplog, step, cr, ++ bMasterState, nstglobalcomm, ++ state_global, top_global, ir, ++ state, &f, mdatoms, top, fr, ++ vsite, shellfc, constr, ++ nrnb, wcycle, ++ do_verbose && !bPMETuneRunning); ++ wallcycle_stop(wcycle, ewcDOMDEC); ++ /* If using an iterative integrator, reallocate space to match the decomposition */ ++ } ++ } ++ ++ if (MASTER(cr) && do_log) ++ { ++ print_ebin_header(fplog, step, t, state->lambda[efptFEP]); /* can we improve the information printed here? */ ++ } ++ ++ if (ir->efep != efepNO) ++ { ++ update_mdatoms(mdatoms, state->lambda[efptMASS]); ++ } ++ ++ if ((bRerunMD && rerun_fr.bV) || bExchanged) ++ { ++ ++ /* We need the kinetic energy at minus the half step for determining ++ * the full step kinetic energy and possibly for T-coupling.*/ ++ /* This may not be quite working correctly yet . . . . */ ++ compute_globals(fplog, gstat, cr, ir, fr, ekind, state, state_global, mdatoms, nrnb, vcm, ++ wcycle, enerd, NULL, NULL, NULL, NULL, mu_tot, ++ constr, NULL, FALSE, state->box, ++ top_global, &bSumEkinhOld, ++ CGLO_RERUNMD | CGLO_GSTAT | CGLO_TEMPERATURE); ++ } ++ clear_mat(force_vir); ++ ++ /* We write a checkpoint at this MD step when: ++ * either at an NS step when we signalled through gs, ++ * or at the last step (but not when we do not want confout), ++ * but never at the first step or with rerun. ++ */ ++ bCPT = (((gs.set[eglsCHKPT] && (bNS || ir->nstlist == 0)) || ++ (bLastStep && (Flags & MD_CONFOUT))) && ++ step > ir->init_step && !bRerunMD); ++ if (bCPT) ++ { ++ gs.set[eglsCHKPT] = 0; ++ } ++ ++ /* Determine the energy and pressure: ++ * at nstcalcenergy steps and at energy output steps (set below). ++ */ ++ if (EI_VV(ir->eI) && (!bInitStep)) ++ { ++ /* for vv, the first half of the integration actually corresponds ++ to the previous step. bCalcEner is only required to be evaluated on the 'next' step, ++ but the virial needs to be calculated on both the current step and the 'next' step. Future ++ reorganization may be able to get rid of one of the bCalcVir=TRUE steps. */ ++ ++ bCalcEner = do_per_step(step-1, ir->nstcalcenergy); ++ bCalcVir = bCalcEner || ++ (ir->epc != epcNO && (do_per_step(step, ir->nstpcouple) || do_per_step(step-1, ir->nstpcouple))); ++ } ++ else ++ { ++ bCalcEner = do_per_step(step, ir->nstcalcenergy); ++ bCalcVir = bCalcEner || ++ (ir->epc != epcNO && do_per_step(step, ir->nstpcouple)); ++ } ++ ++ /* Do we need global communication ? */ ++ bGStat = (bCalcVir || bCalcEner || bStopCM || ++ do_per_step(step, nstglobalcomm) || (bVV && IR_NVT_TROTTER(ir) && do_per_step(step-1, nstglobalcomm)) || ++ (ir->nstlist == -1 && !bRerunMD && step >= nlh.step_nscheck)); ++ ++ do_ene = (do_per_step(step, ir->nstenergy) || bLastStep); ++ ++ if (do_ene || do_log || bDoReplEx) ++ { ++ bCalcVir = TRUE; ++ bCalcEner = TRUE; ++ bGStat = TRUE; ++ } ++ ++ /* these CGLO_ options remain the same throughout the iteration */ ++ cglo_flags = ((bRerunMD ? CGLO_RERUNMD : 0) | ++ (bGStat ? CGLO_GSTAT : 0) ++ ); ++ ++ force_flags = (GMX_FORCE_STATECHANGED | ++ ((DYNAMIC_BOX(*ir) || bRerunMD) ? GMX_FORCE_DYNAMICBOX : 0) | ++ GMX_FORCE_ALLFORCES | ++ GMX_FORCE_SEPLRF | ++ (bCalcVir ? GMX_FORCE_VIRIAL : 0) | ++ (bCalcEner ? GMX_FORCE_ENERGY : 0) | ++ (bDoFEP ? GMX_FORCE_DHDL : 0) ++ ); ++ ++ if (fr->bTwinRange) ++ { ++ if (do_per_step(step, ir->nstcalclr)) ++ { ++ force_flags |= GMX_FORCE_DO_LR; ++ } ++ } ++ ++ if (shellfc) ++ { ++ /* Now is the time to relax the shells */ ++ count = relax_shell_flexcon(fplog, cr, bVerbose, step, ++ ir, bNS, force_flags, ++ top, ++ constr, enerd, fcd, ++ state, f, force_vir, mdatoms, ++ nrnb, wcycle, graph, groups, ++ shellfc, fr, bBornRadii, t, mu_tot, ++ &bConverged, vsite, ++ mdoutf_get_fp_field(outf)); ++ tcount += count; ++ ++ if (bConverged) ++ { ++ nconverged++; ++ } ++ } ++ else ++ { ++ /* The coordinates (x) are shifted (to get whole molecules) ++ * in do_force. ++ * This is parallellized as well, and does communication too. ++ * Check comments in sim_util.c ++ */ ++ do_force(fplog, cr, ir, step, nrnb, wcycle, top, groups, ++ state->box, state->x, &state->hist, ++ f, force_vir, mdatoms, enerd, fcd, ++ state->lambda, graph, ++ fr, vsite, mu_tot, t, mdoutf_get_fp_field(outf), ed, bBornRadii, ++ (bNS ? GMX_FORCE_NS : 0) | force_flags); ++ } ++ ++ if (bVV && !bStartingFromCpt && !bRerunMD) ++ /* ############### START FIRST UPDATE HALF-STEP FOR VV METHODS############### */ ++ { ++ wallcycle_start(wcycle, ewcUPDATE); ++ if (ir->eI == eiVV && bInitStep) ++ { ++ /* if using velocity verlet with full time step Ekin, ++ * take the first half step only to compute the ++ * virial for the first step. From there, ++ * revert back to the initial coordinates ++ * so that the input is actually the initial step. ++ */ ++ copy_rvecn(state->v, cbuf, 0, state->natoms); /* should make this better for parallelizing? */ ++ } ++ else ++ { ++ /* this is for NHC in the Ekin(t+dt/2) version of vv */ ++ trotter_update(ir, step, ekind, enerd, state, total_vir, mdatoms, &MassQ, trotter_seq, ettTSEQ1); ++ } ++ ++ /* If we are using twin-range interactions where the long-range component ++ * is only evaluated every nstcalclr>1 steps, we should do a special update ++ * step to combine the long-range forces on these steps. ++ * For nstcalclr=1 this is not done, since the forces would have been added ++ * directly to the short-range forces already. ++ * ++ * TODO Remove various aspects of VV+twin-range in master ++ * branch, because VV integrators did not ever support ++ * twin-range multiple time stepping with constraints. ++ */ ++ bUpdateDoLR = (fr->bTwinRange && do_per_step(step, ir->nstcalclr)); ++ ++ update_coords(fplog, step, ir, mdatoms, state, fr->bMolPBC, ++ f, bUpdateDoLR, fr->f_twin, bCalcVir ? &fr->vir_twin_constr : NULL, fcd, ++ ekind, M, upd, bInitStep, etrtVELOCITY1, ++ cr, nrnb, constr, &top->idef); ++ ++ if (bIterativeCase && do_per_step(step-1, ir->nstpcouple) && !bInitStep) ++ { ++ gmx_iterate_init(&iterate, TRUE); ++ } ++ /* for iterations, we save these vectors, as we will be self-consistently iterating ++ the calculations */ ++ ++ /*#### UPDATE EXTENDED VARIABLES IN TROTTER FORMULATION */ ++ ++ /* save the state */ ++ if (iterate.bIterationActive) ++ { ++ copy_coupling_state(state, bufstate, ekind, ekind_save, &(ir->opts)); ++ } ++ ++ bFirstIterate = TRUE; ++ while (bFirstIterate || iterate.bIterationActive) ++ { ++ if (iterate.bIterationActive) ++ { ++ copy_coupling_state(bufstate, state, ekind_save, ekind, &(ir->opts)); ++ if (bFirstIterate && bTrotter) ++ { ++ /* The first time through, we need a decent first estimate ++ of veta(t+dt) to compute the constraints. Do ++ this by computing the box volume part of the ++ trotter integration at this time. Nothing else ++ should be changed by this routine here. If ++ !(first time), we start with the previous value ++ of veta. */ ++ ++ veta_save = state->veta; ++ trotter_update(ir, step, ekind, enerd, state, total_vir, mdatoms, &MassQ, trotter_seq, ettTSEQ0); ++ vetanew = state->veta; ++ state->veta = veta_save; ++ } ++ } ++ ++ bOK = TRUE; ++ if (!bRerunMD || rerun_fr.bV || bForceUpdate) /* Why is rerun_fr.bV here? Unclear. */ ++ { ++ wallcycle_stop(wcycle, ewcUPDATE); ++ update_constraints(fplog, step, NULL, ir, ekind, mdatoms, ++ state, fr->bMolPBC, graph, f, ++ &top->idef, shake_vir, ++ cr, nrnb, wcycle, upd, constr, ++ TRUE, bCalcVir, vetanew); ++ wallcycle_start(wcycle, ewcUPDATE); ++ ++ if (bCalcVir && bUpdateDoLR && ir->nstcalclr > 1) ++ { ++ /* Correct the virial for multiple time stepping */ ++ m_sub(shake_vir, fr->vir_twin_constr, shake_vir); ++ } ++ ++ if (!bOK) ++ { ++ gmx_fatal(FARGS, "Constraint error: Shake, Lincs or Settle could not solve the constrains"); ++ } ++ ++ } ++ else if (graph) ++ { ++ /* Need to unshift here if a do_force has been ++ called in the previous step */ ++ unshift_self(graph, state->box, state->x); ++ } ++ ++ /* if VV, compute the pressure and constraints */ ++ /* For VV2, we strictly only need this if using pressure ++ * control, but we really would like to have accurate pressures ++ * printed out. ++ * Think about ways around this in the future? ++ * For now, keep this choice in comments. ++ */ ++ /*bPres = (ir->eI==eiVV || IR_NPT_TROTTER(ir)); */ ++ /*bTemp = ((ir->eI==eiVV &&(!bInitStep)) || (ir->eI==eiVVAK && IR_NPT_TROTTER(ir)));*/ ++ bPres = TRUE; ++ bTemp = ((ir->eI == eiVV && (!bInitStep)) || (ir->eI == eiVVAK)); ++ if (bCalcEner && ir->eI == eiVVAK) /*MRS: 7/9/2010 -- this still doesn't fix it?*/ ++ { ++ bSumEkinhOld = TRUE; ++ } ++ /* for vv, the first half of the integration actually corresponds to the previous step. ++ So we need information from the last step in the first half of the integration */ ++ if (bGStat || do_per_step(step-1, nstglobalcomm)) ++ { ++ wallcycle_stop(wcycle, ewcUPDATE); ++ compute_globals(fplog, gstat, cr, ir, fr, ekind, state, state_global, mdatoms, nrnb, vcm, ++ wcycle, enerd, force_vir, shake_vir, total_vir, pres, mu_tot, ++ constr, NULL, FALSE, state->box, ++ top_global, &bSumEkinhOld, ++ cglo_flags ++ | CGLO_ENERGY ++ | (bTemp ? CGLO_TEMPERATURE : 0) ++ | (bPres ? CGLO_PRESSURE : 0) ++ | (bPres ? CGLO_CONSTRAINT : 0) ++ | ((iterate.bIterationActive) ? CGLO_ITERATE : 0) ++ | (bFirstIterate ? CGLO_FIRSTITERATE : 0) ++ | CGLO_SCALEEKIN ++ ); ++ /* explanation of above: ++ a) We compute Ekin at the full time step ++ if 1) we are using the AveVel Ekin, and it's not the ++ initial step, or 2) if we are using AveEkin, but need the full ++ time step kinetic energy for the pressure (always true now, since we want accurate statistics). ++ b) If we are using EkinAveEkin for the kinetic energy for the temperature control, we still feed in ++ EkinAveVel because it's needed for the pressure */ ++ wallcycle_start(wcycle, ewcUPDATE); ++ } ++ /* temperature scaling and pressure scaling to produce the extended variables at t+dt */ ++ if (!bInitStep) ++ { ++ if (bTrotter) ++ { ++ m_add(force_vir, shake_vir, total_vir); /* we need the un-dispersion corrected total vir here */ ++ trotter_update(ir, step, ekind, enerd, state, total_vir, mdatoms, &MassQ, trotter_seq, ettTSEQ2); ++ } ++ else ++ { ++ if (bExchanged) ++ { ++ wallcycle_stop(wcycle, ewcUPDATE); ++ /* We need the kinetic energy at minus the half step for determining ++ * the full step kinetic energy and possibly for T-coupling.*/ ++ /* This may not be quite working correctly yet . . . . */ ++ compute_globals(fplog, gstat, cr, ir, fr, ekind, state, state_global, mdatoms, nrnb, vcm, ++ wcycle, enerd, NULL, NULL, NULL, NULL, mu_tot, ++ constr, NULL, FALSE, state->box, ++ top_global, &bSumEkinhOld, ++ CGLO_RERUNMD | CGLO_GSTAT | CGLO_TEMPERATURE); ++ wallcycle_start(wcycle, ewcUPDATE); ++ } ++ } ++ } ++ ++ if (iterate.bIterationActive && ++ done_iterating(cr, fplog, step, &iterate, bFirstIterate, ++ state->veta, &vetanew)) ++ { ++ break; ++ } ++ bFirstIterate = FALSE; ++ } ++ ++ if (bTrotter && !bInitStep) ++ { ++ copy_mat(shake_vir, state->svir_prev); ++ copy_mat(force_vir, state->fvir_prev); ++ if (IR_NVT_TROTTER(ir) && ir->eI == eiVV) ++ { ++ /* update temperature and kinetic energy now that step is over - this is the v(t+dt) point */ ++ enerd->term[F_TEMP] = sum_ekin(&(ir->opts), ekind, NULL, (ir->eI == eiVV), FALSE); ++ enerd->term[F_EKIN] = trace(ekind->ekin); ++ } ++ } ++ /* if it's the initial step, we performed this first step just to get the constraint virial */ ++ if (bInitStep && ir->eI == eiVV) ++ { ++ copy_rvecn(cbuf, state->v, 0, state->natoms); ++ } ++ wallcycle_stop(wcycle, ewcUPDATE); ++ } ++ ++ /* MRS -- now done iterating -- compute the conserved quantity */ ++ if (bVV) ++ { ++ saved_conserved_quantity = compute_conserved_from_auxiliary(ir, state, &MassQ); ++ if (ir->eI == eiVV) ++ { ++ last_ekin = enerd->term[F_EKIN]; ++ } ++ if ((ir->eDispCorr != edispcEnerPres) && (ir->eDispCorr != edispcAllEnerPres)) ++ { ++ saved_conserved_quantity -= enerd->term[F_DISPCORR]; ++ } ++ /* sum up the foreign energy and dhdl terms for vv. currently done every step so that dhdl is correct in the .edr */ ++ if (!bRerunMD) ++ { ++ sum_dhdl(enerd, state->lambda, ir->fepvals); ++ } ++ } ++ ++ /* ######## END FIRST UPDATE STEP ############## */ ++ /* ######## If doing VV, we now have v(dt) ###### */ ++ if (bDoExpanded) ++ { ++ /* perform extended ensemble sampling in lambda - we don't ++ actually move to the new state before outputting ++ statistics, but if performing simulated tempering, we ++ do update the velocities and the tau_t. */ ++ ++ lamnew = ExpandedEnsembleDynamics(fplog, ir, enerd, state, &MassQ, state->fep_state, &state->dfhist, step, state->v, mdatoms); ++ /* history is maintained in state->dfhist, but state_global is what is sent to trajectory and log output */ ++ copy_df_history(&state_global->dfhist, &state->dfhist); ++ } ++ ++ /* Now we have the energies and forces corresponding to the ++ * coordinates at time t. We must output all of this before ++ * the update. ++ */ ++ do_md_trajectory_writing(fplog, cr, nfile, fnm, step, step_rel, t, ++ ir, state, state_global, top_global, fr, ++ outf, mdebin, ekind, f, f_global, ++ &nchkpt, ++ bCPT, bRerunMD, bLastStep, (Flags & MD_CONFOUT), ++ bSumEkinhOld); ++ /* Check if IMD step and do IMD communication, if bIMD is TRUE. */ ++ bIMDstep = do_IMD(ir->bIMD, step, cr, bNS, state->box, state->x, ir, t, wcycle); ++ ++ /* kludge -- virial is lost with restart for NPT control. Must restart */ ++ if (bStartingFromCpt && bVV) ++ { ++ copy_mat(state->svir_prev, shake_vir); ++ copy_mat(state->fvir_prev, force_vir); ++ } ++ ++ elapsed_time = walltime_accounting_get_current_elapsed_time(walltime_accounting); ++ ++ /* Check whether everything is still allright */ ++ if (((int)gmx_get_stop_condition() > handled_stop_condition) ++#ifdef GMX_THREAD_MPI ++ && MASTER(cr) ++#endif ++ ) ++ { ++ /* this is just make gs.sig compatible with the hack ++ of sending signals around by MPI_Reduce with together with ++ other floats */ ++ if (gmx_get_stop_condition() == gmx_stop_cond_next_ns) ++ { ++ gs.sig[eglsSTOPCOND] = 1; ++ } ++ if (gmx_get_stop_condition() == gmx_stop_cond_next) ++ { ++ gs.sig[eglsSTOPCOND] = -1; ++ } ++ /* < 0 means stop at next step, > 0 means stop at next NS step */ ++ if (fplog) ++ { ++ fprintf(fplog, ++ "\n\nReceived the %s signal, stopping at the next %sstep\n\n", ++ gmx_get_signal_name(), ++ gs.sig[eglsSTOPCOND] == 1 ? "NS " : ""); ++ fflush(fplog); ++ } ++ fprintf(stderr, ++ "\n\nReceived the %s signal, stopping at the next %sstep\n\n", ++ gmx_get_signal_name(), ++ gs.sig[eglsSTOPCOND] == 1 ? "NS " : ""); ++ fflush(stderr); ++ handled_stop_condition = (int)gmx_get_stop_condition(); ++ } ++ else if (MASTER(cr) && (bNS || ir->nstlist <= 0) && ++ (max_hours > 0 && elapsed_time > max_hours*60.0*60.0*0.99) && ++ gs.sig[eglsSTOPCOND] == 0 && gs.set[eglsSTOPCOND] == 0) ++ { ++ /* Signal to terminate the run */ ++ gs.sig[eglsSTOPCOND] = 1; ++ if (fplog) ++ { ++ fprintf(fplog, "\nStep %s: Run time exceeded %.3f hours, will terminate the run\n", gmx_step_str(step, sbuf), max_hours*0.99); ++ } ++ fprintf(stderr, "\nStep %s: Run time exceeded %.3f hours, will terminate the run\n", gmx_step_str(step, sbuf), max_hours*0.99); ++ } ++ ++ if (bResetCountersHalfMaxH && MASTER(cr) && ++ elapsed_time > max_hours*60.0*60.0*0.495) ++ { ++ gs.sig[eglsRESETCOUNTERS] = 1; ++ } ++ ++ if (ir->nstlist == -1 && !bRerunMD) ++ { ++ /* When bGStatEveryStep=FALSE, global_stat is only called ++ * when we check the atom displacements, not at NS steps. ++ * This means that also the bonded interaction count check is not ++ * performed immediately after NS. Therefore a few MD steps could ++ * be performed with missing interactions. ++ * But wrong energies are never written to file, ++ * since energies are only written after global_stat ++ * has been called. ++ */ ++ if (step >= nlh.step_nscheck) ++ { ++ nlh.nabnsb = natoms_beyond_ns_buffer(ir, fr, &top->cgs, ++ nlh.scale_tot, state->x); ++ } ++ else ++ { ++ /* This is not necessarily true, ++ * but step_nscheck is determined quite conservatively. ++ */ ++ nlh.nabnsb = 0; ++ } ++ } ++ ++ /* In parallel we only have to check for checkpointing in steps ++ * where we do global communication, ++ * otherwise the other nodes don't know. ++ */ ++ if (MASTER(cr) && ((bGStat || !PAR(cr)) && ++ cpt_period >= 0 && ++ (cpt_period == 0 || ++ elapsed_time >= nchkpt*cpt_period*60.0)) && ++ gs.set[eglsCHKPT] == 0) ++ { ++ gs.sig[eglsCHKPT] = 1; ++ } ++ ++ /* at the start of step, randomize or scale the velocities (trotter done elsewhere) */ ++ if (EI_VV(ir->eI)) ++ { ++ if (!bInitStep) ++ { ++ update_tcouple(step, ir, state, ekind, &MassQ, mdatoms); ++ } ++ if (ETC_ANDERSEN(ir->etc)) /* keep this outside of update_tcouple because of the extra info required to pass */ ++ { ++ gmx_bool bIfRandomize; ++ bIfRandomize = update_randomize_velocities(ir, step, cr, mdatoms, state, upd, constr); ++ /* if we have constraints, we have to remove the kinetic energy parallel to the bonds */ ++ if (constr && bIfRandomize) ++ { ++ update_constraints(fplog, step, NULL, ir, ekind, mdatoms, ++ state, fr->bMolPBC, graph, f, ++ &top->idef, tmp_vir, ++ cr, nrnb, wcycle, upd, constr, ++ TRUE, bCalcVir, vetanew); ++ } ++ } ++ } ++ ++ if (bIterativeCase && do_per_step(step, ir->nstpcouple)) ++ { ++ gmx_iterate_init(&iterate, TRUE); ++ /* for iterations, we save these vectors, as we will be redoing the calculations */ ++ copy_coupling_state(state, bufstate, ekind, ekind_save, &(ir->opts)); ++ } ++ ++ bFirstIterate = TRUE; ++ while (bFirstIterate || iterate.bIterationActive) ++ { ++ /* We now restore these vectors to redo the calculation with improved extended variables */ ++ if (iterate.bIterationActive) ++ { ++ copy_coupling_state(bufstate, state, ekind_save, ekind, &(ir->opts)); ++ } ++ ++ /* We make the decision to break or not -after- the calculation of Ekin and Pressure, ++ so scroll down for that logic */ ++ ++ /* ######### START SECOND UPDATE STEP ################# */ ++ /* Box is changed in update() when we do pressure coupling, ++ * but we should still use the old box for energy corrections and when ++ * writing it to the energy file, so it matches the trajectory files for ++ * the same timestep above. Make a copy in a separate array. ++ */ ++ copy_mat(state->box, lastbox); ++ ++ bOK = TRUE; ++ dvdl_constr = 0; ++ ++ if (!(bRerunMD && !rerun_fr.bV && !bForceUpdate)) ++ { ++ wallcycle_start(wcycle, ewcUPDATE); ++ /* UPDATE PRESSURE VARIABLES IN TROTTER FORMULATION WITH CONSTRAINTS */ ++ if (bTrotter) ++ { ++ if (iterate.bIterationActive) ++ { ++ if (bFirstIterate) ++ { ++ scalevir = 1; ++ } ++ else ++ { ++ /* we use a new value of scalevir to converge the iterations faster */ ++ scalevir = tracevir/trace(shake_vir); ++ } ++ msmul(shake_vir, scalevir, shake_vir); ++ m_add(force_vir, shake_vir, total_vir); ++ clear_mat(shake_vir); ++ } ++ trotter_update(ir, step, ekind, enerd, state, total_vir, mdatoms, &MassQ, trotter_seq, ettTSEQ3); ++ /* We can only do Berendsen coupling after we have summed ++ * the kinetic energy or virial. Since the happens ++ * in global_state after update, we should only do it at ++ * step % nstlist = 1 with bGStatEveryStep=FALSE. ++ */ ++ } ++ else ++ { ++ update_tcouple(step, ir, state, ekind, &MassQ, mdatoms); ++ update_pcouple(fplog, step, ir, state, pcoupl_mu, M, bInitStep); ++ } ++ ++ if (bVV) ++ { ++ bUpdateDoLR = (fr->bTwinRange && do_per_step(step, ir->nstcalclr)); ++ ++ /* velocity half-step update */ ++ update_coords(fplog, step, ir, mdatoms, state, fr->bMolPBC, f, ++ bUpdateDoLR, fr->f_twin, bCalcVir ? &fr->vir_twin_constr : NULL, fcd, ++ ekind, M, upd, FALSE, etrtVELOCITY2, ++ cr, nrnb, constr, &top->idef); ++ } ++ ++ /* Above, initialize just copies ekinh into ekin, ++ * it doesn't copy position (for VV), ++ * and entire integrator for MD. ++ */ ++ ++ if (ir->eI == eiVVAK) ++ { ++ copy_rvecn(state->x, cbuf, 0, state->natoms); ++ } ++ bUpdateDoLR = (fr->bTwinRange && do_per_step(step, ir->nstcalclr)); ++ ++ update_coords(fplog, step, ir, mdatoms, state, fr->bMolPBC, f, ++ bUpdateDoLR, fr->f_twin, bCalcVir ? &fr->vir_twin_constr : NULL, fcd, ++ ekind, M, upd, bInitStep, etrtPOSITION, cr, nrnb, constr, &top->idef); ++ wallcycle_stop(wcycle, ewcUPDATE); ++ ++ update_constraints(fplog, step, &dvdl_constr, ir, ekind, mdatoms, state, ++ fr->bMolPBC, graph, f, ++ &top->idef, shake_vir, ++ cr, nrnb, wcycle, upd, constr, ++ FALSE, bCalcVir, state->veta); ++ ++ if (bCalcVir && bUpdateDoLR && ir->nstcalclr > 1) ++ { ++ /* Correct the virial for multiple time stepping */ ++ m_sub(shake_vir, fr->vir_twin_constr, shake_vir); ++ } ++ ++ if (ir->eI == eiVVAK) ++ { ++ /* erase F_EKIN and F_TEMP here? */ ++ /* just compute the kinetic energy at the half step to perform a trotter step */ ++ compute_globals(fplog, gstat, cr, ir, fr, ekind, state, state_global, mdatoms, nrnb, vcm, ++ wcycle, enerd, force_vir, shake_vir, total_vir, pres, mu_tot, ++ constr, NULL, FALSE, lastbox, ++ top_global, &bSumEkinhOld, ++ cglo_flags | CGLO_TEMPERATURE ++ ); ++ wallcycle_start(wcycle, ewcUPDATE); ++ trotter_update(ir, step, ekind, enerd, state, total_vir, mdatoms, &MassQ, trotter_seq, ettTSEQ4); ++ /* now we know the scaling, we can compute the positions again again */ ++ copy_rvecn(cbuf, state->x, 0, state->natoms); ++ ++ bUpdateDoLR = (fr->bTwinRange && do_per_step(step, ir->nstcalclr)); ++ ++ update_coords(fplog, step, ir, mdatoms, state, fr->bMolPBC, f, ++ bUpdateDoLR, fr->f_twin, bCalcVir ? &fr->vir_twin_constr : NULL, fcd, ++ ekind, M, upd, bInitStep, etrtPOSITION, cr, nrnb, constr, &top->idef); ++ wallcycle_stop(wcycle, ewcUPDATE); ++ ++ /* do we need an extra constraint here? just need to copy out of state->v to upd->xp? */ ++ /* are the small terms in the shake_vir here due ++ * to numerical errors, or are they important ++ * physically? I'm thinking they are just errors, but not completely sure. ++ * For now, will call without actually constraining, constr=NULL*/ ++ update_constraints(fplog, step, NULL, ir, ekind, mdatoms, ++ state, fr->bMolPBC, graph, f, ++ &top->idef, tmp_vir, ++ cr, nrnb, wcycle, upd, NULL, ++ FALSE, bCalcVir, ++ state->veta); ++ } ++ if (!bOK) ++ { ++ gmx_fatal(FARGS, "Constraint error: Shake, Lincs or Settle could not solve the constrains"); ++ } ++ ++ if (fr->bSepDVDL && fplog && do_log) ++ { ++ gmx_print_sepdvdl(fplog, "Constraint dV/dl", 0.0, dvdl_constr); ++ } ++ if (bVV) ++ { ++ /* this factor or 2 correction is necessary ++ because half of the constraint force is removed ++ in the vv step, so we have to double it. See ++ the Redmine issue #1255. It is not yet clear ++ if the factor of 2 is exact, or just a very ++ good approximation, and this will be ++ investigated. The next step is to see if this ++ can be done adding a dhdl contribution from the ++ rattle step, but this is somewhat more ++ complicated with the current code. Will be ++ investigated, hopefully for 4.6.3. However, ++ this current solution is much better than ++ having it completely wrong. ++ */ ++ enerd->term[F_DVDL_CONSTR] += 2*dvdl_constr; ++ } ++ else ++ { ++ enerd->term[F_DVDL_CONSTR] += dvdl_constr; ++ } ++ } ++ else if (graph) ++ { ++ /* Need to unshift here */ ++ unshift_self(graph, state->box, state->x); ++ } ++ ++ if (vsite != NULL) ++ { ++ wallcycle_start(wcycle, ewcVSITECONSTR); ++ if (graph != NULL) ++ { ++ shift_self(graph, state->box, state->x); ++ } ++ construct_vsites(vsite, state->x, ir->delta_t, state->v, ++ top->idef.iparams, top->idef.il, ++ fr->ePBC, fr->bMolPBC, cr, state->box); ++ ++ if (graph != NULL) ++ { ++ unshift_self(graph, state->box, state->x); ++ } ++ wallcycle_stop(wcycle, ewcVSITECONSTR); ++ } ++ ++ /* ############## IF NOT VV, Calculate globals HERE, also iterate constraints ############ */ ++ /* With Leap-Frog we can skip compute_globals at ++ * non-communication steps, but we need to calculate ++ * the kinetic energy one step before communication. ++ */ ++ if (bGStat || (!EI_VV(ir->eI) && do_per_step(step+1, nstglobalcomm))) ++ { ++ if (ir->nstlist == -1 && bFirstIterate) ++ { ++ gs.sig[eglsNABNSB] = nlh.nabnsb; ++ } ++ compute_globals(fplog, gstat, cr, ir, fr, ekind, state, state_global, mdatoms, nrnb, vcm, ++ wcycle, enerd, force_vir, shake_vir, total_vir, pres, mu_tot, ++ constr, ++ bFirstIterate ? &gs : NULL, ++ (step_rel % gs.nstms == 0) && ++ (multisim_nsteps < 0 || (step_rel < multisim_nsteps)), ++ lastbox, ++ top_global, &bSumEkinhOld, ++ cglo_flags ++ | (!EI_VV(ir->eI) || bRerunMD ? CGLO_ENERGY : 0) ++ | (!EI_VV(ir->eI) && bStopCM ? CGLO_STOPCM : 0) ++ | (!EI_VV(ir->eI) ? CGLO_TEMPERATURE : 0) ++ | (!EI_VV(ir->eI) || bRerunMD ? CGLO_PRESSURE : 0) ++ | (iterate.bIterationActive ? CGLO_ITERATE : 0) ++ | (bFirstIterate ? CGLO_FIRSTITERATE : 0) ++ | CGLO_CONSTRAINT ++ ); ++ if (ir->nstlist == -1 && bFirstIterate) ++ { ++ nlh.nabnsb = gs.set[eglsNABNSB]; ++ gs.set[eglsNABNSB] = 0; ++ } ++ } ++ /* bIterate is set to keep it from eliminating the old ekin kinetic energy terms */ ++ /* ############# END CALC EKIN AND PRESSURE ################# */ ++ ++ /* Note: this is OK, but there are some numerical precision issues with using the convergence of ++ the virial that should probably be addressed eventually. state->veta has better properies, ++ but what we actually need entering the new cycle is the new shake_vir value. Ideally, we could ++ generate the new shake_vir, but test the veta value for convergence. This will take some thought. */ ++ ++ if (iterate.bIterationActive && ++ done_iterating(cr, fplog, step, &iterate, bFirstIterate, ++ trace(shake_vir), &tracevir)) ++ { ++ break; ++ } ++ bFirstIterate = FALSE; ++ } ++ ++ if (!bVV || bRerunMD) ++ { ++ /* sum up the foreign energy and dhdl terms for md and sd. currently done every step so that dhdl is correct in the .edr */ ++ sum_dhdl(enerd, state->lambda, ir->fepvals); ++ } ++ update_box(fplog, step, ir, mdatoms, state, f, ++ ir->nstlist == -1 ? &nlh.scale_tot : NULL, pcoupl_mu, nrnb, upd); ++ ++ /* ################# END UPDATE STEP 2 ################# */ ++ /* #### We now have r(t+dt) and v(t+dt/2) ############# */ ++ ++ /* The coordinates (x) were unshifted in update */ ++ if (!bGStat) ++ { ++ /* We will not sum ekinh_old, ++ * so signal that we still have to do it. ++ */ ++ bSumEkinhOld = TRUE; ++ } ++ ++ /* ######### BEGIN PREPARING EDR OUTPUT ########### */ ++ ++ /* use the directly determined last velocity, not actually the averaged half steps */ ++ if (bTrotter && ir->eI == eiVV) ++ { ++ enerd->term[F_EKIN] = last_ekin; ++ } ++ enerd->term[F_ETOT] = enerd->term[F_EPOT] + enerd->term[F_EKIN]; ++ ++ if (bVV) ++ { ++ enerd->term[F_ECONSERVED] = enerd->term[F_ETOT] + saved_conserved_quantity; ++ } ++ else ++ { ++ enerd->term[F_ECONSERVED] = enerd->term[F_ETOT] + compute_conserved_from_auxiliary(ir, state, &MassQ); ++ } ++ /* ######### END PREPARING EDR OUTPUT ########### */ ++ ++ /* Output stuff */ ++ if (MASTER(cr)) ++ { ++ gmx_bool do_dr, do_or; ++ ++ if (fplog && do_log && bDoExpanded) ++ { ++ /* only needed if doing expanded ensemble */ ++ PrintFreeEnergyInfoToFile(fplog, ir->fepvals, ir->expandedvals, ir->bSimTemp ? ir->simtempvals : NULL, ++ &state_global->dfhist, state->fep_state, ir->nstlog, step); ++ } ++ if (!(bStartingFromCpt && (EI_VV(ir->eI)))) ++ { ++ if (bCalcEner) ++ { ++ upd_mdebin(mdebin, bDoDHDL, TRUE, ++ t, mdatoms->tmass, enerd, state, ++ ir->fepvals, ir->expandedvals, lastbox, ++ shake_vir, force_vir, total_vir, pres, ++ ekind, mu_tot, constr); ++ } ++ else ++ { ++ upd_mdebin_step(mdebin); ++ } ++ ++ do_dr = do_per_step(step, ir->nstdisreout); ++ do_or = do_per_step(step, ir->nstorireout); ++ ++ print_ebin(mdoutf_get_fp_ene(outf), do_ene, do_dr, do_or, do_log ? fplog : NULL, ++ step, t, ++ eprNORMAL, bCompact, mdebin, fcd, groups, &(ir->opts)); ++ } ++ if (ir->ePull != epullNO) ++ { ++ pull_print_output(ir->pull, step, t); ++ } ++ ++ if (do_per_step(step, ir->nstlog)) ++ { ++ if (fflush(fplog) != 0) ++ { ++ gmx_fatal(FARGS, "Cannot flush logfile - maybe you are out of disk space?"); ++ } ++ } ++ } ++ if (bDoExpanded) ++ { ++ /* Have to do this part _after_ outputting the logfile and the edr file */ ++ /* Gets written into the state at the beginning of next loop*/ ++ state->fep_state = lamnew; ++ } ++ /* Print the remaining wall clock time for the run */ ++ if (MULTIMASTER(cr) && (do_verbose || gmx_got_usr_signal()) && !bPMETuneRunning) ++ { ++ if (shellfc) ++ { ++ fprintf(stderr, "\n"); ++ } ++ print_time(stderr, walltime_accounting, step, ir, cr); ++ } ++ ++ /* Ion/water position swapping. ++ * Not done in last step since trajectory writing happens before this call ++ * in the MD loop and exchanges would be lost anyway. */ ++ bNeedRepartition = FALSE; ++ if ((ir->eSwapCoords != eswapNO) && (step > 0) && !bLastStep && ++ do_per_step(step, ir->swap->nstswap)) ++ { ++ bNeedRepartition = do_swapcoords(cr, step, t, ir, wcycle, ++ bRerunMD ? rerun_fr.x : state->x, ++ bRerunMD ? rerun_fr.box : state->box, ++ top_global, MASTER(cr) && bVerbose, bRerunMD); ++ ++ if (bNeedRepartition && DOMAINDECOMP(cr)) ++ { ++ dd_collect_state(cr->dd, state, state_global); ++ } ++ } ++ ++ /* Replica exchange */ ++ bExchanged = FALSE; ++ if (bDoReplEx) ++ { ++ bExchanged = replica_exchange(fplog, cr, repl_ex, ++ state_global, enerd, ++ state, step, t); ++ } ++ ++ if ( (bExchanged || bNeedRepartition) && DOMAINDECOMP(cr) ) ++ { ++ dd_partition_system(fplog, step, cr, TRUE, 1, ++ state_global, top_global, ir, ++ state, &f, mdatoms, top, fr, ++ vsite, shellfc, constr, ++ nrnb, wcycle, FALSE); ++ } ++ ++ bFirstStep = FALSE; ++ bInitStep = FALSE; ++ bStartingFromCpt = FALSE; ++ ++ /* ####### SET VARIABLES FOR NEXT ITERATION IF THEY STILL NEED IT ###### */ ++ /* With all integrators, except VV, we need to retain the pressure ++ * at the current step for coupling at the next step. ++ */ ++ if ((state->flags & (1<nstpcouple > 0 && step % ir->nstpcouple == 0))) ++ { ++ /* Store the pressure in t_state for pressure coupling ++ * at the next MD step. ++ */ ++ copy_mat(pres, state->pres_prev); ++ } ++ ++ /* ####### END SET VARIABLES FOR NEXT ITERATION ###### */ ++ ++ if ( (membed != NULL) && (!bLastStep) ) ++ { ++ rescale_membed(step_rel, membed, state_global->x); ++ } ++ ++ if (bRerunMD) ++ { ++ if (MASTER(cr)) ++ { ++ /* read next frame from input trajectory */ ++ bNotLastFrame = read_next_frame(oenv, status, &rerun_fr); ++ } ++ ++ if (PAR(cr)) ++ { ++ rerun_parallel_comm(cr, &rerun_fr, &bNotLastFrame); ++ } ++ } ++ ++ if (!bRerunMD || !rerun_fr.bStep) ++ { ++ /* increase the MD step number */ ++ step++; ++ step_rel++; ++ } ++ ++ cycles = wallcycle_stop(wcycle, ewcSTEP); ++ if (DOMAINDECOMP(cr) && wcycle) ++ { ++ dd_cycles_add(cr->dd, cycles, ddCyclStep); ++ } ++ ++ if (bPMETuneRunning || bPMETuneTry) ++ { ++ /* PME grid + cut-off optimization with GPUs or PME nodes */ ++ ++ /* Count the total cycles over the last steps */ ++ cycles_pmes += cycles; ++ ++ /* We can only switch cut-off at NS steps */ ++ if (step % ir->nstlist == 0) ++ { ++ /* PME grid + cut-off optimization with GPUs or PME nodes */ ++ if (bPMETuneTry) ++ { ++ if (DDMASTER(cr->dd)) ++ { ++ /* PME node load is too high, start tuning */ ++ bPMETuneRunning = (dd_pme_f_ratio(cr->dd) >= 1.05); ++ } ++ dd_bcast(cr->dd, sizeof(gmx_bool), &bPMETuneRunning); ++ ++ if (bPMETuneRunning && ++ fr->nbv->bUseGPU && DOMAINDECOMP(cr) && ++ !(cr->duty & DUTY_PME)) ++ { ++ /* Lock DLB=auto to off (does nothing when DLB=yes/no). ++ * With GPUs + separate PME ranks, we don't want DLB. ++ * This could happen when we scan coarse grids and ++ * it would then never be turned off again. ++ * This would hurt performance at the final, optimal ++ * grid spacing, where DLB almost never helps. ++ * Also, DLB can limit the cut-off for PME tuning. ++ */ ++ dd_dlb_set_lock(cr->dd, TRUE); ++ } ++ ++ if (bPMETuneRunning || step_rel > ir->nstlist*50) ++ { ++ bPMETuneTry = FALSE; ++ } ++ } ++ if (bPMETuneRunning) ++ { ++ /* init_step might not be a multiple of nstlist, ++ * but the first cycle is always skipped anyhow. ++ */ ++ bPMETuneRunning = ++ pme_load_balance(pme_loadbal, cr, ++ (bVerbose && MASTER(cr)) ? stderr : NULL, ++ fplog, ++ ir, state, cycles_pmes, ++ fr->ic, fr->nbv, &fr->pmedata, ++ step); ++ ++ /* Update constants in forcerec/inputrec to keep them in sync with fr->ic */ ++ fr->ewaldcoeff_q = fr->ic->ewaldcoeff_q; ++ fr->ewaldcoeff_lj = fr->ic->ewaldcoeff_lj; ++ fr->rlist = fr->ic->rlist; ++ fr->rlistlong = fr->ic->rlistlong; ++ fr->rcoulomb = fr->ic->rcoulomb; ++ fr->rvdw = fr->ic->rvdw; ++ ++ if (ir->eDispCorr != edispcNO) ++ { ++ calc_enervirdiff(NULL, ir->eDispCorr, fr); ++ } ++ ++ if (!bPMETuneRunning && ++ DOMAINDECOMP(cr) && ++ dd_dlb_is_locked(cr->dd)) ++ { ++ /* Unlock the DLB=auto, DLB is allowed to activate ++ * (but we don't expect it to activate in most cases). ++ */ ++ dd_dlb_set_lock(cr->dd, FALSE); ++ } ++ } ++ cycles_pmes = 0; ++ } ++ } ++ ++ if (step_rel == wcycle_get_reset_counters(wcycle) || ++ gs.set[eglsRESETCOUNTERS] != 0) ++ { ++ /* Reset all the counters related to performance over the run */ ++ reset_all_counters(fplog, cr, step, &step_rel, ir, wcycle, nrnb, walltime_accounting, ++ fr->nbv != NULL && fr->nbv->bUseGPU ? fr->nbv->cu_nbv : NULL); ++ wcycle_set_reset_counters(wcycle, -1); ++ if (!(cr->duty & DUTY_PME)) ++ { ++ /* Tell our PME node to reset its counters */ ++ gmx_pme_send_resetcounters(cr, step); ++ } ++ /* Correct max_hours for the elapsed time */ ++ max_hours -= elapsed_time/(60.0*60.0); ++ bResetCountersHalfMaxH = FALSE; ++ gs.set[eglsRESETCOUNTERS] = 0; ++ } ++ ++ /* If bIMD is TRUE, the master updates the IMD energy record and sends positions to VMD client */ ++ IMD_prep_energies_send_positions(ir->bIMD && MASTER(cr), bIMDstep, ir->imd, enerd, step, bCalcEner, wcycle); ++ ++ } ++ /* End of main MD loop */ ++ debug_gmx(); ++ ++ /* Closing TNG files can include compressing data. Therefore it is good to do that ++ * before stopping the time measurements. */ ++ mdoutf_tng_close(outf); ++ ++ /* Stop measuring walltime */ ++ walltime_accounting_end(walltime_accounting); ++ ++ if (bRerunMD && MASTER(cr)) ++ { ++ close_trj(status); ++ } ++ ++ if (!(cr->duty & DUTY_PME)) ++ { ++ /* Tell the PME only node to finish */ ++ gmx_pme_send_finish(cr); ++ } ++ ++ if (MASTER(cr)) ++ { ++ if (ir->nstcalcenergy > 0 && !bRerunMD) ++ { ++ print_ebin(mdoutf_get_fp_ene(outf), FALSE, FALSE, FALSE, fplog, step, t, ++ eprAVER, FALSE, mdebin, fcd, groups, &(ir->opts)); ++ } ++ } ++ ++ done_mdoutf(outf); ++ debug_gmx(); ++ ++ if (ir->nstlist == -1 && nlh.nns > 0 && fplog) ++ { ++ fprintf(fplog, "Average neighborlist lifetime: %.1f steps, std.dev.: %.1f steps\n", nlh.s1/nlh.nns, sqrt(nlh.s2/nlh.nns - sqr(nlh.s1/nlh.nns))); ++ fprintf(fplog, "Average number of atoms that crossed the half buffer length: %.1f\n\n", nlh.ab/nlh.nns); ++ } ++ ++ if (pme_loadbal != NULL) ++ { ++ pme_loadbal_done(pme_loadbal, cr, fplog, ++ fr->nbv != NULL && fr->nbv->bUseGPU); ++ } ++ ++ if (shellfc && fplog) ++ { ++ fprintf(fplog, "Fraction of iterations that converged: %.2f %%\n", ++ (nconverged*100.0)/step_rel); ++ fprintf(fplog, "Average number of force evaluations per MD step: %.2f\n\n", ++ tcount/step_rel); ++ } ++ ++ if (repl_ex_nst > 0 && MASTER(cr)) ++ { ++ print_replica_exchange_statistics(fplog, repl_ex); ++ } ++ ++ /* IMD cleanup, if bIMD is TRUE. */ ++ IMD_finalize(ir->bIMD, ir->imd); ++ ++ walltime_accounting_set_nsteps_done(walltime_accounting, step_rel); ++ ++ return 0; ++} +diff --git a/src/programs/mdrun/mdrun.cpp b/src/programs/mdrun/mdrun.cpp +index 6bac3f0..e9fbf48 100644 +--- a/src/programs/mdrun/mdrun.cpp ++++ b/src/programs/mdrun/mdrun.cpp +@@ -55,6 +55,12 @@ + + #include "gromacs/commandline/pargs.h" + #include "gromacs/fileio/filenm.h" ++/* PLUMED */ ++#include "../../../Plumed.h" ++extern int plumedswitch; ++extern plumed plumedmain; ++extern void(*plumedcmd)(plumed,const char*,const void*); ++/* END PLUMED */ + + int gmx_mdrun(int argc, char *argv[]) + { +@@ -428,6 +434,7 @@ int gmx_mdrun(int argc, char *argv[]) + { efMTX, "-mtx", "nm", ffOPTWR }, + { efNDX, "-dn", "dipole", ffOPTWR }, + { efRND, "-multidir", NULL, ffOPTRDMULT}, ++ { efDAT, "-plumed", "plumed", ffOPTRD }, /* PLUMED */ + { efDAT, "-membed", "membed", ffOPTRD }, + { efTOP, "-mp", "membed", ffOPTRD }, + { efNDX, "-mn", "membed", ffOPTRD }, +@@ -780,6 +787,32 @@ int gmx_mdrun(int argc, char *argv[]) + ddxyz[YY] = (int)(realddxyz[YY] + 0.5); + ddxyz[ZZ] = (int)(realddxyz[ZZ] + 0.5); + ++ /* PLUMED */ ++ plumedswitch=0; ++ if (opt2bSet("-plumed",NFILE,fnm)) plumedswitch=1; ++ if(plumedswitch){ ++ plumedcmd=plumed_cmd; ++ int plumed_is_there=0; ++ int real_precision=sizeof(real); ++ real energyUnits=1.0; ++ real lengthUnits=1.0; ++ real timeUnits=1.0; ++ ++ if(!plumed_installed()){ ++ gmx_fatal(FARGS,"Plumed is not available. Check your PLUMED_KERNEL variable."); ++ } ++ plumedmain=plumed_create(); ++ plumed_cmd(plumedmain,"setRealPrecision",&real_precision); ++ // this is not necessary for gromacs units: ++ plumed_cmd(plumedmain,"setMDEnergyUnits",&energyUnits); ++ plumed_cmd(plumedmain,"setMDLengthUnits",&lengthUnits); ++ plumed_cmd(plumedmain,"setMDTimeUnits",&timeUnits); ++ // ++ plumed_cmd(plumedmain,"setPlumedDat",ftp2fn(efDAT,NFILE,fnm)); ++ plumedswitch=1; ++ } ++ /* END PLUMED */ ++ + rc = mdrunner(&hw_opt, fplog, cr, NFILE, fnm, oenv, bVerbose, bCompact, + nstglobalcomm, ddxyz, dd_node_order, rdd, rconstr, + dddlb_opt[0], dlb_scale, ddcsx, ddcsy, ddcsz, +@@ -788,6 +821,12 @@ int gmx_mdrun(int argc, char *argv[]) + nmultisim, repl_ex_nst, repl_ex_nex, repl_ex_seed, + pforce, cpt_period, max_hours, deviceOptions, imdport, Flags); + ++ /* PLUMED */ ++ if(plumedswitch){ ++ plumed_finalize(plumedmain); ++ } ++ /* END PLUMED */ ++ + /* Log file has to be closed in mdrunner if we are appending to it + (fplog not set here) */ + if (MASTER(cr) && !bAppendFiles) +diff --git a/src/programs/mdrun/mdrun.cpp.preplumed b/src/programs/mdrun/mdrun.cpp.preplumed +new file mode 100644 +index 0000000..6bac3f0 +--- /dev/null ++++ b/src/programs/mdrun/mdrun.cpp.preplumed +@@ -0,0 +1,799 @@ ++/* ++ * This file is part of the GROMACS molecular simulation package. ++ * ++ * Copyright (c) 1991-2000, University of Groningen, The Netherlands. ++ * Copyright (c) 2001-2004, The GROMACS development team. ++ * Copyright (c) 2011,2012,2013,2014, by the GROMACS development team, led by ++ * Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl, ++ * and including many others, as listed in the AUTHORS file in the ++ * top-level source directory and at http://www.gromacs.org. ++ * ++ * GROMACS 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; either version 2.1 ++ * of the License, or (at your option) any later version. ++ * ++ * GROMACS 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 ++ * Lesser General Public License for more details. ++ * ++ * You should have received a copy of the GNU Lesser General Public ++ * License along with GROMACS; if not, see ++ * http://www.gnu.org/licenses, or write to the Free Software Foundation, ++ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. ++ * ++ * If you want to redistribute modifications to GROMACS, please ++ * consider that scientific software is very special. Version ++ * control is crucial - bugs must be traceable. We will be happy to ++ * consider code for inclusion in the official distribution, but ++ * derived work must not be called official GROMACS. Details are found ++ * in the README & COPYING files - if they are missing, get the ++ * official version at http://www.gromacs.org. ++ * ++ * To help us fund GROMACS development, we humbly ask that you cite ++ * the research papers on the package. Check out http://www.gromacs.org. ++ */ ++#include "mdrun_main.h" ++ ++#ifdef HAVE_CONFIG_H ++#include "config.h" ++#endif ++ ++#include ++ ++#include "gromacs/legacyheaders/checkpoint.h" ++#include "gromacs/legacyheaders/copyrite.h" ++#include "gromacs/legacyheaders/gmx_fatal.h" ++#include "gromacs/legacyheaders/macros.h" ++#include "gromacs/legacyheaders/main.h" ++#include "gromacs/legacyheaders/mdrun.h" ++#include "gromacs/legacyheaders/network.h" ++#include "gromacs/legacyheaders/readinp.h" ++#include "gromacs/legacyheaders/typedefs.h" ++#include "gromacs/legacyheaders/types/commrec.h" ++ ++#include "gromacs/commandline/pargs.h" ++#include "gromacs/fileio/filenm.h" ++ ++int gmx_mdrun(int argc, char *argv[]) ++{ ++ const char *desc[] = { ++ "[THISMODULE] is the main computational chemistry engine", ++ "within GROMACS. Obviously, it performs Molecular Dynamics simulations,", ++ "but it can also perform Stochastic Dynamics, Energy Minimization,", ++ "test particle insertion or (re)calculation of energies.", ++ "Normal mode analysis is another option. In this case [TT]mdrun[tt]", ++ "builds a Hessian matrix from single conformation.", ++ "For usual Normal Modes-like calculations, make sure that", ++ "the structure provided is properly energy-minimized.", ++ "The generated matrix can be diagonalized by [gmx-nmeig].[PAR]", ++ "The [TT]mdrun[tt] program reads the run input file ([TT]-s[tt])", ++ "and distributes the topology over ranks if needed.", ++ "[TT]mdrun[tt] produces at least four output files.", ++ "A single log file ([TT]-g[tt]) is written, unless the option", ++ "[TT]-seppot[tt] is used, in which case each rank writes a log file.", ++ "The trajectory file ([TT]-o[tt]), contains coordinates, velocities and", ++ "optionally forces.", ++ "The structure file ([TT]-c[tt]) contains the coordinates and", ++ "velocities of the last step.", ++ "The energy file ([TT]-e[tt]) contains energies, the temperature,", ++ "pressure, etc, a lot of these things are also printed in the log file.", ++ "Optionally coordinates can be written to a compressed trajectory file", ++ "([TT]-x[tt]).[PAR]", ++ "The option [TT]-dhdl[tt] is only used when free energy calculation is", ++ "turned on.[PAR]", ++ "A simulation can be run in parallel using two different parallelization", ++ "schemes: MPI parallelization and/or OpenMP thread parallelization.", ++ "The MPI parallelization uses multiple processes when [TT]mdrun[tt] is", ++ "compiled with a normal MPI library or threads when [TT]mdrun[tt] is", ++ "compiled with the GROMACS built-in thread-MPI library. OpenMP threads", ++ "are supported when [TT]mdrun[tt] is compiled with OpenMP. Full OpenMP support", ++ "is only available with the Verlet cut-off scheme, with the (older)", ++ "group scheme only PME-only ranks can use OpenMP parallelization.", ++ "In all cases [TT]mdrun[tt] will by default try to use all the available", ++ "hardware resources. With a normal MPI library only the options", ++ "[TT]-ntomp[tt] (with the Verlet cut-off scheme) and [TT]-ntomp_pme[tt],", ++ "for PME-only ranks, can be used to control the number of threads.", ++ "With thread-MPI there are additional options [TT]-nt[tt], which sets", ++ "the total number of threads, and [TT]-ntmpi[tt], which sets the number", ++ "of thread-MPI threads.", ++ "The number of OpenMP threads used by [TT]mdrun[tt] can also be set with", ++ "the standard environment variable, [TT]OMP_NUM_THREADS[tt].", ++ "The [TT]GMX_PME_NUM_THREADS[tt] environment variable can be used to specify", ++ "the number of threads used by the PME-only ranks.[PAR]", ++ "Note that combined MPI+OpenMP parallelization is in many cases", ++ "slower than either on its own. However, at high parallelization, using the", ++ "combination is often beneficial as it reduces the number of domains and/or", ++ "the number of MPI ranks. (Less and larger domains can improve scaling,", ++ "with separate PME ranks, using fewer MPI ranks reduces communication costs.)", ++ "OpenMP-only parallelization is typically faster than MPI-only parallelization", ++ "on a single CPU(-die). Since we currently don't have proper hardware", ++ "topology detection, [TT]mdrun[tt] compiled with thread-MPI will only", ++ "automatically use OpenMP-only parallelization when you use up to 4", ++ "threads, up to 12 threads with Intel Nehalem/Westmere, or up to 16", ++ "threads with Intel Sandy Bridge or newer CPUs. Otherwise MPI-only", ++ "parallelization is used (except with GPUs, see below).", ++ "[PAR]", ++ "To quickly test the performance of the new Verlet cut-off scheme", ++ "with old [TT].tpr[tt] files, either on CPUs or CPUs+GPUs, you can use", ++ "the [TT]-testverlet[tt] option. This should not be used for production,", ++ "since it can slightly modify potentials and it will remove charge groups", ++ "making analysis difficult, as the [TT].tpr[tt] file will still contain", ++ "charge groups. For production simulations it is highly recommended", ++ "to specify [TT]cutoff-scheme = Verlet[tt] in the [TT].mdp[tt] file.", ++ "[PAR]", ++ "With GPUs (only supported with the Verlet cut-off scheme), the number", ++ "of GPUs should match the number of particle-particle ranks, i.e.", ++ "excluding PME-only ranks. With thread-MPI, unless set on the command line, the number", ++ "of MPI threads will automatically be set to the number of GPUs detected.", ++ "To use a subset of the available GPUs, or to manually provide a mapping of", ++ "GPUs to PP ranks, you can use the [TT]-gpu_id[tt] option. The argument of [TT]-gpu_id[tt] is", ++ "a string of digits (without delimiter) representing device id-s of the GPUs to be used.", ++ "For example, \"[TT]02[tt]\" specifies using GPUs 0 and 2 in the first and second PP ranks per compute node", ++ "respectively. To select different sets of GPU-s", ++ "on different nodes of a compute cluster, use the [TT]GMX_GPU_ID[tt] environment", ++ "variable instead. The format for [TT]GMX_GPU_ID[tt] is identical to ", ++ "[TT]-gpu_id[tt], with the difference that an environment variable can have", ++ "different values on different compute nodes. Multiple MPI ranks on each node", ++ "can share GPUs. This is accomplished by specifying the id(s) of the GPU(s)", ++ "multiple times, e.g. \"[TT]0011[tt]\" for four ranks sharing two GPUs in this node.", ++ "This works within a single simulation, or a multi-simulation, with any form of MPI.", ++ "[PAR]", ++ "With the Verlet cut-off scheme and verlet-buffer-tolerance set,", ++ "the pair-list update interval nstlist can be chosen freely with", ++ "the option [TT]-nstlist[tt]. [TT]mdrun[tt] will then adjust", ++ "the pair-list cut-off to maintain accuracy, and not adjust nstlist.", ++ "Otherwise, by default, [TT]mdrun[tt] will try to increase the", ++ "value of nstlist set in the [TT].mdp[tt] file to improve the", ++ "performance. For CPU-only runs, nstlist might increase to 20, for", ++ "GPU runs up to 40. For medium to high parallelization or with", ++ "fast GPUs, a (user-supplied) larger nstlist value can give much", ++ "better performance.", ++ "[PAR]", ++ "When using PME with separate PME ranks or with a GPU, the two major", ++ "compute tasks, the non-bonded force calculation and the PME calculation", ++ "run on different compute resources. If this load is not balanced,", ++ "some of the resources will be idle part of time. With the Verlet", ++ "cut-off scheme this load is automatically balanced when the PME load", ++ "is too high (but not when it is too low). This is done by scaling", ++ "the Coulomb cut-off and PME grid spacing by the same amount. In the first", ++ "few hundred steps different settings are tried and the fastest is chosen", ++ "for the rest of the simulation. This does not affect the accuracy of", ++ "the results, but it does affect the decomposition of the Coulomb energy", ++ "into particle and mesh contributions. The auto-tuning can be turned off", ++ "with the option [TT]-notunepme[tt].", ++ "[PAR]", ++ "[TT]mdrun[tt] pins (sets affinity of) threads to specific cores,", ++ "when all (logical) cores on a compute node are used by [TT]mdrun[tt],", ++ "even when no multi-threading is used,", ++ "as this usually results in significantly better performance.", ++ "If the queuing systems or the OpenMP library pinned threads, we honor", ++ "this and don't pin again, even though the layout may be sub-optimal.", ++ "If you want to have [TT]mdrun[tt] override an already set thread affinity", ++ "or pin threads when using less cores, use [TT]-pin on[tt].", ++ "With SMT (simultaneous multithreading), e.g. Intel Hyper-Threading,", ++ "there are multiple logical cores per physical core.", ++ "The option [TT]-pinstride[tt] sets the stride in logical cores for", ++ "pinning consecutive threads. Without SMT, 1 is usually the best choice.", ++ "With Intel Hyper-Threading 2 is best when using half or less of the", ++ "logical cores, 1 otherwise. The default value of 0 do exactly that:", ++ "it minimizes the threads per logical core, to optimize performance.", ++ "If you want to run multiple [TT]mdrun[tt] jobs on the same physical node," ++ "you should set [TT]-pinstride[tt] to 1 when using all logical cores.", ++ "When running multiple [TT]mdrun[tt] (or other) simulations on the same physical", ++ "node, some simulations need to start pinning from a non-zero core", ++ "to avoid overloading cores; with [TT]-pinoffset[tt] you can specify", ++ "the offset in logical cores for pinning.", ++ "[PAR]", ++ "When [TT]mdrun[tt] is started with more than 1 rank,", ++ "parallelization with domain decomposition is used.", ++ "[PAR]", ++ "With domain decomposition, the spatial decomposition can be set", ++ "with option [TT]-dd[tt]. By default [TT]mdrun[tt] selects a good decomposition.", ++ "The user only needs to change this when the system is very inhomogeneous.", ++ "Dynamic load balancing is set with the option [TT]-dlb[tt],", ++ "which can give a significant performance improvement,", ++ "especially for inhomogeneous systems. The only disadvantage of", ++ "dynamic load balancing is that runs are no longer binary reproducible,", ++ "but in most cases this is not important.", ++ "By default the dynamic load balancing is automatically turned on", ++ "when the measured performance loss due to load imbalance is 5% or more.", ++ "At low parallelization these are the only important options", ++ "for domain decomposition.", ++ "At high parallelization the options in the next two sections", ++ "could be important for increasing the performace.", ++ "[PAR]", ++ "When PME is used with domain decomposition, separate ranks can", ++ "be assigned to do only the PME mesh calculation;", ++ "this is computationally more efficient starting at about 12 ranks,", ++ "or even fewer when OpenMP parallelization is used.", ++ "The number of PME ranks is set with option [TT]-npme[tt],", ++ "but this cannot be more than half of the ranks.", ++ "By default [TT]mdrun[tt] makes a guess for the number of PME", ++ "ranks when the number of ranks is larger than 16. With GPUs,", ++ "using separate PME ranks is not selected automatically,", ++ "since the optimal setup depends very much on the details", ++ "of the hardware. In all cases, you might gain performance", ++ "by optimizing [TT]-npme[tt]. Performance statistics on this issue", ++ "are written at the end of the log file.", ++ "For good load balancing at high parallelization, the PME grid x and y", ++ "dimensions should be divisible by the number of PME ranks", ++ "(the simulation will run correctly also when this is not the case).", ++ "[PAR]", ++ "This section lists all options that affect the domain decomposition.", ++ "[PAR]", ++ "Option [TT]-rdd[tt] can be used to set the required maximum distance", ++ "for inter charge-group bonded interactions.", ++ "Communication for two-body bonded interactions below the non-bonded", ++ "cut-off distance always comes for free with the non-bonded communication.", ++ "Atoms beyond the non-bonded cut-off are only communicated when they have", ++ "missing bonded interactions; this means that the extra cost is minor", ++ "and nearly indepedent of the value of [TT]-rdd[tt].", ++ "With dynamic load balancing option [TT]-rdd[tt] also sets", ++ "the lower limit for the domain decomposition cell sizes.", ++ "By default [TT]-rdd[tt] is determined by [TT]mdrun[tt] based on", ++ "the initial coordinates. The chosen value will be a balance", ++ "between interaction range and communication cost.", ++ "[PAR]", ++ "When inter charge-group bonded interactions are beyond", ++ "the bonded cut-off distance, [TT]mdrun[tt] terminates with an error message.", ++ "For pair interactions and tabulated bonds", ++ "that do not generate exclusions, this check can be turned off", ++ "with the option [TT]-noddcheck[tt].", ++ "[PAR]", ++ "When constraints are present, option [TT]-rcon[tt] influences", ++ "the cell size limit as well.", ++ "Atoms connected by NC constraints, where NC is the LINCS order plus 1,", ++ "should not be beyond the smallest cell size. A error message is", ++ "generated when this happens and the user should change the decomposition", ++ "or decrease the LINCS order and increase the number of LINCS iterations.", ++ "By default [TT]mdrun[tt] estimates the minimum cell size required for P-LINCS", ++ "in a conservative fashion. For high parallelization it can be useful", ++ "to set the distance required for P-LINCS with the option [TT]-rcon[tt].", ++ "[PAR]", ++ "The [TT]-dds[tt] option sets the minimum allowed x, y and/or z scaling", ++ "of the cells with dynamic load balancing. [TT]mdrun[tt] will ensure that", ++ "the cells can scale down by at least this factor. This option is used", ++ "for the automated spatial decomposition (when not using [TT]-dd[tt])", ++ "as well as for determining the number of grid pulses, which in turn", ++ "sets the minimum allowed cell size. Under certain circumstances", ++ "the value of [TT]-dds[tt] might need to be adjusted to account for", ++ "high or low spatial inhomogeneity of the system.", ++ "[PAR]", ++ "The option [TT]-gcom[tt] can be used to only do global communication", ++ "every n steps.", ++ "This can improve performance for highly parallel simulations", ++ "where this global communication step becomes the bottleneck.", ++ "For a global thermostat and/or barostat the temperature", ++ "and/or pressure will also only be updated every [TT]-gcom[tt] steps.", ++ "By default it is set to the minimum of nstcalcenergy and nstlist.[PAR]", ++ "With [TT]-rerun[tt] an input trajectory can be given for which ", ++ "forces and energies will be (re)calculated. Neighbor searching will be", ++ "performed for every frame, unless [TT]nstlist[tt] is zero", ++ "(see the [TT].mdp[tt] file).[PAR]", ++ "ED (essential dynamics) sampling and/or additional flooding potentials", ++ "are switched on by using the [TT]-ei[tt] flag followed by an [TT].edi[tt]", ++ "file. The [TT].edi[tt] file can be produced with the [TT]make_edi[tt] tool", ++ "or by using options in the essdyn menu of the WHAT IF program.", ++ "[TT]mdrun[tt] produces a [TT].xvg[tt] output file that", ++ "contains projections of positions, velocities and forces onto selected", ++ "eigenvectors.[PAR]", ++ "When user-defined potential functions have been selected in the", ++ "[TT].mdp[tt] file the [TT]-table[tt] option is used to pass [TT]mdrun[tt]", ++ "a formatted table with potential functions. The file is read from", ++ "either the current directory or from the [TT]GMXLIB[tt] directory.", ++ "A number of pre-formatted tables are presented in the [TT]GMXLIB[tt] dir,", ++ "for 6-8, 6-9, 6-10, 6-11, 6-12 Lennard-Jones potentials with", ++ "normal Coulomb.", ++ "When pair interactions are present, a separate table for pair interaction", ++ "functions is read using the [TT]-tablep[tt] option.[PAR]", ++ "When tabulated bonded functions are present in the topology,", ++ "interaction functions are read using the [TT]-tableb[tt] option.", ++ "For each different tabulated interaction type the table file name is", ++ "modified in a different way: before the file extension an underscore is", ++ "appended, then a 'b' for bonds, an 'a' for angles or a 'd' for dihedrals", ++ "and finally the table number of the interaction type.[PAR]", ++ "The options [TT]-px[tt] and [TT]-pf[tt] are used for writing pull COM", ++ "coordinates and forces when pulling is selected", ++ "in the [TT].mdp[tt] file.[PAR]", ++ "With [TT]-multi[tt] or [TT]-multidir[tt], multiple systems can be ", ++ "simulated in parallel.", ++ "As many input files/directories are required as the number of systems. ", ++ "The [TT]-multidir[tt] option takes a list of directories (one for each ", ++ "system) and runs in each of them, using the input/output file names, ", ++ "such as specified by e.g. the [TT]-s[tt] option, relative to these ", ++ "directories.", ++ "With [TT]-multi[tt], the system number is appended to the run input ", ++ "and each output filename, for instance [TT]topol.tpr[tt] becomes", ++ "[TT]topol0.tpr[tt], [TT]topol1.tpr[tt] etc.", ++ "The number of ranks per system is the total number of ranks", ++ "divided by the number of systems.", ++ "One use of this option is for NMR refinement: when distance", ++ "or orientation restraints are present these can be ensemble averaged", ++ "over all the systems.[PAR]", ++ "With [TT]-replex[tt] replica exchange is attempted every given number", ++ "of steps. The number of replicas is set with the [TT]-multi[tt] or ", ++ "[TT]-multidir[tt] option, described above.", ++ "All run input files should use a different coupling temperature,", ++ "the order of the files is not important. The random seed is set with", ++ "[TT]-reseed[tt]. The velocities are scaled and neighbor searching", ++ "is performed after every exchange.[PAR]", ++ "Finally some experimental algorithms can be tested when the", ++ "appropriate options have been given. Currently under", ++ "investigation are: polarizability.", ++ "[PAR]", ++ "The option [TT]-membed[tt] does what used to be g_membed, i.e. embed", ++ "a protein into a membrane. The data file should contain the options", ++ "that where passed to g_membed before. The [TT]-mn[tt] and [TT]-mp[tt]", ++ "both apply to this as well.", ++ "[PAR]", ++ "The option [TT]-pforce[tt] is useful when you suspect a simulation", ++ "crashes due to too large forces. With this option coordinates and", ++ "forces of atoms with a force larger than a certain value will", ++ "be printed to stderr.", ++ "[PAR]", ++ "Checkpoints containing the complete state of the system are written", ++ "at regular intervals (option [TT]-cpt[tt]) to the file [TT]-cpo[tt],", ++ "unless option [TT]-cpt[tt] is set to -1.", ++ "The previous checkpoint is backed up to [TT]state_prev.cpt[tt] to", ++ "make sure that a recent state of the system is always available,", ++ "even when the simulation is terminated while writing a checkpoint.", ++ "With [TT]-cpnum[tt] all checkpoint files are kept and appended", ++ "with the step number.", ++ "A simulation can be continued by reading the full state from file", ++ "with option [TT]-cpi[tt]. This option is intelligent in the way that", ++ "if no checkpoint file is found, Gromacs just assumes a normal run and", ++ "starts from the first step of the [TT].tpr[tt] file. By default the output", ++ "will be appending to the existing output files. The checkpoint file", ++ "contains checksums of all output files, such that you will never", ++ "loose data when some output files are modified, corrupt or removed.", ++ "There are three scenarios with [TT]-cpi[tt]:[PAR]", ++ "[TT]*[tt] no files with matching names are present: new output files are written[PAR]", ++ "[TT]*[tt] all files are present with names and checksums matching those stored", ++ "in the checkpoint file: files are appended[PAR]", ++ "[TT]*[tt] otherwise no files are modified and a fatal error is generated[PAR]", ++ "With [TT]-noappend[tt] new output files are opened and the simulation", ++ "part number is added to all output file names.", ++ "Note that in all cases the checkpoint file itself is not renamed", ++ "and will be overwritten, unless its name does not match", ++ "the [TT]-cpo[tt] option.", ++ "[PAR]", ++ "With checkpointing the output is appended to previously written", ++ "output files, unless [TT]-noappend[tt] is used or none of the previous", ++ "output files are present (except for the checkpoint file).", ++ "The integrity of the files to be appended is verified using checksums", ++ "which are stored in the checkpoint file. This ensures that output can", ++ "not be mixed up or corrupted due to file appending. When only some", ++ "of the previous output files are present, a fatal error is generated", ++ "and no old output files are modified and no new output files are opened.", ++ "The result with appending will be the same as from a single run.", ++ "The contents will be binary identical, unless you use a different number", ++ "of ranks or dynamic load balancing or the FFT library uses optimizations", ++ "through timing.", ++ "[PAR]", ++ "With option [TT]-maxh[tt] a simulation is terminated and a checkpoint", ++ "file is written at the first neighbor search step where the run time", ++ "exceeds [TT]-maxh[tt]*0.99 hours.", ++ "[PAR]", ++ "When [TT]mdrun[tt] receives a TERM signal, it will set nsteps to the current", ++ "step plus one. When [TT]mdrun[tt] receives an INT signal (e.g. when ctrl+C is", ++ "pressed), it will stop after the next neighbor search step ", ++ "(with nstlist=0 at the next step).", ++ "In both cases all the usual output will be written to file.", ++ "When running with MPI, a signal to one of the [TT]mdrun[tt] ranks", ++ "is sufficient, this signal should not be sent to mpirun or", ++ "the [TT]mdrun[tt] process that is the parent of the others.", ++ "[PAR]", ++ "Interactive molecular dynamics (IMD) can be activated by using at least one", ++ "of the three IMD switches: The [TT]-imdterm[tt] switch allows to terminate the", ++ "simulation from the molecular viewer (e.g. VMD). With [TT]-imdwait[tt],", ++ "[TT]mdrun[tt] pauses whenever no IMD client is connected. Pulling from the", ++ "IMD remote can be turned on by [TT]-imdpull[tt].", ++ "The port [TT]mdrun[tt] listens to can be altered by [TT]-imdport[tt].The", ++ "file pointed to by [TT]-if[tt] contains atom indices and forces if IMD", ++ "pulling is used." ++ "[PAR]", ++ "When [TT]mdrun[tt] is started with MPI, it does not run niced by default." ++ }; ++ t_commrec *cr; ++ t_filenm fnm[] = { ++ { efTPX, NULL, NULL, ffREAD }, ++ { efTRN, "-o", NULL, ffWRITE }, ++ { efCOMPRESSED, "-x", NULL, ffOPTWR }, ++ { efCPT, "-cpi", NULL, ffOPTRD }, ++ { efCPT, "-cpo", NULL, ffOPTWR }, ++ { efSTO, "-c", "confout", ffWRITE }, ++ { efEDR, "-e", "ener", ffWRITE }, ++ { efLOG, "-g", "md", ffWRITE }, ++ { efXVG, "-dhdl", "dhdl", ffOPTWR }, ++ { efXVG, "-field", "field", ffOPTWR }, ++ { efXVG, "-table", "table", ffOPTRD }, ++ { efXVG, "-tabletf", "tabletf", ffOPTRD }, ++ { efXVG, "-tablep", "tablep", ffOPTRD }, ++ { efXVG, "-tableb", "table", ffOPTRD }, ++ { efTRX, "-rerun", "rerun", ffOPTRD }, ++ { efXVG, "-tpi", "tpi", ffOPTWR }, ++ { efXVG, "-tpid", "tpidist", ffOPTWR }, ++ { efEDI, "-ei", "sam", ffOPTRD }, ++ { efXVG, "-eo", "edsam", ffOPTWR }, ++ { efXVG, "-devout", "deviatie", ffOPTWR }, ++ { efXVG, "-runav", "runaver", ffOPTWR }, ++ { efXVG, "-px", "pullx", ffOPTWR }, ++ { efXVG, "-pf", "pullf", ffOPTWR }, ++ { efXVG, "-ro", "rotation", ffOPTWR }, ++ { efLOG, "-ra", "rotangles", ffOPTWR }, ++ { efLOG, "-rs", "rotslabs", ffOPTWR }, ++ { efLOG, "-rt", "rottorque", ffOPTWR }, ++ { efMTX, "-mtx", "nm", ffOPTWR }, ++ { efNDX, "-dn", "dipole", ffOPTWR }, ++ { efRND, "-multidir", NULL, ffOPTRDMULT}, ++ { efDAT, "-membed", "membed", ffOPTRD }, ++ { efTOP, "-mp", "membed", ffOPTRD }, ++ { efNDX, "-mn", "membed", ffOPTRD }, ++ { efXVG, "-if", "imdforces", ffOPTWR }, ++ { efXVG, "-swap", "swapions", ffOPTWR } ++ }; ++#define NFILE asize(fnm) ++ ++ /* Command line options ! */ ++ gmx_bool bDDBondCheck = TRUE; ++ gmx_bool bDDBondComm = TRUE; ++ gmx_bool bTunePME = TRUE; ++ gmx_bool bTestVerlet = FALSE; ++ gmx_bool bVerbose = FALSE; ++ gmx_bool bCompact = TRUE; ++ gmx_bool bSepPot = FALSE; ++ gmx_bool bRerunVSite = FALSE; ++ gmx_bool bConfout = TRUE; ++ gmx_bool bReproducible = FALSE; ++ gmx_bool bIMDwait = FALSE; ++ gmx_bool bIMDterm = FALSE; ++ gmx_bool bIMDpull = FALSE; ++ ++ int npme = -1; ++ int nstlist = 0; ++ int nmultisim = 0; ++ int nstglobalcomm = -1; ++ int repl_ex_nst = 0; ++ int repl_ex_seed = -1; ++ int repl_ex_nex = 0; ++ int nstepout = 100; ++ int resetstep = -1; ++ gmx_int64_t nsteps = -2; /* the value -2 means that the mdp option will be used */ ++ int imdport = 8888; /* can be almost anything, 8888 is easy to remember */ ++ ++ rvec realddxyz = {0, 0, 0}; ++ const char *ddno_opt[ddnoNR+1] = ++ { NULL, "interleave", "pp_pme", "cartesian", NULL }; ++ const char *dddlb_opt[] = ++ { NULL, "auto", "no", "yes", NULL }; ++ const char *thread_aff_opt[threadaffNR+1] = ++ { NULL, "auto", "on", "off", NULL }; ++ const char *nbpu_opt[] = ++ { NULL, "auto", "cpu", "gpu", "gpu_cpu", NULL }; ++ real rdd = 0.0, rconstr = 0.0, dlb_scale = 0.8, pforce = -1; ++ char *ddcsx = NULL, *ddcsy = NULL, *ddcsz = NULL; ++ real cpt_period = 15.0, max_hours = -1; ++ gmx_bool bAppendFiles = TRUE; ++ gmx_bool bKeepAndNumCPT = FALSE; ++ gmx_bool bResetCountersHalfWay = FALSE; ++ output_env_t oenv = NULL; ++ const char *deviceOptions = ""; ++ ++ /* Non transparent initialization of a complex gmx_hw_opt_t struct. ++ * But unfortunately we are not allowed to call a function here, ++ * since declarations follow below. ++ */ ++ gmx_hw_opt_t hw_opt = { ++ 0, 0, 0, 0, threadaffSEL, 0, 0, ++ { NULL, FALSE, 0, NULL } ++ }; ++ ++ t_pargs pa[] = { ++ ++ { "-dd", FALSE, etRVEC, {&realddxyz}, ++ "Domain decomposition grid, 0 is optimize" }, ++ { "-ddorder", FALSE, etENUM, {ddno_opt}, ++ "DD rank order" }, ++ { "-npme", FALSE, etINT, {&npme}, ++ "Number of separate ranks to be used for PME, -1 is guess" }, ++ { "-nt", FALSE, etINT, {&hw_opt.nthreads_tot}, ++ "Total number of threads to start (0 is guess)" }, ++ { "-ntmpi", FALSE, etINT, {&hw_opt.nthreads_tmpi}, ++ "Number of thread-MPI threads to start (0 is guess)" }, ++ { "-ntomp", FALSE, etINT, {&hw_opt.nthreads_omp}, ++ "Number of OpenMP threads per MPI rank to start (0 is guess)" }, ++ { "-ntomp_pme", FALSE, etINT, {&hw_opt.nthreads_omp_pme}, ++ "Number of OpenMP threads per MPI rank to start (0 is -ntomp)" }, ++ { "-pin", FALSE, etENUM, {thread_aff_opt}, ++ "Set thread affinities" }, ++ { "-pinoffset", FALSE, etINT, {&hw_opt.core_pinning_offset}, ++ "The starting logical core number for pinning to cores; used to avoid pinning threads from different mdrun instances to the same core" }, ++ { "-pinstride", FALSE, etINT, {&hw_opt.core_pinning_stride}, ++ "Pinning distance in logical cores for threads, use 0 to minimize the number of threads per physical core" }, ++ { "-gpu_id", FALSE, etSTR, {&hw_opt.gpu_opt.gpu_id}, ++ "List of GPU device id-s to use, specifies the per-node PP rank to GPU mapping" }, ++ { "-ddcheck", FALSE, etBOOL, {&bDDBondCheck}, ++ "Check for all bonded interactions with DD" }, ++ { "-ddbondcomm", FALSE, etBOOL, {&bDDBondComm}, ++ "HIDDENUse special bonded atom communication when [TT]-rdd[tt] > cut-off" }, ++ { "-rdd", FALSE, etREAL, {&rdd}, ++ "The maximum distance for bonded interactions with DD (nm), 0 is determine from initial coordinates" }, ++ { "-rcon", FALSE, etREAL, {&rconstr}, ++ "Maximum distance for P-LINCS (nm), 0 is estimate" }, ++ { "-dlb", FALSE, etENUM, {dddlb_opt}, ++ "Dynamic load balancing (with DD)" }, ++ { "-dds", FALSE, etREAL, {&dlb_scale}, ++ "Fraction in (0,1) by whose reciprocal the initial DD cell size will be increased in order to " ++ "provide a margin in which dynamic load balancing can act while preserving the minimum cell size." }, ++ { "-ddcsx", FALSE, etSTR, {&ddcsx}, ++ "HIDDENA string containing a vector of the relative sizes in the x " ++ "direction of the corresponding DD cells. Only effective with static " ++ "load balancing." }, ++ { "-ddcsy", FALSE, etSTR, {&ddcsy}, ++ "HIDDENA string containing a vector of the relative sizes in the y " ++ "direction of the corresponding DD cells. Only effective with static " ++ "load balancing." }, ++ { "-ddcsz", FALSE, etSTR, {&ddcsz}, ++ "HIDDENA string containing a vector of the relative sizes in the z " ++ "direction of the corresponding DD cells. Only effective with static " ++ "load balancing." }, ++ { "-gcom", FALSE, etINT, {&nstglobalcomm}, ++ "Global communication frequency" }, ++ { "-nb", FALSE, etENUM, {&nbpu_opt}, ++ "Calculate non-bonded interactions on" }, ++ { "-nstlist", FALSE, etINT, {&nstlist}, ++ "Set nstlist when using a Verlet buffer tolerance (0 is guess)" }, ++ { "-tunepme", FALSE, etBOOL, {&bTunePME}, ++ "Optimize PME load between PP/PME ranks or GPU/CPU" }, ++ { "-testverlet", FALSE, etBOOL, {&bTestVerlet}, ++ "Test the Verlet non-bonded scheme" }, ++ { "-v", FALSE, etBOOL, {&bVerbose}, ++ "Be loud and noisy" }, ++ { "-compact", FALSE, etBOOL, {&bCompact}, ++ "Write a compact log file" }, ++ { "-seppot", FALSE, etBOOL, {&bSepPot}, ++ "Write separate V and dVdl terms for each interaction type and rank to the log file(s)" }, ++ { "-pforce", FALSE, etREAL, {&pforce}, ++ "Print all forces larger than this (kJ/mol nm)" }, ++ { "-reprod", FALSE, etBOOL, {&bReproducible}, ++ "Try to avoid optimizations that affect binary reproducibility" }, ++ { "-cpt", FALSE, etREAL, {&cpt_period}, ++ "Checkpoint interval (minutes)" }, ++ { "-cpnum", FALSE, etBOOL, {&bKeepAndNumCPT}, ++ "Keep and number checkpoint files" }, ++ { "-append", FALSE, etBOOL, {&bAppendFiles}, ++ "Append to previous output files when continuing from checkpoint instead of adding the simulation part number to all file names" }, ++ { "-nsteps", FALSE, etINT64, {&nsteps}, ++ "Run this number of steps, overrides .mdp file option" }, ++ { "-maxh", FALSE, etREAL, {&max_hours}, ++ "Terminate after 0.99 times this time (hours)" }, ++ { "-multi", FALSE, etINT, {&nmultisim}, ++ "Do multiple simulations in parallel" }, ++ { "-replex", FALSE, etINT, {&repl_ex_nst}, ++ "Attempt replica exchange periodically with this period (steps)" }, ++ { "-nex", FALSE, etINT, {&repl_ex_nex}, ++ "Number of random exchanges to carry out each exchange interval (N^3 is one suggestion). -nex zero or not specified gives neighbor replica exchange." }, ++ { "-reseed", FALSE, etINT, {&repl_ex_seed}, ++ "Seed for replica exchange, -1 is generate a seed" }, ++ { "-imdport", FALSE, etINT, {&imdport}, ++ "HIDDENIMD listening port" }, ++ { "-imdwait", FALSE, etBOOL, {&bIMDwait}, ++ "HIDDENPause the simulation while no IMD client is connected" }, ++ { "-imdterm", FALSE, etBOOL, {&bIMDterm}, ++ "HIDDENAllow termination of the simulation from IMD client" }, ++ { "-imdpull", FALSE, etBOOL, {&bIMDpull}, ++ "HIDDENAllow pulling in the simulation from IMD client" }, ++ { "-rerunvsite", FALSE, etBOOL, {&bRerunVSite}, ++ "HIDDENRecalculate virtual site coordinates with [TT]-rerun[tt]" }, ++ { "-confout", FALSE, etBOOL, {&bConfout}, ++ "HIDDENWrite the last configuration with [TT]-c[tt] and force checkpointing at the last step" }, ++ { "-stepout", FALSE, etINT, {&nstepout}, ++ "HIDDENFrequency of writing the remaining wall clock time for the run" }, ++ { "-resetstep", FALSE, etINT, {&resetstep}, ++ "HIDDENReset cycle counters after these many time steps" }, ++ { "-resethway", FALSE, etBOOL, {&bResetCountersHalfWay}, ++ "HIDDENReset the cycle counters after half the number of steps or halfway [TT]-maxh[tt]" } ++ }; ++ unsigned long Flags, PCA_Flags; ++ ivec ddxyz; ++ int dd_node_order; ++ gmx_bool bAddPart; ++ FILE *fplog, *fpmulti; ++ int sim_part, sim_part_fn; ++ const char *part_suffix = ".part"; ++ char suffix[STRLEN]; ++ int rc; ++ char **multidir = NULL; ++ ++ ++ cr = init_commrec(); ++ ++ PCA_Flags = (PCA_CAN_SET_DEFFNM | (MASTER(cr) ? 0 : PCA_QUIET)); ++ ++ /* Comment this in to do fexist calls only on master ++ * works not with rerun or tables at the moment ++ * also comment out the version of init_forcerec in md.c ++ * with NULL instead of opt2fn ++ */ ++ /* ++ if (!MASTER(cr)) ++ { ++ PCA_Flags |= PCA_NOT_READ_NODE; ++ } ++ */ ++ ++ if (!parse_common_args(&argc, argv, PCA_Flags, NFILE, fnm, asize(pa), pa, ++ asize(desc), desc, 0, NULL, &oenv)) ++ { ++ return 0; ++ } ++ ++ ++ /* we set these early because they might be used in init_multisystem() ++ Note that there is the potential for npme>nnodes until the number of ++ threads is set later on, if there's thread parallelization. That shouldn't ++ lead to problems. */ ++ dd_node_order = nenum(ddno_opt); ++ cr->npmenodes = npme; ++ ++ hw_opt.thread_affinity = nenum(thread_aff_opt); ++ ++ /* now check the -multi and -multidir option */ ++ if (opt2bSet("-multidir", NFILE, fnm)) ++ { ++ if (nmultisim > 0) ++ { ++ gmx_fatal(FARGS, "mdrun -multi and -multidir options are mutually exclusive."); ++ } ++ nmultisim = opt2fns(&multidir, "-multidir", NFILE, fnm); ++ } ++ ++ ++ if (repl_ex_nst != 0 && nmultisim < 2) ++ { ++ gmx_fatal(FARGS, "Need at least two replicas for replica exchange (option -multi)"); ++ } ++ ++ if (repl_ex_nex < 0) ++ { ++ gmx_fatal(FARGS, "Replica exchange number of exchanges needs to be positive"); ++ } ++ ++ if (nmultisim > 1) ++ { ++#ifndef GMX_THREAD_MPI ++ gmx_bool bParFn = (multidir == NULL); ++ init_multisystem(cr, nmultisim, multidir, NFILE, fnm, bParFn); ++#else ++ gmx_fatal(FARGS, "mdrun -multi is not supported with the thread library. " ++ "Please compile GROMACS with MPI support"); ++#endif ++ } ++ ++ bAddPart = !bAppendFiles; ++ ++ /* Check if there is ANY checkpoint file available */ ++ sim_part = 1; ++ sim_part_fn = sim_part; ++ if (opt2bSet("-cpi", NFILE, fnm)) ++ { ++ if (bSepPot && bAppendFiles) ++ { ++ gmx_fatal(FARGS, "Output file appending is not supported with -seppot"); ++ } ++ ++ bAppendFiles = ++ read_checkpoint_simulation_part(opt2fn_master("-cpi", NFILE, ++ fnm, cr), ++ &sim_part_fn, NULL, cr, ++ bAppendFiles, NFILE, fnm, ++ part_suffix, &bAddPart); ++ if (sim_part_fn == 0 && MULTIMASTER(cr)) ++ { ++ fprintf(stdout, "No previous checkpoint file present, assuming this is a new run.\n"); ++ } ++ else ++ { ++ sim_part = sim_part_fn + 1; ++ } ++ ++ if (MULTISIM(cr) && MASTER(cr)) ++ { ++ if (MULTIMASTER(cr)) ++ { ++ /* Log file is not yet available, so if there's a ++ * problem we can only write to stderr. */ ++ fpmulti = stderr; ++ } ++ else ++ { ++ fpmulti = NULL; ++ } ++ check_multi_int(fpmulti, cr->ms, sim_part, "simulation part", TRUE); ++ } ++ } ++ else ++ { ++ bAppendFiles = FALSE; ++ } ++ ++ if (!bAppendFiles) ++ { ++ sim_part_fn = sim_part; ++ } ++ ++ if (bAddPart) ++ { ++ /* Rename all output files (except checkpoint files) */ ++ /* create new part name first (zero-filled) */ ++ sprintf(suffix, "%s%04d", part_suffix, sim_part_fn); ++ ++ add_suffix_to_output_names(fnm, NFILE, suffix); ++ if (MULTIMASTER(cr)) ++ { ++ fprintf(stdout, "Checkpoint file is from part %d, new output files will be suffixed '%s'.\n", sim_part-1, suffix); ++ } ++ } ++ ++ Flags = opt2bSet("-rerun", NFILE, fnm) ? MD_RERUN : 0; ++ Flags = Flags | (bSepPot ? MD_SEPPOT : 0); ++ Flags = Flags | (bDDBondCheck ? MD_DDBONDCHECK : 0); ++ Flags = Flags | (bDDBondComm ? MD_DDBONDCOMM : 0); ++ Flags = Flags | (bTunePME ? MD_TUNEPME : 0); ++ Flags = Flags | (bTestVerlet ? MD_TESTVERLET : 0); ++ Flags = Flags | (bConfout ? MD_CONFOUT : 0); ++ Flags = Flags | (bRerunVSite ? MD_RERUN_VSITE : 0); ++ Flags = Flags | (bReproducible ? MD_REPRODUCIBLE : 0); ++ Flags = Flags | (bAppendFiles ? MD_APPENDFILES : 0); ++ Flags = Flags | (opt2parg_bSet("-append", asize(pa), pa) ? MD_APPENDFILESSET : 0); ++ Flags = Flags | (bKeepAndNumCPT ? MD_KEEPANDNUMCPT : 0); ++ Flags = Flags | (sim_part > 1 ? MD_STARTFROMCPT : 0); ++ Flags = Flags | (bResetCountersHalfWay ? MD_RESETCOUNTERSHALFWAY : 0); ++ Flags = Flags | (bIMDwait ? MD_IMDWAIT : 0); ++ Flags = Flags | (bIMDterm ? MD_IMDTERM : 0); ++ Flags = Flags | (bIMDpull ? MD_IMDPULL : 0); ++ ++ /* We postpone opening the log file if we are appending, so we can ++ first truncate the old log file and append to the correct position ++ there instead. */ ++ if ((MASTER(cr) || bSepPot) && !bAppendFiles) ++ { ++ gmx_log_open(ftp2fn(efLOG, NFILE, fnm), cr, ++ !bSepPot, Flags & MD_APPENDFILES, &fplog); ++ please_cite(fplog, "Hess2008b"); ++ please_cite(fplog, "Spoel2005a"); ++ please_cite(fplog, "Lindahl2001a"); ++ please_cite(fplog, "Berendsen95a"); ++ } ++ else if (!MASTER(cr) && bSepPot) ++ { ++ gmx_log_open(ftp2fn(efLOG, NFILE, fnm), cr, !bSepPot, Flags, &fplog); ++ } ++ else ++ { ++ fplog = NULL; ++ } ++ ++ ddxyz[XX] = (int)(realddxyz[XX] + 0.5); ++ ddxyz[YY] = (int)(realddxyz[YY] + 0.5); ++ ddxyz[ZZ] = (int)(realddxyz[ZZ] + 0.5); ++ ++ rc = mdrunner(&hw_opt, fplog, cr, NFILE, fnm, oenv, bVerbose, bCompact, ++ nstglobalcomm, ddxyz, dd_node_order, rdd, rconstr, ++ dddlb_opt[0], dlb_scale, ddcsx, ddcsy, ddcsz, ++ nbpu_opt[0], nstlist, ++ nsteps, nstepout, resetstep, ++ nmultisim, repl_ex_nst, repl_ex_nex, repl_ex_seed, ++ pforce, cpt_period, max_hours, deviceOptions, imdport, Flags); ++ ++ /* Log file has to be closed in mdrunner if we are appending to it ++ (fplog not set here) */ ++ if (MASTER(cr) && !bAppendFiles) ++ { ++ gmx_log_close(fplog); ++ } ++ ++ return rc; ++} +diff --git a/src/programs/mdrun/repl_ex.c b/src/programs/mdrun/repl_ex.c +index 46a9bc0..cfb0b7f 100644 +--- a/src/programs/mdrun/repl_ex.c ++++ b/src/programs/mdrun/repl_ex.c +@@ -51,6 +51,12 @@ + #include "domdec.h" + #include "gromacs/random/random.h" + ++/* PLUMED */ ++#include "../../../Plumed.h" ++extern int plumedswitch; ++extern plumed plumedmain; ++/* END PLUMED */ ++ + #define PROBABILITYCUTOFF 100 + /* we don't bother evaluating if events are more rare than exp(-100) = 3.7x10^-44 */ + +@@ -112,14 +118,16 @@ static gmx_bool repl_quantity(const gmx_multisim_t *ms, + qall[re->repl] = q; + gmx_sum_sim(ms->nsim, qall, ms); + +- bDiff = FALSE; +- for (s = 1; s < ms->nsim; s++) +- { +- if (qall[s] != qall[0]) +- { ++ /* PLUMED */ ++ //bDiff = FALSE; ++ //for (s = 1; s < ms->nsim; s++) ++ //{ ++ // if (qall[s] != qall[0]) ++ // { + bDiff = TRUE; +- } +- } ++ // } ++ //} ++ /* END PLUMED */ + + if (bDiff) + { +@@ -269,6 +277,10 @@ gmx_repl_ex_t init_replica_exchange(FILE *fplog, + re->ind[i] = i; + } + ++ /* PLUMED */ ++ // plumed2: check if we want alternative patterns (i.e. for bias-exchange metaD) ++ // in those cases replicas can share the same temperature. ++ /* + if (re->type < ereENDSINGLE) + { + +@@ -277,11 +289,12 @@ gmx_repl_ex_t init_replica_exchange(FILE *fplog, + for (j = i+1; j < re->nrepl; j++) + { + if (re->q[re->type][re->ind[j]] < re->q[re->type][re->ind[i]]) +- { ++ {*/ + /* Unordered replicas are supposed to work, but there + * is still an issues somewhere. + * Note that at this point still re->ind[i]=i. + */ ++ /* + gmx_fatal(FARGS, "Replicas with indices %d < %d have %ss %g > %g, please order your replicas on increasing %s", + i, j, + erename[re->type], +@@ -299,6 +312,8 @@ gmx_repl_ex_t init_replica_exchange(FILE *fplog, + } + } + } ++ */ ++ /* END PLUMED */ + + /* keep track of all the swaps, starting with the initial placement. */ + snew(re->allswaps, re->nrepl); +@@ -982,6 +997,10 @@ test_for_replica_exchange(FILE *fplog, + pind[i] = re->ind[i]; + } + ++ /* PLUMED */ ++ int plumed_test_exchange_pattern=0; ++ /* END PLUMED */ ++ + if (bMultiEx) + { + /* multiple random switch exchange */ +@@ -1057,6 +1076,31 @@ test_for_replica_exchange(FILE *fplog, + /* standard nearest neighbor replica exchange */ + + m = (step / re->nst) % 2; ++ /* PLUMED */ ++ if(plumedswitch){ ++ int partner=re->repl; ++ plumed_cmd(plumedmain,"getExchangesFlag",&plumed_test_exchange_pattern); ++ if(plumed_test_exchange_pattern>0){ ++ int *list; ++ snew(list,re->nrepl); ++ plumed_cmd(plumedmain,"setNumberOfReplicas",&(re->nrepl)); ++ plumed_cmd(plumedmain,"getExchangesList",list); ++ for(i=0; inrepl; i++) re->ind[i]=list[i]; ++ sfree(list); ++ } ++ ++ for(i=1; inrepl; i++) { ++ if (i % 2 != m) continue; ++ a = re->ind[i-1]; ++ b = re->ind[i]; ++ if(re->repl==a) partner=b; ++ if(re->repl==b) partner=a; ++ } ++ plumed_cmd(plumedmain,"GREX setPartner",&partner); ++ plumed_cmd(plumedmain,"GREX calculate",NULL); ++ plumed_cmd(plumedmain,"GREX shareAllDeltaBias",NULL); ++ } ++ /* END PLUMED */ + for (i = 1; i < re->nrepl; i++) + { + a = re->ind[i-1]; +@@ -1066,6 +1110,18 @@ test_for_replica_exchange(FILE *fplog, + if (i % 2 == m) + { + delta = calc_delta(fplog, bPrint, re, a, b, a, b); ++ /* PLUMED */ ++ if(plumedswitch){ ++ real adb,bdb,dplumed; ++ char buf[300]; ++ sprintf(buf,"GREX getDeltaBias %d",a); plumed_cmd(plumedmain,buf,&adb); ++ sprintf(buf,"GREX getDeltaBias %d",b); plumed_cmd(plumedmain,buf,&bdb); ++ dplumed=adb*re->beta[a]+bdb*re->beta[b]; ++ delta+=dplumed; ++ if (bPrint) ++ fprintf(fplog,"dplumed = %10.3e dE_Term = %10.3e (kT)\n",dplumed,delta); ++ } ++ /* END PLUMED */ + if (delta <= 0) + { + /* accepted */ +@@ -1092,11 +1148,22 @@ test_for_replica_exchange(FILE *fplog, + + if (bEx[i]) + { ++ /* PLUMED */ ++ if(!plumed_test_exchange_pattern) { ++ /* standard neighbour swapping */ + /* swap these two */ + tmp = pind[i-1]; + pind[i-1] = pind[i]; + pind[i] = tmp; + re->nexchange[i]++; /* statistics for back compatibility */ ++ } else { ++ /* alternative swapping patterns */ ++ tmp = pind[a]; ++ pind[a] = pind[b]; ++ pind[b] = tmp; ++ re->nexchange[i]++; /* statistics for back compatibility */ ++ } ++ /* END PLUMED */ + } + } + else +@@ -1112,6 +1179,15 @@ test_for_replica_exchange(FILE *fplog, + re->nattempt[m]++; + } + ++ /* PLUMED */ ++ if(plumed_test_exchange_pattern>0) { ++ for (i = 0; i < re->nrepl; i++) ++ { ++ re->ind[i] = i; ++ } ++ } ++ /* END PLUMED */ ++ + /* record which moves were made and accepted */ + for (i = 0; i < re->nrepl; i++) + { +@@ -1316,6 +1392,10 @@ gmx_bool replica_exchange(FILE *fplog, const t_commrec *cr, struct gmx_repl_ex * + /* The order in which multiple exchanges will occur. */ + gmx_bool bThisReplicaExchanged = FALSE; + ++ /* PLUMED */ ++ if(plumedswitch)plumed_cmd(plumedmain,"GREX prepare",NULL); ++ /* END PLUMED */ ++ + if (MASTER(cr)) + { + replica_id = re->repl; +diff --git a/src/programs/mdrun/repl_ex.c.preplumed b/src/programs/mdrun/repl_ex.c.preplumed +new file mode 100644 +index 0000000..46a9bc0 +--- /dev/null ++++ b/src/programs/mdrun/repl_ex.c.preplumed +@@ -0,0 +1,1439 @@ ++/* ++ * This file is part of the GROMACS molecular simulation package. ++ * ++ * Copyright (c) 1991-2000, University of Groningen, The Netherlands. ++ * Copyright (c) 2001-2004, The GROMACS development team. ++ * Copyright (c) 2011,2012,2013,2014, by the GROMACS development team, led by ++ * Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl, ++ * and including many others, as listed in the AUTHORS file in the ++ * top-level source directory and at http://www.gromacs.org. ++ * ++ * GROMACS 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; either version 2.1 ++ * of the License, or (at your option) any later version. ++ * ++ * GROMACS 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 ++ * Lesser General Public License for more details. ++ * ++ * You should have received a copy of the GNU Lesser General Public ++ * License along with GROMACS; if not, see ++ * http://www.gnu.org/licenses, or write to the Free Software Foundation, ++ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. ++ * ++ * If you want to redistribute modifications to GROMACS, please ++ * consider that scientific software is very special. Version ++ * control is crucial - bugs must be traceable. We will be happy to ++ * consider code for inclusion in the official distribution, but ++ * derived work must not be called official GROMACS. Details are found ++ * in the README & COPYING files - if they are missing, get the ++ * official version at http://www.gromacs.org. ++ * ++ * To help us fund GROMACS development, we humbly ask that you cite ++ * the research papers on the package. Check out http://www.gromacs.org. ++ */ ++#ifdef HAVE_CONFIG_H ++#include ++#endif ++ ++#include ++#include "repl_ex.h" ++#include "network.h" ++#include "gromacs/random/random.h" ++#include "gromacs/utility/smalloc.h" ++#include "physics.h" ++#include "copyrite.h" ++#include "macros.h" ++#include "vec.h" ++#include "names.h" ++#include "domdec.h" ++#include "gromacs/random/random.h" ++ ++#define PROBABILITYCUTOFF 100 ++/* we don't bother evaluating if events are more rare than exp(-100) = 3.7x10^-44 */ ++ ++enum { ++ ereTEMP, ereLAMBDA, ereENDSINGLE, ereTL, ereNR ++}; ++const char *erename[ereNR] = { "temperature", "lambda", "end_single_marker", "temperature and lambda"}; ++/* end_single_marker merely notes the end of single variable replica exchange. All types higher than ++ it are multiple replica exchange methods */ ++/* Eventually, should add 'pressure', 'temperature and pressure', 'lambda_and_pressure', 'temperature_lambda_pressure'?; ++ Let's wait until we feel better about the pressure control methods giving exact ensembles. Right now, we assume constant pressure */ ++ ++typedef struct gmx_repl_ex ++{ ++ int repl; ++ int nrepl; ++ real temp; ++ int type; ++ real **q; ++ gmx_bool bNPT; ++ real *pres; ++ int *ind; ++ int *allswaps; ++ int nst; ++ int nex; ++ int seed; ++ int nattempt[2]; ++ real *prob_sum; ++ int **nmoves; ++ int *nexchange; ++ gmx_rng_t rng; ++ ++ /* these are helper arrays for replica exchange; allocated here so they ++ don't have to be allocated each time */ ++ int *destinations; ++ int **cyclic; ++ int **order; ++ int *tmpswap; ++ gmx_bool *incycle; ++ gmx_bool *bEx; ++ ++ /* helper arrays to hold the quantities that are exchanged */ ++ real *prob; ++ real *Epot; ++ real *beta; ++ real *Vol; ++ real **de; ++ ++} t_gmx_repl_ex; ++ ++static gmx_bool repl_quantity(const gmx_multisim_t *ms, ++ struct gmx_repl_ex *re, int ere, real q) ++{ ++ real *qall; ++ gmx_bool bDiff; ++ int i, s; ++ ++ snew(qall, ms->nsim); ++ qall[re->repl] = q; ++ gmx_sum_sim(ms->nsim, qall, ms); ++ ++ bDiff = FALSE; ++ for (s = 1; s < ms->nsim; s++) ++ { ++ if (qall[s] != qall[0]) ++ { ++ bDiff = TRUE; ++ } ++ } ++ ++ if (bDiff) ++ { ++ /* Set the replica exchange type and quantities */ ++ re->type = ere; ++ ++ snew(re->q[ere], re->nrepl); ++ for (s = 0; s < ms->nsim; s++) ++ { ++ re->q[ere][s] = qall[s]; ++ } ++ } ++ sfree(qall); ++ return bDiff; ++} ++ ++gmx_repl_ex_t init_replica_exchange(FILE *fplog, ++ const gmx_multisim_t *ms, ++ const t_state *state, ++ const t_inputrec *ir, ++ int nst, int nex, int init_seed) ++{ ++ real temp, pres; ++ int i, j, k; ++ struct gmx_repl_ex *re; ++ gmx_bool bTemp; ++ gmx_bool bLambda = FALSE; ++ ++ fprintf(fplog, "\nInitializing Replica Exchange\n"); ++ ++ if (ms == NULL || ms->nsim == 1) ++ { ++ gmx_fatal(FARGS, "Nothing to exchange with only one replica, maybe you forgot to set the -multi option of mdrun?"); ++ } ++ if (!EI_DYNAMICS(ir->eI)) ++ { ++ gmx_fatal(FARGS, "Replica exchange is only supported by dynamical simulations"); ++ /* Note that PAR(cr) is defined by cr->nnodes > 1, which is ++ * distinct from MULTISIM(cr). A multi-simulation only runs ++ * with real MPI parallelism, but this does not imply PAR(cr) ++ * is true! ++ * ++ * Since we are using a dynamical integrator, the only ++ * decomposition is DD, so PAR(cr) and DOMAINDECOMP(cr) are ++ * synonymous. The only way for cr->nnodes > 1 to be true is ++ * if we are using DD. */ ++ } ++ ++ snew(re, 1); ++ ++ re->repl = ms->sim; ++ re->nrepl = ms->nsim; ++ snew(re->q, ereENDSINGLE); ++ ++ fprintf(fplog, "Repl There are %d replicas:\n", re->nrepl); ++ ++ check_multi_int(fplog, ms, state->natoms, "the number of atoms", FALSE); ++ check_multi_int(fplog, ms, ir->eI, "the integrator", FALSE); ++ check_multi_int64(fplog, ms, ir->init_step+ir->nsteps, "init_step+nsteps", FALSE); ++ check_multi_int64(fplog, ms, (ir->init_step+nst-1)/nst, ++ "first exchange step: init_step/-replex", FALSE); ++ check_multi_int(fplog, ms, ir->etc, "the temperature coupling", FALSE); ++ check_multi_int(fplog, ms, ir->opts.ngtc, ++ "the number of temperature coupling groups", FALSE); ++ check_multi_int(fplog, ms, ir->epc, "the pressure coupling", FALSE); ++ check_multi_int(fplog, ms, ir->efep, "free energy", FALSE); ++ check_multi_int(fplog, ms, ir->fepvals->n_lambda, "number of lambda states", FALSE); ++ ++ re->temp = ir->opts.ref_t[0]; ++ for (i = 1; (i < ir->opts.ngtc); i++) ++ { ++ if (ir->opts.ref_t[i] != re->temp) ++ { ++ fprintf(fplog, "\nWARNING: The temperatures of the different temperature coupling groups are not identical\n\n"); ++ fprintf(stderr, "\nWARNING: The temperatures of the different temperature coupling groups are not identical\n\n"); ++ } ++ } ++ ++ re->type = -1; ++ bTemp = repl_quantity(ms, re, ereTEMP, re->temp); ++ if (ir->efep != efepNO) ++ { ++ bLambda = repl_quantity(ms, re, ereLAMBDA, (real)ir->fepvals->init_fep_state); ++ } ++ if (re->type == -1) /* nothing was assigned */ ++ { ++ gmx_fatal(FARGS, "The properties of the %d systems are all the same, there is nothing to exchange", re->nrepl); ++ } ++ if (bLambda && bTemp) ++ { ++ re->type = ereTL; ++ } ++ ++ if (bTemp) ++ { ++ please_cite(fplog, "Sugita1999a"); ++ if (ir->epc != epcNO) ++ { ++ re->bNPT = TRUE; ++ fprintf(fplog, "Repl Using Constant Pressure REMD.\n"); ++ please_cite(fplog, "Okabe2001a"); ++ } ++ if (ir->etc == etcBERENDSEN) ++ { ++ gmx_fatal(FARGS, "REMD with the %s thermostat does not produce correct potential energy distributions, consider using the %s thermostat instead", ++ ETCOUPLTYPE(ir->etc), ETCOUPLTYPE(etcVRESCALE)); ++ } ++ } ++ if (bLambda) ++ { ++ if (ir->fepvals->delta_lambda != 0) /* check this? */ ++ { ++ gmx_fatal(FARGS, "delta_lambda is not zero"); ++ } ++ } ++ if (re->bNPT) ++ { ++ snew(re->pres, re->nrepl); ++ if (ir->epct == epctSURFACETENSION) ++ { ++ pres = ir->ref_p[ZZ][ZZ]; ++ } ++ else ++ { ++ pres = 0; ++ j = 0; ++ for (i = 0; i < DIM; i++) ++ { ++ if (ir->compress[i][i] != 0) ++ { ++ pres += ir->ref_p[i][i]; ++ j++; ++ } ++ } ++ pres /= j; ++ } ++ re->pres[re->repl] = pres; ++ gmx_sum_sim(re->nrepl, re->pres, ms); ++ } ++ ++ /* Make an index for increasing replica order */ ++ /* only makes sense if one or the other is varying, not both! ++ if both are varying, we trust the order the person gave. */ ++ snew(re->ind, re->nrepl); ++ for (i = 0; i < re->nrepl; i++) ++ { ++ re->ind[i] = i; ++ } ++ ++ if (re->type < ereENDSINGLE) ++ { ++ ++ for (i = 0; i < re->nrepl; i++) ++ { ++ for (j = i+1; j < re->nrepl; j++) ++ { ++ if (re->q[re->type][re->ind[j]] < re->q[re->type][re->ind[i]]) ++ { ++ /* Unordered replicas are supposed to work, but there ++ * is still an issues somewhere. ++ * Note that at this point still re->ind[i]=i. ++ */ ++ gmx_fatal(FARGS, "Replicas with indices %d < %d have %ss %g > %g, please order your replicas on increasing %s", ++ i, j, ++ erename[re->type], ++ re->q[re->type][i], re->q[re->type][j], ++ erename[re->type]); ++ ++ k = re->ind[i]; ++ re->ind[i] = re->ind[j]; ++ re->ind[j] = k; ++ } ++ else if (re->q[re->type][re->ind[j]] == re->q[re->type][re->ind[i]]) ++ { ++ gmx_fatal(FARGS, "Two replicas have identical %ss", erename[re->type]); ++ } ++ } ++ } ++ } ++ ++ /* keep track of all the swaps, starting with the initial placement. */ ++ snew(re->allswaps, re->nrepl); ++ for (i = 0; i < re->nrepl; i++) ++ { ++ re->allswaps[i] = re->ind[i]; ++ } ++ ++ switch (re->type) ++ { ++ case ereTEMP: ++ fprintf(fplog, "\nReplica exchange in temperature\n"); ++ for (i = 0; i < re->nrepl; i++) ++ { ++ fprintf(fplog, " %5.1f", re->q[re->type][re->ind[i]]); ++ } ++ fprintf(fplog, "\n"); ++ break; ++ case ereLAMBDA: ++ fprintf(fplog, "\nReplica exchange in lambda\n"); ++ for (i = 0; i < re->nrepl; i++) ++ { ++ fprintf(fplog, " %3d", (int)re->q[re->type][re->ind[i]]); ++ } ++ fprintf(fplog, "\n"); ++ break; ++ case ereTL: ++ fprintf(fplog, "\nReplica exchange in temperature and lambda state\n"); ++ for (i = 0; i < re->nrepl; i++) ++ { ++ fprintf(fplog, " %5.1f", re->q[ereTEMP][re->ind[i]]); ++ } ++ fprintf(fplog, "\n"); ++ for (i = 0; i < re->nrepl; i++) ++ { ++ fprintf(fplog, " %5d", (int)re->q[ereLAMBDA][re->ind[i]]); ++ } ++ fprintf(fplog, "\n"); ++ break; ++ default: ++ gmx_incons("Unknown replica exchange quantity"); ++ } ++ if (re->bNPT) ++ { ++ fprintf(fplog, "\nRepl p"); ++ for (i = 0; i < re->nrepl; i++) ++ { ++ fprintf(fplog, " %5.2f", re->pres[re->ind[i]]); ++ } ++ ++ for (i = 0; i < re->nrepl; i++) ++ { ++ if ((i > 0) && (re->pres[re->ind[i]] < re->pres[re->ind[i-1]])) ++ { ++ fprintf(fplog, "\nWARNING: The reference pressures decrease with increasing temperatures\n\n"); ++ fprintf(stderr, "\nWARNING: The reference pressures decrease with increasing temperatures\n\n"); ++ } ++ } ++ } ++ re->nst = nst; ++ if (init_seed == -1) ++ { ++ if (MASTERSIM(ms)) ++ { ++ re->seed = (int)gmx_rng_make_seed(); ++ } ++ else ++ { ++ re->seed = 0; ++ } ++ gmx_sumi_sim(1, &(re->seed), ms); ++ } ++ else ++ { ++ re->seed = init_seed; ++ } ++ fprintf(fplog, "\nReplica exchange interval: %d\n", re->nst); ++ fprintf(fplog, "\nReplica random seed: %d\n", re->seed); ++ re->rng = gmx_rng_init(re->seed); ++ ++ re->nattempt[0] = 0; ++ re->nattempt[1] = 0; ++ ++ snew(re->prob_sum, re->nrepl); ++ snew(re->nexchange, re->nrepl); ++ snew(re->nmoves, re->nrepl); ++ for (i = 0; i < re->nrepl; i++) ++ { ++ snew(re->nmoves[i], re->nrepl); ++ } ++ fprintf(fplog, "Replica exchange information below: x=exchange, pr=probability\n"); ++ ++ /* generate space for the helper functions so we don't have to snew each time */ ++ ++ snew(re->destinations, re->nrepl); ++ snew(re->incycle, re->nrepl); ++ snew(re->tmpswap, re->nrepl); ++ snew(re->cyclic, re->nrepl); ++ snew(re->order, re->nrepl); ++ for (i = 0; i < re->nrepl; i++) ++ { ++ snew(re->cyclic[i], re->nrepl); ++ snew(re->order[i], re->nrepl); ++ } ++ /* allocate space for the functions storing the data for the replicas */ ++ /* not all of these arrays needed in all cases, but they don't take ++ up much space, since the max size is nrepl**2 */ ++ snew(re->prob, re->nrepl); ++ snew(re->bEx, re->nrepl); ++ snew(re->beta, re->nrepl); ++ snew(re->Vol, re->nrepl); ++ snew(re->Epot, re->nrepl); ++ snew(re->de, re->nrepl); ++ for (i = 0; i < re->nrepl; i++) ++ { ++ snew(re->de[i], re->nrepl); ++ } ++ re->nex = nex; ++ return re; ++} ++ ++static void exchange_reals(const gmx_multisim_t gmx_unused *ms, int gmx_unused b, real *v, int n) ++{ ++ real *buf; ++ int i; ++ ++ if (v) ++ { ++ snew(buf, n); ++#ifdef GMX_MPI ++ /* ++ MPI_Sendrecv(v, n*sizeof(real),MPI_BYTE,MSRANK(ms,b),0, ++ buf,n*sizeof(real),MPI_BYTE,MSRANK(ms,b),0, ++ ms->mpi_comm_masters,MPI_STATUS_IGNORE); ++ */ ++ { ++ MPI_Request mpi_req; ++ ++ MPI_Isend(v, n*sizeof(real), MPI_BYTE, MSRANK(ms, b), 0, ++ ms->mpi_comm_masters, &mpi_req); ++ MPI_Recv(buf, n*sizeof(real), MPI_BYTE, MSRANK(ms, b), 0, ++ ms->mpi_comm_masters, MPI_STATUS_IGNORE); ++ MPI_Wait(&mpi_req, MPI_STATUS_IGNORE); ++ } ++#endif ++ for (i = 0; i < n; i++) ++ { ++ v[i] = buf[i]; ++ } ++ sfree(buf); ++ } ++} ++ ++ ++static void exchange_ints(const gmx_multisim_t gmx_unused *ms, int gmx_unused b, int *v, int n) ++{ ++ int *buf; ++ int i; ++ ++ if (v) ++ { ++ snew(buf, n); ++#ifdef GMX_MPI ++ /* ++ MPI_Sendrecv(v, n*sizeof(int),MPI_BYTE,MSRANK(ms,b),0, ++ buf,n*sizeof(int),MPI_BYTE,MSRANK(ms,b),0, ++ ms->mpi_comm_masters,MPI_STATUS_IGNORE); ++ */ ++ { ++ MPI_Request mpi_req; ++ ++ MPI_Isend(v, n*sizeof(int), MPI_BYTE, MSRANK(ms, b), 0, ++ ms->mpi_comm_masters, &mpi_req); ++ MPI_Recv(buf, n*sizeof(int), MPI_BYTE, MSRANK(ms, b), 0, ++ ms->mpi_comm_masters, MPI_STATUS_IGNORE); ++ MPI_Wait(&mpi_req, MPI_STATUS_IGNORE); ++ } ++#endif ++ for (i = 0; i < n; i++) ++ { ++ v[i] = buf[i]; ++ } ++ sfree(buf); ++ } ++} ++ ++static void exchange_doubles(const gmx_multisim_t gmx_unused *ms, int gmx_unused b, double *v, int n) ++{ ++ double *buf; ++ int i; ++ ++ if (v) ++ { ++ snew(buf, n); ++#ifdef GMX_MPI ++ /* ++ MPI_Sendrecv(v, n*sizeof(double),MPI_BYTE,MSRANK(ms,b),0, ++ buf,n*sizeof(double),MPI_BYTE,MSRANK(ms,b),0, ++ ms->mpi_comm_masters,MPI_STATUS_IGNORE); ++ */ ++ { ++ MPI_Request mpi_req; ++ ++ MPI_Isend(v, n*sizeof(double), MPI_BYTE, MSRANK(ms, b), 0, ++ ms->mpi_comm_masters, &mpi_req); ++ MPI_Recv(buf, n*sizeof(double), MPI_BYTE, MSRANK(ms, b), 0, ++ ms->mpi_comm_masters, MPI_STATUS_IGNORE); ++ MPI_Wait(&mpi_req, MPI_STATUS_IGNORE); ++ } ++#endif ++ for (i = 0; i < n; i++) ++ { ++ v[i] = buf[i]; ++ } ++ sfree(buf); ++ } ++} ++ ++static void exchange_rvecs(const gmx_multisim_t gmx_unused *ms, int gmx_unused b, rvec *v, int n) ++{ ++ rvec *buf; ++ int i; ++ ++ if (v) ++ { ++ snew(buf, n); ++#ifdef GMX_MPI ++ /* ++ MPI_Sendrecv(v[0], n*sizeof(rvec),MPI_BYTE,MSRANK(ms,b),0, ++ buf[0],n*sizeof(rvec),MPI_BYTE,MSRANK(ms,b),0, ++ ms->mpi_comm_masters,MPI_STATUS_IGNORE); ++ */ ++ { ++ MPI_Request mpi_req; ++ ++ MPI_Isend(v[0], n*sizeof(rvec), MPI_BYTE, MSRANK(ms, b), 0, ++ ms->mpi_comm_masters, &mpi_req); ++ MPI_Recv(buf[0], n*sizeof(rvec), MPI_BYTE, MSRANK(ms, b), 0, ++ ms->mpi_comm_masters, MPI_STATUS_IGNORE); ++ MPI_Wait(&mpi_req, MPI_STATUS_IGNORE); ++ } ++#endif ++ for (i = 0; i < n; i++) ++ { ++ copy_rvec(buf[i], v[i]); ++ } ++ sfree(buf); ++ } ++} ++ ++static void exchange_state(const gmx_multisim_t *ms, int b, t_state *state) ++{ ++ /* When t_state changes, this code should be updated. */ ++ int ngtc, nnhpres; ++ ngtc = state->ngtc * state->nhchainlength; ++ nnhpres = state->nnhpres* state->nhchainlength; ++ exchange_rvecs(ms, b, state->box, DIM); ++ exchange_rvecs(ms, b, state->box_rel, DIM); ++ exchange_rvecs(ms, b, state->boxv, DIM); ++ exchange_reals(ms, b, &(state->veta), 1); ++ exchange_reals(ms, b, &(state->vol0), 1); ++ exchange_rvecs(ms, b, state->svir_prev, DIM); ++ exchange_rvecs(ms, b, state->fvir_prev, DIM); ++ exchange_rvecs(ms, b, state->pres_prev, DIM); ++ exchange_doubles(ms, b, state->nosehoover_xi, ngtc); ++ exchange_doubles(ms, b, state->nosehoover_vxi, ngtc); ++ exchange_doubles(ms, b, state->nhpres_xi, nnhpres); ++ exchange_doubles(ms, b, state->nhpres_vxi, nnhpres); ++ exchange_doubles(ms, b, state->therm_integral, state->ngtc); ++ exchange_rvecs(ms, b, state->x, state->natoms); ++ exchange_rvecs(ms, b, state->v, state->natoms); ++ exchange_rvecs(ms, b, state->sd_X, state->natoms); ++} ++ ++static void copy_rvecs(rvec *s, rvec *d, int n) ++{ ++ int i; ++ ++ if (d != NULL) ++ { ++ for (i = 0; i < n; i++) ++ { ++ copy_rvec(s[i], d[i]); ++ } ++ } ++} ++ ++static void copy_doubles(const double *s, double *d, int n) ++{ ++ int i; ++ ++ if (d != NULL) ++ { ++ for (i = 0; i < n; i++) ++ { ++ d[i] = s[i]; ++ } ++ } ++} ++ ++static void copy_reals(const real *s, real *d, int n) ++{ ++ int i; ++ ++ if (d != NULL) ++ { ++ for (i = 0; i < n; i++) ++ { ++ d[i] = s[i]; ++ } ++ } ++} ++ ++static void copy_ints(const int *s, int *d, int n) ++{ ++ int i; ++ ++ if (d != NULL) ++ { ++ for (i = 0; i < n; i++) ++ { ++ d[i] = s[i]; ++ } ++ } ++} ++ ++#define scopy_rvecs(v, n) copy_rvecs(state->v, state_local->v, n); ++#define scopy_doubles(v, n) copy_doubles(state->v, state_local->v, n); ++#define scopy_reals(v, n) copy_reals(state->v, state_local->v, n); ++#define scopy_ints(v, n) copy_ints(state->v, state_local->v, n); ++ ++static void copy_state_nonatomdata(t_state *state, t_state *state_local) ++{ ++ /* When t_state changes, this code should be updated. */ ++ int ngtc, nnhpres; ++ ngtc = state->ngtc * state->nhchainlength; ++ nnhpres = state->nnhpres* state->nhchainlength; ++ scopy_rvecs(box, DIM); ++ scopy_rvecs(box_rel, DIM); ++ scopy_rvecs(boxv, DIM); ++ state_local->veta = state->veta; ++ state_local->vol0 = state->vol0; ++ scopy_rvecs(svir_prev, DIM); ++ scopy_rvecs(fvir_prev, DIM); ++ scopy_rvecs(pres_prev, DIM); ++ scopy_doubles(nosehoover_xi, ngtc); ++ scopy_doubles(nosehoover_vxi, ngtc); ++ scopy_doubles(nhpres_xi, nnhpres); ++ scopy_doubles(nhpres_vxi, nnhpres); ++ scopy_doubles(therm_integral, state->ngtc); ++ scopy_rvecs(x, state->natoms); ++ scopy_rvecs(v, state->natoms); ++ scopy_rvecs(sd_X, state->natoms); ++ copy_ints(&(state->fep_state), &(state_local->fep_state), 1); ++ scopy_reals(lambda, efptNR); ++} ++ ++static void scale_velocities(t_state *state, real fac) ++{ ++ int i; ++ ++ if (state->v) ++ { ++ for (i = 0; i < state->natoms; i++) ++ { ++ svmul(fac, state->v[i], state->v[i]); ++ } ++ } ++} ++ ++static void print_transition_matrix(FILE *fplog, int n, int **nmoves, int *nattempt) ++{ ++ int i, j, ntot; ++ float Tprint; ++ ++ ntot = nattempt[0] + nattempt[1]; ++ fprintf(fplog, "\n"); ++ fprintf(fplog, "Repl"); ++ for (i = 0; i < n; i++) ++ { ++ fprintf(fplog, " "); /* put the title closer to the center */ ++ } ++ fprintf(fplog, "Empirical Transition Matrix\n"); ++ ++ fprintf(fplog, "Repl"); ++ for (i = 0; i < n; i++) ++ { ++ fprintf(fplog, "%8d", (i+1)); ++ } ++ fprintf(fplog, "\n"); ++ ++ for (i = 0; i < n; i++) ++ { ++ fprintf(fplog, "Repl"); ++ for (j = 0; j < n; j++) ++ { ++ Tprint = 0.0; ++ if (nmoves[i][j] > 0) ++ { ++ Tprint = nmoves[i][j]/(2.0*ntot); ++ } ++ fprintf(fplog, "%8.4f", Tprint); ++ } ++ fprintf(fplog, "%3d\n", i); ++ } ++} ++ ++static void print_ind(FILE *fplog, const char *leg, int n, int *ind, gmx_bool *bEx) ++{ ++ int i; ++ ++ fprintf(fplog, "Repl %2s %2d", leg, ind[0]); ++ for (i = 1; i < n; i++) ++ { ++ fprintf(fplog, " %c %2d", (bEx != 0 && bEx[i]) ? 'x' : ' ', ind[i]); ++ } ++ fprintf(fplog, "\n"); ++} ++ ++static void print_allswitchind(FILE *fplog, int n, int *pind, int *allswaps, int *tmpswap) ++{ ++ int i; ++ ++ for (i = 0; i < n; i++) ++ { ++ tmpswap[i] = allswaps[i]; ++ } ++ for (i = 0; i < n; i++) ++ { ++ allswaps[i] = tmpswap[pind[i]]; ++ } ++ ++ fprintf(fplog, "\nAccepted Exchanges: "); ++ for (i = 0; i < n; i++) ++ { ++ fprintf(fplog, "%d ", pind[i]); ++ } ++ fprintf(fplog, "\n"); ++ ++ /* the "Order After Exchange" is the state label corresponding to the configuration that ++ started in state listed in order, i.e. ++ ++ 3 0 1 2 ++ ++ means that the: ++ configuration starting in simulation 3 is now in simulation 0, ++ configuration starting in simulation 0 is now in simulation 1, ++ configuration starting in simulation 1 is now in simulation 2, ++ configuration starting in simulation 2 is now in simulation 3 ++ */ ++ fprintf(fplog, "Order After Exchange: "); ++ for (i = 0; i < n; i++) ++ { ++ fprintf(fplog, "%d ", allswaps[i]); ++ } ++ fprintf(fplog, "\n\n"); ++} ++ ++static void print_prob(FILE *fplog, const char *leg, int n, real *prob) ++{ ++ int i; ++ char buf[8]; ++ ++ fprintf(fplog, "Repl %2s ", leg); ++ for (i = 1; i < n; i++) ++ { ++ if (prob[i] >= 0) ++ { ++ sprintf(buf, "%4.2f", prob[i]); ++ fprintf(fplog, " %3s", buf[0] == '1' ? "1.0" : buf+1); ++ } ++ else ++ { ++ fprintf(fplog, " "); ++ } ++ } ++ fprintf(fplog, "\n"); ++} ++ ++static void print_count(FILE *fplog, const char *leg, int n, int *count) ++{ ++ int i; ++ ++ fprintf(fplog, "Repl %2s ", leg); ++ for (i = 1; i < n; i++) ++ { ++ fprintf(fplog, " %4d", count[i]); ++ } ++ fprintf(fplog, "\n"); ++} ++ ++static real calc_delta(FILE *fplog, gmx_bool bPrint, struct gmx_repl_ex *re, int a, int b, int ap, int bp) ++{ ++ ++ real ediff, dpV, delta = 0; ++ real *Epot = re->Epot; ++ real *Vol = re->Vol; ++ real **de = re->de; ++ real *beta = re->beta; ++ ++ /* Two cases; we are permuted and not. In all cases, setting ap = a and bp = b will reduce ++ to the non permuted case */ ++ ++ switch (re->type) ++ { ++ case ereTEMP: ++ /* ++ * Okabe et. al. Chem. Phys. Lett. 335 (2001) 435-439 ++ */ ++ ediff = Epot[b] - Epot[a]; ++ delta = -(beta[bp] - beta[ap])*ediff; ++ break; ++ case ereLAMBDA: ++ /* two cases: when we are permuted, and not. */ ++ /* non-permuted: ++ ediff = E_new - E_old ++ = [H_b(x_a) + H_a(x_b)] - [H_b(x_b) + H_a(x_a)] ++ = [H_b(x_a) - H_a(x_a)] + [H_a(x_b) - H_b(x_b)] ++ = de[b][a] + de[a][b] */ ++ ++ /* permuted: ++ ediff = E_new - E_old ++ = [H_bp(x_a) + H_ap(x_b)] - [H_bp(x_b) + H_ap(x_a)] ++ = [H_bp(x_a) - H_ap(x_a)] + [H_ap(x_b) - H_bp(x_b)] ++ = [H_bp(x_a) - H_a(x_a) + H_a(x_a) - H_ap(x_a)] + [H_ap(x_b) - H_b(x_b) + H_b(x_b) - H_bp(x_b)] ++ = [H_bp(x_a) - H_a(x_a)] - [H_ap(x_a) - H_a(x_a)] + [H_ap(x_b) - H_b(x_b)] - H_bp(x_b) - H_b(x_b)] ++ = (de[bp][a] - de[ap][a]) + (de[ap][b] - de[bp][b]) */ ++ /* but, in the current code implementation, we flip configurations, not indices . . . ++ So let's examine that. ++ = [H_b(x_ap) - H_a(x_a)] - [H_a(x_ap) - H_a(x_a)] + [H_a(x_bp) - H_b(x_b)] - H_b(x_bp) - H_b(x_b)] ++ = [H_b(x_ap) - H_a(x_ap)] + [H_a(x_bp) - H_b(x_pb)] ++ = (de[b][ap] - de[a][ap]) + (de[a][bp] - de[b][bp] ++ So, if we exchange b<=> bp and a<=> ap, we return to the same result. ++ So the simple solution is to flip the ++ position of perturbed and original indices in the tests. ++ */ ++ ++ ediff = (de[bp][a] - de[ap][a]) + (de[ap][b] - de[bp][b]); ++ delta = ediff*beta[a]; /* assume all same temperature in this case */ ++ break; ++ case ereTL: ++ /* not permuted: */ ++ /* delta = reduced E_new - reduced E_old ++ = [beta_b H_b(x_a) + beta_a H_a(x_b)] - [beta_b H_b(x_b) + beta_a H_a(x_a)] ++ = [beta_b H_b(x_a) - beta_a H_a(x_a)] + [beta_a H_a(x_b) - beta_b H_b(x_b)] ++ = [beta_b dH_b(x_a) + beta_b H_a(x_a) - beta_a H_a(x_a)] + ++ [beta_a dH_a(x_b) + beta_a H_b(x_b) - beta_b H_b(x_b)] ++ = [beta_b dH_b(x_a) + [beta_a dH_a(x_b) + ++ beta_b (H_a(x_a) - H_b(x_b)]) - beta_a (H_a(x_a) - H_b(x_b)) ++ = beta_b dH_b(x_a) + beta_a dH_a(x_b) - (beta_b - beta_a)(H_b(x_b) - H_a(x_a) */ ++ /* delta = beta[b]*de[b][a] + beta[a]*de[a][b] - (beta[b] - beta[a])*(Epot[b] - Epot[a]; */ ++ /* permuted (big breath!) */ ++ /* delta = reduced E_new - reduced E_old ++ = [beta_bp H_bp(x_a) + beta_ap H_ap(x_b)] - [beta_bp H_bp(x_b) + beta_ap H_ap(x_a)] ++ = [beta_bp H_bp(x_a) - beta_ap H_ap(x_a)] + [beta_ap H_ap(x_b) - beta_bp H_bp(x_b)] ++ = [beta_bp H_bp(x_a) - beta_ap H_ap(x_a)] + [beta_ap H_ap(x_b) - beta_bp H_bp(x_b)] ++ - beta_pb H_a(x_a) + beta_ap H_a(x_a) + beta_pb H_a(x_a) - beta_ap H_a(x_a) ++ - beta_ap H_b(x_b) + beta_bp H_b(x_b) + beta_ap H_b(x_b) - beta_bp H_b(x_b) ++ = [(beta_bp H_bp(x_a) - beta_bp H_a(x_a)) - (beta_ap H_ap(x_a) - beta_ap H_a(x_a))] + ++ [(beta_ap H_ap(x_b) - beta_ap H_b(x_b)) - (beta_bp H_bp(x_b) - beta_bp H_b(x_b))] ++ + beta_pb H_a(x_a) - beta_ap H_a(x_a) + beta_ap H_b(x_b) - beta_bp H_b(x_b) ++ = [beta_bp (H_bp(x_a) - H_a(x_a)) - beta_ap (H_ap(x_a) - H_a(x_a))] + ++ [beta_ap (H_ap(x_b) - H_b(x_b)) - beta_bp (H_bp(x_b) - H_b(x_b))] ++ + beta_pb (H_a(x_a) - H_b(x_b)) - beta_ap (H_a(x_a) - H_b(x_b)) ++ = ([beta_bp de[bp][a] - beta_ap de[ap][a]) + beta_ap de[ap][b] - beta_bp de[bp][b]) ++ + (beta_pb-beta_ap)(H_a(x_a) - H_b(x_b)) */ ++ delta = beta[bp]*(de[bp][a] - de[bp][b]) + beta[ap]*(de[ap][b] - de[ap][a]) - (beta[bp]-beta[ap])*(Epot[b]-Epot[a]); ++ break; ++ default: ++ gmx_incons("Unknown replica exchange quantity"); ++ } ++ if (bPrint) ++ { ++ fprintf(fplog, "Repl %d <-> %d dE_term = %10.3e (kT)\n", a, b, delta); ++ } ++ if (re->bNPT) ++ { ++ /* revist the calculation for 5.0. Might be some improvements. */ ++ dpV = (beta[ap]*re->pres[ap]-beta[bp]*re->pres[bp])*(Vol[b]-Vol[a])/PRESFAC; ++ if (bPrint) ++ { ++ fprintf(fplog, " dpV = %10.3e d = %10.3e\n", dpV, delta + dpV); ++ } ++ delta += dpV; ++ } ++ return delta; ++} ++ ++static void ++test_for_replica_exchange(FILE *fplog, ++ const gmx_multisim_t *ms, ++ struct gmx_repl_ex *re, ++ gmx_enerdata_t *enerd, ++ real vol, ++ gmx_int64_t step, ++ real time) ++{ ++ int m, i, j, a, b, ap, bp, i0, i1, tmp; ++ real ediff = 0, delta = 0, dpV = 0; ++ gmx_bool bPrint, bMultiEx; ++ gmx_bool *bEx = re->bEx; ++ real *prob = re->prob; ++ int *pind = re->destinations; /* permuted index */ ++ gmx_bool bEpot = FALSE; ++ gmx_bool bDLambda = FALSE; ++ gmx_bool bVol = FALSE; ++ gmx_rng_t rng; ++ ++ bMultiEx = (re->nex > 1); /* multiple exchanges at each state */ ++ fprintf(fplog, "Replica exchange at step " "%"GMX_PRId64 " time %.5f\n", step, time); ++ ++ if (re->bNPT) ++ { ++ for (i = 0; i < re->nrepl; i++) ++ { ++ re->Vol[i] = 0; ++ } ++ bVol = TRUE; ++ re->Vol[re->repl] = vol; ++ } ++ if ((re->type == ereTEMP || re->type == ereTL)) ++ { ++ for (i = 0; i < re->nrepl; i++) ++ { ++ re->Epot[i] = 0; ++ } ++ bEpot = TRUE; ++ re->Epot[re->repl] = enerd->term[F_EPOT]; ++ /* temperatures of different states*/ ++ for (i = 0; i < re->nrepl; i++) ++ { ++ re->beta[i] = 1.0/(re->q[ereTEMP][i]*BOLTZ); ++ } ++ } ++ else ++ { ++ for (i = 0; i < re->nrepl; i++) ++ { ++ re->beta[i] = 1.0/(re->temp*BOLTZ); /* we have a single temperature */ ++ } ++ } ++ if (re->type == ereLAMBDA || re->type == ereTL) ++ { ++ bDLambda = TRUE; ++ /* lambda differences. */ ++ /* de[i][j] is the energy of the jth simulation in the ith Hamiltonian ++ minus the energy of the jth simulation in the jth Hamiltonian */ ++ for (i = 0; i < re->nrepl; i++) ++ { ++ for (j = 0; j < re->nrepl; j++) ++ { ++ re->de[i][j] = 0; ++ } ++ } ++ for (i = 0; i < re->nrepl; i++) ++ { ++ re->de[i][re->repl] = (enerd->enerpart_lambda[(int)re->q[ereLAMBDA][i]+1]-enerd->enerpart_lambda[0]); ++ } ++ } ++ ++ /* now actually do the communication */ ++ if (bVol) ++ { ++ gmx_sum_sim(re->nrepl, re->Vol, ms); ++ } ++ if (bEpot) ++ { ++ gmx_sum_sim(re->nrepl, re->Epot, ms); ++ } ++ if (bDLambda) ++ { ++ for (i = 0; i < re->nrepl; i++) ++ { ++ gmx_sum_sim(re->nrepl, re->de[i], ms); ++ } ++ } ++ ++ /* make a duplicate set of indices for shuffling */ ++ for (i = 0; i < re->nrepl; i++) ++ { ++ pind[i] = re->ind[i]; ++ } ++ ++ if (bMultiEx) ++ { ++ /* multiple random switch exchange */ ++ int nself = 0; ++ for (i = 0; i < re->nex + nself; i++) ++ { ++ double rnd[2]; ++ ++ gmx_rng_cycle_2uniform(step, i*2, re->seed, RND_SEED_REPLEX, rnd); ++ /* randomly select a pair */ ++ /* in theory, could reduce this by identifying only which switches had a nonneglibible ++ probability of occurring (log p > -100) and only operate on those switches */ ++ /* find out which state it is from, and what label that state currently has. Likely ++ more work that useful. */ ++ i0 = (int)(re->nrepl*rnd[0]); ++ i1 = (int)(re->nrepl*rnd[1]); ++ if (i0 == i1) ++ { ++ nself++; ++ continue; /* self-exchange, back up and do it again */ ++ } ++ ++ a = re->ind[i0]; /* what are the indices of these states? */ ++ b = re->ind[i1]; ++ ap = pind[i0]; ++ bp = pind[i1]; ++ ++ bPrint = FALSE; /* too noisy */ ++ /* calculate the energy difference */ ++ /* if the code changes to flip the STATES, rather than the configurations, ++ use the commented version of the code */ ++ /* delta = calc_delta(fplog,bPrint,re,a,b,ap,bp); */ ++ delta = calc_delta(fplog, bPrint, re, ap, bp, a, b); ++ ++ /* we actually only use the first space in the prob and bEx array, ++ since there are actually many switches between pairs. */ ++ ++ if (delta <= 0) ++ { ++ /* accepted */ ++ prob[0] = 1; ++ bEx[0] = TRUE; ++ } ++ else ++ { ++ if (delta > PROBABILITYCUTOFF) ++ { ++ prob[0] = 0; ++ } ++ else ++ { ++ prob[0] = exp(-delta); ++ } ++ /* roll a number to determine if accepted */ ++ gmx_rng_cycle_2uniform(step, i*2+1, re->seed, RND_SEED_REPLEX, rnd); ++ bEx[0] = rnd[0] < prob[0]; ++ } ++ re->prob_sum[0] += prob[0]; ++ ++ if (bEx[0]) ++ { ++ /* swap the states */ ++ tmp = pind[i0]; ++ pind[i0] = pind[i1]; ++ pind[i1] = tmp; ++ } ++ } ++ re->nattempt[0]++; /* keep track of total permutation trials here */ ++ print_allswitchind(fplog, re->nrepl, pind, re->allswaps, re->tmpswap); ++ } ++ else ++ { ++ /* standard nearest neighbor replica exchange */ ++ ++ m = (step / re->nst) % 2; ++ for (i = 1; i < re->nrepl; i++) ++ { ++ a = re->ind[i-1]; ++ b = re->ind[i]; ++ ++ bPrint = (re->repl == a || re->repl == b); ++ if (i % 2 == m) ++ { ++ delta = calc_delta(fplog, bPrint, re, a, b, a, b); ++ if (delta <= 0) ++ { ++ /* accepted */ ++ prob[i] = 1; ++ bEx[i] = TRUE; ++ } ++ else ++ { ++ double rnd[2]; ++ ++ if (delta > PROBABILITYCUTOFF) ++ { ++ prob[i] = 0; ++ } ++ else ++ { ++ prob[i] = exp(-delta); ++ } ++ /* roll a number to determine if accepted */ ++ gmx_rng_cycle_2uniform(step, i, re->seed, RND_SEED_REPLEX, rnd); ++ bEx[i] = rnd[0] < prob[i]; ++ } ++ re->prob_sum[i] += prob[i]; ++ ++ if (bEx[i]) ++ { ++ /* swap these two */ ++ tmp = pind[i-1]; ++ pind[i-1] = pind[i]; ++ pind[i] = tmp; ++ re->nexchange[i]++; /* statistics for back compatibility */ ++ } ++ } ++ else ++ { ++ prob[i] = -1; ++ bEx[i] = FALSE; ++ } ++ } ++ /* print some statistics */ ++ print_ind(fplog, "ex", re->nrepl, re->ind, bEx); ++ print_prob(fplog, "pr", re->nrepl, prob); ++ fprintf(fplog, "\n"); ++ re->nattempt[m]++; ++ } ++ ++ /* record which moves were made and accepted */ ++ for (i = 0; i < re->nrepl; i++) ++ { ++ re->nmoves[re->ind[i]][pind[i]] += 1; ++ re->nmoves[pind[i]][re->ind[i]] += 1; ++ } ++ fflush(fplog); /* make sure we can see what the last exchange was */ ++} ++ ++static void write_debug_x(t_state *state) ++{ ++ int i; ++ ++ if (debug) ++ { ++ for (i = 0; i < state->natoms; i += 10) ++ { ++ fprintf(debug, "dx %5d %10.5f %10.5f %10.5f\n", i, state->x[i][XX], state->x[i][YY], state->x[i][ZZ]); ++ } ++ } ++} ++ ++static void ++cyclic_decomposition(const int *destinations, ++ int **cyclic, ++ gmx_bool *incycle, ++ const int nrepl, ++ int *nswap) ++{ ++ ++ int i, j, c, p; ++ int maxlen = 1; ++ for (i = 0; i < nrepl; i++) ++ { ++ incycle[i] = FALSE; ++ } ++ for (i = 0; i < nrepl; i++) /* one cycle for each replica */ ++ { ++ if (incycle[i]) ++ { ++ cyclic[i][0] = -1; ++ continue; ++ } ++ cyclic[i][0] = i; ++ incycle[i] = TRUE; ++ c = 1; ++ p = i; ++ for (j = 0; j < nrepl; j++) /* potentially all cycles are part, but we will break first */ ++ { ++ p = destinations[p]; /* start permuting */ ++ if (p == i) ++ { ++ cyclic[i][c] = -1; ++ if (c > maxlen) ++ { ++ maxlen = c; ++ } ++ break; /* we've reached the original element, the cycle is complete, and we marked the end. */ ++ } ++ else ++ { ++ cyclic[i][c] = p; /* each permutation gives a new member of the cycle */ ++ incycle[p] = TRUE; ++ c++; ++ } ++ } ++ } ++ *nswap = maxlen - 1; ++ ++ if (debug) ++ { ++ for (i = 0; i < nrepl; i++) ++ { ++ fprintf(debug, "Cycle %d:", i); ++ for (j = 0; j < nrepl; j++) ++ { ++ if (cyclic[i][j] < 0) ++ { ++ break; ++ } ++ fprintf(debug, "%2d", cyclic[i][j]); ++ } ++ fprintf(debug, "\n"); ++ } ++ fflush(debug); ++ } ++} ++ ++static void ++compute_exchange_order(FILE *fplog, ++ int **cyclic, ++ int **order, ++ const int nrepl, ++ const int maxswap) ++{ ++ int i, j; ++ ++ for (j = 0; j < maxswap; j++) ++ { ++ for (i = 0; i < nrepl; i++) ++ { ++ if (cyclic[i][j+1] >= 0) ++ { ++ order[cyclic[i][j+1]][j] = cyclic[i][j]; ++ order[cyclic[i][j]][j] = cyclic[i][j+1]; ++ } ++ } ++ for (i = 0; i < nrepl; i++) ++ { ++ if (order[i][j] < 0) ++ { ++ order[i][j] = i; /* if it's not exchanging, it should stay this round*/ ++ } ++ } ++ } ++ ++ if (debug) ++ { ++ fprintf(fplog, "Replica Exchange Order\n"); ++ for (i = 0; i < nrepl; i++) ++ { ++ fprintf(fplog, "Replica %d:", i); ++ for (j = 0; j < maxswap; j++) ++ { ++ if (order[i][j] < 0) ++ { ++ break; ++ } ++ fprintf(debug, "%2d", order[i][j]); ++ } ++ fprintf(fplog, "\n"); ++ } ++ fflush(fplog); ++ } ++} ++ ++static void ++prepare_to_do_exchange(FILE *fplog, ++ struct gmx_repl_ex *re, ++ const int replica_id, ++ int *maxswap, ++ gmx_bool *bThisReplicaExchanged) ++{ ++ int i, j; ++ /* Hold the cyclic decomposition of the (multiple) replica ++ * exchange. */ ++ gmx_bool bAnyReplicaExchanged = FALSE; ++ *bThisReplicaExchanged = FALSE; ++ ++ for (i = 0; i < re->nrepl; i++) ++ { ++ if (re->destinations[i] != re->ind[i]) ++ { ++ /* only mark as exchanged if the index has been shuffled */ ++ bAnyReplicaExchanged = TRUE; ++ break; ++ } ++ } ++ if (bAnyReplicaExchanged) ++ { ++ /* reinitialize the placeholder arrays */ ++ for (i = 0; i < re->nrepl; i++) ++ { ++ for (j = 0; j < re->nrepl; j++) ++ { ++ re->cyclic[i][j] = -1; ++ re->order[i][j] = -1; ++ } ++ } ++ ++ /* Identify the cyclic decomposition of the permutation (very ++ * fast if neighbor replica exchange). */ ++ cyclic_decomposition(re->destinations, re->cyclic, re->incycle, re->nrepl, maxswap); ++ ++ /* Now translate the decomposition into a replica exchange ++ * order at each step. */ ++ compute_exchange_order(fplog, re->cyclic, re->order, re->nrepl, *maxswap); ++ ++ /* Did this replica do any exchange at any point? */ ++ for (j = 0; j < *maxswap; j++) ++ { ++ if (replica_id != re->order[replica_id][j]) ++ { ++ *bThisReplicaExchanged = TRUE; ++ break; ++ } ++ } ++ } ++} ++ ++gmx_bool replica_exchange(FILE *fplog, const t_commrec *cr, struct gmx_repl_ex *re, ++ t_state *state, gmx_enerdata_t *enerd, ++ t_state *state_local, gmx_int64_t step, real time) ++{ ++ int i, j; ++ int replica_id = 0; ++ int exchange_partner; ++ int maxswap = 0; ++ /* Number of rounds of exchanges needed to deal with any multiple ++ * exchanges. */ ++ /* Where each replica ends up after the exchange attempt(s). */ ++ /* The order in which multiple exchanges will occur. */ ++ gmx_bool bThisReplicaExchanged = FALSE; ++ ++ if (MASTER(cr)) ++ { ++ replica_id = re->repl; ++ test_for_replica_exchange(fplog, cr->ms, re, enerd, det(state_local->box), step, time); ++ prepare_to_do_exchange(fplog, re, replica_id, &maxswap, &bThisReplicaExchanged); ++ } ++ /* Do intra-simulation broadcast so all processors belonging to ++ * each simulation know whether they need to participate in ++ * collecting the state. Otherwise, they might as well get on with ++ * the next thing to do. */ ++ if (DOMAINDECOMP(cr)) ++ { ++#ifdef GMX_MPI ++ MPI_Bcast(&bThisReplicaExchanged, sizeof(gmx_bool), MPI_BYTE, MASTERRANK(cr), ++ cr->mpi_comm_mygroup); ++#endif ++ } ++ ++ if (bThisReplicaExchanged) ++ { ++ /* Exchange the states */ ++ /* Collect the global state on the master node */ ++ if (DOMAINDECOMP(cr)) ++ { ++ dd_collect_state(cr->dd, state_local, state); ++ } ++ else ++ { ++ copy_state_nonatomdata(state_local, state); ++ } ++ ++ if (MASTER(cr)) ++ { ++ /* There will be only one swap cycle with standard replica ++ * exchange, but there may be multiple swap cycles if we ++ * allow multiple swaps. */ ++ ++ for (j = 0; j < maxswap; j++) ++ { ++ exchange_partner = re->order[replica_id][j]; ++ ++ if (exchange_partner != replica_id) ++ { ++ /* Exchange the global states between the master nodes */ ++ if (debug) ++ { ++ fprintf(debug, "Exchanging %d with %d\n", replica_id, exchange_partner); ++ } ++ exchange_state(cr->ms, exchange_partner, state); ++ } ++ } ++ /* For temperature-type replica exchange, we need to scale ++ * the velocities. */ ++ if (re->type == ereTEMP || re->type == ereTL) ++ { ++ scale_velocities(state, sqrt(re->q[ereTEMP][replica_id]/re->q[ereTEMP][re->destinations[replica_id]])); ++ } ++ ++ } ++ ++ /* With domain decomposition the global state is distributed later */ ++ if (!DOMAINDECOMP(cr)) ++ { ++ /* Copy the global state to the local state data structure */ ++ copy_state_nonatomdata(state, state_local); ++ } ++ } ++ ++ return bThisReplicaExchanged; ++} ++ ++void print_replica_exchange_statistics(FILE *fplog, struct gmx_repl_ex *re) ++{ ++ int i; ++ ++ fprintf(fplog, "\nReplica exchange statistics\n"); ++ ++ if (re->nex == 0) ++ { ++ fprintf(fplog, "Repl %d attempts, %d odd, %d even\n", ++ re->nattempt[0]+re->nattempt[1], re->nattempt[1], re->nattempt[0]); ++ ++ fprintf(fplog, "Repl average probabilities:\n"); ++ for (i = 1; i < re->nrepl; i++) ++ { ++ if (re->nattempt[i%2] == 0) ++ { ++ re->prob[i] = 0; ++ } ++ else ++ { ++ re->prob[i] = re->prob_sum[i]/re->nattempt[i%2]; ++ } ++ } ++ print_ind(fplog, "", re->nrepl, re->ind, NULL); ++ print_prob(fplog, "", re->nrepl, re->prob); ++ ++ fprintf(fplog, "Repl number of exchanges:\n"); ++ print_ind(fplog, "", re->nrepl, re->ind, NULL); ++ print_count(fplog, "", re->nrepl, re->nexchange); ++ ++ fprintf(fplog, "Repl average number of exchanges:\n"); ++ for (i = 1; i < re->nrepl; i++) ++ { ++ if (re->nattempt[i%2] == 0) ++ { ++ re->prob[i] = 0; ++ } ++ else ++ { ++ re->prob[i] = ((real)re->nexchange[i])/re->nattempt[i%2]; ++ } ++ } ++ print_ind(fplog, "", re->nrepl, re->ind, NULL); ++ print_prob(fplog, "", re->nrepl, re->prob); ++ ++ fprintf(fplog, "\n"); ++ } ++ /* print the transition matrix */ ++ print_transition_matrix(fplog, re->nrepl, re->nmoves, re->nattempt); ++} diff --git a/g/GSHHG/GSHHG-2.3.4.eb b/g/GSHHG/GSHHG-2.3.4.eb new file mode 100644 index 00000000..5fa74453 --- /dev/null +++ b/g/GSHHG/GSHHG-2.3.4.eb @@ -0,0 +1,19 @@ +easyblock = 'Tarball' + +name = 'GSHHG' +version = '2.3.4' + +homepage = 'http://gmt.soest.hawaii.edu/projects/gmt' +description = """country polygons for GMT""" + +toolchain = {'name': 'dummy', 'version': 'dummy'} + +source_urls = ['ftp://ftp.geologi.uio.no/pub/gmt'] +sources = ['%(namelower)s-gmt-%(version)s.tar.gz'] + +sanity_check_paths = { + 'files': ['binned_GSHHS_f.nc'], + 'dirs': [], +} + +moduleclass = 'geo' diff --git a/g/GSL/GSL-2.1-CrayGNU-2015.11.eb b/g/GSL/GSL-2.1-CrayGNU-2015.11.eb new file mode 100644 index 00000000..378ea5f6 --- /dev/null +++ b/g/GSL/GSL-2.1-CrayGNU-2015.11.eb @@ -0,0 +1,24 @@ +easyblock = 'ConfigureMake' + +name = 'GSL' +version = '2.1' + +homepage = 'http://www.gnu.org/software/gsl/' +description = """The GNU Scientific Library (GSL) is a numerical library for C and C++ programmers. + The library provides a wide range of mathematical routines such as random number generators, special functions + and least-squares fitting.""" + +toolchain = {'name': 'CrayGNU', 'version': '2015.11'} +toolchainopts = {'opt': True, 'optarch': True, 'unroll': True, 'pic': True} + +source_urls = [GNU_SOURCE] +sources = [SOURCELOWER_TAR_GZ] + +configopts = "--with-pic" + +sanity_check_paths={ + 'files': ['lib/libgsl.so', 'lib/libgsl.a'], + 'dirs': ['include'], +} + +moduleclass = 'numlib' diff --git a/g/Geant4/Geant4-10.01.p01-intel-2015a.eb b/g/Geant4/Geant4-10.01.p01-intel-2015a.eb new file mode 100644 index 00000000..468e4e32 --- /dev/null +++ b/g/Geant4/Geant4-10.01.p01-intel-2015a.eb @@ -0,0 +1,25 @@ +name = 'Geant4' +version = '10.01.p01' + +homepage = 'http://geant4.cern.ch/' +description = """Geant4 is a toolkit for the simulation of the passage of particles through matter. + Its areas of application include high energy, nuclear and accelerator physics, + as well as studies in medical and space science.""" + +toolchain = {'name': 'intel', 'version': '2015a'} + +source_urls = ['http://geant4.cern.ch/support/source'] +sources = ['%(namelower)s.%(version)s.tar.gz'] + +dependencies = [ + ('expat', '2.1.0'), + # recommended CLHEP version, see https://geant4.web.cern.ch/geant4/support/ReleaseNotes4.10.1.html#2. + ('CLHEP', '2.2.0.5'), +] + +builddependencies = [('CMake', '3.2.2')] + +configopts = "-DEXPAT_LIBRARY=$EBROOTEXPAT/lib/libexpat.so -DEXPAT_INCLUDE_DIR=$EBROOTEXPAT/include" +configopts += "-DGEANT4_INSTALL_DATA=OFF" + +moduleclass = 'phys' diff --git a/g/Geant4/Geant4-10.01.p03-intel-2016a.eb b/g/Geant4/Geant4-10.01.p03-intel-2016a.eb new file mode 100644 index 00000000..f30dcb1a --- /dev/null +++ b/g/Geant4/Geant4-10.01.p03-intel-2016a.eb @@ -0,0 +1,25 @@ +name = 'Geant4' +version = '10.01.p03' + +homepage = 'http://geant4.cern.ch/' +description = """Geant4 is a toolkit for the simulation of the passage of particles through matter. + Its areas of application include high energy, nuclear and accelerator physics, + as well as studies in medical and space science.""" + +toolchain = {'name': 'intel', 'version': '2016a'} + +source_urls = ['http://geant4.cern.ch/support/source'] +sources = ['%(namelower)s.%(version)s.tar.gz'] + +dependencies = [ + ('expat', '2.1.0'), + # recommended CLHEP version, see https://geant4.web.cern.ch/geant4/support/ReleaseNotes4.10.1.html#2. + ('CLHEP', '2.2.0.8'), +] + +builddependencies = [('CMake', '3.4.3')] + +configopts = "-DEXPAT_LIBRARY=$EBROOTEXPAT/lib/libexpat.so -DEXPAT_INCLUDE_DIR=$EBROOTEXPAT/include" +configopts += "-DGEANT4_INSTALL_DATA=OFF" + +moduleclass = 'phys' diff --git a/g/Geant4/Geant4-10.02.p01-intel-2016a.eb b/g/Geant4/Geant4-10.02.p01-intel-2016a.eb new file mode 100644 index 00000000..300557f7 --- /dev/null +++ b/g/Geant4/Geant4-10.02.p01-intel-2016a.eb @@ -0,0 +1,25 @@ +name = 'Geant4' +version = '10.02.p01' + +homepage = 'http://geant4.cern.ch/' +description = """Geant4 is a toolkit for the simulation of the passage of particles through matter. + Its areas of application include high energy, nuclear and accelerator physics, + as well as studies in medical and space science.""" + +toolchain = {'name': 'intel', 'version': '2016a'} + +source_urls = ['http://geant4.cern.ch/support/source'] +sources = ['%(namelower)s.%(version)s.tar.gz'] + +dependencies = [ + ('expat', '2.1.0'), + # recommended CLHEP version, see https://geant4.web.cern.ch/geant4/support/ReleaseNotes4.10.2.html#2. + ('CLHEP', '2.3.1.1'), +] + +builddependencies = [('CMake', '3.4.3')] + +configopts = "-DEXPAT_LIBRARY=$EBROOTEXPAT/lib/libexpat.so -DEXPAT_INCLUDE_DIR=$EBROOTEXPAT/include" +configopts += "-DGEANT4_INSTALL_DATA=OFF" + +moduleclass = 'phys' diff --git a/g/Geant4/Geant4-9.4.p02-ictce-4.0.6.eb b/g/Geant4/Geant4-9.4.p02-ictce-4.0.6.eb new file mode 100644 index 00000000..1e0d6874 --- /dev/null +++ b/g/Geant4/Geant4-9.4.p02-ictce-4.0.6.eb @@ -0,0 +1,25 @@ +name = 'Geant4' +version = '9.4.p02' + +homepage = 'http://geant4.cern.ch/' +description = """Geant4 is a toolkit for the simulation of the passage of particles through matter. + Its areas of application include high energy, nuclear and accelerator physics, + as well as studies in medical and space science.""" + +toolchain = {'name': 'ictce', 'version': '4.0.6'} + +source_urls = ['http://geant4.cern.ch/support/source'] +sources = ['%(namelower)s.%(version)s.tar.gz'] + +dependencies = [ + ('expat', '2.1.0'), + # recommended CLHEP version, see https://geant4.web.cern.ch/geant4/support/ReleaseNotes4.9.4.html#2. + ('CLHEP', '2.1.1.0'), +] + +builddependencies = [('CMake', '2.8.4')] + +configopts = "-DEXPAT_LIBRARY=$EBROOTEXPAT/lib/libexpat.so -DEXPAT_INCLUDE_DIR=$EBROOTEXPAT/include" +configopts += "-DGEANT4_INSTALL_DATA=OFF" + +moduleclass = 'phys' diff --git a/g/Geant4/Geant4-9.5.p01-goalf-1.1.0-no-OFED.eb b/g/Geant4/Geant4-9.5.p01-goalf-1.1.0-no-OFED.eb new file mode 100644 index 00000000..b7af10a8 --- /dev/null +++ b/g/Geant4/Geant4-9.5.p01-goalf-1.1.0-no-OFED.eb @@ -0,0 +1,25 @@ +name = 'Geant4' +version = '9.5.p01' + +homepage = 'http://geant4.cern.ch/' +description = """Geant4 is a toolkit for the simulation of the passage of particles through matter. + Its areas of application include high energy, nuclear and accelerator physics, + as well as studies in medical and space science.""" + +toolchain = {'name': 'goalf', 'version': '1.1.0-no-OFED'} + +source_urls = ['http://geant4.cern.ch/support/source'] +sources = ['%(namelower)s.%(version)s.tar.gz'] + +dependencies = [ + ('expat', '2.1.0'), + # recommended CLHEP version, see https://geant4.web.cern.ch/geant4/support/ReleaseNotes4.9.5.html#2. + ('CLHEP', '2.1.1.0'), +] + +builddependencies = [('CMake', '2.8.4')] + +configopts = "-DEXPAT_LIBRARY=$EBROOTEXPAT/lib/libexpat.so -DEXPAT_INCLUDE_DIR=$EBROOTEXPAT/include" +configopts += "-DGEANT4_INSTALL_DATA=OFF" + +moduleclass = 'phys' diff --git a/g/Geant4/Geant4-9.5.p01-goolf-1.4.10.eb b/g/Geant4/Geant4-9.5.p01-goolf-1.4.10.eb new file mode 100644 index 00000000..59a0ae79 --- /dev/null +++ b/g/Geant4/Geant4-9.5.p01-goolf-1.4.10.eb @@ -0,0 +1,25 @@ +name = 'Geant4' +version = '9.5.p01' + +homepage = 'http://geant4.cern.ch/' +description = """Geant4 is a toolkit for the simulation of the passage of particles through matter. + Its areas of application include high energy, nuclear and accelerator physics, + as well as studies in medical and space science.""" + +toolchain = {'name': 'goolf', 'version': '1.4.10'} + +source_urls = ['http://geant4.cern.ch/support/source'] +sources = ['%(namelower)s.%(version)s.tar.gz'] + +dependencies = [ + ('expat', '2.1.0'), + # recommended CLHEP version, see https://geant4.web.cern.ch/geant4/support/ReleaseNotes4.9.5.html#2. + ('CLHEP', '2.1.1.0'), +] + +builddependencies = [('CMake', '2.8.4')] + +configopts = "-DEXPAT_LIBRARY=$EBROOTEXPAT/lib/libexpat.so -DEXPAT_INCLUDE_DIR=$EBROOTEXPAT/include" +configopts += "-DGEANT4_INSTALL_DATA=OFF" + +moduleclass = 'phys' diff --git a/g/Geant4/Geant4-9.5.p01-ictce-4.0.6.eb b/g/Geant4/Geant4-9.5.p01-ictce-4.0.6.eb new file mode 100644 index 00000000..3f34b451 --- /dev/null +++ b/g/Geant4/Geant4-9.5.p01-ictce-4.0.6.eb @@ -0,0 +1,25 @@ +name = 'Geant4' +version = '9.5.p01' + +homepage = 'http://geant4.cern.ch/' +description = """Geant4 is a toolkit for the simulation of the passage of particles through matter. + Its areas of application include high energy, nuclear and accelerator physics, + as well as studies in medical and space science.""" + +toolchain = {'name': 'ictce', 'version': '4.0.6'} + +source_urls = ['http://geant4.cern.ch/support/source'] +sources = ['%(namelower)s.%(version)s.tar.gz'] + +dependencies = [ + ('expat', '2.1.0'), + # recommended CLHEP version, see https://geant4.web.cern.ch/geant4/support/ReleaseNotes4.9.5.html#2. + ('CLHEP', '2.1.1.0'), +] + +builddependencies = [('CMake', '2.8.4')] + +configopts = "-DEXPAT_LIBRARY=$EBROOTEXPAT/lib/libexpat.so -DEXPAT_INCLUDE_DIR=$EBROOTEXPAT/include" +configopts += "-DGEANT4_INSTALL_DATA=OFF" + +moduleclass = 'phys' diff --git a/g/Geant4/Geant4-9.5.p01-ictce-5.3.0.eb b/g/Geant4/Geant4-9.5.p01-ictce-5.3.0.eb new file mode 100644 index 00000000..ec559378 --- /dev/null +++ b/g/Geant4/Geant4-9.5.p01-ictce-5.3.0.eb @@ -0,0 +1,25 @@ +name = 'Geant4' +version = '9.5.p01' + +homepage = 'http://geant4.cern.ch/' +description = """Geant4 is a toolkit for the simulation of the passage of particles through matter. + Its areas of application include high energy, nuclear and accelerator physics, + as well as studies in medical and space science.""" + +toolchain = {'name': 'ictce', 'version': '5.3.0'} + +source_urls = ['http://geant4.cern.ch/support/source'] +sources = ['%(namelower)s.%(version)s.tar.gz'] + +dependencies = [ + ('expat', '2.1.0'), + # recommended CLHEP version, see https://geant4.web.cern.ch/geant4/support/ReleaseNotes4.9.5.html#2. + ('CLHEP', '2.1.1.0'), +] + +builddependencies = [('CMake', '2.8.4')] + +configopts = "-DEXPAT_LIBRARY=$EBROOTEXPAT/lib/libexpat.so -DEXPAT_INCLUDE_DIR=$EBROOTEXPAT/include" +configopts += "-DGEANT4_INSTALL_DATA=OFF" + +moduleclass = 'phys' diff --git a/g/Geant4/Geant4-9.5.p01-intel-2015a.eb b/g/Geant4/Geant4-9.5.p01-intel-2015a.eb new file mode 100644 index 00000000..5a4e622d --- /dev/null +++ b/g/Geant4/Geant4-9.5.p01-intel-2015a.eb @@ -0,0 +1,25 @@ +name = 'Geant4' +version = '9.5.p01' + +homepage = 'http://geant4.cern.ch/' +description = """Geant4 is a toolkit for the simulation of the passage of particles through matter. + Its areas of application include high energy, nuclear and accelerator physics, + as well as studies in medical and space science.""" + +toolchain = {'name': 'intel', 'version': '2015a'} + +source_urls = ['http://geant4.cern.ch/support/source'] +sources = ['%(namelower)s.%(version)s.tar.gz'] + +dependencies = [ + ('expat', '2.1.0'), + # recommended CLHEP version, see https://geant4.web.cern.ch/geant4/support/ReleaseNotes4.9.5.html#2. + ('CLHEP', '2.1.1.0'), +] + +builddependencies = [('CMake', '2.8.4')] + +configopts = "-DEXPAT_LIBRARY=$EBROOTEXPAT/lib/libexpat.so -DEXPAT_INCLUDE_DIR=$EBROOTEXPAT/include" +configopts += "-DGEANT4_INSTALL_DATA=OFF" + +moduleclass = 'phys' diff --git a/g/Geant4/Geant4-9.5.p02-intel-2016a.eb b/g/Geant4/Geant4-9.5.p02-intel-2016a.eb new file mode 100644 index 00000000..b790b2a3 --- /dev/null +++ b/g/Geant4/Geant4-9.5.p02-intel-2016a.eb @@ -0,0 +1,25 @@ +name = 'Geant4' +version = '9.5.p02' + +homepage = 'http://geant4.cern.ch/' +description = """Geant4 is a toolkit for the simulation of the passage of particles through matter. + Its areas of application include high energy, nuclear and accelerator physics, + as well as studies in medical and space science.""" + +toolchain = {'name': 'intel', 'version': '2016a'} + +source_urls = ['http://geant4.cern.ch/support/source'] +sources = ['%(namelower)s.%(version)s.tar.gz'] + +dependencies = [ + ('expat', '2.1.0'), + # recommended CLHEP version, see https://geant4.web.cern.ch/geant4/support/ReleaseNotes4.9.5.html#2. + ('CLHEP', '2.1.1.0'), +] + +builddependencies = [('CMake', '3.4.3')] + +configopts = "-DEXPAT_LIBRARY=$EBROOTEXPAT/lib/libexpat.so -DEXPAT_INCLUDE_DIR=$EBROOTEXPAT/include" +configopts += "-DGEANT4_INSTALL_DATA=OFF" + +moduleclass = 'phys' diff --git a/g/Geant4/Geant4-9.6.p04-intel-2015a.eb b/g/Geant4/Geant4-9.6.p04-intel-2015a.eb new file mode 100644 index 00000000..e8b57820 --- /dev/null +++ b/g/Geant4/Geant4-9.6.p04-intel-2015a.eb @@ -0,0 +1,25 @@ +name = 'Geant4' +version = '9.6.p04' + +homepage = 'http://geant4.cern.ch/' +description = """Geant4 is a toolkit for the simulation of the passage of particles through matter. + Its areas of application include high energy, nuclear and accelerator physics, + as well as studies in medical and space science.""" + +toolchain = {'name': 'intel', 'version': '2015a'} + +source_urls = ['http://geant4.cern.ch/support/source'] +sources = ['%(namelower)s.%(version)s.tar.gz'] + +dependencies = [ + ('expat', '2.1.0'), + # recommended CLHEP version, see https://geant4.web.cern.ch/geant4/support/ReleaseNotes4.9.6.html#2. + ('CLHEP', '2.1.3.1'), +] + +builddependencies = [('CMake', '3.1.3')] + +configopts = "-DEXPAT_LIBRARY=$EBROOTEXPAT/lib/libexpat.so -DEXPAT_INCLUDE_DIR=$EBROOTEXPAT/include" +configopts += "-DGEANT4_INSTALL_DATA=OFF" + +moduleclass = 'phys' diff --git a/g/Geant4/Geant4-9.6.p04-intel-2016a.eb b/g/Geant4/Geant4-9.6.p04-intel-2016a.eb new file mode 100644 index 00000000..554b9825 --- /dev/null +++ b/g/Geant4/Geant4-9.6.p04-intel-2016a.eb @@ -0,0 +1,26 @@ +name = 'Geant4' +version = '9.6.p04' + +homepage = 'http://geant4.cern.ch/' +description = """Geant4 is a toolkit for the simulation of the passage of particles through matter. + Its areas of application include high energy, nuclear and accelerator physics, + as well as studies in medical and space science.""" + +toolchain = {'name': 'intel', 'version': '2016a'} + +source_urls = ['http://geant4.cern.ch/support/source'] +sources = ['%(namelower)s.%(version)s.tar.gz'] + +dependencies = [ + ('expat', '2.1.0'), + # recommended CLHEP version, see https://geant4.web.cern.ch/geant4/support/ReleaseNotes4.9.6.html#2. + ('CLHEP', '2.1.3.1'), +] +builddependencies = [ + ('CMake', '3.4.3'), +] + +configopts = "-DEXPAT_LIBRARY=$EBROOTEXPAT/lib/libexpat.so -DEXPAT_INCLUDE_DIR=$EBROOTEXPAT/include" +configopts += "-DGEANT4_INSTALL_DATA=OFF" + +moduleclass = 'phys' diff --git a/g/Ghostscript/Ghostscript-9.10-goolf-1.4.10.eb b/g/Ghostscript/Ghostscript-9.10-goolf-1.4.10.eb new file mode 100644 index 00000000..8aa2e771 --- /dev/null +++ b/g/Ghostscript/Ghostscript-9.10-goolf-1.4.10.eb @@ -0,0 +1,24 @@ +easyblock = 'ConfigureMake' + +name = 'Ghostscript' +version = '9.10' + +homepage = 'http://ghostscript.com' +description = """Ghostscript is a versatile processor for PostScript data with the ability to render PostScript to + different targets. It used to be part of the cups printing stack, but is no longer used for that.""" + +toolchain = {'name': 'goolf', 'version': '1.4.10'} +toolchainopts = {'pic': True} + +source_urls = ["http://downloads.ghostscript.com/public/"] +sources = [SOURCELOWER_TAR_GZ] + +# expat, freetype and libpng are optional deps, +# these are actually patched and included in the sources, +dependencies = [ + ('LibTIFF', '4.0.3'), +] + +configopts = "--with-system-libtiff --enable-dynamic" + +moduleclass = 'tools' diff --git a/g/Ghostscript/Ghostscript-9.14-intel-2014b.eb b/g/Ghostscript/Ghostscript-9.14-intel-2014b.eb new file mode 100644 index 00000000..97a129a9 --- /dev/null +++ b/g/Ghostscript/Ghostscript-9.14-intel-2014b.eb @@ -0,0 +1,44 @@ +easyblock = 'ConfigureMake' + +name = 'Ghostscript' +version = '9.14' + +homepage = 'http://ghostscript.com' +description = """Ghostscript is a versatile processor for PostScript data with the ability to render PostScript to + different targets. It used to be part of the cups printing stack, but is no longer used for that.""" + +toolchain = {'name': 'intel', 'version': '2014b'} +toolchainopts = {'pic': True} + +source_urls = ["http://downloads.ghostscript.com/public/"] +sources = [SOURCELOWER_TAR_GZ] + +dependencies = [ + ('freetype', '2.5.3'), + ('fontconfig', '2.11.1'), + ('GLib', '2.40.0'), + ('libjpeg-turbo', '1.3.1'), + ('libpng', '1.6.12'), + ('expat', '2.1.0'), + ('cairo', '1.12.18'), + ('LibTIFF', '4.0.3'), + ('zlib', '1.2.8'), +] + +patches = ['Ghostscript-9.14_use_extzlib.patch'] + +# Use external libraries http://www.linuxfromscratch.org/blfs/view/svn/pst/gs.html +preconfigopts = "rm -rf expat freetype jpeg libpng zlib && " + +configopts = "--with-system-libtiff --enable-dynamic " + +buildopts = [' ', 'so'] + +installopts = [' ', 'soinstall'] + +sanity_check_paths = { + 'files': ['bin/gs', 'bin/ps2pdf', 'lib/libgs.%s' % SHLIB_EXT], + 'dirs': ['include'] +} + +moduleclass = 'tools' diff --git a/g/Ghostscript/Ghostscript-9.16-goolf-1.7.20.eb b/g/Ghostscript/Ghostscript-9.16-goolf-1.7.20.eb new file mode 100644 index 00000000..4e828aad --- /dev/null +++ b/g/Ghostscript/Ghostscript-9.16-goolf-1.7.20.eb @@ -0,0 +1,32 @@ +easyblock = 'ConfigureMake' + +name = 'Ghostscript' +version = '9.16' + +homepage = 'http://ghostscript.com' +description = """Ghostscript is a versatile processor for PostScript data with the ability to render PostScript to + different targets. It used to be part of the cups printing stack, but is no longer used for that.""" + +toolchain = {'name': 'goolf', 'version': '1.7.20'} +toolchainopts = {'pic': True} + +source_urls = ["http://downloads.ghostscript.com/public/"] +sources = [SOURCELOWER_TAR_GZ] + +checksums = ['829319325bbdb83f5c81379a8f86f38f'] + +dependencies = [ + ('zlib', '1.2.8'), + ('libpng', '1.6.17'), + ('freetype', '2.6'), + ('fontconfig', '2.11.94'), + ('GLib', '2.44.1'), + ('libjpeg-turbo', '1.3.1'), # note: libjpeg-turbo 1.4.[01] doesn't work + ('expat', '2.1.0'), + ('cairo', '1.14.2'), + ('LibTIFF', '4.0.4'), +] + +configopts = "--with-system-libtiff --enable-dynamic" + +moduleclass = 'tools' diff --git a/g/Ghostscript/Ghostscript-9.16-intel-2015a.eb b/g/Ghostscript/Ghostscript-9.16-intel-2015a.eb new file mode 100644 index 00000000..691a9000 --- /dev/null +++ b/g/Ghostscript/Ghostscript-9.16-intel-2015a.eb @@ -0,0 +1,33 @@ +easyblock = 'ConfigureMake' + +name = 'Ghostscript' +version = '9.16' + +homepage = 'http://ghostscript.com' +description = """Ghostscript is a versatile processor for PostScript data with the ability to render PostScript to + different targets. It used to be part of the cups printing stack, but is no longer used for that.""" + +toolchain = {'name': 'intel', 'version': '2015a'} +# lowopt (-O1) is used to avoid internal compiler error that is hit when -O2 is used +toolchainopts = {'pic': True, 'lowopt': True} + +source_urls = ["http://downloads.ghostscript.com/public/"] +sources = [SOURCELOWER_TAR_GZ] + +checksums = ['829319325bbdb83f5c81379a8f86f38f'] + +dependencies = [ + ('zlib', '1.2.8'), + ('libpng', '1.6.17'), + ('freetype', '2.6'), + ('fontconfig', '2.11.94'), + ('GLib', '2.44.1'), + ('libjpeg-turbo', '1.3.1'), # note: libjpeg-turbo 1.4.[01] doesn't work + ('expat', '2.1.0'), + ('cairo', '1.14.2'), + ('LibTIFF', '4.0.4'), +] + +configopts = "--with-system-libtiff --enable-dynamic" + +moduleclass = 'tools' diff --git a/g/Ghostscript/Ghostscript-9.19-intel-2016a.eb b/g/Ghostscript/Ghostscript-9.19-intel-2016a.eb new file mode 100644 index 00000000..fa06ee75 --- /dev/null +++ b/g/Ghostscript/Ghostscript-9.19-intel-2016a.eb @@ -0,0 +1,30 @@ +easyblock = 'ConfigureMake' + +name = 'Ghostscript' +version = '9.19' + +homepage = 'http://ghostscript.com' +description = """Ghostscript is a versatile processor for PostScript data with the ability to render PostScript to + different targets. It used to be part of the cups printing stack, but is no longer used for that.""" + +toolchain = {'name': 'intel', 'version': '2016a'} +toolchainopts = {'pic': True} + +source_urls = ["https://github.com/ArtifexSoftware/ghostpdl-downloads/releases/download/gs%(version_major)s%(version_minor)s/"] +sources = ["ghostpdl-%(version)s.tar.bz2"] + +dependencies = [ + ('zlib', '1.2.8'), + ('libpng', '1.6.21'), + ('freetype', '2.6.3'), + ('fontconfig', '2.11.95'), + ('libjpeg-turbo', '1.4.2'), + ('expat', '2.1.1'), + ('GLib', '2.48.0'), + ('cairo', '1.14.6', '-GLib-2.48.0'), + ('LibTIFF', '4.0.6'), +] + +configopts = "--with-system-libtiff --enable-dynamic" + +moduleclass = 'tools' diff --git a/g/Ghostscript/Ghostscript-9.19-intel-2016b.eb b/g/Ghostscript/Ghostscript-9.19-intel-2016b.eb new file mode 100644 index 00000000..8612f284 --- /dev/null +++ b/g/Ghostscript/Ghostscript-9.19-intel-2016b.eb @@ -0,0 +1,29 @@ +easyblock = 'ConfigureMake' + +name = 'Ghostscript' +version = '9.19' + +homepage = 'http://ghostscript.com' +description = """Ghostscript is a versatile processor for PostScript data with the ability to render PostScript to + different targets. It used to be part of the cups printing stack, but is no longer used for that.""" + +toolchain = {'name': 'intel', 'version': '2016b'} +toolchainopts = {'pic': True} + +source_urls = ["https://github.com/ArtifexSoftware/ghostpdl-downloads/releases/download/gs%(version_major)s%(version_minor)s/"] +sources = ["ghostpdl-%(version)s.tar.bz2"] + +dependencies = [ + ('zlib', '1.2.8'), + ('libpng', '1.6.24'), + ('freetype', '2.6.5'), + ('libjpeg-turbo', '1.5.0'), + ('expat', '2.2.0'), + ('GLib', '2.49.5'), + ('cairo', '1.14.6'), + ('LibTIFF', '4.0.6'), +] + +configopts = "--with-system-libtiff --enable-dynamic" + +moduleclass = 'tools' diff --git a/g/Ghostscript/Ghostscript-9.20-intel-2016b.eb b/g/Ghostscript/Ghostscript-9.20-intel-2016b.eb new file mode 100644 index 00000000..2238d98b --- /dev/null +++ b/g/Ghostscript/Ghostscript-9.20-intel-2016b.eb @@ -0,0 +1,29 @@ +easyblock = 'ConfigureMake' + +name = 'Ghostscript' +version = '9.20' + +homepage = 'http://ghostscript.com' +description = """Ghostscript is a versatile processor for PostScript data with the ability to render PostScript to + different targets. It used to be part of the cups printing stack, but is no longer used for that.""" + +toolchain = {'name': 'intel', 'version': '2016b'} +toolchainopts = {'pic': True} + +source_urls = ["https://github.com/ArtifexSoftware/ghostpdl-downloads/releases/download/gs%(version_major)s%(version_minor)s/"] +sources = ['ghostscript-%(version)s.tar.gz'] + +dependencies = [ + ('zlib', '1.2.8'), + ('libpng', '1.6.24'), + ('freetype', '2.6.5'), + ('libjpeg-turbo', '1.5.0'), + ('expat', '2.2.0'), + ('GLib', '2.49.5'), + ('cairo', '1.14.6'), + ('LibTIFF', '4.0.6'), +] + +configopts = "--with-system-libtiff --enable-dynamic" + +moduleclass = 'tools' diff --git a/g/GnuTLS/GnuTLS-3.1.8-goolf-1.4.10.eb b/g/GnuTLS/GnuTLS-3.1.8-goolf-1.4.10.eb new file mode 100644 index 00000000..80b639f6 --- /dev/null +++ b/g/GnuTLS/GnuTLS-3.1.8-goolf-1.4.10.eb @@ -0,0 +1,28 @@ +easyblock = 'ConfigureMake' + +name = 'GnuTLS' +version = '3.1.8' + +homepage = 'http://www.gnutls.org/' +description = "gnutls-3.0.22: GNU Transport Layer Security library" +toolchain = {'name': 'goolf', 'version': '1.4.10'} + +source_urls = ['ftp://ftp.gnutls.org/pub/gnutls/'] +sources = [SOURCELOWER_TAR_XZ] + +dependencies = [ + ('GMP', '5.0.5'), + ('nettle', '2.6'), + ('Guile', '1.8.8'), +] + +configopts = "--with-guile-site-dir=$EBROOTGUILE" + +sanity_check_paths = { + 'files': ['bin/%s' % x for x in ['certtool', 'danetool', 'gnutls-cli', 'gnutls-cli-debug', + 'gnutls-serv', 'ocsptool', 'psktool', 'srptool']] + + ['lib/libgnutls%s' % x for x in ['.a', 'xx.a', '-xssl.a', '-openssl.a']], + 'dirs': ['include/gnutls'], +} + +moduleclass = 'system' diff --git a/g/Graphviz/Graphviz-2.38.0-intel-2014b.eb b/g/Graphviz/Graphviz-2.38.0-intel-2014b.eb new file mode 100644 index 00000000..aee7aa31 --- /dev/null +++ b/g/Graphviz/Graphviz-2.38.0-intel-2014b.eb @@ -0,0 +1,67 @@ +easyblock = 'ConfigureMake' + +name = 'Graphviz' +version = '2.38.0' + +homepage = 'http://www.graphviz.org/' +description = """Graphviz is open source graph visualization software. Graph visualization + is a way of representing structural information as diagrams of + abstract graphs and networks. It has important applications in networking, + bioinformatics, software engineering, database and web design, machine learning, + and in visual interfaces for other technical domains.""" + +toolchain = {'name': 'intel', 'version': '2014b'} + +source_urls = ['http://www.graphviz.org/pub/graphviz/stable/SOURCES/'] +sources = [SOURCELOWER_TAR_GZ] + +python = "Python" +pythonversion = '2.7.8' + +dependencies = [ + ('cairo', '1.12.18'), + ('expat', '2.1.0'), + ('freetype', '2.5.3'), + ('fontconfig', '2.11.1'), + ('Ghostscript', '9.14'), + ('GLib', '2.40.0'), + ('GTS', '0.7.6'), + ('Java', '1.7.0_60', '', True), + ('libpng', '1.6.12'), + ('Pango', '1.36.7'), + ('Perl', '5.20.0'), + (python, pythonversion), + ('Qt', '4.8.6'), + ('SWIG', '3.0.2', '-%s-%s' % (python, pythonversion)), + ('Tcl', '8.6.2'), + ('zlib', '1.2.8'), +] + +builddependencies = [ + ('M4', '1.4.17'), +] + +patches = [ + 'Graphviz-2.38.0_icc_vmalloc.patch', + 'Graphviz-2.38.0_icc_sfio.patch', +] + +configopts = '--enable-guile=no --enable-lua=no --enable-ocaml=no ' +configopts += '--enable-r=no --enable-ruby=no ' + +prebuildopts = 'qmake -o cmd/gvedit/qMakefile cmd/gvedit/gvedit.pro && ' + +sanity_check_paths = { + 'files': ['bin/cluster', 'bin/dot', 'bin/gvmap', + 'lib/libcdt.%s' % SHLIB_EXT, 'lib/libgvc.%s' % SHLIB_EXT, 'lib/libxdot.%s' % SHLIB_EXT], + 'dirs': ['include'] +} + +modextrapaths = { + 'PYTHONPATH': 'lib/graphviz/python', + 'CLASSPATH': 'lib/graphviz/java/org/graphviz', + 'LD_LIBRARY_PATH': 'lib/graphviz/java', + 'TCLLIBPATH': 'lib/graphviz/tcl', +} + +moduleclass = 'vis' diff --git a/g/Graphviz/Graphviz-2.38.0-intel-2015a-Python-2.7.10.eb b/g/Graphviz/Graphviz-2.38.0-intel-2015a-Python-2.7.10.eb new file mode 100644 index 00000000..231a5ddb --- /dev/null +++ b/g/Graphviz/Graphviz-2.38.0-intel-2015a-Python-2.7.10.eb @@ -0,0 +1,69 @@ +easyblock = 'ConfigureMake' + +name = 'Graphviz' +version = '2.38.0' + +homepage = 'http://www.graphviz.org/' +description = """Graphviz is open source graph visualization software. Graph visualization + is a way of representing structural information as diagrams of + abstract graphs and networks. It has important applications in networking, + bioinformatics, software engineering, database and web design, machine learning, + and in visual interfaces for other technical domains.""" + +toolchain = {'name': 'intel', 'version': '2015a'} + +source_urls = ['http://www.graphviz.org/pub/graphviz/stable/SOURCES/'] +sources = [SOURCELOWER_TAR_GZ] + +python = 'Python' +pyver = '2.7.10' +versionsuffix = '-%s-%s' % (python, pyver) + +glibsuff = '-GLib-2.44.1' + +dependencies = [ + ('cairo', '1.14.2'), + ('expat', '2.1.0'), + ('freetype', '2.6'), + ('fontconfig', '2.11.94'), + ('Ghostscript', '9.16'), + ('GTS', '0.7.6', glibsuff), + ('Java', '1.7.0_80', '', True), + ('libpng', '1.6.17'), + ('Pango', '1.37.2'), + ('Perl', '5.20.0'), + (python, pyver), + ('Qt', '4.8.6', glibsuff), + ('SWIG', '3.0.7', versionsuffix), + ('Tcl', '8.6.4'), + ('zlib', '1.2.8'), +] + +builddependencies = [ + ('M4', '1.4.17'), +] + +patches = [ + 'Graphviz-2.38.0_icc_vmalloc.patch', + 'Graphviz-2.38.0_icc_sfio.patch', +] + +configopts = '--enable-guile=no --enable-lua=no --enable-ocaml=no ' +configopts += '--enable-r=no --enable-ruby=no ' + +prebuildopts = 'qmake -o cmd/gvedit/qMakefile cmd/gvedit/gvedit.pro && ' + +sanity_check_paths = { + 'files': ['bin/cluster', 'bin/dot', 'bin/gvmap', + 'lib/libcdt.%s' % SHLIB_EXT, 'lib/libgvc.%s' % SHLIB_EXT, 'lib/libxdot.%s' % SHLIB_EXT], + 'dirs': ['include'] +} + +modextrapaths = { + 'PYTHONPATH': 'lib/graphviz/python', + 'CLASSPATH': 'lib/graphviz/java/org/graphviz', + 'LD_LIBRARY_PATH': 'lib/graphviz/java', + 'TCLLIBPATH': 'lib/graphviz/tcl', +} + +moduleclass = 'vis' diff --git a/g/Grep/Grep-2.21-GCC-4.9.2.eb b/g/Grep/Grep-2.21-GCC-4.9.2.eb new file mode 100644 index 00000000..43c5a459 --- /dev/null +++ b/g/Grep/Grep-2.21-GCC-4.9.2.eb @@ -0,0 +1,19 @@ +easyblock = 'ConfigureMake' + +name = 'Grep' +version = '2.21' + +homepage = 'http://www.gnu.org/software/grep/' +description = """The grep command searches one or more input files for lines containing a match to a specified pattern. By default, grep prints the matching lines.""" + +toolchain = {'name': 'GCC', 'version': '4.9.2'} + +sources = [SOURCELOWER_TAR_XZ] +source_urls = ['http://ftp.gnu.org/gnu/%(namelower)s'] + +sanity_check_paths = { + 'files': [], + 'dirs': ["bin"] +} + +moduleclass = 'tools' diff --git a/g/Gurobi/Gurobi-Optimizer-7.0.0.eb b/g/Gurobi/Gurobi-Optimizer-7.0.0.eb new file mode 100644 index 00000000..8548e6e4 --- /dev/null +++ b/g/Gurobi/Gurobi-Optimizer-7.0.0.eb @@ -0,0 +1,18 @@ +name = 'Gurobi-Optimizer' +version = '7.0.0' + +homepage = 'http://www.gurobi.com' +description = """The Gurobi Optimizer is a state-of-the-art solver for mathematical programming. +The solvers in the Gurobi Optimizer were designed from the ground up to exploit modern +architectures and multi-core processors, using the most advanced implementations of the +latest algorithms.""" + +toolchain = {'name': 'dummy', 'version': 'dummy'} + +# registration is required +# source_urls = ['http://www.gurobi.com/downloads/user/gurobi-optimizer'] +sources = ['Gurobi-Optimizer---gurobi7.0.0_linux64.tar.gz'] + +license_file = '/apps/licenses/Gurobi/gurobi7.0.0.lic' + +moduleclass = 'math' diff --git a/g/gencore_variant_detection/gencore_variant_detection-1.0.eb b/g/gencore_variant_detection/gencore_variant_detection-1.0.eb new file mode 100644 index 00000000..b799146d --- /dev/null +++ b/g/gencore_variant_detection/gencore_variant_detection-1.0.eb @@ -0,0 +1,35 @@ +## +# This is an easyconfig file for EasyBuild, see https://github.com/hpcugent/easybuild +# +# Copyright:: Copyright 2013-2015 Juelich Supercomputing Centre, Germany +# Authors:: Bernd Mohr +# Markus Geimer +# License:: 3-clause BSD +# +# This work is based on experiences from the UNITE project +# http://apps.fz-juelich.de/unite/ +## + +easyblock = 'Conda' + +name = "gencore_variant_detection" +version = "1.0" +variant = "Linux-x86_64" + +homepage = "https://nyuad-cgsb.github.io/variant_detection/public/index.html" +description = """ This is a bundled install of many software packages for doing variant detection analysis. """ + +toolchain = {'name': 'dummy', 'version': ''} + +builddependencies = [('Anaconda3', '4.0.0')] + +# Use one of the following - either an environment.yml file or a remote environment definition +#environment_file = '/path/to/conda-environment.yml' +remote_environment = "nyuad-cgsb/%(name)s_%(version)s" + +sanity_check_paths = { + 'files': ["bin/conda"], + 'dirs': [] +} + +moduleclass = 'tools' diff --git a/g/gensim/gensim-0.13.2-foss-2016a-Python-2.7.11.eb b/g/gensim/gensim-0.13.2-foss-2016a-Python-2.7.11.eb new file mode 100644 index 00000000..991e6da6 --- /dev/null +++ b/g/gensim/gensim-0.13.2-foss-2016a-Python-2.7.11.eb @@ -0,0 +1,49 @@ +easyblock = 'Bundle' + +name = 'gensim' +version = '0.13.2' +versionsuffix = '-Python-%(pyver)s' + +homepage = 'https://pypi.python.org/pypi/gensim' +description = """Gensim is a Python library for topic modelling, document indexing and similarity retrieval with + large corpora.""" + +toolchain = {'name': 'foss', 'version': '2016a'} + +# this is a bundle of Python packages +exts_defaultclass = 'PythonPackage' + +dependencies = [ + ('Python', '2.7.11'), + ('requests', '2.10.0', '-Python-%(pyver)s'), +] + +exts_list = [ + ('boto', '2.42.0', { + 'source_urls': ['https://pypi.python.org/packages/source/b/%(name)s'], + 'source_tmpl': '%(name)s-%(version)s.tar.gz', + }), + ('bz2file', '0.98', { + 'source_urls': ['https://pypi.python.org/packages/source/b/%(name)s'], + 'source_tmpl': '%(name)s-%(version)s.tar.gz', + }), + ('smart_open', '1.3.4', { + 'source_urls': ['https://pypi.python.org/packages/source/s/%(name)s'], + 'source_tmpl': '%(name)s-%(version)s.tar.gz', + }), + (name, version, { + 'source_urls': ['https://pypi.python.org/packages/source/g/%(name)s'], + }), +] + +# specify that Bundle easyblock should run a full sanity check, rather than just trying to load the module +full_sanity_check = True + +sanity_check_paths = { + 'files': [], + 'dirs': ['lib/python%(pyshortver)s/site-packages'], +} + +modextrapaths = {'PYTHONPATH': ['lib/python%(pyshortver)s/site-packages']} + +moduleclass = 'lib' \ No newline at end of file diff --git a/g/gettext/gettext-0.18.2-foss-2015b.eb b/g/gettext/gettext-0.18.2-foss-2015b.eb new file mode 100644 index 00000000..e7d30bfa --- /dev/null +++ b/g/gettext/gettext-0.18.2-foss-2015b.eb @@ -0,0 +1,18 @@ +easyblock = 'ConfigureMake' + +name = 'gettext' +version = '0.18.2' + +homepage = 'http://www.gnu.org/software/gettext/' +description = """GNU `gettext' is an important step for the GNU Translation Project, as it is an asset on which we may +build many other steps. This package offers to programmers, translators, and even users, a well integrated set of tools +and documentation""" + +toolchain = {'name': 'foss', 'version': '2015b'} + +sources = [SOURCE_TAR_GZ] +source_urls = [GNU_SOURCE] + +configopts = '--without-emacs' + +moduleclass = 'vis' diff --git a/g/gettext/gettext-0.18.2-goolf-1.4.10.eb b/g/gettext/gettext-0.18.2-goolf-1.4.10.eb new file mode 100644 index 00000000..686c6f9d --- /dev/null +++ b/g/gettext/gettext-0.18.2-goolf-1.4.10.eb @@ -0,0 +1,18 @@ +easyblock = 'ConfigureMake' + +name = 'gettext' +version = '0.18.2' + +homepage = 'http://www.gnu.org/software/gettext/' +description = """GNU `gettext' is an important step for the GNU Translation Project, as it is an asset on which we may +build many other steps. This package offers to programmers, translators, and even users, a well integrated set of tools +and documentation""" + +toolchain = {'name': 'goolf', 'version': '1.4.10'} + +sources = [SOURCE_TAR_GZ] +source_urls = [GNU_SOURCE] + +configopts = '--without-emacs' + +moduleclass = 'vis' diff --git a/g/gettext/gettext-0.18.2-goolf-1.5.14.eb b/g/gettext/gettext-0.18.2-goolf-1.5.14.eb new file mode 100644 index 00000000..adf041c9 --- /dev/null +++ b/g/gettext/gettext-0.18.2-goolf-1.5.14.eb @@ -0,0 +1,18 @@ +easyblock = 'ConfigureMake' + +name = 'gettext' +version = '0.18.2' + +homepage = 'http://www.gnu.org/software/gettext/' +description = """GNU `gettext' is an important step for the GNU Translation Project, as it is an asset on which we may +build many other steps. This package offers to programmers, translators, and even users, a well integrated set of tools +and documentation""" + +toolchain = {'name': 'goolf', 'version': '1.5.14'} + +sources = [SOURCE_TAR_GZ] +source_urls = [GNU_SOURCE] + +configopts = '--without-emacs' + +moduleclass = 'vis' diff --git a/g/gettext/gettext-0.18.2-ictce-5.2.0.eb b/g/gettext/gettext-0.18.2-ictce-5.2.0.eb new file mode 100644 index 00000000..5479e98f --- /dev/null +++ b/g/gettext/gettext-0.18.2-ictce-5.2.0.eb @@ -0,0 +1,18 @@ +easyblock = 'ConfigureMake' + +name = 'gettext' +version = '0.18.2' + +homepage = 'http://www.gnu.org/software/gettext/' +description = """GNU `gettext' is an important step for the GNU Translation Project, as it is an asset on which we may +build many other steps. This package offers to programmers, translators, and even users, a well integrated set of tools +and documentation""" + +toolchain = {'name': 'ictce', 'version': '5.2.0'} + +sources = [SOURCE_TAR_GZ] +source_urls = [GNU_SOURCE] + +configopts = '--without-emacs' + +moduleclass = 'vis' diff --git a/g/gettext/gettext-0.18.2-ictce-5.3.0.eb b/g/gettext/gettext-0.18.2-ictce-5.3.0.eb new file mode 100644 index 00000000..21f6d063 --- /dev/null +++ b/g/gettext/gettext-0.18.2-ictce-5.3.0.eb @@ -0,0 +1,18 @@ +easyblock = 'ConfigureMake' + +name = 'gettext' +version = '0.18.2' + +homepage = 'http://www.gnu.org/software/gettext/' +description = """GNU `gettext' is an important step for the GNU Translation Project, as it is an asset on which we may +build many other steps. This package offers to programmers, translators, and even users, a well integrated set of tools +and documentation""" + +toolchain = {'name': 'ictce', 'version': '5.3.0'} + +sources = [SOURCE_TAR_GZ] +source_urls = [GNU_SOURCE] + +configopts = '--without-emacs' + +moduleclass = 'vis' diff --git a/g/gettext/gettext-0.18.2.eb b/g/gettext/gettext-0.18.2.eb new file mode 100644 index 00000000..68b4d25c --- /dev/null +++ b/g/gettext/gettext-0.18.2.eb @@ -0,0 +1,23 @@ +easyblock = 'ConfigureMake' + +name = 'gettext' +version = '0.18.2' + +homepage = 'http://www.gnu.org/software/gettext/' +description = """GNU `gettext' is an important step for the GNU Translation Project, as it is an asset on which we may +build many other steps. This package offers to programmers, translators, and even users, a well integrated set of tools +and documentation""" + +# This is a basic stripped down version of gettext without any +# dependencies on other packages used as initial builddep for XZ +# It is the first step in the cyclic dependency chain of +# XZ -> libxml2 -> gettext -> XZ + +toolchain = {'name': 'dummy', 'version': ''} + +sources = [SOURCE_TAR_GZ] +source_urls = [GNU_SOURCE] + +configopts = '--without-emacs --with-included-libxml --without-xz --without-bzip2' + +moduleclass = 'vis' diff --git a/g/gettext/gettext-0.19.2-goolf-1.5.14.eb b/g/gettext/gettext-0.19.2-goolf-1.5.14.eb new file mode 100644 index 00000000..a1a64207 --- /dev/null +++ b/g/gettext/gettext-0.19.2-goolf-1.5.14.eb @@ -0,0 +1,18 @@ +easyblock = 'ConfigureMake' + +name = 'gettext' +version = '0.19.2' + +homepage = 'http://www.gnu.org/software/gettext/' +description = """GNU `gettext' is an important step for the GNU Translation Project, as it is an asset on which we may +build many other steps. This package offers to programmers, translators, and even users, a well integrated set of tools +and documentation""" + +toolchain = {'name': 'goolf', 'version': '1.5.14'} + +sources = [SOURCE_TAR_GZ] +source_urls = [GNU_SOURCE] + +configopts = '--without-emacs' + +moduleclass = 'vis' diff --git a/g/gettext/gettext-0.19.2-goolf-1.7.20.eb b/g/gettext/gettext-0.19.2-goolf-1.7.20.eb new file mode 100644 index 00000000..b9b28dda --- /dev/null +++ b/g/gettext/gettext-0.19.2-goolf-1.7.20.eb @@ -0,0 +1,18 @@ +easyblock = 'ConfigureMake' + +name = 'gettext' +version = '0.19.2' + +homepage = 'http://www.gnu.org/software/gettext/' +description = """GNU `gettext' is an important step for the GNU Translation Project, as it is an asset on which we may + build many other steps. This package offers to programmers, translators, and even users, a well integrated set of tools + and documentation""" + +toolchain = {'name': 'goolf', 'version': '1.7.20'} + +sources = [SOURCE_TAR_GZ] +source_urls = [GNU_SOURCE] + +configopts = '--without-emacs' + +moduleclass = 'vis' diff --git a/g/gettext/gettext-0.19.2-intel-2014.06.eb b/g/gettext/gettext-0.19.2-intel-2014.06.eb new file mode 100644 index 00000000..238843b2 --- /dev/null +++ b/g/gettext/gettext-0.19.2-intel-2014.06.eb @@ -0,0 +1,18 @@ +easyblock = 'ConfigureMake' + +name = 'gettext' +version = '0.19.2' + +homepage = 'http://www.gnu.org/software/gettext/' +description = """GNU `gettext' is an important step for the GNU Translation Project, as it is an asset on which we may +build many other steps. This package offers to programmers, translators, and even users, a well integrated set of tools +and documentation""" + +toolchain = {'name': 'intel', 'version': '2014.06'} + +sources = [SOURCE_TAR_GZ] +source_urls = [GNU_SOURCE] + +configopts = '--without-emacs' + +moduleclass = 'vis' diff --git a/g/gettext/gettext-0.19.2-intel-2014b.eb b/g/gettext/gettext-0.19.2-intel-2014b.eb new file mode 100644 index 00000000..a0c6e923 --- /dev/null +++ b/g/gettext/gettext-0.19.2-intel-2014b.eb @@ -0,0 +1,18 @@ +easyblock = 'ConfigureMake' + +name = 'gettext' +version = '0.19.2' + +homepage = 'http://www.gnu.org/software/gettext/' +description = """GNU `gettext' is an important step for the GNU Translation Project, as it is an asset on which we may +build many other steps. This package offers to programmers, translators, and even users, a well integrated set of tools +and documentation""" + +toolchain = {'name': 'intel', 'version': '2014b'} + +sources = [SOURCE_TAR_GZ] +source_urls = [GNU_SOURCE] + +configopts = '--without-emacs' + +moduleclass = 'vis' diff --git a/g/gettext/gettext-0.19.2-intel-2015a.eb b/g/gettext/gettext-0.19.2-intel-2015a.eb new file mode 100644 index 00000000..c4930282 --- /dev/null +++ b/g/gettext/gettext-0.19.2-intel-2015a.eb @@ -0,0 +1,18 @@ +easyblock = 'ConfigureMake' + +name = 'gettext' +version = '0.19.2' + +homepage = 'http://www.gnu.org/software/gettext/' +description = """GNU `gettext' is an important step for the GNU Translation Project, as it is an asset on which we may +build many other steps. This package offers to programmers, translators, and even users, a well integrated set of tools +and documentation""" + +toolchain = {'name': 'intel', 'version': '2015a'} + +sources = [SOURCE_TAR_GZ] +source_urls = [GNU_SOURCE] + +configopts = '--without-emacs' + +moduleclass = 'vis' diff --git a/g/gettext/gettext-0.19.2-intel-2015b.eb b/g/gettext/gettext-0.19.2-intel-2015b.eb new file mode 100644 index 00000000..2d3d1e05 --- /dev/null +++ b/g/gettext/gettext-0.19.2-intel-2015b.eb @@ -0,0 +1,18 @@ +easyblock = 'ConfigureMake' + +name = 'gettext' +version = '0.19.2' + +homepage = 'http://www.gnu.org/software/gettext/' +description = """GNU `gettext' is an important step for the GNU Translation Project, as it is an asset on which we may +build many other steps. This package offers to programmers, translators, and even users, a well integrated set of tools +and documentation""" + +toolchain = {'name': 'intel', 'version': '2015b'} + +sources = [SOURCE_TAR_GZ] +source_urls = [GNU_SOURCE] + +configopts = '--without-emacs' + +moduleclass = 'vis' diff --git a/g/gettext/gettext-0.19.2.eb b/g/gettext/gettext-0.19.2.eb new file mode 100644 index 00000000..7c888995 --- /dev/null +++ b/g/gettext/gettext-0.19.2.eb @@ -0,0 +1,18 @@ +easyblock = 'ConfigureMake' + +name = 'gettext' +version = '0.19.2' + +homepage = 'http://www.gnu.org/software/gettext/' +description = """GNU `gettext' is an important step for the GNU Translation Project, as it is an asset on which we may + build many other steps. This package offers to programmers, translators, and even users, a well integrated set of tools + and documentation""" + +toolchain = {'name': 'dummy', 'version': ''} + +sources = [SOURCE_TAR_GZ] +source_urls = [GNU_SOURCE] + +configopts = '--without-emacs' + +moduleclass = 'vis' diff --git a/g/gettext/gettext-0.19.4-GCC-4.4.7-system.eb b/g/gettext/gettext-0.19.4-GCC-4.4.7-system.eb new file mode 100644 index 00000000..db8d02cc --- /dev/null +++ b/g/gettext/gettext-0.19.4-GCC-4.4.7-system.eb @@ -0,0 +1,18 @@ +easyblock = 'ConfigureMake' + +name = 'gettext' +version = '0.19.4' + +homepage = 'http://www.gnu.org/software/gettext/' +description = """GNU `gettext' is an important step for the GNU Translation Project, as it is an asset on which we may +build many other steps. This package offers to programmers, translators, and even users, a well integrated set of tools +and documentation""" + +toolchain = {'name': 'GCC', 'version': '4.4.7-system'} + +sources = [SOURCE_TAR_GZ] +source_urls = [GNU_SOURCE] + +configopts = '--without-emacs' + +moduleclass = 'vis' diff --git a/g/gettext/gettext-0.19.4-GCC-4.9.2.eb b/g/gettext/gettext-0.19.4-GCC-4.9.2.eb new file mode 100644 index 00000000..7e8ff4e1 --- /dev/null +++ b/g/gettext/gettext-0.19.4-GCC-4.9.2.eb @@ -0,0 +1,18 @@ +easyblock = 'ConfigureMake' + +name = 'gettext' +version = '0.19.4' + +homepage = 'http://www.gnu.org/software/gettext/' +description = """GNU `gettext' is an important step for the GNU Translation Project, as it is an asset on which we may +build many other steps. This package offers to programmers, translators, and even users, a well integrated set of tools +and documentation""" + +toolchain = {'name': 'GCC', 'version': '4.9.2'} + +sources = [SOURCE_TAR_GZ] +source_urls = [GNU_SOURCE] + +configopts = '--without-emacs' + +moduleclass = 'vis' diff --git a/g/gettext/gettext-0.19.4-foss-2015a.eb b/g/gettext/gettext-0.19.4-foss-2015a.eb new file mode 100644 index 00000000..51c244d3 --- /dev/null +++ b/g/gettext/gettext-0.19.4-foss-2015a.eb @@ -0,0 +1,18 @@ +easyblock = 'ConfigureMake' + +name = 'gettext' +version = '0.19.4' + +homepage = 'http://www.gnu.org/software/gettext/' +description = """GNU `gettext' is an important step for the GNU Translation Project, as it is an asset on which we may +build many other steps. This package offers to programmers, translators, and even users, a well integrated set of tools +and documentation""" + +toolchain = {'name': 'foss', 'version': '2015a'} + +sources = [SOURCE_TAR_GZ] +source_urls = [GNU_SOURCE] + +configopts = '--without-emacs' + +moduleclass = 'vis' diff --git a/g/gettext/gettext-0.19.4-intel-2015a.eb b/g/gettext/gettext-0.19.4-intel-2015a.eb new file mode 100644 index 00000000..0dbf6fce --- /dev/null +++ b/g/gettext/gettext-0.19.4-intel-2015a.eb @@ -0,0 +1,18 @@ +easyblock = 'ConfigureMake' + +name = 'gettext' +version = '0.19.4' + +homepage = 'http://www.gnu.org/software/gettext/' +description = """GNU `gettext' is an important step for the GNU Translation Project, as it is an asset on which we may +build many other steps. This package offers to programmers, translators, and even users, a well integrated set of tools +and documentation""" + +toolchain = {'name': 'intel', 'version': '2015a'} + +sources = [SOURCE_TAR_GZ] +source_urls = [GNU_SOURCE] + +configopts = '--without-emacs' + +moduleclass = 'vis' diff --git a/g/gettext/gettext-0.19.4.eb b/g/gettext/gettext-0.19.4.eb new file mode 100755 index 00000000..ed81b957 --- /dev/null +++ b/g/gettext/gettext-0.19.4.eb @@ -0,0 +1,23 @@ +easyblock = 'ConfigureMake' + +name = 'gettext' +version = '0.19.4' + +homepage = 'http://www.gnu.org/software/gettext/' +description = """GNU `gettext' is an important step for the GNU Translation Project, as it is an asset on which we may +build many other steps. This package offers to programmers, translators, and even users, a well integrated set of tools +and documentation""" + +# This is a basic stripped down version of gettext without any +# dependencies on other packages used as initial builddep for XZ +# It is the first step in the cyclic dependency chain of +# XZ -> libxml2 -> gettext -> XZ + +toolchain = {'name': 'dummy', 'version': ''} + +sources = [SOURCE_TAR_GZ] +source_urls = [GNU_SOURCE] + +configopts = '--without-emacs --with-included-libxml --without-xz --without-bzip2' + +moduleclass = 'vis' diff --git a/g/gettext/gettext-0.19.6-GNU-4.9.3-2.25.eb b/g/gettext/gettext-0.19.6-GNU-4.9.3-2.25.eb new file mode 100644 index 00000000..90c8e2d4 --- /dev/null +++ b/g/gettext/gettext-0.19.6-GNU-4.9.3-2.25.eb @@ -0,0 +1,18 @@ +easyblock = 'ConfigureMake' + +name = 'gettext' +version = '0.19.6' + +homepage = 'http://www.gnu.org/software/gettext/' +description = """GNU `gettext' is an important step for the GNU Translation Project, as it is an asset on which we may +build many other steps. This package offers to programmers, translators, and even users, a well integrated set of tools +and documentation""" + +toolchain = {'name': 'GNU', 'version': '4.9.3-2.25'} + +sources = [SOURCE_TAR_GZ] +source_urls = [GNU_SOURCE] + +configopts = '--without-emacs' + +moduleclass = 'vis' diff --git a/g/gettext/gettext-0.19.6-foss-2016a.eb b/g/gettext/gettext-0.19.6-foss-2016a.eb new file mode 100644 index 00000000..1fdb7440 --- /dev/null +++ b/g/gettext/gettext-0.19.6-foss-2016a.eb @@ -0,0 +1,18 @@ +easyblock = 'ConfigureMake' + +name = 'gettext' +version = '0.19.6' + +homepage = 'http://www.gnu.org/software/gettext/' +description = """GNU `gettext' is an important step for the GNU Translation Project, as it is an asset on which we may +build many other steps. This package offers to programmers, translators, and even users, a well integrated set of tools +and documentation""" + +toolchain = {'name': 'foss', 'version': '2016a'} + +sources = [SOURCE_TAR_GZ] +source_urls = [GNU_SOURCE] + +configopts = '--without-emacs' + +moduleclass = 'vis' diff --git a/g/gettext/gettext-0.19.6-gimkl-2.11.5.eb b/g/gettext/gettext-0.19.6-gimkl-2.11.5.eb new file mode 100644 index 00000000..4aed92d3 --- /dev/null +++ b/g/gettext/gettext-0.19.6-gimkl-2.11.5.eb @@ -0,0 +1,18 @@ +easyblock = 'ConfigureMake' + +name = 'gettext' +version = '0.19.6' + +homepage = 'http://www.gnu.org/software/gettext/' +description = """GNU `gettext' is an important step for the GNU Translation Project, as it is an asset on which we may +build many other steps. This package offers to programmers, translators, and even users, a well integrated set of tools +and documentation""" + +toolchain = {'name': 'gimkl', 'version': '2.11.5'} + +sources = [SOURCE_TAR_GZ] +source_urls = [GNU_SOURCE] + +configopts = '--without-emacs' + +moduleclass = 'vis' diff --git a/g/gettext/gettext-0.19.6-intel-2015b.eb b/g/gettext/gettext-0.19.6-intel-2015b.eb new file mode 100644 index 00000000..a9b8c4c4 --- /dev/null +++ b/g/gettext/gettext-0.19.6-intel-2015b.eb @@ -0,0 +1,18 @@ +easyblock = 'ConfigureMake' + +name = 'gettext' +version = '0.19.6' + +homepage = 'http://www.gnu.org/software/gettext/' +description = """GNU `gettext' is an important step for the GNU Translation Project, as it is an asset on which we may +build many other steps. This package offers to programmers, translators, and even users, a well integrated set of tools +and documentation""" + +toolchain = {'name': 'intel', 'version': '2015b'} + +sources = [SOURCE_TAR_GZ] +source_urls = [GNU_SOURCE] + +configopts = '--without-emacs' + +moduleclass = 'vis' diff --git a/g/gettext/gettext-0.19.6-intel-2016a.eb b/g/gettext/gettext-0.19.6-intel-2016a.eb new file mode 100644 index 00000000..d58aad19 --- /dev/null +++ b/g/gettext/gettext-0.19.6-intel-2016a.eb @@ -0,0 +1,18 @@ +easyblock = 'ConfigureMake' + +name = 'gettext' +version = '0.19.6' + +homepage = 'http://www.gnu.org/software/gettext/' +description = """GNU `gettext' is an important step for the GNU Translation Project, as it is an asset on which we may +build many other steps. This package offers to programmers, translators, and even users, a well integrated set of tools +and documentation""" + +toolchain = {'name': 'intel', 'version': '2016a'} + +sources = [SOURCE_TAR_GZ] +source_urls = [GNU_SOURCE] + +configopts = '--without-emacs' + +moduleclass = 'vis' diff --git a/g/gettext/gettext-0.19.6-intel-2017.00.eb b/g/gettext/gettext-0.19.6-intel-2017.00.eb new file mode 100644 index 00000000..32c891fe --- /dev/null +++ b/g/gettext/gettext-0.19.6-intel-2017.00.eb @@ -0,0 +1,18 @@ +easyblock = 'ConfigureMake' + +name = 'gettext' +version = '0.19.6' + +homepage = 'http://www.gnu.org/software/gettext/' +description = """GNU `gettext' is an important step for the GNU Translation Project, as it is an asset on which we may +build many other steps. This package offers to programmers, translators, and even users, a well integrated set of tools +and documentation""" + +toolchain = {'name': 'intel', 'version': '2017.00'} + +sources = [SOURCE_TAR_GZ] +source_urls = [GNU_SOURCE] + +configopts = '--without-emacs' + +moduleclass = 'vis' diff --git a/g/gettext/gettext-0.19.6.eb b/g/gettext/gettext-0.19.6.eb new file mode 100644 index 00000000..ce355420 --- /dev/null +++ b/g/gettext/gettext-0.19.6.eb @@ -0,0 +1,23 @@ +easyblock = 'ConfigureMake' + +name = 'gettext' +version = '0.19.6' + +homepage = 'http://www.gnu.org/software/gettext/' +description = """GNU `gettext' is an important step for the GNU Translation Project, as it is an asset on which we may +build many other steps. This package offers to programmers, translators, and even users, a well integrated set of tools +and documentation""" + +# This is a basic stripped down version of gettext without any +# dependencies on other packages used as initial builddep for XZ +# It is the first step in the cyclic dependency chain of +# XZ -> libxml2 -> gettext -> XZ + +toolchain = {'name': 'dummy', 'version': ''} + +sources = [SOURCE_TAR_GZ] +source_urls = [GNU_SOURCE] + +configopts = '--without-emacs --with-included-libxml --without-xz --without-bzip2' + +moduleclass = 'vis' diff --git a/g/gettext/gettext-0.19.7-foss-2015b.eb b/g/gettext/gettext-0.19.7-foss-2015b.eb new file mode 100644 index 00000000..690872c6 --- /dev/null +++ b/g/gettext/gettext-0.19.7-foss-2015b.eb @@ -0,0 +1,23 @@ +easyblock = 'ConfigureMake' + +name = 'gettext' +version = '0.19.7' + +homepage = 'http://www.gnu.org/software/gettext/' +description = """GNU `gettext' is an important step for the GNU Translation Project, as it is an asset on which we may +build many other steps. This package offers to programmers, translators, and even users, a well integrated set of tools +and documentation""" + +toolchain = {'name': 'foss', 'version': '2015b'} + +sources = [SOURCE_TAR_GZ] +source_urls = [GNU_SOURCE] + +dependencies = [ + ('libxml2', '2.9.2'), + ('ncurses', '5.9'), +] + +configopts = '--without-emacs --with-libxml2-prefix=$EBROOTLIBXML2' + +moduleclass = 'vis' diff --git a/g/gettext/gettext-0.19.7-foss-2016a.eb b/g/gettext/gettext-0.19.7-foss-2016a.eb new file mode 100644 index 00000000..4580e48c --- /dev/null +++ b/g/gettext/gettext-0.19.7-foss-2016a.eb @@ -0,0 +1,23 @@ +easyblock = 'ConfigureMake' + +name = 'gettext' +version = '0.19.7' + +homepage = 'http://www.gnu.org/software/gettext/' +description = """GNU `gettext' is an important step for the GNU Translation Project, as it is an asset on which we may +build many other steps. This package offers to programmers, translators, and even users, a well integrated set of tools +and documentation""" + +toolchain = {'name': 'foss', 'version': '2016a'} + +sources = [SOURCE_TAR_GZ] +source_urls = [GNU_SOURCE] + +dependencies = [ + ('libxml2', '2.9.3'), + ('ncurses', '6.0'), +] + +configopts = '--without-emacs --with-libxml2-prefix=$EBROOTLIBXML2' + +moduleclass = 'vis' diff --git a/g/gettext/gettext-0.19.7-intel-2016a.eb b/g/gettext/gettext-0.19.7-intel-2016a.eb new file mode 100644 index 00000000..4f86721e --- /dev/null +++ b/g/gettext/gettext-0.19.7-intel-2016a.eb @@ -0,0 +1,23 @@ +easyblock = 'ConfigureMake' + +name = 'gettext' +version = '0.19.7' + +homepage = 'http://www.gnu.org/software/gettext/' +description = """GNU `gettext' is an important step for the GNU Translation Project, as it is an asset on which we may +build many other steps. This package offers to programmers, translators, and even users, a well integrated set of tools +and documentation""" + +toolchain = {'name': 'intel', 'version': '2016a'} + +sources = [SOURCE_TAR_GZ] +source_urls = [GNU_SOURCE] + +dependencies = [ + ('libxml2', '2.9.3'), + ('ncurses', '6.0'), +] + +configopts = '--without-emacs --with-libxml2-prefix=$EBROOTLIBXML2' + +moduleclass = 'vis' diff --git a/g/gettext/gettext-0.19.7-intel-2017.00.eb b/g/gettext/gettext-0.19.7-intel-2017.00.eb new file mode 100644 index 00000000..e27d0303 --- /dev/null +++ b/g/gettext/gettext-0.19.7-intel-2017.00.eb @@ -0,0 +1,23 @@ +easyblock = 'ConfigureMake' + +name = 'gettext' +version = '0.19.7' + +homepage = 'http://www.gnu.org/software/gettext/' +description = """GNU `gettext' is an important step for the GNU Translation Project, as it is an asset on which we may +build many other steps. This package offers to programmers, translators, and even users, a well integrated set of tools +and documentation""" + +toolchain = {'name': 'intel', 'version': '2017.00'} + +sources = [SOURCE_TAR_GZ] +source_urls = [GNU_SOURCE] + +dependencies = [ + ('libxml2', '2.9.3'), + ('ncurses', '6.0'), +] + +configopts = '--without-emacs --with-libxml2-prefix=$EBROOTLIBXML2' + +moduleclass = 'vis' diff --git a/g/gettext/gettext-0.19.7.eb b/g/gettext/gettext-0.19.7.eb new file mode 100644 index 00000000..578b07b3 --- /dev/null +++ b/g/gettext/gettext-0.19.7.eb @@ -0,0 +1,25 @@ +easyblock = 'ConfigureMake' + +name = 'gettext' +version = '0.19.7' + +homepage = 'http://www.gnu.org/software/gettext/' +description = """GNU `gettext' is an important step for the GNU Translation Project, as it is an asset on which we may +build many other steps. This package offers to programmers, translators, and even users, a well integrated set of tools +and documentation""" + +# This is a basic stripped down version of gettext without any +# dependencies on other packages used as initial builddep for XZ +# It is the first step in the cyclic dependency chain of +# XZ -> libxml2 -> gettext -> XZ + +toolchain = {'name': 'dummy', 'version': ''} + +sources = [SOURCE_TAR_GZ] +source_urls = [GNU_SOURCE] + +dependencies = [('ncurses', '6.0')] + +configopts = '--without-emacs --with-included-libxml --without-xz --without-bzip2' + +moduleclass = 'vis' diff --git a/g/gettext/gettext-0.19.8-GCCcore-4.9.3.eb b/g/gettext/gettext-0.19.8-GCCcore-4.9.3.eb new file mode 100644 index 00000000..8e1b03ad --- /dev/null +++ b/g/gettext/gettext-0.19.8-GCCcore-4.9.3.eb @@ -0,0 +1,27 @@ +easyblock = 'ConfigureMake' + +name = 'gettext' +version = '0.19.8' + +homepage = 'http://www.gnu.org/software/gettext/' +description = """GNU `gettext' is an important step for the GNU Translation Project, as it is an asset on which we may +build many other steps. This package offers to programmers, translators, and even users, a well integrated set of tools +and documentation""" + +toolchain = {'name': 'GCCcore', 'version': '4.9.3'} + +sources = [SOURCE_TAR_GZ] +source_urls = [GNU_SOURCE] + +builddependencies = [ + ('binutils', '2.25'), +] + +dependencies = [ + ('libxml2', '2.9.4'), + ('ncurses', '6.0'), +] + +configopts = '--without-emacs --with-libxml2-prefix=$EBROOTLIBXML2' + +moduleclass = 'vis' diff --git a/g/gettext/gettext-0.19.8-foss-2016.04.eb b/g/gettext/gettext-0.19.8-foss-2016.04.eb new file mode 100644 index 00000000..47b25026 --- /dev/null +++ b/g/gettext/gettext-0.19.8-foss-2016.04.eb @@ -0,0 +1,23 @@ +easyblock = 'ConfigureMake' + +name = 'gettext' +version = '0.19.8' + +homepage = 'http://www.gnu.org/software/gettext/' +description = """GNU `gettext' is an important step for the GNU Translation Project, as it is an asset on which we may +build many other steps. This package offers to programmers, translators, and even users, a well integrated set of tools +and documentation""" + +toolchain = {'name': 'foss', 'version': '2016.04'} + +sources = [SOURCE_TAR_GZ] +source_urls = [GNU_SOURCE] + +dependencies = [ + ('libxml2', '2.9.4'), + ('ncurses', '6.0'), +] + +configopts = '--without-emacs --with-libxml2-prefix=$EBROOTLIBXML2' + +moduleclass = 'vis' diff --git a/g/gettext/gettext-0.19.8-foss-2016b.eb b/g/gettext/gettext-0.19.8-foss-2016b.eb new file mode 100644 index 00000000..91c8cacd --- /dev/null +++ b/g/gettext/gettext-0.19.8-foss-2016b.eb @@ -0,0 +1,23 @@ +easyblock = 'ConfigureMake' + +name = 'gettext' +version = '0.19.8' + +homepage = 'http://www.gnu.org/software/gettext/' +description = """GNU `gettext' is an important step for the GNU Translation Project, as it is an asset on which we may +build many other steps. This package offers to programmers, translators, and even users, a well integrated set of tools +and documentation""" + +toolchain = {'name': 'foss', 'version': '2016b'} + +sources = [SOURCE_TAR_GZ] +source_urls = [GNU_SOURCE] + +dependencies = [ + ('libxml2', '2.9.4'), + ('ncurses', '6.0'), +] + +configopts = '--without-emacs --with-libxml2-prefix=$EBROOTLIBXML2' + +moduleclass = 'vis' diff --git a/g/gettext/gettext-0.19.8-intel-2016b.eb b/g/gettext/gettext-0.19.8-intel-2016b.eb new file mode 100644 index 00000000..6df1b22c --- /dev/null +++ b/g/gettext/gettext-0.19.8-intel-2016b.eb @@ -0,0 +1,23 @@ +easyblock = 'ConfigureMake' + +name = 'gettext' +version = '0.19.8' + +homepage = 'http://www.gnu.org/software/gettext/' +description = """GNU `gettext' is an important step for the GNU Translation Project, as it is an asset on which we may +build many other steps. This package offers to programmers, translators, and even users, a well integrated set of tools +and documentation""" + +toolchain = {'name': 'intel', 'version': '2016b'} + +sources = [SOURCE_TAR_GZ] +source_urls = [GNU_SOURCE] + +dependencies = [ + ('libxml2', '2.9.4'), + ('ncurses', '6.0'), +] + +configopts = '--without-emacs --with-libxml2-prefix=$EBROOTLIBXML2' + +moduleclass = 'vis' diff --git a/g/gettext/gettext-0.19.8.eb b/g/gettext/gettext-0.19.8.eb new file mode 100644 index 00000000..45caa1fd --- /dev/null +++ b/g/gettext/gettext-0.19.8.eb @@ -0,0 +1,25 @@ +easyblock = 'ConfigureMake' + +name = 'gettext' +version = '0.19.8' + +homepage = 'http://www.gnu.org/software/gettext/' +description = """GNU `gettext' is an important step for the GNU Translation Project, as it is an asset on which we may +build many other steps. This package offers to programmers, translators, and even users, a well integrated set of tools +and documentation""" + +# This is a basic stripped down version of gettext without any +# dependencies on other packages used as initial builddep for XZ +# It is the first step in the cyclic dependency chain of +# XZ -> libxml2 -> gettext -> XZ + +toolchain = {'name': 'dummy', 'version': ''} + +sources = [SOURCE_TAR_GZ] +source_urls = [GNU_SOURCE] + +dependencies = [('ncurses', '6.0')] + +configopts = '--without-emacs --with-included-libxml --without-xz --without-bzip2' + +moduleclass = 'vis' diff --git a/g/git-lfs/git-lfs-1.1.1.eb b/g/git-lfs/git-lfs-1.1.1.eb new file mode 100644 index 00000000..bd4f6dee --- /dev/null +++ b/g/git-lfs/git-lfs-1.1.1.eb @@ -0,0 +1,34 @@ +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# Author: Pablo Escobar Lopez +# sciCORE - University of Basel +# SIB Swiss Institute of Bioinformatics + +easyblock = "Tarball" + +name = 'git-lfs' +version = '1.1.1' + +homepage = 'https://git-lfs.github.com/' +description = """Git Large File Storage (LFS) replaces large files such as audio samples, videos, + datasets, and graphics with text pointers inside Git, while storing the file contents on a remote server + like GitHub.com or GitHub Enterprise.""" + +toolchain = {'name': 'dummy', 'version': ''} + +source_urls = ['https://github.com/github/git-lfs/releases/download/v%(version)s/'] +sources = ['%(name)s-linux-amd64-%(version)s.tar.gz'] + +sanity_check_paths = { + 'files': ["git-lfs"], + 'dirs': [""] +} + +# add the installation dir to PATH +modextrapaths = { + 'PATH': '', + } + +# remove exec permission for the provided installation script +postinstallcmds = ["chmod og-x %(installdir)s/install.sh"] + +moduleclass = 'tools' diff --git a/g/git/git-1.7.12-goolf-1.4.10.eb b/g/git/git-1.7.12-goolf-1.4.10.eb new file mode 100644 index 00000000..bba320bc --- /dev/null +++ b/g/git/git-1.7.12-goolf-1.4.10.eb @@ -0,0 +1,39 @@ +## +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# +# Copyright:: Copyright 2012-2014 Uni.Lu/LCSB, NTUA +# Authors:: Fotis Georgatos +# 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-90.html +## + +easyblock = 'ConfigureMake' + +name = 'git' +version = '1.7.12' + +homepage = 'http://git-scm.com/' +description = """Git is a free and open source distributed version control system designed +to handle everything from small to very large projects with speed and efficiency.""" + +toolchain = {'name': 'goolf', 'version': '1.4.10'} + +# eg. http://git-core.googlecode.com/files/git-1.7.12.tar.gz +sources = [SOURCELOWER_TAR_GZ] +source_urls = ['http://git-core.googlecode.com/files'] + +dependencies = [('gettext', '0.18.2')] + +sanity_check_paths = { + 'files': ['bin/git'], + 'dirs': [], +} + +# Work around git build system bug. If LIBS contains -lpthread, then configure +# will not append -lpthread to LDFLAGS, but Makefile ignores LIBS. +configopts = "--enable-pthreads='-lpthread'" + +moduleclass = 'tools' diff --git a/g/git/git-1.7.12-ictce-5.3.0.eb b/g/git/git-1.7.12-ictce-5.3.0.eb new file mode 100644 index 00000000..4c4de493 --- /dev/null +++ b/g/git/git-1.7.12-ictce-5.3.0.eb @@ -0,0 +1,37 @@ +## +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# +# Copyright:: Copyright 2012-2014 Uni.Lu/LCSB, NTUA +# Authors:: Fotis Georgatos +# 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-90.html +## + +easyblock = 'ConfigureMake' + +name = 'git' +version = '1.7.12' + +homepage = 'http://git-scm.com/' +description = """Git is a free and open source distributed version control system designed + to handle everything from small to very large projects with speed and efficiency.""" + +toolchain = {'name': 'ictce', 'version': '5.3.0'} + +# eg. http://git-core.googlecode.com/files/git-1.7.12.tar.gz +sources = [SOURCELOWER_TAR_GZ] +source_urls = ['http://git-core.googlecode.com/files'] + +dependencies = [('gettext', '0.18.2')] + +configopts = "--enable-pthreads='-lpthread'" + +sanity_check_paths = { + 'files': ["bin/git"], + 'dirs': [] +} + +moduleclass = 'tools' diff --git a/g/git/git-1.8.2-goolf-1.4.10.eb b/g/git/git-1.8.2-goolf-1.4.10.eb new file mode 100644 index 00000000..a705caba --- /dev/null +++ b/g/git/git-1.8.2-goolf-1.4.10.eb @@ -0,0 +1,44 @@ +## +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# +# Copyright:: Copyright 2012-2014 Uni.Lu/LCSB, NTUA +# Authors:: Fotis Georgatos +# Authors:: Dmitri Gribenko +# 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-90.html +## + +easyblock = 'ConfigureMake' + +name = 'git' +version = '1.8.2' + +homepage = 'http://git-scm.com/' +description = """Git is a free and open source distributed version control system designed +to handle everything from small to very large projects with speed and efficiency.""" + +toolchain = {'name': 'goolf', 'version': '1.4.10'} + +# eg. http://git-core.googlecode.com/files/git-1.8.2.tar.gz +sources = [SOURCELOWER_TAR_GZ] +source_urls = ['http://git-core.googlecode.com/files'] + +dependencies = [ + ('cURL', '7.29.0'), + ('expat', '2.1.0'), + ('gettext', '0.18.2'), +] + +sanity_check_paths = { + 'files': ['bin/git'], + 'dirs': [], +} + +# Work around git build system bug. If LIBS contains -lpthread, then configure +# will not append -lpthread to LDFLAGS, but Makefile ignores LIBS. +configopts = "--enable-pthreads='-lpthread'" + +moduleclass = 'tools' diff --git a/g/git/git-1.8.3.1-goolf-1.4.10.eb b/g/git/git-1.8.3.1-goolf-1.4.10.eb new file mode 100644 index 00000000..6dfc4c59 --- /dev/null +++ b/g/git/git-1.8.3.1-goolf-1.4.10.eb @@ -0,0 +1,43 @@ +## +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# +# Copyright:: Copyright 2012-2014 Uni.Lu/LCSB, NTUA +# Authors:: Fotis Georgatos +# Authors:: Dmitri Gribenko +# 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-90.html +## + +easyblock = 'ConfigureMake' + +name = 'git' +version = '1.8.3.1' + +homepage = 'http://git-scm.com/' +description = """Git is a free and open source distributed version control system designed +to handle everything from small to very large projects with speed and efficiency.""" +toolchain = {'name': 'goolf', 'version': '1.4.10'} + +# eg. http://git-core.googlecode.com/files/git-1.8.2.tar.gz +sources = [SOURCELOWER_TAR_GZ] +source_urls = ['http://git-core.googlecode.com/files'] + +dependencies = [ + ('cURL', '7.29.0'), + ('expat', '2.1.0'), + ('gettext', '0.18.2'), +] + +sanity_check_paths = { + 'files': ['bin/git'], + 'dirs': [], +} + +# Work around git build system bug. If LIBS contains -lpthread, then configure +# will not append -lpthread to LDFLAGS, but Makefile ignores LIBS. +configopts = "--enable-pthreads='-lpthread'" + +moduleclass = 'tools' diff --git a/g/git/git-2.10.2.eb b/g/git/git-2.10.2.eb new file mode 100644 index 00000000..0cd48736 --- /dev/null +++ b/g/git/git-2.10.2.eb @@ -0,0 +1,48 @@ +## +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# +# Copyright:: Copyright 2012-2014 Uni.Lu/LCSB, NTUA +# Authors:: Fotis Georgatos +# Authors:: Dmitri Gribenko +# 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-90.html +## + +easyblock = 'ConfigureMake' + +name = 'git' +version = '2.10.2' + +homepage = 'http://git-scm.com/' +description = """Git is a free and open source distributed version control system designed +to handle everything from small to very large projects with speed and efficiency.""" + +toolchain = {'name': 'dummy', 'version': ''} + +sources = ['git-2.10.2.tar.gz'] +source_urls = ['https://www.kernel.org/pub/software/scm/git/'] + +builddependencies = [('Autoconf', '2.69')] + +dependencies = [ + ('cURL', '7.37.1'), + ('expat', '2.1.0'), + ('gettext', '0.19.2'), + ('Perl', '5.20.2', '-bare'), +] + +preconfigopts = 'make configure && ' + +# Work around git build system bug. If LIBS contains -lpthread, then configure +# will not append -lpthread to LDFLAGS, but Makefile ignores LIBS. +configopts = "--with-perl=${EBROOTPERL}/bin/perl --enable-pthreads='-lpthread'" + +sanity_check_paths = { + 'files': ['bin/git'], + 'dirs': [], +} + +moduleclass = 'tools' diff --git a/g/git/git-2.11.0-GNU-4.9.3-2.25.eb b/g/git/git-2.11.0-GNU-4.9.3-2.25.eb new file mode 100755 index 00000000..068b5e36 --- /dev/null +++ b/g/git/git-2.11.0-GNU-4.9.3-2.25.eb @@ -0,0 +1,48 @@ +## +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# +# Copyright:: Copyright 2012-2014 Uni.Lu/LCSB, NTUA +# Authors:: Fotis Georgatos +# Authors:: Dmitri Gribenko +# 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-90.html +## + +easyblock = 'ConfigureMake' + +name = 'git' +version = '2.11.0' + +homepage = 'http://git-scm.com/' +description = """Git is a free and open source distributed version control system designed +to handle everything from small to very large projects with speed and efficiency.""" + +toolchain = {'name': 'GNU', 'version': '4.9.3-2.25'} + +sources = ['v%(version)s.tar.gz'] +source_urls = ['https://github.com/git/git/archive'] + +builddependencies = [('Autoconf', '2.69')] + +dependencies = [ + ('cURL', '7.37.1', '', ('foss', '2015g')), + ('expat', '2.1.0', '', ('foss', '2015g')), + ('gettext', '0.19.2', '', ('foss', '2015g')), + ('Perl', '5.20.2', '-bare', ('GNU', '4.9.3-2.25')), +] + +preconfigopts = 'make configure && ' + +# Work around git build system bug. If LIBS contains -lpthread, then configure +# will not append -lpthread to LDFLAGS, but Makefile ignores LIBS. +configopts = "--with-perl=${EBROOTPERL}/bin/perl --enable-pthreads='-lpthread'" + +sanity_check_paths = { + 'files': ['bin/git'], + 'dirs': [], +} + +moduleclass = 'tools' diff --git a/g/git/git-2.11.0.eb b/g/git/git-2.11.0.eb new file mode 100644 index 00000000..b7e61171 --- /dev/null +++ b/g/git/git-2.11.0.eb @@ -0,0 +1,48 @@ +## +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# +# Copyright:: Copyright 2012-2014 Uni.Lu/LCSB, NTUA +# Authors:: Fotis Georgatos +# Authors:: Dmitri Gribenko +# 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-90.html +## + +easyblock = 'ConfigureMake' + +name = 'git' +version = '2.11.0' + +homepage = 'http://git-scm.com/' +description = """Git is a free and open source distributed version control system designed +to handle everything from small to very large projects with speed and efficiency.""" + +toolchain = {'name': 'dummy', 'version': ''} + +sources = ['git-2.11.0.tar.gz'] +source_urls = ['https://www.kernel.org/pub/software/scm/git/'] + +builddependencies = [('Autoconf', '2.69')] + +dependencies = [ + ('cURL', '7.37.1'), + ('expat', '2.1.0'), + ('gettext','0.19.2'), + ('Perl', '5.20.2', '-bare'), +] + +preconfigopts = 'make configure && ' + +# Work around git build system bug. If LIBS contains -lpthread, then configure +# will not append -lpthread to LDFLAGS, but Makefile ignores LIBS. +configopts = "--with-perl=${EBROOTPERL}/bin/perl --enable-pthreads='-lpthread'" + +sanity_check_paths = { + 'files': ['bin/git'], + 'dirs': [], +} + +moduleclass = 'tools' diff --git a/g/git/git-2.7.3-GNU-4.9.3-2.25.eb b/g/git/git-2.7.3-GNU-4.9.3-2.25.eb new file mode 100644 index 00000000..f4ac5910 --- /dev/null +++ b/g/git/git-2.7.3-GNU-4.9.3-2.25.eb @@ -0,0 +1,48 @@ +## +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# +# Copyright:: Copyright 2012-2014 Uni.Lu/LCSB, NTUA +# Authors:: Fotis Georgatos +# Authors:: Dmitri Gribenko +# 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-90.html +## + +easyblock = 'ConfigureMake' + +name = 'git' +version = '2.7.3' + +homepage = 'http://git-scm.com/' +description = """Git is a free and open source distributed version control system designed +to handle everything from small to very large projects with speed and efficiency.""" + +toolchain = {'name': 'GNU', 'version': '4.9.3-2.25'} + +sources = ['v%(version)s.tar.gz'] +source_urls = ['https://github.com/git/git/archive'] + +builddependencies = [('Autoconf', '2.69')] + +dependencies = [ + ('cURL', '7.37.1', '', ('foss', '2015g')), + ('expat', '2.1.0', '', ('foss', '2015g')), + ('gettext', '0.19.2', '', ('foss', '2015g')), + ('Perl', '5.20.2', '-bare', ('GNU', '4.9.3-2.25')), +] + +preconfigopts = 'make configure && ' + +# Work around git build system bug. If LIBS contains -lpthread, then configure +# will not append -lpthread to LDFLAGS, but Makefile ignores LIBS. +configopts = "--with-perl=${EBROOTPERL}/bin/perl --enable-pthreads='-lpthread'" + +sanity_check_paths = { + 'files': ['bin/git'], + 'dirs': [], +} + +moduleclass = 'tools' diff --git a/g/git/git-2.7.3-foss-2015g.eb b/g/git/git-2.7.3-foss-2015g.eb new file mode 100644 index 00000000..d27a2de2 --- /dev/null +++ b/g/git/git-2.7.3-foss-2015g.eb @@ -0,0 +1,46 @@ +## +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# +# Copyright:: Copyright 2012-2014 Uni.Lu/LCSB, NTUA +# Authors:: Fotis Georgatos +# Authors:: Dmitri Gribenko +# 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-90.html +## + +easyblock = 'ConfigureMake' + +name = 'git' +version = '2.7.3' + +homepage = 'http://git-scm.com/' +description = """Git is a free and open source distributed version control system designed +to handle everything from small to very large projects with speed and efficiency.""" + +toolchain = {'name': 'foss', 'version': '2015g'} + +sources = ['v%(version)s.tar.gz'] +source_urls = ['https://github.com/git/git/archive'] + +dependencies = [ + ('cURL', '7.37.1'), + ('expat', '2.1.0'), + ('gettext', '0.19.2'), + ('Perl', '5.20.2', '-bare', ('GNU', '4.9.3-2.25')), +] + +preconfigopts = 'make configure && ' + +# Work around git build system bug. If LIBS contains -lpthread, then configure +# will not append -lpthread to LDFLAGS, but Makefile ignores LIBS. +configopts = "--with-perl=${EBROOTPERL}/bin/perl --enable-pthreads='-lpthread'" + +sanity_check_paths = { + 'files': ['bin/git'], + 'dirs': [], +} + +moduleclass = 'tools' diff --git a/g/git/git-2.8.0-GNU-4.9.3-2.25.eb b/g/git/git-2.8.0-GNU-4.9.3-2.25.eb new file mode 100644 index 00000000..d89d2d8c --- /dev/null +++ b/g/git/git-2.8.0-GNU-4.9.3-2.25.eb @@ -0,0 +1,48 @@ +## +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# +# Copyright:: Copyright 2012-2014 Uni.Lu/LCSB, NTUA +# Authors:: Fotis Georgatos +# Authors:: Dmitri Gribenko +# 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-90.html +## + +easyblock = 'ConfigureMake' + +name = 'git' +version = '2.8.0' + +homepage = 'http://git-scm.com/' +description = """Git is a free and open source distributed version control system designed +to handle everything from small to very large projects with speed and efficiency.""" + +toolchain = {'name': 'GNU', 'version': '4.9.3-2.25'} + +sources = ['v%(version)s.tar.gz'] +source_urls = ['https://github.com/git/git/archive'] + +builddependencies = [('Autoconf', '2.69')] + +dependencies = [ + ('cURL', '7.37.1', '', ('foss', '2015g')), + ('expat', '2.1.0', '', ('foss', '2015g')), + ('gettext', '0.19.2', '', ('foss', '2015g')), + ('Perl', '5.20.2', '-bare', ('GNU', '4.9.3-2.25')), +] + +preconfigopts = 'make configure && ' + +# Work around git build system bug. If LIBS contains -lpthread, then configure +# will not append -lpthread to LDFLAGS, but Makefile ignores LIBS. +configopts = "--with-perl=${EBROOTPERL}/bin/perl --enable-pthreads='-lpthread'" + +sanity_check_paths = { + 'files': ['bin/git'], + 'dirs': [], +} + +moduleclass = 'tools' diff --git a/g/git/git-2.8.0-intel-2017.00.eb b/g/git/git-2.8.0-intel-2017.00.eb new file mode 100644 index 00000000..f8631476 --- /dev/null +++ b/g/git/git-2.8.0-intel-2017.00.eb @@ -0,0 +1,48 @@ +## +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# +# Copyright:: Copyright 2012-2014 Uni.Lu/LCSB, NTUA +# Authors:: Fotis Georgatos +# Authors:: Dmitri Gribenko +# 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-90.html +## + +easyblock = 'ConfigureMake' + +name = 'git' +version = '2.8.0' + +homepage = 'http://git-scm.com/' +description = """Git is a free and open source distributed version control system designed +to handle everything from small to very large projects with speed and efficiency.""" + +toolchain = {'name': 'intel', 'version': '2017.00'} + +sources = ['v%(version)s.tar.gz'] +source_urls = ['https://github.com/git/git/archive'] + +builddependencies = [('Autoconf', '2.69')] + +dependencies = [ + ('cURL', '7.51.0'), + ('expat', '2.1.0'), + ('gettext', '0.19.7'), + ('Perl', '5.22.2'), +] + +preconfigopts = 'make configure && ' + +# Work around git build system bug. If LIBS contains -lpthread, then configure +# will not append -lpthread to LDFLAGS, but Makefile ignores LIBS. +configopts = "--with-perl=${EBROOTPERL}/bin/perl --enable-pthreads='-lpthread'" + +sanity_check_paths = { + 'files': ['bin/git'], + 'dirs': [], +} + +moduleclass = 'tools' diff --git a/g/git/git-2.8.0.eb b/g/git/git-2.8.0.eb new file mode 100644 index 00000000..f1f68fd2 --- /dev/null +++ b/g/git/git-2.8.0.eb @@ -0,0 +1,48 @@ +## +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# +# Copyright:: Copyright 2012-2014 Uni.Lu/LCSB, NTUA +# Authors:: Fotis Georgatos +# Authors:: Dmitri Gribenko +# 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-90.html +## + +easyblock = 'ConfigureMake' + +name = 'git' +version = '2.8.0' + +homepage = 'http://git-scm.com/' +description = """Git is a free and open source distributed version control system designed +to handle everything from small to very large projects with speed and efficiency.""" + +toolchain = {'name': 'dummy', 'version': ''} + +sources = ['v%(version)s.tar.gz'] +source_urls = ['https://github.com/git/git/archive'] + +builddependencies = [('Autoconf', '2.69')] + +dependencies = [ + ('cURL', '7.37.1'), + ('expat', '2.1.0'), + ('gettext', '0.19.2'), + ('Perl', '5.20.2', '-bare'), +] + +preconfigopts = 'make configure && ' + +# Work around git build system bug. If LIBS contains -lpthread, then configure +# will not append -lpthread to LDFLAGS, but Makefile ignores LIBS. +configopts = "--with-perl=${EBROOTPERL}/bin/perl --enable-pthreads='-lpthread'" + +sanity_check_paths = { + 'files': ['bin/git'], + 'dirs': [], +} + +moduleclass = 'tools' diff --git a/g/glproto/glproto-1.4.17-foss-2016a.eb b/g/glproto/glproto-1.4.17-foss-2016a.eb new file mode 100644 index 00000000..850097ae --- /dev/null +++ b/g/glproto/glproto-1.4.17-foss-2016a.eb @@ -0,0 +1,20 @@ +easyblock = 'ConfigureMake' + +name = 'glproto' +version = '1.4.17' + +homepage = "http://www.freedesktop.org/wiki/Software/xlibs" +description = "X protocol and ancillary headers" + +toolchain = {'name': 'foss', 'version': '2016a'} +toolchainopts = {'optarch': True} + +sources = [SOURCE_TAR_GZ] +source_urls = [XORG_PROTO_SOURCE] + +sanity_check_paths = { + 'files': ['include/GL/%s.h' % x for x in ['glxint', 'glxmd', 'glxproto', 'glxtokens', 'internal/glcore']], + 'dirs': [], +} + +moduleclass = 'devel' diff --git a/g/glproto/glproto-1.4.17-intel-2016a.eb b/g/glproto/glproto-1.4.17-intel-2016a.eb new file mode 100644 index 00000000..5dd250fd --- /dev/null +++ b/g/glproto/glproto-1.4.17-intel-2016a.eb @@ -0,0 +1,20 @@ +easyblock = 'ConfigureMake' + +name = 'glproto' +version = '1.4.17' + +homepage = "http://www.freedesktop.org/wiki/Software/xlibs" +description = "X protocol and ancillary headers" + +toolchain = {'name': 'intel', 'version': '2016a'} +toolchainopts = {'optarch': True} + +sources = [SOURCE_TAR_GZ] +source_urls = [XORG_PROTO_SOURCE] + +sanity_check_paths = { + 'files': ['include/GL/%s.h' % x for x in ['glxint', 'glxmd', 'glxproto', 'glxtokens', 'internal/glcore']], + 'dirs': [], +} + +moduleclass = 'devel' diff --git a/g/gnutls/gnutls-3.1.8-goalf-1.1.0-no-OFED.eb b/g/gnutls/gnutls-3.1.8-goalf-1.1.0-no-OFED.eb new file mode 100644 index 00000000..6090cb39 --- /dev/null +++ b/g/gnutls/gnutls-3.1.8-goalf-1.1.0-no-OFED.eb @@ -0,0 +1,29 @@ +easyblock = 'ConfigureMake' + +name = 'gnutls' +version = '3.1.8' + +homepage = 'http://www.gnutls.org/' +description = "gnutls-3.0.22: GNU Transport Layer Security library" + +toolchain = {'name': 'goalf', 'version': '1.1.0-no-OFED'} + +source_urls = ['ftp://ftp.gnutls.org/pub/gnutls/'] +sources = [SOURCE_TAR_XZ] + +dependencies = [ + ('GMP', '5.0.5'), + ('nettle', '2.6'), + ('guile', '1.8.8'), +] + +configopts = "--with-guile-site-dir=$EBROOTGUILE" + +sanity_check_paths = { + 'files': ['bin/%s' % x for x in ['certtool', 'danetool', 'gnutls-cli', 'gnutls-cli-debug', + 'gnutls-serv', 'ocsptool', 'psktool', 'srptool']] + + ['lib/libgnutls%s' % x for x in ['.a', 'xx.a', '-xssl.a', '-openssl.a']], + 'dirs': ['include/gnutls'], +} + +moduleclass = 'system' diff --git a/g/gnutls/gnutls-3.1.8-goolf-1.4.10.eb b/g/gnutls/gnutls-3.1.8-goolf-1.4.10.eb new file mode 100644 index 00000000..f7c7021f --- /dev/null +++ b/g/gnutls/gnutls-3.1.8-goolf-1.4.10.eb @@ -0,0 +1,28 @@ +easyblock = 'ConfigureMake' + +name = 'gnutls' +version = '3.1.8' + +homepage = 'http://www.gnutls.org/' +description = "gnutls-3.0.22: GNU Transport Layer Security library" +toolchain = {'name': 'goolf', 'version': '1.4.10'} + +source_urls = ['ftp://ftp.gnutls.org/pub/gnutls/'] +sources = [SOURCE_TAR_XZ] + +dependencies = [ + ('GMP', '5.0.5'), + ('nettle', '2.6'), + ('guile', '1.8.8'), +] + +configopts = "--with-guile-site-dir=$EBROOTGUILE" + +sanity_check_paths = { + 'files': ['bin/%s' % x for x in ['certtool', 'danetool', 'gnutls-cli', 'gnutls-cli-debug', + 'gnutls-serv', 'ocsptool', 'psktool', 'srptool']] + + ['lib/libgnutls%s' % x for x in ['.a', 'xx.a', '-xssl.a', '-openssl.a']], + 'dirs': ['include/gnutls'], +} + +moduleclass = 'system' diff --git a/g/gnutls/gnutls-3.3.21-intel-2016a.eb b/g/gnutls/gnutls-3.3.21-intel-2016a.eb new file mode 100644 index 00000000..62fd6a4c --- /dev/null +++ b/g/gnutls/gnutls-3.3.21-intel-2016a.eb @@ -0,0 +1,40 @@ +easyblock = 'ConfigureMake' + +name = 'gnutls' +version = '3.3.21' + +homepage = 'http://www.gnutls.org/' +description = """GnuTLS is a secure communications library implementing the SSL, TLS + and DTLS protocols and technologies around them. It provides a simple + C language application programming interface (API) to access the secure + communications protocols as well as APIs to parse and write X.509, PKCS #12, + OpenPGP and other required structures. It is aimed to be portable + and efficient with focus on security and interoperability.""" + +toolchain = {'name': 'intel', 'version': '2016a'} + +source_urls = ['ftp://ftp.gnutls.org/gcrypt/gnutls/v%(version_major_minor)s'] +sources = [SOURCE_TAR_XZ] + +guilever = '1.8.8' +guileshortver = '.'.join(guilever.split('.')[:2]) +dependencies = [ + ('GMP', '6.1.0'), + ('nettle', '3.1.1'), + ('guile', guilever), + ('libtasn1', '4.7'), + ('libidn', '1.32'), + ('p11-kit', '0.23.2'), +] + +configopts = "--with-guile-site-dir=$EBROOTGUILE --enable-openssl-compatibility " + +sanity_check_paths = { + 'files': ['bin/%s' % x for x in ['certtool', 'crywrap', 'gnutls-cli', 'gnutls-cli-debug', + 'gnutls-serv', 'ocsptool', 'psktool', 'srptool']] + + ['lib/libgnutls%s' % x for x in ['.%s' % SHLIB_EXT, 'xx.%s' % SHLIB_EXT, '-openssl.%s' % SHLIB_EXT]] + + ['lib/guile/%s/guile-gnutls-v-2.so' % guileshortver], + 'dirs': ['include/gnutls'], +} + +moduleclass = 'system' diff --git a/g/gnutls/gnutls-3.4.11-foss-2016a.eb b/g/gnutls/gnutls-3.4.11-foss-2016a.eb new file mode 100644 index 00000000..fbf5215d --- /dev/null +++ b/g/gnutls/gnutls-3.4.11-foss-2016a.eb @@ -0,0 +1,40 @@ +easyblock = 'ConfigureMake' + +name = 'gnutls' +version = '3.4.11' + +homepage = 'http://www.gnutls.org/' +description = """GnuTLS is a secure communications library implementing the SSL, TLS + and DTLS protocols and technologies around them. It provides a simple + C language application programming interface (API) to access the secure + communications protocols as well as APIs to parse and write X.509, PKCS #12, + OpenPGP and other required structures. It is aimed to be portable + and efficient with focus on security and interoperability.""" + +toolchain = {'name': 'foss', 'version': '2016a'} + +source_urls = ['ftp://ftp.gnutls.org/gcrypt/gnutls/v%(version_major_minor)s'] +sources = [SOURCE_TAR_XZ] + +guilever = '1.8.8' +guileshortver = '.'.join(guilever.split('.')[:2]) +dependencies = [ + ('GMP', '6.1.0'), + ('nettle', '3.1.1'), + ('guile', guilever), + ('libtasn1', '4.7'), + ('libidn', '1.32'), + ('p11-kit', '0.23.2'), +] + +configopts = "--with-guile-site-dir=$EBROOTGUILE --enable-openssl-compatibility " + +sanity_check_paths = { + 'files': ['bin/%s' % x for x in ['certtool', 'crywrap', 'gnutls-cli', 'gnutls-cli-debug', + 'gnutls-serv', 'ocsptool', 'psktool', 'srptool']] + + ['lib/libgnutls%s' % x for x in ['.%s' % SHLIB_EXT, 'xx.%s' % SHLIB_EXT, '-openssl.%s' % SHLIB_EXT]] + + ['lib/guile/%s/guile-gnutls-v-2.so' % guileshortver], + 'dirs': ['include/gnutls'], +} + +moduleclass = 'system' diff --git a/g/gnutls/gnutls-3.4.7-GNU-4.9.3-2.25.eb b/g/gnutls/gnutls-3.4.7-GNU-4.9.3-2.25.eb new file mode 100644 index 00000000..d8830377 --- /dev/null +++ b/g/gnutls/gnutls-3.4.7-GNU-4.9.3-2.25.eb @@ -0,0 +1,40 @@ +easyblock = 'ConfigureMake' + +name = 'gnutls' +version = '3.4.7' + +homepage = 'http://www.gnutls.org/' +description = """GnuTLS is a secure communications library implementing the SSL, TLS + and DTLS protocols and technologies around them. It provides a simple + C language application programming interface (API) to access the secure + communications protocols as well as APIs to parse and write X.509, PKCS #12, + OpenPGP and other required structures. It is aimed to be portable + and efficient with focus on security and interoperability.""" + +toolchain = {'name': 'GNU', 'version': '4.9.3-2.25'} + +source_urls = ['ftp://ftp.gnutls.org/gcrypt/gnutls/v%(version_major_minor)s'] +sources = [SOURCE_TAR_XZ] + +guilever = '1.8.8' +guileshortver = '.'.join(guilever.split('.')[:2]) +dependencies = [ + ('GMP', '6.0.0a'), + ('nettle', '3.1.1'), + ('guile', guilever), + ('libtasn1', '4.7'), + ('libidn', '1.32'), + ('p11-kit', '0.23.2'), +] + +configopts = "--with-guile-site-dir=$EBROOTGUILE --enable-openssl-compatibility " + +sanity_check_paths = { + 'files': ['bin/%s' % x for x in ['certtool', 'crywrap', 'gnutls-cli', 'gnutls-cli-debug', + 'gnutls-serv', 'ocsptool', 'psktool', 'srptool']] + + ['lib/libgnutls%s' % x for x in ['.%s' % SHLIB_EXT, 'xx.%s' % SHLIB_EXT, '-openssl.%s' % SHLIB_EXT]] + + ['lib/guile/%s/guile-gnutls-v-2.so' % guileshortver], + 'dirs': ['include/gnutls'], +} + +moduleclass = 'system' diff --git a/g/gompi/gompi-2015b.eb b/g/gompi/gompi-2015b.eb new file mode 100644 index 00000000..80f0ea80 --- /dev/null +++ b/g/gompi/gompi-2015b.eb @@ -0,0 +1,36 @@ +easyblock = "Toolchain" + +name = 'gompi' +version = '2015b' + +homepage = '(none)' +description = """GNU Compiler Collection (GCC) based compiler toolchain, + including OpenMPI for MPI support.""" + +toolchain = {'name': 'dummy', 'version': 'dummy'} + +gccver = '5.1.0' +binutilsver = '2.25' +tcver = '%s-binutils-%s' % (gccver, binutilsver) + +# compiler toolchain dependencies +dependencies = [ + ('GCC', gccver, '-binutils-%s' % binutilsver), + ('binutils', binutilsver, '', ('GCC', tcver)), + ('OpenMPI', '1.8.8', '', ('GNU', '%s-%s' % (gccver, binutilsver))), +] + +modextravars = { + 'CC': 'gcc', + 'OMPI_CC': 'gcc', + 'CXX': 'g++', + 'OPMI_CXX': 'g++', + 'F90': 'gfortran', + 'OMPI_F90': 'gfortran', + 'F77': 'gfortran', + 'OMPI_F77': 'gfortran', + 'FC': 'gfortran', + 'OMPI_FC': 'gfortran', +} + +moduleclass = 'toolchain' diff --git a/g/gompi/gompi-2015e.eb b/g/gompi/gompi-2015e.eb new file mode 100644 index 00000000..22933734 --- /dev/null +++ b/g/gompi/gompi-2015e.eb @@ -0,0 +1,25 @@ +easyblock = "Toolchain" + +name = 'gompi' +version = '2015e' + +homepage = '(none)' +description = """GNU Compiler Collection (GCC) based compiler toolchain, + including OpenMPI for MPI support.""" + +toolchain = {'name': 'dummy', 'version': 'dummy'} + +compname = 'GCC' +compver = '4.4.7-system' +comp = (compname, compver) + +mpilib = 'OpenMPI' +mpiver = '1.8.6' + +# compiler toolchain dependencies +dependencies = [ + comp, + (mpilib, mpiver, '', comp), +] + +moduleclass = 'toolchain' diff --git a/g/gompi/gompi-2015g.eb b/g/gompi/gompi-2015g.eb new file mode 100644 index 00000000..682928e0 --- /dev/null +++ b/g/gompi/gompi-2015g.eb @@ -0,0 +1,23 @@ +easyblock = "Toolchain" + +name = 'gompi' +version = '2015g' + +homepage = '(none)' +description = """GNU Compiler Collection (GCC) based compiler toolchain, + including OpenMPI for MPI support.""" + +toolchain = {'name': 'dummy', 'version': 'dummy'} + +gccver = '4.9.3' +binutilsver = '2.25' +tcver = '%s-binutils-%s' % (gccver, binutilsver) + +# compiler toolchain dependencies +dependencies = [ + ('GCC', gccver, '-binutils-%s' % binutilsver), + ('binutils', binutilsver, '', ('GCC', tcver)), + ('OpenMPI', '1.8.8', '', ('GNU', '%s-%s' % (gccver, binutilsver))), +] + +moduleclass = 'toolchain' diff --git a/g/gompi/gompi-2016.07.eb b/g/gompi/gompi-2016.07.eb new file mode 100644 index 00000000..5eca4152 --- /dev/null +++ b/g/gompi/gompi-2016.07.eb @@ -0,0 +1,22 @@ +easyblock = "Toolchain" + +name = 'gompi' +version = '2016.07' + +homepage = '(none)' +description = """GNU Compiler Collection (GCC) based compiler toolchain, +including OpenMPI for MPI support.""" + +toolchain = {'name': 'dummy', 'version': 'dummy'} + +gccver = '6.1.0' +binutilsver = '2.27' +gccbinver = '%s-%s' % (gccver, binutilsver) + +# compiler toolchain dependencies +dependencies = [ + ('GCC', gccbinver), # includes both GCC and binutils + ('OpenMPI', '1.10.3', '', ('GCC', gccbinver)), +] + +moduleclass = 'toolchain' diff --git a/g/gompi/gompi-2016.09.eb b/g/gompi/gompi-2016.09.eb new file mode 100644 index 00000000..b4350de7 --- /dev/null +++ b/g/gompi/gompi-2016.09.eb @@ -0,0 +1,20 @@ +easyblock = "Toolchain" + +name = 'gompi' +version = '2016.09' + +homepage = '(none)' +description = """GNU Compiler Collection (GCC) based compiler toolchain, +including OpenMPI for MPI support.""" + +toolchain = {'name': 'dummy', 'version': 'dummy'} + +gccver = '6.2.0-2.27' + +# compiler toolchain dependencies +dependencies = [ + ('GCC', gccver), # includes both GCC and binutils + ('OpenMPI', '2.0.1', '', ('GCC', gccver)), +] + +moduleclass = 'toolchain' diff --git a/g/goolf/goolf-1.5.12.eb b/g/goolf/goolf-1.5.12.eb new file mode 100644 index 00000000..17ed0dcf --- /dev/null +++ b/g/goolf/goolf-1.5.12.eb @@ -0,0 +1,37 @@ +easyblock = "Toolchain" + +name = 'goolf' +version = '1.5.12' + +homepage = '(none)' +description = """GNU Compiler Collection (GCC) based compiler toolchain, including + OpenMPI for MPI support, OpenBLAS (BLAS and LAPACK support), FFTW and ScaLAPACK.""" + +toolchain = {'name': 'dummy', 'version': 'dummy'} + +comp_name = 'GCC' +comp_version = '4.8.1' +comp = (comp_name, comp_version) + +blaslib = 'OpenBLAS' +blasver = '0.2.8' +blas = '%s-%s' % (blaslib, blasver) +blassuff = '-LAPACK-3.5.0' + +# toolchain used to build goolf dependencies +comp_mpi_tc_name = 'gompi' +comp_mpi_tc_ver = "%s" % version +comp_mpi_tc = (comp_mpi_tc_name, comp_mpi_tc_ver) + +# compiler toolchain depencies +# we need GCC and OpenMPI as explicit dependencies instead of gompi toolchain +# because of toolchain preperation functions +dependencies = [ + ('GCC', '4.8.1'), + ('OpenMPI', '1.6.5', '', comp), # part of gompi + (blaslib, blasver, blassuff, comp_mpi_tc), + ('FFTW', '3.3.3', '', comp_mpi_tc), + ('ScaLAPACK', '2.0.2', '-%s%s' % (blas, blassuff), comp_mpi_tc), +] + +moduleclass = 'toolchain' diff --git a/g/grabix/grabix-0.1.6-goolf-1.7.20.eb b/g/grabix/grabix-0.1.6-goolf-1.7.20.eb new file mode 100644 index 00000000..fc1bd333 --- /dev/null +++ b/g/grabix/grabix-0.1.6-goolf-1.7.20.eb @@ -0,0 +1,32 @@ +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# Author: Pablo Escobar Lopez +# sciCORE - University of Basel +# SIB Swiss Institute of Bioinformatics + +easyblock = 'MakeCp' + +name = 'grabix' +version = '0.1.6' + +homepage = 'https://github.com/arq5x/grabix' +description = """a wee tool for random access into BGZF files""" + +toolchain = {'name': 'goolf', 'version': '1.7.20'} + +source_urls = ['https://github.com/arq5x/grabix/archive/'] +sources = ['%(version)s.tar.gz'] + +dependencies = [ + ('zlib', '1.2.8'), +] + +parallel = 1 + +files_to_copy = [(["grabix"], "bin"), "README.md", "tests", "test.sh"] + +sanity_check_paths = { + 'files': ["bin/grabix"], + 'dirs': [], +} + +moduleclass = 'bio' diff --git a/g/grace/grace-5.1.25-intel-2015b.eb b/g/grace/grace-5.1.25-intel-2015b.eb new file mode 100644 index 00000000..c473d147 --- /dev/null +++ b/g/grace/grace-5.1.25-intel-2015b.eb @@ -0,0 +1,29 @@ +easyblock = 'ConfigureMake' + +name = 'grace' +version = '5.1.25' + +homepage = 'http://freecode.com/projects/grace' +description = """Grace is a WYSIWYG 2D plotting tool for X Windows System and Motif.""" + +source_urls = ['ftp://plasma-gate.weizmann.ac.il/pub/grace/src/stable'] +sources = [SOURCE_TAR_GZ] + +toolchain = {'name': 'intel', 'version': '2015b'} + +dependencies = [ + ('motif', '2.3.4', '-libX11-1.6.2'), + ('netCDF', '4.3.2'), +] + +runtest = 'tests' + +# we also need to run make links right before or after make install. +installopts = 'links' + +sanity_check_paths = { + 'files': ['bin/xmgrace'], + 'dirs': [], +} + +moduleclass = 'vis' diff --git a/g/gtest/gtest-1.7.0-CrayGNU-2015.11.eb b/g/gtest/gtest-1.7.0-CrayGNU-2015.11.eb new file mode 100644 index 00000000..3ebc1003 --- /dev/null +++ b/g/gtest/gtest-1.7.0-CrayGNU-2015.11.eb @@ -0,0 +1,19 @@ +easyblock = "Tarball" + +name = 'gtest' +version = '1.7.0' + +homepage = 'https://code.google.com/p/googletest/' +description = "Google's framework for writing C++ tests on a variety of platforms" + +toolchain = {'name': 'CrayGNU', 'version': '2015.11'} + +sources = [SOURCE_ZIP] +source_urls = ['https://googletest.googlecode.com/files'] + +sanity_check_paths={ + 'files': ['CMakeLists.txt', ], + 'dirs': ['include', 'src'], +} + +moduleclass = 'devel' diff --git a/g/gtkglext/gtkglext-1.2.0-intel-2015b.eb b/g/gtkglext/gtkglext-1.2.0-intel-2015b.eb new file mode 100644 index 00000000..a0f2ba30 --- /dev/null +++ b/g/gtkglext/gtkglext-1.2.0-intel-2015b.eb @@ -0,0 +1,29 @@ +easyblock = 'ConfigureMake' + +name = 'gtkglext' +version = '1.2.0' + +homepage = 'https://projects.gnome.org/gtkglext' +description = """GtkGLExt is an OpenGL extension to GTK+.""" + +toolchain = {'name': 'intel', 'version': '2015b'} + +source_urls = [SOURCEFORGE_SOURCE] +sources = [SOURCE_TAR_GZ] + +patches = ['gtkglext-%(version)s_fix-gtk-compat.patch'] + +pangover = '1.37.1' +dependencies = [ + ('GTK+', '2.24.28'), + ('Pango', pangover), + ('pangox-compat', '0.0.2', '-Pango-%s' % pangover), +] + +sanity_check_paths = { + 'files': ['lib/gtkglext-1.0/include/gdkglext-config.h', 'lib/libgdkglext-x11-1.0.a', 'lib/libgdkglext-x11-1.0.%s' % SHLIB_EXT, + 'lib/libgtkglext-x11-1.0.a', 'lib/libgtkglext-x11-1.0.%s' % SHLIB_EXT], + 'dirs': ['include/gtkglext-1.0/gdk', 'include/gtkglext-1.0/gtk', 'lib/pkgconfig'], +} + +moduleclass = 'vis' diff --git a/g/gzip/gzip-1.6-foss-2015g.eb b/g/gzip/gzip-1.6-foss-2015g.eb new file mode 100644 index 00000000..fe0df56c --- /dev/null +++ b/g/gzip/gzip-1.6-foss-2015g.eb @@ -0,0 +1,35 @@ +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# +# Copyright:: Copyright (c) 2012-2013 Cyprus Institute / CaSToRC +# Authors:: Thekla Loizou +# 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_06-19.html +## + +easyblock = 'ConfigureMake' + +name = 'gzip' +version = '1.6' + +homepage = 'http://www.gnu.org/software/gzip/' +description = "gzip (GNU zip) is a popular data compression program as a replacement for compress" + +toolchain = {'name': 'foss', 'version': '2015g'} + +# eg. http://ftp.gnu.org/gnu/gzip/gzip-1.6.tar.gz +source_urls = ['http://ftpmirror.gnu.org/gzip'] +sources = [SOURCE_TAR_GZ] + +# make sure the gzip, gunzip and compress binaries are available after installation +sanity_check_paths = { + 'files': ["bin/gunzip", "bin/gzip", "bin/uncompress"], + 'dirs': [], +} + +# run 'gzip -h' and 'gzip --version' after installation +sanity_check_commands = [True, ('gzip', '--version')] + +moduleclass = 'tools' diff --git a/g/gzip/gzip-1.6-foss-2016a.eb b/g/gzip/gzip-1.6-foss-2016a.eb new file mode 100644 index 00000000..8081013d --- /dev/null +++ b/g/gzip/gzip-1.6-foss-2016a.eb @@ -0,0 +1,35 @@ +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# +# Copyright:: Copyright (c) 2012-2013 Cyprus Institute / CaSToRC +# Authors:: Thekla Loizou +# 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_06-19.html +## + +easyblock = 'ConfigureMake' + +name = 'gzip' +version = '1.6' + +homepage = 'http://www.gnu.org/software/gzip/' +description = "gzip (GNU zip) is a popular data compression program as a replacement for compress" + +toolchain = {'name': 'foss', 'version': '2016a'} + +# eg. http://ftp.gnu.org/gnu/gzip/gzip-1.6.tar.gz +source_urls = ['http://ftpmirror.gnu.org/gzip'] +sources = [SOURCE_TAR_GZ] + +# make sure the gzip, gunzip and compress binaries are available after installation +sanity_check_paths = { + 'files': ["bin/gunzip", "bin/gzip", "bin/uncompress"], + 'dirs': [], +} + +# run 'gzip -h' and 'gzip --version' after installation +sanity_check_commands = [True, ('gzip', '--version')] + +moduleclass = 'tools' diff --git a/g/gzip/gzip-1.6.eb b/g/gzip/gzip-1.6.eb new file mode 100644 index 00000000..0e45a940 --- /dev/null +++ b/g/gzip/gzip-1.6.eb @@ -0,0 +1,35 @@ +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# +# Copyright:: Copyright (c) 2012-2013 Cyprus Institute / CaSToRC +# Authors:: Thekla Loizou +# 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_06-19.html +## + +easyblock = 'ConfigureMake' + +name = 'gzip' +version = '1.6' + +homepage = 'http://www.gnu.org/software/gzip/' +description = "gzip (GNU zip) is a popular data compression program as a replacement for compress" + +toolchain = {'name': 'dummy', 'version': ''} + +# eg. http://ftp.gnu.org/gnu/gzip/gzip-1.6.tar.gz +source_urls = ['http://ftpmirror.gnu.org/gzip'] +sources = [SOURCE_TAR_GZ] + +# make sure the gzip, gunzip and compress binaries are available after installation +sanity_check_paths = { + 'files': ["bin/gunzip", "bin/gzip", "bin/uncompress"], + 'dirs': [], +} + +# run 'gzip -h' and 'gzip --version' after installation +sanity_check_commands = [True, ('gzip', '--version')] + +moduleclass = 'tools' diff --git a/h/HBase/HBase-1.0.2.eb b/h/HBase/HBase-1.0.2.eb new file mode 100644 index 00000000..ab9d5fd4 --- /dev/null +++ b/h/HBase/HBase-1.0.2.eb @@ -0,0 +1,25 @@ +easyblock = 'PackedBinary' + +name = 'HBase' +version = '1.0.2' + +homepage = 'http://hbase.apache.org/' +description = """Apache HBase. is the Hadoop database, a distributed, scalable, big data store. """ + +toolchain = {'name': 'dummy', 'version': ''} + +sources = ['%(namelower)s-%(version)s-bin.tar.gz'] +source_urls = ['http://www.us.apache.org/dist/hbase/hbase-%(version)s/'] + +dependencies = [('Java', '1.7.0_80')] + +parallel = 1 + +sanity_check_paths = { + 'files': ["bin/hbase"], + 'dirs': ["conf", "docs", "hbase-webapps", "lib"] +} + +modextravars = {'HBASE_HOME': '%(installdir)s'} + +moduleclass = 'tools' diff --git a/h/HDF5/HDF5-1.8.13-intel-2015b-no-mpi.eb b/h/HDF5/HDF5-1.8.13-intel-2015b-no-mpi.eb new file mode 100644 index 00000000..72cde2e4 --- /dev/null +++ b/h/HDF5/HDF5-1.8.13-intel-2015b-no-mpi.eb @@ -0,0 +1,27 @@ +name = 'HDF5' +version = '1.8.13' +versionsuffix = '-intel-2015b-no-mpi' + +homepage = 'http://www.hdfgroup.org/HDF5/' +description = """HDF5 is a unique technology suite that makes possible the management of + extremely large and complex data collections.""" + +toolchain = {'name': 'intel', 'version': '2015b'} +toolchainopts = {'optarch': True, 'pic': True, 'usempi': False} + +source_urls = ['http://www.hdfgroup.org/ftp/HDF5/releases/hdf5-%(version)s/src'] +sources = [SOURCELOWER_TAR_GZ] + +patches = [ + 'HDF5-%(version)s_configure_intel.patch', + 'configure_libtool.patch', +] + +buildopts = 'CXXFLAGS="$CXXFLAGS -DMPICH_IGNORE_CXX_SEEK"' + +dependencies = [ + ('zlib', '1.2.8'), + ('Szip', '2.1'), +] + +moduleclass = 'data' diff --git a/h/HDF5/HDF5-1.8.13_configure_intel.patch b/h/HDF5/HDF5-1.8.13_configure_intel.patch new file mode 100644 index 00000000..1bb0ecf5 --- /dev/null +++ b/h/HDF5/HDF5-1.8.13_configure_intel.patch @@ -0,0 +1,131 @@ +--- configure.orig 2014-05-06 04:15:52.000000000 +0200 ++++ configure 2014-07-23 11:21:47.616743649 +0200 +@@ -5399,7 +5399,7 @@ + ac_link='$FC -o conftest$ac_exeext $FCFLAGS $LDFLAGS $ac_fcflags_srcext conftest.$ac_ext $LIBS >&5' + ac_compiler_gnu=$ac_cv_fc_compiler_gnu + if test -n "$ac_tool_prefix"; then +- for ac_prog in gfortran g95 xlf95 f95 fort ifort ifc efc pgfortran pgf95 lf95 ftn nagfor xlf90 f90 pgf90 pghpf epcf90 g77 xlf f77 frt pgf77 cf77 fort77 fl32 af77 ++ for ac_prog in gfortran g95 xlf95 f95 fort ifort mpif77 mpif90 ifc efc pgfortran pgf95 lf95 ftn nagfor xlf90 f90 pgf90 pghpf epcf90 g77 xlf f77 frt pgf77 cf77 fort77 fl32 af77 + do + # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. + set dummy $ac_tool_prefix$ac_prog; ac_word=$2 +@@ -5443,7 +5443,7 @@ + fi + if test -z "$FC"; then + ac_ct_FC=$FC +- for ac_prog in gfortran g95 xlf95 f95 fort ifort ifc efc pgfortran pgf95 lf95 ftn nagfor xlf90 f90 pgf90 pghpf epcf90 g77 xlf f77 frt pgf77 cf77 fort77 fl32 af77 ++ for ac_prog in gfortran g95 xlf95 f95 fort ifort mpif77 mpif90 ifc efc pgfortran pgf95 lf95 ftn nagfor xlf90 f90 pgf90 pghpf epcf90 g77 xlf f77 frt pgf77 cf77 fort77 fl32 af77 + do + # Extract the first word of "$ac_prog", so it can be a program name with args. + set dummy $ac_prog; ac_word=$2 +@@ -5672,7 +5672,7 @@ + ac_link='$FC -o conftest$ac_exeext $FCFLAGS $LDFLAGS $ac_fcflags_srcext conftest.$ac_ext $LIBS >&5' + ac_compiler_gnu=$ac_cv_fc_compiler_gnu + if test -n "$ac_tool_prefix"; then +- for ac_prog in f90 pgf90 slf90 f95 g95 xlf95 efc ifort ftn ++ for ac_prog in f90 pgf90 slf90 f95 g95 xlf95 efc ifort mpif77 mpif90 ftn + do + # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. + set dummy $ac_tool_prefix$ac_prog; ac_word=$2 +@@ -5716,7 +5716,7 @@ + fi + if test -z "$FC"; then + ac_ct_FC=$FC +- for ac_prog in f90 pgf90 slf90 f95 g95 xlf95 efc ifort ftn ++ for ac_prog in f90 pgf90 slf90 f95 g95 xlf95 efc ifort mpif77 mpif90 ftn + do + # Extract the first word of "$ac_prog", so it can be a program name with args. + set dummy $ac_prog; ac_word=$2 +@@ -7908,7 +7908,7 @@ + mpicc) + ## The mpich compiler. Use mpiexec from the same directory if it + ## exists. +- PARALLEL=mpicc ++ PARALLEL="$CC_BASENAME" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for mpiexec" >&5 + $as_echo_n "checking for mpiexec... " >&6; } + +@@ -7970,7 +7970,7 @@ + *mpif90*) + ## The Fortran mpich compiler. Use mpiexec from the same directory + ## if it exists. +- PARALLEL=mpif90 ++ PARALLEL="$FC" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for mpiexec" >&5 + $as_echo_n "checking for mpiexec... " >&6; } + +@@ -12704,7 +12704,7 @@ + ;; + # icc used to be incompatible with GCC. + # ICC 10 doesn't accept -KPIC any more. +- icc* | ifort*) ++ icc* | mpicc*| ifort* | mpif77* | mpif90*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-fPIC' + lt_prog_compiler_static='-static' +@@ -13340,11 +13340,11 @@ + # Portland Group f77 and f90 compilers + whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' + tmp_addflag=' $pic_flag -Mnomain' ;; +- ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64 ++ ecc*,ia64* | icc*,ia64* | mpicc*,ia64*) # Intel C compiler on ia64 + tmp_addflag=' -i_dynamic' ;; +- efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64 ++ efc*,ia64* | ifort*,ia64* | mpif77*,ia64* | mpif90*,ia64*) # Intel Fortran compiler on ia64 + tmp_addflag=' -i_dynamic -nofor_main' ;; +- ifc* | ifort*) # Intel Fortran compiler ++ ifc* | ifort* | mpif77* | mpif90*) # Intel Fortran compiler + tmp_addflag=' -nofor_main' ;; + lf95*) # Lahey Fortran 8.1 + whole_archive_flag_spec= +@@ -13826,7 +13826,7 @@ + link_all_deplibs=yes + allow_undefined_flag="$_lt_dar_allow_undefined" + case $cc_basename in +- ifort*) _lt_dar_can_shared=yes ;; ++ ifort* | mpif77* | mpif90*) _lt_dar_can_shared=yes ;; + *) _lt_dar_can_shared=$GCC ;; + esac + if test "$_lt_dar_can_shared" = "yes"; then +@@ -16824,7 +16824,7 @@ + link_all_deplibs_CXX=yes + allow_undefined_flag_CXX="$_lt_dar_allow_undefined" + case $cc_basename in +- ifort*) _lt_dar_can_shared=yes ;; ++ ifort* | mpif77* | mpif90*) _lt_dar_can_shared=yes ;; + *) _lt_dar_can_shared=$GCC ;; + esac + if test "$_lt_dar_can_shared" = "yes"; then +@@ -19735,7 +19735,7 @@ + ;; + # icc used to be incompatible with GCC. + # ICC 10 doesn't accept -KPIC any more. +- icc* | ifort*) ++ icc* | mpicc* | ifort* | mpif77* | mpif90*) + lt_prog_compiler_wl_FC='-Wl,' + lt_prog_compiler_pic_FC='-fPIC' + lt_prog_compiler_static_FC='-static' +@@ -20356,11 +20356,11 @@ + # Portland Group f77 and f90 compilers + whole_archive_flag_spec_FC='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' + tmp_addflag=' $pic_flag -Mnomain' ;; +- ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64 ++ ecc*,ia64* | icc*,ia64* | mpicc*,ia64*) # Intel C compiler on ia64 + tmp_addflag=' -i_dynamic' ;; +- efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64 ++ efc*,ia64* | ifort*,ia64* | mpif77*,ia64* | mpif90*,ia64*) # Intel Fortran compiler on ia64 + tmp_addflag=' -i_dynamic -nofor_main' ;; +- ifc* | ifort*) # Intel Fortran compiler ++ ifc* | ifort* | mpif77* | mpif90*) # Intel Fortran compiler + tmp_addflag=' -nofor_main' ;; + lf95*) # Lahey Fortran 8.1 + whole_archive_flag_spec_FC= +@@ -20814,7 +20814,7 @@ + link_all_deplibs_FC=yes + allow_undefined_flag_FC="$_lt_dar_allow_undefined" + case $cc_basename in +- ifort*) _lt_dar_can_shared=yes ;; ++ ifort* | mpif77* | mpif90*) _lt_dar_can_shared=yes ;; + *) _lt_dar_can_shared=$GCC ;; + esac + if test "$_lt_dar_can_shared" = "yes"; then diff --git a/h/HDF5/HDF5-1.8.16-foss-2016a.eb b/h/HDF5/HDF5-1.8.16-foss-2016a.eb new file mode 100644 index 00000000..84580d9b --- /dev/null +++ b/h/HDF5/HDF5-1.8.16-foss-2016a.eb @@ -0,0 +1,26 @@ +name = 'HDF5' +version = '1.8.16' + +homepage = 'http://www.hdfgroup.org/HDF5/' +description = """HDF5 is a unique technology suite that makes possible the management of + extremely large and complex data collections.""" + +toolchain = {'name': 'foss', 'version': '2016a'} +toolchainopts = {'optarch': True, 'pic': True, 'usempi': True} + +source_urls = ['http://www.hdfgroup.org/ftp/HDF5/releases/hdf5-%(version)s/src'] +sources = [SOURCELOWER_TAR_GZ] + +patches = [ + 'HDF5-1.8.15_configure_intel.patch', + 'configure_libtool.patch', +] + +buildopts = 'CXXFLAGS="$CXXFLAGS -DMPICH_IGNORE_CXX_SEEK"' + +dependencies = [ + ('zlib', '1.2.8'), + ('Szip', '2.1'), +] + +moduleclass = 'data' diff --git a/h/HDF5/HDF5-1.8.16-intel-2015b-threadsafe.eb b/h/HDF5/HDF5-1.8.16-intel-2015b-threadsafe.eb new file mode 100644 index 00000000..30047722 --- /dev/null +++ b/h/HDF5/HDF5-1.8.16-intel-2015b-threadsafe.eb @@ -0,0 +1,31 @@ +name = 'HDF5' +version = '1.8.16' +versionsuffix = '-threadsafe' + +homepage = 'http://www.hdfgroup.org/HDF5/' +description = """HDF5 is a unique technology suite that makes possible the management of + extremely large and complex data collections. + +This is a thread-safe version, not necessarily thread-effecient. See https://gamma.hdfgroup.org/papers/features/mthdf/index.html + """ + +toolchain = {'name': 'intel', 'version': '2015b'} +toolchainopts = {'optarch': True, 'pic': True, 'usempi': True} + +source_urls = ['http://www.hdfgroup.org/ftp/HDF5/releases/hdf5-%(version)s/src'] +sources = [SOURCELOWER_TAR_GZ] + +patches = [ + 'HDF5-1.8.15_configure_intel.patch', + 'configure_libtool.patch', +] + +configopts = '--enable-threadsafe' +buildopts = 'CXXFLAGS="$CXXFLAGS -DMPICH_IGNORE_CXX_SEEK"' + +dependencies = [ + ('zlib', '1.2.8'), + ('Szip', '2.1'), +] + +moduleclass = 'data' diff --git a/h/HDF5/HDF5-1.8.16-intel-2017.00.eb b/h/HDF5/HDF5-1.8.16-intel-2017.00.eb new file mode 100644 index 00000000..dd4928b4 --- /dev/null +++ b/h/HDF5/HDF5-1.8.16-intel-2017.00.eb @@ -0,0 +1,26 @@ +name = 'HDF5' +version = '1.8.16' + +homepage = 'http://www.hdfgroup.org/HDF5/' +description = """HDF5 is a unique technology suite that makes possible the management of + extremely large and complex data collections.""" + +toolchain = {'name': 'intel', 'version': '2017.00'} +toolchainopts = {'optarch': True, 'pic': True, 'usempi': True} + +source_urls = ['http://www.hdfgroup.org/ftp/HDF5/releases/hdf5-%(version)s/src'] +sources = [SOURCELOWER_TAR_GZ] + +patches = [ + 'HDF5-1.8.15_configure_intel.patch', + 'configure_libtool.patch', +] + +buildopts = 'CXXFLAGS="$CXXFLAGS -DMPICH_IGNORE_CXX_SEEK"' + +dependencies = [ + ('zlib', '1.2.8'), + ('Szip', '2.1'), +] + +moduleclass = 'data' diff --git a/h/HDF5/HDF5-1.8.16_configure_intel.patch b/h/HDF5/HDF5-1.8.16_configure_intel.patch new file mode 100644 index 00000000..1bb0ecf5 --- /dev/null +++ b/h/HDF5/HDF5-1.8.16_configure_intel.patch @@ -0,0 +1,131 @@ +--- configure.orig 2014-05-06 04:15:52.000000000 +0200 ++++ configure 2014-07-23 11:21:47.616743649 +0200 +@@ -5399,7 +5399,7 @@ + ac_link='$FC -o conftest$ac_exeext $FCFLAGS $LDFLAGS $ac_fcflags_srcext conftest.$ac_ext $LIBS >&5' + ac_compiler_gnu=$ac_cv_fc_compiler_gnu + if test -n "$ac_tool_prefix"; then +- for ac_prog in gfortran g95 xlf95 f95 fort ifort ifc efc pgfortran pgf95 lf95 ftn nagfor xlf90 f90 pgf90 pghpf epcf90 g77 xlf f77 frt pgf77 cf77 fort77 fl32 af77 ++ for ac_prog in gfortran g95 xlf95 f95 fort ifort mpif77 mpif90 ifc efc pgfortran pgf95 lf95 ftn nagfor xlf90 f90 pgf90 pghpf epcf90 g77 xlf f77 frt pgf77 cf77 fort77 fl32 af77 + do + # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. + set dummy $ac_tool_prefix$ac_prog; ac_word=$2 +@@ -5443,7 +5443,7 @@ + fi + if test -z "$FC"; then + ac_ct_FC=$FC +- for ac_prog in gfortran g95 xlf95 f95 fort ifort ifc efc pgfortran pgf95 lf95 ftn nagfor xlf90 f90 pgf90 pghpf epcf90 g77 xlf f77 frt pgf77 cf77 fort77 fl32 af77 ++ for ac_prog in gfortran g95 xlf95 f95 fort ifort mpif77 mpif90 ifc efc pgfortran pgf95 lf95 ftn nagfor xlf90 f90 pgf90 pghpf epcf90 g77 xlf f77 frt pgf77 cf77 fort77 fl32 af77 + do + # Extract the first word of "$ac_prog", so it can be a program name with args. + set dummy $ac_prog; ac_word=$2 +@@ -5672,7 +5672,7 @@ + ac_link='$FC -o conftest$ac_exeext $FCFLAGS $LDFLAGS $ac_fcflags_srcext conftest.$ac_ext $LIBS >&5' + ac_compiler_gnu=$ac_cv_fc_compiler_gnu + if test -n "$ac_tool_prefix"; then +- for ac_prog in f90 pgf90 slf90 f95 g95 xlf95 efc ifort ftn ++ for ac_prog in f90 pgf90 slf90 f95 g95 xlf95 efc ifort mpif77 mpif90 ftn + do + # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. + set dummy $ac_tool_prefix$ac_prog; ac_word=$2 +@@ -5716,7 +5716,7 @@ + fi + if test -z "$FC"; then + ac_ct_FC=$FC +- for ac_prog in f90 pgf90 slf90 f95 g95 xlf95 efc ifort ftn ++ for ac_prog in f90 pgf90 slf90 f95 g95 xlf95 efc ifort mpif77 mpif90 ftn + do + # Extract the first word of "$ac_prog", so it can be a program name with args. + set dummy $ac_prog; ac_word=$2 +@@ -7908,7 +7908,7 @@ + mpicc) + ## The mpich compiler. Use mpiexec from the same directory if it + ## exists. +- PARALLEL=mpicc ++ PARALLEL="$CC_BASENAME" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for mpiexec" >&5 + $as_echo_n "checking for mpiexec... " >&6; } + +@@ -7970,7 +7970,7 @@ + *mpif90*) + ## The Fortran mpich compiler. Use mpiexec from the same directory + ## if it exists. +- PARALLEL=mpif90 ++ PARALLEL="$FC" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for mpiexec" >&5 + $as_echo_n "checking for mpiexec... " >&6; } + +@@ -12704,7 +12704,7 @@ + ;; + # icc used to be incompatible with GCC. + # ICC 10 doesn't accept -KPIC any more. +- icc* | ifort*) ++ icc* | mpicc*| ifort* | mpif77* | mpif90*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-fPIC' + lt_prog_compiler_static='-static' +@@ -13340,11 +13340,11 @@ + # Portland Group f77 and f90 compilers + whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' + tmp_addflag=' $pic_flag -Mnomain' ;; +- ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64 ++ ecc*,ia64* | icc*,ia64* | mpicc*,ia64*) # Intel C compiler on ia64 + tmp_addflag=' -i_dynamic' ;; +- efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64 ++ efc*,ia64* | ifort*,ia64* | mpif77*,ia64* | mpif90*,ia64*) # Intel Fortran compiler on ia64 + tmp_addflag=' -i_dynamic -nofor_main' ;; +- ifc* | ifort*) # Intel Fortran compiler ++ ifc* | ifort* | mpif77* | mpif90*) # Intel Fortran compiler + tmp_addflag=' -nofor_main' ;; + lf95*) # Lahey Fortran 8.1 + whole_archive_flag_spec= +@@ -13826,7 +13826,7 @@ + link_all_deplibs=yes + allow_undefined_flag="$_lt_dar_allow_undefined" + case $cc_basename in +- ifort*) _lt_dar_can_shared=yes ;; ++ ifort* | mpif77* | mpif90*) _lt_dar_can_shared=yes ;; + *) _lt_dar_can_shared=$GCC ;; + esac + if test "$_lt_dar_can_shared" = "yes"; then +@@ -16824,7 +16824,7 @@ + link_all_deplibs_CXX=yes + allow_undefined_flag_CXX="$_lt_dar_allow_undefined" + case $cc_basename in +- ifort*) _lt_dar_can_shared=yes ;; ++ ifort* | mpif77* | mpif90*) _lt_dar_can_shared=yes ;; + *) _lt_dar_can_shared=$GCC ;; + esac + if test "$_lt_dar_can_shared" = "yes"; then +@@ -19735,7 +19735,7 @@ + ;; + # icc used to be incompatible with GCC. + # ICC 10 doesn't accept -KPIC any more. +- icc* | ifort*) ++ icc* | mpicc* | ifort* | mpif77* | mpif90*) + lt_prog_compiler_wl_FC='-Wl,' + lt_prog_compiler_pic_FC='-fPIC' + lt_prog_compiler_static_FC='-static' +@@ -20356,11 +20356,11 @@ + # Portland Group f77 and f90 compilers + whole_archive_flag_spec_FC='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' + tmp_addflag=' $pic_flag -Mnomain' ;; +- ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64 ++ ecc*,ia64* | icc*,ia64* | mpicc*,ia64*) # Intel C compiler on ia64 + tmp_addflag=' -i_dynamic' ;; +- efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64 ++ efc*,ia64* | ifort*,ia64* | mpif77*,ia64* | mpif90*,ia64*) # Intel Fortran compiler on ia64 + tmp_addflag=' -i_dynamic -nofor_main' ;; +- ifc* | ifort*) # Intel Fortran compiler ++ ifc* | ifort* | mpif77* | mpif90*) # Intel Fortran compiler + tmp_addflag=' -nofor_main' ;; + lf95*) # Lahey Fortran 8.1 + whole_archive_flag_spec_FC= +@@ -20814,7 +20814,7 @@ + link_all_deplibs_FC=yes + allow_undefined_flag_FC="$_lt_dar_allow_undefined" + case $cc_basename in +- ifort*) _lt_dar_can_shared=yes ;; ++ ifort* | mpif77* | mpif90*) _lt_dar_can_shared=yes ;; + *) _lt_dar_can_shared=$GCC ;; + esac + if test "$_lt_dar_can_shared" = "yes"; then diff --git a/h/HDF5/HDF5-1.8.17-intel-2017a.eb b/h/HDF5/HDF5-1.8.17-intel-2017a.eb new file mode 100644 index 00000000..a9545c9e --- /dev/null +++ b/h/HDF5/HDF5-1.8.17-intel-2017a.eb @@ -0,0 +1,26 @@ +name = 'HDF5' +version = '1.8.17' + +homepage = 'http://www.hdfgroup.org/HDF5/' +description = """HDF5 is a unique technology suite that makes possible the management of + extremely large and complex data collections.""" + +toolchain = {'name': 'intel', 'version': '2017a'} +toolchainopts = {'pic': True, 'usempi': True} + +source_urls = ['http://www.hdfgroup.org/ftp/HDF5/releases/hdf5-%(version)s/src'] +sources = [SOURCELOWER_TAR_GZ] + +patches = [ + 'HDF5-1.8.15_configure_intel.patch', + 'configure_libtool.patch', +] + +buildopts = 'CXXFLAGS="$CXXFLAGS -DMPICH_IGNORE_CXX_SEEK"' + +dependencies = [ + ('zlib', '1.2.11'), + ('Szip', '2.1'), +] + +moduleclass = 'data' diff --git a/h/HMMER/HMMER-3.0-goalf-1.1.0-no-OFED.eb b/h/HMMER/HMMER-3.0-goalf-1.1.0-no-OFED.eb new file mode 100644 index 00000000..9f844f7f --- /dev/null +++ b/h/HMMER/HMMER-3.0-goalf-1.1.0-no-OFED.eb @@ -0,0 +1,40 @@ +## +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# +# Copyright:: Copyright 2012-2014 Uni.Lu/LCSB, NTUA +# Authors:: Fotis Georgatos +# 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 +## + +easyblock = 'ConfigureMake' + +name = 'HMMER' +version = '3.0' + +homepage = 'http://hmmer.janelia.org/' +description = """HMMER is used for searching sequence databases for homologs of protein sequences, + and for making protein sequence alignments. It implements methods using probabilistic models + called profile hidden Markov models (profile HMMs). Compared to BLAST, FASTA, and other + sequence alignment and database search tools based on older scoring methodology, + HMMER aims to be significantly more accurate and more able to detect remote homologs + because of the strength of its underlying mathematical models. In the past, this strength + came at significant computational expense, but in the new HMMER3 project, HMMER is now + essentially as fast as BLAST.""" + +toolchain = {'name': 'goalf', 'version': '1.1.0-no-OFED'} + +# eg. http://selab.janelia.org/software/hmmer3/3.0/hmmer-3.0-linux-intel-x86_64.tar.gz +versiondir = "hmmer%s" % ".".join(version.split('.')[:-1]) +sources = ['hmmer-%s-linux-intel-x86_64.tar.gz' % version] +source_urls = ['http://selab.janelia.org/software/%s/%s/' % (versiondir, version)] + +sanity_check_paths = { + 'files': ["bin/hmmemit", "bin/hmmsearch", "bin/hmmscan"], + 'dirs': [] +} + +moduleclass = 'bio' diff --git a/h/HMMER/HMMER-3.0-goolf-1.4.10.eb b/h/HMMER/HMMER-3.0-goolf-1.4.10.eb new file mode 100644 index 00000000..ac2ff916 --- /dev/null +++ b/h/HMMER/HMMER-3.0-goolf-1.4.10.eb @@ -0,0 +1,39 @@ +## +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# +# Copyright:: Copyright 2012-2014 Uni.Lu/LCSB, NTUA +# Authors:: Fotis Georgatos +# 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 +## + +easyblock = 'ConfigureMake' + +name = 'HMMER' +version = '3.0' + +homepage = 'http://hmmer.janelia.org/' +description = """HMMER is used for searching sequence databases for homologs of protein sequences, + and for making protein sequence alignments. It implements methods using probabilistic models + called profile hidden Markov models (profile HMMs). Compared to BLAST, FASTA, and other + sequence alignment and database search tools based on older scoring methodology, + HMMER aims to be significantly more accurate and more able to detect remote homologs + because of the strength of its underlying mathematical models. In the past, this strength + came at significant computational expense, but in the new HMMER3 project, HMMER is now + essentially as fast as BLAST.""" +toolchain = {'name': 'goolf', 'version': '1.4.10'} + +# eg. http://selab.janelia.org/software/hmmer3/3.0/hmmer-3.0-linux-intel-x86_64.tar.gz +versiondir = "hmmer%s" % ".".join(version.split('.')[:-1]) +sources = ['hmmer-%s-linux-intel-x86_64.tar.gz' % version] +source_urls = ['http://selab.janelia.org/software/%s/%s/' % (versiondir, version)] + +sanity_check_paths = { + 'files': ["bin/hmmemit", "bin/hmmsearch", "bin/hmmscan"], + 'dirs': [] +} + +moduleclass = 'bio' diff --git a/h/HMMER/HMMER-3.0-ictce-4.0.6.eb b/h/HMMER/HMMER-3.0-ictce-4.0.6.eb new file mode 100644 index 00000000..4f2f846b --- /dev/null +++ b/h/HMMER/HMMER-3.0-ictce-4.0.6.eb @@ -0,0 +1,40 @@ +## +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# +# Copyright:: Copyright 2012-2014 Uni.Lu/LCSB, NTUA +# Authors:: Fotis Georgatos +# 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 +## + +easyblock = 'ConfigureMake' + +name = 'HMMER' +version = '3.0' + +homepage = 'http://hmmer.janelia.org/' +description = """HMMER is used for searching sequence databases for homologs of protein sequences, + and for making protein sequence alignments. It implements methods using probabilistic models + called profile hidden Markov models (profile HMMs). Compared to BLAST, FASTA, and other + sequence alignment and database search tools based on older scoring methodology, + HMMER aims to be significantly more accurate and more able to detect remote homologs + because of the strength of its underlying mathematical models. In the past, this strength + came at significant computational expense, but in the new HMMER3 project, HMMER is now + essentially as fast as BLAST.""" + +toolchain = {'version': '4.0.6', 'name': 'ictce'} + +# eg. http://selab.janelia.org/software/hmmer3/3.0/hmmer-3.0-linux-intel-x86_64.tar.gz +versiondir = "hmmer%s" % ".".join(version.split('.')[:-1]) +sources = ['hmmer-%s-linux-intel-x86_64.tar.gz' % version] +source_urls = ['http://selab.janelia.org/software/%s/%s/' % (versiondir, version)] + +sanity_check_paths = { + 'files': ["bin/hmmemit", "bin/hmmsearch", "bin/hmmscan"], + 'dirs': [] +} + +moduleclass = 'bio' diff --git a/h/HMMER/HMMER-3.0-ictce-5.3.0.eb b/h/HMMER/HMMER-3.0-ictce-5.3.0.eb new file mode 100644 index 00000000..52d15716 --- /dev/null +++ b/h/HMMER/HMMER-3.0-ictce-5.3.0.eb @@ -0,0 +1,41 @@ +## +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# +# Copyright:: Copyright 2012-2014 Uni.Lu/LCSB, NTUA +# Authors:: Fotis Georgatos +# 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 +## + +easyblock = 'ConfigureMake' + +name = 'HMMER' +version = '3.0' + +homepage = 'http://hmmer.janelia.org/' +description = """HMMER is used for searching sequence databases for homologs of protein sequences, + and for making protein sequence alignments. It implements methods using probabilistic models + called profile hidden Markov models (profile HMMs). Compared to BLAST, FASTA, and other + sequence alignment and database search tools based on older scoring methodology, + HMMER aims to be significantly more accurate and more able to detect remote homologs + because of the strength of its underlying mathematical models. In the past, this strength + came at significant computational expense, but in the new HMMER3 project, HMMER is now + essentially as fast as BLAST.""" + + +toolchain = {'name': 'ictce', 'version': '5.3.0'} + +# eg. http://selab.janelia.org/software/hmmer3/3.0/hmmer-3.0-linux-intel-x86_64.tar.gz +versiondir = "hmmer%s" % ".".join(version.split('.')[:-1]) +sources = ['hmmer-%s-linux-intel-x86_64.tar.gz' % version] +source_urls = ['http://selab.janelia.org/software/%s/%s/' % (versiondir, version)] + +sanity_check_paths = { + 'files': ["bin/hmmemit", "bin/hmmsearch", "bin/hmmscan"], + 'dirs': [] +} + +moduleclass = 'bio' diff --git a/h/HMMER/HMMER-3.1b1-goolf-1.4.10.eb b/h/HMMER/HMMER-3.1b1-goolf-1.4.10.eb new file mode 100644 index 00000000..7b6ea628 --- /dev/null +++ b/h/HMMER/HMMER-3.1b1-goolf-1.4.10.eb @@ -0,0 +1,44 @@ +## +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# +# Copyright:: Copyright 2012-2014 Uni.Lu/LCSB, NTUA +# Authors:: Nils Christian , Fotis Georgatos +# 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 +## + +easyblock = 'ConfigureMake' + +name = 'HMMER' +version = '3.1b1' + +homepage = 'http://hmmer.janelia.org/' +description = """HMMER is used for searching sequence databases for homologs of protein sequences, + and for making protein sequence alignments. It implements methods using probabilistic models + called profile hidden Markov models (profile HMMs). Compared to BLAST, FASTA, and other + sequence alignment and database search tools based on older scoring methodology, + HMMER aims to be significantly more accurate and more able to detect remote homologs + because of the strength of its underlying mathematical models. In the past, this strength + came at significant computational expense, but in the new HMMER3 project, HMMER is now + essentially as fast as BLAST.""" + +toolchain = {'name': 'goolf', 'version': '1.4.10'} + +sources = ['hmmer-%(version)s-linux-intel-x86_64.tar.gz'] +source_urls = ['http://selab.janelia.org/software/hmmer%(version_major)s/%(version)s/'] +patches = ['hmmer-%(version)s_link-LIBS-utests.patch'] + +installopts = ' && cd easel && make install' + +sanity_check_paths = { + 'files': ["bin/%s" % x for x in ["hmmemit", "hmmsearch", "hmmscan", + "esl-alimap", "esl-cluster", "esl-mask"]], + 'dirs': [] +} + +runtest = 'check' + +moduleclass = 'bio' diff --git a/h/HMMER/HMMER-3.1b1-ictce-5.3.0.eb b/h/HMMER/HMMER-3.1b1-ictce-5.3.0.eb new file mode 100644 index 00000000..65bc9903 --- /dev/null +++ b/h/HMMER/HMMER-3.1b1-ictce-5.3.0.eb @@ -0,0 +1,44 @@ +## +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# +# Copyright:: Copyright 2012-2014 Uni.Lu/LCSB, NTUA +# Authors:: Nils Christian , Fotis Georgatos +# 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 +## + +easyblock = 'ConfigureMake' + +name = 'HMMER' +version = '3.1b1' + +homepage = 'http://hmmer.janelia.org/' +description = """HMMER is used for searching sequence databases for homologs of protein sequences, + and for making protein sequence alignments. It implements methods using probabilistic models + called profile hidden Markov models (profile HMMs). Compared to BLAST, FASTA, and other + sequence alignment and database search tools based on older scoring methodology, + HMMER aims to be significantly more accurate and more able to detect remote homologs + because of the strength of its underlying mathematical models. In the past, this strength + came at significant computational expense, but in the new HMMER3 project, HMMER is now + essentially as fast as BLAST.""" + +toolchain = {'name': 'ictce', 'version': '5.3.0'} + +sources = ['hmmer-%(version)s-linux-intel-x86_64.tar.gz'] +source_urls = ['http://selab.janelia.org/software/hmmer%(version_major)s/%(version)s/'] +patches = ['hmmer-%(version)s_link-LIBS-utests.patch'] + +installopts = ' && cd easel && make install' + +sanity_check_paths = { + 'files': ["bin/%s" % x for x in ["hmmemit", "hmmsearch", "hmmscan", + "esl-alimap", "esl-cluster", "esl-mask"]], + 'dirs': [] +} + +runtest = 'check' + +moduleclass = 'bio' diff --git a/h/HMMER/HMMER-3.1b1-ictce-6.2.5.eb b/h/HMMER/HMMER-3.1b1-ictce-6.2.5.eb new file mode 100644 index 00000000..9a8eaafd --- /dev/null +++ b/h/HMMER/HMMER-3.1b1-ictce-6.2.5.eb @@ -0,0 +1,44 @@ +## +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# +# Copyright:: Copyright 2012-2014 Uni.Lu/LCSB, NTUA +# Authors:: Nils Christian , Fotis Georgatos +# 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 +## + +easyblock = 'ConfigureMake' + +name = 'HMMER' +version = '3.1b1' + +homepage = 'http://hmmer.janelia.org/' +description = """HMMER is used for searching sequence databases for homologs of protein sequences, + and for making protein sequence alignments. It implements methods using probabilistic models + called profile hidden Markov models (profile HMMs). Compared to BLAST, FASTA, and other + sequence alignment and database search tools based on older scoring methodology, + HMMER aims to be significantly more accurate and more able to detect remote homologs + because of the strength of its underlying mathematical models. In the past, this strength + came at significant computational expense, but in the new HMMER3 project, HMMER is now + essentially as fast as BLAST.""" + +toolchain = {'name': 'ictce', 'version': '6.2.5'} + +sources = ['hmmer-%(version)s-linux-intel-x86_64.tar.gz'] +source_urls = ['http://selab.janelia.org/software/hmmer%(version_major)s/%(version)s/'] +patches = ['hmmer-%(version)s_link-LIBS-utests.patch'] + +installopts = ' && cd easel && make install' + +sanity_check_paths = { + 'files': ["bin/%s" % x for x in ["hmmemit", "hmmsearch", "hmmscan", + "esl-alimap", "esl-cluster", "esl-mask"]], + 'dirs': [] +} + +runtest = 'check' + +moduleclass = 'bio' diff --git a/h/HMMER/HMMER-3.1b2-foss-2016a.eb b/h/HMMER/HMMER-3.1b2-foss-2016a.eb new file mode 100644 index 00000000..35be5919 --- /dev/null +++ b/h/HMMER/HMMER-3.1b2-foss-2016a.eb @@ -0,0 +1,43 @@ +## +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# +# Copyright:: Copyright 2012-2014 Uni.Lu/LCSB, NTUA +# Authors:: Nils Christian , Fotis Georgatos +# 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 +## + +easyblock = 'ConfigureMake' + +name = 'HMMER' +version = '3.1b2' + +homepage = 'http://hmmer.janelia.org/' +description = """HMMER is used for searching sequence databases for homologs of protein sequences, + and for making protein sequence alignments. It implements methods using probabilistic models + called profile hidden Markov models (profile HMMs). Compared to BLAST, FASTA, and other + sequence alignment and database search tools based on older scoring methodology, + HMMER aims to be significantly more accurate and more able to detect remote homologs + because of the strength of its underlying mathematical models. In the past, this strength + came at significant computational expense, but in the new HMMER3 project, HMMER is now + essentially as fast as BLAST.""" + +toolchain = {'name': 'foss', 'version': '2016a'} + +sources = ['hmmer-%(version)s-linux-intel-x86_64.tar.gz'] +source_urls = ['http://selab.janelia.org/software/hmmer%(version_major)s/%(version)s/'] + +installopts = ' && cd easel && make install' + +sanity_check_paths = { + 'files': ["bin/%s" % x for x in ["hmmemit", "hmmsearch", "hmmscan", + "esl-alimap", "esl-cluster", "esl-mask"]], + 'dirs': [] +} + +runtest = 'check' + +moduleclass = 'bio' diff --git a/h/HMMER/HMMER-3.1b2-intel-2015a.eb b/h/HMMER/HMMER-3.1b2-intel-2015a.eb new file mode 100644 index 00000000..36707aa8 --- /dev/null +++ b/h/HMMER/HMMER-3.1b2-intel-2015a.eb @@ -0,0 +1,43 @@ +## +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# +# Copyright:: Copyright 2012-2014 Uni.Lu/LCSB, NTUA +# Authors:: Nils Christian , Fotis Georgatos +# 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 +## + +easyblock = 'ConfigureMake' + +name = 'HMMER' +version = '3.1b2' + +homepage = 'http://hmmer.janelia.org/' +description = """HMMER is used for searching sequence databases for homologs of protein sequences, + and for making protein sequence alignments. It implements methods using probabilistic models + called profile hidden Markov models (profile HMMs). Compared to BLAST, FASTA, and other + sequence alignment and database search tools based on older scoring methodology, + HMMER aims to be significantly more accurate and more able to detect remote homologs + because of the strength of its underlying mathematical models. In the past, this strength + came at significant computational expense, but in the new HMMER3 project, HMMER is now + essentially as fast as BLAST.""" + +toolchain = {'name': 'intel', 'version': '2015a'} + +sources = ['hmmer-%(version)s-linux-intel-x86_64.tar.gz'] +source_urls = ['http://selab.janelia.org/software/hmmer%(version_major)s/%(version)s/'] + +installopts = ' && cd easel && make install' + +sanity_check_paths = { + 'files': ["bin/%s" % x for x in ["hmmemit", "hmmsearch", "hmmscan", + "esl-alimap", "esl-cluster", "esl-mask"]], + 'dirs': [] +} + +runtest = 'check' + +moduleclass = 'bio' diff --git a/h/HPCG/HPCG-2.1-goolf-1.4.10.eb b/h/HPCG/HPCG-2.1-goolf-1.4.10.eb new file mode 100644 index 00000000..06eaecea --- /dev/null +++ b/h/HPCG/HPCG-2.1-goolf-1.4.10.eb @@ -0,0 +1,14 @@ +name = 'HPCG' +version = '2.1' + +homepage = 'https://software.sandia.gov/hpcg' +description = """The HPCG Benchmark project is an effort to create a more relevant metric for ranking HPC systems than + the High Performance LINPACK (HPL) benchmark, that is currently used by the TOP500 benchmark.""" + +toolchain = {'name': 'goolf', 'version': '1.4.10'} +toolchainopts = {'usempi': True, 'openmp': True} + +source_urls = ['https://software.sandia.gov/hpcg/downloads/'] +sources = [SOURCELOWER_TAR_GZ] + +moduleclass = 'math' diff --git a/h/HPCG/HPCG-2.1-ictce-5.5.0.eb b/h/HPCG/HPCG-2.1-ictce-5.5.0.eb new file mode 100644 index 00000000..1d3f7c2d --- /dev/null +++ b/h/HPCG/HPCG-2.1-ictce-5.5.0.eb @@ -0,0 +1,14 @@ +name = 'HPCG' +version = '2.1' + +homepage = 'https://software.sandia.gov/hpcg' +description = """The HPCG Benchmark project is an effort to create a more relevant metric for ranking HPC systems than + the High Performance LINPACK (HPL) benchmark, that is currently used by the TOP500 benchmark.""" + +toolchain = {'name': 'ictce', 'version': '5.5.0'} +toolchainopts = {'usempi': True, 'openmp': True} + +source_urls = ['https://software.sandia.gov/hpcg/downloads/'] +sources = [SOURCELOWER_TAR_GZ] + +moduleclass = 'math' diff --git a/h/HTSlib/HTSlib-1.3-foss-2015g.eb b/h/HTSlib/HTSlib-1.3-foss-2015g.eb new file mode 100644 index 00000000..cd5f9b28 --- /dev/null +++ b/h/HTSlib/HTSlib-1.3-foss-2015g.eb @@ -0,0 +1,27 @@ +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# Author: Pablo Escobar Lopez +# Swiss Institute of Bioinformatics +# Biozentrum - University of Basel + +easyblock = 'ConfigureMake' + +name = 'HTSlib' +version = '1.3' + +homepage = "http://www.htslib.org/" +description = """ A C library for reading/writing high-throughput sequencing data. + This package includes the utilities bgzip and tabix """ + +toolchain = {'name': 'foss', 'version': '2015g'} + +source_urls = ['https://github.com/samtools/%(namelower)s/releases/download/%(version)s/'] +sources = [SOURCELOWER_TAR_BZ2] + +dependencies = [('zlib', '1.2.8')] + +sanity_check_paths = { + 'files': ["bin/bgzip", "bin/tabix", "lib/libhts.%s" % SHLIB_EXT], + 'dirs': [], +} + +moduleclass = 'bio' diff --git a/h/Hadoop/Hadoop-2.7.3-native.eb b/h/Hadoop/Hadoop-2.7.3-native.eb new file mode 100644 index 00000000..9032b730 --- /dev/null +++ b/h/Hadoop/Hadoop-2.7.3-native.eb @@ -0,0 +1,30 @@ +name = 'Hadoop' +version = '2.7.3' +versionsuffix = '-native' + +homepage = 'http://archive.cloudera.com/cdh5/cdh/5/' +description = """Hadoop MapReduce by Cloudera""" + +toolchain = {'name': 'dummy', 'version': ''} + +sources = ['%(namelower)s-%(version)s-src.tar.gz'] +source_urls = ['http://archive.cloudera.com/cdh5/cdh/5/'] + +patches = ['Hadoop-TeraSort-on-local-filesystem.patch'] + +builddependencies = [ + ('Maven', '3.3.9'), + ('protobuf', '2.5.0'), # *must* be this version + ('CMake', '3.7.2'), + ('snappy', '1.1.3', '', ('GCC', '4.9.3-2.25')), +] + +dependencies = [('Java', '1.8.0_121')] + +build_native_libs = True + +extra_native_libs = [('snappy', 'lib/libsnappy.so*')] + +parallel = 1 + +moduleclass = 'tools' diff --git a/h/Harminv/Harminv-1.4-intel-2015b.eb b/h/Harminv/Harminv-1.4-intel-2015b.eb new file mode 100644 index 00000000..0519b1a6 --- /dev/null +++ b/h/Harminv/Harminv-1.4-intel-2015b.eb @@ -0,0 +1,20 @@ +# Built with EasyBuild version 2.1.1 on 2015-08-21_15-12-59 +easyblock = 'ConfigureMake' + +name = 'Harminv' +version = '1.4' + +homepage = 'http://ab-initio.mit.edu/wiki/index.php/Harminv' +description = """Harminv is a free program (and accompanying library) to solve the problem of harmonic inversion - given + a discrete-time, finite-length signal that consists of a sum of finitely-many sinusoids (possibly exponentially decaying) + in a given bandwidth, it determines the frequencies, decay constants, amplitudes, and phases of those sinusoids.""" + +toolchain = {'name': 'intel', 'version': '2015b'} +toolchainopts = {'opt': True, 'unroll': True, 'optarch': True, 'pic': True, 'cstd': 'c99'} + +source_urls = ['http://ab-initio.mit.edu/harminv/'] +sources = [SOURCELOWER_TAR_GZ] + +configopts = "--with-pic --with-blas=mkl_em64t --with-lapack=mkl_em64t --enable-shared" + +moduleclass = 'math' diff --git a/h/Hypre/Hypre-2.10.0b-intel-2015b.eb b/h/Hypre/Hypre-2.10.0b-intel-2015b.eb new file mode 100644 index 00000000..89083a84 --- /dev/null +++ b/h/Hypre/Hypre-2.10.0b-intel-2015b.eb @@ -0,0 +1,22 @@ +name = 'Hypre' +version = '2.10.0b' + +homepage = "https://computation.llnl.gov/casc/linear_solvers/sls_hypre.html" +description = """Hypre is a library for solving large, sparse linear systems of equations on massively parallel computers. + The problems of interest arise in the simulation codes being developed at LLNL and elsewhere + to study physical phenomena in the defense, environmental, energy, and biological sciences.""" + +toolchain = {'name': 'intel', 'version': '2015b'} +toolchainopts = {'pic': True} + +# download via https://computation.llnl.gov/project/linear_solvers/download/hypre-2.10.0b_reg.php +sources = [SOURCELOWER_TAR_GZ] + +start_dir = "src" + +sanity_check_paths = { + 'files': ['lib/libHYPRE.a'], + 'dirs': ['include'] +} + +moduleclass = 'numlib' diff --git a/h/Hypre/Hypre-2.11.1-intel-2017a.eb b/h/Hypre/Hypre-2.11.1-intel-2017a.eb new file mode 100644 index 00000000..4cc2829e --- /dev/null +++ b/h/Hypre/Hypre-2.11.1-intel-2017a.eb @@ -0,0 +1,22 @@ +name = 'Hypre' +version = '2.11.1' + +homepage = "https://computation.llnl.gov/casc/linear_solvers/sls_hypre.html" +description = """Hypre is a library for solving large, sparse linear systems of equations on massively parallel computers. + The problems of interest arise in the simulation codes being developed at LLNL and elsewhere + to study physical phenomena in the defense, environmental, energy, and biological sciences.""" + +toolchain = {'name': 'intel', 'version': '2017a'} +toolchainopts = {'pic': True} + +source_urls = ['https://computation.llnl.gov/project/linear_solvers/download/'] +sources = [SOURCELOWER_TAR_GZ] + +start_dir = 'src' + +sanity_check_paths = { + 'files': ['lib/libHYPRE.a'], + 'dirs': ['include'] +} + +moduleclass = 'numlib' diff --git a/h/hanythingondemand/hanythingondemand-3.0.0-cli.eb b/h/hanythingondemand/hanythingondemand-3.0.0-cli.eb new file mode 100644 index 00000000..3c591a65 --- /dev/null +++ b/h/hanythingondemand/hanythingondemand-3.0.0-cli.eb @@ -0,0 +1,42 @@ +easyblock = 'PythonPackage' + +name = 'hanythingondemand' +version = '3.0.0' +versionsuffix = '-cli' + +homepage = 'https://github.com/hpcugent/hanythingondemand' +description = """HanythingOnDemand (HOD) is a system for provisioning virtual Hadoop clusters over a large physical cluster. +It uses the Torque resource manager to do node allocation.""" + +toolchain = {'name': 'dummy', 'version': ''} + +source_urls = [PYPI_SOURCE] +sources = [SOURCE_TAR_GZ] + +# minimal version for interactive use: just uses system Python (netaddr/netifaces/mpi4py not required) +dependencies = [ + ('pbs_python', '4.6.0'), + ('vsc-base', '2.4.2'), +] + +use_easy_install = True +zipped_egg = True + +# use 'hod' rather than 'hanythingondemand' in module name +modaltsoftname = 'hod' + +options = {'modulename': 'hod'} + +modextravars = { + # site-specific settings, hence commented out + # specify HOD module to use in jobs (*full* HOD installation, not a minimal one) + #'HOD_BATCH_HOD_MODULE': 'hanythingondemand/%(version)s-intel-2015b-Python-2.7.10', + #'HOD_CREATE_HOD_MODULE': 'hanythingondemand/%(version)s-intel-2015b-Python-2.7.10', + # specify location on shared 'scratch' filesystem for HOD working directories + #'HOD_BATCH_WORKDIR': '\$VSC_SCRATCH/hod', + #'HOD_CREATE_WORKDIR': '\$VSC_SCRATCH/hod', +} + +sanity_check_commands = [('hod', '--help'), ('hod', 'dists')] + +moduleclass = 'tools' diff --git a/h/hanythingondemand/hanythingondemand-3.0.1-cli.eb b/h/hanythingondemand/hanythingondemand-3.0.1-cli.eb new file mode 100644 index 00000000..c6c63359 --- /dev/null +++ b/h/hanythingondemand/hanythingondemand-3.0.1-cli.eb @@ -0,0 +1,42 @@ +easyblock = 'PythonPackage' + +name = 'hanythingondemand' +version = '3.0.1' +versionsuffix = '-cli' + +homepage = 'https://github.com/hpcugent/hanythingondemand' +description = """HanythingOnDemand (HOD) is a system for provisioning virtual Hadoop clusters over a large physical cluster. +It uses the Torque resource manager to do node allocation.""" + +toolchain = {'name': 'dummy', 'version': ''} + +source_urls = [PYPI_SOURCE] +sources = [SOURCE_TAR_GZ] + +# minimal version for interactive use: just uses system Python (netaddr/netifaces/mpi4py not required) +dependencies = [ + ('pbs_python', '4.6.0'), + ('vsc-base', '2.4.2'), +] + +use_easy_install = True +zipped_egg = True + +# use 'hod' rather than 'hanythingondemand' in module name +modaltsoftname = 'hod' + +options = {'modulename': 'hod'} + +modextravars = { + # site-specific settings, hence commented out + # specify HOD module to use in jobs (*full* HOD installation, not a minimal one) + #'HOD_BATCH_HOD_MODULE': 'hanythingondemand/%(version)s-intel-2015b-Python-2.7.10', + #'HOD_CREATE_HOD_MODULE': 'hanythingondemand/%(version)s-intel-2015b-Python-2.7.10', + # specify location on shared 'scratch' filesystem for HOD working directories + #'HOD_BATCH_WORKDIR': '\$VSC_SCRATCH/hod', + #'HOD_CREATE_WORKDIR': '\$VSC_SCRATCH/hod', +} + +sanity_check_commands = [('hod', '--help'), ('hod', 'dists')] + +moduleclass = 'tools' diff --git a/h/hanythingondemand/hanythingondemand-3.0.2-cli.eb b/h/hanythingondemand/hanythingondemand-3.0.2-cli.eb new file mode 100644 index 00000000..a6a417a8 --- /dev/null +++ b/h/hanythingondemand/hanythingondemand-3.0.2-cli.eb @@ -0,0 +1,42 @@ +easyblock = 'PythonPackage' + +name = 'hanythingondemand' +version = '3.0.2' +versionsuffix = '-cli' + +homepage = 'https://github.com/hpcugent/hanythingondemand' +description = """HanythingOnDemand (HOD) is a system for provisioning virtual Hadoop clusters over a large physical cluster. +It uses the Torque resource manager to do node allocation.""" + +toolchain = {'name': 'dummy', 'version': ''} + +source_urls = [PYPI_SOURCE] +sources = [SOURCE_TAR_GZ] + +# minimal version for interactive use: just uses system Python (netaddr/netifaces/mpi4py not required) +dependencies = [ + ('pbs_python', '4.6.0'), + ('vsc-base', '2.4.2'), +] + +use_easy_install = True +zipped_egg = True + +# use 'hod' rather than 'hanythingondemand' in module name +modaltsoftname = 'hod' + +options = {'modulename': 'hod'} + +modextravars = { + # site-specific settings, hence commented out + # specify HOD module to use in jobs (*full* HOD installation, not a minimal one) + #'HOD_BATCH_HOD_MODULE': 'hanythingondemand/%(version)s-intel-2015b-Python-2.7.10', + #'HOD_CREATE_HOD_MODULE': 'hanythingondemand/%(version)s-intel-2015b-Python-2.7.10', + # specify location on shared 'scratch' filesystem for HOD working directories + #'HOD_BATCH_WORKDIR': '\$VSC_SCRATCH/hod', + #'HOD_CREATE_WORKDIR': '\$VSC_SCRATCH/hod', +} + +sanity_check_commands = [('hod', '--help'), ('hod', 'dists')] + +moduleclass = 'tools' diff --git a/h/hanythingondemand/hanythingondemand-3.0.3-cli.eb b/h/hanythingondemand/hanythingondemand-3.0.3-cli.eb new file mode 100644 index 00000000..996a654c --- /dev/null +++ b/h/hanythingondemand/hanythingondemand-3.0.3-cli.eb @@ -0,0 +1,42 @@ +easyblock = 'PythonPackage' + +name = 'hanythingondemand' +version = '3.0.3' +versionsuffix = '-cli' + +homepage = 'https://github.com/hpcugent/hanythingondemand' +description = """HanythingOnDemand (HOD) is a system for provisioning virtual Hadoop clusters over a large physical cluster. +It uses the Torque resource manager to do node allocation.""" + +toolchain = {'name': 'dummy', 'version': ''} + +source_urls = [PYPI_SOURCE] +sources = [SOURCE_TAR_GZ] + +# minimal version for interactive use: just uses system Python (netaddr/netifaces/mpi4py not required) +dependencies = [ + ('pbs_python', '4.6.0'), + ('vsc-base', '2.4.2'), +] + +use_easy_install = True +zipped_egg = True + +# use 'hod' rather than 'hanythingondemand' in module name +modaltsoftname = 'hod' + +options = {'modulename': 'hod'} + +modextravars = { + # site-specific settings, hence commented out + # specify HOD module to use in jobs (*full* HOD installation, not a minimal one) + #'HOD_BATCH_HOD_MODULE': 'hanythingondemand/%(version)s-intel-2015b-Python-2.7.10', + #'HOD_CREATE_HOD_MODULE': 'hanythingondemand/%(version)s-intel-2015b-Python-2.7.10', + # specify location on shared 'scratch' filesystem for HOD working directories + #'HOD_BATCH_WORKDIR': '\$VSC_SCRATCH/hod', + #'HOD_CREATE_WORKDIR': '\$VSC_SCRATCH/hod', +} + +sanity_check_commands = [('hod', '--help'), ('hod', 'dists')] + +moduleclass = 'tools' diff --git a/h/hanythingondemand/hanythingondemand-3.0.4-cli.eb b/h/hanythingondemand/hanythingondemand-3.0.4-cli.eb new file mode 100644 index 00000000..754319d6 --- /dev/null +++ b/h/hanythingondemand/hanythingondemand-3.0.4-cli.eb @@ -0,0 +1,42 @@ +easyblock = 'PythonPackage' + +name = 'hanythingondemand' +version = '3.0.4' +versionsuffix = '-cli' + +homepage = 'https://github.com/hpcugent/hanythingondemand' +description = """HanythingOnDemand (HOD) is a system for provisioning virtual Hadoop clusters over a large physical cluster. +It uses the Torque resource manager to do node allocation.""" + +toolchain = {'name': 'dummy', 'version': ''} + +source_urls = [PYPI_SOURCE] +sources = [SOURCE_TAR_GZ] + +# minimal version for interactive use: just uses system Python (netaddr/netifaces/mpi4py not required) +dependencies = [ + ('pbs_python', '4.6.0'), + ('vsc-base', '2.4.2'), +] + +use_easy_install = True +zipped_egg = True + +# use 'hod' rather than 'hanythingondemand' in module name +modaltsoftname = 'hod' + +options = {'modulename': 'hod'} + +modextravars = { + # site-specific settings, hence commented out + # specify HOD module to use in jobs (*full* HOD installation, not a minimal one) + #'HOD_BATCH_HOD_MODULE': 'hanythingondemand/%(version)s-intel-2015b-Python-2.7.10', + #'HOD_CREATE_HOD_MODULE': 'hanythingondemand/%(version)s-intel-2015b-Python-2.7.10', + # specify location on shared 'scratch' filesystem for HOD working directories + #'HOD_BATCH_WORKDIR': '\$VSC_SCRATCH/hod', + #'HOD_CREATE_WORKDIR': '\$VSC_SCRATCH/hod', +} + +sanity_check_commands = [('hod', '--help'), ('hod', 'dists')] + +moduleclass = 'tools' diff --git a/h/hanythingondemand/hanythingondemand-3.1.0-cli.eb b/h/hanythingondemand/hanythingondemand-3.1.0-cli.eb new file mode 100644 index 00000000..2c68b1bf --- /dev/null +++ b/h/hanythingondemand/hanythingondemand-3.1.0-cli.eb @@ -0,0 +1,42 @@ +easyblock = 'PythonPackage' + +name = 'hanythingondemand' +version = '3.1.0' +versionsuffix = '-cli' + +homepage = 'https://github.com/hpcugent/hanythingondemand' +description = """HanythingOnDemand (HOD) is a system for provisioning virtual Hadoop clusters over a large physical cluster. +It uses the Torque resource manager to do node allocation.""" + +toolchain = {'name': 'dummy', 'version': ''} + +source_urls = [PYPI_SOURCE] +sources = [SOURCE_TAR_GZ] + +# minimal version for interactive use: just uses system Python (netaddr/netifaces/mpi4py not required) +dependencies = [ + ('pbs_python', '4.6.0'), + ('vsc-base', '2.5.1'), +] + +use_easy_install = True +zipped_egg = True + +# use 'hod' rather than 'hanythingondemand' in module name +modaltsoftname = 'hod' + +options = {'modulename': 'hod'} + +modextravars = { + # site-specific settings, hence commented out + # specify HOD module to use in jobs (*full* HOD installation, not a minimal one) + #'HOD_BATCH_HOD_MODULE': 'hanythingondemand/%(version)s-intel-2016a-Python-2.7.11', + #'HOD_CREATE_HOD_MODULE': 'hanythingondemand/%(version)s-intel-2016a-Python-2.7.11', + # specify location on shared 'scratch' filesystem for HOD working directories + #'HOD_BATCH_WORKDIR': '\$VSC_SCRATCH/hod', + #'HOD_CREATE_WORKDIR': '\$VSC_SCRATCH/hod', +} + +sanity_check_commands = [('hod', '--help'), ('hod', 'dists')] + +moduleclass = 'tools' diff --git a/h/hanythingondemand/hanythingondemand-3.1.1-cli.eb b/h/hanythingondemand/hanythingondemand-3.1.1-cli.eb new file mode 100644 index 00000000..3f8a48b4 --- /dev/null +++ b/h/hanythingondemand/hanythingondemand-3.1.1-cli.eb @@ -0,0 +1,42 @@ +easyblock = 'PythonPackage' + +name = 'hanythingondemand' +version = '3.1.1' +versionsuffix = '-cli' + +homepage = 'https://github.com/hpcugent/hanythingondemand' +description = """HanythingOnDemand (HOD) is a system for provisioning virtual Hadoop clusters over a large physical cluster. +It uses the Torque resource manager to do node allocation.""" + +toolchain = {'name': 'dummy', 'version': ''} + +source_urls = [PYPI_SOURCE] +sources = [SOURCE_TAR_GZ] + +# minimal version for interactive use: just uses system Python (netaddr/netifaces/mpi4py not required) +dependencies = [ + ('pbs_python', '4.6.0'), + ('vsc-base', '2.5.1'), +] + +use_easy_install = True +zipped_egg = True + +# use 'hod' rather than 'hanythingondemand' in module name +modaltsoftname = 'hod' + +options = {'modulename': 'hod'} + +modextravars = { + # site-specific settings, hence commented out + # specify HOD module to use in jobs (*full* HOD installation, not a minimal one) + #'HOD_BATCH_HOD_MODULE': 'hanythingondemand/%(version)s-intel-2016a-Python-2.7.11', + #'HOD_CREATE_HOD_MODULE': 'hanythingondemand/%(version)s-intel-2016a-Python-2.7.11', + # specify location on shared 'scratch' filesystem for HOD working directories + #'HOD_BATCH_WORKDIR': '\$VSC_SCRATCH/hod', + #'HOD_CREATE_WORKDIR': '\$VSC_SCRATCH/hod', +} + +sanity_check_commands = [('hod', '--help'), ('hod', 'dists')] + +moduleclass = 'tools' diff --git a/h/hanythingondemand/hanythingondemand-3.1.2-cli.eb b/h/hanythingondemand/hanythingondemand-3.1.2-cli.eb new file mode 100644 index 00000000..cb9ae643 --- /dev/null +++ b/h/hanythingondemand/hanythingondemand-3.1.2-cli.eb @@ -0,0 +1,42 @@ +easyblock = 'PythonPackage' + +name = 'hanythingondemand' +version = '3.1.2' +versionsuffix = '-cli' + +homepage = 'https://github.com/hpcugent/hanythingondemand' +description = """HanythingOnDemand (HOD) is a system for provisioning virtual Hadoop clusters over a large physical cluster. +It uses the Torque resource manager to do node allocation.""" + +toolchain = {'name': 'dummy', 'version': ''} + +source_urls = [PYPI_SOURCE] +sources = [SOURCE_TAR_GZ] + +# minimal version for interactive use: just uses system Python (netaddr/netifaces/mpi4py not required) +dependencies = [ + ('pbs_python', '4.6.0'), + ('vsc-base', '2.5.1'), +] + +use_easy_install = True +zipped_egg = True + +# use 'hod' rather than 'hanythingondemand' in module name +modaltsoftname = 'hod' + +options = {'modulename': 'hod'} + +modextravars = { + # site-specific settings, hence commented out + # specify HOD module to use in jobs (*full* HOD installation, not a minimal one) + #'HOD_BATCH_HOD_MODULE': 'hanythingondemand/%(version)s-intel-2016a-Python-2.7.11', + #'HOD_CREATE_HOD_MODULE': 'hanythingondemand/%(version)s-intel-2016a-Python-2.7.11', + # specify location on shared 'scratch' filesystem for HOD working directories + #'HOD_BATCH_WORKDIR': '\$VSC_SCRATCH/hod', + #'HOD_CREATE_WORKDIR': '\$VSC_SCRATCH/hod', +} + +sanity_check_commands = [('hod', '--help'), ('hod', 'dists')] + +moduleclass = 'tools' diff --git a/h/hanythingondemand/hanythingondemand-3.1.3-cli.eb b/h/hanythingondemand/hanythingondemand-3.1.3-cli.eb new file mode 100644 index 00000000..4846e39a --- /dev/null +++ b/h/hanythingondemand/hanythingondemand-3.1.3-cli.eb @@ -0,0 +1,42 @@ +easyblock = 'PythonPackage' + +name = 'hanythingondemand' +version = '3.1.3' +versionsuffix = '-cli' + +homepage = 'https://github.com/hpcugent/hanythingondemand' +description = """HanythingOnDemand (HOD) is a system for provisioning virtual Hadoop clusters over a large physical cluster. +It uses the Torque resource manager to do node allocation.""" + +toolchain = {'name': 'dummy', 'version': ''} + +source_urls = [PYPI_SOURCE] +sources = [SOURCE_TAR_GZ] + +# minimal version for interactive use: just uses system Python (netaddr/netifaces/mpi4py not required) +dependencies = [ + ('pbs_python', '4.6.0'), + ('vsc-base', '2.5.1'), +] + +use_easy_install = True +zipped_egg = True + +# use 'hod' rather than 'hanythingondemand' in module name +modaltsoftname = 'hod' + +options = {'modulename': 'hod'} + +modextravars = { + # site-specific settings, hence commented out + # specify HOD module to use in jobs (*full* HOD installation, not a minimal one) + #'HOD_BATCH_HOD_MODULE': 'hanythingondemand/%(version)s-intel-2016b-Python-2.7.12', + #'HOD_CREATE_HOD_MODULE': 'hanythingondemand/%(version)s-intel-2016b-Python-2.7.12', + # specify location on shared 'scratch' filesystem for HOD working directories + #'HOD_BATCH_WORKDIR': '\$VSC_SCRATCH/hod', + #'HOD_CREATE_WORKDIR': '\$VSC_SCRATCH/hod', +} + +sanity_check_commands = [('hod', '--help'), ('hod', 'dists')] + +moduleclass = 'tools' diff --git a/h/hanythingondemand/hanythingondemand-3.1.4-cli.eb b/h/hanythingondemand/hanythingondemand-3.1.4-cli.eb new file mode 100644 index 00000000..275b2940 --- /dev/null +++ b/h/hanythingondemand/hanythingondemand-3.1.4-cli.eb @@ -0,0 +1,42 @@ +easyblock = 'PythonPackage' + +name = 'hanythingondemand' +version = '3.1.4' +versionsuffix = '-cli' + +homepage = 'https://github.com/hpcugent/hanythingondemand' +description = """HanythingOnDemand (HOD) is a system for provisioning virtual Hadoop clusters over a large physical cluster. +It uses the Torque resource manager to do node allocation.""" + +toolchain = {'name': 'dummy', 'version': ''} + +source_urls = [PYPI_SOURCE] +sources = [SOURCE_TAR_GZ] + +# minimal version for interactive use: just uses system Python (netaddr/netifaces/mpi4py not required) +dependencies = [ + ('pbs_python', '4.6.0'), + ('vsc-base', '2.5.1'), +] + +use_easy_install = True +zipped_egg = True + +# use 'hod' rather than 'hanythingondemand' in module name +modaltsoftname = 'hod' + +options = {'modulename': 'hod'} + +modextravars = { + # site-specific settings, hence commented out + # specify HOD module to use in jobs (*full* HOD installation, not a minimal one) + #'HOD_BATCH_HOD_MODULE': 'hanythingondemand/%(version)s-intel-2016b-Python-2.7.12', + #'HOD_CREATE_HOD_MODULE': 'hanythingondemand/%(version)s-intel-2016b-Python-2.7.12', + # specify location on shared 'scratch' filesystem for HOD working directories + #'HOD_BATCH_WORKDIR': '\$VSC_SCRATCH/hod', + #'HOD_CREATE_WORKDIR': '\$VSC_SCRATCH/hod', +} + +sanity_check_commands = [('hod', '--help'), ('hod', 'dists')] + +moduleclass = 'tools' diff --git a/h/hanythingondemand/hanythingondemand-3.2.0-cli.eb b/h/hanythingondemand/hanythingondemand-3.2.0-cli.eb new file mode 100644 index 00000000..7e255dbc --- /dev/null +++ b/h/hanythingondemand/hanythingondemand-3.2.0-cli.eb @@ -0,0 +1,42 @@ +easyblock = 'PythonPackage' + +name = 'hanythingondemand' +version = '3.2.0' +versionsuffix = '-cli' + +homepage = 'https://github.com/hpcugent/hanythingondemand' +description = """HanythingOnDemand (HOD) is a system for provisioning virtual Hadoop clusters over a large physical cluster. +It uses the Torque resource manager to do node allocation.""" + +toolchain = {'name': 'dummy', 'version': ''} + +source_urls = [PYPI_SOURCE] +sources = [SOURCE_TAR_GZ] + +# minimal version for interactive use: just uses system Python (netaddr/netifaces/mpi4py not required) +dependencies = [ + ('pbs_python', '4.6.0'), + ('vsc-base', '2.5.1'), +] + +use_easy_install = True +zipped_egg = True + +# use 'hod' rather than 'hanythingondemand' in module name +modaltsoftname = 'hod' + +options = {'modulename': 'hod'} + +modextravars = { + # site-specific settings, hence commented out + # specify HOD module to use in jobs (*full* HOD installation, not a minimal one) + #'HOD_BATCH_HOD_MODULE': 'hanythingondemand/%(version)s-intel-2016b-Python-2.7.12', + #'HOD_CREATE_HOD_MODULE': 'hanythingondemand/%(version)s-intel-2016b-Python-2.7.12', + # specify location on shared 'scratch' filesystem for HOD working directories + #'HOD_BATCH_WORKDIR': '\$VSC_SCRATCH/hod', + #'HOD_CREATE_WORKDIR': '\$VSC_SCRATCH/hod', +} + +sanity_check_commands = [('hod', '--help'), ('hod', 'dists')] + +moduleclass = 'tools' diff --git a/h/hwloc/hwloc-1.11.0-GNU-5.1.0-2.25.eb b/h/hwloc/hwloc-1.11.0-GNU-5.1.0-2.25.eb new file mode 100644 index 00000000..a6ea5f1a --- /dev/null +++ b/h/hwloc/hwloc-1.11.0-GNU-5.1.0-2.25.eb @@ -0,0 +1,23 @@ +easyblock = 'ConfigureMake' + +name = 'hwloc' +version = '1.11.0' + +homepage = 'http://www.open-mpi.org/projects/hwloc/' +description = """The Portable Hardware Locality (hwloc) software package provides a portable abstraction + (across OS, versions, architectures, ...) of the hierarchical topology of modern architectures, including + NUMA memory nodes, sockets, shared caches, cores and simultaneous multithreading. It also gathers various + system attributes such as cache and memory information as well as the locality of I/O devices such as + network interfaces, InfiniBand HCAs or GPUs. It primarily aims at helping applications with gathering + information about modern computing hardware so as to exploit it accordingly and efficiently.""" + +toolchain = {'name': 'GNU', 'version': '5.1.0-2.25'} + +dependencies = [('numactl', '2.0.10')] + +configopts = "--enable-libnuma=$EBROOTNUMACTL" + +source_urls = ['http://www.open-mpi.org/software/hwloc/v%(version_major_minor)s/downloads/'] +sources = [SOURCE_TAR_GZ] + +moduleclass = 'system' diff --git a/h/hwloc/hwloc-1.11.4-GCC-6.2.0-2.27.eb b/h/hwloc/hwloc-1.11.4-GCC-6.2.0-2.27.eb new file mode 100644 index 00000000..35ced369 --- /dev/null +++ b/h/hwloc/hwloc-1.11.4-GCC-6.2.0-2.27.eb @@ -0,0 +1,23 @@ +easyblock = 'ConfigureMake' + +name = 'hwloc' +version = '1.11.4' + +homepage = 'http://www.open-mpi.org/projects/hwloc/' +description = """The Portable Hardware Locality (hwloc) software package provides a portable abstraction +(across OS, versions, architectures, ...) of the hierarchical topology of modern architectures, including +NUMA memory nodes, sockets, shared caches, cores and simultaneous multithreading. It also gathers various +system attributes such as cache and memory information as well as the locality of I/O devices such as +network interfaces, InfiniBand HCAs or GPUs. It primarily aims at helping applications with gathering +information about modern computing hardware so as to exploit it accordingly and efficiently.""" + +toolchain = {'name': 'GCC', 'version': '6.2.0-2.27'} + +source_urls = ['http://www.open-mpi.org/software/hwloc/v%(version_major_minor)s/downloads/'] +sources = [SOURCE_TAR_GZ] + +dependencies = [('numactl', '2.0.11')] + +configopts = "--enable-libnuma=$EBROOTNUMACTL" + +moduleclass = 'system' diff --git a/h/hwloc/hwloc-1.11.4-gcccuda-2016.10.eb b/h/hwloc/hwloc-1.11.4-gcccuda-2016.10.eb new file mode 100644 index 00000000..a83862d8 --- /dev/null +++ b/h/hwloc/hwloc-1.11.4-gcccuda-2016.10.eb @@ -0,0 +1,23 @@ +easyblock = 'ConfigureMake' + +name = 'hwloc' +version = '1.11.4' + +homepage = 'http://www.open-mpi.org/projects/hwloc/' +description = """The Portable Hardware Locality (hwloc) software package provides a portable abstraction +(across OS, versions, architectures, ...) of the hierarchical topology of modern architectures, including +NUMA memory nodes, sockets, shared caches, cores and simultaneous multithreading. It also gathers various +system attributes such as cache and memory information as well as the locality of I/O devices such as +network interfaces, InfiniBand HCAs or GPUs. It primarily aims at helping applications with gathering +information about modern computing hardware so as to exploit it accordingly and efficiently.""" + +toolchain = {'name': 'gcccuda', 'version': '2016.10'} + +source_urls = ['http://www.open-mpi.org/software/hwloc/v%(version_major_minor)s/downloads/'] +sources = [SOURCE_TAR_GZ] + +dependencies = [('numactl', '2.0.11')] + +configopts = "--enable-libnuma=$EBROOTNUMACTL" + +moduleclass = 'system' diff --git a/h/hwloc/hwloc-1.11.5-GCC-6.3.0-2.27.eb b/h/hwloc/hwloc-1.11.5-GCC-6.3.0-2.27.eb new file mode 100644 index 00000000..b130fe64 --- /dev/null +++ b/h/hwloc/hwloc-1.11.5-GCC-6.3.0-2.27.eb @@ -0,0 +1,23 @@ +easyblock = 'ConfigureMake' + +name = 'hwloc' +version = '1.11.5' + +homepage = 'http://www.open-mpi.org/projects/hwloc/' +description = """The Portable Hardware Locality (hwloc) software package provides a portable abstraction +(across OS, versions, architectures, ...) of the hierarchical topology of modern architectures, including +NUMA memory nodes, sockets, shared caches, cores and simultaneous multithreading. It also gathers various +system attributes such as cache and memory information as well as the locality of I/O devices such as +network interfaces, InfiniBand HCAs or GPUs. It primarily aims at helping applications with gathering +information about modern computing hardware so as to exploit it accordingly and efficiently.""" + +toolchain = {'name': 'GCC', 'version': '6.3.0-2.27'} + +source_urls = ['http://www.open-mpi.org/software/hwloc/v%(version_major_minor)s/downloads/'] +sources = [SOURCE_TAR_GZ] + +dependencies = [('numactl', '2.0.11')] + +configopts = "--enable-libnuma=$EBROOTNUMACTL" + +moduleclass = 'system' diff --git a/h/hwloc/hwloc-1.5-GCC-4.4.7-system.eb b/h/hwloc/hwloc-1.5-GCC-4.4.7-system.eb new file mode 100644 index 00000000..b0104354 --- /dev/null +++ b/h/hwloc/hwloc-1.5-GCC-4.4.7-system.eb @@ -0,0 +1,28 @@ +easyblock = 'ConfigureMake' + +name = 'hwloc' +version = '1.5' + +homepage = 'http://www.open-mpi.org/projects/hwloc/' +description = """The Portable Hardware Locality (hwloc) software package provides a portable abstraction + (across OS, versions, architectures, ...) of the hierarchical topology of modern architectures, including + NUMA memory nodes, sockets, shared caches, cores and simultaneous multithreading. It also gathers various + system attributes such as cache and memory information as well as the locality of I/O devices such as + network interfaces, InfiniBand HCAs or GPUs. It primarily aims at helping applications with gathering + information about modern computing hardware so as to exploit it accordingly and efficiently.""" + +toolchain = {'name': 'GCC', 'version': '4.4.7-system'} + +# numactl SGI implementation package +osdependencies = ['libnuma'] + +# We are using system package, this easyconfig is just for not breaking +# toolchains system and module creation +skipsteps = ['source', 'patch', 'prepare','configure', 'build', 'test','install'] + +sanity_check_paths = { + 'files': ['/usr/bin/hwloc-assembler'], + 'dirs': ['/usr/share/hwloc'] +} + +moduleclass = 'system' diff --git a/h/hwloc/hwloc-1.8.1-GCC-4.8.3.eb b/h/hwloc/hwloc-1.8.1-GCC-4.8.3.eb new file mode 100644 index 00000000..9a9209b7 --- /dev/null +++ b/h/hwloc/hwloc-1.8.1-GCC-4.8.3.eb @@ -0,0 +1,21 @@ +easyblock = 'ConfigureMake' + +name = 'hwloc' +version = "1.8.1" + +homepage = 'http://www.open-mpi.org/projects/hwloc/' +description = """The Portable Hardware Locality (hwloc) software package provides a portable abstraction + (across OS, versions, architectures, ...) of the hierarchical topology of modern architectures, including + NUMA memory nodes, sockets, shared caches, cores and simultaneous multithreading. It also gathers various + system attributes such as cache and memory information as well as the locality of I/O devices such as + network interfaces, InfiniBand HCAs or GPUs. It primarily aims at helping applications with gathering + information about modern computing hardware so as to exploit it accordingly and efficiently.""" + +toolchain = {'name': 'GCC', 'version': '4.8.3'} + +source_urls = ['http://www.open-mpi.org/software/hwloc/v%(version_major_minor)s/downloads/'] +sources = [SOURCE_TAR_GZ] + +opt = True + +moduleclass = 'system' diff --git a/i/I-TASSER/I-TASSER-4.0.eb b/i/I-TASSER/I-TASSER-4.0.eb new file mode 100644 index 00000000..88b4f2e3 --- /dev/null +++ b/i/I-TASSER/I-TASSER-4.0.eb @@ -0,0 +1,30 @@ +easyblock = "PackedBinary" + +name = "I-TASSER" +version = '4.0' + +homepage = 'http://zhanglab.ccmb.med.umich.edu/I-TASSER/' +description = """I-TASSER is a set of pre-compiled binaries and scripts for protein structure and function +modelling and comparison.""" + +toolchain = {'name': 'dummy', 'version': 'dummy'} + +# Can't download from the web site automatically as registration is required. +# The source code may be downloaded manually from http://zhanglab.ccmb.med.umich.edu. +sources = ['%(name)s%(version)s.tar.bz2'] + +dependencies = [ + ('BLAST', '2.2.26', "-Linux_x86_64"), + ('Java', '1.7.0_80'), +] + +sanity_check_paths = { + 'files': ['I-TASSERmod/runI-TASSER.pl'], + 'dirs': ['bin', 'blast', 'COACH', 'COFACTOR', 'I-TASSERmod', 'PSSpred'], +} + +# You may find it desirable to put this variable in the module file. +# The command to do so has been put here (commented out) as a convenience. +#modextravars = { 'IMINTASSERDB' : '/path/to/databases/I-TASSER/%(version)s' } + +moduleclass = 'bio' diff --git a/i/I-TASSER/I-TASSER-4.2.eb b/i/I-TASSER/I-TASSER-4.2.eb new file mode 100644 index 00000000..fccdce2d --- /dev/null +++ b/i/I-TASSER/I-TASSER-4.2.eb @@ -0,0 +1,30 @@ +easyblock = "PackedBinary" + +name = "I-TASSER" +version = '4.2' + +homepage = 'http://zhanglab.ccmb.med.umich.edu/I-TASSER/' +description = """I-TASSER is a set of pre-compiled binaries and scripts for protein structure and function +modelling and comparison.""" + +toolchain = {'name': 'dummy', 'version': 'dummy'} + +# Can't download from the web site automatically as registration is required. +# The source code may be downloaded manually from http://zhanglab.ccmb.med.umich.edu. +sources = ['%(name)s%(version)s.tar.bz2'] + +dependencies = [ + ('BLAST', '2.2.26', "-Linux_x86_64"), + ('Java', '1.7.0_80'), +] + +sanity_check_paths = { + 'files': ['I-TASSERmod/runI-TASSER.pl'], + 'dirs': ['bin', 'blast', 'COACH', 'COFACTOR', 'I-TASSERmod', 'PSSpred'], +} + +# You may find it desirable to put this variable in the module file. +# The command to do so has been put here (commented out) as a convenience. +#modextravars = { 'IMINTASSERDB' : '/path/to/databases/I-TASSER/%(version)s' } + +moduleclass = 'bio' diff --git a/i/IGV/IGV-2.3.68-Java-1.7.0_80.eb b/i/IGV/IGV-2.3.68-Java-1.7.0_80.eb new file mode 100644 index 00000000..faccbfa2 --- /dev/null +++ b/i/IGV/IGV-2.3.68-Java-1.7.0_80.eb @@ -0,0 +1,38 @@ +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# Author: Pablo Escobar Lopez +# sciCORE - University of Basel +# SIB Swiss Institute of Bioinformatics + +easyblock = 'Tarball' + +name = 'IGV' +version = '2.3.68' + +homepage = 'http://www.broadinstitute.org/software/igv/' +description = """ The Integrative Genomics Viewer (IGV) is a high-performance visualization + tool for interactive exploration of large, integrated genomic datasets. It supports a wide + variety of data types, including array-based and next-generation sequence data, and genomic annotations. """ + +toolchain = {'name': 'dummy', 'version': ''} + +source_urls = ['http://data.broadinstitute.org/igv/projects/downloads/'] +sources = ['%(name)s_%(version)s.zip'] + +java = 'Java' +javaver = '1.7.0_80' +versionsuffix = '-%s-%s' % (java, javaver) +dependencies = [(java, javaver)] + +# add the installation dir to PATH +modextrapaths = { + 'PATH': '', +} + +modloadmsg = """ To execute IGV run igv.sh """ + +sanity_check_paths = { + 'files': ["igv.sh"], + 'dirs': [], +} + +moduleclass = 'bio' diff --git a/i/IMB/IMB-4.1-foss-2016a.eb b/i/IMB/IMB-4.1-foss-2016a.eb new file mode 100644 index 00000000..09fb6755 --- /dev/null +++ b/i/IMB/IMB-4.1-foss-2016a.eb @@ -0,0 +1,30 @@ +easyblock = 'MakeCp' + +name = 'IMB' +version = '4.1' + +homepage = 'https://software.intel.com/en-us/articles/intel-mpi-benchmarks' +description = """ +The Intel® MPI Benchmarks perform a set of MPI performance measurements for point-to-point +and global communication operations for a range of message sizes. +""" + +toolchain = {'name': 'foss', 'version': '2016a'} + +sources = ['%(name)s_%(version)s.tgz'] +source_urls = ['https://software.intel.com/sites/default/files/managed/a3/b2/'] + +start_dir = 'src' +prebuildopts = 'export MPI_HOME=$EBROOTOPENMPI && ' +buildopts = "-f make_mpich MPI_HOME=$EBROOTOPENMPI" + +parallel = 1 + +files_to_copy = [(['src/IMB-*'], 'bin'), (['doc/IMB_Users_Guide.pdf'], 'doc')] + +sanity_check_paths = { + 'files': ['bin/%s' % binfile for binfile in ['IMB-RMA', 'IMB-EXT', 'IMB-NBC', 'IMB-MPI1']], + 'dirs': ['bin','doc'] +} + +moduleclass = 'perf' diff --git a/i/IOR/IOR-3.0.1-foss-2016a-mpiio.eb b/i/IOR/IOR-3.0.1-foss-2016a-mpiio.eb new file mode 100644 index 00000000..521eb6e8 --- /dev/null +++ b/i/IOR/IOR-3.0.1-foss-2016a-mpiio.eb @@ -0,0 +1,36 @@ +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# Author: Pablo Escobar Lopez +# Swiss Institute of Bioinformatics +# Biozentrum - University of Basel + +easyblock = 'ConfigureMake' + +name = "IOR" +version = "3.0.1" +versionsuffix = "-mpiio" + +homepage = 'https://github.com/chaos/ior' +description = """ The IOR software is used for benchmarking parallel file systems using POSIX, MPIIO, + or HDF5 interfaces. """ + +toolchain = {'name': 'foss', 'version': '2016a' } + +source_urls = [('https://github.com/chaos/ior/archive/')] +sources = ['%(version)s.tar.gz'] + +# configure opts listed below +# --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] +# --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) +# --with-lustre support configurable Lustre striping values [default=check] +# --with-posix support IO with POSIX backend [default=yes] +# --with-mpiio support IO with MPI-IO backend [default=yes] +# --with-hdf5 support IO with HDF5 backend [default=no] +# --with-ncmpi support IO with NCMPI backend [default=no] +preconfigopts = "./bootstrap &&" + +sanity_check_paths = { + 'files': ["bin/ior"], + 'dirs': ["share"] +} + +moduleclass = 'tools' diff --git a/i/IOzone/IOzone-3.434-foss-2016a.eb b/i/IOzone/IOzone-3.434-foss-2016a.eb new file mode 100644 index 00000000..8bd48f9c --- /dev/null +++ b/i/IOzone/IOzone-3.434-foss-2016a.eb @@ -0,0 +1,35 @@ +easyblock = 'MakeCp' + +name = 'IOzone' +version = '3.434' + +homepage = 'http://www.iozone.org/' +description = """ +IOzone is a filesystem benchmark tool. The benchmark generates and measures a variety of file operations. Iozone has been ported + to many machines and runs under many operating systems. +""" + +toolchain = {'name': 'foss', 'version': '2016a'} + +sources = ['%(namelower)s%(version_major)s_%(version_minor)s.tar'] +source_urls = ['http://www.iozone.org/src/current/'] + +prebuildopts = 'cd src/current &&' +buildopts = 'linux-AMD64' + +files_to_copy = [ + (['src/current/iozone'], 'bin'), + (['src/current/%s' % docfile for docfile in ['gengnuplot.sh','report.pl','Changes.txt']],'share/doc'), + (['src/current/%s' % docfile for docfile in ['gengnuplot.sh','Generate_Graphs','gnu3d.dem']],'share'), + (['docs/iozone.1'], 'share/man/man1'), + (['docs/%s' % docfile for docfile in ['IOzone_msword_98.doc','IOzone_msword_98.pdf','Iozone_ps.gz','Run_rules.doc']], + 'share/doc'), +] + + +sanity_check_paths = { + 'files': ['bin/iozone'], + 'dirs': ['bin','share/doc','share/man'] +} + +moduleclass = 'tools' diff --git a/i/IPython/IPython-4.2.0-goolf-1.7.20-Python-2.7.11.eb b/i/IPython/IPython-4.2.0-goolf-1.7.20-Python-2.7.11.eb new file mode 100644 index 00000000..4cb75395 --- /dev/null +++ b/i/IPython/IPython-4.2.0-goolf-1.7.20-Python-2.7.11.eb @@ -0,0 +1,148 @@ +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# Author: Pablo Escobar Lopez +# sciCORE - University of Basel +# SIB Swiss Institute of Bioinformatics + +easyblock = 'Bundle' + +name = 'IPython' +version = '4.2.0' +versionsuffix = '-Python-%(pyver)s' + +homepage = 'http://ipython.org/index.html' +description = """IPython provides a rich architecture for interactive computing with: + Powerful interactive shells (terminal and Qt-based). + A browser-based notebook with support for code, text, mathematical expressions, inline plots and other rich media. + Support for interactive data visualization and use of GUI toolkits. + Flexible, embeddable interpreters to load into your own projects. + Easy to use, high performance tools for parallel computing.""" + +toolchain = {'name': 'goolf', 'version': '1.7.20'} + +dependencies = [ + ('Python', '2.7.11'), + ('PyZMQ', '15.2.0', '%s-zmq4' % versionsuffix), + ('testpath', '0.3', versionsuffix), +] + +# this is a bundle of Python packages +exts_defaultclass = 'PythonPackage' +exts_filter = ("python -c 'import %(ext_name)s'", '') + +exts_list = [ + ('pysqlite', '2.8.2', { + 'modulename': 'pysqlite2', + 'source_urls': ['https://pypi.python.org/packages/source/p/pysqlite/'], + }), + ('requests', '2.10.0', { + 'source_urls': ['https://pypi.python.org/packages/source/r/requests/'], + }), + ('nbformat', '4.0.1', { + 'source_urls': ['https://pypi.python.org/packages/source/n/nbformat/'], + }), + ('Pygments', '2.1.3', { + 'source_urls': ['https://pypi.python.org/packages/source/P/Pygments/'], + }), + ('singledispatch', '3.4.0.3', { + 'source_urls': ['https://pypi.python.org/packages/source/s/singledispatch/'], + }), + ('backports.ssl_match_hostname', '3.5.0.1', { + 'source_urls': ['https://pypi.python.org/packages/source/b/backports.ssl_match_hostname/'], + }), + ('certifi', '2016.2.28', { + 'source_urls': ['https://pypi.python.org/packages/source/c/certifi/'], + }), + ('backports_abc', '0.4', { + 'source_urls': ['https://pypi.python.org/packages/source/b/backports_abc/'], + }), + ('tornado', '4.3', { + 'source_urls': ['https://pypi.python.org/packages/source/t/tornado/'], + }), + ('MarkupSafe', '0.23', { + 'source_urls': ['https://pypi.python.org/packages/source/M/MarkupSafe/'], + 'modulename': 'markupsafe', + }), + ('Jinja2', '2.8', { + 'source_urls': ['https://pypi.python.org/packages/source/J/Jinja2/'], + }), + ('vcversioner', '2.16.0.0', { + 'source_urls': ['https://pypi.python.org/packages/source/v/vcversioner/'], + }), + ('jupyter_client', '4.2.2', { + 'source_urls': ['https://pypi.python.org/packages/source/j/jupyter_client/'], + }), + ('functools32', '3.2.3-2', { + 'source_urls': ['https://pypi.python.org/packages/source/f/functools32/'], + }), + ('jsonschema', '2.5.1', { + 'source_urls': ['https://pypi.python.org/packages/source/j/jsonschema/'], + }), + ('mistune', '0.7.2', { + 'source_urls': ['https://pypi.python.org/packages/source/m/mistune/'], + }), + ('ptyprocess', '0.5.1', { + 'source_urls': ['https://pypi.python.org/packages/source/p/ptyprocess/'], + }), + ('terminado', '0.6', { + 'source_urls': ['https://pypi.python.org/packages/source/t/terminado/'], + }), + ('setuptools_scm', '1.11.0', { + 'source_urls': ['https://pypi.python.org/packages/source/s/setuptools_scm/'], + 'source_tmpl': 'setuptools_scm-%(version)s.tar.gz', + }), + ('simplegeneric', '0.8.1', { + 'source_urls': ['https://pypi.python.org/packages/source/s/simplegeneric/'], + 'source_tmpl': 'simplegeneric-%(version)s.zip', + }), + ('path.py', '8.1.2', { + 'source_urls': ['https://pypi.python.org/packages/source/p/path.py/'], + 'modulename': 'path', + }), + ('ipython_genutils', '0.1.0', { + 'source_urls': ['https://pypi.python.org/packages/source/i/ipython_genutils/'], + }), + ('pathlib2', '2.1.0', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pathlib2/'], + }), + ('pickleshare', '0.7.2', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pickleshare/'], + }), + ('traitlets', '4.2.1', { + 'source_urls': ['https://pypi.python.org/packages/source/t/traitlets/'], + }), + ('notebook', '4.2.0', { + 'source_urls': ['https://pypi.python.org/packages/source/n/notebook/'], + }), + ('jupyter_core', '4.1.0', { + 'source_urls': ['https://pypi.python.org/packages/source/j/jupyter_core/'], + }), + ('ipykernel', '4.3.1', { + 'source_urls': ['https://pypi.python.org/packages/source/i/ipykernel/'], + }), + ('pexpect', '4.0.1', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pexpect/'], + }), + ('backports.shutil_get_terminal_size', '1.0.0', { + 'source_urls': ['https://pypi.python.org/packages/source/b/backports.shutil_get_terminal_size/'], + }), + ('ipython', version, { + 'source_urls': ['https://pypi.python.org/packages/source/i/ipython/'], + 'modulename': 'IPython', + }), +] + +modextrapaths = {'PYTHONPATH': ['lib/python%(pyshortver)s/site-packages']} + +sanity_check_paths = { + 'files': ['bin/ipython'], + 'dirs': ['lib/python%(pyshortver)s/site-packages/IPython'], +} + +sanity_check_commands = [ + ('ipython -h', ''), + ('ipython notebook --help', ''), + ('iptest', ''), + ('iptest2', ''), +] + +moduleclass = 'tools' diff --git a/i/IPython/IPython-4.2.0-intel-2016a-Python-2.7.11.eb b/i/IPython/IPython-4.2.0-intel-2016a-Python-2.7.11.eb new file mode 100644 index 00000000..0626eb2c --- /dev/null +++ b/i/IPython/IPython-4.2.0-intel-2016a-Python-2.7.11.eb @@ -0,0 +1,148 @@ +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# Author: Pablo Escobar Lopez +# sciCORE - University of Basel +# SIB Swiss Institute of Bioinformatics + +easyblock = 'Bundle' + +name = 'IPython' +version = '4.2.0' +versionsuffix = '-Python-%(pyver)s' + +homepage = 'http://ipython.org/index.html' +description = """IPython provides a rich architecture for interactive computing with: + Powerful interactive shells (terminal and Qt-based). + A browser-based notebook with support for code, text, mathematical expressions, inline plots and other rich media. + Support for interactive data visualization and use of GUI toolkits. + Flexible, embeddable interpreters to load into your own projects. + Easy to use, high performance tools for parallel computing.""" + +toolchain = {'name': 'intel', 'version': '2016a'} + +dependencies = [ + ('Python', '2.7.11'), + ('PyZMQ', '15.2.0', '%s-zmq4' % versionsuffix), + ('testpath', '0.3', versionsuffix), +] + +# this is a bundle of Python packages +exts_defaultclass = 'PythonPackage' +exts_filter = ("python -c 'import %(ext_name)s'", '') + +exts_list = [ + ('pysqlite', '2.8.2', { + 'modulename': 'pysqlite2', + 'source_urls': ['https://pypi.python.org/packages/source/p/pysqlite/'], + }), + ('requests', '2.10.0', { + 'source_urls': ['https://pypi.python.org/packages/source/r/requests/'], + }), + ('nbformat', '4.0.1', { + 'source_urls': ['https://pypi.python.org/packages/source/n/nbformat/'], + }), + ('Pygments', '2.1.3', { + 'source_urls': ['https://pypi.python.org/packages/source/P/Pygments/'], + }), + ('singledispatch', '3.4.0.3', { + 'source_urls': ['https://pypi.python.org/packages/source/s/singledispatch/'], + }), + ('backports.ssl_match_hostname', '3.5.0.1', { + 'source_urls': ['https://pypi.python.org/packages/source/b/backports.ssl_match_hostname/'], + }), + ('certifi', '2016.2.28', { + 'source_urls': ['https://pypi.python.org/packages/source/c/certifi/'], + }), + ('backports_abc', '0.4', { + 'source_urls': ['https://pypi.python.org/packages/source/b/backports_abc/'], + }), + ('tornado', '4.3', { + 'source_urls': ['https://pypi.python.org/packages/source/t/tornado/'], + }), + ('MarkupSafe', '0.23', { + 'source_urls': ['https://pypi.io/packages/source/M/MarkupSafe/'], + 'modulename': 'markupsafe', + }), + ('Jinja2', '2.8', { + 'source_urls': ['https://pypi.python.org/packages/source/J/Jinja2/'], + }), + ('vcversioner', '2.16.0.0', { + 'source_urls': ['https://pypi.python.org/packages/source/v/vcversioner/'], + }), + ('jupyter_client', '4.2.2', { + 'source_urls': ['https://pypi.python.org/packages/source/j/jupyter_client/'], + }), + ('functools32', '3.2.3-2', { + 'source_urls': ['https://pypi.python.org/packages/source/f/functools32/'], + }), + ('jsonschema', '2.5.1', { + 'source_urls': ['https://pypi.python.org/packages/source/j/jsonschema/'], + }), + ('mistune', '0.7.2', { + 'source_urls': ['https://pypi.python.org/packages/source/m/mistune/'], + }), + ('ptyprocess', '0.5.1', { + 'source_urls': ['https://pypi.python.org/packages/source/p/ptyprocess/'], + }), + ('terminado', '0.6', { + 'source_urls': ['https://pypi.python.org/packages/source/t/terminado/'], + }), + ('setuptools_scm', '1.11.0', { + 'source_urls': ['https://pypi.python.org/packages/source/s/setuptools_scm/'], + 'source_tmpl': 'setuptools_scm-%(version)s.tar.gz', + }), + ('simplegeneric', '0.8.1', { + 'source_urls': ['https://pypi.python.org/packages/source/s/simplegeneric/'], + 'source_tmpl': 'simplegeneric-%(version)s.zip', + }), + ('path.py', '8.1.2', { + 'source_urls': ['https://pypi.python.org/packages/source/p/path.py/'], + 'modulename': 'path', + }), + ('ipython_genutils', '0.1.0', { + 'source_urls': ['https://pypi.python.org/packages/source/i/ipython_genutils/'], + }), + ('pathlib2', '2.1.0', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pathlib2/'], + }), + ('pickleshare', '0.7.2', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pickleshare/'], + }), + ('traitlets', '4.2.1', { + 'source_urls': ['https://pypi.python.org/packages/source/t/traitlets/'], + }), + ('notebook', '4.2.0', { + 'source_urls': ['https://pypi.python.org/packages/source/n/notebook/'], + }), + ('jupyter_core', '4.1.0', { + 'source_urls': ['https://pypi.python.org/packages/source/j/jupyter_core/'], + }), + ('ipykernel', '4.3.1', { + 'source_urls': ['https://pypi.python.org/packages/source/i/ipykernel/'], + }), + ('pexpect', '4.0.1', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pexpect/'], + }), + ('backports.shutil_get_terminal_size', '1.0.0', { + 'source_urls': ['https://pypi.python.org/packages/source/b/backports.shutil_get_terminal_size/'], + }), + ('ipython', version, { + 'source_urls': ['https://pypi.python.org/packages/source/i/ipython/'], + 'modulename': 'IPython', + }), +] + +modextrapaths = {'PYTHONPATH': ['lib/python%(pyshortver)s/site-packages']} + +sanity_check_paths = { + 'files': ['bin/ipython'], + 'dirs': ['lib/python%(pyshortver)s/site-packages/IPython'], +} + +sanity_check_commands = [ + ('ipython -h', ''), + ('ipython notebook --help', ''), + ('iptest', ''), + ('iptest2', ''), +] + +moduleclass = 'tools' diff --git a/i/IPython/IPython-5.1.0-foss-2016b-Python-2.7.12.eb b/i/IPython/IPython-5.1.0-foss-2016b-Python-2.7.12.eb new file mode 100644 index 00000000..df95bd62 --- /dev/null +++ b/i/IPython/IPython-5.1.0-foss-2016b-Python-2.7.12.eb @@ -0,0 +1,155 @@ +easyblock = 'Bundle' + +name = 'IPython' +version = '5.1.0' +versionsuffix = '-Python-%(pyver)s' + +homepage = 'http://ipython.org/index.html' +description = """IPython provides a rich architecture for interactive computing with: + Powerful interactive shells (terminal and Qt-based). + A browser-based notebook with support for code, text, mathematical expressions, inline plots and other rich media. + Support for interactive data visualization and use of GUI toolkits. + Flexible, embeddable interpreters to load into your own projects. + Easy to use, high performance tools for parallel computing.""" + +toolchain = {'name': 'foss', 'version': '2016b'} + +dependencies = [ + ('Python', '2.7.12'), + ('PyZMQ', '16.0.2', '%s-zmq4' % versionsuffix), + ('testpath', '0.3', versionsuffix), + # required by 'nbconvert', but causes problems w.r.t. 'backports' module... + # see https://github.com/hpcugent/easybuild-easyconfigs/issues/3825 + #('entrypoints', '0.2.2', versionsuffix), + ('path.py', '8.2.1', versionsuffix), + ('prompt-toolkit', '1.0.6', versionsuffix), +] + +# this is a bundle of Python packages +# XXX: the wheel packages (testpath, entrypoints, path.py, prompt-toolkit) have +# to be included as dependencies because bundling wheels does not work +exts_defaultclass = 'PythonPackage' +exts_filter = ("python -c 'import %(ext_name)s'", '') + +exts_list = [ + ('nose', '1.3.7', { + 'source_urls': ['https://pypi.python.org/packages/source/n/nose/'], + }), + ('requests', '2.11.0', { + 'source_urls': ['https://pypi.python.org/packages/source/r/requests/'], + }), + ('nbformat', '4.1.0', { + 'source_urls': ['https://pypi.python.org/packages/source/n/nbformat/'], + }), + ('Pygments', '2.1.3', { + 'source_urls': ['https://pypi.python.org/packages/source/P/Pygments/'], + 'modulename': 'pygments', + }), + ('singledispatch', '3.4.0.3', { + 'source_urls': ['https://pypi.python.org/packages/source/s/singledispatch/'], + }), + ('certifi', '2016.8.8', { + 'source_urls': ['https://pypi.python.org/packages/source/c/certifi/'], + }), + ('backports_abc', '0.4', { + 'source_urls': ['https://pypi.python.org/packages/source/b/backports_abc/'], + }), + ('tornado', '4.4.1', { + 'source_urls': ['https://pypi.python.org/packages/source/t/tornado/'], + }), + ('MarkupSafe', '0.23', { + 'source_urls': ['https://pypi.python.org/packages/source/M/MarkupSafe/'], + 'modulename': 'markupsafe', + }), + ('Jinja2', '2.8', { + 'source_urls': ['https://pypi.python.org/packages/source/J/Jinja2/'], + 'modulename': 'jinja2', + }), + ('jupyter_client', '4.3.0', { + 'source_urls': ['https://pypi.python.org/packages/source/j/jupyter_client/'], + }), + ('functools32', '3.2.3-2', { + 'source_urls': ['https://pypi.python.org/packages/source/f/functools32/'], + }), + ('jsonschema', '2.5.1', { + 'source_urls': ['https://pypi.python.org/packages/source/j/jsonschema/'], + }), + ('mistune', '0.7.3', { + 'source_urls': ['https://pypi.python.org/packages/source/m/mistune/'], + }), + ('ptyprocess', '0.5.1', { + 'source_urls': ['https://pypi.python.org/packages/source/p/ptyprocess/'], + }), + ('terminado', '0.6', { + 'source_urls': ['https://pypi.python.org/packages/source/t/terminado/'], + }), + ('setuptools', '25.2.0', { + 'source_urls': ['https://pypi.python.org/packages/source/s/setuptools/'], + }), + ('simplegeneric', '0.8.1', { + 'source_urls': ['https://pypi.python.org/packages/source/s/simplegeneric/'], + 'source_tmpl': 'simplegeneric-%(version)s.zip', + }), + ('ipython_genutils', '0.1.0', { + 'source_urls': ['https://pypi.python.org/packages/source/i/ipython_genutils/'], + }), + ('pathlib2', '2.1.0', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pathlib2/'], + }), + ('pickleshare', '0.7.4', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pickleshare/'], + }), + ('traitlets', '4.2.2', { + 'source_urls': ['https://pypi.python.org/packages/source/t/traitlets/'], + }), + ('notebook', '4.2.2', { + 'source_urls': ['https://pypi.python.org/packages/source/n/notebook/'], + }), + ('jupyter_core', '4.1.1', { + 'source_urls': ['https://pypi.python.org/packages/source/j/jupyter_core/'], + }), + ('ipykernel', '4.4.1', { + 'source_urls': ['https://pypi.python.org/packages/source/i/ipykernel/'], + }), + ('pexpect', '4.2.0', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pexpect/'], + }), + # disabled because entrypoints on which this depends pull in configparser, which causes problems + # see https://github.com/hpcugent/easybuild-easyconfigs/issues/3825 + #('nbconvert', '4.2.0', { + # 'source_urls': ['https://pypi.python.org/packages/source/n/nbconvert/'], + #}), + ('backports.shutil_get_terminal_size', '1.0.0', { + 'source_urls': ['https://pypi.python.org/packages/source/b/backports.shutil_get_terminal_size/'], + }), + ('decorator', '4.0.10', { + 'source_urls': ['https://pypi.python.org/packages/source/d/decorator/'], + }), + ('ipython', version, { + 'source_urls': ['https://pypi.python.org/packages/source/i/ipython/'], + 'patches': ['ipython-5.0.0_fix-test-paths-symlink.patch'], + 'modulename': 'IPython', + }), + ('ipywidgets', '5.2.2', { + 'source_urls': ['https://pypi.python.org/packages/source/i/ipywidgets/'], + }), + ('widgetsnbextension', '1.2.6', { + 'source_urls': ['https://pypi.python.org/packages/source/w/widgetsnbextension/'], + }), +] + +modextrapaths = {'PYTHONPATH': ['lib/python%(pyshortver)s/site-packages']} + +sanity_check_paths = { + 'files': ['bin/ipython'], + 'dirs': ['lib/python%(pyshortver)s/site-packages/IPython'], +} + +sanity_check_commands = [ + ('ipython -h', ''), + ('ipython notebook --help', ''), + ('iptest', ''), + ('iptest2', ''), +] + +moduleclass = 'tools' diff --git a/i/IPython/IPython-5.1.0-intel-2016b-Python-2.7.12.eb b/i/IPython/IPython-5.1.0-intel-2016b-Python-2.7.12.eb new file mode 100644 index 00000000..d3bbfe47 --- /dev/null +++ b/i/IPython/IPython-5.1.0-intel-2016b-Python-2.7.12.eb @@ -0,0 +1,155 @@ +easyblock = 'Bundle' + +name = 'IPython' +version = '5.1.0' +versionsuffix = '-Python-%(pyver)s' + +homepage = 'http://ipython.org/index.html' +description = """IPython provides a rich architecture for interactive computing with: + Powerful interactive shells (terminal and Qt-based). + A browser-based notebook with support for code, text, mathematical expressions, inline plots and other rich media. + Support for interactive data visualization and use of GUI toolkits. + Flexible, embeddable interpreters to load into your own projects. + Easy to use, high performance tools for parallel computing.""" + +toolchain = {'name': 'intel', 'version': '2016b'} + +dependencies = [ + ('Python', '2.7.12'), + ('PyZMQ', '15.4.0', '%s-zmq4' % versionsuffix), + ('testpath', '0.3', versionsuffix), + # required by 'nbconvert', but causes problems w.r.t. 'backports' module... + # see https://github.com/hpcugent/easybuild-easyconfigs/issues/3825 + #('entrypoints', '0.2.2', versionsuffix), + ('path.py', '8.2.1', versionsuffix), + ('prompt-toolkit', '1.0.6', versionsuffix), +] + +# this is a bundle of Python packages +# XXX: the wheel packages (testpath, entrypoints, path.py, prompt-toolkit) have +# to be included as dependencies because bundling wheels does not work +exts_defaultclass = 'PythonPackage' +exts_filter = ("python -c 'import %(ext_name)s'", '') + +exts_list = [ + ('nose', '1.3.7', { + 'source_urls': ['https://pypi.python.org/packages/source/n/nose/'], + }), + ('requests', '2.11.0', { + 'source_urls': ['https://pypi.python.org/packages/source/r/requests/'], + }), + ('nbformat', '4.1.0', { + 'source_urls': ['https://pypi.python.org/packages/source/n/nbformat/'], + }), + ('Pygments', '2.1.3', { + 'source_urls': ['https://pypi.python.org/packages/source/P/Pygments/'], + 'modulename': 'pygments', + }), + ('singledispatch', '3.4.0.3', { + 'source_urls': ['https://pypi.python.org/packages/source/s/singledispatch/'], + }), + ('certifi', '2016.8.8', { + 'source_urls': ['https://pypi.python.org/packages/source/c/certifi/'], + }), + ('backports_abc', '0.4', { + 'source_urls': ['https://pypi.python.org/packages/source/b/backports_abc/'], + }), + ('tornado', '4.4.1', { + 'source_urls': ['https://pypi.python.org/packages/source/t/tornado/'], + }), + ('MarkupSafe', '0.23', { + 'source_urls': ['https://pypi.python.org/packages/source/M/MarkupSafe/'], + 'modulename': 'markupsafe', + }), + ('Jinja2', '2.8', { + 'source_urls': ['https://pypi.python.org/packages/source/J/Jinja2/'], + 'modulename': 'jinja2', + }), + ('jupyter_client', '4.3.0', { + 'source_urls': ['https://pypi.python.org/packages/source/j/jupyter_client/'], + }), + ('functools32', '3.2.3-2', { + 'source_urls': ['https://pypi.python.org/packages/source/f/functools32/'], + }), + ('jsonschema', '2.5.1', { + 'source_urls': ['https://pypi.python.org/packages/source/j/jsonschema/'], + }), + ('mistune', '0.7.3', { + 'source_urls': ['https://pypi.python.org/packages/source/m/mistune/'], + }), + ('ptyprocess', '0.5.1', { + 'source_urls': ['https://pypi.python.org/packages/source/p/ptyprocess/'], + }), + ('terminado', '0.6', { + 'source_urls': ['https://pypi.python.org/packages/source/t/terminado/'], + }), + ('setuptools', '25.2.0', { + 'source_urls': ['https://pypi.python.org/packages/source/s/setuptools/'], + }), + ('simplegeneric', '0.8.1', { + 'source_urls': ['https://pypi.python.org/packages/source/s/simplegeneric/'], + 'source_tmpl': 'simplegeneric-%(version)s.zip', + }), + ('ipython_genutils', '0.1.0', { + 'source_urls': ['https://pypi.python.org/packages/source/i/ipython_genutils/'], + }), + ('pathlib2', '2.1.0', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pathlib2/'], + }), + ('pickleshare', '0.7.4', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pickleshare/'], + }), + ('traitlets', '4.2.2', { + 'source_urls': ['https://pypi.python.org/packages/source/t/traitlets/'], + }), + ('notebook', '4.2.2', { + 'source_urls': ['https://pypi.python.org/packages/source/n/notebook/'], + }), + ('jupyter_core', '4.1.1', { + 'source_urls': ['https://pypi.python.org/packages/source/j/jupyter_core/'], + }), + ('ipykernel', '4.4.1', { + 'source_urls': ['https://pypi.python.org/packages/source/i/ipykernel/'], + }), + ('pexpect', '4.2.0', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pexpect/'], + }), + # disabled because entrypoints on which this depends pull in configparser, which causes problems + # see https://github.com/hpcugent/easybuild-easyconfigs/issues/3825 + #('nbconvert', '4.2.0', { + # 'source_urls': ['https://pypi.python.org/packages/source/n/nbconvert/'], + #}), + ('backports.shutil_get_terminal_size', '1.0.0', { + 'source_urls': ['https://pypi.python.org/packages/source/b/backports.shutil_get_terminal_size/'], + }), + ('decorator', '4.0.10', { + 'source_urls': ['https://pypi.python.org/packages/source/d/decorator/'], + }), + ('ipython', version, { + 'source_urls': ['https://pypi.python.org/packages/source/i/ipython/'], + 'patches': ['ipython-5.0.0_fix-test-paths-symlink.patch'], + 'modulename': 'IPython', + }), + ('ipywidgets', '5.2.2', { + 'source_urls': ['https://pypi.python.org/packages/source/i/ipywidgets/'], + }), + ('widgetsnbextension', '1.2.6', { + 'source_urls': ['https://pypi.python.org/packages/source/w/widgetsnbextension/'], + }), +] + +modextrapaths = {'PYTHONPATH': ['lib/python%(pyshortver)s/site-packages']} + +sanity_check_paths = { + 'files': ['bin/ipython'], + 'dirs': ['lib/python%(pyshortver)s/site-packages/IPython'], +} + +sanity_check_commands = [ + ('ipython -h', ''), + ('ipython notebook --help', ''), + ('iptest', ''), + ('iptest2', ''), +] + +moduleclass = 'tools' diff --git a/i/ISL/ISL-0.14-GNU-5.1.0-2.25.eb b/i/ISL/ISL-0.14-GNU-5.1.0-2.25.eb new file mode 100644 index 00000000..79d7db11 --- /dev/null +++ b/i/ISL/ISL-0.14-GNU-5.1.0-2.25.eb @@ -0,0 +1,21 @@ +easyblock = 'ConfigureMake' + +name = 'ISL' +version = '0.14' + +homepage = 'http://isl.gforge.inria.fr/' +description = """isl is a library for manipulating sets and relations of integer points bounded by linear constraints.""" + +toolchain = {'name': 'GNU', 'version': '5.1.0-2.25'} + +source_urls = ['http://isl.gforge.inria.fr/'] +sources = [SOURCELOWER_TAR_BZ2] + +dependencies = [('GMP', '6.0.0a')] + +sanity_check_paths = { + 'files': ['lib/libisl.so', 'lib/libisl.a'], + 'dirs': ['include/isl'] +} + +moduleclass = 'math' diff --git a/i/ImageMagick/ImageMagick-6.9.4-8-intel-2016a.eb b/i/ImageMagick/ImageMagick-6.9.4-8-intel-2016a.eb new file mode 100644 index 00000000..bcbe21ba --- /dev/null +++ b/i/ImageMagick/ImageMagick-6.9.4-8-intel-2016a.eb @@ -0,0 +1,40 @@ +easyblock = 'ConfigureMake' + +name = 'ImageMagick' +version = '6.9.4-8' + +homepage = 'http://www.imagemagick.org/' +description = """ImageMagick is a software suite to create, edit, compose, or convert bitmap images""" + +toolchain = {'name': 'intel', 'version': '2016a'} + +sources = [SOURCE_TAR_XZ] +source_urls = ['http://www.imagemagick.org/download'] + +dependencies = [ + ('bzip2', '1.0.6'), + ('freetype', '2.6.3'), + ('Ghostscript', '9.19'), + ('JasPer', '1.900.1'), + ('libjpeg-turbo', '1.4.2'), + ('LibTIFF', '4.0.6'), + ('libX11', '1.6.3'), + ('libXext', '1.3.3'), + ('libXt', '1.1.5'), + ('LittleCMS', '2.7'), +] + +builddependencies = [ + ('pkg-config', '0.29'), +] + +configopts = "--with-gslib --with-x" + +sanity_check_paths = { + 'files': [], + 'dirs': ['bin', 'etc/%(name)s-%(version_major)s', 'include/%(name)s-%(version_major)s', 'lib', 'share'], +} + +modextravars = {'MAGICK_HOME': '%(installdir)s'} + +moduleclass = 'vis' diff --git a/i/ImageMagick/ImageMagick-7.0.1-6-intel-2016a.eb b/i/ImageMagick/ImageMagick-7.0.1-6-intel-2016a.eb new file mode 100644 index 00000000..cc86162e --- /dev/null +++ b/i/ImageMagick/ImageMagick-7.0.1-6-intel-2016a.eb @@ -0,0 +1,40 @@ +easyblock = 'ConfigureMake' + +name = 'ImageMagick' +version = '7.0.1-6' + +homepage = 'http://www.imagemagick.org/' +description = """ImageMagick is a software suite to create, edit, compose, or convert bitmap images""" + +toolchain = {'name': 'intel', 'version': '2016a'} + +sources = [SOURCE_TAR_XZ] +source_urls = ['http://www.imagemagick.org/download'] + +dependencies = [ + ('bzip2', '1.0.6'), + ('freetype', '2.6.3'), + ('Ghostscript', '9.19'), + ('JasPer', '1.900.1'), + ('libjpeg-turbo', '1.4.2'), + ('LibTIFF', '4.0.6'), + ('libX11', '1.6.3'), + ('libXext', '1.3.3'), + ('libXt', '1.1.5'), + ('LittleCMS', '2.7'), +] + +builddependencies = [ + ('pkg-config', '0.29'), +] + +configopts = "--with-gslib --with-x" + +sanity_check_paths = { + 'files': [], + 'dirs': ['bin', 'etc/%(name)s-%(version_major)s', 'include/%(name)s-%(version_major)s', 'lib', 'share'], +} + +modextravars = {'MAGICK_HOME': '%(installdir)s'} + +moduleclass = 'vis' diff --git a/i/ImageMagick/ImageMagick-7.0.1-9-intel-2016a.eb b/i/ImageMagick/ImageMagick-7.0.1-9-intel-2016a.eb new file mode 100644 index 00000000..77653181 --- /dev/null +++ b/i/ImageMagick/ImageMagick-7.0.1-9-intel-2016a.eb @@ -0,0 +1,40 @@ +easyblock = 'ConfigureMake' + +name = 'ImageMagick' +version = '7.0.1-9' + +homepage = 'http://www.imagemagick.org/' +description = """ImageMagick is a software suite to create, edit, compose, or convert bitmap images""" + +toolchain = {'name': 'intel', 'version': '2016a'} + +sources = [SOURCE_TAR_XZ] +source_urls = ['http://www.imagemagick.org/download'] + +dependencies = [ + ('bzip2', '1.0.6'), + ('freetype', '2.6.3'), + ('Ghostscript', '9.19'), + ('JasPer', '1.900.1'), + ('libjpeg-turbo', '1.4.2'), + ('LibTIFF', '4.0.6'), + ('libX11', '1.6.3'), + ('libXext', '1.3.3'), + ('libXt', '1.1.5'), + ('LittleCMS', '2.7'), +] + +builddependencies = [ + ('pkg-config', '0.29'), +] + +configopts = "--with-gslib --with-x" + +sanity_check_paths = { + 'files': [], + 'dirs': ['bin', 'etc/%(name)s-%(version_major)s', 'include/%(name)s-%(version_major)s', 'lib', 'share'], +} + +modextravars = {'MAGICK_HOME': '%(installdir)s'} + +moduleclass = 'vis' diff --git a/i/ImageMagick/ImageMagick-7.0.2-9-intel-2016a.eb b/i/ImageMagick/ImageMagick-7.0.2-9-intel-2016a.eb new file mode 100644 index 00000000..d83125eb --- /dev/null +++ b/i/ImageMagick/ImageMagick-7.0.2-9-intel-2016a.eb @@ -0,0 +1,44 @@ +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# Author: Ravi Tripathi +# Email: ravi89@uab.edu + +easyblock = 'ConfigureMake' + +name = 'ImageMagick' +version = '7.0.2-9' + +homepage = 'http://www.imagemagick.org/' +description = """ImageMagick is a software suite to create, edit, compose, or convert bitmap images""" + +toolchain = {'name': 'intel', 'version': '2016a'} + +sources = [SOURCE_TAR_XZ] +source_urls = ['http://www.imagemagick.org/download'] + +dependencies = [ + ('bzip2', '1.0.6'), + ('freetype', '2.6.3'), + ('Ghostscript', '9.19'), + ('JasPer', '1.900.1'), + ('libjpeg-turbo', '1.4.2'), + ('LibTIFF', '4.0.6'), + ('libX11', '1.6.3'), + ('libXext', '1.3.3'), + ('libXt', '1.1.5'), + ('LittleCMS', '2.7'), +] + +builddependencies = [ + ('pkg-config', '0.29'), +] + +configopts = "--with-gslib --with-x" + +sanity_check_paths = { + 'files': [], + 'dirs': ['bin', 'etc/%(name)s-%(version_major)s', 'include/%(name)s-%(version_major)s', 'lib', 'share'], +} + +modextravars = {'MAGICK_HOME': '%(installdir)s'} + +moduleclass = 'vis' diff --git a/i/ImageMagick/ImageMagick-7.0.3-1-intel-2016b.eb b/i/ImageMagick/ImageMagick-7.0.3-1-intel-2016b.eb new file mode 100644 index 00000000..f3c4211e --- /dev/null +++ b/i/ImageMagick/ImageMagick-7.0.3-1-intel-2016b.eb @@ -0,0 +1,41 @@ +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# Author: Ravi Tripathi +# Email: ravi89@uab.edu + +easyblock = 'ConfigureMake' + +name = 'ImageMagick' +version = '7.0.3-1' + +homepage = 'http://www.imagemagick.org/' +description = """ImageMagick is a software suite to create, edit, compose, or convert bitmap images""" + +toolchain = {'name': 'intel', 'version': '2016b'} + +sources = [SOURCE_TAR_XZ] +source_urls = ['http://www.imagemagick.org/download'] + +dependencies = [ + ('bzip2', '1.0.6'), + ('X11', '20160819'), + ('Ghostscript', '9.19'), + ('JasPer', '1.900.1'), + ('libjpeg-turbo', '1.5.0'), + ('LibTIFF', '4.0.6'), + ('LittleCMS', '2.8'), +] + +builddependencies = [ + ('pkg-config', '0.29.1'), +] + +configopts = "--with-gslib --with-x" + +sanity_check_paths = { + 'files': [], + 'dirs': ['bin', 'etc/%(name)s-%(version_major)s', 'include/%(name)s-%(version_major)s', 'lib', 'share'], +} + +modextravars = {'MAGICK_HOME': '%(installdir)s'} + +moduleclass = 'vis' diff --git a/i/Infernal/Infernal-1.1-goolf-1.4.10.eb b/i/Infernal/Infernal-1.1-goolf-1.4.10.eb new file mode 100644 index 00000000..33a89436 --- /dev/null +++ b/i/Infernal/Infernal-1.1-goolf-1.4.10.eb @@ -0,0 +1,34 @@ +## +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# +# Copyright:: Copyright 2012-2014 Uni.Lu/LCSB, NTUA +# Authors:: Cedric Laczny , Fotis Georgatos +# 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 +## + +easyblock = 'ConfigureMake' + +name = 'Infernal' +version = "1.1" + +homepage = 'http://infernal.janelia.org/' +description = """Infernal ("INFERence of RNA ALignment") is for searching DNA sequence databases + for RNA structure and sequence similarities.""" + +toolchain = {'name': 'goolf', 'version': '1.4.10'} +toolchainopts = {'optarch': True, 'pic': True} + +sources = [SOURCELOWER_TAR_GZ] +source_urls = ['ftp://selab.janelia.org/pub/software/%(namelower)s'] + +sanity_check_paths = { + 'files': ['bin/cm%s' % x for x in ['align', 'build', 'calibrate', 'convert', 'emit', + 'fetch', 'press', 'scan', 'search', 'stat']], + 'dirs': [] +} + +moduleclass = 'bio' diff --git a/i/Infernal/Infernal-1.1-ictce-5.3.0.eb b/i/Infernal/Infernal-1.1-ictce-5.3.0.eb new file mode 100644 index 00000000..10d6e8c9 --- /dev/null +++ b/i/Infernal/Infernal-1.1-ictce-5.3.0.eb @@ -0,0 +1,34 @@ +## +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# +# Copyright:: Copyright 2012-2014 Uni.Lu/LCSB, NTUA +# Authors:: Cedric Laczny , Fotis Georgatos +# 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 +## + +easyblock = 'ConfigureMake' + +name = 'Infernal' +version = "1.1" + +homepage = 'http://infernal.janelia.org/' +description = """Infernal ("INFERence of RNA ALignment") is for searching DNA sequence databases + for RNA structure and sequence similarities.""" + +toolchain = {'name': 'ictce', 'version': '5.3.0'} +toolchainopts = {'optarch': True, 'pic': True} + +sources = [SOURCELOWER_TAR_GZ] +source_urls = ['ftp://selab.janelia.org/pub/software/%(namelower)s'] + +sanity_check_paths = { + 'files': ['bin/cm%s' % x for x in ['align', 'build', 'calibrate', 'convert', 'emit', + 'fetch', 'press', 'scan', 'search', 'stat']], + 'dirs': [] +} + +moduleclass = 'bio' diff --git a/i/Infernal/Infernal-1.1rc1-goolf-1.4.10.eb b/i/Infernal/Infernal-1.1rc1-goolf-1.4.10.eb new file mode 100644 index 00000000..9c4049ce --- /dev/null +++ b/i/Infernal/Infernal-1.1rc1-goolf-1.4.10.eb @@ -0,0 +1,34 @@ +## +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# +# Copyright:: Copyright 2012-2014 Uni.Lu/LCSB, NTUA +# Authors:: Cedric Laczny , Fotis Georgatos +# 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 +## + +easyblock = 'ConfigureMake' + +name = 'Infernal' +version = '1.1rc1' + +homepage = 'http://infernal.janelia.org/' +description = """Infernal ('INFERence of RNA ALignment') is for searching DNA sequence databases + for RNA structure and sequence similarities.""" + +toolchain = {'name': 'goolf', 'version': '1.4.10'} +toolchainopts = {'optarch': True, 'pic': True} + +sources = [SOURCELOWER_TAR_GZ] +source_urls = ['ftp://selab.janelia.org/pub/software/%s' % name.lower()] + +sanity_check_paths = { + 'files': ['bin/cm%s' % x for x in ['align', 'build', 'calibrate', 'convert', 'emit', + 'fetch', 'press', 'scan', 'search', 'stat']], + 'dirs': [] +} + +moduleclass = 'bio' diff --git a/i/Infernal/Infernal-1.1rc1-ictce-5.3.0.eb b/i/Infernal/Infernal-1.1rc1-ictce-5.3.0.eb new file mode 100644 index 00000000..ee33a329 --- /dev/null +++ b/i/Infernal/Infernal-1.1rc1-ictce-5.3.0.eb @@ -0,0 +1,34 @@ +## +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# +# Copyright:: Copyright 2012-2014 Uni.Lu/LCSB, NTUA +# Authors:: Cedric Laczny , Fotis Georgatos +# 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 +## + +easyblock = 'ConfigureMake' + +name = 'Infernal' +version = '1.1rc1' + +homepage = 'http://infernal.janelia.org/' +description = """Infernal ('INFERence of RNA ALignment') is for searching DNA sequence databases + for RNA structure and sequence similarities.""" + +toolchain = {'name': 'ictce', 'version': '5.3.0'} +toolchainopts = {'optarch': True, 'pic': True} + +sources = [SOURCELOWER_TAR_GZ] +source_urls = ['ftp://selab.janelia.org/pub/software/%s' % name.lower()] + +sanity_check_paths = { + 'files': ['bin/cm%s' % x for x in ['align', 'build', 'calibrate', 'convert', 'emit', + 'fetch', 'press', 'scan', 'search', 'stat']], + 'dirs': [] +} + +moduleclass = 'bio' diff --git a/i/Inspector/Inspector-2016_update1.eb b/i/Inspector/Inspector-2016_update1.eb new file mode 100644 index 00000000..5858e6e0 --- /dev/null +++ b/i/Inspector/Inspector-2016_update1.eb @@ -0,0 +1,17 @@ +name = 'Inspector' +version = '2016_update1' + +homepage = 'http://software.intel.com/en-us/intel-inspector-xe' +description = "Intel Inspector XE 2013 is an easy to use memory error checker and thread checker for serial and parallel applications" + +toolchain = {'name':'dummy','version':'dummy'} + +sources = ['inspector_xe_%s.tar.gz' % version] + +dontcreateinstalldir = 'True' + +# license file +import os +license_file = os.path.join(os.getenv('HOME'), "licenses", "intel", "license.lic") + +moduleclass = 'tools' diff --git a/i/icc/icc-2013.5.192-GCC-4.8.3.eb b/i/icc/icc-2013.5.192-GCC-4.8.3.eb new file mode 100644 index 00000000..eca78f3e --- /dev/null +++ b/i/icc/icc-2013.5.192-GCC-4.8.3.eb @@ -0,0 +1,30 @@ +name = 'icc' +version = '2013.5.192' + +homepage = 'http://software.intel.com/en-us/intel-compilers/' +description = "C and C++ compiler from Intel" + +toolchain = {'name': 'dummy', 'version': ''} + +sources = ['l_ccompxe_%(version)s.tgz'] + +gcc = 'GCC' +gccver = '4.8.3' +versionsuffix = '-%s-%s' % (gcc, gccver) + +dependencies = [(gcc, gccver)] + +dontcreateinstalldir = 'True' + +# license file +import os +license_file = os.path.join(os.getenv('HOME'), "licenses", "intel", "license.lic") + +moduleclass = 'compiler' +# Salomon specific optimalization +modextravars = { + 'CC': 'icc', + 'CXX': 'icpc', + 'OPTFLAGS': '-O3 -xHost -ip', + 'DEBUGFLAGS': '-O0 -g' +} \ No newline at end of file diff --git a/i/icc/icc-2013.5.192.eb b/i/icc/icc-2013.5.192.eb new file mode 100644 index 00000000..cf63c8c1 --- /dev/null +++ b/i/icc/icc-2013.5.192.eb @@ -0,0 +1,22 @@ +name = 'icc' +version = '2013.5.192' + +homepage = 'http://software.intel.com/en-us/intel-compilers/' +description = "C and C++ compiler from Intel" + +toolchain = {'name': 'dummy', 'version': 'dummy'} + +sources = ['l_ccompxe_%(version)s.tgz'] + +dontcreateinstalldir = 'True' + +# license file +import os +license_file = os.path.join(os.getenv('HOME'), "licenses", "intel", "license.lic") + +moduleclass = 'compiler' +# Salomon specific optimalization +modextravars = { + 'CC': 'icc', + 'CXX': 'icpc', +} diff --git a/i/icc/icc-2015.3.187-GNU-5.1.0-2.25.eb b/i/icc/icc-2015.3.187-GNU-5.1.0-2.25.eb new file mode 100644 index 00000000..4bb33ae1 --- /dev/null +++ b/i/icc/icc-2015.3.187-GNU-5.1.0-2.25.eb @@ -0,0 +1,38 @@ +# Built with EasyBuild version 2.2.0dev on 2015-06-29_10-00-02 +name = 'icc' +version = '2015.3.187' + +homepage = 'http://software.intel.com/en-us/intel-compilers/' +description = "C and C++ compiler from Intel" + +toolchain = {'name': 'dummy', 'version': 'dummy'} + +sources = ['l_ccompxe_%(version)s.tgz'] + +gnu = 'GNU' +gnuver = '5.1.0-2.25' +versionsuffix = '-%s-%s' % (gnu, gnuver) + +dependencies = [(gnu, gnuver)] + +dontcreateinstalldir = 'True' + +# license file +import os +license_file = os.path.join(os.getenv('HOME'), "licenses", "intel", "license.lic") + +moduleclass = 'compiler' + +# MIC paths +micldpath = 'composer_xe_%s/compiler/lib/mic/' % version +modextrapaths = { + 'MIC_LD_LIBRARY_PATH' : [ micldpath ], +} + +# Salomon specific optimalization +modextravars = { + 'CC': 'icc', + 'CXX': 'icpc', + 'OPTFLAGS': '-O3 -xHost -ip', + 'DEBUGFLAGS': '-O0 -g' +} diff --git a/i/icc/icc-2015.3.187.eb b/i/icc/icc-2015.3.187.eb new file mode 100644 index 00000000..4580c8bb --- /dev/null +++ b/i/icc/icc-2015.3.187.eb @@ -0,0 +1,24 @@ +name = 'icc' +version = '2015.3.187' + +homepage = 'http://software.intel.com/en-us/intel-compilers/' +description = "C and C++ compiler from Intel" + +toolchain = {'name': 'dummy', 'version': 'dummy'} + +sources = ['l_ccompxe_%(version)s.tgz'] + +dontcreateinstalldir = 'True' + +# license file +import os +license_file = os.path.join(os.getenv('HOME'), "licenses", "intel", "license.lic") + +moduleclass = 'compiler' +# Salomon specific optimalization +modextravars = { + 'CC': 'icc', + 'CXX': 'icpc', + 'OPTFLAGS': '-O3 -xHost -ip', + 'DEBUGFLAGS': '-O0 -g' +} \ No newline at end of file diff --git a/i/icc/icc-2016.0.109-GCC-4.9.3.eb b/i/icc/icc-2016.0.109-GCC-4.9.3.eb new file mode 100644 index 00000000..98f80600 --- /dev/null +++ b/i/icc/icc-2016.0.109-GCC-4.9.3.eb @@ -0,0 +1,42 @@ +# This is an easyconfig file for EasyBuild, see http://hpcugent.github.io/easybuild + +name = 'icc' +version = '2016.0.109' + +homepage = 'http://software.intel.com/en-us/intel-compilers/' +description = "C and C++ compiler from Intel" + +toolchain = {'name': 'dummy', 'version': 'dummy'} + +sources = ['parallel_studio_xe_%(version_major)s_composer_edition_for_cpp_%(version)s.tgz'] + +checksums = ['f57a892fb494db3c80f20a88aa3e901f'] + +gcc = 'GCC' +gccver = '4.9.3' +versionsuffix = '-%s-%s' % (gcc, gccver) + +dependencies = [(gcc, gccver)] + +dontcreateinstalldir = 'True' + +# license file +import os +license_file = os.path.join(os.getenv('HOME'), "licenses", "intel", "license.lic") + +moduleclass = 'compiler' + +# Salomon specific optimalization +modextravars = { + 'CC': 'icc', + 'CXX': 'icpc', + 'OPTFLAGS': '-O3 -xHost -ip', + 'DEBUGFLAGS': '-O0 -g' +} + +# MIC paths +micldpath = 'compilers_and_libraries_%s/linux/compiler/lib/mic/' % version +modextrapaths = { + 'MIC_LD_LIBRARY_PATH' : [ micldpath ], +} + diff --git a/i/icc/icc-2016.0.109-GCC-5.2.0.eb b/i/icc/icc-2016.0.109-GCC-5.2.0.eb new file mode 100644 index 00000000..d88a536e --- /dev/null +++ b/i/icc/icc-2016.0.109-GCC-5.2.0.eb @@ -0,0 +1,42 @@ +# This is an easyconfig file for EasyBuild, see http://hpcugent.github.io/easybuild + +name = 'icc' +version = '2016.0.109' + +homepage = 'http://software.intel.com/en-us/intel-compilers/' +description = "C and C++ compiler from Intel" + +toolchain = {'name': 'dummy', 'version': 'dummy'} + +sources = ['parallel_studio_xe_%(version_major)s_composer_edition_for_cpp_%(version)s.tgz'] + +checksums = ['f57a892fb494db3c80f20a88aa3e901f'] + +gcc = 'GCC' +gccver = '5.2.0' +versionsuffix = '-%s-%s' % (gcc, gccver) + +dependencies = [(gcc, gccver)] + +dontcreateinstalldir = 'True' + +# license file +import os +license_file = os.path.join(os.getenv('HOME'), "licenses", "intel", "license.lic") + +moduleclass = 'compiler' + +# Salomon specific optimalization +modextravars = { + 'CC': 'icc', + 'CXX': 'icpc', + 'OPTFLAGS': '-O3 -xHost -ip', + 'DEBUGFLAGS': '-O0 -g' +} + +# MIC paths +micldpath = 'compilers_and_libraries_%s/linux/compiler/lib/mic/' % version +modextrapaths = { + 'MIC_LD_LIBRARY_PATH' : [ micldpath ], +} + diff --git a/i/icc/icc-2016.0.109.eb b/i/icc/icc-2016.0.109.eb new file mode 100644 index 00000000..b188079d --- /dev/null +++ b/i/icc/icc-2016.0.109.eb @@ -0,0 +1,33 @@ +# This is an easyconfig file for EasyBuild, see http://hpcugent.github.io/easybuild + +name = 'icc' +version = '2016.0.109' + +homepage = 'http://software.intel.com/en-us/intel-compilers/' +description = "C and C++ compiler from Intel" + +toolchain = {'name': 'dummy', 'version': 'dummy'} + +sources = ['parallel_studio_xe_%(version_major)s_composer_edition_for_cpp.tgz'] + +checksums = ['f57a892fb494db3c80f20a88aa3e901f'] + +# list of regex for components to install +# full list of components can be obtained from pset/mediaconfig.xml in unpacked sources +# cfr. https://software.intel.com/en-us/articles/intel-composer-xe-2015-silent-installation-guide +components = ['intel-comp', 'intel-ccomp', 'intel-icc', 'intel-openmp', 'intel-ipsc?_'] + +dontcreateinstalldir = 'True' + +# license file +import os +license_file = os.path.join(os.getenv('HOME'), "licenses", "intel", "license.lic") + +moduleclass = 'compiler' +# Salomon specific optimalization +modextravars = { + 'CC': 'icc', + 'CXX': 'icpc', + 'OPTFLAGS': '-O3 -xHost -ip', + 'DEBUGFLAGS': '-O0 -g' +} diff --git a/i/icc/icc-2016.1.150-GCC-4.9.3-2.25.eb b/i/icc/icc-2016.1.150-GCC-4.9.3-2.25.eb new file mode 100644 index 00000000..45bdeb97 --- /dev/null +++ b/i/icc/icc-2016.1.150-GCC-4.9.3-2.25.eb @@ -0,0 +1,49 @@ +# This is an easyconfig file for EasyBuild, see http://hpcugent.github.io/easybuild + +name = 'icc' +version = '2016.1.150' + +homepage = 'http://software.intel.com/en-us/intel-compilers/' +description = "C and C++ compiler from Intel" + +toolchain = {'name': 'dummy', 'version': ''} + +sources = ['parallel_studio_xe_%(version_major)s_composer_edition_for_cpp_update%(version_minor)s.tgz'] + +checksums = ['4b93b0ff549e6bd8d1a8b9a441b235a8'] + +gccver = '4.9.3' +binutilsver = '2.25' +versionsuffix = '-GCC-%s-%s' % (gccver, binutilsver) + +dependencies = [ + ('GCCcore', gccver), + ('binutils', binutilsver, '', ('GCCcore', gccver)), +] + +# list of regex for components to install +# full list of components can be obtained from pset/mediaconfig.xml in unpacked sources +# cfr. https://software.intel.com/en-us/articles/intel-composer-xe-2015-silent-installation-guide +components = ['intel-comp', 'intel-ccomp', 'intel-icc', 'intel-openmp', 'intel-ipsc?_', 'intel-gdb'] + +dontcreateinstalldir = 'True' + +# license file +import os +license_file = os.path.join(os.getenv('HOME'), "licenses", "intel", "license.lic") + +moduleclass = 'compiler' + +# Salomon specific optimalization +modextravars = { + 'CC': 'icc', + 'CXX': 'icpc', + 'OPTFLAGS': '-O3 -xHost -ip', + 'DEBUGFLAGS': '-O0 -g' +} + +# MIC paths +micldpath = 'compilers_and_libraries_%s/linux/compiler/lib/mic/' % version +modextrapaths = { + 'MIC_LD_LIBRARY_PATH' : [ micldpath ], +} diff --git a/i/icc/icc-2016.1.150-GCC-4.9.3.eb b/i/icc/icc-2016.1.150-GCC-4.9.3.eb new file mode 100644 index 00000000..3b5f033d --- /dev/null +++ b/i/icc/icc-2016.1.150-GCC-4.9.3.eb @@ -0,0 +1,42 @@ +# This is an easyconfig file for EasyBuild, see http://hpcugent.github.io/easybuild + +name = 'icc' +version = '2016.1.150' + +homepage = 'http://software.intel.com/en-us/intel-compilers/' +description = "C and C++ compiler from Intel" + +toolchain = {'name': 'dummy', 'version': 'dummy'} + +sources = ['parallel_studio_xe_%(version_major)s_composer_edition_for_cpp_%(version)s.tgz'] + +checksums = ['4b93b0ff549e6bd8d1a8b9a441b235a8'] + +gcc = 'GCC' +gccver = '4.9.3' +versionsuffix = '-%s-%s' % (gcc, gccver) + +dependencies = [(gcc, gccver)] + +dontcreateinstalldir = 'True' + +# license file +import os +license_file = os.path.join(os.getenv('HOME'), "licenses", "intel", "license.lic") + +moduleclass = 'compiler' + +# Salomon specific optimalization +modextravars = { + 'CC': 'icc', + 'CXX': 'icpc', + 'OPTFLAGS': '-O3 -xHost -ip', + 'DEBUGFLAGS': '-O0 -g' +} + +# MIC paths +micldpath = 'compilers_and_libraries_%s/linux/compiler/lib/mic/' % version +modextrapaths = { + 'MIC_LD_LIBRARY_PATH' : [ micldpath ], +} + diff --git a/i/icc/icc-2016.1.150.eb b/i/icc/icc-2016.1.150.eb new file mode 100644 index 00000000..d8870374 --- /dev/null +++ b/i/icc/icc-2016.1.150.eb @@ -0,0 +1,40 @@ +# This is an easyconfig file for EasyBuild, see http://hpcugent.github.io/easybuild + +name = 'icc' +version = '2016.1.150' + +homepage = 'http://software.intel.com/en-us/intel-compilers/' +description = "C and C++ compiler from Intel" + +toolchain = {'name': 'dummy', 'version': 'dummy'} + +sources = ['parallel_studio_xe_%(version_major)s_composer_edition_for_cpp_update%(version_minor)s.tgz'] + +checksums = ['4b93b0ff549e6bd8d1a8b9a441b235a8'] + +# full list of components can be obtained from pset/mediaconfig.xml in unpacked sources +# cfr. https://software.intel.com/en-us/articles/intel-composer-xe-2015-silent-installation-guide +components = ['intel-comp', 'intel-ccomp', 'intel-icc', 'intel-openmp', 'intel-ipsc?_'] + +dontcreateinstalldir = 'True' + +# license file +import os +license_file = os.path.join(os.getenv('HOME'), "licenses", "intel", "license.lic") + +moduleclass = 'compiler' + +# Salomon specific optimalization +modextravars = { + 'CC': 'icc', + 'CXX': 'icpc', + 'OPTFLAGS': '-O3 -xHost -ip', + 'DEBUGFLAGS': '-O0 -g' +} + +# MIC paths +micldpath = 'compilers_and_libraries_%s/linux/compiler/lib/mic/' % version +modextrapaths = { + 'MIC_LD_LIBRARY_PATH' : [ micldpath ], +} + diff --git a/i/icc/icc-2016.3.210-GCC-5.3.0-2.26.eb b/i/icc/icc-2016.3.210-GCC-5.3.0-2.26.eb new file mode 100644 index 00000000..86e714ee --- /dev/null +++ b/i/icc/icc-2016.3.210-GCC-5.3.0-2.26.eb @@ -0,0 +1,33 @@ +# This is an easyconfig file for EasyBuild, see http://hpcugent.github.io/easybuild + +name = 'icc' +version = '2016.3.210' + +homepage = 'http://software.intel.com/en-us/intel-compilers/' +description = "C and C++ compiler from Intel" + +toolchain = {'name': 'dummy', 'version': 'dummy'} + +sources = ['parallel_studio_xe_%(version_major)s_update%(version_minor)s.tgz'] + +checksums = ['eda19bb0d0d19709197ede58f13443f3'] + +gccver = '5.3.0' +binutilsver = '2.26' +versionsuffix = '-GCC-%s-%s' % (gccver, binutilsver) + +dependencies = [ + ('GCCcore', gccver), + ('binutils', binutilsver, '', ('GCCcore', gccver)), +] + +# list of regex for components to install +# full list of components can be obtained from pset/mediaconfig.xml in unpacked sources +# cfr. https://software.intel.com/en-us/articles/intel-composer-xe-2015-silent-installation-guide +components = ['intel-comp', 'intel-ccomp', 'intel-icc', 'intel-openmp', 'intel-ipsc?_'] + +dontcreateinstalldir = 'True' + +license_file = HOME + '/licenses/intel/license.lic' + +moduleclass = 'compiler' diff --git a/i/iccifort/iccifort-2013.5.192-GCC-4.8.3.eb b/i/iccifort/iccifort-2013.5.192-GCC-4.8.3.eb new file mode 100644 index 00000000..a3d78094 --- /dev/null +++ b/i/iccifort/iccifort-2013.5.192-GCC-4.8.3.eb @@ -0,0 +1,27 @@ +easyblock = "Toolchain" + +name = 'iccifort' +version = '2013.5.192' +versionsuffix = '-GCC-4.8.3' + +homepage = 'http://software.intel.com/en-us/intel-cluster-toolkit-compiler/' +description = """Intel C, C++ and Fortran compilers""" + +toolchain = {'name': 'dummy', 'version': 'dummy'} + +dependencies = [ + ('icc', version, versionsuffix), + ('ifort', version, versionsuffix), +] + +moduleclass = 'toolchain' +# Salomon specific optimalization +modextravars = { + 'CC': 'icc', + 'CXX': 'icpc', + 'F90': 'ifort', + 'F77': 'ifort', + 'FC': 'ifort', + 'OPTFLAGS': '-O3 -xHost -ip', + 'DEBUGFLAGS': '-O0 -g' +} \ No newline at end of file diff --git a/i/iccifort/iccifort-2013.5.192.eb b/i/iccifort/iccifort-2013.5.192.eb new file mode 100644 index 00000000..0383aed2 --- /dev/null +++ b/i/iccifort/iccifort-2013.5.192.eb @@ -0,0 +1,24 @@ +easyblock = "Toolchain" + +name = 'iccifort' +version = '2013.5.192' + +homepage = 'http://software.intel.com/en-us/intel-cluster-toolkit-compiler/' +description = """Intel C, C++ and Fortran compilers""" + +toolchain = {'name': 'dummy', 'version': 'dummy'} + +dependencies = [ + ('icc', version), + ('ifort', version), +] + +moduleclass = 'toolchain' +# Salomon specific optimalization +modextravars = { + 'CC': 'icc', + 'CXX': 'icpc', + 'F90': 'ifort', + 'F77': 'ifort', + 'FC': 'ifort', +} diff --git a/i/iccifort/iccifort-2015.3.187-GNU-5.1.0-2.25.eb b/i/iccifort/iccifort-2015.3.187-GNU-5.1.0-2.25.eb new file mode 100644 index 00000000..da4a741b --- /dev/null +++ b/i/iccifort/iccifort-2015.3.187-GNU-5.1.0-2.25.eb @@ -0,0 +1,29 @@ +# Built with EasyBuild version 2.2.0dev on 2015-06-29_10-00-03 +easyblock = "Toolchain" + +name = 'iccifort' +version = '2015.3.187' +versionsuffix = '-GNU-5.1.0-2.25' + +homepage = 'http://software.intel.com/en-us/intel-cluster-toolkit-compiler/' +description = """Intel C, C++ and Fortran compilers""" + +toolchain = {'name': 'dummy', 'version': 'dummy'} + +dependencies = [ + ('icc', version, versionsuffix), + ('ifort', version, versionsuffix), +] + +moduleclass = 'toolchain' + +# Salomon specific optimalization +modextravars = { + 'CC': 'icc', + 'CXX': 'icpc', + 'F90': 'ifort', + 'F77': 'ifort', + 'FC': 'ifort', + 'OPTFLAGS': '-O3 -xHost -ip', + 'DEBUGFLAGS': '-O0 -g' +} diff --git a/i/iccifort/iccifort-2015.3.187.eb b/i/iccifort/iccifort-2015.3.187.eb new file mode 100644 index 00000000..7b5fdcd7 --- /dev/null +++ b/i/iccifort/iccifort-2015.3.187.eb @@ -0,0 +1,26 @@ +easyblock = "Toolchain" + +name = 'iccifort' +version = '2015.3.187' + +homepage = 'http://software.intel.com/en-us/intel-cluster-toolkit-compiler/' +description = """Intel Cluster Toolkit Compiler Edition provides Intel C,C++ and fortran compilers, Intel MPI and Intel MKL""" + +toolchain = {'name': 'dummy', 'version': 'dummy'} + +dependencies = [ + ('icc', version), + ('ifort', version), +] + +moduleclass = 'toolchain' +# Salomon specific optimalization +modextravars = { + 'CC': 'icc', + 'CXX': 'icpc', + 'F90': 'ifort', + 'F77': 'ifort', + 'FC': 'ifort', + 'OPTFLAGS': '-O3 -xHost -ip', + 'DEBUGFLAGS': '-O0 -g' +} \ No newline at end of file diff --git a/i/iccifort/iccifort-2016.0.109-GCC-4.9.3.eb b/i/iccifort/iccifort-2016.0.109-GCC-4.9.3.eb new file mode 100644 index 00000000..30af057a --- /dev/null +++ b/i/iccifort/iccifort-2016.0.109-GCC-4.9.3.eb @@ -0,0 +1,33 @@ +# This is an easyconfig file for EasyBuild, see http://hpcugent.github.io/easybuild +easyblock = "Toolchain" + +name = 'iccifort' +version = '2016.0.109' + +homepage = 'http://software.intel.com/en-us/intel-cluster-toolkit-compiler/' +description = """Intel Cluster Toolkit Compiler Edition provides Intel C,C++ and fortran compilers, Intel MPI and Intel MKL""" + +toolchain = {'name': 'dummy', 'version': 'dummy'} + +gcc = 'GCC' +gccver = '4.9.3' +versionsuffix = '-%s-%s' % (gcc, gccver) + +dependencies = [ + (gcc, gccver), + ('icc', version, versionsuffix), + ('ifort', version, versionsuffix), +] + +moduleclass = 'toolchain' + +# Salomon specific optimalization +modextravars = { + 'CC': 'icc', + 'CXX': 'icpc', + 'F90': 'ifort', + 'F77': 'ifort', + 'FC': 'ifort', + 'OPTFLAGS': '-O3 -xHost -ip', + 'DEBUGFLAGS': '-O0 -g' +} diff --git a/i/iccifort/iccifort-2016.0.109-GCC-5.2.0.eb b/i/iccifort/iccifort-2016.0.109-GCC-5.2.0.eb new file mode 100644 index 00000000..2631b7cc --- /dev/null +++ b/i/iccifort/iccifort-2016.0.109-GCC-5.2.0.eb @@ -0,0 +1,33 @@ +# This is an easyconfig file for EasyBuild, see http://hpcugent.github.io/easybuild +easyblock = "Toolchain" + +name = 'iccifort' +version = '2016.0.109' + +homepage = 'http://software.intel.com/en-us/intel-cluster-toolkit-compiler/' +description = """Intel Cluster Toolkit Compiler Edition provides Intel C,C++ and fortran compilers, Intel MPI and Intel MKL""" + +toolchain = {'name': 'dummy', 'version': 'dummy'} + +gcc = 'GCC' +gccver = '5.2.0' +versionsuffix = '-%s-%s' % (gcc, gccver) + +dependencies = [ + (gcc, gccver), + ('icc', version, versionsuffix), + ('ifort', version, versionsuffix), +] + +moduleclass = 'toolchain' + +# Salomon specific optimalization +modextravars = { + 'CC': 'icc', + 'CXX': 'icpc', + 'F90': 'ifort', + 'F77': 'ifort', + 'FC': 'ifort', + 'OPTFLAGS': '-O3 -xHost -ip', + 'DEBUGFLAGS': '-O0 -g' +} diff --git a/i/iccifort/iccifort-2016.1.150-GCC-4.9.3-2.25.eb b/i/iccifort/iccifort-2016.1.150-GCC-4.9.3-2.25.eb new file mode 100644 index 00000000..eb2a23f8 --- /dev/null +++ b/i/iccifort/iccifort-2016.1.150-GCC-4.9.3-2.25.eb @@ -0,0 +1,29 @@ +# This is an easyconfig file for EasyBuild, see http://hpcugent.github.io/easybuild +easyblock = "Toolchain" + +name = 'iccifort' +version = '2016.1.150' +versionsuffix = '-GCC-4.9.3-2.25' + +homepage = 'http://software.intel.com/en-us/intel-cluster-toolkit-compiler/' +description = """Intel Cluster Toolkit Compiler Edition provides Intel C,C++ and fortran compilers, Intel MPI and Intel MKL""" + +toolchain = {'name': 'dummy', 'version': 'dummy'} + +dependencies = [ + ('icc', version, versionsuffix), + ('ifort', version, versionsuffix), +] + +moduleclass = 'toolchain' + +# Salomon specific optimalization +modextravars = { + 'CC': 'icc', + 'CXX': 'icpc', + 'F90': 'ifort', + 'F77': 'ifort', + 'FC': 'ifort', + 'OPTFLAGS': '-O3 -xHost -ip', + 'DEBUGFLAGS': '-O0 -g' +} diff --git a/i/iccifort/iccifort-2016.1.150-GCC-4.9.3.eb b/i/iccifort/iccifort-2016.1.150-GCC-4.9.3.eb new file mode 100644 index 00000000..25ea7c71 --- /dev/null +++ b/i/iccifort/iccifort-2016.1.150-GCC-4.9.3.eb @@ -0,0 +1,33 @@ +# This is an easyconfig file for EasyBuild, see http://hpcugent.github.io/easybuild +easyblock = "Toolchain" + +name = 'iccifort' +version = '2016.1.150' + +homepage = 'http://software.intel.com/en-us/intel-cluster-toolkit-compiler/' +description = """Intel Cluster Toolkit Compiler Edition provides Intel C,C++ and fortran compilers, Intel MPI and Intel MKL""" + +toolchain = {'name': 'dummy', 'version': 'dummy'} + +gcc = 'GCC' +gccver = '4.9.3' +versionsuffix = '-%s-%s' % (gcc, gccver) + +dependencies = [ + (gcc, gccver), + ('icc', version, versionsuffix), + ('ifort', version, versionsuffix), +] + +moduleclass = 'toolchain' + +# Salomon specific optimalization +modextravars = { + 'CC': 'icc', + 'CXX': 'icpc', + 'F90': 'ifort', + 'F77': 'ifort', + 'FC': 'ifort', + 'OPTFLAGS': '-O3 -xHost -ip', + 'DEBUGFLAGS': '-O0 -g' +} diff --git a/i/iccifort/iccifort-2016.1.150.eb b/i/iccifort/iccifort-2016.1.150.eb new file mode 100644 index 00000000..b1f28928 --- /dev/null +++ b/i/iccifort/iccifort-2016.1.150.eb @@ -0,0 +1,28 @@ +# This is an easyconfig file for EasyBuild, see http://hpcugent.github.io/easybuild +easyblock = "Toolchain" + +name = 'iccifort' +version = '2016.1.150' + +homepage = 'http://software.intel.com/en-us/intel-cluster-toolkit-compiler/' +description = """Intel Cluster Toolkit Compiler Edition provides Intel C,C++ and fortran compilers, Intel MPI and Intel MKL""" + +toolchain = {'name': 'dummy', 'version': 'dummy'} + +dependencies = [ + ('icc', version), + ('ifort', version), +] + +moduleclass = 'toolchain' + +# Salomon specific optimalization +modextravars = { + 'CC': 'icc', + 'CXX': 'icpc', + 'F90': 'ifort', + 'F77': 'ifort', + 'FC': 'ifort', + 'OPTFLAGS': '-O3 -xHost -ip', + 'DEBUGFLAGS': '-O0 -g' +} diff --git a/i/ictce/ictce-5.5.0.eb b/i/ictce/ictce-5.5.0.eb new file mode 100644 index 00000000..4d319848 --- /dev/null +++ b/i/ictce/ictce-5.5.0.eb @@ -0,0 +1,28 @@ +easyblock = "Toolchain" + +name = 'ictce' +version = '5.5.0' + +homepage = 'http://software.intel.com/en-us/intel-cluster-toolkit-compiler/' +description = """Intel Cluster Toolkit Compiler Edition provides Intel C/C++ and Fortran compilers, Intel MPI & Intel MKL.""" + +toolchain = {'name': 'dummy', 'version': 'dummy'} + +compsuffix = '.5.192' +compver = '2013' + compsuffix +dependencies = [ + ('icc', compver), + ('ifort', compver), + ('impi', '4.1.1.036', '', ('iccifort', compver)), + ('imkl', '11.0' + compsuffix, '', ('iimpi', version)), +] + +moduleclass = 'toolchain' +# Salomon specific optimalization +modextravars = { + 'CC': 'icc', + 'CXX': 'icpc', + 'F90': 'ifort', + 'F77': 'ifort', + 'FC': 'ifort', +} diff --git a/i/ictce/ictce-7.3.5.eb b/i/ictce/ictce-7.3.5.eb new file mode 100644 index 00000000..43ed7b83 --- /dev/null +++ b/i/ictce/ictce-7.3.5.eb @@ -0,0 +1,31 @@ +easyblock = "Toolchain" + +name = 'ictce' +version = '7.3.5' + +homepage = 'http://software.intel.com/en-us/intel-cluster-toolkit-compiler/' +description = """Intel Cluster Toolkit Compiler Edition provides Intel C/C++ and Fortran compilers, Intel MPI & Intel MKL.""" + +toolchain = {'name': 'dummy', 'version': 'dummy'} + +suff = '3.187' +compver = '2015.%s' % suff + +dependencies = [ # version/released + ('icc', compver), # Apr 13th 2015 + ('ifort', compver), # Apr 13th 2015 + ('impi', '5.0.3.048', '', ('iccifort', compver)), # Feb 10th 2015 + ('imkl', '11.2.%s' % suff, '', ('iimpi', version)), # Apr 13th 2015 +] + +moduleclass = 'toolchain' +# Salomon specific optimalization +modextravars = { + 'CC': 'icc', + 'CXX': 'icpc', + 'F90': 'ifort', + 'F77': 'ifort', + 'FC': 'ifort', + 'OPTFLAGS': '-O3 -xHost -ip', + 'DEBUGFLAGS': '-O0 -g' +} diff --git a/i/ictce/ictce-8.3.5.eb b/i/ictce/ictce-8.3.5.eb new file mode 100644 index 00000000..1b936eeb --- /dev/null +++ b/i/ictce/ictce-8.3.5.eb @@ -0,0 +1,31 @@ +easyblock = "Toolchain" + +name = 'ictce' +version = '8.3.5' + +homepage = 'http://software.intel.com/en-us/intel-cluster-toolkit-compiler/' +description = """Intel Cluster Toolkit Compiler Edition provides Intel C/C++ and Fortran compilers, Intel MPI & Intel MKL.""" + +toolchain = {'name': 'dummy', 'version': 'dummy'} + +suff = '1.150' +compver = '2016.%s' % suff + +dependencies = [ # version/released + ('icc', compver), + ('ifort', compver), + ('impi', '5.1.2.150', '', ('iccifort', compver)), + ('imkl', '11.3.%s' % suff, '', ('iimpi', version)), +] + +moduleclass = 'toolchain' +# Salomon specific optimalization +modextravars = { + 'CC': 'icc', + 'CXX': 'icpc', + 'F90': 'ifort', + 'F77': 'ifort', + 'FC': 'ifort', + 'OPTFLAGS': '-O3 -xHost -ip', + 'DEBUGFLAGS': '-O0 -g' +} diff --git a/i/ifort/ifort-2013.5.192-GCC-4.8.3.eb b/i/ifort/ifort-2013.5.192-GCC-4.8.3.eb new file mode 100644 index 00000000..615f1d65 --- /dev/null +++ b/i/ifort/ifort-2013.5.192-GCC-4.8.3.eb @@ -0,0 +1,31 @@ +name = 'ifort' +version = '2013.5.192' + +homepage = 'http://software.intel.com/en-us/intel-compilers/' +description = "Fortran compiler from Intel" + +toolchain = {'name': 'dummy', 'version': ''} + +sources = ['l_fcompxe_%(version)s.tgz'] + +gcc = 'GCC' +gccver = '4.8.3' +versionsuffix = '-%s-%s' % (gcc, gccver) + +dependencies = [(gcc, gccver)] + +dontcreateinstalldir = 'True' + +# license file +import os +license_file = os.path.join(os.getenv('HOME'), "licenses", "intel", "license.lic") + +moduleclass = 'compiler' +# Salomon specific optimalization +modextravars = { + 'F90': 'ifort', + 'F77': 'ifort', + 'FC': 'ifort', + 'OPTFLAGS': '-O3 -xHost -ip', + 'DEBUGFLAGS': '-O0 -g' +} \ No newline at end of file diff --git a/i/ifort/ifort-2013.5.192.eb b/i/ifort/ifort-2013.5.192.eb new file mode 100644 index 00000000..731fce8e --- /dev/null +++ b/i/ifort/ifort-2013.5.192.eb @@ -0,0 +1,23 @@ +name = 'ifort' +version = '2013.5.192' + +homepage = 'http://software.intel.com/en-us/intel-compilers/' +description = "Fortran compiler from Intel" + +toolchain = {'name': 'dummy', 'version': 'dummy'} + +sources = ['l_fcompxe_%(version)s.tgz'] + +dontcreateinstalldir = 'True' + +# license file +import os +license_file = os.path.join(os.getenv('HOME'), "licenses", "intel", "license.lic") + +moduleclass = 'compiler' +# Salomon specific optimalization +modextravars = { + 'F90': 'ifort', + 'F77': 'ifort', + 'FC': 'ifort', +} diff --git a/i/ifort/ifort-2015.3.187-GNU-5.1.0-2.25.eb b/i/ifort/ifort-2015.3.187-GNU-5.1.0-2.25.eb new file mode 100644 index 00000000..d5663778 --- /dev/null +++ b/i/ifort/ifort-2015.3.187-GNU-5.1.0-2.25.eb @@ -0,0 +1,33 @@ +# Built with EasyBuild version 2.2.0dev on 2015-06-29_09-56-02 +name = 'ifort' +version = '2015.3.187' + +homepage = 'http://software.intel.com/en-us/intel-compilers/' +description = "Fortran compiler from Intel" + +toolchain = {'name': 'dummy', 'version': 'dummy'} + +sources = ['l_fcompxe_%(version)s.tgz'] + +gnu = 'GNU' +gnuver = '5.1.0-2.25' +versionsuffix = '-%s-%s' % (gnu, gnuver) + +dependencies = [(gnu, gnuver)] + +dontcreateinstalldir = 'True' + +# license file +import os +license_file = os.path.join(os.getenv('HOME'), "licenses", "intel", "license.lic") + +moduleclass = 'compiler' + +# Salomon specific optimalization +modextravars = { + 'F90': 'ifort', + 'F77': 'ifort', + 'FC': 'ifort', + 'OPTFLAGS': '-O3 -xHost -ip', + 'DEBUGFLAGS': '-O0 -g' +} diff --git a/i/ifort/ifort-2015.3.187.eb b/i/ifort/ifort-2015.3.187.eb new file mode 100644 index 00000000..32c80206 --- /dev/null +++ b/i/ifort/ifort-2015.3.187.eb @@ -0,0 +1,25 @@ +name = 'ifort' +version = '2015.3.187' + +homepage = 'http://software.intel.com/en-us/intel-compilers/' +description = "Fortran compiler from Intel" + +toolchain = {'name': 'dummy', 'version': 'dummy'} + +sources = ['l_fcompxe_%(version)s.tgz'] + +dontcreateinstalldir = 'True' + +# license file +import os +license_file = os.path.join(os.getenv('HOME'), "licenses", "intel", "license.lic") + +moduleclass = 'compiler' +# Salomon specific optimalization +modextravars = { + 'F90': 'ifort', + 'F77': 'ifort', + 'FC': 'ifort', + 'OPTFLAGS': '-O3 -xHost -ip', + 'DEBUGFLAGS': '-O0 -g' +} \ No newline at end of file diff --git a/i/ifort/ifort-2016.0.109-GCC-4.9.3-2.25.eb b/i/ifort/ifort-2016.0.109-GCC-4.9.3-2.25.eb new file mode 100644 index 00000000..d331cd8e --- /dev/null +++ b/i/ifort/ifort-2016.0.109-GCC-4.9.3-2.25.eb @@ -0,0 +1,35 @@ +# This is an easyconfig file for EasyBuild, see http://hpcugent.github.io/easybuild + +name = 'ifort' +version = '2016.0.109' + +homepage = 'http://software.intel.com/en-us/intel-compilers/' +description = "C and C++ compiler from Intel" + +toolchain = {'name': 'dummy', 'version': ''} + +sources = ['parallel_studio_xe_%(version_major)s_composer_edition_for_fortran.tgz'] + +checksums = ['bce7f6a71f7e44f67956197501d00b7c'] + +gccver = '4.9.3' +binutilsver = '2.25' +versionsuffix = '-GCC-%s-%s' % (gccver, binutilsver) + +dependencies = [ + ('GCCcore', gccver), + ('binutils', binutilsver, '', ('GCCcore', gccver)), +] + +# list of regex for components to install +# full list of components can be obtained from pset/mediaconfig.xml in unpacked sources +# cfr. https://software.intel.com/en-us/articles/intel-composer-xe-2015-silent-installation-guide +components = ['intel-comp', 'intel-fcomp', 'intel-ifort', 'intel-openmp', 'intel-ipsf?_'] + +dontcreateinstalldir = 'True' + +# license file +import os +license_file = os.path.join(os.getenv('HOME'), "licenses", "intel", "license.lic") + +moduleclass = 'compiler' diff --git a/i/ifort/ifort-2016.0.109-GCC-4.9.3.eb b/i/ifort/ifort-2016.0.109-GCC-4.9.3.eb new file mode 100644 index 00000000..908f7db1 --- /dev/null +++ b/i/ifort/ifort-2016.0.109-GCC-4.9.3.eb @@ -0,0 +1,36 @@ +# This is an easyconfig file for EasyBuild, see http://hpcugent.github.io/easybuild + +name = 'ifort' +version = '2016.0.109' + +homepage = 'http://software.intel.com/en-us/intel-compilers/' +description = "C and C++ compiler from Intel" + +toolchain = {'name': 'dummy', 'version': 'dummy'} + +sources = ['parallel_studio_xe_%(version_major)s_composer_edition_for_fortran_%(version)s.tgz'] + +checksums = ['bce7f6a71f7e44f67956197501d00b7c'] + +gcc = 'GCC' +gccver = '4.9.3' +versionsuffix = "-%s-%s" % ( gcc, gccver ) + +dependencies = [(gcc, gccver)] + +dontcreateinstalldir = 'True' + +# license file +import os +license_file = os.path.join(os.getenv('HOME'), "licenses", "intel", "license.lic") + +moduleclass = 'compiler' + +# Salomon specific optimalization +modextravars = { + 'F90': 'ifort', + 'F77': 'ifort', + 'FC': 'ifort', + 'OPTFLAGS': '-O3 -xHost -ip', + 'DEBUGFLAGS': '-O0 -g' +} diff --git a/i/ifort/ifort-2016.0.109-GCC-5.2.0.eb b/i/ifort/ifort-2016.0.109-GCC-5.2.0.eb new file mode 100644 index 00000000..ddd0cfd7 --- /dev/null +++ b/i/ifort/ifort-2016.0.109-GCC-5.2.0.eb @@ -0,0 +1,36 @@ +# This is an easyconfig file for EasyBuild, see http://hpcugent.github.io/easybuild + +name = 'ifort' +version = '2016.0.109' + +homepage = 'http://software.intel.com/en-us/intel-compilers/' +description = "C and C++ compiler from Intel" + +toolchain = {'name': 'dummy', 'version': 'dummy'} + +sources = ['parallel_studio_xe_%(version_major)s_composer_edition_for_fortran_%(version)s.tgz'] + +checksums = ['bce7f6a71f7e44f67956197501d00b7c'] + +gcc = 'GCC' +gccver = '5.2.0' +versionsuffix = "-%s-%s" % ( gcc, gccver ) + +dependencies = [(gcc, gccver)] + +dontcreateinstalldir = 'True' + +# license file +import os +license_file = os.path.join(os.getenv('HOME'), "licenses", "intel", "license.lic") + +moduleclass = 'compiler' + +# Salomon specific optimalization +modextravars = { + 'F90': 'ifort', + 'F77': 'ifort', + 'FC': 'ifort', + 'OPTFLAGS': '-O3 -xHost -ip', + 'DEBUGFLAGS': '-O0 -g' +} diff --git a/i/ifort/ifort-2016.0.109.eb b/i/ifort/ifort-2016.0.109.eb new file mode 100644 index 00000000..8911e246 --- /dev/null +++ b/i/ifort/ifort-2016.0.109.eb @@ -0,0 +1,34 @@ +# This is an easyconfig file for EasyBuild, see http://hpcugent.github.io/easybuild + +name = 'ifort' +version = '2016.0.109' + +homepage = 'http://software.intel.com/en-us/intel-compilers/' +description = "C and C++ compiler from Intel" + +toolchain = {'name': 'dummy', 'version': 'dummy'} + +sources = ['parallel_studio_xe_%(version_major)s_composer_edition_for_fortran.tgz'] + +checksums = ['bce7f6a71f7e44f67956197501d00b7c'] + +# list of regex for components to install +# full list of components can be obtained from pset/mediaconfig.xml in unpacked sources +# cfr. https://software.intel.com/en-us/articles/intel-composer-xe-2015-silent-installation-guide +components = ['intel-comp', 'intel-fcomp', 'intel-ifort', 'intel-openmp', 'intel-ipsf?_'] + +dontcreateinstalldir = 'True' + +# license file +import os +license_file = os.path.join(os.getenv('HOME'), "licenses", "intel", "license.lic") + +moduleclass = 'compiler' +# Salomon specific optimalization +modextravars = { + 'F90': 'ifort', + 'F77': 'ifort', + 'FC': 'ifort', + 'OPTFLAGS': '-O3 -xHost -ip', + 'DEBUGFLAGS': '-O0 -g' +} diff --git a/i/ifort/ifort-2016.1.150-GCC-4.9.3-2.25.eb b/i/ifort/ifort-2016.1.150-GCC-4.9.3-2.25.eb new file mode 100644 index 00000000..e6f9172e --- /dev/null +++ b/i/ifort/ifort-2016.1.150-GCC-4.9.3-2.25.eb @@ -0,0 +1,44 @@ +# This is an easyconfig file for EasyBuild, see http://hpcugent.github.io/easybuild + +name = 'ifort' +version = '2016.1.150' + +homepage = 'http://software.intel.com/en-us/intel-compilers/' +description = "C and C++ compiler from Intel" + +toolchain = {'name': 'dummy', 'version': ''} + +sources = ['parallel_studio_xe_%(version_major)s_composer_edition_for_fortran_update%(version_minor)s.tgz'] + +checksums = ['1e848c8283cf6a0210bce1d35ecd748b'] + +gccver = '4.9.3' +binutilsver = '2.25' +versionsuffix = '-GCC-%s-%s' % (gccver, binutilsver) + +dependencies = [ + ('GCCcore', gccver), + ('binutils', binutilsver, '', ('GCCcore', gccver)), +] + +# list of regex for components to install +# full list of components can be obtained from pset/mediaconfig.xml in unpacked sources +# cfr. https://software.intel.com/en-us/articles/intel-composer-xe-2015-silent-installation-guide +components = ['intel-comp', 'intel-fcomp', 'intel-ifort', 'intel-openmp', 'intel-ipsf?_'] + +dontcreateinstalldir = 'True' + +# license file +import os +license_file = os.path.join(os.getenv('HOME'), "licenses", "intel", "license.lic") + +moduleclass = 'compiler' + +# Salomon specific optimalization +modextravars = { + 'F90': 'ifort', + 'F77': 'ifort', + 'FC': 'ifort', + 'OPTFLAGS': '-O3 -xHost -ip', + 'DEBUGFLAGS': '-O0 -g' +} diff --git a/i/ifort/ifort-2016.1.150-GCC-4.9.3.eb b/i/ifort/ifort-2016.1.150-GCC-4.9.3.eb new file mode 100644 index 00000000..791cb775 --- /dev/null +++ b/i/ifort/ifort-2016.1.150-GCC-4.9.3.eb @@ -0,0 +1,36 @@ +# This is an easyconfig file for EasyBuild, see http://hpcugent.github.io/easybuild + +name = 'ifort' +version = '2016.1.150' + +homepage = 'http://software.intel.com/en-us/intel-compilers/' +description = "C and C++ compiler from Intel" + +toolchain = {'name': 'dummy', 'version': 'dummy'} + +sources = ['parallel_studio_xe_%(version_major)s_composer_edition_for_fortran_%(version)s.tgz'] + +checksums = ['1e848c8283cf6a0210bce1d35ecd748b'] + +gcc = 'GCC' +gccver = '4.9.3' +versionsuffix = "-%s-%s" % ( gcc, gccver ) + +dependencies = [(gcc, gccver)] + +dontcreateinstalldir = 'True' + +# license file +import os +license_file = os.path.join(os.getenv('HOME'), "licenses", "intel", "license.lic") + +moduleclass = 'compiler' + +# Salomon specific optimalization +modextravars = { + 'F90': 'ifort', + 'F77': 'ifort', + 'FC': 'ifort', + 'OPTFLAGS': '-O3 -xHost -ip', + 'DEBUGFLAGS': '-O0 -g' +} diff --git a/i/ifort/ifort-2016.1.150.eb b/i/ifort/ifort-2016.1.150.eb new file mode 100644 index 00000000..0cfef0ae --- /dev/null +++ b/i/ifort/ifort-2016.1.150.eb @@ -0,0 +1,27 @@ +name = 'ifort' +version = '2016.1.150' + +homepage = 'http://software.intel.com/en-us/intel-compilers/' +description = "Fortran compiler from Intel" + +toolchain = {'name': 'dummy', 'version': 'dummy'} + +sources = ['parallel_studio_xe_%(version_major)s_composer_edition_for_fortran_update%(version_minor)s.tgz'] + +checksums = ['1e848c8283cf6a0210bce1d35ecd748b'] + +dontcreateinstalldir = 'True' + +# license file +import os +license_file = os.path.join(os.getenv('HOME'), "licenses", "intel", "license.lic") + +moduleclass = 'compiler' +# Salomon specific optimalization +modextravars = { + 'F90': 'ifort', + 'F77': 'ifort', + 'FC': 'ifort', + 'OPTFLAGS': '-O3 -xHost -ip', + 'DEBUGFLAGS': '-O0 -g' +} diff --git a/i/ifort/ifort-2016.2.181-GCC-4.9.3-2.25.eb b/i/ifort/ifort-2016.2.181-GCC-4.9.3-2.25.eb new file mode 100644 index 00000000..ffe995c4 --- /dev/null +++ b/i/ifort/ifort-2016.2.181-GCC-4.9.3-2.25.eb @@ -0,0 +1,33 @@ +# This is an easyconfig file for EasyBuild, see http://hpcugent.github.io/easybuild + +name = 'ifort' +version = '2016.2.181' + +homepage = 'http://software.intel.com/en-us/intel-compilers/' +description = "C and C++ compiler from Intel" + +toolchain = {'name': 'dummy', 'version': 'dummy'} + +sources = ['parallel_studio_xe_%(version_major)s_composer_edition_for_fortran_update%(version_minor)s.tgz'] + +checksums = ['70e88db11efc59b1d8ff8b5aadf50f7f'] + +gccver = '4.9.3' +binutilsver = '2.25' +versionsuffix = '-GCC-%s-%s' % (gccver, binutilsver) + +dependencies = [ + ('GCCcore', gccver), + ('binutils', binutilsver, '', ('GCCcore', gccver)), +] + +# list of regex for components to install +# full list of components can be obtained from pset/mediaconfig.xml in unpacked sources +# cfr. https://software.intel.com/en-us/articles/intel-composer-xe-2015-silent-installation-guide +components = ['intel-comp', 'intel-fcomp', 'intel-ifort', 'intel-openmp', 'intel-ipsf?_'] + +dontcreateinstalldir = 'True' + +license_file = HOME + '/licenses/intel/license.lic' + +moduleclass = 'compiler' diff --git a/i/ifort/ifort-2016.2.181-GCC-5.3.0-2.26.eb b/i/ifort/ifort-2016.2.181-GCC-5.3.0-2.26.eb new file mode 100644 index 00000000..5844c8ab --- /dev/null +++ b/i/ifort/ifort-2016.2.181-GCC-5.3.0-2.26.eb @@ -0,0 +1,33 @@ +# This is an easyconfig file for EasyBuild, see http://hpcugent.github.io/easybuild + +name = 'ifort' +version = '2016.2.181' + +homepage = 'http://software.intel.com/en-us/intel-compilers/' +description = "C and C++ compiler from Intel" + +toolchain = {'name': 'dummy', 'version': 'dummy'} + +sources = ['parallel_studio_xe_%(version_major)s_composer_edition_for_fortran_update%(version_minor)s.tgz'] + +checksums = ['70e88db11efc59b1d8ff8b5aadf50f7f'] + +gccver = '5.3.0' +binutilsver = '2.26' +versionsuffix = '-GCC-%s-%s' % (gccver, binutilsver) + +dependencies = [ + ('GCCcore', gccver), + ('binutils', binutilsver, '', ('GCCcore', gccver)), +] + +# list of regex for components to install +# full list of components can be obtained from pset/mediaconfig.xml in unpacked sources +# cfr. https://software.intel.com/en-us/articles/intel-composer-xe-2015-silent-installation-guide +components = ['intel-comp', 'intel-fcomp', 'intel-ifort', 'intel-openmp', 'intel-ipsf?_'] + +dontcreateinstalldir = 'True' + +license_file = HOME + '/licenses/intel/license.lic' + +moduleclass = 'compiler' diff --git a/i/ifort/ifort-2016.3.210-GCC-4.9.3-2.25.eb b/i/ifort/ifort-2016.3.210-GCC-4.9.3-2.25.eb new file mode 100644 index 00000000..303793bf --- /dev/null +++ b/i/ifort/ifort-2016.3.210-GCC-4.9.3-2.25.eb @@ -0,0 +1,33 @@ +# This is an easyconfig file for EasyBuild, see http://hpcugent.github.io/easybuild + +name = 'ifort' +version = '2016.3.210' + +homepage = 'http://software.intel.com/en-us/intel-compilers/' +description = "C and C++ compiler from Intel" + +toolchain = {'name': 'dummy', 'version': 'dummy'} + +sources = ['parallel_studio_xe_%(version_major)s_composer_edition_for_fortran_update%(version_minor)s.tgz'] + +checksums = ['70cf1ea91280e3e8ba4bc216bae63e4a'] + +gccver = '4.9.3' +binutilsver = '2.25' +versionsuffix = '-GCC-%s-%s' % (gccver, binutilsver) + +dependencies = [ + ('GCCcore', gccver), + ('binutils', binutilsver, '', ('GCCcore', gccver)), +] + +# list of regex for components to install +# full list of components can be obtained from pset/mediaconfig.xml in unpacked sources +# cfr. https://software.intel.com/en-us/articles/intel-composer-xe-2015-silent-installation-guide +components = ['intel-comp', 'intel-fcomp', 'intel-ifort', 'intel-openmp', 'intel-ipsf?_'] + +dontcreateinstalldir = 'True' + +license_file = HOME + '/licenses/intel/license.lic' + +moduleclass = 'compiler' diff --git a/i/ifort/ifort-2016.3.210-GCC-5.3.0-2.26.eb b/i/ifort/ifort-2016.3.210-GCC-5.3.0-2.26.eb new file mode 100644 index 00000000..0275fca5 --- /dev/null +++ b/i/ifort/ifort-2016.3.210-GCC-5.3.0-2.26.eb @@ -0,0 +1,33 @@ +# This is an easyconfig file for EasyBuild, see http://hpcugent.github.io/easybuild + +name = 'ifort' +version = '2016.3.210' + +homepage = 'http://software.intel.com/en-us/intel-compilers/' +description = "C and C++ compiler from Intel" + +toolchain = {'name': 'dummy', 'version': 'dummy'} + +sources = ['parallel_studio_xe_%(version_major)s_update%(version_minor)s.tgz'] + +checksums = ['eda19bb0d0d19709197ede58f13443f3'] + +gccver = '5.3.0' +binutilsver = '2.26' +versionsuffix = '-GCC-%s-%s' % (gccver, binutilsver) + +dependencies = [ + ('GCCcore', gccver), + ('binutils', binutilsver, '', ('GCCcore', gccver)), +] + +# list of regex for components to install +# full list of components can be obtained from pset/mediaconfig.xml in unpacked sources +# cfr. https://software.intel.com/en-us/articles/intel-composer-xe-2015-silent-installation-guide +components = ['intel-comp', 'intel-fcomp', 'intel-ifort', 'intel-openmp', 'intel-ipsf?_'] + +dontcreateinstalldir = 'True' + +license_file = HOME + '/licenses/intel/license.lic' + +moduleclass = 'compiler' diff --git a/i/ifort/ifort-2017.0.098-GCC-5.4.0-2.26.eb b/i/ifort/ifort-2017.0.098-GCC-5.4.0-2.26.eb new file mode 100644 index 00000000..9f30cbac --- /dev/null +++ b/i/ifort/ifort-2017.0.098-GCC-5.4.0-2.26.eb @@ -0,0 +1,33 @@ +# This is an easyconfig file for EasyBuild, see http://hpcugent.github.io/easybuild + +name = 'ifort' +version = '2017.0.098' + +homepage = 'http://software.intel.com/en-us/intel-compilers/' +description = "C and C++ compiler from Intel" + +toolchain = {'name': 'dummy', 'version': 'dummy'} + +sources = ['parallel_studio_xe_%(version_major)s_composer_edition_for_fortran.tgz'] + +checksums = ['8787795951fe10f90ce7dcdcec1b9341'] + +gccver = '5.4.0' +binutilsver = '2.26' +versionsuffix = '-GCC-%s-%s' % (gccver, binutilsver) + +dependencies = [ + ('GCCcore', gccver), + ('binutils', binutilsver, '', ('GCCcore', gccver)), +] + +# list of regex for components to install +# full list of components can be obtained from pset/mediaconfig.xml in unpacked sources +# cfr. https://software.intel.com/en-us/articles/intel-composer-xe-2015-silent-installation-guide +components = ['intel-comp', 'intel-fcomp', 'intel-ifort', 'intel-openmp', 'intel-ipsf?_'] + +dontcreateinstalldir = 'True' + +license_file = HOME + '/licenses/intel/license.lic' + +moduleclass = 'compiler' diff --git a/i/ifort/ifort-2017.1.132-GCC-5.4.0-2.26.eb b/i/ifort/ifort-2017.1.132-GCC-5.4.0-2.26.eb new file mode 100644 index 00000000..931761f8 --- /dev/null +++ b/i/ifort/ifort-2017.1.132-GCC-5.4.0-2.26.eb @@ -0,0 +1,36 @@ +# This is an easyconfig file for EasyBuild, see http://hpcugent.github.io/easybuild + +name = 'ifort' +version = '2017.1.132' + +homepage = 'http://software.intel.com/en-us/intel-compilers/' +description = "Fortran compiler from Intel" + +toolchain = {'name': 'dummy', 'version': 'dummy'} + +sources = ['parallel_studio_xe_%(version_major)s_update%(version_minor)s_composer_edition_for_fortran.tgz'] + +checksums = ['612169f4b40cdded8e212bf097925e4f'] + +# remove dependency on intel-mpi-rt-mic +#patches = ['ifort_2017_no_mpi_mic_dependency.patch'] + +gccver = '5.4.0' +binutilsver = '2.26' +versionsuffix = '-GCC-%s-%s' % (gccver, binutilsver) + +dependencies = [ + ('GCCcore', gccver), + ('binutils', binutilsver, '', ('GCCcore', gccver)), +] + +# list of regex for components to install +# full list of components can be obtained from pset/mediaconfig.xml in unpacked sources +# cfr. https://software.intel.com/en-us/articles/intel-composer-xe-2015-silent-installation-guide +components = ['intel-comp', 'intel-fcomp', 'intel-ifort', 'intel-openmp', 'intel-ipsf?_'] + +dontcreateinstalldir = 'True' + +license_file = HOME + '/licenses/intel/license.lic' + +moduleclass = 'compiler' diff --git a/i/iimpi/iimpi-2016.00-GCC-4.9.3.eb b/i/iimpi/iimpi-2016.00-GCC-4.9.3.eb new file mode 100644 index 00000000..5623e074 --- /dev/null +++ b/i/iimpi/iimpi-2016.00-GCC-4.9.3.eb @@ -0,0 +1,23 @@ +# This is an easyconfig file for EasyBuild, see http://hpcugent.github.io/easybuild +easyblock = "Toolchain" + +name = 'iimpi' +version = '2016.00' +versionsuffix = '-GCC-4.9.3' + +homepage = 'http://software.intel.com/en-us/intel-cluster-toolkit-compiler/' +description = """Intel C/C++ and Fortran compilers, alongside Intel MPI.""" + +toolchain = {'name': 'dummy', 'version': 'dummy'} + +suff = '1.150' +compver = '2016.%s' % suff + +dependencies = [ + ('icc', compver, versionsuffix), + ('ifort', compver, versionsuffix), + ('impi', '5.1.2.150', '', ('iccifort', '%s%s' % (compver, versionsuffix))), +] + +moduleclass = 'toolchain' + diff --git a/i/iimpi/iimpi-2016.00-GCC-5.2.0.eb b/i/iimpi/iimpi-2016.00-GCC-5.2.0.eb new file mode 100644 index 00000000..5bd4775f --- /dev/null +++ b/i/iimpi/iimpi-2016.00-GCC-5.2.0.eb @@ -0,0 +1,23 @@ +# This is an easyconfig file for EasyBuild, see http://hpcugent.github.io/easybuild +easyblock = "Toolchain" + +name = 'iimpi' +version = '2016.00' +versionsuffix = '-GCC-5.2.0' + +homepage = 'http://software.intel.com/en-us/intel-cluster-toolkit-compiler/' +description = """Intel C/C++ and Fortran compilers, alongside Intel MPI.""" + +toolchain = {'name': 'dummy', 'version': 'dummy'} + +suff = '0.109' +compver = '2016.%s' % suff + +dependencies = [ + ('icc', compver, versionsuffix), + ('ifort', compver, versionsuffix), + ('impi', '5.1.1.109', '', ('iccifort', '%s%s' % (compver, versionsuffix))), +] + +moduleclass = 'toolchain' + diff --git a/i/iimpi/iimpi-2016.01-GCC-4.9.3.eb b/i/iimpi/iimpi-2016.01-GCC-4.9.3.eb new file mode 100644 index 00000000..5ca44c6b --- /dev/null +++ b/i/iimpi/iimpi-2016.01-GCC-4.9.3.eb @@ -0,0 +1,23 @@ +# This is an easyconfig file for EasyBuild, see http://hpcugent.github.io/easybuild +easyblock = "Toolchain" + +name = 'iimpi' +version = '2016.01' +versionsuffix = '-GCC-4.9.3' + +homepage = 'http://software.intel.com/en-us/intel-cluster-toolkit-compiler/' +description = """Intel C/C++ and Fortran compilers, alongside Intel MPI.""" + +toolchain = {'name': 'dummy', 'version': 'dummy'} + +suff = '1.150' +compver = '2016.%s' % suff + +dependencies = [ + ('icc', compver, versionsuffix), + ('ifort', compver, versionsuffix), + ('impi', '5.1.2.150', '', ('iccifort', '%s%s' % (compver, versionsuffix))), +] + +moduleclass = 'toolchain' + diff --git a/i/iimpi/iimpi-5.5.0-GCC-4.8.3.eb b/i/iimpi/iimpi-5.5.0-GCC-4.8.3.eb new file mode 100644 index 00000000..a818766c --- /dev/null +++ b/i/iimpi/iimpi-5.5.0-GCC-4.8.3.eb @@ -0,0 +1,30 @@ +easyblock = "Toolchain" + +name = 'iimpi' +version = '5.5.0' +versionsuffix = '-GCC-4.8.3' + +homepage = 'http://software.intel.com/en-us/intel-cluster-toolkit-compiler/' +description = """Intel C/C++ and Fortran compilers, alongside Intel MPI.""" + +toolchain = {'name': 'dummy', 'version': 'dummy'} + +suff = '5.192' +compver = '2013.%s' % suff + +dependencies = [ # version/released + ('icc', compver, versionsuffix), # 28 Apr 2014 + ('ifort', compver, versionsuffix), # 28 Apr 2014 + ('impi', '4.1.1.036', '', ('iccifort', '%s%s' % (compver, versionsuffix))), # 06 Mar 2014 +] + +moduleclass = 'toolchain' + +# Salomon optimalisations +modextravars = { + 'CC': 'icc', + 'CXX': 'icpc', + 'F90': 'ifort', + 'F77': 'ifort', + 'FC': 'ifort', +} diff --git a/i/iimpi/iimpi-5.5.0.eb b/i/iimpi/iimpi-5.5.0.eb new file mode 100644 index 00000000..d5ab3a38 --- /dev/null +++ b/i/iimpi/iimpi-5.5.0.eb @@ -0,0 +1,27 @@ +easyblock = "Toolchain" + +name = 'iimpi' +version = '5.5.0' + +homepage = 'http://software.intel.com/en-us/intel-cluster-toolkit-compiler/' +description = """Intel C/C++ and Fortran compilers, alongside Intel MPI.""" + +toolchain = {'name': 'dummy', 'version': 'dummy'} + +compsuffix = '.5.192' +compver = '2013' + compsuffix +dependencies = [ + ('icc', compver), + ('ifort', compver), + ('impi', '4.1.1.036', '', ('iccifort', compver)), +] + +moduleclass = 'toolchain' + +modextravars = { + 'CC': 'icc', + 'CXX': 'icpc', + 'F90': 'ifort', + 'F77': 'ifort', + 'FC': 'ifort', +} diff --git a/i/iimpi/iimpi-7.3.5-GNU-5.1.0-2.25.eb b/i/iimpi/iimpi-7.3.5-GNU-5.1.0-2.25.eb new file mode 100644 index 00000000..4fc57454 --- /dev/null +++ b/i/iimpi/iimpi-7.3.5-GNU-5.1.0-2.25.eb @@ -0,0 +1,23 @@ +# Built with EasyBuild version 2.2.0dev on 2015-06-29_10-00-45 +easyblock = "Toolchain" + +name = 'iimpi' +version = '7.3.5' +versionsuffix = '-GNU-5.1.0-2.25' + +homepage = 'http://software.intel.com/en-us/intel-cluster-toolkit-compiler/' +description = """Intel C/C++ and Fortran compilers, alongside Intel MPI.""" + +toolchain = {'name': 'dummy', 'version': 'dummy'} + +suff = '3.187' +compver = '2015.%s' % suff + +dependencies = [ + ('icc', compver, versionsuffix), + ('ifort', compver, versionsuffix), + ('impi', '5.0.3.048', '', ('iccifort', '%s%s' % (compver, versionsuffix))), +] + +moduleclass = 'toolchain' + diff --git a/i/iimpi/iimpi-7.3.5.eb b/i/iimpi/iimpi-7.3.5.eb new file mode 100644 index 00000000..ec966518 --- /dev/null +++ b/i/iimpi/iimpi-7.3.5.eb @@ -0,0 +1,27 @@ +easyblock = "Toolchain" + +name = 'iimpi' +version = '7.3.5' + +homepage = 'http://software.intel.com/en-us/intel-cluster-toolkit-compiler/' +description = """Intel Cluster Toolkit Compiler Edition provides Intel C/C++ and Fortran compilers, Intel MPI & Intel MKL.""" + +toolchain = {'name': 'dummy', 'version': 'dummy'} + +compver = '2015.3.187' +dependencies = [ + ('icc', compver), + ('ifort', compver), + ('impi', '5.0.3.048', '', ('iccifort', compver)), +] + +moduleclass = 'toolchain' + +# Salomon optimalisations +modextravars = { + 'CC': 'icc', + 'CXX': 'icpc', + 'F90': 'ifort', + 'F77': 'ifort', + 'FC': 'ifort', +} diff --git a/i/iimpi/iimpi-8.3.5.eb b/i/iimpi/iimpi-8.3.5.eb new file mode 100644 index 00000000..b8e4c731 --- /dev/null +++ b/i/iimpi/iimpi-8.3.5.eb @@ -0,0 +1,27 @@ +easyblock = "Toolchain" + +name = 'iimpi' +version = '8.3.5' + +homepage = 'http://software.intel.com/en-us/intel-cluster-toolkit-compiler/' +description = """Intel Cluster Toolkit Compiler Edition provides Intel C/C++ and Fortran compilers, Intel MPI & Intel MKL.""" + +toolchain = {'name': 'dummy', 'version': 'dummy'} + +compver = '2016.1.150' +dependencies = [ + ('icc', compver), + ('ifort', compver), + ('impi', '5.1.2.150', '', ('iccifort', compver)), +] + +moduleclass = 'toolchain' + +# Salomon optimalisations +modextravars = { + 'CC': 'icc', + 'CXX': 'icpc', + 'F90': 'ifort', + 'F77': 'ifort', + 'FC': 'ifort', +} diff --git a/i/imkl/imkl-10.3.12.361-MVAPICH2-1.9.eb b/i/imkl/imkl-10.3.12.361-MVAPICH2-1.9.eb new file mode 100644 index 00000000..4d5ef42f --- /dev/null +++ b/i/imkl/imkl-10.3.12.361-MVAPICH2-1.9.eb @@ -0,0 +1,35 @@ +name = 'imkl' +version = '10.3.12.361' + +homepage = 'http://software.intel.com/en-us/intel-mkl/' +description = """Intel Math Kernel Library is a library of highly optimized, extensively threaded math routines +for science, engineering, and financial applications that require maximum performance. Core math functions include +BLAS, LAPACK, ScaLAPACK, Sparse Solvers, Fast Fourier Transforms, Vector Math, and more.""" + +toolchain = {'name': 'dummy', 'version': ''} + +sources = ['l_mkl_%(version)s.tgz'] + +compver = '2011.13.367' +comp = ('iccifort', compver) + +# deps for interface build +mpi = 'MVAPICH2' +mpiver = '1.9' +versionsuffix = '-%s-%s' % (mpi, mpiver) + +dependencies = [ + ('icc', compver), + ('ifort', compver), + (mpi, mpiver, '', comp), +] + +dontcreateinstalldir = 'True' + +interfaces = True + +# license file +import os +license_file = os.path.join(os.getenv('HOME'), "licenses", "intel", "license.lic") + +moduleclass = 'numlib' diff --git a/i/imkl/imkl-10.3.12.361-OpenMPI-1.6.3.eb b/i/imkl/imkl-10.3.12.361-OpenMPI-1.6.3.eb new file mode 100644 index 00000000..2bd88ac6 --- /dev/null +++ b/i/imkl/imkl-10.3.12.361-OpenMPI-1.6.3.eb @@ -0,0 +1,35 @@ +name = 'imkl' +version = '10.3.12.361' + +homepage = 'http://software.intel.com/en-us/intel-mkl/' +description = """Intel Math Kernel Library is a library of highly optimized, extensively threaded math routines +for science, engineering, and financial applications that require maximum performance. Core math functions include +BLAS, LAPACK, ScaLAPACK, Sparse Solvers, Fast Fourier Transforms, Vector Math, and more.""" + +toolchain = {'name': 'dummy', 'version': ''} + +sources = ['l_mkl_%(version)s.tgz'] + +compver = '2011.13.367' +comp = ('iccifort', compver) + +# deps for interface build +mpi = 'OpenMPI' +mpiver = '1.6.3' +versionsuffix = '-%s-%s' % (mpi, mpiver) + +dependencies = [ + ('icc', compver), + ('ifort', compver), + (mpi, mpiver, '', comp), +] + +dontcreateinstalldir = 'True' + +interfaces = True + +# license file +import os +license_file = os.path.join(os.getenv('HOME'), "licenses", "intel", "license.lic") + +moduleclass = 'numlib' diff --git a/i/imkl/imkl-11.2.3.187-iimpi-7.3.5-GNU-5.1.0-2.25.eb b/i/imkl/imkl-11.2.3.187-iimpi-7.3.5-GNU-5.1.0-2.25.eb new file mode 100644 index 00000000..bed482fd --- /dev/null +++ b/i/imkl/imkl-11.2.3.187-iimpi-7.3.5-GNU-5.1.0-2.25.eb @@ -0,0 +1,36 @@ +# Built with EasyBuild version 2.2.0dev on 2015-06-29_10-08-02 +name = 'imkl' +version = '11.2.3.187' + +homepage = 'http://software.intel.com/en-us/intel-mkl/' +description = """Intel Math Kernel Library is a library of highly optimized, + extensively threaded math routines for science, engineering, and financial + applications that require maximum performance. Core math functions include + BLAS, LAPACK, ScaLAPACK, Sparse Solvers, Fast Fourier Transforms, Vector Math, and more.""" + +toolchain = {'name': 'iimpi', 'version': '7.3.5-GNU-5.1.0-2.25'} + +sources = ['l_mkl_%(version)s.tgz'] + +dontcreateinstalldir = 'True' + +# license file +import os +license_file = os.path.join(os.getenv('HOME'), "licenses", "intel", "license.lic") + +interfaces = True + +moduleclass = 'numlib' + +postinstallcmds = [ + # extract the examples + 'tar xvzf %(installdir)s/mkl/examples/examples_cluster.tgz -C %(installdir)s/mkl/examples/', + 'tar xvzf %(installdir)s/mkl/examples/examples_core_c.tgz -C %(installdir)s/mkl/examples/', + 'tar xvzf %(installdir)s/mkl/examples/examples_core_f.tgz -C %(installdir)s/mkl/examples/', + 'tar xvzf %(installdir)s/mkl/examples/examples_f95.tgz -C %(installdir)s/mkl/examples/', + 'tar xvzf %(installdir)s/mkl/examples/examples_mic.tgz -C %(installdir)s/mkl/examples/' +] + +modextravars = { + 'MKL_EXAMPLES' : '%(installdir)s/mkl/examples/', +} diff --git a/i/imkl/imkl-11.2.3.187.eb b/i/imkl/imkl-11.2.3.187.eb new file mode 100644 index 00000000..447cf2e7 --- /dev/null +++ b/i/imkl/imkl-11.2.3.187.eb @@ -0,0 +1,56 @@ +# Built with EasyBuild version 2.2.0dev on 2015-06-29_10-08-02 +name = 'imkl' +version = '11.2.3.187' + +homepage = 'http://software.intel.com/en-us/intel-mkl/' +description = """Intel Math Kernel Library is a library of highly optimized, + extensively threaded math routines for science, engineering, and financial + applications that require maximum performance. Core math functions include + BLAS, LAPACK, ScaLAPACK, Sparse Solvers, Fast Fourier Transforms, Vector Math, and more.""" + +toolchain = {'name': 'dummy', 'version': 'dummy'} + +sources = ['l_mkl_%(version)s.tgz'] + +dontcreateinstalldir = 'True' + + +# license file +import os +license_file = os.path.join(os.getenv('HOME'), "licenses", "intel", "license.lic") + +interfaces = True + +compver = '2015.3.187-GNU-5.1.0-2.25' +builddependencies = [ + ('icc', compver), + ('ifort', compver), + ('impi', '5.0.3.048-iccifort-2015.3.187-GNU-5.1.0-2.25') +] + + +moduleclass = 'numlib' + +postinstallcmds = [ + # extract the examples + 'tar xvzf %(installdir)s/mkl/examples/examples_cluster.tgz -C %(installdir)s/mkl/examples/', + 'tar xvzf %(installdir)s/mkl/examples/examples_core_c.tgz -C %(installdir)s/mkl/examples/', + 'tar xvzf %(installdir)s/mkl/examples/examples_core_f.tgz -C %(installdir)s/mkl/examples/', + 'tar xvzf %(installdir)s/mkl/examples/examples_f95.tgz -C %(installdir)s/mkl/examples/', + 'tar xvzf %(installdir)s/mkl/examples/examples_mic.tgz -C %(installdir)s/mkl/examples/' +] + +modextravars = { + 'MKL_EXAMPLES' : '%(installdir)s/mkl/examples/', + 'MKL_INC_DIR': '%(installdir)s/include', + 'MKL_LIB_DIR': '%(installdir)s/lib/intel64', + 'MKL_LIBS': '-L%(installdir)s/lib/intel64 -lmkl_intel_lp64 -lmkl_sequential -lmkl_core -lm', + 'MKL_LIBS_MT': '-L%(installdir)s/lib/intel64 -lmkl_rt -liomp5 -lm', + 'MKL_SCA_LIBS': '-L%(installdir)s/lib/intel64 -lmkl_intel_lp64 -lmkl_sequential -lmkl_scalapack_lp64 -lmkl_core -lmkl_blacs_openmpi_lp64 -lm', + 'MKL_SCA_LIBS_MT': '-L%(installdir)s/lib/intel64 -lmkl_rt -lmkl_scalapack_lp64 -lmkl_blacs_openmpi_lp64 -liomp5 -lm', + 'MKL_TARGET_ARCH': 'intel64', +} + +modextrapaths = { + 'MIC_LD_LIBRARY_PATH': 'lib/mic/', +} diff --git a/i/imkl/imkl-11.3.0.109-iimpi-2016.00-GCC-4.9.3.eb b/i/imkl/imkl-11.3.0.109-iimpi-2016.00-GCC-4.9.3.eb new file mode 100644 index 00000000..c4c1c8c4 --- /dev/null +++ b/i/imkl/imkl-11.3.0.109-iimpi-2016.00-GCC-4.9.3.eb @@ -0,0 +1,38 @@ +# This is an easyconfig file for EasyBuild, see http://hpcugent.github.io/easybuild + +name = 'imkl' +version = '11.3.0.109' + +homepage = 'http://software.intel.com/en-us/intel-mkl/' +description = """Intel Math Kernel Library is a library of highly optimized, + extensively threaded math routines for science, engineering, and financial + applications that require maximum performance. Core math functions include + BLAS, LAPACK, ScaLAPACK, Sparse Solvers, Fast Fourier Transforms, Vector Math, and more.""" + +toolchain = {'name': 'iimpi', 'version': '2016.00-GCC-4.9.3'} + +sources = ['l_mkl_%(version)s.tgz'] +checksums = ['47567e38801efe273b36b5250c759af7'] + +dontcreateinstalldir = 'True' + +#license file +import os +license_file = os.path.join(os.getenv('HOME'), "licenses", "intel", "license.lic") + +interfaces = True + +moduleclass = 'numlib' + +postinstallcmds = [ + # extract the examples + 'tar xvzf %(installdir)s/mkl/examples/examples_cluster.tgz -C %(installdir)s/mkl/examples/', + 'tar xvzf %(installdir)s/mkl/examples/examples_core_c.tgz -C %(installdir)s/mkl/examples/', + 'tar xvzf %(installdir)s/mkl/examples/examples_core_f.tgz -C %(installdir)s/mkl/examples/', + 'tar xvzf %(installdir)s/mkl/examples/examples_f95.tgz -C %(installdir)s/mkl/examples/', + 'tar xvzf %(installdir)s/mkl/examples/examples_mic.tgz -C %(installdir)s/mkl/examples/' +] + +modextravars = { + 'MKL_EXAMPLES' : '%(installdir)s/mkl/examples/', +} diff --git a/i/imkl/imkl-11.3.0.109-iimpi-2016.00-GCC-5.2.0.eb b/i/imkl/imkl-11.3.0.109-iimpi-2016.00-GCC-5.2.0.eb new file mode 100644 index 00000000..1483b60f --- /dev/null +++ b/i/imkl/imkl-11.3.0.109-iimpi-2016.00-GCC-5.2.0.eb @@ -0,0 +1,38 @@ +# This is an easyconfig file for EasyBuild, see http://hpcugent.github.io/easybuild + +name = 'imkl' +version = '11.3.0.109' + +homepage = 'http://software.intel.com/en-us/intel-mkl/' +description = """Intel Math Kernel Library is a library of highly optimized, + extensively threaded math routines for science, engineering, and financial + applications that require maximum performance. Core math functions include + BLAS, LAPACK, ScaLAPACK, Sparse Solvers, Fast Fourier Transforms, Vector Math, and more.""" + +toolchain = {'name': 'iimpi', 'version': '2016.00-GCC-5.2.0'} + +sources = ['l_mkl_%(version)s.tgz'] +checksums = ['47567e38801efe273b36b5250c759af7'] + +dontcreateinstalldir = 'True' + +#license file +import os +license_file = os.path.join(os.getenv('HOME'), "licenses", "intel", "license.lic") + +interfaces = True + +moduleclass = 'numlib' + +postinstallcmds = [ + # extract the examples + 'tar xvzf %(installdir)s/mkl/examples/examples_cluster.tgz -C %(installdir)s/mkl/examples/', + 'tar xvzf %(installdir)s/mkl/examples/examples_core_c.tgz -C %(installdir)s/mkl/examples/', + 'tar xvzf %(installdir)s/mkl/examples/examples_core_f.tgz -C %(installdir)s/mkl/examples/', + 'tar xvzf %(installdir)s/mkl/examples/examples_f95.tgz -C %(installdir)s/mkl/examples/', + 'tar xvzf %(installdir)s/mkl/examples/examples_mic.tgz -C %(installdir)s/mkl/examples/' +] + +modextravars = { + 'MKL_EXAMPLES' : '%(installdir)s/mkl/examples/', +} diff --git a/i/imkl/imkl-11.3.1.150-iimpi-2016.00-GCC-4.9.3.eb b/i/imkl/imkl-11.3.1.150-iimpi-2016.00-GCC-4.9.3.eb new file mode 100644 index 00000000..a6bafc90 --- /dev/null +++ b/i/imkl/imkl-11.3.1.150-iimpi-2016.00-GCC-4.9.3.eb @@ -0,0 +1,38 @@ +# This is an easyconfig file for EasyBuild, see http://hpcugent.github.io/easybuild + +name = 'imkl' +version = '11.3.1.150' + +homepage = 'http://software.intel.com/en-us/intel-mkl/' +description = """Intel Math Kernel Library is a library of highly optimized, + extensively threaded math routines for science, engineering, and financial + applications that require maximum performance. Core math functions include + BLAS, LAPACK, ScaLAPACK, Sparse Solvers, Fast Fourier Transforms, Vector Math, and more.""" + +toolchain = {'name': 'iimpi', 'version': '2016.00-GCC-4.9.3'} + +sources = ['l_mkl_%(version)s.tgz'] +checksums = ['b57ff502b5f97f2f783e4bbda7ce42b3'] + +dontcreateinstalldir = 'True' + +#license file +import os +license_file = os.path.join(os.getenv('HOME'), "licenses", "intel", "license.lic") + +interfaces = True + +moduleclass = 'numlib' + +postinstallcmds = [ + # extract the examples + 'tar xvzf %(installdir)s/mkl/examples/examples_cluster.tgz -C %(installdir)s/mkl/examples/', + 'tar xvzf %(installdir)s/mkl/examples/examples_core_c.tgz -C %(installdir)s/mkl/examples/', + 'tar xvzf %(installdir)s/mkl/examples/examples_core_f.tgz -C %(installdir)s/mkl/examples/', + 'tar xvzf %(installdir)s/mkl/examples/examples_f95.tgz -C %(installdir)s/mkl/examples/', + 'tar xvzf %(installdir)s/mkl/examples/examples_mic.tgz -C %(installdir)s/mkl/examples/' +] + +modextravars = { + 'MKL_EXAMPLES' : '%(installdir)s/mkl/examples/', +} diff --git a/i/imkl/imkl-11.3.1.150-iimpi-2016.01-GCC-4.9.3.eb b/i/imkl/imkl-11.3.1.150-iimpi-2016.01-GCC-4.9.3.eb new file mode 100644 index 00000000..f64f23cf --- /dev/null +++ b/i/imkl/imkl-11.3.1.150-iimpi-2016.01-GCC-4.9.3.eb @@ -0,0 +1,38 @@ +# This is an easyconfig file for EasyBuild, see http://hpcugent.github.io/easybuild + +name = 'imkl' +version = '11.3.1.150' + +homepage = 'http://software.intel.com/en-us/intel-mkl/' +description = """Intel Math Kernel Library is a library of highly optimized, + extensively threaded math routines for science, engineering, and financial + applications that require maximum performance. Core math functions include + BLAS, LAPACK, ScaLAPACK, Sparse Solvers, Fast Fourier Transforms, Vector Math, and more.""" + +toolchain = {'name': 'iimpi', 'version': '2016.01-GCC-4.9.3'} + +sources = ['l_mkl_%(version)s.tgz'] +checksums = ['b57ff502b5f97f2f783e4bbda7ce42b3'] + +dontcreateinstalldir = 'True' + +#license file +import os +license_file = os.path.join(os.getenv('HOME'), "licenses", "intel", "license.lic") + +interfaces = True + +moduleclass = 'numlib' + +postinstallcmds = [ + # extract the examples + 'tar xvzf %(installdir)s/mkl/examples/examples_cluster.tgz -C %(installdir)s/mkl/examples/', + 'tar xvzf %(installdir)s/mkl/examples/examples_core_c.tgz -C %(installdir)s/mkl/examples/', + 'tar xvzf %(installdir)s/mkl/examples/examples_core_f.tgz -C %(installdir)s/mkl/examples/', + 'tar xvzf %(installdir)s/mkl/examples/examples_f95.tgz -C %(installdir)s/mkl/examples/', + 'tar xvzf %(installdir)s/mkl/examples/examples_mic.tgz -C %(installdir)s/mkl/examples/' +] + +modextravars = { + 'MKL_EXAMPLES' : '%(installdir)s/mkl/examples/', +} diff --git a/i/imkl/imkl-11.3.1.150-iimpi-8.3.5.eb b/i/imkl/imkl-11.3.1.150-iimpi-8.3.5.eb new file mode 100644 index 00000000..9adf8306 --- /dev/null +++ b/i/imkl/imkl-11.3.1.150-iimpi-8.3.5.eb @@ -0,0 +1,22 @@ +name = 'imkl' +version = '11.3.1.150' + +homepage = 'http://software.intel.com/en-us/intel-mkl/' +description = """Intel Math Kernel Library is a library of highly optimized, + extensively threaded math routines for science, engineering, and financial + applications that require maximum performance. Core math functions include + BLAS, LAPACK, ScaLAPACK, Sparse Solvers, Fast Fourier Transforms, Vector Math, and more.""" + +toolchain = {'name': 'iimpi', 'version': '8.3.5'} + +sources = ['l_mkl_%(version)s.tgz'] + +dontcreateinstalldir = 'True' + +# license file +import os +license_file = os.path.join(os.getenv('HOME'), "licenses", "intel", "license.lic") + +interfaces = True + +moduleclass = 'numlib' diff --git a/i/imkl/imkl-11.3.3.210-iimpi-2016.03-GCC-5.3.0-2.26.eb b/i/imkl/imkl-11.3.3.210-iimpi-2016.03-GCC-5.3.0-2.26.eb new file mode 100644 index 00000000..d0c10273 --- /dev/null +++ b/i/imkl/imkl-11.3.3.210-iimpi-2016.03-GCC-5.3.0-2.26.eb @@ -0,0 +1,36 @@ +# This is an easyconfig file for EasyBuild, see http://hpcugent.github.io/easybuild + +name = 'imkl' +version = '11.3.3.210' + +homepage = 'http://software.intel.com/en-us/intel-mkl/' +description = """Intel Math Kernel Library is a library of highly optimized, + extensively threaded math routines for science, engineering, and financial + applications that require maximum performance. Core math functions include + BLAS, LAPACK, ScaLAPACK, Sparse Solvers, Fast Fourier Transforms, Vector Math, and more.""" + +toolchain = {'name': 'iimpi', 'version': '2016.03-GCC-5.3.0-2.26'} + +sources = ['parallel_studio_xe_2016_update3.tgz'] +checksums = ['eda19bb0d0d19709197ede58f13443f3'] + +dontcreateinstalldir = 'True' + +license_file = HOME + '/licenses/intel/license.lic' + +interfaces = True + +postinstallcmds = [ + # extract the examples + 'tar xvzf %(installdir)s/mkl/examples/examples_cluster.tgz -C %(installdir)s/mkl/examples/', + 'tar xvzf %(installdir)s/mkl/examples/examples_core_c.tgz -C %(installdir)s/mkl/examples/', + 'tar xvzf %(installdir)s/mkl/examples/examples_core_f.tgz -C %(installdir)s/mkl/examples/', + 'tar xvzf %(installdir)s/mkl/examples/examples_f95.tgz -C %(installdir)s/mkl/examples/', + 'tar xvzf %(installdir)s/mkl/examples/examples_mic.tgz -C %(installdir)s/mkl/examples/' +] + +modextravars = { + 'MKL_EXAMPLES': '%(installdir)s/mkl/examples/', +} + +moduleclass = 'numlib' diff --git a/i/imkl/imkl-2017.0.098-iimpi-2017.00-GCC-5.4.0-2.26.eb b/i/imkl/imkl-2017.0.098-iimpi-2017.00-GCC-5.4.0-2.26.eb new file mode 100644 index 00000000..1a883410 --- /dev/null +++ b/i/imkl/imkl-2017.0.098-iimpi-2017.00-GCC-5.4.0-2.26.eb @@ -0,0 +1,37 @@ +# This is an easyconfig file for EasyBuild, see http://hpcugent.github.io/easybuild + +name = 'imkl' +version = '2017.0.098' + +homepage = 'http://software.intel.com/en-us/intel-mkl/' +description = """Intel Math Kernel Library is a library of highly optimized, + extensively threaded math routines for science, engineering, and financial + applications that require maximum performance. Core math functions include + BLAS, LAPACK, ScaLAPACK, Sparse Solvers, Fast Fourier Transforms, Vector Math, and more.""" + +toolchain = {'name': 'iimpi', 'version': '2017.00-GCC-5.4.0-2.26'} + +sources = ['l_mkl_%(version)s.tgz'] +checksums = ['3cdcb739ab5ab1e047eb130b9ffdd8d0'] +dontcreateinstalldir = 'True' + +license_file = HOME + '/licenses/intel/license.lic' + +interfaces = True + +postinstallcmds = [ + # extract the examples + 'tar xvzf %(installdir)s/mkl/examples/examples_cluster_c.tgz -C %(installdir)s/mkl/examples/', + 'tar xvzf %(installdir)s/mkl/examples/examples_cluster_f.tgz -C %(installdir)s/mkl/examples/', + 'tar xvzf %(installdir)s/mkl/examples/examples_core_c.tgz -C %(installdir)s/mkl/examples/', + 'tar xvzf %(installdir)s/mkl/examples/examples_core_f.tgz -C %(installdir)s/mkl/examples/', + 'tar xvzf %(installdir)s/mkl/examples/examples_f95.tgz -C %(installdir)s/mkl/examples/', + 'tar xvzf %(installdir)s/mkl/examples/examples_mic_f.tgz -C %(installdir)s/mkl/examples/', + 'tar xvzf %(installdir)s/mkl/examples/examples_mic_c.tgz -C %(installdir)s/mkl/examples/', +] + +modextravars = { + 'MKL_EXAMPLES': '%(installdir)s/mkl/examples/', +} + +moduleclass = 'numlib' diff --git a/i/impi/impi-4.1.1.036-iccifort-2013.5.192-GCC-4.8.3.eb b/i/impi/impi-4.1.1.036-iccifort-2013.5.192-GCC-4.8.3.eb new file mode 100644 index 00000000..0a81f8ad --- /dev/null +++ b/i/impi/impi-4.1.1.036-iccifort-2013.5.192-GCC-4.8.3.eb @@ -0,0 +1,34 @@ +name = 'impi' +version = '4.1.1.036' + +homepage = 'http://software.intel.com/en-us/intel-mpi-library/' +description = """The Intel(R) MPI Library for Linux* OS is a multi-fabric message + passing library based on ANL MPICH2 and OSU MVAPICH2. The Intel MPI Library for + Linux OS implements the Message Passing Interface, version 2 (MPI-2) specification.""" + +toolchain = {'name': 'iccifort', 'version': '2013.5.192-GCC-4.8.3'} + +sources = ['l_mpi_p_%(version)s.tgz'] + +dontcreateinstalldir = 'True' + +# license file +import os +license_file = os.path.join(os.getenv('HOME'), "licenses", "intel", "license.lic") + +# set up all the mpi wrappers to work as expected with intel compilers (e.g. mpicc wraps icc not the default gcc) +# set_mpi_wrappers_all = 'True' + +moduleclass = 'mpi' + +# Salomon specific optimalization +modextravars = { + 'I_MPI_CC': 'icc', + 'I_MPI_CXX': 'icpc', + 'I_MPI_FC': 'ifort', + 'I_MPI_F77': 'ifort', + 'I_MPI_F90': 'ifort', + 'I_MPI_HYDRA_BOOTSTRAP': 'ssh', + 'I_MPI_EXTRA_FILESYSTEM': 'enable', + 'I_MPI_EXTRA_FILESYSTEM_LIST': 'lustre' +} diff --git a/i/impi/impi-4.1.1.036-iccifort-2013.5.192.eb b/i/impi/impi-4.1.1.036-iccifort-2013.5.192.eb new file mode 100644 index 00000000..315dadc2 --- /dev/null +++ b/i/impi/impi-4.1.1.036-iccifort-2013.5.192.eb @@ -0,0 +1,35 @@ +name = 'impi' +version = '4.1.1.036' + +homepage = 'http://software.intel.com/en-us/intel-mpi-library/' +description = """The Intel(R) MPI Library for Linux* OS is a multi-fabric message + passing library based on ANL MPICH2 and OSU MVAPICH2. The Intel MPI Library for + Linux OS implements the Message Passing Interface, version 2 (MPI-2) specification.""" + +toolchain = {'name': 'iccifort', 'version': '2013.5.192'} + +sources = ['l_mpi_p_%(version)s.tgz'] + +dontcreateinstalldir = 'True' + +# license file +import os +license_file = os.path.join(os.getenv('HOME'), "licenses", "intel", "license.lic") + +# set up all the mpi wrappers to work as expected with intel compilers (e.g. mpicc wraps icc not the default gcc) +# set_mpi_wrappers_all = 'True' + +moduleclass = 'mpi' + +# Salomon specific optimalization +modextravars = { + 'I_MPI_CC': 'icc', + 'I_MPI_CXX': 'icpc', + 'I_MPI_FC': 'ifort', + 'I_MPI_F77': 'ifort', + 'I_MPI_F90': 'ifort', + 'I_MPI_HYDRA_BOOTSTRAP': 'ssh', + 'I_MPI_EXTRA_FILESYSTEM': 'enable', + 'I_MPI_EXTRA_FILESYSTEM_LIST': 'lustre' +} + diff --git a/i/impi/impi-4.1.1.036.eb b/i/impi/impi-4.1.1.036.eb new file mode 100644 index 00000000..dc05cc4f --- /dev/null +++ b/i/impi/impi-4.1.1.036.eb @@ -0,0 +1,29 @@ +name = 'impi' +version = '4.1.1.036' + +homepage = 'http://software.intel.com/en-us/intel-mpi-library/' +description = """The Intel(R) MPI Library for Linux* OS is a multi-fabric message + passing library based on ANL MPICH2 and OSU MVAPICH2. The Intel MPI Library for + Linux OS implements the Message Passing Interface, version 2 (MPI-2) specification.""" + +toolchain = {'name': 'dummy', 'version': 'dummy'} + +sources = ['l_mpi_p_%(version)s.tgz'] + +dontcreateinstalldir = 'True' + +# license file +import os +license_file = os.path.join(os.getenv('HOME'), "licenses", "intel", "license.lic") + +# set up all the mpi wrappers to work as expected with intel compilers (e.g. mpicc wraps icc not the default gcc) +# set_mpi_wrappers_all = 'True' + +moduleclass = 'mpi' + +# Salomon specific optimalization +modextravars = { + 'I_MPI_HYDRA_BOOTSTRAP' : 'ssh', + 'I_MPI_EXTRA_FILESYSTEM' : 'enable', + 'I_MPI_EXTRA_FILESYSTEM_LIST' : 'lustre' +} diff --git a/i/impi/impi-5.0.3.048-iccifort-2015.3.187-GNU-5.1.0-2.25.eb b/i/impi/impi-5.0.3.048-iccifort-2015.3.187-GNU-5.1.0-2.25.eb new file mode 100644 index 00000000..06453059 --- /dev/null +++ b/i/impi/impi-5.0.3.048-iccifort-2015.3.187-GNU-5.1.0-2.25.eb @@ -0,0 +1,41 @@ +# Built with EasyBuild version 2.2.0dev on 2015-06-29_10-00-45 +name = 'impi' +version = '5.0.3.048' + +homepage = 'http://software.intel.com/en-us/intel-mpi-library/' +description = """The Intel(R) MPI Library for Linux* OS is a multi-fabric message + passing library based on ANL MPICH2 and OSU MVAPICH2. The Intel MPI Library for + Linux OS implements the Message Passing Interface, version 2 (MPI-2) specification.""" + +toolchain = {'name': 'iccifort', 'version': '2015.3.187-GNU-5.1.0-2.25'} + +sources = ['l_mpi_p_%(version)s.tgz'] + +dontcreateinstalldir = 'True' + +# license file +import os +license_file = os.path.join(os.getenv('HOME'), "licenses", "intel", "license.lic") + +moduleclass = 'mpi' + +# Salomon specific optimalization +modextravars = { + 'I_MPI_CC': 'icc', + 'I_MPI_CXX': 'icpc', + 'I_MPI_FC': 'ifort', + 'I_MPI_F77': 'ifort', + 'I_MPI_F90': 'ifort', + 'I_MPI_HYDRA_BOOTSTRAP': 'ssh', + 'I_MPI_EXTRA_FILESYSTEM': 'enable', + 'I_MPI_EXTRA_FILESYSTEM_LIST': 'lustre' +} + +postinstallcmds = [ + 'ln -s %(installdir)s/lib64/libmpi.so %(installdir)s/lib64/libmpich.so', + 'ln -s %(installdir)s/lib64/libmpigc4.so %(installdir)s/lib64/libmpichcxx.so', + 'ln -s %(installdir)s/lib64/libmpigf.so %(installdir)s/lib64/libfmpich.so', + 'ln -s %(installdir)s/lib64/libmpigf.so %(installdir)s/lib64/libmpichf90.so', + 'ln -s %(installdir)s/lib64/libmpi.so %(installdir)s/lib64/libmpl.so', + 'ln -s %(installdir)s/lib64/libmpi.so %(installdir)s/lib64/libopa.so' +] diff --git a/i/impi/impi-5.0.3.048-iccifort-2015.3.187.eb b/i/impi/impi-5.0.3.048-iccifort-2015.3.187.eb new file mode 100644 index 00000000..1482bc79 --- /dev/null +++ b/i/impi/impi-5.0.3.048-iccifort-2015.3.187.eb @@ -0,0 +1,34 @@ +name = 'impi' +version = '5.0.3.048' + +homepage = 'http://software.intel.com/en-us/intel-mpi-library/' +description = """The Intel(R) MPI Library for Linux* OS is a multi-fabric message + passing library based on ANL MPICH2 and OSU MVAPICH2. The Intel MPI Library for + Linux OS implements the Message Passing Interface, version 2 (MPI-2) specification.""" + +toolchain = {'name': 'iccifort', 'version': '2015.3.187'} + +sources = ['l_mpi_p_%(version)s.tgz'] + +dontcreateinstalldir = 'True' + +# license file +import os +license_file = os.path.join(os.getenv('HOME'), "licenses", "intel", "license.lic") + +# set up all the mpi wrappers to work as expected with intel compilers (e.g. mpicc wraps icc not the default gcc) +# set_mpi_wrappers_all = 'True' + +moduleclass = 'mpi' + +# Salomon specific optimalization +modextravars = { + 'I_MPI_CC': 'icc', + 'I_MPI_CXX': 'icpc', + 'I_MPI_FC': 'ifort', + 'I_MPI_F77': 'ifort', + 'I_MPI_F90': 'ifort', + 'I_MPI_HYDRA_BOOTSTRAP': 'ssh', + 'I_MPI_EXTRA_FILESYSTEM': 'enable', + 'I_MPI_EXTRA_FILESYSTEM_LIST': 'lustre' +} diff --git a/i/impi/impi-5.0.3.048.eb b/i/impi/impi-5.0.3.048.eb new file mode 100644 index 00000000..f1f8acba --- /dev/null +++ b/i/impi/impi-5.0.3.048.eb @@ -0,0 +1,30 @@ +# Built with EasyBuild version 2.2.0dev on 2015-06-29_10-00-45 +name = 'impi' +version = '5.0.3.048' + +homepage = 'http://software.intel.com/en-us/intel-mpi-library/' +description = """The Intel(R) MPI Library for Linux* OS is a multi-fabric message + passing library based on ANL MPICH2 and OSU MVAPICH2. The Intel MPI Library for + Linux OS implements the Message Passing Interface, version 2 (MPI-2) specification.""" + +toolchain = {'name': 'dummy', 'version': 'dummy'} + +sources = ['l_mpi_p_%(version)s.tgz'] + +dontcreateinstalldir = 'True' + +# license file +import os +license_file = os.path.join(os.getenv('HOME'), "licenses", "intel", "license.lic") + +moduleclass = 'mpi' + +# Salomon specific optimalization +postinstallcmds = [ + 'ln -s %(installdir)s/lib64/libmpi.so %(installdir)s/lib64/libmpich.so', + 'ln -s %(installdir)s/lib64/libmpigc4.so %(installdir)s/lib64/libmpichcxx.so', + 'ln -s %(installdir)s/lib64/libmpigf.so %(installdir)s/lib64/libfmpich.so', + 'ln -s %(installdir)s/lib64/libmpigf.so %(installdir)s/lib64/libmpichf90.so', + 'ln -s %(installdir)s/lib64/libmpi.so %(installdir)s/lib64/libmpl.so', + 'ln -s %(installdir)s/lib64/libmpi.so %(installdir)s/lib64/libopa.so' +] diff --git a/i/impi/impi-5.1.1.109-iccifort-2016.0.109-GCC-4.9.3.eb b/i/impi/impi-5.1.1.109-iccifort-2016.0.109-GCC-4.9.3.eb new file mode 100644 index 00000000..b552158d --- /dev/null +++ b/i/impi/impi-5.1.1.109-iccifort-2016.0.109-GCC-4.9.3.eb @@ -0,0 +1,43 @@ +# This is an easyconfig file for EasyBuild, see http://hpcugent.github.io/easybuild + +name = 'impi' +version = '5.1.1.109' + +homepage = 'http://software.intel.com/en-us/intel-mpi-library/' +description = """The Intel(R) MPI Library for Linux* OS is a multi-fabric message + passing library based on ANL MPICH2 and OSU MVAPICH2. The Intel MPI Library for + Linux OS implements the Message Passing Interface, version 2 (MPI-2) specification.""" + +toolchain = {'name': 'iccifort', 'version': '2016.0.109-GCC-4.9.3'} + +sources = ['l_mpi_p_%(version)s.tgz'] + +checksums = ['aa4aaec41526aa5b244e531811877b01'] + +dontcreateinstalldir = 'True' + +import os +license_file = os.path.join(os.getenv('HOME'), "licenses", "intel", "license.lic") + +moduleclass = 'mpi' + +# Salomon specific optimalization +modextravars = { + 'I_MPI_CC': 'icc', + 'I_MPI_CXX': 'icpc', + 'I_MPI_FC': 'ifort', + 'I_MPI_F77': 'ifort', + 'I_MPI_F90': 'ifort', + 'I_MPI_HYDRA_BOOTSTRAP': 'ssh', + 'I_MPI_EXTRA_FILESYSTEM': 'enable', + 'I_MPI_EXTRA_FILESYSTEM_LIST': 'lustre' +} + +postinstallcmds = [ + 'ln -s %(installdir)s/lib64/libmpi.so %(installdir)s/lib64/libmpich.so', + 'ln -s %(installdir)s/lib64/libmpigc4.so %(installdir)s/lib64/libmpichcxx.so', + 'ln -s %(installdir)s/lib64/libmpigf.so %(installdir)s/lib64/libfmpich.so', + 'ln -s %(installdir)s/lib64/libmpigf.so %(installdir)s/lib64/libmpichf90.so', + 'ln -s %(installdir)s/lib64/libmpi.so %(installdir)s/lib64/libmpl.so', + 'ln -s %(installdir)s/lib64/libmpi.so %(installdir)s/lib64/libopa.so' +] diff --git a/i/impi/impi-5.1.1.109-iccifort-2016.0.109-GCC-5.2.0.eb b/i/impi/impi-5.1.1.109-iccifort-2016.0.109-GCC-5.2.0.eb new file mode 100644 index 00000000..a7f245a9 --- /dev/null +++ b/i/impi/impi-5.1.1.109-iccifort-2016.0.109-GCC-5.2.0.eb @@ -0,0 +1,43 @@ +# This is an easyconfig file for EasyBuild, see http://hpcugent.github.io/easybuild + +name = 'impi' +version = '5.1.1.109' + +homepage = 'http://software.intel.com/en-us/intel-mpi-library/' +description = """The Intel(R) MPI Library for Linux* OS is a multi-fabric message + passing library based on ANL MPICH2 and OSU MVAPICH2. The Intel MPI Library for + Linux OS implements the Message Passing Interface, version 2 (MPI-2) specification.""" + +toolchain = {'name': 'iccifort', 'version': '2016.0.109-GCC-5.2.0'} + +sources = ['l_mpi_p_%(version)s.tgz'] + +checksums = ['aa4aaec41526aa5b244e531811877b01'] + +dontcreateinstalldir = 'True' + +import os +license_file = os.path.join(os.getenv('HOME'), "licenses", "intel", "license.lic") + +moduleclass = 'mpi' + +# Salomon specific optimalization +modextravars = { + 'I_MPI_CC': 'icc', + 'I_MPI_CXX': 'icpc', + 'I_MPI_FC': 'ifort', + 'I_MPI_F77': 'ifort', + 'I_MPI_F90': 'ifort', + 'I_MPI_HYDRA_BOOTSTRAP': 'ssh', + 'I_MPI_EXTRA_FILESYSTEM': 'enable', + 'I_MPI_EXTRA_FILESYSTEM_LIST': 'lustre' +} + +postinstallcmds = [ + 'ln -s %(installdir)s/lib64/libmpi.so %(installdir)s/lib64/libmpich.so', + 'ln -s %(installdir)s/lib64/libmpigc4.so %(installdir)s/lib64/libmpichcxx.so', + 'ln -s %(installdir)s/lib64/libmpigf.so %(installdir)s/lib64/libfmpich.so', + 'ln -s %(installdir)s/lib64/libmpigf.so %(installdir)s/lib64/libmpichf90.so', + 'ln -s %(installdir)s/lib64/libmpi.so %(installdir)s/lib64/libmpl.so', + 'ln -s %(installdir)s/lib64/libmpi.so %(installdir)s/lib64/libopa.so' +] diff --git a/i/impi/impi-5.1.2.150-iccifort-2016.1.150-GCC-4.9.3-2.25.eb b/i/impi/impi-5.1.2.150-iccifort-2016.1.150-GCC-4.9.3-2.25.eb new file mode 100644 index 00000000..a2d8e235 --- /dev/null +++ b/i/impi/impi-5.1.2.150-iccifort-2016.1.150-GCC-4.9.3-2.25.eb @@ -0,0 +1,47 @@ +# This is an easyconfig file for EasyBuild, see http://hpcugent.github.io/easybuild + +name = 'impi' +version = '5.1.2.150' + +homepage = 'http://software.intel.com/en-us/intel-mpi-library/' +description = """The Intel(R) MPI Library for Linux* OS is a multi-fabric message + passing library based on ANL MPICH2 and OSU MVAPICH2. The Intel MPI Library for + Linux OS implements the Message Passing Interface, version 2 (MPI-2) specification.""" + +toolchain = {'name': 'iccifort', 'version': '2016.1.150-GCC-4.9.3-2.25'} + +sources = ['l_mpi_p_%(version)s.tgz'] + +checksums = ['ec4db8f718c34f09fccf9d1c89454f0a'] + +dontcreateinstalldir = 'True' + +import os +license_file = os.path.join(os.getenv('HOME'), "licenses", "intel", "license.lic") + +# set up all the mpi commands to default to intel compilers +# set_mpi_wrappers_all = 'True' + +moduleclass = 'mpi' + +postinstallcmds = [ + 'ln -s %(installdir)s/lib64/libmpi.so %(installdir)s/lib64/libmpich.so', + 'ln -s %(installdir)s/lib64/libmpigc4.so %(installdir)s/lib64/libmpichcxx.so', + 'ln -s %(installdir)s/lib64/libmpigf.so %(installdir)s/lib64/libfmpich.so', + 'ln -s %(installdir)s/lib64/libmpigf.so %(installdir)s/lib64/libmpichf90.so', + 'ln -s %(installdir)s/lib64/libmpi.so %(installdir)s/lib64/libmpl.so', + 'ln -s %(installdir)s/lib64/libmpi.so %(installdir)s/lib64/libopa.so' +] + +# Salomon specific optimalization +modextravars = { + 'I_MPI_CC': 'icc', + 'I_MPI_CXX': 'icpc', + 'I_MPI_FC': 'ifort', + 'I_MPI_F77': 'ifort', + 'I_MPI_F90': 'ifort', + 'I_MPI_HYDRA_BOOTSTRAP': 'ssh', + 'I_MPI_EXTRA_FILESYSTEM': 'enable', + 'I_MPI_EXTRA_FILESYSTEM_LIST': 'lustre' +} + diff --git a/i/impi/impi-5.1.2.150-iccifort-2016.1.150-GCC-4.9.3.eb b/i/impi/impi-5.1.2.150-iccifort-2016.1.150-GCC-4.9.3.eb new file mode 100644 index 00000000..d5d29236 --- /dev/null +++ b/i/impi/impi-5.1.2.150-iccifort-2016.1.150-GCC-4.9.3.eb @@ -0,0 +1,43 @@ +# This is an easyconfig file for EasyBuild, see http://hpcugent.github.io/easybuild + +name = 'impi' +version = '5.1.2.150' + +homepage = 'http://software.intel.com/en-us/intel-mpi-library/' +description = """The Intel(R) MPI Library for Linux* OS is a multi-fabric message + passing library based on ANL MPICH2 and OSU MVAPICH2. The Intel MPI Library for + Linux OS implements the Message Passing Interface, version 2 (MPI-2) specification.""" + +toolchain = {'name': 'iccifort', 'version': '2016.1.150-GCC-4.9.3'} + +sources = ['l_mpi_p_%(version)s.tgz'] + +checksums = ['ec4db8f718c34f09fccf9d1c89454f0a'] + +dontcreateinstalldir = 'True' + +import os +license_file = os.path.join(os.getenv('HOME'), "licenses", "intel", "license.lic") + +moduleclass = 'mpi' + +# Salomon specific optimalization +modextravars = { + 'I_MPI_CC': 'icc', + 'I_MPI_CXX': 'icpc', + 'I_MPI_FC': 'ifort', + 'I_MPI_F77': 'ifort', + 'I_MPI_F90': 'ifort', + 'I_MPI_HYDRA_BOOTSTRAP': 'ssh', + 'I_MPI_EXTRA_FILESYSTEM': 'enable', + 'I_MPI_EXTRA_FILESYSTEM_LIST': 'lustre' +} + +postinstallcmds = [ + 'ln -s %(installdir)s/lib64/libmpi.so %(installdir)s/lib64/libmpich.so', + 'ln -s %(installdir)s/lib64/libmpigc4.so %(installdir)s/lib64/libmpichcxx.so', + 'ln -s %(installdir)s/lib64/libmpigf.so %(installdir)s/lib64/libfmpich.so', + 'ln -s %(installdir)s/lib64/libmpigf.so %(installdir)s/lib64/libmpichf90.so', + 'ln -s %(installdir)s/lib64/libmpi.so %(installdir)s/lib64/libmpl.so', + 'ln -s %(installdir)s/lib64/libmpi.so %(installdir)s/lib64/libopa.so' +] diff --git a/i/impi/impi-5.1.2.150-iccifort-2016.1.150.eb b/i/impi/impi-5.1.2.150-iccifort-2016.1.150.eb new file mode 100644 index 00000000..e6a2bd35 --- /dev/null +++ b/i/impi/impi-5.1.2.150-iccifort-2016.1.150.eb @@ -0,0 +1,44 @@ +# This is an easyconfig file for EasyBuild, see http://hpcugent.github.io/easybuild + +name = 'impi' +version = '5.1.2.150' + +homepage = 'http://software.intel.com/en-us/intel-mpi-library/' +description = """The Intel(R) MPI Library for Linux* OS is a multi-fabric message + passing library based on ANL MPICH2 and OSU MVAPICH2. The Intel MPI Library for + Linux OS implements the Message Passing Interface, version 2 (MPI-2) specification.""" + +toolchain = {'name': 'iccifort', 'version': '2016.1.150'} + +sources = ['l_mpi_p_%(version)s.tgz'] + +checksums = ['ec4db8f718c34f09fccf9d1c89454f0a'] + +dontcreateinstalldir = 'True' + +import os +license_file = os.path.join(os.getenv('HOME'), "licenses", "intel", "license.lic") + +moduleclass = 'mpi' + +postinstallcmds = [ + 'ln -s %(installdir)s/lib64/libmpi.so %(installdir)s/lib64/libmpich.so', + 'ln -s %(installdir)s/lib64/libmpigc4.so %(installdir)s/lib64/libmpichcxx.so', + 'ln -s %(installdir)s/lib64/libmpigf.so %(installdir)s/lib64/libfmpich.so', + 'ln -s %(installdir)s/lib64/libmpigf.so %(installdir)s/lib64/libmpichf90.so', + 'ln -s %(installdir)s/lib64/libmpi.so %(installdir)s/lib64/libmpl.so', + 'ln -s %(installdir)s/lib64/libmpi.so %(installdir)s/lib64/libopa.so' +] + +# Salomon specific optimalization +modextravars = { + 'I_MPI_CC': 'icc', + 'I_MPI_CXX': 'icpc', + 'I_MPI_FC': 'ifort', + 'I_MPI_F77': 'ifort', + 'I_MPI_F90': 'ifort', + 'I_MPI_HYDRA_BOOTSTRAP': 'ssh', + 'I_MPI_EXTRA_FILESYSTEM': 'enable', + 'I_MPI_EXTRA_FILESYSTEM_LIST': 'lustre' +} + diff --git a/i/inputproto/inputproto-2.3-intel-2015b.eb b/i/inputproto/inputproto-2.3-intel-2015b.eb new file mode 100644 index 00000000..ea098b05 --- /dev/null +++ b/i/inputproto/inputproto-2.3-intel-2015b.eb @@ -0,0 +1,20 @@ +# Built with EasyBuild version 2.1.1 on 2015-06-29_22-18-38 +easyblock = 'ConfigureMake' + +name = 'inputproto' +version = '2.3' + +homepage = "http://www.freedesktop.org/wiki/Software/xlibs" +description = """X.org InputProto protocol headers.""" + +toolchain = {'name': 'intel', 'version': '2015b'} + +sources = [SOURCE_TAR_GZ] +source_urls = ['http://xorg.freedesktop.org/archive/individual/proto/'] + +sanity_check_paths = { + 'files': ['include/X11/extensions/%s' % x for x in ['XI2.h', 'XI.h', 'XIproto.h', 'XI2proto.h']], + 'dirs': [], +} + +moduleclass = 'vis' diff --git a/i/intel/intel-2015b.eb b/i/intel/intel-2015b.eb new file mode 100644 index 00000000..87fc7248 --- /dev/null +++ b/i/intel/intel-2015b.eb @@ -0,0 +1,33 @@ +# Built with EasyBuild version 2.2.0dev on 2015-06-29_10-08-02 +easyblock = "Toolchain" + +name = 'intel' +version = '2015b' + +homepage = 'http://software.intel.com/en-us/intel-cluster-toolkit-compiler/' +description = """Intel Cluster Toolkit Compiler Edition provides Intel C/C++ and Fortran compilers, Intel MPI & Intel MKL.""" + +toolchain = {'name': 'dummy', 'version': 'dummy'} + +compver = '2015.3.187' +gccsuff = '-GNU-5.1.0-2.25' + +dependencies = [ + ('icc', compver, gccsuff), + ('ifort', compver, gccsuff), + ('impi', '5.0.3.048', '', ('iccifort', '%s%s' % (compver, gccsuff))), + ('imkl', '11.2.3.187', '', ('iimpi', '7.3.5%s' % gccsuff)), +] + +moduleclass = 'toolchain' + +# Salomon specific optimalization +modextravars = { + 'CC': 'icc', + 'CXX': 'icpc', + 'F90': 'ifort', + 'F77': 'ifort', + 'FC': 'ifort', + 'OPTFLAGS': '-O3 -xHost -ip', + 'DEBUGFLAGS': '-O0 -g' +} diff --git a/i/intelcuda/intelcuda-2016.10.eb b/i/intelcuda/intelcuda-2016.10.eb new file mode 100644 index 00000000..ac6a734e --- /dev/null +++ b/i/intelcuda/intelcuda-2016.10.eb @@ -0,0 +1,27 @@ +easyblock = 'Toolchain' + +name = 'intelcuda' +version = '2016.10' + +homepage = '(none)' +description = """Intel Cluster Toolkit Compiler Edition provides Intel C/C++ and Fortran compilers, Intel MPI & Intel MKL, with CUDA toolkit""" + +toolchain = {'name': 'dummy', 'version': 'dummy'} + +comp_name = 'iccifort' +comp_ver = '2016.3.210' +gccver = '5.4.0' +binutilsver = '2.26' +gccsuff = '-GCC-%s-%s' % (gccver, binutilsver) +comp = (comp_name, '%s%s' % (comp_ver, gccsuff)) + +dependencies = [ + comp, # part of iimpic + ('CUDA', '8.0.44', '', comp), + ('icc', comp_ver, gccsuff), + ('ifort', comp_ver, gccsuff), + ('impi', '5.1.3.181', '', ('iccifortcuda', version)), + ('imkl', '11.3.3.210', '', ('iimpic', version)), +] + +moduleclass = 'toolchain' diff --git a/i/iomkl/iomkl-2015.03.eb b/i/iomkl/iomkl-2015.03.eb new file mode 100644 index 00000000..93f19a46 --- /dev/null +++ b/i/iomkl/iomkl-2015.03.eb @@ -0,0 +1,21 @@ +easyblock = "Toolchain" + +name = 'iomkl' +version = '2015.03' + +homepage = 'http://software.intel.com/en-us/intel-cluster-toolkit-compiler/' +description = """Intel Cluster Toolchain Compiler Edition provides Intel C/C++ and Fortran compilers, Intel MKL & OpenMPI.""" + +toolchain = {'name': 'dummy', 'version': 'dummy'} + +compver = '2015.3.187' +gccsuff = '-GNU-4.9.3-2.25' + +dependencies = [ + ('icc', compver, gccsuff), + ('ifort', compver, gccsuff), + ('OpenMPI', '1.8.8', '', ('iccifort', '%s%s' % (compver, gccsuff))), + ('imkl', '11.2.3.187', '', ('iompi', version)), +] + +moduleclass = 'toolchain' diff --git a/i/iompi/iompi-2015.03.eb b/i/iompi/iompi-2015.03.eb new file mode 100644 index 00000000..5b531f0f --- /dev/null +++ b/i/iompi/iompi-2015.03.eb @@ -0,0 +1,32 @@ +easyblock = "Toolchain" + +name = 'iompi' +version = '2015.03' + +homepage = 'http://software.intel.com/en-us/intel-cluster-toolkit-compiler/' +description = """Toolchain with Intel C, C++ and Fortran compilers, alongside OpenMPI.""" + +toolchain = {'name': 'dummy', 'version': 'dummy'} + +compver = '2015.3.187-GNU-4.9.3-2.25' + +dependencies = [ + ('icc', compver), + ('ifort', compver), + ('OpenMPI', '1.8.8', '', ('iccifort', compver)), +] + +moduleclass = 'toolchain' + +modextravars = { + 'CC': 'icc', + 'OMPI_CC': 'icc', + 'CXX': 'icpc', + 'OPMI_CXX': 'icpc', + 'F90': 'ifort', + 'OMPI_F90': 'ifort', + 'F77': 'ifort', + 'OMPI_F77': 'ifort', + 'FC': 'ifort', + 'OMPI_FC': 'ifort', +} diff --git a/i/itac/itac-9.1.2.024.eb b/i/itac/itac-9.1.2.024.eb new file mode 100644 index 00000000..537a0557 --- /dev/null +++ b/i/itac/itac-9.1.2.024.eb @@ -0,0 +1,21 @@ +name = 'itac' +version = '9.1.2.024' + +homepage = 'http://software.intel.com/en-us/intel-trace-analyzer/' +description = """The Intel Trace Collector is a low-overhead tracing library that performs + event-based tracing in applications. The Intel Trace Analyzer provides a convenient way to monitor application + activities gathered by the Intel Trace Collector through graphical displays. """ + +toolchain = {'name': 'dummy', 'version': 'dummy'} + +sources = ['l_itac_p_%(version)s.tgz'] + +dontcreateinstalldir = 'True' + +preferredmpi = 'impi4' + +# license file +import os +license_file = os.path.join(os.getenv('HOME'), "licenses", "intel", "license.lic") + +moduleclass = 'tools' diff --git a/j/JOE/JOE-4.2.eb b/j/JOE/JOE-4.2.eb new file mode 100644 index 00000000..a540fa39 --- /dev/null +++ b/j/JOE/JOE-4.2.eb @@ -0,0 +1,21 @@ +easyblock = 'ConfigureMake' + + +name = 'JOE' +version = '4.2' + +homepage = 'http://joe-editor.sourceforge.net' +description = """JOE is a full featured terminal-based screen editor which +is distributed under the GNU General Public License (GPL)""" + +toolchain = {'name': 'dummy', 'version': ''} + +source_urls = [SOURCEFORGE_SOURCE] +sources = [SOURCELOWER_TAR_GZ] + +sanity_check_paths = { + 'files': ['bin/joe'], + 'dirs': [''] +} + +moduleclass = 'tools' diff --git a/j/Java/Java-1.8.0_121.eb b/j/Java/Java-1.8.0_121.eb new file mode 100644 index 00000000..2782d792 --- /dev/null +++ b/j/Java/Java-1.8.0_121.eb @@ -0,0 +1,15 @@ +name = 'Java' +version = "1.8.0_121" + +homepage = 'http://java.com/' +description = """Java Platform, Standard Edition (Java SE) lets you develop and deploy + Java applications on desktops and servers.""" + +toolchain = {'name': 'dummy', 'version': 'dummy'} + +# download the tar.gz directly from http://www.oracle.com/technetwork/java/javase/downloads/index.html +(vp, vs) = version.split('_') +altver = '%su%s' % (vp.split('.')[1], vs) +sources = ['jdk-%s-linux-x64.tar.gz' % altver] + +moduleclass = 'lang' diff --git a/j/Java/Java-1.8.0_51.eb b/j/Java/Java-1.8.0_51.eb new file mode 100644 index 00000000..721ecba8 --- /dev/null +++ b/j/Java/Java-1.8.0_51.eb @@ -0,0 +1,16 @@ +# Built with EasyBuild version 2.1.1 on 2015-07-28_09-51-13 +name = 'Java' +version = '1.8.0_51' + +homepage = 'http://java.com/' +description = """Java Platform, Standard Edition (Java SE) lets you develop and deploy + Java applications on desktops and servers.""" + +toolchain = {'name': 'dummy', 'version': 'dummy'} + +# download the tar.gz directly from http://www.oracle.com/technetwork/java/javase/downloads/index.html +(vp, vs) = version.split('_') +altver = '%su%s' % (vp.split('.')[1], vs) +sources = ['jdk-%s-linux-x64.tar.gz' % altver] + +moduleclass = 'lang' diff --git a/j/Julia/Julia-snapshot-foss-2015g-Python-2.7.9.eb b/j/Julia/Julia-snapshot-foss-2015g-Python-2.7.9.eb new file mode 100644 index 00000000..ce08b3d5 --- /dev/null +++ b/j/Julia/Julia-snapshot-foss-2015g-Python-2.7.9.eb @@ -0,0 +1,35 @@ +easyblock = 'MakeCp' + +name = 'Julia' +version = 'snapshot' + +homepage = 'http://julialang.org' +description = """Julia is a high-level, high-performance dynamic programming language for technical computing, + with syntax that is familiar to users of other technical computing environments. + It provides a sophisticated compiler, distributed parallel execution, numerical accuracy, + and an extensive mathematical function library. Julia’s Base library, largely written in Julia itself, + also integrates mature, best-of-breed open source C and Fortran libraries for linear algebra, random number generation + , signal processing, and string processing. In addition, the Julia developer community is contributing a number of external + packages through Julia’s built-in package manager at a rapid pace. IJulia, a collaboration between the Jupyter and Julia communities, + provides a powerful browser-based graphical notebook interface to Julia.""" + +toolchain = {'name': 'foss', 'version': '2015g'} +dependencies = [('Python', '2.7.9')] + +source_urls = ['https://github.com/JuliaLang/julia/archive/'] +sources = ['master.zip'] + +checksums = ['3d2457b88f5ebcca067ef9f374b16066'] + +buildopts = 'MARCH=native USE_SYSTEM_FFTW=1 USE_SYSTEM_BLAS=1 USE_SYSTEM_LAPACK=1 LIBBLAS=-lopenblas LIBBLASNAME=libopenblas' + +parallel = 1 + +files_to_copy = ['usr/*'] + +sanity_check_paths = { + 'files': ['bin/julia'], + 'dirs': [] +} + +moduleclass = 'math' diff --git a/j/Julia/Julia-snapshot-intel-2015b-Python-2.7.9.eb b/j/Julia/Julia-snapshot-intel-2015b-Python-2.7.9.eb new file mode 100644 index 00000000..7c5099f5 --- /dev/null +++ b/j/Julia/Julia-snapshot-intel-2015b-Python-2.7.9.eb @@ -0,0 +1,33 @@ +easyblock = 'MakeCp' + +name = 'Julia' +version = 'snapshot' + +homepage = 'http://julialang.org' +description = """Julia is a high-level, high-performance dynamic programming language for technical computing, + with syntax that is familiar to users of other technical computing environments. + It provides a sophisticated compiler, distributed parallel execution, numerical accuracy, + and an extensive mathematical function library. Julia’s Base library, largely written in Julia itself, + also integrates mature, best-of-breed open source C and Fortran libraries for linear algebra, random number generation + , signal processing, and string processing. In addition, the Julia developer community is contributing a number of external + packages through Julia’s built-in package manager at a rapid pace. IJulia, a collaboration between the Jupyter and Julia communities, + provides a powerful browser-based graphical notebook interface to Julia.""" + +toolchain = {'name': 'intel', 'version': '2015b'} +dependencies = [('Python', '2.7.9')] + +source_urls = ['https://github.com/JuliaLang/julia/archive/'] +sources = ['master.zip'] + +checksums = ['3d2457b88f5ebcca067ef9f374b16066'] + +buildopts = 'MARCH=native USE_INTEL_MKL=1 USE_INTEL_MKL_FFT=1 USE_INTEL_LIBM=1 USEICC=1 USEICC=1 USEIFC=1' + +files_to_copy = ['usr/*'] + +sanity_check_paths = { + 'files': ['bin/julia'], + 'dirs': [] +} + +moduleclass = 'math' diff --git a/j/jModelTest/jModelTest-2.1.9r20160115-goolf-1.4.10-Java-1.7.0_75.eb b/j/jModelTest/jModelTest-2.1.9r20160115-goolf-1.4.10-Java-1.7.0_75.eb new file mode 100644 index 00000000..91946b38 --- /dev/null +++ b/j/jModelTest/jModelTest-2.1.9r20160115-goolf-1.4.10-Java-1.7.0_75.eb @@ -0,0 +1,36 @@ +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# Author: Pablo Escobar Lopez +# sciCORE - University of Basel +# SIB Swiss Institute of Bioinformatics + +easyblock = 'PackedBinary' + +name = 'jModelTest' +version = '2.1.9r20160115' + +homepage = 'https://github.com/ddarriba/jmodeltest2' +description="""jModelTest is a tool to carry out statistical selection of best-fit models of nucleotide substitution.""" + +toolchain = {'name': 'goolf', 'version': '1.4.10'} + +source_urls = ['https://github.com/ddarriba/jmodeltest2/archive/'] +sources = ['v%(version)s.tar.gz'] + +java = 'Java' +javaver = '1.7.0_75' +versionsuffix = '-%s-%s' % (java, javaver) + +builddependencies = [('ant', '1.9.6', '-Java-1.7.0_75', True)] + +dependencies = [('MPJ-Express', '0.44', '%(versionsuffix)s')] + +install_cmd = "cd jmodeltest2-%(version)s && ant -Ddist.dir=%(installdir)s jar" + +modloadmsg = """To execute jModelTest run: java -jar \\$EBROOTJMODELTEST/jModelTest.jar""" + +sanity_check_paths = { + 'files': ['jModelTest.jar'], + 'dirs': [], +} + +moduleclass = 'bio' diff --git a/k/Kraken/Kraken-0.10.5-beta-foss-2016a-Perl-5.22.1.eb b/k/Kraken/Kraken-0.10.5-beta-foss-2016a-Perl-5.22.1.eb new file mode 100644 index 00000000..4bb09cbf --- /dev/null +++ b/k/Kraken/Kraken-0.10.5-beta-foss-2016a-Perl-5.22.1.eb @@ -0,0 +1,44 @@ +easyblock = 'PackedBinary' + +name = 'Kraken' +version = '0.10.5-beta' +versionsuffix='-Perl-%(perlver)s' + +homepage = 'http://ccb.jhu.edu/software/kraken/' +description = """Kraken is a system for assigning taxonomic labels to short DNA sequences, + usually obtained through metagenomic studies. Previous attempts by other + bioinformatics software to accomplish this task have often used sequence + alignment or machine learning techniques that were quite slow, leading to + the development of less sensitive but much faster abundance estimation + programs. Kraken aims to achieve high sensitivity and high speed by + utilizing exact alignments of k-mers and a novel classification algorithm.""" + +#Part is compiled with CXX, the rest is in Perl +toolchain = {'name': 'foss', 'version': '2016a'} +toolchainopts = {'openmp': True} + +source_urls = ['http://ccb.jhu.edu/software/kraken/dl/'] +sources = [SOURCELOWER_TGZ] + +patches = ['Kraken_%(version)s_makefile.patch'] + +dependencies = [ + ('Perl', '5.22.1'), + ('Jellyfish', '1.1.11'), + ('wget', '1.17.1'), +] + +install_cmd = 'cd %(builddir)s/%(namelower)s-%(version)s && ' +install_cmd += './install_kraken.sh %(installdir)s' + +sanity_check_paths = { + 'files': ['add_to_library.sh', 'build_kraken_db.sh', 'check_for_jellyfish.sh', 'classify', 'clean_db.sh', + 'cp_into_tempfile.pl', 'db_shrink', 'db_sort', 'download_genomic_library.sh', + 'download_taxonomy.sh', 'kraken', 'kraken-build', 'kraken-filter', 'krakenlib.pm', + 'kraken-mpa-report', 'kraken-report', 'kraken-translate', 'make_seqid_to_taxid_map', + 'read_merger.pl', 'report_gi_numbers.pl', 'set_lcas', 'shrink_db.sh', + 'standard_installation.sh', 'upgrade_db.sh', 'verify_gi_numbers.pl'], + 'dirs': [], +} + +moduleclass = 'bio' diff --git a/k/Kraken/Kraken-0.10.5-beta-foss-2016b-Perl-5.24.0.eb b/k/Kraken/Kraken-0.10.5-beta-foss-2016b-Perl-5.24.0.eb new file mode 100644 index 00000000..8814a7c9 --- /dev/null +++ b/k/Kraken/Kraken-0.10.5-beta-foss-2016b-Perl-5.24.0.eb @@ -0,0 +1,44 @@ +easyblock = 'PackedBinary' + +name = 'Kraken' +version = '0.10.5-beta' +versionsuffix='-Perl-%(perlver)s' + +homepage = 'http://ccb.jhu.edu/software/kraken/' +description = """Kraken is a system for assigning taxonomic labels to short DNA sequences, + usually obtained through metagenomic studies. Previous attempts by other + bioinformatics software to accomplish this task have often used sequence + alignment or machine learning techniques that were quite slow, leading to + the development of less sensitive but much faster abundance estimation + programs. Kraken aims to achieve high sensitivity and high speed by + utilizing exact alignments of k-mers and a novel classification algorithm.""" + +#Part is compiled with CXX, the rest is in Perl +toolchain = {'name': 'foss', 'version': '2016b'} +toolchainopts = {'openmp': True} + +source_urls = ['http://ccb.jhu.edu/software/kraken/dl/'] +sources = [SOURCELOWER_TGZ] + +patches = ['Kraken_%(version)s_makefile.patch'] + +dependencies = [ + ('Perl', '5.24.0'), + ('Jellyfish', '1.1.11'), + ('wget', '1.17.1'), +] + +install_cmd = 'cd %(builddir)s/%(namelower)s-%(version)s && ' +install_cmd += './install_kraken.sh %(installdir)s' + +sanity_check_paths = { + 'files': ['add_to_library.sh', 'build_kraken_db.sh', 'check_for_jellyfish.sh', 'classify', 'clean_db.sh', + 'cp_into_tempfile.pl', 'db_shrink', 'db_sort', 'download_genomic_library.sh', + 'download_taxonomy.sh', 'kraken', 'kraken-build', 'kraken-filter', 'krakenlib.pm', + 'kraken-mpa-report', 'kraken-report', 'kraken-translate', 'make_seqid_to_taxid_map', + 'read_merger.pl', 'report_gi_numbers.pl', 'set_lcas', 'shrink_db.sh', + 'standard_installation.sh', 'upgrade_db.sh', 'verify_gi_numbers.pl'], + 'dirs': [], +} + +moduleclass = 'bio' diff --git a/k/kbproto/kbproto-1.0.6-intel-2015b.eb b/k/kbproto/kbproto-1.0.6-intel-2015b.eb new file mode 100644 index 00000000..f2bab0cc --- /dev/null +++ b/k/kbproto/kbproto-1.0.6-intel-2015b.eb @@ -0,0 +1,20 @@ +# Built with EasyBuild version 2.1.1 on 2015-06-29_22-19-00 +easyblock = 'ConfigureMake' + +name = 'kbproto' +version = '1.0.6' + +homepage = "http://www.freedesktop.org/wiki/Software/xlibs" +description = """X.org KBProto protocol headers.""" + +toolchain = {'name': 'intel', 'version': '2015b'} + +sources = [SOURCE_TAR_GZ] +source_urls = ['http://xorg.freedesktop.org/archive/individual/proto/'] + +sanity_check_paths = { + 'files': ['include/X11/extensions/%s' % x for x in ['XKBgeom.h', 'XKB.h', 'XKBproto.h', 'XKBsrv.h', 'XKBstr.h']], + 'dirs': [], +} + +moduleclass = 'vis' diff --git a/k/kbproto/kbproto-1.0.7-foss-2016a.eb b/k/kbproto/kbproto-1.0.7-foss-2016a.eb new file mode 100644 index 00000000..86f8eb23 --- /dev/null +++ b/k/kbproto/kbproto-1.0.7-foss-2016a.eb @@ -0,0 +1,19 @@ +easyblock = 'ConfigureMake' + +name = 'kbproto' +version = '1.0.7' + +homepage = "http://www.freedesktop.org/wiki/Software/xlibs" +description = """X.org KBProto protocol headers.""" + +toolchain = {'name': 'foss', 'version': '2016a'} + +sources = [SOURCE_TAR_GZ] +source_urls = [XORG_PROTO_SOURCE] + +sanity_check_paths = { + 'files': ['include/X11/extensions/%s' % x for x in ['XKBgeom.h', 'XKB.h', 'XKBproto.h', 'XKBsrv.h', 'XKBstr.h']], + 'dirs': [], +} + +moduleclass = 'vis' diff --git a/k/kbproto/kbproto-1.0.7-intel-2016a.eb b/k/kbproto/kbproto-1.0.7-intel-2016a.eb new file mode 100644 index 00000000..e5d22977 --- /dev/null +++ b/k/kbproto/kbproto-1.0.7-intel-2016a.eb @@ -0,0 +1,19 @@ +easyblock = 'ConfigureMake' + +name = 'kbproto' +version = '1.0.7' + +homepage = "http://www.freedesktop.org/wiki/Software/xlibs" +description = """X.org KBProto protocol headers.""" + +toolchain = {'name': 'intel', 'version': '2016a'} + +sources = [SOURCE_TAR_GZ] +source_urls = [XORG_PROTO_SOURCE] + +sanity_check_paths = { + 'files': ['include/X11/extensions/%s' % x for x in ['XKBgeom.h', 'XKB.h', 'XKBproto.h', 'XKBsrv.h', 'XKBstr.h']], + 'dirs': [], +} + +moduleclass = 'vis' diff --git a/l/LAMMPS/LAMMPS-28Jun14-intel-2015b.eb b/l/LAMMPS/LAMMPS-28Jun14-intel-2015b.eb new file mode 100644 index 00000000..bd8735f3 --- /dev/null +++ b/l/LAMMPS/LAMMPS-28Jun14-intel-2015b.eb @@ -0,0 +1,34 @@ +name = 'LAMMPS' +version = '28Jun14' + +homepage = 'http://lammps.sandia.gov' +description = """LAMMPS is a classical molecular dynamics code, +and an acronym for Large-scale Atomic/Molecular Massively Parallel Simulator. +Has potentials for solid-state materials (metals, semiconductors) and soft +matter (biomolecules, polymers) and coarse-grained or mesoscopic systems. +It can be used to model atoms or, more generically, as a parallel particle simulator at the atomic, +meso, or continuum scale. +""" + +toolchain = {'name': 'intel', 'version': '2015b'} + +# Please rename downloaded package lammps-stable.tar.gz to correct format reflecting version, like +# lammps-28jun14.tar.gz (lowercase!) and move to the Easybuils sources direcory. +source_urls = [ + # Use manually downloaded sources +] + +sources = [SOURCELOWER_TAR_GZ] + +patches = [('LAMMPS-Makefile.mkl.patch', 0)] + +prebuildopts = "cd src && " + +skipsteps = ['configure', 'install'] + +sanity_check_paths = { + 'files': ['bin/lmp_mkl'], + 'dirs': [''], +} + +moduleclass = 'chem' diff --git a/l/LAMMPS/LAMMPS-Makefile.mkl.patch b/l/LAMMPS/LAMMPS-Makefile.mkl.patch new file mode 100644 index 00000000..2a4e0379 --- /dev/null +++ b/l/LAMMPS/LAMMPS-Makefile.mkl.patch @@ -0,0 +1,57 @@ +--- src/MAKE/Makefile.mkl.orig 2013-10-30 16:23:31.000000000 +0100 ++++ src/MAKE/Makefile.mkl 2015-10-05 16:31:51.536587315 +0200 +@@ -2,7 +2,7 @@ + + # Intel recommends Intel Cluster Tools Compiler Edition + # to build libfftw2xc_intel.a: +-# > cd /opt/intel/mkl/10.0.011/interfaces/fftw2xc ++# > cd /apps/intel/composer_xe_2013.5.192/mkl/interfaces/fftw2xc + # > become root via su + # > gmake libem64t + +@@ -12,14 +12,21 @@ + # compiler/linker settings + # specify flags and libraries needed for your compiler + ++INTEL_MKL = $(EBROOTIMKL)/mkl ++INTEL_MKL_INC = $(INTEL_MKL)/include ++INTEL_MKL_LIB = $(INTEL_MKL)/lib/intel64 ++INTEL = $(EBROOTICC) ++INTEL_INC = $(INTEL)/include ++INTEL_LIB = $(INTEL)/lib/intel64 ++ + CC = mpiicc +-CCFLAGS = -O3 -fno-alias -ip -unroll0 ++CCFLAGS = -O3 -fno-alias -ip -unroll0 -xHost + SHFLAGS = -fPIC + DEPFLAGS = -M + + LINK = mpiicc +-LINKFLAGS = -O -L/opt/intel/mkl/10.0.011/lib/em64t +-LIB = -lstdc++ -lpthread -lmkl_em64t -lguide ++LINKFLAGS = -O -L$(INTEL_MKL_LIB) -L$(INTEL_LIB) -Wl,-rpath,$(INTEL_MKL_LIB) -Wl,-rpath,$(INTEL_LIB) ++LIB = -lstdc++ -liomp5 -lmkl_intel_lp64 -lmkl_core -lmkl_intel_thread -lpthread -lm + SIZE = size + + ARCHIVE = ar +@@ -35,6 +42,8 @@ + # see possible settings in doc/Section_start.html#2_2 (step 4) + + LMP_INC = -DLAMMPS_GZIP ++# RZG setup of LAMMPS ++#LMP_INC = -DLAMMPS_GZIP -DLAMMPS_JPEG + + # MPI library, REQUIRED + # see discussion in doc/Section_start.html#2_2 (step 5) +@@ -54,9 +63,9 @@ + # PATH = path for FFT library + # LIB = name of FFT library + +-FFT_INC = -DFFT_FFTW -I/opt/intel/mkl/10.0.011/include/fftw ++FFT_INC = -DFFT_FFTW -I$(INTEL_MKL_INC)/fftw + FFT_PATH = +-FFT_LIB = /opt/intel/mkl/10.0.011/lib/em64t/libfftw2xc_intel.a ++FFT_LIB = $(INTEL_MKL_LIB)/libfftw2xc_single_intel.a + + # JPEG and/or PNG library, OPTIONAL + # see discussion in doc/Section_start.html#2_2 (step 7) diff --git a/l/LAPACKE/LAPACKE-3.5.0.eb b/l/LAPACKE/LAPACKE-3.5.0.eb new file mode 100644 index 00000000..49aa3071 --- /dev/null +++ b/l/LAPACKE/LAPACKE-3.5.0.eb @@ -0,0 +1,36 @@ +easyblock = 'MakeCp' + +name = 'LAPACKE' +version = '3.5.0' +toolchain = {'name': 'dummy', 'version': ''} + +lapackver = '3.5.0' +versionsuffix = '-LAPACK-%s' % lapackver + +homepage = 'http://www.netlib.org/lapack/lapacke.html' +description = """LAPACKE C Interface to LAPACK header files and library""" + +lapack_src = 'lapack-%s.tgz' % lapackver + +sources = [ + lapack_src, +] +source_urls = [ + "http://www.netlib.org/lapack/", +] + +sanity_check_paths = { + 'files': ['include/lapacke.h', 'lib/liblapacke.a'], + 'dirs': [], +} + +files_to_copy = [ + (['lapacke/include/*.h'], 'include'), + (['liblapacke.a'], 'lib') +] +postinstallcmds = ['mv %(installdir)s/include/lapacke_mangling_with_flags.h %(installdir)s/include/lapacke_mangling.h'] +prebuildopts = 'cp make.inc.example make.inc && ' +buildopts = 'lapackelib CFLAGS="-O3 -fPIC"' +modextrapaths = {'CPATH' : 'include'} + +moduleclass = 'numlib' diff --git a/l/LLVM/LLVM-3.7.1-foss-2015g.eb b/l/LLVM/LLVM-3.7.1-foss-2015g.eb new file mode 100644 index 00000000..306b26b9 --- /dev/null +++ b/l/LLVM/LLVM-3.7.1-foss-2015g.eb @@ -0,0 +1,35 @@ +easyblock = 'CMakeMake' + +name = 'LLVM' +version = '3.7.1' + +homepage = "http://llvm.org/" +description = """The LLVM Core libraries provide a modern source- and target-independent + optimizer, along with code generation support for many popular CPUs + (as well as some less common ones!) These libraries are built around a well + specified code representation known as the LLVM intermediate representation + ("LLVM IR"). The LLVM Core libraries are well documented, and it is + particularly easy to invent your own language (or port an existing compiler) + to use LLVM as an optimizer and code generator.""" + +toolchain = {'name': 'foss', 'version': '2015g'} +toolchainopts = {'cstd': 'gnu++11'} + +source_urls = ["http://llvm.org/releases/%(version)s"] +sources = ["llvm-%(version)s.src.tar.xz"] + +builddependencies = [ + ('CMake', '3.3.1'), + ('Python', '2.7.9'), +] + +configopts = '-DBUILD_SHARED_LIBS=ON -DCMAKE_EXE_LINKER_FLAGS="$LDFLAGS" ' + +sanity_check_paths = { + 'files' : ['bin/llvm-ar'], + 'dirs' : ['include/llvm', 'include/llvm-c'], +} + +separate_build_dir = True + +moduleclass = 'compiler' diff --git a/l/LLVM/LLVM-3.9.0-intel-2017.00.eb b/l/LLVM/LLVM-3.9.0-intel-2017.00.eb new file mode 100644 index 00000000..c0ab4e04 --- /dev/null +++ b/l/LLVM/LLVM-3.9.0-intel-2017.00.eb @@ -0,0 +1,42 @@ +easyblock = 'CMakeMake' + +name = 'LLVM' +version = '3.9.0' + +homepage = "http://llvm.org/" +description = """The LLVM Core libraries provide a modern source- and target-independent + optimizer, along with code generation support for many popular CPUs + (as well as some less common ones!) These libraries are built around a well + specified code representation known as the LLVM intermediate representation + ("LLVM IR"). The LLVM Core libraries are well documented, and it is + particularly easy to invent your own language (or port an existing compiler) + to use LLVM as an optimizer and code generator.""" + +toolchain = {'name': 'intel', 'version': '2017.00'} + +toolchainopts = {'cstd': 'gnu++11'} + +source_urls = ["http://llvm.org/releases/%(version)s"] +sources = ["llvm-%(version)s.src.tar.xz"] + +builddependencies = [ + ('CMake', '3.6.2'), + ('Python', '3.5.2'), +] + +dependencies = [ + ('ncurses', '6.0'), +] + +configopts = '-DBUILD_SHARED_LIBS=ON -DCMAKE_EXE_LINKER_FLAGS="$LDFLAGS -shared-intel" ' +# required to install extra tools in bin/ +configopts += "-DLLVM_INSTALL_UTILS=ON " + +sanity_check_paths = { + 'files': ['bin/llvm-ar', 'bin/FileCheck'], + 'dirs': ['include/llvm', 'include/llvm-c'], +} + +separate_build_dir = True + +moduleclass = 'compiler' diff --git a/l/LeadIT/LeadIT-2.1.9.eb b/l/LeadIT/LeadIT-2.1.9.eb new file mode 100644 index 00000000..128c5bbc --- /dev/null +++ b/l/LeadIT/LeadIT-2.1.9.eb @@ -0,0 +1,27 @@ +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# Author: Ravi Tripathi +# Email: ravi89@uab.edu + +easyblock = "Tarball" + +name = 'LeadIT' +version = '2.1.9' + +homepage = 'http://www.biosolveit.de/LeadIT/index.html' +description = """Visually Informed LeadOpt""" + +toolchain = {'name': 'dummy', 'version': 'dummy'} + +#You need to get the software manually from http://www.biosolveit.de/LeadIT/index.html +sources = ['leadit-%(version)s-Linux-x64.tar.gz'] + +checksums = ['363fa557861c4d109fd595ab895df3fd'] + +modextrapaths = {'PATH': ''} + +sanity_check_paths = { + 'files': ["leadit", "flexv", "hydescorer"], + 'dirs': ["example", "doc"] +} + +moduleclass = 'chem' diff --git a/l/LevelDB/LevelDB-1.18-foss-2016a.eb b/l/LevelDB/LevelDB-1.18-foss-2016a.eb new file mode 100644 index 00000000..f3fb0f01 --- /dev/null +++ b/l/LevelDB/LevelDB-1.18-foss-2016a.eb @@ -0,0 +1,34 @@ +easyblock = 'MakeCp' + +name = 'LevelDB' +version = '1.18' + +homepage = 'https://github.com/google/leveldb' +description = """ +LevelDB is a fast key-value storage library written at Google that provides an +ordered mapping from string keys to string values. +""" + +toolchain = {'name': 'foss', 'version': '2016a'} + +sources = ['v%(version)s.tar.gz'] +source_urls = ['https://github.com/google/leveldb/archive/'] + +files_to_copy = [ + (['libleveldb.%s.%%(version)s' % SHLIB_EXT, 'libleveldb.a'], 'lib'), + (['include/leveldb/*.h'], 'include/leveldb') +] + +postinstallcmds=[ + 'cd %(installdir)s/lib; ln -s libleveldb.so.%(version)s libleveldb.so.%(version_major)s', + 'cd %%(installdir)s/lib; ln -s libleveldb.so.%%(version)s libleveldb.%s' % SHLIB_EXT, +] + + +sanity_check_paths = { + 'files': ['include/leveldb/cache.h','include/leveldb/table.h', + 'lib/libleveldb.a', 'lib/libleveldb.%s' % SHLIB_EXT], + 'dirs': [], +} + +moduleclass = 'devel' diff --git a/l/LibTIFF/LibTIFF-4.0.3-intel-2015a.eb b/l/LibTIFF/LibTIFF-4.0.3-intel-2015a.eb new file mode 100644 index 00000000..5b2c252b --- /dev/null +++ b/l/LibTIFF/LibTIFF-4.0.3-intel-2015a.eb @@ -0,0 +1,30 @@ +## +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# +# Copyright:: Copyright 2012-2014 Uni.Lu/LCSB, NTUA +# Authors:: Fotis Georgatos +# 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/ +## +easyblock = 'ConfigureMake' + +name = 'LibTIFF' +version = '4.0.3' + +homepage = 'http://www.remotesensing.org/libtiff/' +description = "tiff: Library and tools for reading and writing TIFF data files" + +source_urls = ['ftp://ftp.remotesensing.org/pub/libtiff/'] +sources = ['tiff-%(version)s.tar.gz'] + +toolchain = {'name': 'intel', 'version': '2015a'} + +sanity_check_paths = { + 'files': ['bin/tiffinfo'], + 'dirs': [], +} + +moduleclass = 'lib' diff --git a/l/LibTIFF/LibTIFF-4.0.3-intel-2015b.eb b/l/LibTIFF/LibTIFF-4.0.3-intel-2015b.eb new file mode 100644 index 00000000..d18fddfb --- /dev/null +++ b/l/LibTIFF/LibTIFF-4.0.3-intel-2015b.eb @@ -0,0 +1,30 @@ +## +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# +# Copyright:: Copyright 2012-2014 Uni.Lu/LCSB, NTUA +# Authors:: Fotis Georgatos +# 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/ +## +easyblock = 'ConfigureMake' + +name = 'LibTIFF' +version = '4.0.3' + +homepage = 'http://www.remotesensing.org/libtiff/' +description = "tiff: Library and tools for reading and writing TIFF data files" + +source_urls = ['ftp://ftp.remotesensing.org/pub/libtiff/'] +sources = ['tiff-%(version)s.tar.gz'] + +toolchain = {'name': 'intel', 'version': '2015b'} + +sanity_check_paths = { + 'files': ['bin/tiffinfo'], + 'dirs': [], +} + +moduleclass = 'lib' diff --git a/l/Libint/Libint-1.1.4-CrayGNU-2015.06.eb b/l/Libint/Libint-1.1.4-CrayGNU-2015.06.eb new file mode 100644 index 00000000..173c7dbd --- /dev/null +++ b/l/Libint/Libint-1.1.4-CrayGNU-2015.06.eb @@ -0,0 +1,24 @@ +name = 'Libint' +version = '1.1.4' + +homepage = 'https://sourceforge.net/p/libint/' +description = """Libint library is used to evaluate the traditional (electron repulsion) and certain novel two-body + matrix elements (integrals) over Cartesian Gaussian functions used in modern atomic and molecular theory.""" + +toolchain = {'name': 'CrayGNU', 'version': '2015.06'} +toolchainopts = {'opt': True, 'pic': True} + +sources = [SOURCELOWER_TAR_GZ] +source_urls = ('http://sourceforge.net/projects/libint/files/v1-releases/', 'download') + +configopts = "--enable-deriv --enable-r12" + +sanity_check_paths = { + 'files': ['include/lib%(x)s/lib%(x)s.h' % {'x': x} for x in ['deriv', 'int', 'r12']] + + ['include/libint/hrr_header.h', 'include/libint/vrr_header.h'] + + ['lib/lib%s.a' % x for x in ['deriv', 'int', 'r12']] + + ['lib/lib%s.so' % x for x in ['deriv', 'int', 'r12']], + 'dirs':[], +} + +moduleclass = 'chem' diff --git a/l/Libint/Libint-1.1.4-CrayGNU-2015.11.eb b/l/Libint/Libint-1.1.4-CrayGNU-2015.11.eb new file mode 100644 index 00000000..ef47d32b --- /dev/null +++ b/l/Libint/Libint-1.1.4-CrayGNU-2015.11.eb @@ -0,0 +1,24 @@ +name = 'Libint' +version = '1.1.4' + +homepage = 'https://sourceforge.net/p/libint/' +description = """Libint library is used to evaluate the traditional (electron repulsion) and certain novel two-body + matrix elements (integrals) over Cartesian Gaussian functions used in modern atomic and molecular theory.""" + +toolchain = {'name': 'CrayGNU', 'version': '2015.11'} +toolchainopts = {'opt': True, 'pic': True} + +sources = [SOURCELOWER_TAR_GZ] +source_urls = ('http://sourceforge.net/projects/libint/files/v1-releases/', 'download') + +configopts = "--enable-deriv --enable-r12" + +sanity_check_paths = { + 'files': ['include/lib%(x)s/lib%(x)s.h' % {'x': x} for x in ['deriv', 'int', 'r12']] + + ['include/libint/hrr_header.h', 'include/libint/vrr_header.h'] + + ['lib/lib%s.a' % x for x in ['deriv', 'int', 'r12']] + + ['lib/lib%s.so' % x for x in ['deriv', 'int', 'r12']], + 'dirs':[], +} + +moduleclass = 'chem' diff --git a/l/Libint/Libint-1.1.4-goolf-1.5.16.eb b/l/Libint/Libint-1.1.4-goolf-1.5.16.eb new file mode 100644 index 00000000..6ed04c34 --- /dev/null +++ b/l/Libint/Libint-1.1.4-goolf-1.5.16.eb @@ -0,0 +1,23 @@ +name = 'Libint' +version = '1.1.4' + +homepage = 'https://sourceforge.net/p/libint/' +description = """Libint library is used to evaluate the traditional (electron repulsion) and certain novel two-body +matrix elements (integrals) over Cartesian Gaussian functions used in modern atomic and molecular theory.""" +toolchain = {'name': 'goolf', 'version': '1.5.16'} +toolchainopts = {'opt': True, 'optarch': True, 'pic': True} + +sources = [SOURCELOWER_TAR_GZ] +source_urls = ('http://sourceforge.net/projects/libint/files/v1-releases/', 'download') + +configopts = "--enable-deriv --enable-r12" + +sanity_check_paths = { + 'files': ['include/lib%(x)s/lib%(x)s.h' % {'x': x} for x in ['deriv', 'int', 'r12']] + + ['include/libint/hrr_header.h', 'include/libint/vrr_header.h'] + + ['lib/lib%s.a' % x for x in ['deriv', 'int', 'r12']] + + ['lib/lib%s.so' % x for x in ['deriv', 'int', 'r12']], + 'dirs':[], +} + +moduleclass = 'chem' diff --git a/l/Lmod/Lmod-7.0.6.eb b/l/Lmod/Lmod-7.0.6.eb new file mode 100644 index 00000000..017fe1e2 --- /dev/null +++ b/l/Lmod/Lmod-7.0.6.eb @@ -0,0 +1,28 @@ +easyblock = 'ConfigureMake' + +name = "Lmod" +version = "7.0.6" + +homepage = "http://sourceforge.net/projects/lmod/" +description = """Lmod is a Lua based module system. Modules allow for dynamic modification + of a user's environment under Unix systems. See www.tacc.utexas.edu/tacc-projects/lmod + for a complete description. Lmod is a new implementation that easily handles the MODULEPATH + Hierarchical problem. It is drop-in replacement for TCL/C modules and reads TCL modulefiles directly.""" + +toolchain = {'name': 'dummy', 'version': ''} + +sources = ['%(version)s.tar.gz'] +source_urls = [ + 'https://github.com/TACC/Lmod/archive', + 'http://sourceforge.net/projects/lmod/files/', + 'http://sourceforge.net/projects/lmod/files/Testing' +] + +dependencies = [("Lua", "5.1.4-8")] + +sanity_check_paths = { + 'files': ["lmod/%(version)s/libexec/lmod", "lmod/%(version)s/init/profile"], + 'dirs': [] +} + +moduleclass = "tools" diff --git a/l/Lmod/Lmod-7.2.2.eb b/l/Lmod/Lmod-7.2.2.eb new file mode 100644 index 00000000..3edf87c8 --- /dev/null +++ b/l/Lmod/Lmod-7.2.2.eb @@ -0,0 +1,28 @@ +easyblock = 'ConfigureMake' + +name = "Lmod" +version = "7.2.2" + +homepage = "http://sourceforge.net/projects/lmod/" +description = """Lmod is a Lua based module system. Modules allow for dynamic modification + of a user's environment under Unix systems. See www.tacc.utexas.edu/tacc-projects/lmod + for a complete description. Lmod is a new implementation that easily handles the MODULEPATH + Hierarchical problem. It is drop-in replacement for TCL/C modules and reads TCL modulefiles directly.""" + +toolchain = {'name': 'dummy', 'version': ''} + +sources = ['%(version)s.tar.gz'] +source_urls = [ + 'https://github.com/TACC/Lmod/archive', + 'http://sourceforge.net/projects/lmod/files/', + 'http://sourceforge.net/projects/lmod/files/Testing' +] + +dependencies = [("Lua", "5.1.4-8")] + +sanity_check_paths = { + 'files': ["lmod/%(version)s/libexec/lmod", "lmod/%(version)s/init/profile"], + 'dirs': [] +} + +moduleclass = "tools" diff --git a/l/Loki/Loki-0.1.7-foss-2016a.eb b/l/Loki/Loki-0.1.7-foss-2016a.eb new file mode 100644 index 00000000..07ee0538 --- /dev/null +++ b/l/Loki/Loki-0.1.7-foss-2016a.eb @@ -0,0 +1,24 @@ +easyblock = 'ConfigureMake' + +name = 'Loki' +version = '0.1.7' + +homepage = 'http://loki-lib.sourceforge.net/' +description = """ Loki is a C++ library of designs, containing flexible implementations of common design patterns and + idioms. """ + +toolchain = {'name': 'foss', 'version': '2016a'} + +source_urls = ['https://sourceforge.net/projects/loki-lib/files/Loki/Loki %(version)s/'] +sources = [SOURCELOWER_TAR_GZ] + +skipsteps = ['configure'] + +installopts = "prefix=%(installdir)s" + +sanity_check_paths={ + 'files': ['lib/libloki.a', 'lib/libloki.%s' % SHLIB_EXT, 'lib/libloki.%s.%%(version)s' % SHLIB_EXT], + 'dirs': ['include/loki'], +} + +moduleclass = 'lib' diff --git a/l/Loki/Loki-0.1.7-foss-2016b.eb b/l/Loki/Loki-0.1.7-foss-2016b.eb new file mode 100644 index 00000000..63a5c285 --- /dev/null +++ b/l/Loki/Loki-0.1.7-foss-2016b.eb @@ -0,0 +1,24 @@ +easyblock = 'ConfigureMake' + +name = 'Loki' +version = '0.1.7' + +homepage = 'http://loki-lib.sourceforge.net/' +description = """ Loki is a C++ library of designs, containing flexible implementations of common design patterns and + idioms. """ + +toolchain = {'name': 'foss', 'version': '2016b'} + +source_urls = ['https://sourceforge.net/projects/loki-lib/files/Loki/Loki %(version)s/'] +sources = [SOURCELOWER_TAR_GZ] + +skipsteps = ['configure'] + +installopts = "prefix=%(installdir)s" + +sanity_check_paths={ + 'files': ['lib/libloki.a', 'lib/libloki.%s' % SHLIB_EXT, 'lib/libloki.%s.%%(version)s' % SHLIB_EXT], + 'dirs': ['include/loki'], +} + +moduleclass = 'lib' diff --git a/l/Loki/Loki-0.1.7-intel-2016a.eb b/l/Loki/Loki-0.1.7-intel-2016a.eb new file mode 100644 index 00000000..353bbfd9 --- /dev/null +++ b/l/Loki/Loki-0.1.7-intel-2016a.eb @@ -0,0 +1,24 @@ +easyblock = 'ConfigureMake' + +name = 'Loki' +version = '0.1.7' + +homepage = 'http://loki-lib.sourceforge.net/' +description = """ Loki is a C++ library of designs, containing flexible implementations of common design patterns and + idioms. """ + +toolchain = {'name': 'intel', 'version': '2016a'} + +source_urls = ['https://sourceforge.net/projects/loki-lib/files/Loki/Loki %(version)s/'] +sources = [SOURCELOWER_TAR_GZ] + +skipsteps = ['configure'] + +installopts = "prefix=%(installdir)s" + +sanity_check_paths={ + 'files': ['lib/libloki.a', 'lib/libloki.%s' % SHLIB_EXT, 'lib/libloki.%s.%%(version)s' % SHLIB_EXT], + 'dirs': ['include/loki'], +} + +moduleclass = 'lib' diff --git a/l/Loki/Loki-0.1.7-intel-2016b.eb b/l/Loki/Loki-0.1.7-intel-2016b.eb new file mode 100644 index 00000000..a25e47aa --- /dev/null +++ b/l/Loki/Loki-0.1.7-intel-2016b.eb @@ -0,0 +1,24 @@ +easyblock = 'ConfigureMake' + +name = 'Loki' +version = '0.1.7' + +homepage = 'http://loki-lib.sourceforge.net/' +description = """ Loki is a C++ library of designs, containing flexible implementations of common design patterns and + idioms. """ + +toolchain = {'name': 'intel', 'version': '2016b'} + +source_urls = ['https://sourceforge.net/projects/loki-lib/files/Loki/Loki %(version)s/'] +sources = [SOURCELOWER_TAR_GZ] + +skipsteps = ['configure'] + +installopts = "prefix=%(installdir)s" + +sanity_check_paths={ + 'files': ['lib/libloki.a', 'lib/libloki.%s' % SHLIB_EXT, 'lib/libloki.%s.%%(version)s' % SHLIB_EXT], + 'dirs': ['include/loki'], +} + +moduleclass = 'lib' diff --git a/l/Lua/Lua-5.1.4-8.eb b/l/Lua/Lua-5.1.4-8.eb new file mode 100644 index 00000000..7f533b69 --- /dev/null +++ b/l/Lua/Lua-5.1.4-8.eb @@ -0,0 +1,32 @@ +easyblock = 'ConfigureMake' + +name = "Lua" +version = "5.1.4-8" + +homepage = "http://www.lua.org/" +description = """Lua is a powerful, fast, lightweight, embeddable scripting language. + Lua combines simple procedural syntax with powerful data description constructs based + on associative arrays and extensible semantics. Lua is dynamically typed, + runs by interpreting bytecode for a register-based virtual machine, + and has automatic memory management with incremental garbage collection, + making it ideal for configuration, scripting, and rapid prototyping.""" + +toolchain = {'name': 'dummy', 'version': ''} + +sources = ['lua-%s.tar.gz' % version.replace('-', '.')] +source_urls = ['http://sourceforge.net/projects/lmod/files/'] + +builddependencies = [ + ('ncurses', '6.0'), + ('libreadline', '6.3') +] + +# Use static linking for ncurses so it's not a runtime dep +#configopts = "--with-static=yes" + +sanity_check_paths = { + 'files': ["bin/lua"], + 'dirs': [] +} + +moduleclass = "lang" diff --git a/l/lftp/lftp-4.4.1-goalf-1.1.0-no-OFED.eb b/l/lftp/lftp-4.4.1-goalf-1.1.0-no-OFED.eb new file mode 100644 index 00000000..143cec91 --- /dev/null +++ b/l/lftp/lftp-4.4.1-goalf-1.1.0-no-OFED.eb @@ -0,0 +1,40 @@ +## +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# +# Copyright:: Copyright 2012-2014 Uni.Lu/LCSB, NTUA +# Authors:: Fotis Georgatos +# 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-90.html +## + +easyblock = 'ConfigureMake' + +name = 'lftp' +version = '4.4.1' + +homepage = 'http://lftp.yar.ru' +description = """LFTP is a sophisticated ftp/http client, and a file transfer program supporting + a number of network protocols. Like BASH, it has job control and uses the readline library for + input. It has bookmarks, a built-in mirror command, and can transfer several files in parallel. + It was designed with reliability in mind.""" + +toolchain = {'name': 'goalf', 'version': '1.1.0-no-OFED'} + +# fi. http://ftp.yar.ru/pub/source/lftp/lftp-4.4.1.tar.bz2 +sources = [SOURCE_TAR_BZ2] +source_urls = [ + 'http://ftp.yar.ru/pub/source/lftp/', + 'http://ftp.yar.ru/pub/source/lftp/old/', +] + +dependencies = [('gnutls', '3.1.8')] + +sanity_check_paths = { + 'files': ['bin/lftp'], + 'dirs': [] +} + +moduleclass = 'tools' diff --git a/l/lftp/lftp-4.4.1-goolf-1.4.10.eb b/l/lftp/lftp-4.4.1-goolf-1.4.10.eb new file mode 100644 index 00000000..e96735ec --- /dev/null +++ b/l/lftp/lftp-4.4.1-goolf-1.4.10.eb @@ -0,0 +1,39 @@ +## +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# +# Copyright:: Copyright 2012-2014 Uni.Lu/LCSB, NTUA +# Authors:: Fotis Georgatos +# 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-90.html +## + +easyblock = 'ConfigureMake' + +name = 'lftp' +version = '4.4.1' + +homepage = 'http://lftp.yar.ru' +description = """LFTP is a sophisticated ftp/http client, and a file transfer program supporting + a number of network protocols. Like BASH, it has job control and uses the readline library for + input. It has bookmarks, a built-in mirror command, and can transfer several files in parallel. + It was designed with reliability in mind.""" +toolchain = {'name': 'goolf', 'version': '1.4.10'} + +# fi. http://ftp.yar.ru/pub/source/lftp/lftp-4.4.1.tar.bz2 +sources = [SOURCE_TAR_BZ2] +source_urls = [ + 'http://ftp.yar.ru/pub/source/lftp/', + 'http://ftp.yar.ru/pub/source/lftp/old/', +] + +dependencies = [('gnutls', '3.1.8')] + +sanity_check_paths = { + 'files': ['bin/lftp'], + 'dirs': [] +} + +moduleclass = 'tools' diff --git a/l/lftp/lftp-4.6.4-GNU-4.9.3-2.25.eb b/l/lftp/lftp-4.6.4-GNU-4.9.3-2.25.eb new file mode 100644 index 00000000..a70f4084 --- /dev/null +++ b/l/lftp/lftp-4.6.4-GNU-4.9.3-2.25.eb @@ -0,0 +1,43 @@ +## +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# +# Copyright:: Copyright 2012-2014 Uni.Lu/LCSB, NTUA +# Authors:: Fotis Georgatos +# 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-90.html +## + +easyblock = 'ConfigureMake' + +name = 'lftp' +version = '4.6.4' + +homepage = 'http://lftp.yar.ru' +description = """LFTP is a sophisticated ftp/http client, and a file transfer program supporting + a number of network protocols. Like BASH, it has job control and uses the readline library for + input. It has bookmarks, a built-in mirror command, and can transfer several files in parallel. + It was designed with reliability in mind.""" + +toolchain = {'name': 'GNU', 'version': '4.9.3-2.25'} + +sources = [SOURCE_TAR_BZ2] +source_urls = [ + 'http://lftp.yar.ru/ftp/', + 'http://lftp.yar.ru/ftp/old/', +] + +dependencies = [ + ('gnutls', '3.4.7'), + ('gettext', '0.19.6'), + ('zlib', '1.2.8'), +] + +sanity_check_paths = { + 'files': ['bin/lftp'], + 'dirs': [] +} + +moduleclass = 'tools' diff --git a/l/libGLU/libGLU-9.0.0-foss-2015g.eb b/l/libGLU/libGLU-9.0.0-foss-2015g.eb new file mode 100644 index 00000000..31d21db0 --- /dev/null +++ b/l/libGLU/libGLU-9.0.0-foss-2015g.eb @@ -0,0 +1,24 @@ +easyblock = 'ConfigureMake' + +name = 'libGLU' +version = '9.0.0' + +homepage = 'ftp://ftp.freedesktop.org/pub/mesa/glu/' +description = """The OpenGL Utility Library (GLU) is a computer graphics library for OpenGL. """ + +toolchain = {'name': 'foss', 'version': '2015g'} +toolchainopts = {'pic': True} + +source_urls = ['ftp://ftp.freedesktop.org/pub/mesa/glu/'] +sources = ['glu-%(version)s.tar.bz2'] + +dependencies = [ + ('Mesa', '11.0.8', '-Python-2.7.9'), +] + +sanity_check_paths = { + 'files' : ['lib/libGLU.so.1'], + 'dirs' : [], +} + +moduleclass = 'vis' diff --git a/l/libICE/libICE-1.0.9-foss-2016a.eb b/l/libICE/libICE-1.0.9-foss-2016a.eb new file mode 100644 index 00000000..78420c88 --- /dev/null +++ b/l/libICE/libICE-1.0.9-foss-2016a.eb @@ -0,0 +1,27 @@ +easyblock = 'ConfigureMake' + +name = 'libICE' +version = '1.0.9' + +homepage = "http://www.freedesktop.org/wiki/Software/xlibs" +description = """X Inter-Client Exchange library for freedesktop.org""" + +toolchain = {'name': 'foss', 'version': '2016a'} + +sources = [SOURCE_TAR_GZ] +source_urls = [XORG_LIB_SOURCE] + +dependencies = [ + ('xtrans', '1.3.5'), +] + +builddependencies = [ + ('xproto', '7.0.28'), +] + +sanity_check_paths = { + 'files': ['include/X11/ICE/ICE%s.h' % x for x in ['', 'conn', 'lib', 'msg', 'proto', 'util']], + 'dirs': [], +} + +moduleclass = 'vis' diff --git a/l/libICE/libICE-1.0.9-intel-2016a.eb b/l/libICE/libICE-1.0.9-intel-2016a.eb new file mode 100644 index 00000000..bd5ecc8b --- /dev/null +++ b/l/libICE/libICE-1.0.9-intel-2016a.eb @@ -0,0 +1,27 @@ +easyblock = 'ConfigureMake' + +name = 'libICE' +version = '1.0.9' + +homepage = "http://www.freedesktop.org/wiki/Software/xlibs" +description = """X Inter-Client Exchange library for freedesktop.org""" + +toolchain = {'name': 'intel', 'version': '2016a'} + +sources = [SOURCE_TAR_GZ] +source_urls = [XORG_LIB_SOURCE] + +dependencies = [ + ('xtrans', '1.3.5'), +] + +builddependencies = [ + ('xproto', '7.0.28'), +] + +sanity_check_paths = { + 'files': ['include/X11/ICE/ICE%s.h' % x for x in ['', 'conn', 'lib', 'msg', 'proto', 'util']], + 'dirs': [], +} + +moduleclass = 'vis' diff --git a/l/libMesh/libMesh-0.9.5-intel-2016.01.eb b/l/libMesh/libMesh-0.9.5-intel-2016.01.eb new file mode 100644 index 00000000..896e72f2 --- /dev/null +++ b/l/libMesh/libMesh-0.9.5-intel-2016.01.eb @@ -0,0 +1,30 @@ +easyblock = 'ConfigureMake' + +name = 'libMesh' +version = '0.9.5' + +homepage = 'http://libmesh.github.io/' +description = """The libMesh library provides a framework for the numerical simulation of partial differential equations + using arbitrary unstructured discretizations on serial and parallel platforms. A major goal of the library is to + provide support for adaptive mesh refinement (AMR) computations in parallel while allowing a research scientist + to focus on the physics they are modeling.""" + +toolchain = {'name': 'intel', 'version': '2016.01'} + +source_urls = [ + 'https://github.com/libMesh/libmesh/releases/download/v%(version)s/', +] + +sources = [SOURCELOWER_TAR_GZ] + +configopts = "CC=mpiicc CXX=mpiicpc" + +#builddependencies = [('PETSc', '3.6.1', '-Python-2.7.9'),] + +sanity_check_paths = { + 'files': ['bin/meshtool-opt'], + 'dirs': ['bin'], +} + +moduleclass = 'lib' + diff --git a/l/libSM/libSM-1.2.2-foss-2016a.eb b/l/libSM/libSM-1.2.2-foss-2016a.eb new file mode 100644 index 00000000..289966ee --- /dev/null +++ b/l/libSM/libSM-1.2.2-foss-2016a.eb @@ -0,0 +1,28 @@ +easyblock = 'ConfigureMake' + +name = 'libSM' +version = '1.2.2' + +homepage = "http://www.freedesktop.org/wiki/Software/xlibs" +description = """X11 Session Management library, which allows for applications to both manage sessions, + and make use of session managers to save and restore their state for later use.""" + +toolchain = {'name': 'foss', 'version': '2016a'} + +sources = [SOURCE_TAR_GZ] +source_urls = [XORG_LIB_SOURCE] + +dependencies = [ + ('libICE', '1.0.9'), +] +builddependencies = [ + ('xproto', '7.0.28'), + ('xtrans', '1.3.5'), +] + +sanity_check_paths = { + 'files': ['include/X11/SM/%s' % x for x in ['SM.h', 'SMlib.h', 'SMproto.h']], + 'dirs': [], +} + +moduleclass = 'devel' diff --git a/l/libSM/libSM-1.2.2-intel-2016a.eb b/l/libSM/libSM-1.2.2-intel-2016a.eb new file mode 100644 index 00000000..1bab5701 --- /dev/null +++ b/l/libSM/libSM-1.2.2-intel-2016a.eb @@ -0,0 +1,28 @@ +easyblock = 'ConfigureMake' + +name = 'libSM' +version = '1.2.2' + +homepage = "http://www.freedesktop.org/wiki/Software/xlibs" +description = """X11 Session Management library, which allows for applications to both manage sessions, + and make use of session managers to save and restore their state for later use.""" + +toolchain = {'name': 'intel', 'version': '2016a'} + +sources = [SOURCE_TAR_GZ] +source_urls = [XORG_LIB_SOURCE] + +dependencies = [ + ('libICE', '1.0.9'), +] +builddependencies = [ + ('xproto', '7.0.28'), + ('xtrans', '1.3.5'), +] + +sanity_check_paths = { + 'files': ['include/X11/SM/%s' % x for x in ['SM.h', 'SMlib.h', 'SMproto.h']], + 'dirs': [], +} + +moduleclass = 'devel' diff --git a/l/libX11/libX11-1.6.2-intel-2015b-Python-2.7.9.eb b/l/libX11/libX11-1.6.2-intel-2015b-Python-2.7.9.eb new file mode 100644 index 00000000..583d6dfa --- /dev/null +++ b/l/libX11/libX11-1.6.2-intel-2015b-Python-2.7.9.eb @@ -0,0 +1,37 @@ +easyblock = 'ConfigureMake' + +name = 'libX11' +version = '1.6.2' +versionsuffix = '-Python-2.7.9' + +homepage = "http://www.freedesktop.org/wiki/Software/xlibs" +description = """X11 client-side library""" + +toolchain = {'name': 'intel', 'version': '2015b'} + +sources = [SOURCE_TAR_GZ] +source_urls = [XORG_LIB_SOURCE] + +builddependencies = [ + ('xextproto', '7.3.0'), + ('xcb-proto', '1.11', versionsuffix), + ('inputproto', '2.3'), + ('xproto', '7.0.26'), + ('kbproto', '1.0.6'), +] + +dependencies = [ + ('libxcb', '1.11', versionsuffix), + ('xtrans', '1.3.5'), +] + +sanity_check_paths = { + 'files': ['include/X11/%s' % x for x in [ + 'cursorfont.h', 'ImUtil.h', 'Xcms.h', 'XKBlib.h', 'XlibConf.h', 'Xlib.h', 'Xlibint.h', 'Xlib-xcb.h', + 'Xlocale.h', 'Xregion.h', 'Xresource.h', 'Xutil.h', + ] + ], + 'dirs': [], +} + +moduleclass = 'vis' diff --git a/l/libX11/libX11-1.6.3-foss-2016a.eb b/l/libX11/libX11-1.6.3-foss-2016a.eb new file mode 100644 index 00000000..7bbdcf2d --- /dev/null +++ b/l/libX11/libX11-1.6.3-foss-2016a.eb @@ -0,0 +1,37 @@ +easyblock = 'ConfigureMake' + +name = 'libX11' +version = '1.6.3' + +homepage = "http://www.freedesktop.org/wiki/Software/xlibs" +description = """X11 client-side library""" + +toolchain = {'name': 'foss', 'version': '2016a'} + +sources = [SOURCE_TAR_GZ] +source_urls = [XORG_LIB_SOURCE] + +builddependencies = [ + ('xextproto', '7.3.0'), + ('xcb-proto', '1.11', '', True), + ('inputproto', '2.3.1'), + ('xproto', '7.0.28'), + ('libpthread-stubs', '0.3'), + ('kbproto', '1.0.7'), + ('xtrans', '1.3.5'), +] + +dependencies = [ + ('libxcb', '1.11.1'), +] + +sanity_check_paths = { + 'files': ['include/X11/%s' % x for x in [ + 'cursorfont.h', 'ImUtil.h', 'Xcms.h', 'XKBlib.h', 'XlibConf.h', 'Xlib.h', 'Xlibint.h', 'Xlib-xcb.h', + 'Xlocale.h', 'Xregion.h', 'Xresource.h', 'Xutil.h', + ] + ], + 'dirs': [], +} + +moduleclass = 'vis' diff --git a/l/libX11/libX11-1.6.3-intel-2015b-Python-2.7.9.eb b/l/libX11/libX11-1.6.3-intel-2015b-Python-2.7.9.eb new file mode 100644 index 00000000..612722d3 --- /dev/null +++ b/l/libX11/libX11-1.6.3-intel-2015b-Python-2.7.9.eb @@ -0,0 +1,37 @@ +easyblock = 'ConfigureMake' + +name = 'libX11' +version = '1.6.3' +versionsuffix = '-Python-2.7.9' + +homepage = "http://www.freedesktop.org/wiki/Software/xlibs" +description = """X11 client-side library""" + +toolchain = {'name': 'intel', 'version': '2015b'} + +sources = [SOURCE_TAR_GZ] +source_urls = [XORG_LIB_SOURCE] + +builddependencies = [ + ('xextproto', '7.3.0'), + ('xcb-proto', '1.11', versionsuffix), + ('inputproto', '2.3.1'), + ('xproto', '7.0.26'), + ('kbproto', '1.0.6'), +] + +dependencies = [ + ('libxcb', '1.11', versionsuffix), + ('xtrans', '1.3.5'), +] + +sanity_check_paths = { + 'files': ['include/X11/%s' % x for x in [ + 'cursorfont.h', 'ImUtil.h', 'Xcms.h', 'XKBlib.h', 'XlibConf.h', 'Xlib.h', 'Xlibint.h', 'Xlib-xcb.h', + 'Xlocale.h', 'Xregion.h', 'Xresource.h', 'Xutil.h', + ] + ], + 'dirs': [], +} + +moduleclass = 'vis' diff --git a/l/libX11/libX11-1.6.3-intel-2016a.eb b/l/libX11/libX11-1.6.3-intel-2016a.eb new file mode 100644 index 00000000..5df5e13e --- /dev/null +++ b/l/libX11/libX11-1.6.3-intel-2016a.eb @@ -0,0 +1,37 @@ +easyblock = 'ConfigureMake' + +name = 'libX11' +version = '1.6.3' + +homepage = "http://www.freedesktop.org/wiki/Software/xlibs" +description = """X11 client-side library""" + +toolchain = {'name': 'intel', 'version': '2016a'} + +sources = [SOURCE_TAR_GZ] +source_urls = [XORG_LIB_SOURCE] + +builddependencies = [ + ('xextproto', '7.3.0'), + ('xcb-proto', '1.11', '', True), + ('inputproto', '2.3.1'), + ('xproto', '7.0.28'), + ('libpthread-stubs', '0.3'), + ('kbproto', '1.0.7'), + ('xtrans', '1.3.5'), +] + +dependencies = [ + ('libxcb', '1.11.1'), +] + +sanity_check_paths = { + 'files': ['include/X11/%s' % x for x in [ + 'cursorfont.h', 'ImUtil.h', 'Xcms.h', 'XKBlib.h', 'XlibConf.h', 'Xlib.h', 'Xlibint.h', 'Xlib-xcb.h', + 'Xlocale.h', 'Xregion.h', 'Xresource.h', 'Xutil.h', + ] + ], + 'dirs': [], +} + +moduleclass = 'vis' diff --git a/l/libXau/libXau-1.0.8-foss-2016a.eb b/l/libXau/libXau-1.0.8-foss-2016a.eb new file mode 100644 index 00000000..9f496971 --- /dev/null +++ b/l/libXau/libXau-1.0.8-foss-2016a.eb @@ -0,0 +1,26 @@ +easyblock = 'ConfigureMake' + +name = 'libXau' +version = '1.0.8' + +homepage = "http://www.freedesktop.org/wiki/Software/xlibs" +description = """The libXau package contains a library implementing the X11 Authorization Protocol. +This is useful for restricting client access to the display.""" + +toolchain = {'name': 'foss', 'version': '2016a'} +toolchainopts = {'optarch': True} + +sources = [SOURCE_TAR_GZ] +source_urls = [XORG_LIB_SOURCE] + +builddependencies = [ + ('pkg-config', '0.29'), + ('xproto', '7.0.28'), +] + +sanity_check_paths = { + 'files': ['lib/libXau.a', 'lib/libXau.%s' % SHLIB_EXT], + 'dirs': [], +} + +moduleclass = 'vis' diff --git a/l/libXau/libXau-1.0.8-intel-2016a.eb b/l/libXau/libXau-1.0.8-intel-2016a.eb new file mode 100644 index 00000000..8003dc09 --- /dev/null +++ b/l/libXau/libXau-1.0.8-intel-2016a.eb @@ -0,0 +1,25 @@ +easyblock = 'ConfigureMake' + +name = 'libXau' +version = '1.0.8' + +homepage = "http://www.freedesktop.org/wiki/Software/xlibs" +description = """The libXau package contains a library implementing the X11 Authorization Protocol. +This is useful for restricting client access to the display.""" + +toolchain = {'name': 'intel', 'version': '2016a'} +toolchainopts = {'optarch': True} + +sources = [SOURCE_TAR_GZ] +source_urls = [XORG_LIB_SOURCE] + +builddependencies = [ + ('xproto', '7.0.28'), +] + +sanity_check_paths = { + 'files': ['lib/libXau.a', 'lib/libXau.%s' % SHLIB_EXT], + 'dirs': [], +} + +moduleclass = 'vis' diff --git a/l/libXcursor/libXcursor-1.1.14-foss-2016a.eb b/l/libXcursor/libXcursor-1.1.14-foss-2016a.eb new file mode 100644 index 00000000..1fc949ad --- /dev/null +++ b/l/libXcursor/libXcursor-1.1.14-foss-2016a.eb @@ -0,0 +1,29 @@ +easyblock = 'ConfigureMake' + +name = 'libXcursor' +version = '1.1.14' + +homepage = "http://www.freedesktop.org/wiki/Software/xlibs" +description = """X Cursor management library""" + +toolchain = {'name': 'foss', 'version': '2016a'} + +sources = [SOURCE_TAR_GZ] +source_urls = [XORG_LIB_SOURCE] + +builddependencies = [ + ('fixesproto', '5.0'), +] + +dependencies = [ + ('libX11', '1.6.3'), + ('libXfixes', '5.0.1'), + ('libXrender', '0.9.9'), +] + +sanity_check_paths = { + 'files': ['include/X11/Xcursor/Xcursor.h', 'lib/libXcursor.%s' % SHLIB_EXT, 'lib/libXcursor.a'], + 'dirs': [], +} + +moduleclass = 'vis' diff --git a/l/libXcursor/libXcursor-1.1.14-intel-2016a.eb b/l/libXcursor/libXcursor-1.1.14-intel-2016a.eb new file mode 100644 index 00000000..e7e9608b --- /dev/null +++ b/l/libXcursor/libXcursor-1.1.14-intel-2016a.eb @@ -0,0 +1,29 @@ +easyblock = 'ConfigureMake' + +name = 'libXcursor' +version = '1.1.14' + +homepage = "http://www.freedesktop.org/wiki/Software/xlibs" +description = """X Cursor management library""" + +toolchain = {'name': 'intel', 'version': '2016a'} + +sources = [SOURCE_TAR_GZ] +source_urls = [XORG_LIB_SOURCE] + +builddependencies = [ + ('fixesproto', '5.0'), +] + +dependencies = [ + ('libX11', '1.6.3'), + ('libXfixes', '5.0.1'), + ('libXrender', '0.9.9'), +] + +sanity_check_paths = { + 'files': ['include/X11/Xcursor/Xcursor.h', 'lib/libXcursor.%s' % SHLIB_EXT, 'lib/libXcursor.a'], + 'dirs': [], +} + +moduleclass = 'vis' diff --git a/l/libXdamage/libXdamage-1.1.4-foss-2015g-Python-2.7.9.eb b/l/libXdamage/libXdamage-1.1.4-foss-2015g-Python-2.7.9.eb new file mode 100644 index 00000000..68354f2c --- /dev/null +++ b/l/libXdamage/libXdamage-1.1.4-foss-2015g-Python-2.7.9.eb @@ -0,0 +1,26 @@ +easyblock = 'ConfigureMake' + +name = 'libXdamage' +version = '1.1.4' +versionsuffix = '-Python-2.7.9' + +homepage = "http://www.freedesktop.org/wiki/Software/xlibs" +description = """X Damage extension library""" + +toolchain = {'name': 'foss', 'version': '2015g'} + +sources = [SOURCE_TAR_GZ] +source_urls = [XORG_LIB_SOURCE] + +dependencies = [ + ('libX11', '1.6.2', versionsuffix), + ('libxcb', '1.11', versionsuffix), + ('libXau', '1.0.8'), +] + +sanity_check_paths = { + 'files': ['include/X11/extensions/Xdamage.h', 'lib/libXdamage.so', 'lib/libXdamage.a'], + 'dirs': [], +} + +moduleclass = 'vis' diff --git a/l/libXdamage/libXdamage-1.1.4-foss-2016a.eb b/l/libXdamage/libXdamage-1.1.4-foss-2016a.eb new file mode 100644 index 00000000..19c75463 --- /dev/null +++ b/l/libXdamage/libXdamage-1.1.4-foss-2016a.eb @@ -0,0 +1,25 @@ +easyblock = 'ConfigureMake' + +name = 'libXdamage' +version = '1.1.4' + +homepage = "http://www.freedesktop.org/wiki/Software/xlibs" +description = """X Damage extension library""" + +toolchain = {'name': 'foss', 'version': '2016a'} + +sources = [SOURCE_TAR_GZ] +source_urls = [XORG_LIB_SOURCE] + +dependencies = [ + ('libX11', '1.6.3'), + ('libxcb', '1.11.1'), + ('libXau', '1.0.8'), +] + +sanity_check_paths = { + 'files': ['include/X11/extensions/Xdamage.h', 'lib/libXdamage.%s' % SHLIB_EXT, 'lib/libXdamage.a'], + 'dirs': [], +} + +moduleclass = 'vis' diff --git a/l/libXdamage/libXdamage-1.1.4-intel-2016a.eb b/l/libXdamage/libXdamage-1.1.4-intel-2016a.eb new file mode 100644 index 00000000..bc72561b --- /dev/null +++ b/l/libXdamage/libXdamage-1.1.4-intel-2016a.eb @@ -0,0 +1,25 @@ +easyblock = 'ConfigureMake' + +name = 'libXdamage' +version = '1.1.4' + +homepage = "http://www.freedesktop.org/wiki/Software/xlibs" +description = """X Damage extension library""" + +toolchain = {'name': 'intel', 'version': '2016a'} + +sources = [SOURCE_TAR_GZ] +source_urls = [XORG_LIB_SOURCE] + +dependencies = [ + ('libX11', '1.6.3'), + ('libxcb', '1.11.1'), + ('libXau', '1.0.8'), +] + +sanity_check_paths = { + 'files': ['include/X11/extensions/Xdamage.h', 'lib/libXdamage.%s' % SHLIB_EXT, 'lib/libXdamage.a'], + 'dirs': [], +} + +moduleclass = 'vis' diff --git a/l/libXdmcp/libXdmcp-1.1.2-foss-2016a.eb b/l/libXdmcp/libXdmcp-1.1.2-foss-2016a.eb new file mode 100644 index 00000000..09bc32a4 --- /dev/null +++ b/l/libXdmcp/libXdmcp-1.1.2-foss-2016a.eb @@ -0,0 +1,27 @@ +easyblock = 'ConfigureMake' + +name = 'libXdmcp' +version = '1.1.2' + +homepage = "http://www.freedesktop.org/wiki/Software/xlibs" +description = """The libXdmcp package contains a library implementing the X Display Manager Control Protocol. This is +useful for allowing clients to interact with the X Display Manager. +""" + +toolchain = {'name': 'foss', 'version': '2016a'} +toolchainopts = {'optarch': True} + +sources = [SOURCE_TAR_GZ] +source_urls = [XORG_LIB_SOURCE] + +builddependencies = [ + ('pkg-config', '0.29'), + ('xproto', '7.0.28'), +] + +sanity_check_paths = { + 'files': ['lib/%(name)s.a', 'lib/%%(name)s.%s' % SHLIB_EXT], + 'dirs': [], +} + +moduleclass = 'vis' diff --git a/l/libXdmcp/libXdmcp-1.1.2-intel-2016a.eb b/l/libXdmcp/libXdmcp-1.1.2-intel-2016a.eb new file mode 100644 index 00000000..6ec7ecf4 --- /dev/null +++ b/l/libXdmcp/libXdmcp-1.1.2-intel-2016a.eb @@ -0,0 +1,25 @@ +easyblock = 'ConfigureMake' + +name = 'libXdmcp' +version = '1.1.2' + +homepage = "http://www.freedesktop.org/wiki/Software/xlibs" +description = """The libXdmcp package contains a library implementing the X Display Manager Control Protocol. This is +useful for allowing clients to interact with the X Display Manager. +""" + +toolchain = {'name': 'intel', 'version': '2016a'} +toolchainopts = {'optarch': True} + +sources = [SOURCE_TAR_GZ] +source_urls = [XORG_LIB_SOURCE] + +builddependencies = [ + ('xproto', '7.0.28'), +] +sanity_check_paths = { + 'files': ['lib/%(name)s.a', 'lib/%%(name)s.%s' % SHLIB_EXT], + 'dirs': [], +} + +moduleclass = 'vis' diff --git a/l/libXext/libXext-1.3.3-foss-2015g-Python-2.7.9.eb b/l/libXext/libXext-1.3.3-foss-2015g-Python-2.7.9.eb new file mode 100644 index 00000000..3c6ea5d0 --- /dev/null +++ b/l/libXext/libXext-1.3.3-foss-2015g-Python-2.7.9.eb @@ -0,0 +1,35 @@ +easyblock = 'ConfigureMake' + +name = 'libXext' +version = '1.3.3' +versionsuffix = '-Python-2.7.9' + +homepage = "http://www.freedesktop.org/wiki/Software/xlibs" +description = """Common X Extensions library""" + +toolchain = {'name': 'foss', 'version': '2015g'} +toolchainopts = {'optarch': True} + +sources = [SOURCE_TAR_GZ] +source_urls = ['http://xorg.freedesktop.org/archive/individual/lib/'] + +builddependencies = [ + ('xproto', '7.0.26'), + ('xextproto', '7.3.0'), +] + +dependencies = [ + ('libX11', '1.6.2', versionsuffix), + ('libXdmcp', '1.1.2'), +] + +sanity_check_paths = { + 'files': ['include/X11/extensions/%s' % x for x in [ + 'dpms.h', 'extutil.h', 'MITMisc.h', 'multibuf.h', 'security.h', 'shape.h', 'sync.h', 'Xag.h', 'Xcup.h', + 'Xdbe.h', 'XEVI.h', 'Xext.h', 'Xge.h', 'XLbx.h', 'XShm.h', 'xtestext1.h', + ] + ], + 'dirs': [], +} + +moduleclass = 'vis' diff --git a/l/libXext/libXext-1.3.3-foss-2016a.eb b/l/libXext/libXext-1.3.3-foss-2016a.eb new file mode 100644 index 00000000..0a0acbe4 --- /dev/null +++ b/l/libXext/libXext-1.3.3-foss-2016a.eb @@ -0,0 +1,34 @@ +easyblock = 'ConfigureMake' + +name = 'libXext' +version = '1.3.3' + +homepage = "http://www.freedesktop.org/wiki/Software/xlibs" +description = """Common X Extensions library""" + +toolchain = {'name': 'foss', 'version': '2016a'} +toolchainopts = {'optarch': True} + +sources = [SOURCE_TAR_GZ] +source_urls = [XORG_LIB_SOURCE] + +builddependencies = [ + ('xproto', '7.0.28'), + ('xextproto', '7.3.0'), + ('libpthread-stubs', '0.3'), +] + +dependencies = [ + ('libX11', '1.6.3'), +] + +sanity_check_paths = { + 'files': ['include/X11/extensions/%s' % x for x in [ + 'dpms.h', 'extutil.h', 'MITMisc.h', 'multibuf.h', 'security.h', 'shape.h', 'sync.h', 'Xag.h', 'Xcup.h', + 'Xdbe.h', 'XEVI.h', 'Xext.h', 'Xge.h', 'XLbx.h', 'XShm.h', 'xtestext1.h', + ] + ], + 'dirs': [], +} + +moduleclass = 'vis' diff --git a/l/libXext/libXext-1.3.3-intel-2016a.eb b/l/libXext/libXext-1.3.3-intel-2016a.eb new file mode 100644 index 00000000..2d93058e --- /dev/null +++ b/l/libXext/libXext-1.3.3-intel-2016a.eb @@ -0,0 +1,34 @@ +easyblock = 'ConfigureMake' + +name = 'libXext' +version = '1.3.3' + +homepage = "http://www.freedesktop.org/wiki/Software/xlibs" +description = """Common X Extensions library""" + +toolchain = {'name': 'intel', 'version': '2016a'} +toolchainopts = {'optarch': True} + +sources = [SOURCE_TAR_GZ] +source_urls = [XORG_LIB_SOURCE] + +builddependencies = [ + ('xproto', '7.0.28'), + ('xextproto', '7.3.0'), + ('libpthread-stubs', '0.3'), +] + +dependencies = [ + ('libX11', '1.6.3'), +] + +sanity_check_paths = { + 'files': ['include/X11/extensions/%s' % x for x in [ + 'dpms.h', 'extutil.h', 'MITMisc.h', 'multibuf.h', 'security.h', 'shape.h', 'sync.h', 'Xag.h', 'Xcup.h', + 'Xdbe.h', 'XEVI.h', 'Xext.h', 'Xge.h', 'XLbx.h', 'XShm.h', 'xtestext1.h', + ] + ], + 'dirs': [], +} + +moduleclass = 'vis' diff --git a/l/libXfixes/libXfixes-5.0.1-foss-2015g.eb b/l/libXfixes/libXfixes-5.0.1-foss-2015g.eb new file mode 100644 index 00000000..8f0f899c --- /dev/null +++ b/l/libXfixes/libXfixes-5.0.1-foss-2015g.eb @@ -0,0 +1,24 @@ +easyblock = 'ConfigureMake' + +name = 'libXfixes' +version = '5.0.1' + +homepage = "http://www.freedesktop.org/wiki/Software/xlibs" +description = """X Fixes extension library""" + +toolchain = {'name': 'foss', 'version': '2015g'} + +sources = [SOURCE_TAR_GZ] +source_urls = [XORG_LIB_SOURCE] + +dependencies = [ + ('fixesproto', '5.0'), + ('xextproto', '7.3.0'), +] + +sanity_check_paths = { + 'files' : ['include/X11/extensions/Xfixes.h', 'lib/libXfixes.a', 'lib/libXfixes.%s' % SHLIB_EXT], + 'dirs' : [], +} + +moduleclass = 'vis' diff --git a/l/libXfixes/libXfixes-5.0.1-foss-2016a.eb b/l/libXfixes/libXfixes-5.0.1-foss-2016a.eb new file mode 100644 index 00000000..aa11951f --- /dev/null +++ b/l/libXfixes/libXfixes-5.0.1-foss-2016a.eb @@ -0,0 +1,24 @@ +easyblock = 'ConfigureMake' + +name = 'libXfixes' +version = '5.0.1' + +homepage = "http://www.freedesktop.org/wiki/Software/xlibs" +description = """X Fixes extension library""" + +toolchain = {'name': 'foss', 'version': '2016a'} + +sources = [SOURCE_TAR_GZ] +source_urls = [XORG_LIB_SOURCE] + +builddependencies = [ + ('fixesproto', '5.0'), + ('xextproto', '7.3.0'), +] + +sanity_check_paths = { + 'files': ['include/X11/extensions/Xfixes.h', 'lib/libXfixes.a', 'lib/libXfixes.%s' % SHLIB_EXT], + 'dirs': [], +} + +moduleclass = 'vis' diff --git a/l/libXfixes/libXfixes-5.0.1-intel-2016a.eb b/l/libXfixes/libXfixes-5.0.1-intel-2016a.eb new file mode 100644 index 00000000..3dd084da --- /dev/null +++ b/l/libXfixes/libXfixes-5.0.1-intel-2016a.eb @@ -0,0 +1,24 @@ +easyblock = 'ConfigureMake' + +name = 'libXfixes' +version = '5.0.1' + +homepage = "http://www.freedesktop.org/wiki/Software/xlibs" +description = """X Fixes extension library""" + +toolchain = {'name': 'intel', 'version': '2016a'} + +sources = [SOURCE_TAR_GZ] +source_urls = [XORG_LIB_SOURCE] + +builddependencies = [ + ('fixesproto', '5.0'), + ('xextproto', '7.3.0'), +] + +sanity_check_paths = { + 'files': ['include/X11/extensions/Xfixes.h', 'lib/libXfixes.a', 'lib/libXfixes.%s' % SHLIB_EXT], + 'dirs': [], +} + +moduleclass = 'vis' diff --git a/l/libXfont/libXfont-1.5.1-foss-2015g-Python-2.7.9.eb b/l/libXfont/libXfont-1.5.1-foss-2015g-Python-2.7.9.eb new file mode 100644 index 00000000..914f7dfe --- /dev/null +++ b/l/libXfont/libXfont-1.5.1-foss-2015g-Python-2.7.9.eb @@ -0,0 +1,32 @@ +easyblock = 'ConfigureMake' + +name = 'libXfont' +version = '1.5.1' +versionsuffix = '-Python-2.7.9' + +homepage = "http://www.freedesktop.org/wiki/Software/xlibs" +description = """X font libary""" + +toolchain = {'name': 'foss', 'version': '2015g'} + +sources = [SOURCE_TAR_GZ] +source_urls = [XORG_LIB_SOURCE] + +builddependencies = [ + ('fontsproto', '2.1.3'), + ('xproto', '7.0.26'), + ('xtrans', '1.3.5'), + ('xorg-macros', '1.17'), + ('libfontenc', '1.1.3'), +] +dependencies = [ + ('libX11', '1.6.2', versionsuffix), + ('freetype', '2.5.3'), +] + +sanity_check_paths = { + 'files': ['lib/libXfont.so', 'lib/libXfont.a'], + 'dirs': ['include/X11/fonts'], +} + +moduleclass = 'vis' diff --git a/l/libXft/libXft-2.3.2-foss-2016a.eb b/l/libXft/libXft-2.3.2-foss-2016a.eb new file mode 100644 index 00000000..1a968a5a --- /dev/null +++ b/l/libXft/libXft-2.3.2-foss-2016a.eb @@ -0,0 +1,31 @@ +easyblock = 'ConfigureMake' + +name = 'libXft' +version = '2.3.2' + +homepage = "http://www.freedesktop.org/wiki/Software/xlibs" +description = """X11 client-side library""" + +toolchain = {'name': 'foss', 'version': '2016a'} + +sources = [SOURCE_TAR_GZ] +source_urls = [XORG_LIB_SOURCE] + +builddependencies = [ + ('kbproto', '1.0.7'), + ('renderproto', '0.11'), +] + +dependencies = [ + ('libX11', '1.6.3'), + ('libXrender', '0.9.9'), + ('freetype', '2.6.2'), + ('fontconfig', '2.11.94'), +] + +sanity_check_paths = { + 'files': ['lib/libXft.a'], + 'dirs': [], +} + +moduleclass = 'vis' diff --git a/l/libXft/libXft-2.3.2-intel-2016a-fontconfig-2.11.95.eb b/l/libXft/libXft-2.3.2-intel-2016a-fontconfig-2.11.95.eb new file mode 100644 index 00000000..3c4a3783 --- /dev/null +++ b/l/libXft/libXft-2.3.2-intel-2016a-fontconfig-2.11.95.eb @@ -0,0 +1,32 @@ +easyblock = 'ConfigureMake' + +name = 'libXft' +version = '2.3.2' +versionsuffix = '-fontconfig-2.11.95' + +homepage = "http://www.freedesktop.org/wiki/Software/xlibs" +description = """X11 client-side library""" + +toolchain = {'name': 'intel', 'version': '2016a'} + +sources = [SOURCE_TAR_GZ] +source_urls = [XORG_LIB_SOURCE] + +builddependencies = [ + ('kbproto', '1.0.7'), + ('renderproto', '0.11'), +] + +dependencies = [ + ('libX11', '1.6.3'), + ('libXrender', '0.9.9'), + ('freetype', '2.6.3'), + ('fontconfig', '2.11.95'), +] + +sanity_check_paths = { + 'files': ['lib/libXft.a'], + 'dirs': [], +} + +moduleclass = 'vis' diff --git a/l/libXft/libXft-2.3.2-intel-2016a.eb b/l/libXft/libXft-2.3.2-intel-2016a.eb new file mode 100644 index 00000000..17ddfd09 --- /dev/null +++ b/l/libXft/libXft-2.3.2-intel-2016a.eb @@ -0,0 +1,31 @@ +easyblock = 'ConfigureMake' + +name = 'libXft' +version = '2.3.2' + +homepage = "http://www.freedesktop.org/wiki/Software/xlibs" +description = """X11 client-side library""" + +toolchain = {'name': 'intel', 'version': '2016a'} + +sources = [SOURCE_TAR_GZ] +source_urls = [XORG_LIB_SOURCE] + +builddependencies = [ + ('kbproto', '1.0.7'), + ('renderproto', '0.11'), +] + +dependencies = [ + ('libX11', '1.6.3'), + ('libXrender', '0.9.9'), + ('freetype', '2.6.2'), + ('fontconfig', '2.11.94'), +] + +sanity_check_paths = { + 'files': ['lib/libXft.a'], + 'dirs': [], +} + +moduleclass = 'vis' diff --git a/l/libXft/libXft-2.3.2.eb b/l/libXft/libXft-2.3.2.eb new file mode 100644 index 00000000..2d371a4c --- /dev/null +++ b/l/libXft/libXft-2.3.2.eb @@ -0,0 +1,31 @@ +easyblock = 'ConfigureMake' + +name = 'libXft' +version = '2.3.2' + +homepage = "http://www.freedesktop.org/wiki/Software/xlibs" +description = """X11 client-side library""" + +toolchain = {'name': 'dummy', 'version': ''} + +sources = [SOURCE_TAR_GZ] +source_urls = [XORG_LIB_SOURCE] + +builddependencies = [ + ('kbproto', '1.0.6'), + ('renderproto', '0.11'), +] + +dependencies = [ + ('libX11', '1.6.2', '-Python-2.7.9'), + ('libXrender', '0.9.8'), + ('freetype', '2.5.3'), + ('fontconfig', '2.11.1'), +] + +sanity_check_paths = { + 'files': ['lib/libXft.a'], + 'dirs': [], +} + +moduleclass = 'vis' diff --git a/l/libXi/libXi-1.7.6-foss-2016a.eb b/l/libXi/libXi-1.7.6-foss-2016a.eb new file mode 100644 index 00000000..c94df236 --- /dev/null +++ b/l/libXi/libXi-1.7.6-foss-2016a.eb @@ -0,0 +1,31 @@ +easyblock = 'ConfigureMake' + +name = 'libXi' +version = '1.7.6' + +homepage = "http://www.freedesktop.org/wiki/Software/xlibs" +description = """LibXi provides an X Window System client interface to the XINPUT extension to the X protocol.""" + +toolchain = {'name': 'foss', 'version': '2016a'} + +sources = [SOURCE_TAR_GZ] +source_urls = [XORG_LIB_SOURCE] + +builddependencies = [ + ('xproto', '7.0.28'), + ('xextproto', '7.3.0'), + ('inputproto', '2.3.1'), + ('xorg-macros', '1.19.0'), +] + +dependencies = [ + ('libXext', '1.3.3'), + ('libXfixes', '5.0.1'), +] + +sanity_check_paths = { + 'files': ['include/X11/extensions/XInput.h', 'include/X11/extensions/XInput2.h', 'lib/libXi.%s' % SHLIB_EXT, 'lib/libXi.a'], + 'dirs': [], +} + +moduleclass = 'vis' diff --git a/l/libXi/libXi-1.7.6-intel-2016a.eb b/l/libXi/libXi-1.7.6-intel-2016a.eb new file mode 100644 index 00000000..5e9d4cb8 --- /dev/null +++ b/l/libXi/libXi-1.7.6-intel-2016a.eb @@ -0,0 +1,31 @@ +easyblock = 'ConfigureMake' + +name = 'libXi' +version = '1.7.6' + +homepage = "http://www.freedesktop.org/wiki/Software/xlibs" +description = """LibXi provides an X Window System client interface to the XINPUT extension to the X protocol.""" + +toolchain = {'name': 'intel', 'version': '2016a'} + +sources = [SOURCE_TAR_GZ] +source_urls = [XORG_LIB_SOURCE] + +builddependencies = [ + ('xproto', '7.0.28'), + ('xextproto', '7.3.0'), + ('inputproto', '2.3.1'), + ('xorg-macros', '1.19.0'), +] + +dependencies = [ + ('libXext', '1.3.3'), + ('libXfixes', '5.0.1'), +] + +sanity_check_paths = { + 'files': ['include/X11/extensions/XInput.h', 'include/X11/extensions/XInput2.h', 'lib/libXi.%s' % SHLIB_EXT, 'lib/libXi.a'], + 'dirs': [], +} + +moduleclass = 'vis' diff --git a/l/libXinerama/libXinerama-1.1.3-foss-2016a.eb b/l/libXinerama/libXinerama-1.1.3-foss-2016a.eb new file mode 100644 index 00000000..e0a2e3d2 --- /dev/null +++ b/l/libXinerama/libXinerama-1.1.3-foss-2016a.eb @@ -0,0 +1,31 @@ +easyblock = 'ConfigureMake' + +name = 'libXinerama' +version = '1.1.3' + +homepage = "http://www.freedesktop.org/wiki/Software/xlibs" +description = """Xinerama multiple monitor library""" + +toolchain = {'name': 'foss', 'version': '2016a'} + +sources = [SOURCE_TAR_GZ] +source_urls = [XORG_LIB_SOURCE] + +builddependencies = [ + ('kbproto', '1.0.7'), + ('xineramaproto', '1.2.1'), + ('xextproto', '7.3.0'), + ('xproto', '7.0.28'), +] + +dependencies = [ + ('libX11', '1.6.3'), + ('libXext', '1.3.3'), +] + +sanity_check_paths = { + 'files': ['lib/libXinerama.a'], + 'dirs': [], +} + +moduleclass = 'vis' diff --git a/l/libXinerama/libXinerama-1.1.3-intel-2016a.eb b/l/libXinerama/libXinerama-1.1.3-intel-2016a.eb new file mode 100644 index 00000000..59633745 --- /dev/null +++ b/l/libXinerama/libXinerama-1.1.3-intel-2016a.eb @@ -0,0 +1,31 @@ +easyblock = 'ConfigureMake' + +name = 'libXinerama' +version = '1.1.3' + +homepage = "http://www.freedesktop.org/wiki/Software/xlibs" +description = """Xinerama multiple monitor library""" + +toolchain = {'name': 'intel', 'version': '2016a'} + +sources = [SOURCE_TAR_GZ] +source_urls = [XORG_LIB_SOURCE] + +builddependencies = [ + ('kbproto', '1.0.7'), + ('xineramaproto', '1.2.1'), + ('xextproto', '7.3.0'), + ('xproto', '7.0.28'), +] + +dependencies = [ + ('libX11', '1.6.3'), + ('libXext', '1.3.3'), +] + +sanity_check_paths = { + 'files': ['lib/libXinerama.a'], + 'dirs': [], +} + +moduleclass = 'vis' diff --git a/l/libXrandr/libXrandr-1.5.0-foss-2016a.eb b/l/libXrandr/libXrandr-1.5.0-foss-2016a.eb new file mode 100644 index 00000000..b6614e79 --- /dev/null +++ b/l/libXrandr/libXrandr-1.5.0-foss-2016a.eb @@ -0,0 +1,31 @@ +easyblock = 'ConfigureMake' + +name = 'libXrandr' +version = '1.5.0' + +homepage = "http://www.freedesktop.org/wiki/Software/xlibs" +description = """X Resize, Rotate and Reflection extension library""" + +toolchain = {'name': 'foss', 'version': '2016a'} + +sources = [SOURCE_TAR_GZ] +source_urls = [XORG_LIB_SOURCE] + +builddependencies = [ + ('randrproto', '1.5.0'), + ('renderproto', '0.11'), + ('xextproto', '7.3.0'), +] + +dependencies = [ + ('libX11', '1.6.3'), + ('libXext', '1.3.3'), + ('libXrender', '0.9.9'), +] + +sanity_check_paths = { + 'files': ['lib/libXrandr.%s' % SHLIB_EXT, 'lib/libXrandr.a'], + 'dirs': [], +} + +moduleclass = 'vis' diff --git a/l/libXrandr/libXrandr-1.5.0-intel-2016a.eb b/l/libXrandr/libXrandr-1.5.0-intel-2016a.eb new file mode 100644 index 00000000..d7c99042 --- /dev/null +++ b/l/libXrandr/libXrandr-1.5.0-intel-2016a.eb @@ -0,0 +1,31 @@ +easyblock = 'ConfigureMake' + +name = 'libXrandr' +version = '1.5.0' + +homepage = "http://www.freedesktop.org/wiki/Software/xlibs" +description = """X Resize, Rotate and Reflection extension library""" + +toolchain = {'name': 'intel', 'version': '2016a'} + +sources = [SOURCE_TAR_GZ] +source_urls = [XORG_LIB_SOURCE] + +builddependencies = [ + ('randrproto', '1.5.0'), + ('renderproto', '0.11'), + ('xextproto', '7.3.0'), +] + +dependencies = [ + ('libX11', '1.6.3'), + ('libXext', '1.3.3'), + ('libXrender', '0.9.9'), +] + +sanity_check_paths = { + 'files': ['lib/libXrandr.%s' % SHLIB_EXT, 'lib/libXrandr.a'], + 'dirs': [], +} + +moduleclass = 'vis' diff --git a/l/libXrender/libXrender-0.9.9-foss-2016a.eb b/l/libXrender/libXrender-0.9.9-foss-2016a.eb new file mode 100644 index 00000000..1e633407 --- /dev/null +++ b/l/libXrender/libXrender-0.9.9-foss-2016a.eb @@ -0,0 +1,31 @@ +easyblock = 'ConfigureMake' + +name = 'libXrender' +version = '0.9.9' + +homepage = "http://www.freedesktop.org/wiki/Software/xlibs" +description = """X11 client-side library""" + +toolchain = {'name': 'foss', 'version': '2016a'} + +sources = [SOURCE_TAR_GZ] +source_urls = [XORG_LIB_SOURCE] + +builddependencies = [ + ('kbproto', '1.0.7'), + ('renderproto', '0.11'), + ('libpthread-stubs', '0.3'), + ('xorg-macros', '1.19.0'), + ('xproto', '7.0.28') +] + +dependencies = [ + ('libX11', '1.6.3'), +] + +sanity_check_paths = { + 'files': ['lib/libXrender.a'], + 'dirs': [], +} + +moduleclass = 'vis' diff --git a/l/libXrender/libXrender-0.9.9-intel-2016a.eb b/l/libXrender/libXrender-0.9.9-intel-2016a.eb new file mode 100644 index 00000000..fefc99f4 --- /dev/null +++ b/l/libXrender/libXrender-0.9.9-intel-2016a.eb @@ -0,0 +1,28 @@ +easyblock = 'ConfigureMake' + +name = 'libXrender' +version = '0.9.9' + +homepage = "http://www.freedesktop.org/wiki/Software/xlibs" +description = """X11 client-side library""" + +toolchain = {'name': 'intel', 'version': '2016a'} + +sources = [SOURCE_TAR_GZ] +source_urls = [XORG_LIB_SOURCE] + +builddependencies = [ + ('kbproto', '1.0.7'), + ('renderproto', '0.11'), +] + +dependencies = [ + ('libX11', '1.6.3'), +] + +sanity_check_paths = { + 'files': ['lib/libXrender.a'], + 'dirs': [], +} + +moduleclass = 'vis' diff --git a/l/libXt/libXt-1.1.4-intel-2015b-libX11-1.6.2.eb b/l/libXt/libXt-1.1.4-intel-2015b-libX11-1.6.2.eb new file mode 100644 index 00000000..31280480 --- /dev/null +++ b/l/libXt/libXt-1.1.4-intel-2015b-libX11-1.6.2.eb @@ -0,0 +1,41 @@ +easyblock = 'ConfigureMake' + +name = 'libXt' +version = '1.1.4' + +homepage = "http://www.freedesktop.org/wiki/Software/xlibs" +description = """libXt provides the X Toolkit Intrinsics, an abstract widget library upon which other toolkits are + based. Xt is the basis for many toolkits, including the Athena widgets (Xaw), and LessTif (a Motif implementation).""" + +toolchain = {'name': 'intel', 'version': '2015b'} +toolchainopts = {'optarch': True} + +sources = [SOURCE_TAR_GZ] +source_urls = [XORG_LIB_SOURCE] + +libx11ver = '1.6.2' +versionsuffix = '-libX11-%s' % libx11ver +dependencies = [ + ('libSM', '1.2.2'), + ('libICE', '1.0.9'), + ('libX11', libx11ver, '-Python-2.7.9'), +] + +builddependencies = [ + ('xproto', '7.0.26'), + ('kbproto', '1.0.6'), +] + +sanity_check_paths = { + 'files' : ['include/X11/%s' % x for x in [ + 'CallbackI.h', 'CompositeP.h', 'Constraint.h', 'Core.h', 'CreateI.h', 'HookObjI.h', 'Intrinsic.h', + 'IntrinsicP.h', 'ObjectP.h', 'RectObj.h', 'ResConfigP.h', 'SelectionI.h', 'ShellI.h', 'StringDefs.h', + 'TranslateI.h', 'Vendor.h', 'Xtos.h', 'Composite.h', 'ConstrainP.h', 'ConvertI.h', 'CoreP.h', 'EventI.h', + 'InitialI.h', 'IntrinsicI.h', 'Object.h', 'PassivGraI.h', 'RectObjP.h', 'ResourceI.h', 'Shell.h', 'ShellP.h', + 'ThreadsI.h', 'VarargsI.h', 'VendorP.h', + ] + ], + 'dirs' : [], +} + +moduleclass = 'vis' diff --git a/l/libXt/libXt-1.1.5-foss-2015g.eb b/l/libXt/libXt-1.1.5-foss-2015g.eb new file mode 100644 index 00000000..83e132ad --- /dev/null +++ b/l/libXt/libXt-1.1.5-foss-2015g.eb @@ -0,0 +1,39 @@ +easyblock = 'ConfigureMake' + +name = 'libXt' +version = '1.1.5' + +homepage = "http://www.freedesktop.org/wiki/Software/xlibs" +description = """libXt provides the X Toolkit Intrinsics, an abstract widget library upon which other toolkits are + based. Xt is the basis for many toolkits, including the Athena widgets (Xaw), and LessTif (a Motif implementation).""" + +toolchain = {'name': 'foss', 'version': '2015g'} +toolchainopts = {'optarch': True} + +sources = [SOURCE_TAR_GZ] +source_urls = [XORG_LIB_SOURCE] + +dependencies = [ + ('libSM', '1.2.2'), + ('libICE', '1.0.9'), + ('libX11', '1.6.2', '-Python-2.7.9'), +] + +builddependencies = [ + ('xproto', '7.0.26'), + ('kbproto', '1.0.6'), +] + +sanity_check_paths = { + 'files' : ['include/X11/%s' % x for x in [ + 'CallbackI.h', 'CompositeP.h', 'Constraint.h', 'Core.h', 'CreateI.h', 'HookObjI.h', 'Intrinsic.h', + 'IntrinsicP.h', 'ObjectP.h', 'RectObj.h', 'ResConfigP.h', 'SelectionI.h', 'ShellI.h', 'StringDefs.h', + 'TranslateI.h', 'Vendor.h', 'Xtos.h', 'Composite.h', 'ConstrainP.h', 'ConvertI.h', 'CoreP.h', 'EventI.h', + 'InitialI.h', 'IntrinsicI.h', 'Object.h', 'PassivGraI.h', 'RectObjP.h', 'ResourceI.h', 'Shell.h', 'ShellP.h', + 'ThreadsI.h', 'VarargsI.h', 'VendorP.h', + ] + ], + 'dirs' : [], +} + +moduleclass = 'vis' diff --git a/l/libXt/libXt-1.1.5-foss-2016a.eb b/l/libXt/libXt-1.1.5-foss-2016a.eb new file mode 100644 index 00000000..e37e36b1 --- /dev/null +++ b/l/libXt/libXt-1.1.5-foss-2016a.eb @@ -0,0 +1,39 @@ +easyblock = 'ConfigureMake' + +name = 'libXt' +version = '1.1.5' + +homepage = "http://www.freedesktop.org/wiki/Software/xlibs" +description = """libXt provides the X Toolkit Intrinsics, an abstract widget library upon which other toolkits are + based. Xt is the basis for many toolkits, including the Athena widgets (Xaw), and LessTif (a Motif implementation).""" + +toolchain = {'name': 'foss', 'version': '2016a'} +toolchainopts = {'optarch': True} + +sources = [SOURCE_TAR_GZ] +source_urls = [XORG_LIB_SOURCE] + +builddependencies = [ + ('xproto', '7.0.28'), + ('kbproto', '1.0.7'), +] + +dependencies = [ + ('libSM', '1.2.2'), + ('libICE', '1.0.9'), + ('libX11', '1.6.3'), +] + +sanity_check_paths = { + 'files': ['include/X11/%s' % x for x in [ + 'CallbackI.h', 'CompositeP.h', 'Constraint.h', 'Core.h', 'CreateI.h', 'HookObjI.h', 'Intrinsic.h', + 'IntrinsicP.h', 'ObjectP.h', 'RectObj.h', 'ResConfigP.h', 'SelectionI.h', 'ShellI.h', 'StringDefs.h', + 'TranslateI.h', 'Vendor.h', 'Xtos.h', 'Composite.h', 'ConstrainP.h', 'ConvertI.h', 'CoreP.h', 'EventI.h', + 'InitialI.h', 'IntrinsicI.h', 'Object.h', 'PassivGraI.h', 'RectObjP.h', 'ResourceI.h', 'Shell.h', 'ShellP.h', + 'ThreadsI.h', 'VarargsI.h', 'VendorP.h', + ] + ], + 'dirs': [], +} + +moduleclass = 'vis' diff --git a/l/libXt/libXt-1.1.5-intel-2016a.eb b/l/libXt/libXt-1.1.5-intel-2016a.eb new file mode 100644 index 00000000..66391ee4 --- /dev/null +++ b/l/libXt/libXt-1.1.5-intel-2016a.eb @@ -0,0 +1,39 @@ +easyblock = 'ConfigureMake' + +name = 'libXt' +version = '1.1.5' + +homepage = "http://www.freedesktop.org/wiki/Software/xlibs" +description = """libXt provides the X Toolkit Intrinsics, an abstract widget library upon which other toolkits are + based. Xt is the basis for many toolkits, including the Athena widgets (Xaw), and LessTif (a Motif implementation).""" + +toolchain = {'name': 'intel', 'version': '2016a'} +toolchainopts = {'optarch': True} + +sources = [SOURCE_TAR_GZ] +source_urls = [XORG_LIB_SOURCE] + +builddependencies = [ + ('xproto', '7.0.28'), + ('kbproto', '1.0.7'), +] + +dependencies = [ + ('libSM', '1.2.2'), + ('libICE', '1.0.9'), + ('libX11', '1.6.3'), +] + +sanity_check_paths = { + 'files': ['include/X11/%s' % x for x in [ + 'CallbackI.h', 'CompositeP.h', 'Constraint.h', 'Core.h', 'CreateI.h', 'HookObjI.h', 'Intrinsic.h', + 'IntrinsicP.h', 'ObjectP.h', 'RectObj.h', 'ResConfigP.h', 'SelectionI.h', 'ShellI.h', 'StringDefs.h', + 'TranslateI.h', 'Vendor.h', 'Xtos.h', 'Composite.h', 'ConstrainP.h', 'ConvertI.h', 'CoreP.h', 'EventI.h', + 'InitialI.h', 'IntrinsicI.h', 'Object.h', 'PassivGraI.h', 'RectObjP.h', 'ResourceI.h', 'Shell.h', 'ShellP.h', + 'ThreadsI.h', 'VarargsI.h', 'VendorP.h', + ] + ], + 'dirs': [], +} + +moduleclass = 'vis' diff --git a/l/libctl/libctl-3.2.1-goalf-1.1.0-no-OFED.eb b/l/libctl/libctl-3.2.1-goalf-1.1.0-no-OFED.eb new file mode 100644 index 00000000..c9f79a72 --- /dev/null +++ b/l/libctl/libctl-3.2.1-goalf-1.1.0-no-OFED.eb @@ -0,0 +1,20 @@ +easyblock = 'ConfigureMake' + +name = 'libctl' +version = '3.2.1' + +homepage = 'http://ab-initio.mit.edu/libctl' +description = """libctl is a free Guile-based library implementing flexible control files for scientific simulations.""" + +toolchain = {'name': 'goalf', 'version': '1.1.0-no-OFED'} +toolchainopts = {'optarch': True} + +source_urls = ['http://ab-initio.mit.edu/libctl/'] +sources = [SOURCELOWER_TAR_GZ] + +dependencies = [('guile', '1.8.8')] + +# fix for guile-config being broken because shebang line contains full path to bin/guile +configopts = 'GUILE_CONFIG="$EBROOTGUILE/bin/guile -e main -s $EBROOTGUILE/bin/guile-config"' + +moduleclass = 'chem' diff --git a/l/libctl/libctl-3.2.1-goolf-1.4.10.eb b/l/libctl/libctl-3.2.1-goolf-1.4.10.eb new file mode 100644 index 00000000..e765208e --- /dev/null +++ b/l/libctl/libctl-3.2.1-goolf-1.4.10.eb @@ -0,0 +1,19 @@ +easyblock = 'ConfigureMake' + +name = 'libctl' +version = '3.2.1' + +homepage = 'http://ab-initio.mit.edu/libctl' +description = """libctl is a free Guile-based library implementing flexible control files for scientific simulations.""" +toolchain = {'name': 'goolf', 'version': '1.4.10'} +toolchainopts = {'optarch': True} + +source_urls = ['http://ab-initio.mit.edu/libctl/'] +sources = [SOURCELOWER_TAR_GZ] + +dependencies = [('guile', '1.8.8')] + +# fix for guile-config being broken because shebang line contains full path to bin/guile +configopts = 'GUILE_CONFIG="$EBROOTGUILE/bin/guile -e main -s $EBROOTGUILE/bin/guile-config"' + +moduleclass = 'chem' diff --git a/l/libctl/libctl-3.2.1-ictce-4.0.6.eb b/l/libctl/libctl-3.2.1-ictce-4.0.6.eb new file mode 100644 index 00000000..cd7968e3 --- /dev/null +++ b/l/libctl/libctl-3.2.1-ictce-4.0.6.eb @@ -0,0 +1,20 @@ +easyblock = 'ConfigureMake' + +name = 'libctl' +version = '3.2.1' + +homepage = 'http://ab-initio.mit.edu/libctl' +description = """libctl is a free Guile-based library implementing flexible control files for scientific simulations.""" + +toolchain = {'name': 'ictce', 'version': '4.0.6'} +toolchainopts = {'optarch': True} + +source_urls = ['http://ab-initio.mit.edu/libctl/'] +sources = [SOURCELOWER_TAR_GZ] + +dependencies = [('guile', '1.8.8')] + +# fix for guile-config being broken because shebang line contains full path to bin/guile +configopts = 'GUILE_CONFIG="$EBROOTGUILE/bin/guile -e main -s $EBROOTGUILE/bin/guile-config"' + +moduleclass = 'chem' diff --git a/l/libctl/libctl-3.2.1-ictce-5.3.0.eb b/l/libctl/libctl-3.2.1-ictce-5.3.0.eb new file mode 100644 index 00000000..d73a5129 --- /dev/null +++ b/l/libctl/libctl-3.2.1-ictce-5.3.0.eb @@ -0,0 +1,20 @@ +easyblock = 'ConfigureMake' + +name = 'libctl' +version = '3.2.1' + +homepage = 'http://ab-initio.mit.edu/libctl' +description = """libctl is a free Guile-based library implementing flexible control files for scientific simulations.""" + +toolchain = {'name': 'ictce', 'version': '5.3.0'} +toolchainopts = {'optarch': True} + +source_urls = ['http://ab-initio.mit.edu/libctl/'] +sources = [SOURCELOWER_TAR_GZ] + +dependencies = [('guile', '1.8.8')] + +# fix for guile-config being broken because shebang line contains full path to bin/guile +configopts = 'GUILE_CONFIG="$EBROOTGUILE/bin/guile -e main -s $EBROOTGUILE/bin/guile-config"' + +moduleclass = 'chem' diff --git a/l/libctl/libctl-3.2.2-intel-2015a.eb b/l/libctl/libctl-3.2.2-intel-2015a.eb new file mode 100644 index 00000000..0de2f0bd --- /dev/null +++ b/l/libctl/libctl-3.2.2-intel-2015a.eb @@ -0,0 +1,20 @@ +easyblock = 'ConfigureMake' + +name = 'libctl' +version = '3.2.2' + +homepage = 'http://ab-initio.mit.edu/libctl' +description = """libctl is a free Guile-based library implementing flexible control files for scientific simulations.""" + +toolchain = {'name': 'intel', 'version': '2015a'} +toolchainopts = {'optarch': True} + +source_urls = ['http://ab-initio.mit.edu/libctl/'] +sources = [SOURCELOWER_TAR_GZ] + +dependencies = [('guile', '1.8.8')] + +# fix for guile-config being broken because shebang line contains full path to bin/guile +configopts = 'GUILE_CONFIG="$EBROOTGUILE/bin/guile -e main -s $EBROOTGUILE/bin/guile-config"' + +moduleclass = 'chem' diff --git a/l/libctl/libctl-3.2.2-intel-2015b.eb b/l/libctl/libctl-3.2.2-intel-2015b.eb new file mode 100644 index 00000000..fe27f751 --- /dev/null +++ b/l/libctl/libctl-3.2.2-intel-2015b.eb @@ -0,0 +1,21 @@ +# Built with EasyBuild version 2.1.1 on 2015-08-24_10-15-06 +easyblock = 'ConfigureMake' + +name = 'libctl' +version = '3.2.2' + +homepage = 'http://ab-initio.mit.edu/libctl' +description = """libctl is a free Guile-based library implementing flexible control files for scientific simulations.""" + +toolchain = {'name': 'intel', 'version': '2015b'} +toolchainopts = {'optarch': True} + +source_urls = ['http://ab-initio.mit.edu/libctl/'] +sources = [SOURCELOWER_TAR_GZ] + +dependencies = [('guile', '1.8.8')] + +# fix for guile-config being broken because shebang line contains full path to bin/guile +configopts = 'GUILE_CONFIG="$EBROOTGUILE/bin/guile -e main -s $EBROOTGUILE/bin/guile-config"' + +moduleclass = 'chem' diff --git a/l/libdrm/libdrm-2.4.70-foss-2016b.eb b/l/libdrm/libdrm-2.4.70-foss-2016b.eb new file mode 100644 index 00000000..bd2875fe --- /dev/null +++ b/l/libdrm/libdrm-2.4.70-foss-2016b.eb @@ -0,0 +1,26 @@ +easyblock = 'ConfigureMake' + +name = 'libdrm' +version = '2.4.70' + +homepage = 'http://dri.freedesktop.org' +description = """Direct Rendering Manager runtime library.""" + +source_urls = ['http://dri.freedesktop.org/libdrm/'] +sources = [SOURCELOWER_TAR_GZ] + +toolchain = {'name': 'foss', 'version': '2016b'} + +dependencies = [ + ('X11', '20160819'), + ('libpthread-stubs', '0.3'), + ('libpciaccess', '0.13.4'), +] + +sanity_check_paths = { + 'files': ['include/xf86drm.h', 'include/xf86drmMode.h', 'lib/libdrm_intel.%s' % SHLIB_EXT, + 'lib/libdrm_radeon.%s' % SHLIB_EXT, 'lib/libdrm.%s' % SHLIB_EXT, 'lib/libkms.%s' % SHLIB_EXT], + 'dirs': ['include/libdrm', 'include/libkms', 'lib/pkgconfig'], +} + +moduleclass = 'lib' diff --git a/l/libdrm/libdrm-2.4.70-intel-2016b.eb b/l/libdrm/libdrm-2.4.70-intel-2016b.eb new file mode 100644 index 00000000..1f6c3d5a --- /dev/null +++ b/l/libdrm/libdrm-2.4.70-intel-2016b.eb @@ -0,0 +1,26 @@ +easyblock = 'ConfigureMake' + +name = 'libdrm' +version = '2.4.70' + +homepage = 'http://dri.freedesktop.org' +description = """Direct Rendering Manager runtime library.""" + +source_urls = ['http://dri.freedesktop.org/libdrm/'] +sources = [SOURCELOWER_TAR_GZ] + +toolchain = {'name': 'intel', 'version': '2016b'} + +dependencies = [ + ('X11', '20160819'), + ('libpthread-stubs', '0.3'), + ('libpciaccess', '0.13.4'), +] + +sanity_check_paths = { + 'files': ['include/xf86drm.h', 'include/xf86drmMode.h', 'lib/libdrm_intel.%s' % SHLIB_EXT, + 'lib/libdrm_radeon.%s' % SHLIB_EXT, 'lib/libdrm.%s' % SHLIB_EXT, 'lib/libkms.%s' % SHLIB_EXT], + 'dirs': ['include/libdrm', 'include/libkms', 'lib/pkgconfig'], +} + +moduleclass = 'lib' diff --git a/l/libelf/libelf-0.8.13-GCC-4.9.2.eb b/l/libelf/libelf-0.8.13-GCC-4.9.2.eb new file mode 100644 index 00000000..9babe187 --- /dev/null +++ b/l/libelf/libelf-0.8.13-GCC-4.9.2.eb @@ -0,0 +1,19 @@ +easyblock = 'ConfigureMake' + +name = 'libelf' +version = '0.8.13' + +homepage = 'http://www.mr511.de/software/english.html' +description = """libelf is a free ELF object file access library""" + +toolchain = {'name': 'GCC', 'version': '4.9.2'} + +sources = [SOURCE_TAR_GZ] +source_urls = ['http://www.mr511.de/software/'] + +sanity_check_paths = { + 'files': ['lib/libelf.a', 'lib/libelf.%s' % SHLIB_EXT, 'lib/libelf.so.0', 'include/libelf.h'], + 'dirs': ['lib/pkgconfig'] +} + +moduleclass = 'devel' diff --git a/l/libevent/libevent-2.0.22-GCC-4.9.2.eb b/l/libevent/libevent-2.0.22-GCC-4.9.2.eb new file mode 100644 index 00000000..b12575ef --- /dev/null +++ b/l/libevent/libevent-2.0.22-GCC-4.9.2.eb @@ -0,0 +1,19 @@ +easyblock = 'ConfigureMake' + +name = 'libevent' +version = '2.0.22' + +homepage = 'http://libevent.org/' +description = """The libevent API provides a mechanism to execute a callback function when a specific + event occurs on a file descriptor or after a timeout has been reached. + Furthermore, libevent also support callbacks due to signals or regular timeouts.""" + +toolchain = {'name': 'GCC', 'version': '4.9.2'} + +source_urls = [ + 'https://github.com/downloads/%(name)s/%(name)s/', + 'https://sourceforge.net/projects/levent/files/%(name)s/%(name)s-%(version_major_minor)s/', +] +sources = ['%(name)s-%(version)s-stable.tar.gz'] + +moduleclass = 'lib' diff --git a/l/libevent/libevent-2.0.22-GCCcore-4.9.3.eb b/l/libevent/libevent-2.0.22-GCCcore-4.9.3.eb new file mode 100644 index 00000000..2de9d366 --- /dev/null +++ b/l/libevent/libevent-2.0.22-GCCcore-4.9.3.eb @@ -0,0 +1,24 @@ +easyblock = 'ConfigureMake' + +name = 'libevent' +version = '2.0.22' + +homepage = 'http://libevent.org/' +description = """The libevent API provides a mechanism to execute a callback function when a specific + event occurs on a file descriptor or after a timeout has been reached. + Furthermore, libevent also support callbacks due to signals or regular timeouts.""" + +toolchain = {'name': 'GCCcore', 'version': '4.9.3'} + +source_urls = [ + 'https://github.com/downloads/%(name)s/%(name)s/', + 'https://sourceforge.net/projects/levent/files/%(name)s/%(name)s-%(version_major_minor)s/', +] +sources = ['%(name)s-%(version)s-stable.tar.gz'] + +builddependencies = [ + # use same binutils version that was used when building GCCcore toolchain + ('binutils', '2.25', '', True), +] + +moduleclass = 'lib' diff --git a/l/libevent/libevent-2.0.22-GNU-4.9.3-2.25.eb b/l/libevent/libevent-2.0.22-GNU-4.9.3-2.25.eb new file mode 100644 index 00000000..3b555aa6 --- /dev/null +++ b/l/libevent/libevent-2.0.22-GNU-4.9.3-2.25.eb @@ -0,0 +1,19 @@ +easyblock = 'ConfigureMake' + +name = 'libevent' +version = '2.0.22' + +homepage = 'http://libevent.org/' +description = """The libevent API provides a mechanism to execute a callback function when a specific + event occurs on a file descriptor or after a timeout has been reached. + Furthermore, libevent also support callbacks due to signals or regular timeouts.""" + +toolchain = {'name': 'GNU', 'version': '4.9.3-2.25'} + +source_urls = [ + 'https://github.com/downloads/%(name)s/%(name)s/', + 'https://sourceforge.net/projects/levent/files/%(name)s/%(name)s-%(version_major_minor)s/', +] +sources = ['%(name)s-%(version)s-stable.tar.gz'] + +moduleclass = 'lib' diff --git a/l/libffi/libffi-3.0.13-foss-2015b.eb b/l/libffi/libffi-3.0.13-foss-2015b.eb new file mode 100644 index 00000000..dac06d1c --- /dev/null +++ b/l/libffi/libffi-3.0.13-foss-2015b.eb @@ -0,0 +1,25 @@ +easyblock = 'ConfigureMake' + +name = 'libffi' +version = '3.0.13' + +homepage = 'http://sourceware.org/libffi/' +description = """The libffi library provides a portable, high level programming interface to various calling +conventions. This allows a programmer to call any function specified by a call interface description at run-time.""" + +toolchain = {'name': 'foss', 'version': '2015b'} + +source_urls = [ + 'ftp://sourceware.org/pub/libffi/', + 'http://www.mirrorservice.org/sites/sourceware.org/pub/libffi/', +] +sources = [SOURCELOWER_TAR_GZ] + +patches = ['libffi-%(version)s_include-xmmintrin.patch'] + +sanity_check_paths = { + 'files': [('lib/libffi.%s' % SHLIB_EXT, 'lib64/libffi.%s' % SHLIB_EXT), ('lib/libffi.a', 'lib64/libffi.a')], + 'dirs': [], +} + +moduleclass = 'lib' diff --git a/l/libffi/libffi-3.0.13-foss-2015g.eb b/l/libffi/libffi-3.0.13-foss-2015g.eb new file mode 100644 index 00000000..81cadffa --- /dev/null +++ b/l/libffi/libffi-3.0.13-foss-2015g.eb @@ -0,0 +1,25 @@ +easyblock = 'ConfigureMake' + +name = 'libffi' +version = '3.0.13' + +homepage = 'http://sourceware.org/libffi/' +description = """The libffi library provides a portable, high level programming interface to various calling +conventions. This allows a programmer to call any function specified by a call interface description at run-time.""" + +toolchain = {'name': 'foss', 'version': '2015g'} + +source_urls = [ + 'ftp://sourceware.org/pub/libffi/', + 'http://www.mirrorservice.org/sites/sourceware.org/pub/libffi/', +] +sources = [SOURCELOWER_TAR_GZ] + +patches = ['libffi-%(version)s_include-xmmintrin.patch'] + +sanity_check_paths = { + 'files': [], + 'dirs': ['lib'], +} + +moduleclass = 'lib' diff --git a/l/libffi/libffi-3.2.1-GCC-4.4.7-system.eb b/l/libffi/libffi-3.2.1-GCC-4.4.7-system.eb new file mode 100644 index 00000000..8c64d77e --- /dev/null +++ b/l/libffi/libffi-3.2.1-GCC-4.4.7-system.eb @@ -0,0 +1,23 @@ +easyblock = 'ConfigureMake' + +name = 'libffi' +version = '3.2.1' + +homepage = 'http://sourceware.org/libffi/' +description = """The libffi library provides a portable, high level programming interface to various calling +conventions. This allows a programmer to call any function specified by a call interface description at run-time.""" + +toolchain = {'name': 'GCC', 'version': '4.4.7-system'} + +source_urls = [ + 'ftp://sourceware.org/pub/libffi/', + 'http://www.mirrorservice.org/sites/sourceware.org/pub/libffi/', +] +sources = [SOURCELOWER_TAR_GZ] + +sanity_check_paths = { + 'files': [('lib/libffi.%s' % SHLIB_EXT, 'lib64/libffi.%s' % SHLIB_EXT), ('lib/libffi.a', 'lib64/libffi.a')], + 'dirs': [], +} + +moduleclass = 'lib' diff --git a/l/libffi/libffi-3.2.1-foss-2017a.eb b/l/libffi/libffi-3.2.1-foss-2017a.eb new file mode 100644 index 00000000..17ffd460 --- /dev/null +++ b/l/libffi/libffi-3.2.1-foss-2017a.eb @@ -0,0 +1,23 @@ +easyblock = 'ConfigureMake' + +name = 'libffi' +version = '3.2.1' + +homepage = 'http://sourceware.org/libffi/' +description = """The libffi library provides a portable, high level programming interface to various calling +conventions. This allows a programmer to call any function specified by a call interface description at run-time.""" + +toolchain = {'name': 'foss', 'version': '2017a'} + +source_urls = [ + 'ftp://sourceware.org/pub/libffi/', + 'http://www.mirrorservice.org/sites/sourceware.org/pub/libffi/', +] +sources = [SOURCELOWER_TAR_GZ] + +sanity_check_paths = { + 'files': [('lib/libffi.%s' % SHLIB_EXT, 'lib64/libffi.%s' % SHLIB_EXT), ('lib/libffi.a', 'lib64/libffi.a')], + 'dirs': [], +} + +moduleclass = 'lib' diff --git a/l/libffi/libffi-3.2.1-intel-2017.00.eb b/l/libffi/libffi-3.2.1-intel-2017.00.eb new file mode 100644 index 00000000..98cb108d --- /dev/null +++ b/l/libffi/libffi-3.2.1-intel-2017.00.eb @@ -0,0 +1,23 @@ +easyblock = 'ConfigureMake' + +name = 'libffi' +version = '3.2.1' + +homepage = 'http://sourceware.org/libffi/' +description = """The libffi library provides a portable, high level programming interface to various calling +conventions. This allows a programmer to call any function specified by a call interface description at run-time.""" + +toolchain = {'name': 'intel', 'version': '2017.00'} + +source_urls = [ + 'ftp://sourceware.org/pub/libffi/', + 'http://www.mirrorservice.org/sites/sourceware.org/pub/libffi/', +] +sources = [SOURCELOWER_TAR_GZ] + +sanity_check_paths = { + 'files': [('lib/libffi.%s' % SHLIB_EXT, 'lib64/libffi.%s' % SHLIB_EXT), ('lib/libffi.a', 'lib64/libffi.a')], + 'dirs': [], +} + +moduleclass = 'lib' diff --git a/l/libffi/libffi-3.2.1-intel-2017a.eb b/l/libffi/libffi-3.2.1-intel-2017a.eb new file mode 100644 index 00000000..56d28bd1 --- /dev/null +++ b/l/libffi/libffi-3.2.1-intel-2017a.eb @@ -0,0 +1,23 @@ +easyblock = 'ConfigureMake' + +name = 'libffi' +version = '3.2.1' + +homepage = 'http://sourceware.org/libffi/' +description = """The libffi library provides a portable, high level programming interface to various calling +conventions. This allows a programmer to call any function specified by a call interface description at run-time.""" + +toolchain = {'name': 'intel', 'version': '2017a'} + +source_urls = [ + 'ftp://sourceware.org/pub/libffi/', + 'http://www.mirrorservice.org/sites/sourceware.org/pub/libffi/', +] +sources = [SOURCELOWER_TAR_GZ] + +sanity_check_paths = { + 'files': [('lib/libffi.%s' % SHLIB_EXT, 'lib64/libffi.%s' % SHLIB_EXT), ('lib/libffi.a', 'lib64/libffi.a')], + 'dirs': [], +} + +moduleclass = 'lib' diff --git a/l/libffi/libffi-3.2.1.eb b/l/libffi/libffi-3.2.1.eb new file mode 100644 index 00000000..32ebecce --- /dev/null +++ b/l/libffi/libffi-3.2.1.eb @@ -0,0 +1,23 @@ +easyblock = 'ConfigureMake' + +name = 'libffi' +version = '3.2.1' + +homepage = 'http://sourceware.org/libffi/' +description = """The libffi library provides a portable, high level programming interface to various calling +conventions. This allows a programmer to call any function specified by a call interface description at run-time.""" + +toolchain = {'name': 'dummy', 'version': 'dummy'} + +source_urls = [ + 'ftp://sourceware.org/pub/libffi/', + 'http://www.mirrorservice.org/sites/sourceware.org/pub/libffi/', +] +sources = [SOURCELOWER_TAR_GZ] + +sanity_check_paths = { + 'files': [('lib/libffi.%s' % SHLIB_EXT, 'lib64/libffi.%s' % SHLIB_EXT), ('lib/libffi.a', 'lib64/libffi.a')], + 'dirs': [], +} + +moduleclass = 'lib' diff --git a/l/libfontenc/libfontenc-1.1.3-foss-2015g.eb b/l/libfontenc/libfontenc-1.1.3-foss-2015g.eb new file mode 100644 index 00000000..d319505d --- /dev/null +++ b/l/libfontenc/libfontenc-1.1.3-foss-2015g.eb @@ -0,0 +1,23 @@ +easyblock = 'ConfigureMake' + +name = 'libfontenc' +version = '1.1.3' + +homepage = 'http://www.freedesktop.org/wiki/Software/xlibs/' +description = """X11 font encoding library""" + +toolchain = {'name': 'foss', 'version': '2015g'} + +sources = [SOURCELOWER_TAR_GZ] +source_urls = [XORG_LIB_SOURCE] + +builddependencies = [ + ('xproto', '7.0.26'), +] + +sanity_check_paths = { + 'files': ['include/X11/fonts/fontenc.h', 'lib/libfontenc.%s' % SHLIB_EXT, 'lib/libfontenc.a'], + 'dirs': [], +} + +moduleclass = 'lib' diff --git a/l/libfontenc/libfontenc-1.1.3-foss-2016a.eb b/l/libfontenc/libfontenc-1.1.3-foss-2016a.eb new file mode 100644 index 00000000..b21fd665 --- /dev/null +++ b/l/libfontenc/libfontenc-1.1.3-foss-2016a.eb @@ -0,0 +1,23 @@ +easyblock = 'ConfigureMake' + +name = 'libfontenc' +version = '1.1.3' + +homepage = 'http://www.freedesktop.org/wiki/Software/xlibs/' +description = """X11 font encoding library""" + +toolchain = {'name': 'foss', 'version': '2016a'} + +sources = [SOURCELOWER_TAR_GZ] +source_urls = [XORG_LIB_SOURCE] + +builddependencies = [ + ('xproto', '7.0.28'), +] + +sanity_check_paths = { + 'files': ['include/X11/fonts/fontenc.h', 'lib/libfontenc.%s' % SHLIB_EXT, 'lib/libfontenc.a'], + 'dirs': [], +} + +moduleclass = 'lib' diff --git a/l/libfontenc/libfontenc-1.1.3-intel-2016a.eb b/l/libfontenc/libfontenc-1.1.3-intel-2016a.eb new file mode 100644 index 00000000..458d0fa7 --- /dev/null +++ b/l/libfontenc/libfontenc-1.1.3-intel-2016a.eb @@ -0,0 +1,23 @@ +easyblock = 'ConfigureMake' + +name = 'libfontenc' +version = '1.1.3' + +homepage = 'http://www.freedesktop.org/wiki/Software/xlibs/' +description = """X11 font encoding library""" + +toolchain = {'name': 'intel', 'version': '2016a'} + +sources = [SOURCELOWER_TAR_GZ] +source_urls = [XORG_LIB_SOURCE] + +builddependencies = [ + ('xproto', '7.0.28'), +] + +sanity_check_paths = { + 'files': ['include/X11/fonts/fontenc.h', 'lib/libfontenc.%s' % SHLIB_EXT, 'lib/libfontenc.a'], + 'dirs': [], +} + +moduleclass = 'lib' diff --git a/l/libgdiplus/libgdiplus-3.12-GCC-4.4.7-system.eb b/l/libgdiplus/libgdiplus-3.12-GCC-4.4.7-system.eb new file mode 100644 index 00000000..a312f572 --- /dev/null +++ b/l/libgdiplus/libgdiplus-3.12-GCC-4.4.7-system.eb @@ -0,0 +1,27 @@ +name = 'libgdiplus' +version = '3.12' + +easyblock = 'ConfigureMake' + +homepage = 'https://github.com/mono/libgdiplus' +description = """An Open Source implementation of the GDI+ API.""" + +toolchain = {'name': 'GCC', 'version': '4.4.7-system'} + +sources = ['%(version)s.tar.gz'] +source_urls = ['https://github.com/mono/libgdiplus/archive/'] + +preconfigopts = "./autogen.sh && " + +osdependencies = [('cairo-devel', 'libssl-dev')] + +#builddependencies = [('GLib', '2.40.0', '', ('intel', '2015b'))] + +sanity_check_paths = { + 'files': ['lib/libgdiplus.%s' % SHLIB_EXT], + 'dirs': [], +} + +maxparallel = 4 + +moduleclass = 'lang' diff --git a/l/libgdiplus/libgdiplus-3.12-GCC-4.8.3.eb b/l/libgdiplus/libgdiplus-3.12-GCC-4.8.3.eb new file mode 100644 index 00000000..acf99cf2 --- /dev/null +++ b/l/libgdiplus/libgdiplus-3.12-GCC-4.8.3.eb @@ -0,0 +1,27 @@ +name = 'libgdiplus' +version = '3.12' + +easyblock = 'ConfigureMake' + +homepage = 'https://github.com/mono/libgdiplus' +description = """An Open Source implementation of the GDI+ API.""" + +toolchain = {'name': 'GCC', 'version': '4.8.3'} + +sources = ['%(version)s.tar.gz'] +source_urls = ['https://github.com/mono/libgdiplus/archive/'] + +preconfigopts = "./autogen.sh && " + +osdependencies = [('cairo-devel', 'libssl-dev')] + +builddependencies = [('GLib', '2.40.0', '', ('gompi', '1.5.16'))] + +sanity_check_paths = { + 'files': ['lib/libgdiplus.%s' % SHLIB_EXT], + 'dirs': [], +} + +maxparallel = 4 + +moduleclass = 'lang' diff --git a/l/libgdiplus/libgdiplus-3.12-GNU-5.1.0-2.25.eb b/l/libgdiplus/libgdiplus-3.12-GNU-5.1.0-2.25.eb new file mode 100644 index 00000000..e5b6a7c9 --- /dev/null +++ b/l/libgdiplus/libgdiplus-3.12-GNU-5.1.0-2.25.eb @@ -0,0 +1,27 @@ +name = 'libgdiplus' +version = '3.12' + +easyblock = 'ConfigureMake' + +homepage = 'https://github.com/mono/libgdiplus' +description = """An Open Source implementation of the GDI+ API.""" + +toolchain = {'name': 'GNU', 'version': '5.1.0-2.25'} + +sources = ['%(version)s.tar.gz'] +source_urls = ['https://github.com/mono/libgdiplus/archive/'] + +preconfigopts = "./autogen.sh && " + +osdependencies = [('cairo-devel', 'libssl-dev')] + +builddependencies = [('GLib', '2.40.0', '', ('intel', '2015b'))] + +sanity_check_paths = { + 'files': ['lib/libgdiplus.%s' % SHLIB_EXT], + 'dirs': [], +} + +maxparallel = 4 + +moduleclass = 'lang' diff --git a/l/libgdiplus/libgdiplus-3.12-intel-2016.01.eb b/l/libgdiplus/libgdiplus-3.12-intel-2016.01.eb new file mode 100644 index 00000000..a98779ec --- /dev/null +++ b/l/libgdiplus/libgdiplus-3.12-intel-2016.01.eb @@ -0,0 +1,27 @@ +name = 'libgdiplus' +version = '3.12' + +easyblock = 'ConfigureMake' + +homepage = 'https://github.com/mono/libgdiplus' +description = """An Open Source implementation of the GDI+ API.""" + +toolchain = {'name': 'intel', 'version': '2016.01'} + +sources = ['%(version)s.tar.gz'] +source_urls = ['https://github.com/mono/libgdiplus/archive/'] + +preconfigopts = "./autogen.sh && " + +osdependencies = [('cairo-devel', 'libssl-dev')] + +builddependencies = [('GLib', '2.40.0')] + +sanity_check_paths = { + 'files': ['lib/libgdiplus.%s' % SHLIB_EXT], + 'dirs': [], +} + +maxparallel = 4 + +moduleclass = 'lang' diff --git a/l/libjpeg-turbo/libjpeg-turbo-1.4.2-intel-2017.00.eb b/l/libjpeg-turbo/libjpeg-turbo-1.4.2-intel-2017.00.eb new file mode 100644 index 00000000..d9760dea --- /dev/null +++ b/l/libjpeg-turbo/libjpeg-turbo-1.4.2-intel-2017.00.eb @@ -0,0 +1,30 @@ +easyblock = 'ConfigureMake' + +name = 'libjpeg-turbo' +version = '1.4.2' + +homepage = 'http://sourceforge.net/projects/libjpeg-turbo/' +description = """libjpeg-turbo is a fork of the original IJG libjpeg which uses SIMD to accelerate baseline JPEG +compression and decompression. libjpeg is a library that implements JPEG image encoding, decoding and transcoding. +""" + +toolchain = {'name': 'intel', 'version': '2017.00'} +toolchainopts = {'pic': True} + +source_urls = [SOURCEFORGE_SOURCE] +sources = [SOURCELOWER_TAR_GZ] + +dependencies = [ + ('NASM', '2.11.08'), +] + +configopts = "--with-jpeg8" +runtest = "test" + +sanity_check_paths = { + 'files': ['bin/cjpeg', 'bin/djpeg', 'bin/jpegtran', 'bin/rdjpgcom', 'bin/tjbench', 'bin/wrjpgcom', + 'lib/libjpeg.a', 'lib/libjpeg.%s' % SHLIB_EXT, 'lib/libturbojpeg.a', 'lib/libturbojpeg.%s' % SHLIB_EXT], + 'dirs': ['include', 'share'], +} + +moduleclass = 'lib' diff --git a/l/libmatheval/libmatheval-1.1.11-foss-2015b.eb b/l/libmatheval/libmatheval-1.1.11-foss-2015b.eb new file mode 100644 index 00000000..2fd935d0 --- /dev/null +++ b/l/libmatheval/libmatheval-1.1.11-foss-2015b.eb @@ -0,0 +1,33 @@ +easyblock = 'ConfigureMake' + +name = 'libmatheval' +version = '1.1.11' + +homepage = 'http://www.gnu.org/software/libmatheval/' +description = """GNU libmatheval is a library (callable from C and Fortran) to parse + and evaluate symbolic expressions input as text.""" + +toolchain = {'name': 'foss', 'version': '2015b'} +toolchainopts = {'pic': True} + +sources = [SOURCELOWER_TAR_GZ] +source_urls = [GNU_SOURCE] + +dependencies = [ + ('flex', '2.5.39'), + ('Bison', '3.0.4'), + ('byacc', '20150711'), + ('guile', '1.8.8'), +] + +configopts = '--with-pic ' + +# fix for guile-config being broken because shebang line contains full path to bin/guile +configopts += 'GUILE_CONFIG="$EBROOTGUILE/bin/guile -e main -s $EBROOTGUILE/bin/guile-config"' + +sanity_check_paths = { + 'files': ['lib/libmatheval.a', 'include/matheval.h'], + 'dirs': [], +} + +moduleclass = 'lib' diff --git a/l/libmatheval/libmatheval-1.1.11-intel-2015b.eb b/l/libmatheval/libmatheval-1.1.11-intel-2015b.eb new file mode 100644 index 00000000..5c07ab42 --- /dev/null +++ b/l/libmatheval/libmatheval-1.1.11-intel-2015b.eb @@ -0,0 +1,33 @@ +easyblock = 'ConfigureMake' + +name = 'libmatheval' +version = '1.1.11' + +homepage = 'http://www.gnu.org/software/libmatheval/' +description = """GNU libmatheval is a library (callable from C and Fortran) to parse + and evaluate symbolic expressions input as text.""" + +toolchain = {'name': 'intel', 'version': '2015b'} +toolchainopts = {'pic': True} + +sources = [SOURCELOWER_TAR_GZ] +source_urls = [GNU_SOURCE] + +dependencies = [ + ('flex', '2.5.39'), + ('Bison', '3.0.4'), + ('byacc', '20150711'), + ('guile', '1.8.8'), +] + +configopts = '--with-pic ' + +# fix for guile-config being broken because shebang line contains full path to bin/guile +configopts += 'GUILE_CONFIG="$EBROOTGUILE/bin/guile -e main -s $EBROOTGUILE/bin/guile-config"' + +sanity_check_paths = { + 'files': ['lib/libmatheval.a', 'include/matheval.h'], + 'dirs': [], +} + +moduleclass = 'lib' diff --git a/l/libmatheval/libmatheval-1.1.8-foss-2015b.eb b/l/libmatheval/libmatheval-1.1.8-foss-2015b.eb new file mode 100644 index 00000000..2c25366b --- /dev/null +++ b/l/libmatheval/libmatheval-1.1.8-foss-2015b.eb @@ -0,0 +1,34 @@ +# Built with EasyBuild version 2.1.1 on 2015-08-17_09-22-15 +easyblock = 'ConfigureMake' + +name = 'libmatheval' +version = '1.1.8' + +homepage = 'http://www.gnu.org/software/libmatheval/' +description = """GNU libmatheval is a library (callable from C and Fortran) to parse + and evaluate symbolic expressions input as text.""" + +sources = [SOURCELOWER_TAR_GZ] +source_urls = [GNU_SOURCE] + +toolchain = {'name': 'foss', 'version': '2015b'} +toolchainopts = {'pic': True} + +dependencies = [ + ('flex', '2.5.39'), + ('Bison', '2.7'), + ('byacc', '20120526'), + ('guile', '1.8.8'), +] + +configopts = '--with-pic ' + +# fix for guile-config being broken because shebang line contains full path to bin/guile +configopts += 'GUILE_CONFIG="$EBROOTGUILE/bin/guile -e main -s $EBROOTGUILE/bin/guile-config"' + +sanity_check_paths = { + 'files': ['lib/libmatheval.a', 'include/matheval.h'], + 'dirs': [], +} + +moduleclass = 'lib' diff --git a/l/libmatheval/libmatheval-1.1.8-foss-2015g.eb b/l/libmatheval/libmatheval-1.1.8-foss-2015g.eb new file mode 100644 index 00000000..eac5acb3 --- /dev/null +++ b/l/libmatheval/libmatheval-1.1.8-foss-2015g.eb @@ -0,0 +1,33 @@ +easyblock = 'ConfigureMake' + +name = 'libmatheval' +version = '1.1.8' + +homepage = 'http://www.gnu.org/software/libmatheval/' +description = """GNU libmatheval is a library (callable from C and Fortran) to parse + and evaluate symbolic expressions input as text.""" + +sources = [SOURCELOWER_TAR_GZ] +source_urls = [GNU_SOURCE] + +toolchain = {'name': 'foss', 'version': '2015g'} +toolchainopts = {'pic': True} + +dependencies = [ + ('flex', '2.5.39'), + ('Bison', '2.7'), + ('byacc', '20120526'), + ('guile', '1.8.8'), +] + +configopts = '--with-pic ' + +# fix for guile-config being broken because shebang line contains full path to bin/guile +configopts += 'GUILE_CONFIG="$EBROOTGUILE/bin/guile -e main -s $EBROOTGUILE/bin/guile-config"' + +sanity_check_paths = { + 'files': ['lib/libmatheval.a', 'include/matheval.h'], + 'dirs': [], +} + +moduleclass = 'lib' diff --git a/l/libmatheval/libmatheval-1.1.8-foss-2016a.eb b/l/libmatheval/libmatheval-1.1.8-foss-2016a.eb new file mode 100644 index 00000000..82f2b5d5 --- /dev/null +++ b/l/libmatheval/libmatheval-1.1.8-foss-2016a.eb @@ -0,0 +1,33 @@ +easyblock = 'ConfigureMake' + +name = 'libmatheval' +version = '1.1.8' + +homepage = 'http://www.gnu.org/software/libmatheval/' +description = """GNU libmatheval is a library (callable from C and Fortran) to parse + and evaluate symbolic expressions input as text.""" + +sources = [SOURCELOWER_TAR_GZ] +source_urls = [GNU_SOURCE] + +toolchain = {'name': 'foss', 'version': '2016a'} +toolchainopts = {'pic': True} + +dependencies = [ + ('flex', '2.5.39'), + ('Bison', '3.0.4'), + ('byacc', '20120526'), + ('guile', '1.8.8'), +] + +configopts = '--with-pic ' + +# fix for guile-config being broken because shebang line contains full path to bin/guile +configopts += 'GUILE_CONFIG="$EBROOTGUILE/bin/guile -e main -s $EBROOTGUILE/bin/guile-config"' + +sanity_check_paths = { + 'files': ['lib/libmatheval.a', 'include/matheval.h'], + 'dirs': [], +} + +moduleclass = 'lib' diff --git a/l/libmatheval/libmatheval-1.1.8-foss-2017a.eb b/l/libmatheval/libmatheval-1.1.8-foss-2017a.eb new file mode 100644 index 00000000..b1ddb954 --- /dev/null +++ b/l/libmatheval/libmatheval-1.1.8-foss-2017a.eb @@ -0,0 +1,33 @@ +easyblock = 'ConfigureMake' + +name = 'libmatheval' +version = '1.1.8' + +homepage = 'http://www.gnu.org/software/libmatheval/' +description = """GNU libmatheval is a library (callable from C and Fortran) to parse + and evaluate symbolic expressions input as text.""" + +sources = [SOURCELOWER_TAR_GZ] +source_urls = [GNU_SOURCE] + +toolchain = {'name': 'foss', 'version': '2017a'} +toolchainopts = {'pic': True} + +dependencies = [ + ('flex', '2.6.3', '', ('GCCcore' , '6.3.0')), + ('Bison', '3.0.4', '', ('GCCcore', '6.3.0')), + ('byacc', '20160606', '', ('dummy', '')), + ('Guile', '1.8.8'), +] + +configopts = '--with-pic ' + +# fix for guile-config being broken because shebang line contains full path to bin/guile +configopts += 'GUILE_CONFIG="$EBROOTGUILE/bin/guile -e main -s $EBROOTGUILE/bin/guile-config"' + +sanity_check_paths = { + 'files': ['lib/libmatheval.a', 'include/matheval.h'], + 'dirs': [], +} + +moduleclass = 'lib' diff --git a/l/libmatheval/libmatheval-1.1.8-goalf-1.1.0-no-OFED.eb b/l/libmatheval/libmatheval-1.1.8-goalf-1.1.0-no-OFED.eb new file mode 100644 index 00000000..f753b8b7 --- /dev/null +++ b/l/libmatheval/libmatheval-1.1.8-goalf-1.1.0-no-OFED.eb @@ -0,0 +1,33 @@ +easyblock = 'ConfigureMake' + +name = 'libmatheval' +version = '1.1.8' + +homepage = 'http://www.gnu.org/software/libmatheval/' +description = """GNU libmatheval is a library (callable from C and Fortran) to parse + and evaluate symbolic expressions input as text.""" + +source_urls = [GNU_SOURCE] +sources = [SOURCELOWER_TAR_GZ] + +toolchain = {'name': 'goalf', 'version': '1.1.0-no-OFED'} +toolchainopts = {'pic': True} + +dependencies = [ + ('flex', '2.5.35'), + ('Bison', '2.5'), + ('byacc', '20120526'), + ('guile', '1.8.8'), +] + +configopts = '--with-pic ' + +# fix for guile-config being broken because shebang line contains full path to bin/guile +configopts += 'GUILE_CONFIG="$EBROOTGUILE/bin/guile -e main -s $EBROOTGUILE/bin/guile-config"' + +sanity_check_paths = { + 'files': ['lib/libmatheval.a', 'include/matheval.h'], + 'dirs': [], +} + +moduleclass = 'lib' diff --git a/l/libmatheval/libmatheval-1.1.8-goolf-1.4.10.eb b/l/libmatheval/libmatheval-1.1.8-goolf-1.4.10.eb new file mode 100644 index 00000000..f5143503 --- /dev/null +++ b/l/libmatheval/libmatheval-1.1.8-goolf-1.4.10.eb @@ -0,0 +1,33 @@ +easyblock = 'ConfigureMake' + +name = 'libmatheval' +version = '1.1.8' + +homepage = 'http://www.gnu.org/software/libmatheval/' +description = """GNU libmatheval is a library (callable from C and Fortran) to parse + and evaluate symbolic expressions input as text.""" + +source_urls = [GNU_SOURCE] +sources = [SOURCELOWER_TAR_GZ] + +toolchain = {'name': 'goolf', 'version': '1.4.10'} +toolchainopts = {'pic': True} + +dependencies = [ + ('flex', '2.5.35'), + ('Bison', '2.5'), + ('byacc', '20120526'), + ('guile', '1.8.8'), +] + +configopts = '--with-pic ' + +# fix for guile-config being broken because shebang line contains full path to bin/guile +configopts += 'GUILE_CONFIG="$EBROOTGUILE/bin/guile -e main -s $EBROOTGUILE/bin/guile-config"' + +sanity_check_paths = { + 'files': ['lib/libmatheval.a', 'include/matheval.h'], + 'dirs': [], +} + +moduleclass = 'lib' diff --git a/l/libmatheval/libmatheval-1.1.8-ictce-4.0.6.eb b/l/libmatheval/libmatheval-1.1.8-ictce-4.0.6.eb new file mode 100644 index 00000000..a8ede070 --- /dev/null +++ b/l/libmatheval/libmatheval-1.1.8-ictce-4.0.6.eb @@ -0,0 +1,33 @@ +easyblock = 'ConfigureMake' + +name = 'libmatheval' +version = '1.1.8' + +homepage = 'http://www.gnu.org/software/libmatheval/' +description = """GNU libmatheval is a library (callable from C and Fortran) to parse + and evaluate symbolic expressions input as text.""" + +source_urls = [GNU_SOURCE] +sources = [SOURCELOWER_TAR_GZ] + +toolchain = {'name': 'ictce', 'version': '4.0.6'} +toolchainopts = {'pic': True} + +dependencies = [ + ('flex', '2.5.35'), + ('Bison', '2.5'), + ('byacc', '20120526'), + ('guile', '1.8.8'), +] + +configopts = '--with-pic ' + +# fix for guile-config being broken because shebang line contains full path to bin/guile +configopts += 'GUILE_CONFIG="$EBROOTGUILE/bin/guile -e main -s $EBROOTGUILE/bin/guile-config"' + +sanity_check_paths = { + 'files': ['lib/libmatheval.a', 'include/matheval.h'], + 'dirs': [], +} + +moduleclass = 'lib' diff --git a/l/libmatheval/libmatheval-1.1.8-ictce-5.3.0.eb b/l/libmatheval/libmatheval-1.1.8-ictce-5.3.0.eb new file mode 100644 index 00000000..9c911d9a --- /dev/null +++ b/l/libmatheval/libmatheval-1.1.8-ictce-5.3.0.eb @@ -0,0 +1,33 @@ +easyblock = 'ConfigureMake' + +name = 'libmatheval' +version = '1.1.8' + +homepage = 'http://www.gnu.org/software/libmatheval/' +description = """GNU libmatheval is a library (callable from C and Fortran) to parse + and evaluate symbolic expressions input as text.""" + +sources = [SOURCELOWER_TAR_GZ] +source_urls = [GNU_SOURCE] + +toolchain = {'name': 'ictce', 'version': '5.3.0'} +toolchainopts = {'pic': True} + +dependencies = [ + ('flex', '2.5.35'), + ('Bison', '2.5'), + ('byacc', '20120526'), + ('guile', '1.8.8'), +] + +configopts = '--with-pic ' + +# fix for guile-config being broken because shebang line contains full path to bin/guile +configopts += 'GUILE_CONFIG="$EBROOTGUILE/bin/guile -e main -s $EBROOTGUILE/bin/guile-config"' + +sanity_check_paths = { + 'files': ['lib/libmatheval.a', 'include/matheval.h'], + 'dirs': [], +} + +moduleclass = 'lib' diff --git a/l/libmatheval/libmatheval-1.1.8-intel-2015b.eb b/l/libmatheval/libmatheval-1.1.8-intel-2015b.eb new file mode 100644 index 00000000..9eec9736 --- /dev/null +++ b/l/libmatheval/libmatheval-1.1.8-intel-2015b.eb @@ -0,0 +1,59 @@ +# Built with EasyBuild version 2.1.1 on 2015-08-17_09-22-15 +easyblock = 'ConfigureMake' + +name = 'libmatheval' +version = '1.1.8' + +homepage = 'http://www.gnu.org/software/libmatheval/' +description = """GNU libmatheval is a library (callable from C and Fortran) to parse + and evaluate symbolic expressions input as text.""" + +sources = [SOURCELOWER_TAR_GZ] +source_urls = [GNU_SOURCE] + +toolchain = {'name': 'intel', 'version': '2015b'} +toolchainopts = {'pic': True} + +dependencies = [ + ('flex', '2.5.35'), + ('Bison', '2.5'), + ('byacc', '20120526'), + ('guile', '1.8.8'), +] + +configopts = '--with-pic ' + +# fix for guile-config being broken because shebang line contains full path to bin/guile +configopts += 'GUILE_CONFIG="$EBROOTGUILE/bin/guile -e main -s $EBROOTGUILE/bin/guile-config"' + +sanity_check_paths = { + 'files': ['lib/libmatheval.a', 'include/matheval.h'], + 'dirs': [], +} + +moduleclass = 'lib' + +# Build statistics +buildstats = [{ + "easybuild-framework_version": "2.1.1", + "easybuild-easyblocks_version": "2.1.1", + "timestamp": 1439796135, + "build_time": 30.81, + "install_size": 909501, + "command_line": ['--buildpath=/easybuild/build', '--installpath=/apps', '--installpath-modules=/apps/modules', '--installpath-software=/apps', '--module-naming-scheme=IT4IModuleNamingScheme', '--modules-footer=/easybuild/templates/modules/jas02_footer.txt', '--repositorypath=/easybuild/file-repository', '--robot=/easybuild/easyconfigs-salomon/easybuild/easyconfigs', '--robot-paths=/easybuild/easyconfigs-salomon/easybuild/easyconfigs', '--sourcepath=/easybuild/sources', '--try-toolchain="[\'intel\', \'2015b\']"', 'libmatheval-1.1.8-ictce-5.3.0.eb'], + "modules_tool": ('EnvironmentModulesC', '/usr/bin/modulecmd', '3.2.10'), + "core_count": 28, + "cpu_model": "Intel(R) Xeon(R) CPU E5-2695 v3 @ 2.30GHz", + "cpu_speed": 2299.825, + "cpu_vendor": "Intel", + "gcc_version": "Using built-in specs.; COLLECT_GCC=gcc; COLLECT_LTO_WRAPPER=/apps/all/GCC/5.1.0-binutils-2.25/libexec/gcc/x86_64-unknown-linux-gnu/5.1.0/lto-wrapper; Target: x86_64-unknown-linux-gnu; Configured with: ../configure --enable-languages=c,c++,fortran --enable-lto --enable-checking=release --disable-multilib --enable-shared=yes --enable-static=yes --enable-threads=posix --enable-gold=default --enable-plugins --enable-ld --with-plugin-ld=ld.gold --prefix=/apps/all/GCC/5.1.0-binutils-2.25 --with-local-prefix=/apps/all/GCC/5.1.0-binutils-2.25 --enable-bootstrap --with-isl=/easybuild/build/GCC/5.1.0/dummy--binutils-2.25/gcc-5.1.0/stage2_stuff; Thread model: posix; gcc version 5.1.0 (GCC) ; ", + "glibc_version": "2.12", + "hostname": "login1", + "os_name": "centos", + "os_type": "Linux", + "os_version": "6.6", + "platform_name": "x86_64-unknown-linux", + "python_version": "2.6.6 (r266:84292, Jan 22 2014, 09:42:36) ; [GCC 4.4.7 20120313 (Red Hat 4.4.7-4)]", + "system_gcc_path": "/apps/all/GCC/5.1.0-binutils-2.25/bin/gcc", + "system_python_path": "/usr/bin/python", +}] diff --git a/l/libpng/libpng-1.6.12-intel-2015b.eb b/l/libpng/libpng-1.6.12-intel-2015b.eb new file mode 100644 index 00000000..8e747969 --- /dev/null +++ b/l/libpng/libpng-1.6.12-intel-2015b.eb @@ -0,0 +1,20 @@ +# Built with EasyBuild version 2.1.1 on 2015-06-29_22-19-32 +easyblock = 'ConfigureMake' + +name = 'libpng' +version = '1.6.12' + +homepage = 'http://www.libpng.org/pub/png/libpng.html' +description = "libpng is the official PNG reference library" + +toolchain = {'name': 'intel', 'version': '2015b'} +toolchainopts = {'pic': True} + +source_urls = [SOURCEFORGE_SOURCE] +sources = [SOURCELOWER_TAR_GZ] + +dependencies = [('zlib', '1.2.8')] + +configopts = "--with-pic" + +moduleclass = 'lib' diff --git a/l/libpng/libpng-1.6.12.eb b/l/libpng/libpng-1.6.12.eb new file mode 100644 index 00000000..0b862225 --- /dev/null +++ b/l/libpng/libpng-1.6.12.eb @@ -0,0 +1,21 @@ +easyblock = 'ConfigureMake' + +name = 'libpng' +version = '1.6.12' + +homepage = 'http://www.libpng.org/pub/png/libpng.html' +description = "libpng is the official PNG reference library" + +toolchain = {'name': 'dummy', 'version': ''} +toolchainopts = {'pic': True} + +source_urls = [SOURCEFORGE_SOURCE] +sources = [SOURCELOWER_TAR_GZ] + +dependencies = [('zlib', '1.2.8')] + +preconfigopts = 'export LDFLAGS="-L/apps/all/zlib/1.2.8/lib" CPPFLAGS="-I/apps/all/zlib/1.2.8/include" &&' + +configopts = "--with-pic" + +moduleclass = 'lib' diff --git a/l/libpng/libpng-1.6.21-intel-2017.00.eb b/l/libpng/libpng-1.6.21-intel-2017.00.eb new file mode 100644 index 00000000..9c5f9fda --- /dev/null +++ b/l/libpng/libpng-1.6.21-intel-2017.00.eb @@ -0,0 +1,26 @@ +easyblock = 'ConfigureMake' + +name = 'libpng' +version = '1.6.21' + +homepage = 'http://www.libpng.org/pub/png/libpng.html' +description = "libpng is the official PNG reference library" + +toolchain = {'name': 'intel', 'version': '2017.00'} +toolchainopts = {'pic': True} + +source_urls = [SOURCEFORGE_SOURCE] +sources = [SOURCELOWER_TAR_GZ] + +dependencies = [('zlib', '1.2.8')] + +configopts = "--with-pic" + +majminver = ''.join(version.split('.')[:2]) +sanity_check_paths = { + 'files': ['include/pngconf.h', 'include/png.h', 'include/pnglibconf.h', 'lib/libpng.a', + 'lib/libpng.%s' % SHLIB_EXT, 'lib/libpng%s.a' % majminver, 'lib/libpng%s.%s' % (majminver, SHLIB_EXT)], + 'dirs': ['bin', 'include/libpng%s' % majminver, 'share/man'], +} + +moduleclass = 'lib' diff --git a/l/libpsortb/libpsortb-1.0-foss-2016a.eb b/l/libpsortb/libpsortb-1.0-foss-2016a.eb new file mode 100644 index 00000000..41eb8517 --- /dev/null +++ b/l/libpsortb/libpsortb-1.0-foss-2016a.eb @@ -0,0 +1,20 @@ +easyblock = 'ConfigureMake' + +name = 'libpsortb' +version = '1.0' + +homepage = "http://psort.org/" +description = """PSORT family of programs for subcellular localization prediction as well as other datasets and + resources relevant to localization prediction.""" + +toolchain = {'name': 'foss', 'version': '2016a'} + +source_urls = ['http://www.psort.org/download/'] +sources = [SOURCELOWER_TAR_GZ] + +sanity_check_paths = { + 'files': ['lib64/libhmmer.so','lib64/libsvmloc.so'], + 'dirs': [], +} + +moduleclass = 'bio' \ No newline at end of file diff --git a/l/libreadline/libreadline-6.2-goolf-1.5.16.eb b/l/libreadline/libreadline-6.2-goolf-1.5.16.eb new file mode 100644 index 00000000..d15cccdd --- /dev/null +++ b/l/libreadline/libreadline-6.2-goolf-1.5.16.eb @@ -0,0 +1,27 @@ +easyblock = 'ConfigureMake' + +name = 'libreadline' +version = '6.2' + +homepage = 'http://cnswww.cns.cwru.edu/php/chet/readline/rltop.html' +description = """The GNU Readline library provides a set of functions for use by applications that + allow users to edit command lines as they are typed in. Both Emacs and vi editing modes are available. + The Readline library includes additional functions to maintain a list of previously-entered command lines, + to recall and perhaps reedit those lines, and perform csh-like history expansion on previous commands.""" + +toolchain = {'name': 'goolf', 'version': '1.5.16'} +toolchainopts = {'pic': True} + +sources = ['readline-%(version)s.tar.gz'] +source_urls = ['http://ftp.gnu.org/gnu/readline'] + +dependencies = [('ncurses', '5.9')] + +sanity_check_paths = { + 'files' : ['lib/libreadline.a', 'lib/libhistory.a'] + + ['include/readline/%s' % x for x in ['chardefs.h', 'history.h', 'keymaps.h', 'readline.h', 'rlconf.h', + 'rlstdc.h', 'rltypedefs.h', 'tilde.h']], + 'dirs' : [], +} + +moduleclass = 'lib' diff --git a/l/libreadline/libreadline-6.3-GCC-4.8.2.eb b/l/libreadline/libreadline-6.3-GCC-4.8.2.eb new file mode 100644 index 00000000..55d005e4 --- /dev/null +++ b/l/libreadline/libreadline-6.3-GCC-4.8.2.eb @@ -0,0 +1,31 @@ +easyblock = 'ConfigureMake' + +name = 'libreadline' +version = '6.3' + +homepage = 'http://cnswww.cns.cwru.edu/php/chet/readline/rltop.html' +description = """The GNU Readline library provides a set of functions for use by applications that + allow users to edit command lines as they are typed in. Both Emacs and vi editing modes are available. + The Readline library includes additional functions to maintain a list of previously-entered command lines, + to recall and perhaps reedit those lines, and perform csh-like history expansion on previous commands.""" + +toolchain = {'name': 'GCC', 'version': '4.8.2'} + +sources = ['readline-%(version)s.tar.gz'] +source_urls = ['http://ftp.gnu.org/gnu/readline'] + +patches = ['libreadline-%(version)s-bugfix.patch'] + +dependencies = [('ncurses', '5.9')] + +# for the termcap symbols, use EB ncurses +preconfigopts = "env LDFLAGS='-lncurses'" + +sanity_check_paths = { + 'files': ['lib/libreadline.a', 'lib/libhistory.a'] + + ['include/readline/%s' % x for x in ['chardefs.h', 'history.h', 'keymaps.h', 'readline.h', 'rlconf.h', + 'rlstdc.h', 'rltypedefs.h', 'tilde.h']], + 'dirs': [], +} + +moduleclass = 'lib' diff --git a/l/libreadline/libreadline-6.3-GNU-5.1.0-2.25.eb b/l/libreadline/libreadline-6.3-GNU-5.1.0-2.25.eb new file mode 100644 index 00000000..b714b133 --- /dev/null +++ b/l/libreadline/libreadline-6.3-GNU-5.1.0-2.25.eb @@ -0,0 +1,29 @@ +# Built with EasyBuild version 2.1.1 on 2015-07-07_14-34-25 +# Built with EasyBuild version 2.1.1 on 2015-06-29_22-22-35 +easyblock = 'ConfigureMake' + +name = 'libreadline' +version = '6.3' + +homepage = 'http://cnswww.cns.cwru.edu/php/chet/readline/rltop.html' +description = """The GNU Readline library provides a set of functions for use by applications that + allow users to edit command lines as they are typed in. Both Emacs and vi editing modes are available. + The Readline library includes additional functions to maintain a list of previously-entered command lines, + to recall and perhaps reedit those lines, and perform csh-like history expansion on previous commands.""" + +toolchain = {'name': 'GNU', 'version': '5.1.0-2.25'} +toolchainopts = {'pic': True} + +sources = ['readline-%(version)s.tar.gz'] +source_urls = ['http://ftp.gnu.org/gnu/readline'] + +dependencies = [('ncurses', '5.9')] + +sanity_check_paths = { + 'files' : ['lib/libreadline.a', 'lib/libhistory.a'] + + ['include/readline/%s' % x for x in ['chardefs.h', 'history.h', 'keymaps.h', 'readline.h', 'rlconf.h', + 'rlstdc.h', 'rltypedefs.h', 'tilde.h']], + 'dirs' : [], +} + +moduleclass = 'lib' diff --git a/l/libreadline/libreadline-6.3-foss-2015g.eb b/l/libreadline/libreadline-6.3-foss-2015g.eb new file mode 100644 index 00000000..5b15aba7 --- /dev/null +++ b/l/libreadline/libreadline-6.3-foss-2015g.eb @@ -0,0 +1,29 @@ +# Built with EasyBuild version 2.1.1 on 2015-09-08_14-59-35 +# Built with EasyBuild version 2.1.1 on 2015-06-29_22-22-35 +easyblock = 'ConfigureMake' + +name = 'libreadline' +version = '6.3' + +homepage = 'http://cnswww.cns.cwru.edu/php/chet/readline/rltop.html' +description = """The GNU Readline library provides a set of functions for use by applications that + allow users to edit command lines as they are typed in. Both Emacs and vi editing modes are available. + The Readline library includes additional functions to maintain a list of previously-entered command lines, + to recall and perhaps reedit those lines, and perform csh-like history expansion on previous commands.""" + +toolchain = {'name': 'foss', 'version': '2015g'} +toolchainopts = {'pic': True} + +sources = ['readline-%(version)s.tar.gz'] +source_urls = ['http://ftp.gnu.org/gnu/readline'] + +dependencies = [('ncurses', '5.9')] + +sanity_check_paths = { + 'files' : ['lib/libreadline.a', 'lib/libhistory.a'] + + ['include/readline/%s' % x for x in ['chardefs.h', 'history.h', 'keymaps.h', 'readline.h', 'rlconf.h', + 'rlstdc.h', 'rltypedefs.h', 'tilde.h']], + 'dirs' : [], +} + +moduleclass = 'lib' diff --git a/l/libreadline/libreadline-6.3-foss-2017a.eb b/l/libreadline/libreadline-6.3-foss-2017a.eb new file mode 100644 index 00000000..a81ccf96 --- /dev/null +++ b/l/libreadline/libreadline-6.3-foss-2017a.eb @@ -0,0 +1,32 @@ +easyblock = 'ConfigureMake' + +name = 'libreadline' +version = '6.3' + +homepage = 'http://cnswww.cns.cwru.edu/php/chet/readline/rltop.html' +description = """The GNU Readline library provides a set of functions for use by applications that + allow users to edit command lines as they are typed in. Both Emacs and vi editing modes are available. + The Readline library includes additional functions to maintain a list of previously-entered command lines, + to recall and perhaps reedit those lines, and perform csh-like history expansion on previous commands.""" + +toolchain = {'name': 'foss', 'version': '2017a'} +toolchainopts = {'pic': True} + +sources = ['readline-%(version)s.tar.gz'] +source_urls = ['http://ftp.gnu.org/gnu/readline'] + +patches = ['libreadline-%(version)s-bugfix.patch'] + +dependencies = [('ncurses', '6.0')] + +# for the termcap symbols, use EB ncurses +preconfigopts = "env LDFLAGS='-lncurses'" + +sanity_check_paths = { + 'files': ['lib/libreadline.a', 'lib/libhistory.a'] + + ['include/readline/%s' % x for x in ['chardefs.h', 'history.h', 'keymaps.h', 'readline.h', 'rlconf.h', + 'rlstdc.h', 'rltypedefs.h', 'tilde.h']], + 'dirs': [], +} + +moduleclass = 'lib' diff --git a/l/libreadline/libreadline-6.3-gompi-2015e.eb b/l/libreadline/libreadline-6.3-gompi-2015e.eb new file mode 100644 index 00000000..ed3dd67f --- /dev/null +++ b/l/libreadline/libreadline-6.3-gompi-2015e.eb @@ -0,0 +1,27 @@ +easyblock = 'ConfigureMake' + +name = 'libreadline' +version = '6.3' + +homepage = 'http://cnswww.cns.cwru.edu/php/chet/readline/rltop.html' +description = """The GNU Readline library provides a set of functions for use by applications that + allow users to edit command lines as they are typed in. Both Emacs and vi editing modes are available. + The Readline library includes additional functions to maintain a list of previously-entered command lines, + to recall and perhaps reedit those lines, and perform csh-like history expansion on previous commands.""" + +toolchain = {'name': 'gompi', 'version': '2015e'} +toolchainopts = {'pic': True} + +sources = ['readline-%(version)s.tar.gz'] +source_urls = ['http://ftp.gnu.org/gnu/readline'] + +dependencies = [('ncurses', '5.9')] + +sanity_check_paths = { + 'files' : ['lib/libreadline.a', 'lib/libhistory.a'] + + ['include/readline/%s' % x for x in ['chardefs.h', 'history.h', 'keymaps.h', 'readline.h', 'rlconf.h', + 'rlstdc.h', 'rltypedefs.h', 'tilde.h']], + 'dirs' : [], +} + +moduleclass = 'lib' diff --git a/l/libreadline/libreadline-6.3-intel-2017.00.eb b/l/libreadline/libreadline-6.3-intel-2017.00.eb new file mode 100644 index 00000000..843a0fa1 --- /dev/null +++ b/l/libreadline/libreadline-6.3-intel-2017.00.eb @@ -0,0 +1,32 @@ +easyblock = 'ConfigureMake' + +name = 'libreadline' +version = '6.3' + +homepage = 'http://cnswww.cns.cwru.edu/php/chet/readline/rltop.html' +description = """The GNU Readline library provides a set of functions for use by applications that + allow users to edit command lines as they are typed in. Both Emacs and vi editing modes are available. + The Readline library includes additional functions to maintain a list of previously-entered command lines, + to recall and perhaps reedit those lines, and perform csh-like history expansion on previous commands.""" + +toolchain = {'name': 'intel', 'version': '2017.00'} +toolchainopts = {'pic': True} + +sources = ['readline-%(version)s.tar.gz'] +source_urls = ['http://ftp.gnu.org/gnu/readline'] + +patches = ['libreadline-%(version)s-bugfix.patch'] + +dependencies = [('ncurses', '6.0')] + +# for the termcap symbols, use EB ncurses +preconfigopts = "env LDFLAGS='-lncurses'" + +sanity_check_paths = { + 'files': ['lib/libreadline.a', 'lib/libhistory.a'] + + ['include/readline/%s' % x for x in ['chardefs.h', 'history.h', 'keymaps.h', 'readline.h', 'rlconf.h', + 'rlstdc.h', 'rltypedefs.h', 'tilde.h']], + 'dirs': [], +} + +moduleclass = 'lib' diff --git a/l/libreadline/libreadline-6.3-intel-2017a.eb b/l/libreadline/libreadline-6.3-intel-2017a.eb new file mode 100644 index 00000000..51617a01 --- /dev/null +++ b/l/libreadline/libreadline-6.3-intel-2017a.eb @@ -0,0 +1,32 @@ +easyblock = 'ConfigureMake' + +name = 'libreadline' +version = '6.3' + +homepage = 'http://cnswww.cns.cwru.edu/php/chet/readline/rltop.html' +description = """The GNU Readline library provides a set of functions for use by applications that + allow users to edit command lines as they are typed in. Both Emacs and vi editing modes are available. + The Readline library includes additional functions to maintain a list of previously-entered command lines, + to recall and perhaps reedit those lines, and perform csh-like history expansion on previous commands.""" + +toolchain = {'name': 'intel', 'version': '2017a'} +toolchainopts = {'pic': True} + +sources = ['readline-%(version)s.tar.gz'] +source_urls = ['http://ftp.gnu.org/gnu/readline'] + +patches = ['libreadline-%(version)s-bugfix.patch'] + +dependencies = [('ncurses', '6.0')] + +# for the termcap symbols, use EB ncurses +preconfigopts = "env LDFLAGS='-lncurses'" + +sanity_check_paths = { + 'files': ['lib/libreadline.a', 'lib/libhistory.a'] + + ['include/readline/%s' % x for x in ['chardefs.h', 'history.h', 'keymaps.h', 'readline.h', 'rlconf.h', + 'rlstdc.h', 'rltypedefs.h', 'tilde.h']], + 'dirs': [], +} + +moduleclass = 'lib' diff --git a/l/libreadline/libreadline-6.3.eb b/l/libreadline/libreadline-6.3.eb new file mode 100644 index 00000000..5486b482 --- /dev/null +++ b/l/libreadline/libreadline-6.3.eb @@ -0,0 +1,29 @@ +easyblock = 'ConfigureMake' + +name = 'libreadline' +version = '6.3' + +homepage = 'http://cnswww.cns.cwru.edu/php/chet/readline/rltop.html' +description = """The GNU Readline library provides a set of functions for use by applications that + allow users to edit command lines as they are typed in. Both Emacs and vi editing modes are available. + The Readline library includes additional functions to maintain a list of previously-entered command lines, + to recall and perhaps reedit those lines, and perform csh-like history expansion on previous commands.""" + +toolchain = {'name': 'dummy', 'version': ''} +toolchainopts = {'pic': True} + +sources = ['readline-%(version)s.tar.gz'] +source_urls = ['http://ftp.gnu.org/gnu/readline'] + +dependencies = [('ncurses', '6.0')] + +sanity_check_paths = { + 'files' : ['lib/libreadline.a', 'lib/libhistory.a'] + + ['include/readline/%s' % x for x in ['chardefs.h', 'history.h', 'keymaps.h', 'readline.h', 'rlconf.h', + 'rlstdc.h', 'rltypedefs.h', 'tilde.h']], + 'dirs' : [], +} + +buildopts = "CC=gcc CFLAGS='-O3 -fPIC'" + +moduleclass = 'lib' diff --git a/l/libsodium/libsodium-1.0.3-intel-2015a.eb b/l/libsodium/libsodium-1.0.3-intel-2015a.eb new file mode 100644 index 00000000..7c150506 --- /dev/null +++ b/l/libsodium/libsodium-1.0.3-intel-2015a.eb @@ -0,0 +1,20 @@ +easyblock = 'ConfigureMake' + +name = 'libsodium' +version = '1.0.3' + +homepage = 'http://doc.libsodium.org/' +description = """Sodium is a modern, easy-to-use software library for encryption, decryption, signatures, + password hashing and more.""" + +toolchain = {'name': 'intel', 'version': '2015a'} + +source_urls = ['https://download.libsodium.org/libsodium/releases/'] +sources = [SOURCE_TAR_GZ] + +sanity_check_paths = { + 'files': ['include/sodium.h', 'lib/libsodium.%s' % SHLIB_EXT, 'lib/libsodium.a'], + 'dirs': ['include/sodium', 'lib/pkgconfig'], +} + +moduleclass = 'lib' diff --git a/l/libtool/libtool-2.4.2-foss-2015b.eb b/l/libtool/libtool-2.4.2-foss-2015b.eb new file mode 100644 index 00000000..b2ecb78a --- /dev/null +++ b/l/libtool/libtool-2.4.2-foss-2015b.eb @@ -0,0 +1,42 @@ +# Built with EasyBuild version 2.1.1 on 2015-09-08_14-18-26 +# Built with EasyBuild version 2.1.1 on 2015-08-17_08-12-48 +easyblock = 'ConfigureMake' + +name = 'libtool' +version = '2.4.2' + +homepage = 'http://www.gnu.org/software/libtool' +description = """GNU libtool is a generic library support script. Libtool hides the complexity of using shared libraries + behind a consistent, portable interface.""" + +toolchain = {'name': 'foss', 'version': '2015b'} + +sources = [SOURCELOWER_TAR_GZ] +source_urls = ['http://ftp.gnu.org/gnu/%s' % name.lower()] + +moduleclass = 'lib' + +# Build statistics +buildstats = [{ + "easybuild-framework_version": "2.1.1", + "easybuild-easyblocks_version": "2.1.1", + "timestamp": 1441714706, + "build_time": 21.56, + "install_size": 2524427, + "command_line": ['--buildpath=/easybuild/build', '--installpath=/apps', '--installpath-modules=/apps/modules', '--installpath-software=/apps', '--module-naming-scheme=IT4IModuleNamingScheme', '--modules-footer=/easybuild/templates/modules/jas02_footer.txt', '--repositorypath=/easybuild/file-repository', '--robot=/easybuild/easyconfigs-salomon/easybuild/easyconfigs', '--robot-paths=/easybuild/easyconfigs-salomon/easybuild/easyconfigs', '--sourcepath=/easybuild/sources', '--try-toolchain="[\'foss\', \'2015b\']"', 'guile-1.8.8-intel-2015b.eb'], + "modules_tool": ('EnvironmentModulesC', '/usr/bin/modulecmd', '3.2.10'), + "core_count": 28, + "cpu_model": "Intel(R) Xeon(R) CPU E5-2695 v3 @ 2.30GHz", + "cpu_speed": 2300.196, + "cpu_vendor": "Intel", + "gcc_version": "Using built-in specs.; COLLECT_GCC=gcc; COLLECT_LTO_WRAPPER=/apps/all/GCC/5.1.0-binutils-2.25/libexec/gcc/x86_64-unknown-linux-gnu/5.1.0/lto-wrapper; Target: x86_64-unknown-linux-gnu; Configured with: ../configure --enable-languages=c,c++,fortran --enable-lto --enable-checking=release --disable-multilib --enable-shared=yes --enable-static=yes --enable-threads=posix --enable-gold=default --enable-plugins --enable-ld --with-plugin-ld=ld.gold --prefix=/apps/all/GCC/5.1.0-binutils-2.25 --with-local-prefix=/apps/all/GCC/5.1.0-binutils-2.25 --enable-bootstrap --with-isl=/easybuild/build/GCC/5.1.0/dummy--binutils-2.25/gcc-5.1.0/stage2_stuff; Thread model: posix; gcc version 5.1.0 (GCC) ; ", + "glibc_version": "2.12", + "hostname": "login3", + "os_name": "centos", + "os_type": "Linux", + "os_version": "6.6", + "platform_name": "x86_64-unknown-linux", + "python_version": "2.6.6 (r266:84292, Jan 22 2014, 09:42:36) ; [GCC 4.4.7 20120313 (Red Hat 4.4.7-4)]", + "system_gcc_path": "/apps/all/GCC/5.1.0-binutils-2.25/bin/gcc", + "system_python_path": "/usr/bin/python", +}] diff --git a/l/libtool/libtool-2.4.2-foss-2015g.eb b/l/libtool/libtool-2.4.2-foss-2015g.eb new file mode 100644 index 00000000..f3865909 --- /dev/null +++ b/l/libtool/libtool-2.4.2-foss-2015g.eb @@ -0,0 +1,17 @@ +# Built with EasyBuild version 2.1.1 on 2015-09-08_14-18-26 +# Built with EasyBuild version 2.1.1 on 2015-08-17_08-12-48 +easyblock = 'ConfigureMake' + +name = 'libtool' +version = '2.4.2' + +homepage = 'http://www.gnu.org/software/libtool' +description = """GNU libtool is a generic library support script. Libtool hides the complexity of using shared libraries + behind a consistent, portable interface.""" + +toolchain = {'name': 'foss', 'version': '2015g'} + +sources = [SOURCELOWER_TAR_GZ] +source_urls = ['http://ftp.gnu.org/gnu/%s' % name.lower()] + +moduleclass = 'lib' diff --git a/l/libtool/libtool-2.4.2-intel-2015b.eb b/l/libtool/libtool-2.4.2-intel-2015b.eb new file mode 100644 index 00000000..f1eef359 --- /dev/null +++ b/l/libtool/libtool-2.4.2-intel-2015b.eb @@ -0,0 +1,16 @@ +# Built with EasyBuild version 2.1.1 on 2015-08-17_08-12-48 +easyblock = 'ConfigureMake' + +name = 'libtool' +version = '2.4.2' + +homepage = 'http://www.gnu.org/software/libtool' +description = """GNU libtool is a generic library support script. Libtool hides the complexity of using shared libraries + behind a consistent, portable interface.""" + +toolchain = {'name': 'intel', 'version': '2015b'} + +sources = [SOURCELOWER_TAR_GZ] +source_urls = ['http://ftp.gnu.org/gnu/%s' % name.lower()] + +moduleclass = 'lib' diff --git a/l/libtool/libtool-2.4.6-GCC-6.3.0-2.27.eb b/l/libtool/libtool-2.4.6-GCC-6.3.0-2.27.eb new file mode 100644 index 00000000..ac5fabc1 --- /dev/null +++ b/l/libtool/libtool-2.4.6-GCC-6.3.0-2.27.eb @@ -0,0 +1,17 @@ +easyblock = 'ConfigureMake' + +name = 'libtool' +version = '2.4.6' + +homepage = 'http://www.gnu.org/software/libtool' +description = """GNU libtool is a generic library support script. Libtool hides the complexity of using shared libraries + behind a consistent, portable interface.""" + +toolchain = {'name': 'GCC', 'version': '6.3.0-2.27'} + +sources = [SOURCELOWER_TAR_GZ] +source_urls = [GNU_SOURCE] + +dependencies = [('M4', '1.4.18')] + +moduleclass = 'lib' diff --git a/l/libtool/libtool-2.4.6-foss-2017a.eb b/l/libtool/libtool-2.4.6-foss-2017a.eb new file mode 100644 index 00000000..08f30e42 --- /dev/null +++ b/l/libtool/libtool-2.4.6-foss-2017a.eb @@ -0,0 +1,17 @@ +easyblock = 'ConfigureMake' + +name = 'libtool' +version = '2.4.6' + +homepage = 'http://www.gnu.org/software/libtool' +description = """GNU libtool is a generic library support script. Libtool hides the complexity of using shared libraries + behind a consistent, portable interface.""" + +toolchain = {'name': 'foss', 'version': '2017a'} + +sources = [SOURCELOWER_TAR_GZ] +source_urls = [GNU_SOURCE] + +dependencies = [('M4', '1.4.18')] + +moduleclass = 'lib' diff --git a/l/libtool/libtool-2.4.6-intel-2017.00.eb b/l/libtool/libtool-2.4.6-intel-2017.00.eb new file mode 100644 index 00000000..cdc634aa --- /dev/null +++ b/l/libtool/libtool-2.4.6-intel-2017.00.eb @@ -0,0 +1,17 @@ +easyblock = 'ConfigureMake' + +name = 'libtool' +version = '2.4.6' + +homepage = 'http://www.gnu.org/software/libtool' +description = """GNU libtool is a generic library support script. Libtool hides the complexity of using shared libraries + behind a consistent, portable interface.""" + +toolchain = {'name': 'intel', 'version': '2017.00'} + +sources = [SOURCELOWER_TAR_GZ] +source_urls = [GNU_SOURCE] + +dependencies = [('M4', '1.4.17')] + +moduleclass = 'lib' diff --git a/l/libtool/libtool-2.4.6-intel-2017a.eb b/l/libtool/libtool-2.4.6-intel-2017a.eb new file mode 100644 index 00000000..b76aa734 --- /dev/null +++ b/l/libtool/libtool-2.4.6-intel-2017a.eb @@ -0,0 +1,17 @@ +easyblock = 'ConfigureMake' + +name = 'libtool' +version = '2.4.6' + +homepage = 'http://www.gnu.org/software/libtool' +description = """GNU libtool is a generic library support script. Libtool hides the complexity of using shared libraries + behind a consistent, portable interface.""" + +toolchain = {'name': 'intel', 'version': '2017a'} + +sources = [SOURCELOWER_TAR_GZ] +source_urls = [GNU_SOURCE] + +dependencies = [('M4', '1.4.18')] + +moduleclass = 'lib' diff --git a/l/libunistring/libunistring-0.9.3-foss-2015b.eb b/l/libunistring/libunistring-0.9.3-foss-2015b.eb new file mode 100644 index 00000000..a05b4d80 --- /dev/null +++ b/l/libunistring/libunistring-0.9.3-foss-2015b.eb @@ -0,0 +1,26 @@ +easyblock = 'ConfigureMake' + +name = 'libunistring' +version = '0.9.3' + +homepage = 'http://www.gnu.org/software/libunistring/' +description = """This library provides functions for manipulating Unicode strings and for manipulating C strings + according to the Unicode standard.""" + +toolchain = {'name': 'foss', 'version': '2015b'} + +sources = [SOURCELOWER_TAR_GZ] +source_urls = [GNU_SOURCE] + +patches = ['libunistring_icc_builtin_nan-inf.patch'] + +parallel = 1 + +sanity_check_paths = { + 'files' : ['lib/libunistring.a', 'lib/libunistring.%s' % SHLIB_EXT] + + ['include/uni%s.h' % x for x in ['case', 'conv', 'ctype', 'lbrk', 'name', 'norm', + 'stdio', 'str', 'types', 'wbrk', 'width']], + 'dirs' : ['include/unistring'], +} + +moduleclass = 'lib' diff --git a/l/libunistring/libunistring-0.9.3-foss-2015g.eb b/l/libunistring/libunistring-0.9.3-foss-2015g.eb new file mode 100644 index 00000000..8ea11d78 --- /dev/null +++ b/l/libunistring/libunistring-0.9.3-foss-2015g.eb @@ -0,0 +1,26 @@ +easyblock = 'ConfigureMake' + +name = 'libunistring' +version = '0.9.3' + +homepage = 'http://www.gnu.org/software/libunistring/' +description = """This library provides functions for manipulating Unicode strings and for manipulating C strings + according to the Unicode standard.""" + +toolchain = {'name': 'foss', 'version': '2015g'} + +sources = [SOURCELOWER_TAR_GZ] +source_urls = [GNU_SOURCE] + +patches = ['libunistring_icc_builtin_nan-inf.patch'] + +parallel = 1 + +sanity_check_paths = { + 'files' : ['lib/libunistring.a', 'lib/libunistring.so', 'include/unistring'] + + ['include/uni%s.h' % x for x in ['case', 'conv', 'ctype', 'lbrk', 'name', 'norm', + 'stdio', 'str', 'types', 'wbrk', 'width']], + 'dirs' : [], +} + +moduleclass = 'lib' diff --git a/l/libunistring/libunistring-0.9.3.eb b/l/libunistring/libunistring-0.9.3.eb new file mode 100644 index 00000000..25a62212 --- /dev/null +++ b/l/libunistring/libunistring-0.9.3.eb @@ -0,0 +1,26 @@ +easyblock = 'ConfigureMake' + +name = 'libunistring' +version = '0.9.3' + +homepage = 'http://www.gnu.org/software/libunistring/' +description = """This library provides functions for manipulating Unicode strings and for manipulating C strings + according to the Unicode standard.""" + +toolchain = {'name': 'dummy', 'version': ''} + +sources = [SOURCELOWER_TAR_GZ] +source_urls = [GNU_SOURCE] + +patches = ['libunistring_icc_builtin_nan-inf.patch'] + +parallel = 1 + +sanity_check_paths = { + 'files' : ['lib/libunistring.a', 'lib/libunistring.so'] + + ['include/uni%s.h' % x for x in ['case', 'conv', 'ctype', 'lbrk', 'name', 'norm', + 'stdio', 'str', 'types', 'wbrk', 'width']], + 'dirs' : ['include/unistring'], +} + +moduleclass = 'lib' diff --git a/l/libunwind/libunwind-1.1-GCC-5.4.0-2.26.eb b/l/libunwind/libunwind-1.1-GCC-5.4.0-2.26.eb new file mode 100644 index 00000000..0ae183fa --- /dev/null +++ b/l/libunwind/libunwind-1.1-GCC-5.4.0-2.26.eb @@ -0,0 +1,33 @@ +easyblock = 'ConfigureMake' + +name = 'libunwind' +version = '1.1' + +homepage = 'http://www.nongnu.org/libunwind/' +description = """The primary goal of libunwind is to define a portable and efficient C programming interface + (API) to determine the call-chain of a program. The API additionally provides the means to manipulate the + preserved (callee-saved) state of each call-frame and to resume execution at any point in the call-chain + (non-local goto). The API supports both local (same-process) and remote (across-process) operation. + As such, the API is useful in a number of applications""" + +toolchain = {'name': 'GCC', 'version': '5.4.0-2.26'} + +sources = [SOURCE_TAR_GZ] +source_urls = [GNU_SAVANNAH_SOURCE] + +checksums = [ + 'fb4ea2f6fbbe45bf032cd36e586883ce', # libunwind-1.1.tar.gz +] + +#dependencies = [ +# ('XZ', '5.2.2'), +#] + +#preconfigopts = 'export LIBS="$LIBS -llzma" && ' + +sanity_check_paths = { + 'files': ["include/libunwind.h", "lib/libunwind.%s" % SHLIB_EXT], + 'dirs': [] +} + +moduleclass = 'lib' diff --git a/l/libxc/libxc-2.0.1-goolf-1.4.10.eb b/l/libxc/libxc-2.0.1-goolf-1.4.10.eb new file mode 100644 index 00000000..bd766f2e --- /dev/null +++ b/l/libxc/libxc-2.0.1-goolf-1.4.10.eb @@ -0,0 +1,34 @@ +easyblock = 'ConfigureMake' + +name = 'libxc' +version = '2.0.1' + +homepage = 'http://www.tddft.org/programs/octopus/wiki/index.php/Libxc' +description = """Libxc is a library of exchange-correlation functionals for density-functional theory. + The aim is to provide a portable, well tested and reliable set of exchange and correlation functionals.""" + +sources = [SOURCE_TAR_GZ] +source_urls = ['http://www.tddft.org/programs/octopus/down.php?file=libxc/'] + +toolchain = {'name': 'goolf', 'version': '1.4.10'} +toolchainopts = {'opt': True} + +configopts = 'FC="$F77" FCFLAGS="$FFLAGS" --enable-shared' + +# From the libxc mailing list +# To summarize: expect less tests to fail in libxc 2.0.2, but don't expect +# a fully working testsuite soon (unless someone wants to volunteer to do +# it, of course ) In the meantime, unless the majority of the tests +# fail, your build should be fine. +#runtest = 'check' + +patches = ['libxc-%(version)s-fix-initialization.patch'] + +sanity_check_paths = { + 'files': ['lib/libxc.a', 'lib/libxc.%s' % SHLIB_EXT], + 'dirs': ['include'], +} + +parallel = 1 + +moduleclass = 'chem' diff --git a/l/libxc/libxc-2.0.1-ictce-5.3.0.eb b/l/libxc/libxc-2.0.1-ictce-5.3.0.eb new file mode 100644 index 00000000..f86e8ff9 --- /dev/null +++ b/l/libxc/libxc-2.0.1-ictce-5.3.0.eb @@ -0,0 +1,34 @@ +easyblock = 'ConfigureMake' + +name = 'libxc' +version = '2.0.1' + +homepage = 'http://www.tddft.org/programs/octopus/wiki/index.php/Libxc' +description = """Libxc is a library of exchange-correlation functionals for density-functional theory. + The aim is to provide a portable, well tested and reliable set of exchange and correlation functionals.""" + +sources = [SOURCE_TAR_GZ] +source_urls = ['http://www.tddft.org/programs/octopus/down.php?file=libxc/'] + +toolchain = {'name': 'ictce', 'version': '5.3.0'} +toolchainopts = {'opt': True} + +configopts = 'FC="$F77" FCFLAGS="$FFLAGS" --enable-shared' + +# From the libxc mailing list +# To summarize: expect less tests to fail in libxc 2.0.2, but don't expect +# a fully working testsuite soon (unless someone wants to volunteer to do +# it, of course ) In the meantime, unless the majority of the tests +# fail, your build should be fine. +#runtest = 'check' + +patches = ['libxc-%(version)s-fix-initialization.patch'] + +sanity_check_paths = { + 'files': ['lib/libxc.a', 'lib/libxc.%s' % SHLIB_EXT], + 'dirs': ['include'], +} + +parallel = 1 + +moduleclass = 'chem' diff --git a/l/libxc/libxc-2.0.1-ictce-5.5.0.eb b/l/libxc/libxc-2.0.1-ictce-5.5.0.eb new file mode 100644 index 00000000..4c45b545 --- /dev/null +++ b/l/libxc/libxc-2.0.1-ictce-5.5.0.eb @@ -0,0 +1,32 @@ +easyblock = 'ConfigureMake' + +name = 'libxc' +version = '2.0.1' + +homepage = 'http://www.tddft.org/programs/octopus/wiki/index.php/Libxc' +description = """Libxc is a library of exchange-correlation functionals for density-functional theory. + The aim is to provide a portable, well tested and reliable set of exchange and correlation functionals.""" + +toolchain = {'name': 'ictce', 'version': '5.5.0'} +toolchainopts = {'opt': True} + +sources = [SOURCE_TAR_GZ] +source_urls = ['http://www.tddft.org/programs/octopus/down.php?file=libxc/'] + +configopts = 'FC="$F77" FCFLAGS="$FFLAGS" FCCPP="$F77 -E" --enable-shared' + +# From the libxc mailing list +# To summarize: expect less tests to fail in libxc 2.0.2, but don't expect +# a fully working testsuite soon (unless someone wants to volunteer to do +# it, of course ) In the meantime, unless the majority of the tests +# fail, your build should be fine. +#runtest = 'check' + +sanity_check_paths = { + 'files': ['lib/libxc.a', 'lib/libxc.%s' % SHLIB_EXT], + 'dirs': ['include'], +} + +parallel = 1 + +moduleclass = 'chem' diff --git a/l/libxc/libxc-2.0.1-intel-2014b.eb b/l/libxc/libxc-2.0.1-intel-2014b.eb new file mode 100644 index 00000000..8276d5a0 --- /dev/null +++ b/l/libxc/libxc-2.0.1-intel-2014b.eb @@ -0,0 +1,32 @@ +easyblock = 'ConfigureMake' + +name = 'libxc' +version = '2.0.1' + +homepage = 'http://www.tddft.org/programs/octopus/wiki/index.php/Libxc' +description = """Libxc is a library of exchange-correlation functionals for density-functional theory. + The aim is to provide a portable, well tested and reliable set of exchange and correlation functionals.""" + +toolchain = {'name': 'intel', 'version': '2014b'} +toolchainopts = {'opt': True} + +sources = [SOURCE_TAR_GZ] +source_urls = ['http://www.tddft.org/programs/octopus/down.php?file=libxc/'] + +configopts = 'FC="$F77" FCFLAGS="$FFLAGS" FCCPP="$F77 -E" --enable-shared' + +# From the libxc mailing list +# To summarize: expect less tests to fail in libxc 2.0.2, but don't expect +# a fully working testsuite soon (unless someone wants to volunteer to do +# it, of course ) In the meantime, unless the majority of the tests +# fail, your build should be fine. +#runtest = 'check' + +sanity_check_paths = { + 'files': ['lib/libxc.a', 'lib/libxc.%s' % SHLIB_EXT], + 'dirs': ['include'], +} + +parallel = 1 + +moduleclass = 'chem' diff --git a/l/libxc/libxc-2.0.2-goolf-1.4.10.eb b/l/libxc/libxc-2.0.2-goolf-1.4.10.eb new file mode 100644 index 00000000..0bf711ca --- /dev/null +++ b/l/libxc/libxc-2.0.2-goolf-1.4.10.eb @@ -0,0 +1,32 @@ +easyblock = 'ConfigureMake' + +name = 'libxc' +version = '2.0.2' + +homepage = 'http://www.tddft.org/programs/octopus/wiki/index.php/Libxc' +description = """Libxc is a library of exchange-correlation functionals for density-functional theory. + The aim is to provide a portable, well tested and reliable set of exchange and correlation functionals.""" + +sources = [SOURCE_TAR_GZ] +source_urls = ['http://www.tddft.org/programs/octopus/down.php?file=libxc/'] + +toolchain = {'name': 'goolf', 'version': '1.4.10'} +toolchainopts = {'opt': True} + +configopts = 'FC="$F77" FCFLAGS="$FFLAGS" FCCPP="/lib/cpp -ansi" --enable-shared' + +# From the libxc mailing list +# To summarize: expect less tests to fail in libxc 2.0.2, but don't expect +# a fully working testsuite soon (unless someone wants to volunteer to do +# it, of course ) In the meantime, unless the majority of the tests +# fail, your build should be fine. +#runtest = 'check' + +sanity_check_paths = { + 'files': ['lib/libxc.a', 'lib/libxc.%s' % SHLIB_EXT], + 'dirs': ['include'], +} + +parallel = 1 + +moduleclass = 'chem' diff --git a/l/libxc/libxc-2.0.2-ictce-5.3.0.eb b/l/libxc/libxc-2.0.2-ictce-5.3.0.eb new file mode 100644 index 00000000..e6561d3e --- /dev/null +++ b/l/libxc/libxc-2.0.2-ictce-5.3.0.eb @@ -0,0 +1,32 @@ +easyblock = 'ConfigureMake' + +name = 'libxc' +version = '2.0.2' + +homepage = 'http://www.tddft.org/programs/octopus/wiki/index.php/Libxc' +description = """Libxc is a library of exchange-correlation functionals for density-functional theory. + The aim is to provide a portable, well tested and reliable set of exchange and correlation functionals.""" + +sources = [SOURCE_TAR_GZ] +source_urls = ['http://www.tddft.org/programs/octopus/down.php?file=libxc/'] + +toolchain = {'name': 'ictce', 'version': '5.3.0'} +toolchainopts = {'opt': True} + +configopts = 'FC="$F77" FCFLAGS="$FFLAGS" --enable-shared --enable-fortran' + +# From the libxc mailing list +# To summarize: expect less tests to fail in libxc 2.0.2, but don't expect +# a fully working testsuite soon (unless someone wants to volunteer to do +# it, of course ) In the meantime, unless the majority of the tests +# fail, your build should be fine. +#runtest = 'check' + +sanity_check_paths = { + 'files': ['lib/libxc.a', 'lib/libxc.%s' % SHLIB_EXT], + 'dirs': ['include'], +} + +parallel = 1 + +moduleclass = 'chem' diff --git a/l/libxc/libxc-2.0.3-goolf-1.4.10.eb b/l/libxc/libxc-2.0.3-goolf-1.4.10.eb new file mode 100644 index 00000000..c631b87e --- /dev/null +++ b/l/libxc/libxc-2.0.3-goolf-1.4.10.eb @@ -0,0 +1,32 @@ +easyblock = 'ConfigureMake' + +name = 'libxc' +version = '2.0.3' + +homepage = 'http://www.tddft.org/programs/octopus/wiki/index.php/Libxc' +description = """Libxc is a library of exchange-correlation functionals for density-functional theory. + The aim is to provide a portable, well tested and reliable set of exchange and correlation functionals.""" + +sources = [SOURCE_TAR_GZ] +source_urls = ['http://www.tddft.org/programs/octopus/down.php?file=libxc/'] + +toolchain = {'name': 'goolf', 'version': '1.4.10'} +toolchainopts = {'opt': True} + +configopts = 'FC="$F77" FCFLAGS="$FFLAGS" FCCPP="/lib/cpp -ansi" --enable-shared' + +# From the libxc mailing list +# To summarize: expect less tests to fail in libxc 2.0.2, but don't expect +# a fully working testsuite soon (unless someone wants to volunteer to do +# it, of course ) In the meantime, unless the majority of the tests +# fail, your build should be fine. +#runtest = 'check' + +sanity_check_paths = { + 'files': ['lib/libxc.a', 'lib/libxc.%s' % SHLIB_EXT], + 'dirs': ['include'], +} + +parallel = 1 + +moduleclass = 'chem' diff --git a/l/libxc/libxc-2.2.0-goolf-1.5.16.eb b/l/libxc/libxc-2.2.0-goolf-1.5.16.eb new file mode 100644 index 00000000..c04ff302 --- /dev/null +++ b/l/libxc/libxc-2.2.0-goolf-1.5.16.eb @@ -0,0 +1,32 @@ +easyblock = 'ConfigureMake' + +name = 'libxc' +version = '2.2.0' + +homepage = 'http://www.tddft.org/programs/octopus/wiki/index.php/Libxc' +description = """Libxc is a library of exchange-correlation functionals for density-functional theory. + The aim is to provide a portable, well tested and reliable set of exchange and correlation functionals.""" + +toolchain = {'name': 'goolf', 'version': '1.5.16'} +toolchainopts = {'opt': True} + +sources = [SOURCE_TAR_GZ] +source_urls = ['http://www.tddft.org/programs/octopus/down.php?file=libxc/'] + +configopts = 'FC="$F77" FCFLAGS="$FFLAGS" --enable-shared' + +# From the libxc mailing list +# To summarize: expect less tests to fail in libxc 2.0.2, but don't expect +# a fully working testsuite soon (unless someone wants to volunteer to do +# it, of course ) In the meantime, unless the majority of the tests +# fail, your build should be fine. +#runtest = 'check' + +sanity_check_paths = { + 'files': ['lib/libxc.a', 'lib/libxc.so'], + 'dirs': ['include'], +} + +parallel = 1 + +moduleclass = 'chem' diff --git a/l/libxc/libxc-2.2.0-ictce-5.5.0.eb b/l/libxc/libxc-2.2.0-ictce-5.5.0.eb new file mode 100644 index 00000000..9b9c81ae --- /dev/null +++ b/l/libxc/libxc-2.2.0-ictce-5.5.0.eb @@ -0,0 +1,32 @@ +easyblock = 'ConfigureMake' + +name = 'libxc' +version = '2.2.0' + +homepage = 'http://www.tddft.org/programs/octopus/wiki/index.php/Libxc' +description = """Libxc is a library of exchange-correlation functionals for density-functional theory. + The aim is to provide a portable, well tested and reliable set of exchange and correlation functionals.""" + +toolchain = {'name': 'ictce', 'version': '5.5.0'} +toolchainopts = {'opt': True} + +sources = [SOURCE_TAR_GZ] +source_urls = ['http://www.tddft.org/programs/octopus/down.php?file=libxc/'] + +configopts = 'FC="$F77" FCFLAGS="$FFLAGS" --enable-shared' + +# From the libxc mailing list +# To summarize: expect less tests to fail in libxc 2.0.2, but don't expect +# a fully working testsuite soon (unless someone wants to volunteer to do +# it, of course ) In the meantime, unless the majority of the tests +# fail, your build should be fine. +#runtest = 'check' + +sanity_check_paths = { + 'files': ['lib/libxc.a', 'lib/libxc.so'], + 'dirs': ['include'], +} + +parallel = 1 + +moduleclass = 'chem' diff --git a/l/libxc/libxc-2.2.0-intel-2014b.eb b/l/libxc/libxc-2.2.0-intel-2014b.eb new file mode 100644 index 00000000..3bee3b3d --- /dev/null +++ b/l/libxc/libxc-2.2.0-intel-2014b.eb @@ -0,0 +1,32 @@ +easyblock = 'ConfigureMake' + +name = 'libxc' +version = '2.2.0' + +homepage = 'http://www.tddft.org/programs/octopus/wiki/index.php/Libxc' +description = """Libxc is a library of exchange-correlation functionals for density-functional theory. + The aim is to provide a portable, well tested and reliable set of exchange and correlation functionals.""" + +toolchain = {'name': 'intel', 'version': '2014b'} +toolchainopts = {'opt': True} + +sources = [SOURCE_TAR_GZ] +source_urls = ['http://www.tddft.org/programs/octopus/down.php?file=libxc/'] + +configopts = 'FC="$F77" FCFLAGS="$FFLAGS" --enable-shared' + +# From the libxc mailing list +# To summarize: expect less tests to fail in libxc 2.0.2, but don't expect +# a fully working testsuite soon (unless someone wants to volunteer to do +# it, of course ) In the meantime, unless the majority of the tests +# fail, your build should be fine. +#runtest = 'check' + +sanity_check_paths = { + 'files': ['lib/libxc.a', 'lib/libxc.%s' % SHLIB_EXT], + 'dirs': ['include'], +} + +parallel = 1 + +moduleclass = 'chem' diff --git a/l/libxc/libxc-2.2.1-CrayGNU-2015.06.eb b/l/libxc/libxc-2.2.1-CrayGNU-2015.06.eb new file mode 100644 index 00000000..d9d2ff8c --- /dev/null +++ b/l/libxc/libxc-2.2.1-CrayGNU-2015.06.eb @@ -0,0 +1,32 @@ +easyblock = 'ConfigureMake' + +name = 'libxc' +version = '2.2.1' + +homepage = 'http://www.tddft.org/programs/octopus/wiki/index.php/Libxc' +description = """Libxc is a library of exchange-correlation functionals for density-functional theory. + The aim is to provide a portable, well tested and reliable set of exchange and correlation functionals.""" + +toolchain = {'name': 'CrayGNU', 'version': '2015.06'} +toolchainopts = {'opt': True} + +sources = [SOURCE_TAR_GZ] +source_urls = ['http://www.tddft.org/programs/octopus/down.php?file=libxc/'] + +configopts = 'FC="$F77" FCFLAGS="$FFLAGS"' + +# From the libxc mailing list +# To summarize: expect less tests to fail in libxc 2.0.2, but don't expect +# a fully working testsuite soon (unless someone wants to volunteer to do +# it, of course ) In the meantime, unless the majority of the tests +# fail, your build should be fine. +#runtest = 'check' + +sanity_check_paths = { + 'files': ['lib/libxc.a'], + 'dirs': ['include'], +} + +parallel = 1 + +moduleclass = 'chem' diff --git a/l/libxc/libxc-2.2.1-CrayGNU-2015.11.eb b/l/libxc/libxc-2.2.1-CrayGNU-2015.11.eb new file mode 100644 index 00000000..254367ce --- /dev/null +++ b/l/libxc/libxc-2.2.1-CrayGNU-2015.11.eb @@ -0,0 +1,32 @@ +easyblock = 'ConfigureMake' + +name = 'libxc' +version = '2.2.1' + +homepage = 'http://www.tddft.org/programs/octopus/wiki/index.php/Libxc' +description = """Libxc is a library of exchange-correlation functionals for density-functional theory. + The aim is to provide a portable, well tested and reliable set of exchange and correlation functionals.""" + +toolchain = {'name': 'CrayGNU', 'version': '2015.11'} +toolchainopts = {'opt': True} + +sources = [SOURCE_TAR_GZ] +source_urls = ['http://www.tddft.org/programs/octopus/down.php?file=libxc/'] + +configopts = 'FC="$F77" FCFLAGS="$FFLAGS"' + +# From the libxc mailing list +# To summarize: expect less tests to fail in libxc 2.0.2, but don't expect +# a fully working testsuite soon (unless someone wants to volunteer to do +# it, of course ) In the meantime, unless the majority of the tests +# fail, your build should be fine. +#runtest = 'check' + +sanity_check_paths = { + 'files': ['lib/libxc.a'], + 'dirs': ['include'], +} + +parallel = 1 + +moduleclass = 'chem' diff --git a/l/libxc/libxc-2.2.1-intel-2015a.eb b/l/libxc/libxc-2.2.1-intel-2015a.eb new file mode 100644 index 00000000..13f7f941 --- /dev/null +++ b/l/libxc/libxc-2.2.1-intel-2015a.eb @@ -0,0 +1,32 @@ +easyblock = 'ConfigureMake' + +name = 'libxc' +version = '2.2.1' + +homepage = 'http://www.tddft.org/programs/octopus/wiki/index.php/Libxc' +description = """Libxc is a library of exchange-correlation functionals for density-functional theory. + The aim is to provide a portable, well tested and reliable set of exchange and correlation functionals.""" + +toolchain = {'name': 'intel', 'version': '2015a'} +toolchainopts = {'opt': True} + +sources = [SOURCE_TAR_GZ] +source_urls = ['http://www.tddft.org/programs/octopus/down.php?file=libxc/'] + +configopts = 'FC="$F77" FCFLAGS="$FFLAGS" --enable-shared' + +# From the libxc mailing list +# To summarize: expect less tests to fail in libxc 2.0.2, but don't expect +# a fully working testsuite soon (unless someone wants to volunteer to do +# it, of course ) In the meantime, unless the majority of the tests +# fail, your build should be fine. +#runtest = 'check' + +sanity_check_paths = { + 'files': ['lib/libxc.a', 'lib/libxc.%s' % SHLIB_EXT], + 'dirs': ['include'], +} + +parallel = 1 + +moduleclass = 'chem' diff --git a/l/libxc/libxc-2.2.2-CrayGNU-2015.11.eb b/l/libxc/libxc-2.2.2-CrayGNU-2015.11.eb new file mode 100644 index 00000000..ae74d150 --- /dev/null +++ b/l/libxc/libxc-2.2.2-CrayGNU-2015.11.eb @@ -0,0 +1,33 @@ +# contributed by Luca Marsella (CSCS) +easyblock = 'ConfigureMake' + +name = 'libxc' +version = '2.2.2' + +homepage = 'http://www.tddft.org/programs/octopus/wiki/index.php/Libxc' +description = """Libxc is a library of exchange-correlation functionals for density-functional theory. + The aim is to provide a portable, well tested and reliable set of exchange and correlation functionals.""" + +toolchain = {'name': 'CrayGNU', 'version': '2015.11'} +toolchainopts = {'opt': True} + +sources = [SOURCE_TAR_GZ] +source_urls = ['http://www.tddft.org/programs/octopus/down.php?file=libxc/'] + +configopts = 'FC="$F77" FCFLAGS="$FFLAGS" --enable-shared' + +# From the libxc mailing list +# To summarize: expect less tests to fail in libxc 2.0.2, but don't expect +# a fully working testsuite soon (unless someone wants to volunteer to do +# it, of course ) In the meantime, unless the majority of the tests +# fail, your build should be fine. +#runtest = 'check' + +sanity_check_paths = { + 'files': ['lib/libxc.a', 'lib/libxc.so'], + 'dirs': ['include'], +} + +parallel = 1 + +moduleclass = 'chem' diff --git a/l/libxc/libxc-2.2.2-foss-2015b.eb b/l/libxc/libxc-2.2.2-foss-2015b.eb new file mode 100644 index 00000000..b029d795 --- /dev/null +++ b/l/libxc/libxc-2.2.2-foss-2015b.eb @@ -0,0 +1,32 @@ +easyblock = 'ConfigureMake' + +name = 'libxc' +version = '2.2.2' + +homepage = 'http://www.tddft.org/programs/octopus/wiki/index.php/Libxc' +description = """Libxc is a library of exchange-correlation functionals for density-functional theory. + The aim is to provide a portable, well tested and reliable set of exchange and correlation functionals.""" + +toolchain = {'name': 'foss', 'version': '2015b'} +toolchainopts = {'opt': True} + +sources = [SOURCE_TAR_GZ] +source_urls = ['http://www.tddft.org/programs/octopus/down.php?file=libxc/'] + +configopts = 'FC="$F77" FCFLAGS="$FFLAGS" --enable-shared' + +# From the libxc mailing list +# To summarize: expect less tests to fail in libxc 2.0.2, but don't expect +# a fully working testsuite soon (unless someone wants to volunteer to do +# it, of course ) In the meantime, unless the majority of the tests +# fail, your build should be fine. +#runtest = 'check' + +sanity_check_paths = { + 'files': ['lib/libxc.a', 'lib/libxc.%s' % SHLIB_EXT], + 'dirs': ['include'], +} + +parallel = 1 + +moduleclass = 'chem' diff --git a/l/libxc/libxc-2.2.2-intel-2015a.eb b/l/libxc/libxc-2.2.2-intel-2015a.eb new file mode 100644 index 00000000..7590c866 --- /dev/null +++ b/l/libxc/libxc-2.2.2-intel-2015a.eb @@ -0,0 +1,32 @@ +easyblock = 'ConfigureMake' + +name = 'libxc' +version = '2.2.2' + +homepage = 'http://www.tddft.org/programs/octopus/wiki/index.php/Libxc' +description = """Libxc is a library of exchange-correlation functionals for density-functional theory. + The aim is to provide a portable, well tested and reliable set of exchange and correlation functionals.""" + +toolchain = {'name': 'intel', 'version': '2015a'} +toolchainopts = {'opt': True} + +sources = [SOURCE_TAR_GZ] +source_urls = ['http://www.tddft.org/programs/octopus/down.php?file=libxc/'] + +configopts = 'FC="$F77" FCFLAGS="$FFLAGS" --enable-shared' + +# From the libxc mailing list +# To summarize: expect less tests to fail in libxc 2.0.2, but don't expect +# a fully working testsuite soon (unless someone wants to volunteer to do +# it, of course ) In the meantime, unless the majority of the tests +# fail, your build should be fine. +#runtest = 'check' + +sanity_check_paths = { + 'files': ['lib/libxc.a', 'lib/libxc.%s' % SHLIB_EXT], + 'dirs': ['include'], +} + +parallel = 1 + +moduleclass = 'chem' diff --git a/l/libxc/libxc-2.2.2-intel-2015b.eb b/l/libxc/libxc-2.2.2-intel-2015b.eb new file mode 100644 index 00000000..96aab1d1 --- /dev/null +++ b/l/libxc/libxc-2.2.2-intel-2015b.eb @@ -0,0 +1,32 @@ +easyblock = 'ConfigureMake' + +name = 'libxc' +version = '2.2.2' + +homepage = 'http://www.tddft.org/programs/octopus/wiki/index.php/Libxc' +description = """Libxc is a library of exchange-correlation functionals for density-functional theory. + The aim is to provide a portable, well tested and reliable set of exchange and correlation functionals.""" + +toolchain = {'name': 'intel', 'version': '2015b'} +toolchainopts = {'opt': True} + +sources = [SOURCE_TAR_GZ] +source_urls = ['http://www.tddft.org/programs/octopus/down.php?file=libxc/'] + +configopts = 'FC="$F77" FCFLAGS="$FFLAGS" --enable-shared' + +# From the libxc mailing list +# To summarize: expect less tests to fail in libxc 2.0.2, but don't expect +# a fully working testsuite soon (unless someone wants to volunteer to do +# it, of course ) In the meantime, unless the majority of the tests +# fail, your build should be fine. +#runtest = 'check' + +sanity_check_paths = { + 'files': ['lib/libxc.a', 'lib/libxc.%s' % SHLIB_EXT], + 'dirs': ['include'], +} + +parallel = 1 + +moduleclass = 'chem' diff --git a/l/libxc/libxc-2.2.3-foss-2016b.eb b/l/libxc/libxc-2.2.3-foss-2016b.eb new file mode 100644 index 00000000..96902893 --- /dev/null +++ b/l/libxc/libxc-2.2.3-foss-2016b.eb @@ -0,0 +1,31 @@ +easyblock = 'ConfigureMake' + +name = 'libxc' +version = '2.2.3' + +homepage = 'http://www.tddft.org/programs/octopus/wiki/index.php/Libxc' +description = """Libxc is a library of exchange-correlation functionals for density-functional theory. + The aim is to provide a portable, well tested and reliable set of exchange and correlation functionals.""" + +toolchain = {'name': 'foss', 'version': '2016b'} + +sources = [SOURCE_TAR_GZ] +source_urls = ['http://www.tddft.org/programs/octopus/down.php?file=libxc/'] + +configopts = 'FC="$F77" FCFLAGS="$FFLAGS" --enable-shared --enable-fortran' + +# From the libxc mailing list +# To summarize: expect less tests to fail in libxc 2.0.2, but don't expect +# a fully working testsuite soon (unless someone wants to volunteer to do +# it, of course ) In the meantime, unless the majority of the tests +# fail, your build should be fine. +#runtest = 'check' + +sanity_check_paths = { + 'files': ['lib/libxc%s.%s' % (x,y) for x in ['', 'f90'] for y in ['a', SHLIB_EXT]], + 'dirs': ['include'], +} + +parallel = 1 + +moduleclass = 'chem' diff --git a/l/libxc/libxc-2.2.3-intel-2016a.eb b/l/libxc/libxc-2.2.3-intel-2016a.eb new file mode 100644 index 00000000..4f8d72a6 --- /dev/null +++ b/l/libxc/libxc-2.2.3-intel-2016a.eb @@ -0,0 +1,31 @@ +easyblock = 'ConfigureMake' + +name = 'libxc' +version = '2.2.3' + +homepage = 'http://www.tddft.org/programs/octopus/wiki/index.php/Libxc' +description = """Libxc is a library of exchange-correlation functionals for density-functional theory. + The aim is to provide a portable, well tested and reliable set of exchange and correlation functionals.""" + +toolchain = {'name': 'intel', 'version': '2016a'} + +sources = [SOURCE_TAR_GZ] +source_urls = ['http://www.tddft.org/programs/octopus/down.php?file=libxc/'] + +configopts = 'FC="$F77" FCFLAGS="$FFLAGS" --enable-shared --enable-fortran' + +# From the libxc mailing list +# To summarize: expect less tests to fail in libxc 2.0.2, but don't expect +# a fully working testsuite soon (unless someone wants to volunteer to do +# it, of course ) In the meantime, unless the majority of the tests +# fail, your build should be fine. +#runtest = 'check' + +sanity_check_paths = { + 'files': ['lib/libxc%s.%s' % (x,y) for x in ['', 'f90'] for y in ['a', SHLIB_EXT]], + 'dirs': ['include'], +} + +parallel = 1 + +moduleclass = 'chem' diff --git a/l/libxc/libxc-2.2.3-intel-2016b.eb b/l/libxc/libxc-2.2.3-intel-2016b.eb new file mode 100644 index 00000000..a8378f30 --- /dev/null +++ b/l/libxc/libxc-2.2.3-intel-2016b.eb @@ -0,0 +1,31 @@ +easyblock = 'ConfigureMake' + +name = 'libxc' +version = '2.2.3' + +homepage = 'http://www.tddft.org/programs/octopus/wiki/index.php/Libxc' +description = """Libxc is a library of exchange-correlation functionals for density-functional theory. + The aim is to provide a portable, well tested and reliable set of exchange and correlation functionals.""" + +toolchain = {'name': 'intel', 'version': '2016b'} + +sources = [SOURCE_TAR_GZ] +source_urls = ['http://www.tddft.org/programs/octopus/down.php?file=libxc/'] + +configopts = 'FC="$F77" FCFLAGS="$FFLAGS" --enable-shared --enable-fortran' + +# From the libxc mailing list +# To summarize: expect less tests to fail in libxc 2.0.2, but don't expect +# a fully working testsuite soon (unless someone wants to volunteer to do +# it, of course ) In the meantime, unless the majority of the tests +# fail, your build should be fine. +#runtest = 'check' + +sanity_check_paths = { + 'files': ['lib/libxc%s.%s' % (x,y) for x in ['', 'f90'] for y in ['a', SHLIB_EXT]], + 'dirs': ['include'], +} + +parallel = 1 + +moduleclass = 'chem' diff --git a/l/libxc/libxc-3.0.0-intel-2016a.eb b/l/libxc/libxc-3.0.0-intel-2016a.eb new file mode 100644 index 00000000..fd83352b --- /dev/null +++ b/l/libxc/libxc-3.0.0-intel-2016a.eb @@ -0,0 +1,31 @@ +easyblock = 'ConfigureMake' + +name = 'libxc' +version = '3.0.0' + +homepage = 'http://www.tddft.org/programs/octopus/wiki/index.php/Libxc' +description = """Libxc is a library of exchange-correlation functionals for density-functional theory. + The aim is to provide a portable, well tested and reliable set of exchange and correlation functionals.""" + +toolchain = {'name': 'intel', 'version': '2016a'} + +sources = [SOURCE_TAR_GZ] +source_urls = ['http://www.tddft.org/programs/octopus/down.php?file=libxc/'] + +configopts = 'FC="$F77" FCFLAGS="$FFLAGS" --enable-shared --enable-fortran' + +# From the libxc mailing list +# To summarize: expect less tests to fail in libxc 2.0.2, but don't expect +# a fully working testsuite soon (unless someone wants to volunteer to do +# it, of course ) In the meantime, unless the majority of the tests +# fail, your build should be fine. +#runtest = 'check' + +sanity_check_paths = { + 'files': ['lib/libxc%s.%s' % (x,y) for x in ['', 'f90'] for y in ['a', SHLIB_EXT]], + 'dirs': ['include'], +} + +parallel = 1 + +moduleclass = 'chem' diff --git a/l/libxc/libxc-3.0.0-intel-2016b.eb b/l/libxc/libxc-3.0.0-intel-2016b.eb new file mode 100644 index 00000000..951b7f06 --- /dev/null +++ b/l/libxc/libxc-3.0.0-intel-2016b.eb @@ -0,0 +1,31 @@ +easyblock = 'ConfigureMake' + +name = 'libxc' +version = '3.0.0' + +homepage = 'http://www.tddft.org/programs/octopus/wiki/index.php/Libxc' +description = """Libxc is a library of exchange-correlation functionals for density-functional theory. + The aim is to provide a portable, well tested and reliable set of exchange and correlation functionals.""" + +toolchain = {'name': 'intel', 'version': '2016b'} + +sources = [SOURCE_TAR_GZ] +source_urls = ['http://www.tddft.org/programs/octopus/down.php?file=libxc/'] + +configopts = 'FC="$F77" FCFLAGS="$FFLAGS" --enable-shared --enable-fortran' + +# From the libxc mailing list +# To summarize: expect less tests to fail in libxc 2.0.2, but don't expect +# a fully working testsuite soon (unless someone wants to volunteer to do +# it, of course ) In the meantime, unless the majority of the tests +# fail, your build should be fine. +#runtest = 'check' + +sanity_check_paths = { + 'files': ['lib/libxc%s.%s' % (x,y) for x in ['', 'f90'] for y in ['a', SHLIB_EXT]], + 'dirs': ['include'], +} + +parallel = 1 + +moduleclass = 'chem' diff --git a/l/libxcb/libxcb-1.10-foss-2014b-Python-2.7.8.eb b/l/libxcb/libxcb-1.10-foss-2014b-Python-2.7.8.eb new file mode 100644 index 00000000..6921c06b --- /dev/null +++ b/l/libxcb/libxcb-1.10-foss-2014b-Python-2.7.8.eb @@ -0,0 +1,36 @@ +easyblock = 'ConfigureMake' + +name = 'libxcb' +version = '1.10' + +homepage = 'http://xcb.freedesktop.org/' +description = """The X protocol C-language Binding (XCB) is a replacement for Xlib featuring a small footprint, +latency hiding, direct access to the protocol, improved threading support, and extensibility.""" + +toolchain = {'name': 'foss', 'version': '2014b'} + +source_urls = ['http://xcb.freedesktop.org/dist/'] +sources = [SOURCELOWER_TAR_GZ] + +python = 'Python' +pyver = '2.7.8' +versionsuffix = '-%s-%s' % (python, pyver) + +dependencies = [ + (python, pyver), + ('xcb-proto', '1.10', versionsuffix), + ('libXau', '1.0.8'), + ('libpthread-stubs', '0.3'), +] + +#preconfigopts = "rm -r aclocal.m4 configure Makefile.in ltmain.sh && ./autogen.sh && " + +sanity_check_paths = { + 'files': ['lib/libxcb%s.a' % x for x in ['', '-composite', '-damage', '-dpms', '-dri2', '-glx', + '-randr', '-record', '-render', '-res', '-screensaver', + '-shape', '-shm', '-sync', '-xevie', '-xf86dri', '-xfixes', + '-xinerama', '-xprint', '-xtest', '-xv', '-xvmc']], + 'dirs': ['include/xcb', 'lib/pkgconfig'], +} + +moduleclass = 'lib' diff --git a/l/libxcb/libxcb-1.11-intel-2015b-Python-2.7.9.eb b/l/libxcb/libxcb-1.11-intel-2015b-Python-2.7.9.eb new file mode 100644 index 00000000..5d3e8092 --- /dev/null +++ b/l/libxcb/libxcb-1.11-intel-2015b-Python-2.7.9.eb @@ -0,0 +1,34 @@ +easyblock = 'ConfigureMake' + +name = 'libxcb' +version = '1.11' + +homepage = 'http://xcb.freedesktop.org/' +description = """The X protocol C-language Binding (XCB) is a replacement for Xlib featuring a small footprint, +latency hiding, direct access to the protocol, improved threading support, and extensibility.""" + +toolchain = {'name': 'intel', 'version': '2015b'} + +source_urls = ['http://xcb.freedesktop.org/dist/'] +sources = [SOURCELOWER_TAR_GZ] + +python = 'Python' +pyver = '2.7.9' +versionsuffix = '-%s-%s' % (python, pyver) + +dependencies = [ + (python, pyver), + ('xcb-proto', '1.11', versionsuffix), + ('libXau', '1.0.8'), + ('libpthread-stubs', '0.3'), +] + +sanity_check_paths = { + 'files' : ['lib/libxcb%s.a' % x for x in ["", "-composite", "-damage", "-dpms", "-dri2", "-glx", + "-randr", "-record", "-render", "-res", "-screensaver", + "-shape", "-shm", "-sync", "-xevie", "-xf86dri", "-xfixes", + "-xinerama", "-xprint", "-xtest", "-xv", "-xvmc"]], + 'dirs': ['include/xcb', 'lib/pkgconfig'], +} + +moduleclass = 'lib' diff --git a/l/libxcb/libxcb-1.11.1-foss-2016a.eb b/l/libxcb/libxcb-1.11.1-foss-2016a.eb new file mode 100644 index 00000000..fa27444b --- /dev/null +++ b/l/libxcb/libxcb-1.11.1-foss-2016a.eb @@ -0,0 +1,34 @@ +easyblock = 'ConfigureMake' + +name = 'libxcb' +version = '1.11.1' + +homepage = 'http://xcb.freedesktop.org/' +description = """The X protocol C-language Binding (XCB) is a replacement for Xlib featuring a small footprint, +latency hiding, direct access to the protocol, improved threading support, and extensibility.""" + +toolchain = {'name': 'foss', 'version': '2016a'} + +source_urls = ['http://xcb.freedesktop.org/dist/'] +sources = [SOURCELOWER_TAR_GZ] + +builddependencies = [ + ('pkg-config', '0.29'), + ('xcb-proto', '1.11', '', True), + ('xproto', '7.0.28'), + ('libpthread-stubs', '0.3'), +] +dependencies = [ + ('libXau', '1.0.8'), + ('libXdmcp', '1.1.2'), +] + +sanity_check_paths = { + 'files': ['lib/libxcb%s.a' % x for x in ['', '-composite', '-damage', '-dpms', '-dri2', '-glx', + '-randr', '-record', '-render', '-res', '-screensaver', + '-shape', '-shm', '-sync', '-xevie', '-xf86dri', '-xfixes', + '-xinerama', '-xprint', '-xtest', '-xv', '-xvmc']], + 'dirs': ['include/xcb', 'lib/pkgconfig'], +} + +moduleclass = 'lib' diff --git a/l/libxcb/libxcb-1.11.1-intel-2016a.eb b/l/libxcb/libxcb-1.11.1-intel-2016a.eb new file mode 100644 index 00000000..098e8569 --- /dev/null +++ b/l/libxcb/libxcb-1.11.1-intel-2016a.eb @@ -0,0 +1,33 @@ +easyblock = 'ConfigureMake' + +name = 'libxcb' +version = '1.11.1' + +homepage = 'http://xcb.freedesktop.org/' +description = """The X protocol C-language Binding (XCB) is a replacement for Xlib featuring a small footprint, +latency hiding, direct access to the protocol, improved threading support, and extensibility.""" + +toolchain = {'name': 'intel', 'version': '2016a'} + +source_urls = ['http://xcb.freedesktop.org/dist/'] +sources = [SOURCELOWER_TAR_GZ] + +builddependencies = [ + ('xcb-proto', '1.11', '', True), + ('xproto', '7.0.28'), + ('libpthread-stubs', '0.3'), +] +dependencies = [ + ('libXau', '1.0.8'), + ('libXdmcp', '1.1.2'), +] + +sanity_check_paths = { + 'files': ['lib/libxcb%s.a' % x for x in ['', '-composite', '-damage', '-dpms', '-dri2', '-glx', + '-randr', '-record', '-render', '-res', '-screensaver', + '-shape', '-shm', '-sync', '-xevie', '-xf86dri', '-xfixes', + '-xinerama', '-xprint', '-xtest', '-xv', '-xvmc']], + 'dirs': ['include/xcb', 'lib/pkgconfig'], +} + +moduleclass = 'lib' diff --git a/l/libxkbcommon/libxkbcommon-0.6.1-foss-2016a.eb b/l/libxkbcommon/libxkbcommon-0.6.1-foss-2016a.eb new file mode 100644 index 00000000..5f450a09 --- /dev/null +++ b/l/libxkbcommon/libxkbcommon-0.6.1-foss-2016a.eb @@ -0,0 +1,32 @@ +easyblock = 'ConfigureMake' + +name = 'libxkbcommon' +version = '0.6.1' + +homepage = 'http://xkbcommon.org/' +description = """xkbcommon is a library to handle keyboard descriptions, + including loading them from disk, parsing them and handling their state. + It's mainly meant for client toolkits, window systems, + and other system applications.""" + +toolchain = {'name': 'foss', 'version': '2016a'} + +source_urls = ['http://xkbcommon.org/download/'] +sources = [SOURCELOWER_TAR_XZ] + +dependencies = [ + ('libxcb', '1.11.1'), + ('XKeyboardConfig', '2.17'), +] + +builddependencies = [ + ('flex', '2.6.0'), + ('Bison', '3.0.4'), +] + +sanity_check_paths = { + 'files': ['lib/libxkbcommon%s.so' % x for x in ['', '-x11']], + 'dirs': [] +} + +moduleclass = 'devel' diff --git a/l/libxkbcommon/libxkbcommon-0.6.1-intel-2016a.eb b/l/libxkbcommon/libxkbcommon-0.6.1-intel-2016a.eb new file mode 100644 index 00000000..8611f033 --- /dev/null +++ b/l/libxkbcommon/libxkbcommon-0.6.1-intel-2016a.eb @@ -0,0 +1,32 @@ +easyblock = 'ConfigureMake' + +name = 'libxkbcommon' +version = '0.6.1' + +homepage = 'http://xkbcommon.org/' +description = """xkbcommon is a library to handle keyboard descriptions, + including loading them from disk, parsing them and handling their state. + It's mainly meant for client toolkits, window systems, + and other system applications.""" + +toolchain = {'name': 'intel', 'version': '2016a'} + +source_urls = ['http://xkbcommon.org/download/'] +sources = [SOURCELOWER_TAR_XZ] + +dependencies = [ + ('libxcb', '1.11.1'), + ('XKeyboardConfig', '2.17'), +] + +builddependencies = [ + ('flex', '2.6.0'), + ('Bison', '3.0.4'), +] + +sanity_check_paths = { + 'files': ['lib/libxkbcommon%s.so' % x for x in ['', '-x11']], + 'dirs': [] +} + +moduleclass = 'devel' diff --git a/l/libxml2/libxml2-2.8.0-goalf-1.1.0-no-OFED-Python-2.7.3.eb b/l/libxml2/libxml2-2.8.0-goalf-1.1.0-no-OFED-Python-2.7.3.eb new file mode 100644 index 00000000..e98bac60 --- /dev/null +++ b/l/libxml2/libxml2-2.8.0-goalf-1.1.0-no-OFED-Python-2.7.3.eb @@ -0,0 +1,33 @@ +name = 'libxml2' +version = '2.8.0' + +homepage = 'http://xmlsoft.org/' +description = """Libxml2 is the XML C parser and toolchain developed for the Gnome project (but usable + outside of the Gnome platform).""" + +toolchain = {'name': 'goalf', 'version': '1.1.0-no-OFED'} +toolchainopts = {'pic': True} + +source_urls = [ + 'http://xmlsoft.org/sources/', + 'http://xmlsoft.org/sources/old/' +] +sources = [SOURCELOWER_TAR_GZ] + +configopts = 'CC="$CC" CXX="$CXX" --with-pic --with-zlib=$EBROOTZLIB' + +pythonver = '2.7.3' +pythonshortver = '.'.join(pythonver.split('.')[0:2]) +versionsuffix = '-%s-%s' % ('Python', pythonver) + +dependencies = [ + ('zlib', '1.2.7'), + ('Python', pythonver), +] + +sanity_check_paths = { + 'files': [('lib/libxml2.a', 'lib64/libxml2.a'), ('lib/libxml2.%s' % SHLIB_EXT, 'lib64/libxml2.%s' % SHLIB_EXT)], + 'dirs': ['bin', 'include/libxml2/libxml'], +} + +moduleclass = 'lib' diff --git a/l/libxml2/libxml2-2.8.0-goalf-1.1.0-no-OFED.eb b/l/libxml2/libxml2-2.8.0-goalf-1.1.0-no-OFED.eb new file mode 100644 index 00000000..4a4a4816 --- /dev/null +++ b/l/libxml2/libxml2-2.8.0-goalf-1.1.0-no-OFED.eb @@ -0,0 +1,28 @@ +easyblock = 'ConfigureMake' + +name = 'libxml2' +version = '2.8.0' + +homepage = 'http://xmlsoft.org/' +description = """Libxml2 is the XML C parser and toolchain developed for the Gnome project (but usable + outside of the Gnome platform).""" + +toolchain = {'name': 'goalf', 'version': '1.1.0-no-OFED'} +toolchainopts = {'pic': True} + +source_urls = [ + 'http://xmlsoft.org/sources/', + 'http://xmlsoft.org/sources/old/' +] +sources = [SOURCELOWER_TAR_GZ] + +configopts = 'CC="$CC" CXX="$CXX" --with-pic --without-python --with-zlib=$EBROOTZLIB' + +dependencies = [('zlib', '1.2.7')] + +sanity_check_paths = { + 'files': [('lib/libxml2.a', 'lib64/libxml2.a'), ('lib/libxml2.%s' % SHLIB_EXT, 'lib64/libxml2.%s' % SHLIB_EXT)], + 'dirs': ['bin', 'include/libxml2/libxml'], +} + +moduleclass = 'lib' diff --git a/l/libxml2/libxml2-2.8.0-goolf-1.4.10-Python-2.7.3.eb b/l/libxml2/libxml2-2.8.0-goolf-1.4.10-Python-2.7.3.eb new file mode 100644 index 00000000..e1868be1 --- /dev/null +++ b/l/libxml2/libxml2-2.8.0-goolf-1.4.10-Python-2.7.3.eb @@ -0,0 +1,32 @@ +name = 'libxml2' +version = '2.8.0' + +homepage = 'http://xmlsoft.org/' +description = """Libxml2 is the XML C parser and toolchain developed for the Gnome project (but usable +outside of the Gnome platform).""" +toolchain = {'name': 'goolf', 'version': '1.4.10'} +toolchainopts = {'pic': True} + +source_urls = [ + 'http://xmlsoft.org/sources/', + 'http://xmlsoft.org/sources/old/' +] +sources = [SOURCELOWER_TAR_GZ] + +configopts = 'CC="$CC" CXX="$CXX" --with-pic --with-zlib=$EBROOTZLIB' + +pythonver = '2.7.3' +pythonshortver = '.'.join(pythonver.split('.')[0:2]) +versionsuffix = '-%s-%s' % ('Python', pythonver) + +dependencies = [ + ('zlib', '1.2.7'), + ('Python', pythonver), +] + +sanity_check_paths = { + 'files': [('lib/libxml2.a', 'lib64/libxml2.a'), ('lib/libxml2.%s' % SHLIB_EXT, 'lib64/libxml2.%s' % SHLIB_EXT)], + 'dirs': ['bin', 'include/libxml2/libxml'], +} + +moduleclass = 'lib' diff --git a/l/libxml2/libxml2-2.8.0-goolf-1.4.10.eb b/l/libxml2/libxml2-2.8.0-goolf-1.4.10.eb new file mode 100644 index 00000000..00021cdd --- /dev/null +++ b/l/libxml2/libxml2-2.8.0-goolf-1.4.10.eb @@ -0,0 +1,27 @@ +easyblock = 'ConfigureMake' + +name = 'libxml2' +version = '2.8.0' + +homepage = 'http://xmlsoft.org/' +description = """Libxml2 is the XML C parser and toolchain developed for the Gnome project (but usable +outside of the Gnome platform).""" +toolchain = {'name': 'goolf', 'version': '1.4.10'} +toolchainopts = {'pic': True} + +source_urls = [ + 'http://xmlsoft.org/sources/', + 'http://xmlsoft.org/sources/old/' +] +sources = [SOURCELOWER_TAR_GZ] + +configopts = 'CC="$CC" CXX="$CXX" --with-pic --without-python --with-zlib=$EBROOTZLIB' + +dependencies = [('zlib', '1.2.7')] + +sanity_check_paths = { + 'files': [('lib/libxml2.a', 'lib64/libxml2.a'), ('lib/libxml2.%s' % SHLIB_EXT, 'lib64/libxml2.%s' % SHLIB_EXT)], + 'dirs': ['bin', 'include/libxml2/libxml'], +} + +moduleclass = 'lib' diff --git a/l/libxml2/libxml2-2.8.0-ictce-4.0.6-Python-2.7.3.eb b/l/libxml2/libxml2-2.8.0-ictce-4.0.6-Python-2.7.3.eb new file mode 100644 index 00000000..b82e8e6c --- /dev/null +++ b/l/libxml2/libxml2-2.8.0-ictce-4.0.6-Python-2.7.3.eb @@ -0,0 +1,33 @@ +name = 'libxml2' +version = '2.8.0' + +homepage = 'http://xmlsoft.org/' +description = """Libxml2 is the XML C parser and toolchain developed for the Gnome project (but usable + outside of the Gnome platform).""" + +toolchain = {'name': 'ictce', 'version': '4.0.6'} +toolchainopts = {'pic': True} + +source_urls = [ + 'http://xmlsoft.org/sources/', + 'http://xmlsoft.org/sources/old/' +] +sources = [SOURCELOWER_TAR_GZ] + +configopts = 'CC="$CC" CXX="$CXX" --with-pic --with-zlib=$EBROOTZLIB' + +pythonver = '2.7.3' +pythonshortver = '.'.join(pythonver.split('.')[0:2]) +versionsuffix = '-%s-%s' % ('Python', pythonver) + +dependencies = [ + ('zlib', '1.2.7'), + ('Python', pythonver), +] + +sanity_check_paths = { + 'files': [('lib/libxml2.a', 'lib64/libxml2.a'), ('lib/libxml2.%s' % SHLIB_EXT, 'lib64/libxml2.%s' % SHLIB_EXT)], + 'dirs': ['bin', 'include/libxml2/libxml'], +} + +moduleclass = 'lib' diff --git a/l/libxml2/libxml2-2.8.0-ictce-4.0.6.eb b/l/libxml2/libxml2-2.8.0-ictce-4.0.6.eb new file mode 100644 index 00000000..91e1ffbc --- /dev/null +++ b/l/libxml2/libxml2-2.8.0-ictce-4.0.6.eb @@ -0,0 +1,28 @@ +easyblock = 'ConfigureMake' + +name = 'libxml2' +version = '2.8.0' + +homepage = 'http://xmlsoft.org/' +description = """Libxml2 is the XML C parser and toolchain developed for the Gnome project (but usable + outside of the Gnome platform).""" + +toolchain = {'name': 'ictce', 'version': '4.0.6'} +toolchainopts = {'pic': True} + +source_urls = [ + 'http://xmlsoft.org/sources/', + 'http://xmlsoft.org/sources/old/' +] +sources = [SOURCELOWER_TAR_GZ] + +configopts = 'CC="$CC" CXX="$CXX" --with-pic --without-python --with-zlib=$EBROOTZLIB' + +dependencies = [('zlib', '1.2.7')] + +sanity_check_paths = { + 'files': [('lib/libxml2.a', 'lib64/libxml2.a'), ('lib/libxml2.%s' % SHLIB_EXT, 'lib64/libxml2.%s' % SHLIB_EXT)], + 'dirs': ['bin', 'include/libxml2/libxml'], +} + +moduleclass = 'lib' diff --git a/l/libxml2/libxml2-2.8.0-ictce-4.1.13-Python-2.7.3.eb b/l/libxml2/libxml2-2.8.0-ictce-4.1.13-Python-2.7.3.eb new file mode 100644 index 00000000..31e824b5 --- /dev/null +++ b/l/libxml2/libxml2-2.8.0-ictce-4.1.13-Python-2.7.3.eb @@ -0,0 +1,33 @@ +name = 'libxml2' +version = '2.8.0' + +homepage = 'http://xmlsoft.org/' +description = """Libxml2 is the XML C parser and toolchain developed for the Gnome project (but usable + outside of the Gnome platform).""" + +toolchain = {'name': 'ictce', 'version': '4.1.13'} +toolchainopts = {'pic': True} + +source_urls = [ + 'http://xmlsoft.org/sources/', + 'http://xmlsoft.org/sources/old/' +] +sources = [SOURCELOWER_TAR_GZ] + +configopts = 'CC="$CC" CXX="$CXX" --with-pic --with-zlib=$EBROOTZLIB' + +pythonver = '2.7.3' +pythonshortver = '.'.join(pythonver.split('.')[0:2]) +versionsuffix = '-%s-%s' % ('Python', pythonver) + +dependencies = [ + ('zlib', '1.2.7'), + ('Python', pythonver), +] + +sanity_check_paths = { + 'files': [('lib/libxml2.a', 'lib64/libxml2.a'), ('lib/libxml2.%s' % SHLIB_EXT, 'lib64/libxml2.%s' % SHLIB_EXT)], + 'dirs': ['bin', 'include/libxml2/libxml'], +} + +moduleclass = 'lib' diff --git a/l/libxml2/libxml2-2.8.0-ictce-5.3.0-Python-2.7.3.eb b/l/libxml2/libxml2-2.8.0-ictce-5.3.0-Python-2.7.3.eb new file mode 100644 index 00000000..5a92ef8b --- /dev/null +++ b/l/libxml2/libxml2-2.8.0-ictce-5.3.0-Python-2.7.3.eb @@ -0,0 +1,33 @@ +name = 'libxml2' +version = '2.8.0' + +homepage = 'http://xmlsoft.org/' +description = """Libxml2 is the XML C parser and toolchain developed for the Gnome project (but usable + outside of the Gnome platform).""" + +toolchain = {'name': 'ictce', 'version': '5.3.0'} +toolchainopts = {'pic': True} + +source_urls = [ + 'http://xmlsoft.org/sources/', + 'http://xmlsoft.org/sources/old/' +] +sources = [SOURCELOWER_TAR_GZ] + +configopts = 'CC="$CC" CXX="$CXX" --with-pic --with-zlib=$EBROOTZLIB' + +pythonver = '2.7.3' +pythonshortver = '.'.join(pythonver.split('.')[0:2]) +versionsuffix = '-%s-%s' % ('Python', pythonver) + +dependencies = [ + ('zlib', '1.2.7'), + ('Python', pythonver), +] + +sanity_check_paths = { + 'files': [('lib/libxml2.a', 'lib64/libxml2.a'), ('lib/libxml2.%s' % SHLIB_EXT, 'lib64/libxml2.%s' % SHLIB_EXT)], + 'dirs': ['bin', 'include/libxml2/libxml'], +} + +moduleclass = 'lib' diff --git a/l/libxml2/libxml2-2.8.0-ictce-5.3.0.eb b/l/libxml2/libxml2-2.8.0-ictce-5.3.0.eb new file mode 100644 index 00000000..98b15d6f --- /dev/null +++ b/l/libxml2/libxml2-2.8.0-ictce-5.3.0.eb @@ -0,0 +1,28 @@ +easyblock = 'ConfigureMake' + +name = 'libxml2' +version = '2.8.0' + +homepage = 'http://xmlsoft.org/' +description = """Libxml2 is the XML C parser and toolchain developed for the Gnome project (but usable + outside of the Gnome platform).""" + +toolchain = {'name': 'ictce', 'version': '5.3.0'} +toolchainopts = {'pic': True} + +source_urls = [ + 'http://xmlsoft.org/sources/', + 'http://xmlsoft.org/sources/old/' +] +sources = [SOURCELOWER_TAR_GZ] + +configopts = 'CC="$CC" CXX="$CXX" --with-pic --without-python --with-zlib=$EBROOTZLIB' + +dependencies = [('zlib', '1.2.7')] + +sanity_check_paths = { + 'files': [('lib/libxml2.a', 'lib64/libxml2.a'), ('lib/libxml2.%s' % SHLIB_EXT, 'lib64/libxml2.%s' % SHLIB_EXT)], + 'dirs': ['bin', 'include/libxml2/libxml'], +} + +moduleclass = 'lib' diff --git a/l/libxml2/libxml2-2.8.0-intel-2015a-Python-2.7.3.eb b/l/libxml2/libxml2-2.8.0-intel-2015a-Python-2.7.3.eb new file mode 100644 index 00000000..3f185c7e --- /dev/null +++ b/l/libxml2/libxml2-2.8.0-intel-2015a-Python-2.7.3.eb @@ -0,0 +1,33 @@ +name = 'libxml2' +version = '2.8.0' + +homepage = 'http://xmlsoft.org/' +description = """Libxml2 is the XML C parser and toolchain developed for the Gnome project (but usable + outside of the Gnome platform).""" + +toolchain = {'name': 'intel', 'version': '2015a'} +toolchainopts = {'pic': True} + +source_urls = [ + 'http://xmlsoft.org/sources/', + 'http://xmlsoft.org/sources/old/' +] +sources = [SOURCELOWER_TAR_GZ] + +configopts = 'CC="$CC" CXX="$CXX" --with-pic --with-zlib=$EBROOTZLIB' + +pythonver = '2.7.3' +pythonshortver = '.'.join(pythonver.split('.')[0:2]) +versionsuffix = '-%s-%s' % ('Python', pythonver) + +dependencies = [ + ('zlib', '1.2.8'), + ('Python', pythonver), +] + +sanity_check_paths = { + 'files': [('lib/libxml2.a', 'lib64/libxml2.a'), ('lib/libxml2.%s' % SHLIB_EXT, 'lib64/libxml2.%s' % SHLIB_EXT)], + 'dirs': ['bin', 'include/libxml2/libxml'], +} + +moduleclass = 'lib' diff --git a/l/libxml2/libxml2-2.9.0-goalf-1.1.0-no-OFED.eb b/l/libxml2/libxml2-2.9.0-goalf-1.1.0-no-OFED.eb new file mode 100644 index 00000000..0567c075 --- /dev/null +++ b/l/libxml2/libxml2-2.9.0-goalf-1.1.0-no-OFED.eb @@ -0,0 +1,28 @@ +easyblock = 'ConfigureMake' + +name = 'libxml2' +version = '2.9.0' + +homepage = 'http://xmlsoft.org/' +description = """Libxml2 is the XML C parser and toolchain developed for the Gnome project (but usable + outside of the Gnome platform).""" + +toolchain = {'name': 'goalf', 'version': '1.1.0-no-OFED'} +toolchainopts = {'pic': True} + +source_urls = [ + 'http://xmlsoft.org/sources/', + 'http://xmlsoft.org/sources/old/' +] +sources = [SOURCELOWER_TAR_GZ] + +configopts = 'CC="$CC" CXX="$CXX" --with-pic --without-python --with-zlib=$EBROOTZLIB' + +dependencies = [('zlib', '1.2.7')] + +sanity_check_paths = { + 'files': [('lib/libxml2.a', 'lib64/libxml2.a'), ('lib/libxml2.%s' % SHLIB_EXT, 'lib64/libxml2.%s' % SHLIB_EXT)], + 'dirs': ['bin', 'include/libxml2/libxml'], +} + +moduleclass = 'lib' diff --git a/l/libxml2/libxml2-2.9.0-goolf-1.4.10.eb b/l/libxml2/libxml2-2.9.0-goolf-1.4.10.eb new file mode 100644 index 00000000..ee43d716 --- /dev/null +++ b/l/libxml2/libxml2-2.9.0-goolf-1.4.10.eb @@ -0,0 +1,27 @@ +easyblock = 'ConfigureMake' + +name = 'libxml2' +version = '2.9.0' + +homepage = 'http://xmlsoft.org/' +description = """Libxml2 is the XML C parser and toolchain developed for the Gnome project (but usable +outside of the Gnome platform).""" +toolchain = {'name': 'goolf', 'version': '1.4.10'} +toolchainopts = {'pic': True} + +source_urls = [ + 'http://xmlsoft.org/sources/', + 'http://xmlsoft.org/sources/old/' +] +sources = [SOURCELOWER_TAR_GZ] + +configopts = 'CC="$CC" CXX="$CXX" --with-pic --without-python --with-zlib=$EBROOTZLIB' + +dependencies = [('zlib', '1.2.7')] + +sanity_check_paths = { + 'files': [('lib/libxml2.a', 'lib64/libxml2.a'), ('lib/libxml2.%s' % SHLIB_EXT, 'lib64/libxml2.%s' % SHLIB_EXT)], + 'dirs': ['bin', 'include/libxml2/libxml'], +} + +moduleclass = 'lib' diff --git a/l/libxml2/libxml2-2.9.0-ictce-4.0.6.eb b/l/libxml2/libxml2-2.9.0-ictce-4.0.6.eb new file mode 100644 index 00000000..06cdc26c --- /dev/null +++ b/l/libxml2/libxml2-2.9.0-ictce-4.0.6.eb @@ -0,0 +1,28 @@ +easyblock = 'ConfigureMake' + +name = 'libxml2' +version = '2.9.0' + +homepage = 'http://xmlsoft.org/' +description = """Libxml2 is the XML C parser and toolchain developed for the Gnome project (but usable + outside of the Gnome platform).""" + +toolchain = {'name': 'ictce', 'version': '4.0.6'} +toolchainopts = {'pic': True} + +source_urls = [ + 'http://xmlsoft.org/sources/', + 'http://xmlsoft.org/sources/old/' +] +sources = [SOURCELOWER_TAR_GZ] + +configopts = 'CC="$CC" CXX="$CXX" --with-pic --without-python --with-zlib=$EBROOTZLIB' + +dependencies = [('zlib', '1.2.7')] + +sanity_check_paths = { + 'files': [('lib/libxml2.a', 'lib64/libxml2.a'), ('lib/libxml2.%s' % SHLIB_EXT, 'lib64/libxml2.%s' % SHLIB_EXT)], + 'dirs': ['bin', 'include/libxml2/libxml'], +} + +moduleclass = 'lib' diff --git a/l/libxml2/libxml2-2.9.0-ictce-4.1.13.eb b/l/libxml2/libxml2-2.9.0-ictce-4.1.13.eb new file mode 100644 index 00000000..3042a3cf --- /dev/null +++ b/l/libxml2/libxml2-2.9.0-ictce-4.1.13.eb @@ -0,0 +1,28 @@ +easyblock = 'ConfigureMake' + +name = 'libxml2' +version = '2.9.0' + +homepage = 'http://xmlsoft.org/' +description = """Libxml2 is the XML C parser and toolchain developed for the Gnome project (but usable + outside of the Gnome platform).""" + +toolchain = {'name': 'ictce', 'version': '4.1.13'} +toolchainopts = {'pic': True} + +source_urls = [ + 'http://xmlsoft.org/sources/', + 'http://xmlsoft.org/sources/old/' +] +sources = [SOURCELOWER_TAR_GZ] + +configopts = 'CC="$CC" CXX="$CXX" --with-pic --without-python --with-zlib=$EBROOTZLIB' + +dependencies = [('zlib', '1.2.7')] + +sanity_check_paths = { + 'files': [('lib/libxml2.a', 'lib64/libxml2.a'), ('lib/libxml2.%s' % SHLIB_EXT, 'lib64/libxml2.%s' % SHLIB_EXT)], + 'dirs': ['bin', 'include/libxml2/libxml'], +} + +moduleclass = 'lib' diff --git a/l/libxml2/libxml2-2.9.0-ictce-5.3.0.eb b/l/libxml2/libxml2-2.9.0-ictce-5.3.0.eb new file mode 100644 index 00000000..f0aa6dee --- /dev/null +++ b/l/libxml2/libxml2-2.9.0-ictce-5.3.0.eb @@ -0,0 +1,28 @@ +easyblock = 'ConfigureMake' + +name = 'libxml2' +version = '2.9.0' + +homepage = 'http://xmlsoft.org/' +description = """Libxml2 is the XML C parser and toolchain developed for the Gnome project (but usable + outside of the Gnome platform).""" + +toolchain = {'name': 'ictce', 'version': '5.3.0'} +toolchainopts = {'pic': True} + +source_urls = [ + 'http://xmlsoft.org/sources/', + 'http://xmlsoft.org/sources/old/' +] +sources = [SOURCELOWER_TAR_GZ] + +configopts = 'CC="$CC" CXX="$CXX" --with-pic --without-python --with-zlib=$EBROOTZLIB' + +dependencies = [('zlib', '1.2.7')] + +sanity_check_paths = { + 'files': [('lib/libxml2.a', 'lib64/libxml2.a'), ('lib/libxml2.%s' % SHLIB_EXT, 'lib64/libxml2.%s' % SHLIB_EXT)], + 'dirs': ['bin', 'include/libxml2/libxml'], +} + +moduleclass = 'lib' diff --git a/l/libxml2/libxml2-2.9.1-foss-2015b.eb b/l/libxml2/libxml2-2.9.1-foss-2015b.eb new file mode 100644 index 00000000..03c075bd --- /dev/null +++ b/l/libxml2/libxml2-2.9.1-foss-2015b.eb @@ -0,0 +1,29 @@ +easyblock = 'ConfigureMake' + +name = 'libxml2' +version = '2.9.1' + +homepage = 'http://xmlsoft.org/' +description = """Libxml2 is the XML C parser and +toolchain developed for the Gnome project + (but usable outside of the Gnome platform).""" + +toolchain = {'name': 'foss', 'version': '2015b'} +toolchainopts = {'pic': True} + +source_urls = [ + 'http://xmlsoft.org/sources/', + 'http://xmlsoft.org/sources/old/' +] +sources = [SOURCELOWER_TAR_GZ] + +configopts = 'CC="$CC" CXX="$CXX" --with-pic --without-python --with-zlib=$EBROOTZLIB' + +dependencies = [('zlib', '1.2.8')] + +sanity_check_paths = { + 'files': [('lib/libxml2.a', 'lib64/libxml2.a'), ('lib/libxml2.%s' % SHLIB_EXT, 'lib64/libxml2.%s' % SHLIB_EXT)], + 'dirs': ['bin', 'include/libxml2/libxml'], +} + +moduleclass = 'lib' diff --git a/l/libxml2/libxml2-2.9.1-gmpolf-1.4.8.eb b/l/libxml2/libxml2-2.9.1-gmpolf-1.4.8.eb new file mode 100644 index 00000000..33b6562e --- /dev/null +++ b/l/libxml2/libxml2-2.9.1-gmpolf-1.4.8.eb @@ -0,0 +1,28 @@ +easyblock = 'ConfigureMake' + +name = 'libxml2' +version = '2.9.1' + +homepage = 'http://xmlsoft.org/' +description = """Libxml2 is the XML C parser and toolchain developed for the Gnome project (but usable +outside of the Gnome platform).""" + +toolchain = {'name': 'gmpolf', 'version': '1.4.8'} +toolchainopts = {'pic': True} + +source_urls = [ + 'http://xmlsoft.org/sources/', + 'http://xmlsoft.org/sources/old/' +] +sources = [SOURCELOWER_TAR_GZ] + +configopts = 'CC="$CC" CXX="$CXX" --with-pic --without-python --with-zlib=$EBROOTZLIB' + +dependencies = [('zlib', '1.2.7')] + +sanity_check_paths = { + 'files': [('lib/libxml2.a', 'lib64/libxml2.a'), ('lib/libxml2.%s' % SHLIB_EXT, 'lib64/libxml2.%s' % SHLIB_EXT)], + 'dirs': ['bin', 'include/libxml2/libxml'], +} + +moduleclass = 'lib' diff --git a/l/libxml2/libxml2-2.9.1-goalf-1.1.0-no-OFED.eb b/l/libxml2/libxml2-2.9.1-goalf-1.1.0-no-OFED.eb new file mode 100644 index 00000000..e44ddd0d --- /dev/null +++ b/l/libxml2/libxml2-2.9.1-goalf-1.1.0-no-OFED.eb @@ -0,0 +1,28 @@ +easyblock = 'ConfigureMake' + +name = 'libxml2' +version = '2.9.1' + +homepage = 'http://xmlsoft.org/' +description = """Libxml2 is the XML C parser and toolchain developed for the Gnome project (but usable +outside of the Gnome platform).""" + +toolchain = {'name': 'goalf', 'version': '1.1.0-no-OFED'} +toolchainopts = {'pic': True} + +source_urls = [ + 'http://xmlsoft.org/sources/', + 'http://xmlsoft.org/sources/old/' +] +sources = [SOURCELOWER_TAR_GZ] + +configopts = 'CC="$CC" CXX="$CXX" --with-pic --without-python --with-zlib=$EBROOTZLIB' + +dependencies = [('zlib', '1.2.7')] + +sanity_check_paths = { + 'files': [('lib/libxml2.a', 'lib64/libxml2.a'), ('lib/libxml2.%s' % SHLIB_EXT, 'lib64/libxml2.%s' % SHLIB_EXT)], + 'dirs': ['bin', 'include/libxml2/libxml'], +} + +moduleclass = 'lib' diff --git a/l/libxml2/libxml2-2.9.1-goalf-1.5.12-no-OFED.eb b/l/libxml2/libxml2-2.9.1-goalf-1.5.12-no-OFED.eb new file mode 100644 index 00000000..90b9bc8e --- /dev/null +++ b/l/libxml2/libxml2-2.9.1-goalf-1.5.12-no-OFED.eb @@ -0,0 +1,28 @@ +easyblock = 'ConfigureMake' + +name = 'libxml2' +version = '2.9.1' + +homepage = 'http://xmlsoft.org/' +description = """Libxml2 is the XML C parser and toolchain developed for the Gnome project (but usable +outside of the Gnome platform).""" + +toolchain = {'name': 'goalf', 'version': '1.5.12-no-OFED'} +toolchainopts = {'pic': True} + +source_urls = [ + 'http://xmlsoft.org/sources/', + 'http://xmlsoft.org/sources/old/' +] +sources = [SOURCELOWER_TAR_GZ] + +configopts = 'CC="$CC" CXX="$CXX" --with-pic --without-python --with-zlib=$EBROOTZLIB' + +dependencies = [('zlib', '1.2.8')] + +sanity_check_paths = { + 'files': [('lib/libxml2.a', 'lib64/libxml2.a'), ('lib/libxml2.%s' % SHLIB_EXT, 'lib64/libxml2.%s' % SHLIB_EXT)], + 'dirs': ['bin', 'include/libxml2/libxml'], +} + +moduleclass = 'lib' diff --git a/l/libxml2/libxml2-2.9.1-gompi-1.4.12-no-OFED.eb b/l/libxml2/libxml2-2.9.1-gompi-1.4.12-no-OFED.eb new file mode 100644 index 00000000..487bf333 --- /dev/null +++ b/l/libxml2/libxml2-2.9.1-gompi-1.4.12-no-OFED.eb @@ -0,0 +1,28 @@ +easyblock = 'ConfigureMake' + +name = 'libxml2' +version = '2.9.1' + +homepage = 'http://xmlsoft.org/' +description = """Libxml2 is the XML C parser and toolchain developed for the Gnome project + (but usable outside of the Gnome platform).""" + +toolchain = {'name': 'gompi', 'version': '1.4.12-no-OFED'} +toolchainopts = {'pic': True} + +source_urls = [ + 'http://xmlsoft.org/sources/', + 'http://xmlsoft.org/sources/old/' +] +sources = [SOURCELOWER_TAR_GZ] + +configopts = 'CC="$CC" CXX="$CXX" --with-pic --without-python --with-zlib=$EBROOTZLIB' + +dependencies = [('zlib', '1.2.7')] + +sanity_check_paths = { + 'files': [('lib/libxml2.a', 'lib64/libxml2.a'), ('lib/libxml2.%s' % SHLIB_EXT, 'lib64/libxml2.%s' % SHLIB_EXT)], + 'dirs': ['bin', 'include/libxml2/libxml'], +} + +moduleclass = 'lib' diff --git a/l/libxml2/libxml2-2.9.1-goolf-1.4.10-Python-2.7.5.eb b/l/libxml2/libxml2-2.9.1-goolf-1.4.10-Python-2.7.5.eb new file mode 100644 index 00000000..ae7f22f7 --- /dev/null +++ b/l/libxml2/libxml2-2.9.1-goolf-1.4.10-Python-2.7.5.eb @@ -0,0 +1,24 @@ +name = 'libxml2' +version = '2.9.1' +versionsuffix = '-Python-%(pyver)s' + +homepage = 'http://xmlsoft.org/' +description = """Libxml2 is the XML C parser and toolchain developed for the Gnome project (but usable + outside of the Gnome platform).""" + +toolchain = {'name': 'goolf', 'version': '1.4.10'} + +source_urls = [ + 'http://xmlsoft.org/sources/', + 'http://xmlsoft.org/sources/old/' +] +sources = [SOURCELOWER_TAR_GZ] + +configopts = 'CC="$CC" CXX="$CXX" --with-pic --with-zlib=$EBROOTZLIB' + +dependencies = [ + ('zlib', '1.2.8'), + ('Python', '2.7.5'), +] + +moduleclass = 'lib' diff --git a/l/libxml2/libxml2-2.9.1-goolf-1.4.10.eb b/l/libxml2/libxml2-2.9.1-goolf-1.4.10.eb new file mode 100644 index 00000000..54488054 --- /dev/null +++ b/l/libxml2/libxml2-2.9.1-goolf-1.4.10.eb @@ -0,0 +1,28 @@ +easyblock = 'ConfigureMake' + +name = 'libxml2' +version = '2.9.1' + +homepage = 'http://xmlsoft.org/' +description = """Libxml2 is the XML C parser and toolchain developed for the Gnome project (but usable +outside of the Gnome platform).""" + +toolchain = {'name': 'goolf', 'version': '1.4.10'} +toolchainopts = {'pic': True} + +source_urls = [ + 'http://xmlsoft.org/sources/', + 'http://xmlsoft.org/sources/old/' +] +sources = [SOURCELOWER_TAR_GZ] + +configopts = 'CC="$CC" CXX="$CXX" --with-pic --without-python --with-zlib=$EBROOTZLIB' + +dependencies = [('zlib', '1.2.7')] + +sanity_check_paths = { + 'files': [('lib/libxml2.a', 'lib64/libxml2.a'), ('lib/libxml2.%s' % SHLIB_EXT, 'lib64/libxml2.%s' % SHLIB_EXT)], + 'dirs': ['bin', 'include/libxml2/libxml'], +} + +moduleclass = 'lib' diff --git a/l/libxml2/libxml2-2.9.1-goolf-1.5.14.eb b/l/libxml2/libxml2-2.9.1-goolf-1.5.14.eb new file mode 100644 index 00000000..b0900056 --- /dev/null +++ b/l/libxml2/libxml2-2.9.1-goolf-1.5.14.eb @@ -0,0 +1,28 @@ +easyblock = 'ConfigureMake' + +name = 'libxml2' +version = '2.9.1' + +homepage = 'http://xmlsoft.org/' +description = """Libxml2 is the XML C parser and toolchain developed for the Gnome project (but usable +outside of the Gnome platform).""" + +toolchain = {'name': 'goolf', 'version': '1.5.14'} +toolchainopts = {'pic': True} + +source_urls = [ + 'http://xmlsoft.org/sources/', + 'http://xmlsoft.org/sources/old/' +] +sources = [SOURCELOWER_TAR_GZ] + +configopts = 'CC="$CC" CXX="$CXX" --with-pic --without-python --with-zlib=$EBROOTZLIB' + +dependencies = [('zlib', '1.2.7')] + +sanity_check_paths = { + 'files': [('lib/libxml2.a', 'lib64/libxml2.a'), ('lib/libxml2.%s' % SHLIB_EXT, 'lib64/libxml2.%s' % SHLIB_EXT)], + 'dirs': ['bin', 'include/libxml2/libxml'], +} + +moduleclass = 'lib' diff --git a/l/libxml2/libxml2-2.9.1-ictce-4.0.6.eb b/l/libxml2/libxml2-2.9.1-ictce-4.0.6.eb new file mode 100644 index 00000000..3e1cc777 --- /dev/null +++ b/l/libxml2/libxml2-2.9.1-ictce-4.0.6.eb @@ -0,0 +1,28 @@ +easyblock = 'ConfigureMake' + +name = 'libxml2' +version = '2.9.1' + +homepage = 'http://xmlsoft.org/' +description = """Libxml2 is the XML C parser and toolchain developed for the Gnome project + (but usable outside of the Gnome platform).""" + +toolchain = {'name': 'ictce', 'version': '4.0.6'} +toolchainopts = {'pic': True} + +source_urls = [ + 'http://xmlsoft.org/sources/', + 'http://xmlsoft.org/sources/old/' +] +sources = [SOURCELOWER_TAR_GZ] + +configopts = 'CC="$CC" CXX="$CXX" --with-pic --without-python --with-zlib=$EBROOTZLIB' + +dependencies = [('zlib', '1.2.7')] + +sanity_check_paths = { + 'files': [('lib/libxml2.a', 'lib64/libxml2.a'), ('lib/libxml2.%s' % SHLIB_EXT, 'lib64/libxml2.%s' % SHLIB_EXT)], + 'dirs': ['bin', 'include/libxml2/libxml'], +} + +moduleclass = 'lib' diff --git a/l/libxml2/libxml2-2.9.1-ictce-4.1.13.eb b/l/libxml2/libxml2-2.9.1-ictce-4.1.13.eb new file mode 100644 index 00000000..5da62988 --- /dev/null +++ b/l/libxml2/libxml2-2.9.1-ictce-4.1.13.eb @@ -0,0 +1,28 @@ +easyblock = 'ConfigureMake' + +name = 'libxml2' +version = '2.9.1' + +homepage = 'http://xmlsoft.org/' +description = """Libxml2 is the XML C parser and toolchain developed for the Gnome project + (but usable outside of the Gnome platform).""" + +toolchain = {'name': 'ictce', 'version': '4.1.13'} +toolchainopts = {'pic': True} + +source_urls = [ + 'http://xmlsoft.org/sources/', + 'http://xmlsoft.org/sources/old/' +] +sources = [SOURCELOWER_TAR_GZ] + +configopts = 'CC="$CC" CXX="$CXX" --with-pic --without-python --with-zlib=$EBROOTZLIB' + +dependencies = [('zlib', '1.2.7')] + +sanity_check_paths = { + 'files': [('lib/libxml2.a', 'lib64/libxml2.a'), ('lib/libxml2.%s' % SHLIB_EXT, 'lib64/libxml2.%s' % SHLIB_EXT)], + 'dirs': ['bin', 'include/libxml2/libxml'], +} + +moduleclass = 'lib' diff --git a/l/libxml2/libxml2-2.9.1-ictce-5.2.0.eb b/l/libxml2/libxml2-2.9.1-ictce-5.2.0.eb new file mode 100644 index 00000000..aa7e4b1f --- /dev/null +++ b/l/libxml2/libxml2-2.9.1-ictce-5.2.0.eb @@ -0,0 +1,28 @@ +easyblock = 'ConfigureMake' + +name = 'libxml2' +version = '2.9.1' + +homepage = 'http://xmlsoft.org/' +description = """Libxml2 is the XML C parser and toolchain developed for the Gnome project + (but usable outside of the Gnome platform).""" + +toolchain = {'name': 'ictce', 'version': '5.2.0'} +toolchainopts = {'pic': True} + +source_urls = [ + 'http://xmlsoft.org/sources/', + 'http://xmlsoft.org/sources/old/' +] +sources = [SOURCELOWER_TAR_GZ] + +configopts = 'CC="$CC" CXX="$CXX" --with-pic --without-python --with-zlib=$EBROOTZLIB' + +dependencies = [('zlib', '1.2.7')] + +sanity_check_paths = { + 'files': [('lib/libxml2.a', 'lib64/libxml2.a'), ('lib/libxml2.%s' % SHLIB_EXT, 'lib64/libxml2.%s' % SHLIB_EXT)], + 'dirs': ['bin', 'include/libxml2/libxml'], +} + +moduleclass = 'lib' diff --git a/l/libxml2/libxml2-2.9.1-ictce-5.3.0.eb b/l/libxml2/libxml2-2.9.1-ictce-5.3.0.eb new file mode 100644 index 00000000..e50f08d5 --- /dev/null +++ b/l/libxml2/libxml2-2.9.1-ictce-5.3.0.eb @@ -0,0 +1,28 @@ +easyblock = 'ConfigureMake' + +name = 'libxml2' +version = '2.9.1' + +homepage = 'http://xmlsoft.org/' +description = """Libxml2 is the XML C parser and toolchain developed for the Gnome project + (but usable outside of the Gnome platform).""" + +toolchain = {'name': 'ictce', 'version': '5.3.0'} +toolchainopts = {'pic': True} + +source_urls = [ + 'http://xmlsoft.org/sources/', + 'http://xmlsoft.org/sources/old/' +] +sources = [SOURCELOWER_TAR_GZ] + +configopts = 'CC="$CC" CXX="$CXX" --with-pic --without-python --with-zlib=$EBROOTZLIB' + +dependencies = [('zlib', '1.2.7')] + +sanity_check_paths = { + 'files': [('lib/libxml2.a', 'lib64/libxml2.a'), ('lib/libxml2.%s' % SHLIB_EXT, 'lib64/libxml2.%s' % SHLIB_EXT)], + 'dirs': ['bin', 'include/libxml2/libxml'], +} + +moduleclass = 'lib' diff --git a/l/libxml2/libxml2-2.9.1-ictce-5.5.0-Python-2.7.6.eb b/l/libxml2/libxml2-2.9.1-ictce-5.5.0-Python-2.7.6.eb new file mode 100644 index 00000000..9d4e8439 --- /dev/null +++ b/l/libxml2/libxml2-2.9.1-ictce-5.5.0-Python-2.7.6.eb @@ -0,0 +1,33 @@ +name = 'libxml2' +version = '2.9.1' + +homepage = 'http://xmlsoft.org/' +description = """Libxml2 is the XML C parser and toolchain developed for the Gnome project (but usable + outside of the Gnome platform).""" + +toolchain = {'name': 'ictce', 'version': '5.5.0'} +toolchainopts = {'pic': True} + +source_urls = [ + 'http://xmlsoft.org/sources/', + 'http://xmlsoft.org/sources/old/' +] +sources = [SOURCELOWER_TAR_GZ] + +configopts = 'CC="$CC" CXX="$CXX" --with-pic --with-zlib=$EBROOTZLIB' + +pythonver = '2.7.6' +pythonshortver = '.'.join(pythonver.split('.')[0:2]) +versionsuffix = '-%s-%s' % ('Python', pythonver) + +dependencies = [ + ('zlib', '1.2.7'), + ('Python', pythonver), +] + +sanity_check_paths = { + 'files': [('lib/libxml2.a', 'lib64/libxml2.a'), ('lib/libxml2.%s' % SHLIB_EXT, 'lib64/libxml2.%s' % SHLIB_EXT)], + 'dirs': ['bin', 'include/libxml2/libxml'], +} + +moduleclass = 'lib' diff --git a/l/libxml2/libxml2-2.9.1-ictce-5.5.0.eb b/l/libxml2/libxml2-2.9.1-ictce-5.5.0.eb new file mode 100644 index 00000000..0cdacffa --- /dev/null +++ b/l/libxml2/libxml2-2.9.1-ictce-5.5.0.eb @@ -0,0 +1,28 @@ +easyblock = 'ConfigureMake' + +name = 'libxml2' +version = '2.9.1' + +homepage = 'http://xmlsoft.org/' +description = """Libxml2 is the XML C parser and toolchain developed for the Gnome project + (but usable outside of the Gnome platform).""" + +toolchain = {'name': 'ictce', 'version': '5.5.0'} +toolchainopts = {'pic': True} + +source_urls = [ + 'http://xmlsoft.org/sources/', + 'http://xmlsoft.org/sources/old/' +] +sources = [SOURCELOWER_TAR_GZ] + +configopts = 'CC="$CC" CXX="$CXX" --with-pic --without-python --with-zlib=$EBROOTZLIB' + +dependencies = [('zlib', '1.2.8')] + +sanity_check_paths = { + 'files': [('lib/libxml2.a', 'lib64/libxml2.a'), ('lib/libxml2.%s' % SHLIB_EXT, 'lib64/libxml2.%s' % SHLIB_EXT)], + 'dirs': ['bin', 'include/libxml2/libxml'], +} + +moduleclass = 'lib' diff --git a/l/libxml2/libxml2-2.9.1-ictce-7.1.2.eb b/l/libxml2/libxml2-2.9.1-ictce-7.1.2.eb new file mode 100644 index 00000000..ca67a911 --- /dev/null +++ b/l/libxml2/libxml2-2.9.1-ictce-7.1.2.eb @@ -0,0 +1,29 @@ +easyblock = 'ConfigureMake' + +name = 'libxml2' +version = '2.9.1' + +homepage = 'http://xmlsoft.org/' +description = """Libxml2 is the XML C parser and +toolchain developed for the Gnome project + (but usable outside of the Gnome platform).""" + +toolchain = {'name': 'ictce', 'version': '7.1.2'} +toolchainopts = {'pic': True} + +source_urls = [ + 'http://xmlsoft.org/sources/', + 'http://xmlsoft.org/sources/old/' +] +sources = [SOURCELOWER_TAR_GZ] + +configopts = 'CC="$CC" CXX="$CXX" --with-pic --without-python --with-zlib=$EBROOTZLIB' + +dependencies = [('zlib', '1.2.8')] + +sanity_check_paths = { + 'files': [('lib/libxml2.a', 'lib64/libxml2.a'), ('lib/libxml2.%s' % SHLIB_EXT, 'lib64/libxml2.%s' % SHLIB_EXT)], + 'dirs': ['bin', 'include/libxml2/libxml'], +} + +moduleclass = 'lib' diff --git a/l/libxml2/libxml2-2.9.1-intel-2014b.eb b/l/libxml2/libxml2-2.9.1-intel-2014b.eb new file mode 100644 index 00000000..c6335dd8 --- /dev/null +++ b/l/libxml2/libxml2-2.9.1-intel-2014b.eb @@ -0,0 +1,29 @@ +easyblock = 'ConfigureMake' + +name = 'libxml2' +version = '2.9.1' + +homepage = 'http://xmlsoft.org/' +description = """Libxml2 is the XML C parser and +toolchain developed for the Gnome project + (but usable outside of the Gnome platform).""" + +toolchain = {'name': 'intel', 'version': '2014b'} +toolchainopts = {'pic': True} + +source_urls = [ + 'http://xmlsoft.org/sources/', + 'http://xmlsoft.org/sources/old/' +] +sources = [SOURCELOWER_TAR_GZ] + +configopts = 'CC="$CC" CXX="$CXX" --with-pic --without-python --with-zlib=$EBROOTZLIB' + +dependencies = [('zlib', '1.2.8')] + +sanity_check_paths = { + 'files': [('lib/libxml2.a', 'lib64/libxml2.a'), ('lib/libxml2.%s' % SHLIB_EXT, 'lib64/libxml2.%s' % SHLIB_EXT)], + 'dirs': ['bin', 'include/libxml2/libxml'], +} + +moduleclass = 'lib' diff --git a/l/libxml2/libxml2-2.9.2-GCC-4.4.7-system.eb b/l/libxml2/libxml2-2.9.2-GCC-4.4.7-system.eb new file mode 100644 index 00000000..baefebce --- /dev/null +++ b/l/libxml2/libxml2-2.9.2-GCC-4.4.7-system.eb @@ -0,0 +1,29 @@ +easyblock = 'ConfigureMake' + +name = 'libxml2' +version = '2.9.2' + +homepage = 'http://xmlsoft.org/' +description = """Libxml2 is the XML C parser and +toolchain developed for the Gnome project + (but usable outside of the Gnome platform).""" + +toolchain = {'name': 'GCC', 'version': '4.4.7-system'} +toolchainopts = {'pic': True} + +source_urls = [ + 'http://xmlsoft.org/sources/', + 'http://xmlsoft.org/sources/old/' +] +sources = [SOURCELOWER_TAR_GZ] + +configopts = 'CC="$CC" CXX="$CXX" --with-pic --without-python --with-zlib=$EBROOTZLIB' + +dependencies = [('zlib', '1.2.8')] + +sanity_check_paths = { + 'files': [('lib/libxml2.a', 'lib64/libxml2.a'), ('lib/libxml2.%s' % SHLIB_EXT, 'lib64/libxml2.%s' % SHLIB_EXT)], + 'dirs': ['bin', 'include/libxml2/libxml'], +} + +moduleclass = 'lib' diff --git a/l/libxml2/libxml2-2.9.2-GCC-4.9.2.eb b/l/libxml2/libxml2-2.9.2-GCC-4.9.2.eb new file mode 100644 index 00000000..841eddc1 --- /dev/null +++ b/l/libxml2/libxml2-2.9.2-GCC-4.9.2.eb @@ -0,0 +1,29 @@ +easyblock = 'ConfigureMake' + +name = 'libxml2' +version = '2.9.2' + +homepage = 'http://xmlsoft.org/' +description = """Libxml2 is the XML C parser and +toolchain developed for the Gnome project + (but usable outside of the Gnome platform).""" + +toolchain = {'name': 'GCC', 'version': '4.9.2'} +toolchainopts = {'pic': True} + +source_urls = [ + 'http://xmlsoft.org/sources/', + 'http://xmlsoft.org/sources/old/' +] +sources = [SOURCELOWER_TAR_GZ] + +configopts = 'CC="$CC" CXX="$CXX" --with-pic --without-python --with-zlib=$EBROOTZLIB' + +dependencies = [('zlib', '1.2.8')] + +sanity_check_paths = { + 'files': [('lib/libxml2.a', 'lib64/libxml2.a'), ('lib/libxml2.%s' % SHLIB_EXT, 'lib64/libxml2.%s' % SHLIB_EXT)], + 'dirs': ['bin', 'include/libxml2/libxml'], +} + +moduleclass = 'lib' diff --git a/l/libxml2/libxml2-2.9.2-GCC-4.9.3-2.25.eb b/l/libxml2/libxml2-2.9.2-GCC-4.9.3-2.25.eb new file mode 100644 index 00000000..8d892b49 --- /dev/null +++ b/l/libxml2/libxml2-2.9.2-GCC-4.9.3-2.25.eb @@ -0,0 +1,29 @@ +easyblock = 'ConfigureMake' + +name = 'libxml2' +version = '2.9.2' + +homepage = 'http://xmlsoft.org/' +description = """Libxml2 is the XML C parser and +toolchain developed for the Gnome project + (but usable outside of the Gnome platform).""" + +toolchain = {'name': 'GCC', 'version': '4.9.3-2.25'} +toolchainopts = {'pic': True} + +source_urls = [ + 'http://xmlsoft.org/sources/', + 'http://xmlsoft.org/sources/old/' +] +sources = [SOURCELOWER_TAR_GZ] + +configopts = 'CC="$CC" CXX="$CXX" --with-pic --without-python --with-zlib=$EBROOTZLIB' + +dependencies = [('zlib', '1.2.8')] + +sanity_check_paths = { + 'files': [('lib/libxml2.a', 'lib64/libxml2.a'), ('lib/libxml2.%s' % SHLIB_EXT, 'lib64/libxml2.%s' % SHLIB_EXT)], + 'dirs': ['bin', 'include/libxml2/libxml'], +} + +moduleclass = 'lib' diff --git a/l/libxml2/libxml2-2.9.2-GNU-4.9.3-2.25.eb b/l/libxml2/libxml2-2.9.2-GNU-4.9.3-2.25.eb new file mode 100644 index 00000000..3c33fb41 --- /dev/null +++ b/l/libxml2/libxml2-2.9.2-GNU-4.9.3-2.25.eb @@ -0,0 +1,28 @@ +easyblock = 'ConfigureMake' + +name = 'libxml2' +version = '2.9.2' + +homepage = 'http://xmlsoft.org/' +description = """Libxml2 is the XML C parser and toolchain developed for the Gnome project + (but usable outside of the Gnome platform).""" + +toolchain = {'name': 'GNU', 'version': '4.9.3-2.25'} +toolchainopts = {'pic': True} + +source_urls = [ + 'http://xmlsoft.org/sources/', + 'http://xmlsoft.org/sources/old/' +] +sources = [SOURCELOWER_TAR_GZ] + +configopts = 'CC="$CC" CXX="$CXX" --with-pic --without-python --with-zlib=$EBROOTZLIB' + +dependencies = [('zlib', '1.2.8')] + +sanity_check_paths = { + 'files': [('lib/libxml2.a', 'lib64/libxml2.a'), ('lib/libxml2.%s' % SHLIB_EXT, 'lib64/libxml2.%s' % SHLIB_EXT)], + 'dirs': ['bin', 'include/libxml2/libxml'], +} + +moduleclass = 'lib' diff --git a/l/libxml2/libxml2-2.9.2-GNU-5.1.0-2.25.eb b/l/libxml2/libxml2-2.9.2-GNU-5.1.0-2.25.eb new file mode 100644 index 00000000..647dc8d0 --- /dev/null +++ b/l/libxml2/libxml2-2.9.2-GNU-5.1.0-2.25.eb @@ -0,0 +1,23 @@ +easyblock = 'ConfigureMake' + +name = 'libxml2' +version = '2.9.2' + +homepage = 'http://xmlsoft.org/' +description = """Libxml2 is the XML C parser and +toolchain developed for the Gnome project + (but usable outside of the Gnome platform).""" + +toolchain = {'name': 'GNU', 'version': '5.1.0-2.25'} + +source_urls = [ + 'http://xmlsoft.org/sources/', + 'http://xmlsoft.org/sources/old/' +] +sources = [SOURCELOWER_TAR_GZ] + +configopts = 'CC="$CC" CXX="$CXX" --with-pic --without-python' + +dependencies = [('zlib', '1.2.8')] + +moduleclass = 'lib' diff --git a/l/libxml2/libxml2-2.9.2-foss-2015a.eb b/l/libxml2/libxml2-2.9.2-foss-2015a.eb new file mode 100644 index 00000000..ae39cc8c --- /dev/null +++ b/l/libxml2/libxml2-2.9.2-foss-2015a.eb @@ -0,0 +1,29 @@ +easyblock = 'ConfigureMake' + +name = 'libxml2' +version = '2.9.2' + +homepage = 'http://xmlsoft.org/' +description = """Libxml2 is the XML C parser and +toolchain developed for the Gnome project + (but usable outside of the Gnome platform).""" + +toolchain = {'name': 'foss', 'version': '2015a'} +toolchainopts = {'pic': True} + +source_urls = [ + 'http://xmlsoft.org/sources/', + 'http://xmlsoft.org/sources/old/' +] +sources = [SOURCELOWER_TAR_GZ] + +configopts = 'CC="$CC" CXX="$CXX" --with-pic --without-python --with-zlib=$EBROOTZLIB' + +dependencies = [('zlib', '1.2.8')] + +sanity_check_paths = { + 'files': [('lib/libxml2.a', 'lib64/libxml2.a'), ('lib/libxml2.%s' % SHLIB_EXT, 'lib64/libxml2.%s' % SHLIB_EXT)], + 'dirs': ['bin', 'include/libxml2/libxml'], +} + +moduleclass = 'lib' diff --git a/l/libxml2/libxml2-2.9.2-foss-2015b.eb b/l/libxml2/libxml2-2.9.2-foss-2015b.eb new file mode 100644 index 00000000..ad02e51c --- /dev/null +++ b/l/libxml2/libxml2-2.9.2-foss-2015b.eb @@ -0,0 +1,29 @@ +easyblock = 'ConfigureMake' + +name = 'libxml2' +version = '2.9.2' + +homepage = 'http://xmlsoft.org/' +description = """Libxml2 is the XML C parser and +toolchain developed for the Gnome project + (but usable outside of the Gnome platform).""" + +toolchain = {'name': 'foss', 'version': '2015b'} +toolchainopts = {'pic': True} + +source_urls = [ + 'http://xmlsoft.org/sources/', + 'http://xmlsoft.org/sources/old/' +] +sources = [SOURCELOWER_TAR_GZ] + +configopts = 'CC="$CC" CXX="$CXX" --with-pic --without-python --with-zlib=$EBROOTZLIB' + +dependencies = [('zlib', '1.2.8')] + +sanity_check_paths = { + 'files': [('lib/libxml2.a', 'lib64/libxml2.a'), ('lib/libxml2.%s' % SHLIB_EXT, 'lib64/libxml2.%s' % SHLIB_EXT)], + 'dirs': ['bin', 'include/libxml2/libxml'], +} + +moduleclass = 'lib' diff --git a/l/libxml2/libxml2-2.9.2-foss-2015g-Python-2.7.9.eb b/l/libxml2/libxml2-2.9.2-foss-2015g-Python-2.7.9.eb new file mode 100644 index 00000000..23b5b152 --- /dev/null +++ b/l/libxml2/libxml2-2.9.2-foss-2015g-Python-2.7.9.eb @@ -0,0 +1,30 @@ +easyblock = 'ConfigureMake' + +name = 'libxml2' +version = '2.9.2' + +homepage = 'http://xmlsoft.org/' +description = """Libxml2 is the XML C parser and +toolchain developed for the Gnome project + (but usable outside of the Gnome platform).""" + +toolchain = {'name': 'foss', 'version': '2015g'} +toolchainopts = {'pic': True} + +source_urls = [ + 'http://xmlsoft.org/sources/', + 'http://xmlsoft.org/sources/old/' +] +sources = [SOURCELOWER_TAR_GZ] + +configopts = 'CC="$CC" CXX="$CXX" --with-pic --without-python' + +pythonver = '2.7.9' +pythonshortver = '.'.join(pythonver.split('.')[0:2]) +versionsuffix = '-%s-%s' % ('Python', pythonver) + +dependencies = [('zlib', '1.2.8'), + ('Python', pythonver), +] + +moduleclass = 'lib' diff --git a/l/libxml2/libxml2-2.9.2-foss-2015g.eb b/l/libxml2/libxml2-2.9.2-foss-2015g.eb new file mode 100644 index 00000000..5114d733 --- /dev/null +++ b/l/libxml2/libxml2-2.9.2-foss-2015g.eb @@ -0,0 +1,23 @@ +easyblock = 'ConfigureMake' + +name = 'libxml2' +version = '2.9.2' + +homepage = 'http://xmlsoft.org/' +description = """Libxml2 is the XML C parser and +toolchain developed for the Gnome project + (but usable outside of the Gnome platform).""" + +toolchain = {'name': 'foss', 'version': '2015g'} + +source_urls = [ + 'http://xmlsoft.org/sources/', + 'http://xmlsoft.org/sources/old/' +] +sources = [SOURCELOWER_TAR_GZ] + +configopts = 'CC="$CC" CXX="$CXX" --with-pic --without-python' + +dependencies = [('zlib', '1.2.8')] + +moduleclass = 'lib' diff --git a/l/libxml2/libxml2-2.9.2-gompi-2015e.eb b/l/libxml2/libxml2-2.9.2-gompi-2015e.eb new file mode 100644 index 00000000..17470824 --- /dev/null +++ b/l/libxml2/libxml2-2.9.2-gompi-2015e.eb @@ -0,0 +1,23 @@ +easyblock = 'ConfigureMake' + +name = 'libxml2' +version = '2.9.2' + +homepage = 'http://xmlsoft.org/' +description = """Libxml2 is the XML C parser and +toolchain developed for the Gnome project + (but usable outside of the Gnome platform).""" + +toolchain = {'name': 'gompi', 'version': '2015e'} + +source_urls = [ + 'http://xmlsoft.org/sources/', + 'http://xmlsoft.org/sources/old/' +] +sources = [SOURCELOWER_TAR_GZ] + +configopts = 'CC="$CC" CXX="$CXX" --with-pic --without-python' + +dependencies = [('zlib', '1.2.8')] + +moduleclass = 'lib' diff --git a/l/libxml2/libxml2-2.9.2-goolf-1.5.14.eb b/l/libxml2/libxml2-2.9.2-goolf-1.5.14.eb new file mode 100644 index 00000000..f232e382 --- /dev/null +++ b/l/libxml2/libxml2-2.9.2-goolf-1.5.14.eb @@ -0,0 +1,29 @@ +easyblock = 'ConfigureMake' + +name = 'libxml2' +version = '2.9.2' + +homepage = 'http://xmlsoft.org/' +description = """Libxml2 is the XML C parser and +toolchain developed for the Gnome project + (but usable outside of the Gnome platform).""" + +toolchain = {'name': 'goolf', 'version': '1.5.14'} +toolchainopts = {'pic': True} + +source_urls = [ + 'http://xmlsoft.org/sources/', + 'http://xmlsoft.org/sources/old/' +] +sources = [SOURCELOWER_TAR_GZ] + +configopts = 'CC="$CC" CXX="$CXX" --with-pic --without-python --with-zlib=$EBROOTZLIB' + +dependencies = [('zlib', '1.2.8')] + +sanity_check_paths = { + 'files': [('lib/libxml2.a', 'lib64/libxml2.a'), ('lib/libxml2.%s' % SHLIB_EXT, 'lib64/libxml2.%s' % SHLIB_EXT)], + 'dirs': ['bin', 'include/libxml2/libxml'], +} + +moduleclass = 'lib' diff --git a/l/libxml2/libxml2-2.9.2-goolf-1.5.16.eb b/l/libxml2/libxml2-2.9.2-goolf-1.5.16.eb new file mode 100644 index 00000000..54c5dad8 --- /dev/null +++ b/l/libxml2/libxml2-2.9.2-goolf-1.5.16.eb @@ -0,0 +1,29 @@ +easyblock = 'ConfigureMake' + +name = 'libxml2' +version = '2.9.2' + +homepage = 'http://xmlsoft.org/' +description = """Libxml2 is the XML C parser and +toolchain developed for the Gnome project + (but usable outside of the Gnome platform).""" + +toolchain = {'name': 'goolf', 'version': '1.5.16'} +toolchainopts = {'pic': True} + +source_urls = [ + 'http://xmlsoft.org/sources/', + 'http://xmlsoft.org/sources/old/' +] +sources = [SOURCELOWER_TAR_GZ] + +configopts = 'CC="$CC" CXX="$CXX" --with-pic --without-python --with-zlib=$EBROOTZLIB' + +dependencies = [('zlib', '1.2.8')] + +sanity_check_paths = { + 'files': [('lib/libxml2.a', 'lib64/libxml2.a'), ('lib/libxml2.%s' % SHLIB_EXT, 'lib64/libxml2.%s' % SHLIB_EXT)], + 'dirs': ['bin', 'include/libxml2/libxml'], +} + +moduleclass = 'lib' diff --git a/l/libxml2/libxml2-2.9.2-goolf-1.7.20.eb b/l/libxml2/libxml2-2.9.2-goolf-1.7.20.eb new file mode 100644 index 00000000..22d8c149 --- /dev/null +++ b/l/libxml2/libxml2-2.9.2-goolf-1.7.20.eb @@ -0,0 +1,29 @@ +easyblock = 'ConfigureMake' + +name = 'libxml2' +version = '2.9.2' + +homepage = 'http://xmlsoft.org/' +description = """Libxml2 is the XML C parser and +toolchain developed for the Gnome project + (but usable outside of the Gnome platform).""" + +toolchain = {'name': 'goolf', 'version': '1.7.20'} +toolchainopts = {'pic': True} + +source_urls = [ + 'http://xmlsoft.org/sources/', + 'http://xmlsoft.org/sources/old/' +] +sources = [SOURCELOWER_TAR_GZ] + +configopts = 'CC="$CC" CXX="$CXX" --with-pic --without-python --with-zlib=$EBROOTZLIB' + +dependencies = [('zlib', '1.2.8')] + +sanity_check_paths = { + 'files': [('lib/libxml2.a', 'lib64/libxml2.a'), ('lib/libxml2.%s' % SHLIB_EXT, 'lib64/libxml2.%s' % SHLIB_EXT)], + 'dirs': ['bin', 'include/libxml2/libxml'], +} + +moduleclass = 'lib' diff --git a/l/libxml2/libxml2-2.9.2-ictce-7.3.5.eb b/l/libxml2/libxml2-2.9.2-ictce-7.3.5.eb new file mode 100644 index 00000000..7326fcfe --- /dev/null +++ b/l/libxml2/libxml2-2.9.2-ictce-7.3.5.eb @@ -0,0 +1,74 @@ +# Built with EasyBuild version 2.1.1 on 2015-08-25_12-26-55 +# Built with EasyBuild version 2.1.1 on 2015-08-19_11-13-43 +easyblock = 'ConfigureMake' + +name = 'libxml2' +version = '2.9.2' + +homepage = 'http://xmlsoft.org/' +description = """Libxml2 is the XML C parser and +toolchain developed for the Gnome project + (but usable outside of the Gnome platform).""" + +toolchain = {'name': 'ictce', 'version': '7.3.5'} + +source_urls = [ + 'http://xmlsoft.org/sources/', + 'http://xmlsoft.org/sources/old/' +] +sources = [SOURCELOWER_TAR_GZ] + +configopts = 'CC="$CC" CXX="$CXX" --with-pic --without-python' + +dependencies = [('zlib', '1.2.8')] + +moduleclass = 'lib' + +# Build statistics +buildstats = [{ + "easybuild-framework_version": "2.1.1", + "easybuild-easyblocks_version": "2.1.1", + "timestamp": 1439975623, + "build_time": 89.27, + "install_size": 21153171, + "command_line": ['--buildpath=/easybuild/build', '--installpath=/apps', '--installpath-modules=/apps/modules', '--installpath-software=/apps', '--module-naming-scheme=IT4IModuleNamingScheme', '--modules-footer=/easybuild/templates/modules/jas02_footer.txt', '--repositorypath=/easybuild/file-repository', '--robot=/easybuild/easyconfigs-salomon/easybuild/easyconfigs', '--robot-paths=/easybuild/easyconfigs-salomon/easybuild/easyconfigs', '--sourcepath=/easybuild/sources', '--try-toolchain="[\'intel\', \'2015b\']"', 'libxml2-2.9.2-intel-2015a.eb'], + "modules_tool": ('EnvironmentModulesC', '/usr/bin/modulecmd', '3.2.10'), + "core_count": 28, + "cpu_model": "Intel(R) Xeon(R) CPU E5-2695 v3 @ 2.30GHz", + "cpu_speed": 2299.825, + "cpu_vendor": "Intel", + "gcc_version": "Using built-in specs.; COLLECT_GCC=gcc; COLLECT_LTO_WRAPPER=/apps/all/GCC/5.1.0-binutils-2.25/libexec/gcc/x86_64-unknown-linux-gnu/5.1.0/lto-wrapper; Target: x86_64-unknown-linux-gnu; Configured with: ../configure --enable-languages=c,c++,fortran --enable-lto --enable-checking=release --disable-multilib --enable-shared=yes --enable-static=yes --enable-threads=posix --enable-gold=default --enable-plugins --enable-ld --with-plugin-ld=ld.gold --prefix=/apps/all/GCC/5.1.0-binutils-2.25 --with-local-prefix=/apps/all/GCC/5.1.0-binutils-2.25 --enable-bootstrap --with-isl=/easybuild/build/GCC/5.1.0/dummy--binutils-2.25/gcc-5.1.0/stage2_stuff; Thread model: posix; gcc version 5.1.0 (GCC) ; ", + "glibc_version": "2.12", + "hostname": "login1", + "os_name": "centos", + "os_type": "Linux", + "os_version": "6.6", + "platform_name": "x86_64-unknown-linux", + "python_version": "2.6.6 (r266:84292, Jan 22 2014, 09:42:36) ; [GCC 4.4.7 20120313 (Red Hat 4.4.7-4)]", + "system_gcc_path": "/apps/all/GCC/5.1.0-binutils-2.25/bin/gcc", + "system_python_path": "/usr/bin/python", +}] + +buildstats.append({ + "easybuild-framework_version": "2.1.1", + "easybuild-easyblocks_version": "2.1.1", + "timestamp": 1440498415, + "build_time": 87.84, + "install_size": 21150097, + "command_line": ['--buildpath=/easybuild/build', '--installpath=/apps', '--installpath-modules=/apps/modules', '--installpath-software=/apps', '--module-naming-scheme=IT4IModuleNamingScheme', '--modules-footer=/easybuild/templates/modules/jas02_footer.txt', '--repositorypath=/easybuild/file-repository', '--robot=/easybuild/easyconfigs-salomon/easybuild/easyconfigs', '--robot-paths=/easybuild/easyconfigs-salomon/easybuild/easyconfigs', '--sourcepath=/easybuild/sources', '--try-toolchain="[\'ictce\', \'7.3.5\']"', 'libxml2-2.9.2-intel-2015b.eb'], + "modules_tool": ('EnvironmentModulesC', '/usr/bin/modulecmd', '3.2.10'), + "core_count": 28, + "cpu_model": "Intel(R) Xeon(R) CPU E5-2695 v3 @ 2.30GHz", + "cpu_speed": 2299.825, + "cpu_vendor": "Intel", + "gcc_version": "Using built-in specs.; Target: x86_64-redhat-linux; Configured with: ../configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --with-bugurl=http://bugzilla.redhat.com/bugzilla --enable-bootstrap --enable-shared --enable-threads=posix --enable-checking=release --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-gnu-unique-object --enable-languages=c,c++,objc,obj-c++,java,fortran,ada --enable-java-awt=gtk --disable-dssi --with-java-home=/usr/lib/jvm/java-1.5.0-gcj-1.5.0.0/jre --enable-libgcj-multifile --enable-java-maintainer-mode --with-ecj-jar=/usr/share/java/eclipse-ecj.jar --disable-libjava-multilib --with-ppl --with-cloog --with-tune=generic --with-arch_32=i686 --build=x86_64-redhat-linux; Thread model: posix; gcc version 4.4.7 20120313 (Red Hat 4.4.7-11) (GCC) ; ", + "glibc_version": "2.12", + "hostname": "login1", + "os_name": "centos", + "os_type": "Linux", + "os_version": "6.6", + "platform_name": "x86_64-unknown-linux", + "python_version": "2.6.6 (r266:84292, Jan 22 2014, 09:42:36) ; [GCC 4.4.7 20120313 (Red Hat 4.4.7-4)]", + "system_gcc_path": "/usr/bin/gcc", + "system_python_path": "/usr/bin/python", +}) diff --git a/l/libxml2/libxml2-2.9.2-intel-2014.06.eb b/l/libxml2/libxml2-2.9.2-intel-2014.06.eb new file mode 100644 index 00000000..acdd85b6 --- /dev/null +++ b/l/libxml2/libxml2-2.9.2-intel-2014.06.eb @@ -0,0 +1,29 @@ +easyblock = 'ConfigureMake' + +name = 'libxml2' +version = '2.9.2' + +homepage = 'http://xmlsoft.org/' +description = """Libxml2 is the XML C parser and +toolchain developed for the Gnome project + (but usable outside of the Gnome platform).""" + +toolchain = {'name': 'intel', 'version': '2014.06'} +toolchainopts = {'pic': True} + +source_urls = [ + 'http://xmlsoft.org/sources/', + 'http://xmlsoft.org/sources/old/' +] +sources = [SOURCELOWER_TAR_GZ] + +configopts = 'CC="$CC" CXX="$CXX" --with-pic --without-python --with-zlib=$EBROOTZLIB' + +dependencies = [('zlib', '1.2.8')] + +sanity_check_paths = { + 'files': [('lib/libxml2.a', 'lib64/libxml2.a'), ('lib/libxml2.%s' % SHLIB_EXT, 'lib64/libxml2.%s' % SHLIB_EXT)], + 'dirs': ['bin', 'include/libxml2/libxml'], +} + +moduleclass = 'lib' diff --git a/l/libxml2/libxml2-2.9.2-intel-2014b.eb b/l/libxml2/libxml2-2.9.2-intel-2014b.eb new file mode 100644 index 00000000..22aefe7d --- /dev/null +++ b/l/libxml2/libxml2-2.9.2-intel-2014b.eb @@ -0,0 +1,29 @@ +easyblock = 'ConfigureMake' + +name = 'libxml2' +version = '2.9.2' + +homepage = 'http://xmlsoft.org/' +description = """Libxml2 is the XML C parser and +toolchain developed for the Gnome project + (but usable outside of the Gnome platform).""" + +toolchain = {'name': 'intel', 'version': '2014b'} +toolchainopts = {'pic': True} + +source_urls = [ + 'http://xmlsoft.org/sources/', + 'http://xmlsoft.org/sources/old/' +] +sources = [SOURCELOWER_TAR_GZ] + +configopts = 'CC="$CC" CXX="$CXX" --with-pic --without-python --with-zlib=$EBROOTZLIB' + +dependencies = [('zlib', '1.2.8')] + +sanity_check_paths = { + 'files': [('lib/libxml2.a', 'lib64/libxml2.a'), ('lib/libxml2.%s' % SHLIB_EXT, 'lib64/libxml2.%s' % SHLIB_EXT)], + 'dirs': ['bin', 'include/libxml2/libxml'], +} + +moduleclass = 'lib' diff --git a/l/libxml2/libxml2-2.9.2-intel-2015a-Python-2.7.10.eb b/l/libxml2/libxml2-2.9.2-intel-2015a-Python-2.7.10.eb new file mode 100644 index 00000000..37724f23 --- /dev/null +++ b/l/libxml2/libxml2-2.9.2-intel-2015a-Python-2.7.10.eb @@ -0,0 +1,28 @@ +name = 'libxml2' +version = '2.9.2' + +homepage = 'http://xmlsoft.org/' +description = """Libxml2 is the XML C parser and toolchain developed for the Gnome project (but usable + outside of the Gnome platform).""" + +toolchain = {'name': 'intel', 'version': '2015a'} +toolchainopts = {'pic': True} + +source_urls = [ + 'http://xmlsoft.org/sources/', + 'http://xmlsoft.org/sources/old/' +] +sources = [SOURCELOWER_TAR_GZ] + +configopts = 'CC="$CC" CXX="$CXX" --with-pic --with-zlib=$EBROOTZLIB' + +pythonver = '2.7.10' +pythonshortver = '.'.join(pythonver.split('.')[0:2]) +versionsuffix = '-%s-%s' % ('Python', pythonver) + +dependencies = [ + ('zlib', '1.2.8'), + ('Python', pythonver), +] + +moduleclass = 'lib' diff --git a/l/libxml2/libxml2-2.9.2-intel-2015a-Python-2.7.9.eb b/l/libxml2/libxml2-2.9.2-intel-2015a-Python-2.7.9.eb new file mode 100644 index 00000000..307b1793 --- /dev/null +++ b/l/libxml2/libxml2-2.9.2-intel-2015a-Python-2.7.9.eb @@ -0,0 +1,28 @@ +name = 'libxml2' +version = '2.9.2' + +homepage = 'http://xmlsoft.org/' +description = """Libxml2 is the XML C parser and toolchain developed for the Gnome project (but usable + outside of the Gnome platform).""" + +toolchain = {'name': 'intel', 'version': '2015a'} +toolchainopts = {'pic': True} + +source_urls = [ + 'http://xmlsoft.org/sources/', + 'http://xmlsoft.org/sources/old/' +] +sources = [SOURCELOWER_TAR_GZ] + +configopts = 'CC="$CC" CXX="$CXX" --with-pic --with-zlib=$EBROOTZLIB' + +pythonver = '2.7.9' +pythonshortver = '.'.join(pythonver.split('.')[0:2]) +versionsuffix = '-%s-%s' % ('Python', pythonver) + +dependencies = [ + ('zlib', '1.2.8'), + ('Python', pythonver), +] + +moduleclass = 'lib' diff --git a/l/libxml2/libxml2-2.9.2-intel-2015a.eb b/l/libxml2/libxml2-2.9.2-intel-2015a.eb new file mode 100644 index 00000000..1a4f4c99 --- /dev/null +++ b/l/libxml2/libxml2-2.9.2-intel-2015a.eb @@ -0,0 +1,29 @@ +easyblock = 'ConfigureMake' + +name = 'libxml2' +version = '2.9.2' + +homepage = 'http://xmlsoft.org/' +description = """Libxml2 is the XML C parser and +toolchain developed for the Gnome project + (but usable outside of the Gnome platform).""" + +toolchain = {'name': 'intel', 'version': '2015a'} +toolchainopts = {'pic': True} + +source_urls = [ + 'http://xmlsoft.org/sources/', + 'http://xmlsoft.org/sources/old/' +] +sources = [SOURCELOWER_TAR_GZ] + +configopts = 'CC="$CC" CXX="$CXX" --with-pic --without-python --with-zlib=$EBROOTZLIB' + +dependencies = [('zlib', '1.2.8')] + +sanity_check_paths = { + 'files': [('lib/libxml2.a', 'lib64/libxml2.a'), ('lib/libxml2.%s' % SHLIB_EXT, 'lib64/libxml2.%s' % SHLIB_EXT)], + 'dirs': ['bin', 'include/libxml2/libxml'], +} + +moduleclass = 'lib' diff --git a/l/libxml2/libxml2-2.9.2-intel-2015b.eb b/l/libxml2/libxml2-2.9.2-intel-2015b.eb new file mode 100644 index 00000000..b95f92df --- /dev/null +++ b/l/libxml2/libxml2-2.9.2-intel-2015b.eb @@ -0,0 +1,29 @@ +easyblock = 'ConfigureMake' + +name = 'libxml2' +version = '2.9.2' + +homepage = 'http://xmlsoft.org/' +description = """Libxml2 is the XML C parser and +toolchain developed for the Gnome project + (but usable outside of the Gnome platform).""" + +toolchain = {'name': 'intel', 'version': '2015b'} +toolchainopts = {'pic': True} + +source_urls = [ + 'http://xmlsoft.org/sources/', + 'http://xmlsoft.org/sources/old/' +] +sources = [SOURCELOWER_TAR_GZ] + +configopts = 'CC="$CC" CXX="$CXX" --with-pic --without-python --with-zlib=$EBROOTZLIB' + +dependencies = [('zlib', '1.2.8')] + +sanity_check_paths = { + 'files': [('lib/libxml2.a', 'lib64/libxml2.a'), ('lib/libxml2.%s' % SHLIB_EXT, 'lib64/libxml2.%s' % SHLIB_EXT)], + 'dirs': ['bin', 'include/libxml2/libxml'], +} + +moduleclass = 'lib' diff --git a/l/libxml2/libxml2-2.9.2.eb b/l/libxml2/libxml2-2.9.2.eb new file mode 100644 index 00000000..f4566475 --- /dev/null +++ b/l/libxml2/libxml2-2.9.2.eb @@ -0,0 +1,25 @@ +easyblock = 'ConfigureMake' + +name = 'libxml2' +version = '2.9.2' + +homepage = 'http://xmlsoft.org/' +description = """Libxml2 is the XML C parser and +toolchain developed for the Gnome project + (but usable outside of the Gnome platform).""" + +toolchain = {'name': 'dummy', 'version': ''} + +source_urls = [ + 'http://xmlsoft.org/sources/', + 'http://xmlsoft.org/sources/old/' +] +sources = [SOURCELOWER_TAR_GZ] + +preconfigopts = 'export LDFLAGS="-L$EBROOTZLIB/lib" && ' + +configopts = 'CC="$CC" CXX="$CXX" --with-pic --without-python' + +dependencies = [('zlib', '1.2.11')] + +moduleclass = 'lib' diff --git a/l/libxml2/libxml2-2.9.3-GCC-4.9.3-2.25.eb b/l/libxml2/libxml2-2.9.3-GCC-4.9.3-2.25.eb new file mode 100644 index 00000000..ba6d0a4c --- /dev/null +++ b/l/libxml2/libxml2-2.9.3-GCC-4.9.3-2.25.eb @@ -0,0 +1,28 @@ +easyblock = 'ConfigureMake' + +name = 'libxml2' +version = '2.9.3' + +homepage = 'http://xmlsoft.org/' +description = """Libxml2 is the XML C parser and toolchain developed for the Gnome project + (but usable outside of the Gnome platform).""" + +toolchain = {'name': 'GCC', 'version': '4.9.3-2.25'} +toolchainopts = {'pic': True} + +source_urls = [ + 'http://xmlsoft.org/sources/', + 'http://xmlsoft.org/sources/old/' +] +sources = [SOURCELOWER_TAR_GZ] + +configopts = 'CC="$CC" CXX="$CXX" --with-pic --without-python --with-zlib=$EBROOTZLIB' + +dependencies = [('zlib', '1.2.8')] + +sanity_check_paths = { + 'files': [('lib/libxml2.a', 'lib64/libxml2.a'), ('lib/libxml2.%s' % SHLIB_EXT, 'lib64/libxml2.%s' % SHLIB_EXT)], + 'dirs': ['bin', 'include/libxml2/libxml'], +} + +moduleclass = 'lib' diff --git a/l/libxml2/libxml2-2.9.3-foss-2015a-Python-2.7.11.eb b/l/libxml2/libxml2-2.9.3-foss-2015a-Python-2.7.11.eb new file mode 100644 index 00000000..6cafc86e --- /dev/null +++ b/l/libxml2/libxml2-2.9.3-foss-2015a-Python-2.7.11.eb @@ -0,0 +1,28 @@ +name = 'libxml2' +version = '2.9.3' + +homepage = 'http://xmlsoft.org/' +description = """Libxml2 is the XML C parser and toolchain developed for the Gnome project (but usable + outside of the Gnome platform).""" + +toolchain = {'name': 'foss', 'version': '2015a'} +toolchainopts = {'pic': True} + +source_urls = [ + 'http://xmlsoft.org/sources/', + 'http://xmlsoft.org/sources/old/' +] +sources = [SOURCELOWER_TAR_GZ] + +configopts = 'CC="$CC" CXX="$CXX" --with-pic --with-zlib=$EBROOTZLIB' + +pythonver = '2.7.11' +pythonshortver = '.'.join(pythonver.split('.')[:2]) +versionsuffix = '-%s-%s' % ('Python', pythonver) + +dependencies = [ + ('zlib', '1.2.8'), + ('Python', pythonver), +] + +moduleclass = 'lib' diff --git a/l/libxml2/libxml2-2.9.3-foss-2015a.eb b/l/libxml2/libxml2-2.9.3-foss-2015a.eb new file mode 100644 index 00000000..59e03317 --- /dev/null +++ b/l/libxml2/libxml2-2.9.3-foss-2015a.eb @@ -0,0 +1,25 @@ +easyblock = 'ConfigureMake' + +name = 'libxml2' +version = '2.9.3' + +homepage = 'http://xmlsoft.org/' +description = """Libxml2 is the XML C parser and toolchain developed for the Gnome project (but usable + outside of the Gnome platform).""" + +toolchain = {'name': 'foss', 'version': '2015a'} +toolchainopts = {'pic': True} + +source_urls = [ + 'http://xmlsoft.org/sources/', + 'http://xmlsoft.org/sources/old/' +] +sources = [SOURCELOWER_TAR_GZ] + +configopts = 'CC="$CC" CXX="$CXX" --with-pic --without-python --with-zlib=$EBROOTZLIB' + +dependencies = [ + ('zlib', '1.2.8'), +] + +moduleclass = 'lib' diff --git a/l/libxml2/libxml2-2.9.3-foss-2016a-Python-2.7.11.eb b/l/libxml2/libxml2-2.9.3-foss-2016a-Python-2.7.11.eb new file mode 100644 index 00000000..0df5cbd9 --- /dev/null +++ b/l/libxml2/libxml2-2.9.3-foss-2016a-Python-2.7.11.eb @@ -0,0 +1,25 @@ +name = 'libxml2' +version = '2.9.3' +versionsuffix = '-Python-%(pyver)s' + +homepage = 'http://xmlsoft.org/' +description = """Libxml2 is the XML C parser and toolchain developed for the Gnome project (but usable + outside of the Gnome platform).""" + +toolchain = {'name': 'foss', 'version': '2016a'} +toolchainopts = {'pic': True} + +source_urls = [ + 'http://xmlsoft.org/sources/', + 'http://xmlsoft.org/sources/old/' +] +sources = [SOURCELOWER_TAR_GZ] + +configopts = 'CC="$CC" CXX="$CXX" --with-pic --with-zlib=$EBROOTZLIB' + +dependencies = [ + ('zlib', '1.2.8'), + ('Python', '2.7.11'), +] + +moduleclass = 'lib' diff --git a/l/libxml2/libxml2-2.9.3-foss-2016a.eb b/l/libxml2/libxml2-2.9.3-foss-2016a.eb new file mode 100644 index 00000000..9f21eb1b --- /dev/null +++ b/l/libxml2/libxml2-2.9.3-foss-2016a.eb @@ -0,0 +1,29 @@ +easyblock = 'ConfigureMake' + +name = 'libxml2' +version = '2.9.3' + +homepage = 'http://xmlsoft.org/' +description = """Libxml2 is the XML C parser and +toolchain developed for the Gnome project + (but usable outside of the Gnome platform).""" + +toolchain = {'name': 'foss', 'version': '2016a'} +toolchainopts = {'pic': True} + +source_urls = [ + 'http://xmlsoft.org/sources/', + 'http://xmlsoft.org/sources/old/' +] +sources = [SOURCELOWER_TAR_GZ] + +configopts = 'CC="$CC" CXX="$CXX" --with-pic --without-python --with-zlib=$EBROOTZLIB' + +dependencies = [('zlib', '1.2.8')] + +sanity_check_paths = { + 'files': [('lib/libxml2.a', 'lib64/libxml2.a'), ('lib/libxml2.%s' % SHLIB_EXT, 'lib64/libxml2.%s' % SHLIB_EXT)], + 'dirs': ['bin', 'include/libxml2/libxml'], +} + +moduleclass = 'lib' diff --git a/l/libxml2/libxml2-2.9.3-gimkl-2.11.5.eb b/l/libxml2/libxml2-2.9.3-gimkl-2.11.5.eb new file mode 100644 index 00000000..1f39ac3f --- /dev/null +++ b/l/libxml2/libxml2-2.9.3-gimkl-2.11.5.eb @@ -0,0 +1,29 @@ +easyblock = 'ConfigureMake' + +name = 'libxml2' +version = '2.9.3' + +homepage = 'http://xmlsoft.org/' +description = """Libxml2 is the XML C parser and +toolchain developed for the Gnome project + (but usable outside of the Gnome platform).""" + +toolchain = {'name': 'gimkl', 'version': '2.11.5'} +toolchainopts = {'pic': True} + +source_urls = [ + 'http://xmlsoft.org/sources/', + 'http://xmlsoft.org/sources/old/' +] +sources = [SOURCELOWER_TAR_GZ] + +configopts = 'CC="$CC" CXX="$CXX" --with-pic --without-python --with-zlib=$EBROOTZLIB' + +dependencies = [('zlib', '1.2.8')] + +sanity_check_paths = { + 'files': [('lib/libxml2.a', 'lib64/libxml2.a'), ('lib/libxml2.%s' % SHLIB_EXT, 'lib64/libxml2.%s' % SHLIB_EXT)], + 'dirs': ['bin', 'include/libxml2/libxml'], +} + +moduleclass = 'lib' diff --git a/l/libxml2/libxml2-2.9.3-goolf-1.7.20.eb b/l/libxml2/libxml2-2.9.3-goolf-1.7.20.eb new file mode 100644 index 00000000..66513c18 --- /dev/null +++ b/l/libxml2/libxml2-2.9.3-goolf-1.7.20.eb @@ -0,0 +1,29 @@ +easyblock = 'ConfigureMake' + +name = 'libxml2' +version = '2.9.3' + +homepage = 'http://xmlsoft.org/' +description = """Libxml2 is the XML C parser and +toolchain developed for the Gnome project + (but usable outside of the Gnome platform).""" + +toolchain = {'name': 'goolf', 'version': '1.7.20'} +toolchainopts = {'pic': True} + +source_urls = [ + 'http://xmlsoft.org/sources/', + 'http://xmlsoft.org/sources/old/' +] +sources = [SOURCELOWER_TAR_GZ] + +configopts = 'CC="$CC" CXX="$CXX" --with-pic --without-python --with-zlib=$EBROOTZLIB' + +dependencies = [('zlib', '1.2.8')] + +sanity_check_paths = { + 'files': [('lib/libxml2.a', 'lib64/libxml2.a'), ('lib/libxml2.%s' % SHLIB_EXT, 'lib64/libxml2.%s' % SHLIB_EXT)], + 'dirs': ['bin', 'include/libxml2/libxml'], +} + +moduleclass = 'lib' diff --git a/l/libxml2/libxml2-2.9.3-intel-2015b-Python-2.7.10.eb b/l/libxml2/libxml2-2.9.3-intel-2015b-Python-2.7.10.eb new file mode 100644 index 00000000..34777c9c --- /dev/null +++ b/l/libxml2/libxml2-2.9.3-intel-2015b-Python-2.7.10.eb @@ -0,0 +1,28 @@ +name = 'libxml2' +version = '2.9.3' + +homepage = 'http://xmlsoft.org/' +description = """Libxml2 is the XML C parser and toolchain developed for the Gnome project (but usable + outside of the Gnome platform).""" + +toolchain = {'name': 'intel', 'version': '2015b'} +toolchainopts = {'pic': True} + +source_urls = [ + 'http://xmlsoft.org/sources/', + 'http://xmlsoft.org/sources/old/' +] +sources = [SOURCELOWER_TAR_GZ] + +configopts = 'CC="$CC" CXX="$CXX" --with-pic --with-zlib=$EBROOTZLIB' + +pythonver = '2.7.10' +pythonshortver = '.'.join(pythonver.split('.')[0:2]) +versionsuffix = '-%s-%s' % ('Python', pythonver) + +dependencies = [ + ('zlib', '1.2.8'), + ('Python', pythonver), +] + +moduleclass = 'lib' diff --git a/l/libxml2/libxml2-2.9.3-intel-2015b-Python-2.7.11.eb b/l/libxml2/libxml2-2.9.3-intel-2015b-Python-2.7.11.eb new file mode 100644 index 00000000..b2807106 --- /dev/null +++ b/l/libxml2/libxml2-2.9.3-intel-2015b-Python-2.7.11.eb @@ -0,0 +1,28 @@ +name = 'libxml2' +version = '2.9.3' + +homepage = 'http://xmlsoft.org/' +description = """Libxml2 is the XML C parser and toolchain developed for the Gnome project (but usable + outside of the Gnome platform).""" + +toolchain = {'name': 'intel', 'version': '2015b'} +toolchainopts = {'pic': True} + +source_urls = [ + 'http://xmlsoft.org/sources/', + 'http://xmlsoft.org/sources/old/' +] +sources = [SOURCELOWER_TAR_GZ] + +configopts = 'CC="$CC" CXX="$CXX" --with-pic --with-zlib=$EBROOTZLIB' + +pythonver = '2.7.11' +pythonshortver = '.'.join(pythonver.split('.')[:2]) +versionsuffix = '-%s-%s' % ('Python', pythonver) + +dependencies = [ + ('zlib', '1.2.8'), + ('Python', pythonver), +] + +moduleclass = 'lib' diff --git a/l/libxml2/libxml2-2.9.3-intel-2016a-Python-2.7.11.eb b/l/libxml2/libxml2-2.9.3-intel-2016a-Python-2.7.11.eb new file mode 100644 index 00000000..41e2af0e --- /dev/null +++ b/l/libxml2/libxml2-2.9.3-intel-2016a-Python-2.7.11.eb @@ -0,0 +1,28 @@ +name = 'libxml2' +version = '2.9.3' + +homepage = 'http://xmlsoft.org/' +description = """Libxml2 is the XML C parser and toolchain developed for the Gnome project (but usable + outside of the Gnome platform).""" + +toolchain = {'name': 'intel', 'version': '2016a'} +toolchainopts = {'pic': True} + +source_urls = [ + 'http://xmlsoft.org/sources/', + 'http://xmlsoft.org/sources/old/' +] +sources = [SOURCELOWER_TAR_GZ] + +configopts = 'CC="$CC" CXX="$CXX" --with-pic --with-zlib=$EBROOTZLIB' + +pyver = '2.7.11' +pyshortver = '.'.join(pyver.split('.')[:2]) +versionsuffix = '-Python-%s' % pyver + +dependencies = [ + ('zlib', '1.2.8'), + ('Python', pyver), +] + +moduleclass = 'lib' diff --git a/l/libxml2/libxml2-2.9.3-intel-2016a.eb b/l/libxml2/libxml2-2.9.3-intel-2016a.eb new file mode 100644 index 00000000..b762d969 --- /dev/null +++ b/l/libxml2/libxml2-2.9.3-intel-2016a.eb @@ -0,0 +1,29 @@ +easyblock = 'ConfigureMake' + +name = 'libxml2' +version = '2.9.3' + +homepage = 'http://xmlsoft.org/' +description = """Libxml2 is the XML C parser and +toolchain developed for the Gnome project + (but usable outside of the Gnome platform).""" + +toolchain = {'name': 'intel', 'version': '2016a'} +toolchainopts = {'pic': True} + +source_urls = [ + 'http://xmlsoft.org/sources/', + 'http://xmlsoft.org/sources/old/' +] +sources = [SOURCELOWER_TAR_GZ] + +configopts = 'CC="$CC" CXX="$CXX" --with-pic --without-python --with-zlib=$EBROOTZLIB' + +dependencies = [('zlib', '1.2.8')] + +sanity_check_paths = { + 'files': [('lib/libxml2.a', 'lib64/libxml2.a'), ('lib/libxml2.%s' % SHLIB_EXT, 'lib64/libxml2.%s' % SHLIB_EXT)], + 'dirs': ['bin', 'include/libxml2/libxml'], +} + +moduleclass = 'lib' diff --git a/l/libxml2/libxml2-2.9.3-intel-2017.00.eb b/l/libxml2/libxml2-2.9.3-intel-2017.00.eb new file mode 100644 index 00000000..99ca7085 --- /dev/null +++ b/l/libxml2/libxml2-2.9.3-intel-2017.00.eb @@ -0,0 +1,29 @@ +easyblock = 'ConfigureMake' + +name = 'libxml2' +version = '2.9.3' + +homepage = 'http://xmlsoft.org/' +description = """Libxml2 is the XML C parser and +toolchain developed for the Gnome project + (but usable outside of the Gnome platform).""" + +toolchain = {'name': 'intel', 'version': '2017.00'} +toolchainopts = {'pic': True} + +source_urls = [ + 'http://xmlsoft.org/sources/', + 'http://xmlsoft.org/sources/old/' +] +sources = [SOURCELOWER_TAR_GZ] + +configopts = 'CC="$CC" CXX="$CXX" --with-pic --without-python --with-zlib=$EBROOTZLIB' + +dependencies = [('zlib', '1.2.8')] + +sanity_check_paths = { + 'files': [('lib/libxml2.a', 'lib64/libxml2.a'), ('lib/libxml2.%s' % SHLIB_EXT, 'lib64/libxml2.%s' % SHLIB_EXT)], + 'dirs': ['bin', 'include/libxml2/libxml'], +} + +moduleclass = 'lib' diff --git a/l/likwid/likwid-4.0.1-intel-2015b.eb b/l/likwid/likwid-4.0.1-intel-2015b.eb new file mode 100644 index 00000000..5c1f75ed --- /dev/null +++ b/l/likwid/likwid-4.0.1-intel-2015b.eb @@ -0,0 +1,26 @@ +easyblock = 'ConfigureMake' + +name = 'likwid' +version = '4.0.1' + +homepage = 'http://code.google.com/p/likwid/' +description = """Likwid stands for Like I knew what I am doing. This project contributes easy to use + command line tools for Linux to support programmers in developing high performance multi threaded programs.""" + +toolchain = {'name': 'intel', 'version': '2015b'} + +sources = [SOURCE_TAR_GZ] +source_urls = ['http://ftp.fau.de/pub/likwid/'] + +skipsteps = ['configure'] +buildopts = 'CC="$CC" CFLAGS="$CFLAGS -std=c99"' +installopts = 'PREFIX=%(installdir)s' + +sanity_check_paths = { + 'files': ["bin/likwid-features", "bin/likwid-memsweeper", "bin/likwid-mpirun", "bin/likwid-perfctr", + "bin/likwid-perfscope", "bin/likwid-pin", "bin/likwid-powermeter", "bin/likwid-topology", + "lib/liblikwidpin.so", "lib/liblikwid.a"], + 'dirs': ["man/man1"] +} + +moduleclass = 'devel' diff --git a/l/likwid/likwid-4.1.0-GCCcore-4.9.3.eb b/l/likwid/likwid-4.1.0-GCCcore-4.9.3.eb new file mode 100644 index 00000000..cda484e2 --- /dev/null +++ b/l/likwid/likwid-4.1.0-GCCcore-4.9.3.eb @@ -0,0 +1,33 @@ +easyblock = 'ConfigureMake' + +name = 'likwid' +version = '4.1.0' + +homepage = 'http://code.google.com/p/likwid/' +description = """Likwid stands for Like I knew what I am doing. This project contributes easy to use + command line tools for Linux to support programmers in developing high performance multi threaded programs.""" + +toolchain = {'name': 'GCCcore', 'version': '4.9.3'} +toolchainopts = {'pic': True} + +sources = [SOURCE_TAR_GZ] +source_urls = ['https://github.com/RRZE-HPC/likwid/archive/'] + +patches = ['likwid-%(version)s-config-mk.patch'] + +builddependencies = [('binutils', '2.25', '', ('GCCcore', '4.9.3'))] + +skipsteps = ['configure'] +buildopts = 'CC="$CC" CFLAGS="$CFLAGS -std=c99" PREFIX=%(installdir)s' +installopts = 'PREFIX=%(installdir)s' + +sanity_check_paths = { + 'files': ["bin/likwid-memsweeper", "bin/likwid-mpirun", "bin/likwid-perfctr", + "bin/likwid-perfscope", "bin/likwid-pin", "bin/likwid-powermeter", "bin/likwid-topology", + "lib/liblikwidpin.%s" % SHLIB_EXT, "lib/liblikwid.%s" % SHLIB_EXT], + 'dirs': ["man/man1"] +} + +maxparallel = 1 + +moduleclass = 'devel' diff --git a/l/likwid/likwid-4.1.0-config-mk.patch b/l/likwid/likwid-4.1.0-config-mk.patch new file mode 100644 index 00000000..735ec88b --- /dev/null +++ b/l/likwid/likwid-4.1.0-config-mk.patch @@ -0,0 +1,43 @@ +# Patches the build system +# Ward Poelmans +diff -ur likwid-likwid-4.1.0.orig/config.mk likwid-likwid-4.1.0/config.mk +--- likwid-likwid-4.1.0.orig/config.mk 2016-05-19 13:16:28.000000000 +0200 ++++ likwid-likwid-4.1.0/config.mk 2016-05-19 13:46:33.345284562 +0200 +@@ -9,7 +9,7 @@ + COLOR = BLUE#NO SPACE + + # Path were to install likwid +-PREFIX = /usr/local#NO SPACE ++#PREFIX = /usr/local#NO SPACE + + ################################################################# + # Common users do not need to change values below this comment! # +@@ -33,7 +33,7 @@ + # chown installed tools to this user/group + # if you change anything here, make sure that the user/group can access + # the MSR devices and (on Intel) the PCI devices. +-INSTALL_CHOWN = -g root -o root ++INSTALL_CHOWN = + + # For the daemon based secure msr/pci access configure + # the absolute path to the msr daemon executable. +@@ -44,7 +44,7 @@ + # Build the accessDaemon. Have a look in the WIKI for details. + BUILDDAEMON = true#NO SPACE + #Build the setFrequencies tool +-BUILDFREQ = true#NO SPACE ++BUILDFREQ = false#NO SPACE + + # Set the default mode for MSR access. + # This can usually be overriden on the commandline. +@@ -71,8 +71,8 @@ + # a proper config file at CFG_FILE_PATH) + MAX_NUM_THREADS = 263 + MAX_NUM_NODES = 64 +-CFG_FILE_PATH = /etc/likwid.cfg +-TOPO_FILE_PATH = /etc/likwid_topo.cfg ++CFG_FILE_PATH = $(PREFIX)/etc/likwid.cfg ++TOPO_FILE_PATH = $(PREFIX)/etc/likwid_topo.cfg + + # Versioning Information + VERSION = 4 diff --git a/l/lxml/lxml-3.4.4-intel-2015b-Python-2.7.9.eb b/l/lxml/lxml-3.4.4-intel-2015b-Python-2.7.9.eb new file mode 100644 index 00000000..bd4ac228 --- /dev/null +++ b/l/lxml/lxml-3.4.4-intel-2015b-Python-2.7.9.eb @@ -0,0 +1,34 @@ +easyblock = "PythonPackage" + +name = 'lxml' +version = '3.4.4' + +homepage = 'http://lxml.de/' +description = """The lxml XML toolkit is a Pythonic binding for the C libraries libxml2 and libxslt.""" + +toolchain = {'name': 'intel', 'version': '2015b'} + +source_urls = ['http://lxml.de/files/'] +sources = [SOURCE_TGZ] + +python = 'Python' +pythonversion = '2.7.9' +pyshortver = '.'.join(pythonversion.split('.')[:2]) + +versionsuffix = "-%s-%s" % (python, pythonversion) + +dependencies = [ + (python, pythonversion), + ('libxml2', '2.9.2'), + ('libxslt', '1.1.28'), +] + +pylibdir = "lib/python%s/site-packages/%%(name)s" % pyshortver + +sanity_check_paths = { + 'files': [], + 'dirs': [('%s-%%(version)s-py%s.egg' % (pylibdir, pyshortver), + '%s-%%(version)s-py%s-linux-x86_64.egg' % (pylibdir, pyshortver))], +} + +moduleclass = 'lib' diff --git a/l/lynx/lynx-2.8.7-goolf-1.4.10.eb b/l/lynx/lynx-2.8.7-goolf-1.4.10.eb new file mode 100644 index 00000000..e7040130 --- /dev/null +++ b/l/lynx/lynx-2.8.7-goolf-1.4.10.eb @@ -0,0 +1,19 @@ +easyblock = 'ConfigureMake' + +name = 'lynx' +version = '2.8.7' + +description = "lynx is an alphanumeric display oriented World-Wide Web Client" +homepage = 'http://lynx.isc.org/' + +toolchain = {'name': 'goolf', 'version': '1.4.10'} + +source_urls = ['http://lynx.isc.org/release/'] +sources = ['%(name)s%(version)s.tar.bz2'] + +sanity_check_paths = { + 'files': ['bin/lynx'], + 'dirs': [], +} + +moduleclass = 'tools' diff --git a/l/lynx/lynx-2.8.7-ictce-5.3.0.eb b/l/lynx/lynx-2.8.7-ictce-5.3.0.eb new file mode 100644 index 00000000..2b02e64a --- /dev/null +++ b/l/lynx/lynx-2.8.7-ictce-5.3.0.eb @@ -0,0 +1,19 @@ +easyblock = 'ConfigureMake' + +name = 'lynx' +version = '2.8.7' + +description = "lynx is an alphanumeric display oriented World-Wide Web Client" +homepage = 'http://lynx.isc.org/' + +toolchain = {'name': 'ictce', 'version': '5.3.0'} + +source_urls = ['http://lynx.isc.org/release/'] +sources = ['%(name)s%(version)s.tar.bz2'] + +sanity_check_paths = { + 'files': ['bin/lynx'], + 'dirs': [], +} + +moduleclass = 'tools' diff --git a/m/M4/M4-1.4.16-intel-2015b.eb b/m/M4/M4-1.4.16-intel-2015b.eb new file mode 100644 index 00000000..3b646617 --- /dev/null +++ b/m/M4/M4-1.4.16-intel-2015b.eb @@ -0,0 +1,52 @@ +# Built with EasyBuild version 2.1.1 on 2015-08-17_09-18-52 +easyblock = 'ConfigureMake' + +name = 'M4' +version = '1.4.16' + +homepage = 'http://www.gnu.org/software/m4/m4.html' +description = """GNU M4 is an implementation of the traditional Unix macro processor. It is mostly SVR4 compatible + although it has some extensions (for example, handling more than 9 positional parameters to macros). + GNU M4 also has built-in functions for including files, running shell commands, doing arithmetic, etc.""" + + +toolchain = {'name': 'intel', 'version': '2015b'} + +sources = [SOURCELOWER_TAR_GZ] +source_urls = [GNU_SOURCE] + +patches = ['M4-%(version)s-no-gets.patch'] + +configopts = "--enable-cxx" + +sanity_check_paths = { + 'files': ["bin/m4"], + 'dirs': [], +} + +moduleclass = 'devel' + +# Build statistics +buildstats = [{ + "easybuild-framework_version": "2.1.1", + "easybuild-easyblocks_version": "2.1.1", + "timestamp": 1439795932, + "build_time": 129.13, + "install_size": 687508, + "command_line": ['--buildpath=/easybuild/build', '--installpath=/apps', '--installpath-modules=/apps/modules', '--installpath-software=/apps', '--module-naming-scheme=IT4IModuleNamingScheme', '--modules-footer=/easybuild/templates/modules/jas02_footer.txt', '--repositorypath=/easybuild/file-repository', '--robot=/easybuild/easyconfigs-salomon/easybuild/easyconfigs', '--robot-paths=/easybuild/easyconfigs-salomon/easybuild/easyconfigs', '--sourcepath=/easybuild/sources', '--try-toolchain="[\'intel\', \'2015b\']"', 'libmatheval-1.1.8-ictce-5.3.0.eb'], + "modules_tool": ('EnvironmentModulesC', '/usr/bin/modulecmd', '3.2.10'), + "core_count": 28, + "cpu_model": "Intel(R) Xeon(R) CPU E5-2695 v3 @ 2.30GHz", + "cpu_speed": 2299.825, + "cpu_vendor": "Intel", + "gcc_version": "Using built-in specs.; COLLECT_GCC=gcc; COLLECT_LTO_WRAPPER=/apps/all/GCC/5.1.0-binutils-2.25/libexec/gcc/x86_64-unknown-linux-gnu/5.1.0/lto-wrapper; Target: x86_64-unknown-linux-gnu; Configured with: ../configure --enable-languages=c,c++,fortran --enable-lto --enable-checking=release --disable-multilib --enable-shared=yes --enable-static=yes --enable-threads=posix --enable-gold=default --enable-plugins --enable-ld --with-plugin-ld=ld.gold --prefix=/apps/all/GCC/5.1.0-binutils-2.25 --with-local-prefix=/apps/all/GCC/5.1.0-binutils-2.25 --enable-bootstrap --with-isl=/easybuild/build/GCC/5.1.0/dummy--binutils-2.25/gcc-5.1.0/stage2_stuff; Thread model: posix; gcc version 5.1.0 (GCC) ; ", + "glibc_version": "2.12", + "hostname": "login1", + "os_name": "centos", + "os_type": "Linux", + "os_version": "6.6", + "platform_name": "x86_64-unknown-linux", + "python_version": "2.6.6 (r266:84292, Jan 22 2014, 09:42:36) ; [GCC 4.4.7 20120313 (Red Hat 4.4.7-4)]", + "system_gcc_path": "/apps/all/GCC/5.1.0-binutils-2.25/bin/gcc", + "system_python_path": "/usr/bin/python", +}] diff --git a/m/M4/M4-1.4.17-CrayGNU-2015.06.eb b/m/M4/M4-1.4.17-CrayGNU-2015.06.eb new file mode 100644 index 00000000..8398e40d --- /dev/null +++ b/m/M4/M4-1.4.17-CrayGNU-2015.06.eb @@ -0,0 +1,23 @@ +easyblock = 'ConfigureMake' + +name = 'M4' +version = '1.4.17' + +homepage = 'http://www.gnu.org/software/m4/m4.html' +description = """GNU M4 is an implementation of the traditional Unix macro processor. It is mostly SVR4 compatible + although it has some extensions (for example, handling more than 9 positional parameters to macros). + GNU M4 also has built-in functions for including files, running shell commands, doing arithmetic, etc.""" + +toolchain = {'name': 'CrayGNU', 'version': '2015.06'} + +sources = [SOURCELOWER_TAR_GZ] +source_urls = [GNU_SOURCE] + +configopts = "--enable-cxx CPPFLAGS=-fgnu89-inline" + +sanity_check_paths = { + 'files': ["bin/m4"], + 'dirs': [], +} + +moduleclass = 'devel' diff --git a/m/M4/M4-1.4.17-CrayGNU-2015.11.eb b/m/M4/M4-1.4.17-CrayGNU-2015.11.eb new file mode 100644 index 00000000..b84761b6 --- /dev/null +++ b/m/M4/M4-1.4.17-CrayGNU-2015.11.eb @@ -0,0 +1,23 @@ +easyblock = 'ConfigureMake' + +name = 'M4' +version = '1.4.17' + +homepage = 'http://www.gnu.org/software/m4/m4.html' +description = """GNU M4 is an implementation of the traditional Unix macro processor. It is mostly SVR4 compatible + although it has some extensions (for example, handling more than 9 positional parameters to macros). + GNU M4 also has built-in functions for including files, running shell commands, doing arithmetic, etc.""" + +toolchain = {'name': 'CrayGNU', 'version': '2015.11'} + +sources = [SOURCELOWER_TAR_GZ] +source_urls = [GNU_SOURCE] + +configopts = "--enable-cxx CPPFLAGS=-fgnu89-inline" + +sanity_check_paths = { + 'files': ["bin/m4"], + 'dirs': [], +} + +moduleclass = 'devel' diff --git a/m/M4/M4-1.4.17-GCC-4.7.2.eb b/m/M4/M4-1.4.17-GCC-4.7.2.eb new file mode 100644 index 00000000..b4bb4c95 --- /dev/null +++ b/m/M4/M4-1.4.17-GCC-4.7.2.eb @@ -0,0 +1,23 @@ +easyblock = 'ConfigureMake' + +name = 'M4' +version = '1.4.17' + +homepage = 'http://www.gnu.org/software/m4/m4.html' +description = """GNU M4 is an implementation of the traditional Unix macro processor. It is mostly SVR4 compatible + although it has some extensions (for example, handling more than 9 positional parameters to macros). + GNU M4 also has built-in functions for including files, running shell commands, doing arithmetic, etc.""" + +toolchain = {'name': 'GCC', 'version': '4.7.2'} + +sources = [SOURCELOWER_TAR_GZ] +source_urls = [GNU_SOURCE] + +configopts = "--enable-cxx CPPFLAGS=-fgnu89-inline" + +sanity_check_paths = { + 'files': ["bin/m4"], + 'dirs': [], +} + +moduleclass = 'devel' diff --git a/m/M4/M4-1.4.17-GCC-4.8.2.eb b/m/M4/M4-1.4.17-GCC-4.8.2.eb new file mode 100644 index 00000000..5df1dda5 --- /dev/null +++ b/m/M4/M4-1.4.17-GCC-4.8.2.eb @@ -0,0 +1,23 @@ +easyblock = 'ConfigureMake' + +name = 'M4' +version = '1.4.17' + +homepage = 'http://www.gnu.org/software/m4/m4.html' +description = """GNU M4 is an implementation of the traditional Unix macro processor. It is mostly SVR4 compatible + although it has some extensions (for example, handling more than 9 positional parameters to macros). + GNU M4 also has built-in functions for including files, running shell commands, doing arithmetic, etc.""" + +toolchain = {'name': 'GCC', 'version': '4.8.2'} + +sources = [SOURCELOWER_TAR_GZ] +source_urls = [GNU_SOURCE] + +configopts = "--enable-cxx CPPFLAGS=-fgnu89-inline" + +sanity_check_paths = { + 'files': ["bin/m4"], + 'dirs': [], +} + +moduleclass = 'devel' diff --git a/m/M4/M4-1.4.17-GCC-4.8.3.eb b/m/M4/M4-1.4.17-GCC-4.8.3.eb new file mode 100644 index 00000000..a8adfdfa --- /dev/null +++ b/m/M4/M4-1.4.17-GCC-4.8.3.eb @@ -0,0 +1,23 @@ +easyblock = 'ConfigureMake' + +name = 'M4' +version = '1.4.17' + +homepage = 'http://www.gnu.org/software/m4/m4.html' +description = """GNU M4 is an implementation of the traditional Unix macro processor. It is mostly SVR4 compatible + although it has some extensions (for example, handling more than 9 positional parameters to macros). + GNU M4 also has built-in functions for including files, running shell commands, doing arithmetic, etc.""" + +toolchain = {'name': 'GCC', 'version': '4.8.3'} + +sources = [SOURCELOWER_TAR_GZ] +source_urls = [GNU_SOURCE] + +configopts = "--enable-cxx" + +sanity_check_paths = { + 'files': ["bin/m4"], + 'dirs': [], +} + +moduleclass = 'devel' diff --git a/m/M4/M4-1.4.17-GCC-4.8.4.eb b/m/M4/M4-1.4.17-GCC-4.8.4.eb new file mode 100644 index 00000000..f406268a --- /dev/null +++ b/m/M4/M4-1.4.17-GCC-4.8.4.eb @@ -0,0 +1,23 @@ +easyblock = 'ConfigureMake' + +name = 'M4' +version = '1.4.17' + +homepage = 'http://www.gnu.org/software/m4/m4.html' +description = """GNU M4 is an implementation of the traditional Unix macro processor. It is mostly SVR4 compatible + although it has some extensions (for example, handling more than 9 positional parameters to macros). + GNU M4 also has built-in functions for including files, running shell commands, doing arithmetic, etc.""" + +toolchain = {'name': 'GCC', 'version': '4.8.4'} + +sources = [SOURCELOWER_TAR_GZ] +source_urls = [GNU_SOURCE] + +configopts = "--enable-cxx CPPFLAGS=-fgnu89-inline" + +sanity_check_paths = { + 'files': ["bin/m4"], + 'dirs': [], +} + +moduleclass = 'devel' diff --git a/m/M4/M4-1.4.17-GCC-4.9.2-binutils-2.25.eb b/m/M4/M4-1.4.17-GCC-4.9.2-binutils-2.25.eb new file mode 100644 index 00000000..560606e0 --- /dev/null +++ b/m/M4/M4-1.4.17-GCC-4.9.2-binutils-2.25.eb @@ -0,0 +1,26 @@ +easyblock = 'ConfigureMake' + +name = 'M4' +version = '1.4.17' + +homepage = 'http://www.gnu.org/software/m4/m4.html' +description = """GNU M4 is an implementation of the traditional Unix macro processor. It is mostly SVR4 compatible + although it has some extensions (for example, handling more than 9 positional parameters to macros). + GNU M4 also has built-in functions for including files, running shell commands, doing arithmetic, etc.""" + +toolchain = {'name': 'GCC', 'version': '4.9.2-binutils-2.25'} + +sources = [SOURCELOWER_TAR_GZ] +source_urls = [GNU_SOURCE] + +# use same binutils version that was used when building GCC toolchain +builddependencies = [('binutils', '2.25', '', True)] + +configopts = "--enable-cxx CPPFLAGS=-fgnu89-inline" + +sanity_check_paths = { + 'files': ["bin/m4"], + 'dirs': [], +} + +moduleclass = 'devel' diff --git a/m/M4/M4-1.4.17-GCC-4.9.2.eb b/m/M4/M4-1.4.17-GCC-4.9.2.eb new file mode 100644 index 00000000..00b1eb05 --- /dev/null +++ b/m/M4/M4-1.4.17-GCC-4.9.2.eb @@ -0,0 +1,23 @@ +easyblock = 'ConfigureMake' + +name = 'M4' +version = '1.4.17' + +homepage = 'http://www.gnu.org/software/m4/m4.html' +description = """GNU M4 is an implementation of the traditional Unix macro processor. It is mostly SVR4 compatible + although it has some extensions (for example, handling more than 9 positional parameters to macros). + GNU M4 also has built-in functions for including files, running shell commands, doing arithmetic, etc.""" + +toolchain = {'name': 'GCC', 'version': '4.9.2'} + +sources = [SOURCELOWER_TAR_GZ] +source_urls = [GNU_SOURCE] + +configopts = "--enable-cxx CPPFLAGS=-fgnu89-inline" + +sanity_check_paths = { + 'files': ["bin/m4"], + 'dirs': [], +} + +moduleclass = 'devel' diff --git a/m/M4/M4-1.4.17-GCC-4.9.3-2.25.eb b/m/M4/M4-1.4.17-GCC-4.9.3-2.25.eb new file mode 100644 index 00000000..a939e010 --- /dev/null +++ b/m/M4/M4-1.4.17-GCC-4.9.3-2.25.eb @@ -0,0 +1,23 @@ +easyblock = 'ConfigureMake' + +name = 'M4' +version = '1.4.17' + +homepage = 'http://www.gnu.org/software/m4/m4.html' +description = """GNU M4 is an implementation of the traditional Unix macro processor. It is mostly SVR4 compatible + although it has some extensions (for example, handling more than 9 positional parameters to macros). + GNU M4 also has built-in functions for including files, running shell commands, doing arithmetic, etc.""" + +toolchain = {'name': 'GCC', 'version': '4.9.3-2.25'} + +sources = [SOURCELOWER_TAR_GZ] +source_urls = [GNU_SOURCE] + +configopts = "--enable-cxx CPPFLAGS=-fgnu89-inline" + +sanity_check_paths = { + 'files': ["bin/m4"], + 'dirs': [], +} + +moduleclass = 'devel' diff --git a/m/M4/M4-1.4.17-GCC-4.9.3-binutils-2.25.eb b/m/M4/M4-1.4.17-GCC-4.9.3-binutils-2.25.eb new file mode 100644 index 00000000..64c98aad --- /dev/null +++ b/m/M4/M4-1.4.17-GCC-4.9.3-binutils-2.25.eb @@ -0,0 +1,26 @@ +easyblock = 'ConfigureMake' + +name = 'M4' +version = '1.4.17' + +homepage = 'http://www.gnu.org/software/m4/m4.html' +description = """GNU M4 is an implementation of the traditional Unix macro processor. It is mostly SVR4 compatible + although it has some extensions (for example, handling more than 9 positional parameters to macros). + GNU M4 also has built-in functions for including files, running shell commands, doing arithmetic, etc.""" + +toolchain = {'name': 'GCC', 'version': '4.9.3-binutils-2.25'} + +sources = [SOURCELOWER_TAR_GZ] +source_urls = [GNU_SOURCE] + +# use same binutils version that was used when building GCC toolchain +builddependencies = [('binutils', '2.25', '', True)] + +configopts = "--enable-cxx CPPFLAGS=-fgnu89-inline" + +sanity_check_paths = { + 'files': ["bin/m4"], + 'dirs': [], +} + +moduleclass = 'devel' diff --git a/m/M4/M4-1.4.17-GCC-4.9.3.eb b/m/M4/M4-1.4.17-GCC-4.9.3.eb new file mode 100644 index 00000000..745063eb --- /dev/null +++ b/m/M4/M4-1.4.17-GCC-4.9.3.eb @@ -0,0 +1,23 @@ +easyblock = 'ConfigureMake' + +name = 'M4' +version = '1.4.17' + +homepage = 'http://www.gnu.org/software/m4/m4.html' +description = """GNU M4 is an implementation of the traditional Unix macro processor. It is mostly SVR4 compatible + although it has some extensions (for example, handling more than 9 positional parameters to macros). + GNU M4 also has built-in functions for including files, running shell commands, doing arithmetic, etc.""" + +toolchain = {'name': 'GCC', 'version': '4.9.3'} + +sources = [SOURCELOWER_TAR_GZ] +source_urls = [GNU_SOURCE] + +configopts = "--enable-cxx CPPFLAGS=-fgnu89-inline" + +sanity_check_paths = { + 'files': ["bin/m4"], + 'dirs': [], +} + +moduleclass = 'devel' diff --git a/m/M4/M4-1.4.17-GCC-5.1.0-binutils-2.25.eb b/m/M4/M4-1.4.17-GCC-5.1.0-binutils-2.25.eb new file mode 100644 index 00000000..a95ac9f6 --- /dev/null +++ b/m/M4/M4-1.4.17-GCC-5.1.0-binutils-2.25.eb @@ -0,0 +1,26 @@ +easyblock = 'ConfigureMake' + +name = 'M4' +version = '1.4.17' + +homepage = 'http://www.gnu.org/software/m4/m4.html' +description = """GNU M4 is an implementation of the traditional Unix macro processor. It is mostly SVR4 compatible + although it has some extensions (for example, handling more than 9 positional parameters to macros). + GNU M4 also has built-in functions for including files, running shell commands, doing arithmetic, etc.""" + +toolchain = {'name': 'GCC', 'version': '5.1.0-binutils-2.25'} + +sources = [SOURCELOWER_TAR_GZ] +source_urls = [GNU_SOURCE] + +# use same binutils version that was used when building GCC toolchain +builddependencies = [('binutils', '2.25', '', True)] + +configopts = "--enable-cxx CPPFLAGS=-fgnu89-inline" + +sanity_check_paths = { + 'files': ["bin/m4"], + 'dirs': [], +} + +moduleclass = 'devel' diff --git a/m/M4/M4-1.4.17-GCCcore-4.9.2.eb b/m/M4/M4-1.4.17-GCCcore-4.9.2.eb new file mode 100644 index 00000000..5551b81d --- /dev/null +++ b/m/M4/M4-1.4.17-GCCcore-4.9.2.eb @@ -0,0 +1,26 @@ +easyblock = 'ConfigureMake' + +name = 'M4' +version = '1.4.17' + +homepage = 'http://www.gnu.org/software/m4/m4.html' +description = """GNU M4 is an implementation of the traditional Unix macro processor. It is mostly SVR4 compatible + although it has some extensions (for example, handling more than 9 positional parameters to macros). + GNU M4 also has built-in functions for including files, running shell commands, doing arithmetic, etc.""" + +toolchain = {'name': 'GCCcore', 'version': '4.9.2'} + +sources = [SOURCELOWER_TAR_GZ] +source_urls = [GNU_SOURCE] + +# use same binutils version that was used when building GCC toolchain +builddependencies = [('binutils', '2.25', '', True)] + +configopts = "--enable-cxx CPPFLAGS='-fgnu89-inline'" + +sanity_check_paths = { + 'files': ["bin/m4"], + 'dirs': [], +} + +moduleclass = 'devel' diff --git a/m/M4/M4-1.4.17-GCCcore-4.9.3.eb b/m/M4/M4-1.4.17-GCCcore-4.9.3.eb new file mode 100644 index 00000000..02f06d5c --- /dev/null +++ b/m/M4/M4-1.4.17-GCCcore-4.9.3.eb @@ -0,0 +1,26 @@ +easyblock = 'ConfigureMake' + +name = 'M4' +version = '1.4.17' + +homepage = 'http://www.gnu.org/software/m4/m4.html' +description = """GNU M4 is an implementation of the traditional Unix macro processor. It is mostly SVR4 compatible + although it has some extensions (for example, handling more than 9 positional parameters to macros). + GNU M4 also has built-in functions for including files, running shell commands, doing arithmetic, etc.""" + +toolchain = {'name': 'GCCcore', 'version': '4.9.3'} + +sources = [SOURCELOWER_TAR_GZ] +source_urls = [GNU_SOURCE] + +# use same binutils version that was used when building GCC toolchain +builddependencies = [('binutils', '2.25', '', True)] + +configopts = "--enable-cxx CPPFLAGS='-fgnu89-inline'" + +sanity_check_paths = { + 'files': ["bin/m4"], + 'dirs': [], +} + +moduleclass = 'devel' diff --git a/m/M4/M4-1.4.17-GCCcore-5.3.0.eb b/m/M4/M4-1.4.17-GCCcore-5.3.0.eb new file mode 100644 index 00000000..434b6f02 --- /dev/null +++ b/m/M4/M4-1.4.17-GCCcore-5.3.0.eb @@ -0,0 +1,26 @@ +easyblock = 'ConfigureMake' + +name = 'M4' +version = '1.4.17' + +homepage = 'http://www.gnu.org/software/m4/m4.html' +description = """GNU M4 is an implementation of the traditional Unix macro processor. It is mostly SVR4 compatible + although it has some extensions (for example, handling more than 9 positional parameters to macros). + GNU M4 also has built-in functions for including files, running shell commands, doing arithmetic, etc.""" + +toolchain = {'name': 'GCCcore', 'version': '5.3.0'} + +sources = [SOURCELOWER_TAR_GZ] +source_urls = [GNU_SOURCE] + +# use same binutils version that was used when building GCC toolchain +builddependencies = [('binutils', '2.26', '', True)] + +configopts = "--enable-cxx" + +sanity_check_paths = { + 'files': ["bin/m4"], + 'dirs': [], +} + +moduleclass = 'devel' diff --git a/m/M4/M4-1.4.17-GNU-4.9.2-2.25.eb b/m/M4/M4-1.4.17-GNU-4.9.2-2.25.eb new file mode 100644 index 00000000..134d1812 --- /dev/null +++ b/m/M4/M4-1.4.17-GNU-4.9.2-2.25.eb @@ -0,0 +1,23 @@ +easyblock = 'ConfigureMake' + +name = 'M4' +version = '1.4.17' + +homepage = 'http://www.gnu.org/software/m4/m4.html' +description = """GNU M4 is an implementation of the traditional Unix macro processor. It is mostly SVR4 compatible + although it has some extensions (for example, handling more than 9 positional parameters to macros). + GNU M4 also has built-in functions for including files, running shell commands, doing arithmetic, etc.""" + +toolchain = {'name': 'GNU', 'version': '4.9.2-2.25'} + +sources = [SOURCELOWER_TAR_GZ] +source_urls = [GNU_SOURCE] + +configopts = "--enable-cxx CPPFLAGS=-fgnu89-inline" + +sanity_check_paths = { + 'files': ["bin/m4"], + 'dirs': [], +} + +moduleclass = 'devel' diff --git a/m/M4/M4-1.4.17-GNU-4.9.3-2.25.eb b/m/M4/M4-1.4.17-GNU-4.9.3-2.25.eb new file mode 100644 index 00000000..25f9aaca --- /dev/null +++ b/m/M4/M4-1.4.17-GNU-4.9.3-2.25.eb @@ -0,0 +1,23 @@ +easyblock = 'ConfigureMake' + +name = 'M4' +version = '1.4.17' + +homepage = 'http://www.gnu.org/software/m4/m4.html' +description = """GNU M4 is an implementation of the traditional Unix macro processor. It is mostly SVR4 compatible + although it has some extensions (for example, handling more than 9 positional parameters to macros). + GNU M4 also has built-in functions for including files, running shell commands, doing arithmetic, etc.""" + +toolchain = {'name': 'GNU', 'version': '4.9.3-2.25'} + +sources = [SOURCELOWER_TAR_GZ] +source_urls = [GNU_SOURCE] + +configopts = "--enable-cxx CPPFLAGS=-fgnu89-inline" + +sanity_check_paths = { + 'files': ["bin/m4"], + 'dirs': [], +} + +moduleclass = 'devel' diff --git a/m/M4/M4-1.4.17-GNU-5.1.0-2.25.eb b/m/M4/M4-1.4.17-GNU-5.1.0-2.25.eb new file mode 100644 index 00000000..5ca90d16 --- /dev/null +++ b/m/M4/M4-1.4.17-GNU-5.1.0-2.25.eb @@ -0,0 +1,23 @@ +easyblock = 'ConfigureMake' + +name = 'M4' +version = '1.4.17' + +homepage = 'http://www.gnu.org/software/m4/m4.html' +description = """GNU M4 is an implementation of the traditional Unix macro processor. It is mostly SVR4 compatible + although it has some extensions (for example, handling more than 9 positional parameters to macros). + GNU M4 also has built-in functions for including files, running shell commands, doing arithmetic, etc.""" + +toolchain = {'name': 'GNU', 'version': '5.1.0-2.25'} + +sources = [SOURCELOWER_TAR_GZ] +source_urls = [GNU_SOURCE] + +configopts = "--enable-cxx CPPFLAGS=-fgnu89-inline" + +sanity_check_paths = { + 'files': ["bin/m4"], + 'dirs': [], +} + +moduleclass = 'devel' diff --git a/m/M4/M4-1.4.17-foss-2014b.eb b/m/M4/M4-1.4.17-foss-2014b.eb new file mode 100644 index 00000000..4abe05a7 --- /dev/null +++ b/m/M4/M4-1.4.17-foss-2014b.eb @@ -0,0 +1,23 @@ +easyblock = 'ConfigureMake' + +name = 'M4' +version = '1.4.17' + +homepage = 'http://www.gnu.org/software/m4/m4.html' +description = """GNU M4 is an implementation of the traditional Unix macro processor. It is mostly SVR4 compatible + although it has some extensions (for example, handling more than 9 positional parameters to macros). + GNU M4 also has built-in functions for including files, running shell commands, doing arithmetic, etc.""" + +toolchain = {'name': 'foss', 'version': '2014b'} + +sources = [SOURCELOWER_TAR_GZ] +source_urls = [GNU_SOURCE] + +configopts = "--enable-cxx CPPFLAGS=-fgnu89-inline" + +sanity_check_paths = { + 'files': ["bin/m4"], + 'dirs': [], +} + +moduleclass = 'devel' diff --git a/m/M4/M4-1.4.17-foss-2015a.eb b/m/M4/M4-1.4.17-foss-2015a.eb new file mode 100644 index 00000000..f5817316 --- /dev/null +++ b/m/M4/M4-1.4.17-foss-2015a.eb @@ -0,0 +1,23 @@ +easyblock = 'ConfigureMake' + +name = 'M4' +version = '1.4.17' + +homepage = 'http://www.gnu.org/software/m4/m4.html' +description = """GNU M4 is an implementation of the traditional Unix macro processor. It is mostly SVR4 compatible + although it has some extensions (for example, handling more than 9 positional parameters to macros). + GNU M4 also has built-in functions for including files, running shell commands, doing arithmetic, etc.""" + +toolchain = {'name': 'foss', 'version': '2015a'} + +sources = [SOURCELOWER_TAR_GZ] +source_urls = [GNU_SOURCE] + +configopts = "--enable-cxx CPPFLAGS=-fgnu89-inline" + +sanity_check_paths = { + 'files': ["bin/m4"], + 'dirs': [], +} + +moduleclass = 'devel' diff --git a/m/M4/M4-1.4.17-foss-2015b.eb b/m/M4/M4-1.4.17-foss-2015b.eb new file mode 100644 index 00000000..6a7048dc --- /dev/null +++ b/m/M4/M4-1.4.17-foss-2015b.eb @@ -0,0 +1,23 @@ +easyblock = 'ConfigureMake' + +name = 'M4' +version = '1.4.17' + +homepage = 'http://www.gnu.org/software/m4/m4.html' +description = """GNU M4 is an implementation of the traditional Unix macro processor. It is mostly SVR4 compatible + although it has some extensions (for example, handling more than 9 positional parameters to macros). + GNU M4 also has built-in functions for including files, running shell commands, doing arithmetic, etc.""" + +toolchain = {'name': 'foss', 'version': '2015b'} + +sources = [SOURCELOWER_TAR_GZ] +source_urls = [GNU_SOURCE] + +configopts = "--enable-cxx CPPFLAGS=-fgnu89-inline" + +sanity_check_paths = { + 'files': ["bin/m4"], + 'dirs': [], +} + +moduleclass = 'devel' diff --git a/m/M4/M4-1.4.17-foss-2016a.eb b/m/M4/M4-1.4.17-foss-2016a.eb new file mode 100644 index 00000000..ce563e7d --- /dev/null +++ b/m/M4/M4-1.4.17-foss-2016a.eb @@ -0,0 +1,23 @@ +easyblock = 'ConfigureMake' + +name = 'M4' +version = '1.4.17' + +homepage = 'http://www.gnu.org/software/m4/m4.html' +description = """GNU M4 is an implementation of the traditional Unix macro processor. It is mostly SVR4 compatible + although it has some extensions (for example, handling more than 9 positional parameters to macros). + GNU M4 also has built-in functions for including files, running shell commands, doing arithmetic, etc.""" + +toolchain = {'name': 'foss', 'version': '2016a'} + +sources = [SOURCELOWER_TAR_GZ] +source_urls = [GNU_SOURCE] + +configopts = "--enable-cxx CPPFLAGS='-fgnu89-inline'" + +sanity_check_paths = { + 'files': ["bin/m4"], + 'dirs': [], +} + +moduleclass = 'devel' diff --git a/m/M4/M4-1.4.17-gimkl-2.11.5.eb b/m/M4/M4-1.4.17-gimkl-2.11.5.eb new file mode 100644 index 00000000..aa806c10 --- /dev/null +++ b/m/M4/M4-1.4.17-gimkl-2.11.5.eb @@ -0,0 +1,23 @@ +easyblock = 'ConfigureMake' + +name = 'M4' +version = '1.4.17' + +homepage = 'http://www.gnu.org/software/m4/m4.html' +description = """GNU M4 is an implementation of the traditional Unix macro processor. It is mostly SVR4 compatible + although it has some extensions (for example, handling more than 9 positional parameters to macros). + GNU M4 also has built-in functions for including files, running shell commands, doing arithmetic, etc.""" + +toolchain = {'name': 'gimkl', 'version': '2.11.5'} + +sources = [SOURCELOWER_TAR_GZ] +source_urls = [GNU_SOURCE] + +configopts = "--enable-cxx CPPFLAGS=-fgnu89-inline" + +sanity_check_paths = { + 'files': ["bin/m4"], + 'dirs': [], +} + +moduleclass = 'devel' diff --git a/m/M4/M4-1.4.17-ictce-5.4.0.eb b/m/M4/M4-1.4.17-ictce-5.4.0.eb new file mode 100644 index 00000000..304b160d --- /dev/null +++ b/m/M4/M4-1.4.17-ictce-5.4.0.eb @@ -0,0 +1,23 @@ +easyblock = 'ConfigureMake' + +name = 'M4' +version = '1.4.17' + +homepage = 'http://www.gnu.org/software/m4/m4.html' +description = """GNU M4 is an implementation of the traditional Unix macro processor. It is mostly SVR4 compatible + although it has some extensions (for example, handling more than 9 positional parameters to macros). + GNU M4 also has built-in functions for including files, running shell commands, doing arithmetic, etc.""" + +toolchain = {'name': 'ictce', 'version': '5.4.0'} + +sources = [SOURCELOWER_TAR_GZ] +source_urls = [GNU_SOURCE] + +configopts = "--enable-cxx CPPFLAGS=-fgnu89-inline" + +sanity_check_paths = { + 'files': ["bin/m4"], + 'dirs': [], +} + +moduleclass = 'devel' diff --git a/m/M4/M4-1.4.17-ictce-5.5.0.eb b/m/M4/M4-1.4.17-ictce-5.5.0.eb new file mode 100644 index 00000000..46c1b375 --- /dev/null +++ b/m/M4/M4-1.4.17-ictce-5.5.0.eb @@ -0,0 +1,23 @@ +easyblock = 'ConfigureMake' + +name = 'M4' +version = '1.4.17' + +homepage = 'http://www.gnu.org/software/m4/m4.html' +description = """GNU M4 is an implementation of the traditional Unix macro processor. It is mostly SVR4 compatible + although it has some extensions (for example, handling more than 9 positional parameters to macros). + GNU M4 also has built-in functions for including files, running shell commands, doing arithmetic, etc.""" + +toolchain = {'name': 'ictce', 'version': '5.5.0'} + +sources = [SOURCELOWER_TAR_GZ] +source_urls = [GNU_SOURCE] + +configopts = "--enable-cxx CPPFLAGS=-fgnu89-inline" + +sanity_check_paths = { + 'files': ["bin/m4"], + 'dirs': [], +} + +moduleclass = 'devel' diff --git a/m/M4/M4-1.4.17-ictce-7.1.2.eb b/m/M4/M4-1.4.17-ictce-7.1.2.eb new file mode 100644 index 00000000..0289e6c4 --- /dev/null +++ b/m/M4/M4-1.4.17-ictce-7.1.2.eb @@ -0,0 +1,23 @@ +easyblock = 'ConfigureMake' + +name = 'M4' +version = '1.4.17' + +homepage = 'http://www.gnu.org/software/m4/m4.html' +description = """GNU M4 is an implementation of the traditional Unix macro processor. It is mostly SVR4 compatible + although it has some extensions (for example, handling more than 9 positional parameters to macros). + GNU M4 also has built-in functions for including files, running shell commands, doing arithmetic, etc.""" + +toolchain = {'name': 'ictce', 'version': '7.1.2'} + +sources = [SOURCELOWER_TAR_GZ] +source_urls = [GNU_SOURCE] + +configopts = "--enable-cxx CPPFLAGS=-fgnu89-inline" + +sanity_check_paths = { + 'files': ["bin/m4"], + 'dirs': [], +} + +moduleclass = 'devel' diff --git a/m/M4/M4-1.4.17-intel-2014b.eb b/m/M4/M4-1.4.17-intel-2014b.eb new file mode 100644 index 00000000..857e1b9f --- /dev/null +++ b/m/M4/M4-1.4.17-intel-2014b.eb @@ -0,0 +1,23 @@ +easyblock = 'ConfigureMake' + +name = 'M4' +version = '1.4.17' + +homepage = 'http://www.gnu.org/software/m4/m4.html' +description = """GNU M4 is an implementation of the traditional Unix macro processor. It is mostly SVR4 compatible + although it has some extensions (for example, handling more than 9 positional parameters to macros). + GNU M4 also has built-in functions for including files, running shell commands, doing arithmetic, etc.""" + +toolchain = {'name': 'intel', 'version': '2014b'} + +sources = [SOURCELOWER_TAR_GZ] +source_urls = [GNU_SOURCE] + +configopts = "--enable-cxx CPPFLAGS=-fgnu89-inline" + +sanity_check_paths = { + 'files': ["bin/m4"], + 'dirs': [], +} + +moduleclass = 'devel' diff --git a/m/M4/M4-1.4.17-intel-2015a.eb b/m/M4/M4-1.4.17-intel-2015a.eb new file mode 100644 index 00000000..a8052662 --- /dev/null +++ b/m/M4/M4-1.4.17-intel-2015a.eb @@ -0,0 +1,23 @@ +easyblock = 'ConfigureMake' + +name = 'M4' +version = '1.4.17' + +homepage = 'http://www.gnu.org/software/m4/m4.html' +description = """GNU M4 is an implementation of the traditional Unix macro processor. It is mostly SVR4 compatible + although it has some extensions (for example, handling more than 9 positional parameters to macros). + GNU M4 also has built-in functions for including files, running shell commands, doing arithmetic, etc.""" + +toolchain = {'name': 'intel', 'version': '2015a'} + +sources = [SOURCELOWER_TAR_GZ] +source_urls = [GNU_SOURCE] + +configopts = "--enable-cxx CPPFLAGS=-fgnu89-inline" + +sanity_check_paths = { + 'files': ["bin/m4"], + 'dirs': [], +} + +moduleclass = 'devel' diff --git a/m/M4/M4-1.4.17-intel-2015b.eb b/m/M4/M4-1.4.17-intel-2015b.eb new file mode 100644 index 00000000..6746b4b3 --- /dev/null +++ b/m/M4/M4-1.4.17-intel-2015b.eb @@ -0,0 +1,23 @@ +easyblock = 'ConfigureMake' + +name = 'M4' +version = '1.4.17' + +homepage = 'http://www.gnu.org/software/m4/m4.html' +description = """GNU M4 is an implementation of the traditional Unix macro processor. It is mostly SVR4 compatible + although it has some extensions (for example, handling more than 9 positional parameters to macros). + GNU M4 also has built-in functions for including files, running shell commands, doing arithmetic, etc.""" + +toolchain = {'name': 'intel', 'version': '2015b'} + +sources = [SOURCELOWER_TAR_GZ] +source_urls = [GNU_SOURCE] + +configopts = "--enable-cxx CPPFLAGS=-fgnu89-inline" + +sanity_check_paths = { + 'files': ["bin/m4"], + 'dirs': [], +} + +moduleclass = 'devel' diff --git a/m/M4/M4-1.4.17-intel-2016.02-GCC-4.9.eb b/m/M4/M4-1.4.17-intel-2016.02-GCC-4.9.eb new file mode 100644 index 00000000..899804b1 --- /dev/null +++ b/m/M4/M4-1.4.17-intel-2016.02-GCC-4.9.eb @@ -0,0 +1,23 @@ +easyblock = 'ConfigureMake' + +name = 'M4' +version = '1.4.17' + +homepage = 'http://www.gnu.org/software/m4/m4.html' +description = """GNU M4 is an implementation of the traditional Unix macro processor. It is mostly SVR4 compatible + although it has some extensions (for example, handling more than 9 positional parameters to macros). + GNU M4 also has built-in functions for including files, running shell commands, doing arithmetic, etc.""" + +toolchain = {'name': 'intel', 'version': '2016.02-GCC-4.9'} + +sources = [SOURCELOWER_TAR_GZ] +source_urls = [GNU_SOURCE] + +configopts = "--enable-cxx CPPFLAGS=-fgnu89-inline" + +sanity_check_paths = { + 'files': ["bin/m4"], + 'dirs': [], +} + +moduleclass = 'devel' diff --git a/m/M4/M4-1.4.17-intel-2016a.eb b/m/M4/M4-1.4.17-intel-2016a.eb new file mode 100644 index 00000000..44727724 --- /dev/null +++ b/m/M4/M4-1.4.17-intel-2016a.eb @@ -0,0 +1,23 @@ +easyblock = 'ConfigureMake' + +name = 'M4' +version = '1.4.17' + +homepage = 'http://www.gnu.org/software/m4/m4.html' +description = """GNU M4 is an implementation of the traditional Unix macro processor. It is mostly SVR4 compatible + although it has some extensions (for example, handling more than 9 positional parameters to macros). + GNU M4 also has built-in functions for including files, running shell commands, doing arithmetic, etc.""" + +toolchain = {'name': 'intel', 'version': '2016a'} + +sources = [SOURCELOWER_TAR_GZ] +source_urls = [GNU_SOURCE] + +configopts = "--enable-cxx CPPFLAGS=-fgnu89-inline" + +sanity_check_paths = { + 'files': ["bin/m4"], + 'dirs': [], +} + +moduleclass = 'devel' diff --git a/m/M4/M4-1.4.17-intel-2017.00.eb b/m/M4/M4-1.4.17-intel-2017.00.eb new file mode 100644 index 00000000..27df5946 --- /dev/null +++ b/m/M4/M4-1.4.17-intel-2017.00.eb @@ -0,0 +1,23 @@ +easyblock = 'ConfigureMake' + +name = 'M4' +version = '1.4.17' + +homepage = 'http://www.gnu.org/software/m4/m4.html' +description = """GNU M4 is an implementation of the traditional Unix macro processor. It is mostly SVR4 compatible + although it has some extensions (for example, handling more than 9 positional parameters to macros). + GNU M4 also has built-in functions for including files, running shell commands, doing arithmetic, etc.""" + +toolchain = {'name': 'intel', 'version': '2017.00'} + +sources = [SOURCELOWER_TAR_GZ] +source_urls = [GNU_SOURCE] + +configopts = "--enable-cxx CPPFLAGS=-fgnu89-inline" + +sanity_check_paths = { + 'files': ["bin/m4"], + 'dirs': [], +} + +moduleclass = 'devel' diff --git a/m/M4/M4-1.4.17-intel-2017a.eb b/m/M4/M4-1.4.17-intel-2017a.eb new file mode 100644 index 00000000..5bfd56c4 --- /dev/null +++ b/m/M4/M4-1.4.17-intel-2017a.eb @@ -0,0 +1,23 @@ +easyblock = 'ConfigureMake' + +name = 'M4' +version = '1.4.17' + +homepage = 'http://www.gnu.org/software/m4/m4.html' +description = """GNU M4 is an implementation of the traditional Unix macro processor. It is mostly SVR4 compatible + although it has some extensions (for example, handling more than 9 positional parameters to macros). + GNU M4 also has built-in functions for including files, running shell commands, doing arithmetic, etc.""" + +toolchain = {'name': 'intel', 'version': '2017a'} + +sources = [SOURCELOWER_TAR_GZ] +source_urls = [GNU_SOURCE] + +configopts = "--enable-cxx CPPFLAGS=-fgnu89-inline" + +sanity_check_paths = { + 'files': ["bin/m4"], + 'dirs': [], +} + +moduleclass = 'devel' diff --git a/m/M4/M4-1.4.17-intel-para-2014.12.eb b/m/M4/M4-1.4.17-intel-para-2014.12.eb new file mode 100644 index 00000000..104ad6a3 --- /dev/null +++ b/m/M4/M4-1.4.17-intel-para-2014.12.eb @@ -0,0 +1,23 @@ +easyblock = 'ConfigureMake' + +name = 'M4' +version = '1.4.17' + +homepage = 'http://www.gnu.org/software/m4/m4.html' +description = """GNU M4 is an implementation of the traditional Unix macro processor. It is mostly SVR4 compatible + although it has some extensions (for example, handling more than 9 positional parameters to macros). + GNU M4 also has built-in functions for including files, running shell commands, doing arithmetic, etc.""" + +toolchain = {'name': 'intel-para', 'version': '2014.12'} + +sources = [SOURCELOWER_TAR_GZ] +source_urls = [GNU_SOURCE] + +configopts = "--enable-cxx CPPFLAGS=-fgnu89-inline" + +sanity_check_paths = { + 'files': ["bin/m4"], + 'dirs': [], +} + +moduleclass = 'devel' diff --git a/m/M4/M4-1.4.17.eb b/m/M4/M4-1.4.17.eb new file mode 100644 index 00000000..1c61b4b7 --- /dev/null +++ b/m/M4/M4-1.4.17.eb @@ -0,0 +1,23 @@ +easyblock = 'ConfigureMake' + +name = 'M4' +version = '1.4.17' + +homepage = 'http://www.gnu.org/software/m4/m4.html' +description = """GNU M4 is an implementation of the traditional Unix macro processor. It is mostly SVR4 compatible + although it has some extensions (for example, handling more than 9 positional parameters to macros). + GNU M4 also has built-in functions for including files, running shell commands, doing arithmetic, etc.""" + +toolchain = {'name': 'dummy', 'version': ''} + +sources = [SOURCELOWER_TAR_GZ] +source_urls = [GNU_SOURCE] + +configopts = "--enable-cxx CPPFLAGS='-fgnu89-inline'" + +sanity_check_paths = { + 'files': ["bin/m4"], + 'dirs': [], +} + +moduleclass = 'devel' diff --git a/m/M4/M4-1.4.18.eb b/m/M4/M4-1.4.18.eb new file mode 100644 index 00000000..30aa5bf6 --- /dev/null +++ b/m/M4/M4-1.4.18.eb @@ -0,0 +1,28 @@ +easyblock = 'ConfigureMake' + +name = 'M4' +version = '1.4.18' + +homepage = 'http://www.gnu.org/software/m4/m4.html' +description = """GNU M4 is an implementation of the traditional Unix macro processor. It is mostly SVR4 compatible + although it has some extensions (for example, handling more than 9 positional parameters to macros). + GNU M4 also has built-in functions for including files, running shell commands, doing arithmetic, etc.""" + +toolchain = {'name': 'dummy', 'version': ''} + +sources = [SOURCELOWER_TAR_GZ] +source_urls = [GNU_SOURCE] + +# use same binutils version that was used when building GCC toolchain +builddependencies = [('binutils', '2.27', '', True)] + +# '-fgnu89-inline' is required to avoid linking errors with older glibc's, +# see https://github.com/hpcugent/easybuild-easyconfigs/issues/529 +configopts = "--enable-cxx CPPFLAGS=-fgnu89-inline" + +sanity_check_paths = { + 'files': ["bin/m4"], + 'dirs': [], +} + +moduleclass = 'devel' diff --git a/m/MATIO/MATIO-1.5.2-goolf-1.4.10.eb b/m/MATIO/MATIO-1.5.2-goolf-1.4.10.eb new file mode 100644 index 00000000..2f00cc2d --- /dev/null +++ b/m/MATIO/MATIO-1.5.2-goolf-1.4.10.eb @@ -0,0 +1,24 @@ +## +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# +# Copyright:: Copyright 2014-2015 The Cyprus Institute +# Authors:: Thekla Loizou +# License:: MIT/GPL +# +## +easyblock = 'ConfigureMake' + +name = 'MATIO' +version = '1.5.2' + +homepage = 'http://sourceforge.net/projects/matio/' +description = """matio is an C library for reading and writing Matlab MAT files.""" + +toolchain = {'name': 'goolf', 'version': '1.4.10'} + +source_urls = [SOURCEFORGE_SOURCE] +sources = [SOURCELOWER_ZIP] + +dependencies = [('zlib', '1.2.7')] + +moduleclass = 'lib' diff --git a/m/MATIO/MATIO-1.5.2-intel-2015b.eb b/m/MATIO/MATIO-1.5.2-intel-2015b.eb new file mode 100644 index 00000000..9fb67afb --- /dev/null +++ b/m/MATIO/MATIO-1.5.2-intel-2015b.eb @@ -0,0 +1,24 @@ +## +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# +# Copyright:: Copyright 2014-2015 The Cyprus Institute +# Authors:: Thekla Loizou +# License:: MIT/GPL +# +## +easyblock = 'ConfigureMake' + +name = 'MATIO' +version = '1.5.2' + +homepage = 'http://sourceforge.net/projects/matio/' +description = """matio is an C library for reading and writing Matlab MAT files.""" + +toolchain = {'name': 'intel', 'version': '2015b'} + +source_urls = [SOURCEFORGE_SOURCE] +sources = [SOURCELOWER_ZIP] + +dependencies = [('zlib', '1.2.8')] + +moduleclass = 'lib' diff --git a/m/MATIO/MATIO-1.5.2-intel-2017a.eb b/m/MATIO/MATIO-1.5.2-intel-2017a.eb new file mode 100644 index 00000000..c5d36e2c --- /dev/null +++ b/m/MATIO/MATIO-1.5.2-intel-2017a.eb @@ -0,0 +1,24 @@ +## +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# +# Copyright:: Copyright 2014-2015 The Cyprus Institute +# Authors:: Thekla Loizou +# License:: MIT/GPL +# +## +easyblock = 'ConfigureMake' + +name = 'MATIO' +version = '1.5.2' + +homepage = 'http://sourceforge.net/projects/matio/' +description = """matio is an C library for reading and writing Matlab MAT files.""" + +toolchain = {'name': 'intel', 'version': '2017a'} + +source_urls = [SOURCEFORGE_SOURCE] +sources = [SOURCELOWER_ZIP] + +dependencies = [('zlib', '1.2.11')] + +moduleclass = 'lib' diff --git a/m/MDSplus/MDSplus-7.0.67-foss-2016a-Java-1.7.0_79-Python-2.7.11.eb b/m/MDSplus/MDSplus-7.0.67-foss-2016a-Java-1.7.0_79-Python-2.7.11.eb new file mode 100644 index 00000000..111f00bf --- /dev/null +++ b/m/MDSplus/MDSplus-7.0.67-foss-2016a-Java-1.7.0_79-Python-2.7.11.eb @@ -0,0 +1,35 @@ +easyblock = 'ConfigureMake' + +name = 'MDSplus' +version = '7.0.67' +versionsuffix = '-Java-%(javaver)s-Python-%(pyver)s' + +homepage = 'http://mdsplus.org/' +description = """MDSplus is a set of software tools for data acquisition and storage and a + methodology for management of complex scientific data.""" + +toolchain = {'name': 'foss', 'version': '2016a'} + +source_urls = ['https://github.com/%(name)s/%(namelower)s/archive'] +sources = ['stable_release-%s.zip' % version.replace('.','-')] + +dependencies = [ + ('Java', '1.7.0_79', '', True), + ('Python', '2.7.11'), + ('HDF5', '1.8.16'), + ('libxml2', '2.9.3', '-Python-%(pyver)s'), + ('zlib', '1.2.8') +] + +configopts = '--with-jdk=$JAVA_HOME' + +preconfigopts = 'export CFLAGS="$CFLAGS -I$EBROOTLIBXML2/include/libxml2 " && ' + +parallel = 1 + +modextravars = { + 'MDSPLUS_DIR': '%(installdir)s', + 'MDS_PATH': '%(installdir)s/tdi', +} + +moduleclass = 'data' diff --git a/m/MDSplus/MDSplus-7.0.67-goolf-1.5.16-Java-1.7.0_79-Python-2.7.9.eb b/m/MDSplus/MDSplus-7.0.67-goolf-1.5.16-Java-1.7.0_79-Python-2.7.9.eb new file mode 100644 index 00000000..25d836f8 --- /dev/null +++ b/m/MDSplus/MDSplus-7.0.67-goolf-1.5.16-Java-1.7.0_79-Python-2.7.9.eb @@ -0,0 +1,35 @@ +easyblock = 'ConfigureMake' + +name = 'MDSplus' +version = '7.0.67' +versionsuffix = '-Java-%(javaver)s-Python-%(pyver)s' + +homepage = 'http://mdsplus.org/' +description = """MDSplus is a set of software tools for data acquisition and storage and a methodology + for management of complex scientific data.""" + +toolchain = {'name': 'goolf', 'version': '1.5.16'} + +source_urls = ['https://github.com/%(name)s/%(namelower)s/archive'] +sources = ['stable_release-%s.zip' % version.replace('.','-')] + +dependencies = [ + ('Java', '1.7.0_79', '', True), + ('Python', '2.7.9'), + ('HDF5', '1.8.9'), + ('libxml2', '2.9.2'), + ('zlib', '1.2.8') +] + +configopts = '--with-jdk=$JAVA_HOME' + +preconfigopts = 'export CFLAGS="$CFLAGS -I$EBROOTLIBXML2/include/libxml2 " && ' + +parallel = 1 + +modextravars = { + 'MDSPLUS_DIR': '%(installdir)s', + 'MDS_PATH': '%(installdir)s/tdi', +} + +moduleclass = 'data' diff --git a/m/MEME/MEME-4.8.0-goolf-1.4.10.eb b/m/MEME/MEME-4.8.0-goolf-1.4.10.eb new file mode 100644 index 00000000..c2f466b3 --- /dev/null +++ b/m/MEME/MEME-4.8.0-goolf-1.4.10.eb @@ -0,0 +1,42 @@ +## +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# +# Copyright:: Copyright 2012-2014 Uni.Lu/LCSB, NTUA +# Authors:: Fotis Georgatos +# 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 +## + +easyblock = 'ConfigureMake' + +name = 'MEME' +version = '4.8.0' + +homepage = 'http://meme.nbcr.net/' +description = """The MEME Suite allows you to: * discover motifs using MEME, DREME (DNA only) or + GLAM2 on groups of related DNA or protein sequences, * search sequence databases with motifs using + MAST, FIMO, MCAST or GLAM2SCAN, * compare a motif to all motifs in a database of motifs, * associate + motifs with Gene Ontology terms via their putative target genes, and * analyse motif enrichment + using SpaMo or CentriMo.""" + +toolchain = {'name': 'goolf', 'version': '1.4.10'} + +# Download from eg. http://ebi.edu.au/ftp/software/MEME/4.8.0/meme_4.8.0.tar.gz +sources = ['meme_%(version)s.tar.gz'] +source_urls = ['http://ebi.edu.au/ftp/software/MEME/%(version)s'] + +dependencies = [ + ('libxml2', '2.9.1'), + ('libxslt', '1.1.28'), + ('zlib', '1.2.7'), +] + +sanity_check_paths = { + 'files': ["bin/meme"], + 'dirs': ["doc", "lib"], +} + +moduleclass = 'bio' diff --git a/m/MEME/MEME-4.8.0-ictce-5.3.0.eb b/m/MEME/MEME-4.8.0-ictce-5.3.0.eb new file mode 100644 index 00000000..e039fb1f --- /dev/null +++ b/m/MEME/MEME-4.8.0-ictce-5.3.0.eb @@ -0,0 +1,43 @@ +## +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# +# Copyright:: Copyright 2012-2014 Uni.Lu/LCSB, NTUA +# Authors:: Fotis Georgatos +# 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 +## + +easyblock = 'ConfigureMake' + +name = 'MEME' +version = '4.8.0' + +homepage = 'http://meme.nbcr.net/' +description = """The MEME Suite allows you to: * discover motifs using MEME, DREME (DNA only) or + GLAM2 on groups of related DNA or protein sequences, * search sequence databases with motifs using + MAST, FIMO, MCAST or GLAM2SCAN, * compare a motif to all motifs in a database of motifs, * associate + motifs with Gene Ontology terms via their putative target genes, and * analyse motif enrichment + using SpaMo or CentriMo.""" + + +toolchain = {'name': 'ictce', 'version': '5.3.0'} + +# Download from eg. http://ebi.edu.au/ftp/software/MEME/4.8.0/meme_4.8.0.tar.gz +sources = ['meme_%(version)s.tar.gz'] +source_urls = ['http://ebi.edu.au/ftp/software/MEME/%(version)s'] + +dependencies = [ + ('libxml2', '2.9.1'), + ('libxslt', '1.1.28'), + ('zlib', '1.2.7'), +] + +sanity_check_paths = { + 'files': ["bin/meme"], + 'dirs': ["doc", "lib"], +} + +moduleclass = 'bio' diff --git a/m/METIS/METIS-5.1.0-intel-2017.00.eb b/m/METIS/METIS-5.1.0-intel-2017.00.eb new file mode 100644 index 00000000..eb7a584c --- /dev/null +++ b/m/METIS/METIS-5.1.0-intel-2017.00.eb @@ -0,0 +1,22 @@ +name = 'METIS' +version = '5.1.0' + +homepage = 'http://glaros.dtc.umn.edu/gkhome/metis/metis/overview' +description = """METIS is a set of serial programs for partitioning graphs, partitioning finite element meshes, + and producing fill reducing orderings for sparse matrices. The algorithms implemented in METIS are based on the + multilevel recursive-bisection, multilevel k-way, and multi-constraint partitioning schemes.""" + +toolchain = {'name': 'intel', 'version': '2017.00'} +toolchainopts = {'optarch': True, 'pic': True} + +sources = [SOURCELOWER_TAR_GZ] +source_urls = [ + 'http://glaros.dtc.umn.edu/gkhome/fetch/sw/metis', + 'http://glaros.dtc.umn.edu/gkhome/fetch/sw/metis/OLD', +] + +builddependencies = [('CMake', '3.5.2')] + +configopts = ['', 'shared=1'] + +moduleclass = 'math' diff --git a/m/MIGRATE-N/MIGRATE-N-4.2.8-foss-2016a.eb b/m/MIGRATE-N/MIGRATE-N-4.2.8-foss-2016a.eb new file mode 100644 index 00000000..b6f05aeb --- /dev/null +++ b/m/MIGRATE-N/MIGRATE-N-4.2.8-foss-2016a.eb @@ -0,0 +1,42 @@ +easyblock = 'ConfigureMake' + +name = 'MIGRATE-N' +version = '4.2.8' + +homepage = 'http://popgen.sc.fsu.edu/Migrate/Migrate-n.html' +description = """ +Migrate estimates population parameters, effective population sizes +and migration rates of n populations, using genetic data. It +uses a coalescent theory approach taking into account history of +mutations and uncertainty of the genealogy. +""" + +toolchain = {'name': 'foss', 'version': '2016a'} + +sources = ['migrate-%(version)s.src.tar.gz'] +source_urls = [ + 'http://popgen.sc.fsu.edu/currentversions/', + 'http://popgen.sc.fsu.edu/oldversions/%(version_major)s.x/%(version_major_minor)s', + 'http://popgen.sc.fsu.edu/oldversions/', + 'http://popgen.sc.fsu.edu/newversions/', +] + +patches = [ + 'migrate-%(version)s_install.patch', +] + +dependencies = [ + ('zlib', '1.2.8'), +] + +configopts = '--enable-A4 "CC=$CC" STDCPLUS=-lstdc++ ' +prebuildopts = 'make mpis && make clean && ' + +start_dir = 'src' + +sanity_check_paths = { + 'files': ['bin/%s' % x for x in ['migrate-n','migrate-n-mpi']], + 'dirs': ['man'], +} + +moduleclass = 'bio' diff --git a/m/MIKE/MIKE-2014.eb b/m/MIKE/MIKE-2014.eb new file mode 100644 index 00000000..96df8584 --- /dev/null +++ b/m/MIKE/MIKE-2014.eb @@ -0,0 +1,32 @@ +easyblock = 'ConfigureMake' + +name = "MIKE" +version = '2014' + +homepage = 'http://www.mikepoweredbydhi.com' +description = """ +MIKE Powered by DHI is a part of DHI, the global organisation dedicated to +solving challenges in water environments worldwide.""" + +toolchain = {'name': 'dummy', 'version': ''} # empty version to ensure that dependencies are loaded + +skipsteps = ['source', 'patch', 'prepare','configure', 'build', 'test', 'install', 'sanitycheck'] + +sanity_check_paths = { + 'files': [''], + 'dirs': ['%(installdir)s/bin'] +} + +dependencies = [('intel', '2015b')] + +modextrapaths = {"PATH": 'bin', + "LD_LIBRARY_PATH": 'bin', + "C_INCLUDE_PATH": 'include', + "CPLUS_INCLUDE_PATH": 'include' +} + +modextravars = {'MIKE_HOME': '%(installdir)s', + 'MIKE_DIR': '%(installdir)s' +} + +moduleclass = 'tools' diff --git a/m/MIKE/MIKE-2016-SP2.eb b/m/MIKE/MIKE-2016-SP2.eb new file mode 100644 index 00000000..1eea0541 --- /dev/null +++ b/m/MIKE/MIKE-2016-SP2.eb @@ -0,0 +1,33 @@ +easyblock = 'ConfigureMake' + +name = "MIKE" +version = '2016' +versionsuffix = '-SP2' + +homepage = 'http://www.mikepoweredbydhi.com' +description = """ +MIKE Powered by DHI is a part of DHI, the global organisation dedicated to +solving challenges in water environments worldwide.""" + +toolchain = {'name': 'dummy', 'version': ''} # empty version to ensure that dependencies are loaded + +skipsteps = ['source', 'patch', 'prepare','configure', 'install', 'build', 'test', 'sanitycheck'] + +sanity_check_paths = { + 'files': ['%(installdir)s/EULA.txt'], + 'dirs': ['%(installdir)s/bin'] +} + +dependencies = [('intel', '2016.01')] + +modextrapaths = {"PATH": 'bin', + "LD_LIBRARY_PATH": 'bin', + "C_INCLUDE_PATH": 'include', + "CPLUS_INCLUDE_PATH": 'include' +} + +modextravars = {'MIKE_HOME': '%(installdir)s', + 'MIKE_DIR': '%(installdir)s' +} + +moduleclass = 'tools' diff --git a/m/MIKE/MIKE-2016.eb b/m/MIKE/MIKE-2016.eb new file mode 100644 index 00000000..bdc94780 --- /dev/null +++ b/m/MIKE/MIKE-2016.eb @@ -0,0 +1,32 @@ +easyblock = 'ConfigureMake' + +name = "MIKE" +version = '2016' + +homepage = 'http://www.mikepoweredbydhi.com' +description = """ +MIKE Powered by DHI is a part of DHI, the global organisation dedicated to +solving challenges in water environments worldwide.""" + +toolchain = {'name': 'dummy', 'version': ''} # empty version to ensure that dependencies are loaded + +skipsteps = ['source', 'patch', 'prepare','configure', 'build', 'test', 'sanitycheck'] + +sanity_check_paths = { + 'files': [''], + 'dirs': ['%(installdir)s/bin'] +} + +dependencies = [('intel', '2015b')] + +modextrapaths = {"PATH": 'bin', + "LD_LIBRARY_PATH": 'bin', + "C_INCLUDE_PATH": 'include', + "CPLUS_INCLUDE_PATH": 'include' +} + +modextravars = {'MIKE_HOME': '%(installdir)s', + 'MIKE_DIR': '%(installdir)s' +} + +moduleclass = 'tools' diff --git a/m/MLD2P4/MLD2P4-2.0-rc4.eb b/m/MLD2P4/MLD2P4-2.0-rc4.eb new file mode 100644 index 00000000..cadd93c5 --- /dev/null +++ b/m/MLD2P4/MLD2P4-2.0-rc4.eb @@ -0,0 +1,32 @@ +easyblock = 'ConfigureMake' + +name = 'MLD2P4' +version = '2.0-rc4' + +homepage = 'http://www.mld2p4.it' +description = """MLD2P4 (Multi-Level Domain Decomposition Parallel Preconditioners + Package based on PSBLAS) is a package of parallel algebraic multi-level preconditioners. +It implements various versions of one-level additive and of multi-level additive +and hybrid Schwarz algorithms. In the multi-level case, a purely algebraic approach + is applied to generate coarse-level corrections, so that no geometric background + is needed concerning the matrix to be preconditioned. +The matrix is assumed to be square, real or complex, with a symmetric sparsity pattern.""" + +toolchain = {'name': 'GCC', 'version': '4.9.3-2.25'} +toolchainopts = {'pic': True} + +dependencies = [ + ('PSBLAS', '3.3.4-3'), +] + +source_urls = ['http://www.mld2p4.it/images/docs/'] +sources = [SOURCELOWER_TGZ] + +configopts = '--with-psblas=$EBROOTPSBLAS' + +sanity_check_paths = { + 'files': [], + 'dirs': ['lib'], +} + +moduleclass = 'math' diff --git a/m/MOSAIK/MOSAIK-2.2.28-goolf-1.4.10-20140425-24cf06.eb b/m/MOSAIK/MOSAIK-2.2.28-goolf-1.4.10-20140425-24cf06.eb new file mode 100644 index 00000000..5b232963 --- /dev/null +++ b/m/MOSAIK/MOSAIK-2.2.28-goolf-1.4.10-20140425-24cf06.eb @@ -0,0 +1,37 @@ +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# Author: Pablo Escobar Lopez +# sciCORE - University of Basel +# SIB Swiss Institute of Bioinformatics + +easyblock = 'MakeCp' + +name = 'MOSAIK' +version = '2.2.28' +git_commit_id = '24cf06' #first six digits of the commit id we will download from github +versionsuffix = '-20140425-%s' % git_commit_id + +homepage = 'https://code.google.com/p/mosaik-aligner/' +description = """ MOSAIK is a reference-guided aligner for next-generation + sequencing technologies """ + +toolchain = {'name': 'goolf', 'version': '1.4.10'} + +source_urls = ['https://github.com/wanpinglee/MOSAIK/archive/'] +sources = ['%s.tar.gz' % (git_commit_id)] + +dependencies = [('zlib', '1.2.8')] + +parallel = 1 + +start_dir = "src" + +buildopts = ' BIN_DIR="./bin" OBJ_DIR="./obj"' + +files_to_copy = ["bin", "../README", "demo"] + +sanity_check_paths = { + 'files': ["bin/%s" % x for x in ["MosaikAligner", "MosaikBuild", "MosaikJump", "MosaikText"]], + 'dirs': [], +} + +moduleclass = 'bio' diff --git a/m/MOSAIK/MOSAIK-2.2.28-ictce-6.2.5-20140425-24cf06.eb b/m/MOSAIK/MOSAIK-2.2.28-ictce-6.2.5-20140425-24cf06.eb new file mode 100644 index 00000000..77047640 --- /dev/null +++ b/m/MOSAIK/MOSAIK-2.2.28-ictce-6.2.5-20140425-24cf06.eb @@ -0,0 +1,37 @@ +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# Author: Pablo Escobar Lopez +# sciCORE - University of Basel +# SIB Swiss Institute of Bioinformatics + +easyblock = 'MakeCp' + +name = 'MOSAIK' +version = '2.2.28' +git_commit_id = '24cf06' #first six digits of the commit id we will download from github +versionsuffix = '-20140425-%s' % git_commit_id + +homepage = 'https://code.google.com/p/mosaik-aligner/' +description = """ MOSAIK is a reference-guided aligner for next-generation + sequencing technologies """ + +toolchain = {'name': 'ictce', 'version': '6.2.5'} + +source_urls = ['https://github.com/wanpinglee/MOSAIK/archive/'] +sources = ['%s.tar.gz' % (git_commit_id)] + +dependencies = [('zlib', '1.2.8')] + +parallel = 1 + +start_dir = "src" + +buildopts = ' BIN_DIR="./bin" OBJ_DIR="./obj"' + +files_to_copy = ["bin", "../README", "demo"] + +sanity_check_paths = { + 'files': ["bin/%s" % x for x in ["MosaikAligner", "MosaikBuild", "MosaikJump", "MosaikText"]], + 'dirs': [], +} + +moduleclass = 'bio' diff --git a/m/MPC/MPC-1.0.2-intel-2017.00.eb b/m/MPC/MPC-1.0.2-intel-2017.00.eb new file mode 100644 index 00000000..3e36f865 --- /dev/null +++ b/m/MPC/MPC-1.0.2-intel-2017.00.eb @@ -0,0 +1,30 @@ +easyblock = 'ConfigureMake' + +name = 'MPC' +version = '1.0.2' + +homepage = 'http://www.multiprecision.org/' +description = """Gnu Mpc is a C library for the arithmetic of + complex numbers with arbitrarily high precision and correct + rounding of the result. It extends the principles of the IEEE-754 + standard for fixed precision real floating point numbers to + complex numbers, providing well-defined semantics for every + operation. At the same time, speed of operation at high precision + is a major design goal.""" + +toolchain = {'name': 'intel', 'version': '2017.00'} + +source_urls = ['http://www.multiprecision.org/mpc/download/'] +sources = [SOURCELOWER_TAR_GZ] + +dependencies = [('GMP', '6.1.1'), + ('MPFR', '3.1.5')] + +runtest = 'check' + +sanity_check_paths = { + 'files': ['lib/libmpc.%s' % SHLIB_EXT, 'include/mpc.h'], + 'dirs': [] +} + +moduleclass = 'math' diff --git a/m/MPFR/MPFR-3.1.5-intel-2017.00.eb b/m/MPFR/MPFR-3.1.5-intel-2017.00.eb new file mode 100644 index 00000000..d71e3b43 --- /dev/null +++ b/m/MPFR/MPFR-3.1.5-intel-2017.00.eb @@ -0,0 +1,26 @@ +easyblock = 'ConfigureMake' + +name = 'MPFR' +version = '3.1.5' + +homepage = 'http://www.mpfr.org' +description = """The MPFR library is a C library for multiple-precision + floating-point computations with correct rounding.""" + +toolchain = {'name': 'intel', 'version': '2017.00'} + +source_urls = ['http://www.mpfr.org/mpfr-%(version)s/'] +sources = [SOURCELOWER_TAR_BZ2] + +patches = ['MPFR_ictce_remove-deprecated-mp.patch'] + +dependencies = [('GMP', '6.1.1')] + +runtest = 'check' + +sanity_check_paths = { + 'files': ['lib/libmpfr.%s' % SHLIB_EXT, 'include/mpfr.h'], + 'dirs': [] +} + +moduleclass = 'math' diff --git a/m/MPI_NET/MPI_NET-1.2.0-gompi-2015e.eb b/m/MPI_NET/MPI_NET-1.2.0-gompi-2015e.eb new file mode 100644 index 00000000..2315cdad --- /dev/null +++ b/m/MPI_NET/MPI_NET-1.2.0-gompi-2015e.eb @@ -0,0 +1,30 @@ +name = 'MPI_NET' +version = '1.2.0' + +easyblock = 'ConfigureMake' + +homepage = 'http://www.osl.iu.edu/research/mpi.net/' +description = """MPI.NET is a high-performance, easy-to-use implementation of the Message Passing Interface (MPI) +for Microsoft's .NET environment""" + +toolchain = {'name': 'gompi', 'version': '2015e'} + +dependencies = [('Mono', '3.12.1', '', ('GCC', '4.4.7-system')), + ('OpenMPI', '1.8.6', '', ('GCC', '4.4.7-system')) +] + +patches = [('mpi.net-1.2.0-unsafe.patch', 1)] + +preconfigopts = 'sh ./autogen.sh && ' + +sources = ['MPI.NET-%(version)s.tar.gz'] +source_urls = ['https://github.com/jmp75/%(name)s/archive/'] + +sanity_check_paths = { + 'files': ['lib/libmpinet.%s' % SHLIB_EXT], + 'dirs': ['lib'], +} + +maxparallel = 4 + +moduleclass = 'mpi' diff --git a/m/MPI_NET/MPI_NET-1.2.0-intel-2016.01.eb b/m/MPI_NET/MPI_NET-1.2.0-intel-2016.01.eb new file mode 100644 index 00000000..7e360d81 --- /dev/null +++ b/m/MPI_NET/MPI_NET-1.2.0-intel-2016.01.eb @@ -0,0 +1,32 @@ +name = 'MPI_NET' +version = '1.2.0' + +easyblock = 'ConfigureMake' + +homepage = 'http://www.osl.iu.edu/research/mpi.net/' +description = """MPI.NET is a high-performance, easy-to-use implementation of the Message Passing Interface (MPI) +for Microsoft's .NET environment""" + +toolchain = {'name': 'intel', 'version': '2016.01'} + +dependencies = [('Mono', '4.2.2.10')] + +patches = [('mpi.net-1.2.0-unsafe.patch', 1), + ('configure.ac.patch') +] + +preconfigopts = 'sh ./autogen.sh && ' + +prebuildopts = 'cd MPI && perl ./Unsafe.pl $EBROOTIMPI/include64/mpi.h ./Unsafe.cs CustomUnsafe.cs cbridge.c && cd .. && ' + +sources = ['MPI.NET-%(version)s.tar.gz'] +source_urls = ['https://github.com/jmp75/%(name)s/archive/'] + +sanity_check_paths = { + 'files': ['lib/MPI.dll'], + 'dirs': ['lib'], +} + +maxparallel = 4 + +moduleclass = 'mpi' diff --git a/m/MPI_NET/configure.ac.patch b/m/MPI_NET/configure.ac.patch new file mode 100644 index 00000000..dda535e5 --- /dev/null +++ b/m/MPI_NET/configure.ac.patch @@ -0,0 +1,46 @@ +diff --git a/configure.ac b/configure.ac +index 1fc8651..fe5e8ba 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -20,7 +20,7 @@ AC_PROG_LIBTOOL + + dnl C# compiler + AC_PATH_PROG(CSC, csc, no) +-AC_PATH_PROG(MCS, gmcs, no) ++AC_PATH_PROG(MCS, mcs, no) + AC_PATH_PROG(MONO, mono, no) + + dnl CIL assembler +@@ -58,7 +58,7 @@ ACX_MPI([], [AC_MSG_ERROR([No MPI implementation found])]) + AC_PATH_PROG(MPIEXEC, mpiexec, no) + + dnl Whether we need the C bridge to make the MPI.NET assembly work +-need_cbridge="yes" ++need_cbridge="no" + + dnl Determine which MPI this is (if we can). This block of checks will + dnl set three variables: +@@ -138,21 +138,19 @@ fi + + dnl Find the actual file , because we need to parse it to + dnl determine values of the various MPI constants. +-if test "x$MPI_INCLUDEDIRS" != "x" ; then + AC_MSG_CHECKING([for location of mpi.h]) + +- for dir in $MPI_INCLUDEDIRS ; do ++#PATCH: Set dir to path to Intel MPI on Salomon ++ dir="/apps/mpi/impi/5.0.3.048-iccifort-2015.3.187-GNU-5.1.0-2.25/include64" + if test -f "$dir/mpi.h" ; then + MPI_HEADER="$dir/mpi.h" + fi +- done + + if test "x$MPI_HEADER" == "x" ; then + AC_MSG_ERROR([not found!]) + else + AC_MSG_RESULT($MPI_HEADER) + fi +-fi + + if test "$MPI_KIND" = "mpich2" ; then + dnl If it's MPICH2-based, make sure that MPICH2 was built as a shared diff --git a/m/MPI_NET/mpi.net-1.2.0-unsafe.patch b/m/MPI_NET/mpi.net-1.2.0-unsafe.patch new file mode 100644 index 00000000..5ff822b4 --- /dev/null +++ b/m/MPI_NET/mpi.net-1.2.0-unsafe.patch @@ -0,0 +1,2684 @@ +diff --git a/MPI/CustomUnsafe.cs b/MPI/CustomUnsafe.cs +new file mode 100644 +index 0000000..3ce52f2 +--- /dev/null ++++ b/MPI/CustomUnsafe.cs +@@ -0,0 +1,2614 @@ ++/* Copyright (C) 2007 The Trustees of Indiana University ++ * ++ * Use, modification and distribution is subject to the Boost Software ++ * License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at ++ * http://www.boost.org/LICENSE_1_0.txt) ++ * ++ * Authors: Douglas Gregor ++ * Andrew Lumsdaine ++ * ++ * This file provides an interface to the native C MPI from within C#, ++ * exposing all of the various functions and constants that are part ++ * of MPI. Since the MPI standard provides an API and not an ABI, the ++ * contents of this file are tied specifically to Microsoft's MPI ++ * implementation, MS-MPI, for which this file can be used in 32- or ++ * 64-bit Windows environments without any additional customization, ++ * built with the provided Visual Studio projects. ++ * ++ * For all other environments and MPI implementations, the data types ++ * and constants must be changed to suit the environment. These ++ * changes occur in three places. First, each of the MPI.NET source ++ * files contains a block of MPI data type definitions that are ++ * controlled by various preprocessor defines (e.g., ++ * MPI_HANDLES_ARE_POINTERS); the configure script will select the ++ * appropriate set of defines when it runs. Second, when using the ++ * configure script, this file will be translated at build time into ++ * CustomUnsafe.cs by Unsafe.pl. This Perl script parses mpi.h, then ++ * updates the constants in this file to reflect the constants ++ * provided by the MPI implementation. This process may also involve ++ * creating a small C shared library that helps map some additional ++ * constants into C# (see the generated cbridge.c and its library, ++ * libmpinet). Finally, the configure script generates a file ++ * MPI.dll.config, which is a Mono-specific file that remaps some of ++ * the DLL and MPI names to platform-specific versions. This file is ++ * also generated by the configure script. ++ */ ++using System; ++using System.Runtime.InteropServices; ++ ++namespace MPI ++{ ++ // MPI data type definitions ++#if MPI_HANDLES_ARE_POINTERS ++ using MPI_Aint = IntPtr; ++ using MPI_Comm = IntPtr; ++ using MPI_Datatype = IntPtr; ++ using MPI_Errhandler = IntPtr; ++ using MPI_File = IntPtr; ++ using MPI_Group = IntPtr; ++ using MPI_Info = IntPtr; ++ using MPI_Op = IntPtr; ++ using MPI_Request = IntPtr; ++ using MPI_User_function = IntPtr; ++ using MPI_Win = IntPtr; ++#else ++ using MPI_Aint = IntPtr; ++ using MPI_Comm = Int32; ++ using MPI_Datatype = Int32; ++ using MPI_Errhandler = Int32; ++ using MPI_File = IntPtr; ++ using MPI_Group = Int32; ++ using MPI_Info = Int32; ++ using MPI_Op = Int32; ++ using MPI_Request = Int32; ++ using MPI_User_function = IntPtr; ++ using MPI_Win = Int32; ++#endif ++ ++ /// ++ /// Direct, low-level interface to the system MPI library. ++ /// ++ /// ++ /// ++ /// This low-level interface provides direct access to the unmanaged ++ /// MPI library provided by the system. It is by nature unsafe, and ++ /// should only be used by programmers experienced both in the use ++ /// of MPI from lower-level languages (e.g., C, Fortran) and with an ++ /// understanding of the interaction between managed and unmanaged ++ /// code, especially those issues that pertain to memory ++ /// pinning/unpinning. ++ /// ++ /// A second use of the Unsafe class is purely for documentation reasons. Each member of the ++ /// Unsafe class corresponds to an entity in the standard, C MPI, and the documentation of each member ++ /// of Unsafe will point to the corresponding functionality within MPI.NET. Programmers already familiar ++ /// with the Message Passing Interface in C can use the Unsafe class as a reference to better understand ++ /// how to apply their knowledge of C MPI to MPI.NET programs. ++ /// ++ public unsafe class Unsafe ++ { ++ ++ // I did not manage to modify the Unsafe.pl script to cater for replacing OPAL_* constants. I resort to the following to get by: ++ // taken from /usr/lib/openmpi/include/mpi.h in the Debian openmpi-dev package ++ public const int OPAL_MAX_PROCESSOR_NAME = 256; ++ public const int OPAL_MAX_ERROR_STRING = 256; ++ ++#if MPICH2 ++ private const string MPI_DLL = "mpich2.dll"; ++#else ++ private const string MPI_DLL = "msmpi.dll"; ++#endif ++ ++ /// ++ /// Low-level representation of the status of an MPI communication operation. ++ /// ++ /// ++ /// This structure is used internally by MPI.NET, and most users will instead see the MPI.NET version ++ /// of the message-status class, . Unless you are interacting directly with the ++ /// low-level MPI interface (which is not typically recommended), use instead. ++ /// ++ [StructLayout(LayoutKind.Sequential)] ++ public struct MPI_Status ++ { ++ public int MPI_SOURCE; ++ public int MPI_TAG; ++ public int MPI_ERROR; ++ internal int _cancelled; ++ internal UIntPtr _ucount; ++ } ++ ++ #region Predefined communicators ++ /// ++ /// Predefined communicator containing all of the MPI processes. See . ++ /// ++ public static readonly MPI_Comm MPI_COMM_WORLD = mpinet_MPI_COMM_WORLD(); ++ ++ /// ++ /// Predefined communicator containing only the calling process. See . ++ /// ++ public static readonly MPI_Comm MPI_COMM_SELF = mpinet_MPI_COMM_SELF(); ++ ++ /// ++ /// Predefined communicator representing "no communicator". In the higher-level interface, this ++ /// is represented by a null object. ++ /// ++ public static readonly MPI_Comm MPI_COMM_NULL = mpinet_MPI_COMM_NULL(); ++ #endregion ++ ++ #region Built-in data types ++ /// ++ /// A single character. There is no equivalent to this type in C# or .NET. ++ /// ++ public static readonly MPI_Datatype MPI_CHAR = mpinet_MPI_CHAR(); ++ ++ /// ++ /// A single, signed character. This is equivalent to the sbyte type ++ /// in C# and the System.SByte type in .NET. ++ /// ++ public static readonly MPI_Datatype MPI_SIGNED_CHAR = mpinet_MPI_SIGNED_CHAR(); ++ ++ /// ++ /// A single, unsigned character. There is no equivalent to this type in C# or .NET. ++ /// ++ public static readonly MPI_Datatype MPI_UNSIGNED_CHAR = mpinet_MPI_UNSIGNED_CHAR(); ++ ++ /// ++ /// A single byte. This is equivalent to the byte type ++ /// in C# and the System.Byte type in .NET. ++ /// ++ public static readonly MPI_Datatype MPI_BYTE = mpinet_MPI_BYTE(); ++ ++ /// ++ /// A single, wide character. The equivalent is char in C# and System.Char in .NET. ++ /// ++ public static readonly MPI_Datatype MPI_WCHAR = mpinet_MPI_WCHAR(); ++ ++ /// ++ /// A signed short integer. This is equivalent to the short type in C# and ++ /// System.Int16 in .NET. ++ /// ++ public static readonly MPI_Datatype MPI_SHORT = mpinet_MPI_SHORT(); ++ ++ /// ++ /// An unsigned short integer. This is equivalent to the ushort type in C# and ++ /// System.UInt16 in .NET. ++ /// ++ public static readonly MPI_Datatype MPI_UNSIGNED_SHORT = mpinet_MPI_UNSIGNED_SHORT(); ++ ++ /// ++ /// A signed integer. This is equivalent to the int type in C# and ++ /// System.Int32 in .NET. ++ /// ++ public static readonly MPI_Datatype MPI_INT = mpinet_MPI_INT(); ++ ++ /// ++ /// An unsigned integer. This is equivalent to the uint type in C# and ++ /// System.UInt32 in .NET. ++ /// ++ public static readonly MPI_Datatype MPI_UNSIGNED = mpinet_MPI_UNSIGNED(); ++ ++ /// ++ /// A long signed integer. There is no equivalent in C# or .NET, because the 64-bit ++ /// integer in C# and .NET is mapped to . ++ /// ++ public static readonly MPI_Datatype MPI_LONG = mpinet_MPI_LONG(); ++ ++ /// ++ /// A long unsigned integer. There is no equivalent in C# or .NET, because the 64-bit ++ /// unsigned integer in C# and .NET is mapped to . ++ /// ++ public static readonly MPI_Datatype MPI_UNSIGNED_LONG = mpinet_MPI_UNSIGNED_LONG(); ++ ++ /// ++ /// A single-precision floating-point value. The equivalent is float in C# ++ /// and System.Single in .NET. ++ /// ++ public static readonly MPI_Datatype MPI_FLOAT = mpinet_MPI_FLOAT(); ++ ++ /// ++ /// A double-precision floating-point value. The equivalent is double in C# ++ /// and System.Double in .NET. ++ /// ++ public static readonly MPI_Datatype MPI_DOUBLE = mpinet_MPI_DOUBLE(); ++ ++ /// ++ /// An extended-precision floating-point value. There is no equivalent in C# or .NET. ++ /// ++ public static readonly MPI_Datatype MPI_LONG_DOUBLE = mpinet_MPI_LONG_DOUBLE(); ++ ++ /// ++ /// A long long signed integer. The equivalent is long in C# and ++ /// System.Int64 in .NET. This is a synonym for . ++ /// ++ public static readonly MPI_Datatype MPI_LONG_LONG_INT = mpinet_MPI_LONG_LONG_INT(); ++ ++ /// ++ /// A long long unsigned integer. The equivalent is ulong in C# and ++ /// System.UInt64 in .NET. ++ /// ++ public static readonly MPI_Datatype MPI_UNSIGNED_LONG_LONG = mpinet_MPI_UNSIGNED_LONG_LONG(); ++ ++ /// ++ /// A long long signed integer. The equivalent is long in C# and ++ /// System.Int64 in .NET. This is a synonym for . ++ /// ++ public static readonly MPI_Datatype MPI_LONG_LONG = mpinet_MPI_LONG_LONG(); ++ ++ /// ++ /// A special data type used to indicate data that has been packed with . ++ /// This type is only used by the lowest-level MPI operations. The .NET equivalent is the ++ /// type. ++ /// ++ public static readonly MPI_Datatype MPI_PACKED = mpinet_MPI_PACKED(); ++ ++ /// ++ /// A special datatype value that indicates "no datatype". ++ /// ++ public static readonly MPI_Datatype MPI_DATATYPE_NULL = mpinet_MPI_DATATYPE_NULL(); ++ #endregion ++ ++ #region Comparison constants ++ /// ++ /// Constant used in comparisons of MPI objects to denote that two objects are identical. ++ /// See . ++ /// ++ public const int MPI_IDENT = 0; ++ ++ /// ++ /// Constant used in comparisons of MPI objects to denote that two objects are congruent, ++ /// meaning that the objects act the same way but are not identical. ++ /// See . ++ /// ++ public const int MPI_CONGRUENT = 1; ++ ++ /// ++ /// Constant used in comparisons of MPI objects to denote that two objects are similar, ++ /// but assign different ranks to each of the processes. ++ /// See . ++ /// ++ public const int MPI_SIMILAR = 2; ++ ++ /// ++ /// Constant used in comparisons of MPI objects to denote that two objects are completely ++ /// different. ++ /// See . ++ /// ++ public const int MPI_UNEQUAL = 3; ++ #endregion ++ ++ /// ++ /// A special marker used for the "buf" parameter to point-to-point operations ++ /// and some collectives that indicates that the derived datatype contains absolute ++ /// (rather than relative) addresses. The use of MPI_BOTTOM is not recommended. ++ /// This facility is unused in C# and .NET. ++ /// ++ public static unsafe IntPtr MPI_BOTTOM = new IntPtr(0); ++ ++ /// ++ /// Special value for the source or dest argument to any communication operation, ++ /// which indicates that the communication is a no-op. Not supported in MPI.NET. ++ /// ++ public const int MPI_PROC_NULL = -2 ; ++ ++ /// ++ /// Special value used for Intercommunicator collective operations which indicates the root ++ /// process for a collective operation. ++ /// ++ public const int MPI_ROOT = -4 ; ++ ++ /// ++ /// Constant used to indicate that the MPI_Status argument of an MPI ++ /// operation will be ignored. ++ /// ++ public static readonly MPI_Status* MPI_STATUS_IGNORE = ((MPI_Status *) 0); ++ ++ /// ++ /// Constant used to indicate that the array of MPI_Status arguments ++ /// to an MPI operation will be ignored. ++ /// ++ public static readonly MPI_Status* MPI_STATUSES_IGNORE = ((MPI_Status *) 0); ++ ++ /// ++ /// An empty group containing no processes. See . ++ /// ++ public static readonly MPI_Group MPI_GROUP_EMPTY = mpinet_MPI_GROUP_EMPTY(); ++ ++ /// ++ /// A constant used to indicate the "null" group of processes. Corresponds to a null . ++ /// ++ public static readonly MPI_Group MPI_GROUP_NULL = mpinet_MPI_GROUP_NULL(); ++ ++ /// ++ /// A special info key used to indicate that no extra information is being ++ /// passed into a routine. ++ /// ++ public static readonly MPI_Info MPI_INFO_NULL = mpinet_MPI_INFO_NULL(); ++ ++ /// ++ /// "Undefined" value used to identify when a rank is not a part of a group. ++ /// See . ++ /// ++ public const int MPI_UNDEFINED = -32766 ; ++ ++ /// ++ /// A constant used to indicate whether a communicator has a Cartesian topology. ++ /// ++ public const int MPI_CART = 1 ; ++ ++ /// ++ /// A constant used to indicate whether a communicator has a Graph topology. ++ /// ++ public const int MPI_GRAPH = 2 ; ++ ++ #region Datatype constructors ++ /// ++ /// Creates a new datatype from a contiguous block of values ++ /// of the same type. Not used by MPI.NET. ++ /// ++ [DllImport(MPI_DLL, CallingConvention = CallingConvention.StdCall)] ++ public static unsafe extern int MPI_Type_contiguous(int count, MPI_Datatype oldtype, out MPI_Datatype newtype); ++ ++ /// ++ /// Creates a new datatype from a strided block of values of ++ /// the same type. Not used by MPI.NET. ++ /// ++ [DllImport(MPI_DLL, CallingConvention = CallingConvention.StdCall)] ++ public static unsafe extern int MPI_Type_vector(int count, int blocklength, int stride, MPI_Datatype oldtype, out MPI_Datatype newtype); ++ ++ /// ++ /// Creates a new datatype from a strided block of values of ++ /// the same type. Not used by MPI.NET. ++ /// ++ [DllImport(MPI_DLL, CallingConvention = CallingConvention.StdCall)] ++ public static unsafe extern int MPI_Type_hvector(int count, int blocklength, MPI_Aint stride, MPI_Datatype oldtype, out MPI_Datatype newtype); ++ ++ /// ++ /// Creates a new datatype from discontiguous blocks of values ++ /// of the same type. Not used by MPI.NET. ++ /// ++ [DllImport(MPI_DLL, CallingConvention = CallingConvention.StdCall)] ++ public static unsafe extern int MPI_Type_indexed(int count, int[] array_of_blocklengths, int[] array_of_displacements, MPI_Datatype oldtype, out MPI_Datatype newtype); ++ ++ /// ++ /// Creates a new datatype from discontiguous blocks of values ++ /// of the same type. Not used by MPI.NET. ++ /// ++ [DllImport(MPI_DLL, CallingConvention = CallingConvention.StdCall)] ++ public static unsafe extern int MPI_Type_hindexed(int count, int[] array_of_blocklengths, MPI_Aint[] array_of_displacements, MPI_Datatype oldtype, out MPI_Datatype newtype); ++ ++ /// ++ /// Creates a new datatype from a structure containing ++ /// discontiguous blocks of different types. ++ /// This is the most general type constructor, and is used by ++ /// the to ++ /// create MPI datatypes from .NET value types. ++ /// ++ [DllImport(MPI_DLL, CallingConvention = CallingConvention.StdCall)] ++ public static unsafe extern int MPI_Type_struct(int count, int[] array_of_blocklengths, MPI_Aint[] array_of_displacements, MPI_Datatype[] array_of_types, out MPI_Datatype newtype); ++ #endregion ++ ++ #region Pack and unpack ++ /// ++ /// Packs (serializes) data into a byte buffer. This serialized representation can be transmitted via MPI ++ /// with the datatype and unpacked with . Serialization ++ /// in MPI.NET is automatic, so this routine is very rarely used. ++ /// ++ /// ++ /// Pointer to the input buffer, containing values with the MPI datatype ++ /// . ++ /// ++ /// The number of values in . ++ /// The MPI datatype of the values in . ++ /// ++ /// A pointer to the buffer of bytes into which we will be packing the serialized representation ++ /// of the data in . ++ /// ++ /// The size (in bytes) of . ++ /// ++ /// A pointer to the position (in bytes) into where the packed data ++ /// will be written. This position will be updated to the next available position in the buffer ++ /// once the serialized data has been written. ++ /// ++ /// The communicator over which the packed data will be sent. ++ [DllImport(MPI_DLL, CallingConvention = CallingConvention.StdCall)] ++ public static unsafe extern int MPI_Pack(IntPtr inbuf, int incount, MPI_Datatype datatype, IntPtr outbuf, int outsize, ref int position, MPI_Comm comm); ++ ++ /// ++ /// Unpacks (deserializes) data from a byte buffer. The serialized representation will have been ++ /// packed by and (possibly) transmitted via MPI using the datatype ++ /// . Serialization in MPI.NET is automatic, so this routine is very ++ /// rarely used. ++ /// ++ /// A pointer to the buffer of bytes that will be unpacked. ++ /// The number of bytes in . ++ /// ++ /// A pointer to the position (in bytes) inside the buffer from which data will be unpacked. ++ /// This position will be updated to reflect the position of the next value in the buffer ++ /// after the data has been unpacked. ++ /// ++ /// ++ /// A pointer to the buffer where the unpacked data will be written. This buffer contains ++ /// values whose MPI datatype is . ++ /// ++ /// Number of values that will be stored into . ++ /// The type of data in . ++ /// ++ /// The communicator for which the packing was performed (and which may have been used to transmit the ++ /// serialized data). ++ /// ++ /// ++ [DllImport(MPI_DLL, CallingConvention = CallingConvention.StdCall)] ++ public static unsafe extern int MPI_Unpack(IntPtr inbuf, int insize, ref int position, IntPtr outbuf, int outcount, MPI_Datatype datatype, MPI_Comm comm); ++ ++ /// ++ /// Determine the maximum amount of space that packing values with the ++ /// MPI datatype will require. This routine is useful for allocating ++ /// buffer space when packing data with . ++ /// ++ /// ++ /// The number of elements of type to be packed. ++ /// ++ /// The type of data to be packed. ++ /// The communicator over which the packed data would be transmitted. ++ /// ++ /// A pointer to an integer. This integer will receive the maximum number of bytes required to ++ /// pack the data. However, it is possible that when calling , fewer bytes ++ /// will be required to pack the actual data. ++ /// ++ [DllImport(MPI_DLL, CallingConvention = CallingConvention.StdCall)] ++ public static unsafe extern int MPI_Pack_size(int incount, MPI_Datatype datatype, MPI_Comm comm, out int size); ++ #endregion ++ ++ #region Address and extent functions ++ /// ++ /// Converts a pointer into an address for use with MPI. In many cases, this operation is simply a ++ /// cast from the pointer's value to an integer. ++ /// ++ /// A pointer to the memory whose address will be returned. ++ /// ++ /// A pointer to the integer address value that will be replaced with the address pointed to ++ /// by . ++ /// ++ [DllImport(MPI_DLL, CallingConvention = CallingConvention.StdCall)] ++ public static unsafe extern int MPI_Address(IntPtr location, out MPI_Aint address); ++ ++ /// ++ /// Determines the extent of the datatype. ++ /// ++ /// The datatype to query. ++ /// Receives the extent of . ++ /// ++ [DllImport(MPI_DLL, CallingConvention = CallingConvention.StdCall)] ++ public static unsafe extern int MPI_Type_extent(MPI_Datatype datatype, out MPI_Aint extent); ++ ++ /// ++ /// Computes the size of a datatype. ++ /// ++ /// The MPI datatype. ++ /// ++ /// Pointer to an integer, which will be assigned the size of the data type (in bytes). ++ /// ++ [DllImport(MPI_DLL, CallingConvention = CallingConvention.StdCall)] ++ public static unsafe extern int MPI_Type_size(MPI_Datatype datatype, out int size); ++ #endregion ++ ++ #region Commit and free ++ /// ++ /// Completes creation of an MPI datatype. This routine will be called ++ /// automatically when the MPI datatype is being generated via reflection ++ /// in . ++ /// ++ [DllImport(MPI_DLL, CallingConvention = CallingConvention.StdCall)] ++ public static unsafe extern int MPI_Type_commit(ref MPI_Datatype datatype); ++ ++ /// ++ /// Frees an MPI datatype. ++ /// ++ [DllImport(MPI_DLL, CallingConvention = CallingConvention.StdCall)] ++ public static unsafe extern int MPI_Type_free(ref MPI_Datatype datatype); ++ #endregion ++ ++ #region Group accessors ++ /// ++ /// Determine the number of processes in a group. See . ++ /// ++ [DllImport(MPI_DLL, CallingConvention = CallingConvention.StdCall)] ++ public static unsafe extern int MPI_Group_size(MPI_Group group, out int size); ++ ++ /// ++ /// Determine the rank of the calling process in a group. See . ++ /// ++ [DllImport(MPI_DLL, CallingConvention = CallingConvention.StdCall)] ++ public static unsafe extern int MPI_Group_rank(MPI_Group group, out int rank); ++ ++ /// ++ /// Translate the ranks of processes in one group into those processes' corresponding ++ /// ranks in another group. See . ++ /// ++ [DllImport(MPI_DLL, CallingConvention = CallingConvention.StdCall)] ++ public static unsafe extern int MPI_Group_translate_ranks (MPI_Group group1, int n, int[] ranks1, MPI_Group group2, int[] ranks2); ++ ++ /// ++ /// Compare two groups. See . ++ /// ++ [DllImport(MPI_DLL, CallingConvention = CallingConvention.StdCall)] ++ public static unsafe extern int MPI_Group_compare(MPI_Group group1, MPI_Group group2, out int result); ++ #endregion ++ ++ #region Group constructors ++ /// ++ /// Retrieve the group associated with a communicator. See . ++ /// ++ [DllImport(MPI_DLL, CallingConvention = CallingConvention.StdCall)] ++ public static unsafe extern int MPI_Comm_group(MPI_Comm comm, out MPI_Group group); ++ ++ /// ++ /// Create a group from the union of two groups. See . ++ /// ++ [DllImport(MPI_DLL, CallingConvention = CallingConvention.StdCall)] ++ public static unsafe extern int MPI_Group_union(MPI_Group group1, MPI_Group group2, out MPI_Group newgroup); ++ ++ /// ++ /// Create a group from the intersection of two groups. See . ++ /// ++ [DllImport(MPI_DLL, CallingConvention = CallingConvention.StdCall)] ++ public static unsafe extern int MPI_Group_intersection(MPI_Group group1, MPI_Group group2, out MPI_Group newgroup); ++ ++ /// ++ /// Create a group from the difference of two groups. See . ++ /// ++ [DllImport(MPI_DLL, CallingConvention = CallingConvention.StdCall)] ++ public static unsafe extern int MPI_Group_difference(MPI_Group group1, MPI_Group group2, out MPI_Group newgroup); ++ ++ /// ++ /// Create a subgroup containing the processes with specific ranks in an existing group. ++ /// See . ++ /// ++ [DllImport(MPI_DLL, CallingConvention = CallingConvention.StdCall)] ++ public static unsafe extern int MPI_Group_incl(MPI_Group group, int n, int[] ranks, out MPI_Group newgroup); ++ ++ /// ++ /// Create a subgroup containing all processes in existing group except those specified. ++ /// See . ++ /// ++ [DllImport(MPI_DLL, CallingConvention = CallingConvention.StdCall)] ++ public static unsafe extern int MPI_Group_excl(MPI_Group group, int n, int[] ranks, out MPI_Group newgroup); ++ ++ /// ++ /// Create a subgroup of processes in a group, based on a set of (first, last, stride) rank triples. ++ /// Note: this precise functionality is not exposed directly in the normal MPI layer; however, the ++ /// same semantics can be attained with . ++ /// ++ [DllImport(MPI_DLL, CallingConvention = CallingConvention.StdCall)] ++ public static unsafe extern int MPI_Group_range_incl(MPI_Group group, int n, int[] ranges, out MPI_Group newgroup); ++ ++ /// ++ /// Create a subgroup of processes containing all of the processes in the source group except those described ++ /// by one of th provided(first, last, stride) rank triples. ++ /// Note: this precise functionality is not exposed directly in the normal MPI layer; however, the ++ /// same semantics can be attained with . ++ /// ++ [DllImport(MPI_DLL, CallingConvention = CallingConvention.StdCall)] ++ public static unsafe extern int MPI_Group_range_excl(MPI_Group group, int n, int[] ranges, out MPI_Group newgroup); ++ #endregion ++ ++ #region Group destructors ++ /// ++ /// Frees a group. This routine will be invoked automatically by ++ /// or the finalizer for . ++ /// ++ /// ++ /// ++ [DllImport(MPI_DLL, CallingConvention = CallingConvention.StdCall)] ++ public static unsafe extern int MPI_Group_free(ref MPI_Group group); ++ #endregion ++ ++ #region Communicator accessors ++ /// ++ /// Determines the number of processes in the communicator. See . ++ /// ++ [DllImport(MPI_DLL, CallingConvention = CallingConvention.StdCall)] ++ public static unsafe extern int MPI_Comm_size(MPI_Comm comm, out int size); ++ ++ /// ++ /// Determines the rank of the calling process in the communicator. See . ++ /// ++ [DllImport(MPI_DLL, CallingConvention = CallingConvention.StdCall)] ++ public static unsafe extern int MPI_Comm_rank(MPI_Comm comm, out int rank); ++ ++ /// ++ /// Compare two communicators. See . ++ /// ++ [DllImport(MPI_DLL, CallingConvention = CallingConvention.StdCall)] ++ public static unsafe extern int MPI_Comm_compare(MPI_Comm comm1, MPI_Comm comm2, out int result); ++ #endregion ++ ++ #region Communicator constructors ++ /// ++ /// Duplicates a communicator, creating a new communicator with the same processes and ranks ++ /// as the original. See . ++ /// ++ [DllImport(MPI_DLL, CallingConvention = CallingConvention.StdCall)] ++ public static unsafe extern int MPI_Comm_dup(MPI_Comm comm, out MPI_Comm comm_out); ++ ++ /// ++ /// Creates a new communicator from a subgroup of the processes in an existing communicator. ++ /// See . ++ /// ++ /// ++ /// The existing communicator, from which the new communicator will be created. ++ /// ++ /// ++ /// A group specifying zero or more processes in the communicator . ++ /// ++ /// ++ /// A pointer that points to the newly-created communicator, which will contain all of ++ /// the processes in the group. The order of the processes in this new communicator will ++ /// be the same as the order of those processes in the original communicator. ++ /// ++ [DllImport(MPI_DLL, CallingConvention = CallingConvention.StdCall)] ++ public static unsafe extern int MPI_Comm_create(MPI_Comm comm, MPI_Group group, out MPI_Comm newcomm); ++ ++ /// ++ /// Splits a communicator into several new communicators, based on the colors provided. ++ /// See . ++ /// ++ [DllImport(MPI_DLL, CallingConvention = CallingConvention.StdCall)] ++ public static unsafe extern int MPI_Comm_split(MPI_Comm comm, int color, int key, out MPI_Comm newcomm); ++ ++ /// ++ /// Creates a new Cartesian communicator from another ++ /// communicator. See . ++ /// ++ /// ++ /// Existing communicator from which the new communicator will be created. ++ /// ++ /// ++ /// Number of dimensions for Cartesian communicator's grid to have. ++ /// ++ /// ++ /// Array to specify sizes in each dimension. ++ /// ++ /// ++ /// Array of logical values (0s and 1s) indicating whether grid should be periodic in each dimension ++ /// (i.e. if the last communicator and the first in each dimension are directly connected). ++ /// ++ /// ++ /// Logical value indicating whether ranks may be reordered or not. ++ /// ++ /// ++ /// Output parameter for new communicator. ++ /// ++ [DllImport(MPI_DLL, CallingConvention = CallingConvention.StdCall)] ++ public static unsafe extern int MPI_Cart_create(MPI_Comm comm, int ndims, int* dims, int* periods, int reorder, MPI_Comm* newcomm); ++ ++ /// ++ /// Create a lesser dimensional grid from an existing ++ /// Cartesian communicator. See . ++ /// ++ /// ++ /// The existing communicator. ++ /// ++ /// ++ /// A logical array indicating whether a dimension in the existing should be kept (1) or dropped (0). ++ /// ++ /// ++ /// The new communicator. ++ /// ++ [DllImport(MPI_DLL, CallingConvention = CallingConvention.StdCall)] ++ public static unsafe extern int MPI_Cart_sub(MPI_Comm comm, int* remain_dims, MPI_Comm* newcomm); ++ ++ /// ++ /// Create a topological communicator with a graph topology, ++ /// where any rank can be connected to any other rank. See ++ /// . ++ /// ++ /// ++ /// An existing Intracommunicator to use to create the new communicator. ++ /// ++ /// ++ /// The number of nodes the graph will have. ++ /// ++ /// ++ /// An array indicating the starting index in of the edges for each vertex. ++ /// ++ /// ++ /// An array of edge targets, indexed by . ++ /// ++ /// ++ /// Logical indicating whether ranks can be reordered. ++ /// ++ /// ++ /// The new communicator. ++ /// ++ [DllImport(MPI_DLL, CallingConvention = CallingConvention.StdCall)] ++ public static unsafe extern int MPI_Graph_create(MPI_Comm comm, int nnodes, int* index, int* edges, int reorder, MPI_Comm *newComm); ++ ++ #endregion ++ ++ #region Communicator destructors ++ /// ++ /// Frees a communicator. This routine will be invoked automatically by ++ /// or the finalizer for . ++ /// ++ /// The communicator to free. ++ [DllImport(MPI_DLL, CallingConvention = CallingConvention.StdCall)] ++ public static unsafe extern int MPI_Comm_free(ref MPI_Comm comm); ++ #endregion ++ ++ #region Communicator attributes ++ /// ++ /// Delegate describing a low-level MPI function used to copy attribute values from a communicator ++ /// when the communicator is being duplicated. ++ /// ++ /// ++ /// This function will ++ /// be defined automatically by MPI.NET when a new is created, and will vary ++ /// depending on the type of the attribute and on the requested . ++ /// ++ /// The communicator being duplicated. ++ /// The attribute's key value. ++ /// ++ /// The extra state associated with the attribute, provided by the user ++ /// in . ++ /// ++ /// ++ /// The attribute value in the communicator to be duplicated. ++ /// ++ /// ++ /// A pointer to the attribute value that will be copied into the ++ /// new communicator. The attribute value will be no larger than an IntPtr. ++ /// The user only needs to set this value if the attribute will be copied, ++ /// as determined by flag. ++ /// ++ /// ++ /// Set this to a non-zero value to indicate that the attribute should ++ /// be copied. ++ /// ++ public delegate int MPI_Copy_function(MPI_Comm comm, int keyval, IntPtr extra_state, IntPtr attribute_val_in, ++ IntPtr attribute_val_out, out int flag); ++ ++ /// ++ /// Delegate describing a low-level MPI function that takes care of de-allocating ++ /// an attribute when it is deleted from a communicator (or the communicator itself ++ /// is freed). ++ /// ++ /// ++ /// ++ /// Often used when the attribute's value is a pointer to some per-communicator ++ /// data, and the pointer needs to be freed. This function will be defined automatically ++ /// by MPI.NET when a new is created, and will vary ++ /// depending on the type of the attribute and on the requested . ++ /// ++ /// The communicator. ++ /// The attribute being removed from the communicator. ++ /// The value of this attribute in the communicator. ++ /// ++ /// The extra state provided by the user in . ++ /// ++ public delegate int MPI_Delete_function(MPI_Comm comm, int keyval, IntPtr attribute_val, IntPtr extra_state); ++ ++ /// ++ /// Special key value that indicates an invalid key. ++ /// ++ public const int MPI_KEYVAL_INVALID = -1 ; ++ ++ /// ++ /// Special "null" copy function that indicates that an attribute should not be copied. ++ /// ++ public static readonly MPI_Copy_function MPI_NULL_COPY_FN = mpinet_MPI_NULL_COPY_FN(); ++ ++ /// ++ /// Special "null" deletion function that indicates that no delete function should ++ /// be called when an attribute is removed from a communicator. ++ /// ++ public static readonly MPI_Delete_function MPI_NULL_DELETE_FN = mpinet_MPI_NULL_DELETE_FN(); ++ ++ /// ++ /// Creates a new MPI attribute that can be attached to communicators. This routine is ++ /// automatically involved by MPI.NET when a new is created. ++ /// See ++ /// ++ /// ++ /// The function used to copy the attribute when a communicator is ++ /// duplicated. ++ /// ++ /// ++ /// The function used to delete the attribute when it is removed ++ /// from a communicator. ++ /// ++ /// ++ /// Will receive a new integer that identifies this attribute. ++ /// ++ /// ++ /// A user-defined pointer that includes extra information to be ++ /// passed to the copy and delete functions. This pointer can ++ /// be used to store more information about the attribute itself. ++ /// ++ [DllImport(MPI_DLL, CallingConvention = CallingConvention.StdCall)] ++ public static extern unsafe int MPI_Keyval_create(MPI_Copy_function copy_fn, MPI_Delete_function delete_fn, out int keyval, IntPtr extra_state); ++ ++ /// ++ /// Frees an attribute with the given key value. The user must ensure that ++ /// this attribute has been deleted from all communicators before calling ++ /// this routine. This operation is performed by . ++ /// ++ /// The attribute's key value. ++ [DllImport(MPI_DLL, CallingConvention = CallingConvention.StdCall)] ++ public static extern unsafe int MPI_Keyval_free(ref int keyval); ++ ++ /// ++ /// Sets the value of an attribute on a communicator. Attributes in MPI.NET are ++ /// handled through the class, an instance of which is associated ++ /// with each communicator. ++ /// ++ /// The communicator. ++ /// The attribute to set. ++ /// The new value to place into the communicator. ++ [DllImport(MPI_DLL, CallingConvention = CallingConvention.StdCall)] ++ public static extern unsafe int MPI_Attr_put(MPI_Comm comm, int keyval, IntPtr attribute_val); ++ ++ /// ++ /// Retrieves the value of an attribute on a communicator. Attributes in MPI.NET are ++ /// handled through the class, an instance of which is associated ++ /// with each communicator. ++ /// ++ /// The communicator. ++ /// The attribute to get. ++ /// ++ /// Will receive the value stored for this attribute on this ++ /// communicator, if one exists. The result is only valid ++ /// if is non-zero. ++ /// ++ /// ++ /// Will receive a boolean value stating whether the attribute is stored ++ /// with this communicator. ++ /// ++ [DllImport(MPI_DLL, CallingConvention = CallingConvention.StdCall)] ++ public static extern unsafe int MPI_Attr_get(MPI_Comm comm, int keyval, IntPtr attribute_val, out int flag); ++ ++ /// ++ /// Deletes an attribute stored on the communicator. Attributes in MPI.NET are ++ /// handled through the class, an instance of which is associated ++ /// with each communicator. ++ /// ++ /// The communicator. ++ /// The attribute to delete. ++ [DllImport(MPI_DLL, CallingConvention = CallingConvention.StdCall)] ++ public static extern unsafe int MPI_Attr_delete(MPI_Comm comm, int keyval); ++ #endregion ++ ++ #region Intercommunicator accessors ++ /// ++ /// Determine whether a communicator is an intercommunicator. In MPI.NET, intercommunicators ++ /// will have type . ++ /// ++ /// The communicator. ++ /// ++ /// Pointer to a flag, which will be set to a non-zero value if ++ /// is an intercommunicator. ++ /// ++ [DllImport(MPI_DLL, CallingConvention = CallingConvention.StdCall)] ++ public static unsafe extern int MPI_Comm_test_inter(MPI_Comm comm, out int flag); ++ ++ /// ++ /// Determines the number of processes in the remote group of an intercommunicator. ++ /// See . ++ /// ++ /// The intercommunicator. ++ /// ++ /// Will receive the number of processes in the remote group of ++ /// ++ [DllImport(MPI_DLL, CallingConvention = CallingConvention.StdCall)] ++ public static unsafe extern int MPI_Comm_remote_size(MPI_Comm comm, out int size); ++ ++ /// ++ /// Retrieves the remote group from an intercommunicator. ++ /// See . ++ /// ++ /// The intercommunicator. ++ /// ++ /// Will receive the group containing all of the processes in the remote group ++ /// of . ++ /// ++ [DllImport(MPI_DLL, CallingConvention = CallingConvention.StdCall)] ++ public static unsafe extern int MPI_Comm_remote_group(MPI_Comm comm, out MPI_Group group); ++ ++ /// ++ /// Create a new intercommunicator from two disjoint intracommunicators. ++ /// See . ++ /// ++ /// The local communicator. ++ /// The leader of the local communicator. ++ /// ++ /// Communicator that bridges the intercommunicators, allowing the leaders to communicate. ++ /// ++ /// ++ /// The rank of the remote group's leader within . ++ /// ++ /// Tag used for communication to create the intercommunicator. ++ /// Will receive the new intercommunicator. ++ [DllImport(MPI_DLL, CallingConvention = CallingConvention.StdCall)] ++ public static unsafe extern int MPI_Intercomm_create(MPI_Comm local_comm, int local_leader, MPI_Comm bridge_comm, int remote_leader, int tag, out MPI_Comm newintercomm); ++ ++ /// ++ /// Merge the two groups in an intercommunicator into a single intracommunicator. ++ /// See ++ /// ++ /// The intercommunicator. ++ /// ++ /// Whether this group of processes has the higher ranks in the resuling intercommunicator. ++ /// ++ /// The resulting intracommunicator. ++ /// ++ [DllImport(MPI_DLL, CallingConvention = CallingConvention.StdCall)] ++ public static unsafe extern int MPI_Intercomm_merge(MPI_Comm intercomm, int high, out MPI_Comm newintracomm); ++ #endregion ++ ++ #region Cartesian communicator methods ++ /// ++ /// Gets the number of dimensions in the Cartesian communicator. ++ /// See . ++ /// ++ [DllImport(MPI_DLL, CallingConvention = CallingConvention.StdCall)] ++ public static unsafe extern int MPI_Cartdim_get(MPI_Comm comm, int* result); ++ ++ /// ++ /// Retrieves the primary topological information on a Cartesian communicator: the number of dimensions, ++ /// the size in each dimension, the periodicity in each dimension. Also gives the coordinates of the ++ /// calling process. See , ++ /// , and . ++ /// ++ /// ++ /// The communicator. ++ /// ++ /// ++ /// The number of dimensions. ++ /// ++ /// ++ /// Output parameter for size of each dimension. Should be as long as . ++ /// ++ /// ++ /// Output parameter for periodicity in each dimension. 0 for false, 1 for true. Should be as long as . ++ /// ++ /// ++ /// Output parameter for coordinates of calling process. Should be as long as . ++ /// ++ [DllImport(MPI_DLL, CallingConvention = CallingConvention.StdCall)] ++ public static unsafe extern int MPI_Cart_get(MPI_Comm comm, int ndims, int* dims, int* periods, int* coords); ++ ++ /// ++ /// Determines the rank of a process in the Cartesian communicator given its coordinates. ++ /// See . ++ /// ++ [DllImport(MPI_DLL, CallingConvention = CallingConvention.StdCall)] ++ public static unsafe extern int MPI_Cart_rank(MPI_Comm comm, int* coords, int* rank); ++ ++ /// ++ /// Determines the coordinates of a process given its rank in the Cartesian communicator. ++ /// See . ++ /// ++ /// ++ /// The communicator. ++ /// ++ /// ++ /// The rank of the process in the Cartesian communicator. ++ /// ++ /// ++ /// Length of ++ /// ++ /// ++ /// Output parameter. ++ /// ++ [DllImport(MPI_DLL, CallingConvention = CallingConvention.StdCall)] ++ public static unsafe extern int MPI_Cart_coords(MPI_Comm comm, int rank, int maxdims, int* coords); ++ ++ /// ++ /// Calculates the necessary source and destination ranks for shifting data over the ++ /// Cartesian communicator. See . ++ /// ++ /// ++ /// The communicator. ++ /// ++ /// ++ /// An integer specifying which of the dimensions along which to shift. ++ /// ++ /// ++ /// How far to shift (negative values means "downward," positive values "upward"). ++ /// ++ /// ++ /// Output parameter for rank to receive from. ++ /// ++ /// ++ /// Output parameter for rank to send to. ++ /// ++ [DllImport(MPI_DLL, CallingConvention = CallingConvention.StdCall)] ++ public static unsafe extern int MPI_Cart_shift(MPI_Comm comm, int direction, int disp, int* rank_source, int* rank_dest); ++ ++ /// ++ /// Returns a recommended configuration for a new Cartesian grid. ++ /// See . ++ /// ++ /// ++ /// The existing communicator. ++ /// ++ /// ++ /// The number of dimensions for the Cartesian grid. ++ /// ++ /// ++ /// An array of length indicating the size of the grid in each dimension. ++ /// ++ /// ++ /// A logical array of length indicating whether the grid is periodic in any given dimension. ++ /// ++ /// ++ /// The new rank of the calling process. ++ /// ++ [DllImport(MPI_DLL, CallingConvention = CallingConvention.StdCall)] ++ public static unsafe extern int MPI_Cart_map(MPI_Comm comm, int ndims, int* dims, int* periods, out int newrank); ++ ++ /// ++ /// Find out the communicator topology. In MPI.NET, one queries the communicator's topology by ++ /// looking at the type, e.g., , , or ++ /// . ++ /// ++ /// ++ /// The communicator. ++ /// ++ /// ++ /// Value indicating communicator topology; one of MPI_CART, MPI_GRAPH, or MPI_UNDEFINED (if the communicator ++ /// has no topology). ++ /// ++ [DllImport(MPI_DLL, CallingConvention = CallingConvention.StdCall)] ++ public static unsafe extern int MPI_Topo_test(MPI_Comm comm, out int status); ++ ++ #endregion ++ ++ #region Graph communicator methods ++ /// ++ /// Retrieve the dimensions of a Graph communicator. See ++ /// and . ++ /// ++ /// ++ /// The communicator. ++ /// ++ /// ++ /// Output parameter for the number of nodes in the graph. ++ /// ++ /// ++ /// Output parameter for the number of edges in the graph. ++ /// ++ /// ++ [DllImport(MPI_DLL, CallingConvention = CallingConvention.StdCall)] ++ public static unsafe extern int MPI_Graphdims_get(MPI_Comm comm, out int nnodes, out int nedges); ++ ++ /// ++ /// Retrieve the index and edges arrays used to create the graph communicator. See ++ /// and . ++ /// ++ /// ++ /// The communicator. ++ /// ++ /// ++ /// The size of . ++ /// ++ /// ++ /// The size of ++ /// ++ /// ++ /// Output array in which to store the index array. ++ /// ++ /// ++ /// Output array in which to store the edges array. ++ /// ++ [DllImport(MPI_DLL, CallingConvention = CallingConvention.StdCall)] ++ public static unsafe extern int MPI_Graph_get(MPI_Comm comm, int maxindex, int maxedges, int* index, int* edges); ++ ++ /// ++ /// Retrieve the number of neighbors of a node. See ++ /// and . ++ /// ++ /// ++ /// The communicator. ++ /// ++ /// ++ /// The rank of the node of interest. ++ /// ++ /// ++ /// Output parameter to store the number of neighbors. ++ /// ++ [DllImport(MPI_DLL, CallingConvention = CallingConvention.StdCall)] ++ public static unsafe extern int MPI_Graph_neighbors_count(MPI_Comm comm, int rank, out int nneighbors); ++ ++ ++ /// ++ /// Retrieve a list of the neighbors of a node. See ++ /// and . ++ /// ++ /// ++ /// The communicator. ++ /// ++ /// ++ /// The rank of the node of interest. ++ /// ++ /// ++ /// The size of . ++ /// ++ /// ++ /// Output array to store the list of neighbors. ++ /// ++ [DllImport(MPI_DLL, CallingConvention = CallingConvention.StdCall)] ++ public static unsafe extern int MPI_Graph_neighbors(MPI_Comm comm, int rank, int maxneighbors, int* neighbors); ++ ++ /// ++ /// Returns a recommended configuration for a new Graph communicator. ++ /// See . ++ /// ++ /// ++ /// The existing communicator. ++ /// ++ /// ++ /// The number of nodes to assume. ++ /// ++ /// ++ /// An index array to use (where the semantics is the same as for . ++ /// ++ /// ++ /// An array of edges as for the constructor . ++ /// ++ /// ++ /// The new rank of the calling process. ++ /// ++ [DllImport(MPI_DLL, CallingConvention = CallingConvention.StdCall)] ++ public static unsafe extern int MPI_Graph_map(MPI_Comm comm, int nnodes, int* index, int* edges, out int newrank); ++ #endregion ++ ++ ++ /// ++ /// Suggest a shape for a new Cartesian communicator, given the number of dimensions. ++ /// See . ++ /// ++ /// ++ /// The number of nodes the grid will contain. ++ /// ++ /// ++ /// The number of dimensions the grid will have. ++ /// ++ /// ++ /// An array indicating the size in each dimension. Any nonzero entries will be left ++ /// alone; only 0 values will be changed to shape the grid. ++ /// ++ [DllImport(MPI_DLL, CallingConvention = CallingConvention.StdCall)] ++ public static unsafe extern int MPI_Dims_create(int nnodes, int ndims, int *dims); ++ ++ #region Startup ++ /// ++ /// Initializes MPI. This routine must be called before any other MPI routine. ++ /// It will be invoked by the constructor. ++ /// ++ /// The number of arguments in . ++ /// ++ /// A pointer to an array of C-style strings containing all of ++ /// the command-line arguments. ++ /// ++ [DllImport(MPI_DLL, CallingConvention = CallingConvention.StdCall)] ++ public static unsafe extern int MPI_Init(ref int argc, ref byte **argv); ++ ++ /// ++ /// Finalizes (shuts down) MPI. This routine must be called before exiting the ++ /// program. It will be invoked by . ++ /// ++ [DllImport(MPI_DLL, CallingConvention = CallingConvention.StdCall)] ++ public static unsafe extern int MPI_Finalize(); ++ ++ /// ++ /// Determine whether MPI has already been initialized. See . ++ /// ++ /// Will be set to a non-zero value if the MPI environment has been initialized. ++ [DllImport(MPI_DLL, CallingConvention = CallingConvention.StdCall)] ++ public static unsafe extern int MPI_Initialized(out int flag); ++ ++ /// ++ /// Determine whether MPI has already been finalized. See . ++ /// ++ /// Will be set to a non-zero value if the MPI environment has been finalized. ++ /// ++ [DllImport(MPI_DLL, CallingConvention = CallingConvention.StdCall)] ++ public static unsafe extern int MPI_Finalized(out int flag); ++ ++ /// ++ /// Aborts the current MPI program. See ++ /// and . ++ /// ++ /// The communicator that will be used to abort the program. ++ /// The error code to be returned from the MPI process. ++ /// This routine does not return. ++ [DllImport(MPI_DLL, CallingConvention = CallingConvention.StdCall)] ++ public static unsafe extern int MPI_Abort(MPI_Comm comm, int errcode); ++ #endregion ++ ++ #region Threading ++ /// ++ /// Indicates that the MPI program is single-threaded. See . ++ /// ++ public const int MPI_THREAD_SINGLE = 0; ++ /// ++ /// Indicates that the MPI program is multi-threaded, but all MPI operations will be called ++ /// from the main thread. See . ++ /// ++ public const int MPI_THREAD_FUNNELED = 1; ++ /// ++ /// Indicates that the MPI program is multi-threaded, but only one thread will call into MPI ++ /// at any given time. See . ++ /// ++ public const int MPI_THREAD_SERIALIZED = 2; ++ /// ++ /// Indicates that the MPI program is multi-threaded, and any thread can call into MPI ++ /// at any time. See . ++ /// ++ public const int MPI_THREAD_MULTIPLE = 3; ++ ++ /// ++ /// Initializes the MPI library with thread support. This operation subsumes . ++ /// See . ++ /// ++ /// Pointer to the number of arguments passed on the command line. ++ /// Pointer to the command-line arguments (array of C-style strings). ++ /// ++ /// The threading level required by the caller, which must be one of the MPI_THREAD_* ++ /// constants. ++ /// ++ /// ++ /// Returns the actual threading level that the MPI implementation is providing, which will be ++ /// one of the MPI_THREAD_* constants. ++ /// ++ [DllImport(MPI_DLL, CallingConvention = CallingConvention.StdCall)] ++ public static unsafe extern int MPI_Init_thread(ref int argc, ref byte **argv, int required, out int provided); ++ ++ /// ++ /// Determine whether the calling thread is the main MPI thread (that called ++ /// or . See . ++ /// ++ /// Returns whether the calling thread is the main thread. ++ [DllImport(MPI_DLL, CallingConvention = CallingConvention.StdCall)] ++ public static unsafe extern int MPI_Is_thread_main(out int flag); ++ ++ /// ++ /// Determine the level of threading support provided by the MPI library. ++ /// See . ++ /// ++ /// Returns one of the MPI_THREAD_* constants. ++ [DllImport(MPI_DLL, CallingConvention = CallingConvention.StdCall)] ++ public static unsafe extern int MPI_Query_thread(out int provided); ++ #endregion ++ ++ #region Predefined keys ++ /// ++ /// Predefined attribute key that can be used to determine the maximum ++ /// tag value that users are allowed to provide to a communication ++ /// request. ++ /// See . ++ /// ++ public const int MPI_TAG_UB = 0; ++ ++ /// ++ /// Predefined attribute key that can be used to determine the rank of ++ /// the host process associated with . ++ /// If there is no host, the result will be . ++ /// See . ++ /// ++ public const int MPI_HOST = 1; ++ ++ /// ++ /// Predefined attribute key that can be used to determine the rank of ++ /// the process than can perform I/O via the language-standard I/O ++ /// mechanism. If every process can provided language-standard I/O, the ++ /// resulting value will be ; if no process ++ /// can support language-standard I/O, the result will be ++ /// . ++ /// See . ++ /// ++ public const int MPI_IO = 2; ++ ++ /// ++ /// Predefined attribute key that can be used to determine whether the ++ /// clocks (accessed via ) are synchronized ++ /// across all processes. ++ /// See . ++ /// ++ public const int MPI_WTIME_IS_GLOBAL = 3; ++ #endregion ++ ++ /// ++ /// The maximum length of the string returned by . ++ /// ++ public const int MPI_MAX_PROCESSOR_NAME = OPAL_MAX_PROCESSOR_NAME ; ++ ++ /// ++ /// Retrieve the name of the processor or compute node that is currently executing. ++ /// See . ++ /// ++ /// ++ /// Pointer to an array of bytes that will, on return, contain the name of ++ /// the currenly executing processor. If the processor name requires more ++ /// than * ASCII characters, only the first ++ /// * characters will be written. To be sure that you ++ /// will always get the full processor name, should ++ /// refer to at least characters. ++ /// ++ /// ++ /// A pointer to the number of bytes in the processor name. On input, this is ++ /// the number of bytes that refers to. When this ++ /// function returns, this will point to the number of bytes in the actual name. ++ /// ++ [DllImport(MPI_DLL, CallingConvention = CallingConvention.StdCall)] ++ public static unsafe extern int MPI_Get_processor_name(byte[] name, ref int len); ++ ++ #region Error handling ++ /// ++ /// The maximum number of characters that can occur in an error string returned from ++ /// . ++ /// ++ public const int MPI_MAX_ERROR_STRING = OPAL_MAX_ERROR_STRING ; ++ ++ /// ++ /// Error value indicating no error. ++ /// ++ public const int MPI_SUCCESS = 0; ++ ++ /// ++ /// Error class indicating an invalid buffer pointer. ++ /// ++ public const int MPI_ERR_BUFFER = 1; ++ ++ /// ++ /// Error class indicating an invalid count argument. ++ /// ++ public const int MPI_ERR_COUNT = 2; ++ ++ /// ++ /// Error class indicating an invalid data type argument. ++ /// ++ public const int MPI_ERR_TYPE = 3; ++ ++ /// ++ /// Error class indicating an invalid tag argument. ++ /// ++ public const int MPI_ERR_TAG = 4; ++ ++ /// ++ /// Error class indicating an invalid communicator. ++ /// ++ public const int MPI_ERR_COMM = 5; ++ ++ /// ++ /// Error class indicating an invalid rank. ++ /// ++ public const int MPI_ERR_RANK = 6; ++ ++ /// ++ /// Error class indicating an invalid root. ++ /// ++ public const int MPI_ERR_ROOT = 8; ++ ++ /// ++ /// Error class indicating that a message was truncated on receive. ++ /// ++ public const int MPI_ERR_TRUNCATE = 15; ++ ++ /// ++ /// Error class indicating an invalid group argument. ++ /// ++ public const int MPI_ERR_GROUP = 9; ++ ++ /// ++ /// Error class indicating an invalid operation argument. ++ /// ++ public const int MPI_ERR_OP = 10; ++ ++ /// ++ /// Error class indicating an invalid request argument. ++ /// ++ public const int MPI_ERR_REQUEST = 7; ++ ++ /// ++ /// Error class indicating an invalid topology for a communicator argument. ++ /// ++ public const int MPI_ERR_TOPOLOGY = 11; ++ ++ /// ++ /// Error class indicating an invalid dimension argument (for cartesian communicators). ++ /// ++ public const int MPI_ERR_DIMS = 12; ++ ++ /// ++ /// Error class indicating an invalid argument. ++ /// ++ public const int MPI_ERR_ARG = 13; ++ ++ /// ++ /// Error class indicating an error that is know, but not described by other MPI ++ /// error classes. ++ /// ++ public const int MPI_ERR_OTHER = 16; ++ ++ /// ++ /// Error class indicating that an unkown error occurred. ++ /// ++ public const int MPI_ERR_UNKNOWN = 14; ++ ++ /// ++ /// Error class indicating that an internal error occurred in the MPI implementation. ++ /// ++ public const int MPI_ERR_INTERN = 17; ++ ++ /// ++ /// Error class indicating that the actual error code is in the status argument. ++ /// ++ public const int MPI_ERR_IN_STATUS = 18; ++ ++ /// ++ /// Error class indicating that a request is still pending. ++ /// ++ public const int MPI_ERR_PENDING = 19; ++ ++ /// ++ /// Error class indicating an invalid file handle argument. ++ /// ++ public const int MPI_ERR_FILE = 30; ++ ++ /// ++ /// Error class indicating that permission was denied when accessing a file. ++ /// ++ public const int MPI_ERR_ACCESS = 20; ++ ++ /// ++ /// Error class indicating that the amode argument passed to MPI_File_open is invalid. ++ /// ++ public const int MPI_ERR_AMODE = 21; ++ ++ /// ++ /// Error class indicating an invalid file name. ++ /// ++ public const int MPI_ERR_BAD_FILE = 23; ++ ++ /// ++ /// Error class indicating that the file already exists. ++ /// ++ public const int MPI_ERR_FILE_EXISTS = 28; ++ ++ /// ++ /// Error class indicating that the file is already in use. ++ /// ++ public const int MPI_ERR_FILE_IN_USE = 29; ++ ++ /// ++ /// Error class indicating that there is not enough space for the file. ++ /// ++ public const int MPI_ERR_NO_SPACE = 41; ++ ++ /// ++ /// Error class indicating that no such file exists. ++ /// ++ public const int MPI_ERR_NO_SUCH_FILE = 42; ++ ++ /// ++ /// Error class indicating an I/O error. ++ /// ++ public const int MPI_ERR_IO = 35; ++ ++ /// ++ /// Error class indicating that the file is read-only. ++ /// ++ public const int MPI_ERR_READ_ONLY = 45; ++ ++ /// ++ /// Error class indicating that an error occurred in a user-supplied data conversion function. ++ /// ++ public const int MPI_ERR_CONVERSION = 25; ++ ++ /// ++ /// Error class indicating that conversion functions could not be registered because a conversion ++ /// function has already been registered for this data representation identifier. ++ /// ++ public const int MPI_ERR_DUP_DATAREP = 27; ++ ++ /// ++ /// Error class indicating that an unsupported data representation was passed to MPI_FILE_SET_VIEW. ++ /// ++ public const int MPI_ERR_UNSUPPORTED_DATAREP = 51; ++ ++ /// ++ /// Error class indicating an invalid info argument. ++ /// ++ public const int MPI_ERR_INFO = 34; ++ ++ /// ++ /// Error class indicating an invalid info key. ++ /// ++ public const int MPI_ERR_INFO_KEY = 31; ++ ++ /// ++ /// Error class indicating an invalid info value. ++ /// ++ public const int MPI_ERR_INFO_VALUE = 33; ++ ++ /// ++ /// Error class indicating that the requested info key is not defined. ++ /// ++ public const int MPI_ERR_INFO_NOKEY = 32; ++ ++ /// ++ /// Error class indicating that an attempt has been made to look up a service ++ /// name that has not been published. ++ /// ++ public const int MPI_ERR_NAME = 38; ++ ++ /// ++ /// Error class indicating that no memory is available when trying to allocate ++ /// memory with MPI_Alloc_mem. ++ /// ++ public const int MPI_ERR_NO_MEM = 39; ++ ++ /// ++ /// Error class indicating that a collective argument is not the same on all processes, ++ /// or collective routines were called in a different order. ++ /// ++ public const int MPI_ERR_NOT_SAME = 40; ++ ++ /// ++ /// Error class indicating that a named port does not exist or has been closed. ++ /// ++ public const int MPI_ERR_PORT = 43; ++ ++ /// ++ /// Error class indicating that the user's quota has been exceeded. ++ /// ++ public const int MPI_ERR_QUOTA = 44; ++ ++ /// ++ /// Error class indicating that an attempt to unpublish a service ++ /// name that has already been unpublished or never was published. ++ /// ++ public const int MPI_ERR_SERVICE = 48; ++ ++ /// ++ /// Error class indicating that an attempt to spawn a process has failed. ++ /// ++ public const int MPI_ERR_SPAWN = 50; ++ ++ /// ++ /// Error class indicating that an operation is unsupported. ++ /// ++ public const int MPI_ERR_UNSUPPORTED_OPERATION = 52; ++ ++ /// ++ /// Error class indicating an invalid window argument. ++ /// ++ public const int MPI_ERR_WIN = 53; ++ ++ /// ++ /// Error class indicating an invalid base argument. ++ /// ++ public const int MPI_ERR_BASE = 24; ++ ++ /// ++ /// Error class indicating an invalid locktype argument. ++ /// ++ public const int MPI_ERR_LOCKTYPE = 37; ++ ++ /// ++ /// Error class indicating an invalid attribute key. ++ /// ++ public const int MPI_ERR_KEYVAL = 36; ++ ++ /// ++ /// Error class indicating that there were conflicting accesses within a window. ++ /// ++ public const int MPI_ERR_RMA_CONFLICT = 46; ++ ++ /// ++ /// Error class indicating that RMA calls were incorrectly synchronized. ++ /// ++ public const int MPI_ERR_RMA_SYNC = 47; ++ ++ /// ++ /// Error class indicating an invalid size argument. ++ /// ++ public const int MPI_ERR_SIZE = 49; ++ ++ /// ++ /// Error class indicating an invalid displacement argument. ++ /// ++ public const int MPI_ERR_DISP = 26; ++ ++ /// ++ /// Error class indicating an invalid assert argument. ++ /// ++ public const int MPI_ERR_ASSERT = 22; ++ ++ /// ++ /// The last valid error code for a predefined error class. ++ /// ++ public const int MPI_ERR_LASTCODE = 54; ++ ++ /// ++ /// Predefined error handler that indicates that the MPI program should be terminated ++ /// if an error occurs. This is the default error handler in the low-level MPI, which ++ /// is overridden by MPI.NET. ++ /// ++ public static readonly MPI_Errhandler MPI_ERRORS_ARE_FATAL = mpinet_MPI_ERRORS_ARE_FATAL(); ++ ++ /// ++ /// Predefined error handler that indicates that the MPI routine that detected an error ++ /// should return an error code. MPI.NET uses this error handler to translate MPI ++ /// errors into program exceptions. ++ /// ++ public static readonly MPI_Errhandler MPI_ERRORS_RETURN = mpinet_MPI_ERRORS_RETURN(); ++ ++ /// ++ /// Predefined error handler that represents "no" error handler. ++ /// ++ public static readonly MPI_Errhandler MPI_ERRHANDLER_NULL = mpinet_MPI_ERRHANDLER_NULL(); ++ ++ /// ++ /// Creates a new MPI error handler from a user function. Attaching this error handler ++ /// to a communicator will invoke the user error handler when an error occurs. ++ /// This feature is not supported in MPI.NET; instead, MPI.NET installs its own error ++ /// handler that translates MPI errors into .NET exceptions. ++ /// ++ /// The user's function. ++ /// The newly-created error handler. ++ [DllImport(MPI_DLL, CallingConvention = CallingConvention.StdCall)] ++ public static unsafe extern int MPI_Errhandler_create(IntPtr function, out MPI_Errhandler errhandler); ++ ++ /// ++ /// Set the error handler for a given communicator. This feature is not supported in MPI.NET; ++ /// instead, MPI.NET installs its own error handler that translates MPI errors into .NET exceptions. ++ /// ++ /// The communicator. ++ /// The error handler. ++ [DllImport(MPI_DLL, CallingConvention = CallingConvention.StdCall)] ++ public static unsafe extern int MPI_Errhandler_set(MPI_Comm comm, MPI_Errhandler errhandler); ++ ++ /// ++ /// Retrieve the error handler for a given communicator. This feature is not supported in MPI.NET; ++ /// instead, MPI.NET installs its own error handler that translates MPI errors into .NET exceptions. ++ /// ++ /// The communicator. ++ /// The error handler attached to the communicator. ++ [DllImport(MPI_DLL, CallingConvention = CallingConvention.StdCall)] ++ public static unsafe extern int MPI_Errhandler_get(MPI_Comm comm, out MPI_Errhandler errhandler); ++ ++ /// ++ /// Free a user-defined error handler that was created with . ++ /// This feature is not supported in MPI.NET; instead, MPI.NET installs its own error handler ++ /// that translates MPI errors into .NET exceptions. ++ /// ++ /// ++ /// ++ [DllImport(MPI_DLL, CallingConvention = CallingConvention.StdCall)] ++ public static unsafe extern int MPI_Errhandler_free(ref MPI_Errhandler errhandler); ++ ++ /// ++ /// Retrieves an error string corresponding to the given MPI error code. Used internally by ++ /// MPI.NET to provide an error string in MPI.NET exceptions. ++ /// ++ /// The error code. ++ /// Byte array that will be filled with a string describing the error. ++ /// Returns the number of elements placed into the buffer . ++ [DllImport(MPI_DLL, CallingConvention = CallingConvention.StdCall)] ++ public static unsafe extern int MPI_Error_string(int errorcode, byte[] text, ref int resultlen); ++ ++ /// ++ /// Maps an MPI error code into an error class. Error classes describe (in general) what kind of ++ /// error occurred, and can be used to provide better information to the user. The MPI_ERR_* constants ++ /// give the various error classes present in MPI. Used internally by MPI.NET. ++ /// ++ /// The error code returned from MPI. ++ /// Set to the error class ++ [DllImport(MPI_DLL, CallingConvention = CallingConvention.StdCall)] ++ public static unsafe extern int MPI_Error_class(int errorcode, out int errorclass); ++ #endregion ++ ++ #region Point-to-point communication ++ /// ++ /// Predefined value for the "source" parameter to MPI receive or probe operations, ++ /// which indicates that a message from any process may be matched. ++ /// See . ++ /// ++ public const int MPI_ANY_SOURCE = -1 ; ++ ++ /// ++ /// Predefined value for the "tag" parameter to MPI receive or probe operations, ++ /// which indicates that a message with any tag may be matched. ++ /// See . ++ /// ++ public const int MPI_ANY_TAG = -1 ; ++ ++ /// ++ /// Send a message to another process within the communicator. ++ /// See . ++ /// ++ [DllImport(MPI_DLL, CallingConvention = CallingConvention.StdCall)] ++ public static unsafe extern int MPI_Send(IntPtr buf, int count, MPI_Datatype datatype, int dest, int tag, MPI_Comm comm); ++ ++ /// ++ /// Receive a message from another process within the communicator. ++ /// See . ++ /// ++ [DllImport(MPI_DLL, CallingConvention = CallingConvention.StdCall)] ++ public static unsafe extern int MPI_Recv(IntPtr buf, int count, MPI_Datatype datatype, int source, int tag, MPI_Comm comm, out MPI_Status status); ++ ++ /// ++ /// Simultaneously send and receive a message from another process within the communicator. ++ /// ++ [DllImport(MPI_DLL, CallingConvention = CallingConvention.StdCall)] ++ public static unsafe extern int MPI_Sendrecv(IntPtr sendbuf, int sendcount, MPI_Datatype senddatatype, int dest, int sendtag, ++ IntPtr recvbuf, int recvcount, MPI_Datatype recvdatatype, int source, int recvtag, MPI_Comm comm, out MPI_Status status); ++ ++ /// ++ /// Determine whether a particular communication operation was cancelled. ++ /// See . ++ /// ++ /// Status object ++ /// Will be set to a non-zero value if the communnication was cancelled. ++ /// Error code. ++ [DllImport(MPI_DLL, CallingConvention = CallingConvention.StdCall)] ++ public static unsafe extern int MPI_Test_cancelled(ref MPI_Status status, out int flag); ++ ++ /// ++ /// Determine the number of elements transmitted by a communication operation. ++ /// See . ++ /// ++ [DllImport(MPI_DLL, CallingConvention = CallingConvention.StdCall)] ++ public static unsafe extern int MPI_Get_count(ref MPI_Status status, MPI_Datatype datatype, out int count); ++ #endregion ++ ++ #region Predefined reduce operations ++ /// ++ /// Compute the maximum value via an MPI reduction operation. ++ /// See . ++ /// ++ public static readonly MPI_Op MPI_MAX = mpinet_MPI_MAX(); ++ ++ /// ++ /// Compute the minimum value via an MPI reduction operation. ++ /// See . ++ /// ++ public static readonly MPI_Op MPI_MIN = mpinet_MPI_MIN(); ++ ++ /// ++ /// Compute the sum via an MPI reduction operation. ++ /// See ++ /// ++ public static readonly MPI_Op MPI_SUM = mpinet_MPI_SUM(); ++ ++ /// ++ /// Compute the product via an MPI reduction operation. ++ /// See ++ /// ++ public static readonly MPI_Op MPI_PROD = mpinet_MPI_PROD(); ++ ++ /// ++ /// Compute the logical AND via an MPI reduction operation. ++ /// See ++ /// ++ public static readonly MPI_Op MPI_LAND = mpinet_MPI_LAND(); ++ ++ /// ++ /// Compute the bitwise AND via an MPI reduction operation. ++ /// See ++ /// ++ public static readonly MPI_Op MPI_BAND = mpinet_MPI_BAND(); ++ ++ /// ++ /// Compute the logical OR via an MPI reduction operation. ++ /// See ++ /// ++ public static readonly MPI_Op MPI_LOR = mpinet_MPI_LOR(); ++ ++ /// ++ /// Compute the bitwise OR via an MPI reduction operation. ++ /// See ++ /// ++ public static readonly MPI_Op MPI_BOR = mpinet_MPI_BOR(); ++ ++ /// ++ /// Compute the logical exclusive OR via an MPI reduction operation. ++ /// There is no high-level operation corresponding to this predefined ++ /// MPI reduction. ++ /// ++ public static readonly MPI_Op MPI_LXOR = mpinet_MPI_LXOR(); ++ ++ /// ++ /// Compute the bitwise exclusive OR via an MPI reduction operation. ++ /// See ++ /// ++ public static readonly MPI_Op MPI_BXOR = mpinet_MPI_BXOR(); ++ ++ /// ++ /// Compute the minimum value and location of that value via ++ /// an MPI reduction operation. There is no high-level operation ++ /// corresponding to this predefined MPI reduction. ++ /// ++ public static readonly MPI_Op MPI_MINLOC = mpinet_MPI_MINLOC(); ++ ++ /// ++ /// Compute the maximum value and location of that value via ++ /// an MPI reduction operation. There is no high-level operation ++ /// corresponding to this predefined MPI reduction. ++ /// ++ public static readonly MPI_Op MPI_MAXLOC = mpinet_MPI_MAXLOC(); ++ ++ /// ++ /// Placeholder operation that indicates "no operation". ++ /// ++ public static readonly MPI_Op MPI_OP_NULL = mpinet_MPI_OP_NULL(); ++ #endregion ++ ++ #region Non-blocking point-to-point communication ++ /// ++ /// Constant that indicates a "null" MPI request, meaning that there is no such request. ++ /// ++ public static readonly MPI_Request MPI_REQUEST_NULL = mpinet_MPI_REQUEST_NULL(); ++ ++ /// ++ /// An immediate (non-blocking) point-to-point send. ++ /// See . ++ /// ++ /// Buffer of data to send. ++ /// The number of elements in . ++ /// The type of data in . ++ /// Rank of the destination process. ++ /// Tag used to transmit this data. ++ /// Communicator through which this data will be sent. ++ /// Receives a request object that can be used to query this communication. ++ [DllImport(MPI_DLL, CallingConvention = CallingConvention.StdCall)] ++ public static unsafe extern int MPI_Isend(IntPtr buf, int count, MPI_Datatype datatype, int dest, int tag, MPI_Comm comm, out MPI_Request request); ++ ++ /// ++ /// A non-blocking receive that posts the intent to receive a value. The actual receive will be ++ /// completed when the corresponding request is completed. ++ /// See . ++ /// ++ /// Buffer that will receive message data. ++ /// Number of elements in . ++ /// Type of data stored in . ++ /// Rank of the processor that will initiate this message, or . ++ /// Message tag used to identify the message, or . ++ /// Communicator through which the message will be sent. ++ /// Receives a request object that can be used to query this communication. ++ [DllImport(MPI_DLL, CallingConvention = CallingConvention.StdCall)] ++ public static unsafe extern int MPI_Irecv(IntPtr buf, int count, MPI_Datatype datatype, int source, int tag, MPI_Comm comm, out MPI_Request request); ++ ++ /// ++ /// Wait until the given request has completed. See . ++ /// ++ /// Request object. ++ /// Will receive the status of the completed operation. ++ [DllImport(MPI_DLL, CallingConvention = CallingConvention.StdCall)] ++ public static unsafe extern int MPI_Wait(ref MPI_Request request, out MPI_Status status); ++ ++ /// ++ /// Test whether the given request has completed. See . ++ /// ++ /// Request object. ++ /// Will be set to a non-zero value if the request has completed. ++ /// Will receive the status of the completed operation. ++ [DllImport(MPI_DLL, CallingConvention = CallingConvention.StdCall)] ++ public static unsafe extern int MPI_Test(ref MPI_Request request, out int flag, out MPI_Status status); ++ ++ /// ++ /// Free the resources associated with a request. ++ /// ++ /// The request that will be freed. ++ [DllImport(MPI_DLL, CallingConvention = CallingConvention.StdCall)] ++ public static unsafe extern int MPI_Request_free(ref MPI_Request request); ++ ++ /// ++ /// Waits until any of the given MPI requests completes before returning. ++ /// See . ++ /// ++ /// The number of requests in . ++ /// An array of MPI request objects. ++ /// Receives the index of the request that completed. ++ /// Receives the status of the completed request. ++ [DllImport(MPI_DLL, CallingConvention = CallingConvention.StdCall)] ++ public static unsafe extern int MPI_Waitany(int count, MPI_Request[] array_of_requests, out int index, out MPI_Status status); ++ ++ /// ++ /// Test whether any of the MPI requests has completed. ++ /// See . ++ /// ++ /// The number of requests in . ++ /// An array of MPI request objects. ++ /// Receives the index of the request that completed (if is non-zero). ++ /// Will be set to a non-zero value if a request has completed. ++ /// Receives the status of the completed request (if is non-zero). ++ [DllImport(MPI_DLL, CallingConvention = CallingConvention.StdCall)] ++ public static unsafe extern int MPI_Testany(int count, MPI_Request[] array_of_requests, out int index, out int flag, out MPI_Status status); ++ ++ /// ++ /// Wait until all of the given MPI requests have completed before returning. ++ /// See . ++ /// ++ /// The number of requests (and statuses). ++ /// An array of MPI request objects to be completed. ++ /// An array of MPI status objects, to be filled in by the completed requests. ++ [DllImport(MPI_DLL, CallingConvention = CallingConvention.StdCall)] ++ public static unsafe extern int MPI_Waitall(int count, MPI_Request* array_of_requests, MPI_Status[] array_of_statuses); ++ ++ /// ++ /// Test whether all of the given MPI requests have been completed. ++ /// See . ++ /// ++ /// The number of requests (and statuses). ++ /// An array of MPI request objects to be completed. ++ /// Will be set to a non-zero value if all requests have completed. ++ /// An array of MPI status objects, to be filled in by the completed requests (if is non-zero). ++ [DllImport(MPI_DLL, CallingConvention = CallingConvention.StdCall)] ++ public static unsafe extern int MPI_Testall(int count, MPI_Request* array_of_requests, out int flag, MPI_Status[] array_of_statuses); ++ ++ /// ++ /// Wait until some MPI requests have completed, then provide a list of all of the requests that have completed. ++ /// See . ++ /// ++ /// The number of requests in . ++ /// The array of requests to be completed. ++ /// Receives the number of requests that have been completed. ++ /// ++ /// An array that will receive the indices into of the ++ /// completed requests. ++ /// ++ /// ++ /// Array containing the completed status information that corresponds to the completed ++ /// requests whose indices are in . ++ /// ++ [DllImport(MPI_DLL, CallingConvention = CallingConvention.StdCall)] ++ public static unsafe extern int MPI_Waitsome(int incount, MPI_Request[] array_of_requests, ++ out int outcount, int[] array_of_indices, MPI_Status[] array_of_statuses); ++ ++ /// ++ /// Providing a list of all of the requests that have completed, without waiting for any ++ /// requests to complete. See . ++ /// ++ /// The number of requests in . ++ /// The array of requests to be completed. ++ /// Receives the number of requests that have been completed. ++ /// ++ /// An array that will receive the indices into of the ++ /// completed requests. ++ /// ++ /// ++ /// Array containing the completed status information that corresponds to the completed ++ /// requests whose indices are in . ++ /// ++ [DllImport(MPI_DLL, CallingConvention = CallingConvention.StdCall)] ++ public static unsafe extern int MPI_Testsome(int incount, MPI_Request[] array_of_requests, ++ out int outcount, int[] array_of_indices, MPI_Status[] array_of_statuses); ++ #endregion ++ ++ #region Probe and cancel ++ /// ++ /// Test whether a message is available. See . ++ /// ++ [DllImport(MPI_DLL, CallingConvention = CallingConvention.StdCall)] ++ public static unsafe extern int MPI_Iprobe(int source, int tag, MPI_Comm comm, out int flag, out MPI_Status status); ++ ++ /// ++ /// Wait until a message is available. See . ++ /// ++ [DllImport(MPI_DLL, CallingConvention = CallingConvention.StdCall)] ++ public static unsafe extern int MPI_Probe(int source, int tag, MPI_Comm comm, out MPI_Status status); ++ ++ /// ++ /// Cancel an outstanding MPI communication request. See . ++ /// ++ /// The request to be cancelled. ++ [DllImport(MPI_DLL, CallingConvention = CallingConvention.StdCall)] ++ public static unsafe extern int MPI_Cancel(ref MPI_Request request); ++ #endregion ++ ++ #region Environment Inquiry ++ /// ++ /// Returns a floating point number of seconds, since some time in the past ++ /// See . ++ /// ++ [DllImport(MPI_DLL, CallingConvention = CallingConvention.StdCall)] ++ public static unsafe extern double MPI_Wtime(); ++ ++ /// ++ /// Returns a resolution of , in seconds. ++ /// See . ++ /// ++ [DllImport(MPI_DLL, CallingConvention = CallingConvention.StdCall)] ++ public static unsafe extern double MPI_Wtick(); ++ #endregion ++ ++ #region Collective communication ++ /// ++ /// Perform a parallel reduction operation that summarizes the results from the input provided ++ /// by all of the processes in the communicator. Semantically, this is equivalent to an ++ /// to an arbitrary root followed by an from ++ /// that process. ++ /// See ++ /// ++ /// ++ /// Buffer containing the "outgoing" values contributed by the calling process to the reduction operation. ++ /// ++ /// ++ /// Buffer that will receive the results of the parallel reduction. ++ /// ++ /// ++ /// The number of elements in and . ++ /// ++ /// ++ /// The type of data in and . ++ /// ++ /// ++ /// The MPI reduction operation to use, which may be one of the predefined reduction operations ++ /// or a user-defined operation created with . ++ /// ++ /// ++ /// The communicator over which the reduction will occur. ++ /// ++ [DllImport(MPI_DLL, CallingConvention = CallingConvention.StdCall)] ++ public static unsafe extern int MPI_Allreduce(IntPtr sendbuf, IntPtr recvbuf, int count, MPI_Datatype datatype, MPI_Op op, MPI_Comm comm); ++ ++ /// ++ /// Gather the values provided by each process into an array containing the contributions of all ++ /// of the processes. This operation is equivalent to a to an arbitrary ++ /// root followed by an from that root. ++ /// See ++ /// ++ /// Buffer containing the values that will be sent from this process. ++ /// The number of elements to send. ++ /// The datatype describing the send buffer. ++ /// Buffer that will contain all of the values contributed by every process. ++ /// The number of elements to receive from each process. ++ /// The type of data that will be stored in the receive buffer. ++ /// The communicator over which data will be gathered. ++ [DllImport(MPI_DLL, CallingConvention = CallingConvention.StdCall)] ++ public static unsafe extern int MPI_Allgather(IntPtr sendbuf, int sendcount, MPI_Datatype sendtype, ++ IntPtr recvbuf, int recvcount, MPI_Datatype recvtype, MPI_Comm comm); ++ ++ /// ++ /// Gather the values provided by each process into an array containing the contributions of all ++ /// of the processes. This operation differs from in that it ++ /// permits different processes to provide a different number of elements to be gathered. ++ /// See ++ /// ++ /// Buffer containing the values that will be sent from this process. ++ /// The number of elements to send. ++ /// The datatype describing the send buffer. ++ /// Buffer that will contain all of the values contributed by every process. ++ /// ++ /// An array whose ith element is the number of elements to be received from the process ++ /// with rank i. ++ /// ++ /// ++ /// An array whose ith element is the offset (in ) at which the ++ /// data from process i should be placed. ++ /// ++ /// The type of data that will be stored in the receive buffer. ++ /// The communicator over which data will be gathered. ++ [DllImport(MPI_DLL, CallingConvention = CallingConvention.StdCall)] ++ public static unsafe extern int MPI_Allgatherv(IntPtr sendbuf, int sendcount, MPI_Datatype sendtype, ++ IntPtr recvbuf, int[] recvcounts, int[] displs, MPI_Datatype recvtype, MPI_Comm comm); ++ ++ /// ++ /// Transmits data from every process in a communicator to every other process in the communicator. ++ /// Similar to , except that each process can send different data to ++ /// every other process. To send a different amount of data to each process, use ++ /// or . ++ /// See . ++ /// ++ /// ++ /// Buffer containing the data to send from this process. The ith position in this buffer ++ /// contains the data that will be sent to the process with rank i. ++ /// ++ /// The number of elements to send to each process. ++ /// The type of data stored in . ++ /// ++ /// Buffer that will receive data sent from other processes to this process. ++ /// ++ /// ++ /// The number of elements that will be received from each process. ++ /// ++ /// The type of data stored in . ++ /// The communicator used for collective communication. ++ [DllImport(MPI_DLL, CallingConvention = CallingConvention.StdCall)] ++ public static unsafe extern int MPI_Alltoall(IntPtr sendbuf, int sendcount, MPI_Datatype sendtype, ++ IntPtr recvbuf, int recvcount, MPI_Datatype recvtype, MPI_Comm comm); ++ ++ /// ++ /// Transmits data from every process in a communicator to every other process in the communicator. ++ /// Similar to , except that each process can send different data to ++ /// every other process. If all of your processes send the same amount of data to each other, use ++ /// the simpler ; if you need the data sent to different processes to ++ /// have different datatypes, use . ++ /// See . ++ /// ++ /// ++ /// Buffer containing the data to send from this process. The ith position in this buffer ++ /// contains the data that will be sent to the process with rank i. ++ /// ++ /// ++ /// An array whose ith element contains the number of elements to be send to the process with ++ /// rank i. ++ /// ++ /// ++ /// An array whose ith element contains the offsets into where the ++ /// data destined for the process with rank i begins. ++ /// ++ /// The type of data in . ++ /// ++ /// Buffer that will receive data sent from other processes to this process. ++ /// ++ /// ++ /// An array whose jth element contains the number of elements that will be received from the ++ /// process with rank j. ++ /// ++ /// ++ /// An array whose jth element contains the offset into where the ++ /// data received from the process with rank j begins. ++ /// ++ /// The type of data in . ++ /// The communicator used for collective communication. ++ [DllImport(MPI_DLL, CallingConvention = CallingConvention.StdCall)] ++ public static unsafe extern int MPI_Alltoallv(IntPtr sendbuf, int[] sendcounts, int[] sdispls, MPI_Datatype sendtype, ++ IntPtr recvbuf, int[] recvcounts, int[] rdispls, MPI_Datatype recvtype, MPI_Comm comm); ++ ++ /// ++ /// Transmits data from every process in a communicator to every other process in the communicator. ++ /// Similar to , except that each process can send different data to ++ /// every other process. If all of your processes send the same amount of data to each other, use ++ /// the simpler ; if the volume of data sent to each process can be different ++ /// but all of the data has the same type, use . ++ /// See . ++ /// ++ /// ++ /// Buffer containing the data to send from this process. The ith position in this buffer ++ /// contains the data that will be sent to the process with rank i. ++ /// ++ /// ++ /// An array whose ith element contains the number of elements to be send to the process with ++ /// rank i. ++ /// ++ /// ++ /// An array whose ith element contains the offsets into where the ++ /// data destined for the process with rank i begins. ++ /// ++ /// ++ /// An array whose ith element contains the type of data that will be sent to rank i. ++ /// ++ /// ++ /// Buffer that will receive data sent from other processes to this process. ++ /// ++ /// ++ /// An array whose jth element contains the number of elements that will be received from the ++ /// process with rank j. ++ /// ++ /// ++ /// An array whose jth element contains the offset into where the ++ /// data received from the process with rank j begins. ++ /// ++ /// ++ /// An array whose jth element contains the type of data that will be received from the process ++ /// with rank j. ++ /// ++ /// The communicator used for collective communication. ++ [DllImport(MPI_DLL, CallingConvention = CallingConvention.StdCall)] ++ public static unsafe extern int MPI_Alltoallw(IntPtr sendbuf, int[] sendcnts, int[] sdispls, MPI_Datatype[] sendtypes, ++ IntPtr recvbuf, int[] recvcnts, int[] rdispls, MPI_Datatype[] recvtypes, MPI_Comm comm); ++ ++ /// ++ /// A synchronization barrier where no processor leaves the barrier until all processors have entered the barrier. ++ /// See . ++ /// ++ /// The communicator whose processes will be synchronized. ++ [DllImport(MPI_DLL, CallingConvention = CallingConvention.StdCall)] ++ public static extern int MPI_Barrier(MPI_Comm comm); ++ ++ /// ++ /// Broadcast a value from the root process to every process within the communication. ++ /// ++ /// See . ++ /// ++ /// ++ /// Pointer to the data that will be broadcast. At the root, this buffer will be ++ /// read; in all other processes, the buffer will be written. ++ /// ++ /// The number of elements that points to. ++ /// The type of data stored in the . ++ /// The rank of the root processor, from which the data will be broadcast. ++ /// The communicator over which the data will be transmitted. ++ [DllImport(MPI_DLL, CallingConvention = CallingConvention.StdCall)] ++ public static unsafe extern int MPI_Bcast(IntPtr buffer, int count, MPI_Datatype datatype, int root, MPI_Comm comm); ++ ++ /// ++ /// Performs a partial exclusive reduction on the data, returning the result from combining the data provided ++ /// by the first P-1 processes to the process with rank P. ++ /// See ++ /// ++ /// Buffer containing the data to contribute to the reduction. ++ /// Buffer that will receive the result of combining the first Rank values. ++ /// Number of values in and . ++ /// The type of data in and . ++ /// The reduction operation used to combine values. ++ /// The communicator over which the communication will occur. ++ [DllImport(MPI_DLL, CallingConvention = CallingConvention.StdCall)] ++ public static unsafe extern int MPI_Exscan(IntPtr sendbuf, IntPtr recvbuf, int count, MPI_Datatype datatype, MPI_Op op, MPI_Comm comm); ++ ++ /// ++ /// Gather the values provided by each process into an array containing the contributions of all ++ /// of the processes. This routine differs from in that the results ++ /// are gathered to only the "root" process, which is identified by its ++ /// in the communicator. ++ /// See ++ /// ++ /// Buffer containing the values that will be sent from this process. ++ /// The number of elements to send. ++ /// The datatype describing the send buffer. ++ /// ++ /// Buffer that will contain all of the values contributed by every process. ++ /// This argument is only significant at the root. ++ /// ++ /// ++ /// The number of elements to receive from each process. ++ /// This argument is only significant at the root. ++ /// ++ /// ++ /// The type of data that will be stored in the receive buffer. ++ /// This argument is only significant at the root. ++ /// ++ /// The rank of the "root" process. ++ /// The communicator over which data will be gathered. ++ [DllImport(MPI_DLL, CallingConvention = CallingConvention.StdCall)] ++ public static unsafe extern int MPI_Gather(IntPtr sendbuf, int sendcount, MPI_Datatype sendtype, ++ IntPtr recvbuf, int recvcount, MPI_Datatype recvtype, int root, MPI_Comm comm); ++ ++ /// ++ /// Gather the values provided by each process into an array containing the contributions of all ++ /// of the processes. This routine differs from in that the results ++ /// are gathered to only the "root" process, which is identified by its ++ /// in the communicator. ++ /// See ++ /// ++ /// Buffer containing the values that will be sent from this process. ++ /// The number of elements to send. ++ /// The datatype describing the send buffer. ++ /// ++ /// Buffer that will contain all of the values contributed by every process. ++ /// This argument is only significant at the root. ++ /// ++ /// ++ /// An array whose ith element is the number of elements to receive from process i. ++ /// This argument is only significant at the root. ++ /// ++ /// ++ /// An array whose ith element contains the displacement (into ) at ++ /// which the data from process i will be placed. This argument is only significant at the root. ++ /// ++ /// ++ /// The type of data that will be stored in the receive buffer. ++ /// This argument is only significant at the root. ++ /// ++ /// The rank of the "root" process. ++ /// The communicator over which data will be gathered. ++ [DllImport(MPI_DLL, CallingConvention = CallingConvention.StdCall)] ++ public static unsafe extern int MPI_Gatherv(IntPtr sendbuf, int sendcount, MPI_Datatype sendtype, ++ IntPtr recvbuf, int[] recvcounts, int[] displs, MPI_Datatype recvtype, int root, MPI_Comm comm); ++ ++ /// ++ /// Perform a parallel reduction operation that summarizes the results from the data contributed ++ /// by all of the processes in a communicator. Unlike , the results ++ /// of this operation are returned only to the process whose rank is equivalent to ++ /// , i.e., the "root" process. ++ /// See ++ /// ++ /// ++ /// Buffer containing the "outgoing" values contributed by the calling process to the reduction operation. ++ /// ++ /// ++ /// Buffer that will receive the results of the parallel reduction. This argument is ++ /// only significant at the root. ++ /// ++ /// ++ /// The number of elements in and . ++ /// ++ /// ++ /// The type of data in and . ++ /// ++ /// ++ /// The MPI reduction operation to use, which may be one of the predefined reduction operations ++ /// or a user-defined operation created with . ++ /// ++ /// ++ /// Identifies the root process (which will receive the intermediate of the reduction) by ++ /// its rank in the communicator . ++ /// ++ /// ++ /// The communicator over which the reduction will occur. ++ /// ++ [DllImport(MPI_DLL, CallingConvention = CallingConvention.StdCall)] ++ public static unsafe extern int MPI_Reduce(IntPtr sendbuf, IntPtr recvbuf, int count, MPI_Datatype datatype, MPI_Op op, int root, MPI_Comm comm); ++ ++ /// ++ /// The equivalent of a followed by a , performing a ++ /// reduction on the data provided in and then scattering those results ++ /// to all of the processes. See . ++ /// ++ /// Buffer containing the data to be reduced. ++ /// Buffer that will receive this process's results. ++ /// ++ /// An array whose ith element gives the number of results that will go to the process with rank i. ++ /// ++ /// The type of data in and . ++ /// The operation used to combine each element in . ++ /// The communicator over which this collective will operate. ++ [DllImport(MPI_DLL, CallingConvention = CallingConvention.StdCall)] ++ public static unsafe extern int MPI_Reduce_scatter(IntPtr sendbuf, IntPtr recvbuf, int[] recvcounts, MPI_Datatype datatype, MPI_Op op, MPI_Comm comm); ++ ++ /// ++ /// Performs a partial reduction on the data, returning the result from combining the data provided ++ /// by the first P processes to the process with rank P. ++ /// See ++ /// ++ /// Buffer containing the data to contribute to the reduction. ++ /// Buffer that will receive the result of combining the first Rank values. ++ /// Number of values in and . ++ /// The type of data in and . ++ /// The reduction operation used to combine values. ++ /// The communicator over which the communication will occur. ++ [DllImport(MPI_DLL, CallingConvention = CallingConvention.StdCall)] ++ public static unsafe extern int MPI_Scan(IntPtr sendbuf, IntPtr recvbuf, int count, MPI_Datatype datatype, MPI_Op op, MPI_Comm comm); ++ ++ /// ++ /// Scatters data from one process (the "root" process) to all of the processes in a communicator, ++ /// with different parts of the data going to different processes. ++ /// See . ++ /// ++ /// ++ /// Buffer containing the data to be sent. Only significant at the root process. ++ /// ++ /// ++ /// The number of elements to send to each process. Only significant at the root process. ++ /// ++ /// ++ /// The type of data in . Only significant at the root process. ++ /// ++ /// A buffer that will receive the calling process's part of the data. ++ /// The number of elements to receive. ++ /// The type of data to receive. ++ /// The rank of the "root" process, which supplies the data. ++ /// The communicator over which the data will be scattered. ++ [DllImport(MPI_DLL, CallingConvention = CallingConvention.StdCall)] ++ public static unsafe extern int MPI_Scatter(IntPtr sendbuf, int sendcount, MPI_Datatype sendtype, ++ IntPtr recvbuf, int recvcount, MPI_Datatype rectype, int root, MPI_Comm comm); ++ ++ /// ++ /// Scatters data from one process (the "root" process) to all of the processes in a communicator, ++ /// with different parts of the data going to different processes. Unlike , ++ /// different processes may receive different amounts of data. ++ /// See . ++ /// ++ /// ++ /// Buffer containing the data to be sent. Only significant at the root process. ++ /// ++ /// ++ /// An array whose ith element contains the number of elements to send to process i. ++ /// Only significant at the root process. ++ /// ++ /// ++ /// An array whose ith element contains the offset (into ) ++ /// if the data to be sent to process i. Only significant at the root process. ++ /// ++ /// ++ /// The type of data in . Only significant at the root process. ++ /// ++ /// A buffer that will receive the calling process's part of the data. ++ /// The number of elements to receive. ++ /// The type of data to receive. ++ /// The rank of the "root" process, which supplies the data. ++ /// The communicator over which the data will be scattered. ++ [DllImport(MPI_DLL, CallingConvention = CallingConvention.StdCall)] ++ public static unsafe extern int MPI_Scatterv(IntPtr sendbuf, int[] sendcounts, int[] displs, MPI_Datatype sendtype, ++ IntPtr recvbuf, int recvcount, MPI_Datatype recvtype, int root, MPI_Comm comm); ++ ++ /// ++ /// Creates an MPI operation that invokes a user-provided function. The MPI operation ++ /// can be used with various reduction operations. MPI.NET provides support for user-defined ++ /// operations via the class. ++ /// ++ /// A pointer to the user-defined function. ++ /// Whether this function is commutative. ++ /// Receives the newly-created MPI operation. ++ [DllImport(MPI_DLL, CallingConvention = CallingConvention.StdCall)] ++ public static unsafe extern int MPI_Op_create(MPI_User_function function, int commute, out MPI_Op op); ++ ++ /// ++ /// Frees an MPI operation created via . MPI.NET will automatically ++ /// manage any operations it creates via when the corresponding ++ /// object is disposed of or finalized. ++ /// ++ /// The operation to be freed. ++ [DllImport(MPI_DLL, CallingConvention = CallingConvention.StdCall)] ++ public static unsafe extern int MPI_Op_free(ref MPI_Op op); ++ #endregion ++ ++ #region Memory allocator ++ /// ++ /// Attempts to allocate (unmanaged) memory from MPI. This memory must be ++ /// manually freed with a call to . ++ /// This routine is used automatically by the to ++ /// allocate memory when serializing or de-serializing objects within MPI.NET. ++ /// ++ /// The number of bytes to allocate. ++ /// ++ /// Provides extra information to the MPI implementation that may ++ /// help it allocate memory for a specific reason or from a specific ++ /// memory pool. ++ /// ++ /// ++ /// Will receive a pointer to the newly-allocated memory. ++ /// ++ /// ++ /// if memory is successfully allocated, ++ /// if no memory is available. ++ /// ++ [DllImport(MPI_DLL, CallingConvention = CallingConvention.StdCall)] ++ public static extern unsafe int MPI_Alloc_mem(MPI_Aint size, MPI_Info info, out IntPtr baseptr); ++ ++ /// ++ /// Frees memory allocated with . ++ /// This routine is used automatically by the to ++ /// allocate memory when serializing or de-serializing objects within MPI.NET. ++ /// ++ /// The pointer provided by . ++ [DllImport(MPI_DLL, CallingConvention = CallingConvention.StdCall)] ++ public static extern unsafe int MPI_Free_mem(IntPtr ptr); ++ #endregion ++ ++ #region Helper operations and classes ++ /// ++ /// Converts the intermediate of an MPI_*_compare operation into a enum value. ++ /// ++ public static Comparison ComparisonFromInt(int result) ++ { ++ switch (result) ++ { ++ case MPI_IDENT: ++ return Comparison.Identical; ++ ++ case MPI_CONGRUENT: ++ return Comparison.Congruent; ++ ++ case MPI_SIMILAR: ++ return Comparison.Similar; ++ ++ case MPI_UNEQUAL: ++ return Comparison.Unequal; ++ ++ default: ++ throw new InvalidOperationException("MPI internal error: Invalid comparison result"); ++ } ++ } ++ #endregion ++ ++ #region Process Management ++#if PROCESS_CREATION_PRESENT ++ ++ [DllImport(MPI_DLL, CallingConvention = CallingConvention.StdCall)] ++ public static extern unsafe int MPI_Comm_spawn(byte* command, byte** argv, int maxprocs, MPI_Info info, int root, MPI_Comm comm, out MPI_Comm intercomm, out int[] array_of_errorcodes); ++ ++ [DllImport(MPI_DLL, CallingConvention = CallingConvention.StdCall)] ++ public static extern unsafe int MPI_Comm_spawn(byte* command, byte** argv, int maxprocs, MPI_Info info, int root, MPI_Comm comm, out MPI_Comm intercomm, int* array_of_errorcodes); ++ ++ [DllImport(MPI_DLL, CallingConvention = CallingConvention.StdCall)] ++ public static extern unsafe int MPI_Comm_get_parent(out MPI_Comm comm); ++ ++ [DllImport(MPI_DLL, CallingConvention = CallingConvention.StdCall)] ++ public static extern unsafe int MPI_Comm_spawn_multiple(int count, ref byte* array_of_commands, ref byte** array_of_argv, ref int array_of_maxprocs, ref MPI_Info array_of_info, int root, MPI_Comm comm, out MPI_Comm intercomm, out int array_of_errorcodes); ++ ++ ++ //public byte** MPI_ARGV_NULL = (byte**)0; ++ //public byte** MPI_ARGVS_NULL = (byte**)0; ++ //public int* MPI_ERRCODES_IGNORE = (int*)0; ++#endif ++ #endregion ++ ++ // CBridge Customizations Follow ++ [DllImport("mpinet")] public static unsafe extern MPI_Comm mpinet_MPI_COMM_WORLD(); ++ ++ [DllImport("mpinet")] public static unsafe extern MPI_Comm mpinet_MPI_COMM_SELF(); ++ ++ [DllImport("mpinet")] public static unsafe extern MPI_Comm mpinet_MPI_COMM_NULL(); ++ ++ [DllImport("mpinet")] public static unsafe extern MPI_Datatype mpinet_MPI_CHAR(); ++ ++ [DllImport("mpinet")] public static unsafe extern MPI_Datatype mpinet_MPI_SIGNED_CHAR(); ++ ++ [DllImport("mpinet")] public static unsafe extern MPI_Datatype mpinet_MPI_UNSIGNED_CHAR(); ++ ++ [DllImport("mpinet")] public static unsafe extern MPI_Datatype mpinet_MPI_BYTE(); ++ ++ [DllImport("mpinet")] public static unsafe extern MPI_Datatype mpinet_MPI_WCHAR(); ++ ++ [DllImport("mpinet")] public static unsafe extern MPI_Datatype mpinet_MPI_SHORT(); ++ ++ [DllImport("mpinet")] public static unsafe extern MPI_Datatype mpinet_MPI_UNSIGNED_SHORT(); ++ ++ [DllImport("mpinet")] public static unsafe extern MPI_Datatype mpinet_MPI_INT(); ++ ++ [DllImport("mpinet")] public static unsafe extern MPI_Datatype mpinet_MPI_UNSIGNED(); ++ ++ [DllImport("mpinet")] public static unsafe extern MPI_Datatype mpinet_MPI_LONG(); ++ ++ [DllImport("mpinet")] public static unsafe extern MPI_Datatype mpinet_MPI_UNSIGNED_LONG(); ++ ++ [DllImport("mpinet")] public static unsafe extern MPI_Datatype mpinet_MPI_FLOAT(); ++ ++ [DllImport("mpinet")] public static unsafe extern MPI_Datatype mpinet_MPI_DOUBLE(); ++ ++ [DllImport("mpinet")] public static unsafe extern MPI_Datatype mpinet_MPI_LONG_DOUBLE(); ++ ++ [DllImport("mpinet")] public static unsafe extern MPI_Datatype mpinet_MPI_LONG_LONG_INT(); ++ ++ [DllImport("mpinet")] public static unsafe extern MPI_Datatype mpinet_MPI_UNSIGNED_LONG_LONG(); ++ ++ [DllImport("mpinet")] public static unsafe extern MPI_Datatype mpinet_MPI_LONG_LONG(); ++ ++ [DllImport("mpinet")] public static unsafe extern MPI_Datatype mpinet_MPI_PACKED(); ++ ++ [DllImport("mpinet")] public static unsafe extern MPI_Datatype mpinet_MPI_DATATYPE_NULL(); ++ ++ [DllImport("mpinet")] public static unsafe extern MPI_Group mpinet_MPI_GROUP_EMPTY(); ++ ++ [DllImport("mpinet")] public static unsafe extern MPI_Group mpinet_MPI_GROUP_NULL(); ++ ++ [DllImport("mpinet")] public static unsafe extern MPI_Info mpinet_MPI_INFO_NULL(); ++ ++ [DllImport("mpinet")] public static unsafe extern MPI_Copy_function mpinet_MPI_NULL_COPY_FN(); ++ ++ [DllImport("mpinet")] public static unsafe extern MPI_Delete_function mpinet_MPI_NULL_DELETE_FN(); ++ ++ [DllImport("mpinet")] public static unsafe extern MPI_Errhandler mpinet_MPI_ERRORS_ARE_FATAL(); ++ ++ [DllImport("mpinet")] public static unsafe extern MPI_Errhandler mpinet_MPI_ERRORS_RETURN(); ++ ++ [DllImport("mpinet")] public static unsafe extern MPI_Errhandler mpinet_MPI_ERRHANDLER_NULL(); ++ ++ [DllImport("mpinet")] public static unsafe extern MPI_Op mpinet_MPI_MAX(); ++ ++ [DllImport("mpinet")] public static unsafe extern MPI_Op mpinet_MPI_MIN(); ++ ++ [DllImport("mpinet")] public static unsafe extern MPI_Op mpinet_MPI_SUM(); ++ ++ [DllImport("mpinet")] public static unsafe extern MPI_Op mpinet_MPI_PROD(); ++ ++ [DllImport("mpinet")] public static unsafe extern MPI_Op mpinet_MPI_LAND(); ++ ++ [DllImport("mpinet")] public static unsafe extern MPI_Op mpinet_MPI_BAND(); ++ ++ [DllImport("mpinet")] public static unsafe extern MPI_Op mpinet_MPI_LOR(); ++ ++ [DllImport("mpinet")] public static unsafe extern MPI_Op mpinet_MPI_BOR(); ++ ++ [DllImport("mpinet")] public static unsafe extern MPI_Op mpinet_MPI_LXOR(); ++ ++ [DllImport("mpinet")] public static unsafe extern MPI_Op mpinet_MPI_BXOR(); ++ ++ [DllImport("mpinet")] public static unsafe extern MPI_Op mpinet_MPI_MINLOC(); ++ ++ [DllImport("mpinet")] public static unsafe extern MPI_Op mpinet_MPI_MAXLOC(); ++ ++ [DllImport("mpinet")] public static unsafe extern MPI_Op mpinet_MPI_OP_NULL(); ++ ++ [DllImport("mpinet")] public static unsafe extern MPI_Request mpinet_MPI_REQUEST_NULL(); ++ ++ } ++} +diff --git a/MPI/cbridge.c b/MPI/cbridge.c +new file mode 100644 +index 0000000..abe1b6c +--- /dev/null ++++ b/MPI/cbridge.c +@@ -0,0 +1,58 @@ ++/* Copyright (C) 2007, 2008 The Trustees of Indiana University ++ * ++ * Use, modification and distribution is subject to the Boost Software ++ * License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at ++ * http://www.boost.org/LICENSE_1_0.txt) ++ * ++ * This file was automatically generated from Unsafe.cs by Unsafe.pl. ++ * Edit at your own risk. ++ * ++ * Authors: Douglas Gregor ++ * Andrew Lumsdaine ++ */ ++#include ++ ++MPI_Comm mpinet_MPI_COMM_WORLD() { return MPI_COMM_WORLD; } ++MPI_Comm mpinet_MPI_COMM_SELF() { return MPI_COMM_SELF; } ++MPI_Comm mpinet_MPI_COMM_NULL() { return MPI_COMM_NULL; } ++MPI_Datatype mpinet_MPI_CHAR() { return MPI_CHAR; } ++MPI_Datatype mpinet_MPI_SIGNED_CHAR() { return MPI_SIGNED_CHAR; } ++MPI_Datatype mpinet_MPI_UNSIGNED_CHAR() { return MPI_UNSIGNED_CHAR; } ++MPI_Datatype mpinet_MPI_BYTE() { return MPI_BYTE; } ++MPI_Datatype mpinet_MPI_WCHAR() { return MPI_WCHAR; } ++MPI_Datatype mpinet_MPI_SHORT() { return MPI_SHORT; } ++MPI_Datatype mpinet_MPI_UNSIGNED_SHORT() { return MPI_UNSIGNED_SHORT; } ++MPI_Datatype mpinet_MPI_INT() { return MPI_INT; } ++MPI_Datatype mpinet_MPI_UNSIGNED() { return MPI_UNSIGNED; } ++MPI_Datatype mpinet_MPI_LONG() { return MPI_LONG; } ++MPI_Datatype mpinet_MPI_UNSIGNED_LONG() { return MPI_UNSIGNED_LONG; } ++MPI_Datatype mpinet_MPI_FLOAT() { return MPI_FLOAT; } ++MPI_Datatype mpinet_MPI_DOUBLE() { return MPI_DOUBLE; } ++MPI_Datatype mpinet_MPI_LONG_DOUBLE() { return MPI_LONG_DOUBLE; } ++MPI_Datatype mpinet_MPI_LONG_LONG_INT() { return MPI_LONG_LONG_INT; } ++MPI_Datatype mpinet_MPI_UNSIGNED_LONG_LONG() { return MPI_UNSIGNED_LONG_LONG; } ++MPI_Datatype mpinet_MPI_LONG_LONG() { return MPI_LONG_LONG; } ++MPI_Datatype mpinet_MPI_PACKED() { return MPI_PACKED; } ++MPI_Datatype mpinet_MPI_DATATYPE_NULL() { return MPI_DATATYPE_NULL; } ++MPI_Group mpinet_MPI_GROUP_EMPTY() { return MPI_GROUP_EMPTY; } ++MPI_Group mpinet_MPI_GROUP_NULL() { return MPI_GROUP_NULL; } ++MPI_Info mpinet_MPI_INFO_NULL() { return MPI_INFO_NULL; } ++MPI_Copy_function * mpinet_MPI_NULL_COPY_FN() { return MPI_NULL_COPY_FN; } ++MPI_Delete_function * mpinet_MPI_NULL_DELETE_FN() { return MPI_NULL_DELETE_FN; } ++MPI_Errhandler mpinet_MPI_ERRORS_ARE_FATAL() { return MPI_ERRORS_ARE_FATAL; } ++MPI_Errhandler mpinet_MPI_ERRORS_RETURN() { return MPI_ERRORS_RETURN; } ++MPI_Errhandler mpinet_MPI_ERRHANDLER_NULL() { return MPI_ERRHANDLER_NULL; } ++MPI_Op mpinet_MPI_MAX() { return MPI_MAX; } ++MPI_Op mpinet_MPI_MIN() { return MPI_MIN; } ++MPI_Op mpinet_MPI_SUM() { return MPI_SUM; } ++MPI_Op mpinet_MPI_PROD() { return MPI_PROD; } ++MPI_Op mpinet_MPI_LAND() { return MPI_LAND; } ++MPI_Op mpinet_MPI_BAND() { return MPI_BAND; } ++MPI_Op mpinet_MPI_LOR() { return MPI_LOR; } ++MPI_Op mpinet_MPI_BOR() { return MPI_BOR; } ++MPI_Op mpinet_MPI_LXOR() { return MPI_LXOR; } ++MPI_Op mpinet_MPI_BXOR() { return MPI_BXOR; } ++MPI_Op mpinet_MPI_MINLOC() { return MPI_MINLOC; } ++MPI_Op mpinet_MPI_MAXLOC() { return MPI_MAXLOC; } ++MPI_Op mpinet_MPI_OP_NULL() { return MPI_OP_NULL; } ++MPI_Request mpinet_MPI_REQUEST_NULL() { return MPI_REQUEST_NULL; } diff --git a/m/MPJ-Express/MPJ-Express-0.44-foss-2016a-Java-1.8.0_92.eb b/m/MPJ-Express/MPJ-Express-0.44-foss-2016a-Java-1.8.0_92.eb new file mode 100644 index 00000000..c8deee65 --- /dev/null +++ b/m/MPJ-Express/MPJ-Express-0.44-foss-2016a-Java-1.8.0_92.eb @@ -0,0 +1,47 @@ +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# Author: Pablo Escobar Lopez +# sciCORE - University of Basel +# SIB Swiss Institute of Bioinformatics + +easyblock = 'Tarball' + +name = 'MPJ-Express' +version = '0.44' +versionsuffix = '-Java-%(javaver)s' + +homepage = 'http://mpj-express.org/' +description = """MPJ Express is an open source Java message passing library that allows application + developers to write and execute parallel applications for multicore processors and compute clusters/clouds.""" + +toolchain = {'name': 'foss', 'version': '2016a'} + +source_urls = ['https://sourceforge.net/projects/mpjexpress/files/releases/'] +sources = ['mpj-v%s.tar.gz' % (version.replace('.','_'))] + +builddependencies = [('CMake', '3.5.2')] + +dependencies = [ + ('Java', '1.8.0_92', '', True), +] + +# compile JNI wrapper library as described in docs +# http://mpj-express.org/docs/readme/README +postinstallcmds = [ + "mkdir %(installdir)s/src/mpjdev/natmpjdev/lib/build", + "cd %(installdir)s/src/mpjdev/natmpjdev/lib/build && cmake .. && make && make install DESTDIR=%(installdir)s", +] + +modextrapaths = { + 'CLASSPATH': 'lib', +} + +modextravars = { + 'MPJ_HOME': '$root', # MPJ_HOME points to install directory +} + +sanity_check_paths = { + 'files': ['lib/libnativempjdev.so', 'bin/mpjrun.sh'], + 'dirs': [] +} + +moduleclass = 'lib' diff --git a/m/MPJ-Express/MPJ-Express-0.44-goolf-1.4.10-Java-1.7.0_75.eb b/m/MPJ-Express/MPJ-Express-0.44-goolf-1.4.10-Java-1.7.0_75.eb new file mode 100644 index 00000000..25c03b41 --- /dev/null +++ b/m/MPJ-Express/MPJ-Express-0.44-goolf-1.4.10-Java-1.7.0_75.eb @@ -0,0 +1,48 @@ +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# Author: Pablo Escobar Lopez +# sciCORE - University of Basel +# SIB Swiss Institute of Bioinformatics + +easyblock = 'Tarball' + +name = 'MPJ-Express' +version = '0.44' + +homepage = 'http://mpj-express.org/' +description = """MPJ Express is an open source Java message passing library that allows application + developers to write and execute parallel applications for multicore processors and compute clusters/clouds.""" + +toolchain = {'name': 'goolf', 'version': '1.4.10'} + +source_urls = ['https://sourceforge.net/projects/mpjexpress/files/releases/'] +sources = ['mpj-v%s.tar.gz' % (version.replace('.','_'))] + +java = 'Java' +javaver = '1.7.0_75' +versionsuffix = '-%s-%s' % (java, javaver) + +builddependencies = [('CMake', '2.8.12')] + +dependencies = [ + (java, javaver, '', True), +] + +# compile JNI wrapper library as described in docs +# http://mpj-express.org/docs/readme/README +postinstallcmds = ["mkdir %(installdir)s/src/mpjdev/natmpjdev/lib/build", + "cd %(installdir)s/src/mpjdev/natmpjdev/lib/build && cmake .. && make && make install DESTDIR=%(installdir)s",] + +modextrapaths = { + 'CLASSPATH': 'lib', +} + +modextravars = { + 'MPJ_HOME': '$root', # MPJ_HOME points to install directory +} + +sanity_check_paths = { + 'files': ['lib/libnativempjdev.so', 'bin/mpjrun.sh'], + 'dirs': [] +} + +moduleclass = 'lib' diff --git a/m/MUMPS/MUMPS-5.0.2-intel-2017a-parmetis.eb b/m/MUMPS/MUMPS-5.0.2-intel-2017a-parmetis.eb new file mode 100644 index 00000000..436f3e99 --- /dev/null +++ b/m/MUMPS/MUMPS-5.0.2-intel-2017a-parmetis.eb @@ -0,0 +1,22 @@ +name = 'MUMPS' +version = '5.0.2' +versionsuffix = '-parmetis' + +homepage = 'http://graal.ens-lyon.fr/MUMPS/' +description = "A parallel sparse direct solver" + +toolchain = {'name': 'intel', 'version': '2017a'} +toolchainopts = {'pic': True, 'usempi': True} + +source_urls = ['http://mumps.enseeiht.fr/'] +sources = ['%(name)s_%(version)s.tar.gz'] + +dependencies = [ + ('SCOTCH', '6.0.4'), + ('ParMETIS', '4.0.3'), +] + +parallel = 1 +buildopts = 'all' + +moduleclass = 'math' diff --git a/m/MVAPICH2/MVAPICH2-1.7-GCC-4.6.3-hwloc-chkpt.eb b/m/MVAPICH2/MVAPICH2-1.7-GCC-4.6.3-hwloc-chkpt.eb new file mode 100644 index 00000000..0d8dbcbf --- /dev/null +++ b/m/MVAPICH2/MVAPICH2-1.7-GCC-4.6.3-hwloc-chkpt.eb @@ -0,0 +1,38 @@ +name = 'MVAPICH2' +version = '1.7' +versionsuffix = '-hwloc-chkpt' + +homepage = 'http://mvapich.cse.ohio-state.edu/overview/mvapich2/' +description = """This is an MPI-2 implementation (conforming to MPI 2.1 standard) which includes all MPI-1 features. +It is based on MPICH2 and MVICH.""" + +toolchain = {'name': 'GCC', 'version': '4.6.3'} + +sources = [SOURCELOWER_TGZ] +# note: this URL will only work for the most recent version (previous versions no longer available?) +source_urls = ['http://mvapich.cse.ohio-state.edu/download/mvapich2'] + +checksums = ['b05c3cde3d181b2499500b4bd8962e3f'] + +dependencies = [ + ('hwloc', '1.5.1'), + ('attr', '2.4.47'), +] + +builddependencies = [('Bison', '2.5')] + +osdependencies = [('libcr-dev', 'blcr-devel'),] + +# enable building of MPE routines +withmpe = True + +# enable hwloc support +withhwloc = True + +# enable checkpointing support +withchkpt = True + +# parallel build tends to fail +parallel = 1 + +moduleclass = 'mpi' diff --git a/m/MVAPICH2/MVAPICH2-1.9-GNU-5.1.0-2.25.eb b/m/MVAPICH2/MVAPICH2-1.9-GNU-5.1.0-2.25.eb new file mode 100644 index 00000000..4ae90e09 --- /dev/null +++ b/m/MVAPICH2/MVAPICH2-1.9-GNU-5.1.0-2.25.eb @@ -0,0 +1,18 @@ +name = 'MVAPICH2' +version = '1.9' + +homepage = 'http://mvapich.cse.ohio-state.edu/overview/mvapich2/' +description = "This is an MPI 3.0 implementation. It is based on MPICH2 and MVICH." + +toolchain = {'name': 'GNU', 'version': '5.1.0-2.25'} + +source_urls = ['http://mvapich.cse.ohio-state.edu/download/mvapich2/'] +sources = [SOURCELOWER_TGZ] + +builddependencies = [('Bison', '2.7')] + +configopts = "--enable-btl-openib-failover --with-tm=/opt/pbs/default --with-openib --enable-threads=runtime " +configopts += "--enable-shared --with-device=ch3:nemesis --enable-ckpt --enable-xrc --disable-rdma-cm " +configopts += "--enable-romio --with-file-system=lustre+nfs" + +moduleclass = 'mpi' diff --git a/m/MVAPICH2/MVAPICH2-1.9-intel-2015b.eb b/m/MVAPICH2/MVAPICH2-1.9-intel-2015b.eb new file mode 100644 index 00000000..354f5d21 --- /dev/null +++ b/m/MVAPICH2/MVAPICH2-1.9-intel-2015b.eb @@ -0,0 +1,16 @@ +name = 'MVAPICH2' +version = '1.9' + +homepage = 'http://mvapich.cse.ohio-state.edu/overview/mvapich2/' +description = "This is an MPI 3.0 implementation. It is based on MPICH2 and MVICH." + +toolchain = {'name': 'intel', 'version': '2015b'} + +osdependencies = [('libibmad-devel', 'libibmad-dev')] + +source_urls = ['http://mvapich.cse.ohio-state.edu/download/mvapich2/'] +sources = [SOURCELOWER_TGZ] + +builddependencies = [('Bison', '2.7')] + +moduleclass = 'mpi' diff --git a/m/MVAPICH2/MVAPICH2-2.1-GCC-4.4.7-system.eb b/m/MVAPICH2/MVAPICH2-2.1-GCC-4.4.7-system.eb new file mode 100644 index 00000000..88392694 --- /dev/null +++ b/m/MVAPICH2/MVAPICH2-2.1-GCC-4.4.7-system.eb @@ -0,0 +1,28 @@ +name = 'MVAPICH2' +version = '2.1' + +homepage = 'http://mvapich.cse.ohio-state.edu/overview/mvapich2/' +description = "This is an MPI 3.0 implementation. It is based on MPICH2 and MVICH." + +toolchain = {'name': 'GCC', 'version': '4.4.7-system'} + +source_urls = ['http://mvapich.cse.ohio-state.edu/download/mvapich/mv2/'] +sources = [SOURCELOWER_TAR_GZ] + +preconfigopts = 'unset F90 && unset FC && unset F90FLAGS && unset FCFLAGS && ' + +configopts = "--enable-btl-openib-failover --with-tm=/opt/pbs/default --with-openib " +configopts += "--enable-threads=runtime --enable-shared --with-device=ch3:nemesis " +configopts += "--disable-rdma-cm --enable-romio --with-file-system=lustre+nfs " + +# Let's store the checksum in order to be sure it doesn't suddenly change +checksums = ['0095ceecb19bbb7fb262131cb9c2cdd6'] + +osdependencies = ['bison-devel'] + +sanity_check_paths = { + 'files': ['lib/libmpicxx.a'], + 'dirs': ['include'] +} + +moduleclass = 'mpi' diff --git a/m/MVAPICH2/MVAPICH2-2.1-GNU-5.1.0-2.25.eb b/m/MVAPICH2/MVAPICH2-2.1-GNU-5.1.0-2.25.eb new file mode 100644 index 00000000..00cc9893 --- /dev/null +++ b/m/MVAPICH2/MVAPICH2-2.1-GNU-5.1.0-2.25.eb @@ -0,0 +1,28 @@ +name = 'MVAPICH2' +version = '2.1' + +homepage = 'http://mvapich.cse.ohio-state.edu/overview/mvapich2/' +description = "This is an MPI 3.0 implementation. It is based on MPICH2 and MVICH." + +toolchain = {'name': 'GNU', 'version': '5.1.0-2.25'} + +source_urls = ['http://mvapich.cse.ohio-state.edu/download/mvapich/mv2/'] +sources = [SOURCELOWER_TAR_GZ] + +preconfigopts = 'unset F90 && unset FC && unset F90FLAGS && unset FCFLAGS && ' + +configopts = "--enable-btl-openib-failover --with-tm=/opt/pbs/default --with-openib " +configopts += "--enable-threads=runtime --enable-shared --with-device=ch3:nemesis " +configopts += "--disable-rdma-cm --enable-romio --with-file-system=lustre+nfs " + +# Let's store the checksum in order to be sure it doesn't suddenly change +checksums = ['0095ceecb19bbb7fb262131cb9c2cdd6'] + +builddependencies = [('Bison', '2.7')] + +sanity_check_paths = { + 'files': ['lib/libmpicxx.a'], + 'dirs': ['include'] +} + +moduleclass = 'mpi' diff --git a/m/MVAPICH2/MVAPICH2-2.1-iccifort-2015.3.187-GNU-5.1.0-2.25.eb b/m/MVAPICH2/MVAPICH2-2.1-iccifort-2015.3.187-GNU-5.1.0-2.25.eb new file mode 100644 index 00000000..8b01a131 --- /dev/null +++ b/m/MVAPICH2/MVAPICH2-2.1-iccifort-2015.3.187-GNU-5.1.0-2.25.eb @@ -0,0 +1,29 @@ +name = 'MVAPICH2' +version = '2.1' + +homepage = 'http://mvapich.cse.ohio-state.edu/overview/mvapich2/' +description = "This is an MPI 3.0 implementation. It is based on MPICH2 and MVICH." + +toolchain = {'name': 'iccifort', 'version': '2015.3.187-GNU-5.1.0-2.25'} + +source_urls = ['http://mvapich.cse.ohio-state.edu/download/mvapich/mv2/'] +sources = [SOURCELOWER_TAR_GZ] + +preconfigopts = 'unset F90 && unset FC && unset F90FLAGS && unset FCFLAGS && ' + +configopts = "--enable-btl-openib-failover --with-tm=/opt/pbs/default --with-openib " +configopts += "--enable-threads=runtime --enable-shared --with-device=ch3:nemesis " +configopts += ' CC=icc FC=ifort CXX=icpc ' +configopts += "--disable-rdma-cm --enable-romio --with-file-system=lustre+nfs " + +# Let's store the checksum in order to be sure it doesn't suddenly change +checksums = ['0095ceecb19bbb7fb262131cb9c2cdd6'] + +builddependencies = [('Bison', '2.7', '', ('intel', '2015b'))] + +sanity_check_paths = { + 'files': ['lib/libmpicxx.a'], + 'dirs': ['include'] +} + +moduleclass = 'mpi' diff --git a/m/MaCH/MaCH-1.0.18.c-goolf-1.4.10.eb b/m/MaCH/MaCH-1.0.18.c-goolf-1.4.10.eb new file mode 100644 index 00000000..3c30407b --- /dev/null +++ b/m/MaCH/MaCH-1.0.18.c-goolf-1.4.10.eb @@ -0,0 +1,36 @@ +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# Author: Pablo Escobar Lopez +# Swiss Institute of Bioinformatics +# Biozentrum - University of Basel + +easyblock = 'ConfigureMake' + +name = 'MaCH' +version = '1.0.18.c' + +homepage = 'http://www.sph.umich.edu/csg/abecasis/MaCH/' +description = """ MaCH 1.0 is a Markov Chain based haplotyper. It can resolve long + haplotypes or infer missing genotypes in samples of unrelated individuals. The + current version is a pre-release. """ + +toolchain = {'name': 'goolf', 'version': '1.4.10'} + +source_urls = ['http://www.sph.umich.edu/csg/abecasis/MaCH/download/'] +sources = ['%s.%s.source.tgz' % (name.lower(), version.replace(".c",""))] + +dependencies = [('zlib', '1.2.8')] + +skipsteps = ['configure'] + +parallel = 1 + +buildopts = ' all CXX="$CXX $CXXFLAGS"' + +installopts = ' INSTALLDIR=%(installdir)s/bin CXX="$CXX $CXXFLAGS"' + +sanity_check_paths = { + 'files': ['bin/mach1', 'bin/thunder'], + 'dirs': [] +} + +moduleclass = 'bio' diff --git a/m/MaCH/MaCH-1.0.18.c-ictce-6.2.5.eb b/m/MaCH/MaCH-1.0.18.c-ictce-6.2.5.eb new file mode 100644 index 00000000..25039811 --- /dev/null +++ b/m/MaCH/MaCH-1.0.18.c-ictce-6.2.5.eb @@ -0,0 +1,36 @@ +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# Author: Pablo Escobar Lopez +# Swiss Institute of Bioinformatics +# Biozentrum - University of Basel + +easyblock = 'ConfigureMake' + +name = 'MaCH' +version = '1.0.18.c' + +homepage = 'http://www.sph.umich.edu/csg/abecasis/MaCH/' +description = """ MaCH 1.0 is a Markov Chain based haplotyper. It can resolve long + haplotypes or infer missing genotypes in samples of unrelated individuals. The + current version is a pre-release. """ + +toolchain = {'name': 'ictce', 'version': '6.2.5'} + +source_urls = ['http://www.sph.umich.edu/csg/abecasis/MaCH/download/'] +sources = ['%s.%s.source.tgz' % (name.lower(), version.replace(".c",""))] + +dependencies = [('zlib', '1.2.8')] + +skipsteps = ['configure'] + +parallel = 1 + +buildopts = ' all CXX="$CXX $CXXFLAGS"' + +installopts = ' INSTALLDIR=%(installdir)s/bin CXX="$CXX $CXXFLAGS"' + +sanity_check_paths = { + 'files': ['bin/mach1', 'bin/thunder'], + 'dirs': [] +} + +moduleclass = 'bio' diff --git a/m/MariaDB/MariaDB-10.1.13-intel-2016a.eb b/m/MariaDB/MariaDB-10.1.13-intel-2016a.eb new file mode 100644 index 00000000..ae90e1a3 --- /dev/null +++ b/m/MariaDB/MariaDB-10.1.13-intel-2016a.eb @@ -0,0 +1,40 @@ +easyblock = 'CMakeMake' + +name = 'MariaDB' +version = '10.1.13' + +homepage = 'https://mariadb.org/' +description = """MariaDB An enhanced, drop-in replacement for MySQL.""" + +toolchain = {'name': 'intel', 'version': '2016a'} + +source_urls = ['https://downloads.mariadb.org/f/mariadb-%(version)s/source'] +sources = [SOURCELOWER_TAR_GZ] + +patches = [ + 'MariaDB-%(version)s-remove-Werror.patch', + 'MariaDB-%(version)s-link-rt-for-jemalloc.patch', +] + +dependencies = [ + ('zlib', '1.2.8'), + ('ncurses', '6.0'), + ('jemalloc', '4.1.0'), + ('PCRE', '8.38'), + ('XZ', '5.2.2'), + ('Boost', '1.60.0', '-Python-2.7.11'), + ('libxml2', '2.9.3'), +] + +builddependencies = [('CMake', '3.4.3')] + +separate_build_dir = True + +configopts = "-DWITH_PCRE=system -DWITH_JEMALLOC=yes -DWITH_ZLIB=system -DMYSQL_MAINTAINER_MODE=ON" + +sanity_check_paths = { + 'files': ['bin/mysql', 'bin/mysqld_safe', 'lib/libmysqlclient.%s' % SHLIB_EXT, 'scripts/mysql_install_db'], + 'dirs': ['include', 'share'], +} + +moduleclass = 'data' diff --git a/m/Maven/Maven-3.2.3.eb b/m/Maven/Maven-3.2.3.eb new file mode 100644 index 00000000..ae08a0b4 --- /dev/null +++ b/m/Maven/Maven-3.2.3.eb @@ -0,0 +1,22 @@ +easyblock = 'PackedBinary' + +name = 'Maven' +version = '3.2.3' + +homepage = 'http://maven.apache.org/index.html' +description = """Binary maven install, Apache Maven is a software project management and comprehension tool. Based on +the concept of a project object model (POM), Maven can manage a project's build, reporting and documentation from a +central piece of information. +""" + +toolchain = {'name': 'dummy', 'version': 'dummy'} + +sources = ['apache-maven-%(version)s-bin.tar.gz'] +source_urls = ['http://apache.org/dist/maven/maven-%(version_major)s/%(version)s/binaries/'] + +sanity_check_paths = { + 'files': ["bin/mvn"], + 'dirs': [], +} + +moduleclass = 'devel' diff --git a/m/Maven/Maven-3.3.3.eb b/m/Maven/Maven-3.3.3.eb new file mode 100644 index 00000000..642c9d91 --- /dev/null +++ b/m/Maven/Maven-3.3.3.eb @@ -0,0 +1,22 @@ +easyblock = 'PackedBinary' + +name = 'Maven' +version = '3.3.3' + +homepage = 'http://maven.apache.org/index.html' +description = """Binary maven install, Apache Maven is a software project management and comprehension tool. Based on +the concept of a project object model (POM), Maven can manage a project's build, reporting and documentation from a +central piece of information. +""" + +toolchain = {'name': 'dummy', 'version': 'dummy'} + +sources = ['apache-maven-%(version)s-bin.tar.gz'] +source_urls = ['http://apache.org/dist/maven/maven-%(version_major)s/%(version)s/binaries/'] + +sanity_check_paths = { + 'files': ["bin/mvn"], + 'dirs': [], +} + +moduleclass = 'devel' diff --git a/m/Mawk/Mawk-1.3.4-goolf-1.4.10-20150503.eb b/m/Mawk/Mawk-1.3.4-goolf-1.4.10-20150503.eb new file mode 100644 index 00000000..7235621e --- /dev/null +++ b/m/Mawk/Mawk-1.3.4-goolf-1.4.10-20150503.eb @@ -0,0 +1,27 @@ +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# Author: Pablo Escobar Lopez +# sciCORE - University of Basel +# SIB Swiss Institute of Bioinformatics + +easyblock = 'ConfigureMake' + +name = 'Mawk' +version = '1.3.4' +versionsuffix = '-20150503' + +homepage = 'http://invisible-island.net/mawk/' +description = """mawk is an interpreter for the AWK Programming Language.""" + +toolchain = {'name': 'goolf', 'version': '1.4.10'} + +source_urls = ['ftp://invisible-island.net/mawk/'] +sources = ['%(namelower)s-%(version)s%(versionsuffix)s.tgz'] + +parallel = 1 + +sanity_check_paths = { + 'files': ['bin/mawk'], + 'dirs': [], +} + +moduleclass = 'tools' diff --git a/m/Meep/Meep-1.2-goalf-1.1.0-no-OFED.eb b/m/Meep/Meep-1.2-goalf-1.1.0-no-OFED.eb new file mode 100644 index 00000000..c4caf8f3 --- /dev/null +++ b/m/Meep/Meep-1.2-goalf-1.1.0-no-OFED.eb @@ -0,0 +1,31 @@ +easyblock = 'ConfigureMake' + +name = 'Meep' +version = '1.2' + +homepage = 'http://ab-initio.mit.edu/wiki/index.php/Meep' +description = """Meep (or MEEP) is a free finite-difference time-domain (FDTD) simulation software package + developed at MIT to model electromagnetic systems.""" + +toolchain = {'name': 'goalf', 'version': '1.1.0-no-OFED'} +toolchainopts = {'usempi': True, 'opt': True, 'optarch': True, 'unroll': True, 'pic': True} + +source_urls = [ + 'http://ab-initio.mit.edu/meep/', + 'http://ab-initio.mit.edu/meep/old/', +] +sources = [SOURCELOWER_TAR_GZ] + +dependencies = [ + ('Harminv', '1.3.1'), + ('HDF5', '1.8.7'), + ('libctl', '3.2.1'), + ('GSL', '1.15'), +] + +configopts = '--with-pic --with-mpi --without-gcc-arch --with-libctl=$EBROOTLIBCTL/share/libctl --enable-shared ' + +# fix for guile-config being broken because shebang line contains full path to bin/guile +configopts += 'GUILE_CONFIG="$EBROOTGUILE/bin/guile -e main -s $EBROOTGUILE/bin/guile-config"' + +moduleclass = 'phys' diff --git a/m/Meep/Meep-1.2-goolf-1.4.10.eb b/m/Meep/Meep-1.2-goolf-1.4.10.eb new file mode 100644 index 00000000..9c0e3d28 --- /dev/null +++ b/m/Meep/Meep-1.2-goolf-1.4.10.eb @@ -0,0 +1,31 @@ +easyblock = 'ConfigureMake' + +name = 'Meep' +version = '1.2' + +homepage = 'http://ab-initio.mit.edu/wiki/index.php/Meep' +description = """Meep (or MEEP) is a free finite-difference time-domain (FDTD) simulation software packagedeveloped at +MIT to model electromagnetic systems.""" + +toolchain = {'name': 'goolf', 'version': '1.4.10'} +toolchainopts = {'usempi': True, 'opt': True, 'optarch': True, 'unroll': True, 'pic': True} + +source_urls = [ + 'http://ab-initio.mit.edu/meep/', + 'http://ab-initio.mit.edu/meep/old/', +] +sources = [SOURCELOWER_TAR_GZ] + +dependencies = [ + ('Harminv', '1.3.1'), + ('HDF5', '1.8.7'), + ('libctl', '3.2.1'), + ('GSL', '1.15'), +] + +configopts = '--with-pic --with-mpi --without-gcc-arch --with-libctl=$EBROOTLIBCTL/share/libctl --enable-shared ' + +# fix for guile-config being broken because shebang line contains full path to bin/guile +configopts += 'GUILE_CONFIG="$EBROOTGUILE/bin/guile -e main -s $EBROOTGUILE/bin/guile-config"' + +moduleclass = 'phys' diff --git a/m/Meep/Meep-1.2-ictce-4.0.6.eb b/m/Meep/Meep-1.2-ictce-4.0.6.eb new file mode 100644 index 00000000..15da01ed --- /dev/null +++ b/m/Meep/Meep-1.2-ictce-4.0.6.eb @@ -0,0 +1,35 @@ +easyblock = 'ConfigureMake' + +name = 'Meep' +version = '1.2' + +homepage = 'http://ab-initio.mit.edu/wiki/index.php/Meep' +description = """Meep (or MEEP) is a free finite-difference time-domain (FDTD) simulation software package + developed at MIT to model electromagnetic systems.""" + +toolchain = {'name': 'ictce', 'version': '4.0.6'} +toolchainopts = {'usempi': True, 'opt': True, 'optarch': True, 'unroll': True, 'pic': True} + +source_urls = [ + 'http://ab-initio.mit.edu/meep/', + 'http://ab-initio.mit.edu/meep/old/', +] +sources = [SOURCELOWER_TAR_GZ] + +patches = ['Meep-%(version)s_version-string-without-spaces.patch'] + +dependencies = [ + ('Harminv', '1.3.1'), + ('HDF5', '1.8.7'), + ('libctl', '3.2.1'), + ('GSL', '1.15'), + ('FFTW', '3.3.1') +] + +configopts = "--with-pic --with-mpi --with-blas=mkl_em64t --with-lapack=mkl_em64t --without-gcc-arch " +configopts += "--with-libctl=$EBROOTLIBCTL/share/libctl --enable-shared " + +# fix for guile-config being broken because shebang line contains full path to bin/guile +configopts += 'GUILE_CONFIG="$EBROOTGUILE/bin/guile -e main -s $EBROOTGUILE/bin/guile-config"' + +moduleclass = 'phys' diff --git a/m/Meep/Meep-1.2-ictce-5.3.0.eb b/m/Meep/Meep-1.2-ictce-5.3.0.eb new file mode 100644 index 00000000..475c5f32 --- /dev/null +++ b/m/Meep/Meep-1.2-ictce-5.3.0.eb @@ -0,0 +1,35 @@ +easyblock = 'ConfigureMake' + +name = 'Meep' +version = '1.2' + +homepage = 'http://ab-initio.mit.edu/wiki/index.php/Meep' +description = """Meep (or MEEP) is a free finite-difference time-domain (FDTD) simulation software package + developed at MIT to model electromagnetic systems.""" + +toolchain = {'name': 'ictce', 'version': '5.3.0'} +toolchainopts = {'usempi': True, 'opt': True, 'optarch': True, 'unroll': True, 'pic': True} + +source_urls = [ + 'http://ab-initio.mit.edu/meep/', + 'http://ab-initio.mit.edu/meep/old/', +] +sources = [SOURCELOWER_TAR_GZ] + +patches = ['Meep-%(version)s_version-string-without-spaces.patch'] + +dependencies = [ + ('Harminv', '1.3.1'), + ('HDF5', '1.8.7'), + ('libctl', '3.2.1'), + ('GSL', '1.15'), + ('FFTW', '3.3.1') +] + +configopts = "--with-pic --with-mpi --with-blas=mkl_em64t --with-lapack=mkl_em64t --without-gcc-arch " +configopts += "--with-libctl=$EBROOTLIBCTL/share/libctl --enable-shared " + +# fix for guile-config being broken because shebang line contains full path to bin/guile +configopts += 'GUILE_CONFIG="$EBROOTGUILE/bin/guile -e main -s $EBROOTGUILE/bin/guile-config"' + +moduleclass = 'phys' diff --git a/m/Meep/Meep-1.3-intel-2015a.eb b/m/Meep/Meep-1.3-intel-2015a.eb new file mode 100644 index 00000000..baee3155 --- /dev/null +++ b/m/Meep/Meep-1.3-intel-2015a.eb @@ -0,0 +1,35 @@ +easyblock = 'ConfigureMake' + +name = 'Meep' +version = '1.3' + +homepage = 'http://ab-initio.mit.edu/wiki/index.php/Meep' +description = """Meep (or MEEP) is a free finite-difference time-domain (FDTD) simulation software package + developed at MIT to model electromagnetic systems.""" + +toolchain = {'name': 'intel', 'version': '2015a'} +toolchainopts = {'usempi': True, 'opt': True, 'optarch': True, 'unroll': True, 'pic': True} + +source_urls = [ + 'http://ab-initio.mit.edu/meep/', + 'http://ab-initio.mit.edu/meep/old/', +] +sources = [SOURCELOWER_TAR_GZ] + +patches = ['Meep-%(version)s_version-string-without-spaces.patch'] + +dependencies = [ + ('Harminv', '1.4'), + ('HDF5', '1.8.14'), + ('libctl', '3.2.2'), + ('GSL', '1.16'), + ('FFTW', '3.3.4') +] + +configopts = "--with-pic --with-mpi --with-blas=mkl_em64t --with-lapack=mkl_em64t --without-gcc-arch " +configopts += "--with-libctl=$EBROOTLIBCTL/share/libctl --enable-shared " + +# fix for guile-config being broken because shebang line contains full path to bin/guile +configopts += 'GUILE_CONFIG="$EBROOTGUILE/bin/guile -e main -s $EBROOTGUILE/bin/guile-config"' + +moduleclass = 'phys' diff --git a/m/Meep/Meep-1.3-intel-2015b.eb b/m/Meep/Meep-1.3-intel-2015b.eb new file mode 100644 index 00000000..6cc03437 --- /dev/null +++ b/m/Meep/Meep-1.3-intel-2015b.eb @@ -0,0 +1,35 @@ +easyblock = 'ConfigureMake' + +name = 'Meep' +version = '1.3' + +homepage = 'http://ab-initio.mit.edu/wiki/index.php/Meep' +description = """Meep (or MEEP) is a free finite-difference time-domain (FDTD) simulation software package + developed at MIT to model electromagnetic systems.""" + +toolchain = {'name': 'intel', 'version': '2015b'} +toolchainopts = {'usempi': True, 'opt': True, 'optarch': True, 'unroll': True, 'pic': True} + +source_urls = [ + 'http://ab-initio.mit.edu/meep/', + 'http://ab-initio.mit.edu/meep/old/', +] +sources = [SOURCELOWER_TAR_GZ] + +patches = ['Meep-%(version)s_version-string-without-spaces.patch'] + +dependencies = [ + ('Harminv', '1.4'), + ('HDF5', '1.8.13'), + ('libctl', '3.2.2'), + ('GSL', '1.16'), + ('FFTW', '3.3.4') +] + +configopts = "--with-pic --with-mpi --with-blas=mkl_em64t --with-lapack=mkl_em64t --without-gcc-arch " +configopts += "--with-libctl=$EBROOTLIBCTL/share/libctl --enable-shared " + +# fix for guile-config being broken because shebang line contains full path to bin/guile +configopts += 'GUILE_CONFIG="$EBROOTGUILE/bin/guile -e main -s $EBROOTGUILE/bin/guile-config"' + +moduleclass = 'phys' diff --git a/m/Mercurial/Mercurial-2.3.2-goolf-1.4.10-Python-2.7.3.eb b/m/Mercurial/Mercurial-2.3.2-goolf-1.4.10-Python-2.7.3.eb new file mode 100644 index 00000000..8175c4c1 --- /dev/null +++ b/m/Mercurial/Mercurial-2.3.2-goolf-1.4.10-Python-2.7.3.eb @@ -0,0 +1,28 @@ +easyblock = "PythonPackage" + +name = 'Mercurial' +version = '2.3.2' + +homepage = 'http://mercurial.selenic.com/' +description = """Mercurial is a free, distributed source control management tool. It efficiently handles projects +of any size and offers an easy and intuitive interface. +""" +toolchain = {'name': 'goolf', 'version': '1.4.10'} + +sources = [SOURCELOWER_TAR_GZ] +source_urls = ['http://mercurial.selenic.com/release/'] + +python = "Python" +pythonversion = '2.7.3' +pythonshortversion = ".".join(pythonversion.split(".")[:-1]) + +versionsuffix = "-%s-%s" % (python, pythonversion) + +dependencies = [(python, pythonversion)] + +sanity_check_paths = { + 'files': ['bin/hg'], + 'dirs': ['lib/python%s/site-packages/mercurial' % pythonshortversion], +} + +moduleclass = 'tools' diff --git a/m/Mercurial/Mercurial-2.3.2-ictce-5.3.0-Python-2.7.3.eb b/m/Mercurial/Mercurial-2.3.2-ictce-5.3.0-Python-2.7.3.eb new file mode 100644 index 00000000..f2baa1d1 --- /dev/null +++ b/m/Mercurial/Mercurial-2.3.2-ictce-5.3.0-Python-2.7.3.eb @@ -0,0 +1,29 @@ +easyblock = "PythonPackage" + +name = 'Mercurial' +version = '2.3.2' + +homepage = 'http://mercurial.selenic.com/' +description = """Mercurial is a free, distributed source control management tool. It efficiently handles projects + of any size and offers an easy and intuitive interface.""" + + +toolchain = {'name': 'ictce', 'version': '5.3.0'} + +source_urls = ['http://mercurial.selenic.com/release/'] +sources = [SOURCELOWER_TAR_GZ] + +python = "Python" +pythonversion = '2.7.3' +pythonshortversion = ".".join(pythonversion.split(".")[:-1]) + +versionsuffix = "-%s-%s" % (python, pythonversion) + +dependencies = [(python, pythonversion)] + +sanity_check_paths = { + 'files': ['bin/hg'], + 'dirs': ['lib/python%s/site-packages/mercurial' % pythonshortversion] +} + +moduleclass = 'tools' diff --git a/m/Mercurial/Mercurial-2.5.2-goolf-1.4.10-Python-2.7.3.eb b/m/Mercurial/Mercurial-2.5.2-goolf-1.4.10-Python-2.7.3.eb new file mode 100644 index 00000000..43c0bcea --- /dev/null +++ b/m/Mercurial/Mercurial-2.5.2-goolf-1.4.10-Python-2.7.3.eb @@ -0,0 +1,28 @@ +easyblock = "PythonPackage" + +name = 'Mercurial' +version = '2.5.2' + +homepage = 'http://mercurial.selenic.com/' +description = """Mercurial is a free, distributed source control management tool. It efficiently handles projects +of any size and offers an easy and intuitive interface. +""" +toolchain = {'name': 'goolf', 'version': '1.4.10'} + +source_urls = ['http://mercurial.selenic.com/release/'] +sources = [SOURCELOWER_TAR_GZ] + +python = "Python" +pythonversion = '2.7.3' +pythonshortversion = ".".join(pythonversion.split(".")[:-1]) + +versionsuffix = "-%s-%s" % (python, pythonversion) + +dependencies = [(python, pythonversion)] + +sanity_check_paths = { + 'files': ['bin/hg'], + 'dirs': ['lib/python%s/site-packages/mercurial' % pythonshortversion], +} + +moduleclass = 'tools' diff --git a/m/Mercurial/Mercurial-2.5.2-ictce-5.3.0-Python-2.7.3.eb b/m/Mercurial/Mercurial-2.5.2-ictce-5.3.0-Python-2.7.3.eb new file mode 100644 index 00000000..47ecebdf --- /dev/null +++ b/m/Mercurial/Mercurial-2.5.2-ictce-5.3.0-Python-2.7.3.eb @@ -0,0 +1,28 @@ +easyblock = "PythonPackage" + +name = 'Mercurial' +version = '2.5.2' + +homepage = 'http://mercurial.selenic.com/' +description = """Mercurial is a free, distributed source control management tool. + It efficiently handles projects of any size and offers an easy and intuitive interface.""" + +toolchain = {'name': 'ictce', 'version': '5.3.0'} + +source_urls = ['http://mercurial.selenic.com/release/'] +sources = [SOURCELOWER_TAR_GZ] + +python = "Python" +pythonversion = '2.7.3' +pythonshortversion = ".".join(pythonversion.split(".")[:-1]) + +versionsuffix = "-%s-%s" % (python, pythonversion) + +dependencies = [(python, pythonversion)] + +sanity_check_paths = { + 'files': ['bin/hg'], + 'dirs': ['lib/python%s/site-packages/mercurial' % pythonshortversion], +} + +moduleclass = 'tools' diff --git a/m/Mercurial/Mercurial-3.2.4-foss-2015a-Python-2.7.9.eb b/m/Mercurial/Mercurial-3.2.4-foss-2015a-Python-2.7.9.eb new file mode 100644 index 00000000..047324c7 --- /dev/null +++ b/m/Mercurial/Mercurial-3.2.4-foss-2015a-Python-2.7.9.eb @@ -0,0 +1,29 @@ +easyblock = "PythonPackage" + +name = 'Mercurial' +version = '3.2.4' + +homepage = 'http://mercurial.selenic.com/' +description = """Mercurial is a free, distributed source control management tool. It efficiently handles projects +of any size and offers an easy and intuitive interface. +""" + +toolchain = {'name': 'foss', 'version': '2015a'} + +source_urls = ['http://mercurial.selenic.com/release/'] +sources = [SOURCELOWER_TAR_GZ] + +python = "Python" +pythonversion = '2.7.9' +pythonshortversion = ".".join(pythonversion.split(".")[:-1]) + +versionsuffix = "-%s-%s" % (python, pythonversion) + +dependencies = [(python, pythonversion)] + +sanity_check_paths = { + 'files': ['bin/hg'], + 'dirs': ['lib/python%s/site-packages/mercurial' % pythonshortversion], +} + +moduleclass = 'tools' diff --git a/m/Mercurial/Mercurial-3.5-intel-2015b-Python-2.7.9.eb b/m/Mercurial/Mercurial-3.5-intel-2015b-Python-2.7.9.eb new file mode 100644 index 00000000..4e2aac77 --- /dev/null +++ b/m/Mercurial/Mercurial-3.5-intel-2015b-Python-2.7.9.eb @@ -0,0 +1,29 @@ +easyblock = "PythonPackage" + +name = 'Mercurial' +version = '3.5' + +homepage = 'http://mercurial.selenic.com/' +description = """Mercurial is a free, distributed source control management tool. It efficiently handles projects +of any size and offers an easy and intuitive interface. +""" + +toolchain = {'name': 'intel', 'version': '2015b'} + +source_urls = ['http://mercurial.selenic.com/release/'] +sources = [SOURCELOWER_TAR_GZ] + +python = "Python" +pythonversion = '2.7.9' +pythonshortversion = ".".join(pythonversion.split(".")[:-1]) + +versionsuffix = "-%s-%s" % (python, pythonversion) + +dependencies = [(python, pythonversion)] + +sanity_check_paths = { + 'files': ['bin/hg'], + 'dirs': ['lib/python%s/site-packages/mercurial' % pythonshortversion], +} + +moduleclass = 'tools' diff --git a/m/Mercurial/Mercurial-3.7.3-foss-2015g-Python-2.7.9.eb b/m/Mercurial/Mercurial-3.7.3-foss-2015g-Python-2.7.9.eb new file mode 100644 index 00000000..691cf837 --- /dev/null +++ b/m/Mercurial/Mercurial-3.7.3-foss-2015g-Python-2.7.9.eb @@ -0,0 +1,29 @@ +easyblock = "PythonPackage" + +name = 'Mercurial' +version = '3.7.3' + +homepage = 'http://mercurial.selenic.com/' +description = """Mercurial is a free, distributed source control management tool. It efficiently handles projects +of any size and offers an easy and intuitive interface. +""" + +toolchain = {'name': 'foss', 'version': '2015g'} + +source_urls = ['http://mercurial.selenic.com/release/'] +sources = [SOURCELOWER_TAR_GZ] + +python = "Python" +pythonversion = '2.7.9' +pythonshortversion = ".".join(pythonversion.split(".")[:-1]) + +versionsuffix = "-%s-%s" % (python, pythonversion) + +dependencies = [(python, pythonversion)] + +sanity_check_paths = { + 'files': ['bin/hg'], + 'dirs': ['lib/python%s/site-packages/mercurial' % pythonshortversion], +} + +moduleclass = 'tools' diff --git a/m/Mesa/Mesa-10.4.5-intel-2015a-Python-2.7.9.eb b/m/Mesa/Mesa-10.4.5-intel-2015a-Python-2.7.9.eb new file mode 100644 index 00000000..3f895315 --- /dev/null +++ b/m/Mesa/Mesa-10.4.5-intel-2015a-Python-2.7.9.eb @@ -0,0 +1,75 @@ +easyblock = 'ConfigureMake' + +name = 'Mesa' +version = '10.4.5' + +homepage = 'http://www.mesa3d.org/' +description = """Mesa is an open-source implementation of the OpenGL specification - + a system for rendering interactive 3D graphics.""" + +toolchain = {'name': 'intel', 'version': '2015a'} +toolchainopts = {'optarch': True} + +sources = ['%(name)sLib-%(version)s.tar.gz'] +source_urls = [ + 'ftp://ftp.freedesktop.org/pub/mesa/%(version)s', + 'ftp://ftp.freedesktop.org/pub/mesa/older-versions/%(version_major)s.x/%(version)s', +] + +patches = ['Mesa-%(version)s_sse4_1.patch'] + +pythonver = '2.7.9' +pythonshortver = '.'.join(pythonver.split('.')[0:2]) +versionsuffix = '-%s-%s' % ('Python', pythonver) + +builddependencies = [ + ('flex', '2.5.39'), + ('Bison', '3.0.2'), + ('Automake', '1.15'), + ('makedepend', '1.0.5'), + ('kbproto', '1.0.6'), + ('xextproto', '7.3.0'), + ('xproto', '7.0.27'), + ('libtool', '2.4.5'), + ('pkg-config', '0.28'), + ('glproto', '1.4.17'), + ('M4', '1.4.17') +] + +dependencies = [ + ('Python', pythonver), + ('libxml2', '2.9.2', versionsuffix), + ('libdrm', '2.4.59'), + ('libX11', '1.6.3', versionsuffix), + ('libXext', '1.3.3'), + ('libXfixes', '5.0.1'), + ('libXdamage', '1.1.4'), + ('libXfont', '1.5.1'), + ('LLVM', '3.6.2', versionsuffix), + ('eudev', '3.0'), +] + +# Use the os provided libudev or the EB provided eudev +#osdependencies = ['libudev'] + +# GLU is not part anymore of Mesa package! +configopts = " --disable-osmesa --disable-gallium-llvm --enable-glx --disable-dri --enable-xlib-glx" +configopts += " --disable-driglx-direct --with-gallium-drivers='' --disable-egl""" + +# package-config files for os dependencies are in an os specific place +#preconfigopts = ' PKG_CONFIG_PATH="$PKG_CONFIG_PATH:/usr/lib64/pkgconfig/:/usr/share/pkgconfig" ' + +prebuildopts = 'env CPATH="$EBROOTLIBDRM/include/libdrm:$CPATH" ' + +sanity_check_paths = { + 'files': ['lib/libGL.%s' % SHLIB_EXT, 'include/GL/glext.h', 'include/GL/gl_mangle.h', + 'include/GL/glx.h', 'include/GL/osmesa.h', + 'include/GL/wglext.h', 'include/GL/gl.h', + 'include/GL/glxext.h', 'include/GL/glx_mangle.h', + 'include/GL/wmesa.h'], + 'dirs': [] +} + +maxparallel = 1 + +moduleclass = 'vis' diff --git a/m/Mesa/Mesa-10.5.5-intel-2015a-Python-2.7.10.eb b/m/Mesa/Mesa-10.5.5-intel-2015a-Python-2.7.10.eb new file mode 100644 index 00000000..592c4a11 --- /dev/null +++ b/m/Mesa/Mesa-10.5.5-intel-2015a-Python-2.7.10.eb @@ -0,0 +1,74 @@ +easyblock = 'ConfigureMake' + +name = 'Mesa' +version = '10.5.5' + +homepage = 'http://www.mesa3d.org/' +description = """Mesa is an open-source implementation of the OpenGL specification - + a system for rendering interactive 3D graphics.""" + +toolchain = {'name': 'intel', 'version': '2015a'} +toolchainopts = {'optarch': True} + +sources = [SOURCELOWER_TAR_GZ] +source_urls = [ + 'ftp://ftp.freedesktop.org/pub/mesa/%(version)s', + 'ftp://ftp.freedesktop.org/pub/mesa/older-versions/%(version_major)s.x/%(version)s', +] + +pythonver = '2.7.10' +pythonshortver = '.'.join(pythonver.split('.')[0:2]) +versionsuffix = '-%s-%s' % ('Python', pythonver) + +builddependencies = [ + ('flex', '2.5.39', '', ('GCC', '4.9.2')), + ('Bison', '3.0.4', '', ('GCC', '4.9.2')), + ('Autotools', '20150119', '', ('GCC', '4.9.2')), + ('pkg-config', '0.28', '', ('GCC', '4.9.2')), + ('glproto', '1.4.17'), + ('kbproto', '1.0.6'), + ('xextproto', '7.3.0'), + ('xproto', '7.0.27'), + ('makedepend', '1.0.5'), + ('M4', '1.4.17', '', ('GCC', '4.9.2')), +] + +dependencies = [ + ('Python', pythonver), + ('libxml2', '2.9.2'), + ('libdrm', '2.4.59'), + ('libX11', '1.6.3', versionsuffix), + ('libXext', '1.3.3', versionsuffix), + ('libXfixes', '5.0.1'), + ('libXdamage', '1.1.4', versionsuffix), + ('libXfont', '1.5.1', versionsuffix), + ('LLVM', '3.6.2'), + ('eudev', '3.0'), +] + +# Use the os provided libudev or the EB provided eudev +#osdependencies = ['libudev'] + +# GLU is not part anymore of Mesa package! +configopts = " --disable-osmesa --enable-gallium-osmesa --enable-gallium-llvm --enable-glx --disable-dri --enable-xlib-glx" +configopts += " --disable-driglx-direct --with-gallium-drivers='swrast' --disable-egl --with-osmesa-bits=32 --enable-texture-float " + +# package-config files for os dependencies are in an os specific place +#preconfigopts = 'libtoolize && PKG_CONFIG_PATH="$PKG_CONFIG_PATH:/usr/lib64/pkgconfig/:/usr/share/pkgconfig" ' +preconfigopts = ' libtoolize && ' + +prebuildopts = 'env CPATH="$EBROOTLIBDRM/include/libdrm:$CPATH" ' + +sanity_check_paths = { + 'files': ['lib/libGL.%s' % SHLIB_EXT, 'lib/libOSMesa.%s' % SHLIB_EXT, + 'include/GL/glext.h', 'include/GL/gl_mangle.h', + 'include/GL/glx.h', 'include/GL/osmesa.h', + 'include/GL/wglext.h', 'include/GL/gl.h', + 'include/GL/glxext.h', 'include/GL/glx_mangle.h', + 'include/GL/wmesa.h'], + 'dirs': [] +} + +maxparallel = 1 + +moduleclass = 'vis' diff --git a/m/Mesa/Mesa-11.0.2-intel-2015b-Python-2.7.10.eb b/m/Mesa/Mesa-11.0.2-intel-2015b-Python-2.7.10.eb new file mode 100644 index 00000000..2bd0ff0f --- /dev/null +++ b/m/Mesa/Mesa-11.0.2-intel-2015b-Python-2.7.10.eb @@ -0,0 +1,75 @@ +easyblock = 'ConfigureMake' + +name = 'Mesa' +version = '11.0.2' + +homepage = 'http://www.mesa3d.org/' +description = """Mesa is an open-source implementation of the OpenGL specification - + a system for rendering interactive 3D graphics.""" + +toolchain = {'name': 'intel', 'version': '2015b'} +toolchainopts = {'optarch': True} + +sources = [SOURCELOWER_TAR_GZ] +source_urls = [ + 'ftp://ftp.freedesktop.org/pub/mesa/%(version)s', + 'ftp://ftp.freedesktop.org/pub/mesa/older-versions/%(version_major)s.x/%(version)s', +] + +pythonver = '2.7.10' +pythonshortver = '.'.join(pythonver.split('.')[0:2]) +versionsuffix = '-%s-%s' % ('Python', pythonver) + +builddependencies = [ + ('flex', '2.5.39'), + ('Bison', '3.0.4'), + ('Autotools', '20150215', '', ('GNU', '4.9.3-2.25')), + ('pkg-config', '0.29'), + ('glproto', '1.4.17'), + ('kbproto', '1.0.7'), + ('xextproto', '7.3.0'), + ('xproto', '7.0.28'), + ('makedepend', '1.0.5'), +] + +dependencies = [ + ('Python', pythonver), + ('libxml2', '2.9.2'), + ('libdrm', '2.4.64'), + ('libX11', '1.6.3', versionsuffix), + ('libXext', '1.3.3'), + ('libXfixes', '5.0.1'), + ('libXdamage', '1.1.4'), + ('libXfont', '1.5.1'), + ('LLVM', '3.7.0'), + ('eudev', '3.1.2'), +] + +# Use the os provided libudev or the EB provided eudev +#osdependencies = ['libudev'] + +# GLU is not part anymore of Mesa package! +configopts = " --disable-osmesa --enable-gallium-osmesa --enable-gallium-llvm --enable-glx --disable-dri --enable-xlib-glx" +configopts += " --disable-driglx-direct --with-gallium-drivers='swrast' --disable-egl --with-osmesa-bits=32 --enable-texture-float " + +# package-config files for os dependencies are in an os specific place +#preconfigopts = 'libtoolize && PKG_CONFIG_PATH="$PKG_CONFIG_PATH:/usr/lib64/pkgconfig/:/usr/share/pkgconfig" ' +preconfigopts = ' libtoolize && ' + +prebuildopts = 'env CPATH="$EBROOTLIBDRM/include/libdrm:$CPATH" ' + +sanity_check_paths = { + 'files': ['lib/libGL.%s' % SHLIB_EXT, 'lib/libOSMesa.%s' % SHLIB_EXT, + 'lib/libGLESv1_CM.%s' % SHLIB_EXT, 'lib/libGLESv2.%s' % SHLIB_EXT, + 'include/GL/glext.h', 'include/GL/gl_mangle.h', + 'include/GL/glx.h', 'include/GL/osmesa.h', + 'include/GL/wglext.h', 'include/GL/gl.h', + 'include/GL/glxext.h', 'include/GL/glx_mangle.h', + 'include/GLES/gl.h', 'include/GLES2/gl2.h', + 'include/GLES3/gl3.h'], + 'dirs': [] +} + +maxparallel = 1 + +moduleclass = 'vis' diff --git a/m/Mesa/Mesa-11.0.8-foss-2015g-Python-2.7.9.eb b/m/Mesa/Mesa-11.0.8-foss-2015g-Python-2.7.9.eb new file mode 100644 index 00000000..0c767001 --- /dev/null +++ b/m/Mesa/Mesa-11.0.8-foss-2015g-Python-2.7.9.eb @@ -0,0 +1,80 @@ +easyblock = 'ConfigureMake' + +name = 'Mesa' +version = '11.0.8' + +homepage = 'http://www.mesa3d.org/' +description = """Mesa is an open-source implementation of the OpenGL specification - + a system for rendering interactive 3D graphics.""" + +toolchain = {'name': 'foss', 'version': '2015g'} +toolchainopts = {'optarch': True} + +sources = [SOURCELOWER_TAR_GZ] +source_urls = [ + 'ftp://ftp.freedesktop.org/pub/mesa/%(version)s', + 'ftp://ftp.freedesktop.org/pub/mesa/older-versions/%(version_major)s.x/%(version)s', +] + +pythonver = '2.7.9' +pythonshortver = '.'.join(pythonver.split('.')[0:2]) +versionsuffix = '-%s-%s' % ('Python', pythonver) + +builddependencies = [ + ('flex', '2.5.39'), + ('Bison', '3.0.2'), + ('Autotools', '20150215', '', ('GNU', '4.9.3-2.25')), + ('pkg-config', '0.27.1'), + ('glproto', '1.4.16'), + ('kbproto', '1.0.6'), + ('xextproto', '7.3.0'), + ('xproto', '7.0.26'), + ('makedepend', '1.0.4'), +] + +dependencies = [ + ('Python', pythonver), + ('libxml2', '2.9.2', versionsuffix), + ('libdrm', '2.4.27'), + ('libX11', '1.6.2', versionsuffix), + ('libXext', '1.3.3', versionsuffix), + ('libXfixes', '5.0.1'), + ('libXdamage', '1.1.4', versionsuffix), + ('libXfont', '1.5.1', versionsuffix), + ('LLVM', '3.7.1'), + #('eudev', '3.1.5'), +] + +#Use the os provided libudev or the EB provided eudev +#osdependencies = ['libudev'] + +# GLU is not part anymore of Mesa package! +#configopts = " --disable-osmesa --enable-gallium-osmesa --enable-gallium-llvm --enable-glx --disable-dri --enable-xlib-glx" +#configopts += " --disable-driglx-direct --with-gallium-drivers='swrast' --disable-egl --with-osmesa-bits=32 --enable-texture-float " + +#configopts = "--disable-xvmc --disable-glx --disable-dri --with-dri-drivers= --with-gallium-drivers=swrast --enable-texture-float --disable-shared-glapi --disable-egl" +#configopts += " --with-egl-platforms= --enable-gallium-osmesa --enable-gallium-llvm=yes --with-llvm-shared-libs" + +configopts = "--enable-osmesa --disable-driglx-direct --disable-dri --with-gallium-drivers=swrast --enable-gallium-llvm --disable-egl --enable-glx-tls" + +# package-config files for os dependencies are in an os specific place +#preconfigopts = 'libtoolize && PKG_CONFIG_PATH="$PKG_CONFIG_PATH:/usr/lib64/pkgconfig/:/usr/share/pkgconfig" ' +preconfigopts = ' libtoolize && ' + +prebuildopts = 'CPATH="$EBROOTLIBDRM/include/libdrm" ' + +sanity_check_paths = { + 'files': ['lib/libOSMesa.so', + 'lib/libGLESv1_CM.so', 'lib/libGLESv2.so', + 'include/GL/glext.h', 'include/GL/gl_mangle.h', + 'include/GL/glx.h', 'include/GL/osmesa.h', + 'include/GL/wglext.h', 'include/GL/gl.h', + 'include/GL/glxext.h', 'include/GL/glx_mangle.h', + 'include/GLES/gl.h', 'include/GLES2/gl2.h', + 'include/GLES3/gl3.h'], + 'dirs': [] +} + +maxparallel = 1 + +moduleclass = 'vis' diff --git a/m/Mesa/Mesa-11.0.8-intel-2015b-Python-2.7.11.eb b/m/Mesa/Mesa-11.0.8-intel-2015b-Python-2.7.11.eb new file mode 100644 index 00000000..a22cf02d --- /dev/null +++ b/m/Mesa/Mesa-11.0.8-intel-2015b-Python-2.7.11.eb @@ -0,0 +1,75 @@ +easyblock = 'ConfigureMake' + +name = 'Mesa' +version = '11.0.8' + +homepage = 'http://www.mesa3d.org/' +description = """Mesa is an open-source implementation of the OpenGL specification - + a system for rendering interactive 3D graphics.""" + +toolchain = {'name': 'intel', 'version': '2015b'} +toolchainopts = {'optarch': True} + +sources = [SOURCELOWER_TAR_GZ] +source_urls = [ + 'ftp://ftp.freedesktop.org/pub/mesa/%(version)s', + 'ftp://ftp.freedesktop.org/pub/mesa/older-versions/%(version_major)s.x/%(version)s', +] + +pythonver = '2.7.11' +pythonshortver = '.'.join(pythonver.split('.')[0:2]) +versionsuffix = '-%s-%s' % ('Python', pythonver) + +builddependencies = [ + ('flex', '2.5.39'), + ('Bison', '3.0.4'), + ('Autotools', '20150215', '', ('GNU', '4.9.3-2.25')), + ('pkg-config', '0.29'), + ('glproto', '1.4.17'), + ('kbproto', '1.0.7'), + ('xextproto', '7.3.0'), + ('xproto', '7.0.28'), + ('makedepend', '1.0.5'), +] + +dependencies = [ + ('Python', pythonver), + ('libxml2', '2.9.3', versionsuffix), + ('libdrm', '2.4.66'), + ('libX11', '1.6.3', versionsuffix), + ('libXext', '1.3.3', versionsuffix), + ('libXfixes', '5.0.1'), + ('libXdamage', '1.1.4', versionsuffix), + ('libXfont', '1.5.1', versionsuffix), + ('LLVM', '3.7.1'), + ('eudev', '3.1.5'), +] + +# Use the os provided libudev or the EB provided eudev +#osdependencies = ['libudev'] + +# GLU is not part anymore of Mesa package! +configopts = " --disable-osmesa --enable-gallium-osmesa --enable-gallium-llvm --enable-glx --disable-dri --enable-xlib-glx" +configopts += " --disable-driglx-direct --with-gallium-drivers='swrast' --disable-egl --with-osmesa-bits=32 --enable-texture-float " + +# package-config files for os dependencies are in an os specific place +#preconfigopts = 'libtoolize && PKG_CONFIG_PATH="$PKG_CONFIG_PATH:/usr/lib64/pkgconfig/:/usr/share/pkgconfig" ' +preconfigopts = ' libtoolize && ' + +prebuildopts = 'env CPATH="$EBROOTLIBDRM/include/libdrm:$CPATH" ' + +sanity_check_paths = { + 'files': ['lib/libGL.so', 'lib/libOSMesa.so', + 'lib/libGLESv1_CM.so', 'lib/libGLESv2.so', + 'include/GL/glext.h', 'include/GL/gl_mangle.h', + 'include/GL/glx.h', 'include/GL/osmesa.h', + 'include/GL/wglext.h', 'include/GL/gl.h', + 'include/GL/glxext.h', 'include/GL/glx_mangle.h', + 'include/GLES/gl.h', 'include/GLES2/gl2.h', + 'include/GLES3/gl3.h'], + 'dirs': [] +} + +maxparallel = 1 + +moduleclass = 'vis' diff --git a/m/Mesa/Mesa-11.1.2-foss-2016a.eb b/m/Mesa/Mesa-11.1.2-foss-2016a.eb new file mode 100644 index 00000000..fb2151e5 --- /dev/null +++ b/m/Mesa/Mesa-11.1.2-foss-2016a.eb @@ -0,0 +1,68 @@ +easyblock = 'ConfigureMake' + +name = 'Mesa' +version = '11.1.2' + +homepage = 'http://www.mesa3d.org/' +description = """Mesa is an open-source implementation of the OpenGL specification - + a system for rendering interactive 3D graphics.""" + +toolchain = {'name': 'foss', 'version': '2016a'} +toolchainopts = {'optarch': True} + +sources = [SOURCELOWER_TAR_GZ] +source_urls = [ + 'ftp://ftp.freedesktop.org/pub/mesa/%(version)s', + 'ftp://ftp.freedesktop.org/pub/mesa/older-versions/%(version_major)s.x/%(version)s', +] + +builddependencies = [ + ('flex', '2.6.0'), + ('Bison', '3.0.4'), + ('Autotools', '20150215'), + ('pkg-config', '0.29'), + ('glproto', '1.4.17'), + ('kbproto', '1.0.7'), + ('libpthread-stubs', '0.3'), + ('xextproto', '7.3.0'), + ('xproto', '7.0.28'), + ('makedepend', '1.0.5'), +] + +dependencies = [ + ('libxml2', '2.9.3'), + ('libdrm', '2.4.67'), + ('libX11', '1.6.3',), + ('libXext', '1.3.3'), + ('libXfixes', '5.0.1'), + ('libXdamage', '1.1.4'), + ('libXfont', '1.5.1'), + ('LLVM', '3.7.1'), + ('eudev', '3.1.5'), +] + +# Use the os provided libudev or the EB provided eudev +#osdependencies = ['libudev'] + +# GLU is not part anymore of Mesa package! +configopts = " --disable-osmesa --enable-gallium-osmesa --enable-gallium-llvm --enable-glx --disable-dri" +configopts += " --enable-xlib-glx --disable-driglx-direct --with-gallium-drivers='swrast' --disable-egl" +configopts += " --with-osmesa-bits=32 --enable-texture-float " + +# package-config files for os dependencies are in an os specific place +#preconfigopts = 'libtoolize && PKG_CONFIG_PATH="$PKG_CONFIG_PATH:/usr/lib64/pkgconfig/:/usr/share/pkgconfig" ' +preconfigopts = ' libtoolize && ' + +prebuildopts = 'env CPATH="$EBROOTLIBDRM/include/libdrm:$CPATH" ' + +sanity_check_paths = { + 'files': ['lib/libGL.%s' % SHLIB_EXT, 'lib/libOSMesa.%s' % SHLIB_EXT, 'lib/libGLESv1_CM.%s' % SHLIB_EXT, + 'lib/libGLESv2.%s' %SHLIB_EXT, 'include/GL/glext.h', 'include/GL/gl_mangle.h', 'include/GL/glx.h', + 'include/GL/osmesa.h', 'include/GL/wglext.h', 'include/GL/gl.h', 'include/GL/glxext.h', + 'include/GL/glx_mangle.h', 'include/GLES/gl.h', 'include/GLES2/gl2.h', 'include/GLES3/gl3.h'], + 'dirs': [] +} + +maxparallel = 1 + +moduleclass = 'vis' diff --git a/m/Mesa/Mesa-11.1.2-gimkl-2.11.5.eb b/m/Mesa/Mesa-11.1.2-gimkl-2.11.5.eb new file mode 100644 index 00000000..171b4771 --- /dev/null +++ b/m/Mesa/Mesa-11.1.2-gimkl-2.11.5.eb @@ -0,0 +1,68 @@ +easyblock = 'ConfigureMake' + +name = 'Mesa' +version = '11.1.2' + +homepage = 'http://www.mesa3d.org/' +description = """Mesa is an open-source implementation of the OpenGL specification - + a system for rendering interactive 3D graphics.""" + +toolchain = {'name': 'gimkl', 'version': '2.11.5'} +toolchainopts = {'optarch': True} + +sources = [SOURCELOWER_TAR_GZ] +source_urls = [ + 'ftp://ftp.freedesktop.org/pub/mesa/%(version)s', + 'ftp://ftp.freedesktop.org/pub/mesa/older-versions/%(version_major)s.x/%(version)s', +] + +builddependencies = [ + ('flex', '2.6.0'), + ('Bison', '3.0.4'), + ('Autotools', '20150215'), + ('pkg-config', '0.29'), + ('glproto', '1.4.17'), + ('kbproto', '1.0.7'), + ('libpthread-stubs', '0.3'), + ('xextproto', '7.3.0'), + ('xproto', '7.0.28'), + ('makedepend', '1.0.5'), +] + +dependencies = [ + ('libxml2', '2.9.3'), + ('libdrm', '2.4.67'), + ('libX11', '1.6.3',), + ('libXext', '1.3.3'), + ('libXfixes', '5.0.1'), + ('libXdamage', '1.1.4'), + ('libXfont', '1.5.1'), + ('LLVM', '3.7.1'), + ('eudev', '3.1.5'), +] + +# Use the os provided libudev or the EB provided eudev +#osdependencies = ['libudev'] + +# GLU is not part anymore of Mesa package! +configopts = " --disable-osmesa --enable-gallium-osmesa --enable-gallium-llvm --enable-glx --disable-dri" +configopts += " --enable-xlib-glx --disable-driglx-direct --with-gallium-drivers='swrast' --disable-egl" +configopts += " --with-osmesa-bits=32 --enable-texture-float " + +# package-config files for os dependencies are in an os specific place +#preconfigopts = 'libtoolize && PKG_CONFIG_PATH="$PKG_CONFIG_PATH:/usr/lib64/pkgconfig/:/usr/share/pkgconfig" ' +preconfigopts = ' libtoolize && ' + +prebuildopts = 'env CPATH="$EBROOTLIBDRM/include/libdrm:$CPATH" ' + +sanity_check_paths = { + 'files': ['lib/libGL.%s' % SHLIB_EXT, 'lib/libOSMesa.%s' % SHLIB_EXT, 'lib/libGLESv1_CM.%s' % SHLIB_EXT, + 'lib/libGLESv2.%s' %SHLIB_EXT, 'include/GL/glext.h', 'include/GL/gl_mangle.h', 'include/GL/glx.h', + 'include/GL/osmesa.h', 'include/GL/wglext.h', 'include/GL/gl.h', 'include/GL/glxext.h', + 'include/GL/glx_mangle.h', 'include/GLES/gl.h', 'include/GLES2/gl2.h', 'include/GLES3/gl3.h'], + 'dirs': [] +} + +maxparallel = 1 + +moduleclass = 'vis' diff --git a/m/Mesa/Mesa-11.1.2-intel-2016a.eb b/m/Mesa/Mesa-11.1.2-intel-2016a.eb new file mode 100644 index 00000000..3282ad74 --- /dev/null +++ b/m/Mesa/Mesa-11.1.2-intel-2016a.eb @@ -0,0 +1,68 @@ +easyblock = 'ConfigureMake' + +name = 'Mesa' +version = '11.1.2' + +homepage = 'http://www.mesa3d.org/' +description = """Mesa is an open-source implementation of the OpenGL specification - + a system for rendering interactive 3D graphics.""" + +toolchain = {'name': 'intel', 'version': '2016a'} +toolchainopts = {'optarch': True} + +sources = [SOURCELOWER_TAR_GZ] +source_urls = [ + 'ftp://ftp.freedesktop.org/pub/mesa/%(version)s', + 'ftp://ftp.freedesktop.org/pub/mesa/older-versions/%(version_major)s.x/%(version)s', +] + +builddependencies = [ + ('flex', '2.6.0'), + ('Bison', '3.0.4'), + ('Autotools', '20150215'), + ('pkg-config', '0.29'), + ('glproto', '1.4.17'), + ('kbproto', '1.0.7'), + ('libpthread-stubs', '0.3'), + ('xextproto', '7.3.0'), + ('xproto', '7.0.28'), + ('makedepend', '1.0.5'), +] + +dependencies = [ + ('libxml2', '2.9.3'), + ('libdrm', '2.4.67'), + ('libX11', '1.6.3',), + ('libXext', '1.3.3'), + ('libXfixes', '5.0.1'), + ('libXdamage', '1.1.4'), + ('libXfont', '1.5.1'), + ('LLVM', '3.7.1'), + ('eudev', '3.1.5'), +] + +# Use the os provided libudev or the EB provided eudev +#osdependencies = ['libudev'] + +# GLU is not part anymore of Mesa package! +configopts = " --disable-osmesa --enable-gallium-osmesa --enable-gallium-llvm --enable-glx --disable-dri" +configopts += " --enable-xlib-glx --disable-driglx-direct --with-gallium-drivers='swrast' --disable-egl" +configopts += " --with-osmesa-bits=32 --enable-texture-float " + +# package-config files for os dependencies are in an os specific place +#preconfigopts = 'libtoolize && PKG_CONFIG_PATH="$PKG_CONFIG_PATH:/usr/lib64/pkgconfig/:/usr/share/pkgconfig" ' +preconfigopts = ' libtoolize && ' + +prebuildopts = 'env CPATH="$EBROOTLIBDRM/include/libdrm:$CPATH" ' + +sanity_check_paths = { + 'files': ['lib/libGL.%s' % SHLIB_EXT, 'lib/libOSMesa.%s' % SHLIB_EXT, 'lib/libGLESv1_CM.%s' % SHLIB_EXT, + 'lib/libGLESv2.%s' %SHLIB_EXT, 'include/GL/glext.h', 'include/GL/gl_mangle.h', 'include/GL/glx.h', + 'include/GL/osmesa.h', 'include/GL/wglext.h', 'include/GL/gl.h', 'include/GL/glxext.h', + 'include/GL/glx_mangle.h', 'include/GLES/gl.h', 'include/GLES2/gl2.h', 'include/GLES3/gl3.h'], + 'dirs': [] +} + +maxparallel = 1 + +moduleclass = 'vis' diff --git a/m/Mesa/Mesa-11.2.1-foss-2016a.eb b/m/Mesa/Mesa-11.2.1-foss-2016a.eb new file mode 100644 index 00000000..a919f2ea --- /dev/null +++ b/m/Mesa/Mesa-11.2.1-foss-2016a.eb @@ -0,0 +1,68 @@ +easyblock = 'ConfigureMake' + +name = 'Mesa' +version = '11.2.1' + +homepage = 'http://www.mesa3d.org/' +description = """Mesa is an open-source implementation of the OpenGL specification - + a system for rendering interactive 3D graphics.""" + +toolchain = {'name': 'foss', 'version': '2016a'} + +sources = [SOURCELOWER_TAR_GZ] +source_urls = [ + 'https://mesa.freedesktop.org/archive/%(version)s', + 'ftp://ftp.freedesktop.org/pub/mesa/%(version)s', + 'ftp://ftp.freedesktop.org/pub/mesa/older-versions/%(version_major)s.x/%(version)s', +] + +builddependencies = [ + ('flex', '2.6.0'), + ('Bison', '3.0.4'), + ('Autotools', '20150215'), + ('pkg-config', '0.29.1'), + ('glproto', '1.4.17'), + ('kbproto', '1.0.7'), + ('libpthread-stubs', '0.3'), + ('xextproto', '7.3.0'), + ('xproto', '7.0.28'), + ('makedepend', '1.0.5'), +] + +dependencies = [ + ('libxml2', '2.9.3'), + ('libdrm', '2.4.68'), + ('libX11', '1.6.3',), + ('libXext', '1.3.3'), + ('libXfixes', '5.0.1'), + ('libXdamage', '1.1.4'), + ('libXfont', '1.5.1', '-freetype-2.6.3'), + ('LLVM', '3.8.0'), + ('eudev', '3.1.5'), +] + +# Use the os provided libudev or the EB provided eudev +#osdependencies = ['libudev'] + +# GLU is not part anymore of Mesa package! +configopts = " --disable-osmesa --enable-gallium-osmesa --enable-gallium-llvm --enable-glx --disable-dri" +configopts += " --enable-xlib-glx --disable-driglx-direct --with-gallium-drivers='swrast' --disable-egl" +configopts += " --with-osmesa-bits=32 --enable-texture-float " + +# package-config files for os dependencies are in an os specific place +#preconfigopts = 'libtoolize && PKG_CONFIG_PATH="$PKG_CONFIG_PATH:/usr/lib64/pkgconfig/:/usr/share/pkgconfig" ' +preconfigopts = ' libtoolize && ' + +prebuildopts = 'env CPATH="$EBROOTLIBDRM/include/libdrm:$CPATH" ' + +sanity_check_paths = { + 'files': ['lib/libGL.%s' % SHLIB_EXT, 'lib/libOSMesa.%s' % SHLIB_EXT, 'lib/libGLESv1_CM.%s' % SHLIB_EXT, + 'lib/libGLESv2.%s' %SHLIB_EXT, 'include/GL/glext.h', 'include/GL/gl_mangle.h', 'include/GL/glx.h', + 'include/GL/osmesa.h', 'include/GL/wglext.h', 'include/GL/gl.h', 'include/GL/glxext.h', + 'include/GL/glx_mangle.h', 'include/GLES/gl.h', 'include/GLES2/gl2.h', 'include/GLES3/gl3.h'], + 'dirs': [] +} + +maxparallel = 1 + +moduleclass = 'vis' diff --git a/m/Mesa/Mesa-11.2.1-intel-2016a.eb b/m/Mesa/Mesa-11.2.1-intel-2016a.eb new file mode 100644 index 00000000..54f7d8a5 --- /dev/null +++ b/m/Mesa/Mesa-11.2.1-intel-2016a.eb @@ -0,0 +1,68 @@ +easyblock = 'ConfigureMake' + +name = 'Mesa' +version = '11.2.1' + +homepage = 'http://www.mesa3d.org/' +description = """Mesa is an open-source implementation of the OpenGL specification - + a system for rendering interactive 3D graphics.""" + +toolchain = {'name': 'intel', 'version': '2016a'} + +sources = [SOURCELOWER_TAR_GZ] +source_urls = [ + 'https://mesa.freedesktop.org/archive/%(version)s', + 'ftp://ftp.freedesktop.org/pub/mesa/%(version)s', + 'ftp://ftp.freedesktop.org/pub/mesa/older-versions/%(version_major)s.x/%(version)s', +] + +builddependencies = [ + ('flex', '2.6.0'), + ('Bison', '3.0.4'), + ('Autotools', '20150215'), + ('pkg-config', '0.29.1'), + ('glproto', '1.4.17'), + ('kbproto', '1.0.7'), + ('libpthread-stubs', '0.3'), + ('xextproto', '7.3.0'), + ('xproto', '7.0.28'), + ('makedepend', '1.0.5'), +] + +dependencies = [ + ('libxml2', '2.9.3'), + ('libdrm', '2.4.68'), + ('libX11', '1.6.3',), + ('libXext', '1.3.3'), + ('libXfixes', '5.0.1'), + ('libXdamage', '1.1.4'), + ('libXfont', '1.5.1', '-freetype-2.6.3'), + ('LLVM', '3.8.0'), + ('eudev', '3.1.5'), +] + +# Use the os provided libudev or the EB provided eudev +#osdependencies = ['libudev'] + +# GLU is not part anymore of Mesa package! +configopts = " --disable-osmesa --enable-gallium-osmesa --enable-gallium-llvm --enable-glx --disable-dri" +configopts += " --enable-xlib-glx --disable-driglx-direct --with-gallium-drivers='swrast' --disable-egl" +configopts += " --with-osmesa-bits=32 --enable-texture-float " + +# package-config files for os dependencies are in an os specific place +#preconfigopts = 'libtoolize && PKG_CONFIG_PATH="$PKG_CONFIG_PATH:/usr/lib64/pkgconfig/:/usr/share/pkgconfig" ' +preconfigopts = ' libtoolize && ' + +prebuildopts = 'env CPATH="$EBROOTLIBDRM/include/libdrm:$CPATH" ' + +sanity_check_paths = { + 'files': ['lib/libGL.%s' % SHLIB_EXT, 'lib/libOSMesa.%s' % SHLIB_EXT, 'lib/libGLESv1_CM.%s' % SHLIB_EXT, + 'lib/libGLESv2.%s' %SHLIB_EXT, 'include/GL/glext.h', 'include/GL/gl_mangle.h', 'include/GL/glx.h', + 'include/GL/osmesa.h', 'include/GL/wglext.h', 'include/GL/gl.h', 'include/GL/glxext.h', + 'include/GL/glx_mangle.h', 'include/GLES/gl.h', 'include/GLES2/gl2.h', 'include/GLES3/gl3.h'], + 'dirs': [] +} + +maxparallel = 1 + +moduleclass = 'vis' diff --git a/m/Mesa/Mesa-12.0.2-foss-2016b.eb b/m/Mesa/Mesa-12.0.2-foss-2016b.eb new file mode 100644 index 00000000..8152b5bb --- /dev/null +++ b/m/Mesa/Mesa-12.0.2-foss-2016b.eb @@ -0,0 +1,59 @@ +# the purpose of the easyconfig is to build a Mesa for software rendering, +# not hardware rendering. This means you want at least SSE4.2. We build: +# - llvmpipe: the high-performance Gallium LLVM driver +# - swr: Intel's OpenSWR +# it will try to use the llvmpipe by default. It you want swr, do: +# GALLIUM_DRIVER=swr + +easyblock = 'ConfigureMake' + +name = 'Mesa' +version = '12.0.2' + +homepage = 'http://www.mesa3d.org/' +description = """Mesa is an open-source implementation of the OpenGL specification - + a system for rendering interactive 3D graphics.""" + +toolchain = {'name': 'foss', 'version': '2016b'} +# swr detects and builds parts specific for AVX and AVX2. If we use +# -xHost, this always gets overwritten and will fail. +toolchainopts = {'optarch': False} + +sources = [SOURCELOWER_TAR_XZ] +source_urls = [ + 'https://mesa.freedesktop.org/archive/%(version)s', + 'ftp://ftp.freedesktop.org/pub/mesa/%(version)s', + 'ftp://ftp.freedesktop.org/pub/mesa/older-versions/%(version_major)s.x/%(version)s', +] + +builddependencies = [ + ('flex', '2.6.0'), + ('Bison', '3.0.4'), + ('Autotools', '20150215'), + ('pkg-config', '0.29.1'), + ('Mako', '1.0.4', '-Python-2.7.12'), + ('libxml2', '2.9.4', '-Python-2.7.12'), +] + +dependencies = [ + ('zlib', '1.2.8'), + ('nettle', '3.2'), + ('libdrm', '2.4.70'), + ('LLVM', '3.8.1'), + ('X11', '20160819'), +] + +# GLU is not part anymore of Mesa package! +configopts = " --disable-osmesa --enable-gallium-osmesa --enable-gallium-llvm --enable-glx --disable-dri" +configopts += " --disable-driglx-direct --with-gallium-drivers='swrast,swr' --disable-egl" +configopts += " --with-osmesa-bits=32 --enable-texture-float --enable-llvm-shared-libs " + +sanity_check_paths = { + 'files': ['lib/libGL.%s' % SHLIB_EXT, 'lib/libOSMesa.%s' % SHLIB_EXT, 'lib/libGLESv1_CM.%s' % SHLIB_EXT, + 'lib/libGLESv2.%s' %SHLIB_EXT, 'include/GL/glext.h', 'include/GL/gl_mangle.h', 'include/GL/glx.h', + 'include/GL/osmesa.h', 'include/GL/wglext.h', 'include/GL/gl.h', 'include/GL/glxext.h', + 'include/GL/glx_mangle.h', 'include/GLES/gl.h', 'include/GLES2/gl2.h', 'include/GLES3/gl3.h'], + 'dirs': [] +} + +moduleclass = 'vis' diff --git a/m/Mesa/Mesa-12.0.2-intel-2016b.eb b/m/Mesa/Mesa-12.0.2-intel-2016b.eb new file mode 100644 index 00000000..90fd4b08 --- /dev/null +++ b/m/Mesa/Mesa-12.0.2-intel-2016b.eb @@ -0,0 +1,59 @@ +# the purpose of the easyconfig is to build a Mesa for software rendering, +# not hardware rendering. This means you want at least SSE4.2. We build: +# - llvmpipe: the high-performance Gallium LLVM driver +# - swr: Intel's OpenSWR +# it will try to use the llvmpipe by default. It you want swr, do: +# GALLIUM_DRIVER=swr + +easyblock = 'ConfigureMake' + +name = 'Mesa' +version = '12.0.2' + +homepage = 'http://www.mesa3d.org/' +description = """Mesa is an open-source implementation of the OpenGL specification - + a system for rendering interactive 3D graphics.""" + +toolchain = {'name': 'intel', 'version': '2016b'} +# swr detects and builds parts specific for AVX and AVX2. If we use +# -xHost, this always gets overwritten and will fail. +toolchainopts = {'optarch': False} + +sources = [SOURCELOWER_TAR_XZ] +source_urls = [ + 'https://mesa.freedesktop.org/archive/%(version)s', + 'ftp://ftp.freedesktop.org/pub/mesa/%(version)s', + 'ftp://ftp.freedesktop.org/pub/mesa/older-versions/%(version_major)s.x/%(version)s', +] + +builddependencies = [ + ('flex', '2.6.0'), + ('Bison', '3.0.4'), + ('Autotools', '20150215'), + ('pkg-config', '0.29.1'), + ('Mako', '1.0.4', '-Python-2.7.12'), + ('libxml2', '2.9.4', '-Python-2.7.12'), +] + +dependencies = [ + ('zlib', '1.2.8'), + ('nettle', '3.2'), + ('libdrm', '2.4.70'), + ('LLVM', '3.8.1'), + ('X11', '20160819'), +] + +# GLU is not part anymore of Mesa package! +configopts = " --disable-osmesa --enable-gallium-osmesa --enable-gallium-llvm --enable-glx --disable-dri" +configopts += " --disable-driglx-direct --with-gallium-drivers='swrast,swr' --disable-egl" +configopts += " --with-osmesa-bits=32 --enable-texture-float --enable-llvm-shared-libs " + +sanity_check_paths = { + 'files': ['lib/libGL.%s' % SHLIB_EXT, 'lib/libOSMesa.%s' % SHLIB_EXT, 'lib/libGLESv1_CM.%s' % SHLIB_EXT, + 'lib/libGLESv2.%s' %SHLIB_EXT, 'include/GL/glext.h', 'include/GL/gl_mangle.h', 'include/GL/glx.h', + 'include/GL/osmesa.h', 'include/GL/wglext.h', 'include/GL/gl.h', 'include/GL/glxext.h', + 'include/GL/glx_mangle.h', 'include/GLES/gl.h', 'include/GLES2/gl2.h', 'include/GLES3/gl3.h'], + 'dirs': [] +} + +moduleclass = 'vis' diff --git a/m/Mesa/Mesa-13.0.0-foss-2016a.eb b/m/Mesa/Mesa-13.0.0-foss-2016a.eb new file mode 100644 index 00000000..d97a2fd9 --- /dev/null +++ b/m/Mesa/Mesa-13.0.0-foss-2016a.eb @@ -0,0 +1,68 @@ +easyblock = 'ConfigureMake' + +name = 'Mesa' +version = '13.0.0' + +homepage = 'http://www.mesa3d.org/' +description = """Mesa is an open-source implementation of the OpenGL specification - + a system for rendering interactive 3D graphics.""" + +toolchain = {'name': 'foss', 'version': '2016a'} + +sources = [SOURCELOWER_TAR_GZ] +source_urls = [ + 'https://mesa.freedesktop.org/archive/%(version)s', + 'ftp://ftp.freedesktop.org/pub/mesa/%(version)s', + 'ftp://ftp.freedesktop.org/pub/mesa/older-versions/%(version_major)s.x/%(version)s', +] + +builddependencies = [ + ('flex', '2.6.0'), + ('Bison', '3.0.4'), + ('Autotools', '20150215'), + ('pkg-config', '0.29.1'), + ('glproto', '1.4.17'), + ('kbproto', '1.0.7'), + ('libpthread-stubs', '0.3'), + ('xextproto', '7.3.0'), + ('xproto', '7.0.28'), + ('makedepend', '1.0.5'), +] + +dependencies = [ + ('libxml2', '2.9.3'), + ('libdrm', '2.4.68'), + ('libX11', '1.6.3',), + ('libXext', '1.3.3'), + ('libXfixes', '5.0.1'), + ('libXdamage', '1.1.4'), + ('libXfont', '1.5.1', '-freetype-2.6.3'), + ('LLVM', '3.8.0'), + ('eudev', '3.1.5'), +] + +# Use the os provided libudev or the EB provided eudev +#osdependencies = ['libudev'] + +# GLU is not part anymore of Mesa package! +configopts = " --disable-osmesa --enable-gallium-osmesa --enable-gallium-llvm --enable-glx --disable-dri" +configopts += " --enable-xlib-glx --disable-driglx-direct --with-gallium-drivers='swrast' --disable-egl" +configopts += " --with-osmesa-bits=32 --enable-texture-float " + +# package-config files for os dependencies are in an os specific place +#preconfigopts = 'libtoolize && PKG_CONFIG_PATH="$PKG_CONFIG_PATH:/usr/lib64/pkgconfig/:/usr/share/pkgconfig" ' +preconfigopts = ' libtoolize && ' + +prebuildopts = 'env CPATH="$EBROOTLIBDRM/include/libdrm:$CPATH" ' + +sanity_check_paths = { + 'files': ['lib/libGL.%s' % SHLIB_EXT, 'lib/libOSMesa.%s' % SHLIB_EXT, 'lib/libGLESv1_CM.%s' % SHLIB_EXT, + 'lib/libGLESv2.%s' %SHLIB_EXT, 'include/GL/glext.h', 'include/GL/gl_mangle.h', 'include/GL/glx.h', + 'include/GL/osmesa.h', 'include/GL/wglext.h', 'include/GL/gl.h', 'include/GL/glxext.h', + 'include/GL/glx_mangle.h', 'include/GLES/gl.h', 'include/GLES2/gl2.h', 'include/GLES3/gl3.h'], + 'dirs': [] +} + +maxparallel = 1 + +moduleclass = 'vis' diff --git a/m/Mesa/Mesa-13.0.0-intel-2016a.eb b/m/Mesa/Mesa-13.0.0-intel-2016a.eb new file mode 100644 index 00000000..d505fbe8 --- /dev/null +++ b/m/Mesa/Mesa-13.0.0-intel-2016a.eb @@ -0,0 +1,65 @@ +easyblock = 'ConfigureMake' + +name = 'Mesa' +version = '13.0.0' + +homepage = 'http://www.mesa3d.org/' +description = """Mesa is an open-source implementation of the OpenGL specification - + a system for rendering interactive 3D graphics.""" + +toolchain = {'name': 'intel', 'version': '2016a'} +toolchainopts = {'optarch': True} + +sources = [SOURCELOWER_TAR_GZ] +source_urls = ['mesa-13.0.0.tar.gz',] + +builddependencies = [ + ('flex', '2.6.0'), + ('Bison', '3.0.4'), + ('Autotools', '20150215'), + ('pkg-config', '0.29'), + ('glproto', '1.4.17'), + ('kbproto', '1.0.7'), + ('libpthread-stubs', '0.3'), + ('xextproto', '7.3.0'), + ('xproto', '7.0.28'), + ('makedepend', '1.0.5'), +] + +dependencies = [ + ('libxml2', '2.9.3'), + ('libdrm', '2.4.67'), + ('libX11', '1.6.3',), + ('libXext', '1.3.3'), + ('libXfixes', '5.0.1'), + ('libXdamage', '1.1.4'), + ('libXfont', '1.5.1'), + ('LLVM', '3.7.1'), + ('eudev', '3.1.5'), +] + +# Use the os provided libudev or the EB provided eudev +#osdependencies = ['libudev'] + +# GLU is not part anymore of Mesa package! +configopts = " --disable-osmesa --enable-gallium-osmesa --enable-gallium-llvm --enable-glx --disable-dri" +configopts += " --enable-xlib-glx --disable-driglx-direct --with-gallium-drivers='swrast' --disable-egl" +configopts += " --with-osmesa-bits=32 --enable-texture-float " + +# package-config files for os dependencies are in an os specific place +#preconfigopts = 'libtoolize && PKG_CONFIG_PATH="$PKG_CONFIG_PATH:/usr/lib64/pkgconfig/:/usr/share/pkgconfig" ' +preconfigopts = ' libtoolize && ' + +prebuildopts = 'env CPATH="$EBROOTLIBDRM/include/libdrm:$CPATH" ' + +#sanity_check_paths = { +# 'files': ['lib/libGL.%s' % SHLIB_EXT, 'lib/libOSMesa.%s' % SHLIB_EXT, 'lib/libGLESv1_CM.%s' % SHLIB_EXT, +# 'lib/libGLESv2.%s' %SHLIB_EXT, 'include/GL/glext.h', 'include/GL/gl_mangle.h', 'include/GL/glx.h', +# 'include/GL/osmesa.h', 'include/GL/wglext.h', 'include/GL/gl.h', 'include/GL/glxext.h', +# 'include/GL/glx_mangle.h', 'include/GLES/gl.h', 'include/GLES2/gl2.h', 'include/GLES3/gl3.h'], +# 'dirs': [] +#} + +maxparallel = 1 + +moduleclass = 'vis' diff --git a/m/Mesa/Mesa-7.11.2-foss-2015g-Python-2.7.9.eb b/m/Mesa/Mesa-7.11.2-foss-2015g-Python-2.7.9.eb new file mode 100644 index 00000000..b37e3d4c --- /dev/null +++ b/m/Mesa/Mesa-7.11.2-foss-2015g-Python-2.7.9.eb @@ -0,0 +1,60 @@ +easyblock = 'ConfigureMake' + +name = 'Mesa' +version = '7.11.2' + +homepage = 'http://www.mesa3d.org/' +description = """Mesa is an open-source implementation of the OpenGL specification - + a system for rendering interactive 3D graphics.""" + + +toolchain = {'name': 'foss', 'version': '2015g'} +toolchainopts = {'optarch': True} + +sources = ['%sLib-%s.tar.gz' % (name, version)] +source_urls = [ + 'ftp://ftp.freedesktop.org/pub/mesa/%(version)s', + 'ftp://ftp.freedesktop.org/pub/mesa/older-versions/%(version_major)s.x/%(version)s', +] + +pythonver = '2.7.9' +pythonshortver = '.'.join(pythonver.split('.')[0:2]) +versionsuffix = '-%s-%s' % ('Python', pythonver) + +dependencies = [ + ('flex', '2.5.39'), + ('Bison', '2.7'), + ('makedepend', '1.0.4'), + ('Python', pythonver), + #('libxml2', '2.9.2', versionsuffix), + ('libxml2', '2.9.2'), + ('glproto', '1.4.16'), + ('libdrm', '2.4.27') +] + +osdependencies = [ + 'libX11-devel', # Xlibs.h + 'xorg-x11-proto-devel', # X.h, glproto, xproto + 'libXdamage-devel', + 'libXext-devel', + 'libXfixes-devel', +] + +configopts = " --disable-osmesa --enable-glu --disable-gallium-llvm --disable-gallium-gbm --enable-glx --with-driver=xlib" +configopts += " --disable-driglx-direct --with-gallium-drivers='' --without-demos --disable-egl""" + +# package-config files for os dependencies are in an os specific place +preconfigopts = ' PKG_CONFIG_PATH="$PKG_CONFIG_PATH:/usr/lib64/pkgconfig/:/usr/share/pkgconfig" ' + +prebuildopts = 'CPATH="$EBROOTLIBDRM/include/libdrm" ' + +sanity_check_paths = { + 'files': ['lib/libGL.so', 'lib/libGLU.so', 'include/GL/glext.h', 'include/GL/gl_mangle.h', + 'include/GL/glu_mangle.h', 'include/GL/glx.h', 'include/GL/osmesa.h', + 'include/GL/wglext.h', 'include/GL/gl.h', 'include/GL/glu.h', + 'include/GL/glxext.h', 'include/GL/glx_mangle.h', 'include/GL/vms_x_fix.h', + 'include/GL/wmesa.h'], + 'dirs': [] +} + +moduleclass = 'vis' diff --git a/m/Metal/Metal-2011-03-25-foss-2016a.eb b/m/Metal/Metal-2011-03-25-foss-2016a.eb new file mode 100644 index 00000000..6f7d2343 --- /dev/null +++ b/m/Metal/Metal-2011-03-25-foss-2016a.eb @@ -0,0 +1,32 @@ +easyblock = 'ConfigureMake' + +name = 'Metal' +version = '2011-03-25' + +homepage = 'http://csg.sph.umich.edu/abecasis/Metal/' +description = """ +Metal - Meta Analysis Helper +The METAL software is designed to facilitate meta-analysis of large datasets (such as several whole genome scans) in a + convenient, rapid and memory efficient manner. +""" + +sources = ['generic-%(namelower)s-%(version)s.tar.gz'] +source_urls = ['http://csg.sph.umich.edu/abecasis/Metal/download/'] + +toolchain = {'name': 'foss', 'version': '2016a'} +toolchainopts = {'pic': True} + +patches=['Metal-%(version)s_Makefile.patch'] + +skipsteps=['configure'] + +buildopts='all' + +installopts = 'INSTALLDIR=%(installdir)s/bin' + +sanity_check_paths = { + 'files': ['bin/metal'], + 'dirs': [''], +} + +moduleclass = 'bio' diff --git a/m/Minimac2/Minimac2-2014.9.15-goolf-1.7.20.eb b/m/Minimac2/Minimac2-2014.9.15-goolf-1.7.20.eb new file mode 100644 index 00000000..79a432c8 --- /dev/null +++ b/m/Minimac2/Minimac2-2014.9.15-goolf-1.7.20.eb @@ -0,0 +1,50 @@ +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# Author: Pablo Escobar Lopez +# sciCORE - University of Basel +# SIB Swiss Institute of Bioinformatics + +easyblock='MakeCp' + +name = 'Minimac2' +version = '2014.9.15' + +homepage = 'http://genome.sph.umich.edu/wiki/Minimac2' +description = """minimac2 is an improved version of Minimac. It is designed to work on phased + genotypes and can handle very large reference panels with hundreds or thousands of haplotypes. + The name has two parts. The first, mini, refers to the modest amount of computational resources it requires. + The second, mac, is short hand for MaCH, our widely used algorithm for genotype imputation.""" + +toolchain = {'name': 'goolf', 'version': '1.7.20'} + +source_urls = ['http://csg.sph.umich.edu/cfuchsb/'] +sources = ['%(namelower)s.%(version)s.src.tgz'] + +osdependencies = [('openssl-devel', 'libssl-dev', 'libopenssl-devel')] + +dependencies = [ + ('zlib', '1.2.8'), + # This app also depends in openblas +# ('OpenSSL', '1.0.1q'), # OS dependency should be preferred if the os version is more recent then this version, it's +# nice to have an up to date openssl for security reasons +] + +# firt move to folder libStatGen to run make clean && make +# make clean is mandatory because the sources tarball includes +# files from previous build +prebuildopts = ["cd libStatGen && make clean && "] + +# in libStatGen folder run just "make" +# in minimac folder run "make clean && make opt && make openmp" +buildopts = [" && cd ../minimac2 && make clean && make opt && make openmp"] + +# parallel build fails +parallel = 1 + +files_to_copy = [(["minimac2/bin/minimac2", "minimac2/bin/minimac2-omp"], "bin")] + +sanity_check_paths = { + 'files': ['bin/minimac2', 'bin/minimac2-omp'], + 'dirs': [] +} + +moduleclass = 'bio' diff --git a/m/Molpro/Molpro-2012.1.27-intel-2015a.eb b/m/Molpro/Molpro-2012.1.27-intel-2015a.eb new file mode 100644 index 00000000..519d0887 --- /dev/null +++ b/m/Molpro/Molpro-2012.1.27-intel-2015a.eb @@ -0,0 +1,17 @@ +name = 'Molpro' +version = '2012.1.27' + +homepage = 'https://www.molpro.net' +description = """Molpro is a complete system of ab initio programs for molecular electronic structure calculations.""" + +toolchain = {'name': 'intel', 'version': '2015a'} +toolchainopts = {'usempi': True} + +# no source URL available, requires registration to download +sources = ['%(namelower)s.%(version)s.tar.gz'] + +# license file +import os +license_file = os.path.join(os.getenv('HOME'), 'licenses', name, 'license.lic') + +moduleclass = 'chem' diff --git a/m/Molpro/Molpro-mpp-2010.1.23.Linux_x86_64.eb b/m/Molpro/Molpro-mpp-2010.1.23.Linux_x86_64.eb new file mode 100644 index 00000000..25842fde --- /dev/null +++ b/m/Molpro/Molpro-mpp-2010.1.23.Linux_x86_64.eb @@ -0,0 +1,21 @@ +name = 'Molpro' +versionprefix = 'mpp-' +version = '2010.1.23' +versionsuffix = '.Linux_x86_64' + +homepage = 'https://www.molpro.net' +description = """Molpro is a complete system of ab initio programs for molecular electronic structure calculations.""" + +toolchain = {'name': 'dummy', 'version': 'dummy'} + +# no source URL available, requires registration to download +sources = ['%(namelower)s-%(versionprefix)s%(version)s%(versionsuffix)s.sh'] +patches = ['%(name)s-%(versionprefix)s%(version)s%(versionsuffix)s.patch'] +precompiled_binaries = True + +# license file - uncomment if a licence file is supplied by your site and +# is valid for all users - the value of license_file may have to be changed +#import os +#license_file = os.path.join(os.getenv('HOME'), 'licenses', name, 'license.lic') + +moduleclass = 'chem' diff --git a/m/Molpro/Molpro-mpp-2015.1.0.linux_x86_64_intel.eb b/m/Molpro/Molpro-mpp-2015.1.0.linux_x86_64_intel.eb new file mode 100644 index 00000000..3d1681fc --- /dev/null +++ b/m/Molpro/Molpro-mpp-2015.1.0.linux_x86_64_intel.eb @@ -0,0 +1,21 @@ +name = 'Molpro' +versionprefix = 'mpp-' +version = '2015.1.0' +versionsuffix = '.linux_x86_64_intel' + +homepage = 'https://www.molpro.net' +description = """Molpro is a complete system of ab initio programs for molecular electronic structure calculations.""" + +toolchain = {'name': 'dummy', 'version': 'dummy'} + +# no source URL available, requires registration to download +sources = ['%(namelower)s-%(versionprefix)s%(version)s%(versionsuffix)s.sh'] + +precompiled_binaries = True + +# license file - uncomment if a licence file is supplied by your site and +# is valid for all users - the value of license_file may have to be changed +#import os +#license_file = os.path.join(os.getenv('HOME'), 'licenses', name, 'license.lic') + +moduleclass = 'chem' diff --git a/m/Molpro/Molpro-mpp-2015.1.10.linux_x86_64_openmp.eb b/m/Molpro/Molpro-mpp-2015.1.10.linux_x86_64_openmp.eb new file mode 100644 index 00000000..22912ecf --- /dev/null +++ b/m/Molpro/Molpro-mpp-2015.1.10.linux_x86_64_openmp.eb @@ -0,0 +1,20 @@ +name = 'Molpro' +versionprefix = 'mpp-' +version = '2015.1.10' +versionsuffix = '.linux_x86_64_openmp' + +homepage = 'https://www.molpro.net' +description = """Molpro is a complete system of ab initio programs for molecular electronic structure calculations.""" + +toolchain = {'name': 'dummy', 'version': 'dummy'} + +# no source URL available, requires registration to download +sources = ['%(namelower)s-%(versionprefix)s%(version)s%(versionsuffix)s.sh'] + +precompiled_binaries = True + +# license file - uncomment if a licence file is supplied by your site and +# is valid for all users - the value of license_file may have to be changed +#license_file = HOME + '/licenses/%(name)s/license.lic' + +moduleclass = 'chem' diff --git a/m/Molpro/Molpro-mpp-2015.1.3.linux_x86_64_openmp.eb b/m/Molpro/Molpro-mpp-2015.1.3.linux_x86_64_openmp.eb new file mode 100644 index 00000000..47852f7b --- /dev/null +++ b/m/Molpro/Molpro-mpp-2015.1.3.linux_x86_64_openmp.eb @@ -0,0 +1,20 @@ +name = 'Molpro' +versionprefix = 'mpp-' +version = '2015.1.3' +versionsuffix = '.linux_x86_64_openmp' + +homepage = 'https://www.molpro.net' +description = """Molpro is a complete system of ab initio programs for molecular electronic structure calculations.""" + +toolchain = {'name': 'dummy', 'version': 'dummy'} + +# no source URL available, requires registration to download +sources = ['%(namelower)s-%(versionprefix)s%(version)s%(versionsuffix)s.sh'] + +precompiled_binaries = True + +# license file - uncomment if a licence file is supplied by your site and +# is valid for all users - the value of license_file may have to be changed +#license_file = HOME + '/licenses/%(name)s/license.lic' + +moduleclass = 'chem' diff --git a/m/Mono/Mono-2.10.6-intel-2016b.eb b/m/Mono/Mono-2.10.6-intel-2016b.eb new file mode 100644 index 00000000..365455df --- /dev/null +++ b/m/Mono/Mono-2.10.6-intel-2016b.eb @@ -0,0 +1,28 @@ +name = 'Mono' +version = '2.10.6' + +homepage = 'http://mono-framework.com' +description = """An open source, cross-platform, implementation of C# and the CLR that is + binary compatible with Microsoft.NET.""" + +toolchain = {'name': 'intel', 'version': '2016b'} + +# Mono required Mono to build, so there are a couple of options: +# 1) provide Mono RPMs in sources, the Mono easyblock will use them to make a tmp Mono install +# 2) assume a Mono version is available system-wide (assert using e.g. "osdependencies = ['mono-core']") +# 3) specify an already available Mono module as build dep, e.g. "builddependencies = [('Mono', '2.10.6')] + +source_urls = ['http://download.mono-project.com/sources/mono/'] +sources = [ + SOURCELOWER_TAR_BZ2, + # Mono requires Mono to build, so provide RPMs so Mono can be bootstrapped + 'libgdiplus-2.4.2-2.el5.kb.x86_64.rpm', + 'mono-core-2.4.2.3-2.el5.kb.x86_64.rpm', +] + +builddependencies = [ + ('Bison', '3.0.4'), + ('gettext', '0.19.8'), +] + +moduleclass = 'lang' diff --git a/m/Mono/Mono-3.12.1-GCC-4.4.7-system.eb b/m/Mono/Mono-3.12.1-GCC-4.4.7-system.eb new file mode 100644 index 00000000..c466115e --- /dev/null +++ b/m/Mono/Mono-3.12.1-GCC-4.4.7-system.eb @@ -0,0 +1,19 @@ +name = 'Mono' +version = '3.12.1' + +easyblock = 'ConfigureMake' + +homepage = 'http://www.mono-project.com' +description = """Mono is an open source implementation of Microsoft's .NET Framework based on the ECMA standards +for C# and the Common Language Runtime.""" + +toolchain = {'name': 'GCC', 'version': '4.4.7-system'} + +dependencies = [('libgdiplus', '3.12')] + +sources = [SOURCELOWER_TAR_BZ2] +source_urls = ['http://download.mono-project.com/sources/%(namelower)s'] + +maxparallel = 4 + +moduleclass = 'lang' diff --git a/m/Mono/Mono-3.12.1-GCC-4.8.3.eb b/m/Mono/Mono-3.12.1-GCC-4.8.3.eb new file mode 100644 index 00000000..a076a63e --- /dev/null +++ b/m/Mono/Mono-3.12.1-GCC-4.8.3.eb @@ -0,0 +1,19 @@ +name = 'Mono' +version = '3.12.1' + +easyblock = 'ConfigureMake' + +homepage = 'http://www.mono-project.com' +description = """Mono is an open source implementation of Microsoft's .NET Framework based on the ECMA standards +for C# and the Common Language Runtime.""" + +toolchain = {'name': 'GCC', 'version': '4.8.3'} + +dependencies = [('libgdiplus', '3.12')] + +sources = [SOURCELOWER_TAR_BZ2] +source_urls = ['http://download.mono-project.com/sources/%(namelower)s'] + +maxparallel = 4 + +moduleclass = 'lang' diff --git a/m/Mono/Mono-3.12.1-GNU-5.1.0-2.25.eb b/m/Mono/Mono-3.12.1-GNU-5.1.0-2.25.eb new file mode 100644 index 00000000..3344617e --- /dev/null +++ b/m/Mono/Mono-3.12.1-GNU-5.1.0-2.25.eb @@ -0,0 +1,19 @@ +name = 'Mono' +version = '3.12.1' + +easyblock = 'ConfigureMake' + +homepage = 'http://www.mono-project.com' +description = """Mono is an open source implementation of Microsoft's .NET Framework based on the ECMA standards +for C# and the Common Language Runtime.""" + +toolchain = {'name': 'GNU', 'version': '5.1.0-2.25'} + +dependencies = [('libgdiplus', '3.12')] + +sources = [SOURCELOWER_TAR_BZ2] +source_urls = ['http://download.mono-project.com/sources/%(namelower)s'] + +maxparallel = 4 + +moduleclass = 'lang' diff --git a/m/Mono/Mono-3.12.1.eb b/m/Mono/Mono-3.12.1.eb new file mode 100644 index 00000000..f1422816 --- /dev/null +++ b/m/Mono/Mono-3.12.1.eb @@ -0,0 +1,20 @@ +name = 'Mono' +version = '3.12.1' + +easyblock = 'ConfigureMake' + +homepage = 'http://www.mono-project.com' +description = """Mono is an open source implementation of Microsoft's .NET Framework based on the ECMA standards +for C# and the Common Language Runtime.""" + +# Dummy toolchain becasuse of GCC5.1/Mono problem +toolchain = {'name': 'dummy', 'version': 'dummy'} + +dependencies = [('libgdiplus', '3.12', '', ('GNU', '5.1.0-2.25'))] + +sources = [SOURCELOWER_TAR_BZ2] +source_urls = ['http://download.mono-project.com/sources/%(namelower)s'] + +maxparallel = 4 + +moduleclass = 'lang' diff --git a/m/Mono/Mono-4.0.3.20-GNU-5.1.0-2.25.eb b/m/Mono/Mono-4.0.3.20-GNU-5.1.0-2.25.eb new file mode 100644 index 00000000..25199fb3 --- /dev/null +++ b/m/Mono/Mono-4.0.3.20-GNU-5.1.0-2.25.eb @@ -0,0 +1,19 @@ +name = 'Mono' +version = '4.0.3.20' + +easyblock = 'ConfigureMake' + +homepage = 'http://www.mono-project.com' +description = """Mono is an open source implementation of Microsoft's .NET Framework based on the ECMA standards +for C# and the Common Language Runtime.""" + +toolchain = {'name': 'GNU', 'version': '5.1.0-2.25'} + +dependencies = [('libgdiplus', '3.12')] + +sources = [SOURCELOWER_TAR_BZ2] +source_urls = ['http://download.mono-project.com/sources/%(namelower)s'] + +maxparallel = 4 + +moduleclass = 'lang' diff --git a/m/Mono/Mono-4.2.2.10-intel-2016.01.eb b/m/Mono/Mono-4.2.2.10-intel-2016.01.eb new file mode 100644 index 00000000..71af218c --- /dev/null +++ b/m/Mono/Mono-4.2.2.10-intel-2016.01.eb @@ -0,0 +1,19 @@ +name = 'Mono' +version = '4.2.2.10' + +easyblock = 'ConfigureMake' + +homepage = 'http://www.mono-project.com' +description = """Mono is an open source implementation of Microsoft's .NET Framework based on the ECMA standards +for C# and the Common Language Runtime.""" + +toolchain = {'name': 'intel', 'version': '2016.01'} + +dependencies = [('libgdiplus', '3.12')] + +sources = [SOURCELOWER_TAR_BZ2] +source_urls = ['http://download.mono-project.com/sources/%(namelower)s'] + +maxparallel = 4 + +moduleclass = 'lang' diff --git a/m/Mono/Mono-4.6.2.16.eb b/m/Mono/Mono-4.6.2.16.eb new file mode 100644 index 00000000..69472da6 --- /dev/null +++ b/m/Mono/Mono-4.6.2.16.eb @@ -0,0 +1,21 @@ +name = 'Mono' +version = '4.6.2.16' + +homepage = 'http://mono-framework.com' +description = """An open source, cross-platform, implementation of C# and the CLR that is + binary compatible with Microsoft.NET.""" + +toolchain = {'name': 'dummy', 'version': 'dummy'} + +source_urls = ['http://download.mono-project.com/sources/mono/'] +sources = [SOURCELOWER_TAR_BZ2] + +builddependencies = [ + ('Autotools', '20150215'), + ('Bison', '3.0.4'), + ('gettext', '0.19.8'), +] + +configopts = "--with-large-heap=yes" + +moduleclass = 'lang' diff --git a/m/Mono/Mono-4.6.2.7-intel-2016b.eb b/m/Mono/Mono-4.6.2.7-intel-2016b.eb new file mode 100644 index 00000000..4b58a5cd --- /dev/null +++ b/m/Mono/Mono-4.6.2.7-intel-2016b.eb @@ -0,0 +1,21 @@ +name = 'Mono' +version = '4.6.2.7' + +homepage = 'http://mono-framework.com' +description = """An open source, cross-platform, implementation of C# and the CLR that is + binary compatible with Microsoft.NET.""" + +toolchain = {'name': 'intel', 'version': '2016b'} + +source_urls = ['http://download.mono-project.com/sources/mono/'] +sources = [SOURCELOWER_TAR_BZ2] + +builddependencies = [ + ('Autotools', '20150215'), + ('Bison', '3.0.4'), + ('gettext', '0.19.8'), +] + +configopts = "--with-large-heap=yes" + +moduleclass = 'lang' diff --git a/m/Mono/Mono-4.6.2.7.eb b/m/Mono/Mono-4.6.2.7.eb new file mode 100644 index 00000000..ea1fdc28 --- /dev/null +++ b/m/Mono/Mono-4.6.2.7.eb @@ -0,0 +1,21 @@ +name = 'Mono' +version = '4.6.2.7' + +homepage = 'http://mono-framework.com' +description = """An open source, cross-platform, implementation of C# and the CLR that is + binary compatible with Microsoft.NET.""" + +toolchain = {'name': 'dummy', 'version': 'dummy'} + +source_urls = ['http://download.mono-project.com/sources/mono/'] +sources = [SOURCELOWER_TAR_BZ2] + +builddependencies = [ + ('Autotools', '20150215'), + ('Bison', '3.0.4'), + ('gettext', '0.19.8'), +] + +configopts = "--with-large-heap=yes" + +moduleclass = 'lang' diff --git a/m/MrBayes/MrBayes-3.1.2-goolf-1.4.10.eb b/m/MrBayes/MrBayes-3.1.2-goolf-1.4.10.eb new file mode 100644 index 00000000..faf00e50 --- /dev/null +++ b/m/MrBayes/MrBayes-3.1.2-goolf-1.4.10.eb @@ -0,0 +1,17 @@ +name = 'MrBayes' +version = '3.1.2' + +homepage = 'http://mrbayes.csit.fsu.edu' +description = "MrBayes is a program for the Bayesian estimation of phylogeny." +toolchain = {'name': 'goolf', 'version': '1.4.10'} +toolchainopts = {'optarch': True, 'usempi': True} + +sources = [SOURCELOWER_TAR_GZ] +source_urls = ["http://downloads.sourceforge.net/project/mrbayes/mrbayes/%s" % (version)] + +dependencies = [ + ('libreadline', '6.2'), + ('ncurses', '5.9'), +] + +moduleclass = 'bio' diff --git a/m/MrBayes/MrBayes-3.1.2-ictce-5.3.0.eb b/m/MrBayes/MrBayes-3.1.2-ictce-5.3.0.eb new file mode 100644 index 00000000..72d20216 --- /dev/null +++ b/m/MrBayes/MrBayes-3.1.2-ictce-5.3.0.eb @@ -0,0 +1,19 @@ +name = 'MrBayes' +version = '3.1.2' + +homepage = 'http://mrbayes.csit.fsu.edu' +description = "MrBayes is a program for the Bayesian estimation of phylogeny." + + +toolchain = {'name': 'ictce', 'version': '5.3.0'} +toolchainopts = {'optarch': True, 'usempi': True} + +sources = [SOURCELOWER_TAR_GZ] +source_urls = ["http://downloads.sourceforge.net/project/mrbayes/mrbayes/%s" % (version)] + +dependencies = [ + ('libreadline', '6.2'), + ('ncurses', '5.9'), +] + +moduleclass = 'bio' diff --git a/m/MrBayes/MrBayes-3.2.0-goolf-1.4.10.eb b/m/MrBayes/MrBayes-3.2.0-goolf-1.4.10.eb new file mode 100644 index 00000000..a4749003 --- /dev/null +++ b/m/MrBayes/MrBayes-3.2.0-goolf-1.4.10.eb @@ -0,0 +1,17 @@ +name = 'MrBayes' +version = '3.2.0' + +homepage = 'http://mrbayes.csit.fsu.edu' +description = "MrBayes is a program for the Bayesian estimation of phylogeny." +toolchain = {'name': 'goolf', 'version': '1.4.10'} +toolchainopts = {'optarch': True, 'usempi': True} + +sources = [SOURCELOWER_TAR_GZ] +source_urls = ["http://downloads.sourceforge.net/project/mrbayes/mrbayes/%s" % (version)] + +dependencies = [ + ('beagle-lib', '20120124'), + ('libreadline', '6.2'), +] + +moduleclass = 'bio' diff --git a/m/MrBayes/MrBayes-3.2.0-ictce-5.3.0.eb b/m/MrBayes/MrBayes-3.2.0-ictce-5.3.0.eb new file mode 100644 index 00000000..7ac8ffef --- /dev/null +++ b/m/MrBayes/MrBayes-3.2.0-ictce-5.3.0.eb @@ -0,0 +1,19 @@ +name = 'MrBayes' +version = '3.2.0' + +homepage = 'http://mrbayes.csit.fsu.edu' +description = "MrBayes is a program for the Bayesian estimation of phylogeny." + + +toolchain = {'name': 'ictce', 'version': '5.3.0'} +toolchainopts = {'optarch': True, 'usempi': True} + +sources = [SOURCELOWER_TAR_GZ] +source_urls = ["http://downloads.sourceforge.net/project/mrbayes/mrbayes/%s" % (version)] + +dependencies = [ + ('beagle-lib', '20120124'), + ('libreadline', '6.2'), +] + +moduleclass = 'bio' diff --git a/m/MrBayes/MrBayes-3.2.5-intel-2015a.eb b/m/MrBayes/MrBayes-3.2.5-intel-2015a.eb new file mode 100644 index 00000000..5836ec7f --- /dev/null +++ b/m/MrBayes/MrBayes-3.2.5-intel-2015a.eb @@ -0,0 +1,18 @@ +name = 'MrBayes' +version = '3.2.5' + +homepage = 'http://mrbayes.csit.fsu.edu' +description = "MrBayes is a program for the Bayesian estimation of phylogeny." + +toolchain = {'name': 'intel', 'version': '2015a'} +toolchainopts = {'optarch': True, 'usempi': True} + +sources = [SOURCELOWER_TAR_GZ] +source_urls = ["http://downloads.sourceforge.net/project/mrbayes/mrbayes/%(version)s"] + +dependencies = [ + ('beagle-lib', '20141202'), + ('libreadline', '6.3'), +] + +moduleclass = 'bio' diff --git a/m/MuTect/MuTect-1.1.4-Java-1.7.0_76.eb b/m/MuTect/MuTect-1.1.4-Java-1.7.0_76.eb new file mode 100644 index 00000000..afe163b8 --- /dev/null +++ b/m/MuTect/MuTect-1.1.4-Java-1.7.0_76.eb @@ -0,0 +1,36 @@ +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# Author: Pablo Escobar Lopez +# Swiss Institute of Bioinformatics +# Biozentrum - University of Basel + +easyblock = 'Tarball' + +name = 'MuTect' +version = '1.1.4' + +homepage = 'http://www.broadinstitute.org/cancer/cga/mutect' +description = """ MuTect is a method developed at the Broad Institute for the reliable + and accurate identification of somatic point mutations in next generation sequencing + data of cancer genomes. """ + +toolchain = {'name': 'dummy', 'version': ''} + +source_urls = ['http://www.broadinstitute.org/cancer/cga/sites/default/files/data/tools/mutect/'] +sources = ['muTect-%(version)s-bin.zip'] + +java = 'Java' +javaver = '1.7.0_76' +versionsuffix = '-%s-%s' % (java, javaver) + +dependencies = [(java, javaver)] + +sanity_check_paths = { + 'files': ["muTect-%(version)s.jar"], + 'dirs': [], +} + +modloadmsg = """ +to execute: java -jar \\$EBROOTMUTECT/muTect-%(version)s.jar +""" + +moduleclass = 'bio' diff --git a/m/MuTect/MuTect-1.1.4-Java-1.7.0_80.eb b/m/MuTect/MuTect-1.1.4-Java-1.7.0_80.eb new file mode 100644 index 00000000..0d2d28d4 --- /dev/null +++ b/m/MuTect/MuTect-1.1.4-Java-1.7.0_80.eb @@ -0,0 +1,37 @@ +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# Author: Pablo Escobar Lopez +# Swiss Institute of Bioinformatics +# Biozentrum - University of Basel +# Modified by +# Adam Huffman +# The Francis Crick Institute + +easyblock = 'Tarball' + +name = 'MuTect' +version = '1.1.4' +versionsuffix = '-Java-%(javaver)s' + +homepage = 'http://www.broadinstitute.org/cancer/cga/mutect' +description = """ MuTect is a method developed at the Broad Institute for the reliable + and accurate identification of somatic point mutations in next generation sequencing + data of cancer genomes. """ + +toolchain = {'name': 'dummy', 'version': ''} + +# Need to be logged in to download, at this URL +# http://www.broadinstitute.org/cancer/cga/mutect_download +sources = ['muTect-%(version)s-bin.zip'] + +dependencies = [('Java', '1.7.0_80')] + +sanity_check_paths = { + 'files': ["muTect-%(version)s.jar"], + 'dirs': [], +} + +modloadmsg = """ +To start MuTect: java -jar \\$EBROOTMUTECT/muTect-%(version)s.jar +""" + +moduleclass = 'bio' diff --git a/m/MuTect/MuTect-1.1.7-Java-1.7.0_80.eb b/m/MuTect/MuTect-1.1.7-Java-1.7.0_80.eb new file mode 100644 index 00000000..86bd5019 --- /dev/null +++ b/m/MuTect/MuTect-1.1.7-Java-1.7.0_80.eb @@ -0,0 +1,38 @@ +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# Author: Pablo Escobar Lopez +# Swiss Institute of Bioinformatics +# Biozentrum - University of Basel +# Modified by +# Adam Huffman +# The Francis Crick Institute + +easyblock = 'Tarball' + +name = 'MuTect' +version = '1.1.7' +versionsuffix = '-Java-%(javaver)s' + +homepage = 'http://www.broadinstitute.org/cancer/cga/mutect' +description = """ MuTect is a method developed at the Broad Institute for the reliable + and accurate identification of somatic point mutations in next generation sequencing + data of cancer genomes. """ + +toolchain = {'name': 'dummy', 'version': ''} + +# Need to be logged in to download, at this URL +# and to click the checkbox to agree to the licence +# https://www.broadinstitute.org/gatk/download/auth?package=MuTect +sources = ['%(namelower)s-%(version)s.jar.zip'] + +dependencies = [('Java', '1.7.0_80')] + +sanity_check_paths = { + 'files': ["%(namelower)s-%(version)s.jar"], + 'dirs': [], +} + +modloadmsg = """ +To start MuTect: java -jar \\$EBROOTMUTECT/%(namelower)s-%(version)s.jar +""" + +moduleclass = 'bio' diff --git a/m/magma/magma-2.0.0-CrayGNU-2015.11.eb b/m/magma/magma-2.0.0-CrayGNU-2015.11.eb new file mode 100644 index 00000000..fdd34a04 --- /dev/null +++ b/m/magma/magma-2.0.0-CrayGNU-2015.11.eb @@ -0,0 +1,29 @@ +easyblock = "ConfigureMake" + +name = 'magma' +version = '2.0.0' + +homepage = 'http://icl.cs.utk.edu/magma/' +description = """The MAGMA project aims to develop a dense linear algebra library similar to +LAPACK but for heterogeneous/hybrid architectures, starting with current Multicore+GPU systems.""" + +toolchain = {'name': 'CrayGNU', 'version': '2015.11'} +toolchainopts = {'pic': True} + +sources = [SOURCE_TAR_GZ] +source_urls = ['http://icl.cs.utk.edu/projectsfiles/magma/downloads/'] + +patches = [('magma-2.0.0.patch')] + +builddependencies = [ ('cudatoolkit/7.0.28-1.0502.10742.5.1', EXTERNAL_MODULE) ] + +skipsteps = ['configure'] + +preinstallopts = "export EBINSTALLPREFIX=%(installdir)s && " + +sanity_check_paths={ + 'files': ['lib/libmagma.so', 'lib/libmagma.a'], + 'dirs': ['include'], +} + +moduleclass = 'math' diff --git a/m/make/make-3.82-intel-2015b.eb b/m/make/make-3.82-intel-2015b.eb new file mode 100644 index 00000000..899f3ce3 --- /dev/null +++ b/m/make/make-3.82-intel-2015b.eb @@ -0,0 +1,58 @@ +# Built with EasyBuild version 2.1.1 on 2015-06-30_09-13-57 +## +# This file is an EasyBuild recipy as per https://github.com/hpcugent/easybuild +# +# Copyright:: Copyright 2012-2014 Uni.Lu/LCSB, NTUA +# Authors:: Fotis Georgatos +# 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/ +## + +easyblock = 'ConfigureMake' + +name = 'make' +version = '3.82' + +homepage = 'http://www.gnu.org/software/make/make.html' +description = "make-3.82: GNU version of make utility" + +# fi. http://ftp.gnu.org/gnu/make/make-3.82.tar.gz +sources = ['make-%(version)s.tar.bz2'] +source_urls = [GNU_SOURCE] + +toolchain = {'name': 'intel', 'version': '2015b'} + +sanity_check_paths = { + 'files': ['bin/make'], + 'dirs': [] +} + +moduleclass = 'devel' + +# Build statistics +buildstats = [{ + "easybuild-framework_version": "2.1.1", + "easybuild-easyblocks_version": "2.1.1", + "timestamp": 1435648437, + "build_time": 40.64, + "install_size": 1644212, + "command_line": ['--buildpath=/easybuild/build', '--installpath=/apps', '--installpath-modules=/apps/modules', '--installpath-software=/apps', '--module-naming-scheme=IT4IModuleNamingScheme', '--modules-footer=/easybuild/templates/modules/jas02_footer.txt', '--repositorypath=/easybuild/file-repository', '--robot=/easybuild/easyconfigs-salomon/easybuild/easyconfigs', '--robot-paths=/easybuild/easyconfigs-salomon/easybuild/easyconfigs', '--sourcepath=/easybuild/sources', '--try-toolchain="[\'intel\', \'2015b\']"', 'make-3.82-ictce-5.5.0.eb'], + "modules_tool": ('EnvironmentModulesC', '/usr/bin/modulecmd', '3.2.10'), + "core_count": 28, + "cpu_model": "Intel(R) Xeon(R) CPU E5-2695 v3 @ 2.30GHz", + "cpu_speed": 2300.041, + "cpu_vendor": "Intel", + "gcc_version": "Using built-in specs.; COLLECT_GCC=gcc; COLLECT_LTO_WRAPPER=/apps/all/GCC/5.1.0-binutils-2.25/libexec/gcc/x86_64-unknown-linux-gnu/5.1.0/lto-wrapper; Target: x86_64-unknown-linux-gnu; Configured with: ../configure --enable-languages=c,c++,fortran --enable-lto --enable-checking=release --disable-multilib --enable-shared=yes --enable-static=yes --enable-threads=posix --enable-gold=default --enable-plugins --enable-ld --with-plugin-ld=ld.gold --prefix=/apps/all/GCC/5.1.0-binutils-2.25 --with-local-prefix=/apps/all/GCC/5.1.0-binutils-2.25 --enable-bootstrap --with-isl=/easybuild/build/GCC/5.1.0/dummy--binutils-2.25/gcc-5.1.0/stage2_stuff; Thread model: posix; gcc version 5.1.0 (GCC) ; ", + "glibc_version": "2.12", + "hostname": "login1", + "os_name": "centos", + "os_type": "Linux", + "os_version": "6.6", + "platform_name": "x86_64-unknown-linux", + "python_version": "2.6.6 (r266:84292, Jan 22 2014, 09:42:36) ; [GCC 4.4.7 20120313 (Red Hat 4.4.7-4)]", + "system_gcc_path": "/apps/all/GCC/5.1.0-binutils-2.25/bin/gcc", + "system_python_path": "/usr/bin/python", +}] diff --git a/m/make/make-3.82.eb b/m/make/make-3.82.eb new file mode 100644 index 00000000..29787e07 --- /dev/null +++ b/m/make/make-3.82.eb @@ -0,0 +1,33 @@ +# Built with EasyBuild version 2.1.1 on 2015-06-30_09-13-57 +## +# This file is an EasyBuild recipy as per https://github.com/hpcugent/easybuild +# +# Copyright:: Copyright 2012-2014 Uni.Lu/LCSB, NTUA +# Authors:: Fotis Georgatos +# 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/ +## + +easyblock = 'ConfigureMake' + +name = 'make' +version = '3.82' + +homepage = 'http://www.gnu.org/software/make/make.html' +description = "make-3.82: GNU version of make utility" + +# fi. http://ftp.gnu.org/gnu/make/make-3.82.tar.gz +sources = ['make-%(version)s.tar.bz2'] +source_urls = [GNU_SOURCE] + +toolchain = {'name': 'dummy', 'version': ''} + +sanity_check_paths = { + 'files': ['bin/make'], + 'dirs': [] +} + +moduleclass = 'devel' diff --git a/m/makedepend/makedepend-1.0.5-foss-2016a.eb b/m/makedepend/makedepend-1.0.5-foss-2016a.eb new file mode 100644 index 00000000..c4a3658b --- /dev/null +++ b/m/makedepend/makedepend-1.0.5-foss-2016a.eb @@ -0,0 +1,24 @@ +easyblock = 'ConfigureMake' + +name = 'makedepend' +version = '1.0.5' + +homepage = "http://www.linuxfromscratch.org/blfs/view/svn/x/makedepend.html" +description = "The makedepend package contains a C-preprocessor like utility to determine build-time dependencies." + +toolchain = {'name': 'foss', 'version': '2016a'} +toolchainopts = {'optarch': True} + +sources = [SOURCE_TAR_GZ] +source_urls = [XORG_UTIL_SOURCE] + +builddependencies = [ + ('xproto', '7.0.28'), +] + +sanity_check_paths = { + 'files': ['bin/makedepend'], + 'dirs': [], +} + +moduleclass = 'devel' diff --git a/m/makedepend/makedepend-1.0.5-intel-2016a.eb b/m/makedepend/makedepend-1.0.5-intel-2016a.eb new file mode 100644 index 00000000..943da96f --- /dev/null +++ b/m/makedepend/makedepend-1.0.5-intel-2016a.eb @@ -0,0 +1,24 @@ +easyblock = 'ConfigureMake' + +name = 'makedepend' +version = '1.0.5' + +homepage = "http://www.linuxfromscratch.org/blfs/view/svn/x/makedepend.html" +description = "The makedepend package contains a C-preprocessor like utility to determine build-time dependencies." + +toolchain = {'name': 'intel', 'version': '2016a'} +toolchainopts = {'optarch': True} + +sources = [SOURCE_TAR_GZ] +source_urls = [XORG_UTIL_SOURCE] + +builddependencies = [ + ('xproto', '7.0.28'), +] + +sanity_check_paths = { + 'files': ['bin/makedepend'], + 'dirs': [], +} + +moduleclass = 'devel' diff --git a/m/matplotlib/matplotlib-1.4.3-intel-2015b-Python-2.7.9.eb b/m/matplotlib/matplotlib-1.4.3-intel-2015b-Python-2.7.9.eb new file mode 100644 index 00000000..ff70015f --- /dev/null +++ b/m/matplotlib/matplotlib-1.4.3-intel-2015b-Python-2.7.9.eb @@ -0,0 +1,37 @@ +easyblock = "PythonPackage" + +name = 'matplotlib' +version = '1.4.3' + +homepage = 'http://matplotlib.org' +description = """matplotlib is a python 2D plotting library which produces publication quality figures in a variety of + hardcopy formats and interactive environments across platforms. matplotlib can be used in python scripts, the python + and ipython shell, web application servers, and six graphical user interface toolkits.""" + +toolchain = {'name': 'intel', 'version': '2015b'} + +source_urls = [SOURCEFORGE_SOURCE] +sources = [SOURCELOWER_TAR_GZ] + +patches = [('matplotlib-%(version)s_Qhull-intel-fix.patch')] + +python = "Python" +pythonversion = '2.7.9' +pyshortver = ".".join(pythonversion.split(".")[:-1]) + +versionsuffix = "-%s-%s" % (python, pythonversion) + +dependencies = [ + (python, pythonversion), + ('freetype', '2.5.5'), + ('libpng', '1.6.16'), +] + +pyprefix = 'lib/python%s/site-packages' % pyshortver +eggname = 'matplotlib-%%(version)s-py%s-linux-x86_64.egg' % pyshortver +sanity_check_paths = { + 'files': [], + 'dirs': [('%s/%%(name)s' % pyprefix, '%s/%s' % (pyprefix, eggname))], +} + +moduleclass = 'vis' diff --git a/m/motif/motif-2.3.4-foss-2015g-libX11-1.6.2.eb b/m/motif/motif-2.3.4-foss-2015g-libX11-1.6.2.eb new file mode 100644 index 00000000..d683040d --- /dev/null +++ b/m/motif/motif-2.3.4-foss-2015g-libX11-1.6.2.eb @@ -0,0 +1,49 @@ +easyblock = 'ConfigureMake' + +name = 'motif' +version = '2.3.4' + +homepage = 'http://motif.ics.com/' +description = """Motif refers to both a graphical user interface (GUI) specification and the widget toolkit for building + applications that follow that specification under the X Window System on Unix and other POSIX-compliant systems. + It was the standard toolkit for the Common Desktop Environment and thus for Unix.""" + +toolchain = {'name': 'foss', 'version': '2015g'} +# use -O1 to dance around icc segfaulting +toolchainopts = {'lowopt': True} + +sources = ['%(name)s-%(version)s-src.tgz'] +source_urls = [SOURCEFORGE_SOURCE] + +libx11ver = '1.6.2' +versionsuffix = '-libX11-%s' % libx11ver +dependencies = [ + ('libXt', '1.1.4', versionsuffix), + ('libXau', '1.0.8'), + ('libX11', libx11ver, '-Python-2.7.9'), + ('libXext', '1.3.3'), + ('libXdmcp', '1.1.2'), + ('libpng', '1.6.12'), + ('xbitmaps', '1.1.1'), + ('freetype', '2.5.3'), + ('libjpeg-turbo', '1.4.0'), + ('bzip2', '1.0.6'), +] +builddependencies = [ + ('Autotools', '20150215', '', ('GNU', '4.9.3-2.25')), + ('flex', '2.5.39'), + ('Bison', '3.0.2'), + ('util-linux', '2.26.1'), +] + +preconfigopts = "./autogen.sh && " + +# makefile is not parallel safe +parallel = 1 + +sanity_check_paths = { + 'files': ['lib/libMrm.a', 'lib/libUil.a', 'lib/libXm.a', 'bin/mwm', 'bin/uil', 'bin/xmbind'], + 'dirs': ['include/Mrm', 'include/uil', 'include/X11', 'include/Xm'], +} + +moduleclass = 'vis' diff --git a/m/motif/motif-2.3.4-intel-2015b-libX11-1.6.2.eb b/m/motif/motif-2.3.4-intel-2015b-libX11-1.6.2.eb new file mode 100644 index 00000000..c376cda4 --- /dev/null +++ b/m/motif/motif-2.3.4-intel-2015b-libX11-1.6.2.eb @@ -0,0 +1,49 @@ +easyblock = 'ConfigureMake' + +name = 'motif' +version = '2.3.4' + +homepage = 'http://motif.ics.com/' +description = """Motif refers to both a graphical user interface (GUI) specification and the widget toolkit for building + applications that follow that specification under the X Window System on Unix and other POSIX-compliant systems. + It was the standard toolkit for the Common Desktop Environment and thus for Unix.""" + +toolchain = {'name': 'intel', 'version': '2015b'} +# use -O1 to dance around icc segfaulting +toolchainopts = {'lowopt': True} + +sources = ['%(name)s-%(version)s-src.tgz'] +source_urls = [SOURCEFORGE_SOURCE] + +libx11ver = '1.6.2' +versionsuffix = '-libX11-%s' % libx11ver +dependencies = [ + ('libXt', '1.1.4', versionsuffix), + ('libXau', '1.0.8'), + ('libX11', libx11ver, '-Python-2.7.9'), + ('libXext', '1.3.3'), + ('libXdmcp', '1.1.2'), + ('libpng', '1.6.12'), + ('xbitmaps', '1.1.1'), + ('freetype', '2.5.3'), + ('libjpeg-turbo', '1.4.0'), + ('bzip2', '1.0.6'), +] +builddependencies = [ + ('Autotools', '20150215', '', ('GNU', '5.1.0-2.25')), + ('flex', '2.5.39'), + ('Bison', '3.0.2'), + ('util-linux', '2.26.1', '', True), +] + +preconfigopts = "./autogen.sh && " + +# makefile is not parallel safe +parallel = 1 + +sanity_check_paths = { + 'files': ['lib/libMrm.a', 'lib/libUil.a', 'lib/libXm.a', 'bin/mwm', 'bin/uil', 'bin/xmbind'], + 'dirs': ['include/Mrm', 'include/uil', 'include/X11', 'include/Xm'], +} + +moduleclass = 'vis' diff --git a/m/mutil/mutil-1.822.3-intel-2016a.eb b/m/mutil/mutil-1.822.3-intel-2016a.eb new file mode 100644 index 00000000..d474edee --- /dev/null +++ b/m/mutil/mutil-1.822.3-intel-2016a.eb @@ -0,0 +1,37 @@ +name = 'mutil' +coreutils_maj = '8' +coreutils_min = '22' +version = '1.%s%s.3' % (coreutils_maj, coreutils_min) + +homepage = 'http://people.nas.nasa.gov/~kolano/projects/mutil.html' +description = """Mutil is a set of standard utilities that have been parallelized to maximize performance on +modern file systems. These currently include multi-threaded drop-in replacements for cp and md5sum from +GNU coreutils, which have achieved 10/30x rates on one/many nodes. +""" + +toolchain = {'name': 'intel', 'version': '2016a'} + +sources = [ + "coreutils-%s.%s.tar.xz" % (coreutils_maj, coreutils_min), # must be first + SOURCE_TGZ, +] +source_urls = [ + SOURCEFORGE_SOURCE, + 'http://ftpmirror.gnu.org/coreutils', +] + +dependencies = [ + ('gnutls', '3.3.21'), + ('libgpg-error', '1.21'), + ('libgcrypt', '1.6.5'), +] + +# needs 1.14 to work +builddependencies = [('Automake', '1.14')] + +sanity_check_paths = { + 'files': ['bin/mcp', 'bin/msum'], + 'dirs': ['man/man1'] +} + +moduleclass = 'tools' diff --git a/n/NAMD/NAMD-2.10b1-ictce-5.5.0-ibverbs.eb b/n/NAMD/NAMD-2.10b1-ictce-5.5.0-ibverbs.eb new file mode 100644 index 00000000..ca095349 --- /dev/null +++ b/n/NAMD/NAMD-2.10b1-ictce-5.5.0-ibverbs.eb @@ -0,0 +1,20 @@ +name = 'NAMD' +version = '2.10b1' +versionsuffix = '-ibverbs' + +homepage = 'http://www.ks.uiuc.edu/Research/namd/' +description = """NAMD is a parallel molecular dynamics code designed for high-performance simulation of large biomolecular systems.""" + +toolchain = {'name': 'ictce', 'version': '5.5.0'} +toolchainopts = {'opt': True, 'pic': True} + +sources = ['NAMD_%(version)s_Source.tar.gz'] + +dependencies = [ + ('Tcl', '8.5.16'), + ('FFTW', '3.3.4'), +] + +charm_arch = "net-linux-x86_64 ibverbs" + +moduleclass = 'chem' diff --git a/n/NAMD/NAMD-2.10b1-ictce-5.5.0-mpi.eb b/n/NAMD/NAMD-2.10b1-ictce-5.5.0-mpi.eb new file mode 100644 index 00000000..8c61d5ae --- /dev/null +++ b/n/NAMD/NAMD-2.10b1-ictce-5.5.0-mpi.eb @@ -0,0 +1,20 @@ +name = 'NAMD' +version = '2.10b1' +versionsuffix = '-mpi' + +homepage = 'http://www.ks.uiuc.edu/Research/namd/' +description = """NAMD is a parallel molecular dynamics code designed for high-performance simulation of large biomolecular systems.""" + +toolchain = {'name': 'ictce', 'version': '5.5.0'} +toolchainopts = {'opt': True, 'pic': True, 'usempi': True} + +sources = ['NAMD_%(version)s_Source.tar.gz'] + +dependencies = [ + ('Tcl', '8.5.16'), + ('FFTW', '3.3.4'), +] + +charm_arch = 'mpi-linux-x86_64' + +moduleclass = 'chem' diff --git a/n/NAMD/NAMD-2.9-gmvapich2-1.7.12-ibverbs.eb b/n/NAMD/NAMD-2.9-gmvapich2-1.7.12-ibverbs.eb new file mode 100644 index 00000000..e2998dd3 --- /dev/null +++ b/n/NAMD/NAMD-2.9-gmvapich2-1.7.12-ibverbs.eb @@ -0,0 +1,20 @@ +name = 'NAMD' +version = '2.9' +versionsuffix = '-ibverbs' + +homepage = 'http://www.ks.uiuc.edu/Research/namd/' +description = """NAMD is a parallel molecular dynamics code designed for high-performance simulation of large biomolecular systems.""" + +toolchain = {'name': 'gmvapich2', 'version': '1.7.12'} +toolchainopts = {'opt': True, 'pic': True} + +sources = ['NAMD_%(version)s_Source.tar.gz'] + +dependencies = [ + ('Tcl', '8.5.12'), + ('FFTW', '3.3.4'), +] + +charm_arch = "net-linux-x86_64 ibverbs" + +moduleclass = 'chem' diff --git a/n/NAMD/NAMD-2.9-gmvolf-1.7.12-ibverbs.eb b/n/NAMD/NAMD-2.9-gmvolf-1.7.12-ibverbs.eb new file mode 100644 index 00000000..9434c5a6 --- /dev/null +++ b/n/NAMD/NAMD-2.9-gmvolf-1.7.12-ibverbs.eb @@ -0,0 +1,19 @@ +name = 'NAMD' +version = '2.9' +versionsuffix = '-ibverbs' + +homepage = 'http://www.ks.uiuc.edu/Research/namd/' +description = """NAMD is a parallel molecular dynamics code designed for high-performance simulation of large biomolecular systems.""" + +toolchain = {'name': 'gmvolf', 'version': '1.7.12'} +toolchainopts = {'opt': True, 'pic': True} + +sources = ['NAMD_%(version)s_Source.tar.gz'] + +dependencies = [ + ('Tcl', '8.5.12'), +] + +charm_arch = "net-linux-x86_64 ibverbs" + +moduleclass = 'chem' diff --git a/n/NAMD/NAMD-2.9-goolf-1.4.10-ibverbs.eb b/n/NAMD/NAMD-2.9-goolf-1.4.10-ibverbs.eb new file mode 100644 index 00000000..1bbb708c --- /dev/null +++ b/n/NAMD/NAMD-2.9-goolf-1.4.10-ibverbs.eb @@ -0,0 +1,19 @@ +name = 'NAMD' +version = '2.9' +versionsuffix = '-ibverbs' + +homepage = 'http://www.ks.uiuc.edu/Research/namd/' +description = """NAMD is a parallel molecular dynamics code designed for high-performance simulation of large biomolecular systems.""" + +toolchain = {'name': 'goolf', 'version': '1.4.10'} +toolchainopts = {'opt': True, 'pic': True} + +sources = ['NAMD_%(version)s_Source.tar.gz'] + +dependencies = [ + ('Tcl', '8.5.12'), +] + +charm_arch = "net-linux-x86_64 ibverbs" + +moduleclass = 'chem' diff --git a/n/NAMD/NAMD-2.9-ictce-5.5.0-ibverbs.eb b/n/NAMD/NAMD-2.9-ictce-5.5.0-ibverbs.eb new file mode 100644 index 00000000..b18bbca8 --- /dev/null +++ b/n/NAMD/NAMD-2.9-ictce-5.5.0-ibverbs.eb @@ -0,0 +1,20 @@ +name = 'NAMD' +version = '2.9' +versionsuffix = '-ibverbs' + +homepage = 'http://www.ks.uiuc.edu/Research/namd/' +description = """NAMD is a parallel molecular dynamics code designed for high-performance simulation of large biomolecular systems.""" + +toolchain = {'name': 'ictce', 'version': '5.5.0'} +toolchainopts = {'opt': True, 'pic': True} + +sources = ['NAMD_%(version)s_Source.tar.gz'] + +dependencies = [ + ('Tcl', '8.5.12'), + ('FFTW', '3.3.4'), +] + +charm_arch = "net-linux-x86_64 ibverbs" + +moduleclass = 'chem' diff --git a/n/NAMD/NAMD-2.9-ictce-5.5.0-mpi.eb b/n/NAMD/NAMD-2.9-ictce-5.5.0-mpi.eb new file mode 100644 index 00000000..2fbdf055 --- /dev/null +++ b/n/NAMD/NAMD-2.9-ictce-5.5.0-mpi.eb @@ -0,0 +1,20 @@ +name = 'NAMD' +version = '2.9' +versionsuffix = '-mpi' + +homepage = 'http://www.ks.uiuc.edu/Research/namd/' +description = """NAMD is a parallel molecular dynamics code designed for high-performance simulation of large biomolecular systems.""" + +toolchain = {'name': 'ictce', 'version': '5.5.0'} +toolchainopts = {'opt': True, 'pic': True, 'usempi': True} + +sources = ['NAMD_%(version)s_Source.tar.gz'] + +dependencies = [ + ('Tcl', '8.5.12'), + ('FFTW', '3.3.4'), +] + +charm_arch = 'mpi-linux-x86_64' + +moduleclass = 'chem' diff --git a/n/NASM/NASM-2.11.05-intel-2015b.eb b/n/NASM/NASM-2.11.05-intel-2015b.eb new file mode 100644 index 00000000..9b6c4e58 --- /dev/null +++ b/n/NASM/NASM-2.11.05-intel-2015b.eb @@ -0,0 +1,56 @@ +# Built with EasyBuild version 2.1.1 on 2015-10-02_23-08-03 +## +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# +# Copyright:: Copyright 2012-2014 Uni.Lu/LCSB, NTUA +# Authors:: Fotis Georgatos +# 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-90.html +## +easyblock = 'ConfigureMake' + +name = 'NASM' +version = '2.11.05' + +homepage = 'http://www.nasm.us/' +description = """NASM: General-purpose x86 assembler""" + +sources = [SOURCELOWER_TAR_BZ2] +source_urls = ['http://www.nasm.us/pub/nasm/releasebuilds/%(version)s'] + +toolchain = {'name': 'intel', 'version': '2015b'} + +sanity_check_paths = { + 'files': ['bin/nasm'], + 'dirs': [], +} + +moduleclass = 'lang' + +# Build statistics +buildstats = [{ + "easybuild-framework_version": "2.1.1", + "easybuild-easyblocks_version": "2.1.1", + "timestamp": 1443820083, + "build_time": 29.41, + "install_size": 2094150, + "command_line": ['--buildpath=/easybuild/build', '--installpath=/apps', '--installpath-modules=/apps/modules', '--installpath-software=/apps', '--module-naming-scheme=IT4IModuleNamingScheme', '--repositorypath=/easybuild/file-repository', '--robot=/easybuild/easyconfigs-salomon/easybuild/easyconfigs', '--robot-paths=/easybuild/easyconfigs-salomon/easybuild/easyconfigs', '--sourcepath=/easybuild/sources', '--try-toolchain="[\'intel\', \'2015b\']"', 'OpenCV-2.4.9-intel-2014.06.eb'], + "modules_tool": ('EnvironmentModulesC', '/usr/bin/modulecmd', '3.2.10'), + "core_count": 28, + "cpu_model": "Intel(R) Xeon(R) CPU E5-2695 v3 @ 2.30GHz", + "cpu_speed": 2299.798, + "cpu_vendor": "Intel", + "gcc_version": "Using built-in specs.; COLLECT_GCC=gcc; COLLECT_LTO_WRAPPER=/apps/all/GCC/5.1.0-binutils-2.25/libexec/gcc/x86_64-unknown-linux-gnu/5.1.0/lto-wrapper; Target: x86_64-unknown-linux-gnu; Configured with: ../configure --enable-languages=c,c++,fortran --enable-lto --enable-checking=release --disable-multilib --enable-shared=yes --enable-static=yes --enable-threads=posix --enable-gold=default --enable-plugins --enable-ld --with-plugin-ld=ld.gold --prefix=/apps/all/GCC/5.1.0-binutils-2.25 --with-local-prefix=/apps/all/GCC/5.1.0-binutils-2.25 --enable-bootstrap --with-isl=/easybuild/build/GCC/5.1.0/dummy--binutils-2.25/gcc-5.1.0/stage2_stuff; Thread model: posix; gcc version 5.1.0 (GCC) ; ", + "glibc_version": "2.12", + "hostname": "login1", + "os_name": "centos", + "os_type": "Linux", + "os_version": "6.6", + "platform_name": "x86_64-unknown-linux", + "python_version": "2.6.6 (r266:84292, Jan 22 2014, 09:42:36) ; [GCC 4.4.7 20120313 (Red Hat 4.4.7-4)]", + "system_gcc_path": "/apps/all/GCC/5.1.0-binutils-2.25/bin/gcc", + "system_python_path": "/usr/bin/python", +}] diff --git a/n/NASM/NASM-2.11.08-intel-2017.00.eb b/n/NASM/NASM-2.11.08-intel-2017.00.eb new file mode 100644 index 00000000..e251591d --- /dev/null +++ b/n/NASM/NASM-2.11.08-intel-2017.00.eb @@ -0,0 +1,31 @@ +## +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# +# Copyright:: Copyright 2012-2014 Uni.Lu/LCSB, NTUA +# Authors:: Fotis Georgatos +# 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-90.html +## + +easyblock = 'ConfigureMake' + +name = 'NASM' +version = '2.11.08' + +homepage = 'http://www.nasm.us/' +description = """NASM: General-purpose x86 assembler""" + +toolchain = {'name': 'intel', 'version': '2017.00'} + +sources = [SOURCELOWER_TAR_BZ2] +source_urls = ['http://www.nasm.us/pub/nasm/releasebuilds/%(version)s'] + +sanity_check_paths = { + 'files': ['bin/nasm'], + 'dirs': [], +} + +moduleclass = 'lang' diff --git a/n/NFFT/NFFT-3.3.0-CrayGNU-2015.06.eb b/n/NFFT/NFFT-3.3.0-CrayGNU-2015.06.eb new file mode 100644 index 00000000..a33090c4 --- /dev/null +++ b/n/NFFT/NFFT-3.3.0-CrayGNU-2015.06.eb @@ -0,0 +1,25 @@ +easyblock = 'ConfigureMake' + +name = 'NFFT' +version = '3.3.0' + +homepage = 'https://www-user.tu-chemnitz.de/~potts/nfft/' +description = """The NFFT (nonequispaced fast Fourier transform or nonuniform fast Fourier transform) is a C subroutine + library for computing the nonequispaced discrete Fourier transform (NDFT) and its generalisations in one or more + dimensions, of arbitrary input size, and of complex data.""" + +toolchain = {'name': 'CrayGNU', 'version': '2015.06'} + +source_urls = ['https://www-user.tu-chemnitz.de/~potts/nfft/download/'] +sources = [SOURCELOWER_TAR_GZ] + +dependencies = [ + ('fftw/3.3.4.3', EXTERNAL_MODULE), +] + +sanity_check_paths = { + 'files': ['include/nfft3.h', 'include/nfft3mp.h', 'lib/libnfft3.a', 'lib/libnfft3.%s' % SHLIB_EXT], + 'dirs': ['lib/pkgconfig'], +} + +moduleclass = 'lib' diff --git a/n/NFFT/NFFT-3.3.0-CrayGNU-2015.11.eb b/n/NFFT/NFFT-3.3.0-CrayGNU-2015.11.eb new file mode 100644 index 00000000..c9ebfcb9 --- /dev/null +++ b/n/NFFT/NFFT-3.3.0-CrayGNU-2015.11.eb @@ -0,0 +1,25 @@ +easyblock = 'ConfigureMake' + +name = 'NFFT' +version = '3.3.0' + +homepage = 'https://www-user.tu-chemnitz.de/~potts/nfft/' +description = """The NFFT (nonequispaced fast Fourier transform or nonuniform fast Fourier transform) is a C subroutine + library for computing the nonequispaced discrete Fourier transform (NDFT) and its generalisations in one or more + dimensions, of arbitrary input size, and of complex data.""" + +toolchain = {'name': 'CrayGNU', 'version': '2015.11'} + +source_urls = ['https://www-user.tu-chemnitz.de/~potts/nfft/download/'] +sources = [SOURCELOWER_TAR_GZ] + +dependencies = [ + ('fftw/3.3.4.5', EXTERNAL_MODULE), +] + +sanity_check_paths = { + 'files': ['include/nfft3.h', 'include/nfft3mp.h', 'lib/libnfft3.a', 'lib/libnfft3.%s' % SHLIB_EXT], + 'dirs': ['lib/pkgconfig'], +} + +moduleclass = 'lib' diff --git a/n/NWChem/NWChem-6.5.revision26243-intel-2014b-2014-09-10-Python-2.7.8.eb b/n/NWChem/NWChem-6.5.revision26243-intel-2014b-2014-09-10-Python-2.7.8.eb new file mode 100644 index 00000000..9c1722ef --- /dev/null +++ b/n/NWChem/NWChem-6.5.revision26243-intel-2014b-2014-09-10-Python-2.7.8.eb @@ -0,0 +1,36 @@ +name = 'NWChem' +version = '6.5.revision26243' + +homepage = 'http://www.nwchem-sw.org' +description = """NWChem aims to provide its users with computational chemistry tools that are scalable both in + their ability to treat large scientific computational chemistry problems efficiently, and in their use of available + parallel computing resources from high-performance parallel supercomputers to conventional workstation clusters. + NWChem software can handle: biomolecules, nanostructures, and solid-state; from quantum to classical, and all + combinations; Gaussian basis functions or plane-waves; scaling from one to thousands of processors; properties + and relativity.""" + +toolchain = {'name': 'intel', 'version': '2014b'} +toolchainopts = {'i8': True} + +source_urls = ['http://www.nwchem-sw.org/download.php?f='] +verdate = '2014-09-10' +sources = ['Nwchem-%s-src.%s.tar.bz2' % (version, verdate)] + +patches = [ + 'NWChem_fix-date.patch', + 'NWChem-%(version)s-parallelbuild.patch', +] + +python = 'Python' +pyver = '2.7.8' +versionsuffix = '-%s-%s-%s' % (verdate, python, pyver) +dependencies = [(python, pyver)] + +modules = 'all python' + +moduleclass = 'chem' + +# MS: zabrani pouziti scif0 na perrin uzlech +modextravars = { + 'ARMCI_OPENIB_DEVICE': 'mlx4_0' +} \ No newline at end of file diff --git a/n/ncurses/ncurses-5.9-GCC-5.1.0.patch b/n/ncurses/ncurses-5.9-GCC-5.1.0.patch new file mode 100644 index 00000000..7183bdd7 --- /dev/null +++ b/n/ncurses/ncurses-5.9-GCC-5.1.0.patch @@ -0,0 +1,31 @@ +diff --git a/ncurses/base/MKlib_gen.sh b/ncurses/base/MKlib_gen.sh +index 66ae295..e438d5d 100755 +--- a/ncurses/base/MKlib_gen.sh ++++ b/ncurses/base/MKlib_gen.sh +@@ -437,11 +437,22 @@ sed -n -f $ED1 \ + -e 's/gen_$//' \ + -e 's/ / /g' >>$TMP + ++cat >$ED1 < $ED2 ++cat $ED2 >$TMP ++ + $preprocessor $TMP 2>/dev/null \ +-| sed \ +- -e 's/ / /g' \ +- -e 's/^ //' \ +- -e 's/_Bool/NCURSES_BOOL/g' \ ++| sed -f $ED1 \ + | $AWK -f $AW2 \ + | sed -f $ED3 \ + | sed \ diff --git a/n/ncurses/ncurses-5.9-GNU-5.1.0-2.25.eb b/n/ncurses/ncurses-5.9-GNU-5.1.0-2.25.eb new file mode 100644 index 00000000..c6927980 --- /dev/null +++ b/n/ncurses/ncurses-5.9-GNU-5.1.0-2.25.eb @@ -0,0 +1,18 @@ +# Built with EasyBuild version 2.1.1 on 2015-06-29_19-47-32 +name = 'ncurses' +version = '5.9' + +homepage = 'http://www.gnu.org/software/ncurses/' +description = """The Ncurses (new curses) library is a free software emulation of curses in System V Release 4.0, + and more. It uses Terminfo format, supports pads and color and multiple highlights and forms characters and + function-key mapping, and has all the other SYSV-curses enhancements over BSD Curses.""" + +toolchain = {'name': 'GNU', 'version': '5.1.0-2.25'} +toolchainopts = {'optarch': True, 'pic': True} + +patches = ['ncurses-5.9-GCC-5.1.0.patch'] + +source_urls = [GNU_SOURCE] +sources = [SOURCE_TAR_GZ] + +moduleclass = 'devel' diff --git a/n/ncurses/ncurses-5.9-foss-2015g.eb b/n/ncurses/ncurses-5.9-foss-2015g.eb new file mode 100644 index 00000000..645b7627 --- /dev/null +++ b/n/ncurses/ncurses-5.9-foss-2015g.eb @@ -0,0 +1,15 @@ +name = 'ncurses' +version = '5.9' + +homepage = 'http://www.gnu.org/software/ncurses/' +description = """The Ncurses (new curses) library is a free software emulation of curses in System V Release 4.0, + and more. It uses Terminfo format, supports pads and color and multiple highlights and forms characters and + function-key mapping, and has all the other SYSV-curses enhancements over BSD Curses.""" + +toolchain = {'name': 'foss', 'version': '2015g'} +toolchainopts = {'optarch': True, 'pic': True} + +source_urls = [GNU_SOURCE] +sources = [SOURCE_TAR_GZ] + +moduleclass = 'devel' diff --git a/n/ncurses/ncurses-5.9-gompi-2015e.eb b/n/ncurses/ncurses-5.9-gompi-2015e.eb new file mode 100644 index 00000000..0b8587bc --- /dev/null +++ b/n/ncurses/ncurses-5.9-gompi-2015e.eb @@ -0,0 +1,15 @@ +name = 'ncurses' +version = '5.9' + +homepage = 'http://www.gnu.org/software/ncurses/' +description = """The Ncurses (new curses) library is a free software emulation of curses in System V Release 4.0, + and more. It uses Terminfo format, supports pads and color and multiple highlights and forms characters and + function-key mapping, and has all the other SYSV-curses enhancements over BSD Curses.""" + +toolchain = {'name': 'gompi', 'version': '2015e'} +toolchainopts = {'optarch': True, 'pic': True} + +source_urls = [GNU_SOURCE] +sources = [SOURCE_TAR_GZ] + +moduleclass = 'devel' diff --git a/n/ncurses/ncurses-5.9.eb b/n/ncurses/ncurses-5.9.eb new file mode 100644 index 00000000..ac6b4ba7 --- /dev/null +++ b/n/ncurses/ncurses-5.9.eb @@ -0,0 +1,38 @@ +easyblock = 'ConfigureMake' + +name = 'ncurses' +version = '5.9' + +homepage = 'http://www.gnu.org/software/ncurses/' +description = """The Ncurses (new curses) library is a free software emulation of curses in System V Release 4.0, + and more. It uses Terminfo format, supports pads and color and multiple highlights and forms characters and + function-key mapping, and has all the other SYSV-curses enhancements over BSD Curses.""" + +toolchain = {'name': 'dummy', 'version': 'dummy'} +toolchainopts = {'optarch': True, 'pic': True} + +source_urls = [GNU_SOURCE] +sources = [SOURCE_TAR_GZ] + +patches = ['ncurses-%(version)s_configure_darwin.patch'] + +configopts = [ + # default build + '--with-shared --enable-overwrite', + # the UTF-8 enabled version (ncursesw) + '--with-shared --enable-overwrite --enable-ext-colors --enable-widec --includedir=%(installdir)s/include/ncursesw/' +] + +buildopts = "CFLAGS='-fPIC'" + +libs = ["form", "menu", "ncurses", "panel"] +sanity_check_paths = { + 'files': ['bin/%s' % x for x in ["captoinfo", "clear", "infocmp", "infotocap", "ncurses5-config", + "reset", "tabs", "tic", "toe", "tput", "tset"]] + + ['lib/lib%s%s.a' % (x, y) for x in libs for y in ['', '_g', 'w', 'w_g']] + + ['lib/lib%s%s.so' % (x, y) for x in libs for y in ['', 'w']] + + ['lib/libncurses++%s.a' % x for x in ['', 'w']], + 'dirs': ['include', 'include/ncursesw'], +} + +moduleclass = 'devel' diff --git a/n/ncurses/ncurses-6.0-GCCcore-4.9.3.eb b/n/ncurses/ncurses-6.0-GCCcore-4.9.3.eb new file mode 100644 index 00000000..eab9da36 --- /dev/null +++ b/n/ncurses/ncurses-6.0-GCCcore-4.9.3.eb @@ -0,0 +1,36 @@ +easyblock = 'ConfigureMake' + +name = 'ncurses' +version = '6.0' + +homepage = 'http://www.gnu.org/software/ncurses/' +description = """The Ncurses (new curses) library is a free software emulation of curses in System V Release 4.0, + and more. It uses Terminfo format, supports pads and color and multiple highlights and forms characters and + function-key mapping, and has all the other SYSV-curses enhancements over BSD Curses.""" + +toolchain = {'name': 'GCCcore', 'version': '4.9.3'} +toolchainopts = {'optarch': True, 'pic': True} + +source_urls = [GNU_SOURCE] +sources = [SOURCE_TAR_GZ] + +builddependencies = [('binutils', '2.25')] + +configopts = [ + # default build + '--with-shared --enable-overwrite', + # the UTF-8 enabled version (ncursesw) + '--with-shared --enable-overwrite --enable-ext-colors --enable-widec --includedir=%(installdir)s/include/ncursesw/' +] + +libs = ["form", "menu", "ncurses", "panel"] +sanity_check_paths = { + 'files': ['bin/%s' % x for x in ["captoinfo", "clear", "infocmp", "infotocap", "ncurses%(version_major)s-config", + "reset", "tabs", "tic", "toe", "tput", "tset"]] + + ['lib/lib%s%s.a' % (x, y) for x in libs for y in ['', '_g', 'w', 'w_g']] + + ['lib/lib%s%s.%s' % (x, y, SHLIB_EXT) for x in libs for y in ['', 'w']] + + ['lib/libncurses++%s.a' % x for x in ['', 'w']], + 'dirs': ['include', 'include/ncursesw'], +} + +moduleclass = 'devel' diff --git a/n/ncurses/ncurses-6.0-GNU-4.9.3-2.25.eb b/n/ncurses/ncurses-6.0-GNU-4.9.3-2.25.eb new file mode 100644 index 00000000..4012f0e6 --- /dev/null +++ b/n/ncurses/ncurses-6.0-GNU-4.9.3-2.25.eb @@ -0,0 +1,34 @@ +easyblock = 'ConfigureMake' + +name = 'ncurses' +version = '6.0' + +homepage = 'http://www.gnu.org/software/ncurses/' +description = """The Ncurses (new curses) library is a free software emulation of curses in System V Release 4.0, + and more. It uses Terminfo format, supports pads and color and multiple highlights and forms characters and + function-key mapping, and has all the other SYSV-curses enhancements over BSD Curses.""" + +toolchain = {'name': 'GNU', 'version': '4.9.3-2.25'} +toolchainopts = {'optarch': True, 'pic': True} + +source_urls = [GNU_SOURCE] +sources = [SOURCE_TAR_GZ] + +configopts = [ + # default build + '--with-shared --enable-overwrite', + # the UTF-8 enabled version (ncursesw) + '--with-shared --enable-overwrite --enable-ext-colors --enable-widec --includedir=%(installdir)s/include/ncursesw/' +] + +libs = ["form", "menu", "ncurses", "panel"] +sanity_check_paths = { + 'files': ['bin/%s' % x for x in ["captoinfo", "clear", "infocmp", "infotocap", "ncurses%(version_major)s-config", + "reset", "tabs", "tic", "toe", "tput", "tset"]] + + ['lib/lib%s%s.a' % (x, y) for x in libs for y in ['', '_g', 'w', 'w_g']] + + ['lib/lib%s%s.so' % (x, y) for x in libs for y in ['', 'w']] + + ['lib/libncurses++%s.a' % x for x in ['', 'w']], + 'dirs': ['include', 'include/ncursesw'], +} + +moduleclass = 'devel' diff --git a/n/ncurses/ncurses-6.0-foss-2016a.eb b/n/ncurses/ncurses-6.0-foss-2016a.eb new file mode 100644 index 00000000..6029357e --- /dev/null +++ b/n/ncurses/ncurses-6.0-foss-2016a.eb @@ -0,0 +1,34 @@ +easyblock = 'ConfigureMake' + +name = 'ncurses' +version = '6.0' + +homepage = 'http://www.gnu.org/software/ncurses/' +description = """The Ncurses (new curses) library is a free software emulation of curses in System V Release 4.0, + and more. It uses Terminfo format, supports pads and color and multiple highlights and forms characters and + function-key mapping, and has all the other SYSV-curses enhancements over BSD Curses.""" + +toolchain = {'name': 'foss', 'version': '2016a'} +toolchainopts = {'optarch': True, 'pic': True} + +source_urls = [GNU_SOURCE] +sources = [SOURCE_TAR_GZ] + +configopts = [ + # default build + '--with-shared --enable-overwrite', + # the UTF-8 enabled version (ncursesw) + '--with-shared --enable-overwrite --enable-ext-colors --enable-widec --includedir=%(installdir)s/include/ncursesw/' +] + +libs = ["form", "menu", "ncurses", "panel"] +sanity_check_paths = { + 'files': ['bin/%s' % x for x in ["captoinfo", "clear", "infocmp", "infotocap", "ncurses%(version_major)s-config", + "reset", "tabs", "tic", "toe", "tput", "tset"]] + + ['lib/lib%s%s.a' % (x, y) for x in libs for y in ['', '_g', 'w', 'w_g']] + + ['lib/lib%s%s.so' % (x, y) for x in libs for y in ['', 'w']] + + ['lib/libncurses++%s.a' % x for x in ['', 'w']], + 'dirs': ['include', 'include/ncursesw'], +} + +moduleclass = 'devel' diff --git a/n/ncurses/ncurses-6.0-foss-2017a.eb b/n/ncurses/ncurses-6.0-foss-2017a.eb new file mode 100644 index 00000000..272d18fb --- /dev/null +++ b/n/ncurses/ncurses-6.0-foss-2017a.eb @@ -0,0 +1,34 @@ +easyblock = 'ConfigureMake' + +name = 'ncurses' +version = '6.0' + +homepage = 'http://www.gnu.org/software/ncurses/' +description = """The Ncurses (new curses) library is a free software emulation of curses in System V Release 4.0, + and more. It uses Terminfo format, supports pads and color and multiple highlights and forms characters and + function-key mapping, and has all the other SYSV-curses enhancements over BSD Curses.""" + +toolchain = {'name': 'foss', 'version': '2017a'} +toolchainopts = {'optarch': True, 'pic': True} + +source_urls = [GNU_SOURCE] +sources = [SOURCE_TAR_GZ] + +configopts = [ + # default build + '--with-shared --enable-overwrite', + # the UTF-8 enabled version (ncursesw) + '--with-shared --enable-overwrite --enable-ext-colors --enable-widec --includedir=%(installdir)s/include/ncursesw/' +] + +libs = ["form", "menu", "ncurses", "panel"] +sanity_check_paths = { + 'files': ['bin/%s' % x for x in ["captoinfo", "clear", "infocmp", "infotocap", "ncurses%(version_major)s-config", + "reset", "tabs", "tic", "toe", "tput", "tset"]] + + ['lib/lib%s%s.a' % (x, y) for x in libs for y in ['', '_g', 'w', 'w_g']] + + ['lib/lib%s%s.so' % (x, y) for x in libs for y in ['', 'w']] + + ['lib/libncurses++%s.a' % x for x in ['', 'w']], + 'dirs': ['include', 'include/ncursesw'], +} + +moduleclass = 'devel' diff --git a/n/ncurses/ncurses-6.0-intel-2016.02-GCC-4.9.eb b/n/ncurses/ncurses-6.0-intel-2016.02-GCC-4.9.eb new file mode 100644 index 00000000..7c1c8c34 --- /dev/null +++ b/n/ncurses/ncurses-6.0-intel-2016.02-GCC-4.9.eb @@ -0,0 +1,34 @@ +easyblock = 'ConfigureMake' + +name = 'ncurses' +version = '6.0' + +homepage = 'http://www.gnu.org/software/ncurses/' +description = """The Ncurses (new curses) library is a free software emulation of curses in System V Release 4.0, + and more. It uses Terminfo format, supports pads and color and multiple highlights and forms characters and + function-key mapping, and has all the other SYSV-curses enhancements over BSD Curses.""" + +toolchain = {'name': 'intel', 'version': '2016.02-GCC-4.9'} +toolchainopts = {'optarch': True, 'pic': True} + +source_urls = [GNU_SOURCE] +sources = [SOURCE_TAR_GZ] + +configopts = [ + # default build + '--with-shared --enable-overwrite', + # the UTF-8 enabled version (ncursesw) + '--with-shared --enable-overwrite --enable-ext-colors --enable-widec --includedir=%(installdir)s/include/ncursesw/' +] + +libs = ["form", "menu", "ncurses", "panel"] +sanity_check_paths = { + 'files': ['bin/%s' % x for x in ["captoinfo", "clear", "infocmp", "infotocap", "ncurses%(version_major)s-config", + "reset", "tabs", "tic", "toe", "tput", "tset"]] + + ['lib/lib%s%s.a' % (x, y) for x in libs for y in ['', '_g', 'w', 'w_g']] + + ['lib/lib%s%s.so' % (x, y) for x in libs for y in ['', 'w']] + + ['lib/libncurses++%s.a' % x for x in ['', 'w']], + 'dirs': ['include', 'include/ncursesw'], +} + +moduleclass = 'devel' diff --git a/n/ncurses/ncurses-6.0-intel-2016a.eb b/n/ncurses/ncurses-6.0-intel-2016a.eb new file mode 100644 index 00000000..852b0df6 --- /dev/null +++ b/n/ncurses/ncurses-6.0-intel-2016a.eb @@ -0,0 +1,34 @@ +easyblock = 'ConfigureMake' + +name = 'ncurses' +version = '6.0' + +homepage = 'http://www.gnu.org/software/ncurses/' +description = """The Ncurses (new curses) library is a free software emulation of curses in System V Release 4.0, + and more. It uses Terminfo format, supports pads and color and multiple highlights and forms characters and + function-key mapping, and has all the other SYSV-curses enhancements over BSD Curses.""" + +toolchain = {'name': 'intel', 'version': '2016a'} +toolchainopts = {'optarch': True, 'pic': True} + +source_urls = [GNU_SOURCE] +sources = [SOURCE_TAR_GZ] + +configopts = [ + # default build + '--with-shared --enable-overwrite', + # the UTF-8 enabled version (ncursesw) + '--with-shared --enable-overwrite --enable-ext-colors --enable-widec --includedir=%(installdir)s/include/ncursesw/' +] + +libs = ["form", "menu", "ncurses", "panel"] +sanity_check_paths = { + 'files': ['bin/%s' % x for x in ["captoinfo", "clear", "infocmp", "infotocap", "ncurses%(version_major)s-config", + "reset", "tabs", "tic", "toe", "tput", "tset"]] + + ['lib/lib%s%s.a' % (x, y) for x in libs for y in ['', '_g', 'w', 'w_g']] + + ['lib/lib%s%s.so' % (x, y) for x in libs for y in ['', 'w']] + + ['lib/libncurses++%s.a' % x for x in ['', 'w']], + 'dirs': ['include', 'include/ncursesw'], +} + +moduleclass = 'devel' diff --git a/n/ncurses/ncurses-6.0-intel-2017.00.eb b/n/ncurses/ncurses-6.0-intel-2017.00.eb new file mode 100644 index 00000000..c63d5d9e --- /dev/null +++ b/n/ncurses/ncurses-6.0-intel-2017.00.eb @@ -0,0 +1,34 @@ +easyblock = 'ConfigureMake' + +name = 'ncurses' +version = '6.0' + +homepage = 'http://www.gnu.org/software/ncurses/' +description = """The Ncurses (new curses) library is a free software emulation of curses in System V Release 4.0, + and more. It uses Terminfo format, supports pads and color and multiple highlights and forms characters and + function-key mapping, and has all the other SYSV-curses enhancements over BSD Curses.""" + +toolchain = {'name': 'intel', 'version': '2017.00'} +toolchainopts = {'optarch': True, 'pic': True} + +source_urls = [GNU_SOURCE] +sources = [SOURCE_TAR_GZ] + +configopts = [ + # default build + '--with-shared --enable-overwrite', + # the UTF-8 enabled version (ncursesw) + '--with-shared --enable-overwrite --enable-ext-colors --enable-widec --includedir=%(installdir)s/include/ncursesw/' +] + +libs = ["form", "menu", "ncurses", "panel"] +sanity_check_paths = { + 'files': ['bin/%s' % x for x in ["captoinfo", "clear", "infocmp", "infotocap", "ncurses%(version_major)s-config", + "reset", "tabs", "tic", "toe", "tput", "tset"]] + + ['lib/lib%s%s.a' % (x, y) for x in libs for y in ['', '_g', 'w', 'w_g']] + + ['lib/lib%s%s.so' % (x, y) for x in libs for y in ['', 'w']] + + ['lib/libncurses++%s.a' % x for x in ['', 'w']], + 'dirs': ['include', 'include/ncursesw'], +} + +moduleclass = 'devel' diff --git a/n/ncurses/ncurses-6.0-intel-2017a.eb b/n/ncurses/ncurses-6.0-intel-2017a.eb new file mode 100644 index 00000000..de50180b --- /dev/null +++ b/n/ncurses/ncurses-6.0-intel-2017a.eb @@ -0,0 +1,34 @@ +easyblock = 'ConfigureMake' + +name = 'ncurses' +version = '6.0' + +homepage = 'http://www.gnu.org/software/ncurses/' +description = """The Ncurses (new curses) library is a free software emulation of curses in System V Release 4.0, + and more. It uses Terminfo format, supports pads and color and multiple highlights and forms characters and + function-key mapping, and has all the other SYSV-curses enhancements over BSD Curses.""" + +toolchain = {'name': 'intel', 'version': '2017a'} +toolchainopts = {'optarch': True, 'pic': True} + +source_urls = [GNU_SOURCE] +sources = [SOURCE_TAR_GZ] + +configopts = [ + # default build + '--with-shared --enable-overwrite', + # the UTF-8 enabled version (ncursesw) + '--with-shared --enable-overwrite --enable-ext-colors --enable-widec --includedir=%(installdir)s/include/ncursesw/' +] + +libs = ["form", "menu", "ncurses", "panel"] +sanity_check_paths = { + 'files': ['bin/%s' % x for x in ["captoinfo", "clear", "infocmp", "infotocap", "ncurses%(version_major)s-config", + "reset", "tabs", "tic", "toe", "tput", "tset"]] + + ['lib/lib%s%s.a' % (x, y) for x in libs for y in ['', '_g', 'w', 'w_g']] + + ['lib/lib%s%s.so' % (x, y) for x in libs for y in ['', 'w']] + + ['lib/libncurses++%s.a' % x for x in ['', 'w']], + 'dirs': ['include', 'include/ncursesw'], +} + +moduleclass = 'devel' diff --git a/n/ncurses/ncurses-6.0.eb b/n/ncurses/ncurses-6.0.eb new file mode 100644 index 00000000..51d2a6f5 --- /dev/null +++ b/n/ncurses/ncurses-6.0.eb @@ -0,0 +1,34 @@ +easyblock = 'ConfigureMake' + +name = 'ncurses' +version = '6.0' + +homepage = 'http://www.gnu.org/software/ncurses/' +description = """The Ncurses (new curses) library is a free software emulation of curses in System V Release 4.0, + and more. It uses Terminfo format, supports pads and color and multiple highlights and forms characters and + function-key mapping, and has all the other SYSV-curses enhancements over BSD Curses.""" + +toolchain = {'name': 'dummy', 'version': 'dummy'} +toolchainopts = {'optarch': True, 'pic': True} + +source_urls = [GNU_SOURCE] +sources = [SOURCE_TAR_GZ] + +configopts = [ + # default build + '--with-shared --enable-overwrite', + # the UTF-8 enabled version (ncursesw) + '--with-shared --enable-overwrite --enable-ext-colors --enable-widec --includedir=%(installdir)s/include/ncursesw/' +] + +libs = ["form", "menu", "ncurses", "panel"] +sanity_check_paths = { + 'files': ['bin/%s' % x for x in ["captoinfo", "clear", "infocmp", "infotocap", "ncurses%(version_major)s-config", + "reset", "tabs", "tic", "toe", "tput", "tset"]] + + ['lib/lib%s%s.a' % (x, y) for x in libs for y in ['', '_g', 'w', 'w_g']] + + ['lib/lib%s%s.%s' % (x, y, SHLIB_EXT) for x in libs for y in ['', 'w']] + + ['lib/libncurses++%s.a' % x for x in ['', 'w']], + 'dirs': ['include', 'include/ncursesw'], +} + +moduleclass = 'devel' diff --git a/n/ncurses/ncurses-6.1-intel-2017a.eb b/n/ncurses/ncurses-6.1-intel-2017a.eb new file mode 100644 index 00000000..0a9a36d9 --- /dev/null +++ b/n/ncurses/ncurses-6.1-intel-2017a.eb @@ -0,0 +1,36 @@ +easyblock = 'ConfigureMake' + +name = 'ncurses' +version = '6.1' + +homepage = 'http://www.gnu.org/software/ncurses/' +description = """The Ncurses (new curses) library is a free software emulation of curses in System V Release 4.0, + and more. It uses Terminfo format, supports pads and color and multiple highlights and forms characters and + function-key mapping, and has all the other SYSV-curses enhancements over BSD Curses.""" + +toolchain = {'name': 'intel', 'version': '2017a'} +toolchainopts = {'pic': True} + +source_urls = [GNU_SOURCE] +sources = [SOURCE_TAR_GZ] + +patches = ['ncurses-%(version)s_gcc-5.patch'] + +configopts = [ + # default build + '--with-shared --enable-overwrite', + # the UTF-8 enabled version (ncursesw) + '--with-shared --enable-overwrite --enable-ext-colors --enable-widec --includedir=%(installdir)s/include/ncursesw/' +] + +libs = ["form", "menu", "ncurses", "panel"] +sanity_check_paths = { + 'files': ['bin/%s' % x for x in ["captoinfo", "clear", "infocmp", "infotocap", "ncurses%(version_major)s-config", + "reset", "tabs", "tic", "toe", "tput", "tset"]] + + ['lib/lib%s%s.a' % (x, y) for x in libs for y in ['', '_g', 'w', 'w_g']] + + ['lib/lib%s%s.so' % (x, y) for x in libs for y in ['', 'w']] + + ['lib/libncurses++%s.a' % x for x in ['', 'w']], + 'dirs': ['include', 'include/ncursesw'], +} + +moduleclass = 'devel' diff --git a/n/netCDF-Fortran/netCDF-Fortran-4.2-ictce-6.1.5.eb b/n/netCDF-Fortran/netCDF-Fortran-4.2-ictce-6.1.5.eb new file mode 100644 index 00000000..87478cf8 --- /dev/null +++ b/n/netCDF-Fortran/netCDF-Fortran-4.2-ictce-6.1.5.eb @@ -0,0 +1,18 @@ +name = 'netCDF-Fortran' +version = '4.2' + +homepage = 'http://www.unidata.ucar.edu/software/netcdf/' +description = """NetCDF (network Common Data Form) is a set of software libraries + and machine-independent data formats that support the creation, access, and sharing of array-oriented + scientific data.""" + + +toolchain = {'name': 'ictce', 'version': '6.1.5'} +toolchainopts = {'pic': True} + +sources = [SOURCELOWER_TAR_GZ] +source_urls = ['http://www.unidata.ucar.edu/downloads/netcdf/ftp/'] + +dependencies = [('netCDF', '4.2.1.1')] + +moduleclass = 'data' diff --git a/n/netCDF/netCDF-4.1.3-goolf-1.4.10.eb b/n/netCDF/netCDF-4.1.3-goolf-1.4.10.eb new file mode 100644 index 00000000..6aa937d6 --- /dev/null +++ b/n/netCDF/netCDF-4.1.3-goolf-1.4.10.eb @@ -0,0 +1,19 @@ +name = 'netCDF' +version = '4.1.3' + +homepage = 'http://www.unidata.ucar.edu/software/netcdf/' +description = """NetCDF (network Common Data Form) is a set of software libraries +and machine-independent data formats that support the creation, access, and sharing of array-oriented +scientific data.""" +toolchain = {'name': 'goolf', 'version': '1.4.10'} +toolchainopts = {'pic': True} + +sources = [SOURCELOWER_TAR_GZ] +source_urls = [ + 'ftp://ftp.unidata.ucar.edu/pub/netcdf/', + 'ftp://ftp.unidata.ucar.edu/pub/netcdf/old', +] + +dependencies = [('HDF5', '1.8.7')] + +moduleclass = 'data' diff --git a/n/netCDF/netCDF-4.1.3-ictce-5.3.0.eb b/n/netCDF/netCDF-4.1.3-ictce-5.3.0.eb new file mode 100644 index 00000000..36ab674b --- /dev/null +++ b/n/netCDF/netCDF-4.1.3-ictce-5.3.0.eb @@ -0,0 +1,23 @@ +name = 'netCDF' +version = '4.1.3' + +homepage = 'http://www.unidata.ucar.edu/software/netcdf/' +description = """NetCDF (network Common Data Form) is a set of software libraries + and machine-independent data formats that support the creation, access, and sharing of array-oriented + scientific data.""" + +toolchain = {'name': 'ictce', 'version': '5.3.0'} +toolchainopts = {'pic': True} + +sources = [SOURCELOWER_TAR_GZ] +source_urls = [ + 'ftp://ftp.unidata.ucar.edu/pub/netcdf/', + 'ftp://ftp.unidata.ucar.edu/pub/netcdf/old', +] + +dependencies = [ + ('HDF5', '1.8.9'), + ('Doxygen', '1.8.1.1'), +] + +moduleclass = 'data' diff --git a/n/netCDF/netCDF-4.2-ictce-5.4.0.eb b/n/netCDF/netCDF-4.2-ictce-5.4.0.eb new file mode 100644 index 00000000..a0f0b6f1 --- /dev/null +++ b/n/netCDF/netCDF-4.2-ictce-5.4.0.eb @@ -0,0 +1,21 @@ +name = 'netCDF' +version = '4.2' + +homepage = 'http://www.unidata.ucar.edu/software/netcdf/' +description = """NetCDF (network Common Data Form) is a set of software libraries +and machine-independent data formats that support the creation, access, and sharing of array-oriented +scientific data.""" + +toolchain = {'name': 'ictce', 'version': '5.4.0'} +toolchainopts = {'pic': True} + +sources = [SOURCELOWER_TAR_GZ] +source_urls = ['http://www.unidata.ucar.edu/downloads/netcdf/ftp/'] + +configopts = ['--disable-doxygen'] + +dependencies = [ + ('HDF5', '1.8.9'), +] + +moduleclass = 'data' diff --git a/n/netCDF/netCDF-4.2-intel-2014b.eb b/n/netCDF/netCDF-4.2-intel-2014b.eb new file mode 100644 index 00000000..fc24bdb2 --- /dev/null +++ b/n/netCDF/netCDF-4.2-intel-2014b.eb @@ -0,0 +1,21 @@ +name = 'netCDF' +version = '4.2' + +homepage = 'http://www.unidata.ucar.edu/software/netcdf/' +description = """NetCDF (network Common Data Form) is a set of software libraries +and machine-independent data formats that support the creation, access, and sharing of array-oriented +scientific data.""" + +toolchain = {'name': 'intel', 'version': '2014b'} +toolchainopts = {'pic': True} + +sources = [SOURCELOWER_TAR_GZ] +source_urls = ['http://www.unidata.ucar.edu/downloads/netcdf/ftp/'] + +configopts = ['--disable-doxygen'] + +dependencies = [ + ('HDF5', '1.8.9'), +] + +moduleclass = 'data' diff --git a/n/netCDF/netCDF-4.2.1.1-ictce-5.4.0.eb b/n/netCDF/netCDF-4.2.1.1-ictce-5.4.0.eb new file mode 100644 index 00000000..49f253f6 --- /dev/null +++ b/n/netCDF/netCDF-4.2.1.1-ictce-5.4.0.eb @@ -0,0 +1,19 @@ +name = 'netCDF' +version = '4.2.1.1' + +homepage = 'http://www.unidata.ucar.edu/software/netcdf/' +description = """NetCDF (network Common Data Form) is a set of software libraries + and machine-independent data formats that support the creation, access, and sharing of array-oriented + scientific data.""" + +toolchain = {'name': 'ictce', 'version': '5.4.0'} +toolchainopts = {'pic': True} + +sources = [SOURCELOWER_TAR_GZ] +source_urls = ['http://www.unidata.ucar.edu/downloads/netcdf/ftp/'] + +dependencies = [('HDF5', '1.8.10', '-gpfs')] + +builddependencies = [('Doxygen', '1.8.3.1')] + +moduleclass = 'data' diff --git a/n/netCDF/netCDF-4.2.1.1-ictce-6.1.5.eb b/n/netCDF/netCDF-4.2.1.1-ictce-6.1.5.eb new file mode 100644 index 00000000..262ebc70 --- /dev/null +++ b/n/netCDF/netCDF-4.2.1.1-ictce-6.1.5.eb @@ -0,0 +1,19 @@ +name = 'netCDF' +version = '4.2.1.1' + +homepage = 'http://www.unidata.ucar.edu/software/netcdf/' +description = """NetCDF (network Common Data Form) is a set of software libraries + and machine-independent data formats that support the creation, access, and sharing of array-oriented + scientific data.""" + +toolchain = {'name': 'ictce', 'version': '6.1.5'} +toolchainopts = {'pic': True} + +sources = [SOURCELOWER_TAR_GZ] +source_urls = ['http://www.unidata.ucar.edu/downloads/netcdf/ftp/'] + +dependencies = [('HDF5', '1.8.10', '-gpfs')] + +builddependencies = [('Doxygen', '1.8.3.1')] + +moduleclass = 'data' diff --git a/n/netCDF/netCDF-4.3.2-intel-2015b.eb b/n/netCDF/netCDF-4.3.2-intel-2015b.eb new file mode 100644 index 00000000..52365b33 --- /dev/null +++ b/n/netCDF/netCDF-4.3.2-intel-2015b.eb @@ -0,0 +1,34 @@ +name = 'netCDF' +version = '4.3.2' + +homepage = 'http://www.unidata.ucar.edu/software/netcdf/' +description = """NetCDF (network Common Data Form) is a set of software libraries + and machine-independent data formats that support the creation, access, and sharing of array-oriented + scientific data.""" + +toolchain = {'name': 'intel', 'version': '2015b'} +toolchainopts = {'pic': True, 'usempi': True} + +sources = ['v%(version)s.tar.gz'] +source_urls = ['https://github.com/Unidata/netcdf-c/archive'] + +patches = [ + 'netCDF-4.3.2-with-HDF-1.8.13.patch', + 'netCDF-4.3.2-parallel-HDF.patch', +] + +dependencies = [('HDF5', '1.8.13')] + +builddependencies = [ + ('CMake', '3.4.1'), + ('Doxygen', '1.8.10'), + ('cURL', '7.43.0'), +] + +# make sure both static and shared libs are built +configopts = [ + "-DCURL_LIBRARY=$EBROOTCURL/lib/libcurl.%s -DCURL_INCLUDE_DIR=$EBROOTCURL/include -DBUILD_SHARED_LIBS=ON" % SHLIB_EXT, + "-DCURL_LIBRARY=$EBROOTCURL/lib/libcurl.%s -DCURL_INCLUDE_DIR=$EBROOTCURL/include -DBUILD_SHARED_LIBS=OFF" % SHLIB_EXT, +] + +moduleclass = 'data' diff --git a/n/netCDF/netCDF-4.3.3.1-intel-2017.00.eb b/n/netCDF/netCDF-4.3.3.1-intel-2017.00.eb new file mode 100644 index 00000000..1f64e9fa --- /dev/null +++ b/n/netCDF/netCDF-4.3.3.1-intel-2017.00.eb @@ -0,0 +1,34 @@ +name = 'netCDF' +version = '4.3.3.1' + +homepage = 'http://www.unidata.ucar.edu/software/netcdf/' +description = """NetCDF (network Common Data Form) is a set of software libraries + and machine-independent data formats that support the creation, access, and sharing of array-oriented + scientific data.""" + +toolchain = {'name': 'intel', 'version': '2017.00'} +toolchainopts = {'pic': True, 'usempi': True} + +sources = [SOURCELOWER_TAR_GZ] +source_urls = [ + 'ftp://ftp.unidata.ucar.edu/pub/netcdf/', + 'ftp://ftp.unidata.ucar.edu/pub/netcdf/old', +] + +dependencies = [ + ('HDF5', '1.8.16'), + ('cURL', '7.51.0'), +] + +builddependencies = [ + ('CMake', '3.5.2'), + ('Doxygen', '1.8.11'), +] + +# make sure both static and shared libs are built +configopts = [ + "-DBUILD_SHARED_LIBS=OFF ", + "-DBUILD_SHARED_LIBS=ON ", +] + +moduleclass = 'data' diff --git a/n/netCDF/netCDF-4.4.0-intel-2017.00.eb b/n/netCDF/netCDF-4.4.0-intel-2017.00.eb new file mode 100644 index 00000000..c6ef1c15 --- /dev/null +++ b/n/netCDF/netCDF-4.4.0-intel-2017.00.eb @@ -0,0 +1,34 @@ +name = 'netCDF' +version = '4.4.0' + +homepage = 'http://www.unidata.ucar.edu/software/netcdf/' +description = """NetCDF (network Common Data Form) is a set of software libraries + and machine-independent data formats that support the creation, access, and sharing of array-oriented + scientific data.""" + +toolchain = {'name': 'intel', 'version': '2017.00'} +toolchainopts = {'pic': True, 'usempi': True} + +sources = ['v%(version)s.tar.gz'] +source_urls = [ + 'https://github.com/Unidata/netcdf-c/archive/' +] + +dependencies = [ + ('HDF5', '1.8.16'), + ('cURL', '7.47.0'), + ('Szip', '2.1'), +] + +builddependencies = [ + ('CMake', '3.5.2'), + ('Doxygen', '1.8.10'), +] + +# make sure both static and shared libs are built +configopts = [ + "-DBUILD_SHARED_LIBS=OFF ", + "-DBUILD_SHARED_LIBS=ON ", +] + +moduleclass = 'data' diff --git a/n/netCDF/netCDF-4.4.1-intel-2017a.eb b/n/netCDF/netCDF-4.4.1-intel-2017a.eb new file mode 100644 index 00000000..af2e996e --- /dev/null +++ b/n/netCDF/netCDF-4.4.1-intel-2017a.eb @@ -0,0 +1,34 @@ +name = 'netCDF' +version = '4.4.1' + +homepage = 'http://www.unidata.ucar.edu/software/netcdf/' +description = """NetCDF (network Common Data Form) is a set of software libraries + and machine-independent data formats that support the creation, access, and sharing of array-oriented + scientific data.""" + +toolchain = {'name': 'intel', 'version': '2017a'} +toolchainopts = {'pic': True, 'usempi': True} + +sources = ['v%(version)s.tar.gz'] +source_urls = [ + 'https://github.com/Unidata/netcdf-c/archive/' +] + +dependencies = [ + ('HDF5', '1.8.17'), + ('cURL', '7.49.1'), + ('Szip', '2.1'), +] + +builddependencies = [ + ('CMake', '3.7.2'), + ('Doxygen', '1.8.11'), +] + +# make sure both static and shared libs are built +configopts = [ + "-DBUILD_SHARED_LIBS=OFF ", + "-DBUILD_SHARED_LIBS=ON ", +] + +moduleclass = 'data' diff --git a/n/networkx/networkx-1.11-foss-2016a-Python-2.7.11.eb b/n/networkx/networkx-1.11-foss-2016a-Python-2.7.11.eb new file mode 100644 index 00000000..8dde76eb --- /dev/null +++ b/n/networkx/networkx-1.11-foss-2016a-Python-2.7.11.eb @@ -0,0 +1,25 @@ +easyblock = 'PythonPackage' + +name = 'networkx' +version = '1.11' +versionsuffix = '-Python-%(pyver)s' + +homepage = 'https://pypi.python.org/pypi/networkx' +description = """NetworkX is a Python package for the creation, manipulation, and study of the structure, dynamics, + and functions of complex networks.""" + +toolchain = {'name': 'foss', 'version': '2016a'} + +source_urls = [PYPI_SOURCE] +sources = [SOURCE_TAR_GZ] + +dependencies = [ + ('Python', '2.7.11'), +] + +sanity_check_paths = { + 'files': [], + 'dirs': ['lib/python%(pyshortver)s/site-packages/'], +} + +moduleclass = 'tools' diff --git a/n/networkx/networkx-1.11-foss-2016a-Python-3.5.1.eb b/n/networkx/networkx-1.11-foss-2016a-Python-3.5.1.eb new file mode 100644 index 00000000..488dd6f6 --- /dev/null +++ b/n/networkx/networkx-1.11-foss-2016a-Python-3.5.1.eb @@ -0,0 +1,25 @@ +easyblock = 'PythonPackage' + +name = 'networkx' +version = '1.11' +versionsuffix = '-Python-%(pyver)s' + +homepage = 'https://pypi.python.org/pypi/networkx' +description = """NetworkX is a Python package for the creation, manipulation, and study of the structure, dynamics, + and functions of complex networks.""" + +toolchain = {'name': 'foss', 'version': '2016a'} + +source_urls = [PYPI_SOURCE] +sources = [SOURCE_TAR_GZ] + +dependencies = [ + ('Python', '3.5.1'), +] + +sanity_check_paths = { + 'files': [], + 'dirs': ['lib/python%(pyshortver)s/site-packages/'], +} + +moduleclass = 'tools' diff --git a/n/numactl/numactl-2.0.10-GNU-5.1.0-2.25.eb b/n/numactl/numactl-2.0.10-GNU-5.1.0-2.25.eb new file mode 100644 index 00000000..7f1c8eef --- /dev/null +++ b/n/numactl/numactl-2.0.10-GNU-5.1.0-2.25.eb @@ -0,0 +1,27 @@ +easyblock = 'ConfigureMake' + +name = 'numactl' +version = '2.0.10' + +checksums = ['682c38305b2596967881f3d77bc3fc9c'] + +homepage = 'http://oss.sgi.com/projects/libnuma/' +description = """The numactl program allows you to run your application program on specific cpu's and memory nodes. + It does this by supplying a NUMA memory policy to the operating system before running your program. + The libnuma library provides convenient ways for you to add NUMA memory policies into your own program.""" + +toolchain = {'name': 'GNU', 'version': '5.1.0-2.25'} + +source_urls = ['ftp://oss.sgi.com/www/projects/libnuma/download/'] +sources = [SOURCE_TAR_GZ] + +builddependencies = [('Autotools', '20150215')] + +preconfigopts = './autogen.sh && ' + +sanity_check_paths = { + 'files': ['bin/numactl', 'bin/numastat', 'lib/libnuma.so', 'lib/libnuma.a'], + 'dirs': ['share/man', 'include'] +} + +moduleclass = 'tools' diff --git a/n/numactl/numactl-2.0.11-GCC-6.2.0-2.27.eb b/n/numactl/numactl-2.0.11-GCC-6.2.0-2.27.eb new file mode 100644 index 00000000..ee3e78b9 --- /dev/null +++ b/n/numactl/numactl-2.0.11-GCC-6.2.0-2.27.eb @@ -0,0 +1,23 @@ +easyblock = 'ConfigureMake' + +name = 'numactl' +version = '2.0.11' + +homepage = 'http://oss.sgi.com/projects/libnuma/' +description = """The numactl program allows you to run your application program on specific cpu's and memory nodes. +It does this by supplying a NUMA memory policy to the operating system before running your program. +The libnuma library provides convenient ways for you to add NUMA memory policies into your own program.""" + +toolchain = {'name': 'GCC', 'version': '6.2.0-2.27'} + +source_urls = ['ftp://oss.sgi.com/www/projects/libnuma/download/'] +sources = [SOURCE_TAR_GZ] + +#checksums = ['d3bc88b7ddb9f06d60898f4816ae9127'] + +sanity_check_paths = { + 'files': ['bin/numactl', 'bin/numastat', 'lib/libnuma.%s' % SHLIB_EXT, 'lib/libnuma.a'], + 'dirs': ['share/man', 'include'] +} + +moduleclass = 'tools' diff --git a/n/numactl/numactl-2.0.11-GCC-6.3.0-2.27.eb b/n/numactl/numactl-2.0.11-GCC-6.3.0-2.27.eb new file mode 100644 index 00000000..ee922f33 --- /dev/null +++ b/n/numactl/numactl-2.0.11-GCC-6.3.0-2.27.eb @@ -0,0 +1,23 @@ +easyblock = 'ConfigureMake' + +name = 'numactl' +version = '2.0.11' + +homepage = 'http://oss.sgi.com/projects/libnuma/' +description = """The numactl program allows you to run your application program on specific cpu's and memory nodes. +It does this by supplying a NUMA memory policy to the operating system before running your program. +The libnuma library provides convenient ways for you to add NUMA memory policies into your own program.""" + +toolchain = {'name': 'GCC', 'version': '6.3.0-2.27'} + +source_urls = ['ftp://oss.sgi.com/www/projects/libnuma/download/'] +sources = [SOURCE_TAR_GZ] + +checksums = ['d3bc88b7ddb9f06d60898f4816ae9127'] + +sanity_check_paths = { + 'files': ['bin/numactl', 'bin/numastat', 'lib/libnuma.%s' % SHLIB_EXT, 'lib/libnuma.a'], + 'dirs': ['share/man', 'include'] +} + +moduleclass = 'tools' diff --git a/n/numactl/numactl-2.0.11-GCCcore-5.4.0.eb b/n/numactl/numactl-2.0.11-GCCcore-5.4.0.eb new file mode 100644 index 00000000..511456e5 --- /dev/null +++ b/n/numactl/numactl-2.0.11-GCCcore-5.4.0.eb @@ -0,0 +1,23 @@ +easyblock = 'ConfigureMake' + +name = 'numactl' +version = '2.0.11' + +homepage = 'http://oss.sgi.com/projects/libnuma/' +description = """The numactl program allows you to run your application program on specific cpu's and memory nodes. + It does this by supplying a NUMA memory policy to the operating system before running your program. + The libnuma library provides convenient ways for you to add NUMA memory policies into your own program.""" + +toolchain = {'name': 'GCCcore', 'version': '5.4.0'} + +source_urls = ['ftp://oss.sgi.com/www/projects/libnuma/download/'] +sources = [SOURCE_TAR_GZ] + +builddependencies = [('binutils', '2.26')] + +sanity_check_paths = { + 'files': ['bin/numactl', 'bin/numastat', 'lib/libnuma.%s' % SHLIB_EXT, 'lib/libnuma.a'], + 'dirs': ['share/man', 'include'] +} + +moduleclass = 'tools' diff --git a/n/numactl/numactl-2.0.9-GCC-4.4.7-system.eb b/n/numactl/numactl-2.0.9-GCC-4.4.7-system.eb new file mode 100644 index 00000000..5140a37a --- /dev/null +++ b/n/numactl/numactl-2.0.9-GCC-4.4.7-system.eb @@ -0,0 +1,23 @@ +easyblock = 'ConfigureMake' + +name = 'numactl' +version = '2.0.9' + + +homepage = 'http://oss.sgi.com/projects/libnuma/' +description = """The numactl program allows you to run your application program on specific cpu's and memory nodes. + It does this by supplying a NUMA memory policy to the operating system before running your program. + The libnuma library provides convenient ways for you to add NUMA memory policies into your own program.""" + +toolchain = {'name': 'GCC', 'version': '4.4.7-system'} + +sanity_check_paths = { + 'files': ['/usr/bin/numactl'], + 'dirs': ['/usr/share/doc/packages/numactl/'] +} + +# We are using system package, this easyconfig is just for not breaking +# toolchains system and module creation +skipsteps = ['source', 'patch', 'prepare','configure', 'build', 'test','install'] + +moduleclass = 'tools' diff --git a/n/numpy/numpy-1.8.2-intel-2015b-Python-2.7.9.eb b/n/numpy/numpy-1.8.2-intel-2015b-Python-2.7.9.eb new file mode 100644 index 00000000..086cac01 --- /dev/null +++ b/n/numpy/numpy-1.8.2-intel-2015b-Python-2.7.9.eb @@ -0,0 +1,26 @@ +name = 'numpy' +version = '1.8.2' + +homepage = 'http://www.numpy.org' +description = """NumPy is the fundamental package for scientific computing with Python. It contains among other things: + a powerful N-dimensional array object, sophisticated (broadcasting) functions, tools for integrating C/C++ and Fortran + code, useful linear algebra, Fourier transform, and random number capabilities. Besides its obvious scientific uses, + NumPy can also be used as an efficient multi-dimensional container of generic data. Arbitrary data-types can be + defined. This allows NumPy to seamlessly and speedily integrate with a wide variety of databases.""" + +toolchain = {'name': 'intel', 'version': '2015b'} + +source_urls = [SOURCEFORGE_SOURCE] +sources = [SOURCE_TAR_GZ] + +patches = ['numpy-1.8.1-mkl.patch'] + +python = 'Python' +pyver = '2.7.9' +versionsuffix = '-%s-%s' % (python, pyver) + +dependencies = [ + (python, pyver), +] + +moduleclass = 'math' diff --git a/n/numpy/numpy-1.9.1-intel-2015b-Python-2.7.9.eb b/n/numpy/numpy-1.9.1-intel-2015b-Python-2.7.9.eb new file mode 100644 index 00000000..586c60f9 --- /dev/null +++ b/n/numpy/numpy-1.9.1-intel-2015b-Python-2.7.9.eb @@ -0,0 +1,26 @@ +name = 'numpy' +version = '1.9.1' + +homepage = 'http://www.numpy.org' +description = """NumPy is the fundamental package for scientific computing with Python. It contains among other things: + a powerful N-dimensional array object, sophisticated (broadcasting) functions, tools for integrating C/C++ and Fortran + code, useful linear algebra, Fourier transform, and random number capabilities. Besides its obvious scientific uses, + NumPy can also be used as an efficient multi-dimensional container of generic data. Arbitrary data-types can be + defined. This allows NumPy to seamlessly and speedily integrate with a wide variety of databases.""" + +toolchain = {'name': 'intel', 'version': '2015b'} + +source_urls = [SOURCEFORGE_SOURCE] +sources = [SOURCE_TAR_GZ] + +patches = ['numpy-1.8.1-mkl.patch'] + +python = 'Python' +pyver = '2.7.9' +versionsuffix = '-%s-%s' % (python, pyver) + +dependencies = [ + (python, pyver), +] + +moduleclass = 'math' diff --git a/n/numpy/numpy-1.9.2-intel-2015b-Python-3.4.3.eb b/n/numpy/numpy-1.9.2-intel-2015b-Python-3.4.3.eb new file mode 100644 index 00000000..a4db0284 --- /dev/null +++ b/n/numpy/numpy-1.9.2-intel-2015b-Python-3.4.3.eb @@ -0,0 +1,27 @@ +# Built with EasyBuild version 2.1.1 on 2015-08-26_17-07-32 +name = 'numpy' +version = '1.9.2' + +homepage = 'http://www.numpy.org' +description = """NumPy is the fundamental package for scientific computing with Python. It contains among other things: + a powerful N-dimensional array object, sophisticated (broadcasting) functions, tools for integrating C/C++ and Fortran + code, useful linear algebra, Fourier transform, and random number capabilities. Besides its obvious scientific uses, + NumPy can also be used as an efficient multi-dimensional container of generic data. Arbitrary data-types can be + defined. This allows NumPy to seamlessly and speedily integrate with a wide variety of databases.""" + +toolchain = {'name': 'intel', 'version': '2015b'} + +source_urls = [SOURCEFORGE_SOURCE] +sources = [SOURCE_TAR_GZ] + +patches = ['numpy-1.8.0-mkl.patch'] + +python = 'Python' +pyver = '3.4.3' +versionsuffix = '-%s-%s' % (python, pyver) + +dependencies = [ + (python, pyver), +] + +moduleclass = 'math' diff --git a/n/numpy/numpy-1.9.2-intel-2016b-Python-2.7.12.eb b/n/numpy/numpy-1.9.2-intel-2016b-Python-2.7.12.eb new file mode 100644 index 00000000..b0f7a1aa --- /dev/null +++ b/n/numpy/numpy-1.9.2-intel-2016b-Python-2.7.12.eb @@ -0,0 +1,32 @@ +name = 'numpy' +version = '1.9.2' +versionsuffix = '-Python-%(pyver)s' + +homepage = 'http://www.numpy.org' +description = """NumPy is the fundamental package for scientific computing with Python. It contains among other things: + a powerful N-dimensional array object, sophisticated (broadcasting) functions, tools for integrating C/C++ and Fortran + code, useful linear algebra, Fourier transform, and random number capabilities. Besides its obvious scientific uses, + NumPy can also be used as an efficient multi-dimensional container of generic data. Arbitrary data-types can be + defined. This allows NumPy to seamlessly and speedily integrate with a wide variety of databases.""" + +toolchain = {'name': 'intel', 'version': '2016b'} + +source_urls = [SOURCEFORGE_SOURCE] +sources = [SOURCE_TAR_GZ] + +patches = ['numpy-1.8.0-mkl.patch'] + +dependencies = [ + ('Python', '2.7.12'), +] + +# need to use pip rather than regular 'setup.py install,' +# to ensure that this numpy wins over the one in the Python installation; +# using easy_install does not work... +use_pip = True + +# install as zipped egg to get a .pth file in lib/python*/site-packages; +# this enables shadowing of the numpy that is part of the Python installation +zipped_egg = True + +moduleclass = 'math' diff --git a/o/OBITools/OBITools-1.2.9-foss-2016a-Python-2.7.11.eb b/o/OBITools/OBITools-1.2.9-foss-2016a-Python-2.7.11.eb new file mode 100644 index 00000000..d30d6266 --- /dev/null +++ b/o/OBITools/OBITools-1.2.9-foss-2016a-Python-2.7.11.eb @@ -0,0 +1,34 @@ +easyblock = "PythonPackage" + +name = 'OBITools' +version = '1.2.9' +versionsuffix = '-Python-%(pyver)s' + +homepage = 'http://www.grenoble.prabi.fr/trac/OBITools' +description = """ The OBITools programs aims to help you to manipulate various data and sequence files in a convenient way using + the Unix command line interface. They follow the standard Unix interface for command line program, allowing to chain a set of + commands using the pipe mecanism. +""" + +toolchain = {'name': 'foss', 'version': '2016a'} + +source_urls = [PYPI_SOURCE] +sources = [SOURCE_TAR_GZ] + + +dependencies = [ + ('Python', '2.7.11'), + ('Cython', '0.24.1', versionsuffix), + ('wheel', '0.29.0', versionsuffix), + ('IPython', '5.0.0', versionsuffix), + ('Sphinx', '1.4.8', versionsuffix) +] + +options = {'modulename': 'obitools'} + +sanity_check_paths = { + 'files': ["bin/%s" % binfile for binfile in ['ali2consensus','ecotag','obiaddtaxids','obicount','obistat']], + 'dirs': ['bin','lib/python%(pyshortver)s/site-packages/obitools'], +} + +moduleclass = 'math' diff --git a/o/OPARI2/OPARI2-1.1.4-ictce-7.3.5.eb b/o/OPARI2/OPARI2-1.1.4-ictce-7.3.5.eb new file mode 100644 index 00000000..e5944eef --- /dev/null +++ b/o/OPARI2/OPARI2-1.1.4-ictce-7.3.5.eb @@ -0,0 +1,25 @@ +easyblock = 'ConfigureMake' + +name = "OPARI2" +version = "1.1.4" + +homepage = 'http://www.score-p.org' +description = """OPARI2, the successor of Forschungszentrum Juelich's OPARI, + is a source-to-source instrumentation tool for OpenMP and hybrid codes. + It surrounds OpenMP directives and runtime library calls with calls to + the POMP2 measurement interface.""" + +toolchain = {'name': 'ictce', 'version': '7.3.5'} + +# http://www.vi-hps.org/upload/packages/opari2/opari2-1.1.1.tar.gz +sources = [SOURCELOWER_TAR_GZ] +source_urls = ['http://www.vi-hps.org/upload/packages/opari2/'] + +configopts = "--with-compiler-suite=intel " + +sanity_check_paths = { + 'files': ["bin/opari2", "include/opari2/pomp2_lib.h"], + 'dirs': [], +} + +moduleclass = 'perf' diff --git a/o/OPARI2/OPARI2-1.1.4-intel-2015b.eb b/o/OPARI2/OPARI2-1.1.4-intel-2015b.eb new file mode 100644 index 00000000..4aeafc4f --- /dev/null +++ b/o/OPARI2/OPARI2-1.1.4-intel-2015b.eb @@ -0,0 +1,25 @@ +easyblock = 'ConfigureMake' + +name = "OPARI2" +version = "1.1.4" + +homepage = 'http://www.score-p.org' +description = """OPARI2, the successor of Forschungszentrum Juelich's OPARI, + is a source-to-source instrumentation tool for OpenMP and hybrid codes. + It surrounds OpenMP directives and runtime library calls with calls to + the POMP2 measurement interface.""" + +toolchain = {'name': 'intel', 'version': '2015b'} + +# http://www.vi-hps.org/upload/packages/opari2/opari2-1.1.1.tar.gz +sources = [SOURCELOWER_TAR_GZ] +source_urls = ['http://www.vi-hps.org/upload/packages/opari2/'] + +configopts = "--with-compiler-suite=intel " + +sanity_check_paths = { + 'files': ["bin/opari2", "include/opari2/pomp2_lib.h"], + 'dirs': [], +} + +moduleclass = 'perf' diff --git a/o/ORCA/ORCA-2_9_1-linux_x86-64.eb b/o/ORCA/ORCA-2_9_1-linux_x86-64.eb new file mode 100644 index 00000000..a85c46d3 --- /dev/null +++ b/o/ORCA/ORCA-2_9_1-linux_x86-64.eb @@ -0,0 +1,37 @@ +easyblock = "PackedBinary" + +name = "ORCA" +version = '2_9_1-linux_x86-64' + +homepage = 'http://www.thch.uni-bonn.de/tc/orca/' +description = """ORCA is a flexible, efficient and easy-to-use general purpose tool for quantum chemistry + with specific emphasis on spectroscopic properties of open-shell molecules. + It features a wide variety of standard quantum chemical methods ranging from semiempirical methods to DFT to single- + and multireference correlated ab initio methods. + It can also treat environmental and relativistic effects.""" + +toolchain = {'name': 'dummy', 'version': ''} + +sources = ['%%(namelower)s_%s_%s.tbz' % (version.split('-')[0], '-'.join(version.split('-')[1:]))] + +dependencies = [('OpenMPI', '1.4.5', '-no-OFED', ('GCC', '4.6.3'))] + +sanity_check_paths = { + 'files': ['orca_%s%s' % (x, y) for x in ['anoint', 'casscf', 'cis', 'cleanup', 'cpscf', + 'eprnmr', 'gtoint', 'mdci', 'mp2', 'mrci', 'pc', + 'rocis', 'scf', 'scfgrad', 'soc'] + for y in ["", "_mpi"]] + + ['orca_%s' % x for x in ['2mkl', 'asa', 'chelpg', 'ciprep', 'eca', 'ecplib', + 'euler', 'fci', 'fitpes', 'gstep', 'loc', 'mapspc', + 'md', 'mergefrag', 'ndoint', 'numfreq', 'plot', + 'pltvib', 'pop', 'rel', 'vib', 'vpot']] + + ['orca', 'otool_cosmo'], + 'dirs': [], +} + +modextravars = { + "SLURM_CPU_BIND" : "none", + "RSH_COMMAND" : "ssh -x", +} + +moduleclass = 'chem' diff --git a/o/ORCA/ORCA-3_0_0-linux_x86-64_openmpi_165.eb b/o/ORCA/ORCA-3_0_0-linux_x86-64_openmpi_165.eb new file mode 100644 index 00000000..685a061d --- /dev/null +++ b/o/ORCA/ORCA-3_0_0-linux_x86-64_openmpi_165.eb @@ -0,0 +1,39 @@ +easyblock = "PackedBinary" + +name = "ORCA" +openmpiversion = '1.6.5' +version = '3_0_0-linux_x86-64_openmpi_%s' % ''.join(openmpiversion.split('.')) + +homepage = 'http://www.thch.uni-bonn.de/tc/orca/' +description = """ORCA is a flexible, efficient and easy-to-use general purpose tool for quantum chemistry + with specific emphasis on spectroscopic properties of open-shell molecules. + It features a wide variety of standard quantum chemical methods ranging from semiempirical methods to DFT to single- + and multireference correlated ab initio methods. + It can also treat environmental and relativistic effects.""" + +toolchain = {'name': 'dummy', 'version': ''} + +sources = ['%%(namelower)s_%s_%s.tbz' % (version.split('-')[0], '-'.join(version.split('-')[1:]))] + +# ORCA 3.0.0 is compiled only against OpenMPI 1.6.5 for Linux +dependencies = [('OpenMPI', openmpiversion, '-GCC-4.7.2')] + +sanity_check_paths = { + 'files': ['orca_%s%s' % (x, y) for x in ['anoint', 'casscf', 'cis', 'cleanup', 'cpscf', + 'eprnmr', 'gtoint', 'mdci', 'mp2', 'mrci', 'pc', + 'rocis', 'scf', 'scfgrad', 'soc'] + for y in ["", "_mpi"]] + + ['orca_%s' % x for x in ['2mkl', 'asa', 'chelpg', 'ciprep', 'eca', 'ecplib', + 'euler', 'fci', 'fitpes', 'gstep', 'loc', 'mapspc', + 'md', 'mergefrag', 'ndoint', 'numfreq', 'plot', + 'pltvib', 'pop', 'rel', 'vib', 'vpot']] + + ['orca', 'otool_cosmo'], + 'dirs': [], +} + +modextravars = { + "SLURM_CPU_BIND" : "none", + "RSH_COMMAND" : "ssh -x", +} + +moduleclass = 'chem' diff --git a/o/ORCA/ORCA-3_0_2-linux_x86-64-OpenMPI-1.8.8-iccifort-2015.3.187-GNU-4.9.3-2.25.eb b/o/ORCA/ORCA-3_0_2-linux_x86-64-OpenMPI-1.8.8-iccifort-2015.3.187-GNU-4.9.3-2.25.eb new file mode 100644 index 00000000..7e48f06d --- /dev/null +++ b/o/ORCA/ORCA-3_0_2-linux_x86-64-OpenMPI-1.8.8-iccifort-2015.3.187-GNU-4.9.3-2.25.eb @@ -0,0 +1,34 @@ +easyblock = "PackedBinary" + +name = "ORCA" +version = '3_0_3-linux_x86-64' + +openmpiversion = '1.8.8' + +homepage = 'http://cec.mpg.de/forum/' +description = """ORCA is a flexible, efficient and easy-to-use general purpose tool for quantum chemistry + with specific emphasis on spectroscopic properties of open-shell molecules. + It features a wide variety of standard quantum chemical methods ranging from semiempirical methods to DFT to single- + and multireference correlated ab initio methods. + It can also treat environmental and relativistic effects.""" + +toolchain = {'name': 'dummy', 'version': ''} + +sources = ['%%(namelower)s_%s_%s.tbz' % (version.split('-')[0], '-'.join(version.split('-')[1:]))] + +dependencies = [('OpenMPI', openmpiversion, '-iccifort-2015.3.187-GNU-4.9.3-2.25')] + +sanity_check_paths = { + 'files': ['orca_%s%s' % (x, y) for x in ['anoint', 'casscf', 'cis', 'cleanup', 'cpscf', + 'eprnmr', 'gtoint', 'mdci', 'mp2', 'mrci', 'pc', + 'rocis', 'scf', 'scfgrad', 'soc'] + for y in ["", "_mpi"]] + + ['orca_%s' % x for x in ['2mkl', 'asa', 'chelpg', 'ciprep', 'eca', 'ecplib', + 'euler', 'fci', 'fitpes', 'gstep', 'loc', 'mapspc', + 'md', 'mergefrag', 'ndoint', 'numfreq', 'plot', + 'pltvib', 'pop', 'rel', 'vib', 'vpot']] + + ['orca', 'otool_cosmo'], + 'dirs': [], +} + +moduleclass = 'chem' diff --git a/o/ORCA/ORCA-3_0_2-linux_x86-64.eb b/o/ORCA/ORCA-3_0_2-linux_x86-64.eb new file mode 100644 index 00000000..7d277554 --- /dev/null +++ b/o/ORCA/ORCA-3_0_2-linux_x86-64.eb @@ -0,0 +1,38 @@ +easyblock = "PackedBinary" + +name = "ORCA" +version = '3_0_2-linux_x86-64' + +homepage = 'http://cec.mpg.de/forum/' +description = """ORCA is a flexible, efficient and easy-to-use general purpose tool for quantum chemistry + with specific emphasis on spectroscopic properties of open-shell molecules. + It features a wide variety of standard quantum chemical methods ranging from semiempirical methods to DFT to single- + and multireference correlated ab initio methods. + It can also treat environmental and relativistic effects.""" + +toolchain = {'name': 'dummy', 'version': ''} + +sources = ['%%(namelower)s_%s_%s.tbz' % (version.split('-')[0], '-'.join(version.split('-')[1:]))] + +# ORCA 3.0.2 is compiled only against OpenMPI 1.6.5 for Linux +dependencies = [('OpenMPI', '1.6.5', '-GCC-4.7.2')] + +sanity_check_paths = { + 'files': ['orca_%s%s' % (x, y) for x in ['anoint', 'casscf', 'cis', 'cleanup', 'cpscf', + 'eprnmr', 'gtoint', 'mdci', 'mp2', 'mrci', 'pc', + 'rocis', 'scf', 'scfgrad', 'soc'] + for y in ["", "_mpi"]] + + ['orca_%s' % x for x in ['2mkl', 'asa', 'chelpg', 'ciprep', 'eca', 'ecplib', + 'euler', 'fci', 'fitpes', 'gstep', 'loc', 'mapspc', + 'md', 'mergefrag', 'ndoint', 'numfreq', 'plot', + 'pltvib', 'pop', 'rel', 'vib', 'vpot']] + + ['orca', 'otool_cosmo'], + 'dirs': [], +} + +modextravars = { + "SLURM_CPU_BIND" : "none", + "RSH_COMMAND" : "ssh -x", +} + +moduleclass = 'chem' diff --git a/o/ORCA/ORCA-3_0_3-linux_x86-64-OpenMPI-1.8.8-iccifort-2015.3.187-GNU-4.9.3-2.25.eb b/o/ORCA/ORCA-3_0_3-linux_x86-64-OpenMPI-1.8.8-iccifort-2015.3.187-GNU-4.9.3-2.25.eb new file mode 100644 index 00000000..7e48f06d --- /dev/null +++ b/o/ORCA/ORCA-3_0_3-linux_x86-64-OpenMPI-1.8.8-iccifort-2015.3.187-GNU-4.9.3-2.25.eb @@ -0,0 +1,34 @@ +easyblock = "PackedBinary" + +name = "ORCA" +version = '3_0_3-linux_x86-64' + +openmpiversion = '1.8.8' + +homepage = 'http://cec.mpg.de/forum/' +description = """ORCA is a flexible, efficient and easy-to-use general purpose tool for quantum chemistry + with specific emphasis on spectroscopic properties of open-shell molecules. + It features a wide variety of standard quantum chemical methods ranging from semiempirical methods to DFT to single- + and multireference correlated ab initio methods. + It can also treat environmental and relativistic effects.""" + +toolchain = {'name': 'dummy', 'version': ''} + +sources = ['%%(namelower)s_%s_%s.tbz' % (version.split('-')[0], '-'.join(version.split('-')[1:]))] + +dependencies = [('OpenMPI', openmpiversion, '-iccifort-2015.3.187-GNU-4.9.3-2.25')] + +sanity_check_paths = { + 'files': ['orca_%s%s' % (x, y) for x in ['anoint', 'casscf', 'cis', 'cleanup', 'cpscf', + 'eprnmr', 'gtoint', 'mdci', 'mp2', 'mrci', 'pc', + 'rocis', 'scf', 'scfgrad', 'soc'] + for y in ["", "_mpi"]] + + ['orca_%s' % x for x in ['2mkl', 'asa', 'chelpg', 'ciprep', 'eca', 'ecplib', + 'euler', 'fci', 'fitpes', 'gstep', 'loc', 'mapspc', + 'md', 'mergefrag', 'ndoint', 'numfreq', 'plot', + 'pltvib', 'pop', 'rel', 'vib', 'vpot']] + + ['orca', 'otool_cosmo'], + 'dirs': [], +} + +moduleclass = 'chem' diff --git a/o/ORCA/ORCA-3_0_3-linux_x86-64.eb b/o/ORCA/ORCA-3_0_3-linux_x86-64.eb new file mode 100644 index 00000000..6a633a98 --- /dev/null +++ b/o/ORCA/ORCA-3_0_3-linux_x86-64.eb @@ -0,0 +1,38 @@ +easyblock = "PackedBinary" + +name = "ORCA" +version = '3_0_3-linux_x86-64' + +homepage = 'http://cec.mpg.de/forum/' +description = """ORCA is a flexible, efficient and easy-to-use general purpose tool for quantum chemistry + with specific emphasis on spectroscopic properties of open-shell molecules. + It features a wide variety of standard quantum chemical methods ranging from semiempirical methods to DFT to single- + and multireference correlated ab initio methods. + It can also treat environmental and relativistic effects.""" + +toolchain = {'name': 'dummy', 'version': ''} + +sources = ['%%(namelower)s_%s_%s.tbz' % (version.split('-')[0], '-'.join(version.split('-')[1:]))] + +# ORCA 3.0.3 is compiled only against OpenMPI 1.6.5 for Linux +dependencies = [('OpenMPI', '1.6.5', '-GCC-4.7.2')] + +sanity_check_paths = { + 'files': ['orca_%s%s' % (x, y) for x in ['anoint', 'casscf', 'cis', 'cleanup', 'cpscf', + 'eprnmr', 'gtoint', 'mdci', 'mp2', 'mrci', 'pc', + 'rocis', 'scf', 'scfgrad', 'soc'] + for y in ["", "_mpi"]] + + ['orca_%s' % x for x in ['2mkl', 'asa', 'chelpg', 'ciprep', 'eca', 'ecplib', + 'euler', 'fci', 'fitpes', 'gstep', 'loc', 'mapspc', + 'md', 'mergefrag', 'ndoint', 'numfreq', 'plot', + 'pltvib', 'pop', 'rel', 'vib', 'vpot']] + + ['orca', 'otool_cosmo'], + 'dirs': [], +} + +modextravars = { + "SLURM_CPU_BIND" : "none", + "RSH_COMMAND" : "ssh -x", +} + +moduleclass = 'chem' diff --git a/o/OSPRay/OSPRay-0.9.1.eb b/o/OSPRay/OSPRay-0.9.1.eb new file mode 100644 index 00000000..a3fcac13 --- /dev/null +++ b/o/OSPRay/OSPRay-0.9.1.eb @@ -0,0 +1,28 @@ +easyblock = 'Tarball' + +name = 'OSPRay' +version = '0.9.1' + +homepage = 'http://www.ospray.org' +description = """ + A Ray Tracing Based Rendering Engine for High-Fidelity Visualization""" +toolchain = {'name': 'dummy', 'version': 'dummy'} + +source_urls = ['https://github.com/ospray/OSPRay/releases/download/v%(version)s/'] +sources = ['ospray-full-%(version)s.x86_64.linux.tar.gz'] + +dependencies = [] + +skipsteps= ['configure', 'build'] + +sanity_check_paths = { + 'files': ['lib/libospray.so'], + 'dirs': ['bin', 'lib'], +} + +# add the top dir to PATH +modextrapaths = { + 'PATH': '' +} + +moduleclass = 'vis' diff --git a/o/OTF2/OTF2-1.4-ictce-5.5.0.eb b/o/OTF2/OTF2-1.4-ictce-5.5.0.eb new file mode 100644 index 00000000..2325d35f --- /dev/null +++ b/o/OTF2/OTF2-1.4-ictce-5.5.0.eb @@ -0,0 +1,21 @@ +easyblock = 'EB_Score_minus_P' + +name = "OTF2" +version = "1.4" + +homepage = 'http://www.score-p.org' +description = """The Open Trace Format 2 is a highly scalable, memory efficient event + trace data format plus support library. It will become the new standard trace format + for Scalasca, Vampir, and Tau and is open for other tools.""" + +toolchain = {'name': 'ictce', 'version': '5.5.0'} + +sources = [SOURCELOWER_TAR_GZ] +source_urls = ['http://www.vi-hps.org/upload/packages/otf2/'] + +sanity_check_paths = { + 'files': ["bin/otf2-config", "include/otf2/otf2.h", ("lib64/libotf2.a", "lib/libotf2.a")], + 'dirs': [], +} + +moduleclass = 'perf' diff --git a/o/OTF2/OTF2-2.0.eb b/o/OTF2/OTF2-2.0.eb new file mode 100644 index 00000000..9d79ff1b --- /dev/null +++ b/o/OTF2/OTF2-2.0.eb @@ -0,0 +1,40 @@ +## +# This is an easyconfig file for EasyBuild, see https://github.com/hpcugent/easybuild +# Copyright:: Copyright 2013-2016 Juelich Supercomputing Centre, Germany +# Authors:: Bernd Mohr +# Markus Geimer +# License:: 3-clause BSD +# +# This work is based on experiences from the UNITE project +# http://apps.fz-juelich.de/unite/ +## + +easyblock = 'EB_Score_minus_P' + +name = 'OTF2' +version = '2.0' + +homepage = 'http://www.score-p.org' +description = """The Open Trace Format 2 is a highly scalable, memory efficient event + trace data format plus support library. It is the new standard trace format for + Scalasca, Vampir, and TAU and is open for other tools.""" + +toolchain = {'name': 'dummy', 'version': ''} + +sources = [SOURCELOWER_TAR_GZ] +source_urls = ['http://www.vi-hps.org/upload/packages/otf2/'] + +checksums = [ + '5b546188b25bc1c4e285e06dddf75dfc', # otf2-2.0.tar.gz +] + +builddependencies = [('SIONlib', '1.6.1', '-tools')] + +configopts = '--enable-shared' + +sanity_check_paths = { + 'files': ["bin/otf2-config", "include/otf2/otf2.h", ("lib/libotf2.a", "lib64/libotf2.a")], + 'dirs': [], +} + +moduleclass = 'perf' diff --git a/o/Octave/Octave-3.8.2-foss-2015g.eb b/o/Octave/Octave-3.8.2-foss-2015g.eb new file mode 100644 index 00000000..c593facb --- /dev/null +++ b/o/Octave/Octave-3.8.2-foss-2015g.eb @@ -0,0 +1,29 @@ +easyblock = 'ConfigureMake' + +name = 'Octave' +version = '3.8.2' + +homepage = 'http://www.gnu.org/software/octave/' +description = """GNU Octave is a high-level interpreted language, primarily intended for numerical computations.""" + +toolchain = {'name': 'foss', 'version': '2015g'} + +source_urls = [GNU_SOURCE] +sources = [SOURCELOWER_TAR_GZ] + +dependencies = [ + ('PCRE', '8.37'), + ('ncurses', '5.9'), + ('libreadline', '6.3'), +] + +configopts = '--with-blas="$LIBBLAS"' + +sanity_check_paths = { + 'files': ['bin/octave'], + 'dirs': [] +} + +sanity_check_commands = [('octave', '--eval "1+2"')] + +moduleclass = 'math' diff --git a/o/Octave/Octave-3.8.2-gimkl-2.11.5.eb b/o/Octave/Octave-3.8.2-gimkl-2.11.5.eb new file mode 100644 index 00000000..76324ab7 --- /dev/null +++ b/o/Octave/Octave-3.8.2-gimkl-2.11.5.eb @@ -0,0 +1,38 @@ +easyblock = 'ConfigureMake' + +name = 'Octave' +version = '3.8.2' + +homepage = 'http://www.gnu.org/software/octave/' +description = """GNU Octave is a high-level interpreted language, primarily intended for numerical computations.""" + +toolchain = {'name': 'gimkl', 'version': '2.11.5'} + +source_urls = [GNU_SOURCE] +sources = [SOURCELOWER_TAR_GZ] + +patches = ['Octave-%(version)s_intel.patch'] + +dependencies = [ + ('PCRE', '8.37'), + ('ncurses', '5.9'), + ('libreadline', '6.3'), +] + +configopts = '--with-blas="-fopenmp $LIBBLAS_MT"' + +# Because of missing man pages (non-standard location) +postinstallcmds = [ + 'mkdir -p %(installdir)s/share/man/man1', + 'cp doc/interpreter/*.1 %(installdir)s/share/man/man1' +] +modextrapaths = {'MANPATH': 'share/man'} + +sanity_check_paths = { + 'files': ['bin/octave'], + 'dirs': [] +} + +sanity_check_commands = [('octave', '--eval "1+2"')] + +moduleclass = 'math' diff --git a/o/Octave/Octave-3.8.2-intel-2014.06.eb b/o/Octave/Octave-3.8.2-intel-2014.06.eb new file mode 100644 index 00000000..3cb17e24 --- /dev/null +++ b/o/Octave/Octave-3.8.2-intel-2014.06.eb @@ -0,0 +1,31 @@ +easyblock = 'ConfigureMake' + +name = 'Octave' +version = '3.8.2' + +homepage = 'http://www.gnu.org/software/octave/' +description = """GNU Octave is a high-level interpreted language, primarily intended for numerical computations.""" + +toolchain = {'name': 'intel', 'version': '2014.06'} + +source_urls = [GNU_SOURCE] +sources = [SOURCELOWER_TAR_GZ] + +patches = ['Octave-%(version)s_intel.patch'] + +dependencies = [ + ('PCRE', '8.36'), + ('ncurses', '5.9'), + ('libreadline', '6.3'), +] + +configopts = '--with-blas="$LIBBLAS"' + +sanity_check_paths = { + 'files': ['bin/octave'], + 'dirs': [] +} + +sanity_check_commands = [('octave', '--eval "1+2"')] + +moduleclass = 'math' diff --git a/o/Octave/Octave-3.8.2-intel-2015b.eb b/o/Octave/Octave-3.8.2-intel-2015b.eb new file mode 100644 index 00000000..6dcd6606 --- /dev/null +++ b/o/Octave/Octave-3.8.2-intel-2015b.eb @@ -0,0 +1,43 @@ +easyblock = 'ConfigureMake' + +name = 'Octave' +version = '3.8.2' + +homepage = 'http://www.gnu.org/software/octave/' +description = """GNU Octave is a high-level interpreted language, primarily intended for numerical computations.""" + +toolchain = {'name': 'intel', 'version': '2015b'} + +source_urls = [GNU_SOURCE] +sources = [SOURCELOWER_TAR_GZ] + +patches = ['Octave-%(version)s_intel.patch'] + +osdependencies = ['gnuplot', 'texinfo-tex', 'texlive-dvips'] + +dependencies = [ + ('PCRE', '8.38'), + ('ncurses', '5.9'), + ('libreadline', '6.3'), +] + +configopts = '--with-blas="-lmkl_intel_lp64 -lmkl_core -lmkl_intel_thread -lpthread -lm" ' +configopts += '--with-lapack="-lmkl_intel_lp64 -lmkl_core -lmkl_intel_thread -lpthread -lm" ' +configopts += '--without-umfpack --without-cxsparse --without-colamd --without-ccolamd --without-qrupdate ' +configopts += '--without-camd --without-amd --without-arpack --without-qhull' + +# Because of missing man pages (non-standard location) +postinstallcmds = [ + 'mkdir -p %(installdir)s/share/man/man1', + 'cp doc/interpreter/*.1 %(installdir)s/share/man/man1' +] +modextrapaths = {'MANPATH': 'share/man'} + +sanity_check_paths = { + 'files': ['bin/octave'], + 'dirs': [] +} + +sanity_check_commands = [('octave', '--eval "1+2"')] + +moduleclass = 'math' diff --git a/o/Octave/Octave-4.0.1-gimkl-2.11.5.eb b/o/Octave/Octave-4.0.1-gimkl-2.11.5.eb new file mode 100644 index 00000000..e529ff99 --- /dev/null +++ b/o/Octave/Octave-4.0.1-gimkl-2.11.5.eb @@ -0,0 +1,29 @@ +easyblock = 'ConfigureMake' + +name = 'Octave' +version = '4.0.1' + +homepage = 'http://www.gnu.org/software/octave/' +description = """GNU Octave is a high-level interpreted language, primarily intended for numerical computations.""" + +toolchain = {'name': 'gimkl', 'version': '2.11.5'} + +source_urls = [GNU_SOURCE] +sources = [SOURCELOWER_TAR_GZ] + +dependencies = [ + ('PCRE', '8.37'), + ('ncurses', '5.9'), + ('libreadline', '6.3'), +] + +configopts = '--with-blas="-fopenmp $LIBBLAS_MT"' + +sanity_check_paths = { + 'files': ['bin/octave'], + 'dirs': [] +} + +sanity_check_commands = [('octave', '--eval "1+2"')] + +moduleclass = 'math' diff --git a/o/Octave/Octave-4.0.1-intel-2016.01.eb b/o/Octave/Octave-4.0.1-intel-2016.01.eb new file mode 100644 index 00000000..52d9e416 --- /dev/null +++ b/o/Octave/Octave-4.0.1-intel-2016.01.eb @@ -0,0 +1,42 @@ +# Built with EasyBuild version 2.1.1 on 2015-06-30_13-50-57 +easyblock = 'ConfigureMake' + +name = 'Octave' +version = '4.0.1' + +homepage = 'http://www.gnu.org/software/octave/' +description = """GNU Octave is a high-level interpreted language, primarily intended for numerical computations.""" + +toolchain = {'name': 'intel', 'version': '2016.01'} + +source_urls = [GNU_SOURCE] +sources = [SOURCELOWER_TAR_GZ] + +osdependencies = ['gnuplot', 'texinfo-tex', 'texlive-dvips'] + +dependencies = [ + ('PCRE', '8.36'), + ('ncurses', '5.9'), + ('libreadline', '6.3'), +] + +configopts = '--with-blas="-lmkl_intel_lp64 -lmkl_core -lmkl_intel_thread -lpthread -lm" ' +configopts += '--with-lapack="-lmkl_intel_lp64 -lmkl_core -lmkl_intel_thread -lpthread -lm" ' +configopts += '--without-umfpack --without-cxsparse --without-colamd --without-ccolamd --without-qrupdate ' +configopts += '--without-camd --without-amd --without-arpack --without-qhull' + +# Because of missing man pages (non-standard location) +postinstallcmds = [ + 'mkdir -p %(installdir)s/share/man/man1', + 'cp doc/interpreter/*.1 %(installdir)s/share/man/man1' +] +modextrapaths = {'MANPATH': 'share/man'} + +sanity_check_paths = { + 'files': ['bin/octave'], + 'dirs': [] +} + +sanity_check_commands = [('octave', '--eval "1+2"')] + +moduleclass = 'math' diff --git a/o/Octopus/Octopus-5.0.0-intel-2015b-mpi.eb b/o/Octopus/Octopus-5.0.0-intel-2015b-mpi.eb new file mode 100644 index 00000000..e3cd54d7 --- /dev/null +++ b/o/Octopus/Octopus-5.0.0-intel-2015b-mpi.eb @@ -0,0 +1,51 @@ +easyblock = 'ConfigureMake' + +name = 'Octopus' +version = '5.0.0' +versionsuffix = '-mpi' + +homepage = 'http://www.tddft.org/programs/octopus/wiki/index.php/Main_Page' +description = """Octopus is a scientific program aimed at the ab initio virtual experimentation +on a hopefully ever-increasing range of system types. Electrons are described quantum-mechanically +within density-functional theory (DFT), in its time-dependent form (TDDFT) when doing simulations +in time. Nuclei are described classically as point particles. +Electron-nucleus interaction is described within the pseudopotential approximation.""" + +toolchain = {'name': 'intel', 'version': '2015b'} +toolchainopts = {'usempi': True, 'opt': True} + +sources = [SOURCELOWER_TAR_GZ] +source_urls = ['http://www.tddft.org/programs/octopus/down.php?file=%(version)s/' ] + +builddependencies = [ + ('Bison', '3.0.4'), + ('Perl', '5.20.2', '-bare'), +] + +dependencies = [ + ('libxc', '2.2.2'), + ('netCDF', '4.3.3.1'), + ('netCDF-Fortran', '4.4.2'), + ('FFTW', '3.3.4', '-PFFT-20150905'), + ('PFFT', '1.0.8-alpha'), + ('ETSF_IO', '1.0.4'), + ('GSL', '1.16'), +] + +configopts = '--disable-openmp --enable-mpi --enable-newuoa --disable-python --disable-gdlib ' +configopts += '--with-libxc-prefix=$EBROOTLIBXC --with-gsl-prefix=$EBROOTGSL ' +configopts += '--with-blas="-L$BLAS_LIB_DIR $LIBBLAS" ' +configopts += '--with-blacs="$MKLROOT/lib/intel64/libmkl_blacs_intelmpi_lp64.a" ' +configopts += '--with-scalapack="$MKLROOT/lib/intel64/libmkl_scalapack_lp64.a" ' +configopts += '--with-netcdf-prefix=$EBROOTNETCDFMINFORTRAN ' +configopts += '--with-etsf-io-prefix=$EBROOTETSF_IO ' +configopts += '--with-pfft-prefix=$EBROOTPFFT --with-mpifftw-prefix=$EBROOTFFTW ' + +runtest = 'MPIEXEC=`which mpirun` check' + +sanity_check_paths = { + 'files': ["bin/octopus_mpi"], + 'dirs': [] +} + +moduleclass = 'chem' diff --git a/o/OpenBLAS/OpenBLAS-0.2.12-GCC-4.9.2-LAPACK-3.5.0.eb b/o/OpenBLAS/OpenBLAS-0.2.12-GCC-4.9.2-LAPACK-3.5.0.eb new file mode 100644 index 00000000..3a54e8b3 --- /dev/null +++ b/o/OpenBLAS/OpenBLAS-0.2.12-GCC-4.9.2-LAPACK-3.5.0.eb @@ -0,0 +1,51 @@ +easyblock = 'ConfigureMake' + +name = 'OpenBLAS' +version = '0.2.12' + +lapackver = '3.5.0' +versionsuffix = '-LAPACK-%s' % lapackver + +homepage = 'http://xianyi.github.com/OpenBLAS/' +description = """OpenBLAS is an optimized BLAS library based on GotoBLAS2 1.13 BSD version.""" + +toolchain = {'name': 'GCC', 'version': '4.9.2'} + +lapack_src = 'lapack-%s.tgz' % lapackver +large_src = 'large.tgz' +timing_src = 'timing.tgz' +sources = [ + 'v%(version)s.tar.gz', + lapack_src, + large_src, + timing_src, +] +source_urls = [ + # order matters, trying to download the LAPACK tarball from GitHub causes trouble + "http://www.netlib.org/lapack/", + "http://www.netlib.org/lapack/timing/", + "https://github.com/xianyi/OpenBLAS/archive/", +] + +patches = [ + (lapack_src, '.'), # copy LAPACK tarball to unpacked OpenBLAS dir + (large_src, '.'), + (timing_src, '.'), +] + +skipsteps = ['configure'] + +buildopts = 'BINARY=64 USE_THREAD=1 CC="$CC" FC="$F77" NO_AFFINITY=1' +installopts = "USE_THREAD=1 PREFIX=%(installdir)s" + +# extensive testing can be enabled by uncommenting the line below +#runtest = 'PATH=.:$PATH lapack-timing' + +sanity_check_paths = { + 'files': ['include/cblas.h', 'include/f77blas.h', 'include/lapacke_config.h', 'include/lapacke.h', + 'include/lapacke_mangling.h', 'include/lapacke_utils.h', 'include/openblas_config.h', + 'lib/libopenblas.a', 'lib/libopenblas.%s' % SHLIB_EXT], + 'dirs': [], +} + +moduleclass = 'numlib' diff --git a/o/OpenBLAS/OpenBLAS-0.2.13-GCC-4.8.4-LAPACK-3.5.0.eb b/o/OpenBLAS/OpenBLAS-0.2.13-GCC-4.8.4-LAPACK-3.5.0.eb new file mode 100644 index 00000000..870b4ca0 --- /dev/null +++ b/o/OpenBLAS/OpenBLAS-0.2.13-GCC-4.8.4-LAPACK-3.5.0.eb @@ -0,0 +1,51 @@ +easyblock = 'ConfigureMake' + +name = 'OpenBLAS' +version = '0.2.13' + +lapackver = '3.5.0' +versionsuffix = '-LAPACK-%s' % lapackver + +homepage = 'http://xianyi.github.com/OpenBLAS/' +description = """OpenBLAS is an optimized BLAS library based on GotoBLAS2 1.13 BSD version.""" + +toolchain = {'name': 'GCC', 'version': '4.8.4'} + +lapack_src = 'lapack-%s.tgz' % lapackver +large_src = 'large.tgz' +timing_src = 'timing.tgz' +sources = [ + 'v%(version)s.tar.gz', + lapack_src, + large_src, + timing_src, +] +source_urls = [ + # order matters, trying to download the LAPACK tarball from GitHub causes trouble + "http://www.netlib.org/lapack/", + "http://www.netlib.org/lapack/timing/", + "https://github.com/xianyi/OpenBLAS/archive/", +] + +patches = [ + (lapack_src, '.'), # copy LAPACK tarball to unpacked OpenBLAS dir + (large_src, '.'), + (timing_src, '.'), +] + +skipsteps = ['configure'] + +buildopts = 'BINARY=64 USE_THREAD=1 CC="$CC" FC="$F77" NO_AFFINITY=1' +installopts = "USE_THREAD=1 PREFIX=%(installdir)s" + +# extensive testing can be enabled by uncommenting the line below +#runtest = 'PATH=.:$PATH lapack-timing' + +sanity_check_paths = { + 'files': ['include/cblas.h', 'include/f77blas.h', 'include/lapacke_config.h', 'include/lapacke.h', + 'include/lapacke_mangling.h', 'include/lapacke_utils.h', 'include/openblas_config.h', + 'lib/libopenblas.a', 'lib/libopenblas.%s' % SHLIB_EXT], + 'dirs': [], +} + +moduleclass = 'numlib' diff --git a/o/OpenBLAS/OpenBLAS-0.2.13-GCC-4.9.2-LAPACK-3.5.0.eb b/o/OpenBLAS/OpenBLAS-0.2.13-GCC-4.9.2-LAPACK-3.5.0.eb new file mode 100644 index 00000000..1291a991 --- /dev/null +++ b/o/OpenBLAS/OpenBLAS-0.2.13-GCC-4.9.2-LAPACK-3.5.0.eb @@ -0,0 +1,51 @@ +easyblock = 'ConfigureMake' + +name = 'OpenBLAS' +version = '0.2.13' + +lapackver = '3.5.0' +versionsuffix = '-LAPACK-%s' % lapackver + +homepage = 'http://xianyi.github.com/OpenBLAS/' +description = """OpenBLAS is an optimized BLAS library based on GotoBLAS2 1.13 BSD version.""" + +toolchain = {'name': 'GCC', 'version': '4.9.2'} + +lapack_src = 'lapack-%s.tgz' % lapackver +large_src = 'large.tgz' +timing_src = 'timing.tgz' +sources = [ + 'v%(version)s.tar.gz', + lapack_src, + large_src, + timing_src, +] +source_urls = [ + # order matters, trying to download the LAPACK tarball from GitHub causes trouble + "http://www.netlib.org/lapack/", + "http://www.netlib.org/lapack/timing/", + "https://github.com/xianyi/OpenBLAS/archive/", +] + +patches = [ + (lapack_src, '.'), # copy LAPACK tarball to unpacked OpenBLAS dir + (large_src, '.'), + (timing_src, '.'), +] + +skipsteps = ['configure'] + +buildopts = 'BINARY=64 USE_THREAD=1 CC="$CC" FC="$F77" NO_AFFINITY=1' +installopts = "USE_THREAD=1 PREFIX=%(installdir)s" + +# extensive testing can be enabled by uncommenting the line below +#runtest = 'PATH=.:$PATH lapack-timing' + +sanity_check_paths = { + 'files': ['include/cblas.h', 'include/f77blas.h', 'include/lapacke_config.h', 'include/lapacke.h', + 'include/lapacke_mangling.h', 'include/lapacke_utils.h', 'include/openblas_config.h', + 'lib/libopenblas.a', 'lib/libopenblas.%s' % SHLIB_EXT], + 'dirs': [], +} + +moduleclass = 'numlib' diff --git a/o/OpenBLAS/OpenBLAS-0.2.13-gompi-1.5.16-LAPACK-3.5.0.eb b/o/OpenBLAS/OpenBLAS-0.2.13-gompi-1.5.16-LAPACK-3.5.0.eb new file mode 100644 index 00000000..fe4211f5 --- /dev/null +++ b/o/OpenBLAS/OpenBLAS-0.2.13-gompi-1.5.16-LAPACK-3.5.0.eb @@ -0,0 +1,52 @@ +easyblock = 'ConfigureMake' + +name = 'OpenBLAS' +version = '0.2.13' + +lapackver = '3.5.0' +versionsuffix = '-LAPACK-%s' % lapackver + +homepage = 'http://xianyi.github.com/OpenBLAS/' +description = """OpenBLAS is an optimized BLAS library based on GotoBLAS2 1.13 BSD version.""" + +toolchain = {'name': 'gompi', 'version': '1.5.16'} + +lapack_src = 'lapack-%s.tgz' % lapackver +large_src = 'large.tgz' +timing_src = 'timing.tgz' +sources = [ + 'v%(version)s.tar.gz', + lapack_src, + large_src, + timing_src, +] +source_urls = [ + # order matters, trying to download the LAPACK tarball from GitHub causes trouble + "http://www.netlib.org/lapack/", + "http://www.netlib.org/lapack/timing/", + "https://github.com/xianyi/OpenBLAS/archive/", +] + +patches = [ + (lapack_src, '.'), # copy LAPACK tarball to unpacked OpenBLAS dir + (large_src, '.'), + (timing_src, '.'), +] + +skipsteps = ['configure'] + +threading = 'USE_THREAD=1' +buildopts = 'BINARY=64 ' + threading + ' CC="$CC" FC="$F77"' +installopts = threading + " PREFIX=%(installdir)s" + +# extensive testing can be enabled by uncommenting the line below +#runtest = 'PATH=.:$PATH lapack-timing' + +sanity_check_paths = { + 'files': ['include/cblas.h', 'include/f77blas.h', 'include/lapacke_config.h', 'include/lapacke.h', + 'include/lapacke_mangling.h', 'include/lapacke_utils.h', 'include/openblas_config.h', + 'lib/libopenblas.a', 'lib/libopenblas.%s' % SHLIB_EXT], + 'dirs': [], +} + +moduleclass = 'numlib' diff --git a/o/OpenBLAS/OpenBLAS-0.2.14-GNU-4.9.2-2.25-LAPACK-3.5.0.eb b/o/OpenBLAS/OpenBLAS-0.2.14-GNU-4.9.2-2.25-LAPACK-3.5.0.eb new file mode 100644 index 00000000..23704a98 --- /dev/null +++ b/o/OpenBLAS/OpenBLAS-0.2.14-GNU-4.9.2-2.25-LAPACK-3.5.0.eb @@ -0,0 +1,51 @@ +easyblock = 'ConfigureMake' + +name = 'OpenBLAS' +version = '0.2.14' + +lapackver = '3.5.0' +versionsuffix = '-LAPACK-%s' % lapackver + +homepage = 'http://xianyi.github.com/OpenBLAS/' +description = """OpenBLAS is an optimized BLAS library based on GotoBLAS2 1.13 BSD version.""" + +toolchain = {'name': 'GNU', 'version': '4.9.2-2.25'} + +lapack_src = 'lapack-%s.tgz' % lapackver +large_src = 'large.tgz' +timing_src = 'timing.tgz' +sources = [ + 'v%(version)s.tar.gz', + lapack_src, + large_src, + timing_src, +] +source_urls = [ + # order matters, trying to download the LAPACK tarball from GitHub causes trouble + "http://www.netlib.org/lapack/", + "http://www.netlib.org/lapack/timing/", + "https://github.com/xianyi/OpenBLAS/archive/", +] + +patches = [ + (lapack_src, '.'), # copy LAPACK tarball to unpacked OpenBLAS dir + (large_src, '.'), + (timing_src, '.'), +] + +skipsteps = ['configure'] + +buildopts = 'BINARY=64 USE_THREAD=1 CC="$CC" FC="$F77" NO_AFFINITY=1' +installopts = "USE_THREAD=1 PREFIX=%(installdir)s" + +# extensive testing can be enabled by uncommenting the line below +#runtest = 'PATH=.:$PATH lapack-timing' + +sanity_check_paths = { + 'files': ['include/cblas.h', 'include/f77blas.h', 'include/lapacke_config.h', 'include/lapacke.h', + 'include/lapacke_mangling.h', 'include/lapacke_utils.h', 'include/openblas_config.h', + 'lib/libopenblas.a', 'lib/libopenblas.%s' % SHLIB_EXT], + 'dirs': [], +} + +moduleclass = 'numlib' diff --git a/o/OpenBLAS/OpenBLAS-0.2.14-GNU-4.9.3-2.25-LAPACK-3.5.0.eb b/o/OpenBLAS/OpenBLAS-0.2.14-GNU-4.9.3-2.25-LAPACK-3.5.0.eb new file mode 100644 index 00000000..9bd2d264 --- /dev/null +++ b/o/OpenBLAS/OpenBLAS-0.2.14-GNU-4.9.3-2.25-LAPACK-3.5.0.eb @@ -0,0 +1,51 @@ +easyblock = 'ConfigureMake' + +name = 'OpenBLAS' +version = '0.2.14' + +lapackver = '3.5.0' +versionsuffix = '-LAPACK-%s' % lapackver + +homepage = 'http://xianyi.github.com/OpenBLAS/' +description = """OpenBLAS is an optimized BLAS library based on GotoBLAS2 1.13 BSD version.""" + +toolchain = {'name': 'GNU', 'version': '4.9.3-2.25'} + +lapack_src = 'lapack-%s.tgz' % lapackver +large_src = 'large.tgz' +timing_src = 'timing.tgz' +sources = [ + 'v%(version)s.tar.gz', + lapack_src, + large_src, + timing_src, +] +source_urls = [ + # order matters, trying to download the LAPACK tarball from GitHub causes trouble + "http://www.netlib.org/lapack/", + "http://www.netlib.org/lapack/timing/", + "https://github.com/xianyi/OpenBLAS/archive/", +] + +patches = [ + (lapack_src, '.'), # copy LAPACK tarball to unpacked OpenBLAS dir + (large_src, '.'), + (timing_src, '.'), +] + +skipsteps = ['configure'] + +buildopts = 'BINARY=64 USE_THREAD=1 CC="$CC" FC="$F77" NO_AFFINITY=1 TARGET=HASWELL' +installopts = "USE_THREAD=1 PREFIX=%(installdir)s" + +# extensive testing can be enabled by uncommenting the line below +#runtest = 'PATH=.:$PATH lapack-timing' + +sanity_check_paths = { + 'files': ['include/cblas.h', 'include/f77blas.h', 'include/lapacke_config.h', 'include/lapacke.h', + 'include/lapacke_mangling.h', 'include/lapacke_utils.h', 'include/openblas_config.h', + 'lib/libopenblas.a', 'lib/libopenblas.%s' % SHLIB_EXT], + 'dirs': [], +} + +moduleclass = 'numlib' diff --git a/o/OpenBLAS/OpenBLAS-0.2.14-GNU-5.1.0-2.25-LAPACK-3.5.0.eb b/o/OpenBLAS/OpenBLAS-0.2.14-GNU-5.1.0-2.25-LAPACK-3.5.0.eb new file mode 100644 index 00000000..bb6d7444 --- /dev/null +++ b/o/OpenBLAS/OpenBLAS-0.2.14-GNU-5.1.0-2.25-LAPACK-3.5.0.eb @@ -0,0 +1,77 @@ +# Built with EasyBuild version 2.2.0dev on 2015-06-29_15-38-14 +easyblock = 'ConfigureMake' + +name = 'OpenBLAS' +version = '0.2.14' + +lapackver = '3.5.0' +versionsuffix = '-LAPACK-%s' % lapackver + +homepage = 'http://xianyi.github.com/OpenBLAS/' +description = """OpenBLAS is an optimized BLAS library based on GotoBLAS2 1.13 BSD version.""" + +toolchain = {'name': 'GNU', 'version': '5.1.0-2.25'} + +lapack_src = 'lapack-%s.tgz' % lapackver +large_src = 'large.tgz' +timing_src = 'timing.tgz' +sources = [ + 'v%(version)s.tar.gz', + lapack_src, + large_src, + timing_src, +] +source_urls = [ + # order matters, trying to download the LAPACK tarball from GitHub causes trouble + "http://www.netlib.org/lapack/", + "http://www.netlib.org/lapack/timing/", + "https://github.com/xianyi/OpenBLAS/archive/", +] + +patches = [ + (lapack_src, '.'), # copy LAPACK tarball to unpacked OpenBLAS dir + (large_src, '.'), + (timing_src, '.'), +] + +skipsteps = ['configure'] + +buildopts = 'BINARY=64 USE_THREAD=1 CC="$CC" FC="$F77" NO_AFFINITY=1' +installopts = "USE_THREAD=1 PREFIX=%(installdir)s" + +# extensive testing can be enabled by uncommenting the line below +#runtest = 'PATH=.:$PATH lapack-timing' + +sanity_check_paths = { + 'files': ['include/cblas.h', 'include/f77blas.h', 'include/lapacke_config.h', 'include/lapacke.h', + 'include/lapacke_mangling.h', 'include/lapacke_utils.h', 'include/openblas_config.h', + 'lib/libopenblas.a', 'lib/libopenblas.%s' % SHLIB_EXT], + 'dirs': [], +} + +moduleclass = 'numlib' + +# Build statistics +buildstats = [{ + "easybuild-framework_version": "2.2.0dev", + "easybuild-easyblocks_version": "2.2.0dev", + "timestamp": 1435585094, + "build_time": 115.77, + "install_size": 89514885, + "command_line": ['--buildpath=/easybuild/build', '--from-pr=1695', '--installpath=/apps', '--installpath-modules=/apps/modules', '--installpath-software=/apps', '--module-naming-scheme=IT4IModuleNamingScheme', '--repositorypath=/easybuild/file-repository', '--robot=/easybuild/easyconfigs-salomon/easybuild/easyconfigs', '--robot-paths=/easybuild/easyconfigs-salomon/easybuild/easyconfigs', '--sourcepath=/easybuild/sources'], + "modules_tool": ('EnvironmentModulesC', '/usr/bin/modulecmd', '3.2.10'), + "core_count": 28, + "cpu_model": "Intel(R) Xeon(R) CPU E5-2695 v3 @ 2.30GHz", + "cpu_speed": 2299.976, + "cpu_vendor": "Intel", + "gcc_version": "Using built-in specs.; COLLECT_GCC=gcc; COLLECT_LTO_WRAPPER=/apps/all/GCC/5.1.0-binutils-2.25/libexec/gcc/x86_64-unknown-linux-gnu/5.1.0/lto-wrapper; Target: x86_64-unknown-linux-gnu; Configured with: ../configure --enable-languages=c,c++,fortran --enable-lto --enable-checking=release --disable-multilib --enable-shared=yes --enable-static=yes --enable-threads=posix --enable-gold=default --enable-plugins --enable-ld --with-plugin-ld=ld.gold --prefix=/apps/all/GCC/5.1.0-binutils-2.25 --with-local-prefix=/apps/all/GCC/5.1.0-binutils-2.25 --enable-bootstrap --with-isl=/easybuild/build/GCC/5.1.0/dummy--binutils-2.25/gcc-5.1.0/stage2_stuff; Thread model: posix; gcc version 5.1.0 (GCC) ; ", + "glibc_version": "2.12", + "hostname": "login1", + "os_name": "centos", + "os_type": "Linux", + "os_version": "6.6", + "platform_name": "x86_64-unknown-linux", + "python_version": "2.6.6 (r266:84292, Jan 22 2014, 09:42:36) ; [GCC 4.4.7 20120313 (Red Hat 4.4.7-4)]", + "system_gcc_path": "/apps/all/GCC/5.1.0-binutils-2.25/bin/gcc", + "system_python_path": "/usr/bin/python", +}] diff --git a/o/OpenBLAS/OpenBLAS-0.2.14-gompi-2015e-LAPACK-3.5.0.eb b/o/OpenBLAS/OpenBLAS-0.2.14-gompi-2015e-LAPACK-3.5.0.eb new file mode 100644 index 00000000..6821cbeb --- /dev/null +++ b/o/OpenBLAS/OpenBLAS-0.2.14-gompi-2015e-LAPACK-3.5.0.eb @@ -0,0 +1,51 @@ +easyblock = 'ConfigureMake' + +name = 'OpenBLAS' +version = '0.2.14' + +lapackver = '3.5.0' +versionsuffix = '-LAPACK-%s' % lapackver + +homepage = 'http://xianyi.github.com/OpenBLAS/' +description = """OpenBLAS is an optimized BLAS library based on GotoBLAS2 1.13 BSD version.""" + +toolchain = {'name': 'gompi', 'version': '2015e'} + +lapack_src = 'lapack-%s.tgz' % lapackver +large_src = 'large.tgz' +timing_src = 'timing.tgz' +sources = [ + 'v%(version)s.tar.gz', + lapack_src, + large_src, + timing_src, +] +source_urls = [ + # order matters, trying to download the LAPACK tarball from GitHub causes trouble + "http://www.netlib.org/lapack/", + "http://www.netlib.org/lapack/timing/", + "https://github.com/xianyi/OpenBLAS/archive/", +] + +patches = [ + (lapack_src, '.'), # copy LAPACK tarball to unpacked OpenBLAS dir + (large_src, '.'), + (timing_src, '.'), +] + +skipsteps = ['configure'] + +buildopts = 'BINARY=64 USE_THREAD=1 CC="$CC" FC="$F77" NO_AFFINITY=1 TARGET=SANDYBRIDGE' +installopts = "USE_THREAD=1 PREFIX=%(installdir)s" + +# extensive testing can be enabled by uncommenting the line below +#runtest = 'PATH=.:$PATH lapack-timing' + +sanity_check_paths = { + 'files': ['include/cblas.h', 'include/f77blas.h', 'include/lapacke_config.h', 'include/lapacke.h', + 'include/lapacke_mangling.h', 'include/lapacke_utils.h', 'include/openblas_config.h', + 'lib/libopenblas.a', 'lib/libopenblas.%s' % SHLIB_EXT], + 'dirs': [], +} + +moduleclass = 'numlib' diff --git a/o/OpenBLAS/OpenBLAS-0.2.15-GCC-4.9.3-2.25-LAPACK-3.6.0.eb b/o/OpenBLAS/OpenBLAS-0.2.15-GCC-4.9.3-2.25-LAPACK-3.6.0.eb new file mode 100644 index 00000000..32dd146e --- /dev/null +++ b/o/OpenBLAS/OpenBLAS-0.2.15-GCC-4.9.3-2.25-LAPACK-3.6.0.eb @@ -0,0 +1,51 @@ +easyblock = 'ConfigureMake' + +name = 'OpenBLAS' +version = '0.2.15' + +lapackver = '3.6.0' +versionsuffix = '-LAPACK-%s' % lapackver + +homepage = 'http://xianyi.github.com/OpenBLAS/' +description = """OpenBLAS is an optimized BLAS library based on GotoBLAS2 1.13 BSD version.""" + +toolchain = {'name': 'GCC', 'version': '4.9.3-2.25'} + +lapack_src = 'lapack-%s.tgz' % lapackver +large_src = 'large.tgz' +timing_src = 'timing.tgz' +sources = [ + 'v%(version)s.tar.gz', + lapack_src, + large_src, + timing_src, +] +source_urls = [ + # order matters, trying to download the LAPACK tarball from GitHub causes trouble + "http://www.netlib.org/lapack/", + "http://www.netlib.org/lapack/timing/", + "https://github.com/xianyi/OpenBLAS/archive/", +] + +patches = [ + (lapack_src, '.'), # copy LAPACK tarball to unpacked OpenBLAS dir + (large_src, '.'), + (timing_src, '.'), +] + +skipsteps = ['configure'] + +buildopts = 'BINARY=64 USE_THREAD=1 CC="$CC" FC="$F77" NO_AFFINITY=1' +installopts = "USE_THREAD=1 PREFIX=%(installdir)s" + +# extensive testing can be enabled by uncommenting the line below +#runtest = 'PATH=.:$PATH lapack-timing' + +sanity_check_paths = { + 'files': ['include/cblas.h', 'include/f77blas.h', 'include/lapacke_config.h', 'include/lapacke.h', + 'include/lapacke_mangling.h', 'include/lapacke_utils.h', 'include/openblas_config.h', + 'lib/libopenblas.a', 'lib/libopenblas.%s' % SHLIB_EXT], + 'dirs': [], +} + +moduleclass = 'numlib' diff --git a/o/OpenBLAS/OpenBLAS-0.2.15-GCC-5.1.0-binutils-2.25-LAPACK-3.6.0.eb b/o/OpenBLAS/OpenBLAS-0.2.15-GCC-5.1.0-binutils-2.25-LAPACK-3.6.0.eb new file mode 100644 index 00000000..ad0f1fe8 --- /dev/null +++ b/o/OpenBLAS/OpenBLAS-0.2.15-GCC-5.1.0-binutils-2.25-LAPACK-3.6.0.eb @@ -0,0 +1,51 @@ +easyblock = 'ConfigureMake' + +name = 'OpenBLAS' +version = '0.2.15' + +lapackver = '3.6.0' +versionsuffix = '-LAPACK-%s-gompi-2016a' % lapackver + +homepage = 'http://xianyi.github.com/OpenBLAS/' +description = """OpenBLAS is an optimized BLAS library based on GotoBLAS2 1.13 BSD version.""" + +toolchain = {'name': 'GCC', 'version': '5.1.0-binutils-2.25'} + +lapack_src = 'lapack-%s.tgz' % lapackver +large_src = 'large.tgz' +timing_src = 'timing.tgz' +sources = [ + 'v%(version)s.tar.gz', + lapack_src, + large_src, + timing_src, +] +source_urls = [ + # order matters, trying to download the LAPACK tarball from GitHub causes trouble + "http://www.netlib.org/lapack/", + "http://www.netlib.org/lapack/timing/", + "https://github.com/xianyi/OpenBLAS/archive/", +] + +patches = [ + (lapack_src, '.'), # copy LAPACK tarball to unpacked OpenBLAS dir + (large_src, '.'), + (timing_src, '.'), +] + +skipsteps = ['configure'] + +buildopts = 'BINARY=64 USE_THREAD=1 CC="$CC" FC="$F77" NO_AFFINITY=1' +installopts = "USE_THREAD=1 PREFIX=%(installdir)s" + +# extensive testing can be enabled by uncommenting the line below +#runtest = 'PATH=.:$PATH lapack-timing' + +sanity_check_paths = { + 'files': ['include/cblas.h', 'include/f77blas.h', 'include/lapacke_config.h', 'include/lapacke.h', + 'include/lapacke_mangling.h', 'include/lapacke_utils.h', 'include/openblas_config.h', + 'lib/libopenblas.a', 'lib/libopenblas.%s' % SHLIB_EXT], + 'dirs': [], +} + +moduleclass = 'numlib' diff --git a/o/OpenBLAS/OpenBLAS-0.2.18-GCC-4.9.4-2.25-LAPACK-3.6.0.eb b/o/OpenBLAS/OpenBLAS-0.2.18-GCC-4.9.4-2.25-LAPACK-3.6.0.eb new file mode 100644 index 00000000..abbe566e --- /dev/null +++ b/o/OpenBLAS/OpenBLAS-0.2.18-GCC-4.9.4-2.25-LAPACK-3.6.0.eb @@ -0,0 +1,55 @@ +easyblock = 'ConfigureMake' + +name = 'OpenBLAS' +version = '0.2.18' + +lapackver = '3.6.0' +versionsuffix = '-LAPACK-%s' % lapackver + +homepage = 'http://xianyi.github.com/OpenBLAS/' +description = """OpenBLAS is an optimized BLAS library based on GotoBLAS2 1.13 BSD version.""" + +toolchain = {'name': 'GCC', 'version': '4.9.4-2.25'} + +lapack_src = 'lapack-%s.tgz' % lapackver +large_src = 'large.tgz' +timing_src = 'timing.tgz' + +lapack_unpack_cmd = 'cd %(name)s-%(version)s; rm -rf lapack-netlib;' +lapack_unpack_cmd += 'mkdir lapack-netlib;' +lapack_unpack_cmd += 'tar -C lapack-netlib --strip-components=1 -zxf %s; cd -' + +sources = [ + 'v%(version)s.tar.gz', + (lapack_src, lapack_unpack_cmd), + large_src, + timing_src, +] +source_urls = [ + # order matters, trying to download the LAPACK tarball from GitHub causes trouble + "http://www.netlib.org/lapack/", + "http://www.netlib.org/lapack/timing/", + "https://github.com/xianyi/OpenBLAS/archive/", +] + +patches = [ + (large_src, '.'), + (timing_src, '.'), +] + +skipsteps = ['configure'] + +buildopts = 'BINARY=64 USE_THREAD=1 CC="$CC" FC="$F77" NO_AFFINITY=1' +installopts = "USE_THREAD=1 PREFIX=%(installdir)s" + +# extensive testing can be enabled by uncommenting the line below +#runtest = 'PATH=.:$PATH lapack-timing' + +sanity_check_paths = { + 'files': ['include/cblas.h', 'include/f77blas.h', 'include/lapacke_config.h', 'include/lapacke.h', + 'include/lapacke_mangling.h', 'include/lapacke_utils.h', 'include/openblas_config.h', + 'lib/libopenblas.a', 'lib/libopenblas.%s' % SHLIB_EXT], + 'dirs': [], +} + +moduleclass = 'numlib' diff --git a/o/OpenBLAS/OpenBLAS-0.2.18-GCC-5.3.0-2.26-LAPACK-3.6.0.eb b/o/OpenBLAS/OpenBLAS-0.2.18-GCC-5.3.0-2.26-LAPACK-3.6.0.eb new file mode 100644 index 00000000..d8f2e33a --- /dev/null +++ b/o/OpenBLAS/OpenBLAS-0.2.18-GCC-5.3.0-2.26-LAPACK-3.6.0.eb @@ -0,0 +1,51 @@ +easyblock = 'ConfigureMake' + +name = 'OpenBLAS' +version = '0.2.18' + +lapackver = '3.6.0' +versionsuffix = '-LAPACK-%s' % lapackver + +homepage = 'http://xianyi.github.com/OpenBLAS/' +description = """OpenBLAS is an optimized BLAS library based on GotoBLAS2 1.13 BSD version.""" + +toolchain = {'name': 'GCC', 'version': '5.3.0-2.26'} + +lapack_src = 'lapack-%s.tgz' % lapackver +large_src = 'large.tgz' +timing_src = 'timing.tgz' +sources = [ + 'v%(version)s.tar.gz', + lapack_src, + large_src, + timing_src, +] +source_urls = [ + # order matters, trying to download the LAPACK tarball from GitHub causes trouble + "http://www.netlib.org/lapack/", + "http://www.netlib.org/lapack/timing/", + "https://github.com/xianyi/OpenBLAS/archive/", +] + +patches = [ + (lapack_src, '.'), # copy LAPACK tarball to unpacked OpenBLAS dir + (large_src, '.'), + (timing_src, '.'), +] + +skipsteps = ['configure'] + +buildopts = 'BINARY=64 USE_THREAD=1 CC="$CC" FC="$F77" NO_AFFINITY=1' +installopts = "USE_THREAD=1 PREFIX=%(installdir)s" + +# extensive testing can be enabled by uncommenting the line below +#runtest = 'PATH=.:$PATH lapack-timing' + +sanity_check_paths = { + 'files': ['include/cblas.h', 'include/f77blas.h', 'include/lapacke_config.h', 'include/lapacke.h', + 'include/lapacke_mangling.h', 'include/lapacke_utils.h', 'include/openblas_config.h', + 'lib/libopenblas.a', 'lib/libopenblas.%s' % SHLIB_EXT], + 'dirs': [], +} + +moduleclass = 'numlib' diff --git a/o/OpenBLAS/OpenBLAS-0.2.18-GCC-5.4.0-2.26-LAPACK-3.6.0.eb b/o/OpenBLAS/OpenBLAS-0.2.18-GCC-5.4.0-2.26-LAPACK-3.6.0.eb new file mode 100644 index 00000000..3879abb7 --- /dev/null +++ b/o/OpenBLAS/OpenBLAS-0.2.18-GCC-5.4.0-2.26-LAPACK-3.6.0.eb @@ -0,0 +1,55 @@ +easyblock = 'ConfigureMake' + +name = 'OpenBLAS' +version = '0.2.18' + +lapackver = '3.6.0' +versionsuffix = '-LAPACK-%s' % lapackver + +homepage = 'http://xianyi.github.com/OpenBLAS/' +description = """OpenBLAS is an optimized BLAS library based on GotoBLAS2 1.13 BSD version.""" + +toolchain = {'name': 'GCC', 'version': '5.4.0-2.26'} + +lapack_src = 'lapack-%s.tgz' % lapackver +large_src = 'large.tgz' +timing_src = 'timing.tgz' + +lapack_unpack_cmd = 'cd %(name)s-%(version)s; rm -rf lapack-netlib;' +lapack_unpack_cmd += 'mkdir lapack-netlib;' +lapack_unpack_cmd += 'tar -C lapack-netlib --strip-components=1 -zxf %s; cd -' + +sources = [ + 'v%(version)s.tar.gz', + (lapack_src, lapack_unpack_cmd), + large_src, + timing_src, +] +source_urls = [ + # order matters, trying to download the LAPACK tarball from GitHub causes trouble + "http://www.netlib.org/lapack/", + "http://www.netlib.org/lapack/timing/", + "https://github.com/xianyi/OpenBLAS/archive/", +] + +patches = [ + (large_src, '.'), + (timing_src, '.'), +] + +skipsteps = ['configure'] + +buildopts = 'BINARY=64 USE_THREAD=1 CC="$CC" FC="$F77" NO_AFFINITY=1' +installopts = "USE_THREAD=1 PREFIX=%(installdir)s" + +# extensive testing can be enabled by uncommenting the line below +#runtest = 'PATH=.:$PATH lapack-timing' + +sanity_check_paths = { + 'files': ['include/cblas.h', 'include/f77blas.h', 'include/lapacke_config.h', 'include/lapacke.h', + 'include/lapacke_mangling.h', 'include/lapacke_utils.h', 'include/openblas_config.h', + 'lib/libopenblas.a', 'lib/libopenblas.%s' % SHLIB_EXT], + 'dirs': [], +} + +moduleclass = 'numlib' diff --git a/o/OpenBLAS/OpenBLAS-0.2.18-GCC-5.4.0-2.26-LAPACK-3.6.1.eb b/o/OpenBLAS/OpenBLAS-0.2.18-GCC-5.4.0-2.26-LAPACK-3.6.1.eb new file mode 100644 index 00000000..21a2a7c8 --- /dev/null +++ b/o/OpenBLAS/OpenBLAS-0.2.18-GCC-5.4.0-2.26-LAPACK-3.6.1.eb @@ -0,0 +1,55 @@ +easyblock = 'ConfigureMake' + +name = 'OpenBLAS' +version = '0.2.18' + +lapackver = '3.6.1' +versionsuffix = '-LAPACK-%s' % lapackver + +homepage = 'http://xianyi.github.com/OpenBLAS/' +description = """OpenBLAS is an optimized BLAS library based on GotoBLAS2 1.13 BSD version.""" + +toolchain = {'name': 'GCC', 'version': '5.4.0-2.26'} + +lapack_src = 'lapack-%s.tgz' % lapackver +large_src = 'large.tgz' +timing_src = 'timing.tgz' + +lapack_unpack_cmd = 'cd %(name)s-%(version)s; rm -rf lapack-netlib;' +lapack_unpack_cmd += 'mkdir lapack-netlib;' +lapack_unpack_cmd += 'tar -C lapack-netlib --strip-components=1 -zxf %s; cd -' + +sources = [ + 'v%(version)s.tar.gz', + (lapack_src, lapack_unpack_cmd), + large_src, + timing_src, +] +source_urls = [ + # order matters, trying to download the LAPACK tarball from GitHub causes trouble + "http://www.netlib.org/lapack/", + "http://www.netlib.org/lapack/timing/", + "https://github.com/xianyi/OpenBLAS/archive/", +] + +patches = [ + (large_src, '.'), + (timing_src, '.'), +] + +skipsteps = ['configure'] + +buildopts = 'BINARY=64 USE_THREAD=1 CC="$CC" FC="$F77" NO_AFFINITY=1' +installopts = "USE_THREAD=1 PREFIX=%(installdir)s" + +# extensive testing can be enabled by uncommenting the line below +#runtest = 'PATH=.:$PATH lapack-timing' + +sanity_check_paths = { + 'files': ['include/cblas.h', 'include/f77blas.h', 'include/lapacke_config.h', 'include/lapacke.h', + 'include/lapacke_mangling.h', 'include/lapacke_utils.h', 'include/openblas_config.h', + 'lib/libopenblas.a', 'lib/libopenblas.%s' % SHLIB_EXT], + 'dirs': [], +} + +moduleclass = 'numlib' diff --git a/o/OpenBLAS/OpenBLAS-0.2.19-GCC-5.4.0-2.26-LAPACK-3.6.0.eb b/o/OpenBLAS/OpenBLAS-0.2.19-GCC-5.4.0-2.26-LAPACK-3.6.0.eb new file mode 100644 index 00000000..fb89b757 --- /dev/null +++ b/o/OpenBLAS/OpenBLAS-0.2.19-GCC-5.4.0-2.26-LAPACK-3.6.0.eb @@ -0,0 +1,51 @@ +easyblock = 'ConfigureMake' + +name = 'OpenBLAS' +version = '0.2.19' + +lapackver = '3.6.0' +versionsuffix = '-LAPACK-%s' % lapackver + +homepage = 'http://xianyi.github.com/OpenBLAS/' +description = """OpenBLAS is an optimized BLAS library based on GotoBLAS2 1.13 BSD version.""" + +toolchain = {'name': 'GCC', 'version': '5.4.0-2.26'} + +lapack_src = 'lapack-%s.tgz' % lapackver +large_src = 'large.tgz' +timing_src = 'timing.tgz' +sources = [ + 'v%(version)s.tar.gz', + lapack_src, + large_src, + timing_src, +] +source_urls = [ + # order matters, trying to download the LAPACK tarball from GitHub causes trouble + "http://www.netlib.org/lapack/", + "http://www.netlib.org/lapack/timing/", + "https://github.com/xianyi/OpenBLAS/archive/", +] + +patches = [ + (lapack_src, '.'), # copy LAPACK tarball to unpacked OpenBLAS dir + (large_src, '.'), + (timing_src, '.'), +] + +skipsteps = ['configure'] + +buildopts = 'BINARY=64 USE_THREAD=1 CC="$CC" FC="$F77" NO_AFFINITY=1' +installopts = "USE_THREAD=1 PREFIX=%(installdir)s" + +# extensive testing can be enabled by uncommenting the line below +#runtest = 'PATH=.:$PATH lapack-timing' + +sanity_check_paths = { + 'files': ['include/cblas.h', 'include/f77blas.h', 'include/lapacke_config.h', 'include/lapacke.h', + 'include/lapacke_mangling.h', 'include/lapacke_utils.h', 'include/openblas_config.h', + 'lib/libopenblas.a', 'lib/libopenblas.%s' % SHLIB_EXT], + 'dirs': [], +} + +moduleclass = 'numlib' diff --git a/o/OpenBLAS/OpenBLAS-0.2.19-GCC-6.3.0-2.27-LAPACK-3.7.0.eb b/o/OpenBLAS/OpenBLAS-0.2.19-GCC-6.3.0-2.27-LAPACK-3.7.0.eb new file mode 100644 index 00000000..ba23eaad --- /dev/null +++ b/o/OpenBLAS/OpenBLAS-0.2.19-GCC-6.3.0-2.27-LAPACK-3.7.0.eb @@ -0,0 +1,56 @@ +easyblock = 'ConfigureMake' + +name = 'OpenBLAS' +version = '0.2.19' + +lapackver = '3.7.0' +versionsuffix = '-LAPACK-%s' % lapackver + +homepage = 'http://xianyi.github.com/OpenBLAS/' +description = """OpenBLAS is an optimized BLAS library based on GotoBLAS2 1.13 BSD version.""" + +toolchain = {'name': 'GCC', 'version': '6.3.0-2.27'} + +lapack_src = 'lapack-%s.tgz' % lapackver +large_src = 'large.tgz' +timing_src = 'timing.tgz' + +lapack_unpack_cmd = 'cd %(name)s-%(version)s; rm -rf lapack-netlib;' +lapack_unpack_cmd += 'mkdir lapack-netlib;' +lapack_unpack_cmd += 'tar -C lapack-netlib --strip-components=1 -zxf %s; cd -' + +sources = [ + 'v%(version)s.tar.gz', + (lapack_src, lapack_unpack_cmd), + large_src, + timing_src, +] +source_urls = [ + # order matters, trying to download the LAPACK tarball from GitHub causes trouble + "http://www.netlib.org/lapack/", + "http://www.netlib.org/lapack/timing/", + "https://github.com/xianyi/OpenBLAS/archive/", +] + +patches = [ + (large_src, '.'), + (timing_src, '.'), + 'OpenBLAS-%(version)s_LAPACK-3.7.0-fixes.patch', +] + +skipsteps = ['configure'] + +buildopts = 'BINARY=64 USE_THREAD=1 CC="$CC" FC="$F77" NO_AFFINITY=1' +installopts = "USE_THREAD=1 PREFIX=%(installdir)s" + +# extensive testing can be enabled by uncommenting the line below +#runtest = 'PATH=.:$PATH lapack-timing' + +sanity_check_paths = { + 'files': ['include/cblas.h', 'include/f77blas.h', 'include/lapacke_config.h', 'include/lapacke.h', + 'include/lapacke_mangling.h', 'include/lapacke_utils.h', 'include/openblas_config.h', + 'lib/libopenblas.a', 'lib/libopenblas.%s' % SHLIB_EXT], + 'dirs': [], +} + +moduleclass = 'numlib' diff --git a/o/OpenBLAS/OpenBLAS-0.2.6-gompi-1.4.10-LAPACK-3.4.2.eb b/o/OpenBLAS/OpenBLAS-0.2.6-gompi-1.4.10-LAPACK-3.4.2.eb new file mode 100644 index 00000000..bd9785f7 --- /dev/null +++ b/o/OpenBLAS/OpenBLAS-0.2.6-gompi-1.4.10-LAPACK-3.4.2.eb @@ -0,0 +1,53 @@ +easyblock = 'ConfigureMake' + +name = 'OpenBLAS' +version = '0.2.6' + +lapackver = '3.4.2' +versionsuffix = '-LAPACK-%s' % lapackver + +homepage = 'http://xianyi.github.com/OpenBLAS/' +description = """OpenBLAS is an optimized BLAS library based on GotoBLAS2 1.13 BSD version.""" + +toolchain = {'name': 'gompi', 'version': '1.4.10'} + +lapack_src = 'lapack-%s.tgz' % lapackver +large_src = 'large.tgz' +timing_src = 'timing.tgz' +sources = [ + 'v%(version)s.tar.gz', + lapack_src, + large_src, + timing_src, +] +source_urls = [ + # order matters, trying to download the LAPACK tarball from GitHub causes trouble + "http://www.netlib.org/lapack/", + "http://www.netlib.org/lapack/timing/", + "https://github.com/xianyi/OpenBLAS/archive/", +] + +patches = [ + 'OpenBLAS-%(version)s_Makefile-LAPACK-sources.patch', + (lapack_src, '.'), # copy LAPACK tarball to unpacked OpenBLAS dir + (large_src, '.'), + (timing_src, '.'), +] + +skipsteps = ['configure'] + +threading = 'USE_THREAD=1' +buildopts = 'BINARY=64 ' + threading + ' CC="$CC" FC="$F77"' +installopts = threading + " PREFIX=%(installdir)s" + +# extensive testing can be enabled by uncommenting the line below +#runtest = 'PATH=.:$PATH lapack-timing' + +sanity_check_paths = { + 'files': ['include/cblas.h', 'include/f77blas.h', 'include/lapacke_config.h', 'include/lapacke.h', + 'include/lapacke_mangling.h', 'include/lapacke_utils.h', 'include/openblas_config.h', + 'lib/libopenblas.a', 'lib/libopenblas.%s' % SHLIB_EXT], + 'dirs': [], +} + +moduleclass = 'numlib' diff --git a/o/OpenBLAS/OpenBLAS-0.2.6-ictce-5.3.0-LAPACK-3.4.2.eb b/o/OpenBLAS/OpenBLAS-0.2.6-ictce-5.3.0-LAPACK-3.4.2.eb new file mode 100644 index 00000000..16af9a12 --- /dev/null +++ b/o/OpenBLAS/OpenBLAS-0.2.6-ictce-5.3.0-LAPACK-3.4.2.eb @@ -0,0 +1,53 @@ +easyblock = 'ConfigureMake' + +name = 'OpenBLAS' +version = '0.2.6' + +lapackver = '3.4.2' +versionsuffix = '-LAPACK-%s' % lapackver + +homepage = 'http://xianyi.github.com/OpenBLAS/' +description = """OpenBLAS is an optimized BLAS library based on GotoBLAS2 1.13 BSD version.""" + +toolchain = {'name': 'ictce', 'version': '5.3.0'} + +lapack_src = 'lapack-%s.tgz' % lapackver +large_src = 'large.tgz' +timing_src = 'timing.tgz' +sources = [ + 'v%(version)s.tar.gz', + lapack_src, + large_src, + timing_src, +] +source_urls = [ + # order matters, trying to download the LAPACK tarball from GitHub causes trouble + "http://www.netlib.org/lapack/", + "http://www.netlib.org/lapack/timing/", + "https://github.com/xianyi/OpenBLAS/archive/", +] + +patches = [ + 'OpenBLAS-%(version)s_Makefile-LAPACK-sources.patch', + (lapack_src, '.'), # copy LAPACK tarball to unpacked OpenBLAS dir + (large_src, '.'), + (timing_src, '.'), +] + +skipsteps = ['configure'] + +threading = 'USE_THREAD=1' +buildopts = 'BINARY=64 ' + threading + ' CC="$CC" FC="$F77"' +installopts = threading + " PREFIX=%(installdir)s" + +# extensive testing can be enabled by uncommenting the line below +#runtest = 'PATH=.:$PATH lapack-timing' + +sanity_check_paths = { + 'files': ['include/cblas.h', 'include/f77blas.h', 'include/lapacke_config.h', 'include/lapacke.h', + 'include/lapacke_mangling.h', 'include/lapacke_utils.h', 'include/openblas_config.h', + 'lib/libopenblas.a', 'lib/libopenblas.%s' % SHLIB_EXT], + 'dirs': [], +} + +moduleclass = 'numlib' diff --git a/o/OpenBLAS/OpenBLAS-0.2.8-gompi-1.5.12-LAPACK-3.5.0.eb b/o/OpenBLAS/OpenBLAS-0.2.8-gompi-1.5.12-LAPACK-3.5.0.eb new file mode 100644 index 00000000..81e56348 --- /dev/null +++ b/o/OpenBLAS/OpenBLAS-0.2.8-gompi-1.5.12-LAPACK-3.5.0.eb @@ -0,0 +1,52 @@ +easyblock = 'ConfigureMake' + +name = 'OpenBLAS' +version = '0.2.8' + +lapackver = '3.5.0' +versionsuffix = '-LAPACK-%s' % lapackver + +homepage = 'http://xianyi.github.com/OpenBLAS/' +description = """OpenBLAS is an optimized BLAS library based on GotoBLAS2 1.13 BSD version.""" + +toolchain = {'name': 'gompi', 'version': '1.5.12'} + +lapack_src = 'lapack-%s.tgz' % lapackver +large_src = 'large.tgz' +timing_src = 'timing.tgz' +sources = [ + 'v%(version)s.tar.gz', + lapack_src, + large_src, + timing_src, +] +source_urls = [ + # order matters, trying to download the LAPACK tarball from GitHub causes trouble + "http://www.netlib.org/lapack/", + "http://www.netlib.org/lapack/timing/", + "https://github.com/xianyi/OpenBLAS/archive/", +] + +patches = [ + (lapack_src, '.'), # copy LAPACK tarball to unpacked OpenBLAS dir + (large_src, '.'), + (timing_src, '.'), +] + +skipsteps = ['configure'] + +threading = 'USE_THREAD=1' +buildopts = 'BINARY=64 ' + threading + ' CC="$CC" FC="$F77"' +installopts = threading + " PREFIX=%(installdir)s" + +# extensive testing can be enabled by uncommenting the line below +#runtest = 'PATH=.:$PATH lapack-timing' + +sanity_check_paths = { + 'files': ['include/cblas.h', 'include/f77blas.h', 'include/lapacke_config.h', 'include/lapacke.h', + 'include/lapacke_mangling.h', 'include/lapacke_utils.h', 'include/openblas_config.h', + 'lib/libopenblas.a', 'lib/libopenblas.%s' % SHLIB_EXT], + 'dirs': [], +} + +moduleclass = 'numlib' diff --git a/o/OpenBLAS/OpenBLAS-0.2.8-gompi-1.5.14-LAPACK-3.5.0.eb b/o/OpenBLAS/OpenBLAS-0.2.8-gompi-1.5.14-LAPACK-3.5.0.eb new file mode 100644 index 00000000..c183debe --- /dev/null +++ b/o/OpenBLAS/OpenBLAS-0.2.8-gompi-1.5.14-LAPACK-3.5.0.eb @@ -0,0 +1,52 @@ +easyblock = 'ConfigureMake' + +name = 'OpenBLAS' +version = '0.2.8' + +lapackver = '3.5.0' +versionsuffix = '-LAPACK-%s' % lapackver + +homepage = 'http://xianyi.github.com/OpenBLAS/' +description = """OpenBLAS is an optimized BLAS library based on GotoBLAS2 1.13 BSD version.""" + +toolchain = {'name': 'gompi', 'version': '1.5.14'} + +lapack_src = 'lapack-%s.tgz' % lapackver +large_src = 'large.tgz' +timing_src = 'timing.tgz' +sources = [ + 'v%(version)s.tar.gz', + lapack_src, + large_src, + timing_src, +] +source_urls = [ + # order matters, trying to download the LAPACK tarball from GitHub causes trouble + "http://www.netlib.org/lapack/", + "http://www.netlib.org/lapack/timing/", + "https://github.com/xianyi/OpenBLAS/archive/", +] + +patches = [ + (lapack_src, '.'), # copy LAPACK tarball to unpacked OpenBLAS dir + (large_src, '.'), + (timing_src, '.'), +] + +skipsteps = ['configure'] + +threading = 'USE_THREAD=1' +buildopts = 'BINARY=64 ' + threading + ' CC="$CC" FC="$F77"' +installopts = threading + " PREFIX=%(installdir)s" + +# extensive testing can be enabled by uncommenting the line below +#runtest = 'PATH=.:$PATH lapack-timing' + +sanity_check_paths = { + 'files': ['include/cblas.h', 'include/f77blas.h', 'include/lapacke_config.h', 'include/lapacke.h', + 'include/lapacke_mangling.h', 'include/lapacke_utils.h', 'include/openblas_config.h', + 'lib/libopenblas.a', 'lib/libopenblas.%s' % SHLIB_EXT], + 'dirs': [], +} + +moduleclass = 'numlib' diff --git a/o/OpenBLAS/OpenBLAS-0.2.8-gompi-1.6.10-LAPACK-3.4.2.eb b/o/OpenBLAS/OpenBLAS-0.2.8-gompi-1.6.10-LAPACK-3.4.2.eb new file mode 100644 index 00000000..ba2f665b --- /dev/null +++ b/o/OpenBLAS/OpenBLAS-0.2.8-gompi-1.6.10-LAPACK-3.4.2.eb @@ -0,0 +1,52 @@ +easyblock = 'ConfigureMake' + +name = 'OpenBLAS' +version = '0.2.8' + +lapackver = '3.4.2' +versionsuffix = '-LAPACK-%s' % lapackver + +homepage = 'http://xianyi.github.com/OpenBLAS/' +description = """OpenBLAS is an optimized BLAS library based on GotoBLAS2 1.13 BSD version.""" + +toolchain = {'name': 'gompi', 'version': '1.6.10'} + +lapack_src = 'lapack-%s.tgz' % lapackver +large_src = 'large.tgz' +timing_src = 'timing.tgz' +sources = [ + 'v%(version)s.tar.gz', + lapack_src, + large_src, + timing_src, +] +source_urls = [ + # order matters, trying to download the LAPACK tarball from GitHub causes trouble + "http://www.netlib.org/lapack/", + "http://www.netlib.org/lapack/timing/", + "https://github.com/xianyi/OpenBLAS/archive/", +] + +patches = [ + (lapack_src, '.'), # copy LAPACK tarball to unpacked OpenBLAS dir + (large_src, '.'), + (timing_src, '.'), +] + +skipsteps = ['configure'] + +threading = 'USE_THREAD=1' +buildopts = 'BINARY=64 ' + threading + ' CC="$CC" FC="$F77"' +installopts = threading + " PREFIX=%(installdir)s" + +# extensive testing can be enabled by uncommenting the line below +#runtest = 'PATH=.:$PATH lapack-timing' + +sanity_check_paths = { + 'files': ['include/cblas.h', 'include/f77blas.h', 'include/lapacke_config.h', 'include/lapacke.h', + 'include/lapacke_mangling.h', 'include/lapacke_utils.h', 'include/openblas_config.h', + 'lib/libopenblas.a', 'lib/libopenblas.%s' % SHLIB_EXT], + 'dirs': [], +} + +moduleclass = 'numlib' diff --git a/o/OpenBLAS/OpenBLAS-0.2.8-ictce-5.3.0-LAPACK-3.4.2.eb b/o/OpenBLAS/OpenBLAS-0.2.8-ictce-5.3.0-LAPACK-3.4.2.eb new file mode 100644 index 00000000..dbc806f4 --- /dev/null +++ b/o/OpenBLAS/OpenBLAS-0.2.8-ictce-5.3.0-LAPACK-3.4.2.eb @@ -0,0 +1,52 @@ +easyblock = 'ConfigureMake' + +name = 'OpenBLAS' +version = '0.2.8' + +lapackver = '3.4.2' +versionsuffix = '-LAPACK-%s' % lapackver + +homepage = 'http://xianyi.github.com/OpenBLAS/' +description = """OpenBLAS is an optimized BLAS library based on GotoBLAS2 1.13 BSD version.""" + +toolchain = {'name': 'ictce', 'version': '5.3.0'} + +lapack_src = 'lapack-%s.tgz' % lapackver +large_src = 'large.tgz' +timing_src = 'timing.tgz' +sources = [ + 'v%(version)s.tar.gz', + lapack_src, + large_src, + timing_src, +] +source_urls = [ + # order matters, trying to download the LAPACK tarball from GitHub causes trouble + "http://www.netlib.org/lapack/", + "http://www.netlib.org/lapack/timing/", + "https://github.com/xianyi/OpenBLAS/archive/", +] + +patches = [ + (lapack_src, '.'), # copy LAPACK tarball to unpacked OpenBLAS dir + (large_src, '.'), + (timing_src, '.'), +] + +skipsteps = ['configure'] + +threading = 'USE_THREAD=1' +buildopts = 'BINARY=64 ' + threading + ' CC="$CC" FC="$F77"' +installopts = threading + " PREFIX=%(installdir)s" + +# extensive testing can be enabled by uncommenting the line below +#runtest = 'PATH=.:$PATH lapack-timing' + +sanity_check_paths = { + 'files': ['include/cblas.h', 'include/f77blas.h', 'include/lapacke_config.h', 'include/lapacke.h', + 'include/lapacke_mangling.h', 'include/lapacke_utils.h', 'include/openblas_config.h', + 'lib/libopenblas.a', 'lib/libopenblas.%s' % SHLIB_EXT], + 'dirs': [], +} + +moduleclass = 'numlib' diff --git a/o/OpenBLAS/OpenBLAS-0.2.9-GCC-4.8.3-LAPACK-3.5.0.eb b/o/OpenBLAS/OpenBLAS-0.2.9-GCC-4.8.3-LAPACK-3.5.0.eb new file mode 100644 index 00000000..d0e54d09 --- /dev/null +++ b/o/OpenBLAS/OpenBLAS-0.2.9-GCC-4.8.3-LAPACK-3.5.0.eb @@ -0,0 +1,51 @@ +easyblock = 'ConfigureMake' + +name = 'OpenBLAS' +version = '0.2.9' + +lapackver = '3.5.0' +versionsuffix = '-LAPACK-%s' % lapackver + +homepage = 'http://xianyi.github.com/OpenBLAS/' +description = """OpenBLAS is an optimized BLAS library based on GotoBLAS2 1.13 BSD version.""" + +toolchain = {'name': 'GCC', 'version': '4.8.3'} + +lapack_src = 'lapack-%s.tgz' % lapackver +large_src = 'large.tgz' +timing_src = 'timing.tgz' +sources = [ + 'v%(version)s.tar.gz', + lapack_src, + large_src, + timing_src, +] +source_urls = [ + # order matters, trying to download the LAPACK tarball from GitHub causes trouble + "http://www.netlib.org/lapack/", + "http://www.netlib.org/lapack/timing/", + "https://github.com/xianyi/OpenBLAS/archive/", +] + +patches = [ + (lapack_src, '.'), # copy LAPACK tarball to unpacked OpenBLAS dir + (large_src, '.'), + (timing_src, '.'), +] + +skipsteps = ['configure'] + +buildopts = 'BINARY=64 USE_THREAD=1 CC="$CC" FC="$F77" NO_AFFINITY=1' +installopts = "USE_THREAD=1 PREFIX=%(installdir)s" + +# extensive testing can be enabled by uncommenting the line below +#runtest = 'PATH=.:$PATH lapack-timing' + +sanity_check_paths = { + 'files': ['include/cblas.h', 'include/f77blas.h', 'include/lapacke_config.h', 'include/lapacke.h', + 'include/lapacke_mangling.h', 'include/lapacke_utils.h', 'include/openblas_config.h', + 'lib/libopenblas.a', 'lib/libopenblas.%s' % SHLIB_EXT], + 'dirs': [], +} + +moduleclass = 'numlib' diff --git a/o/OpenCL-builder/OpenCL-builder-2015.eb b/o/OpenCL-builder/OpenCL-builder-2015.eb new file mode 100644 index 00000000..26fe3ed3 --- /dev/null +++ b/o/OpenCL-builder/OpenCL-builder-2015.eb @@ -0,0 +1,34 @@ +easyblock = 'OpenCL' + +name = 'OpenCL-builder' +version = '2015' + +homepage = 'https://software.intel.com/en-us/intel-opencl' +description = """OpenCL™ is the first open, royalty-free standard for cross-platform, +parallel programming of modern processors found in personal computers, servers and handheld/embedded devices. +OpenCL (Open Computing Language) greatly improves speed and responsiveness for a wide spectrum of applications +in numerous market categories from gaming and entertainment to scientific and medical software. + +This is builder (formerly runtime) package. +""" + +toolchain = {'name': 'dummy', 'version': 'dummy'} + +source_urls = [ + # Use manually downloaded sources +] + +sources = ['intel_code_builder_for_opencl_2015_5.0.0.62_x64.tgz'] + +# license file +import os +license_file = os.path.join(os.getenv('HOME'), "licenses", "intel", "license.lic") + +skipsteps = ['build'] + +sanity_check_paths = { + 'files': [''], + 'dirs': ['lib64'], +} + +moduleclass = 'lang' diff --git a/o/OpenCL-runtime/OpenCL-runtime-15.1.eb b/o/OpenCL-runtime/OpenCL-runtime-15.1.eb new file mode 100644 index 00000000..677cd49a --- /dev/null +++ b/o/OpenCL-runtime/OpenCL-runtime-15.1.eb @@ -0,0 +1,32 @@ +easyblock = 'OpenCL' + +name = 'OpenCL-runtime' +version = '15.1' + +homepage = 'https://software.intel.com/en-us/intel-opencl' +description = """OpenCL™ is the first open, royalty-free standard for cross-platform, +parallel programming of modern processors found in personal computers, servers and handheld/embedded devices. +OpenCL (Open Computing Language) greatly improves speed and responsiveness for a wide spectrum of applications +in numerous market categories from gaming and entertainment to scientific and medical software. +""" + +toolchain = {'name': 'dummy', 'version': 'dummy'} + +source_urls = [ + # Use manually downloaded sources +] + +sources = ['opencl_runtime_15.1_x64_5.0.0.57.tgz'] + +# license file +import os +license_file = os.path.join(os.getenv('HOME'), "licenses", "intel", "license.lic") + +skipsteps = ['build'] + +sanity_check_paths = { + 'files': [''], + 'dirs': ['lib64'], +} + +moduleclass = 'lang' diff --git a/o/OpenCV/OpenCV-3.0.0-intel-2015b.eb b/o/OpenCV/OpenCV-3.0.0-intel-2015b.eb new file mode 100644 index 00000000..ff9b25ec --- /dev/null +++ b/o/OpenCV/OpenCV-3.0.0-intel-2015b.eb @@ -0,0 +1,77 @@ +easyblock = 'CMakeMake' + +name = 'OpenCV' +version = '3.0.0' + +homepage = 'http://opencv.org/' +description = """OpenCV (Open Source Computer Vision Library) is an open source computer vision + and machine learning software library. OpenCV was built to provide + a common infrastructure for computer vision applications and to accelerate + the use of machine perception in the commercial products.""" + +toolchain = {'name': 'intel', 'version': '2015b'} +toolchainopts = {'opt': True, 'optarch': True} + +sources = [SOURCELOWER_ZIP] +source_urls = [('http://sourceforge.net/projects/opencvlibrary/files/opencv-unix/%(version)s', 'download')] + +patches = ['OpenCV-%(version)s_with_IPP.patch'] + +osdependencies = ['gtk2-devel'] + +builddependencies = [ + ('CMake', '3.0.0'), +] + +python = 'Python' +pythonver = '2.7.8' +pythonshortver = '.'.join(pythonver.split('.')[0:2]) +java = 'Java' +javaver = '1.7.0_79' + +dependencies = [ + (python, pythonver), + ('zlib', '1.2.8'), + ('ffmpeg', '2.4'), + ('libjpeg-turbo', '1.4.0'), + ('libpng', '1.6.12'), + ('LibTIFF', '4.0.3'), + ('JasPer', '1.900.1'), + (java, javaver ,'', True), + ('ant', '1.9.3', '-%s-%s' % (java,javaver), True), + ('GLib', '2.40.0') +] + +preconfigopts = 'export IPPROOT=$EBROOTICC/ipp && ' + +configopts = '-DCMAKE_BUILD_TYPE=RELEASE ' +configopts += '-DBUILD_PYTHON_SUPPORT=ON ' +configopts += '-DPYTHON_PACKAGES_PATH=$EBROOTPYTHON/lib/python%s/site-packages ' % pythonshortver +configopts += '-DBUILD_NEW_PYTHON_SUPPORT=ON ' +configopts += '-DZLIB_LIBRARY=$EBROOTZLIB/lib/libz.so ' +configopts += '-DZLIB_INCLUDE_DIR=$EBROOTZLIB/include ' +configopts += '-DTIFF_LIBRARY=$EBROOTLIBTIFF/lib/libtiff.so ' +configopts += '-DTIFF_INCLUDE_DIR=$EBROOTLIBTIFF/include ' +configopts += '-DPNG_LIBRARY=$EBROOTLIBPNG/lib/libpng.so ' +configopts += '-DPNG_INCLUDE_DIR=$EBROOTLIBPNG/include ' +configopts += '-DJPEG_LIBRARY=$EBROOTLIBJPEGMINTURBO/lib/libjpeg.so ' +configopts += '-DJPEG_INCLUDE_DIR=$EBROOTLIBJPEGMINTURBO/include ' +configopts += '-DJASPER_LIBRARY=$EBROOTJASPER/lib/libjasper.a ' +configopts += '-DJASPER_INCLUDE_DIR=$EBROOTJASPER/include ' +configopts += '-DWITH_IPP=ON ' +configopts += '-DENABLE_SSE=ON -DENABLE_SSE2=ON -DENABLE_SSE3=ON ' +configopts += '-DENABLE_AVX=ON -DENABLE_AVX2=ON -DENABLE_FMA3=ON -DENABLE_SSE41=ON -DENABLE_SSE42=ON ' +configopts += '-DWITH_CUDA=OFF ' + +sanity_check_paths = { + 'files': ['lib/libopencv_core.so'] + + [ 'bin/opencv_%s' % x for x in ['createsamples', 'traincascade'] ], + 'dirs': ['include'] +} + +modextrapaths = { + 'PYTHONPATH': 'lib/python%s/site-packages' % pythonshortver, + 'CLASSPATH': 'share/OpenCV/java', +} + +moduleclass = 'vis' diff --git a/o/OpenCV/OpenCV-3.0.0_with_IPP.patch b/o/OpenCV/OpenCV-3.0.0_with_IPP.patch new file mode 100644 index 00000000..e6f7f9f5 --- /dev/null +++ b/o/OpenCV/OpenCV-3.0.0_with_IPP.patch @@ -0,0 +1,263 @@ +From 1f983ec39c97298b0c8ce409a1cc229ecf14e55c Mon Sep 17 00:00:00 2001 +From: Maksim Shabunin +Date: Tue, 9 Jun 2015 13:59:48 +0300 +Subject: [PATCH 1/2] Fixed compilation of pthread-based parallel_for with gcc + 4.4.3 + +--- + modules/core/src/parallel.cpp | 12 +++++++----- + 1 file changed, 7 insertions(+), 5 deletions(-) + +diff --git a/modules/core/src/parallel.cpp b/modules/core/src/parallel.cpp +index b1e7567..0b593ee 100644 +--- a/modules/core/src/parallel.cpp ++++ b/modules/core/src/parallel.cpp +@@ -132,8 +132,14 @@ + namespace cv + { + ParallelLoopBody::~ParallelLoopBody() {} ++#if defined HAVE_PTHREADS && HAVE_PTHREADS ++ void parallel_for_pthreads(const cv::Range& range, const cv::ParallelLoopBody& body, double nstripes); ++ size_t parallel_pthreads_get_threads_num(); ++ void parallel_pthreads_set_threads_num(int num); ++#endif + } + ++ + namespace + { + #ifdef CV_PARALLEL_FRAMEWORK +@@ -301,7 +307,7 @@ void cv::parallel_for_(const cv::Range& range, const cv::ParallelLoopBody& body, + } + + #elif defined HAVE_PTHREADS +- void parallel_for_pthreads(const Range& range, const ParallelLoopBody& body, double nstripes); ++ + parallel_for_pthreads(range, body, nstripes); + + #else +@@ -361,8 +367,6 @@ int cv::getNumThreads(void) + + #elif defined HAVE_PTHREADS + +- size_t parallel_pthreads_get_threads_num(); +- + return parallel_pthreads_get_threads_num(); + + #else +@@ -424,8 +428,6 @@ void cv::setNumThreads( int threads ) + + #elif defined HAVE_PTHREADS + +- void parallel_pthreads_set_threads_num(int num); +- + parallel_pthreads_set_threads_num(threads); + + #endif + +From a482dcce464acbd5368fb93c6c3d52ba8401776a Mon Sep 17 00:00:00 2001 +From: Alexander Alekhin +Date: Thu, 11 Jun 2015 16:53:07 +0300 +Subject: [PATCH 2/2] fix support for pthreads parallel_for + +--- + CMakeLists.txt | 29 ++++++++++++++++++++++------- + cmake/OpenCVFindLibsPerf.cmake | 14 +++++++++----- + cmake/templates/cvconfig.h.in | 6 ++++++ + modules/core/src/parallel.cpp | 13 ++++++++----- + modules/core/src/parallel_pthreads.cpp | 2 +- + modules/core/src/precomp.hpp | 6 ------ + 6 files changed, 46 insertions(+), 24 deletions(-) + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index d9a17b3..27d8470 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -188,7 +188,7 @@ OCV_OPTION(WITH_QUICKTIME "Use QuickTime for Video I/O insted of QTKit" OFF + OCV_OPTION(WITH_TBB "Include Intel TBB support" OFF IF (NOT IOS AND NOT WINRT) ) + OCV_OPTION(WITH_OPENMP "Include OpenMP support" OFF) + OCV_OPTION(WITH_CSTRIPES "Include C= support" OFF IF (WIN32 AND NOT WINRT) ) +-OCV_OPTION(WITH_PTHREADS_PF "Use pthreads-based parallel_for" OFF IF (NOT WIN32) ) ++OCV_OPTION(WITH_PTHREADS_PF "Use pthreads-based parallel_for" ON IF (NOT WIN32) ) + OCV_OPTION(WITH_TIFF "Include TIFF support" ON IF (NOT IOS) ) + OCV_OPTION(WITH_UNICAP "Include Unicap support (GPL)" OFF IF (UNIX AND NOT APPLE AND NOT ANDROID) ) + OCV_OPTION(WITH_V4L "Include Video 4 Linux support" ON IF (UNIX AND NOT ANDROID) ) +@@ -1026,6 +1026,27 @@ if(DEFINED WITH_GPHOTO2) + endif(DEFINED WITH_GPHOTO2) + + ++# Order is similar to CV_PARALLEL_FRAMEWORK in core/src/parallel.cpp ++ocv_clear_vars(CV_PARALLEL_FRAMEWORK) ++if(HAVE_TBB) ++ set(CV_PARALLEL_FRAMEWORK "TBB (ver ${TBB_VERSION_MAJOR}.${TBB_VERSION_MINOR} interface ${TBB_INTERFACE_VERSION})") ++elseif(HAVE_CSTRIPES) ++ set(CV_PARALLEL_FRAMEWORK "C=") ++elseif(HAVE_OPENMP) ++ set(CV_PARALLEL_FRAMEWORK "OpenMP") ++elseif(HAVE_GCD) ++ set(CV_PARALLEL_FRAMEWORK "GCD") ++elseif(WINRT OR HAVE_CONCURRENCY) ++ set(CV_PARALLEL_FRAMEWORK "Concurrency") ++elseif(HAVE_PTHREADS_PF) ++ set(CV_PARALLEL_FRAMEWORK "pthreads") ++else() ++ set(CV_PARALLEL_FRAMEWORK "none") ++endif() ++status("") ++status(" Parallel framework:" TRUE THEN "${CV_PARALLEL_FRAMEWORK}" ELSE NO) ++ ++ + # ========================== Other third-party libraries ========================== + status("") + status(" Other third-party libraries:") +@@ -1045,12 +1066,6 @@ status(" Use IPP Async:" HAVE_IPP_A THEN "YES" ELSE NO) + endif(DEFINED WITH_IPP_A) + + status(" Use Eigen:" HAVE_EIGEN THEN "YES (ver ${EIGEN_WORLD_VERSION}.${EIGEN_MAJOR_VERSION}.${EIGEN_MINOR_VERSION})" ELSE NO) +-status(" Use TBB:" HAVE_TBB THEN "YES (ver ${TBB_VERSION_MAJOR}.${TBB_VERSION_MINOR} interface ${TBB_INTERFACE_VERSION})" ELSE NO) +-status(" Use OpenMP:" HAVE_OPENMP THEN YES ELSE NO) +-status(" Use GCD" HAVE_GCD THEN YES ELSE NO) +-status(" Use Concurrency" HAVE_CONCURRENCY THEN YES ELSE NO) +-status(" Use C=:" HAVE_CSTRIPES THEN YES ELSE NO) +-status(" Use pthreads for parallel for:" HAVE_PTHREADS_PF THEN YES ELSE NO) + status(" Use Cuda:" HAVE_CUDA THEN "YES (ver ${CUDA_VERSION_STRING})" ELSE NO) + status(" Use OpenCL:" HAVE_OPENCL THEN YES ELSE NO) + +diff --git a/cmake/OpenCVFindLibsPerf.cmake b/cmake/OpenCVFindLibsPerf.cmake +index bda5d79..d1bc541 100644 +--- a/cmake/OpenCVFindLibsPerf.cmake ++++ b/cmake/OpenCVFindLibsPerf.cmake +@@ -120,12 +120,16 @@ if(WITH_OPENMP) + set(HAVE_OPENMP "${OPENMP_FOUND}") + endif() + +-if(UNIX OR ANDROID) +-if(NOT APPLE AND NOT HAVE_TBB AND NOT HAVE_OPENMP) +- set(HAVE_PTHREADS_PF 1) +-else() +- set(HAVE_PTHREADS_PF 0) ++if(NOT MSVC AND NOT DEFINED HAVE_PTHREADS) ++ set(_fname "${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/pthread_test.cpp") ++ file(WRITE "${_fname}" "#include \nint main() { (void)pthread_self(); return 0; }\n") ++ try_compile(HAVE_PTHREADS "${CMAKE_BINARY_DIR}" "${_fname}") ++ file(REMOVE "${_fname}") + endif() ++ ++ocv_clear_vars(HAVE_PTHREADS_PF) ++if(WITH_PTHREADS_PF) ++ set(HAVE_PTHREADS_PF ${HAVE_PTHREADS}) + else() + set(HAVE_PTHREADS_PF 0) + endif() +diff --git a/cmake/templates/cvconfig.h.in b/cmake/templates/cvconfig.h.in +index 4a1d1c6..3330774 100644 +--- a/cmake/templates/cvconfig.h.in ++++ b/cmake/templates/cvconfig.h.in +@@ -139,6 +139,12 @@ + /* PNG codec */ + #cmakedefine HAVE_PNG + ++/* Posix threads (pthreads) */ ++#cmakedefine HAVE_PTHREADS ++ ++/* parallel_for with pthreads */ ++#cmakedefine HAVE_PTHREADS_PF ++ + /* Qt support */ + #cmakedefine HAVE_QT + +diff --git a/modules/core/src/parallel.cpp b/modules/core/src/parallel.cpp +index 0b593ee..caa8129 100644 +--- a/modules/core/src/parallel.cpp ++++ b/modules/core/src/parallel.cpp +@@ -80,6 +80,7 @@ + 4. HAVE_GCD - system wide, used automatically (APPLE only) + 5. WINRT - system wide, used automatically (Windows RT only) + 6. HAVE_CONCURRENCY - part of runtime, used automatically (Windows only - MSVS 10, MSVS 11) ++ 7. HAVE_PTHREADS_PF - pthreads if available + */ + + #if defined HAVE_TBB +@@ -125,14 +126,14 @@ + # define CV_PARALLEL_FRAMEWORK "winrt-concurrency" + #elif defined HAVE_CONCURRENCY + # define CV_PARALLEL_FRAMEWORK "ms-concurrency" +-#elif defined HAVE_PTHREADS ++#elif defined HAVE_PTHREADS_PF + # define CV_PARALLEL_FRAMEWORK "pthreads" + #endif + + namespace cv + { + ParallelLoopBody::~ParallelLoopBody() {} +-#if defined HAVE_PTHREADS && HAVE_PTHREADS ++#ifdef HAVE_PTHREADS_PF + void parallel_for_pthreads(const cv::Range& range, const cv::ParallelLoopBody& body, double nstripes); + size_t parallel_pthreads_get_threads_num(); + void parallel_pthreads_set_threads_num(int num); +@@ -306,7 +307,7 @@ void cv::parallel_for_(const cv::Range& range, const cv::ParallelLoopBody& body, + Concurrency::CurrentScheduler::Detach(); + } + +-#elif defined HAVE_PTHREADS ++#elif defined HAVE_PTHREADS_PF + + parallel_for_pthreads(range, body, nstripes); + +@@ -365,7 +366,7 @@ int cv::getNumThreads(void) + ? Concurrency::CurrentScheduler::Get()->GetNumberOfVirtualProcessors() + : pplScheduler->GetNumberOfVirtualProcessors()); + +-#elif defined HAVE_PTHREADS ++#elif defined HAVE_PTHREADS_PF + + return parallel_pthreads_get_threads_num(); + +@@ -426,7 +427,7 @@ void cv::setNumThreads( int threads ) + Concurrency::MaxConcurrency, threads-1)); + } + +-#elif defined HAVE_PTHREADS ++#elif defined HAVE_PTHREADS_PF + + parallel_pthreads_set_threads_num(threads); + +@@ -452,6 +453,8 @@ int cv::getThreadNum(void) + return 0; + #elif defined HAVE_CONCURRENCY + return std::max(0, (int)Concurrency::Context::VirtualProcessorId()); // zero for master thread, unique number for others but not necessary 1,2,3,... ++#elif defined HAVE_PTHREADS_PF ++ return (int)(size_t)(void*)pthread_self(); // no zero-based indexing + #else + return 0; + #endif +diff --git a/modules/core/src/parallel_pthreads.cpp b/modules/core/src/parallel_pthreads.cpp +index 8c34959..091ea2d 100644 +--- a/modules/core/src/parallel_pthreads.cpp ++++ b/modules/core/src/parallel_pthreads.cpp +@@ -42,7 +42,7 @@ + + #include "precomp.hpp" + +-#if defined HAVE_PTHREADS && HAVE_PTHREADS ++#ifdef HAVE_PTHREADS_PF + + #include + #include +diff --git a/modules/core/src/precomp.hpp b/modules/core/src/precomp.hpp +index d463126..88b60e4 100644 +--- a/modules/core/src/precomp.hpp ++++ b/modules/core/src/precomp.hpp +@@ -292,12 +292,6 @@ TLSData& getCoreTlsData(); + #define CL_RUNTIME_EXPORT + #endif + +-#ifndef HAVE_PTHREADS +-#if !(defined WIN32 || defined _WIN32 || defined WINCE || defined HAVE_WINRT) +-#define HAVE_PTHREADS 1 +-#endif +-#endif +- + extern bool __termination; // skip some cleanups, because process is terminating + // (for example, if ExitProcess() was already called) + diff --git a/o/OpenCV/OpenCV-3.1.0-foss-2016a.eb b/o/OpenCV/OpenCV-3.1.0-foss-2016a.eb new file mode 100644 index 00000000..f835d278 --- /dev/null +++ b/o/OpenCV/OpenCV-3.1.0-foss-2016a.eb @@ -0,0 +1,67 @@ +easyblock = 'CMakeMake' + +name = 'OpenCV' +version = '3.1.0' + +homepage = 'http://opencv.org/' +description = """OpenCV (Open Source Computer Vision Library) is an open source computer vision + and machine learning software library. OpenCV was built to provide + a common infrastructure for computer vision applications and to accelerate + the use of machine perception in the commercial products.""" + +toolchain = {'name': 'foss', 'version': '2016a'} + +source_urls = ['https://github.com/Itseez/opencv/archive/'] +sources = ['%(version)s.zip'] + +builddependencies = [ + ('CMake', '3.5.2'), +] + +dependencies = [ + ('Python', '2.7.11'), + ('zlib', '1.2.8'), + ('FFmpeg', '3.0.2'), + ('libjpeg-turbo', '1.4.2', '-NASM-2.12.01'), + ('libpng', '1.6.21'), + ('LibTIFF', '4.0.6'), + ('JasPer', '1.900.1'), + ('Java', '1.8.0_92', '', True), + ('ant', '1.9.7', '-Java-%(javaver)s', True), + ('GLib', '2.48.0'), + ('GTK+', '2.24.30'), + ('GStreamer', '1.6.4'), + ('GST-plugins-base', '1.6.4'), +] + +configopts = '-DCMAKE_BUILD_TYPE=RELEASE ' +configopts += '-DBUILD_PYTHON_SUPPORT=ON ' +configopts += '-DPYTHON_PACKAGES_PATH=%(installdir)s/lib/python%(pyshortver)s/site-packages ' +configopts += '-DBUILD_NEW_PYTHON_SUPPORT=ON ' +configopts += '-DZLIB_LIBRARY=$EBROOTZLIB/lib/libz.%s ' % SHLIB_EXT +configopts += '-DZLIB_INCLUDE_DIR=$EBROOTZLIB/include ' +configopts += '-DTIFF_LIBRARY=$EBROOTLIBTIFF/lib/libtiff.%s ' % SHLIB_EXT +configopts += '-DTIFF_INCLUDE_DIR=$EBROOTLIBTIFF/include ' +configopts += '-DPNG_LIBRARY=$EBROOTLIBPNG/lib/libpng.%s ' % SHLIB_EXT +configopts += '-DPNG_INCLUDE_DIR=$EBROOTLIBPNG/include ' +configopts += '-DJPEG_LIBRARY=$EBROOTLIBJPEGMINTURBO/lib/libjpeg.%s ' % SHLIB_EXT +configopts += '-DJPEG_INCLUDE_DIR=$EBROOTLIBJPEGMINTURBO/include ' +configopts += '-DJASPER_LIBRARY=$EBROOTJASPER/lib/libjasper.a ' +configopts += '-DJASPER_INCLUDE_DIR=$EBROOTJASPER/include ' +configopts += '-DWITH_IPP=ON ' +configopts += '-DENABLE_SSE=ON -DENABLE_SSE2=ON -DENABLE_SSE3=ON ' +configopts += '-DWITH_CUDA=OFF ' + +sanity_check_paths = { + 'files': ['lib/libopencv_core.%s' % SHLIB_EXT ] + + ['lib/python%%(pyshortver)s/site-packages/cv2.%s' % SHLIB_EXT ] + + ['bin/opencv_%s' % x for x in ['annotation', 'createsamples', 'traincascade']], + 'dirs': ['include'] +} + +modextrapaths = { + 'PYTHONPATH': 'lib/python%(pyshortver)s/site-packages', + 'CLASSPATH': 'share/OpenCV/java', +} + +moduleclass = 'vis' diff --git a/o/OpenCV/OpenCV-3.1.0-intel-2016a.eb b/o/OpenCV/OpenCV-3.1.0-intel-2016a.eb new file mode 100644 index 00000000..b12504dd --- /dev/null +++ b/o/OpenCV/OpenCV-3.1.0-intel-2016a.eb @@ -0,0 +1,69 @@ +easyblock = 'CMakeMake' + +name = 'OpenCV' +version = '3.1.0' + +homepage = 'http://opencv.org/' +description = """OpenCV (Open Source Computer Vision Library) is an open source computer vision + and machine learning software library. OpenCV was built to provide + a common infrastructure for computer vision applications and to accelerate + the use of machine perception in the commercial products.""" + +toolchain = {'name': 'intel', 'version': '2016a'} + +source_urls = ['https://github.com/Itseez/opencv/archive/'] +sources = ['%(version)s.zip'] + +patches = ['OpenCV-%(version)s_with_IPP.patch'] + +builddependencies = [ + ('CMake', '3.5.2'), +] + +dependencies = [ + ('Python', '2.7.11'), + ('zlib', '1.2.8'), + ('FFmpeg', '3.0.2'), + ('libjpeg-turbo', '1.4.2', '-NASM-2.12.01'), + ('libpng', '1.6.21'), + ('LibTIFF', '4.0.6'), + ('JasPer', '1.900.1'), + ('Java', '1.8.0_92', '', True), + ('ant', '1.9.7', '-Java-%(javaver)s', True), + ('GLib', '2.48.0'), + ('GTK+', '2.24.30'), +] + +preconfigopts = 'export IPPROOT=$EBROOTICC/ipp && ' + +configopts = '-DCMAKE_BUILD_TYPE=RELEASE ' +configopts += '-DBUILD_PYTHON_SUPPORT=ON ' +configopts += '-DPYTHON_PACKAGES_PATH=%(installdir)s/lib/python%(pyshortver)s/site-packages ' +configopts += '-DBUILD_NEW_PYTHON_SUPPORT=ON ' +configopts += '-DZLIB_LIBRARY=$EBROOTZLIB/lib/libz.%s ' % SHLIB_EXT +configopts += '-DZLIB_INCLUDE_DIR=$EBROOTZLIB/include ' +configopts += '-DTIFF_LIBRARY=$EBROOTLIBTIFF/lib/libtiff.%s ' % SHLIB_EXT +configopts += '-DTIFF_INCLUDE_DIR=$EBROOTLIBTIFF/include ' +configopts += '-DPNG_LIBRARY=$EBROOTLIBPNG/lib/libpng.%s ' % SHLIB_EXT +configopts += '-DPNG_INCLUDE_DIR=$EBROOTLIBPNG/include ' +configopts += '-DJPEG_LIBRARY=$EBROOTLIBJPEGMINTURBO/lib/libjpeg.%s ' % SHLIB_EXT +configopts += '-DJPEG_INCLUDE_DIR=$EBROOTLIBJPEGMINTURBO/include ' +configopts += '-DJASPER_LIBRARY=$EBROOTJASPER/lib/libjasper.a ' +configopts += '-DJASPER_INCLUDE_DIR=$EBROOTJASPER/include ' +configopts += '-DWITH_IPP=ON ' +configopts += '-DENABLE_SSE=ON -DENABLE_SSE2=ON -DENABLE_SSE3=ON ' +configopts += '-DWITH_CUDA=OFF ' + +sanity_check_paths = { + 'files': ['lib/libopencv_core.%s' % SHLIB_EXT ] + + ['lib/python%%(pyshortver)s/site-packages/cv2.%s' % SHLIB_EXT ] + + ['bin/opencv_%s' % x for x in ['annotation', 'createsamples', 'traincascade']], + 'dirs': ['include'] +} + +modextrapaths = { + 'PYTHONPATH': 'lib/python%(pyshortver)s/site-packages', + 'CLASSPATH': 'share/OpenCV/java', +} + +moduleclass = 'vis' diff --git a/o/OpenCV/OpenCV-3.1.0-intel-2016b.eb b/o/OpenCV/OpenCV-3.1.0-intel-2016b.eb new file mode 100644 index 00000000..896ae67a --- /dev/null +++ b/o/OpenCV/OpenCV-3.1.0-intel-2016b.eb @@ -0,0 +1,69 @@ +easyblock = 'CMakeMake' + +name = 'OpenCV' +version = '3.1.0' + +homepage = 'http://opencv.org/' +description = """OpenCV (Open Source Computer Vision Library) is an open source computer vision + and machine learning software library. OpenCV was built to provide + a common infrastructure for computer vision applications and to accelerate + the use of machine perception in the commercial products.""" + +toolchain = {'name': 'intel', 'version': '2016b'} + +source_urls = ['https://github.com/Itseez/opencv/archive/'] +sources = ['%(version)s.zip'] + +patches = ['OpenCV-%(version)s_with_IPP.patch'] + +builddependencies = [ + ('CMake', '3.5.2'), +] + +dependencies = [ + ('Python', '2.7.12'), + ('zlib', '1.2.8'), + ('FFmpeg', '3.1.3'), + ('libjpeg-turbo', '1.5.0'), + ('libpng', '1.6.24'), + ('LibTIFF', '4.0.6'), + ('JasPer', '1.900.1'), + ('Java', '1.8.0_92', '', True), + ('ant', '1.9.7', '-Java-%(javaver)s', True), + ('GLib', '2.49.5'), + ('GTK+', '2.24.31'), +] + +preconfigopts = 'export IPPROOT=$EBROOTICC/ipp && ' + +configopts = '-DCMAKE_BUILD_TYPE=RELEASE ' +configopts += '-DBUILD_PYTHON_SUPPORT=ON ' +configopts += '-DPYTHON_PACKAGES_PATH=%(installdir)s/lib/python%(pyshortver)s/site-packages ' +configopts += '-DBUILD_NEW_PYTHON_SUPPORT=ON ' +configopts += '-DZLIB_LIBRARY=$EBROOTZLIB/lib/libz.%s ' % SHLIB_EXT +configopts += '-DZLIB_INCLUDE_DIR=$EBROOTZLIB/include ' +configopts += '-DTIFF_LIBRARY=$EBROOTLIBTIFF/lib/libtiff.%s ' % SHLIB_EXT +configopts += '-DTIFF_INCLUDE_DIR=$EBROOTLIBTIFF/include ' +configopts += '-DPNG_LIBRARY=$EBROOTLIBPNG/lib/libpng.%s ' % SHLIB_EXT +configopts += '-DPNG_INCLUDE_DIR=$EBROOTLIBPNG/include ' +configopts += '-DJPEG_LIBRARY=$EBROOTLIBJPEGMINTURBO/lib/libjpeg.%s ' % SHLIB_EXT +configopts += '-DJPEG_INCLUDE_DIR=$EBROOTLIBJPEGMINTURBO/include ' +configopts += '-DJASPER_LIBRARY=$EBROOTJASPER/lib/libjasper.a ' +configopts += '-DJASPER_INCLUDE_DIR=$EBROOTJASPER/include ' +configopts += '-DWITH_IPP=ON ' +configopts += '-DENABLE_SSE=ON -DENABLE_SSE2=ON -DENABLE_SSE3=ON ' +configopts += '-DWITH_CUDA=OFF ' + +sanity_check_paths = { + 'files': ['lib/libopencv_core.%s' % SHLIB_EXT ] + + ['lib/python%%(pyshortver)s/site-packages/cv2.%s' % SHLIB_EXT ] + + ['bin/opencv_%s' % x for x in ['annotation', 'createsamples', 'traincascade']], + 'dirs': ['include'] +} + +modextrapaths = { + 'PYTHONPATH': 'lib/python%(pyshortver)s/site-packages', + 'CLASSPATH': 'share/OpenCV/java', +} + +moduleclass = 'vis' diff --git a/o/OpenCoarrays/OpenCoarrays-1.0.0-GNU-5.1.0-2.25.eb b/o/OpenCoarrays/OpenCoarrays-1.0.0-GNU-5.1.0-2.25.eb new file mode 100644 index 00000000..ba159fd9 --- /dev/null +++ b/o/OpenCoarrays/OpenCoarrays-1.0.0-GNU-5.1.0-2.25.eb @@ -0,0 +1,37 @@ +easyblock = 'CMakeMake' + +name = 'OpenCoarrays' +version = '1.0.0' + +homepage = 'http://www.opencoarrays.org' +description = """OpenCoarrays is an open-source software project for developing, +porting and tuning transport layers that support coarray Fortran +compilers.""" + +toolchain = {'name': 'GNU', 'version': '5.1.0-2.25'} + +# Download eg. https://github.com/sourceryinstitute/opencoarrays/releases/download/v1.0.0/opencoarrays-1.0.0.tar.gz +source_urls = ['https://github.com/sourceryinstitute/%(namelower)s/releases/download/v%(version)s/'] + +sources = [ + SOURCELOWER_TAR_GZ, +] + +dependencies = [ + ('MVAPICH2', '2.1') +] + +builddependencies = [('CMake', '3.3.1')] + +preconfigopts = "CC=mpicc FC=mpif90 " +configopts = "-DCMAKE_Fortran_COMPILER= -DCMAKE_C_COMPILER= " +configopts += "-DCMAKE_CXX_COMPILER= " + +separate_build_dir = True + +sanity_check_paths = { + 'files': [''], + 'dirs': ['lib'] +} + +moduleclass = 'lib' diff --git a/o/OpenCoarrays/OpenCoarrays-1.0.1-GNU-5.1.0-2.25.eb b/o/OpenCoarrays/OpenCoarrays-1.0.1-GNU-5.1.0-2.25.eb new file mode 100644 index 00000000..9304ab80 --- /dev/null +++ b/o/OpenCoarrays/OpenCoarrays-1.0.1-GNU-5.1.0-2.25.eb @@ -0,0 +1,37 @@ +easyblock = 'CMakeMake' + +name = 'OpenCoarrays' +version = '1.0.1' + +homepage = 'http://www.opencoarrays.org' +description = """OpenCoarrays is an open-source software project for developing, +porting and tuning transport layers that support coarray Fortran +compilers.""" + +toolchain = {'name': 'GNU', 'version': '5.1.0-2.25'} + +# Download eg. https://github.com/sourceryinstitute/opencoarrays/releases/download/v1.0.0/opencoarrays-1.0.0.tar.gz +source_urls = ['https://github.com/sourceryinstitute/%(namelower)s/releases/download/v%(version)s/'] + +sources = [ + SOURCELOWER_TAR_GZ, +] + +dependencies = [ + ('MVAPICH2', '2.1') +] + +builddependencies = [('CMake', '3.3.1')] + +preconfigopts = "CC=mpicc FC=mpif90 " +configopts = "-DCMAKE_Fortran_COMPILER= -DCMAKE_C_COMPILER= " +configopts += "-DCMAKE_CXX_COMPILER= " + +separate_build_dir = True + +sanity_check_paths = { + 'files': [''], + 'dirs': ['lib'] +} + +moduleclass = 'lib' diff --git a/o/OpenCoarrays/OpenCoarrays-1.4.0.eb b/o/OpenCoarrays/OpenCoarrays-1.4.0.eb new file mode 100644 index 00000000..3550d78a --- /dev/null +++ b/o/OpenCoarrays/OpenCoarrays-1.4.0.eb @@ -0,0 +1,27 @@ +easyblock = 'CMakeMake' + +name = 'OpenCoarrays' +version = '1.4.0' + +homepage = 'http://www.opencoarrays.org/' +description = """A transport layer for coarray Fortran compilers.""" + +toolchain = {'name': 'GCC', 'version': '5.3.1-snapshot-20160419-2.25'} + +source_urls = ['https://github.com/sourceryinstitute/opencoarrays/releases/download/%(version)s/'] +sources = [SOURCE_TAR_GZ] + +builddependencies = [('CMake', '3.3.1')] +dependencies = [('MPICH', '3.2')] + +preconfigopts = 'CC=mpicc FC=mpif90' +# override easybuild default settings +configopts = '-DCMAKE_C_COMPILER=mpicc -DCMAKE_Fortran_COMPILER=mpif90' +separate_build_dir = True + +sanity_check_paths = { + 'files': ['bin/caf', 'lib/libcaf_mpi.a'], + 'dirs': ['bin', 'lib'], +} + +moduleclass = 'compiler' diff --git a/o/OpenDX/OpenDX-4.4.4-foss-2015g.eb b/o/OpenDX/OpenDX-4.4.4-foss-2015g.eb new file mode 100644 index 00000000..5941e029 --- /dev/null +++ b/o/OpenDX/OpenDX-4.4.4-foss-2015g.eb @@ -0,0 +1,25 @@ +easyblock = 'ConfigureMake' + +name = 'OpenDX' +version = '4.4.4' + +homepage = 'http://www.opendx.org' +description = """Open source visualization software package based on IBM's Visualization Data Explorer.""" + +toolchain = {'name': 'foss', 'version': '2015g'} + +source_urls = ['%s' % homepage] +sources = [SOURCELOWER_TAR_GZ] + +preconfigopts = 'export CPPFLAGS="$CPPFLAGS -I/usr/src/kernels/2.6.32-504.16.2.el6.x86_64/include" && ' + +dependencies = [('netCDF', '4.3.2'), + ('motif', '2.3.4', '-libX11-1.6.2'), +] + +sanity_check_paths = { + 'files': ['bin/dx'], + 'dirs': ['dx', 'bin'], +} + +moduleclass = 'vis' diff --git a/o/OpenFOAM/cleanup-OpenFOAM-2.2.2.patch b/o/OpenFOAM/cleanup-OpenFOAM-2.2.2.patch new file mode 100644 index 00000000..14ebe59f --- /dev/null +++ b/o/OpenFOAM/cleanup-OpenFOAM-2.2.2.patch @@ -0,0 +1,237 @@ +patch to avoid hardcoding of settings, so defaults can be set on the outside by defining environment variables +author: Kenneth Hoste (Ghent University) +diff -ru OpenFOAM-2.2.2.orig/etc/bashrc OpenFOAM-2.2.2/etc/bashrc +--- OpenFOAM-2.2.2.orig/etc/bashrc 2013-10-03 12:28:16.000000000 +0200 ++++ OpenFOAM-2.2.2/etc/bashrc 2015-03-03 10:39:07.817538712 +0100 +@@ -63,7 +63,7 @@ + + #- Compiler: + # WM_COMPILER = Gcc | Gcc43 | Gcc44 | Gcc45 | Gcc46 | Clang | Icc (Intel icc) +-export WM_COMPILER=Gcc ++: ${WM_COMPILER:=Gcc}; export WM_COMPILER + unset WM_COMPILER_ARCH WM_COMPILER_LIB_ARCH + + #- Architecture: +@@ -81,7 +81,7 @@ + #- MPI implementation: + # WM_MPLIB = SYSTEMOPENMPI | OPENMPI | MPICH | MPICH-GM | HPMPI + # | GAMMA | MPI | QSMPI | SGIMPI +-export WM_MPLIB=OPENMPI ++: ${WM_MPLIB:=OPENMPI}; export WM_MPLIB + + #- Operating System: + # WM_OSTYPE = POSIX | ??? +@@ -115,7 +115,7 @@ + + # Location of third-party software + # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +-export WM_THIRD_PARTY_DIR=$WM_PROJECT_INST_DIR/ThirdParty-$WM_PROJECT_VERSION ++: ${WM_THIRD_PARTY_DIR:=$WM_PROJECT_INST_DIR/ThirdParty-$WM_PROJECT_VERSION}; export WM_THIRD_PARTY_DIR + + # Location of site-specific templates etc + # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +diff -ru OpenFOAM-2.2.2.orig/etc/config/scotch.sh OpenFOAM-2.2.2/etc/config/scotch.sh +--- OpenFOAM-2.2.2.orig/etc/config/scotch.sh 2013-10-03 12:28:16.000000000 +0200 ++++ OpenFOAM-2.2.2/etc/config/scotch.sh 2015-03-03 10:39:07.817538712 +0100 +@@ -33,7 +33,11 @@ + # during the wmake process + #------------------------------------------------------------------------------ + +-export SCOTCH_VERSION=scotch_6.0.0 +-export SCOTCH_ARCH_PATH=$WM_THIRD_PARTY_DIR/platforms/$WM_ARCH$WM_COMPILER/$SCOTCH_VERSION ++if [ -n "${SCOTCH_ROOT}" ] ; then ++ export SCOTCH_ARCH_PATH="${SCOTCH_ROOT}" ++else ++ export SCOTCH_VERSION=scotch_6.0.0 ++ export SCOTCH_ARCH_PATH=$WM_THIRD_PARTY_DIR/platforms/$WM_ARCH$WM_COMPILER/$SCOTCH_VERSION ++fi + + # ----------------------------------------------------------------------------- +diff -ru OpenFOAM-2.2.2.orig/etc/config/settings.csh OpenFOAM-2.2.2/etc/config/settings.csh +--- OpenFOAM-2.2.2.orig/etc/config/settings.csh 2013-10-03 12:28:16.000000000 +0200 ++++ OpenFOAM-2.2.2/etc/config/settings.csh 2015-03-03 10:39:07.817538712 +0100 +@@ -373,7 +373,7 @@ + # Communications library + # ~~~~~~~~~~~~~~~~~~~~~~ + +-unsetenv MPI_ARCH_PATH MPI_HOME FOAM_MPI_LIBBIN ++#unsetenv MPI_ARCH_PATH MPI_HOME FOAM_MPI_LIBBIN + + switch ("$WM_MPLIB") + case SYSTEMOPENMPI: +diff -ru OpenFOAM-2.2.2.orig/etc/config/settings.sh OpenFOAM-2.2.2/etc/config/settings.sh +--- OpenFOAM-2.2.2.orig/etc/config/settings.sh 2013-10-03 12:28:16.000000000 +0200 ++++ OpenFOAM-2.2.2/etc/config/settings.sh 2015-03-03 10:39:07.817538712 +0100 +@@ -395,7 +395,7 @@ + # Communications library + # ~~~~~~~~~~~~~~~~~~~~~~ + +-unset MPI_ARCH_PATH MPI_HOME FOAM_MPI_LIBBIN ++#unset MPI_ARCH_PATH MPI_HOME FOAM_MPI_LIBBIN + + case "$WM_MPLIB" in + SYSTEMOPENMPI) +@@ -563,6 +563,11 @@ + _foamAddPath $MPI_ARCH_PATH/bin64 + _foamAddLib $MPI_ARCH_PATH/lib64 + ;; ++ ++EASYBUILDMPI) ++ export FOAM_MPI=mpi ++ ;; ++ + *) + export FOAM_MPI=dummy + ;; +diff -ru OpenFOAM-2.2.2.orig/src/parallel/decompose/ptscotchDecomp/lnInclude/ptscotchDecomp.C OpenFOAM-2.2.2/src/parallel/decompose/ptscotchDecomp/lnInclude/ptscotchDecomp.C +--- OpenFOAM-2.2.2.orig/src/parallel/decompose/ptscotchDecomp/lnInclude/ptscotchDecomp.C 2013-10-03 12:28:16.000000000 +0200 ++++ OpenFOAM-2.2.2/src/parallel/decompose/ptscotchDecomp/lnInclude/ptscotchDecomp.C 2015-03-03 10:39:07.827538901 +0100 +@@ -112,6 +112,8 @@ + + \*---------------------------------------------------------------------------*/ + ++#include "mpi.h" ++ + #include "ptscotchDecomp.H" + #include "addToRunTimeSelectionTable.H" + #include "Time.H" +@@ -121,8 +123,8 @@ + + extern "C" + { +-#include + #include "mpi.h" ++#include + #include "ptscotch.h" + } + +diff -ru OpenFOAM-2.2.2.orig/src/parallel/decompose/ptscotchDecomp/Make/options OpenFOAM-2.2.2/src/parallel/decompose/ptscotchDecomp/Make/options +--- OpenFOAM-2.2.2.orig/src/parallel/decompose/ptscotchDecomp/Make/options 2013-10-03 12:28:16.000000000 +0200 ++++ OpenFOAM-2.2.2/src/parallel/decompose/ptscotchDecomp/Make/options 2015-03-03 10:39:07.827538901 +0100 +@@ -3,10 +3,8 @@ + + EXE_INC = \ + $(PFLAGS) $(PINC) \ +- -I$(SCOTCH_ROOT)/include \ + -I$(SCOTCH_ARCH_PATH)/include/$(FOAM_MPI) \ +- -I/usr/include/scotch \ + -I../decompositionMethods/lnInclude + + LIB_LIBS = \ +- -L$(SCOTCH_ROOT)/lib -L$(FOAM_EXT_LIBBIN)/$(FOAM_MPI) -lptscotch -lptscotcherrexit ${LINK_FLAGS} -lrt ++ -L$(SCOTCH_ARCH_PATH)/lib -L$(FOAM_EXT_LIBBIN)/$(FOAM_MPI) -lptscotch -lptscotcherrexit ${LINK_FLAGS} -lrt +diff -ru OpenFOAM-2.2.2.orig/src/parallel/decompose/ptscotchDecomp/ptscotchDecomp.C OpenFOAM-2.2.2/src/parallel/decompose/ptscotchDecomp/ptscotchDecomp.C +--- OpenFOAM-2.2.2.orig/src/parallel/decompose/ptscotchDecomp/ptscotchDecomp.C 2013-10-03 12:28:16.000000000 +0200 ++++ OpenFOAM-2.2.2/src/parallel/decompose/ptscotchDecomp/ptscotchDecomp.C 2015-03-03 10:39:07.827538901 +0100 +@@ -112,6 +112,8 @@ + + \*---------------------------------------------------------------------------*/ + ++#include "mpi.h" ++ + #include "ptscotchDecomp.H" + #include "addToRunTimeSelectionTable.H" + #include "Time.H" +@@ -121,8 +123,8 @@ + + extern "C" + { +-#include + #include "mpi.h" ++#include + #include "ptscotch.h" + } + +diff -ru OpenFOAM-2.2.2.orig/src/parallel/decompose/scotchDecomp/Make/options OpenFOAM-2.2.2/src/parallel/decompose/scotchDecomp/Make/options +--- OpenFOAM-2.2.2.orig/src/parallel/decompose/scotchDecomp/Make/options 2013-10-03 12:28:16.000000000 +0200 ++++ OpenFOAM-2.2.2/src/parallel/decompose/scotchDecomp/Make/options 2015-03-03 10:39:07.827538901 +0100 +@@ -7,10 +7,8 @@ + + EXE_INC = \ + $(PFLAGS) $(PINC) \ +- -I$(SCOTCH_ROOT)/include \ + -I$(SCOTCH_ARCH_PATH)/include \ +- -I/usr/include/scotch \ + -I../decompositionMethods/lnInclude + + LIB_LIBS = \ +- -L$(SCOTCH_ROOT)/lib -L$(FOAM_EXT_LIBBIN) -lscotch -lscotcherrexit -lrt ++ -L$(SCOTCH_ARCH_PATH)/lib -L$(FOAM_EXT_LIBBIN) -lscotch -lscotcherrexit -lrt +diff -ru OpenFOAM-2.2.2.orig/wmake/rules/linux64Gcc/c OpenFOAM-2.2.2/wmake/rules/linux64Gcc/c +--- OpenFOAM-2.2.2.orig/wmake/rules/linux64Gcc/c 2013-10-03 12:28:16.000000000 +0200 ++++ OpenFOAM-2.2.2/wmake/rules/linux64Gcc/c 2015-03-03 10:39:07.827538901 +0100 +@@ -2,7 +2,7 @@ + + cWARN = -Wall + +-cc = gcc -m64 ++cc = $(MPICC) + + include $(RULES)/c$(WM_COMPILE_OPTION) + +diff -ru OpenFOAM-2.2.2.orig/wmake/rules/linux64Gcc/c++ OpenFOAM-2.2.2/wmake/rules/linux64Gcc/c++ +--- OpenFOAM-2.2.2.orig/wmake/rules/linux64Gcc/c++ 2013-10-03 12:28:16.000000000 +0200 ++++ OpenFOAM-2.2.2/wmake/rules/linux64Gcc/c++ 2015-03-03 10:39:07.827538901 +0100 +@@ -2,7 +2,7 @@ + + c++WARN = -Wall -Wextra -Wno-unused-parameter -Wold-style-cast -Wnon-virtual-dtor + +-CC = g++ -m64 ++CC = $(MPICXX) + + include $(RULES)/c++$(WM_COMPILE_OPTION) + +diff -ru OpenFOAM-2.2.2.orig/wmake/rules/linux64Gcc/cOpt OpenFOAM-2.2.2/wmake/rules/linux64Gcc/cOpt +--- OpenFOAM-2.2.2.orig/wmake/rules/linux64Gcc/cOpt 2013-10-03 12:28:16.000000000 +0200 ++++ OpenFOAM-2.2.2/wmake/rules/linux64Gcc/cOpt 2015-03-03 10:39:07.827538901 +0100 +@@ -1,3 +1,3 @@ + cDBUG = +-cOPT = -O3 ++cOPT = $(CFLAGS) + # -fprefetch-loop-arrays +diff -ru OpenFOAM-2.2.2.orig/wmake/rules/linux64Gcc/c++Opt OpenFOAM-2.2.2/wmake/rules/linux64Gcc/c++Opt +--- OpenFOAM-2.2.2.orig/wmake/rules/linux64Gcc/c++Opt 2013-10-03 12:28:16.000000000 +0200 ++++ OpenFOAM-2.2.2/wmake/rules/linux64Gcc/c++Opt 2015-03-03 10:39:07.827538901 +0100 +@@ -1,3 +1,3 @@ + c++DBUG = +-c++OPT = -O3 ++c++OPT = $(CXXFLAGS) + # -fprefetch-loop-arrays +diff -ru OpenFOAM-2.2.2.orig/wmake/rules/linux64Icc/c OpenFOAM-2.2.2/wmake/rules/linux64Icc/c +--- OpenFOAM-2.2.2.orig/wmake/rules/linux64Icc/c 2013-10-03 12:28:16.000000000 +0200 ++++ OpenFOAM-2.2.2/wmake/rules/linux64Icc/c 2015-03-03 10:39:07.827538901 +0100 +@@ -2,7 +2,7 @@ + + cWARN = + +-cc = icc ++cc = $(MPICC) + + include $(RULES)/c$(WM_COMPILE_OPTION) + +diff -ru OpenFOAM-2.2.2.orig/wmake/rules/linux64Icc/c++ OpenFOAM-2.2.2/wmake/rules/linux64Icc/c++ +--- OpenFOAM-2.2.2.orig/wmake/rules/linux64Icc/c++ 2013-10-03 12:28:16.000000000 +0200 ++++ OpenFOAM-2.2.2/wmake/rules/linux64Icc/c++ 2015-03-03 10:39:07.827538901 +0100 +@@ -2,7 +2,7 @@ + + c++WARN = -wd327,654,819,1125,1476,1505,1572 + +-CC = icpc -std=c++0x ++CC = $(MPICXX) + + include $(RULES)/c++$(WM_COMPILE_OPTION) + +diff -ru OpenFOAM-2.2.2.orig/wmake/rules/linux64Icc/cOpt OpenFOAM-2.2.2/wmake/rules/linux64Icc/cOpt +--- OpenFOAM-2.2.2.orig/wmake/rules/linux64Icc/cOpt 2013-10-03 12:28:16.000000000 +0200 ++++ OpenFOAM-2.2.2/wmake/rules/linux64Icc/cOpt 2015-03-03 10:39:07.827538901 +0100 +@@ -1,2 +1,2 @@ + cDBUG = +-cOPT = -O3 -no-prec-div ++cOPT = $(CFLAGS) +diff -ru OpenFOAM-2.2.2.orig/wmake/rules/linux64Icc/c++Opt OpenFOAM-2.2.2/wmake/rules/linux64Icc/c++Opt +--- OpenFOAM-2.2.2.orig/wmake/rules/linux64Icc/c++Opt 2013-10-03 12:28:16.000000000 +0200 ++++ OpenFOAM-2.2.2/wmake/rules/linux64Icc/c++Opt 2015-03-03 10:39:45.158231466 +0100 +@@ -1,2 +1,2 @@ + c++DBUG = +-c++OPT = -xHost -O2 -no-prec-div ++c++OPT = $(CXXFLAGS) diff --git a/o/OpenMPI/OpenMPI-1.10.1-GCC-4.9.3-2.25.eb b/o/OpenMPI/OpenMPI-1.10.1-GCC-4.9.3-2.25.eb new file mode 100644 index 00000000..1dbbe3ce --- /dev/null +++ b/o/OpenMPI/OpenMPI-1.10.1-GCC-4.9.3-2.25.eb @@ -0,0 +1,38 @@ +easyblock = 'ConfigureMake' + +name = 'OpenMPI' +version = '1.10.1' + +homepage = 'http://www.open-mpi.org/' +description = """The Open MPI Project is an open source MPI-2 implementation.""" + +toolchain = {'name': 'GCC', 'version': '4.9.3-2.25'} + +sources = [SOURCELOWER_TAR_GZ] +source_urls = ['http://www.open-mpi.org/software/ompi/v%(version_major_minor)s/downloads'] + +dependencies = [('hwloc', '1.11.2')] + +builddependencies = [ + ('Java', '1.8.0_51', '', True) +] + +configopts = '--with-threads=posix --enable-shared --enable-mpi-thread-multiple --with-verbs ' +configopts += '--enable-mpirun-prefix-by-default ' # suppress failure modes in relation to mpirun path +configopts += '--with-hwloc=$EBROOTHWLOC ' # hwloc support +configopts += '--disable-dlopen ' # statically link component, don't do dynamic loading +configopts += '--with-tm=/opt/pbs/default ' # Enable PBS +configopts += '--enable-mpi-java ' # Java support RT#4090 + +# needed for --with-verbs +osdependencies = [('libibverbs-dev', 'libibverbs-devel')] + +libs = ["mpi_cxx", "mpi_mpifh", "mpi", "ompitrace", "open-pal", "open-rte", "vt", "vt-hyb", "vt-mpi", "vt-mpi-unify"] +sanity_check_paths = { + 'files': ["bin/%s" % binfile for binfile in ["ompi_info", "opal_wrapper", "orterun"]] + + ["lib/lib%s.%s" % (libfile, SHLIB_EXT) for libfile in libs] + + ["include/%s.h" % x for x in ["mpi-ext", "mpif-config", "mpif", "mpi", "mpi_portable_platform"]], + 'dirs': ["include/openmpi/ompi/mpi/cxx"], +} + +moduleclass = 'mpi' diff --git a/o/OpenMPI/OpenMPI-1.10.1-GNU-4.9.3-2.25.eb b/o/OpenMPI/OpenMPI-1.10.1-GNU-4.9.3-2.25.eb new file mode 100644 index 00000000..298d54a2 --- /dev/null +++ b/o/OpenMPI/OpenMPI-1.10.1-GNU-4.9.3-2.25.eb @@ -0,0 +1,45 @@ +# Built with EasyBuild version 2.7.0 on 2016-05-20_09-36-10 +easyblock = 'ConfigureMake' + +name = 'OpenMPI' +version = '1.10.1' + +homepage = 'http://www.open-mpi.org/' +description = """The Open MPI Project is an open source MPI-2 implementation.""" + +toolchain = {'name': 'GNU', 'version': '4.9.3-2.25'} + +sources = [SOURCELOWER_TAR_GZ] +source_urls = ['http://www.open-mpi.org/software/ompi/v%(version_major_minor)s/downloads'] + +builddependencies = [ + ('Java', '1.8.0_51', '', True) +] + +dependencies = [('hwloc', '1.11.0')] + +preconfigopts = "export LIBS=-ldl && " + +configopts = '--with-threads=posix --enable-shared --enable-mpi-thread-multiple --with-verbs ' +configopts += '--enable-mpirun-prefix-by-default ' # suppress failure modes in relation to mpirun path +configopts += '--with-hwloc=$EBROOTHWLOC ' # hwloc support +configopts += '--enable-mpi-java ' # Java support RT#4090 +configopts += '--enable-dlopen ' # statically link component, don't do dynamic loading +configopts += '--with-tm=/opt/pbs/default ' # Enable PBS + +# needed for --with-verbs +osdependencies = [('libibverbs-dev', 'libibverbs-devel')] + +libs = ["mpi_cxx", "mpi_mpifh", "mpi", "ompitrace", "open-pal", "open-rte", "vt", "vt-hyb", "vt-mpi", "vt-mpi-unify"] +sanity_check_paths = { + 'files': ["bin/%s" % binfile for binfile in ["ompi_info", "opal_wrapper", "orterun"]] + + ["lib/lib%s.%s" % (libfile, SHLIB_EXT) for libfile in libs] + + ["include/%s.h" % x for x in ["mpi-ext", "mpif-config", "mpif", "mpi", "mpi_portable_platform"]], + 'dirs': ["include/openmpi/ompi/mpi/cxx"], +} + +modextravars = {'OMPI_MCA_btl_openib_if_include': 'mlx4_0', + 'OMPI_MCA_oob_tcp_if_include': '10.0.0.0/8', +} + +moduleclass = 'mpi' diff --git a/o/OpenMPI/OpenMPI-1.10.2-GCC-5.3.0-2.26.eb b/o/OpenMPI/OpenMPI-1.10.2-GCC-5.3.0-2.26.eb new file mode 100644 index 00000000..d50ed97c --- /dev/null +++ b/o/OpenMPI/OpenMPI-1.10.2-GCC-5.3.0-2.26.eb @@ -0,0 +1,38 @@ +easyblock = 'ConfigureMake' + +name = 'OpenMPI' +version = '1.10.2' + +homepage = 'http://www.open-mpi.org/' +description = """The Open MPI Project is an open source MPI-2 implementation.""" + +toolchain = {'name': 'GCC', 'version': '5.3.0-2.26'} + +sources = [SOURCELOWER_TAR_GZ] +source_urls = ['http://www.open-mpi.org/software/ompi/v%(version_major_minor)s/downloads'] + +dependencies = [('hwloc', '1.11.3')] + +builddependencies = [ + ('Java', '1.8.0_51', '', True) +] + +configopts = '--with-threads=posix --enable-shared --enable-mpi-thread-multiple --with-verbs ' +configopts += '--enable-mpirun-prefix-by-default ' # suppress failure modes in relation to mpirun path +configopts += '--with-hwloc=$EBROOTHWLOC ' # hwloc support +configopts += '--disable-dlopen ' # statically link component, don't do dynamic loading +configopts += '--with-tm=/opt/pbs/default ' # Enable PBS +configopts += '--enable-mpi-java ' # Java support RT#4090 + +# needed for --with-verbs +osdependencies = [('libibverbs-dev', 'libibverbs-devel')] + +libs = ["mpi_cxx", "mpi_mpifh", "mpi", "ompitrace", "open-pal", "open-rte", "vt", "vt-hyb", "vt-mpi", "vt-mpi-unify"] +sanity_check_paths = { + 'files': ["bin/%s" % binfile for binfile in ["ompi_info", "opal_wrapper", "orterun"]] + + ["lib/lib%s.%s" % (libfile, SHLIB_EXT) for libfile in libs] + + ["include/%s.h" % x for x in ["mpi-ext", "mpif-config", "mpif", "mpi", "mpi_portable_platform"]], + 'dirs': ["include/openmpi/ompi/mpi/cxx"], +} + +moduleclass = 'mpi' diff --git a/o/OpenMPI/OpenMPI-1.10.2-GCC-6.1.0-2.27.eb b/o/OpenMPI/OpenMPI-1.10.2-GCC-6.1.0-2.27.eb new file mode 100644 index 00000000..ac26d421 --- /dev/null +++ b/o/OpenMPI/OpenMPI-1.10.2-GCC-6.1.0-2.27.eb @@ -0,0 +1,33 @@ +easyblock = 'ConfigureMake' + +name = 'OpenMPI' +version = '1.10.2' + +homepage = 'http://www.open-mpi.org/' +description = """The Open MPI Project is an open source MPI-2 implementation.""" + +toolchain = {'name': 'GCC', 'version': '6.1.0-2.27'} + +sources = [SOURCELOWER_TAR_GZ] + +source_urls = ['http://www.open-mpi.org/software/ompi/v%(version_major_minor)s/downloads',] + +dependencies = [('hwloc', '1.11.3')] + +configopts = '--with-threads=posix --enable-shared --enable-mpi-thread-multiple --with-verbs ' +configopts += '--enable-mpirun-prefix-by-default ' # suppress failure modes in relation to mpirun path +configopts += '--with-hwloc=$EBROOTHWLOC ' # hwloc support +configopts += '--disable-dlopen ' # statically link component, don't do dynamic loading + +# needed for --with-verbs +osdependencies = [('libibverbs-dev', 'libibverbs-devel'),] + +libs = ["mpi_cxx", "mpi_mpifh", "mpi", "ompitrace", "open-pal", "open-rte", "vt", "vt-hyb", "vt-mpi", "vt-mpi-unify"] +sanity_check_paths = { + 'files': ["bin/%s" % binfile for binfile in ["ompi_info", "opal_wrapper", "orterun"]] + + ["lib/lib%s.%s" % (libfile, SHLIB_EXT) for libfile in libs] + + ["include/%s.h" % x for x in ["mpi-ext", "mpif-config", "mpif", "mpi", "mpi_portable_platform"]], + 'dirs': ["include/openmpi/ompi/mpi/cxx"], +} + +moduleclass = 'mpi' diff --git a/o/OpenMPI/OpenMPI-1.10.2-PGI-16.3-GCC-4.9.3-2.25.eb b/o/OpenMPI/OpenMPI-1.10.2-PGI-16.3-GCC-4.9.3-2.25.eb new file mode 100644 index 00000000..3dfb0c02 --- /dev/null +++ b/o/OpenMPI/OpenMPI-1.10.2-PGI-16.3-GCC-4.9.3-2.25.eb @@ -0,0 +1,39 @@ +easyblock = 'ConfigureMake' + +name = 'OpenMPI' +version = '1.10.2' + +homepage = 'http://www.open-mpi.org/' +description = """The Open MPI Project is an open source MPI-2 implementation.""" + +toolchain = {'name': 'PGI', 'version': '16.3-GCC-4.9.3-2.25'} + +sources = [SOURCELOWER_TAR_GZ] +source_urls = ['http://www.open-mpi.org/software/ompi/v%(version_major_minor)s/downloads'] + +configopts = '--with-threads=posix --enable-shared --enable-mpi-thread-multiple --with-verbs ' +configopts += '--enable-mpirun-prefix-by-default ' # suppress failure modes in relation to mpirun path +configopts += '--with-hwloc=$EBROOTHWLOC ' # hwloc support +configopts += '--disable-dlopen ' # statically link component, don't do dynamic loading +configopts += '--with-cxxrtlib="-lgcc_s -lstdc++"' # for vt-mpi-unify + +dependencies = [('hwloc', '1.11.3')] + +# needed for --with-verbs +osdependencies = [('libibverbs-dev', 'libibverbs-devel')] + +libs = ["mpi_cxx", "mpi_mpifh", "mpi", "ompitrace", "open-pal", "open-rte", "vt", "vt-hyb", "vt-mpi", "vt-mpi-unify"] +sanity_check_paths = { + 'files': ["bin/%s" % binfile for binfile in ["ompi_info", "opal_wrapper", "orterun"]] + + ["lib/lib%s.%s" % (libfile, SHLIB_EXT) for libfile in libs] + + ["include/%s.h" % x for x in ["mpi-ext", "mpif-config", "mpif", "mpi", "mpi_portable_platform"]], + 'dirs': ["include/openmpi/ompi/mpi/cxx"], +} + +sanity_check_commands = [ + ('mpicc --version | grep pgcc', ''), + ('mpicxx --version | grep pgc++', ''), + ('mpifort --version | grep pgfortran', ''), +] + +moduleclass = 'mpi' diff --git a/o/OpenMPI/OpenMPI-1.10.2-PGI-16.4-GCC-5.3.0-2.26.eb b/o/OpenMPI/OpenMPI-1.10.2-PGI-16.4-GCC-5.3.0-2.26.eb new file mode 100644 index 00000000..274fb15e --- /dev/null +++ b/o/OpenMPI/OpenMPI-1.10.2-PGI-16.4-GCC-5.3.0-2.26.eb @@ -0,0 +1,39 @@ +easyblock = 'ConfigureMake' + +name = 'OpenMPI' +version = '1.10.2' + +homepage = 'http://www.open-mpi.org/' +description = """The Open MPI Project is an open source MPI-2 implementation.""" + +toolchain = {'name': 'PGI', 'version': '16.4-GCC-5.3.0-2.26'} + +sources = [SOURCELOWER_TAR_GZ] +source_urls = ['http://www.open-mpi.org/software/ompi/v%(version_major_minor)s/downloads'] + +configopts = '--with-threads=posix --enable-shared --enable-mpi-thread-multiple --with-verbs ' +configopts += '--enable-mpirun-prefix-by-default ' # suppress failure modes in relation to mpirun path +configopts += '--with-hwloc=$EBROOTHWLOC ' # hwloc support +configopts += '--disable-dlopen ' # statically link component, don't do dynamic loading +configopts += '--with-cxxrtlib="-lgcc_s -lstdc++"' # for vt-mpi-unify + +dependencies = [('hwloc', '1.11.3')] + +# needed for --with-verbs +osdependencies = [('libibverbs-dev', 'libibverbs-devel')] + +libs = ["mpi_cxx", "mpi_mpifh", "mpi", "ompitrace", "open-pal", "open-rte", "vt", "vt-hyb", "vt-mpi", "vt-mpi-unify"] +sanity_check_paths = { + 'files': ["bin/%s" % binfile for binfile in ["ompi_info", "opal_wrapper", "orterun"]] + + ["lib/lib%s.%s" % (libfile, SHLIB_EXT) for libfile in libs] + + ["include/%s.h" % x for x in ["mpi-ext", "mpif-config", "mpif", "mpi", "mpi_portable_platform"]], + 'dirs': ["include/openmpi/ompi/mpi/cxx"], +} + +sanity_check_commands = [ + ('mpicc --version | grep pgcc', ''), + ('mpicxx --version | grep pgc++', ''), + ('mpifort --version | grep pgfortran', ''), +] + +moduleclass = 'mpi' diff --git a/o/OpenMPI/OpenMPI-1.10.3-GCC-4.9.3-2.25.eb b/o/OpenMPI/OpenMPI-1.10.3-GCC-4.9.3-2.25.eb new file mode 100644 index 00000000..5c1c5226 --- /dev/null +++ b/o/OpenMPI/OpenMPI-1.10.3-GCC-4.9.3-2.25.eb @@ -0,0 +1,32 @@ +easyblock = 'ConfigureMake' + +name = 'OpenMPI' +version = '1.10.3' + +homepage = 'http://www.open-mpi.org/' +description = """The Open MPI Project is an open source MPI-2 implementation.""" + +toolchain = {'name': 'GCC', 'version': '4.9.3-2.25'} + +sources = [SOURCELOWER_TAR_GZ] +source_urls = ['http://www.open-mpi.org/software/ompi/v%(version_major_minor)s/downloads'] + +dependencies = [('hwloc', '1.11.2')] + +configopts = '--with-threads=posix --enable-shared --enable-mpi-thread-multiple --with-verbs ' +configopts += '--enable-mpirun-prefix-by-default ' # suppress failure modes in relation to mpirun path +configopts += '--with-hwloc=$EBROOTHWLOC ' # hwloc support +configopts += '--disable-dlopen ' # statically link component, don't do dynamic loading + +# needed for --with-verbs +osdependencies = [('libibverbs-dev', 'libibverbs-devel')] + +libs = ["mpi_cxx", "mpi_mpifh", "mpi", "ompitrace", "open-pal", "open-rte", "vt", "vt-hyb", "vt-mpi", "vt-mpi-unify"] +sanity_check_paths = { + 'files': ["bin/%s" % binfile for binfile in ["ompi_info", "opal_wrapper", "orterun"]] + + ["lib/lib%s.%s" % (libfile, SHLIB_EXT) for libfile in libs] + + ["include/%s.h" % x for x in ["mpi-ext", "mpif-config", "mpif", "mpi", "mpi_portable_platform"]], + 'dirs': ["include/openmpi/ompi/mpi/cxx"], +} + +moduleclass = 'mpi' diff --git a/o/OpenMPI/OpenMPI-1.10.3-GCC-6.1.0-2.27.eb b/o/OpenMPI/OpenMPI-1.10.3-GCC-6.1.0-2.27.eb new file mode 100644 index 00000000..af22c5f5 --- /dev/null +++ b/o/OpenMPI/OpenMPI-1.10.3-GCC-6.1.0-2.27.eb @@ -0,0 +1,33 @@ +easyblock = 'ConfigureMake' + +name = 'OpenMPI' +version = '1.10.3' + +homepage = 'http://www.open-mpi.org/' +description = """The Open MPI Project is an open source MPI-2 implementation.""" + +toolchain = {'name': 'GCC', 'version': '6.1.0-2.27'} + +sources = [SOURCELOWER_TAR_GZ] + +source_urls = ['http://www.open-mpi.org/software/ompi/v%(version_major_minor)s/downloads',] + +dependencies = [('hwloc', '1.11.3')] + +configopts = '--with-threads=posix --enable-shared --enable-mpi-thread-multiple --with-verbs ' +configopts += '--enable-mpirun-prefix-by-default ' # suppress failure modes in relation to mpirun path +configopts += '--with-hwloc=$EBROOTHWLOC ' # hwloc support +configopts += '--disable-dlopen ' # statically link component, don't do dynamic loading + +# needed for --with-verbs +osdependencies = [('libibverbs-dev', 'libibverbs-devel'),] + +libs = ["mpi_cxx", "mpi_mpifh", "mpi", "ompitrace", "open-pal", "open-rte", "vt", "vt-hyb", "vt-mpi", "vt-mpi-unify"] +sanity_check_paths = { + 'files': ["bin/%s" % binfile for binfile in ["ompi_info", "opal_wrapper", "orterun"]] + + ["lib/lib%s.%s" % (libfile, SHLIB_EXT) for libfile in libs] + + ["include/%s.h" % x for x in ["mpi-ext", "mpif-config", "mpif", "mpi", "mpi_portable_platform"]], + 'dirs': ["include/openmpi/ompi/mpi/cxx"], +} + +moduleclass = 'mpi' diff --git a/o/OpenMPI/OpenMPI-1.10.4-PGI-16.7-GCC-5.4.0-2.26.eb b/o/OpenMPI/OpenMPI-1.10.4-PGI-16.7-GCC-5.4.0-2.26.eb new file mode 100644 index 00000000..fd6bb36c --- /dev/null +++ b/o/OpenMPI/OpenMPI-1.10.4-PGI-16.7-GCC-5.4.0-2.26.eb @@ -0,0 +1,41 @@ +easyblock = 'ConfigureMake' + +name = 'OpenMPI' +version = '1.10.4' + +homepage = 'http://www.open-mpi.org/' +description = """The Open MPI Project is an open source MPI-2 implementation.""" + +toolchain = {'name': 'PGI', 'version': '16.7-GCC-5.4.0-2.26'} + +sources = [SOURCELOWER_TAR_GZ] +source_urls = ['http://www.open-mpi.org/software/ompi/v%(version_major_minor)s/downloads'] + +checksums = ['fb2fdb6a5b65c80d7dfa4bc9a0caf665'] + +configopts = '--with-threads=posix --enable-shared --enable-mpi-thread-multiple --with-verbs ' +configopts += '--enable-mpirun-prefix-by-default ' # suppress failure modes in relation to mpirun path +configopts += '--with-hwloc=$EBROOTHWLOC ' # hwloc support +configopts += '--disable-dlopen ' # statically link component, don't do dynamic loading +configopts += '--with-cxxrtlib="-lgcc_s -lstdc++"' # for vt-mpi-unify + +dependencies = [('hwloc', '1.11.4')] + +# needed for --with-verbs +osdependencies = [('libibverbs-dev', 'libibverbs-devel')] + +libs = ["mpi_cxx", "mpi_mpifh", "mpi", "ompitrace", "open-pal", "open-rte", "vt", "vt-hyb", "vt-mpi", "vt-mpi-unify"] +sanity_check_paths = { + 'files': ["bin/%s" % binfile for binfile in ["ompi_info", "opal_wrapper", "orterun"]] + + ["lib/lib%s.%s" % (libfile, SHLIB_EXT) for libfile in libs] + + ["include/%s.h" % x for x in ["mpi-ext", "mpif-config", "mpif", "mpi", "mpi_portable_platform"]], + 'dirs': ["include/openmpi/ompi/mpi/cxx"], +} + +sanity_check_commands = [ + ('mpicc --version | grep pgcc', ''), + ('mpicxx --version | grep pgc++', ''), + ('mpifort --version | grep pgfortran', ''), +] + +moduleclass = 'mpi' diff --git a/o/OpenMPI/OpenMPI-1.6.5-GCC-4.8.3.eb b/o/OpenMPI/OpenMPI-1.6.5-GCC-4.8.3.eb new file mode 100644 index 00000000..de18b497 --- /dev/null +++ b/o/OpenMPI/OpenMPI-1.6.5-GCC-4.8.3.eb @@ -0,0 +1,40 @@ +easyblock = 'ConfigureMake' + +name = 'OpenMPI' +version = '1.6.5' + +homepage = 'http://www.open-mpi.org/' +description = """The Open MPI Project is an open source MPI-2 implementation.""" + +toolchain = {'name': 'GCC', 'version': '4.8.3'} + +sources = [SOURCELOWER_TAR_GZ] +source_urls = ['http://www.open-mpi.org/software/ompi/v%(version_major_minor)s/downloads'] + +patches = [ + 'OpenMPI-1.6.5-vt_cupti_events.patch', +] + +configopts = '--with-threads=posix --enable-shared --enable-mpi-thread-multiple --with-openib ' +configopts += '--enable-mpirun-prefix-by-default ' # suppress failure modes in relation to mpirun path +configopts += '--disable-dlopen ' # statically link component, don't do dynamic loading +configopts += '--with-hwloc=$EBROOTHWLOC ' + +dependencies = [('hwloc', '1.8.1')] + +# needed for --with-openib +osdependencies = [('libibverbs-dev', 'libibverbs-devel')] + +libs = ["mpi_cxx", "mpi_f77", "mpi_f90", "mpi", "ompitrace", "open-pal", "open-rte", + "vt", "vt-hyb", "vt-mpi", "vt-mpi-unify"] +sanity_check_paths = { + 'files': ["bin/%s" % binfile for binfile in ["ompi_info", "opal_wrapper", "orterun"]] + + ["lib/lib%s.%s" % (libfile, SHLIB_EXT) for libfile in libs] + + ["include/%s.h" % x for x in ["mpi-ext", "mpif-common", "mpif-config", "mpif", + "mpif-mpi-io", "mpi", "mpi_portable_platform"]], + 'dirs': ["include/openmpi/ompi/mpi/cxx"], +} + +opt = True + +moduleclass = 'mpi' diff --git a/o/OpenMPI/OpenMPI-1.8.6-GCC-4.4.7-system.eb b/o/OpenMPI/OpenMPI-1.8.6-GCC-4.4.7-system.eb new file mode 100644 index 00000000..0813aa7d --- /dev/null +++ b/o/OpenMPI/OpenMPI-1.8.6-GCC-4.4.7-system.eb @@ -0,0 +1,39 @@ +# Built with EasyBuild version 2.1.1 on 2015-08-31_15-14-23 +easyblock = 'ConfigureMake' + +name = 'OpenMPI' +version = '1.8.6' + +homepage = 'http://www.open-mpi.org/' +description = """The Open MPI Project is an open source MPI-2 implementation.""" + +toolchain = {'name': 'GCC', 'version': '4.4.7-system'} + +sources = [SOURCELOWER_TAR_GZ] +source_urls = ['http://www.open-mpi.org/software/ompi/v%(version_major_minor)s/downloads'] + +builddependencies = [ + ('Java', '1.8.0_51', '', True) +] + +#dependencies = [('hwloc', '1.5')] + +configopts = '--with-threads=posix --enable-shared --enable-mpi-thread-multiple --with-verbs ' +configopts += '--enable-mpirun-prefix-by-default ' # suppress failure modes in relation to mpirun path +configopts += '--with-hwloc=$EBROOTHWLOC ' # hwloc support +configopts += '--enable-mpi-java ' # Java support RT#4090 +configopts += '--disable-dlopen ' # statically link component, don't do dynamic loading +configopts += '--with-tm=/opt/pbs/default ' # Enable PBS + +# needed for --with-verbs +osdependencies = [('libibverbs-dev', 'libibverbs-devel'), 'hwloc'] + +libs = ["mpi_cxx", "mpi_mpifh", "mpi", "ompitrace", "open-pal", "open-rte", "vt", "vt-hyb", "vt-mpi", "vt-mpi-unify"] +sanity_check_paths = { + 'files': ["bin/%s" % binfile for binfile in ["ompi_info", "opal_wrapper", "orterun"]] + + ["lib/lib%s.%s" % (libfile, SHLIB_EXT) for libfile in libs] + + ["include/%s.h" % x for x in ["mpi-ext", "mpif-config", "mpif", "mpi", "mpi_portable_platform"]], + 'dirs': ["include/openmpi/ompi/mpi/cxx"], +} + +moduleclass = 'mpi' diff --git a/o/OpenMPI/OpenMPI-1.8.6-GNU-4.4.7-system.eb b/o/OpenMPI/OpenMPI-1.8.6-GNU-4.4.7-system.eb new file mode 100644 index 00000000..2cb061e4 --- /dev/null +++ b/o/OpenMPI/OpenMPI-1.8.6-GNU-4.4.7-system.eb @@ -0,0 +1,38 @@ +easyblock = 'ConfigureMake' + +name = 'OpenMPI' +version = '1.8.6' + +homepage = 'http://www.open-mpi.org/' +description = """The Open MPI Project is an open source MPI-2 implementation.""" + +toolchain = {'name': 'GCC', 'version': '4.4.7-system'} + +sources = [SOURCELOWER_TAR_GZ] +source_urls = ['http://www.open-mpi.org/software/ompi/v%(version_major_minor)s/downloads'] + +builddependencies = [ + ('Java', '1.8.0_51', '', True) +] + +#dependencies = [('hwloc', '1.5')] + +configopts = '--with-threads=posix --enable-shared --enable-mpi-thread-multiple --with-verbs ' +configopts += '--enable-mpirun-prefix-by-default ' # suppress failure modes in relation to mpirun path +configopts += '--with-hwloc=$EBROOTHWLOC ' # hwloc support +configopts += '--enable-mpi-java ' # Java support RT#4090 +configopts += '--disable-dlopen ' # statically link component, don't do dynamic loading +configopts += '--with-tm=/opt/pbs/default ' # Enable PBS + +# needed for --with-verbs +osdependencies = [('libibverbs-dev', 'libibverbs-devel'), 'hwloc'] + +libs = ["mpi_cxx", "mpi_mpifh", "mpi", "ompitrace", "open-pal", "open-rte", "vt", "vt-hyb", "vt-mpi", "vt-mpi-unify"] +sanity_check_paths = { + 'files': ["bin/%s" % binfile for binfile in ["ompi_info", "opal_wrapper", "orterun"]] + + ["lib/lib%s.%s" % (libfile, SHLIB_EXT) for libfile in libs] + + ["include/%s.h" % x for x in ["mpi-ext", "mpif-config", "mpif", "mpi", "mpi_portable_platform"]], + 'dirs': ["include/openmpi/ompi/mpi/cxx"], +} + +moduleclass = 'mpi' diff --git a/o/OpenMPI/OpenMPI-1.8.6-GNU-4.9.3-2.25.eb b/o/OpenMPI/OpenMPI-1.8.6-GNU-4.9.3-2.25.eb new file mode 100644 index 00000000..06494349 --- /dev/null +++ b/o/OpenMPI/OpenMPI-1.8.6-GNU-4.9.3-2.25.eb @@ -0,0 +1,38 @@ +easyblock = 'ConfigureMake' + +name = 'OpenMPI' +version = '1.8.6' + +homepage = 'http://www.open-mpi.org/' +description = """The Open MPI Project is an open source MPI-2 implementation.""" + +toolchain = {'name': 'GNU', 'version': '4.9.3-2.25'} + +sources = [SOURCELOWER_TAR_GZ] +source_urls = ['http://www.open-mpi.org/software/ompi/v%(version_major_minor)s/downloads'] + +builddependencies = [ + ('Java', '1.8.0_51', '', True) +] + +dependencies = [('hwloc', '1.11.0')] + +configopts = '--with-threads=posix --enable-shared --enable-mpi-thread-multiple --with-verbs ' +configopts += '--enable-mpirun-prefix-by-default ' # suppress failure modes in relation to mpirun path +configopts += '--with-hwloc=$EBROOTHWLOC ' # hwloc support +configopts += '--enable-mpi-java ' # Java support RT#4090 +configopts += '--disable-dlopen ' # statically link component, don't do dynamic loading +configopts += '--with-tm=/opt/pbs/default ' # Enable PBS + +# needed for --with-verbs +osdependencies = [('libibverbs-dev', 'libibverbs-devel')] + +libs = ["mpi_cxx", "mpi_mpifh", "mpi", "ompitrace", "open-pal", "open-rte", "vt", "vt-hyb", "vt-mpi", "vt-mpi-unify"] +sanity_check_paths = { + 'files': ["bin/%s" % binfile for binfile in ["ompi_info", "opal_wrapper", "orterun"]] + + ["lib/lib%s.%s" % (libfile, SHLIB_EXT) for libfile in libs] + + ["include/%s.h" % x for x in ["mpi-ext", "mpif-config", "mpif", "mpi", "mpi_portable_platform"]], + 'dirs': ["include/openmpi/ompi/mpi/cxx"], +} + +moduleclass = 'mpi' diff --git a/o/OpenMPI/OpenMPI-1.8.6-GNU-5.1.0-2.25.eb b/o/OpenMPI/OpenMPI-1.8.6-GNU-5.1.0-2.25.eb new file mode 100644 index 00000000..4bfdb585 --- /dev/null +++ b/o/OpenMPI/OpenMPI-1.8.6-GNU-5.1.0-2.25.eb @@ -0,0 +1,38 @@ +easyblock = 'ConfigureMake' + +name = 'OpenMPI' +version = '1.8.6' + +homepage = 'http://www.open-mpi.org/' +description = """The Open MPI Project is an open source MPI-2 implementation.""" + +toolchain = {'name': 'GNU', 'version': '5.1.0-2.25'} + +sources = [SOURCELOWER_TAR_GZ] +source_urls = ['http://www.open-mpi.org/software/ompi/v%(version_major_minor)s/downloads'] + +builddependencies = [ + ('Java', '1.8.0_51', '', True) +] + +dependencies = [('hwloc', '1.11.0')] + +configopts = '--with-threads=posix --enable-shared --enable-mpi-thread-multiple --with-verbs ' +configopts += '--enable-mpirun-prefix-by-default ' # suppress failure modes in relation to mpirun path +configopts += '--with-hwloc=$EBROOTHWLOC ' # hwloc support +configopts += '--enable-mpi-java ' # Java support RT#4090 +configopts += '--disable-dlopen ' # statically link component, don't do dynamic loading +configopts += '--with-tm=/opt/pbs/default ' # Enable PBS + +# needed for --with-verbs +osdependencies = [('libibverbs-dev', 'libibverbs-devel')] + +libs = ["mpi_cxx", "mpi_mpifh", "mpi", "ompitrace", "open-pal", "open-rte", "vt", "vt-hyb", "vt-mpi", "vt-mpi-unify"] +sanity_check_paths = { + 'files': ["bin/%s" % binfile for binfile in ["ompi_info", "opal_wrapper", "orterun"]] + + ["lib/lib%s.%s" % (libfile, SHLIB_EXT) for libfile in libs] + + ["include/%s.h" % x for x in ["mpi-ext", "mpif-config", "mpif", "mpi", "mpi_portable_platform"]], + 'dirs': ["include/openmpi/ompi/mpi/cxx"], +} + +moduleclass = 'mpi' diff --git a/o/OpenMPI/OpenMPI-1.8.6-iccifort-2015.3.187-GNU-5.1.0-2.25.eb b/o/OpenMPI/OpenMPI-1.8.6-iccifort-2015.3.187-GNU-5.1.0-2.25.eb new file mode 100644 index 00000000..00c75cb9 --- /dev/null +++ b/o/OpenMPI/OpenMPI-1.8.6-iccifort-2015.3.187-GNU-5.1.0-2.25.eb @@ -0,0 +1,39 @@ +easyblock = 'ConfigureMake' + +name = 'OpenMPI' +version = '1.8.6' + +homepage = 'http://www.open-mpi.org/' +description = """The Open MPI Project is an open source MPI-2 implementation.""" + +toolchain = {'name': 'iccifort', 'version': '2015.3.187-GNU-5.1.0-2.25'} + +sources = [SOURCELOWER_TAR_GZ] +source_urls = ['http://www.open-mpi.org/software/ompi/v%(version_major_minor)s/downloads'] + +builddependencies = [ + ('Java', '1.8.0_51', '', True) +] + +dependencies = [('hwloc', '1.11.0', '', ('GNU','5.1.0-2.25'))] + +configopts = '--with-threads=posix --enable-shared --enable-mpi-thread-multiple --with-verbs ' +configopts += '--enable-mpirun-prefix-by-default ' # suppress failure modes in relation to mpirun path +configopts += '--with-hwloc=$EBROOTHWLOC ' # hwloc support +configopts += '--enable-mpi-java ' # Java support RT#4090 +configopts += ' CC=icc FC=ifort CXX=icpc ' +configopts += '--disable-dlopen ' # statically link component, don't do dynamic loading +configopts += '--with-tm=/opt/pbs/default ' # Enable PBS + +# needed for --with-verbs +osdependencies = [('libibverbs-dev', 'libibverbs-devel')] + +libs = ["mpi_cxx", "mpi_mpifh", "mpi", "ompitrace", "open-pal", "open-rte", "vt", "vt-hyb", "vt-mpi", "vt-mpi-unify"] +sanity_check_paths = { + 'files': ["bin/%s" % binfile for binfile in ["ompi_info", "opal_wrapper", "orterun"]] + + ["lib/lib%s.%s" % (libfile, SHLIB_EXT) for libfile in libs] + + ["include/%s.h" % x for x in ["mpi-ext", "mpif-config", "mpif", "mpi", "mpi_portable_platform"]], + 'dirs': ["include/openmpi/ompi/mpi/cxx"], +} + +moduleclass = 'mpi' diff --git a/o/OpenMPI/OpenMPI-1.8.8-GNU-4.9.3-2.25.eb b/o/OpenMPI/OpenMPI-1.8.8-GNU-4.9.3-2.25.eb new file mode 100644 index 00000000..13fcea48 --- /dev/null +++ b/o/OpenMPI/OpenMPI-1.8.8-GNU-4.9.3-2.25.eb @@ -0,0 +1,44 @@ +easyblock = 'ConfigureMake' + +name = 'OpenMPI' +version = '1.8.8' + +homepage = 'http://www.open-mpi.org/' +description = """The Open MPI Project is an open source MPI-2 implementation.""" + +toolchain = {'name': 'GNU', 'version': '4.9.3-2.25'} + +sources = [SOURCELOWER_TAR_GZ] +source_urls = ['http://www.open-mpi.org/software/ompi/v%(version_major_minor)s/downloads'] + +builddependencies = [ + ('Java', '1.8.0_51', '', True) +] + +dependencies = [('hwloc', '1.11.0')] + +preconfigopts = "export LIBS=-ldl && " + +configopts = '--with-threads=posix --enable-shared --enable-mpi-thread-multiple --with-verbs ' +configopts += '--enable-mpirun-prefix-by-default ' # suppress failure modes in relation to mpirun path +configopts += '--with-hwloc=$EBROOTHWLOC ' # hwloc support +configopts += '--enable-mpi-java ' # Java support RT#4090 +configopts += '--enable-dlopen ' # statically link component +configopts += '--with-tm=/opt/pbs/default ' # Enable PBS + +# needed for --with-verbs +osdependencies = [('libibverbs-dev', 'libibverbs-devel')] + +libs = ["mpi_cxx", "mpi_mpifh", "mpi", "ompitrace", "open-pal", "open-rte", "vt", "vt-hyb", "vt-mpi", "vt-mpi-unify"] +sanity_check_paths = { + 'files': ["bin/%s" % binfile for binfile in ["ompi_info", "opal_wrapper", "orterun"]] + + ["lib/lib%s.%s" % (libfile, SHLIB_EXT) for libfile in libs] + + ["include/%s.h" % x for x in ["mpi-ext", "mpif-config", "mpif", "mpi", "mpi_portable_platform"]], + 'dirs': ["include/openmpi/ompi/mpi/cxx"], +} + +modextravars = {'OMPI_MCA_btl_openib_if_include': 'mlx4_0', + 'OMPI_MCA_oob_tcp_if_include': '10.0.0.0/8', +} + +moduleclass = 'mpi' diff --git a/o/OpenMPI/OpenMPI-1.8.8-GNU-5.1.0-2.25.eb b/o/OpenMPI/OpenMPI-1.8.8-GNU-5.1.0-2.25.eb new file mode 100644 index 00000000..0f83c6bc --- /dev/null +++ b/o/OpenMPI/OpenMPI-1.8.8-GNU-5.1.0-2.25.eb @@ -0,0 +1,38 @@ +easyblock = 'ConfigureMake' + +name = 'OpenMPI' +version = '1.8.8' + +homepage = 'http://www.open-mpi.org/' +description = """The Open MPI Project is an open source MPI-2 implementation.""" + +toolchain = {'name': 'GNU', 'version': '5.1.0-2.25'} + +sources = [SOURCELOWER_TAR_GZ] +source_urls = ['http://www.open-mpi.org/software/ompi/v%(version_major_minor)s/downloads'] + +builddependencies = [ + ('Java', '1.8.0_51', '', True) +] + +dependencies = [('hwloc', '1.11.0')] + +configopts = '--with-threads=posix --enable-shared --enable-mpi-thread-multiple --with-verbs ' +configopts += '--enable-mpirun-prefix-by-default ' # suppress failure modes in relation to mpirun path +configopts += '--with-hwloc=$EBROOTHWLOC ' # hwloc support +configopts += '--enable-mpi-java ' # Java support RT#4090 +configopts += '--disable-dlopen ' # statically link component, don't do dynamic loading +configopts += '--with-tm=/opt/pbs/default ' # Enable PBS + +# needed for --with-verbs +osdependencies = [('libibverbs-dev', 'libibverbs-devel')] + +libs = ["mpi_cxx", "mpi_mpifh", "mpi", "ompitrace", "open-pal", "open-rte", "vt", "vt-hyb", "vt-mpi", "vt-mpi-unify"] +sanity_check_paths = { + 'files': ["bin/%s" % binfile for binfile in ["ompi_info", "opal_wrapper", "orterun"]] + + ["lib/lib%s.%s" % (libfile, SHLIB_EXT) for libfile in libs] + + ["include/%s.h" % x for x in ["mpi-ext", "mpif-config", "mpif", "mpi", "mpi_portable_platform"]], + 'dirs': ["include/openmpi/ompi/mpi/cxx"], +} + +moduleclass = 'mpi' diff --git a/o/OpenMPI/OpenMPI-1.8.8-iccifort-2015.3.187-GNU-4.9.3-2.25.eb b/o/OpenMPI/OpenMPI-1.8.8-iccifort-2015.3.187-GNU-4.9.3-2.25.eb new file mode 100644 index 00000000..23564ecb --- /dev/null +++ b/o/OpenMPI/OpenMPI-1.8.8-iccifort-2015.3.187-GNU-4.9.3-2.25.eb @@ -0,0 +1,44 @@ +easyblock = 'ConfigureMake' + +name = 'OpenMPI' +version = '1.8.8' + +homepage = 'http://www.open-mpi.org/' +description = """The Open MPI Project is an open source MPI-2 implementation.""" + +toolchain = {'name': 'iccifort', 'version': '2015.3.187-GNU-4.9.3-2.25'} + +sources = [SOURCELOWER_TAR_GZ] +source_urls = ['http://www.open-mpi.org/software/ompi/v%(version_major_minor)s/downloads'] + +builddependencies = [ + ('Java', '1.8.0_51', '', True) +] + +configopts = '--with-threads=posix --enable-shared --enable-mpi-thread-multiple --with-verbs ' +configopts += '--enable-mpirun-prefix-by-default ' # suppress failure modes in relation to mpirun path +configopts += '--with-hwloc=$EBROOTHWLOC ' # hwloc support +configopts += '--disable-dlopen ' # statically link component, don't do dynamic loading +configopts += '--with-tm=/opt/pbs/default ' # Enable PBS +configopts += '--enable-mpi-java ' # Java support RT#4090 + +dependencies = [('hwloc', '1.11.1')] + +# needed for --with-verbs +osdependencies = [('libibverbs-dev', 'libibverbs-devel')] + +libs = ["mpi_cxx", "mpi_mpifh", "mpi", "ompitrace", "open-pal", "open-rte", "vt", "vt-hyb", "vt-mpi", "vt-mpi-unify"] +sanity_check_paths = { + 'files': ["bin/%s" % binfile for binfile in ["ompi_info", "opal_wrapper", "orterun"]] + + ["lib/lib%s.%s" % (libfile, SHLIB_EXT) for libfile in libs] + + ["include/%s.h" % x for x in ["mpi-ext", "mpif-config", "mpif", "mpi", "mpi_portable_platform"]], + 'dirs': ["include/openmpi/ompi/mpi/cxx"], +} + +sanity_check_commands = [ + ('mpicc --version | grep icc', ''), + ('mpicxx --version | grep icpc', ''), + ('mpifort --version | grep ifort', ''), +] + +moduleclass = 'mpi' diff --git a/o/OpenMPI/OpenMPI-2.0.0-GCC-5.2.0.eb b/o/OpenMPI/OpenMPI-2.0.0-GCC-5.2.0.eb new file mode 100644 index 00000000..23deffc8 --- /dev/null +++ b/o/OpenMPI/OpenMPI-2.0.0-GCC-5.2.0.eb @@ -0,0 +1,34 @@ +easyblock = 'ConfigureMake' + +name = 'OpenMPI' +version = '2.0.0' + +homepage = 'http://www.open-mpi.org/' +description = """The Open MPI Project is an open source MPI-2 implementation.""" + +toolchain = {'name': 'GCC', 'version': '5.2.0'} + +sources = [SOURCELOWER_TAR_GZ] + +source_urls = ['http://www.open-mpi.org/software/ompi/v%(version_major_minor)s/downloads',] + +dependencies = [('hwloc', '1.11.3')] + +configopts = '--with-threads=posix --enable-shared --enable-mpi-thread-multiple --with-verbs ' +configopts += '--enable-mpirun-prefix-by-default ' # suppress failure modes in relation to mpirun path +configopts += '--with-hwloc=$EBROOTHWLOC ' # hwloc support +configopts += '--disable-dlopen ' # statically link component, don't do dynamic loading + +# needed for --with-verbs +osdependencies = [('libibverbs-dev', 'libibverbs-devel'),] + +# VampirTrace is no longer used : https://www.open-mpi.org/community/lists/announce/2016/07/0085.php +libs = ["mpi_mpifh", "mpi", "ompitrace", "open-pal", "open-rte"] +sanity_check_paths = { + 'files': ["bin/%s" % binfile for binfile in ["ompi_info", "opal_wrapper", "orterun"]] + + ["lib/lib%s.%s" % (libfile, SHLIB_EXT) for libfile in libs] + + ["include/%s.h" % x for x in ["mpi-ext", "mpif-config", "mpif", "mpi", "mpi_portable_platform"]], + 'dirs': ["include/openmpi"], +} + +moduleclass = 'mpi' diff --git a/o/OpenMPI/OpenMPI-2.0.1-GCC-6.2.0-2.27.eb b/o/OpenMPI/OpenMPI-2.0.1-GCC-6.2.0-2.27.eb new file mode 100644 index 00000000..aeb2a52e --- /dev/null +++ b/o/OpenMPI/OpenMPI-2.0.1-GCC-6.2.0-2.27.eb @@ -0,0 +1,33 @@ +easyblock = 'ConfigureMake' + +name = 'OpenMPI' +version = '2.0.1' + +homepage = 'http://www.open-mpi.org/' +description = """The Open MPI Project is an open source MPI-2 implementation.""" + +toolchain = {'name': 'GCC', 'version': '6.2.0-2.27'} + +sources = [SOURCELOWER_TAR_GZ] + +source_urls = ['http://www.open-mpi.org/software/ompi/v%(version_major_minor)s/downloads',] + +dependencies = [('hwloc', '1.11.4')] + +configopts = '--with-threads=posix --enable-shared --enable-mpi-thread-multiple --with-verbs ' +configopts += '--enable-mpirun-prefix-by-default ' # suppress failure modes in relation to mpirun path +configopts += '--with-hwloc=$EBROOTHWLOC ' # hwloc support +configopts += '--disable-dlopen ' # statically link component, don't do dynamic loading + +# needed for --with-verbs +osdependencies = [('libibverbs-dev', 'libibverbs-devel'),] + +libs = ["mpi_mpifh", "mpi", "ompitrace", "open-pal", "open-rte"] +sanity_check_paths = { + 'files': ["bin/%s" % binfile for binfile in ["ompi_info", "opal_wrapper", "orterun"]] + + ["lib/lib%s.%s" % (libfile, SHLIB_EXT) for libfile in libs] + + ["include/%s.h" % x for x in ["mpi-ext", "mpif-config", "mpif", "mpi", "mpi_portable_platform"]], + 'dirs': [], +} + +moduleclass = 'mpi' diff --git a/o/OpenMPI/OpenMPI-2.0.1-gcccuda-2016.10.eb b/o/OpenMPI/OpenMPI-2.0.1-gcccuda-2016.10.eb new file mode 100644 index 00000000..3d626a7c --- /dev/null +++ b/o/OpenMPI/OpenMPI-2.0.1-gcccuda-2016.10.eb @@ -0,0 +1,33 @@ +easyblock = 'ConfigureMake' + +name = 'OpenMPI' +version = '2.0.1' + +homepage = 'http://www.open-mpi.org/' +description = """The Open MPI Project is an open source MPI-2 implementation.""" + +toolchain = {'name': 'gcccuda', 'version': '2016.10'} + +sources = [SOURCELOWER_TAR_GZ] + +source_urls = ['http://www.open-mpi.org/software/ompi/v%(version_major_minor)s/downloads',] + +dependencies = [('hwloc', '1.11.4')] + +configopts = '--with-threads=posix --enable-shared --enable-mpi-thread-multiple --with-verbs ' +configopts += '--enable-mpirun-prefix-by-default ' # suppress failure modes in relation to mpirun path +configopts += '--with-hwloc=$EBROOTHWLOC ' # hwloc support +configopts += '--with-cuda=$CUDA_HOME ' # CUDA-aware build; N.B. --disable-dlopen is incompatible + +# needed for --with-verbs +osdependencies = [('libibverbs-dev', 'libibverbs-devel'),] + +libs = ["mpi_mpifh", "mpi", "ompitrace", "open-pal", "open-rte"] +sanity_check_paths = { + 'files': ["bin/%s" % binfile for binfile in ["ompi_info", "opal_wrapper", "orterun"]] + + ["lib/lib%s.%s" % (libfile, SHLIB_EXT) for libfile in libs] + + ["include/%s.h" % x for x in ["mpi-ext", "mpif-config", "mpif", "mpi", "mpi_portable_platform"]], + 'dirs': [], +} + +moduleclass = 'mpi' diff --git a/o/OpenMPI/OpenMPI-2.0.1-iccifort-2017.1.132-GCC-5.4.0-2.26.eb b/o/OpenMPI/OpenMPI-2.0.1-iccifort-2017.1.132-GCC-5.4.0-2.26.eb new file mode 100644 index 00000000..01db9746 --- /dev/null +++ b/o/OpenMPI/OpenMPI-2.0.1-iccifort-2017.1.132-GCC-5.4.0-2.26.eb @@ -0,0 +1,35 @@ +easyblock = 'ConfigureMake' + +name = 'OpenMPI' +version = '2.0.1' + +homepage = 'http://www.open-mpi.org/' +description = """The Open MPI Project is an open source MPI-2 implementation.""" + +toolchain = {'name': 'iccifort', 'version': '2017.1.132-GCC-5.4.0-2.26'} + +sources = [SOURCELOWER_TAR_GZ] + +source_urls = ['http://www.open-mpi.org/software/ompi/v%(version_major_minor)s/downloads',] + +dependencies = [ + ('hwloc', '1.11.4'), + ('Java', '1.8.0_112', '', ('dummy', '')) +] + +configopts = '--with-threads=posix --enable-shared --enable-mpi-thread-multiple --with-verbs ' +configopts += '--enable-mpirun-prefix-by-default ' # suppress failure modes in relation to mpirun path +configopts += '--with-hwloc=$EBROOTHWLOC ' # hwloc support +configopts += '--disable-dlopen ' # statically link component, don't do dynamic loading +configopts += '--with-tm=/opt/pbs/default ' # Enable PBS +configopts += '--enable-mpi-java ' # Java support RT#4090 + +# for PBS Pro 13 +preconfigopts = 'export LIBS="-ldl" && ' + +# needed for --with-verbs +osdependencies = [('libibverbs-dev', 'libibverbs-devel'),] + +libs = ["mpi_cxx", "mpi_mpifh", "mpi", "ompitrace", "open-pal", "open-rte", "vt", "vt-hyb", "vt-mpi", "vt-mpi-unify"] + +moduleclass = 'mpi' diff --git a/o/OpenMPI/OpenMPI-2.0.1.eb b/o/OpenMPI/OpenMPI-2.0.1.eb new file mode 100644 index 00000000..01be2670 --- /dev/null +++ b/o/OpenMPI/OpenMPI-2.0.1.eb @@ -0,0 +1,47 @@ +easyblock = 'ConfigureMake' + +name = 'OpenMPI' +version = '2.0.1' + +homepage = 'http://www.open-mpi.org/' +description = """The Open MPI Project is an open source MPI-2 implementation.""" + +toolchain = {'name': 'dummy', 'version': 'dummy'} + +sources = [SOURCELOWER_TAR_GZ] + +source_urls = ['http://www.open-mpi.org/software/ompi/v%(version_major_minor)s/downloads',] + +dependencies = [ + ('hwloc', '1.11.4'), + ('Java', '1.8.0_112', '', ('dummy', '')) +] + +configopts = '--with-threads=posix --enable-shared --enable-mpi-thread-multiple --with-verbs ' +configopts += '--enable-mpirun-prefix-by-default ' # suppress failure modes in relation to mpirun path +configopts += '--with-hwloc=$EBROOTHWLOC ' # hwloc support +configopts += '--disable-dlopen ' # statically link component, don't do dynamic loading +configopts += '--with-tm=/opt/pbs/default ' # Enable PBS +configopts += '--enable-mpi-java ' # Java support RT#4090 + +# for PBS Pro 13 +preconfigopts = 'export LIBS="-ldl" && ' + +# needed for --with-verbs +osdependencies = [('libibverbs-dev', 'libibverbs-devel'),] + +libs = ["mpi_cxx", "mpi_mpifh", "mpi", "ompitrace", "open-pal", "open-rte", "vt", "vt-hyb", "vt-mpi", "vt-mpi-unify"] + +# InfiniBand +modextravars = {'OMPI_MCA_btl_openib_if_include': 'mlx4_0', + 'OMPI_MCA_oob_tcp_if_include': '10.0.0.0/8', +} + +sanity_check_paths = { + 'files': ["bin/%s" % binfile for binfile in ["ompi_info", "opal_wrapper", "orterun"]] + + ["lib/lib%s.%s" % (libfile, SHLIB_EXT) for libfile in libs] + + ["include/%s.h" % x for x in ["mpi-ext", "mpif-config", "mpif", "mpi", "mpi_portable_platform"]], + 'dirs': [""], +} + +moduleclass = 'mpi' diff --git a/o/OpenMPI/OpenMPI-2.0.2-GCC-6.3.0-2.27.eb b/o/OpenMPI/OpenMPI-2.0.2-GCC-6.3.0-2.27.eb new file mode 100644 index 00000000..6fdcab53 --- /dev/null +++ b/o/OpenMPI/OpenMPI-2.0.2-GCC-6.3.0-2.27.eb @@ -0,0 +1,43 @@ +easyblock = 'ConfigureMake' + +name = 'OpenMPI' +version = '2.0.2' + +homepage = 'http://www.open-mpi.org/' +description = """The Open MPI Project is an open source MPI-2 implementation.""" + +toolchain = {'name': 'GCC', 'version': '6.3.0-2.27'} + +source_urls = ['http://www.open-mpi.org/software/ompi/v%(version_major_minor)s/downloads'] +sources = [SOURCELOWER_TAR_GZ] +sources = ['openmpi-%(version)s.tar.gz'] +checksums = ['886698becc5bea8c151c0af2074b8392'] + +dependencies = [('hwloc', '1.11.5')] + +configopts = '--with-threads=posix --enable-shared --enable-mpi-thread-multiple --with-verbs ' +configopts += '--enable-mpirun-prefix-by-default ' # suppress failure modes in relation to mpirun path +configopts += '--with-hwloc=$EBROOTHWLOC ' # hwloc support +configopts += '--disable-dlopen ' # statically link component, don't do dynamic loading +configopts += '--with-tm=/opt/pbs/default ' # Enable PBS + +# for PBS Pro 13 +preconfigopts = 'export LIBS="-ldl" && ' + +# needed for --with-verbs +osdependencies = [('libibverbs-dev', 'libibverbs-devel'),] + +libs = ["mpi_mpifh", "mpi", "ompitrace", "open-pal", "open-rte"] + +modextravars = {'OMPI_MCA_btl_openib_if_include': 'mlx4_0', + 'OMPI_MCA_oob_tcp_if_include': '10.0.0.0/8', +} + +sanity_check_paths = { + 'files': ["bin/%s" % binfile for binfile in ["ompi_info", "opal_wrapper", "orterun"]] + + ["lib/lib%s.%s" % (libfile, SHLIB_EXT) for libfile in libs] + + ["include/%s.h" % x for x in ["mpi-ext", "mpif-config", "mpif", "mpi", "mpi_portable_platform"]], + 'dirs': [], +} + +moduleclass = 'mpi' diff --git a/o/OpenPGM/OpenPGM-5.2.122-foss-2015a.eb b/o/OpenPGM/OpenPGM-5.2.122-foss-2015a.eb new file mode 100644 index 00000000..34c308ea --- /dev/null +++ b/o/OpenPGM/OpenPGM-5.2.122-foss-2015a.eb @@ -0,0 +1,27 @@ +easyblock = 'ConfigureMake' + +name = 'OpenPGM' +version = '5.2.122' + +homepage = 'http://code.google.com/p/openpgm/' +description = """OpenPGM is an open source implementation of the Pragmatic General Multicast (PGM) + specification in RFC 3208 available at www.ietf.org. PGM is a reliable and scalable multicast protocol + that enables receivers to detect loss, request retransmission of lost data, or notify an application + of unrecoverable loss. PGM is a receiver-reliable protocol, which means the receiver is responsible + for ensuring all data is received, absolving the sender of reception responsibility.""" + +toolchain = {'name': 'foss', 'version': '2015a'} + +source_urls = [GOOGLECODE_SOURCE] +sources = ['libpgm-%(version)s.tar.gz'] + +configopts = '--with-pic' + +start_dir = 'pgm' + +sanity_check_paths = { + 'files': ['lib/libpgm.%s' % SHLIB_EXT, 'lib/libpgm.a'], + 'dirs': ['include'], +} + +moduleclass = 'system' diff --git a/o/OpenPGM/OpenPGM-5.2.122-foss-2016a.eb b/o/OpenPGM/OpenPGM-5.2.122-foss-2016a.eb new file mode 100644 index 00000000..5f92dedd --- /dev/null +++ b/o/OpenPGM/OpenPGM-5.2.122-foss-2016a.eb @@ -0,0 +1,27 @@ +easyblock = 'ConfigureMake' + +name = 'OpenPGM' +version = '5.2.122' + +homepage = 'http://code.google.com/p/openpgm/' +description = """OpenPGM is an open source implementation of the Pragmatic General Multicast (PGM) + specification in RFC 3208 available at www.ietf.org. PGM is a reliable and scalable multicast protocol + that enables receivers to detect loss, request retransmission of lost data, or notify an application + of unrecoverable loss. PGM is a receiver-reliable protocol, which means the receiver is responsible + for ensuring all data is received, absolving the sender of reception responsibility.""" + +toolchain = {'name': 'foss', 'version': '2016a'} + +source_urls = [GOOGLECODE_SOURCE] +sources = ['libpgm-%(version)s.tar.gz'] + +configopts = '--with-pic' + +start_dir = 'pgm' + +sanity_check_paths = { + 'files': ['lib/libpgm.%s' % SHLIB_EXT, 'lib/libpgm.a'], + 'dirs': ['include'], +} + +moduleclass = 'system' diff --git a/o/OpenPGM/OpenPGM-5.2.122-goolf-1.4.10.eb b/o/OpenPGM/OpenPGM-5.2.122-goolf-1.4.10.eb new file mode 100644 index 00000000..da4b481d --- /dev/null +++ b/o/OpenPGM/OpenPGM-5.2.122-goolf-1.4.10.eb @@ -0,0 +1,27 @@ +easyblock = 'ConfigureMake' + +name = 'OpenPGM' +version = '5.2.122' + +homepage = 'http://code.google.com/p/openpgm/' +description = """OpenPGM is an open source implementation of the Pragmatic General Multicast (PGM) +specification in RFC 3208 available at www.ietf.org. PGM is a reliable and scalable multicast protocol +that enables receivers to detect loss, request retransmission of lost data, or notify an application +of unrecoverable loss. PGM is a receiver-reliable protocol, which means the receiver is responsible +for ensuring all data is received, absolving the sender of reception responsibility.""" + +toolchain = {'name': 'goolf', 'version': '1.4.10'} + +source_urls = ['http://%s.googlecode.com/files/' % (name.lower())] +sources = ['%s-%s.tar.gz' % ('libpgm', version)] + +configopts = '--with-pic' + +start_dir = 'pgm' + +sanity_check_paths = { + 'files': ['lib/libpgm.%s' % SHLIB_EXT, 'lib/libpgm.a'], + 'dirs': ['include'] +} + +moduleclass = 'system' diff --git a/o/OpenPGM/OpenPGM-5.2.122-goolf-1.7.20.eb b/o/OpenPGM/OpenPGM-5.2.122-goolf-1.7.20.eb new file mode 100644 index 00000000..367fbc74 --- /dev/null +++ b/o/OpenPGM/OpenPGM-5.2.122-goolf-1.7.20.eb @@ -0,0 +1,27 @@ +easyblock = 'ConfigureMake' + +name = 'OpenPGM' +version = '5.2.122' + +homepage = 'http://code.google.com/p/openpgm/' +description = """OpenPGM is an open source implementation of the Pragmatic General Multicast (PGM) + specification in RFC 3208 available at www.ietf.org. PGM is a reliable and scalable multicast protocol + that enables receivers to detect loss, request retransmission of lost data, or notify an application + of unrecoverable loss. PGM is a receiver-reliable protocol, which means the receiver is responsible + for ensuring all data is received, absolving the sender of reception responsibility.""" + +toolchain = {'name': 'goolf', 'version': '1.7.20'} + +source_urls = [GOOGLECODE_SOURCE] +sources = ['libpgm-%(version)s.tar.gz'] + +configopts = '--with-pic' + +start_dir = 'pgm' + +sanity_check_paths = { + 'files': ['lib/libpgm.%s' % SHLIB_EXT, 'lib/libpgm.a'], + 'dirs': ['include'], +} + +moduleclass = 'system' diff --git a/o/OpenPGM/OpenPGM-5.2.122-ictce-5.3.0.eb b/o/OpenPGM/OpenPGM-5.2.122-ictce-5.3.0.eb new file mode 100644 index 00000000..8aaab1f3 --- /dev/null +++ b/o/OpenPGM/OpenPGM-5.2.122-ictce-5.3.0.eb @@ -0,0 +1,28 @@ +easyblock = 'ConfigureMake' + +name = 'OpenPGM' +version = '5.2.122' + +homepage = 'http://code.google.com/p/openpgm/' +description = """OpenPGM is an open source implementation of the Pragmatic General Multicast (PGM) + specification in RFC 3208 available at www.ietf.org. PGM is a reliable and scalable multicast protocol + that enables receivers to detect loss, request retransmission of lost data, or notify an application + of unrecoverable loss. PGM is a receiver-reliable protocol, which means the receiver is responsible + for ensuring all data is received, absolving the sender of reception responsibility.""" + + +toolchain = {'name': 'ictce', 'version': '5.3.0'} + +source_urls = ['http://%s.googlecode.com/files/' % (name.lower())] +sources = ['%s-%s.tar.gz' % ('libpgm', version)] + +configopts = '--with-pic' + +start_dir = 'pgm' + +sanity_check_paths = { + 'files': ['lib/libpgm.%s' % SHLIB_EXT, 'lib/libpgm.a'], + 'dirs': ['include'] +} + +moduleclass = 'system' diff --git a/o/OpenPGM/OpenPGM-5.2.122-ictce-5.5.0.eb b/o/OpenPGM/OpenPGM-5.2.122-ictce-5.5.0.eb new file mode 100644 index 00000000..e0719d72 --- /dev/null +++ b/o/OpenPGM/OpenPGM-5.2.122-ictce-5.5.0.eb @@ -0,0 +1,27 @@ +easyblock = 'ConfigureMake' + +name = 'OpenPGM' +version = '5.2.122' + +homepage = 'http://code.google.com/p/openpgm/' +description = """OpenPGM is an open source implementation of the Pragmatic General Multicast (PGM) + specification in RFC 3208 available at www.ietf.org. PGM is a reliable and scalable multicast protocol + that enables receivers to detect loss, request retransmission of lost data, or notify an application + of unrecoverable loss. PGM is a receiver-reliable protocol, which means the receiver is responsible + for ensuring all data is received, absolving the sender of reception responsibility.""" + +toolchain = {'name': 'ictce', 'version': '5.5.0'} + +source_urls = ['http://%s.googlecode.com/files/' % (name.lower())] +sources = ['%s-%s.tar.gz' % ('libpgm', version)] + +configopts = '--with-pic' + +start_dir = 'pgm' + +sanity_check_paths = { + 'files': ['lib/libpgm.%s' % SHLIB_EXT, 'lib/libpgm.a'], + 'dirs': ['include'], +} + +moduleclass = 'system' diff --git a/o/OpenPGM/OpenPGM-5.2.122-intel-2015a.eb b/o/OpenPGM/OpenPGM-5.2.122-intel-2015a.eb new file mode 100644 index 00000000..690b4d99 --- /dev/null +++ b/o/OpenPGM/OpenPGM-5.2.122-intel-2015a.eb @@ -0,0 +1,27 @@ +easyblock = 'ConfigureMake' + +name = 'OpenPGM' +version = '5.2.122' + +homepage = 'http://code.google.com/p/openpgm/' +description = """OpenPGM is an open source implementation of the Pragmatic General Multicast (PGM) + specification in RFC 3208 available at www.ietf.org. PGM is a reliable and scalable multicast protocol + that enables receivers to detect loss, request retransmission of lost data, or notify an application + of unrecoverable loss. PGM is a receiver-reliable protocol, which means the receiver is responsible + for ensuring all data is received, absolving the sender of reception responsibility.""" + +toolchain = {'name': 'intel', 'version': '2015a'} + +source_urls = [GOOGLECODE_SOURCE] +sources = ['libpgm-%(version)s.tar.gz'] + +configopts = '--with-pic' + +start_dir = 'pgm' + +sanity_check_paths = { + 'files': ['lib/libpgm.%s' % SHLIB_EXT, 'lib/libpgm.a'], + 'dirs': ['include'], +} + +moduleclass = 'system' diff --git a/o/OpenPGM/OpenPGM-5.2.122-intel-2015b.eb b/o/OpenPGM/OpenPGM-5.2.122-intel-2015b.eb new file mode 100644 index 00000000..26e1420f --- /dev/null +++ b/o/OpenPGM/OpenPGM-5.2.122-intel-2015b.eb @@ -0,0 +1,28 @@ +easyblock = 'ConfigureMake' + +name = 'OpenPGM' +version = '5.2.122' + +homepage = 'http://code.google.com/p/openpgm/' +description = """OpenPGM is an open source implementation of the Pragmatic General Multicast (PGM) + specification in RFC 3208 available at www.ietf.org. PGM is a reliable and scalable multicast protocol + that enables receivers to detect loss, request retransmission of lost data, or notify an application + of unrecoverable loss. PGM is a receiver-reliable protocol, which means the receiver is responsible + for ensuring all data is received, absolving the sender of reception responsibility.""" + +toolchain = {'name': 'intel', 'version': '2015b'} +toolchainopts = {'pic': True} + +source_urls = [GOOGLECODE_SOURCE] +sources = ['libpgm-%(version)s.tar.gz'] + +configopts = '--with-pic' + +start_dir = 'pgm' + +sanity_check_paths = { + 'files': ['lib/libpgm.so', 'lib/libpgm.a'], + 'dirs': ['include'], +} + +moduleclass = 'system' diff --git a/o/OpenPGM/OpenPGM-5.2.122-intel-2016a.eb b/o/OpenPGM/OpenPGM-5.2.122-intel-2016a.eb new file mode 100644 index 00000000..d391dfe9 --- /dev/null +++ b/o/OpenPGM/OpenPGM-5.2.122-intel-2016a.eb @@ -0,0 +1,28 @@ +easyblock = 'ConfigureMake' + +name = 'OpenPGM' +version = '5.2.122' + +homepage = 'http://code.google.com/p/openpgm/' +description = """OpenPGM is an open source implementation of the Pragmatic General Multicast (PGM) + specification in RFC 3208 available at www.ietf.org. PGM is a reliable and scalable multicast protocol + that enables receivers to detect loss, request retransmission of lost data, or notify an application + of unrecoverable loss. PGM is a receiver-reliable protocol, which means the receiver is responsible + for ensuring all data is received, absolving the sender of reception responsibility.""" + +toolchain = {'name': 'intel', 'version': '2016a'} +toolchainopts = {'pic': True} + +source_urls = [GOOGLECODE_SOURCE] +sources = ['libpgm-%(version)s.tar.gz'] + +configopts = '--with-pic' + +start_dir = 'pgm' + +sanity_check_paths = { + 'files': ['lib/libpgm.%s' % SHLIB_EXT, 'lib/libpgm.a'], + 'dirs': ['include'], +} + +moduleclass = 'system' diff --git a/o/orthomcl/orthomcl-2.0.8-goolf-1.4.10-Perl-5.16.3.eb b/o/orthomcl/orthomcl-2.0.8-goolf-1.4.10-Perl-5.16.3.eb new file mode 100644 index 00000000..2cbfe288 --- /dev/null +++ b/o/orthomcl/orthomcl-2.0.8-goolf-1.4.10-Perl-5.16.3.eb @@ -0,0 +1,38 @@ +easyblock = "Tarball" + +name = 'orthomcl' +version = '2.0.8' + +homepage = 'http://orthomcl.org/' +description = """OrthoMCL is a genome-scale algorithm for grouping orthologous protein sequences.""" + +toolchain = {'name': 'goolf', 'version': '1.4.10'} + +sources = ['%(name)sSoftware-v%(version)s.tar.gz'] +source_urls = ['http://orthomcl.org/common/downloads/software/v%s/' % '.'.join(version.split('.')[:2])] + +patches = ['orthomcl_fix-perl-hashbang.patch'] + +# a Perl installation providing the DBI module is required +perl = 'Perl' +perlver = '5.16.3' +versionsuffix = '-%s-%s' % (perl, perlver) +dependencies = [ + (perl, perlver), + ('MCL', '12.135'), +] + +sanity_check_paths = { + 'files': ['bin/orthomcl%s' % bin for bin in ['AdjustFasta', 'BlastParser', 'DropSchema', 'DumpPairsFiles', + 'ExtractProteinIdsFromGroupsFile', 'ExtractProteinPairsFromGroupsFile', + 'FilterFasta', 'InstallSchema', 'LoadBlast', 'MclToGroups', 'Pairs', + 'ReduceFasta', 'ReduceGroups', 'RemoveIdenticalGroups', 'Singletons', + 'SortGroupMembersByScore', 'SortGroupsFile']], + 'dirs': ['lib/perl/OrthoMCLEngine'], +} + +modextrapaths = {'PERL5LIB': 'lib/perl'} + +sanity_check_commands = [('perl', '-e "use OrthoMCLEngine::Main::Base"')] + +moduleclass = 'bio' diff --git a/o/orthomcl/orthomcl-2.0.8-ictce-5.3.0-Perl-5.16.3.eb b/o/orthomcl/orthomcl-2.0.8-ictce-5.3.0-Perl-5.16.3.eb new file mode 100644 index 00000000..2fe03116 --- /dev/null +++ b/o/orthomcl/orthomcl-2.0.8-ictce-5.3.0-Perl-5.16.3.eb @@ -0,0 +1,38 @@ +easyblock = "Tarball" + +name = 'orthomcl' +version = '2.0.8' + +homepage = 'http://orthomcl.org/' +description = """OrthoMCL is a genome-scale algorithm for grouping orthologous protein sequences.""" + +toolchain = {'name': 'ictce', 'version': '5.3.0'} + +sources = ['%(name)sSoftware-v%(version)s.tar.gz'] +source_urls = ['http://orthomcl.org/common/downloads/software/v%s/' % '.'.join(version.split('.')[:2])] + +patches = ['orthomcl_fix-perl-hashbang.patch'] + +# a Perl installation providing the DBI module is required +perl = 'Perl' +perlver = '5.16.3' +versionsuffix = '-%s-%s' % (perl, perlver) +dependencies = [ + (perl, perlver), + ('MCL', '12.135'), +] + +sanity_check_paths = { + 'files': ['bin/orthomcl%s' % bin for bin in ['AdjustFasta', 'BlastParser', 'DropSchema', 'DumpPairsFiles', + 'ExtractProteinIdsFromGroupsFile', 'ExtractProteinPairsFromGroupsFile', + 'FilterFasta', 'InstallSchema', 'LoadBlast', 'MclToGroups', 'Pairs', + 'ReduceFasta', 'ReduceGroups', 'RemoveIdenticalGroups', 'Singletons', + 'SortGroupMembersByScore', 'SortGroupsFile']], + 'dirs': ['lib/perl/OrthoMCLEngine'], +} + +modextrapaths = {'PERL5LIB': 'lib/perl'} + +sanity_check_commands = [('perl', '-e "use OrthoMCLEngine::Main::Base"')] + +moduleclass = 'bio' diff --git a/p/PAPI/PAPI-5.4.0-ictce-5.5.0.eb b/p/PAPI/PAPI-5.4.0-ictce-5.5.0.eb new file mode 100644 index 00000000..21ef6477 --- /dev/null +++ b/p/PAPI/PAPI-5.4.0-ictce-5.5.0.eb @@ -0,0 +1,33 @@ +easyblock = 'ConfigureMake' + +name = 'PAPI' +version = '5.4.0' + +homepage = 'http://icl.cs.utk.edu/projects/papi/' +description = """PAPI provides the tool designer and application engineer with a consistent interface and + methodology for use of the performance counter hardware found in most major microprocessors. PAPI enables + software engineers to see, in near real time, the relation between software performance and processor events. + In addition Component PAPI provides access to a collection of components + that expose performance measurement opportunites across the hardware and software stack.""" + +toolchain = {'name': 'ictce', 'version': '5.5.0'} + +source_urls = ['http://icl.cs.utk.edu/projects/papi/downloads/'] +sources = [SOURCELOWER_TAR_GZ] + +start_dir = 'src' + +# parallel build doesn't always work +#parallel = 1 + +runtest = 'fulltest' + +sanity_check_paths = { + 'files': ["bin/papi_%s" % x for x in ["avail", "clockres", "command_line", "component_avail", + "cost", "decode", "error_codes", "event_chooser", + "mem_info", "multiplex_cost", "native_avail", "version", + "xml_event_info"]], + 'dirs': [], +} + +moduleclass = 'perf' diff --git a/p/PAPI/PAPI-5.4.3-pic.eb b/p/PAPI/PAPI-5.4.3-pic.eb new file mode 100644 index 00000000..2ae7683f --- /dev/null +++ b/p/PAPI/PAPI-5.4.3-pic.eb @@ -0,0 +1,53 @@ +## +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# +# Copyright:: Copyright 2012-2014 Uni.Lu/LCSB, NTUA +# Authors:: Fotis Georgatos +# 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_07-02.html +## + +easyblock = 'ConfigureMake' + +name = 'PAPI' +version = '5.4.3' +versionsuffix = '-pic' + +homepage = 'http://icl.cs.utk.edu/projects/papi/' +description = """PAPI provides the tool designer and application engineer with a consistent interface and + methodology for use of the performance counter hardware found in most major microprocessors. PAPI enables + software engineers to see, in near real time, the relation between software performance and processor events. + In addition Component PAPI provides access to a collection of components + that expose performance measurement opportunites across the hardware and software stack.""" + +toolchain = {'name': 'dummy', 'version': ''} +toolchainopts = {'pic': True} + +source_urls = ['http://icl.cs.utk.edu/projects/papi/downloads/'] +sources = [SOURCELOWER_TAR_GZ] + +checksums = [ + '3211b5a5bb389fe692370f5cf4cc2412', # papi-5.4.3.tar.gz +] + +configopts = '--with-shared-lib=yes' + +start_dir = 'src' + +# parallel build doesn't always work +parallel = 1 + +runtest = 'fulltest' + +sanity_check_paths = { + 'files': ["bin/papi_%s" % x for x in ["avail", "clockres", "command_line", "component_avail", + "cost", "decode", "error_codes", "event_chooser", + "mem_info", "multiplex_cost", "native_avail", "version", + "xml_event_info"]], + 'dirs': [], +} + +moduleclass = 'perf' diff --git a/p/PARI-GP/PARI-GP-2.7.6-foss-2016a.eb b/p/PARI-GP/PARI-GP-2.7.6-foss-2016a.eb new file mode 100644 index 00000000..b46c6bff --- /dev/null +++ b/p/PARI-GP/PARI-GP-2.7.6-foss-2016a.eb @@ -0,0 +1,34 @@ +easyblock = 'ConfigureMake' + +name = 'PARI-GP' +version = '2.7.6' + +homepage = 'http://pari.math.u-bordeaux.fr' +description = """PARI/GP is a widely used computer algebra system designed for fast computations in number theory + (factorizations, algebraic number theory, elliptic curves...), but also contains a large number of other useful + functions to compute with mathematical entities such as matrices, polynomials, power series, algebraic numbers etc., + and a lot of transcendental functions. PARI is also available as a C library to allow for faster computations. +""" + +toolchain = {'name': 'foss', 'version': '2016a'} + +sources = ['pari-%(version)s.tar.gz'] +source_urls = ['http://pari.math.u-bordeaux.fr/pub/pari/unix/'] + +skipsteps = ['configure'] + +prebuildopts = './Configure --prefix=%(installdir)s &&' + +dependencies = [ + ('libreadline', '6.3'), + ('ncurses', '6.0'), +] + +sanity_check_paths = { + 'files': + ["bin/%s" % binfile for binfile in ['gp','gp-2.7','gphelp','tex2mail']] + + [ "include/pari/%s" % incfile for incfile in ['pari.h','genpari.h']], + 'dirs': ["bin","include"] +} + +moduleclass = 'math' diff --git a/p/PCC/PCC-20131024.eb b/p/PCC/PCC-20131024.eb new file mode 100644 index 00000000..c40392b7 --- /dev/null +++ b/p/PCC/PCC-20131024.eb @@ -0,0 +1,35 @@ +## +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# +# Copyright:: Copyright 2012-2014 Uni.Lu/LCSB, NTUA +# Authors:: Fotis Georgatos +# License:: MIT/GPL +# $Id$ +## + +easyblock = 'ConfigureMake' + +name = 'PCC' +version = '20131024' + +homepage = 'http://pcc.ludd.ltu.se/' +description = """The compiler is based on the original Portable C Compiler by S. C. Johnson, + written in the late 70's. About 50% of the frontend code and 80% of the backend code has been modified.""" + +toolchain = {'name': 'dummy', 'version': ''} + +# eg. http://pcc.ludd.ltu.se/ftp/pub/pcc/pcc-20131024.tgz +sources = ['pcc-%(version)s.tgz'] +source_urls = ['http://pcc.ludd.ltu.se/ftp/pub/pcc/'] + +builddependencies = [ + ('flex', '2.5.35'), + ('Bison', '2.7'), +] + +sanity_check_paths = { + 'files': ["bin/pcc"], + 'dirs': ["lib"] +} + +moduleclass = 'compiler' diff --git a/p/PCMSolver/PCMSolver-20160205-intel-2016a-Python-2.7.11.eb b/p/PCMSolver/PCMSolver-20160205-intel-2016a-Python-2.7.11.eb new file mode 100644 index 00000000..861cd9d9 --- /dev/null +++ b/p/PCMSolver/PCMSolver-20160205-intel-2016a-Python-2.7.11.eb @@ -0,0 +1,43 @@ +easyblock = 'CMakeMake' + +name = 'PCMSolver' +version = '20160205' + +homepage = 'https://pcmsolver.readthedocs.org' +description = """An API for the Polarizable Continuum Model.""" + +toolchain = {'name': 'intel', 'version': '2016a'} +toolchainopts = {'cstd': 'c99'} + +sources = ['2473699d6c5db36525160e.tar.gz'] +source_urls = ['https://github.com/PCMSolver/pcmsolver/archive/'] + +python = 'Python' +pyver = '2.7.11' +versionsuffix = '-%s-%s' % (python, pyver) + +dependencies = [ + (python, pyver), + ('zlib', '1.2.8'), + ('Boost', '1.59.0', versionsuffix), +] + +builddependencies = [ + ('CMake', '3.4.3'), + ('Eigen', '3.2.7'), +] + +configopts = '-DCMAKE_BUILD_TYPE=Release -DEIGEN3_ROOT=$EBROOTEIGEN -DCMAKE_CXX_FLAGS="$LIBLAPACK_MT -DEIGEN_USE_MKL_ALL"' + +separate_build_dir = True + +runtest = 'test' + +postinstallcmds = ["chmod +x %(installdir)s/bin/pcmsolver.py"] + +sanity_check_paths = { + 'files': ['bin/pcmsolver.py', 'lib/libpcm.a', 'lib/libpcm.%s' % SHLIB_EXT], + 'dirs': ['include'] +} + +moduleclass = 'chem' diff --git a/p/PCRE/PCRE-8.36-intel-2014.06.eb b/p/PCRE/PCRE-8.36-intel-2014.06.eb new file mode 100644 index 00000000..9bbb3e4f --- /dev/null +++ b/p/PCRE/PCRE-8.36-intel-2014.06.eb @@ -0,0 +1,20 @@ +easyblock = 'ConfigureMake' + +name = 'PCRE' +version = '8.36' + +homepage = 'http://www.pcre.org/' +description = """ + The PCRE library is a set of functions that implement regular expression pattern matching using the same syntax + and semantics as Perl 5. +""" + +toolchain = {'name': 'intel', 'version': '2014.06'} +toolchainopts = {'optarch': True, 'pic': True} + +configopts = "--with-pic --disable-cpp" + +source_urls = [SOURCEFORGE_SOURCE] +sources = [SOURCELOWER_TAR_GZ] + +moduleclass = 'devel' diff --git a/p/PCRE/PCRE-8.36-intel-2015b.eb b/p/PCRE/PCRE-8.36-intel-2015b.eb new file mode 100644 index 00000000..cc335756 --- /dev/null +++ b/p/PCRE/PCRE-8.36-intel-2015b.eb @@ -0,0 +1,21 @@ +# Built with EasyBuild version 2.1.1 on 2015-06-30_13-40-45 +easyblock = 'ConfigureMake' + +name = 'PCRE' +version = '8.36' + +homepage = 'http://www.pcre.org/' +description = """ + The PCRE library is a set of functions that implement regular expression pattern matching using the same syntax + and semantics as Perl 5. +""" + +toolchain = {'name': 'intel', 'version': '2015b'} +toolchainopts = {'optarch': True, 'pic': True} + +configopts = "--with-pic --disable-cpp" + +source_urls = [SOURCEFORGE_SOURCE] +sources = [SOURCELOWER_TAR_GZ] + +moduleclass = 'devel' diff --git a/p/PCRE/PCRE-8.37.eb b/p/PCRE/PCRE-8.37.eb new file mode 100644 index 00000000..da5b1597 --- /dev/null +++ b/p/PCRE/PCRE-8.37.eb @@ -0,0 +1,18 @@ +easyblock = 'ConfigureMake' + +name = 'PCRE' +version = '8.37' + +homepage = 'http://www.pcre.org/' +description = """The PCRE library is a set of functions that implement regular expression pattern matching using + the same syntax and semantics as Perl 5.""" + +toolchain = {'name': 'dummy', 'version': ''} +toolchainopts = {'optarch': True, 'pic': True} + +source_urls = [SOURCEFORGE_SOURCE] +sources = [SOURCELOWER_TAR_GZ] + +configopts = "--with-pic --disable-cpp --enable-utf --enable-unicode-properties" + +moduleclass = 'devel' diff --git a/p/PCRE/PCRE-8.39-intel-2017.00.eb b/p/PCRE/PCRE-8.39-intel-2017.00.eb new file mode 100644 index 00000000..4389a5f7 --- /dev/null +++ b/p/PCRE/PCRE-8.39-intel-2017.00.eb @@ -0,0 +1,20 @@ +easyblock = 'ConfigureMake' + +name = 'PCRE' +version = '8.39' + +homepage = 'http://www.pcre.org/' +description = """ + The PCRE library is a set of functions that implement regular expression pattern matching using the same syntax + and semantics as Perl 5. +""" + +toolchain = {'name': 'intel', 'version': '2017.00'} +toolchainopts = {'optarch': True, 'pic': True} + +source_urls = [SOURCEFORGE_SOURCE] +sources = [SOURCELOWER_TAR_GZ] + +configopts = "--with-pic --disable-cpp --enable-utf --enable-unicode-properties" + +moduleclass = 'devel' diff --git a/p/PCRE2/PCRE2-10.21-foss-2016a.eb b/p/PCRE2/PCRE2-10.21-foss-2016a.eb new file mode 100644 index 00000000..03cdf3c1 --- /dev/null +++ b/p/PCRE2/PCRE2-10.21-foss-2016a.eb @@ -0,0 +1,25 @@ +easyblock = 'ConfigureMake' + +name = 'PCRE2' +version = '10.21' + +homepage = 'http://www.pcre.org/' +description = """ + The PCRE library is a set of functions that implement regular expression pattern matching using the same syntax + and semantics as Perl 5. +""" + +toolchain = {'name': 'foss', 'version': '2016a'} +toolchainopts = {'optarch': True, 'pic': True} + +source_urls = ['http://download.sourceforge.net/pcre'] +sources = [SOURCELOWER_TAR_GZ] + +configopts = "--with-pic --disable-cpp --enable-jit" + +sanity_check_paths = { + 'files': ["bin/pcre2-config", "bin/pcre2grep", "bin/pcre2test", "lib/libpcre2-8.a"], + 'dirs': [], +} + +moduleclass = 'devel' \ No newline at end of file diff --git a/p/PCRE2/PCRE2-10.22-intel-2017.00.eb b/p/PCRE2/PCRE2-10.22-intel-2017.00.eb new file mode 100644 index 00000000..63c6b3c4 --- /dev/null +++ b/p/PCRE2/PCRE2-10.22-intel-2017.00.eb @@ -0,0 +1,21 @@ +easyblock = 'ConfigureMake' + +name = 'PCRE2' +version = '10.22' + +homepage = 'http://www.pcre.org/' +description = """ + The PCRE library is a set of functions that implement regular expression pattern matching using the same syntax + and semantics as Perl 5. +""" + +toolchain = {'name': 'intel', 'version': '2017.00'} +toolchainopts = {'optarch': True, 'pic': True} + +#source_urls = ['http://download.sourceforge.net/pcre'] +#sources = [SOURCELOWER_TAR_GZ] +sources = ['pcre2-10.22.tar.gz'] + +configopts = "--with-pic --disable-cpp --enable-utf --enable-unicode-properties" + +moduleclass = 'devel' diff --git a/p/PETSc/PETSc-3.3-p2-goolf-1.4.10-Python-2.7.3.eb b/p/PETSc/PETSc-3.3-p2-goolf-1.4.10-Python-2.7.3.eb new file mode 100644 index 00000000..56139c42 --- /dev/null +++ b/p/PETSc/PETSc-3.3-p2-goolf-1.4.10-Python-2.7.3.eb @@ -0,0 +1,31 @@ +name = "PETSc" +version = "3.3-p2" +versionsuffix = '-Python-2.7.3' + +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': 'goolf', 'version': '1.4.10'} +toolchainopts = {'usempi': True, 'pic': True} + +source_urls = ['http://ftp.mcs.anl.gov/pub/petsc/release-snapshots'] +sources = [SOURCELOWER_TAR_GZ] + +patches = [ + 'PETSc_ranlib-fix.patch', + 'PETSc_no-BLACS.patch', +] + +dependencies = [ + ('Boost', '1.49.0', versionsuffix), + ('FIAT', '1.0.0', versionsuffix), + ('METIS', '5.0.2'), + ('ParMETIS', '4.0.2'), + ('ScientificPython', '2.8', versionsuffix), + ('SCOTCH', '5.1.12b_esmumps'), + ('SuiteSparse', '3.7.0', '-withparmetis'), # for CHOLMOD, UMFPACK + ('Hypre', '2.8.0b'), +] + +moduleclass = 'numlib' diff --git a/p/PETSc/PETSc-3.3-p2-ictce-5.3.0-Python-2.7.3.eb b/p/PETSc/PETSc-3.3-p2-ictce-5.3.0-Python-2.7.3.eb new file mode 100644 index 00000000..193d1133 --- /dev/null +++ b/p/PETSc/PETSc-3.3-p2-ictce-5.3.0-Python-2.7.3.eb @@ -0,0 +1,29 @@ +name = "PETSc" +version = "3.3-p2" +versionsuffix = '-Python-2.7.3' + +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': 'ictce', 'version': '5.3.0'} +toolchainopts = {'usempi': True, 'pic': True} + +source_urls = ['http://ftp.mcs.anl.gov/pub/petsc/release-snapshots'] +sources = [SOURCELOWER_TAR_GZ] + +dependencies = [ + ('Boost', '1.49.0', versionsuffix), + ('FIAT', '1.0.0', versionsuffix), + ('METIS', '5.0.2'), + ('ParMETIS', '4.0.2'), + ('ScientificPython', '2.8', versionsuffix), + ('SCOTCH', '5.1.12b_esmumps'), + ('SuiteSparse', '3.7.0', '-withparmetis'), # for CHOLMOD, UMFPACK + ('Hypre', '2.8.0b'), +] + +patches = ['PETSc_ranlib-fix.patch'] + +moduleclass = 'numlib' diff --git a/p/PETSc/PETSc-3.5.1-intel-2014b-Python-2.7.8.eb b/p/PETSc/PETSc-3.5.1-intel-2014b-Python-2.7.8.eb new file mode 100644 index 00000000..72b0ef23 --- /dev/null +++ b/p/PETSc/PETSc-3.5.1-intel-2014b-Python-2.7.8.eb @@ -0,0 +1,35 @@ +name = "PETSc" +version = "3.5.1" +versionsuffix = '-Python-2.7.8' + +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': '2014b'} +toolchainopts = {'usempi': True, 'pic': True} + +source_urls = ['http://ftp.mcs.anl.gov/pub/petsc/release-snapshots'] +sources = [SOURCELOWER_TAR_GZ] + +patches = [ + 'PETSc_ranlib-fix.patch', + 'PETSc-%(version)s-zlibfix.patch', +] + +parmetis = 'ParMETIS' +parmetis_ver = '4.0.3' +dependencies = [ + ('Boost', '1.55.0', versionsuffix), + ('FIAT', '1.1', versionsuffix), + ('METIS', '5.1.0'), + (parmetis, parmetis_ver), + ('ScientificPython', '2.8.1', versionsuffix), + ('SCOTCH', '6.0.0_esmumps'), + ('SuiteSparse', '4.2.1', '-%s-%s' % (parmetis, parmetis_ver)), + ('Hypre', '2.9.0b'), +] + +builddependencies = [('CMake', '3.0.0')] + +moduleclass = 'numlib' diff --git a/p/PETSc/PETSc-3.5.3-intel-2015b-Python-2.7.9.eb b/p/PETSc/PETSc-3.5.3-intel-2015b-Python-2.7.9.eb new file mode 100644 index 00000000..bc72ecb8 --- /dev/null +++ b/p/PETSc/PETSc-3.5.3-intel-2015b-Python-2.7.9.eb @@ -0,0 +1,32 @@ +name = 'PETSc' +version = '3.5.3' +versionsuffix = '-Python-2.7.9' + +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': '2015b'} +toolchainopts = {'usempi': True, 'pic': True} + +source_urls = ['http://ftp.mcs.anl.gov/pub/petsc/release-snapshots'] +sources = [SOURCELOWER_TAR_GZ] + +patches = ['PETSc_ranlib-fix.patch'] + +parmetis = 'ParMETIS' +parmetis_ver = '4.0.3' +dependencies = [ + ('Boost', '1.58.0', versionsuffix), + ('FIAT', '1.6.0', versionsuffix), + ('METIS', '5.1.0'), + (parmetis, parmetis_ver), + ('ScientificPython', '2.9.4', versionsuffix), + ('SCOTCH', '6.0.3'), + ('SuiteSparse', '4.4.3', '-%s-%s' % (parmetis, parmetis_ver)), + ('Hypre', '2.10.0b'), +] + +builddependencies = [('CMake', '3.0.0')] + +moduleclass = 'numlib' diff --git a/p/PETSc/PETSc-3.6.1-intel-2015b-Python-2.7.9.eb b/p/PETSc/PETSc-3.6.1-intel-2015b-Python-2.7.9.eb new file mode 100644 index 00000000..2c30558d --- /dev/null +++ b/p/PETSc/PETSc-3.6.1-intel-2015b-Python-2.7.9.eb @@ -0,0 +1,39 @@ +name = 'PETSc' +version = '3.6.1' +versionsuffix = '-Python-2.7.9' + +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': '2015b'} +toolchainopts = {'usempi': True, 'pic': True} + +#configopts = "--with-scientificpython" + +source_urls = ['http://ftp.mcs.anl.gov/pub/petsc/release-snapshots'] +sources = [SOURCELOWER_TAR_GZ] + +patches = ['PETSc_ranlib-fix.patch'] + +parmetis = 'ParMETIS' +parmetis_ver = '4.0.3' +dependencies = [ + ('Boost', '1.58.0', versionsuffix), + ('FIAT', '1.6.0', versionsuffix), + ('METIS', '5.1.0'), + (parmetis, parmetis_ver), + ('ScientificPython', '2.9.4', versionsuffix), + ('SCOTCH', '6.0.3'), + ('SuiteSparse', '4.4.3', '-%s-%s' % (parmetis, parmetis_ver)), + ('Hypre', '2.10.0b'), +] + +sanity_check_paths = { + 'files': [''], + 'dirs': ['bin', 'include'] +} + +builddependencies = [('CMake', '3.0.0')] + +moduleclass = 'numlib' diff --git a/p/PETSc/PETSc-3.6.1-intel-2016.01-Python-2.7.9.eb b/p/PETSc/PETSc-3.6.1-intel-2016.01-Python-2.7.9.eb new file mode 100644 index 00000000..ba20b7b2 --- /dev/null +++ b/p/PETSc/PETSc-3.6.1-intel-2016.01-Python-2.7.9.eb @@ -0,0 +1,39 @@ +name = 'PETSc' +version = '3.6.1' +versionsuffix = '-Python-2.7.9' + +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': '2016.01'} +toolchainopts = {'usempi': True, 'pic': True} + +#configopts = "--with-scientificpython" + +source_urls = ['http://ftp.mcs.anl.gov/pub/petsc/release-snapshots'] +sources = [SOURCELOWER_TAR_GZ] + +patches = ['PETSc_ranlib-fix.patch'] + +parmetis = 'ParMETIS' +parmetis_ver = '4.0.3' +dependencies = [ + ('Boost', '1.58.0', versionsuffix), + ('FIAT', '1.6.0', versionsuffix), + ('METIS', '5.1.0'), + (parmetis, parmetis_ver), + ('ScientificPython', '2.9.4', versionsuffix), + ('SCOTCH', '6.0.3'), + ('SuiteSparse', '4.4.3', '-%s-%s' % (parmetis, parmetis_ver)), + ('Hypre', '2.10.0b'), +] + +sanity_check_paths = { + 'files': [], + 'dirs': ['bin', 'include'] +} + +builddependencies = [('CMake', '3.0.0')] + +moduleclass = 'numlib' diff --git a/p/PGDSpider/PGDSpider-2.1.0.3-Java-1.7.0_80.eb b/p/PGDSpider/PGDSpider-2.1.0.3-Java-1.7.0_80.eb new file mode 100644 index 00000000..89ae4df7 --- /dev/null +++ b/p/PGDSpider/PGDSpider-2.1.0.3-Java-1.7.0_80.eb @@ -0,0 +1,35 @@ +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# Author: Pablo Escobar Lopez +# sciCORE - University of Basel +# SIB Swiss Institute of Bioinformatics + +easyblock='Tarball' + +name = "PGDSpider" +version = "2.1.0.3" +versionsuffix = "-Java-%(javaver)s" + +homepage = 'http://cmpg.unibe.ch/software/PGDSpider/' +description = """An automated data conversion tool for connecting population genetics and genomics programs""" + +toolchain = {'name': 'dummy', 'version': ''} + +source_urls = ['http://cmpg.unibe.ch/software/PGDSpider/'] +sources = ['%(name)s_%(version)s.zip'] + +dependencies = [ + ('Java', '1.7.0_80', '', True), +] + +sanity_check_paths = { + 'files': ['PGDSpider2-cli.jar', 'PGDSpider2.jar'], + 'dirs': [], +} + +modloadmsg = """ +To execute GUI run: java -Xmx1024m -Xms512m -jar $EBROOTPGDSPIDER/PGDSpider2.jar +To execute CLI run: java -Xmx1024m -Xms512m -jar $EBROOTPGDSPIDER/PGDSpider2-cli.jar +Adjust memory according to your requirements +""" + +moduleclass = 'bio' diff --git a/p/PGI/PGI-15.10-GCC-4.9.3-2.25.eb b/p/PGI/PGI-15.10-GCC-4.9.3-2.25.eb new file mode 100644 index 00000000..49864adc --- /dev/null +++ b/p/PGI/PGI-15.10-GCC-4.9.3-2.25.eb @@ -0,0 +1,25 @@ +name = 'PGI' +version = '15.10' + +homepage = 'http://www.pgroup.com/' +description = "C, C++ and Fortran compilers from The Portland Group - PGI" + +toolchain = {'name': 'dummy', 'version': ''} + +sources = ['pgilinux-20%(version_major)s-%(version_major)s%(version_minor)s-x86_64.tar.gz'] +checksums = ['cae307f7ad467a1811a5d5da758048ab'] + +gccver = '4.9.3' +binutilsver = '2.25' +versionsuffix = '-GCC-%s-%s' % (gccver, binutilsver) + +dependencies = [ + ('GCCcore', gccver), + ('binutils', binutilsver, '', ('GCCcore', gccver)), +] + +# license file +import os +license_file = os.path.join(os.getenv('HOME'), "licenses", "pgi", "license.dat") + +moduleclass = 'compiler' diff --git a/p/PGI/PGI-15.7-GNU-4.9.2-2.25.eb b/p/PGI/PGI-15.7-GNU-4.9.2-2.25.eb new file mode 100644 index 00000000..d3260f31 --- /dev/null +++ b/p/PGI/PGI-15.7-GNU-4.9.2-2.25.eb @@ -0,0 +1,21 @@ +name = 'PGI' +version = '15.7' + +homepage = 'http://www.pgroup.com/' +description = "C, C++ and Fortran compilers from The Portland Group - PGI" + +toolchain = {'name': 'dummy', 'version': ''} + +sources = ['pgilinux-20%(version_major)s-%(version_major)s%(version_minor)s-x86_64.tar.gz'] + +gnu = 'GNU' +gnuver = '4.9.2-2.25' +versionsuffix = '-%s-%s' % (gnu, gnuver) + +dependencies = [(gnu, gnuver)] + +# license file +import os +license_file = os.path.join(os.getenv('HOME'), "licenses", "pgi", "license.dat") + +moduleclass = 'compiler' diff --git a/p/PGI/PGI-15.7-GNU-4.9.3-2.25.eb b/p/PGI/PGI-15.7-GNU-4.9.3-2.25.eb new file mode 100644 index 00000000..6589eba9 --- /dev/null +++ b/p/PGI/PGI-15.7-GNU-4.9.3-2.25.eb @@ -0,0 +1,21 @@ +name = 'PGI' +version = '15.7' + +homepage = 'http://www.pgroup.com/' +description = "C, C++ and Fortran compilers from The Portland Group - PGI" + +toolchain = {'name': 'dummy', 'version': ''} + +sources = ['pgilinux-20%(version_major)s-%(version_major)s%(version_minor)s-x86_64.tar.gz'] + +gnu = 'GNU' +gnuver = '4.9.3-2.25' +versionsuffix = '-%s-%s' % (gnu, gnuver) + +dependencies = [(gnu, gnuver)] + +# license file +import os +license_file = os.path.join(os.getenv('HOME'), "licenses", "pgi", "license.dat") + +moduleclass = 'compiler' diff --git a/p/PGI/PGI-16.10-GNU-4.9.3-2.25.eb b/p/PGI/PGI-16.10-GNU-4.9.3-2.25.eb new file mode 100644 index 00000000..c6e64ccf --- /dev/null +++ b/p/PGI/PGI-16.10-GNU-4.9.3-2.25.eb @@ -0,0 +1,22 @@ +name = 'PGI' +version = '16.10' + +homepage = 'http://www.pgroup.com/' +description = "C, C++ and Fortran compilers from The Portland Group - PGI" + +toolchain = {'name': 'dummy', 'version': ''} + +sources = ['pgicdk-Release20%(version_major)s-%(version_major)s%(version_minor)s.tar.gz'] + +gnu = 'GNU' +gnuver = '4.9.3-2.25' +versionsuffix = '-%s-%s' % (gnu, gnuver) + +dependencies = [(gnu, gnuver)] + +# license file +#import os +#license_file = os.path.join(os.getenv('HOME'), "licenses", "pgi", "license.dat") +license_file = HOME + '/licenses/pgi/license.dat' + +moduleclass = 'compiler' diff --git a/p/PHYLIP/PHYLIP-3.696-foss-2016a.eb b/p/PHYLIP/PHYLIP-3.696-foss-2016a.eb new file mode 100644 index 00000000..90aea78d --- /dev/null +++ b/p/PHYLIP/PHYLIP-3.696-foss-2016a.eb @@ -0,0 +1,23 @@ +easyblock = 'MakeCp' + +name = 'PHYLIP' +version = '3.696' + +homepage = 'http://evolution.genetics.washington.edu/phylip' +description = "PHYLIP is a free package of programs for inferring phylogenies." + +toolchain = {'name': 'foss', 'version': '2016a'} + +source_urls = ['http://evolution.gs.washington.edu/phylip/download/'] +sources = [SOURCELOWER_TAR_GZ] + +buildopts = '-Csrc -fMakefile.unx all && make -Csrc -fMakefile.unx install' + +files_to_copy = [(['exe/*'], 'bin'), (['src/libdrawgram.so', 'src/libdrawtree.so'], 'lib')] + +sanity_check_paths = { + 'files': ['lib/libdrawgram.so', 'lib/libdrawtree.so'], + 'dirs': ['bin'], +} + +moduleclass = 'bio' diff --git a/p/PHYLIP/PHYLIP-3.696-intel-2016a.eb b/p/PHYLIP/PHYLIP-3.696-intel-2016a.eb new file mode 100644 index 00000000..312062d0 --- /dev/null +++ b/p/PHYLIP/PHYLIP-3.696-intel-2016a.eb @@ -0,0 +1,23 @@ +easyblock = 'MakeCp' + +name = 'PHYLIP' +version = '3.696' + +homepage = 'http://evolution.genetics.washington.edu/phylip' +description = "PHYLIP is a free package of programs for inferring phylogenies." + +toolchain = {'name': 'intel', 'version': '2016a'} + +source_urls = ['http://evolution.gs.washington.edu/phylip/download/'] +sources = [SOURCELOWER_TAR_GZ] + +buildopts = '-Csrc -fMakefile.unx all && make -Csrc -fMakefile.unx install' + +files_to_copy = [(['exe/*'], 'bin'), (['src/libdrawgram.so', 'src/libdrawtree.so'], 'lib')] + +sanity_check_paths = { + 'files': ['lib/libdrawgram.so', 'lib/libdrawtree.so'], + 'dirs': ['bin'], +} + +moduleclass = 'bio' diff --git a/p/PLAST/PLAST-2.3.1-foss-2016a-Java-1.8.0_92.eb b/p/PLAST/PLAST-2.3.1-foss-2016a-Java-1.8.0_92.eb new file mode 100644 index 00000000..bb22d3db --- /dev/null +++ b/p/PLAST/PLAST-2.3.1-foss-2016a-Java-1.8.0_92.eb @@ -0,0 +1,29 @@ +easyblock = 'CMakeMake' + +name = 'PLAST' +version = '2.3.1' +versionsuffix = '-Java-%(javaver)s' + +homepage = "http://www.irisa.fr/symbiose/projects/plast/" +description = """PLAST is a parallel alignment search tool for comparing large protein banks""" + +toolchain = {'name': 'foss', 'version': '2016a'} + +source_urls = ['https://github.com/PLAST-software/plast-library/releases/download/v%(version)s/'] +sources=['%(namelower)s_source_v%(version)s.tar.gz'] + +builddependencies = [ + ('CMake', '3.5.2'), + ('Perl', '5.22.1') +] + +dependencies = [ + ('Java', '1.8.0_92', '', True), +] + +sanity_check_paths = { + 'files': [], + 'dirs': ['include', 'include/algo', 'include/alignment', 'include/misc'], +} + +moduleclass = 'bio' \ No newline at end of file diff --git a/p/PLUMED/PLUMED-2.1.3-foss-2015b.eb b/p/PLUMED/PLUMED-2.1.3-foss-2015b.eb new file mode 100644 index 00000000..fe12fe8a --- /dev/null +++ b/p/PLUMED/PLUMED-2.1.3-foss-2015b.eb @@ -0,0 +1,35 @@ +easyblock = 'ConfigureMake' + +name = 'PLUMED' +version = '2.1.3' + +homepage = 'http://www.plumed-code.org' +description = """PLUMED is an open source library for free energy calculations + in molecular systems which works together with some of the most popular molecular + dynamics engines. Free energy calculations can be performed as a function of many + order parameters with a particular focus on biological problems, using state of + the art methods such as metadynamics, umbrella sampling and Jarzynski-equation + based steered MD. The software, written in C++, can be easily interfaced with + both fortran and C/C++ codes. + """ + +toolchain = {'name': 'foss', 'version': '2015b'} + +source_urls = ['https://drive.google.com/file/d/0Bz_0by6-gq6BQWx5UEpkVURKNkk/view?usp=drive_web'] +sources = [SOURCELOWER_TGZ] + +patches = ['PLUMED_configure_MPI.patch'] + +configopts = '--enable-mpi' + +dependencies = [ + ('almost', '2.1.0'), + ('libmatheval', '1.1.8') +] + +sanity_check_paths = { + 'files': ['bin/plumed'], + 'dirs': [] +} + +moduleclass = 'bio' diff --git a/p/PLUMED/PLUMED-2.1.3-foss-2015g.eb b/p/PLUMED/PLUMED-2.1.3-foss-2015g.eb new file mode 100644 index 00000000..0444bf61 --- /dev/null +++ b/p/PLUMED/PLUMED-2.1.3-foss-2015g.eb @@ -0,0 +1,43 @@ +easyblock = 'ConfigureMake' + +name = 'PLUMED' +version = '2.1.3' + +homepage = 'http://www.plumed-code.org' +description = """PLUMED is an open source library for free energy calculations + in molecular systems which works together with some of the most popular molecular + dynamics engines. Free energy calculations can be performed as a function of many + order parameters with a particular focus on biological problems, using state of + the art methods such as metadynamics, umbrella sampling and Jarzynski-equation + based steered MD. The software, written in C++, can be easily interfaced with + both fortran and C/C++ codes. + """ + +toolchain = {'name': 'foss', 'version': '2015g'} + +source_urls = ['https://drive.google.com/file/d/0Bz_0by6-gq6BQWx5UEpkVURKNkk/view?usp=drive_web'] +sources = [SOURCELOWER_TGZ] + +#patches = ['PLUMED_configure_MPI.patch'] + +preconfigopts = "export CXX=mpic++ && " + +configopts = 'CPPFLAGS="-I$EBROOTALMOST/include/almost -I$EBROOTOPENMPI/include" ' +configopts += 'LDFLAGS="-L$EBROOTALMOST/lib -L$EBROOTSCALAPACK/lib -L$EBROOTOPENMPI/lib -L$EBROOTOPENBLAS/lib -ldl -lscalapack -lopenblas -lmpi -lrt" ' +configopts += '--enable-mpi --enable-almost ' + +dependencies = [ + ('almost', '2.1.0'), + ('libmatheval', '1.1.8') +] + +sanity_check_paths = { + 'files': ['bin/plumed'], + 'dirs': [] +} + +skipsteps = ['test'] + +parallel = 1 + +moduleclass = 'bio' diff --git a/p/PLUMED/PLUMED-2.1.3-intel-2015b.eb b/p/PLUMED/PLUMED-2.1.3-intel-2015b.eb new file mode 100644 index 00000000..964864fd --- /dev/null +++ b/p/PLUMED/PLUMED-2.1.3-intel-2015b.eb @@ -0,0 +1,42 @@ +easyblock = 'ConfigureMake' + +name = 'PLUMED' +version = '2.1.3' + +homepage = 'http://www.plumed-code.org' +description = """PLUMED is an open source library for free energy calculations + in molecular systems which works together with some of the most popular molecular + dynamics engines. Free energy calculations can be performed as a function of many + order parameters with a particular focus on biological problems, using state of + the art methods such as metadynamics, umbrella sampling and Jarzynski-equation + based steered MD. The software, written in C++, can be easily interfaced with + both fortran and C/C++ codes. + """ + +toolchain = {'name': 'intel', 'version': '2015b'} + +source_urls = ['https://drive.google.com/file/d/0Bz_0by6-gq6BQWx5UEpkVURKNkk/view?usp=drive_web'] +sources = [SOURCELOWER_TGZ] + +patches = ['PLUMED_configure_MPI.patch'] + +configopts = 'CPPFLAGS="-mkl" LIBS="-mkl" ' +configopts += 'CXXFLAGS=-DMPICH_IGNORE_CXX_SEEK ' +configopts += '--enable-mpi' + +builddependencies = [ + ('almost', '2.1.0'), + ('libmatheval', '1.1.8') +] + +dependencies = [ + ('almost', '2.1.0'), + ('libmatheval', '1.1.8') +] + +sanity_check_paths = { + 'files': ['bin/plumed'], + 'dirs': [] +} + +moduleclass = 'bio' diff --git a/p/PLUMED/PLUMED-2.3.0-foss-2016a.eb b/p/PLUMED/PLUMED-2.3.0-foss-2016a.eb new file mode 100644 index 00000000..83a0cb1d --- /dev/null +++ b/p/PLUMED/PLUMED-2.3.0-foss-2016a.eb @@ -0,0 +1,42 @@ +# by Ward Poelmans + +easyblock = 'ConfigureMake' + +name = 'PLUMED' +version = '2.3.0' + +homepage = 'http://www.plumed-code.org' +description = """PLUMED is an open source library for free energy calculations in molecular systems which + works together with some of the most popular molecular dynamics engines. Free energy calculations can be + performed as a function of many order parameters with a particular focus on biological problems, using + state of the art methods such as metadynamics, umbrella sampling and Jarzynski-equation based steered MD. + The software, written in C++, can be easily interfaced with both fortran and C/C++ codes. +""" + +toolchain = {'name': 'foss', 'version': '2016a'} +toolchainopts = {'usempi': 'True'} + +source_urls = ['https://github.com/plumed/plumed2/archive/'] +sources = ['v%(version)s.tar.gz'] + +dependencies = [ + ('zlib', '1.2.8'), + ('GSL', '2.1'), + ('libmatheval', '1.1.8', '', ('dummy', '')), +] + +preconfigopts = 'env FC=$MPIF90 LIBS="$LIBLAPACK $LIBS" ' +configopts = ' --exec-prefix=%(installdir)s --enable-gsl' +prebuildopts = 'source sourceme.sh && ' + +sanity_check_paths = { + 'files': ['bin/plumed', 'lib/libplumedKernel.%s' % SHLIB_EXT, 'lib/libplumed.%s' % SHLIB_EXT], + 'dirs': ['lib/plumed'] +} + +modextrapaths = { + 'PLUMED_KERNEL': 'lib/libplumedKernel.%s' % SHLIB_EXT, + 'PLUMED_ROOT': 'lib/plumed', +} + +moduleclass = 'chem' diff --git a/p/PLUMED/PLUMED-2.3.0-foss-2017a.eb b/p/PLUMED/PLUMED-2.3.0-foss-2017a.eb new file mode 100644 index 00000000..0b88ba34 --- /dev/null +++ b/p/PLUMED/PLUMED-2.3.0-foss-2017a.eb @@ -0,0 +1,42 @@ +# by Ward Poelmans + +easyblock = 'ConfigureMake' + +name = 'PLUMED' +version = '2.3.0' + +homepage = 'http://www.plumed-code.org' +description = """PLUMED is an open source library for free energy calculations in molecular systems which + works together with some of the most popular molecular dynamics engines. Free energy calculations can be + performed as a function of many order parameters with a particular focus on biological problems, using + state of the art methods such as metadynamics, umbrella sampling and Jarzynski-equation based steered MD. + The software, written in C++, can be easily interfaced with both fortran and C/C++ codes. +""" + +toolchain = {'name': 'foss', 'version': '2017a'} +toolchainopts = {'usempi': 'True'} + +source_urls = ['https://github.com/plumed/plumed2/archive/'] +sources = ['v%(version)s.tar.gz'] + +dependencies = [ + ('zlib', '1.2.11'), + ('GSL', '2.3'), + ('libmatheval', '1.1.11'), +] + +preconfigopts = 'env FC=$MPIF90 LIBS="$LIBLAPACK $LIBS" ' +configopts = ' --exec-prefix=%(installdir)s --enable-gsl' +prebuildopts = 'source sourceme.sh && ' + +sanity_check_paths = { + 'files': ['bin/plumed', 'lib/libplumedKernel.%s' % SHLIB_EXT, 'lib/libplumed.%s' % SHLIB_EXT], + 'dirs': ['lib/plumed'] +} + +modextrapaths = { + 'PLUMED_KERNEL': 'lib/libplumedKernel.%s' % SHLIB_EXT, + 'PLUMED_ROOT': 'lib/plumed', +} + +moduleclass = 'chem' diff --git a/p/PLUMED/PLUMED-2.3b-foss-2015g.eb b/p/PLUMED/PLUMED-2.3b-foss-2015g.eb new file mode 100644 index 00000000..110b01a3 --- /dev/null +++ b/p/PLUMED/PLUMED-2.3b-foss-2015g.eb @@ -0,0 +1,44 @@ +easyblock = 'ConfigureMake' + +name = 'PLUMED' +version = '2.3b' + +homepage = 'http://www.plumed-code.org' +description = """PLUMED is an open source library for free energy calculations + in molecular systems which works together with some of the most popular molecular + dynamics engines. Free energy calculations can be performed as a function of many + order parameters with a particular focus on biological problems, using state of + the art methods such as metadynamics, umbrella sampling and Jarzynski-equation + based steered MD. The software, written in C++, can be easily interfaced with + both fortran and C/C++ codes. + """ + +toolchain = {'name': 'foss', 'version': '2015g'} + +source_urls = ['https://github.com/plumed/plumed2/archive/'] +sources = ['v%(version)s.tar.gz'] + +#patches = ['PLUMED_configure_MPI.patch'] + +preconfigopts = "export CXX=mpic++ && " + +configopts = 'CPPFLAGS="-I$EBROOTALMOST/include/almost -I$EBROOTOPENMPI/include" ' +configopts += 'LDFLAGS="-L$EBROOTALMOST/lib -L$EBROOTSCALAPACK/lib -L$EBROOTOPENMPI/lib -L$EBROOTOPENBLAS/lib -ldl -lscalapack -lopenblas -lmpi -lrt" ' +configopts += '--enable-mpi --enable-almost ' + +dependencies = [ + ('almost', '2.1.0'), + ('libmatheval', '1.1.8'), + ('xdrfile', '1.1.4') +] + +sanity_check_paths = { + 'files': ['bin/plumed'], + 'dirs': [] +} + +skipsteps = ['test'] + +parallel = 1 + +moduleclass = 'bio' diff --git a/p/PLUMED/PLUMED-2.3b-foss-2016a.eb b/p/PLUMED/PLUMED-2.3b-foss-2016a.eb new file mode 100644 index 00000000..e23a30d6 --- /dev/null +++ b/p/PLUMED/PLUMED-2.3b-foss-2016a.eb @@ -0,0 +1,44 @@ +easyblock = 'ConfigureMake' + +name = 'PLUMED' +version = '2.3b' + +homepage = 'http://www.plumed-code.org' +description = """PLUMED is an open source library for free energy calculations + in molecular systems which works together with some of the most popular molecular + dynamics engines. Free energy calculations can be performed as a function of many + order parameters with a particular focus on biological problems, using state of + the art methods such as metadynamics, umbrella sampling and Jarzynski-equation + based steered MD. The software, written in C++, can be easily interfaced with + both fortran and C/C++ codes. + """ + +toolchain = {'name': 'foss', 'version': '2016a'} + +source_urls = ['https://github.com/plumed/plumed2/archive/'] +sources = ['v%(version)s.tar.gz'] + +#patches = ['PLUMED_configure_MPI.patch'] + +preconfigopts = "export CXX=mpic++ && " + +configopts = 'CPPFLAGS="-I$EBROOTALMOST/include/almost -I$EBROOTOPENMPI/include" ' +configopts += 'LDFLAGS="-L$EBROOTALMOST/lib -L$EBROOTSCALAPACK/lib -L$EBROOTOPENMPI/lib -L$EBROOTOPENBLAS/lib -ldl -lscalapack -lopenblas -lmpi -lrt" ' +configopts += '--enable-mpi --enable-almost ' + +dependencies = [ + ('almost', '2.1.0'), + ('libmatheval', '1.1.8'), + ('xdrfile', '1.1.4') +] + +sanity_check_paths = { + 'files': ['bin/plumed'], + 'dirs': [] +} + +skipsteps = ['test'] + +parallel = 1 + +moduleclass = 'bio' diff --git a/p/PLUMED/PLUMED-2.3b-intel-2015b.eb b/p/PLUMED/PLUMED-2.3b-intel-2015b.eb new file mode 100644 index 00000000..f6073a74 --- /dev/null +++ b/p/PLUMED/PLUMED-2.3b-intel-2015b.eb @@ -0,0 +1,44 @@ +easyblock = 'ConfigureMake' + +name = 'PLUMED' +version = '2.3b' + +homepage = 'http://www.plumed-code.org' +description = """PLUMED is an open source library for free energy calculations + in molecular systems which works together with some of the most popular molecular + dynamics engines. Free energy calculations can be performed as a function of many + order parameters with a particular focus on biological problems, using state of + the art methods such as metadynamics, umbrella sampling and Jarzynski-equation + based steered MD. The software, written in C++, can be easily interfaced with + both fortran and C/C++ codes. + """ + +toolchain = {'name': 'intel', 'version': '2015b'} + +source_urls = ['https://github.com/plumed/plumed2/archive/'] +sources = ['v%(version)s.tar.gz'] + +#patches = ['PLUMED_configure_MPI.patch'] + +preconfigopts = "export CXX=mpic++ && " + +configopts = 'CPPFLAGS="-I$EBROOTALMOST/include/almost -I$EBROOTOPENMPI/include" ' +configopts += 'LDFLAGS="-L$EBROOTALMOST/lib -L$EBROOTSCALAPACK/lib -L$EBROOTOPENMPI/lib -L$EBROOTOPENBLAS/lib -ldl -lscalapack -lopenblas -lmpi -lrt" ' +configopts += '--enable-mpi --enable-almost ' + +dependencies = [ + ('almost', '2.1.0'), + ('libmatheval', '1.1.8'), + ('xdrfile', '1.1.4') +] + +sanity_check_paths = { + 'files': ['bin/plumed'], + 'dirs': [] +} + +skipsteps = ['test'] + +parallel = 1 + +moduleclass = 'bio' diff --git a/p/PLUMED/PLUMED_configure_MPI.patch b/p/PLUMED/PLUMED_configure_MPI.patch new file mode 100644 index 00000000..3aa3db9c --- /dev/null +++ b/p/PLUMED/PLUMED_configure_MPI.patch @@ -0,0 +1,13 @@ +diff --git a/configure b/configure +index 9b82b90..9541f7a 100755 +--- a/configure ++++ b/configure +@@ -1915,7 +1915,7 @@ _ACEOF + if ac_fn_cxx_try_link "$LINENO"; then : + eval "$3=yes" + else +- eval "$3=no" ++ eval "$3=yes" + fi + rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext diff --git a/p/PRACE/PRACE-20150630-intel-2015b.eb b/p/PRACE/PRACE-20150630-intel-2015b.eb new file mode 100644 index 00000000..f4587895 --- /dev/null +++ b/p/PRACE/PRACE-20150630-intel-2015b.eb @@ -0,0 +1,24 @@ +easyblock = 'Bundle' + +name = 'PRACE' +version = '20150630' + +homepage = 'http://www.prace-ri.eu/PRACE-Common-Production' +description = """The PRACE Common Production Environment (PCPE) is a set of software tools and libraries + that are planned to be available on all PRACE execution sites. The PCPE also defines a set of environment + variables that try to make compilation on all sites as homogeneous and simple as possible.""" + +toolchain = {'name': 'intel', 'version': '2015b'} + +dependencies = [ + ('make', '3.82'), + ('Java', '1.7.0_79', '', True), + ('Bash', '4.2'), + ('tcsh', '6.18.01'), + ('Tcl', '8.5.12'), + ('Tk', '8.5.12'), + ('netCDF', '4.3.2'), # this one will also bring in HDF5 + ('Perl', '5.16.3'), +] + +moduleclass = 'toolchain' diff --git a/p/PRACE/prace-20160107-intel-2016.01.eb b/p/PRACE/prace-20160107-intel-2016.01.eb new file mode 100644 index 00000000..88793458 --- /dev/null +++ b/p/PRACE/prace-20160107-intel-2016.01.eb @@ -0,0 +1,61 @@ +easyblock = 'Bundle' + +name = 'prace' +version = '20160107' + +homepage = 'http://www.prace-ri.eu/PRACE-Common-Production' +description = """**** PRACE Common Production Environment (PCPE) ****\n +Initialisation of the PRACE common production environment. This +allows you to assume that the following tools/libraries are available +by default in your PATH/environment. + + * Fortran, C, C++ Compilers + * MPI + * BLAS, LAPACK, BLACS, ScaLAPACK + * FFTW + * HDF5, NetCDF + +The compiler commands on are: + + * mpif90 - Fortran compiler + * mpicc - C compiler + * mpicxx - C++ compiler + +For more information on the PCPE please see the documentation at: + +http://www.prace-ri.eu/PRACE-Common-Production + +For help using this system, please see Local User Guide available at: + +http://prace-ri.eu/Best-Practice-Guide-Anselm-HTML +""" + +toolchain = {'name': 'intel', 'version': '2016.01'} + +dependencies = [ + ('Java', '1.7.0_79', '', True), + ('netCDF', '4.3.2'), # this one will also bring in HDF5 + ('FFTW', '3.3.4'), + ('CMake', '3.3.1'), + ('PETSc', '3.6.1', '-Python-2.7.9'), +] + +modextravars = { + 'PRACE_FFLAGS' : '-ipo -O3 -xAVX -xCORE-AVX2 -qopt-report1 -qopt-report-phase=vec -openmp', + 'PRACE_CFLAGS' : '-ipo -O3 -xAVX -xCORE-AVX2 -qopt-report1 -qopt-report-phase=vec -openmp', + 'PRACE_LDFLAGS' : '-L$env(LD_LIBRARY_PATH)', + 'PRACE_STORE' : '/home/$env(USER)', + 'PRACE_SCRATCH' : '/scratch/work/user/$env(USER)', + 'PRACE_ARCH' : 'Linux_Generic_X86-64_AVX2', + 'PRACE_COMPILER' : 'ICC_16.0.1', + 'PRACE_FTN_VERSION' : 'ifort version 16.0.1', + 'PRACE_CC_VERSION' : 'icc version 16.0.1 (gcc version 4.9.3 compatibility)', + 'PRACE_CPP_VERSION' : 'icc version 16.0.1 (gcc version 4.9.3 compatibility)', +} + +modaliases = {'prftn': "mpifc", + 'prcc': "mpicc", + 'prcpp': "mpicxx" +} + +moduleclass = 'toolchain' diff --git a/p/PRINSEQ/PRINSEQ-0.20.4-foss-2015b-Perl-5.20.3.eb b/p/PRINSEQ/PRINSEQ-0.20.4-foss-2015b-Perl-5.20.3.eb new file mode 100644 index 00000000..1d36878e --- /dev/null +++ b/p/PRINSEQ/PRINSEQ-0.20.4-foss-2015b-Perl-5.20.3.eb @@ -0,0 +1,118 @@ +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# Author: Pablo Escobar Lopez +# sciCORE - University of Basel +# SIB Swiss Institute of Bioinformatics +# Modified by Adam Huffman +# The Francis Crick Institute + +easyblock = 'Tarball' + +name = 'PRINSEQ' +version = '0.20.4' + +homepage = 'http://prinseq.sourceforge.net' +description = """A bioinformatics tool to PRe-process and show INformation of SEQuence data.""" + +toolchain = {'name': 'foss', 'version': '2015b'} + +source_urls = ['http://sourceforge.net/projects/prinseq/files/standalone/'] +sources = ['%(namelower)s-lite-%(version)s.tar.gz'] + +perl = 'Perl' +perlver = '5.20.3' +versionsuffix = '-%s-%s' % (perl, perlver) + +dependencies = [ + (perl, perlver), +] + +# these are the perl libraries dependencies +exts_defaultclass = 'PerlModule' +exts_filter = ("perldoc -lm %(ext_name)s ", "") + +exts_list = [ + ('ExtUtils::Depends', '0.405', { + 'source_tmpl': 'ExtUtils-Depends-0.405.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/X/XA/XAOC/'], + }), + ('ExtUtils::PkgConfig', '1.15', { + 'source_tmpl': 'ExtUtils-PkgConfig-1.15.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/X/XA/XAOC/'], + }), + ('Getopt::Long', '2.48', { + 'source_tmpl': 'Getopt-Long-2.48.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/J/JV/JV/'], + }), + ('Pod::Usage', '1.68', { + 'source_tmpl': 'Pod-Usage-1.68.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/M/MA/MAREKR/'], + }), + ('File::Temp', '0.2304', { + 'source_tmpl': 'File-Temp-0.2304.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DA/DAGOLDEN/'], + }), + ('Digest::MD5', '2.54', { + 'source_tmpl': 'Digest-MD5-2.54.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/G/GA/GAAS/'], + }), + ('File::Spec', '3.62', { + 'source_tmpl': 'PathTools-3.62.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS/'], + }), + ('JSON', '2.90', { + 'source_tmpl': 'JSON-2.90.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/M/MA/MAKAMAKA/'], + }), + ('Cairo', '1.106', { + 'source_tmpl': 'Cairo-1.106.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/X/XA/XAOC/'], + }), + ('Statistics::PCA', '0.0.1', { + 'source_tmpl': 'Statistics-PCA-0.0.1.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DS/DSTH/'], + }), + ('MIME::Base64', '3.15', { + 'source_tmpl': 'MIME-Base64-3.15.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/G/GA/GAAS/'], + }), + ('Math::Cephes::Matrix', '0.5304', { + 'source_tmpl': 'Math-Cephes-0.5304.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/S/SH/SHLOMIF/'], + }), + ('Math::MatrixReal', '2.12', { + 'source_tmpl': 'Math-MatrixReal-2.12.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/L/LE/LETO/'], + }), + ('Text::SimpleTable', '2.03', { + 'source_tmpl': 'Text-SimpleTable-2.03.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/M/MR/MRAMBERG/'], + }), + ('Contextual::Return', '0.004008', { + 'source_tmpl': 'Contextual-Return-0.004008.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DC/DCONWAY/'], + }), + ('Want', '0.26', { + 'source_tmpl': 'Want-0.26.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RO/ROBIN/'], + }), +] + +# this is the script which relies in many extra Perl libraries so we verify it's working fine +sanity_check_commands = [('perl', '%(installdir)s/prinseq-graphs.pl')] + +modextrapaths = { + 'PATH': "", # add installation dir to PATH + 'PERL5LIB': 'lib/perl5/site_perl/%s/' % (perlver) +} + +postinstallcmds = [ + "sed -i -e 's|/usr/bin/perl|/usr/bin/env\ perl|' %(installdir)s/*.pl", # fix shebang line + "chmod +x %(installdir)s/*.pl" # add execution permission +] + +sanity_check_paths = { + 'files': ['prinseq-lite.pl', 'prinseq-graphs.pl', 'prinseq-graphs-noPCA.pl'], + 'dirs': [] +} + +moduleclass = 'bio' diff --git a/p/PRINSEQ/PRINSEQ-0.20.4-goolf-1.4.10-Perl-5.16.3.eb b/p/PRINSEQ/PRINSEQ-0.20.4-goolf-1.4.10-Perl-5.16.3.eb new file mode 100644 index 00000000..fc034165 --- /dev/null +++ b/p/PRINSEQ/PRINSEQ-0.20.4-goolf-1.4.10-Perl-5.16.3.eb @@ -0,0 +1,116 @@ +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# Author: Pablo Escobar Lopez +# sciCORE - University of Basel +# SIB Swiss Institute of Bioinformatics + +easyblock = 'Tarball' + +name = 'PRINSEQ' +version = '0.20.4' + +homepage = 'http://prinseq.sourceforge.net' +description = """A bioinformatics tool to PRe-process and show INformation of SEQuence data.""" + +toolchain = {'name': 'goolf', 'version': '1.4.10'} + +source_urls = ['http://sourceforge.net/projects/prinseq/files/standalone/'] +sources = ['%(namelower)s-lite-%(version)s.tar.gz'] + +perl = 'Perl' +perlver = '5.16.3' +versionsuffix = '-%s-%s' % (perl, perlver) + +dependencies = [ + (perl, perlver), +] + +# these are the perl libraries dependencies +exts_defaultclass = 'PerlModule' +exts_filter = ("perldoc -lm %(ext_name)s ", "") + +exts_list = [ + ('ExtUtils::Depends', '0.405', { + 'source_tmpl': 'ExtUtils-Depends-0.405.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/X/XA/XAOC/'], + }), + ('ExtUtils::PkgConfig', '1.15', { + 'source_tmpl': 'ExtUtils-PkgConfig-1.15.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/X/XA/XAOC/'], + }), + ('Getopt::Long', '2.48', { + 'source_tmpl': 'Getopt-Long-2.48.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/J/JV/JV/'], + }), + ('Pod::Usage', '1.68', { + 'source_tmpl': 'Pod-Usage-1.68.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/M/MA/MAREKR/'], + }), + ('File::Temp', '0.2304', { + 'source_tmpl': 'File-Temp-0.2304.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DA/DAGOLDEN/'], + }), + ('Digest::MD5', '2.54', { + 'source_tmpl': 'Digest-MD5-2.54.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/G/GA/GAAS/'], + }), + ('File::Spec', '3.62', { + 'source_tmpl': 'PathTools-3.62.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS/'], + }), + ('JSON', '2.90', { + 'source_tmpl': 'JSON-2.90.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/M/MA/MAKAMAKA/'], + }), + ('Cairo', '1.106', { + 'source_tmpl': 'Cairo-1.106.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/X/XA/XAOC/'], + }), + ('Statistics::PCA', '0.0.1', { + 'source_tmpl': 'Statistics-PCA-0.0.1.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DS/DSTH/'], + }), + ('MIME::Base64', '3.15', { + 'source_tmpl': 'MIME-Base64-3.15.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/G/GA/GAAS/'], + }), + ('Math::Cephes::Matrix', '0.5304', { + 'source_tmpl': 'Math-Cephes-0.5304.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/S/SH/SHLOMIF/'], + }), + ('Math::MatrixReal', '2.12', { + 'source_tmpl': 'Math-MatrixReal-2.12.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/L/LE/LETO/'], + }), + ('Text::SimpleTable', '2.03', { + 'source_tmpl': 'Text-SimpleTable-2.03.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/M/MR/MRAMBERG/'], + }), + ('Contextual::Return', '0.004008', { + 'source_tmpl': 'Contextual-Return-0.004008.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DC/DCONWAY/'], + }), + ('Want', '0.26', { + 'source_tmpl': 'Want-0.26.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RO/ROBIN/'], + }), +] + +# this is the script which relies in many extra Perl libraries so we verify it's working fine +sanity_check_commands = [('perl', '%(installdir)s/prinseq-graphs.pl')] + +modextrapaths = { + 'PATH': "", # add installation dir to PATH + 'PERL5LIB': 'lib/perl5/site_perl/%s/' % (perlver) +} + +postinstallcmds = [ + "sed -i -e 's|/usr/bin/perl|/usr/bin/env\ perl|' %(installdir)s/*.pl", # fix shebang line + "chmod +x %(installdir)s/*.pl" # add execution permission +] + +sanity_check_paths = { + 'files': ['prinseq-lite.pl', 'prinseq-graphs.pl', 'prinseq-graphs-noPCA.pl'], + 'dirs': [] +} + +moduleclass = 'bio' diff --git a/p/PROJ/PROJ-4.9.2-intel-2017.00.eb b/p/PROJ/PROJ-4.9.2-intel-2017.00.eb new file mode 100644 index 00000000..98336fff --- /dev/null +++ b/p/PROJ/PROJ-4.9.2-intel-2017.00.eb @@ -0,0 +1,30 @@ +## +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# +# Copyright:: Copyright 2014-2015 The Cyprus Institute +# Authors:: Thekla Loizou +# License:: MIT/GPL +# +## +easyblock = 'ConfigureMake' + +name = 'PROJ' +version = '4.9.2' + +homepage = 'http://trac.osgeo.org/proj/' +description = """Program proj is a standard Unix filter function which converts +geographic longitude and latitude coordinates into cartesian coordinates""" + +toolchain = {'name': 'intel', 'version': '2017.00'} +toolchainopts = {'opt': True, 'pic': True, 'usempi': True} + +source_urls = ['http://download.osgeo.org/proj/'] +sources = [SOURCELOWER_TAR_GZ] + +sanity_check_paths = { + 'files': ['bin/cs2cs', 'bin/geod', 'bin/invgeod', 'bin/invproj', + 'bin/nad2bin', 'bin/proj'], + 'dirs': [], +} + +moduleclass = 'lib' diff --git a/p/PROJ_4/PROJ_4-4.9.2-foss-2015g.eb b/p/PROJ_4/PROJ_4-4.9.2-foss-2015g.eb new file mode 100644 index 00000000..aca4b158 --- /dev/null +++ b/p/PROJ_4/PROJ_4-4.9.2-foss-2015g.eb @@ -0,0 +1,15 @@ +name = 'PROJ_4' +version = '4.9.2' + +easyblock = 'ConfigureMake' + +homepage = 'http://proj.osgeo.org' +description = """PROJ.4 - Cartographic Projections Library originally written by Gerald Evenden then of the USGS. +""" + +toolchain = {'name': 'foss', 'version': '2015g'} + +sources = ['%(version)s.tar.gz'] +source_urls = ['https://github.com/OSGeo/proj.4/archive/'] + +moduleclass = 'geo' diff --git a/p/PSBLAS/PSBLAS-3.3.4-3-GCC-4.9.3-2.25.eb b/p/PSBLAS/PSBLAS-3.3.4-3-GCC-4.9.3-2.25.eb new file mode 100644 index 00000000..55c63648 --- /dev/null +++ b/p/PSBLAS/PSBLAS-3.3.4-3-GCC-4.9.3-2.25.eb @@ -0,0 +1,32 @@ +easyblock = 'ConfigureMake' + +name = 'PSBLAS' +version = '3.3.4-3' + +homepage = 'http://people.uniroma2.it/salvatore.filippone/psblas/' +description = """Most computationally intensive applications work on irregular +and sparse domains that complicate their implementation on parallel machines. +The major goal of the Parallel Sparse Basic Linear Algebra Subroutines +(PSBLAS) project is to provide a framework to enable easy, efficient and +portable implementations of iterative solvers for linear systems, while +shielding the user from most details of their parallelization. +The interface is designed keeping in view a Single Program Multiple Data +programming model on distributed memory machines. """ + +toolchain = {'name': 'GCC', 'version': '4.9.3-2.25'} +toolchainopts = {'pic': True} + +dependencies = [ + ('ATLAS', '3.10.1', '-LAPACK-3.4.2'), + ('MPICH', '3.2') +] + +source_urls = ['http://people.uniroma2.it/salvatore.filippone/psblas/'] +sources = [SOURCELOWER_TAR_GZ] + +sanity_check_paths = { + 'files': ['lib/libpsb_base.a'], + 'dirs': ['docs', 'include', 'lib'], +} + +moduleclass = 'math' diff --git a/p/PSBLAS/PSBLAS-ext-1.0-4.eb b/p/PSBLAS/PSBLAS-ext-1.0-4.eb new file mode 100644 index 00000000..9dbb49ff --- /dev/null +++ b/p/PSBLAS/PSBLAS-ext-1.0-4.eb @@ -0,0 +1,27 @@ +easyblock = 'ConfigureMake' + +name = 'PSBLAS-ext' +version = '1.0-4' + +homepage = 'http://people.uniroma2.it/salvatore.filippone/psblas/' +description = """PSBLAS - Extended formats and NVIDIA GPU support """ + +toolchain = {'name': 'GCC', 'version': '4.9.3-2.25'} +toolchainopts = {'pic': True} + +dependencies = [ + ('PSBLAS', '3.3.4-3'), + ('CUDA', '7.5.18', '', ('dummy', 'dummy')) +] + +source_urls = ['http://people.uniroma2.it/salvatore.filippone/psblas/'] +sources = [SOURCELOWER_TGZ] + +configopts = '--with-psblas=$EBROOTPSBLAS' + +sanity_check_paths = { + 'files': [], + 'dirs': ['lib'], +} + +moduleclass = 'math' diff --git a/p/PSI/PSI-4.0b4-ictce-5.3.0-mt.eb b/p/PSI/PSI-4.0b4-ictce-5.3.0-mt.eb new file mode 100644 index 00000000..528a6728 --- /dev/null +++ b/p/PSI/PSI-4.0b4-ictce-5.3.0-mt.eb @@ -0,0 +1,31 @@ +name = 'PSI' +version = '4.0b4' +versionsuffix = '-mt' + +homepage = 'http://www.psicode.org/' +description = """PSI4 is an open-source suite of ab initio quantum chemistry programs designed for + efficient, high-accuracy simulations of a variety of molecular properties. We can routinely perform + computations with more than 2500 basis functions running serially or in parallel.""" + +toolchain = {'name': 'ictce', 'version': '5.3.0'} +# not using MPI results in a build relying on multithreaded BLAS solely +toolchainopts = {'usempi': False} + +source_urls = ['http://download.sourceforge.net/psicode/'] +sources = ['%(namelower)s%(version)s.tar.gz'] + +patches = [ + 'PSI-4.0b4-mpi.patch', + 'PSI-4.0b4-thread-pool.patch', + 'PSI-%(version)s_python-config.patch', # workaround for broken python-config due to full path to bin/python being used +] + +python = 'Python' +pyver = '2.7.3' + +dependencies = [ + (python, pyver), + ('Boost', '1.53.0', '-%s-%s' % (python, pyver)), +] + +moduleclass = 'chem' diff --git a/p/PSI/PSI-4.0b4-ictce-5.3.0.eb b/p/PSI/PSI-4.0b4-ictce-5.3.0.eb new file mode 100644 index 00000000..674a15f0 --- /dev/null +++ b/p/PSI/PSI-4.0b4-ictce-5.3.0.eb @@ -0,0 +1,29 @@ +name = 'PSI' +version = '4.0b4' + +homepage = 'http://www.psicode.org/' +description = """PSI4 is an open-source suite of ab initio quantum chemistry programs designed for + efficient, high-accuracy simulations of a variety of molecular properties. We can routinely perform + computations with more than 2500 basis functions running serially or in parallel.""" + +toolchain = {'name': 'ictce', 'version': '5.3.0'} +toolchainopts = {'usempi': True} + +source_urls = ['http://download.sourceforge.net/psicode/'] +sources = ['%(namelower)s%(version)s.tar.gz'] + +patches = [ + 'PSI-4.0b4-mpi.patch', + 'PSI-4.0b4-thread-pool.patch', + 'PSI-%(version)s_python-config.patch', # workaround for broken python-config due to full path to bin/python being used +] + +python = 'Python' +pyver = '2.7.3' + +dependencies = [ + (python, pyver), + ('Boost', '1.53.0', '-%s-%s' % (python, pyver)), +] + +moduleclass = 'chem' diff --git a/p/PSI/PSI-4.0b5-ictce-5.3.0-mt.eb b/p/PSI/PSI-4.0b5-ictce-5.3.0-mt.eb new file mode 100644 index 00000000..c680330c --- /dev/null +++ b/p/PSI/PSI-4.0b5-ictce-5.3.0-mt.eb @@ -0,0 +1,32 @@ +name = 'PSI' +version = '4.0b5' +versionsuffix = '-mt' + +homepage = 'http://www.psicode.org/' +description = """PSI4 is an open-source suite of ab initio quantum chemistry programs designed for + efficient, high-accuracy simulations of a variety of molecular properties. We can routinely perform + computations with more than 2500 basis functions running serially or in parallel.""" + +toolchain = {'name': 'ictce', 'version': '5.3.0'} +# not using MPI results in a build relying on multithreaded BLAS solely +toolchainopts = {'usempi': False} + +source_urls = ['http://download.sourceforge.net/psicode/'] +sources = ['%(namelower)s%(version)s.tar.gz'] + +patches = [ + 'PSI-4.0b5-failed-test.patch', # the test works but it segfaults on exit + 'PSI-4.0b5-thread-pool.patch', + 'PSI-4.0b5-new-plugin.patch', + 'PSI-%(version)s_python-config.patch', # workaround for broken python-config due to full path to bin/python being used +] + +python = 'Python' +pyver = '2.7.5' + +dependencies = [ + (python, pyver), + ('Boost', '1.53.0', '-%s-%s' % (python, pyver)), +] + +moduleclass = 'chem' diff --git a/p/PSI/PSI-4.0b5-ictce-5.3.0.eb b/p/PSI/PSI-4.0b5-ictce-5.3.0.eb new file mode 100644 index 00000000..288d0bd7 --- /dev/null +++ b/p/PSI/PSI-4.0b5-ictce-5.3.0.eb @@ -0,0 +1,31 @@ +name = 'PSI' +version = '4.0b5' + +homepage = 'http://www.psicode.org/' +description = """PSI4 is an open-source suite of ab initio quantum chemistry programs designed for + efficient, high-accuracy simulations of a variety of molecular properties. We can routinely perform + computations with more than 2500 basis functions running serially or in parallel.""" + +toolchain = {'name': 'ictce', 'version': '5.3.0'} +toolchainopts = {'usempi': True} + +source_urls = ['http://download.sourceforge.net/psicode/'] +sources = ['%(namelower)s%(version)s.tar.gz'] + +patches = [ + 'PSI-4.0b5-mpi-memcpy.patch', + 'PSI-4.0b5-failed-test.patch', # the test works but it segfaults on exit + 'PSI-4.0b5-thread-pool.patch', + 'PSI-4.0b5-new-plugin.patch', + 'PSI-%(version)s_python-config.patch', # workaround for broken python-config due to full path to bin/python being used +] + +python = 'Python' +pyver = '2.7.5' + +dependencies = [ + (python, pyver), + ('Boost', '1.53.0', '-%s-%s' % (python, pyver)), +] + +moduleclass = 'chem' diff --git a/p/PSI/PSI-4.0b5-ictce-5.5.0-mt.eb b/p/PSI/PSI-4.0b5-ictce-5.5.0-mt.eb new file mode 100644 index 00000000..e65fbf78 --- /dev/null +++ b/p/PSI/PSI-4.0b5-ictce-5.5.0-mt.eb @@ -0,0 +1,32 @@ +name = 'PSI' +version = '4.0b5' +versionsuffix = '-mt' + +homepage = 'http://www.psicode.org/' +description = """PSI4 is an open-source suite of ab initio quantum chemistry programs designed for + efficient, high-accuracy simulations of a variety of molecular properties. We can routinely perform + computations with more than 2500 basis functions running serially or in parallel.""" + +toolchain = {'name': 'ictce', 'version': '5.5.0'} +# not using MPI results in a build relying on multithreaded BLAS solely +toolchainopts = {'usempi': False} + +source_urls = ['http://download.sourceforge.net/psicode/'] +sources = ['%(namelower)s%(version)s.tar.gz'] + +patches = [ + 'PSI-4.0b5-failed-test.patch', # the test works but it segfaults on exit + 'PSI-4.0b5-thread-pool.patch', + 'PSI-4.0b5-new-plugin.patch', + 'PSI-%(version)s_python-config.patch', # workaround for broken python-config due to full path to bin/python being used +] + +python = 'Python' +pyver = '2.7.5' + +dependencies = [ + (python, pyver), + ('Boost', '1.53.0', '-%s-%s' % (python, pyver)), +] + +moduleclass = 'chem' diff --git a/p/PSI/PSI-4.0b5-ictce-5.5.0.eb b/p/PSI/PSI-4.0b5-ictce-5.5.0.eb new file mode 100644 index 00000000..7be55fa0 --- /dev/null +++ b/p/PSI/PSI-4.0b5-ictce-5.5.0.eb @@ -0,0 +1,31 @@ +name = 'PSI' +version = '4.0b5' + +homepage = 'http://www.psicode.org/' +description = """PSI4 is an open-source suite of ab initio quantum chemistry programs designed for + efficient, high-accuracy simulations of a variety of molecular properties. We can routinely perform + computations with more than 2500 basis functions running serially or in parallel.""" + +toolchain = {'name': 'ictce', 'version': '5.5.0'} +toolchainopts = {'usempi': True} + +source_urls = ['http://download.sourceforge.net/psicode/'] +sources = ['%(namelower)s%(version)s.tar.gz'] + +patches = [ + 'PSI-4.0b5-mpi-memcpy.patch', + 'PSI-4.0b5-failed-test.patch', # the test works but it segfaults on exit + 'PSI-4.0b5-thread-pool.patch', + 'PSI-4.0b5-new-plugin.patch', + 'PSI-%(version)s_python-config.patch', # workaround for broken python-config due to full path to bin/python being used +] + +python = 'Python' +pyver = '2.7.5' + +dependencies = [ + (python, pyver), + ('Boost', '1.53.0', '-%s-%s' % (python, pyver)), +] + +moduleclass = 'chem' diff --git a/p/PSI/PSI-4.0b5-intel-2015a-mt-maxam7-Python-2.7.10.eb b/p/PSI/PSI-4.0b5-intel-2015a-mt-maxam7-Python-2.7.10.eb new file mode 100644 index 00000000..e299f3c6 --- /dev/null +++ b/p/PSI/PSI-4.0b5-intel-2015a-mt-maxam7-Python-2.7.10.eb @@ -0,0 +1,38 @@ +name = 'PSI' +version = '4.0b5' +# 'maxam7': maximum angular momentum increased to 7 via LIBINT_OPT_AM +versionsuffix = '-mt-maxam7' + +homepage = 'http://www.psicode.org/' +description = """PSI4 is an open-source suite of ab initio quantum chemistry programs designed for + efficient, high-accuracy simulations of a variety of molecular properties. We can routinely perform + computations with more than 2500 basis functions running serially or in parallel.""" + +toolchain = {'name': 'intel', 'version': '2015a'} +# not using MPI results in a build relying on multithreaded BLAS solely +toolchainopts = {'usempi': False} + +source_urls = ['http://download.sourceforge.net/psicode/'] +sources = ['%(namelower)s%(version)s.tar.gz'] + +patches = [ + 'PSI-4.0b5-failed-test.patch', # the test works but it segfaults on exit + 'PSI-4.0b5-thread-pool.patch', + 'PSI-4.0b5-new-plugin.patch', + 'PSI-%(version)s_python-config.patch', # workaround for broken python-config due to full path to bin/python being used +] + +python = 'Python' +pyver = '2.7.10' +pysuff = '-%s-%s' % (python, pyver) +versionsuffix += pysuff + +dependencies = [ + (python, pyver), + ('Boost', '1.59.0', pysuff), +] + +# increase maximum angular momentum to 7 +configopts = '--with-max-am-eri=7' + +moduleclass = 'chem' diff --git a/p/PSI/PSI-4.0b6-20160201-intel-2016a-mt-Python-2.7.11.eb b/p/PSI/PSI-4.0b6-20160201-intel-2016a-mt-Python-2.7.11.eb new file mode 100644 index 00000000..3f257ab0 --- /dev/null +++ b/p/PSI/PSI-4.0b6-20160201-intel-2016a-mt-Python-2.7.11.eb @@ -0,0 +1,47 @@ +name = 'PSI' +version = '4.0b6-20160201' +versionsuffix = '-mt' + +homepage = 'http://www.psicode.org/' +description = """PSI4 is an open-source suite of ab initio quantum chemistry programs designed for + efficient, high-accuracy simulations of a variety of molecular properties. We can routinely perform + computations with more than 2500 basis functions running serially or in parallel.""" + +toolchain = {'name': 'intel', 'version': '2016a'} +toolchainopts = {'usempi': False} + +source_urls = ['https://github.com/psi4/psi4public/archive/'] +sources = ['e4070d0024742579.tar.gz'] + +patches = [ + 'PSI-%(version)s-fix-gitversion.patch', + 'PSI-%(version)s-plugin-fix.patch', +] + +python = 'Python' +pyver = '2.7.11' +pysuff = '-%s-%s' % (python, pyver) +versionsuffix += pysuff + +dependencies = [ + (python, pyver), + ('Boost', '1.59.0', pysuff), + ('PCMSolver', '20160205', pysuff), + ('CheMPS2', '1.6'), +] + +builddependencies = [ + ('CMake', '3.4.3'), + ('Perl', '5.22.1', '-bare'), # for the test suite +] + +configopts = '-DENABLE_MPI=OFF -DENABLE_OMP=ON -DENABLE_UNIT_TESTS=ON -DENABLE_CHEMPS2=ON -DENABLE_PLUGINS=ON' +configopts += ' -DENABLE_DUMMY_PLUGIN=ON -DCHEMPS2_ROOT=$EBROOTCHEMPS2' +configopts += ' -DENABLE_PCMSOLVER=ON -DPCMSOLVER_ROOT=$EBROOTPCMSOLVER' + +# Execute 4 tests in parallel +runtest = 'ARGS="-V -E \'opt10|pubchem1|pubchem2|pywrap-opt-sowreap|sapt4\' -j 4" test' + + + +moduleclass = 'chem' diff --git a/p/PSI4/PSI4-1.0-intel-2016a-Python-2.7.11.eb b/p/PSI4/PSI4-1.0-intel-2016a-Python-2.7.11.eb new file mode 100644 index 00000000..ed0569f1 --- /dev/null +++ b/p/PSI4/PSI4-1.0-intel-2016a-Python-2.7.11.eb @@ -0,0 +1,44 @@ +easyblock = 'EB_PSI' + +name = 'PSI4' +version = '1.0' +versionsuffix = '-Python-%(pyver)s' + +homepage = 'http://www.psicode.org/' +description = """PSI4 is an open-source suite of ab initio quantum chemistry programs designed for + efficient, high-accuracy simulations of a variety of molecular properties. We can routinely perform + computations with more than 2500 basis functions running serially or in parallel.""" + +toolchain = {'name': 'intel', 'version': '2016a'} +toolchainopts = {'usempi': True} + +source_urls = ['https://github.com/psi4/psi4/archive/'] +sources = ['%(version)s.tar.gz'] + +patches = [ + 'PSI4-%(version)s-plugin-fix.patch', + 'PSI4-%(version)s-disable-ambit.patch', +] + +dependencies = [ + ('Python', '2.7.11'), + ('Boost', '1.61.0', versionsuffix), + ('PCMSolver', '1.1.4', versionsuffix), + ('CheMPS2', '1.7.2'), +] + +builddependencies = [ + ('CMake', '3.5.2'), +# ('Perl', '5.22.1', '-bare'), # for the test suite +] + +configopts = '-DENABLE_MPI=ON -DENABLE_OMP=ON -DENABLE_UNIT_TESTS=ON -DENABLE_CHEMPS2=ON -DENABLE_PLUGINS=ON' + +# CMake will pick mpiexec by default and this fails with intel MPI +#configopts += ' -DMPIEXEC=$EBROOTIMPI/bin64/mpirun' + +# The tests don't work with MPI (most of them hang or fail) +# ref: https://github.com/psi4/psi4/pull/436#issuecomment-230519769 +runtest = False + +moduleclass = 'chem' diff --git a/p/PSORTb/PSORTb-3.0.4-foss-2016a-Perl-5.22.1.eb b/p/PSORTb/PSORTb-3.0.4-foss-2016a-Perl-5.22.1.eb new file mode 100644 index 00000000..79449c63 --- /dev/null +++ b/p/PSORTb/PSORTb-3.0.4-foss-2016a-Perl-5.22.1.eb @@ -0,0 +1,44 @@ +easyblock = 'PerlModule' + +name = 'PSORTb' +version = '3.0.4' +versionsuffix = '-Perl-%(perlver)s' + +homepage = 'http://psort.org/psortb/index.html' +description = """PSORTb v3.0.4 is the most precise bacterial localization prediction tool available.""" + +toolchain = {'name': 'foss', 'version': '2016a'} + +source_urls = ['http://www.psort.org/download/'] +sources = ['bio-tools-psort-all.%(version)s.tar.gz'] + +patches = [ + 'PSORTb-%(version)s-libpsortb.patch', +] + +dependencies = [ + ('Perl', '5.22.1'), + ('libpsortb','1.0'), + ('BioPerl','1.6.924','-Perl-5.22.1'), + ('BLAST','2.2.26', '-Linux_x86_64', True), + ('pftoolsV3','20160324'), +] + +options = {'modulename': 'Bio::Tools::PSort'} + +preconfigopts = "export PSORTROOT=%(installdir)s && " + +prebuildopts = 'sed -i "s/CC = cc/CC ?= gcc/" bio-tools-psort-modhmm/Makefile && ' + +postinstallcmds = [ + "cp -r psort/* %(installdir)s/.", +] + +sanity_check_paths = { + 'files': ['lib/perl5/site_perl/%(perlver)s/x86_64-linux-thread-multi/Algorithm/HMM.pm', + 'lib/perl5/site_perl/%(perlver)s/x86_64-linux-thread-multi/Bio/Tools/PSort.pm'], + 'dirs': ['lib/perl5/site_perl/%(perlver)s/x86_64-linux-thread-multi/Algorithm/HMM', + 'lib/perl5/site_perl/%(perlver)s/x86_64-linux-thread-multi/Bio/Tools/PSort'], +} + +moduleclass = 'bio' diff --git a/p/ParMETIS/ParMETIS-3.1.1-goolf-1.4.10.eb b/p/ParMETIS/ParMETIS-3.1.1-goolf-1.4.10.eb new file mode 100644 index 00000000..8183de64 --- /dev/null +++ b/p/ParMETIS/ParMETIS-3.1.1-goolf-1.4.10.eb @@ -0,0 +1,22 @@ +name = 'ParMETIS' +version = '3.1.1' + +homepage = 'http://glaros.dtc.umn.edu/gkhome/metis/parmetis/overview' +description = """ParMETIS is an MPI-based parallel library that implements a variety of algorithms for partitioning unstructured graphs, + meshes, and for computing fill-reducing orderings of sparse matrices. ParMETIS extends the functionality provided by METIS and includes + routines that are especially suited for parallel AMR computations and large scale numerical simulations. The algorithms implemented in + ParMETIS are based on the parallel multilevel k-way graph-partitioning, adaptive repartitioning, and parallel multi-constrained partitioning + schemes.""" + +toolchain = {'name': 'goolf', 'version': '1.4.10'} +toolchainopts = {'optarch': True, 'usempi': True, 'pic': True} + +source_urls = [ + 'http://glaros.dtc.umn.edu/gkhome/fetch/sw/parmetis', + 'http://glaros.dtc.umn.edu/gkhome/fetch/sw/parmetis/OLD', +] +sources = ['ParMetis-%s.tar.gz' % version] + +builddependencies = [('CMake', '2.8.4')] + +moduleclass = 'math' diff --git a/p/ParMETIS/ParMETIS-3.1.1-ictce-5.3.0.eb b/p/ParMETIS/ParMETIS-3.1.1-ictce-5.3.0.eb new file mode 100644 index 00000000..11db9fe0 --- /dev/null +++ b/p/ParMETIS/ParMETIS-3.1.1-ictce-5.3.0.eb @@ -0,0 +1,23 @@ +name = 'ParMETIS' +version = '3.1.1' + +homepage = 'http://glaros.dtc.umn.edu/gkhome/metis/parmetis/overview' +description = """ParMETIS is an MPI-based parallel library that implements a variety of algorithms for partitioning unstructured graphs, + meshes, and for computing fill-reducing orderings of sparse matrices. ParMETIS extends the functionality provided by METIS and includes + routines that are especially suited for parallel AMR computations and large scale numerical simulations. The algorithms implemented in + ParMETIS are based on the parallel multilevel k-way graph-partitioning, adaptive repartitioning, and parallel multi-constrained partitioning + schemes.""" + + +toolchain = {'name': 'ictce', 'version': '5.3.0'} +toolchainopts = {'optarch': True, 'usempi': True, 'pic': True} + +source_urls = [ + 'http://glaros.dtc.umn.edu/gkhome/fetch/sw/parmetis', + 'http://glaros.dtc.umn.edu/gkhome/fetch/sw/parmetis/OLD', +] +sources = ['ParMetis-%s.tar.gz' % version] + +builddependencies = [('CMake', '2.8.4')] + +moduleclass = 'math' diff --git a/p/ParMETIS/ParMETIS-3.2.0-goolf-1.4.10.eb b/p/ParMETIS/ParMETIS-3.2.0-goolf-1.4.10.eb new file mode 100644 index 00000000..5223c55c --- /dev/null +++ b/p/ParMETIS/ParMETIS-3.2.0-goolf-1.4.10.eb @@ -0,0 +1,22 @@ +name = 'ParMETIS' +version = '3.2.0' + +homepage = 'http://glaros.dtc.umn.edu/gkhome/metis/parmetis/overview' +description = """ParMETIS is an MPI-based parallel library that implements a variety of algorithms for partitioning unstructured graphs, + meshes, and for computing fill-reducing orderings of sparse matrices. ParMETIS extends the functionality provided by METIS and includes + routines that are especially suited for parallel AMR computations and large scale numerical simulations. The algorithms implemented in + ParMETIS are based on the parallel multilevel k-way graph-partitioning, adaptive repartitioning, and parallel multi-constrained partitioning + schemes.""" + +toolchain = {'name': 'goolf', 'version': '1.4.10'} +toolchainopts = {'optarch': True, 'usempi': True, 'pic': True} + +source_urls = [ + 'http://glaros.dtc.umn.edu/gkhome/fetch/sw/parmetis', + 'http://glaros.dtc.umn.edu/gkhome/fetch/sw/parmetis/OLD', +] +sources = ['ParMetis-%(version)s.tar.gz'] + +builddependencies = [('CMake', '2.8.4')] + +moduleclass = 'math' diff --git a/p/ParMETIS/ParMETIS-3.2.0-ictce-6.2.5.eb b/p/ParMETIS/ParMETIS-3.2.0-ictce-6.2.5.eb new file mode 100644 index 00000000..d331f06b --- /dev/null +++ b/p/ParMETIS/ParMETIS-3.2.0-ictce-6.2.5.eb @@ -0,0 +1,22 @@ +name = 'ParMETIS' +version = '3.2.0' + +homepage = 'http://glaros.dtc.umn.edu/gkhome/metis/parmetis/overview' +description = """ParMETIS is an MPI-based parallel library that implements a variety of algorithms for partitioning unstructured graphs, + meshes, and for computing fill-reducing orderings of sparse matrices. ParMETIS extends the functionality provided by METIS and includes + routines that are especially suited for parallel AMR computations and large scale numerical simulations. The algorithms implemented in + ParMETIS are based on the parallel multilevel k-way graph-partitioning, adaptive repartitioning, and parallel multi-constrained partitioning + schemes.""" + +toolchain = {'name': 'ictce', 'version': '6.2.5'} +toolchainopts = {'optarch': True, 'usempi': True, 'pic': True} + +source_urls = [ + 'http://glaros.dtc.umn.edu/gkhome/fetch/sw/parmetis', + 'http://glaros.dtc.umn.edu/gkhome/fetch/sw/parmetis/OLD', +] +sources = ['ParMetis-%(version)s.tar.gz'] + +builddependencies = [('CMake', '2.8.12')] + +moduleclass = 'math' diff --git a/p/ParMETIS/ParMETIS-4.0.2-goolf-1.4.10.eb b/p/ParMETIS/ParMETIS-4.0.2-goolf-1.4.10.eb new file mode 100644 index 00000000..f4413be2 --- /dev/null +++ b/p/ParMETIS/ParMETIS-4.0.2-goolf-1.4.10.eb @@ -0,0 +1,22 @@ +name = 'ParMETIS' +version = '4.0.2' + +homepage = 'http://glaros.dtc.umn.edu/gkhome/metis/parmetis/overview' +description = """ParMETIS is an MPI-based parallel library that implements a variety of algorithms for partitioning unstructured graphs, + meshes, and for computing fill-reducing orderings of sparse matrices. ParMETIS extends the functionality provided by METIS and includes + routines that are especially suited for parallel AMR computations and large scale numerical simulations. The algorithms implemented in + ParMETIS are based on the parallel multilevel k-way graph-partitioning, adaptive repartitioning, and parallel multi-constrained partitioning + schemes.""" + +toolchain = {'name': 'goolf', 'version': '1.4.10'} +toolchainopts = {'optarch': True, 'usempi': True, 'pic': True} + +source_urls = [ + 'http://glaros.dtc.umn.edu/gkhome/fetch/sw/parmetis', + 'http://glaros.dtc.umn.edu/gkhome/fetch/sw/parmetis/OLD', +] +sources = [SOURCELOWER_TAR_GZ] + +builddependencies = [('CMake', '2.8.4')] + +moduleclass = 'math' diff --git a/p/ParMETIS/ParMETIS-4.0.2-goolf-1.5.16.eb b/p/ParMETIS/ParMETIS-4.0.2-goolf-1.5.16.eb new file mode 100644 index 00000000..c7fbbbe9 --- /dev/null +++ b/p/ParMETIS/ParMETIS-4.0.2-goolf-1.5.16.eb @@ -0,0 +1,20 @@ +name = 'ParMETIS' +version = '4.0.2' + +homepage = 'http://glaros.dtc.umn.edu/gkhome/metis/parmetis/overview' +description = """ParMETIS is an MPI-based parallel library that implements a variety of algorithms for partitioning unstructured graphs, + meshes, and for computing fill-reducing orderings of sparse matrices. ParMETIS extends the functionality provided by METIS and includes + routines that are especially suited for parallel AMR computations and large scale numerical simulations. The algorithms implemented in + ParMETIS are based on the parallel multilevel k-way graph-partitioning, adaptive repartitioning, and parallel multi-constrained partitioning + schemes.""" + +toolchain = {'name': 'goolf', 'version': '1.5.16'} +toolchainopts = {'optarch': True, 'usempi': True, 'pic': True} + +source_urls = ['http://glaros.dtc.umn.edu/gkhome/fetch/sw/parmetis', + 'http://glaros.dtc.umn.edu/gkhome/fetch/sw/parmetis/OLD'] +sources = [SOURCELOWER_TAR_GZ] + +builddependencies = [('CMake', '2.8.4')] + +moduleclass = 'math' diff --git a/p/ParMETIS/ParMETIS-4.0.2-ictce-5.3.0.eb b/p/ParMETIS/ParMETIS-4.0.2-ictce-5.3.0.eb new file mode 100644 index 00000000..a32790b7 --- /dev/null +++ b/p/ParMETIS/ParMETIS-4.0.2-ictce-5.3.0.eb @@ -0,0 +1,23 @@ +name = 'ParMETIS' +version = '4.0.2' + +homepage = 'http://glaros.dtc.umn.edu/gkhome/metis/parmetis/overview' +description = """ParMETIS is an MPI-based parallel library that implements a variety of algorithms for partitioning unstructured graphs, + meshes, and for computing fill-reducing orderings of sparse matrices. ParMETIS extends the functionality provided by METIS and includes + routines that are especially suited for parallel AMR computations and large scale numerical simulations. The algorithms implemented in + ParMETIS are based on the parallel multilevel k-way graph-partitioning, adaptive repartitioning, and parallel multi-constrained partitioning + schemes.""" + + +toolchain = {'name': 'ictce', 'version': '5.3.0'} +toolchainopts = {'optarch': True, 'usempi': True, 'pic': True} + +source_urls = [ + 'http://glaros.dtc.umn.edu/gkhome/fetch/sw/parmetis', + 'http://glaros.dtc.umn.edu/gkhome/fetch/sw/parmetis/OLD', +] +sources = [SOURCELOWER_TAR_GZ] + +builddependencies = [('CMake', '2.8.4')] + +moduleclass = 'math' diff --git a/p/ParMETIS/ParMETIS-4.0.3-foss-2016a.eb b/p/ParMETIS/ParMETIS-4.0.3-foss-2016a.eb new file mode 100644 index 00000000..6134d068 --- /dev/null +++ b/p/ParMETIS/ParMETIS-4.0.3-foss-2016a.eb @@ -0,0 +1,22 @@ +name = 'ParMETIS' +version = '4.0.3' + +homepage = 'http://glaros.dtc.umn.edu/gkhome/metis/parmetis/overview' +description = """ParMETIS is an MPI-based parallel library that implements a variety of algorithms for partitioning unstructured graphs, + meshes, and for computing fill-reducing orderings of sparse matrices. ParMETIS extends the functionality provided by METIS and includes + routines that are especially suited for parallel AMR computations and large scale numerical simulations. The algorithms implemented in + ParMETIS are based on the parallel multilevel k-way graph-partitioning, adaptive repartitioning, and parallel multi-constrained partitioning + schemes.""" + +toolchain = {'name': 'foss', 'version': '2016a'} +toolchainopts = {'usempi': True, 'pic': True} + +source_urls = [ + 'http://glaros.dtc.umn.edu/gkhome/fetch/sw/parmetis', + 'http://glaros.dtc.umn.edu/gkhome/fetch/sw/parmetis/OLD', +] +sources = [SOURCELOWER_TAR_GZ] + +builddependencies = [('CMake', '3.5.2')] + +moduleclass = 'math' diff --git a/p/ParMETIS/ParMETIS-4.0.3-gimkl-2.11.5.eb b/p/ParMETIS/ParMETIS-4.0.3-gimkl-2.11.5.eb new file mode 100644 index 00000000..c7f412f7 --- /dev/null +++ b/p/ParMETIS/ParMETIS-4.0.3-gimkl-2.11.5.eb @@ -0,0 +1,22 @@ +name = 'ParMETIS' +version = '4.0.3' + +homepage = 'http://glaros.dtc.umn.edu/gkhome/metis/parmetis/overview' +description = """ParMETIS is an MPI-based parallel library that implements a variety of algorithms for partitioning unstructured graphs, + meshes, and for computing fill-reducing orderings of sparse matrices. ParMETIS extends the functionality provided by METIS and includes + routines that are especially suited for parallel AMR computations and large scale numerical simulations. The algorithms implemented in + ParMETIS are based on the parallel multilevel k-way graph-partitioning, adaptive repartitioning, and parallel multi-constrained partitioning + schemes.""" + +toolchain = {'name': 'gimkl', 'version': '2.11.5'} +toolchainopts = {'optarch': True, 'usempi': True, 'pic': True} + +source_urls = [ + 'http://glaros.dtc.umn.edu/gkhome/fetch/sw/parmetis', + 'http://glaros.dtc.umn.edu/gkhome/fetch/sw/parmetis/OLD', +] +sources = [SOURCELOWER_TAR_GZ] + +builddependencies = [('CMake', '3.3.2')] + +moduleclass = 'math' diff --git a/p/ParMETIS/ParMETIS-4.0.3-goolf-1.4.10.eb b/p/ParMETIS/ParMETIS-4.0.3-goolf-1.4.10.eb new file mode 100644 index 00000000..ebbc3db5 --- /dev/null +++ b/p/ParMETIS/ParMETIS-4.0.3-goolf-1.4.10.eb @@ -0,0 +1,22 @@ +name = 'ParMETIS' +version = '4.0.3' + +homepage = 'http://glaros.dtc.umn.edu/gkhome/metis/parmetis/overview' +description = """ParMETIS is an MPI-based parallel library that implements a variety of algorithms for partitioning unstructured graphs, + meshes, and for computing fill-reducing orderings of sparse matrices. ParMETIS extends the functionality provided by METIS and includes + routines that are especially suited for parallel AMR computations and large scale numerical simulations. The algorithms implemented in + ParMETIS are based on the parallel multilevel k-way graph-partitioning, adaptive repartitioning, and parallel multi-constrained partitioning + schemes.""" + +toolchain = {'name': 'goolf', 'version': '1.4.10'} +toolchainopts = {'optarch': True, 'usempi': True, 'pic': True} + +source_urls = [ + 'http://glaros.dtc.umn.edu/gkhome/fetch/sw/parmetis', + 'http://glaros.dtc.umn.edu/gkhome/fetch/sw/parmetis/OLD', +] +sources = [SOURCELOWER_TAR_GZ] + +builddependencies = [('CMake', '2.8.12')] + +moduleclass = 'math' diff --git a/p/ParMETIS/ParMETIS-4.0.3-ictce-5.5.0.eb b/p/ParMETIS/ParMETIS-4.0.3-ictce-5.5.0.eb new file mode 100644 index 00000000..db08a4e6 --- /dev/null +++ b/p/ParMETIS/ParMETIS-4.0.3-ictce-5.5.0.eb @@ -0,0 +1,22 @@ +name = 'ParMETIS' +version = '4.0.3' + +homepage = 'http://glaros.dtc.umn.edu/gkhome/metis/parmetis/overview' +description = """ParMETIS is an MPI-based parallel library that implements a variety of algorithms for partitioning unstructured graphs, + meshes, and for computing fill-reducing orderings of sparse matrices. ParMETIS extends the functionality provided by METIS and includes + routines that are especially suited for parallel AMR computations and large scale numerical simulations. The algorithms implemented in + ParMETIS are based on the parallel multilevel k-way graph-partitioning, adaptive repartitioning, and parallel multi-constrained partitioning + schemes.""" + +toolchain = {'name': 'ictce', 'version': '5.5.0'} +toolchainopts = {'optarch': True, 'usempi': True, 'pic': True} + +source_urls = [ + 'http://glaros.dtc.umn.edu/gkhome/fetch/sw/parmetis', + 'http://glaros.dtc.umn.edu/gkhome/fetch/sw/parmetis/OLD', +] +sources = [SOURCELOWER_TAR_GZ] + +builddependencies = [('CMake', '2.8.12')] + +moduleclass = 'math' diff --git a/p/ParMETIS/ParMETIS-4.0.3-intel-2014b.eb b/p/ParMETIS/ParMETIS-4.0.3-intel-2014b.eb new file mode 100644 index 00000000..1521fb59 --- /dev/null +++ b/p/ParMETIS/ParMETIS-4.0.3-intel-2014b.eb @@ -0,0 +1,22 @@ +name = 'ParMETIS' +version = '4.0.3' + +homepage = 'http://glaros.dtc.umn.edu/gkhome/metis/parmetis/overview' +description = """ParMETIS is an MPI-based parallel library that implements a variety of algorithms for partitioning unstructured graphs, + meshes, and for computing fill-reducing orderings of sparse matrices. ParMETIS extends the functionality provided by METIS and includes + routines that are especially suited for parallel AMR computations and large scale numerical simulations. The algorithms implemented in + ParMETIS are based on the parallel multilevel k-way graph-partitioning, adaptive repartitioning, and parallel multi-constrained partitioning + schemes.""" + +toolchain = {'name': 'intel', 'version': '2014b'} +toolchainopts = {'optarch': True, 'usempi': True, 'pic': True} + +source_urls = [ + 'http://glaros.dtc.umn.edu/gkhome/fetch/sw/parmetis', + 'http://glaros.dtc.umn.edu/gkhome/fetch/sw/parmetis/OLD', +] +sources = [SOURCELOWER_TAR_GZ] + +builddependencies = [('CMake', '3.0.0')] + +moduleclass = 'math' diff --git a/p/ParMETIS/ParMETIS-4.0.3-intel-2015a.eb b/p/ParMETIS/ParMETIS-4.0.3-intel-2015a.eb new file mode 100644 index 00000000..9212c669 --- /dev/null +++ b/p/ParMETIS/ParMETIS-4.0.3-intel-2015a.eb @@ -0,0 +1,22 @@ +name = 'ParMETIS' +version = '4.0.3' + +homepage = 'http://glaros.dtc.umn.edu/gkhome/metis/parmetis/overview' +description = """ParMETIS is an MPI-based parallel library that implements a variety of algorithms for partitioning unstructured graphs, + meshes, and for computing fill-reducing orderings of sparse matrices. ParMETIS extends the functionality provided by METIS and includes + routines that are especially suited for parallel AMR computations and large scale numerical simulations. The algorithms implemented in + ParMETIS are based on the parallel multilevel k-way graph-partitioning, adaptive repartitioning, and parallel multi-constrained partitioning + schemes.""" + +toolchain = {'name': 'intel', 'version': '2015a'} +toolchainopts = {'optarch': True, 'usempi': True, 'pic': True} + +source_urls = [ + 'http://glaros.dtc.umn.edu/gkhome/fetch/sw/parmetis', + 'http://glaros.dtc.umn.edu/gkhome/fetch/sw/parmetis/OLD', +] +sources = [SOURCELOWER_TAR_GZ] + +builddependencies = [('CMake', '3.1.0', '', ('GCC', '4.9.2'))] + +moduleclass = 'math' diff --git a/p/ParMETIS/ParMETIS-4.0.3-intel-2015b.eb b/p/ParMETIS/ParMETIS-4.0.3-intel-2015b.eb new file mode 100644 index 00000000..3487dd68 --- /dev/null +++ b/p/ParMETIS/ParMETIS-4.0.3-intel-2015b.eb @@ -0,0 +1,22 @@ +name = 'ParMETIS' +version = '4.0.3' + +homepage = 'http://glaros.dtc.umn.edu/gkhome/metis/parmetis/overview' +description = """ParMETIS is an MPI-based parallel library that implements a variety of algorithms for partitioning unstructured graphs, + meshes, and for computing fill-reducing orderings of sparse matrices. ParMETIS extends the functionality provided by METIS and includes + routines that are especially suited for parallel AMR computations and large scale numerical simulations. The algorithms implemented in + ParMETIS are based on the parallel multilevel k-way graph-partitioning, adaptive repartitioning, and parallel multi-constrained partitioning + schemes.""" + +toolchain = {'name': 'intel', 'version': '2015b'} +toolchainopts = {'optarch': True, 'usempi': True, 'pic': True} + +source_urls = [ + 'http://glaros.dtc.umn.edu/gkhome/fetch/sw/parmetis', + 'http://glaros.dtc.umn.edu/gkhome/fetch/sw/parmetis/OLD', +] +sources = [SOURCELOWER_TAR_GZ] + +builddependencies = [('CMake', '3.3.2', '', ('GNU', '4.9.3-2.25'))] + +moduleclass = 'math' diff --git a/p/ParMETIS/ParMETIS-4.0.3-intel-2016a.eb b/p/ParMETIS/ParMETIS-4.0.3-intel-2016a.eb new file mode 100644 index 00000000..d1d34fb0 --- /dev/null +++ b/p/ParMETIS/ParMETIS-4.0.3-intel-2016a.eb @@ -0,0 +1,22 @@ +name = 'ParMETIS' +version = '4.0.3' + +homepage = 'http://glaros.dtc.umn.edu/gkhome/metis/parmetis/overview' +description = """ParMETIS is an MPI-based parallel library that implements a variety of algorithms for partitioning unstructured graphs, + meshes, and for computing fill-reducing orderings of sparse matrices. ParMETIS extends the functionality provided by METIS and includes + routines that are especially suited for parallel AMR computations and large scale numerical simulations. The algorithms implemented in + ParMETIS are based on the parallel multilevel k-way graph-partitioning, adaptive repartitioning, and parallel multi-constrained partitioning + schemes.""" + +toolchain = {'name': 'intel', 'version': '2016a'} +toolchainopts = {'usempi': True, 'pic': True} + +source_urls = [ + 'http://glaros.dtc.umn.edu/gkhome/fetch/sw/parmetis', + 'http://glaros.dtc.umn.edu/gkhome/fetch/sw/parmetis/OLD', +] +sources = [SOURCELOWER_TAR_GZ] + +builddependencies = [('CMake', '3.5.2')] + +moduleclass = 'math' diff --git a/p/ParMETIS/ParMETIS-4.0.3-intel-2017a.eb b/p/ParMETIS/ParMETIS-4.0.3-intel-2017a.eb new file mode 100644 index 00000000..1077c393 --- /dev/null +++ b/p/ParMETIS/ParMETIS-4.0.3-intel-2017a.eb @@ -0,0 +1,22 @@ +name = 'ParMETIS' +version = '4.0.3' + +homepage = 'http://glaros.dtc.umn.edu/gkhome/metis/parmetis/overview' +description = """ParMETIS is an MPI-based parallel library that implements a variety of algorithms for partitioning unstructured graphs, + meshes, and for computing fill-reducing orderings of sparse matrices. ParMETIS extends the functionality provided by METIS and includes + routines that are especially suited for parallel AMR computations and large scale numerical simulations. The algorithms implemented in + ParMETIS are based on the parallel multilevel k-way graph-partitioning, adaptive repartitioning, and parallel multi-constrained partitioning + schemes.""" + +toolchain = {'name': 'intel', 'version': '2017a'} +toolchainopts = {'usempi': True, 'pic': True} + +source_urls = [ + 'http://glaros.dtc.umn.edu/gkhome/fetch/sw/parmetis', + 'http://glaros.dtc.umn.edu/gkhome/fetch/sw/parmetis/OLD', +] +sources = [SOURCELOWER_TAR_GZ] + +builddependencies = [('CMake', '3.7.2')] + +moduleclass = 'math' diff --git a/p/ParaView/ParaView-4.3.1-intel-2015a-Python-2.7.10-mpi.eb b/p/ParaView/ParaView-4.3.1-intel-2015a-Python-2.7.10-mpi.eb new file mode 100644 index 00000000..c8116fe1 --- /dev/null +++ b/p/ParaView/ParaView-4.3.1-intel-2015a-Python-2.7.10-mpi.eb @@ -0,0 +1,52 @@ +easyblock = 'CMakeMake' + +name = 'ParaView' +version = '4.3.1' + +homepage = "http://www.paraview.org" +description = "ParaView is a scientific parallel visualizer." + +toolchain = {'name': 'intel', 'version': '2015a'} +toolchainopts = {'pic': True} + +download_suffix = 'download.php?submit=Download&version=v%(version_major_minor)s&type=source&os=all&downloadFile=' +source_urls = ['http://www.paraview.org/paraview-downloads/%s' % download_suffix] +sources = ["ParaView-v%(version)s-source.tar.gz"] + +patches = ['%(name)s-%(version)s_missingheader.patch'] + +python = 'Python' +pyver = '2.7.10' +versionsuffix = '-%s-%s-mpi' % (python, pyver) +pysuff = '-%s-%s' % (python, pyver) +dependencies = [ + ('Mesa', '10.5.5', pysuff), + ('libGLU', '9.0.0', pysuff), + ('libXt', '1.1.4', pysuff), + ('Qt', '4.8.6', '%s%s' % ('-GLib-2.44.1', pysuff)), + ('libXext', '1.3.3', pysuff), + ('libX11', '1.6.3', pysuff), + ('zlib', '1.2.8'), +] + +builddependencies = [('CMake', '3.2.2')] + +separate_build_dir = True + +maxparallel = 4 + +configopts = '-DPARAVIEW_INSTALL_DEVELOPMENT_FILES=ON -DVTK_OPENGL_HAS_OSMESA=ON -DPARAVIEW_USE_MPI=ON ' +configopts += '-DOPENGL_INCLUDE_DIR=$EBROOTMESA/include -DOPENGL_gl_LIBRARY=$EBROOTMESA/lib/libGL.so ' +configopts += '-DOSMESA_INCLUDE_DIR=$EBROOTMESA/include -DOSMESA_LIBRARY=$EBROOTMESA/lib/libOSMesa.so ' +# Without internet connection turn off testing (uncomment the following line) +#configopts += '-DBUILD_TESTING=OFF ' +# Or consult https://gitlab.kitware.com/vtk/vtk/blob/master/Documentation/dev/git/data.md +# and download ExternalData to $EASYBUILD_SOURCEPATH and adjust -DExternalData_OBJECT_STORES accordingly +# Without internet connection, comment the following two lines (configopts and prebuildopts) +configopts += '-DExternalData_OBJECT_STORES=%(builddir)s/ExternalData ' +# The ParaView server can be cranky, test downloads are quite often failing, especially in the case +# of parallel downloads. Using ; insted of && gives a second chance to download the test files, if the +# first serial attempt would fail. +prebuildopts = 'make VTKData ;' + +moduleclass = 'vis' diff --git a/p/ParaView/ParaView-4.3.1-intel-2015a-Python-2.7.10.eb b/p/ParaView/ParaView-4.3.1-intel-2015a-Python-2.7.10.eb new file mode 100644 index 00000000..2e184fd8 --- /dev/null +++ b/p/ParaView/ParaView-4.3.1-intel-2015a-Python-2.7.10.eb @@ -0,0 +1,51 @@ +easyblock = 'CMakeMake' + +name = 'ParaView' +version = '4.3.1' + +homepage = "http://www.paraview.org" +description = "ParaView is a scientific parallel visualizer" + +toolchain = {'name': 'intel', 'version': '2015a'} +toolchainopts = {'usempi': False, 'pic': True} + +download_suffix = 'download.php?submit=Download&version=v%(version_major_minor)s&type=source&os=all&downloadFile=' +source_urls = ['http://www.paraview.org/paraview-downloads/%s' % download_suffix] +sources = ["ParaView-v%(version)s-source.tar.gz"] + +patches = ['%(name)s-%(version)s_missingheader.patch'] + +python = 'Python' +pyver = '2.7.10' +versionsuffix = '-%s-%s' % (python, pyver) +dependencies = [ + ('Mesa', '10.5.5', versionsuffix), + ('libGLU', '9.0.0', versionsuffix), + ('libXt', '1.1.4', versionsuffix), + ('Qt', '4.8.6', '%s%s' % ('-GLib-2.44.1', versionsuffix)), + ('libXext', '1.3.3', versionsuffix), + ('libX11', '1.6.3', versionsuffix), + ('zlib', '1.2.8'), +] + +builddependencies = [('CMake', '3.2.2')] + +separate_build_dir = True + +maxparallel = 4 + +configopts = '-DPARAVIEW_INSTALL_DEVELOPMENT_FILES=ON -DVTK_OPENGL_HAS_OSMESA=ON ' +configopts += '-DOPENGL_INCLUDE_DIR=$EBROOTMESA/include -DOPENGL_gl_LIBRARY=$EBROOTMESA/lib/libGL.so ' +configopts += '-DOSMESA_INCLUDE_DIR=$EBROOTMESA/include -DOSMESA_LIBRARY=$EBROOTMESA/lib/libOSMesa.so ' +# Without internet connection turn off testing (uncomment the following line) +#configopts += '-DBUILD_TESTING=OFF ' +# Or consult https://gitlab.kitware.com/vtk/vtk/blob/master/Documentation/dev/git/data.md +# and download ExternalData to $EASYBUILD_SOURCEPATH and adjust -DExternalData_OBJECT_STORES accordingly +# Without internet connection, comment the following two lines (configopts and prebuildopts) +configopts += '-DExternalData_OBJECT_STORES=%(builddir)s/ExternalData ' +# The ParaView server can be cranky, test downloads are quite often failing, especially in the case +# of parallel downloads. Using ; insted of && gives a second chance to download the test files, if the +# first serial attempt would fail. +prebuildopts = 'make VTKData ;' + +moduleclass = 'vis' diff --git a/p/ParaView/ParaView-4.4.0-gimkl-2.11.5-mpi.eb b/p/ParaView/ParaView-4.4.0-gimkl-2.11.5-mpi.eb new file mode 100644 index 00000000..a0d908d3 --- /dev/null +++ b/p/ParaView/ParaView-4.4.0-gimkl-2.11.5-mpi.eb @@ -0,0 +1,52 @@ +easyblock = 'CMakeMake' + +name = 'ParaView' +version = '4.4.0' +versionsuffix = '-mpi' + +homepage = "http://www.paraview.org" +description = "ParaView is a scientific parallel visualizer." + +toolchain = {'name': 'gimkl', 'version': '2.11.5'} +toolchainopts = {'pic': True, 'usempi': True} + +download_suffix = 'download.php?submit=Download&version=v%(version_major_minor)s&type=source&os=all&downloadFile=' +source_urls = ['http://www.paraview.org/paraview-downloads/%s' % download_suffix] +sources = ["ParaView-v%(version)s-source.tar.gz"] + +patches = ['%(name)s-%(version)s_missingheader.patch'] + +python = 'Python' +pyver = '2.7.10' +pysuff = '-%s-%s' % (python, pyver) +dependencies = [ + ('Mesa', '11.1.2'), + ('libGLU', '9.0.0'), + ('libXt', '1.1.5'), + ('Qt', '4.8.7'), + ('libXext', '1.3.3'), + ('libX11', '1.6.3'), + ('zlib', '1.2.8'), +] + +builddependencies = [('CMake', '3.4.3')] + +separate_build_dir = True + +maxparallel = 4 + +configopts = '-DPARAVIEW_INSTALL_DEVELOPMENT_FILES=ON -DVTK_OPENGL_HAS_OSMESA=ON -DPARAVIEW_USE_MPI=ON ' +configopts += '-DOPENGL_INCLUDE_DIR=$EBROOTMESA/include -DOPENGL_gl_LIBRARY=$EBROOTMESA/lib/libGL.so ' +configopts += '-DOSMESA_INCLUDE_DIR=$EBROOTMESA/include -DOSMESA_LIBRARY=$EBROOTMESA/lib/libOSMesa.so ' +# Without internet connection turn off testing (uncomment the following line) +#configopts += '-DBUILD_TESTING=OFF ' +# Or consult https://gitlab.kitware.com/vtk/vtk/blob/master/Documentation/dev/git/data.md +# and download ExternalData to $EASYBUILD_SOURCEPATH and adjust -DExternalData_OBJECT_STORES accordingly +# Without internet connection, comment the following two lines (configopts and prebuildopts) +configopts += '-DExternalData_OBJECT_STORES=%(builddir)s/ExternalData ' +# The ParaView server can be cranky, test downloads are quite often failing, especially in the case +# of parallel downloads. Using ; insted of && gives a second chance to download the test files, if the +# first serial attempt would fail. +prebuildopts = 'make VTKData ;' + +moduleclass = 'vis' diff --git a/p/ParaView/ParaView-4.4.0-intel-2015b-mpi.eb b/p/ParaView/ParaView-4.4.0-intel-2015b-mpi.eb new file mode 100644 index 00000000..2e7bc452 --- /dev/null +++ b/p/ParaView/ParaView-4.4.0-intel-2015b-mpi.eb @@ -0,0 +1,52 @@ +easyblock = 'CMakeMake' + +name = 'ParaView' +version = '4.4.0' +versionsuffix = '-mpi' + +homepage = "http://www.paraview.org" +description = "ParaView is a scientific parallel visualizer." + +toolchain = {'name': 'intel', 'version': '2015b'} +toolchainopts = {'pic': True, 'usempi': True} + +download_suffix = 'download.php?submit=Download&version=v%(version_major_minor)s&type=source&os=all&downloadFile=' +source_urls = ['http://www.paraview.org/paraview-downloads/%s' % download_suffix] +sources = ["ParaView-v%(version)s-source.tar.gz"] + +patches = ['%(name)s-%(version)s_missingheader.patch'] + +python = 'Python' +pyver = '2.7.10' +pysuff = '-%s-%s' % (python, pyver) +dependencies = [ + ('Mesa', '11.0.2', pysuff), + ('libGLU', '9.0.0'), + ('libXt', '1.1.5'), + ('Qt', '4.8.7'), + ('libXext', '1.3.3'), + ('libX11', '1.6.3', pysuff), + ('zlib', '1.2.8'), +] + +builddependencies = [('CMake', '3.3.2')] + +separate_build_dir = True + +maxparallel = 4 + +configopts = '-DPARAVIEW_INSTALL_DEVELOPMENT_FILES=ON -DVTK_OPENGL_HAS_OSMESA=ON -DPARAVIEW_USE_MPI=ON ' +configopts += '-DOPENGL_INCLUDE_DIR=$EBROOTMESA/include -DOPENGL_gl_LIBRARY=$EBROOTMESA/lib/libGL.so ' +configopts += '-DOSMESA_INCLUDE_DIR=$EBROOTMESA/include -DOSMESA_LIBRARY=$EBROOTMESA/lib/libOSMesa.so ' +# Without internet connection turn off testing (uncomment the following line) +#configopts += '-DBUILD_TESTING=OFF ' +# Or consult https://gitlab.kitware.com/vtk/vtk/blob/master/Documentation/dev/git/data.md +# and download ExternalData to $EASYBUILD_SOURCEPATH and adjust -DExternalData_OBJECT_STORES accordingly +# Without internet connection, comment the following two lines (configopts and prebuildopts) +configopts += '-DExternalData_OBJECT_STORES=%(builddir)s/ExternalData ' +# The ParaView server can be cranky, test downloads are quite often failing, especially in the case +# of parallel downloads. Using ; insted of && gives a second chance to download the test files, if the +# first serial attempt would fail. +prebuildopts = 'make VTKData ;' + +moduleclass = 'vis' diff --git a/p/ParaView/ParaView-4.4.0-intel-2015b.eb b/p/ParaView/ParaView-4.4.0-intel-2015b.eb new file mode 100644 index 00000000..0057213b --- /dev/null +++ b/p/ParaView/ParaView-4.4.0-intel-2015b.eb @@ -0,0 +1,51 @@ +easyblock = 'CMakeMake' + +name = 'ParaView' +version = '4.4.0' + +homepage = "http://www.paraview.org" +description = "ParaView is a scientific parallel visualizer." + +toolchain = {'name': 'intel', 'version': '2015b'} +toolchainopts = {'pic': True, 'usempi': False} + +download_suffix = 'download.php?submit=Download&version=v%(version_major_minor)s&type=source&os=all&downloadFile=' +source_urls = ['http://www.paraview.org/paraview-downloads/%s' % download_suffix] +sources = ["ParaView-v%(version)s-source.tar.gz"] + +patches = ['%(name)s-%(version)s_missingheader.patch'] + +python = 'Python' +pyver = '2.7.10' +pysuff = '-%s-%s' % (python, pyver) +dependencies = [ + ('Mesa', '11.0.2', pysuff), + ('libGLU', '9.0.0'), + ('libXt', '1.1.5'), + ('Qt', '4.8.7'), + ('libXext', '1.3.3'), + ('libX11', '1.6.3', pysuff), + ('zlib', '1.2.8'), +] + +builddependencies = [('CMake', '3.3.2')] + +separate_build_dir = True + +maxparallel = 4 + +configopts = '-DPARAVIEW_INSTALL_DEVELOPMENT_FILES=ON -DVTK_OPENGL_HAS_OSMESA=ON ' +configopts += '-DOPENGL_INCLUDE_DIR=$EBROOTMESA/include -DOPENGL_gl_LIBRARY=$EBROOTMESA/lib/libGL.so ' +configopts += '-DOSMESA_INCLUDE_DIR=$EBROOTMESA/include -DOSMESA_LIBRARY=$EBROOTMESA/lib/libOSMesa.so ' +# Without internet connection turn off testing (uncomment the following line) +#configopts += '-DBUILD_TESTING=OFF ' +# Or consult https://gitlab.kitware.com/vtk/vtk/blob/master/Documentation/dev/git/data.md +# and download ExternalData to $EASYBUILD_SOURCEPATH and adjust -DExternalData_OBJECT_STORES accordingly +# Without internet connection, comment the following two lines (configopts and prebuildopts) +configopts += '-DExternalData_OBJECT_STORES=%(builddir)s/ExternalData ' +# The ParaView server can be cranky, test downloads are quite often failing, especially in the case +# of parallel downloads. Using ; insted of && gives a second chance to download the test files, if the +# first serial attempt would fail. +prebuildopts = 'make VTKData ;' + +moduleclass = 'vis' diff --git a/p/ParaView/ParaView-4.4.0-intel-2016a.eb b/p/ParaView/ParaView-4.4.0-intel-2016a.eb new file mode 100644 index 00000000..838808a7 --- /dev/null +++ b/p/ParaView/ParaView-4.4.0-intel-2016a.eb @@ -0,0 +1,45 @@ +easyblock = 'CMakeMake' + +name = 'ParaView' +version = '4.4.0' + +homepage = "http://www.paraview.org" +description = "ParaView is a scientific parallel visualizer." + +toolchain = {'name': 'intel', 'version': '2016a'} +toolchainopts = {'pic': True, 'usempi': False} + +download_suffix = 'download.php?submit=Download&version=v%(version_major_minor)s&type=source&os=all&downloadFile=' +source_urls = ['http://www.paraview.org/paraview-downloads/%s' % download_suffix] +sources = ["ParaView-v%(version)s-source.tar.gz"] + +patches = ['%(name)s-%(version)s_missingheader.patch'] + +dependencies = [ + ('libGLU', '9.0.0', '-Mesa-11.2.1'), + ('libXt', '1.1.5'), + ('Qt', '4.8.7'), + ('libXext', '1.3.3'), + ('libX11', '1.6.3'), + ('zlib', '1.2.8'), +] + +builddependencies = [('CMake', '3.5.2')] + +separate_build_dir = True + +configopts = '-DPARAVIEW_INSTALL_DEVELOPMENT_FILES=ON -DVTK_OPENGL_HAS_OSMESA=ON ' +configopts += '-DOPENGL_INCLUDE_DIR=$EBROOTMESA/include -DOPENGL_gl_LIBRARY=$EBROOTMESA/lib/libGL.so ' +configopts += '-DOSMESA_INCLUDE_DIR=$EBROOTMESA/include -DOSMESA_LIBRARY=$EBROOTMESA/lib/libOSMesa.so ' +# Without internet connection turn off testing (uncomment the following line) +configopts += '-DBUILD_TESTING=OFF ' +# Or consult https://gitlab.kitware.com/vtk/vtk/blob/master/Documentation/dev/git/data.md +# and download ExternalData to $EASYBUILD_SOURCEPATH and adjust -DExternalData_OBJECT_STORES accordingly +# Without internet connection, comment the following two lines (configopts and prebuildopts) +configopts += '-DExternalData_OBJECT_STORES=%(builddir)s/ExternalData ' +# The ParaView server can be cranky, test downloads are quite often failing, especially in the case +# of parallel downloads. Using ; insted of && gives a second chance to download the test files, if the +# first serial attempt would fail. +prebuildopts = 'make VTKData ;' + +moduleclass = 'vis' diff --git a/p/Paraver/Paraver-4.4.5-GCC-4.7.3.eb b/p/Paraver/Paraver-4.4.5-GCC-4.7.3.eb new file mode 100644 index 00000000..298d4bf9 --- /dev/null +++ b/p/Paraver/Paraver-4.4.5-GCC-4.7.3.eb @@ -0,0 +1,29 @@ +# This is an easyconfig file for EasyBuild, see https://github.com/hpcugent/easybuild +# Copyright:: Copyright 2013 Juelich Supercomputing Centre, Germany +# Authors:: Bernd Mohr +# License:: New BSD +# +# This work is based from experiences from the UNITE project +# http://apps.fz-juelich.de/unite/ +## +name = "Paraver" +version = "4.4.5" + +homepage = 'http://www.bsc.es/computer-sciences/performance-tools/paraver' +description = """A very powerful performance visualization and analysis tool based on + traces that can be used to analyse any information that is expressed on its input trace format. + Traces for parallel MPI, OpenMP and other programs can be genereated with Extrae.""" + +toolchain = {'name': 'GCC', 'version': '4.7.3'} + +dependencies = [ + ('zlib', '1.2.8'), + ('wxPropertyGrid', '1.4.15'), + ('Boost', '1.53.0', '-serial'), +] + +# http://www.bsc.es/computer-sciences/performance-tools/downloads +# Requires input of email address for download +sources = ['%(namelower)s-' + "sources" +'-%(version)s.tar.bz2'] + +moduleclass = 'perf' diff --git a/p/Paraver/Paraver-4.5.6-foss-2015a.eb b/p/Paraver/Paraver-4.5.6-foss-2015a.eb new file mode 100644 index 00000000..64656257 --- /dev/null +++ b/p/Paraver/Paraver-4.5.6-foss-2015a.eb @@ -0,0 +1,32 @@ +# This is an easyconfig file for EasyBuild, see https://github.com/hpcugent/easybuild +# Copyright:: Copyright 2013 Juelich Supercomputing Centre, Germany +# Authors:: Bernd Mohr +# License:: New BSD +# +# This work is based from experiences from the UNITE project +# http://apps.fz-juelich.de/unite/ +## +name = "Paraver" +version = "4.5.6" + +homepage = 'http://www.bsc.es/computer-sciences/performance-tools/paraver' +description = """A very powerful performance visualization and analysis tool based on + traces that can be used to analyse any information that is expressed on its input trace format. + Traces for parallel MPI, OpenMP and other programs can be genereated with Extrae.""" + +toolchain = {'name': 'foss', 'version': '2015a'} + +compname = 'GCC' +compver = '4.9.2' + +dependencies = [ + ('zlib', '1.2.8', '', (compname, compver)), + ('wxPropertyGrid', '1.4.15', "", (compname, compver)), + ('Boost', '1.58.0', '-serial', (compname, compver)), +] + +# http://www.bsc.es/computer-sciences/performance-tools/downloads +# Requires input of email address for download +sources = ['%(namelower)s-' + "sources" +'-%(version)s.tar.gz'] + +moduleclass = 'perf' diff --git a/p/Paraview/Paraview-4.3-intel-2016.01-OSPRay.eb b/p/Paraview/Paraview-4.3-intel-2016.01-OSPRay.eb new file mode 100644 index 00000000..4bd45e7a --- /dev/null +++ b/p/Paraview/Paraview-4.3-intel-2016.01-OSPRay.eb @@ -0,0 +1,26 @@ +easyblock = 'PackedBinary' + +name = 'ParaView' +version = '4.3' +versionsuffix = '-OSPRay' + +homepage = "http://www.paraview.org" +description = "ParaView is a scientific parallel visualizer." + +toolchain = {'name': 'dummy', 'version': 'dummy'} + +download_suffix = 'download.php?submit=Download&version=v%(version_major_minor)s&type=source&os=all&downloadFile=' +source_urls = ['http://www.paraview.org/paraview-downloads/%s' % download_suffix] +sources = ["PV4_3_pvOSPRay_linux_x86_64.tgz"] + +dependencies = [('intel', '2016.01')] + +install_cmd = "cp -a PV4_3_pvOSPRay_linux_x86_64/* %(installdir)s/ && find %(installdir)s/ -type d -exec chmod 755 {} \; " + +sanity_check_paths = { + 'files': ['bin/paraview'], + 'dirs': ['bin', 'lib'], +} + +moduleclass = 'vis' + diff --git a/p/Paraview/Paraview-5.0.0-binary.eb b/p/Paraview/Paraview-5.0.0-binary.eb new file mode 100644 index 00000000..cc8676fa --- /dev/null +++ b/p/Paraview/Paraview-5.0.0-binary.eb @@ -0,0 +1,24 @@ +easyblock = 'PackedBinary' + +name = 'ParaView' +version = '5.0.0' +versionsuffix = '-binary' + +homepage = "http://www.paraview.org" +description = "ParaView is a scientific parallel visualizer." + +toolchain = {'name': 'dummy', 'version': 'dummy'} + +download_suffix = 'download.php?submit=Download&version=v%(version_major_minor)s&type=source&os=all&downloadFile=' +source_urls = ['http://www.paraview.org/paraview-downloads/%s' % download_suffix] +sources = ["ParaView-5.0.0-Qt4-OpenGL2-MPI-Linux-64bit.tar.gz"] + +install_cmd = "cp -a ParaView-5.0.0-Qt4-OpenGL2-MPI-Linux-64bit/* %(installdir)s/ && find %(installdir)s/ -type d -exec chmod 755 {} \; " + +sanity_check_paths = { + 'files': ['bin/paraview'], + 'dirs': ['bin', 'lib'], +} + +moduleclass = 'vis' + diff --git a/p/Paraview/Paraview-5.0.0-foss-2015g.eb b/p/Paraview/Paraview-5.0.0-foss-2015g.eb new file mode 100644 index 00000000..3741e877 --- /dev/null +++ b/p/Paraview/Paraview-5.0.0-foss-2015g.eb @@ -0,0 +1,51 @@ +easyblock = 'CMakeMake' + +name = 'ParaView' +version = '5.0.0' + +homepage = "http://www.paraview.org" +description = "ParaView is a scientific parallel visualizer." + +toolchain = {'name': 'foss', 'version': '2015g'} +toolchainopts = {'pic': True, 'usempi': True} + +download_suffix = 'download.php?submit=Download&version=v%(version_major_minor)s&type=source&os=all&downloadFile=' +source_urls = ['http://www.paraview.org/paraview-downloads/%s' % download_suffix] +sources = ["ParaView-v%(version)s-source.tar.gz"] + +python = 'Python' +pyver = '2.7.9' +pysuff = '-%s-%s' % (python,pyver) +dependencies = [ + ('Mesa', '11.0.8', pysuff), + ('libGLU', '9.0.0'), + ('libXt', '1.1.5'), + ('Qt', '4.8.6'), + ('libXext', '1.3.3', pysuff), + ('libX11', '1.6.2', pysuff), + ('zlib', '1.2.8'), +] + +builddependencies = [('CMake', '3.3.1')] + +separate_build_dir = True + +maxparallel = 4 + +preconfigopts = 'export SOME_VAR=something && ' + +configopts = '-DPARAVIEW_INSTALL_DEVELOPMENT_FILES=ON -DVTK_OPENGL_HAS_OSMESA=ON ' +configopts += '-DOPENGL_INCLUDE_DIR=$EBROOTMESA/include -DOPENGL_gl_LIBRARY=$EBROOTMESA/lib/libGL.so ' +configopts += '-DOSMESA_INCLUDE_DIR=$EBROOTMESA/include -DOSMESA_LIBRARY=$EBROOTMESA/lib/libOSMesa.so ' +#Without internet connection turn off testing (uncomment the following line) +#configopts += '-DBUILD_TESTING=OFF ' +#Or consult https://gitlab.kitware.com/vtk/vtk/blob/master/Documentation/dev/git/data.md +#and download ExternalData to $EASYBUILD_SOURCEPATH and adjust -DExternalData_OBJECT_STORES accordingly +#Without internet connection, comment the following two lines (configopts and prebuildopts) +configopts += '-DExternalData_OBJECT_STORES=%(builddir)s/ExternalData ' +#The ParaView server can be cranky, test downloads are quite often failing, especially in the case +#of parallel downloads. Using ; insted of && gives a second chance to download the test files, if the +#first serial attempt would fail. +prebuildopts = 'make VTKData ;' + +moduleclass = 'vis' diff --git a/p/Pasha/Pasha-1.0.5-ictce-5.3.0.eb b/p/Pasha/Pasha-1.0.5-ictce-5.3.0.eb new file mode 100644 index 00000000..a72485e9 --- /dev/null +++ b/p/Pasha/Pasha-1.0.5-ictce-5.3.0.eb @@ -0,0 +1,27 @@ +name = 'Pasha' +version = '1.0.5' + +homepage = 'http://pasha.sourceforge.net/' +description = "PASHA is a parallel short read assembler for large genomes using de Bruijn graphs." + + +toolchain = {'name': 'ictce', 'version': '5.3.0'} +toolchainopts = {'pic': True, 'opt': True, 'optarch': True} + +dependencies = [('tbb', '4.0.5.339', '', True)] + +source_urls = ['http://downloads.sourceforge.net/pasha'] +sources = [SOURCE_TAR_GZ] + +patches = [ + 'intelmpi.patch', + # needed since this still relies on gnu specific includes from libstdc++ which changed in latest version of libstdc++ + # since 1.0.5 pasha tries to use 'backward/' instead of 'ext/' but this might fail on some systems. + 'old-libstdc++-hash_fun-map-set_pasha-1.0.5.patch', + +] + +# Pasha's makefile is not suited for parallel execution +parallel = 1 + +moduleclass = 'bio' diff --git a/p/PerformanceReports/PerformanceReports-5.1-43967.eb b/p/PerformanceReports/PerformanceReports-5.1-43967.eb new file mode 100644 index 00000000..ee0ac536 --- /dev/null +++ b/p/PerformanceReports/PerformanceReports-5.1-43967.eb @@ -0,0 +1,43 @@ +easyblock = 'AllineaBase' + +name = 'PerformanceReports' +version = '5.1-43967' + +homepage = 'http://www.allinea.com/products/allinea-performance-reports' +description = """Allinea Performance Reports are the most effective way +to characterize and understand the performance of HPC application runs. +One single-page HTML report elegantly answers a range of vital questions for any HPC site. + - Is this application well-optimized for the system and the processors it is running on? + - Does it benefit from running at this scale? + - Are there I/O, networking or threading bottlenecks affecting performance? + - Which hardware, software or configuration changes can we make to improve performance further. + - How much energy did this application use? +""" + +toolchain = {'name': 'dummy', 'version': 'dummy'} + +source_urls = [ + # Use manually downloaded sources + # http://content.allinea.com/downloads/allinea-forge-latest-Redhat-6.0-x86_64+MIC-2.1-k1om.tar + # http://content.allinea.com/downloads/allinea-reports-latest-Redhat-6.0-x86_64.tar + # and rename it to format %(namelower)s-%(version)s.tar, so forge-5.1-43967.tar ... +] + +#### IMPORTANT NOTE! #### +# Right now, we do not have support for +# copying Allinea licence file to the +# installation directory +# You have to copy file manually +# to the %(installdir)s/licences/ directory! +########################### + +sources = [SOURCELOWER_TAR] + +skipsteps = ['configure', 'build'] + +sanity_check_paths = { + 'files': ['bin/perf-report'], + 'dirs': ['lib'], +} + +moduleclass = 'debugger' diff --git a/p/Perl/Perl-5.16.3-intel-2015b.eb b/p/Perl/Perl-5.16.3-intel-2015b.eb new file mode 100644 index 00000000..114506ed --- /dev/null +++ b/p/Perl/Perl-5.16.3-intel-2015b.eb @@ -0,0 +1,251 @@ +# Built with EasyBuild version 2.1.1 on 2015-06-30_13-47-16 +name = 'Perl' +version = '5.16.3' + +homepage = 'http://www.perl.org/' +description = """Larry Wall's Practical Extraction and Report Language""" + +toolchain = {'name': 'intel', 'version': '2015b'} +toolchainopts = {'optarch': True, 'pic': True} + +source_urls = ['http://www.cpan.org/src/5.0'] +sources = [SOURCELOWER_TAR_GZ] + +patches = ['exitcode_error.patch'] + +runtest = 'test' + +exts_list = [ + ('IO::String', '1.08', { + 'source_tmpl': 'IO-String-1.08.tar.gz', + 'source_urls': ['http://cpan.metacpan.org/authors/id/G/GA/GAAS/'], + }), + ('Data::Stag', '0.11', { + 'source_tmpl': 'Data-Stag-0.11.tar.gz', + 'source_urls': ['http://cpan.metacpan.org/authors/id/C/CM/CMUNGALL/'], + }), + ('DB_File', '1.827', { + 'source_urls': ['http://cpan.metacpan.org/authors/id/P/PM/PMQS/'], + }), + ('DBI', '1.625', { + 'source_urls': ['http://cpan.metacpan.org/authors/id/T/TI/TIMB/'], + }), + ('Bio::Perl', '1.6.901', { + 'source_tmpl': 'BioPerl-1.6.901.tar.gz', + 'source_urls': ['http://cpan.metacpan.org/authors/id/C/CJ/CJFIELDS/'], + 'patches': ['BioPerl_disable-broken-test.patch'], + }), + ('Sub::Uplevel', '0.24', { + 'source_tmpl': 'Sub-Uplevel-0.24.tar.gz', + 'source_urls': ['http://cpan.metacpan.org/authors/id/D/DA/DAGOLDEN/'], + }), + ('Tree::DAG_Node', '1.11', { + 'source_tmpl': 'Tree-DAG_Node-1.11.tgz', + 'source_urls': ['http://cpan.metacpan.org/authors/id/R/RS/RSAVAGE/'], + }), + ('Try::Tiny', '0.12', { + 'source_tmpl': 'Try-Tiny-0.12.tar.gz', + 'source_urls': ['http://cpan.metacpan.org/authors/id/D/DO/DOY/'], + }), + ('Test::Fatal', '0.010', { + 'source_tmpl': 'Test-Fatal-0.010.tar.gz', + 'source_urls': ['http://cpan.metacpan.org/authors/id/R/RJ/RJBS/'], + }), + ('Test::Exception', '0.31', { + 'source_tmpl': 'Test-Exception-0.31.tar.gz', + 'source_urls': ['http://cpan.metacpan.org/authors/id/A/AD/ADIE/'], + }), + ('Test::Warn', '0.24', { + 'source_tmpl': 'Test-Warn-0.24.tar.gz', + 'source_urls': ['http://cpan.metacpan.org/authors/id/C/CH/CHORNY/'], + }), + ('Test::Requires', '0.06', { + 'source_tmpl': 'Test-Requires-0.06.tar.gz', + 'source_urls': ['http://cpan.metacpan.org/authors/id/T/TO/TOKUHIROM/'], + }), + ('Test::Tester', '0.108', { + 'source_tmpl': 'Test-Tester-0.108.tar.gz', + 'source_urls': ['http://cpan.metacpan.org/authors/id/F/FD/FDALY/'], + }), + ('Params::Util', '1.07', { + 'source_tmpl': 'Params-Util-1.07.tar.gz', + 'source_urls': ['http://cpan.metacpan.org/authors/id/A/AD/ADAMK/'], + }), + ('Sub::Install', '0.926', { + 'source_tmpl': 'Sub-Install-0.926.tar.gz', + 'source_urls': ['http://cpan.metacpan.org/authors/id/R/RJ/RJBS/'], + }), + ('Data::OptList', '0.107', { + 'source_tmpl': 'Data-OptList-0.107.tar.gz', + 'source_urls': ['http://cpan.metacpan.org/authors/id/R/RJ/RJBS/'], + }), + ('Sub::Exporter', '0.985', { + 'source_tmpl': 'Sub-Exporter-0.985.tar.gz', + 'source_urls': ['http://cpan.metacpan.org/authors/id/R/RJ/RJBS/'], + }), + ('Test::Output', '1.01', { + 'source_tmpl': 'Test-Output-1.01.tar.gz', + 'source_urls': ['http://cpan.metacpan.org/authors/id/B/BD/BDFOY/'], + }), + ('Module::Runtime', '0.013', { + 'source_tmpl': 'Module-Runtime-0.013.tar.gz', + 'source_urls': ['http://cpan.metacpan.org/authors/id/Z/ZE/ZEFRAM/'], + }), + ('Module::Implementation', '0.06', { + 'source_tmpl': 'Module-Implementation-0.06.tar.gz', + 'source_urls': ['http://cpan.metacpan.org/authors/id/D/DR/DROLSKY/'], + }), + ('List::MoreUtils', '0.33', { + 'source_tmpl': 'List-MoreUtils-0.33.tar.gz', + 'source_urls': ['http://cpan.metacpan.org/authors/id/A/AD/ADAMK/'], + }), + ('Package::DeprecationManager', '0.13', { + 'source_tmpl': 'Package-DeprecationManager-0.13.tar.gz', + 'source_urls': ['http://cpan.metacpan.org/authors/id/D/DR/DROLSKY/'], + }), + ('Dist::CheckConflicts', '0.02', { + 'source_tmpl': 'Dist-CheckConflicts-0.02.tar.gz', + 'source_urls': ['http://cpan.metacpan.org/authors/id/D/DO/DOY/'], + }), + ('Package::Stash', '0.34', { + 'source_tmpl': 'Package-Stash-0.34.tar.gz', + 'source_urls': ['http://cpan.metacpan.org/authors/id/D/DO/DOY/'], + }), + ('Class::Load', '0.20', { + 'source_tmpl': 'Class-Load-0.20.tar.gz', + 'source_urls': ['http://cpan.metacpan.org/authors/id/D/DR/DROLSKY/'], + }), + ('MRO::Compat', '0.12', { + 'source_tmpl': 'MRO-Compat-0.12.tar.gz', + 'source_urls': ['http://cpan.metacpan.org/authors/id/B/BO/BOBTFISH/'], + }), + ('Sub::Name', '0.05', { + 'source_tmpl': 'Sub-Name-0.05.tar.gz', + 'source_urls': ['http://cpan.metacpan.org/authors/id/F/FL/FLORA/'], + }), + ('Eval::Closure', '0.08', { + 'source_tmpl': 'Eval-Closure-0.08.tar.gz', + 'source_urls': ['http://cpan.metacpan.org/authors/id/D/DO/DOY/'], + }), + ('Sub::Exporter::Progressive', '0.001010', { + 'source_tmpl': 'Sub-Exporter-Progressive-0.001010.tar.gz', + 'source_urls': ['http://cpan.metacpan.org/authors/id/F/FR/FREW/'], + }), + ('Devel::GlobalDestruction', '0.11', { + 'source_tmpl': 'Devel-GlobalDestruction-0.11.tar.gz', + 'source_urls': ['http://cpan.metacpan.org/authors/id/H/HA/HAARG/'], + }), + ('boolean', '0.30', { + 'source_urls': ['http://cpan.metacpan.org/authors/id/I/IN/INGY/'], + }), + ('Tie::IxHash', '1.23', { + 'source_tmpl': 'Tie-IxHash-1.23.tar.gz', + 'source_urls': ['http://cpan.metacpan.org/authors/id/C/CH/CHORNY/'], + }), + ('Moose', '2.0801', { + 'source_urls': ['http://cpan.metacpan.org/authors/id/E/ET/ETHER/'], + }), + ('Params::Validate', '1.07', { + 'source_tmpl': 'Params-Validate-1.07.tar.gz', + 'source_urls': ['http://cpan.metacpan.org/authors/id/D/DR/DROLSKY/'], + }), + ('DateTime::Locale', '0.45', { + 'source_tmpl': 'DateTime-Locale-0.45.tar.gz', + 'source_urls': ['http://cpan.metacpan.org/authors/id/D/DR/DROLSKY/'], + }), + ('Class::Singleton', '1.4', { + 'source_tmpl': 'Class-Singleton-1.4.tar.gz', + 'source_urls': ['http://cpan.metacpan.org/authors/id/A/AB/ABW/'], + }), + ('DateTime::TimeZone', '1.58', { + 'source_tmpl': 'DateTime-TimeZone-1.58.tar.gz', + 'source_urls': ['http://cpan.metacpan.org/authors/id/D/DR/DROLSKY/'], + }), + ('DateTime', '1.01', { + 'source_urls': ['http://cpan.metacpan.org/authors/id/D/DR/DROLSKY/'], + }), + ('Data::Types', '0.09', { + 'source_tmpl': 'Data-Types-0.09.tar.gz', + 'source_urls': ['http://cpan.metacpan.org/authors/id/D/DW/DWHEELER/'], + }), + ('DateTime::Tiny', '1.04', { + 'source_tmpl': 'DateTime-Tiny-1.04.tar.gz', + 'source_urls': ['http://cpan.metacpan.org/authors/id/A/AD/ADAMK/'], + }), + ('File::Slurp', '9999.19', { + 'source_tmpl': 'File-Slurp-9999.19.tar.gz', + 'source_urls': ['http://cpan.metacpan.org/authors/id/U/UR/URI/'], + }), + ('HTTP::Date', '6.02', { + 'source_tmpl': 'HTTP-Date-6.02.tar.gz', + 'source_urls': ['http://cpan.metacpan.org/authors/id/G/GA/GAAS/'], + }), + ('IO::HTML', '1.00', { + 'source_tmpl': 'IO-HTML-1.00.tar.gz', + 'source_urls': ['http://cpan.metacpan.org/authors/id/C/CJ/CJM/'], + }), + ('LWP::MediaTypes', '6.02', { + 'source_tmpl': 'LWP-MediaTypes-6.02.tar.gz', + 'source_urls': ['http://cpan.metacpan.org/authors/id/G/GA/GAAS/'], + }), + ('URI', '1.60', { + 'source_urls': ['http://cpan.metacpan.org/authors/id/G/GA/GAAS/'], + }), + ('HTTP::Request', '6.06', { + 'source_tmpl': 'HTTP-Message-6.06.tar.gz', + 'source_urls': ['http://cpan.metacpan.org/authors/id/G/GA/GAAS/'], + }), + ('HTML::Tagset', '3.20', { + 'source_tmpl': 'HTML-Tagset-3.20.tar.gz', + 'source_urls': ['http://cpan.metacpan.org/authors/id/P/PE/PETDANCE/'], + }), + ('HTML::Entities', '3.70', { + 'source_tmpl': 'HTML-Parser-3.70.tar.gz', + 'source_urls': ['http://cpan.metacpan.org/authors/id/G/GA/GAAS/'], + }), + ('AnyEvent', '7.04', { + 'source_urls': ['http://cpan.metacpan.org/authors/id/M/ML/MLEHMANN/'], + }), + ('Mouse', '1.05', { + 'source_urls': ['http://cpan.metacpan.org/authors/id/G/GF/GFUJI/'], + }), + ('XML::NamespaceSupport', '1.11', { + 'source_tmpl': 'XML-NamespaceSupport-1.11.tar.gz', + 'source_urls': ['http://cpan.metacpan.org/authors/id/P/PE/PERIGRIN/'], + }), + ('XML::SAX::Base', '1.08', { + 'source_tmpl': 'XML-SAX-Base-1.08.tar.gz', + 'source_urls': ['http://cpan.metacpan.org/authors/id/G/GR/GRANTM/'], + }), + ('XML::SAX', '0.99', { + 'source_tmpl': 'XML-SAX-0.99.tar.gz', + 'source_urls': ['http://cpan.metacpan.org/authors/id/G/GR/GRANTM/'], + }), +] + +moduleclass = 'lang' + +# Build statistics +buildstats = [{ + "easybuild-framework_version": "2.1.1", + "easybuild-easyblocks_version": "2.1.1", + "timestamp": 1435664836, + "build_time": 1886.55, + "install_size": 119630230, + "command_line": ['--buildpath=/easybuild/build', '--force', '--installpath=/apps', '--installpath-modules=/apps/modules', '--installpath-software=/apps', '--module-naming-scheme=IT4IModuleNamingScheme', '--modules-footer=/easybuild/templates/modules/jas02_footer.txt', '--repositorypath=/easybuild/file-repository', '--robot=/easybuild/easyconfigs-salomon/easybuild/easyconfigs', '--robot-paths=/easybuild/easyconfigs-salomon/easybuild/easyconfigs', '--skip-test-cases', '--sourcepath=/easybuild/sources', '--try-toolchain="[\'intel\', \'2015b\']"', 'Perl-5.16.3-ictce-5.3.0.eb'], + "modules_tool": ('EnvironmentModulesC', '/usr/bin/modulecmd', '3.2.10'), + "core_count": 28, + "cpu_model": "Intel(R) Xeon(R) CPU E5-2695 v3 @ 2.30GHz", + "cpu_speed": 2299.882, + "cpu_vendor": "Intel", + "gcc_version": "Using built-in specs.; COLLECT_GCC=gcc; COLLECT_LTO_WRAPPER=/apps/all/GCC/5.1.0-binutils-2.25/libexec/gcc/x86_64-unknown-linux-gnu/5.1.0/lto-wrapper; Target: x86_64-unknown-linux-gnu; Configured with: ../configure --enable-languages=c,c++,fortran --enable-lto --enable-checking=release --disable-multilib --enable-shared=yes --enable-static=yes --enable-threads=posix --enable-gold=default --enable-plugins --enable-ld --with-plugin-ld=ld.gold --prefix=/apps/all/GCC/5.1.0-binutils-2.25 --with-local-prefix=/apps/all/GCC/5.1.0-binutils-2.25 --enable-bootstrap --with-isl=/easybuild/build/GCC/5.1.0/dummy--binutils-2.25/gcc-5.1.0/stage2_stuff; Thread model: posix; gcc version 5.1.0 (GCC) ; ", + "glibc_version": "2.12", + "hostname": "login2", + "os_name": "centos", + "os_type": "Linux", + "os_version": "6.6", + "platform_name": "x86_64-unknown-linux", + "python_version": "2.6.6 (r266:84292, Jan 22 2014, 09:42:36) ; [GCC 4.4.7 20120313 (Red Hat 4.4.7-4)]", + "system_gcc_path": "/apps/all/GCC/5.1.0-binutils-2.25/bin/gcc", + "system_python_path": "/usr/bin/python", +}] diff --git a/p/Perl/Perl-5.20.2-GNU-4.9.3-2.25-bare.eb b/p/Perl/Perl-5.20.2-GNU-4.9.3-2.25-bare.eb new file mode 100644 index 00000000..6ab2ad04 --- /dev/null +++ b/p/Perl/Perl-5.20.2-GNU-4.9.3-2.25-bare.eb @@ -0,0 +1,19 @@ +name = 'Perl' +version = '5.20.2' +versionsuffix = '-bare' + +homepage = 'http://www.perl.org/' +description = """Larry Wall's Practical Extraction and Report Language""" + +toolchain = {'name': 'GNU', 'version': '4.9.3-2.25'} +toolchainopts = {'optarch': True, 'pic': True} + +source_urls = ['http://www.cpan.org/src/5.0'] +sources = [SOURCELOWER_TAR_GZ] + +# bare, no extensions +exts_list = [] + +runtest = 'test' + +moduleclass = 'lang' diff --git a/p/Perl/Perl-5.20.2-bare.eb b/p/Perl/Perl-5.20.2-bare.eb new file mode 100644 index 00000000..c18a1edc --- /dev/null +++ b/p/Perl/Perl-5.20.2-bare.eb @@ -0,0 +1,19 @@ +name = 'Perl' +version = '5.20.2' +versionsuffix = '-bare' + +homepage = 'http://www.perl.org/' +description = """Larry Wall's Practical Extraction and Report Language""" + +toolchain = {'name': 'dummy', 'version': ''} +toolchainopts = {'optarch': True, 'pic': True} + +source_urls = ['http://www.cpan.org/src/5.0'] +sources = [SOURCELOWER_TAR_GZ] + +# bare, no extensions +exts_list = [] + +runtest = 'test' + +moduleclass = 'lang' diff --git a/p/Perl/Perl-5.22.2-bare.eb b/p/Perl/Perl-5.22.2-bare.eb new file mode 100644 index 00000000..f2746815 --- /dev/null +++ b/p/Perl/Perl-5.22.2-bare.eb @@ -0,0 +1,19 @@ +name = 'Perl' +version = '5.22.2' +versionsuffix = '-bare' + +homepage = 'http://www.perl.org/' +description = """Larry Wall's Practical Extraction and Report Language""" + +toolchain = {'name': 'dummy', 'version': ''} +toolchainopts = {'optarch': True, 'pic': True} + +source_urls = ['http://www.cpan.org/src/5.0'] +sources = [SOURCELOWER_TAR_GZ] + +# bare, no extensions +exts_list = [] + +runtest = 'test' + +moduleclass = 'lang' diff --git a/p/Perl/Perl-5.22.2-intel-2016a.eb b/p/Perl/Perl-5.22.2-intel-2016a.eb new file mode 100644 index 00000000..c1290fa0 --- /dev/null +++ b/p/Perl/Perl-5.22.2-intel-2016a.eb @@ -0,0 +1,886 @@ +name = 'Perl' +version = '5.22.2' + +homepage = 'http://www.perl.org/' +description = """Larry Wall's Practical Extraction and Report Language""" + +toolchain = {'name': 'intel', 'version': '2016a'} +toolchainopts = {'optarch': True, 'pic': True} + +source_urls = ['http://www.cpan.org/src/%(version_major)s.0'] +sources = [SOURCELOWER_TAR_GZ] + +exts_list = [ + ('Config::General', '2.61', { + 'source_tmpl': 'Config-General-2.61.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/T/TL/TLINDEN'], + }), + ('File::Listing', '6.04', { + 'source_tmpl': 'File-Listing-6.04.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/G/GA/GAAS'], + }), + ('ExtUtils::InstallPaths', '0.011', { + 'source_tmpl': 'ExtUtils-InstallPaths-0.011.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/L/LE/LEONT'], + }), + ('ExtUtils::Helpers', '0.022', { + 'source_tmpl': 'ExtUtils-Helpers-0.022.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/L/LE/LEONT'], + }), + ('Test::Harness', '3.36', { + 'source_tmpl': 'Test-Harness-3.36.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/L/LE/LEONT'], + }), + ('ExtUtils::Config', '0.008', { + 'source_tmpl': 'ExtUtils-Config-0.008.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/L/LE/LEONT'], + }), + ('Module::Build::Tiny', '0.039', { + 'source_tmpl': 'Module-Build-Tiny-0.039.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/L/LE/LEONT'], + }), + ('aliased', '0.34', { + 'source_tmpl': 'aliased-0.34.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/ET/ETHER'], + }), + ('Text::Glob', '0.09', { + 'source_tmpl': 'Text-Glob-0.09.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RC/RCLAMP'], + }), + ('Regexp::Common', '2016020301', { + 'source_tmpl': 'Regexp-Common-2016020301.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/A/AB/ABIGAIL'], + }), + ('GO::Utils', '0.15', { + 'source_tmpl': 'go-perl-0.15.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/C/CM/CMUNGALL'], + }), + ('Module::Pluggable', '5.2', { + 'source_tmpl': 'Module-Pluggable-5.2.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/S/SI/SIMONW'], + }), + ('Test::Fatal', '0.014', { + 'source_tmpl': 'Test-Fatal-0.014.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + }), + ('Test::Warnings', '0.026', { + 'source_tmpl': 'Test-Warnings-0.026.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/ET/ETHER'], + }), + ('DateTime::Locale', '1.03', { + 'source_tmpl': 'DateTime-Locale-1.03.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DR/DROLSKY'], + }), + ('DateTime::TimeZone', '1.98', { + 'source_tmpl': 'DateTime-TimeZone-1.98.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DR/DROLSKY'], + }), + ('Test::Requires', '0.10', { + 'source_tmpl': 'Test-Requires-0.10.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/T/TO/TOKUHIROM'], + }), + ('Module::Implementation', '0.09', { + 'source_tmpl': 'Module-Implementation-0.09.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DR/DROLSKY'], + }), + ('Module::Build', '0.4218', { + 'source_tmpl': 'Module-Build-0.4218.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/L/LE/LEONT'], + }), + ('Module::Runtime', '0.014', { + 'source_tmpl': 'Module-Runtime-0.014.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/Z/ZE/ZEFRAM'], + }), + ('Try::Tiny', '0.24', { + 'source_tmpl': 'Try-Tiny-0.24.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/ET/ETHER'], + }), + ('Params::Validate', '1.24', { + 'source_tmpl': 'Params-Validate-1.24.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DR/DROLSKY'], + }), + ('List::MoreUtils', '0.415', { + 'source_tmpl': 'List-MoreUtils-0.415.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RE/REHSACK'], + }), + ('Exporter::Tiny', '0.042', { + 'source_tmpl': 'Exporter-Tiny-0.042.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/T/TO/TOBYINK'], + }), + ('Class::Singleton', '1.5', { + 'source_tmpl': 'Class-Singleton-1.5.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/S/SH/SHAY'], + }), + ('DateTime', '1.28', { + 'source_tmpl': 'DateTime-1.28.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DR/DROLSKY'], + }), + ('File::Find::Rule::Perl', '1.15', { + 'source_tmpl': 'File-Find-Rule-Perl-1.15.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/ET/ETHER'], + }), + ('Readonly', '2.04', { + 'source_tmpl': 'Readonly-2.04.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/S/SA/SANKO'], + }), + ('Git', '0.41', { + 'source_tmpl': 'Git-0.41.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/M/MS/MSOUTH'], + }), + ('Tree::DAG_Node', '1.29', { + 'source_tmpl': 'Tree-DAG_Node-1.29.tgz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RS/RSAVAGE'], + }), + ('Template', '2.26', { + 'source_tmpl': 'Template-Toolkit-2.26.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/A/AB/ABW'], + }), + ('FreezeThaw', '0.5001', { + 'source_tmpl': 'FreezeThaw-0.5001.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/I/IL/ILYAZ/modules'], + }), + ('DBI', '1.636', { + 'source_tmpl': 'DBI-1.636.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/T/TI/TIMB'], + }), + ('DBD::SQLite', '1.50', { + 'source_tmpl': 'DBD-SQLite-1.50.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/I/IS/ISHIGAKI'], + }), + ('Math::Bezier', '0.01', { + 'source_tmpl': 'Math-Bezier-0.01.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/A/AB/ABW'], + }), + ('Archive::Extract', '0.76', { + 'source_tmpl': 'Archive-Extract-0.76.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/B/BI/BINGOS'], + }), + ('DBIx::Simple', '1.35', { + 'source_tmpl': 'DBIx-Simple-1.35.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/J/JU/JUERD'], + }), + ('Shell', '0.73', { + 'source_tmpl': 'Shell-0.73.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/F/FE/FERREIRA'], + }), + ('File::Spec', '3.62', { + 'source_tmpl': 'PathTools-3.62.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + }), + ('ExtUtils::MakeMaker', '7.18', { + 'source_tmpl': 'ExtUtils-MakeMaker-7.18.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/B/BI/BINGOS'], + }), + ('Test::Simple', '1.302019', { + 'source_tmpl': 'Test-Simple-1.302019.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/EX/EXODIST'], + }), + ('Set::Scalar', '1.29', { + 'source_tmpl': 'Set-Scalar-1.29.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DA/DAVIDO'], + }), + ('IO::Stringy', '2.111', { + 'source_tmpl': 'IO-stringy-2.111.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DS/DSKOLL'], + }), + ('Encode::Locale', '1.05', { + 'source_tmpl': 'Encode-Locale-1.05.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/G/GA/GAAS'], + }), + ('XML::SAX::Base', '1.08', { + 'source_tmpl': 'XML-SAX-Base-1.08.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/G/GR/GRANTM'], + }), + ('XML::NamespaceSupport', '1.11', { + 'source_tmpl': 'XML-NamespaceSupport-1.11.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/P/PE/PERIGRIN'], + }), + ('XML::SAX', '0.99', { + 'source_tmpl': 'XML-SAX-0.99.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/G/GR/GRANTM'], + }), + ('Test::LeakTrace', '0.15', { + 'source_tmpl': 'Test-LeakTrace-0.15.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/G/GF/GFUJI'], + }), + ('Test::Exception', '0.43', { + 'source_tmpl': 'Test-Exception-0.43.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/EX/EXODIST'], + }), + ('Text::Table', '1.130', { + 'source_tmpl': 'Text-Table-1.130.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/S/SH/SHLOMIF'], + }), + ('MIME::Types', '2.13', { + 'source_tmpl': 'MIME-Types-2.13.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/M/MA/MARKOV'], + }), + ('Module::Build::XSUtil', '0.16', { + 'source_tmpl': 'Module-Build-XSUtil-0.16.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/H/HI/HIDEAKIO'], + }), + ('Tie::Function', '0.02', { + 'source_tmpl': 'Tie-Function-0.02.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DA/DAVIDNICO/handy_tied_functions'], + }), + ('Template::Plugin::Number::Format', '1.06', { + 'source_tmpl': 'Template-Plugin-Number-Format-1.06.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DA/DARREN'], + }), + ('HTML::Parser', '3.72', { + 'source_tmpl': 'HTML-Parser-3.72.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/G/GA/GAAS'], + }), + ('Date::Handler', '1.2', { + 'source_tmpl': 'Date-Handler-1.2.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/B/BB/BBEAUSEJ'], + }), + ('Params::Util', '1.07', { + 'source_tmpl': 'Params-Util-1.07.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/A/AD/ADAMK'], + }), + ('IO::HTML', '1.001', { + 'source_tmpl': 'IO-HTML-1.001.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/C/CJ/CJM'], + }), + ('Data::Grove', '0.08', { + 'source_tmpl': 'libxml-perl-0.08.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/K/KM/KMACLEOD'], + }), + ('Class::ISA', '0.36', { + 'source_tmpl': 'Class-ISA-0.36.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/S/SM/SMUELLER'], + }), + ('URI', '1.71', { + 'source_tmpl': 'URI-1.71.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/ET/ETHER'], + }), + ('Ima::DBI', '0.35', { + 'source_tmpl': 'Ima-DBI-0.35.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/P/PE/PERRIN'], + }), + ('Tie::IxHash', '1.23', { + 'source_tmpl': 'Tie-IxHash-1.23.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/C/CH/CHORNY'], + }), + ('GO', '0.04', { + 'source_tmpl': 'go-db-perl-0.04.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/S/SJ/SJCARBON'], + }), + ('Class::DBI::SQLite', '0.11', { + 'source_tmpl': 'Class-DBI-SQLite-0.11.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/M/MI/MIYAGAWA'], + }), + ('Pod::POM', '2.01', { + 'source_tmpl': 'Pod-POM-2.01.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/N/NE/NEILB'], + }), + ('Math::Round', '0.07', { + 'source_tmpl': 'Math-Round-0.07.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/G/GR/GROMMEL'], + }), + ('Text::Diff', '1.44', { + 'source_tmpl': 'Text-Diff-1.44.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/N/NE/NEILB'], + }), + ('Log::Message::Simple', '0.10', { + 'source_tmpl': 'Log-Message-Simple-0.10.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/B/BI/BINGOS'], + }), + ('IO::Socket::SSL', '2.027', { + 'source_tmpl': 'IO-Socket-SSL-2.027.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/S/SU/SULLR'], + }), + ('Fennec::Lite', '0.004', { + 'source_tmpl': 'Fennec-Lite-0.004.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/EX/EXODIST'], + }), + ('Sub::Uplevel', '0.25', { + 'source_tmpl': 'Sub-Uplevel-0.25.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DA/DAGOLDEN'], + }), + ('Meta::Builder', '0.003', { + 'source_tmpl': 'Meta-Builder-0.003.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/EX/EXODIST'], + }), + ('Exporter::Declare', '0.114', { + 'source_tmpl': 'Exporter-Declare-0.114.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/EX/EXODIST'], + }), + ('Getopt::Long', '2.48', { + 'source_tmpl': 'Getopt-Long-2.48.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/J/JV/JV'], + }), + ('Log::Message', '0.08', { + 'source_tmpl': 'Log-Message-0.08.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/B/BI/BINGOS'], + }), + ('Mouse', 'v2.4.5', { + 'source_tmpl': 'Mouse-v2.4.5.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/S/SY/SYOHEX'], + }), + ('Test::Version', '2.03', { + 'source_tmpl': 'Test-Version-2.03.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/P/PL/PLICEASE'], + }), + ('DBIx::Admin::TableInfo', '3.01', { + 'source_tmpl': 'DBIx-Admin-TableInfo-3.01.tgz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RS/RSAVAGE'], + }), + ('Net::HTTP', '6.09', { + 'source_tmpl': 'Net-HTTP-6.09.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/ET/ETHER'], + }), + ('Test::Deep', '1.120', { + 'source_tmpl': 'Test-Deep-1.120.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + }), + ('Test::Warn', '0.30', { + 'source_tmpl': 'Test-Warn-0.30.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/C/CH/CHORNY'], + }), + ('MRO::Compat', '0.12', { + 'source_tmpl': 'MRO-Compat-0.12.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/B/BO/BOBTFISH'], + }), + ('Moo', '2.001001', { + 'source_tmpl': 'Moo-2.001001.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/H/HA/HAARG'], + }), + ('Hash::Merge', '0.200', { + 'source_tmpl': 'Hash-Merge-0.200.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RE/REHSACK'], + }), + ('SQL::Abstract', '1.81', { + 'source_tmpl': 'SQL-Abstract-1.81.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RI/RIBASUSHI'], + }), + ('HTML::Form', '6.03', { + 'source_tmpl': 'HTML-Form-6.03.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/G/GA/GAAS'], + }), + ('File::Copy::Recursive', '0.38', { + 'source_tmpl': 'File-Copy-Recursive-0.38.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DM/DMUEY'], + }), + ('Number::Compare', '0.03', { + 'source_tmpl': 'Number-Compare-0.03.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RC/RCLAMP'], + }), + ('IPC::Run', '0.94', { + 'source_tmpl': 'IPC-Run-0.94.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/T/TO/TODDR'], + }), + ('HTML::Entities::Interpolate', '1.09', { + 'source_tmpl': 'HTML-Entities-Interpolate-1.09.tgz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RS/RSAVAGE'], + }), + ('Test::ClassAPI', '1.06', { + 'source_tmpl': 'Test-ClassAPI-1.06.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/A/AD/ADAMK'], + }), + ('Test::Most', '0.34', { + 'source_tmpl': 'Test-Most-0.34.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/O/OV/OVID'], + }), + ('Class::Accessor', '0.34', { + 'source_tmpl': 'Class-Accessor-0.34.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/K/KA/KASEI'], + }), + ('Test::Differences', '0.64', { + 'source_tmpl': 'Test-Differences-0.64.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DC/DCANTRELL'], + }), + ('HTTP::Tiny', '0.058', { + 'source_tmpl': 'HTTP-Tiny-0.058.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DA/DAGOLDEN'], + }), + ('Package::DeprecationManager', '0.16', { + 'source_tmpl': 'Package-DeprecationManager-0.16.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DR/DROLSKY'], + }), + ('Digest::SHA1', '2.13', { + 'source_tmpl': 'Digest-SHA1-2.13.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/G/GA/GAAS'], + }), + ('Date::Language', '2.30', { + 'source_tmpl': 'TimeDate-2.30.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/G/GB/GBARR'], + }), + ('version', '0.9916', { + 'source_tmpl': 'version-0.9916.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/J/JP/JPEACOCK'], + }), + ('Sub::Uplevel', '0.25', { + 'source_tmpl': 'Sub-Uplevel-0.25.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DA/DAGOLDEN'], + }), + ('XML::Bare', '0.53', { + 'source_tmpl': 'XML-Bare-0.53.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/C/CO/CODECHILD'], + 'patches': ['XML-Bare-0.53_icc.patch'], + }), + ('Dist::CheckConflicts', '0.11', { + 'source_tmpl': 'Dist-CheckConflicts-0.11.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DO/DOY'], + }), + ('Sub::Name', '0.15', { + 'source_tmpl': 'Sub-Name-0.15.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/ET/ETHER'], + }), + ('Time::Piece', '1.31', { + 'source_tmpl': 'Time-Piece-1.31.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/ES/ESAYM'], + }), + ('Digest::HMAC', '1.03', { + 'source_tmpl': 'Digest-HMAC-1.03.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/G/GA/GAAS'], + }), + ('HTTP::Negotiate', '6.01', { + 'source_tmpl': 'HTTP-Negotiate-6.01.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/G/GA/GAAS'], + }), + ('MIME::Lite', '3.030', { + 'source_tmpl': 'MIME-Lite-3.030.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + }), + ('Crypt::Rijndael', '1.13', { + 'source_tmpl': 'Crypt-Rijndael-1.13.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/L/LE/LEONT'], + }), + ('B::Lint', '1.20', { + 'source_tmpl': 'B-Lint-1.20.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + }), + ('Canary::Stability', '2011', { + 'source_tmpl': 'Canary-Stability-2011.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/M/ML/MLEHMANN'], + }), + ('AnyEvent', '7.12', { + 'source_tmpl': 'AnyEvent-7.12.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/M/ML/MLEHMANN'], + }), + ('Object::Accessor', '0.48', { + 'source_tmpl': 'Object-Accessor-0.48.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/B/BI/BINGOS'], + }), + ('Data::UUID', '1.221', { + 'source_tmpl': 'Data-UUID-1.221.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + }), + ('Test::Pod', '1.51', { + 'source_tmpl': 'Test-Pod-1.51.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/ET/ETHER'], + }), + ('AppConfig', '1.71', { + 'source_tmpl': 'AppConfig-1.71.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/N/NE/NEILB'], + }), + ('Net::SMTP::SSL', '1.03', { + 'source_tmpl': 'Net-SMTP-SSL-1.03.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + }), + ('XML::Tiny', '2.06', { + 'source_tmpl': 'XML-Tiny-2.06.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DC/DCANTRELL'], + }), + ('HTML::Tagset', '3.20', { + 'source_tmpl': 'HTML-Tagset-3.20.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/P/PE/PETDANCE'], + }), + ('HTML::Tree', '5.03', { + 'source_tmpl': 'HTML-Tree-5.03.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/C/CJ/CJM'], + }), + ('Devel::GlobalDestruction', '0.13', { + 'source_tmpl': 'Devel-GlobalDestruction-0.13.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/H/HA/HAARG'], + }), + ('WWW::RobotRules', '6.02', { + 'source_tmpl': 'WWW-RobotRules-6.02.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/G/GA/GAAS'], + }), + ('Expect', '1.32', { + 'source_tmpl': 'Expect-1.32.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/S/SZ/SZABGAB'], + }), + ('Term::UI', '0.46', { + 'source_tmpl': 'Term-UI-0.46.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/B/BI/BINGOS'], + }), + ('Net::SNMP', 'v6.0.1', { + 'source_tmpl': 'Net-SNMP-v6.0.1.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DT/DTOWN'], + }), + ('XML::SAX::Writer', '0.56', { + 'source_tmpl': 'XML-SAX-Writer-0.56.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/P/PE/PERIGRIN'], + }), + ('Statistics::Descriptive', '3.0612', { + 'source_tmpl': 'Statistics-Descriptive-3.0612.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/S/SH/SHLOMIF'], + }), + ('Class::Load', '0.23', { + 'source_tmpl': 'Class-Load-0.23.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/ET/ETHER'], + }), + ('LWP::Simple', '6.15', { + 'source_tmpl': 'libwww-perl-6.15.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/ET/ETHER'], + }), + ('Time::Piece::MySQL', '0.06', { + 'source_tmpl': 'Time-Piece-MySQL-0.06.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/K/KA/KASEI'], + }), + ('Package::Stash::XS', '0.28', { + 'source_tmpl': 'Package-Stash-XS-0.28.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DO/DOY'], + }), + ('GD::Graph', '1.52', { + 'source_tmpl': 'GDGraph-1.52.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RU/RUZ'], + }), + ('Set::Array', '0.30', { + 'source_tmpl': 'Set-Array-0.30.tgz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RS/RSAVAGE'], + }), + ('boolean', '0.45', { + 'source_tmpl': 'boolean-0.45.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/I/IN/INGY'], + }), + ('Number::Format', '1.75', { + 'source_tmpl': 'Number-Format-1.75.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/W/WR/WRW'], + }), + ('Data::Stag', '0.14', { + 'source_tmpl': 'Data-Stag-0.14.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/C/CM/CMUNGALL'], + }), + ('Test::NoWarnings', '1.04', { + 'source_tmpl': 'Test-NoWarnings-1.04.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/A/AD/ADAMK'], + }), + ('Crypt::DES', '2.07', { + 'source_tmpl': 'Crypt-DES-2.07.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DP/DPARIS'], + }), + ('Exporter', '5.72', { + 'source_tmpl': 'Exporter-5.72.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/T/TO/TODDR'], + }), + ('Class::Inspector', '1.28', { + 'source_tmpl': 'Class-Inspector-1.28.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/A/AD/ADAMK'], + }), + ('Parse::RecDescent', '1.967013', { + 'source_tmpl': 'Parse-RecDescent-1.967013.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/J/JT/JTBRAUN'], + }), + ('Carp', '1.38', { + 'source_tmpl': 'Carp-1.38.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + }), + ('XML::XPath', '1.36', { + 'source_tmpl': 'XML-XPath-1.36.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/M/MA/MANWAR'], + }), + ('Capture::Tiny', '0.40', { + 'source_tmpl': 'Capture-Tiny-0.40.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DA/DAGOLDEN'], + }), + ('JSON', '2.90', { + 'source_tmpl': 'JSON-2.90.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/M/MA/MAKAMAKA'], + }), + ('Sub::Exporter', '0.987', { + 'source_tmpl': 'Sub-Exporter-0.987.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + }), + ('Class::Load::XS', '0.09', { + 'source_tmpl': 'Class-Load-XS-0.09.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/ET/ETHER'], + }), + ('Set::IntSpan::Fast', '1.15', { + 'source_tmpl': 'Set-IntSpan-Fast-1.15.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/A/AN/ANDYA'], + }), + ('Sub::Exporter::Progressive', '0.001011', { + 'source_tmpl': 'Sub-Exporter-Progressive-0.001011.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/F/FR/FREW'], + }), + ('Data::Dumper::Concise', '2.022', { + 'source_tmpl': 'Data-Dumper-Concise-2.022.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/F/FR/FREW'], + }), + ('File::Slurp::Tiny', '0.004', { + 'source_tmpl': 'File-Slurp-Tiny-0.004.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/L/LE/LEONT'], + }), + ('Algorithm::Diff', '1.1903', { + 'source_tmpl': 'Algorithm-Diff-1.1903.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/T/TY/TYEMQ'], + }), + ('AnyData', '0.12', { + 'source_tmpl': 'AnyData-0.12.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RE/REHSACK'], + }), + ('Text::Iconv', '1.7', { + 'source_tmpl': 'Text-Iconv-1.7.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/M/MP/MPIOTR'], + }), + ('Class::Data::Inheritable', '0.08', { + 'source_tmpl': 'Class-Data-Inheritable-0.08.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/T/TM/TMTM'], + }), + ('Text::Balanced', '2.03', { + 'source_tmpl': 'Text-Balanced-2.03.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/S/SH/SHAY'], + }), + ('strictures', '2.000003', { + 'source_tmpl': 'strictures-2.000003.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/H/HA/HAARG'], + }), + ('Switch', '2.17', { + 'source_tmpl': 'Switch-2.17.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/C/CH/CHORNY'], + }), + ('File::Which', '1.21', { + 'source_tmpl': 'File-Which-1.21.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/P/PL/PLICEASE'], + }), + ('Email::Date::Format', '1.005', { + 'source_tmpl': 'Email-Date-Format-1.005.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + }), + ('Error', '0.17024', { + 'source_tmpl': 'Error-0.17024.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/S/SH/SHLOMIF'], + }), + ('Mock::Quick', '1.110', { + 'source_tmpl': 'Mock-Quick-1.110.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/EX/EXODIST'], + }), + ('Text::CSV', '1.33', { + 'source_tmpl': 'Text-CSV-1.33.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/M/MA/MAKAMAKA'], + }), + ('Test::Output', '1.03', { + 'source_tmpl': 'Test-Output-1.03.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/B/BD/BDFOY'], + }), + ('Class::DBI', '3.0.17', { + 'source_tmpl': 'Class-DBI-v3.0.17.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/T/TM/TMTM'], + }), + ('List::AllUtils', '0.10', { + 'source_tmpl': 'List-AllUtils-0.10.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DR/DROLSKY'], + }), + ('UNIVERSAL::moniker', '0.08', { + 'source_tmpl': 'UNIVERSAL-moniker-0.08.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/K/KA/KASEI'], + }), + ('Exception::Class', '1.40', { + 'source_tmpl': 'Exception-Class-1.40.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DR/DROLSKY'], + }), + ('File::CheckTree', '4.42', { + 'source_tmpl': 'File-CheckTree-4.42.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + }), + ('Math::VecStat', '0.08', { + 'source_tmpl': 'Math-VecStat-0.08.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/A/AS/ASPINELLI'], + }), + ('Pod::LaTeX', '0.61', { + 'source_tmpl': 'Pod-LaTeX-0.61.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/T/TJ/TJENNESS'], + }), + ('Eval::Closure', '0.13', { + 'source_tmpl': 'Eval-Closure-0.13.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DO/DOY'], + }), + ('HTTP::Request', '6.11', { + 'source_tmpl': 'HTTP-Message-6.11.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/ET/ETHER'], + }), + ('XML::Twig', '3.49', { + 'source_tmpl': 'XML-Twig-3.49.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/M/MI/MIROD'], + }), + ('IO::String', '1.08', { + 'source_tmpl': 'IO-String-1.08.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/G/GA/GAAS'], + }), + ('XML::Simple', '2.22', { + 'source_tmpl': 'XML-Simple-2.22.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/G/GR/GRANTM'], + }), + ('Sub::Install', '0.928', { + 'source_tmpl': 'Sub-Install-0.928.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + }), + ('HTTP::Cookies', '6.01', { + 'source_tmpl': 'HTTP-Cookies-6.01.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/G/GA/GAAS'], + }), + ('Pod::Plainer', '1.04', { + 'source_tmpl': 'Pod-Plainer-1.04.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RM/RMBARKER'], + }), + ('Test::Exception::LessClever', '0.006', { + 'source_tmpl': 'Test-Exception-LessClever-0.006.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/EX/EXODIST'], + }), + ('LWP::MediaTypes', '6.02', { + 'source_tmpl': 'LWP-MediaTypes-6.02.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/G/GA/GAAS'], + }), + ('Scalar::Util', '1.45', { + 'source_tmpl': 'Scalar-List-Utils-1.45.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/P/PE/PEVANS'], + }), + ('Data::Section::Simple', '0.07', { + 'source_tmpl': 'Data-Section-Simple-0.07.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/M/MI/MIYAGAWA'], + }), + ('Class::Trigger', '0.14', { + 'source_tmpl': 'Class-Trigger-0.14.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/M/MI/MIYAGAWA'], + }), + ('HTTP::Daemon', '6.01', { + 'source_tmpl': 'HTTP-Daemon-6.01.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/G/GA/GAAS'], + }), + ('File::HomeDir', '1.00', { + 'source_tmpl': 'File-HomeDir-1.00.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/A/AD/ADAMK'], + }), + ('HTTP::Date', '6.02', { + 'source_tmpl': 'HTTP-Date-6.02.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/G/GA/GAAS'], + }), + ('Authen::SASL', '2.16', { + 'source_tmpl': 'Authen-SASL-2.16.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/G/GB/GBARR'], + }), + ('Clone', '0.38', { + 'source_tmpl': 'Clone-0.38.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/G/GA/GARU'], + }), + ('Data::Types', '0.09', { + 'source_tmpl': 'Data-Types-0.09.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DW/DWHEELER'], + }), + ('Import::Into', '1.002005', { + 'source_tmpl': 'Import-Into-1.002005.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/H/HA/HAARG'], + }), + ('DateTime::Tiny', '1.04', { + 'source_tmpl': 'DateTime-Tiny-1.04.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/A/AD/ADAMK'], + }), + ('DBD::AnyData', '0.110', { + 'source_tmpl': 'DBD-AnyData-0.110.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RE/REHSACK'], + }), + ('Text::Format', '0.59', { + 'source_tmpl': 'Text-Format-0.59.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/S/SH/SHLOMIF'], + }), + ('Devel::CheckCompiler', '0.06', { + 'source_tmpl': 'Devel-CheckCompiler-0.06.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/S/SY/SYOHEX'], + }), + ('Log::Handler', '0.84', { + 'source_tmpl': 'Log-Handler-0.84.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/B/BL/BLOONIX'], + }), + ('DBIx::ContextualFetch', '1.03', { + 'source_tmpl': 'DBIx-ContextualFetch-1.03.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/T/TM/TMTM'], + }), + ('Devel::StackTrace', '2.01', { + 'source_tmpl': 'Devel-StackTrace-2.01.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DR/DROLSKY'], + }), + ('Term::ReadKey', '2.33', { + 'source_tmpl': 'TermReadKey-2.33.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/J/JS/JSTOWE'], + }), + ('Set::IntSpan', '1.19', { + 'source_tmpl': 'Set-IntSpan-1.19.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/S/SW/SWMCD'], + }), + ('Moose', '2.1801', { + 'source_tmpl': 'Moose-2.1801.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/ET/ETHER'], + }), + ('Algorithm::Dependency', '1.110', { + 'source_tmpl': 'Algorithm-Dependency-1.110.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/A/AD/ADAMK'], + }), + ('Font::TTF', '1.05', { + 'source_tmpl': 'Font-TTF-1.05.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/M/MH/MHOSKEN'], + }), + ('IPC::Run3', '0.048', { + 'source_tmpl': 'IPC-Run3-0.048.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + }), + ('File::Find::Rule', '0.34', { + 'source_tmpl': 'File-Find-Rule-0.34.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RC/RCLAMP'], + }), + ('SQL::Statement', '1.410', { + 'source_tmpl': 'SQL-Statement-1.410.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RE/REHSACK'], + }), + ('File::Slurp', '9999.19', { + 'source_tmpl': 'File-Slurp-9999.19.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/U/UR/URI'], + }), + ('Package::Stash', '0.37', { + 'source_tmpl': 'Package-Stash-0.37.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DO/DOY'], + }), + ('Data::OptList', '0.110', { + 'source_tmpl': 'Data-OptList-0.110.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + }), + ('CPANPLUS', '0.9160', { + 'source_tmpl': 'CPANPLUS-0.9160.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/B/BI/BINGOS'], + }), + ('IO::Tty', '1.12', { + 'source_tmpl': 'IO-Tty-1.12.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/T/TO/TODDR'], + }), + ('Text::Soundex', '3.05', { + 'source_tmpl': 'Text-Soundex-3.05.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + }), + ('Lingua::EN::PluralToSingular', '0.18', { + 'source_tmpl': 'Lingua-EN-PluralToSingular-0.18.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/B/BK/BKB'], + }), + ('Want', '0.29', { + 'source_tmpl': 'Want-0.29.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RO/ROBIN'], + }), + ('Cwd::Guard', '0.05', { + 'source_tmpl': 'Cwd-Guard-0.05.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/K/KA/KAZEBURO'], + }), + ('Bundle::BioPerl', '2.1.9', { + 'source_tmpl': 'Bundle-BioPerl-2.1.9.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/C/CJ/CJFIELDS'], + }), + ('Mail::Util', '2.18', { + 'source_tmpl': 'MailTools-2.18.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/M/MA/MARKOV'], + }), +] +exts_list = [] + +moduleclass = 'lang' diff --git a/p/Perl/Perl-5.22.2-intel-2017.00.eb b/p/Perl/Perl-5.22.2-intel-2017.00.eb new file mode 100644 index 00000000..914a89fc --- /dev/null +++ b/p/Perl/Perl-5.22.2-intel-2017.00.eb @@ -0,0 +1,886 @@ +name = 'Perl' +version = '5.22.2' + +homepage = 'http://www.perl.org/' +description = """Larry Wall's Practical Extraction and Report Language""" + +toolchain = {'name': 'intel', 'version': '2017.00'} +toolchainopts = {'optarch': True, 'pic': True} + +source_urls = ['http://www.cpan.org/src/%(version_major)s.0'] +sources = [SOURCELOWER_TAR_GZ] + +exts_list = [ + ('Config::General', '2.61', { + 'source_tmpl': 'Config-General-2.61.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/T/TL/TLINDEN'], + }), + ('File::Listing', '6.04', { + 'source_tmpl': 'File-Listing-6.04.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/G/GA/GAAS'], + }), + ('ExtUtils::InstallPaths', '0.011', { + 'source_tmpl': 'ExtUtils-InstallPaths-0.011.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/L/LE/LEONT'], + }), + ('ExtUtils::Helpers', '0.022', { + 'source_tmpl': 'ExtUtils-Helpers-0.022.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/L/LE/LEONT'], + }), + ('Test::Harness', '3.36', { + 'source_tmpl': 'Test-Harness-3.36.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/L/LE/LEONT'], + }), + ('ExtUtils::Config', '0.008', { + 'source_tmpl': 'ExtUtils-Config-0.008.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/L/LE/LEONT'], + }), + ('Module::Build::Tiny', '0.039', { + 'source_tmpl': 'Module-Build-Tiny-0.039.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/L/LE/LEONT'], + }), + ('aliased', '0.34', { + 'source_tmpl': 'aliased-0.34.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/ET/ETHER'], + }), + ('Text::Glob', '0.09', { + 'source_tmpl': 'Text-Glob-0.09.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RC/RCLAMP'], + }), + ('Regexp::Common', '2016020301', { + 'source_tmpl': 'Regexp-Common-2016020301.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/A/AB/ABIGAIL'], + }), + ('GO::Utils', '0.15', { + 'source_tmpl': 'go-perl-0.15.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/C/CM/CMUNGALL'], + }), + ('Module::Pluggable', '5.2', { + 'source_tmpl': 'Module-Pluggable-5.2.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/S/SI/SIMONW'], + }), + ('Test::Fatal', '0.014', { + 'source_tmpl': 'Test-Fatal-0.014.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + }), + ('Test::Warnings', '0.026', { + 'source_tmpl': 'Test-Warnings-0.026.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/ET/ETHER'], + }), + ('DateTime::Locale', '1.03', { + 'source_tmpl': 'DateTime-Locale-1.03.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DR/DROLSKY'], + }), + ('DateTime::TimeZone', '1.98', { + 'source_tmpl': 'DateTime-TimeZone-1.98.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DR/DROLSKY'], + }), + ('Test::Requires', '0.10', { + 'source_tmpl': 'Test-Requires-0.10.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/T/TO/TOKUHIROM'], + }), + ('Module::Implementation', '0.09', { + 'source_tmpl': 'Module-Implementation-0.09.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DR/DROLSKY'], + }), + ('Module::Build', '0.4218', { + 'source_tmpl': 'Module-Build-0.4218.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/L/LE/LEONT'], + }), + ('Module::Runtime', '0.014', { + 'source_tmpl': 'Module-Runtime-0.014.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/Z/ZE/ZEFRAM'], + }), + ('Try::Tiny', '0.24', { + 'source_tmpl': 'Try-Tiny-0.24.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/ET/ETHER'], + }), + ('Params::Validate', '1.24', { + 'source_tmpl': 'Params-Validate-1.24.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DR/DROLSKY'], + }), + ('List::MoreUtils', '0.415', { + 'source_tmpl': 'List-MoreUtils-0.415.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RE/REHSACK'], + }), + ('Exporter::Tiny', '0.042', { + 'source_tmpl': 'Exporter-Tiny-0.042.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/T/TO/TOBYINK'], + }), + ('Class::Singleton', '1.5', { + 'source_tmpl': 'Class-Singleton-1.5.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/S/SH/SHAY'], + }), + ('DateTime', '1.28', { + 'source_tmpl': 'DateTime-1.28.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DR/DROLSKY'], + }), + ('File::Find::Rule::Perl', '1.15', { + 'source_tmpl': 'File-Find-Rule-Perl-1.15.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/ET/ETHER'], + }), + ('Readonly', '2.04', { + 'source_tmpl': 'Readonly-2.04.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/S/SA/SANKO'], + }), + ('Git', '0.41', { + 'source_tmpl': 'Git-0.41.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/M/MS/MSOUTH'], + }), + ('Tree::DAG_Node', '1.29', { + 'source_tmpl': 'Tree-DAG_Node-1.29.tgz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RS/RSAVAGE'], + }), + ('Template', '2.26', { + 'source_tmpl': 'Template-Toolkit-2.26.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/A/AB/ABW'], + }), + ('FreezeThaw', '0.5001', { + 'source_tmpl': 'FreezeThaw-0.5001.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/I/IL/ILYAZ/modules'], + }), + ('DBI', '1.636', { + 'source_tmpl': 'DBI-1.636.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/T/TI/TIMB'], + }), + ('DBD::SQLite', '1.50', { + 'source_tmpl': 'DBD-SQLite-1.50.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/I/IS/ISHIGAKI'], + }), + ('Math::Bezier', '0.01', { + 'source_tmpl': 'Math-Bezier-0.01.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/A/AB/ABW'], + }), + ('Archive::Extract', '0.76', { + 'source_tmpl': 'Archive-Extract-0.76.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/B/BI/BINGOS'], + }), + ('DBIx::Simple', '1.35', { + 'source_tmpl': 'DBIx-Simple-1.35.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/J/JU/JUERD'], + }), + ('Shell', '0.73', { + 'source_tmpl': 'Shell-0.73.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/F/FE/FERREIRA'], + }), + ('File::Spec', '3.62', { + 'source_tmpl': 'PathTools-3.62.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + }), + ('ExtUtils::MakeMaker', '7.18', { + 'source_tmpl': 'ExtUtils-MakeMaker-7.18.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/B/BI/BINGOS'], + }), + ('Test::Simple', '1.302019', { + 'source_tmpl': 'Test-Simple-1.302019.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/EX/EXODIST'], + }), + ('Set::Scalar', '1.29', { + 'source_tmpl': 'Set-Scalar-1.29.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DA/DAVIDO'], + }), + ('IO::Stringy', '2.111', { + 'source_tmpl': 'IO-stringy-2.111.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DS/DSKOLL'], + }), + ('Encode::Locale', '1.05', { + 'source_tmpl': 'Encode-Locale-1.05.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/G/GA/GAAS'], + }), + ('XML::SAX::Base', '1.08', { + 'source_tmpl': 'XML-SAX-Base-1.08.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/G/GR/GRANTM'], + }), + ('XML::NamespaceSupport', '1.11', { + 'source_tmpl': 'XML-NamespaceSupport-1.11.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/P/PE/PERIGRIN'], + }), + ('XML::SAX', '0.99', { + 'source_tmpl': 'XML-SAX-0.99.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/G/GR/GRANTM'], + }), + ('Test::LeakTrace', '0.15', { + 'source_tmpl': 'Test-LeakTrace-0.15.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/G/GF/GFUJI'], + }), + ('Test::Exception', '0.43', { + 'source_tmpl': 'Test-Exception-0.43.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/EX/EXODIST'], + }), + ('Text::Table', '1.130', { + 'source_tmpl': 'Text-Table-1.130.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/S/SH/SHLOMIF'], + }), + ('MIME::Types', '2.13', { + 'source_tmpl': 'MIME-Types-2.13.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/M/MA/MARKOV'], + }), + ('Module::Build::XSUtil', '0.16', { + 'source_tmpl': 'Module-Build-XSUtil-0.16.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/H/HI/HIDEAKIO'], + }), + ('Tie::Function', '0.02', { + 'source_tmpl': 'Tie-Function-0.02.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DA/DAVIDNICO/handy_tied_functions'], + }), + ('Template::Plugin::Number::Format', '1.06', { + 'source_tmpl': 'Template-Plugin-Number-Format-1.06.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DA/DARREN'], + }), + ('HTML::Parser', '3.72', { + 'source_tmpl': 'HTML-Parser-3.72.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/G/GA/GAAS'], + }), + ('Date::Handler', '1.2', { + 'source_tmpl': 'Date-Handler-1.2.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/B/BB/BBEAUSEJ'], + }), + ('Params::Util', '1.07', { + 'source_tmpl': 'Params-Util-1.07.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/A/AD/ADAMK'], + }), + ('IO::HTML', '1.001', { + 'source_tmpl': 'IO-HTML-1.001.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/C/CJ/CJM'], + }), + ('Data::Grove', '0.08', { + 'source_tmpl': 'libxml-perl-0.08.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/K/KM/KMACLEOD'], + }), + ('Class::ISA', '0.36', { + 'source_tmpl': 'Class-ISA-0.36.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/S/SM/SMUELLER'], + }), + ('URI', '1.71', { + 'source_tmpl': 'URI-1.71.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/ET/ETHER'], + }), + ('Ima::DBI', '0.35', { + 'source_tmpl': 'Ima-DBI-0.35.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/P/PE/PERRIN'], + }), + ('Tie::IxHash', '1.23', { + 'source_tmpl': 'Tie-IxHash-1.23.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/C/CH/CHORNY'], + }), + ('GO', '0.04', { + 'source_tmpl': 'go-db-perl-0.04.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/S/SJ/SJCARBON'], + }), + ('Class::DBI::SQLite', '0.11', { + 'source_tmpl': 'Class-DBI-SQLite-0.11.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/M/MI/MIYAGAWA'], + }), + ('Pod::POM', '2.01', { + 'source_tmpl': 'Pod-POM-2.01.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/N/NE/NEILB'], + }), + ('Math::Round', '0.07', { + 'source_tmpl': 'Math-Round-0.07.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/G/GR/GROMMEL'], + }), + ('Text::Diff', '1.44', { + 'source_tmpl': 'Text-Diff-1.44.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/N/NE/NEILB'], + }), + ('Log::Message::Simple', '0.10', { + 'source_tmpl': 'Log-Message-Simple-0.10.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/B/BI/BINGOS'], + }), + ('IO::Socket::SSL', '2.027', { + 'source_tmpl': 'IO-Socket-SSL-2.027.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/S/SU/SULLR'], + }), + ('Fennec::Lite', '0.004', { + 'source_tmpl': 'Fennec-Lite-0.004.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/EX/EXODIST'], + }), + ('Sub::Uplevel', '0.25', { + 'source_tmpl': 'Sub-Uplevel-0.25.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DA/DAGOLDEN'], + }), + ('Meta::Builder', '0.003', { + 'source_tmpl': 'Meta-Builder-0.003.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/EX/EXODIST'], + }), + ('Exporter::Declare', '0.114', { + 'source_tmpl': 'Exporter-Declare-0.114.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/EX/EXODIST'], + }), + ('Getopt::Long', '2.48', { + 'source_tmpl': 'Getopt-Long-2.48.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/J/JV/JV'], + }), + ('Log::Message', '0.08', { + 'source_tmpl': 'Log-Message-0.08.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/B/BI/BINGOS'], + }), + ('Mouse', 'v2.4.5', { + 'source_tmpl': 'Mouse-v2.4.5.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/S/SY/SYOHEX'], + }), + ('Test::Version', '2.03', { + 'source_tmpl': 'Test-Version-2.03.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/P/PL/PLICEASE'], + }), + ('DBIx::Admin::TableInfo', '3.01', { + 'source_tmpl': 'DBIx-Admin-TableInfo-3.01.tgz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RS/RSAVAGE'], + }), + ('Net::HTTP', '6.09', { + 'source_tmpl': 'Net-HTTP-6.09.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/ET/ETHER'], + }), + ('Test::Deep', '1.120', { + 'source_tmpl': 'Test-Deep-1.120.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + }), + ('Test::Warn', '0.30', { + 'source_tmpl': 'Test-Warn-0.30.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/C/CH/CHORNY'], + }), + ('MRO::Compat', '0.12', { + 'source_tmpl': 'MRO-Compat-0.12.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/B/BO/BOBTFISH'], + }), + ('Moo', '2.001001', { + 'source_tmpl': 'Moo-2.001001.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/H/HA/HAARG'], + }), + ('Hash::Merge', '0.200', { + 'source_tmpl': 'Hash-Merge-0.200.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RE/REHSACK'], + }), + ('SQL::Abstract', '1.81', { + 'source_tmpl': 'SQL-Abstract-1.81.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RI/RIBASUSHI'], + }), + ('HTML::Form', '6.03', { + 'source_tmpl': 'HTML-Form-6.03.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/G/GA/GAAS'], + }), + ('File::Copy::Recursive', '0.38', { + 'source_tmpl': 'File-Copy-Recursive-0.38.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DM/DMUEY'], + }), + ('Number::Compare', '0.03', { + 'source_tmpl': 'Number-Compare-0.03.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RC/RCLAMP'], + }), + ('IPC::Run', '0.94', { + 'source_tmpl': 'IPC-Run-0.94.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/T/TO/TODDR'], + }), + ('HTML::Entities::Interpolate', '1.09', { + 'source_tmpl': 'HTML-Entities-Interpolate-1.09.tgz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RS/RSAVAGE'], + }), + ('Test::ClassAPI', '1.06', { + 'source_tmpl': 'Test-ClassAPI-1.06.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/A/AD/ADAMK'], + }), + ('Test::Most', '0.34', { + 'source_tmpl': 'Test-Most-0.34.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/O/OV/OVID'], + }), + ('Class::Accessor', '0.34', { + 'source_tmpl': 'Class-Accessor-0.34.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/K/KA/KASEI'], + }), + ('Test::Differences', '0.64', { + 'source_tmpl': 'Test-Differences-0.64.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DC/DCANTRELL'], + }), + ('HTTP::Tiny', '0.058', { + 'source_tmpl': 'HTTP-Tiny-0.058.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DA/DAGOLDEN'], + }), + ('Package::DeprecationManager', '0.16', { + 'source_tmpl': 'Package-DeprecationManager-0.16.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DR/DROLSKY'], + }), + ('Digest::SHA1', '2.13', { + 'source_tmpl': 'Digest-SHA1-2.13.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/G/GA/GAAS'], + }), + ('Date::Language', '2.30', { + 'source_tmpl': 'TimeDate-2.30.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/G/GB/GBARR'], + }), + ('version', '0.9916', { + 'source_tmpl': 'version-0.9916.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/J/JP/JPEACOCK'], + }), + ('Sub::Uplevel', '0.25', { + 'source_tmpl': 'Sub-Uplevel-0.25.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DA/DAGOLDEN'], + }), + ('XML::Bare', '0.53', { + 'source_tmpl': 'XML-Bare-0.53.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/C/CO/CODECHILD'], + 'patches': ['XML-Bare-0.53_icc.patch'], + }), + ('Dist::CheckConflicts', '0.11', { + 'source_tmpl': 'Dist-CheckConflicts-0.11.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DO/DOY'], + }), + ('Sub::Name', '0.15', { + 'source_tmpl': 'Sub-Name-0.15.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/ET/ETHER'], + }), + ('Time::Piece', '1.31', { + 'source_tmpl': 'Time-Piece-1.31.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/ES/ESAYM'], + }), + ('Digest::HMAC', '1.03', { + 'source_tmpl': 'Digest-HMAC-1.03.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/G/GA/GAAS'], + }), + ('HTTP::Negotiate', '6.01', { + 'source_tmpl': 'HTTP-Negotiate-6.01.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/G/GA/GAAS'], + }), + ('MIME::Lite', '3.030', { + 'source_tmpl': 'MIME-Lite-3.030.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + }), + ('Crypt::Rijndael', '1.13', { + 'source_tmpl': 'Crypt-Rijndael-1.13.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/L/LE/LEONT'], + }), + ('B::Lint', '1.20', { + 'source_tmpl': 'B-Lint-1.20.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + }), + ('Canary::Stability', '2011', { + 'source_tmpl': 'Canary-Stability-2011.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/M/ML/MLEHMANN'], + }), + ('AnyEvent', '7.12', { + 'source_tmpl': 'AnyEvent-7.12.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/M/ML/MLEHMANN'], + }), + ('Object::Accessor', '0.48', { + 'source_tmpl': 'Object-Accessor-0.48.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/B/BI/BINGOS'], + }), + ('Data::UUID', '1.221', { + 'source_tmpl': 'Data-UUID-1.221.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + }), + ('Test::Pod', '1.51', { + 'source_tmpl': 'Test-Pod-1.51.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/ET/ETHER'], + }), + ('AppConfig', '1.71', { + 'source_tmpl': 'AppConfig-1.71.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/N/NE/NEILB'], + }), + ('Net::SMTP::SSL', '1.03', { + 'source_tmpl': 'Net-SMTP-SSL-1.03.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + }), + ('XML::Tiny', '2.06', { + 'source_tmpl': 'XML-Tiny-2.06.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DC/DCANTRELL'], + }), + ('HTML::Tagset', '3.20', { + 'source_tmpl': 'HTML-Tagset-3.20.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/P/PE/PETDANCE'], + }), + ('HTML::Tree', '5.03', { + 'source_tmpl': 'HTML-Tree-5.03.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/C/CJ/CJM'], + }), + ('Devel::GlobalDestruction', '0.13', { + 'source_tmpl': 'Devel-GlobalDestruction-0.13.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/H/HA/HAARG'], + }), + ('WWW::RobotRules', '6.02', { + 'source_tmpl': 'WWW-RobotRules-6.02.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/G/GA/GAAS'], + }), + ('Expect', '1.32', { + 'source_tmpl': 'Expect-1.32.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/S/SZ/SZABGAB'], + }), + ('Term::UI', '0.46', { + 'source_tmpl': 'Term-UI-0.46.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/B/BI/BINGOS'], + }), + ('Net::SNMP', 'v6.0.1', { + 'source_tmpl': 'Net-SNMP-v6.0.1.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DT/DTOWN'], + }), + ('XML::SAX::Writer', '0.56', { + 'source_tmpl': 'XML-SAX-Writer-0.56.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/P/PE/PERIGRIN'], + }), + ('Statistics::Descriptive', '3.0612', { + 'source_tmpl': 'Statistics-Descriptive-3.0612.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/S/SH/SHLOMIF'], + }), + ('Class::Load', '0.23', { + 'source_tmpl': 'Class-Load-0.23.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/ET/ETHER'], + }), + ('LWP::Simple', '6.15', { + 'source_tmpl': 'libwww-perl-6.15.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/ET/ETHER'], + }), + ('Time::Piece::MySQL', '0.06', { + 'source_tmpl': 'Time-Piece-MySQL-0.06.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/K/KA/KASEI'], + }), + ('Package::Stash::XS', '0.28', { + 'source_tmpl': 'Package-Stash-XS-0.28.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DO/DOY'], + }), + ('GD::Graph', '1.52', { + 'source_tmpl': 'GDGraph-1.52.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RU/RUZ'], + }), + ('Set::Array', '0.30', { + 'source_tmpl': 'Set-Array-0.30.tgz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RS/RSAVAGE'], + }), + ('boolean', '0.45', { + 'source_tmpl': 'boolean-0.45.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/I/IN/INGY'], + }), + ('Number::Format', '1.75', { + 'source_tmpl': 'Number-Format-1.75.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/W/WR/WRW'], + }), + ('Data::Stag', '0.14', { + 'source_tmpl': 'Data-Stag-0.14.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/C/CM/CMUNGALL'], + }), + ('Test::NoWarnings', '1.04', { + 'source_tmpl': 'Test-NoWarnings-1.04.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/A/AD/ADAMK'], + }), + ('Crypt::DES', '2.07', { + 'source_tmpl': 'Crypt-DES-2.07.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DP/DPARIS'], + }), + ('Exporter', '5.72', { + 'source_tmpl': 'Exporter-5.72.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/T/TO/TODDR'], + }), + ('Class::Inspector', '1.28', { + 'source_tmpl': 'Class-Inspector-1.28.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/A/AD/ADAMK'], + }), + ('Parse::RecDescent', '1.967013', { + 'source_tmpl': 'Parse-RecDescent-1.967013.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/J/JT/JTBRAUN'], + }), + ('Carp', '1.38', { + 'source_tmpl': 'Carp-1.38.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + }), + ('XML::XPath', '1.36', { + 'source_tmpl': 'XML-XPath-1.36.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/M/MA/MANWAR'], + }), + ('Capture::Tiny', '0.40', { + 'source_tmpl': 'Capture-Tiny-0.40.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DA/DAGOLDEN'], + }), + ('JSON', '2.90', { + 'source_tmpl': 'JSON-2.90.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/M/MA/MAKAMAKA'], + }), + ('Sub::Exporter', '0.987', { + 'source_tmpl': 'Sub-Exporter-0.987.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + }), + ('Class::Load::XS', '0.09', { + 'source_tmpl': 'Class-Load-XS-0.09.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/ET/ETHER'], + }), + ('Set::IntSpan::Fast', '1.15', { + 'source_tmpl': 'Set-IntSpan-Fast-1.15.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/A/AN/ANDYA'], + }), + ('Sub::Exporter::Progressive', '0.001011', { + 'source_tmpl': 'Sub-Exporter-Progressive-0.001011.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/F/FR/FREW'], + }), + ('Data::Dumper::Concise', '2.022', { + 'source_tmpl': 'Data-Dumper-Concise-2.022.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/F/FR/FREW'], + }), + ('File::Slurp::Tiny', '0.004', { + 'source_tmpl': 'File-Slurp-Tiny-0.004.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/L/LE/LEONT'], + }), + ('Algorithm::Diff', '1.1903', { + 'source_tmpl': 'Algorithm-Diff-1.1903.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/T/TY/TYEMQ'], + }), + ('AnyData', '0.12', { + 'source_tmpl': 'AnyData-0.12.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RE/REHSACK'], + }), + ('Text::Iconv', '1.7', { + 'source_tmpl': 'Text-Iconv-1.7.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/M/MP/MPIOTR'], + }), + ('Class::Data::Inheritable', '0.08', { + 'source_tmpl': 'Class-Data-Inheritable-0.08.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/T/TM/TMTM'], + }), + ('Text::Balanced', '2.03', { + 'source_tmpl': 'Text-Balanced-2.03.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/S/SH/SHAY'], + }), + ('strictures', '2.000003', { + 'source_tmpl': 'strictures-2.000003.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/H/HA/HAARG'], + }), + ('Switch', '2.17', { + 'source_tmpl': 'Switch-2.17.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/C/CH/CHORNY'], + }), + ('File::Which', '1.21', { + 'source_tmpl': 'File-Which-1.21.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/P/PL/PLICEASE'], + }), + ('Email::Date::Format', '1.005', { + 'source_tmpl': 'Email-Date-Format-1.005.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + }), + ('Error', '0.17024', { + 'source_tmpl': 'Error-0.17024.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/S/SH/SHLOMIF'], + }), + ('Mock::Quick', '1.110', { + 'source_tmpl': 'Mock-Quick-1.110.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/EX/EXODIST'], + }), + ('Text::CSV', '1.33', { + 'source_tmpl': 'Text-CSV-1.33.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/M/MA/MAKAMAKA'], + }), + ('Test::Output', '1.03', { + 'source_tmpl': 'Test-Output-1.03.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/B/BD/BDFOY'], + }), + ('Class::DBI', '3.0.17', { + 'source_tmpl': 'Class-DBI-v3.0.17.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/T/TM/TMTM'], + }), + ('List::AllUtils', '0.10', { + 'source_tmpl': 'List-AllUtils-0.10.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DR/DROLSKY'], + }), + ('UNIVERSAL::moniker', '0.08', { + 'source_tmpl': 'UNIVERSAL-moniker-0.08.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/K/KA/KASEI'], + }), + ('Exception::Class', '1.40', { + 'source_tmpl': 'Exception-Class-1.40.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DR/DROLSKY'], + }), + ('File::CheckTree', '4.42', { + 'source_tmpl': 'File-CheckTree-4.42.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + }), + ('Math::VecStat', '0.08', { + 'source_tmpl': 'Math-VecStat-0.08.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/A/AS/ASPINELLI'], + }), + ('Pod::LaTeX', '0.61', { + 'source_tmpl': 'Pod-LaTeX-0.61.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/T/TJ/TJENNESS'], + }), + ('Eval::Closure', '0.13', { + 'source_tmpl': 'Eval-Closure-0.13.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DO/DOY'], + }), + ('HTTP::Request', '6.11', { + 'source_tmpl': 'HTTP-Message-6.11.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/ET/ETHER'], + }), + ('XML::Twig', '3.49', { + 'source_tmpl': 'XML-Twig-3.49.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/M/MI/MIROD'], + }), + ('IO::String', '1.08', { + 'source_tmpl': 'IO-String-1.08.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/G/GA/GAAS'], + }), + ('XML::Simple', '2.22', { + 'source_tmpl': 'XML-Simple-2.22.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/G/GR/GRANTM'], + }), + ('Sub::Install', '0.928', { + 'source_tmpl': 'Sub-Install-0.928.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + }), + ('HTTP::Cookies', '6.01', { + 'source_tmpl': 'HTTP-Cookies-6.01.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/G/GA/GAAS'], + }), + ('Pod::Plainer', '1.04', { + 'source_tmpl': 'Pod-Plainer-1.04.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RM/RMBARKER'], + }), + ('Test::Exception::LessClever', '0.006', { + 'source_tmpl': 'Test-Exception-LessClever-0.006.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/EX/EXODIST'], + }), + ('LWP::MediaTypes', '6.02', { + 'source_tmpl': 'LWP-MediaTypes-6.02.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/G/GA/GAAS'], + }), + ('Scalar::Util', '1.45', { + 'source_tmpl': 'Scalar-List-Utils-1.45.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/P/PE/PEVANS'], + }), + ('Data::Section::Simple', '0.07', { + 'source_tmpl': 'Data-Section-Simple-0.07.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/M/MI/MIYAGAWA'], + }), + ('Class::Trigger', '0.14', { + 'source_tmpl': 'Class-Trigger-0.14.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/M/MI/MIYAGAWA'], + }), + ('HTTP::Daemon', '6.01', { + 'source_tmpl': 'HTTP-Daemon-6.01.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/G/GA/GAAS'], + }), + ('File::HomeDir', '1.00', { + 'source_tmpl': 'File-HomeDir-1.00.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/A/AD/ADAMK'], + }), + ('HTTP::Date', '6.02', { + 'source_tmpl': 'HTTP-Date-6.02.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/G/GA/GAAS'], + }), + ('Authen::SASL', '2.16', { + 'source_tmpl': 'Authen-SASL-2.16.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/G/GB/GBARR'], + }), + ('Clone', '0.38', { + 'source_tmpl': 'Clone-0.38.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/G/GA/GARU'], + }), + ('Data::Types', '0.09', { + 'source_tmpl': 'Data-Types-0.09.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DW/DWHEELER'], + }), + ('Import::Into', '1.002005', { + 'source_tmpl': 'Import-Into-1.002005.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/H/HA/HAARG'], + }), + ('DateTime::Tiny', '1.04', { + 'source_tmpl': 'DateTime-Tiny-1.04.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/A/AD/ADAMK'], + }), + ('DBD::AnyData', '0.110', { + 'source_tmpl': 'DBD-AnyData-0.110.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RE/REHSACK'], + }), + ('Text::Format', '0.59', { + 'source_tmpl': 'Text-Format-0.59.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/S/SH/SHLOMIF'], + }), + ('Devel::CheckCompiler', '0.06', { + 'source_tmpl': 'Devel-CheckCompiler-0.06.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/S/SY/SYOHEX'], + }), + ('Log::Handler', '0.84', { + 'source_tmpl': 'Log-Handler-0.84.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/B/BL/BLOONIX'], + }), + ('DBIx::ContextualFetch', '1.03', { + 'source_tmpl': 'DBIx-ContextualFetch-1.03.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/T/TM/TMTM'], + }), + ('Devel::StackTrace', '2.01', { + 'source_tmpl': 'Devel-StackTrace-2.01.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DR/DROLSKY'], + }), + ('Term::ReadKey', '2.33', { + 'source_tmpl': 'TermReadKey-2.33.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/J/JS/JSTOWE'], + }), + ('Set::IntSpan', '1.19', { + 'source_tmpl': 'Set-IntSpan-1.19.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/S/SW/SWMCD'], + }), + ('Moose', '2.1801', { + 'source_tmpl': 'Moose-2.1801.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/ET/ETHER'], + }), + ('Algorithm::Dependency', '1.110', { + 'source_tmpl': 'Algorithm-Dependency-1.110.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/A/AD/ADAMK'], + }), + ('Font::TTF', '1.05', { + 'source_tmpl': 'Font-TTF-1.05.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/M/MH/MHOSKEN'], + }), + ('IPC::Run3', '0.048', { + 'source_tmpl': 'IPC-Run3-0.048.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + }), + ('File::Find::Rule', '0.34', { + 'source_tmpl': 'File-Find-Rule-0.34.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RC/RCLAMP'], + }), + ('SQL::Statement', '1.410', { + 'source_tmpl': 'SQL-Statement-1.410.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RE/REHSACK'], + }), + ('File::Slurp', '9999.19', { + 'source_tmpl': 'File-Slurp-9999.19.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/U/UR/URI'], + }), + ('Package::Stash', '0.37', { + 'source_tmpl': 'Package-Stash-0.37.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DO/DOY'], + }), + ('Data::OptList', '0.110', { + 'source_tmpl': 'Data-OptList-0.110.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + }), + ('CPANPLUS', '0.9160', { + 'source_tmpl': 'CPANPLUS-0.9160.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/B/BI/BINGOS'], + }), + ('IO::Tty', '1.12', { + 'source_tmpl': 'IO-Tty-1.12.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/T/TO/TODDR'], + }), + ('Text::Soundex', '3.05', { + 'source_tmpl': 'Text-Soundex-3.05.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + }), + ('Lingua::EN::PluralToSingular', '0.18', { + 'source_tmpl': 'Lingua-EN-PluralToSingular-0.18.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/B/BK/BKB'], + }), + ('Want', '0.29', { + 'source_tmpl': 'Want-0.29.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RO/ROBIN'], + }), + ('Cwd::Guard', '0.05', { + 'source_tmpl': 'Cwd-Guard-0.05.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/K/KA/KAZEBURO'], + }), + ('Bundle::BioPerl', '2.1.9', { + 'source_tmpl': 'Bundle-BioPerl-2.1.9.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/C/CJ/CJFIELDS'], + }), + ('Mail::Util', '2.18', { + 'source_tmpl': 'MailTools-2.18.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/M/MA/MARKOV'], + }), +] +exts_list = [] + +moduleclass = 'lang' diff --git a/p/Perl/Perl-5.24.0-GCC-5.4.0-2.26.eb b/p/Perl/Perl-5.24.0-GCC-5.4.0-2.26.eb new file mode 100644 index 00000000..78af9571 --- /dev/null +++ b/p/Perl/Perl-5.24.0-GCC-5.4.0-2.26.eb @@ -0,0 +1,888 @@ +name = 'Perl' +version = '5.24.0' + +homepage = 'http://www.perl.org/' +description = """Larry Wall's Practical Extraction and Report Language""" + +toolchain = {'name': 'GCC', 'version': '5.4.0-2.26'} +toolchainopts = {'pic': True} + +source_urls = ['http://www.cpan.org/src/%(version_major)s.0'] +sources = [SOURCELOWER_TAR_GZ] + +exts_list = [ + ('Config::General', '2.61', { + 'source_tmpl': 'Config-General-2.61.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/T/TL/TLINDEN'], + }), + ('File::Listing', '6.04', { + 'source_tmpl': 'File-Listing-6.04.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/G/GA/GAAS'], + }), + ('ExtUtils::InstallPaths', '0.011', { + 'source_tmpl': 'ExtUtils-InstallPaths-0.011.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/L/LE/LEONT'], + }), + ('ExtUtils::Helpers', '0.022', { + 'source_tmpl': 'ExtUtils-Helpers-0.022.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/L/LE/LEONT'], + }), + ('Test::Harness', '3.36', { + 'source_tmpl': 'Test-Harness-3.36.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/L/LE/LEONT'], + }), + ('ExtUtils::Config', '0.008', { + 'source_tmpl': 'ExtUtils-Config-0.008.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/L/LE/LEONT'], + }), + ('Module::Build::Tiny', '0.039', { + 'source_tmpl': 'Module-Build-Tiny-0.039.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/L/LE/LEONT'], + }), + ('aliased', '0.34', { + 'source_tmpl': 'aliased-0.34.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/ET/ETHER'], + }), + ('Text::Glob', '0.09', { + 'source_tmpl': 'Text-Glob-0.09.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RC/RCLAMP'], + }), + ('Regexp::Common', '2016060801', { + 'source_tmpl': 'Regexp-Common-2016060801.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/A/AB/ABIGAIL'], + }), + ('GO::Utils', '0.15', { + 'source_tmpl': 'go-perl-0.15.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/C/CM/CMUNGALL'], + }), + ('Module::Pluggable', '5.2', { + 'source_tmpl': 'Module-Pluggable-5.2.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/S/SI/SIMONW'], + }), + ('Test::Fatal', '0.014', { + 'source_tmpl': 'Test-Fatal-0.014.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + }), + ('Test::Warnings', '0.026', { + 'source_tmpl': 'Test-Warnings-0.026.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/ET/ETHER'], + }), + ('DateTime::Locale', '1.05', { + 'source_tmpl': 'DateTime-Locale-1.05.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DR/DROLSKY'], + }), + ('DateTime::TimeZone', '2.00', { + 'source_tmpl': 'DateTime-TimeZone-2.00.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DR/DROLSKY'], + }), + ('Test::Requires', '0.10', { + 'source_tmpl': 'Test-Requires-0.10.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/T/TO/TOKUHIROM'], + }), + ('Module::Implementation', '0.09', { + 'source_tmpl': 'Module-Implementation-0.09.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DR/DROLSKY'], + }), + ('Module::Build', '0.4218', { + 'source_tmpl': 'Module-Build-0.4218.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/L/LE/LEONT'], + }), + ('Module::Runtime', '0.014', { + 'source_tmpl': 'Module-Runtime-0.014.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/Z/ZE/ZEFRAM'], + }), + ('Try::Tiny', '0.24', { + 'source_tmpl': 'Try-Tiny-0.24.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/ET/ETHER'], + }), + ('Params::Validate', '1.24', { + 'source_tmpl': 'Params-Validate-1.24.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DR/DROLSKY'], + }), + ('List::MoreUtils', '0.416', { + 'source_tmpl': 'List-MoreUtils-0.416.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RE/REHSACK'], + }), + ('Exporter::Tiny', '0.042', { + 'source_tmpl': 'Exporter-Tiny-0.042.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/T/TO/TOBYINK'], + }), + ('Class::Singleton', '1.5', { + 'source_tmpl': 'Class-Singleton-1.5.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/S/SH/SHAY'], + }), + ('DateTime', '1.34', { + 'source_tmpl': 'DateTime-1.34.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DR/DROLSKY'], + }), + ('File::Find::Rule::Perl', '1.15', { + 'source_tmpl': 'File-Find-Rule-Perl-1.15.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/ET/ETHER'], + }), + ('Readonly', '2.05', { + 'source_tmpl': 'Readonly-2.05.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/S/SA/SANKO'], + }), + ('Git', '0.41', { + 'source_tmpl': 'Git-0.41.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/M/MS/MSOUTH'], + }), + ('Tree::DAG_Node', '1.29', { + 'source_tmpl': 'Tree-DAG_Node-1.29.tgz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RS/RSAVAGE'], + }), + ('Template', '2.26', { + 'source_tmpl': 'Template-Toolkit-2.26.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/A/AB/ABW'], + }), + ('FreezeThaw', '0.5001', { + 'source_tmpl': 'FreezeThaw-0.5001.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/I/IL/ILYAZ/modules'], + }), + ('DBI', '1.636', { + 'source_tmpl': 'DBI-1.636.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/T/TI/TIMB'], + }), + ('DBD::SQLite', '1.50', { + 'source_tmpl': 'DBD-SQLite-1.50.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/I/IS/ISHIGAKI'], + }), + ('Math::Bezier', '0.01', { + 'source_tmpl': 'Math-Bezier-0.01.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/A/AB/ABW'], + }), + ('Archive::Extract', '0.76', { + 'source_tmpl': 'Archive-Extract-0.76.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/B/BI/BINGOS'], + }), + ('DBIx::Simple', '1.35', { + 'source_tmpl': 'DBIx-Simple-1.35.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/J/JU/JUERD'], + }), + ('Shell', '0.73', { + 'source_tmpl': 'Shell-0.73.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/F/FE/FERREIRA'], + }), + ('File::Spec', '3.62', { + 'source_tmpl': 'PathTools-3.62.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + }), + ('ExtUtils::MakeMaker', '7.18', { + 'source_tmpl': 'ExtUtils-MakeMaker-7.18.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/B/BI/BINGOS'], + }), + ('Test::Simple', '1.302037', { + 'source_tmpl': 'Test-Simple-1.302037.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/EX/EXODIST'], + }), + ('Set::Scalar', '1.29', { + 'source_tmpl': 'Set-Scalar-1.29.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DA/DAVIDO'], + }), + ('IO::Stringy', '2.111', { + 'source_tmpl': 'IO-stringy-2.111.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DS/DSKOLL'], + }), + ('Encode::Locale', '1.05', { + 'source_tmpl': 'Encode-Locale-1.05.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/G/GA/GAAS'], + }), + ('XML::SAX::Base', '1.08', { + 'source_tmpl': 'XML-SAX-Base-1.08.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/G/GR/GRANTM'], + }), + ('XML::NamespaceSupport', '1.11', { + 'source_tmpl': 'XML-NamespaceSupport-1.11.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/P/PE/PERIGRIN'], + }), + ('XML::SAX', '0.99', { + 'source_tmpl': 'XML-SAX-0.99.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/G/GR/GRANTM'], + }), + ('Test::LeakTrace', '0.15', { + 'source_tmpl': 'Test-LeakTrace-0.15.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/G/GF/GFUJI'], + }), + ('Test::Exception', '0.43', { + 'source_tmpl': 'Test-Exception-0.43.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/EX/EXODIST'], + }), + ('Text::Table', '1.130', { + 'source_tmpl': 'Text-Table-1.130.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/S/SH/SHLOMIF'], + }), + ('MIME::Types', '2.13', { + 'source_tmpl': 'MIME-Types-2.13.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/M/MA/MARKOV'], + }), + ('Module::Build::XSUtil', '0.16', { + 'source_tmpl': 'Module-Build-XSUtil-0.16.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/H/HI/HIDEAKIO'], + }), + ('Tie::Function', '0.02', { + 'source_tmpl': 'Tie-Function-0.02.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DA/DAVIDNICO/handy_tied_functions'], + }), + ('Template::Plugin::Number::Format', '1.06', { + 'source_tmpl': 'Template-Plugin-Number-Format-1.06.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DA/DARREN'], + }), + ('HTML::Parser', '3.72', { + 'source_tmpl': 'HTML-Parser-3.72.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/G/GA/GAAS'], + }), + ('Date::Handler', '1.2', { + 'source_tmpl': 'Date-Handler-1.2.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/B/BB/BBEAUSEJ'], + }), + ('Params::Util', '1.07', { + 'source_tmpl': 'Params-Util-1.07.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/A/AD/ADAMK'], + }), + ('IO::HTML', '1.001', { + 'source_tmpl': 'IO-HTML-1.001.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/C/CJ/CJM'], + }), + ('Data::Grove', '0.08', { + 'source_tmpl': 'libxml-perl-0.08.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/K/KM/KMACLEOD'], + }), + ('Class::ISA', '0.36', { + 'source_tmpl': 'Class-ISA-0.36.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/S/SM/SMUELLER'], + }), + ('URI', '1.71', { + 'source_tmpl': 'URI-1.71.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/ET/ETHER'], + }), + ('Ima::DBI', '0.35', { + 'source_tmpl': 'Ima-DBI-0.35.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/P/PE/PERRIN'], + }), + ('Tie::IxHash', '1.23', { + 'source_tmpl': 'Tie-IxHash-1.23.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/C/CH/CHORNY'], + }), + ('GO', '0.04', { + 'source_tmpl': 'go-db-perl-0.04.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/S/SJ/SJCARBON'], + }), + ('Class::DBI::SQLite', '0.11', { + 'source_tmpl': 'Class-DBI-SQLite-0.11.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/M/MI/MIYAGAWA'], + }), + ('Pod::POM', '2.01', { + 'source_tmpl': 'Pod-POM-2.01.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/N/NE/NEILB'], + }), + ('Math::Round', '0.07', { + 'source_tmpl': 'Math-Round-0.07.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/G/GR/GROMMEL'], + }), + ('Text::Diff', '1.44', { + 'source_tmpl': 'Text-Diff-1.44.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/N/NE/NEILB'], + }), + ('Log::Message::Simple', '0.10', { + 'source_tmpl': 'Log-Message-Simple-0.10.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/B/BI/BINGOS'], + }), + ('IO::Socket::SSL', '2.029', { + 'source_tmpl': 'IO-Socket-SSL-2.029.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/S/SU/SULLR'], + }), + ('Fennec::Lite', '0.004', { + 'source_tmpl': 'Fennec-Lite-0.004.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/EX/EXODIST'], + }), + ('Sub::Uplevel', '0.25', { + 'source_tmpl': 'Sub-Uplevel-0.25.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DA/DAGOLDEN'], + }), + ('Meta::Builder', '0.003', { + 'source_tmpl': 'Meta-Builder-0.003.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/EX/EXODIST'], + }), + ('Exporter::Declare', '0.114', { + 'source_tmpl': 'Exporter-Declare-0.114.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/EX/EXODIST'], + }), + ('Getopt::Long', '2.48', { + 'source_tmpl': 'Getopt-Long-2.48.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/J/JV/JV'], + }), + ('Log::Message', '0.08', { + 'source_tmpl': 'Log-Message-0.08.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/B/BI/BINGOS'], + }), + ('Mouse', 'v2.4.5', { + 'source_tmpl': 'Mouse-v2.4.5.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/S/SY/SYOHEX'], + }), + ('Test::Version', '2.04', { + 'source_tmpl': 'Test-Version-2.04.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/P/PL/PLICEASE'], + }), + ('DBIx::Admin::TableInfo', '3.01', { + 'source_tmpl': 'DBIx-Admin-TableInfo-3.01.tgz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RS/RSAVAGE'], + }), + ('Net::HTTP', '6.09', { + 'source_tmpl': 'Net-HTTP-6.09.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/ET/ETHER'], + }), + ('Test::Deep', '1.120', { + 'source_tmpl': 'Test-Deep-1.120.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + }), + ('Test::Warn', '0.30', { + 'source_tmpl': 'Test-Warn-0.30.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/C/CH/CHORNY'], + }), + ('MRO::Compat', '0.12', { + 'source_tmpl': 'MRO-Compat-0.12.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/B/BO/BOBTFISH'], + }), + ('Moo', '2.002004', { + 'source_tmpl': 'Moo-2.002004.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/H/HA/HAARG'], + }), + ('Hash::Merge', '0.200', { + 'source_tmpl': 'Hash-Merge-0.200.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RE/REHSACK'], + }), + ('SQL::Abstract', '1.81', { + 'source_tmpl': 'SQL-Abstract-1.81.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RI/RIBASUSHI'], + }), + ('HTML::Form', '6.03', { + 'source_tmpl': 'HTML-Form-6.03.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/G/GA/GAAS'], + }), + ('File::Copy::Recursive', '0.38', { + 'source_tmpl': 'File-Copy-Recursive-0.38.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DM/DMUEY'], + }), + ('Number::Compare', '0.03', { + 'source_tmpl': 'Number-Compare-0.03.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RC/RCLAMP'], + }), + ('IPC::Run', '0.94', { + 'source_tmpl': 'IPC-Run-0.94.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/T/TO/TODDR'], + }), + ('HTML::Entities::Interpolate', '1.09', { + 'source_tmpl': 'HTML-Entities-Interpolate-1.09.tgz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RS/RSAVAGE'], + }), + ('Test::ClassAPI', '1.06', { + 'source_tmpl': 'Test-ClassAPI-1.06.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/A/AD/ADAMK'], + }), + ('Test::Most', '0.34', { + 'source_tmpl': 'Test-Most-0.34.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/O/OV/OVID'], + }), + ('Class::Accessor', '0.34', { + 'source_tmpl': 'Class-Accessor-0.34.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/K/KA/KASEI'], + }), + ('Test::Differences', '0.64', { + 'source_tmpl': 'Test-Differences-0.64.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DC/DCANTRELL'], + }), + ('HTTP::Tiny', '0.058', { + 'source_tmpl': 'HTTP-Tiny-0.058.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DA/DAGOLDEN'], + }), + ('Package::DeprecationManager', '0.17', { + 'source_tmpl': 'Package-DeprecationManager-0.17.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DR/DROLSKY'], + }), + ('Digest::SHA1', '2.13', { + 'source_tmpl': 'Digest-SHA1-2.13.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/G/GA/GAAS'], + }), + ('Date::Language', '2.30', { + 'source_tmpl': 'TimeDate-2.30.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/G/GB/GBARR'], + }), + ('version', '0.9917', { + 'source_tmpl': 'version-0.9917.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/J/JP/JPEACOCK'], + }), + ('Sub::Uplevel', '0.25', { + 'source_tmpl': 'Sub-Uplevel-0.25.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DA/DAGOLDEN'], + }), + ('XML::Bare', '0.53', { + 'source_tmpl': 'XML-Bare-0.53.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/C/CO/CODECHILD'], + }), + ('Dist::CheckConflicts', '0.11', { + 'source_tmpl': 'Dist-CheckConflicts-0.11.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DO/DOY'], + }), + ('Sub::Name', '0.15', { + 'source_tmpl': 'Sub-Name-0.15.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/ET/ETHER'], + }), + ('Time::Piece', '1.31', { + 'source_tmpl': 'Time-Piece-1.31.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/ES/ESAYM'], + }), + ('Digest::HMAC', '1.03', { + 'source_tmpl': 'Digest-HMAC-1.03.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/G/GA/GAAS'], + }), + ('HTTP::Negotiate', '6.01', { + 'source_tmpl': 'HTTP-Negotiate-6.01.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/G/GA/GAAS'], + }), + ('MIME::Lite', '3.030', { + 'source_tmpl': 'MIME-Lite-3.030.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + }), + ('Crypt::Rijndael', '1.13', { + 'source_tmpl': 'Crypt-Rijndael-1.13.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/L/LE/LEONT'], + }), + ('B::Lint', '1.20', { + 'source_tmpl': 'B-Lint-1.20.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + }), + ('Canary::Stability', '2011', { + 'source_tmpl': 'Canary-Stability-2011.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/M/ML/MLEHMANN'], + }), + ('AnyEvent', '7.12', { + 'source_tmpl': 'AnyEvent-7.12.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/M/ML/MLEHMANN'], + }), + ('Object::Accessor', '0.48', { + 'source_tmpl': 'Object-Accessor-0.48.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/B/BI/BINGOS'], + }), + ('Data::UUID', '1.221', { + 'source_tmpl': 'Data-UUID-1.221.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + }), + ('Test::Pod', '1.51', { + 'source_tmpl': 'Test-Pod-1.51.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/ET/ETHER'], + }), + ('AppConfig', '1.71', { + 'source_tmpl': 'AppConfig-1.71.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/N/NE/NEILB'], + }), + ('Net::SMTP::SSL', '1.03', { + 'source_tmpl': 'Net-SMTP-SSL-1.03.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + }), + ('XML::Tiny', '2.06', { + 'source_tmpl': 'XML-Tiny-2.06.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DC/DCANTRELL'], + }), + ('HTML::Tagset', '3.20', { + 'source_tmpl': 'HTML-Tagset-3.20.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/P/PE/PETDANCE'], + }), + ('HTML::Tree', '5.03', { + 'source_tmpl': 'HTML-Tree-5.03.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/C/CJ/CJM'], + }), + ('Devel::GlobalDestruction', '0.13', { + 'source_tmpl': 'Devel-GlobalDestruction-0.13.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/H/HA/HAARG'], + }), + ('WWW::RobotRules', '6.02', { + 'source_tmpl': 'WWW-RobotRules-6.02.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/G/GA/GAAS'], + }), + ('Expect', '1.33', { + 'source_tmpl': 'Expect-1.33.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/J/JA/JACOBY/'], + }), + ('Term::UI', '0.46', { + 'source_tmpl': 'Term-UI-0.46.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/B/BI/BINGOS'], + }), + ('Net::SNMP', 'v6.0.1', { + 'source_tmpl': 'Net-SNMP-v6.0.1.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DT/DTOWN'], + }), + ('XML::SAX::Writer', '0.56', { + 'source_tmpl': 'XML-SAX-Writer-0.56.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/P/PE/PERIGRIN'], + }), + ('Statistics::Descriptive', '3.0612', { + 'source_tmpl': 'Statistics-Descriptive-3.0612.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/S/SH/SHLOMIF'], + }), + ('Class::Load', '0.23', { + 'source_tmpl': 'Class-Load-0.23.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/ET/ETHER'], + }), + ('LWP::Simple', '6.15', { + 'source_tmpl': 'libwww-perl-6.15.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/ET/ETHER'], + }), + ('Time::Piece::MySQL', '0.06', { + 'source_tmpl': 'Time-Piece-MySQL-0.06.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/K/KA/KASEI'], + }), + ('Package::Stash::XS', '0.28', { + 'source_tmpl': 'Package-Stash-XS-0.28.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DO/DOY'], + }), + ('GD::Graph', '1.52', { + 'source_tmpl': 'GDGraph-1.52.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RU/RUZ'], + }), + ('Set::Array', '0.30', { + 'source_tmpl': 'Set-Array-0.30.tgz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RS/RSAVAGE'], + }), + ('boolean', '0.45', { + 'source_tmpl': 'boolean-0.45.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/I/IN/INGY'], + }), + ('Number::Format', '1.75', { + 'source_tmpl': 'Number-Format-1.75.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/W/WR/WRW'], + }), + ('Data::Stag', '0.14', { + 'source_tmpl': 'Data-Stag-0.14.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/C/CM/CMUNGALL'], + }), + ('Test::NoWarnings', '1.04', { + 'source_tmpl': 'Test-NoWarnings-1.04.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/A/AD/ADAMK'], + }), + ('Crypt::DES', '2.07', { + 'source_tmpl': 'Crypt-DES-2.07.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DP/DPARIS'], + }), + ('Exporter', '5.72', { + 'source_tmpl': 'Exporter-5.72.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/T/TO/TODDR'], + }), + ('Class::Inspector', '1.28', { + 'source_tmpl': 'Class-Inspector-1.28.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/A/AD/ADAMK'], + }), + ('Parse::RecDescent', '1.967013', { + 'source_tmpl': 'Parse-RecDescent-1.967013.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/J/JT/JTBRAUN'], + }), + ('Carp', '1.38', { + 'source_tmpl': 'Carp-1.38.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + }), + ('XML::XPath', '1.37', { + 'source_tmpl': 'XML-XPath-1.37.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/M/MA/MANWAR'], + }), + ('Capture::Tiny', '0.42', { + 'source_tmpl': 'Capture-Tiny-0.42.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DA/DAGOLDEN'], + }), + ('JSON', '2.90', { + 'source_tmpl': 'JSON-2.90.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/M/MA/MAKAMAKA'], + }), + ('Sub::Exporter', '0.987', { + 'source_tmpl': 'Sub-Exporter-0.987.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + }), + ('Class::Load::XS', '0.09', { + 'source_tmpl': 'Class-Load-XS-0.09.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/ET/ETHER'], + }), + ('Set::IntSpan::Fast', '1.15', { + 'source_tmpl': 'Set-IntSpan-Fast-1.15.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/A/AN/ANDYA'], + }), + ('Sub::Exporter::Progressive', '0.001011', { + 'source_tmpl': 'Sub-Exporter-Progressive-0.001011.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/F/FR/FREW'], + }), + ('Data::Dumper::Concise', '2.022', { + 'source_tmpl': 'Data-Dumper-Concise-2.022.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/F/FR/FREW'], + }), + ('File::Slurp::Tiny', '0.004', { + 'source_tmpl': 'File-Slurp-Tiny-0.004.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/L/LE/LEONT'], + }), + ('Algorithm::Diff', '1.1903', { + 'source_tmpl': 'Algorithm-Diff-1.1903.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/T/TY/TYEMQ'], + }), + ('AnyData', '0.12', { + 'source_tmpl': 'AnyData-0.12.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RE/REHSACK'], + }), + ('Text::Iconv', '1.7', { + 'source_tmpl': 'Text-Iconv-1.7.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/M/MP/MPIOTR'], + }), + ('Class::Data::Inheritable', '0.08', { + 'source_tmpl': 'Class-Data-Inheritable-0.08.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/T/TM/TMTM'], + }), + ('Text::Balanced', '2.03', { + 'source_tmpl': 'Text-Balanced-2.03.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/S/SH/SHAY'], + }), + ('strictures', '2.000003', { + 'source_tmpl': 'strictures-2.000003.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/H/HA/HAARG'], + }), + ('Switch', '2.17', { + 'source_tmpl': 'Switch-2.17.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/C/CH/CHORNY'], + }), + ('File::Which', '1.21', { + 'source_tmpl': 'File-Which-1.21.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/P/PL/PLICEASE'], + }), + ('Email::Date::Format', '1.005', { + 'source_tmpl': 'Email-Date-Format-1.005.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + }), + ('Error', '0.17024', { + 'source_tmpl': 'Error-0.17024.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/S/SH/SHLOMIF'], + }), + ('Mock::Quick', '1.111', { + 'source_tmpl': 'Mock-Quick-1.111.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/EX/EXODIST'], + }), + ('Text::CSV', '1.33', { + 'source_tmpl': 'Text-CSV-1.33.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/M/MA/MAKAMAKA'], + }), + ('Test::Output', '1.03', { + 'source_tmpl': 'Test-Output-1.03.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/B/BD/BDFOY'], + }), + ('Class::DBI', '3.0.17', { + 'source_tmpl': 'Class-DBI-v3.0.17.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/T/TM/TMTM'], + }), + ('List::AllUtils', '0.11', { + 'source_tmpl': 'List-AllUtils-0.11.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DR/DROLSKY'], + }), + ('UNIVERSAL::moniker', '0.08', { + 'source_tmpl': 'UNIVERSAL-moniker-0.08.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/K/KA/KASEI'], + }), + ('Exception::Class', '1.40', { + 'source_tmpl': 'Exception-Class-1.40.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DR/DROLSKY'], + }), + ('File::CheckTree', '4.42', { + 'source_tmpl': 'File-CheckTree-4.42.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + }), + ('Math::VecStat', '0.08', { + 'source_tmpl': 'Math-VecStat-0.08.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/A/AS/ASPINELLI'], + }), + ('Pod::LaTeX', '0.61', { + 'source_tmpl': 'Pod-LaTeX-0.61.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/T/TJ/TJENNESS'], + }), + ('Eval::Closure', '0.14', { + 'source_tmpl': 'Eval-Closure-0.14.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DO/DOY'], + }), + ('HTTP::Request', '6.11', { + 'source_tmpl': 'HTTP-Message-6.11.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/ET/ETHER'], + }), + ('XML::Twig', '3.49', { + 'source_tmpl': 'XML-Twig-3.49.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/M/MI/MIROD'], + }), + ('IO::String', '1.08', { + 'source_tmpl': 'IO-String-1.08.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/G/GA/GAAS'], + }), + ('XML::Simple', '2.22', { + 'source_tmpl': 'XML-Simple-2.22.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/G/GR/GRANTM'], + }), + ('Sub::Install', '0.928', { + 'source_tmpl': 'Sub-Install-0.928.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + }), + ('HTTP::Cookies', '6.01', { + 'source_tmpl': 'HTTP-Cookies-6.01.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/G/GA/GAAS'], + }), + ('Pod::Plainer', '1.04', { + 'source_tmpl': 'Pod-Plainer-1.04.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RM/RMBARKER'], + }), + ('Test::Exception::LessClever', '0.007', { + 'source_tmpl': 'Test-Exception-LessClever-0.007.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/EX/EXODIST'], + }), + ('LWP::MediaTypes', '6.02', { + 'source_tmpl': 'LWP-MediaTypes-6.02.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/G/GA/GAAS'], + }), + ('Scalar::Util', '1.45', { + 'source_tmpl': 'Scalar-List-Utils-1.45.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/P/PE/PEVANS'], + }), + ('Data::Section::Simple', '0.07', { + 'source_tmpl': 'Data-Section-Simple-0.07.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/M/MI/MIYAGAWA'], + }), + ('Class::Trigger', '0.14', { + 'source_tmpl': 'Class-Trigger-0.14.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/M/MI/MIYAGAWA'], + }), + ('HTTP::Daemon', '6.01', { + 'source_tmpl': 'HTTP-Daemon-6.01.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/G/GA/GAAS'], + }), + ('File::HomeDir', '1.00', { + 'source_tmpl': 'File-HomeDir-1.00.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/A/AD/ADAMK'], + }), + ('HTTP::Date', '6.02', { + 'source_tmpl': 'HTTP-Date-6.02.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/G/GA/GAAS'], + }), + ('Authen::SASL', '2.16', { + 'source_tmpl': 'Authen-SASL-2.16.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/G/GB/GBARR'], + }), + ('Clone', '0.38', { + 'source_tmpl': 'Clone-0.38.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/G/GA/GARU'], + }), + ('Data::Types', '0.09', { + 'source_tmpl': 'Data-Types-0.09.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DW/DWHEELER'], + }), + ('Import::Into', '1.002005', { + 'source_tmpl': 'Import-Into-1.002005.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/H/HA/HAARG'], + }), + ('DateTime::Tiny', '1.06', { + 'source_tmpl': 'DateTime-Tiny-1.06.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DA/DAGOLDEN'], + }), + ('DBD::AnyData', '0.110', { + 'source_tmpl': 'DBD-AnyData-0.110.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RE/REHSACK'], + }), + ('Text::Format', '0.59', { + 'source_tmpl': 'Text-Format-0.59.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/S/SH/SHLOMIF'], + }), + ('Devel::CheckCompiler', '0.06', { + 'source_tmpl': 'Devel-CheckCompiler-0.06.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/S/SY/SYOHEX'], + }), + ('Log::Handler', '0.84', { + 'source_tmpl': 'Log-Handler-0.84.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/B/BL/BLOONIX'], + }), + ('DBIx::ContextualFetch', '1.03', { + 'source_tmpl': 'DBIx-ContextualFetch-1.03.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/T/TM/TMTM'], + }), + ('Devel::StackTrace', '2.01', { + 'source_tmpl': 'Devel-StackTrace-2.01.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DR/DROLSKY'], + }), + ('Term::ReadKey', '2.33', { + 'source_tmpl': 'TermReadKey-2.33.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/J/JS/JSTOWE'], + }), + ('Set::IntSpan', '1.19', { + 'source_tmpl': 'Set-IntSpan-1.19.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/S/SW/SWMCD'], + }), + ('Moose', '2.1804', { + 'source_tmpl': 'Moose-2.1804.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/ET/ETHER'], + }), + ('Algorithm::Dependency', '1.110', { + 'source_tmpl': 'Algorithm-Dependency-1.110.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/A/AD/ADAMK'], + }), + ('Font::TTF', '1.05', { + 'source_tmpl': 'Font-TTF-1.05.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/M/MH/MHOSKEN'], + }), + ('IPC::Run3', '0.048', { + 'source_tmpl': 'IPC-Run3-0.048.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + }), + ('File::Find::Rule', '0.34', { + 'source_tmpl': 'File-Find-Rule-0.34.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RC/RCLAMP'], + }), + ('SQL::Statement', '1.410', { + 'source_tmpl': 'SQL-Statement-1.410.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RE/REHSACK'], + }), + ('File::Slurp', '9999.19', { + 'source_tmpl': 'File-Slurp-9999.19.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/U/UR/URI'], + }), + ('Package::Stash', '0.37', { + 'source_tmpl': 'Package-Stash-0.37.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DO/DOY'], + }), + ('Data::OptList', '0.110', { + 'source_tmpl': 'Data-OptList-0.110.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + }), + ('CPANPLUS', '0.9160', { + 'source_tmpl': 'CPANPLUS-0.9160.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/B/BI/BINGOS'], + }), + ('IO::Tty', '1.12', { + 'source_tmpl': 'IO-Tty-1.12.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/T/TO/TODDR'], + }), + ('Text::Soundex', '3.05', { + 'source_tmpl': 'Text-Soundex-3.05.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + }), + ('Lingua::EN::PluralToSingular', '0.18', { + 'source_tmpl': 'Lingua-EN-PluralToSingular-0.18.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/B/BK/BKB'], + }), + ('Want', '0.29', { + 'source_tmpl': 'Want-0.29.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RO/ROBIN'], + }), + ('Cwd::Guard', '0.05', { + 'source_tmpl': 'Cwd-Guard-0.05.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/K/KA/KAZEBURO'], + }), + ('Bundle::BioPerl', '2.1.9', { + 'source_tmpl': 'Bundle-BioPerl-2.1.9.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/C/CJ/CJFIELDS'], + }), + ('Mail::Util', '2.18', { + 'source_tmpl': 'MailTools-2.18.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/M/MA/MARKOV'], + }), + ('Text::Template', '1.46', { + 'source_tmpl': 'Text-Template-1.46.tar.gz', + 'source_urls': ['http://search.cpan.org/CPAN/authors/id/M/MJ/MJD'], + }), +] + +moduleclass = 'lang' diff --git a/p/Perl/Perl-5.24.0-GCC-5.4.0-bare.eb b/p/Perl/Perl-5.24.0-GCC-5.4.0-bare.eb new file mode 100755 index 00000000..79b7c497 --- /dev/null +++ b/p/Perl/Perl-5.24.0-GCC-5.4.0-bare.eb @@ -0,0 +1,17 @@ +name = 'Perl' +version = '5.24.0' +versionsuffix = '-bare' + +homepage = 'http://www.perl.org/' +description = """Larry Wall's Practical Extraction and Report Language""" + +toolchain = {'name': 'GCC', 'version': '4.9.3-2.25'} +toolchainopts = {'optarch': True, 'pic': True} + +source_urls = ['http://www.cpan.org/src/5.0'] +sources = [SOURCELOWER_TAR_GZ] + +# bare, no extensions +exts_list = [] + +moduleclass = 'lang' diff --git a/p/Perl/Perl-5.24.0-GCCcore-4.9.3.eb b/p/Perl/Perl-5.24.0-GCCcore-4.9.3.eb new file mode 100644 index 00000000..dc1a3cef --- /dev/null +++ b/p/Perl/Perl-5.24.0-GCCcore-4.9.3.eb @@ -0,0 +1,886 @@ +name = 'Perl' +version = '5.24.0' + +homepage = 'http://www.perl.org/' +description = """Larry Wall's Practical Extraction and Report Language""" + +toolchain = {'name': 'GCCcore', 'version': '4.9.3'} +toolchainopts = {'pic': True} + +source_urls = ['http://www.cpan.org/src/%(version_major)s.0'] +sources = [SOURCELOWER_TAR_GZ] + +dependencies = [('binutils', '2.25')] + +exts_list = [ + ('Config::General', '2.61', { + 'source_tmpl': 'Config-General-2.61.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/T/TL/TLINDEN'], + }), + ('File::Listing', '6.04', { + 'source_tmpl': 'File-Listing-6.04.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/G/GA/GAAS'], + }), + ('ExtUtils::InstallPaths', '0.011', { + 'source_tmpl': 'ExtUtils-InstallPaths-0.011.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/L/LE/LEONT'], + }), + ('ExtUtils::Helpers', '0.022', { + 'source_tmpl': 'ExtUtils-Helpers-0.022.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/L/LE/LEONT'], + }), + ('Test::Harness', '3.36', { + 'source_tmpl': 'Test-Harness-3.36.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/L/LE/LEONT'], + }), + ('ExtUtils::Config', '0.008', { + 'source_tmpl': 'ExtUtils-Config-0.008.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/L/LE/LEONT'], + }), + ('Module::Build::Tiny', '0.039', { + 'source_tmpl': 'Module-Build-Tiny-0.039.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/L/LE/LEONT'], + }), + ('aliased', '0.34', { + 'source_tmpl': 'aliased-0.34.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/ET/ETHER'], + }), + ('Text::Glob', '0.09', { + 'source_tmpl': 'Text-Glob-0.09.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RC/RCLAMP'], + }), + ('Regexp::Common', '2016060801', { + 'source_tmpl': 'Regexp-Common-2016060801.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/A/AB/ABIGAIL'], + }), + ('GO::Utils', '0.15', { + 'source_tmpl': 'go-perl-0.15.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/C/CM/CMUNGALL'], + }), + ('Module::Pluggable', '5.2', { + 'source_tmpl': 'Module-Pluggable-5.2.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/S/SI/SIMONW'], + }), + ('Test::Fatal', '0.014', { + 'source_tmpl': 'Test-Fatal-0.014.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + }), + ('Test::Warnings', '0.026', { + 'source_tmpl': 'Test-Warnings-0.026.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/ET/ETHER'], + }), + ('DateTime::Locale', '1.05', { + 'source_tmpl': 'DateTime-Locale-1.05.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DR/DROLSKY'], + }), + ('DateTime::TimeZone', '2.00', { + 'source_tmpl': 'DateTime-TimeZone-2.00.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DR/DROLSKY'], + }), + ('Test::Requires', '0.10', { + 'source_tmpl': 'Test-Requires-0.10.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/T/TO/TOKUHIROM'], + }), + ('Module::Implementation', '0.09', { + 'source_tmpl': 'Module-Implementation-0.09.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DR/DROLSKY'], + }), + ('Module::Build', '0.4218', { + 'source_tmpl': 'Module-Build-0.4218.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/L/LE/LEONT'], + }), + ('Module::Runtime', '0.014', { + 'source_tmpl': 'Module-Runtime-0.014.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/Z/ZE/ZEFRAM'], + }), + ('Try::Tiny', '0.24', { + 'source_tmpl': 'Try-Tiny-0.24.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/ET/ETHER'], + }), + ('Params::Validate', '1.24', { + 'source_tmpl': 'Params-Validate-1.24.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DR/DROLSKY'], + }), + ('List::MoreUtils', '0.416', { + 'source_tmpl': 'List-MoreUtils-0.416.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RE/REHSACK'], + }), + ('Exporter::Tiny', '0.042', { + 'source_tmpl': 'Exporter-Tiny-0.042.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/T/TO/TOBYINK'], + }), + ('Class::Singleton', '1.5', { + 'source_tmpl': 'Class-Singleton-1.5.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/S/SH/SHAY'], + }), + ('DateTime', '1.34', { + 'source_tmpl': 'DateTime-1.34.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DR/DROLSKY'], + }), + ('File::Find::Rule::Perl', '1.15', { + 'source_tmpl': 'File-Find-Rule-Perl-1.15.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/ET/ETHER'], + }), + ('Readonly', '2.05', { + 'source_tmpl': 'Readonly-2.05.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/S/SA/SANKO'], + }), + ('Git', '0.41', { + 'source_tmpl': 'Git-0.41.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/M/MS/MSOUTH'], + }), + ('Tree::DAG_Node', '1.29', { + 'source_tmpl': 'Tree-DAG_Node-1.29.tgz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RS/RSAVAGE'], + }), + ('Template', '2.26', { + 'source_tmpl': 'Template-Toolkit-2.26.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/A/AB/ABW'], + }), + ('FreezeThaw', '0.5001', { + 'source_tmpl': 'FreezeThaw-0.5001.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/I/IL/ILYAZ/modules'], + }), + ('DBI', '1.636', { + 'source_tmpl': 'DBI-1.636.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/T/TI/TIMB'], + }), + ('DBD::SQLite', '1.50', { + 'source_tmpl': 'DBD-SQLite-1.50.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/I/IS/ISHIGAKI'], + }), + ('Math::Bezier', '0.01', { + 'source_tmpl': 'Math-Bezier-0.01.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/A/AB/ABW'], + }), + ('Archive::Extract', '0.76', { + 'source_tmpl': 'Archive-Extract-0.76.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/B/BI/BINGOS'], + }), + ('DBIx::Simple', '1.35', { + 'source_tmpl': 'DBIx-Simple-1.35.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/J/JU/JUERD'], + }), + ('Shell', '0.73', { + 'source_tmpl': 'Shell-0.73.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/F/FE/FERREIRA'], + }), + ('File::Spec', '3.62', { + 'source_tmpl': 'PathTools-3.62.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + }), + ('ExtUtils::MakeMaker', '7.18', { + 'source_tmpl': 'ExtUtils-MakeMaker-7.18.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/B/BI/BINGOS'], + }), + ('Test::Simple', '1.302037', { + 'source_tmpl': 'Test-Simple-1.302037.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/EX/EXODIST'], + }), + ('Set::Scalar', '1.29', { + 'source_tmpl': 'Set-Scalar-1.29.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DA/DAVIDO'], + }), + ('IO::Stringy', '2.111', { + 'source_tmpl': 'IO-stringy-2.111.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DS/DSKOLL'], + }), + ('Encode::Locale', '1.05', { + 'source_tmpl': 'Encode-Locale-1.05.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/G/GA/GAAS'], + }), + ('XML::SAX::Base', '1.08', { + 'source_tmpl': 'XML-SAX-Base-1.08.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/G/GR/GRANTM'], + }), + ('XML::NamespaceSupport', '1.11', { + 'source_tmpl': 'XML-NamespaceSupport-1.11.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/P/PE/PERIGRIN'], + }), + ('XML::SAX', '0.99', { + 'source_tmpl': 'XML-SAX-0.99.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/G/GR/GRANTM'], + }), + ('Test::LeakTrace', '0.15', { + 'source_tmpl': 'Test-LeakTrace-0.15.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/G/GF/GFUJI'], + }), + ('Test::Exception', '0.43', { + 'source_tmpl': 'Test-Exception-0.43.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/EX/EXODIST'], + }), + ('Text::Table', '1.130', { + 'source_tmpl': 'Text-Table-1.130.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/S/SH/SHLOMIF'], + }), + ('MIME::Types', '2.13', { + 'source_tmpl': 'MIME-Types-2.13.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/M/MA/MARKOV'], + }), + ('Module::Build::XSUtil', '0.16', { + 'source_tmpl': 'Module-Build-XSUtil-0.16.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/H/HI/HIDEAKIO'], + }), + ('Tie::Function', '0.02', { + 'source_tmpl': 'Tie-Function-0.02.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DA/DAVIDNICO/handy_tied_functions'], + }), + ('Template::Plugin::Number::Format', '1.06', { + 'source_tmpl': 'Template-Plugin-Number-Format-1.06.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DA/DARREN'], + }), + ('HTML::Parser', '3.72', { + 'source_tmpl': 'HTML-Parser-3.72.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/G/GA/GAAS'], + }), + ('Date::Handler', '1.2', { + 'source_tmpl': 'Date-Handler-1.2.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/B/BB/BBEAUSEJ'], + }), + ('Params::Util', '1.07', { + 'source_tmpl': 'Params-Util-1.07.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/A/AD/ADAMK'], + }), + ('IO::HTML', '1.001', { + 'source_tmpl': 'IO-HTML-1.001.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/C/CJ/CJM'], + }), + ('Data::Grove', '0.08', { + 'source_tmpl': 'libxml-perl-0.08.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/K/KM/KMACLEOD'], + }), + ('Class::ISA', '0.36', { + 'source_tmpl': 'Class-ISA-0.36.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/S/SM/SMUELLER'], + }), + ('URI', '1.71', { + 'source_tmpl': 'URI-1.71.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/ET/ETHER'], + }), + ('Ima::DBI', '0.35', { + 'source_tmpl': 'Ima-DBI-0.35.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/P/PE/PERRIN'], + }), + ('Tie::IxHash', '1.23', { + 'source_tmpl': 'Tie-IxHash-1.23.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/C/CH/CHORNY'], + }), + ('GO', '0.04', { + 'source_tmpl': 'go-db-perl-0.04.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/S/SJ/SJCARBON'], + }), + ('Class::DBI::SQLite', '0.11', { + 'source_tmpl': 'Class-DBI-SQLite-0.11.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/M/MI/MIYAGAWA'], + }), + ('Pod::POM', '2.01', { + 'source_tmpl': 'Pod-POM-2.01.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/N/NE/NEILB'], + }), + ('Math::Round', '0.07', { + 'source_tmpl': 'Math-Round-0.07.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/G/GR/GROMMEL'], + }), + ('Text::Diff', '1.44', { + 'source_tmpl': 'Text-Diff-1.44.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/N/NE/NEILB'], + }), + ('Log::Message::Simple', '0.10', { + 'source_tmpl': 'Log-Message-Simple-0.10.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/B/BI/BINGOS'], + }), + ('IO::Socket::SSL', '2.029', { + 'source_tmpl': 'IO-Socket-SSL-2.029.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/S/SU/SULLR'], + }), + ('Fennec::Lite', '0.004', { + 'source_tmpl': 'Fennec-Lite-0.004.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/EX/EXODIST'], + }), + ('Sub::Uplevel', '0.25', { + 'source_tmpl': 'Sub-Uplevel-0.25.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DA/DAGOLDEN'], + }), + ('Meta::Builder', '0.003', { + 'source_tmpl': 'Meta-Builder-0.003.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/EX/EXODIST'], + }), + ('Exporter::Declare', '0.114', { + 'source_tmpl': 'Exporter-Declare-0.114.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/EX/EXODIST'], + }), + ('Getopt::Long', '2.48', { + 'source_tmpl': 'Getopt-Long-2.48.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/J/JV/JV'], + }), + ('Log::Message', '0.08', { + 'source_tmpl': 'Log-Message-0.08.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/B/BI/BINGOS'], + }), + ('Mouse', 'v2.4.5', { + 'source_tmpl': 'Mouse-v2.4.5.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/S/SY/SYOHEX'], + }), + ('Test::Version', '2.04', { + 'source_tmpl': 'Test-Version-2.04.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/P/PL/PLICEASE'], + }), + ('DBIx::Admin::TableInfo', '3.01', { + 'source_tmpl': 'DBIx-Admin-TableInfo-3.01.tgz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RS/RSAVAGE'], + }), + ('Net::HTTP', '6.09', { + 'source_tmpl': 'Net-HTTP-6.09.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/ET/ETHER'], + }), + ('Test::Deep', '1.120', { + 'source_tmpl': 'Test-Deep-1.120.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + }), + ('Test::Warn', '0.30', { + 'source_tmpl': 'Test-Warn-0.30.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/C/CH/CHORNY'], + }), + ('MRO::Compat', '0.12', { + 'source_tmpl': 'MRO-Compat-0.12.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/B/BO/BOBTFISH'], + }), + ('Moo', '2.002004', { + 'source_tmpl': 'Moo-2.002004.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/H/HA/HAARG'], + }), + ('Hash::Merge', '0.200', { + 'source_tmpl': 'Hash-Merge-0.200.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RE/REHSACK'], + }), + ('SQL::Abstract', '1.81', { + 'source_tmpl': 'SQL-Abstract-1.81.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RI/RIBASUSHI'], + }), + ('HTML::Form', '6.03', { + 'source_tmpl': 'HTML-Form-6.03.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/G/GA/GAAS'], + }), + ('File::Copy::Recursive', '0.38', { + 'source_tmpl': 'File-Copy-Recursive-0.38.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DM/DMUEY'], + }), + ('Number::Compare', '0.03', { + 'source_tmpl': 'Number-Compare-0.03.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RC/RCLAMP'], + }), + ('IPC::Run', '0.94', { + 'source_tmpl': 'IPC-Run-0.94.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/T/TO/TODDR'], + }), + ('HTML::Entities::Interpolate', '1.09', { + 'source_tmpl': 'HTML-Entities-Interpolate-1.09.tgz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RS/RSAVAGE'], + }), + ('Test::ClassAPI', '1.06', { + 'source_tmpl': 'Test-ClassAPI-1.06.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/A/AD/ADAMK'], + }), + ('Test::Most', '0.34', { + 'source_tmpl': 'Test-Most-0.34.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/O/OV/OVID'], + }), + ('Class::Accessor', '0.34', { + 'source_tmpl': 'Class-Accessor-0.34.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/K/KA/KASEI'], + }), + ('Test::Differences', '0.64', { + 'source_tmpl': 'Test-Differences-0.64.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DC/DCANTRELL'], + }), + ('HTTP::Tiny', '0.058', { + 'source_tmpl': 'HTTP-Tiny-0.058.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DA/DAGOLDEN'], + }), + ('Package::DeprecationManager', '0.17', { + 'source_tmpl': 'Package-DeprecationManager-0.17.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DR/DROLSKY'], + }), + ('Digest::SHA1', '2.13', { + 'source_tmpl': 'Digest-SHA1-2.13.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/G/GA/GAAS'], + }), + ('Date::Language', '2.30', { + 'source_tmpl': 'TimeDate-2.30.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/G/GB/GBARR'], + }), + ('version', '0.9917', { + 'source_tmpl': 'version-0.9917.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/J/JP/JPEACOCK'], + }), + ('Sub::Uplevel', '0.25', { + 'source_tmpl': 'Sub-Uplevel-0.25.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DA/DAGOLDEN'], + }), + ('XML::Bare', '0.53', { + 'source_tmpl': 'XML-Bare-0.53.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/C/CO/CODECHILD'], + }), + ('Dist::CheckConflicts', '0.11', { + 'source_tmpl': 'Dist-CheckConflicts-0.11.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DO/DOY'], + }), + ('Sub::Name', '0.15', { + 'source_tmpl': 'Sub-Name-0.15.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/ET/ETHER'], + }), + ('Time::Piece', '1.31', { + 'source_tmpl': 'Time-Piece-1.31.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/ES/ESAYM'], + }), + ('Digest::HMAC', '1.03', { + 'source_tmpl': 'Digest-HMAC-1.03.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/G/GA/GAAS'], + }), + ('HTTP::Negotiate', '6.01', { + 'source_tmpl': 'HTTP-Negotiate-6.01.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/G/GA/GAAS'], + }), + ('MIME::Lite', '3.030', { + 'source_tmpl': 'MIME-Lite-3.030.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + }), + ('Crypt::Rijndael', '1.13', { + 'source_tmpl': 'Crypt-Rijndael-1.13.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/L/LE/LEONT'], + }), + ('B::Lint', '1.20', { + 'source_tmpl': 'B-Lint-1.20.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + }), + ('Canary::Stability', '2011', { + 'source_tmpl': 'Canary-Stability-2011.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/M/ML/MLEHMANN'], + }), + ('AnyEvent', '7.12', { + 'source_tmpl': 'AnyEvent-7.12.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/M/ML/MLEHMANN'], + }), + ('Object::Accessor', '0.48', { + 'source_tmpl': 'Object-Accessor-0.48.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/B/BI/BINGOS'], + }), + ('Data::UUID', '1.221', { + 'source_tmpl': 'Data-UUID-1.221.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + }), + ('Test::Pod', '1.51', { + 'source_tmpl': 'Test-Pod-1.51.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/ET/ETHER'], + }), + ('AppConfig', '1.71', { + 'source_tmpl': 'AppConfig-1.71.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/N/NE/NEILB'], + }), + ('Net::SMTP::SSL', '1.03', { + 'source_tmpl': 'Net-SMTP-SSL-1.03.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + }), + ('XML::Tiny', '2.06', { + 'source_tmpl': 'XML-Tiny-2.06.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DC/DCANTRELL'], + }), + ('HTML::Tagset', '3.20', { + 'source_tmpl': 'HTML-Tagset-3.20.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/P/PE/PETDANCE'], + }), + ('HTML::Tree', '5.03', { + 'source_tmpl': 'HTML-Tree-5.03.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/C/CJ/CJM'], + }), + ('Devel::GlobalDestruction', '0.13', { + 'source_tmpl': 'Devel-GlobalDestruction-0.13.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/H/HA/HAARG'], + }), + ('WWW::RobotRules', '6.02', { + 'source_tmpl': 'WWW-RobotRules-6.02.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/G/GA/GAAS'], + }), + ('Expect', '1.33', { + 'source_tmpl': 'Expect-1.33.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/J/JA/JACOBY/'], + }), + ('Term::UI', '0.46', { + 'source_tmpl': 'Term-UI-0.46.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/B/BI/BINGOS'], + }), + ('Net::SNMP', 'v6.0.1', { + 'source_tmpl': 'Net-SNMP-v6.0.1.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DT/DTOWN'], + }), + ('XML::SAX::Writer', '0.56', { + 'source_tmpl': 'XML-SAX-Writer-0.56.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/P/PE/PERIGRIN'], + }), + ('Statistics::Descriptive', '3.0612', { + 'source_tmpl': 'Statistics-Descriptive-3.0612.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/S/SH/SHLOMIF'], + }), + ('Class::Load', '0.23', { + 'source_tmpl': 'Class-Load-0.23.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/ET/ETHER'], + }), + ('LWP::Simple', '6.15', { + 'source_tmpl': 'libwww-perl-6.15.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/ET/ETHER'], + }), + ('Time::Piece::MySQL', '0.06', { + 'source_tmpl': 'Time-Piece-MySQL-0.06.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/K/KA/KASEI'], + }), + ('Package::Stash::XS', '0.28', { + 'source_tmpl': 'Package-Stash-XS-0.28.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DO/DOY'], + }), + ('GD::Graph', '1.52', { + 'source_tmpl': 'GDGraph-1.52.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RU/RUZ'], + }), + ('Set::Array', '0.30', { + 'source_tmpl': 'Set-Array-0.30.tgz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RS/RSAVAGE'], + }), + ('boolean', '0.45', { + 'source_tmpl': 'boolean-0.45.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/I/IN/INGY'], + }), + ('Number::Format', '1.75', { + 'source_tmpl': 'Number-Format-1.75.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/W/WR/WRW'], + }), + ('Data::Stag', '0.14', { + 'source_tmpl': 'Data-Stag-0.14.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/C/CM/CMUNGALL'], + }), + ('Test::NoWarnings', '1.04', { + 'source_tmpl': 'Test-NoWarnings-1.04.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/A/AD/ADAMK'], + }), + ('Crypt::DES', '2.07', { + 'source_tmpl': 'Crypt-DES-2.07.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DP/DPARIS'], + }), + ('Exporter', '5.72', { + 'source_tmpl': 'Exporter-5.72.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/T/TO/TODDR'], + }), + ('Class::Inspector', '1.28', { + 'source_tmpl': 'Class-Inspector-1.28.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/A/AD/ADAMK'], + }), + ('Parse::RecDescent', '1.967013', { + 'source_tmpl': 'Parse-RecDescent-1.967013.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/J/JT/JTBRAUN'], + }), + ('Carp', '1.38', { + 'source_tmpl': 'Carp-1.38.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + }), + ('XML::XPath', '1.37', { + 'source_tmpl': 'XML-XPath-1.37.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/M/MA/MANWAR'], + }), + ('Capture::Tiny', '0.42', { + 'source_tmpl': 'Capture-Tiny-0.42.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DA/DAGOLDEN'], + }), + ('JSON', '2.90', { + 'source_tmpl': 'JSON-2.90.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/M/MA/MAKAMAKA'], + }), + ('Sub::Exporter', '0.987', { + 'source_tmpl': 'Sub-Exporter-0.987.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + }), + ('Class::Load::XS', '0.09', { + 'source_tmpl': 'Class-Load-XS-0.09.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/ET/ETHER'], + }), + ('Set::IntSpan::Fast', '1.15', { + 'source_tmpl': 'Set-IntSpan-Fast-1.15.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/A/AN/ANDYA'], + }), + ('Sub::Exporter::Progressive', '0.001011', { + 'source_tmpl': 'Sub-Exporter-Progressive-0.001011.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/F/FR/FREW'], + }), + ('Data::Dumper::Concise', '2.022', { + 'source_tmpl': 'Data-Dumper-Concise-2.022.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/F/FR/FREW'], + }), + ('File::Slurp::Tiny', '0.004', { + 'source_tmpl': 'File-Slurp-Tiny-0.004.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/L/LE/LEONT'], + }), + ('Algorithm::Diff', '1.1903', { + 'source_tmpl': 'Algorithm-Diff-1.1903.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/T/TY/TYEMQ'], + }), + ('AnyData', '0.12', { + 'source_tmpl': 'AnyData-0.12.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RE/REHSACK'], + }), + ('Text::Iconv', '1.7', { + 'source_tmpl': 'Text-Iconv-1.7.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/M/MP/MPIOTR'], + }), + ('Class::Data::Inheritable', '0.08', { + 'source_tmpl': 'Class-Data-Inheritable-0.08.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/T/TM/TMTM'], + }), + ('Text::Balanced', '2.03', { + 'source_tmpl': 'Text-Balanced-2.03.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/S/SH/SHAY'], + }), + ('strictures', '2.000003', { + 'source_tmpl': 'strictures-2.000003.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/H/HA/HAARG'], + }), + ('Switch', '2.17', { + 'source_tmpl': 'Switch-2.17.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/C/CH/CHORNY'], + }), + ('File::Which', '1.21', { + 'source_tmpl': 'File-Which-1.21.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/P/PL/PLICEASE'], + }), + ('Email::Date::Format', '1.005', { + 'source_tmpl': 'Email-Date-Format-1.005.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + }), + ('Error', '0.17024', { + 'source_tmpl': 'Error-0.17024.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/S/SH/SHLOMIF'], + }), + ('Mock::Quick', '1.111', { + 'source_tmpl': 'Mock-Quick-1.111.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/EX/EXODIST'], + }), + ('Text::CSV', '1.33', { + 'source_tmpl': 'Text-CSV-1.33.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/M/MA/MAKAMAKA'], + }), + ('Test::Output', '1.03', { + 'source_tmpl': 'Test-Output-1.03.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/B/BD/BDFOY'], + }), + ('Class::DBI', '3.0.17', { + 'source_tmpl': 'Class-DBI-v3.0.17.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/T/TM/TMTM'], + }), + ('List::AllUtils', '0.11', { + 'source_tmpl': 'List-AllUtils-0.11.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DR/DROLSKY'], + }), + ('UNIVERSAL::moniker', '0.08', { + 'source_tmpl': 'UNIVERSAL-moniker-0.08.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/K/KA/KASEI'], + }), + ('Exception::Class', '1.40', { + 'source_tmpl': 'Exception-Class-1.40.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DR/DROLSKY'], + }), + ('File::CheckTree', '4.42', { + 'source_tmpl': 'File-CheckTree-4.42.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + }), + ('Math::VecStat', '0.08', { + 'source_tmpl': 'Math-VecStat-0.08.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/A/AS/ASPINELLI'], + }), + ('Pod::LaTeX', '0.61', { + 'source_tmpl': 'Pod-LaTeX-0.61.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/T/TJ/TJENNESS'], + }), + ('Eval::Closure', '0.14', { + 'source_tmpl': 'Eval-Closure-0.14.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DO/DOY'], + }), + ('HTTP::Request', '6.11', { + 'source_tmpl': 'HTTP-Message-6.11.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/ET/ETHER'], + }), + ('XML::Twig', '3.49', { + 'source_tmpl': 'XML-Twig-3.49.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/M/MI/MIROD'], + }), + ('IO::String', '1.08', { + 'source_tmpl': 'IO-String-1.08.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/G/GA/GAAS'], + }), + ('XML::Simple', '2.22', { + 'source_tmpl': 'XML-Simple-2.22.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/G/GR/GRANTM'], + }), + ('Sub::Install', '0.928', { + 'source_tmpl': 'Sub-Install-0.928.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + }), + ('HTTP::Cookies', '6.01', { + 'source_tmpl': 'HTTP-Cookies-6.01.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/G/GA/GAAS'], + }), + ('Pod::Plainer', '1.04', { + 'source_tmpl': 'Pod-Plainer-1.04.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RM/RMBARKER'], + }), + ('Test::Exception::LessClever', '0.007', { + 'source_tmpl': 'Test-Exception-LessClever-0.007.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/EX/EXODIST'], + }), + ('LWP::MediaTypes', '6.02', { + 'source_tmpl': 'LWP-MediaTypes-6.02.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/G/GA/GAAS'], + }), + ('Scalar::Util', '1.45', { + 'source_tmpl': 'Scalar-List-Utils-1.45.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/P/PE/PEVANS'], + }), + ('Data::Section::Simple', '0.07', { + 'source_tmpl': 'Data-Section-Simple-0.07.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/M/MI/MIYAGAWA'], + }), + ('Class::Trigger', '0.14', { + 'source_tmpl': 'Class-Trigger-0.14.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/M/MI/MIYAGAWA'], + }), + ('HTTP::Daemon', '6.01', { + 'source_tmpl': 'HTTP-Daemon-6.01.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/G/GA/GAAS'], + }), + ('File::HomeDir', '1.00', { + 'source_tmpl': 'File-HomeDir-1.00.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/A/AD/ADAMK'], + }), + ('HTTP::Date', '6.02', { + 'source_tmpl': 'HTTP-Date-6.02.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/G/GA/GAAS'], + }), + ('Authen::SASL', '2.16', { + 'source_tmpl': 'Authen-SASL-2.16.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/G/GB/GBARR'], + }), + ('Clone', '0.38', { + 'source_tmpl': 'Clone-0.38.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/G/GA/GARU'], + }), + ('Data::Types', '0.09', { + 'source_tmpl': 'Data-Types-0.09.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DW/DWHEELER'], + }), + ('Import::Into', '1.002005', { + 'source_tmpl': 'Import-Into-1.002005.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/H/HA/HAARG'], + }), + ('DateTime::Tiny', '1.06', { + 'source_tmpl': 'DateTime-Tiny-1.06.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DA/DAGOLDEN'], + }), + ('DBD::AnyData', '0.110', { + 'source_tmpl': 'DBD-AnyData-0.110.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RE/REHSACK'], + }), + ('Text::Format', '0.59', { + 'source_tmpl': 'Text-Format-0.59.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/S/SH/SHLOMIF'], + }), + ('Devel::CheckCompiler', '0.06', { + 'source_tmpl': 'Devel-CheckCompiler-0.06.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/S/SY/SYOHEX'], + }), + ('Log::Handler', '0.84', { + 'source_tmpl': 'Log-Handler-0.84.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/B/BL/BLOONIX'], + }), + ('DBIx::ContextualFetch', '1.03', { + 'source_tmpl': 'DBIx-ContextualFetch-1.03.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/T/TM/TMTM'], + }), + ('Devel::StackTrace', '2.01', { + 'source_tmpl': 'Devel-StackTrace-2.01.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DR/DROLSKY'], + }), + ('Term::ReadKey', '2.33', { + 'source_tmpl': 'TermReadKey-2.33.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/J/JS/JSTOWE'], + }), + ('Set::IntSpan', '1.19', { + 'source_tmpl': 'Set-IntSpan-1.19.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/S/SW/SWMCD'], + }), + ('Moose', '2.1804', { + 'source_tmpl': 'Moose-2.1804.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/ET/ETHER'], + }), + ('Algorithm::Dependency', '1.110', { + 'source_tmpl': 'Algorithm-Dependency-1.110.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/A/AD/ADAMK'], + }), + ('Font::TTF', '1.05', { + 'source_tmpl': 'Font-TTF-1.05.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/M/MH/MHOSKEN'], + }), + ('IPC::Run3', '0.048', { + 'source_tmpl': 'IPC-Run3-0.048.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + }), + ('File::Find::Rule', '0.34', { + 'source_tmpl': 'File-Find-Rule-0.34.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RC/RCLAMP'], + }), + ('SQL::Statement', '1.410', { + 'source_tmpl': 'SQL-Statement-1.410.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RE/REHSACK'], + }), + ('File::Slurp', '9999.19', { + 'source_tmpl': 'File-Slurp-9999.19.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/U/UR/URI'], + }), + ('Package::Stash', '0.37', { + 'source_tmpl': 'Package-Stash-0.37.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DO/DOY'], + }), + ('Data::OptList', '0.110', { + 'source_tmpl': 'Data-OptList-0.110.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + }), + ('CPANPLUS', '0.9160', { + 'source_tmpl': 'CPANPLUS-0.9160.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/B/BI/BINGOS'], + }), + ('IO::Tty', '1.12', { + 'source_tmpl': 'IO-Tty-1.12.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/T/TO/TODDR'], + }), + ('Text::Soundex', '3.05', { + 'source_tmpl': 'Text-Soundex-3.05.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + }), + ('Lingua::EN::PluralToSingular', '0.18', { + 'source_tmpl': 'Lingua-EN-PluralToSingular-0.18.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/B/BK/BKB'], + }), + ('Want', '0.29', { + 'source_tmpl': 'Want-0.29.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RO/ROBIN'], + }), + ('Cwd::Guard', '0.05', { + 'source_tmpl': 'Cwd-Guard-0.05.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/K/KA/KAZEBURO'], + }), + ('Bundle::BioPerl', '2.1.9', { + 'source_tmpl': 'Bundle-BioPerl-2.1.9.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/C/CJ/CJFIELDS'], + }), + ('Mail::Util', '2.18', { + 'source_tmpl': 'MailTools-2.18.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/M/MA/MARKOV'], + }), +] + +moduleclass = 'lang' diff --git a/p/Perl/Perl-5.24.0-bare.eb b/p/Perl/Perl-5.24.0-bare.eb new file mode 100644 index 00000000..19b1febd --- /dev/null +++ b/p/Perl/Perl-5.24.0-bare.eb @@ -0,0 +1,19 @@ +name = 'Perl' +version = '5.24.0' +versionsuffix = '-bare' + +homepage = 'http://www.perl.org/' +description = """Larry Wall's Practical Extraction and Report Language""" + +toolchain = {'name': 'dummy', 'version': ''} +toolchainopts = {'optarch': True, 'pic': True} + +source_urls = ['http://www.cpan.org/src/5.0'] +sources = [SOURCELOWER_TAR_GZ] + +# bare, no extensions +exts_list = [] + +runtest = 'test' + +moduleclass = 'lang' diff --git a/p/Perl/Perl-5.24.0-foss-2016b.eb b/p/Perl/Perl-5.24.0-foss-2016b.eb new file mode 100644 index 00000000..77e0aab0 --- /dev/null +++ b/p/Perl/Perl-5.24.0-foss-2016b.eb @@ -0,0 +1,884 @@ +name = 'Perl' +version = '5.24.0' + +homepage = 'http://www.perl.org/' +description = """Larry Wall's Practical Extraction and Report Language""" + +toolchain = {'name': 'foss', 'version': '2016b'} +toolchainopts = {'pic': True} + +source_urls = ['http://www.cpan.org/src/%(version_major)s.0'] +sources = [SOURCELOWER_TAR_GZ] + +exts_list = [ + ('Config::General', '2.61', { + 'source_tmpl': 'Config-General-2.61.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/T/TL/TLINDEN'], + }), + ('File::Listing', '6.04', { + 'source_tmpl': 'File-Listing-6.04.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/G/GA/GAAS'], + }), + ('ExtUtils::InstallPaths', '0.011', { + 'source_tmpl': 'ExtUtils-InstallPaths-0.011.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/L/LE/LEONT'], + }), + ('ExtUtils::Helpers', '0.022', { + 'source_tmpl': 'ExtUtils-Helpers-0.022.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/L/LE/LEONT'], + }), + ('Test::Harness', '3.36', { + 'source_tmpl': 'Test-Harness-3.36.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/L/LE/LEONT'], + }), + ('ExtUtils::Config', '0.008', { + 'source_tmpl': 'ExtUtils-Config-0.008.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/L/LE/LEONT'], + }), + ('Module::Build::Tiny', '0.039', { + 'source_tmpl': 'Module-Build-Tiny-0.039.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/L/LE/LEONT'], + }), + ('aliased', '0.34', { + 'source_tmpl': 'aliased-0.34.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/ET/ETHER'], + }), + ('Text::Glob', '0.09', { + 'source_tmpl': 'Text-Glob-0.09.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RC/RCLAMP'], + }), + ('Regexp::Common', '2016060801', { + 'source_tmpl': 'Regexp-Common-2016060801.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/A/AB/ABIGAIL'], + }), + ('GO::Utils', '0.15', { + 'source_tmpl': 'go-perl-0.15.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/C/CM/CMUNGALL'], + }), + ('Module::Pluggable', '5.2', { + 'source_tmpl': 'Module-Pluggable-5.2.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/S/SI/SIMONW'], + }), + ('Test::Fatal', '0.014', { + 'source_tmpl': 'Test-Fatal-0.014.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + }), + ('Test::Warnings', '0.026', { + 'source_tmpl': 'Test-Warnings-0.026.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/ET/ETHER'], + }), + ('DateTime::Locale', '1.05', { + 'source_tmpl': 'DateTime-Locale-1.05.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DR/DROLSKY'], + }), + ('DateTime::TimeZone', '2.00', { + 'source_tmpl': 'DateTime-TimeZone-2.00.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DR/DROLSKY'], + }), + ('Test::Requires', '0.10', { + 'source_tmpl': 'Test-Requires-0.10.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/T/TO/TOKUHIROM'], + }), + ('Module::Implementation', '0.09', { + 'source_tmpl': 'Module-Implementation-0.09.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DR/DROLSKY'], + }), + ('Module::Build', '0.4218', { + 'source_tmpl': 'Module-Build-0.4218.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/L/LE/LEONT'], + }), + ('Module::Runtime', '0.014', { + 'source_tmpl': 'Module-Runtime-0.014.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/Z/ZE/ZEFRAM'], + }), + ('Try::Tiny', '0.24', { + 'source_tmpl': 'Try-Tiny-0.24.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/ET/ETHER'], + }), + ('Params::Validate', '1.24', { + 'source_tmpl': 'Params-Validate-1.24.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DR/DROLSKY'], + }), + ('List::MoreUtils', '0.416', { + 'source_tmpl': 'List-MoreUtils-0.416.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RE/REHSACK'], + }), + ('Exporter::Tiny', '0.042', { + 'source_tmpl': 'Exporter-Tiny-0.042.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/T/TO/TOBYINK'], + }), + ('Class::Singleton', '1.5', { + 'source_tmpl': 'Class-Singleton-1.5.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/S/SH/SHAY'], + }), + ('DateTime', '1.34', { + 'source_tmpl': 'DateTime-1.34.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DR/DROLSKY'], + }), + ('File::Find::Rule::Perl', '1.15', { + 'source_tmpl': 'File-Find-Rule-Perl-1.15.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/ET/ETHER'], + }), + ('Readonly', '2.05', { + 'source_tmpl': 'Readonly-2.05.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/S/SA/SANKO'], + }), + ('Git', '0.41', { + 'source_tmpl': 'Git-0.41.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/M/MS/MSOUTH'], + }), + ('Tree::DAG_Node', '1.29', { + 'source_tmpl': 'Tree-DAG_Node-1.29.tgz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RS/RSAVAGE'], + }), + ('Template', '2.26', { + 'source_tmpl': 'Template-Toolkit-2.26.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/A/AB/ABW'], + }), + ('FreezeThaw', '0.5001', { + 'source_tmpl': 'FreezeThaw-0.5001.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/I/IL/ILYAZ/modules'], + }), + ('DBI', '1.636', { + 'source_tmpl': 'DBI-1.636.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/T/TI/TIMB'], + }), + ('DBD::SQLite', '1.50', { + 'source_tmpl': 'DBD-SQLite-1.50.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/I/IS/ISHIGAKI'], + }), + ('Math::Bezier', '0.01', { + 'source_tmpl': 'Math-Bezier-0.01.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/A/AB/ABW'], + }), + ('Archive::Extract', '0.76', { + 'source_tmpl': 'Archive-Extract-0.76.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/B/BI/BINGOS'], + }), + ('DBIx::Simple', '1.35', { + 'source_tmpl': 'DBIx-Simple-1.35.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/J/JU/JUERD'], + }), + ('Shell', '0.73', { + 'source_tmpl': 'Shell-0.73.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/F/FE/FERREIRA'], + }), + ('File::Spec', '3.62', { + 'source_tmpl': 'PathTools-3.62.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + }), + ('ExtUtils::MakeMaker', '7.18', { + 'source_tmpl': 'ExtUtils-MakeMaker-7.18.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/B/BI/BINGOS'], + }), + ('Test::Simple', '1.302037', { + 'source_tmpl': 'Test-Simple-1.302037.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/EX/EXODIST'], + }), + ('Set::Scalar', '1.29', { + 'source_tmpl': 'Set-Scalar-1.29.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DA/DAVIDO'], + }), + ('IO::Stringy', '2.111', { + 'source_tmpl': 'IO-stringy-2.111.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DS/DSKOLL'], + }), + ('Encode::Locale', '1.05', { + 'source_tmpl': 'Encode-Locale-1.05.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/G/GA/GAAS'], + }), + ('XML::SAX::Base', '1.08', { + 'source_tmpl': 'XML-SAX-Base-1.08.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/G/GR/GRANTM'], + }), + ('XML::NamespaceSupport', '1.11', { + 'source_tmpl': 'XML-NamespaceSupport-1.11.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/P/PE/PERIGRIN'], + }), + ('XML::SAX', '0.99', { + 'source_tmpl': 'XML-SAX-0.99.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/G/GR/GRANTM'], + }), + ('Test::LeakTrace', '0.15', { + 'source_tmpl': 'Test-LeakTrace-0.15.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/G/GF/GFUJI'], + }), + ('Test::Exception', '0.43', { + 'source_tmpl': 'Test-Exception-0.43.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/EX/EXODIST'], + }), + ('Text::Table', '1.130', { + 'source_tmpl': 'Text-Table-1.130.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/S/SH/SHLOMIF'], + }), + ('MIME::Types', '2.13', { + 'source_tmpl': 'MIME-Types-2.13.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/M/MA/MARKOV'], + }), + ('Module::Build::XSUtil', '0.16', { + 'source_tmpl': 'Module-Build-XSUtil-0.16.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/H/HI/HIDEAKIO'], + }), + ('Tie::Function', '0.02', { + 'source_tmpl': 'Tie-Function-0.02.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DA/DAVIDNICO/handy_tied_functions'], + }), + ('Template::Plugin::Number::Format', '1.06', { + 'source_tmpl': 'Template-Plugin-Number-Format-1.06.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DA/DARREN'], + }), + ('HTML::Parser', '3.72', { + 'source_tmpl': 'HTML-Parser-3.72.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/G/GA/GAAS'], + }), + ('Date::Handler', '1.2', { + 'source_tmpl': 'Date-Handler-1.2.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/B/BB/BBEAUSEJ'], + }), + ('Params::Util', '1.07', { + 'source_tmpl': 'Params-Util-1.07.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/A/AD/ADAMK'], + }), + ('IO::HTML', '1.001', { + 'source_tmpl': 'IO-HTML-1.001.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/C/CJ/CJM'], + }), + ('Data::Grove', '0.08', { + 'source_tmpl': 'libxml-perl-0.08.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/K/KM/KMACLEOD'], + }), + ('Class::ISA', '0.36', { + 'source_tmpl': 'Class-ISA-0.36.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/S/SM/SMUELLER'], + }), + ('URI', '1.71', { + 'source_tmpl': 'URI-1.71.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/ET/ETHER'], + }), + ('Ima::DBI', '0.35', { + 'source_tmpl': 'Ima-DBI-0.35.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/P/PE/PERRIN'], + }), + ('Tie::IxHash', '1.23', { + 'source_tmpl': 'Tie-IxHash-1.23.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/C/CH/CHORNY'], + }), + ('GO', '0.04', { + 'source_tmpl': 'go-db-perl-0.04.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/S/SJ/SJCARBON'], + }), + ('Class::DBI::SQLite', '0.11', { + 'source_tmpl': 'Class-DBI-SQLite-0.11.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/M/MI/MIYAGAWA'], + }), + ('Pod::POM', '2.01', { + 'source_tmpl': 'Pod-POM-2.01.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/N/NE/NEILB'], + }), + ('Math::Round', '0.07', { + 'source_tmpl': 'Math-Round-0.07.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/G/GR/GROMMEL'], + }), + ('Text::Diff', '1.44', { + 'source_tmpl': 'Text-Diff-1.44.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/N/NE/NEILB'], + }), + ('Log::Message::Simple', '0.10', { + 'source_tmpl': 'Log-Message-Simple-0.10.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/B/BI/BINGOS'], + }), + ('IO::Socket::SSL', '2.029', { + 'source_tmpl': 'IO-Socket-SSL-2.029.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/S/SU/SULLR'], + }), + ('Fennec::Lite', '0.004', { + 'source_tmpl': 'Fennec-Lite-0.004.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/EX/EXODIST'], + }), + ('Sub::Uplevel', '0.25', { + 'source_tmpl': 'Sub-Uplevel-0.25.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DA/DAGOLDEN'], + }), + ('Meta::Builder', '0.003', { + 'source_tmpl': 'Meta-Builder-0.003.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/EX/EXODIST'], + }), + ('Exporter::Declare', '0.114', { + 'source_tmpl': 'Exporter-Declare-0.114.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/EX/EXODIST'], + }), + ('Getopt::Long', '2.48', { + 'source_tmpl': 'Getopt-Long-2.48.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/J/JV/JV'], + }), + ('Log::Message', '0.08', { + 'source_tmpl': 'Log-Message-0.08.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/B/BI/BINGOS'], + }), + ('Mouse', 'v2.4.5', { + 'source_tmpl': 'Mouse-v2.4.5.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/S/SY/SYOHEX'], + }), + ('Test::Version', '2.04', { + 'source_tmpl': 'Test-Version-2.04.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/P/PL/PLICEASE'], + }), + ('DBIx::Admin::TableInfo', '3.01', { + 'source_tmpl': 'DBIx-Admin-TableInfo-3.01.tgz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RS/RSAVAGE'], + }), + ('Net::HTTP', '6.09', { + 'source_tmpl': 'Net-HTTP-6.09.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/ET/ETHER'], + }), + ('Test::Deep', '1.120', { + 'source_tmpl': 'Test-Deep-1.120.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + }), + ('Test::Warn', '0.30', { + 'source_tmpl': 'Test-Warn-0.30.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/C/CH/CHORNY'], + }), + ('MRO::Compat', '0.12', { + 'source_tmpl': 'MRO-Compat-0.12.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/B/BO/BOBTFISH'], + }), + ('Moo', '2.002004', { + 'source_tmpl': 'Moo-2.002004.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/H/HA/HAARG'], + }), + ('Hash::Merge', '0.200', { + 'source_tmpl': 'Hash-Merge-0.200.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RE/REHSACK'], + }), + ('SQL::Abstract', '1.81', { + 'source_tmpl': 'SQL-Abstract-1.81.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RI/RIBASUSHI'], + }), + ('HTML::Form', '6.03', { + 'source_tmpl': 'HTML-Form-6.03.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/G/GA/GAAS'], + }), + ('File::Copy::Recursive', '0.38', { + 'source_tmpl': 'File-Copy-Recursive-0.38.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DM/DMUEY'], + }), + ('Number::Compare', '0.03', { + 'source_tmpl': 'Number-Compare-0.03.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RC/RCLAMP'], + }), + ('IPC::Run', '0.94', { + 'source_tmpl': 'IPC-Run-0.94.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/T/TO/TODDR'], + }), + ('HTML::Entities::Interpolate', '1.09', { + 'source_tmpl': 'HTML-Entities-Interpolate-1.09.tgz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RS/RSAVAGE'], + }), + ('Test::ClassAPI', '1.06', { + 'source_tmpl': 'Test-ClassAPI-1.06.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/A/AD/ADAMK'], + }), + ('Test::Most', '0.34', { + 'source_tmpl': 'Test-Most-0.34.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/O/OV/OVID'], + }), + ('Class::Accessor', '0.34', { + 'source_tmpl': 'Class-Accessor-0.34.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/K/KA/KASEI'], + }), + ('Test::Differences', '0.64', { + 'source_tmpl': 'Test-Differences-0.64.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DC/DCANTRELL'], + }), + ('HTTP::Tiny', '0.058', { + 'source_tmpl': 'HTTP-Tiny-0.058.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DA/DAGOLDEN'], + }), + ('Package::DeprecationManager', '0.17', { + 'source_tmpl': 'Package-DeprecationManager-0.17.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DR/DROLSKY'], + }), + ('Digest::SHA1', '2.13', { + 'source_tmpl': 'Digest-SHA1-2.13.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/G/GA/GAAS'], + }), + ('Date::Language', '2.30', { + 'source_tmpl': 'TimeDate-2.30.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/G/GB/GBARR'], + }), + ('version', '0.9917', { + 'source_tmpl': 'version-0.9917.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/J/JP/JPEACOCK'], + }), + ('Sub::Uplevel', '0.25', { + 'source_tmpl': 'Sub-Uplevel-0.25.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DA/DAGOLDEN'], + }), + ('XML::Bare', '0.53', { + 'source_tmpl': 'XML-Bare-0.53.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/C/CO/CODECHILD'], + }), + ('Dist::CheckConflicts', '0.11', { + 'source_tmpl': 'Dist-CheckConflicts-0.11.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DO/DOY'], + }), + ('Sub::Name', '0.15', { + 'source_tmpl': 'Sub-Name-0.15.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/ET/ETHER'], + }), + ('Time::Piece', '1.31', { + 'source_tmpl': 'Time-Piece-1.31.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/ES/ESAYM'], + }), + ('Digest::HMAC', '1.03', { + 'source_tmpl': 'Digest-HMAC-1.03.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/G/GA/GAAS'], + }), + ('HTTP::Negotiate', '6.01', { + 'source_tmpl': 'HTTP-Negotiate-6.01.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/G/GA/GAAS'], + }), + ('MIME::Lite', '3.030', { + 'source_tmpl': 'MIME-Lite-3.030.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + }), + ('Crypt::Rijndael', '1.13', { + 'source_tmpl': 'Crypt-Rijndael-1.13.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/L/LE/LEONT'], + }), + ('B::Lint', '1.20', { + 'source_tmpl': 'B-Lint-1.20.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + }), + ('Canary::Stability', '2011', { + 'source_tmpl': 'Canary-Stability-2011.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/M/ML/MLEHMANN'], + }), + ('AnyEvent', '7.12', { + 'source_tmpl': 'AnyEvent-7.12.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/M/ML/MLEHMANN'], + }), + ('Object::Accessor', '0.48', { + 'source_tmpl': 'Object-Accessor-0.48.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/B/BI/BINGOS'], + }), + ('Data::UUID', '1.221', { + 'source_tmpl': 'Data-UUID-1.221.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + }), + ('Test::Pod', '1.51', { + 'source_tmpl': 'Test-Pod-1.51.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/ET/ETHER'], + }), + ('AppConfig', '1.71', { + 'source_tmpl': 'AppConfig-1.71.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/N/NE/NEILB'], + }), + ('Net::SMTP::SSL', '1.03', { + 'source_tmpl': 'Net-SMTP-SSL-1.03.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + }), + ('XML::Tiny', '2.06', { + 'source_tmpl': 'XML-Tiny-2.06.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DC/DCANTRELL'], + }), + ('HTML::Tagset', '3.20', { + 'source_tmpl': 'HTML-Tagset-3.20.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/P/PE/PETDANCE'], + }), + ('HTML::Tree', '5.03', { + 'source_tmpl': 'HTML-Tree-5.03.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/C/CJ/CJM'], + }), + ('Devel::GlobalDestruction', '0.13', { + 'source_tmpl': 'Devel-GlobalDestruction-0.13.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/H/HA/HAARG'], + }), + ('WWW::RobotRules', '6.02', { + 'source_tmpl': 'WWW-RobotRules-6.02.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/G/GA/GAAS'], + }), + ('Expect', '1.33', { + 'source_tmpl': 'Expect-1.33.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/J/JA/JACOBY/'], + }), + ('Term::UI', '0.46', { + 'source_tmpl': 'Term-UI-0.46.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/B/BI/BINGOS'], + }), + ('Net::SNMP', 'v6.0.1', { + 'source_tmpl': 'Net-SNMP-v6.0.1.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DT/DTOWN'], + }), + ('XML::SAX::Writer', '0.56', { + 'source_tmpl': 'XML-SAX-Writer-0.56.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/P/PE/PERIGRIN'], + }), + ('Statistics::Descriptive', '3.0612', { + 'source_tmpl': 'Statistics-Descriptive-3.0612.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/S/SH/SHLOMIF'], + }), + ('Class::Load', '0.23', { + 'source_tmpl': 'Class-Load-0.23.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/ET/ETHER'], + }), + ('LWP::Simple', '6.15', { + 'source_tmpl': 'libwww-perl-6.15.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/ET/ETHER'], + }), + ('Time::Piece::MySQL', '0.06', { + 'source_tmpl': 'Time-Piece-MySQL-0.06.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/K/KA/KASEI'], + }), + ('Package::Stash::XS', '0.28', { + 'source_tmpl': 'Package-Stash-XS-0.28.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DO/DOY'], + }), + ('GD::Graph', '1.52', { + 'source_tmpl': 'GDGraph-1.52.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RU/RUZ'], + }), + ('Set::Array', '0.30', { + 'source_tmpl': 'Set-Array-0.30.tgz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RS/RSAVAGE'], + }), + ('boolean', '0.45', { + 'source_tmpl': 'boolean-0.45.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/I/IN/INGY'], + }), + ('Number::Format', '1.75', { + 'source_tmpl': 'Number-Format-1.75.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/W/WR/WRW'], + }), + ('Data::Stag', '0.14', { + 'source_tmpl': 'Data-Stag-0.14.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/C/CM/CMUNGALL'], + }), + ('Test::NoWarnings', '1.04', { + 'source_tmpl': 'Test-NoWarnings-1.04.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/A/AD/ADAMK'], + }), + ('Crypt::DES', '2.07', { + 'source_tmpl': 'Crypt-DES-2.07.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DP/DPARIS'], + }), + ('Exporter', '5.72', { + 'source_tmpl': 'Exporter-5.72.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/T/TO/TODDR'], + }), + ('Class::Inspector', '1.28', { + 'source_tmpl': 'Class-Inspector-1.28.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/A/AD/ADAMK'], + }), + ('Parse::RecDescent', '1.967013', { + 'source_tmpl': 'Parse-RecDescent-1.967013.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/J/JT/JTBRAUN'], + }), + ('Carp', '1.38', { + 'source_tmpl': 'Carp-1.38.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + }), + ('XML::XPath', '1.37', { + 'source_tmpl': 'XML-XPath-1.37.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/M/MA/MANWAR'], + }), + ('Capture::Tiny', '0.42', { + 'source_tmpl': 'Capture-Tiny-0.42.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DA/DAGOLDEN'], + }), + ('JSON', '2.90', { + 'source_tmpl': 'JSON-2.90.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/M/MA/MAKAMAKA'], + }), + ('Sub::Exporter', '0.987', { + 'source_tmpl': 'Sub-Exporter-0.987.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + }), + ('Class::Load::XS', '0.09', { + 'source_tmpl': 'Class-Load-XS-0.09.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/ET/ETHER'], + }), + ('Set::IntSpan::Fast', '1.15', { + 'source_tmpl': 'Set-IntSpan-Fast-1.15.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/A/AN/ANDYA'], + }), + ('Sub::Exporter::Progressive', '0.001011', { + 'source_tmpl': 'Sub-Exporter-Progressive-0.001011.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/F/FR/FREW'], + }), + ('Data::Dumper::Concise', '2.022', { + 'source_tmpl': 'Data-Dumper-Concise-2.022.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/F/FR/FREW'], + }), + ('File::Slurp::Tiny', '0.004', { + 'source_tmpl': 'File-Slurp-Tiny-0.004.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/L/LE/LEONT'], + }), + ('Algorithm::Diff', '1.1903', { + 'source_tmpl': 'Algorithm-Diff-1.1903.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/T/TY/TYEMQ'], + }), + ('AnyData', '0.12', { + 'source_tmpl': 'AnyData-0.12.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RE/REHSACK'], + }), + ('Text::Iconv', '1.7', { + 'source_tmpl': 'Text-Iconv-1.7.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/M/MP/MPIOTR'], + }), + ('Class::Data::Inheritable', '0.08', { + 'source_tmpl': 'Class-Data-Inheritable-0.08.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/T/TM/TMTM'], + }), + ('Text::Balanced', '2.03', { + 'source_tmpl': 'Text-Balanced-2.03.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/S/SH/SHAY'], + }), + ('strictures', '2.000003', { + 'source_tmpl': 'strictures-2.000003.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/H/HA/HAARG'], + }), + ('Switch', '2.17', { + 'source_tmpl': 'Switch-2.17.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/C/CH/CHORNY'], + }), + ('File::Which', '1.21', { + 'source_tmpl': 'File-Which-1.21.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/P/PL/PLICEASE'], + }), + ('Email::Date::Format', '1.005', { + 'source_tmpl': 'Email-Date-Format-1.005.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + }), + ('Error', '0.17024', { + 'source_tmpl': 'Error-0.17024.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/S/SH/SHLOMIF'], + }), + ('Mock::Quick', '1.111', { + 'source_tmpl': 'Mock-Quick-1.111.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/EX/EXODIST'], + }), + ('Text::CSV', '1.33', { + 'source_tmpl': 'Text-CSV-1.33.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/M/MA/MAKAMAKA'], + }), + ('Test::Output', '1.03', { + 'source_tmpl': 'Test-Output-1.03.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/B/BD/BDFOY'], + }), + ('Class::DBI', '3.0.17', { + 'source_tmpl': 'Class-DBI-v3.0.17.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/T/TM/TMTM'], + }), + ('List::AllUtils', '0.11', { + 'source_tmpl': 'List-AllUtils-0.11.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DR/DROLSKY'], + }), + ('UNIVERSAL::moniker', '0.08', { + 'source_tmpl': 'UNIVERSAL-moniker-0.08.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/K/KA/KASEI'], + }), + ('Exception::Class', '1.40', { + 'source_tmpl': 'Exception-Class-1.40.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DR/DROLSKY'], + }), + ('File::CheckTree', '4.42', { + 'source_tmpl': 'File-CheckTree-4.42.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + }), + ('Math::VecStat', '0.08', { + 'source_tmpl': 'Math-VecStat-0.08.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/A/AS/ASPINELLI'], + }), + ('Pod::LaTeX', '0.61', { + 'source_tmpl': 'Pod-LaTeX-0.61.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/T/TJ/TJENNESS'], + }), + ('Eval::Closure', '0.14', { + 'source_tmpl': 'Eval-Closure-0.14.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DO/DOY'], + }), + ('HTTP::Request', '6.11', { + 'source_tmpl': 'HTTP-Message-6.11.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/ET/ETHER'], + }), + ('XML::Twig', '3.49', { + 'source_tmpl': 'XML-Twig-3.49.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/M/MI/MIROD'], + }), + ('IO::String', '1.08', { + 'source_tmpl': 'IO-String-1.08.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/G/GA/GAAS'], + }), + ('XML::Simple', '2.22', { + 'source_tmpl': 'XML-Simple-2.22.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/G/GR/GRANTM'], + }), + ('Sub::Install', '0.928', { + 'source_tmpl': 'Sub-Install-0.928.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + }), + ('HTTP::Cookies', '6.01', { + 'source_tmpl': 'HTTP-Cookies-6.01.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/G/GA/GAAS'], + }), + ('Pod::Plainer', '1.04', { + 'source_tmpl': 'Pod-Plainer-1.04.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RM/RMBARKER'], + }), + ('Test::Exception::LessClever', '0.007', { + 'source_tmpl': 'Test-Exception-LessClever-0.007.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/EX/EXODIST'], + }), + ('LWP::MediaTypes', '6.02', { + 'source_tmpl': 'LWP-MediaTypes-6.02.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/G/GA/GAAS'], + }), + ('Scalar::Util', '1.45', { + 'source_tmpl': 'Scalar-List-Utils-1.45.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/P/PE/PEVANS'], + }), + ('Data::Section::Simple', '0.07', { + 'source_tmpl': 'Data-Section-Simple-0.07.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/M/MI/MIYAGAWA'], + }), + ('Class::Trigger', '0.14', { + 'source_tmpl': 'Class-Trigger-0.14.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/M/MI/MIYAGAWA'], + }), + ('HTTP::Daemon', '6.01', { + 'source_tmpl': 'HTTP-Daemon-6.01.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/G/GA/GAAS'], + }), + ('File::HomeDir', '1.00', { + 'source_tmpl': 'File-HomeDir-1.00.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/A/AD/ADAMK'], + }), + ('HTTP::Date', '6.02', { + 'source_tmpl': 'HTTP-Date-6.02.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/G/GA/GAAS'], + }), + ('Authen::SASL', '2.16', { + 'source_tmpl': 'Authen-SASL-2.16.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/G/GB/GBARR'], + }), + ('Clone', '0.38', { + 'source_tmpl': 'Clone-0.38.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/G/GA/GARU'], + }), + ('Data::Types', '0.09', { + 'source_tmpl': 'Data-Types-0.09.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DW/DWHEELER'], + }), + ('Import::Into', '1.002005', { + 'source_tmpl': 'Import-Into-1.002005.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/H/HA/HAARG'], + }), + ('DateTime::Tiny', '1.06', { + 'source_tmpl': 'DateTime-Tiny-1.06.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DA/DAGOLDEN'], + }), + ('DBD::AnyData', '0.110', { + 'source_tmpl': 'DBD-AnyData-0.110.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RE/REHSACK'], + }), + ('Text::Format', '0.59', { + 'source_tmpl': 'Text-Format-0.59.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/S/SH/SHLOMIF'], + }), + ('Devel::CheckCompiler', '0.06', { + 'source_tmpl': 'Devel-CheckCompiler-0.06.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/S/SY/SYOHEX'], + }), + ('Log::Handler', '0.84', { + 'source_tmpl': 'Log-Handler-0.84.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/B/BL/BLOONIX'], + }), + ('DBIx::ContextualFetch', '1.03', { + 'source_tmpl': 'DBIx-ContextualFetch-1.03.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/T/TM/TMTM'], + }), + ('Devel::StackTrace', '2.01', { + 'source_tmpl': 'Devel-StackTrace-2.01.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DR/DROLSKY'], + }), + ('Term::ReadKey', '2.33', { + 'source_tmpl': 'TermReadKey-2.33.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/J/JS/JSTOWE'], + }), + ('Set::IntSpan', '1.19', { + 'source_tmpl': 'Set-IntSpan-1.19.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/S/SW/SWMCD'], + }), + ('Moose', '2.1804', { + 'source_tmpl': 'Moose-2.1804.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/ET/ETHER'], + }), + ('Algorithm::Dependency', '1.110', { + 'source_tmpl': 'Algorithm-Dependency-1.110.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/A/AD/ADAMK'], + }), + ('Font::TTF', '1.05', { + 'source_tmpl': 'Font-TTF-1.05.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/M/MH/MHOSKEN'], + }), + ('IPC::Run3', '0.048', { + 'source_tmpl': 'IPC-Run3-0.048.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + }), + ('File::Find::Rule', '0.34', { + 'source_tmpl': 'File-Find-Rule-0.34.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RC/RCLAMP'], + }), + ('SQL::Statement', '1.410', { + 'source_tmpl': 'SQL-Statement-1.410.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RE/REHSACK'], + }), + ('File::Slurp', '9999.19', { + 'source_tmpl': 'File-Slurp-9999.19.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/U/UR/URI'], + }), + ('Package::Stash', '0.37', { + 'source_tmpl': 'Package-Stash-0.37.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DO/DOY'], + }), + ('Data::OptList', '0.110', { + 'source_tmpl': 'Data-OptList-0.110.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + }), + ('CPANPLUS', '0.9160', { + 'source_tmpl': 'CPANPLUS-0.9160.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/B/BI/BINGOS'], + }), + ('IO::Tty', '1.12', { + 'source_tmpl': 'IO-Tty-1.12.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/T/TO/TODDR'], + }), + ('Text::Soundex', '3.05', { + 'source_tmpl': 'Text-Soundex-3.05.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + }), + ('Lingua::EN::PluralToSingular', '0.18', { + 'source_tmpl': 'Lingua-EN-PluralToSingular-0.18.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/B/BK/BKB'], + }), + ('Want', '0.29', { + 'source_tmpl': 'Want-0.29.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RO/ROBIN'], + }), + ('Cwd::Guard', '0.05', { + 'source_tmpl': 'Cwd-Guard-0.05.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/K/KA/KAZEBURO'], + }), + ('Bundle::BioPerl', '2.1.9', { + 'source_tmpl': 'Bundle-BioPerl-2.1.9.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/C/CJ/CJFIELDS'], + }), + ('Mail::Util', '2.18', { + 'source_tmpl': 'MailTools-2.18.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/M/MA/MARKOV'], + }), +] + +moduleclass = 'lang' diff --git a/p/Perl/Perl-5.24.0-intel-2016b.eb b/p/Perl/Perl-5.24.0-intel-2016b.eb new file mode 100644 index 00000000..087478fa --- /dev/null +++ b/p/Perl/Perl-5.24.0-intel-2016b.eb @@ -0,0 +1,885 @@ +name = 'Perl' +version = '5.24.0' + +homepage = 'http://www.perl.org/' +description = """Larry Wall's Practical Extraction and Report Language""" + +toolchain = {'name': 'intel', 'version': '2016b'} +toolchainopts = {'pic': True} + +source_urls = ['http://www.cpan.org/src/%(version_major)s.0'] +sources = [SOURCELOWER_TAR_GZ] + +exts_list = [ + ('Config::General', '2.61', { + 'source_tmpl': 'Config-General-2.61.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/T/TL/TLINDEN'], + }), + ('File::Listing', '6.04', { + 'source_tmpl': 'File-Listing-6.04.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/G/GA/GAAS'], + }), + ('ExtUtils::InstallPaths', '0.011', { + 'source_tmpl': 'ExtUtils-InstallPaths-0.011.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/L/LE/LEONT'], + }), + ('ExtUtils::Helpers', '0.022', { + 'source_tmpl': 'ExtUtils-Helpers-0.022.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/L/LE/LEONT'], + }), + ('Test::Harness', '3.36', { + 'source_tmpl': 'Test-Harness-3.36.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/L/LE/LEONT'], + }), + ('ExtUtils::Config', '0.008', { + 'source_tmpl': 'ExtUtils-Config-0.008.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/L/LE/LEONT'], + }), + ('Module::Build::Tiny', '0.039', { + 'source_tmpl': 'Module-Build-Tiny-0.039.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/L/LE/LEONT'], + }), + ('aliased', '0.34', { + 'source_tmpl': 'aliased-0.34.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/ET/ETHER'], + }), + ('Text::Glob', '0.09', { + 'source_tmpl': 'Text-Glob-0.09.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RC/RCLAMP'], + }), + ('Regexp::Common', '2016060801', { + 'source_tmpl': 'Regexp-Common-2016060801.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/A/AB/ABIGAIL'], + }), + ('GO::Utils', '0.15', { + 'source_tmpl': 'go-perl-0.15.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/C/CM/CMUNGALL'], + }), + ('Module::Pluggable', '5.2', { + 'source_tmpl': 'Module-Pluggable-5.2.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/S/SI/SIMONW'], + }), + ('Test::Fatal', '0.014', { + 'source_tmpl': 'Test-Fatal-0.014.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + }), + ('Test::Warnings', '0.026', { + 'source_tmpl': 'Test-Warnings-0.026.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/ET/ETHER'], + }), + ('DateTime::Locale', '1.05', { + 'source_tmpl': 'DateTime-Locale-1.05.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DR/DROLSKY'], + }), + ('DateTime::TimeZone', '2.00', { + 'source_tmpl': 'DateTime-TimeZone-2.00.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DR/DROLSKY'], + }), + ('Test::Requires', '0.10', { + 'source_tmpl': 'Test-Requires-0.10.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/T/TO/TOKUHIROM'], + }), + ('Module::Implementation', '0.09', { + 'source_tmpl': 'Module-Implementation-0.09.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DR/DROLSKY'], + }), + ('Module::Build', '0.4218', { + 'source_tmpl': 'Module-Build-0.4218.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/L/LE/LEONT'], + }), + ('Module::Runtime', '0.014', { + 'source_tmpl': 'Module-Runtime-0.014.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/Z/ZE/ZEFRAM'], + }), + ('Try::Tiny', '0.24', { + 'source_tmpl': 'Try-Tiny-0.24.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/ET/ETHER'], + }), + ('Params::Validate', '1.24', { + 'source_tmpl': 'Params-Validate-1.24.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DR/DROLSKY'], + }), + ('List::MoreUtils', '0.416', { + 'source_tmpl': 'List-MoreUtils-0.416.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RE/REHSACK'], + }), + ('Exporter::Tiny', '0.042', { + 'source_tmpl': 'Exporter-Tiny-0.042.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/T/TO/TOBYINK'], + }), + ('Class::Singleton', '1.5', { + 'source_tmpl': 'Class-Singleton-1.5.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/S/SH/SHAY'], + }), + ('DateTime', '1.34', { + 'source_tmpl': 'DateTime-1.34.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DR/DROLSKY'], + }), + ('File::Find::Rule::Perl', '1.15', { + 'source_tmpl': 'File-Find-Rule-Perl-1.15.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/ET/ETHER'], + }), + ('Readonly', '2.05', { + 'source_tmpl': 'Readonly-2.05.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/S/SA/SANKO'], + }), + ('Git', '0.41', { + 'source_tmpl': 'Git-0.41.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/M/MS/MSOUTH'], + }), + ('Tree::DAG_Node', '1.29', { + 'source_tmpl': 'Tree-DAG_Node-1.29.tgz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RS/RSAVAGE'], + }), + ('Template', '2.26', { + 'source_tmpl': 'Template-Toolkit-2.26.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/A/AB/ABW'], + }), + ('FreezeThaw', '0.5001', { + 'source_tmpl': 'FreezeThaw-0.5001.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/I/IL/ILYAZ/modules'], + }), + ('DBI', '1.636', { + 'source_tmpl': 'DBI-1.636.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/T/TI/TIMB'], + }), + ('DBD::SQLite', '1.50', { + 'source_tmpl': 'DBD-SQLite-1.50.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/I/IS/ISHIGAKI'], + }), + ('Math::Bezier', '0.01', { + 'source_tmpl': 'Math-Bezier-0.01.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/A/AB/ABW'], + }), + ('Archive::Extract', '0.76', { + 'source_tmpl': 'Archive-Extract-0.76.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/B/BI/BINGOS'], + }), + ('DBIx::Simple', '1.35', { + 'source_tmpl': 'DBIx-Simple-1.35.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/J/JU/JUERD'], + }), + ('Shell', '0.73', { + 'source_tmpl': 'Shell-0.73.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/F/FE/FERREIRA'], + }), + ('File::Spec', '3.62', { + 'source_tmpl': 'PathTools-3.62.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + }), + ('ExtUtils::MakeMaker', '7.18', { + 'source_tmpl': 'ExtUtils-MakeMaker-7.18.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/B/BI/BINGOS'], + }), + ('Test::Simple', '1.302037', { + 'source_tmpl': 'Test-Simple-1.302037.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/EX/EXODIST'], + }), + ('Set::Scalar', '1.29', { + 'source_tmpl': 'Set-Scalar-1.29.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DA/DAVIDO'], + }), + ('IO::Stringy', '2.111', { + 'source_tmpl': 'IO-stringy-2.111.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DS/DSKOLL'], + }), + ('Encode::Locale', '1.05', { + 'source_tmpl': 'Encode-Locale-1.05.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/G/GA/GAAS'], + }), + ('XML::SAX::Base', '1.08', { + 'source_tmpl': 'XML-SAX-Base-1.08.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/G/GR/GRANTM'], + }), + ('XML::NamespaceSupport', '1.11', { + 'source_tmpl': 'XML-NamespaceSupport-1.11.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/P/PE/PERIGRIN'], + }), + ('XML::SAX', '0.99', { + 'source_tmpl': 'XML-SAX-0.99.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/G/GR/GRANTM'], + }), + ('Test::LeakTrace', '0.15', { + 'source_tmpl': 'Test-LeakTrace-0.15.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/G/GF/GFUJI'], + }), + ('Test::Exception', '0.43', { + 'source_tmpl': 'Test-Exception-0.43.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/EX/EXODIST'], + }), + ('Text::Table', '1.130', { + 'source_tmpl': 'Text-Table-1.130.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/S/SH/SHLOMIF'], + }), + ('MIME::Types', '2.13', { + 'source_tmpl': 'MIME-Types-2.13.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/M/MA/MARKOV'], + }), + ('Module::Build::XSUtil', '0.16', { + 'source_tmpl': 'Module-Build-XSUtil-0.16.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/H/HI/HIDEAKIO'], + }), + ('Tie::Function', '0.02', { + 'source_tmpl': 'Tie-Function-0.02.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DA/DAVIDNICO/handy_tied_functions'], + }), + ('Template::Plugin::Number::Format', '1.06', { + 'source_tmpl': 'Template-Plugin-Number-Format-1.06.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DA/DARREN'], + }), + ('HTML::Parser', '3.72', { + 'source_tmpl': 'HTML-Parser-3.72.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/G/GA/GAAS'], + }), + ('Date::Handler', '1.2', { + 'source_tmpl': 'Date-Handler-1.2.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/B/BB/BBEAUSEJ'], + }), + ('Params::Util', '1.07', { + 'source_tmpl': 'Params-Util-1.07.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/A/AD/ADAMK'], + }), + ('IO::HTML', '1.001', { + 'source_tmpl': 'IO-HTML-1.001.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/C/CJ/CJM'], + }), + ('Data::Grove', '0.08', { + 'source_tmpl': 'libxml-perl-0.08.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/K/KM/KMACLEOD'], + }), + ('Class::ISA', '0.36', { + 'source_tmpl': 'Class-ISA-0.36.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/S/SM/SMUELLER'], + }), + ('URI', '1.71', { + 'source_tmpl': 'URI-1.71.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/ET/ETHER'], + }), + ('Ima::DBI', '0.35', { + 'source_tmpl': 'Ima-DBI-0.35.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/P/PE/PERRIN'], + }), + ('Tie::IxHash', '1.23', { + 'source_tmpl': 'Tie-IxHash-1.23.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/C/CH/CHORNY'], + }), + ('GO', '0.04', { + 'source_tmpl': 'go-db-perl-0.04.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/S/SJ/SJCARBON'], + }), + ('Class::DBI::SQLite', '0.11', { + 'source_tmpl': 'Class-DBI-SQLite-0.11.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/M/MI/MIYAGAWA'], + }), + ('Pod::POM', '2.01', { + 'source_tmpl': 'Pod-POM-2.01.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/N/NE/NEILB'], + }), + ('Math::Round', '0.07', { + 'source_tmpl': 'Math-Round-0.07.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/G/GR/GROMMEL'], + }), + ('Text::Diff', '1.44', { + 'source_tmpl': 'Text-Diff-1.44.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/N/NE/NEILB'], + }), + ('Log::Message::Simple', '0.10', { + 'source_tmpl': 'Log-Message-Simple-0.10.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/B/BI/BINGOS'], + }), + ('IO::Socket::SSL', '2.029', { + 'source_tmpl': 'IO-Socket-SSL-2.029.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/S/SU/SULLR'], + }), + ('Fennec::Lite', '0.004', { + 'source_tmpl': 'Fennec-Lite-0.004.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/EX/EXODIST'], + }), + ('Sub::Uplevel', '0.25', { + 'source_tmpl': 'Sub-Uplevel-0.25.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DA/DAGOLDEN'], + }), + ('Meta::Builder', '0.003', { + 'source_tmpl': 'Meta-Builder-0.003.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/EX/EXODIST'], + }), + ('Exporter::Declare', '0.114', { + 'source_tmpl': 'Exporter-Declare-0.114.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/EX/EXODIST'], + }), + ('Getopt::Long', '2.48', { + 'source_tmpl': 'Getopt-Long-2.48.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/J/JV/JV'], + }), + ('Log::Message', '0.08', { + 'source_tmpl': 'Log-Message-0.08.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/B/BI/BINGOS'], + }), + ('Mouse', 'v2.4.5', { + 'source_tmpl': 'Mouse-v2.4.5.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/S/SY/SYOHEX'], + }), + ('Test::Version', '2.04', { + 'source_tmpl': 'Test-Version-2.04.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/P/PL/PLICEASE'], + }), + ('DBIx::Admin::TableInfo', '3.01', { + 'source_tmpl': 'DBIx-Admin-TableInfo-3.01.tgz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RS/RSAVAGE'], + }), + ('Net::HTTP', '6.09', { + 'source_tmpl': 'Net-HTTP-6.09.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/ET/ETHER'], + }), + ('Test::Deep', '1.120', { + 'source_tmpl': 'Test-Deep-1.120.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + }), + ('Test::Warn', '0.30', { + 'source_tmpl': 'Test-Warn-0.30.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/C/CH/CHORNY'], + }), + ('MRO::Compat', '0.12', { + 'source_tmpl': 'MRO-Compat-0.12.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/B/BO/BOBTFISH'], + }), + ('Moo', '2.002004', { + 'source_tmpl': 'Moo-2.002004.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/H/HA/HAARG'], + }), + ('Hash::Merge', '0.200', { + 'source_tmpl': 'Hash-Merge-0.200.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RE/REHSACK'], + }), + ('SQL::Abstract', '1.81', { + 'source_tmpl': 'SQL-Abstract-1.81.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RI/RIBASUSHI'], + }), + ('HTML::Form', '6.03', { + 'source_tmpl': 'HTML-Form-6.03.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/G/GA/GAAS'], + }), + ('File::Copy::Recursive', '0.38', { + 'source_tmpl': 'File-Copy-Recursive-0.38.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DM/DMUEY'], + }), + ('Number::Compare', '0.03', { + 'source_tmpl': 'Number-Compare-0.03.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RC/RCLAMP'], + }), + ('IPC::Run', '0.94', { + 'source_tmpl': 'IPC-Run-0.94.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/T/TO/TODDR'], + }), + ('HTML::Entities::Interpolate', '1.09', { + 'source_tmpl': 'HTML-Entities-Interpolate-1.09.tgz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RS/RSAVAGE'], + }), + ('Test::ClassAPI', '1.06', { + 'source_tmpl': 'Test-ClassAPI-1.06.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/A/AD/ADAMK'], + }), + ('Test::Most', '0.34', { + 'source_tmpl': 'Test-Most-0.34.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/O/OV/OVID'], + }), + ('Class::Accessor', '0.34', { + 'source_tmpl': 'Class-Accessor-0.34.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/K/KA/KASEI'], + }), + ('Test::Differences', '0.64', { + 'source_tmpl': 'Test-Differences-0.64.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DC/DCANTRELL'], + }), + ('HTTP::Tiny', '0.058', { + 'source_tmpl': 'HTTP-Tiny-0.058.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DA/DAGOLDEN'], + }), + ('Package::DeprecationManager', '0.17', { + 'source_tmpl': 'Package-DeprecationManager-0.17.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DR/DROLSKY'], + }), + ('Digest::SHA1', '2.13', { + 'source_tmpl': 'Digest-SHA1-2.13.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/G/GA/GAAS'], + }), + ('Date::Language', '2.30', { + 'source_tmpl': 'TimeDate-2.30.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/G/GB/GBARR'], + }), + ('version', '0.9917', { + 'source_tmpl': 'version-0.9917.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/J/JP/JPEACOCK'], + }), + ('Sub::Uplevel', '0.25', { + 'source_tmpl': 'Sub-Uplevel-0.25.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DA/DAGOLDEN'], + }), + ('XML::Bare', '0.53', { + 'source_tmpl': 'XML-Bare-0.53.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/C/CO/CODECHILD'], + 'patches': ['XML-Bare-0.53_icc.patch'], + }), + ('Dist::CheckConflicts', '0.11', { + 'source_tmpl': 'Dist-CheckConflicts-0.11.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DO/DOY'], + }), + ('Sub::Name', '0.15', { + 'source_tmpl': 'Sub-Name-0.15.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/ET/ETHER'], + }), + ('Time::Piece', '1.31', { + 'source_tmpl': 'Time-Piece-1.31.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/ES/ESAYM'], + }), + ('Digest::HMAC', '1.03', { + 'source_tmpl': 'Digest-HMAC-1.03.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/G/GA/GAAS'], + }), + ('HTTP::Negotiate', '6.01', { + 'source_tmpl': 'HTTP-Negotiate-6.01.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/G/GA/GAAS'], + }), + ('MIME::Lite', '3.030', { + 'source_tmpl': 'MIME-Lite-3.030.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + }), + ('Crypt::Rijndael', '1.13', { + 'source_tmpl': 'Crypt-Rijndael-1.13.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/L/LE/LEONT'], + }), + ('B::Lint', '1.20', { + 'source_tmpl': 'B-Lint-1.20.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + }), + ('Canary::Stability', '2011', { + 'source_tmpl': 'Canary-Stability-2011.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/M/ML/MLEHMANN'], + }), + ('AnyEvent', '7.12', { + 'source_tmpl': 'AnyEvent-7.12.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/M/ML/MLEHMANN'], + }), + ('Object::Accessor', '0.48', { + 'source_tmpl': 'Object-Accessor-0.48.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/B/BI/BINGOS'], + }), + ('Data::UUID', '1.221', { + 'source_tmpl': 'Data-UUID-1.221.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + }), + ('Test::Pod', '1.51', { + 'source_tmpl': 'Test-Pod-1.51.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/ET/ETHER'], + }), + ('AppConfig', '1.71', { + 'source_tmpl': 'AppConfig-1.71.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/N/NE/NEILB'], + }), + ('Net::SMTP::SSL', '1.03', { + 'source_tmpl': 'Net-SMTP-SSL-1.03.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + }), + ('XML::Tiny', '2.06', { + 'source_tmpl': 'XML-Tiny-2.06.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DC/DCANTRELL'], + }), + ('HTML::Tagset', '3.20', { + 'source_tmpl': 'HTML-Tagset-3.20.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/P/PE/PETDANCE'], + }), + ('HTML::Tree', '5.03', { + 'source_tmpl': 'HTML-Tree-5.03.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/C/CJ/CJM'], + }), + ('Devel::GlobalDestruction', '0.13', { + 'source_tmpl': 'Devel-GlobalDestruction-0.13.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/H/HA/HAARG'], + }), + ('WWW::RobotRules', '6.02', { + 'source_tmpl': 'WWW-RobotRules-6.02.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/G/GA/GAAS'], + }), + ('Expect', '1.33', { + 'source_tmpl': 'Expect-1.33.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/J/JA/JACOBY/'], + }), + ('Term::UI', '0.46', { + 'source_tmpl': 'Term-UI-0.46.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/B/BI/BINGOS'], + }), + ('Net::SNMP', 'v6.0.1', { + 'source_tmpl': 'Net-SNMP-v6.0.1.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DT/DTOWN'], + }), + ('XML::SAX::Writer', '0.56', { + 'source_tmpl': 'XML-SAX-Writer-0.56.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/P/PE/PERIGRIN'], + }), + ('Statistics::Descriptive', '3.0612', { + 'source_tmpl': 'Statistics-Descriptive-3.0612.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/S/SH/SHLOMIF'], + }), + ('Class::Load', '0.23', { + 'source_tmpl': 'Class-Load-0.23.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/ET/ETHER'], + }), + ('LWP::Simple', '6.15', { + 'source_tmpl': 'libwww-perl-6.15.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/ET/ETHER'], + }), + ('Time::Piece::MySQL', '0.06', { + 'source_tmpl': 'Time-Piece-MySQL-0.06.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/K/KA/KASEI'], + }), + ('Package::Stash::XS', '0.28', { + 'source_tmpl': 'Package-Stash-XS-0.28.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DO/DOY'], + }), + ('GD::Graph', '1.52', { + 'source_tmpl': 'GDGraph-1.52.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RU/RUZ'], + }), + ('Set::Array', '0.30', { + 'source_tmpl': 'Set-Array-0.30.tgz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RS/RSAVAGE'], + }), + ('boolean', '0.45', { + 'source_tmpl': 'boolean-0.45.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/I/IN/INGY'], + }), + ('Number::Format', '1.75', { + 'source_tmpl': 'Number-Format-1.75.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/W/WR/WRW'], + }), + ('Data::Stag', '0.14', { + 'source_tmpl': 'Data-Stag-0.14.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/C/CM/CMUNGALL'], + }), + ('Test::NoWarnings', '1.04', { + 'source_tmpl': 'Test-NoWarnings-1.04.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/A/AD/ADAMK'], + }), + ('Crypt::DES', '2.07', { + 'source_tmpl': 'Crypt-DES-2.07.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DP/DPARIS'], + }), + ('Exporter', '5.72', { + 'source_tmpl': 'Exporter-5.72.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/T/TO/TODDR'], + }), + ('Class::Inspector', '1.28', { + 'source_tmpl': 'Class-Inspector-1.28.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/A/AD/ADAMK'], + }), + ('Parse::RecDescent', '1.967013', { + 'source_tmpl': 'Parse-RecDescent-1.967013.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/J/JT/JTBRAUN'], + }), + ('Carp', '1.38', { + 'source_tmpl': 'Carp-1.38.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + }), + ('XML::XPath', '1.37', { + 'source_tmpl': 'XML-XPath-1.37.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/M/MA/MANWAR'], + }), + ('Capture::Tiny', '0.42', { + 'source_tmpl': 'Capture-Tiny-0.42.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DA/DAGOLDEN'], + }), + ('JSON', '2.90', { + 'source_tmpl': 'JSON-2.90.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/M/MA/MAKAMAKA'], + }), + ('Sub::Exporter', '0.987', { + 'source_tmpl': 'Sub-Exporter-0.987.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + }), + ('Class::Load::XS', '0.09', { + 'source_tmpl': 'Class-Load-XS-0.09.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/ET/ETHER'], + }), + ('Set::IntSpan::Fast', '1.15', { + 'source_tmpl': 'Set-IntSpan-Fast-1.15.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/A/AN/ANDYA'], + }), + ('Sub::Exporter::Progressive', '0.001011', { + 'source_tmpl': 'Sub-Exporter-Progressive-0.001011.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/F/FR/FREW'], + }), + ('Data::Dumper::Concise', '2.022', { + 'source_tmpl': 'Data-Dumper-Concise-2.022.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/F/FR/FREW'], + }), + ('File::Slurp::Tiny', '0.004', { + 'source_tmpl': 'File-Slurp-Tiny-0.004.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/L/LE/LEONT'], + }), + ('Algorithm::Diff', '1.1903', { + 'source_tmpl': 'Algorithm-Diff-1.1903.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/T/TY/TYEMQ'], + }), + ('AnyData', '0.12', { + 'source_tmpl': 'AnyData-0.12.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RE/REHSACK'], + }), + ('Text::Iconv', '1.7', { + 'source_tmpl': 'Text-Iconv-1.7.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/M/MP/MPIOTR'], + }), + ('Class::Data::Inheritable', '0.08', { + 'source_tmpl': 'Class-Data-Inheritable-0.08.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/T/TM/TMTM'], + }), + ('Text::Balanced', '2.03', { + 'source_tmpl': 'Text-Balanced-2.03.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/S/SH/SHAY'], + }), + ('strictures', '2.000003', { + 'source_tmpl': 'strictures-2.000003.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/H/HA/HAARG'], + }), + ('Switch', '2.17', { + 'source_tmpl': 'Switch-2.17.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/C/CH/CHORNY'], + }), + ('File::Which', '1.21', { + 'source_tmpl': 'File-Which-1.21.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/P/PL/PLICEASE'], + }), + ('Email::Date::Format', '1.005', { + 'source_tmpl': 'Email-Date-Format-1.005.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + }), + ('Error', '0.17024', { + 'source_tmpl': 'Error-0.17024.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/S/SH/SHLOMIF'], + }), + ('Mock::Quick', '1.111', { + 'source_tmpl': 'Mock-Quick-1.111.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/EX/EXODIST'], + }), + ('Text::CSV', '1.33', { + 'source_tmpl': 'Text-CSV-1.33.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/M/MA/MAKAMAKA'], + }), + ('Test::Output', '1.03', { + 'source_tmpl': 'Test-Output-1.03.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/B/BD/BDFOY'], + }), + ('Class::DBI', '3.0.17', { + 'source_tmpl': 'Class-DBI-v3.0.17.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/T/TM/TMTM'], + }), + ('List::AllUtils', '0.11', { + 'source_tmpl': 'List-AllUtils-0.11.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DR/DROLSKY'], + }), + ('UNIVERSAL::moniker', '0.08', { + 'source_tmpl': 'UNIVERSAL-moniker-0.08.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/K/KA/KASEI'], + }), + ('Exception::Class', '1.40', { + 'source_tmpl': 'Exception-Class-1.40.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DR/DROLSKY'], + }), + ('File::CheckTree', '4.42', { + 'source_tmpl': 'File-CheckTree-4.42.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + }), + ('Math::VecStat', '0.08', { + 'source_tmpl': 'Math-VecStat-0.08.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/A/AS/ASPINELLI'], + }), + ('Pod::LaTeX', '0.61', { + 'source_tmpl': 'Pod-LaTeX-0.61.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/T/TJ/TJENNESS'], + }), + ('Eval::Closure', '0.14', { + 'source_tmpl': 'Eval-Closure-0.14.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DO/DOY'], + }), + ('HTTP::Request', '6.11', { + 'source_tmpl': 'HTTP-Message-6.11.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/ET/ETHER'], + }), + ('XML::Twig', '3.49', { + 'source_tmpl': 'XML-Twig-3.49.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/M/MI/MIROD'], + }), + ('IO::String', '1.08', { + 'source_tmpl': 'IO-String-1.08.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/G/GA/GAAS'], + }), + ('XML::Simple', '2.22', { + 'source_tmpl': 'XML-Simple-2.22.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/G/GR/GRANTM'], + }), + ('Sub::Install', '0.928', { + 'source_tmpl': 'Sub-Install-0.928.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + }), + ('HTTP::Cookies', '6.01', { + 'source_tmpl': 'HTTP-Cookies-6.01.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/G/GA/GAAS'], + }), + ('Pod::Plainer', '1.04', { + 'source_tmpl': 'Pod-Plainer-1.04.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RM/RMBARKER'], + }), + ('Test::Exception::LessClever', '0.007', { + 'source_tmpl': 'Test-Exception-LessClever-0.007.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/EX/EXODIST'], + }), + ('LWP::MediaTypes', '6.02', { + 'source_tmpl': 'LWP-MediaTypes-6.02.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/G/GA/GAAS'], + }), + ('Scalar::Util', '1.45', { + 'source_tmpl': 'Scalar-List-Utils-1.45.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/P/PE/PEVANS'], + }), + ('Data::Section::Simple', '0.07', { + 'source_tmpl': 'Data-Section-Simple-0.07.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/M/MI/MIYAGAWA'], + }), + ('Class::Trigger', '0.14', { + 'source_tmpl': 'Class-Trigger-0.14.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/M/MI/MIYAGAWA'], + }), + ('HTTP::Daemon', '6.01', { + 'source_tmpl': 'HTTP-Daemon-6.01.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/G/GA/GAAS'], + }), + ('File::HomeDir', '1.00', { + 'source_tmpl': 'File-HomeDir-1.00.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/A/AD/ADAMK'], + }), + ('HTTP::Date', '6.02', { + 'source_tmpl': 'HTTP-Date-6.02.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/G/GA/GAAS'], + }), + ('Authen::SASL', '2.16', { + 'source_tmpl': 'Authen-SASL-2.16.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/G/GB/GBARR'], + }), + ('Clone', '0.38', { + 'source_tmpl': 'Clone-0.38.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/G/GA/GARU'], + }), + ('Data::Types', '0.09', { + 'source_tmpl': 'Data-Types-0.09.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DW/DWHEELER'], + }), + ('Import::Into', '1.002005', { + 'source_tmpl': 'Import-Into-1.002005.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/H/HA/HAARG'], + }), + ('DateTime::Tiny', '1.06', { + 'source_tmpl': 'DateTime-Tiny-1.06.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DA/DAGOLDEN'], + }), + ('DBD::AnyData', '0.110', { + 'source_tmpl': 'DBD-AnyData-0.110.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RE/REHSACK'], + }), + ('Text::Format', '0.59', { + 'source_tmpl': 'Text-Format-0.59.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/S/SH/SHLOMIF'], + }), + ('Devel::CheckCompiler', '0.06', { + 'source_tmpl': 'Devel-CheckCompiler-0.06.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/S/SY/SYOHEX'], + }), + ('Log::Handler', '0.84', { + 'source_tmpl': 'Log-Handler-0.84.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/B/BL/BLOONIX'], + }), + ('DBIx::ContextualFetch', '1.03', { + 'source_tmpl': 'DBIx-ContextualFetch-1.03.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/T/TM/TMTM'], + }), + ('Devel::StackTrace', '2.01', { + 'source_tmpl': 'Devel-StackTrace-2.01.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DR/DROLSKY'], + }), + ('Term::ReadKey', '2.33', { + 'source_tmpl': 'TermReadKey-2.33.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/J/JS/JSTOWE'], + }), + ('Set::IntSpan', '1.19', { + 'source_tmpl': 'Set-IntSpan-1.19.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/S/SW/SWMCD'], + }), + ('Moose', '2.1804', { + 'source_tmpl': 'Moose-2.1804.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/ET/ETHER'], + }), + ('Algorithm::Dependency', '1.110', { + 'source_tmpl': 'Algorithm-Dependency-1.110.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/A/AD/ADAMK'], + }), + ('Font::TTF', '1.05', { + 'source_tmpl': 'Font-TTF-1.05.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/M/MH/MHOSKEN'], + }), + ('IPC::Run3', '0.048', { + 'source_tmpl': 'IPC-Run3-0.048.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + }), + ('File::Find::Rule', '0.34', { + 'source_tmpl': 'File-Find-Rule-0.34.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RC/RCLAMP'], + }), + ('SQL::Statement', '1.410', { + 'source_tmpl': 'SQL-Statement-1.410.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RE/REHSACK'], + }), + ('File::Slurp', '9999.19', { + 'source_tmpl': 'File-Slurp-9999.19.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/U/UR/URI'], + }), + ('Package::Stash', '0.37', { + 'source_tmpl': 'Package-Stash-0.37.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DO/DOY'], + }), + ('Data::OptList', '0.110', { + 'source_tmpl': 'Data-OptList-0.110.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + }), + ('CPANPLUS', '0.9160', { + 'source_tmpl': 'CPANPLUS-0.9160.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/B/BI/BINGOS'], + }), + ('IO::Tty', '1.12', { + 'source_tmpl': 'IO-Tty-1.12.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/T/TO/TODDR'], + }), + ('Text::Soundex', '3.05', { + 'source_tmpl': 'Text-Soundex-3.05.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + }), + ('Lingua::EN::PluralToSingular', '0.18', { + 'source_tmpl': 'Lingua-EN-PluralToSingular-0.18.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/B/BK/BKB'], + }), + ('Want', '0.29', { + 'source_tmpl': 'Want-0.29.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RO/ROBIN'], + }), + ('Cwd::Guard', '0.05', { + 'source_tmpl': 'Cwd-Guard-0.05.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/K/KA/KAZEBURO'], + }), + ('Bundle::BioPerl', '2.1.9', { + 'source_tmpl': 'Bundle-BioPerl-2.1.9.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/C/CJ/CJFIELDS'], + }), + ('Mail::Util', '2.18', { + 'source_tmpl': 'MailTools-2.18.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/M/MA/MARKOV'], + }), +] + +moduleclass = 'lang' diff --git a/p/PhyloBayes-MPI/PhyloBayes-MPI-20161021-intel-2017.00.eb b/p/PhyloBayes-MPI/PhyloBayes-MPI-20161021-intel-2017.00.eb new file mode 100644 index 00000000..b7e0ecac --- /dev/null +++ b/p/PhyloBayes-MPI/PhyloBayes-MPI-20161021-intel-2017.00.eb @@ -0,0 +1,29 @@ +easyblock = 'MakeCp' + +name = 'PhyloBayes-MPI' +version = '20161021' +commit = 'e4ea1ca' + +homepage = 'https://github.com/bayesiancook/pbmpi' +description = "A Bayesian software for phylogenetic reconstruction using mixture models" + +toolchain = {'name': 'intel', 'version': '2017.00'} + +source_urls = ['https://github.com/bayesiancook/pbmpi/archive/'] +sources = ['%s.tar.gz' % commit] + +start_dir = 'sources' + +# get rid of included binaries to ensur they're recompiled +prebuildopts = "rm -f data/* &&" + +buildopts = 'CC="$MPICXX" CPPFLAGS="$CXXFLAGS -c" LDFLAGS="$CXXFLAGS"' + +files_to_copy = [(['data/*'], 'bin')] + +sanity_check_paths = { + 'files': ['bin/bpcomp', 'bin/cvrep', 'bin/pb_mpi', 'bin/readpb_mpi', 'bin/tracecomp'], + 'dirs': [], +} + +moduleclass = 'bio' diff --git a/p/Pillow/Pillow-3.2.0-foss-2016a-Python-2.7.11-freetype-2.6.3.eb b/p/Pillow/Pillow-3.2.0-foss-2016a-Python-2.7.11-freetype-2.6.3.eb new file mode 100644 index 00000000..16cea8d3 --- /dev/null +++ b/p/Pillow/Pillow-3.2.0-foss-2016a-Python-2.7.11-freetype-2.6.3.eb @@ -0,0 +1,30 @@ +easyblock = 'PythonPackage' + +name = 'Pillow' +version = '3.2.0' +versionsuffix = '-Python-%(pyver)s' + +homepage = 'http://pillow.readthedocs.org/' +description = """Pillow is the 'friendly PIL fork' by Alex Clark and Contributors. + PIL is the Python Imaging Library by Fredrik Lundh and Contributors.""" + +toolchain = {'name': 'foss', 'version': '2016a'} + +source_urls = [PYPI_SOURCE] +sources = [SOURCE_TAR_GZ] + +freetype_ver = '2.6.3' +versionsuffix += '-freetype-%s' % freetype_ver + +dependencies = [ + ('Python', '2.7.11'), + ('libjpeg-turbo', '1.4.2','-NASM-2.12.01'), + ('libpng', '1.6.21'), + ('zlib', '1.2.8'), + ('LibTIFF', '4.0.6'), + ('freetype', freetype_ver), +] + +options = {'modulename': 'PIL'} + +moduleclass = 'vis' diff --git a/p/Pillow/Pillow-3.2.0-intel-2016a-Python-2.7.11.eb b/p/Pillow/Pillow-3.2.0-intel-2016a-Python-2.7.11.eb new file mode 100644 index 00000000..e08e25c6 --- /dev/null +++ b/p/Pillow/Pillow-3.2.0-intel-2016a-Python-2.7.11.eb @@ -0,0 +1,26 @@ +easyblock = 'PythonPackage' + +name = 'Pillow' +version = '3.2.0' +versionsuffix = '-Python-%(pyver)s' + +homepage = 'http://pillow.readthedocs.org/' +description = """Pillow is the 'friendly PIL fork' by Alex Clark and Contributors. + PIL is the Python Imaging Library by Fredrik Lundh and Contributors.""" + +toolchain = {'name': 'intel', 'version': '2016a'} + +source_urls = [PYPI_SOURCE] +sources = [SOURCE_TAR_GZ] + +dependencies = [ + ('Python', '2.7.11'), + ('libjpeg-turbo', '1.4.2'), + ('zlib', '1.2.8'), + ('LibTIFF', '4.0.6'), + ('freetype', '2.6.2'), +] + +options = {'modulename': 'PIL'} + +moduleclass = 'vis' diff --git a/p/Platanus/Platanus-1.2.4-goolf-1.7.20.eb b/p/Platanus/Platanus-1.2.4-goolf-1.7.20.eb new file mode 100644 index 00000000..9f312bdd --- /dev/null +++ b/p/Platanus/Platanus-1.2.4-goolf-1.7.20.eb @@ -0,0 +1,30 @@ +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# Author: Pablo Escobar Lopez +# sciCORE - University of Basel +# SIB Swiss Institute of Bioinformatics + +easyblock = 'MakeCp' + +name = 'Platanus' +version = '1.2.4' + +homepage = 'http://platanus.bio.titech.ac.jp/' +description = """PLATform for Assembling NUcleotide Sequences""" + +toolchain = {'name': 'goolf', 'version': '1.7.20'} +toolchainopts = {'openmp': True} + +# the download cannot be automated because it points to a PHP form +# http://platanus.bio.titech.ac.jp/?ddownload=150 +sources = ['%(name)s_v%(version)s.tar.gz'] + +buildopts = 'CXX="$CXX"' + +files_to_copy = [(["platanus"],'bin'), "README", "LICENSE"] + +sanity_check_paths = { + 'files': ["bin/platanus"], + 'dirs': [""], +} + +moduleclass = 'bio' diff --git a/p/PostgreSQL/PostgreSQL-9.3.5-intel-2014b.eb b/p/PostgreSQL/PostgreSQL-9.3.5-intel-2014b.eb new file mode 100644 index 00000000..815c947e --- /dev/null +++ b/p/PostgreSQL/PostgreSQL-9.3.5-intel-2014b.eb @@ -0,0 +1,44 @@ +easyblock = 'ConfigureMake' + +name = 'PostgreSQL' +version = '9.3.5' + +homepage = 'http://www.mysql.com/' +description = """PostgreSQL is a powerful, open source object-relational database system. + It is fully ACID compliant, has full support for foreign keys, + joins, views, triggers, and stored procedures (in multiple languages). + It includes most SQL:2008 data types, including INTEGER, + NUMERIC, BOOLEAN, CHAR, VARCHAR, DATE, INTERVAL, and TIMESTAMP. + It also supports storage of binary large objects, including pictures, + sounds, or video. It has native programming interfaces for C/C++, Java, + .Net, Perl, Python, Ruby, Tcl, ODBC, among others, and exceptional documentation.""" + +source_urls = ['http://ftp.postgresql.org/pub/source/v%(version)s/'] +sources = [SOURCELOWER_TAR_GZ] + +toolchain = {'name': 'intel', 'version': '2014b'} + +osdependencies = [('openssl-devel', 'libssl-dev')] + +java = 'Java' +javaver = '1.7.0_60' + +dependencies = [ + (java, javaver, '', True), + ('libreadline', '6.3'), + ('zlib', '1.2.8'), + # ('OpenSSL', '1.0.1i'), # OS dependency should be preferred for security reasons +] + +builddependencies = [ + ('Bison', '3.0.2'), + ('flex', '2.5.39'), + ('Perl', '5.20.0'), +] + +sanity_check_paths = { + 'files': ['bin/psql'], + 'dirs': [], +} + +moduleclass = 'data' diff --git a/p/PostgreSQL/PostgreSQL-9.4.7-intel-2016a-Python-2.7.11.eb b/p/PostgreSQL/PostgreSQL-9.4.7-intel-2016a-Python-2.7.11.eb new file mode 100644 index 00000000..9afa456c --- /dev/null +++ b/p/PostgreSQL/PostgreSQL-9.4.7-intel-2016a-Python-2.7.11.eb @@ -0,0 +1,44 @@ +easyblock = 'ConfigureMake' + +name = 'PostgreSQL' +version = '9.4.7' +versionsuffix = '-Python-%(pyver)s' + +homepage = 'http://www.mysql.com/' +description = """PostgreSQL is a powerful, open source object-relational database system. + It is fully ACID compliant, has full support for foreign keys, + joins, views, triggers, and stored procedures (in multiple languages). + It includes most SQL:2008 data types, including INTEGER, + NUMERIC, BOOLEAN, CHAR, VARCHAR, DATE, INTERVAL, and TIMESTAMP. + It also supports storage of binary large objects, including pictures, + sounds, or video. It has native programming interfaces for C/C++, Java, + .Net, Perl, Python, Ruby, Tcl, ODBC, among others, and exceptional documentation.""" + +source_urls = ['http://ftp.postgresql.org/pub/source/v%(version)s/'] +sources = [SOURCELOWER_TAR_GZ] + +toolchain = {'name': 'intel', 'version': '2016a'} + +osdependencies = [('openssl-devel', 'libssl-dev')] + +dependencies = [ + ('libreadline', '6.3'), + ('zlib', '1.2.8'), + ('Python', '2.7.11'), + # ('OpenSSL', '1.0.1i'), # OS dependency should be preferred for security reasons +] + +builddependencies = [ + ('Bison', '3.0.4'), + ('flex', '2.6.0'), + ('Perl', '5.22.1'), +] + +configopts = '--with-python --with-openssl' + +sanity_check_paths = { + 'files': ['bin/psql', 'bin/pg_config', 'lib/libpq.a', 'lib/libpq.%s' % SHLIB_EXT], + 'dirs': ['share/postgresql'], +} + +moduleclass = 'data' diff --git a/p/PostgreSQL/PostgreSQL-9.5.2-intel-2016a-Python-2.7.11.eb b/p/PostgreSQL/PostgreSQL-9.5.2-intel-2016a-Python-2.7.11.eb new file mode 100644 index 00000000..fca7dea1 --- /dev/null +++ b/p/PostgreSQL/PostgreSQL-9.5.2-intel-2016a-Python-2.7.11.eb @@ -0,0 +1,44 @@ +easyblock = 'ConfigureMake' + +name = 'PostgreSQL' +version = '9.5.2' +versionsuffix = '-Python-%(pyver)s' + +homepage = 'http://www.mysql.com/' +description = """PostgreSQL is a powerful, open source object-relational database system. + It is fully ACID compliant, has full support for foreign keys, + joins, views, triggers, and stored procedures (in multiple languages). + It includes most SQL:2008 data types, including INTEGER, + NUMERIC, BOOLEAN, CHAR, VARCHAR, DATE, INTERVAL, and TIMESTAMP. + It also supports storage of binary large objects, including pictures, + sounds, or video. It has native programming interfaces for C/C++, Java, + .Net, Perl, Python, Ruby, Tcl, ODBC, among others, and exceptional documentation.""" + +source_urls = ['http://ftp.postgresql.org/pub/source/v%(version)s/'] +sources = [SOURCELOWER_TAR_GZ] + +toolchain = {'name': 'intel', 'version': '2016a'} + +osdependencies = [('openssl-devel', 'libssl-dev')] + +dependencies = [ + ('libreadline', '6.3'), + ('zlib', '1.2.8'), + ('Python', '2.7.11'), + # ('OpenSSL', '1.0.1i'), # OS dependency should be preferred for security reasons +] + +builddependencies = [ + ('Bison', '3.0.4'), + ('flex', '2.6.0'), + ('Perl', '5.22.1'), +] + +configopts = '--with-python --with-openssl' + +sanity_check_paths = { + 'files': ['bin/psql', 'bin/pg_config', 'lib/libpq.a', 'lib/libpq.%s' % SHLIB_EXT], + 'dirs': ['share/postgresql'], +} + +moduleclass = 'data' diff --git a/p/PostgreSQL/PostgreSQL-9.6.0-intel-2016b-Python-2.7.12.eb b/p/PostgreSQL/PostgreSQL-9.6.0-intel-2016b-Python-2.7.12.eb new file mode 100644 index 00000000..a1b0d0ba --- /dev/null +++ b/p/PostgreSQL/PostgreSQL-9.6.0-intel-2016b-Python-2.7.12.eb @@ -0,0 +1,44 @@ +easyblock = 'ConfigureMake' + +name = 'PostgreSQL' +version = '9.6.0' +versionsuffix = '-Python-%(pyver)s' + +homepage = 'http://www.mysql.com/' +description = """PostgreSQL is a powerful, open source object-relational database system. + It is fully ACID compliant, has full support for foreign keys, + joins, views, triggers, and stored procedures (in multiple languages). + It includes most SQL:2008 data types, including INTEGER, + NUMERIC, BOOLEAN, CHAR, VARCHAR, DATE, INTERVAL, and TIMESTAMP. + It also supports storage of binary large objects, including pictures, + sounds, or video. It has native programming interfaces for C/C++, Java, + .Net, Perl, Python, Ruby, Tcl, ODBC, among others, and exceptional documentation.""" + +source_urls = ['http://ftp.postgresql.org/pub/source/v%(version)s/'] +sources = [SOURCELOWER_TAR_GZ] + +toolchain = {'name': 'intel', 'version': '2016b'} + +osdependencies = [('openssl-devel', 'libssl-dev')] + +dependencies = [ + ('libreadline', '6.3'), + ('zlib', '1.2.8'), + ('Python', '2.7.12'), + # ('OpenSSL', '1.0.1i'), # OS dependency should be preferred for security reasons +] + +builddependencies = [ + ('Bison', '3.0.4'), + ('flex', '2.6.0'), + ('Perl', '5.24.0'), +] + +configopts = '--with-python --with-openssl' + +sanity_check_paths = { + 'files': ['bin/psql', 'bin/pg_config', 'lib/libpq.a', 'lib/libpq.%s' % SHLIB_EXT], + 'dirs': ['share/postgresql'], +} + +moduleclass = 'data' diff --git a/p/Postgres-XL/Postgres-XL-9.5r1-intel-2016a-Python-2.7.11.eb b/p/Postgres-XL/Postgres-XL-9.5r1-intel-2016a-Python-2.7.11.eb new file mode 100644 index 00000000..01c5da8a --- /dev/null +++ b/p/Postgres-XL/Postgres-XL-9.5r1-intel-2016a-Python-2.7.11.eb @@ -0,0 +1,38 @@ +easyblock = 'ConfigureMake' + +name = 'Postgres-XL' +version = '9.5r1' +versionsuffix = '-Python-%(pyver)s' + +homepage = 'http://www.postgres-xl.org' +description = """Postgres-XL is a horizontally scalable open source SQL database cluster, +flexible enough to handle varying database workloads:""" + +toolchain = {'name': 'intel', 'version': '2016a'} + +sources = [SOURCELOWER_TAR_BZ2] +source_urls = ['http://files.postgres-xl.org'] + +osdependencies = [('openssl-devel', 'libssl-dev')] + +dependencies = [ + ('libreadline', '6.3'), + ('zlib', '1.2.8'), + ('Python', '2.7.11'), + # ('OpenSSL', '1.0.1i'), # OS dependency should be preferred for security reasons +] + +builddependencies = [ + ('Bison', '3.0.4'), + ('flex', '2.6.0'), + ('Perl', '5.22.1'), +] + +configopts = '--with-python --with-openssl' + +sanity_check_paths = { + 'files': ['bin/psql', 'bin/pg_config', 'lib/libpq.a', 'lib/libpq.%s' % SHLIB_EXT], + 'dirs': ['share/postgresql'], +} + +moduleclass = 'data' diff --git a/p/ProbABEL/ProbABEL-0.5.0.eb b/p/ProbABEL/ProbABEL-0.5.0.eb new file mode 100644 index 00000000..379bdbc8 --- /dev/null +++ b/p/ProbABEL/ProbABEL-0.5.0.eb @@ -0,0 +1,28 @@ +easyblock = 'ConfigureMake' + +name = 'ProbABEL' +version = '0.5.0' + +homepage = "http://www.genabel.org/packages/ProbABEL" +description = """Tool for genome-wide association +analysis of imputed genetic data.""" + +toolchain = {'name': 'dummy', 'version': 'dummy'} + +source_urls = ['http://www.genabel.org/sites/default/files/software/'] +sources = ['probabel-%(version)s.tar.gz'] + +dependencies = [ + ('Eigen', '3.2.6') +] + +configopts = '--disable-latex-doc' + +postinstallcmds = ["mv %(installdir)s/etc/probabel_config.cfg.example %(installdir)s/etc/probabel_config.cfg"] + +sanity_check_paths = { + 'files': ['bin/probabel', 'bin/pacoxph', 'bin/palinear', 'bin/palogist','etc/probabel_config.cfg'], + 'dirs': ['share'], +} + +moduleclass = 'bio' diff --git a/p/PyGTS/PyGTS-0.3.1-foss-2016a-Python-2.7.11.eb b/p/PyGTS/PyGTS-0.3.1-foss-2016a-Python-2.7.11.eb new file mode 100644 index 00000000..1438b0e8 --- /dev/null +++ b/p/PyGTS/PyGTS-0.3.1-foss-2016a-Python-2.7.11.eb @@ -0,0 +1,30 @@ +easyblock = 'PythonPackage' + +name = 'PyGTS' +version = '0.3.1' +versionsuffix = '-Python-%(pyver)s' + +homepage = 'https://sourceforge.net/projects/pygts/' +description = """ PyGTS is a python package used to construct, manipulate, + and perform computations on triangulated surfaces. + It is a hand-crafted and pythonic binding for the GNU Triangulated Surface (GTS) Library. """ + +toolchain = {'name': 'foss', 'version': '2016a'} + +source_urls = [SOURCEFORGE_SOURCE] +sources = [SOURCELOWER_TAR_GZ] + +dependencies = [ + ('Python', '2.7.11'), + ('GLib', '2.48.0'), + ('GTS' ,'0.7.6'), +] + +options = {'modulename': 'gts'} + +sanity_check_paths = { + 'files': ['lib/python%%(pyshortver)s/site-packages/gts/_gts.%s' % SHLIB_EXT], + 'dirs':[], +} + +moduleclass = 'vis' diff --git a/p/PyGTS/PyGTS-0.3.1-foss-2016b-Python-2.7.12.eb b/p/PyGTS/PyGTS-0.3.1-foss-2016b-Python-2.7.12.eb new file mode 100644 index 00000000..372e0500 --- /dev/null +++ b/p/PyGTS/PyGTS-0.3.1-foss-2016b-Python-2.7.12.eb @@ -0,0 +1,30 @@ +easyblock = 'PythonPackage' + +name = 'PyGTS' +version = '0.3.1' +versionsuffix = '-Python-%(pyver)s' + +homepage = 'https://sourceforge.net/projects/pygts/' +description = """ PyGTS is a python package used to construct, manipulate, + and perform computations on triangulated surfaces. + It is a hand-crafted and pythonic binding for the GNU Triangulated Surface (GTS) Library. """ + +toolchain = {'name': 'foss', 'version': '2016b'} + +source_urls = [SOURCEFORGE_SOURCE] +sources = [SOURCELOWER_TAR_GZ] + +dependencies = [ + ('Python', '2.7.12'), + ('GLib', '2.49.5'), + ('GTS' ,'0.7.6'), +] + +options = {'modulename': 'gts'} + +sanity_check_paths = { + 'files': ['lib/python%%(pyshortver)s/site-packages/gts/_gts.%s' % SHLIB_EXT], + 'dirs':[], +} + +moduleclass = 'vis' diff --git a/p/PyGTS/PyGTS-0.3.1-intel-2016a-Python-2.7.11.eb b/p/PyGTS/PyGTS-0.3.1-intel-2016a-Python-2.7.11.eb new file mode 100644 index 00000000..7383e08e --- /dev/null +++ b/p/PyGTS/PyGTS-0.3.1-intel-2016a-Python-2.7.11.eb @@ -0,0 +1,30 @@ +easyblock = 'PythonPackage' + +name = 'PyGTS' +version = '0.3.1' +versionsuffix = '-Python-%(pyver)s' + +homepage = 'https://sourceforge.net/projects/pygts/' +description = """ PyGTS is a python package used to construct, manipulate, + and perform computations on triangulated surfaces. + It is a hand-crafted and pythonic binding for the GNU Triangulated Surface (GTS) Library. """ + +toolchain = {'name': 'intel', 'version': '2016a'} + +source_urls = [SOURCEFORGE_SOURCE] +sources = [SOURCELOWER_TAR_GZ] + +dependencies = [ + ('Python', '2.7.11'), + ('GLib', '2.48.0'), + ('GTS' ,'0.7.6'), +] + +options = {'modulename': 'gts'} + +sanity_check_paths = { + 'files': ['lib/python%%(pyshortver)s/site-packages/gts/_gts.%s' % SHLIB_EXT], + 'dirs':[], +} + +moduleclass = 'vis' diff --git a/p/PyGTS/PyGTS-0.3.1-intel-2016b-Python-2.7.12.eb b/p/PyGTS/PyGTS-0.3.1-intel-2016b-Python-2.7.12.eb new file mode 100644 index 00000000..b961fbd0 --- /dev/null +++ b/p/PyGTS/PyGTS-0.3.1-intel-2016b-Python-2.7.12.eb @@ -0,0 +1,30 @@ +easyblock = 'PythonPackage' + +name = 'PyGTS' +version = '0.3.1' +versionsuffix = '-Python-%(pyver)s' + +homepage = 'https://sourceforge.net/projects/pygts/' +description = """ PyGTS is a python package used to construct, manipulate, + and perform computations on triangulated surfaces. + It is a hand-crafted and pythonic binding for the GNU Triangulated Surface (GTS) Library. """ + +toolchain = {'name': 'intel', 'version': '2016b'} + +source_urls = [SOURCEFORGE_SOURCE] +sources = [SOURCELOWER_TAR_GZ] + +dependencies = [ + ('Python', '2.7.12'), + ('GLib', '2.49.5'), + ('GTS' ,'0.7.6'), +] + +options = {'modulename': 'gts'} + +sanity_check_paths = { + 'files': ['lib/python%%(pyshortver)s/site-packages/gts/_gts.%s' % SHLIB_EXT], + 'dirs':[], +} + +moduleclass = 'vis' diff --git a/p/PyQt/PyQt-4.11.3-foss-2015g-Python-2.7.9.eb b/p/PyQt/PyQt-4.11.3-foss-2015g-Python-2.7.9.eb new file mode 100644 index 00000000..03b5c37c --- /dev/null +++ b/p/PyQt/PyQt-4.11.3-foss-2015g-Python-2.7.9.eb @@ -0,0 +1,41 @@ +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# Author: Bart Verleye +# Center for eResearch, Auckland +easyblock = 'ConfigureMakePythonPackage' + +name = 'PyQt' +version = '4.11.3' + +homepage = 'http://www.riverbankcomputing.co.uk/software/pyqt' +description = """PyQt is a set of Python v2 and v3 bindings for Digia's Qt application framework.""" + +toolchain = {'name': 'foss', 'version': '2015g'} + +sources = ['%(name)s-x11-gpl-%(version)s.tar.gz'] +source_urls = ['http://sourceforge.net/projects/pyqt/files/PyQt4/PyQt-%(version)s'] + +python = 'Python' +pyver = '2.7.9' +pythonshortver = '.'.join(pyver.split('.')[:2]) +versionsuffix = '-%s-%s' % (python, pyver) + +dependencies = [ + (python, pyver), + ('SIP', '4.16.4', versionsuffix), + ('Qt', '4.8.6'), +] + +configopts = "configure-ng.py --confirm-license" +configopts += " --destdir=%%(installdir)s/lib/python%s/site-packages " % pythonshortver +configopts += " --no-sip-files" + +options = {'modulename': 'PyQt4'} + +modextrapaths = {'PYTHONPATH': 'lib/python%s/site-packages' % pythonshortver} + +sanity_check_paths = { + 'files': ['lib/python2.7/site-packages/PyQt4/Qt.so'], + 'dirs': [], +} + +moduleclass = 'vis' diff --git a/p/PyQt/PyQt-4.11.4-foss-2015g-Python-2.7.9.eb b/p/PyQt/PyQt-4.11.4-foss-2015g-Python-2.7.9.eb new file mode 100644 index 00000000..ccc5bc55 --- /dev/null +++ b/p/PyQt/PyQt-4.11.4-foss-2015g-Python-2.7.9.eb @@ -0,0 +1,41 @@ +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# Author: Bart Verleye +# Center for eResearch, Auckland +easyblock = 'ConfigureMakePythonPackage' + +name = 'PyQt' +version = '4.11.4' + +homepage = 'http://www.riverbankcomputing.co.uk/software/pyqt' +description = """PyQt is a set of Python v2 and v3 bindings for Digia's Qt application framework.""" + +toolchain = {'name': 'foss', 'version': '2015g'} + +sources = ['%(name)s-x11-gpl-%(version)s.tar.gz'] +source_urls = ['http://sourceforge.net/projects/pyqt/files/PyQt4/PyQt-%(version)s'] + +python = 'Python' +pyver = '2.7.9' +pythonshortver = '.'.join(pyver.split('.')[:2]) +versionsuffix = '-%s-%s' % (python, pyver) + +dependencies = [ + (python, pyver), + ('SIP', '4.17', versionsuffix), + ('Qt', '4.8.6'), +] + +configopts = "configure-ng.py --confirm-license" +configopts += " --destdir=%%(installdir)s/lib/python%s/site-packages " % pythonshortver +configopts += " --qsci-api" + +options = {'modulename': 'PyQt4'} + +modextrapaths = {'PYTHONPATH': 'lib/python%s/site-packages' % pythonshortver} + +sanity_check_paths = { + 'files': ['lib/python2.7/site-packages/PyQt4/Qt.so'], + 'dirs': [], +} + +moduleclass = 'vis' diff --git a/p/PyYAML/PyYAML-3.11-intel-2015b-Python-2.7.9.eb b/p/PyYAML/PyYAML-3.11-intel-2015b-Python-2.7.9.eb new file mode 100644 index 00000000..f011d87e --- /dev/null +++ b/p/PyYAML/PyYAML-3.11-intel-2015b-Python-2.7.9.eb @@ -0,0 +1,32 @@ +easyblock = "PythonPackage" + +name = "PyYAML" +version = "3.11" + +homepage = "https://pypi.python.org/pypi/PyYAML/" +description = """PyYAML is a YAML parser and emitter for the Python programming language.""" + +toolchain = {'name': 'intel', 'version': '2015b'} + +source_urls = [PYPI_SOURCE] +sources = [SOURCE_TAR_GZ] + +python = "Python" +pythonversion = "2.7.9" +py_short_ver = ".".join(pythonversion.split(".")[0:2]) + +versionsuffix = "-%s-%s" % (python, pythonversion) + +dependencies = [ + (python, pythonversion), + ('libyaml', '0.1.6'), +] + +options = {'modulename': 'yaml'} + +sanity_check_paths = { + 'files': [], + 'dirs': ['lib/python%s/site-packages/yaml' % py_short_ver], +} + +moduleclass = 'lib' diff --git a/p/Pysam/Pysam-0.9.0-goolf-1.7.20-Python-2.7.11.eb b/p/Pysam/Pysam-0.9.0-goolf-1.7.20-Python-2.7.11.eb new file mode 100644 index 00000000..61ca6bdf --- /dev/null +++ b/p/Pysam/Pysam-0.9.0-goolf-1.7.20-Python-2.7.11.eb @@ -0,0 +1,50 @@ +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# Author: Pablo Escobar Lopez +# sciCORE - University of Basel +# SIB Swiss Institute of Bioinformatics + +easyblock = 'Bundle' + +name = 'Pysam' +version = '0.9.0' +versionsuffix = '-Python-%(pyver)s' + +homepage = 'https://github.com/pysam-developers/pysam' +description = """Pysam is a python module for reading and manipulating Samfiles. + It's a lightweight wrapper of the samtools C-API. Pysam also includes an interface for tabix.""" + +toolchain = {'name': 'goolf', 'version': '1.7.20'} + +parallel = 1 + +dependencies = [ + ('Python', '2.7.11'), + ('ncurses', '5.9'), + ('zlib', '1.2.8'), + ('cURL', '7.44.0'), +] + +# this is a bundle of Python packages +exts_defaultclass = 'PythonPackage' +exts_filter = ("python -c 'import %(ext_name)s'", '') + +exts_list = [ + ('Cython', '0.23.4', { + 'source_urls': ['http://cython.org/release/'], + }), + ('pysam', version, { + 'source_tmpl': 'v%(version)s.tar.gz', + 'source_urls': ['https://github.com/pysam-developers/pysam/archive/'], + }), +] + +modextrapaths = { + 'PYTHONPATH': ['lib/python%(pyshortver)s/site-packages'], +} + +sanity_check_paths = { + 'files': [], + 'dirs': ['lib/python%(pyshortver)s/site-packages/pysam-%(version)s-py%(pyshortver)s-linux-x86_64.egg'], +} + +moduleclass = 'bio' diff --git a/p/Python/Python-2.5.6-goolf-1.4.10-bare.eb b/p/Python/Python-2.5.6-goolf-1.4.10-bare.eb new file mode 100644 index 00000000..e815cc69 --- /dev/null +++ b/p/Python/Python-2.5.6-goolf-1.4.10-bare.eb @@ -0,0 +1,26 @@ +name = 'Python' +version = '2.5.6' +versionsuffix = '-bare' + +homepage = 'http://python.org/' +description = "Python is a programming language that lets you work more quickly and integrate your systems more effectively." + +toolchain = {'name': 'goolf', 'version': '1.4.10'} +toolchainopts = {'pic': True, 'opt': True, 'optarch': True} + +source_urls = ['http://www.python.org/ftp/%(namelower)s/%(version)s/'] +sources = [SOURCE_TGZ] + +patches = ['Python-%(version)s_svnversion-cmd.patch'] + +dependencies = [ + ('bzip2', '1.0.6'), + ('zlib', '1.2.7'), + ('libreadline', '6.2'), + ('ncurses', '5.9'), + # ('OpenSSL', '1.0.1f'), # OS dependency should be preferred for security reasons +] + +osdependencies = [('openssl-devel', 'libssl-dev', 'libopenssl-devel')] + +moduleclass = 'lang' diff --git a/p/Python/Python-2.5.6-ictce-5.2.0-bare.eb b/p/Python/Python-2.5.6-ictce-5.2.0-bare.eb new file mode 100644 index 00000000..809068de --- /dev/null +++ b/p/Python/Python-2.5.6-ictce-5.2.0-bare.eb @@ -0,0 +1,26 @@ +name = 'Python' +version = '2.5.6' +versionsuffix = '-bare' + +homepage = 'http://python.org/' +description = "Python is a programming language that lets you work more quickly and integrate your systems more effectively." + +toolchain = {'name': 'ictce', 'version': '5.2.0'} +toolchainopts = {'pic': True, 'opt': True, 'optarch': True} + +source_urls = ['http://www.python.org/ftp/%(namelower)s/%(version)s/'] +sources = [SOURCE_TGZ] + +patches = ['Python-%(version)s_svnversion-cmd.patch'] + +dependencies = [ + ('bzip2', '1.0.6'), + ('zlib', '1.2.7'), + ('libreadline', '6.2'), + ('ncurses', '5.9'), + # ('OpenSSL', '1.0.1f'), # OS dependency should be preferred for security reasons +] + +osdependencies = [('openssl-devel', 'libssl-dev', 'libopenssl-devel')] + +moduleclass = 'lang' diff --git a/p/Python/Python-2.5.6-ictce-5.3.0-bare.eb b/p/Python/Python-2.5.6-ictce-5.3.0-bare.eb new file mode 100644 index 00000000..c781bfe8 --- /dev/null +++ b/p/Python/Python-2.5.6-ictce-5.3.0-bare.eb @@ -0,0 +1,26 @@ +name = 'Python' +version = '2.5.6' +versionsuffix = '-bare' + +homepage = 'http://python.org/' +description = "Python is a programming language that lets you work more quickly and integrate your systems more effectively." + +toolchain = {'name': 'ictce', 'version': '5.3.0'} +toolchainopts = {'pic': True, 'opt': True, 'optarch': True} + +source_urls = ['http://www.python.org/ftp/%(namelower)s/%(version)s/'] +sources = [SOURCE_TGZ] + +patches = ['Python-%(version)s_svnversion-cmd.patch'] + +dependencies = [ + ('bzip2', '1.0.6'), + ('zlib', '1.2.7'), + ('libreadline', '6.2'), + ('ncurses', '5.9'), + # ('OpenSSL', '1.0.1f'), # OS dependency should be preferred for security reasons +] + +osdependencies = [('openssl-devel', 'libssl-dev', 'libopenssl-devel')] + +moduleclass = 'lang' diff --git a/p/Python/Python-2.7.10-GCC-4.9.3-2.25-bare.eb b/p/Python/Python-2.7.10-GCC-4.9.3-2.25-bare.eb new file mode 100644 index 00000000..c19c8970 --- /dev/null +++ b/p/Python/Python-2.7.10-GCC-4.9.3-2.25-bare.eb @@ -0,0 +1,31 @@ +name = 'Python' +version = '2.7.10' +versionsuffix = '-bare' + +homepage = 'http://python.org/' +description = "Python is a programming language that lets you work more quickly and integrate your systems more effectively." + +toolchain = {'name': 'GCC', 'version': '4.9.3-2.25'} +toolchainopts = {'pic': True, 'opt': True, 'optarch': True} + +source_urls = ['http://www.python.org/ftp/%(namelower)s/%(version)s/'] +sources = [SOURCE_TGZ] + +# python needs bzip2 to build the bz2 package +dependencies = [ + ('bzip2', '1.0.6'), + ('zlib', '1.2.8'), + ('libreadline', '6.3', '', ('GCCcore', '4.9.3')), + ('ncurses', '6.0', '', ('GCCcore', '4.9.3')), + ('SQLite', '3.8.10.2'), + ('Tk', '8.6.4', '-no-X11'), + # ('OpenSSL', '1.0.1k'), # OS dependency should be preferred if the os version is more recent then this version, it's + # nice to have an up to date openssl for security reasons +] + +osdependencies = [('openssl-devel', 'libssl-dev')] + +# bare installation: no extensions included +exts_list = [] + +moduleclass = 'lang' diff --git a/p/Python/Python-2.7.10-GNU-4.9.3-2.25-bare.eb b/p/Python/Python-2.7.10-GNU-4.9.3-2.25-bare.eb new file mode 100644 index 00000000..094f5e83 --- /dev/null +++ b/p/Python/Python-2.7.10-GNU-4.9.3-2.25-bare.eb @@ -0,0 +1,31 @@ +name = 'Python' +version = '2.7.10' +versionsuffix = '-bare' + +homepage = 'http://python.org/' +description = "Python is a programming language that lets you work more quickly and integrate your systems more effectively." + +toolchain = {'name': 'GNU', 'version': '4.9.3-2.25'} +toolchainopts = {'pic': True, 'opt': True, 'optarch': True} + +source_urls = ['http://www.python.org/ftp/%(namelower)s/%(version)s/'] +sources = [SOURCE_TGZ] + +# python needs bzip2 to build the bz2 package +dependencies = [ + ('bzip2', '1.0.6'), + ('zlib', '1.2.8'), + ('libreadline', '6.3'), + ('ncurses', '5.9'), + ('SQLite', '3.8.10.2'), + ('Tk', '8.6.4', '-no-X11'), + # ('OpenSSL', '1.0.1k'), # OS dependency should be preferred if the os version is more recent then this version, it's + # nice to have an up to date openssl for security reasons +] + +osdependencies = [('openssl-devel', 'libssl-dev')] + +# bare installation: no extensions included +exts_list = [] + +moduleclass = 'lang' diff --git a/p/Python/Python-2.7.10-foss-2015a.eb b/p/Python/Python-2.7.10-foss-2015a.eb new file mode 100644 index 00000000..2110e248 --- /dev/null +++ b/p/Python/Python-2.7.10-foss-2015a.eb @@ -0,0 +1,120 @@ +name = 'Python' +version = '2.7.10' + +homepage = 'http://python.org/' +description = """Python is a programming language that lets you work more quickly and integrate your systems + more effectively.""" + +toolchain = {'name': 'foss', 'version': '2015a'} +toolchainopts = {'pic': True, 'opt': True, 'optarch': True} + +numpyversion = '1.9.2' +scipyversion = '0.15.1' + +source_urls = ['http://www.python.org/ftp/%(namelower)s/%(version)s/'] +sources = [SOURCE_TGZ] + +# python needs bzip2 to build the bz2 package +dependencies = [ + ('bzip2', '1.0.6'), + ('zlib', '1.2.8'), + ('libreadline', '6.3'), + ('ncurses', '5.9'), + ('SQLite', '3.8.10.2'), + ('Tk', '8.6.4', '-no-X11'), + ('GMP', '6.0.0a', '', ('GCC', '4.9.2')), # required for pycrypto + # ('OpenSSL', '1.0.1m'), # OS dependency should be preferred if the os version is more recent then this version, it's + # nice to have an up to date openssl for security reasons +] + +osdependencies = [('openssl-devel', 'libssl-dev', 'libopenssl-devel')] + +# order is important! +# package versions updated May 28th 2015 +exts_list = [ + ('setuptools', '16.0', { + 'source_urls': ['https://pypi.python.org/packages/source/s/setuptools/'], + }), + ('pip', '7.0.1', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pip/'], + }), + ('nose', '1.3.6', { + 'source_urls': ['https://pypi.python.org/packages/source/n/nose/'], + }), + ('numpy', numpyversion, { + 'source_urls': [('http://sourceforge.net/projects/numpy/files/NumPy/%s' % numpyversion, 'download')], + 'patches': ['numpy-1.8.0-mkl.patch'], + }), + ('scipy', scipyversion, { + 'source_urls': [('http://sourceforge.net/projects/scipy/files/scipy/%s' % scipyversion, 'download')], + }), + ('blist', '1.3.6', { + 'source_urls': ['https://pypi.python.org/packages/source/b/blist/'], + }), + ('mpi4py', '1.3.1', { + 'source_urls': ['http://bitbucket.org/mpi4py/mpi4py/downloads/'], + }), + ('paycheck', '1.0.2', { + 'source_urls': ['https://pypi.python.org/packages/source/p/paycheck/'], + }), + ('argparse', '1.3.0', { + 'source_urls': ['https://pypi.python.org/packages/source/a/argparse/'], + }), + ('pbr', '1.0.1', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pbr/'], + }), + ('lockfile', '0.10.2', { + 'source_urls': ['https://pypi.python.org/packages/source/l/lockfile/'], + }), + ('Cython', '0.22', { + 'source_urls': ['http://www.cython.org/release/'], + }), + ('six', '1.9.0', { + 'source_urls': ['https://pypi.python.org/packages/source/s/six/'], + }), + ('dateutil', '2.4.2', { + 'source_tmpl': 'python-%(name)s-%(version)s.tar.gz', + 'source_urls': ['https://pypi.python.org/packages/source/p/python-dateutil/'], + }), + ('deap', '1.0.2', { + 'source_tmpl': '%(name)s-%(version)s.post2.tar.gz', + 'source_urls': ['https://pypi.python.org/packages/source/d/deap/'], + }), + ('decorator', '3.4.2', { + 'source_urls': ['https://pypi.python.org/packages/source/d/decorator/'], + }), + ('arff', '2.0.2', { + 'source_tmpl': 'liac-%(name)s-%(version)s.zip', + 'source_urls': ['https://pypi.python.org/packages/source/l/liac-arff/'], + }), + ('pycrypto', '2.6.1', { + 'modulename': 'Crypto', + 'source_urls': ['http://ftp.dlitz.net/pub/dlitz/crypto/pycrypto/'], + }), + ('ecdsa', '0.13', { + 'source_urls': ['https://pypi.python.org/packages/source/e/ecdsa/'], + }), + ('paramiko', '1.15.2', { + 'source_urls': ['https://pypi.python.org/packages/source/p/paramiko/'], + }), + ('pyparsing', '2.0.3', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pyparsing/'], + }), + ('netifaces', '0.10.4', { + 'source_urls': ['https://pypi.python.org/packages/source/n/netifaces'], + }), + ('netaddr', '0.7.14', { + 'source_urls': ['https://pypi.python.org/packages/source/n/netaddr'], + }), + ('mock', '1.0.1', { + 'source_urls': ['https://pypi.python.org/packages/source/m/mock'], + }), + ('pytz', '2015.4', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pytz'], + }), + ('pandas', '0.16.1', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pandas'], + }), +] + +moduleclass = 'lang' diff --git a/p/Python/Python-2.7.10-foss-2015b.eb b/p/Python/Python-2.7.10-foss-2015b.eb new file mode 100644 index 00000000..76db705e --- /dev/null +++ b/p/Python/Python-2.7.10-foss-2015b.eb @@ -0,0 +1,120 @@ +name = 'Python' +version = '2.7.10' + +homepage = 'http://python.org/' +description = """Python is a programming language that lets you work more quickly and integrate your systems + more effectively.""" + +toolchain = {'name': 'foss', 'version': '2015b'} +toolchainopts = {'pic': True, 'opt': True, 'optarch': True} + +numpyversion = '1.9.2' +scipyversion = '0.15.1' + +source_urls = ['http://www.python.org/ftp/%(namelower)s/%(version)s/'] +sources = [SOURCE_TGZ] + +# python needs bzip2 to build the bz2 package +dependencies = [ + ('bzip2', '1.0.6'), + ('zlib', '1.2.8'), + ('libreadline', '6.3'), + ('ncurses', '5.9'), + ('SQLite', '3.8.10.2'), + ('Tk', '8.6.4', '-no-X11'), + ('GMP', '6.0.0a', '', ('GNU', '4.9.3-2.25')), # required for pycrypto + # ('OpenSSL', '1.0.1m'), # OS dependency should be preferred if the os version is more recent then this version, it's + # nice to have an up to date openssl for security reasons +] + +osdependencies = [('openssl-devel', 'libssl-dev', 'libopenssl-devel')] + +# order is important! +# package versions updated May 28th 2015 +exts_list = [ + ('setuptools', '16.0', { + 'source_urls': ['https://pypi.python.org/packages/source/s/setuptools/'], + }), + ('pip', '7.0.1', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pip/'], + }), + ('nose', '1.3.6', { + 'source_urls': ['https://pypi.python.org/packages/source/n/nose/'], + }), + ('numpy', numpyversion, { + 'source_urls': [('http://sourceforge.net/projects/numpy/files/NumPy/%s' % numpyversion, 'download')], + 'patches': ['numpy-1.8.0-mkl.patch'], + }), + ('scipy', scipyversion, { + 'source_urls': [('http://sourceforge.net/projects/scipy/files/scipy/%s' % scipyversion, 'download')], + }), + ('blist', '1.3.6', { + 'source_urls': ['https://pypi.python.org/packages/source/b/blist/'], + }), + ('mpi4py', '1.3.1', { + 'source_urls': ['http://bitbucket.org/mpi4py/mpi4py/downloads/'], + }), + ('paycheck', '1.0.2', { + 'source_urls': ['https://pypi.python.org/packages/source/p/paycheck/'], + }), + ('argparse', '1.3.0', { + 'source_urls': ['https://pypi.python.org/packages/source/a/argparse/'], + }), + ('pbr', '1.0.1', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pbr/'], + }), + ('lockfile', '0.10.2', { + 'source_urls': ['https://pypi.python.org/packages/source/l/lockfile/'], + }), + ('Cython', '0.22', { + 'source_urls': ['http://www.cython.org/release/'], + }), + ('six', '1.9.0', { + 'source_urls': ['https://pypi.python.org/packages/source/s/six/'], + }), + ('dateutil', '2.4.2', { + 'source_tmpl': 'python-%(name)s-%(version)s.tar.gz', + 'source_urls': ['https://pypi.python.org/packages/source/p/python-dateutil/'], + }), + ('deap', '1.0.2', { + 'source_tmpl': '%(name)s-%(version)s.post2.tar.gz', + 'source_urls': ['https://pypi.python.org/packages/source/d/deap/'], + }), + ('decorator', '3.4.2', { + 'source_urls': ['https://pypi.python.org/packages/source/d/decorator/'], + }), + ('arff', '2.0.2', { + 'source_tmpl': 'liac-%(name)s-%(version)s.zip', + 'source_urls': ['https://pypi.python.org/packages/source/l/liac-arff/'], + }), + ('pycrypto', '2.6.1', { + 'modulename': 'Crypto', + 'source_urls': ['http://ftp.dlitz.net/pub/dlitz/crypto/pycrypto/'], + }), + ('ecdsa', '0.13', { + 'source_urls': ['https://pypi.python.org/packages/source/e/ecdsa/'], + }), + ('paramiko', '1.15.2', { + 'source_urls': ['https://pypi.python.org/packages/source/p/paramiko/'], + }), + ('pyparsing', '2.0.3', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pyparsing/'], + }), + ('netifaces', '0.10.4', { + 'source_urls': ['https://pypi.python.org/packages/source/n/netifaces'], + }), + ('netaddr', '0.7.14', { + 'source_urls': ['https://pypi.python.org/packages/source/n/netaddr'], + }), + ('mock', '1.0.1', { + 'source_urls': ['https://pypi.python.org/packages/source/m/mock'], + }), + ('pytz', '2015.4', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pytz'], + }), + ('pandas', '0.16.1', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pandas'], + }), +] + +moduleclass = 'lang' diff --git a/p/Python/Python-2.7.10-gimkl-2.11.5.eb b/p/Python/Python-2.7.10-gimkl-2.11.5.eb new file mode 100644 index 00000000..a5549be2 --- /dev/null +++ b/p/Python/Python-2.7.10-gimkl-2.11.5.eb @@ -0,0 +1,119 @@ +name = 'Python' +version = '2.7.10' + +homepage = 'http://python.org/' +description = """Python is a programming language that lets you work more quickly and integrate your systems + more effectively.""" + +toolchain = {'name': 'gimkl', 'version': '2.11.5'} +toolchainopts = {'pic': True, 'opt': True, 'optarch': True} + +numpyversion = '1.9.2' +scipyversion = '0.15.1' + +source_urls = ['http://www.python.org/ftp/%(namelower)s/%(version)s/'] +sources = [SOURCE_TGZ] + +# python needs bzip2 to build the bz2 package +dependencies = [ + ('bzip2', '1.0.6'), + ('zlib', '1.2.8'), + ('libreadline', '6.3'), + ('ncurses', '5.9'), + ('SQLite', '3.8.10.2'), + ('Tk', '8.6.4', '-no-X11'), + # ('OpenSSL', '1.0.1m'), # OS dependency should be preferred if the os version is more recent then this version, it's + # nice to have an up to date openssl for security reasons +] + +osdependencies = [('openssl-devel', 'libssl-dev', 'libopenssl-devel')] + +# order is important! +# package versions updated May 28th 2015 +exts_list = [ + ('setuptools', '16.0', { + 'source_urls': ['https://pypi.python.org/packages/source/s/setuptools/'], + }), + ('pip', '7.0.1', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pip/'], + }), + ('nose', '1.3.6', { + 'source_urls': ['https://pypi.python.org/packages/source/n/nose/'], + }), + ('numpy', numpyversion, { + 'source_urls': [('http://sourceforge.net/projects/numpy/files/NumPy/%s' % numpyversion, 'download')], + 'patches': ['numpy-1.8.0-mkl.patch'], + }), + ('scipy', scipyversion, { + 'source_urls': [('http://sourceforge.net/projects/scipy/files/scipy/%s' % scipyversion, 'download')], + }), + ('blist', '1.3.6', { + 'source_urls': ['https://pypi.python.org/packages/source/b/blist/'], + }), + ('mpi4py', '1.3.1', { + 'source_urls': ['http://bitbucket.org/mpi4py/mpi4py/downloads/'], + }), + ('paycheck', '1.0.2', { + 'source_urls': ['https://pypi.python.org/packages/source/p/paycheck/'], + }), + ('argparse', '1.3.0', { + 'source_urls': ['https://pypi.python.org/packages/source/a/argparse/'], + }), + ('pbr', '1.0.1', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pbr/'], + }), + ('lockfile', '0.10.2', { + 'source_urls': ['https://pypi.python.org/packages/source/l/lockfile/'], + }), + ('Cython', '0.22', { + 'source_urls': ['http://www.cython.org/release/'], + }), + ('six', '1.9.0', { + 'source_urls': ['https://pypi.python.org/packages/source/s/six/'], + }), + ('dateutil', '2.4.2', { + 'source_tmpl': 'python-%(name)s-%(version)s.tar.gz', + 'source_urls': ['https://pypi.python.org/packages/source/p/python-dateutil/'], + }), + ('deap', '1.0.2', { + 'source_tmpl': '%(name)s-%(version)s.post2.tar.gz', + 'source_urls': ['https://pypi.python.org/packages/source/d/deap/'], + }), + ('decorator', '3.4.2', { + 'source_urls': ['https://pypi.python.org/packages/source/d/decorator/'], + }), + ('arff', '2.0.2', { + 'source_tmpl': 'liac-%(name)s-%(version)s.zip', + 'source_urls': ['https://pypi.python.org/packages/source/l/liac-arff/'], + }), + ('pycrypto', '2.6.1', { + 'modulename': 'Crypto', + 'source_urls': ['http://ftp.dlitz.net/pub/dlitz/crypto/pycrypto/'], + }), + ('ecdsa', '0.13', { + 'source_urls': ['https://pypi.python.org/packages/source/e/ecdsa/'], + }), + ('paramiko', '1.15.2', { + 'source_urls': ['https://pypi.python.org/packages/source/p/paramiko/'], + }), + ('pyparsing', '2.0.3', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pyparsing/'], + }), + ('netifaces', '0.10.4', { + 'source_urls': ['https://pypi.python.org/packages/source/n/netifaces'], + }), + ('netaddr', '0.7.14', { + 'source_urls': ['https://pypi.python.org/packages/source/n/netaddr'], + }), + ('mock', '1.0.1', { + 'source_urls': ['https://pypi.python.org/packages/source/m/mock'], + }), + ('pytz', '2015.4', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pytz'], + }), + ('pandas', '0.16.1', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pandas'], + }), +] + +moduleclass = 'lang' diff --git a/p/Python/Python-2.7.10-goolf-1.4.10.eb b/p/Python/Python-2.7.10-goolf-1.4.10.eb new file mode 100644 index 00000000..1156ffc2 --- /dev/null +++ b/p/Python/Python-2.7.10-goolf-1.4.10.eb @@ -0,0 +1,120 @@ +name = 'Python' +version = '2.7.10' + +homepage = 'http://python.org/' +description = """Python is a programming language that lets you work more quickly and integrate your systems + more effectively.""" + +toolchain = {'name': 'goolf', 'version': '1.4.10'} +toolchainopts = {'pic': True, 'opt': True, 'optarch': True} + +numpyversion = '1.9.2' +scipyversion = '0.15.1' + +source_urls = ['http://www.python.org/ftp/%(namelower)s/%(version)s/'] +sources = [SOURCE_TGZ] + +# python needs bzip2 to build the bz2 package +dependencies = [ + ('bzip2', '1.0.6'), + ('zlib', '1.2.8'), + ('libreadline', '6.3'), + ('ncurses', '5.9'), + ('SQLite', '3.8.10.2'), + ('Tk', '8.6.4', '-no-X11'), + ('GMP', '6.0.0a', '', ('GCC', '4.7.2')), # required for pycrypto + # ('OpenSSL', '1.0.1m'), # OS dependency should be preferred if the os version is more recent then this version, it's + # nice to have an up to date openssl for security reasons +] + +osdependencies = [('openssl-devel', 'libssl-dev', 'libopenssl-devel')] + +# order is important! +# package versions updated May 28th 2015 +exts_list = [ + ('setuptools', '16.0', { + 'source_urls': ['https://pypi.python.org/packages/source/s/setuptools/'], + }), + ('pip', '7.0.1', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pip/'], + }), + ('nose', '1.3.6', { + 'source_urls': ['https://pypi.python.org/packages/source/n/nose/'], + }), + ('numpy', numpyversion, { + 'source_urls': [('http://sourceforge.net/projects/numpy/files/NumPy/%s' % numpyversion, 'download')], + 'patches': ['numpy-1.8.0-mkl.patch'], + }), + ('scipy', scipyversion, { + 'source_urls': [('http://sourceforge.net/projects/scipy/files/scipy/%s' % scipyversion, 'download')], + }), + ('blist', '1.3.6', { + 'source_urls': ['https://pypi.python.org/packages/source/b/blist/'], + }), + ('mpi4py', '1.3.1', { + 'source_urls': ['http://bitbucket.org/mpi4py/mpi4py/downloads/'], + }), + ('paycheck', '1.0.2', { + 'source_urls': ['https://pypi.python.org/packages/source/p/paycheck/'], + }), + ('argparse', '1.3.0', { + 'source_urls': ['https://pypi.python.org/packages/source/a/argparse/'], + }), + ('pbr', '1.0.1', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pbr/'], + }), + ('lockfile', '0.10.2', { + 'source_urls': ['https://pypi.python.org/packages/source/l/lockfile/'], + }), + ('Cython', '0.22', { + 'source_urls': ['http://www.cython.org/release/'], + }), + ('six', '1.9.0', { + 'source_urls': ['https://pypi.python.org/packages/source/s/six/'], + }), + ('dateutil', '2.4.2', { + 'source_tmpl': 'python-%(name)s-%(version)s.tar.gz', + 'source_urls': ['https://pypi.python.org/packages/source/p/python-dateutil/'], + }), + ('deap', '1.0.2', { + 'source_tmpl': '%(name)s-%(version)s.post2.tar.gz', + 'source_urls': ['https://pypi.python.org/packages/source/d/deap/'], + }), + ('decorator', '3.4.2', { + 'source_urls': ['https://pypi.python.org/packages/source/d/decorator/'], + }), + ('arff', '2.0.2', { + 'source_tmpl': 'liac-%(name)s-%(version)s.zip', + 'source_urls': ['https://pypi.python.org/packages/source/l/liac-arff/'], + }), + ('pycrypto', '2.6.1', { + 'modulename': 'Crypto', + 'source_urls': ['http://ftp.dlitz.net/pub/dlitz/crypto/pycrypto/'], + }), + ('ecdsa', '0.13', { + 'source_urls': ['https://pypi.python.org/packages/source/e/ecdsa/'], + }), + ('paramiko', '1.15.2', { + 'source_urls': ['https://pypi.python.org/packages/source/p/paramiko/'], + }), + ('pyparsing', '2.0.3', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pyparsing/'], + }), + ('netifaces', '0.10.4', { + 'source_urls': ['https://pypi.python.org/packages/source/n/netifaces'], + }), + ('netaddr', '0.7.14', { + 'source_urls': ['https://pypi.python.org/packages/source/n/netaddr'], + }), + ('mock', '1.0.1', { + 'source_urls': ['https://pypi.python.org/packages/source/m/mock'], + }), + ('pytz', '2015.4', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pytz'], + }), + ('pandas', '0.16.1', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pandas'], + }), +] + +moduleclass = 'lang' diff --git a/p/Python/Python-2.7.10-goolf-1.7.20.eb b/p/Python/Python-2.7.10-goolf-1.7.20.eb new file mode 100644 index 00000000..56b22741 --- /dev/null +++ b/p/Python/Python-2.7.10-goolf-1.7.20.eb @@ -0,0 +1,120 @@ +name = 'Python' +version = '2.7.10' + +homepage = 'http://python.org/' +description = """Python is a programming language that lets you work more quickly and integrate your systems + more effectively.""" + +toolchain = {'name': 'goolf', 'version': '1.7.20'} +toolchainopts = {'pic': True, 'opt': True, 'optarch': True} + +numpyversion = '1.9.2' +scipyversion = '0.15.1' + +source_urls = ['http://www.python.org/ftp/%(namelower)s/%(version)s/'] +sources = [SOURCE_TGZ] + +# python needs bzip2 to build the bz2 package +dependencies = [ + ('bzip2', '1.0.6'), + ('zlib', '1.2.8'), + ('libreadline', '6.3'), + ('ncurses', '5.9'), + ('SQLite', '3.8.10.2'), + ('Tk', '8.6.4', '-no-X11'), + ('GMP', '6.0.0a', '', ('GCC', '4.8.4')), # required for pycrypto + # ('OpenSSL', '1.0.1m'), # OS dependency should be preferred if the os version is more recent then this version, it's + # nice to have an up to date openssl for security reasons +] + +osdependencies = [('openssl-devel', 'libssl-dev', 'libopenssl-devel')] + +# order is important! +# package versions updated May 28th 2015 +exts_list = [ + ('setuptools', '16.0', { + 'source_urls': ['https://pypi.python.org/packages/source/s/setuptools/'], + }), + ('pip', '7.0.1', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pip/'], + }), + ('nose', '1.3.6', { + 'source_urls': ['https://pypi.python.org/packages/source/n/nose/'], + }), + ('numpy', numpyversion, { + 'source_urls': [('http://sourceforge.net/projects/numpy/files/NumPy/%s' % numpyversion, 'download')], + 'patches': ['numpy-1.8.0-mkl.patch'], + }), + ('scipy', scipyversion, { + 'source_urls': [('http://sourceforge.net/projects/scipy/files/scipy/%s' % scipyversion, 'download')], + }), + ('blist', '1.3.6', { + 'source_urls': ['https://pypi.python.org/packages/source/b/blist/'], + }), + ('mpi4py', '1.3.1', { + 'source_urls': ['http://bitbucket.org/mpi4py/mpi4py/downloads/'], + }), + ('paycheck', '1.0.2', { + 'source_urls': ['https://pypi.python.org/packages/source/p/paycheck/'], + }), + ('argparse', '1.3.0', { + 'source_urls': ['https://pypi.python.org/packages/source/a/argparse/'], + }), + ('pbr', '1.0.1', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pbr/'], + }), + ('lockfile', '0.10.2', { + 'source_urls': ['https://pypi.python.org/packages/source/l/lockfile/'], + }), + ('Cython', '0.22', { + 'source_urls': ['http://www.cython.org/release/'], + }), + ('six', '1.9.0', { + 'source_urls': ['https://pypi.python.org/packages/source/s/six/'], + }), + ('dateutil', '2.4.2', { + 'source_tmpl': 'python-%(name)s-%(version)s.tar.gz', + 'source_urls': ['https://pypi.python.org/packages/source/p/python-dateutil/'], + }), + ('deap', '1.0.2', { + 'source_tmpl': '%(name)s-%(version)s.post2.tar.gz', + 'source_urls': ['https://pypi.python.org/packages/source/d/deap/'], + }), + ('decorator', '3.4.2', { + 'source_urls': ['https://pypi.python.org/packages/source/d/decorator/'], + }), + ('arff', '2.0.2', { + 'source_tmpl': 'liac-%(name)s-%(version)s.zip', + 'source_urls': ['https://pypi.python.org/packages/source/l/liac-arff/'], + }), + ('pycrypto', '2.6.1', { + 'modulename': 'Crypto', + 'source_urls': ['http://ftp.dlitz.net/pub/dlitz/crypto/pycrypto/'], + }), + ('ecdsa', '0.13', { + 'source_urls': ['https://pypi.python.org/packages/source/e/ecdsa/'], + }), + ('paramiko', '1.15.2', { + 'source_urls': ['https://pypi.python.org/packages/source/p/paramiko/'], + }), + ('pyparsing', '2.0.3', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pyparsing/'], + }), + ('netifaces', '0.10.4', { + 'source_urls': ['https://pypi.python.org/packages/source/n/netifaces'], + }), + ('netaddr', '0.7.14', { + 'source_urls': ['https://pypi.python.org/packages/source/n/netaddr'], + }), + ('mock', '1.0.1', { + 'source_urls': ['https://pypi.python.org/packages/source/m/mock'], + }), + ('pytz', '2015.4', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pytz'], + }), + ('pandas', '0.16.1', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pandas'], + }), +] + +moduleclass = 'lang' diff --git a/p/Python/Python-2.7.10-intel-2015a.eb b/p/Python/Python-2.7.10-intel-2015a.eb new file mode 100644 index 00000000..2661d5c9 --- /dev/null +++ b/p/Python/Python-2.7.10-intel-2015a.eb @@ -0,0 +1,120 @@ +name = 'Python' +version = '2.7.10' + +homepage = 'http://python.org/' +description = """Python is a programming language that lets you work more quickly and integrate your systems + more effectively.""" + +toolchain = {'name': 'intel', 'version': '2015a'} +toolchainopts = {'pic': True, 'opt': True, 'optarch': True} + +numpyversion = '1.9.2' +scipyversion = '0.15.1' + +source_urls = ['http://www.python.org/ftp/%(namelower)s/%(version)s/'] +sources = [SOURCE_TGZ] + +# python needs bzip2 to build the bz2 package +dependencies = [ + ('bzip2', '1.0.6'), + ('zlib', '1.2.8'), + ('libreadline', '6.3'), + ('ncurses', '5.9'), + ('SQLite', '3.8.10.2'), + ('Tk', '8.6.4', '-no-X11'), + ('GMP', '6.0.0a', '', ('GCC', '4.9.2')), # required for pycrypto + # ('OpenSSL', '1.0.1m'), # OS dependency should be preferred if the os version is more recent then this version, it's + # nice to have an up to date openssl for security reasons +] + +osdependencies = [('openssl-devel', 'libssl-dev', 'libopenssl-devel')] + +# order is important! +# package versions updated May 28th 2015 +exts_list = [ + ('setuptools', '16.0', { + 'source_urls': ['https://pypi.python.org/packages/source/s/setuptools/'], + }), + ('pip', '7.0.1', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pip/'], + }), + ('nose', '1.3.6', { + 'source_urls': ['https://pypi.python.org/packages/source/n/nose/'], + }), + ('numpy', numpyversion, { + 'source_urls': [('http://sourceforge.net/projects/numpy/files/NumPy/%s' % numpyversion, 'download')], + 'patches': ['numpy-1.8.0-mkl.patch'], + }), + ('scipy', scipyversion, { + 'source_urls': [('http://sourceforge.net/projects/scipy/files/scipy/%s' % scipyversion, 'download')], + }), + ('blist', '1.3.6', { + 'source_urls': ['https://pypi.python.org/packages/source/b/blist/'], + }), + ('mpi4py', '1.3.1', { + 'source_urls': ['http://bitbucket.org/mpi4py/mpi4py/downloads/'], + }), + ('paycheck', '1.0.2', { + 'source_urls': ['https://pypi.python.org/packages/source/p/paycheck/'], + }), + ('argparse', '1.3.0', { + 'source_urls': ['https://pypi.python.org/packages/source/a/argparse/'], + }), + ('pbr', '1.0.1', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pbr/'], + }), + ('lockfile', '0.10.2', { + 'source_urls': ['https://pypi.python.org/packages/source/l/lockfile/'], + }), + ('Cython', '0.22', { + 'source_urls': ['http://www.cython.org/release/'], + }), + ('six', '1.9.0', { + 'source_urls': ['https://pypi.python.org/packages/source/s/six/'], + }), + ('dateutil', '2.4.2', { + 'source_tmpl': 'python-%(name)s-%(version)s.tar.gz', + 'source_urls': ['https://pypi.python.org/packages/source/p/python-dateutil/'], + }), + ('deap', '1.0.2', { + 'source_tmpl': '%(name)s-%(version)s.post2.tar.gz', + 'source_urls': ['https://pypi.python.org/packages/source/d/deap/'], + }), + ('decorator', '3.4.2', { + 'source_urls': ['https://pypi.python.org/packages/source/d/decorator/'], + }), + ('arff', '2.0.2', { + 'source_tmpl': 'liac-%(name)s-%(version)s.zip', + 'source_urls': ['https://pypi.python.org/packages/source/l/liac-arff/'], + }), + ('pycrypto', '2.6.1', { + 'modulename': 'Crypto', + 'source_urls': ['http://ftp.dlitz.net/pub/dlitz/crypto/pycrypto/'], + }), + ('ecdsa', '0.13', { + 'source_urls': ['https://pypi.python.org/packages/source/e/ecdsa/'], + }), + ('paramiko', '1.15.2', { + 'source_urls': ['https://pypi.python.org/packages/source/p/paramiko/'], + }), + ('pyparsing', '2.0.3', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pyparsing/'], + }), + ('netifaces', '0.10.4', { + 'source_urls': ['https://pypi.python.org/packages/source/n/netifaces'], + }), + ('netaddr', '0.7.14', { + 'source_urls': ['https://pypi.python.org/packages/source/n/netaddr'], + }), + ('mock', '1.0.1', { + 'source_urls': ['https://pypi.python.org/packages/source/m/mock'], + }), + ('pytz', '2015.4', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pytz'], + }), + ('pandas', '0.16.1', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pandas'], + }), +] + +moduleclass = 'lang' diff --git a/p/Python/Python-2.7.10-intel-2015b.eb b/p/Python/Python-2.7.10-intel-2015b.eb new file mode 100644 index 00000000..94c61afa --- /dev/null +++ b/p/Python/Python-2.7.10-intel-2015b.eb @@ -0,0 +1,119 @@ +name = 'Python' +version = '2.7.10' + +homepage = 'http://python.org/' +description = """Python is a programming language that lets you work more quickly and integrate your systems + more effectively.""" + +toolchain = {'name': 'intel', 'version': '2015b'} +toolchainopts = {'pic': True, 'opt': True, 'optarch': True} + +numpyversion = '1.9.2' +scipyversion = '0.15.1' + +source_urls = ['http://www.python.org/ftp/%(namelower)s/%(version)s/'] +sources = [SOURCE_TGZ] + +# python needs bzip2 to build the bz2 package +dependencies = [ + ('bzip2', '1.0.6'), + ('zlib', '1.2.8'), + ('libreadline', '6.3'), + ('ncurses', '5.9'), + ('SQLite', '3.8.10.2'), + ('Tk', '8.6.4', '-no-X11'), + # ('OpenSSL', '1.0.1m'), # OS dependency should be preferred if the os version is more recent then this version, it's + # nice to have an up to date openssl for security reasons +] + +osdependencies = [('openssl-devel', 'libssl-dev', 'libopenssl-devel')] + +# order is important! +# package versions updated May 28th 2015 +exts_list = [ + ('setuptools', '16.0', { + 'source_urls': ['https://pypi.python.org/packages/source/s/setuptools/'], + }), + ('pip', '7.0.1', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pip/'], + }), + ('nose', '1.3.6', { + 'source_urls': ['https://pypi.python.org/packages/source/n/nose/'], + }), + ('numpy', numpyversion, { + 'source_urls': [('http://sourceforge.net/projects/numpy/files/NumPy/%s' % numpyversion, 'download')], + 'patches': ['numpy-1.8.0-mkl.patch'], + }), + ('scipy', scipyversion, { + 'source_urls': [('http://sourceforge.net/projects/scipy/files/scipy/%s' % scipyversion, 'download')], + }), + ('blist', '1.3.6', { + 'source_urls': ['https://pypi.python.org/packages/source/b/blist/'], + }), + ('mpi4py', '1.3.1', { + 'source_urls': ['http://bitbucket.org/mpi4py/mpi4py/downloads/'], + }), + ('paycheck', '1.0.2', { + 'source_urls': ['https://pypi.python.org/packages/source/p/paycheck/'], + }), + ('argparse', '1.3.0', { + 'source_urls': ['https://pypi.python.org/packages/source/a/argparse/'], + }), + ('pbr', '1.0.1', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pbr/'], + }), + ('lockfile', '0.10.2', { + 'source_urls': ['https://pypi.python.org/packages/source/l/lockfile/'], + }), + ('Cython', '0.22', { + 'source_urls': ['http://www.cython.org/release/'], + }), + ('six', '1.9.0', { + 'source_urls': ['https://pypi.python.org/packages/source/s/six/'], + }), + ('dateutil', '2.4.2', { + 'source_tmpl': 'python-%(name)s-%(version)s.tar.gz', + 'source_urls': ['https://pypi.python.org/packages/source/p/python-dateutil/'], + }), + ('deap', '1.0.2', { + 'source_tmpl': '%(name)s-%(version)s.post2.tar.gz', + 'source_urls': ['https://pypi.python.org/packages/source/d/deap/'], + }), + ('decorator', '3.4.2', { + 'source_urls': ['https://pypi.python.org/packages/source/d/decorator/'], + }), + ('arff', '2.0.2', { + 'source_tmpl': 'liac-%(name)s-%(version)s.zip', + 'source_urls': ['https://pypi.python.org/packages/source/l/liac-arff/'], + }), + ('pycrypto', '2.6.1', { + 'modulename': 'Crypto', + 'source_urls': ['http://ftp.dlitz.net/pub/dlitz/crypto/pycrypto/'], + }), + ('ecdsa', '0.13', { + 'source_urls': ['https://pypi.python.org/packages/source/e/ecdsa/'], + }), + ('paramiko', '1.15.2', { + 'source_urls': ['https://pypi.python.org/packages/source/p/paramiko/'], + }), + ('pyparsing', '2.0.3', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pyparsing/'], + }), + ('netifaces', '0.10.4', { + 'source_urls': ['https://pypi.python.org/packages/source/n/netifaces'], + }), + ('netaddr', '0.7.14', { + 'source_urls': ['https://pypi.python.org/packages/source/n/netaddr'], + }), + ('mock', '1.0.1', { + 'source_urls': ['https://pypi.python.org/packages/source/m/mock'], + }), + ('pytz', '2015.4', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pytz'], + }), + ('pandas', '0.16.1', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pandas'], + }), +] + +moduleclass = 'lang' diff --git a/p/Python/Python-2.7.11-CrayGNU-2015.11.eb b/p/Python/Python-2.7.11-CrayGNU-2015.11.eb new file mode 100644 index 00000000..d69b594b --- /dev/null +++ b/p/Python/Python-2.7.11-CrayGNU-2015.11.eb @@ -0,0 +1,139 @@ +# @author: Luca Marsella (CSCS) +# @author: Guilherme Peretti-Pezzi (CSCS) + +name = 'Python' +version = "2.7.11" + +homepage = 'http://python.org/' +description = "Python is a programming language that lets you work more quickly and integrate your systems more effectively." + +toolchain = {'name': 'CrayGNU', 'version': '2015.11'} +toolchainopts = {'pic': True} + +numpyversion = '1.10.4' +scipyversion = '0.16.1' + +source_urls = ['http://www.python.org/ftp/%(namelower)s/%(version)s/'] +sources = [SOURCE_TGZ] + +# patch needed for building h5py +patches = ['h5py-CrayGNU-Python-2.7.patch'] + +# python needs bzip2 to build the bz2 package +dependencies = [ + ('bzip2', '1.0.6'), + ('zlib', '1.2.8'), + ('libreadline', '6.3'), + ('ncurses', '5.9'), + ('SQLite', '3.9.2'), + ('Tk', '8.6.4', '-no-X11'), # this requires a full X11 stack + ('GMP', '6.1.0'), +] + +osdependencies = [('openssl-devel', 'libssl-dev', 'libopenssl-devel')] + +# order is important! +# package versions updated Mar 1st 2016 +exts_list = [ + ('setuptools', '20.2.2', { + 'source_urls': ['https://pypi.python.org/packages/source/s/setuptools/'], + }), + ('pip', '8.0.3', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pip/'], + }), + ('nose', '1.3.7', { + 'source_urls': ['https://pypi.python.org/packages/source/n/nose/'], + }), + ('numpy', numpyversion, { + 'source_urls': [('http://sourceforge.net/projects/numpy/files/NumPy/%s' % numpyversion, 'download')], + 'patches': ['numpy-1.8.0-mkl.patch'], + }), + ('scipy', scipyversion, { + 'source_urls': [('http://sourceforge.net/projects/scipy/files/scipy/%s' % scipyversion, 'download')], + }), + ('blist', '1.3.6', { + 'source_urls': ['https://pypi.python.org/packages/source/b/blist/'], + }), + ('mpi4py', '1.3.1', { + 'source_urls': ['http://bitbucket.org/mpi4py/mpi4py/downloads/'], + }), + ('paycheck', '1.0.2', { + 'source_urls': ['https://pypi.python.org/packages/source/p/paycheck/'], + }), + ('argparse', '1.4.0', { + 'source_urls': ['https://pypi.python.org/packages/source/a/argparse/'], + }), + ('pbr', '1.8.1', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pbr/'], + }), + ('lockfile', '0.12.2', { + 'source_urls': ['https://pypi.python.org/packages/source/l/lockfile/'], + }), + ('Cython', '0.23.4', { + 'source_urls': ['https://pypi.python.org/packages/source/c/cython/'], + }), + ('six', '1.10.0', { + 'source_urls': ['https://pypi.python.org/packages/source/s/six/'], + }), + ('dateutil', '2.4.2', { + 'source_tmpl': 'python-%(name)s-%(version)s.tar.gz', + 'source_urls': ['https://pypi.python.org/packages/source/p/python-dateutil/'], + }), + ('deap', '1.0.2', { + 'source_tmpl': '%(name)s-%(version)s.post2.tar.gz', + 'source_urls': ['https://pypi.python.org/packages/source/d/deap/'], + }), + ('decorator', '4.0.4', { + 'source_urls': ['https://pypi.python.org/packages/source/d/decorator/'], + }), + ('arff', '2.1.0', { + 'source_tmpl': 'liac-%(name)s-%(version)s.zip', + 'source_urls': ['https://pypi.python.org/packages/source/l/liac-arff/'], + }), + ('pycrypto', '2.6.1', { + 'modulename': 'Crypto', + 'source_urls': ['http://ftp.dlitz.net/pub/dlitz/crypto/pycrypto/'], + }), + ('ecdsa', '0.13', { + 'source_urls': ['https://pypi.python.org/packages/source/e/ecdsa/'], + }), + ('paramiko', '1.16.0', { + 'source_urls': ['https://pypi.python.org/packages/source/p/paramiko/'], + }), + ('pyparsing', '2.0.6', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pyparsing/'], + }), + ('netifaces', '0.10.4', { + 'source_urls': ['https://pypi.python.org/packages/source/n/netifaces'], + }), + ('netaddr', '0.7.18', { + 'source_urls': ['https://pypi.python.org/packages/source/n/netaddr'], + }), + ('funcsigs', '0.4', { + 'source_urls': ['https://pypi.python.org/packages/source/f/funcsigs'], + }), + ('mock', '1.3.0', { + 'source_urls': ['https://pypi.python.org/packages/source/m/mock'], + }), + ('pytz', '2015.7', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pytz'], + }), + ('pandas', '0.17.1', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pandas'], + }), + ('enum34', '1.1.2', { + 'modulename': 'enum', + 'source_urls': ['https://pypi.python.org/packages/source/e/enum34'], + }), + ('bitstring', '3.1.3', { + # grab tarball from GitHub rather than PyPi since 3.1.3 release on PyPi disappeared; + # cfr. https://github.com/scott-griffiths/bitstring/issues/159 + 'source_tmpl': '%(name)s-%(version)s.tar.gz', + 'source_urls': ['https://github.com/scott-griffiths/bitstring/archive/'], + }), + ('virtualenv', '14.0.5', { + 'source_urls': ['https://pypi.python.org/packages/source/v/virtualenv'], + }), +] + +moduleclass = 'lang' diff --git a/p/Python/Python-2.7.11-CrayGNU-2016.03.eb b/p/Python/Python-2.7.11-CrayGNU-2016.03.eb new file mode 100644 index 00000000..ab13993d --- /dev/null +++ b/p/Python/Python-2.7.11-CrayGNU-2016.03.eb @@ -0,0 +1,139 @@ +# @author: Luca Marsella (CSCS) +# @author: Guilherme Peretti-Pezzi (CSCS) + +name = 'Python' +version = "2.7.11" + +homepage = 'http://python.org/' +description = "Python is a programming language that lets you work more quickly and integrate your systems more effectively." + +toolchain = {'name': 'CrayGNU', 'version': '2016.03'} +toolchainopts = {'pic': True} + +numpyversion = '1.10.4' +scipyversion = '0.16.1' + +source_urls = ['http://www.python.org/ftp/%(namelower)s/%(version)s/'] +sources = [SOURCE_TGZ] + +# patch needed for building h5py +patches = ['h5py-CrayGNU-Python-2.7.patch'] + +# python needs bzip2 to build the bz2 package +dependencies = [ + ('bzip2', '1.0.6'), + ('zlib', '1.2.8'), + ('libreadline', '6.3'), + ('ncurses', '6.0'), + ('SQLite', '3.9.2'), + ('Tk', '8.6.4', '-no-X11'), # this requires a full X11 stack + ('GMP', '6.1.0'), +] + +osdependencies = [('openssl-devel', 'libssl-dev', 'libopenssl-devel')] + +# order is important! +# package versions updated Mar 1st 2016 +exts_list = [ + ('setuptools', '20.2.2', { + 'source_urls': ['https://pypi.python.org/packages/source/s/setuptools/'], + }), + ('pip', '8.0.3', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pip/'], + }), + ('nose', '1.3.7', { + 'source_urls': ['https://pypi.python.org/packages/source/n/nose/'], + }), + ('numpy', numpyversion, { + 'source_urls': [('http://sourceforge.net/projects/numpy/files/NumPy/%s' % numpyversion, 'download')], + 'patches': ['numpy-1.8.0-mkl.patch'], + }), + ('scipy', scipyversion, { + 'source_urls': [('http://sourceforge.net/projects/scipy/files/scipy/%s' % scipyversion, 'download')], + }), + ('blist', '1.3.6', { + 'source_urls': ['https://pypi.python.org/packages/source/b/blist/'], + }), + ('mpi4py', '1.3.1', { + 'source_urls': ['http://bitbucket.org/mpi4py/mpi4py/downloads/'], + }), + ('paycheck', '1.0.2', { + 'source_urls': ['https://pypi.python.org/packages/source/p/paycheck/'], + }), + ('argparse', '1.4.0', { + 'source_urls': ['https://pypi.python.org/packages/source/a/argparse/'], + }), + ('pbr', '1.8.1', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pbr/'], + }), + ('lockfile', '0.12.2', { + 'source_urls': ['https://pypi.python.org/packages/source/l/lockfile/'], + }), + ('Cython', '0.23.4', { + 'source_urls': ['https://pypi.python.org/packages/source/c/cython/'], + }), + ('six', '1.10.0', { + 'source_urls': ['https://pypi.python.org/packages/source/s/six/'], + }), + ('dateutil', '2.4.2', { + 'source_tmpl': 'python-%(name)s-%(version)s.tar.gz', + 'source_urls': ['https://pypi.python.org/packages/source/p/python-dateutil/'], + }), + ('deap', '1.0.2', { + 'source_tmpl': '%(name)s-%(version)s.post2.tar.gz', + 'source_urls': ['https://pypi.python.org/packages/source/d/deap/'], + }), + ('decorator', '4.0.4', { + 'source_urls': ['https://pypi.python.org/packages/source/d/decorator/'], + }), + ('arff', '2.1.0', { + 'source_tmpl': 'liac-%(name)s-%(version)s.zip', + 'source_urls': ['https://pypi.python.org/packages/source/l/liac-arff/'], + }), + ('pycrypto', '2.6.1', { + 'modulename': 'Crypto', + 'source_urls': ['http://ftp.dlitz.net/pub/dlitz/crypto/pycrypto/'], + }), + ('ecdsa', '0.13', { + 'source_urls': ['https://pypi.python.org/packages/source/e/ecdsa/'], + }), + ('paramiko', '1.16.0', { + 'source_urls': ['https://pypi.python.org/packages/source/p/paramiko/'], + }), + ('pyparsing', '2.0.6', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pyparsing/'], + }), + ('netifaces', '0.10.4', { + 'source_urls': ['https://pypi.python.org/packages/source/n/netifaces'], + }), + ('netaddr', '0.7.18', { + 'source_urls': ['https://pypi.python.org/packages/source/n/netaddr'], + }), + ('funcsigs', '0.4', { + 'source_urls': ['https://pypi.python.org/packages/source/f/funcsigs'], + }), + ('mock', '1.3.0', { + 'source_urls': ['https://pypi.python.org/packages/source/m/mock'], + }), + ('pytz', '2015.7', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pytz'], + }), + ('pandas', '0.17.1', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pandas'], + }), + ('enum34', '1.1.2', { + 'modulename': 'enum', + 'source_urls': ['https://pypi.python.org/packages/source/e/enum34'], + }), + ('bitstring', '3.1.3', { + # grab tarball from GitHub rather than PyPi since 3.1.3 release on PyPi disappeared; + # cfr. https://github.com/scott-griffiths/bitstring/issues/159 + 'source_tmpl': '%(name)s-%(version)s.tar.gz', + 'source_urls': ['https://github.com/scott-griffiths/bitstring/archive/'], + }), + ('virtualenv', '14.0.5', { + 'source_urls': ['https://pypi.python.org/packages/source/v/virtualenv'], + }), +] + +moduleclass = 'lang' diff --git a/p/Python/Python-2.7.11-GCC-4.9.3-2.25-bare.eb b/p/Python/Python-2.7.11-GCC-4.9.3-2.25-bare.eb new file mode 100644 index 00000000..895d73b1 --- /dev/null +++ b/p/Python/Python-2.7.11-GCC-4.9.3-2.25-bare.eb @@ -0,0 +1,32 @@ +name = 'Python' +version = '2.7.11' +versionsuffix = '-bare' + +homepage = 'http://python.org/' +description = """Python is a programming language that lets you work more quickly and integrate your systems + more effectively.""" + +toolchain = {'name': 'GCC', 'version': '4.9.3-2.25'} +toolchainopts = {'pic': True, 'opt': True, 'optarch': True} + +source_urls = ['http://www.python.org/ftp/%(namelower)s/%(version)s/'] +sources = [SOURCE_TGZ] + +# python needs bzip2 to build the bz2 package +dependencies = [ + ('bzip2', '1.0.6'), + ('zlib', '1.2.8'), + ('libreadline', '6.3', '', ('GCCcore', '4.9.3')), + ('ncurses', '6.0', '', ('GCCcore', '4.9.3')), + ('SQLite', '3.9.2'), + ('Tk', '8.6.4', '-no-X11'), + # ('OpenSSL', '1.0.1q'), # OS dependency should be preferred if the os version is more recent then this version, it's + # nice to have an up to date openssl for security reasons +] + +osdependencies = [('openssl-devel', 'libssl-dev', 'libopenssl-devel')] + +# bare installation: no extensions included +exts_list = [] + +moduleclass = 'lang' diff --git a/p/Python/Python-2.7.11-foss-2015a.eb b/p/Python/Python-2.7.11-foss-2015a.eb new file mode 100644 index 00000000..16c39b21 --- /dev/null +++ b/p/Python/Python-2.7.11-foss-2015a.eb @@ -0,0 +1,142 @@ +name = 'Python' +version = '2.7.11' + +homepage = 'http://python.org/' +description = """Python is a programming language that lets you work more quickly and integrate your systems + more effectively.""" + +toolchain = {'name': 'foss', 'version': '2015a'} +toolchainopts = {'pic': True, 'opt': True, 'optarch': True} + +numpyversion = '1.10.1' +scipyversion = '0.16.1' + +source_urls = ['http://www.python.org/ftp/%(namelower)s/%(version)s/'] +sources = [SOURCE_TGZ] + +# python needs bzip2 to build the bz2 package +dependencies = [ + ('bzip2', '1.0.6'), + ('zlib', '1.2.8'), + ('libreadline', '6.3'), + ('ncurses', '5.9'), + ('SQLite', '3.10.0'), + ('Tk', '8.6.4', '-no-X11'), + ('GMP', '6.1.0'), # required for pycrypto + # ('OpenSSL', '1.0.1q'), # OS dependency should be preferred if the os version is more recent then this version, it's + # nice to have an up to date openssl for security reasons +] + +osdependencies = [('openssl-devel', 'libssl-dev', 'libopenssl-devel')] + +# order is important! +# package versions updated May 28th 2015 +exts_list = [ + ('setuptools', '18.7.1', { + 'source_urls': ['https://pypi.python.org/packages/source/s/setuptools/'], + }), + ('pip', '7.1.2', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pip/'], + }), + ('nose', '1.3.7', { + 'source_urls': ['https://pypi.python.org/packages/source/n/nose/'], + }), + ('numpy', numpyversion, { + 'source_urls': [('http://sourceforge.net/projects/numpy/files/NumPy/%s' % numpyversion, 'download')], + 'patches': ['numpy-1.8.0-mkl.patch'], + }), + ('scipy', scipyversion, { + 'source_urls': [('http://sourceforge.net/projects/scipy/files/scipy/%s' % scipyversion, 'download')], + }), + ('blist', '1.3.6', { + 'source_urls': ['https://pypi.python.org/packages/source/b/blist/'], + }), + ('mpi4py', '1.3.1', { + 'source_urls': ['http://bitbucket.org/mpi4py/mpi4py/downloads/'], + }), + ('paycheck', '1.0.2', { + 'source_urls': ['https://pypi.python.org/packages/source/p/paycheck/'], + }), + ('argparse', '1.4.0', { + 'source_urls': ['https://pypi.python.org/packages/source/a/argparse/'], + }), + ('pbr', '1.8.1', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pbr/'], + }), + ('lockfile', '0.12.2', { + 'source_urls': ['https://pypi.python.org/packages/source/l/lockfile/'], + }), + ('Cython', '0.23.4', { + 'source_urls': ['http://www.cython.org/release/'], + }), + ('six', '1.10.0', { + 'source_urls': ['https://pypi.python.org/packages/source/s/six/'], + }), + ('dateutil', '2.4.2', { + 'source_tmpl': 'python-%(name)s-%(version)s.tar.gz', + 'source_urls': ['https://pypi.python.org/packages/source/p/python-dateutil/'], + }), + ('deap', '1.0.2', { + 'source_tmpl': '%(name)s-%(version)s.post2.tar.gz', + 'source_urls': ['https://pypi.python.org/packages/source/d/deap/'], + }), + ('decorator', '4.0.4', { + 'source_urls': ['https://pypi.python.org/packages/source/d/decorator/'], + }), + ('arff', '2.1.0', { + 'source_tmpl': 'liac-%(name)s-%(version)s.zip', + 'source_urls': ['https://pypi.python.org/packages/source/l/liac-arff/'], + }), + ('pycrypto', '2.6.1', { + 'modulename': 'Crypto', + 'source_urls': ['http://ftp.dlitz.net/pub/dlitz/crypto/pycrypto/'], + }), + ('ecdsa', '0.13', { + 'source_urls': ['https://pypi.python.org/packages/source/e/ecdsa/'], + }), + ('paramiko', '1.16.0', { + 'source_urls': ['https://pypi.python.org/packages/source/p/paramiko/'], + }), + ('pyparsing', '2.0.6', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pyparsing/'], + }), + ('netifaces', '0.10.4', { + 'source_urls': ['https://pypi.python.org/packages/source/n/netifaces'], + }), + ('netaddr', '0.7.18', { + 'source_urls': ['https://pypi.python.org/packages/source/n/netaddr'], + }), + ('funcsigs', '0.4', { + 'source_urls': ['https://pypi.python.org/packages/source/f/funcsigs'], + }), + ('mock', '1.3.0', { + 'source_urls': ['https://pypi.python.org/packages/source/m/mock'], + }), + ('pytz', '2015.7', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pytz'], + }), + ('pandas', '0.17.1', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pandas'], + }), + ('enum34', '1.1.2', { + 'modulename': 'enum', + 'source_urls': ['https://pypi.python.org/packages/source/e/enum34'], + }), +<<<<<<< HEAD + ('bitstring', '3.1.4', { + 'source_tmpl': '%(name)s-%(version)s.tar.gz', + 'source_urls': ['https://pypi.python.org/packages/source/b/bitstring'], +======= + ('bitstring', '3.1.3', { + # grab tarball from GitHub rather than PyPi since 3.1.3 release on PyPi disappeared; + # cfr. https://github.com/scott-griffiths/bitstring/issues/159 + 'source_tmpl': '%(name)s-%(version)s.tar.gz', + 'source_urls': ['https://github.com/scott-griffiths/bitstring/archive/'], +>>>>>>> hpcugent/master + }), + ('virtualenv', '14.0.5', { + 'source_urls': ['https://pypi.python.org/packages/source/v/virtualenv'], + }), +] + +moduleclass = 'lang' diff --git a/p/Python/Python-2.7.11-foss-2016a.eb b/p/Python/Python-2.7.11-foss-2016a.eb new file mode 100644 index 00000000..6d86f2c5 --- /dev/null +++ b/p/Python/Python-2.7.11-foss-2016a.eb @@ -0,0 +1,121 @@ +name = 'Python' +version = '2.7.11' + +homepage = 'http://python.org/' +description = """Python is a programming language that lets you work more quickly and integrate your systems + more effectively.""" + +toolchain = {'name': 'foss', 'version': '2016a'} +toolchainopts = {'pic': True, 'opt': True, 'optarch': True} + +numpyversion = '1.10.1' +scipyversion = '0.16.1' + +source_urls = ['http://www.python.org/ftp/%(namelower)s/%(version)s/'] +sources = [SOURCE_TGZ] + +# python needs bzip2 to build the bz2 package +dependencies = [ + ('bzip2', '1.0.6'), + ('zlib', '1.2.8'), + ('libreadline', '6.3'), + ('ncurses', '6.0'), + ('SQLite', '3.9.2'), + ('Tk', '8.6.4', '-no-X11'), + ('GMP', '6.1.0'), + # ('OpenSSL', '1.0.1q'), # OS dependency should be preferred if the os version is more recent then this version, it's + # nice to have an up to date openssl for security reasons +] + +osdependencies = [('openssl-devel', 'libssl-dev', 'libopenssl-devel')] + +# order is important! +# package versions updated May 28th 2015 +exts_list = [ + ('setuptools', '18.7.1', { + 'source_urls': ['https://pypi.python.org/packages/source/s/setuptools/'], + }), + ('pip', '7.1.2', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pip/'], + }), + ('nose', '1.3.7', { + 'source_urls': ['https://pypi.python.org/packages/source/n/nose/'], + }), + ('blist', '1.3.6', { + 'source_urls': ['https://pypi.python.org/packages/source/b/blist/'], + }), + ('mpi4py', '1.3.1', { + 'source_urls': ['http://bitbucket.org/mpi4py/mpi4py/downloads/'], + }), + ('paycheck', '1.0.2', { + 'source_urls': ['https://pypi.python.org/packages/source/p/paycheck/'], + }), + ('argparse', '1.4.0', { + 'source_urls': ['https://pypi.python.org/packages/source/a/argparse/'], + }), + ('pbr', '1.8.1', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pbr/'], + }), + ('lockfile', '0.12.2', { + 'source_urls': ['https://pypi.python.org/packages/source/l/lockfile/'], + }), + ('six', '1.10.0', { + 'source_urls': ['https://pypi.python.org/packages/source/s/six/'], + }), + ('dateutil', '2.4.2', { + 'source_tmpl': 'python-%(name)s-%(version)s.tar.gz', + 'source_urls': ['https://pypi.python.org/packages/source/p/python-dateutil/'], + }), + ('deap', '1.0.2', { + 'source_tmpl': '%(name)s-%(version)s.post2.tar.gz', + 'source_urls': ['https://pypi.python.org/packages/source/d/deap/'], + }), + ('decorator', '4.0.4', { + 'source_urls': ['https://pypi.python.org/packages/source/d/decorator/'], + }), + ('arff', '2.1.0', { + 'source_tmpl': 'liac-%(name)s-%(version)s.zip', + 'source_urls': ['https://pypi.python.org/packages/source/l/liac-arff/'], + }), + ('pycrypto', '2.6.1', { + 'modulename': 'Crypto', + 'source_urls': ['http://ftp.dlitz.net/pub/dlitz/crypto/pycrypto/'], + }), + ('ecdsa', '0.13', { + 'source_urls': ['https://pypi.python.org/packages/source/e/ecdsa/'], + }), + ('paramiko', '1.16.0', { + 'source_urls': ['https://pypi.python.org/packages/source/p/paramiko/'], + }), + ('pyparsing', '2.0.6', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pyparsing/'], + }), + ('netifaces', '0.10.4', { + 'source_urls': ['https://pypi.python.org/packages/source/n/netifaces'], + }), + ('netaddr', '0.7.18', { + 'source_urls': ['https://pypi.python.org/packages/source/n/netaddr'], + }), + ('funcsigs', '0.4', { + 'source_urls': ['https://pypi.python.org/packages/source/f/funcsigs'], + }), + ('mock', '1.3.0', { + 'source_urls': ['https://pypi.python.org/packages/source/m/mock'], + }), + ('pytz', '2015.7', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pytz'], + }), + ('enum34', '1.1.2', { + 'modulename': 'enum', + 'source_urls': ['https://pypi.python.org/packages/source/e/enum34'], + }), + ('bitstring', '3.1.4', { + 'source_tmpl': '%(name)s-%(version)s.tar.gz', + 'source_urls': ['https://pypi.python.org/packages/source/b/bitstring'], + }), + ('virtualenv', '14.0.5', { + 'source_urls': ['https://pypi.python.org/packages/source/v/virtualenv'], + }), +] + +moduleclass = 'lang' diff --git a/p/Python/Python-2.7.11-gimkl-2.11.5.eb b/p/Python/Python-2.7.11-gimkl-2.11.5.eb new file mode 100644 index 00000000..fb2cd9f6 --- /dev/null +++ b/p/Python/Python-2.7.11-gimkl-2.11.5.eb @@ -0,0 +1,142 @@ +name = 'Python' +version = '2.7.11' + +homepage = 'http://python.org/' +description = """Python is a programming language that lets you work more quickly and integrate your systems + more effectively.""" + +toolchain = {'name': 'gimkl', 'version': '2.11.5'} +toolchainopts = {'pic': True, 'opt': True, 'optarch': True} + +numpyversion = '1.10.1' +scipyversion = '0.16.1' + +source_urls = ['http://www.python.org/ftp/%(namelower)s/%(version)s/'] +sources = [SOURCE_TGZ] + +# python needs bzip2 to build the bz2 package +dependencies = [ + ('bzip2', '1.0.6'), + ('zlib', '1.2.8'), + ('libreadline', '6.3'), + ('ncurses', '5.9'), + ('SQLite', '3.9.2'), + ('Tk', '8.6.4', '-no-X11'), + ('GMP', '6.1.0'), + # ('OpenSSL', '1.0.1q'), # OS dependency should be preferred if the os version is more recent then this version, it's + # nice to have an up to date openssl for security reasons +] + +osdependencies = [('openssl-devel', 'libssl-dev', 'libopenssl-devel')] + +# order is important! +# package versions updated May 28th 2015 +exts_list = [ + ('setuptools', '18.7.1', { + 'source_urls': ['https://pypi.python.org/packages/source/s/setuptools/'], + }), + ('pip', '7.1.2', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pip/'], + }), + ('nose', '1.3.7', { + 'source_urls': ['https://pypi.python.org/packages/source/n/nose/'], + }), + ('numpy', numpyversion, { + 'source_urls': [('http://sourceforge.net/projects/numpy/files/NumPy/%s' % numpyversion, 'download')], + 'patches': [ + 'numpy-1.8.0-mkl.patch', + 'numpy-%s-sse42.patch' % numpyversion, + ], + }), + ('scipy', scipyversion, { + 'source_urls': [('http://sourceforge.net/projects/scipy/files/scipy/%s' % scipyversion, 'download')], + }), + ('blist', '1.3.6', { + 'source_urls': ['https://pypi.python.org/packages/source/b/blist/'], + }), + ('mpi4py', '1.3.1', { + 'source_urls': ['http://bitbucket.org/mpi4py/mpi4py/downloads/'], + }), + ('paycheck', '1.0.2', { + 'source_urls': ['https://pypi.python.org/packages/source/p/paycheck/'], + }), + ('argparse', '1.4.0', { + 'source_urls': ['https://pypi.python.org/packages/source/a/argparse/'], + }), + ('pbr', '1.8.1', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pbr/'], + }), + ('lockfile', '0.12.2', { + 'source_urls': ['https://pypi.python.org/packages/source/l/lockfile/'], + }), + ('Cython', '0.23.4', { + 'source_urls': ['http://www.cython.org/release/'], + }), + ('six', '1.10.0', { + 'source_urls': ['https://pypi.python.org/packages/source/s/six/'], + }), + ('dateutil', '2.4.2', { + 'source_tmpl': 'python-%(name)s-%(version)s.tar.gz', + 'source_urls': ['https://pypi.python.org/packages/source/p/python-dateutil/'], + }), + ('deap', '1.0.2', { + 'source_tmpl': '%(name)s-%(version)s.post2.tar.gz', + 'source_urls': ['https://pypi.python.org/packages/source/d/deap/'], + }), + ('decorator', '4.0.4', { + 'source_urls': ['https://pypi.python.org/packages/source/d/decorator/'], + }), + ('arff', '2.1.0', { + 'source_tmpl': 'liac-%(name)s-%(version)s.zip', + 'source_urls': ['https://pypi.python.org/packages/source/l/liac-arff/'], + }), + ('pycrypto', '2.6.1', { + 'modulename': 'Crypto', + 'source_urls': ['http://ftp.dlitz.net/pub/dlitz/crypto/pycrypto/'], + }), + ('ecdsa', '0.13', { + 'source_urls': ['https://pypi.python.org/packages/source/e/ecdsa/'], + }), + ('paramiko', '1.16.0', { + 'source_urls': ['https://pypi.python.org/packages/source/p/paramiko/'], + }), + ('pyparsing', '2.0.6', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pyparsing/'], + }), + ('netifaces', '0.10.4', { + 'source_urls': ['https://pypi.python.org/packages/source/n/netifaces'], + }), + ('netaddr', '0.7.18', { + 'source_urls': ['https://pypi.python.org/packages/source/n/netaddr'], + }), + ('funcsigs', '0.4', { + 'source_urls': ['https://pypi.python.org/packages/source/f/funcsigs'], + }), + ('mock', '1.3.0', { + 'source_urls': ['https://pypi.python.org/packages/source/m/mock'], + }), + ('pytz', '2015.7', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pytz'], + }), + ('pandas', '0.17.1', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pandas'], + }), + ('enum34', '1.1.2', { + 'modulename': 'enum', + 'source_urls': ['https://pypi.python.org/packages/source/e/enum34'], + }), +<<<<<<< HEAD + ('bitstring', '3.1.4', { + 'source_tmpl': '%(name)s-%(version)s.tar.gz', + 'source_urls': ['https://pypi.python.org/packages/source/b/bitstring'], +======= + ('bitstring', '3.1.3', { + # grab tarball from GitHub rather than PyPi since 3.1.3 release on PyPi disappeared; + # cfr. https://github.com/scott-griffiths/bitstring/issues/159 + 'source_tmpl': '%(name)s-%(version)s.tar.gz', + 'source_urls': ['https://github.com/scott-griffiths/bitstring/archive/'], +>>>>>>> hpcugent/master + }), +] + +moduleclass = 'lang' diff --git a/p/Python/Python-2.7.11-goolf-1.7.20.eb b/p/Python/Python-2.7.11-goolf-1.7.20.eb new file mode 100644 index 00000000..bfec054f --- /dev/null +++ b/p/Python/Python-2.7.11-goolf-1.7.20.eb @@ -0,0 +1,137 @@ +name = 'Python' +version = '2.7.11' + +homepage = 'http://python.org/' +description = """Python is a programming language that lets you work more quickly and integrate your systems + more effectively.""" + +toolchain = {'name': 'goolf', 'version': '1.7.20'} +toolchainopts = {'pic': True, 'opt': True, 'optarch': True} + +numpyversion = '1.10.1' +scipyversion = '0.16.1' + +source_urls = ['http://www.python.org/ftp/%(namelower)s/%(version)s/'] +sources = [SOURCE_TGZ] + +# python needs bzip2 to build the bz2 package +dependencies = [ + ('bzip2', '1.0.6'), + ('zlib', '1.2.8'), + ('libreadline', '6.3'), + ('ncurses', '5.9'), + ('SQLite', '3.9.2'), + #('Tk', '8.6.4', '-no-X11'), + ('Tk', '8.6.4'), + ('GMP', '6.1.0'), +# ('OpenSSL', '1.0.1q'), # OS dependency should be preferred if the os version is more recent then this version, it's +# nice to have an up to date openssl for security reasons +] + +osdependencies = [('openssl-devel', 'libssl-dev', 'libopenssl-devel')] + +# order is important! +# package versions updated May 28th 2015 +exts_list = [ + ('setuptools', '18.7.1', { + 'source_urls': ['https://pypi.python.org/packages/source/s/setuptools/'], + }), + ('pip', '7.1.2', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pip/'], + }), + ('nose', '1.3.7', { + 'source_urls': ['https://pypi.python.org/packages/source/n/nose/'], + }), + ('numpy', numpyversion, { + 'source_urls': [('http://sourceforge.net/projects/numpy/files/NumPy/%s' % numpyversion, 'download')], + 'patches': ['numpy-1.8.0-mkl.patch'], + }), + ('scipy', scipyversion, { + 'source_urls': [('http://sourceforge.net/projects/scipy/files/scipy/%s' % scipyversion, 'download')], + }), + ('blist', '1.3.6', { + 'source_urls': ['https://pypi.python.org/packages/source/b/blist/'], + }), + ('mpi4py', '1.3.1', { + 'source_urls': ['http://bitbucket.org/mpi4py/mpi4py/downloads/'], + }), + ('paycheck', '1.0.2', { + 'source_urls': ['https://pypi.python.org/packages/source/p/paycheck/'], + }), + ('argparse', '1.4.0', { + 'source_urls': ['https://pypi.python.org/packages/source/a/argparse/'], + }), + ('pbr', '1.8.1', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pbr/'], + }), + ('lockfile', '0.12.2', { + 'source_urls': ['https://pypi.python.org/packages/source/l/lockfile/'], + }), + ('Cython', '0.23.4', { + 'source_urls': ['http://www.cython.org/release/'], + }), + ('six', '1.10.0', { + 'source_urls': ['https://pypi.python.org/packages/source/s/six/'], + }), + ('dateutil', '2.4.2', { + 'source_tmpl': 'python-%(name)s-%(version)s.tar.gz', + 'source_urls': ['https://pypi.python.org/packages/source/p/python-dateutil/'], + }), + ('deap', '1.0.2', { + 'source_tmpl': '%(name)s-%(version)s.post2.tar.gz', + 'source_urls': ['https://pypi.python.org/packages/source/d/deap/'], + }), + ('decorator', '4.0.4', { + 'source_urls': ['https://pypi.python.org/packages/source/d/decorator/'], + }), + ('arff', '2.1.0', { + 'source_tmpl': 'liac-%(name)s-%(version)s.zip', + 'source_urls': ['https://pypi.python.org/packages/source/l/liac-arff/'], + }), + ('pycrypto', '2.6.1', { + 'modulename': 'Crypto', + 'source_urls': ['http://ftp.dlitz.net/pub/dlitz/crypto/pycrypto/'], + }), + ('ecdsa', '0.13', { + 'source_urls': ['https://pypi.python.org/packages/source/e/ecdsa/'], + }), + ('paramiko', '1.16.0', { + 'source_urls': ['https://pypi.python.org/packages/source/p/paramiko/'], + }), + ('pyparsing', '2.0.6', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pyparsing/'], + }), + ('netifaces', '0.10.4', { + 'source_urls': ['https://pypi.python.org/packages/source/n/netifaces'], + }), + ('netaddr', '0.7.18', { + 'source_urls': ['https://pypi.python.org/packages/source/n/netaddr'], + }), + ('funcsigs', '0.4', { + 'source_urls': ['https://pypi.python.org/packages/source/f/funcsigs'], + }), + ('mock', '1.3.0', { + 'source_urls': ['https://pypi.python.org/packages/source/m/mock'], + }), + ('pytz', '2015.7', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pytz'], + }), + ('pandas', '0.17.1', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pandas'], + }), + ('enum34', '1.1.2', { + 'modulename': 'enum', + 'source_urls': ['https://pypi.python.org/packages/source/e/enum34'], + }), + ('bitstring', '3.1.3', { + # grab tarball from GitHub rather than PyPi since 3.1.3 release on PyPi disappeared; + # cfr. https://github.com/scott-griffiths/bitstring/issues/159 + 'source_tmpl': '%(name)s-%(version)s.tar.gz', + 'source_urls': ['https://github.com/scott-griffiths/bitstring/archive/'], + }), + ('virtualenv', '14.0.5', { + 'source_urls': ['https://pypi.python.org/packages/source/v/virtualenv'], + }), +] + +moduleclass = 'lang' diff --git a/p/Python/Python-2.7.11-intel-2015b.eb b/p/Python/Python-2.7.11-intel-2015b.eb new file mode 100644 index 00000000..86d70691 --- /dev/null +++ b/p/Python/Python-2.7.11-intel-2015b.eb @@ -0,0 +1,137 @@ +name = 'Python' +version = '2.7.11' + +homepage = 'http://python.org/' +description = """Python is a programming language that lets you work more quickly and integrate your systems + more effectively.""" + +toolchain = {'name': 'intel', 'version': '2015b'} +toolchainopts = {'pic': True, 'opt': True, 'optarch': True} + +numpyversion = '1.10.1' +scipyversion = '0.16.1' + +source_urls = ['http://www.python.org/ftp/%(namelower)s/%(version)s/'] +sources = [SOURCE_TGZ] + +# python needs bzip2 to build the bz2 package +dependencies = [ + ('bzip2', '1.0.6'), + ('zlib', '1.2.8'), + ('libreadline', '6.3'), + ('ncurses', '5.9'), + ('SQLite', '3.9.2'), + ('Tk', '8.6.4', '-no-X11'), + ('GMP', '6.1.0'), + # ('OpenSSL', '1.0.1q'), # OS dependency should be preferred if the os version is more recent then this version, it's + # nice to have an up to date openssl for security reasons +] + +osdependencies = [('openssl-devel', 'libssl-dev', 'libopenssl-devel')] + +# order is important! +# package versions updated May 28th 2015 +exts_list = [ + ('setuptools', '18.7.1', { + 'source_urls': ['https://pypi.python.org/packages/source/s/setuptools/'], + }), + ('pip', '7.1.2', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pip/'], + }), + ('nose', '1.3.7', { + 'source_urls': ['https://pypi.python.org/packages/source/n/nose/'], + }), + ('numpy', numpyversion, { + 'source_urls': [('http://sourceforge.net/projects/numpy/files/NumPy/%s' % numpyversion, 'download')], + 'patches': [ + 'numpy-1.8.0-mkl.patch', + 'numpy-%s-sse42.patch' % numpyversion, + ], + }), + ('scipy', scipyversion, { + 'source_urls': [('http://sourceforge.net/projects/scipy/files/scipy/%s' % scipyversion, 'download')], + }), + ('blist', '1.3.6', { + 'source_urls': ['https://pypi.python.org/packages/source/b/blist/'], + }), + ('mpi4py', '1.3.1', { + 'source_urls': ['http://bitbucket.org/mpi4py/mpi4py/downloads/'], + }), + ('paycheck', '1.0.2', { + 'source_urls': ['https://pypi.python.org/packages/source/p/paycheck/'], + }), + ('argparse', '1.4.0', { + 'source_urls': ['https://pypi.python.org/packages/source/a/argparse/'], + }), + ('pbr', '1.8.1', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pbr/'], + }), + ('lockfile', '0.12.2', { + 'source_urls': ['https://pypi.python.org/packages/source/l/lockfile/'], + }), + ('Cython', '0.23.4', { + 'source_urls': ['http://www.cython.org/release/'], + }), + ('six', '1.10.0', { + 'source_urls': ['https://pypi.python.org/packages/source/s/six/'], + }), + ('dateutil', '2.4.2', { + 'source_tmpl': 'python-%(name)s-%(version)s.tar.gz', + 'source_urls': ['https://pypi.python.org/packages/source/p/python-dateutil/'], + }), + ('deap', '1.0.2', { + 'source_tmpl': '%(name)s-%(version)s.post2.tar.gz', + 'source_urls': ['https://pypi.python.org/packages/source/d/deap/'], + }), + ('decorator', '4.0.4', { + 'source_urls': ['https://pypi.python.org/packages/source/d/decorator/'], + }), + ('arff', '2.1.0', { + 'source_tmpl': 'liac-%(name)s-%(version)s.zip', + 'source_urls': ['https://pypi.python.org/packages/source/l/liac-arff/'], + }), + ('pycrypto', '2.6.1', { + 'modulename': 'Crypto', + 'source_urls': ['http://ftp.dlitz.net/pub/dlitz/crypto/pycrypto/'], + }), + ('ecdsa', '0.13', { + 'source_urls': ['https://pypi.python.org/packages/source/e/ecdsa/'], + }), + ('paramiko', '1.16.0', { + 'source_urls': ['https://pypi.python.org/packages/source/p/paramiko/'], + }), + ('pyparsing', '2.0.6', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pyparsing/'], + }), + ('netifaces', '0.10.4', { + 'source_urls': ['https://pypi.python.org/packages/source/n/netifaces'], + }), + ('netaddr', '0.7.18', { + 'source_urls': ['https://pypi.python.org/packages/source/n/netaddr'], + }), + ('funcsigs', '0.4', { + 'source_urls': ['https://pypi.python.org/packages/source/f/funcsigs'], + }), + ('mock', '1.3.0', { + 'source_urls': ['https://pypi.python.org/packages/source/m/mock'], + }), + ('pytz', '2015.7', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pytz'], + }), + ('pandas', '0.17.1', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pandas'], + }), + ('enum34', '1.1.2', { + 'modulename': 'enum', + 'source_urls': ['https://pypi.python.org/packages/source/e/enum34'], + }), + ('bitstring', '3.1.4', { + 'source_tmpl': '%(name)s-%(version)s.tar.gz', + 'source_urls': ['https://pypi.python.org/packages/source/b/bitstring'], + }), + ('virtualenv', '14.0.5', { + 'source_urls': ['https://pypi.python.org/packages/source/v/virtualenv'], + }), +] + +moduleclass = 'lang' diff --git a/p/Python/Python-2.7.11-intel-2016.02-GCC-4.9.eb b/p/Python/Python-2.7.11-intel-2016.02-GCC-4.9.eb new file mode 100644 index 00000000..b8a12d27 --- /dev/null +++ b/p/Python/Python-2.7.11-intel-2016.02-GCC-4.9.eb @@ -0,0 +1,139 @@ +name = 'Python' +version = '2.7.11' + +homepage = 'http://python.org/' +description = """Python is a programming language that lets you work more quickly and integrate your systems + more effectively.""" + +toolchain = {'name': 'intel', 'version': '2016.02-GCC-4.9'} +toolchainopts = {'pic': True, 'opt': True, 'optarch': True} + +numpyversion = '1.10.1' +scipyversion = '0.16.1' + +source_urls = ['http://www.python.org/ftp/%(namelower)s/%(version)s/'] +sources = [SOURCE_TGZ] + +# python needs bzip2 to build the bz2 package +dependencies = [ + ('bzip2', '1.0.6'), + ('zlib', '1.2.8'), + ('libreadline', '6.3'), + ('ncurses', '6.0'), + ('SQLite', '3.9.2'), + ('Tk', '8.6.4', '-no-X11'), + ('GMP', '6.1.0'), + # ('OpenSSL', '1.0.1q'), # OS dependency should be preferred if the os version is more recent then this version, it's + # nice to have an up to date openssl for security reasons +] + +osdependencies = [('openssl-devel', 'libssl-dev', 'libopenssl-devel')] + +# order is important! +# package versions updated May 28th 2015 +exts_list = [ + ('setuptools', '18.7.1', { + 'source_urls': ['https://pypi.python.org/packages/source/s/setuptools/'], + }), + ('pip', '7.1.2', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pip/'], + }), + ('nose', '1.3.7', { + 'source_urls': ['https://pypi.python.org/packages/source/n/nose/'], + }), + ('numpy', numpyversion, { + 'source_urls': [('http://sourceforge.net/projects/numpy/files/NumPy/%s' % numpyversion, 'download')], + 'patches': [ + 'numpy-1.8.0-mkl.patch', + 'numpy-%s-sse42.patch' % numpyversion, + ], + }), + ('scipy', scipyversion, { + 'source_urls': [('http://sourceforge.net/projects/scipy/files/scipy/%s' % scipyversion, 'download')], + }), + ('blist', '1.3.6', { + 'source_urls': ['https://pypi.python.org/packages/source/b/blist/'], + }), + ('mpi4py', '1.3.1', { + 'source_urls': ['http://bitbucket.org/mpi4py/mpi4py/downloads/'], + }), + ('paycheck', '1.0.2', { + 'source_urls': ['https://pypi.python.org/packages/source/p/paycheck/'], + }), + ('argparse', '1.4.0', { + 'source_urls': ['https://pypi.python.org/packages/source/a/argparse/'], + }), + ('pbr', '1.8.1', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pbr/'], + }), + ('lockfile', '0.12.2', { + 'source_urls': ['https://pypi.python.org/packages/source/l/lockfile/'], + }), + ('Cython', '0.23.4', { + 'source_urls': ['http://www.cython.org/release/'], + }), + ('six', '1.10.0', { + 'source_urls': ['https://pypi.python.org/packages/source/s/six/'], + }), + ('dateutil', '2.4.2', { + 'source_tmpl': 'python-%(name)s-%(version)s.tar.gz', + 'source_urls': ['https://pypi.python.org/packages/source/p/python-dateutil/'], + }), + ('deap', '1.0.2', { + 'source_tmpl': '%(name)s-%(version)s.post2.tar.gz', + 'source_urls': ['https://pypi.python.org/packages/source/d/deap/'], + }), + ('decorator', '4.0.4', { + 'source_urls': ['https://pypi.python.org/packages/source/d/decorator/'], + }), + ('arff', '2.1.0', { + 'source_tmpl': 'liac-%(name)s-%(version)s.zip', + 'source_urls': ['https://pypi.python.org/packages/source/l/liac-arff/'], + }), + ('pycrypto', '2.6.1', { + 'modulename': 'Crypto', + 'source_urls': ['http://ftp.dlitz.net/pub/dlitz/crypto/pycrypto/'], + }), + ('ecdsa', '0.13', { + 'source_urls': ['https://pypi.python.org/packages/source/e/ecdsa/'], + }), + ('paramiko', '1.16.0', { + 'source_urls': ['https://pypi.python.org/packages/source/p/paramiko/'], + }), + ('pyparsing', '2.0.6', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pyparsing/'], + }), + ('netifaces', '0.10.4', { + 'source_urls': ['https://pypi.python.org/packages/source/n/netifaces'], + }), + ('netaddr', '0.7.18', { + 'source_urls': ['https://pypi.python.org/packages/source/n/netaddr'], + }), + ('funcsigs', '0.4', { + 'source_urls': ['https://pypi.python.org/packages/source/f/funcsigs'], + }), + ('mock', '1.3.0', { + 'source_urls': ['https://pypi.python.org/packages/source/m/mock'], + }), + ('pytz', '2015.7', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pytz'], + }), + ('pandas', '0.17.1', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pandas'], + }), + ('enum34', '1.1.2', { + 'modulename': 'enum', + 'source_urls': ['https://pypi.python.org/packages/source/e/enum34'], + }), + ('bitstring', '3.1.3', { + # grab tarball from GitHub rather than PyPi since 3.1.3 release on PyPi disappeared; + # cfr. https://github.com/scott-griffiths/bitstring/issues/159 + 'source_tmpl': '%(name)s-%(version)s.tar.gz', + 'source_urls': ['https://github.com/scott-griffiths/bitstring/archive/'], + }), + ('virtualenv', '14.0.5', { + 'source_urls': ['https://pypi.python.org/packages/source/v/virtualenv'], + }), +] + +moduleclass = 'lang' diff --git a/p/Python/Python-2.7.11-intel-2016a-libX11-1.6.3.eb b/p/Python/Python-2.7.11-intel-2016a-libX11-1.6.3.eb new file mode 100644 index 00000000..08fffb19 --- /dev/null +++ b/p/Python/Python-2.7.11-intel-2016a-libX11-1.6.3.eb @@ -0,0 +1,147 @@ +name = 'Python' +version = '2.7.11' + +versionsuffix = '-libX11-1.6.3' + +homepage = 'http://python.org/' +description = """Python is a programming language that lets you work more quickly and integrate your systems + more effectively.""" + +toolchain = {'name': 'intel', 'version': '2016a'} +toolchainopts = {'pic': True, 'opt': True, 'optarch': True} + +numpyversion = '1.10.1' +scipyversion = '0.16.1' + +source_urls = ['http://www.python.org/ftp/%(namelower)s/%(version)s/'] +sources = [SOURCE_TGZ] + +# python needs bzip2 to build the bz2 package +dependencies = [ + ('bzip2', '1.0.6'), + ('zlib', '1.2.8'), + ('libreadline', '6.3'), + ('ncurses', '6.0'), + ('SQLite', '3.9.2'), + ('Tk', '8.6.4', versionsuffix), + ('GMP', '6.1.0'), + # ('OpenSSL', '1.0.1q'), # OS dependency should be preferred if the os version is more recent then this version, it's + # nice to have an up to date openssl for security reasons +] + +osdependencies = [('openssl-devel', 'libssl-dev', 'libopenssl-devel')] + +# order is important! +# package versions updated May 28th 2015 +exts_list = [ + ('setuptools', '18.7.1', { + 'source_urls': ['https://pypi.python.org/packages/source/s/setuptools/'], + }), + ('pip', '7.1.2', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pip/'], + }), + ('nose', '1.3.7', { + 'source_urls': ['https://pypi.python.org/packages/source/n/nose/'], + }), + ('numpy', numpyversion, { + 'source_urls': [('http://sourceforge.net/projects/numpy/files/NumPy/%s' % numpyversion, 'download')], + 'patches': [ + 'numpy-1.8.0-mkl.patch', + 'numpy-%s-sse42.patch' % numpyversion, + ], + }), + ('scipy', scipyversion, { + 'source_urls': [('http://sourceforge.net/projects/scipy/files/scipy/%s' % scipyversion, 'download')], + }), + ('blist', '1.3.6', { + 'source_urls': ['https://pypi.python.org/packages/source/b/blist/'], + }), + ('mpi4py', '1.3.1', { + 'source_urls': ['http://bitbucket.org/mpi4py/mpi4py/downloads/'], + }), + ('paycheck', '1.0.2', { + 'source_urls': ['https://pypi.python.org/packages/source/p/paycheck/'], + }), + ('argparse', '1.4.0', { + 'source_urls': ['https://pypi.python.org/packages/source/a/argparse/'], + }), + ('pbr', '1.8.1', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pbr/'], + }), + ('lockfile', '0.12.2', { + 'source_urls': ['https://pypi.python.org/packages/source/l/lockfile/'], + }), + ('Cython', '0.23.4', { + 'source_urls': ['http://www.cython.org/release/'], + }), + ('six', '1.10.0', { + 'source_urls': ['https://pypi.python.org/packages/source/s/six/'], + }), + ('dateutil', '2.4.2', { + 'source_tmpl': 'python-%(name)s-%(version)s.tar.gz', + 'source_urls': ['https://pypi.python.org/packages/source/p/python-dateutil/'], + }), + ('deap', '1.0.2', { + 'source_tmpl': '%(name)s-%(version)s.post2.tar.gz', + 'source_urls': ['https://pypi.python.org/packages/source/d/deap/'], + }), + ('decorator', '4.0.4', { + 'source_urls': ['https://pypi.python.org/packages/source/d/decorator/'], + }), + ('arff', '2.1.0', { + 'source_tmpl': 'liac-%(name)s-%(version)s.zip', + 'source_urls': ['https://pypi.python.org/packages/source/l/liac-arff/'], + }), + ('pycrypto', '2.6.1', { + 'modulename': 'Crypto', + 'source_urls': ['http://ftp.dlitz.net/pub/dlitz/crypto/pycrypto/'], + }), + ('ecdsa', '0.13', { + 'source_urls': ['https://pypi.python.org/packages/source/e/ecdsa/'], + }), + ('paramiko', '1.16.0', { + 'source_urls': ['https://pypi.python.org/packages/source/p/paramiko/'], + }), + ('pyparsing', '2.0.6', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pyparsing/'], + }), + ('netifaces', '0.10.4', { + 'source_urls': ['https://pypi.python.org/packages/source/n/netifaces'], + }), + ('netaddr', '0.7.18', { + 'source_urls': ['https://pypi.python.org/packages/source/n/netaddr'], + }), + ('funcsigs', '0.4', { + 'source_urls': ['https://pypi.python.org/packages/source/f/funcsigs'], + }), + ('mock', '1.3.0', { + 'source_urls': ['https://pypi.python.org/packages/source/m/mock'], + }), + ('pytz', '2015.7', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pytz'], + }), + ('pandas', '0.17.1', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pandas'], + }), + ('enum34', '1.1.2', { + 'modulename': 'enum', + 'source_urls': ['https://pypi.python.org/packages/source/e/enum34'], + }), +<<<<<<< HEAD + ('bitstring', '3.1.4', { + 'source_tmpl': '%(name)s-%(version)s.tar.gz', + 'source_urls': ['https://pypi.python.org/packages/source/b/bitstring'], +======= + ('bitstring', '3.1.3', { + # grab tarball from GitHub rather than PyPi since 3.1.3 release on PyPi disappeared; + # cfr. https://github.com/scott-griffiths/bitstring/issues/159 + 'source_tmpl': '%(name)s-%(version)s.tar.gz', + 'source_urls': ['https://github.com/scott-griffiths/bitstring/archive/'], +>>>>>>> hpcugent/master + }), + ('virtualenv', '14.0.5', { + 'source_urls': ['https://pypi.python.org/packages/source/v/virtualenv'], + }), +] + +moduleclass = 'lang' diff --git a/p/Python/Python-2.7.11-intel-2016a.eb b/p/Python/Python-2.7.11-intel-2016a.eb new file mode 100644 index 00000000..14683881 --- /dev/null +++ b/p/Python/Python-2.7.11-intel-2016a.eb @@ -0,0 +1,139 @@ +name = 'Python' +version = '2.7.11' + +homepage = 'http://python.org/' +description = """Python is a programming language that lets you work more quickly and integrate your systems + more effectively.""" + +toolchain = {'name': 'intel', 'version': '2016a'} +toolchainopts = {'pic': True, 'opt': True, 'optarch': True} + +numpyversion = '1.10.1' +scipyversion = '0.16.1' + +source_urls = ['http://www.python.org/ftp/%(namelower)s/%(version)s/'] +sources = [SOURCE_TGZ] + +# python needs bzip2 to build the bz2 package +dependencies = [ + ('bzip2', '1.0.6'), + ('zlib', '1.2.8'), + ('libreadline', '6.3'), + ('ncurses', '6.0'), + ('SQLite', '3.9.2'), + ('Tk', '8.6.4', '-no-X11'), + ('GMP', '6.1.0'), + # ('OpenSSL', '1.0.1q'), # OS dependency should be preferred if the os version is more recent then this version, it's + # nice to have an up to date openssl for security reasons +] + +osdependencies = [('openssl-devel', 'libssl-dev', 'libopenssl-devel')] + +# order is important! +# package versions updated May 28th 2015 +exts_list = [ + ('setuptools', '18.7.1', { + 'source_urls': ['https://pypi.python.org/packages/source/s/setuptools/'], + }), + ('pip', '7.1.2', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pip/'], + }), + ('nose', '1.3.7', { + 'source_urls': ['https://pypi.python.org/packages/source/n/nose/'], + }), + ('numpy', numpyversion, { + 'source_urls': [('http://sourceforge.net/projects/numpy/files/NumPy/%s' % numpyversion, 'download')], + 'patches': [ + 'numpy-1.8.0-mkl.patch', + 'numpy-%s-sse42.patch' % numpyversion, + ], + }), + ('scipy', scipyversion, { + 'source_urls': [('http://sourceforge.net/projects/scipy/files/scipy/%s' % scipyversion, 'download')], + }), + ('blist', '1.3.6', { + 'source_urls': ['https://pypi.python.org/packages/source/b/blist/'], + }), + ('mpi4py', '1.3.1', { + 'source_urls': ['http://bitbucket.org/mpi4py/mpi4py/downloads/'], + }), + ('paycheck', '1.0.2', { + 'source_urls': ['https://pypi.python.org/packages/source/p/paycheck/'], + }), + ('argparse', '1.4.0', { + 'source_urls': ['https://pypi.python.org/packages/source/a/argparse/'], + }), + ('pbr', '1.8.1', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pbr/'], + }), + ('lockfile', '0.12.2', { + 'source_urls': ['https://pypi.python.org/packages/source/l/lockfile/'], + }), + ('Cython', '0.23.4', { + 'source_urls': ['http://www.cython.org/release/'], + }), + ('six', '1.10.0', { + 'source_urls': ['https://pypi.python.org/packages/source/s/six/'], + }), + ('dateutil', '2.4.2', { + 'source_tmpl': 'python-%(name)s-%(version)s.tar.gz', + 'source_urls': ['https://pypi.python.org/packages/source/p/python-dateutil/'], + }), + ('deap', '1.0.2', { + 'source_tmpl': '%(name)s-%(version)s.post2.tar.gz', + 'source_urls': ['https://pypi.python.org/packages/source/d/deap/'], + }), + ('decorator', '4.0.4', { + 'source_urls': ['https://pypi.python.org/packages/source/d/decorator/'], + }), + ('arff', '2.1.0', { + 'source_tmpl': 'liac-%(name)s-%(version)s.zip', + 'source_urls': ['https://pypi.python.org/packages/source/l/liac-arff/'], + }), + ('pycrypto', '2.6.1', { + 'modulename': 'Crypto', + 'source_urls': ['http://ftp.dlitz.net/pub/dlitz/crypto/pycrypto/'], + }), + ('ecdsa', '0.13', { + 'source_urls': ['https://pypi.python.org/packages/source/e/ecdsa/'], + }), + ('paramiko', '1.16.0', { + 'source_urls': ['https://pypi.python.org/packages/source/p/paramiko/'], + }), + ('pyparsing', '2.0.6', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pyparsing/'], + }), + ('netifaces', '0.10.4', { + 'source_urls': ['https://pypi.python.org/packages/source/n/netifaces'], + }), + ('netaddr', '0.7.18', { + 'source_urls': ['https://pypi.python.org/packages/source/n/netaddr'], + }), + ('funcsigs', '0.4', { + 'source_urls': ['https://pypi.python.org/packages/source/f/funcsigs'], + }), + ('mock', '1.3.0', { + 'source_urls': ['https://pypi.python.org/packages/source/m/mock'], + }), + ('pytz', '2015.7', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pytz'], + }), + ('pandas', '0.17.1', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pandas'], + }), + ('enum34', '1.1.2', { + 'modulename': 'enum', + 'source_urls': ['https://pypi.python.org/packages/source/e/enum34'], + }), + ('bitstring', '3.1.3', { + # grab tarball from GitHub rather than PyPi since 3.1.3 release on PyPi disappeared; + # cfr. https://github.com/scott-griffiths/bitstring/issues/159 + 'source_tmpl': '%(name)s-%(version)s.tar.gz', + 'source_urls': ['https://github.com/scott-griffiths/bitstring/archive/'], + }), + ('virtualenv', '14.0.5', { + 'source_urls': ['https://pypi.python.org/packages/source/v/virtualenv'], + }), +] + +moduleclass = 'lang' diff --git a/p/Python/Python-2.7.11-intel-2017.00.eb b/p/Python/Python-2.7.11-intel-2017.00.eb new file mode 100644 index 00000000..d10bc7ee --- /dev/null +++ b/p/Python/Python-2.7.11-intel-2017.00.eb @@ -0,0 +1,126 @@ +name = 'Python' +version = '2.7.11' + +homepage = 'http://python.org/' +description = """Python is a programming language that lets you work more quickly and integrate your systems + more effectively.""" + +toolchain = {'name': 'intel', 'version': '2017.00'} +toolchainopts = {'pic': True, 'opt': True, 'optarch': True} + +source_urls = ['http://www.python.org/ftp/%(namelower)s/%(version)s/'] +sources = [SOURCE_TGZ] + +# python needs bzip2 to build the bz2 package +dependencies = [ + ('bzip2', '1.0.6'), + ('zlib', '1.2.8'), + ('libreadline', '6.3'), + ('ncurses', '6.0'), + ('SQLite', '3.9.2'), + ('Tk', '8.6.4', '-no-X11'), + ('GMP', '6.1.0'), + # ('OpenSSL', '1.0.1q'), # OS dependency should be preferred if the os version is more recent then this version, it's + # nice to have an up to date openssl for security reasons +] + +osdependencies = [('openssl-devel', 'libssl-dev', 'libopenssl-devel')] + +# order is important! +# package versions updated May 28th 2015 +exts_list = [ + ('setuptools', '18.7.1', { + 'source_urls': ['https://pypi.python.org/packages/source/s/setuptools/'], + }), + ('pip', '7.1.2', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pip/'], + }), + ('nose', '1.3.7', { + 'source_urls': ['https://pypi.python.org/packages/source/n/nose/'], + }), + ('blist', '1.3.6', { + 'source_urls': ['https://pypi.python.org/packages/source/b/blist/'], + }), + ('mpi4py', '1.3.1', { + 'source_urls': ['http://bitbucket.org/mpi4py/mpi4py/downloads/'], + }), + ('paycheck', '1.0.2', { + 'source_urls': ['https://pypi.python.org/packages/source/p/paycheck/'], + }), + ('argparse', '1.4.0', { + 'source_urls': ['https://pypi.python.org/packages/source/a/argparse/'], + }), + ('pbr', '1.8.1', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pbr/'], + }), + ('lockfile', '0.12.2', { + 'source_urls': ['https://pypi.python.org/packages/source/l/lockfile/'], + }), + ('Cython', '0.23.4', { + 'source_urls': ['http://www.cython.org/release/'], + }), + ('six', '1.10.0', { + 'source_urls': ['https://pypi.python.org/packages/source/s/six/'], + }), + ('dateutil', '2.4.2', { + 'source_tmpl': 'python-%(name)s-%(version)s.tar.gz', + 'source_urls': ['https://pypi.python.org/packages/source/p/python-dateutil/'], + }), + ('deap', '1.0.2', { + 'source_tmpl': '%(name)s-%(version)s.post2.tar.gz', + 'source_urls': ['https://pypi.python.org/packages/source/d/deap/'], + }), + ('decorator', '4.0.4', { + 'source_urls': ['https://pypi.python.org/packages/source/d/decorator/'], + }), + ('arff', '2.1.0', { + 'source_tmpl': 'liac-%(name)s-%(version)s.zip', + 'source_urls': ['https://pypi.python.org/packages/source/l/liac-arff/'], + }), + ('pycrypto', '2.6.1', { + 'modulename': 'Crypto', + 'source_urls': ['http://ftp.dlitz.net/pub/dlitz/crypto/pycrypto/'], + }), + ('ecdsa', '0.13', { + 'source_urls': ['https://pypi.python.org/packages/source/e/ecdsa/'], + }), + ('paramiko', '1.16.0', { + 'source_urls': ['https://pypi.python.org/packages/source/p/paramiko/'], + }), + ('pyparsing', '2.0.6', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pyparsing/'], + }), + ('netifaces', '0.10.4', { + 'source_urls': ['https://pypi.python.org/packages/source/n/netifaces'], + }), + ('netaddr', '0.7.18', { + 'source_urls': ['https://pypi.python.org/packages/source/n/netaddr'], + }), + ('funcsigs', '0.4', { + 'source_urls': ['https://pypi.python.org/packages/source/f/funcsigs'], + }), + ('mock', '1.3.0', { + 'source_urls': ['https://pypi.python.org/packages/source/m/mock'], + }), + ('pytz', '2015.7', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pytz'], + }), +# ('pandas', '0.17.1', { +# 'source_urls': ['https://pypi.python.org/packages/source/p/pandas'], +# }), + ('enum34', '1.1.2', { + 'modulename': 'enum', + 'source_urls': ['https://pypi.python.org/packages/source/e/enum34'], + }), + ('bitstring', '3.1.3', { + # grab tarball from GitHub rather than PyPi since 3.1.3 release on PyPi disappeared; + # cfr. https://github.com/scott-griffiths/bitstring/issues/159 + 'source_tmpl': '%(name)s-%(version)s.tar.gz', + 'source_urls': ['https://github.com/scott-griffiths/bitstring/archive/'], + }), + ('virtualenv', '14.0.5', { + 'source_urls': ['https://pypi.python.org/packages/source/v/virtualenv'], + }), +] + +moduleclass = 'lang' diff --git a/p/Python/Python-2.7.11-intel-2017a.eb b/p/Python/Python-2.7.11-intel-2017a.eb new file mode 100644 index 00000000..070d4c11 --- /dev/null +++ b/p/Python/Python-2.7.11-intel-2017a.eb @@ -0,0 +1,123 @@ +name = 'Python' +version = '2.7.11' + +homepage = 'http://python.org/' +description = """Python is a programming language that lets you work more quickly and integrate your systems + more effectively.""" + +toolchain = {'name': 'intel', 'version': '2017a'} +toolchainopts = {'pic': True} + +source_urls = ['http://www.python.org/ftp/%(namelower)s/%(version)s/'] +sources = [SOURCE_TGZ] + +# python needs bzip2 to build the bz2 package +dependencies = [ + ('bzip2', '1.0.6'), + ('zlib', '1.2.11'), + ('libreadline', '6.3'), + ('ncurses', '6.0'), + ('SQLite', '3.13.0'), + ('Tk', '8.6.5'), # this requires a full X11 stack + ('GMP', '6.1.1'), + ('libffi', '3.2.1'), + # OS dependency should be preferred if the os version is more recent then this version, + # it's nice to have an up to date openssl for security reasons + # ('OpenSSL', '1.0.2h'), +] + +osdependencies = [('openssl-devel', 'libssl-dev', 'libopenssl-devel')] + +# order is important! +# package versions updated May 28th 2015 +exts_list = [ + ('setuptools', '23.1.0', { + 'source_urls': ['https://pypi.python.org/packages/source/s/setuptools/'], + }), + ('pip', '8.1.2', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pip/'], + }), + ('nose', '1.3.7', { + 'source_urls': ['https://pypi.python.org/packages/source/n/nose/'], + }), + ('blist', '1.3.6', { + 'source_urls': ['https://pypi.python.org/packages/source/b/blist/'], + }), + ('mpi4py', '1.3.1', { + 'source_urls': ['http://bitbucket.org/mpi4py/mpi4py/downloads/'], + }), + ('paycheck', '1.0.2', { + 'source_urls': ['https://pypi.python.org/packages/source/p/paycheck/'], + }), + ('pbr', '1.10.0', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pbr/'], + }), + ('lockfile', '0.12.2', { + 'source_urls': ['https://pypi.python.org/packages/source/l/lockfile/'], + }), + ('Cython', '0.24', { + 'source_urls': ['https://pypi.python.org/packages/source/c/cython/'], + }), + ('six', '1.10.0', { + 'source_urls': ['https://pypi.python.org/packages/source/s/six/'], + }), + ('dateutil', '2.5.3', { + 'source_tmpl': 'python-%(name)s-%(version)s.tar.gz', + 'source_urls': ['https://pypi.python.org/packages/source/p/python-dateutil/'], + }), + ('deap', '1.0.2', { + 'source_tmpl': '%(name)s-%(version)s.post2.tar.gz', + 'source_urls': ['https://pypi.python.org/packages/source/d/deap/'], + }), + ('decorator', '4.0.10', { + 'source_urls': ['https://pypi.python.org/packages/source/d/decorator/'], + }), + ('arff', '2.1.0', { + 'source_tmpl': 'liac-%(name)s-%(version)s.zip', + 'source_urls': ['https://pypi.python.org/packages/source/l/liac-arff/'], + }), + ('pycrypto', '2.6.1', { + 'modulename': 'Crypto', + 'source_urls': ['http://ftp.dlitz.net/pub/dlitz/crypto/pycrypto/'], + }), + ('ecdsa', '0.13', { + 'source_urls': ['https://pypi.python.org/packages/source/e/ecdsa/'], + }), + ('cryptography', '1.4', { + 'source_urls': ['https://pypi.python.org/packages/source/c/cryptography/'], + }), + ('paramiko', '2.0.1', { + 'source_urls': ['https://pypi.python.org/packages/source/p/paramiko/'], + }), + ('pyparsing', '2.1.5', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pyparsing/'], + }), + ('netifaces', '0.10.4', { + 'source_urls': ['https://pypi.python.org/packages/source/n/netifaces'], + }), + ('netaddr', '0.7.18', { + 'source_urls': ['https://pypi.python.org/packages/source/n/netaddr'], + }), + ('funcsigs', '1.0.2', { + 'source_urls': ['https://pypi.python.org/packages/source/f/funcsigs'], + }), + ('mock', '2.0.0', { + 'source_urls': ['https://pypi.python.org/packages/source/m/mock'], + }), + ('pytz', '2016.4', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pytz'], + }), + ('enum34', '1.1.6', { + 'modulename': 'enum', + 'source_urls': ['https://pypi.python.org/packages/source/e/enum34'], + }), + ('bitstring', '3.1.5', { + 'source_tmpl': '%(name)s-%(version)s.zip', + 'source_urls': ['https://pypi.python.org/packages/source/b/bitstring'], + }), + ('virtualenv', '15.0.2', { + 'source_urls': ['https://pypi.python.org/packages/source/v/virtualenv'], + }), +] + +moduleclass = 'lang' diff --git a/p/Python/Python-2.7.11-iomkl-2016.07.eb b/p/Python/Python-2.7.11-iomkl-2016.07.eb new file mode 100644 index 00000000..c4458117 --- /dev/null +++ b/p/Python/Python-2.7.11-iomkl-2016.07.eb @@ -0,0 +1,139 @@ +# Automatically converted from Python-2.7.11-foss-2016.09.eb +# by /gpfs/sysapps/bham/scripts/easybuild/copy_to_toolchain.py +name = 'Python' +version = '2.7.11' + +homepage = 'http://python.org/' +description = """Python is a programming language that lets you work more quickly and integrate your systems + more effectively.""" + +toolchain = {'name': 'iomkl', 'version': '2016.07'} +toolchainopts = {'pic': True, 'opt': True, 'optarch': True} + +numpyversion = '1.10.1' +scipyversion = '0.16.1' + +source_urls = ['http://www.python.org/ftp/%(namelower)s/%(version)s/'] +sources = [SOURCE_TGZ] + +# python needs bzip2 to build the bz2 package +dependencies = [ + ('bzip2', '1.0.6'), + ('zlib', '1.2.8'), + ('libreadline', '6.3'), + ('ncurses', '6.0'), + ('SQLite', '3.9.2'), + #('Tk', '8.6.4', '-no-X11'), # this requires a full X11 stack + ('Tk', '8.6.4'), # this requires a full X11 stack + ('GMP', '6.1.0'), + ('OpenSSL', '1.0.2h'), # OS dependency should be preferred if the os version is more recent then this version, it's +# nice to have an up to date openssl for security reasons +] + +#osdependencies = [('openssl-devel', 'libssl-dev', 'libopenssl-devel')] + +# order is important! +# package versions updated May 28th 2015 +exts_list = [ + ('setuptools', '18.7.1', { + 'source_urls': ['https://pypi.python.org/packages/source/s/setuptools/'], + }), + ('pip', '7.1.2', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pip/'], + }), + ('nose', '1.3.7', { + 'source_urls': ['https://pypi.python.org/packages/source/n/nose/'], + }), + ('numpy', numpyversion, { + 'source_urls': [('http://sourceforge.net/projects/numpy/files/NumPy/%s' % numpyversion, 'download')], + 'patches': ['numpy-1.8.0-mkl.patch'], + }), + ('scipy', scipyversion, { + 'source_urls': [('http://sourceforge.net/projects/scipy/files/scipy/%s' % scipyversion, 'download')], + }), + ('blist', '1.3.6', { + 'source_urls': ['https://pypi.python.org/packages/source/b/blist/'], + }), + ('mpi4py', '1.3.1', { + 'source_urls': ['http://bitbucket.org/mpi4py/mpi4py/downloads/'], + }), + ('paycheck', '1.0.2', { + 'source_urls': ['https://pypi.python.org/packages/source/p/paycheck/'], + }), + ('argparse', '1.4.0', { + 'source_urls': ['https://pypi.python.org/packages/source/a/argparse/'], + }), + ('pbr', '1.8.1', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pbr/'], + }), + ('lockfile', '0.12.2', { + 'source_urls': ['https://pypi.python.org/packages/source/l/lockfile/'], + }), + ('Cython', '0.23.4', { + 'source_urls': ['https://pypi.python.org/packages/source/c/cython/'], + }), + ('six', '1.10.0', { + 'source_urls': ['https://pypi.python.org/packages/source/s/six/'], + }), + ('dateutil', '2.4.2', { + 'source_tmpl': 'python-%(name)s-%(version)s.tar.gz', + 'source_urls': ['https://pypi.python.org/packages/source/p/python-dateutil/'], + }), + ('deap', '1.0.2', { + 'source_tmpl': '%(name)s-%(version)s.post2.tar.gz', + 'source_urls': ['https://pypi.python.org/packages/source/d/deap/'], + }), + ('decorator', '4.0.4', { + 'source_urls': ['https://pypi.python.org/packages/source/d/decorator/'], + }), + ('arff', '2.1.0', { + 'source_tmpl': 'liac-%(name)s-%(version)s.zip', + 'source_urls': ['https://pypi.python.org/packages/source/l/liac-arff/'], + }), + ('pycrypto', '2.6.1', { + 'modulename': 'Crypto', + 'source_urls': ['http://ftp.dlitz.net/pub/dlitz/crypto/pycrypto/'], + }), + ('ecdsa', '0.13', { + 'source_urls': ['https://pypi.python.org/packages/source/e/ecdsa/'], + }), + ('paramiko', '1.16.0', { + 'source_urls': ['https://pypi.python.org/packages/source/p/paramiko/'], + }), + ('pyparsing', '2.0.6', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pyparsing/'], + }), + ('netifaces', '0.10.4', { + 'source_urls': ['https://pypi.python.org/packages/source/n/netifaces'], + }), + ('netaddr', '0.7.18', { + 'source_urls': ['https://pypi.python.org/packages/source/n/netaddr'], + }), + ('funcsigs', '0.4', { + 'source_urls': ['https://pypi.python.org/packages/source/f/funcsigs'], + }), + ('mock', '1.3.0', { + 'source_urls': ['https://pypi.python.org/packages/source/m/mock'], + }), + ('pytz', '2015.7', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pytz'], + }), + ('pandas', '0.17.1', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pandas'], + }), + ('enum34', '1.1.2', { + 'modulename': 'enum', + 'source_urls': ['https://pypi.python.org/packages/source/e/enum34'], + }), + ('bitstring', '3.1.3', { + # grab tarball from GitHub rather than PyPi since 3.1.3 release on PyPi disappeared; + # cfr. https://github.com/scott-griffiths/bitstring/issues/159 + 'source_tmpl': '%(name)s-%(version)s.tar.gz', + 'source_urls': ['https://github.com/scott-griffiths/bitstring/archive/'], + }), + ('virtualenv', '14.0.5', { + 'source_urls': ['https://pypi.python.org/packages/source/v/virtualenv'], + }), +] + +moduleclass = 'lang' diff --git a/p/Python/Python-2.7.11-iomkl-2016.09-GCC-4.9.3-2.25.eb b/p/Python/Python-2.7.11-iomkl-2016.09-GCC-4.9.3-2.25.eb new file mode 100644 index 00000000..ed40bed0 --- /dev/null +++ b/p/Python/Python-2.7.11-iomkl-2016.09-GCC-4.9.3-2.25.eb @@ -0,0 +1,137 @@ +name = 'Python' +version = '2.7.11' + +homepage = 'http://python.org/' +description = """Python is a programming language that lets you work more quickly and integrate your systems + more effectively.""" + +toolchain = {'name': 'iomkl', 'version': '2016.09-GCC-4.9.3-2.25'} +toolchainopts = {'pic': True, 'opt': True, 'optarch': True} + +numpyversion = '1.10.1' +scipyversion = '0.16.1' + +source_urls = ['http://www.python.org/ftp/%(namelower)s/%(version)s/'] +sources = [SOURCE_TGZ] + +# python needs bzip2 to build the bz2 package +dependencies = [ + ('bzip2', '1.0.6'), + ('zlib', '1.2.8'), + ('libreadline', '6.3'), + ('ncurses', '6.0'), + ('SQLite', '3.9.2'), + #('Tk', '8.6.4', '-no-X11'), # this requires a full X11 stack + ('Tk', '8.6.4'), # this requires a full X11 stack + ('GMP', '6.1.0'), + ('OpenSSL', '1.0.2h'), # OS dependency should be preferred if the os version is more recent then this version, it's +# nice to have an up to date openssl for security reasons +] + +#osdependencies = [('openssl-devel', 'libssl-dev', 'libopenssl-devel')] + +# order is important! +# package versions updated May 28th 2015 +exts_list = [ + ('setuptools', '18.7.1', { + 'source_urls': ['https://pypi.python.org/packages/source/s/setuptools/'], + }), + ('pip', '7.1.2', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pip/'], + }), + ('nose', '1.3.7', { + 'source_urls': ['https://pypi.python.org/packages/source/n/nose/'], + }), + ('numpy', numpyversion, { + 'source_urls': [('http://sourceforge.net/projects/numpy/files/NumPy/%s' % numpyversion, 'download')], + 'patches': ['numpy-1.8.0-mkl.patch'], + }), + ('scipy', scipyversion, { + 'source_urls': [('http://sourceforge.net/projects/scipy/files/scipy/%s' % scipyversion, 'download')], + }), + ('blist', '1.3.6', { + 'source_urls': ['https://pypi.python.org/packages/source/b/blist/'], + }), + ('mpi4py', '1.3.1', { + 'source_urls': ['http://bitbucket.org/mpi4py/mpi4py/downloads/'], + }), + ('paycheck', '1.0.2', { + 'source_urls': ['https://pypi.python.org/packages/source/p/paycheck/'], + }), + ('argparse', '1.4.0', { + 'source_urls': ['https://pypi.python.org/packages/source/a/argparse/'], + }), + ('pbr', '1.8.1', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pbr/'], + }), + ('lockfile', '0.12.2', { + 'source_urls': ['https://pypi.python.org/packages/source/l/lockfile/'], + }), + ('Cython', '0.23.4', { + 'source_urls': ['https://pypi.python.org/packages/source/c/cython/'], + }), + ('six', '1.10.0', { + 'source_urls': ['https://pypi.python.org/packages/source/s/six/'], + }), + ('dateutil', '2.4.2', { + 'source_tmpl': 'python-%(name)s-%(version)s.tar.gz', + 'source_urls': ['https://pypi.python.org/packages/source/p/python-dateutil/'], + }), + ('deap', '1.0.2', { + 'source_tmpl': '%(name)s-%(version)s.post2.tar.gz', + 'source_urls': ['https://pypi.python.org/packages/source/d/deap/'], + }), + ('decorator', '4.0.4', { + 'source_urls': ['https://pypi.python.org/packages/source/d/decorator/'], + }), + ('arff', '2.1.0', { + 'source_tmpl': 'liac-%(name)s-%(version)s.zip', + 'source_urls': ['https://pypi.python.org/packages/source/l/liac-arff/'], + }), + ('pycrypto', '2.6.1', { + 'modulename': 'Crypto', + 'source_urls': ['http://ftp.dlitz.net/pub/dlitz/crypto/pycrypto/'], + }), + ('ecdsa', '0.13', { + 'source_urls': ['https://pypi.python.org/packages/source/e/ecdsa/'], + }), + ('paramiko', '1.16.0', { + 'source_urls': ['https://pypi.python.org/packages/source/p/paramiko/'], + }), + ('pyparsing', '2.0.6', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pyparsing/'], + }), + ('netifaces', '0.10.4', { + 'source_urls': ['https://pypi.python.org/packages/source/n/netifaces'], + }), + ('netaddr', '0.7.18', { + 'source_urls': ['https://pypi.python.org/packages/source/n/netaddr'], + }), + ('funcsigs', '0.4', { + 'source_urls': ['https://pypi.python.org/packages/source/f/funcsigs'], + }), + ('mock', '1.3.0', { + 'source_urls': ['https://pypi.python.org/packages/source/m/mock'], + }), + ('pytz', '2015.7', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pytz'], + }), + ('pandas', '0.17.1', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pandas'], + }), + ('enum34', '1.1.2', { + 'modulename': 'enum', + 'source_urls': ['https://pypi.python.org/packages/source/e/enum34'], + }), + ('bitstring', '3.1.3', { + # grab tarball from GitHub rather than PyPi since 3.1.3 release on PyPi disappeared; + # cfr. https://github.com/scott-griffiths/bitstring/issues/159 + 'source_tmpl': '%(name)s-%(version)s.tar.gz', + 'source_urls': ['https://github.com/scott-griffiths/bitstring/archive/'], + }), + ('virtualenv', '14.0.5', { + 'source_urls': ['https://pypi.python.org/packages/source/v/virtualenv'], + }), +] + +moduleclass = 'lang' diff --git a/p/Python/Python-2.7.12-GCCcore-4.9.3-bare.eb b/p/Python/Python-2.7.12-GCCcore-4.9.3-bare.eb new file mode 100644 index 00000000..62cd674c --- /dev/null +++ b/p/Python/Python-2.7.12-GCCcore-4.9.3-bare.eb @@ -0,0 +1,37 @@ +name = 'Python' +version = '2.7.12' +versionsuffix = '-bare' + +homepage = 'http://python.org/' +description = "Python is a programming language that lets you work more quickly and integrate your systems more effectively." + +toolchain = {'name': 'GCCcore', 'version': '4.9.3'} +toolchainopts = {'pic': True} + +source_urls = ['http://www.python.org/ftp/%(namelower)s/%(version)s/'] +sources = [SOURCE_TGZ] + +builddependencies = [ + ('binutils', '2.25'), +] + +dependencies = [ + ('zlib', '1.2.8'), + ('bzip2', '1.0.6'), + ('libreadline', '6.3'), + ('ncurses', '6.0'), + ('SQLite', '3.14.1'), + # ('OpenSSL', '1.0.1k'), # OS dependency should be preferred if the os version is more recent then this version, it's + # nice to have an up to date openssl for security reasons +] + +osdependencies = [('openssl-devel', 'libssl-dev', 'libopenssl-devel')] + +# We hide this by default since users should not use it in production, high-performance Python should be delivered at +# compiler level with a default extension set +#hidden = True + +# bare installation: only known module deps for GCCcore tools included +exts_list =[] + +moduleclass = 'lang' diff --git a/p/Python/Python-2.7.12.eb b/p/Python/Python-2.7.12.eb new file mode 100644 index 00000000..fa28a423 --- /dev/null +++ b/p/Python/Python-2.7.12.eb @@ -0,0 +1,123 @@ +name = 'Python' +version = '2.7.12' + +homepage = 'http://python.org/' +description = """Python is a programming language that lets you work more quickly and integrate your systems + more effectively.""" + +toolchain = {'name': 'dummy', 'version': 'dummy'} +toolchainopts = {'pic': True} + +source_urls = ['http://www.python.org/ftp/%(namelower)s/%(version)s/'] +sources = [SOURCE_TGZ] + +# python needs bzip2 to build the bz2 package +dependencies = [ + ('bzip2', '1.0.6'), + ('zlib', '1.2.8'), + ('libreadline', '6.3'), + ('ncurses', '6.0'), + ('SQLite', '3.13.0'), + ('Tk', '8.6.5'), # this requires a full X11 stack + ('GMP', '6.1.1'), + ('libffi', '3.2.1'), + # OS dependency should be preferred if the os version is more recent then this version, + # it's nice to have an up to date openssl for security reasons + # ('OpenSSL', '1.0.2h'), +] + +osdependencies = [('openssl-devel', 'libssl-dev', 'libopenssl-devel')] + +# order is important! +# package versions updated May 28th 2015 +exts_list = [ + ('setuptools', '23.1.0', { + 'source_urls': ['https://pypi.python.org/packages/source/s/setuptools/'], + }), + ('pip', '8.1.2', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pip/'], + }), + ('nose', '1.3.7', { + 'source_urls': ['https://pypi.python.org/packages/source/n/nose/'], + }), + ('blist', '1.3.6', { + 'source_urls': ['https://pypi.python.org/packages/source/b/blist/'], + }), + ('mpi4py', '1.3.1', { + 'source_urls': ['http://bitbucket.org/mpi4py/mpi4py/downloads/'], + }), + ('paycheck', '1.0.2', { + 'source_urls': ['https://pypi.python.org/packages/source/p/paycheck/'], + }), + ('pbr', '1.10.0', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pbr/'], + }), + ('lockfile', '0.12.2', { + 'source_urls': ['https://pypi.python.org/packages/source/l/lockfile/'], + }), + ('Cython', '0.24', { + 'source_urls': ['https://pypi.python.org/packages/source/c/cython/'], + }), + ('six', '1.10.0', { + 'source_urls': ['https://pypi.python.org/packages/source/s/six/'], + }), + ('dateutil', '2.5.3', { + 'source_tmpl': 'python-%(name)s-%(version)s.tar.gz', + 'source_urls': ['https://pypi.python.org/packages/source/p/python-dateutil/'], + }), + ('deap', '1.0.2', { + 'source_tmpl': '%(name)s-%(version)s.post2.tar.gz', + 'source_urls': ['https://pypi.python.org/packages/source/d/deap/'], + }), + ('decorator', '4.0.10', { + 'source_urls': ['https://pypi.python.org/packages/source/d/decorator/'], + }), + ('arff', '2.1.0', { + 'source_tmpl': 'liac-%(name)s-%(version)s.zip', + 'source_urls': ['https://pypi.python.org/packages/source/l/liac-arff/'], + }), + ('pycrypto', '2.6.1', { + 'modulename': 'Crypto', + 'source_urls': ['http://ftp.dlitz.net/pub/dlitz/crypto/pycrypto/'], + }), + ('ecdsa', '0.13', { + 'source_urls': ['https://pypi.python.org/packages/source/e/ecdsa/'], + }), + ('cryptography', '1.4', { + 'source_urls': ['https://pypi.python.org/packages/source/c/cryptography/'], + }), + ('paramiko', '2.0.1', { + 'source_urls': ['https://pypi.python.org/packages/source/p/paramiko/'], + }), + ('pyparsing', '2.1.5', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pyparsing/'], + }), + ('netifaces', '0.10.4', { + 'source_urls': ['https://pypi.python.org/packages/source/n/netifaces'], + }), + ('netaddr', '0.7.18', { + 'source_urls': ['https://pypi.python.org/packages/source/n/netaddr'], + }), + ('funcsigs', '1.0.2', { + 'source_urls': ['https://pypi.python.org/packages/source/f/funcsigs'], + }), + ('mock', '2.0.0', { + 'source_urls': ['https://pypi.python.org/packages/source/m/mock'], + }), + ('pytz', '2016.4', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pytz'], + }), + ('enum34', '1.1.6', { + 'modulename': 'enum', + 'source_urls': ['https://pypi.python.org/packages/source/e/enum34'], + }), + ('bitstring', '3.1.5', { + 'source_tmpl': '%(name)s-%(version)s.zip', + 'source_urls': ['https://pypi.python.org/packages/source/b/bitstring'], + }), + ('virtualenv', '15.0.2', { + 'source_urls': ['https://pypi.python.org/packages/source/v/virtualenv'], + }), +] + +moduleclass = 'lang' diff --git a/p/Python/Python-2.7.3-cgmpolf-1.1.6.eb b/p/Python/Python-2.7.3-cgmpolf-1.1.6.eb new file mode 100644 index 00000000..458773a1 --- /dev/null +++ b/p/Python/Python-2.7.3-cgmpolf-1.1.6.eb @@ -0,0 +1,91 @@ +name = 'Python' +version = '2.7.3' + +homepage = 'http://python.org/' +description = "Python is a programming language that lets you work more quickly and integrate your systems more effectively." + +toolchain = {'name': 'cgmpolf', 'version': '1.1.6'} +toolchainopts = {'pic': True, 'opt': True, 'optarch': True} + +numpyversion = '1.6.1' +scipyversion = '0.10.1' + +source_urls = ['http://www.python.org/ftp/%(namelower)s/%(version)s/'] +sources = [SOURCE_TGZ] + +# python needs bzip2 to build the bz2 package +dependencies = [ + ('bzip2', '1.0.6'), + ('zlib', '1.2.7'), + ('libreadline', '6.2'), + ('ncurses', '5.9-20130406'), + # ('OpenSSL', '1.0.1f'), # OS dependency should be preferred for security reasons +] + +osdependencies = [('openssl-devel', 'libssl-dev', 'libopenssl-devel')] + +# order is important! +exts_list = [ + ('setuptools', '0.6c11', { + 'source_urls': ['https://pypi.python.org/packages/source/s/setuptools/'], + }), + ('pip', '1.1', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pip/'], + }), + ('nose', '1.1.2', { + 'source_urls': ['https://pypi.python.org/packages/source/n/nose/'], + }), + ('numpy', numpyversion, { + 'source_urls': [('http://sourceforge.net/projects/numpy/files/NumPy/%s' % numpyversion, 'download')], + 'patches': [ + 'numpy-%s_distutils_multiple-lib-dirs.patch' % numpyversion, + ], + }), + ('scipy', scipyversion, { + 'source_urls': [('http://sourceforge.net/projects/scipy/files/scipy/%s' % scipyversion, 'download')], + }), + ('mpi4py', '1.3', { + 'source_urls': ['http://bitbucket.org/mpi4py/mpi4py/downloads/'], + }), + ('paycheck', '1.0.2', { + 'source_urls': ['https://pypi.python.org/packages/source/p/paycheck/'], + }), + ('argparse', '1.2.1', { + 'source_urls': ['https://pypi.python.org/packages/source/a/argparse/'], + }), + ('lockfile', '0.9.1', { + 'source_urls': ['https://pypi.python.org/packages/source/l/lockfile/'], + }), + ('Cython', '0.17.2', { + 'source_urls': ['http://www.cython.org/release/'], + }), + ('six', '1.1.0', { + 'source_urls': ['https://pypi.python.org/packages/source/s/six/'], + }), + ('dateutil', '2.1', { + 'source_tmpl': 'python-%(name)s-%(version)s.tar.gz', + 'source_urls': ['https://pypi.python.org/packages/source/p/python-dateutil/'], + }), + ('deap', '0.9.1', { + 'source_urls': ['https://pypi.python.org/packages/source/d/deap/'], + }), + ('decorator', '3.4.0', { + 'source_urls': ['https://pypi.python.org/packages/source/d/decorator/'], + }), + ('arff', '1.1', { + 'source_tmpl': 'liac-%(name)s-%(version)s.zip', + 'source_urls': ['https://pypi.python.org/packages/source/l/liac-arff/'], + }), + ('pycrypto', '2.6.1', { + 'modulename': 'Crypto', + 'source_urls': ['http://ftp.dlitz.net/pub/dlitz/crypto/pycrypto/'], + }), + ('ecdsa', '0.8', { + 'source_urls': ['https://pypi.python.org/packages/source/e/ecdsa/'], + }), + ('paramiko', '1.12.0', { + 'source_urls': ['https://pypi.python.org/packages/source/p/paramiko/'], + }), +] + +moduleclass = 'lang' diff --git a/p/Python/Python-2.7.3-cgmvolf-1.1.12rc1.eb b/p/Python/Python-2.7.3-cgmvolf-1.1.12rc1.eb new file mode 100644 index 00000000..8847eb71 --- /dev/null +++ b/p/Python/Python-2.7.3-cgmvolf-1.1.12rc1.eb @@ -0,0 +1,89 @@ +name = 'Python' +version = '2.7.3' + +homepage = 'http://python.org/' +description = "Python is a programming language that lets you work more quickly and integrate your systems more effectively." + +toolchain = {'name': 'cgmvolf', 'version': '1.1.12rc1'} +toolchainopts = {'pic': True, 'opt': True, 'optarch': True} + +numpyversion = '1.6.1' +scipyversion = '0.10.1' + +source_urls = ['http://www.python.org/ftp/%(namelower)s/%(version)s/'] +sources = [SOURCE_TGZ] + +# python needs bzip2 to build the bz2 package +dependencies = [ + ('bzip2', '1.0.6'), + ('zlib', '1.2.7'), + ('libreadline', '6.2'), + ('ncurses', '5.9-20130406'), + # ('OpenSSL', '1.0.1f'), # OS dependency should be preferred for security reasons +] + +osdependencies = [('openssl-devel', 'libssl-dev', 'libopenssl-devel')] + +# order is important! +exts_list = [ + ('setuptools', '0.6c11', { + 'source_urls': ['https://pypi.python.org/packages/source/s/setuptools/'], + }), + ('pip', '1.1', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pip/'], + }), + ('nose', '1.1.2', { + 'source_urls': ['https://pypi.python.org/packages/source/n/nose/'], + }), + ('numpy', numpyversion, { + 'source_urls': [('http://sourceforge.net/projects/numpy/files/NumPy/%s' % numpyversion, 'download')], + 'patches': ['numpy-%s_distutils_multiple-lib-dirs.patch' % numpyversion], + }), + ('scipy', scipyversion, { + 'source_urls': [('http://sourceforge.net/projects/scipy/files/scipy/%s' % scipyversion, 'download')], + }), + ('mpi4py', '1.3', { + 'source_urls': ['http://bitbucket.org/mpi4py/mpi4py/downloads/'], + }), + ('paycheck', '1.0.2', { + 'source_urls': ['https://pypi.python.org/packages/source/p/paycheck/'], + }), + ('argparse', '1.2.1', { + 'source_urls': ['https://pypi.python.org/packages/source/a/argparse/'], + }), + ('lockfile', '0.9.1', { + 'source_urls': ['https://pypi.python.org/packages/source/l/lockfile/'], + }), + ('Cython', '0.17.2', { + 'source_urls': ['http://www.cython.org/release/'], + }), + ('six', '1.1.0', { + 'source_urls': ['https://pypi.python.org/packages/source/s/six/'], + }), + ('dateutil', '2.1', { + 'source_tmpl': 'python-%(name)s-%(version)s.tar.gz', + 'source_urls': ['https://pypi.python.org/packages/source/p/python-dateutil/'], + }), + ('deap', '0.9.1', { + 'source_urls': ['https://pypi.python.org/packages/source/d/deap/'], + }), + ('decorator', '3.4.0', { + 'source_urls': ['https://pypi.python.org/packages/source/d/decorator/'], + }), + ('arff', '1.1', { + 'source_tmpl': 'liac-%(name)s-%(version)s.zip', + 'source_urls': ['https://pypi.python.org/packages/source/l/liac-arff/'], + }), + ('pycrypto', '2.6.1', { + 'modulename': 'Crypto', + 'source_urls': ['http://ftp.dlitz.net/pub/dlitz/crypto/pycrypto/'], + }), + ('ecdsa', '0.8', { + 'source_urls': ['https://pypi.python.org/packages/source/e/ecdsa/'], + }), + ('paramiko', '1.12.0', { + 'source_urls': ['https://pypi.python.org/packages/source/p/paramiko/'], + }), +] + +moduleclass = 'lang' diff --git a/p/Python/Python-2.7.3-cgmvolf-1.2.7.eb b/p/Python/Python-2.7.3-cgmvolf-1.2.7.eb new file mode 100644 index 00000000..8721ba5f --- /dev/null +++ b/p/Python/Python-2.7.3-cgmvolf-1.2.7.eb @@ -0,0 +1,91 @@ +name = 'Python' +version = '2.7.3' + +homepage = 'http://python.org/' +description = "Python is a programming language that lets you work more quickly and integrate your systems more effectively." + +toolchain = {'name': 'cgmvolf', 'version': '1.2.7'} +toolchainopts = {'pic': True, 'opt': True, 'optarch': True} + +numpyversion = '1.6.1' +scipyversion = '0.10.1' + +source_urls = ['http://www.python.org/ftp/%(namelower)s/%(version)s/'] +sources = [SOURCE_TGZ] + +# python needs bzip2 to build the bz2 package +dependencies = [ + ('bzip2', '1.0.6'), + ('zlib', '1.2.7'), + ('libreadline', '6.2'), + ('ncurses', '5.9-20130406'), + # ('OpenSSL', '1.0.1f'), # OS dependency should be preferred for security reasons +] + +osdependencies = [('openssl-devel', 'libssl-dev', 'libopenssl-devel')] + +# order is important! +exts_list = [ + ('setuptools', '0.6c11', { + 'source_urls': ['https://pypi.python.org/packages/source/s/setuptools/'], + }), + ('pip', '1.1', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pip/'], + }), + ('nose', '1.1.2', { + 'source_urls': ['https://pypi.python.org/packages/source/n/nose/'], + }), + ('numpy', numpyversion, { + 'source_urls': [('http://sourceforge.net/projects/numpy/files/NumPy/%s' % numpyversion, 'download')], + 'patches': [ + 'numpy-%s_distutils_multiple-lib-dirs.patch' % numpyversion, + ], + }), + ('scipy', scipyversion, { + 'source_urls': [('http://sourceforge.net/projects/scipy/files/scipy/%s' % scipyversion, 'download')], + }), + ('mpi4py', '1.3', { + 'source_urls': ['http://bitbucket.org/mpi4py/mpi4py/downloads/'], + }), + ('paycheck', '1.0.2', { + 'source_urls': ['https://pypi.python.org/packages/source/p/paycheck/'], + }), + ('argparse', '1.2.1', { + 'source_urls': ['https://pypi.python.org/packages/source/a/argparse/'], + }), + ('lockfile', '0.9.1', { + 'source_urls': ['https://pypi.python.org/packages/source/l/lockfile/'], + }), + ('Cython', '0.17.2', { + 'source_urls': ['http://www.cython.org/release/'], + }), + ('six', '1.1.0', { + 'source_urls': ['https://pypi.python.org/packages/source/s/six/'], + }), + ('dateutil', '2.1', { + 'source_tmpl': 'python-%(name)s-%(version)s.tar.gz', + 'source_urls': ['https://pypi.python.org/packages/source/p/python-dateutil/'], + }), + ('deap', '0.9.1', { + 'source_urls': ['https://pypi.python.org/packages/source/d/deap/'], + }), + ('decorator', '3.4.0', { + 'source_urls': ['https://pypi.python.org/packages/source/d/decorator/'], + }), + ('arff', '1.1', { + 'source_tmpl': 'liac-%(name)s-%(version)s.zip', + 'source_urls': ['https://pypi.python.org/packages/source/l/liac-arff/'], + }), + ('pycrypto', '2.6.1', { + 'modulename': 'Crypto', + 'source_urls': ['http://ftp.dlitz.net/pub/dlitz/crypto/pycrypto/'], + }), + ('ecdsa', '0.8', { + 'source_urls': ['https://pypi.python.org/packages/source/e/ecdsa/'], + }), + ('paramiko', '1.12.0', { + 'source_urls': ['https://pypi.python.org/packages/source/p/paramiko/'], + }), +] + +moduleclass = 'lang' diff --git a/p/Python/Python-2.7.3-cgoolf-1.1.7.eb b/p/Python/Python-2.7.3-cgoolf-1.1.7.eb new file mode 100644 index 00000000..feaf2e76 --- /dev/null +++ b/p/Python/Python-2.7.3-cgoolf-1.1.7.eb @@ -0,0 +1,89 @@ +name = 'Python' +version = '2.7.3' + +homepage = 'http://python.org/' +description = "Python is a programming language that lets you work more quickly and integrate your systems more effectively." + +toolchain = {'name': 'cgoolf', 'version': '1.1.7'} +toolchainopts = {'pic': True, 'opt': True, 'optarch': True} + +numpyversion = '1.6.1' +scipyversion = '0.10.1' + +source_urls = ['http://www.python.org/ftp/%(namelower)s/%(version)s/'] +sources = [SOURCE_TGZ] + +# python needs bzip2 to build the bz2 package +dependencies = [ + ('bzip2', '1.0.6'), + ('zlib', '1.2.7'), + ('libreadline', '6.2'), + ('ncurses', '5.9-20130406'), + # ('OpenSSL', '1.0.1f'), # OS dependency should be preferred for security reasons +] + +osdependencies = [('openssl-devel', 'libssl-dev', 'libopenssl-devel')] + +# order is important! +exts_list = [ + ('setuptools', '0.6c11', { + 'source_urls': ['https://pypi.python.org/packages/source/s/setuptools/'], + }), + ('pip', '1.1', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pip/'], + }), + ('nose', '1.1.2', { + 'source_urls': ['https://pypi.python.org/packages/source/n/nose/'], + }), + ('numpy', numpyversion, { + 'source_urls': [('http://sourceforge.net/projects/numpy/files/NumPy/%s' % numpyversion, 'download')], + 'patches': ['numpy-%s_distutils_multiple-lib-dirs.patch' % numpyversion], + }), + ('scipy', scipyversion, { + 'source_urls': [('http://sourceforge.net/projects/scipy/files/scipy/%s' % scipyversion, 'download')], + }), + ('mpi4py', '1.3', { + 'source_urls': ['http://bitbucket.org/mpi4py/mpi4py/downloads/'], + }), + ('paycheck', '1.0.2', { + 'source_urls': ['https://pypi.python.org/packages/source/p/paycheck/'], + }), + ('argparse', '1.2.1', { + 'source_urls': ['https://pypi.python.org/packages/source/a/argparse/'], + }), + ('lockfile', '0.9.1', { + 'source_urls': ['https://pypi.python.org/packages/source/l/lockfile/'], + }), + ('Cython', '0.17.2', { + 'source_urls': ['http://www.cython.org/release/'], + }), + ('six', '1.1.0', { + 'source_urls': ['https://pypi.python.org/packages/source/s/six/'], + }), + ('dateutil', '2.1', { + 'source_tmpl': 'python-%(name)s-%(version)s.tar.gz', + 'source_urls': ['https://pypi.python.org/packages/source/p/python-dateutil/'], + }), + ('deap', '0.9.1', { + 'source_urls': ['https://pypi.python.org/packages/source/d/deap/'], + }), + ('decorator', '3.4.0', { + 'source_urls': ['https://pypi.python.org/packages/source/d/decorator/'], + }), + ('arff', '1.1', { + 'source_tmpl': 'liac-%(name)s-%(version)s.zip', + 'source_urls': ['https://pypi.python.org/packages/source/l/liac-arff/'], + }), + ('pycrypto', '2.6.1', { + 'modulename': 'Crypto', + 'source_urls': ['http://ftp.dlitz.net/pub/dlitz/crypto/pycrypto/'], + }), + ('ecdsa', '0.8', { + 'source_urls': ['https://pypi.python.org/packages/source/e/ecdsa/'], + }), + ('paramiko', '1.12.0', { + 'source_urls': ['https://pypi.python.org/packages/source/p/paramiko/'], + }), +] + +moduleclass = 'lang' diff --git a/p/Python/Python-2.7.3-foss-2015b.eb b/p/Python/Python-2.7.3-foss-2015b.eb new file mode 100644 index 00000000..7bff3590 --- /dev/null +++ b/p/Python/Python-2.7.3-foss-2015b.eb @@ -0,0 +1,91 @@ +name = 'Python' +version = '2.7.3' + +homepage = 'http://python.org/' +description = "Python is a programming language that lets you work more quickly and integrate your systems more effectively." + +toolchain = {'name': 'foss', 'version': '2015b'} +toolchainopts = {'pic': True, 'opt': True, 'optarch': True} + +numpyversion = '1.6.1' +scipyversion = '0.10.1' + +source_urls = ['http://www.python.org/ftp/%(namelower)s/%(version)s/'] +sources = [SOURCE_TGZ] + +# python needs bzip2 to build the bz2 package +dependencies = [ + ('bzip2', '1.0.6'), + ('zlib', '1.2.8'), + ('libreadline', '6.2'), + ('ncurses', '5.9'), + # ('OpenSSL', '1.0.1f'), # OS dependency should be preferred for security reasons +] + +osdependencies = [('openssl-devel', 'libssl-dev', 'libopenssl-devel')] + +# order is important! +exts_list = [ + ('setuptools', '0.6c11', { + 'source_urls': ['https://pypi.python.org/packages/source/s/setuptools/'], + }), + ('pip', '1.1', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pip/'], + }), + ('nose', '1.1.2', { + 'source_urls': ['https://pypi.python.org/packages/source/n/nose/'], + }), + ('numpy', numpyversion, { + 'source_urls': [('http://sourceforge.net/projects/numpy/files/NumPy/%s' % numpyversion, 'download')], + 'patches': [ + 'numpy-%s_distutils_multiple-lib-dirs.patch' % numpyversion, + ], + }), + ('scipy', scipyversion, { + 'source_urls': [('http://sourceforge.net/projects/scipy/files/scipy/%s' % scipyversion, 'download')], + }), + ('mpi4py', '1.3', { + 'source_urls': ['http://bitbucket.org/mpi4py/mpi4py/downloads/'], + }), + ('paycheck', '1.0.2', { + 'source_urls': ['https://pypi.python.org/packages/source/p/paycheck/'], + }), + ('argparse', '1.2.1', { + 'source_urls': ['https://pypi.python.org/packages/source/a/argparse/'], + }), + ('lockfile', '0.9.1', { + 'source_urls': ['https://pypi.python.org/packages/source/l/lockfile/'], + }), + ('Cython', '0.17.2', { + 'source_urls': ['http://www.cython.org/release/'], + }), + ('six', '1.1.0', { + 'source_urls': ['https://pypi.python.org/packages/source/s/six/'], + }), + ('dateutil', '2.1', { + 'source_tmpl': 'python-%(name)s-%(version)s.tar.gz', + 'source_urls': ['https://pypi.python.org/packages/source/p/python-dateutil/'], + }), + ('deap', '0.9.1', { + 'source_urls': ['https://pypi.python.org/packages/source/d/deap/'], + }), + ('decorator', '3.4.0', { + 'source_urls': ['https://pypi.python.org/packages/source/d/decorator/'], + }), + ('arff', '1.1', { + 'source_tmpl': 'liac-%(name)s-%(version)s.zip', + 'source_urls': ['https://pypi.python.org/packages/source/l/liac-arff/'], + }), + ('pycrypto', '2.6.1', { + 'modulename': 'Crypto', + 'source_urls': ['http://ftp.dlitz.net/pub/dlitz/crypto/pycrypto/'], + }), + ('ecdsa', '0.8', { + 'source_urls': ['https://pypi.python.org/packages/source/e/ecdsa/'], + }), + ('paramiko', '1.12.0', { + 'source_urls': ['https://pypi.python.org/packages/source/p/paramiko/'], + }), +] + +moduleclass = 'lang' diff --git a/p/Python/Python-2.7.3-gmpolf-1.4.8.eb b/p/Python/Python-2.7.3-gmpolf-1.4.8.eb new file mode 100644 index 00000000..6bbc4316 --- /dev/null +++ b/p/Python/Python-2.7.3-gmpolf-1.4.8.eb @@ -0,0 +1,91 @@ +name = 'Python' +version = '2.7.3' + +homepage = 'http://python.org/' +description = "Python is a programming language that lets you work more quickly and integrate your systems more effectively." + +toolchain = {'name': 'gmpolf', 'version': '1.4.8'} +toolchainopts = {'pic': True, 'opt': True, 'optarch': True} + +numpyversion = '1.6.1' +scipyversion = '0.10.1' + +source_urls = ['http://www.python.org/ftp/%(namelower)s/%(version)s/'] +sources = [SOURCE_TGZ] + +# python needs bzip2 to build the bz2 package +dependencies = [ + ('bzip2', '1.0.6'), + ('zlib', '1.2.7'), + ('libreadline', '6.2'), + ('ncurses', '5.9'), + # ('OpenSSL', '1.0.1f'), # OS dependency should be preferred for security reasons +] + +osdependencies = [('openssl-devel', 'libssl-dev', 'libopenssl-devel')] + +# order is important! +exts_list = [ + ('setuptools', '0.6c11', { + 'source_urls': ['https://pypi.python.org/packages/source/s/setuptools/'], + }), + ('pip', '1.1', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pip/'], + }), + ('nose', '1.1.2', { + 'source_urls': ['https://pypi.python.org/packages/source/n/nose/'], + }), + ('numpy', numpyversion, { + 'source_urls': [('http://sourceforge.net/projects/numpy/files/NumPy/%s' % numpyversion, 'download')], + 'patches': [ + 'numpy-%s_distutils_multiple-lib-dirs.patch' % numpyversion, + ], + }), + ('scipy', scipyversion, { + 'source_urls': [('http://sourceforge.net/projects/scipy/files/scipy/%s' % scipyversion, 'download')], + }), + ('mpi4py', '1.3', { + 'source_urls': ['http://bitbucket.org/mpi4py/mpi4py/downloads/'], + }), + ('paycheck', '1.0.2', { + 'source_urls': ['https://pypi.python.org/packages/source/p/paycheck/'], + }), + ('argparse', '1.2.1', { + 'source_urls': ['https://pypi.python.org/packages/source/a/argparse/'], + }), + ('lockfile', '0.9.1', { + 'source_urls': ['https://pypi.python.org/packages/source/l/lockfile/'], + }), + ('Cython', '0.17.2', { + 'source_urls': ['http://www.cython.org/release/'], + }), + ('six', '1.1.0', { + 'source_urls': ['https://pypi.python.org/packages/source/s/six/'], + }), + ('dateutil', '2.1', { + 'source_tmpl': 'python-%(name)s-%(version)s.tar.gz', + 'source_urls': ['https://pypi.python.org/packages/source/p/python-dateutil/'], + }), + ('deap', '0.9.1', { + 'source_urls': ['https://pypi.python.org/packages/source/d/deap/'], + }), + ('decorator', '3.4.0', { + 'source_urls': ['https://pypi.python.org/packages/source/d/decorator/'], + }), + ('arff', '1.1', { + 'source_tmpl': 'liac-%(name)s-%(version)s.zip', + 'source_urls': ['https://pypi.python.org/packages/source/l/liac-arff/'], + }), + ('pycrypto', '2.6.1', { + 'modulename': 'Crypto', + 'source_urls': ['http://ftp.dlitz.net/pub/dlitz/crypto/pycrypto/'], + }), + ('ecdsa', '0.8', { + 'source_urls': ['https://pypi.python.org/packages/source/e/ecdsa/'], + }), + ('paramiko', '1.12.0', { + 'source_urls': ['https://pypi.python.org/packages/source/p/paramiko/'], + }), +] + +moduleclass = 'lang' diff --git a/p/Python/Python-2.7.3-gmvolf-1.7.12.eb b/p/Python/Python-2.7.3-gmvolf-1.7.12.eb new file mode 100644 index 00000000..b6713093 --- /dev/null +++ b/p/Python/Python-2.7.3-gmvolf-1.7.12.eb @@ -0,0 +1,91 @@ +name = 'Python' +version = '2.7.3' + +homepage = 'http://python.org/' +description = "Python is a programming language that lets you work more quickly and integrate your systems more effectively." + +toolchain = {'name': 'gmvolf', 'version': '1.7.12'} +toolchainopts = {'pic': True, 'opt': True, 'optarch': True} + +numpyversion = '1.6.1' +scipyversion = '0.10.1' + +source_urls = ['http://www.python.org/ftp/%(namelower)s/%(version)s/'] +sources = [SOURCE_TGZ] + +# python needs bzip2 to build the bz2 package +dependencies = [ + ('bzip2', '1.0.6'), + ('zlib', '1.2.7'), + ('libreadline', '6.2'), + ('ncurses', '5.9-20130406'), + # ('OpenSSL', '1.0.1f'), # OS dependency should be preferred for security reasons +] + +osdependencies = [('openssl-devel', 'libssl-dev', 'libopenssl-devel')] + +# order is important! +exts_list = [ + ('setuptools', '0.6c11', { + 'source_urls': ['https://pypi.python.org/packages/source/s/setuptools/'], + }), + ('pip', '1.1', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pip/'], + }), + ('nose', '1.1.2', { + 'source_urls': ['https://pypi.python.org/packages/source/n/nose/'], + }), + ('numpy', numpyversion, { + 'source_urls': [('http://sourceforge.net/projects/numpy/files/NumPy/%s' % numpyversion, 'download')], + 'patches': [ + 'numpy-%s_distutils_multiple-lib-dirs.patch' % numpyversion, + ], + }), + ('scipy', scipyversion, { + 'source_urls': [('http://sourceforge.net/projects/scipy/files/scipy/%s' % scipyversion, 'download')], + }), + ('mpi4py', '1.3', { + 'source_urls': ['http://bitbucket.org/mpi4py/mpi4py/downloads/'], + }), + ('paycheck', '1.0.2', { + 'source_urls': ['https://pypi.python.org/packages/source/p/paycheck/'], + }), + ('argparse', '1.2.1', { + 'source_urls': ['https://pypi.python.org/packages/source/a/argparse/'], + }), + ('lockfile', '0.9.1', { + 'source_urls': ['https://pypi.python.org/packages/source/l/lockfile/'], + }), + ('Cython', '0.17.2', { + 'source_urls': ['http://www.cython.org/release/'], + }), + ('six', '1.1.0', { + 'source_urls': ['https://pypi.python.org/packages/source/s/six/'], + }), + ('dateutil', '2.1', { + 'source_tmpl': 'python-%(name)s-%(version)s.tar.gz', + 'source_urls': ['https://pypi.python.org/packages/source/p/python-dateutil/'], + }), + ('deap', '0.9.1', { + 'source_urls': ['https://pypi.python.org/packages/source/d/deap/'], + }), + ('decorator', '3.4.0', { + 'source_urls': ['https://pypi.python.org/packages/source/d/decorator/'], + }), + ('arff', '1.1', { + 'source_tmpl': 'liac-%(name)s-%(version)s.zip', + 'source_urls': ['https://pypi.python.org/packages/source/l/liac-arff/'], + }), + ('pycrypto', '2.6.1', { + 'modulename': 'Crypto', + 'source_urls': ['http://ftp.dlitz.net/pub/dlitz/crypto/pycrypto/'], + }), + ('ecdsa', '0.8', { + 'source_urls': ['https://pypi.python.org/packages/source/e/ecdsa/'], + }), + ('paramiko', '1.12.0', { + 'source_urls': ['https://pypi.python.org/packages/source/p/paramiko/'], + }), +] + +moduleclass = 'lang' diff --git a/p/Python/Python-2.7.3-gmvolf-1.7.12rc1.eb b/p/Python/Python-2.7.3-gmvolf-1.7.12rc1.eb new file mode 100644 index 00000000..383cedbc --- /dev/null +++ b/p/Python/Python-2.7.3-gmvolf-1.7.12rc1.eb @@ -0,0 +1,91 @@ +name = 'Python' +version = '2.7.3' + +homepage = 'http://python.org/' +description = "Python is a programming language that lets you work more quickly and integrate your systems more effectively." + +toolchain = {'name': 'gmvolf', 'version': '1.7.12rc1'} +toolchainopts = {'pic': True, 'opt': True, 'optarch': True} + +numpyversion = '1.6.1' +scipyversion = '0.10.1' + +source_urls = ['http://www.python.org/ftp/%(namelower)s/%(version)s/'] +sources = [SOURCE_TGZ] + +# python needs bzip2 to build the bz2 package +dependencies = [ + ('bzip2', '1.0.6'), + ('zlib', '1.2.7'), + ('libreadline', '6.2'), + ('ncurses', '5.9-20130406'), + # ('OpenSSL', '1.0.1f'), # OS dependency should be preferred for security reasons +] + +osdependencies = [('openssl-devel', 'libssl-dev', 'libopenssl-devel')] + +# order is important! +exts_list = [ + ('setuptools', '0.6c11', { + 'source_urls': ['https://pypi.python.org/packages/source/s/setuptools/'], + }), + ('pip', '1.1', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pip/'], + }), + ('nose', '1.1.2', { + 'source_urls': ['https://pypi.python.org/packages/source/n/nose/'], + }), + ('numpy', numpyversion, { + 'source_urls': [('http://sourceforge.net/projects/numpy/files/NumPy/%s' % numpyversion, 'download')], + 'patches': [ + 'numpy-%s_distutils_multiple-lib-dirs.patch' % numpyversion, + ], + }), + ('scipy', scipyversion, { + 'source_urls': [('http://sourceforge.net/projects/scipy/files/scipy/%s' % scipyversion, 'download')], + }), + ('mpi4py', '1.3', { + 'source_urls': ['http://bitbucket.org/mpi4py/mpi4py/downloads/'], + }), + ('paycheck', '1.0.2', { + 'source_urls': ['https://pypi.python.org/packages/source/p/paycheck/'], + }), + ('argparse', '1.2.1', { + 'source_urls': ['https://pypi.python.org/packages/source/a/argparse/'], + }), + ('lockfile', '0.9.1', { + 'source_urls': ['https://pypi.python.org/packages/source/l/lockfile/'], + }), + ('Cython', '0.17.2', { + 'source_urls': ['http://www.cython.org/release/'], + }), + ('six', '1.1.0', { + 'source_urls': ['https://pypi.python.org/packages/source/s/six/'], + }), + ('dateutil', '2.1', { + 'source_tmpl': 'python-%(name)s-%(version)s.tar.gz', + 'source_urls': ['https://pypi.python.org/packages/source/p/python-dateutil/'], + }), + ('deap', '0.9.1', { + 'source_urls': ['https://pypi.python.org/packages/source/d/deap/'], + }), + ('decorator', '3.4.0', { + 'source_urls': ['https://pypi.python.org/packages/source/d/decorator/'], + }), + ('arff', '1.1', { + 'source_tmpl': 'liac-%(name)s-%(version)s.zip', + 'source_urls': ['https://pypi.python.org/packages/source/l/liac-arff/'], + }), + ('pycrypto', '2.6.1', { + 'modulename': 'Crypto', + 'source_urls': ['http://ftp.dlitz.net/pub/dlitz/crypto/pycrypto/'], + }), + ('ecdsa', '0.8', { + 'source_urls': ['https://pypi.python.org/packages/source/e/ecdsa/'], + }), + ('paramiko', '1.12.0', { + 'source_urls': ['https://pypi.python.org/packages/source/p/paramiko/'], + }), +] + +moduleclass = 'lang' diff --git a/p/Python/Python-2.7.3-goalf-1.1.0-no-OFED.eb b/p/Python/Python-2.7.3-goalf-1.1.0-no-OFED.eb new file mode 100644 index 00000000..ffaa43d1 --- /dev/null +++ b/p/Python/Python-2.7.3-goalf-1.1.0-no-OFED.eb @@ -0,0 +1,91 @@ +name = 'Python' +version = '2.7.3' + +homepage = 'http://python.org/' +description = "Python is a programming language that lets you work more quickly and integrate your systems more effectively." + +toolchain = {'name': 'goalf', 'version': '1.1.0-no-OFED'} +toolchainopts = {'pic': True, 'opt': True, 'optarch': True} + +numpyversion = '1.6.1' +scipyversion = '0.10.1' + +source_urls = ['http://www.python.org/ftp/%(namelower)s/%(version)s/'] +sources = [SOURCE_TGZ] + +# python needs bzip2 to build the bz2 package +dependencies = [ + ('bzip2', '1.0.6'), + ('zlib', '1.2.7'), + ('libreadline', '6.2'), + ('ncurses', '5.9'), + # ('OpenSSL', '1.0.1f'), # OS dependency should be preferred for security reasons +] + +osdependencies = [('openssl-devel', 'libssl-dev', 'libopenssl-devel')] + +# order is important! +exts_list = [ + ('setuptools', '0.6c11', { + 'source_urls': ['https://pypi.python.org/packages/source/s/setuptools/'], + }), + ('pip', '1.1', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pip/'], + }), + ('nose', '1.1.2', { + 'source_urls': ['https://pypi.python.org/packages/source/n/nose/'], + }), + ('numpy', numpyversion, { + 'source_urls': [('http://sourceforge.net/projects/numpy/files/NumPy/%s' % numpyversion, 'download')], + 'patches': [ + 'numpy-%s_distutils_multiple-lib-dirs.patch' % numpyversion, + ], + }), + ('scipy', scipyversion, { + 'source_urls': [('http://sourceforge.net/projects/scipy/files/scipy/%s' % scipyversion, 'download')], + }), + ('mpi4py', '1.3', { + 'source_urls': ['http://bitbucket.org/mpi4py/mpi4py/downloads/'], + }), + ('paycheck', '1.0.2', { + 'source_urls': ['https://pypi.python.org/packages/source/p/paycheck/'], + }), + ('argparse', '1.2.1', { + 'source_urls': ['https://pypi.python.org/packages/source/a/argparse/'], + }), + ('lockfile', '0.9.1', { + 'source_urls': ['https://pypi.python.org/packages/source/l/lockfile/'], + }), + ('Cython', '0.17.2', { + 'source_urls': ['http://www.cython.org/release/'], + }), + ('six', '1.1.0', { + 'source_urls': ['https://pypi.python.org/packages/source/s/six/'], + }), + ('dateutil', '2.1', { + 'source_tmpl': 'python-%(name)s-%(version)s.tar.gz', + 'source_urls': ['https://pypi.python.org/packages/source/p/python-dateutil/'], + }), + ('deap', '0.9.1', { + 'source_urls': ['https://pypi.python.org/packages/source/d/deap/'], + }), + ('decorator', '3.4.0', { + 'source_urls': ['https://pypi.python.org/packages/source/d/decorator/'], + }), + ('arff', '1.1', { + 'source_tmpl': 'liac-%(name)s-%(version)s.zip', + 'source_urls': ['https://pypi.python.org/packages/source/l/liac-arff/'], + }), + ('pycrypto', '2.6.1', { + 'modulename': 'Crypto', + 'source_urls': ['http://ftp.dlitz.net/pub/dlitz/crypto/pycrypto/'], + }), + ('ecdsa', '0.8', { + 'source_urls': ['https://pypi.python.org/packages/source/e/ecdsa/'], + }), + ('paramiko', '1.12.0', { + 'source_urls': ['https://pypi.python.org/packages/source/p/paramiko/'], + }), +] + +moduleclass = 'lang' diff --git a/p/Python/Python-2.7.3-goolf-1.4.10.eb b/p/Python/Python-2.7.3-goolf-1.4.10.eb new file mode 100644 index 00000000..b20ffd67 --- /dev/null +++ b/p/Python/Python-2.7.3-goolf-1.4.10.eb @@ -0,0 +1,91 @@ +name = 'Python' +version = '2.7.3' + +homepage = 'http://python.org/' +description = "Python is a programming language that lets you work more quickly and integrate your systems more effectively." + +toolchain = {'name': 'goolf', 'version': '1.4.10'} +toolchainopts = {'pic': True, 'opt': True, 'optarch': True} + +numpyversion = '1.6.1' +scipyversion = '0.10.1' + +source_urls = ['http://www.python.org/ftp/%(namelower)s/%(version)s/'] +sources = [SOURCE_TGZ] + +# python needs bzip2 to build the bz2 package +dependencies = [ + ('bzip2', '1.0.6'), + ('zlib', '1.2.7'), + ('libreadline', '6.2'), + ('ncurses', '5.9'), + # ('OpenSSL', '1.0.1f'), # OS dependency should be preferred for security reasons +] + +osdependencies = [('openssl-devel', 'libssl-dev', 'libopenssl-devel')] + +# order is important! +exts_list = [ + ('setuptools', '0.6c11', { + 'source_urls': ['https://pypi.python.org/packages/source/s/setuptools/'], + }), + ('pip', '1.1', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pip/'], + }), + ('nose', '1.1.2', { + 'source_urls': ['https://pypi.python.org/packages/source/n/nose/'], + }), + ('numpy', numpyversion, { + 'source_urls': [('http://sourceforge.net/projects/numpy/files/NumPy/%s' % numpyversion, 'download')], + 'patches': [ + 'numpy-%s_distutils_multiple-lib-dirs.patch' % numpyversion, + ], + }), + ('scipy', scipyversion, { + 'source_urls': [('http://sourceforge.net/projects/scipy/files/scipy/%s' % scipyversion, 'download')], + }), + ('mpi4py', '1.3', { + 'source_urls': ['http://bitbucket.org/mpi4py/mpi4py/downloads/'], + }), + ('paycheck', '1.0.2', { + 'source_urls': ['https://pypi.python.org/packages/source/p/paycheck/'], + }), + ('argparse', '1.2.1', { + 'source_urls': ['https://pypi.python.org/packages/source/a/argparse/'], + }), + ('lockfile', '0.9.1', { + 'source_urls': ['https://pypi.python.org/packages/source/l/lockfile/'], + }), + ('Cython', '0.17.2', { + 'source_urls': ['http://www.cython.org/release/'], + }), + ('six', '1.1.0', { + 'source_urls': ['https://pypi.python.org/packages/source/s/six/'], + }), + ('dateutil', '2.1', { + 'source_tmpl': 'python-%(name)s-%(version)s.tar.gz', + 'source_urls': ['https://pypi.python.org/packages/source/p/python-dateutil/'], + }), + ('deap', '0.9.1', { + 'source_urls': ['https://pypi.python.org/packages/source/d/deap/'], + }), + ('decorator', '3.4.0', { + 'source_urls': ['https://pypi.python.org/packages/source/d/decorator/'], + }), + ('arff', '1.1', { + 'source_tmpl': 'liac-%(name)s-%(version)s.zip', + 'source_urls': ['https://pypi.python.org/packages/source/l/liac-arff/'], + }), + ('pycrypto', '2.6.1', { + 'modulename': 'Crypto', + 'source_urls': ['http://ftp.dlitz.net/pub/dlitz/crypto/pycrypto/'], + }), + ('ecdsa', '0.8', { + 'source_urls': ['https://pypi.python.org/packages/source/e/ecdsa/'], + }), + ('paramiko', '1.12.0', { + 'source_urls': ['https://pypi.python.org/packages/source/p/paramiko/'], + }), +] + +moduleclass = 'lang' diff --git a/p/Python/Python-2.7.3-goolf-1.5.14.eb b/p/Python/Python-2.7.3-goolf-1.5.14.eb new file mode 100644 index 00000000..e087117a --- /dev/null +++ b/p/Python/Python-2.7.3-goolf-1.5.14.eb @@ -0,0 +1,91 @@ +name = 'Python' +version = '2.7.3' + +homepage = 'http://python.org/' +description = "Python is a programming language that lets you work more quickly and integrate your systems more effectively." + +toolchain = {'name': 'goolf', 'version': '1.5.14'} +toolchainopts = {'pic': True, 'opt': True, 'optarch': True} + +numpyversion = '1.6.1' +scipyversion = '0.10.1' + +source_urls = ['http://www.python.org/ftp/%(namelower)s/%(version)s/'] +sources = [SOURCE_TGZ] + +# python needs bzip2 to build the bz2 package +dependencies = [ + ('bzip2', '1.0.6'), + ('zlib', '1.2.7'), + ('libreadline', '6.2'), + ('ncurses', '5.9'), + # ('OpenSSL', '1.0.1f'), # OS dependency should be preferred for security reasons +] + +osdependencies = [('openssl-devel', 'libssl-dev', 'libopenssl-devel')] + +# order is important! +exts_list = [ + ('setuptools', '0.6c11', { + 'source_urls': ['https://pypi.python.org/packages/source/s/setuptools/'], + }), + ('pip', '1.1', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pip/'], + }), + ('nose', '1.1.2', { + 'source_urls': ['https://pypi.python.org/packages/source/n/nose/'], + }), + ('numpy', numpyversion, { + 'source_urls': [('http://sourceforge.net/projects/numpy/files/NumPy/%s' % numpyversion, 'download')], + 'patches': [ + 'numpy-%s_distutils_multiple-lib-dirs.patch' % numpyversion, + ], + }), + ('scipy', scipyversion, { + 'source_urls': [('http://sourceforge.net/projects/scipy/files/scipy/%s' % scipyversion, 'download')], + }), + ('mpi4py', '1.3', { + 'source_urls': ['http://bitbucket.org/mpi4py/mpi4py/downloads/'], + }), + ('paycheck', '1.0.2', { + 'source_urls': ['https://pypi.python.org/packages/source/p/paycheck/'], + }), + ('argparse', '1.2.1', { + 'source_urls': ['https://pypi.python.org/packages/source/a/argparse/'], + }), + ('lockfile', '0.9.1', { + 'source_urls': ['https://pypi.python.org/packages/source/l/lockfile/'], + }), + ('Cython', '0.17.2', { + 'source_urls': ['http://www.cython.org/release/'], + }), + ('six', '1.1.0', { + 'source_urls': ['https://pypi.python.org/packages/source/s/six/'], + }), + ('dateutil', '2.1', { + 'source_tmpl': 'python-%(name)s-%(version)s.tar.gz', + 'source_urls': ['https://pypi.python.org/packages/source/p/python-dateutil/'], + }), + ('deap', '0.9.1', { + 'source_urls': ['https://pypi.python.org/packages/source/d/deap/'], + }), + ('decorator', '3.4.0', { + 'source_urls': ['https://pypi.python.org/packages/source/d/decorator/'], + }), + ('arff', '1.1', { + 'source_tmpl': 'liac-%(name)s-%(version)s.zip', + 'source_urls': ['https://pypi.python.org/packages/source/l/liac-arff/'], + }), + ('pycrypto', '2.6.1', { + 'modulename': 'Crypto', + 'source_urls': ['http://ftp.dlitz.net/pub/dlitz/crypto/pycrypto/'], + }), + ('ecdsa', '0.8', { + 'source_urls': ['https://pypi.python.org/packages/source/e/ecdsa/'], + }), + ('paramiko', '1.12.0', { + 'source_urls': ['https://pypi.python.org/packages/source/p/paramiko/'], + }), +] + +moduleclass = 'lang' diff --git a/p/Python/Python-2.7.3-goolf-1.5.16.eb b/p/Python/Python-2.7.3-goolf-1.5.16.eb new file mode 100644 index 00000000..c319ed15 --- /dev/null +++ b/p/Python/Python-2.7.3-goolf-1.5.16.eb @@ -0,0 +1,91 @@ +name = 'Python' +version = '2.7.3' + +homepage = 'http://python.org/' +description = "Python is a programming language that lets you work more quickly and integrate your systems more effectively." + +toolchain = {'name': 'goolf', 'version': '1.5.16'} +toolchainopts = {'pic': True, 'opt': True, 'optarch': True} + +numpyversion = '1.6.1' +scipyversion = '0.10.1' + +source_urls = ['http://www.python.org/ftp/%(namelower)s/%(version)s/'] +sources = [SOURCE_TGZ] + +# python needs bzip2 to build the bz2 package +dependencies = [ + ('bzip2', '1.0.6'), + ('zlib', '1.2.7'), + ('libreadline', '6.2'), + ('ncurses', '5.9'), +# ('OpenSSL', '1.0.1f'), # OS dependency should be preferred for security reasons +] + +osdependencies = [('openssl-devel', 'libssl-dev', 'libopenssl-devel')] + +# order is important! +exts_list = [ + ('setuptools', '0.6c11', { + 'source_urls': ['http://pypi.python.org/packages/source/s/setuptools/'], + }), + ('pip', '1.1', { + 'source_urls': ['http://pypi.python.org/packages/source/p/pip/'], + }), + ('nose', '1.1.2', { + 'source_urls': ['http://pypi.python.org/packages/source/n/nose/'], + }), + ('numpy', numpyversion, { + 'source_urls': [('http://sourceforge.net/projects/numpy/files/NumPy/%s' % numpyversion, 'download')], + 'patches': [ + 'numpy-%s_distutils_multiple-lib-dirs.patch' % numpyversion, + ], + }), + ('scipy', scipyversion, { + 'source_urls': [('http://sourceforge.net/projects/scipy/files/scipy/%s' % scipyversion, 'download')], + }), + ('mpi4py', '1.3', { + 'source_urls': ['http://bitbucket.org/mpi4py/mpi4py/downloads/'], + }), + ('paycheck', '1.0.2', { + 'source_urls': ['http://pypi.python.org/packages/source/p/paycheck/'], + }), + ('argparse', '1.2.1', { + 'source_urls': ['http://argparse.googlecode.com/files/'], + }), + ('lockfile', '0.9.1', { + 'source_urls': ['https://pypi.python.org/packages/source/l/lockfile/'], + }), + ('Cython', '0.17.2', { + 'source_urls': ['http://www.cython.org/release/'], + }), + ('six', '1.1.0', { + 'source_urls': ['https://pypi.python.org/packages/source/s/six/'], + }), + ('dateutil', '2.1', { + 'source_tmpl': 'python-%(name)s-%(version)s.tar.gz', + 'source_urls': ['http://pypi.python.org/packages/source/p/python-dateutil/'], + }), + ('deap', '0.9.1', { + 'source_urls': ['https://deap.googlecode.com/files/'], + }), + ('decorator', '3.4.0', { + 'source_urls': ['https://pypi.python.org/packages/source/d/decorator/'], + }), + ('arff', '1.1', { + 'source_tmpl': 'liac-%(name)s-%(version)s.zip', + 'source_urls': ['https://pypi.python.org/packages/source/l/liac-arff/'], + }), + ('pycrypto', '2.6.1', { + 'modulename': 'Crypto', + 'source_urls': ['http://ftp.dlitz.net/pub/dlitz/crypto/pycrypto/'], + }), + ('ecdsa', '0.8', { + 'source_urls': ['https://pypi.python.org/packages/source/e/ecdsa/'], + }), + ('paramiko', '1.12.0', { + 'source_urls': ['https://pypi.python.org/packages/source/p/paramiko/'], + }), +] + +moduleclass = 'lang' diff --git a/p/Python/Python-2.7.3-ictce-4.0.6.eb b/p/Python/Python-2.7.3-ictce-4.0.6.eb new file mode 100644 index 00000000..04f04936 --- /dev/null +++ b/p/Python/Python-2.7.3-ictce-4.0.6.eb @@ -0,0 +1,91 @@ +name = 'Python' +version = '2.7.3' + +homepage = 'http://python.org/' +description = "Python is a programming language that lets you work more quickly and integrate your systems more effectively." + +toolchain = {'name': 'ictce', 'version': '4.0.6'} +toolchainopts = {'pic': True, 'opt': True, 'optarch': True} + +numpyversion = '1.6.1' +scipyversion = '0.10.1' + +source_urls = ['http://www.python.org/ftp/%(namelower)s/%(version)s/'] +sources = [SOURCE_TGZ] + +patches = ['python_libffi_int128_icc.patch'] + +# python needs bzip2 to build the bz2 package +dependencies = [ + ('bzip2', '1.0.6'), + ('zlib', '1.2.7'), + ('libreadline', '6.2'), + ('ncurses', '5.9'), + # ('OpenSSL', '1.0.1f'), # OS dependency should be preferred for security reasons +] + +osdependencies = [('openssl-devel', 'libssl-dev', 'libopenssl-devel')] + +# order is important! +exts_list = [ + ('setuptools', '0.6c11', { + 'source_urls': ['https://pypi.python.org/packages/source/s/setuptools/'], + }), + ('pip', '1.1', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pip/'], + }), + ('nose', '1.1.2', { + 'source_urls': ['https://pypi.python.org/packages/source/n/nose/'], + }), + ('numpy', numpyversion, { + 'source_urls': [('http://sourceforge.net/projects/numpy/files/NumPy/%s' % numpyversion, 'download')], + 'patches': ['numpy-%s_distutils_multiple-lib-dirs.patch' % numpyversion], + }), + ('scipy', scipyversion, { + 'source_urls': [('http://sourceforge.net/projects/scipy/files/scipy/%s' % scipyversion, 'download')], + }), + ('mpi4py', '1.3', { + 'source_urls': ['http://bitbucket.org/mpi4py/mpi4py/downloads/'], + }), + ('paycheck', '1.0.2', { + 'source_urls': ['https://pypi.python.org/packages/source/p/paycheck/'], + }), + ('argparse', '1.2.1', { + 'source_urls': ['https://pypi.python.org/packages/source/a/argparse/'], + }), + ('lockfile', '0.9.1', { + 'source_urls': ['https://pypi.python.org/packages/source/l/lockfile/'], + }), + ('Cython', '0.17.2', { + 'source_urls': ['http://www.cython.org/release/'], + }), + ('six', '1.1.0', { + 'source_urls': ['https://pypi.python.org/packages/source/s/six/'], + }), + ('dateutil', '2.1', { + 'source_tmpl': 'python-%(name)s-%(version)s.tar.gz', + 'source_urls': ['https://pypi.python.org/packages/source/p/python-dateutil/'], + }), + ('deap', '0.9.1', { + 'source_urls': ['https://pypi.python.org/packages/source/d/deap/'], + }), + ('decorator', '3.4.0', { + 'source_urls': ['https://pypi.python.org/packages/source/d/decorator/'], + }), + ('arff', '1.1', { + 'source_tmpl': 'liac-%(name)s-%(version)s.zip', + 'source_urls': ['https://pypi.python.org/packages/source/l/liac-arff/'], + }), + ('pycrypto', '2.6.1', { + 'modulename': 'Crypto', + 'source_urls': ['http://ftp.dlitz.net/pub/dlitz/crypto/pycrypto/'], + }), + ('ecdsa', '0.8', { + 'source_urls': ['https://pypi.python.org/packages/source/e/ecdsa/'], + }), + ('paramiko', '1.12.0', { + 'source_urls': ['https://pypi.python.org/packages/source/p/paramiko/'], + }), +] + +moduleclass = 'lang' diff --git a/p/Python/Python-2.7.3-ictce-4.1.13.eb b/p/Python/Python-2.7.3-ictce-4.1.13.eb new file mode 100644 index 00000000..f3c7ccd4 --- /dev/null +++ b/p/Python/Python-2.7.3-ictce-4.1.13.eb @@ -0,0 +1,91 @@ +name = 'Python' +version = '2.7.3' + +homepage = 'http://python.org/' +description = "Python is a programming language that lets you work more quickly and integrate your systems more effectively." + +toolchain = {'name': 'ictce', 'version': '4.1.13'} +toolchainopts = {'pic': True, 'opt': True, 'optarch': True} + +numpyversion = '1.6.1' +scipyversion = '0.10.1' + +source_urls = ['http://www.python.org/ftp/%(namelower)s/%(version)s/'] +sources = [SOURCE_TGZ] + +patches = ['python_libffi_int128_icc.patch'] + +# python needs bzip2 to build the bz2 package +dependencies = [ + ('bzip2', '1.0.6'), + ('zlib', '1.2.7'), + ('libreadline', '6.2'), + ('ncurses', '5.9'), + # ('OpenSSL', '1.0.1f'), # OS dependency should be preferred for security reasons +] + +osdependencies = [('openssl-devel', 'libssl-dev', 'libopenssl-devel')] + +# order is important! +exts_list = [ + ('setuptools', '0.6c11', { + 'source_urls': ['https://pypi.python.org/packages/source/s/setuptools/'], + }), + ('pip', '1.1', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pip/'], + }), + ('nose', '1.1.2', { + 'source_urls': ['https://pypi.python.org/packages/source/n/nose/'], + }), + ('numpy', numpyversion, { + 'source_urls': [('http://sourceforge.net/projects/numpy/files/NumPy/%s' % numpyversion, 'download')], + 'patches': ['numpy-%s_distutils_multiple-lib-dirs.patch' % numpyversion], + }), + ('scipy', scipyversion, { + 'source_urls': [('http://sourceforge.net/projects/scipy/files/scipy/%s' % scipyversion, 'download')], + }), + ('mpi4py', '1.3', { + 'source_urls': ['http://bitbucket.org/mpi4py/mpi4py/downloads/'], + }), + ('paycheck', '1.0.2', { + 'source_urls': ['https://pypi.python.org/packages/source/p/paycheck/'], + }), + ('argparse', '1.2.1', { + 'source_urls': ['https://pypi.python.org/packages/source/a/argparse/'], + }), + ('lockfile', '0.9.1', { + 'source_urls': ['https://pypi.python.org/packages/source/l/lockfile/'], + }), + ('Cython', '0.17.2', { + 'source_urls': ['http://www.cython.org/release/'], + }), + ('six', '1.1.0', { + 'source_urls': ['https://pypi.python.org/packages/source/s/six/'], + }), + ('dateutil', '2.1', { + 'source_tmpl': 'python-%(name)s-%(version)s.tar.gz', + 'source_urls': ['https://pypi.python.org/packages/source/p/python-dateutil/'], + }), + ('deap', '0.9.1', { + 'source_urls': ['https://pypi.python.org/packages/source/d/deap/'], + }), + ('decorator', '3.4.0', { + 'source_urls': ['https://pypi.python.org/packages/source/d/decorator/'], + }), + ('arff', '1.1', { + 'source_tmpl': 'liac-%(name)s-%(version)s.zip', + 'source_urls': ['https://pypi.python.org/packages/source/l/liac-arff/'], + }), + ('pycrypto', '2.6.1', { + 'modulename': 'Crypto', + 'source_urls': ['http://ftp.dlitz.net/pub/dlitz/crypto/pycrypto/'], + }), + ('ecdsa', '0.8', { + 'source_urls': ['https://pypi.python.org/packages/source/e/ecdsa/'], + }), + ('paramiko', '1.12.0', { + 'source_urls': ['https://pypi.python.org/packages/source/p/paramiko/'], + }), +] + +moduleclass = 'lang' diff --git a/p/Python/Python-2.7.3-ictce-5.2.0.eb b/p/Python/Python-2.7.3-ictce-5.2.0.eb new file mode 100644 index 00000000..65a7050c --- /dev/null +++ b/p/Python/Python-2.7.3-ictce-5.2.0.eb @@ -0,0 +1,89 @@ +name = 'Python' +version = '2.7.3' + +homepage = 'http://python.org/' +description = "Python is a programming language that lets you work more quickly and integrate your systems more effectively." + +toolchain = {'name': 'ictce', 'version': '5.2.0'} +toolchainopts = {'pic': True, 'opt': True, 'optarch': True} + +numpyversion = '1.6.1' +scipyversion = '0.10.1' + +source_urls = ['http://www.python.org/ftp/%(namelower)s/%(version)s/'] +sources = [SOURCE_TGZ] + +# python needs bzip2 to build the bz2 package +dependencies = [ + ('bzip2', '1.0.6'), + ('zlib', '1.2.7'), + ('libreadline', '6.2'), + ('ncurses', '5.9'), + # ('OpenSSL', '1.0.1f'), # OS dependency should be preferred for security reasons +] + +osdependencies = [('openssl-devel', 'libssl-dev', 'libopenssl-devel')] + +# order is important! +exts_list = [ + ('setuptools', '0.6c11', { + 'source_urls': ['https://pypi.python.org/packages/source/s/setuptools/'], + }), + ('pip', '1.1', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pip/'], + }), + ('nose', '1.1.2', { + 'source_urls': ['https://pypi.python.org/packages/source/n/nose/'], + }), + ('numpy', numpyversion, { + 'source_urls': [('http://sourceforge.net/projects/numpy/files/NumPy/%s' % numpyversion, 'download')], + 'patches': ['numpy-%s_distutils_multiple-lib-dirs.patch' % numpyversion], + }), + ('scipy', scipyversion, { + 'source_urls': [('http://sourceforge.net/projects/scipy/files/scipy/%s' % scipyversion, 'download')], + }), + ('mpi4py', '1.3', { + 'source_urls': ['http://bitbucket.org/mpi4py/mpi4py/downloads/'], + }), + ('paycheck', '1.0.2', { + 'source_urls': ['https://pypi.python.org/packages/source/p/paycheck/'], + }), + ('argparse', '1.2.1', { + 'source_urls': ['https://pypi.python.org/packages/source/a/argparse/'], + }), + ('lockfile', '0.9.1', { + 'source_urls': ['https://pypi.python.org/packages/source/l/lockfile/'], + }), + ('Cython', '0.17.2', { + 'source_urls': ['http://www.cython.org/release/'], + }), + ('six', '1.1.0', { + 'source_urls': ['https://pypi.python.org/packages/source/s/six/'], + }), + ('dateutil', '2.1', { + 'source_tmpl': 'python-%(name)s-%(version)s.tar.gz', + 'source_urls': ['https://pypi.python.org/packages/source/p/python-dateutil/'], + }), + ('deap', '0.9.1', { + 'source_urls': ['https://pypi.python.org/packages/source/d/deap/'], + }), + ('decorator', '3.4.0', { + 'source_urls': ['https://pypi.python.org/packages/source/d/decorator/'], + }), + ('arff', '1.1', { + 'source_tmpl': 'liac-%(name)s-%(version)s.zip', + 'source_urls': ['https://pypi.python.org/packages/source/l/liac-arff/'], + }), + ('pycrypto', '2.6.1', { + 'modulename': 'Crypto', + 'source_urls': ['http://ftp.dlitz.net/pub/dlitz/crypto/pycrypto/'], + }), + ('ecdsa', '0.8', { + 'source_urls': ['https://pypi.python.org/packages/source/e/ecdsa/'], + }), + ('paramiko', '1.12.0', { + 'source_urls': ['https://pypi.python.org/packages/source/p/paramiko/'], + }), +] + +moduleclass = 'lang' diff --git a/p/Python/Python-2.7.3-ictce-5.3.0.eb b/p/Python/Python-2.7.3-ictce-5.3.0.eb new file mode 100644 index 00000000..caf683b0 --- /dev/null +++ b/p/Python/Python-2.7.3-ictce-5.3.0.eb @@ -0,0 +1,89 @@ +name = 'Python' +version = '2.7.3' + +homepage = 'http://python.org/' +description = "Python is a programming language that lets you work more quickly and integrate your systems more effectively." + +toolchain = {'name': 'ictce', 'version': '5.3.0'} +toolchainopts = {'pic': True, 'opt': True, 'optarch': True} + +numpyversion = '1.6.1' +scipyversion = '0.10.1' + +source_urls = ['http://www.python.org/ftp/%(namelower)s/%(version)s/'] +sources = [SOURCE_TGZ] + +# python needs bzip2 to build the bz2 package +dependencies = [ + ('bzip2', '1.0.6'), + ('zlib', '1.2.7'), + ('libreadline', '6.2'), + ('ncurses', '5.9'), + # ('OpenSSL', '1.0.1f'), # OS dependency should be preferred for security reasons +] + +osdependencies = [('openssl-devel', 'libssl-dev', 'libopenssl-devel')] + +# order is important! +exts_list = [ + ('setuptools', '0.6c11', { + 'source_urls': ['https://pypi.python.org/packages/source/s/setuptools/'], + }), + ('pip', '1.1', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pip/'], + }), + ('nose', '1.1.2', { + 'source_urls': ['https://pypi.python.org/packages/source/n/nose/'], + }), + ('numpy', numpyversion, { + 'source_urls': [('http://sourceforge.net/projects/numpy/files/NumPy/%s' % numpyversion, 'download')], + 'patches': ['numpy-%s_distutils_multiple-lib-dirs.patch' % numpyversion], + }), + ('scipy', scipyversion, { + 'source_urls': [('http://sourceforge.net/projects/scipy/files/scipy/%s' % scipyversion, 'download')], + }), + ('mpi4py', '1.3', { + 'source_urls': ['http://bitbucket.org/mpi4py/mpi4py/downloads/'], + }), + ('paycheck', '1.0.2', { + 'source_urls': ['https://pypi.python.org/packages/source/p/paycheck/'], + }), + ('argparse', '1.2.1', { + 'source_urls': ['https://pypi.python.org/packages/source/a/argparse/'], + }), + ('lockfile', '0.9.1', { + 'source_urls': ['https://pypi.python.org/packages/source/l/lockfile/'], + }), + ('Cython', '0.17.2', { + 'source_urls': ['http://www.cython.org/release/'], + }), + ('six', '1.1.0', { + 'source_urls': ['https://pypi.python.org/packages/source/s/six/'], + }), + ('dateutil', '2.1', { + 'source_tmpl': 'python-%(name)s-%(version)s.tar.gz', + 'source_urls': ['https://pypi.python.org/packages/source/p/python-dateutil/'], + }), + ('deap', '0.9.1', { + 'source_urls': ['https://pypi.python.org/packages/source/d/deap/'], + }), + ('decorator', '3.4.0', { + 'source_urls': ['https://pypi.python.org/packages/source/d/decorator/'], + }), + ('arff', '1.1', { + 'source_tmpl': 'liac-%(name)s-%(version)s.zip', + 'source_urls': ['https://pypi.python.org/packages/source/l/liac-arff/'], + }), + ('pycrypto', '2.6.1', { + 'modulename': 'Crypto', + 'source_urls': ['http://ftp.dlitz.net/pub/dlitz/crypto/pycrypto/'], + }), + ('ecdsa', '0.8', { + 'source_urls': ['https://pypi.python.org/packages/source/e/ecdsa/'], + }), + ('paramiko', '1.12.0', { + 'source_urls': ['https://pypi.python.org/packages/source/p/paramiko/'], + }), +] + +moduleclass = 'lang' diff --git a/p/Python/Python-2.7.3-intel-2015a.eb b/p/Python/Python-2.7.3-intel-2015a.eb new file mode 100644 index 00000000..a68ef189 --- /dev/null +++ b/p/Python/Python-2.7.3-intel-2015a.eb @@ -0,0 +1,89 @@ +name = 'Python' +version = '2.7.3' + +homepage = 'http://python.org/' +description = "Python is a programming language that lets you work more quickly and integrate your systems more effectively." + +toolchain = {'name': 'intel', 'version': '2015a'} +toolchainopts = {'pic': True, 'opt': True, 'optarch': True} + +numpyversion = '1.6.1' +scipyversion = '0.10.1' + +source_urls = ['http://www.python.org/ftp/%(namelower)s/%(version)s/'] +sources = [SOURCE_TGZ] + +# python needs bzip2 to build the bz2 package +dependencies = [ + ('bzip2', '1.0.6'), + ('zlib', '1.2.8'), + ('libreadline', '6.2'), + ('ncurses', '5.9'), + # ('OpenSSL', '1.0.1f'), # OS dependency should be preferred for security reasons +] + +osdependencies = [('openssl-devel', 'libssl-dev', 'libopenssl-devel')] + +# order is important! +exts_list = [ + ('setuptools', '0.6c11', { + 'source_urls': ['https://pypi.python.org/packages/source/s/setuptools/'], + }), + ('pip', '1.1', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pip/'], + }), + ('nose', '1.1.2', { + 'source_urls': ['https://pypi.python.org/packages/source/n/nose/'], + }), + ('numpy', numpyversion, { + 'source_urls': [('http://sourceforge.net/projects/numpy/files/NumPy/%s' % numpyversion, 'download')], + 'patches': ['numpy-%s_distutils_multiple-lib-dirs.patch' % numpyversion], + }), + ('scipy', scipyversion, { + 'source_urls': [('http://sourceforge.net/projects/scipy/files/scipy/%s' % scipyversion, 'download')], + }), + ('mpi4py', '1.3', { + 'source_urls': ['http://bitbucket.org/mpi4py/mpi4py/downloads/'], + }), + ('paycheck', '1.0.2', { + 'source_urls': ['https://pypi.python.org/packages/source/p/paycheck/'], + }), + ('argparse', '1.2.1', { + 'source_urls': ['https://pypi.python.org/packages/source/a/argparse/'], + }), + ('lockfile', '0.9.1', { + 'source_urls': ['https://pypi.python.org/packages/source/l/lockfile/'], + }), + ('Cython', '0.17.2', { + 'source_urls': ['http://www.cython.org/release/'], + }), + ('six', '1.1.0', { + 'source_urls': ['https://pypi.python.org/packages/source/s/six/'], + }), + ('dateutil', '2.1', { + 'source_tmpl': 'python-%(name)s-%(version)s.tar.gz', + 'source_urls': ['https://pypi.python.org/packages/source/p/python-dateutil/'], + }), + ('deap', '0.9.1', { + 'source_urls': ['https://pypi.python.org/packages/source/d/deap/'], + }), + ('decorator', '3.4.0', { + 'source_urls': ['https://pypi.python.org/packages/source/d/decorator/'], + }), + ('arff', '1.1', { + 'source_tmpl': 'liac-%(name)s-%(version)s.zip', + 'source_urls': ['https://pypi.python.org/packages/source/l/liac-arff/'], + }), + ('pycrypto', '2.6.1', { + 'modulename': 'Crypto', + 'source_urls': ['http://ftp.dlitz.net/pub/dlitz/crypto/pycrypto/'], + }), + ('ecdsa', '0.8', { + 'source_urls': ['https://pypi.python.org/packages/source/e/ecdsa/'], + }), + ('paramiko', '1.12.0', { + 'source_urls': ['https://pypi.python.org/packages/source/p/paramiko/'], + }), +] + +moduleclass = 'lang' diff --git a/p/Python/Python-2.7.3-iomkl-4.6.13.eb b/p/Python/Python-2.7.3-iomkl-4.6.13.eb new file mode 100644 index 00000000..b36520e7 --- /dev/null +++ b/p/Python/Python-2.7.3-iomkl-4.6.13.eb @@ -0,0 +1,91 @@ +name = 'Python' +version = '2.7.3' + +homepage = 'http://python.org/' +description = "Python is a programming language that lets you work more quickly and integrate your systems more effectively." + +toolchain = {'name': 'iomkl', 'version': '4.6.13'} +toolchainopts = {'pic': True, 'opt': True, 'optarch': True} + +numpyversion = '1.6.1' +scipyversion = '0.10.1' + +source_urls = ['http://www.python.org/ftp/%(namelower)s/%(version)s/'] +sources = [SOURCE_TGZ] + +patches = ['python_libffi_int128_icc.patch'] + +# python needs bzip2 to build the bz2 package +dependencies = [ + ('bzip2', '1.0.6'), + ('zlib', '1.2.7'), + ('libreadline', '6.2'), + ('ncurses', '5.9'), + # ('OpenSSL', '1.0.1f'), # OS dependency should be preferred for security reasons +] + +osdependencies = [('openssl-devel', 'libssl-dev', 'libopenssl-devel')] + +# order is important! +exts_list = [ + ('setuptools', '0.6c11', { + 'source_urls': ['https://pypi.python.org/packages/source/s/setuptools/'], + }), + ('pip', '1.1', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pip/'], + }), + ('nose', '1.1.2', { + 'source_urls': ['https://pypi.python.org/packages/source/n/nose/'], + }), + ('numpy', numpyversion, { + 'source_urls': [('http://sourceforge.net/projects/numpy/files/NumPy/%s' % numpyversion, 'download')], + 'patches': ['numpy-%s_distutils_multiple-lib-dirs.patch' % numpyversion], + }), + ('scipy', scipyversion, { + 'source_urls': [('http://sourceforge.net/projects/scipy/files/scipy/%s' % scipyversion, 'download')], + }), + ('mpi4py', '1.3', { + 'source_urls': ['http://bitbucket.org/mpi4py/mpi4py/downloads/'], + }), + ('paycheck', '1.0.2', { + 'source_urls': ['https://pypi.python.org/packages/source/p/paycheck/'], + }), + ('argparse', '1.2.1', { + 'source_urls': ['https://pypi.python.org/packages/source/a/argparse/'], + }), + ('lockfile', '0.9.1', { + 'source_urls': ['https://pypi.python.org/packages/source/l/lockfile/'], + }), + ('Cython', '0.17.2', { + 'source_urls': ['http://www.cython.org/release/'], + }), + ('six', '1.1.0', { + 'source_urls': ['https://pypi.python.org/packages/source/s/six/'], + }), + ('dateutil', '2.1', { + 'source_tmpl': 'python-%(name)s-%(version)s.tar.gz', + 'source_urls': ['https://pypi.python.org/packages/source/p/python-dateutil/'], + }), + ('deap', '0.9.1', { + 'source_urls': ['https://pypi.python.org/packages/source/d/deap/'], + }), + ('decorator', '3.4.0', { + 'source_urls': ['https://pypi.python.org/packages/source/d/decorator/'], + }), + ('arff', '1.1', { + 'source_tmpl': 'liac-%(name)s-%(version)s.zip', + 'source_urls': ['https://pypi.python.org/packages/source/l/liac-arff/'], + }), + ('pycrypto', '2.6.1', { + 'modulename': 'Crypto', + 'source_urls': ['http://ftp.dlitz.net/pub/dlitz/crypto/pycrypto/'], + }), + ('ecdsa', '0.8', { + 'source_urls': ['https://pypi.python.org/packages/source/e/ecdsa/'], + }), + ('paramiko', '1.12.0', { + 'source_urls': ['https://pypi.python.org/packages/source/p/paramiko/'], + }), +] + +moduleclass = 'lang' diff --git a/p/Python/Python-2.7.3-iqacml-3.7.3.eb b/p/Python/Python-2.7.3-iqacml-3.7.3.eb new file mode 100644 index 00000000..3806ea6d --- /dev/null +++ b/p/Python/Python-2.7.3-iqacml-3.7.3.eb @@ -0,0 +1,95 @@ +name = 'Python' +version = '2.7.3' + +homepage = 'http://python.org/' +description = "Python is a programming language that lets you work more quickly and integrate your systems more effectively." + +toolchain = {'name': 'iqacml', 'version': '3.7.3'} +toolchainopts = {'pic': True, 'opt': True, 'optarch': True} + +numpyversion = '1.6.1' +scipyversion = '0.10.1' + +source_urls = ['http://www.python.org/ftp/%(namelower)s/%(version)s/'] +sources = [SOURCE_TGZ] + +patches = ['python_libffi_int128_icc.patch'] + +# python needs bzip2 to build the bz2 package +dependencies = [ + ('bzip2', '1.0.6'), + ('zlib', '1.2.7'), + ('libreadline', '6.2'), + ('ncurses', '5.9'), + ('CBLAS', '20110120'), + # ('OpenSSL', '1.0.1f'), # OS dependency should be preferred for security reasons +] + +osdependencies = [('openssl-devel', 'libssl-dev', 'libopenssl-devel')] + +# order is important! +exts_list = [ + ('setuptools', '0.6c11', { + 'source_urls': ['https://pypi.python.org/packages/source/s/setuptools/'], + }), + ('pip', '1.1', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pip/'], + }), + ('nose', '1.1.2', { + 'source_urls': ['https://pypi.python.org/packages/source/n/nose/'], + }), + ('numpy', numpyversion, { + 'source_urls': [('http://sourceforge.net/projects/numpy/files/NumPy/%s' % numpyversion, 'download')], + 'patches': [ + 'numpy-%s_distutils_multiple-lib-dirs.patch' % numpyversion, + 'numpy-iqacml.patch', + ], + }), + ('scipy', scipyversion, { + 'source_urls': [('http://sourceforge.net/projects/scipy/files/scipy/%s' % scipyversion, 'download')], + }), + ('mpi4py', '1.3', { + 'source_urls': ['http://bitbucket.org/mpi4py/mpi4py/downloads/'], + }), + ('paycheck', '1.0.2', { + 'source_urls': ['https://pypi.python.org/packages/source/p/paycheck/'], + }), + ('argparse', '1.2.1', { + 'source_urls': ['https://pypi.python.org/packages/source/a/argparse/'], + }), + ('lockfile', '0.9.1', { + 'source_urls': ['https://pypi.python.org/packages/source/l/lockfile/'], + }), + ('Cython', '0.17.2', { + 'source_urls': ['http://www.cython.org/release/'], + }), + ('six', '1.1.0', { + 'source_urls': ['https://pypi.python.org/packages/source/s/six/'], + }), + ('dateutil', '2.1', { + 'source_tmpl': 'python-%(name)s-%(version)s.tar.gz', + 'source_urls': ['https://pypi.python.org/packages/source/p/python-dateutil/'], + }), + ('deap', '0.9.1', { + 'source_urls': ['https://pypi.python.org/packages/source/d/deap/'], + }), + ('decorator', '3.4.0', { + 'source_urls': ['https://pypi.python.org/packages/source/d/decorator/'], + }), + ('arff', '1.1', { + 'source_tmpl': 'liac-%(name)s-%(version)s.zip', + 'source_urls': ['https://pypi.python.org/packages/source/l/liac-arff/'], + }), + ('pycrypto', '2.6.1', { + 'modulename': 'Crypto', + 'source_urls': ['http://ftp.dlitz.net/pub/dlitz/crypto/pycrypto/'], + }), + ('ecdsa', '0.8', { + 'source_urls': ['https://pypi.python.org/packages/source/e/ecdsa/'], + }), + ('paramiko', '1.12.0', { + 'source_urls': ['https://pypi.python.org/packages/source/p/paramiko/'], + }), +] + +moduleclass = 'lang' diff --git a/p/Python/Python-2.7.5-goalf-1.5.12-no-OFED.eb b/p/Python/Python-2.7.5-goalf-1.5.12-no-OFED.eb new file mode 100644 index 00000000..e8290ac4 --- /dev/null +++ b/p/Python/Python-2.7.5-goalf-1.5.12-no-OFED.eb @@ -0,0 +1,89 @@ +name = 'Python' +version = '2.7.5' + +homepage = 'http://python.org/' +description = "Python is a programming language that lets you work more quickly and integrate your systems more effectively." + +toolchain = {'name': 'goalf', 'version': '1.5.12-no-OFED'} +toolchainopts = {'pic': True, 'opt': True, 'optarch': True} + +numpyversion = '1.7.0' +scipyversion = '0.12.0' + +source_urls = ['http://www.python.org/ftp/%(namelower)s/%(version)s/'] +sources = [SOURCE_TGZ] + +# python needs bzip2 to build the bz2 package +dependencies = [ + ('bzip2', '1.0.6'), + ('zlib', '1.2.8'), + ('libreadline', '6.2'), + ('ncurses', '5.9'), + # ('OpenSSL', '1.0.1f'), # OS dependency should be preferred for security reasons +] + +osdependencies = [('openssl-devel', 'libssl-dev', 'libopenssl-devel')] + +# order is important! +exts_list = [ + ('setuptools', '0.6c11', { + 'source_urls': ['https://pypi.python.org/packages/source/s/setuptools/'], + }), + ('pip', '1.1', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pip/'], + }), + ('nose', '1.1.2', { + 'source_urls': ['https://pypi.python.org/packages/source/n/nose/'], + }), + ('numpy', numpyversion, { + 'source_urls': [('http://sourceforge.net/projects/numpy/files/NumPy/%s' % numpyversion, 'download')], + 'patches': ['numpy-%s_distutils_multiple-lib-dirs.patch' % numpyversion], + }), + ('scipy', scipyversion, { + 'source_urls': [('http://sourceforge.net/projects/scipy/files/scipy/%s' % scipyversion, 'download')], + }), + ('mpi4py', '1.3', { + 'source_urls': ['http://bitbucket.org/mpi4py/mpi4py/downloads/'], + }), + ('paycheck', '1.0.2', { + 'source_urls': ['https://pypi.python.org/packages/source/p/paycheck/'], + }), + ('argparse', '1.2.1', { + 'source_urls': ['https://pypi.python.org/packages/source/a/argparse/'], + }), + ('lockfile', '0.9.1', { + 'source_urls': ['https://pypi.python.org/packages/source/l/lockfile/'], + }), + ('Cython', '0.17.2', { + 'source_urls': ['http://www.cython.org/release/'], + }), + ('six', '1.1.0', { + 'source_urls': ['https://pypi.python.org/packages/source/s/six/'], + }), + ('dateutil', '2.1', { + 'source_tmpl': 'python-%(name)s-%(version)s.tar.gz', + 'source_urls': ['https://pypi.python.org/packages/source/p/python-dateutil/'], + }), + ('deap', '0.9.1', { + 'source_urls': ['https://pypi.python.org/packages/source/d/deap/'], + }), + ('decorator', '3.4.0', { + 'source_urls': ['https://pypi.python.org/packages/source/d/decorator/'], + }), + ('arff', '1.1', { + 'source_tmpl': 'liac-%(name)s-%(version)s.zip', + 'source_urls': ['https://pypi.python.org/packages/source/l/liac-arf/'], + }), + ('pycrypto', '2.6.1', { + 'modulename': 'Crypto', + 'source_urls': ['http://ftp.dlitz.net/pub/dlitz/crypto/pycrypto/'], + }), + ('ecdsa', '0.8', { + 'source_urls': ['https://pypi.python.org/packages/source/e/ecdsa/'], + }), + ('paramiko', '1.12.0', { + 'source_urls': ['https://pypi.python.org/packages/source/p/paramiko/'], + }), +] + +moduleclass = 'lang' diff --git a/p/Python/Python-2.7.5-goolf-1.4.10.eb b/p/Python/Python-2.7.5-goolf-1.4.10.eb new file mode 100644 index 00000000..577653d1 --- /dev/null +++ b/p/Python/Python-2.7.5-goolf-1.4.10.eb @@ -0,0 +1,92 @@ +name = 'Python' +version = '2.7.5' + +homepage = 'http://python.org/' +description = "Python is a programming language that lets you work more quickly and integrate your systems more effectively." + +toolchain = {'name': 'goolf', 'version': '1.4.10'} +toolchainopts = {'pic': True, 'opt': True, 'optarch': True} + +numpyversion = '1.7.0' +scipyversion = '0.12.0' + +source_urls = ['http://www.python.org/ftp/%(namelower)s/%(version)s/'] +sources = [SOURCE_TGZ] + +# python needs bzip2 to build the bz2 package +dependencies = [ + ('bzip2', '1.0.6'), + ('zlib', '1.2.8'), + ('libreadline', '6.2'), + ('ncurses', '5.9'), + ('SQLite', '3.8.5'), + # ('OpenSSL', '1.0.1f'), # OS dependency should be preferred for security reasons +] + +osdependencies = [('openssl-devel', 'libssl-dev', 'libopenssl-devel')] + +# order is important! +exts_list = [ + ('setuptools', '0.6c11', { + 'source_urls': ['https://pypi.python.org/packages/source/s/setuptools/'], + }), + ('pip', '1.1', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pip/'], + }), + ('nose', '1.1.2', { + 'source_urls': ['https://pypi.python.org/packages/source/n/nose/'], + }), + ('numpy', numpyversion, { + 'source_urls': [('http://sourceforge.net/projects/numpy/files/NumPy/%s' % numpyversion, 'download')], + 'patches': [ + 'numpy-%s_distutils_multiple-lib-dirs.patch' % numpyversion, + ], + }), + ('scipy', scipyversion, { + 'source_urls': [('http://sourceforge.net/projects/scipy/files/scipy/%s' % scipyversion, 'download')], + }), + ('mpi4py', '1.3', { + 'source_urls': ['http://bitbucket.org/mpi4py/mpi4py/downloads/'], + }), + ('paycheck', '1.0.2', { + 'source_urls': ['https://pypi.python.org/packages/source/p/paycheck/'], + }), + ('argparse', '1.2.1', { + 'source_urls': ['https://pypi.python.org/packages/source/a/argparse/'], + }), + ('lockfile', '0.9.1', { + 'source_urls': ['https://pypi.python.org/packages/source/l/lockfile/'], + }), + ('Cython', '0.17.2', { + 'source_urls': ['http://www.cython.org/release/'], + }), + ('six', '1.1.0', { + 'source_urls': ['https://pypi.python.org/packages/source/s/six/'], + }), + ('dateutil', '2.1', { + 'source_tmpl': 'python-%(name)s-%(version)s.tar.gz', + 'source_urls': ['https://pypi.python.org/packages/source/p/python-dateutil/'], + }), + ('deap', '0.9.1', { + 'source_urls': ['https://pypi.python.org/packages/source/d/deap/'], + }), + ('decorator', '3.4.0', { + 'source_urls': ['https://pypi.python.org/packages/source/d/decorator/'], + }), + ('arff', '1.1', { + 'source_tmpl': 'liac-%(name)s-%(version)s.zip', + 'source_urls': ['https://pypi.python.org/packages/source/l/liac-arff/'], + }), + ('pycrypto', '2.6.1', { + 'modulename': 'Crypto', + 'source_urls': ['http://ftp.dlitz.net/pub/dlitz/crypto/pycrypto/'], + }), + ('ecdsa', '0.8', { + 'source_urls': ['https://pypi.python.org/packages/source/e/ecdsa/'], + }), + ('paramiko', '1.12.0', { + 'source_urls': ['https://pypi.python.org/packages/source/p/paramiko/'], + }), +] + +moduleclass = 'lang' diff --git a/p/Python/Python-2.7.5-ictce-4.1.13.eb b/p/Python/Python-2.7.5-ictce-4.1.13.eb new file mode 100644 index 00000000..45b1ca6a --- /dev/null +++ b/p/Python/Python-2.7.5-ictce-4.1.13.eb @@ -0,0 +1,94 @@ +name = 'Python' +version = '2.7.5' + +homepage = 'http://python.org/' +description = "Python is a programming language that lets you work more quickly and integrate your systems more effectively." + +toolchain = {'name': 'ictce', 'version': '4.1.13'} +toolchainopts = {'pic': True, 'opt': True, 'optarch': True} + +numpyversion = '1.7.0' +scipyversion = '0.12.0' + +source_urls = ['http://www.python.org/ftp/%(namelower)s/%(version)s/'] +sources = [SOURCE_TGZ] + +# libffi build in python is still broken, see http://bugs.python.org/issue4130 +patches = ['python-2.7_libffi-include-xmmintrin.patch'] + +# python needs bzip2 to build the bz2 package +dependencies = [ + ('bzip2', '1.0.6'), + ('zlib', '1.2.8'), + ('libreadline', '6.2'), + ('ncurses', '5.9'), + # ('OpenSSL', '1.0.1f'), # OS dependency should be preferred for security reasons +] + +osdependencies = [('openssl-devel', 'libssl-dev', 'libopenssl-devel')] + +# order is important! +exts_list = [ + ('setuptools', '0.6c11', { + 'source_urls': ['https://pypi.python.org/packages/source/s/setuptools/'], + }), + ('pip', '1.1', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pip/'], + }), + ('nose', '1.1.2', { + 'source_urls': ['https://pypi.python.org/packages/source/n/nose/'], + }), + ('numpy', numpyversion, { + 'source_urls': [('http://sourceforge.net/projects/numpy/files/NumPy/%s' % numpyversion, 'download')], + 'patches': [ + 'numpy-%s_distutils_multiple-lib-dirs.patch' % numpyversion, + ], + }), + ('scipy', scipyversion, { + 'source_urls': [('http://sourceforge.net/projects/scipy/files/scipy/%s' % scipyversion, 'download')], + }), + ('mpi4py', '1.3', { + 'source_urls': ['http://bitbucket.org/mpi4py/mpi4py/downloads/'], + }), + ('paycheck', '1.0.2', { + 'source_urls': ['https://pypi.python.org/packages/source/p/paycheck/'], + }), + ('argparse', '1.2.1', { + 'source_urls': ['https://pypi.python.org/packages/source/a/argparse/'], + }), + ('lockfile', '0.9.1', { + 'source_urls': ['https://pypi.python.org/packages/source/l/lockfile/'], + }), + ('Cython', '0.17.2', { + 'source_urls': ['http://www.cython.org/release/'], + }), + ('six', '1.1.0', { + 'source_urls': ['https://pypi.python.org/packages/source/s/six/'], + }), + ('dateutil', '2.1', { + 'source_tmpl': 'python-%(name)s-%(version)s.tar.gz', + 'source_urls': ['https://pypi.python.org/packages/source/p/python-dateutil/'], + }), + ('deap', '0.9.1', { + 'source_urls': ['https://pypi.python.org/packages/source/d/deap/'], + }), + ('decorator', '3.4.0', { + 'source_urls': ['https://pypi.python.org/packages/source/d/decorator/'], + }), + ('arff', '1.1', { + 'source_tmpl': 'liac-%(name)s-%(version)s.zip', + 'source_urls': ['https://pypi.python.org/packages/source/l/liac-arff/'], + }), + ('pycrypto', '2.6.1', { + 'modulename': 'Crypto', + 'source_urls': ['http://ftp.dlitz.net/pub/dlitz/crypto/pycrypto/'], + }), + ('ecdsa', '0.8', { + 'source_urls': ['https://pypi.python.org/packages/source/e/ecdsa/'], + }), + ('paramiko', '1.12.0', { + 'source_urls': ['https://pypi.python.org/packages/source/p/paramiko/'], + }), +] + +moduleclass = 'lang' diff --git a/p/Python/Python-2.7.5-ictce-5.3.0.eb b/p/Python/Python-2.7.5-ictce-5.3.0.eb new file mode 100644 index 00000000..33dce6f6 --- /dev/null +++ b/p/Python/Python-2.7.5-ictce-5.3.0.eb @@ -0,0 +1,92 @@ +name = 'Python' +version = '2.7.5' + +homepage = 'http://python.org/' +description = "Python is a programming language that lets you work more quickly and integrate your systems more effectively." + +toolchain = {'name': 'ictce', 'version': '5.3.0'} +toolchainopts = {'pic': True, 'opt': True, 'optarch': True} + +numpyversion = '1.7.0' +scipyversion = '0.12.0' + +source_urls = ['http://www.python.org/ftp/%(namelower)s/%(version)s/'] +sources = [SOURCE_TGZ] + +# libffi build in python is still broken, see http://bugs.python.org/issue4130 +patches = ['python-2.7_libffi-include-xmmintrin.patch'] + +# python needs bzip2 to build the bz2 package +dependencies = [ + ('bzip2', '1.0.6'), + ('zlib', '1.2.8'), + ('libreadline', '6.2'), + ('ncurses', '5.9'), + # ('OpenSSL', '1.0.1f'), # OS dependency should be preferred for security reasons +] + +osdependencies = [('openssl-devel', 'libssl-dev', 'libopenssl-devel')] + +# order is important! +exts_list = [ + ('setuptools', '0.6c11', { + 'source_urls': ['https://pypi.python.org/packages/source/s/setuptools/'], + }), + ('pip', '1.1', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pip/'], + }), + ('nose', '1.1.2', { + 'source_urls': ['https://pypi.python.org/packages/source/n/nose/'], + }), + ('numpy', numpyversion, { + 'source_urls': [('http://sourceforge.net/projects/numpy/files/NumPy/%s' % numpyversion, 'download')], + 'patches': ['numpy-%s_distutils_multiple-lib-dirs.patch' % numpyversion], + }), + ('scipy', scipyversion, { + 'source_urls': [('http://sourceforge.net/projects/scipy/files/scipy/%s' % scipyversion, 'download')], + }), + ('mpi4py', '1.3', { + 'source_urls': ['http://bitbucket.org/mpi4py/mpi4py/downloads/'], + }), + ('paycheck', '1.0.2', { + 'source_urls': ['https://pypi.python.org/packages/source/p/paycheck/'], + }), + ('argparse', '1.2.1', { + 'source_urls': ['https://pypi.python.org/packages/source/a/argparse/'], + }), + ('lockfile', '0.9.1', { + 'source_urls': ['https://pypi.python.org/packages/source/l/lockfile/'], + }), + ('Cython', '0.17.2', { + 'source_urls': ['http://www.cython.org/release/'], + }), + ('six', '1.1.0', { + 'source_urls': ['https://pypi.python.org/packages/source/s/six/'], + }), + ('dateutil', '2.1', { + 'source_tmpl': 'python-%(name)s-%(version)s.tar.gz', + 'source_urls': ['https://pypi.python.org/packages/source/p/python-dateutil/'], + }), + ('deap', '0.9.1', { + 'source_urls': ['https://pypi.python.org/packages/source/d/deap/'], + }), + ('decorator', '3.4.0', { + 'source_urls': ['https://pypi.python.org/packages/source/d/decorator/'], + }), + ('arff', '1.1', { + 'source_tmpl': 'liac-%(name)s-%(version)s.zip', + 'source_urls': ['https://pypi.python.org/packages/source/l/liac-arff/'], + }), + ('pycrypto', '2.6.1', { + 'modulename': 'Crypto', + 'source_urls': ['http://ftp.dlitz.net/pub/dlitz/crypto/pycrypto/'], + }), + ('ecdsa', '0.8', { + 'source_urls': ['https://pypi.python.org/packages/source/e/ecdsa/'], + }), + ('paramiko', '1.12.0', { + 'source_urls': ['https://pypi.python.org/packages/source/p/paramiko/'], + }), +] + +moduleclass = 'lang' diff --git a/p/Python/Python-2.7.5-ictce-5.5.0.eb b/p/Python/Python-2.7.5-ictce-5.5.0.eb new file mode 100644 index 00000000..0a01b973 --- /dev/null +++ b/p/Python/Python-2.7.5-ictce-5.5.0.eb @@ -0,0 +1,92 @@ +name = 'Python' +version = '2.7.5' + +homepage = 'http://python.org/' +description = "Python is a programming language that lets you work more quickly and integrate your systems more effectively." + +toolchain = {'name': 'ictce', 'version': '5.5.0'} +toolchainopts = {'pic': True, 'opt': True, 'optarch': True} + +numpyversion = '1.7.0' +scipyversion = '0.12.0' + +source_urls = ['http://www.python.org/ftp/%(namelower)s/%(version)s/'] +sources = [SOURCE_TGZ] + +# libffi build in python is still broken, see http://bugs.python.org/issue4130 +patches = ['python-2.7_libffi-include-xmmintrin.patch'] + +# python needs bzip2 to build the bz2 package +dependencies = [ + ('bzip2', '1.0.6'), + ('zlib', '1.2.8'), + ('libreadline', '6.2'), + ('ncurses', '5.9'), + # ('OpenSSL', '1.0.1f'), # OS dependency should be preferred for security reasons +] + +osdependencies = [('openssl-devel', 'libssl-dev', 'libopenssl-devel')] + +# order is important! +exts_list = [ + ('setuptools', '0.6c11', { + 'source_urls': ['https://pypi.python.org/packages/source/s/setuptools/'], + }), + ('pip', '1.1', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pip/'], + }), + ('nose', '1.1.2', { + 'source_urls': ['https://pypi.python.org/packages/source/n/nose/'], + }), + ('numpy', numpyversion, { + 'source_urls': [('http://sourceforge.net/projects/numpy/files/NumPy/%s' % numpyversion, 'download')], + 'patches': ['numpy-%s_distutils_multiple-lib-dirs.patch' % numpyversion], + }), + ('scipy', scipyversion, { + 'source_urls': [('http://sourceforge.net/projects/scipy/files/scipy/%s' % scipyversion, 'download')], + }), + ('mpi4py', '1.3', { + 'source_urls': ['http://bitbucket.org/mpi4py/mpi4py/downloads/'], + }), + ('paycheck', '1.0.2', { + 'source_urls': ['https://pypi.python.org/packages/source/p/paycheck/'], + }), + ('argparse', '1.2.1', { + 'source_urls': ['https://pypi.python.org/packages/source/a/argparse/'], + }), + ('lockfile', '0.9.1', { + 'source_urls': ['https://pypi.python.org/packages/source/l/lockfile/'], + }), + ('Cython', '0.17.2', { + 'source_urls': ['http://www.cython.org/release/'], + }), + ('six', '1.1.0', { + 'source_urls': ['https://pypi.python.org/packages/source/s/six/'], + }), + ('dateutil', '2.1', { + 'source_tmpl': 'python-%(name)s-%(version)s.tar.gz', + 'source_urls': ['https://pypi.python.org/packages/source/p/python-dateutil/'], + }), + ('deap', '0.9.1', { + 'source_urls': ['https://pypi.python.org/packages/source/d/deap/'], + }), + ('decorator', '3.4.0', { + 'source_urls': ['https://pypi.python.org/packages/source/d/decorator/'], + }), + ('arff', '1.1', { + 'source_tmpl': 'liac-%(name)s-%(version)s.zip', + 'source_urls': ['https://pypi.python.org/packages/source/l/liac-arff/'], + }), + ('pycrypto', '2.6.1', { + 'modulename': 'Crypto', + 'source_urls': ['http://ftp.dlitz.net/pub/dlitz/crypto/pycrypto/'], + }), + ('ecdsa', '0.8', { + 'source_urls': ['https://pypi.python.org/packages/source/e/ecdsa/'], + }), + ('paramiko', '1.12.0', { + 'source_urls': ['https://pypi.python.org/packages/source/p/paramiko/'], + }), +] + +moduleclass = 'lang' diff --git a/p/Python/Python-2.7.5-iqacml-3.7.3.eb b/p/Python/Python-2.7.5-iqacml-3.7.3.eb new file mode 100644 index 00000000..f5d6db6b --- /dev/null +++ b/p/Python/Python-2.7.5-iqacml-3.7.3.eb @@ -0,0 +1,96 @@ +name = 'Python' +version = '2.7.5' + +homepage = 'http://python.org/' +description = "Python is a programming language that lets you work more quickly and integrate your systems more effectively." + +toolchain = {'name': 'iqacml', 'version': '3.7.3'} +toolchainopts = {'pic': True, 'opt': True, 'optarch': True} + +numpyversion = '1.7.0' +scipyversion = '0.12.0' + +source_urls = ['http://www.python.org/ftp/%(namelower)s/%(version)s/'] +sources = [SOURCE_TGZ] + +# libffi build in python is still broken, see http://bugs.python.org/issue4130 +patches = ['python-2.7_libffi-include-xmmintrin.patch'] + +# python needs bzip2 to build the bz2 package +dependencies = [ + ('bzip2', '1.0.6'), + ('zlib', '1.2.8'), + ('libreadline', '6.2'), + ('ncurses', '5.9'), + ('CBLAS', '20110120'), + # ('OpenSSL', '1.0.1f'), # OS dependency should be preferred for security reasons +] + +osdependencies = [('openssl-devel', 'libssl-dev', 'libopenssl-devel')] + +# order is important! +exts_list = [ + ('setuptools', '0.6c11', { + 'source_urls': ['https://pypi.python.org/packages/source/s/setuptools/'], + }), + ('pip', '1.1', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pip/'], + }), + ('nose', '1.1.2', { + 'source_urls': ['https://pypi.python.org/packages/source/n/nose/'], + }), + ('numpy', numpyversion, { + 'source_urls': [('http://sourceforge.net/projects/numpy/files/NumPy/%s' % numpyversion, 'download')], + 'patches': [ + 'numpy-%s_distutils_multiple-lib-dirs.patch' % numpyversion, + 'numpy-iqacml.patch', + ], + }), + ('scipy', scipyversion, { + 'source_urls': [('http://sourceforge.net/projects/scipy/files/scipy/%s' % scipyversion, 'download')], + }), + ('mpi4py', '1.3', { + 'source_urls': ['http://bitbucket.org/mpi4py/mpi4py/downloads/'], + }), + ('paycheck', '1.0.2', { + 'source_urls': ['https://pypi.python.org/packages/source/p/paycheck/'], + }), + ('argparse', '1.2.1', { + 'source_urls': ['https://pypi.python.org/packages/source/a/argparse/'], + }), + ('lockfile', '0.9.1', { + 'source_urls': ['https://pypi.python.org/packages/source/l/lockfile/'], + }), + ('Cython', '0.17.2', { + 'source_urls': ['http://www.cython.org/release/'], + }), + ('six', '1.1.0', { + 'source_urls': ['https://pypi.python.org/packages/source/s/six/'], + }), + ('dateutil', '2.1', { + 'source_tmpl': 'python-%(name)s-%(version)s.tar.gz', + 'source_urls': ['https://pypi.python.org/packages/source/p/python-dateutil/'], + }), + ('deap', '0.9.1', { + 'source_urls': ['https://pypi.python.org/packages/source/d/deap/'], + }), + ('decorator', '3.4.0', { + 'source_urls': ['https://pypi.python.org/packages/source/d/decorator/'], + }), + ('arff', '1.1', { + 'source_tmpl': 'liac-%(name)s-%(version)s.zip', + 'source_urls': ['https://pypi.python.org/packages/source/l/liac-arff/'], + }), + ('pycrypto', '2.6.1', { + 'modulename': 'Crypto', + 'source_urls': ['http://ftp.dlitz.net/pub/dlitz/crypto/pycrypto/'], + }), + ('ecdsa', '0.8', { + 'source_urls': ['https://pypi.python.org/packages/source/e/ecdsa/'], + }), + ('paramiko', '1.12.0', { + 'source_urls': ['https://pypi.python.org/packages/source/p/paramiko/'], + }), +] + +moduleclass = 'lang' diff --git a/p/Python/Python-2.7.6-goolf-1.4.10.eb b/p/Python/Python-2.7.6-goolf-1.4.10.eb new file mode 100644 index 00000000..bccfcbf0 --- /dev/null +++ b/p/Python/Python-2.7.6-goolf-1.4.10.eb @@ -0,0 +1,91 @@ +name = 'Python' +version = '2.7.6' + +homepage = 'http://python.org/' +description = "Python is a programming language that lets you work more quickly and integrate your systems more effectively." + +toolchain = {'name': 'goolf', 'version': '1.4.10'} +toolchainopts = {'pic': True, 'opt': True, 'optarch': True} + +numpyversion = '1.8.0' +scipyversion = '0.13.1' + +source_urls = ['http://www.python.org/ftp/%(namelower)s/%(version)s/'] +sources = [SOURCE_TGZ] + +# python needs bzip2 to build the bz2 package +dependencies = [ + ('bzip2', '1.0.6'), + ('zlib', '1.2.7'), + ('libreadline', '6.2'), + ('ncurses', '5.9'), + # ('OpenSSL', '1.0.1f'), # OS dependency should be preferred for security reasons +] + +osdependencies = [('openssl-devel', 'libssl-dev', 'libopenssl-devel')] + +# order is important! +exts_list = [ + ('setuptools', '1.4.2', { + 'source_urls': ['https://pypi.python.org/packages/source/s/setuptools/'], + }), + ('pip', '1.4.1', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pip/'], + }), + ('nose', '1.3.0', { + 'source_urls': ['https://pypi.python.org/packages/source/n/nose/'], + }), + ('numpy', numpyversion, { + 'source_urls': [('http://sourceforge.net/projects/numpy/files/NumPy/%s' % numpyversion, 'download')], + 'patches': [ + 'numpy-%s-mkl.patch' % numpyversion, + ], + }), + ('scipy', scipyversion, { + 'source_urls': [('http://sourceforge.net/projects/scipy/files/scipy/%s' % scipyversion, 'download')], + }), + ('mpi4py', '1.3.1', { + 'source_urls': ['http://bitbucket.org/mpi4py/mpi4py/downloads/'], + }), + ('paycheck', '1.0.2', { + 'source_urls': ['https://pypi.python.org/packages/source/p/paycheck/'], + }), + ('argparse', '1.2.1', { + 'source_urls': ['https://pypi.python.org/packages/source/a/argparse/'], + }), + ('lockfile', '0.9.1', { + 'source_urls': ['https://pypi.python.org/packages/source/l/lockfile/'], + }), + ('Cython', '0.19.2', { + 'source_urls': ['http://www.cython.org/release/'], + }), + ('six', '1.4.1', { + 'source_urls': ['https://pypi.python.org/packages/source/s/six/'], + }), + ('dateutil', '2.2', { + 'source_tmpl': 'python-%(name)s-%(version)s.tar.gz', + 'source_urls': ['https://pypi.python.org/packages/source/p/python-dateutil/'], + }), + ('deap', '0.9.1', { + 'source_urls': ['https://pypi.python.org/packages/source/d/deap/'], + }), + ('decorator', '3.4.0', { + 'source_urls': ['https://pypi.python.org/packages/source/d/decorator/'], + }), + ('arff', '1.1', { + 'source_tmpl': 'liac-%(name)s-%(version)s.zip', + 'source_urls': ['https://pypi.python.org/packages/source/l/liac-arff/'], + }), + ('pycrypto', '2.6.1', { + 'modulename': 'Crypto', + 'source_urls': ['http://ftp.dlitz.net/pub/dlitz/crypto/pycrypto/'], + }), + ('ecdsa', '0.11', { + 'source_urls': ['https://pypi.python.org/packages/source/e/ecdsa/'], + }), + ('paramiko', '1.12.0', { + 'source_urls': ['https://pypi.python.org/packages/source/p/paramiko/'], + }), +] + +moduleclass = 'lang' diff --git a/p/Python/Python-2.7.6-ictce-4.1.13.eb b/p/Python/Python-2.7.6-ictce-4.1.13.eb new file mode 100644 index 00000000..14641732 --- /dev/null +++ b/p/Python/Python-2.7.6-ictce-4.1.13.eb @@ -0,0 +1,94 @@ +name = 'Python' +version = '2.7.6' + +homepage = 'http://python.org/' +description = "Python is a programming language that lets you work more quickly and integrate your systems more effectively." + +toolchain = {'name': 'ictce', 'version': '4.1.13'} +toolchainopts = {'pic': True, 'opt': True, 'optarch': True} + +numpyversion = '1.8.0' +scipyversion = '0.13.1' + +source_urls = ['http://www.python.org/ftp/%(namelower)s/%(version)s/'] +sources = [SOURCE_TGZ] + +# libffi build in python is still broken, see http://bugs.python.org/issue4130 +patches = ['python-2.7_libffi-include-xmmintrin.patch'] + +# python needs bzip2 to build the bz2 package +dependencies = [ + ('bzip2', '1.0.6'), + ('zlib', '1.2.7'), + ('libreadline', '6.2'), + ('ncurses', '5.9'), + # ('OpenSSL', '1.0.1f'), # OS dependency should be preferred for security reasons +] + +osdependencies = [('openssl-devel', 'libssl-dev', 'libopenssl-devel')] + +# order is important! +exts_list = [ + ('setuptools', '1.4.2', { + 'source_urls': ['https://pypi.python.org/packages/source/s/setuptools/'], + }), + ('pip', '1.4.1', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pip/'], + }), + ('nose', '1.3.0', { + 'source_urls': ['https://pypi.python.org/packages/source/n/nose/'], + }), + ('numpy', numpyversion, { + 'source_urls': [('http://sourceforge.net/projects/numpy/files/NumPy/%s' % numpyversion, 'download')], + 'patches': [ + 'numpy-%s-mkl.patch' % numpyversion, + ], + }), + ('scipy', scipyversion, { + 'source_urls': [('http://sourceforge.net/projects/scipy/files/scipy/%s' % scipyversion, 'download')], + }), + ('mpi4py', '1.3.1', { + 'source_urls': ['http://bitbucket.org/mpi4py/mpi4py/downloads/'], + }), + ('paycheck', '1.0.2', { + 'source_urls': ['https://pypi.python.org/packages/source/p/paycheck/'], + }), + ('argparse', '1.2.1', { + 'source_urls': ['https://pypi.python.org/packages/source/a/argparse/'], + }), + ('lockfile', '0.9.1', { + 'source_urls': ['https://pypi.python.org/packages/source/l/lockfile/'], + }), + ('Cython', '0.19.2', { + 'source_urls': ['http://www.cython.org/release/'], + }), + ('six', '1.4.1', { + 'source_urls': ['https://pypi.python.org/packages/source/s/six/'], + }), + ('dateutil', '2.2', { + 'source_tmpl': 'python-%(name)s-%(version)s.tar.gz', + 'source_urls': ['https://pypi.python.org/packages/source/p/python-dateutil/'], + }), + ('deap', '0.9.1', { + 'source_urls': ['https://pypi.python.org/packages/source/d/deap/'], + }), + ('decorator', '3.4.0', { + 'source_urls': ['https://pypi.python.org/packages/source/d/decorator/'], + }), + ('arff', '1.1', { + 'source_tmpl': 'liac-%(name)s-%(version)s.zip', + 'source_urls': ['https://pypi.python.org/packages/source/l/liac-arff/'], + }), + ('pycrypto', '2.6.1', { + 'modulename': 'Crypto', + 'source_urls': ['http://ftp.dlitz.net/pub/dlitz/crypto/pycrypto/'], + }), + ('ecdsa', '0.11', { + 'source_urls': ['https://pypi.python.org/packages/source/e/ecdsa/'], + }), + ('paramiko', '1.12.0', { + 'source_urls': ['https://pypi.python.org/packages/source/p/paramiko/'], + }), +] + +moduleclass = 'lang' diff --git a/p/Python/Python-2.7.6-ictce-5.5.0.eb b/p/Python/Python-2.7.6-ictce-5.5.0.eb new file mode 100644 index 00000000..a51d51c9 --- /dev/null +++ b/p/Python/Python-2.7.6-ictce-5.5.0.eb @@ -0,0 +1,94 @@ +name = 'Python' +version = '2.7.6' + +homepage = 'http://python.org/' +description = "Python is a programming language that lets you work more quickly and integrate your systems more effectively." + +toolchain = {'name': 'ictce', 'version': '5.5.0'} +toolchainopts = {'pic': True, 'opt': True, 'optarch': True} + +numpyversion = '1.8.0' +scipyversion = '0.13.1' + +source_urls = ['http://www.python.org/ftp/%(namelower)s/%(version)s/'] +sources = [SOURCE_TGZ] + +# libffi build in python is still broken, see http://bugs.python.org/issue4130 +patches = ['python-2.7_libffi-include-xmmintrin.patch'] + +# python needs bzip2 to build the bz2 package +dependencies = [ + ('bzip2', '1.0.6'), + ('zlib', '1.2.7'), + ('libreadline', '6.2'), + ('ncurses', '5.9'), + # ('OpenSSL', '1.0.1f'), # OS dependency should be preferred for security reasons +] + +osdependencies = [('openssl-devel', 'libssl-dev', 'libopenssl-devel')] + +# order is important! +exts_list = [ + ('setuptools', '1.4.2', { + 'source_urls': ['https://pypi.python.org/packages/source/s/setuptools/'], + }), + ('pip', '1.4.1', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pip/'], + }), + ('nose', '1.3.0', { + 'source_urls': ['https://pypi.python.org/packages/source/n/nose/'], + }), + ('numpy', numpyversion, { + 'source_urls': [('http://sourceforge.net/projects/numpy/files/NumPy/%s' % numpyversion, 'download')], + 'patches': [ + 'numpy-%s-mkl.patch' % numpyversion, + ], + }), + ('scipy', scipyversion, { + 'source_urls': [('http://sourceforge.net/projects/scipy/files/scipy/%s' % scipyversion, 'download')], + }), + ('mpi4py', '1.3.1', { + 'source_urls': ['http://bitbucket.org/mpi4py/mpi4py/downloads/'], + }), + ('paycheck', '1.0.2', { + 'source_urls': ['https://pypi.python.org/packages/source/p/paycheck/'], + }), + ('argparse', '1.2.1', { + 'source_urls': ['https://pypi.python.org/packages/source/a/argparse/'], + }), + ('lockfile', '0.9.1', { + 'source_urls': ['https://pypi.python.org/packages/source/l/lockfile/'], + }), + ('Cython', '0.19.2', { + 'source_urls': ['http://www.cython.org/release/'], + }), + ('six', '1.4.1', { + 'source_urls': ['https://pypi.python.org/packages/source/s/six/'], + }), + ('dateutil', '2.2', { + 'source_tmpl': 'python-%(name)s-%(version)s.tar.gz', + 'source_urls': ['https://pypi.python.org/packages/source/p/python-dateutil/'], + }), + ('deap', '0.9.1', { + 'source_urls': ['https://pypi.python.org/packages/source/d/deap/'], + }), + ('decorator', '3.4.0', { + 'source_urls': ['https://pypi.python.org/packages/source/d/decorator/'], + }), + ('arff', '1.1', { + 'source_tmpl': 'liac-%(name)s-%(version)s.zip', + 'source_urls': ['https://pypi.python.org/packages/source/l/liac-arff/'], + }), + ('pycrypto', '2.6.1', { + 'modulename': 'Crypto', + 'source_urls': ['http://ftp.dlitz.net/pub/dlitz/crypto/pycrypto/'], + }), + ('ecdsa', '0.11', { + 'source_urls': ['https://pypi.python.org/packages/source/e/ecdsa/'], + }), + ('paramiko', '1.12.0', { + 'source_urls': ['https://pypi.python.org/packages/source/p/paramiko/'], + }), +] + +moduleclass = 'lang' diff --git a/p/Python/Python-2.7.8-foss-2014b.eb b/p/Python/Python-2.7.8-foss-2014b.eb new file mode 100644 index 00000000..16590efb --- /dev/null +++ b/p/Python/Python-2.7.8-foss-2014b.eb @@ -0,0 +1,98 @@ +name = 'Python' +version = '2.7.8' + +homepage = 'http://python.org/' +description = "Python is a programming language that lets you work more quickly and integrate your systems more effectively." + +toolchain = {'name': 'foss', 'version': '2014b'} +toolchainopts = {'pic': True, 'opt': True, 'optarch': True} + +numpyversion = '1.6.1' +scipyversion = '0.10.1' + +source_urls = ['http://www.python.org/ftp/%(namelower)s/%(version)s/'] +sources = [SOURCE_TGZ] + +# python needs bzip2 to build the bz2 package +dependencies = [ + ('bzip2', '1.0.6'), + ('zlib', '1.2.8'), + ('libreadline', '6.3'), + ('ncurses', '5.9'), + # ('OpenSSL', '1.0.1g'), # OS dependency should be preferred for security reasons +] + +osdependencies = [('openssl-devel', 'libssl-dev', 'libopenssl-devel')] + +# order is important! +exts_list = [ + ('setuptools', '5.4.1', { + 'source_urls': ['https://pypi.python.org/packages/source/s/setuptools/'], + }), + ('pip', '1.5.6', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pip/'], + }), + ('nose', '1.3.3', { + 'source_urls': ['https://pypi.python.org/packages/source/n/nose/'], + }), + ('numpy', numpyversion, { + 'source_urls': [('http://sourceforge.net/projects/numpy/files/NumPy/%s' % numpyversion, 'download')], + 'patches': [ + 'numpy-%s_distutils_multiple-lib-dirs.patch' % numpyversion, + ], + }), + ('scipy', scipyversion, { + 'source_urls': [('http://sourceforge.net/projects/scipy/files/scipy/%s' % scipyversion, 'download')], + }), + ('mpi4py', '1.3.1', { + 'source_urls': ['http://bitbucket.org/mpi4py/mpi4py/downloads/'], + }), + ('paycheck', '1.0.2', { + 'source_urls': ['https://pypi.python.org/packages/source/p/paycheck/'], + }), + ('argparse', '1.2.1', { + 'source_urls': ['https://pypi.python.org/packages/source/a/argparse/'], + }), + ('lockfile', '0.9.1', { + 'source_urls': ['https://pypi.python.org/packages/source/l/lockfile/'], + }), + ('Cython', '0.20.2', { + 'source_urls': ['http://www.cython.org/release/'], + }), + ('six', '1.7.3', { + 'source_urls': ['https://pypi.python.org/packages/source/s/six/'], + }), + ('dateutil', '2.2', { + 'source_tmpl': 'python-%(name)s-%(version)s.tar.gz', + 'source_urls': ['https://pypi.python.org/packages/source/p/python-dateutil/'], + }), + ('deap', '1.0.1', { + 'source_urls': ['https://pypi.python.org/packages/source/d/deap/'], + }), + ('decorator', '3.4.0', { + 'source_urls': ['https://pypi.python.org/packages/source/d/decorator/'], + }), + ('arff', '2.0.1', { + 'source_tmpl': 'liac-%(name)s-%(version)s.zip', + 'source_urls': ['https://pypi.python.org/packages/source/l/liac-arff/'], + }), + ('pycrypto', '2.6.1', { + 'modulename': 'Crypto', + 'source_urls': ['http://ftp.dlitz.net/pub/dlitz/crypto/pycrypto/'], + }), + ('ecdsa', '0.11', { + 'source_urls': ['https://pypi.python.org/packages/source/e/ecdsa/'], + }), + ('paramiko', '1.14.0', { + 'source_urls': ['https://pypi.python.org/packages/source/p/paramiko/'], + }), + ('pyparsing', '2.0.2', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pyparsing/'], + }), + ('pygments', '1.6', { + 'source_urls': ['https://pypi.python.org/packages/source/P/Pygments/'], + 'source_tmpl': 'Pygments-%(version)s.tar.gz', + }), +] + +moduleclass = 'lang' diff --git a/p/Python/Python-2.7.8-goolf-1.5.14.eb b/p/Python/Python-2.7.8-goolf-1.5.14.eb new file mode 100644 index 00000000..c8491023 --- /dev/null +++ b/p/Python/Python-2.7.8-goolf-1.5.14.eb @@ -0,0 +1,104 @@ +name = 'Python' +version = '2.7.8' + +homepage = 'http://python.org/' +description = "Python is a programming language that lets you work more quickly and integrate your systems more effectively." + +toolchain = {'name': 'goolf', 'version': '1.5.14'} +toolchainopts = {'pic': True, 'opt': True, 'optarch': True} + +numpyversion = '1.8.1' +scipyversion = '0.14.0' + +source_urls = ['http://www.python.org/ftp/%(namelower)s/%(version)s/'] +sources = [SOURCE_TGZ] + +# libffi build in python is still broken, see http://bugs.python.org/issue4130 +patches = ['python-2.7_libffi-include-xmmintrin.patch'] + +# python needs bzip2 to build the bz2 package +dependencies = [ + ('bzip2', '1.0.6'), + ('zlib', '1.2.8'), + ('libreadline', '6.3'), + ('ncurses', '5.9'), + # ('OpenSSL', '1.0.1g'), # OS dependency should be preferred for security reasons +] + +osdependencies = [('openssl-devel', 'libssl-dev', 'libopenssl-devel')] + +# order is important! +exts_list = [ + ('setuptools', '5.4.1', { + 'source_urls': ['https://pypi.python.org/packages/source/s/setuptools/'], + }), + ('pip', '1.5.6', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pip/'], + }), + ('nose', '1.3.3', { + 'source_urls': ['https://pypi.python.org/packages/source/n/nose/'], + }), + ('numpy', numpyversion, { + 'source_urls': [('http://sourceforge.net/projects/numpy/files/NumPy/%s' % numpyversion, 'download')], + 'patches': [ + 'numpy-%s-mkl.patch' % numpyversion, + ], + }), + ('scipy', scipyversion, { + 'source_urls': [('http://sourceforge.net/projects/scipy/files/scipy/%s' % scipyversion, 'download')], + }), + ('blist', '1.3.6', { + 'source_urls': ['https://pypi.python.org/packages/source/b/blist/'], + }), + ('six', '1.7.3', { + 'source_urls': ['https://pypi.python.org/packages/source/s/six/'], + }), + ('mpi4py', '1.3.1', { + 'source_urls': ['http://bitbucket.org/mpi4py/mpi4py/downloads/'], + }), + ('paycheck', '1.0.2', { + 'source_urls': ['https://pypi.python.org/packages/source/p/paycheck/'], + }), + ('argparse', '1.2.1', { + 'source_urls': ['https://pypi.python.org/packages/source/a/argparse/'], + }), + ('lockfile', '0.9.1', { + 'source_urls': ['https://pypi.python.org/packages/source/l/lockfile/'], + }), + ('Cython', '0.20.2', { + 'source_urls': ['http://www.cython.org/release/'], + }), + ('dateutil', '2.2', { + 'source_tmpl': 'python-%(name)s-%(version)s.tar.gz', + 'source_urls': ['https://pypi.python.org/packages/source/p/python-dateutil/'], + }), + ('deap', '1.0.1', { + 'source_urls': ['https://pypi.python.org/packages/source/d/deap/'], + }), + ('decorator', '3.4.0', { + 'source_urls': ['https://pypi.python.org/packages/source/d/decorator/'], + }), + ('arff', '2.0.1', { + 'source_tmpl': 'liac-%(name)s-%(version)s.zip', + 'source_urls': ['https://pypi.python.org/packages/source/l/liac-arff/'], + }), + ('pycrypto', '2.6.1', { + 'modulename': 'Crypto', + 'source_urls': ['http://ftp.dlitz.net/pub/dlitz/crypto/pycrypto/'], + }), + ('ecdsa', '0.11', { + 'source_urls': ['https://pypi.python.org/packages/source/e/ecdsa/'], + }), + ('paramiko', '1.14.0', { + 'source_urls': ['https://pypi.python.org/packages/source/p/paramiko/'], + }), + ('pyparsing', '2.0.2', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pyparsing/'], + }), + ('pygments', '1.6', { + 'source_urls': ['https://pypi.python.org/packages/source/P/Pygments/'], + 'source_tmpl': 'Pygments-%(version)s.tar.gz', + }), +] + +moduleclass = 'lang' diff --git a/p/Python/Python-2.7.8-ictce-7.1.2.eb b/p/Python/Python-2.7.8-ictce-7.1.2.eb new file mode 100644 index 00000000..a7caba4f --- /dev/null +++ b/p/Python/Python-2.7.8-ictce-7.1.2.eb @@ -0,0 +1,104 @@ +name = 'Python' +version = '2.7.8' + +homepage = 'http://python.org/' +description = "Python is a programming language that lets you work more quickly and integrate your systems more effectively." + +toolchain = {'name': 'ictce', 'version': '7.1.2'} +toolchainopts = {'pic': True, 'opt': True, 'optarch': True} + +numpyversion = '1.8.1' +scipyversion = '0.14.0' + +source_urls = ['http://www.python.org/ftp/%(namelower)s/%(version)s/'] +sources = [SOURCE_TGZ] + +configopts = ' --enable-unicode=ucs4 ' +preconfigopts = 'env LDFLAGS="-lstdc++" ' + +# libffi build in python is still broken, see http://bugs.python.org/issue4130 +patches = ['python-2.7_libffi-include-xmmintrin.patch'] + +# python needs bzip2 to build the bz2 package +dependencies = [ + ('bzip2', '1.0.6'), + ('zlib', '1.2.8'), + ('libreadline', '6.3'), + ('ncurses', '5.9'), + # ('OpenSSL', '1.0.1g'), # OS dependency should be preferred for security reasons +] + +osdependencies = [('openssl-devel', 'libssl-dev', 'libopenssl-devel')] + +# order is important! +# Version updated 08/JULY/2014 +exts_list = [ + ('setuptools', '5.4.1', { + 'source_urls': ['https://pypi.python.org/packages/source/s/setuptools/'], + }), + ('pip', '1.5.6', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pip/'], + }), + ('nose', '1.3.3', { + 'source_urls': ['https://pypi.python.org/packages/source/n/nose/'], + }), + ('numpy', numpyversion, { + 'source_urls': [('http://sourceforge.net/projects/numpy/files/NumPy/%s' % numpyversion, 'download')], + 'patches': [ + 'numpy-%s-mkl.patch' % numpyversion, + ], + }), + ('scipy', scipyversion, { + 'source_urls': [('http://sourceforge.net/projects/scipy/files/scipy/%s' % scipyversion, 'download')], + }), + ('blist', '1.3.6', { + 'source_urls': ['https://pypi.python.org/packages/source/b/blist/'], + }), + ('mpi4py', '1.3.1', { + 'source_urls': ['http://bitbucket.org/mpi4py/mpi4py/downloads/'], + }), + ('paycheck', '1.0.2', { + 'source_urls': ['https://pypi.python.org/packages/source/p/paycheck/'], + }), + ('argparse', '1.2.1', { + 'source_urls': ['https://pypi.python.org/packages/source/a/argparse/'], + }), + ('lockfile', '0.9.1', { + 'source_urls': ['https://pypi.python.org/packages/source/l/lockfile/'], + }), + ('Cython', '0.20.2', { + 'source_urls': ['http://www.cython.org/release/'], + }), + ('six', '1.7.3', { + 'source_urls': ['https://pypi.python.org/packages/source/s/six/'], + }), + ('dateutil', '2.2', { + 'source_tmpl': 'python-%(name)s-%(version)s.tar.gz', + 'source_urls': ['https://pypi.python.org/packages/source/p/python-dateutil/'], + }), + ('deap', '1.0.1', { + 'source_urls': ['https://pypi.python.org/packages/source/d/deap/'], + }), + ('decorator', '3.4.0', { + 'source_urls': ['https://pypi.python.org/packages/source/d/decorator/'], + }), + ('arff', '2.0.1', { + 'source_tmpl': 'liac-%(name)s-%(version)s.zip', + 'source_urls': ['https://pypi.python.org/packages/source/l/liac-arff/'], + }), + ('pycrypto', '2.6.1', { + 'modulename': 'Crypto', + 'source_urls': ['http://ftp.dlitz.net/pub/dlitz/crypto/pycrypto/'], + }), + ('ecdsa', '0.11', { + 'source_urls': ['https://pypi.python.org/packages/source/e/ecdsa/'], + }), + ('paramiko', '1.14.0', { + 'source_urls': ['https://pypi.python.org/packages/source/p/paramiko/'], + }), + ('pyparsing', '2.0.2', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pyparsing/'], + }), +] + +moduleclass = 'lang' diff --git a/p/Python/Python-2.7.8-intel-2014.06.eb b/p/Python/Python-2.7.8-intel-2014.06.eb new file mode 100644 index 00000000..dfe5979c --- /dev/null +++ b/p/Python/Python-2.7.8-intel-2014.06.eb @@ -0,0 +1,101 @@ +name = 'Python' +version = '2.7.8' + +homepage = 'http://python.org/' +description = "Python is a programming language that lets you work more quickly and integrate your systems more effectively." + +toolchain = {'name': 'intel', 'version': '2014.06'} +toolchainopts = {'pic': True, 'opt': True, 'optarch': True} + +numpyversion = '1.8.1' +scipyversion = '0.14.0' + +source_urls = ['http://www.python.org/ftp/%(namelower)s/%(version)s/'] +sources = [SOURCE_TGZ] + +# libffi build in python is still broken, see http://bugs.python.org/issue4130 +patches = ['python-2.7_libffi-include-xmmintrin.patch'] + +# python needs bzip2 to build the bz2 package +dependencies = [ + ('bzip2', '1.0.6'), + ('zlib', '1.2.8'), + ('libreadline', '6.3'), + ('ncurses', '5.9'), + # ('OpenSSL', '1.0.1g'), # OS dependency should be preferred for security reasons +] + +osdependencies = [('openssl-devel', 'libssl-dev', 'libopenssl-devel')] + +# order is important! +# Version updated 08/JULY/2014 +exts_list = [ + ('setuptools', '5.4.1', { + 'source_urls': ['https://pypi.python.org/packages/source/s/setuptools/'], + }), + ('pip', '1.5.6', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pip/'], + }), + ('nose', '1.3.3', { + 'source_urls': ['https://pypi.python.org/packages/source/n/nose/'], + }), + ('numpy', numpyversion, { + 'source_urls': [('http://sourceforge.net/projects/numpy/files/NumPy/%s' % numpyversion, 'download')], + 'patches': [ + 'numpy-%s-mkl.patch' % numpyversion, + ], + }), + ('scipy', scipyversion, { + 'source_urls': [('http://sourceforge.net/projects/scipy/files/scipy/%s' % scipyversion, 'download')], + }), + ('blist', '1.3.6', { + 'source_urls': ['https://pypi.python.org/packages/source/b/blist/'], + }), + ('mpi4py', '1.3.1', { + 'source_urls': ['http://bitbucket.org/mpi4py/mpi4py/downloads/'], + }), + ('paycheck', '1.0.2', { + 'source_urls': ['https://pypi.python.org/packages/source/p/paycheck/'], + }), + ('argparse', '1.2.1', { + 'source_urls': ['https://pypi.python.org/packages/source/a/argparse/'], + }), + ('lockfile', '0.9.1', { + 'source_urls': ['https://pypi.python.org/packages/source/l/lockfile/'], + }), + ('Cython', '0.20.2', { + 'source_urls': ['http://www.cython.org/release/'], + }), + ('six', '1.7.3', { + 'source_urls': ['https://pypi.python.org/packages/source/s/six/'], + }), + ('dateutil', '2.2', { + 'source_tmpl': 'python-%(name)s-%(version)s.tar.gz', + 'source_urls': ['https://pypi.python.org/packages/source/p/python-dateutil/'], + }), + ('deap', '1.0.1', { + 'source_urls': ['https://pypi.python.org/packages/source/d/deap/'], + }), + ('decorator', '3.4.0', { + 'source_urls': ['https://pypi.python.org/packages/source/d/decorator/'], + }), + ('arff', '2.0.1', { + 'source_tmpl': 'liac-%(name)s-%(version)s.zip', + 'source_urls': ['https://pypi.python.org/packages/source/l/liac-arff/'], + }), + ('pycrypto', '2.6.1', { + 'modulename': 'Crypto', + 'source_urls': ['http://ftp.dlitz.net/pub/dlitz/crypto/pycrypto/'], + }), + ('ecdsa', '0.11', { + 'source_urls': ['https://pypi.python.org/packages/source/e/ecdsa/'], + }), + ('paramiko', '1.14.0', { + 'source_urls': ['https://pypi.python.org/packages/source/p/paramiko/'], + }), + ('pyparsing', '2.0.2', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pyparsing/'], + }), +] + +moduleclass = 'lang' diff --git a/p/Python/Python-2.7.8-intel-2014b.eb b/p/Python/Python-2.7.8-intel-2014b.eb new file mode 100644 index 00000000..54121e1a --- /dev/null +++ b/p/Python/Python-2.7.8-intel-2014b.eb @@ -0,0 +1,101 @@ +name = 'Python' +version = '2.7.8' + +homepage = 'http://python.org/' +description = "Python is a programming language that lets you work more quickly and integrate your systems more effectively." + +toolchain = {'name': 'intel', 'version': '2014b'} +toolchainopts = {'pic': True, 'opt': True, 'optarch': True} + +numpyversion = '1.8.1' +scipyversion = '0.14.0' + +source_urls = ['http://www.python.org/ftp/%(namelower)s/%(version)s/'] +sources = [SOURCE_TGZ] + +# libffi build in python is still broken, see http://bugs.python.org/issue4130 +patches = ['python-2.7_libffi-include-xmmintrin.patch'] + +# python needs bzip2 to build the bz2 package +dependencies = [ + ('bzip2', '1.0.6'), + ('zlib', '1.2.8'), + ('libreadline', '6.3'), + ('ncurses', '5.9'), + # ('OpenSSL', '1.0.1g'), # OS dependency should be preferred for security reasons +] + +osdependencies = [('openssl-devel', 'libssl-dev', 'libopenssl-devel')] + +# order is important! +# Version updated 08/JULY/2014 +exts_list = [ + ('setuptools', '5.4.1', { + 'source_urls': ['https://pypi.python.org/packages/source/s/setuptools/'], + }), + ('pip', '1.5.6', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pip/'], + }), + ('nose', '1.3.3', { + 'source_urls': ['https://pypi.python.org/packages/source/n/nose/'], + }), + ('numpy', numpyversion, { + 'source_urls': [('http://sourceforge.net/projects/numpy/files/NumPy/%s' % numpyversion, 'download')], + 'patches': [ + 'numpy-%s-mkl.patch' % numpyversion, + ], + }), + ('scipy', scipyversion, { + 'source_urls': [('http://sourceforge.net/projects/scipy/files/scipy/%s' % scipyversion, 'download')], + }), + ('blist', '1.3.6', { + 'source_urls': ['https://pypi.python.org/packages/source/b/blist/'], + }), + ('mpi4py', '1.3.1', { + 'source_urls': ['http://bitbucket.org/mpi4py/mpi4py/downloads/'], + }), + ('paycheck', '1.0.2', { + 'source_urls': ['https://pypi.python.org/packages/source/p/paycheck/'], + }), + ('argparse', '1.2.1', { + 'source_urls': ['https://pypi.python.org/packages/source/a/argparse/'], + }), + ('lockfile', '0.9.1', { + 'source_urls': ['https://pypi.python.org/packages/source/l/lockfile/'], + }), + ('Cython', '0.20.2', { + 'source_urls': ['http://www.cython.org/release/'], + }), + ('six', '1.7.3', { + 'source_urls': ['https://pypi.python.org/packages/source/s/six/'], + }), + ('dateutil', '2.2', { + 'source_tmpl': 'python-%(name)s-%(version)s.tar.gz', + 'source_urls': ['https://pypi.python.org/packages/source/p/python-dateutil/'], + }), + ('deap', '1.0.1', { + 'source_urls': ['https://pypi.python.org/packages/source/d/deap/'], + }), + ('decorator', '3.4.0', { + 'source_urls': ['https://pypi.python.org/packages/source/d/decorator/'], + }), + ('arff', '2.0.1', { + 'source_tmpl': 'liac-%(name)s-%(version)s.zip', + 'source_urls': ['https://pypi.python.org/packages/source/l/liac-arff/'], + }), + ('pycrypto', '2.6.1', { + 'modulename': 'Crypto', + 'source_urls': ['http://ftp.dlitz.net/pub/dlitz/crypto/pycrypto/'], + }), + ('ecdsa', '0.11', { + 'source_urls': ['https://pypi.python.org/packages/source/e/ecdsa/'], + }), + ('paramiko', '1.14.0', { + 'source_urls': ['https://pypi.python.org/packages/source/p/paramiko/'], + }), + ('pyparsing', '2.0.2', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pyparsing/'], + }), +] + +moduleclass = 'lang' diff --git a/p/Python/Python-2.7.8-intel-2015a.eb b/p/Python/Python-2.7.8-intel-2015a.eb new file mode 100644 index 00000000..012b08ce --- /dev/null +++ b/p/Python/Python-2.7.8-intel-2015a.eb @@ -0,0 +1,100 @@ +name = 'Python' +version = '2.7.8' + +homepage = 'http://python.org/' +description = "Python is a programming language that lets you work more quickly and integrate your systems more effectively." + +toolchain = {'name': 'intel', 'version': '2015a'} +toolchainopts = {'pic': True, 'opt': True, 'optarch': True} + +numpyversion = '1.9.1' +scipyversion = '0.14.1' + +source_urls = ['http://www.python.org/ftp/%(namelower)s/%(version)s/'] +sources = [SOURCE_TGZ] + +# libffi build in python is still broken, see http://bugs.python.org/issue4130 +patches = ['python-2.7_libffi-include-xmmintrin.patch'] + +# python needs bzip2 to build the bz2 package +dependencies = [ + ('bzip2', '1.0.6'), + ('zlib', '1.2.8'), + ('libreadline', '6.3'), + ('ncurses', '5.9'), + # ('OpenSSL', '1.0.1g'), # OS dependency should be preferred if the os version is more recent then this version, it's + # nice to have an up to date openssl for security reasons +] + +# order is important! +# Version updated 08/JULY/2014 +exts_list = [ + ('setuptools', '5.4.1', { + 'source_urls': ['https://pypi.python.org/packages/source/s/setuptools/'], + }), + ('pip', '1.5.6', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pip/'], + }), + ('nose', '1.3.3', { + 'source_urls': ['https://pypi.python.org/packages/source/n/nose/'], + }), + ('numpy', numpyversion, { + 'source_urls': [('http://sourceforge.net/projects/numpy/files/NumPy/%s' % numpyversion, 'download')], + 'patches': ['numpy-1.8.0-mkl.patch'], + }), + ('scipy', scipyversion, { + 'source_urls': [('http://sourceforge.net/projects/scipy/files/scipy/%s' % scipyversion, 'download')], + }), + ('blist', '1.3.6', { + 'source_urls': ['https://pypi.python.org/packages/source/b/blist/'], + }), + ('mpi4py', '1.3.1', { + 'source_urls': ['http://bitbucket.org/mpi4py/mpi4py/downloads/'], + }), + ('paycheck', '1.0.2', { + 'source_urls': ['https://pypi.python.org/packages/source/p/paycheck/'], + }), + ('argparse', '1.2.1', { + 'source_urls': ['https://pypi.python.org/packages/source/a/argparse/'], + }), + ('lockfile', '0.9.1', { + 'source_urls': ['https://pypi.python.org/packages/source/l/lockfile/'], + }), + ('Cython', '0.20.2', { + 'source_urls': ['http://www.cython.org/release/'], + }), + ('six', '1.7.3', { + 'source_urls': ['https://pypi.python.org/packages/source/s/six/'], + }), + ('dateutil', '2.2', { + 'source_tmpl': 'python-%(name)s-%(version)s.tar.gz', + 'source_urls': ['https://pypi.python.org/packages/source/p/python-dateutil/'], + }), + ('deap', '1.0.1', { + 'source_urls': ['https://pypi.python.org/packages/source/d/deap/'], + }), + ('decorator', '3.4.0', { + 'source_urls': ['https://pypi.python.org/packages/source/d/decorator/'], + }), + ('arff', '2.0.1', { + 'source_tmpl': 'liac-%(name)s-%(version)s.zip', + 'source_urls': ['https://pypi.python.org/packages/source/l/liac-arff/'], + }), + ('pycrypto', '2.6.1', { + 'modulename': 'Crypto', + 'source_urls': ['http://ftp.dlitz.net/pub/dlitz/crypto/pycrypto/'], + }), + ('ecdsa', '0.11', { + 'source_urls': ['https://pypi.python.org/packages/source/e/ecdsa/'], + }), + ('paramiko', '1.14.0', { + 'source_urls': ['https://pypi.python.org/packages/source/p/paramiko/'], + }), + ('pyparsing', '2.0.2', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pyparsing/'], + }), +] + +osdependencies = [('openssl-devel', 'libssl-dev', 'libopenssl-devel')] + +moduleclass = 'lang' diff --git a/p/Python/Python-2.7.8-intel-2015b.eb b/p/Python/Python-2.7.8-intel-2015b.eb new file mode 100644 index 00000000..0dbeb0c5 --- /dev/null +++ b/p/Python/Python-2.7.8-intel-2015b.eb @@ -0,0 +1,127 @@ +# Built with EasyBuild version 2.1.1 on 2015-06-29_22-47-32 +name = 'Python' +version = '2.7.8' + +homepage = 'http://python.org/' +description = "Python is a programming language that lets you work more quickly and integrate your systems more effectively." + +toolchain = {'name': 'intel', 'version': '2015b'} +toolchainopts = {'pic': True, 'opt': True, 'optarch': True} + +numpyversion = '1.8.1' +scipyversion = '0.14.0' + +source_urls = ['http://www.python.org/ftp/%(namelower)s/%(version)s/'] +sources = [SOURCE_TGZ] + +# libffi build in python is still broken, see http://bugs.python.org/issue4130 +patches = ['python-2.7_libffi-include-xmmintrin.patch'] + +# python needs bzip2 to build the bz2 package +dependencies = [ + ('bzip2', '1.0.6'), + ('zlib', '1.2.8'), + ('libreadline', '6.3'), + ('ncurses', '5.9'), +# ('OpenSSL', '1.0.1g'), # OS dependency should be preferred for security reasons +] + +osdependencies = [('openssl-devel', 'libssl-dev', 'libopenssl-devel')] + +# order is important! +# Version updated 08/JULY/2014 +exts_list = [ + ('setuptools', '5.4.1', { + 'source_urls': ['http://pypi.python.org/packages/source/s/setuptools/'], + }), + ('pip', '1.5.6', { + 'source_urls': ['http://pypi.python.org/packages/source/p/pip/'], + }), + ('nose', '1.3.3', { + 'source_urls': ['http://pypi.python.org/packages/source/n/nose/'], + }), + ('numpy', numpyversion, { + 'source_urls': [('http://sourceforge.net/projects/numpy/files/NumPy/%s' % numpyversion, 'download')], + 'patches': [ + 'numpy-%s-mkl.patch' % numpyversion, + ], + }), + ('scipy', scipyversion, { + 'source_urls': [('http://sourceforge.net/projects/scipy/files/scipy/%s' % scipyversion, 'download')], + }), + ('blist', '1.3.6', { + 'source_urls': ['http://pypi.python.org/packages/source/b/blist/'], + }), + ('mpi4py', '1.3.1', { + 'source_urls': ['http://bitbucket.org/mpi4py/mpi4py/downloads/'], + }), + ('paycheck', '1.0.2', { + 'source_urls': ['http://pypi.python.org/packages/source/p/paycheck/'], + }), + ('argparse', '1.2.1', { + 'source_urls': ['http://argparse.googlecode.com/files/'], + }), + ('lockfile', '0.9.1', { + 'source_urls': ['https://pypi.python.org/packages/source/l/lockfile/'], + }), + ('Cython', '0.20.2', { + 'source_urls': ['http://www.cython.org/release/'], + }), + ('six', '1.7.3', { + 'source_urls': ['https://pypi.python.org/packages/source/s/six/'], + }), + ('dateutil', '2.2', { + 'source_tmpl': 'python-%(name)s-%(version)s.tar.gz', + 'source_urls': ['http://pypi.python.org/packages/source/p/python-dateutil/'], + }), + ('deap', '1.0.1', { + 'source_urls': ['https://pypi.python.org/packages/source/d/deap/'], + }), + ('decorator', '3.4.0', { + 'source_urls': ['https://pypi.python.org/packages/source/d/decorator/'], + }), + ('arff', '2.0.1', { + 'source_tmpl': 'liac-%(name)s-%(version)s.zip', + 'source_urls': ['https://pypi.python.org/packages/source/l/liac-arff/'], + }), + ('pycrypto', '2.6.1', { + 'modulename': 'Crypto', + 'source_urls': ['http://ftp.dlitz.net/pub/dlitz/crypto/pycrypto/'], + }), + ('ecdsa', '0.11', { + 'source_urls': ['https://pypi.python.org/packages/source/e/ecdsa/'], + }), + ('paramiko', '1.14.0', { + 'source_urls': ['https://pypi.python.org/packages/source/p/paramiko/'], + }), + ('pyparsing', '2.0.2', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pyparsing/'], + }), +] + +moduleclass = 'lang' + +# Build statistics +buildstats = [{ + "easybuild-framework_version": "2.1.1", + "easybuild-easyblocks_version": "2.1.1", + "timestamp": 1435610851, + "build_time": 1496.81, + "install_size": 604806935, + "command_line": ['--buildpath=/easybuild/build', '--installpath=/apps', '--installpath-modules=/apps/modules', '--installpath-software=/apps', '--module-naming-scheme=IT4IModuleNamingScheme', '--modules-footer=/easybuild/templates/modules/jas02_footer.txt', '--repositorypath=/easybuild/file-repository', '--robot=/easybuild/easyconfigs-salomon/easybuild/easyconfigs', '--robot-paths=/easybuild/easyconfigs-salomon/easybuild/easyconfigs', '--sourcepath=/easybuild/sources', '--try-toolchain="[\'intel\', \'2015b\']"', 'RELION-1.3-intel-2014b.eb'], + "modules_tool": ('EnvironmentModulesC', '/usr/bin/modulecmd', '3.2.10'), + "core_count": 28, + "cpu_model": "Intel(R) Xeon(R) CPU E5-2695 v3 @ 2.30GHz", + "cpu_speed": 2300.041, + "cpu_vendor": "Intel", + "gcc_version": "Using built-in specs.; COLLECT_GCC=gcc; COLLECT_LTO_WRAPPER=/apps/all/GCC/5.1.0-binutils-2.25/libexec/gcc/x86_64-unknown-linux-gnu/5.1.0/lto-wrapper; Target: x86_64-unknown-linux-gnu; Configured with: ../configure --enable-languages=c,c++,fortran --enable-lto --enable-checking=release --disable-multilib --enable-shared=yes --enable-static=yes --enable-threads=posix --enable-gold=default --enable-plugins --enable-ld --with-plugin-ld=ld.gold --prefix=/apps/all/GCC/5.1.0-binutils-2.25 --with-local-prefix=/apps/all/GCC/5.1.0-binutils-2.25 --enable-bootstrap --with-isl=/easybuild/build/GCC/5.1.0/dummy--binutils-2.25/gcc-5.1.0/stage2_stuff; Thread model: posix; gcc version 5.1.0 (GCC) ; ", + "glibc_version": "2.12", + "hostname": "login1", + "os_name": "centos", + "os_type": "Linux", + "os_version": "6.6", + "platform_name": "x86_64-unknown-linux", + "python_version": "2.6.6 (r266:84292, Jan 22 2014, 09:42:36) ; [GCC 4.4.7 20120313 (Red Hat 4.4.7-4)]", + "system_gcc_path": "/apps/all/GCC/5.1.0-binutils-2.25/bin/gcc", + "system_python_path": "/usr/bin/python", +}] diff --git a/p/Python/Python-2.7.9-CrayGNU-2015.06-bare.eb b/p/Python/Python-2.7.9-CrayGNU-2015.06-bare.eb new file mode 100644 index 00000000..92748077 --- /dev/null +++ b/p/Python/Python-2.7.9-CrayGNU-2015.06-bare.eb @@ -0,0 +1,39 @@ +name = 'Python' +version = '2.7.9' +versionsuffix = '-bare' + +homepage = 'http://python.org/' +description = "Python is a programming language that lets you work more quickly and integrate your systems more effectively." + +toolchain = {'name': 'CrayGNU', 'version': '2015.06'} +toolchainopts = {'pic': True, 'opt': True} + +source_urls = ['http://www.python.org/ftp/%(namelower)s/%(version)s/'] +sources = [SOURCE_TGZ] + +# python needs bzip2 to build the bz2 package +dependencies = [ + ('bzip2', '1.0.6'), + ('zlib', '1.2.8'), + ('libreadline', '6.3'), + ('ncurses', '5.9'), +# ('OpenSSL', '1.0.1k'), # OS dependency should be preferred if the os version is more recent then this version, it's +# nice to have an up to date openssl for security reasons +] + +osdependencies = [('openssl-devel', 'libssl-dev', 'libopenssl-devel'), 'tk-devel'] + +# bare installation: no extensions included +exts_list = [] + +buildopts = 'LINKCC="$CC -dynamic"' + +sanity_check_commands = [ + ('python', '--version'), + ('python', '-c "import _ctypes"'), # make sure that foreign function interface (libffi) works + ('python', '-c "import _ssl"'), # make sure SSL support is enabled one way or another + ('python', '-c "import readline"'), # make sure readline module is installed (requires libreadline) + ('python', '-c "import Tkinter"'), # make sure Tkinter module is installed (requires Tk) +] + +moduleclass = 'lang' diff --git a/p/Python/Python-2.7.9-CrayGNU-2015.06.eb b/p/Python/Python-2.7.9-CrayGNU-2015.06.eb new file mode 100644 index 00000000..21613bcf --- /dev/null +++ b/p/Python/Python-2.7.9-CrayGNU-2015.06.eb @@ -0,0 +1,115 @@ +name = 'Python' +version = '2.7.9' + +homepage = 'http://python.org/' +description = "Python is a programming language that lets you work more quickly and integrate your systems more effectively." + +toolchain = {'name': 'CrayGNU', 'version': '2015.06'} +toolchainopts = {'pic': True, 'opt': True, 'optarch': True} + +numpyversion = '1.9.1' +scipyversion = '0.14.1' + +source_urls = ['http://www.python.org/ftp/%(namelower)s/%(version)s/'] +sources = [SOURCE_TGZ] + +# python needs bzip2 to build the bz2 package +dependencies = [ + ('bzip2', '1.0.6'), + ('zlib', '1.2.8'), + ('libreadline', '6.3'), + ('ncurses', '5.9'), +# ('OpenSSL', '1.0.1k'), # OS dependency should be preferred if the os version is more recent then this version, it's +# nice to have an up to date openssl for security reasons +] + +osdependencies = [('openssl-devel', 'libssl-dev', 'libopenssl-devel'), 'tk-devel'] + +buildopts = 'LINKCC="$CC -dynamic"' + +# order is important! +# package versions updated Jan 19th 2015 +exts_list = [ + ('setuptools', '11.3.1', { + 'source_urls': ['https://pypi.python.org/packages/source/s/setuptools/'], + }), + ('pip', '6.0.6', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pip/'], + }), + ('nose', '1.3.4', { + 'source_urls': ['https://pypi.python.org/packages/source/n/nose/'], + }), + ('numpy', numpyversion, { + 'source_urls': [('http://sourceforge.net/projects/numpy/files/NumPy/%s' % numpyversion, 'download')], + 'patches': [ + 'numpy-1.8.0-mkl.patch', # % numpyversion, + ], + }), + ('scipy', scipyversion, { + 'source_urls': [('http://sourceforge.net/projects/scipy/files/scipy/%s' % scipyversion, 'download')], + }), + ('blist', '1.3.6', { + 'source_urls': ['https://pypi.python.org/packages/source/b/blist/'], + }), + ('mpi4py', '1.3.1', { + 'source_urls': ['http://bitbucket.org/mpi4py/mpi4py/downloads/'], + }), + ('paycheck', '1.0.2', { + 'source_urls': ['https://pypi.python.org/packages/source/p/paycheck/'], + }), + ('argparse', '1.2.1', { + 'source_urls': ['https://pypi.python.org/packages/source/a/argparse/'], + }), + ('lockfile', '0.10.2', { + 'source_urls': ['https://pypi.python.org/packages/source/l/lockfile/'], + }), + ('Cython', '0.21.2', { + 'source_urls': ['http://www.cython.org/release/'], + }), + ('six', '1.9.0', { + 'source_urls': ['https://pypi.python.org/packages/source/s/six/'], + }), + ('dateutil', '2.4.0', { + 'source_tmpl': 'python-%(name)s-%(version)s.tar.gz', + 'source_urls': ['https://pypi.python.org/packages/source/p/python-dateutil/'], + }), + ('deap', '1.0.1', { + 'source_urls': ['https://pypi.python.org/packages/source/d/deap/'], + }), + ('decorator', '3.4.0', { + 'source_urls': ['https://pypi.python.org/packages/source/d/decorator/'], + }), + ('arff', '2.0.1', { + 'source_tmpl': 'liac-%(name)s-%(version)s.zip', + 'source_urls': ['https://pypi.python.org/packages/source/l/liac-arff/'], + }), + ('pycrypto', '2.6.1', { + 'modulename': 'Crypto', + 'source_urls': ['http://ftp.dlitz.net/pub/dlitz/crypto/pycrypto/'], + }), + ('ecdsa', '0.11', { + 'source_urls': ['https://pypi.python.org/packages/source/e/ecdsa/'], + }), + ('paramiko', '1.15.2', { + 'source_urls': ['https://pypi.python.org/packages/source/p/paramiko/'], + }), + ('pyparsing', '2.0.3', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pyparsing/'], + }), + ('netifaces', '0.10.4', { + 'source_urls': ['https://pypi.python.org/packages/source/n/netifaces'], + }), + ('netaddr', '0.7.13', { + 'source_urls': ['https://pypi.python.org/packages/source/n/netaddr'], + }), +] + +sanity_check_commands = [ + ('python', '--version'), + ('python', '-c "import _ctypes"'), # make sure that foreign function interface (libffi) works + ('python', '-c "import _ssl"'), # make sure SSL support is enabled one way or another + ('python', '-c "import readline"'), # make sure readline module is installed (requires libreadline) + ('python', '-c "import Tkinter"'), # make sure Tkinter module is installed (requires Tk) +] + +moduleclass = 'lang' diff --git a/p/Python/Python-2.7.9-CrayGNU-2015.11-bare.eb b/p/Python/Python-2.7.9-CrayGNU-2015.11-bare.eb new file mode 100644 index 00000000..f7679002 --- /dev/null +++ b/p/Python/Python-2.7.9-CrayGNU-2015.11-bare.eb @@ -0,0 +1,39 @@ +name = 'Python' +version = '2.7.9' +versionsuffix = '-bare' + +homepage = 'http://python.org/' +description = "Python is a programming language that lets you work more quickly and integrate your systems more effectively." + +toolchain = {'name': 'CrayGNU', 'version': '2015.11'} +toolchainopts = {'pic': True, 'opt': True} + +source_urls = ['http://www.python.org/ftp/%(namelower)s/%(version)s/'] +sources = [SOURCE_TGZ] + +# python needs bzip2 to build the bz2 package +dependencies = [ + ('bzip2', '1.0.6'), + ('zlib', '1.2.8'), + ('libreadline', '6.3'), + ('ncurses', '5.9'), +# ('OpenSSL', '1.0.1k'), # OS dependency should be preferred if the os version is more recent then this version, it's +# nice to have an up to date openssl for security reasons +] + +osdependencies = [('openssl-devel', 'libssl-dev', 'libopenssl-devel'), 'tk-devel'] + +# bare installation: no extensions included +exts_list = [] + +buildopts = 'LINKCC="$CC -dynamic"' + +sanity_check_commands = [ + ('python', '--version'), + ('python', '-c "import _ctypes"'), # make sure that foreign function interface (libffi) works + ('python', '-c "import _ssl"'), # make sure SSL support is enabled one way or another + ('python', '-c "import readline"'), # make sure readline module is installed (requires libreadline) + ('python', '-c "import Tkinter"'), # make sure Tkinter module is installed (requires Tk) +] + +moduleclass = 'lang' diff --git a/p/Python/Python-2.7.9-CrayGNU-2015.11.eb b/p/Python/Python-2.7.9-CrayGNU-2015.11.eb new file mode 100644 index 00000000..99583088 --- /dev/null +++ b/p/Python/Python-2.7.9-CrayGNU-2015.11.eb @@ -0,0 +1,115 @@ +name = 'Python' +version = '2.7.9' + +homepage = 'http://python.org/' +description = "Python is a programming language that lets you work more quickly and integrate your systems more effectively." + +toolchain = {'name': 'CrayGNU', 'version': '2015.11'} +toolchainopts = {'pic': True, 'opt': True, 'optarch': True} + +numpyversion = '1.9.1' +scipyversion = '0.14.1' + +source_urls = ['http://www.python.org/ftp/%(namelower)s/%(version)s/'] +sources = [SOURCE_TGZ] + +# python needs bzip2 to build the bz2 package +dependencies = [ + ('bzip2', '1.0.6'), + ('zlib', '1.2.8'), + ('libreadline', '6.3'), + ('ncurses', '5.9'), +# ('OpenSSL', '1.0.1k'), # OS dependency should be preferred if the os version is more recent then this version, it's +# nice to have an up to date openssl for security reasons +] + +osdependencies = [('openssl-devel', 'libssl-dev', 'libopenssl-devel'), 'tk-devel'] + +buildopts = 'LINKCC="$CC -dynamic"' + +# order is important! +# package versions updated Jan 19th 2015 +exts_list = [ + ('setuptools', '11.3.1', { + 'source_urls': ['https://pypi.python.org/packages/source/s/setuptools/'], + }), + ('pip', '6.0.6', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pip/'], + }), + ('nose', '1.3.4', { + 'source_urls': ['https://pypi.python.org/packages/source/n/nose/'], + }), + ('numpy', numpyversion, { + 'source_urls': [('http://sourceforge.net/projects/numpy/files/NumPy/%s' % numpyversion, 'download')], + 'patches': [ + 'numpy-1.8.0-mkl.patch', # % numpyversion, + ], + }), + ('scipy', scipyversion, { + 'source_urls': [('http://sourceforge.net/projects/scipy/files/scipy/%s' % scipyversion, 'download')], + }), + ('blist', '1.3.6', { + 'source_urls': ['https://pypi.python.org/packages/source/b/blist/'], + }), + ('mpi4py', '1.3.1', { + 'source_urls': ['http://bitbucket.org/mpi4py/mpi4py/downloads/'], + }), + ('paycheck', '1.0.2', { + 'source_urls': ['https://pypi.python.org/packages/source/p/paycheck/'], + }), + ('argparse', '1.2.1', { + 'source_urls': ['https://pypi.python.org/packages/source/a/argparse/'], + }), + ('lockfile', '0.10.2', { + 'source_urls': ['https://pypi.python.org/packages/source/l/lockfile/'], + }), + ('Cython', '0.21.2', { + 'source_urls': ['http://www.cython.org/release/'], + }), + ('six', '1.9.0', { + 'source_urls': ['https://pypi.python.org/packages/source/s/six/'], + }), + ('dateutil', '2.4.0', { + 'source_tmpl': 'python-%(name)s-%(version)s.tar.gz', + 'source_urls': ['https://pypi.python.org/packages/source/p/python-dateutil/'], + }), + ('deap', '1.0.1', { + 'source_urls': ['https://pypi.python.org/packages/source/d/deap/'], + }), + ('decorator', '3.4.0', { + 'source_urls': ['https://pypi.python.org/packages/source/d/decorator/'], + }), + ('arff', '2.0.1', { + 'source_tmpl': 'liac-%(name)s-%(version)s.zip', + 'source_urls': ['https://pypi.python.org/packages/source/l/liac-arff/'], + }), + ('pycrypto', '2.6.1', { + 'modulename': 'Crypto', + 'source_urls': ['http://ftp.dlitz.net/pub/dlitz/crypto/pycrypto/'], + }), + ('ecdsa', '0.11', { + 'source_urls': ['https://pypi.python.org/packages/source/e/ecdsa/'], + }), + ('paramiko', '1.15.2', { + 'source_urls': ['https://pypi.python.org/packages/source/p/paramiko/'], + }), + ('pyparsing', '2.0.3', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pyparsing/'], + }), + ('netifaces', '0.10.4', { + 'source_urls': ['https://pypi.python.org/packages/source/n/netifaces'], + }), + ('netaddr', '0.7.13', { + 'source_urls': ['https://pypi.python.org/packages/source/n/netaddr'], + }), +] + +sanity_check_commands = [ + ('python', '--version'), + ('python', '-c "import _ctypes"'), # make sure that foreign function interface (libffi) works + ('python', '-c "import _ssl"'), # make sure SSL support is enabled one way or another + ('python', '-c "import readline"'), # make sure readline module is installed (requires libreadline) + ('python', '-c "import Tkinter"'), # make sure Tkinter module is installed (requires Tk) +] + +moduleclass = 'lang' diff --git a/p/Python/Python-2.7.9-GCC-4.8.4-bare.eb b/p/Python/Python-2.7.9-GCC-4.8.4-bare.eb new file mode 100644 index 00000000..c83dff18 --- /dev/null +++ b/p/Python/Python-2.7.9-GCC-4.8.4-bare.eb @@ -0,0 +1,31 @@ +name = 'Python' +version = '2.7.9' +versionsuffix = '-bare' + +homepage = 'http://python.org/' +description = "Python is a programming language that lets you work more quickly and integrate your systems more effectively." + +toolchain = {'name': 'GCC', 'version': '4.8.4'} +toolchainopts = {'pic': True} + +source_urls = ['http://www.python.org/ftp/%(namelower)s/%(version)s/'] +sources = [SOURCE_TGZ] + +# python needs bzip2 to build the bz2 package +dependencies = [ + ('bzip2', '1.0.6'), + ('zlib', '1.2.8'), + ('libreadline', '6.3'), + ('ncurses', '5.9'), + ('SQLite', '3.8.8.1'), + ('Tk', '8.6.3', '-no-X11'), # this requires a full X11 stack + #('OpenSSL', '1.0.1k'), # OS dependency should be preferred if the os version is more recent then this version, it's + #nice to have an up to date openssl for security reasons +] + +osdependencies = [('openssl-devel', 'libssl-dev')] + +# bare installation: no extensions included +exts_list = [] + +moduleclass = 'lang' diff --git a/p/Python/Python-2.7.9-GCC-4.9.2-bare.eb b/p/Python/Python-2.7.9-GCC-4.9.2-bare.eb new file mode 100644 index 00000000..3b6c9652 --- /dev/null +++ b/p/Python/Python-2.7.9-GCC-4.9.2-bare.eb @@ -0,0 +1,31 @@ +name = 'Python' +version = '2.7.9' +versionsuffix = '-bare' + +homepage = 'http://python.org/' +description = "Python is a programming language that lets you work more quickly and integrate your systems more effectively." + +toolchain = {'name': 'GCC', 'version': '4.9.2'} +toolchainopts = {'pic': True, 'opt': True, 'optarch': True} + +source_urls = ['http://www.python.org/ftp/%(namelower)s/%(version)s/'] +sources = [SOURCE_TGZ] + +# python needs bzip2 to build the bz2 package +dependencies = [ + ('bzip2', '1.0.6'), + ('zlib', '1.2.8'), + ('libreadline', '6.3'), + ('ncurses', '5.9'), + ('SQLite', '3.8.8.1'), + ('Tk', '8.6.3', '-no-X11'), + # ('OpenSSL', '1.0.1k'), # OS dependency should be preferred if the os version is more recent then this version, it's + # nice to have an up to date openssl for security reasons +] + +osdependencies = [('openssl-devel', 'libssl-dev')] + +# bare installation: no extensions included +exts_list = [] + +moduleclass = 'lang' diff --git a/p/Python/Python-2.7.9-GNU-5.1.0-2.25.eb b/p/Python/Python-2.7.9-GNU-5.1.0-2.25.eb new file mode 100644 index 00000000..c9518151 --- /dev/null +++ b/p/Python/Python-2.7.9-GNU-5.1.0-2.25.eb @@ -0,0 +1,40 @@ +name = 'Python' +version = '2.7.9' + +homepage = 'http://python.org/' +description = "Python is a programming language that lets you work more quickly and integrate your systems more effectively." + +toolchain = {'name': 'GNU', 'version': '5.1.0-2.25'} +toolchainopts = {'pic': True, 'opt': True, 'optarch': True} + +numpyversion = '1.9.1' +scipyversion = '0.14.1' + +source_urls = ['http://www.python.org/ftp/%(namelower)s/%(version)s/'] +sources = [SOURCE_TGZ] + +# python needs bzip2 to build the bz2 package +dependencies = [ + ('bzip2', '1.0.6'), + ('zlib', '1.2.8'), + ('libreadline', '6.3'), + ('ncurses', '5.9'), + ('SQLite', '3.8.8.1'), +# ('OpenSSL', '1.0.1k'), # OS dependency should be preferred if the os version is more recent then this version, it's +# nice to have an up to date openssl for security reasons +] + +osdependencies = [('openssl-devel', 'libssl-dev', 'libopenssl-devel')] + +# order is important! +# package versions updated Jan 19th 2015 +exts_list = [ + ('setuptools', '11.3.1', { + 'source_urls': ['http://pypi.python.org/packages/source/s/setuptools/'], + }), + ('pip', '6.0.6', { + 'source_urls': ['http://pypi.python.org/packages/source/p/pip/'], + }), +] + +moduleclass = 'lang' diff --git a/p/Python/Python-2.7.9-foss-2015.05.eb b/p/Python/Python-2.7.9-foss-2015.05.eb new file mode 100644 index 00000000..75386ccc --- /dev/null +++ b/p/Python/Python-2.7.9-foss-2015.05.eb @@ -0,0 +1,116 @@ +name = 'Python' +version = '2.7.9' + +homepage = 'https://python.org/' +description = "Python is a programming language that lets you work more quickly and integrate your systems more effectively." + +toolchain = {'name': 'foss', 'version': '2015.05'} +toolchainopts = {'pic': True, 'opt': True, 'optarch': True} + +numpyversion = '1.9.1' +scipyversion = '0.14.1' + +source_urls = ['https://www.python.org/ftp/%(namelower)s/%(version)s/'] +sources = [SOURCE_TGZ] + +# python needs bzip2 to build the bz2 package +dependencies = [ + ('bzip2', '1.0.6'), + ('zlib', '1.2.8'), + ('libreadline', '6.3'), + ('ncurses', '5.9'), + ('SQLite', '3.8.8.1'), + ('Tk', '8.6.3', '-no-X11'), + # ('OpenSSL', '1.0.1k'), # OS dependency should be preferred if the os version is more recent then this version, it's + # nice to have an up to date openssl for security reasons +] + +osdependencies = [('openssl-devel', 'libssl-dev', 'libopenssl-devel')] + +# order is important! +# package versions updated Jan 19th 2015 +exts_list = [ + ('setuptools', '11.3.1', { + 'source_urls': ['https://pypi.python.org/packages/source/s/setuptools/'], + }), + ('pip', '6.0.6', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pip/'], + }), + ('nose', '1.3.4', { + 'source_urls': ['https://pypi.python.org/packages/source/n/nose/'], + }), + ('numpy', numpyversion, { + 'source_urls': [('https://sourceforge.net/projects/numpy/files/NumPy/%s' % numpyversion, 'download')], + }), + ('scipy', scipyversion, { + 'source_urls': [('https://sourceforge.net/projects/scipy/files/scipy/%s' % scipyversion, 'download')], + }), + ('blist', '1.3.6', { + 'source_urls': ['https://pypi.python.org/packages/source/b/blist/'], + }), + ('mpi4py', '1.3.1', { + 'source_urls': ['https://bitbucket.org/mpi4py/mpi4py/downloads/'], + }), + ('paycheck', '1.0.2', { + 'source_urls': ['https://pypi.python.org/packages/source/p/paycheck/'], + }), + ('argparse', '1.2.1', { + 'source_urls': ['https://pypi.python.org/packages/source/a/argparse/'], + }), + ('pbr', '0.10.8', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pbr/'], + }), + ('lockfile', '0.10.2', { + 'source_urls': ['https://pypi.python.org/packages/source/l/lockfile/'], + }), + ('Cython', '0.21.2', { + 'source_urls': ['http://www.cython.org/release/'], + }), + ('six', '1.9.0', { + 'source_urls': ['https://pypi.python.org/packages/source/s/six/'], + }), + ('dateutil', '2.4.0', { + 'source_tmpl': 'python-%(name)s-%(version)s.tar.gz', + 'source_urls': ['https://pypi.python.org/packages/source/p/python-dateutil/'], + }), + ('deap', '1.0.1', { + 'source_urls': ['https://pypi.python.org/packages/source/d/deap/'], + }), + ('decorator', '3.4.0', { + 'source_urls': ['https://pypi.python.org/packages/source/d/decorator/'], + }), + ('arff', '2.0.1', { + 'source_tmpl': 'liac-%(name)s-%(version)s.zip', + 'source_urls': ['https://pypi.python.org/packages/source/l/liac-arff/'], + }), + ('pycrypto', '2.6.1', { + 'modulename': 'Crypto', + 'source_urls': ['https://ftp.dlitz.net/pub/dlitz/crypto/pycrypto/'], + }), + ('ecdsa', '0.11', { + 'source_urls': ['https://pypi.python.org/packages/source/e/ecdsa/'], + }), + ('paramiko', '1.15.2', { + 'source_urls': ['https://pypi.python.org/packages/source/p/paramiko/'], + }), + ('pyparsing', '2.0.3', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pyparsing/'], + }), + ('netifaces', '0.10.4', { + 'source_urls': ['https://pypi.python.org/packages/source/n/netifaces'], + }), + ('netaddr', '0.7.13', { + 'source_urls': ['https://pypi.python.org/packages/source/n/netaddr'], + }), + ('mock', '1.0.1', { + 'source_urls': ['https://pypi.python.org/packages/source/m/mock'], + }), + ('pytz', '2014.10', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pytz'], + }), + ('pandas', '0.16.0', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pandas'], + }), +] + +moduleclass = 'lang' diff --git a/p/Python/Python-2.7.9-foss-2015a-bare.eb b/p/Python/Python-2.7.9-foss-2015a-bare.eb new file mode 100644 index 00000000..a04b4992 --- /dev/null +++ b/p/Python/Python-2.7.9-foss-2015a-bare.eb @@ -0,0 +1,31 @@ +name = 'Python' +version = '2.7.9' +versionsuffix = '-bare' + +homepage = 'http://python.org/' +description = "Python is a programming language that lets you work more quickly and integrate your systems more effectively." + +toolchain = {'name': 'foss', 'version': '2015a'} +toolchainopts = {'pic': True, 'opt': True, 'optarch': True} + +source_urls = ['http://www.python.org/ftp/%(namelower)s/%(version)s/'] +sources = [SOURCE_TGZ] + +# python needs bzip2 to build the bz2 package +dependencies = [ + ('bzip2', '1.0.6'), + ('zlib', '1.2.8'), + ('libreadline', '6.3'), + ('ncurses', '5.9'), + ('SQLite', '3.8.8.1'), + ('Tk', '8.6.3', '-no-X11'), + # ('OpenSSL', '1.0.1k'), # OS dependency should be preferred if the os version is more recent then this version, it's + # nice to have an up to date openssl for security reasons +] + +osdependencies = [('openssl-devel', 'libssl-dev', 'libopenssl-devel')] + +# bare installation: no extensions included +exts_list = [] + +moduleclass = 'lang' diff --git a/p/Python/Python-2.7.9-foss-2015a.eb b/p/Python/Python-2.7.9-foss-2015a.eb new file mode 100644 index 00000000..4d8258d2 --- /dev/null +++ b/p/Python/Python-2.7.9-foss-2015a.eb @@ -0,0 +1,116 @@ +name = 'Python' +version = '2.7.9' + +homepage = 'http://python.org/' +description = "Python is a programming language that lets you work more quickly and integrate your systems more effectively." + +toolchain = {'name': 'foss', 'version': '2015a'} +toolchainopts = {'pic': True, 'opt': True, 'optarch': True} + +numpyversion = '1.9.1' +scipyversion = '0.14.1' + +source_urls = ['http://www.python.org/ftp/%(namelower)s/%(version)s/'] +sources = [SOURCE_TGZ] + +# python needs bzip2 to build the bz2 package +dependencies = [ + ('bzip2', '1.0.6'), + ('zlib', '1.2.8'), + ('libreadline', '6.3'), + ('ncurses', '5.9'), + ('SQLite', '3.8.8.1'), + ('Tk', '8.6.3', '-no-X11'), + # ('OpenSSL', '1.0.1k'), # OS dependency should be preferred if the os version is more recent then this version, it's + # nice to have an up to date openssl for security reasons +] + +osdependencies = [('openssl-devel', 'libssl-dev', 'libopenssl-devel')] + +# order is important! +# package versions updated Jan 19th 2015 +exts_list = [ + ('setuptools', '11.3.1', { + 'source_urls': ['https://pypi.python.org/packages/source/s/setuptools/'], + }), + ('pip', '6.0.6', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pip/'], + }), + ('nose', '1.3.4', { + 'source_urls': ['https://pypi.python.org/packages/source/n/nose/'], + }), + ('numpy', numpyversion, { + 'source_urls': [('http://sourceforge.net/projects/numpy/files/NumPy/%s' % numpyversion, 'download')], + }), + ('scipy', scipyversion, { + 'source_urls': [('http://sourceforge.net/projects/scipy/files/scipy/%s' % scipyversion, 'download')], + }), + ('blist', '1.3.6', { + 'source_urls': ['https://pypi.python.org/packages/source/b/blist/'], + }), + ('mpi4py', '1.3.1', { + 'source_urls': ['http://bitbucket.org/mpi4py/mpi4py/downloads/'], + }), + ('paycheck', '1.0.2', { + 'source_urls': ['https://pypi.python.org/packages/source/p/paycheck/'], + }), + ('argparse', '1.2.1', { + 'source_urls': ['https://pypi.python.org/packages/source/a/argparse/'], + }), + ('pbr', '0.10.8', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pbr/'], + }), + ('lockfile', '0.10.2', { + 'source_urls': ['https://pypi.python.org/packages/source/l/lockfile/'], + }), + ('Cython', '0.21.2', { + 'source_urls': ['http://www.cython.org/release/'], + }), + ('six', '1.9.0', { + 'source_urls': ['https://pypi.python.org/packages/source/s/six/'], + }), + ('dateutil', '2.4.0', { + 'source_tmpl': 'python-%(name)s-%(version)s.tar.gz', + 'source_urls': ['https://pypi.python.org/packages/source/p/python-dateutil/'], + }), + ('deap', '1.0.1', { + 'source_urls': ['https://pypi.python.org/packages/source/d/deap/'], + }), + ('decorator', '3.4.0', { + 'source_urls': ['https://pypi.python.org/packages/source/d/decorator/'], + }), + ('arff', '2.0.1', { + 'source_tmpl': 'liac-%(name)s-%(version)s.zip', + 'source_urls': ['https://pypi.python.org/packages/source/l/liac-arff/'], + }), + ('pycrypto', '2.6.1', { + 'modulename': 'Crypto', + 'source_urls': ['http://ftp.dlitz.net/pub/dlitz/crypto/pycrypto/'], + }), + ('ecdsa', '0.11', { + 'source_urls': ['https://pypi.python.org/packages/source/e/ecdsa/'], + }), + ('paramiko', '1.15.2', { + 'source_urls': ['https://pypi.python.org/packages/source/p/paramiko/'], + }), + ('pyparsing', '2.0.3', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pyparsing/'], + }), + ('netifaces', '0.10.4', { + 'source_urls': ['https://pypi.python.org/packages/source/n/netifaces'], + }), + ('netaddr', '0.7.13', { + 'source_urls': ['https://pypi.python.org/packages/source/n/netaddr'], + }), + ('mock', '1.0.1', { + 'source_urls': ['https://pypi.python.org/packages/source/m/mock'], + }), + ('pytz', '2014.10', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pytz'], + }), + ('pandas', '0.16.0', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pandas'], + }), +] + +moduleclass = 'lang' diff --git a/p/Python/Python-2.7.9-foss-2015b.eb b/p/Python/Python-2.7.9-foss-2015b.eb new file mode 100644 index 00000000..81bfd4da --- /dev/null +++ b/p/Python/Python-2.7.9-foss-2015b.eb @@ -0,0 +1,116 @@ +name = 'Python' +version = '2.7.9' + +homepage = 'http://python.org/' +description = "Python is a programming language that lets you work more quickly and integrate your systems more effectively." + +toolchain = {'name': 'foss', 'version': '2015b'} +toolchainopts = {'pic': True, 'opt': True, 'optarch': True} + +numpyversion = '1.9.1' +scipyversion = '0.14.1' + +source_urls = ['http://www.python.org/ftp/%(namelower)s/%(version)s/'] +sources = [SOURCE_TGZ] + +# python needs bzip2 to build the bz2 package +dependencies = [ + ('bzip2', '1.0.6'), + ('zlib', '1.2.8'), + ('libreadline', '6.3'), + ('ncurses', '5.9'), + ('SQLite', '3.8.8.1'), + ('Tk', '8.6.3', '-no-X11'), +# ('OpenSSL', '1.0.1k'), # OS dependency should be preferred if the os version is more recent then this version, it's +# nice to have an up to date openssl for security reasons +] + +osdependencies = [('openssl-devel', 'libssl-dev', 'libopenssl-devel')] + +# order is important! +# package versions updated Jan 19th 2015 +exts_list = [ + ('setuptools', '11.3.1', { + 'source_urls': ['https://pypi.python.org/packages/source/s/setuptools/'], + }), + ('pip', '6.0.6', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pip/'], + }), + ('nose', '1.3.4', { + 'source_urls': ['https://pypi.python.org/packages/source/n/nose/'], + }), + ('numpy', numpyversion, { + 'source_urls': [('http://sourceforge.net/projects/numpy/files/NumPy/%s' % numpyversion, 'download')], + }), + ('scipy', scipyversion, { + 'source_urls': [('http://sourceforge.net/projects/scipy/files/scipy/%s' % scipyversion, 'download')], + }), + ('blist', '1.3.6', { + 'source_urls': ['https://pypi.python.org/packages/source/b/blist/'], + }), + ('mpi4py', '1.3.1', { + 'source_urls': ['http://bitbucket.org/mpi4py/mpi4py/downloads/'], + }), + ('paycheck', '1.0.2', { + 'source_urls': ['https://pypi.python.org/packages/source/p/paycheck/'], + }), + ('argparse', '1.2.1', { + 'source_urls': ['https://pypi.python.org/packages/source/a/argparse/'], + }), + ('pbr', '0.10.8', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pbr/'], + }), + ('lockfile', '0.10.2', { + 'source_urls': ['https://pypi.python.org/packages/source/l/lockfile/'], + }), + ('Cython', '0.21.2', { + 'source_urls': ['http://www.cython.org/release/'], + }), + ('six', '1.9.0', { + 'source_urls': ['https://pypi.python.org/packages/source/s/six/'], + }), + ('dateutil', '2.4.0', { + 'source_tmpl': 'python-%(name)s-%(version)s.tar.gz', + 'source_urls': ['https://pypi.python.org/packages/source/p/python-dateutil/'], + }), + ('deap', '1.0.1', { + 'source_urls': ['https://pypi.python.org/packages/source/d/deap/'], + }), + ('decorator', '3.4.0', { + 'source_urls': ['https://pypi.python.org/packages/source/d/decorator/'], + }), + ('arff', '2.0.1', { + 'source_tmpl': 'liac-%(name)s-%(version)s.zip', + 'source_urls': ['https://pypi.python.org/packages/source/l/liac-arff/'], + }), + ('pycrypto', '2.6.1', { + 'modulename': 'Crypto', + 'source_urls': ['http://ftp.dlitz.net/pub/dlitz/crypto/pycrypto/'], + }), + ('ecdsa', '0.11', { + 'source_urls': ['https://pypi.python.org/packages/source/e/ecdsa/'], + }), + ('paramiko', '1.15.2', { + 'source_urls': ['https://pypi.python.org/packages/source/p/paramiko/'], + }), + ('pyparsing', '2.0.3', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pyparsing/'], + }), + ('netifaces', '0.10.4', { + 'source_urls': ['https://pypi.python.org/packages/source/n/netifaces'], + }), + ('netaddr', '0.7.13', { + 'source_urls': ['https://pypi.python.org/packages/source/n/netaddr'], + }), + ('mock', '1.0.1', { + 'source_urls': ['https://pypi.python.org/packages/source/m/mock'], + }), + ('pytz', '2014.10', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pytz'], + }), + ('pandas', '0.16.0', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pandas'], + }), +] + +moduleclass = 'lang' diff --git a/p/Python/Python-2.7.9-foss-2015g.eb b/p/Python/Python-2.7.9-foss-2015g.eb new file mode 100644 index 00000000..cba0578d --- /dev/null +++ b/p/Python/Python-2.7.9-foss-2015g.eb @@ -0,0 +1,115 @@ +name = 'Python' +version = '2.7.9' + +homepage = 'http://python.org/' +description = "Python is a programming language that lets you work more quickly and integrate your systems more effectively." + +toolchain = {'name': 'foss', 'version': '2015g'} +toolchainopts = {'pic': True, 'opt': True, 'optarch': True} + +numpyversion = '1.9.1' +scipyversion = '0.14.1' + +source_urls = ['http://www.python.org/ftp/%(namelower)s/%(version)s/'] +sources = [SOURCE_TGZ] + +# python needs bzip2 to build the bz2 package +dependencies = [ + ('bzip2', '1.0.6'), + ('zlib', '1.2.8'), + ('libreadline', '6.3'), + ('ncurses', '5.9'), + ('SQLite', '3.8.8.1'), +# ('OpenSSL', '1.0.1k'), # OS dependency should be preferred if the os version is more recent then this version, it's +# nice to have an up to date openssl for security reasons +] + +osdependencies = [('openssl-devel', 'libssl-dev', 'libopenssl-devel')] + +# order is important! +# package versions updated Jan 19th 2015 +exts_list = [ + ('setuptools', '11.3.1', { + 'source_urls': ['http://pypi.python.org/packages/source/s/setuptools/'], + }), + ('pip', '6.0.6', { + 'source_urls': ['http://pypi.python.org/packages/source/p/pip/'], + }), + ('nose', '1.3.4', { + 'source_urls': ['http://pypi.python.org/packages/source/n/nose/'], + }), + ('numpy', numpyversion, { + 'source_urls': [('http://sourceforge.net/projects/numpy/files/NumPy/%s' % numpyversion, 'download')], + }), + ('scipy', scipyversion, { + 'source_urls': [('http://sourceforge.net/projects/scipy/files/scipy/%s' % scipyversion, 'download')], + }), + ('blist', '1.3.6', { + 'source_urls': ['http://pypi.python.org/packages/source/b/blist/'], + }), + ('mpi4py', '1.3.1', { + 'source_urls': ['http://bitbucket.org/mpi4py/mpi4py/downloads/'], + }), + ('paycheck', '1.0.2', { + 'source_urls': ['http://pypi.python.org/packages/source/p/paycheck/'], + }), + ('argparse', '1.2.1', { + 'source_urls': ['http://argparse.googlecode.com/files/'], + }), + ('pbr', '0.10.8', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pbr/'], + }), + ('lockfile', '0.10.2', { + 'source_urls': ['https://pypi.python.org/packages/source/l/lockfile/'], + }), + ('Cython', '0.21.2', { + 'source_urls': ['http://www.cython.org/release/'], + }), + ('six', '1.9.0', { + 'source_urls': ['https://pypi.python.org/packages/source/s/six/'], + }), + ('dateutil', '2.4.0', { + 'source_tmpl': 'python-%(name)s-%(version)s.tar.gz', + 'source_urls': ['http://pypi.python.org/packages/source/p/python-dateutil/'], + }), + ('deap', '1.0.1', { + 'source_urls': ['https://pypi.python.org/packages/source/d/deap/'], + }), + ('decorator', '3.4.0', { + 'source_urls': ['https://pypi.python.org/packages/source/d/decorator/'], + }), + ('arff', '2.0.1', { + 'source_tmpl': 'liac-%(name)s-%(version)s.zip', + 'source_urls': ['https://pypi.python.org/packages/source/l/liac-arff/'], + }), + ('pycrypto', '2.6.1', { + 'modulename': 'Crypto', + 'source_urls': ['http://ftp.dlitz.net/pub/dlitz/crypto/pycrypto/'], + }), + ('ecdsa', '0.11', { + 'source_urls': ['https://pypi.python.org/packages/source/e/ecdsa/'], + }), + ('paramiko', '1.15.2', { + 'source_urls': ['https://pypi.python.org/packages/source/p/paramiko/'], + }), + ('pyparsing', '2.0.3', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pyparsing/'], + }), + ('netifaces', '0.10.4', { + 'source_urls': ['https://pypi.python.org/packages/source/n/netifaces'], + }), + ('netaddr', '0.7.13', { + 'source_urls': ['https://pypi.python.org/packages/source/n/netaddr'], + }), + ('mock', '1.0.1', { + 'source_urls': ['https://pypi.python.org/packages/source/m/mock'], + }), + ('pytz', '2014.10', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pytz'], + }), + ('pandas', '0.16.0', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pandas'], + }), +] + +moduleclass = 'lang' diff --git a/p/Python/Python-2.7.9-gompi-1.5.16-bare.eb b/p/Python/Python-2.7.9-gompi-1.5.16-bare.eb new file mode 100644 index 00000000..e8eb88c7 --- /dev/null +++ b/p/Python/Python-2.7.9-gompi-1.5.16-bare.eb @@ -0,0 +1,27 @@ +name = 'Python' +version = '2.7.9' +versionsuffix = '-bare' + +homepage = 'http://python.org/' +description = "Python is a programming language that lets you work more quickly and integrate your systems more effectively." + +toolchain = {'name': 'gompi', 'version': '1.5.16'} +toolchainopts = {'pic': True, 'opt': True, 'optarch': True} + +source_urls = ['http://www.python.org/ftp/%(namelower)s/%(version)s/'] +sources = [SOURCE_TGZ] + +dependencies = [ + ('bzip2', '1.0.6'), + ('zlib', '1.2.8'), + ('libreadline', '6.3'), + ('ncurses', '5.9'), + ('SQLite', '3.8.8.1'), + ('Tk', '8.6.3', '-no-X11'), + # ('OpenSSL', '1.0.1k'), # OS dependency should be preferred if the os version is more recent then this version, it's + # nice to have an up to date openssl for security reasons +] + +osdependencies = [('openssl-devel', 'libssl-dev', 'libopenssl-devel')] + +moduleclass = 'lang' diff --git a/p/Python/Python-2.7.9-gompi-2015e.eb b/p/Python/Python-2.7.9-gompi-2015e.eb new file mode 100644 index 00000000..86f8a2ee --- /dev/null +++ b/p/Python/Python-2.7.9-gompi-2015e.eb @@ -0,0 +1,40 @@ +name = 'Python' +version = '2.7.9' + +homepage = 'http://python.org/' +description = "Python is a programming language that lets you work more quickly and integrate your systems more effectively." + +toolchain = {'name': 'gompi', 'version': '2015e'} +toolchainopts = {'pic': True, 'opt': True, 'optarch': True} + +numpyversion = '1.9.1' +scipyversion = '0.14.1' + +source_urls = ['http://www.python.org/ftp/%(namelower)s/%(version)s/'] +sources = [SOURCE_TGZ] + +# python needs bzip2 to build the bz2 package +dependencies = [ + ('bzip2', '1.0.6'), + ('zlib', '1.2.8'), + ('libreadline', '6.3'), + ('ncurses', '5.9'), + ('SQLite', '3.8.8.1'), +# ('OpenSSL', '1.0.1k'), # OS dependency should be preferred if the os version is more recent then this version, it's +# nice to have an up to date openssl for security reasons +] + +osdependencies = [('openssl-devel', 'libssl-dev', 'libopenssl-devel')] + +# order is important! +# package versions updated Jan 19th 2015 +exts_list = [ + ('setuptools', '11.3.1', { + 'source_urls': ['http://pypi.python.org/packages/source/s/setuptools/'], + }), + ('pip', '6.0.6', { + 'source_urls': ['http://pypi.python.org/packages/source/p/pip/'], + }), +] + +moduleclass = 'lang' diff --git a/p/Python/Python-2.7.9-goolf-1.5.14.eb b/p/Python/Python-2.7.9-goolf-1.5.14.eb new file mode 100644 index 00000000..7739e8b2 --- /dev/null +++ b/p/Python/Python-2.7.9-goolf-1.5.14.eb @@ -0,0 +1,116 @@ +name = 'Python' +version = '2.7.9' + +homepage = 'http://python.org/' +description = "Python is a programming language that lets you work more quickly and integrate your systems more effectively." + +toolchain = {'name': 'goolf', 'version': '1.5.14'} +toolchainopts = {'pic': True, 'opt': True, 'optarch': True} + +numpyversion = '1.9.1' +scipyversion = '0.14.1' + +source_urls = ['http://www.python.org/ftp/%(namelower)s/%(version)s/'] +sources = [SOURCE_TGZ] + +# python needs bzip2 to build the bz2 package +dependencies = [ + ('bzip2', '1.0.6'), + ('zlib', '1.2.8'), + ('libreadline', '6.3'), + ('ncurses', '5.9'), + ('SQLite', '3.8.8.1'), + ('Tk', '8.6.3', '-no-X11'), + # ('OpenSSL', '1.0.1k'), # OS dependency should be preferred if the os version is more recent then this version, it's + # nice to have an up to date openssl for security reasons +] + +osdependencies = [('openssl-devel', 'libssl-dev', 'libopenssl-devel')] + +# order is important! +# package versions updated Jan 19th 2015 +exts_list = [ + ('setuptools', '11.3.1', { + 'source_urls': ['https://pypi.python.org/packages/source/s/setuptools/'], + }), + ('pip', '6.0.6', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pip/'], + }), + ('nose', '1.3.4', { + 'source_urls': ['https://pypi.python.org/packages/source/n/nose/'], + }), + ('numpy', numpyversion, { + 'source_urls': [('http://sourceforge.net/projects/numpy/files/NumPy/%s' % numpyversion, 'download')], + }), + ('scipy', scipyversion, { + 'source_urls': [('http://sourceforge.net/projects/scipy/files/scipy/%s' % scipyversion, 'download')], + }), + ('blist', '1.3.6', { + 'source_urls': ['https://pypi.python.org/packages/source/b/blist/'], + }), + ('mpi4py', '1.3.1', { + 'source_urls': ['http://bitbucket.org/mpi4py/mpi4py/downloads/'], + }), + ('paycheck', '1.0.2', { + 'source_urls': ['https://pypi.python.org/packages/source/p/paycheck/'], + }), + ('argparse', '1.2.1', { + 'source_urls': ['https://pypi.python.org/packages/source/a/argparse/'], + }), + ('pbr', '0.10.8', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pbr/'], + }), + ('lockfile', '0.10.2', { + 'source_urls': ['https://pypi.python.org/packages/source/l/lockfile/'], + }), + ('Cython', '0.21.2', { + 'source_urls': ['http://www.cython.org/release/'], + }), + ('six', '1.9.0', { + 'source_urls': ['https://pypi.python.org/packages/source/s/six/'], + }), + ('dateutil', '2.4.0', { + 'source_tmpl': 'python-%(name)s-%(version)s.tar.gz', + 'source_urls': ['https://pypi.python.org/packages/source/p/python-dateutil/'], + }), + ('deap', '1.0.1', { + 'source_urls': ['https://pypi.python.org/packages/source/d/deap/'], + }), + ('decorator', '3.4.0', { + 'source_urls': ['https://pypi.python.org/packages/source/d/decorator/'], + }), + ('arff', '2.0.1', { + 'source_tmpl': 'liac-%(name)s-%(version)s.zip', + 'source_urls': ['https://pypi.python.org/packages/source/l/liac-arff/'], + }), + ('pycrypto', '2.6.1', { + 'modulename': 'Crypto', + 'source_urls': ['http://ftp.dlitz.net/pub/dlitz/crypto/pycrypto/'], + }), + ('ecdsa', '0.11', { + 'source_urls': ['https://pypi.python.org/packages/source/e/ecdsa/'], + }), + ('paramiko', '1.15.2', { + 'source_urls': ['https://pypi.python.org/packages/source/p/paramiko/'], + }), + ('pyparsing', '2.0.3', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pyparsing/'], + }), + ('netifaces', '0.10.4', { + 'source_urls': ['https://pypi.python.org/packages/source/n/netifaces'], + }), + ('netaddr', '0.7.13', { + 'source_urls': ['https://pypi.python.org/packages/source/n/netaddr'], + }), + ('mock', '1.0.1', { + 'source_urls': ['https://pypi.python.org/packages/source/m/mock'], + }), + ('pytz', '2014.10', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pytz'], + }), + ('pandas', '0.16.0', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pandas'], + }), +] + +moduleclass = 'lang' diff --git a/p/Python/Python-2.7.9-goolf-1.5.16.eb b/p/Python/Python-2.7.9-goolf-1.5.16.eb new file mode 100644 index 00000000..70860e49 --- /dev/null +++ b/p/Python/Python-2.7.9-goolf-1.5.16.eb @@ -0,0 +1,116 @@ +name = 'Python' +version = '2.7.9' + +homepage = 'http://python.org/' +description = "Python is a programming language that lets you work more quickly and integrate your systems more effectively." + +toolchain = {'name': 'goolf', 'version': '1.5.16'} +toolchainopts = {'pic': True, 'opt': True, 'optarch': True} + +numpyversion = '1.9.1' +scipyversion = '0.14.1' + +source_urls = ['http://www.python.org/ftp/%(namelower)s/%(version)s/'] +sources = [SOURCE_TGZ] + +# python needs bzip2 to build the bz2 package +dependencies = [ + ('bzip2', '1.0.6'), + ('zlib', '1.2.8'), + ('libreadline', '6.3'), + ('ncurses', '5.9'), + ('SQLite', '3.8.8.1'), + ('Tk', '8.6.3', '-no-X11'), +# ('OpenSSL', '1.0.1k'), # OS dependency should be preferred if the os version is more recent then this version, it's + # nice to have an up to date openssl for security reasons +] + +osdependencies = [('openssl-devel', 'libssl-dev', 'libopenssl-devel')] + +# order is important! +# package versions updated Jan 19th 2015 +exts_list = [ + ('setuptools', '11.3.1', { + 'source_urls': ['https://pypi.python.org/packages/source/s/setuptools/'], + }), + ('pip', '6.0.6', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pip/'], + }), + ('nose', '1.3.4', { + 'source_urls': ['https://pypi.python.org/packages/source/n/nose/'], + }), + ('numpy', numpyversion, { + 'source_urls': [('https://sourceforge.net/projects/numpy/files/NumPy/%s' % numpyversion, 'download')], + }), + ('scipy', scipyversion, { + 'source_urls': [('https://sourceforge.net/projects/scipy/files/scipy/%s' % scipyversion, 'download')], + }), + ('blist', '1.3.6', { + 'source_urls': ['https://pypi.python.org/packages/source/b/blist/'], + }), + ('mpi4py', '1.3.1', { + 'source_urls': ['https://bitbucket.org/mpi4py/mpi4py/downloads/'], + }), + ('paycheck', '1.0.2', { + 'source_urls': ['https://pypi.python.org/packages/source/p/paycheck/'], + }), + ('argparse', '1.2.1', { + 'source_urls': ['https://pypi.python.org/packages/source/a/argparse/'], + }), + ('pbr', '0.10.8', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pbr/'], + }), + ('lockfile', '0.10.2', { + 'source_urls': ['https://pypi.python.org/packages/source/l/lockfile/'], + }), + ('Cython', '0.21.2', { + 'source_urls': ['http://www.cython.org/release/'], + }), + ('six', '1.9.0', { + 'source_urls': ['https://pypi.python.org/packages/source/s/six/'], + }), + ('dateutil', '2.4.0', { + 'source_tmpl': 'python-%(name)s-%(version)s.tar.gz', + 'source_urls': ['https://pypi.python.org/packages/source/p/python-dateutil/'], + }), + ('deap', '1.0.1', { + 'source_urls': ['https://pypi.python.org/packages/source/d/deap/'], + }), + ('decorator', '3.4.0', { + 'source_urls': ['https://pypi.python.org/packages/source/d/decorator/'], + }), + ('arff', '2.0.1', { + 'source_tmpl': 'liac-%(name)s-%(version)s.zip', + 'source_urls': ['https://pypi.python.org/packages/source/l/liac-arff/'], + }), + ('pycrypto', '2.6.1', { + 'modulename': 'Crypto', + 'source_urls': ['https://ftp.dlitz.net/pub/dlitz/crypto/pycrypto/'], + }), + ('ecdsa', '0.11', { + 'source_urls': ['https://pypi.python.org/packages/source/e/ecdsa/'], + }), + ('paramiko', '1.15.2', { + 'source_urls': ['https://pypi.python.org/packages/source/p/paramiko/'], + }), + ('pyparsing', '2.0.3', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pyparsing/'], + }), + ('netifaces', '0.10.4', { + 'source_urls': ['https://pypi.python.org/packages/source/n/netifaces'], + }), + ('netaddr', '0.7.13', { + 'source_urls': ['https://pypi.python.org/packages/source/n/netaddr'], + }), + ('mock', '1.0.1', { + 'source_urls': ['https://pypi.python.org/packages/source/m/mock'], + }), + ('pytz', '2014.10', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pytz'], + }), + ('pandas', '0.16.0', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pandas'], + }), +] + +moduleclass = 'lang' diff --git a/p/Python/Python-2.7.9-goolf-1.7.20.eb b/p/Python/Python-2.7.9-goolf-1.7.20.eb new file mode 100644 index 00000000..41e6d0cc --- /dev/null +++ b/p/Python/Python-2.7.9-goolf-1.7.20.eb @@ -0,0 +1,117 @@ +name = 'Python' +version = '2.7.9' + +homepage = 'https://python.org/' +description = "Python is a programming language that lets you work more quickly and integrate your systems more effectively." + +toolchain = {'name': 'goolf', 'version': '1.7.20'} +toolchainopts = {'pic': True, 'opt': True, 'optarch': True} + +numpyversion = '1.9.1' +scipyversion = '0.14.1' + +source_urls = ['https://www.python.org/ftp/%(namelower)s/%(version)s/'] +sources = [SOURCE_TGZ] + +# python needs bzip2 to build the bz2 package +dependencies = [ + ('bzip2', '1.0.6'), + ('zlib', '1.2.8'), + ('libreadline', '6.3'), + ('ncurses', '5.9'), + ('SQLite', '3.8.8.1'), + ('Tk', '8.6.3', '-no-X11'), + #('OpenSSL', '1.0.1k'), # OS dependency should be preferred if the os version is more recent then this version, it's + # nice to have an up to date openssl for security reasons +] + +osdependencies = [('openssl-devel', 'libssl-dev', 'libopenssl-devel')] + +# order is important! +# package versions updated Jan 19th 2015 +exts_list = [ + ('setuptools', '11.3.1', { + 'source_urls': ['https://pypi.python.org/packages/source/s/setuptools/'], + }), + ('pip', '6.0.6', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pip/'], + }), + ('nose', '1.3.4', { + 'source_urls': ['https://pypi.python.org/packages/source/n/nose/'], + }), + ('numpy', numpyversion, { + 'source_urls': [('https://sourceforge.net/projects/numpy/files/NumPy/%s' % numpyversion, 'download')], + }), + ('scipy', scipyversion, { + 'source_urls': [('https://sourceforge.net/projects/scipy/files/scipy/%s' % scipyversion, 'download')], + }), + ('blist', '1.3.6', { + 'source_urls': ['https://pypi.python.org/packages/source/b/blist/'], + }), + ('mpi4py', '1.3.1', { + 'source_urls': ['https://bitbucket.org/mpi4py/mpi4py/downloads/'], + }), + ('paycheck', '1.0.2', { + 'source_urls': ['https://pypi.python.org/packages/source/p/paycheck/'], + }), + ('argparse', '1.2.1', { + 'source_urls': ['https://pypi.python.org/packages/source/a/argparse/ '], + }), + ('pbr', '0.10.8', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pbr/'], + }), + ('lockfile', '0.10.2', { + 'source_urls': ['https://pypi.python.org/packages/source/l/lockfile/'], + }), + ('Cython', '0.21.2', { + 'source_urls': ['http://www.cython.org/release/'], + }), + ('six', '1.9.0', { + 'source_urls': ['https://pypi.python.org/packages/source/s/six/'], + }), + ('dateutil', '2.4.0', { + 'source_tmpl': 'python-%(name)s-%(version)s.tar.gz', + 'source_urls': ['https://pypi.python.org/packages/source/p/python-dateutil/'], + }), + ('deap', '1.0.1', { + 'source_urls': ['https://pypi.python.org/packages/source/d/deap/'], + }), + ('decorator', '3.4.0', { + 'source_urls': ['https://pypi.python.org/packages/source/d/decorator/'], + }), + ('arff', '2.0.1', { + 'source_tmpl': 'liac-%(name)s-%(version)s.zip', + 'source_urls': ['https://pypi.python.org/packages/source/l/liac-arff/'], + }), + ('pycrypto', '2.6.1', { + 'modulename': 'Crypto', + 'source_urls': ['https://ftp.dlitz.net/pub/dlitz/crypto/pycrypto/'], + }), + ('ecdsa', '0.11', { + 'source_urls': ['https://pypi.python.org/packages/source/e/ecdsa/'], + }), + ('paramiko', '1.15.2', { + 'source_urls': ['https://pypi.python.org/packages/source/p/paramiko/'], + }), + ('pyparsing', '2.0.3', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pyparsing/'], + }), + ('netifaces', '0.10.4', { + 'source_urls': ['https://pypi.python.org/packages/source/n/netifaces'], + }), + ('netaddr', '0.7.13', { + 'source_urls': ['https://pypi.python.org/packages/source/n/netaddr'], + }), + ('mock', '1.0.1', { + 'source_urls': ['https://pypi.python.org/packages/source/m/mock'], + }), + ('pytz', '2014.10', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pytz'], + }), + ('pandas', '0.16.0', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pandas'], + }), +] + + +moduleclass = 'lang' diff --git a/p/Python/Python-2.7.9-ictce-7.3.5.eb b/p/Python/Python-2.7.9-ictce-7.3.5.eb new file mode 100644 index 00000000..4ea90f38 --- /dev/null +++ b/p/Python/Python-2.7.9-ictce-7.3.5.eb @@ -0,0 +1,169 @@ +# Built with EasyBuild version 2.1.1 on 2015-08-21_15-15-41 +# Built with EasyBuild version 2.1.1 on 2015-06-29_23-04-01 +name = 'Python' +version = '2.7.9' + +homepage = 'http://python.org/' +description = "Python is a programming language that lets you work more quickly and integrate your systems more effectively." + +toolchain = {'name': 'ictce', 'version': '7.3.5'} +toolchainopts = {'pic': True, 'opt': True, 'optarch': True} + +numpyversion = '1.9.1' +scipyversion = '0.14.1' + +source_urls = ['http://www.python.org/ftp/%(namelower)s/%(version)s/'] +sources = [SOURCE_TGZ] + +# python needs bzip2 to build the bz2 package +dependencies = [ + ('bzip2', '1.0.6'), + ('zlib', '1.2.8'), + ('libreadline', '6.3'), + ('ncurses', '5.9'), + ('SQLite', '3.8.8.1'), +# ('OpenSSL', '1.0.1k'), # OS dependency should be preferred if the os version is more recent then this version, it's +# nice to have an up to date openssl for security reasons +] + +osdependencies = [('openssl-devel', 'libssl-dev', 'libopenssl-devel')] + +# order is important! +# package versions updated Jan 19th 2015 +exts_list = [ + ('setuptools', '11.3.1', { + 'source_urls': ['http://pypi.python.org/packages/source/s/setuptools/'], + }), + ('pip', '6.0.6', { + 'source_urls': ['http://pypi.python.org/packages/source/p/pip/'], + }), + ('nose', '1.3.4', { + 'source_urls': ['http://pypi.python.org/packages/source/n/nose/'], + }), + ('numpy', numpyversion, { + 'source_urls': [('http://sourceforge.net/projects/numpy/files/NumPy/%s' % numpyversion, 'download')], + 'patches': [ + 'numpy-1.8.0-mkl.patch', # % numpyversion, + ], + }), + ('scipy', scipyversion, { + 'source_urls': [('http://sourceforge.net/projects/scipy/files/scipy/%s' % scipyversion, 'download')], + }), + ('blist', '1.3.6', { + 'source_urls': ['http://pypi.python.org/packages/source/b/blist/'], + }), + ('mpi4py', '1.3.1', { + 'source_urls': ['http://bitbucket.org/mpi4py/mpi4py/downloads/'], + }), + ('paycheck', '1.0.2', { + 'source_urls': ['http://pypi.python.org/packages/source/p/paycheck/'], + }), + ('argparse', '1.2.1', { + 'source_urls': ['http://argparse.googlecode.com/files/'], + }), + ('pbr', '0.10.8', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pbr/'], + }), + ('lockfile', '0.10.2', { + 'source_urls': ['https://pypi.python.org/packages/source/l/lockfile/'], + }), + ('Cython', '0.21.2', { + 'source_urls': ['http://www.cython.org/release/'], + }), + ('six', '1.9.0', { + 'source_urls': ['https://pypi.python.org/packages/source/s/six/'], + }), + ('dateutil', '2.4.0', { + 'source_tmpl': 'python-%(name)s-%(version)s.tar.gz', + 'source_urls': ['http://pypi.python.org/packages/source/p/python-dateutil/'], + }), + ('deap', '1.0.1', { + 'source_urls': ['https://pypi.python.org/packages/source/d/deap/'], + }), + ('decorator', '3.4.0', { + 'source_urls': ['https://pypi.python.org/packages/source/d/decorator/'], + }), + ('arff', '2.0.1', { + 'source_tmpl': 'liac-%(name)s-%(version)s.zip', + 'source_urls': ['https://pypi.python.org/packages/source/l/liac-arff/'], + }), + ('pycrypto', '2.6.1', { + 'modulename': 'Crypto', + 'source_urls': ['http://ftp.dlitz.net/pub/dlitz/crypto/pycrypto/'], + }), + ('ecdsa', '0.11', { + 'source_urls': ['https://pypi.python.org/packages/source/e/ecdsa/'], + }), + ('paramiko', '1.15.2', { + 'source_urls': ['https://pypi.python.org/packages/source/p/paramiko/'], + }), + ('pyparsing', '2.0.3', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pyparsing/'], + }), + ('netifaces', '0.10.4', { + 'source_urls': ['https://pypi.python.org/packages/source/n/netifaces'], + }), + ('netaddr', '0.7.13', { + 'source_urls': ['https://pypi.python.org/packages/source/n/netaddr'], + }), + ('mock', '1.0.1', { + 'source_urls': ['https://pypi.python.org/packages/source/m/mock'], + }), + ('pytz', '2014.10', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pytz'], + }), + ('pandas', '0.16.0', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pandas'], + }), +] + +moduleclass = 'lang' + +# Build statistics +buildstats = [{ + "easybuild-framework_version": "2.1.1", + "easybuild-easyblocks_version": "2.1.1", + "timestamp": 1435611841, + "build_time": 1752.27, + "install_size": 642667616, + "command_line": ['--buildpath=/easybuild/build', '--force', '--installpath=/apps', '--installpath-modules=/apps/modules', '--installpath-software=/apps', '--module-naming-scheme=IT4IModuleNamingScheme', '--modules-footer=/easybuild/templates/modules/jas02_footer.txt', '--repositorypath=/easybuild/file-repository', '--robot=/easybuild/easyconfigs-salomon/easybuild/easyconfigs', '--robot-paths=/easybuild/easyconfigs-salomon/easybuild/easyconfigs', '--sourcepath=/easybuild/sources', '--try-toolchain="[\'intel\', \'2015b\']"', 'Python-2.7.9-intel-2015a.eb'], + "modules_tool": ('EnvironmentModulesC', '/usr/bin/modulecmd', '3.2.10'), + "core_count": 28, + "cpu_model": "Intel(R) Xeon(R) CPU E5-2695 v3 @ 2.30GHz", + "cpu_speed": 2299.882, + "cpu_vendor": "Intel", + "gcc_version": "Using built-in specs.; COLLECT_GCC=gcc; COLLECT_LTO_WRAPPER=/apps/all/GCC/5.1.0-binutils-2.25/libexec/gcc/x86_64-unknown-linux-gnu/5.1.0/lto-wrapper; Target: x86_64-unknown-linux-gnu; Configured with: ../configure --enable-languages=c,c++,fortran --enable-lto --enable-checking=release --disable-multilib --enable-shared=yes --enable-static=yes --enable-threads=posix --enable-gold=default --enable-plugins --enable-ld --with-plugin-ld=ld.gold --prefix=/apps/all/GCC/5.1.0-binutils-2.25 --with-local-prefix=/apps/all/GCC/5.1.0-binutils-2.25 --enable-bootstrap --with-isl=/easybuild/build/GCC/5.1.0/dummy--binutils-2.25/gcc-5.1.0/stage2_stuff; Thread model: posix; gcc version 5.1.0 (GCC) ; ", + "glibc_version": "2.12", + "hostname": "login2", + "os_name": "centos", + "os_type": "Linux", + "os_version": "6.6", + "platform_name": "x86_64-unknown-linux", + "python_version": "2.6.6 (r266:84292, Jan 22 2014, 09:42:36) ; [GCC 4.4.7 20120313 (Red Hat 4.4.7-4)]", + "system_gcc_path": "/apps/all/GCC/5.1.0-binutils-2.25/bin/gcc", + "system_python_path": "/usr/bin/python", +}] + +buildstats.append({ + "easybuild-framework_version": "2.1.1", + "easybuild-easyblocks_version": "2.1.1", + "timestamp": 1440162941, + "build_time": 1845.74, + "install_size": 642141827, + "command_line": ['--buildpath=/easybuild/build', '--installpath=/apps', '--installpath-modules=/apps/modules', '--installpath-software=/apps', '--module-naming-scheme=IT4IModuleNamingScheme', '--modules-footer=/easybuild/templates/modules/jas02_footer.txt', '--repositorypath=/easybuild/file-repository', '--robot=/easybuild/easyconfigs-salomon/easybuild/easyconfigs', '--robot-paths=/easybuild/easyconfigs-salomon/easybuild/easyconfigs', '--sourcepath=/easybuild/sources', '--try-toolchain="[\'ictce\', \'7.3.5\']"', 'Python-2.7.9-intel-2015b.eb'], + "modules_tool": ('EnvironmentModulesC', '/usr/bin/modulecmd', '3.2.10'), + "core_count": 28, + "cpu_model": "Intel(R) Xeon(R) CPU E5-2695 v3 @ 2.30GHz", + "cpu_speed": 2299.859, + "cpu_vendor": "Intel", + "gcc_version": "Using built-in specs.; Target: x86_64-redhat-linux; Configured with: ../configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --with-bugurl=http://bugzilla.redhat.com/bugzilla --enable-bootstrap --enable-shared --enable-threads=posix --enable-checking=release --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-gnu-unique-object --enable-languages=c,c++,objc,obj-c++,java,fortran,ada --enable-java-awt=gtk --disable-dssi --with-java-home=/usr/lib/jvm/java-1.5.0-gcj-1.5.0.0/jre --enable-libgcj-multifile --enable-java-maintainer-mode --with-ecj-jar=/usr/share/java/eclipse-ecj.jar --disable-libjava-multilib --with-ppl --with-cloog --with-tune=generic --with-arch_32=i686 --build=x86_64-redhat-linux; Thread model: posix; gcc version 4.4.7 20120313 (Red Hat 4.4.7-11) (GCC) ; ", + "glibc_version": "2.12", + "hostname": "login4", + "os_name": "centos", + "os_type": "Linux", + "os_version": "6.6", + "platform_name": "x86_64-unknown-linux", + "python_version": "2.6.6 (r266:84292, Jan 22 2014, 09:42:36) ; [GCC 4.4.7 20120313 (Red Hat 4.4.7-4)]", + "system_gcc_path": "/usr/bin/gcc", + "system_python_path": "/usr/bin/python", +}) diff --git a/p/Python/Python-2.7.9-intel-2015a-bare.eb b/p/Python/Python-2.7.9-intel-2015a-bare.eb new file mode 100644 index 00000000..f327891d --- /dev/null +++ b/p/Python/Python-2.7.9-intel-2015a-bare.eb @@ -0,0 +1,31 @@ +name = 'Python' +version = '2.7.9' +versionsuffix = '-bare' + +homepage = 'http://python.org/' +description = "Python is a programming language that lets you work more quickly and integrate your systems more effectively." + +toolchain = {'name': 'intel', 'version': '2015a'} +toolchainopts = {'pic': True, 'opt': True, 'optarch': True} + +source_urls = ['http://www.python.org/ftp/%(namelower)s/%(version)s/'] +sources = [SOURCE_TGZ] + +# python needs bzip2 to build the bz2 package +dependencies = [ + ('bzip2', '1.0.6'), + ('zlib', '1.2.8'), + ('libreadline', '6.3'), + ('ncurses', '5.9'), + ('SQLite', '3.8.8.1'), + ('Tk', '8.6.3', '-no-X11'), + # ('OpenSSL', '1.0.1k'), # OS dependency should be preferred if the os version is more recent then this version, it's + # nice to have an up to date openssl for security reasons +] + +osdependencies = [('openssl-devel', 'libssl-dev', 'libopenssl-devel')] + +# bare installation: no extensions included +exts_list = [] + +moduleclass = 'lang' diff --git a/p/Python/Python-2.7.9-intel-2015a.eb b/p/Python/Python-2.7.9-intel-2015a.eb new file mode 100644 index 00000000..188046b9 --- /dev/null +++ b/p/Python/Python-2.7.9-intel-2015a.eb @@ -0,0 +1,117 @@ +name = 'Python' +version = '2.7.9' + +homepage = 'http://python.org/' +description = "Python is a programming language that lets you work more quickly and integrate your systems more effectively." + +toolchain = {'name': 'intel', 'version': '2015a'} +toolchainopts = {'pic': True, 'opt': True, 'optarch': True} + +numpyversion = '1.9.1' +scipyversion = '0.14.1' + +source_urls = ['http://www.python.org/ftp/%(namelower)s/%(version)s/'] +sources = [SOURCE_TGZ] + +# python needs bzip2 to build the bz2 package +dependencies = [ + ('bzip2', '1.0.6'), + ('zlib', '1.2.8'), + ('libreadline', '6.3'), + ('ncurses', '5.9'), + ('SQLite', '3.8.8.1'), + ('Tk', '8.6.3', '-no-X11'), + # ('OpenSSL', '1.0.1k'), # OS dependency should be preferred if the os version is more recent then this version, it's + # nice to have an up to date openssl for security reasons +] + +osdependencies = [('openssl-devel', 'libssl-dev', 'libopenssl-devel')] + +# order is important! +# package versions updated Jan 19th 2015 +exts_list = [ + ('setuptools', '11.3.1', { + 'source_urls': ['https://pypi.python.org/packages/source/s/setuptools/'], + }), + ('pip', '6.0.6', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pip/'], + }), + ('nose', '1.3.4', { + 'source_urls': ['https://pypi.python.org/packages/source/n/nose/'], + }), + ('numpy', numpyversion, { + 'source_urls': [('http://sourceforge.net/projects/numpy/files/NumPy/%s' % numpyversion, 'download')], + 'patches': ['numpy-1.8.0-mkl.patch'], + }), + ('scipy', scipyversion, { + 'source_urls': [('http://sourceforge.net/projects/scipy/files/scipy/%s' % scipyversion, 'download')], + }), + ('blist', '1.3.6', { + 'source_urls': ['https://pypi.python.org/packages/source/b/blist/'], + }), + ('mpi4py', '1.3.1', { + 'source_urls': ['http://bitbucket.org/mpi4py/mpi4py/downloads/'], + }), + ('paycheck', '1.0.2', { + 'source_urls': ['https://pypi.python.org/packages/source/p/paycheck/'], + }), + ('argparse', '1.2.1', { + 'source_urls': ['https://pypi.python.org/packages/source/a/argparse/'], + }), + ('pbr', '0.10.8', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pbr/'], + }), + ('lockfile', '0.10.2', { + 'source_urls': ['https://pypi.python.org/packages/source/l/lockfile/'], + }), + ('Cython', '0.21.2', { + 'source_urls': ['http://www.cython.org/release/'], + }), + ('six', '1.9.0', { + 'source_urls': ['https://pypi.python.org/packages/source/s/six/'], + }), + ('dateutil', '2.4.0', { + 'source_tmpl': 'python-%(name)s-%(version)s.tar.gz', + 'source_urls': ['https://pypi.python.org/packages/source/p/python-dateutil/'], + }), + ('deap', '1.0.1', { + 'source_urls': ['https://pypi.python.org/packages/source/d/deap/'], + }), + ('decorator', '3.4.0', { + 'source_urls': ['https://pypi.python.org/packages/source/d/decorator/'], + }), + ('arff', '2.0.1', { + 'source_tmpl': 'liac-%(name)s-%(version)s.zip', + 'source_urls': ['https://pypi.python.org/packages/source/l/liac-arff/'], + }), + ('pycrypto', '2.6.1', { + 'modulename': 'Crypto', + 'source_urls': ['http://ftp.dlitz.net/pub/dlitz/crypto/pycrypto/'], + }), + ('ecdsa', '0.11', { + 'source_urls': ['https://pypi.python.org/packages/source/e/ecdsa/'], + }), + ('paramiko', '1.15.2', { + 'source_urls': ['https://pypi.python.org/packages/source/p/paramiko/'], + }), + ('pyparsing', '2.0.3', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pyparsing/'], + }), + ('netifaces', '0.10.4', { + 'source_urls': ['https://pypi.python.org/packages/source/n/netifaces'], + }), + ('netaddr', '0.7.13', { + 'source_urls': ['https://pypi.python.org/packages/source/n/netaddr'], + }), + ('mock', '1.0.1', { + 'source_urls': ['https://pypi.python.org/packages/source/m/mock'], + }), + ('pytz', '2014.10', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pytz'], + }), + ('pandas', '0.16.0', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pandas'], + }), +] + +moduleclass = 'lang' diff --git a/p/Python/Python-2.7.9-intel-2015b.eb b/p/Python/Python-2.7.9-intel-2015b.eb new file mode 100644 index 00000000..cb17459b --- /dev/null +++ b/p/Python/Python-2.7.9-intel-2015b.eb @@ -0,0 +1,144 @@ +# Built with EasyBuild version 2.1.1 on 2015-06-29_23-04-01 +name = 'Python' +version = '2.7.9' + +homepage = 'http://python.org/' +description = "Python is a programming language that lets you work more quickly and integrate your systems more effectively." + +toolchain = {'name': 'intel', 'version': '2015b'} +toolchainopts = {'pic': True, 'opt': True, 'optarch': True} + +numpyversion = '1.9.1' +scipyversion = '0.14.1' + +source_urls = ['http://www.python.org/ftp/%(namelower)s/%(version)s/'] +sources = [SOURCE_TGZ] + +# python needs bzip2 to build the bz2 package +dependencies = [ + ('bzip2', '1.0.6'), + ('zlib', '1.2.8'), + ('libreadline', '6.3'), + ('ncurses', '5.9'), + ('SQLite', '3.8.8.1'), +# ('OpenSSL', '1.0.1k'), # OS dependency should be preferred if the os version is more recent then this version, it's +# nice to have an up to date openssl for security reasons +] + +osdependencies = [('openssl-devel', 'libssl-dev', 'libopenssl-devel')] + +# order is important! +# package versions updated Jan 19th 2015 +exts_list = [ + ('setuptools', '11.3.1', { + 'source_urls': ['http://pypi.python.org/packages/source/s/setuptools/'], + }), + ('pip', '6.0.6', { + 'source_urls': ['http://pypi.python.org/packages/source/p/pip/'], + }), + ('nose', '1.3.4', { + 'source_urls': ['http://pypi.python.org/packages/source/n/nose/'], + }), + ('numpy', numpyversion, { + 'source_urls': [('http://sourceforge.net/projects/numpy/files/NumPy/%s' % numpyversion, 'download')], + 'patches': [ + 'numpy-1.8.0-mkl.patch', # % numpyversion, + ], + }), + ('scipy', scipyversion, { + 'source_urls': [('http://sourceforge.net/projects/scipy/files/scipy/%s' % scipyversion, 'download')], + }), + ('blist', '1.3.6', { + 'source_urls': ['http://pypi.python.org/packages/source/b/blist/'], + }), + ('mpi4py', '1.3.1', { + 'source_urls': ['http://bitbucket.org/mpi4py/mpi4py/downloads/'], + }), + ('paycheck', '1.0.2', { + 'source_urls': ['http://pypi.python.org/packages/source/p/paycheck/'], + }), + ('argparse', '1.2.1', { + 'source_urls': ['http://argparse.googlecode.com/files/'], + }), + ('pbr', '0.10.8', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pbr/'], + }), + ('lockfile', '0.10.2', { + 'source_urls': ['https://pypi.python.org/packages/source/l/lockfile/'], + }), + ('Cython', '0.21.2', { + 'source_urls': ['http://www.cython.org/release/'], + }), + ('six', '1.9.0', { + 'source_urls': ['https://pypi.python.org/packages/source/s/six/'], + }), + ('dateutil', '2.4.0', { + 'source_tmpl': 'python-%(name)s-%(version)s.tar.gz', + 'source_urls': ['http://pypi.python.org/packages/source/p/python-dateutil/'], + }), + ('deap', '1.0.1', { + 'source_urls': ['https://pypi.python.org/packages/source/d/deap/'], + }), + ('decorator', '3.4.0', { + 'source_urls': ['https://pypi.python.org/packages/source/d/decorator/'], + }), + ('arff', '2.0.1', { + 'source_tmpl': 'liac-%(name)s-%(version)s.zip', + 'source_urls': ['https://pypi.python.org/packages/source/l/liac-arff/'], + }), + ('pycrypto', '2.6.1', { + 'modulename': 'Crypto', + 'source_urls': ['http://ftp.dlitz.net/pub/dlitz/crypto/pycrypto/'], + }), + ('ecdsa', '0.11', { + 'source_urls': ['https://pypi.python.org/packages/source/e/ecdsa/'], + }), + ('paramiko', '1.15.2', { + 'source_urls': ['https://pypi.python.org/packages/source/p/paramiko/'], + }), + ('pyparsing', '2.0.3', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pyparsing/'], + }), + ('netifaces', '0.10.4', { + 'source_urls': ['https://pypi.python.org/packages/source/n/netifaces'], + }), + ('netaddr', '0.7.13', { + 'source_urls': ['https://pypi.python.org/packages/source/n/netaddr'], + }), + ('mock', '1.0.1', { + 'source_urls': ['https://pypi.python.org/packages/source/m/mock'], + }), + ('pytz', '2014.10', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pytz'], + }), + ('pandas', '0.16.0', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pandas'], + }), +] + +moduleclass = 'lang' + +# Build statistics +buildstats = [{ + "easybuild-framework_version": "2.1.1", + "easybuild-easyblocks_version": "2.1.1", + "timestamp": 1435611841, + "build_time": 1752.27, + "install_size": 642667616, + "command_line": ['--buildpath=/easybuild/build', '--force', '--installpath=/apps', '--installpath-modules=/apps/modules', '--installpath-software=/apps', '--module-naming-scheme=IT4IModuleNamingScheme', '--modules-footer=/easybuild/templates/modules/jas02_footer.txt', '--repositorypath=/easybuild/file-repository', '--robot=/easybuild/easyconfigs-salomon/easybuild/easyconfigs', '--robot-paths=/easybuild/easyconfigs-salomon/easybuild/easyconfigs', '--sourcepath=/easybuild/sources', '--try-toolchain="[\'intel\', \'2015b\']"', 'Python-2.7.9-intel-2015a.eb'], + "modules_tool": ('EnvironmentModulesC', '/usr/bin/modulecmd', '3.2.10'), + "core_count": 28, + "cpu_model": "Intel(R) Xeon(R) CPU E5-2695 v3 @ 2.30GHz", + "cpu_speed": 2299.882, + "cpu_vendor": "Intel", + "gcc_version": "Using built-in specs.; COLLECT_GCC=gcc; COLLECT_LTO_WRAPPER=/apps/all/GCC/5.1.0-binutils-2.25/libexec/gcc/x86_64-unknown-linux-gnu/5.1.0/lto-wrapper; Target: x86_64-unknown-linux-gnu; Configured with: ../configure --enable-languages=c,c++,fortran --enable-lto --enable-checking=release --disable-multilib --enable-shared=yes --enable-static=yes --enable-threads=posix --enable-gold=default --enable-plugins --enable-ld --with-plugin-ld=ld.gold --prefix=/apps/all/GCC/5.1.0-binutils-2.25 --with-local-prefix=/apps/all/GCC/5.1.0-binutils-2.25 --enable-bootstrap --with-isl=/easybuild/build/GCC/5.1.0/dummy--binutils-2.25/gcc-5.1.0/stage2_stuff; Thread model: posix; gcc version 5.1.0 (GCC) ; ", + "glibc_version": "2.12", + "hostname": "login2", + "os_name": "centos", + "os_type": "Linux", + "os_version": "6.6", + "platform_name": "x86_64-unknown-linux", + "python_version": "2.6.6 (r266:84292, Jan 22 2014, 09:42:36) ; [GCC 4.4.7 20120313 (Red Hat 4.4.7-4)]", + "system_gcc_path": "/apps/all/GCC/5.1.0-binutils-2.25/bin/gcc", + "system_python_path": "/usr/bin/python", +}] diff --git a/p/Python/Python-2.7.9.eb b/p/Python/Python-2.7.9.eb new file mode 100644 index 00000000..03acaa03 --- /dev/null +++ b/p/Python/Python-2.7.9.eb @@ -0,0 +1,119 @@ +# Built with EasyBuild version 2.8.0 on 2016-07-13_09-40-51 +easyblock = "EB_Python" +name = 'Python' +version = '2.7.9' + +homepage = 'http://python.org/' +description = "Python is a programming language that lets you work more quickly and integrate your systems more effectively." + +toolchain = {'name': 'dummy', 'version': ''} +toolchainopts = {'pic': True, 'opt': True, 'optarch': True} + +numpyversion = '1.9.1' +scipyversion = '0.14.1' + +source_urls = ['http://www.python.org/ftp/%(namelower)s/%(version)s/'] +sources = [SOURCE_TGZ] + +# python needs bzip2 to build the bz2 package +dependencies = [ + ('bzip2', '1.0.6'), + ('zlib', '1.2.8'), + ('libreadline', '6.3'), + ('ncurses', '5.9'), + ('SQLite', '3.8.8.1'), +# ('OpenSSL', '1.0.1k'), # OS dependency should be preferred if the os version is more recent then this version, it's +# nice to have an up to date openssl for security reasons +] + +osdependencies = [('openssl-devel', 'libssl-dev', 'libopenssl-devel')] + +#buildopts = 'CPPFLAGS="-I/apps/all/bzip2/1.0.6/include -I/apps/all/zlib/1.2.8/include -I/apps/all/ncurses/5.9/include -I/apps/all/SQLite/3.8.8.1/include" LDFLAGS="-L/apps/all/bzip2/1.0.6/lib -L/apps/all/zlib/1.2.8/lib -L/apps/all/ncurses/5.9/lib -L/apps/all/SQLite/3.8.8.1/lib:$CPPFLAGS"' + +# order is important! +# package versions updated Jan 19th 2015 +exts_list = [ + ('setuptools', '11.3.1', { + 'source_urls': ['http://pypi.python.org/packages/source/s/setuptools/'], + }), + ('pip', '6.0.6', { + 'source_urls': ['http://pypi.python.org/packages/source/p/pip/'], + }), + ('nose', '1.3.4', { + 'source_urls': ['http://pypi.python.org/packages/source/n/nose/'], + }), +# ('numpy', numpyversion, { +# 'source_urls': [('http://sourceforge.net/projects/numpy/files/NumPy/%s' % numpyversion, 'download')], +# }), +# ('scipy', scipyversion, { +# 'source_urls': [('http://sourceforge.net/projects/scipy/files/scipy/%s' % scipyversion, 'download')], +# }), +# ('blist', '1.3.6', { +# 'source_urls': ['http://pypi.python.org/packages/source/b/blist/'], +# }), +# ('mpi4py', '1.3.1', { +# 'source_urls': ['http://bitbucket.org/mpi4py/mpi4py/downloads/'], +# }), +# ('paycheck', '1.0.2', { +# 'source_urls': ['http://pypi.python.org/packages/source/p/paycheck/'], +# }), +# ('argparse', '1.2.1', { +# 'source_urls': ['http://argparse.googlecode.com/files/'], +# }), +# ('pbr', '0.10.8', { +# 'source_urls': ['https://pypi.python.org/packages/source/p/pbr/'], +# }), +# ('lockfile', '0.10.2', { +# 'source_urls': ['https://pypi.python.org/packages/source/l/lockfile/'], +# }), +# ('Cython', '0.21.2', { +# 'source_urls': ['http://www.cython.org/release/'], +# }), +# ('six', '1.9.0', { +# 'source_urls': ['https://pypi.python.org/packages/source/s/six/'], +# }), +# ('dateutil', '2.4.0', { +# 'source_tmpl': 'python-%(name)s-%(version)s.tar.gz', +# 'source_urls': ['http://pypi.python.org/packages/source/p/python-dateutil/'], +# }), +# ('deap', '1.0.1', { +# 'source_urls': ['https://pypi.python.org/packages/source/d/deap/'], +# }), +# ('decorator', '3.4.0', { +# 'source_urls': ['https://pypi.python.org/packages/source/d/decorator/'], +# }), +# ('arff', '2.0.1', { +# 'source_tmpl': 'liac-%(name)s-%(version)s.zip', +# 'source_urls': ['https://pypi.python.org/packages/source/l/liac-arff/'], +# }), +# ('pycrypto', '2.6.1', { +# 'modulename': 'Crypto', +# 'source_urls': ['http://ftp.dlitz.net/pub/dlitz/crypto/pycrypto/'], +# }), +# ('ecdsa', '0.11', { +# 'source_urls': ['https://pypi.python.org/packages/source/e/ecdsa/'], +# }), +# ('paramiko', '1.15.2', { +# 'source_urls': ['https://pypi.python.org/packages/source/p/paramiko/'], +# }), +# ('pyparsing', '2.0.3', { +# 'source_urls': ['https://pypi.python.org/packages/source/p/pyparsing/'], +# }), +# ('netifaces', '0.10.4', { +# 'source_urls': ['https://pypi.python.org/packages/source/n/netifaces'], +# }), +# ('netaddr', '0.7.13', { +# 'source_urls': ['https://pypi.python.org/packages/source/n/netaddr'], +# }), +# ('mock', '1.0.1', { +# 'source_urls': ['https://pypi.python.org/packages/source/m/mock'], +# }), +# ('pytz', '2014.10', { +# 'source_urls': ['https://pypi.python.org/packages/source/p/pytz'], +# }), +# ('pandas', '0.16.0', { +# 'source_urls': ['https://pypi.python.org/packages/source/p/pandas'], +# }), +] + +moduleclass = 'lang' diff --git a/p/Python/Python-3.2.3-goalf-1.1.0-no-OFED.eb b/p/Python/Python-3.2.3-goalf-1.1.0-no-OFED.eb new file mode 100644 index 00000000..9282981b --- /dev/null +++ b/p/Python/Python-3.2.3-goalf-1.1.0-no-OFED.eb @@ -0,0 +1,66 @@ +name = 'Python' +version = '3.2.3' + +homepage = 'http://python.org/' +description = "Python is a programming language that lets you work more quickly and integrate your systems more effectively." + +toolchain = {'name': 'goalf', 'version': '1.1.0-no-OFED'} +toolchainopts = {'pic': True, 'opt': True, 'optarch': True} + +numpyversion = '1.6.1' +scipyversion = '0.10.1' + +source_urls = ['http://www.python.org/ftp/%(namelower)s/%(version)s/'] +sources = [SOURCE_TGZ] + +# python needs bzip2 to build the bz2 package +dependencies = [ + ('bzip2', '1.0.6'), + ('zlib', '1.2.7'), + ('libreadline', '6.2'), + ('ncurses', '5.9'), + # ('OpenSSL', '1.0.1f'), # OS dependency should be preferred for security reasons +] + +osdependencies = [('openssl-devel', 'libssl-dev', 'libopenssl-devel')] + +# order is important! +exts_list = [ + ('distribute', '0.6.26', { + 'source_urls': ['https://pypi.python.org/packages/source/d/distribute'], + 'modulename': 'setuptools', + }), + ('pip', '1.1', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pip/'], + }), + ('nose', '1.1.2', { + 'source_urls': ['https://pypi.python.org/packages/source/n/nose/'], + }), + ('numpy', numpyversion, { + 'source_urls': [('http://sourceforge.net/projects/numpy/files/NumPy/%s' % numpyversion, 'download')], + 'patches': [ + 'numpy-%s_distutils_multiple-lib-dirs.patch' % numpyversion, + ], + }), + ('scipy', scipyversion, { + 'source_urls': [('http://sourceforge.net/projects/scipy/files/scipy/%s' % scipyversion, 'download')], + }), + ('mpi4py', '1.3', { + 'source_urls': ['http://bitbucket.org/mpi4py/mpi4py/downloads/'], + }), + ('Cython', '0.19.1', { + 'source_urls': ['http://www.cython.org/release/'], + }), + ('deap', '0.9.1', { + 'source_urls': ['https://pypi.python.org/packages/source/d/deap/'], + }), + ('decorator', '3.4.0', { + 'source_urls': ['https://pypi.python.org/packages/source/d/decorator/'], + }), + ('pycrypto', '2.6.1', { + 'modulename': 'Crypto', + 'source_urls': ['http://ftp.dlitz.net/pub/dlitz/crypto/pycrypto/'], + }), +] + +moduleclass = 'lang' diff --git a/p/Python/Python-3.2.3-goolf-1.4.10.eb b/p/Python/Python-3.2.3-goolf-1.4.10.eb new file mode 100644 index 00000000..98e26ec9 --- /dev/null +++ b/p/Python/Python-3.2.3-goolf-1.4.10.eb @@ -0,0 +1,66 @@ +name = 'Python' +version = '3.2.3' + +homepage = 'http://python.org/' +description = "Python is a programming language that lets you work more quickly and integrate your systems more effectively." + +toolchain = {'name': 'goolf', 'version': '1.4.10'} +toolchainopts = {'pic': True, 'opt': True, 'optarch': True} + +numpyversion = '1.6.1' +scipyversion = '0.10.1' + +source_urls = ['http://www.python.org/ftp/%(namelower)s/%(version)s/'] +sources = [SOURCE_TGZ] + +# python needs bzip2 to build the bz2 package +dependencies = [ + ('bzip2', '1.0.6'), + ('zlib', '1.2.7'), + ('libreadline', '6.2'), + ('ncurses', '5.9'), + # ('OpenSSL', '1.0.1f'), # OS dependency should be preferred for security reasons +] + +osdependencies = [('openssl-devel', 'libssl-dev', 'libopenssl-devel')] + +# order is important! +exts_list = [ + ('distribute', '0.6.26', { + 'source_urls': ['https://pypi.python.org/packages/source/d/distribute'], + 'modulename': 'setuptools', + }), + ('pip', '1.1', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pip/'], + }), + ('nose', '1.1.2', { + 'source_urls': ['https://pypi.python.org/packages/source/n/nose/'], + }), + ('numpy', numpyversion, { + 'source_urls': [('http://sourceforge.net/projects/numpy/files/NumPy/%s' % numpyversion, 'download')], + 'patches': [ + 'numpy-%s_distutils_multiple-lib-dirs.patch' % numpyversion, + ], + }), + ('scipy', scipyversion, { + 'source_urls': [('http://sourceforge.net/projects/scipy/files/scipy/%s' % scipyversion, 'download')], + }), + ('mpi4py', '1.3', { + 'source_urls': ['http://bitbucket.org/mpi4py/mpi4py/downloads/'], + }), + ('Cython', '0.19.1', { + 'source_urls': ['http://www.cython.org/release/'], + }), + ('deap', '0.9.1', { + 'source_urls': ['https://pypi.python.org/packages/source/d/deap/'], + }), + ('decorator', '3.4.0', { + 'source_urls': ['https://pypi.python.org/packages/source/d/decorator/'], + }), + ('pycrypto', '2.6.1', { + 'modulename': 'Crypto', + 'source_urls': ['http://ftp.dlitz.net/pub/dlitz/crypto/pycrypto/'], + }), +] + +moduleclass = 'lang' diff --git a/p/Python/Python-3.2.3-ictce-4.0.6.eb b/p/Python/Python-3.2.3-ictce-4.0.6.eb new file mode 100644 index 00000000..b110143e --- /dev/null +++ b/p/Python/Python-3.2.3-ictce-4.0.6.eb @@ -0,0 +1,68 @@ +name = 'Python' +version = '3.2.3' + +homepage = 'http://python.org/' +description = "Python is a programming language that lets you work more quickly and integrate your systems more effectively." + +toolchain = {'name': 'ictce', 'version': '4.0.6'} +toolchainopts = {'pic': True, 'opt': True, 'optarch': True} + +numpyversion = '1.6.1' +scipyversion = '0.10.1' + +source_urls = ['http://www.python.org/ftp/%(namelower)s/%(version)s/'] +sources = [SOURCE_TGZ] + +patches = ['python_libffi_int128_icc.patch'] + +# python needs bzip2 to build the bz2 package +dependencies = [ + ('bzip2', '1.0.6'), + ('zlib', '1.2.7'), + ('libreadline', '6.2'), + ('ncurses', '5.9'), + # ('OpenSSL', '1.0.1f'), # OS dependency should be preferred for security reasons +] + +osdependencies = [('openssl-devel', 'libssl-dev', 'libopenssl-devel')] + +# order is important! +exts_list = [ + ('distribute', '0.6.26', { + 'source_urls': ['https://pypi.python.org/packages/source/d/distribute'], + 'modulename': 'setuptools', + }), + ('pip', '1.1', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pip/'], + }), + ('nose', '1.1.2', { + 'source_urls': ['https://pypi.python.org/packages/source/n/nose/'], + }), + ('numpy', numpyversion, { + 'source_urls': [('http://sourceforge.net/projects/numpy/files/NumPy/%s' % numpyversion, 'download')], + 'patches': [ + 'numpy-%s_distutils_multiple-lib-dirs.patch' % numpyversion, + ], + }), + ('scipy', scipyversion, { + 'source_urls': [('http://sourceforge.net/projects/scipy/files/scipy/%s' % scipyversion, 'download')], + }), + ('mpi4py', '1.3', { + 'source_urls': ['http://bitbucket.org/mpi4py/mpi4py/downloads/'], + }), + ('Cython', '0.19.1', { + 'source_urls': ['http://www.cython.org/release/'], + }), + ('deap', '0.9.1', { + 'source_urls': ['https://pypi.python.org/packages/source/d/deap/'], + }), + ('decorator', '3.4.0', { + 'source_urls': ['https://pypi.python.org/packages/source/d/decorator/'], + }), + ('pycrypto', '2.6.1', { + 'modulename': 'Crypto', + 'source_urls': ['http://ftp.dlitz.net/pub/dlitz/crypto/pycrypto/'], + }), +] + +moduleclass = 'lang' diff --git a/p/Python/Python-3.2.3-ictce-5.3.0.eb b/p/Python/Python-3.2.3-ictce-5.3.0.eb new file mode 100644 index 00000000..4bc546cc --- /dev/null +++ b/p/Python/Python-3.2.3-ictce-5.3.0.eb @@ -0,0 +1,66 @@ +name = 'Python' +version = '3.2.3' + +homepage = 'http://python.org/' +description = "Python is a programming language that lets you work more quickly and integrate your systems more effectively." + +toolchain = {'name': 'ictce', 'version': '5.3.0'} +toolchainopts = {'pic': True, 'opt': True, 'optarch': True} + +numpyversion = '1.6.1' +scipyversion = '0.10.1' + +source_urls = ['http://www.python.org/ftp/%(namelower)s/%(version)s/'] +sources = [SOURCE_TGZ] + +# python needs bzip2 to build the bz2 package +dependencies = [ + ('bzip2', '1.0.6'), + ('zlib', '1.2.7'), + ('libreadline', '6.2'), + ('ncurses', '5.9'), + # ('OpenSSL', '1.0.1f'), # OS dependency should be preferred for security reasons +] + +osdependencies = [('openssl-devel', 'libssl-dev', 'libopenssl-devel')] + +# order is important! +exts_list = [ + ('distribute', '0.6.26', { + 'source_urls': ['https://pypi.python.org/packages/source/d/distribute'], + 'modulename': 'setuptools', + }), + ('pip', '1.1', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pip/'], + }), + ('nose', '1.1.2', { + 'source_urls': ['https://pypi.python.org/packages/source/n/nose/'], + }), + ('numpy', numpyversion, { + 'source_urls': [('http://sourceforge.net/projects/numpy/files/NumPy/%s' % numpyversion, 'download')], + 'patches': [ + 'numpy-%s_distutils_multiple-lib-dirs.patch' % numpyversion, + ], + }), + ('scipy', scipyversion, { + 'source_urls': [('http://sourceforge.net/projects/scipy/files/scipy/%s' % scipyversion, 'download')], + }), + ('mpi4py', '1.3', { + 'source_urls': ['http://bitbucket.org/mpi4py/mpi4py/downloads/'], + }), + ('Cython', '0.19.1', { + 'source_urls': ['http://www.cython.org/release/'], + }), + ('deap', '0.9.1', { + 'source_urls': ['https://pypi.python.org/packages/source/d/deap/'], + }), + ('decorator', '3.4.0', { + 'source_urls': ['https://pypi.python.org/packages/source/d/decorator/'], + }), + ('pycrypto', '2.6.1', { + 'modulename': 'Crypto', + 'source_urls': ['http://ftp.dlitz.net/pub/dlitz/crypto/pycrypto/'], + }), +] + +moduleclass = 'lang' diff --git a/p/Python/Python-3.3.2-goolf-1.4.10.eb b/p/Python/Python-3.3.2-goolf-1.4.10.eb new file mode 100644 index 00000000..0dc65b97 --- /dev/null +++ b/p/Python/Python-3.3.2-goolf-1.4.10.eb @@ -0,0 +1,47 @@ +name = 'Python' +version = '3.3.2' + +homepage = 'http://python.org/' +description = "Python is a programming language that lets you work more quickly and integrate your systems more effectively." + +toolchain = {'name': 'goolf', 'version': '1.4.10'} +toolchainopts = {'pic': True, 'opt': True, 'optarch': True} + +numpyversion = '1.7.1' +scipyversion = '0.12.0' + +source_urls = ['http://www.python.org/ftp/%(namelower)s/%(version)s/'] +sources = [SOURCE_TGZ] + +# python needs bzip2 to build the bz2 package +dependencies = [ + ('bzip2', '1.0.6'), + ('zlib', '1.2.8'), + ('libreadline', '6.2'), + ('ncurses', '5.9'), + # ('OpenSSL', '1.0.1f'), # OS dependency should be preferred for security reasons +] + +osdependencies = [('openssl-devel', 'libssl-dev', 'libopenssl-devel')] + +# order is important! +exts_list = [ + ('setuptools', '1.1.1', { + 'source_urls': ['https://pypi.python.org/packages/source/s/setuptools'], + }), + ('pip', '1.4.1', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pip/'], + }), + ('nose', '1.3.0', { + 'source_urls': ['https://pypi.python.org/packages/source/n/nose/'], + }), + ('numpy', numpyversion, { + 'source_urls': [('http://sourceforge.net/projects/numpy/files/NumPy/%s' % numpyversion, 'download')], + 'patches': ['numpy-1.7.1_distutils_multiple-lib-dirs.patch'], + }), + ('scipy', scipyversion, { + 'source_urls': [('http://sourceforge.net/projects/scipy/files/scipy/%s' % scipyversion, 'download')], + }), +] + +moduleclass = 'lang' diff --git a/p/Python/Python-3.3.2-ictce-5.3.0.eb b/p/Python/Python-3.3.2-ictce-5.3.0.eb new file mode 100644 index 00000000..97e6c04c --- /dev/null +++ b/p/Python/Python-3.3.2-ictce-5.3.0.eb @@ -0,0 +1,49 @@ +name = 'Python' +version = '3.3.2' + +homepage = 'http://python.org/' +description = "Python is a programming language that lets you work more quickly and integrate your systems more effectively." + +toolchain = {'name': 'ictce', 'version': '5.3.0'} +toolchainopts = {'pic': True, 'opt': True, 'optarch': True} + +numpyversion = '1.7.1' +scipyversion = '0.12.0' + +source_urls = ['http://www.python.org/ftp/%(namelower)s/%(version)s/'] +sources = [SOURCE_TGZ] + +patches = ['python-3.3_libffi-include-xmmintrin.patch'] + +# python needs bzip2 to build the bz2 package +dependencies = [ + ('bzip2', '1.0.6'), + ('zlib', '1.2.8'), + ('libreadline', '6.2'), + ('ncurses', '5.9'), + # ('OpenSSL', '1.0.1f'), # OS dependency should be preferred for security reasons +] + +osdependencies = [('openssl-devel', 'libssl-dev', 'libopenssl-devel')] + +# order is important! +exts_list = [ + ('setuptools', '1.1.1', { + 'source_urls': ['https://pypi.python.org/packages/source/s/setuptools'], + }), + ('pip', '1.4.1', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pip/'], + }), + ('nose', '1.3.0', { + 'source_urls': ['https://pypi.python.org/packages/source/n/nose/'], + }), + ('numpy', numpyversion, { + 'source_urls': [('http://sourceforge.net/projects/numpy/files/NumPy/%s' % numpyversion, 'download')], + 'patches': ['numpy-1.7.1_distutils_multiple-lib-dirs.patch'], + }), + ('scipy', scipyversion, { + 'source_urls': [('http://sourceforge.net/projects/scipy/files/scipy/%s' % scipyversion, 'download')], + }), +] + +moduleclass = 'lang' diff --git a/p/Python/Python-3.4.1-intel-2014b.eb b/p/Python/Python-3.4.1-intel-2014b.eb new file mode 100644 index 00000000..66630e99 --- /dev/null +++ b/p/Python/Python-3.4.1-intel-2014b.eb @@ -0,0 +1,106 @@ +name = 'Python' +version = '3.4.1' + +homepage = 'http://python.org/' +description = "Python is a programming language that lets you work more quickly and integrate your systems more effectively." + +toolchain = {'name': 'intel', 'version': '2014b'} +toolchainopts = {'pic': True, 'opt': True, 'optarch': True} + +numpyversion = '1.8.1' +scipyversion = '0.14.0' + +source_urls = ['http://www.python.org/ftp/%(namelower)s/%(version)s/'] +sources = [SOURCE_TGZ] + +# libffi build in python is still broken, see http://bugs.python.org/issue4130 +patches = ['python-3.4_libffi-include-xmmintrin.patch'] + +# python needs bzip2 to build the bz2 package +dependencies = [ + ('bzip2', '1.0.6'), + ('zlib', '1.2.8'), + ('libreadline', '6.3'), + ('ncurses', '5.9'), + # ('OpenSSL', '1.0.1g'), # OS dependency should be preferred for security reasons +] + +osdependencies = [('openssl-devel', 'libssl-dev', 'libopenssl-devel')] + +# order is important! +# Version updated 08/JULY/2014 +exts_list = [ + ('setuptools', '5.4.1', { + 'source_urls': ['https://pypi.python.org/packages/source/s/setuptools/'], + }), + ('pip', '1.5.6', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pip/'], + }), + ('nose', '1.3.3', { + 'source_urls': ['https://pypi.python.org/packages/source/n/nose/'], + }), + ('numpy', numpyversion, { + 'source_urls': [('http://sourceforge.net/projects/numpy/files/NumPy/%s' % numpyversion, 'download')], + 'patches': [ + 'numpy-%s-mkl.patch' % numpyversion, + ], + }), + ('scipy', scipyversion, { + 'source_urls': [('http://sourceforge.net/projects/scipy/files/scipy/%s' % scipyversion, 'download')], + }), + ('blist', '1.3.6', { + 'source_urls': ['https://pypi.python.org/packages/source/b/blist/'], + }), + ('mpi4py', '1.3.1', { + 'source_urls': ['http://bitbucket.org/mpi4py/mpi4py/downloads/'], + }), + ('paycheck', '1.0.2', { + 'source_urls': ['https://pypi.python.org/packages/source/p/paycheck/'], + 'patches': [ + 'paycheck-1.0.2_setup-open-README-utf8.patch', + ], + }), + ('lockfile', '0.9.1', { + 'source_urls': ['https://pypi.python.org/packages/source/l/lockfile/'], + # tarball has changed upstream, so make sure we get the right version by verifying the checksum + 'checksums': ['ce61468d4c1263e3005737bbed2641f0'], + }), + ('Cython', '0.20.2', { + 'source_urls': ['http://www.cython.org/release/'], + }), + ('six', '1.7.3', { + 'source_urls': ['https://pypi.python.org/packages/source/s/six/'], + }), + ('dateutil', '2.2', { + 'source_tmpl': 'python-%(name)s-%(version)s.tar.gz', + 'source_urls': ['https://pypi.python.org/packages/source/p/python-dateutil/'], + }), + ('deap', '1.0.1', { + 'source_urls': ['https://pypi.python.org/packages/source/d/deap/'], + 'patches': [ + 'deap-1.0.1_setup-open-README-utf8.patch', + ], + }), + ('decorator', '3.4.0', { + 'source_urls': ['https://pypi.python.org/packages/source/d/decorator/'], + }), + ('arff', '2.0.1', { + 'source_tmpl': 'liac-%(name)s-%(version)s.zip', + 'source_urls': ['https://pypi.python.org/packages/source/l/liac-arff/'], + }), + ('pycrypto', '2.6.1', { + 'modulename': 'Crypto', + 'source_urls': ['http://ftp.dlitz.net/pub/dlitz/crypto/pycrypto/'], + }), + ('ecdsa', '0.11', { + 'source_urls': ['https://pypi.python.org/packages/source/e/ecdsa/'], + }), + ('paramiko', '1.14.0', { + 'source_urls': ['https://pypi.python.org/packages/source/p/paramiko/'], + }), + ('pyparsing', '2.0.2', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pyparsing/'], + }), +] + +moduleclass = 'lang' diff --git a/p/Python/Python-3.4.1-intel-2015a.eb b/p/Python/Python-3.4.1-intel-2015a.eb new file mode 100644 index 00000000..d93f95e4 --- /dev/null +++ b/p/Python/Python-3.4.1-intel-2015a.eb @@ -0,0 +1,106 @@ +name = 'Python' +version = '3.4.1' + +homepage = 'http://python.org/' +description = "Python is a programming language that lets you work more quickly and integrate your systems more effectively." + +toolchain = {'name': 'intel', 'version': '2015a'} +toolchainopts = {'pic': True, 'opt': True, 'optarch': True} + +numpyversion = '1.8.1' +scipyversion = '0.14.0' + +source_urls = ['http://www.python.org/ftp/%(namelower)s/%(version)s/'] +sources = [SOURCE_TGZ] + +# libffi build in python is still broken, see http://bugs.python.org/issue4130 +patches = ['python-3.4_libffi-include-xmmintrin.patch'] + +# python needs bzip2 to build the bz2 package +dependencies = [ + ('bzip2', '1.0.6'), + ('zlib', '1.2.8'), + ('libreadline', '6.3'), + ('ncurses', '5.9'), + # ('OpenSSL', '1.0.1g'), # OS dependency should be preferred for security reasons +] + +osdependencies = [('openssl-devel', 'libssl-dev', 'libopenssl-devel')] + +# order is important! +# Version updated 08/JULY/2014 +exts_list = [ + ('setuptools', '5.4.1', { + 'source_urls': ['https://pypi.python.org/packages/source/s/setuptools/'], + }), + ('pip', '1.5.6', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pip/'], + }), + ('nose', '1.3.3', { + 'source_urls': ['https://pypi.python.org/packages/source/n/nose/'], + }), + ('numpy', numpyversion, { + 'source_urls': [('http://sourceforge.net/projects/numpy/files/NumPy/%s' % numpyversion, 'download')], + 'patches': [ + 'numpy-%s-mkl.patch' % numpyversion, + ], + }), + ('scipy', scipyversion, { + 'source_urls': [('http://sourceforge.net/projects/scipy/files/scipy/%s' % scipyversion, 'download')], + }), + ('blist', '1.3.6', { + 'source_urls': ['https://pypi.python.org/packages/source/b/blist/'], + }), + ('mpi4py', '1.3.1', { + 'source_urls': ['http://bitbucket.org/mpi4py/mpi4py/downloads/'], + }), + ('paycheck', '1.0.2', { + 'source_urls': ['https://pypi.python.org/packages/source/p/paycheck/'], + 'patches': [ + 'paycheck-1.0.2_setup-open-README-utf8.patch', + ], + }), + ('lockfile', '0.9.1', { + 'source_urls': ['https://pypi.python.org/packages/source/l/lockfile/'], + # tarball has changed upstream, so make sure we get the right version by verifying the checksum + 'checksums': ['ce61468d4c1263e3005737bbed2641f0'], + }), + ('Cython', '0.20.2', { + 'source_urls': ['http://www.cython.org/release/'], + }), + ('six', '1.7.3', { + 'source_urls': ['https://pypi.python.org/packages/source/s/six/'], + }), + ('dateutil', '2.2', { + 'source_tmpl': 'python-%(name)s-%(version)s.tar.gz', + 'source_urls': ['https://pypi.python.org/packages/source/p/python-dateutil/'], + }), + ('deap', '1.0.1', { + 'source_urls': ['https://pypi.python.org/packages/source/d/deap/'], + 'patches': [ + 'deap-1.0.1_setup-open-README-utf8.patch', + ], + }), + ('decorator', '3.4.0', { + 'source_urls': ['https://pypi.python.org/packages/source/d/decorator/'], + }), + ('arff', '2.0.1', { + 'source_tmpl': 'liac-%(name)s-%(version)s.zip', + 'source_urls': ['https://pypi.python.org/packages/source/l/liac-arff/'], + }), + ('pycrypto', '2.6.1', { + 'modulename': 'Crypto', + 'source_urls': ['http://ftp.dlitz.net/pub/dlitz/crypto/pycrypto/'], + }), + ('ecdsa', '0.11', { + 'source_urls': ['https://pypi.python.org/packages/source/e/ecdsa/'], + }), + ('paramiko', '1.14.0', { + 'source_urls': ['https://pypi.python.org/packages/source/p/paramiko/'], + }), + ('pyparsing', '2.0.2', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pyparsing/'], + }), +] + +moduleclass = 'lang' diff --git a/p/Python/Python-3.4.3-intel-2015a.eb b/p/Python/Python-3.4.3-intel-2015a.eb new file mode 100644 index 00000000..f8a38510 --- /dev/null +++ b/p/Python/Python-3.4.3-intel-2015a.eb @@ -0,0 +1,110 @@ +name = 'Python' +version = '3.4.3' + +homepage = 'http://python.org/' +description = "Python is a programming language that lets you work more quickly and integrate your systems more effectively." + +toolchain = {'name': 'intel', 'version': '2015a'} +toolchainopts = {'pic': True, 'opt': True, 'optarch': True} + +numpyversion = '1.9.2' +scipyversion = '0.15.1' + +source_urls = ['http://www.python.org/ftp/%(namelower)s/%(version)s/'] +sources = [SOURCE_TGZ] + +# python needs bzip2 to build the bz2 package +dependencies = [ + ('bzip2', '1.0.6'), + ('zlib', '1.2.8'), + ('libreadline', '6.3'), + ('ncurses', '5.9'), + # ('OpenSSL', '1.0.1m'), # OS dependency should be preferred if the os version is more recent then this version, it's + # nice to have an up to date openssl for security reasons +] + +osdependencies = [('openssl-devel', 'libssl-dev')] + +# order is important! +# package versions updated Jan 19th 2015 +exts_list = [ + ('setuptools', '15.2', { + 'source_urls': ['https://pypi.python.org/packages/source/s/setuptools/'], + }), + ('pip', '6.1.1', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pip/'], + }), + ('nose', '1.3.6', { + 'source_urls': ['https://pypi.python.org/packages/source/n/nose/'], + }), + ('numpy', numpyversion, { + 'source_urls': [('http://sourceforge.net/projects/numpy/files/NumPy/%s' % numpyversion, 'download')], + 'patches': ['numpy-1.8.0-mkl.patch'], + }), + ('scipy', scipyversion, { + 'source_urls': [('http://sourceforge.net/projects/scipy/files/scipy/%s' % scipyversion, 'download')], + }), + ('blist', '1.3.6', { + 'source_urls': ['https://pypi.python.org/packages/source/b/blist/'], + }), + ('mpi4py', '1.3.1', { + 'source_urls': ['http://bitbucket.org/mpi4py/mpi4py/downloads/'], + }), + ('paycheck', '1.0.2', { + 'source_urls': ['https://pypi.python.org/packages/source/p/paycheck/'], + 'patches': [ + 'paycheck-1.0.2_setup-open-README-utf8.patch', + ], + }), + ('pbr', '0.11.0', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pbr/'], + }), + ('lockfile', '0.10.2', { + 'source_urls': ['https://pypi.python.org/packages/source/l/lockfile/'], + }), + ('Cython', '0.22', { + 'source_urls': ['http://www.cython.org/release/'], + }), + ('six', '1.9.0', { + 'source_urls': ['https://pypi.python.org/packages/source/s/six/'], + }), + ('dateutil', '2.4.2', { + 'source_tmpl': 'python-%(name)s-%(version)s.tar.gz', + 'source_urls': ['https://pypi.python.org/packages/source/p/python-dateutil/'], + }), + ('deap', '1.0.2', { + 'source_tmpl': '%(name)s-%(version)s.post2.tar.gz', + 'source_urls': ['https://pypi.python.org/packages/source/d/deap/'], + 'patches': [ + 'deap-1.0.2_setup-open-README-utf8.patch', + ], + }), + ('decorator', '3.4.2', { + 'source_urls': ['https://pypi.python.org/packages/source/d/decorator/'], + }), + ('arff', '2.0.2', { + 'source_tmpl': 'liac-%(name)s-%(version)s.zip', + 'source_urls': ['https://pypi.python.org/packages/source/l/liac-arff/'], + }), + ('pycrypto', '2.6.1', { + 'modulename': 'Crypto', + 'source_urls': ['http://ftp.dlitz.net/pub/dlitz/crypto/pycrypto/'], + }), + ('ecdsa', '0.13', { + 'source_urls': ['https://pypi.python.org/packages/source/e/ecdsa/'], + }), + ('paramiko', '1.15.2', { + 'source_urls': ['https://pypi.python.org/packages/source/p/paramiko/'], + }), + ('pyparsing', '2.0.3', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pyparsing/'], + }), + ('netifaces', '0.10.4', { + 'source_urls': ['https://pypi.python.org/packages/source/n/netifaces'], + }), + ('netaddr', '0.7.14', { + 'source_urls': ['https://pypi.python.org/packages/source/n/netaddr'], + }), +] + +moduleclass = 'lang' diff --git a/p/Python/Python-3.5.0-intel-2015b.eb b/p/Python/Python-3.5.0-intel-2015b.eb new file mode 100644 index 00000000..6b562baa --- /dev/null +++ b/p/Python/Python-3.5.0-intel-2015b.eb @@ -0,0 +1,113 @@ +name = 'Python' +version = '3.5.0' + +homepage = 'http://python.org/' +description = "Python is a programming language that lets you work more quickly and integrate your systems more effectively." + +toolchain = {'name': 'intel', 'version': '2015b'} +toolchainopts = {'pic': True, 'opt': True, 'optarch': True} + +numpyversion = '1.9.3' +scipyversion = '0.16.0' + +source_urls = ['http://www.python.org/ftp/%(namelower)s/%(version)s/'] +sources = [SOURCE_TGZ] + +# python needs bzip2 to build the bz2 package +dependencies = [ + ('bzip2', '1.0.6'), + ('zlib', '1.2.8'), + ('libreadline', '6.3'), + ('ncurses', '5.9'), + ('SQLite', '3.9.2'), + ('Tk', '8.6.4', '-no-X11'), + ('GMP', '6.1.0'), + # ('OpenSSL', '1.0.1p'), # OS dependency should be preferred if the os version is more recent then this version, it's + # nice to have an up to date openssl for security reasons +] + +osdependencies = [('openssl-devel', 'libssl-dev')] + +# order is important! +# package versions updated Jan 19th 2015 +exts_list = [ + ('setuptools', '18.3.2', { + 'source_urls': ['https://pypi.python.org/packages/source/s/setuptools/'], + }), + ('pip', '7.1.2', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pip/'], + }), + ('nose', '1.3.7', { + 'source_urls': ['https://pypi.python.org/packages/source/n/nose/'], + }), + ('numpy', numpyversion, { + 'source_urls': ['https://pypi.python.org/packages/source/n/numpy/'], + 'patches': ['numpy-1.8.0-mkl.patch'], + }), + ('scipy', scipyversion, { + 'source_urls': ['https://pypi.python.org/packages/source/s/scipy/'], + }), + ('blist', '1.3.6', { + 'source_urls': ['https://pypi.python.org/packages/source/b/blist/'], + }), + ('mpi4py', '1.3.1', { + 'source_urls': ['http://bitbucket.org/mpi4py/mpi4py/downloads/'], + }), + ('paycheck', '1.0.2', { + 'source_urls': ['https://pypi.python.org/packages/source/p/paycheck/'], + 'patches': [ + 'paycheck-1.0.2_setup-open-README-utf8.patch', + ], + }), + ('pbr', '1.8.0', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pbr/'], + }), + ('lockfile', '0.10.2', { + 'source_urls': ['https://pypi.python.org/packages/source/l/lockfile/'], + }), + ('Cython', '0.23.2', { + 'source_urls': ['http://www.cython.org/release/'], + }), + ('six', '1.9.0', { + 'source_urls': ['https://pypi.python.org/packages/source/s/six/'], + }), + ('dateutil', '2.4.2', { + 'source_tmpl': 'python-%(name)s-%(version)s.tar.gz', + 'source_urls': ['https://pypi.python.org/packages/source/p/python-dateutil/'], + }), + ('deap', '1.0.2', { + 'source_tmpl': '%(name)s-%(version)s.post2.tar.gz', + 'source_urls': ['https://pypi.python.org/packages/source/d/deap/'], + 'patches': [ + 'deap-1.0.2_setup-open-README-utf8.patch', + ], + }), + ('decorator', '4.0.4', { + 'source_urls': ['https://pypi.python.org/packages/source/d/decorator/'], + }), + ('arff', '2.1.0', { + 'source_tmpl': 'liac-%(name)s-%(version)s.zip', + 'source_urls': ['https://pypi.python.org/packages/source/l/liac-arff/'], + }), + ('pycrypto', '2.6.1', { + 'modulename': 'Crypto', + 'source_urls': ['http://ftp.dlitz.net/pub/dlitz/crypto/pycrypto/'], + }), + ('ecdsa', '0.13', { + 'source_urls': ['https://pypi.python.org/packages/source/e/ecdsa/'], + }), + ('paramiko', '1.15.2', { + 'source_urls': ['https://pypi.python.org/packages/source/p/paramiko/'], + }), + ('pyparsing', '2.0.3', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pyparsing/'], + }), + ('netifaces', '0.10.4', { + 'source_urls': ['https://pypi.python.org/packages/source/n/netifaces'], + }), + ('netaddr', '0.7.18', { + 'source_urls': ['https://pypi.python.org/packages/source/n/netaddr'], + }), +] + +moduleclass = 'lang' diff --git a/p/Python/Python-3.5.1-foss-2015a.eb b/p/Python/Python-3.5.1-foss-2015a.eb new file mode 100644 index 00000000..68a36603 --- /dev/null +++ b/p/Python/Python-3.5.1-foss-2015a.eb @@ -0,0 +1,126 @@ +name = 'Python' +version = '3.5.1' + +homepage = 'http://python.org/' +description = "Python is a programming language that lets you work more quickly and integrate your systems more effectively." + +toolchain = {'name': 'foss', 'version': '2015a'} +toolchainopts = {'pic': True, 'opt': True, 'optarch': True} + +numpyversion = '1.10.4' +scipyversion = '0.17.0' + +source_urls = ['http://www.python.org/ftp/%(namelower)s/%(version)s/'] +sources = [SOURCE_TGZ] + +# python needs bzip2 to build the bz2 package +dependencies = [ + ('bzip2', '1.0.6'), + ('zlib', '1.2.8'), + ('libreadline', '6.3'), + ('ncurses', '5.9'), + ('SQLite', '3.10.0'), + ('Tk', '8.6.4', '-no-X11'), # this requires a full X11 stack + ('GMP', '6.1.0'), + ('XZ', '5.2.2'), +# ('OpenSSL', '1.0.1q'), # OS dependency should be preferred if the os version is more recent then this version, it's +# nice to have an up to date openssl for security reasons +] + +osdependencies = [('openssl-devel', 'libssl-dev')] + +# order is important! +# package versions updated Feb 25th 2016 +exts_list = [ + ('setuptools', '20.1.1', { + 'source_urls': ['https://pypi.python.org/packages/source/s/setuptools/'], + }), + ('pip', '8.0.2', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pip/'], + }), + ('nose', '1.3.7', { + 'source_urls': ['https://pypi.python.org/packages/source/n/nose/'], + }), + ('numpy', numpyversion, { + 'source_urls': ['https://pypi.python.org/packages/source/n/numpy/'], + }), + ('scipy', scipyversion, { + 'source_urls': ['https://pypi.python.org/packages/source/s/scipy/'], + }), + ('blist', '1.3.6', { + 'source_urls': ['https://pypi.python.org/packages/source/b/blist/'], + }), + ('mpi4py', '2.0.0', { + 'source_urls': ['http://bitbucket.org/mpi4py/mpi4py/downloads/'], + }), + ('paycheck', '1.0.2', { + 'source_urls': ['https://pypi.python.org/packages/source/p/paycheck/'], + 'patches': [ + 'paycheck-1.0.2_setup-open-README-utf8.patch', + ], + }), + ('pbr', '1.8.1', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pbr/'], + }), + ('lockfile', '0.12.2', { + 'source_urls': ['https://pypi.python.org/packages/source/l/lockfile/'], + }), + ('Cython', '0.23.4', { + 'source_urls': ['https://pypi.python.org/packages/source/C/Cython/'], + }), + ('six', '1.10.0', { + 'source_urls': ['https://pypi.python.org/packages/source/s/six/'], + }), + ('dateutil', '2.4.2', { + 'source_tmpl': 'python-%(name)s-%(version)s.tar.gz', + 'source_urls': ['https://pypi.python.org/packages/source/p/python-dateutil/'], + }), + ('deap', '1.0.2', { + 'source_tmpl': '%(name)s-%(version)s.post2.tar.gz', + 'source_urls': ['https://pypi.python.org/packages/source/d/deap/'], + 'patches': [ + 'deap-1.0.2_setup-open-README-utf8.patch', + ], + }), + ('decorator', '4.0.9', { + 'source_urls': ['https://pypi.python.org/packages/source/d/decorator/'], + }), + ('arff', '2.1.0', { + 'source_tmpl': 'liac-%(name)s-%(version)s.zip', + 'source_urls': ['https://pypi.python.org/packages/source/l/liac-arff/'], + }), + ('pycrypto', '2.6.1', { + 'modulename': 'Crypto', + 'source_urls': ['http://ftp.dlitz.net/pub/dlitz/crypto/pycrypto/'], + }), + ('ecdsa', '0.13', { + 'source_urls': ['https://pypi.python.org/packages/source/e/ecdsa/'], + }), + ('paramiko', '1.16.0', { + 'source_urls': ['https://pypi.python.org/packages/source/p/paramiko/'], + }), + ('pyparsing', '2.1.0', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pyparsing/'], + }), + ('netifaces', '0.10.4', { + 'source_urls': ['https://pypi.python.org/packages/source/n/netifaces'], + }), + ('netaddr', '0.7.18', { + 'source_urls': ['https://pypi.python.org/packages/source/n/netaddr'], + }), + ('pandas', '0.17.1', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pandas'], + }), + ('bitstring', '3.1.3', { + 'source_tmpl': '%(name)s-%(version)s.zip', + 'source_urls': ['https://pypi.python.org/packages/source/b/bitstring'], + }), + ('pytz', '2016.3', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pytz'], + }), + ('virtualenv', '15.0.1', { + 'source_urls': ['https://pypi.python.org/packages/source/v/virtualenv'], + }), +] + +moduleclass = 'lang' diff --git a/p/Python/Python-3.5.1-foss-2016a.eb b/p/Python/Python-3.5.1-foss-2016a.eb new file mode 100644 index 00000000..c1171133 --- /dev/null +++ b/p/Python/Python-3.5.1-foss-2016a.eb @@ -0,0 +1,116 @@ +name = 'Python' +version = '3.5.1' + +homepage = 'http://python.org/' +description = "Python is a programming language that lets you work more quickly and integrate your systems more effectively." + +toolchain = {'name': 'foss', 'version': '2016a'} +toolchainopts = {'pic': True, 'opt': True, 'optarch': True} + +numpyversion = '1.10.4' +scipyversion = '0.17.0' + +source_urls = ['http://www.python.org/ftp/%(namelower)s/%(version)s/'] +sources = [SOURCE_TGZ] + +# python needs bzip2 to build the bz2 package +dependencies = [ + ('bzip2', '1.0.6'), + ('zlib', '1.2.8'), + ('libreadline', '6.3'), + ('ncurses', '6.0'), + ('SQLite', '3.9.2'), + ('Tk', '8.6.4', '-no-X11'), + ('GMP', '6.1.0'), + ('XZ', '5.2.2'), +# ('OpenSSL', '1.0.1q'), # OS dependency should be preferred if the os version is more recent then this version, it's +# nice to have an up to date openssl for security reasons +] + +osdependencies = [('openssl-devel', 'libssl-dev')] + +# order is important! +# package versions updated Feb 25th 2016 +exts_list = [ + ('setuptools', '20.1.1', { + 'source_urls': ['https://pypi.python.org/packages/source/s/setuptools/'], + }), + ('pip', '8.0.2', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pip/'], + }), + ('nose', '1.3.7', { + 'source_urls': ['https://pypi.python.org/packages/source/n/nose/'], + }), + ('numpy', numpyversion, { + 'source_urls': ['https://pypi.python.org/packages/source/n/numpy/'], + }), + ('scipy', scipyversion, { + 'source_urls': ['https://pypi.python.org/packages/source/s/scipy/'], + }), + ('blist', '1.3.6', { + 'source_urls': ['https://pypi.python.org/packages/source/b/blist/'], + }), + ('mpi4py', '2.0.0', { + 'source_urls': ['http://bitbucket.org/mpi4py/mpi4py/downloads/'], + }), + ('paycheck', '1.0.2', { + 'source_urls': ['https://pypi.python.org/packages/source/p/paycheck/'], + 'patches': [ + 'paycheck-1.0.2_setup-open-README-utf8.patch', + ], + }), + ('pbr', '1.8.1', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pbr/'], + }), + ('lockfile', '0.12.2', { + 'source_urls': ['https://pypi.python.org/packages/source/l/lockfile/'], + }), + ('Cython', '0.23.4', { + 'source_urls': ['http://www.cython.org/release/'], + }), + ('six', '1.10.0', { + 'source_urls': ['https://pypi.python.org/packages/source/s/six/'], + }), + ('dateutil', '2.4.2', { + 'source_tmpl': 'python-%(name)s-%(version)s.tar.gz', + 'source_urls': ['https://pypi.python.org/packages/source/p/python-dateutil/'], + }), + ('deap', '1.0.2', { + 'source_tmpl': '%(name)s-%(version)s.post2.tar.gz', + 'source_urls': ['https://pypi.python.org/packages/source/d/deap/'], + 'patches': [ + 'deap-1.0.2_setup-open-README-utf8.patch', + ], + }), + ('decorator', '4.0.9', { + 'source_urls': ['https://pypi.python.org/packages/source/d/decorator/'], + }), + ('arff', '2.1.0', { + 'source_tmpl': 'liac-%(name)s-%(version)s.zip', + 'source_urls': ['https://pypi.python.org/packages/source/l/liac-arff/'], + }), + ('pycrypto', '2.6.1', { + 'modulename': 'Crypto', + 'source_urls': ['http://ftp.dlitz.net/pub/dlitz/crypto/pycrypto/'], + }), + ('ecdsa', '0.13', { + 'source_urls': ['https://pypi.python.org/packages/source/e/ecdsa/'], + }), + ('paramiko', '1.16.0', { + 'source_urls': ['https://pypi.python.org/packages/source/p/paramiko/'], + }), + ('pyparsing', '2.1.0', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pyparsing/'], + }), + ('netifaces', '0.10.4', { + 'source_urls': ['https://pypi.python.org/packages/source/n/netifaces'], + }), + ('netaddr', '0.7.18', { + 'source_urls': ['https://pypi.python.org/packages/source/n/netaddr'], + }), + ('pandas', '0.17.1', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pandas'], + }), +] + +moduleclass = 'lang' diff --git a/p/Python/Python-3.5.1-intel-2016.01.eb b/p/Python/Python-3.5.1-intel-2016.01.eb new file mode 100644 index 00000000..095c6cf6 --- /dev/null +++ b/p/Python/Python-3.5.1-intel-2016.01.eb @@ -0,0 +1,120 @@ +name = 'Python' +version = '3.5.1' + +homepage = 'http://python.org/' +description = "Python is a programming language that lets you work more quickly and integrate your systems more effectively." + +toolchain = {'name': 'intel', 'version': '2016.01'} +toolchainopts = {'pic': True, 'opt': True, 'optarch': True} + +numpyversion = '1.10.4' +scipyversion = '0.17.0' + +source_urls = ['http://www.python.org/ftp/%(namelower)s/%(version)s/'] +sources = [SOURCE_TGZ] + +# python needs bzip2 to build the bz2 package +dependencies = [ + ('bzip2', '1.0.6'), + ('zlib', '1.2.8'), + ('libreadline', '6.3'), + ('ncurses', '5.9'), + ('SQLite', '3.9.2'), + ('Tk', '8.6.4', '-no-X11'), + ('GMP', '6.1.0'), + ('XZ', '5.2.2'), +# ('OpenSSL', '1.0.1q'), # OS dependency should be preferred if the os version is more recent then this version, it's +# nice to have an up to date openssl for security reasons +] + +osdependencies = [('openssl-devel', 'libssl-dev')] + +# order is important! +# package versions updated Feb 25th 2016 +exts_list = [ + ('setuptools', '20.1.1', { + 'source_urls': ['https://pypi.python.org/packages/source/s/setuptools/'], + }), + ('pip', '8.0.2', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pip/'], + }), + ('nose', '1.3.7', { + 'source_urls': ['https://pypi.python.org/packages/source/n/nose/'], + }), + ('numpy', numpyversion, { + 'source_urls': ['https://pypi.python.org/packages/source/n/numpy/'], + 'patches': [ + 'numpy-1.8.0-mkl.patch', + 'numpy-%s-sse42.patch' % numpyversion, + ], + }), + ('scipy', scipyversion, { + 'source_urls': ['https://pypi.python.org/packages/source/s/scipy/'], + }), + ('blist', '1.3.6', { + 'source_urls': ['https://pypi.python.org/packages/source/b/blist/'], + }), + ('mpi4py', '2.0.0', { + 'source_urls': ['http://bitbucket.org/mpi4py/mpi4py/downloads/'], + }), + ('paycheck', '1.0.2', { + 'source_urls': ['https://pypi.python.org/packages/source/p/paycheck/'], + 'patches': [ + 'paycheck-1.0.2_setup-open-README-utf8.patch', + ], + }), + ('pbr', '1.8.1', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pbr/'], + }), + ('lockfile', '0.12.2', { + 'source_urls': ['https://pypi.python.org/packages/source/l/lockfile/'], + }), + ('Cython', '0.23.4', { + 'source_urls': ['http://www.cython.org/release/'], + }), + ('six', '1.10.0', { + 'source_urls': ['https://pypi.python.org/packages/source/s/six/'], + }), + ('dateutil', '2.4.2', { + 'source_tmpl': 'python-%(name)s-%(version)s.tar.gz', + 'source_urls': ['https://pypi.python.org/packages/source/p/python-dateutil/'], + }), + ('deap', '1.0.2', { + 'source_tmpl': '%(name)s-%(version)s.post2.tar.gz', + 'source_urls': ['https://pypi.python.org/packages/source/d/deap/'], + 'patches': [ + 'deap-1.0.2_setup-open-README-utf8.patch', + ], + }), + ('decorator', '4.0.9', { + 'source_urls': ['https://pypi.python.org/packages/source/d/decorator/'], + }), + ('arff', '2.1.0', { + 'source_tmpl': 'liac-%(name)s-%(version)s.zip', + 'source_urls': ['https://pypi.python.org/packages/source/l/liac-arff/'], + }), + ('pycrypto', '2.6.1', { + 'modulename': 'Crypto', + 'source_urls': ['http://ftp.dlitz.net/pub/dlitz/crypto/pycrypto/'], + }), + ('ecdsa', '0.13', { + 'source_urls': ['https://pypi.python.org/packages/source/e/ecdsa/'], + }), + ('paramiko', '1.16.0', { + 'source_urls': ['https://pypi.python.org/packages/source/p/paramiko/'], + }), + ('pyparsing', '2.1.0', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pyparsing/'], + }), + ('netifaces', '0.10.4', { + 'source_urls': ['https://pypi.python.org/packages/source/n/netifaces'], + }), + ('netaddr', '0.7.18', { + 'source_urls': ['https://pypi.python.org/packages/source/n/netaddr'], + }), + ('pandas', '0.17.1', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pandas'], + }), +] + +moduleclass = 'lang' diff --git a/p/Python/Python-3.5.1-intel-2016a.eb b/p/Python/Python-3.5.1-intel-2016a.eb new file mode 100644 index 00000000..f0600eef --- /dev/null +++ b/p/Python/Python-3.5.1-intel-2016a.eb @@ -0,0 +1,120 @@ +name = 'Python' +version = '3.5.1' + +homepage = 'http://python.org/' +description = "Python is a programming language that lets you work more quickly and integrate your systems more effectively." + +toolchain = {'name': 'intel', 'version': '2016a'} +toolchainopts = {'pic': True, 'opt': True, 'optarch': True} + +numpyversion = '1.10.4' +scipyversion = '0.17.0' + +source_urls = ['http://www.python.org/ftp/%(namelower)s/%(version)s/'] +sources = [SOURCE_TGZ] + +# python needs bzip2 to build the bz2 package +dependencies = [ + ('bzip2', '1.0.6'), + ('zlib', '1.2.8'), + ('libreadline', '6.3'), + ('ncurses', '6.0'), + ('SQLite', '3.9.2'), + ('Tk', '8.6.4', '-no-X11'), + ('GMP', '6.1.0'), + ('XZ', '5.2.2'), +# ('OpenSSL', '1.0.1q'), # OS dependency should be preferred if the os version is more recent then this version, it's +# nice to have an up to date openssl for security reasons +] + +osdependencies = [('openssl-devel', 'libssl-dev')] + +# order is important! +# package versions updated Feb 25th 2016 +exts_list = [ + ('setuptools', '20.1.1', { + 'source_urls': ['https://pypi.python.org/packages/source/s/setuptools/'], + }), + ('pip', '8.0.2', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pip/'], + }), + ('nose', '1.3.7', { + 'source_urls': ['https://pypi.python.org/packages/source/n/nose/'], + }), + ('numpy', numpyversion, { + 'source_urls': ['https://pypi.python.org/packages/source/n/numpy/'], + 'patches': [ + 'numpy-1.8.0-mkl.patch', + 'numpy-%s-sse42.patch' % numpyversion, + ], + }), + ('scipy', scipyversion, { + 'source_urls': ['https://pypi.python.org/packages/source/s/scipy/'], + }), + ('blist', '1.3.6', { + 'source_urls': ['https://pypi.python.org/packages/source/b/blist/'], + }), + ('mpi4py', '2.0.0', { + 'source_urls': ['http://bitbucket.org/mpi4py/mpi4py/downloads/'], + }), + ('paycheck', '1.0.2', { + 'source_urls': ['https://pypi.python.org/packages/source/p/paycheck/'], + 'patches': [ + 'paycheck-1.0.2_setup-open-README-utf8.patch', + ], + }), + ('pbr', '1.8.1', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pbr/'], + }), + ('lockfile', '0.12.2', { + 'source_urls': ['https://pypi.python.org/packages/source/l/lockfile/'], + }), + ('Cython', '0.23.4', { + 'source_urls': ['http://www.cython.org/release/'], + }), + ('six', '1.10.0', { + 'source_urls': ['https://pypi.python.org/packages/source/s/six/'], + }), + ('dateutil', '2.4.2', { + 'source_tmpl': 'python-%(name)s-%(version)s.tar.gz', + 'source_urls': ['https://pypi.python.org/packages/source/p/python-dateutil/'], + }), + ('deap', '1.0.2', { + 'source_tmpl': '%(name)s-%(version)s.post2.tar.gz', + 'source_urls': ['https://pypi.python.org/packages/source/d/deap/'], + 'patches': [ + 'deap-1.0.2_setup-open-README-utf8.patch', + ], + }), + ('decorator', '4.0.9', { + 'source_urls': ['https://pypi.python.org/packages/source/d/decorator/'], + }), + ('arff', '2.1.0', { + 'source_tmpl': 'liac-%(name)s-%(version)s.zip', + 'source_urls': ['https://pypi.python.org/packages/source/l/liac-arff/'], + }), + ('pycrypto', '2.6.1', { + 'modulename': 'Crypto', + 'source_urls': ['http://ftp.dlitz.net/pub/dlitz/crypto/pycrypto/'], + }), + ('ecdsa', '0.13', { + 'source_urls': ['https://pypi.python.org/packages/source/e/ecdsa/'], + }), + ('paramiko', '1.16.0', { + 'source_urls': ['https://pypi.python.org/packages/source/p/paramiko/'], + }), + ('pyparsing', '2.1.0', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pyparsing/'], + }), + ('netifaces', '0.10.4', { + 'source_urls': ['https://pypi.python.org/packages/source/n/netifaces'], + }), + ('netaddr', '0.7.18', { + 'source_urls': ['https://pypi.python.org/packages/source/n/netaddr'], + }), + ('pandas', '0.17.1', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pandas'], + }), +] + +moduleclass = 'lang' diff --git a/p/Python/Python-3.5.1-intel-2017.00.eb b/p/Python/Python-3.5.1-intel-2017.00.eb new file mode 100644 index 00000000..0f59fec4 --- /dev/null +++ b/p/Python/Python-3.5.1-intel-2017.00.eb @@ -0,0 +1,109 @@ +name = 'Python' +version = '3.5.1' + +homepage = 'http://python.org/' +description = "Python is a programming language that lets you work more quickly and integrate your systems more effectively." + +toolchain = {'name': 'intel', 'version': '2017.00'} +toolchainopts = {'pic': True, 'opt': True, 'optarch': True} + +scipyversion = '0.17.0' + +source_urls = ['http://www.python.org/ftp/%(namelower)s/%(version)s/'] +sources = [SOURCE_TGZ] + +# python needs bzip2 to build the bz2 package +dependencies = [ + ('bzip2', '1.0.6'), + ('zlib', '1.2.8'), + ('libreadline', '6.3'), + ('ncurses', '6.0'), + ('SQLite', '3.9.2'), + ('Tk', '8.6.4', '-no-X11'), + ('GMP', '6.1.0'), + ('XZ', '5.2.2'), +# ('OpenSSL', '1.0.1q'), # OS dependency should be preferred if the os version is more recent then this version, it's +# nice to have an up to date openssl for security reasons +] + +osdependencies = [('openssl-devel', 'libssl-dev')] + +# order is important! +# package versions updated Feb 25th 2016 +exts_list = [ + ('setuptools', '20.1.1', { + 'source_urls': ['https://pypi.python.org/packages/source/s/setuptools/'], + }), + ('pip', '8.0.2', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pip/'], + }), + ('nose', '1.3.7', { + 'source_urls': ['https://pypi.python.org/packages/source/n/nose/'], + }), + ('blist', '1.3.6', { + 'source_urls': ['https://pypi.python.org/packages/source/b/blist/'], + }), + ('mpi4py', '2.0.0', { + 'source_urls': ['http://bitbucket.org/mpi4py/mpi4py/downloads/'], + }), + ('paycheck', '1.0.2', { + 'source_urls': ['https://pypi.python.org/packages/source/p/paycheck/'], + 'patches': [ + 'paycheck-1.0.2_setup-open-README-utf8.patch', + ], + }), + ('pbr', '1.8.1', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pbr/'], + }), + ('lockfile', '0.12.2', { + 'source_urls': ['https://pypi.python.org/packages/source/l/lockfile/'], + }), + ('Cython', '0.23.4', { + 'source_urls': ['http://www.cython.org/release/'], + }), + ('six', '1.10.0', { + 'source_urls': ['https://pypi.python.org/packages/source/s/six/'], + }), + ('dateutil', '2.4.2', { + 'source_tmpl': 'python-%(name)s-%(version)s.tar.gz', + 'source_urls': ['https://pypi.python.org/packages/source/p/python-dateutil/'], + }), + ('deap', '1.0.2', { + 'source_tmpl': '%(name)s-%(version)s.post2.tar.gz', + 'source_urls': ['https://pypi.python.org/packages/source/d/deap/'], + 'patches': [ + 'deap-1.0.2_setup-open-README-utf8.patch', + ], + }), + ('decorator', '4.0.9', { + 'source_urls': ['https://pypi.python.org/packages/source/d/decorator/'], + }), + ('arff', '2.1.0', { + 'source_tmpl': 'liac-%(name)s-%(version)s.zip', + 'source_urls': ['https://pypi.python.org/packages/source/l/liac-arff/'], + }), + ('pycrypto', '2.6.1', { + 'modulename': 'Crypto', + 'source_urls': ['http://ftp.dlitz.net/pub/dlitz/crypto/pycrypto/'], + }), + ('ecdsa', '0.13', { + 'source_urls': ['https://pypi.python.org/packages/source/e/ecdsa/'], + }), + ('paramiko', '1.16.0', { + 'source_urls': ['https://pypi.python.org/packages/source/p/paramiko/'], + }), + ('pyparsing', '2.1.0', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pyparsing/'], + }), + ('netifaces', '0.10.4', { + 'source_urls': ['https://pypi.python.org/packages/source/n/netifaces'], + }), + ('netaddr', '0.7.18', { + 'source_urls': ['https://pypi.python.org/packages/source/n/netaddr'], + }), + ('pandas', '0.17.1', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pandas'], + }), +] + +moduleclass = 'lang' diff --git a/p/Python/Python-3.5.1.eb b/p/Python/Python-3.5.1.eb new file mode 100644 index 00000000..4d8709b6 --- /dev/null +++ b/p/Python/Python-3.5.1.eb @@ -0,0 +1,116 @@ +name = 'Python' +version = '3.5.1' + +homepage = 'http://python.org/' +description = "Python is a programming language that lets you work more quickly and integrate your systems more effectively." + +toolchain = {'name': 'dummy', 'version': ''} +toolchainopts = {'pic': True, 'opt': True, 'optarch': True} + +numpyversion = '1.10.4' +scipyversion = '0.17.0' + +source_urls = ['http://www.python.org/ftp/%(namelower)s/%(version)s/'] +sources = [SOURCE_TGZ] + +# python needs bzip2 to build the bz2 package +dependencies = [ + ('bzip2', '1.0.6'), + ('zlib', '1.2.8'), + ('libreadline', '6.3'), + ('ncurses', '5.9'), + ('SQLite', '3.8.8.1'), + ('Tk', '8.6.3'), + ('GMP', '6.0.0a'), + ('XZ', '5.2.2'), +# ('OpenSSL', '1.0.1q'), # OS dependency should be preferred if the os version is more recent then this version, it's +# nice to have an up to date openssl for security reasons +] + +osdependencies = [('openssl-devel', 'libssl-dev')] + +# order is important! +# package versions updated Feb 25th 2016 +exts_list = [ + ('setuptools', '20.1.1', { + 'source_urls': ['https://pypi.python.org/packages/source/s/setuptools/'], + }), + ('pip', '8.0.2', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pip/'], + }), + ('nose', '1.3.7', { + 'source_urls': ['https://pypi.python.org/packages/source/n/nose/'], + }), +# ('numpy', numpyversion, { +# 'source_urls': ['https://pypi.python.org/packages/source/n/numpy/'], +# }), +# ('scipy', scipyversion, { +# 'source_urls': ['https://pypi.python.org/packages/source/s/scipy/'], +# }), +# ('blist', '1.3.6', { +# 'source_urls': ['https://pypi.python.org/packages/source/b/blist/'], +# }), +# ('mpi4py', '2.0.0', { +# 'source_urls': ['http://bitbucket.org/mpi4py/mpi4py/downloads/'], +# }), +# ('paycheck', '1.0.2', { +# 'source_urls': ['https://pypi.python.org/packages/source/p/paycheck/'], +# 'patches': [ +# 'paycheck-1.0.2_setup-open-README-utf8.patch', +# ], +# }), +# ('pbr', '1.8.1', { +# 'source_urls': ['https://pypi.python.org/packages/source/p/pbr/'], +# }), +# ('lockfile', '0.12.2', { +# 'source_urls': ['https://pypi.python.org/packages/source/l/lockfile/'], +# }), +# ('Cython', '0.23.4', { +# 'source_urls': ['http://www.cython.org/release/'], +# }), +# ('six', '1.10.0', { +# 'source_urls': ['https://pypi.python.org/packages/source/s/six/'], +# }), +# ('dateutil', '2.4.2', { +# 'source_tmpl': 'python-%(name)s-%(version)s.tar.gz', +# 'source_urls': ['https://pypi.python.org/packages/source/p/python-dateutil/'], +# }), +# ('deap', '1.0.2', { +# 'source_tmpl': '%(name)s-%(version)s.post2.tar.gz', +# 'source_urls': ['https://pypi.python.org/packages/source/d/deap/'], +# 'patches': [ +# 'deap-1.0.2_setup-open-README-utf8.patch', +# ], +# }), +# ('decorator', '4.0.9', { +# 'source_urls': ['https://pypi.python.org/packages/source/d/decorator/'], +# }), +# ('arff', '2.1.0', { +# 'source_tmpl': 'liac-%(name)s-%(version)s.zip', +# 'source_urls': ['https://pypi.python.org/packages/source/l/liac-arff/'], +# }), +# ('pycrypto', '2.6.1', { +# 'modulename': 'Crypto', +# 'source_urls': ['http://ftp.dlitz.net/pub/dlitz/crypto/pycrypto/'], +# }), +# ('ecdsa', '0.13', { +# 'source_urls': ['https://pypi.python.org/packages/source/e/ecdsa/'], +# }), +# ('paramiko', '1.16.0', { +# 'source_urls': ['https://pypi.python.org/packages/source/p/paramiko/'], +# }), +# ('pyparsing', '2.1.0', { +# 'source_urls': ['https://pypi.python.org/packages/source/p/pyparsing/'], +# }), +# ('netifaces', '0.10.4', { +# 'source_urls': ['https://pypi.python.org/packages/source/n/netifaces'], +# }), +# ('netaddr', '0.7.18', { +# 'source_urls': ['https://pypi.python.org/packages/source/n/netaddr'], +# }), +# ('pandas', '0.17.1', { +# 'source_urls': ['https://pypi.python.org/packages/source/p/pandas'], +# }), +] + +moduleclass = 'lang' diff --git a/p/Python/Python-3.5.2-foss-2016.04.eb b/p/Python/Python-3.5.2-foss-2016.04.eb new file mode 100644 index 00000000..f49b2ff0 --- /dev/null +++ b/p/Python/Python-3.5.2-foss-2016.04.eb @@ -0,0 +1,123 @@ +name = 'Python' +version = '3.5.2' + +homepage = 'http://python.org/' +description = """Python is a programming language that lets you work more quickly + and integrate your systems more effectively.""" + +toolchain = {'name': 'foss', 'version': '2016.04'} +toolchainopts = {'pic': True} + +source_urls = ['http://www.python.org/ftp/%(namelower)s/%(version)s/'] +sources = [SOURCE_TGZ] + +# python needs bzip2 to build the bz2 package +dependencies = [ + ('bzip2', '1.0.6'), + ('zlib', '1.2.8'), + ('libreadline', '6.3'), + ('ncurses', '6.0'), + ('SQLite', '3.13.0'), + ('Tk', '8.6.5'), # this requires a full X11 stack + ('GMP', '6.1.1'), + ('XZ', '5.2.2'), + ('libffi', '3.2.1'), + # OS dependency should be preferred if the os version is more recent then this version, + # it's nice to have an up to date openssl for security reasons + #('OpenSSL', '1.0.2h'), +] + +osdependencies = [('openssl-devel', 'libssl-dev', 'libopenssl-devel')] + +# order is important! +# package versions updated May 28th 2015 +exts_list = [ + ('setuptools', '23.1.0', { + 'source_urls': ['https://pypi.python.org/packages/source/s/setuptools/'], + }), + ('pip', '8.1.2', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pip/'], + }), + ('nose', '1.3.7', { + 'source_urls': ['https://pypi.python.org/packages/source/n/nose/'], + }), + ('numpy', '1.11.1', { + 'source_urls': ['https://pypi.python.org/packages/source/n/numpy'], + 'patches': ['numpy-1.8.0-mkl.patch'], + }), + ('scipy', '0.17.1', { + 'source_urls': ['https://pypi.python.org/packages/source/s/scipy'], + }), + ('blist', '1.3.6', { + 'source_urls': ['https://pypi.python.org/packages/source/b/blist/'], + }), + ('mpi4py', '1.3.1', { + 'source_urls': ['http://bitbucket.org/mpi4py/mpi4py/downloads/'], + }), + ('paycheck', '1.0.2', { + 'source_urls': ['https://pypi.python.org/packages/source/p/paycheck/'], + 'patches': [ + 'paycheck-1.0.2_setup-open-README-utf8.patch', + ], + }), + ('pbr', '1.10.0', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pbr/'], + }), + ('lockfile', '0.12.2', { + 'source_urls': ['https://pypi.python.org/packages/source/l/lockfile/'], + }), + ('Cython', '0.24', { + 'source_urls': ['https://pypi.python.org/packages/source/c/cython/'], + }), + ('six', '1.10.0', { + 'source_urls': ['https://pypi.python.org/packages/source/s/six/'], + }), + ('dateutil', '2.5.3', { + 'source_tmpl': 'python-%(name)s-%(version)s.tar.gz', + 'source_urls': ['https://pypi.python.org/packages/source/p/python-dateutil/'], + }), + ('deap', '1.0.2', { + 'source_tmpl': '%(name)s-%(version)s.post2.tar.gz', + 'source_urls': ['https://pypi.python.org/packages/source/d/deap/'], + 'patches': [ + 'deap-1.0.2_setup-open-README-utf8.patch', + ], + }), + ('decorator', '4.0.10', { + 'source_urls': ['https://pypi.python.org/packages/source/d/decorator/'], + }), + ('arff', '2.1.0', { + 'source_tmpl': 'liac-%(name)s-%(version)s.zip', + 'source_urls': ['https://pypi.python.org/packages/source/l/liac-arff/'], + }), + ('pycrypto', '2.6.1', { + 'modulename': 'Crypto', + 'source_urls': ['http://ftp.dlitz.net/pub/dlitz/crypto/pycrypto/'], + }), + ('ecdsa', '0.13', { + 'source_urls': ['https://pypi.python.org/packages/source/e/ecdsa/'], + }), + ('cryptography', '1.4', { + 'source_urls': ['https://pypi.python.org/packages/source/c/cryptography/'], + }), + ('paramiko', '2.0.1', { + 'source_urls': ['https://pypi.python.org/packages/source/p/paramiko/'], + }), + ('pyparsing', '2.1.5', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pyparsing/'], + }), + ('netifaces', '0.10.4', { + 'source_urls': ['https://pypi.python.org/packages/source/n/netifaces'], + }), + ('netaddr', '0.7.18', { + 'source_urls': ['https://pypi.python.org/packages/source/n/netaddr'], + }), + ('pandas', '0.18.1', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pandas'], + }), + ('virtualenv', '15.0.2', { + 'source_urls': ['https://pypi.python.org/packages/source/v/virtualenv'], + }), +] + +moduleclass = 'lang' diff --git a/p/Python/Python-3.5.2-foss-2016a.eb b/p/Python/Python-3.5.2-foss-2016a.eb new file mode 100644 index 00000000..6a882b6d --- /dev/null +++ b/p/Python/Python-3.5.2-foss-2016a.eb @@ -0,0 +1,101 @@ +name = 'Python' +version = '3.5.2' + +homepage = 'http://python.org/' +description = "Python is a programming language that lets you work more quickly and integrate your systems more effectively." + +toolchain = {'name': 'foss', 'version': '2016a'} +toolchainopts = {'pic': True, 'opt': True, 'optarch': True} + +source_urls = ['http://www.python.org/ftp/%(namelower)s/%(version)s/'] +sources = [SOURCE_TGZ] + +# python needs bzip2 to build the bz2 package +dependencies = [ + ('bzip2', '1.0.6'), + ('zlib', '1.2.8'), + ('libreadline', '6.3'), + ('ncurses', '6.0'), + ('SQLite', '3.9.2'), + ('Tk', '8.6.4', '-no-X11'), + ('GMP', '6.1.0'), + ('XZ', '5.2.2'), +# ('OpenSSL', '1.0.1q'), # OS dependency should be preferred if the os version is more recent then this version, it's +# nice to have an up to date openssl for security reasons +] + +osdependencies = [('openssl-devel', 'libssl-dev')] + +# order is important! +# package versions updated Feb 25th 2016 +exts_list = [ + ('setuptools', '20.1.1', { + 'source_urls': ['https://pypi.python.org/packages/source/s/setuptools/'], + }), + ('pip', '8.0.2', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pip/'], + }), + ('nose', '1.3.7', { + 'source_urls': ['https://pypi.python.org/packages/source/n/nose/'], + }), + ('blist', '1.3.6', { + 'source_urls': ['https://pypi.python.org/packages/source/b/blist/'], + }), + ('mpi4py', '2.0.0', { + 'source_urls': ['http://bitbucket.org/mpi4py/mpi4py/downloads/'], + }), + ('paycheck', '1.0.2', { + 'source_urls': ['https://pypi.python.org/packages/source/p/paycheck/'], + 'patches': [ + 'paycheck-1.0.2_setup-open-README-utf8.patch', + ], + }), + ('pbr', '1.8.1', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pbr/'], + }), + ('lockfile', '0.12.2', { + 'source_urls': ['https://pypi.python.org/packages/source/l/lockfile/'], + }), + ('six', '1.10.0', { + 'source_urls': ['https://pypi.python.org/packages/source/s/six/'], + }), + ('dateutil', '2.4.2', { + 'source_tmpl': 'python-%(name)s-%(version)s.tar.gz', + 'source_urls': ['https://pypi.python.org/packages/source/p/python-dateutil/'], + }), + ('deap', '1.0.2', { + 'source_tmpl': '%(name)s-%(version)s.post2.tar.gz', + 'source_urls': ['https://pypi.python.org/packages/source/d/deap/'], + 'patches': [ + 'deap-1.0.2_setup-open-README-utf8.patch', + ], + }), + ('decorator', '4.0.9', { + 'source_urls': ['https://pypi.python.org/packages/source/d/decorator/'], + }), + ('arff', '2.1.0', { + 'source_tmpl': 'liac-%(name)s-%(version)s.zip', + 'source_urls': ['https://pypi.python.org/packages/source/l/liac-arff/'], + }), + ('pycrypto', '2.6.1', { + 'modulename': 'Crypto', + 'source_urls': ['http://ftp.dlitz.net/pub/dlitz/crypto/pycrypto/'], + }), + ('ecdsa', '0.13', { + 'source_urls': ['https://pypi.python.org/packages/source/e/ecdsa/'], + }), + ('paramiko', '1.16.0', { + 'source_urls': ['https://pypi.python.org/packages/source/p/paramiko/'], + }), + ('pyparsing', '2.1.0', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pyparsing/'], + }), + ('netifaces', '0.10.4', { + 'source_urls': ['https://pypi.python.org/packages/source/n/netifaces'], + }), + ('netaddr', '0.7.18', { + 'source_urls': ['https://pypi.python.org/packages/source/n/netaddr'], + }), +] + +moduleclass = 'lang' diff --git a/p/Python/Python-3.5.2-intel-2017.00.eb b/p/Python/Python-3.5.2-intel-2017.00.eb new file mode 100644 index 00000000..f3509199 --- /dev/null +++ b/p/Python/Python-3.5.2-intel-2017.00.eb @@ -0,0 +1,106 @@ +name = 'Python' +version = '3.5.2' + +homepage = 'http://python.org/' +description = "Python is a programming language that lets you work more quickly and integrate your systems more effectively." + +toolchain = {'name': 'intel', 'version': '2017.00'} +toolchainopts = {'pic': True, 'opt': True, 'optarch': True} + +scipyversion = '0.17.0' + +source_urls = ['http://www.python.org/ftp/%(namelower)s/%(version)s/'] +sources = [SOURCE_TGZ] + +# python needs bzip2 to build the bz2 package +dependencies = [ + ('bzip2', '1.0.6'), + ('zlib', '1.2.8'), + ('libreadline', '6.3'), + ('ncurses', '6.0'), + ('SQLite', '3.9.2'), + ('Tk', '8.6.4', '-no-X11'), + ('GMP', '6.1.0'), + ('XZ', '5.2.2'), +# ('OpenSSL', '1.0.1q'), # OS dependency should be preferred if the os version is more recent then this version, it's +# nice to have an up to date openssl for security reasons +] + +osdependencies = [('openssl-devel', 'libssl-dev')] + +# order is important! +# package versions updated Feb 25th 2016 +exts_list = [ + ('setuptools', '20.1.1', { + 'source_urls': ['https://pypi.python.org/packages/source/s/setuptools/'], + }), + ('pip', '8.0.2', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pip/'], + }), + ('nose', '1.3.7', { + 'source_urls': ['https://pypi.python.org/packages/source/n/nose/'], + }), + ('blist', '1.3.6', { + 'source_urls': ['https://pypi.python.org/packages/source/b/blist/'], + }), + ('mpi4py', '2.0.0', { + 'source_urls': ['http://bitbucket.org/mpi4py/mpi4py/downloads/'], + }), + ('paycheck', '1.0.2', { + 'source_urls': ['https://pypi.python.org/packages/source/p/paycheck/'], + 'patches': [ + 'paycheck-1.0.2_setup-open-README-utf8.patch', + ], + }), + ('pbr', '1.8.1', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pbr/'], + }), + ('lockfile', '0.12.2', { + 'source_urls': ['https://pypi.python.org/packages/source/l/lockfile/'], + }), + ('six', '1.10.0', { + 'source_urls': ['https://pypi.python.org/packages/source/s/six/'], + }), + ('dateutil', '2.4.2', { + 'source_tmpl': 'python-%(name)s-%(version)s.tar.gz', + 'source_urls': ['https://pypi.python.org/packages/source/p/python-dateutil/'], + }), + ('deap', '1.0.2', { + 'source_tmpl': '%(name)s-%(version)s.post2.tar.gz', + 'source_urls': ['https://pypi.python.org/packages/source/d/deap/'], + 'patches': [ + 'deap-1.0.2_setup-open-README-utf8.patch', + ], + }), + ('decorator', '4.0.9', { + 'source_urls': ['https://pypi.python.org/packages/source/d/decorator/'], + }), + ('arff', '2.1.0', { + 'source_tmpl': 'liac-%(name)s-%(version)s.zip', + 'source_urls': ['https://pypi.python.org/packages/source/l/liac-arff/'], + }), + ('pycrypto', '2.6.1', { + 'modulename': 'Crypto', + 'source_urls': ['http://ftp.dlitz.net/pub/dlitz/crypto/pycrypto/'], + }), + ('ecdsa', '0.13', { + 'source_urls': ['https://pypi.python.org/packages/source/e/ecdsa/'], + }), + ('paramiko', '1.16.0', { + 'source_urls': ['https://pypi.python.org/packages/source/p/paramiko/'], + }), + ('pyparsing', '2.1.0', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pyparsing/'], + }), + ('netifaces', '0.10.4', { + 'source_urls': ['https://pypi.python.org/packages/source/n/netifaces'], + }), + ('netaddr', '0.7.18', { + 'source_urls': ['https://pypi.python.org/packages/source/n/netaddr'], + }), + ('pandas', '0.17.1', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pandas'], + }), +] + +moduleclass = 'lang' diff --git a/p/Python/Python-3.5.2.eb b/p/Python/Python-3.5.2.eb new file mode 100644 index 00000000..a8308710 --- /dev/null +++ b/p/Python/Python-3.5.2.eb @@ -0,0 +1,116 @@ +name = 'Python' +version = '3.5.2' + +homepage = 'http://python.org/' +description = "Python is a programming language that lets you work more quickly and integrate your systems more effectively." + +toolchain = {'name': 'dummy', 'version': ''} +toolchainopts = {'pic': True, 'opt': True, 'optarch': True} + +numpyversion = '1.10.4' +scipyversion = '0.17.0' + +source_urls = ['http://www.python.org/ftp/%(namelower)s/%(version)s/'] +sources = [SOURCE_TGZ] + +# python needs bzip2 to build the bz2 package +dependencies = [ + ('bzip2', '1.0.6'), + ('zlib', '1.2.8'), + ('libreadline', '6.3'), + ('ncurses', '5.9'), + ('SQLite', '3.8.8.1'), + ('Tk', '8.6.3'), + ('GMP', '6.0.0a'), + ('XZ', '5.2.2'), +# ('OpenSSL', '1.0.1q'), # OS dependency should be preferred if the os version is more recent then this version, it's +# nice to have an up to date openssl for security reasons +] + +osdependencies = [('openssl-devel', 'libssl-dev')] + +# order is important! +# package versions updated Feb 25th 2016 +exts_list = [ + ('setuptools', '20.1.1', { + 'source_urls': ['https://pypi.python.org/packages/source/s/setuptools/'], + }), + ('pip', '8.0.2', { + 'source_urls': ['https://pypi.python.org/packages/source/p/pip/'], + }), + ('nose', '1.3.7', { + 'source_urls': ['https://pypi.python.org/packages/source/n/nose/'], + }), +# ('numpy', numpyversion, { +# 'source_urls': ['https://pypi.python.org/packages/source/n/numpy/'], +# }), +# ('scipy', scipyversion, { +# 'source_urls': ['https://pypi.python.org/packages/source/s/scipy/'], +# }), +# ('blist', '1.3.6', { +# 'source_urls': ['https://pypi.python.org/packages/source/b/blist/'], +# }), +# ('mpi4py', '2.0.0', { +# 'source_urls': ['http://bitbucket.org/mpi4py/mpi4py/downloads/'], +# }), +# ('paycheck', '1.0.2', { +# 'source_urls': ['https://pypi.python.org/packages/source/p/paycheck/'], +# 'patches': [ +# 'paycheck-1.0.2_setup-open-README-utf8.patch', +# ], +# }), +# ('pbr', '1.8.1', { +# 'source_urls': ['https://pypi.python.org/packages/source/p/pbr/'], +# }), +# ('lockfile', '0.12.2', { +# 'source_urls': ['https://pypi.python.org/packages/source/l/lockfile/'], +# }), +# ('Cython', '0.23.4', { +# 'source_urls': ['http://www.cython.org/release/'], +# }), +# ('six', '1.10.0', { +# 'source_urls': ['https://pypi.python.org/packages/source/s/six/'], +# }), +# ('dateutil', '2.4.2', { +# 'source_tmpl': 'python-%(name)s-%(version)s.tar.gz', +# 'source_urls': ['https://pypi.python.org/packages/source/p/python-dateutil/'], +# }), +# ('deap', '1.0.2', { +# 'source_tmpl': '%(name)s-%(version)s.post2.tar.gz', +# 'source_urls': ['https://pypi.python.org/packages/source/d/deap/'], +# 'patches': [ +# 'deap-1.0.2_setup-open-README-utf8.patch', +# ], +# }), +# ('decorator', '4.0.9', { +# 'source_urls': ['https://pypi.python.org/packages/source/d/decorator/'], +# }), +# ('arff', '2.1.0', { +# 'source_tmpl': 'liac-%(name)s-%(version)s.zip', +# 'source_urls': ['https://pypi.python.org/packages/source/l/liac-arff/'], +# }), +# ('pycrypto', '2.6.1', { +# 'modulename': 'Crypto', +# 'source_urls': ['http://ftp.dlitz.net/pub/dlitz/crypto/pycrypto/'], +# }), +# ('ecdsa', '0.13', { +# 'source_urls': ['https://pypi.python.org/packages/source/e/ecdsa/'], +# }), +# ('paramiko', '1.16.0', { +# 'source_urls': ['https://pypi.python.org/packages/source/p/paramiko/'], +# }), +# ('pyparsing', '2.1.0', { +# 'source_urls': ['https://pypi.python.org/packages/source/p/pyparsing/'], +# }), +# ('netifaces', '0.10.4', { +# 'source_urls': ['https://pypi.python.org/packages/source/n/netifaces'], +# }), +# ('netaddr', '0.7.18', { +# 'source_urls': ['https://pypi.python.org/packages/source/n/netaddr'], +# }), +# ('pandas', '0.17.1', { +# 'source_urls': ['https://pypi.python.org/packages/source/p/pandas'], +# }), +] + +moduleclass = 'lang' diff --git a/p/p4vasp/p4vasp-GNU-4.9.3-2.25.eb b/p/p4vasp/p4vasp-GNU-4.9.3-2.25.eb new file mode 100644 index 00000000..f38f3eda --- /dev/null +++ b/p/p4vasp/p4vasp-GNU-4.9.3-2.25.eb @@ -0,0 +1,19 @@ +name = 'p4vasp' +version = '0.3.29' + +homepage = 'http://www.p4vasp.at' +description = """p4vasp is a visualization suite for the Vienna Ab-initio Simulation Package + (VASP). It contains an extensible GUI framework, that can be used to view + material structure, density of states, band-structure and more. +""" + +toolchain = {'name': 'GNU', 'version': '4.9.3-2.25'} + +source_urls = [ + 'http://www.p4vasp.at/index.php/downloads/viewdownload/2-source-code' +] +sources = [SOURCELOWER_TGZ] + +skipsteps = ['install', 'sanitycheck'] + +moduleclass = 'vis' diff --git a/p/paycheck/paycheck-1.0.2-goolf-1.4.10-Python-2.7.3.eb b/p/paycheck/paycheck-1.0.2-goolf-1.4.10-Python-2.7.3.eb new file mode 100644 index 00000000..67abbe47 --- /dev/null +++ b/p/paycheck/paycheck-1.0.2-goolf-1.4.10-Python-2.7.3.eb @@ -0,0 +1,27 @@ +easyblock = 'PythonPackage' + +name = 'paycheck' +version = '1.0.2' + +homepage = 'https://pypi.python.org/pypi/paycheck/' +description = """PayCheck is a half-baked implementation of ScalaCheck, which itself is an implementation of QuickCheck for Haskell. PayCheck is useful for defining a specification of what a function should do, rather than testing its results for a given input.""" + +toolchain = {'name': 'goolf', 'version': '1.4.10'} + +source_urls = [PYPI_SOURCE] +sources = [SOURCE_TAR_GZ] + +python = 'Python' +pyver = '2.7.3' + +versionsuffix = '-%s-%s' % (python, pyver) + +dependencies = [(python, pyver)] + +pyshortver = '.'.join(pyver.split('.')[:2]) +sanity_check_paths = { + 'files': [], + 'dirs': ['lib/python%s/site-packages/paycheck' % pyshortver], +} + +moduleclass = 'devel' diff --git a/p/paycheck/paycheck-1.0.2-ictce-5.3.0-Python-2.7.3.eb b/p/paycheck/paycheck-1.0.2-ictce-5.3.0-Python-2.7.3.eb new file mode 100644 index 00000000..9fdde707 --- /dev/null +++ b/p/paycheck/paycheck-1.0.2-ictce-5.3.0-Python-2.7.3.eb @@ -0,0 +1,28 @@ +easyblock = 'PythonPackage' + +name = 'paycheck' +version = '1.0.2' + +homepage = 'https://pypi.python.org/pypi/paycheck/' +description = """PayCheck is a half-baked implementation of ScalaCheck, which itself is an implementation of QuickCheck for Haskell. + PayCheck is useful for defining a specification of what a function should do, rather than testing its results for a given input.""" + +toolchain = {'name': 'ictce', 'version': '5.3.0'} + +source_urls = [PYPI_SOURCE] +sources = [SOURCE_TAR_GZ] + +python = 'Python' +pyver = '2.7.3' + +versionsuffix = '-%s-%s' % (python, pyver) + +dependencies = [(python, pyver)] + +pyshortver = '.'.join(pyver.split('.')[:2]) +sanity_check_paths = { + 'files': [], + 'dirs': ['lib/python%s/site-packages/paycheck' % pyshortver], +} + +moduleclass = 'devel' diff --git a/p/petsc4py/petsc4py-3.3-goolf-1.4.10-Python-2.7.3.eb b/p/petsc4py/petsc4py-3.3-goolf-1.4.10-Python-2.7.3.eb new file mode 100644 index 00000000..0387cd38 --- /dev/null +++ b/p/petsc4py/petsc4py-3.3-goolf-1.4.10-Python-2.7.3.eb @@ -0,0 +1,31 @@ +easyblock = "PythonPackage" + +name = "petsc4py" +version = "3.3" + +homepage = 'https://code.google.com/p/petsc4py/' +description = """petsc4py are Python bindings for PETSc, the Portable, Extensible Toolchain for Scientific Computation.""" + +toolchain = {'name': 'goolf', 'version': '1.4.10'} + +source_urls = ['https://petsc4py.googlecode.com/files/'] +sources = [SOURCE_TAR_GZ] + +python = "Python" +python_version = "2.7.3" +versionsuffix = '-%s-%s' % (python, python_version) + +dependencies = [ + (python, python_version), + ('PETSc', '3.3-p2', versionsuffix) +] + +py_short_ver = ".".join(python_version.split(".")[0:2]) +pylibdir = "lib/python%s/site-packages/%s" % (py_short_ver, name) + +sanity_check_paths = { + 'files': [], + 'dirs': [pylibdir] +} + +moduleclass = 'tools' diff --git a/p/petsc4py/petsc4py-3.3-ictce-5.3.0-Python-2.7.3.eb b/p/petsc4py/petsc4py-3.3-ictce-5.3.0-Python-2.7.3.eb new file mode 100644 index 00000000..50d6cb21 --- /dev/null +++ b/p/petsc4py/petsc4py-3.3-ictce-5.3.0-Python-2.7.3.eb @@ -0,0 +1,32 @@ +easyblock = "PythonPackage" + +name = "petsc4py" +version = "3.3" + +homepage = 'https://code.google.com/p/petsc4py/' +description = """petsc4py are Python bindings for PETSc, the Portable, Extensible Toolchain for Scientific Computation.""" + + +toolchain = {'name': 'ictce', 'version': '5.3.0'} + +source_urls = ['https://petsc4py.googlecode.com/files/'] +sources = [SOURCE_TAR_GZ] + +python = "Python" +python_version = "2.7.3" +versionsuffix = '-%s-%s' % (python, python_version) + +dependencies = [ + (python, python_version), + ('PETSc', '3.3-p2', versionsuffix) +] + +py_short_ver = ".".join(python_version.split(".")[0:2]) +pylibdir = "lib/python%s/site-packages/%s" % (py_short_ver, name) + +sanity_check_paths = { + 'files': [], + 'dirs': [pylibdir] +} + +moduleclass = 'tools' diff --git a/p/pftoolsV3/pftoolsV3-20160324-foss-2016a.eb b/p/pftoolsV3/pftoolsV3-20160324-foss-2016a.eb new file mode 100644 index 00000000..8d5302dd --- /dev/null +++ b/p/pftoolsV3/pftoolsV3-20160324-foss-2016a.eb @@ -0,0 +1,22 @@ +easyblock='ConfigureMake' + +name = 'pftoolsV3' +version = '20160324' + +homepage = 'http://web.expasy.org/pftools/' +description = """The pftools package contains all the software necessary to build protein and DNA generalized profiles and use + them to scan and align sequences, and search databases. +""" + +toolchain = {'name': 'foss', 'version': '2016a'} + +sources = ['%(name)s.tar.gz'] +source_urls = ['ftp://ftp.lausanne.isb-sib.ch/pub/software/unix/pftools/%(name)s/'] +checksums = ['ef1d3c7583d764cff06861fca75be455'] + +sanity_check_paths = { + 'files': ['bin/ptof', 'bin/htop', 'bin/6ft', 'bin/2ft', 'bin/pfdump', 'bin/pfscan', 'bin/pfsearch'], + 'dirs': [], +} + +moduleclass = 'bio' diff --git a/p/phono3py/phono3py-0.9.14-Python-2.7.9-ictce-7.3.5.eb b/p/phono3py/phono3py-0.9.14-Python-2.7.9-ictce-7.3.5.eb new file mode 100644 index 00000000..48069b9f --- /dev/null +++ b/p/phono3py/phono3py-0.9.14-Python-2.7.9-ictce-7.3.5.eb @@ -0,0 +1,32 @@ +easyblock = "PythonPackage" + +name = 'phono3py' +version = '0.9.14' + +homepage = 'http://phonopy.sourceforge.net/phono3py/index.html' +description = """This software calculates phonon-phonon interaction related properties""" + +toolchain = {'name': 'ictce', 'version': '7.3.5'} + +sources = [SOURCELOWER_TAR_GZ] +source_urls = ['http://sourceforge.net/projects/phonopy/files/phono3py/'] +patches = ['phono3py-0.9.14-mkl.patch'] + +prebuildopts = 'python setup3.py build #' # notice the hash hack to override setup.py +preinstallopts = 'python setup3.py install --prefix=%(installdir)s #' # another hack +skipsteps = ['test'] +options = {'modulename': 'phonopy'} + +python = "Python" +pythonversion = '2.7.9' +pythonshortversion = ".".join(pythonversion.split(".")[:-1]) + +versionsuffix = "-%s-%s" % (python, pythonversion) + +dependencies = [ + (python, pythonversion), + ('LAPACKE', '3.5.0', '', ('LAPACK', '3.5.0')), + ('h5py', '2.4.0', '-Python-2.7.9-serial') +] + +moduleclass = 'phys' diff --git a/p/phono3py/phono3py-0.9.14-Python-3.5.2-ictce-7.3.5.eb b/p/phono3py/phono3py-0.9.14-Python-3.5.2-ictce-7.3.5.eb new file mode 100644 index 00000000..0f5bc46d --- /dev/null +++ b/p/phono3py/phono3py-0.9.14-Python-3.5.2-ictce-7.3.5.eb @@ -0,0 +1,32 @@ +easyblock = "PythonPackage" + +name = 'phono3py' +version = '0.9.14' + +homepage = 'http://phonopy.sourceforge.net/phono3py/index.html' +description = """This software calculates phonon-phonon interaction related properties""" + +toolchain = {'name': 'ictce', 'version': '7.3.5'} + +sources = [SOURCELOWER_TAR_GZ] +source_urls = ['http://sourceforge.net/projects/phonopy/files/phono3py/'] +patches = ['phono3py-0.9.14-mkl.patch'] + +prebuildopts = 'python setup3.py build #' # notice the hash hack to override setup.py +preinstallopts = 'python setup3.py install --prefix=%(installdir)s #' # another hack +skipsteps = ['test'] +options = {'modulename': 'phonopy'} + +python = "Python" +pythonversion = '3.5.2' +pythonshortversion = ".".join(pythonversion.split(".")[:-1]) + +versionsuffix = "-%s-%s" % (python, pythonversion) + +dependencies = [ + (python, pythonversion), + ('LAPACKE', '3.5.0', '', ('LAPACK', '3.5.0')), + ('h5py', '2.4.0', '-Python-2.7.9-serial') +] + +moduleclass = 'phys' diff --git a/p/phono3py/phono3py-0.9.14-mkl.patch b/p/phono3py/phono3py-0.9.14-mkl.patch new file mode 100644 index 00000000..ca673a49 --- /dev/null +++ b/p/phono3py/phono3py-0.9.14-mkl.patch @@ -0,0 +1,17 @@ +diff -Naur phono3py-0.9.14-orig/setup3.py phono3py-0.9.14/setup3.py +--- phono3py-0.9.14-orig/setup3.py 2015-10-10 03:26:37.000000000 +0200 ++++ phono3py-0.9.14/setup3.py 2015-11-10 14:07:32.680766054 +0100 +@@ -24,11 +24,8 @@ + 'c/spglib/kpoint.c', + 'c/kspclib/kgrid.c', + 'c/kspclib/tetrahedron_method.c'] +-extra_link_args = ['-lgomp', +- '-llapacke', # this is when lapacke is installed on system +- '-llapack', +- '-lblas'] +-extra_compile_args = ['-fopenmp',] ++extra_link_args = [ '-llapacke', '-lmkl_rt', '-lpthread', '-lm'] ++extra_compile_args = ['-fopenmp'] + include_dirs = (['c/harmonic_h', + 'c/anharmonic_h', + 'c/spglib_h', diff --git a/p/phono3py/phono3py-1.11.9.1-Python-2.7.9-ictce-7.3.5.eb b/p/phono3py/phono3py-1.11.9.1-Python-2.7.9-ictce-7.3.5.eb new file mode 100644 index 00000000..91c78f67 --- /dev/null +++ b/p/phono3py/phono3py-1.11.9.1-Python-2.7.9-ictce-7.3.5.eb @@ -0,0 +1,32 @@ +easyblock = "PythonPackage" + +name = 'phono3py' +version = '1.11.9.1' + +homepage = 'http://phonopy.sourceforge.net/phono3py/index.html' +description = """This software calculates phonon-phonon interaction related properties""" + +toolchain = {'name': 'ictce', 'version': '7.3.5'} + +sources = [SOURCELOWER_TAR_GZ] +source_urls = ['http://sourceforge.net/projects/phonopy/files/phono3py/'] +#patches = ['phono3py-1.11.9.1-mkl.patch'] + +prebuildopts = 'python setup.py build #' # notice the hash hack to override setup.py +preinstallopts = 'python setup.py install --prefix=%(installdir)s #' # another hack +skipsteps = ['test'] +options = {'modulename': 'phonopy'} + +python = "Python" +pythonversion = '2.7.9' +pythonshortversion = ".".join(pythonversion.split(".")[:-1]) + +versionsuffix = "-%s-%s" % (python, pythonversion) + +dependencies = [ + (python, pythonversion), + ('LAPACKE', '3.5.0', '', ('LAPACK', '3.5.0')), + ('h5py', '2.4.0', '-Python-2.7.9-serial') +] + +moduleclass = 'phys' diff --git a/p/phono3py/phono3py-1.11.9.1-mkl.patch b/p/phono3py/phono3py-1.11.9.1-mkl.patch new file mode 100644 index 00000000..3a9d8027 --- /dev/null +++ b/p/phono3py/phono3py-1.11.9.1-mkl.patch @@ -0,0 +1,17 @@ +diff -Naur phono3py-1.11.9.1-orig/setup.py phono3py-1.11.9.1/setup.py +--- phono3py-1.11.9.1-orig/setup.py 2015-10-10 03:26:37.000000000 +0200 ++++ phono3py-1.11.9.1/setup.py 2015-11-10 14:07:32.680766054 +0100 +@@ -24,11 +24,8 @@ + 'c/spglib/kpoint.c', + 'c/kspclib/kgrid.c', + 'c/kspclib/tetrahedron_method.c'] +-extra_link_args = ['-lgomp', +- '-llapacke', # this is when lapacke is installed on system +- '-llapack', +- '-lblas'] +-extra_compile_args = ['-fopenmp',] ++extra_link_args = [ '-llapacke', '-lmkl_rt', '-lpthread', '-lm'] ++extra_compile_args = ['-fopenmp'] + include_dirs = (['c/harmonic_h', + 'c/anharmonic_h', + 'c/spglib_h', diff --git a/p/phonopy/phonopy-1.11.2-intel-2017.00-Python-3.5.2.eb b/p/phonopy/phonopy-1.11.2-intel-2017.00-Python-3.5.2.eb new file mode 100644 index 00000000..b3d697f1 --- /dev/null +++ b/p/phonopy/phonopy-1.11.2-intel-2017.00-Python-3.5.2.eb @@ -0,0 +1,34 @@ +easyblock = 'PythonPackage' + +name = 'phonopy' +version = '1.11.2' + +homepage = 'http://phonopy.sourceforge.net/' +description = """Phonopy is an open source package of phonon calculations based on the supercell approach.""" + +toolchain = {'name': 'intel', 'version': '2017.00'} + +source_urls = [SOURCEFORGE_SOURCE] +sources = [SOURCE_TAR_GZ] + +python = 'Python' +pythonversion = '3.5.2' +pythonshortversion = '.'.join(pythonversion.split('.')[:-1]) + +versionsuffix = "-%s-%s" % (python, pythonversion) + +dependencies = [ + (python, pythonversion), +# ('matplotlib', '1.4.3', versionsuffix), +# ('lxml', '3.4.4', versionsuffix), +# ('PyYAML', '3.11', versionsuffix), +] + +pylibdir = "lib/python%s/site-packages/%%(name)s" % pythonshortversion + +#sanity_check_paths = { +# 'files': [], +# 'dirs': [('%s-%%(version)s-py%s.egg' % (pylibdir, pythonshortversion), pylibdir)], +#} + +moduleclass = 'lib' diff --git a/p/phonopy/phonopy-1.11.6.7-intel-2015b-Python-2.7.9.eb b/p/phonopy/phonopy-1.11.6.7-intel-2015b-Python-2.7.9.eb new file mode 100644 index 00000000..5061c6b8 --- /dev/null +++ b/p/phonopy/phonopy-1.11.6.7-intel-2015b-Python-2.7.9.eb @@ -0,0 +1,29 @@ +easyblock = 'PythonPackage' + +name = 'phonopy' +version = '1.11.6.7' + +homepage = 'http://phonopy.sourceforge.net/' +description = """Phonopy is an open source package of phonon calculations based on the supercell approach.""" + +toolchain = {'name': 'intel', 'version': '2015b'} + +#source_urls = [SOURCEFORGE_SOURCE] +sources = ['phonopy-1.11.6.7.tar.gz'] + +python = 'Python' +pythonversion = '2.7.9' +pythonshortversion = '.'.join(pythonversion.split('.')[:-1]) + +versionsuffix = "-%s-%s" % (python, pythonversion) + +dependencies = [ + (python, pythonversion), + ('matplotlib', '1.4.3', versionsuffix), + ('lxml', '3.4.4', versionsuffix), + ('PyYAML', '3.11', versionsuffix), +] + +pylibdir = "lib/python%s/site-packages/%%(name)s" % pythonshortversion + +moduleclass = 'phys' diff --git a/p/picard/picard-1.119-Java-1.7.0_79.eb b/p/picard/picard-1.119-Java-1.7.0_79.eb new file mode 100644 index 00000000..ccecc261 --- /dev/null +++ b/p/picard/picard-1.119-Java-1.7.0_79.eb @@ -0,0 +1,14 @@ +name = 'picard' +version = '1.119' + +homepage = 'http://sourceforge.net/projects/picard' +description = """A set of tools (in Java) for working with next generation sequencing data in the BAM format.""" + +toolchain = {'name': 'dummy', 'version': 'dummy'} + +source_urls = [SOURCEFORGE_SOURCE] +sources = ['%(name)s-tools-%(version)s.zip'] + +dependencies = [('Java', '1.7.0_79')] + +moduleclass = 'bio' diff --git a/p/picard/picard-2.0.1-Java-1.8.0_66.eb b/p/picard/picard-2.0.1-Java-1.8.0_66.eb new file mode 100644 index 00000000..742c2507 --- /dev/null +++ b/p/picard/picard-2.0.1-Java-1.8.0_66.eb @@ -0,0 +1,20 @@ +name = 'picard' +version = '2.0.1' + +homepage = 'http://broadinstitute.github.io/picard/' +description = """A set of tools (in Java) for working with next generation sequencing data in the BAM + (http://samtools.github.io/hts-specs) format.""" + +toolchain = {'name': 'dummy', 'version': ''} + +source_urls = ['https://github.com/broadinstitute/picard/releases/download/%(version)s/'] +sources = ['%(name)s-tools-%(version)s.zip'] + +java = 'Java' +javaver = '1.8.0_66' +versionsuffix = '-%s-%s' % (java, javaver) +dependencies = [(java, javaver)] + +modloadmsg = "To execute picard run: java -jar \\${EBROOTPICARD}/%(name)s.jar" + +moduleclass = 'bio' diff --git a/p/picard/picard-2.1.0-Java-1.7.0_79.eb b/p/picard/picard-2.1.0-Java-1.7.0_79.eb new file mode 100644 index 00000000..6cb74452 --- /dev/null +++ b/p/picard/picard-2.1.0-Java-1.7.0_79.eb @@ -0,0 +1,19 @@ +name = 'picard' +version = '2.1.0' + +homepage = 'http://sourceforge.net/projects/picard' +description = """A set of tools (in Java) for working with next generation sequencing data in the BAM format.""" + +toolchain = {'name': 'dummy', 'version': 'dummy'} + +source_urls = [SOURCEFORGE_SOURCE] +sources = ['%(name)s-tools-%(version)s.zip'] + +dependencies = [('Java', '1.7.0_79')] + +sanity_check_paths = { + 'files': ['picard.jar', 'picard-lib.jar'], + 'dirs': [], +} + +moduleclass = 'bio' diff --git a/p/picard/picard-2.1.0-Java-1.8.0_74.eb b/p/picard/picard-2.1.0-Java-1.8.0_74.eb new file mode 100644 index 00000000..88bda5b2 --- /dev/null +++ b/p/picard/picard-2.1.0-Java-1.8.0_74.eb @@ -0,0 +1,20 @@ +name = 'picard' +version = '2.1.0' + +homepage = 'http://broadinstitute.github.io/picard/' +description = """A set of tools (in Java) for working with next generation sequencing data in the BAM + (http://samtools.github.io/hts-specs) format.""" + +toolchain = {'name': 'dummy', 'version': ''} + +source_urls = ['https://github.com/broadinstitute/picard/releases/download/%(version)s/'] +sources = ['%(name)s-tools-%(version)s.zip'] + +java = 'Java' +javaver = '1.8.0_74' +versionsuffix = '-%s-%s' % (java, javaver) +dependencies = [(java, javaver)] + +modloadmsg = "To execute picard run: java -jar \\${EBROOTPICARD}/%(name)s.jar" + +moduleclass = 'bio' diff --git a/p/picard/picard-2.1.1-Java-1.8.0_74.eb b/p/picard/picard-2.1.1-Java-1.8.0_74.eb new file mode 100644 index 00000000..b7bb2304 --- /dev/null +++ b/p/picard/picard-2.1.1-Java-1.8.0_74.eb @@ -0,0 +1,18 @@ +name = 'picard' +version = '2.1.1' +versionsuffix = '-Java-%(javaver)s' + +homepage = 'http://broadinstitute.github.io/picard/' +description = """A set of tools (in Java) for working with next generation sequencing data in the BAM + (http://samtools.github.io/hts-specs) format.""" + +toolchain = {'name': 'dummy', 'version': ''} + +source_urls = ['https://github.com/broadinstitute/picard/releases/download/%(version)s/'] +sources = ['%(name)s-tools-%(version)s.zip'] + +dependencies = [('Java', '1.8.0_74')] + +modloadmsg = "To execute picard run: java -jar \\${EBROOTPICARD}/%(name)s.jar" + +moduleclass = 'bio' diff --git a/p/pigz/pigz-2.3.1-goolf-1.4.10.eb b/p/pigz/pigz-2.3.1-goolf-1.4.10.eb new file mode 100644 index 00000000..292fb226 --- /dev/null +++ b/p/pigz/pigz-2.3.1-goolf-1.4.10.eb @@ -0,0 +1,36 @@ +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# Author: Pablo Escobar Lopez +# Swiss Institute of Bioinformatics +# Biozentrum - University of Basel + +easyblock = 'MakeCp' + +name = 'pigz' +version = '2.3.1' + +homepage = 'http://zlib.net/pigz/' +description = """ pigz, which stands for parallel implementation of gzip, is a fully + functional replacement for gzip that exploits multiple processors and multiple cores + to the hilt when compressing data. pigz was written by Mark Adler, and uses the zlib + and pthread libraries. """ + +toolchain = {'name': 'goolf', 'version': '1.4.10'} + +source_urls = ['http://zlib.net/pigz/'] +sources = [SOURCE_TAR_GZ] + +# README recommends zlib 1.2.6 or higher +dependencies = [('zlib', '1.2.8')] + +buildopts = ' CC=$CC' + +parallel = 1 + +files_to_copy = [(["pigz", "unpigz"], "bin")] + +sanity_check_paths = { + 'files': ["bin/pigz", "bin/unpigz"], + 'dirs': [""], +} + +moduleclass = 'tools' diff --git a/p/pigz/pigz-2.3.1-ictce-6.2.5.eb b/p/pigz/pigz-2.3.1-ictce-6.2.5.eb new file mode 100644 index 00000000..770c70dd --- /dev/null +++ b/p/pigz/pigz-2.3.1-ictce-6.2.5.eb @@ -0,0 +1,36 @@ +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# Author: Pablo Escobar Lopez +# Swiss Institute of Bioinformatics +# Biozentrum - University of Basel + +easyblock = 'MakeCp' + +name = 'pigz' +version = '2.3.1' + +homepage = 'http://zlib.net/pigz/' +description = """ pigz, which stands for parallel implementation of gzip, is a fully + functional replacement for gzip that exploits multiple processors and multiple cores + to the hilt when compressing data. pigz was written by Mark Adler, and uses the zlib + and pthread libraries. """ + +toolchain = {'name': 'ictce', 'version': '6.2.5'} + +source_urls = ['http://zlib.net/pigz/'] +sources = [SOURCE_TAR_GZ] + +# README recommends zlib 1.2.6 or higher +dependencies = [('zlib', '1.2.8')] + +buildopts = ' CC=$CC' + +parallel = 1 + +files_to_copy = [(["pigz", "unpigz"], "bin")] + +sanity_check_paths = { + 'files': ["bin/pigz", "bin/unpigz"], + 'dirs': [""], +} + +moduleclass = 'tools' diff --git a/p/pigz/pigz-2.3.3-foss-2015b.eb b/p/pigz/pigz-2.3.3-foss-2015b.eb new file mode 100644 index 00000000..e95cb85c --- /dev/null +++ b/p/pigz/pigz-2.3.3-foss-2015b.eb @@ -0,0 +1,39 @@ +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# Author: Pablo Escobar Lopez +# Swiss Institute of Bioinformatics +# Biozentrum - University of Basel + +easyblock = 'MakeCp' + +name = 'pigz' +version = '2.3.3' + +homepage = 'http://zlib.net/pigz/' +description = """ pigz, which stands for parallel implementation of gzip, is a fully + functional replacement for gzip that exploits multiple processors and multiple cores + to the hilt when compressing data. pigz was written by Mark Adler, and uses the zlib + and pthread libraries. """ + +toolchain = {'name': 'foss', 'version': '2015b'} + +source_urls = ['http://zlib.net/pigz/'] +sources = [SOURCE_TAR_GZ] + +# Patch Makefile so zlib provided by EasyBuild is picked up +patches = ['pigz-2.3.3_Makefile.patch'] + +# README recommends zlib 1.2.6 or higher +dependencies = [('zlib', '1.2.8')] + +buildopts = ' CC=$CC' + +parallel = 1 + +files_to_copy = [(["pigz", "unpigz"], "bin")] + +sanity_check_paths = { + 'files': ["bin/pigz", "bin/unpigz"], + 'dirs': [""], +} + +moduleclass = 'tools' diff --git a/p/pigz/pigz-2.3.3.eb b/p/pigz/pigz-2.3.3.eb new file mode 100644 index 00000000..80fd7ecf --- /dev/null +++ b/p/pigz/pigz-2.3.3.eb @@ -0,0 +1,39 @@ +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# Author: Pablo Escobar Lopez +# Swiss Institute of Bioinformatics +# Biozentrum - University of Basel + +easyblock = 'MakeCp' + +name = 'pigz' +version = '2.3.3' + +homepage = 'http://zlib.net/pigz/' +description = """ pigz, which stands for parallel implementation of gzip, is a fully + functional replacement for gzip that exploits multiple processors and multiple cores + to the hilt when compressing data. pigz was written by Mark Adler, and uses the zlib + and pthread libraries. """ + +toolchain = {'name': 'GCC', 'version': '6.2.0-2.27'} + +source_urls = ['http://zlib.net/pigz/'] +sources = [SOURCE_TAR_GZ] + +# Patch Makefile so zlib provided by EasyBuild is picked up +patches = ['pigz-2.3.3_Makefile.patch'] + +# README recommends zlib 1.2.6 or higher +dependencies = [('zlib', '1.2.8')] + +buildopts = ' CC=$CC' + +parallel = 1 + +files_to_copy = [(["pigz", "unpigz"], "bin")] + +sanity_check_paths = { + 'files': ["bin/pigz", "bin/unpigz"], + 'dirs': [""], +} + +moduleclass = 'tools' diff --git a/p/pkg-config/pkg-config-0.27.1-foss-2015b.eb b/p/pkg-config/pkg-config-0.27.1-foss-2015b.eb new file mode 100644 index 00000000..73c06e7f --- /dev/null +++ b/p/pkg-config/pkg-config-0.27.1-foss-2015b.eb @@ -0,0 +1,27 @@ +easyblock = 'ConfigureMake' + +name = 'pkg-config' +version = '0.27.1' + +homepage = 'http://www.freedesktop.org/wiki/Software/pkg-config/' +description = """pkg-config is a helper tool used when compiling applications and libraries. It helps you insert the + correct compiler options on the command line so an application can use + gcc -o test test.c `pkg-config --libs --cflags glib-2.0` + for instance, rather than hard-coding values on where to find glib (or other libraries).""" + +# don't use PAX, it might break. +tar_config_opts = True + +toolchain = {'name': 'foss', 'version': '2015b'} + +sources = [SOURCELOWER_TAR_GZ] +source_urls = ['http://pkgconfig.freedesktop.org/releases/'] + +configopts = " --with-internal-glib" + +sanity_check_paths = { + 'files': ['bin/pkg-config'], + 'dirs': [], +} + +moduleclass = 'devel' diff --git a/p/pkg-config/pkg-config-0.27.1-foss-2015g.eb b/p/pkg-config/pkg-config-0.27.1-foss-2015g.eb new file mode 100644 index 00000000..815f1f88 --- /dev/null +++ b/p/pkg-config/pkg-config-0.27.1-foss-2015g.eb @@ -0,0 +1,29 @@ +# Built with EasyBuild version 2.1.1 on 2015-09-08_14-24-22 +# Built with EasyBuild version 2.1.1 on 2015-08-17_08-31-37 +easyblock = 'ConfigureMake' + +name = 'pkg-config' +version = '0.27.1' + +homepage = 'http://www.freedesktop.org/wiki/Software/pkg-config/' +description = """pkg-config is a helper tool used when compiling applications and libraries. It helps you insert the + correct compiler options on the command line so an application can use + gcc -o test test.c `pkg-config --libs --cflags glib-2.0` + for instance, rather than hard-coding values on where to find glib (or other libraries).""" + +# don't use PAX, it might break. +tar_config_opts = True + +toolchain = {'name': 'foss', 'version': '2015g'} + +sources = [SOURCELOWER_TAR_GZ] +source_urls = ['http://pkgconfig.freedesktop.org/releases/'] + +configopts = " --with-internal-glib" + +sanity_check_paths = { + 'files': ['bin/pkg-config'], + 'dirs': [], +} + +moduleclass = 'devel' diff --git a/p/pkg-config/pkg-config-0.27.1-goolf-1.4.10.eb b/p/pkg-config/pkg-config-0.27.1-goolf-1.4.10.eb new file mode 100644 index 00000000..0b6b8bc9 --- /dev/null +++ b/p/pkg-config/pkg-config-0.27.1-goolf-1.4.10.eb @@ -0,0 +1,24 @@ +easyblock = 'ConfigureMake' + +name = 'pkg-config' +version = '0.27.1' + +homepage = 'http://www.freedesktop.org/wiki/Software/pkg-config/' +description = """pkg-config is a helper tool used when compiling applications and libraries. It helps you insert the +correct compiler options on the command line so an application can use +gcc -o test test.c `pkg-config --libs --cflags glib-2.0` +for instance, rather than hard-coding values on where to find glib (or other libraries). +""" +toolchain = {'name': 'goolf', 'version': '1.4.10'} + +sources = [SOURCELOWER_TAR_GZ] +source_urls = ['http://pkgconfig.freedesktop.org/releases/'] + +configopts = " --with-internal-glib" + +sanity_check_paths = { + 'files': ['bin/pkg-config'], + 'dirs': [] +} + +moduleclass = 'devel' diff --git a/p/pkg-config/pkg-config-0.27.1-ictce-5.3.0.eb b/p/pkg-config/pkg-config-0.27.1-ictce-5.3.0.eb new file mode 100644 index 00000000..206bdee2 --- /dev/null +++ b/p/pkg-config/pkg-config-0.27.1-ictce-5.3.0.eb @@ -0,0 +1,25 @@ +easyblock = 'ConfigureMake' + +name = 'pkg-config' +version = '0.27.1' + +homepage = 'http://www.freedesktop.org/wiki/Software/pkg-config/' +description = """pkg-config is a helper tool used when compiling applications and libraries. It helps you insert the + correct compiler options on the command line so an application can use + gcc -o test test.c `pkg-config --libs --cflags glib-2.0` + for instance, rather than hard-coding values on where to find glib (or other libraries).""" + + +toolchain = {'name': 'ictce', 'version': '5.3.0'} + +sources = [SOURCELOWER_TAR_GZ] +source_urls = ['http://pkgconfig.freedesktop.org/releases/'] + +configopts = " --with-internal-glib" + +sanity_check_paths = { + 'files': ['bin/pkg-config'], + 'dirs': [] +} + +moduleclass = 'devel' diff --git a/p/pkg-config/pkg-config-0.27.1-ictce-5.5.0.eb b/p/pkg-config/pkg-config-0.27.1-ictce-5.5.0.eb new file mode 100644 index 00000000..fee25e44 --- /dev/null +++ b/p/pkg-config/pkg-config-0.27.1-ictce-5.5.0.eb @@ -0,0 +1,27 @@ +easyblock = 'ConfigureMake' + +name = 'pkg-config' +version = '0.27.1' + +homepage = 'http://www.freedesktop.org/wiki/Software/pkg-config/' +description = """pkg-config is a helper tool used when compiling applications and libraries. It helps you insert the + correct compiler options on the command line so an application can use + gcc -o test test.c `pkg-config --libs --cflags glib-2.0` + for instance, rather than hard-coding values on where to find glib (or other libraries).""" + +# don't use PAX, it might break. +tar_config_opts = True + +toolchain = {'name': 'ictce', 'version': '5.5.0'} + +sources = [SOURCELOWER_TAR_GZ] +source_urls = ['http://pkgconfig.freedesktop.org/releases/'] + +configopts = " --with-internal-glib" + +sanity_check_paths = { + 'files': ['bin/pkg-config'], + 'dirs': [] +} + +moduleclass = 'devel' diff --git a/p/pkg-config/pkg-config-0.27.1-intel-2015a.eb b/p/pkg-config/pkg-config-0.27.1-intel-2015a.eb new file mode 100644 index 00000000..ddfabeac --- /dev/null +++ b/p/pkg-config/pkg-config-0.27.1-intel-2015a.eb @@ -0,0 +1,27 @@ +easyblock = 'ConfigureMake' + +name = 'pkg-config' +version = '0.27.1' + +homepage = 'http://www.freedesktop.org/wiki/Software/pkg-config/' +description = """pkg-config is a helper tool used when compiling applications and libraries. It helps you insert the + correct compiler options on the command line so an application can use + gcc -o test test.c `pkg-config --libs --cflags glib-2.0` + for instance, rather than hard-coding values on where to find glib (or other libraries).""" + +# don't use PAX, it might break. +tar_config_opts = True + +toolchain = {'name': 'intel', 'version': '2015a'} + +sources = [SOURCELOWER_TAR_GZ] +source_urls = ['http://pkgconfig.freedesktop.org/releases/'] + +configopts = " --with-internal-glib" + +sanity_check_paths = { + 'files': ['bin/pkg-config'], + 'dirs': [], +} + +moduleclass = 'devel' diff --git a/p/pkg-config/pkg-config-0.27.1-intel-2015b.eb b/p/pkg-config/pkg-config-0.27.1-intel-2015b.eb new file mode 100644 index 00000000..f271d1a6 --- /dev/null +++ b/p/pkg-config/pkg-config-0.27.1-intel-2015b.eb @@ -0,0 +1,27 @@ +easyblock = 'ConfigureMake' + +name = 'pkg-config' +version = '0.27.1' + +homepage = 'http://www.freedesktop.org/wiki/Software/pkg-config/' +description = """pkg-config is a helper tool used when compiling applications and libraries. It helps you insert the + correct compiler options on the command line so an application can use + gcc -o test test.c `pkg-config --libs --cflags glib-2.0` + for instance, rather than hard-coding values on where to find glib (or other libraries).""" + +# don't use PAX, it might break. +tar_config_opts = True + +toolchain = {'name': 'intel', 'version': '2015b'} + +sources = [SOURCELOWER_TAR_GZ] +source_urls = ['http://pkgconfig.freedesktop.org/releases/'] + +configopts = " --with-internal-glib" + +sanity_check_paths = { + 'files': ['bin/pkg-config'], + 'dirs': [], +} + +moduleclass = 'devel' diff --git a/p/pkg-config/pkg-config-0.27.1.eb b/p/pkg-config/pkg-config-0.27.1.eb new file mode 100644 index 00000000..db135b9b --- /dev/null +++ b/p/pkg-config/pkg-config-0.27.1.eb @@ -0,0 +1,27 @@ +easyblock = 'ConfigureMake' + +name = 'pkg-config' +version = '0.27.1' + +homepage = 'http://www.freedesktop.org/wiki/Software/pkg-config/' +description = """pkg-config is a helper tool used when compiling applications and libraries. It helps you insert the + correct compiler options on the command line so an application can use + gcc -o test test.c `pkg-config --libs --cflags glib-2.0` + for instance, rather than hard-coding values on where to find glib (or other libraries).""" + +# don't use PAX, it might break. +tar_config_opts = True + +toolchain = {'name': 'dummy', 'version': ''} + +sources = [SOURCELOWER_TAR_GZ] +source_urls = ['http://pkgconfig.freedesktop.org/releases/'] + +configopts = " --with-internal-glib" + +sanity_check_paths = { + 'files': ['bin/pkg-config'], + 'dirs': [], +} + +moduleclass = 'devel' diff --git a/p/pkg-config/pkg-config-0.28-GCC-4.8.2.eb b/p/pkg-config/pkg-config-0.28-GCC-4.8.2.eb new file mode 100644 index 00000000..b4996e7a --- /dev/null +++ b/p/pkg-config/pkg-config-0.28-GCC-4.8.2.eb @@ -0,0 +1,27 @@ +easyblock = 'ConfigureMake' + +name = 'pkg-config' +version = '0.28' + +homepage = 'http://www.freedesktop.org/wiki/Software/pkg-config/' +description = """pkg-config is a helper tool used when compiling applications and libraries. It helps you insert the + correct compiler options on the command line so an application can use + gcc -o test test.c `pkg-config --libs --cflags glib-2.0` + for instance, rather than hard-coding values on where to find glib (or other libraries).""" + +# don't use PAX, it might break. +tar_config_opts = True + +toolchain = {'name': 'GCC', 'version': '4.8.2'} + +sources = [SOURCELOWER_TAR_GZ] +source_urls = ['http://pkgconfig.freedesktop.org/releases/'] + +configopts = " --with-internal-glib" + +sanity_check_paths = { + 'files': ['bin/pkg-config'], + 'dirs': [] +} + +moduleclass = 'devel' diff --git a/p/pkg-config/pkg-config-0.28-GCC-4.9.2.eb b/p/pkg-config/pkg-config-0.28-GCC-4.9.2.eb new file mode 100644 index 00000000..68447b95 --- /dev/null +++ b/p/pkg-config/pkg-config-0.28-GCC-4.9.2.eb @@ -0,0 +1,27 @@ +easyblock = 'ConfigureMake' + +name = 'pkg-config' +version = '0.28' + +homepage = 'http://www.freedesktop.org/wiki/Software/pkg-config/' +description = """pkg-config is a helper tool used when compiling applications and libraries. It helps you insert the + correct compiler options on the command line so an application can use + gcc -o test test.c `pkg-config --libs --cflags glib-2.0` + for instance, rather than hard-coding values on where to find glib (or other libraries).""" + +# don't use PAX, it might break. +tar_config_opts = True + +toolchain = {'name': 'GCC', 'version': '4.9.2'} + +sources = [SOURCELOWER_TAR_GZ] +source_urls = ['http://pkgconfig.freedesktop.org/releases/'] + +configopts = " --with-internal-glib" + +sanity_check_paths = { + 'files': ['bin/pkg-config'], + 'dirs': [], +} + +moduleclass = 'devel' diff --git a/p/pkg-config/pkg-config-0.28-GNU-4.9.3-2.25.eb b/p/pkg-config/pkg-config-0.28-GNU-4.9.3-2.25.eb new file mode 100644 index 00000000..a3cc058e --- /dev/null +++ b/p/pkg-config/pkg-config-0.28-GNU-4.9.3-2.25.eb @@ -0,0 +1,27 @@ +easyblock = 'ConfigureMake' + +name = 'pkg-config' +version = '0.28' + +homepage = 'http://www.freedesktop.org/wiki/Software/pkg-config/' +description = """pkg-config is a helper tool used when compiling applications and libraries. It helps you insert the + correct compiler options on the command line so an application can use + gcc -o test test.c `pkg-config --libs --cflags glib-2.0` + for instance, rather than hard-coding values on where to find glib (or other libraries).""" + +# don't use PAX, it might break. +tar_config_opts = True + +toolchain = {'name': 'GNU', 'version': '4.9.3-2.25'} + +sources = [SOURCELOWER_TAR_GZ] +source_urls = ['http://pkgconfig.freedesktop.org/releases/'] + +configopts = " --with-internal-glib" + +sanity_check_paths = { + 'files': ['bin/pkg-config'], + 'dirs': [] +} + +moduleclass = 'devel' diff --git a/p/pkg-config/pkg-config-0.28-ictce-5.5.0.eb b/p/pkg-config/pkg-config-0.28-ictce-5.5.0.eb new file mode 100644 index 00000000..7c85168d --- /dev/null +++ b/p/pkg-config/pkg-config-0.28-ictce-5.5.0.eb @@ -0,0 +1,27 @@ +easyblock = 'ConfigureMake' + +name = 'pkg-config' +version = '0.28' + +homepage = 'http://www.freedesktop.org/wiki/Software/pkg-config/' +description = """pkg-config is a helper tool used when compiling applications and libraries. It helps you insert the + correct compiler options on the command line so an application can use + gcc -o test test.c `pkg-config --libs --cflags glib-2.0` + for instance, rather than hard-coding values on where to find glib (or other libraries).""" + +# don't use PAX, it might break. +tar_config_opts = True + +toolchain = {'name': 'ictce', 'version': '5.5.0'} + +sources = [SOURCELOWER_TAR_GZ] +source_urls = ['http://pkgconfig.freedesktop.org/releases/'] + +configopts = " --with-internal-glib" + +sanity_check_paths = { + 'files': ['bin/pkg-config'], + 'dirs': [] +} + +moduleclass = 'devel' diff --git a/p/pkg-config/pkg-config-0.28-intel-2015a.eb b/p/pkg-config/pkg-config-0.28-intel-2015a.eb new file mode 100644 index 00000000..f5981f13 --- /dev/null +++ b/p/pkg-config/pkg-config-0.28-intel-2015a.eb @@ -0,0 +1,27 @@ +easyblock = 'ConfigureMake' + +name = 'pkg-config' +version = '0.28' + +homepage = 'http://www.freedesktop.org/wiki/Software/pkg-config/' +description = """pkg-config is a helper tool used when compiling applications and libraries. It helps you insert the + correct compiler options on the command line so an application can use + gcc -o test test.c `pkg-config --libs --cflags glib-2.0` + for instance, rather than hard-coding values on where to find glib (or other libraries).""" + +# don't use PAX, it might break. +tar_config_opts = True + +toolchain = {'name': 'intel', 'version': '2015a'} + +sources = [SOURCELOWER_TAR_GZ] +source_urls = ['http://pkgconfig.freedesktop.org/releases/'] + +configopts = " --with-internal-glib" + +sanity_check_paths = { + 'files': ['bin/pkg-config'], + 'dirs': [] +} + +moduleclass = 'devel' diff --git a/p/pkg-config/pkg-config-0.29-foss-2016a.eb b/p/pkg-config/pkg-config-0.29-foss-2016a.eb new file mode 100644 index 00000000..27965157 --- /dev/null +++ b/p/pkg-config/pkg-config-0.29-foss-2016a.eb @@ -0,0 +1,27 @@ +easyblock = 'ConfigureMake' + +name = 'pkg-config' +version = '0.29' + +homepage = 'http://www.freedesktop.org/wiki/Software/pkg-config/' +description = """pkg-config is a helper tool used when compiling applications and libraries. It helps you insert the + correct compiler options on the command line so an application can use + gcc -o test test.c `pkg-config --libs --cflags glib-2.0` + for instance, rather than hard-coding values on where to find glib (or other libraries).""" + +toolchain = {'name': 'foss', 'version': '2016a'} + +sources = [SOURCELOWER_TAR_GZ] +source_urls = ['http://pkgconfig.freedesktop.org/releases/'] + +# don't use PAX, it might break. +tar_config_opts = True + +configopts = " --with-internal-glib" + +sanity_check_paths = { + 'files': ['bin/pkg-config'], + 'dirs': [], +} + +moduleclass = 'devel' diff --git a/p/pkg-config/pkg-config-0.29-gimkl-2.11.5.eb b/p/pkg-config/pkg-config-0.29-gimkl-2.11.5.eb new file mode 100644 index 00000000..c593a8d3 --- /dev/null +++ b/p/pkg-config/pkg-config-0.29-gimkl-2.11.5.eb @@ -0,0 +1,27 @@ +easyblock = 'ConfigureMake' + +name = 'pkg-config' +version = '0.29' + +homepage = 'http://www.freedesktop.org/wiki/Software/pkg-config/' +description = """pkg-config is a helper tool used when compiling applications and libraries. It helps you insert the + correct compiler options on the command line so an application can use + gcc -o test test.c `pkg-config --libs --cflags glib-2.0` + for instance, rather than hard-coding values on where to find glib (or other libraries).""" + +toolchain = {'name': 'gimkl', 'version': '2.11.5'} + +sources = [SOURCELOWER_TAR_GZ] +source_urls = ['http://pkgconfig.freedesktop.org/releases/'] + +# don't use PAX, it might break. +tar_config_opts = True + +configopts = " --with-internal-glib" + +sanity_check_paths = { + 'files': ['bin/pkg-config'], + 'dirs': [], +} + +moduleclass = 'devel' diff --git a/p/pkg-config/pkg-config-0.29-intel-2015a.eb b/p/pkg-config/pkg-config-0.29-intel-2015a.eb new file mode 100644 index 00000000..55e66932 --- /dev/null +++ b/p/pkg-config/pkg-config-0.29-intel-2015a.eb @@ -0,0 +1,27 @@ +easyblock = 'ConfigureMake' + +name = 'pkg-config' +version = '0.29' + +homepage = 'http://www.freedesktop.org/wiki/Software/pkg-config/' +description = """pkg-config is a helper tool used when compiling applications and libraries. It helps you insert the + correct compiler options on the command line so an application can use + gcc -o test test.c `pkg-config --libs --cflags glib-2.0` + for instance, rather than hard-coding values on where to find glib (or other libraries).""" + +toolchain = {'name': 'intel', 'version': '2015a'} + +sources = [SOURCELOWER_TAR_GZ] +source_urls = ['http://pkgconfig.freedesktop.org/releases/'] + +# don't use PAX, it might break. +tar_config_opts = True + +configopts = " --with-internal-glib" + +sanity_check_paths = { + 'files': ['bin/pkg-config'], + 'dirs': [], +} + +moduleclass = 'devel' diff --git a/p/pkg-config/pkg-config-0.29-intel-2015b.eb b/p/pkg-config/pkg-config-0.29-intel-2015b.eb new file mode 100644 index 00000000..245547ce --- /dev/null +++ b/p/pkg-config/pkg-config-0.29-intel-2015b.eb @@ -0,0 +1,27 @@ +easyblock = 'ConfigureMake' + +name = 'pkg-config' +version = '0.29' + +homepage = 'http://www.freedesktop.org/wiki/Software/pkg-config/' +description = """pkg-config is a helper tool used when compiling applications and libraries. It helps you insert the + correct compiler options on the command line so an application can use + gcc -o test test.c `pkg-config --libs --cflags glib-2.0` + for instance, rather than hard-coding values on where to find glib (or other libraries).""" + +toolchain = {'name': 'intel', 'version': '2015b'} + +sources = [SOURCELOWER_TAR_GZ] +source_urls = ['http://pkgconfig.freedesktop.org/releases/'] + +# don't use PAX, it might break. +tar_config_opts = True + +configopts = " --with-internal-glib" + +sanity_check_paths = { + 'files': ['bin/pkg-config'], + 'dirs': [], +} + +moduleclass = 'devel' diff --git a/p/pkg-config/pkg-config-0.29-intel-2016a.eb b/p/pkg-config/pkg-config-0.29-intel-2016a.eb new file mode 100644 index 00000000..cc9d6a1e --- /dev/null +++ b/p/pkg-config/pkg-config-0.29-intel-2016a.eb @@ -0,0 +1,27 @@ +easyblock = 'ConfigureMake' + +name = 'pkg-config' +version = '0.29' + +homepage = 'http://www.freedesktop.org/wiki/Software/pkg-config/' +description = """pkg-config is a helper tool used when compiling applications and libraries. It helps you insert the + correct compiler options on the command line so an application can use + gcc -o test test.c `pkg-config --libs --cflags glib-2.0` + for instance, rather than hard-coding values on where to find glib (or other libraries).""" + +toolchain = {'name': 'intel', 'version': '2016a'} + +sources = [SOURCELOWER_TAR_GZ] +source_urls = ['http://pkgconfig.freedesktop.org/releases/'] + +# don't use PAX, it might break. +tar_config_opts = True + +configopts = " --with-internal-glib" + +sanity_check_paths = { + 'files': ['bin/pkg-config'], + 'dirs': [], +} + +moduleclass = 'devel' diff --git a/p/pkg-config/pkg-config-0.29.1-foss-2016a.eb b/p/pkg-config/pkg-config-0.29.1-foss-2016a.eb new file mode 100644 index 00000000..bb2fea6c --- /dev/null +++ b/p/pkg-config/pkg-config-0.29.1-foss-2016a.eb @@ -0,0 +1,27 @@ +easyblock = 'ConfigureMake' + +name = 'pkg-config' +version = '0.29.1' + +homepage = 'http://www.freedesktop.org/wiki/Software/pkg-config/' +description = """pkg-config is a helper tool used when compiling applications and libraries. It helps you insert the + correct compiler options on the command line so an application can use + gcc -o test test.c `pkg-config --libs --cflags glib-2.0` + for instance, rather than hard-coding values on where to find glib (or other libraries).""" + +toolchain = {'name': 'foss', 'version': '2016a'} + +sources = [SOURCELOWER_TAR_GZ] +source_urls = ['http://pkgconfig.freedesktop.org/releases/'] + +# don't use PAX, it might break. +tar_config_opts = True + +configopts = " --with-internal-glib" + +sanity_check_paths = { + 'files': ['bin/pkg-config'], + 'dirs': [], +} + +moduleclass = 'devel' diff --git a/p/pkg-config/pkg-config-0.29.1-foss-2017a.eb b/p/pkg-config/pkg-config-0.29.1-foss-2017a.eb new file mode 100644 index 00000000..99e56346 --- /dev/null +++ b/p/pkg-config/pkg-config-0.29.1-foss-2017a.eb @@ -0,0 +1,27 @@ +easyblock = 'ConfigureMake' + +name = 'pkg-config' +version = '0.29.1' + +homepage = 'http://www.freedesktop.org/wiki/Software/pkg-config/' +description = """pkg-config is a helper tool used when compiling applications and libraries. It helps you insert the + correct compiler options on the command line so an application can use + gcc -o test test.c `pkg-config --libs --cflags glib-2.0` + for instance, rather than hard-coding values on where to find glib (or other libraries).""" + +toolchain = {'name': 'foss', 'version': '2017a'} + +sources = [SOURCELOWER_TAR_GZ] +source_urls = ['http://pkgconfig.freedesktop.org/releases/'] + +# don't use PAX, it might break. +tar_config_opts = True + +configopts = " --with-internal-glib" + +sanity_check_paths = { + 'files': ['bin/pkg-config'], + 'dirs': [], +} + +moduleclass = 'devel' diff --git a/p/pkg-config/pkg-config-0.29.1-intel-2016a.eb b/p/pkg-config/pkg-config-0.29.1-intel-2016a.eb new file mode 100644 index 00000000..eeb50eab --- /dev/null +++ b/p/pkg-config/pkg-config-0.29.1-intel-2016a.eb @@ -0,0 +1,27 @@ +easyblock = 'ConfigureMake' + +name = 'pkg-config' +version = '0.29.1' + +homepage = 'http://www.freedesktop.org/wiki/Software/pkg-config/' +description = """pkg-config is a helper tool used when compiling applications and libraries. It helps you insert the + correct compiler options on the command line so an application can use + gcc -o test test.c `pkg-config --libs --cflags glib-2.0` + for instance, rather than hard-coding values on where to find glib (or other libraries).""" + +toolchain = {'name': 'intel', 'version': '2016a'} + +sources = [SOURCELOWER_TAR_GZ] +source_urls = ['http://pkgconfig.freedesktop.org/releases/'] + +# don't use PAX, it might break. +tar_config_opts = True + +configopts = " --with-internal-glib" + +sanity_check_paths = { + 'files': ['bin/pkg-config'], + 'dirs': [], +} + +moduleclass = 'devel' diff --git a/p/prompt-toolkit/prompt-toolkit-1.0.3-foss-2016a-Python-2.7.11.eb b/p/prompt-toolkit/prompt-toolkit-1.0.3-foss-2016a-Python-2.7.11.eb new file mode 100644 index 00000000..fe4231de --- /dev/null +++ b/p/prompt-toolkit/prompt-toolkit-1.0.3-foss-2016a-Python-2.7.11.eb @@ -0,0 +1,33 @@ +easyblock = 'PythonPackage' + +name = 'prompt-toolkit' +version = '1.0.3' +versionsuffix = '-Python-%(pyver)s' + +homepage = 'https://github.com/jonathanslenders/python-prompt-toolkit' +description = """prompt_toolkit is a Python library for building powerful interactive command lines and terminal applications.""" + +toolchain = {'name': 'foss', 'version': '2016a'} + +source_urls = ['https://pypi.python.org/packages/4d/1f/5f5a3831006a1e9799d418e32d02c01529d6fa292851e381bd7df4908079/'] +sources = ['prompt_toolkit-%(version)s-py2-none-any.whl'] + +dependencies = [ + ('Python', '2.7.11'), + ('wcwidth', '0.1.7', versionsuffix), +] +builddependencies = [ + ('pip', '8.1.2', versionsuffix), +] + +use_pip = True +unpack_sources = False + +sanity_check_paths = { + 'files': [], + 'dirs': ['lib/python%(pyshortver)s/site-packages/prompt_toolkit'], +} + +options = {'modulename': 'prompt_toolkit'} + +moduleclass = 'lib' diff --git a/p/prompt-toolkit/prompt-toolkit-1.0.3-foss-2016a-Python-3.5.1.eb b/p/prompt-toolkit/prompt-toolkit-1.0.3-foss-2016a-Python-3.5.1.eb new file mode 100644 index 00000000..4b1aefd0 --- /dev/null +++ b/p/prompt-toolkit/prompt-toolkit-1.0.3-foss-2016a-Python-3.5.1.eb @@ -0,0 +1,30 @@ +easyblock = 'PythonPackage' + +name = 'prompt-toolkit' +version = '1.0.3' +versionsuffix = '-Python-%(pyver)s' + +homepage = 'https://github.com/jonathanslenders/python-prompt-toolkit' +description = """prompt_toolkit is a Python library for building powerful interactive command lines and terminal applications.""" + +toolchain = {'name': 'foss', 'version': '2016a'} + +source_urls = ['https://pypi.python.org/packages/1b/5b/6a1c5e6b9ad024a32b93abaeb49f517079f0fd9539aba2c2f36d8a76a1cf/'] +sources = ['prompt_toolkit-%(version)s-py3-none-any.whl'] + +dependencies = [ + ('Python', '3.5.1'), + ('wcwidth', '0.1.7', versionsuffix), +] + +use_pip = True +unpack_sources = False + +sanity_check_paths = { + 'files': [], + 'dirs': ['lib/python%(pyshortver)s/site-packages/prompt_toolkit'], +} + +options = {'modulename': 'prompt_toolkit'} + +moduleclass = 'lib' diff --git a/p/prompt-toolkit/prompt-toolkit-1.0.6-foss-2016b-Python-2.7.12.eb b/p/prompt-toolkit/prompt-toolkit-1.0.6-foss-2016b-Python-2.7.12.eb new file mode 100644 index 00000000..e6261f56 --- /dev/null +++ b/p/prompt-toolkit/prompt-toolkit-1.0.6-foss-2016b-Python-2.7.12.eb @@ -0,0 +1,33 @@ +easyblock = 'PythonPackage' + +name = 'prompt-toolkit' +version = '1.0.6' +versionsuffix = '-Python-%(pyver)s' + +homepage = 'https://github.com/jonathanslenders/python-prompt-toolkit' +description = """prompt_toolkit is a Python library for building powerful interactive command lines and terminal applications.""" + +toolchain = {'name': 'foss', 'version': '2016b'} + +source_urls = ['https://pypi.python.org/packages/eb/81/a7ad3c223f323d05381208c262889bd09577852bd5044a13965a9a13f5ed/'] +sources = ['prompt_toolkit-%(version)s-py2-none-any.whl'] + +dependencies = [ + ('Python', '2.7.12'), + ('wcwidth', '0.1.7', versionsuffix), +] +builddependencies = [ + ('pip', '8.1.2', versionsuffix), +] + +use_pip = True +unpack_sources = False + +sanity_check_paths = { + 'files': [], + 'dirs': ['lib/python%(pyshortver)s/site-packages/prompt_toolkit'], +} + +options = {'modulename': 'prompt_toolkit'} + +moduleclass = 'lib' diff --git a/p/prompt-toolkit/prompt-toolkit-1.0.6-intel-2016b-Python-2.7.12.eb b/p/prompt-toolkit/prompt-toolkit-1.0.6-intel-2016b-Python-2.7.12.eb new file mode 100644 index 00000000..a4fd060e --- /dev/null +++ b/p/prompt-toolkit/prompt-toolkit-1.0.6-intel-2016b-Python-2.7.12.eb @@ -0,0 +1,33 @@ +easyblock = 'PythonPackage' + +name = 'prompt-toolkit' +version = '1.0.6' +versionsuffix = '-Python-%(pyver)s' + +homepage = 'https://github.com/jonathanslenders/python-prompt-toolkit' +description = """prompt_toolkit is a Python library for building powerful interactive command lines and terminal applications.""" + +toolchain = {'name': 'intel', 'version': '2016b'} + +source_urls = ['https://pypi.python.org/packages/eb/81/a7ad3c223f323d05381208c262889bd09577852bd5044a13965a9a13f5ed/'] +sources = ['prompt_toolkit-%(version)s-py2-none-any.whl'] + +dependencies = [ + ('Python', '2.7.12'), + ('wcwidth', '0.1.7', versionsuffix), +] +builddependencies = [ + ('pip', '8.1.2', versionsuffix), +] + +use_pip = True +unpack_sources = False + +sanity_check_paths = { + 'files': [], + 'dirs': ['lib/python%(pyshortver)s/site-packages/prompt_toolkit'], +} + +options = {'modulename': 'prompt_toolkit'} + +moduleclass = 'lib' diff --git a/p/prompt-toolkit/prompt-toolkit-1.0.6-intel-2016b-Python-3.5.2.eb b/p/prompt-toolkit/prompt-toolkit-1.0.6-intel-2016b-Python-3.5.2.eb new file mode 100644 index 00000000..6c89475f --- /dev/null +++ b/p/prompt-toolkit/prompt-toolkit-1.0.6-intel-2016b-Python-3.5.2.eb @@ -0,0 +1,30 @@ +easyblock = 'PythonPackage' + +name = 'prompt-toolkit' +version = '1.0.6' +versionsuffix = '-Python-%(pyver)s' + +homepage = 'https://github.com/jonathanslenders/python-prompt-toolkit' +description = """prompt_toolkit is a Python library for building powerful interactive command lines and terminal applications.""" + +toolchain = {'name': 'intel', 'version': '2016b'} + +source_urls = ['https://pypi.python.org/packages/eb/81/a7ad3c223f323d05381208c262889bd09577852bd5044a13965a9a13f5ed/'] +sources = ['prompt_toolkit-%(version)s-py3-none-any.whl'] + +dependencies = [ + ('Python', '3.5.2'), + ('wcwidth', '0.1.7', versionsuffix), +] + +use_pip = True +unpack_sources = False + +sanity_check_paths = { + 'files': [], + 'dirs': ['lib/python%(pyshortver)s/site-packages/prompt_toolkit'], +} + +options = {'modulename': 'prompt_toolkit'} + +moduleclass = 'lib' diff --git a/p/protobuf-python/protobuf-python-3.0.2-foss-2016a-Python-2.7.11.eb b/p/protobuf-python/protobuf-python-3.0.2-foss-2016a-Python-2.7.11.eb new file mode 100644 index 00000000..3deb4533 --- /dev/null +++ b/p/protobuf-python/protobuf-python-3.0.2-foss-2016a-Python-2.7.11.eb @@ -0,0 +1,29 @@ +easyblock = 'PythonPackage' + +name = 'protobuf-python' +version = '3.0.2' +versionsuffix= '-Python-%(pyver)s' + +homepage = 'https://github.com/google/protobuf/' +description = """Python Protocol Buffers runtime library.""" + +toolchain = {'name': 'foss', 'version': '2016a'} + +source_urls = ['https://github.com/google/protobuf/archive/v%(version)s'] +sources = [SOURCE_TAR_GZ] + +dependencies = [ + ('Python', '2.7.11'), + ('protobuf', version) +] + +start_dir = 'python' + +sanity_check_paths = { + 'files': [], + 'dirs': ['lib/python%(pyshortver)s/site-packages'], +} + +options = {'modulename': 'google.protobuf' } + +moduleclass = 'devel' diff --git a/p/protobuf-python/protobuf-python-3.0.2-foss-2016a-Python-3.5.1.eb b/p/protobuf-python/protobuf-python-3.0.2-foss-2016a-Python-3.5.1.eb new file mode 100644 index 00000000..64b04ec5 --- /dev/null +++ b/p/protobuf-python/protobuf-python-3.0.2-foss-2016a-Python-3.5.1.eb @@ -0,0 +1,29 @@ +easyblock = 'PythonPackage' + +name = 'protobuf-python' +version = '3.0.2' +versionsuffix= '-Python-%(pyver)s' + +homepage = 'https://github.com/google/protobuf/' +description = """Python Protocol Buffers runtime library.""" + +toolchain = {'name': 'foss', 'version': '2016a'} + +source_urls = ['https://github.com/google/protobuf/archive/v%(version)s'] +sources = [SOURCE_TAR_GZ] + +dependencies = [ + ('Python', '3.5.1'), + ('protobuf', version) +] + +start_dir = 'python' + +sanity_check_paths = { + 'files': [], + 'dirs': ['lib/python%(pyshortver)s/site-packages'], +} + +options = {'modulename': 'google.protobuf' } + +moduleclass = 'devel' diff --git a/p/protobuf-python/protobuf-python-3.2.0-intel-2016b-Python-2.7.12.eb b/p/protobuf-python/protobuf-python-3.2.0-intel-2016b-Python-2.7.12.eb new file mode 100755 index 00000000..136b95fa --- /dev/null +++ b/p/protobuf-python/protobuf-python-3.2.0-intel-2016b-Python-2.7.12.eb @@ -0,0 +1,29 @@ +easyblock = 'PythonPackage' + +name = 'protobuf-python' +version = '3.2.0' +versionsuffix= '-Python-%(pyver)s' + +homepage = 'https://github.com/google/protobuf/' +description = """Python Protocol Buffers runtime library.""" + +toolchain = {'name': 'intel', 'version': '2016b'} + +source_urls = ['https://github.com/google/protobuf/archive/v%(version)s'] +sources = [SOURCE_TAR_GZ] + +dependencies = [ + ('Python', '2.7.12'), + ('protobuf', version) +] + +start_dir = 'python' + +sanity_check_paths = { + 'files': [], + 'dirs': ['lib/python%(pyshortver)s/site-packages'], +} + +options = {'modulename': 'google.protobuf' } + +moduleclass = 'devel' diff --git a/p/protobuf-python/protobuf-python-3.2.0-intel-2016b-Python-3.5.2.eb b/p/protobuf-python/protobuf-python-3.2.0-intel-2016b-Python-3.5.2.eb new file mode 100644 index 00000000..89a06c0e --- /dev/null +++ b/p/protobuf-python/protobuf-python-3.2.0-intel-2016b-Python-3.5.2.eb @@ -0,0 +1,29 @@ +easyblock = 'PythonPackage' + +name = 'protobuf-python' +version = '3.2.0' +versionsuffix= '-Python-%(pyver)s' + +homepage = 'https://github.com/google/protobuf/' +description = """Python Protocol Buffers runtime library.""" + +toolchain = {'name': 'intel', 'version': '2016b'} + +source_urls = ['https://github.com/google/protobuf/archive/v%(version)s'] +sources = [SOURCE_TAR_GZ] + +dependencies = [ + ('Python', '3.5.2'), + ('protobuf', version) +] + +start_dir = 'python' + +sanity_check_paths = { + 'files': [], + 'dirs': ['lib/python%(pyshortver)s/site-packages'], +} + +options = {'modulename': 'google.protobuf' } + +moduleclass = 'devel' diff --git a/p/protobuf/protobuf-2.5.0-goolf-1.4.10.eb b/p/protobuf/protobuf-2.5.0-goolf-1.4.10.eb new file mode 100644 index 00000000..e9345ea1 --- /dev/null +++ b/p/protobuf/protobuf-2.5.0-goolf-1.4.10.eb @@ -0,0 +1,19 @@ +easyblock = 'ConfigureMake' + +name = 'protobuf' +version = '2.5.0' + +homepage = 'https://code.google.com/p/protobuf/' +description = """Google Protocol Buffers""" + +toolchain = {'name': 'goolf', 'version': '1.4.10'} + +sources = [SOURCE_TAR_GZ] +source_urls = [GOOGLECODE_SOURCE] + +sanity_check_paths = { + 'files': ['bin/protoc'], + 'dirs': [], +} + +moduleclass = 'devel' diff --git a/p/protobuf/protobuf-2.5.0.eb b/p/protobuf/protobuf-2.5.0.eb new file mode 100644 index 00000000..7a7091bb --- /dev/null +++ b/p/protobuf/protobuf-2.5.0.eb @@ -0,0 +1,19 @@ +easyblock = 'ConfigureMake' + +name = 'protobuf' +version = '2.5.0' + +homepage = 'https://code.google.com/p/protobuf/' +description = """Google Protocol Buffers""" + +toolchain = {'name': 'dummy', 'version': 'dummy'} + +sources = [SOURCE_TAR_GZ] +source_urls = [GOOGLECODE_SOURCE] + +sanity_check_paths = { + 'files': ['bin/protoc'], + 'dirs': [], +} + +moduleclass = 'devel' diff --git a/p/pscom/pscom-5.0.43-GCC-4.8.2.eb b/p/pscom/pscom-5.0.43-GCC-4.8.2.eb new file mode 100644 index 00000000..65a73afe --- /dev/null +++ b/p/pscom/pscom-5.0.43-GCC-4.8.2.eb @@ -0,0 +1,22 @@ +easyblock = 'ConfigureMake' + +name = 'pscom' +version = '5.0.43' + +homepage = 'http://www.par-tec.com' +description = """ParaStation is a robust and efficient cluster middleware, consisting +of a high-performance communication layer (MPI) and a sophisticated management layer.""" + +toolchain = {'name': 'GCC', 'version': '4.8.2'} + +source_urls = ['https://github.com/ParaStation/%(name)s/archive/'] +sources = ['%(version)s-1.zip'] + +dependencies = [('popt', '1.14')] + +sanity_check_paths = { + 'files': ['include/pscom.h', ('lib/libpscom.%s' % SHLIB_EXT, 'lib64/libpscom.%s' % SHLIB_EXT)], + 'dirs': [], +} + +moduleclass = 'mpi' diff --git a/p/pscom/pscom-5.0.44-1-GCC-4.9.2.eb b/p/pscom/pscom-5.0.44-1-GCC-4.9.2.eb new file mode 100644 index 00000000..b69d0d92 --- /dev/null +++ b/p/pscom/pscom-5.0.44-1-GCC-4.9.2.eb @@ -0,0 +1,20 @@ +easyblock = 'ConfigureMake' + +name = 'pscom' +version = '5.0.44-1' +homepage = 'http://www.par-tec.com' +description = """ParaStation is a robust and efficient cluster middleware, consisting of a high-performance communication layer (MPI) and a sophisticated management layer.""" +toolchain = {'name': 'GCC', 'version': '4.9.2'} + +source_urls = ['https://github.com/ParaStation/%(name)s/archive/'] +sources = ['%(version)s.zip'] + +dependencies = [('popt', '1.16')] + + +sanity_check_paths = { + 'files': ['include/pscom.h', ('lib/libpscom.%s' % SHLIB_EXT, 'lib64/libpscom.%s' % SHLIB_EXT)], + 'dirs': [], +} + +moduleclass = 'lib' diff --git a/p/pscom/pscom-5.0.44-1-iccifort-2015.1.133.eb b/p/pscom/pscom-5.0.44-1-iccifort-2015.1.133.eb new file mode 100644 index 00000000..7da1e4a7 --- /dev/null +++ b/p/pscom/pscom-5.0.44-1-iccifort-2015.1.133.eb @@ -0,0 +1,19 @@ +easyblock = 'ConfigureMake' + +name = 'pscom' +version = '5.0.44-1' +homepage = 'http://www.par-tec.com' +description = """ParaStation is a robust and efficient cluster middleware, consisting of a high-performance communication layer (MPI) and a sophisticated management layer.""" +toolchain = {'name': 'iccifort', 'version': '2015.1.133'} + + +source_urls = ['https://github.com/ParaStation/%(name)s/archive/'] +sources = ['%(version)s.zip'] + +dependencies = [('popt', '1.14')] + +sanity_check_paths = { + 'files': ['include/pscom.h', ('lib/libpscom.%s' % SHLIB_EXT, 'lib64/libpscom.%s' % SHLIB_EXT)], + 'dirs': [], +} +moduleclass = 'tools' diff --git a/p/pscom/pscom-5.0.48-1.eb b/p/pscom/pscom-5.0.48-1.eb new file mode 100644 index 00000000..13b9a47c --- /dev/null +++ b/p/pscom/pscom-5.0.48-1.eb @@ -0,0 +1,23 @@ +easyblock = 'ConfigureMake' + +name = 'pscom' +version = '5.0.48-1' + +homepage = 'http://www.par-tec.com' +description = "ParaStation is a robust and efficient cluster middleware, consisting of a high-performance communication layer (MPI) and a sophisticated management layer." + +toolchain = {'version': '', 'name': 'dummy'} + +sources = ['%(version)s.zip'] +source_urls = ['https://github.com/ParaStation/%(name)s/archive/'] + +builddependencies = [ + ('popt', '1.16'), +] + +sanity_check_paths = { + 'files': ['include/%(name)s.h', ('lib/libpscom.so', 'lib64/libpscom.so'), ('lib/libpscom4mxm.so', 'lib64/libpscom4mxm.so')], + 'dirs': [], +} + +moduleclass = 'tools' diff --git a/p/psmc/psmc-0.6.5-foss-2016a.eb b/p/psmc/psmc-0.6.5-foss-2016a.eb new file mode 100644 index 00000000..59517cb9 --- /dev/null +++ b/p/psmc/psmc-0.6.5-foss-2016a.eb @@ -0,0 +1,32 @@ +easyblock = 'MakeCp' + +name = 'psmc' +version = '0.6.5' + +homepage = 'https://github.com/lh3/psmc' +description = """This software package infers population size history from a diploid sequence +using the Pairwise Sequentially Markovian Coalescent (PSMC) model.""" + +toolchain = {'name': 'foss', 'version': '2016a'} + +source_urls = ['https://github.com/lh3/psmc/archive/'] +sources = ['%(version)s.tar.gz'] + +buildopts = '&& cd utils && make' + +utils = [ + 'avg.pl', 'calD', 'cntcpg', 'ctime_plot.pl', 'dec2ctime.pl', 'decode2bed.pl', 'fq2psmcfa', 'history2ms.pl', + 'ms2psmcfa.pl', 'mutDiff', 'pcnt_bezier.lua', 'psmc2history.pl', 'psmc_plot.pl', 'psmc_trunc.pl', 'splitfa', +] + +files_to_copy = [ + (['psmc'], 'bin'), + (['utils/%s' % util for util in utils], 'bin') +] + +sanity_check_paths = { + 'files': ['bin/psmc'] + ['bin/%s' % util for util in utils], + 'dirs': [], +} + +moduleclass = 'bio' diff --git a/p/pyGIMLi/pyGIMLi-20160803-foss-2016a-Python-2.7.11.eb b/p/pyGIMLi/pyGIMLi-20160803-foss-2016a-Python-2.7.11.eb new file mode 100644 index 00000000..908370bc --- /dev/null +++ b/p/pyGIMLi/pyGIMLi-20160803-foss-2016a-Python-2.7.11.eb @@ -0,0 +1,68 @@ +easyblock = 'CMakeMake' + +name = 'pyGIMLi' +version = '20160803' +commit_id = 'a190c53' +versionsuffix = '-Python-%(pyver)s' + +homepage = 'http://www.pygimli.org/' +description = """pyGIMLi is an open-source multi-method library for solving inverse + and forward tasks related to geophysical problems. Written in C++ and Python, + it offers both efficiency and flexibility allowing you to quickly build + your own robust inversion applications for the geophysical problem at hand.""" + +toolchain = {'name': 'foss', 'version': '2016a'} + +source_urls = ['https://github.com/gimli-org/gimli/archive/'] +sources = ['%s.tar.gz' % commit_id] + +patches = ['%(name)s-%(version)s_openblas.patch'] + +#pyGIMLi is picky about the version of CastXML/pygccxml/pyplusplus +#Check scripts/buildThirdParty.sh +builddependencies = [ + ('CMake', '3.4.3'), + ('CastXML', '20160617'), + ('pygccxml', '20160706', versionsuffix), + ('pyplusplus', '20160707', versionsuffix), +] + +dependencies = [ + ('Python', '2.7.11'), + ('matplotlib', '1.5.1', versionsuffix), + ('pytest', '3.0.1', versionsuffix), + ('Clang', '3.7.1'), + ('Boost', '1.60.0', versionsuffix), + ('zlib', '1.2.8'), + ('Triangle', '1.6'), + ('CppUnit', '1.12.1'), + ('SuiteSparse', '4.5.3', '-METIS-5.1.0'), +] + +separate_build_dir = True + +configopts = '-DBOOST_ROOT=$EBROOTBOOST ' +configopts += '-DBLAS_LIBRARIES=$EBROOTOPENBLAS/lib/libopenblas.%s ' % SHLIB_EXT +configopts += '-DLAPACK_LIBRARIES=$EBROOTOPENBLAS/lib/libopenblas.%s ' % SHLIB_EXT +configopts += '-DCASTXML_EXECUTABLE=$EBROOTCASTXML/bin/castxml ' +configopts += '-DPYGCCXML_PATH=$EBROOTPYGCCXML/lib/python%(pyshortver)s/site-packages/ ' +configopts += '-DPYPLUSPLUS_PATH=$EBROOTPYPLUSPLUS/lib/python%(pyshortver)s/site-packages/ ' + +buildopts = 'gimli pygimli apps' + +installopts = ' && mkdir -p %(installdir)s/lib/python%(pyshortver)s/site-packages ' +installopts += '&& cp -a ../gimli*/python/. %(installdir)s/lib/python%(pyshortver)s/site-packages ' +installopts += '&& mkdir %(installdir)s/bin ' +installopts += '&& cp ../easybuild_obj/bin/* %(installdir)s/bin' + +sanity_check_paths = { + 'files': ['bin/%s' % x for x in ['bms2vtk', 'dc1dinv', 'dc1dsmooth', 'fdem1dinv', 'fdem1dsmooth', + 'harmfit', 'invlinearmat', 'mrs1dblock', 'mrs1dsmooth', + 'mt1dinv', 'mt1dsmooth', 'polyfit', 'ttinv', 'ttmod']]+ + ['lib/libgimli.%s' % SHLIB_EXT, 'lib/python%(pyshortver)s/site-packages/pygimli.h'], + 'dirs': ['lib/python%(pyshortver)s/site-packages/%(namelower)s'], +} + +modextrapaths = {'PYTHONPATH': 'lib/python%(pyshortver)s/site-packages'} + +moduleclass = 'geo' diff --git a/p/pyGIMLi/pyGIMLi-20160803-foss-2016a-Python-3.5.1.eb b/p/pyGIMLi/pyGIMLi-20160803-foss-2016a-Python-3.5.1.eb new file mode 100644 index 00000000..bf649cda --- /dev/null +++ b/p/pyGIMLi/pyGIMLi-20160803-foss-2016a-Python-3.5.1.eb @@ -0,0 +1,68 @@ +easyblock = 'CMakeMake' + +name = 'pyGIMLi' +version = '20160803' +commit_id = 'a190c53' +versionsuffix = '-Python-%(pyver)s' + +homepage = 'http://www.pygimli.org/' +description = """pyGIMLi is an open-source multi-method library for solving inverse + and forward tasks related to geophysical problems. Written in C++ and Python, + it offers both efficiency and flexibility allowing you to quickly build + your own robust inversion applications for the geophysical problem at hand.""" + +toolchain = {'name': 'foss', 'version': '2016a'} + +source_urls = ['https://github.com/gimli-org/gimli/archive/'] +sources = ['%s.tar.gz' % commit_id] + +patches = ['%(name)s-%(version)s_openblas.patch'] + +#pyGIMLi is picky about the version of CastXML/pygccxml/pyplusplus +#Check scripts/buildThirdParty.sh +builddependencies = [ + ('CMake', '3.4.3'), + ('CastXML', '20160617'), + ('pygccxml', '20160706', versionsuffix), + ('pyplusplus', '20160707', versionsuffix), +] + +dependencies = [ + ('Python', '3.5.1'), + ('matplotlib', '1.5.1', versionsuffix), + ('pytest', '3.0.1', versionsuffix), + ('Clang', '3.7.1'), + ('Boost', '1.60.0', versionsuffix), + ('zlib', '1.2.8'), + ('Triangle', '1.6'), + ('CppUnit', '1.12.1'), + ('SuiteSparse', '4.5.3', '-METIS-5.1.0'), +] + +separate_build_dir = True + +configopts = '-DBOOST_ROOT=$EBROOTBOOST ' +configopts += '-DBLAS_LIBRARIES=$EBROOTOPENBLAS/lib/libopenblas.%s ' % SHLIB_EXT +configopts += '-DLAPACK_LIBRARIES=$EBROOTOPENBLAS/lib/libopenblas.%s ' % SHLIB_EXT +configopts += '-DCASTXML_EXECUTABLE=$EBROOTCASTXML/bin/castxml ' +configopts += '-DPYGCCXML_PATH=$EBROOTPYGCCXML/lib/python%(pyshortver)s/site-packages/ ' +configopts += '-DPYPLUSPLUS_PATH=$EBROOTPYPLUSPLUS/lib/python%(pyshortver)s/site-packages/ ' + +buildopts = 'gimli pygimli apps' + +installopts = ' && mkdir -p %(installdir)s/lib/python%(pyshortver)s/site-packages ' +installopts += '&& cp -a ../gimli*/python/. %(installdir)s/lib/python%(pyshortver)s/site-packages ' +installopts += '&& mkdir %(installdir)s/bin ' +installopts += '&& cp ../easybuild_obj/bin/* %(installdir)s/bin' + +sanity_check_paths = { + 'files': ['bin/%s' % x for x in ['bms2vtk', 'dc1dinv', 'dc1dsmooth', 'fdem1dinv', 'fdem1dsmooth', + 'harmfit', 'invlinearmat', 'mrs1dblock', 'mrs1dsmooth', + 'mt1dinv', 'mt1dsmooth', 'polyfit', 'ttinv', 'ttmod']]+ + ['lib/libgimli.%s' % SHLIB_EXT, 'lib/python%(pyshortver)s/site-packages/pygimli.h'], + 'dirs': ['lib/python%(pyshortver)s/site-packages/%(namelower)s'], +} + +modextrapaths = {'PYTHONPATH': 'lib/python%(pyshortver)s/site-packages'} + +moduleclass = 'geo' diff --git a/p/pyTables/pyTables-3.0.0-ictce-5.5.0-Python-2.7.6.eb b/p/pyTables/pyTables-3.0.0-ictce-5.5.0-Python-2.7.6.eb new file mode 100644 index 00000000..92953479 --- /dev/null +++ b/p/pyTables/pyTables-3.0.0-ictce-5.5.0-Python-2.7.6.eb @@ -0,0 +1,40 @@ +easyblock = "PythonPackage" + +name = 'pyTables' +version = '3.0.0' + +homepage = 'http://www.pytables.org/moin' +description = """PyTables is a package for managing hierarchical datasets and designed to efficiently and easily cope + with extremely large amounts of data. PyTables is built on top of the HDF5 library, using the Python language and the + NumPy package. It features an object-oriented interface that, combined with C extensions for the performance-critical + parts of the code (generated using Cython), makes it a fast, yet extremely easy to use tool for interactively browse, + process and search very large amounts of data. One important feature of PyTables is that it optimizes memory and disk + resources so that data takes much less space (specially if on-flight compression is used) than other solutions such as + relational or object oriented databases.""" + +toolchain = {'name': 'ictce', 'version': '5.5.0'} +toolchainopts = {'usempi': True} + +source_urls = [SOURCEFORGE_SOURCE] +sources = ['tables-%(version)s.tar.gz'] + +python = 'Python' +pythonver = '2.7.6' +pythonshortver = '.'.join(pythonver.split('.')[0:2]) +versionsuffix = '-%s-%s' % (python, pythonver) + +dependencies = [ + (python, pythonver), + ('numexpr', '2.2.2', versionsuffix), + ('HDF5', '1.8.12'), + ('Cython', '0.19.2', versionsuffix), +] + +sanity_check_paths = { + 'files': ['bin/%s' % x for x in ['pt2to3', 'ptdump', 'ptrepack']], + 'dirs': ['lib/python%s/site-packages/tables' % pythonshortver], +} + +options = {'modulename': 'tables'} + +moduleclass = 'data' diff --git a/p/pyTables/pyTables-3.2.2-intel-2015b-Python-2.7.10.eb b/p/pyTables/pyTables-3.2.2-intel-2015b-Python-2.7.10.eb new file mode 100644 index 00000000..c7500dde --- /dev/null +++ b/p/pyTables/pyTables-3.2.2-intel-2015b-Python-2.7.10.eb @@ -0,0 +1,42 @@ +easyblock = "PythonPackage" + +name = 'pyTables' +version = '3.2.2' + +homepage = 'http://www.pytables.org' +description = """PyTables is a package for managing hierarchical datasets and designed to efficiently and easily cope + with extremely large amounts of data. PyTables is built on top of the HDF5 library, using the Python language and the + NumPy package. It features an object-oriented interface that, combined with C extensions for the performance-critical + parts of the code (generated using Cython), makes it a fast, yet extremely easy to use tool for interactively browse, + process and search very large amounts of data. One important feature of PyTables is that it optimizes memory and disk + resources so that data takes much less space (specially if on-flight compression is used) than other solutions such as + relational or object oriented databases.""" + +toolchain = {'name': 'intel', 'version': '2015b'} +toolchainopts = {'usempi': True} + +source_urls = ['https://github.com/PyTables/PyTables/archive/'] +sources = ['v.%(version)s.tar.gz'] + +patches = ['pyTables-%(version)s-fix-libs.patch'] + +python = 'Python' +pythonver = '2.7.10' +pythonshortver = '.'.join(pythonver.split('.')[0:2]) +versionsuffix = '-%s-%s' % (python, pythonver) + +dependencies = [ + (python, pythonver), + ('numpy', '1.10.4', versionsuffix), + ('numexpr', '2.4.6', versionsuffix), + ('HDF5', '1.8.13'), +] + +sanity_check_paths = { + 'files': ['bin/%s' % x for x in ['pt2to3', 'ptdump', 'ptrepack']], + 'dirs': ['lib/python%s/site-packages' % pythonshortver], +} + +options = {'modulename': 'tables'} + +moduleclass = 'data' diff --git a/p/pyplusplus/pyplusplus-20160707-foss-2016a-Python-2.7.11.eb b/p/pyplusplus/pyplusplus-20160707-foss-2016a-Python-2.7.11.eb new file mode 100644 index 00000000..69561739 --- /dev/null +++ b/p/pyplusplus/pyplusplus-20160707-foss-2016a-Python-2.7.11.eb @@ -0,0 +1,35 @@ +easyblock = 'PythonPackage' + +name = 'pyplusplus' +version = '20160707' +commit_id = '2c6c05b7a7d2' +versionsuffix = '-Python-%(pyver)s' + +homepage = 'https://bitbucket.org/ompl/pyplusplus' +description = """Py++ is a code generator for Boost.Python that simplifies + writing Python bindings of a C/C++ library + The tool is implemented as a Python module which is controlled by a user script.""" + +toolchain = {'name': 'foss', 'version': '2016a'} + +source_urls = ['https://bitbucket.org/ompl/pyplusplus/get/'] +sources = ['%s.zip' % commit_id] + +builddependencies = [('pip', '8.1.2', versionsuffix)] + +dependencies = [ + ('Python', '2.7.11'), + ('pygccxml', '20160706', '-Python-%(pyver)s'), +] + +use_pip = True + +sanity_check_paths = { + 'files': [], + 'dirs': ['lib/python%(pyshortver)s/site-packages/%(name)s'], +} + +options = {'modulename': '%(name)s'} + +moduleclass = 'tools' + diff --git a/p/pyplusplus/pyplusplus-20160707-foss-2016a-Python-3.5.1.eb b/p/pyplusplus/pyplusplus-20160707-foss-2016a-Python-3.5.1.eb new file mode 100644 index 00000000..98760a6c --- /dev/null +++ b/p/pyplusplus/pyplusplus-20160707-foss-2016a-Python-3.5.1.eb @@ -0,0 +1,33 @@ +easyblock = 'PythonPackage' + +name = 'pyplusplus' +version = '20160707' +commit_id = '2c6c05b7a7d2' +versionsuffix = '-Python-%(pyver)s' + +homepage = 'https://bitbucket.org/ompl/pyplusplus' +description = """Py++ is a code generator for Boost.Python that simplifies + writing Python bindings of a C/C++ library + The tool is implemented as a Python module which is controlled by a user script.""" + +toolchain = {'name': 'foss', 'version': '2016a'} + +source_urls = ['https://bitbucket.org/ompl/pyplusplus/get/'] +sources = ['%s.zip' % commit_id] + +dependencies = [ + ('Python', '3.5.1'), + ('pygccxml', '20160706', '-Python-%(pyver)s'), +] + +use_pip = True + +sanity_check_paths = { + 'files': [], + 'dirs': ['lib/python%(pyshortver)s/site-packages/%(name)s'], +} + +options = {'modulename': '%(name)s'} + +moduleclass = 'tools' + diff --git a/p/python-dateutil/python-dateutil-2.1-goolf-1.4.10-Python-2.7.3.eb b/p/python-dateutil/python-dateutil-2.1-goolf-1.4.10-Python-2.7.3.eb new file mode 100644 index 00000000..9f1bdc61 --- /dev/null +++ b/p/python-dateutil/python-dateutil-2.1-goolf-1.4.10-Python-2.7.3.eb @@ -0,0 +1,29 @@ +easyblock = "PythonPackage" + +name = "python-dateutil" +version = "2.1" + +homepage = "https://pypi.python.org/pypi/python-dateutil" +description = """The dateutil module provides powerful extensions to the datetime module available in the Python standard library.""" + +toolchain = {'name': 'goolf', 'version': '1.4.10'} + +source_urls = [PYPI_LOWER_SOURCE] +sources = [SOURCE_TAR_GZ] + +python = "Python" +pythonversion = "2.7.3" + +versionsuffix = "-%s-%s" % (python, pythonversion) + +dependencies = [(python, pythonversion)] + +py_short_ver = '.'.join(pythonversion.split('.')[:2]) +sanity_check_paths = { + 'files': [], + 'dirs': ['lib/python%s/site-packages' % py_short_ver], +} + +options = {'modulename': 'dateutil'} + +moduleclass = 'lib' diff --git a/p/python-meep/python-meep-1.4.2-intel-2015b-Python-2.7.9-Meep-1.3.eb b/p/python-meep/python-meep-1.4.2-intel-2015b-Python-2.7.9-Meep-1.3.eb new file mode 100644 index 00000000..87c6c876 --- /dev/null +++ b/p/python-meep/python-meep-1.4.2-intel-2015b-Python-2.7.9-Meep-1.3.eb @@ -0,0 +1,28 @@ +name = 'python-meep' +version = '1.4.2' + +homepage = 'https://code.launchpad.net/python-meep' +description = """Python wrapper for the Meep FDTD solver.""" + +toolchain = {'name': 'intel', 'version': '2015b'} +toolchainopts = {'pic': True, 'opt': True, 'optarch': True, 'usempi': True} + +source_urls = ["https://launchpad.net/python-meep/1.4/1.4/+download/"] +sources = [SOURCELOWER_TAR] + +patches = ['MPI_destructor_1.3.patch'] + +python = 'Python' +pythonver = '2.7.9' +meep = 'Meep' +meepver = '1.3' +versionsuffix = '-%s-%s-%s-%s' % (python, pythonver, meep, meepver) + +dependencies = [ + (python, pythonver), + (meep, meepver), +] + +builddependencies = [('SWIG', '2.0.12', '-%s-%s' % (python, pythonver))] + +moduleclass = 'devel' diff --git a/q/QCA/QCA-2.1.0-foss-2015g.eb b/q/QCA/QCA-2.1.0-foss-2015g.eb new file mode 100644 index 00000000..d78e3eab --- /dev/null +++ b/q/QCA/QCA-2.1.0-foss-2015g.eb @@ -0,0 +1,27 @@ +easyblock = 'CMakeMake' + +name = "QCA" +version = "2.1.0" + +homepage = 'http://delta.affinix.com/qca/' +description = """QCA aims to provide a straightforward and cross-platform crypto API, +using Qt datatypes and conventions. QCA separates the API from the implementation, +using plugins known as Providers""" + +toolchain = {'name': 'foss', 'version': '2015g'} + +# Example URL: http://delta.affinix.com/download/qca/2.1/qca-2.1.0.tar.gz +source_urls = ['http://delta.affinix.com/download/%(namelower)s/%(version_major)s.0'] + +sources = [SOURCELOWER_TAR_GZ] + +builddependencies = [('Qt', '4.8.6'), + ('CMake', '3.3.1') +] + +sanity_check_paths = { + 'files': ['lib/libqca.so', 'bin/qcatool'], + 'dirs': ['bin', 'lib', 'include'], +} + +moduleclass = 'lib' diff --git a/q/QGIS/QGIS-2.12.3-foss-2015g.eb b/q/QGIS/QGIS-2.12.3-foss-2015g.eb new file mode 100644 index 00000000..bf9b7934 --- /dev/null +++ b/q/QGIS/QGIS-2.12.3-foss-2015g.eb @@ -0,0 +1,53 @@ +easyblock = 'CMakeMake' + +name = "QGIS" +version = "2.12.3" + +homepage = 'http://www.qgis.org' +description = """A Free and Open Source Geographic Information System""" + +toolchain = {'name': 'foss', 'version': '2015g'} + +source_urls = ['http://qgis.org/downloads'] + +sources = [SOURCELOWER_TAR_BZ2] + +builddependencies = [('CMake', '3.3.1')] + +separate_build_dir = True + +python = 'Python' +pyver = '2.7.9' +pysuff = '-%s-%s' % (python,pyver) + +dependencies = [('QCA', '2.1.0'), + ('Qt','4.8.6'), + ('PROJ_4','4.9.2'), + ('GEOS','3.5.0'), + ('SQLite','3.8.8.1'), + ('GDAL','2.1.0'), + ('Qwt','6.1.2'), + ('expat','2.1.0'), + ('SpatiaLite','4.3.0a'), + ('SIP','4.17', pysuff), + ('PyQt','4.11.4', pysuff), + ('spatialindex','1.8.5'), +] + + +configopts = '-DCMAKE_EXE_LINKER_FLAGS=-L$EBROOTSQLITE/lib -DWITH_INTERNAL_SPATIALITE=FALSE -DWITH_PYSPATIALITE=FALSE' +configopts += ' -DSPATIALITE_LIBRARY=$EBROOTSPATIALITE/lib/libspatialite.so -DSPATIALITE_INCLUDE_DIR=$EBROOTSPATIALITE/include ' +configopts += ' -DQCA_INCLUDE_DIR=$EBROOTQCA/include/QtCrypto -DQCA_LIBRARY=$EBROOTQCA/lib/libqca.so ' +configopts += ' -DQWT_INCLUDE_DIR=$EBROOTQWT/include -DQWT_LIBRARY=$EBROOTQWT/lib/libqwt.so ' +configopts += ' -DSPATIALINDEX_LIBRARY=$EBROOTSPATIALINDEX/lib/libspatialindex.so -DWITH_POSTGRESQL=OFF -DWITH_QWTPOLAR=OFF ' +configopts += ' -DSPATIALINDEX_INCLUDE_DIR=$EBROOTSPATIALINDEX/include/spatialindex/ -DGSL_CONFIG=/apps/all/GSL/1.16-intel-2015b/bin/gsl-config ' +configopts += ' -DWITH_BINDINGS=TRUE -DBINDINGS_GLOBAL_INSTALL=TRUE -DWITH_POSTGRESQL=TRUE' + +sanity_check_paths = { + 'files': ['bin/qgis', + 'lib/libqgis_gui.so' + ], + 'dirs': ['include', 'bin', 'lib'], +} + +moduleclass = 'lib' diff --git a/q/QScintilla/QScintilla-2.9.1-foss-2015b.eb b/q/QScintilla/QScintilla-2.9.1-foss-2015b.eb new file mode 100644 index 00000000..6770d50c --- /dev/null +++ b/q/QScintilla/QScintilla-2.9.1-foss-2015b.eb @@ -0,0 +1,35 @@ +name = 'QScintilla' +version = '2.9.1' + +homepage = 'https://www.riverbankcomputing.com/software/qscintilla/intro' +description = """QScintilla is a port to Qt of Neil Hodgson's Scintilla C++ editor control.""" + +toolchain = {'name': 'foss', 'version': '2015g'} + +source_urls = ['http://sourceforge.net/projects/pyqt/files/%(name)s2/%(name)s-%(version)s'] + +sources = ['%(name)s-gpl-%(version)s.tar.gz'] + +preconfigopts = "cd Qt4Qt5 && " + +prebuildopts = "cd Qt4Qt5 && " + +preinstallopts = "cd Qt4Qt5 && " + +###### WARNING ################### +# +# Missing Python binding compilation! +# For now you have to manually go to the Python source sundirectory +# and do: python configure.py && make +# and copy Qsci.so to the PyQt Python lib /apps/all/PyQt/4.11.4-foss-2015g-Python-2.7.9/lib/python2.7/site-packages/PyQt4/ +# +################################## + +builddependencies = [('Qt', '4.8.6')] + +sanity_check_paths = { + 'files': ['$EBROOTQT/lib/libqscintilla2.so'], + 'dirs': [], +} + +moduleclass = 'lib' diff --git a/q/Qemu/Qemu-2.1.2-GCC-4.4.7-system-VDE2.eb b/q/Qemu/Qemu-2.1.2-GCC-4.4.7-system-VDE2.eb new file mode 100644 index 00000000..3b236884 --- /dev/null +++ b/q/Qemu/Qemu-2.1.2-GCC-4.4.7-system-VDE2.eb @@ -0,0 +1,29 @@ +easyblock = 'ConfigureMake' + +name = "QEMU" +version = "2.1.2" +versionsuffix = "-VDE2" + +homepage = 'http://wiki.qemu.org/Main_Page' +description = """QEMU is a generic and open source machine emulator and +virtualizer.""" + +configopts = "--target-list=x86_64-softmmu,x86_64-linux-user,i386-softmmu,i386-linux-user" + +toolchain = {'name': 'GCC', 'version': '4.4.7-system'} + +sources = [SOURCELOWER_TAR_BZ2] +source_urls = ['http://wiki.qemu-project.org/download/'] + +patches = ['qemu-slirp-smb.patch'] + +dependencies = [ + ('VDE2', '2.3.2'), +] + +sanity_check_paths = { + 'files': ['bin/qemu-x86_64'], + 'dirs': ['bin', 'etc', 'share'], +} + +moduleclass = 'tools' diff --git a/q/Qemu/Qemu-2.1.2-GCC-4.4.7-system.eb b/q/Qemu/Qemu-2.1.2-GCC-4.4.7-system.eb new file mode 100644 index 00000000..566eeb1f --- /dev/null +++ b/q/Qemu/Qemu-2.1.2-GCC-4.4.7-system.eb @@ -0,0 +1,26 @@ +easyblock = 'ConfigureMake' + +name = "QEMU" +version = "2.1.2" + +homepage = 'http://wiki.qemu.org/Main_Page' +description = """QEMU is a generic and open source machine emulator and +virtualizer.""" + +configopts = "--target-list=x86_64-softmmu,x86_64-linux-user,i386-softmmu,i386-linux-user" + +toolchain = {'name': 'GCC', 'version': '4.4.7-system'} + +sources = [SOURCELOWER_TAR_BZ2] +source_urls = ['http://wiki.qemu-project.org/download/'] + +builddependencies = [] + +patches = ['qemu-slirp-smb.patch'] + +sanity_check_paths = { + 'files': ['bin/qemu-x86_64'], + 'dirs': ['bin', 'etc', 'share'], +} + +moduleclass = 'tools' diff --git a/q/Qemu/Qemu-2.1.2-GCC-4.8.3-VDE2.eb b/q/Qemu/Qemu-2.1.2-GCC-4.8.3-VDE2.eb new file mode 100644 index 00000000..2f7a18cc --- /dev/null +++ b/q/Qemu/Qemu-2.1.2-GCC-4.8.3-VDE2.eb @@ -0,0 +1,31 @@ +easyblock = 'ConfigureMake' + +name = "QEMU" +version = "2.1.2" +versionsuffix = "-VDE2" + +homepage = 'http://wiki.qemu.org/Main_Page' +description = """QEMU is a generic and open source machine emulator and +virtualizer.""" + +configopts = "--target-list=x86_64-softmmu,x86_64-linux-user,i386-softmmu,i386-linux-user" + +toolchain = {'name': 'GCC', 'version': '4.8.3'} + +sources = [SOURCELOWER_TAR_BZ2] +source_urls = ['http://wiki.qemu-project.org/download/'] + +builddependencies = [('GLib', '2.40.0', '', ('gompi', '1.5.16'),), + ('VDE2', '2.3.2') +] + +dependencies = [ + ('VDE2', '2.3.2'), +] + +sanity_check_paths = { + 'files': ['bin/qemu-x86_64'], + 'dirs': ['bin', 'etc', 'share'], +} + +moduleclass = 'tools' diff --git a/q/Qemu/Qemu-2.1.2-GCC-4.9.3-binutils-2.25.eb b/q/Qemu/Qemu-2.1.2-GCC-4.9.3-binutils-2.25.eb new file mode 100644 index 00000000..1e0541d9 --- /dev/null +++ b/q/Qemu/Qemu-2.1.2-GCC-4.9.3-binutils-2.25.eb @@ -0,0 +1,27 @@ +easyblock = 'ConfigureMake' + +name = "QEMU" +version = "2.1.2" + +homepage = 'http://wiki.qemu.org/Main_Page' +description = """QEMU is a generic and open source machine emulator and +virtualizer.""" + +configopts = "--target-list=x86_64-softmmu,x86_64-linux-user,i386-softmmu,i386-linux-user" + +toolchain = {'name': 'GCC', 'version': '4.9.3-binutils-2.25'} + +sources = [SOURCELOWER_TAR_BZ2] +source_urls = ['http://wiki.qemu-project.org/download/'] + +#builddependencies = [] +builddependencies = [('GLib', '2.40.0')] + +patches = ['qemu-slirp-smb.patch'] + +sanity_check_paths = { + 'files': ['bin/qemu-x86_64'], + 'dirs': ['bin', 'etc', 'share'], +} + +moduleclass = 'tools' diff --git a/q/Qemu/Qemu-2.1.2-foss-2015b.eb b/q/Qemu/Qemu-2.1.2-foss-2015b.eb new file mode 100644 index 00000000..52ca2784 --- /dev/null +++ b/q/Qemu/Qemu-2.1.2-foss-2015b.eb @@ -0,0 +1,24 @@ +easyblock = 'ConfigureMake' + +name = "QEMU" +version = "2.1.2" + +homepage = 'http://wiki.qemu.org/Main_Page' +description = """QEMU is a generic and open source machine emulator and +virtualizer.""" + +configopts = "--target-list=x86_64-softmmu,x86_64-linux-user,i386-softmmu,i386-linux-user" + +toolchain = {'name': 'foss', 'version': '2015b'} + +sources = [SOURCELOWER_TAR_BZ2] +source_urls = ['http://wiki.qemu-project.org/download/'] + +builddependencies = [('GLib', '2.40.0')] + +sanity_check_paths = { + 'files': ['bin/qemu-x86_64'], + 'dirs': ['bin', 'etc', 'share'], +} + +moduleclass = 'tools' diff --git a/q/Qemu/Qemu-2.1.2-intel-2015b.eb b/q/Qemu/Qemu-2.1.2-intel-2015b.eb new file mode 100644 index 00000000..ad6a3284 --- /dev/null +++ b/q/Qemu/Qemu-2.1.2-intel-2015b.eb @@ -0,0 +1,24 @@ +easyblock = 'ConfigureMake' + +name = "QEMU" +version = "2.1.2" + +homepage = 'http://wiki.qemu.org/Main_Page' +description = """QEMU is a generic and open source machine emulator and +virtualizer.""" + +configopts = "--target-list=x86_64-softmmu,x86_64-linux-user,i386-softmmu,i386-linux-user" + +toolchain = {'name': 'intel', 'version': '2015b'} + +sources = [SOURCELOWER_TAR_BZ2] +source_urls = ['http://wiki.qemu-project.org/download/'] + +builddependencies = [('GLib', '2.40.0')] + +sanity_check_paths = { + 'files': ['bin/qemu-x86_64'], + 'dirs': ['bin', 'etc', 'share'], +} + +moduleclass = 'tools' diff --git a/q/Qemu/qemu-slirp-smb.patch b/q/Qemu/qemu-slirp-smb.patch new file mode 100644 index 00000000..c5de1f63 --- /dev/null +++ b/q/Qemu/qemu-slirp-smb.patch @@ -0,0 +1,31 @@ +--- net/slirp.c.orig 2014-09-04 13:23:11.963844312 +0200 ++++ net/slirp.c 2014-09-05 11:49:13.202078299 +0200 +@@ -533,10 +533,20 @@ + "smb passwd file=%s/smbpasswd\n" + "security = user\n" + "map to guest = Bad User\n" ++ "unix extensions = no\n" ++ "load printers = no\n" ++ "printing = bsd\n" ++ "printcap name = /dev/null\n" ++ "disable spoolss = yes\n" ++ "log level = 1\n" ++ "guest account = %s\n" + "[qemu]\n" + "path=%s\n" + "read only=no\n" + "guest ok=yes\n" ++ "writable=yes\n" ++ "follow symlinks=yes\n" ++ "wide links=yes\n" + "force user=%s\n", + s->smb_dir, + s->smb_dir, +@@ -545,6 +555,7 @@ + s->smb_dir, + s->smb_dir, + s->smb_dir, ++ passwd->pw_name, + exported_dir, + passwd->pw_name + ); diff --git a/q/Qt/Qt-4.8.6-foss-2015g.eb b/q/Qt/Qt-4.8.6-foss-2015g.eb new file mode 100644 index 00000000..b100e4d1 --- /dev/null +++ b/q/Qt/Qt-4.8.6-foss-2015g.eb @@ -0,0 +1,17 @@ +name = 'Qt' +version = '4.8.6' + +homepage = 'http://qt-project.org/' +description = "Qt is a comprehensive cross-platform C++ application framework." + +toolchain = {'name': 'foss', 'version': '2015g'} + +source_urls = [ + 'http://origin.releases.qt-project.org/qt4/source/', + 'http://master.qt-project.org/archive/qt/%(version_major_minor)s/%(version)s/' +] +sources = ['%(namelower)s-everywhere-opensource-src-%(version)s.tar.gz'] + +dependencies = [('GLib', '2.40.0')] + +moduleclass = 'devel' diff --git a/q/Qt/Qt-4.8.6.eb b/q/Qt/Qt-4.8.6.eb new file mode 100644 index 00000000..8464ad89 --- /dev/null +++ b/q/Qt/Qt-4.8.6.eb @@ -0,0 +1,19 @@ +name = 'Qt' +version = '4.8.6' + +homepage = 'http://qt-project.org/' +description = "Qt is a comprehensive cross-platform C++ application framework." + +toolchain = {'name': 'dummy', 'version': ''} + +source_urls = [ + 'http://origin.releases.qt-project.org/qt4/source/', + 'http://master.qt-project.org/archive/qt/%(version_major_minor)s/%(version)s/' +] +sources = ['%(namelower)s-everywhere-opensource-src-%(version)s.tar.gz'] + +dependencies = [('GLib', '2.40.0')] + +platform = 'linux-g++-64' + +moduleclass = 'devel' diff --git a/q/Qt/Qt-4.8.7-foss-2016a-GLib-2.48.0.eb b/q/Qt/Qt-4.8.7-foss-2016a-GLib-2.48.0.eb new file mode 100644 index 00000000..8616257c --- /dev/null +++ b/q/Qt/Qt-4.8.7-foss-2016a-GLib-2.48.0.eb @@ -0,0 +1,27 @@ +name = 'Qt' +version = '4.8.7' + +homepage = 'http://qt.io/' +description = "Qt is a comprehensive cross-platform C++ application framework." + +toolchain = {'name': 'foss', 'version': '2016a'} + +source_urls = [ + 'http://download.qt.io/official_releases/qt/%(version_major_minor)s/%(version)s/', + 'http://download.qt.io/archive/qt/%(version_major_minor)s/%(version)s/' +] +sources = ['%(namelower)s-everywhere-opensource-src-%(version)s.tar.gz'] + +patches = ['Qt-%(version)s_phonon-export.patch'] + +glib_ver = '2.48.0' +versionsuffix = '-GLib-%s' % glib_ver + +dependencies = [ + ('GLib', glib_ver), + ('libX11', '1.6.3'), + ('libXt', '1.1.5'), + ('libXrender', '0.9.9'), +] + +moduleclass = 'devel' diff --git a/q/Qt/Qt-4.8.7-intel-2016a-GLib-2.48.0.eb b/q/Qt/Qt-4.8.7-intel-2016a-GLib-2.48.0.eb new file mode 100644 index 00000000..ada4c2ab --- /dev/null +++ b/q/Qt/Qt-4.8.7-intel-2016a-GLib-2.48.0.eb @@ -0,0 +1,27 @@ +name = 'Qt' +version = '4.8.7' + +homepage = 'http://qt.io/' +description = "Qt is a comprehensive cross-platform C++ application framework." + +toolchain = {'name': 'intel', 'version': '2016a'} + +source_urls = [ + 'http://download.qt.io/official_releases/qt/%(version_major_minor)s/%(version)s/', + 'http://download.qt.io/archive/qt/%(version_major_minor)s/%(version)s/' +] +sources = ['%(namelower)s-everywhere-opensource-src-%(version)s.tar.gz'] + +patches = ['Qt-%(version)s_phonon-export.patch'] + +glib_ver = '2.48.0' +versionsuffix = '-GLib-%s' % glib_ver + +dependencies = [ + ('GLib', glib_ver), + ('libX11', '1.6.3'), + ('libXt', '1.1.5'), + ('libXrender', '0.9.9'), +] + +moduleclass = 'devel' diff --git a/q/Qt5/Qt5-5.6.0-foss-2016a.eb b/q/Qt5/Qt5-5.6.0-foss-2016a.eb new file mode 100644 index 00000000..27b1514a --- /dev/null +++ b/q/Qt5/Qt5-5.6.0-foss-2016a.eb @@ -0,0 +1,39 @@ +easyblock = 'EB_Qt' + +name = 'Qt5' +version = '5.6.0' + +homepage = 'http://qt.io/' +description = "Qt is a comprehensive cross-platform C++ application framework." + +toolchain = {'name': 'foss', 'version': '2016a'} + +source_urls = [ + 'http://download.qt.io/official_releases/qt/%(version_major_minor)s/%(version)s/single/', + 'http://download.qt.io/archive/qt/%(version_major_minor)s/%(version)s/single/' +] +sources = ['qt-everywhere-opensource-src-%(version)s.tar.xz'] + +dependencies = [ + ('GLib', '2.48.0'), + ('libX11', '1.6.3'), + ('libXt', '1.1.5'), + ('libXi', '1.7.6'), + ('xcb-util', '0.4.0'), + ('xcb-util-image', '0.4.0'), + ('xcb-util-keysyms', '0.4.0'), + ('xcb-util-renderutil', '0.3.9'), + ('xcb-util-wm', '0.4.1'), + ('libxkbcommon', '0.6.1'), + ('libXrender', '0.9.9'), + ('fontconfig', '2.11.95'), + ('freetype', '2.6.3'), + ('libXfixes', '5.0.1'), + ('libXcursor', '1.1.14'), + ('libXinerama', '1.1.3'), + ('libXrandr', '1.5.0'), + ('libpng', '1.6.21'), + ('libGLU', '9.0.0', '-Mesa-11.2.1'), +] + +moduleclass = 'devel' diff --git a/q/Qt5/Qt5-5.6.0-intel-2016a.eb b/q/Qt5/Qt5-5.6.0-intel-2016a.eb new file mode 100644 index 00000000..f4f0ab35 --- /dev/null +++ b/q/Qt5/Qt5-5.6.0-intel-2016a.eb @@ -0,0 +1,39 @@ +easyblock = 'EB_Qt' + +name = 'Qt5' +version = '5.6.0' + +homepage = 'http://qt.io/' +description = "Qt is a comprehensive cross-platform C++ application framework." + +toolchain = {'name': 'intel', 'version': '2016a'} + +source_urls = [ + 'http://download.qt.io/official_releases/qt/%(version_major_minor)s/%(version)s/single/', + 'http://download.qt.io/archive/qt/%(version_major_minor)s/%(version)s/single/' +] +sources = ['qt-everywhere-opensource-src-%(version)s.tar.xz'] + +dependencies = [ + ('GLib', '2.48.0'), + ('libX11', '1.6.3'), + ('libXt', '1.1.5'), + ('libXi', '1.7.6'), + ('xcb-util', '0.4.0'), + ('xcb-util-image', '0.4.0'), + ('xcb-util-keysyms', '0.4.0'), + ('xcb-util-renderutil', '0.3.9'), + ('xcb-util-wm', '0.4.1'), + ('libxkbcommon', '0.6.1'), + ('libXrender', '0.9.9'), + ('fontconfig', '2.11.95'), + ('freetype', '2.6.3'), + ('libXfixes', '5.0.1'), + ('libXcursor', '1.1.14'), + ('libXinerama', '1.1.3'), + ('libXrandr', '1.5.0'), + ('libpng', '1.6.21'), + ('libGLU', '9.0.0', '-Mesa-11.2.1'), +] + +moduleclass = 'devel' diff --git a/q/QuantumESPRESSO/QuantumESPRESSO-5.4.0-foss-2016b-hybrid.eb b/q/QuantumESPRESSO/QuantumESPRESSO-5.4.0-foss-2016b-hybrid.eb new file mode 100644 index 00000000..57849d2e --- /dev/null +++ b/q/QuantumESPRESSO/QuantumESPRESSO-5.4.0-foss-2016b-hybrid.eb @@ -0,0 +1,58 @@ +name = 'QuantumESPRESSO' +version = '5.4.0' +versionsuffix = '-hybrid' + +homepage = 'http://www.pwscf.org/' +description = """Quantum ESPRESSO is an integrated suite of computer codes + for electronic-structure calculations and materials modeling at the nanoscale. + It is based on density-functional theory, plane waves, and pseudopotentials + (both norm-conserving and ultrasoft).""" + +toolchain = {'name': 'foss', 'version': '2016b'} +toolchainopts = {'usempi': True, 'openmp': True} + +# this list was determined from QE 5.4.0 version release +sources = [ + # Common source + 'espresso-%(version)s.tar.gz', + 'tddfpt-%(version)s.tar.gz', + # Other sources + 'atomic-%(version)s.tar.gz', + 'neb-%(version)s.tar.gz', + 'PHonon-%(version)s.tar.gz', + 'pwcond-%(version)s.tar.gz', + 'xspectra-%(version)s.tar.gz' , + 'PWgui-%(version)s.tar.gz' , + 'EPW-%(version)s.tar.gz' , + 'test-suite-%(version)s.tar.gz' , + 'GWW-%(version)s.tar.gz' , +] +source_urls = [ + 'http://files.qe-forge.org/index.php?file=', # Almost all + 'http://www.qe-forge.org/gf/download/frsrelease/211/968/', # espresso-5.4.0.tar.gz + # These will not be used because of the 404 signal not found from the previous link. + 'http://www.qe-forge.org/gf/download/frsrelease/211/961/', # PWgui-5.4.0.tar.gz + 'http://www.qe-forge.org/gf/download/frsrelease/211/956/', # tddfpt-5.4.0.tar.gz + 'http://www.qe-forge.org/gf/download/frsrelease/211/954/', # atomic-5.4.0.tar.gz + 'http://www.qe-forge.org/gf/download/frsrelease/211/959/', # neb-5.4.0.tar.gz + 'http://www.qe-forge.org/gf/download/frsrelease/211/962/', # PHonon-5.4.0.tar.gz + 'http://www.qe-forge.org/gf/download/frsrelease/211/960/', # pwcond-5.4.0.tar.gz + 'http://www.qe-forge.org/gf/download/frsrelease/211/958/', # xspectra-5.4.0.tar.gz + 'http://www.qe-forge.org/gf/download/frsrelease/211/969/', # EPW-5.4.0.tar.gz + 'http://www.qe-forge.org/gf/download/frsrelease/211/963/', # test-suite-5.4.0.tar.gz + 'http://www.qe-forge.org/gf/download/frsrelease/211/957/', # GWW-5.4.0.tar.gz +] + +# Hybrid option exists only for backward compatibility, use toolchain option openmp instead. +hybrid = True +# Patch file to avoid the CPP problem generated by different OSes +patches = ['QuantumESPRESSO-5.4.0_fix-f90rule-gfortran.patch'] + +# packages included in 5.4.0 version of QE. We met errors when try to include gipaw, yambo and someother packages. +buildopts = 'all tddfpt neb xspectra ph ' + +# parallel build tends to fail +parallel = 1 + +moduleclass = 'chem' + diff --git a/q/QuantumESPRESSO/QuantumESPRESSO-5.4.0-intel-2017.00.eb b/q/QuantumESPRESSO/QuantumESPRESSO-5.4.0-intel-2017.00.eb new file mode 100644 index 00000000..dfb159a0 --- /dev/null +++ b/q/QuantumESPRESSO/QuantumESPRESSO-5.4.0-intel-2017.00.eb @@ -0,0 +1,66 @@ +name = 'QuantumESPRESSO' +version = '5.4.0' + +homepage = 'http://www.pwscf.org/' +description = """Quantum ESPRESSO is an integrated suite of computer codes + for electronic-structure calculations and materials modeling at the nanoscale. + It is based on density-functional theory, plane waves, and pseudopotentials + (both norm-conserving and ultrasoft).""" + +toolchain = {'name': 'intel', 'version': '2017.00'} +toolchainopts = {'usempi': True} + +# major part of this list was determined from espresso/install/plugins_list +sources = [ + 'espresso-%(version)s.tar.gz', + 'wannier90-1.2.tar.gz', + 'atomic-%(version)s.tar.gz', + 'neb-%(version)s.tar.gz', + 'PHonon-%(version)s.tar.gz', + # must be downloaded manually from + # http://qe-forge.org/gf/project/q-e/scmsvn/?action=browse&path=%2F%2Acheckout%2A%2Ftags%2FQE-5.2.1%2Fespresso%2Farchive%2Fplumed-1.3-qe.tar.gz&revision=11758 + # gets updated without changes to filename, cfr. http://qe-forge.org/pipermail/q-e-commits/2015-June/007359.html + # 'plumed-1.3-qe-r11758.tar.gz', + 'pwcond-%(version)s.tar.gz', + 'tddfpt-%(version)s.tar.gz', + 'want-2.5.1-base.tar.gz', + 'yambo-3.4.2.tgz', + 'xspectra-%(version)s.tar.gz', +] +#missing_sources = [ +# 'sax-2.0.3.tar.gz', # nowhere to be found +#] +#source_urls = [ +# 'http://files.qe-forge.org/index.php?file=', # all sources, except espresso*.tar.gz +# 'http://qe-forge.org/gf/download/frsrelease/211/968/', # espresso-5.4.0.tar.gz +# 'http://qe-forge.org/gf/download/frsrelease/153/618/', # want-2.5.1-base.tar.gz +# 'http://qe-forge.org/gf/download/frsrelease/208/932/', # yambo-3.4.2.tgz +#] + +patches = [ + 'QuantumESPRESSO-%(version)s_yambo-fixes.patch', +] + +# source checksums +#checksums = [ +# '8bb78181b39bd084ae5cb7a512c1cfe7', # espresso-5.4.0.tar.gz +# 'a1e9611b9a82941c23426028d112186e', # wannier90-1.2.tar.gz +# '24dc0d8bf5cf4eb4dc38e1c18a80b3ee', # atomic-5.4.0.tar.gz +# '254f929259fb06036b78c493cf18e5d6', # neb-5.4.0.tar.gz +# 'f641fe9dcf0ec8f1e47d74e3c7c39705', # PHonon-5.4.0.tar.gz + # 'f094031c6d13a0e00022daf4d7c847c7', # plumed-1.3-qe-r11758.tar.gz +# '31c1cd8cd76752833a9205d456093d0a', # pwcond-5.4.0.tar.gz +# '2101533a627644ef467b60d400977eab', # tddfpt-5.4.0.tar.gz +# 'ac365daebbe380bf4019235eacf71079', # want-2.5.1-base.tar.gz +# 'f0820a0f42dfc81ce3811af647bed777', # yambo-3.4.2.tgz +# '95080929c87389cd15cf765048cfc9d2', # xspectra-5.4.0.tar.gz +#] + +# gipaw excluded due to: configure: error: Cannot compile against this version of Quantum-Espresso +# add plumed and uncomment the lines in sources and checksums if the package is downloaded manually +buildopts = 'all w90 want yambo xspectra' # plumed + +# parallel build tends to fail +parallel = 1 + +moduleclass = 'chem' diff --git a/q/QuantumESPRESSO/QuantumESPRESSO-6.0-intel-2017.00.eb b/q/QuantumESPRESSO/QuantumESPRESSO-6.0-intel-2017.00.eb new file mode 100644 index 00000000..ea423810 --- /dev/null +++ b/q/QuantumESPRESSO/QuantumESPRESSO-6.0-intel-2017.00.eb @@ -0,0 +1,45 @@ +name = 'QuantumESPRESSO' +version = '6.0' + +homepage = 'http://www.pwscf.org/' +description = """Quantum ESPRESSO is an integrated suite of computer codes + for electronic-structure calculations and materials modeling at the nanoscale. + It is based on density-functional theory, plane waves, and pseudopotentials + (both norm-conserving and ultrasoft).""" + +toolchain = {'name': 'intel', 'version': '2017.00'} +toolchainopts = {'usempi': True} + +# major part of this list was determined from espresso/install/plugins_list +sources = [ + 'qe-%(version)s.tar.gz', + 'wannier90-1.2.tar.gz', + 'qe-gipaw-6.0.tar.gz', + # must be downloaded manually from + # http://qe-forge.org/gf/project/q-e/scmsvn/?action=browse&path=%2F%2Acheckout%2A%2Ftags%2FQE-5.2.1%2Fespresso%2Farchive%2Fplumed-1.3-qe.tar.gz&revision=11758 + # gets updated without changes to filename, cfr. http://qe-forge.org/pipermail/q-e-commits/2015-June/007359.html +# 'PLUMED-latest.tar.gz', + 'want-2.5.1-base.tar.gz', + 'yambo-4.1.2-rev.120.tar.gz', +] +missing_sources = [ + 'sax-2.0.3.tar.gz', # nowhere to be found +] +source_urls = [ + 'http://files.qe-forge.org/index.php?file=', # all sources, except espresso*.tar.gz + 'http://qe-forge.org/gf/download/frsrelease/224/1044/', # qe-6.0.tar.gz + 'http://qe-forge.org/gf/download/frsrelease/153/618/', # want-2.5.1-base.tar.gz + 'http://qe-forge.org/gf/download/frsrelease/208/932/', # yambo-3.4.2.tgz +] + +#patches = [ +# 'QuantumESPRESSO-5.4.0_yambo-fixes.patch', +#] + +# add plumed and uncomment the lines in sources and checksums if the package is downloaded manually +buildopts = 'all w90 gipaw want yambo xspectra' # plumed + +# parallel build tends to fail +parallel = 1 + +moduleclass = 'chem' diff --git a/q/QuantumESPRESSO/QuantumESPRESSO-6.0-intel-2017a.eb b/q/QuantumESPRESSO/QuantumESPRESSO-6.0-intel-2017a.eb new file mode 100644 index 00000000..ee620e25 --- /dev/null +++ b/q/QuantumESPRESSO/QuantumESPRESSO-6.0-intel-2017a.eb @@ -0,0 +1,45 @@ +name = 'QuantumESPRESSO' +version = '6.0' + +homepage = 'http://www.pwscf.org/' +description = """Quantum ESPRESSO is an integrated suite of computer codes + for electronic-structure calculations and materials modeling at the nanoscale. + It is based on density-functional theory, plane waves, and pseudopotentials + (both norm-conserving and ultrasoft).""" + +toolchain = {'name': 'intel', 'version': '2017a'} +toolchainopts = {'usempi': True} + +# major part of this list was determined from espresso/install/plugins_list +sources = [ + 'qe-%(version)s.tar.gz', + 'wannier90-1.2.tar.gz', + 'qe-gipaw-6.0.tar.gz', + # must be downloaded manually from + # http://qe-forge.org/gf/project/q-e/scmsvn/?action=browse&path=%2F%2Acheckout%2A%2Ftags%2FQE-5.2.1%2Fespresso%2Farchive%2Fplumed-1.3-qe.tar.gz&revision=11758 + # gets updated without changes to filename, cfr. http://qe-forge.org/pipermail/q-e-commits/2015-June/007359.html + # 'plumed-1.3-qe-r11758.tar.gz', + 'want-2.5.1-base.tar.gz', + 'yambo-3.4.2.tgz', +] +missing_sources = [ + 'sax-2.0.3.tar.gz', # nowhere to be found +] +source_urls = [ + 'http://files.qe-forge.org/index.php?file=', # all sources, except espresso*.tar.gz + 'http://qe-forge.org/gf/download/frsrelease/224/1044/', # qe-6.0.tar.gz + 'http://qe-forge.org/gf/download/frsrelease/153/618/', # want-2.5.1-base.tar.gz + 'http://qe-forge.org/gf/download/frsrelease/208/932/', # yambo-3.4.2.tgz +] + +patches = [ + 'QuantumESPRESSO-5.4.0_yambo-fixes.patch', +] + +# add plumed and uncomment the lines in sources and checksums if the package is downloaded manually +buildopts = 'all w90 gipaw want yambo xspectra' # plumed + +# parallel build tends to fail +parallel = 1 + +moduleclass = 'chem' diff --git a/q/Qwt/Qwt-6.1.2-foss-2015g.eb b/q/Qwt/Qwt-6.1.2-foss-2015g.eb new file mode 100644 index 00000000..da3f571e --- /dev/null +++ b/q/Qwt/Qwt-6.1.2-foss-2015g.eb @@ -0,0 +1,23 @@ +name = 'Qwt' +version = '6.1.2' + +homepage = 'http://qwt.sourceforge.net/index.html' +description = """The Qwt library contains GUI Components and utility classes which are primarily +useful for programs with a technical background. Beside a framework for 2D plots it provides scales, +sliders, dials, compasses, thermometers, wheels and knobs to control or display values, arrays, +or ranges of type double.""" + +toolchain = {'name': 'foss', 'version': '2015g'} + +source_urls = ['http://sourceforge.net/projects/qwt/files/%(name)s2/%(name)s-%(version)s'] + +sources = [SOURCELOWER_TAR_BZ2] + +builddependencies = [('Qt', '4.8.6')] + +sanity_check_paths = { + 'files': ['lib/libqwt.so'], + 'dirs': ['include'], +} + +moduleclass = 'lib' diff --git a/q/Qwt/qwt-6.1.2-prefix.patch b/q/Qwt/qwt-6.1.2-prefix.patch new file mode 100644 index 00000000..45033782 --- /dev/null +++ b/q/Qwt/qwt-6.1.2-prefix.patch @@ -0,0 +1,13 @@ +diff --git a/qwtconfig.pri b/qwtconfig.pri +index 7adefe2..194846b 100644 +--- a/qwtconfig.pri ++++ b/qwtconfig.pri +@@ -19,7 +19,7 @@ QWT_VERSION = $${QWT_VER_MAJ}.$${QWT_VER_MIN}.$${QWT_VER_PAT} + QWT_INSTALL_PREFIX = $$[QT_INSTALL_PREFIX] + + unix { +- QWT_INSTALL_PREFIX = /usr/local/qwt-$$QWT_VERSION ++ QWT_INSTALL_PREFIX = $EBROOTQWT/$$QWT_VERSION + # QWT_INSTALL_PREFIX = /usr/local/qwt-$$QWT_VERSION-qt-$$QT_VERSION + } + diff --git a/r/R-bundle-Bioconductor/R-bundle-Bioconductor-3.2-foss-2016a-R-3.2.3.eb b/r/R-bundle-Bioconductor/R-bundle-Bioconductor-3.2-foss-2016a-R-3.2.3.eb new file mode 100644 index 00000000..13ad83c7 --- /dev/null +++ b/r/R-bundle-Bioconductor/R-bundle-Bioconductor-3.2-foss-2016a-R-3.2.3.eb @@ -0,0 +1,153 @@ +easyblock = 'Bundle' + +name = 'R-bundle-Bioconductor' +version = '3.2' +versionsuffix = '-R-%(rver)s' + +homepage = 'http://www.r-project.org/' +description = """R is a free software environment for statistical computing and graphics.""" + +toolchain = {'name': 'foss', 'version': '2016a'} + +# these are extensions for R +exts_defaultclass = 'RPackage' +exts_filter = ("R -q --no-save", "library(%(ext_name)s)") + +rver = '3.2.3' +versionsuffix = '-R-%s' % rver +dependencies = [('R', rver)] + +name_tmpl = '%(name)s_%(version)s.tar.gz' +ext_options = { + 'source_urls': [ + 'http://cran.r-project.org/src/contrib/Archive/%(name)s', # package archive + 'http://cran.r-project.org/src/contrib/', # current version of packages + 'http://cran.freestatistics.org/src/contrib', # mirror alternative for current packages + ], + 'source_tmpl': name_tmpl, +} +bioconductor_options = { + 'source_urls': [ + 'http://www.bioconductor.org/packages/3.2/bioc/src/contrib/', + 'http://www.bioconductor.org/packages/3.2/data/annotation/src/contrib/', + 'http://www.bioconductor.org/packages/3.2/data/experiment/src/contrib/', + ], + 'source_tmpl': name_tmpl, +} + +# CRAN packages on which these Bioconductor packages depend are available in R module on which this depends +# !! order of packages is important !! +exts_list = [ + ('BiocGenerics', '0.16.1', bioconductor_options), + ('Biobase', '2.30.0', bioconductor_options), + ('S4Vectors', '0.8.11', bioconductor_options), + ('IRanges', '2.4.8', bioconductor_options), + ('GenomeInfoDb', '1.6.3', bioconductor_options), + ('AnnotationDbi', '1.32.3', bioconductor_options), + ('zlibbioc', '1.16.0', bioconductor_options), + ('XVector', '0.10.0', bioconductor_options), + ('Biostrings', '2.38.4', bioconductor_options), + ('GenomicRanges', '1.22.4', bioconductor_options), + ('BiocParallel', '1.4.3', bioconductor_options), + ('Rsamtools', '1.22.0', bioconductor_options), + ('lambda.r', '1.1.7', ext_options), + ('futile.options', '1.0.0', ext_options), + ('futile.logger', '1.4.1', ext_options), + ('SummarizedExperiment', '1.0.2', bioconductor_options), + ('GenomicAlignments', '1.6.3', bioconductor_options), + ('ShortRead', '1.28.0', bioconductor_options), + ('graph', '1.48.0', bioconductor_options), + ('affyio', '1.40.0', bioconductor_options), + ('BiocInstaller', '1.20.1', bioconductor_options), + ('preprocessCore', '1.32.0', bioconductor_options), + ('affy', '1.48.0', bioconductor_options), + ('GO.db', '3.2.2', bioconductor_options), + ('limma', '3.26.9', bioconductor_options), + ('RBGL', '1.46.0', bioconductor_options), + ('org.Hs.eg.db', '3.2.3', bioconductor_options), + ('AnnotationForge', '1.12.2', bioconductor_options), + ('KEGG.db', '3.2.2', bioconductor_options), + ('annaffy', '1.42.0', bioconductor_options), + ('gcrma', '2.42.0', bioconductor_options), + ('oligoClasses', '1.32.0', bioconductor_options), + ('edgeR', '3.12.1', bioconductor_options), + ('PFAM.db', '3.2.2', bioconductor_options), + ('perm', '1.0-0.0', ext_options), + ('baySeq', '2.4.1', bioconductor_options), + ('qvalue', '2.2.2', bioconductor_options), + ('impute', '1.44.0', bioconductor_options), + ('samr', '2.0', ext_options), + ('DEGseq', '1.24.0', bioconductor_options), + ('hgu133plus2.db', '3.2.2', bioconductor_options), + ('illuminaio', '0.12.0', bioconductor_options), + ('rtracklayer', '1.30.4', bioconductor_options), + ('biomaRt', '2.26.1', bioconductor_options), + ('GenomicFeatures', '1.22.13', bioconductor_options), + ('bumphunter', '1.10.0', bioconductor_options), + ('multtest', '2.26.0', bioconductor_options), + ('siggenes', '1.44.0', bioconductor_options), + ('DynDoc', '1.48.0', bioconductor_options), + ('genoset', '1.24.0', bioconductor_options), + ('NOISeq', '2.14.1', bioconductor_options), + ('Rgraphviz', '2.14.0', bioconductor_options), + ('RNASeqPower', '1.10.0', bioconductor_options), + ('annotate', '1.48.0', bioconductor_options), + ('GSEABase', '1.32.0', bioconductor_options), + ('genefilter', '1.52.1', bioconductor_options), + ('Category', '2.36.0', bioconductor_options), + ('GOstats', '2.36.0', bioconductor_options), + ('BSgenome', '1.38.0', bioconductor_options), + ('VariantAnnotation', '1.16.4', bioconductor_options), + ('biovizBase', '1.18.0', bioconductor_options), + ('OrganismDbi', '1.12.1', bioconductor_options), + ('ggbio', '1.18.5', bioconductor_options), + ('geneplotter', '1.48.0', bioconductor_options), + ('DESeq2', '1.10.1', bioconductor_options), + ('ReportingTools', '2.10.0', bioconductor_options), + ('affycoretools', '1.42.0', bioconductor_options), + ('TxDb.Hsapiens.UCSC.hg19.knownGene', '3.2.2', bioconductor_options), + ('Homo.sapiens', '1.3.1', bioconductor_options), + ('BSgenome.Hsapiens.UCSC.hg19', '1.4.0', bioconductor_options), + ('AgiMicroRna', '2.20.0', bioconductor_options), + ('GenomeGraphs', '1.30.0', bioconductor_options), + ('geneLenDataBase', '1.6.0', bioconductor_options), + ('goseq', '1.22.0', bioconductor_options), + ('KEGGREST', '1.10.1', bioconductor_options), + ('KEGGgraph', '1.28.0', bioconductor_options), + ('KEGGprofile', '1.12.0', bioconductor_options), + ('GEOquery', '2.36.0', bioconductor_options), + ('mixOmics', '5.2.0', ext_options), + ('minfi', '1.16.1', bioconductor_options), + ('FDb.InfiniumMethylation.hg19', '2.2.0', bioconductor_options), + ('methylumi', '2.16.0', bioconductor_options), + ('lumi', '2.22.1', bioconductor_options), + ('widgetTools', '1.48.0', bioconductor_options), + ('tkWidgets', '1.48.0', bioconductor_options), + ('Mfuzz', '2.30.0', bioconductor_options), + ('maSigPro', '1.42.0', bioconductor_options), + ('SPIA', '2.22.0', bioconductor_options), + ('Gviz', '1.14.7', bioconductor_options), + ('cummeRbund', '2.12.1', bioconductor_options), + ('GenomicFiles', '1.6.2', bioconductor_options), + ('derfinderHelper', '1.4.1', bioconductor_options), + ('derfinder', '1.4.4', bioconductor_options), + ('polyester', '1.6.0', bioconductor_options), + ('Rsubread', '1.20.5', bioconductor_options), + ('pcaMethods', '1.60.0', bioconductor_options), + ('marray', '1.48.0', bioconductor_options), + ('CGHbase', '1.30.0', bioconductor_options), + ('sigaR', '1.14.0', bioconductor_options), + ('HCsnip', '1.10.0', bioconductor_options), + ('metagenomeSeq', '1.12.0', bioconductor_options), + ('gdsfmt', '1.6.2', bioconductor_options), + ('SNPRelate', '1.4.2', bioconductor_options), +] + +modextrapaths = {'R_LIBS': ''} + +sanity_check_paths = { + 'files': [], + 'dirs': ['AnnotationDbi', 'BiocInstaller', 'GenomicFeatures'], +} + +moduleclass = 'bio' diff --git a/r/R-bundle-Bioconductor/R-bundle-Bioconductor-3.2-intel-2016a-R-3.2.3.eb b/r/R-bundle-Bioconductor/R-bundle-Bioconductor-3.2-intel-2016a-R-3.2.3.eb new file mode 100644 index 00000000..64a35be2 --- /dev/null +++ b/r/R-bundle-Bioconductor/R-bundle-Bioconductor-3.2-intel-2016a-R-3.2.3.eb @@ -0,0 +1,152 @@ +easyblock = 'Bundle' + +name = 'R-bundle-Bioconductor' +version = '3.2' + +homepage = 'http://www.r-project.org/' +description = """R is a free software environment for statistical computing and graphics.""" + +toolchain = {'name': 'intel', 'version': '2016a'} + +# these are extensions for R +exts_defaultclass = 'RPackage' +exts_filter = ("R -q --no-save", "library(%(ext_name)s)") + +rver = '3.2.3' +versionsuffix = '-R-%s' % rver +dependencies = [('R', rver)] + +name_tmpl = '%(name)s_%(version)s.tar.gz' +ext_options = { + 'source_urls': [ + 'http://cran.r-project.org/src/contrib/Archive/%(name)s', # package archive + 'http://cran.r-project.org/src/contrib/', # current version of packages + 'http://cran.freestatistics.org/src/contrib', # mirror alternative for current packages + ], + 'source_tmpl': name_tmpl, +} +bioconductor_options = { + 'source_urls': [ + 'http://www.bioconductor.org/packages/3.2/bioc/src/contrib/', + 'http://www.bioconductor.org/packages/3.2/data/annotation/src/contrib/', + 'http://www.bioconductor.org/packages/3.2/data/experiment/src/contrib/', + ], + 'source_tmpl': name_tmpl, +} + +# CRAN packages on which these Bioconductor packages depend are available in R module on which this depends +# !! order of packages is important !! +exts_list = [ + ('BiocGenerics', '0.16.1', bioconductor_options), + ('Biobase', '2.30.0', bioconductor_options), + ('S4Vectors', '0.8.11', bioconductor_options), + ('IRanges', '2.4.8', bioconductor_options), + ('GenomeInfoDb', '1.6.3', bioconductor_options), + ('AnnotationDbi', '1.32.3', bioconductor_options), + ('zlibbioc', '1.16.0', bioconductor_options), + ('XVector', '0.10.0', bioconductor_options), + ('Biostrings', '2.38.4', bioconductor_options), + ('GenomicRanges', '1.22.4', bioconductor_options), + ('BiocParallel', '1.4.3', bioconductor_options), + ('Rsamtools', '1.22.0', bioconductor_options), + ('lambda.r', '1.1.7', ext_options), + ('futile.options', '1.0.0', ext_options), + ('futile.logger', '1.4.1', ext_options), + ('SummarizedExperiment', '1.0.2', bioconductor_options), + ('GenomicAlignments', '1.6.3', bioconductor_options), + ('ShortRead', '1.28.0', bioconductor_options), + ('graph', '1.48.0', bioconductor_options), + ('affyio', '1.40.0', bioconductor_options), + ('BiocInstaller', '1.20.1', bioconductor_options), + ('preprocessCore', '1.32.0', bioconductor_options), + ('affy', '1.48.0', bioconductor_options), + ('GO.db', '3.2.2', bioconductor_options), + ('limma', '3.26.9', bioconductor_options), + ('RBGL', '1.46.0', bioconductor_options), + ('org.Hs.eg.db', '3.2.3', bioconductor_options), + ('AnnotationForge', '1.12.2', bioconductor_options), + ('KEGG.db', '3.2.2', bioconductor_options), + ('annaffy', '1.42.0', bioconductor_options), + ('gcrma', '2.42.0', bioconductor_options), + ('oligoClasses', '1.32.0', bioconductor_options), + ('edgeR', '3.12.1', bioconductor_options), + ('PFAM.db', '3.2.2', bioconductor_options), + ('perm', '1.0-0.0', ext_options), + ('baySeq', '2.4.1', bioconductor_options), + ('qvalue', '2.2.2', bioconductor_options), + ('impute', '1.44.0', bioconductor_options), + ('samr', '2.0', ext_options), + ('DEGseq', '1.24.0', bioconductor_options), + ('hgu133plus2.db', '3.2.2', bioconductor_options), + ('illuminaio', '0.12.0', bioconductor_options), + ('rtracklayer', '1.30.4', bioconductor_options), + ('biomaRt', '2.26.1', bioconductor_options), + ('GenomicFeatures', '1.22.13', bioconductor_options), + ('bumphunter', '1.10.0', bioconductor_options), + ('multtest', '2.26.0', bioconductor_options), + ('siggenes', '1.44.0', bioconductor_options), + ('DynDoc', '1.48.0', bioconductor_options), + ('genoset', '1.24.0', bioconductor_options), + ('NOISeq', '2.14.1', bioconductor_options), + ('Rgraphviz', '2.14.0', bioconductor_options), + ('RNASeqPower', '1.10.0', bioconductor_options), + ('annotate', '1.48.0', bioconductor_options), + ('GSEABase', '1.32.0', bioconductor_options), + ('genefilter', '1.52.1', bioconductor_options), + ('Category', '2.36.0', bioconductor_options), + ('GOstats', '2.36.0', bioconductor_options), + ('BSgenome', '1.38.0', bioconductor_options), + ('VariantAnnotation', '1.16.4', bioconductor_options), + ('biovizBase', '1.18.0', bioconductor_options), + ('OrganismDbi', '1.12.1', bioconductor_options), + ('ggbio', '1.18.5', bioconductor_options), + ('geneplotter', '1.48.0', bioconductor_options), + ('DESeq2', '1.10.1', bioconductor_options), + ('ReportingTools', '2.10.0', bioconductor_options), + ('affycoretools', '1.42.0', bioconductor_options), + ('TxDb.Hsapiens.UCSC.hg19.knownGene', '3.2.2', bioconductor_options), + ('Homo.sapiens', '1.3.1', bioconductor_options), + ('BSgenome.Hsapiens.UCSC.hg19', '1.4.0', bioconductor_options), + ('AgiMicroRna', '2.20.0', bioconductor_options), + ('GenomeGraphs', '1.30.0', bioconductor_options), + ('geneLenDataBase', '1.6.0', bioconductor_options), + ('goseq', '1.22.0', bioconductor_options), + ('KEGGREST', '1.10.1', bioconductor_options), + ('KEGGgraph', '1.28.0', bioconductor_options), + ('KEGGprofile', '1.12.0', bioconductor_options), + ('GEOquery', '2.36.0', bioconductor_options), + ('mixOmics', '5.2.0', ext_options), + ('minfi', '1.16.1', bioconductor_options), + ('FDb.InfiniumMethylation.hg19', '2.2.0', bioconductor_options), + ('methylumi', '2.16.0', bioconductor_options), + ('lumi', '2.22.1', bioconductor_options), + ('widgetTools', '1.48.0', bioconductor_options), + ('tkWidgets', '1.48.0', bioconductor_options), + ('Mfuzz', '2.30.0', bioconductor_options), + ('maSigPro', '1.42.0', bioconductor_options), + ('SPIA', '2.22.0', bioconductor_options), + ('Gviz', '1.14.7', bioconductor_options), + ('cummeRbund', '2.12.1', bioconductor_options), + ('GenomicFiles', '1.6.2', bioconductor_options), + ('derfinderHelper', '1.4.1', bioconductor_options), + ('derfinder', '1.4.4', bioconductor_options), + ('polyester', '1.6.0', bioconductor_options), + ('Rsubread', '1.20.5', bioconductor_options), + ('pcaMethods', '1.60.0', bioconductor_options), + ('marray', '1.48.0', bioconductor_options), + ('CGHbase', '1.30.0', bioconductor_options), + ('sigaR', '1.14.0', bioconductor_options), + ('HCsnip', '1.10.0', bioconductor_options), + ('metagenomeSeq', '1.12.0', bioconductor_options), + ('gdsfmt', '1.6.2', bioconductor_options), + ('SNPRelate', '1.4.2', bioconductor_options), +] + +modextrapaths = {'R_LIBS': ''} + +sanity_check_paths = { + 'files': [], + 'dirs': ['AnnotationDbi', 'BiocInstaller', 'GenomicFeatures'], +} + +moduleclass = 'bio' diff --git a/r/R/R-2.15.2-goolf-1.4.10-bare.eb b/r/R/R-2.15.2-goolf-1.4.10-bare.eb new file mode 100644 index 00000000..b12bc8e7 --- /dev/null +++ b/r/R/R-2.15.2-goolf-1.4.10-bare.eb @@ -0,0 +1,37 @@ +name = 'R' +version = '2.15.2' +versionsuffix = '-bare' # bare, as in no extensions included + +homepage = 'http://www.r-project.org/' +description = """R is a free software environment for statistical computing and graphics.""" + +toolchain = {'name': 'goolf', 'version': '1.4.10'} + +sources = [SOURCE_TAR_GZ] +source_urls = ['http://cran.us.r-project.org/src/base/R-%(version_major)s'] + +preconfigopts = 'BLAS_LIBS="$LIBBLAS" LAPACK_LIBS="$LIBLAPACK"' +configopts = "--with-lapack --with-blas --with-pic --enable-threads --with-x=no --enable-R-shlib" +# some recommended packages may fail in a parallel build (e.g. Matrix), and we're installing them anyway below +configopts += " --with-recommended-packages=no" + +dependencies = [ + ('libreadline', '6.2'), + ('ncurses', '5.9'), + ('libpng', '1.5.13'), # for plotting in R + ('Java', '1.7.0_10', '', True), # Java bindings are built if Java is found, might as well provide it +] + +exts_list = [] # just to make it explicit this module doesn't include any extensions + +sanity_check_paths = { + 'files': ['bin/%s' % x for x in ['R', 'Rscript']] + + ['lib64/R/include/%s' % x for x in ['Rconfig.h', 'Rdefines.h', 'Rembedded.h', + 'R.h', 'Rinterface.h', 'Rinternals.h', + 'Rmath.h', 'Rversion.h', 'S.h']] + + ['lib64/R/modules/%s' % x for x in ['internet.%s' % SHLIB_EXT, 'lapack.%s' % SHLIB_EXT, 'vfonts.%s' % SHLIB_EXT]] + + ['lib64/R/lib/libR.%s' % SHLIB_EXT], + 'dirs': [] +} + +moduleclass = 'math' diff --git a/r/R/R-2.15.2-goolf-1.4.10.eb b/r/R/R-2.15.2-goolf-1.4.10.eb new file mode 100644 index 00000000..561a883a --- /dev/null +++ b/r/R/R-2.15.2-goolf-1.4.10.eb @@ -0,0 +1,144 @@ +name = 'R' +version = '2.15.2' + +homepage = 'http://www.r-project.org/' +description = """R is a free software environment for statistical computing and graphics.""" + +toolchain = {'name': 'goolf', 'version': '1.4.10'} + +sources = [SOURCE_TAR_GZ] +source_urls = ['http://cran.us.r-project.org/src/base/R-%(version_major)s'] + +preconfigopts = 'BLAS_LIBS="$LIBBLAS" LAPACK_LIBS="$LIBLAPACK"' +configopts = "--with-lapack --with-blas --with-pic --enable-threads --with-x=no --enable-R-shlib" +# some recommended packages may fail in a parallel build (e.g. Matrix), and we're installing them anyway below +configopts += " --with-recommended-packages=no" + +dependencies = [ + ('libreadline', '6.2'), + ('ncurses', '5.9'), + ('libpng', '1.5.13'), # for plotting in R + ('Java', '1.7.0_10', '', True), # Java bindings are built if Java is found, might as well provide it +] + +sanity_check_paths = { + 'files': ['bin/%s' % x for x in ['R', 'Rscript']] + + ['lib64/R/include/%s' % x for x in ['Rconfig.h', 'Rdefines.h', 'Rembedded.h', + 'R.h', 'Rinterface.h', 'Rinternals.h', + 'Rmath.h', 'Rversion.h', 'S.h']] + + ['lib64/R/modules/%s' % x for x in ['internet.%s' % SHLIB_EXT, 'lapack.%s' % SHLIB_EXT, 'vfonts.%s' % SHLIB_EXT]] + + ['lib64/R/lib/libR.%s' % SHLIB_EXT], + 'dirs': [] +} + +name_tmpl = '%(name)s_%(version)s.tar.gz' +ext_options = { + 'source_urls': [ + 'http://cran.r-project.org/src/contrib/Archive/%(name)s', # package archive + 'http://cran.freestatistics.org/src/contrib', # alternative for packages + ], + 'source_tmpl': name_tmpl, +} +# Bioconductor packages have a different download url +bioconductor_options = { + 'source_urls': [ + 'http://www.bioconductor.org/packages/release/bioc/src/contrib/', + 'http://www.bioconductor.org/packages/2.11/bioc/src/contrib/', + ], + 'source_tmpl': name_tmpl, +} +# !! order of packages is important !! +exts_list = [ + # default libraries, only here to sanity check their presence + 'base', + 'datasets', + 'graphics', + 'grDevices', + 'grid', + 'methods', + 'splines', + 'stats', + 'stats4', + 'tools', + 'utils', + # non-standard libraries, should be specified with fixed versions! + ('Rmpi', '0.5-9', ext_options), + ('irace', '1.03', ext_options), + ('rJava', '0.9-4', ext_options), + ('lattice', '0.20-15', ext_options), + ('RColorBrewer', '1.0-5', ext_options), + ('latticeExtra', '0.6-24', ext_options), + ('Matrix', '1.0-12', ext_options), + ('png', '0.1-4', ext_options), + ('Rcpp', '0.10.3', ext_options), + ('quadprog', '1.5-5', ext_options), + ('BB', '2013.4-1', ext_options), + ('MASS', '7.3-22', ext_options), + ('rlecuyer', '0.3-3', ext_options), + ('class', '7.3-5', ext_options), + ('e1071', '1.6-1', ext_options), + ('nnet', '7.3-6', ext_options), + ('car', '2.0-16', ext_options), + ('colorspace', '1.2-2', ext_options), + ('robustbase', '0.9-7', ext_options), + ('sp', '0.9-91', ext_options), + ('vcd', '1.2-13', ext_options), + ('Rserve', '0.6-1', ext_options), + ('DBI', '0.2-6', ext_options), + ('RSQLite', '0.11.3', ext_options), + ('hwriter', '1.3', ext_options), + ('bitops', '1.0-5', ext_options), + ('BiocGenerics', '0.4.0', bioconductor_options), + ('Biobase', '2.18.0', bioconductor_options), + ('IRanges', '1.16.6', bioconductor_options), + ('AnnotationDbi', '1.20.7', bioconductor_options), + ('Biostrings', '2.26.3', bioconductor_options), + ('GenomicRanges', '1.10.7', bioconductor_options), + ('BSgenome', '1.26.1', bioconductor_options), + ('zlibbioc', '1.4.0', bioconductor_options), + ('Rsamtools', '1.10.2', bioconductor_options), + ('ShortRead', '1.16.4', bioconductor_options), + ('akima', '0.5-9', ext_options), + ('boot', '1.3-7', ext_options), + ('cluster', '1.14.4', ext_options), + ('coda', '0.16-1', ext_options), + ('codetools', '0.2-8', ext_options), + ('foreign', '0.8-53', ext_options), + ('gam', '1.08', ext_options), + ('nlme', '3.1-105', ext_options), + ('survival', '2.37-4', ext_options), + ('gamlss.data', '4.2-0', ext_options), + ('gamlss.dist', '4.2-0', ext_options), + ('gamlss', '4.2-0', ext_options), + ('gamlss.tr', '4.1-0', ext_options), + ('KernSmooth', '2.23-10', ext_options), + ('zoo', '1.7-9', ext_options), + ('lmtest', '0.9-31', ext_options), + ('mgcv', '1.7-22', ext_options), + ('mnormt', '1.4-5', ext_options), + ('mvtnorm', '0.9-9994', ext_options), + ('numDeriv', '2012.9-1', ext_options), + ('pscl', '1.04.4', ext_options), + ('rpart', '4.1-1', ext_options), + ('sandwich', '2.2-10', ext_options), + ('sfsmisc', '1.0-23', ext_options), + ('spatial', '7.3-5', ext_options), + ('VGAM', '0.9-1', ext_options), + ('waveslim', '1.7.1', ext_options), + ('xtable', '1.7-0', ext_options), + ('profileModel', '0.5-8', ext_options), + ('brglm', '0.5-7', ext_options), + ('deSolve', '1.10-6', ext_options), + ('odesolve', '0.9-9', ext_options), + ('tseriesChaos', '0.1-11', ext_options), + ('tseries', '0.10-31', ext_options), + ('neuRosim', '0.2-10', ext_options), + ('fastICA', '1.1-16', ext_options), + ('R.methodsS3', '1.4.2', ext_options), + ('R.oo', '1.13.0', ext_options), + ('R.matlab', '1.7.0', ext_options), + ('Rniftilib', '0.0-32', ext_options), + ('gbm', '2.1', ext_options), +] + +moduleclass = 'lang' diff --git a/r/R/R-2.15.2-ictce-5.3.0-bare.eb b/r/R/R-2.15.2-ictce-5.3.0-bare.eb new file mode 100644 index 00000000..d5888233 --- /dev/null +++ b/r/R/R-2.15.2-ictce-5.3.0-bare.eb @@ -0,0 +1,37 @@ +name = 'R' +version = '2.15.2' +versionsuffix = '-bare' # bare, as in no extensions included + +homepage = 'http://www.r-project.org/' +description = """R is a free software environment for statistical computing and graphics.""" + +toolchain = {'name': 'ictce', 'version': '5.3.0'} + +sources = [SOURCE_TAR_GZ] +source_urls = ['http://cran.us.r-project.org/src/base/R-%(version_major)s'] + +preconfigopts = 'BLAS_LIBS="$LIBBLAS" LAPACK_LIBS="$LIBLAPACK"' +configopts = "--with-lapack --with-blas --with-pic --enable-threads --with-x=no --enable-R-shlib" +# some recommended packages may fail in a parallel build (e.g. Matrix), and we're installing them anyway below +configopts += " --with-recommended-packages=no" + +dependencies = [ + ('libreadline', '6.2'), + ('ncurses', '5.9'), + ('libpng', '1.5.13'), # for plotting in R + ('Java', '1.7.0_10', '', True), # Java bindings are built if Java is found, might as well provide it +] + +exts_list = [] # just to make it explicit this module doesn't include any extensions + +sanity_check_paths = { + 'files': ['bin/%s' % x for x in ['R', 'Rscript']] + + ['lib64/R/include/%s' % x for x in ['Rconfig.h', 'Rdefines.h', 'Rembedded.h', + 'R.h', 'Rinterface.h', 'Rinternals.h', + 'Rmath.h', 'Rversion.h', 'S.h']] + + ['lib64/R/modules/%s' % x for x in ['internet.%s' % SHLIB_EXT, 'lapack.%s' % SHLIB_EXT, 'vfonts.%s' % SHLIB_EXT]] + + ['lib64/R/lib/libR.%s' % SHLIB_EXT], + 'dirs': [] +} + +moduleclass = 'math' diff --git a/r/R/R-2.15.2-ictce-5.3.0.eb b/r/R/R-2.15.2-ictce-5.3.0.eb new file mode 100644 index 00000000..8ba729ce --- /dev/null +++ b/r/R/R-2.15.2-ictce-5.3.0.eb @@ -0,0 +1,144 @@ +name = 'R' +version = '2.15.2' + +homepage = 'http://www.r-project.org/' +description = """R is a free software environment for statistical computing and graphics.""" + +toolchain = {'name': 'ictce', 'version': '5.3.0'} + +sources = [SOURCE_TAR_GZ] +source_urls = ['http://cran.us.r-project.org/src/base/R-%(version_major)s'] + +preconfigopts = 'BLAS_LIBS="$LIBBLAS" LAPACK_LIBS="$LIBLAPACK"' +configopts = "--with-lapack --with-blas --with-pic --enable-threads --with-x=no --enable-R-shlib" +# some recommended packages may fail in a parallel build (e.g. Matrix), and we're installing them anyway below +configopts += " --with-recommended-packages=no" + +dependencies = [ + ('libreadline', '6.2'), + ('ncurses', '5.9'), + ('libpng', '1.5.13'), # for plotting in R + ('Java', '1.7.0_10', '', True), # Java bindings are built if Java is found, might as well provide it +] + +sanity_check_paths = { + 'files': ['bin/%s' % x for x in ['R', 'Rscript']] + + ['lib64/R/include/%s' % x for x in ['Rconfig.h', 'Rdefines.h', 'Rembedded.h', + 'R.h', 'Rinterface.h', 'Rinternals.h', + 'Rmath.h', 'Rversion.h', 'S.h']] + + ['lib64/R/modules/%s' % x for x in ['internet.%s' % SHLIB_EXT, 'lapack.%s' % SHLIB_EXT, 'vfonts.%s' % SHLIB_EXT]] + + ['lib64/R/lib/libR.%s' % SHLIB_EXT], + 'dirs': [] +} + +name_tmpl = '%(name)s_%(version)s.tar.gz' +ext_options = { + 'source_urls': [ + 'http://cran.r-project.org/src/contrib/Archive/%(name)s', # package archive + 'http://cran.freestatistics.org/src/contrib', # alternative for packages + ], + 'source_tmpl': name_tmpl, +} +# Bioconductor packages have a different download url +bioconductor_options = { + 'source_urls': [ + 'http://www.bioconductor.org/packages/release/bioc/src/contrib/', + 'http://www.bioconductor.org/packages/2.11/bioc/src/contrib/', + ], + 'source_tmpl': name_tmpl, +} +# !! order of packages is important !! +exts_list = [ + # default libraries, only here to sanity check their presence + 'base', + 'datasets', + 'graphics', + 'grDevices', + 'grid', + 'methods', + 'splines', + 'stats', + 'stats4', + 'tools', + 'utils', + # non-standard libraries, should be specified with fixed versions! + ('Rmpi', '0.5-9', ext_options), + ('irace', '1.03', ext_options), + ('rJava', '0.9-4', ext_options), + ('lattice', '0.20-15', ext_options), + ('RColorBrewer', '1.0-5', ext_options), + ('latticeExtra', '0.6-24', ext_options), + ('Matrix', '1.0-12', ext_options), + ('png', '0.1-4', ext_options), + ('Rcpp', '0.10.3', ext_options), + ('quadprog', '1.5-5', ext_options), + ('BB', '2013.4-1', ext_options), + ('MASS', '7.3-22', ext_options), + ('rlecuyer', '0.3-3', ext_options), + ('class', '7.3-5', ext_options), + ('e1071', '1.6-1', ext_options), + ('nnet', '7.3-6', ext_options), + ('car', '2.0-16', ext_options), + ('colorspace', '1.2-2', ext_options), + ('robustbase', '0.9-7', ext_options), + ('sp', '0.9-91', ext_options), + ('vcd', '1.2-13', ext_options), + ('Rserve', '0.6-1', ext_options), + ('DBI', '0.2-6', ext_options), + ('RSQLite', '0.11.3', ext_options), + ('hwriter', '1.3', ext_options), + ('bitops', '1.0-5', ext_options), + ('BiocGenerics', '0.4.0', bioconductor_options), + ('Biobase', '2.18.0', bioconductor_options), + ('IRanges', '1.16.6', bioconductor_options), + ('AnnotationDbi', '1.20.7', bioconductor_options), + ('Biostrings', '2.26.3', bioconductor_options), + ('GenomicRanges', '1.10.7', bioconductor_options), + ('BSgenome', '1.26.1', bioconductor_options), + ('zlibbioc', '1.4.0', bioconductor_options), + ('Rsamtools', '1.10.2', bioconductor_options), + ('ShortRead', '1.16.4', bioconductor_options), + ('akima', '0.5-9', ext_options), + ('boot', '1.3-7', ext_options), + ('cluster', '1.14.4', ext_options), + ('coda', '0.16-1', ext_options), + ('codetools', '0.2-8', ext_options), + ('foreign', '0.8-53', ext_options), + ('gam', '1.08', ext_options), + ('nlme', '3.1-105', ext_options), + ('survival', '2.37-4', ext_options), + ('gamlss.data', '4.2-0', ext_options), + ('gamlss.dist', '4.2-0', ext_options), + ('gamlss', '4.2-0', ext_options), + ('gamlss.tr', '4.1-0', ext_options), + ('KernSmooth', '2.23-10', ext_options), + ('zoo', '1.7-9', ext_options), + ('lmtest', '0.9-31', ext_options), + ('mgcv', '1.7-22', ext_options), + ('mnormt', '1.4-5', ext_options), + ('mvtnorm', '0.9-9994', ext_options), + ('numDeriv', '2012.9-1', ext_options), + ('pscl', '1.04.4', ext_options), + ('rpart', '4.1-1', ext_options), + ('sandwich', '2.2-10', ext_options), + ('sfsmisc', '1.0-23', ext_options), + ('spatial', '7.3-5', ext_options), + ('VGAM', '0.9-1', ext_options), + ('waveslim', '1.7.1', ext_options), + ('xtable', '1.7-0', ext_options), + ('profileModel', '0.5-8', ext_options), + ('brglm', '0.5-7', ext_options), + ('deSolve', '1.10-6', ext_options), + ('odesolve', '0.9-9', ext_options), + ('tseriesChaos', '0.1-11', ext_options), + ('tseries', '0.10-31', ext_options), + ('neuRosim', '0.2-10', ext_options), + ('fastICA', '1.1-16', ext_options), + ('R.methodsS3', '1.4.2', ext_options), + ('R.oo', '1.13.0', ext_options), + ('R.matlab', '1.7.0', ext_options), + ('Rniftilib', '0.0-32', ext_options), + ('gbm', '2.1', ext_options), +] + +moduleclass = 'lang' diff --git a/r/R/R-2.15.3-goolf-1.4.10.eb b/r/R/R-2.15.3-goolf-1.4.10.eb new file mode 100644 index 00000000..e96756b8 --- /dev/null +++ b/r/R/R-2.15.3-goolf-1.4.10.eb @@ -0,0 +1,149 @@ +name = 'R' +version = '2.15.3' + +homepage = 'http://www.r-project.org/' +description = """R is a free software environment for statistical computing and graphics.""" + +toolchain = {'name': 'goolf', 'version': '1.4.10'} + +sources = [SOURCE_TAR_GZ] +source_urls = ['http://cran.us.r-project.org/src/base/R-%(version_major)s'] + +preconfigopts = 'BLAS_LIBS="$LIBBLAS" LAPACK_LIBS="$LIBLAPACK"' +configopts = "--with-lapack --with-blas --with-pic --enable-threads --with-x=no --enable-R-shlib" +# some recommended packages may fail in a parallel build (e.g. Matrix), and we're installing them anyway below +configopts += " --with-recommended-packages=no" + +dependencies = [ + ('libreadline', '6.2'), + ('ncurses', '5.9'), + ('libpng', '1.6.2'), # for plotting in R + ('Java', '1.7.0_15', '', True), # Java bindings are built if Java is found, might as well provide it +] + +sanity_check_paths = { + 'files': ['bin/%s' % x for x in ['R', 'Rscript']] + + ['lib64/R/include/%s' % x for x in ['Rconfig.h', 'Rdefines.h', 'Rembedded.h', + 'R.h', 'Rinterface.h', 'Rinternals.h', + 'Rmath.h', 'Rversion.h', 'S.h']] + + ['lib64/R/modules/%s' % x for x in ['internet.%s' % SHLIB_EXT, 'lapack.%s' % SHLIB_EXT, 'vfonts.%s' % SHLIB_EXT]] + + ['lib64/R/lib/libR.%s' % SHLIB_EXT], + 'dirs': [] +} + +name_tmpl = '%(name)s_%(version)s.tar.gz' +ext_options = { + 'source_urls': [ + 'http://cran.r-project.org/src/contrib/Archive/%(name)s', # package archive + 'http://cran.freestatistics.org/src/contrib', # alternative for packages + ], + 'source_tmpl': name_tmpl, +} +# Bioconductor packages have a different download url +bioconductor_options = { + 'source_urls': [ + 'http://www.bioconductor.org/packages/release/bioc/src/contrib/', + 'http://www.bioconductor.org/packages/2.12/bioc/src/contrib/', + ], + 'source_tmpl': name_tmpl, +} +# !! order of packages is important !! +exts_list = [ + # default libraries, only here to sanity check their presence + 'base', + 'datasets', + 'graphics', + 'grDevices', + 'grid', + 'methods', + 'splines', + 'stats', + 'stats4', + 'tools', + 'utils', + # non-standard libraries, should be specified with fixed versions! + ('Rmpi', '0.5-9', ext_options), + ('irace', '1.03', ext_options), + ('rJava', '0.9-4', ext_options), + ('lattice', '0.20-15', ext_options), + ('RColorBrewer', '1.0-5', ext_options), + ('latticeExtra', '0.6-24', ext_options), + ('Matrix', '1.0-12', ext_options), + ('png', '0.1-4', ext_options), + ('Rcpp', '0.10.3', ext_options), + ('quadprog', '1.5-5', ext_options), + ('BB', '2013.4-1', ext_options), + ('rlecuyer', '0.3-3', ext_options), + ('snow', '0.3-12', ext_options), + ('MASS', '7.3-23', ext_options), + ('class', '7.3-5', ext_options), + ('e1071', '1.6-1', ext_options), + ('nnet', '7.3-6', ext_options), + ('car', '2.0-17', ext_options), + ('colorspace', '1.2-2', ext_options), + ('robustbase', '0.9-7', ext_options), + ('sp', '0.9-91', ext_options), + ('vcd', '1.2-13', ext_options), + ('snowfall', '1.84-4', ext_options), + ('logistf', '1.10', ext_options), + ('Rserve', '0.6-1', ext_options), + ('akima', '0.5-10', ext_options), + ('bitops', '1.0-5', ext_options), + ('boot', '1.3-7', ext_options), + ('cluster', '1.14.4', ext_options), + ('coda', '0.16-1', ext_options), + ('codetools', '0.2-8', ext_options), + ('DBI', '0.2-7', ext_options), + ('foreign', '0.8-54', ext_options), + ('nlme', '3.1-108', ext_options), + ('survival', '2.37-4', ext_options), + ('gam', '1.08', ext_options), + ('gamlss.data', '4.2-0', ext_options), + ('gamlss.dist', '4.2-0', ext_options), + ('gamlss', '4.2-0', ext_options), + ('gamlss.tr', '4.1-0', ext_options), + ('hwriter', '1.3', ext_options), + ('KernSmooth', '2.23-10', ext_options), + ('zoo', '1.7-9', ext_options), + ('lmtest', '0.9-31', ext_options), + ('mgcv', '1.7-23', ext_options), + ('mnormt', '1.4-5', ext_options), + ('mvtnorm', '0.9-9994', ext_options), + ('numDeriv', '2012.9-1', ext_options), + ('pscl', '1.04.4', ext_options), + ('rpart', '4.1-1', ext_options), + ('RSQLite', '0.11.3', ext_options), + ('sandwich', '2.2-10', ext_options), + ('sfsmisc', '1.0-23', ext_options), + ('spatial', '7.3-5', ext_options), + ('VGAM', '0.9-1', ext_options), + ('waveslim', '1.7.1', ext_options), + ('xtable', '1.7-1', ext_options), + ('profileModel', '0.5-8', ext_options), + ('brglm', '0.5-7', ext_options), + ('deSolve', '1.10-6', ext_options), + ('odesolve', '0.9-9', ext_options), + ('tseriesChaos', '0.1-11', ext_options), + ('tseries', '0.10-32', ext_options), + ('neuRosim', '0.2-10', ext_options), + ('fastICA', '1.1-16', ext_options), + ('R.methodsS3', '1.4.2', ext_options), + ('R.oo', '1.13.0', ext_options), + ('R.matlab', '1.7.0', ext_options), + ('Rniftilib', '0.0-32', ext_options), + ('BiocGenerics', '0.6.0', bioconductor_options), + ('Biobase', '2.20.0', bioconductor_options), + ('IRanges', '1.18.1', bioconductor_options), + ('AnnotationDbi', '1.22.5', bioconductor_options), + ('Biostrings', '2.28.0', bioconductor_options), + ('GenomicRanges', '1.12.4', bioconductor_options), + ('BSgenome', '1.28.0', bioconductor_options), + ('zlibbioc', '1.6.0', bioconductor_options), + ('Rsamtools', '1.12.3', bioconductor_options), + ('ShortRead', '1.18.0', bioconductor_options), + ('graph', '1.38.0', bioconductor_options), + ('igraph0', '0.5.7', ext_options), + ('gbm', '2.1', ext_options), +] + +moduleclass = 'lang' diff --git a/r/R/R-2.15.3-ictce-5.3.0.eb b/r/R/R-2.15.3-ictce-5.3.0.eb new file mode 100644 index 00000000..86f63c24 --- /dev/null +++ b/r/R/R-2.15.3-ictce-5.3.0.eb @@ -0,0 +1,149 @@ +name = 'R' +version = '2.15.3' + +homepage = 'http://www.r-project.org/' +description = """R is a free software environment for statistical computing and graphics.""" + +toolchain = {'name': 'ictce', 'version': '5.3.0'} + +sources = [SOURCE_TAR_GZ] +source_urls = ['http://cran.us.r-project.org/src/base/R-%(version_major)s'] + +preconfigopts = 'BLAS_LIBS="$LIBBLAS" LAPACK_LIBS="$LIBLAPACK"' +configopts = "--with-lapack --with-blas --with-pic --enable-threads --with-x=no --enable-R-shlib" +# some recommended packages may fail in a parallel build (e.g. Matrix), and we're installing them anyway below +configopts += " --with-recommended-packages=no" + +dependencies = [ + ('libreadline', '6.2'), + ('ncurses', '5.9'), + ('libpng', '1.6.2'), # for plotting in R + ('Java', '1.7.0_15', '', True), # Java bindings are built if Java is found, might as well provide it +] + +sanity_check_paths = { + 'files': ['bin/%s' % x for x in ['R', 'Rscript']] + + ['lib64/R/include/%s' % x for x in ['Rconfig.h', 'Rdefines.h', 'Rembedded.h', + 'R.h', 'Rinterface.h', 'Rinternals.h', + 'Rmath.h', 'Rversion.h', 'S.h']] + + ['lib64/R/modules/%s' % x for x in ['internet.%s' % SHLIB_EXT, 'lapack.%s' % SHLIB_EXT, 'vfonts.%s' % SHLIB_EXT]] + + ['lib64/R/lib/libR.%s' % SHLIB_EXT], + 'dirs': [] +} + +name_tmpl = '%(name)s_%(version)s.tar.gz' +ext_options = { + 'source_urls': [ + 'http://cran.r-project.org/src/contrib/Archive/%(name)s', # package archive + 'http://cran.freestatistics.org/src/contrib', # alternative for packages + ], + 'source_tmpl': name_tmpl, +} +# Bioconductor packages have a different download url +bioconductor_options = { + 'source_urls': [ + 'http://www.bioconductor.org/packages/release/bioc/src/contrib/', + 'http://www.bioconductor.org/packages/2.12/bioc/src/contrib/', + ], + 'source_tmpl': name_tmpl, +} +# !! order of packages is important !! +exts_list = [ + # default libraries, only here to sanity check their presence + 'base', + 'datasets', + 'graphics', + 'grDevices', + 'grid', + 'methods', + 'splines', + 'stats', + 'stats4', + 'tools', + 'utils', + # non-standard libraries, should be specified with fixed versions! + ('Rmpi', '0.5-9', ext_options), + ('irace', '1.03', ext_options), + ('rJava', '0.9-4', ext_options), + ('lattice', '0.20-15', ext_options), + ('RColorBrewer', '1.0-5', ext_options), + ('latticeExtra', '0.6-24', ext_options), + ('Matrix', '1.0-12', ext_options), + ('png', '0.1-4', ext_options), + ('Rcpp', '0.10.3', ext_options), + ('quadprog', '1.5-5', ext_options), + ('BB', '2013.4-1', ext_options), + ('rlecuyer', '0.3-3', ext_options), + ('snow', '0.3-12', ext_options), + ('MASS', '7.3-23', ext_options), + ('class', '7.3-5', ext_options), + ('e1071', '1.6-1', ext_options), + ('nnet', '7.3-6', ext_options), + ('car', '2.0-17', ext_options), + ('colorspace', '1.2-2', ext_options), + ('robustbase', '0.9-7', ext_options), + ('sp', '0.9-91', ext_options), + ('vcd', '1.2-13', ext_options), + ('snowfall', '1.84-4', ext_options), + ('logistf', '1.10', ext_options), + ('Rserve', '0.6-1', ext_options), + ('akima', '0.5-10', ext_options), + ('bitops', '1.0-5', ext_options), + ('boot', '1.3-7', ext_options), + ('cluster', '1.14.4', ext_options), + ('coda', '0.16-1', ext_options), + ('codetools', '0.2-8', ext_options), + ('DBI', '0.2-7', ext_options), + ('foreign', '0.8-54', ext_options), + ('nlme', '3.1-108', ext_options), + ('survival', '2.37-4', ext_options), + ('gam', '1.08', ext_options), + ('gamlss.data', '4.2-0', ext_options), + ('gamlss.dist', '4.2-0', ext_options), + ('gamlss', '4.2-0', ext_options), + ('gamlss.tr', '4.1-0', ext_options), + ('hwriter', '1.3', ext_options), + ('KernSmooth', '2.23-10', ext_options), + ('zoo', '1.7-9', ext_options), + ('lmtest', '0.9-31', ext_options), + ('mgcv', '1.7-23', ext_options), + ('mnormt', '1.4-5', ext_options), + ('mvtnorm', '0.9-9994', ext_options), + ('numDeriv', '2012.9-1', ext_options), + ('pscl', '1.04.4', ext_options), + ('rpart', '4.1-1', ext_options), + ('RSQLite', '0.11.3', ext_options), + ('sandwich', '2.2-10', ext_options), + ('sfsmisc', '1.0-23', ext_options), + ('spatial', '7.3-5', ext_options), + ('VGAM', '0.9-1', ext_options), + ('waveslim', '1.7.1', ext_options), + ('xtable', '1.7-1', ext_options), + ('profileModel', '0.5-8', ext_options), + ('brglm', '0.5-7', ext_options), + ('deSolve', '1.10-6', ext_options), + ('odesolve', '0.9-9', ext_options), + ('tseriesChaos', '0.1-11', ext_options), + ('tseries', '0.10-32', ext_options), + ('neuRosim', '0.2-10', ext_options), + ('fastICA', '1.1-16', ext_options), + ('R.methodsS3', '1.4.2', ext_options), + ('R.oo', '1.13.0', ext_options), + ('R.matlab', '1.7.0', ext_options), + ('Rniftilib', '0.0-32', ext_options), + ('BiocGenerics', '0.6.0', bioconductor_options), + ('Biobase', '2.20.0', bioconductor_options), + ('IRanges', '1.18.1', bioconductor_options), + ('AnnotationDbi', '1.22.5', bioconductor_options), + ('Biostrings', '2.28.0', bioconductor_options), + ('GenomicRanges', '1.12.4', bioconductor_options), + ('BSgenome', '1.28.0', bioconductor_options), + ('zlibbioc', '1.6.0', bioconductor_options), + ('Rsamtools', '1.12.3', bioconductor_options), + ('ShortRead', '1.18.0', bioconductor_options), + ('graph', '1.38.0', bioconductor_options), + ('igraph0', '0.5.7', ext_options), + ('gbm', '2.1', ext_options), +] + +moduleclass = 'lang' diff --git a/r/R/R-3.0.1-goolf-1.4.10-bare.eb b/r/R/R-3.0.1-goolf-1.4.10-bare.eb new file mode 100644 index 00000000..a7f037b0 --- /dev/null +++ b/r/R/R-3.0.1-goolf-1.4.10-bare.eb @@ -0,0 +1,37 @@ +name = 'R' +version = '3.0.1' +versionsuffix = '-bare' # bare, as in no extensions included + +homepage = 'http://www.r-project.org/' +description = """R is a free software environment for statistical computing and graphics.""" + +toolchain = {'name': 'goolf', 'version': '1.4.10'} + +sources = [SOURCE_TAR_GZ] +source_urls = ['http://cran.us.r-project.org/src/base/R-%(version_major)s'] + +preconfigopts = 'BLAS_LIBS="$LIBBLAS" LAPACK_LIBS="$LIBLAPACK"' +configopts = "--with-lapack --with-blas --with-pic --enable-threads --with-x=no --enable-R-shlib" +# some recommended packages may fail in a parallel build (e.g. Matrix), and we're installing them anyway below +configopts += " --with-recommended-packages=no" + +dependencies = [ + ('libreadline', '6.2'), + ('ncurses', '5.9'), + ('libpng', '1.6.2'), # for plotting in R + ('Java', '1.7.0_21', '', True), # Java bindings are built if Java is found, might as well provide it +] + +exts_list = [] # just to make it explicit this module doesn't include any extensions + +sanity_check_paths = { + 'files': ['bin/%s' % x for x in ['R', 'Rscript']] + + ['lib64/R/include/%s' % x for x in ['Rconfig.h', 'Rdefines.h', 'Rembedded.h', + 'R.h', 'Rinterface.h', 'Rinternals.h', + 'Rmath.h', 'Rversion.h', 'S.h']] + + ['lib64/R/modules/%s' % x for x in ['internet.%s' % SHLIB_EXT, 'lapack.%s' % SHLIB_EXT, 'vfonts.%s' % SHLIB_EXT]] + + ['lib64/R/lib/libR.%s' % SHLIB_EXT], + 'dirs': [] +} + +moduleclass = 'lang' diff --git a/r/R/R-3.0.1-ictce-5.3.0-bare.eb b/r/R/R-3.0.1-ictce-5.3.0-bare.eb new file mode 100644 index 00000000..c79a8bd4 --- /dev/null +++ b/r/R/R-3.0.1-ictce-5.3.0-bare.eb @@ -0,0 +1,37 @@ +name = 'R' +version = '3.0.1' +versionsuffix = '-bare' # bare, as in no extensions included + +homepage = 'http://www.r-project.org/' +description = """R is a free software environment for statistical computing and graphics.""" + +toolchain = {'name': 'ictce', 'version': '5.3.0'} + +sources = [SOURCE_TAR_GZ] +source_urls = ['http://cran.us.r-project.org/src/base/R-%(version_major)s'] + +preconfigopts = 'BLAS_LIBS="$LIBBLAS" LAPACK_LIBS="$LIBLAPACK"' +configopts = "--with-lapack --with-blas --with-pic --enable-threads --with-x=no --enable-R-shlib" +# some recommended packages may fail in a parallel build (e.g. Matrix), and we're installing them anyway below +configopts += " --with-recommended-packages=no" + +dependencies = [ + ('libreadline', '6.2'), + ('ncurses', '5.9'), + ('libpng', '1.6.2'), # for plotting in R + ('Java', '1.7.0_21', '', True), # Java bindings are built if Java is found, might as well provide it +] + +exts_list = [] # just to make it explicit this module doesn't include any extensions + +sanity_check_paths = { + 'files': ['bin/%s' % x for x in ['R', 'Rscript']] + + ['lib64/R/include/%s' % x for x in ['Rconfig.h', 'Rdefines.h', 'Rembedded.h', + 'R.h', 'Rinterface.h', 'Rinternals.h', + 'Rmath.h', 'Rversion.h', 'S.h']] + + ['lib64/R/modules/%s' % x for x in ['internet.%s' % SHLIB_EXT, 'lapack.%s' % SHLIB_EXT, 'vfonts.%s' % SHLIB_EXT]] + + ['lib64/R/lib/libR.%s' % SHLIB_EXT], + 'dirs': [] +} + +moduleclass = 'lang' diff --git a/r/R/R-3.0.2-goolf-1.4.10.eb b/r/R/R-3.0.2-goolf-1.4.10.eb new file mode 100644 index 00000000..3c069b9b --- /dev/null +++ b/r/R/R-3.0.2-goolf-1.4.10.eb @@ -0,0 +1,175 @@ +name = 'R' +version = '3.0.2' + +homepage = 'http://www.r-project.org/' +description = """R is a free software environment for statistical computing and graphics.""" + +toolchain = {'name': 'goolf', 'version': '1.4.10'} + +sources = [SOURCE_TAR_GZ] +source_urls = ['http://cran.us.r-project.org/src/base/R-%(version_major)s'] + +preconfigopts = 'BLAS_LIBS="$LIBBLAS" LAPACK_LIBS="$LIBLAPACK"' +configopts = "--with-lapack --with-blas --with-pic --enable-threads --with-x=no --enable-R-shlib" +# some recommended packages may fail in a parallel build (e.g. Matrix), and we're installing them anyway below +configopts += " --with-recommended-packages=no" + +dependencies = [ + ('libreadline', '6.2'), + ('ncurses', '5.9'), + ('libpng', '1.6.6'), # for plotting in R + ('Java', '1.7.0_21', '', True), # Java bindings are built if Java is found, might as well provide it +] + +sanity_check_paths = { + 'files': ['bin/%s' % x for x in ['R', 'Rscript']] + + ['lib64/R/include/%s' % x for x in ['Rconfig.h', 'Rdefines.h', 'Rembedded.h', + 'R.h', 'Rinterface.h', 'Rinternals.h', + 'Rmath.h', 'Rversion.h', 'S.h']] + + ['lib64/R/modules/%s' % x for x in ['internet.%s' % SHLIB_EXT, 'lapack.%s' % SHLIB_EXT, 'vfonts.%s' % SHLIB_EXT]] + + ['lib64/R/lib/libR.%s' % SHLIB_EXT], + 'dirs': [] +} + +name_tmpl = '%(name)s_%(version)s.tar.gz' +ext_options = { + 'source_urls': [ + 'http://cran.r-project.org/src/contrib/Archive/%(name)s', # package archive + 'http://cran.freestatistics.org/src/contrib', # alternative for packages + ], + 'source_tmpl': name_tmpl, +} +# Bioconductor packages have a different download url +bioconductor_options = { + 'source_urls': [ + 'http://www.bioconductor.org/packages/release/bioc/src/contrib/', + 'http://www.bioconductor.org/packages/2.13/bioc/src/contrib/', + ], + 'source_tmpl': name_tmpl, +} + +# some packages seem to only be in rforge, not in cran +rforge_options = { + 'source_urls': ['http://download.r-forge.r-project.org/src/contrib/'], + 'source_tmpl': name_tmpl, +} + + +# !! order of packages is important !! +exts_list = [ + # default libraries, only here to sanity check their presence + 'base', + 'datasets', + 'graphics', + 'grDevices', + 'grid', + 'methods', + 'splines', + 'stats', + 'stats4', + 'tools', + 'utils', + # non-standard libraries, should be specified with fixed versions! + ('irace', '1.04', ext_options), + ('rJava', '0.9-4', ext_options), + ('lattice', '0.20-24', ext_options), + ('RColorBrewer', '1.0-5', ext_options), + ('latticeExtra', '0.6-26', ext_options), + ('Matrix', '1.1-0', ext_options), + ('png', '0.1-6', ext_options), + ('Rcpp', '0.10.6', ext_options), + ('quadprog', '1.5-5', ext_options), + ('BB', '2013.4-1', ext_options), + ('rlecuyer', '0.3-3', ext_options), + ('snow', '0.3-13', ext_options), + ('MASS', '7.3-29', ext_options), + ('class', '7.3-9', ext_options), + ('e1071', '1.6-1', ext_options), + ('nnet', '7.3-7', ext_options), + ('car', '2.0-19', ext_options), + ('colorspace', '1.2-4', ext_options), + ('robustbase', '0.9-10', ext_options), + ('sp', '1.0-14', ext_options), + ('vcd', '1.3-1', ext_options), + ('snowfall', '1.84-4', ext_options), + ('rpart', '4.1-3', ext_options), + ('mice', '2.18', ext_options), + ('nlme', '3.1-111', ext_options), + ('mgcv', '1.7-27', ext_options), + ('logistf', '1.21', ext_options), + ('akima', '0.5-11', ext_options), + ('bitops', '1.0-6', ext_options), + ('boot', '1.3-9', ext_options), + ('cluster', '1.14.4', ext_options), + ('coda', '0.16-1', ext_options), + ('codetools', '0.2-8', ext_options), + ('DBI', '0.2-7', ext_options), + ('foreign', '0.8-57', ext_options), + ('survival', '2.37-4', ext_options), + ('gam', '1.09', ext_options), + ('gamlss.data', '4.2-6', ext_options), + ('gamlss.dist', '4.2-0', ext_options), + ('hwriter', '1.3', ext_options), + ('KernSmooth', '2.23-10', ext_options), + ('zoo', '1.7-10', ext_options), + ('lmtest', '0.9-32', ext_options), + ('mnormt', '1.4-5', ext_options), + ('mvtnorm', '0.9-9996', ext_options), + ('numDeriv', '2012.9-1', ext_options), + ('pscl', '1.04.4', ext_options), + ('RSQLite', '0.11.4', ext_options), + ('sandwich', '2.3-0', ext_options), + ('sfsmisc', '1.0-24', ext_options), + ('spatial', '7.3-7', ext_options), + ('VGAM', '0.9-3', ext_options), + ('waveslim', '1.7.1', ext_options), + ('xtable', '1.7-1', ext_options), + ('profileModel', '0.5-9', ext_options), + ('brglm', '0.5-9', ext_options), + ('deSolve', '1.10-8', ext_options), + ('odesolve', '0.9-9', ext_options), + ('tseriesChaos', '0.1-13', ext_options), + ('tseries', '0.10-32', ext_options), + ('neuRosim', '0.2-10', ext_options), + ('fastICA', '1.2-0', ext_options), + ('R.methodsS3', '1.5.2', ext_options), + ('R.oo', '1.15.8', ext_options), + ('R.matlab', '2.0.5', ext_options), + ('Rniftilib', '0.0-32', ext_options), + ('BiocGenerics', '0.8.0', bioconductor_options), + ('Biobase', '2.22.0', bioconductor_options), + ('IRanges', '1.20.5', bioconductor_options), + ('AnnotationDbi', '1.24.0', bioconductor_options), + ('XVector', '0.2.0', bioconductor_options), + ('Biostrings', '2.30.0', bioconductor_options), + ('GenomicRanges', '1.14.3', bioconductor_options), + ('BSgenome', '1.30.0', bioconductor_options), + ('zlibbioc', '1.8.0', bioconductor_options), + ('Rsamtools', '1.14.1', bioconductor_options), + ('ShortRead', '1.20.0', bioconductor_options), + ('graph', '1.40.0', bioconductor_options), + ('igraph0', '0.5.7', ext_options), + ('gbm', '2.1', ext_options), + ('plyr', '1.8', ext_options), + ('dichromat', '2.0-0', ext_options), + ('Formula', '1.1-1', ext_options), + ('Hmisc', '3.13-0', ext_options), + ('stringr', '0.6.2', ext_options), + ('munsell', '0.4.2', ext_options), + ('labeling', '0.2', ext_options), + ('scales', '0.2.3', ext_options), + ('fastcluster', '1.1.11', ext_options), + ('reshape2', '1.2.2', ext_options), + ('digest', '0.6.3', ext_options), + ('gtable', '0.1.2', ext_options), + ('proto', '0.3-10', ext_options), + ('ggplot2', '0.9.3.1', ext_options), + ('leaps', '2.9', ext_options), + ('survival', '2.37-4', ext_options), + ('speff2trial', '1.0.4', ext_options), + ('nleqslv', '2.1', ext_options), + ('glmnet', '1.9-5', ext_options), + ('pim', '1.1.5.4', rforge_options), +] + +moduleclass = 'lang' diff --git a/r/R/R-3.0.2-ictce-5.3.0-bare.eb b/r/R/R-3.0.2-ictce-5.3.0-bare.eb new file mode 100644 index 00000000..8d427ebb --- /dev/null +++ b/r/R/R-3.0.2-ictce-5.3.0-bare.eb @@ -0,0 +1,36 @@ +name = 'R' +version = '3.0.2' +versionsuffix = '-bare' # bare, as in no extensions included + +homepage = 'http://www.r-project.org/' +description = """R is a free software environment for statistical computing and graphics.""" + +toolchain = {'name': 'ictce', 'version': '5.3.0'} + +sources = [SOURCE_TAR_GZ] +source_urls = ['http://cran.us.r-project.org/src/base/R-%(version_major)s'] + +preconfigopts = 'BLAS_LIBS="$LIBBLAS" LAPACK_LIBS="$LIBLAPACK"' +configopts = "--with-lapack --with-blas --with-pic --enable-threads --with-x=no --enable-R-shlib" +configopts += " --with-recommended-packages=no" + +dependencies = [ + ('libreadline', '6.2'), + ('ncurses', '5.9'), + ('libpng', '1.6.6'), # for plotting in R + ('Java', '1.7.0_21', '', True), # Java bindings are built if Java is found, might as well provide it +] + +exts_list = [] # just to make it explicit this module doesn't include any extensions + +sanity_check_paths = { + 'files': ['bin/%s' % x for x in ['R', 'Rscript']] + + ['lib64/R/include/%s' % x for x in ['Rconfig.h', 'Rdefines.h', 'Rembedded.h', + 'R.h', 'Rinterface.h', 'Rinternals.h', + 'Rmath.h', 'Rversion.h', 'S.h']] + + ['lib64/R/modules/%s' % x for x in ['internet.%s' % SHLIB_EXT, 'lapack.%s' % SHLIB_EXT, 'vfonts.%s' % SHLIB_EXT]] + + ['lib64/R/lib/libR.%s' % SHLIB_EXT], + 'dirs': [] +} + +moduleclass = 'lang' diff --git a/r/R/R-3.0.2-ictce-5.3.0.eb b/r/R/R-3.0.2-ictce-5.3.0.eb new file mode 100644 index 00000000..b2aa0589 --- /dev/null +++ b/r/R/R-3.0.2-ictce-5.3.0.eb @@ -0,0 +1,174 @@ +name = 'R' +version = '3.0.2' + +homepage = 'http://www.r-project.org/' +description = """R is a free software environment for statistical computing and graphics.""" + +toolchain = {'name': 'ictce', 'version': '5.3.0'} + +sources = [SOURCE_TAR_GZ] +source_urls = ['http://cran.us.r-project.org/src/base/R-%(version_major)s'] + +preconfigopts = 'BLAS_LIBS="$LIBBLAS" LAPACK_LIBS="$LIBLAPACK"' +configopts = "--with-lapack --with-blas --with-pic --enable-threads --with-x=no --enable-R-shlib" +# some recommended packages may fail in a parallel build (e.g. Matrix), and we're installing them anyway below +configopts += " --with-recommended-packages=no" + +dependencies = [ + ('libreadline', '6.2'), + ('ncurses', '5.9'), + ('libpng', '1.6.6'), # for plotting in R + ('Java', '1.7.0_15', '', True), # Java bindings are built if Java is found, might as well provide it +] + +sanity_check_paths = { + 'files': ['bin/%s' % x for x in ['R', 'Rscript']] + + ['lib64/R/include/%s' % x for x in ['Rconfig.h', 'Rdefines.h', 'Rembedded.h', + 'R.h', 'Rinterface.h', 'Rinternals.h', + 'Rmath.h', 'Rversion.h', 'S.h']] + + ['lib64/R/modules/%s' % x for x in ['internet.%s' % SHLIB_EXT, 'lapack.%s' % SHLIB_EXT, 'vfonts.%s' % SHLIB_EXT]] + + ['lib64/R/lib/libR.%s' % SHLIB_EXT], + 'dirs': [] +} + +name_tmpl = '%(name)s_%(version)s.tar.gz' +ext_options = { + 'source_urls': [ + 'http://cran.r-project.org/src/contrib/Archive/%(name)s', # package archive + 'http://cran.freestatistics.org/src/contrib', # alternative for packages + ], + 'source_tmpl': name_tmpl, +} +# Bioconductor packages have a different download url +bioconductor_options = { + 'source_urls': [ + 'http://www.bioconductor.org/packages/release/bioc/src/contrib/', + 'http://www.bioconductor.org/packages/2.13/bioc/src/contrib/', + ], + 'source_tmpl': name_tmpl, +} + +# some packages seem to only be in rforge, not in cran +rforge_options = { + 'source_urls': ['http://download.r-forge.r-project.org/src/contrib/'], + 'source_tmpl': name_tmpl, +} + +# !! order of packages is important !! +exts_list = [ + # default libraries, only here to sanity check their presence + 'base', + 'datasets', + 'graphics', + 'grDevices', + 'grid', + 'methods', + 'splines', + 'stats', + 'stats4', + 'tools', + 'utils', + # non-standard libraries, should be specified with fixed versions! + ('irace', '1.04', ext_options), + ('rJava', '0.9-4', ext_options), + ('lattice', '0.20-24', ext_options), + ('RColorBrewer', '1.0-5', ext_options), + ('latticeExtra', '0.6-26', ext_options), + ('Matrix', '1.1-0', ext_options), + ('png', '0.1-6', ext_options), + ('Rcpp', '0.10.6', ext_options), + ('quadprog', '1.5-5', ext_options), + ('BB', '2013.4-1', ext_options), + ('rlecuyer', '0.3-3', ext_options), + ('snow', '0.3-13', ext_options), + ('MASS', '7.3-29', ext_options), + ('class', '7.3-9', ext_options), + ('e1071', '1.6-1', ext_options), + ('nnet', '7.3-7', ext_options), + ('car', '2.0-19', ext_options), + ('colorspace', '1.2-4', ext_options), + ('robustbase', '0.9-10', ext_options), + ('sp', '1.0-14', ext_options), + ('vcd', '1.3-1', ext_options), + ('snowfall', '1.84-4', ext_options), + ('rpart', '4.1-3', ext_options), + ('mice', '2.18', ext_options), + ('nlme', '3.1-111', ext_options), + ('mgcv', '1.7-27', ext_options), + ('logistf', '1.21', ext_options), + ('akima', '0.5-11', ext_options), + ('bitops', '1.0-6', ext_options), + ('boot', '1.3-9', ext_options), + ('cluster', '1.14.4', ext_options), + ('coda', '0.16-1', ext_options), + ('codetools', '0.2-8', ext_options), + ('DBI', '0.2-7', ext_options), + ('foreign', '0.8-57', ext_options), + ('survival', '2.37-4', ext_options), + ('gam', '1.09', ext_options), + ('gamlss.data', '4.2-6', ext_options), + ('gamlss.dist', '4.2-0', ext_options), + ('hwriter', '1.3', ext_options), + ('KernSmooth', '2.23-10', ext_options), + ('zoo', '1.7-10', ext_options), + ('lmtest', '0.9-32', ext_options), + ('mnormt', '1.4-5', ext_options), + ('mvtnorm', '0.9-9996', ext_options), + ('numDeriv', '2012.9-1', ext_options), + ('pscl', '1.04.4', ext_options), + ('RSQLite', '0.11.4', ext_options), + ('sandwich', '2.3-0', ext_options), + ('sfsmisc', '1.0-24', ext_options), + ('spatial', '7.3-7', ext_options), + ('VGAM', '0.9-3', ext_options), + ('waveslim', '1.7.1', ext_options), + ('xtable', '1.7-1', ext_options), + ('profileModel', '0.5-9', ext_options), + ('brglm', '0.5-9', ext_options), + ('deSolve', '1.10-8', ext_options), + ('odesolve', '0.9-9', ext_options), + ('tseriesChaos', '0.1-13', ext_options), + ('tseries', '0.10-32', ext_options), + ('neuRosim', '0.2-10', ext_options), + ('fastICA', '1.2-0', ext_options), + ('R.methodsS3', '1.5.2', ext_options), + ('R.oo', '1.15.8', ext_options), + ('R.matlab', '2.0.5', ext_options), + ('Rniftilib', '0.0-32', ext_options), + ('BiocGenerics', '0.8.0', bioconductor_options), + ('Biobase', '2.22.0', bioconductor_options), + ('IRanges', '1.20.5', bioconductor_options), + ('AnnotationDbi', '1.24.0', bioconductor_options), + ('XVector', '0.2.0', bioconductor_options), + ('Biostrings', '2.30.0', bioconductor_options), + ('GenomicRanges', '1.14.3', bioconductor_options), + ('BSgenome', '1.30.0', bioconductor_options), + ('zlibbioc', '1.8.0', bioconductor_options), + ('Rsamtools', '1.14.1', bioconductor_options), + ('ShortRead', '1.20.0', bioconductor_options), + ('graph', '1.40.0', bioconductor_options), + ('igraph0', '0.5.7', ext_options), + ('gbm', '2.1', ext_options), + ('plyr', '1.8', ext_options), + ('dichromat', '2.0-0', ext_options), + ('Formula', '1.1-1', ext_options), + ('Hmisc', '3.13-0', ext_options), + ('stringr', '0.6.2', ext_options), + ('munsell', '0.4.2', ext_options), + ('labeling', '0.2', ext_options), + ('scales', '0.2.3', ext_options), + ('fastcluster', '1.1.11', ext_options), + ('reshape2', '1.2.2', ext_options), + ('digest', '0.6.3', ext_options), + ('gtable', '0.1.2', ext_options), + ('proto', '0.3-10', ext_options), + ('ggplot2', '0.9.3.1', ext_options), + ('leaps', '2.9', ext_options), + ('survival', '2.37-4', ext_options), + ('speff2trial', '1.0.4', ext_options), + ('nleqslv', '2.1', ext_options), + ('glmnet', '1.9-5', ext_options), + ('pim', '1.1.5.4', rforge_options), +] + +moduleclass = 'lang' diff --git a/r/R/R-3.0.2-ictce-5.5.0.eb b/r/R/R-3.0.2-ictce-5.5.0.eb new file mode 100644 index 00000000..ee87a80c --- /dev/null +++ b/r/R/R-3.0.2-ictce-5.5.0.eb @@ -0,0 +1,174 @@ +name = 'R' +version = '3.0.2' + +homepage = 'http://www.r-project.org/' +description = """R is a free software environment for statistical computing and graphics.""" + +toolchain = {'name': 'ictce', 'version': '5.5.0'} + +sources = [SOURCE_TAR_GZ] +source_urls = ['http://cran.us.r-project.org/src/base/R-%(version_major)s'] + +preconfigopts = 'BLAS_LIBS="$LIBBLAS_MT" LAPACK_LIBS="$LIBLAPACK_MT"' +configopts = "--with-lapack --with-blas --with-pic --enable-threads --with-x=no --enable-R-shlib" +# some recommended packages may fail in a parallel build (e.g. Matrix), and we're installing them anyway below +configopts += " --with-recommended-packages=no" + +dependencies = [ + ('libreadline', '6.2'), + ('ncurses', '5.9'), + ('libpng', '1.6.6'), # for plotting in R + ('Java', '1.7.0_15', '', True), # Java bindings are built if Java is found, might as well provide it +] + +sanity_check_paths = { + 'files': ['bin/%s' % x for x in ['R', 'Rscript']] + + ['lib64/R/include/%s' % x for x in ['Rconfig.h', 'Rdefines.h', 'Rembedded.h', + 'R.h', 'Rinterface.h', 'Rinternals.h', + 'Rmath.h', 'Rversion.h', 'S.h']] + + ['lib64/R/modules/%s' % x for x in ['internet.%s' % SHLIB_EXT, 'lapack.%s' % SHLIB_EXT, 'vfonts.%s' % SHLIB_EXT]] + + ['lib64/R/lib/libR.%s' % SHLIB_EXT], + 'dirs': [] +} + +name_tmpl = '%(name)s_%(version)s.tar.gz' +ext_options = { + 'source_urls': [ + 'http://cran.r-project.org/src/contrib/Archive/%(name)s', # package archive + 'http://cran.freestatistics.org/src/contrib', # alternative for packages + ], + 'source_tmpl': name_tmpl, +} +# Bioconductor packages have a different download url +bioconductor_options = { + 'source_urls': [ + 'http://www.bioconductor.org/packages/release/bioc/src/contrib/', + 'http://www.bioconductor.org/packages/2.13/bioc/src/contrib/', + ], + 'source_tmpl': name_tmpl, +} + +# some packages seem to only be in rforge, not in cran +rforge_options = { + 'source_urls': ['http://download.r-forge.r-project.org/src/contrib/'], + 'source_tmpl': name_tmpl, +} + +# !! order of packages is important !! +exts_list = [ + # default libraries, only here to sanity check their presence + 'base', + 'datasets', + 'graphics', + 'grDevices', + 'grid', + 'methods', + 'splines', + 'stats', + 'stats4', + 'tools', + 'utils', + # non-standard libraries, should be specified with fixed versions! + ('irace', '1.04', ext_options), + ('rJava', '0.9-4', ext_options), + ('lattice', '0.20-24', ext_options), + ('RColorBrewer', '1.0-5', ext_options), + ('latticeExtra', '0.6-26', ext_options), + ('Matrix', '1.1-0', ext_options), + ('png', '0.1-6', ext_options), + ('Rcpp', '0.10.6', ext_options), + ('quadprog', '1.5-5', ext_options), + ('BB', '2013.4-1', ext_options), + ('rlecuyer', '0.3-3', ext_options), + ('snow', '0.3-13', ext_options), + ('MASS', '7.3-29', ext_options), + ('class', '7.3-9', ext_options), + ('e1071', '1.6-1', ext_options), + ('nnet', '7.3-7', ext_options), + ('car', '2.0-19', ext_options), + ('colorspace', '1.2-4', ext_options), + ('robustbase', '0.9-10', ext_options), + ('sp', '1.0-14', ext_options), + ('vcd', '1.3-1', ext_options), + ('snowfall', '1.84-4', ext_options), + ('rpart', '4.1-3', ext_options), + ('mice', '2.18', ext_options), + ('nlme', '3.1-111', ext_options), + ('mgcv', '1.7-27', ext_options), + ('logistf', '1.21', ext_options), + ('akima', '0.5-11', ext_options), + ('bitops', '1.0-6', ext_options), + ('boot', '1.3-9', ext_options), + ('cluster', '1.14.4', ext_options), + ('coda', '0.16-1', ext_options), + ('codetools', '0.2-8', ext_options), + ('DBI', '0.2-7', ext_options), + ('foreign', '0.8-57', ext_options), + ('survival', '2.37-4', ext_options), + ('gam', '1.09', ext_options), + ('gamlss.data', '4.2-6', ext_options), + ('gamlss.dist', '4.2-0', ext_options), + ('hwriter', '1.3', ext_options), + ('KernSmooth', '2.23-10', ext_options), + ('zoo', '1.7-10', ext_options), + ('lmtest', '0.9-32', ext_options), + ('mnormt', '1.4-5', ext_options), + ('mvtnorm', '0.9-9996', ext_options), + ('numDeriv', '2012.9-1', ext_options), + ('pscl', '1.04.4', ext_options), + ('RSQLite', '0.11.4', ext_options), + ('sandwich', '2.3-0', ext_options), + ('sfsmisc', '1.0-24', ext_options), + ('spatial', '7.3-7', ext_options), + ('VGAM', '0.9-3', ext_options), + ('waveslim', '1.7.1', ext_options), + ('xtable', '1.7-1', ext_options), + ('profileModel', '0.5-9', ext_options), + ('brglm', '0.5-9', ext_options), + ('deSolve', '1.10-8', ext_options), + ('odesolve', '0.9-9', ext_options), + ('tseriesChaos', '0.1-13', ext_options), + ('tseries', '0.10-32', ext_options), + ('neuRosim', '0.2-10', ext_options), + ('fastICA', '1.2-0', ext_options), + ('R.methodsS3', '1.5.2', ext_options), + ('R.oo', '1.15.8', ext_options), + ('R.matlab', '2.0.5', ext_options), + ('Rniftilib', '0.0-32', ext_options), + ('BiocGenerics', '0.8.0', bioconductor_options), + ('Biobase', '2.22.0', bioconductor_options), + ('IRanges', '1.20.5', bioconductor_options), + ('AnnotationDbi', '1.24.0', bioconductor_options), + ('XVector', '0.2.0', bioconductor_options), + ('Biostrings', '2.30.0', bioconductor_options), + ('GenomicRanges', '1.14.3', bioconductor_options), + ('BSgenome', '1.30.0', bioconductor_options), + ('zlibbioc', '1.8.0', bioconductor_options), + ('Rsamtools', '1.14.1', bioconductor_options), + ('ShortRead', '1.20.0', bioconductor_options), + ('graph', '1.40.0', bioconductor_options), + ('igraph0', '0.5.7', ext_options), + ('gbm', '2.1', ext_options), + ('plyr', '1.8', ext_options), + ('dichromat', '2.0-0', ext_options), + ('Formula', '1.1-1', ext_options), + ('Hmisc', '3.13-0', ext_options), + ('stringr', '0.6.2', ext_options), + ('munsell', '0.4.2', ext_options), + ('labeling', '0.2', ext_options), + ('scales', '0.2.3', ext_options), + ('fastcluster', '1.1.11', ext_options), + ('reshape2', '1.2.2', ext_options), + ('digest', '0.6.3', ext_options), + ('gtable', '0.1.2', ext_options), + ('proto', '0.3-10', ext_options), + ('ggplot2', '0.9.3.1', ext_options), + ('leaps', '2.9', ext_options), + ('survival', '2.37-4', ext_options), + ('speff2trial', '1.0.4', ext_options), + ('nleqslv', '2.1', ext_options), + ('glmnet', '1.9-5', ext_options), + ('pim', '1.1.5.4', rforge_options), +] + +moduleclass = 'lang' diff --git a/r/R/R-3.1.1-ictce-5.5.0.eb b/r/R/R-3.1.1-ictce-5.5.0.eb new file mode 100644 index 00000000..519ab999 --- /dev/null +++ b/r/R/R-3.1.1-ictce-5.5.0.eb @@ -0,0 +1,181 @@ +name = 'R' +version = '3.1.1' + +homepage = 'http://www.r-project.org/' +description = """R is a free software environment for statistical computing and graphics.""" + +toolchain = {'name': 'ictce', 'version': '5.5.0'} + +sources = [SOURCE_TAR_GZ] +source_urls = ['http://cran.us.r-project.org/src/base/R-%(version_major)s'] + +preconfigopts = 'BLAS_LIBS="$LIBBLAS" LAPACK_LIBS="$LIBLAPACK"' +configopts = "--with-lapack --with-blas --with-pic --enable-threads --with-x=no --enable-R-shlib" +# some recommended packages may fail in a parallel build (e.g. Matrix), and we're installing them anyway below +configopts += " --with-recommended-packages=no" + +dependencies = [ + ('libreadline', '6.2'), + ('ncurses', '5.9'), + ('libpng', '1.6.9'), # for plotting in R + ('Java', '1.7.0_79', '', True), # Java bindings are built if Java is found, might as well provide it +] + +name_tmpl = '%(name)s_%(version)s.tar.gz' +ext_options = { + 'source_urls': [ + 'http://cran.r-project.org/src/contrib/Archive/%(name)s', # package archive + 'http://cran.freestatistics.org/src/contrib', # alternative for packages + ], + 'source_tmpl': name_tmpl, +} +# Bioconductor packages have a different download url +bioconductor_options = { + 'source_urls': [ + 'http://www.bioconductor.org/packages/release/bioc/src/contrib/', + 'http://www.bioconductor.org/packages/2.14/bioc/src/contrib/'], + 'source_tmpl': name_tmpl, +} +# !! order of packages is important !! +exts_list = [ + # default libraries, only here to sanity check their presence + 'base', + 'datasets', + 'graphics', + 'grDevices', + 'grid', + 'methods', + 'splines', + 'stats', + 'stats4', + 'tools', + 'utils', + # non-standard libraries, should be specified with fixed versions! + ('irace', '1.04', ext_options), + ('rJava', '0.9-6', ext_options), + ('lattice', '0.20-29', ext_options), + ('RColorBrewer', '1.0-5', ext_options), + ('latticeExtra', '0.6-26', ext_options), + ('Matrix', '1.1-3', ext_options), + ('png', '0.1-7', ext_options), + ('Rcpp', '0.11.1', ext_options), + ('quadprog', '1.5-5', ext_options), + ('BB', '2014.1-1', ext_options), + ('rlecuyer', '0.3-3', ext_options), + ('snow', '0.3-13', ext_options), + ('MASS', '7.3-33', ext_options), + ('class', '7.3-10', ext_options), + ('e1071', '1.6-3', ext_options), + ('nnet', '7.3-8', ext_options), + ('car', '2.0-20', ext_options), + ('colorspace', '1.2-4', ext_options), + ('DEoptimR', '1.0-1', ext_options), + ('robustbase', '0.91-1', ext_options), + ('sp', '1.0-15', ext_options), + ('vcd', '1.3-1', ext_options), + ('snowfall', '1.84-6', ext_options), + ('rpart', '4.1-8', ext_options), + ('randomForest', '4.6-7', ext_options), + ('mice', '2.21', ext_options), + ('nlme', '3.1-117', ext_options), + ('mgcv', '1.7-29', ext_options), + ('logistf', '1.21', ext_options), + ('akima', '0.5-11', ext_options), + ('bitops', '1.0-6', ext_options), + ('boot', '1.3-11', ext_options), + ('cluster', '1.15.2', ext_options), + ('coda', '0.16-1', ext_options), + ('codetools', '0.2-8', ext_options), + ('DBI', '0.2-7', ext_options), + ('foreign', '0.8-61', ext_options), + ('survival', '2.37-7', ext_options), + ('gam', '1.09.1', ext_options), + ('gamlss.data', '4.2-7', ext_options), + ('gamlss.dist', '4.2-7', ext_options), + ('hwriter', '1.3', ext_options), + ('KernSmooth', '2.23-12', ext_options), + ('zoo', '1.7-11', ext_options), + ('lmtest', '0.9-33', ext_options), + ('mnormt', '1.4-7', ext_options), + ('mvtnorm', '0.9-99992', ext_options), + ('numDeriv', '2012.9-1', ext_options), + ('pscl', '1.04.4', ext_options), + ('RSQLite', '0.11.4', ext_options), + ('sandwich', '2.3-0', ext_options), + ('sfsmisc', '1.0-25', ext_options), + ('spatial', '7.3-8', ext_options), + ('VGAM', '0.9-4', ext_options), + ('waveslim', '1.7.3', ext_options), + ('xtable', '1.7-3', ext_options), + ('profileModel', '0.5-9', ext_options), + ('brglm', '0.5-9', ext_options), + ('deSolve', '1.10-8', ext_options), + ('tseriesChaos', '0.1-13', ext_options), + ('tseries', '0.10-32', ext_options), + ('neuRosim', '0.2-10', ext_options), + ('fastICA', '1.2-0', ext_options), + ('R.methodsS3', '1.6.1', ext_options), + ('R.oo', '1.18.0', ext_options), + ('R.utils', '1.32.4', ext_options), + ('R.matlab', '3.0.1', ext_options), + ('Rniftilib', '0.0-32', ext_options), + ('iterators', '1.0.7', ext_options), + ('foreach', '1.4.2', ext_options), + ('BBmisc', '1.6', ext_options), + ('digest', '0.6.4', ext_options), + ('base64enc', '0.1-1', ext_options), + ('sendmailR', '1.1-2', ext_options), + ('brew', '1.0-6', ext_options), + ('plyr', '1.8.1', ext_options), + ('stringr', '0.6.2', ext_options), + ('fail', '1.2', ext_options), + ('BatchJobs', '1.2', ext_options), + ('BiocGenerics', '0.10.0', bioconductor_options), + ('Biobase', '2.24.0', bioconductor_options), + ('IRanges', '1.22.8', bioconductor_options), + ('GenomeInfoDb', '1.0.2', bioconductor_options), + ('AnnotationDbi', '1.26.0', bioconductor_options), + ('XVector', '0.4.0', bioconductor_options), + ('zlibbioc', '1.10.0', bioconductor_options), + ('Biostrings', '2.32.0', bioconductor_options), + ('GenomicRanges', '1.16.3', bioconductor_options), + ('Rsamtools', '1.16.0', bioconductor_options), + ('BSgenome', '1.32.0', bioconductor_options), + ('BiocParallel', '0.6.1', bioconductor_options), + ('GenomicAlignments', '1.0.2', bioconductor_options), + ('ShortRead', '1.22.0', bioconductor_options), + ('graph', '1.42.0', bioconductor_options), + ('gbm', '2.1', ext_options), + ('dichromat', '2.0-0', ext_options), + ('Formula', '1.1-1', ext_options), + ('Hmisc', '3.14-4', ext_options), + ('munsell', '0.4.2', ext_options), + ('labeling', '0.2', ext_options), + ('scales', '0.2.4', ext_options), + ('fastcluster', '1.1.13', ext_options), + ('reshape2', '1.4', ext_options), + ('gtable', '0.1.2', ext_options), + ('proto', '0.3-10', ext_options), + ('ggplot2', '1.0.0', ext_options), + ('reshape', '0.8.5', ext_options), + ('gsalib', '2.0', ext_options), + ('ape', '3.1-2', ext_options), + ('igraph', '0.7.1', ext_options), + ('fastmatch', '1.0-4', ext_options), + ('phangorn', '1.99-7', ext_options), + ('gdsfmt', '1.0.4', ext_options), + ('SNPRelate', '0.9.19', ext_options), + ('getopt', '1.20.0', ext_options), + ('miscTools', '0.6-16', ext_options), + ('maxLik', '1.2-0', ext_options), + ('statmod', '1.4.20', ext_options), + ('mlogit', '0.2-4', ext_options), + ('optparse', '1.2.0', ext_options), + ('permute', '0.8-3', ext_options), + ('vegan', '2.0-10', ext_options), + ('gtools', '3.4.1', ext_options), + ('combinat', '0.0-8', ext_options), + ('klaR', '0.6-11', ext_options), +] + +moduleclass = 'lang' diff --git a/r/R/R-3.1.1-ictce-6.2.5-bare-mt.eb b/r/R/R-3.1.1-ictce-6.2.5-bare-mt.eb new file mode 100644 index 00000000..31222cc1 --- /dev/null +++ b/r/R/R-3.1.1-ictce-6.2.5-bare-mt.eb @@ -0,0 +1,39 @@ +name = 'R' +version = '3.1.1' +versionsuffix = '-bare-mt' # bare, as in no extensions included + +homepage = 'http://www.r-project.org/' +description = """R is a free software environment for statistical computing and graphics.""" + +toolchain = {'name': 'ictce', 'version': '6.2.5'} +# turn on -fpmodel=precise and -O3 +toolchainopts = {'precise': True, 'opt': True} # 'openmp' is enabled in R by default + +sources = [SOURCE_TAR_GZ] +source_urls = ['http://cran.us.r-project.org/src/base/R-%(version_major)s'] + +preconfigopts = 'BLAS_LIBS="$LIBBLAS_MT" LAPACK_LIBS="$LIBLAPACK_MT"' # use multi-thread BLAS/LAPACK +configopts = "--with-lapack --with-blas --with-pic --enable-threads --with-x=no --enable-R-shlib" +configopts += " --with-recommended-packages=no" + +dependencies = [ + ('libreadline', '6.3'), + ('ncurses', '5.9'), + ('libpng', '1.6.12'), # for plotting in R + ('libjpeg-turbo', '1.3.1'), # for plotting in R + ('Java', '1.7.0_60', '', True), # Java bindings are built if Java is found, might as well provide it +] + +exts_list = [] # just to make it explicit this module doesn't include any extensions + +sanity_check_paths = { + 'files': ['bin/%s' % x for x in ['R', 'Rscript']] + + ['lib64/R/include/%s' % x for x in ['Rconfig.h', 'Rdefines.h', 'Rembedded.h', + 'R.h', 'Rinterface.h', 'Rinternals.h', + 'Rmath.h', 'Rversion.h', 'S.h']] + + ['lib64/R/modules/%s' % x for x in ['internet.%s' % SHLIB_EXT, 'lapack.%s' % SHLIB_EXT, 'vfonts.%s' % SHLIB_EXT]] + + ['lib64/R/lib/libR.%s' % SHLIB_EXT], + 'dirs': [] +} + +moduleclass = 'lang' diff --git a/r/R/R-3.1.1-ictce-6.2.5-default-mt.eb b/r/R/R-3.1.1-ictce-6.2.5-default-mt.eb new file mode 100644 index 00000000..866b40ba --- /dev/null +++ b/r/R/R-3.1.1-ictce-6.2.5-default-mt.eb @@ -0,0 +1,70 @@ +name = 'R' +version = '3.1.1' +versionsuffix = '-default-mt' + +homepage = 'http://www.r-project.org/' +description = """R is a free software environment for statistical computing and graphics.""" + +toolchain = {'name': 'ictce', 'version': '6.2.5'} +# turn on -fpmodel=precise and -O3 +toolchainopts = {'precise': True, 'opt': True} # 'openmp' is enabled in R by default + +sources = [SOURCE_TAR_GZ] +source_urls = ['http://cran.us.r-project.org/src/base/R-%(version_major)s'] + +preconfigopts = 'BLAS_LIBS="$LIBBLAS_MT" LAPACK_LIBS="$LIBLAPACK_MT"' # use multi-thread BLAS/LAPACK +configopts = "--with-lapack --with-blas --with-pic --enable-threads --with-x=no --enable-R-shlib" + +dependencies = [ + ('libreadline', '6.3'), + ('ncurses', '5.9'), + ('libpng', '1.6.12'), # for plotting in R + ('libjpeg-turbo', '1.3.1'), # for plotting in R + ('Java', '1.7.0_60', '', True), # Java bindings are built if Java is found, might as well provide it +] + +sanity_check_paths = { + 'files': ['bin/%s' % x for x in ['R', 'Rscript']] + + ['lib64/R/include/%s' % x for x in ['Rconfig.h', 'Rdefines.h', 'Rembedded.h', + 'R.h', 'Rinterface.h', 'Rinternals.h', + 'Rmath.h', 'Rversion.h', 'S.h']] + + ['lib64/R/modules/%s' % x for x in ['internet.%s' % SHLIB_EXT, 'lapack.%s' % SHLIB_EXT, 'vfonts.%s' % SHLIB_EXT]] + + ['lib64/R/lib/libR.%s' % SHLIB_EXT], + 'dirs': [] +} + +exts_list = [ + # default libraries, only here to sanity check their presence + 'base', + 'boot', + 'class', + 'cluster', + 'codetools', + 'compiler', + 'datasets', + 'foreign', + 'graphics', + 'grDevices', + 'grid', + 'KernSmooth', + 'lattice', + 'MASS', + 'Matrix', + 'methods', + 'mgcv', + 'nlme', + 'nnet', + 'parallel', + 'rpart', + 'spatial', + 'splines', + 'stats', + 'stats4', + 'survival', + 'tcltk', + 'tools', + 'translations', + 'utils', +] + +moduleclass = 'lang' diff --git a/r/R/R-3.1.1-intel-2015b.eb b/r/R/R-3.1.1-intel-2015b.eb new file mode 100644 index 00000000..c64d394b --- /dev/null +++ b/r/R/R-3.1.1-intel-2015b.eb @@ -0,0 +1,189 @@ +name = 'R' +version = '3.1.1' + +homepage = 'http://www.r-project.org/' +description = """R is a free software environment for statistical computing and graphics.""" + +toolchain = {'name': 'intel', 'version': '2015b'} + +sources = [SOURCE_TAR_GZ] +source_urls = ['http://cran.us.r-project.org/src/base/R-%(version_major)s'] + +preconfigopts = 'BLAS_LIBS="$LIBBLAS_MT" LAPACK_LIBS="$LIBLAPACK_MT"' +configopts = "--with-lapack --with-blas --with-pic --enable-threads --with-x=no --enable-R-shlib" +# some recommended packages may fail in a parallel build (e.g. Matrix), and we're installing them anyway below +configopts += " --with-recommended-packages=no" + +dependencies = [ + ('libreadline', '6.2'), + ('ncurses', '5.9'), + ('libpng', '1.6.9'), # for plotting in R + ('Java', '1.7.0_79', '', True), # Java bindings are built if Java is found, might as well provide it +] + +name_tmpl = '%(name)s_%(version)s.tar.gz' +ext_options = { + 'source_urls': [ + 'http://cran.r-project.org/src/contrib/Archive/%(name)s', # package archive + 'http://cran.freestatistics.org/src/contrib', # alternative for packages + 'http://cran.freestatistics.org/src/contrib', # mirror alternative for current packages + ], + 'source_tmpl': name_tmpl, +} +# Bioconductor packages have a different download url +bioconductor_options = { + 'source_urls': [ + 'http://www.bioconductor.org/packages/release/bioc/src/contrib/', + 'http://www.bioconductor.org/packages/2.14/bioc/src/contrib/', + 'http://www.bioconductor.org/packages/release/data/annotation/src/contrib/', + 'http://www.bioconductor.org/packages/release/data/experiment/src/contrib/', + 'http://www.bioconductor.org/packages/3.0/bioc/src/contrib/', + 'http://www.bioconductor.org/packages/3.0/data/annotation/src/contrib/', + 'http://www.bioconductor.org/packages/3.0/data/experiment/src/contrib/', + ], + 'source_tmpl': name_tmpl, +} +# !! order of packages is important !! +exts_list = [ + # default libraries, only here to sanity check their presence + 'base', + 'datasets', + 'graphics', + 'grDevices', + 'grid', + 'methods', + 'splines', + 'stats', + 'stats4', + 'tools', + 'utils', + # non-standard libraries, should be specified with fixed versions! + ('Rmpi', '0.6-5', dict(ext_options.items() + [('patches', ['Rmpi-0.6-5_impi5.patch'])])), + ('irace', '1.04', ext_options), + ('rJava', '0.9-6', ext_options), + ('lattice', '0.20-29', ext_options), + ('RColorBrewer', '1.0-5', ext_options), + ('latticeExtra', '0.6-26', ext_options), + ('Matrix', '1.1-3', ext_options), + ('png', '0.1-7', ext_options), + ('Rcpp', '0.11.1', ext_options), + ('quadprog', '1.5-5', ext_options), + ('BB', '2014.1-1', ext_options), + ('rlecuyer', '0.3-3', ext_options), + ('snow', '0.3-13', ext_options), + ('MASS', '7.3-33', ext_options), + ('class', '7.3-10', ext_options), + ('e1071', '1.6-3', ext_options), + ('nnet', '7.3-8', ext_options), + ('car', '2.0-20', ext_options), + ('colorspace', '1.2-4', ext_options), + ('DEoptimR', '1.0-1', ext_options), + ('robustbase', '0.91-1', ext_options), + ('sp', '1.0-15', ext_options), + ('vcd', '1.3-1', ext_options), + ('snowfall', '1.84-6', ext_options), + ('rpart', '4.1-8', ext_options), + ('randomForest', '4.6-7', ext_options), + ('mice', '2.21', ext_options), + ('nlme', '3.1-117', ext_options), + ('mgcv', '1.7-29', ext_options), + ('logistf', '1.21', ext_options), + ('akima', '0.5-11', ext_options), + ('bitops', '1.0-6', ext_options), + ('boot', '1.3-11', ext_options), + ('cluster', '1.15.2', ext_options), + ('coda', '0.16-1', ext_options), + ('codetools', '0.2-8', ext_options), + ('DBI', '0.2-7', ext_options), + ('foreign', '0.8-61', ext_options), + ('survival', '2.37-7', ext_options), + ('gam', '1.09.1', ext_options), + ('gamlss.data', '4.2-7', ext_options), + ('gamlss.dist', '4.2-7', ext_options), + ('hwriter', '1.3', ext_options), + ('KernSmooth', '2.23-12', ext_options), + ('zoo', '1.7-11', ext_options), + ('lmtest', '0.9-33', ext_options), + ('mnormt', '1.4-7', ext_options), + ('mvtnorm', '0.9-99992', ext_options), + ('numDeriv', '2012.9-1', ext_options), + ('pscl', '1.04.4', ext_options), + ('RSQLite', '0.11.4', ext_options), + ('sandwich', '2.3-0', ext_options), + ('sfsmisc', '1.0-25', ext_options), + ('spatial', '7.3-8', ext_options), + ('VGAM', '0.9-4', ext_options), + ('waveslim', '1.7.3', ext_options), + ('xtable', '1.7-3', ext_options), + ('profileModel', '0.5-9', ext_options), + ('brglm', '0.5-9', ext_options), + ('deSolve', '1.10-8', ext_options), + ('tseriesChaos', '0.1-13', ext_options), + ('tseries', '0.10-32', ext_options), + ('neuRosim', '0.2-10', ext_options), + ('fastICA', '1.2-0', ext_options), + ('R.methodsS3', '1.6.1', ext_options), + ('R.oo', '1.18.0', ext_options), + ('R.utils', '1.32.4', ext_options), + ('R.matlab', '3.0.1', ext_options), + ('Rniftilib', '0.0-32', ext_options), + ('iterators', '1.0.7', ext_options), + ('foreach', '1.4.2', ext_options), + ('BBmisc', '1.6', ext_options), + ('digest', '0.6.4', ext_options), + ('base64enc', '0.1-1', ext_options), + ('sendmailR', '1.1-2', ext_options), + ('brew', '1.0-6', ext_options), + ('plyr', '1.8.1', ext_options), + ('stringr', '0.6.2', ext_options), + ('fail', '1.2', ext_options), + ('BatchJobs', '1.2', ext_options), + ('BiocGenerics', '0.10.0', bioconductor_options), + ('Biobase', '2.24.0', bioconductor_options), + ('IRanges', '1.22.8', bioconductor_options), + ('GenomeInfoDb', '1.0.2', bioconductor_options), + ('AnnotationDbi', '1.26.0', bioconductor_options), + ('XVector', '0.4.0', bioconductor_options), + ('zlibbioc', '1.10.0', bioconductor_options), + ('Biostrings', '2.32.0', bioconductor_options), + ('GenomicRanges', '1.16.3', bioconductor_options), + ('Rsamtools', '1.16.0', bioconductor_options), + ('BSgenome', '1.32.0', bioconductor_options), + ('BiocParallel', '0.6.1', bioconductor_options), + ('GenomicAlignments', '1.0.2', bioconductor_options), + ('ShortRead', '1.22.0', bioconductor_options), + ('graph', '1.42.0', bioconductor_options), + ('gbm', '2.1', ext_options), + ('dichromat', '2.0-0', ext_options), + ('Formula', '1.1-1', ext_options), + ('Hmisc', '3.14-4', ext_options), + ('munsell', '0.4.2', ext_options), + ('labeling', '0.2', ext_options), + ('scales', '0.2.4', ext_options), + ('fastcluster', '1.1.13', ext_options), + ('reshape2', '1.4', ext_options), + ('gtable', '0.1.2', ext_options), + ('proto', '0.3-10', ext_options), + ('ggplot2', '1.0.0', ext_options), + ('reshape', '0.8.5', ext_options), + ('gsalib', '2.0', ext_options), + ('ape', '3.1-2', ext_options), + ('igraph', '0.7.1', ext_options), + ('fastmatch', '1.0-4', ext_options), + ('phangorn', '1.99-7', ext_options), + ('gdsfmt', '1.0.4', ext_options), + ('SNPRelate', '0.9.19', ext_options), + ('getopt', '1.20.0', ext_options), + ('miscTools', '0.6-16', ext_options), + ('maxLik', '1.2-0', ext_options), + ('statmod', '1.4.20', ext_options), + ('mlogit', '0.2-4', ext_options), + ('optparse', '1.2.0', ext_options), + ('permute', '0.8-3', ext_options), + ('vegan', '2.0-10', ext_options), + ('gtools', '3.4.1', ext_options), + ('combinat', '0.0-8', ext_options), + ('klaR', '0.6-11', ext_options), +] + +moduleclass = 'lang' diff --git a/r/R/R-3.1.2-intel-2015b.eb b/r/R/R-3.1.2-intel-2015b.eb new file mode 100644 index 00000000..32d39aed --- /dev/null +++ b/r/R/R-3.1.2-intel-2015b.eb @@ -0,0 +1,377 @@ +name = 'R' +version = '3.1.2' + +homepage = 'http://www.r-project.org/' +description = """R is a free software environment for statistical computing and graphics.""" + +toolchain = {'name': 'intel', 'version': '2015b'} + +sources = [SOURCE_TAR_GZ] +source_urls = ['http://cran.us.r-project.org/src/base/R-%(version_major)s'] + +preconfigopts = 'BLAS_LIBS="$LIBBLAS_MT" LAPACK_LIBS="$LIBLAPACK_MT"' +configopts = "--with-lapack --with-blas --with-pic --enable-threads --with-x=no --enable-R-shlib" +# some recommended packages may fail in a parallel build (e.g. Matrix), and we're installing them anyway below +configopts += " --with-recommended-packages=no" + +dependencies = [ + ('libreadline', '6.3'), + ('ncurses', '5.9'), + ('libpng', '1.6.12'), # for plotting in R + ('libjpeg-turbo', '1.4.0'), # for plottting in R + ('Java', '1.8.0_51', '', True), # Java bindings are built if Java is found, might as well provide it +] + +name_tmpl = '%(name)s_%(version)s.tar.gz' +ext_options = { + 'source_urls': [ + 'http://cran.r-project.org/src/contrib/Archive/%(name)s', # package archive + 'http://cran.r-project.org/src/contrib/', # current version of packages + 'http://cran.freestatistics.org/src/contrib', # mirror alternative for current packages + ], + 'source_tmpl': name_tmpl, +} +# Bioconductor packages have a different download url +bioconductor_options = { + 'source_urls': [ + 'http://www.bioconductor.org/packages/release/bioc/src/contrib/', + 'http://www.bioconductor.org/packages/release/data/annotation/src/contrib/', + 'http://www.bioconductor.org/packages/release/data/experiment/src/contrib/', + 'http://www.bioconductor.org/packages/3.0/bioc/src/contrib/', + 'http://www.bioconductor.org/packages/3.0/data/annotation/src/contrib/', + 'http://www.bioconductor.org/packages/3.0/data/experiment/src/contrib/', + ], + 'source_tmpl': name_tmpl, +} + +# !! order of packages is important !! +# packages updated on January 8th 2015 +exts_list = [ + # default libraries, only here to sanity check their presence + 'base', + 'datasets', + 'graphics', + 'grDevices', + 'grid', + 'methods', + 'splines', + 'stats', + 'stats4', + 'tools', + 'utils', + # non-standard libraries, should be specified with fixed versions! + ('Rmpi', '0.6-5', dict(ext_options.items() + [('patches', ['Rmpi-0.6-5_impi5.patch'])])), + ('abind', '1.4-0', ext_options), + ('magic', '1.5-6', ext_options), + ('geometry', '0.3-4', dict(ext_options.items() + [('patches', ['geometry-0.3-4-icc.patch'])])), + ('bit', '1.1-12', ext_options), + ('filehash', '2.2-2', ext_options), + ('ff', '2.2-13', ext_options), + ('bnlearn', '3.6', ext_options), + ('bootstrap', '2014.4', ext_options), + ('combinat', '0.0-8', ext_options), + ('deal', '1.2-37', ext_options), + ('fdrtool', '1.2.13', ext_options), + ('formatR', '1.0', ext_options), + ('gtools', '3.4.1', ext_options), + ('gdata', '2.13.3', ext_options), + ('GSA', '1.03', ext_options), + ('highr', '0.4', ext_options), + ('infotheo', '1.2.0', ext_options), + ('lars', '1.2', ext_options), + ('lazy', '1.2-15', ext_options), + ('kernlab', '0.9-19', ext_options), + ('mime', '0.2', ext_options), + ('markdown', '0.7.4', ext_options), + ('mlbench', '2.1-1', ext_options), + ('NLP', '0.1-5', ext_options), + ('mclust', '4.4', ext_options), + ('RANN', '2.4.1', ext_options), + ('rmeta', '2.16', ext_options), + ('segmented', '0.5-1.0', ext_options), + ('som', '0.3-5', ext_options), + ('SuppDists', '1.1-9.1', ext_options), + ('stabledist', '0.6-6', ext_options), + ('survivalROC', '1.0.3', ext_options), + ('pspline', '1.0-16', ext_options), + ('timeDate', '3011.99', ext_options), + ('longmemo', '1.0-0', ext_options), + ('ADGofTest', '0.3', ext_options), + ('ade4', '1.6-2', ext_options), + ('AlgDesign', '1.1-7.3', ext_options), + ('base64enc', '0.1-2', ext_options), + ('BH', '1.55.0-3', ext_options), + ('brew', '1.0-6', ext_options), + ('Brobdingnag', '1.2-4', ext_options), + ('corpcor', '1.6.7', ext_options), + ('longitudinal', '1.1.10', ext_options), + ('checkmate', '1.5.1', ext_options), + ('cubature', '1.1-2', ext_options), + ('DEoptimR', '1.0-2', ext_options), + ('digest', '0.6.8', ext_options), + ('fastmatch', '1.0-4', ext_options), + ('ffbase', '0.11.3', ext_options), + ('iterators', '1.0.7', ext_options), + ('maps', '2.3-9', ext_options), + ('nnls', '1.4', ext_options), + ('sendmailR', '1.2-1', ext_options), + ('spam', '1.0-1', ext_options), + ('subplex', '1.1-4', ext_options), + ('stringr', '0.6.2', ext_options), + ('evaluate', '0.5.5', ext_options), + ('logspline', '2.1.5', ext_options), + ('ncbit', '2013.03.29', ext_options), + ('permute', '0.8-3', ext_options), + ('plotrix', '3.5-10', ext_options), + ('randomForest', '4.6-10', ext_options), + ('scatterplot3d', '0.3-35', ext_options), + ('SparseM', '1.6', ext_options), + ('tripack', '1.3-6', ext_options), + ('irace', '1.06', ext_options), + ('rJava', '0.9-6', ext_options), + ('lattice', '0.20-29', ext_options), + ('RColorBrewer', '1.1-2', ext_options), + ('latticeExtra', '0.6-26', ext_options), + ('Matrix', '1.1-4', ext_options), + ('png', '0.1-7', ext_options), + ('Rcpp', '0.11.3', ext_options), + ('RcppArmadillo', '0.4.600.0', ext_options), + ('plyr', '1.8.1', ext_options), + ('pROC', '1.7.3', ext_options), + ('quadprog', '1.5-5', ext_options), + ('BB', '2014.10-1', ext_options), + ('BBmisc', '1.8', ext_options), + ('fail', '1.2', ext_options), + ('rlecuyer', '0.3-3', ext_options), + ('snow', '0.3-13', ext_options), + ('MASS', '7.3-35', ext_options), + ('tree', '1.0-35', ext_options), + ('pls', '2.4-3', ext_options), + ('class', '7.3-11', ext_options), + ('e1071', '1.6-4', ext_options), + ('nnet', '7.3-8', ext_options), + ('car', '2.0-22', ext_options), + ('colorspace', '1.2-4', ext_options), + ('robustbase', '0.92-2', ext_options), + ('sp', '1.0-17', ext_options), + ('vcd', '1.3-2', ext_options), + ('snowfall', '1.84-6', ext_options), + ('rpart', '4.1-8', ext_options), + ('mice', '2.22', ext_options), + ('nlme', '3.1-118', ext_options), + ('urca', '1.2-8', ext_options), + ('fracdiff', '1.4-2', ext_options), + ('mgcv', '1.8-4', ext_options), + ('logistf', '1.21', ext_options), + ('akima', '0.5-11', ext_options), + ('bitops', '1.0-6', ext_options), + ('boot', '1.3-13', ext_options), + ('mixtools', '1.0.2', ext_options), + ('cluster', '1.15.3', ext_options), + ('gclus', '1.3.1', ext_options), + ('coda', '0.16-1', ext_options), + ('codetools', '0.2-9', ext_options), + ('foreach', '1.4.2', ext_options), + ('doMC', '1.3.3', ext_options), + ('DBI', '0.3.1', ext_options), + ('foreign', '0.8-62', ext_options), + ('survival', '2.37-7', ext_options), + ('gam', '1.09.1', ext_options), + ('gamlss.data', '4.2-7', ext_options), + ('gamlss.dist', '4.3-1', ext_options), + ('hwriter', '1.3.2', ext_options), + ('KernSmooth', '2.23-13', ext_options), + ('zoo', '1.7-11', ext_options), + ('xts', '0.9-7', ext_options), + ('TTR', '0.22-0', ext_options), + ('quantmod', '0.4-3', ext_options), + ('lmtest', '0.9-33', ext_options), + ('mnormt', '1.5-1', ext_options), + ('mvtnorm', '1.0-2', ext_options), + ('pcaPP', '1.9-60', ext_options), + ('numDeriv', '2012.9-1', ext_options), + ('lava', '1.3', ext_options), + ('prodlim', '1.5.1', ext_options), + ('pscl', '1.4.6', ext_options), + ('RSQLite', '1.0.0', ext_options), + ('BatchJobs', '1.5', ext_options), + ('sandwich', '2.3-2', ext_options), + ('sfsmisc', '1.0-27', ext_options), + ('spatial', '7.3-8', ext_options), + ('VGAM', '0.9-6', ext_options), + ('waveslim', '1.7.3', ext_options), + ('xtable', '1.7-4', ext_options), + ('profileModel', '0.5-9', ext_options), + ('brglm', '0.5-9', ext_options), + ('deSolve', '1.11', ext_options), + ('tseriesChaos', '0.1-13', ext_options), + ('tseries', '0.10-32', ext_options), + ('fastICA', '1.2-0', ext_options), + ('R.methodsS3', '1.6.1', ext_options), + ('R.oo', '1.18.0', ext_options), + ('cgdsr', '1.1.33', ext_options), + ('R.utils', '1.34.0', ext_options), + ('R.matlab', '3.1.1', ext_options), + ('BiocGenerics', '0.12.1', bioconductor_options), + ('Biobase', '2.26.0', bioconductor_options), + ('S4Vectors', '0.4.0', bioconductor_options), + ('IRanges', '2.0.1', bioconductor_options), + ('GenomeInfoDb', '1.2.4', bioconductor_options), + ('AnnotationDbi', '1.28.1', bioconductor_options), + ('XVector', '0.6.0', bioconductor_options), + ('zlibbioc', '1.12.0', bioconductor_options), + ('Biostrings', '2.34.1', bioconductor_options), + ('GenomicRanges', '1.18.4', bioconductor_options), + ('Rsamtools', '1.18.2', bioconductor_options), + ('BiocParallel', '1.0.2', bioconductor_options), + ('GenomicAlignments', '1.2.1', bioconductor_options), + ('ShortRead', '1.24.0', bioconductor_options), + ('graph', '1.44.1', bioconductor_options), + ('gbm', '2.1', ext_options), + ('dichromat', '2.0-0', ext_options), + ('Formula', '1.1-2', ext_options), + ('acepack', '1.3-3.3', ext_options), + ('Hmisc', '3.14-6', ext_options), + ('munsell', '0.4.2', ext_options), + ('labeling', '0.3', ext_options), + ('scales', '0.2.4', ext_options), + ('fastcluster', '1.1.15', ext_options), + ('reshape2', '1.4.1', ext_options), + ('chron', '2.3-45', ext_options), + ('data.table', '1.9.4', ext_options), + ('gtable', '0.1.2', ext_options), + ('proto', '0.3-10', ext_options), + ('ggplot2', '1.0.0', ext_options), + ('igraph', '0.7.1', ext_options), + ('GeneNet', '1.2.11', ext_options), + ('ape', '3.2', ext_options), + ('htmltools', '0.2.6', ext_options), + ('RJSONIO', '1.3-0', ext_options), + ('caTools', '1.17.1', ext_options), + ('gplots', '2.16.0', ext_options), + ('ROCR', '1.0-5', ext_options), + ('httpuv', '1.3.2', ext_options), + ('R6', '2.0.1', ext_options), + ('shiny', '0.10.2.2', ext_options), + ('adegenet', '1.4-2', ext_options), + ('phylobase', '0.6.8', ext_options), + ('adephylo', '1.1-6', ext_options), + ('animation', '2.3', ext_options), + ('bigmemory.sri', '0.1.3', ext_options), + ('bigmemory', '4.4.6', ext_options), + ('calibrate', '1.7.2', ext_options), + ('clusterGeneration', '1.3.1', ext_options), + ('raster', '2.3-12', ext_options), + ('dismo', '1.0-5', ext_options), + ('expm', '0.99-1.1', ext_options), + ('extrafontdb', '1.0', ext_options), + ('Rttf2pt1', '1.3.2', ext_options), + ('extrafont', '0.17', ext_options), + ('fields', '7.1', ext_options), + ('shapefiles', '0.7', ext_options), + ('fossil', '0.3.7', ext_options), + ('geiger', '2.0.3', ext_options), + ('glmnet', '1.9-8', ext_options), + ('labdsv', '1.6-1', ext_options), + ('MatrixModels', '0.3-1.1', ext_options), + ('stabs', '0.5-0', ext_options), + ('mboost', '2.4-1', ext_options), + ('msm', '1.5', ext_options), + ('nor1mix', '1.2-0', ext_options), + ('np', '0.60-2', ext_options), + ('polynom', '1.3-8', ext_options), + ('quantreg', '5.05', ext_options), + ('RcppEigen', '0.3.2.3.0', ext_options), + ('polspline', '1.1.9', ext_options), + ('TH.data', '1.0-6', ext_options), + ('multcomp', '1.3-8', ext_options), + ('rms', '4.2-1', ext_options), + ('RWekajars', '3.7.11-1', ext_options), + ('RWeka', '0.4-23', ext_options), + ('slam', '0.1-32', ext_options), + ('tm', '0.6', ext_options), + ('TraMineR', '1.8-8', ext_options), + ('chemometrics', '1.3.8', ext_options), + ('FNN', '1.1', ext_options), + ('ipred', '0.9-3', ext_options), + ('knitr', '1.8', ext_options), + ('statmod', '1.4.20', ext_options), + ('miscTools', '0.6-16', ext_options), + ('maxLik', '1.2-4', ext_options), + ('mlogit', '0.2-4', ext_options), + ('getopt', '1.20.0', ext_options), + ('gsalib', '2.1', ext_options), + ('reshape', '0.8.5', ext_options), + ('optparse', '1.3.0', ext_options), + ('klaR', '0.6-12', ext_options), + ('neuRosim', '0.2-12', ext_options), + ('affyio', '1.34.0', bioconductor_options), + ('BiocInstaller', '1.16.1', bioconductor_options), + ('preprocessCore', '1.28.0', bioconductor_options), + ('affy', '1.44.0', bioconductor_options), + ('GO.db', '3.0.0', bioconductor_options), + ('limma', '3.22.4', bioconductor_options), + ('RBGL', '1.42.0', bioconductor_options), + ('org.Hs.eg.db', '3.0.0', bioconductor_options), + ('AnnotationForge', '1.8.2', bioconductor_options), + ('KEGG.db', '3.0.0', bioconductor_options), + ('annaffy', '1.38.0', bioconductor_options), + ('gcrma', '2.38.0', bioconductor_options), + ('oligoClasses', '1.28.0', bioconductor_options), + ('edgeR', '3.8.5', bioconductor_options), + ('PFAM.db', '3.0.0', bioconductor_options), + ('locfit', '1.5-9.1', ext_options), + ('gridExtra', '0.9.1', ext_options), + ('GGally', '0.5.0', ext_options), + ('baySeq', '2.0.50', bioconductor_options), + ('beanplot', '1.2', ext_options), + ('clValid', '0.6-6', ext_options), + ('qvalue', '1.40.0', bioconductor_options), + ('impute', '1.40.0', bioconductor_options), + ('matrixStats', '0.12.2', ext_options), + ('samr', '2.0', ext_options), + ('DEGseq', '1.20.0', bioconductor_options), + ('DiscriMiner', '0.1-29', ext_options), + ('ellipse', '0.3-8', ext_options), + ('leaps', '2.9', ext_options), + ('FactoMineR', '1.28', ext_options), + ('modeltools', '0.2-21', ext_options), + ('flexclust', '1.3-4', ext_options), + ('flexmix', '2.3-12', ext_options), + ('prabclus', '2.2-6', ext_options), + ('diptest', '0.75-6', ext_options), + ('trimcluster', '0.1-2', ext_options), + ('fpc', '2.1-9', ext_options), + ('BiasedUrn', '1.06.1', ext_options), + ('hgu133plus2.db', '3.0.0', bioconductor_options), + ('TeachingDemos', '2.9', ext_options), + ('jsonlite', '0.9.14', ext_options), + ('kohonen', '2.0.15', ext_options), + ('base64', '1.1', ext_options), + ('illuminaio', '0.8.0', bioconductor_options), + ('registry', '0.2', ext_options), + ('pkgmaker', '0.22', ext_options), + ('rngtools', '1.2.4', ext_options), + ('doRNG', '1.6', ext_options), + ('bumphunter', '1.6.0', bioconductor_options), + ('multtest', '2.22.0', bioconductor_options), + ('siggenes', '1.40.0', bioconductor_options), + ('nleqslv', '2.5', ext_options), + ('DynDoc', '1.44.0', bioconductor_options), + ('genoset', '1.20.0', bioconductor_options), + ('RGCCA', '2.0', ext_options), + ('pheatmap', '0.7.7', ext_options), + ('multtest', '2.22.0', bioconductor_options), + ('NOISeq', '2.8.0', bioconductor_options), + ('openxlsx', '2.2.1', ext_options), + ('Rgraphviz', '2.10.0', bioconductor_options), + ('pvclust', '1.3-2', ext_options), + ('RCircos', '1.1.2', ext_options), + ('reshape', '0.8.5', ext_options), + ('RNASeqPower', '1.6.0', bioconductor_options), + ('VennDiagram', '1.6.9', ext_options), + ('xlsxjars', '0.6.1', ext_options), + ('xlsx', '0.5.7', ext_options), +] + +moduleclass = 'lang' diff --git a/r/R/R-3.2.0-goolf-1.7.20.eb b/r/R/R-3.2.0-goolf-1.7.20.eb new file mode 100644 index 00000000..499d383c --- /dev/null +++ b/r/R/R-3.2.0-goolf-1.7.20.eb @@ -0,0 +1,358 @@ +name = 'R' +version = '3.2.0' + +homepage = 'http://www.r-project.org/' +description = """R is a free software environment for statistical computing and graphics.""" + +toolchain = {'name': 'goolf', 'version': '1.7.20'} + +sources = [SOURCE_TAR_GZ] +source_urls = ['http://cran.us.r-project.org/src/base/R-%(version_major)s'] + +preconfigopts = 'BLAS_LIBS="$LIBBLAS" LAPACK_LIBS="$LIBLAPACK"' +configopts = "--with-lapack --with-blas --with-pic --enable-threads --with-x=no --enable-R-shlib" +# some recommended packages may fail in a parallel build (e.g. Matrix), and we're installing them anyway below +configopts += " --with-recommended-packages=no" + +dependencies = [ + ('libreadline', '6.3'), + ('ncurses', '5.9'), + ('libpng', '1.6.17'), # for plotting in R + ('libjpeg-turbo', '1.4.0'), # for plottting in R + ('Java', '1.7.0_80', '', True), # Java bindings are built if Java is found, might as well provide it + ('Tcl', '8.6.4'), # for tcltk + ('Tk', '8.6.4', '-no-X11'), # for tcltk + ('cURL', '7.43.0'), # for RCurl + ('libxml2', '2.9.2'), # for XML +] + +name_tmpl = '%(name)s_%(version)s.tar.gz' +ext_options = { + 'source_urls': [ + 'http://cran.r-project.org/src/contrib/Archive/%(name)s', # package archive + 'http://cran.r-project.org/src/contrib/', # current version of packages + 'http://cran.freestatistics.org/src/contrib', # mirror alternative for current packages + ], + 'source_tmpl': name_tmpl, +} + + +# !! order of packages is important !! +# packages updated on January 8th 2015 +exts_list = [ + # default libraries, only here to sanity check their presence + 'base', + 'datasets', + 'graphics', + 'grDevices', + 'grid', + 'methods', + 'splines', + 'stats', + 'stats4', + 'tools', + 'utils', + # non-standard libraries, should be specified with fixed versions! + # Rmpi segfaults (on some systems) when built with goolf/1.7.20? + #('Rmpi', '0.6-5', dict(ext_options.items() + [('patches', ['Rmpi-0.6-5_impi5.patch'])])), + ('abind', '1.4-3', ext_options), + ('magic', '1.5-6', ext_options), + ('geometry', '0.3-5', ext_options), + ('bit', '1.1-12', ext_options), + ('filehash', '2.2-2', ext_options), + ('ff', '2.2-13', ext_options), + ('bnlearn', '3.7.1', ext_options), + ('bootstrap', '2015.2', ext_options), + ('combinat', '0.0-8', ext_options), + ('deal', '1.2-37', ext_options), + ('fdrtool', '1.2.14', ext_options), + ('formatR', '1.2', ext_options), + ('gtools', '3.4.2', ext_options), + ('gdata', '2.13.3', ext_options), + ('GSA', '1.03', ext_options), + ('highr', '0.5', ext_options), + ('infotheo', '1.2.0', ext_options), + ('lars', '1.2', ext_options), + ('lazy', '1.2-15', ext_options), + ('kernlab', '0.9-20', ext_options), + ('mime', '0.3', ext_options), + ('markdown', '0.7.7', ext_options), + ('mlbench', '2.1-1', ext_options), + ('NLP', '0.1-6', ext_options), + ('mclust', '5.0.1', ext_options), + ('RANN', '2.5', ext_options), + ('rmeta', '2.16', ext_options), + ('segmented', '0.5-1.1', ext_options), + ('som', '0.3-5', ext_options), + ('SuppDists', '1.1-9.1', ext_options), + ('stabledist', '0.6-6', ext_options), + ('survivalROC', '1.0.3', ext_options), + ('pspline', '1.0-16', ext_options), + ('timeDate', '3012.100', ext_options), + ('longmemo', '1.0-0', ext_options), + ('ADGofTest', '0.3', ext_options), + ('ade4', '1.7-2', ext_options), + ('AlgDesign', '1.1-7.3', ext_options), + ('base64enc', '0.1-2', ext_options), + ('BH', '1.55.0-3', ext_options), + ('brew', '1.0-6', ext_options), + ('Brobdingnag', '1.2-4', ext_options), + ('corpcor', '1.6.7', ext_options), + ('longitudinal', '1.1.11', ext_options), + ('checkmate', '1.5.2', ext_options), + ('cubature', '1.1-2', ext_options), + ('DEoptimR', '1.0-2', ext_options), + ('digest', '0.6.8', ext_options), + ('fastmatch', '1.0-4', ext_options), + ('ffbase', '0.11.3', ext_options), + ('iterators', '1.0.7', ext_options), + ('maps', '2.3-9', ext_options), + ('nnls', '1.4', ext_options), + ('sendmailR', '1.2-1', ext_options), + ('spam', '1.0-1', ext_options), + ('subplex', '1.1-4', ext_options), + ('stringr', '0.6.2', ext_options), + ('evaluate', '0.7', ext_options), + ('logspline', '2.1.5', ext_options), + ('ncbit', '2013.03.29', ext_options), + ('permute', '0.8-3', ext_options), + ('plotrix', '3.5-11', ext_options), + ('randomForest', '4.6-10', ext_options), + ('scatterplot3d', '0.3-35', ext_options), + ('SparseM', '1.6', ext_options), + ('tripack', '1.3-6', ext_options), + ('irace', '1.06', ext_options), + ('rJava', '0.9-6', ext_options), + ('lattice', '0.20-31', ext_options), + ('RColorBrewer', '1.1-2', ext_options), + ('latticeExtra', '0.6-26', ext_options), + ('Matrix', '1.2-0', ext_options), + ('png', '0.1-7', ext_options), + ('Rcpp', '0.11.5', ext_options), + ('RcppArmadillo', '0.5.000.0', ext_options), + ('plyr', '1.8.2', ext_options), + ('pROC', '1.7.3', ext_options), + ('quadprog', '1.5-5', ext_options), + ('BB', '2014.10-1', ext_options), + ('BBmisc', '1.9', ext_options), + ('fail', '1.2', ext_options), + ('rlecuyer', '0.3-3', ext_options), + ('snow', '0.3-13', ext_options), + ('MASS', '7.3-40', ext_options), + ('tree', '1.0-35', ext_options), + ('pls', '2.4-3', ext_options), + ('class', '7.3-12', ext_options), + ('e1071', '1.6-4', ext_options), + ('nnet', '7.3-9', ext_options), + ('nlme', '3.1-120', ext_options), + ('minqa', '1.2.4', ext_options), + ('RcppEigen', '0.3.2.4.0', ext_options), + ('quantreg', '5.11', ext_options), + ('mgcv', '1.8-6', ext_options), + ('colorspace', '1.2-6', ext_options), + ('robustbase', '0.92-3', ext_options), + ('sp', '1.1-0', ext_options), + ('vcd', '1.3-2', ext_options), + ('snowfall', '1.84-6', ext_options), + ('rpart', '4.1-9', ext_options), + ('mice', '2.22', ext_options), + ('urca', '1.2-8', ext_options), + ('fracdiff', '1.4-2', ext_options), + ('logistf', '1.21', ext_options), + ('akima', '0.5-11', ext_options), + ('bitops', '1.0-6', ext_options), + ('boot', '1.3-15', ext_options), + ('mixtools', '1.0.3', ext_options), + ('cluster', '2.0.1', ext_options), + ('gclus', '1.3.1', ext_options), + ('coda', '0.17-1', ext_options), + ('codetools', '0.2-11', ext_options), + ('foreach', '1.4.2', ext_options), + ('doMC', '1.3.3', ext_options), + ('DBI', '0.3.1', ext_options), + ('foreign', '0.8-63', ext_options), + ('survival', '2.38-1', ext_options), + ('gam', '1.09.1', ext_options), + ('gamlss.data', '4.2-7', ext_options), + ('gamlss.dist', '4.3-4', ext_options), + ('hwriter', '1.3.2', ext_options), + ('KernSmooth', '2.23-14', ext_options), + ('zoo', '1.7-12', ext_options), + ('xts', '0.9-7', ext_options), + ('TTR', '0.22-0', ext_options), + ('quantmod', '0.4-4', ext_options), + ('lmtest', '0.9-33', ext_options), + ('mnormt', '1.5-2', ext_options), + ('mvtnorm', '1.0-2', ext_options), + ('pcaPP', '1.9-60', ext_options), + ('numDeriv', '2012.9-1', ext_options), + ('lava', '1.4.0', ext_options), + ('prodlim', '1.5.1', ext_options), + ('pscl', '1.4.9', ext_options), + ('RSQLite', '1.0.0', ext_options), + ('BatchJobs', '1.6', ext_options), + ('sandwich', '2.3-3', ext_options), + ('sfsmisc', '1.0-27', ext_options), + ('spatial', '7.3-9', ext_options), + ('VGAM', '0.9-7', ext_options), + ('waveslim', '1.7.5', ext_options), + ('xtable', '1.7-4', ext_options), + ('profileModel', '0.5-9', ext_options), + ('brglm', '0.5-9', ext_options), + ('deSolve', '1.11', ext_options), + ('tseriesChaos', '0.1-13', ext_options), + ('tseries', '0.10-34', ext_options), + ('fastICA', '1.2-0', ext_options), + ('R.methodsS3', '1.7.0', ext_options), + ('R.oo', '1.19.0', ext_options), + ('cgdsr', '1.1.33', ext_options), + ('R.utils', '2.0.1', ext_options), + ('R.matlab', '3.2.0', ext_options), + ('gbm', '2.1.1', ext_options), + ('dichromat', '2.0-0', ext_options), + ('Formula', '1.2-1', ext_options), + ('acepack', '1.3-3.3', ext_options), + ('reshape2', '1.4.1', ext_options), + ('gtable', '0.1.2', ext_options), + ('munsell', '0.4.2', ext_options), + ('labeling', '0.3', ext_options), + ('scales', '0.2.4', ext_options), + ('proto', '0.3-10', ext_options), + ('ggplot2', '1.0.1', ext_options), + ('Hmisc', '3.15-0', ext_options), + ('fastcluster', '1.1.16', ext_options), + ('chron', '2.3-45', ext_options), + ('data.table', '1.9.4', ext_options), + ('igraph', '0.7.1', ext_options), + ('GeneNet', '1.2.12', ext_options), + ('ape', '3.2', ext_options), + ('htmltools', '0.2.6', ext_options), + ('RJSONIO', '1.3-0', ext_options), + ('caTools', '1.17.1', ext_options), + ('gplots', '2.16.0', ext_options), + ('ROCR', '1.0-7', ext_options), + ('httpuv', '1.3.2', ext_options), + ('R6', '2.0.1', ext_options), + ('shiny', '0.11.1', ext_options), + ('adegenet', '1.4-2', ext_options), + ('phylobase', '0.6.8', ext_options), + ('adephylo', '1.1-6', ext_options), + ('animation', '2.3', ext_options), + ('bigmemory.sri', '0.1.3', ext_options), + ('bigmemory', '4.4.6', ext_options), + ('calibrate', '1.7.2', ext_options), + ('clusterGeneration', '1.3.4', ext_options), + ('raster', '2.3-40', ext_options), + ('dismo', '1.0-12', ext_options), + ('expm', '0.99-1.1', ext_options), + ('extrafontdb', '1.0', ext_options), + ('Rttf2pt1', '1.3.3', ext_options), + ('extrafont', '0.17', ext_options), + ('fields', '8.2-1', ext_options), + ('shapefiles', '0.7', ext_options), + ('fossil', '0.3.7', ext_options), + ('geiger', '2.0.3', ext_options), + ('glmnet', '2.0-2', ext_options), + ('labdsv', '1.6-1', ext_options), + ('MatrixModels', '0.4-0', ext_options), + ('stabs', '0.5-1', ext_options), + ('mboost', '2.4-2', ext_options), + ('msm', '1.5', ext_options), + ('nor1mix', '1.2-0', ext_options), + ('np', '0.60-2', ext_options), + ('polynom', '1.3-8', ext_options), + ('quantreg', '5.11', ext_options), + ('polspline', '1.1.9', ext_options), + ('TH.data', '1.0-6', ext_options), + ('multcomp', '1.4-0', ext_options), + ('gridExtra', '0.9.1', ext_options), + ('rms', '4.3-0', ext_options), + ('RWekajars', '3.7.12-1', ext_options), + ('RWeka', '0.4-24', ext_options), + ('slam', '0.1-32', ext_options), + ('tm', '0.6', ext_options), + ('TraMineR', '1.8-9', ext_options), + ('chemometrics', '1.3.9', ext_options), + ('FNN', '1.1', ext_options), + ('ipred', '0.9-4', ext_options), + ('yaml', '2.1.13', ext_options), + ('knitr', '1.10', ext_options), + ('statmod', '1.4.21', ext_options), + ('miscTools', '0.6-16', ext_options), + ('maxLik', '1.2-4', ext_options), + ('mlogit', '0.2-4', ext_options), + ('getopt', '1.20.0', ext_options), + ('gsalib', '2.1', ext_options), + ('reshape', '0.8.5', ext_options), + ('optparse', '1.3.0', ext_options), + ('klaR', '0.6-12', ext_options), + ('neuRosim', '0.2-12', ext_options), + ('locfit', '1.5-9.1', ext_options), + ('GGally', '0.5.0', ext_options), + ('beanplot', '1.2', ext_options), + ('clValid', '0.6-6', ext_options), + ('matrixStats', '0.14.0', ext_options), + ('DiscriMiner', '0.1-29', ext_options), + ('ellipse', '0.3-8', ext_options), + ('leaps', '2.9', ext_options), + ('nloptr', '1.0.4', ext_options), + ('lme4', '1.1-8', ext_options), + ('pbkrtest', '0.4-2', ext_options), + ('car', '2.0-25', ext_options), + ('flashClust', '1.01-2', ext_options), + ('FactoMineR', '1.29', ext_options), + ('modeltools', '0.2-21', ext_options), + ('flexclust', '1.3-4', ext_options), + ('flexmix', '2.3-13', ext_options), + ('prabclus', '2.2-6', ext_options), + ('diptest', '0.75-6', ext_options), + ('trimcluster', '0.1-2', ext_options), + ('fpc', '2.1-9', ext_options), + ('BiasedUrn', '1.06.1', ext_options), + ('TeachingDemos', '2.9', ext_options), + ('jsonlite', '0.9.16', ext_options), + ('kohonen', '2.0.18', ext_options), + ('base64', '1.1', ext_options), + ('registry', '0.2', ext_options), + ('pkgmaker', '0.22', ext_options), + ('rngtools', '1.2.4', ext_options), + ('doRNG', '1.6', ext_options), + ('nleqslv', '2.7', ext_options), + ('RGCCA', '2.0', ext_options), + ('pheatmap', '1.0.2', ext_options), + ('openxlsx', '2.4.0', ext_options), + ('pvclust', '1.3-2', ext_options), + ('RCircos', '1.1.2', ext_options), + ('VennDiagram', '1.6.9', ext_options), + ('xlsxjars', '0.6.1', ext_options), + ('xlsx', '0.5.7', ext_options), + ('vegan', '2.3-0', ext_options), + ('forecast', '6.1', ext_options), + ('fma', '2.01', ext_options), + ('expsmooth', '2.3', ext_options), + ('fpp', '0.5', ext_options), + ('XML', '3.98-1.1', ext_options), + ('memoise', '0.2.1', ext_options), + ('crayon', '1.3.1', ext_options), + ('testthat', '0.10.0', ext_options), + ('rmarkdown', '0.7', ext_options), + ('curl', '0.9.1', ext_options), + ('RCurl', '1.95-4.7', ext_options), + ('httr', '0.6.1', ext_options), + ('maptools', '0.8-36', ext_options), + ('deldir', '0.1-9', ext_options), + ('tensor', '1.5', ext_options), + ('polyclip', '1.3-0', ext_options), + ('goftest', '1.0-2', ext_options), + ('spatstat', '1.41-1', ext_options), + ('gdalUtils', '0.3.1', ext_options), + ('pracma', '1.8.3', ext_options), + ('bio3d', '2.2-2', ext_options), + ('penalized', '0.9-45', ext_options), + ('coin', '1.0-24', ext_options), + ('clusterRepro', '0.5-1.1', ext_options), + ('randomForestSRC', '2.0.7', ext_options), + ('sm', '2.2-5.4', ext_options), +] + +moduleclass = 'lang' diff --git a/r/R/R-3.2.3-foss-2015b.eb b/r/R/R-3.2.3-foss-2015b.eb new file mode 100644 index 00000000..c5745bc9 --- /dev/null +++ b/r/R/R-3.2.3-foss-2015b.eb @@ -0,0 +1,444 @@ +name = 'R' +version = '3.2.3' + +homepage = 'http://www.r-project.org/' +description = """R is a free software environment for statistical computing and graphics.""" + +toolchain = {'name': 'foss', 'version': '2015b'} + +sources = [SOURCE_TAR_GZ] +source_urls = ['http://cran.us.r-project.org/src/base/R-%(version_major)s'] + +preconfigopts = 'BLAS_LIBS="$LIBBLAS" LAPACK_LIBS="$LIBLAPACK"' +configopts = "--with-lapack --with-blas --with-pic --enable-threads --with-x=no --enable-R-shlib --with-tcltk --with-tcl-config=$EBROOTTCL/lib/tclConfig.sh --with-tk-config=$EBROOTTK/lib/tkConfig.sh" +# some recommended packages may fail in a parallel build (e.g. Matrix), and we're installing them anyway below +configopts += " --with-recommended-packages=no" + +dependencies = [ + ('libreadline', '6.3'), + ('ncurses', '5.9'), + ('libpng', '1.6.17'), # for plotting in R + ('libjpeg-turbo', '1.4.1'), # for plottting in R + ('Java', '1.8.0_72', '', True), # Java bindings are built if Java is found, might as well provide it + ('Tcl', '8.6.4'), # for tcltk + ('Tk', '8.6.4', '-no-X11'), # for tcltk + ('cURL', '7.45.0'), # for RCurl + ('libxml2', '2.9.2'), # for XML + ('GDAL', '2.0.1'), # for rgdal + ('PROJ', '4.8.0'), # for rgdal +] + +name_tmpl = '%(name)s_%(version)s.tar.gz' +ext_options = { + 'source_urls': [ + 'http://cran.r-project.org/src/contrib/Archive/%(name)s', # package archive + 'http://cran.r-project.org/src/contrib/', # current version of packages + 'http://cran.freestatistics.org/src/contrib', # mirror alternative for current packages + ], + 'source_tmpl': name_tmpl, +} + + +# !! order of packages is important !! +# packages updated on January 21st 2016 +exts_list = [ + # default libraries, only here to sanity check their presence + 'base', + 'datasets', + 'graphics', + 'grDevices', + 'grid', + 'methods', + 'splines', + 'stats', + 'stats4', + 'tools', + 'utils', + # non-standard libraries, should be specified with fixed versions! + ('Rmpi', '0.6-5', ext_options), + ('abind', '1.4-3', ext_options), + ('magic', '1.5-6', ext_options), + ('geometry', '0.3-6', ext_options), + ('bit', '1.1-12', ext_options), + ('filehash', '2.3', ext_options), + ('ff', '2.2-13', ext_options), + ('bnlearn', '3.9', ext_options), + ('bootstrap', '2015.2', ext_options), + ('combinat', '0.0-8', ext_options), + ('deal', '1.2-37', ext_options), + ('fdrtool', '1.2.15', ext_options), + ('formatR', '1.2.1', ext_options), + ('gtools', '3.5.0', ext_options), + ('gdata', '2.17.0', ext_options), + ('GSA', '1.03', ext_options), + ('highr', '0.5.1', ext_options), + ('infotheo', '1.2.0', ext_options), + ('lars', '1.2', ext_options), + ('lazy', '1.2-15', ext_options), + ('kernlab', '0.9-22', ext_options), + ('mime', '0.4', ext_options), + ('markdown', '0.7.7', ext_options), + ('mlbench', '2.1-1', ext_options), + ('NLP', '0.1-8', ext_options), + ('mclust', '5.1', ext_options), + ('RANN', '2.5', ext_options), + ('rmeta', '2.16', ext_options), + ('segmented', '0.5-1.4', ext_options), + ('som', '0.3-5', ext_options), + ('SuppDists', '1.1-9.1', ext_options), + ('stabledist', '0.7-0', ext_options), + ('survivalROC', '1.0.3', ext_options), + ('pspline', '1.0-17', ext_options), + ('timeDate', '3012.100', ext_options), + ('longmemo', '1.0-0', ext_options), + ('ADGofTest', '0.3', ext_options), + ('ade4', '1.7-3', ext_options), + ('AlgDesign', '1.1-7.3', ext_options), + ('base64enc', '0.1-3', ext_options), + ('BH', '1.60.0-1', ext_options), + ('brew', '1.0-6', ext_options), + ('Brobdingnag', '1.2-4', ext_options), + ('corpcor', '1.6.8', ext_options), + ('longitudinal', '1.1.12', ext_options), + ('checkmate', '1.6.3', ext_options), + ('cubature', '1.1-2', ext_options), + ('DEoptimR', '1.0-4', ext_options), + ('digest', '0.6.8', ext_options), + ('fastmatch', '1.0-4', ext_options), + ('ffbase', '0.12.1', ext_options), + ('iterators', '1.0.8', ext_options), + ('maps', '3.0.2', ext_options), + ('nnls', '1.4', ext_options), + ('sendmailR', '1.2-1', ext_options), + ('spam', '1.3-0', ext_options), + ('subplex', '1.1-6', ext_options), + ('stringi', '1.0-1', ext_options), + ('magrittr', '1.5', ext_options), + ('stringr', '1.0.0', ext_options), + ('evaluate', '0.8', ext_options), + ('logspline', '2.1.8', ext_options), + ('ncbit', '2013.03.29', ext_options), + ('permute', '0.8-4', ext_options), + ('plotrix', '3.6-1', ext_options), + ('randomForest', '4.6-12', ext_options), + ('scatterplot3d', '0.3-36', ext_options), + ('SparseM', '1.7', ext_options), + ('tripack', '1.3-7', ext_options), + ('irace', '1.07', ext_options), + ('rJava', '0.9-7', ext_options), + ('lattice', '0.20-33', ext_options), + ('RColorBrewer', '1.1-2', ext_options), + ('latticeExtra', '0.6-26', ext_options), + ('Matrix', '1.2-3', ext_options), + ('png', '0.1-7', ext_options), + ('Rcpp', '0.12.2', ext_options), + ('RcppArmadillo', '0.6.400.2.2', ext_options), + ('plyr', '1.8.3', ext_options), + ('pROC', '1.8', ext_options), + ('quadprog', '1.5-5', ext_options), + ('BB', '2014.10-1', ext_options), + ('BBmisc', '1.9', ext_options), + ('fail', '1.3', ext_options), + ('rlecuyer', '0.3-4', ext_options), + ('snow', '0.4-1', ext_options), + ('MASS', '7.3-45', ext_options), + ('tree', '1.0-36', ext_options), + ('pls', '2.5-0', ext_options), + ('class', '7.3-14', ext_options), + ('e1071', '1.6-7', ext_options), + ('nnet', '7.3-11', ext_options), + ('nlme', '3.1-122', ext_options), + ('minqa', '1.2.4', ext_options), + ('RcppEigen', '0.3.2.5.1', ext_options), + ('MatrixModels', '0.4-1', ext_options), + ('quantreg', '5.19', ext_options), + ('mgcv', '1.8-10', ext_options), + ('colorspace', '1.2-6', ext_options), + ('robustbase', '0.92-5', ext_options), + ('sp', '1.2-1', ext_options), + ('zoo', '1.7-12', ext_options), + ('lmtest', '0.9-34', ext_options), + ('vcd', '1.4-1', ext_options), + ('snowfall', '1.84-6.1', ext_options), + ('rpart', '4.1-10', ext_options), + ('survival', '2.38-3', ext_options), + ('mice', '2.25', ext_options), + ('urca', '1.2-8', ext_options), + ('fracdiff', '1.4-2', ext_options), + ('logistf', '1.21', ext_options), + ('akima', '0.5-12', ext_options), + ('bitops', '1.0-6', ext_options), + ('boot', '1.3-17', ext_options), + ('mixtools', '1.0.3', ext_options), + ('cluster', '2.0.3', ext_options), + ('gclus', '1.3.1', ext_options), + ('coda', '0.18-1', ext_options), + ('codetools', '0.2-14', ext_options), + ('foreach', '1.4.3', ext_options), + ('doMC', '1.3.4', ext_options), + ('DBI', '0.3.1', ext_options), + ('foreign', '0.8-66', ext_options), + ('gam', '1.12', ext_options), + ('gamlss.data', '4.3-2', ext_options), + ('gamlss.dist', '4.3-5', ext_options), + ('hwriter', '1.3.2', ext_options), + ('KernSmooth', '2.23-15', ext_options), + ('xts', '0.9-7', ext_options), + ('TTR', '0.23-0', ext_options), + ('quantmod', '0.4-5', ext_options), + ('mnormt', '1.5-3', ext_options), + ('mvtnorm', '1.0-3', ext_options), + ('pcaPP', '1.9-60', ext_options), + ('numDeriv', '2014.2-1', ext_options), + ('lava', '1.4.1', ext_options), + ('prodlim', '1.5.7', ext_options), + ('pscl', '1.4.9', ext_options), + ('RSQLite', '1.0.0', ext_options), + ('BatchJobs', '1.6', ext_options), + ('sandwich', '2.3-4', ext_options), + ('sfsmisc', '1.0-28', ext_options), + ('spatial', '7.3-11', ext_options), + ('VGAM', '1.0-0', ext_options), + ('waveslim', '1.7.5', ext_options), + ('xtable', '1.8-0', ext_options), + ('profileModel', '0.5-9', ext_options), + ('brglm', '0.5-9', ext_options), + ('deSolve', '1.12', ext_options), + ('tseriesChaos', '0.1-13', ext_options), + ('tseries', '0.10-34', ext_options), + ('fastICA', '1.2-0', ext_options), + ('R.methodsS3', '1.7.0', ext_options), + ('R.oo', '1.19.0', ext_options), + ('cgdsr', '1.2.5', ext_options), + ('R.utils', '2.2.0', ext_options), + ('R.matlab', '3.3.0', ext_options), + ('gbm', '2.1.1', ext_options), + ('dichromat', '2.0-0', ext_options), + ('Formula', '1.2-1', ext_options), + ('acepack', '1.3-3.3', ext_options), + ('reshape2', '1.4.1', ext_options), + ('gtable', '0.1.2', ext_options), + ('munsell', '0.4.2', ext_options), + ('labeling', '0.3', ext_options), + ('scales', '0.3.0', ext_options), + ('proto', '0.3-10', ext_options), + ('ggplot2', '2.0.0', ext_options), + ('gridExtra', '2.0.0', ext_options), + ('Hmisc', '3.17-1', ext_options), + ('fastcluster', '1.1.16', ext_options), + ('chron', '2.3-47', ext_options), + ('data.table', '1.9.6', ext_options), + ('registry', '0.3', ext_options), + ('pkgmaker', '0.22', ext_options), + ('rngtools', '1.2.4', ext_options), + ('doParallel', '1.0.10', ext_options), + ('gridBase', '0.4-7', ext_options), + ('NMF', '0.20.6', ext_options), + ('irlba', '2.0.0', ext_options), + ('igraph', '1.0.1', ext_options), + ('GeneNet', '1.2.13', ext_options), + ('ape', '3.4', ext_options), + ('htmltools', '0.3', ext_options), + ('RJSONIO', '1.3-0', ext_options), + ('caTools', '1.17.1', ext_options), + ('gplots', '2.17.0', ext_options), + ('ROCR', '1.0-7', ext_options), + ('httpuv', '1.3.3', ext_options), + ('R6', '2.1.1', ext_options), + ('jsonlite', '0.9.19', ext_options), + ('rjson', '0.2.15', ext_options), + ('shiny', '0.12.2', ext_options), + ('seqinr', '3.1-3', ext_options), + ('LearnBayes', '2.15', ext_options), + ('deldir', '0.1-9', ext_options), + ('spdep', '0.5-92', ext_options), + ('assertthat', '0.1', ext_options), + ('lazyeval', '0.1.10', ext_options), + ('dplyr', '0.4.3', ext_options), + ('adegenet', '2.0.0', ext_options), + ('rncl', '0.6.0', ext_options), + ('XML', '3.98-1.3', ext_options), + ('memoise', '0.2.1', ext_options), + ('crayon', '1.3.1', ext_options), + ('praise', '1.0.0', ext_options), + ('testthat', '0.11.0', ext_options), + ('yaml', '2.1.13', ext_options), + ('knitr', '1.11', ext_options), + ('rmarkdown', '0.9.2', ext_options), + ('curl', '0.9.4', ext_options), + ('httr', '1.0.0', ext_options), + ('reshape', '0.8.5', ext_options), + ('bold', '0.3.0', ext_options), + ('taxize', '0.7.0', ext_options), + ('tidyr', '0.3.1', ext_options), + ('uuid', '0.1-2', ext_options), + ('RNeXML', '2.0.5', ext_options), + ('phylobase', '0.8.0', ext_options), + ('adephylo', '1.1-6', ext_options), + ('animation', '2.4', ext_options), + ('bigmemory.sri', '0.1.3', ext_options), + ('bigmemory', '4.5.8', ext_options), + ('calibrate', '1.7.2', ext_options), + ('clusterGeneration', '1.3.4', ext_options), + ('raster', '2.5-2', ext_options), + ('dismo', '1.0-12', ext_options), + ('expm', '0.999-0', ext_options), + ('extrafontdb', '1.0', ext_options), + ('Rttf2pt1', '1.3.3', ext_options), + ('extrafont', '0.17', ext_options), + ('fields', '8.3-6', ext_options), + ('shapefiles', '0.7', ext_options), + ('fossil', '0.3.7', ext_options), + ('geiger', '2.0.6', ext_options), + ('glmnet', '2.0-2', ext_options), + ('rgl', '0.95.1441', ext_options), + ('labdsv', '1.7-0', ext_options), + ('stabs', '0.5-1', ext_options), + ('mboost', '2.5-0', ext_options), + ('msm', '1.6', ext_options), + ('nor1mix', '1.2-1', ext_options), + ('np', '0.60-2', ext_options), + ('polynom', '1.3-8', ext_options), + ('polspline', '1.1.12', ext_options), + ('TH.data', '1.0-6', ext_options), + ('multcomp', '1.4-1', ext_options), + ('rms', '4.4-1', ext_options), + ('RWekajars', '3.7.12-1', ext_options), + ('RWeka', '0.4-24', ext_options), + ('slam', '0.1-32', ext_options), + ('tm', '0.6-2', ext_options), + ('TraMineR', '1.8-11', ext_options), + ('chemometrics', '1.3.9', ext_options), + ('FNN', '1.1', ext_options), + ('ipred', '0.9-5', ext_options), + ('statmod', '1.4.23', ext_options), + ('miscTools', '0.6-16', ext_options), + ('maxLik', '1.3-4', ext_options), + ('mlogit', '0.2-4', ext_options), + ('getopt', '1.20.0', ext_options), + ('gsalib', '2.1', ext_options), + ('optparse', '1.3.2', ext_options), + ('klaR', '0.6-12', ext_options), + ('neuRosim', '0.2-12', ext_options), + ('locfit', '1.5-9.1', ext_options), + ('GGally', '1.0.0', ext_options), + ('beanplot', '1.2', ext_options), + ('clValid', '0.6-6', ext_options), + ('matrixStats', '0.50.1', ext_options), + ('DiscriMiner', '0.1-29', ext_options), + ('ellipse', '0.3-8', ext_options), + ('leaps', '2.9', ext_options), + ('nloptr', '1.0.4', ext_options), + ('lme4', '1.1-10', ext_options), + ('pbkrtest', '0.4-4', ext_options), + ('car', '2.1-1', ext_options), + ('flashClust', '1.01-2', ext_options), + ('FactoMineR', '1.31.4', ext_options), + ('modeltools', '0.2-21', ext_options), + ('flexclust', '1.3-4', ext_options), + ('flexmix', '2.3-13', ext_options), + ('prabclus', '2.2-6', ext_options), + ('diptest', '0.75-7', ext_options), + ('trimcluster', '0.1-2', ext_options), + ('fpc', '2.1-10', ext_options), + ('BiasedUrn', '1.07', ext_options), + ('TeachingDemos', '2.9', ext_options), + ('kohonen', '2.0.19', ext_options), + ('base64', '1.1', ext_options), + ('doRNG', '1.6', ext_options), + ('nleqslv', '2.9.1', ext_options), + ('RGCCA', '2.0', ext_options), + ('pheatmap', '1.0.8', ext_options), + ('openxlsx', '3.0.0', ext_options), + ('pvclust', '2.0-0', ext_options), + ('RCircos', '1.1.3', ext_options), + ('lambda.r', '1.1.7', ext_options), + ('futile.options', '1.0.0', ext_options), + ('futile.logger', '1.4.1', ext_options), + ('VennDiagram', '1.6.16', ext_options), + ('xlsxjars', '0.6.1', ext_options), + ('xlsx', '0.5.7', ext_options), + ('vegan', '2.3-2', ext_options), + ('forecast', '6.1', ext_options), + ('fma', '2.01', ext_options), + ('expsmooth', '2.3', ext_options), + ('fpp', '0.5', ext_options), + ('maptools', '0.8-37', ext_options), + ('deldir', '0.1-9', ext_options), + ('tensor', '1.5', ext_options), + ('polyclip', '1.3-2', ext_options), + ('goftest', '1.0-3', ext_options), + ('spatstat', '1.44-1', ext_options), + ('rgdal', '1.1-3', ext_options), + ('gdalUtils', '2.0.1.7', ext_options), + ('pracma', '1.8.8', ext_options), + ('RCurl', '1.95-4.7', ext_options), + ('bio3d', '2.2-4', ext_options), + ('AUC', '0.3.0', ext_options), + ('interpretR', '0.2.3', ext_options), + ('SuperLearner', '2.0-15', ext_options), + ('lpSolve', '5.6.13', ext_options), + ('mediation', '4.4.5', ext_options), + ('caret', '6.0-64', ext_options), + ('adabag', '4.1', ext_options), + ('parallelMap', '1.3', ext_options), + ('ParamHelpers', '1.6', ext_options), + ('ggvis', '0.4.2', ext_options), + ('mlr', '2.7', ext_options), + ('unbalanced', '2.0', ext_options), + ('RSNNS', '0.4-7', ext_options), + ('abc.data', '1.0', ext_options), + ('abc', '2.1', ext_options), + ('lhs', '0.10', ext_options), + ('tensorA', '0.36', ext_options), + ('EasyABC', '1.5', ext_options), + ('shape', '1.4.2', ext_options), + ('whisker', '0.3-2', ext_options), + ('rstudioapi', '0.4.0', ext_options), + ('roxygen2', '5.0.1', ext_options), + ('git2r', '0.13.1', ext_options), + ('xml2', '0.1.2', ext_options), + ('rversions', '1.0.2', ext_options), + ('devtools', '1.9.1', ext_options), + ('Rook', '1.1-1', ext_options), + ('rjson', '0.2.15', ext_options), + ('RMTstat', '0.3', ext_options), + ('Lmoments', '1.1-6', ext_options), + ('distillery', '1.0-2', ext_options), + ('extRemes', '2.0-7', ext_options), + ('pixmap', '0.4-11', ext_options), + ('pixmap', '0.4-11', ext_options), + ('tkrplot', '0.0-23', ext_options), + ('misc3d', '0.8-4', ext_options), + ('multicool', '0.1-9', ext_options), + ('ks', '1.10.1', ext_options), + ('logcondens', '2.1.4', ext_options), + ('Iso', '0.0-17', ext_options), + ('penalized', '0.9-45', ext_options), + ('coin', '1.1-2', ext_options), + ('clusterRepro', '0.5-1.1', ext_options), + ('randomForestSRC', '2.0.7', ext_options), + ('sm', '2.2-5.4', ext_options), + ('psych', '1.5.8', ext_options), + ('pbivnorm', '0.6.0', ext_options), + ('lavaan', '0.5-20', ext_options), + ('matrixcalc', '1.0-3', ext_options), + ('arm', '1.8-6', ext_options), + ('mi', '1.0', ext_options), + ('htmlwidgets', '0.6', ext_options), + ('visNetwork', '0.2.1', ext_options), + ('DiagrammeR', '0.8.2', ext_options), + ('sem', '3.1-6', ext_options), + ('jpeg', '0.1-8', ext_options), + ('sna', '2.3-2', ext_options), + ('glasso', '1.8', ext_options), + ('huge', '1.2.7', ext_options), + ('d3Network', '0.5.2.1', ext_options), + ('ggm', '2.3', ext_options), + ('qgraph', '1.3.2', ext_options), + ('diveRsity', '1.9.89', ext_options), + ('doSNOW', '1.0.14', ext_options), + ('phangorn', '2.0.2', ext_options), +] + +moduleclass = 'lang' diff --git a/r/R/R-3.2.3-foss-2016a.eb b/r/R/R-3.2.3-foss-2016a.eb new file mode 100644 index 00000000..323a1f25 --- /dev/null +++ b/r/R/R-3.2.3-foss-2016a.eb @@ -0,0 +1,444 @@ +name = 'R' +version = '3.2.3' + +homepage = 'http://www.r-project.org/' +description = """R is a free software environment for statistical computing and graphics.""" + +toolchain = {'name': 'foss', 'version': '2016a'} + +sources = [SOURCE_TAR_GZ] +source_urls = ['http://cran.us.r-project.org/src/base/R-%(version_major)s'] + +preconfigopts = 'BLAS_LIBS="$LIBBLAS" LAPACK_LIBS="$LIBLAPACK"' +configopts = "--with-lapack --with-blas --with-pic --enable-threads --with-x=no --enable-R-shlib" +# some recommended packages may fail in a parallel build (e.g. Matrix), and we're installing them anyway below +configopts += " --with-recommended-packages=no" + +dependencies = [ + ('libreadline', '6.3'), + ('ncurses', '6.0'), + ('libpng', '1.6.21'), # for plotting in R + ('libjpeg-turbo', '1.4.2'), # for plottting in R + ('Java', '1.8.0_72', '', True), # Java bindings are built if Java is found, might as well provide it + ('Tcl', '8.6.4'), # for tcltk + ('Tk', '8.6.4', '-no-X11'), # for tcltk + ('cURL', '7.47.0'), # for RCurl + ('libxml2', '2.9.3'), # for XML + ('GDAL', '2.0.2'), # for rgdal + ('PROJ', '4.9.2'), # for rgdal +] + +name_tmpl = '%(name)s_%(version)s.tar.gz' +ext_options = { + 'source_urls': [ + 'http://cran.r-project.org/src/contrib/Archive/%(name)s', # package archive + 'http://cran.r-project.org/src/contrib/', # current version of packages + 'http://cran.freestatistics.org/src/contrib', # mirror alternative for current packages + ], + 'source_tmpl': name_tmpl, +} + + +# !! order of packages is important !! +# packages updated on January 21st 2016 +exts_list = [ + # default libraries, only here to sanity check their presence + 'base', + 'datasets', + 'graphics', + 'grDevices', + 'grid', + 'methods', + 'splines', + 'stats', + 'stats4', + 'tools', + 'utils', + # non-standard libraries, should be specified with fixed versions! + ('Rmpi', '0.6-5', ext_options), + ('abind', '1.4-3', ext_options), + ('magic', '1.5-6', ext_options), + ('geometry', '0.3-6', ext_options), + ('bit', '1.1-12', ext_options), + ('filehash', '2.3', ext_options), + ('ff', '2.2-13', ext_options), + ('bnlearn', '3.9', ext_options), + ('bootstrap', '2015.2', ext_options), + ('combinat', '0.0-8', ext_options), + ('deal', '1.2-37', ext_options), + ('fdrtool', '1.2.15', ext_options), + ('formatR', '1.2.1', ext_options), + ('gtools', '3.5.0', ext_options), + ('gdata', '2.17.0', ext_options), + ('GSA', '1.03', ext_options), + ('highr', '0.5.1', ext_options), + ('infotheo', '1.2.0', ext_options), + ('lars', '1.2', ext_options), + ('lazy', '1.2-15', ext_options), + ('kernlab', '0.9-22', ext_options), + ('mime', '0.4', ext_options), + ('markdown', '0.7.7', ext_options), + ('mlbench', '2.1-1', ext_options), + ('NLP', '0.1-8', ext_options), + ('mclust', '5.1', ext_options), + ('RANN', '2.5', ext_options), + ('rmeta', '2.16', ext_options), + ('segmented', '0.5-1.4', ext_options), + ('som', '0.3-5', ext_options), + ('SuppDists', '1.1-9.1', ext_options), + ('stabledist', '0.7-0', ext_options), + ('survivalROC', '1.0.3', ext_options), + ('pspline', '1.0-17', ext_options), + ('timeDate', '3012.100', ext_options), + ('longmemo', '1.0-0', ext_options), + ('ADGofTest', '0.3', ext_options), + ('ade4', '1.7-3', ext_options), + ('AlgDesign', '1.1-7.3', ext_options), + ('base64enc', '0.1-3', ext_options), + ('BH', '1.60.0-1', ext_options), + ('brew', '1.0-6', ext_options), + ('Brobdingnag', '1.2-4', ext_options), + ('corpcor', '1.6.8', ext_options), + ('longitudinal', '1.1.12', ext_options), + ('checkmate', '1.6.3', ext_options), + ('cubature', '1.1-2', ext_options), + ('DEoptimR', '1.0-4', ext_options), + ('digest', '0.6.8', ext_options), + ('fastmatch', '1.0-4', ext_options), + ('ffbase', '0.12.1', ext_options), + ('iterators', '1.0.8', ext_options), + ('maps', '3.0.2', ext_options), + ('nnls', '1.4', ext_options), + ('sendmailR', '1.2-1', ext_options), + ('spam', '1.3-0', ext_options), + ('subplex', '1.1-6', ext_options), + ('stringi', '1.0-1', ext_options), + ('magrittr', '1.5', ext_options), + ('stringr', '1.0.0', ext_options), + ('evaluate', '0.8', ext_options), + ('logspline', '2.1.8', ext_options), + ('ncbit', '2013.03.29', ext_options), + ('permute', '0.8-4', ext_options), + ('plotrix', '3.6-1', ext_options), + ('randomForest', '4.6-12', ext_options), + ('scatterplot3d', '0.3-36', ext_options), + ('SparseM', '1.7', ext_options), + ('tripack', '1.3-7', ext_options), + ('irace', '1.07', ext_options), + ('rJava', '0.9-7', ext_options), + ('lattice', '0.20-33', ext_options), + ('RColorBrewer', '1.1-2', ext_options), + ('latticeExtra', '0.6-26', ext_options), + ('Matrix', '1.2-3', ext_options), + ('png', '0.1-7', ext_options), + ('Rcpp', '0.12.2', ext_options), + ('RcppArmadillo', '0.6.400.2.2', ext_options), + ('plyr', '1.8.3', ext_options), + ('pROC', '1.8', ext_options), + ('quadprog', '1.5-5', ext_options), + ('BB', '2014.10-1', ext_options), + ('BBmisc', '1.9', ext_options), + ('fail', '1.3', ext_options), + ('rlecuyer', '0.3-4', ext_options), + ('snow', '0.4-1', ext_options), + ('MASS', '7.3-45', ext_options), + ('tree', '1.0-36', ext_options), + ('pls', '2.5-0', ext_options), + ('class', '7.3-14', ext_options), + ('e1071', '1.6-7', ext_options), + ('nnet', '7.3-11', ext_options), + ('nlme', '3.1-122', ext_options), + ('minqa', '1.2.4', ext_options), + ('RcppEigen', '0.3.2.5.1', ext_options), + ('MatrixModels', '0.4-1', ext_options), + ('quantreg', '5.19', ext_options), + ('mgcv', '1.8-10', ext_options), + ('colorspace', '1.2-6', ext_options), + ('robustbase', '0.92-5', ext_options), + ('sp', '1.2-1', ext_options), + ('zoo', '1.7-12', ext_options), + ('lmtest', '0.9-34', ext_options), + ('vcd', '1.4-1', ext_options), + ('snowfall', '1.84-6.1', ext_options), + ('rpart', '4.1-10', ext_options), + ('survival', '2.38-3', ext_options), + ('mice', '2.25', ext_options), + ('urca', '1.2-8', ext_options), + ('fracdiff', '1.4-2', ext_options), + ('logistf', '1.21', ext_options), + ('akima', '0.5-12', ext_options), + ('bitops', '1.0-6', ext_options), + ('boot', '1.3-17', ext_options), + ('mixtools', '1.0.3', ext_options), + ('cluster', '2.0.3', ext_options), + ('gclus', '1.3.1', ext_options), + ('coda', '0.18-1', ext_options), + ('codetools', '0.2-14', ext_options), + ('foreach', '1.4.3', ext_options), + ('doMC', '1.3.4', ext_options), + ('DBI', '0.3.1', ext_options), + ('foreign', '0.8-66', ext_options), + ('gam', '1.12', ext_options), + ('gamlss.data', '4.3-2', ext_options), + ('gamlss.dist', '4.3-5', ext_options), + ('hwriter', '1.3.2', ext_options), + ('KernSmooth', '2.23-15', ext_options), + ('xts', '0.9-7', ext_options), + ('TTR', '0.23-0', ext_options), + ('quantmod', '0.4-5', ext_options), + ('mnormt', '1.5-3', ext_options), + ('mvtnorm', '1.0-3', ext_options), + ('pcaPP', '1.9-60', ext_options), + ('numDeriv', '2014.2-1', ext_options), + ('lava', '1.4.1', ext_options), + ('prodlim', '1.5.7', ext_options), + ('pscl', '1.4.9', ext_options), + ('RSQLite', '1.0.0', ext_options), + ('BatchJobs', '1.6', ext_options), + ('sandwich', '2.3-4', ext_options), + ('sfsmisc', '1.0-28', ext_options), + ('spatial', '7.3-11', ext_options), + ('VGAM', '1.0-0', ext_options), + ('waveslim', '1.7.5', ext_options), + ('xtable', '1.8-0', ext_options), + ('profileModel', '0.5-9', ext_options), + ('brglm', '0.5-9', ext_options), + ('deSolve', '1.12', ext_options), + ('tseriesChaos', '0.1-13', ext_options), + ('tseries', '0.10-34', ext_options), + ('fastICA', '1.2-0', ext_options), + ('R.methodsS3', '1.7.0', ext_options), + ('R.oo', '1.19.0', ext_options), + ('cgdsr', '1.2.5', ext_options), + ('R.utils', '2.2.0', ext_options), + ('R.matlab', '3.3.0', ext_options), + ('gbm', '2.1.1', ext_options), + ('dichromat', '2.0-0', ext_options), + ('Formula', '1.2-1', ext_options), + ('acepack', '1.3-3.3', ext_options), + ('reshape2', '1.4.1', ext_options), + ('gtable', '0.1.2', ext_options), + ('munsell', '0.4.2', ext_options), + ('labeling', '0.3', ext_options), + ('scales', '0.3.0', ext_options), + ('proto', '0.3-10', ext_options), + ('ggplot2', '2.0.0', ext_options), + ('gridExtra', '2.0.0', ext_options), + ('Hmisc', '3.17-1', ext_options), + ('fastcluster', '1.1.16', ext_options), + ('chron', '2.3-47', ext_options), + ('data.table', '1.9.6', ext_options), + ('registry', '0.3', ext_options), + ('pkgmaker', '0.22', ext_options), + ('rngtools', '1.2.4', ext_options), + ('doParallel', '1.0.10', ext_options), + ('gridBase', '0.4-7', ext_options), + ('NMF', '0.20.6', ext_options), + ('irlba', '2.0.0', ext_options), + ('igraph', '1.0.1', ext_options), + ('GeneNet', '1.2.13', ext_options), + ('ape', '3.4', ext_options), + ('htmltools', '0.3', ext_options), + ('RJSONIO', '1.3-0', ext_options), + ('caTools', '1.17.1', ext_options), + ('gplots', '2.17.0', ext_options), + ('ROCR', '1.0-7', ext_options), + ('httpuv', '1.3.3', ext_options), + ('R6', '2.1.1', ext_options), + ('jsonlite', '0.9.19', ext_options), + ('rjson', '0.2.15', ext_options), + ('shiny', '0.12.2', ext_options), + ('seqinr', '3.1-3', ext_options), + ('LearnBayes', '2.15', ext_options), + ('deldir', '0.1-9', ext_options), + ('spdep', '0.5-92', ext_options), + ('assertthat', '0.1', ext_options), + ('lazyeval', '0.1.10', ext_options), + ('dplyr', '0.4.3', ext_options), + ('adegenet', '2.0.0', ext_options), + ('rncl', '0.6.0', ext_options), + ('XML', '3.98-1.3', ext_options), + ('memoise', '0.2.1', ext_options), + ('crayon', '1.3.1', ext_options), + ('praise', '1.0.0', ext_options), + ('testthat', '0.11.0', ext_options), + ('yaml', '2.1.13', ext_options), + ('knitr', '1.11', ext_options), + ('rmarkdown', '0.9.2', ext_options), + ('curl', '0.9.4', ext_options), + ('httr', '1.0.0', ext_options), + ('reshape', '0.8.5', ext_options), + ('bold', '0.3.0', ext_options), + ('taxize', '0.7.0', ext_options), + ('tidyr', '0.3.1', ext_options), + ('uuid', '0.1-2', ext_options), + ('RNeXML', '2.0.5', ext_options), + ('phylobase', '0.8.0', ext_options), + ('adephylo', '1.1-6', ext_options), + ('animation', '2.4', ext_options), + ('bigmemory.sri', '0.1.3', ext_options), + ('bigmemory', '4.5.8', ext_options), + ('calibrate', '1.7.2', ext_options), + ('clusterGeneration', '1.3.4', ext_options), + ('raster', '2.5-2', ext_options), + ('dismo', '1.0-12', ext_options), + ('expm', '0.999-0', ext_options), + ('extrafontdb', '1.0', ext_options), + ('Rttf2pt1', '1.3.3', ext_options), + ('extrafont', '0.17', ext_options), + ('fields', '8.3-6', ext_options), + ('shapefiles', '0.7', ext_options), + ('fossil', '0.3.7', ext_options), + ('geiger', '2.0.6', ext_options), + ('glmnet', '2.0-2', ext_options), + ('rgl', '0.95.1441', ext_options), + ('labdsv', '1.7-0', ext_options), + ('stabs', '0.5-1', ext_options), + ('mboost', '2.5-0', ext_options), + ('msm', '1.6', ext_options), + ('nor1mix', '1.2-1', ext_options), + ('np', '0.60-2', ext_options), + ('polynom', '1.3-8', ext_options), + ('polspline', '1.1.12', ext_options), + ('TH.data', '1.0-6', ext_options), + ('multcomp', '1.4-1', ext_options), + ('rms', '4.4-1', ext_options), + ('RWekajars', '3.7.12-1', ext_options), + ('RWeka', '0.4-24', ext_options), + ('slam', '0.1-32', ext_options), + ('tm', '0.6-2', ext_options), + ('TraMineR', '1.8-11', ext_options), + ('chemometrics', '1.3.9', ext_options), + ('FNN', '1.1', ext_options), + ('ipred', '0.9-5', ext_options), + ('statmod', '1.4.23', ext_options), + ('miscTools', '0.6-16', ext_options), + ('maxLik', '1.3-4', ext_options), + ('mlogit', '0.2-4', ext_options), + ('getopt', '1.20.0', ext_options), + ('gsalib', '2.1', ext_options), + ('optparse', '1.3.2', ext_options), + ('klaR', '0.6-12', ext_options), + ('neuRosim', '0.2-12', ext_options), + ('locfit', '1.5-9.1', ext_options), + ('GGally', '1.0.0', ext_options), + ('beanplot', '1.2', ext_options), + ('clValid', '0.6-6', ext_options), + ('matrixStats', '0.50.1', ext_options), + ('DiscriMiner', '0.1-29', ext_options), + ('ellipse', '0.3-8', ext_options), + ('leaps', '2.9', ext_options), + ('nloptr', '1.0.4', ext_options), + ('lme4', '1.1-10', ext_options), + ('pbkrtest', '0.4-4', ext_options), + ('car', '2.1-1', ext_options), + ('flashClust', '1.01-2', ext_options), + ('FactoMineR', '1.31.4', ext_options), + ('modeltools', '0.2-21', ext_options), + ('flexclust', '1.3-4', ext_options), + ('flexmix', '2.3-13', ext_options), + ('prabclus', '2.2-6', ext_options), + ('diptest', '0.75-7', ext_options), + ('trimcluster', '0.1-2', ext_options), + ('fpc', '2.1-10', ext_options), + ('BiasedUrn', '1.07', ext_options), + ('TeachingDemos', '2.9', ext_options), + ('kohonen', '2.0.19', ext_options), + ('base64', '1.1', ext_options), + ('doRNG', '1.6', ext_options), + ('nleqslv', '2.9.1', ext_options), + ('RGCCA', '2.0', ext_options), + ('pheatmap', '1.0.8', ext_options), + ('openxlsx', '3.0.0', ext_options), + ('pvclust', '2.0-0', ext_options), + ('RCircos', '1.1.3', ext_options), + ('lambda.r', '1.1.7', ext_options), + ('futile.options', '1.0.0', ext_options), + ('futile.logger', '1.4.1', ext_options), + ('VennDiagram', '1.6.16', ext_options), + ('xlsxjars', '0.6.1', ext_options), + ('xlsx', '0.5.7', ext_options), + ('vegan', '2.3-2', ext_options), + ('forecast', '6.1', ext_options), + ('fma', '2.01', ext_options), + ('expsmooth', '2.3', ext_options), + ('fpp', '0.5', ext_options), + ('maptools', '0.8-37', ext_options), + ('deldir', '0.1-9', ext_options), + ('tensor', '1.5', ext_options), + ('polyclip', '1.3-2', ext_options), + ('goftest', '1.0-3', ext_options), + ('spatstat', '1.44-1', ext_options), + ('rgdal', '1.1-3', ext_options), + ('gdalUtils', '2.0.1.7', ext_options), + ('pracma', '1.8.8', ext_options), + ('RCurl', '1.95-4.7', ext_options), + ('bio3d', '2.2-4', ext_options), + ('AUC', '0.3.0', ext_options), + ('interpretR', '0.2.3', ext_options), + ('SuperLearner', '2.0-15', ext_options), + ('lpSolve', '5.6.13', ext_options), + ('mediation', '4.4.5', ext_options), + ('caret', '6.0-64', ext_options), + ('adabag', '4.1', ext_options), + ('parallelMap', '1.3', ext_options), + ('ParamHelpers', '1.6', ext_options), + ('ggvis', '0.4.2', ext_options), + ('mlr', '2.7', ext_options), + ('unbalanced', '2.0', ext_options), + ('RSNNS', '0.4-7', ext_options), + ('abc.data', '1.0', ext_options), + ('abc', '2.1', ext_options), + ('lhs', '0.10', ext_options), + ('tensorA', '0.36', ext_options), + ('EasyABC', '1.5', ext_options), + ('shape', '1.4.2', ext_options), + ('whisker', '0.3-2', ext_options), + ('rstudioapi', '0.4.0', ext_options), + ('roxygen2', '5.0.1', ext_options), + ('git2r', '0.13.1', ext_options), + ('xml2', '0.1.2', ext_options), + ('rversions', '1.0.2', ext_options), + ('devtools', '1.9.1', ext_options), + ('Rook', '1.1-1', ext_options), + ('rjson', '0.2.15', ext_options), + ('Cairo', '1.5-9', ext_options), + ('RMTstat', '0.3', ext_options), + ('Lmoments', '1.1-6', ext_options), + ('distillery', '1.0-2', ext_options), + ('extRemes', '2.0-7', ext_options), + ('pixmap', '0.4-11', ext_options), + ('tkrplot', '0.0-23', ext_options), + ('misc3d', '0.8-4', ext_options), + ('multicool', '0.1-9', ext_options), + ('ks', '1.10.1', ext_options), + ('logcondens', '2.1.4', ext_options), + ('Iso', '0.0-17', ext_options), + ('penalized', '0.9-45', ext_options), + ('coin', '1.1-2', ext_options), + ('clusterRepro', '0.5-1.1', ext_options), + ('randomForestSRC', '2.0.7', ext_options), + ('sm', '2.2-5.4', ext_options), + ('psych', '1.5.8', ext_options), + ('pbivnorm', '0.6.0', ext_options), + ('lavaan', '0.5-20', ext_options), + ('matrixcalc', '1.0-3', ext_options), + ('arm', '1.8-6', ext_options), + ('mi', '1.0', ext_options), + ('htmlwidgets', '0.6', ext_options), + ('visNetwork', '0.2.1', ext_options), + ('DiagrammeR', '0.8.2', ext_options), + ('sem', '3.1-6', ext_options), + ('jpeg', '0.1-8', ext_options), + ('sna', '2.3-2', ext_options), + ('glasso', '1.8', ext_options), + ('huge', '1.2.7', ext_options), + ('d3Network', '0.5.2.1', ext_options), + ('ggm', '2.3', ext_options), + ('qgraph', '1.3.2', ext_options), + ('diveRsity', '1.9.89', ext_options), + ('doSNOW', '1.0.14', ext_options), + ('phangorn', '2.0.2', ext_options), +] + +moduleclass = 'lang' diff --git a/r/R/R-3.2.3-foss-2016b.eb b/r/R/R-3.2.3-foss-2016b.eb new file mode 100644 index 00000000..004c1785 --- /dev/null +++ b/r/R/R-3.2.3-foss-2016b.eb @@ -0,0 +1,449 @@ +name = 'R' +version = '3.2.3' + +homepage = 'http://www.r-project.org/' +description = """R is a free software environment for statistical computing and graphics.""" + +toolchain = {'name': 'foss', 'version': '2016b'} + +sources = [SOURCE_TAR_GZ] +source_urls = ['http://cran.us.r-project.org/src/base/R-%(version_major)s'] + +preconfigopts = 'BLAS_LIBS="$LIBBLAS" LAPACK_LIBS="$LIBLAPACK"' +configopts = "--with-lapack --with-blas --with-pic --enable-threads --with-x=no --enable-R-shlib" +# some recommended packages may fail in a parallel build (e.g. Matrix), and we're installing them anyway below +configopts += " --with-recommended-packages=no" + +dependencies = [ + ('libreadline', '6.3'), + ('ncurses', '6.0'), + ('libpng', '1.6.23'), # for plotting in R + ('libjpeg-turbo', '1.4.2'), # for plottting in R + ('Java', '1.8.0_92', '', True), # Java bindings are built if Java is found, might as well provide it + ('Tcl', '8.6.5'), # for tcltk + ('Tk', '8.6.5'), # for tcltk + ('cURL', '7.49.1'), # for RCurl + ('libxml2', '2.9.4'), # for XML + ('GDAL', '2.1.0'), # for rgdal + ('PROJ', '4.9.2'), # for rgdal + ('GMP', '6.1.1'), # for igraph +] + +name_tmpl = '%(name)s_%(version)s.tar.gz' +ext_options = { + 'source_urls': [ + 'http://cran.r-project.org/src/contrib/Archive/%(name)s', # package archive + 'http://cran.r-project.org/src/contrib/', # current version of packages + 'http://cran.freestatistics.org/src/contrib', # mirror alternative for current packages + ], + 'source_tmpl': name_tmpl, +} + + +# !! order of packages is important !! +# packages updated on January 21st 2016 +exts_list = [ + # default libraries, only here to sanity check their presence + 'base', + 'datasets', + 'graphics', + 'grDevices', + 'grid', + 'methods', + 'splines', + 'stats', + 'stats4', + 'tools', + 'utils', + # non-standard libraries, should be specified with fixed versions! + ('Rmpi', '0.6-5', ext_options), + ('abind', '1.4-3', ext_options), + ('magic', '1.5-6', ext_options), + ('geometry', '0.3-6', ext_options), + ('bit', '1.1-12', ext_options), + ('filehash', '2.3', ext_options), + ('ff', '2.2-13', ext_options), + ('bnlearn', '3.9', ext_options), + ('bootstrap', '2015.2', ext_options), + ('combinat', '0.0-8', ext_options), + ('deal', '1.2-37', ext_options), + ('fdrtool', '1.2.15', ext_options), + ('formatR', '1.2.1', ext_options), + ('gtools', '3.5.0', ext_options), + ('gdata', '2.17.0', ext_options), + ('GSA', '1.03', ext_options), + ('highr', '0.5.1', ext_options), + ('infotheo', '1.2.0', ext_options), + ('lars', '1.2', ext_options), + ('lazy', '1.2-15', ext_options), + ('kernlab', '0.9-22', ext_options), + ('mime', '0.4', ext_options), + ('markdown', '0.7.7', ext_options), + ('mlbench', '2.1-1', ext_options), + ('NLP', '0.1-8', ext_options), + ('mclust', '5.1', ext_options), + ('RANN', '2.5', ext_options), + ('rmeta', '2.16', ext_options), + ('segmented', '0.5-1.4', ext_options), + ('som', '0.3-5', ext_options), + ('SuppDists', '1.1-9.1', ext_options), + ('stabledist', '0.7-0', ext_options), + ('survivalROC', '1.0.3', ext_options), + ('pspline', '1.0-17', ext_options), + ('timeDate', '3012.100', ext_options), + ('longmemo', '1.0-0', ext_options), + ('ADGofTest', '0.3', ext_options), + ('ade4', '1.7-3', ext_options), + ('AlgDesign', '1.1-7.3', ext_options), + ('base64enc', '0.1-3', ext_options), + ('BH', '1.60.0-1', ext_options), + ('brew', '1.0-6', ext_options), + ('Brobdingnag', '1.2-4', ext_options), + ('corpcor', '1.6.8', ext_options), + ('longitudinal', '1.1.12', ext_options), + ('checkmate', '1.6.3', ext_options), + ('cubature', '1.1-2', ext_options), + ('DEoptimR', '1.0-4', ext_options), + ('digest', '0.6.8', ext_options), + ('fastmatch', '1.0-4', ext_options), + ('ffbase', '0.12.1', ext_options), + ('iterators', '1.0.8', ext_options), + ('maps', '3.0.2', ext_options), + ('nnls', '1.4', ext_options), + ('sendmailR', '1.2-1', ext_options), + ('spam', '1.3-0', ext_options), + ('subplex', '1.1-6', ext_options), + ('stringi', '1.0-1', ext_options), + ('magrittr', '1.5', ext_options), + ('stringr', '1.0.0', ext_options), + ('evaluate', '0.8', ext_options), + ('logspline', '2.1.8', ext_options), + ('ncbit', '2013.03.29', ext_options), + ('permute', '0.8-4', ext_options), + ('plotrix', '3.6-1', ext_options), + ('randomForest', '4.6-12', ext_options), + ('scatterplot3d', '0.3-36', ext_options), + ('SparseM', '1.7', ext_options), + ('tripack', '1.3-7', ext_options), + ('irace', '1.07', ext_options), + ('rJava', '0.9-7', ext_options), + ('lattice', '0.20-33', ext_options), + ('RColorBrewer', '1.1-2', ext_options), + ('latticeExtra', '0.6-26', ext_options), + ('Matrix', '1.2-3', ext_options), + ('png', '0.1-7', ext_options), + ('Rcpp', '0.12.2', ext_options), + ('RcppArmadillo', '0.6.400.2.2', ext_options), + ('plyr', '1.8.3', ext_options), + ('pROC', '1.8', ext_options), + ('quadprog', '1.5-5', ext_options), + ('BB', '2014.10-1', ext_options), + ('BBmisc', '1.9', ext_options), + ('fail', '1.3', ext_options), + ('rlecuyer', '0.3-4', ext_options), + ('snow', '0.4-1', ext_options), + ('MASS', '7.3-45', ext_options), + ('tree', '1.0-36', ext_options), + ('pls', '2.5-0', ext_options), + ('class', '7.3-14', ext_options), + ('e1071', '1.6-7', ext_options), + ('nnet', '7.3-11', ext_options), + ('nlme', '3.1-122', ext_options), + ('minqa', '1.2.4', ext_options), + ('RcppEigen', '0.3.2.5.1', ext_options), + ('MatrixModels', '0.4-1', ext_options), + ('quantreg', '5.19', ext_options), + ('mgcv', '1.8-10', ext_options), + ('colorspace', '1.2-6', ext_options), + ('robustbase', '0.92-5', ext_options), + ('sp', '1.2-1', ext_options), + ('zoo', '1.7-12', ext_options), + ('lmtest', '0.9-34', ext_options), + ('vcd', '1.4-1', ext_options), + ('snowfall', '1.84-6.1', ext_options), + ('rpart', '4.1-10', ext_options), + ('survival', '2.38-3', ext_options), + ('mice', '2.25', ext_options), + ('urca', '1.2-8', ext_options), + ('fracdiff', '1.4-2', ext_options), + ('logistf', '1.21', ext_options), + ('akima', '0.5-12', ext_options), + ('bitops', '1.0-6', ext_options), + ('boot', '1.3-17', ext_options), + ('mixtools', '1.0.3', ext_options), + ('cluster', '2.0.3', ext_options), + ('gclus', '1.3.1', ext_options), + ('coda', '0.18-1', ext_options), + ('codetools', '0.2-14', ext_options), + ('foreach', '1.4.3', ext_options), + ('doMC', '1.3.4', ext_options), + ('DBI', '0.3.1', ext_options), + ('foreign', '0.8-66', ext_options), + ('gam', '1.12', ext_options), + ('gamlss.data', '4.3-2', ext_options), + ('gamlss.dist', '4.3-5', ext_options), + ('hwriter', '1.3.2', ext_options), + ('KernSmooth', '2.23-15', ext_options), + ('xts', '0.9-7', ext_options), + ('TTR', '0.23-0', ext_options), + ('quantmod', '0.4-5', ext_options), + ('mnormt', '1.5-3', ext_options), + ('mvtnorm', '1.0-3', ext_options), + ('pcaPP', '1.9-60', ext_options), + ('numDeriv', '2014.2-1', ext_options), + ('lava', '1.4.1', ext_options), + ('prodlim', '1.5.7', ext_options), + ('pscl', '1.4.9', ext_options), + ('RSQLite', '1.0.0', ext_options), + ('BatchJobs', '1.6', ext_options), + ('sandwich', '2.3-4', ext_options), + ('sfsmisc', '1.0-28', ext_options), + ('spatial', '7.3-11', ext_options), + ('VGAM', '1.0-0', ext_options), + ('waveslim', '1.7.5', ext_options), + ('xtable', '1.8-0', ext_options), + ('profileModel', '0.5-9', ext_options), + ('brglm', '0.5-9', ext_options), + ('deSolve', '1.12', ext_options), + ('tseriesChaos', '0.1-13', ext_options), + ('tseries', '0.10-34', ext_options), + ('fastICA', '1.2-0', ext_options), + ('R.methodsS3', '1.7.0', ext_options), + ('R.oo', '1.19.0', ext_options), + ('cgdsr', '1.2.5', ext_options), + ('R.utils', '2.2.0', ext_options), + ('R.matlab', '3.3.0', ext_options), + ('gbm', '2.1.1', ext_options), + ('dichromat', '2.0-0', ext_options), + ('Formula', '1.2-1', ext_options), + ('acepack', '1.3-3.3', ext_options), + ('reshape2', '1.4.1', ext_options), + ('gtable', '0.1.2', ext_options), + ('munsell', '0.4.2', ext_options), + ('labeling', '0.3', ext_options), + ('scales', '0.3.0', ext_options), + ('proto', '0.3-10', ext_options), + ('ggplot2', '2.0.0', ext_options), + ('gridExtra', '2.0.0', ext_options), + ('Hmisc', '3.17-1', ext_options), + ('fastcluster', '1.1.16', ext_options), + ('chron', '2.3-47', ext_options), + ('data.table', '1.9.6', ext_options), + ('registry', '0.3', ext_options), + ('pkgmaker', '0.22', ext_options), + ('rngtools', '1.2.4', ext_options), + ('doParallel', '1.0.10', ext_options), + ('gridBase', '0.4-7', ext_options), + ('NMF', '0.20.6', ext_options), + ('irlba', '2.0.0', ext_options), + ('igraph', '1.0.1', ext_options), + ('GeneNet', '1.2.13', ext_options), + ('ape', '3.4', ext_options), + ('htmltools', '0.3', ext_options), + ('RJSONIO', '1.3-0', ext_options), + ('caTools', '1.17.1', ext_options), + ('gplots', '2.17.0', ext_options), + ('ROCR', '1.0-7', ext_options), + ('httpuv', '1.3.3', ext_options), + ('R6', '2.1.1', ext_options), + ('jsonlite', '0.9.19', ext_options), + ('rjson', '0.2.15', ext_options), + ('shiny', '0.12.2', ext_options), + ('seqinr', '3.1-3', ext_options), + ('LearnBayes', '2.15', ext_options), + ('deldir', '0.1-9', ext_options), + ('spdep', '0.5-92', ext_options), + ('assertthat', '0.1', ext_options), + ('lazyeval', '0.1.10', ext_options), + ('dplyr', '0.4.3', ext_options), + ('adegenet', '2.0.0', ext_options), + ('rncl', '0.6.0', ext_options), + ('XML', '3.98-1.3', ext_options), + ('memoise', '0.2.1', ext_options), + ('crayon', '1.3.1', ext_options), + ('praise', '1.0.0', ext_options), + ('testthat', '0.11.0', ext_options), + ('yaml', '2.1.13', ext_options), + ('knitr', '1.11', ext_options), + ('rmarkdown', '0.9.2', ext_options), + ('curl', '0.9.4', ext_options), + ('httr', '1.0.0', ext_options), + ('reshape', '0.8.5', ext_options), + ('bold', '0.3.0', ext_options), + ('taxize', '0.7.0', ext_options), + ('tidyr', '0.3.1', ext_options), + ('uuid', '0.1-2', ext_options), + ('RNeXML', '2.0.5', ext_options), + ('phylobase', '0.8.0', ext_options), + ('adephylo', '1.1-6', ext_options), + ('animation', '2.4', ext_options), + ('bigmemory.sri', '0.1.3', ext_options), + ('bigmemory', '4.5.8', ext_options), + ('calibrate', '1.7.2', ext_options), + ('clusterGeneration', '1.3.4', ext_options), + ('raster', '2.5-2', ext_options), + ('dismo', '1.0-12', ext_options), + ('expm', '0.999-0', ext_options), + ('extrafontdb', '1.0', ext_options), + ('Rttf2pt1', '1.3.3', ext_options), + ('extrafont', '0.17', ext_options), + ('fields', '8.3-6', ext_options), + ('shapefiles', '0.7', ext_options), + ('fossil', '0.3.7', ext_options), + ('geiger', '2.0.6', ext_options), + ('glmnet', '2.0-2', ext_options), + ('rgl', '0.95.1441', ext_options), + ('labdsv', '1.7-0', ext_options), + ('stabs', '0.5-1', ext_options), + ('mboost', '2.5-0', ext_options), + ('msm', '1.6', ext_options), + ('nor1mix', '1.2-1', ext_options), + ('np', '0.60-2', ext_options), + ('polynom', '1.3-8', ext_options), + ('polspline', '1.1.12', ext_options), + ('TH.data', '1.0-6', ext_options), + ('multcomp', '1.4-1', ext_options), + ('rms', '4.4-1', ext_options), + ('RWekajars', '3.7.12-1', ext_options), + ('RWeka', '0.4-24', ext_options), + ('slam', '0.1-32', ext_options), + ('tm', '0.6-2', ext_options), + ('TraMineR', '1.8-11', ext_options), + ('chemometrics', '1.3.9', ext_options), + ('FNN', '1.1', ext_options), + ('ipred', '0.9-5', ext_options), + ('statmod', '1.4.23', ext_options), + ('miscTools', '0.6-16', ext_options), + ('maxLik', '1.3-4', ext_options), + ('mlogit', '0.2-4', ext_options), + ('getopt', '1.20.0', ext_options), + ('gsalib', '2.1', ext_options), + ('optparse', '1.3.2', ext_options), + ('klaR', '0.6-12', ext_options), + ('neuRosim', '0.2-12', ext_options), + ('locfit', '1.5-9.1', ext_options), + ('GGally', '1.0.0', ext_options), + ('beanplot', '1.2', ext_options), + ('clValid', '0.6-6', ext_options), + ('matrixStats', '0.50.1', ext_options), + ('DiscriMiner', '0.1-29', ext_options), + ('ellipse', '0.3-8', ext_options), + ('leaps', '2.9', ext_options), + ('nloptr', '1.0.4', ext_options), + ('lme4', '1.1-10', ext_options), + ('pbkrtest', '0.4-4', ext_options), + ('car', '2.1-1', ext_options), + ('flashClust', '1.01-2', ext_options), + ('FactoMineR', '1.31.4', ext_options), + ('modeltools', '0.2-21', ext_options), + ('flexclust', '1.3-4', ext_options), + ('flexmix', '2.3-13', ext_options), + ('prabclus', '2.2-6', ext_options), + ('diptest', '0.75-7', ext_options), + ('trimcluster', '0.1-2', ext_options), + ('fpc', '2.1-10', ext_options), + ('BiasedUrn', '1.07', ext_options), + ('TeachingDemos', '2.9', ext_options), + ('kohonen', '2.0.19', ext_options), + ('base64', '1.1', ext_options), + ('doRNG', '1.6', ext_options), + ('nleqslv', '2.9.1', ext_options), + ('RGCCA', '2.0', ext_options), + ('pheatmap', '1.0.8', ext_options), + ('openxlsx', '3.0.0', ext_options), + ('pvclust', '2.0-0', ext_options), + ('RCircos', '1.1.3', ext_options), + ('lambda.r', '1.1.7', ext_options), + ('futile.options', '1.0.0', ext_options), + ('futile.logger', '1.4.1', ext_options), + ('VennDiagram', '1.6.16', ext_options), + ('xlsxjars', '0.6.1', ext_options), + ('xlsx', '0.5.7', ext_options), + ('vegan', '2.3-2', ext_options), + ('forecast', '6.1', ext_options), + ('fma', '2.01', ext_options), + ('expsmooth', '2.3', ext_options), + ('fpp', '0.5', ext_options), + ('maptools', '0.8-37', ext_options), + ('deldir', '0.1-9', ext_options), + ('tensor', '1.5', ext_options), + ('polyclip', '1.3-2', ext_options), + ('goftest', '1.0-3', ext_options), + ('spatstat', '1.44-1', ext_options), + ('rgdal', '1.1-3', ext_options), + ('gdalUtils', '2.0.1.7', ext_options), + ('pracma', '1.8.8', ext_options), + ('RCurl', '1.95-4.7', ext_options), + ('bio3d', '2.2-4', ext_options), + ('AUC', '0.3.0', ext_options), + ('interpretR', '0.2.3', ext_options), + ('SuperLearner', '2.0-15', ext_options), + ('lpSolve', '5.6.13', ext_options), + ('mediation', '4.4.5', ext_options), + ('caret', '6.0-64', ext_options), + ('adabag', '4.1', ext_options), + ('parallelMap', '1.3', ext_options), + ('ParamHelpers', '1.6', ext_options), + ('ggvis', '0.4.2', ext_options), + ('mlr', '2.7', ext_options), + ('unbalanced', '2.0', ext_options), + ('RSNNS', '0.4-7', ext_options), + ('abc.data', '1.0', ext_options), + ('abc', '2.1', ext_options), + ('lhs', '0.10', ext_options), + ('tensorA', '0.36', ext_options), + ('EasyABC', '1.5', ext_options), + ('shape', '1.4.2', ext_options), + ('whisker', '0.3-2', ext_options), + ('rstudioapi', '0.4.0', ext_options), + ('roxygen2', '5.0.1', ext_options), + ('git2r', '0.13.1', ext_options), + ('xml2', '0.1.2', ext_options), + ('rversions', '1.0.2', ext_options), + ('devtools', '1.9.1', ext_options), + ('Rook', '1.1-1', ext_options), + ('rjson', '0.2.15', ext_options), + ('Cairo', '1.5-9', ext_options), + ('RMTstat', '0.3', ext_options), + ('Lmoments', '1.1-6', ext_options), + ('distillery', '1.0-2', ext_options), + ('extRemes', '2.0-7', ext_options), + ('pixmap', '0.4-11', ext_options), + ('tkrplot', '0.0-23', ext_options), + ('misc3d', '0.8-4', ext_options), + ('multicool', '0.1-9', ext_options), + ('ks', '1.10.1', ext_options), + ('logcondens', '2.1.4', ext_options), + ('Iso', '0.0-17', ext_options), + ('penalized', '0.9-45', ext_options), + ('coin', '1.1-2', ext_options), + ('clusterRepro', '0.5-1.1', ext_options), + ('randomForestSRC', '2.0.7', ext_options), + ('sm', '2.2-5.4', ext_options), + ('psych', '1.5.8', ext_options), + ('pbivnorm', '0.6.0', ext_options), + ('lavaan', '0.5-20', ext_options), + ('matrixcalc', '1.0-3', ext_options), + ('arm', '1.8-6', ext_options), + ('mi', '1.0', ext_options), + ('htmlwidgets', '0.6', ext_options), + ('visNetwork', '0.2.1', ext_options), + ('DiagrammeR', '0.8.2', ext_options), + ('sem', '3.1-6', ext_options), + ('jpeg', '0.1-8', ext_options), + ('sna', '2.3-2', ext_options), + ('glasso', '1.8', ext_options), + ('huge', '1.2.7', ext_options), + ('d3Network', '0.5.2.1', ext_options), + ('ggm', '2.3', ext_options), + ('qgraph', '1.3.2', ext_options), + ('diveRsity', '1.9.89', ext_options), + ('doSNOW', '1.0.14', ext_options), + ('phangorn', '2.0.2', ext_options), + ('geepack', '1.2-0.1', ext_options), + ('lubridate', '1.5.6', ext_options), + ('biom', '0.3.12', ext_options), + ('pim', '2.0.0.2', ext_options), +] + +moduleclass = 'lang' diff --git a/r/R/R-3.2.3-intel-2015b.eb b/r/R/R-3.2.3-intel-2015b.eb new file mode 100644 index 00000000..1d4f09c3 --- /dev/null +++ b/r/R/R-3.2.3-intel-2015b.eb @@ -0,0 +1,226 @@ +name = 'R' +version = '3.2.3' + +homepage = 'http://www.r-project.org/' +description = """R is a free software environment for statistical computing and graphics.""" + +toolchain = {'name': 'intel', 'version': '2015b'} + +sources = [SOURCE_TAR_GZ] +source_urls = ['http://cran.us.r-project.org/src/base/R-%(version_major)s'] + +preconfigopts = 'BLAS_LIBS="$LIBBLAS_MT" LAPACK_LIBS="$LIBLAPACK_MT"' +configopts = "--with-lapack --with-blas --with-pic --enable-threads --with-x=no --enable-R-shlib" +# some recommended packages may fail in a parallel build (e.g. Matrix), and we're installing them anyway below +configopts += " --with-recommended-packages=no" + +dependencies = [ + ('libreadline', '6.2'), + ('ncurses', '5.9'), + ('libpng', '1.6.9'), # for plotting in R + ('Java', '1.7.0_79', '', True), # Java bindings are built if Java is found, might as well provide it +] + +name_tmpl = '%(name)s_%(version)s.tar.gz' +ext_options = { + 'source_urls': [ + 'http://cran.r-project.org/src/contrib/Archive/%(name)s', # package archive + 'http://cran.freestatistics.org/src/contrib', # alternative for packages + 'http://cran.freestatistics.org/src/contrib', # mirror alternative for current packages + ], + 'source_tmpl': name_tmpl, +} +# Bioconductor packages have a different download url +bioconductor_options = { + 'source_urls': [ + 'http://www.bioconductor.org/packages/release/bioc/src/contrib/', + 'http://www.bioconductor.org/packages/2.14/bioc/src/contrib/', + 'http://www.bioconductor.org/packages/release/data/annotation/src/contrib/', + 'http://www.bioconductor.org/packages/release/data/experiment/src/contrib/', + 'http://www.bioconductor.org/packages/3.0/bioc/src/contrib/', + 'http://www.bioconductor.org/packages/3.0/data/annotation/src/contrib/', + 'http://www.bioconductor.org/packages/3.0/data/experiment/src/contrib/', + ], + 'source_tmpl': name_tmpl, +} +# !! order of packages is important !! +exts_list = [ + # default libraries, only here to sanity check their presence + 'base', + 'datasets', + 'graphics', + 'grDevices', + 'grid', + 'methods', + 'splines', + 'stats', + 'stats4', + 'tools', + 'utils', + # non-standard libraries, should be specified with fixed versions! + ('Rmpi', '0.6-5', dict(ext_options.items() + [('patches', ['Rmpi-0.6-5_impi5.patch'])])), + #('stringi', '1.0-1', ext_options), + #('lazyeval', '0.1.10', ext_options), + #('magrittr', '1.5', ext_options), + #('assertthat', '0.1', ext_options), + #('digest', '0.6.8', ext_options), + #('memoise', '0.2.1', ext_options), + #('crayon', '1.3.1', ext_options), + #('praise', '1.0.0', ext_options), + #('', '', ext_options), + #('', '', ext_options), + #('', '', ext_options), + #('', '', ext_options), + #('testthat', '0.11.0', ext_options), + #('R6', '2.1.1', ext_options), + #('BH', '1.60.0-1', ext_options), + #('Rcpp', '0.12.2', ext_options), + #('DBI', '0.2-7', ext_options), + #('dplyr', '0.4.3', ext_options), + #('tidyr', '0.3.1', ext_options), + #('forecast', '6.2', ext_options), + #('KFAS', '1.1.2', ext_options), + #('moments', '0.14', ext_options), + #('snow', '0.4-1', ext_options), + #('doSNOW', '1.0.14', ext_options), + #('data.table', '1.9.6', ext_options), + #('bsts', '0.6.2', ext_options), + #('pbdMPI', '0.2-5', ext_options), + #('RSNNS', '0.4-7', ext_options), + #('XML', '3.98-1.3', ext_options), + #('Mcomp', '2.05', ext_options), + #('Matrix', '1.2-3', ext_options), + #('nnet', '7.3-11', ext_options), + #('h2o', '3.6.0.8', ext_options), + #('darch', '0.10.0', ext_options), + #('deepnet', '0.2', ext_options), + #('timeDate', '3012.100', ext_options), + #('mFilter', '0.1-3', ext_options), + #('caret', '6.0-62', ext_options), + #('irace', '1.04', ext_options), + #('rJava', '0.9-6', ext_options), + #('lattice', '0.20-29', ext_options), + #('minpack.lm', '1.2-0', ext_options), + #('GMDH', '1.1', ext_options), + #('RColorBrewer', '1.0-5', ext_options), + #('latticeExtra', '0.6-26', ext_options), + #('Matrix', '1.1-3', ext_options), + #('png', '0.1-7', ext_options), + #('Rcpp', '0.11.1', ext_options), + #('quadprog', '1.5-5', ext_options), + #('BB', '2014.1-1', ext_options), + #('rlecuyer', '0.3-3', ext_options), + #('MASS', '7.3-33', ext_options), + #('class', '7.3-10', ext_options), + #('e1071', '1.6-3', ext_options), + #('car', '2.0-20', ext_options), + #('colorspace', '1.2-4', ext_options), + #('DEoptimR', '1.0-1', ext_options), + #('robustbase', '0.91-1', ext_options), + #('sp', '1.0-15', ext_options), + #('vcd', '1.3-1', ext_options), + #('snowfall', '1.84-6', ext_options), + #('rpart', '4.1-8', ext_options), + #('randomForest', '4.6-7', ext_options), + #('mice', '2.21', ext_options), + #('nlme', '3.1-117', ext_options), + #('mgcv', '1.7-29', ext_options), + #('logistf', '1.21', ext_options), + #('akima', '0.5-11', ext_options), + #('bitops', '1.0-6', ext_options), + #('boot', '1.3-11', ext_options), + #('cluster', '1.15.2', ext_options), + #('coda', '0.16-1', ext_options), + #('codetools', '0.2-8', ext_options), + #('foreign', '0.8-61', ext_options), + #('survival', '2.37-7', ext_options), + #('gam', '1.09.1', ext_options), + #('gamlss.data', '4.2-7', ext_options), + #('gamlss.dist', '4.2-7', ext_options), + #('hwriter', '1.3', ext_options), + #('KernSmooth', '2.23-12', ext_options), + #('zoo', '1.7-11', ext_options), + #('lmtest', '0.9-34', ext_options), + #('mnormt', '1.4-7', ext_options), + #('mvtnorm', '0.9-99992', ext_options), + #('numDeriv', '2012.9-1', ext_options), + #('pscl', '1.04.4', ext_options), + #('RSQLite', '0.11.4', ext_options), + #('sandwich', '2.3-0', ext_options), + #('sfsmisc', '1.0-25', ext_options), + #('spatial', '7.3-8', ext_options), + #('VGAM', '0.9-4', ext_options), + #('waveslim', '1.7.3', ext_options), + #('xtable', '1.7-3', ext_options), + #('profileModel', '0.5-9', ext_options), + #('brglm', '0.5-9', ext_options), + #('deSolve', '1.10-8', ext_options), + #('tseriesChaos', '0.1-13', ext_options), + #('tseries', '0.10-32', ext_options), + #('neuRosim', '0.2-10', ext_options), + #('fastICA', '1.2-0', ext_options), + #('R.methodsS3', '1.6.1', ext_options), + #('R.oo', '1.18.0', ext_options), + #('R.utils', '1.32.4', ext_options), + #('R.matlab', '3.0.1', ext_options), + #('Rniftilib', '0.0-32', ext_options), + #('iterators', '1.0.7', ext_options), + #('foreach', '1.4.2', ext_options), + #('BBmisc', '1.6', ext_options), + #('digest', '0.6.4', ext_options), + #('base64enc', '0.1-1', ext_options), + #('sendmailR', '1.1-2', ext_options), + #('brew', '1.0-6', ext_options), + #('plyr', '1.8.1', ext_options), + #('stringr', '0.6.2', ext_options), + #('fail', '1.2', ext_options), + #('BatchJobs', '1.2', ext_options), + #('BiocGenerics', '0.10.0', bioconductor_options), + #('Biobase', '2.24.0', bioconductor_options), + #('IRanges', '1.22.8', bioconductor_options), + #('GenomeInfoDb', '1.0.2', bioconductor_options), + #('AnnotationDbi', '1.26.0', bioconductor_options), + #('XVector', '0.4.0', bioconductor_options), + #('zlibbioc', '1.10.0', bioconductor_options), + #('Biostrings', '2.32.0', bioconductor_options), + #('GenomicRanges', '1.16.3', bioconductor_options), + #('Rsamtools', '1.16.0', bioconductor_options), + #('BSgenome', '1.32.0', bioconductor_options), + #('BiocParallel', '0.6.1', bioconductor_options), + #('GenomicAlignments', '1.0.2', bioconductor_options), + #('ShortRead', '1.22.0', bioconductor_options), + #('graph', '1.42.0', bioconductor_options), + #('gbm', '2.1', ext_options), + #('dichromat', '2.0-0', ext_options), + #('Formula', '1.1-1', ext_options), + #('Hmisc', '3.14-4', ext_options), + #('munsell', '0.4.2', ext_options), + #('labeling', '0.2', ext_options), + #('scales', '0.2.4', ext_options), + #('fastcluster', '1.1.13', ext_options), + #('reshape2', '1.4', ext_options), + #('gtable', '0.1.2', ext_options), + #('proto', '0.3-10', ext_options), + #('ggplot2', '1.0.0', ext_options), + #('reshape', '0.8.5', ext_options), + #('gsalib', '2.0', ext_options), + #('ape', '3.1-2', ext_options), + #('igraph', '0.7.1', ext_options), + #('fastmatch', '1.0-4', ext_options), + #('phangorn', '1.99-7', ext_options), + #('gdsfmt', '1.0.4', ext_options), + #('SNPRelate', '0.9.19', ext_options), + #('getopt', '1.20.0', ext_options), + #('miscTools', '0.6-16', ext_options), + #('maxLik', '1.2-0', ext_options), + #('statmod', '1.4.20', ext_options), + #('mlogit', '0.2-4', ext_options), + #('optparse', '1.2.0', ext_options), + #('permute', '0.8-3', ext_options), + #('vegan', '2.0-10', ext_options), + #('gtools', '3.4.1', ext_options), + #('combinat', '0.0-8', ext_options), + #('klaR', '0.6-11', ext_options), +] + +moduleclass = 'lang' diff --git a/r/R/R-3.2.3-intel-2016.01.eb b/r/R/R-3.2.3-intel-2016.01.eb new file mode 100644 index 00000000..2b99b107 --- /dev/null +++ b/r/R/R-3.2.3-intel-2016.01.eb @@ -0,0 +1,226 @@ +name = 'R' +version = '3.2.3' + +homepage = 'http://www.r-project.org/' +description = """R is a free software environment for statistical computing and graphics.""" + +toolchain = {'name': 'intel', 'version': '2016.01'} + +sources = [SOURCE_TAR_GZ] +source_urls = ['http://cran.us.r-project.org/src/base/R-%(version_major)s'] + +preconfigopts = 'BLAS_LIBS="$LIBBLAS_MT" LAPACK_LIBS="$LIBLAPACK_MT"' +configopts = "--with-lapack --with-blas --with-pic --enable-threads --with-x=no --enable-R-shlib" +# some recommended packages may fail in a parallel build (e.g. Matrix), and we're installing them anyway below +configopts += " --with-recommended-packages=no" + +dependencies = [ + ('libreadline', '6.3'), + ('ncurses', '5.9'), + ('libpng', '1.6.12'), # for plotting in R + ('Java', '1.7.0_79', '', True), # Java bindings are built if Java is found, might as well provide it +] + +name_tmpl = '%(name)s_%(version)s.tar.gz' +ext_options = { + 'source_urls': [ + 'http://cran.r-project.org/src/contrib/Archive/%(name)s', # package archive + 'http://cran.freestatistics.org/src/contrib', # alternative for packages + 'http://cran.freestatistics.org/src/contrib', # mirror alternative for current packages + ], + 'source_tmpl': name_tmpl, +} +# Bioconductor packages have a different download url +bioconductor_options = { + 'source_urls': [ + 'http://www.bioconductor.org/packages/release/bioc/src/contrib/', + 'http://www.bioconductor.org/packages/2.14/bioc/src/contrib/', + 'http://www.bioconductor.org/packages/release/data/annotation/src/contrib/', + 'http://www.bioconductor.org/packages/release/data/experiment/src/contrib/', + 'http://www.bioconductor.org/packages/3.0/bioc/src/contrib/', + 'http://www.bioconductor.org/packages/3.0/data/annotation/src/contrib/', + 'http://www.bioconductor.org/packages/3.0/data/experiment/src/contrib/', + ], + 'source_tmpl': name_tmpl, +} +# !! order of packages is important !! +exts_list = [ + # default libraries, only here to sanity check their presence + 'base', + 'datasets', + 'graphics', + 'grDevices', + 'grid', + 'methods', + 'splines', + 'stats', + 'stats4', + 'tools', + 'utils', + # non-standard libraries, should be specified with fixed versions! + ('Rmpi', '0.6-5', dict(ext_options.items() + [('patches', ['Rmpi-0.6-5_impi5.patch'])])), + #('stringi', '1.0-1', ext_options), + #('lazyeval', '0.1.10', ext_options), + #('magrittr', '1.5', ext_options), + #('assertthat', '0.1', ext_options), + #('digest', '0.6.8', ext_options), + #('memoise', '0.2.1', ext_options), + #('crayon', '1.3.1', ext_options), + #('praise', '1.0.0', ext_options), + #('', '', ext_options), + #('', '', ext_options), + #('', '', ext_options), + #('', '', ext_options), + #('testthat', '0.11.0', ext_options), + #('R6', '2.1.1', ext_options), + #('BH', '1.60.0-1', ext_options), + #('Rcpp', '0.12.2', ext_options), + #('DBI', '0.2-7', ext_options), + #('dplyr', '0.4.3', ext_options), + #('tidyr', '0.3.1', ext_options), + #('forecast', '6.2', ext_options), + #('KFAS', '1.1.2', ext_options), + #('moments', '0.14', ext_options), + #('snow', '0.4-1', ext_options), + #('doSNOW', '1.0.14', ext_options), + #('data.table', '1.9.6', ext_options), + #('bsts', '0.6.2', ext_options), + #('pbdMPI', '0.2-5', ext_options), + #('RSNNS', '0.4-7', ext_options), + #('XML', '3.98-1.3', ext_options), + #('Mcomp', '2.05', ext_options), + #('Matrix', '1.2-3', ext_options), + #('nnet', '7.3-11', ext_options), + #('h2o', '3.6.0.8', ext_options), + #('darch', '0.10.0', ext_options), + #('deepnet', '0.2', ext_options), + #('timeDate', '3012.100', ext_options), + #('mFilter', '0.1-3', ext_options), + #('caret', '6.0-62', ext_options), + #('irace', '1.04', ext_options), + #('rJava', '0.9-6', ext_options), + #('lattice', '0.20-29', ext_options), + #('minpack.lm', '1.2-0', ext_options), + #('GMDH', '1.1', ext_options), + #('RColorBrewer', '1.0-5', ext_options), + #('latticeExtra', '0.6-26', ext_options), + #('Matrix', '1.1-3', ext_options), + #('png', '0.1-7', ext_options), + #('Rcpp', '0.11.1', ext_options), + #('quadprog', '1.5-5', ext_options), + #('BB', '2014.1-1', ext_options), + #('rlecuyer', '0.3-3', ext_options), + #('MASS', '7.3-33', ext_options), + #('class', '7.3-10', ext_options), + #('e1071', '1.6-3', ext_options), + #('car', '2.0-20', ext_options), + #('colorspace', '1.2-4', ext_options), + #('DEoptimR', '1.0-1', ext_options), + #('robustbase', '0.91-1', ext_options), + #('sp', '1.0-15', ext_options), + #('vcd', '1.3-1', ext_options), + #('snowfall', '1.84-6', ext_options), + #('rpart', '4.1-8', ext_options), + #('randomForest', '4.6-7', ext_options), + #('mice', '2.21', ext_options), + #('nlme', '3.1-117', ext_options), + #('mgcv', '1.7-29', ext_options), + #('logistf', '1.21', ext_options), + #('akima', '0.5-11', ext_options), + #('bitops', '1.0-6', ext_options), + #('boot', '1.3-11', ext_options), + #('cluster', '1.15.2', ext_options), + #('coda', '0.16-1', ext_options), + #('codetools', '0.2-8', ext_options), + #('foreign', '0.8-61', ext_options), + #('survival', '2.37-7', ext_options), + #('gam', '1.09.1', ext_options), + #('gamlss.data', '4.2-7', ext_options), + #('gamlss.dist', '4.2-7', ext_options), + #('hwriter', '1.3', ext_options), + #('KernSmooth', '2.23-12', ext_options), + #('zoo', '1.7-11', ext_options), + #('lmtest', '0.9-34', ext_options), + #('mnormt', '1.4-7', ext_options), + #('mvtnorm', '0.9-99992', ext_options), + #('numDeriv', '2012.9-1', ext_options), + #('pscl', '1.04.4', ext_options), + #('RSQLite', '0.11.4', ext_options), + #('sandwich', '2.3-0', ext_options), + #('sfsmisc', '1.0-25', ext_options), + #('spatial', '7.3-8', ext_options), + #('VGAM', '0.9-4', ext_options), + #('waveslim', '1.7.3', ext_options), + #('xtable', '1.7-3', ext_options), + #('profileModel', '0.5-9', ext_options), + #('brglm', '0.5-9', ext_options), + #('deSolve', '1.10-8', ext_options), + #('tseriesChaos', '0.1-13', ext_options), + #('tseries', '0.10-32', ext_options), + #('neuRosim', '0.2-10', ext_options), + #('fastICA', '1.2-0', ext_options), + #('R.methodsS3', '1.6.1', ext_options), + #('R.oo', '1.18.0', ext_options), + #('R.utils', '1.32.4', ext_options), + #('R.matlab', '3.0.1', ext_options), + #('Rniftilib', '0.0-32', ext_options), + #('iterators', '1.0.7', ext_options), + #('foreach', '1.4.2', ext_options), + #('BBmisc', '1.6', ext_options), + #('digest', '0.6.4', ext_options), + #('base64enc', '0.1-1', ext_options), + #('sendmailR', '1.1-2', ext_options), + #('brew', '1.0-6', ext_options), + #('plyr', '1.8.1', ext_options), + #('stringr', '0.6.2', ext_options), + #('fail', '1.2', ext_options), + #('BatchJobs', '1.2', ext_options), + #('BiocGenerics', '0.10.0', bioconductor_options), + #('Biobase', '2.24.0', bioconductor_options), + #('IRanges', '1.22.8', bioconductor_options), + #('GenomeInfoDb', '1.0.2', bioconductor_options), + #('AnnotationDbi', '1.26.0', bioconductor_options), + #('XVector', '0.4.0', bioconductor_options), + #('zlibbioc', '1.10.0', bioconductor_options), + #('Biostrings', '2.32.0', bioconductor_options), + #('GenomicRanges', '1.16.3', bioconductor_options), + #('Rsamtools', '1.16.0', bioconductor_options), + #('BSgenome', '1.32.0', bioconductor_options), + #('BiocParallel', '0.6.1', bioconductor_options), + #('GenomicAlignments', '1.0.2', bioconductor_options), + #('ShortRead', '1.22.0', bioconductor_options), + #('graph', '1.42.0', bioconductor_options), + #('gbm', '2.1', ext_options), + #('dichromat', '2.0-0', ext_options), + #('Formula', '1.1-1', ext_options), + #('Hmisc', '3.14-4', ext_options), + #('munsell', '0.4.2', ext_options), + #('labeling', '0.2', ext_options), + #('scales', '0.2.4', ext_options), + #('fastcluster', '1.1.13', ext_options), + #('reshape2', '1.4', ext_options), + #('gtable', '0.1.2', ext_options), + #('proto', '0.3-10', ext_options), + #('ggplot2', '1.0.0', ext_options), + #('reshape', '0.8.5', ext_options), + #('gsalib', '2.0', ext_options), + #('ape', '3.1-2', ext_options), + #('igraph', '0.7.1', ext_options), + #('fastmatch', '1.0-4', ext_options), + #('phangorn', '1.99-7', ext_options), + #('gdsfmt', '1.0.4', ext_options), + #('SNPRelate', '0.9.19', ext_options), + #('getopt', '1.20.0', ext_options), + #('miscTools', '0.6-16', ext_options), + #('maxLik', '1.2-0', ext_options), + #('statmod', '1.4.20', ext_options), + #('mlogit', '0.2-4', ext_options), + #('optparse', '1.2.0', ext_options), + #('permute', '0.8-3', ext_options), + #('vegan', '2.0-10', ext_options), + #('gtools', '3.4.1', ext_options), + #('combinat', '0.0-8', ext_options), + #('klaR', '0.6-11', ext_options), +] + +moduleclass = 'lang' diff --git a/r/R/R-3.2.3-intel-2016a-libX11-1.6.3.eb b/r/R/R-3.2.3-intel-2016a-libX11-1.6.3.eb new file mode 100644 index 00000000..2fead5c7 --- /dev/null +++ b/r/R/R-3.2.3-intel-2016a-libX11-1.6.3.eb @@ -0,0 +1,456 @@ +name = 'R' +version = '3.2.3' + +libx11 = 'libX11' +libxver = '1.6.3' +versionsuffix = '-%s-%s' % (libx11, libxver) + +homepage = 'http://www.r-project.org/' +description = """R is a free software environment for statistical computing and graphics.""" + +toolchain = {'name': 'intel', 'version': '2016a'} + +sources = [SOURCE_TAR_GZ] +source_urls = ['http://cran.us.r-project.org/src/base/R-%(version_major)s'] + +preconfigopts = 'BLAS_LIBS="$LIBBLAS" LAPACK_LIBS="$LIBLAPACK"' +configopts = "--with-lapack --with-blas --with-pic --enable-threads --with-x=yes --enable-R-shlib" +#Actually use Tcl/Tk +configopts += ' --with-tcl-config=$EBROOTTCL/lib/tclConfig.sh --with-tk-config=$EBROOTTK/lib/tkConfig.sh ' +# Enable graphics capabilities for plotting. +configopts += " --with-cairo --with-libpng --with-jpeglib --with-libtiff" +# some recommended packages may fail in a parallel build (e.g. Matrix), and we're installing them anyway below +configopts += " --with-recommended-packages=no" + +dependencies = [ + (libx11, libxver), + ('libXt', '1.1.5'), + ('libXmu', '1.1.2'), + ('libreadline', '6.3'), + ('ncurses', '6.0'), + ('libpng', '1.6.21'), # for plotting in R + ('libjpeg-turbo', '1.4.2'), # for plottting in R + ('LibTIFF', '4.0.6'), # for plotting in R + ('cairo', '1.14.6'), # for plotting in R + ('Java', '1.8.0_72', '', True), # Java bindings are built if Java is found, might as well provide it + ('Tcl', '8.6.4'), # for tcltk + ('Tk', '8.6.4', versionsuffix), # for tcltk + ('cURL', '7.47.0'), # for RCurl + ('libxml2', '2.9.3'), # for XML + ('GDAL', '2.0.2'), # for rgdal + ('PROJ', '4.9.2'), # for rgdal +] + +name_tmpl = '%(name)s_%(version)s.tar.gz' +ext_options = { + 'source_urls': [ + 'http://cran.r-project.org/src/contrib/Archive/%(name)s', # package archive + 'http://cran.r-project.org/src/contrib/', # current version of packages + 'http://cran.freestatistics.org/src/contrib', # mirror alternative for current packages + ], + 'source_tmpl': name_tmpl, +} + +# !! order of packages is important !! +# packages updated on January 21st 2016 +exts_list = [ + # default libraries, only here to sanity check their presence + 'base', + 'datasets', + 'graphics', + 'grDevices', + 'grid', + 'methods', + 'splines', + 'stats', + 'stats4', + 'tools', + 'utils', + # non-standard libraries, should be specified with fixed versions! + ('Rmpi', '0.6-5', dict(ext_options.items() + [('patches', ['Rmpi-0.6-5_impi5.patch'])])), + ('abind', '1.4-3', ext_options), + ('magic', '1.5-6', ext_options), + ('geometry', '0.3-6', dict(ext_options.items() + [('patches', ['geometry-0.3-4-icc.patch'])])), + ('bit', '1.1-12', ext_options), + ('filehash', '2.3', ext_options), + ('ff', '2.2-13', ext_options), + ('bnlearn', '3.9', ext_options), + ('bootstrap', '2015.2', ext_options), + ('combinat', '0.0-8', ext_options), + ('deal', '1.2-37', ext_options), + ('fdrtool', '1.2.15', ext_options), + ('formatR', '1.2.1', ext_options), + ('gtools', '3.5.0', ext_options), + ('gdata', '2.17.0', ext_options), + ('GSA', '1.03', ext_options), + ('highr', '0.5.1', ext_options), + ('infotheo', '1.2.0', ext_options), + ('lars', '1.2', ext_options), + ('lazy', '1.2-15', ext_options), + ('kernlab', '0.9-22', ext_options), + ('mime', '0.4', ext_options), + ('markdown', '0.7.7', ext_options), + ('mlbench', '2.1-1', ext_options), + ('NLP', '0.1-8', ext_options), + ('mclust', '5.1', ext_options), + ('RANN', '2.5', ext_options), + ('rmeta', '2.16', ext_options), + ('segmented', '0.5-1.4', ext_options), + ('som', '0.3-5', ext_options), + ('SuppDists', '1.1-9.1', ext_options), + ('stabledist', '0.7-0', ext_options), + ('survivalROC', '1.0.3', ext_options), + ('pspline', '1.0-17', ext_options), + ('timeDate', '3012.100', ext_options), + ('longmemo', '1.0-0', ext_options), + ('ADGofTest', '0.3', ext_options), + ('ade4', '1.7-3', ext_options), + ('AlgDesign', '1.1-7.3', ext_options), + ('base64enc', '0.1-3', ext_options), + ('BH', '1.60.0-1', ext_options), + ('brew', '1.0-6', ext_options), + ('Brobdingnag', '1.2-4', ext_options), + ('corpcor', '1.6.8', ext_options), + ('longitudinal', '1.1.12', ext_options), + ('checkmate', '1.6.3', ext_options), + ('cubature', '1.1-2', ext_options), + ('DEoptimR', '1.0-4', ext_options), + ('digest', '0.6.8', ext_options), + ('fastmatch', '1.0-4', ext_options), + ('ffbase', '0.12.1', ext_options), + ('iterators', '1.0.8', ext_options), + ('maps', '3.0.2', ext_options), + ('nnls', '1.4', ext_options), + ('sendmailR', '1.2-1', ext_options), + ('spam', '1.3-0', ext_options), + ('subplex', '1.1-6', ext_options), + ('stringi', '1.0-1', ext_options), + ('magrittr', '1.5', ext_options), + ('stringr', '1.0.0', ext_options), + ('evaluate', '0.8', ext_options), + ('logspline', '2.1.8', ext_options), + ('ncbit', '2013.03.29', ext_options), + ('permute', '0.8-4', ext_options), + ('plotrix', '3.6-1', ext_options), + ('randomForest', '4.6-12', ext_options), + ('scatterplot3d', '0.3-36', ext_options), + ('SparseM', '1.7', ext_options), + ('tripack', '1.3-7', ext_options), + ('irace', '1.07', ext_options), + ('rJava', '0.9-7', ext_options), + ('lattice', '0.20-33', ext_options), + ('RColorBrewer', '1.1-2', ext_options), + ('latticeExtra', '0.6-26', ext_options), + ('Matrix', '1.2-3', ext_options), + ('png', '0.1-7', ext_options), + ('Rcpp', '0.12.2', ext_options), + ('RcppArmadillo', '0.6.400.2.2', ext_options), + ('plyr', '1.8.3', ext_options), + ('pROC', '1.8', ext_options), + ('quadprog', '1.5-5', ext_options), + ('BB', '2014.10-1', ext_options), + ('BBmisc', '1.9', ext_options), + ('fail', '1.3', ext_options), + ('rlecuyer', '0.3-4', ext_options), + ('snow', '0.4-1', ext_options), + ('MASS', '7.3-45', ext_options), + ('tree', '1.0-36', ext_options), + ('pls', '2.5-0', ext_options), + ('class', '7.3-14', ext_options), + ('e1071', '1.6-7', ext_options), + ('nnet', '7.3-11', ext_options), + ('nlme', '3.1-122', ext_options), + ('minqa', '1.2.4', ext_options), + ('RcppEigen', '0.3.2.5.1', ext_options), + ('MatrixModels', '0.4-1', ext_options), + ('quantreg', '5.19', ext_options), + ('mgcv', '1.8-10', ext_options), + ('colorspace', '1.2-6', ext_options), + ('robustbase', '0.92-5', ext_options), + ('sp', '1.2-1', ext_options), + ('zoo', '1.7-12', ext_options), + ('lmtest', '0.9-34', ext_options), + ('vcd', '1.4-1', ext_options), + ('snowfall', '1.84-6.1', ext_options), + ('rpart', '4.1-10', ext_options), + ('survival', '2.38-3', ext_options), + ('mice', '2.25', ext_options), + ('urca', '1.2-8', ext_options), + ('fracdiff', '1.4-2', ext_options), + ('logistf', '1.21', ext_options), + ('akima', '0.5-12', ext_options), + ('bitops', '1.0-6', ext_options), + ('boot', '1.3-17', ext_options), + ('mixtools', '1.0.3', ext_options), + ('cluster', '2.0.3', ext_options), + ('gclus', '1.3.1', ext_options), + ('coda', '0.18-1', ext_options), + ('codetools', '0.2-14', ext_options), + ('foreach', '1.4.3', ext_options), + ('doMC', '1.3.4', ext_options), + ('DBI', '0.3.1', ext_options), + ('foreign', '0.8-66', ext_options), + ('gam', '1.12', ext_options), + ('gamlss.data', '4.3-2', ext_options), + ('gamlss.dist', '4.3-5', ext_options), + ('hwriter', '1.3.2', ext_options), + ('KernSmooth', '2.23-15', ext_options), + ('xts', '0.9-7', ext_options), + ('TTR', '0.23-0', ext_options), + ('quantmod', '0.4-5', ext_options), + ('mnormt', '1.5-3', ext_options), + ('mvtnorm', '1.0-3', ext_options), + ('pcaPP', '1.9-60', ext_options), + ('numDeriv', '2014.2-1', ext_options), + ('lava', '1.4.1', ext_options), + ('prodlim', '1.5.7', ext_options), + ('pscl', '1.4.9', ext_options), + ('RSQLite', '1.0.0', ext_options), + ('BatchJobs', '1.6', ext_options), + ('sandwich', '2.3-4', ext_options), + ('sfsmisc', '1.0-28', ext_options), + ('spatial', '7.3-11', ext_options), + ('VGAM', '1.0-0', ext_options), + ('waveslim', '1.7.5', ext_options), + ('xtable', '1.8-0', ext_options), + ('profileModel', '0.5-9', ext_options), + ('brglm', '0.5-9', ext_options), + ('deSolve', '1.12', ext_options), + ('tseriesChaos', '0.1-13', ext_options), + ('tseries', '0.10-34', ext_options), + ('fastICA', '1.2-0', ext_options), + ('R.methodsS3', '1.7.0', ext_options), + ('R.oo', '1.19.0', ext_options), + ('cgdsr', '1.2.5', ext_options), + ('R.utils', '2.2.0', ext_options), + ('R.matlab', '3.3.0', ext_options), + ('gbm', '2.1.1', ext_options), + ('dichromat', '2.0-0', ext_options), + ('Formula', '1.2-1', ext_options), + ('acepack', '1.3-3.3', ext_options), + ('reshape2', '1.4.1', ext_options), + ('gtable', '0.1.2', ext_options), + ('munsell', '0.4.2', ext_options), + ('labeling', '0.3', ext_options), + ('scales', '0.3.0', ext_options), + ('proto', '0.3-10', ext_options), + ('ggplot2', '2.0.0', ext_options), + ('gridExtra', '2.0.0', ext_options), + ('Hmisc', '3.17-1', ext_options), + ('fastcluster', '1.1.16', ext_options), + ('chron', '2.3-47', ext_options), + ('data.table', '1.9.6', ext_options), + ('registry', '0.3', ext_options), + ('pkgmaker', '0.22', ext_options), + ('rngtools', '1.2.4', ext_options), + ('doParallel', '1.0.10', ext_options), + ('gridBase', '0.4-7', ext_options), + ('NMF', '0.20.6', ext_options), + ('irlba', '2.0.0', ext_options), + ('igraph', '1.0.1', ext_options), + ('GeneNet', '1.2.13', ext_options), + ('ape', '3.4', ext_options), + ('htmltools', '0.3', ext_options), + ('RJSONIO', '1.3-0', ext_options), + ('caTools', '1.17.1', ext_options), + ('gplots', '2.17.0', ext_options), + ('ROCR', '1.0-7', ext_options), + ('httpuv', '1.3.3', ext_options), + ('R6', '2.1.1', ext_options), + ('jsonlite', '0.9.19', ext_options), + ('rjson', '0.2.15', ext_options), + ('shiny', '0.12.2', ext_options), + ('seqinr', '3.1-3', ext_options), + ('LearnBayes', '2.15', ext_options), + ('deldir', '0.1-9', ext_options), + ('spdep', '0.5-92', ext_options), + ('assertthat', '0.1', ext_options), + ('lazyeval', '0.1.10', ext_options), + ('dplyr', '0.4.3', ext_options), + ('adegenet', '2.0.0', ext_options), + ('rncl', '0.6.0', ext_options), + ('XML', '3.98-1.3', ext_options), + ('memoise', '0.2.1', ext_options), + ('crayon', '1.3.1', ext_options), + ('praise', '1.0.0', ext_options), + ('testthat', '0.11.0', ext_options), + ('yaml', '2.1.13', ext_options), + ('knitr', '1.11', ext_options), + ('rmarkdown', '0.9.2', ext_options), + ('curl', '0.9.4', ext_options), + ('httr', '1.0.0', ext_options), + ('reshape', '0.8.5', ext_options), + ('bold', '0.3.0', ext_options), + ('taxize', '0.7.0', ext_options), + ('tidyr', '0.3.1', ext_options), + ('uuid', '0.1-2', ext_options), + ('RNeXML', '2.0.5', ext_options), + ('phylobase', '0.8.0', ext_options), + ('adephylo', '1.1-6', ext_options), + ('animation', '2.4', ext_options), + ('bigmemory.sri', '0.1.3', ext_options), + ('bigmemory', '4.5.8', dict(ext_options.items() + [('patches', ['bigmemory-4.5.8_icpc-wd308.patch'])])), + ('calibrate', '1.7.2', ext_options), + ('clusterGeneration', '1.3.4', ext_options), + ('raster', '2.5-2', ext_options), + ('dismo', '1.0-12', ext_options), + ('expm', '0.999-0', ext_options), + ('extrafontdb', '1.0', ext_options), + ('Rttf2pt1', '1.3.3', ext_options), + ('extrafont', '0.17', ext_options), + ('fields', '8.3-6', ext_options), + ('shapefiles', '0.7', ext_options), + ('fossil', '0.3.7', ext_options), + ('geiger', '2.0.6', ext_options), + ('glmnet', '2.0-2', ext_options), + ('rgl', '0.95.1441', ext_options), + ('labdsv', '1.7-0', ext_options), + ('stabs', '0.5-1', ext_options), + ('mboost', '2.5-0', ext_options), + ('msm', '1.6', ext_options), + ('nor1mix', '1.2-1', ext_options), + ('np', '0.60-2', ext_options), + ('polynom', '1.3-8', ext_options), + ('polspline', '1.1.12', ext_options), + ('TH.data', '1.0-6', ext_options), + ('multcomp', '1.4-1', ext_options), + ('rms', '4.4-1', ext_options), + ('RWekajars', '3.7.12-1', ext_options), + ('RWeka', '0.4-24', ext_options), + ('slam', '0.1-32', ext_options), + ('tm', '0.6-2', ext_options), + ('TraMineR', '1.8-11', ext_options), + ('chemometrics', '1.3.9', ext_options), + ('FNN', '1.1', ext_options), + ('ipred', '0.9-5', ext_options), + ('statmod', '1.4.23', ext_options), + ('miscTools', '0.6-16', ext_options), + ('maxLik', '1.3-4', ext_options), + ('mlogit', '0.2-4', ext_options), + ('getopt', '1.20.0', ext_options), + ('gsalib', '2.1', ext_options), + ('optparse', '1.3.2', ext_options), + ('klaR', '0.6-12', ext_options), + ('neuRosim', '0.2-12', ext_options), + ('locfit', '1.5-9.1', ext_options), + ('GGally', '1.0.0', ext_options), + ('beanplot', '1.2', ext_options), + ('clValid', '0.6-6', ext_options), + ('matrixStats', '0.50.1', ext_options), + ('DiscriMiner', '0.1-29', ext_options), + ('ellipse', '0.3-8', ext_options), + ('leaps', '2.9', ext_options), + ('nloptr', '1.0.4', ext_options), + ('lme4', '1.1-10', ext_options), + ('pbkrtest', '0.4-4', ext_options), + ('car', '2.1-1', ext_options), + ('flashClust', '1.01-2', ext_options), + ('FactoMineR', '1.31.4', ext_options), + ('modeltools', '0.2-21', ext_options), + ('flexclust', '1.3-4', ext_options), + ('flexmix', '2.3-13', ext_options), + ('prabclus', '2.2-6', ext_options), + ('diptest', '0.75-7', ext_options), + ('trimcluster', '0.1-2', ext_options), + ('fpc', '2.1-10', ext_options), + ('BiasedUrn', '1.07', ext_options), + ('TeachingDemos', '2.9', ext_options), + ('kohonen', '2.0.19', ext_options), + ('base64', '1.1', ext_options), + ('doRNG', '1.6', ext_options), + ('nleqslv', '2.9.1', ext_options), + ('RGCCA', '2.0', ext_options), + ('pheatmap', '1.0.8', ext_options), + ('openxlsx', '3.0.0', ext_options), + ('pvclust', '2.0-0', ext_options), + ('RCircos', '1.1.3', ext_options), + ('lambda.r', '1.1.7', ext_options), + ('futile.options', '1.0.0', ext_options), + ('futile.logger', '1.4.1', ext_options), + ('VennDiagram', '1.6.16', ext_options), + ('xlsxjars', '0.6.1', ext_options), + ('xlsx', '0.5.7', ext_options), + ('vegan', '2.3-2', ext_options), + ('forecast', '6.1', dict(ext_options.items() + [('patches', ['forecast-6.1_icpc-wd308.patch'])])), + ('fma', '2.01', ext_options), + ('expsmooth', '2.3', ext_options), + ('fpp', '0.5', ext_options), + ('maptools', '0.8-37', ext_options), + ('deldir', '0.1-9', ext_options), + ('tensor', '1.5', ext_options), + ('polyclip', '1.3-2', ext_options), + ('goftest', '1.0-3', ext_options), + ('spatstat', '1.44-1', ext_options), + ('rgdal', '1.1-3', ext_options), + ('gdalUtils', '2.0.1.7', ext_options), + ('pracma', '1.8.8', ext_options), + ('RCurl', '1.95-4.7', ext_options), + ('bio3d', '2.2-4', ext_options), + ('AUC', '0.3.0', ext_options), + ('interpretR', '0.2.3', ext_options), + ('SuperLearner', '2.0-15', ext_options), + ('lpSolve', '5.6.13', ext_options), + ('mediation', '4.4.5', ext_options), + ('caret', '6.0-64', ext_options), + ('adabag', '4.1', ext_options), + ('parallelMap', '1.3', ext_options), + ('ParamHelpers', '1.6', ext_options), + ('ggvis', '0.4.2', ext_options), + ('mlr', '2.7', ext_options), + ('unbalanced', '2.0', ext_options), + ('RSNNS', '0.4-7', ext_options), + ('abc.data', '1.0', ext_options), + ('abc', '2.1', ext_options), + ('lhs', '0.10', ext_options), + ('tensorA', '0.36', ext_options), + ('EasyABC', '1.5', ext_options), + ('shape', '1.4.2', ext_options), + ('whisker', '0.3-2', ext_options), + ('rstudioapi', '0.4.0', ext_options), + ('roxygen2', '5.0.1', ext_options), + ('git2r', '0.13.1', ext_options), + ('xml2', '0.1.2', ext_options), + ('rversions', '1.0.2', ext_options), + ('devtools', '1.9.1', ext_options), + ('Rook', '1.1-1', ext_options), + ('rjson', '0.2.15', ext_options), + ('Cairo', '1.5-9', ext_options), + ('RMTstat', '0.3', ext_options), + ('Lmoments', '1.1-6', ext_options), + ('distillery', '1.0-2', ext_options), + ('extRemes', '2.0-7', ext_options), + ('pixmap', '0.4-11', ext_options), + ('tkrplot', '0.0-23', ext_options), + ('misc3d', '0.8-4', ext_options), + ('multicool', '0.1-9', dict(ext_options.items() + [('patches', [('multicool-0.1-9_icpc-wd308.patch', 1)])])), + ('ks', '1.10.1', ext_options), + ('logcondens', '2.1.4', ext_options), + ('Iso', '0.0-17', ext_options), + ('penalized', '0.9-45', ext_options), + ('coin', '1.1-2', ext_options), + ('clusterRepro', '0.5-1.1', ext_options), + ('randomForestSRC', '2.0.7', ext_options), + ('sm', '2.2-5.4', ext_options), + ('psych', '1.5.8', ext_options), + ('pbivnorm', '0.6.0', ext_options), + ('lavaan', '0.5-20', ext_options), + ('matrixcalc', '1.0-3', ext_options), + ('arm', '1.8-6', ext_options), + ('mi', '1.0', ext_options), + ('htmlwidgets', '0.6', ext_options), + ('visNetwork', '0.2.1', ext_options), + ('DiagrammeR', '0.8.2', ext_options), + ('sem', '3.1-6', ext_options), + ('jpeg', '0.1-8', ext_options), + ('sna', '2.3-2', ext_options), + ('glasso', '1.8', dict(ext_options.items() + [('patches', [('glasso-1.8-ifort-no-fixed.patch', 1)])])), + ('huge', '1.2.7', ext_options), + ('d3Network', '0.5.2.1', ext_options), + ('ggm', '2.3', ext_options), + ('qgraph', '1.3.2', ext_options), + ('diveRsity', '1.9.89', ext_options), + ('doSNOW', '1.0.14', ext_options), + ('phangorn', '2.0.2', ext_options), +] + +moduleclass = 'lang' diff --git a/r/R/R-3.2.3-intel-2016a.eb b/r/R/R-3.2.3-intel-2016a.eb new file mode 100644 index 00000000..91dc12b9 --- /dev/null +++ b/r/R/R-3.2.3-intel-2016a.eb @@ -0,0 +1,444 @@ +name = 'R' +version = '3.2.3' + +homepage = 'http://www.r-project.org/' +description = """R is a free software environment for statistical computing and graphics.""" + +toolchain = {'name': 'intel', 'version': '2016a'} + +sources = [SOURCE_TAR_GZ] +source_urls = ['http://cran.us.r-project.org/src/base/R-%(version_major)s'] + +preconfigopts = 'BLAS_LIBS="$LIBBLAS" LAPACK_LIBS="$LIBLAPACK"' +configopts = "--with-lapack --with-blas --with-pic --enable-threads --with-x=no --enable-R-shlib" +# some recommended packages may fail in a parallel build (e.g. Matrix), and we're installing them anyway below +configopts += " --with-recommended-packages=no" + +dependencies = [ + ('libreadline', '6.3'), + ('ncurses', '6.0'), + ('libpng', '1.6.21'), # for plotting in R + ('libjpeg-turbo', '1.4.2'), # for plottting in R + ('Java', '1.8.0_72', '', True), # Java bindings are built if Java is found, might as well provide it + ('Tcl', '8.6.4'), # for tcltk + ('Tk', '8.6.4', '-no-X11'), # for tcltk + ('cURL', '7.47.0'), # for RCurl + ('libxml2', '2.9.3'), # for XML + ('GDAL', '2.0.2'), # for rgdal + ('PROJ', '4.9.2'), # for rgdal +] + +name_tmpl = '%(name)s_%(version)s.tar.gz' +ext_options = { + 'source_urls': [ + 'http://cran.r-project.org/src/contrib/Archive/%(name)s', # package archive + 'http://cran.r-project.org/src/contrib/', # current version of packages + 'http://cran.freestatistics.org/src/contrib', # mirror alternative for current packages + ], + 'source_tmpl': name_tmpl, +} + + +# !! order of packages is important !! +# packages updated on January 21st 2016 +exts_list = [ + # default libraries, only here to sanity check their presence + 'base', + 'datasets', + 'graphics', + 'grDevices', + 'grid', + 'methods', + 'splines', + 'stats', + 'stats4', + 'tools', + 'utils', + # non-standard libraries, should be specified with fixed versions! + ('Rmpi', '0.6-5', dict(ext_options.items() + [('patches', ['Rmpi-0.6-5_impi5.patch'])])), + ('abind', '1.4-3', ext_options), + ('magic', '1.5-6', ext_options), + ('geometry', '0.3-6', dict(ext_options.items() + [('patches', ['geometry-0.3-4-icc.patch'])])), + ('bit', '1.1-12', ext_options), + ('filehash', '2.3', ext_options), + ('ff', '2.2-13', ext_options), + ('bnlearn', '3.9', ext_options), + ('bootstrap', '2015.2', ext_options), + ('combinat', '0.0-8', ext_options), + ('deal', '1.2-37', ext_options), + ('fdrtool', '1.2.15', ext_options), + ('formatR', '1.2.1', ext_options), + ('gtools', '3.5.0', ext_options), + ('gdata', '2.17.0', ext_options), + ('GSA', '1.03', ext_options), + ('highr', '0.5.1', ext_options), + ('infotheo', '1.2.0', ext_options), + ('lars', '1.2', ext_options), + ('lazy', '1.2-15', ext_options), + ('kernlab', '0.9-22', ext_options), + ('mime', '0.4', ext_options), + ('markdown', '0.7.7', ext_options), + ('mlbench', '2.1-1', ext_options), + ('NLP', '0.1-8', ext_options), + ('mclust', '5.1', ext_options), + ('RANN', '2.5', ext_options), + ('rmeta', '2.16', ext_options), + ('segmented', '0.5-1.4', ext_options), + ('som', '0.3-5', ext_options), + ('SuppDists', '1.1-9.1', ext_options), + ('stabledist', '0.7-0', ext_options), + ('survivalROC', '1.0.3', ext_options), + ('pspline', '1.0-17', ext_options), + ('timeDate', '3012.100', ext_options), + ('longmemo', '1.0-0', ext_options), + ('ADGofTest', '0.3', ext_options), + ('ade4', '1.7-3', ext_options), + ('AlgDesign', '1.1-7.3', ext_options), + ('base64enc', '0.1-3', ext_options), + ('BH', '1.60.0-1', ext_options), + ('brew', '1.0-6', ext_options), + ('Brobdingnag', '1.2-4', ext_options), + ('corpcor', '1.6.8', ext_options), + ('longitudinal', '1.1.12', ext_options), + ('checkmate', '1.6.3', ext_options), + ('cubature', '1.1-2', ext_options), + ('DEoptimR', '1.0-4', ext_options), + ('digest', '0.6.8', ext_options), + ('fastmatch', '1.0-4', ext_options), + ('ffbase', '0.12.1', ext_options), + ('iterators', '1.0.8', ext_options), + ('maps', '3.0.2', ext_options), + ('nnls', '1.4', ext_options), + ('sendmailR', '1.2-1', ext_options), + ('spam', '1.3-0', ext_options), + ('subplex', '1.1-6', ext_options), + ('stringi', '1.0-1', ext_options), + ('magrittr', '1.5', ext_options), + ('stringr', '1.0.0', ext_options), + ('evaluate', '0.8', ext_options), + ('logspline', '2.1.8', ext_options), + ('ncbit', '2013.03.29', ext_options), + ('permute', '0.8-4', ext_options), + ('plotrix', '3.6-1', ext_options), + ('randomForest', '4.6-12', ext_options), + ('scatterplot3d', '0.3-36', ext_options), + ('SparseM', '1.7', ext_options), + ('tripack', '1.3-7', ext_options), + ('irace', '1.07', ext_options), + ('rJava', '0.9-7', ext_options), + ('lattice', '0.20-33', ext_options), + ('RColorBrewer', '1.1-2', ext_options), + ('latticeExtra', '0.6-26', ext_options), + ('Matrix', '1.2-3', ext_options), + ('png', '0.1-7', ext_options), + ('Rcpp', '0.12.2', ext_options), + ('RcppArmadillo', '0.6.400.2.2', ext_options), + ('plyr', '1.8.3', ext_options), + ('pROC', '1.8', ext_options), + ('quadprog', '1.5-5', ext_options), + ('BB', '2014.10-1', ext_options), + ('BBmisc', '1.9', ext_options), + ('fail', '1.3', ext_options), + ('rlecuyer', '0.3-4', ext_options), + ('snow', '0.4-1', ext_options), + ('MASS', '7.3-45', ext_options), + ('tree', '1.0-36', ext_options), + ('pls', '2.5-0', ext_options), + ('class', '7.3-14', ext_options), + ('e1071', '1.6-7', ext_options), + ('nnet', '7.3-11', ext_options), + ('nlme', '3.1-122', ext_options), + ('minqa', '1.2.4', ext_options), + ('RcppEigen', '0.3.2.5.1', ext_options), + ('MatrixModels', '0.4-1', ext_options), + ('quantreg', '5.19', ext_options), + ('mgcv', '1.8-10', ext_options), + ('colorspace', '1.2-6', ext_options), + ('robustbase', '0.92-5', ext_options), + ('sp', '1.2-1', ext_options), + ('zoo', '1.7-12', ext_options), + ('lmtest', '0.9-34', ext_options), + ('vcd', '1.4-1', ext_options), + ('snowfall', '1.84-6.1', ext_options), + ('rpart', '4.1-10', ext_options), + ('survival', '2.38-3', ext_options), + ('mice', '2.25', ext_options), + ('urca', '1.2-8', ext_options), + ('fracdiff', '1.4-2', ext_options), + ('logistf', '1.21', ext_options), + ('akima', '0.5-12', ext_options), + ('bitops', '1.0-6', ext_options), + ('boot', '1.3-17', ext_options), + ('mixtools', '1.0.3', ext_options), + ('cluster', '2.0.3', ext_options), + ('gclus', '1.3.1', ext_options), + ('coda', '0.18-1', ext_options), + ('codetools', '0.2-14', ext_options), + ('foreach', '1.4.3', ext_options), + ('doMC', '1.3.4', ext_options), + ('DBI', '0.3.1', ext_options), + ('foreign', '0.8-66', ext_options), + ('gam', '1.12', ext_options), + ('gamlss.data', '4.3-2', ext_options), + ('gamlss.dist', '4.3-5', ext_options), + ('hwriter', '1.3.2', ext_options), + ('KernSmooth', '2.23-15', ext_options), + ('xts', '0.9-7', ext_options), + ('TTR', '0.23-0', ext_options), + ('quantmod', '0.4-5', ext_options), + ('mnormt', '1.5-3', ext_options), + ('mvtnorm', '1.0-3', ext_options), + ('pcaPP', '1.9-60', ext_options), + ('numDeriv', '2014.2-1', ext_options), + ('lava', '1.4.1', ext_options), + ('prodlim', '1.5.7', ext_options), + ('pscl', '1.4.9', ext_options), + ('RSQLite', '1.0.0', ext_options), + ('BatchJobs', '1.6', ext_options), + ('sandwich', '2.3-4', ext_options), + ('sfsmisc', '1.0-28', ext_options), + ('spatial', '7.3-11', ext_options), + ('VGAM', '1.0-0', ext_options), + ('waveslim', '1.7.5', ext_options), + ('xtable', '1.8-0', ext_options), + ('profileModel', '0.5-9', ext_options), + ('brglm', '0.5-9', ext_options), + ('deSolve', '1.12', ext_options), + ('tseriesChaos', '0.1-13', ext_options), + ('tseries', '0.10-34', ext_options), + ('fastICA', '1.2-0', ext_options), + ('R.methodsS3', '1.7.0', ext_options), + ('R.oo', '1.19.0', ext_options), + ('cgdsr', '1.2.5', ext_options), + ('R.utils', '2.2.0', ext_options), + ('R.matlab', '3.3.0', ext_options), + ('gbm', '2.1.1', ext_options), + ('dichromat', '2.0-0', ext_options), + ('Formula', '1.2-1', ext_options), + ('acepack', '1.3-3.3', ext_options), + ('reshape2', '1.4.1', ext_options), + ('gtable', '0.1.2', ext_options), + ('munsell', '0.4.2', ext_options), + ('labeling', '0.3', ext_options), + ('scales', '0.3.0', ext_options), + ('proto', '0.3-10', ext_options), + ('ggplot2', '2.0.0', ext_options), + ('gridExtra', '2.0.0', ext_options), + ('Hmisc', '3.17-1', ext_options), + ('fastcluster', '1.1.16', ext_options), + ('chron', '2.3-47', ext_options), + ('data.table', '1.9.6', ext_options), + ('registry', '0.3', ext_options), + ('pkgmaker', '0.22', ext_options), + ('rngtools', '1.2.4', ext_options), + ('doParallel', '1.0.10', ext_options), + ('gridBase', '0.4-7', ext_options), + ('NMF', '0.20.6', ext_options), + ('irlba', '2.0.0', ext_options), + ('igraph', '1.0.1', ext_options), + ('GeneNet', '1.2.13', ext_options), + ('ape', '3.4', ext_options), + ('htmltools', '0.3', ext_options), + ('RJSONIO', '1.3-0', ext_options), + ('caTools', '1.17.1', ext_options), + ('gplots', '2.17.0', ext_options), + ('ROCR', '1.0-7', ext_options), + ('httpuv', '1.3.3', ext_options), + ('R6', '2.1.1', ext_options), + ('jsonlite', '0.9.19', ext_options), + ('rjson', '0.2.15', ext_options), + ('shiny', '0.12.2', ext_options), + ('seqinr', '3.1-3', ext_options), + ('LearnBayes', '2.15', ext_options), + ('deldir', '0.1-9', ext_options), + ('spdep', '0.5-92', ext_options), + ('assertthat', '0.1', ext_options), + ('lazyeval', '0.1.10', ext_options), + ('dplyr', '0.4.3', ext_options), + ('adegenet', '2.0.0', ext_options), + ('rncl', '0.6.0', ext_options), + ('XML', '3.98-1.3', ext_options), + ('memoise', '0.2.1', ext_options), + ('crayon', '1.3.1', ext_options), + ('praise', '1.0.0', ext_options), + ('testthat', '0.11.0', ext_options), + ('yaml', '2.1.13', ext_options), + ('knitr', '1.11', ext_options), + ('rmarkdown', '0.9.2', ext_options), + ('curl', '0.9.4', ext_options), + ('httr', '1.0.0', ext_options), + ('reshape', '0.8.5', ext_options), + ('bold', '0.3.0', ext_options), + ('taxize', '0.7.0', ext_options), + ('tidyr', '0.3.1', ext_options), + ('uuid', '0.1-2', ext_options), + ('RNeXML', '2.0.5', ext_options), + ('phylobase', '0.8.0', ext_options), + ('adephylo', '1.1-6', ext_options), + ('animation', '2.4', ext_options), + ('bigmemory.sri', '0.1.3', ext_options), + ('bigmemory', '4.5.8', dict(ext_options.items() + [('patches', ['bigmemory-4.5.8_icpc-wd308.patch'])])), + ('calibrate', '1.7.2', ext_options), + ('clusterGeneration', '1.3.4', ext_options), + ('raster', '2.5-2', ext_options), + ('dismo', '1.0-12', ext_options), + ('expm', '0.999-0', ext_options), + ('extrafontdb', '1.0', ext_options), + ('Rttf2pt1', '1.3.3', ext_options), + ('extrafont', '0.17', ext_options), + ('fields', '8.3-6', ext_options), + ('shapefiles', '0.7', ext_options), + ('fossil', '0.3.7', ext_options), + ('geiger', '2.0.6', ext_options), + ('glmnet', '2.0-2', ext_options), + ('rgl', '0.95.1441', ext_options), + ('labdsv', '1.7-0', ext_options), + ('stabs', '0.5-1', ext_options), + ('mboost', '2.5-0', ext_options), + ('msm', '1.6', ext_options), + ('nor1mix', '1.2-1', ext_options), + ('np', '0.60-2', ext_options), + ('polynom', '1.3-8', ext_options), + ('polspline', '1.1.12', ext_options), + ('TH.data', '1.0-6', ext_options), + ('multcomp', '1.4-1', ext_options), + ('rms', '4.4-1', ext_options), + ('RWekajars', '3.7.12-1', ext_options), + ('RWeka', '0.4-24', ext_options), + ('slam', '0.1-32', ext_options), + ('tm', '0.6-2', ext_options), + ('TraMineR', '1.8-11', ext_options), + ('chemometrics', '1.3.9', ext_options), + ('FNN', '1.1', ext_options), + ('ipred', '0.9-5', ext_options), + ('statmod', '1.4.23', ext_options), + ('miscTools', '0.6-16', ext_options), + ('maxLik', '1.3-4', ext_options), + ('mlogit', '0.2-4', ext_options), + ('getopt', '1.20.0', ext_options), + ('gsalib', '2.1', ext_options), + ('optparse', '1.3.2', ext_options), + ('klaR', '0.6-12', ext_options), + ('neuRosim', '0.2-12', ext_options), + ('locfit', '1.5-9.1', ext_options), + ('GGally', '1.0.0', ext_options), + ('beanplot', '1.2', ext_options), + ('clValid', '0.6-6', ext_options), + ('matrixStats', '0.50.1', ext_options), + ('DiscriMiner', '0.1-29', ext_options), + ('ellipse', '0.3-8', ext_options), + ('leaps', '2.9', ext_options), + ('nloptr', '1.0.4', ext_options), + ('lme4', '1.1-10', ext_options), + ('pbkrtest', '0.4-4', ext_options), + ('car', '2.1-1', ext_options), + ('flashClust', '1.01-2', ext_options), + ('FactoMineR', '1.31.4', ext_options), + ('modeltools', '0.2-21', ext_options), + ('flexclust', '1.3-4', ext_options), + ('flexmix', '2.3-13', ext_options), + ('prabclus', '2.2-6', ext_options), + ('diptest', '0.75-7', ext_options), + ('trimcluster', '0.1-2', ext_options), + ('fpc', '2.1-10', ext_options), + ('BiasedUrn', '1.07', ext_options), + ('TeachingDemos', '2.9', ext_options), + ('kohonen', '2.0.19', ext_options), + ('base64', '1.1', ext_options), + ('doRNG', '1.6', ext_options), + ('nleqslv', '2.9.1', ext_options), + ('RGCCA', '2.0', ext_options), + ('pheatmap', '1.0.8', ext_options), + ('openxlsx', '3.0.0', ext_options), + ('pvclust', '2.0-0', ext_options), + ('RCircos', '1.1.3', ext_options), + ('lambda.r', '1.1.7', ext_options), + ('futile.options', '1.0.0', ext_options), + ('futile.logger', '1.4.1', ext_options), + ('VennDiagram', '1.6.16', ext_options), + ('xlsxjars', '0.6.1', ext_options), + ('xlsx', '0.5.7', ext_options), + ('vegan', '2.3-2', ext_options), + ('forecast', '6.1', dict(ext_options.items() + [('patches', ['forecast-6.1_icpc-wd308.patch'])])), + ('fma', '2.01', ext_options), + ('expsmooth', '2.3', ext_options), + ('fpp', '0.5', ext_options), + ('maptools', '0.8-37', ext_options), + ('deldir', '0.1-9', ext_options), + ('tensor', '1.5', ext_options), + ('polyclip', '1.3-2', ext_options), + ('goftest', '1.0-3', ext_options), + ('spatstat', '1.44-1', ext_options), + ('rgdal', '1.1-3', ext_options), + ('gdalUtils', '2.0.1.7', ext_options), + ('pracma', '1.8.8', ext_options), + ('RCurl', '1.95-4.7', ext_options), + ('bio3d', '2.2-4', ext_options), + ('AUC', '0.3.0', ext_options), + ('interpretR', '0.2.3', ext_options), + ('SuperLearner', '2.0-15', ext_options), + ('lpSolve', '5.6.13', ext_options), + ('mediation', '4.4.5', ext_options), + ('caret', '6.0-64', ext_options), + ('adabag', '4.1', ext_options), + ('parallelMap', '1.3', ext_options), + ('ParamHelpers', '1.6', ext_options), + ('ggvis', '0.4.2', ext_options), + ('mlr', '2.7', ext_options), + ('unbalanced', '2.0', ext_options), + ('RSNNS', '0.4-7', ext_options), + ('abc.data', '1.0', ext_options), + ('abc', '2.1', ext_options), + ('lhs', '0.10', ext_options), + ('tensorA', '0.36', ext_options), + ('EasyABC', '1.5', ext_options), + ('shape', '1.4.2', ext_options), + ('whisker', '0.3-2', ext_options), + ('rstudioapi', '0.4.0', ext_options), + ('roxygen2', '5.0.1', ext_options), + ('git2r', '0.13.1', ext_options), + ('xml2', '0.1.2', ext_options), + ('rversions', '1.0.2', ext_options), + ('devtools', '1.9.1', ext_options), + ('Rook', '1.1-1', ext_options), + ('rjson', '0.2.15', ext_options), + ('Cairo', '1.5-9', ext_options), + ('RMTstat', '0.3', ext_options), + ('Lmoments', '1.1-6', ext_options), + ('distillery', '1.0-2', ext_options), + ('extRemes', '2.0-7', ext_options), + ('pixmap', '0.4-11', ext_options), + ('tkrplot', '0.0-23', ext_options), + ('misc3d', '0.8-4', ext_options), + ('multicool', '0.1-9', dict(ext_options.items() + [('patches', [('multicool-0.1-9_icpc-wd308.patch', 1)])])), + ('ks', '1.10.1', ext_options), + ('logcondens', '2.1.4', ext_options), + ('Iso', '0.0-17', ext_options), + ('penalized', '0.9-45', ext_options), + ('coin', '1.1-2', ext_options), + ('clusterRepro', '0.5-1.1', ext_options), + ('randomForestSRC', '2.0.7', ext_options), + ('sm', '2.2-5.4', ext_options), + ('psych', '1.5.8', ext_options), + ('pbivnorm', '0.6.0', ext_options), + ('lavaan', '0.5-20', ext_options), + ('matrixcalc', '1.0-3', ext_options), + ('arm', '1.8-6', ext_options), + ('mi', '1.0', ext_options), + ('htmlwidgets', '0.6', ext_options), + ('visNetwork', '0.2.1', ext_options), + ('DiagrammeR', '0.8.2', ext_options), + ('sem', '3.1-6', ext_options), + ('jpeg', '0.1-8', ext_options), + ('sna', '2.3-2', ext_options), + ('glasso', '1.8', dict(ext_options.items() + [('patches', [('glasso-1.8-ifort-no-fixed.patch', 1)])])), + ('huge', '1.2.7', ext_options), + ('d3Network', '0.5.2.1', ext_options), + ('ggm', '2.3', ext_options), + ('qgraph', '1.3.2', ext_options), + ('diveRsity', '1.9.89', ext_options), + ('doSNOW', '1.0.14', ext_options), + ('phangorn', '2.0.2', ext_options), +] + +moduleclass = 'lang' diff --git a/r/R/R-3.3.1-foss-2016a.eb b/r/R/R-3.3.1-foss-2016a.eb new file mode 100644 index 00000000..7ed2007d --- /dev/null +++ b/r/R/R-3.3.1-foss-2016a.eb @@ -0,0 +1,475 @@ +name = 'R' +version = '3.3.1' + +homepage = 'http://www.r-project.org/' +description = """R is a free software environment for statistical computing and graphics.""" + +toolchain = {'name': 'foss', 'version': '2016a'} + +sources = [SOURCE_TAR_GZ] +source_urls = ['http://cran.us.r-project.org/src/base/R-%(version_major)s'] + +preconfigopts = 'BLAS_LIBS="$LIBBLAS" LAPACK_LIBS="$LIBLAPACK"' +configopts = "--with-lapack --with-blas --with-pic --enable-threads --with-x=no --enable-R-shlib" +# some recommended packages may fail in a parallel build (e.g. Matrix), and we're installing them anyway below +configopts += " --with-recommended-packages=no" + +dependencies = [ + ('libreadline', '6.3'), + ('ncurses', '6.0'), + ('bzip2', '1.0.6'), + ('XZ', '5.2.2'), + ('zlib', '1.2.8'), + ('SQLite', '3.13.0'), + ('PCRE', '8.38'), + ('libpng', '1.6.23'), # for plotting in R + ('libjpeg-turbo', '1.5.0'), # for plottting in R + ('LibTIFF', '4.0.6'), + ('Java', '1.8.0_92', '', True), # Java bindings are built if Java is found, might as well provide it + ('Tcl', '8.6.5'), # for tcltk + ('Tk', '8.6.5'), # for tcltk + ('cURL', '7.49.1'), # for RCurl + ('libxml2', '2.9.4'), # for XML + ('GDAL', '2.1.0'), # for rgdal + ('PROJ', '4.9.2'), # for rgdal + ('GMP', '6.1.1'), # for igraph + # OS dependency should be preferred if the os version is more recent then this version, + # it's nice to have an up to date openssl for security reasons + # ('OpenSSL', '1.0.2h'), +] + +osdependencies = [('openssl-devel', 'libssl-dev', 'libopenssl-devel')] + +name_tmpl = '%(name)s_%(version)s.tar.gz' +ext_options = { + 'source_urls': [ + 'http://cran.r-project.org/src/contrib/Archive/%(name)s', # package archive + 'http://cran.r-project.org/src/contrib/', # current version of packages + 'http://cran.freestatistics.org/src/contrib', # mirror alternative for current packages + ], + 'source_tmpl': name_tmpl, +} + + +# !! order of packages is important !! +# packages updated on July 8th 2016 +exts_list = [ + # default libraries, only here to sanity check their presence + 'base', + 'datasets', + 'graphics', + 'grDevices', + 'grid', + 'methods', + 'splines', + 'stats', + 'stats4', + 'tools', + 'utils', + # non-standard libraries, should be specified with fixed versions! + ('Rmpi', '0.6-6', ext_options), + ('abind', '1.4-3', ext_options), + ('magic', '1.5-6', ext_options), + ('geometry', '0.3-6', ext_options), + ('bit', '1.1-12', ext_options), + ('filehash', '2.3', ext_options), + ('ff', '2.2-13', ext_options), + ('bnlearn', '4.0', ext_options), + ('bootstrap', '2015.2', ext_options), + ('combinat', '0.0-8', ext_options), + ('deal', '1.2-37', ext_options), + ('fdrtool', '1.2.15', ext_options), + ('formatR', '1.4', ext_options), + ('gtools', '3.5.0', ext_options), + ('gdata', '2.17.0', ext_options), + ('GSA', '1.03', ext_options), + ('highr', '0.6', ext_options), + ('infotheo', '1.2.0', ext_options), + ('lars', '1.2', ext_options), + ('lazy', '1.2-15', ext_options), + ('kernlab', '0.9-24', ext_options), + ('mime', '0.5', ext_options), + ('markdown', '0.7.7', ext_options), + ('mlbench', '2.1-1', ext_options), + ('NLP', '0.1-9', ext_options), + ('mclust', '5.2', ext_options), + ('RANN', '2.5', ext_options), + ('rmeta', '2.16', ext_options), + ('segmented', '0.5-1.4', ext_options), + ('som', '0.3-5.1', ext_options), + ('SuppDists', '1.1-9.2', ext_options), + ('stabledist', '0.7-0', ext_options), + ('survivalROC', '1.0.3', ext_options), + ('pspline', '1.0-17', ext_options), + ('timeDate', '3012.100', ext_options), + ('longmemo', '1.0-0', ext_options), + ('ADGofTest', '0.3', ext_options), + ('ade4', '1.7-4', ext_options), + ('AlgDesign', '1.1-7.3', ext_options), + ('base64enc', '0.1-3', ext_options), + ('BH', '1.60.0-2', ext_options), + ('brew', '1.0-6', ext_options), + ('Brobdingnag', '1.2-4', ext_options), + ('corpcor', '1.6.8', ext_options), + ('longitudinal', '1.1.12', ext_options), + ('backports', '1.0.3', ext_options), + ('checkmate', '1.8.1', ext_options), + ('cubature', '1.1-2', ext_options), + ('DEoptimR', '1.0-6', ext_options), + ('digest', '0.6.9', ext_options), + ('fastmatch', '1.0-4', ext_options), + ('ffbase', '0.12.3', ext_options), + ('iterators', '1.0.8', ext_options), + ('maps', '3.1.0', ext_options), + ('nnls', '1.4', ext_options), + ('sendmailR', '1.2-1', ext_options), + ('spam', '1.3-0', ext_options), + ('subplex', '1.1-6', ext_options), + ('stringi', '1.1.1', ext_options), + ('magrittr', '1.5', ext_options), + ('stringr', '1.0.0', ext_options), + ('evaluate', '0.9', ext_options), + ('logspline', '2.1.9', ext_options), + ('ncbit', '2013.03.29', ext_options), + ('permute', '0.9-0', ext_options), + ('plotrix', '3.6-2', ext_options), + ('randomForest', '4.6-12', ext_options), + ('scatterplot3d', '0.3-37', ext_options), + ('SparseM', '1.7', ext_options), + ('tripack', '1.3-7', ext_options), + ('irace', '1.07', ext_options), + ('rJava', '0.9-8', ext_options), + ('lattice', '0.20-33', ext_options), + ('RColorBrewer', '1.1-2', ext_options), + ('latticeExtra', '0.6-28', ext_options), + ('Matrix', '1.2-6', ext_options), + ('png', '0.1-7', ext_options), + ('Rcpp', '0.12.5', ext_options), + ('RcppArmadillo', '0.7.100.3.1', ext_options), + ('plyr', '1.8.4', ext_options), + ('pROC', '1.8', ext_options), + ('quadprog', '1.5-5', ext_options), + ('BB', '2014.10-1', ext_options), + ('BBmisc', '1.9', ext_options), + ('fail', '1.3', ext_options), + ('rlecuyer', '0.3-4', ext_options), + ('snow', '0.4-1', ext_options), + ('MASS', '7.3-45', ext_options), + ('tree', '1.0-37', ext_options), + ('pls', '2.5-0', ext_options), + ('class', '7.3-14', ext_options), + ('e1071', '1.6-7', ext_options), + ('nnet', '7.3-12', ext_options), + ('nlme', '3.1-128', ext_options), + ('minqa', '1.2.4', ext_options), + ('RcppEigen', '0.3.2.8.1', ext_options), + ('MatrixModels', '0.4-1', ext_options), + ('quantreg', '5.26', ext_options), + ('mgcv', '1.8-12', ext_options), + ('colorspace', '1.2-6', ext_options), + ('robustbase', '0.92-6', ext_options), + ('sp', '1.2-3', ext_options), + ('zoo', '1.7-13', ext_options), + ('lmtest', '0.9-34', ext_options), + ('vcd', '1.4-1', ext_options), + ('snowfall', '1.84-6.1', ext_options), + ('rpart', '4.1-10', ext_options), + ('survival', '2.39-5', ext_options), + ('mice', '2.25', ext_options), + ('urca', '1.2-9', ext_options), + ('fracdiff', '1.4-2', ext_options), + ('logistf', '1.21', ext_options), + ('akima', '0.5-12', ext_options), + ('bitops', '1.0-6', ext_options), + ('boot', '1.3-18', ext_options), + ('mixtools', '1.0.4', ext_options), + ('cluster', '2.0.4', ext_options), + ('gclus', '1.3.1', ext_options), + ('coda', '0.18-1', ext_options), + ('codetools', '0.2-14', ext_options), + ('foreach', '1.4.3', ext_options), + ('doMC', '1.3.4', ext_options), + ('DBI', '0.4-1', ext_options), + ('foreign', '0.8-66', ext_options), + ('gam', '1.12', ext_options), + ('gamlss.data', '4.3-4', ext_options), + ('gamlss.dist', '4.3-6', ext_options), + ('hwriter', '1.3.2', ext_options), + ('KernSmooth', '2.23-15', ext_options), + ('xts', '0.9-7', ext_options), + ('TTR', '0.23-1', ext_options), + ('quantmod', '0.4-5', ext_options), + ('mnormt', '1.5-4', ext_options), + ('mvtnorm', '1.0-5', ext_options), + ('pcaPP', '1.9-60', ext_options), + ('numDeriv', '2014.2-1', ext_options), + ('lava', '1.4.3', ext_options), + ('prodlim', '1.5.7', ext_options), + ('pscl', '1.4.9', ext_options), + ('RSQLite', '1.0.0', ext_options), + ('BatchJobs', '1.6', ext_options), + ('sandwich', '2.3-4', ext_options), + ('sfsmisc', '1.1-0', ext_options), + ('spatial', '7.3-11', ext_options), + ('VGAM', '1.0-2', ext_options), + ('waveslim', '1.7.5', ext_options), + ('xtable', '1.8-2', ext_options), + ('profileModel', '0.5-9', ext_options), + ('brglm', '0.5-9', ext_options), + ('deSolve', '1.13', ext_options), + ('tseriesChaos', '0.1-13', ext_options), + ('tseries', '0.10-35', ext_options), + ('fastICA', '1.2-0', ext_options), + ('R.methodsS3', '1.7.1', ext_options), + ('R.oo', '1.20.0', ext_options), + ('cgdsr', '1.2.5', ext_options), + ('R.utils', '2.3.0', ext_options), + ('R.matlab', '3.6.0', ext_options), + ('gbm', '2.1.1', ext_options), + ('dichromat', '2.0-0', ext_options), + ('Formula', '1.2-1', ext_options), + ('acepack', '1.3-3.3', ext_options), + ('reshape2', '1.4.1', ext_options), + ('gtable', '0.2.0', ext_options), + ('munsell', '0.4.3', ext_options), + ('labeling', '0.3', ext_options), + ('scales', '0.4.0', ext_options), + ('proto', '0.3-10', ext_options), + ('ggplot2', '2.1.0', ext_options), + ('gridExtra', '2.2.1', ext_options), + ('chron', '2.3-47', ext_options), + ('data.table', '1.9.6', ext_options), + ('Hmisc', '3.17-4', ext_options), + ('fastcluster', '1.1.20', ext_options), + ('registry', '0.3', ext_options), + ('pkgmaker', '0.22', ext_options), + ('rngtools', '1.2.4', ext_options), + ('doParallel', '1.0.10', ext_options), + ('gridBase', '0.4-7', ext_options), + ('NMF', '0.20.6', ext_options), + ('irlba', '2.0.0', ext_options), + ('igraph', '1.0.1', ext_options), + ('GeneNet', '1.2.13', ext_options), + ('ape', '3.5', ext_options), + ('htmltools', '0.3.5', ext_options), + ('RJSONIO', '1.3-0', ext_options), + ('caTools', '1.17.1', ext_options), + ('gplots', '3.0.1', ext_options), + ('ROCR', '1.0-7', ext_options), + ('httpuv', '1.3.3', ext_options), + ('R6', '2.1.2', ext_options), + ('jsonlite', '1.0', ext_options), + ('rjson', '0.2.15', ext_options), + ('shiny', '0.13.2', ext_options), + ('seqinr', '3.2-0', ext_options), + ('LearnBayes', '2.15', ext_options), + ('deldir', '0.1-12', ext_options), + ('gmodels', '2.16.2', ext_options), + ('spdep', '0.6-5', ext_options), + ('assertthat', '0.1', ext_options), + ('lazyeval', '0.2.0', ext_options), + ('tibble', '1.1', ext_options), + ('dplyr', '0.5.0', ext_options), + ('vegan', '2.4-0', ext_options), + ('adegenet', '2.0.1', ext_options), + ('rncl', '0.6.0', ext_options), + ('XML', '3.98-1.4', ext_options), + ('memoise', '1.0.0', ext_options), + ('crayon', '1.3.2', ext_options), + ('praise', '1.0.0', ext_options), + ('testthat', '1.0.2', ext_options), + ('yaml', '2.1.13', ext_options), + ('knitr', '1.13', ext_options), + ('rmarkdown', '0.9.6', ext_options), + ('curl', '0.9.7', ext_options), + ('openssl', '0.9.4', ext_options), + ('httr', '1.2.1', ext_options), + ('reshape', '0.8.5', ext_options), + ('xml2', '1.0.0', ext_options), + ('bold', '0.3.5', ext_options), + ('rredlist', '0.1.0', ext_options), + ('rentrez', '1.0.2', ext_options), + ('rotl', '3.0.0', ext_options), + ('taxize', '0.7.8', ext_options), + ('tidyr', '0.5.1', ext_options), + ('uuid', '0.1-2', ext_options), + ('RNeXML', '2.0.7', ext_options), + ('phylobase', '0.8.2', ext_options), + ('adephylo', '1.1-6', ext_options), + ('animation', '2.4', ext_options), + ('bigmemory.sri', '0.1.3', ext_options), + ('bigmemory', '4.5.19', ext_options), + ('calibrate', '1.7.2', ext_options), + ('clusterGeneration', '1.3.4', ext_options), + ('raster', '2.5-8', ext_options), + ('dismo', '1.1-1', ext_options), + ('expm', '0.999-0', ext_options), + ('extrafontdb', '1.0', ext_options), + ('Rttf2pt1', '1.3.4', ext_options), + ('extrafont', '0.17', ext_options), + ('fields', '8.4-1', ext_options), + ('shapefiles', '0.7', ext_options), + ('fossil', '0.3.7', ext_options), + ('geiger', '2.0.6', ext_options), + ('glmnet', '2.0-5', ext_options), + ('rgl', '0.95.1441', ext_options), + ('labdsv', '1.8-0', ext_options), + ('stabs', '0.5-1', ext_options), + ('modeltools', '0.2-21', ext_options), + ('strucchange', '1.5-1', ext_options), + ('TH.data', '1.0-7', ext_options), + ('multcomp', '1.4-5', ext_options), + ('coin', '1.1-2', ext_options), + ('party', '1.0-25', ext_options), + ('mboost', '2.6-0', ext_options), + ('msm', '1.6.1', ext_options), + ('nor1mix', '1.2-1', ext_options), + ('np', '0.60-2', ext_options), + ('polynom', '1.3-8', ext_options), + ('polspline', '1.1.12', ext_options), + ('rms', '4.5-0', ext_options), + ('RWekajars', '3.9.0-1', ext_options), + ('RWeka', '0.4-29', ext_options), + ('slam', '0.1-35', ext_options), + ('tm', '0.6-2', ext_options), + ('TraMineR', '1.8-12', ext_options), + ('chemometrics', '1.3.9', ext_options), + ('FNN', '1.1', ext_options), + ('ipred', '0.9-5', ext_options), + ('statmod', '1.4.24', ext_options), + ('miscTools', '0.6-16', ext_options), + ('maxLik', '1.3-4', ext_options), + ('mlogit', '0.2-4', ext_options), + ('getopt', '1.20.0', ext_options), + ('gsalib', '2.1', ext_options), + ('optparse', '1.3.2', ext_options), + ('klaR', '0.6-12', ext_options), + ('neuRosim', '0.2-12', ext_options), + ('locfit', '1.5-9.1', ext_options), + ('GGally', '1.2.0', ext_options), + ('beanplot', '1.2', ext_options), + ('clValid', '0.6-6', ext_options), + ('matrixStats', '0.50.2', ext_options), + ('DiscriMiner', '0.1-29', ext_options), + ('ellipse', '0.3-8', ext_options), + ('leaps', '2.9', ext_options), + ('nloptr', '1.0.4', ext_options), + ('lme4', '1.1-12', ext_options), + ('pbkrtest', '0.4-6', ext_options), + ('car', '2.1-2', ext_options), + ('flashClust', '1.01-2', ext_options), + ('FactoMineR', '1.33', ext_options), + ('flexclust', '1.3-4', ext_options), + ('flexmix', '2.3-13', ext_options), + ('prabclus', '2.2-6', ext_options), + ('diptest', '0.75-7', ext_options), + ('trimcluster', '0.1-2', ext_options), + ('fpc', '2.1-10', ext_options), + ('BiasedUrn', '1.07', ext_options), + ('TeachingDemos', '2.10', ext_options), + ('kohonen', '2.0.19', ext_options), + ('base64', '2.0', ext_options), + ('doRNG', '1.6', ext_options), + ('nleqslv', '3.0.2', ext_options), + ('RGCCA', '2.0', ext_options), + ('pheatmap', '1.0.8', ext_options), + ('openxlsx', '3.0.0', ext_options), + ('pvclust', '2.0-0', ext_options), + ('RCircos', '1.1.3', ext_options), + ('lambda.r', '1.1.7', ext_options), + ('futile.options', '1.0.0', ext_options), + ('futile.logger', '1.4.1', ext_options), + ('VennDiagram', '1.6.17', ext_options), + ('xlsxjars', '0.6.1', ext_options), + ('xlsx', '0.5.7', ext_options), + ('forecast', '7.1', ext_options), + ('fma', '2.2', ext_options), + ('expsmooth', '2.3', ext_options), + ('fpp', '0.5', ext_options), + ('maptools', '0.8-39', ext_options), + ('deldir', '0.1-12', ext_options), + ('tensor', '1.5', ext_options), + ('polyclip', '1.5-6', ext_options), + ('goftest', '1.0-3', ext_options), + ('spatstat', '1.46-1', ext_options), + ('rgdal', '1.1-10', ext_options), + ('gdalUtils', '2.0.1.7', ext_options), + ('pracma', '1.9.3', ext_options), + ('RCurl', '1.95-4.8', ext_options), + ('bio3d', '2.2-4', ext_options), + ('AUC', '0.3.0', ext_options), + ('interpretR', '0.2.4', ext_options), + ('cvAUC', '1.1.0', ext_options), + ('SuperLearner', '2.0-19', ext_options), + ('lpSolve', '5.6.13', ext_options), + ('mediation', '4.4.5', ext_options), + ('caret', '6.0-70', ext_options), + ('adabag', '4.1', ext_options), + ('parallelMap', '1.3', ext_options), + ('ParamHelpers', '1.7', ext_options), + ('ggvis', '0.4.2', ext_options), + ('mlr', '2.8', ext_options), + ('unbalanced', '2.0', ext_options), + ('RSNNS', '0.4-7', ext_options), + ('abc.data', '1.0', ext_options), + ('abc', '2.1', ext_options), + ('lhs', '0.13', ext_options), + ('tensorA', '0.36', ext_options), + ('EasyABC', '1.5', ext_options), + ('shape', '1.4.2', ext_options), + ('whisker', '0.3-2', ext_options), + ('rstudioapi', '0.6', ext_options), + ('roxygen2', '5.0.1', ext_options), + ('git2r', '0.15.0', ext_options), + ('rversions', '1.0.2', ext_options), + ('withr', '1.0.2', ext_options), + ('devtools', '1.12.0', ext_options), + ('Rook', '1.1-1', ext_options), + ('rjson', '0.2.15', ext_options), + ('Cairo', '1.5-9', ext_options), + ('RMTstat', '0.3', ext_options), + ('Lmoments', '1.2-3', ext_options), + ('distillery', '1.0-2', ext_options), + ('extRemes', '2.0-7', ext_options), + ('pixmap', '0.4-11', ext_options), + ('tkrplot', '0.0-23', ext_options), + ('misc3d', '0.8-4', ext_options), + ('multicool', '0.1-9', ext_options), + ('ks', '1.10.4', ext_options), + ('logcondens', '2.1.4', ext_options), + ('Iso', '0.0-17', ext_options), + ('penalized', '0.9-47', ext_options), + ('clusterRepro', '0.5-1.1', ext_options), + ('randomForestSRC', '2.2.0', ext_options), + ('sm', '2.2-5.4', ext_options), + ('psych', '1.6.6', ext_options), + ('pbivnorm', '0.6.0', ext_options), + ('lavaan', '0.5-20', ext_options), + ('matrixcalc', '1.0-3', ext_options), + ('arm', '1.8-6', ext_options), + ('mi', '1.0', ext_options), + ('htmlwidgets', '0.6', ext_options), + ('visNetwork', '1.0.1', ext_options), + ('DiagrammeR', '0.8.2', ext_options), + ('sem', '3.1-7', ext_options), + ('jpeg', '0.1-8', ext_options), + ('sna', '2.3-2', ext_options), + ('glasso', '1.8', ext_options), + ('huge', '1.2.7', ext_options), + ('d3Network', '0.5.2.1', ext_options), + ('ggm', '2.3', ext_options), + ('qgraph', '1.3.4', ext_options), + ('diveRsity', '1.9.89', ext_options), + ('doSNOW', '1.0.14', ext_options), + ('phangorn', '2.0.4', ext_options), + ('geepack', '1.2-0.2', ext_options), + ('lubridate', '1.5.6', ext_options), + ('biom', '0.3.12', ext_options), + ('pim', '2.0.0.2', ext_options), + ('minpack.lm', '1.2-1', ext_options), + ('rootSolve', '1.7', ext_options), + ('diagram', '1.6.3', ext_options), + ('FME', '1.3.5', ext_options), +] + +moduleclass = 'lang' diff --git a/r/R/R-3.3.1-foss-2016b.eb b/r/R/R-3.3.1-foss-2016b.eb new file mode 100644 index 00000000..e6d46c62 --- /dev/null +++ b/r/R/R-3.3.1-foss-2016b.eb @@ -0,0 +1,475 @@ +name = 'R' +version = '3.3.1' + +homepage = 'http://www.r-project.org/' +description = """R is a free software environment for statistical computing and graphics.""" + +toolchain = {'name': 'foss', 'version': '2016b'} + +sources = [SOURCE_TAR_GZ] +source_urls = ['http://cran.us.r-project.org/src/base/R-%(version_major)s'] + +preconfigopts = 'BLAS_LIBS="$LIBBLAS" LAPACK_LIBS="$LIBLAPACK"' +configopts = "--with-lapack --with-blas --with-pic --enable-threads --with-x=no --enable-R-shlib" +# some recommended packages may fail in a parallel build (e.g. Matrix), and we're installing them anyway below +configopts += " --with-recommended-packages=no" + +dependencies = [ + ('libreadline', '6.3'), + ('ncurses', '6.0'), + ('bzip2', '1.0.6'), + ('XZ', '5.2.2'), + ('zlib', '1.2.8'), + ('SQLite', '3.13.0'), + ('PCRE', '8.38'), + ('libpng', '1.6.23'), # for plotting in R + ('libjpeg-turbo', '1.5.0'), # for plottting in R + ('LibTIFF', '4.0.6'), + ('Java', '1.8.0_92', '', True), # Java bindings are built if Java is found, might as well provide it + ('Tcl', '8.6.5'), # for tcltk + ('Tk', '8.6.5'), # for tcltk + ('cURL', '7.49.1'), # for RCurl + ('libxml2', '2.9.4'), # for XML + ('GDAL', '2.1.0'), # for rgdal + ('PROJ', '4.9.2'), # for rgdal + ('GMP', '6.1.1'), # for igraph + # OS dependency should be preferred if the os version is more recent then this version, + # it's nice to have an up to date openssl for security reasons + # ('OpenSSL', '1.0.2h'), +] + +osdependencies = [('openssl-devel', 'libssl-dev', 'libopenssl-devel')] + +name_tmpl = '%(name)s_%(version)s.tar.gz' +ext_options = { + 'source_urls': [ + 'http://cran.r-project.org/src/contrib/Archive/%(name)s', # package archive + 'http://cran.r-project.org/src/contrib/', # current version of packages + 'http://cran.freestatistics.org/src/contrib', # mirror alternative for current packages + ], + 'source_tmpl': name_tmpl, +} + + +# !! order of packages is important !! +# packages updated on July 8th 2016 +exts_list = [ + # default libraries, only here to sanity check their presence + 'base', + 'datasets', + 'graphics', + 'grDevices', + 'grid', + 'methods', + 'splines', + 'stats', + 'stats4', + 'tools', + 'utils', + # non-standard libraries, should be specified with fixed versions! + ('Rmpi', '0.6-6', ext_options), + ('abind', '1.4-3', ext_options), + ('magic', '1.5-6', ext_options), + ('geometry', '0.3-6', ext_options), + ('bit', '1.1-12', ext_options), + ('filehash', '2.3', ext_options), + ('ff', '2.2-13', ext_options), + ('bnlearn', '4.0', ext_options), + ('bootstrap', '2015.2', ext_options), + ('combinat', '0.0-8', ext_options), + ('deal', '1.2-37', ext_options), + ('fdrtool', '1.2.15', ext_options), + ('formatR', '1.4', ext_options), + ('gtools', '3.5.0', ext_options), + ('gdata', '2.17.0', ext_options), + ('GSA', '1.03', ext_options), + ('highr', '0.6', ext_options), + ('infotheo', '1.2.0', ext_options), + ('lars', '1.2', ext_options), + ('lazy', '1.2-15', ext_options), + ('kernlab', '0.9-24', ext_options), + ('mime', '0.5', ext_options), + ('markdown', '0.7.7', ext_options), + ('mlbench', '2.1-1', ext_options), + ('NLP', '0.1-9', ext_options), + ('mclust', '5.2', ext_options), + ('RANN', '2.5', ext_options), + ('rmeta', '2.16', ext_options), + ('segmented', '0.5-1.4', ext_options), + ('som', '0.3-5.1', ext_options), + ('SuppDists', '1.1-9.2', ext_options), + ('stabledist', '0.7-0', ext_options), + ('survivalROC', '1.0.3', ext_options), + ('pspline', '1.0-17', ext_options), + ('timeDate', '3012.100', ext_options), + ('longmemo', '1.0-0', ext_options), + ('ADGofTest', '0.3', ext_options), + ('ade4', '1.7-4', ext_options), + ('AlgDesign', '1.1-7.3', ext_options), + ('base64enc', '0.1-3', ext_options), + ('BH', '1.60.0-2', ext_options), + ('brew', '1.0-6', ext_options), + ('Brobdingnag', '1.2-4', ext_options), + ('corpcor', '1.6.8', ext_options), + ('longitudinal', '1.1.12', ext_options), + ('backports', '1.0.3', ext_options), + ('checkmate', '1.8.1', ext_options), + ('cubature', '1.1-2', ext_options), + ('DEoptimR', '1.0-6', ext_options), + ('digest', '0.6.9', ext_options), + ('fastmatch', '1.0-4', ext_options), + ('ffbase', '0.12.3', ext_options), + ('iterators', '1.0.8', ext_options), + ('maps', '3.1.0', ext_options), + ('nnls', '1.4', ext_options), + ('sendmailR', '1.2-1', ext_options), + ('spam', '1.3-0', ext_options), + ('subplex', '1.1-6', ext_options), + ('stringi', '1.1.1', ext_options), + ('magrittr', '1.5', ext_options), + ('stringr', '1.0.0', ext_options), + ('evaluate', '0.9', ext_options), + ('logspline', '2.1.9', ext_options), + ('ncbit', '2013.03.29', ext_options), + ('permute', '0.9-0', ext_options), + ('plotrix', '3.6-2', ext_options), + ('randomForest', '4.6-12', ext_options), + ('scatterplot3d', '0.3-37', ext_options), + ('SparseM', '1.7', ext_options), + ('tripack', '1.3-7', ext_options), + ('irace', '1.07', ext_options), + ('rJava', '0.9-8', ext_options), + ('lattice', '0.20-33', ext_options), + ('RColorBrewer', '1.1-2', ext_options), + ('latticeExtra', '0.6-28', ext_options), + ('Matrix', '1.2-6', ext_options), + ('png', '0.1-7', ext_options), + ('Rcpp', '0.12.5', ext_options), + ('RcppArmadillo', '0.7.100.3.1', ext_options), + ('plyr', '1.8.4', ext_options), + ('pROC', '1.8', ext_options), + ('quadprog', '1.5-5', ext_options), + ('BB', '2014.10-1', ext_options), + ('BBmisc', '1.9', ext_options), + ('fail', '1.3', ext_options), + ('rlecuyer', '0.3-4', ext_options), + ('snow', '0.4-1', ext_options), + ('MASS', '7.3-45', ext_options), + ('tree', '1.0-37', ext_options), + ('pls', '2.5-0', ext_options), + ('class', '7.3-14', ext_options), + ('e1071', '1.6-7', ext_options), + ('nnet', '7.3-12', ext_options), + ('nlme', '3.1-128', ext_options), + ('minqa', '1.2.4', ext_options), + ('RcppEigen', '0.3.2.8.1', ext_options), + ('MatrixModels', '0.4-1', ext_options), + ('quantreg', '5.26', ext_options), + ('mgcv', '1.8-12', ext_options), + ('colorspace', '1.2-6', ext_options), + ('robustbase', '0.92-6', ext_options), + ('sp', '1.2-3', ext_options), + ('zoo', '1.7-13', ext_options), + ('lmtest', '0.9-34', ext_options), + ('vcd', '1.4-1', ext_options), + ('snowfall', '1.84-6.1', ext_options), + ('rpart', '4.1-10', ext_options), + ('survival', '2.39-5', ext_options), + ('mice', '2.25', ext_options), + ('urca', '1.2-9', ext_options), + ('fracdiff', '1.4-2', ext_options), + ('logistf', '1.21', ext_options), + ('akima', '0.5-12', ext_options), + ('bitops', '1.0-6', ext_options), + ('boot', '1.3-18', ext_options), + ('mixtools', '1.0.4', ext_options), + ('cluster', '2.0.4', ext_options), + ('gclus', '1.3.1', ext_options), + ('coda', '0.18-1', ext_options), + ('codetools', '0.2-14', ext_options), + ('foreach', '1.4.3', ext_options), + ('doMC', '1.3.4', ext_options), + ('DBI', '0.4-1', ext_options), + ('foreign', '0.8-66', ext_options), + ('gam', '1.12', ext_options), + ('gamlss.data', '4.3-4', ext_options), + ('gamlss.dist', '4.3-6', ext_options), + ('hwriter', '1.3.2', ext_options), + ('KernSmooth', '2.23-15', ext_options), + ('xts', '0.9-7', ext_options), + ('TTR', '0.23-1', ext_options), + ('quantmod', '0.4-5', ext_options), + ('mnormt', '1.5-4', ext_options), + ('mvtnorm', '1.0-5', ext_options), + ('pcaPP', '1.9-60', ext_options), + ('numDeriv', '2014.2-1', ext_options), + ('lava', '1.4.3', ext_options), + ('prodlim', '1.5.7', ext_options), + ('pscl', '1.4.9', ext_options), + ('RSQLite', '1.0.0', ext_options), + ('BatchJobs', '1.6', ext_options), + ('sandwich', '2.3-4', ext_options), + ('sfsmisc', '1.1-0', ext_options), + ('spatial', '7.3-11', ext_options), + ('VGAM', '1.0-2', ext_options), + ('waveslim', '1.7.5', ext_options), + ('xtable', '1.8-2', ext_options), + ('profileModel', '0.5-9', ext_options), + ('brglm', '0.5-9', ext_options), + ('deSolve', '1.13', ext_options), + ('tseriesChaos', '0.1-13', ext_options), + ('tseries', '0.10-35', ext_options), + ('fastICA', '1.2-0', ext_options), + ('R.methodsS3', '1.7.1', ext_options), + ('R.oo', '1.20.0', ext_options), + ('cgdsr', '1.2.5', ext_options), + ('R.utils', '2.3.0', ext_options), + ('R.matlab', '3.6.0', ext_options), + ('gbm', '2.1.1', ext_options), + ('dichromat', '2.0-0', ext_options), + ('Formula', '1.2-1', ext_options), + ('acepack', '1.3-3.3', ext_options), + ('reshape2', '1.4.1', ext_options), + ('gtable', '0.2.0', ext_options), + ('munsell', '0.4.3', ext_options), + ('labeling', '0.3', ext_options), + ('scales', '0.4.0', ext_options), + ('proto', '0.3-10', ext_options), + ('ggplot2', '2.1.0', ext_options), + ('gridExtra', '2.2.1', ext_options), + ('chron', '2.3-47', ext_options), + ('data.table', '1.9.6', ext_options), + ('Hmisc', '3.17-4', ext_options), + ('fastcluster', '1.1.20', ext_options), + ('registry', '0.3', ext_options), + ('pkgmaker', '0.22', ext_options), + ('rngtools', '1.2.4', ext_options), + ('doParallel', '1.0.10', ext_options), + ('gridBase', '0.4-7', ext_options), + ('NMF', '0.20.6', ext_options), + ('irlba', '2.0.0', ext_options), + ('igraph', '1.0.1', ext_options), + ('GeneNet', '1.2.13', ext_options), + ('ape', '3.5', ext_options), + ('htmltools', '0.3.5', ext_options), + ('RJSONIO', '1.3-0', ext_options), + ('caTools', '1.17.1', ext_options), + ('gplots', '3.0.1', ext_options), + ('ROCR', '1.0-7', ext_options), + ('httpuv', '1.3.3', ext_options), + ('R6', '2.1.2', ext_options), + ('jsonlite', '1.0', ext_options), + ('rjson', '0.2.15', ext_options), + ('shiny', '0.13.2', ext_options), + ('seqinr', '3.2-0', ext_options), + ('LearnBayes', '2.15', ext_options), + ('deldir', '0.1-12', ext_options), + ('gmodels', '2.16.2', ext_options), + ('spdep', '0.6-5', ext_options), + ('assertthat', '0.1', ext_options), + ('lazyeval', '0.2.0', ext_options), + ('tibble', '1.1', ext_options), + ('dplyr', '0.5.0', ext_options), + ('vegan', '2.4-0', ext_options), + ('adegenet', '2.0.1', ext_options), + ('rncl', '0.6.0', ext_options), + ('XML', '3.98-1.4', ext_options), + ('memoise', '1.0.0', ext_options), + ('crayon', '1.3.2', ext_options), + ('praise', '1.0.0', ext_options), + ('testthat', '1.0.2', ext_options), + ('yaml', '2.1.13', ext_options), + ('knitr', '1.13', ext_options), + ('rmarkdown', '0.9.6', ext_options), + ('curl', '0.9.7', ext_options), + ('openssl', '0.9.4', ext_options), + ('httr', '1.2.1', ext_options), + ('reshape', '0.8.5', ext_options), + ('xml2', '1.0.0', ext_options), + ('bold', '0.3.5', ext_options), + ('rredlist', '0.1.0', ext_options), + ('rentrez', '1.0.2', ext_options), + ('rotl', '3.0.0', ext_options), + ('taxize', '0.7.8', ext_options), + ('tidyr', '0.5.1', ext_options), + ('uuid', '0.1-2', ext_options), + ('RNeXML', '2.0.7', ext_options), + ('phylobase', '0.8.2', ext_options), + ('adephylo', '1.1-6', ext_options), + ('animation', '2.4', ext_options), + ('bigmemory.sri', '0.1.3', ext_options), + ('bigmemory', '4.5.19', ext_options), + ('calibrate', '1.7.2', ext_options), + ('clusterGeneration', '1.3.4', ext_options), + ('raster', '2.5-8', ext_options), + ('dismo', '1.1-1', ext_options), + ('expm', '0.999-0', ext_options), + ('extrafontdb', '1.0', ext_options), + ('Rttf2pt1', '1.3.4', ext_options), + ('extrafont', '0.17', ext_options), + ('fields', '8.4-1', ext_options), + ('shapefiles', '0.7', ext_options), + ('fossil', '0.3.7', ext_options), + ('geiger', '2.0.6', ext_options), + ('glmnet', '2.0-5', ext_options), + ('rgl', '0.95.1441', ext_options), + ('labdsv', '1.8-0', ext_options), + ('stabs', '0.5-1', ext_options), + ('modeltools', '0.2-21', ext_options), + ('strucchange', '1.5-1', ext_options), + ('TH.data', '1.0-7', ext_options), + ('multcomp', '1.4-5', ext_options), + ('coin', '1.1-2', ext_options), + ('party', '1.0-25', ext_options), + ('mboost', '2.6-0', ext_options), + ('msm', '1.6.1', ext_options), + ('nor1mix', '1.2-1', ext_options), + ('np', '0.60-2', ext_options), + ('polynom', '1.3-8', ext_options), + ('polspline', '1.1.12', ext_options), + ('rms', '4.5-0', ext_options), + ('RWekajars', '3.9.0-1', ext_options), + ('RWeka', '0.4-29', ext_options), + ('slam', '0.1-35', ext_options), + ('tm', '0.6-2', ext_options), + ('TraMineR', '1.8-12', ext_options), + ('chemometrics', '1.3.9', ext_options), + ('FNN', '1.1', ext_options), + ('ipred', '0.9-5', ext_options), + ('statmod', '1.4.24', ext_options), + ('miscTools', '0.6-16', ext_options), + ('maxLik', '1.3-4', ext_options), + ('mlogit', '0.2-4', ext_options), + ('getopt', '1.20.0', ext_options), + ('gsalib', '2.1', ext_options), + ('optparse', '1.3.2', ext_options), + ('klaR', '0.6-12', ext_options), + ('neuRosim', '0.2-12', ext_options), + ('locfit', '1.5-9.1', ext_options), + ('GGally', '1.2.0', ext_options), + ('beanplot', '1.2', ext_options), + ('clValid', '0.6-6', ext_options), + ('matrixStats', '0.50.2', ext_options), + ('DiscriMiner', '0.1-29', ext_options), + ('ellipse', '0.3-8', ext_options), + ('leaps', '2.9', ext_options), + ('nloptr', '1.0.4', ext_options), + ('lme4', '1.1-12', ext_options), + ('pbkrtest', '0.4-6', ext_options), + ('car', '2.1-2', ext_options), + ('flashClust', '1.01-2', ext_options), + ('FactoMineR', '1.33', ext_options), + ('flexclust', '1.3-4', ext_options), + ('flexmix', '2.3-13', ext_options), + ('prabclus', '2.2-6', ext_options), + ('diptest', '0.75-7', ext_options), + ('trimcluster', '0.1-2', ext_options), + ('fpc', '2.1-10', ext_options), + ('BiasedUrn', '1.07', ext_options), + ('TeachingDemos', '2.10', ext_options), + ('kohonen', '2.0.19', ext_options), + ('base64', '2.0', ext_options), + ('doRNG', '1.6', ext_options), + ('nleqslv', '3.0.2', ext_options), + ('RGCCA', '2.0', ext_options), + ('pheatmap', '1.0.8', ext_options), + ('openxlsx', '3.0.0', ext_options), + ('pvclust', '2.0-0', ext_options), + ('RCircos', '1.1.3', ext_options), + ('lambda.r', '1.1.7', ext_options), + ('futile.options', '1.0.0', ext_options), + ('futile.logger', '1.4.1', ext_options), + ('VennDiagram', '1.6.17', ext_options), + ('xlsxjars', '0.6.1', ext_options), + ('xlsx', '0.5.7', ext_options), + ('forecast', '7.1', ext_options), + ('fma', '2.2', ext_options), + ('expsmooth', '2.3', ext_options), + ('fpp', '0.5', ext_options), + ('maptools', '0.8-39', ext_options), + ('deldir', '0.1-12', ext_options), + ('tensor', '1.5', ext_options), + ('polyclip', '1.5-6', ext_options), + ('goftest', '1.0-3', ext_options), + ('spatstat', '1.46-1', ext_options), + ('rgdal', '1.1-10', ext_options), + ('gdalUtils', '2.0.1.7', ext_options), + ('pracma', '1.9.3', ext_options), + ('RCurl', '1.95-4.8', ext_options), + ('bio3d', '2.2-4', ext_options), + ('AUC', '0.3.0', ext_options), + ('interpretR', '0.2.4', ext_options), + ('cvAUC', '1.1.0', ext_options), + ('SuperLearner', '2.0-19', ext_options), + ('lpSolve', '5.6.13', ext_options), + ('mediation', '4.4.5', ext_options), + ('caret', '6.0-70', ext_options), + ('adabag', '4.1', ext_options), + ('parallelMap', '1.3', ext_options), + ('ParamHelpers', '1.7', ext_options), + ('ggvis', '0.4.2', ext_options), + ('mlr', '2.8', ext_options), + ('unbalanced', '2.0', ext_options), + ('RSNNS', '0.4-7', ext_options), + ('abc.data', '1.0', ext_options), + ('abc', '2.1', ext_options), + ('lhs', '0.13', ext_options), + ('tensorA', '0.36', ext_options), + ('EasyABC', '1.5', ext_options), + ('shape', '1.4.2', ext_options), + ('whisker', '0.3-2', ext_options), + ('rstudioapi', '0.6', ext_options), + ('roxygen2', '5.0.1', ext_options), + ('git2r', '0.15.0', ext_options), + ('rversions', '1.0.2', ext_options), + ('withr', '1.0.2', ext_options), + ('devtools', '1.12.0', ext_options), + ('Rook', '1.1-1', ext_options), + ('rjson', '0.2.15', ext_options), + ('Cairo', '1.5-9', ext_options), + ('RMTstat', '0.3', ext_options), + ('Lmoments', '1.2-3', ext_options), + ('distillery', '1.0-2', ext_options), + ('extRemes', '2.0-7', ext_options), + ('pixmap', '0.4-11', ext_options), + ('tkrplot', '0.0-23', ext_options), + ('misc3d', '0.8-4', ext_options), + ('multicool', '0.1-9', ext_options), + ('ks', '1.10.4', ext_options), + ('logcondens', '2.1.4', ext_options), + ('Iso', '0.0-17', ext_options), + ('penalized', '0.9-47', ext_options), + ('clusterRepro', '0.5-1.1', ext_options), + ('randomForestSRC', '2.2.0', ext_options), + ('sm', '2.2-5.4', ext_options), + ('psych', '1.6.6', ext_options), + ('pbivnorm', '0.6.0', ext_options), + ('lavaan', '0.5-20', ext_options), + ('matrixcalc', '1.0-3', ext_options), + ('arm', '1.8-6', ext_options), + ('mi', '1.0', ext_options), + ('htmlwidgets', '0.6', ext_options), + ('visNetwork', '1.0.1', ext_options), + ('DiagrammeR', '0.8.2', ext_options), + ('sem', '3.1-7', ext_options), + ('jpeg', '0.1-8', ext_options), + ('sna', '2.3-2', ext_options), + ('glasso', '1.8', ext_options), + ('huge', '1.2.7', ext_options), + ('d3Network', '0.5.2.1', ext_options), + ('ggm', '2.3', ext_options), + ('qgraph', '1.3.4', ext_options), + ('diveRsity', '1.9.89', ext_options), + ('doSNOW', '1.0.14', ext_options), + ('phangorn', '2.0.4', ext_options), + ('geepack', '1.2-0.2', ext_options), + ('lubridate', '1.5.6', ext_options), + ('biom', '0.3.12', ext_options), + ('pim', '2.0.0.2', ext_options), + ('minpack.lm', '1.2-1', ext_options), + ('rootSolve', '1.7', ext_options), + ('diagram', '1.6.3', ext_options), + ('FME', '1.3.5', ext_options), +] + +moduleclass = 'lang' diff --git a/r/R/R-3.3.1-intel-2016b.eb b/r/R/R-3.3.1-intel-2016b.eb new file mode 100644 index 00000000..09f5b0a4 --- /dev/null +++ b/r/R/R-3.3.1-intel-2016b.eb @@ -0,0 +1,475 @@ +name = 'R' +version = '3.3.1' + +homepage = 'http://www.r-project.org/' +description = """R is a free software environment for statistical computing and graphics.""" + +toolchain = {'name': 'intel', 'version': '2016b'} + +sources = [SOURCE_TAR_GZ] +source_urls = ['http://cran.us.r-project.org/src/base/R-%(version_major)s'] + +preconfigopts = 'BLAS_LIBS="$LIBBLAS" LAPACK_LIBS="$LIBLAPACK"' +configopts = "--with-lapack --with-blas --with-pic --enable-threads --with-x=no --enable-R-shlib" +# some recommended packages may fail in a parallel build (e.g. Matrix), and we're installing them anyway below +configopts += " --with-recommended-packages=no" + +dependencies = [ + ('libreadline', '6.3'), + ('ncurses', '6.0'), + ('bzip2', '1.0.6'), + ('XZ', '5.2.2'), + ('zlib', '1.2.8'), + ('SQLite', '3.13.0'), + ('PCRE', '8.38'), + ('libpng', '1.6.23'), # for plotting in R + ('libjpeg-turbo', '1.5.0'), # for plottting in R + ('LibTIFF', '4.0.6'), + ('Java', '1.8.0_92', '', True), # Java bindings are built if Java is found, might as well provide it + ('Tcl', '8.6.5'), # for tcltk + ('Tk', '8.6.5'), # for tcltk + ('cURL', '7.49.1'), # for RCurl + ('libxml2', '2.9.4'), # for XML + ('GDAL', '2.1.0'), # for rgdal + ('PROJ', '4.9.2'), # for rgdal + ('GMP', '6.1.1'), # for igraph + # OS dependency should be preferred if the os version is more recent then this version, + # it's nice to have an up to date openssl for security reasons + # ('OpenSSL', '1.0.2h'), +] + +osdependencies = [('openssl-devel', 'libssl-dev', 'libopenssl-devel')] + +name_tmpl = '%(name)s_%(version)s.tar.gz' +ext_options = { + 'source_urls': [ + 'http://cran.r-project.org/src/contrib/Archive/%(name)s', # package archive + 'http://cran.r-project.org/src/contrib/', # current version of packages + 'http://cran.freestatistics.org/src/contrib', # mirror alternative for current packages + ], + 'source_tmpl': name_tmpl, +} + + +# !! order of packages is important !! +# packages updated on July 8th 2016 +exts_list = [ + # default libraries, only here to sanity check their presence + 'base', + 'datasets', + 'graphics', + 'grDevices', + 'grid', + 'methods', + 'splines', + 'stats', + 'stats4', + 'tools', + 'utils', + # non-standard libraries, should be specified with fixed versions! + ('Rmpi', '0.6-6', dict(ext_options.items() + [('patches', ['Rmpi-0.6-5_impi5.patch'])])), + ('abind', '1.4-3', ext_options), + ('magic', '1.5-6', ext_options), + ('geometry', '0.3-6', dict(ext_options.items() + [('patches', ['geometry-0.3-4-icc.patch'])])), + ('bit', '1.1-12', ext_options), + ('filehash', '2.3', ext_options), + ('ff', '2.2-13', ext_options), + ('bnlearn', '4.0', ext_options), + ('bootstrap', '2015.2', ext_options), + ('combinat', '0.0-8', ext_options), + ('deal', '1.2-37', ext_options), + ('fdrtool', '1.2.15', ext_options), + ('formatR', '1.4', ext_options), + ('gtools', '3.5.0', ext_options), + ('gdata', '2.17.0', ext_options), + ('GSA', '1.03', ext_options), + ('highr', '0.6', ext_options), + ('infotheo', '1.2.0', ext_options), + ('lars', '1.2', ext_options), + ('lazy', '1.2-15', ext_options), + ('kernlab', '0.9-24', ext_options), + ('mime', '0.5', ext_options), + ('markdown', '0.7.7', ext_options), + ('mlbench', '2.1-1', ext_options), + ('NLP', '0.1-9', ext_options), + ('mclust', '5.2', ext_options), + ('RANN', '2.5', ext_options), + ('rmeta', '2.16', ext_options), + ('segmented', '0.5-1.4', ext_options), + ('som', '0.3-5.1', ext_options), + ('SuppDists', '1.1-9.2', ext_options), + ('stabledist', '0.7-0', ext_options), + ('survivalROC', '1.0.3', ext_options), + ('pspline', '1.0-17', ext_options), + ('timeDate', '3012.100', ext_options), + ('longmemo', '1.0-0', ext_options), + ('ADGofTest', '0.3', ext_options), + ('ade4', '1.7-4', ext_options), + ('AlgDesign', '1.1-7.3', ext_options), + ('base64enc', '0.1-3', ext_options), + ('BH', '1.60.0-2', ext_options), + ('brew', '1.0-6', ext_options), + ('Brobdingnag', '1.2-4', ext_options), + ('corpcor', '1.6.8', ext_options), + ('longitudinal', '1.1.12', ext_options), + ('backports', '1.0.3', ext_options), + ('checkmate', '1.8.1', ext_options), + ('cubature', '1.1-2', ext_options), + ('DEoptimR', '1.0-6', ext_options), + ('digest', '0.6.9', ext_options), + ('fastmatch', '1.0-4', ext_options), + ('ffbase', '0.12.3', ext_options), + ('iterators', '1.0.8', ext_options), + ('maps', '3.1.0', ext_options), + ('nnls', '1.4', ext_options), + ('sendmailR', '1.2-1', ext_options), + ('spam', '1.3-0', ext_options), + ('subplex', '1.1-6', ext_options), + ('stringi', '1.1.1', ext_options), + ('magrittr', '1.5', ext_options), + ('stringr', '1.0.0', ext_options), + ('evaluate', '0.9', ext_options), + ('logspline', '2.1.9', ext_options), + ('ncbit', '2013.03.29', ext_options), + ('permute', '0.9-0', ext_options), + ('plotrix', '3.6-2', ext_options), + ('randomForest', '4.6-12', ext_options), + ('scatterplot3d', '0.3-37', ext_options), + ('SparseM', '1.7', ext_options), + ('tripack', '1.3-7', ext_options), + ('irace', '1.07', ext_options), + ('rJava', '0.9-8', ext_options), + ('lattice', '0.20-33', ext_options), + ('RColorBrewer', '1.1-2', ext_options), + ('latticeExtra', '0.6-28', ext_options), + ('Matrix', '1.2-6', ext_options), + ('png', '0.1-7', ext_options), + ('Rcpp', '0.12.5', ext_options), + ('RcppArmadillo', '0.7.100.3.1', ext_options), + ('plyr', '1.8.4', ext_options), + ('pROC', '1.8', ext_options), + ('quadprog', '1.5-5', ext_options), + ('BB', '2014.10-1', ext_options), + ('BBmisc', '1.9', ext_options), + ('fail', '1.3', ext_options), + ('rlecuyer', '0.3-4', ext_options), + ('snow', '0.4-1', ext_options), + ('MASS', '7.3-45', ext_options), + ('tree', '1.0-37', ext_options), + ('pls', '2.5-0', ext_options), + ('class', '7.3-14', ext_options), + ('e1071', '1.6-7', ext_options), + ('nnet', '7.3-12', ext_options), + ('nlme', '3.1-128', ext_options), + ('minqa', '1.2.4', ext_options), + ('RcppEigen', '0.3.2.8.1', ext_options), + ('MatrixModels', '0.4-1', ext_options), + ('quantreg', '5.26', ext_options), + ('mgcv', '1.8-12', ext_options), + ('colorspace', '1.2-6', ext_options), + ('robustbase', '0.92-6', ext_options), + ('sp', '1.2-3', ext_options), + ('zoo', '1.7-13', ext_options), + ('lmtest', '0.9-34', ext_options), + ('vcd', '1.4-1', ext_options), + ('snowfall', '1.84-6.1', ext_options), + ('rpart', '4.1-10', ext_options), + ('survival', '2.39-5', ext_options), + ('mice', '2.25', ext_options), + ('urca', '1.2-9', ext_options), + ('fracdiff', '1.4-2', ext_options), + ('logistf', '1.21', ext_options), + ('akima', '0.5-12', ext_options), + ('bitops', '1.0-6', ext_options), + ('boot', '1.3-18', ext_options), + ('mixtools', '1.0.4', ext_options), + ('cluster', '2.0.4', ext_options), + ('gclus', '1.3.1', ext_options), + ('coda', '0.18-1', ext_options), + ('codetools', '0.2-14', ext_options), + ('foreach', '1.4.3', ext_options), + ('doMC', '1.3.4', ext_options), + ('DBI', '0.4-1', ext_options), + ('foreign', '0.8-66', ext_options), + ('gam', '1.12', ext_options), + ('gamlss.data', '4.3-4', ext_options), + ('gamlss.dist', '4.3-6', ext_options), + ('hwriter', '1.3.2', ext_options), + ('KernSmooth', '2.23-15', ext_options), + ('xts', '0.9-7', ext_options), + ('TTR', '0.23-1', ext_options), + ('quantmod', '0.4-5', ext_options), + ('mnormt', '1.5-4', ext_options), + ('mvtnorm', '1.0-5', ext_options), + ('pcaPP', '1.9-60', ext_options), + ('numDeriv', '2014.2-1', ext_options), + ('lava', '1.4.3', ext_options), + ('prodlim', '1.5.7', ext_options), + ('pscl', '1.4.9', ext_options), + ('RSQLite', '1.0.0', ext_options), + ('BatchJobs', '1.6', ext_options), + ('sandwich', '2.3-4', ext_options), + ('sfsmisc', '1.1-0', ext_options), + ('spatial', '7.3-11', ext_options), + ('VGAM', '1.0-2', ext_options), + ('waveslim', '1.7.5', ext_options), + ('xtable', '1.8-2', ext_options), + ('profileModel', '0.5-9', ext_options), + ('brglm', '0.5-9', ext_options), + ('deSolve', '1.13', ext_options), + ('tseriesChaos', '0.1-13', ext_options), + ('tseries', '0.10-35', ext_options), + ('fastICA', '1.2-0', ext_options), + ('R.methodsS3', '1.7.1', ext_options), + ('R.oo', '1.20.0', ext_options), + ('cgdsr', '1.2.5', ext_options), + ('R.utils', '2.3.0', ext_options), + ('R.matlab', '3.6.0', ext_options), + ('gbm', '2.1.1', ext_options), + ('dichromat', '2.0-0', ext_options), + ('Formula', '1.2-1', ext_options), + ('acepack', '1.3-3.3', ext_options), + ('reshape2', '1.4.1', ext_options), + ('gtable', '0.2.0', ext_options), + ('munsell', '0.4.3', ext_options), + ('labeling', '0.3', ext_options), + ('scales', '0.4.0', ext_options), + ('proto', '0.3-10', ext_options), + ('ggplot2', '2.1.0', ext_options), + ('gridExtra', '2.2.1', ext_options), + ('chron', '2.3-47', ext_options), + ('data.table', '1.9.6', ext_options), + ('Hmisc', '3.17-4', ext_options), + ('fastcluster', '1.1.20', ext_options), + ('registry', '0.3', ext_options), + ('pkgmaker', '0.22', ext_options), + ('rngtools', '1.2.4', ext_options), + ('doParallel', '1.0.10', ext_options), + ('gridBase', '0.4-7', ext_options), + ('NMF', '0.20.6', ext_options), + ('irlba', '2.0.0', ext_options), + ('igraph', '1.0.1', ext_options), + ('GeneNet', '1.2.13', ext_options), + ('ape', '3.5', ext_options), + ('htmltools', '0.3.5', ext_options), + ('RJSONIO', '1.3-0', ext_options), + ('caTools', '1.17.1', ext_options), + ('gplots', '3.0.1', ext_options), + ('ROCR', '1.0-7', ext_options), + ('httpuv', '1.3.3', ext_options), + ('R6', '2.1.2', ext_options), + ('jsonlite', '1.0', ext_options), + ('rjson', '0.2.15', ext_options), + ('shiny', '0.13.2', ext_options), + ('seqinr', '3.2-0', ext_options), + ('LearnBayes', '2.15', ext_options), + ('deldir', '0.1-12', ext_options), + ('gmodels', '2.16.2', ext_options), + ('spdep', '0.6-5', ext_options), + ('assertthat', '0.1', ext_options), + ('lazyeval', '0.2.0', ext_options), + ('tibble', '1.1', ext_options), + ('dplyr', '0.5.0', ext_options), + ('vegan', '2.4-0', ext_options), + ('adegenet', '2.0.1', ext_options), + ('rncl', '0.6.0', ext_options), + ('XML', '3.98-1.4', ext_options), + ('memoise', '1.0.0', ext_options), + ('crayon', '1.3.2', ext_options), + ('praise', '1.0.0', ext_options), + ('testthat', '1.0.2', ext_options), + ('yaml', '2.1.13', ext_options), + ('knitr', '1.13', ext_options), + ('rmarkdown', '0.9.6', ext_options), + ('curl', '0.9.7', ext_options), + ('openssl', '0.9.4', ext_options), + ('httr', '1.2.1', ext_options), + ('reshape', '0.8.5', ext_options), + ('xml2', '1.0.0', ext_options), + ('bold', '0.3.5', ext_options), + ('rredlist', '0.1.0', ext_options), + ('rentrez', '1.0.2', ext_options), + ('rotl', '3.0.0', ext_options), + ('taxize', '0.7.8', ext_options), + ('tidyr', '0.5.1', ext_options), + ('uuid', '0.1-2', ext_options), + ('RNeXML', '2.0.7', ext_options), + ('phylobase', '0.8.2', ext_options), + ('adephylo', '1.1-6', ext_options), + ('animation', '2.4', ext_options), + ('bigmemory.sri', '0.1.3', ext_options), + ('bigmemory', '4.5.19', dict(ext_options.items() + [('patches', ['bigmemory-4.5.19_icpc-wd308.patch'])])), + ('calibrate', '1.7.2', ext_options), + ('clusterGeneration', '1.3.4', ext_options), + ('raster', '2.5-8', ext_options), + ('dismo', '1.1-1', ext_options), + ('expm', '0.999-0', ext_options), + ('extrafontdb', '1.0', ext_options), + ('Rttf2pt1', '1.3.4', ext_options), + ('extrafont', '0.17', ext_options), + ('fields', '8.4-1', ext_options), + ('shapefiles', '0.7', ext_options), + ('fossil', '0.3.7', ext_options), + ('geiger', '2.0.6', ext_options), + ('glmnet', '2.0-5', ext_options), + ('rgl', '0.95.1441', ext_options), + ('labdsv', '1.8-0', ext_options), + ('stabs', '0.5-1', ext_options), + ('modeltools', '0.2-21', ext_options), + ('strucchange', '1.5-1', ext_options), + ('TH.data', '1.0-7', ext_options), + ('multcomp', '1.4-5', ext_options), + ('coin', '1.1-2', ext_options), + ('party', '1.0-25', ext_options), + ('mboost', '2.6-0', ext_options), + ('msm', '1.6.1', ext_options), + ('nor1mix', '1.2-1', ext_options), + ('np', '0.60-2', ext_options), + ('polynom', '1.3-8', ext_options), + ('polspline', '1.1.12', ext_options), + ('rms', '4.5-0', ext_options), + ('RWekajars', '3.9.0-1', ext_options), + ('RWeka', '0.4-29', ext_options), + ('slam', '0.1-35', ext_options), + ('tm', '0.6-2', ext_options), + ('TraMineR', '1.8-12', ext_options), + ('chemometrics', '1.3.9', ext_options), + ('FNN', '1.1', ext_options), + ('ipred', '0.9-5', ext_options), + ('statmod', '1.4.24', ext_options), + ('miscTools', '0.6-16', ext_options), + ('maxLik', '1.3-4', ext_options), + ('mlogit', '0.2-4', ext_options), + ('getopt', '1.20.0', ext_options), + ('gsalib', '2.1', ext_options), + ('optparse', '1.3.2', ext_options), + ('klaR', '0.6-12', ext_options), + ('neuRosim', '0.2-12', ext_options), + ('locfit', '1.5-9.1', ext_options), + ('GGally', '1.2.0', ext_options), + ('beanplot', '1.2', ext_options), + ('clValid', '0.6-6', ext_options), + ('matrixStats', '0.50.2', ext_options), + ('DiscriMiner', '0.1-29', ext_options), + ('ellipse', '0.3-8', ext_options), + ('leaps', '2.9', ext_options), + ('nloptr', '1.0.4', ext_options), + ('lme4', '1.1-12', ext_options), + ('pbkrtest', '0.4-6', ext_options), + ('car', '2.1-2', ext_options), + ('flashClust', '1.01-2', ext_options), + ('FactoMineR', '1.33', ext_options), + ('flexclust', '1.3-4', ext_options), + ('flexmix', '2.3-13', ext_options), + ('prabclus', '2.2-6', ext_options), + ('diptest', '0.75-7', ext_options), + ('trimcluster', '0.1-2', ext_options), + ('fpc', '2.1-10', ext_options), + ('BiasedUrn', '1.07', ext_options), + ('TeachingDemos', '2.10', ext_options), + ('kohonen', '2.0.19', ext_options), + ('base64', '2.0', ext_options), + ('doRNG', '1.6', ext_options), + ('nleqslv', '3.0.2', ext_options), + ('RGCCA', '2.0', ext_options), + ('pheatmap', '1.0.8', ext_options), + ('openxlsx', '3.0.0', ext_options), + ('pvclust', '2.0-0', ext_options), + ('RCircos', '1.1.3', ext_options), + ('lambda.r', '1.1.7', ext_options), + ('futile.options', '1.0.0', ext_options), + ('futile.logger', '1.4.1', ext_options), + ('VennDiagram', '1.6.17', ext_options), + ('xlsxjars', '0.6.1', ext_options), + ('xlsx', '0.5.7', ext_options), + ('forecast', '7.1', dict(ext_options.items() + [('patches', ['forecast-6.1_icpc-wd308.patch'])])), + ('fma', '2.2', ext_options), + ('expsmooth', '2.3', ext_options), + ('fpp', '0.5', ext_options), + ('maptools', '0.8-39', ext_options), + ('deldir', '0.1-12', ext_options), + ('tensor', '1.5', ext_options), + ('polyclip', '1.5-6', ext_options), + ('goftest', '1.0-3', ext_options), + ('spatstat', '1.46-1', ext_options), + ('rgdal', '1.1-10', ext_options), + ('gdalUtils', '2.0.1.7', ext_options), + ('pracma', '1.9.3', ext_options), + ('RCurl', '1.95-4.8', ext_options), + ('bio3d', '2.2-4', ext_options), + ('AUC', '0.3.0', ext_options), + ('interpretR', '0.2.4', ext_options), + ('cvAUC', '1.1.0', ext_options), + ('SuperLearner', '2.0-19', ext_options), + ('lpSolve', '5.6.13', ext_options), + ('mediation', '4.4.5', ext_options), + ('caret', '6.0-70', ext_options), + ('adabag', '4.1', ext_options), + ('parallelMap', '1.3', ext_options), + ('ParamHelpers', '1.7', ext_options), + ('ggvis', '0.4.2', ext_options), + ('mlr', '2.8', ext_options), + ('unbalanced', '2.0', ext_options), + ('RSNNS', '0.4-7', ext_options), + ('abc.data', '1.0', ext_options), + ('abc', '2.1', ext_options), + ('lhs', '0.13', ext_options), + ('tensorA', '0.36', ext_options), + ('EasyABC', '1.5', ext_options), + ('shape', '1.4.2', ext_options), + ('whisker', '0.3-2', ext_options), + ('rstudioapi', '0.6', ext_options), + ('roxygen2', '5.0.1', ext_options), + ('git2r', '0.15.0', ext_options), + ('rversions', '1.0.2', ext_options), + ('withr', '1.0.2', ext_options), + ('devtools', '1.12.0', ext_options), + ('Rook', '1.1-1', ext_options), + ('rjson', '0.2.15', ext_options), + ('Cairo', '1.5-9', ext_options), + ('RMTstat', '0.3', ext_options), + ('Lmoments', '1.2-3', ext_options), + ('distillery', '1.0-2', ext_options), + ('extRemes', '2.0-7', ext_options), + ('pixmap', '0.4-11', ext_options), + ('tkrplot', '0.0-23', ext_options), + ('misc3d', '0.8-4', ext_options), + ('multicool', '0.1-9', dict(ext_options.items() + [('patches', [('multicool-0.1-9_icpc-wd308.patch', 1)])])), + ('ks', '1.10.4', ext_options), + ('logcondens', '2.1.4', ext_options), + ('Iso', '0.0-17', ext_options), + ('penalized', '0.9-47', ext_options), + ('clusterRepro', '0.5-1.1', ext_options), + ('randomForestSRC', '2.2.0', ext_options), + ('sm', '2.2-5.4', ext_options), + ('psych', '1.6.6', ext_options), + ('pbivnorm', '0.6.0', ext_options), + ('lavaan', '0.5-20', ext_options), + ('matrixcalc', '1.0-3', ext_options), + ('arm', '1.8-6', ext_options), + ('mi', '1.0', ext_options), + ('htmlwidgets', '0.6', ext_options), + ('visNetwork', '1.0.1', ext_options), + ('DiagrammeR', '0.8.2', ext_options), + ('sem', '3.1-7', ext_options), + ('jpeg', '0.1-8', ext_options), + ('sna', '2.3-2', ext_options), + ('glasso', '1.8', dict(ext_options.items() + [('patches', [('glasso-1.8-ifort-no-fixed.patch', 1)])])), + ('huge', '1.2.7', ext_options), + ('d3Network', '0.5.2.1', ext_options), + ('ggm', '2.3', ext_options), + ('qgraph', '1.3.4', ext_options), + ('diveRsity', '1.9.89', ext_options), + ('doSNOW', '1.0.14', ext_options), + ('phangorn', '2.0.4', ext_options), + ('geepack', '1.2-0.2', ext_options), + ('lubridate', '1.5.6', ext_options), + ('biom', '0.3.12', ext_options), + ('pim', '2.0.0.2', ext_options), + ('minpack.lm', '1.2-1', ext_options), + ('rootSolve', '1.7', ext_options), + ('diagram', '1.6.3', ext_options), + ('FME', '1.3.5', ext_options), +] + +moduleclass = 'lang' diff --git a/r/R/R-3.3.2-intel-2017.00.eb b/r/R/R-3.3.2-intel-2017.00.eb new file mode 100644 index 00000000..ebae128c --- /dev/null +++ b/r/R/R-3.3.2-intel-2017.00.eb @@ -0,0 +1,444 @@ +name = 'R' +version = '3.3.2' + +homepage = 'http://www.r-project.org/' +description = """R is a free software environment for statistical computing and graphics.""" + +toolchain = {'name': 'intel', 'version': '2017.00'} + +sources = [SOURCE_TAR_GZ] +source_urls = ['http://cran.us.r-project.org/src/base/R-%(version_major)s'] + +preconfigopts = 'BLAS_LIBS="$LIBBLAS" LAPACK_LIBS="$LIBLAPACK"' +configopts = "--with-lapack --with-blas --with-pic --enable-threads --with-x=no --enable-R-shlib" +# some recommended packages may fail in a parallel build (e.g. Matrix), and we're installing them anyway below +configopts += " --with-recommended-packages=no" + +dependencies = [ + ('libreadline', '6.3'), + ('ncurses', '6.0'), + ('libpng', '1.6.21'), # for plotting in R + ('libjpeg-turbo', '1.4.2'), # for plottting in R + ('Java', '1.8.0_72', '', True), # Java bindings are built if Java is found, might as well provide it + ('Tcl', '8.6.4'), # for tcltk + ('Tk', '8.6.4', '-no-X11'), # for tcltk + ('cURL', '7.51.0'), # for RCurl + ('libxml2', '2.9.3'), # for XML + ('GDAL', '2.0.2'), # for rgdal + ('PROJ', '4.9.2'), # for rgdal +] + +name_tmpl = '%(name)s_%(version)s.tar.gz' +ext_options = { + 'source_urls': [ + 'http://cran.r-project.org/src/contrib/Archive/%(name)s', # package archive + 'http://cran.r-project.org/src/contrib/', # current version of packages + 'http://cran.freestatistics.org/src/contrib', # mirror alternative for current packages + ], + 'source_tmpl': name_tmpl, +} + + +# !! order of packages is important !! +# packages updated on January 21st 2016 +exts_list = [ + # default libraries, only here to sanity check their presence + 'base', + 'datasets', + 'graphics', + 'grDevices', + 'grid', + 'methods', + 'splines', + 'stats', + 'stats4', + 'tools', + 'utils', + # non-standard libraries, should be specified with fixed versions! + ('Rmpi', '0.6-5', dict(ext_options.items() + [('patches', ['Rmpi-0.6-5_impi5.patch'])])), + ('abind', '1.4-3', ext_options), + ('magic', '1.5-6', ext_options), + ('geometry', '0.3-6', dict(ext_options.items() + [('patches', ['geometry-0.3-4-icc.patch'])])), + ('bit', '1.1-12', ext_options), + ('filehash', '2.3', ext_options), + ('ff', '2.2-13', ext_options), + ('bnlearn', '3.9', ext_options), + ('bootstrap', '2015.2', ext_options), + ('combinat', '0.0-8', ext_options), + ('deal', '1.2-37', ext_options), + ('fdrtool', '1.2.15', ext_options), + ('formatR', '1.2.1', ext_options), + ('gtools', '3.5.0', ext_options), + ('gdata', '2.17.0', ext_options), + ('GSA', '1.03', ext_options), + ('highr', '0.5.1', ext_options), + ('infotheo', '1.2.0', ext_options), + ('lars', '1.2', ext_options), + ('lazy', '1.2-15', ext_options), + ('kernlab', '0.9-22', ext_options), + ('mime', '0.4', ext_options), + ('markdown', '0.7.7', ext_options), + ('mlbench', '2.1-1', ext_options), + ('NLP', '0.1-8', ext_options), + ('mclust', '5.1', ext_options), + ('RANN', '2.5', ext_options), + ('rmeta', '2.16', ext_options), + ('segmented', '0.5-1.4', ext_options), + ('som', '0.3-5', ext_options), + ('SuppDists', '1.1-9.1', ext_options), + ('stabledist', '0.7-0', ext_options), + ('survivalROC', '1.0.3', ext_options), + ('pspline', '1.0-17', ext_options), + ('timeDate', '3012.100', ext_options), + ('longmemo', '1.0-0', ext_options), + ('ADGofTest', '0.3', ext_options), + ('ade4', '1.7-3', ext_options), + ('AlgDesign', '1.1-7.3', ext_options), + ('base64enc', '0.1-3', ext_options), + ('BH', '1.60.0-1', ext_options), + ('brew', '1.0-6', ext_options), + ('Brobdingnag', '1.2-4', ext_options), + ('corpcor', '1.6.8', ext_options), + ('longitudinal', '1.1.12', ext_options), + ('checkmate', '1.6.3', ext_options), + ('cubature', '1.1-2', ext_options), + ('DEoptimR', '1.0-4', ext_options), + ('digest', '0.6.8', ext_options), + ('fastmatch', '1.0-4', ext_options), + ('ffbase', '0.12.1', ext_options), + ('iterators', '1.0.8', ext_options), + ('maps', '3.0.2', ext_options), + ('nnls', '1.4', ext_options), + ('sendmailR', '1.2-1', ext_options), + ('spam', '1.3-0', ext_options), + ('subplex', '1.1-6', ext_options), + ('stringi', '1.0-1', ext_options), + ('magrittr', '1.5', ext_options), + ('stringr', '1.0.0', ext_options), + ('evaluate', '0.8', ext_options), + ('logspline', '2.1.8', ext_options), + ('ncbit', '2013.03.29', ext_options), + ('permute', '0.8-4', ext_options), + ('plotrix', '3.6-1', ext_options), + ('randomForest', '4.6-12', ext_options), + ('scatterplot3d', '0.3-36', ext_options), + ('SparseM', '1.7', ext_options), + ('tripack', '1.3-7', ext_options), + ('irace', '1.07', ext_options), + ('rJava', '0.9-7', ext_options), + ('lattice', '0.20-33', ext_options), + ('RColorBrewer', '1.1-2', ext_options), + ('latticeExtra', '0.6-26', ext_options), + ('Matrix', '1.2-3', ext_options), + ('png', '0.1-7', ext_options), + ('Rcpp', '0.12.2', ext_options), + ('RcppArmadillo', '0.6.400.2.2', ext_options), + ('plyr', '1.8.3', ext_options), + ('pROC', '1.8', ext_options), + ('quadprog', '1.5-5', ext_options), + ('BB', '2014.10-1', ext_options), + ('BBmisc', '1.9', ext_options), + ('fail', '1.3', ext_options), + ('rlecuyer', '0.3-4', ext_options), + ('snow', '0.4-1', ext_options), + ('MASS', '7.3-45', ext_options), + ('tree', '1.0-36', ext_options), + ('pls', '2.5-0', ext_options), + ('class', '7.3-14', ext_options), + ('e1071', '1.6-7', ext_options), + ('nnet', '7.3-11', ext_options), + ('nlme', '3.1-122', ext_options), + ('minqa', '1.2.4', ext_options), + ('RcppEigen', '0.3.2.5.1', ext_options), + ('MatrixModels', '0.4-1', ext_options), + ('quantreg', '5.19', ext_options), + ('mgcv', '1.8-10', ext_options), + ('colorspace', '1.2-6', ext_options), + ('robustbase', '0.92-5', ext_options), + ('sp', '1.2-1', ext_options), + ('zoo', '1.7-12', ext_options), + ('lmtest', '0.9-34', ext_options), + ('vcd', '1.4-1', ext_options), + ('snowfall', '1.84-6.1', ext_options), + ('rpart', '4.1-10', ext_options), + ('survival', '2.38-3', ext_options), + ('mice', '2.25', ext_options), + ('urca', '1.2-8', ext_options), + ('fracdiff', '1.4-2', ext_options), + ('logistf', '1.21', ext_options), + ('akima', '0.5-12', ext_options), + ('bitops', '1.0-6', ext_options), + ('boot', '1.3-17', ext_options), + ('mixtools', '1.0.3', ext_options), + ('cluster', '2.0.3', ext_options), + ('gclus', '1.3.1', ext_options), + ('coda', '0.18-1', ext_options), + ('codetools', '0.2-14', ext_options), + ('foreach', '1.4.3', ext_options), + ('doMC', '1.3.4', ext_options), + ('DBI', '0.3.1', ext_options), + ('foreign', '0.8-66', ext_options), + ('gam', '1.12', ext_options), + ('gamlss.data', '4.3-2', ext_options), + ('gamlss.dist', '4.3-5', ext_options), + ('hwriter', '1.3.2', ext_options), + ('KernSmooth', '2.23-15', ext_options), + ('xts', '0.9-7', ext_options), + ('TTR', '0.23-0', ext_options), + ('quantmod', '0.4-5', ext_options), + ('mnormt', '1.5-3', ext_options), + ('mvtnorm', '1.0-3', ext_options), + ('pcaPP', '1.9-60', ext_options), + ('numDeriv', '2014.2-1', ext_options), + ('lava', '1.4.1', ext_options), + ('prodlim', '1.5.7', ext_options), + ('pscl', '1.4.9', ext_options), + ('RSQLite', '1.0.0', ext_options), + ('BatchJobs', '1.6', ext_options), + ('sandwich', '2.3-4', ext_options), + ('sfsmisc', '1.0-28', ext_options), + ('spatial', '7.3-11', ext_options), + ('VGAM', '1.0-0', ext_options), + ('waveslim', '1.7.5', ext_options), + ('xtable', '1.8-0', ext_options), + ('profileModel', '0.5-9', ext_options), + ('brglm', '0.5-9', ext_options), + ('deSolve', '1.12', ext_options), + ('tseriesChaos', '0.1-13', ext_options), + ('tseries', '0.10-34', ext_options), + ('fastICA', '1.2-0', ext_options), + ('R.methodsS3', '1.7.0', ext_options), + ('R.oo', '1.19.0', ext_options), + ('cgdsr', '1.2.5', ext_options), + ('R.utils', '2.2.0', ext_options), + ('R.matlab', '3.3.0', ext_options), + ('gbm', '2.1.1', ext_options), + ('dichromat', '2.0-0', ext_options), + ('Formula', '1.2-1', ext_options), + ('acepack', '1.3-3.3', ext_options), + ('reshape2', '1.4.1', ext_options), + ('gtable', '0.1.2', ext_options), + ('munsell', '0.4.2', ext_options), + ('labeling', '0.3', ext_options), + ('scales', '0.3.0', ext_options), + ('proto', '0.3-10', ext_options), + ('ggplot2', '2.0.0', ext_options), + ('gridExtra', '2.0.0', ext_options), + ('Hmisc', '3.17-1', ext_options), + ('fastcluster', '1.1.16', ext_options), + ('chron', '2.3-47', ext_options), + ('data.table', '1.9.6', ext_options), + ('registry', '0.3', ext_options), + ('pkgmaker', '0.22', ext_options), + ('rngtools', '1.2.4', ext_options), + ('doParallel', '1.0.10', ext_options), + ('gridBase', '0.4-7', ext_options), + ('NMF', '0.20.6', ext_options), + ('irlba', '2.0.0', ext_options), + ('igraph', '1.0.1', ext_options), + ('GeneNet', '1.2.13', ext_options), + ('ape', '3.4', ext_options), + ('htmltools', '0.3', ext_options), + ('RJSONIO', '1.3-0', ext_options), + ('caTools', '1.17.1', ext_options), + ('gplots', '2.17.0', ext_options), + ('ROCR', '1.0-7', ext_options), + ('httpuv', '1.3.3', ext_options), + ('R6', '2.1.1', ext_options), + ('jsonlite', '0.9.19', ext_options), + ('rjson', '0.2.15', ext_options), + ('shiny', '0.12.2', ext_options), + ('seqinr', '3.1-3', ext_options), + ('LearnBayes', '2.15', ext_options), + ('deldir', '0.1-9', ext_options), + ('spdep', '0.5-92', ext_options), + ('assertthat', '0.1', ext_options), + ('lazyeval', '0.1.10', ext_options), + ('dplyr', '0.4.3', ext_options), + ('adegenet', '2.0.0', ext_options), + ('rncl', '0.6.0', ext_options), + ('XML', '3.98-1.3', ext_options), + ('memoise', '0.2.1', ext_options), + ('crayon', '1.3.1', ext_options), + ('praise', '1.0.0', ext_options), + ('testthat', '0.11.0', ext_options), + ('yaml', '2.1.13', ext_options), + ('knitr', '1.11', ext_options), + ('rmarkdown', '0.9.2', ext_options), + ('curl', '0.9.4', ext_options), + ('httr', '1.0.0', ext_options), + ('reshape', '0.8.5', ext_options), + ('bold', '0.3.0', ext_options), + ('taxize', '0.7.0', ext_options), + ('tidyr', '0.3.1', ext_options), + ('uuid', '0.1-2', ext_options), + ('RNeXML', '2.0.5', ext_options), + ('phylobase', '0.8.0', ext_options), + ('adephylo', '1.1-6', ext_options), + ('animation', '2.4', ext_options), + ('bigmemory.sri', '0.1.3', ext_options), + ('bigmemory', '4.5.8', dict(ext_options.items() + [('patches', ['bigmemory-4.5.8_icpc-wd308.patch'])])), + ('calibrate', '1.7.2', ext_options), + ('clusterGeneration', '1.3.4', ext_options), + ('raster', '2.5-2', ext_options), + ('dismo', '1.0-12', ext_options), + ('expm', '0.999-0', ext_options), + ('extrafontdb', '1.0', ext_options), + ('Rttf2pt1', '1.3.3', ext_options), + ('extrafont', '0.17', ext_options), + ('fields', '8.3-6', ext_options), + ('shapefiles', '0.7', ext_options), + ('fossil', '0.3.7', ext_options), + ('geiger', '2.0.6', ext_options), + ('glmnet', '2.0-2', ext_options), + ('rgl', '0.95.1441', ext_options), + ('labdsv', '1.7-0', ext_options), + ('stabs', '0.5-1', ext_options), + ('mboost', '2.5-0', ext_options), + ('msm', '1.6', ext_options), + ('nor1mix', '1.2-1', ext_options), + ('np', '0.60-2', ext_options), + ('polynom', '1.3-8', ext_options), + ('polspline', '1.1.12', ext_options), + ('TH.data', '1.0-6', ext_options), + ('multcomp', '1.4-1', ext_options), + ('rms', '4.4-1', ext_options), + ('RWekajars', '3.7.12-1', ext_options), + ('RWeka', '0.4-24', ext_options), + ('slam', '0.1-32', ext_options), + ('tm', '0.6-2', ext_options), + ('TraMineR', '1.8-11', ext_options), + ('chemometrics', '1.3.9', ext_options), + ('FNN', '1.1', ext_options), + ('ipred', '0.9-5', ext_options), + ('statmod', '1.4.23', ext_options), + ('miscTools', '0.6-16', ext_options), + ('maxLik', '1.3-4', ext_options), + ('mlogit', '0.2-4', ext_options), + ('getopt', '1.20.0', ext_options), + ('gsalib', '2.1', ext_options), + ('optparse', '1.3.2', ext_options), + ('klaR', '0.6-12', ext_options), + ('neuRosim', '0.2-12', ext_options), + ('locfit', '1.5-9.1', ext_options), + ('GGally', '1.0.0', ext_options), + ('beanplot', '1.2', ext_options), + ('clValid', '0.6-6', ext_options), + ('matrixStats', '0.50.1', ext_options), + ('DiscriMiner', '0.1-29', ext_options), + ('ellipse', '0.3-8', ext_options), + ('leaps', '2.9', ext_options), + ('nloptr', '1.0.4', ext_options), + ('lme4', '1.1-10', ext_options), + ('pbkrtest', '0.4-4', ext_options), + ('car', '2.1-1', ext_options), + ('flashClust', '1.01-2', ext_options), + ('FactoMineR', '1.31.4', ext_options), + ('modeltools', '0.2-21', ext_options), + ('flexclust', '1.3-4', ext_options), + ('flexmix', '2.3-13', ext_options), + ('prabclus', '2.2-6', ext_options), + ('diptest', '0.75-7', ext_options), + ('trimcluster', '0.1-2', ext_options), + ('fpc', '2.1-10', ext_options), + ('BiasedUrn', '1.07', ext_options), + ('TeachingDemos', '2.9', ext_options), + ('kohonen', '2.0.19', ext_options), + ('base64', '1.1', ext_options), + ('doRNG', '1.6', ext_options), + ('nleqslv', '2.9.1', ext_options), + ('RGCCA', '2.0', ext_options), + ('pheatmap', '1.0.8', ext_options), + ('openxlsx', '3.0.0', ext_options), + ('pvclust', '2.0-0', ext_options), + ('RCircos', '1.1.3', ext_options), + ('lambda.r', '1.1.7', ext_options), + ('futile.options', '1.0.0', ext_options), + ('futile.logger', '1.4.1', ext_options), + ('VennDiagram', '1.6.16', ext_options), + ('xlsxjars', '0.6.1', ext_options), + ('xlsx', '0.5.7', ext_options), + ('vegan', '2.3-2', ext_options), + ('forecast', '6.1', dict(ext_options.items() + [('patches', ['forecast-6.1_icpc-wd308.patch'])])), + ('fma', '2.01', ext_options), + ('expsmooth', '2.3', ext_options), + ('fpp', '0.5', ext_options), + ('maptools', '0.8-37', ext_options), + ('deldir', '0.1-9', ext_options), + ('tensor', '1.5', ext_options), + ('polyclip', '1.3-2', ext_options), + ('goftest', '1.0-3', ext_options), + ('spatstat', '1.44-1', ext_options), + ('rgdal', '1.1-3', ext_options), + ('gdalUtils', '2.0.1.7', ext_options), + ('pracma', '1.8.8', ext_options), + ('RCurl', '1.95-4.7', ext_options), + ('bio3d', '2.2-4', ext_options), + ('AUC', '0.3.0', ext_options), + ('interpretR', '0.2.3', ext_options), + ('SuperLearner', '2.0-15', ext_options), + ('lpSolve', '5.6.13', ext_options), + ('mediation', '4.4.5', ext_options), + ('caret', '6.0-64', ext_options), + ('adabag', '4.1', ext_options), + ('parallelMap', '1.3', ext_options), + ('ParamHelpers', '1.6', ext_options), + ('ggvis', '0.4.2', ext_options), + ('mlr', '2.7', ext_options), + ('unbalanced', '2.0', ext_options), + ('RSNNS', '0.4-7', ext_options), + ('abc.data', '1.0', ext_options), + ('abc', '2.1', ext_options), + ('lhs', '0.10', ext_options), + ('tensorA', '0.36', ext_options), + ('EasyABC', '1.5', ext_options), + ('shape', '1.4.2', ext_options), + ('whisker', '0.3-2', ext_options), + ('rstudioapi', '0.4.0', ext_options), + ('roxygen2', '5.0.1', ext_options), + ('git2r', '0.13.1', ext_options), + ('xml2', '0.1.2', ext_options), + ('rversions', '1.0.2', ext_options), + ('devtools', '1.9.1', ext_options), + ('Rook', '1.1-1', ext_options), + ('rjson', '0.2.15', ext_options), + ('Cairo', '1.5-9', ext_options), + ('RMTstat', '0.3', ext_options), + ('Lmoments', '1.1-6', ext_options), + ('distillery', '1.0-2', ext_options), + ('extRemes', '2.0-7', ext_options), + ('pixmap', '0.4-11', ext_options), + ('tkrplot', '0.0-23', ext_options), + ('misc3d', '0.8-4', ext_options), + ('multicool', '0.1-9', dict(ext_options.items() + [('patches', [('multicool-0.1-9_icpc-wd308.patch', 1)])])), + ('ks', '1.10.1', ext_options), + ('logcondens', '2.1.4', ext_options), + ('Iso', '0.0-17', ext_options), + ('penalized', '0.9-45', ext_options), + ('coin', '1.1-2', ext_options), + ('clusterRepro', '0.5-1.1', ext_options), + ('randomForestSRC', '2.0.7', ext_options), + ('sm', '2.2-5.4', ext_options), + ('psych', '1.5.8', ext_options), + ('pbivnorm', '0.6.0', ext_options), + ('lavaan', '0.5-20', ext_options), + ('matrixcalc', '1.0-3', ext_options), + ('arm', '1.8-6', ext_options), + ('mi', '1.0', ext_options), + ('htmlwidgets', '0.6', ext_options), + ('visNetwork', '0.2.1', ext_options), + ('DiagrammeR', '0.8.2', ext_options), + ('sem', '3.1-6', ext_options), + ('jpeg', '0.1-8', ext_options), + ('sna', '2.3-2', ext_options), + ('glasso', '1.8', dict(ext_options.items() + [('patches', [('glasso-1.8-ifort-no-fixed.patch', 1)])])), + ('huge', '1.2.7', ext_options), + ('d3Network', '0.5.2.1', ext_options), + ('ggm', '2.3', ext_options), + ('qgraph', '1.3.2', ext_options), + ('diveRsity', '1.9.89', ext_options), + ('doSNOW', '1.0.14', ext_options), + ('phangorn', '2.0.2', ext_options), +] + +moduleclass = 'lang' diff --git a/r/RAxML/RAxML-7.2.6-goolf-1.4.10-hybrid-sse3.eb b/r/RAxML/RAxML-7.2.6-goolf-1.4.10-hybrid-sse3.eb new file mode 100644 index 00000000..985c8834 --- /dev/null +++ b/r/RAxML/RAxML-7.2.6-goolf-1.4.10-hybrid-sse3.eb @@ -0,0 +1,25 @@ +easyblock = 'ConfigureMake' + +name = 'RAxML' +version = '7.2.6' +versionsuffix = '-hybrid-sse3' + +homepage = 'https://github.com/stamatak/standard-RAxML' +description = "RAxML search algorithm for maximum likelihood based inference of phylogenetic trees." + +toolchain = {'name': 'goolf', 'version': '1.4.10'} +toolchainopts = {'usempi': True} + +source_urls = ['http://sco.h-its.org/exelixis/resource/download/software/'] +sources = [SOURCE_TAR_BZ2] + +skipsteps = ['configure', 'install'] + +buildopts = '-f Makefile.SSE3.HYBRID.gcc CC="$CC" && mkdir -p %(installdir)s/bin && cp raxmlHPC-HYBRID-SSE3 %(installdir)s/bin' + +sanity_check_paths = { + 'files': ["bin/raxmlHPC-HYBRID-SSE3"], + 'dirs': [], +} + +moduleclass = 'bio' diff --git a/r/RAxML/RAxML-7.2.6-goolf-1.4.10-mpi-sse3.eb b/r/RAxML/RAxML-7.2.6-goolf-1.4.10-mpi-sse3.eb new file mode 100644 index 00000000..e09f71ab --- /dev/null +++ b/r/RAxML/RAxML-7.2.6-goolf-1.4.10-mpi-sse3.eb @@ -0,0 +1,25 @@ +easyblock = 'ConfigureMake' + +name = 'RAxML' +version = '7.2.6' +versionsuffix = '-mpi-sse3' + +homepage = 'https://github.com/stamatak/standard-RAxML' +description = "RAxML search algorithm for maximum likelihood based inference of phylogenetic trees." + +toolchain = {'name': 'goolf', 'version': '1.4.10'} +toolchainopts = {'usempi': True} + +source_urls = ['http://sco.h-its.org/exelixis/resource/download/software/'] +sources = [SOURCE_TAR_BZ2] + +skipsteps = ['configure', 'install'] + +buildopts = '-f Makefile.SSE3.MPI.gcc CC="$CC" && mkdir -p %(installdir)s/bin && cp raxmlHPC-MPI-SSE3 %(installdir)s/bin' + +sanity_check_paths = { + 'files': ["bin/raxmlHPC-MPI-SSE3"], + 'dirs': [], +} + +moduleclass = 'bio' diff --git a/r/RAxML/RAxML-7.2.6-goolf-1.4.10-mt-sse3.eb b/r/RAxML/RAxML-7.2.6-goolf-1.4.10-mt-sse3.eb new file mode 100644 index 00000000..0fe0530f --- /dev/null +++ b/r/RAxML/RAxML-7.2.6-goolf-1.4.10-mt-sse3.eb @@ -0,0 +1,24 @@ +easyblock = 'ConfigureMake' + +name = 'RAxML' +version = '7.2.6' +versionsuffix = '-mt-sse3' + +homepage = 'https://github.com/stamatak/standard-RAxML' +description = "RAxML search algorithm for maximum likelihood based inference of phylogenetic trees." + +toolchain = {'name': 'goolf', 'version': '1.4.10'} + +source_urls = ['http://sco.h-its.org/exelixis/resource/download/software/'] +sources = [SOURCE_TAR_BZ2] + +skipsteps = ['configure', 'install'] + +buildopts = '-f Makefile.SSE3.PTHREADS.gcc CC="$CC" && mkdir -p %(installdir)s/bin && cp raxmlHPC-PTHREADS-SSE3 %(installdir)s/bin' + +sanity_check_paths = { + 'files': ["bin/raxmlHPC-PTHREADS-SSE3"], + 'dirs': [], +} + +moduleclass = 'bio' diff --git a/r/RAxML/RAxML-7.2.6-goolf-1.4.10-seq-sse3.eb b/r/RAxML/RAxML-7.2.6-goolf-1.4.10-seq-sse3.eb new file mode 100644 index 00000000..af08c5c5 --- /dev/null +++ b/r/RAxML/RAxML-7.2.6-goolf-1.4.10-seq-sse3.eb @@ -0,0 +1,24 @@ +easyblock = 'ConfigureMake' + +name = 'RAxML' +version = '7.2.6' +versionsuffix = '-seq-sse3' + +homepage = 'https://github.com/stamatak/standard-RAxML' +description = "RAxML search algorithm for maximum likelihood based inference of phylogenetic trees." + +toolchain = {'name': 'goolf', 'version': '1.4.10'} + +source_urls = ['http://sco.h-its.org/exelixis/resource/download/software/'] +sources = [SOURCE_TAR_BZ2] + +skipsteps = ['configure', 'install'] + +buildopts = '-f Makefile.SSE3.gcc CC="$CC" && mkdir -p %(installdir)s/bin && cp raxmlHPC-SSE3 %(installdir)s/bin' + +sanity_check_paths = { + 'files': ["bin/raxmlHPC-SSE3"], + 'dirs': [], +} + +moduleclass = 'bio' diff --git a/r/RAxML/RAxML-7.2.6-ictce-5.3.0-hybrid-sse3.eb b/r/RAxML/RAxML-7.2.6-ictce-5.3.0-hybrid-sse3.eb new file mode 100644 index 00000000..0868a2b3 --- /dev/null +++ b/r/RAxML/RAxML-7.2.6-ictce-5.3.0-hybrid-sse3.eb @@ -0,0 +1,25 @@ +easyblock = 'ConfigureMake' + +name = 'RAxML' +version = '7.2.6' +versionsuffix = '-hybrid-sse3' + +homepage = 'https://github.com/stamatak/standard-RAxML' +description = "RAxML search algorithm for maximum likelihood based inference of phylogenetic trees." + +toolchain = {'name': 'ictce', 'version': '5.3.0'} +toolchainopts = {'usempi': True} + +source_urls = ['http://sco.h-its.org/exelixis/resource/download/software'] +sources = [SOURCE_TAR_BZ2] + +skipsteps = ['configure', 'install'] + +buildopts = '-f Makefile.SSE3.HYBRID.gcc CC="$CC" && mkdir -p %(installdir)s/bin && cp raxmlHPC-HYBRID-SSE3 %(installdir)s/bin' + +sanity_check_paths = { + 'files': ["bin/raxmlHPC-HYBRID-SSE3"], + 'dirs': [], +} + +moduleclass = 'bio' diff --git a/r/RAxML/RAxML-7.2.6-ictce-5.3.0-mpi-sse3.eb b/r/RAxML/RAxML-7.2.6-ictce-5.3.0-mpi-sse3.eb new file mode 100644 index 00000000..3a159746 --- /dev/null +++ b/r/RAxML/RAxML-7.2.6-ictce-5.3.0-mpi-sse3.eb @@ -0,0 +1,25 @@ +easyblock = 'ConfigureMake' + +name = 'RAxML' +version = '7.2.6' +versionsuffix = '-mpi-sse3' + +homepage = 'https://github.com/stamatak/standard-RAxML' +description = "RAxML search algorithm for maximum likelihood based inference of phylogenetic trees." + +toolchain = {'name': 'ictce', 'version': '5.3.0'} +toolchainopts = {'usempi': True} + +source_urls = ['http://sco.h-its.org/exelixis/resource/download/software/'] +sources = [SOURCE_TAR_BZ2] + +skipsteps = ['configure', 'install'] + +buildopts = '-f Makefile.SSE3.MPI.gcc CC="$CC" && mkdir -p %(installdir)s/bin && cp raxmlHPC-MPI-SSE3 %(installdir)s/bin' + +sanity_check_paths = { + 'files': ["bin/raxmlHPC-MPI-SSE3"], + 'dirs': [], +} + +moduleclass = 'bio' diff --git a/r/RAxML/RAxML-7.2.6-ictce-5.3.0-mt-sse3.eb b/r/RAxML/RAxML-7.2.6-ictce-5.3.0-mt-sse3.eb new file mode 100644 index 00000000..153acb74 --- /dev/null +++ b/r/RAxML/RAxML-7.2.6-ictce-5.3.0-mt-sse3.eb @@ -0,0 +1,24 @@ +easyblock = 'ConfigureMake' + +name = 'RAxML' +version = '7.2.6' +versionsuffix = '-mt-sse3' + +homepage = 'https://github.com/stamatak/standard-RAxML' +description = "RAxML search algorithm for maximum likelihood based inference of phylogenetic trees." + +toolchain = {'name': 'ictce', 'version': '5.3.0'} + +source_urls = ['http://sco.h-its.org/exelixis/resource/download/software/'] +sources = [SOURCE_TAR_BZ2] + +skipsteps = ['configure', 'install'] + +buildopts = '-f Makefile.SSE3.PTHREADS.gcc CC="$CC" && mkdir -p %(installdir)s/bin && cp raxmlHPC-PTHREADS-SSE3 %(installdir)s/bin' + +sanity_check_paths = { + 'files': ["bin/raxmlHPC-PTHREADS-SSE3"], + 'dirs': [], +} + +moduleclass = 'bio' diff --git a/r/RAxML/RAxML-7.2.6-ictce-5.3.0-seq-sse3.eb b/r/RAxML/RAxML-7.2.6-ictce-5.3.0-seq-sse3.eb new file mode 100644 index 00000000..e7ee2daf --- /dev/null +++ b/r/RAxML/RAxML-7.2.6-ictce-5.3.0-seq-sse3.eb @@ -0,0 +1,24 @@ +easyblock = 'ConfigureMake' + +name = 'RAxML' +version = '7.2.6' +versionsuffix = '-seq-sse3' + +homepage = 'https://github.com/stamatak/standard-RAxML' +description = "RAxML search algorithm for maximum likelihood based inference of phylogenetic trees." + +toolchain = {'name': 'ictce', 'version': '5.3.0'} + +source_urls = ['http://sco.h-its.org/exelixis/resource/download/software/'] +sources = [SOURCE_TAR_BZ2] + +skipsteps = ['configure', 'install'] + +buildopts = '-f Makefile.SSE3.gcc CC="$CC" && mkdir -p %(installdir)s/bin && cp raxmlHPC-SSE3 %(installdir)s/bin' + +sanity_check_paths = { + 'files': ["bin/raxmlHPC-SSE3"], + 'dirs': [], +} + +moduleclass = 'bio' diff --git a/r/RAxML/RAxML-7.7.5-goolf-1.4.10-hybrid-sse3.eb b/r/RAxML/RAxML-7.7.5-goolf-1.4.10-hybrid-sse3.eb new file mode 100644 index 00000000..d053b3dc --- /dev/null +++ b/r/RAxML/RAxML-7.7.5-goolf-1.4.10-hybrid-sse3.eb @@ -0,0 +1,26 @@ +easyblock = 'ConfigureMake' + +name = 'RAxML' +version = '7.7.5' +versionsuffix = '-hybrid-sse3' + +homepage = 'https://github.com/stamatak/standard-RAxML' +description = "RAxML search algorithm for maximum likelihood based inference of phylogenetic trees." + +toolchain = {'name': 'goolf', 'version': '1.4.10'} +toolchainopts = {'usempi': True} + +# download from https://github.com/stamatak/standard-RAxML/archive/v7.7.5.zip +sources = ['v%(version)s.zip'] +source_urls = ['https://github.com/stamatak/standard-RAxML/archive/'] + +skipsteps = ['configure', 'install'] + +buildopts = '-f Makefile.SSE3.HYBRID.gcc CC="$CC" && mkdir -p %(installdir)s/bin && cp raxmlHPC-HYBRID-SSE3 %(installdir)s/bin' + +sanity_check_paths = { + 'files': ["bin/raxmlHPC-HYBRID-SSE3"], + 'dirs': [], +} + +moduleclass = 'bio' diff --git a/r/RAxML/RAxML-7.7.5-goolf-1.4.10-mpi-sse3.eb b/r/RAxML/RAxML-7.7.5-goolf-1.4.10-mpi-sse3.eb new file mode 100644 index 00000000..575001db --- /dev/null +++ b/r/RAxML/RAxML-7.7.5-goolf-1.4.10-mpi-sse3.eb @@ -0,0 +1,26 @@ +easyblock = 'ConfigureMake' + +name = 'RAxML' +version = '7.7.5' +versionsuffix = '-mpi-sse3' + +homepage = 'https://github.com/stamatak/standard-RAxML' +description = "RAxML search algorithm for maximum likelihood based inference of phylogenetic trees." + +toolchain = {'name': 'goolf', 'version': '1.4.10'} +toolchainopts = {'usempi': True} + +# download from https://github.com/stamatak/standard-RAxML/archive/v7.7.5.zip +sources = ['v%(version)s.zip'] +source_urls = ['https://github.com/stamatak/standard-RAxML/archive/'] + +skipsteps = ['configure', 'install'] + +buildopts = '-f Makefile.SSE3.MPI.gcc CC="$CC" && mkdir -p %(installdir)s/bin && cp raxmlHPC-MPI-SSE3 %(installdir)s/bin' + +sanity_check_paths = { + 'files': ["bin/raxmlHPC-MPI-SSE3"], + 'dirs': [], +} + +moduleclass = 'bio' diff --git a/r/RAxML/RAxML-7.7.5-goolf-1.4.10-mt-sse3.eb b/r/RAxML/RAxML-7.7.5-goolf-1.4.10-mt-sse3.eb new file mode 100644 index 00000000..a1fec5b7 --- /dev/null +++ b/r/RAxML/RAxML-7.7.5-goolf-1.4.10-mt-sse3.eb @@ -0,0 +1,25 @@ +easyblock = 'ConfigureMake' + +name = 'RAxML' +version = '7.7.5' +versionsuffix = '-mt-sse3' + +homepage = 'https://github.com/stamatak/standard-RAxML' +description = "RAxML search algorithm for maximum likelihood based inference of phylogenetic trees." + +toolchain = {'name': 'goolf', 'version': '1.4.10'} + +# download from https://github.com/stamatak/standard-RAxML/archive/v7.7.5.zip +sources = ['v%(version)s.zip'] +source_urls = ['https://github.com/stamatak/standard-RAxML/archive/'] + +skipsteps = ['configure', 'install'] + +buildopts = '-f Makefile.SSE3.PTHREADS.gcc CC="$CC" && mkdir -p %(installdir)s/bin && cp raxmlHPC-PTHREADS-SSE3 %(installdir)s/bin' + +sanity_check_paths = { + 'files': ["bin/raxmlHPC-PTHREADS-SSE3"], + 'dirs': [], +} + +moduleclass = 'bio' diff --git a/r/RAxML/RAxML-7.7.5-goolf-1.4.10-seq-sse3.eb b/r/RAxML/RAxML-7.7.5-goolf-1.4.10-seq-sse3.eb new file mode 100644 index 00000000..f253cc9c --- /dev/null +++ b/r/RAxML/RAxML-7.7.5-goolf-1.4.10-seq-sse3.eb @@ -0,0 +1,25 @@ +easyblock = 'ConfigureMake' + +name = 'RAxML' +version = '7.7.5' +versionsuffix = '-seq-sse3' + +homepage = 'https://github.com/stamatak/standard-RAxML' +description = "RAxML search algorithm for maximum likelihood based inference of phylogenetic trees." + +toolchain = {'name': 'goolf', 'version': '1.4.10'} + +# download from https://github.com/stamatak/standard-RAxML/archive/v7.7.5.zip +sources = ['v%(version)s.zip'] +source_urls = ['https://github.com/stamatak/standard-RAxML/archive/'] + +skipsteps = ['configure', 'install'] + +buildopts = '-f Makefile.SSE3.gcc CC="$CC" && mkdir -p %(installdir)s/bin && cp raxmlHPC-SSE3 %(installdir)s/bin' + +sanity_check_paths = { + 'files': ["bin/raxmlHPC-SSE3"], + 'dirs': [], +} + +moduleclass = 'bio' diff --git a/r/RAxML/RAxML-7.7.5-ictce-5.3.0-hybrid-sse3.eb b/r/RAxML/RAxML-7.7.5-ictce-5.3.0-hybrid-sse3.eb new file mode 100644 index 00000000..7eb0b37f --- /dev/null +++ b/r/RAxML/RAxML-7.7.5-ictce-5.3.0-hybrid-sse3.eb @@ -0,0 +1,26 @@ +easyblock = 'ConfigureMake' + +name = 'RAxML' +version = '7.7.5' +versionsuffix = '-hybrid-sse3' + +homepage = 'https://github.com/stamatak/standard-RAxML' +description = "RAxML search algorithm for maximum likelihood based inference of phylogenetic trees." + +toolchain = {'name': 'ictce', 'version': '5.3.0'} +toolchainopts = {'usempi': True} + +# download from https://github.com/stamatak/standard-RAxML/archive/v7.7.5.zip +sources = ['v%(version)s.zip'] +source_urls = ['https://github.com/stamatak/standard-RAxML/archive/'] + +skipsteps = ['configure', 'install'] + +buildopts = '-f Makefile.SSE3.HYBRID.gcc CC="$CC" && mkdir -p %(installdir)s/bin && cp raxmlHPC-HYBRID-SSE3 %(installdir)s/bin' + +sanity_check_paths = { + 'files': ["bin/raxmlHPC-HYBRID-SSE3"], + 'dirs': [], +} + +moduleclass = 'bio' diff --git a/r/RAxML/RAxML-7.7.5-ictce-5.3.0-mpi-sse3.eb b/r/RAxML/RAxML-7.7.5-ictce-5.3.0-mpi-sse3.eb new file mode 100644 index 00000000..0058765f --- /dev/null +++ b/r/RAxML/RAxML-7.7.5-ictce-5.3.0-mpi-sse3.eb @@ -0,0 +1,26 @@ +easyblock = 'ConfigureMake' + +name = 'RAxML' +version = '7.7.5' +versionsuffix = '-mpi-sse3' + +homepage = 'https://github.com/stamatak/standard-RAxML' +description = "RAxML search algorithm for maximum likelihood based inference of phylogenetic trees." + +toolchain = {'name': 'ictce', 'version': '5.3.0'} +toolchainopts = {'usempi': True} + +# download from https://github.com/stamatak/standard-RAxML/archive/v7.7.5.zip +sources = ['v%(version)s.zip'] +source_urls = ['https://github.com/stamatak/standard-RAxML/archive/'] + +skipsteps = ['configure', 'install'] + +buildopts = '-f Makefile.SSE3.MPI.gcc CC="$CC" && mkdir -p %(installdir)s/bin && cp raxmlHPC-MPI-SSE3 %(installdir)s/bin' + +sanity_check_paths = { + 'files': ["bin/raxmlHPC-MPI-SSE3"], + 'dirs': [], +} + +moduleclass = 'bio' diff --git a/r/RAxML/RAxML-7.7.5-ictce-5.3.0-mt-sse3.eb b/r/RAxML/RAxML-7.7.5-ictce-5.3.0-mt-sse3.eb new file mode 100644 index 00000000..86dab359 --- /dev/null +++ b/r/RAxML/RAxML-7.7.5-ictce-5.3.0-mt-sse3.eb @@ -0,0 +1,25 @@ +easyblock = 'ConfigureMake' + +name = 'RAxML' +version = '7.7.5' +versionsuffix = '-mt-sse3' + +homepage = 'https://github.com/stamatak/standard-RAxML' +description = "RAxML search algorithm for maximum likelihood based inference of phylogenetic trees." + +toolchain = {'name': 'ictce', 'version': '5.3.0'} + +# download from https://github.com/stamatak/standard-RAxML/archive/v7.7.5.zip +sources = ['v%(version)s.zip'] +source_urls = ['https://github.com/stamatak/standard-RAxML/archive/'] + +skipsteps = ['configure', 'install'] + +buildopts = '-f Makefile.SSE3.PTHREADS.gcc CC="$CC" && mkdir -p %(installdir)s/bin && cp raxmlHPC-PTHREADS-SSE3 %(installdir)s/bin' + +sanity_check_paths = { + 'files': ["bin/raxmlHPC-PTHREADS-SSE3"], + 'dirs': [], +} + +moduleclass = 'bio' diff --git a/r/RAxML/RAxML-7.7.5-ictce-5.3.0-seq-sse3.eb b/r/RAxML/RAxML-7.7.5-ictce-5.3.0-seq-sse3.eb new file mode 100644 index 00000000..b107d2a1 --- /dev/null +++ b/r/RAxML/RAxML-7.7.5-ictce-5.3.0-seq-sse3.eb @@ -0,0 +1,25 @@ +easyblock = 'ConfigureMake' + +name = 'RAxML' +version = '7.7.5' +versionsuffix = '-seq-sse3' + +homepage = 'https://github.com/stamatak/standard-RAxML' +description = "RAxML search algorithm for maximum likelihood based inference of phylogenetic trees." + +toolchain = {'name': 'ictce', 'version': '5.3.0'} + +# download from https://github.com/stamatak/standard-RAxML/archive/v7.7.5.zip +sources = ['v%(version)s.zip'] +source_urls = ['https://github.com/stamatak/standard-RAxML/archive/'] + +skipsteps = ['configure', 'install'] + +buildopts = '-f Makefile.SSE3.gcc CC="$CC" && mkdir -p %(installdir)s/bin && cp raxmlHPC-SSE3 %(installdir)s/bin' + +sanity_check_paths = { + 'files': ["bin/raxmlHPC-SSE3"], + 'dirs': [], +} + +moduleclass = 'bio' diff --git a/r/RELION/RELION-1.3-intel-2015b.eb b/r/RELION/RELION-1.3-intel-2015b.eb new file mode 100644 index 00000000..a0ec7942 --- /dev/null +++ b/r/RELION/RELION-1.3-intel-2015b.eb @@ -0,0 +1,40 @@ +easyblock = 'ConfigureMake' + +name = 'RELION' +version = '1.3' + +homepage = 'http://www2.mrc-lmb.cam.ac.uk/relion/index.php/Main_Page' +description = """RELION (for REgularised LIkelihood OptimisatioN, pronounce rely-on) is a stand-alone computer + program that employs an empirical Bayesian approach to refinement of (multiple) 3D reconstructions or 2D class + averages in electron cryo-microscopy (cryo-EM).""" + +toolchain = {'name': 'intel', 'version': '2015b'} + +source_urls = ['http://www2.mrc-lmb.cam.ac.uk/groups/scheres/18jun14'] +sources = [SOURCELOWER_TAR_BZ2] + +patches = ['RELION-%(version)s_fltk-config.patch'] + +pythonversion = '-Python-2.7.8' + +builddependencies = [ + ('xextproto', '7.3.0'), +] +dependencies = [ + ('FFTW', '3.3.4'), + ('FLTK', '1.3.2'), + ('libX11', '1.6.2', pythonversion), + ('fontconfig', '2.11.1'), + ('libXft', '2.3.2'), + ('libXext', '1.3.2', pythonversion), + ('libXinerama', '1.1.3'), +] + +# RELION expects FLTK to be in external/fltk-1.3.0 +configopts = ['--enable-mpi --enable-openmp && ln -s $EBROOTFLTK/include external/fltk-1.3.0'] +buildopts = 'LIBS="-lfftw3_threads -lfftw3 -lm -lpthread -lfltk -lX11 -lXft -lfontconfig -lXext -lXinerama" ' +# users expect the maingui binary to be called relion +installopts = " && cp %(installdir)s/bin/relion_maingui %(installdir)s/bin/relion " + + +moduleclass = 'bio' diff --git a/r/ROOT/ROOT-v5.30.06-goolf-1.4.10.eb b/r/ROOT/ROOT-v5.30.06-goolf-1.4.10.eb new file mode 100644 index 00000000..9a78780f --- /dev/null +++ b/r/ROOT/ROOT-v5.30.06-goolf-1.4.10.eb @@ -0,0 +1,35 @@ +name = 'ROOT' +version = 'v5.30.06' + +homepage = 'http://root.cern.ch/drupal/' +description = """The ROOT system provides a set of OO frameworks with all the functionality + needed to handle and analyze large amounts of data in a very efficient way.""" + +toolchain = {'name': 'goolf', 'version': '1.4.10'} +toolchainopts = {'pic': True} + +sources = ['%(namelower)s_%(version)s.source.tar.gz'] +source_urls = ['ftp://root.cern.ch/root/'] + +python = 'Python' +pyver = '2.7.5' + +dependencies = [ + ('GSL', '1.16'), + ('libxml2', '2.9.1', '-%s-%s' % (python, pyver)), + (python, pyver), +] + +# architecture +arch = 'linuxx8664gcc' + +# disable features +configopts = ' --disable-xft --disable-x11 --disable-xrootd --disable-mysql' +# enable features +configopts += ' --enable-unuran --enable-table --enable-explicitlink --enable-minuit2 --enable-roofit' +configopts += ' --with-gsl-incdir=$EBROOTGSL/include/gsl --with-gsl-libdir=$EBROOTGSL/lib' +configopts += ' --with-fftw3-incdir=$FFTW_INC_DIR --with-fftw3-libdir=$FFTW_LIB_DIR' +configopts += ' --with-xml-incdir=$EBROOTLIBXML2/include/libxml2/libxml --with-xml-libdir=$EBROOTLIBXML2/lib' +configopts += ' --with-python-libdir=$EBROOTPYTHON/lib' + +moduleclass = 'data' diff --git a/r/ROOT/ROOT-v5.34.01-goolf-1.4.10.eb b/r/ROOT/ROOT-v5.34.01-goolf-1.4.10.eb new file mode 100644 index 00000000..4e14ff01 --- /dev/null +++ b/r/ROOT/ROOT-v5.34.01-goolf-1.4.10.eb @@ -0,0 +1,35 @@ +name = 'ROOT' +version = 'v5.34.01' + +homepage = 'http://root.cern.ch/drupal/' +description = """The ROOT system provides a set of OO frameworks with all the functionality +needed to handle and analyze large amounts of data in a very efficient way.""" + +toolchain = {'name': 'goolf', 'version': '1.4.10'} +toolchainopts = {'pic': True} + +sources = ['%s_%s.source.tar.gz' % (name.lower(), version)] +source_urls = ['ftp://root.cern.ch/root/'] + +python = 'Python' +pyver = '2.7.3' + +dependencies = [ + ('GSL', '1.15'), + ('libxml2', '2.8.0', '-%s-%s' % (python, pyver)), + (python, pyver), +] + +# architecture +arch = 'linuxx8664gcc' + +# disable features +configopts = ' --disable-xft --disable-x11 --disable-xrootd --disable-mysql' +# enable features +configopts += ' --enable-unuran --enable-table --enable-explicitlink --enable-minuit2 --enable-roofit' +configopts += ' --with-gsl-incdir=$EBROOTGSL/include/gsl --with-gsl-libdir=$EBROOTGSL/lib' +configopts += ' --with-xml-incdir=$EBROOTLIBXML2/include/libxml2/libxml --with-xml-libdir=$EBROOTLIBXML2/lib' +configopts += ' --with-fftw3-incdir=$FFTW_INC_DIR --with-fftw3-libdir=$FFTW_LIB_DIR' +configopts += ' --with-python-libdir=$EBROOTPYTHON/lib' + +moduleclass = 'data' diff --git a/r/ROOT/ROOT-v5.34.01-intel-2015a.eb b/r/ROOT/ROOT-v5.34.01-intel-2015a.eb new file mode 100644 index 00000000..a65a7332 --- /dev/null +++ b/r/ROOT/ROOT-v5.34.01-intel-2015a.eb @@ -0,0 +1,39 @@ +name = 'ROOT' +version = 'v5.34.01' + +homepage = 'http://root.cern.ch/drupal/' +description = """The ROOT system provides a set of OO frameworks with all the functionality + needed to handle and analyze large amounts of data in a very efficient way.""" + +toolchain = {'name': 'intel', 'version': '2015a'} +toolchainopts = {'pic': True} + +sources = ['%s_%s.source.tar.gz' % (name.lower(), version)] +source_urls = ['ftp://root.cern.ch/root/'] +patches = [ + 'configure_FftwFromMkl_28.patch', + 'ROOT-%(version)s_recent-ifort.patch', +] + +python = 'Python' +pyver = '2.7.3' + +dependencies = [ + ('GSL', '1.15'), + ('libxml2', '2.8.0', '-%s-%s' % (python, pyver)), + (python, pyver), +] + +# architecture +arch = 'linuxx8664icc' + +# disable features +configopts = ' --disable-xft --disable-x11 --disable-xrootd --disable-mysql' +# enable features +configopts += ' --enable-unuran --enable-table --enable-explicitlink --enable-minuit2 --enable-roofit' +configopts += ' --with-gsl-incdir=$EBROOTGSL/include/gsl --with-gsl-libdir=$EBROOTGSL/lib' +configopts += ' --with-fftw3-incdir=$EBROOTIMKL/mkl/include/fftw --with-fftw3-libdir=$EBROOTIMKL/mkl/lib/intel64' +configopts += ' --with-xml-incdir=$EBROOTLIBXML2/include/libxml2/libxml --with-xml-libdir=$EBROOTLIBXML2/lib' +configopts += ' --with-python-libdir=$EBROOTPYTHON/lib' + +moduleclass = 'data' diff --git a/r/ROOT/ROOT-v5.34.13-ictce-5.5.0.eb b/r/ROOT/ROOT-v5.34.13-ictce-5.5.0.eb new file mode 100644 index 00000000..e025c77b --- /dev/null +++ b/r/ROOT/ROOT-v5.34.13-ictce-5.5.0.eb @@ -0,0 +1,39 @@ +name = 'ROOT' +version = 'v5.34.13' + +homepage = 'http://root.cern.ch/drupal/' +description = """The ROOT system provides a set of OO frameworks with all the functionality + needed to handle and analyze large amounts of data in a very efficient way.""" + +toolchain = {'name': 'ictce', 'version': '5.5.0'} +toolchainopts = {'pic': True} + +sources = ['%(namelower)s_%(version)s.source.tar.gz'] +source_urls = ['ftp://root.cern.ch/root/'] +patches = [ + 'configure_FftwFromMkl_28.patch', + 'ROOT-v5_recent-ifort.patch', +] + +python = 'Python' +pyver = '2.7.6' + +dependencies = [ + ('GSL', '1.16'), + ('libxml2', '2.9.1', '-%s-%s' % (python, pyver)), + (python, pyver), +] + +# architecture +arch = 'linuxx8664icc' + +# disable features +configopts = ' --disable-xft --disable-x11 --disable-xrootd --disable-mysql' +# enable features +configopts += ' --enable-unuran --enable-table --enable-explicitlink --enable-minuit2 --enable-roofit' +configopts += ' --with-gsl-incdir=$EBROOTGSL/include/gsl --with-gsl-libdir=$EBROOTGSL/lib' +configopts += ' --with-fftw3-incdir=$MKLROOT/mkl/include/fftw --with-fftw3-libdir=$MKLROOT/mkl/lib/intel64' +configopts += ' --with-xml-incdir=$EBROOTLIBXML2/include/libxml2/libxml --with-xml-libdir=$EBROOTLIBXML2/lib' +configopts += ' --with-python-libdir=$EBROOTPYTHON/lib' + +moduleclass = 'data' diff --git a/r/ROOT/ROOT-v5.34.18-ictce-5.5.0.eb b/r/ROOT/ROOT-v5.34.18-ictce-5.5.0.eb new file mode 100644 index 00000000..cc50539e --- /dev/null +++ b/r/ROOT/ROOT-v5.34.18-ictce-5.5.0.eb @@ -0,0 +1,43 @@ +name = 'ROOT' +version = 'v5.34.18' + +homepage = 'http://root.cern.ch/drupal/' +description = """The ROOT system provides a set of OO frameworks with all the functionality + needed to handle and analyze large amounts of data in a very efficient way.""" + +toolchain = {'name': 'ictce', 'version': '5.5.0'} +toolchainopts = {'pic': True} + +sources = ['%(namelower)s_%(version)s.source.tar.gz'] +source_urls = ['ftp://root.cern.ch/root/'] +patches = [ + 'configure_FftwFromMkl_28.patch', + 'ROOT-v5_recent-ifort.patch', +] + +python = 'Python' +pyver = '2.7.6' + +dependencies = [ + ('GSL', '1.16'), + ('Mesa', '7.11.2', '-%s-%s' % (python, pyver)), + ('libxml2', '2.9.1', '-%s-%s' % (python, pyver)), + ('PCRE', '8.12'), + ('CFITSIO', '3.34'), + #('graphviz', '2.34.0'), Graphviz is optional, not in EB yet. + (python, pyver), +] + +# architecture +arch = 'linuxx8664icc' + +# disable features +configopts = ' --disable-xft --disable-xrootd --disable-mysql' +# enable features +configopts += ' --enable-unuran --enable-table --enable-explicitlink --enable-minuit2 --enable-roofit' +configopts += ' --with-gsl-incdir=$EBROOTGSL/include/gsl --with-gsl-libdir=$EBROOTGSL/lib' +configopts += ' --with-fftw3-incdir=$EBROOTIMKL/mkl/include/fftw --with-fftw3-libdir=$EBROOTIMKL/mkl/lib/intel64' +configopts += ' --with-xml-incdir=$EBROOTLIBXML2/include/libxml2/libxml --with-xml-libdir=$EBROOTLIBXML2/lib' +configopts += ' --with-python-libdir=$EBROOTPYTHON/lib' + +moduleclass = 'data' diff --git a/r/ROOT/ROOT-v5.34.26-intel-2015a.eb b/r/ROOT/ROOT-v5.34.26-intel-2015a.eb new file mode 100644 index 00000000..05baffbd --- /dev/null +++ b/r/ROOT/ROOT-v5.34.26-intel-2015a.eb @@ -0,0 +1,57 @@ +name = 'ROOT' +version = 'v5.34.26' + +homepage = 'http://root.cern.ch/drupal/' +description = """The ROOT system provides a set of OO frameworks with all the functionality + needed to handle and analyze large amounts of data in a very efficient way.""" + +toolchain = {'name': 'intel', 'version': '2015a'} +toolchainopts = {'pic': True} + +sources = ['%(namelower)s_%(version)s.source.tar.gz'] +source_urls = ['ftp://root.cern.ch/root/'] +patches = [ + 'configure_FftwFromMkl_28.patch', + 'ROOT-v5_recent-ifort.patch', + 'ROOT-v5.34.26_libX.patch', +] + +python = 'Python' +pyver = '2.7.9' + +dependencies = [ + ('GSL', '1.16'), + ('Mesa', '10.4.5', '-%s-%s' % (python, pyver)), + ('libxml2', '2.9.2', '-%s-%s' % (python, pyver)), + ('PCRE', '8.36'), + ('CFITSIO', '3.37'), + ('freetype', '2.5.5'), + (python, pyver), + ('zlib', '1.2.8'), + ('libXft', '2.3.2', '-libX11-1.6.3'), + ('libXpm', '3.5.11'), + ('libXext', '1.3.3'), +] + +# use external ZLIB +preconfigopts = 'env ZLIB=$EBROOTZLIB ' + +# architecture +arch = 'linuxx8664icc' + +# disable features +configopts = ' --disable-xrootd --disable-mysql --disable-krb5 --disable-odbc ' +configopts += ' --disable-oracle --disable-pgsql --disable-qt --disable-sqlite' +# enable features +configopts += ' --enable-unuran --enable-table --enable-explicitlink --enable-minuit2 --enable-roofit' +configopts += ' --with-gsl-incdir=$EBROOTGSL/include/gsl --with-gsl-libdir=$EBROOTGSL/lib' +configopts += ' --with-fftw3-incdir=$MKLROOT/mkl/include/fftw --with-fftw3-libdir=$MKLROOT/mkl/lib/intel64' +configopts += ' --with-xml-incdir=$EBROOTLIBXML2/include/libxml2/libxml --with-xml-libdir=$EBROOTLIBXML2/lib' +configopts += ' --with-python-libdir=$EBROOTPYTHON/lib' +configopts += ' --with-cfitsio-incdir=$EBROOTCFITSIO/include --with-cfitsio-libdir=$EBROOTCFITSIO/lib' +configopts += ' --with-opengl-incdir=$EBROOTMESA/include --with-opengl-libdir=$EBROOTMESA/lib' +configopts += ' --with-x11-libdir=$EBROOTLIBX11/lib --with-xext-libdir=$EBROOTLIBXEXT/lib' +configopts += ' --with-xft-libdir=$EBROOTLIBXFT/lib' +configopts += ' --with-xpm-incdir=$EBROOTLIBXPM/include --with-xpm-libdir=$EBROOTLIBXPM/lib' + +moduleclass = 'data' diff --git a/r/ROOT/ROOT-v5.34.34-intel-2015b-Python-2.7.10.eb b/r/ROOT/ROOT-v5.34.34-intel-2015b-Python-2.7.10.eb new file mode 100644 index 00000000..eb76e738 --- /dev/null +++ b/r/ROOT/ROOT-v5.34.34-intel-2015b-Python-2.7.10.eb @@ -0,0 +1,37 @@ +name = 'ROOT' +version = 'v5.34.34' + +homepage = 'http://root.cern.ch/drupal/' +description = """The ROOT system provides a set of OO frameworks with all the functionality + needed to handle and analyze large amounts of data in a very efficient way.""" + +toolchain = {'name': 'intel', 'version': '2015b'} +toolchainopts = {'pic': True} + +sources = ['%(namelower)s_%(version)s.source.tar.gz'] +source_urls = ['ftp://root.cern.ch/root/'] +patches = [ + 'configure_FftwFromMkl_28.patch', +] + +pyver = '2.7.10' +versionsuffix = '-Python-%s' % pyver +dependencies = [ + ('GSL', '1.16'), + ('libxml2', '2.9.3', versionsuffix), + ('Python', pyver), +] + +# architecture +arch = 'linuxx8664icc' + +# disable features +configopts = ' --disable-xft --disable-x11 --disable-xrootd --disable-mysql' +# enable features +configopts += ' --enable-unuran --enable-table --enable-explicitlink --enable-minuit2 --enable-roofit' +configopts += ' --with-gsl-incdir=$EBROOTGSL/include/gsl --with-gsl-libdir=$EBROOTGSL/lib' +configopts += ' --with-fftw3-incdir=$EBROOTIMKL/mkl/include/fftw --with-fftw3-libdir=$EBROOTIMKL/mkl/lib/intel64' +configopts += ' --with-xml-incdir=$EBROOTLIBXML2/include/libxml2/libxml --with-xml-libdir=$EBROOTLIBXML2/lib' +configopts += ' --with-python-libdir=$EBROOTPYTHON/lib' + +moduleclass = 'data' diff --git a/r/ROOT/ROOT-v5.34.34-intel-2016a-Python-2.7.11.eb b/r/ROOT/ROOT-v5.34.34-intel-2016a-Python-2.7.11.eb new file mode 100644 index 00000000..fc6f1871 --- /dev/null +++ b/r/ROOT/ROOT-v5.34.34-intel-2016a-Python-2.7.11.eb @@ -0,0 +1,55 @@ +name = 'ROOT' +version = 'v5.34.34' +versionsuffix = '-Python-%(pyver)s' + +homepage = 'http://root.cern.ch/drupal/' +description = """The ROOT system provides a set of OO frameworks with all the functionality + needed to handle and analyze large amounts of data in a very efficient way.""" + +toolchain = {'name': 'intel', 'version': '2016a'} +toolchainopts = {'pic': True} + +sources = ['%(namelower)s_%(version)s.source.tar.gz'] +source_urls = ['ftp://root.cern.ch/root/'] +patches = [ + 'configure_FftwFromMkl_28.patch', + 'ROOT-v5_recent-ifort.patch', + 'ROOT-v5.34.26_libX.patch', +] + +dependencies = [ + ('GSL', '1.16'), + ('Mesa', '11.1.2'), + ('libxml2', '2.9.3'), + ('PCRE', '8.38'), + ('CFITSIO', '3.38'), + ('freetype', '2.6.2'), + ('Python', '2.7.11'), + ('zlib', '1.2.8'), + ('libXft', '2.3.2'), + ('libXpm', '3.5.11'), + ('libXext', '1.3.3'), +] + +# use external ZLIB +preconfigopts = 'env ZLIB=$EBROOTZLIB ' + +# architecture +arch = 'linuxx8664icc' + +# disable features +configopts = ' --disable-xrootd --disable-mysql --disable-krb5 --disable-odbc ' +configopts += ' --disable-oracle --disable-pgsql --disable-qt --disable-sqlite' +# enable features +configopts += ' --enable-unuran --enable-table --enable-explicitlink --enable-minuit2 --enable-roofit' +configopts += ' --with-gsl-incdir=$EBROOTGSL/include/gsl --with-gsl-libdir=$EBROOTGSL/lib' +configopts += ' --with-fftw3-incdir=$MKLROOT/mkl/include/fftw --with-fftw3-libdir=$MKLROOT/mkl/lib/intel64' +configopts += ' --with-xml-incdir=$EBROOTLIBXML2/include/libxml2/libxml --with-xml-libdir=$EBROOTLIBXML2/lib' +configopts += ' --with-python-libdir=$EBROOTPYTHON/lib' +configopts += ' --with-cfitsio-incdir=$EBROOTCFITSIO/include --with-cfitsio-libdir=$EBROOTCFITSIO/lib' +configopts += ' --with-opengl-incdir=$EBROOTMESA/include --with-opengl-libdir=$EBROOTMESA/lib' +configopts += ' --with-x11-libdir=$EBROOTLIBX11/lib --with-xext-libdir=$EBROOTLIBXEXT/lib' +configopts += ' --with-xft-libdir=$EBROOTLIBXFT/lib' +configopts += ' --with-xpm-incdir=$EBROOTLIBXPM/include --with-xpm-libdir=$EBROOTLIBXPM/lib' + +moduleclass = 'data' diff --git a/r/ROOT/ROOT-v5.34.36-intel-2016a-Python-2.7.11.eb b/r/ROOT/ROOT-v5.34.36-intel-2016a-Python-2.7.11.eb new file mode 100644 index 00000000..7d110631 --- /dev/null +++ b/r/ROOT/ROOT-v5.34.36-intel-2016a-Python-2.7.11.eb @@ -0,0 +1,55 @@ +name = 'ROOT' +version = 'v5.34.36' +versionsuffix = '-Python-%(pyver)s' + +homepage = 'http://root.cern.ch/drupal/' +description = """The ROOT system provides a set of OO frameworks with all the functionality + needed to handle and analyze large amounts of data in a very efficient way.""" + +toolchain = {'name': 'intel', 'version': '2016a'} +toolchainopts = {'pic': True} + +sources = ['%(namelower)s_%(version)s.source.tar.gz'] +source_urls = ['ftp://root.cern.ch/root/'] +patches = [ + 'configure_FftwFromMkl_28.patch', + 'ROOT-v5_recent-ifort.patch', + 'ROOT-v5.34.26_libX.patch', +] + +dependencies = [ + ('GSL', '2.1'), + ('Mesa', '11.1.2'), + ('libxml2', '2.9.3'), + ('PCRE', '8.38'), + ('CFITSIO', '3.38'), + ('freetype', '2.6.2'), + ('Python', '2.7.11'), + ('zlib', '1.2.8'), + ('libXft', '2.3.2'), + ('libXpm', '3.5.11'), + ('libXext', '1.3.3'), +] + +# use external ZLIB +preconfigopts = 'env ZLIB=$EBROOTZLIB ' + +# architecture +arch = 'linuxx8664icc' + +# disable features +configopts = ' --disable-xrootd --disable-mysql --disable-krb5 --disable-odbc ' +configopts += ' --disable-oracle --disable-pgsql --disable-qt --disable-sqlite' +# enable features +configopts += ' --enable-unuran --enable-table --enable-explicitlink --enable-minuit2 --enable-roofit' +configopts += ' --with-gsl-incdir=$EBROOTGSL/include/gsl --with-gsl-libdir=$EBROOTGSL/lib' +configopts += ' --with-fftw3-incdir=$MKLROOT/mkl/include/fftw --with-fftw3-libdir=$MKLROOT/mkl/lib/intel64' +configopts += ' --with-xml-incdir=$EBROOTLIBXML2/include/libxml2/libxml --with-xml-libdir=$EBROOTLIBXML2/lib' +configopts += ' --with-python-libdir=$EBROOTPYTHON/lib' +configopts += ' --with-cfitsio-incdir=$EBROOTCFITSIO/include --with-cfitsio-libdir=$EBROOTCFITSIO/lib' +configopts += ' --with-opengl-incdir=$EBROOTMESA/include --with-opengl-libdir=$EBROOTMESA/lib' +configopts += ' --with-x11-libdir=$EBROOTLIBX11/lib --with-xext-libdir=$EBROOTLIBXEXT/lib' +configopts += ' --with-xft-libdir=$EBROOTLIBXFT/lib' +configopts += ' --with-xpm-incdir=$EBROOTLIBXPM/include --with-xpm-libdir=$EBROOTLIBXPM/lib' + +moduleclass = 'data' diff --git a/r/RSEM/RSEM-1.2.30-foss-2016a.eb b/r/RSEM/RSEM-1.2.30-foss-2016a.eb new file mode 100644 index 00000000..e773ad31 --- /dev/null +++ b/r/RSEM/RSEM-1.2.30-foss-2016a.eb @@ -0,0 +1,30 @@ +easyblock = 'ConfigureMake' + +name = 'RSEM' +version = '1.2.30' + +homepage = 'http://deweylab.github.io/RSEM/' +description = """RNA-Seq by Expectation-Maximization""" + +toolchain = {'name': 'foss', 'version': '2016a'} + +source_urls = ['https://github.com/deweylab/RSEM/archive/'] +sources = ['v%(version)s.tar.gz'] + +patches = ['RSEM-%(version)s_makefiles.patch'] + +skipsteps = ['configure'] +installopts = "prefix=%(installdir)s" + +dependencies = [ + ('ncurses', '6.0'), + ('zlib', '1.2.8'), +] + +sanity_check_paths = { + 'files': ['bin/rsem-calculate-expression', 'bin/rsem-plot-model', 'bin/rsem-plot-transcript-wiggles', 'bin/rsem-bam2wig', + 'bin/rsem-generate-data-matrix', 'bin/rsem-run-em', 'bin/convert-sam-for-rsem'], + 'dirs': ['bin/samtools-1.3'], +} + +moduleclass = 'bio' diff --git a/r/RSEM/RSEM-1.2.30-intel-2016b.eb b/r/RSEM/RSEM-1.2.30-intel-2016b.eb new file mode 100644 index 00000000..5420a229 --- /dev/null +++ b/r/RSEM/RSEM-1.2.30-intel-2016b.eb @@ -0,0 +1,30 @@ +easyblock = 'ConfigureMake' + +name = 'RSEM' +version = '1.2.30' + +homepage = 'http://deweylab.github.io/RSEM/' +description = """RNA-Seq by Expectation-Maximization""" + +toolchain = {'name': 'intel', 'version': '2016b'} + +source_urls = ['https://github.com/deweylab/RSEM/archive/'] +sources = ['v%(version)s.tar.gz'] + +patches = ['RSEM-%(version)s_makefiles.patch'] + +skipsteps = ['configure'] +installopts = "prefix=%(installdir)s" + +dependencies = [ + ('ncurses', '6.0'), + ('zlib', '1.2.8'), +] + +sanity_check_paths = { + 'files': ['bin/rsem-calculate-expression', 'bin/rsem-plot-model', 'bin/rsem-plot-transcript-wiggles', 'bin/rsem-bam2wig', + 'bin/rsem-generate-data-matrix', 'bin/rsem-run-em', 'bin/convert-sam-for-rsem'], + 'dirs': ['bin/samtools-1.3'], +} + +moduleclass = 'bio' diff --git a/r/RSEM/RSEM-1.3.0-foss-2016b.eb b/r/RSEM/RSEM-1.3.0-foss-2016b.eb new file mode 100644 index 00000000..d01f2f90 --- /dev/null +++ b/r/RSEM/RSEM-1.3.0-foss-2016b.eb @@ -0,0 +1,32 @@ +easyblock = 'ConfigureMake' + +name = 'RSEM' +version = '1.3.0' + +homepage = 'http://deweylab.github.io/RSEM/' +description = """RNA-Seq by Expectation-Maximization""" + +toolchain = {'name': 'foss', 'version': '2016b'} + +source_urls = ['https://github.com/deweylab/RSEM/archive/'] +sources = ['v%(version)s.tar.gz'] + +patches = ['RSEM-%(version)s_makefiles.patch'] + +skipsteps = ['configure'] +installopts = "prefix=%(installdir)s" + +dependencies = [ + ('ncurses', '6.0'), + ('zlib', '1.2.8'), + ('Perl', '5.24.0'), + ('R', '3.3.1'), +] + +sanity_check_paths = { + 'files': ['bin/rsem-calculate-expression', 'bin/rsem-plot-model', 'bin/rsem-plot-transcript-wiggles', 'bin/rsem-bam2wig', + 'bin/rsem-generate-data-matrix', 'bin/rsem-run-em', 'bin/convert-sam-for-rsem'], + 'dirs': ['bin/samtools-1.3'], +} + +moduleclass = 'bio' diff --git a/r/RStudio/RStudio-0.98.1103.eb b/r/RStudio/RStudio-0.98.1103.eb new file mode 100644 index 00000000..70fddd7d --- /dev/null +++ b/r/RStudio/RStudio-0.98.1103.eb @@ -0,0 +1,20 @@ +easyblock = 'PackedBinary' + +name = 'RStudio' +version = '0.98.1103' + +homepage = 'https://www.rstudio.com' +description = "RStudio is a set of integrated tools designed to help you be more productive with R. It includes a console, syntax-highlighting editor that supports direct code execution, as well as tools for plotting, history, debugging and workspace management." + +toolchain = {'name': 'dummy', 'version': ''} + +sources = ['rstudio-0.98.1103-x86_64-fedora.tar.gz'] +source_urls = ['http://download1.rstudio.org/'] + + +sanity_check_paths = { + 'files': ['bin/rstudio'], + 'dirs': ['R'] +} + +moduleclass = 'tools' diff --git a/r/Racket/Racket-6.1.1-GCC-4.8.3.eb b/r/Racket/Racket-6.1.1-GCC-4.8.3.eb new file mode 100644 index 00000000..791c2b00 --- /dev/null +++ b/r/Racket/Racket-6.1.1-GCC-4.8.3.eb @@ -0,0 +1,24 @@ +easyblock = 'ConfigureMake' + +name = "Racket" +version = "6.1.1" + +homepage = 'http://racket-lang.org' +description = """Racket is a full-spectrum programming language. It goes +beyond Lisp and Scheme with dialects that support objects, types, +laziness, and more.""" + +toolchain = {'name': 'GCC', 'version': '4.8.3'} + +#preconfigopts = "cd src && " +start_dir = 'src' + +sources = ['%(namelower)s-%(version)s-src.tgz'] +source_urls = ['http://mirror.racket-lang.org/installers/%(version)s/'] + +sanity_check_paths = { + 'files': ['bin/racket'], + 'dirs': ['bin', 'etc', 'lib', 'share'], +} + +moduleclass = 'lang' diff --git a/r/Reads2snp/Reads2snp-2.0.eb b/r/Reads2snp/Reads2snp-2.0.eb new file mode 100644 index 00000000..506890dc --- /dev/null +++ b/r/Reads2snp/Reads2snp-2.0.eb @@ -0,0 +1,31 @@ +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# Author: Pablo Escobar Lopez +# sciCORE - University of Basel +# SIB Swiss Institute of Bioinformatics + +easyblock = 'Tarball' + +name = 'Reads2snp' +version = '2.0' + +homepage = 'http://kimura.univ-montp2.fr/PopPhyl/index.php?section=tools' +description = """reads2snp is a SNP and genotype caller: it predicts the genotype of distinct individuals + at distinct positions of a set of sequences based on read mapping / read counts. Its typical input is a bam file. + Its typical output is a vcf file. It is written in C++, based on the bio++ libraries, multi-threaded with openMP, + available under Linux and MacOS""" + +toolchain = {'name': 'dummy', 'version': ''} + +source_urls = ['http://kimura.univ-montp2.fr/PopPhyl/resources/tools/'] +sources = ['%(namelower)s_%(version)s.zip'] + +sanity_check_paths = { + 'files': ['reads2snp_%(version)s.64.bin'], + 'dirs': [], +} + +modextrapaths = { + 'PATH': "", # add the installation dir to PATH +} + +moduleclass = 'bio' diff --git a/r/Rosetta/Rosetta-2015.31.58019-intel-2015a.eb b/r/Rosetta/Rosetta-2015.31.58019-intel-2015a.eb new file mode 100644 index 00000000..10b2a8fd --- /dev/null +++ b/r/Rosetta/Rosetta-2015.31.58019-intel-2015a.eb @@ -0,0 +1,20 @@ +name = 'Rosetta' +version = '2015.31.58019' + +homepage = 'https://www.rosettacommons.org' +description = """Rosetta is the premier software suite for modeling macromolecular structures. As a flexible, +multi-purpose application, it includes tools for structure prediction, design, and remodeling of proteins and +nucleic acids.""" + +toolchain = {'name': 'intel', 'version': '2015a'} +toolchainopts = {'usempi': True} + +sources = ['%(namelower)s_src_%(version)s_bundle.tgz'] + +builddependencies = [('SCons', '2.3.6', '-Python-2.7.9')] + +modextravars = { + 'ROSETTA3_DB': '$root/database', +} + +moduleclass = 'bio' diff --git a/r/Rosetta/Rosetta-2016.13.58602-foss-2016a.eb b/r/Rosetta/Rosetta-2016.13.58602-foss-2016a.eb new file mode 100644 index 00000000..86250d92 --- /dev/null +++ b/r/Rosetta/Rosetta-2016.13.58602-foss-2016a.eb @@ -0,0 +1,20 @@ +name = 'Rosetta' +version = '2016.13.58602' + +homepage = 'https://www.rosettacommons.org' +description = """Rosetta is the premier software suite for modeling macromolecular structures. As a flexible, +multi-purpose application, it includes tools for structure prediction, design, and remodeling of proteins and +nucleic acids.""" + +toolchain = {'name': 'foss', 'version': '2016a'} +toolchainopts = {'usempi': True} + +sources = ['%(namelower)s_src_%(version)s_bundle.tgz'] + +builddependencies = [('SCons', '2.4.1', '-Python-2.7.11')] + +modextravars = { + 'ROSETTA3_DB': '$root/database', +} + +moduleclass = 'bio' diff --git a/r/Rust/Rust-1.12.0-foss-2016b.eb b/r/Rust/Rust-1.12.0-foss-2016b.eb new file mode 100644 index 00000000..de615e76 --- /dev/null +++ b/r/Rust/Rust-1.12.0-foss-2016b.eb @@ -0,0 +1,22 @@ +easyblock = 'ConfigureMake' + +name = 'Rust' +version = '1.12.0' + +homepage = 'https://www.rust-lang.org' +description = """Rust is a systems programming language that runs blazingly fast, prevents segfaults, + and guarantees thread safety.""" + +toolchain = {'name': 'foss', 'version': '2016b'} + +source_urls = ['https://static.rust-lang.org/dist/'] +sources = ['rustc-%(version)s-src.tar.gz'] + +builddependencies = [('Python', '2.7.12'), ('CMake','3.6.2')] + +sanity_check_paths = { + 'files': ['bin/rustc', 'bin/rustdoc'], + 'dirs': ['share/doc', 'share/man', 'lib/rustlib'], +} + +moduleclass = 'lang' diff --git a/r/Rust/Rust-1.12.1-foss-2016b.eb b/r/Rust/Rust-1.12.1-foss-2016b.eb new file mode 100644 index 00000000..a06ae545 --- /dev/null +++ b/r/Rust/Rust-1.12.1-foss-2016b.eb @@ -0,0 +1,22 @@ +easyblock = 'ConfigureMake' + +name = 'Rust' +version = '1.12.1' + +homepage = 'https://www.rust-lang.org' +description = """Rust is a systems programming language that runs blazingly fast, prevents segfaults, + and guarantees thread safety.""" + +toolchain = {'name': 'foss', 'version': '2016b'} + +source_urls = ['https://static.rust-lang.org/dist/'] +sources = ['rustc-%(version)s-src.tar.gz'] + +builddependencies = [('Python', '2.7.12'), ('CMake','3.6.2')] + +sanity_check_paths = { + 'files': ['bin/rustc', 'bin/rustdoc'], + 'dirs': ['share/doc', 'share/man', 'lib/rustlib'], +} + +moduleclass = 'lang' diff --git a/r/rainbow/rainbow-2.0.4-goolf-1.4.10.eb b/r/rainbow/rainbow-2.0.4-goolf-1.4.10.eb new file mode 100644 index 00000000..c431cc2a --- /dev/null +++ b/r/rainbow/rainbow-2.0.4-goolf-1.4.10.eb @@ -0,0 +1,31 @@ +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# Author: Pablo Escobar Lopez +# sciCORE - University of Basel +# SIB Swiss Institute of Bioinformatics + +easyblock = 'MakeCp' + +name = 'rainbow' +version = '2.0.4' + +homepage = 'https://sourceforge.net/projects/bio-rainbow/' +description = """Efficient tool for clustering and assembling short reads, especially for RAD.""" + +toolchain = {'name': 'goolf', 'version': '1.4.10'} + +source_urls = ['http://downloads.sourceforge.net/project/bio-rainbow/'] +sources = ['%(name)s_%(version)s.tar.gz'] + +buildopts = ' CC=$CC' + +files_to_copy = [(['rainbow', 'ezmsim', 'rbasm', 'select_sec_rbcontig.pl', + 'select_best_rbcontig_plus_read1.pl', 'select_sec_rbcontig.pl', 'select_all_rbcontig.pl'], 'bin')] + +parallel = 1 + +sanity_check_paths = { + 'files': ['bin/rainbow', 'bin/ezmsim', 'bin/rbasm'], + 'dirs': [], +} + +moduleclass = 'bio' diff --git a/r/randrproto/randrproto-1.5.0-foss-2016a.eb b/r/randrproto/randrproto-1.5.0-foss-2016a.eb new file mode 100644 index 00000000..d4808486 --- /dev/null +++ b/r/randrproto/randrproto-1.5.0-foss-2016a.eb @@ -0,0 +1,19 @@ +easyblock = 'ConfigureMake' + +name = 'randrproto' +version = '1.5.0' + +homepage = "http://www.freedesktop.org/wiki/Software/xlibs" +description = "Xrandr protocol and ancillary headers" + +toolchain = {'name': 'foss', 'version': '2016a'} + +sources = [SOURCE_TAR_GZ] +source_urls = [XORG_PROTO_SOURCE] + +sanity_check_paths = { + 'files': ['include/X11/extensions/%s' % x for x in ['randr.h', 'randrproto.h']], + 'dirs': [], +} + +moduleclass = 'devel' diff --git a/r/randrproto/randrproto-1.5.0-intel-2016a.eb b/r/randrproto/randrproto-1.5.0-intel-2016a.eb new file mode 100644 index 00000000..563fbfcb --- /dev/null +++ b/r/randrproto/randrproto-1.5.0-intel-2016a.eb @@ -0,0 +1,19 @@ +easyblock = 'ConfigureMake' + +name = 'randrproto' +version = '1.5.0' + +homepage = "http://www.freedesktop.org/wiki/Software/xlibs" +description = "Xrandr protocol and ancillary headers" + +toolchain = {'name': 'intel', 'version': '2016a'} + +sources = [SOURCE_TAR_GZ] +source_urls = [XORG_PROTO_SOURCE] + +sanity_check_paths = { + 'files': ['include/X11/extensions/%s' % x for x in ['randr.h', 'randrproto.h']], + 'dirs': [], +} + +moduleclass = 'devel' diff --git a/s/S-Lang/S-Lang-2.3.0-GCC-4.9.2.eb b/s/S-Lang/S-Lang-2.3.0-GCC-4.9.2.eb new file mode 100644 index 00000000..ec3e8a22 --- /dev/null +++ b/s/S-Lang/S-Lang-2.3.0-GCC-4.9.2.eb @@ -0,0 +1,22 @@ +easyblock = 'ConfigureMake' + +name = 'S-Lang' +version = '2.3.0' + +homepage = 'http://www.jedsoft.org/slang/' +description = """S-Lang is a multi-platform programmer's library designed to allow + a developer to create robust multi-platform software. It provides facilities + required by interactive applications such as display/screen management, keyboard + input, keymaps, and so on.""" + +toolchain = {'name': 'GCC', 'version': '4.9.2'} + +sources = ['slang-%(version)s.tar.gz'] +source_urls = ['http://www.jedsoft.org/releases/slang/'] + +sanity_check_paths = { + 'files': ['include/slang.h', 'bin/slsh', 'lib/libslang.%s' % SHLIB_EXT], + 'dirs': [], +} + +moduleclass = 'devel' diff --git a/s/S4MPLE/S4MPLE.eb b/s/S4MPLE/S4MPLE.eb new file mode 100644 index 00000000..1c6d84a2 --- /dev/null +++ b/s/S4MPLE/S4MPLE.eb @@ -0,0 +1,21 @@ +easyblock = 'PackedBinary' + +name = 'S4MPLE' +version = '1.0.0' + +homepage = 'http://infochim.u-strasbg.fr/spip.php?rubrique152' +description = """S4MPLE (Sampler For Multiple Protein-Ligand Entities) is a flexible molecular modeling tool, supporting empirical +force field-driven conformational sampling and geometry optimization heuristics using a hybrid genetic algorithm (GA). +""" + +toolchain = {'name': 'dummy', 'version': 'dummy'} + +# download from http://infochim.u-strasbg.fr/IMG/gz/S4MPLE-tar.gz and rename to S4MPLE.tar.gz +sources = ['S4MPLE.tar.gz'] + +sanity_check_paths = { + 'files': ["S4MPLE"], + 'dirs': [], +} + +moduleclass = 'chem' diff --git a/s/SAMtools/SAMtools-1.3-foss-2015g.eb b/s/SAMtools/SAMtools-1.3-foss-2015g.eb new file mode 100644 index 00000000..f98cf994 --- /dev/null +++ b/s/SAMtools/SAMtools-1.3-foss-2015g.eb @@ -0,0 +1,31 @@ +## +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# +# Copyright:: Copyright 2012-2014 Uni.Lu/LCSB, NTUA +# Authors:: Robert Schmidt , Cedric Laczny , Fotis Georgatos +# License:: MIT/GPL +# $Id$ +# +## +name = 'SAMtools' +version = '1.3' + +homepage = 'http://www.htslib.org/' +description = """SAM Tools provide various utilities for manipulating alignments in the SAM format, + including sorting, merging, indexing and generating alignments in a per-position format.""" + +toolchain = {'name': 'foss', 'version': '2015g'} +toolchainopts = {'optarch': True, 'pic': True} + +source_urls = ['https://github.com/samtools/%(namelower)s/releases/download/%(version)s'] +sources = [SOURCELOWER_TAR_BZ2] + +# Patch Makefile to link against zlib provided by EB +patches = ['SAMtools-1.3_Makefile.patch'] + +dependencies = [ + ('ncurses', '5.9'), + ('zlib', '1.2.8'), +] + +moduleclass = 'bio' diff --git a/s/SCOTCH/SCOTCH-5.1.12b_esmumps-goolf-1.5.16.eb b/s/SCOTCH/SCOTCH-5.1.12b_esmumps-goolf-1.5.16.eb new file mode 100644 index 00000000..b9ace442 --- /dev/null +++ b/s/SCOTCH/SCOTCH-5.1.12b_esmumps-goolf-1.5.16.eb @@ -0,0 +1,14 @@ +name = 'SCOTCH' +version = '5.1.12b_esmumps' + +homepage = 'http://gforge.inria.fr/projects/scotch/' +description = """Software package and libraries for sequential and parallel graph partitioning, +static mapping, and sparse matrix block ordering, and sequential mesh and hypergraph partitioning.""" + +toolchain = {'name': 'goolf', 'version': '1.5.16'} +toolchainopts = {'pic': True} + +source_urls = ['https://gforge.inria.fr/frs/download.php/28978/'] +sources = ['%(namelower)s_%(version)s.tar.gz'] + +moduleclass = 'math' diff --git a/s/SCOTCH/SCOTCH-6.0.3-intel-2015b.eb b/s/SCOTCH/SCOTCH-6.0.3-intel-2015b.eb new file mode 100644 index 00000000..f5b3d410 --- /dev/null +++ b/s/SCOTCH/SCOTCH-6.0.3-intel-2015b.eb @@ -0,0 +1,14 @@ +name = 'SCOTCH' +version = '6.0.3' + +homepage = 'http://gforge.inria.fr/projects/scotch/' +description = """Software package and libraries for sequential and parallel graph partitioning, +static mapping, and sparse matrix block ordering, and sequential mesh and hypergraph partitioning.""" + +toolchain = {'name': 'intel', 'version': '2015b'} +toolchainopts = {'pic': True} + +source_urls = ['http://gforge.inria.fr/frs/download.php/file/34099/'] +sources = ['%(namelower)s_%(version)s.tar.gz'] + +moduleclass = 'math' diff --git a/s/SCOTCH/SCOTCH-6.0.4-intel-2017a.eb b/s/SCOTCH/SCOTCH-6.0.4-intel-2017a.eb new file mode 100644 index 00000000..6cc81f5d --- /dev/null +++ b/s/SCOTCH/SCOTCH-6.0.4-intel-2017a.eb @@ -0,0 +1,14 @@ +name = 'SCOTCH' +version = '6.0.4' + +homepage = 'http://gforge.inria.fr/projects/scotch/' +description = """Software package and libraries for sequential and parallel graph partitioning, +static mapping, and sparse matrix block ordering, and sequential mesh and hypergraph partitioning.""" + +toolchain = {'name': 'intel', 'version': '2017a'} +toolchainopts = {'pic': True} + +source_urls = ['http://gforge.inria.fr/frs/download.php/file/34618/'] +sources = ['%(namelower)s_%(version)s.tar.gz'] + +moduleclass = 'math' diff --git a/s/SCons/SCons-2.3.6-intel-2015b-Python-2.7.9.eb b/s/SCons/SCons-2.3.6-intel-2015b-Python-2.7.9.eb new file mode 100644 index 00000000..7df82af2 --- /dev/null +++ b/s/SCons/SCons-2.3.6-intel-2015b-Python-2.7.9.eb @@ -0,0 +1,26 @@ +easyblock = 'PythonPackage' + +name = 'SCons' +version = '2.3.6' + +homepage = 'http://www.scons.org/' +description = "SCons is a software construction tool." + +toolchain = {'name': 'intel', 'version': '2015b'} + +sources = [SOURCELOWER_TAR_GZ] +source_urls = ['http://prdownloads.sourceforge.net/%(namelower)s'] + +python = 'Python' +pyver = '2.7.9' +versionsuffix = '-%s-%s' % (python, pyver) +dependencies = [(python, pyver)] + +sanity_check_paths = { + 'files': ['bin/scons', 'bin/scons-time', 'bin/sconsign'], + 'dirs': ['lib/%(namelower)s-%(version)s/%(name)s'], +} + +options = {'modulename': False} + +moduleclass = 'devel' diff --git a/s/SDE/SDE-7.41.0.eb b/s/SDE/SDE-7.41.0.eb new file mode 100644 index 00000000..de2291b6 --- /dev/null +++ b/s/SDE/SDE-7.41.0.eb @@ -0,0 +1,33 @@ +easyblock = 'Tarball' + +name = 'SDE' +version = '7.41.0' + +homepage = 'https://software.intel.com/en-us/articles/intel-software-development-emulator' +description = """ + Intel Software Development Emulator is a pintool that enables the development of applications using instruction set extensions that are not currently implemented in hardware. +""" +toolchain = {'name': 'dummy', 'version': 'dummy'} + +# download from https://software.intel.com/en-us/articles/pre-release-license-agreement-for-intel-software-development-emulator-accept-end-user-license-agreement-and-download +sources = ['sde-external-7.41.0-2016-03-03-lin.tar.bz2'] + +dependencies = [] + +skipsteps= ['configure', 'build'] + +sanity_check_paths = { + 'files': ['sde', 'xed'], + 'dirs': [], +} + +# add the top dir to PATH +modextrapaths = { + 'PATH': '' +} + +modaliases = { + 'sde': 'sde64' +} + +moduleclass = 'tools' diff --git a/s/SHORE/SHORE-0.9.3-foss-2016a.eb b/s/SHORE/SHORE-0.9.3-foss-2016a.eb new file mode 100644 index 00000000..756efd91 --- /dev/null +++ b/s/SHORE/SHORE-0.9.3-foss-2016a.eb @@ -0,0 +1,29 @@ +easyblock = 'ConfigureMake' + +name = 'SHORE' +version = '0.9.3' + +homepage = "http://1001genomes.org/software/shore.html" +description = """SHORE, for Short Read, is a mapping and analysis pipeline for short read data produced on the Illumina platform. +""" + +toolchain = {'name': 'foss', 'version': '2016a'} + +source_urls = ['https://sourceforge.net/projects/shore/files/'] +sources = [SOURCELOWER_TAR_GZ] + +configopts = '--with-mpi' + +dependencies = [ + ('XZ','5.2.2'), + ('zlib','1.2.8'), + ('GSL','1.16'), # GSL 2.1 does not work. + ('Boost', '1.61.0'), +] + +sanity_check_paths = { + 'files': ['bin/shore', 'bin/shore-mpi', 'lib/libshore.a'], + 'dirs': ['include', 'lib'], +} + +moduleclass = 'bio' diff --git a/s/SIONlib/SIONlib-1.6.1-tools-intel-2015b.eb b/s/SIONlib/SIONlib-1.6.1-tools-intel-2015b.eb new file mode 100644 index 00000000..25d4dbfa --- /dev/null +++ b/s/SIONlib/SIONlib-1.6.1-tools-intel-2015b.eb @@ -0,0 +1,44 @@ +## +# This is an easyconfig file for EasyBuild, see https://github.com/hpcugent/easybuild +# +# Copyright:: Copyright 2016 Juelich Supercomputing Centre, Germany +# Authors:: Markus Geimer +# License:: 3-clause BSD +## + +easyblock = 'ConfigureMake' + +name = 'SIONlib' +version = '1.6.1' +# Provide a stripped-down version with renamed symbols for tools, +# see description for further details +versionsuffix = '-tools' + +homepage = 'http://www.fz-juelich.de/ias/jsc/EN/Expertise/Support/Software/SIONlib/_node.html' +description = """SIONlib is a scalable I/O library for parallel access to task-local files. + The library not only supports writing and reading binary data to or from several thousands of + processors into a single or a small number of physical files, but also provides global open + and close functions to access SIONlib files in parallel. This package provides a stripped-down + installation of SIONlib for use with performance tools (e.g., Score-P), with renamed symbols + to avoid conflicts when an application using SIONlib itself is linked against a tool requiring + a different SIONlib version.""" + +toolchain = {'name': 'intel', 'version': '2015b'} +toolchainopts = {'pic': True} + +sources = ['sionlib-%(version)sl.tar.gz'] +source_urls = ['http://apps.fz-juelich.de/jsc/sionlib/download.php?version=%(version)sl'] + +checksums = [ + '57208e08309cf8892fe3daee90567d21', # sionlib-1.6.1l.tar.gz +] + +configopts = '--disable-cxx --disable-fortran --disable-ompi --compiler=intel' + +sanity_check_paths = { + 'files': ['bin/sionconfig'] + + ['lib/lib%s_64.a' % x for x in ['lsioncom', 'lsiongen', 'lsionser']], + 'dirs': [] +} + +moduleclass = 'lib' diff --git a/s/SIONlib/SIONlib-1.6.1-tools.eb b/s/SIONlib/SIONlib-1.6.1-tools.eb new file mode 100644 index 00000000..1d876a02 --- /dev/null +++ b/s/SIONlib/SIONlib-1.6.1-tools.eb @@ -0,0 +1,43 @@ +## +# This is an easyconfig file for EasyBuild, see https://github.com/hpcugent/easybuild +# +# Copyright:: Copyright 2016 Juelich Supercomputing Centre, Germany +# Authors:: Markus Geimer +# License:: 3-clause BSD +## + +easyblock = 'ConfigureMake' + +name = 'SIONlib' +version = '1.6.1' +# Provide a stripped-down version with renamed symbols for tools, +# see description for further details +versionsuffix = '-tools' + +homepage = 'http://www.fz-juelich.de/ias/jsc/EN/Expertise/Support/Software/SIONlib/_node.html' +description = """SIONlib is a scalable I/O library for parallel access to task-local files. + The library not only supports writing and reading binary data to or from several thousands of + processors into a single or a small number of physical files, but also provides global open + and close functions to access SIONlib files in parallel. This package provides a stripped-down + installation of SIONlib for use with performance tools (e.g., Score-P), with renamed symbols + to avoid conflicts when an application using SIONlib itself is linked against a tool requiring + a different SIONlib version.""" + +toolchain = {'name': 'dummy', 'version': ''} + +sources = ['sionlib-%(version)sl.tar.gz'] +source_urls = ['http://apps.fz-juelich.de/jsc/sionlib/download.php?version=%(version)sl'] + +checksums = [ + '57208e08309cf8892fe3daee90567d21', # sionlib-1.6.1l.tar.gz +] + +configopts = '--disable-cxx --disable-fortran --disable-ompi --disable-mic' + +sanity_check_paths = { + 'files': ['bin/sionconfig'] + + ['lib/lib%s_64.a' % x for x in ['lsioncom', 'lsiongen', 'lsionser']], + 'dirs': [] +} + +moduleclass = 'lib' diff --git a/s/SIP/SIP-4.16.4-foss-2015g-Python-2.7.9.eb b/s/SIP/SIP-4.16.4-foss-2015g-Python-2.7.9.eb new file mode 100644 index 00000000..f075a8e7 --- /dev/null +++ b/s/SIP/SIP-4.16.4-foss-2015g-Python-2.7.9.eb @@ -0,0 +1,34 @@ +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# Author: Bart Verleye +# Center for eResearch, Auckland +easyblock = 'ConfigureMakePythonPackage' + +name = 'SIP' +version = '4.16.4' + +homepage = 'http://www.riverbankcomputing.com/software/sip/' +description = """SIP is a tool that makes it very easy to create Python bindings for C and C++ libraries.""" + +toolchain = {'name': 'foss', 'version': '2015g'} + +sources = [SOURCELOWER_TAR_GZ] +source_urls = ['http://sourceforge.net/projects/pyqt/files/sip/sip-%(version)s'] + +python = 'Python' +pyver = '2.7.9' +versionsuffix = '-%s-%s' % (python, pyver) + +dependencies = [(python, pyver)] + +configopts = "configure.py" + +skipsteps = ['sanitycheck'] + +python_siteconfig_path = "$EBROOTPYTHON/site-packages" + +sanity_check_paths = { + 'files': ['/apps/all/Python/2.7.9-foss-2015g/lib/python2.7/site-packages/sipconfig.py'], + 'dirs': [], +} + +moduleclass = 'lang' diff --git a/s/SIP/SIP-4.17-foss-2015g-Python-2.7.9.eb b/s/SIP/SIP-4.17-foss-2015g-Python-2.7.9.eb new file mode 100644 index 00000000..1a8af7b9 --- /dev/null +++ b/s/SIP/SIP-4.17-foss-2015g-Python-2.7.9.eb @@ -0,0 +1,34 @@ +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# Author: Bart Verleye +# Center for eResearch, Auckland +easyblock = 'ConfigureMakePythonPackage' + +name = 'SIP' +version = '4.17' + +homepage = 'http://www.riverbankcomputing.com/software/sip/' +description = """SIP is a tool that makes it very easy to create Python bindings for C and C++ libraries.""" + +toolchain = {'name': 'foss', 'version': '2015g'} + +sources = [SOURCELOWER_TAR_GZ] +source_urls = ['http://sourceforge.net/projects/pyqt/files/sip/sip-%(version)s'] + +python = 'Python' +pyver = '2.7.9' +versionsuffix = '-%s-%s' % (python, pyver) + +dependencies = [(python, pyver)] + +configopts = "configure.py" + +skipsteps = ['sanitycheck'] + +python_siteconfig_path = "$EBROOTPYTHON/site-packages" + +sanity_check_paths = { + 'files': ['/apps/all/Python/2.7.9-foss-2015g/lib/python2.7/site-packages/sipconfig.py'], + 'dirs': [], +} + +moduleclass = 'lang' diff --git a/s/SLEPc/SLEPc-3.3-p1-goolf-1.4.10-Python-2.7.3.eb b/s/SLEPc/SLEPc-3.3-p1-goolf-1.4.10-Python-2.7.3.eb new file mode 100644 index 00000000..3c14ae7d --- /dev/null +++ b/s/SLEPc/SLEPc-3.3-p1-goolf-1.4.10-Python-2.7.3.eb @@ -0,0 +1,19 @@ +name = "SLEPc" +version = "3.3-p1" +versionsuffix = '-Python-2.7.3' + +homepage = 'http://www.grycap.upv.es/slepc/' +description = """SLEPc (Scalable Library for Eigenvalue Problem Computations) is a software library for the solution of +large scale sparse eigenvalue problems on parallel computers. It is an extension of PETSc and can be used for either standard or +generalized eigenproblems, with real or complex arithmetic. It can also be used for computing a partial SVD of a large, sparse, +rectangular matrix, and to solve quadratic eigenvalue problems.""" + +toolchain = {'name': 'goolf', 'version': '1.4.10'} +toolchainopts = {'usempi': True} + +source_urls = ['http://www.grycap.upv.es/slepc/download/download.php?filename='] +sources = [SOURCELOWER_TAR_GZ] + +dependencies = [('PETSc', '3.3-p2', versionsuffix)] + +moduleclass = 'numlib' diff --git a/s/SLEPc/SLEPc-3.3-p1-ictce-5.3.0-Python-2.7.3.eb b/s/SLEPc/SLEPc-3.3-p1-ictce-5.3.0-Python-2.7.3.eb new file mode 100644 index 00000000..1b4c48aa --- /dev/null +++ b/s/SLEPc/SLEPc-3.3-p1-ictce-5.3.0-Python-2.7.3.eb @@ -0,0 +1,20 @@ +name = "SLEPc" +version = "3.3-p1" +versionsuffix = '-Python-2.7.3' + +homepage = 'http://www.grycap.upv.es/slepc/' +description = """SLEPc (Scalable Library for Eigenvalue Problem Computations) is a software library for the solution of + large scale sparse eigenvalue problems on parallel computers. It is an extension of PETSc and can be used for either standard or + generalized eigenproblems, with real or complex arithmetic. It can also be used for computing a partial SVD of a large, sparse, + rectangular matrix, and to solve quadratic eigenvalue problems.""" + + +toolchain = {'name': 'ictce', 'version': '5.3.0'} +toolchainopts = {'usempi': True} + +source_urls = ['http://www.grycap.upv.es/slepc/download/download.php?filename='] +sources = [SOURCELOWER_TAR_GZ] + +dependencies = [('PETSc', '3.3-p2', versionsuffix)] + +moduleclass = 'numlib' diff --git a/s/SLEPc/SLEPc-3.5.3-intel-2015a-Python-2.7.9.eb b/s/SLEPc/SLEPc-3.5.3-intel-2015a-Python-2.7.9.eb new file mode 100644 index 00000000..0f01678e --- /dev/null +++ b/s/SLEPc/SLEPc-3.5.3-intel-2015a-Python-2.7.9.eb @@ -0,0 +1,21 @@ +name = 'SLEPc' +version = '3.5.3' +versionsuffix = '-Python-2.7.9' + +homepage = 'http://www.grycap.upv.es/slepc/' +description = """SLEPc (Scalable Library for Eigenvalue Problem Computations) is a software library for the solution of + large scale sparse eigenvalue problems on parallel computers. It is an extension of PETSc and can be used for either + standard or generalized eigenproblems, with real or complex arithmetic. It can also be used for computing a partial + SVD of a large, sparse, rectangular matrix, and to solve quadratic eigenvalue problems.""" + +toolchain = {'name': 'intel', 'version': '2015a'} +toolchainopts = {'usempi': True} + +source_urls = ['http://www.grycap.upv.es/slepc/download/download.php?filename='] +sources = [SOURCELOWER_TAR_GZ] + +dependencies = [('PETSc', '3.5.3', versionsuffix)] + +petsc_arch = 'arch-linux2-c-opt' + +moduleclass = 'numlib' diff --git a/s/SLEPc/SLEPc-3.6.2-intel-2015b-Python-2.7.11.eb b/s/SLEPc/SLEPc-3.6.2-intel-2015b-Python-2.7.11.eb new file mode 100644 index 00000000..775feb38 --- /dev/null +++ b/s/SLEPc/SLEPc-3.6.2-intel-2015b-Python-2.7.11.eb @@ -0,0 +1,21 @@ +name = 'SLEPc' +version = '3.6.2' +versionsuffix = '-Python-2.7.11' + +homepage = 'http://www.grycap.upv.es/slepc/' +description = """SLEPc (Scalable Library for Eigenvalue Problem Computations) is a software library for the solution of + large scale sparse eigenvalue problems on parallel computers. It is an extension of PETSc and can be used for either + standard or generalized eigenproblems, with real or complex arithmetic. It can also be used for computing a partial + SVD of a large, sparse, rectangular matrix, and to solve quadratic eigenvalue problems.""" + +toolchain = {'name': 'intel', 'version': '2015b'} +toolchainopts = {'usempi': True} + +source_urls = ['http://www.grycap.upv.es/slepc/download/download.php?filename='] +sources = [SOURCELOWER_TAR_GZ] + +dependencies = [('PETSc', '3.6.3', versionsuffix)] + +petsc_arch = 'installed-arch-linux2-c-opt' + +moduleclass = 'numlib' diff --git a/s/SPRNG/SPRNG-2.0a-goolf-1.4.10.eb b/s/SPRNG/SPRNG-2.0a-goolf-1.4.10.eb new file mode 100644 index 00000000..762b8d99 --- /dev/null +++ b/s/SPRNG/SPRNG-2.0a-goolf-1.4.10.eb @@ -0,0 +1,34 @@ +easyblock = 'MakeCp' + +name = 'SPRNG' +version = '2.0a' + +homepage = 'http://www.sprng.org/' +description = "Scalable Parallel Pseudo Random Number Generators Library" + +toolchain = {'name': 'goolf', 'version': '1.4.10'} +toolchainopts = {'usempi': True} + +source_urls = ['http://www.sprng.org/Version2.0/'] +sources = ['%(namelower)s%(version)s.tgz'] + +patches = ['SPRNG-2.0_fix-metropolis-test.patch'] + +dependencies = [('GMP', '5.1.3')] + +buildopts = 'PLAT=INTEL MPIDEF="-DSPRNG_MPI" CC="$CC" F77="$F77" PMLCGDEF="-DUSE_PMLCG" GMPLIB="-L$EBROOTGMP/lib -lgmp" FFXN="-DAdd_"' + +# does not support parallel build +parallel = 1 + +files_to_copy = [ + (['lib/libsprng.a'], 'lib'), + (['include/interface.h', 'include/sprng.h', 'include/sprng_f.h'], 'include'), +] + +sanity_check_paths = { + 'files': ["lib/libsprng.a"], + 'dirs': [], +} + +moduleclass = 'lib' diff --git a/s/SPRNG/SPRNG-2.0a-ictce-5.3.0.eb b/s/SPRNG/SPRNG-2.0a-ictce-5.3.0.eb new file mode 100644 index 00000000..3d66a9ad --- /dev/null +++ b/s/SPRNG/SPRNG-2.0a-ictce-5.3.0.eb @@ -0,0 +1,34 @@ +easyblock = 'MakeCp' + +name = 'SPRNG' +version = '2.0a' + +homepage = 'http://www.sprng.org/' +description = "Scalable Parallel Pseudo Random Number Generators Library" + +toolchain = {'name': 'ictce', 'version': '5.3.0'} +toolchainopts = {'usempi': True} + +source_urls = ['http://www.sprng.org/Version2.0/'] +sources = ['%(namelower)s%(version)s.tgz'] + +patches = ['SPRNG-2.0_fix-metropolis-test.patch'] + +dependencies = [('GMP', '5.1.3')] + +buildopts = 'PLAT=INTEL MPIDEF="-DSPRNG_MPI" CC="$CC" F77="$F77" PMLCGDEF="-DUSE_PMLCG" GMPLIB="-L$EBROOTGMP/lib -lgmp" FFXN="-DAdd_"' + +# does not support parallel build +parallel = 1 + +files_to_copy = [ + (['lib/libsprng.a'], 'lib'), + (['include/interface.h', 'include/sprng.h', 'include/sprng_f.h'], 'include'), +] + +sanity_check_paths = { + 'files': ["lib/libsprng.a"], + 'dirs': [], +} + +moduleclass = 'lib' diff --git a/s/SPRNG/SPRNG-2.0a-ictce-5.5.0.eb b/s/SPRNG/SPRNG-2.0a-ictce-5.5.0.eb new file mode 100644 index 00000000..0b67d316 --- /dev/null +++ b/s/SPRNG/SPRNG-2.0a-ictce-5.5.0.eb @@ -0,0 +1,34 @@ +easyblock = 'MakeCp' + +name = 'SPRNG' +version = '2.0a' + +homepage = 'http://www.sprng.org/' +description = "Scalable Parallel Pseudo Random Number Generators Library" + +toolchain = {'name': 'ictce', 'version': '5.5.0'} +toolchainopts = {'usempi': True} + +source_urls = ['http://www.sprng.org/Version2.0/'] +sources = ['%(namelower)s%(version)s.tgz'] + +patches = ['SPRNG-2.0_fix-metropolis-test.patch'] + +dependencies = [('GMP', '5.1.3')] + +buildopts = 'PLAT=INTEL MPIDEF="-DSPRNG_MPI" CC="$CC" F77="$F77" PMLCGDEF="-DUSE_PMLCG" GMPLIB="-L$EBROOTGMP/lib -lgmp" FFXN="-DAdd_"' + +# does not support parallel build +parallel = 1 + +files_to_copy = [ + (['lib/libsprng.a'], 'lib'), + (['include/interface.h', 'include/sprng.h', 'include/sprng_f.h'], 'include'), +] + +sanity_check_paths = { + 'files': ["lib/libsprng.a"], + 'dirs': [], +} + +moduleclass = 'lib' diff --git a/s/SPRNG/SPRNG-2.0b-foss-2016a.eb b/s/SPRNG/SPRNG-2.0b-foss-2016a.eb new file mode 100644 index 00000000..59be5269 --- /dev/null +++ b/s/SPRNG/SPRNG-2.0b-foss-2016a.eb @@ -0,0 +1,34 @@ +easyblock = 'MakeCp' + +name = 'SPRNG' +version = '2.0b' + +homepage = 'http://www.sprng.org/' +description = "Scalable Parallel Pseudo Random Number Generators Library" + +toolchain = {'name': 'foss', 'version': '2016a'} +toolchainopts = {'usempi': True} + +source_urls = ['http://www.sprng.org/Version2.0/'] +sources = ['%(namelower)s%(version)s.tar.gz'] + +patches = ['SPRNG-2.0_fix-metropolis-test.patch'] + +dependencies = [('GMP', '6.1.0')] + +buildopts = 'PLAT=INTEL MPIDEF="-DSPRNG_MPI" CC="$CC" F77="$F77" PMLCGDEF="-DUSE_PMLCG" GMPLIB="-L$EBROOTGMP/lib -lgmp" FFXN="-DAdd_"' + +# does not support parallel build +parallel = 1 + +files_to_copy = [ + (['lib/libsprng.a'], 'lib'), + (['include/interface.h', 'include/sprng.h', 'include/sprng_f.h'], 'include'), +] + +sanity_check_paths = { + 'files': ["lib/libsprng.a"], + 'dirs': [], +} + +moduleclass = 'lib' diff --git a/s/SPRNG/SPRNG-2.0b-goolf-1.4.10.eb b/s/SPRNG/SPRNG-2.0b-goolf-1.4.10.eb new file mode 100644 index 00000000..4df72287 --- /dev/null +++ b/s/SPRNG/SPRNG-2.0b-goolf-1.4.10.eb @@ -0,0 +1,34 @@ +easyblock = 'MakeCp' + +name = 'SPRNG' +version = '2.0b' + +homepage = 'http://www.sprng.org/' +description = "Scalable Parallel Pseudo Random Number Generators Library" + +toolchain = {'name': 'goolf', 'version': '1.4.10'} +toolchainopts = {'usempi': True} + +source_urls = ['http://www.sprng.org/Version2.0/'] +sources = ['%(namelower)s%(version)s.tar.gz'] + +patches = ['SPRNG-2.0_fix-metropolis-test.patch'] + +dependencies = [('GMP', '5.1.3')] + +buildopts = 'PLAT=INTEL MPIDEF="-DSPRNG_MPI" CC="$CC" F77="$F77" PMLCGDEF="-DUSE_PMLCG" GMPLIB="-L$EBROOTGMP/lib -lgmp" FFXN="-DAdd_"' + +# does not support parallel build +parallel = 1 + +files_to_copy = [ + (['lib/libsprng.a'], 'lib'), + (['include/interface.h', 'include/sprng.h', 'include/sprng_f.h'], 'include'), +] + +sanity_check_paths = { + 'files': ["lib/libsprng.a"], + 'dirs': [], +} + +moduleclass = 'lib' diff --git a/s/SPRNG/SPRNG-2.0b-ictce-5.3.0.eb b/s/SPRNG/SPRNG-2.0b-ictce-5.3.0.eb new file mode 100644 index 00000000..ba3405a6 --- /dev/null +++ b/s/SPRNG/SPRNG-2.0b-ictce-5.3.0.eb @@ -0,0 +1,34 @@ +easyblock = 'MakeCp' + +name = 'SPRNG' +version = '2.0b' + +homepage = 'http://www.sprng.org/' +description = "Scalable Parallel Pseudo Random Number Generators Library" + +toolchain = {'name': 'ictce', 'version': '5.3.0'} +toolchainopts = {'usempi': True} + +source_urls = ['http://www.sprng.org/Version2.0/'] +sources = ['%(namelower)s%(version)s.tar.gz'] + +patches = ['SPRNG-2.0_fix-metropolis-test.patch'] + +dependencies = [('GMP', '5.1.3')] + +buildopts = 'PLAT=INTEL MPIDEF="-DSPRNG_MPI" CC="$CC" F77="$F77" PMLCGDEF="-DUSE_PMLCG" GMPLIB="-L$EBROOTGMP/lib -lgmp" FFXN="-DAdd_"' + +# does not support parallel build +parallel = 1 + +files_to_copy = [ + (['lib/libsprng.a'], 'lib'), + (['include/interface.h', 'include/sprng.h', 'include/sprng_f.h'], 'include'), +] + +sanity_check_paths = { + 'files': ["lib/libsprng.a"], + 'dirs': [], +} + +moduleclass = 'lib' diff --git a/s/SPRNG/SPRNG-2.0b-ictce-5.5.0.eb b/s/SPRNG/SPRNG-2.0b-ictce-5.5.0.eb new file mode 100644 index 00000000..435de493 --- /dev/null +++ b/s/SPRNG/SPRNG-2.0b-ictce-5.5.0.eb @@ -0,0 +1,34 @@ +easyblock = 'MakeCp' + +name = 'SPRNG' +version = '2.0b' + +homepage = 'http://www.sprng.org/' +description = "Scalable Parallel Pseudo Random Number Generators Library" + +toolchain = {'name': 'ictce', 'version': '5.5.0'} +toolchainopts = {'usempi': True} + +source_urls = ['http://www.sprng.org/Version2.0/'] +sources = ['%(namelower)s%(version)s.tar.gz'] + +patches = ['SPRNG-2.0_fix-metropolis-test.patch'] + +dependencies = [('GMP', '5.1.3')] + +buildopts = 'PLAT=INTEL MPIDEF="-DSPRNG_MPI" CC="$CC" F77="$F77" PMLCGDEF="-DUSE_PMLCG" GMPLIB="-L$EBROOTGMP/lib -lgmp" FFXN="-DAdd_"' + +# does not support parallel build +parallel = 1 + +files_to_copy = [ + (['lib/libsprng.a'], 'lib'), + (['include/interface.h', 'include/sprng.h', 'include/sprng_f.h'], 'include'), +] + +sanity_check_paths = { + 'files': ["lib/libsprng.a"], + 'dirs': [], +} + +moduleclass = 'lib' diff --git a/s/SQLite/SQLite-3.10.1-foss-2015g.eb b/s/SQLite/SQLite-3.10.1-foss-2015g.eb new file mode 100644 index 00000000..88df574e --- /dev/null +++ b/s/SQLite/SQLite-3.10.1-foss-2015g.eb @@ -0,0 +1,38 @@ +## +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# +# Copyright:: Copyright 2012-2014 Uni.Lu/LCSB, NTUA +# Authors:: Fotis Georgatos +# 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/ +## + +easyblock = 'ConfigureMake' + +name = 'SQLite' +version = '3.10.1' + +homepage = 'http://www.sqlite.org/' +description = 'SQLite: SQL Database Engine in a C Library' + +toolchain = {'name': 'foss', 'version': '2015g'} + +# eg. https://www.sqlite.org/2016/sqlite-autoconf-3100100.tar.gz +source_urls = ['http://www.sqlite.org/2016/'] +version_str = '%(version_major)s' + ''.join('%02d' % int(x) for x in version.split('.')[2:]) + '00' +sources = ['sqlite-autoconf-3100100.tar.gz'] + +dependencies = [ + ('libreadline', '6.3'), + ('Tcl', '8.6.3'), +] + +sanity_check_paths = { + 'files': ['bin/sqlite3'], + 'dirs': [], +} + +moduleclass = 'devel' diff --git a/s/SQLite/SQLite-3.13.0-intel-2017a.eb b/s/SQLite/SQLite-3.13.0-intel-2017a.eb new file mode 100644 index 00000000..90d495c6 --- /dev/null +++ b/s/SQLite/SQLite-3.13.0-intel-2017a.eb @@ -0,0 +1,40 @@ +## +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# +# Copyright:: Copyright 2012-2014 Uni.Lu/LCSB, NTUA +# Authors:: Fotis Georgatos +# 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/ +## + +easyblock = 'ConfigureMake' + +name = 'SQLite' +version = '3.13.0' + +homepage = 'http://www.sqlite.org/' +description = 'SQLite: SQL Database Engine in a C Library' + +toolchain = {'name': 'intel', 'version': '2017a'} + +source_urls = ['http://www.sqlite.org/2016/'] +version_minor_etc = version.split('.')[1:] +version_minor_etc += '0' * (3 - len(version_minor_etc)) +version_str = '%(version_major)s' + ''.join('%02d' % int(x) for x in version_minor_etc) +sources = ['sqlite-autoconf-%s.tar.gz' % version_str] + +dependencies = [ + ('libreadline', '6.3'), + ('Tcl', '8.6.5'), +] + +sanity_check_paths = { + 'files': ['bin/sqlite3', 'include/sqlite3ext.h', 'include/sqlite3.h', 'lib/libsqlite3.a', + 'lib/libsqlite3.%s' % SHLIB_EXT], + 'dirs': ['lib/pkgconfig'], +} + +moduleclass = 'devel' diff --git a/s/SQLite/SQLite-3.13.0.eb b/s/SQLite/SQLite-3.13.0.eb new file mode 100644 index 00000000..f8cf9ee2 --- /dev/null +++ b/s/SQLite/SQLite-3.13.0.eb @@ -0,0 +1,40 @@ +## +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# +# Copyright:: Copyright 2012-2014 Uni.Lu/LCSB, NTUA +# Authors:: Fotis Georgatos +# 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/ +## + +easyblock = 'ConfigureMake' + +name = 'SQLite' +version = '3.13.0' + +homepage = 'http://www.sqlite.org/' +description = 'SQLite: SQL Database Engine in a C Library' + +toolchain = {'name': 'dummy', 'version': 'dummy'} + +source_urls = ['http://www.sqlite.org/2016/'] +version_minor_etc = version.split('.')[1:] +version_minor_etc += '0' * (3 - len(version_minor_etc)) +version_str = '%(version_major)s' + ''.join('%02d' % int(x) for x in version_minor_etc) +sources = ['sqlite-autoconf-%s.tar.gz' % version_str] + +dependencies = [ + ('libreadline', '6.3'), + ('Tcl', '8.6.5'), +] + +sanity_check_paths = { + 'files': ['bin/sqlite3', 'include/sqlite3ext.h', 'include/sqlite3.h', 'lib/libsqlite3.a', + 'lib/libsqlite3.%s' % SHLIB_EXT], + 'dirs': ['lib/pkgconfig'], +} + +moduleclass = 'devel' diff --git a/s/SQLite/SQLite-3.14.1-GCCcore-4.9.3.eb b/s/SQLite/SQLite-3.14.1-GCCcore-4.9.3.eb new file mode 100644 index 00000000..d38cf611 --- /dev/null +++ b/s/SQLite/SQLite-3.14.1-GCCcore-4.9.3.eb @@ -0,0 +1,44 @@ +## +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# +# Copyright:: Copyright 2012-2014 Uni.Lu/LCSB, NTUA +# Authors:: Fotis Georgatos +# 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/ +## + +easyblock = 'ConfigureMake' + +name = 'SQLite' +version = '3.14.1' + +homepage = 'http://www.sqlite.org/' +description = 'SQLite: SQL Database Engine in a C Library' + +toolchain = {'name': 'GCCcore', 'version': '4.9.3'} + +# eg. http://www.sqlite.org/2014/sqlite-autoconf-3080600.tar.gz +source_urls = ['http://www.sqlite.org/2016/'] +version_str = '%%(version_major)s%s00' % ''.join('%02d' % int(x) for x in version.split('.')[1:]) +sources = ['sqlite-autoconf-%s.tar.gz' % version_str] + +builddependencies = [ + ('binutils', '2.25'), +] + +dependencies = [ + ('libreadline', '6.3'), + ('Tcl', '8.6.6'), +] + +parallel = 1 + +sanity_check_paths = { + 'files': ['bin/sqlite3', 'include/sqlite3ext.h', 'include/sqlite3.h', 'lib/libsqlite3.a', 'lib/libsqlite3.%s' % SHLIB_EXT], + 'dirs': ['lib/pkgconfig'], +} + +moduleclass = 'devel' diff --git a/s/SQLite/SQLite-3.8.10.2-GCC-4.9.3-2.25.eb b/s/SQLite/SQLite-3.8.10.2-GCC-4.9.3-2.25.eb new file mode 100644 index 00000000..62c6f7b8 --- /dev/null +++ b/s/SQLite/SQLite-3.8.10.2-GCC-4.9.3-2.25.eb @@ -0,0 +1,40 @@ +## +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# +# Copyright:: Copyright 2012-2014 Uni.Lu/LCSB, NTUA +# Authors:: Fotis Georgatos +# 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/ +## + +easyblock = 'ConfigureMake' + +name = 'SQLite' +version = '3.8.10.2' + +homepage = 'http://www.sqlite.org/' +description = 'SQLite: SQL Database Engine in a C Library' + +toolchain = {'name': 'GCC', 'version': '4.9.3-2.25'} + +# eg. http://www.sqlite.org/2014/sqlite-autoconf-3080600.tar.gz +source_urls = ['http://www.sqlite.org/2015/'] +version_str = '%(version_major)s' + ''.join('%02d' % int(x) for x in version.split('.')[1:]) +sources = ['sqlite-autoconf-%s.tar.gz' % version_str] + +dependencies = [ + ('libreadline', '6.3', '', ('GCCcore', '4.9.3')), + ('Tcl', '8.6.4'), +] + +parallel = 1 + +sanity_check_paths = { + 'files': ['bin/sqlite3', 'include/sqlite3ext.h', 'include/sqlite3.h', 'lib/libsqlite3.a', 'lib/libsqlite3.%s' % SHLIB_EXT], + 'dirs': ['lib/pkgconfig'], +} + +moduleclass = 'devel' diff --git a/s/SQLite/SQLite-3.8.10.2-foss-2015a.eb b/s/SQLite/SQLite-3.8.10.2-foss-2015a.eb new file mode 100644 index 00000000..06b2583e --- /dev/null +++ b/s/SQLite/SQLite-3.8.10.2-foss-2015a.eb @@ -0,0 +1,40 @@ +## +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# +# Copyright:: Copyright 2012-2014 Uni.Lu/LCSB, NTUA +# Authors:: Fotis Georgatos +# 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/ +## + +easyblock = 'ConfigureMake' + +name = 'SQLite' +version = '3.8.10.2' + +homepage = 'http://www.sqlite.org/' +description = 'SQLite: SQL Database Engine in a C Library' + +toolchain = {'name': 'foss', 'version': '2015a'} + +# eg. http://www.sqlite.org/2014/sqlite-autoconf-3080600.tar.gz +source_urls = ['http://www.sqlite.org/2015/'] +version_str = '%(version_major)s' + ''.join('%02d' % int(x) for x in version.split('.')[1:]) +sources = ['sqlite-autoconf-%s.tar.gz' % version_str] + +dependencies = [ + ('libreadline', '6.3'), + ('Tcl', '8.6.4'), +] + +parallel = 1 + +sanity_check_paths = { + 'files': ['bin/sqlite3', 'include/sqlite3ext.h', 'include/sqlite3.h', 'lib/libsqlite3.a', 'lib/libsqlite3.%s' % SHLIB_EXT], + 'dirs': ['lib/pkgconfig'], +} + +moduleclass = 'devel' diff --git a/s/SQLite/SQLite-3.8.10.2-foss-2015b.eb b/s/SQLite/SQLite-3.8.10.2-foss-2015b.eb new file mode 100644 index 00000000..5708afcd --- /dev/null +++ b/s/SQLite/SQLite-3.8.10.2-foss-2015b.eb @@ -0,0 +1,40 @@ +## +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# +# Copyright:: Copyright 2012-2014 Uni.Lu/LCSB, NTUA +# Authors:: Fotis Georgatos +# 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/ +## + +easyblock = 'ConfigureMake' + +name = 'SQLite' +version = '3.8.10.2' + +homepage = 'http://www.sqlite.org/' +description = 'SQLite: SQL Database Engine in a C Library' + +toolchain = {'name': 'foss', 'version': '2015b'} + +# eg. http://www.sqlite.org/2014/sqlite-autoconf-3080600.tar.gz +source_urls = ['http://www.sqlite.org/2015/'] +version_str = '%(version_major)s' + ''.join('%02d' % int(x) for x in version.split('.')[1:]) +sources = ['sqlite-autoconf-%s.tar.gz' % version_str] + +dependencies = [ + ('libreadline', '6.3'), + ('Tcl', '8.6.4'), +] + +parallel = 1 + +sanity_check_paths = { + 'files': ['bin/sqlite3', 'include/sqlite3ext.h', 'include/sqlite3.h', 'lib/libsqlite3.a', 'lib/libsqlite3.%s' % SHLIB_EXT], + 'dirs': ['lib/pkgconfig'], +} + +moduleclass = 'devel' diff --git a/s/SQLite/SQLite-3.8.10.2-gimkl-2.11.5.eb b/s/SQLite/SQLite-3.8.10.2-gimkl-2.11.5.eb new file mode 100644 index 00000000..11fc55a1 --- /dev/null +++ b/s/SQLite/SQLite-3.8.10.2-gimkl-2.11.5.eb @@ -0,0 +1,40 @@ +## +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# +# Copyright:: Copyright 2012-2014 Uni.Lu/LCSB, NTUA +# Authors:: Fotis Georgatos +# 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/ +## + +easyblock = 'ConfigureMake' + +name = 'SQLite' +version = '3.8.10.2' + +homepage = 'http://www.sqlite.org/' +description = 'SQLite: SQL Database Engine in a C Library' + +toolchain = {'name': 'gimkl', 'version': '2.11.5'} + +# eg. http://www.sqlite.org/2014/sqlite-autoconf-3080600.tar.gz +source_urls = ['http://www.sqlite.org/2015/'] +version_str = '%(version_major)s' + ''.join('%02d' % int(x) for x in version.split('.')[1:]) +sources = ['sqlite-autoconf-%s.tar.gz' % version_str] + +dependencies = [ + ('libreadline', '6.3'), + ('Tcl', '8.6.4'), +] + +parallel = 1 + +sanity_check_paths = { + 'files': ['bin/sqlite3', 'include/sqlite3ext.h', 'include/sqlite3.h', 'lib/libsqlite3.a', 'lib/libsqlite3.%s' % SHLIB_EXT], + 'dirs': ['lib/pkgconfig'], +} + +moduleclass = 'devel' diff --git a/s/SQLite/SQLite-3.8.10.2-goolf-1.4.10.eb b/s/SQLite/SQLite-3.8.10.2-goolf-1.4.10.eb new file mode 100644 index 00000000..6a41f586 --- /dev/null +++ b/s/SQLite/SQLite-3.8.10.2-goolf-1.4.10.eb @@ -0,0 +1,40 @@ +## +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# +# Copyright:: Copyright 2012-2014 Uni.Lu/LCSB, NTUA +# Authors:: Fotis Georgatos +# 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/ +## + +easyblock = 'ConfigureMake' + +name = 'SQLite' +version = '3.8.10.2' + +homepage = 'http://www.sqlite.org/' +description = 'SQLite: SQL Database Engine in a C Library' + +toolchain = {'name': 'goolf', 'version': '1.4.10'} + +# eg. http://www.sqlite.org/2014/sqlite-autoconf-3080600.tar.gz +source_urls = ['http://www.sqlite.org/2015/'] +version_str = '%(version_major)s' + ''.join('%02d' % int(x) for x in version.split('.')[1:]) +sources = ['sqlite-autoconf-%s.tar.gz' % version_str] + +dependencies = [ + ('libreadline', '6.3'), + ('Tcl', '8.6.4'), +] + +parallel = 1 + +sanity_check_paths = { + 'files': ['bin/sqlite3', 'include/sqlite3ext.h', 'include/sqlite3.h', 'lib/libsqlite3.a', 'lib/libsqlite3.%s' % SHLIB_EXT], + 'dirs': ['lib/pkgconfig'], +} + +moduleclass = 'devel' diff --git a/s/SQLite/SQLite-3.8.10.2-goolf-1.7.20.eb b/s/SQLite/SQLite-3.8.10.2-goolf-1.7.20.eb new file mode 100644 index 00000000..e06537d4 --- /dev/null +++ b/s/SQLite/SQLite-3.8.10.2-goolf-1.7.20.eb @@ -0,0 +1,40 @@ +## +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# +# Copyright:: Copyright 2012-2014 Uni.Lu/LCSB, NTUA +# Authors:: Fotis Georgatos +# 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/ +## + +easyblock = 'ConfigureMake' + +name = 'SQLite' +version = '3.8.10.2' + +homepage = 'http://www.sqlite.org/' +description = 'SQLite: SQL Database Engine in a C Library' + +toolchain = {'name': 'goolf', 'version': '1.7.20'} + +# eg. http://www.sqlite.org/2014/sqlite-autoconf-3080600.tar.gz +source_urls = ['http://www.sqlite.org/2015/'] +version_str = '%(version_major)s' + ''.join('%02d' % int(x) for x in version.split('.')[1:]) +sources = ['sqlite-autoconf-%s.tar.gz' % version_str] + +dependencies = [ + ('libreadline', '6.3'), + ('Tcl', '8.6.4'), +] + +parallel = 1 + +sanity_check_paths = { + 'files': ['bin/sqlite3', 'include/sqlite3ext.h', 'include/sqlite3.h', 'lib/libsqlite3.a', 'lib/libsqlite3.%s' % SHLIB_EXT], + 'dirs': ['lib/pkgconfig'], +} + +moduleclass = 'devel' diff --git a/s/SQLite/SQLite-3.8.10.2-intel-2015a.eb b/s/SQLite/SQLite-3.8.10.2-intel-2015a.eb new file mode 100644 index 00000000..17d369e5 --- /dev/null +++ b/s/SQLite/SQLite-3.8.10.2-intel-2015a.eb @@ -0,0 +1,40 @@ +## +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# +# Copyright:: Copyright 2012-2014 Uni.Lu/LCSB, NTUA +# Authors:: Fotis Georgatos +# 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/ +## + +easyblock = 'ConfigureMake' + +name = 'SQLite' +version = '3.8.10.2' + +homepage = 'http://www.sqlite.org/' +description = 'SQLite: SQL Database Engine in a C Library' + +toolchain = {'name': 'intel', 'version': '2015a'} + +# eg. http://www.sqlite.org/2014/sqlite-autoconf-3080600.tar.gz +source_urls = ['http://www.sqlite.org/2015/'] +version_str = '%(version_major)s' + ''.join('%02d' % int(x) for x in version.split('.')[1:]) +sources = ['sqlite-autoconf-%s.tar.gz' % version_str] + +dependencies = [ + ('libreadline', '6.3'), + ('Tcl', '8.6.4'), +] + +parallel = 1 + +sanity_check_paths = { + 'files': ['bin/sqlite3', 'include/sqlite3ext.h', 'include/sqlite3.h', 'lib/libsqlite3.a', 'lib/libsqlite3.%s' % SHLIB_EXT], + 'dirs': ['lib/pkgconfig'], +} + +moduleclass = 'devel' diff --git a/s/SQLite/SQLite-3.8.10.2-intel-2015b.eb b/s/SQLite/SQLite-3.8.10.2-intel-2015b.eb new file mode 100644 index 00000000..26439e2d --- /dev/null +++ b/s/SQLite/SQLite-3.8.10.2-intel-2015b.eb @@ -0,0 +1,40 @@ +## +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# +# Copyright:: Copyright 2012-2014 Uni.Lu/LCSB, NTUA +# Authors:: Fotis Georgatos +# 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/ +## + +easyblock = 'ConfigureMake' + +name = 'SQLite' +version = '3.8.10.2' + +homepage = 'http://www.sqlite.org/' +description = 'SQLite: SQL Database Engine in a C Library' + +toolchain = {'name': 'intel', 'version': '2015b'} + +# eg. http://www.sqlite.org/2014/sqlite-autoconf-3080600.tar.gz +source_urls = ['http://www.sqlite.org/2015/'] +version_str = '%(version_major)s' + ''.join('%02d' % int(x) for x in version.split('.')[1:]) +sources = ['sqlite-autoconf-%s.tar.gz' % version_str] + +dependencies = [ + ('libreadline', '6.3'), + ('Tcl', '8.6.4'), +] + +parallel = 1 + +sanity_check_paths = { + 'files': ['bin/sqlite3', 'include/sqlite3ext.h', 'include/sqlite3.h', 'lib/libsqlite3.a', 'lib/libsqlite3.%s' % SHLIB_EXT], + 'dirs': ['lib/pkgconfig'], +} + +moduleclass = 'devel' diff --git a/s/SQLite/SQLite-3.8.4.1-goolf-1.4.10.eb b/s/SQLite/SQLite-3.8.4.1-goolf-1.4.10.eb new file mode 100644 index 00000000..5d1c8946 --- /dev/null +++ b/s/SQLite/SQLite-3.8.4.1-goolf-1.4.10.eb @@ -0,0 +1,36 @@ +## +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# +# Copyright:: Copyright 2012-2013 University of Luxembourg/Luxembourg Centre for Systems Biomedicine +# Authors:: Fotis Georgatos +# 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/ +## +easyblock = 'ConfigureMake' + +name = 'SQLite' +version = '3.8.4.1' + +homepage = 'http://www.hwaci.com/sw/sqlite/' +description = "SQLite: SQL Database Engine in a C Library" + +# eg. http://www.hwaci.com/sw/sqlite/2013/sqlite-autoconf-3080100.tar.gz +source_urls = ['http://www.hwaci.com/sw/sqlite/2014'] +sources = ['sqlite-autoconf-%s0%s0%s0%s.tar.gz' % tuple(version.split('.'))] # very weird way to calculate your filename + +toolchain = {'name': 'goolf', 'version': '1.4.10'} + +dependencies = [ + ('libreadline', '6.2'), + ('Tcl', '8.6.1'), +] + +sanity_check_paths = { + 'files': ['bin/sqlite3'], + 'dirs': [], +} + +moduleclass = 'devel' diff --git a/s/SQLite/SQLite-3.8.8.1-GNU-5.1.0-2.25.eb b/s/SQLite/SQLite-3.8.8.1-GNU-5.1.0-2.25.eb new file mode 100644 index 00000000..ddb7bd02 --- /dev/null +++ b/s/SQLite/SQLite-3.8.8.1-GNU-5.1.0-2.25.eb @@ -0,0 +1,38 @@ +## +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# +# Copyright:: Copyright 2012-2014 Uni.Lu/LCSB, NTUA +# Authors:: Fotis Georgatos +# 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/ +## + +easyblock = 'ConfigureMake' + +name = 'SQLite' +version = '3.8.8.1' + +homepage = 'http://www.sqlite.org/' +description = 'SQLite: SQL Database Engine in a C Library' + +toolchain = {'name': 'GNU', 'version': '5.1.0-2.25'} + +# eg. http://www.sqlite.org/2014/sqlite-autoconf-3080600.tar.gz +source_urls = ['http://www.sqlite.org/2015/'] +version_str = '%(version_major)s' + ''.join('%02d' % int(x) for x in version.split('.')[1:]) +sources = ['sqlite-autoconf-%s.tar.gz' % version_str] + +dependencies = [ + ('libreadline', '6.3'), + ('Tcl', '8.6.3'), +] + +sanity_check_paths = { + 'files': ['bin/sqlite3'], + 'dirs': [], +} + +moduleclass = 'devel' diff --git a/s/SQLite/SQLite-3.8.8.1-foss-2015g.eb b/s/SQLite/SQLite-3.8.8.1-foss-2015g.eb new file mode 100644 index 00000000..3fc8a2b9 --- /dev/null +++ b/s/SQLite/SQLite-3.8.8.1-foss-2015g.eb @@ -0,0 +1,40 @@ +## +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# +# Copyright:: Copyright 2012-2014 Uni.Lu/LCSB, NTUA +# Authors:: Fotis Georgatos +# 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/ +## + +easyblock = 'ConfigureMake' + +name = 'SQLite' +version = '3.8.8.1' + +homepage = 'http://www.sqlite.org/' +description = 'SQLite: SQL Database Engine in a C Library' + +toolchain = {'name': 'foss', 'version': '2015g'} + +# eg. http://www.sqlite.org/2014/sqlite-autoconf-3080600.tar.gz +source_urls = ['http://www.sqlite.org/2015/'] +version_str = '%(version_major)s' + ''.join('%02d' % int(x) for x in version.split('.')[1:]) +sources = ['sqlite-autoconf-%s.tar.gz' % version_str] + +patches = ['enable_column_metadata.patch'] + +dependencies = [ + ('libreadline', '6.3'), + ('Tcl', '8.6.3'), +] + +sanity_check_paths = { + 'files': ['bin/sqlite3'], + 'dirs': [], +} + +moduleclass = 'devel' diff --git a/s/SQLite/SQLite-3.8.8.1-foss-2016a.eb b/s/SQLite/SQLite-3.8.8.1-foss-2016a.eb new file mode 100644 index 00000000..35d4d5ee --- /dev/null +++ b/s/SQLite/SQLite-3.8.8.1-foss-2016a.eb @@ -0,0 +1,38 @@ +## +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# +# Copyright:: Copyright 2012-2014 Uni.Lu/LCSB, NTUA +# Authors:: Fotis Georgatos +# 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/ +## + +easyblock = 'ConfigureMake' + +name = 'SQLite' +version = '3.8.8.1' + +homepage = 'http://www.sqlite.org/' +description = 'SQLite: SQL Database Engine in a C Library' + +toolchain = {'name': 'foss', 'version': '2016a'} + +# eg. http://www.sqlite.org/2014/sqlite-autoconf-3080600.tar.gz +source_urls = ['http://www.sqlite.org/2015/'] +version_str = '%(version_major)s' + ''.join('%02d' % int(x) for x in version.split('.')[1:]) +sources = ['sqlite-autoconf-%s.tar.gz' % version_str] + +dependencies = [ + ('libreadline', '6.3'), + ('Tcl', '8.6.3'), +] + +sanity_check_paths = { + 'files': ['bin/sqlite3'], + 'dirs': [], +} + +moduleclass = 'devel' diff --git a/s/SQLite/SQLite-3.8.8.1-gompi-2015e.eb b/s/SQLite/SQLite-3.8.8.1-gompi-2015e.eb new file mode 100644 index 00000000..9e522f20 --- /dev/null +++ b/s/SQLite/SQLite-3.8.8.1-gompi-2015e.eb @@ -0,0 +1,38 @@ +## +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# +# Copyright:: Copyright 2012-2014 Uni.Lu/LCSB, NTUA +# Authors:: Fotis Georgatos +# 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/ +## + +easyblock = 'ConfigureMake' + +name = 'SQLite' +version = '3.8.8.1' + +homepage = 'http://www.sqlite.org/' +description = 'SQLite: SQL Database Engine in a C Library' + +toolchain = {'name': 'gompi', 'version': '2015e'} + +# eg. http://www.sqlite.org/2014/sqlite-autoconf-3080600.tar.gz +source_urls = ['http://www.sqlite.org/2015/'] +version_str = '%(version_major)s' + ''.join('%02d' % int(x) for x in version.split('.')[1:]) +sources = ['sqlite-autoconf-%s.tar.gz' % version_str] + +dependencies = [ + ('libreadline', '6.3'), + ('Tcl', '8.6.3'), +] + +sanity_check_paths = { + 'files': ['bin/sqlite3'], + 'dirs': [], +} + +moduleclass = 'devel' diff --git a/s/SQLite/SQLite-3.8.8.1-ictce-7.3.5.eb b/s/SQLite/SQLite-3.8.8.1-ictce-7.3.5.eb new file mode 100644 index 00000000..ff72713b --- /dev/null +++ b/s/SQLite/SQLite-3.8.8.1-ictce-7.3.5.eb @@ -0,0 +1,89 @@ +# Built with EasyBuild version 2.1.1 on 2015-08-21_14-44-55 +# Built with EasyBuild version 2.1.1 on 2015-06-29_22-34-48 +## +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# +# Copyright:: Copyright 2012-2014 Uni.Lu/LCSB, NTUA +# Authors:: Fotis Georgatos +# 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/ +## + +easyblock = 'ConfigureMake' + +name = 'SQLite' +version = '3.8.8.1' + +homepage = 'http://www.sqlite.org/' +description = 'SQLite: SQL Database Engine in a C Library' + +toolchain = {'name': 'ictce', 'version': '7.3.5'} + +# eg. http://www.sqlite.org/2014/sqlite-autoconf-3080600.tar.gz +source_urls = ['http://www.sqlite.org/2015/'] +version_str = '%(version_major)s' + ''.join('%02d' % int(x) for x in version.split('.')[1:]) +sources = ['sqlite-autoconf-%s.tar.gz' % version_str] + +dependencies = [ + ('libreadline', '6.3'), + ('Tcl', '8.6.3'), +] + +sanity_check_paths = { + 'files': ['bin/sqlite3'], + 'dirs': [], +} + +moduleclass = 'devel' + +# Build statistics +buildstats = [{ + "easybuild-framework_version": "2.1.1", + "easybuild-easyblocks_version": "2.1.1", + "timestamp": 1435610088, + "build_time": 140.3, + "install_size": 10501121, + "command_line": ['--buildpath=/easybuild/build', '--force', '--installpath=/apps', '--installpath-modules=/apps/modules', '--installpath-software=/apps', '--module-naming-scheme=IT4IModuleNamingScheme', '--modules-footer=/easybuild/templates/modules/jas02_footer.txt', '--repositorypath=/easybuild/file-repository', '--robot=/easybuild/easyconfigs-salomon/easybuild/easyconfigs', '--robot-paths=/easybuild/easyconfigs-salomon/easybuild/easyconfigs', '--sourcepath=/easybuild/sources', '--try-toolchain="[\'intel\', \'2015b\']"', 'Python-2.7.9-intel-2015a.eb'], + "modules_tool": ('EnvironmentModulesC', '/usr/bin/modulecmd', '3.2.10'), + "core_count": 28, + "cpu_model": "Intel(R) Xeon(R) CPU E5-2695 v3 @ 2.30GHz", + "cpu_speed": 2299.882, + "cpu_vendor": "Intel", + "gcc_version": "Using built-in specs.; COLLECT_GCC=gcc; COLLECT_LTO_WRAPPER=/apps/all/GCC/5.1.0-binutils-2.25/libexec/gcc/x86_64-unknown-linux-gnu/5.1.0/lto-wrapper; Target: x86_64-unknown-linux-gnu; Configured with: ../configure --enable-languages=c,c++,fortran --enable-lto --enable-checking=release --disable-multilib --enable-shared=yes --enable-static=yes --enable-threads=posix --enable-gold=default --enable-plugins --enable-ld --with-plugin-ld=ld.gold --prefix=/apps/all/GCC/5.1.0-binutils-2.25 --with-local-prefix=/apps/all/GCC/5.1.0-binutils-2.25 --enable-bootstrap --with-isl=/easybuild/build/GCC/5.1.0/dummy--binutils-2.25/gcc-5.1.0/stage2_stuff; Thread model: posix; gcc version 5.1.0 (GCC) ; ", + "glibc_version": "2.12", + "hostname": "login2", + "os_name": "centos", + "os_type": "Linux", + "os_version": "6.6", + "platform_name": "x86_64-unknown-linux", + "python_version": "2.6.6 (r266:84292, Jan 22 2014, 09:42:36) ; [GCC 4.4.7 20120313 (Red Hat 4.4.7-4)]", + "system_gcc_path": "/apps/all/GCC/5.1.0-binutils-2.25/bin/gcc", + "system_python_path": "/usr/bin/python", +}] + +buildstats.append({ + "easybuild-framework_version": "2.1.1", + "easybuild-easyblocks_version": "2.1.1", + "timestamp": 1440161095, + "build_time": 143.6, + "install_size": 10498051, + "command_line": ['--buildpath=/easybuild/build', '--installpath=/apps', '--installpath-modules=/apps/modules', '--installpath-software=/apps', '--module-naming-scheme=IT4IModuleNamingScheme', '--modules-footer=/easybuild/templates/modules/jas02_footer.txt', '--repositorypath=/easybuild/file-repository', '--robot=/easybuild/easyconfigs-salomon/easybuild/easyconfigs', '--robot-paths=/easybuild/easyconfigs-salomon/easybuild/easyconfigs', '--sourcepath=/easybuild/sources', '--try-toolchain="[\'ictce\', \'7.3.5\']"', 'Python-2.7.9-intel-2015b.eb'], + "modules_tool": ('EnvironmentModulesC', '/usr/bin/modulecmd', '3.2.10'), + "core_count": 28, + "cpu_model": "Intel(R) Xeon(R) CPU E5-2695 v3 @ 2.30GHz", + "cpu_speed": 2299.859, + "cpu_vendor": "Intel", + "gcc_version": "Using built-in specs.; Target: x86_64-redhat-linux; Configured with: ../configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --with-bugurl=http://bugzilla.redhat.com/bugzilla --enable-bootstrap --enable-shared --enable-threads=posix --enable-checking=release --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-gnu-unique-object --enable-languages=c,c++,objc,obj-c++,java,fortran,ada --enable-java-awt=gtk --disable-dssi --with-java-home=/usr/lib/jvm/java-1.5.0-gcj-1.5.0.0/jre --enable-libgcj-multifile --enable-java-maintainer-mode --with-ecj-jar=/usr/share/java/eclipse-ecj.jar --disable-libjava-multilib --with-ppl --with-cloog --with-tune=generic --with-arch_32=i686 --build=x86_64-redhat-linux; Thread model: posix; gcc version 4.4.7 20120313 (Red Hat 4.4.7-11) (GCC) ; ", + "glibc_version": "2.12", + "hostname": "login4", + "os_name": "centos", + "os_type": "Linux", + "os_version": "6.6", + "platform_name": "x86_64-unknown-linux", + "python_version": "2.6.6 (r266:84292, Jan 22 2014, 09:42:36) ; [GCC 4.4.7 20120313 (Red Hat 4.4.7-4)]", + "system_gcc_path": "/usr/bin/gcc", + "system_python_path": "/usr/bin/python", +}) diff --git a/s/SQLite/SQLite-3.8.8.1-intel-2015b.eb b/s/SQLite/SQLite-3.8.8.1-intel-2015b.eb new file mode 100644 index 00000000..fa44e993 --- /dev/null +++ b/s/SQLite/SQLite-3.8.8.1-intel-2015b.eb @@ -0,0 +1,64 @@ +# Built with EasyBuild version 2.1.1 on 2015-06-29_22-34-48 +## +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# +# Copyright:: Copyright 2012-2014 Uni.Lu/LCSB, NTUA +# Authors:: Fotis Georgatos +# 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/ +## + +easyblock = 'ConfigureMake' + +name = 'SQLite' +version = '3.8.8.1' + +homepage = 'http://www.sqlite.org/' +description = 'SQLite: SQL Database Engine in a C Library' + +toolchain = {'name': 'intel', 'version': '2015b'} + +# eg. http://www.sqlite.org/2014/sqlite-autoconf-3080600.tar.gz +source_urls = ['http://www.sqlite.org/2015/'] +version_str = '%(version_major)s' + ''.join('%02d' % int(x) for x in version.split('.')[1:]) +sources = ['sqlite-autoconf-%s.tar.gz' % version_str] + +dependencies = [ + ('libreadline', '6.3'), + ('Tcl', '8.6.3'), +] + +sanity_check_paths = { + 'files': ['bin/sqlite3'], + 'dirs': [], +} + +moduleclass = 'devel' + +# Build statistics +buildstats = [{ + "easybuild-framework_version": "2.1.1", + "easybuild-easyblocks_version": "2.1.1", + "timestamp": 1435610088, + "build_time": 140.3, + "install_size": 10501121, + "command_line": ['--buildpath=/easybuild/build', '--force', '--installpath=/apps', '--installpath-modules=/apps/modules', '--installpath-software=/apps', '--module-naming-scheme=IT4IModuleNamingScheme', '--modules-footer=/easybuild/templates/modules/jas02_footer.txt', '--repositorypath=/easybuild/file-repository', '--robot=/easybuild/easyconfigs-salomon/easybuild/easyconfigs', '--robot-paths=/easybuild/easyconfigs-salomon/easybuild/easyconfigs', '--sourcepath=/easybuild/sources', '--try-toolchain="[\'intel\', \'2015b\']"', 'Python-2.7.9-intel-2015a.eb'], + "modules_tool": ('EnvironmentModulesC', '/usr/bin/modulecmd', '3.2.10'), + "core_count": 28, + "cpu_model": "Intel(R) Xeon(R) CPU E5-2695 v3 @ 2.30GHz", + "cpu_speed": 2299.882, + "cpu_vendor": "Intel", + "gcc_version": "Using built-in specs.; COLLECT_GCC=gcc; COLLECT_LTO_WRAPPER=/apps/all/GCC/5.1.0-binutils-2.25/libexec/gcc/x86_64-unknown-linux-gnu/5.1.0/lto-wrapper; Target: x86_64-unknown-linux-gnu; Configured with: ../configure --enable-languages=c,c++,fortran --enable-lto --enable-checking=release --disable-multilib --enable-shared=yes --enable-static=yes --enable-threads=posix --enable-gold=default --enable-plugins --enable-ld --with-plugin-ld=ld.gold --prefix=/apps/all/GCC/5.1.0-binutils-2.25 --with-local-prefix=/apps/all/GCC/5.1.0-binutils-2.25 --enable-bootstrap --with-isl=/easybuild/build/GCC/5.1.0/dummy--binutils-2.25/gcc-5.1.0/stage2_stuff; Thread model: posix; gcc version 5.1.0 (GCC) ; ", + "glibc_version": "2.12", + "hostname": "login2", + "os_name": "centos", + "os_type": "Linux", + "os_version": "6.6", + "platform_name": "x86_64-unknown-linux", + "python_version": "2.6.6 (r266:84292, Jan 22 2014, 09:42:36) ; [GCC 4.4.7 20120313 (Red Hat 4.4.7-4)]", + "system_gcc_path": "/apps/all/GCC/5.1.0-binutils-2.25/bin/gcc", + "system_python_path": "/usr/bin/python", +}] diff --git a/s/SQLite/SQLite-3.9.2-CrayGNU-2015.11.eb b/s/SQLite/SQLite-3.9.2-CrayGNU-2015.11.eb new file mode 100644 index 00000000..429cfc37 --- /dev/null +++ b/s/SQLite/SQLite-3.9.2-CrayGNU-2015.11.eb @@ -0,0 +1,40 @@ +## +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# +# Copyright:: Copyright 2012-2014 Uni.Lu/LCSB, NTUA +# Authors:: Fotis Georgatos +# 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/ +## + +easyblock = 'ConfigureMake' + +name = 'SQLite' +version = '3.9.2' + +homepage = 'http://www.sqlite.org/' +description = 'SQLite: SQL Database Engine in a C Library' + +toolchain = {'name': 'CrayGNU', 'version': '2015.11'} + +# eg. http://www.sqlite.org/2014/sqlite-autoconf-3080600.tar.gz +source_urls = ['http://www.sqlite.org/2015/'] +version_str = '%%(version_major)s%s00' % ''.join('%02d' % int(x) for x in version.split('.')[1:]) +sources = ['sqlite-autoconf-%s.tar.gz' % version_str] + +dependencies = [ + ('libreadline', '6.3'), + ('Tcl', '8.6.4'), +] + +parallel = 1 + +sanity_check_paths = { + 'files': ['bin/sqlite3', 'include/sqlite3ext.h', 'include/sqlite3.h', 'lib/libsqlite3.a', 'lib/libsqlite3.%s' % SHLIB_EXT], + 'dirs': ['lib/pkgconfig'], +} + +moduleclass = 'devel' diff --git a/s/SQLite/SQLite-3.9.2-CrayGNU-2016.03.eb b/s/SQLite/SQLite-3.9.2-CrayGNU-2016.03.eb new file mode 100644 index 00000000..51941069 --- /dev/null +++ b/s/SQLite/SQLite-3.9.2-CrayGNU-2016.03.eb @@ -0,0 +1,40 @@ +## +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# +# Copyright:: Copyright 2012-2014 Uni.Lu/LCSB, NTUA +# Authors:: Fotis Georgatos +# 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/ +## + +easyblock = 'ConfigureMake' + +name = 'SQLite' +version = '3.9.2' + +homepage = 'http://www.sqlite.org/' +description = 'SQLite: SQL Database Engine in a C Library' + +toolchain = {'name': 'CrayGNU', 'version': '2016.03'} + +# eg. http://www.sqlite.org/2014/sqlite-autoconf-3080600.tar.gz +source_urls = ['http://www.sqlite.org/2015/'] +version_str = '%%(version_major)s%s00' % ''.join('%02d' % int(x) for x in version.split('.')[1:]) +sources = ['sqlite-autoconf-%s.tar.gz' % version_str] + +dependencies = [ + ('libreadline', '6.3'), + ('Tcl', '8.6.4'), +] + +parallel = 1 + +sanity_check_paths = { + 'files': ['bin/sqlite3', 'include/sqlite3ext.h', 'include/sqlite3.h', 'lib/libsqlite3.a', 'lib/libsqlite3.%s' % SHLIB_EXT], + 'dirs': ['lib/pkgconfig'], +} + +moduleclass = 'devel' diff --git a/s/SQLite/SQLite-3.9.2-foss-2016a.eb b/s/SQLite/SQLite-3.9.2-foss-2016a.eb new file mode 100644 index 00000000..47bee4f6 --- /dev/null +++ b/s/SQLite/SQLite-3.9.2-foss-2016a.eb @@ -0,0 +1,40 @@ +## +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# +# Copyright:: Copyright 2012-2014 Uni.Lu/LCSB, NTUA +# Authors:: Fotis Georgatos +# 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/ +## + +easyblock = 'ConfigureMake' + +name = 'SQLite' +version = '3.9.2' + +homepage = 'http://www.sqlite.org/' +description = 'SQLite: SQL Database Engine in a C Library' + +toolchain = {'name': 'foss', 'version': '2016a'} + +# eg. http://www.sqlite.org/2014/sqlite-autoconf-3080600.tar.gz +source_urls = ['http://www.sqlite.org/2015/'] +version_str = '%%(version_major)s%s00' % ''.join('%02d' % int(x) for x in version.split('.')[1:]) +sources = ['sqlite-autoconf-%s.tar.gz' % version_str] + +dependencies = [ + ('libreadline', '6.3'), + ('Tcl', '8.6.4'), +] + +parallel = 1 + +sanity_check_paths = { + 'files': ['bin/sqlite3', 'include/sqlite3ext.h', 'include/sqlite3.h', 'lib/libsqlite3.a', 'lib/libsqlite3.%s' % SHLIB_EXT], + 'dirs': ['lib/pkgconfig'], +} + +moduleclass = 'devel' diff --git a/s/SQLite/SQLite-3.9.2-foss-2017a.eb b/s/SQLite/SQLite-3.9.2-foss-2017a.eb new file mode 100644 index 00000000..596c4deb --- /dev/null +++ b/s/SQLite/SQLite-3.9.2-foss-2017a.eb @@ -0,0 +1,40 @@ +## +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# +# Copyright:: Copyright 2012-2014 Uni.Lu/LCSB, NTUA +# Authors:: Fotis Georgatos +# 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/ +## + +easyblock = 'ConfigureMake' + +name = 'SQLite' +version = '3.9.2' + +homepage = 'http://www.sqlite.org/' +description = 'SQLite: SQL Database Engine in a C Library' + +toolchain = {'name': 'foss', 'version': '2017a'} + +# eg. http://www.sqlite.org/2014/sqlite-autoconf-3080600.tar.gz +source_urls = ['http://www.sqlite.org/2015/'] +version_str = '%%(version_major)s%s00' % ''.join('%02d' % int(x) for x in version.split('.')[1:]) +sources = ['sqlite-autoconf-%s.tar.gz' % version_str] + +dependencies = [ + ('libreadline', '6.3'), + ('Tcl', '8.6.6', '', ('GCCcore', '6.3.0')), +] + +parallel = 1 + +sanity_check_paths = { + 'files': ['bin/sqlite3', 'include/sqlite3ext.h', 'include/sqlite3.h', 'lib/libsqlite3.a', 'lib/libsqlite3.%s' % SHLIB_EXT], + 'dirs': ['lib/pkgconfig'], +} + +moduleclass = 'devel' diff --git a/s/SQLite/SQLite-3.9.2-gimkl-2.11.5.eb b/s/SQLite/SQLite-3.9.2-gimkl-2.11.5.eb new file mode 100644 index 00000000..8d257ce6 --- /dev/null +++ b/s/SQLite/SQLite-3.9.2-gimkl-2.11.5.eb @@ -0,0 +1,40 @@ +## +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# +# Copyright:: Copyright 2012-2014 Uni.Lu/LCSB, NTUA +# Authors:: Fotis Georgatos +# 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/ +## + +easyblock = 'ConfigureMake' + +name = 'SQLite' +version = '3.9.2' + +homepage = 'http://www.sqlite.org/' +description = 'SQLite: SQL Database Engine in a C Library' + +toolchain = {'name': 'gimkl', 'version': '2.11.5'} + +# eg. http://www.sqlite.org/2014/sqlite-autoconf-3080600.tar.gz +source_urls = ['http://www.sqlite.org/2015/'] +version_str = '%%(version_major)s%s00' % ''.join('%02d' % int(x) for x in version.split('.')[1:]) +sources = ['sqlite-autoconf-%s.tar.gz' % version_str] + +dependencies = [ + ('libreadline', '6.3'), + ('Tcl', '8.6.4'), +] + +parallel = 1 + +sanity_check_paths = { + 'files': ['bin/sqlite3', 'include/sqlite3ext.h', 'include/sqlite3.h', 'lib/libsqlite3.a', 'lib/libsqlite3.%s' % SHLIB_EXT], + 'dirs': ['lib/pkgconfig'], +} + +moduleclass = 'devel' diff --git a/s/SQLite/SQLite-3.9.2-goolf-1.7.20.eb b/s/SQLite/SQLite-3.9.2-goolf-1.7.20.eb new file mode 100644 index 00000000..c1e564bf --- /dev/null +++ b/s/SQLite/SQLite-3.9.2-goolf-1.7.20.eb @@ -0,0 +1,40 @@ +## +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# +# Copyright:: Copyright 2012-2014 Uni.Lu/LCSB, NTUA +# Authors:: Fotis Georgatos +# 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/ +## + +easyblock = 'ConfigureMake' + +name = 'SQLite' +version = '3.9.2' + +homepage = 'http://www.sqlite.org/' +description = 'SQLite: SQL Database Engine in a C Library' + +toolchain = {'name': 'goolf', 'version': '1.7.20'} + +# eg. http://www.sqlite.org/2014/sqlite-autoconf-3080600.tar.gz +source_urls = ['http://www.sqlite.org/2015/'] +version_str = '%%(version_major)s%s00' % ''.join('%02d' % int(x) for x in version.split('.')[1:]) +sources = ['sqlite-autoconf-%s.tar.gz' % version_str] + +dependencies = [ + ('libreadline', '6.3'), + ('Tcl', '8.6.4'), +] + +parallel = 1 + +sanity_check_paths = { + 'files': ['bin/sqlite3', 'include/sqlite3ext.h', 'include/sqlite3.h', 'lib/libsqlite3.a', 'lib/libsqlite3.%s' % SHLIB_EXT], + 'dirs': ['lib/pkgconfig'], +} + +moduleclass = 'devel' diff --git a/s/SQLite/SQLite-3.9.2-intel-2015b.eb b/s/SQLite/SQLite-3.9.2-intel-2015b.eb new file mode 100644 index 00000000..79c12310 --- /dev/null +++ b/s/SQLite/SQLite-3.9.2-intel-2015b.eb @@ -0,0 +1,40 @@ +## +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# +# Copyright:: Copyright 2012-2014 Uni.Lu/LCSB, NTUA +# Authors:: Fotis Georgatos +# 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/ +## + +easyblock = 'ConfigureMake' + +name = 'SQLite' +version = '3.9.2' + +homepage = 'http://www.sqlite.org/' +description = 'SQLite: SQL Database Engine in a C Library' + +toolchain = {'name': 'intel', 'version': '2015b'} + +# eg. http://www.sqlite.org/2014/sqlite-autoconf-3080600.tar.gz +source_urls = ['http://www.sqlite.org/2015/'] +version_str = '%%(version_major)s%s00' % ''.join('%02d' % int(x) for x in version.split('.')[1:]) +sources = ['sqlite-autoconf-%s.tar.gz' % version_str] + +dependencies = [ + ('libreadline', '6.3'), + ('Tcl', '8.6.4'), +] + +parallel = 1 + +sanity_check_paths = { + 'files': ['bin/sqlite3', 'include/sqlite3ext.h', 'include/sqlite3.h', 'lib/libsqlite3.a', 'lib/libsqlite3.%s' % SHLIB_EXT], + 'dirs': ['lib/pkgconfig'], +} + +moduleclass = 'devel' diff --git a/s/SQLite/SQLite-3.9.2-intel-2016.02-GCC-4.9.eb b/s/SQLite/SQLite-3.9.2-intel-2016.02-GCC-4.9.eb new file mode 100644 index 00000000..3555a7ac --- /dev/null +++ b/s/SQLite/SQLite-3.9.2-intel-2016.02-GCC-4.9.eb @@ -0,0 +1,40 @@ +## +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# +# Copyright:: Copyright 2012-2014 Uni.Lu/LCSB, NTUA +# Authors:: Fotis Georgatos +# 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/ +## + +easyblock = 'ConfigureMake' + +name = 'SQLite' +version = '3.9.2' + +homepage = 'http://www.sqlite.org/' +description = 'SQLite: SQL Database Engine in a C Library' + +toolchain = {'name': 'intel', 'version': '2016.02-GCC-4.9'} + +# eg. http://www.sqlite.org/2014/sqlite-autoconf-3080600.tar.gz +source_urls = ['http://www.sqlite.org/2015/'] +version_str = '%%(version_major)s%s00' % ''.join('%02d' % int(x) for x in version.split('.')[1:]) +sources = ['sqlite-autoconf-%s.tar.gz' % version_str] + +dependencies = [ + ('libreadline', '6.3'), + ('Tcl', '8.6.4'), +] + +parallel = 1 + +sanity_check_paths = { + 'files': ['bin/sqlite3', 'include/sqlite3ext.h', 'include/sqlite3.h', 'lib/libsqlite3.a', 'lib/libsqlite3.%s' % SHLIB_EXT], + 'dirs': ['lib/pkgconfig'], +} + +moduleclass = 'devel' diff --git a/s/SQLite/SQLite-3.9.2-intel-2016a.eb b/s/SQLite/SQLite-3.9.2-intel-2016a.eb new file mode 100644 index 00000000..a35ea6d2 --- /dev/null +++ b/s/SQLite/SQLite-3.9.2-intel-2016a.eb @@ -0,0 +1,40 @@ +## +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# +# Copyright:: Copyright 2012-2014 Uni.Lu/LCSB, NTUA +# Authors:: Fotis Georgatos +# 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/ +## + +easyblock = 'ConfigureMake' + +name = 'SQLite' +version = '3.9.2' + +homepage = 'http://www.sqlite.org/' +description = 'SQLite: SQL Database Engine in a C Library' + +toolchain = {'name': 'intel', 'version': '2016a'} + +# eg. http://www.sqlite.org/2014/sqlite-autoconf-3080600.tar.gz +source_urls = ['http://www.sqlite.org/2015/'] +version_str = '%%(version_major)s%s00' % ''.join('%02d' % int(x) for x in version.split('.')[1:]) +sources = ['sqlite-autoconf-%s.tar.gz' % version_str] + +dependencies = [ + ('libreadline', '6.3'), + ('Tcl', '8.6.4'), +] + +parallel = 1 + +sanity_check_paths = { + 'files': ['bin/sqlite3', 'include/sqlite3ext.h', 'include/sqlite3.h', 'lib/libsqlite3.a', 'lib/libsqlite3.%s' % SHLIB_EXT], + 'dirs': ['lib/pkgconfig'], +} + +moduleclass = 'devel' diff --git a/s/SQLite/SQLite-3.9.2-intel-2017.00.eb b/s/SQLite/SQLite-3.9.2-intel-2017.00.eb new file mode 100644 index 00000000..94643bff --- /dev/null +++ b/s/SQLite/SQLite-3.9.2-intel-2017.00.eb @@ -0,0 +1,40 @@ +## +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# +# Copyright:: Copyright 2012-2014 Uni.Lu/LCSB, NTUA +# Authors:: Fotis Georgatos +# 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/ +## + +easyblock = 'ConfigureMake' + +name = 'SQLite' +version = '3.9.2' + +homepage = 'http://www.sqlite.org/' +description = 'SQLite: SQL Database Engine in a C Library' + +toolchain = {'name': 'intel', 'version': '2017.00'} + +# eg. http://www.sqlite.org/2014/sqlite-autoconf-3080600.tar.gz +source_urls = ['http://www.sqlite.org/2015/'] +version_str = '%%(version_major)s%s00' % ''.join('%02d' % int(x) for x in version.split('.')[1:]) +sources = ['sqlite-autoconf-%s.tar.gz' % version_str] + +dependencies = [ + ('libreadline', '6.3'), + ('Tcl', '8.6.4'), +] + +parallel = 1 + +sanity_check_paths = { + 'files': ['bin/sqlite3', 'include/sqlite3ext.h', 'include/sqlite3.h', 'lib/libsqlite3.a', 'lib/libsqlite3.%s' % SHLIB_EXT], + 'dirs': ['lib/pkgconfig'], +} + +moduleclass = 'devel' diff --git a/s/SQLite/SQLite-3.9.2-iomkl-2016.07.eb b/s/SQLite/SQLite-3.9.2-iomkl-2016.07.eb new file mode 100644 index 00000000..4eb223b1 --- /dev/null +++ b/s/SQLite/SQLite-3.9.2-iomkl-2016.07.eb @@ -0,0 +1,40 @@ +## +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# +# Copyright:: Copyright 2012-2014 Uni.Lu/LCSB, NTUA +# Authors:: Fotis Georgatos +# 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/ +## + +easyblock = 'ConfigureMake' + +name = 'SQLite' +version = '3.9.2' + +homepage = 'http://www.sqlite.org/' +description = 'SQLite: SQL Database Engine in a C Library' + +toolchain = {'name': 'iomkl', 'version': '2016.07'} + +# eg. http://www.sqlite.org/2014/sqlite-autoconf-3080600.tar.gz +source_urls = ['http://www.sqlite.org/2015/'] +version_str = '%%(version_major)s%s00' % ''.join('%02d' % int(x) for x in version.split('.')[1:]) +sources = ['sqlite-autoconf-%s.tar.gz' % version_str] + +dependencies = [ + ('libreadline', '6.3'), + ('Tcl', '8.6.4'), +] + +parallel = 1 + +sanity_check_paths = { + 'files': ['bin/sqlite3', 'include/sqlite3ext.h', 'include/sqlite3.h', 'lib/libsqlite3.a', 'lib/libsqlite3.%s' % SHLIB_EXT], + 'dirs': ['lib/pkgconfig'], +} + +moduleclass = 'devel' diff --git a/s/SQLite/SQLite-3.9.2-iomkl-2016.09-GCC-4.9.3-2.25.eb b/s/SQLite/SQLite-3.9.2-iomkl-2016.09-GCC-4.9.3-2.25.eb new file mode 100644 index 00000000..e099c4dd --- /dev/null +++ b/s/SQLite/SQLite-3.9.2-iomkl-2016.09-GCC-4.9.3-2.25.eb @@ -0,0 +1,40 @@ +## +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# +# Copyright:: Copyright 2012-2014 Uni.Lu/LCSB, NTUA +# Authors:: Fotis Georgatos +# 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/ +## + +easyblock = 'ConfigureMake' + +name = 'SQLite' +version = '3.9.2' + +homepage = 'http://www.sqlite.org/' +description = 'SQLite: SQL Database Engine in a C Library' + +toolchain = {'name': 'iomkl', 'version': '2016.09-GCC-4.9.3-2.25'} + +# eg. http://www.sqlite.org/2014/sqlite-autoconf-3080600.tar.gz +source_urls = ['http://www.sqlite.org/2015/'] +version_str = '%%(version_major)s%s00' % ''.join('%02d' % int(x) for x in version.split('.')[1:]) +sources = ['sqlite-autoconf-%s.tar.gz' % version_str] + +dependencies = [ + ('libreadline', '6.3'), + ('Tcl', '8.6.4'), +] + +parallel = 1 + +sanity_check_paths = { + 'files': ['bin/sqlite3', 'include/sqlite3ext.h', 'include/sqlite3.h', 'lib/libsqlite3.a', 'lib/libsqlite3.%s' % SHLIB_EXT], + 'dirs': ['lib/pkgconfig'], +} + +moduleclass = 'devel' diff --git a/s/SQLite/enable_column_metadata.patch b/s/SQLite/enable_column_metadata.patch new file mode 100644 index 00000000..65bc489a --- /dev/null +++ b/s/SQLite/enable_column_metadata.patch @@ -0,0 +1,12 @@ +diff --git a/sqlite3.c b/sqlite3.c +index cae0c4a..f617430 100644 +--- a/sqlite3.c ++++ b/sqlite3.c +@@ -25,6 +25,7 @@ + #ifndef SQLITE_API + # define SQLITE_API + #endif ++#define SQLITE_ENABLE_COLUMN_METADATA 1 + /************** Begin file sqliteInt.h ***************************************/ + /* + ** 2001 September 15 diff --git a/s/STAR-Fusion/STAR-Fusion-0.6.0-goolf-1.4.10-Perl-5.16.3.eb b/s/STAR-Fusion/STAR-Fusion-0.6.0-goolf-1.4.10-Perl-5.16.3.eb new file mode 100644 index 00000000..58fcb58c --- /dev/null +++ b/s/STAR-Fusion/STAR-Fusion-0.6.0-goolf-1.4.10-Perl-5.16.3.eb @@ -0,0 +1,52 @@ +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# Author: Pablo Escobar Lopez +# sciCORE - University of Basel +# SIB Swiss Institute of Bioinformatics + +easyblock = 'Tarball' + +name = 'STAR-Fusion' +version = '0.6.0' +versionsuffix = '-Perl-%(perlver)s' + +homepage = 'https://github.com/STAR-Fusion/STAR-Fusion' +description = """STAR-Fusion uses the STAR aligner to identify candidate fusion transcripts + supported by Illumina reads. STAR-Fusion further processes the output generated by the STAR aligner + to map junction reads and spanning reads to a reference annotation set.""" + +toolchain = {'name': 'goolf', 'version': '1.4.10'} + +source_urls = ['https://github.com/STAR-Fusion/STAR-Fusion/releases/download/v%(version)s/'] +sources = ['%(name)s_v%(version)s.FULL.tar.gz'] + +dependencies = [ + ('Perl', '5.16.3'), + ('STAR', '2.5.1b'), +] + +# these are the perl libraries dependencies +exts_defaultclass = 'PerlModule' +exts_filter = ("perldoc -lm %(ext_name)s ", "") + +exts_list = [ + ('Set::IntervalTree', '0.10', { + 'source_tmpl': 'Set-IntervalTree-0.10.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/B/BE/BENBOOTH/'], + }), + ('DB_File', '1.835', { + 'source_tmpl': 'DB_File-1.835.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/P/PM/PMQS/'], + }), +] + +modextrapaths = { + 'PATH': "", # add installation dir to PATH + 'PERL5LIB': 'lib/perl5/site_perl/%(perlver)s/' +} + +sanity_check_paths = { + 'files': ['STAR-Fusion'], + 'dirs': [] +} + +moduleclass = 'bio' diff --git a/s/STAR/STAR-2.5.0a-GNU-4.9.3-2.25.eb b/s/STAR/STAR-2.5.0a-GNU-4.9.3-2.25.eb new file mode 100644 index 00000000..b6190397 --- /dev/null +++ b/s/STAR/STAR-2.5.0a-GNU-4.9.3-2.25.eb @@ -0,0 +1,38 @@ +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# Author: Pablo Escobar Lopez +# sciCORE - University of Basel +# SIB Swiss Institute of Bioinformatics + +easyblock = 'MakeCp' + +name = 'STAR' +version = '2.5.0a' + +homepage = 'https://github.com/alexdobin/STAR' +description = """ STAR aligns RNA-seq reads to a reference genome using + uncompressed suffix arrays. """ + +toolchain = {'name': 'GNU', 'version': '4.9.3-2.25'} +toolchainopts = {'openmp': True} + +source_urls = ['https://github.com/alexdobin/STAR/archive/'] +sources = ['%(name)s_%(version)s.tar.gz'] + +dependencies = [ + ('zlib', '1.2.8'), +] + +start_dir = 'source' + +buildopts = ' STAR && make STARlong' + +parallel = 1 + +files_to_copy = [(["source/STAR", "source/STARlong"], "bin"), "CHANGES.md", "doc", "extras", "LICENSE", "README.md", "RELEASEnotes.md"] + +sanity_check_paths = { + 'files': ["bin/STAR", "bin/STARlong"], + 'dirs': [], +} + +moduleclass = 'bio' diff --git a/s/STAR/STAR-2.5.0a-goolf-1.4.10.eb b/s/STAR/STAR-2.5.0a-goolf-1.4.10.eb new file mode 100644 index 00000000..ee25be84 --- /dev/null +++ b/s/STAR/STAR-2.5.0a-goolf-1.4.10.eb @@ -0,0 +1,38 @@ +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# Author: Pablo Escobar Lopez +# sciCORE - University of Basel +# SIB Swiss Institute of Bioinformatics + +easyblock = 'MakeCp' + +name = 'STAR' +version = '2.5.0a' + +homepage = 'https://github.com/alexdobin/STAR' +description = """ STAR aligns RNA-seq reads to a reference genome using + uncompressed suffix arrays. """ + +toolchain = {'name': 'goolf', 'version': '1.4.10'} +toolchainopts = {'openmp': True} + +source_urls = ['https://github.com/alexdobin/STAR/archive/'] +sources = ['%(name)s_%(version)s.tar.gz'] + +dependencies = [ + ('zlib', '1.2.8'), +] + +start_dir = 'source' + +buildopts = ' STAR && make STARlong' + +parallel = 1 + +files_to_copy = [(["source/STAR", "source/STARlong"], "bin"), "CHANGES.md", "doc", "extras", "LICENSE", "README.md", "RELEASEnotes.md"] + +sanity_check_paths = { + 'files': ["bin/STAR", "bin/STARlong"], + 'dirs': [], +} + +moduleclass = 'bio' diff --git a/s/STAR/STAR-2.5.1b-foss-2015b.eb b/s/STAR/STAR-2.5.1b-foss-2015b.eb new file mode 100644 index 00000000..406fea60 --- /dev/null +++ b/s/STAR/STAR-2.5.1b-foss-2015b.eb @@ -0,0 +1,40 @@ +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# Author: Pablo Escobar Lopez +# sciCORE - University of Basel +# SIB Swiss Institute of Bioinformatics +# Author: Adam Huffman +# The Francis Crick Institute + +easyblock = 'MakeCp' + +name = 'STAR' +version = '2.5.1b' + +homepage = 'https://github.com/alexdobin/STAR' +description = """ STAR aligns RNA-seq reads to a reference genome using + uncompressed suffix arrays. """ + +toolchain = {'name': 'foss', 'version': '2015b'} +toolchainopts = {'openmp': True} + +source_urls = ['https://github.com/alexdobin/STAR/archive/'] +sources = ['%(version)s.tar.gz'] + +dependencies = [ + ('zlib', '1.2.8'), +] + +start_dir = 'source' + +buildopts = ' STAR && make STARlong' + +parallel = 1 + +files_to_copy = [(["source/STAR", "source/STARlong"], "bin"), "CHANGES.md", "doc", "extras", "LICENSE", "README.md", "RELEASEnotes.md"] + +sanity_check_paths = { + 'files': ["bin/STAR", "bin/STARlong"], + 'dirs': [], +} + +moduleclass = 'bio' diff --git a/s/STAR/STAR-2.5.1b-goolf-1.4.10.eb b/s/STAR/STAR-2.5.1b-goolf-1.4.10.eb new file mode 100644 index 00000000..b04986c6 --- /dev/null +++ b/s/STAR/STAR-2.5.1b-goolf-1.4.10.eb @@ -0,0 +1,38 @@ +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# Author: Pablo Escobar Lopez +# sciCORE - University of Basel +# SIB Swiss Institute of Bioinformatics + +easyblock = 'MakeCp' + +name = 'STAR' +version = '2.5.1b' + +homepage = 'https://github.com/alexdobin/STAR' +description = """ STAR aligns RNA-seq reads to a reference genome using + uncompressed suffix arrays. """ + +toolchain = {'name': 'goolf', 'version': '1.4.10'} +toolchainopts = {'openmp': True} + +source_urls = ['https://github.com/alexdobin/STAR/archive/'] +sources = ['%(version)s.tar.gz'] + +dependencies = [ + ('zlib', '1.2.8'), +] + +start_dir = 'source' + +buildopts = ' STAR && make STARlong' + +parallel = 1 + +files_to_copy = [(["source/STAR", "source/STARlong"], "bin"), "CHANGES.md", "doc", "extras", "LICENSE", "README.md", "RELEASEnotes.md"] + +sanity_check_paths = { + 'files': ["bin/STAR", "bin/STARlong"], + 'dirs': [], +} + +moduleclass = 'bio' diff --git a/s/STAR/STAR-2.5.2a-foss-2016a.eb b/s/STAR/STAR-2.5.2a-foss-2016a.eb new file mode 100644 index 00000000..769bc0a3 --- /dev/null +++ b/s/STAR/STAR-2.5.2a-foss-2016a.eb @@ -0,0 +1,49 @@ +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# Author: Pablo Escobar Lopez +# sciCORE - University of Basel +# SIB Swiss Institute of Bioinformatics +# Modified by: +# Adam Huffman +# The Francis Crick Institute + +easyblock = 'MakeCp' + +name = 'STAR' +version = '2.5.2a' + +homepage = 'https://github.com/alexdobin/STAR' +description = """ STAR aligns RNA-seq reads to a reference genome using + uncompressed suffix arrays. """ + +toolchain = {'name': 'foss', 'version': '2016a'} +toolchainopts = {'openmp': True} + +source_urls = ['https://github.com/alexdobin/STAR/archive/'] +sources = ['%(version)s.tar.gz'] + +dependencies = [ + ('zlib', '1.2.8'), +] + +start_dir = 'source' + +buildopts = ' STAR && make STARlong' + +parallel = 1 + +files_to_copy = [ + (["source/STAR", "source/STARlong"], "bin"), + "CHANGES.md", + "doc", + "extras", + "LICENSE", + "README.md", + "RELEASEnotes.md" +] + +sanity_check_paths = { + 'files': ["bin/STAR", "bin/STARlong"], + 'dirs': [], +} + +moduleclass = 'bio' diff --git a/s/STAR/STAR-2.5.2a-goolf-1.7.20.eb b/s/STAR/STAR-2.5.2a-goolf-1.7.20.eb new file mode 100644 index 00000000..fd35161f --- /dev/null +++ b/s/STAR/STAR-2.5.2a-goolf-1.7.20.eb @@ -0,0 +1,46 @@ +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# Author: Pablo Escobar Lopez +# sciCORE - University of Basel +# SIB Swiss Institute of Bioinformatics + +easyblock = 'MakeCp' + +name = 'STAR' +version = '2.5.2a' + +homepage = 'https://github.com/alexdobin/STAR' +description = """ STAR aligns RNA-seq reads to a reference genome using + uncompressed suffix arrays. """ + +toolchain = {'name': 'goolf', 'version': '1.7.20'} +toolchainopts = {'openmp': True} + +source_urls = ['https://github.com/alexdobin/STAR/archive/'] +sources = ['%(version)s.tar.gz'] + +dependencies = [ + ('zlib', '1.2.8'), +] + +start_dir = 'source' + +buildopts = ' STAR && make STARlong' + +parallel = 1 + +files_to_copy = [ + (["source/STAR", "source/STARlong"], "bin"), + "CHANGES.md", + "doc", + "extras", + "LICENSE", + "README.md", + "RELEASEnotes.md" +] + +sanity_check_paths = { + 'files': ["bin/STAR", "bin/STARlong"], + 'dirs': [], +} + +moduleclass = 'bio' diff --git a/s/STREAM/STREAM-5.10-intel-2015a.eb b/s/STREAM/STREAM-5.10-intel-2015a.eb new file mode 100644 index 00000000..79841574 --- /dev/null +++ b/s/STREAM/STREAM-5.10-intel-2015a.eb @@ -0,0 +1,37 @@ +easyblock = 'CmdCp' + +name = 'STREAM' +version = '5.10' + +homepage = 'http://www.cs.virginia.edu/stream/' +description = """The STREAM benchmark is a simple synthetic benchmark program that measures sustainable + memory bandwidth (in MB/s) and the corresponding computation rate for simple vector kernels.""" + +toolchain = {'name': 'intel', 'version': '2015a'} +toolchainopts = {'openmp': True} + +source_urls = ['http://www.cs.virginia.edu/stream/FTP/Code/'] +sources = ['%(namelower)s.c'] +checksums = ['dd2941e3a28ff90a79b571273c10aacf'] + +skipsteps = ['source'] + +# 10 million array elements (1000 runs): requires ~224MB of memory +cmds_str = "$CC $CFLAGS %(source)s -mcmodel=large -DSTREAM_ARRAY_SIZE=10000000 -DNTIMES=1000 -o stream_1Kx10M; " +# 100 million array elements (1000 runs): requires ~2.2GiB of memory +cmds_str += "$CC $CFLAGS %(source)s -mcmodel=large -DSTREAM_ARRAY_SIZE=100000000 -DNTIMES=1000 -o stream_1Kx100M; " +# 1 billion array elements (1000 runs): requires ~22.4 GiB of memory +cmds_str += "$CC $CFLAGS %(source)s -mcmodel=large -DSTREAM_ARRAY_SIZE=1000000000 -DNTIMES=1000 -o stream_1Kx1B; " + +cmds_map = [('stream.c', cmds_str)] + +files_to_copy = [(['stream_1Kx10M', 'stream_1Kx100M', 'stream_1Kx1B'], 'bin')] + +sanity_check_paths = { + 'files': ['bin/stream_1Kx10M', 'bin/stream_1Kx100M', 'bin/stream_1Kx1B'], + 'dirs': [], +} + +tests = ['%(installdir)s/bin/stream_1Kx10M'] + +moduleclass = 'perf' diff --git a/s/SUMACLUST/SUMACLUST-1.0.20-foss-2016a.eb b/s/SUMACLUST/SUMACLUST-1.0.20-foss-2016a.eb new file mode 100644 index 00000000..15d67449 --- /dev/null +++ b/s/SUMACLUST/SUMACLUST-1.0.20-foss-2016a.eb @@ -0,0 +1,27 @@ +# Author: Pablo Escobar Lopez; Wiktor Jurkowski +# Swiss Institute of Bioinformatics (SIB), Biozentrum - University of Basel +# Babraham Institute, UK + +easyblock = 'MakeCp' + +name = 'SUMACLUST' +version = '1.0.20' + +homepage = "http://metabarcoding.org/sumatra" +description = """SUMATRA and SUMACLUST: fast and exact comparison and clustering of sequences.""" + +toolchain = {'name': 'foss', 'version': '2016a'} + +source_urls = ['https://git.metabarcoding.org/obitools/sumaclust/uploads/69f757c42f2cd45212c587e87c75a00f/'] +sources=['%(namelower)s_v%(version)s.tar.gz'] + +prebuildopts = 'make clean &&' + +files_to_copy = [(['sumaclust'],'bin'),'sumaclust_user_manual.pdf'] + +sanity_check_paths = { + 'files': ['bin/sumaclust', 'sumaclust_user_manual.pdf'], + 'dirs': [], +} + +moduleclass = 'bio' diff --git a/s/SUMATRA/SUMATRA-1.0.20-foss-2016a.eb b/s/SUMATRA/SUMATRA-1.0.20-foss-2016a.eb new file mode 100644 index 00000000..6ad5e46d --- /dev/null +++ b/s/SUMATRA/SUMATRA-1.0.20-foss-2016a.eb @@ -0,0 +1,27 @@ +# Author: Pablo Escobar Lopez; Wiktor Jurkowski +# Swiss Institute of Bioinformatics (SIB), Biozentrum - University of Basel +# Babraham Institute, UK + +easyblock = 'MakeCp' + +name = 'SUMATRA' +version = '1.0.20' + +homepage = "http://metabarcoding.org/sumatra" +description = """SUMATRA and SUMACLUST: fast and exact comparison and clustering of sequences.""" + +toolchain = {'name': 'foss', 'version': '2016a'} + +source_urls = ['https://git.metabarcoding.org/obitools/sumatra/uploads/251020bbbd6c6595cb9fce6077e29952/'] +sources=['%(namelower)s_v%(version)s.tar.gz'] + +prebuildopts = 'make clean &&' + +files_to_copy = [(['sumatra'],'bin'),'sumatra_user_manual.pdf'] + +sanity_check_paths = { + 'files': ['bin/sumatra', 'sumatra_user_manual.pdf'], + 'dirs': [], +} + +moduleclass = 'bio' diff --git a/s/SUMO/SUMO-0.25.0-foss-2015g.eb b/s/SUMO/SUMO-0.25.0-foss-2015g.eb new file mode 100644 index 00000000..e25eb1d8 --- /dev/null +++ b/s/SUMO/SUMO-0.25.0-foss-2015g.eb @@ -0,0 +1,29 @@ +easyblock = 'ConfigureMake' + +name = 'SUMO' +version = '0.25.0' + +homepage = 'http://www.sumo.dlr.de/wiki/Main_Page' + +description = """Simulation of Urban MObility (SUMO) is an open source, highly portable, +microscopic and continuous road traffic simulation package designed to handle large road networks. +""" + +toolchain = {'name': 'foss', 'version': '2015g'} + +source_urls = [SOURCEFORGE_SOURCE] +sources = ['%(namelower)s-src-%(version)s.tar.gz'] + +osdependencies = ['xerces-c-devel'] + +builddependencies = [('FOX', '1.6.51'), + ('GDAL', '1.9.2'), + ('PROJ_4', '4.9.2'), +] + +sanity_check_paths = { + 'files': ['bin/sumo', 'bin/sumo-gui'], + 'dirs': ['bin'], +} + +moduleclass = 'vis' diff --git a/s/SWASH/SWASH-3.14-intel-2015b-mpi.eb b/s/SWASH/SWASH-3.14-intel-2015b-mpi.eb new file mode 100644 index 00000000..59a30a98 --- /dev/null +++ b/s/SWASH/SWASH-3.14-intel-2015b-mpi.eb @@ -0,0 +1,29 @@ +easyblock = 'MakeCp' + +name = 'SWASH' +version = '3.14' +versionsuffix = '-mpi' + +homepage = 'http://swash.sourceforge.net/' +description = """SWASH is a general-purpose numerical tool for simulating unsteady, non-hydrostatic, free-surface, + rotational flow and transport phenomena in coastal waters as driven by waves, tides, buoyancy and wind forces.""" + +toolchain = {'name': 'intel', 'version': '2015b'} +toolchainopts = {'usempi': True} + +source_urls = ['http://swash.sourceforge.net/download/zip/'] +sources = [SOURCELOWER_TAR_GZ] + +prebuildopts = "unset FC && make config && " +buildopts = 'mpi' + +parallel = 1 + +files_to_copy = [(['swash.exe', 'swashrun', 'SWASHRUN.README'], 'bin')] + +sanity_check_paths = { + 'files': ['bin/swash.exe', 'bin/swashrun', 'bin/SWASHRUN.README'], + 'dirs': [], +} + +moduleclass = 'cae' diff --git a/s/SWASH/SWASH-3.14-intel-2015b-mt.eb b/s/SWASH/SWASH-3.14-intel-2015b-mt.eb new file mode 100644 index 00000000..dddde53b --- /dev/null +++ b/s/SWASH/SWASH-3.14-intel-2015b-mt.eb @@ -0,0 +1,29 @@ +easyblock = 'MakeCp' + +name = 'SWASH' +version = '3.14' +versionsuffix = '-mt' + +homepage = 'http://swash.sourceforge.net/' +description = """SWASH is a general-purpose numerical tool for simulating unsteady, non-hydrostatic, free-surface, + rotational flow and transport phenomena in coastal waters as driven by waves, tides, buoyancy and wind forces.""" + +toolchain = {'name': 'intel', 'version': '2015b'} +toolchainopts = {'openmp': True} + +source_urls = ['http://swash.sourceforge.net/download/zip/'] +sources = [SOURCELOWER_TAR_GZ] + +prebuildopts = "make config && " +buildopts = 'omp' + +parallel = 1 + +files_to_copy = [(['swash.exe', 'swashrun', 'SWASHRUN.README'], 'bin')] + +sanity_check_paths = { + 'files': ['bin/swash.exe', 'bin/swashrun', 'bin/SWASHRUN.README'], + 'dirs': [], +} + +moduleclass = 'cae' diff --git a/s/SWASH/SWASH-3.14-intel-2015b-serial.eb b/s/SWASH/SWASH-3.14-intel-2015b-serial.eb new file mode 100644 index 00000000..c1888836 --- /dev/null +++ b/s/SWASH/SWASH-3.14-intel-2015b-serial.eb @@ -0,0 +1,28 @@ +easyblock = 'MakeCp' + +name = 'SWASH' +version = '3.14' +versionsuffix = '-serial' + +homepage = 'http://swash.sourceforge.net/' +description = """SWASH is a general-purpose numerical tool for simulating unsteady, non-hydrostatic, free-surface, + rotational flow and transport phenomena in coastal waters as driven by waves, tides, buoyancy and wind forces.""" + +toolchain = {'name': 'intel', 'version': '2015b'} + +source_urls = ['http://swash.sourceforge.net/download/zip/'] +sources = [SOURCELOWER_TAR_GZ] + +prebuildopts = "make config && " +buildopts = 'ser' + +parallel = 1 + +files_to_copy = [(['swash.exe', 'swashrun', 'SWASHRUN.README'], 'bin')] + +sanity_check_paths = { + 'files': ['bin/swash.exe', 'bin/swashrun', 'bin/SWASHRUN.README'], + 'dirs': [], +} + +moduleclass = 'cae' diff --git a/s/SWIG/SWIG-2.0.12-intel-2015b-Python-2.7.9.eb b/s/SWIG/SWIG-2.0.12-intel-2015b-Python-2.7.9.eb new file mode 100644 index 00000000..b088a98b --- /dev/null +++ b/s/SWIG/SWIG-2.0.12-intel-2015b-Python-2.7.9.eb @@ -0,0 +1,24 @@ +# Built with EasyBuild version 2.1.1 on 2015-08-24_15-07-49 +name = 'SWIG' +version = '2.0.12' + +homepage = 'http://www.swig.org/' +description = """SWIG is a software development tool that connects programs written in C and C++ with + a variety of high-level programming languages.""" + +toolchain = {'name': 'intel', 'version': '2015b'} +toolchainopts = {'pic': True, 'opt': True, 'optarch': True} + +source_urls = [SOURCEFORGE_SOURCE] +sources = [SOURCELOWER_TAR_GZ] + +python = "Python" +pythonversion = '2.7.9' +versionsuffix = '-%s-%s' % (python, pythonversion) + +dependencies = [ + (python, pythonversion), + ('PCRE', '8.36'), +] + +moduleclass = 'devel' diff --git a/s/SWIG/SWIG-3.0.7-intel-2015b-Python-2.7.9.eb b/s/SWIG/SWIG-3.0.7-intel-2015b-Python-2.7.9.eb new file mode 100644 index 00000000..4b38a64a --- /dev/null +++ b/s/SWIG/SWIG-3.0.7-intel-2015b-Python-2.7.9.eb @@ -0,0 +1,23 @@ +name = 'SWIG' +version = '3.0.7' + +homepage = 'http://www.swig.org/' +description = """SWIG is a software development tool that connects programs written in C and C++ with + a variety of high-level programming languages.""" + +toolchain = {'name': 'intel', 'version': '2015b'} +toolchainopts = {'pic': True, 'opt': True, 'optarch': True} + +source_urls = [SOURCEFORGE_SOURCE] +sources = [SOURCELOWER_TAR_GZ] + +python = "Python" +pythonversion = '2.7.9' +versionsuffix = '-%s-%s' % (python, pythonversion) + +dependencies = [ + (python, pythonversion), + ('PCRE', '8.36'), +] + +moduleclass = 'devel' diff --git a/s/Saxon-HE/Saxon-HE-9.7.0.4-Java-1.7.0_79.eb b/s/Saxon-HE/Saxon-HE-9.7.0.4-Java-1.7.0_79.eb new file mode 100644 index 00000000..d38576ab --- /dev/null +++ b/s/Saxon-HE/Saxon-HE-9.7.0.4-Java-1.7.0_79.eb @@ -0,0 +1,26 @@ +easyblock = 'Tarball' + +name = 'Saxon-HE' +version = '9.7.0.4' +versionsuffix = '-Java-%(javaver)s' + +homepage = 'http://saxon.sourceforge.net' +description = """Open Source SAXON XSLT processor developed by Saxonica Limited.""" + +toolchain = {'name': 'dummy', 'version': ''} + +sources = ['SaxonHE%sJ.zip' % version.replace(".","-")] +source_urls = ['https://sourceforge.net/projects/saxon/files/Saxon-HE/%(version_major_minor)s' , 'download'] + +dependencies = [('Java', '1.7.0_79')] + +jarfiles = ['saxon%(version_major)she.jar', 'saxon%(version_major)s-test.jar', 'saxon%(version_major)s-xqj.jar'] + +sanity_check_paths = { + 'files': jarfiles, + 'dirs': [], +} + +modextrapaths = {'CLASSPATH': jarfiles} + +moduleclass = 'devel' diff --git a/s/ScaLAPACK/ScaLAPACK-2.0.2-gompi-1.5.12-OpenBLAS-0.2.8-LAPACK-3.5.0.eb b/s/ScaLAPACK/ScaLAPACK-2.0.2-gompi-1.5.12-OpenBLAS-0.2.8-LAPACK-3.5.0.eb new file mode 100644 index 00000000..9c663272 --- /dev/null +++ b/s/ScaLAPACK/ScaLAPACK-2.0.2-gompi-1.5.12-OpenBLAS-0.2.8-LAPACK-3.5.0.eb @@ -0,0 +1,25 @@ +name = 'ScaLAPACK' +version = '2.0.2' + +homepage = 'http://www.netlib.org/scalapack/' +description = """The ScaLAPACK (or Scalable LAPACK) library includes a subset of LAPACK routines + redesigned for distributed memory MIMD parallel computers.""" + +toolchain = {'name': 'gompi', 'version': '1.5.12'} +toolchainopts = {'pic': True} + +source_urls = [homepage] +sources = [SOURCELOWER_TGZ] + +blaslib = 'OpenBLAS' +blasver = '0.2.8' +blassuff = '-LAPACK-3.5.0' + +versionsuffix = "-%s-%s%s" % (blaslib, blasver, blassuff) + +dependencies = [(blaslib, blasver, blassuff)] + +## parallel build tends to fail, so disabling it +parallel = 1 + +moduleclass = 'numlib' diff --git a/s/ScaLAPACK/ScaLAPACK-2.0.2-gompi-2015e-OpenBLAS-0.2.14-LAPACK-3.5.0.eb b/s/ScaLAPACK/ScaLAPACK-2.0.2-gompi-2015e-OpenBLAS-0.2.14-LAPACK-3.5.0.eb new file mode 100644 index 00000000..4d8f7d23 --- /dev/null +++ b/s/ScaLAPACK/ScaLAPACK-2.0.2-gompi-2015e-OpenBLAS-0.2.14-LAPACK-3.5.0.eb @@ -0,0 +1,25 @@ +name = 'ScaLAPACK' +version = '2.0.2' + +homepage = 'http://www.netlib.org/scalapack/' +description = """The ScaLAPACK (or Scalable LAPACK) library includes a subset of LAPACK routines + redesigned for distributed memory MIMD parallel computers.""" + +toolchain = {'name': 'gompi', 'version': '2015e'} +toolchainopts = {'pic': True} + +source_urls = [homepage] +sources = [SOURCELOWER_TGZ] + +blaslib = 'OpenBLAS' +blasver = '0.2.14' +blassuff = '-LAPACK-3.5.0' + +versionsuffix = "-%s-%s%s" % (blaslib, blasver, blassuff) + +dependencies = [(blaslib, blasver, blassuff, ('gompi', '2015e'))] + +## parallel build tends to fail, so disabling it +parallel = 1 + +moduleclass = 'numlib' diff --git a/s/ScaLAPACK/ScaLAPACK-2.0.2-gompi-2015g-OpenBLAS-0.2.14-LAPACK-3.5.0.eb b/s/ScaLAPACK/ScaLAPACK-2.0.2-gompi-2015g-OpenBLAS-0.2.14-LAPACK-3.5.0.eb new file mode 100644 index 00000000..ee71ed32 --- /dev/null +++ b/s/ScaLAPACK/ScaLAPACK-2.0.2-gompi-2015g-OpenBLAS-0.2.14-LAPACK-3.5.0.eb @@ -0,0 +1,25 @@ +name = 'ScaLAPACK' +version = '2.0.2' + +homepage = 'http://www.netlib.org/scalapack/' +description = """The ScaLAPACK (or Scalable LAPACK) library includes a subset of LAPACK routines + redesigned for distributed memory MIMD parallel computers.""" + +toolchain = {'name': 'gompi', 'version': '2015g'} +toolchainopts = {'pic': True} + +source_urls = [homepage] +sources = [SOURCELOWER_TGZ] + +blaslib = 'OpenBLAS' +blasver = '0.2.14' +blassuff = '-LAPACK-3.5.0' + +versionsuffix = "-%s-%s%s" % (blaslib, blasver, blassuff) + +dependencies = [(blaslib, blasver, blassuff, ('GNU', '4.9.3-2.25'))] + +## parallel build tends to fail, so disabling it +parallel = 1 + +moduleclass = 'numlib' diff --git a/s/ScaLAPACK/ScaLAPACK-2.0.2-gompi-2016a-OpenBLAS-0.2.15-LAPACK-3.6.0-GCC-5.1.0-binutils-2.25.eb b/s/ScaLAPACK/ScaLAPACK-2.0.2-gompi-2016a-OpenBLAS-0.2.15-LAPACK-3.6.0-GCC-5.1.0-binutils-2.25.eb new file mode 100644 index 00000000..e3771f6e --- /dev/null +++ b/s/ScaLAPACK/ScaLAPACK-2.0.2-gompi-2016a-OpenBLAS-0.2.15-LAPACK-3.6.0-GCC-5.1.0-binutils-2.25.eb @@ -0,0 +1,25 @@ +name = 'ScaLAPACK' +version = '2.0.2' + +homepage = 'http://www.netlib.org/scalapack/' +description = """The ScaLAPACK (or Scalable LAPACK) library includes a subset of LAPACK routines + redesigned for distributed memory MIMD parallel computers.""" + +toolchain = {'name': 'intel', 'version': '2015b'} +toolchainopts = {'pic': True} + +source_urls = [homepage] +sources = [SOURCELOWER_TGZ] + +blaslib = 'OpenBLAS' +blasver = '0.2.15' +blassuff = '-LAPACK-3.6.0' + +versionsuffix = "-%s-%s%s" % (blaslib, blasver, blassuff) + +#dependencies = [('OpenBLAS', '0.2.15-GCC-5.1.0-binutils-2.25-LAPACK-3.6.0')] + +# parallel build tends to fail, so disabling it +parallel = 1 + +moduleclass = 'numlib' diff --git a/s/ScientificPython/ScientificPython-2.9.4-foss-2016a-Python-2.7.11.eb b/s/ScientificPython/ScientificPython-2.9.4-foss-2016a-Python-2.7.11.eb new file mode 100644 index 00000000..267282ee --- /dev/null +++ b/s/ScientificPython/ScientificPython-2.9.4-foss-2016a-Python-2.7.11.eb @@ -0,0 +1,31 @@ +easyblock = 'PythonPackage' + +name = 'ScientificPython' +version = '2.9.4' +versionsuffix = '-Python-%(pyver)s' + +homepage = 'https://sourcesup.cru.fr/projects/scientific-py/' +description = """ScientificPython is a collection of Python modules for scientific computing. + It contains support for geometry, mathematical functions, statistics, physical units, IO, visualization, + and parallelization.""" + +toolchain = {'name': 'foss', 'version': '2016a'} + +source_urls = ['https://sourcesup.cru.fr/frs/download.php/file/4570'] +sources = [SOURCE_TAR_GZ] + +dependencies = [ + ('Python', '2.7.11'), + # older version of numpy than the one included in Python module required + # cfr. https://bitbucket.org/khinsen/scientificpython/issue/13/numpy-19-has-dropped-support-for + ('numpy', '1.8.2', versionsuffix), +] + +options = {'modulename': 'Scientific'} + +sanity_check_paths = { + 'files': [], + 'dirs': ['lib/python%(pyshortver)s/site-packages/Scientific'], +} + +moduleclass = 'math' diff --git a/s/ScientificPython/ScientificPython-2.9.4-intel-2015b-Python-2.7.9.eb b/s/ScientificPython/ScientificPython-2.9.4-intel-2015b-Python-2.7.9.eb new file mode 100644 index 00000000..23c8cb11 --- /dev/null +++ b/s/ScientificPython/ScientificPython-2.9.4-intel-2015b-Python-2.7.9.eb @@ -0,0 +1,36 @@ +easyblock = "PythonPackage" + +name = 'ScientificPython' +version = '2.9.4' + +homepage = 'https://sourcesup.cru.fr/projects/scientific-py/' +description = """ScientificPython is a collection of Python modules for scientific computing. + It contains support for geometry, mathematical functions, statistics, physical units, IO, visualization, + and parallelization.""" + +toolchain = {'name': 'intel', 'version': '2015b'} + +source_urls = ['https://sourcesup.renater.fr/frs/download.php/4570'] +sources = [SOURCE_TAR_GZ] + +python = 'Python' +pythonversion = '2.7.9' +pythonshortversion = '.'.join(pythonversion.split('.')[:-1]) + +versionsuffix = "-%s-%s" % (python, pythonversion) + +dependencies = [ + (python, pythonversion), + # older version of numpy than the one included in Python module required + # cfr. https://bitbucket.org/khinsen/scientificpython/issue/13/numpy-19-has-dropped-support-for + ('numpy', '1.8.2', versionsuffix), +] + +options = {'modulename': 'Scientific'} + +sanity_check_paths = { + 'files': [], + 'dirs': ['lib/python%s/site-packages/Scientific' % pythonshortversion], +} + +moduleclass = 'math' diff --git a/s/ScientificPython/ScientificPython-2.9.4-intel-2017.00-Python-3.5.2.eb b/s/ScientificPython/ScientificPython-2.9.4-intel-2017.00-Python-3.5.2.eb new file mode 100644 index 00000000..d4ec84af --- /dev/null +++ b/s/ScientificPython/ScientificPython-2.9.4-intel-2017.00-Python-3.5.2.eb @@ -0,0 +1,36 @@ +easyblock = "PythonPackage" + +name = 'ScientificPython' +version = '2.9.4' + +homepage = 'https://sourcesup.cru.fr/projects/scientific-py/' +description = """ScientificPython is a collection of Python modules for scientific computing. + It contains support for geometry, mathematical functions, statistics, physical units, IO, visualization, + and parallelization.""" + +toolchain = {'name': 'intel', 'version': '2017.00'} + +source_urls = ['https://sourcesup.renater.fr/frs/download.php/4570'] +sources = [SOURCE_TAR_GZ] + +python = 'Python' +pythonversion = '3.5.2' +pythonshortversion = '.'.join(pythonversion.split('.')[:-1]) + +versionsuffix = "-%s-%s" % (python, pythonversion) + +dependencies = [ + (python, pythonversion), + # older version of numpy than the one included in Python module required + # cfr. https://bitbucket.org/khinsen/scientificpython/issue/13/numpy-19-has-dropped-support-for + #('numpy', '1.8.2', versionsuffix), numpy is into Python +] + +options = {'modulename': 'Scientific'} + +sanity_check_paths = { + 'files': [], + 'dirs': ['lib/python%s/site-packages/Scientific' % pythonshortversion], +} + +moduleclass = 'math' diff --git a/s/SeqPrep/SeqPrep-1.2-goolf-1.7.20.eb b/s/SeqPrep/SeqPrep-1.2-goolf-1.7.20.eb new file mode 100644 index 00000000..29459a54 --- /dev/null +++ b/s/SeqPrep/SeqPrep-1.2-goolf-1.7.20.eb @@ -0,0 +1,32 @@ +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# Author: Pablo Escobar Lopez +# sciCORE - University of Basel +# SIB Swiss Institute of Bioinformatics + +easyblock = 'MakeCp' + +name = 'SeqPrep' +version = '1.2' + +homepage = 'https://github.com/jstjohn/SeqPrep' +description = """Tool for stripping adaptors and/or merging paired reads with overlap into single reads.""" + +toolchain = {'name': 'goolf', 'version': '1.7.20'} + +source_urls = ['https://github.com/jstjohn/SeqPrep/archive/'] +sources = ['v%(version)s.tar.gz'] + +dependencies = [ + ('zlib', '1.2.8'), +] + +files_to_copy = [(['SeqPrep'], 'bin'), ] + +parallel = 1 + +sanity_check_paths = { + 'files': ['bin/SeqPrep'], + 'dirs': [], +} + +moduleclass = 'bio' diff --git a/s/Serf/Serf-1.3.8-foss-2015a.eb b/s/Serf/Serf-1.3.8-foss-2015a.eb new file mode 100644 index 00000000..987ce669 --- /dev/null +++ b/s/Serf/Serf-1.3.8-foss-2015a.eb @@ -0,0 +1,38 @@ +easyblock = 'SCons' +name = 'Serf' +version = '1.3.8' + +homepage = 'http://serf.apache.org/' +description = """The serf library is a high performance C-based HTTP client library + built upon the Apache Portable Runtime (APR) library""" + +toolchain = {'name': 'foss', 'version': '2015a'} + +source_urls = ['https://archive.apache.org/dist/%(namelower)s'] +sources = [SOURCELOWER_TAR_BZ2] + +patches = [ + ('%(name)s-%(version)s_remve_c99_comment.patch'), + ('%(name)s-%(version)s_SCons_ld_lib.patch'), +] + +builddependencies = [('SCons', '2.3.6', '-Python-2.7.9')] + +dependencies = [ + ('APR', '1.5.2'), + ('APR-util', '1.5.4'), + # ('OpenSSL', '1.0.1p'), # OS dependency should be preferred if the os version is more recent then this version, it's + # nice to have an up to date openssl for security reasons +] + +osdependencies = [('openssl-devel', 'libssl-dev', 'libopenssl-devel')] + +buildopts = "APR=$EBROOTAPR/bin/apr-1-config APU=$EBROOTAPRMINUTIL/bin/apu-1-config" + +sanity_check_paths = { + 'files': ['include/serf-1/serf.h'] + + ['lib/libserf-1.%s' % x for x in ['a', 'so']], + 'dirs': [], +} + +moduleclass = 'tools' diff --git a/s/Singularity/Singularity-2.2-GCC-6.3.0-2.27.eb b/s/Singularity/Singularity-2.2-GCC-6.3.0-2.27.eb new file mode 100644 index 00000000..d6ba2696 --- /dev/null +++ b/s/Singularity/Singularity-2.2-GCC-6.3.0-2.27.eb @@ -0,0 +1,18 @@ +easyblock = 'ConfigureMake' + +name = 'Singularity' +version = '2.2' + +homepage = 'http://gmkurtzer.github.io/singularity' +description = """Singularity is a portable application stack packaging and runtime utility.""" + +toolchain = {'name': 'GCC', 'version': '6.3.0-2.27'} + +source_urls = ['https://github.com/gmkurtzer/singularity/archive/'] +sources = ['%(version)s.tar.gz'] + +builddependencies = [('Autotools', '20150215')] + +preconfigopts = './autogen.sh && ' + +moduleclass = 'tools' diff --git a/s/Singularity/Singularity-2.2.1-GCC-6.3.0-2.27.eb b/s/Singularity/Singularity-2.2.1-GCC-6.3.0-2.27.eb new file mode 100644 index 00000000..b315ec85 --- /dev/null +++ b/s/Singularity/Singularity-2.2.1-GCC-6.3.0-2.27.eb @@ -0,0 +1,24 @@ +easyblock = 'ConfigureMake' + +name = 'Singularity' +version = '2.2.1' +versionsuffix = '-test' + +homepage = 'http://gmkurtzer.github.io/singularity' +description = """Singularity is a portable application stack packaging and runtime utility.""" + +toolchain = {'name': 'GCC', 'version': '6.3.0-2.27'} + +source_urls = ['https://github.com/gmkurtzer/singularity/archive/'] +sources = ['%(version)s.tar.gz'] + +builddependencies = [('Autotools', '20150215')] + +preconfigopts = './autogen.sh && ' + +sanity_check_paths = { + 'files': ['bin/run-singularity', 'bin/singularity', 'etc/singularity/singularity.conf', 'libexec/singularity/sexec-suid'], + 'dirs': ['etc', '', 'libexec/singularity'], +} + +moduleclass = 'tools' diff --git a/s/SnpEff/SnpEff-4.1_G-Java-7.0_79.eb b/s/SnpEff/SnpEff-4.1_G-Java-7.0_79.eb new file mode 100644 index 00000000..c6253313 --- /dev/null +++ b/s/SnpEff/SnpEff-4.1_G-Java-7.0_79.eb @@ -0,0 +1,24 @@ +easyblock = 'Tarball' + +name = 'SnpEff' +version = '4.1_G' + +homepage = 'http://snpeff.sourceforge.net/' +description = """Genetic variant annotation and effect prediction toolbox.""" + +toolchain = {'name': 'dummy', 'version': 'dummy'} + +source_urls = [SOURCEFORGE_SOURCE] +sources = ['snpEff_latest_core.zip'] + +dependencies = [('Java', '1.7.0_79')] + +sanity_check_paths = { + 'files': ['snpEff.jar'], + 'dirs': [], +} + +# How to create working alias? +modaliases = {'snpEff': "java -jar \\$EBROOTSNPEFF/snpEff.jar"} + +moduleclass = 'bio' diff --git a/s/SnuCL/SnuCL-1.3.3-gompi-2015e.eb b/s/SnuCL/SnuCL-1.3.3-gompi-2015e.eb new file mode 100644 index 00000000..6df94130 --- /dev/null +++ b/s/SnuCL/SnuCL-1.3.3-gompi-2015e.eb @@ -0,0 +1,29 @@ +name = 'SnuCL' +version = '1.3.3' + +homepage = 'http://snucl.snu.ac.kr' +description = """An OpenCL Framework for Heterogeneous Clusters""" + +toolchain = {'name': 'gompi', 'version': '2015e'} + +source_urls = [ + # Use manually downloaded sources +] + +sources = [SOURCE_TAR_GZ] + +skipsteps = ['configure'] + +dependencies = [('OpenCL-builder', '2015', '', True), + ('OpenCL-runtime', '15.1', '', True), +] + +sanity_check_paths = { + 'files': ['bin/snuclrun'], + 'dirs': ['inc', 'lib', 'bin'], +} + +modextravars = {'SNUCLROOT': '%(installdir)s'} + +moduleclass = 'lang' + diff --git a/s/SortMeRNA/SortMeRNA-2.1-foss-2016a.eb b/s/SortMeRNA/SortMeRNA-2.1-foss-2016a.eb new file mode 100644 index 00000000..f15b6559 --- /dev/null +++ b/s/SortMeRNA/SortMeRNA-2.1-foss-2016a.eb @@ -0,0 +1,37 @@ +## +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# +# Copyright:: Copyright 2012-2014 Uni.Lu/LCSB, NTUA +# Authors:: Cedric Laczny , Fotis Georgatos +# 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 +## +easyblock = 'ConfigureMake' + +name = 'SortMeRNA' +version = '2.1' + +homepage = 'http://bioinfo.lifl.fr/RNA/sortmerna/' +description = """ +SortMeRNA is a biological sequence analysis tool for filtering, mapping and OTU-picking NGS reads. +""" + +toolchain = {'name': 'foss', 'version': '2016a'} +toolchainopts = {'optarch': True, 'pic': True} + +source_urls = ['https://github.com/biocore/sortmerna/archive/'] +sources = ['%(version)s.tar.gz'] + +# Patch for double includes of header files in Makefile.in +patches=['SortMeRNA-%(version)s_Makefile.in.patch'] + +sanity_check_paths={ + 'files': ['bin/indexdb_rna','bin/sortmerna'], + 'dirs': ['include','sortmerna'] + +} + +moduleclass = 'bio' diff --git a/s/Spark/Spark-1.3.0.eb b/s/Spark/Spark-1.3.0.eb new file mode 100644 index 00000000..fae61083 --- /dev/null +++ b/s/Spark/Spark-1.3.0.eb @@ -0,0 +1,27 @@ +easyblock = 'Tarball' + +name = 'Spark' +version = '1.3.0' + +homepage = 'http://spark.apache.org' +description = """Spark is Hadoop MapReduce done in memory""" + +toolchain = {'name': 'dummy', 'version': ''} + +sources = ['%(namelower)s-%(version)s-bin-hadoop2.3.tgz'] +source_urls = [ + 'http://apache.belnet.be/%(namelower)s/%(namelower)s-%(version)s/', + 'http://www.eu.apache.org/dist/%(namelower)s/%(namelower)s-%(version)s/', + 'http://www.us.apache.org/dist/%(namelower)s/%(namelower)s-%(version)s/', +] + +dependencies = [('Java', '1.7.0_76')] + +sanity_check_paths = { + 'files': ['bin/spark-shell'], + 'dirs': ['lib', 'python'] +} + +modextrapaths = {'PYTHONPATH': 'python'} + +moduleclass = 'devel' diff --git a/s/Spark/Spark-1.5.2.eb b/s/Spark/Spark-1.5.2.eb new file mode 100644 index 00000000..19f1bdf5 --- /dev/null +++ b/s/Spark/Spark-1.5.2.eb @@ -0,0 +1,27 @@ +easyblock = 'Tarball' + +name = 'Spark' +version = '1.5.2' + +homepage = 'http://spark.apache.org' +description = """Spark is Hadoop MapReduce done in memory""" + +toolchain = {'name': 'dummy', 'version': ''} + +sources = ['%(namelower)s-%(version)s-bin-hadoop2.6.tgz'] +source_urls = [ + 'http://apache.belnet.be/%(namelower)s/%(namelower)s-%(version)s/', + 'http://www.eu.apache.org/dist/%(namelower)s/%(namelower)s-%(version)s/', + 'http://www.us.apache.org/dist/%(namelower)s/%(namelower)s-%(version)s/', +] + +dependencies = [('Java', '1.8.0_51')] + +sanity_check_paths = { + 'files': ['bin/spark-shell'], + 'dirs': ['lib', 'python'] +} + +modextrapaths = {'PYTHONPATH': 'python'} + +moduleclass = 'devel' diff --git a/s/SpatiaLite/SpatiaLite-4.3.0a-foss-2015g.eb b/s/SpatiaLite/SpatiaLite-4.3.0a-foss-2015g.eb new file mode 100644 index 00000000..38f84307 --- /dev/null +++ b/s/SpatiaLite/SpatiaLite-4.3.0a-foss-2015g.eb @@ -0,0 +1,33 @@ +easyblock = 'ConfigureMake' +name = 'SpatiaLite' +version = '4.3.0a' + +homepage = 'https://www.gaia-gis.it/fossil/libspatialite/index' +description = """SpatiaLite is an open source library intended to extend the SQLite core to support +fully fledged Spatial SQL capabilities. +""" +toolchain = {'name': 'foss', 'version': '2015g'} + +source_urls = ['http://www.gaia-gis.it/gaia-sins/libspatialite-4.3.0a.tar.gz'] +sources = ['lib%(namelower)s-%(version)s.tar.gz'] + +builddependencies = [('SQLite', '3.8.8.1')] + +dependencies = [('Qt', '4.8.6'), + ('PROJ_4', '4.9.2'), + ('GEOS', '3.5.0'), + ('GDAL', '2.1.0'), + ('Qwt', '6.1.2'), + ('expat', '2.1.0') +] + +preconfigopts = 'export LIBS="-lm -lpthread -L/apps/all/SQLite/3.8.8.1-foss-2015g/lib" && ' + +configopts = '--disable-freexl' + +sanity_check_paths = { + 'files': ['include/spatialite.h', 'lib/libspatialite.so'], + 'dirs': ['lib', 'include'] +} + +moduleclass = 'lib' diff --git a/s/Sphinx/Sphinx-1.4.8-foss-2016a-Python-2.7.11.eb b/s/Sphinx/Sphinx-1.4.8-foss-2016a-Python-2.7.11.eb new file mode 100644 index 00000000..e8b9b266 --- /dev/null +++ b/s/Sphinx/Sphinx-1.4.8-foss-2016a-Python-2.7.11.eb @@ -0,0 +1,74 @@ +easyblock = 'Bundle' + +name = 'Sphinx' +version = '1.4.8' +versionsuffix = '-Python-%(pyver)s' + +homepage = 'http://sphinx.pocoo.org/' +description = """Sphinx is a tool that makes it easy to create intelligent and beautiful documentation. + It was originally created for the new Python documentation, and it has excellent facilities for the + documentation of Python projects, but C/C++ is already supported as well, and it is planned to add + special support for other languages as well.""" + +toolchain = {'name': 'foss', 'version': '2016a'} + +# this is a bundle of Python packages +exts_defaultclass = 'PythonPackage' + +dependencies = [ + ('Python', '2.7.11'), + ('Pygments', '2.1.3', '-Python-%(pyver)s'), + ('requests', '2.10.0', versionsuffix), +] + +exts_list = [ + ('imagesize', '0.7.1', { + 'source_urls': ['https://pypi.python.org/packages/source/i/imagesize/'], + }), + ('MarkupSafe', '0.23', { + 'source_urls': ['https://pypi.io/packages/source/M/MarkupSafe/'], + 'modulename': 'markupsafe', + }), + ('Docutils', '0.12', { + 'source_tmpl': 'docutils-%(version)s.tar.gz', + 'source_urls': [('http://sourceforge.net/projects/docutils/files/docutils/%(version)s/', 'download')], + }), + ('Jinja2', '2.8', { + 'source_urls': ['https://pypi.python.org/packages/source/J/Jinja2/'], + }), + ('snowballstemmer', '1.2.1', { + 'source_urls': ['https://pypi.python.org/packages/source/s/snowballstemmer/'], + }), + ('Babel', '2.3.4', { + 'source_urls': ['https://pypi.python.org/packages/source/B/Babel/'], + }), + ('alabaster', '0.7.8', { + 'source_urls': ['https://pypi.python.org/packages/source/a/alabaster/'], + }), + (name, version, { + 'source_urls': ['https://pypi.python.org/packages/source/S/Sphinx/'], + 'patches': ['Sphinx-%s-pdflatex_failing_tests.patch' %version], + }), + # sphinx_rtd_theme depends on Sphinx, and should be there to make the tests work + ('sphinx_rtd_theme', '0.1.10a0', { + 'source_urls': ['https://pypi.python.org/packages/source/s/sphinx_rtd_theme/'], + }), +] + +# Sphinx unit tests *after* installing extensions +postinstallcmds = [' && '.join([ + "cd %(builddir)s/%(name)s/%(name)s-%(version)s/", + "PYTHONPATH=%(installdir)s/lib/python%(pyshortver)s/site-packages/:$PYTHONPATH make test", +])] + +# specify that Bundle easyblock should run a full sanity check, rather than just trying to load the module +full_sanity_check = True + +sanity_check_paths = { + 'files': ['bin/sphinx-%s' % x for x in ['apidoc', 'autogen', 'build', 'quickstart']], + 'dirs': ['lib/python%(pyshortver)s/site-packages'], +} + +modextrapaths = {'PYTHONPATH': ['lib/python%(pyshortver)s/site-packages']} + +moduleclass = 'vis' diff --git a/s/Sphinx/Sphinx-1.4.8-foss-2016a-Python-3.5.1.eb b/s/Sphinx/Sphinx-1.4.8-foss-2016a-Python-3.5.1.eb new file mode 100644 index 00000000..a58b6b19 --- /dev/null +++ b/s/Sphinx/Sphinx-1.4.8-foss-2016a-Python-3.5.1.eb @@ -0,0 +1,74 @@ +easyblock = 'Bundle' + +name = 'Sphinx' +version = '1.4.8' +versionsuffix = '-Python-%(pyver)s' + +homepage = 'http://sphinx.pocoo.org/' +description = """Sphinx is a tool that makes it easy to create intelligent and beautiful documentation. + It was originally created for the new Python documentation, and it has excellent facilities for the + documentation of Python projects, but C/C++ is already supported as well, and it is planned to add + special support for other languages as well.""" + +toolchain = {'name': 'foss', 'version': '2016a'} + +# this is a bundle of Python packages +exts_defaultclass = 'PythonPackage' + +dependencies = [ + ('Python', '3.5.1'), + ('Pygments', '2.1.3', '-Python-%(pyver)s'), + ('requests', '2.10.0', versionsuffix), +] + +exts_list = [ + ('imagesize', '0.7.1', { + 'source_urls': ['https://pypi.python.org/packages/source/i/imagesize/'], + }), + ('MarkupSafe', '0.23', { + 'source_urls': ['https://pypi.io/packages/source/M/MarkupSafe/'], + 'modulename': 'markupsafe', + }), + ('Docutils', '0.12', { + 'source_tmpl': 'docutils-%(version)s.tar.gz', + 'source_urls': [('http://sourceforge.net/projects/docutils/files/docutils/%(version)s/', 'download')], + }), + ('Jinja2', '2.8', { + 'source_urls': ['https://pypi.python.org/packages/source/J/Jinja2/'], + }), + ('snowballstemmer', '1.2.1', { + 'source_urls': ['https://pypi.python.org/packages/source/s/snowballstemmer/'], + }), + ('Babel', '2.3.4', { + 'source_urls': ['https://pypi.python.org/packages/source/B/Babel/'], + }), + ('alabaster', '0.7.8', { + 'source_urls': ['https://pypi.python.org/packages/source/a/alabaster/'], + }), + (name, version, { + 'source_urls': ['https://pypi.python.org/packages/source/S/Sphinx/'], + 'patches': ['Sphinx-%s-pdflatex_failing_tests.patch' %version], + }), + # sphinx_rtd_theme depends on Sphinx, and should be there to make the tests work + ('sphinx_rtd_theme', '0.1.10a0', { + 'source_urls': ['https://pypi.python.org/packages/source/s/sphinx_rtd_theme/'], + }), +] + +# Sphinx unit tests *after* installing extensions +postinstallcmds = [' && '.join([ + "cd %(builddir)s/%(name)s/%(name)s-%(version)s/", + "PYTHONPATH=%(installdir)s/lib/python%(pyshortver)s/site-packages/:$PYTHONPATH make test", +])] + +# specify that Bundle easyblock should run a full sanity check, rather than just trying to load the module +full_sanity_check = True + +sanity_check_paths = { + 'files': ['bin/sphinx-%s' % x for x in ['apidoc', 'autogen', 'build', 'quickstart']], + 'dirs': ['lib/python%(pyshortver)s/site-packages'], +} + +modextrapaths = {'PYTHONPATH': ['lib/python%(pyshortver)s/site-packages']} + +moduleclass = 'vis' diff --git a/s/Stacks/Stacks-1.03-goolf-1.4.10.eb b/s/Stacks/Stacks-1.03-goolf-1.4.10.eb new file mode 100644 index 00000000..a99ef374 --- /dev/null +++ b/s/Stacks/Stacks-1.03-goolf-1.4.10.eb @@ -0,0 +1,31 @@ +easyblock = 'ConfigureMake' + +name = 'Stacks' +version = '1.03' + +homepage = 'http://creskolab.uoregon.edu/stacks/' +description = """Stacks is a software pipeline for building loci from short-read sequences, such as those generated on + the Illumina platform. Stacks was developed to work with restriction enzyme-based data, such as RAD-seq, for the purpose + of building genetic maps and conducting population genomics and phylogeography. +""" + +toolchain = {'name': 'goolf', 'version': '1.4.10'} + +source_urls = ['http://creskolab.uoregon.edu/stacks/source/'] +sources = [SOURCELOWER_TAR_GZ] + +runtest = "check" + +sanity_check_paths = { + 'files': [ + 'bin/%s' % binfile for binfile in [ + 'clone_filter', 'denovo_map.pl', 'exec_velvet.pl', 'genotypes', 'index_radtags.pl', 'load_radtags.pl', + 'populations', 'process_shortreads', 'ref_map.pl', 'sstacks', 'ustacks', 'cstacks', 'estacks', + 'export_sql.pl', 'hstacks', 'kmer_filter', 'load_sequences.pl', 'process_radtags', 'pstacks', + 'sort_read_pairs.pl', 'stacks_export_notify.pl', + ] + ], + 'dirs': [], +} + +moduleclass = 'bio' diff --git a/s/Stacks/Stacks-1.03-ictce-5.3.0.eb b/s/Stacks/Stacks-1.03-ictce-5.3.0.eb new file mode 100644 index 00000000..a9bfd6bb --- /dev/null +++ b/s/Stacks/Stacks-1.03-ictce-5.3.0.eb @@ -0,0 +1,31 @@ +easyblock = 'ConfigureMake' + +name = 'Stacks' +version = '1.03' + +homepage = 'http://creskolab.uoregon.edu/stacks/' +description = """Stacks is a software pipeline for building loci from short-read sequences, such as those generated on + the Illumina platform. Stacks was developed to work with restriction enzyme-based data, such as RAD-seq, for the purpose + of building genetic maps and conducting population genomics and phylogeography. +""" + +toolchain = {'name': 'ictce', 'version': '5.3.0'} + +source_urls = ['http://creskolab.uoregon.edu/stacks/source/'] +sources = [SOURCELOWER_TAR_GZ] + +runtest = "check" + +sanity_check_paths = { + 'files': [ + 'bin/%s' % binfile for binfile in [ + 'clone_filter', 'denovo_map.pl', 'exec_velvet.pl', 'genotypes', 'index_radtags.pl', 'load_radtags.pl', + 'populations', 'process_shortreads', 'ref_map.pl', 'sstacks', 'ustacks', 'cstacks', 'estacks', + 'export_sql.pl', 'hstacks', 'kmer_filter', 'load_sequences.pl', 'process_radtags', 'pstacks', + 'sort_read_pairs.pl', 'stacks_export_notify.pl', + ] + ], + 'dirs': [], +} + +moduleclass = 'bio' diff --git a/s/Stacks/Stacks-1.40-foss-2016a.eb b/s/Stacks/Stacks-1.40-foss-2016a.eb new file mode 100644 index 00000000..189d7f6d --- /dev/null +++ b/s/Stacks/Stacks-1.40-foss-2016a.eb @@ -0,0 +1,35 @@ +easyblock = 'ConfigureMake' + +name = 'Stacks' +version = '1.40' + +homepage = 'http://creskolab.uoregon.edu/stacks/' +description = """Stacks is a software pipeline for building loci from short-read sequences, such as those generated on + the Illumina platform. Stacks was developed to work with restriction enzyme-based data, such as RAD-seq, for the purpose + of building genetic maps and conducting population genomics and phylogeography. +""" + +toolchain = {'name': 'foss', 'version': '2016a'} + +source_urls = ['http://catchenlab.life.illinois.edu/stacks/source/'] +sources = [SOURCELOWER_TAR_GZ] + +dependencies = [ + ('zlib', '1.2.8'), + ('SAMtools', '1.3.1'), + ('sparsehash', '2.0.2'), +] + +sanity_check_paths = { + 'files': [ + 'bin/%s' % binfile for binfile in [ + 'clone_filter', 'denovo_map.pl', 'exec_velvet.pl', 'genotypes', 'index_radtags.pl', 'load_radtags.pl', + 'populations', 'process_shortreads', 'ref_map.pl', 'sstacks', 'ustacks', 'cstacks', 'estacks', + 'export_sql.pl', 'hstacks', 'kmer_filter', 'load_sequences.pl', 'process_radtags', 'pstacks', + 'sort_read_pairs.pl', 'stacks_export_notify.pl', + ] + ], + 'dirs': [], +} + +moduleclass = 'bio' diff --git a/s/Stacks/Stacks-1.42-foss-2016a.eb b/s/Stacks/Stacks-1.42-foss-2016a.eb new file mode 100644 index 00000000..6d5d6358 --- /dev/null +++ b/s/Stacks/Stacks-1.42-foss-2016a.eb @@ -0,0 +1,35 @@ +easyblock = 'ConfigureMake' + +name = 'Stacks' +version = '1.42' + +homepage = 'http://creskolab.uoregon.edu/stacks/' +description = """Stacks is a software pipeline for building loci from short-read sequences, such as those generated on + the Illumina platform. Stacks was developed to work with restriction enzyme-based data, such as RAD-seq, for the purpose + of building genetic maps and conducting population genomics and phylogeography. +""" + +toolchain = {'name': 'foss', 'version': '2016a'} + +source_urls = ['http://catchenlab.life.illinois.edu/stacks/source/'] +sources = [SOURCELOWER_TAR_GZ] + +dependencies = [ + ('zlib', '1.2.8'), + ('SAMtools', '1.3.1'), + ('sparsehash', '2.0.2'), +] + +sanity_check_paths = { + 'files': [ + 'bin/%s' % binfile for binfile in [ + 'clone_filter', 'denovo_map.pl', 'exec_velvet.pl', 'genotypes', 'index_radtags.pl', 'load_radtags.pl', + 'populations', 'process_shortreads', 'ref_map.pl', 'sstacks', 'ustacks', 'cstacks', 'estacks', + 'export_sql.pl', 'hstacks', 'kmer_filter', 'load_sequences.pl', 'process_radtags', 'pstacks', + 'sort_read_pairs.pl', 'stacks_export_notify.pl', + ] + ], + 'dirs': [], +} + +moduleclass = 'bio' diff --git a/s/StringTie/StringTie-1.2.2-goolf-1.4.10.eb b/s/StringTie/StringTie-1.2.2-goolf-1.4.10.eb new file mode 100644 index 00000000..70ca06ed --- /dev/null +++ b/s/StringTie/StringTie-1.2.2-goolf-1.4.10.eb @@ -0,0 +1,26 @@ +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# Author: Pablo Escobar Lopez +# sciCORE - University of Basel +# SIB Swiss Institute of Bioinformatics + +easyblock = 'MakeCp' + +name = 'StringTie' +version = '1.2.2' + +homepage = 'http://ccb.jhu.edu/software/stringtie/' +description = """StringTie is a fast and highly efficient assembler of RNA-Seq alignments into potential transcripts.""" + +toolchain = {'name': 'goolf', 'version': '1.4.10'} + +source_urls = ['http://ccb.jhu.edu/software/stringtie/dl/'] +sources = [SOURCELOWER_TAR_GZ] + +files_to_copy = [(['stringtie'], 'bin'), 'README', 'LICENSE'] + +sanity_check_paths = { + 'files': ['bin/stringtie'], + 'dirs': [], +} + +moduleclass = 'bio' diff --git a/s/StringTie/StringTie-1.3.0-intel-2016b.eb b/s/StringTie/StringTie-1.3.0-intel-2016b.eb new file mode 100644 index 00000000..424d2b7a --- /dev/null +++ b/s/StringTie/StringTie-1.3.0-intel-2016b.eb @@ -0,0 +1,26 @@ +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# Author: Pablo Escobar Lopez +# sciCORE - University of Basel +# SIB Swiss Institute of Bioinformatics + +easyblock = 'MakeCp' + +name = 'StringTie' +version = '1.3.0' + +homepage = 'http://ccb.jhu.edu/software/stringtie/' +description = """StringTie is a fast and highly efficient assembler of RNA-Seq alignments into potential transcripts.""" + +toolchain = {'name': 'intel', 'version': '2016b'} + +source_urls = ['http://ccb.jhu.edu/software/stringtie/dl/'] +sources = [SOURCELOWER_TAR_GZ] + +files_to_copy = [(['stringtie'], 'bin'), 'README', 'LICENSE'] + +sanity_check_paths = { + 'files': ['bin/stringtie'], + 'dirs': [], +} + +moduleclass = 'bio' diff --git a/s/Subversion/Subversion-1.8.14-foss-2015a.eb b/s/Subversion/Subversion-1.8.14-foss-2015a.eb new file mode 100644 index 00000000..be6f1332 --- /dev/null +++ b/s/Subversion/Subversion-1.8.14-foss-2015a.eb @@ -0,0 +1,34 @@ +easyblock = 'ConfigureMake' + +name = 'Subversion' +version = '1.8.14' + +homepage = 'http://subversion.apache.org/' +description = " Subversion is an open source version control system." + +toolchain = {'name': 'foss', 'version': '2015a'} + +source_urls = [ + 'http://apache.belnet.be/%(namelower)s', + 'http://www.eu.apache.org/dist/%(namelower)s', + 'http://www.us.apache.org/dist/%(namelower)s', +] +sources = [SOURCELOWER_TAR_BZ2] + +dependencies = [ + ('APR', '1.5.2'), + ('APR-util', '1.5.4'), + ('SQLite', '3.8.8.1'), + ('zlib', '1.2.8'), + ('Serf', '1.3.8'), +] + +configopts = "--with-apr=$EBROOTAPR/bin/apr-1-config --with-apr-util=$EBROOTAPRMINUTIL/bin/apu-1-config " +configopts += "--with-zlib=$EBROOTZLIB --with-serf=$EBROOTSERF" + +sanity_check_paths = { + 'files': ["bin/svn", "bin/svnversion"], + 'dirs': [], +} + +moduleclass = 'tools' diff --git a/s/SuiteSparse/SuiteSparse-3.7.0-goolf-1.5.16-withparmetis.eb b/s/SuiteSparse/SuiteSparse-3.7.0-goolf-1.5.16-withparmetis.eb new file mode 100644 index 00000000..7b91274a --- /dev/null +++ b/s/SuiteSparse/SuiteSparse-3.7.0-goolf-1.5.16-withparmetis.eb @@ -0,0 +1,16 @@ +name = 'SuiteSparse' +version = '3.7.0' +versionsuffix = '-withparmetis' + +homepage = 'http://www.cise.ufl.edu/research/sparse/SuiteSparse/' +description = """SuiteSparse is a collection of libraries manipulate sparse matrices.""" + +toolchain = {'name': 'goolf', 'version': '1.5.16'} +toolchainopts = {'opt': True, 'unroll': True, 'pic': True, 'static': True} + +source_urls = ['http://www.cise.ufl.edu/research/sparse/SuiteSparse/'] +sources = [SOURCE_TAR_GZ] + +dependencies = [('ParMETIS', '4.0.2')] + +moduleclass = 'numlib' diff --git a/s/SuiteSparse/SuiteSparse-4.4.3-intel-2015b-ParMETIS-4.0.3.eb b/s/SuiteSparse/SuiteSparse-4.4.3-intel-2015b-ParMETIS-4.0.3.eb new file mode 100644 index 00000000..8d48751e --- /dev/null +++ b/s/SuiteSparse/SuiteSparse-4.4.3-intel-2015b-ParMETIS-4.0.3.eb @@ -0,0 +1,20 @@ +name = 'SuiteSparse' +version = '4.4.3' + +homepage = 'http://www.cise.ufl.edu/research/sparse/SuiteSparse/' +description = """SuiteSparse is a collection of libraries manipulate sparse matrices.""" + +toolchain = {'name': 'intel', 'version': '2015b'} +toolchainopts = {'opt': True, 'unroll': True, 'pic': True, 'static': True} + +source_urls = ['http://faculty.cse.tamu.edu/davis/SuiteSparse/'] +sources = [SOURCE_TAR_GZ] + +parmetis = 'ParMETIS' +parmetis_ver = '4.0.3' +versionsuffix = '-%s-%s' % (parmetis, parmetis_ver) +dependencies = [(parmetis, parmetis_ver)] + +maxparallel = 1 + +moduleclass = 'numlib' diff --git a/s/SuiteSparse/SuiteSparse-4.4.6-intel-2015b-ParMETIS-4.0.3.eb b/s/SuiteSparse/SuiteSparse-4.4.6-intel-2015b-ParMETIS-4.0.3.eb new file mode 100644 index 00000000..1b45dd64 --- /dev/null +++ b/s/SuiteSparse/SuiteSparse-4.4.6-intel-2015b-ParMETIS-4.0.3.eb @@ -0,0 +1,27 @@ +name = 'SuiteSparse' +version = '4.4.6' + +homepage = 'http://faculty.cse.tamu.edu/davis/suitesparse.html' +description = """SuiteSparse is a collection of libraries manipulate sparse matrices.""" + +toolchain = {'name': 'intel', 'version': '2015b'} +toolchainopts = {'opt': True, 'unroll': True, 'pic': True} + +source_urls = ['http://faculty.cse.tamu.edu/davis/SuiteSparse/'] +sources = [SOURCE_TAR_GZ] + +parmetis = 'ParMETIS' +parmetis_ver = '4.0.3' +versionsuffix = '-%s-%s' % (parmetis, parmetis_ver) +dependencies = [(parmetis, parmetis_ver)] + +maxparallel = 1 + +#IT4I +modextrapaths = { + 'LD_LIBRARY_PATH': ['SuiteSparse_config'], + 'CPATH': ['UMFPACK/include', 'AMD/include', 'SuiteSparse_config'], + 'LIBRARY_PATH': ['AMD/lib', 'BTF/lib', 'CAMD/lib', 'CCOLAMD/lib', 'CHOLAMD/lib', 'CHOLMOD/lib', 'COLAMD/lib/', 'CSparse/lib', 'CXSparse/lib', 'KLU/lib', 'LDL/lib', 'RBio/lib', 'UMFPACK/lib', 'SuiteSparse_config'] +} + +moduleclass = 'numlib' diff --git a/s/SuiteSparse/SuiteSparse-4.5.3-intel-2017.00-METIS-5.1.0.eb b/s/SuiteSparse/SuiteSparse-4.5.3-intel-2017.00-METIS-5.1.0.eb new file mode 100644 index 00000000..4941d502 --- /dev/null +++ b/s/SuiteSparse/SuiteSparse-4.5.3-intel-2017.00-METIS-5.1.0.eb @@ -0,0 +1,20 @@ +name = 'SuiteSparse' +version = '4.5.3' + +homepage = 'http://faculty.cse.tamu.edu/davis/suitesparse.html' +description = """SuiteSparse is a collection of libraries manipulate sparse matrices.""" + +toolchain = {'name': 'intel', 'version': '2017.00'} +toolchainopts = {'opt': True, 'unroll': True, 'pic': True} + +source_urls = ['http://faculty.cse.tamu.edu/davis/SuiteSparse/'] +sources = [SOURCE_TAR_GZ] + +metis = 'METIS' +metis_ver = '5.1.0' +versionsuffix = '-%s-%s' % (metis, metis_ver) +dependencies = [(metis, metis_ver)] + +maxparallel = 1 + +moduleclass = 'numlib' diff --git a/s/SuiteSparse/SuiteSparse-4.5.3-intel-2017a-ParMETIS-4.0.3.eb b/s/SuiteSparse/SuiteSparse-4.5.3-intel-2017a-ParMETIS-4.0.3.eb new file mode 100644 index 00000000..9b4ce0c0 --- /dev/null +++ b/s/SuiteSparse/SuiteSparse-4.5.3-intel-2017a-ParMETIS-4.0.3.eb @@ -0,0 +1,20 @@ +name = 'SuiteSparse' +version = '4.5.3' + +homepage = 'http://faculty.cse.tamu.edu/davis/suitesparse.html' +description = """SuiteSparse is a collection of libraries manipulate sparse matrices.""" + +toolchain = {'name': 'intel', 'version': '2017a'} +toolchainopts = {'opt': True, 'unroll': True, 'pic': True} + +source_urls = ['http://faculty.cse.tamu.edu/davis/SuiteSparse/'] +sources = [SOURCE_TAR_GZ] + +parmetis = 'ParMETIS' +parmetis_ver = '4.0.3' +versionsuffix = '-%s-%s' % (parmetis, parmetis_ver) +dependencies = [(parmetis, parmetis_ver)] + +maxparallel = 1 + +moduleclass = 'numlib' diff --git a/s/Szip/Szip-2.1-CrayGNU-2015.06.eb b/s/Szip/Szip-2.1-CrayGNU-2015.06.eb new file mode 100644 index 00000000..de900f73 --- /dev/null +++ b/s/Szip/Szip-2.1-CrayGNU-2015.06.eb @@ -0,0 +1,23 @@ +easyblock = 'ConfigureMake' + +name = 'Szip' +version = '2.1' + +homepage = 'http://www.hdfgroup.org/doc_resource/SZIP/' +description = "Szip compression software, providing lossless compression of scientific data" + +toolchain = {'name': 'CrayGNU', 'version': '2015.06'} +toolchainopts = {'pic': True, } + +source_urls = ['http://www.hdfgroup.org/ftp/lib-external/szip/%(version)s/src'] +sources = [SOURCELOWER_TAR_GZ] + +configopts = "--with-pic" + +sanity_check_paths = { + 'files': ["lib/libsz.a", "lib/libsz.%s" % SHLIB_EXT] + + ["include/%s" % x for x in ["ricehdf.h", "szip_adpt.h", "szlib.h"]], + 'dirs': [], +} + +moduleclass = 'tools' diff --git a/s/Szip/Szip-2.1-CrayGNU-2015.11.eb b/s/Szip/Szip-2.1-CrayGNU-2015.11.eb new file mode 100644 index 00000000..58f5db7a --- /dev/null +++ b/s/Szip/Szip-2.1-CrayGNU-2015.11.eb @@ -0,0 +1,23 @@ +easyblock = 'ConfigureMake' + +name = 'Szip' +version = '2.1' + +homepage = 'http://www.hdfgroup.org/doc_resource/SZIP/' +description = "Szip compression software, providing lossless compression of scientific data" + +toolchain = {'name': 'CrayGNU', 'version': '2015.11'} +toolchainopts = {'pic': True, } + +source_urls = ['http://www.hdfgroup.org/ftp/lib-external/szip/%(version)s/src'] +sources = [SOURCELOWER_TAR_GZ] + +configopts = "--with-pic" + +sanity_check_paths = { + 'files': ["lib/libsz.a", "lib/libsz.%s" % SHLIB_EXT] + + ["include/%s" % x for x in ["ricehdf.h", "szip_adpt.h", "szlib.h"]], + 'dirs': [], +} + +moduleclass = 'tools' diff --git a/s/Szip/Szip-2.1-goolf-1.5.12.eb b/s/Szip/Szip-2.1-goolf-1.5.12.eb new file mode 100644 index 00000000..726b34b4 --- /dev/null +++ b/s/Szip/Szip-2.1-goolf-1.5.12.eb @@ -0,0 +1,23 @@ +easyblock = 'ConfigureMake' + +name = 'Szip' +version = '2.1' + +homepage = 'http://www.hdfgroup.org/doc_resource/SZIP/' +description = "Szip compression software, providing lossless compression of scientific data" + +toolchain = {'name': 'goolf', 'version': '1.5.12'} +toolchainopts = {'optarch': True, 'pic': True} + +source_urls = ['http://www.hdfgroup.org/ftp/lib-external/szip/%(version)s/src'] +sources = [SOURCELOWER_TAR_GZ] + +configopts = "--with-pic" + +sanity_check_paths = { + 'files': ["lib/libsz.a", "lib/libsz.so"] + + ["include/%s" % x for x in ["ricehdf.h", "szip_adpt.h", "szlib.h"]], + 'dirs': [], +} + +moduleclass = 'tools' diff --git a/s/Szip/Szip-2.1-intel-2017.00.eb b/s/Szip/Szip-2.1-intel-2017.00.eb new file mode 100644 index 00000000..7bb2b454 --- /dev/null +++ b/s/Szip/Szip-2.1-intel-2017.00.eb @@ -0,0 +1,23 @@ +easyblock = 'ConfigureMake' + +name = 'Szip' +version = '2.1' + +homepage = 'http://www.hdfgroup.org/doc_resource/SZIP/' +description = "Szip compression software, providing lossless compression of scientific data" + +toolchain = {'name': 'intel', 'version': '2017.00'} +toolchainopts = {'optarch': True, 'pic': True} + +source_urls = ['http://www.hdfgroup.org/ftp/lib-external/szip/%(version)s/src'] +sources = [SOURCELOWER_TAR_GZ] + +configopts = "--with-pic" + +sanity_check_paths = { + 'files': ["lib/libsz.a", "lib/libsz.%s" % SHLIB_EXT] + + ["include/%s" % x for x in ["ricehdf.h", "szip_adpt.h", "szlib.h"]], + 'dirs': [], +} + +moduleclass = 'tools' diff --git a/s/Szip/Szip-2.1-intel-2017a.eb b/s/Szip/Szip-2.1-intel-2017a.eb new file mode 100644 index 00000000..7a02acdd --- /dev/null +++ b/s/Szip/Szip-2.1-intel-2017a.eb @@ -0,0 +1,23 @@ +easyblock = 'ConfigureMake' + +name = 'Szip' +version = '2.1' + +homepage = 'http://www.hdfgroup.org/doc_resource/SZIP/' +description = "Szip compression software, providing lossless compression of scientific data" + +toolchain = {'name': 'intel', 'version': '2017a'} +toolchainopts = {'pic': True} + +source_urls = ['http://www.hdfgroup.org/ftp/lib-external/szip/%(version)s/src'] +sources = [SOURCELOWER_TAR_GZ] + +configopts = "--with-pic" + +sanity_check_paths = { + 'files': ["lib/libsz.a", "lib/libsz.%s" % SHLIB_EXT] + + ["include/%s" % x for x in ["ricehdf.h", "szip_adpt.h", "szlib.h"]], + 'dirs': [], +} + +moduleclass = 'tools' diff --git a/s/Szip/Szip-2.1-iomkl-2016.07.eb b/s/Szip/Szip-2.1-iomkl-2016.07.eb new file mode 100644 index 00000000..512dbbe7 --- /dev/null +++ b/s/Szip/Szip-2.1-iomkl-2016.07.eb @@ -0,0 +1,23 @@ +easyblock = 'ConfigureMake' + +name = 'Szip' +version = '2.1' + +homepage = 'http://www.hdfgroup.org/doc_resource/SZIP/' +description = "Szip compression software, providing lossless compression of scientific data" + +toolchain = {'name': 'iomkl', 'version': '2016.07'} +toolchainopts = {'optarch': True, 'pic': True} + +source_urls = ['http://www.hdfgroup.org/ftp/lib-external/szip/%(version)s/src'] +sources = [SOURCELOWER_TAR_GZ] + +configopts = "--with-pic" + +sanity_check_paths = { + 'files': ["lib/libsz.a", "lib/libsz.%s" %SHLIB_EXT] + + ["include/%s" % x for x in ["ricehdf.h", "szip_adpt.h", "szlib.h"]], + 'dirs': [], +} + +moduleclass = 'tools' diff --git a/s/scipy/scipy-0.16.0-intel-2016b-Python-2.7.12.eb b/s/scipy/scipy-0.16.0-intel-2016b-Python-2.7.12.eb new file mode 100644 index 00000000..a6ab83c9 --- /dev/null +++ b/s/scipy/scipy-0.16.0-intel-2016b-Python-2.7.12.eb @@ -0,0 +1,33 @@ +name = 'scipy' +version = '0.16.0' +versionsuffix = '-Python-2.7.12' + +homepage = 'http://www.scipy.org' +description = """SciPy is a collection of mathematical algorithms and convenience + functions built on the Numpy extension for Python.""" + +toolchain = {'name': 'intel', 'version': '2016b'} +toolchainopts = {'pic': True} + +source_urls = [('http://sourceforge.net/projects/scipy/files/scipy/%(version)s', 'download')] +sources = [SOURCE_TAR_GZ] + +patches = ['scipy-%(version)s_fix-failing-tests-mkl.patch'] + +dependencies = [ + ('numpy', '1.9.2', versionsuffix), +] + +# recompile patch Cython source file +prebuildopts = "cython scipy/linalg/_decomp_update.pyx && " + +# need to use pip rather than regular 'setup.py install,' +# to ensure that this scipy wins over the one in the Python installation; +# using easy_install does not work... +use_pip = True + +# install as zipped egg to get a .pth file in lib/python*/site-packages; +# this enables shadowing of the scipy that is part of the Python installation +zipped_egg = True + +moduleclass = 'math' diff --git a/s/segemehl/segemehl-0.2.0-goolf-1.4.10.eb b/s/segemehl/segemehl-0.2.0-goolf-1.4.10.eb new file mode 100644 index 00000000..39c950b3 --- /dev/null +++ b/s/segemehl/segemehl-0.2.0-goolf-1.4.10.eb @@ -0,0 +1,39 @@ +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# Author: Pablo Escobar Lopez +# sciCORE - University of Basel +# SIB Swiss Institute of Bioinformatics + +easyblock = 'MakeCp' + +name = "segemehl" +version = "0.2.0" + +homepage = 'http://www.bioinf.uni-leipzig.de/Software/segemehl/' +description = """ segemehl is a software to map short sequencer reads to reference genomes. + Unlike other methods, segemehl is able to detect not only mismatches but also insertions + and deletions. Furthermore, segemehl is not limited to a specific read length and is able + to mapprimer- or polyadenylation contaminated reads correctly. segemehl implements a matching + strategy based on enhanced suffix arrays (ESA). Segemehl now supports the SAM format, reads + gziped queries to save both disk and memory space and allows bisulfite sequencing mapping + and split read mapping. """ + +toolchain = {'name': 'goolf', 'version': '1.4.10'} + +source_urls = ['http://www.bioinf.uni-leipzig.de/Software/segemehl/'] +sources = ['%s_%s.tar.gz' % (name, version.replace('.','_'))] + +parallel = 1 + +dependencies = [ + ('ncurses', '5.9'), + ('zlib', '1.2.8'), +] + +files_to_copy = [(["lack.x", "segemehl.x", "testrealign.x"], "bin")] + +sanity_check_paths = { + 'files': ["bin/%s" % x for x in ["lack.x" , "segemehl.x", "testrealign.x"]], + 'dirs': ["."] +} + +moduleclass = 'bio' diff --git a/s/spGPU/spGPU-master.eb b/s/spGPU/spGPU-master.eb new file mode 100644 index 00000000..064d3820 --- /dev/null +++ b/s/spGPU/spGPU-master.eb @@ -0,0 +1,30 @@ +easyblock = 'CMakeMake' + +name = 'spGPU' +version = 'master' + +homepage = 'https://github.com/davidebarbieri/spgpu' +description = """spGPU is a set of custom matrix storages and CUDA kernels for + sparse linear algebra computing on GPU. It isn't a replacement for + cuBLAS/cuSPARSE that should be used for a full featured linear algebra + environment on GPU.""" + +toolchain = {'name': 'GCC', 'version': '4.9.3-2.25'} + +source_urls = ['https://github.com/davidebarbieri/spgpu/archive/'] +sources = ['%(version)s.tar.gz'] + +builddependencies = [('CMake', '3.3.1')] + +dependencies =[('CUDA', '7.5.18', '', ('dummy', 'dummy'))] + +patches = ['spGPU-master.patch'] + +srcdir = 'src' + +sanity_check_paths = { + 'files': ['lib/libspgpu.a'], + 'dirs': ['bin', 'lib'], +} + +moduleclass = 'lib' diff --git a/s/spGPU/spGPU-master.patch b/s/spGPU/spGPU-master.patch new file mode 100644 index 00000000..96d02c87 --- /dev/null +++ b/s/spGPU/spGPU-master.patch @@ -0,0 +1,10 @@ +diff -Naur -x .git spgpu/src/CMakeLists.txt spgpu-new/src/CMakeLists.txt +--- spgpu/src/CMakeLists.txt 2016-04-21 15:14:23.000000000 +0200 ++++ spgpu-new/src/CMakeLists.txt 2016-04-21 15:15:36.000000000 +0200 +@@ -199,3 +199,6 @@ + + + ++INSTALL(DIRECTORY ${EXECUTABLE_OUTPUT_PATH}/ DESTINATION bin) ++INSTALL(DIRECTORY ${LIBRARY_OUTPUT_PATH}/ DESTINATION lib) ++ diff --git a/s/spatialindex/spatialindex-1.8.5-foss-2015g.eb b/s/spatialindex/spatialindex-1.8.5-foss-2015g.eb new file mode 100644 index 00000000..5827e37c --- /dev/null +++ b/s/spatialindex/spatialindex-1.8.5-foss-2015g.eb @@ -0,0 +1,23 @@ +easyblock = 'ConfigureMake' +name = 'spatialindex' +version = '1.8.5' + +homepage = 'https://libspatialindex.github.io/index.html' +description = """The purpose of this library is to provide: + * An extensible framework that will support robust spatial indexing methods. + * Support for sophisticated spatial queries. Range, point location, nearest + neighbor and k-nearest neighbor as well as parametric queries (defined by spatial + constraints) should be easy to deploy and run. + * Easy to use interfaces for inserting, deleting and updating information. +""" +toolchain = {'name': 'foss', 'version': '2015g'} + +source_urls = ['http://download.osgeo.org/libspatialindex/'] +sources = ['%(name)s-src-%(version)s.tar.gz'] + +sanity_check_paths = { + 'files': ['lib/libspatialindex.so'], + 'dirs': ['lib'] +} + +moduleclass = 'lib' diff --git a/s/stemming/stemming-1.0-ictce-5.5.0-Python-2.7.6.eb b/s/stemming/stemming-1.0-ictce-5.5.0-Python-2.7.6.eb new file mode 100644 index 00000000..241a1d5f --- /dev/null +++ b/s/stemming/stemming-1.0-ictce-5.5.0-Python-2.7.6.eb @@ -0,0 +1,30 @@ +easyblock = "PythonPackage" + +name = "stemming" +version = "1.0" + +homepage = "https://pypi.python.org/pypi/stemming/" +description = """Python implementations of the Porter, Porter2, Paice-Husk, and Lovins stemming algorithms for English.""" + +toolchain = {'name': 'ictce', 'version': '5.5.0'} + +source_urls = [PYPI_SOURCE] +sources = [SOURCE_TAR_GZ] + +python = "Python" +pythonversion = "2.7.6" + +versionsuffix = "-%s-%s" % (python, pythonversion) + +dependencies = [(python, pythonversion)] + +py_short_ver = ".".join(pythonversion.split(".")[0:2]) +pylibdir = "lib/python%s/site-packages/%s" % (py_short_ver, name) + +sanity_check_paths = { + 'files': [("%s-%%(version)s-py%s.egg" % (pylibdir, py_short_ver), + "%s-%%(version)s-py%s-linux-x86_64.egg" % (pylibdir, py_short_ver))], + 'dirs': [], +} + +moduleclass = 'lib' diff --git a/s/sympy/sympy-0.7.6-intel-2015b-Python-2.7.9.eb b/s/sympy/sympy-0.7.6-intel-2015b-Python-2.7.9.eb new file mode 100644 index 00000000..35c8ec19 --- /dev/null +++ b/s/sympy/sympy-0.7.6-intel-2015b-Python-2.7.9.eb @@ -0,0 +1,34 @@ +easyblock = "PythonPackage" + +name = 'sympy' +version = '0.7.6' + +homepage = 'http://sympy.org/' +description = """SymPy is a Python library for symbolic mathematics. It aims to + become a full-featured computer algebra system (CAS) while keeping the code as + simple as possible in order to be comprehensible and easily extensible. SymPy + is written entirely in Python and does not require any external libraries.""" + +toolchain = {'name': 'intel', 'version': '2015b'} + +source_urls = ['https://github.com/sympy/sympy/releases/download/sympy-%(version)s/'] +sources = [SOURCE_TAR_GZ] + +python = "Python" +pythonversion = '2.7.9' +pythonshortversion = '.'.join(pythonversion.split('.')[:-1]) + +versionsuffix = "-%s-%s" % (python, pythonversion) + +dependencies = [(python, pythonversion)] + +runtest = 'python setup.py test' + +sanity_check_paths = { + 'files': [], + 'dirs': ['lib/python%s/site-packages/sympy' % pythonshortversion], +} + +skipsteps = ['test'] + +moduleclass = 'math' diff --git a/s/sympy/sympy-1.0-foss-2016a-Python-2.7.11.eb b/s/sympy/sympy-1.0-foss-2016a-Python-2.7.11.eb new file mode 100644 index 00000000..6ab91f87 --- /dev/null +++ b/s/sympy/sympy-1.0-foss-2016a-Python-2.7.11.eb @@ -0,0 +1,33 @@ +easyblock = 'PythonPackage' + +name = 'sympy' +version = '1.0' +versionsuffix = '-Python-%(pyver)s' + +homepage = 'http://sympy.org/' +description = """SymPy is a Python library for symbolic mathematics. It aims to + become a full-featured computer algebra system (CAS) while keeping the code as + simple as possible in order to be comprehensible and easily extensible. SymPy + is written entirely in Python and does not require any external libraries.""" + +toolchain = {'name': 'foss', 'version': '2016a'} + +source_urls = [PYPI_SOURCE] +sources = [SOURCE_TAR_GZ] + +#Patch to fix tests +patches = ['sympy-1.0_tests-unicode.patch'] + +dependencies = [ + ('Python', '2.7.11'), + ('mpmath', '0.19', '-Python-%(pyver)s'), +] + +runtest = 'python setup.py test' + +sanity_check_paths = { + 'files': [], + 'dirs': ['lib/python%(pyshortver)s/site-packages/%(name)s-%(version)s-py%(pyshortver)s.egg/%(name)s'], +} + +moduleclass = 'math' diff --git a/s/sympy/sympy-1.0-intel-2016a-Python-2.7.11.eb b/s/sympy/sympy-1.0-intel-2016a-Python-2.7.11.eb new file mode 100644 index 00000000..09140f6d --- /dev/null +++ b/s/sympy/sympy-1.0-intel-2016a-Python-2.7.11.eb @@ -0,0 +1,33 @@ +easyblock = 'PythonPackage' + +name = 'sympy' +version = '1.0' +versionsuffix = '-Python-%(pyver)s' + +homepage = 'http://sympy.org/' +description = """SymPy is a Python library for symbolic mathematics. It aims to + become a full-featured computer algebra system (CAS) while keeping the code as + simple as possible in order to be comprehensible and easily extensible. SymPy + is written entirely in Python and does not require any external libraries.""" + +toolchain = {'name': 'intel', 'version': '2016a'} + +source_urls = [PYPI_SOURCE] +sources = [SOURCE_TAR_GZ] + +#Patch to fix tests +patches = ['sympy-1.0_tests-unicode.patch'] + +dependencies = [ + ('Python', '2.7.11'), + ('mpmath', '0.19', '-Python-%(pyver)s'), +] + +runtest = 'python setup.py test' + +sanity_check_paths = { + 'files': [], + 'dirs': ['lib/python%(pyshortver)s/site-packages/%(name)s-%(version)s-py%(pyshortver)s.egg/%(name)s'], +} + +moduleclass = 'math' diff --git a/t/TAU/TAU-2.22.2-goolf-1.5.14.eb b/t/TAU/TAU-2.22.2-goolf-1.5.14.eb new file mode 100644 index 00000000..2f2888a8 --- /dev/null +++ b/t/TAU/TAU-2.22.2-goolf-1.5.14.eb @@ -0,0 +1,35 @@ +# This is an easyconfig file for EasyBuild, see https://github.com/hpcugent/easybuild +# Copyright:: Copyright 2013 Juelich Supercomputing Centre, Germany +# Authors:: Bernd Mohr +# License:: New BSD +# +# This work is based from experiences from the UNITE project +# http://apps.fz-juelich.de/unite/ +## +name = 'TAU' +version = '2.22.2' + +homepage = 'http://tau.uoregon.edu' +description = """The TAU Performance System is a portable profiling and tracing toolkit + for performance analysis of parallel programs written in Fortran, C, C++, Java, Python.""" + +toolchain = {'name': 'goolf', 'version': '1.5.14'} +toolchainopts = {'usempi': True} + +source_urls = ['http://www.cs.uoregon.edu/research/paracomp/tau/tauprofile/dist/'] +sources = [SOURCELOWER_TAR_GZ] + +dependencies = [ + ('OTF', '1.12.4'), + ('PAPI', '5.2.0'), + ('PDT', '3.19'), + ('Score-P', '1.2.1'), + # obsolete backends, use Score-P instead + #('Scalasca', '1.4.3'), + #('VampirTrace', '5.14.4'), +] + +# scalasca and vampirtrace backends are deprecated +extra_backends = ['scorep'] + +moduleclass = 'perf' diff --git a/t/Tcl/Tcl-8.3.5-ictce-5.5.0.eb b/t/Tcl/Tcl-8.3.5-ictce-5.5.0.eb new file mode 100644 index 00000000..c8585dbd --- /dev/null +++ b/t/Tcl/Tcl-8.3.5-ictce-5.5.0.eb @@ -0,0 +1,25 @@ +easyblock = 'ConfigureMake' + +name = 'Tcl' +version = '8.3.5' + +homepage = 'http://www.tcl.tk/' +description = """Tcl (Tool Command Language) is a very powerful but easy to learn dynamic programming language, +suitable for a very wide range of uses, including web and desktop applications, networking, administration, testing and many more.""" + +toolchain = {'name': 'ictce', 'version': '5.5.0'} + +source_urls = ["http://prdownloads.sourceforge.net/tcl"] +sources = ['%(namelower)s%(version)s-src.tar.gz'] + +dependencies = [ + ('zlib', '1.2.5'), +] + +configopts = '--enable-threads EXTRA_INSTALL="install-private-headers"' + +runtest = 'test' + +start_dir = 'unix' + +moduleclass = 'lang' diff --git a/t/Tcl/Tcl-8.5.12-foss-2014b.eb b/t/Tcl/Tcl-8.5.12-foss-2014b.eb new file mode 100644 index 00000000..32fe48b9 --- /dev/null +++ b/t/Tcl/Tcl-8.5.12-foss-2014b.eb @@ -0,0 +1,25 @@ +easyblock = 'ConfigureMake' + +name = 'Tcl' +version = '8.5.12' + +homepage = 'http://www.tcl.tk/' +description = """Tcl (Tool Command Language) is a very powerful but easy to learn dynamic programming language, + suitable for a very wide range of uses, including web and desktop applications, networking, administration, testing and many more.""" + +toolchain = {'name': 'foss', 'version': '2014b'} + +source_urls = ["http://prdownloads.sourceforge.net/tcl"] +sources = ['%(namelower)s%(version)s-src.tar.gz'] + +dependencies = [ + ('zlib', '1.2.8'), +] + +configopts = '--enable-threads EXTRA_INSTALL="install-private-headers"' + +runtest = 'test' + +start_dir = 'unix' + +moduleclass = 'lang' diff --git a/t/Tcl/Tcl-8.5.12-goolf-1.4.10.eb b/t/Tcl/Tcl-8.5.12-goolf-1.4.10.eb new file mode 100644 index 00000000..7c9d9e80 --- /dev/null +++ b/t/Tcl/Tcl-8.5.12-goolf-1.4.10.eb @@ -0,0 +1,25 @@ +easyblock = 'ConfigureMake' + +name = 'Tcl' +version = '8.5.12' + +homepage = 'http://www.tcl.tk/' +description = """Tcl (Tool Command Language) is a very powerful but easy to learn dynamic programming language, +suitable for a very wide range of uses, including web and desktop applications, networking, administration, testing and many more.""" + +toolchain = {'name': 'goolf', 'version': '1.4.10'} + +source_urls = ["http://prdownloads.sourceforge.net/tcl"] +sources = ['%(namelower)s%(version)s-src.tar.gz'] + +dependencies = [ + ('zlib', '1.2.7'), +] + +configopts = '--enable-threads EXTRA_INSTALL="install-private-headers"' + +runtest = 'test' + +start_dir = 'unix' + +moduleclass = 'lang' diff --git a/t/Tcl/Tcl-8.5.12-ictce-5.3.0.eb b/t/Tcl/Tcl-8.5.12-ictce-5.3.0.eb new file mode 100644 index 00000000..19f10152 --- /dev/null +++ b/t/Tcl/Tcl-8.5.12-ictce-5.3.0.eb @@ -0,0 +1,25 @@ +easyblock = 'ConfigureMake' + +name = 'Tcl' +version = '8.5.12' + +homepage = 'http://www.tcl.tk/' +description = """Tcl (Tool Command Language) is a very powerful but easy to learn dynamic programming language, + suitable for a very wide range of uses, including web and desktop applications, networking, administration, testing and many more.""" + +toolchain = {'name': 'ictce', 'version': '5.3.0'} + +source_urls = ["http://prdownloads.sourceforge.net/tcl"] +sources = ['%(namelower)s%(version)s-src.tar.gz'] + +dependencies = [ + ('zlib', '1.2.7'), +] + +configopts = '--enable-threads EXTRA_INSTALL="install-private-headers"' + +runtest = 'test' + +start_dir = 'unix' + +moduleclass = 'lang' diff --git a/t/Tcl/Tcl-8.5.12-ictce-5.5.0.eb b/t/Tcl/Tcl-8.5.12-ictce-5.5.0.eb new file mode 100644 index 00000000..35f9095b --- /dev/null +++ b/t/Tcl/Tcl-8.5.12-ictce-5.5.0.eb @@ -0,0 +1,25 @@ +easyblock = 'ConfigureMake' + +name = 'Tcl' +version = '8.5.12' + +homepage = 'http://www.tcl.tk/' +description = """Tcl (Tool Command Language) is a very powerful but easy to learn dynamic programming language, + suitable for a very wide range of uses, including web and desktop applications, networking, administration, testing and many more.""" + +toolchain = {'name': 'ictce', 'version': '5.5.0'} + +source_urls = ["http://prdownloads.sourceforge.net/tcl"] +sources = ['%(namelower)s%(version)s-src.tar.gz'] + +dependencies = [ + ('zlib', '1.2.7'), +] + +configopts = '--enable-threads EXTRA_INSTALL="install-private-headers"' + +runtest = 'test' + +start_dir = 'unix' + +moduleclass = 'lang' diff --git a/t/Tcl/Tcl-8.5.12-intel-2014b.eb b/t/Tcl/Tcl-8.5.12-intel-2014b.eb new file mode 100644 index 00000000..ca1465be --- /dev/null +++ b/t/Tcl/Tcl-8.5.12-intel-2014b.eb @@ -0,0 +1,25 @@ +easyblock = 'ConfigureMake' + +name = 'Tcl' +version = '8.5.12' + +homepage = 'http://www.tcl.tk/' +description = """Tcl (Tool Command Language) is a very powerful but easy to learn dynamic programming language, + suitable for a very wide range of uses, including web and desktop applications, networking, administration, testing and many more.""" + +toolchain = {'name': 'intel', 'version': '2014b'} + +source_urls = ["http://prdownloads.sourceforge.net/tcl"] +sources = ['%(namelower)s%(version)s-src.tar.gz'] + +dependencies = [ + ('zlib', '1.2.8'), +] + +configopts = '--enable-threads EXTRA_INSTALL="install-private-headers"' + +runtest = 'test' + +start_dir = 'unix' + +moduleclass = 'lang' diff --git a/t/Tcl/Tcl-8.5.12-intel-2015b.eb b/t/Tcl/Tcl-8.5.12-intel-2015b.eb new file mode 100644 index 00000000..37a7ae20 --- /dev/null +++ b/t/Tcl/Tcl-8.5.12-intel-2015b.eb @@ -0,0 +1,27 @@ +# Built with EasyBuild version 2.1.1 on 2015-06-29_22-03-56 +easyblock = 'ConfigureMake' + +name = 'Tcl' +version = '8.5.12' + +homepage = 'http://www.tcl.tk/' +description = """Tcl (Tool Command Language) is a very powerful but easy to learn dynamic programming language, + suitable for a very wide range of uses, including web and desktop applications, networking, administration, testing and many more.""" + +toolchain = {'name': 'intel', 'version': '2015b'} + +source_urls = ["http://prdownloads.sourceforge.net/tcl"] +sources = ['%(namelower)s%(version)s-src.tar.gz'] + +dependencies = [ + ('zlib', '1.2.8'), +] + +configopts = '--enable-threads EXTRA_INSTALL="install-private-headers"' + +runtest = 'test' + +start_dir = 'unix' + +moduleclass = 'lang' + diff --git a/t/Tcl/Tcl-8.5.14-goolf-1.4.10.eb b/t/Tcl/Tcl-8.5.14-goolf-1.4.10.eb new file mode 100644 index 00000000..3e317dec --- /dev/null +++ b/t/Tcl/Tcl-8.5.14-goolf-1.4.10.eb @@ -0,0 +1,25 @@ +easyblock = 'ConfigureMake' + +name = 'Tcl' +version = '8.5.14' + +homepage = 'http://www.tcl.tk/' +description = """Tcl (Tool Command Language) is a very powerful but easy to learn dynamic programming language, +suitable for a very wide range of uses, including web and desktop applications, networking, administration, testing and many more.""" + +toolchain = {'name': 'goolf', 'version': '1.4.10'} + +source_urls = ["http://prdownloads.sourceforge.net/tcl"] +sources = ['%(namelower)s%(version)s-src.tar.gz'] + +dependencies = [ + ('zlib', '1.2.7'), +] + +configopts = '--enable-threads EXTRA_INSTALL="install-private-headers"' + +runtest = 'test' + +start_dir = 'unix' + +moduleclass = 'lang' diff --git a/t/Tcl/Tcl-8.5.14-ictce-5.3.0.eb b/t/Tcl/Tcl-8.5.14-ictce-5.3.0.eb new file mode 100644 index 00000000..5e237ee8 --- /dev/null +++ b/t/Tcl/Tcl-8.5.14-ictce-5.3.0.eb @@ -0,0 +1,25 @@ +easyblock = 'ConfigureMake' + +name = 'Tcl' +version = '8.5.14' + +homepage = 'http://www.tcl.tk/' +description = """Tcl (Tool Command Language) is a very powerful but easy to learn dynamic programming language, +suitable for a very wide range of uses, including web and desktop applications, networking, administration, testing and many more.""" + +toolchain = {'name': 'ictce', 'version': '5.3.0'} + +source_urls = ["http://prdownloads.sourceforge.net/tcl"] +sources = ['%(namelower)s%(version)s-src.tar.gz'] + +dependencies = [ + ('zlib', '1.2.7'), +] + +configopts = '--enable-threads EXTRA_INSTALL="install-private-headers"' + +runtest = 'test' + +start_dir = 'unix' + +moduleclass = 'lang' diff --git a/t/Tcl/Tcl-8.5.15-ictce-5.3.0.eb b/t/Tcl/Tcl-8.5.15-ictce-5.3.0.eb new file mode 100644 index 00000000..78a978f3 --- /dev/null +++ b/t/Tcl/Tcl-8.5.15-ictce-5.3.0.eb @@ -0,0 +1,25 @@ +easyblock = 'ConfigureMake' + +name = 'Tcl' +version = '8.5.15' + +homepage = 'http://www.tcl.tk/' +description = """Tcl (Tool Command Language) is a very powerful but easy to learn dynamic programming language, +suitable for a very wide range of uses, including web and desktop applications, networking, administration, testing and many more.""" + +toolchain = {'name': 'ictce', 'version': '5.3.0'} + +source_urls = ["http://prdownloads.sourceforge.net/tcl"] +sources = ['%(namelower)s%(version)s-src.tar.gz'] + +dependencies = [ + ('zlib', '1.2.5'), +] + +configopts = '--enable-threads EXTRA_INSTALL="install-private-headers"' + +runtest = 'test' + +start_dir = 'unix' + +moduleclass = 'lang' diff --git a/t/Tcl/Tcl-8.5.16-ictce-5.5.0.eb b/t/Tcl/Tcl-8.5.16-ictce-5.5.0.eb new file mode 100644 index 00000000..f46eebee --- /dev/null +++ b/t/Tcl/Tcl-8.5.16-ictce-5.5.0.eb @@ -0,0 +1,25 @@ +easyblock = 'ConfigureMake' + +name = 'Tcl' +version = '8.5.16' + +homepage = 'http://www.tcl.tk/' +description = """Tcl (Tool Command Language) is a very powerful but easy to learn dynamic programming language, +suitable for a very wide range of uses, including web and desktop applications, networking, administration, testing and many more.""" + +toolchain = {'name': 'ictce', 'version': '5.5.0'} + +source_urls = ["http://prdownloads.sourceforge.net/tcl"] +sources = ['%(namelower)s%(version)s-src.tar.gz'] + +dependencies = [ + ('zlib', '1.2.7'), +] + +configopts = '--enable-threads EXTRA_INSTALL="install-private-headers"' + +runtest = 'test' + +start_dir = 'unix' + +moduleclass = 'lang' diff --git a/t/Tcl/Tcl-8.6.1-goolf-1.4.10.eb b/t/Tcl/Tcl-8.6.1-goolf-1.4.10.eb new file mode 100644 index 00000000..39ddf4b3 --- /dev/null +++ b/t/Tcl/Tcl-8.6.1-goolf-1.4.10.eb @@ -0,0 +1,25 @@ +easyblock = 'ConfigureMake' + +name = 'Tcl' +version = '8.6.1' + +homepage = 'http://www.tcl.tk/' +description = """Tcl (Tool Command Language) is a very powerful but easy to learn dynamic programming language, +suitable for a very wide range of uses, including web and desktop applications, networking, administration, testing and many more.""" + +toolchain = {'name': 'goolf', 'version': '1.4.10'} + +source_urls = ["http://prdownloads.sourceforge.net/tcl"] +sources = ['%(namelower)s%(version)s-src.tar.gz'] + +dependencies = [ + ('zlib', '1.2.7'), +] + +configopts = '--enable-threads EXTRA_INSTALL="install-private-headers"' + +runtest = 'test' + +start_dir = 'unix' + +moduleclass = 'lang' diff --git a/t/Tcl/Tcl-8.6.1-ictce-5.3.0.eb b/t/Tcl/Tcl-8.6.1-ictce-5.3.0.eb new file mode 100644 index 00000000..1392ae5c --- /dev/null +++ b/t/Tcl/Tcl-8.6.1-ictce-5.3.0.eb @@ -0,0 +1,25 @@ +easyblock = 'ConfigureMake' + +name = 'Tcl' +version = '8.6.1' + +homepage = 'http://www.tcl.tk/' +description = """Tcl (Tool Command Language) is a very powerful but easy to learn dynamic programming language, +suitable for a very wide range of uses, including web and desktop applications, networking, administration, testing and many more.""" + +toolchain = {'name': 'ictce', 'version': '5.3.0'} + +source_urls = ["http://prdownloads.sourceforge.net/tcl"] +sources = ['%(namelower)s%(version)s-src.tar.gz'] + +dependencies = [ + ('zlib', '1.2.7'), +] + +configopts = '--enable-threads EXTRA_INSTALL="install-private-headers"' + +runtest = 'test' + +start_dir = 'unix' + +moduleclass = 'lang' diff --git a/t/Tcl/Tcl-8.6.2-ictce-5.5.0.eb b/t/Tcl/Tcl-8.6.2-ictce-5.5.0.eb new file mode 100644 index 00000000..8c3980c5 --- /dev/null +++ b/t/Tcl/Tcl-8.6.2-ictce-5.5.0.eb @@ -0,0 +1,25 @@ +easyblock = 'ConfigureMake' + +name = 'Tcl' +version = '8.6.2' + +homepage = 'http://www.tcl.tk/' +description = """Tcl (Tool Command Language) is a very powerful but easy to learn dynamic programming language, +suitable for a very wide range of uses, including web and desktop applications, networking, administration, testing and many more.""" + +toolchain = {'name': 'ictce', 'version': '5.5.0'} + +source_urls = ["http://prdownloads.sourceforge.net/tcl"] +sources = ['%(namelower)s%(version)s-src.tar.gz'] + +dependencies = [ + ('zlib', '1.2.7'), +] + +configopts = '--enable-threads EXTRA_INSTALL="install-private-headers"' + +runtest = 'test' + +start_dir = 'unix' + +moduleclass = 'lang' diff --git a/t/Tcl/Tcl-8.6.2-intel-2014b.eb b/t/Tcl/Tcl-8.6.2-intel-2014b.eb new file mode 100644 index 00000000..7a5ef170 --- /dev/null +++ b/t/Tcl/Tcl-8.6.2-intel-2014b.eb @@ -0,0 +1,25 @@ +easyblock = 'ConfigureMake' + +name = 'Tcl' +version = '8.6.2' + +homepage = 'http://www.tcl.tk/' +description = """Tcl (Tool Command Language) is a very powerful but easy to learn dynamic programming language, +suitable for a very wide range of uses, including web and desktop applications, networking, administration, testing and many more.""" + +toolchain = {'name': 'intel', 'version': '2014b'} + +source_urls = ["http://prdownloads.sourceforge.net/tcl"] +sources = ['%(namelower)s%(version)s-src.tar.gz'] + +dependencies = [ + ('zlib', '1.2.8'), +] + +configopts = '--enable-threads EXTRA_INSTALL="install-private-headers"' + +runtest = 'test' + +start_dir = 'unix' + +moduleclass = 'lang' diff --git a/t/Tcl/Tcl-8.6.3-GCC-4.9.2.eb b/t/Tcl/Tcl-8.6.3-GCC-4.9.2.eb new file mode 100644 index 00000000..b3a8beb7 --- /dev/null +++ b/t/Tcl/Tcl-8.6.3-GCC-4.9.2.eb @@ -0,0 +1,25 @@ +easyblock = 'ConfigureMake' + +name = 'Tcl' +version = '8.6.3' + +homepage = 'http://www.tcl.tk/' +description = """Tcl (Tool Command Language) is a very powerful but easy to learn dynamic programming language, +suitable for a very wide range of uses, including web and desktop applications, networking, administration, testing and many more.""" + +toolchain = {'name': 'GCC', 'version': '4.9.2'} + +source_urls = ["http://prdownloads.sourceforge.net/tcl"] +sources = ['%(namelower)s%(version)s-src.tar.gz'] + +dependencies = [ + ('zlib', '1.2.8'), +] + +configopts = '--enable-threads EXTRA_INSTALL="install-private-headers"' + +runtest = 'test' + +start_dir = 'unix' + +moduleclass = 'lang' diff --git a/t/Tcl/Tcl-8.6.3-GNU-5.1.0-2.25.eb b/t/Tcl/Tcl-8.6.3-GNU-5.1.0-2.25.eb new file mode 100644 index 00000000..59823a74 --- /dev/null +++ b/t/Tcl/Tcl-8.6.3-GNU-5.1.0-2.25.eb @@ -0,0 +1,25 @@ +easyblock = 'ConfigureMake' + +name = 'Tcl' +version = '8.6.3' + +homepage = 'http://www.tcl.tk/' +description = """Tcl (Tool Command Language) is a very powerful but easy to learn dynamic programming language, +suitable for a very wide range of uses, including web and desktop applications, networking, administration, testing and many more.""" + +toolchain = {'name': 'GNU', 'version': '5.1.0-2.25'} + +source_urls = ["http://prdownloads.sourceforge.net/tcl"] +sources = ['%(namelower)s%(version)s-src.tar.gz'] + +dependencies = [ + ('zlib', '1.2.8'), +] + +configopts = '--enable-threads EXTRA_INSTALL="install-private-headers"' + +runtest = 'test' + +start_dir = 'unix' + +moduleclass = 'lang' diff --git a/t/Tcl/Tcl-8.6.3-foss-2015.05.eb b/t/Tcl/Tcl-8.6.3-foss-2015.05.eb new file mode 100644 index 00000000..bd202e0e --- /dev/null +++ b/t/Tcl/Tcl-8.6.3-foss-2015.05.eb @@ -0,0 +1,25 @@ +easyblock = 'ConfigureMake' + +name = 'Tcl' +version = '8.6.3' + +homepage = 'http://www.tcl.tk/' +description = """Tcl (Tool Command Language) is a very powerful but easy to learn dynamic programming language, +suitable for a very wide range of uses, including web and desktop applications, networking, administration, testing and many more.""" + +toolchain = {'name': 'foss', 'version': '2015.05'} + +source_urls = ["http://prdownloads.sourceforge.net/tcl"] +sources = ['%(namelower)s%(version)s-src.tar.gz'] + +dependencies = [ + ('zlib', '1.2.8'), +] + +configopts = '--enable-threads EXTRA_INSTALL="install-private-headers"' + +runtest = 'test' + +start_dir = 'unix' + +moduleclass = 'lang' diff --git a/t/Tcl/Tcl-8.6.3-foss-2015a.eb b/t/Tcl/Tcl-8.6.3-foss-2015a.eb new file mode 100644 index 00000000..45613c8d --- /dev/null +++ b/t/Tcl/Tcl-8.6.3-foss-2015a.eb @@ -0,0 +1,25 @@ +easyblock = 'ConfigureMake' + +name = 'Tcl' +version = '8.6.3' + +homepage = 'http://www.tcl.tk/' +description = """Tcl (Tool Command Language) is a very powerful but easy to learn dynamic programming language, +suitable for a very wide range of uses, including web and desktop applications, networking, administration, testing and many more.""" + +toolchain = {'name': 'foss', 'version': '2015a'} + +source_urls = ["http://prdownloads.sourceforge.net/tcl"] +sources = ['%(namelower)s%(version)s-src.tar.gz'] + +dependencies = [ + ('zlib', '1.2.8'), +] + +configopts = '--enable-threads EXTRA_INSTALL="install-private-headers"' + +runtest = 'test' + +start_dir = 'unix' + +moduleclass = 'lang' diff --git a/t/Tcl/Tcl-8.6.3-foss-2015b.eb b/t/Tcl/Tcl-8.6.3-foss-2015b.eb new file mode 100644 index 00000000..ec3f168c --- /dev/null +++ b/t/Tcl/Tcl-8.6.3-foss-2015b.eb @@ -0,0 +1,25 @@ +easyblock = 'ConfigureMake' + +name = 'Tcl' +version = '8.6.3' + +homepage = 'http://www.tcl.tk/' +description = """Tcl (Tool Command Language) is a very powerful but easy to learn dynamic programming language, +suitable for a very wide range of uses, including web and desktop applications, networking, administration, testing and many more.""" + +toolchain = {'name': 'foss', 'version': '2015b'} + +source_urls = ["http://prdownloads.sourceforge.net/tcl"] +sources = ['%(namelower)s%(version)s-src.tar.gz'] + +dependencies = [ + ('zlib', '1.2.8'), +] + +configopts = '--enable-threads EXTRA_INSTALL="install-private-headers"' + +runtest = 'test' + +start_dir = 'unix' + +moduleclass = 'lang' diff --git a/t/Tcl/Tcl-8.6.3-foss-2015g.eb b/t/Tcl/Tcl-8.6.3-foss-2015g.eb new file mode 100644 index 00000000..d5ccc6fb --- /dev/null +++ b/t/Tcl/Tcl-8.6.3-foss-2015g.eb @@ -0,0 +1,25 @@ +easyblock = 'ConfigureMake' + +name = 'Tcl' +version = '8.6.3' + +homepage = 'http://www.tcl.tk/' +description = """Tcl (Tool Command Language) is a very powerful but easy to learn dynamic programming language, +suitable for a very wide range of uses, including web and desktop applications, networking, administration, testing and many more.""" + +toolchain = {'name': 'foss', 'version': '2015g'} + +source_urls = ["http://prdownloads.sourceforge.net/tcl"] +sources = ['%(namelower)s%(version)s-src.tar.gz'] + +dependencies = [ + ('zlib', '1.2.8'), +] + +configopts = '--enable-threads EXTRA_INSTALL="install-private-headers"' + +runtest = 'test' + +start_dir = 'unix' + +moduleclass = 'lang' diff --git a/t/Tcl/Tcl-8.6.3-foss-2016a.eb b/t/Tcl/Tcl-8.6.3-foss-2016a.eb new file mode 100644 index 00000000..c062a60e --- /dev/null +++ b/t/Tcl/Tcl-8.6.3-foss-2016a.eb @@ -0,0 +1,25 @@ +easyblock = 'ConfigureMake' + +name = 'Tcl' +version = '8.6.3' + +homepage = 'http://www.tcl.tk/' +description = """Tcl (Tool Command Language) is a very powerful but easy to learn dynamic programming language, +suitable for a very wide range of uses, including web and desktop applications, networking, administration, testing and many more.""" + +toolchain = {'name': 'foss', 'version': '2016a'} + +source_urls = ["http://prdownloads.sourceforge.net/tcl"] +sources = ['%(namelower)s%(version)s-src.tar.gz'] + +dependencies = [ + ('zlib', '1.2.8'), +] + +configopts = '--enable-threads EXTRA_INSTALL="install-private-headers"' + +runtest = 'test' + +start_dir = 'unix' + +moduleclass = 'lang' diff --git a/t/Tcl/Tcl-8.6.3-gompi-1.5.16.eb b/t/Tcl/Tcl-8.6.3-gompi-1.5.16.eb new file mode 100644 index 00000000..5aa437f5 --- /dev/null +++ b/t/Tcl/Tcl-8.6.3-gompi-1.5.16.eb @@ -0,0 +1,25 @@ +easyblock = 'ConfigureMake' + +name = 'Tcl' +version = '8.6.3' + +homepage = 'http://www.tcl.tk/' +description = """Tcl (Tool Command Language) is a very powerful but easy to learn dynamic programming language, +suitable for a very wide range of uses, including web and desktop applications, networking, administration, testing and many more.""" + +toolchain = {'name': 'gompi', 'version': '1.5.16'} + +source_urls = ["http://prdownloads.sourceforge.net/tcl"] +sources = ['%(namelower)s%(version)s-src.tar.gz'] + +dependencies = [ + ('zlib', '1.2.8'), +] + +configopts = '--enable-threads EXTRA_INSTALL="install-private-headers"' + +runtest = 'test' + +start_dir = 'unix' + +moduleclass = 'lang' diff --git a/t/Tcl/Tcl-8.6.3-gompi-2015e.eb b/t/Tcl/Tcl-8.6.3-gompi-2015e.eb new file mode 100644 index 00000000..2a3e02bc --- /dev/null +++ b/t/Tcl/Tcl-8.6.3-gompi-2015e.eb @@ -0,0 +1,25 @@ +easyblock = 'ConfigureMake' + +name = 'Tcl' +version = '8.6.3' + +homepage = 'http://www.tcl.tk/' +description = """Tcl (Tool Command Language) is a very powerful but easy to learn dynamic programming language, +suitable for a very wide range of uses, including web and desktop applications, networking, administration, testing and many more.""" + +toolchain = {'name': 'gompi', 'version': '2015e'} + +source_urls = ["http://prdownloads.sourceforge.net/tcl"] +sources = ['%(namelower)s%(version)s-src.tar.gz'] + +dependencies = [ + ('zlib', '1.2.8'), +] + +configopts = '--enable-threads EXTRA_INSTALL="install-private-headers"' + +runtest = 'test' + +start_dir = 'unix' + +moduleclass = 'lang' diff --git a/t/Tcl/Tcl-8.6.3-goolf-1.5.14.eb b/t/Tcl/Tcl-8.6.3-goolf-1.5.14.eb new file mode 100644 index 00000000..f1698817 --- /dev/null +++ b/t/Tcl/Tcl-8.6.3-goolf-1.5.14.eb @@ -0,0 +1,25 @@ +easyblock = 'ConfigureMake' + +name = 'Tcl' +version = '8.6.3' + +homepage = 'http://www.tcl.tk/' +description = """Tcl (Tool Command Language) is a very powerful but easy to learn dynamic programming language, +suitable for a very wide range of uses, including web and desktop applications, networking, administration, testing and many more.""" + +toolchain = {'name': 'goolf', 'version': '1.5.14'} + +source_urls = ["http://prdownloads.sourceforge.net/tcl"] +sources = ['%(namelower)s%(version)s-src.tar.gz'] + +dependencies = [ + ('zlib', '1.2.8'), +] + +configopts = '--enable-threads EXTRA_INSTALL="install-private-headers"' + +runtest = 'test' + +start_dir = 'unix' + +moduleclass = 'lang' diff --git a/t/Tcl/Tcl-8.6.3-goolf-1.5.16.eb b/t/Tcl/Tcl-8.6.3-goolf-1.5.16.eb new file mode 100644 index 00000000..a8f55caa --- /dev/null +++ b/t/Tcl/Tcl-8.6.3-goolf-1.5.16.eb @@ -0,0 +1,25 @@ +easyblock = 'ConfigureMake' + +name = 'Tcl' +version = '8.6.3' + +homepage = 'http://www.tcl.tk/' +description = """Tcl (Tool Command Language) is a very powerful but easy to learn dynamic programming language, +suitable for a very wide range of uses, including web and desktop applications, networking, administration, testing and many more.""" + +toolchain = {'name': 'goolf', 'version': '1.5.16'} + +source_urls = ["http://prdownloads.sourceforge.net/tcl"] +sources = ['%(namelower)s%(version)s-src.tar.gz'] + +dependencies = [ + ('zlib', '1.2.8'), +] + +configopts = '--enable-threads EXTRA_INSTALL="install-private-headers"' + +runtest = 'test' + +start_dir = 'unix' + +moduleclass = 'lang' diff --git a/t/Tcl/Tcl-8.6.3-goolf-1.7.20.eb b/t/Tcl/Tcl-8.6.3-goolf-1.7.20.eb new file mode 100644 index 00000000..41060701 --- /dev/null +++ b/t/Tcl/Tcl-8.6.3-goolf-1.7.20.eb @@ -0,0 +1,25 @@ +easyblock = 'ConfigureMake' + +name = 'Tcl' +version = '8.6.3' + +homepage = 'http://www.tcl.tk/' +description = """Tcl (Tool Command Language) is a very powerful but easy to learn dynamic programming language, +suitable for a very wide range of uses, including web and desktop applications, networking, administration, testing and many more.""" + +toolchain = {'name': 'goolf', 'version': '1.7.20'} + +source_urls = ["http://prdownloads.sourceforge.net/tcl"] +sources = ['%(namelower)s%(version)s-src.tar.gz'] + +dependencies = [ + ('zlib', '1.2.8'), +] + +configopts = '--enable-threads EXTRA_INSTALL="install-private-headers"' + +runtest = 'test' + +start_dir = 'unix' + +moduleclass = 'lang' diff --git a/t/Tcl/Tcl-8.6.3-ictce-7.3.5.eb b/t/Tcl/Tcl-8.6.3-ictce-7.3.5.eb new file mode 100644 index 00000000..9a6e017c --- /dev/null +++ b/t/Tcl/Tcl-8.6.3-ictce-7.3.5.eb @@ -0,0 +1,76 @@ +# Built with EasyBuild version 2.1.1 on 2015-08-21_14-42-31 +# Built with EasyBuild version 2.1.1 on 2015-06-29_22-32-28 +easyblock = 'ConfigureMake' + +name = 'Tcl' +version = '8.6.3' + +homepage = 'http://www.tcl.tk/' +description = """Tcl (Tool Command Language) is a very powerful but easy to learn dynamic programming language, +suitable for a very wide range of uses, including web and desktop applications, networking, administration, testing and many more.""" + +toolchain = {'name': 'ictce', 'version': '7.3.5'} + +source_urls = ["http://prdownloads.sourceforge.net/tcl"] +sources = ['%(namelower)s%(version)s-src.tar.gz'] + +dependencies = [ + ('zlib', '1.2.8'), +] + +configopts = '--enable-threads EXTRA_INSTALL="install-private-headers"' + +runtest = 'test' + +start_dir = 'unix' + +moduleclass = 'lang' + +# Build statistics +buildstats = [{ + "easybuild-framework_version": "2.1.1", + "easybuild-easyblocks_version": "2.1.1", + "timestamp": 1435609948, + "build_time": 552.83, + "install_size": 26549325, + "command_line": ['--buildpath=/easybuild/build', '--force', '--installpath=/apps', '--installpath-modules=/apps/modules', '--installpath-software=/apps', '--module-naming-scheme=IT4IModuleNamingScheme', '--modules-footer=/easybuild/templates/modules/jas02_footer.txt', '--repositorypath=/easybuild/file-repository', '--robot=/easybuild/easyconfigs-salomon/easybuild/easyconfigs', '--robot-paths=/easybuild/easyconfigs-salomon/easybuild/easyconfigs', '--sourcepath=/easybuild/sources', '--try-toolchain="[\'intel\', \'2015b\']"', 'Python-2.7.9-intel-2015a.eb'], + "modules_tool": ('EnvironmentModulesC', '/usr/bin/modulecmd', '3.2.10'), + "core_count": 28, + "cpu_model": "Intel(R) Xeon(R) CPU E5-2695 v3 @ 2.30GHz", + "cpu_speed": 2299.882, + "cpu_vendor": "Intel", + "gcc_version": "Using built-in specs.; COLLECT_GCC=gcc; COLLECT_LTO_WRAPPER=/apps/all/GCC/5.1.0-binutils-2.25/libexec/gcc/x86_64-unknown-linux-gnu/5.1.0/lto-wrapper; Target: x86_64-unknown-linux-gnu; Configured with: ../configure --enable-languages=c,c++,fortran --enable-lto --enable-checking=release --disable-multilib --enable-shared=yes --enable-static=yes --enable-threads=posix --enable-gold=default --enable-plugins --enable-ld --with-plugin-ld=ld.gold --prefix=/apps/all/GCC/5.1.0-binutils-2.25 --with-local-prefix=/apps/all/GCC/5.1.0-binutils-2.25 --enable-bootstrap --with-isl=/easybuild/build/GCC/5.1.0/dummy--binutils-2.25/gcc-5.1.0/stage2_stuff; Thread model: posix; gcc version 5.1.0 (GCC) ; ", + "glibc_version": "2.12", + "hostname": "login2", + "os_name": "centos", + "os_type": "Linux", + "os_version": "6.6", + "platform_name": "x86_64-unknown-linux", + "python_version": "2.6.6 (r266:84292, Jan 22 2014, 09:42:36) ; [GCC 4.4.7 20120313 (Red Hat 4.4.7-4)]", + "system_gcc_path": "/apps/all/GCC/5.1.0-binutils-2.25/bin/gcc", + "system_python_path": "/usr/bin/python", +}] + +buildstats.append({ + "easybuild-framework_version": "2.1.1", + "easybuild-easyblocks_version": "2.1.1", + "timestamp": 1440160951, + "build_time": 566.15, + "install_size": 26543927, + "command_line": ['--buildpath=/easybuild/build', '--installpath=/apps', '--installpath-modules=/apps/modules', '--installpath-software=/apps', '--module-naming-scheme=IT4IModuleNamingScheme', '--modules-footer=/easybuild/templates/modules/jas02_footer.txt', '--repositorypath=/easybuild/file-repository', '--robot=/easybuild/easyconfigs-salomon/easybuild/easyconfigs', '--robot-paths=/easybuild/easyconfigs-salomon/easybuild/easyconfigs', '--sourcepath=/easybuild/sources', '--try-toolchain="[\'ictce\', \'7.3.5\']"', 'Python-2.7.9-intel-2015b.eb'], + "modules_tool": ('EnvironmentModulesC', '/usr/bin/modulecmd', '3.2.10'), + "core_count": 28, + "cpu_model": "Intel(R) Xeon(R) CPU E5-2695 v3 @ 2.30GHz", + "cpu_speed": 2299.859, + "cpu_vendor": "Intel", + "gcc_version": "Using built-in specs.; Target: x86_64-redhat-linux; Configured with: ../configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --with-bugurl=http://bugzilla.redhat.com/bugzilla --enable-bootstrap --enable-shared --enable-threads=posix --enable-checking=release --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-gnu-unique-object --enable-languages=c,c++,objc,obj-c++,java,fortran,ada --enable-java-awt=gtk --disable-dssi --with-java-home=/usr/lib/jvm/java-1.5.0-gcj-1.5.0.0/jre --enable-libgcj-multifile --enable-java-maintainer-mode --with-ecj-jar=/usr/share/java/eclipse-ecj.jar --disable-libjava-multilib --with-ppl --with-cloog --with-tune=generic --with-arch_32=i686 --build=x86_64-redhat-linux; Thread model: posix; gcc version 4.4.7 20120313 (Red Hat 4.4.7-11) (GCC) ; ", + "glibc_version": "2.12", + "hostname": "login4", + "os_name": "centos", + "os_type": "Linux", + "os_version": "6.6", + "platform_name": "x86_64-unknown-linux", + "python_version": "2.6.6 (r266:84292, Jan 22 2014, 09:42:36) ; [GCC 4.4.7 20120313 (Red Hat 4.4.7-4)]", + "system_gcc_path": "/usr/bin/gcc", + "system_python_path": "/usr/bin/python", +}) diff --git a/t/Tcl/Tcl-8.6.3-intel-2015a.eb b/t/Tcl/Tcl-8.6.3-intel-2015a.eb new file mode 100644 index 00000000..94518920 --- /dev/null +++ b/t/Tcl/Tcl-8.6.3-intel-2015a.eb @@ -0,0 +1,25 @@ +easyblock = 'ConfigureMake' + +name = 'Tcl' +version = '8.6.3' + +homepage = 'http://www.tcl.tk/' +description = """Tcl (Tool Command Language) is a very powerful but easy to learn dynamic programming language, +suitable for a very wide range of uses, including web and desktop applications, networking, administration, testing and many more.""" + +toolchain = {'name': 'intel', 'version': '2015a'} + +source_urls = ["http://prdownloads.sourceforge.net/tcl"] +sources = ['%(namelower)s%(version)s-src.tar.gz'] + +dependencies = [ + ('zlib', '1.2.8'), +] + +configopts = '--enable-threads EXTRA_INSTALL="install-private-headers"' + +runtest = 'test' + +start_dir = 'unix' + +moduleclass = 'lang' diff --git a/t/Tcl/Tcl-8.6.3-intel-2015b.eb b/t/Tcl/Tcl-8.6.3-intel-2015b.eb new file mode 100644 index 00000000..3e1ab122 --- /dev/null +++ b/t/Tcl/Tcl-8.6.3-intel-2015b.eb @@ -0,0 +1,51 @@ +# Built with EasyBuild version 2.1.1 on 2015-06-29_22-32-28 +easyblock = 'ConfigureMake' + +name = 'Tcl' +version = '8.6.3' + +homepage = 'http://www.tcl.tk/' +description = """Tcl (Tool Command Language) is a very powerful but easy to learn dynamic programming language, +suitable for a very wide range of uses, including web and desktop applications, networking, administration, testing and many more.""" + +toolchain = {'name': 'intel', 'version': '2015b'} + +source_urls = ["http://prdownloads.sourceforge.net/tcl"] +sources = ['%(namelower)s%(version)s-src.tar.gz'] + +dependencies = [ + ('zlib', '1.2.8'), +] + +configopts = '--enable-threads EXTRA_INSTALL="install-private-headers"' + +runtest = 'test' + +start_dir = 'unix' + +moduleclass = 'lang' + +# Build statistics +buildstats = [{ + "easybuild-framework_version": "2.1.1", + "easybuild-easyblocks_version": "2.1.1", + "timestamp": 1435609948, + "build_time": 552.83, + "install_size": 26549325, + "command_line": ['--buildpath=/easybuild/build', '--force', '--installpath=/apps', '--installpath-modules=/apps/modules', '--installpath-software=/apps', '--module-naming-scheme=IT4IModuleNamingScheme', '--modules-footer=/easybuild/templates/modules/jas02_footer.txt', '--repositorypath=/easybuild/file-repository', '--robot=/easybuild/easyconfigs-salomon/easybuild/easyconfigs', '--robot-paths=/easybuild/easyconfigs-salomon/easybuild/easyconfigs', '--sourcepath=/easybuild/sources', '--try-toolchain="[\'intel\', \'2015b\']"', 'Python-2.7.9-intel-2015a.eb'], + "modules_tool": ('EnvironmentModulesC', '/usr/bin/modulecmd', '3.2.10'), + "core_count": 28, + "cpu_model": "Intel(R) Xeon(R) CPU E5-2695 v3 @ 2.30GHz", + "cpu_speed": 2299.882, + "cpu_vendor": "Intel", + "gcc_version": "Using built-in specs.; COLLECT_GCC=gcc; COLLECT_LTO_WRAPPER=/apps/all/GCC/5.1.0-binutils-2.25/libexec/gcc/x86_64-unknown-linux-gnu/5.1.0/lto-wrapper; Target: x86_64-unknown-linux-gnu; Configured with: ../configure --enable-languages=c,c++,fortran --enable-lto --enable-checking=release --disable-multilib --enable-shared=yes --enable-static=yes --enable-threads=posix --enable-gold=default --enable-plugins --enable-ld --with-plugin-ld=ld.gold --prefix=/apps/all/GCC/5.1.0-binutils-2.25 --with-local-prefix=/apps/all/GCC/5.1.0-binutils-2.25 --enable-bootstrap --with-isl=/easybuild/build/GCC/5.1.0/dummy--binutils-2.25/gcc-5.1.0/stage2_stuff; Thread model: posix; gcc version 5.1.0 (GCC) ; ", + "glibc_version": "2.12", + "hostname": "login2", + "os_name": "centos", + "os_type": "Linux", + "os_version": "6.6", + "platform_name": "x86_64-unknown-linux", + "python_version": "2.6.6 (r266:84292, Jan 22 2014, 09:42:36) ; [GCC 4.4.7 20120313 (Red Hat 4.4.7-4)]", + "system_gcc_path": "/apps/all/GCC/5.1.0-binutils-2.25/bin/gcc", + "system_python_path": "/usr/bin/python", +}] diff --git a/t/Tcl/Tcl-8.6.4-GCC-4.9.3-2.25.eb b/t/Tcl/Tcl-8.6.4-GCC-4.9.3-2.25.eb new file mode 100644 index 00000000..e7800ee7 --- /dev/null +++ b/t/Tcl/Tcl-8.6.4-GCC-4.9.3-2.25.eb @@ -0,0 +1,25 @@ +easyblock = 'ConfigureMake' + +name = 'Tcl' +version = '8.6.4' + +homepage = 'http://www.tcl.tk/' +description = """Tcl (Tool Command Language) is a very powerful but easy to learn dynamic programming language, +suitable for a very wide range of uses, including web and desktop applications, networking, administration, testing and many more.""" + +toolchain = {'name': 'GCC', 'version': '4.9.3-2.25'} + +source_urls = ["http://prdownloads.sourceforge.net/tcl"] +sources = ['%(namelower)s%(version)s-src.tar.gz'] + +dependencies = [ + ('zlib', '1.2.8'), +] + +configopts = '--enable-threads EXTRA_INSTALL="install-private-headers"' + +runtest = 'test' + +start_dir = 'unix' + +moduleclass = 'lang' diff --git a/t/Tcl/Tcl-8.6.4-GNU-4.9.3-2.25.eb b/t/Tcl/Tcl-8.6.4-GNU-4.9.3-2.25.eb new file mode 100644 index 00000000..b0ebdff4 --- /dev/null +++ b/t/Tcl/Tcl-8.6.4-GNU-4.9.3-2.25.eb @@ -0,0 +1,25 @@ +easyblock = 'ConfigureMake' + +name = 'Tcl' +version = '8.6.4' + +homepage = 'http://www.tcl.tk/' +description = """Tcl (Tool Command Language) is a very powerful but easy to learn dynamic programming language, +suitable for a very wide range of uses, including web and desktop applications, networking, administration, testing and many more.""" + +toolchain = {'name': 'GNU', 'version': '4.9.3-2.25'} + +source_urls = ["http://prdownloads.sourceforge.net/tcl"] +sources = ['%(namelower)s%(version)s-src.tar.gz'] + +dependencies = [ + ('zlib', '1.2.8'), +] + +configopts = '--enable-threads EXTRA_INSTALL="install-private-headers"' + +runtest = 'test' + +start_dir = 'unix' + +moduleclass = 'lang' diff --git a/t/Tcl/Tcl-8.6.4-foss-2015a.eb b/t/Tcl/Tcl-8.6.4-foss-2015a.eb new file mode 100644 index 00000000..d1a6b6ef --- /dev/null +++ b/t/Tcl/Tcl-8.6.4-foss-2015a.eb @@ -0,0 +1,25 @@ +easyblock = 'ConfigureMake' + +name = 'Tcl' +version = '8.6.4' + +homepage = 'http://www.tcl.tk/' +description = """Tcl (Tool Command Language) is a very powerful but easy to learn dynamic programming language, +suitable for a very wide range of uses, including web and desktop applications, networking, administration, testing and many more.""" + +toolchain = {'name': 'foss', 'version': '2015a'} + +source_urls = ["http://prdownloads.sourceforge.net/tcl"] +sources = ['%(namelower)s%(version)s-src.tar.gz'] + +dependencies = [ + ('zlib', '1.2.8'), +] + +configopts = '--enable-threads EXTRA_INSTALL="install-private-headers"' + +runtest = 'test' + +start_dir = 'unix' + +moduleclass = 'lang' diff --git a/t/Tcl/Tcl-8.6.4-foss-2015b.eb b/t/Tcl/Tcl-8.6.4-foss-2015b.eb new file mode 100644 index 00000000..ba9826c8 --- /dev/null +++ b/t/Tcl/Tcl-8.6.4-foss-2015b.eb @@ -0,0 +1,25 @@ +easyblock = 'ConfigureMake' + +name = 'Tcl' +version = '8.6.4' + +homepage = 'http://www.tcl.tk/' +description = """Tcl (Tool Command Language) is a very powerful but easy to learn dynamic programming language, +suitable for a very wide range of uses, including web and desktop applications, networking, administration, testing and many more.""" + +toolchain = {'name': 'foss', 'version': '2015b'} + +source_urls = ["http://prdownloads.sourceforge.net/tcl"] +sources = ['%(namelower)s%(version)s-src.tar.gz'] + +dependencies = [ + ('zlib', '1.2.8'), +] + +configopts = '--enable-threads EXTRA_INSTALL="install-private-headers"' + +runtest = 'test' + +start_dir = 'unix' + +moduleclass = 'lang' diff --git a/t/Tcl/Tcl-8.6.4-foss-2016a.eb b/t/Tcl/Tcl-8.6.4-foss-2016a.eb new file mode 100644 index 00000000..3884765b --- /dev/null +++ b/t/Tcl/Tcl-8.6.4-foss-2016a.eb @@ -0,0 +1,25 @@ +easyblock = 'ConfigureMake' + +name = 'Tcl' +version = '8.6.4' + +homepage = 'http://www.tcl.tk/' +description = """Tcl (Tool Command Language) is a very powerful but easy to learn dynamic programming language, +suitable for a very wide range of uses, including web and desktop applications, networking, administration, testing and many more.""" + +toolchain = {'name': 'foss', 'version': '2016a'} + +source_urls = ["http://prdownloads.sourceforge.net/tcl"] +sources = ['%(namelower)s%(version)s-src.tar.gz'] + +dependencies = [ + ('zlib', '1.2.8'), +] + +configopts = '--enable-threads EXTRA_INSTALL="install-private-headers"' + +runtest = 'test' + +start_dir = 'unix' + +moduleclass = 'lang' diff --git a/t/Tcl/Tcl-8.6.4-gimkl-2.11.5.eb b/t/Tcl/Tcl-8.6.4-gimkl-2.11.5.eb new file mode 100644 index 00000000..154b3e9e --- /dev/null +++ b/t/Tcl/Tcl-8.6.4-gimkl-2.11.5.eb @@ -0,0 +1,25 @@ +easyblock = 'ConfigureMake' + +name = 'Tcl' +version = '8.6.4' + +homepage = 'http://www.tcl.tk/' +description = """Tcl (Tool Command Language) is a very powerful but easy to learn dynamic programming language, +suitable for a very wide range of uses, including web and desktop applications, networking, administration, testing and many more.""" + +toolchain = {'name': 'gimkl', 'version': '2.11.5'} + +source_urls = ["http://prdownloads.sourceforge.net/tcl"] +sources = ['%(namelower)s%(version)s-src.tar.gz'] + +dependencies = [ + ('zlib', '1.2.8'), +] + +configopts = '--enable-threads EXTRA_INSTALL="install-private-headers"' + +runtest = 'test' + +start_dir = 'unix' + +moduleclass = 'lang' diff --git a/t/Tcl/Tcl-8.6.4-goolf-1.4.10.eb b/t/Tcl/Tcl-8.6.4-goolf-1.4.10.eb new file mode 100644 index 00000000..fe02a2bc --- /dev/null +++ b/t/Tcl/Tcl-8.6.4-goolf-1.4.10.eb @@ -0,0 +1,25 @@ +easyblock = 'ConfigureMake' + +name = 'Tcl' +version = '8.6.4' + +homepage = 'http://www.tcl.tk/' +description = """Tcl (Tool Command Language) is a very powerful but easy to learn dynamic programming language, +suitable for a very wide range of uses, including web and desktop applications, networking, administration, testing and many more.""" + +toolchain = {'name': 'goolf', 'version': '1.4.10'} + +source_urls = ["http://prdownloads.sourceforge.net/tcl"] +sources = ['%(namelower)s%(version)s-src.tar.gz'] + +dependencies = [ + ('zlib', '1.2.8'), +] + +configopts = '--enable-threads EXTRA_INSTALL="install-private-headers"' + +runtest = 'test' + +start_dir = 'unix' + +moduleclass = 'lang' diff --git a/t/Tcl/Tcl-8.6.4-goolf-1.7.20.eb b/t/Tcl/Tcl-8.6.4-goolf-1.7.20.eb new file mode 100644 index 00000000..e2124cc2 --- /dev/null +++ b/t/Tcl/Tcl-8.6.4-goolf-1.7.20.eb @@ -0,0 +1,25 @@ +easyblock = 'ConfigureMake' + +name = 'Tcl' +version = '8.6.4' + +homepage = 'http://www.tcl.tk/' +description = """Tcl (Tool Command Language) is a very powerful but easy to learn dynamic programming language, +suitable for a very wide range of uses, including web and desktop applications, networking, administration, testing and many more.""" + +toolchain = {'name': 'goolf', 'version': '1.7.20'} + +source_urls = ["http://prdownloads.sourceforge.net/tcl"] +sources = ['%(namelower)s%(version)s-src.tar.gz'] + +dependencies = [ + ('zlib', '1.2.8'), +] + +configopts = '--enable-threads EXTRA_INSTALL="install-private-headers"' + +runtest = 'test' + +start_dir = 'unix' + +moduleclass = 'lang' diff --git a/t/Tcl/Tcl-8.6.4-ictce-7.3.5.eb b/t/Tcl/Tcl-8.6.4-ictce-7.3.5.eb new file mode 100644 index 00000000..ab1bbc53 --- /dev/null +++ b/t/Tcl/Tcl-8.6.4-ictce-7.3.5.eb @@ -0,0 +1,25 @@ +easyblock = 'ConfigureMake' + +name = 'Tcl' +version = '8.6.4' + +homepage = 'http://www.tcl.tk/' +description = """Tcl (Tool Command Language) is a very powerful but easy to learn dynamic programming language, +suitable for a very wide range of uses, including web and desktop applications, networking, administration, testing and many more.""" + +toolchain = {'name': 'ictce', 'version': '7.3.5'} + +source_urls = ["http://prdownloads.sourceforge.net/tcl"] +sources = ['%(namelower)s%(version)s-src.tar.gz'] + +dependencies = [ + ('zlib', '1.2.8'), +] + +configopts = '--enable-threads EXTRA_INSTALL="install-private-headers"' + +runtest = 'test' + +start_dir = 'unix' + +moduleclass = 'lang' diff --git a/t/Tcl/Tcl-8.6.4-intel-2015a.eb b/t/Tcl/Tcl-8.6.4-intel-2015a.eb new file mode 100644 index 00000000..b2673863 --- /dev/null +++ b/t/Tcl/Tcl-8.6.4-intel-2015a.eb @@ -0,0 +1,25 @@ +easyblock = 'ConfigureMake' + +name = 'Tcl' +version = '8.6.4' + +homepage = 'http://www.tcl.tk/' +description = """Tcl (Tool Command Language) is a very powerful but easy to learn dynamic programming language, +suitable for a very wide range of uses, including web and desktop applications, networking, administration, testing and many more.""" + +toolchain = {'name': 'intel', 'version': '2015a'} + +source_urls = ["http://prdownloads.sourceforge.net/tcl"] +sources = ['%(namelower)s%(version)s-src.tar.gz'] + +dependencies = [ + ('zlib', '1.2.8'), +] + +configopts = '--enable-threads EXTRA_INSTALL="install-private-headers"' + +runtest = 'test' + +start_dir = 'unix' + +moduleclass = 'lang' diff --git a/t/Tcl/Tcl-8.6.4-intel-2015b.eb b/t/Tcl/Tcl-8.6.4-intel-2015b.eb new file mode 100644 index 00000000..ae226879 --- /dev/null +++ b/t/Tcl/Tcl-8.6.4-intel-2015b.eb @@ -0,0 +1,25 @@ +easyblock = 'ConfigureMake' + +name = 'Tcl' +version = '8.6.4' + +homepage = 'http://www.tcl.tk/' +description = """Tcl (Tool Command Language) is a very powerful but easy to learn dynamic programming language, +suitable for a very wide range of uses, including web and desktop applications, networking, administration, testing and many more.""" + +toolchain = {'name': 'intel', 'version': '2015b'} + +source_urls = ["http://prdownloads.sourceforge.net/tcl"] +sources = ['%(namelower)s%(version)s-src.tar.gz'] + +dependencies = [ + ('zlib', '1.2.8'), +] + +configopts = '--enable-threads EXTRA_INSTALL="install-private-headers"' + +runtest = 'test' + +start_dir = 'unix' + +moduleclass = 'lang' diff --git a/t/Tcl/Tcl-8.6.4-intel-2016.02-GCC-4.9.eb b/t/Tcl/Tcl-8.6.4-intel-2016.02-GCC-4.9.eb new file mode 100644 index 00000000..c2af97cc --- /dev/null +++ b/t/Tcl/Tcl-8.6.4-intel-2016.02-GCC-4.9.eb @@ -0,0 +1,25 @@ +easyblock = 'ConfigureMake' + +name = 'Tcl' +version = '8.6.4' + +homepage = 'http://www.tcl.tk/' +description = """Tcl (Tool Command Language) is a very powerful but easy to learn dynamic programming language, +suitable for a very wide range of uses, including web and desktop applications, networking, administration, testing and many more.""" + +toolchain = {'name': 'intel', 'version': '2016.02-GCC-4.9'} + +source_urls = ["http://prdownloads.sourceforge.net/tcl"] +sources = ['%(namelower)s%(version)s-src.tar.gz'] + +dependencies = [ + ('zlib', '1.2.8'), +] + +configopts = '--enable-threads EXTRA_INSTALL="install-private-headers"' + +runtest = 'test' + +start_dir = 'unix' + +moduleclass = 'lang' diff --git a/t/Tcl/Tcl-8.6.4-intel-2016a.eb b/t/Tcl/Tcl-8.6.4-intel-2016a.eb new file mode 100644 index 00000000..20cd9eb9 --- /dev/null +++ b/t/Tcl/Tcl-8.6.4-intel-2016a.eb @@ -0,0 +1,25 @@ +easyblock = 'ConfigureMake' + +name = 'Tcl' +version = '8.6.4' + +homepage = 'http://www.tcl.tk/' +description = """Tcl (Tool Command Language) is a very powerful but easy to learn dynamic programming language, +suitable for a very wide range of uses, including web and desktop applications, networking, administration, testing and many more.""" + +toolchain = {'name': 'intel', 'version': '2016a'} + +source_urls = ["http://prdownloads.sourceforge.net/tcl"] +sources = ['%(namelower)s%(version)s-src.tar.gz'] + +dependencies = [ + ('zlib', '1.2.8'), +] + +configopts = '--enable-threads EXTRA_INSTALL="install-private-headers"' + +runtest = 'test' + +start_dir = 'unix' + +moduleclass = 'lang' diff --git a/t/Tcl/Tcl-8.6.4-intel-2017.00.eb b/t/Tcl/Tcl-8.6.4-intel-2017.00.eb new file mode 100644 index 00000000..07d8ad16 --- /dev/null +++ b/t/Tcl/Tcl-8.6.4-intel-2017.00.eb @@ -0,0 +1,25 @@ +easyblock = 'ConfigureMake' + +name = 'Tcl' +version = '8.6.4' + +homepage = 'http://www.tcl.tk/' +description = """Tcl (Tool Command Language) is a very powerful but easy to learn dynamic programming language, +suitable for a very wide range of uses, including web and desktop applications, networking, administration, testing and many more.""" + +toolchain = {'name': 'intel', 'version': '2017.00'} + +source_urls = ["http://prdownloads.sourceforge.net/tcl"] +sources = ['%(namelower)s%(version)s-src.tar.gz'] + +dependencies = [ + ('zlib', '1.2.8'), +] + +configopts = '--enable-threads EXTRA_INSTALL="install-private-headers"' + +runtest = 'test' + +start_dir = 'unix' + +moduleclass = 'lang' diff --git a/t/Tcl/Tcl-8.6.5-intel-2017a.eb b/t/Tcl/Tcl-8.6.5-intel-2017a.eb new file mode 100644 index 00000000..765c0a06 --- /dev/null +++ b/t/Tcl/Tcl-8.6.5-intel-2017a.eb @@ -0,0 +1,26 @@ +easyblock = 'ConfigureMake' + +name = 'Tcl' +version = '8.6.5' + +homepage = 'http://www.tcl.tk/' +description = """Tcl (Tool Command Language) is a very powerful but easy to learn dynamic programming language, +suitable for a very wide range of uses, including web and desktop applications, networking, administration, +testing and many more.""" + +toolchain = {'name': 'intel', 'version': '2017a'} + +source_urls = ["http://prdownloads.sourceforge.net/tcl"] +sources = ['%(namelower)s%(version)s-src.tar.gz'] + +dependencies = [ + ('zlib', '1.2.11'), +] + +configopts = '--enable-threads EXTRA_INSTALL="install-private-headers"' + +runtest = 'test' + +start_dir = 'unix' + +moduleclass = 'lang' diff --git a/t/Tcl/Tcl-8.6.5.eb b/t/Tcl/Tcl-8.6.5.eb new file mode 100644 index 00000000..bd7e88ee --- /dev/null +++ b/t/Tcl/Tcl-8.6.5.eb @@ -0,0 +1,26 @@ +easyblock = 'ConfigureMake' + +name = 'Tcl' +version = '8.6.5' + +homepage = 'http://www.tcl.tk/' +description = """Tcl (Tool Command Language) is a very powerful but easy to learn dynamic programming language, +suitable for a very wide range of uses, including web and desktop applications, networking, administration, +testing and many more.""" + +toolchain = {'name': 'dummy', 'version': 'dummy'} + +source_urls = ["http://prdownloads.sourceforge.net/tcl"] +sources = ['%(namelower)s%(version)s-src.tar.gz'] + +dependencies = [ + ('zlib', '1.2.8'), +] + +configopts = '--enable-threads EXTRA_INSTALL="install-private-headers"' + +runtest = 'test' + +start_dir = 'unix' + +moduleclass = 'lang' diff --git a/t/Tcl/Tcl-8.6.6-GCCcore-6.3.0.eb b/t/Tcl/Tcl-8.6.6-GCCcore-6.3.0.eb new file mode 100644 index 00000000..9dca9f6e --- /dev/null +++ b/t/Tcl/Tcl-8.6.6-GCCcore-6.3.0.eb @@ -0,0 +1,30 @@ +easyblock = 'ConfigureMake' + +name = 'Tcl' +version = '8.6.6' + +homepage = 'http://www.tcl.tk/' +description = """Tcl (Tool Command Language) is a very powerful but easy to learn dynamic programming language, +suitable for a very wide range of uses, including web and desktop applications, networking, administration, +testing and many more.""" + +toolchain = {'name': 'GCCcore', 'version': '6.3.0'} + +source_urls = ["http://prdownloads.sourceforge.net/tcl"] +sources = ['%(namelower)s%(version)s-src.tar.gz'] + +builddependencies = [ + ('binutils', '2.27'), +] + +dependencies = [ + ('zlib', '1.2.11'), +] + +configopts = '--enable-threads EXTRA_INSTALL="install-private-headers"' + +runtest = 'test' + +start_dir = 'unix' + +moduleclass = 'lang' diff --git a/t/Tensorflow/Tensorflow-0.12.1-intel-2017.00-Python-2.7.11.eb b/t/Tensorflow/Tensorflow-0.12.1-intel-2017.00-Python-2.7.11.eb new file mode 100644 index 00000000..4d389d47 --- /dev/null +++ b/t/Tensorflow/Tensorflow-0.12.1-intel-2017.00-Python-2.7.11.eb @@ -0,0 +1,35 @@ +easyblock = 'PythonPackage' + +name = 'Tensorflow' +version = '0.12.1' +versionsuffix = '-Python-%(pyver)s' + +homepage = 'https://www.tensorflow.org/' +description = "An open-source software library for Machine Intelligence" + +toolchain = {'name': 'intel', 'version': '2017.00'} + +pymaj = '2' +pymin = '7' +pymajmin = pymaj + pymin + +source_urls = ['https://pypi.python.org/packages/7e/c6/837f4e249aae5c86a632eaaa9779e601eca1487772f8ad75c347bf9e813f/'] +sources = [ + 'tensorflow-%%(version)s-cp%(pymajmin)s-cp%(pymajmin)smu-manylinux1_x86_64.whl' % {'pymajmin': pymajmin}, +] +checksums = ['c98fd26b79a97cc490c942bbafed5462'] + +dependencies = [ + ('Python', '%s.%s.11' % (pymaj, pymin)), + ('protobuf-python', '3.2.0', versionsuffix), +] + +use_pip = True +unpack_sources = False + +sanity_check_paths = { + 'files': ['bin/tensorboard'], + 'dirs': ['lib/python%(pyshortver)s/site-packages'], +} + +moduleclass = 'lib' diff --git a/t/Tk/Tk-8.5.12-intel-2015b.eb b/t/Tk/Tk-8.5.12-intel-2015b.eb new file mode 100644 index 00000000..e1338b75 --- /dev/null +++ b/t/Tk/Tk-8.5.12-intel-2015b.eb @@ -0,0 +1,47 @@ +# Built with EasyBuild version 2.1.1 on 2015-06-30_09-23-50 +easyblock = 'ConfigureMake' + +name = 'Tk' +version = '8.5.12' + +homepage = 'http://www.tcl.tk/' +description = """Tk is an open source, cross-platform widget toolchain that provides a library of basic elements for building + a graphical user interface (GUI) in many different programming languages.""" + +toolchain = {'name': 'intel', 'version': '2015b'} + +source_urls = ["http://prdownloads.sourceforge.net/tcl"] +sources = ['%(namelower)s%(version)s-src.tar.gz'] + +dependencies = [('Tcl', version)] + +configopts = '--enable-threads --with-tcl=$EBROOTTCL/lib CFLAGS="-I$EBROOTTCL/include"' + +start_dir = 'unix' + +moduleclass = 'vis' + +# Build statistics +buildstats = [{ + "easybuild-framework_version": "2.1.1", + "easybuild-easyblocks_version": "2.1.1", + "timestamp": 1435649030, + "build_time": 33.61, + "install_size": 9541274, + "command_line": ['--buildpath=/easybuild/build', '--installpath=/apps', '--installpath-modules=/apps/modules', '--installpath-software=/apps', '--module-naming-scheme=IT4IModuleNamingScheme', '--modules-footer=/easybuild/templates/modules/jas02_footer.txt', '--repositorypath=/easybuild/file-repository', '--robot=/easybuild/easyconfigs-salomon/easybuild/easyconfigs', '--robot-paths=/easybuild/easyconfigs-salomon/easybuild/easyconfigs', '--sourcepath=/easybuild/sources', '--try-toolchain="[\'intel\', \'2015b\']"', 'Tk-8.5.12-ictce-5.3.0.eb'], + "modules_tool": ('EnvironmentModulesC', '/usr/bin/modulecmd', '3.2.10'), + "core_count": 28, + "cpu_model": "Intel(R) Xeon(R) CPU E5-2695 v3 @ 2.30GHz", + "cpu_speed": 2300.041, + "cpu_vendor": "Intel", + "gcc_version": "Using built-in specs.; COLLECT_GCC=gcc; COLLECT_LTO_WRAPPER=/apps/all/GCC/5.1.0-binutils-2.25/libexec/gcc/x86_64-unknown-linux-gnu/5.1.0/lto-wrapper; Target: x86_64-unknown-linux-gnu; Configured with: ../configure --enable-languages=c,c++,fortran --enable-lto --enable-checking=release --disable-multilib --enable-shared=yes --enable-static=yes --enable-threads=posix --enable-gold=default --enable-plugins --enable-ld --with-plugin-ld=ld.gold --prefix=/apps/all/GCC/5.1.0-binutils-2.25 --with-local-prefix=/apps/all/GCC/5.1.0-binutils-2.25 --enable-bootstrap --with-isl=/easybuild/build/GCC/5.1.0/dummy--binutils-2.25/gcc-5.1.0/stage2_stuff; Thread model: posix; gcc version 5.1.0 (GCC) ; ", + "glibc_version": "2.12", + "hostname": "login1", + "os_name": "centos", + "os_type": "Linux", + "os_version": "6.6", + "platform_name": "x86_64-unknown-linux", + "python_version": "2.6.6 (r266:84292, Jan 22 2014, 09:42:36) ; [GCC 4.4.7 20120313 (Red Hat 4.4.7-4)]", + "system_gcc_path": "/apps/all/GCC/5.1.0-binutils-2.25/bin/gcc", + "system_python_path": "/usr/bin/python", +}] diff --git a/t/Tk/Tk-8.6.3-GCC-4.9.2-no-X11.eb b/t/Tk/Tk-8.6.3-GCC-4.9.2-no-X11.eb new file mode 100644 index 00000000..878cfecf --- /dev/null +++ b/t/Tk/Tk-8.6.3-GCC-4.9.2-no-X11.eb @@ -0,0 +1,25 @@ +easyblock = 'ConfigureMake' + +name = 'Tk' +version = '8.6.3' +versionsuffix = '-no-X11' + +homepage = 'http://www.tcl.tk/' +description = """Tk is an open source, cross-platform widget toolchain that provides a library of basic elements for building + a graphical user interface (GUI) in many different programming languages.""" + +toolchain = {'name': 'GCC', 'version': '4.9.2'} + +source_urls = ["http://prdownloads.sourceforge.net/tcl"] +sources = ['%(namelower)s%(version)s-src.tar.gz'] + +dependencies = [ + ('Tcl', version), + ('zlib', '1.2.8'), +] + +configopts = '--enable-threads --with-tcl=$EBROOTTCL/lib --without-x CFLAGS="-I$EBROOTTCL/include"' + +start_dir = 'unix' + +moduleclass = 'vis' diff --git a/t/Tk/Tk-8.6.3-foss-2015.05-no-X11.eb b/t/Tk/Tk-8.6.3-foss-2015.05-no-X11.eb new file mode 100644 index 00000000..ac0d5ff0 --- /dev/null +++ b/t/Tk/Tk-8.6.3-foss-2015.05-no-X11.eb @@ -0,0 +1,25 @@ +easyblock = 'ConfigureMake' + +name = 'Tk' +version = '8.6.3' +versionsuffix = '-no-X11' + +homepage = 'http://www.tcl.tk/' +description = """Tk is an open source, cross-platform widget toolchain that provides a library of basic elements for building + a graphical user interface (GUI) in many different programming languages.""" + +toolchain = {'name': 'foss', 'version': '2015.05'} + +source_urls = ["http://prdownloads.sourceforge.net/tcl"] +sources = ['%(namelower)s%(version)s-src.tar.gz'] + +dependencies = [ + ('Tcl', version), + ('zlib', '1.2.8'), +] + +configopts = '--enable-threads --with-tcl=$EBROOTTCL/lib --without-x CFLAGS="-I$EBROOTTCL/include"' + +start_dir = 'unix' + +moduleclass = 'vis' diff --git a/t/Tk/Tk-8.6.3-foss-2015a-no-X11.eb b/t/Tk/Tk-8.6.3-foss-2015a-no-X11.eb new file mode 100644 index 00000000..0cf00324 --- /dev/null +++ b/t/Tk/Tk-8.6.3-foss-2015a-no-X11.eb @@ -0,0 +1,25 @@ +easyblock = 'ConfigureMake' + +name = 'Tk' +version = '8.6.3' +versionsuffix = '-no-X11' + +homepage = 'http://www.tcl.tk/' +description = """Tk is an open source, cross-platform widget toolchain that provides a library of basic elements for building + a graphical user interface (GUI) in many different programming languages.""" + +toolchain = {'name': 'foss', 'version': '2015a'} + +source_urls = ["http://prdownloads.sourceforge.net/tcl"] +sources = ['%(namelower)s%(version)s-src.tar.gz'] + +dependencies = [ + ('Tcl', version), + ('zlib', '1.2.8'), +] + +configopts = '--enable-threads --with-tcl=$EBROOTTCL/lib --without-x CFLAGS="-I$EBROOTTCL/include"' + +start_dir = 'unix' + +moduleclass = 'vis' diff --git a/t/Tk/Tk-8.6.3-foss-2015b-no-X11.eb b/t/Tk/Tk-8.6.3-foss-2015b-no-X11.eb new file mode 100644 index 00000000..aaa247a6 --- /dev/null +++ b/t/Tk/Tk-8.6.3-foss-2015b-no-X11.eb @@ -0,0 +1,25 @@ +easyblock = 'ConfigureMake' + +name = 'Tk' +version = '8.6.3' +versionsuffix = '-no-X11' + +homepage = 'http://www.tcl.tk/' +description = """Tk is an open source, cross-platform widget toolchain that provides a library of basic elements for building + a graphical user interface (GUI) in many different programming languages.""" + +toolchain = {'name': 'foss', 'version': '2015b'} + +source_urls = ["http://prdownloads.sourceforge.net/tcl"] +sources = ['%(namelower)s%(version)s-src.tar.gz'] + +dependencies = [ + ('Tcl', version), + ('zlib', '1.2.8'), +] + +configopts = '--enable-threads --with-tcl=$EBROOTTCL/lib --without-x CFLAGS="-I$EBROOTTCL/include"' + +start_dir = 'unix' + +moduleclass = 'vis' diff --git a/t/Tk/Tk-8.6.3-gompi-1.5.16-no-X11.eb b/t/Tk/Tk-8.6.3-gompi-1.5.16-no-X11.eb new file mode 100644 index 00000000..0a860475 --- /dev/null +++ b/t/Tk/Tk-8.6.3-gompi-1.5.16-no-X11.eb @@ -0,0 +1,25 @@ +easyblock = 'ConfigureMake' + +name = 'Tk' +version = '8.6.3' +versionsuffix = '-no-X11' + +homepage = 'http://www.tcl.tk/' +description = """Tk is an open source, cross-platform widget toolchain that provides a library of basic elements for building + a graphical user interface (GUI) in many different programming languages.""" + +toolchain = {'name': 'gompi', 'version': '1.5.16'} + +source_urls = ["http://prdownloads.sourceforge.net/tcl"] +sources = ['%(namelower)s%(version)s-src.tar.gz'] + +dependencies = [ + ('Tcl', version), + ('zlib', '1.2.8'), +] + +configopts = '--enable-threads --with-tcl=$EBROOTTCL/lib --without-x CFLAGS="-I$EBROOTTCL/include"' + +start_dir = 'unix' + +moduleclass = 'vis' diff --git a/t/Tk/Tk-8.6.3-goolf-1.5.14-no-X11.eb b/t/Tk/Tk-8.6.3-goolf-1.5.14-no-X11.eb new file mode 100644 index 00000000..890bfc8c --- /dev/null +++ b/t/Tk/Tk-8.6.3-goolf-1.5.14-no-X11.eb @@ -0,0 +1,25 @@ +easyblock = 'ConfigureMake' + +name = 'Tk' +version = '8.6.3' +versionsuffix = '-no-X11' + +homepage = 'http://www.tcl.tk/' +description = """Tk is an open source, cross-platform widget toolchain that provides a library of basic elements for building + a graphical user interface (GUI) in many different programming languages.""" + +toolchain = {'name': 'goolf', 'version': '1.5.14'} + +source_urls = ["http://prdownloads.sourceforge.net/tcl"] +sources = ['%(namelower)s%(version)s-src.tar.gz'] + +dependencies = [ + ('Tcl', version), + ('zlib', '1.2.8'), +] + +configopts = '--enable-threads --with-tcl=$EBROOTTCL/lib --without-x CFLAGS="-I$EBROOTTCL/include"' + +start_dir = 'unix' + +moduleclass = 'vis' diff --git a/t/Tk/Tk-8.6.3-goolf-1.5.16-no-X11.eb b/t/Tk/Tk-8.6.3-goolf-1.5.16-no-X11.eb new file mode 100644 index 00000000..b383831c --- /dev/null +++ b/t/Tk/Tk-8.6.3-goolf-1.5.16-no-X11.eb @@ -0,0 +1,25 @@ +easyblock = 'ConfigureMake' + +name = 'Tk' +version = '8.6.3' +versionsuffix = '-no-X11' + +homepage = 'http://www.tcl.tk/' +description = """Tk is an open source, cross-platform widget toolchain that provides a library of basic elements for building + a graphical user interface (GUI) in many different programming languages.""" + +toolchain = {'name': 'goolf', 'version': '1.5.16'} + +source_urls = ["http://prdownloads.sourceforge.net/tcl"] +sources = ['%(namelower)s%(version)s-src.tar.gz'] + +dependencies = [ + ('Tcl', version), + ('zlib', '1.2.8'), +] + +configopts = '--enable-threads --with-tcl=$EBROOTTCL/lib --without-x CFLAGS="-I$EBROOTTCL/include"' + +start_dir = 'unix' + +moduleclass = 'vis' diff --git a/t/Tk/Tk-8.6.3-goolf-1.7.20-no-X11.eb b/t/Tk/Tk-8.6.3-goolf-1.7.20-no-X11.eb new file mode 100644 index 00000000..6550c8a4 --- /dev/null +++ b/t/Tk/Tk-8.6.3-goolf-1.7.20-no-X11.eb @@ -0,0 +1,25 @@ +easyblock = 'ConfigureMake' + +name = 'Tk' +version = '8.6.3' +versionsuffix = '-no-X11' + +homepage = 'http://www.tcl.tk/' +description = """Tk is an open source, cross-platform widget toolchain that provides a library of basic elements for building + a graphical user interface (GUI) in many different programming languages.""" + +toolchain = {'name': 'goolf', 'version': '1.7.20'} + +source_urls = ["http://prdownloads.sourceforge.net/tcl"] +sources = ['%(namelower)s%(version)s-src.tar.gz'] + +dependencies = [ + ('Tcl', version), + ('zlib', '1.2.8'), +] + +configopts = '--enable-threads --with-tcl=$EBROOTTCL/lib --without-x CFLAGS="-I$EBROOTTCL/include"' + +start_dir = 'unix' + +moduleclass = 'vis' diff --git a/t/Tk/Tk-8.6.3-intel-2015a-no-X11.eb b/t/Tk/Tk-8.6.3-intel-2015a-no-X11.eb new file mode 100644 index 00000000..4762abfa --- /dev/null +++ b/t/Tk/Tk-8.6.3-intel-2015a-no-X11.eb @@ -0,0 +1,25 @@ +easyblock = 'ConfigureMake' + +name = 'Tk' +version = '8.6.3' +versionsuffix = '-no-X11' + +homepage = 'http://www.tcl.tk/' +description = """Tk is an open source, cross-platform widget toolchain that provides a library of basic elements for building + a graphical user interface (GUI) in many different programming languages.""" + +toolchain = {'name': 'intel', 'version': '2015a'} + +source_urls = ["http://prdownloads.sourceforge.net/tcl"] +sources = ['%(namelower)s%(version)s-src.tar.gz'] + +dependencies = [ + ('Tcl', version), + ('zlib', '1.2.8'), +] + +configopts = '--enable-threads --with-tcl=$EBROOTTCL/lib --without-x CFLAGS="-I$EBROOTTCL/include"' + +start_dir = 'unix' + +moduleclass = 'vis' diff --git a/t/Tk/Tk-8.6.3.eb b/t/Tk/Tk-8.6.3.eb new file mode 100755 index 00000000..5edc501a --- /dev/null +++ b/t/Tk/Tk-8.6.3.eb @@ -0,0 +1,27 @@ +easyblock = 'ConfigureMake' + +name = 'Tk' +version = '8.6.4' +versionsuffix = '-no-X11' + +homepage = 'http://www.tcl.tk/' +description = """Tk is an open source, cross-platform widget toolchain that provides a library of basic elements for building + a graphical user interface (GUI) in many different programming languages.""" + +toolchain = {'name': 'intel', 'version': '2017.00'} + +source_urls = ["http://prdownloads.sourceforge.net/tcl"] +sources = ['%(namelower)s%(version)s-src.tar.gz'] + +patches = ['Tk-%(version)s_different-prefix-with-tcl.patch'] + +dependencies = [ + ('Tcl', version), + ('zlib', '1.2.8'), +] + +configopts = '--enable-threads --with-tcl=$EBROOTTCL/lib --without-x CFLAGS="-I$EBROOTTCL/include"' + +start_dir = 'unix' + +moduleclass = 'vis' diff --git a/t/Tk/Tk-8.6.4-GCC-4.9.3-2.25-no-X11.eb b/t/Tk/Tk-8.6.4-GCC-4.9.3-2.25-no-X11.eb new file mode 100644 index 00000000..684f3bdd --- /dev/null +++ b/t/Tk/Tk-8.6.4-GCC-4.9.3-2.25-no-X11.eb @@ -0,0 +1,27 @@ +easyblock = 'ConfigureMake' + +name = 'Tk' +version = '8.6.4' +versionsuffix = '-no-X11' + +homepage = 'http://www.tcl.tk/' +description = """Tk is an open source, cross-platform widget toolchain that provides a library of basic elements for building + a graphical user interface (GUI) in many different programming languages.""" + +toolchain = {'name': 'GCC', 'version': '4.9.3-2.25'} + +source_urls = ["http://prdownloads.sourceforge.net/tcl"] +sources = ['%(namelower)s%(version)s-src.tar.gz'] + +patches = ['Tk-%(version)s_different-prefix-with-tcl.patch'] + +dependencies = [ + ('Tcl', version), + ('zlib', '1.2.8'), +] + +configopts = '--enable-threads --with-tcl=$EBROOTTCL/lib --without-x CFLAGS="-I$EBROOTTCL/include"' + +start_dir = 'unix' + +moduleclass = 'vis' diff --git a/t/Tk/Tk-8.6.4-GNU-4.9.3-2.25-no-X11.eb b/t/Tk/Tk-8.6.4-GNU-4.9.3-2.25-no-X11.eb new file mode 100644 index 00000000..f077e32c --- /dev/null +++ b/t/Tk/Tk-8.6.4-GNU-4.9.3-2.25-no-X11.eb @@ -0,0 +1,27 @@ +easyblock = 'ConfigureMake' + +name = 'Tk' +version = '8.6.4' +versionsuffix = '-no-X11' + +homepage = 'http://www.tcl.tk/' +description = """Tk is an open source, cross-platform widget toolchain that provides a library of basic elements for building + a graphical user interface (GUI) in many different programming languages.""" + +toolchain = {'name': 'GNU', 'version': '4.9.3-2.25'} + +source_urls = ["http://prdownloads.sourceforge.net/tcl"] +sources = ['%(namelower)s%(version)s-src.tar.gz'] + +patches = ['Tk-%(version)s_different-prefix-with-tcl.patch'] + +dependencies = [ + ('Tcl', version), + ('zlib', '1.2.8'), +] + +configopts = '--enable-threads --with-tcl=$EBROOTTCL/lib --without-x' + +start_dir = 'unix' + +moduleclass = 'vis' diff --git a/t/Tk/Tk-8.6.4-foss-2015a-no-X11.eb b/t/Tk/Tk-8.6.4-foss-2015a-no-X11.eb new file mode 100644 index 00000000..9e3efc89 --- /dev/null +++ b/t/Tk/Tk-8.6.4-foss-2015a-no-X11.eb @@ -0,0 +1,27 @@ +easyblock = 'ConfigureMake' + +name = 'Tk' +version = '8.6.4' +versionsuffix = '-no-X11' + +homepage = 'http://www.tcl.tk/' +description = """Tk is an open source, cross-platform widget toolchain that provides a library of basic elements for building + a graphical user interface (GUI) in many different programming languages.""" + +toolchain = {'name': 'foss', 'version': '2015a'} + +source_urls = ["http://prdownloads.sourceforge.net/tcl"] +sources = ['%(namelower)s%(version)s-src.tar.gz'] + +patches = ['Tk-%(version)s_different-prefix-with-tcl.patch'] + +dependencies = [ + ('Tcl', version), + ('zlib', '1.2.8'), +] + +configopts = '--enable-threads --with-tcl=$EBROOTTCL/lib --without-x CFLAGS="-I$EBROOTTCL/include"' + +start_dir = 'unix' + +moduleclass = 'vis' diff --git a/t/Tk/Tk-8.6.4-foss-2015b-no-X11.eb b/t/Tk/Tk-8.6.4-foss-2015b-no-X11.eb new file mode 100644 index 00000000..89ecb324 --- /dev/null +++ b/t/Tk/Tk-8.6.4-foss-2015b-no-X11.eb @@ -0,0 +1,27 @@ +easyblock = 'ConfigureMake' + +name = 'Tk' +version = '8.6.4' +versionsuffix = '-no-X11' + +homepage = 'http://www.tcl.tk/' +description = """Tk is an open source, cross-platform widget toolchain that provides a library of basic elements for building + a graphical user interface (GUI) in many different programming languages.""" + +toolchain = {'name': 'foss', 'version': '2015b'} + +source_urls = ["http://prdownloads.sourceforge.net/tcl"] +sources = ['%(namelower)s%(version)s-src.tar.gz'] + +patches = ['Tk-%(version)s_different-prefix-with-tcl.patch'] + +dependencies = [ + ('Tcl', version), + ('zlib', '1.2.8'), +] + +configopts = '--enable-threads --with-tcl=$EBROOTTCL/lib --without-x CFLAGS="-I$EBROOTTCL/include"' + +start_dir = 'unix' + +moduleclass = 'vis' diff --git a/t/Tk/Tk-8.6.4-foss-2016a-no-X11.eb b/t/Tk/Tk-8.6.4-foss-2016a-no-X11.eb new file mode 100644 index 00000000..449ce63a --- /dev/null +++ b/t/Tk/Tk-8.6.4-foss-2016a-no-X11.eb @@ -0,0 +1,27 @@ +easyblock = 'ConfigureMake' + +name = 'Tk' +version = '8.6.4' +versionsuffix = '-no-X11' + +homepage = 'http://www.tcl.tk/' +description = """Tk is an open source, cross-platform widget toolchain that provides a library of basic elements for building + a graphical user interface (GUI) in many different programming languages.""" + +toolchain = {'name': 'foss', 'version': '2016a'} + +source_urls = ["http://prdownloads.sourceforge.net/tcl"] +sources = ['%(namelower)s%(version)s-src.tar.gz'] + +patches = ['Tk-%(version)s_different-prefix-with-tcl.patch'] + +dependencies = [ + ('Tcl', version), + ('zlib', '1.2.8') +] + +configopts = '--enable-threads --with-tcl=$EBROOTTCL/lib --without-x CFLAGS="-I$EBROOTTCL/include"' + +start_dir = 'unix' + +moduleclass = 'vis' diff --git a/t/Tk/Tk-8.6.4-gimkl-2.11.5-no-X11.eb b/t/Tk/Tk-8.6.4-gimkl-2.11.5-no-X11.eb new file mode 100644 index 00000000..5066a584 --- /dev/null +++ b/t/Tk/Tk-8.6.4-gimkl-2.11.5-no-X11.eb @@ -0,0 +1,27 @@ +easyblock = 'ConfigureMake' + +name = 'Tk' +version = '8.6.4' +versionsuffix = '-no-X11' + +homepage = 'http://www.tcl.tk/' +description = """Tk is an open source, cross-platform widget toolchain that provides a library of basic elements for building + a graphical user interface (GUI) in many different programming languages.""" + +toolchain = {'name': 'gimkl', 'version': '2.11.5'} + +source_urls = ["http://prdownloads.sourceforge.net/tcl"] +sources = ['%(namelower)s%(version)s-src.tar.gz'] + +patches = ['Tk-%(version)s_different-prefix-with-tcl.patch'] + +dependencies = [ + ('Tcl', version), + ('zlib', '1.2.8'), +] + +configopts = '--enable-threads --with-tcl=$EBROOTTCL/lib --without-x CFLAGS="-I$EBROOTTCL/include"' + +start_dir = 'unix' + +moduleclass = 'vis' diff --git a/t/Tk/Tk-8.6.4-goolf-1.4.10-no-X11.eb b/t/Tk/Tk-8.6.4-goolf-1.4.10-no-X11.eb new file mode 100644 index 00000000..9419fc66 --- /dev/null +++ b/t/Tk/Tk-8.6.4-goolf-1.4.10-no-X11.eb @@ -0,0 +1,27 @@ +easyblock = 'ConfigureMake' + +name = 'Tk' +version = '8.6.4' +versionsuffix = '-no-X11' + +homepage = 'http://www.tcl.tk/' +description = """Tk is an open source, cross-platform widget toolchain that provides a library of basic elements for building + a graphical user interface (GUI) in many different programming languages.""" + +toolchain = {'name': 'goolf', 'version': '1.4.10'} + +source_urls = ["http://prdownloads.sourceforge.net/tcl"] +sources = ['%(namelower)s%(version)s-src.tar.gz'] + +patches = ['Tk-%(version)s_different-prefix-with-tcl.patch'] + +dependencies = [ + ('Tcl', version), + ('zlib', '1.2.8'), +] + +configopts = '--enable-threads --with-tcl=$EBROOTTCL/lib --without-x CFLAGS="-I$EBROOTTCL/include"' + +start_dir = 'unix' + +moduleclass = 'vis' diff --git a/t/Tk/Tk-8.6.4-goolf-1.7.20-no-X11.eb b/t/Tk/Tk-8.6.4-goolf-1.7.20-no-X11.eb new file mode 100644 index 00000000..60f899a5 --- /dev/null +++ b/t/Tk/Tk-8.6.4-goolf-1.7.20-no-X11.eb @@ -0,0 +1,27 @@ +easyblock = 'ConfigureMake' + +name = 'Tk' +version = '8.6.4' +versionsuffix = '-no-X11' + +homepage = 'http://www.tcl.tk/' +description = """Tk is an open source, cross-platform widget toolchain that provides a library of basic elements for building + a graphical user interface (GUI) in many different programming languages.""" + +toolchain = {'name': 'goolf', 'version': '1.7.20'} + +source_urls = ["http://prdownloads.sourceforge.net/tcl"] +sources = ['%(namelower)s%(version)s-src.tar.gz'] + +patches = ['Tk-%(version)s_different-prefix-with-tcl.patch'] + +dependencies = [ + ('Tcl', version), + ('zlib', '1.2.8'), +] + +configopts = '--enable-threads --with-tcl=$EBROOTTCL/lib --without-x CFLAGS="-I$EBROOTTCL/include"' + +start_dir = 'unix' + +moduleclass = 'vis' diff --git a/t/Tk/Tk-8.6.4-ictce-7.3.5-no-X11.eb b/t/Tk/Tk-8.6.4-ictce-7.3.5-no-X11.eb new file mode 100644 index 00000000..53f70e54 --- /dev/null +++ b/t/Tk/Tk-8.6.4-ictce-7.3.5-no-X11.eb @@ -0,0 +1,27 @@ +easyblock = 'ConfigureMake' + +name = 'Tk' +version = '8.6.4' +versionsuffix = '-no-X11' + +homepage = 'http://www.tcl.tk/' +description = """Tk is an open source, cross-platform widget toolchain that provides a library of basic elements for building + a graphical user interface (GUI) in many different programming languages.""" + +toolchain = {'name': 'ictce', 'version': '7.3.5'} + +source_urls = ["http://prdownloads.sourceforge.net/tcl"] +sources = ['%(namelower)s%(version)s-src.tar.gz'] + +patches = ['Tk-%(version)s_different-prefix-with-tcl.patch'] + +dependencies = [ + ('Tcl', version), + ('zlib', '1.2.8'), +] + +configopts = '--enable-threads --with-tcl=$EBROOTTCL/lib --without-x CFLAGS="-I$EBROOTTCL/include"' + +start_dir = 'unix' + +moduleclass = 'vis' diff --git a/t/Tk/Tk-8.6.4-intel-2015a-no-X11.eb b/t/Tk/Tk-8.6.4-intel-2015a-no-X11.eb new file mode 100644 index 00000000..85504f86 --- /dev/null +++ b/t/Tk/Tk-8.6.4-intel-2015a-no-X11.eb @@ -0,0 +1,27 @@ +easyblock = 'ConfigureMake' + +name = 'Tk' +version = '8.6.4' +versionsuffix = '-no-X11' + +homepage = 'http://www.tcl.tk/' +description = """Tk is an open source, cross-platform widget toolchain that provides a library of basic elements for building + a graphical user interface (GUI) in many different programming languages.""" + +toolchain = {'name': 'intel', 'version': '2015a'} + +source_urls = ["http://prdownloads.sourceforge.net/tcl"] +sources = ['%(namelower)s%(version)s-src.tar.gz'] + +patches = ['Tk-%(version)s_different-prefix-with-tcl.patch'] + +dependencies = [ + ('Tcl', version), + ('zlib', '1.2.8'), +] + +configopts = '--enable-threads --with-tcl=$EBROOTTCL/lib --without-x CFLAGS="-I$EBROOTTCL/include"' + +start_dir = 'unix' + +moduleclass = 'vis' diff --git a/t/Tk/Tk-8.6.4-intel-2015b-no-X11.eb b/t/Tk/Tk-8.6.4-intel-2015b-no-X11.eb new file mode 100644 index 00000000..b7e6c772 --- /dev/null +++ b/t/Tk/Tk-8.6.4-intel-2015b-no-X11.eb @@ -0,0 +1,27 @@ +easyblock = 'ConfigureMake' + +name = 'Tk' +version = '8.6.4' +versionsuffix = '-no-X11' + +homepage = 'http://www.tcl.tk/' +description = """Tk is an open source, cross-platform widget toolchain that provides a library of basic elements for building + a graphical user interface (GUI) in many different programming languages.""" + +toolchain = {'name': 'intel', 'version': '2015b'} + +source_urls = ["http://prdownloads.sourceforge.net/tcl"] +sources = ['%(namelower)s%(version)s-src.tar.gz'] + +patches = ['Tk-%(version)s_different-prefix-with-tcl.patch'] + +dependencies = [ + ('Tcl', version), + ('zlib', '1.2.8'), +] + +configopts = '--enable-threads --with-tcl=$EBROOTTCL/lib --without-x CFLAGS="-I$EBROOTTCL/include"' + +start_dir = 'unix' + +moduleclass = 'vis' diff --git a/t/Tk/Tk-8.6.4-intel-2016.02-GCC-4.9-no-X11.eb b/t/Tk/Tk-8.6.4-intel-2016.02-GCC-4.9-no-X11.eb new file mode 100644 index 00000000..ed76be27 --- /dev/null +++ b/t/Tk/Tk-8.6.4-intel-2016.02-GCC-4.9-no-X11.eb @@ -0,0 +1,26 @@ +easyblock = 'ConfigureMake' + +name = 'Tk' +version = '8.6.4' +versionsuffix = '-no-X11' + +homepage = 'http://www.tcl.tk/' +description = """Tk is an open source, cross-platform widget toolchain that provides a library of basic elements for building + a graphical user interface (GUI) in many different programming languages.""" + +toolchain = {'name': 'intel', 'version': '2016.02-GCC-4.9'} + +source_urls = ["http://prdownloads.sourceforge.net/tcl"] +sources = ['%(namelower)s%(version)s-src.tar.gz'] + +patches = ['Tk-%(version)s_different-prefix-with-tcl.patch'] + +dependencies = [ + ('Tcl', version), +] + +configopts = '--enable-threads --with-tcl=$EBROOTTCL/lib --without-x CFLAGS="-I$EBROOTTCL/include"' + +start_dir = 'unix' + +moduleclass = 'vis' diff --git a/t/Tk/Tk-8.6.4-intel-2016a-no-X11.eb b/t/Tk/Tk-8.6.4-intel-2016a-no-X11.eb new file mode 100644 index 00000000..9eede492 --- /dev/null +++ b/t/Tk/Tk-8.6.4-intel-2016a-no-X11.eb @@ -0,0 +1,27 @@ +easyblock = 'ConfigureMake' + +name = 'Tk' +version = '8.6.4' +versionsuffix = '-no-X11' + +homepage = 'http://www.tcl.tk/' +description = """Tk is an open source, cross-platform widget toolchain that provides a library of basic elements for building + a graphical user interface (GUI) in many different programming languages.""" + +toolchain = {'name': 'intel', 'version': '2016a'} + +source_urls = ["http://prdownloads.sourceforge.net/tcl"] +sources = ['%(namelower)s%(version)s-src.tar.gz'] + +patches = ['Tk-%(version)s_different-prefix-with-tcl.patch'] + +dependencies = [ + ('Tcl', version), + ('zlib', '1.2.8'), +] + +configopts = '--enable-threads --with-tcl=$EBROOTTCL/lib --without-x CFLAGS="-I$EBROOTTCL/include"' + +start_dir = 'unix' + +moduleclass = 'vis' diff --git a/t/Tk/Tk-8.6.4-intel-2017.00-no-X11.eb b/t/Tk/Tk-8.6.4-intel-2017.00-no-X11.eb new file mode 100644 index 00000000..5edc501a --- /dev/null +++ b/t/Tk/Tk-8.6.4-intel-2017.00-no-X11.eb @@ -0,0 +1,27 @@ +easyblock = 'ConfigureMake' + +name = 'Tk' +version = '8.6.4' +versionsuffix = '-no-X11' + +homepage = 'http://www.tcl.tk/' +description = """Tk is an open source, cross-platform widget toolchain that provides a library of basic elements for building + a graphical user interface (GUI) in many different programming languages.""" + +toolchain = {'name': 'intel', 'version': '2017.00'} + +source_urls = ["http://prdownloads.sourceforge.net/tcl"] +sources = ['%(namelower)s%(version)s-src.tar.gz'] + +patches = ['Tk-%(version)s_different-prefix-with-tcl.patch'] + +dependencies = [ + ('Tcl', version), + ('zlib', '1.2.8'), +] + +configopts = '--enable-threads --with-tcl=$EBROOTTCL/lib --without-x CFLAGS="-I$EBROOTTCL/include"' + +start_dir = 'unix' + +moduleclass = 'vis' diff --git a/t/Tk/Tk-8.6.4.eb b/t/Tk/Tk-8.6.4.eb new file mode 100755 index 00000000..58a4a0c0 --- /dev/null +++ b/t/Tk/Tk-8.6.4.eb @@ -0,0 +1,26 @@ +easyblock = 'ConfigureMake' + +name = 'Tk' +version = '8.6.4' + +homepage = 'http://www.tcl.tk/' +description = """Tk is an open source, cross-platform widget toolchain that provides a library of basic elements for building + a graphical user interface (GUI) in many different programming languages.""" + +toolchain = {'name': 'dummy', 'version': 'dummy'} + +source_urls = ["http://prdownloads.sourceforge.net/tcl"] +sources = ['%(namelower)s%(version)s-src.tar.gz'] + +patches = ['Tk-%(version)s_different-prefix-with-tcl.patch'] + +dependencies = [ + ('Tcl', version), + ('zlib', '1.2.8'), +] + +configopts = '--enable-threads --with-tcl=$EBROOTTCL/lib --without-x CFLAGS="-I$EBROOTTCL/include"' + +start_dir = 'unix' + +moduleclass = 'vis' diff --git a/t/Tk/Tk-8.6.5-intel-2017a.eb b/t/Tk/Tk-8.6.5-intel-2017a.eb new file mode 100644 index 00000000..c6aad3b3 --- /dev/null +++ b/t/Tk/Tk-8.6.5-intel-2017a.eb @@ -0,0 +1,26 @@ +easyblock = 'ConfigureMake' + +name = 'Tk' +version = '8.6.5' + +homepage = 'http://www.tcl.tk/' +description = """Tk is an open source, cross-platform widget toolchain that provides a library of basic elements for + building a graphical user interface (GUI) in many different programming languages.""" + +toolchain = {'name': 'intel', 'version': '2017a'} + +source_urls = ["http://prdownloads.sourceforge.net/tcl"] +sources = ['%(namelower)s%(version)s-src.tar.gz'] + +patches = ['Tk-8.6.4_different-prefix-with-tcl.patch'] + +dependencies = [ + ('Tcl', version), + ('zlib', '1.2.11'), +] + +configopts = '--enable-threads --with-tcl=$EBROOTTCL/lib CFLAGS="-I$EBROOTTCL/include"' + +start_dir = 'unix' + +moduleclass = 'vis' diff --git a/t/Tk/Tk-8.6.5.eb b/t/Tk/Tk-8.6.5.eb new file mode 100644 index 00000000..9299c554 --- /dev/null +++ b/t/Tk/Tk-8.6.5.eb @@ -0,0 +1,26 @@ +easyblock = 'ConfigureMake' + +name = 'Tk' +version = '8.6.5' + +homepage = 'http://www.tcl.tk/' +description = """Tk is an open source, cross-platform widget toolchain that provides a library of basic elements for + building a graphical user interface (GUI) in many different programming languages.""" + +toolchain = {'name': 'dummy', 'version': 'dummy'} + +source_urls = ["http://prdownloads.sourceforge.net/tcl"] +sources = ['%(namelower)s%(version)s-src.tar.gz'] + +patches = ['Tk-8.6.4_different-prefix-with-tcl.patch'] + +dependencies = [ + ('Tcl', version), + ('zlib', '1.2.8'), +] + +configopts = '--enable-threads --with-tcl=$EBROOTTCL/lib CFLAGS="-I$EBROOTTCL/include"' + +start_dir = 'unix' + +moduleclass = 'vis' diff --git a/t/TotalView/TotalView-8.11.0-0-linux-x86-64.eb b/t/TotalView/TotalView-8.11.0-0-linux-x86-64.eb new file mode 100644 index 00000000..132fdbee --- /dev/null +++ b/t/TotalView/TotalView-8.11.0-0-linux-x86-64.eb @@ -0,0 +1,37 @@ +## +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# +# Copyright:: Copyright 2012-2014 Uni.Lu/LCSB, NTUA +# Authors:: Fotis Georgatos +# 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_06-05.html +## + +name = 'TotalView' +version = '8.11.0-0' +versionsuffix = '-linux-x86-64' + +homepage = 'http://www.roguewave.com/products/totalview.aspx' +description = """TotalView is a GUI-based source code defect analysis tool that gives you unprecedented + control over processes and thread execution and visibility into program state and variables. It allows + you to debug one or many processes and/or threads in a single window with complete control over program + execution. This allows you to set breakpoints, stepping line by line through the code on a single thread, + or with coordinated groups of processes or threads, and run or halt arbitrary sets of processes or threads. + You can reproduce and troubleshoot difficult problems that can occur in concurrent programs that take + advantage of threads, OpenMP, MPI, GPUs or coprocessors.""" + +toolchain = {'name': 'dummy', 'version': 'dummy'} + +sources = [ + '%(namelower)s.%(version)s%(versionsuffix)s.tar', + '%(namelower)s.%(version)s-doc.tar', +] + +# licensepath +import os +license_file = os.path.join(os.getenv('HOME'), "licenses", "roguewave", "license.lic") + +moduleclass = 'debugger' diff --git a/t/TotalView/TotalView-8.11.0-2-linux-x86-64.eb b/t/TotalView/TotalView-8.11.0-2-linux-x86-64.eb new file mode 100644 index 00000000..c3d83422 --- /dev/null +++ b/t/TotalView/TotalView-8.11.0-2-linux-x86-64.eb @@ -0,0 +1,37 @@ +## +# This file is an EasyBuild recipy as per https://github.com/hpcugent/easybuild +# +# Copyright:: Copyright 2012-2014 Uni.Lu/LCSB, NTUA +# Authors:: Fotis Georgatos +# 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_06-05.html +## + +name = 'TotalView' +version = '8.11.0-2' +versionsuffix = '-linux-x86-64' + +homepage = 'http://www.roguewave.com/products/totalview.aspx' +description = """TotalView is a GUI-based source code defect analysis tool that gives you unprecedented + control over processes and thread execution and visibility into program state and variables. It allows + you to debug one or many processes and/or threads in a single window with complete control over program + execution. This allows you to set breakpoints, stepping line by line through the code on a single thread, + or with coordinated groups of processes or threads, and run or halt arbitrary sets of processes or threads. + You can reproduce and troubleshoot difficult problems that can occur in concurrent programs that take + advantage of threads, OpenMP, MPI, GPUs or coprocessors.""" + +toolchain = {'name': 'dummy', 'version': 'dummy'} + +sources = [ + '%(namelower)s.%(version)s%(versionsuffix)s.tar', + '%(namelower)s.%(version)s-doc.tar', +] + +# licensepath +import os +license_file = os.path.join(os.getenv('HOME'), "licenses", "roguewave", "license.lic") + +moduleclass = 'debugger' diff --git a/t/TotalView/TotalView-8.12.0-0-linux-x86-64.eb b/t/TotalView/TotalView-8.12.0-0-linux-x86-64.eb new file mode 100644 index 00000000..6144d452 --- /dev/null +++ b/t/TotalView/TotalView-8.12.0-0-linux-x86-64.eb @@ -0,0 +1,37 @@ +## +# This file is an EasyBuild recipy as per https://github.com/hpcugent/easybuild +# +# Copyright:: Copyright 2012-2014 Uni.Lu/LCSB, NTUA +# Authors:: Fotis Georgatos +# 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_06-05.html +## + +name = 'TotalView' +version = '8.12.0-0' +versionsuffix = '-linux-x86-64' + +homepage = 'http://www.roguewave.com/products/totalview.aspx' +description = """TotalView is a GUI-based source code defect analysis tool that gives you unprecedented + control over processes and thread execution and visibility into program state and variables. It allows + you to debug one or many processes and/or threads in a single window with complete control over program + execution. This allows you to set breakpoints, stepping line by line through the code on a single thread, + or with coordinated groups of processes or threads, and run or halt arbitrary sets of processes or threads. + You can reproduce and troubleshoot difficult problems that can occur in concurrent programs that take + advantage of threads, OpenMP, MPI, GPUs or coprocessors.""" + +toolchain = {'name': 'dummy', 'version': 'dummy'} + +sources = [ + '%(namelower)s.%(version)s%(versionsuffix)s.tar', + '%(namelower)s.%(version)s-doc.tar', +] + +# licensepath +import os +license_file = os.path.join(os.getenv('HOME'), "licenses", "roguewave", "license.lic") + +moduleclass = 'debugger' diff --git a/t/Trilinos/Trilinos-10.12.2-goolf-1.5.16-Python-2.7.3.eb b/t/Trilinos/Trilinos-10.12.2-goolf-1.5.16-Python-2.7.3.eb new file mode 100644 index 00000000..d85b783d --- /dev/null +++ b/t/Trilinos/Trilinos-10.12.2-goolf-1.5.16-Python-2.7.3.eb @@ -0,0 +1,32 @@ +name = "Trilinos" +version = "10.12.2" +versionsuffix = "-Python-2.7.3" + +homepage = 'http://trilinos.sandia.gov/' +description = """The Trilinos Project is an effort to develop algorithms and enabling technologies +within an object-oriented software framework for the solution of large-scale, complex multi-physics +engineering and scientific problems. A unique design feature of Trilinos is its focus on packages.""" + +toolchain = {'name': 'goolf', 'version': '1.5.16'} +toolchainopts = {'usempi': True, 'pic': True, 'strict': True} + +source_urls = ['http://trilinos.sandia.gov/download/files/'] +sources = ['%s-%s-Source.tar.gz' % (name.lower(), version)] + +patches = [ + 'fix-parmetis.patch', + 'Trilinos_GCC-4.7.patch', + ] + +# order matters! +# ParMETIS needs to go after SCOTCH (because of incldue dirs) +dependencies = [ + ('Boost', '1.49.0', versionsuffix ), + ('SCOTCH', '5.1.12b_esmumps'), + ('SuiteSparse', '3.7.0', '-withparmetis'), + ('ParMETIS', '4.0.2') + ] + +builddependencies = [('CMake', '2.8.4')] + +moduleclass = 'numlib' diff --git a/t/Trilinos/Trilinos-12.10.1-intel-2017a-Python-2.7.11.eb b/t/Trilinos/Trilinos-12.10.1-intel-2017a-Python-2.7.11.eb new file mode 100644 index 00000000..ebe90e66 --- /dev/null +++ b/t/Trilinos/Trilinos-12.10.1-intel-2017a-Python-2.7.11.eb @@ -0,0 +1,36 @@ +name = 'Trilinos' +version = '12.10.1' +versionsuffix = '-Python-2.7.11' + +homepage = 'http://trilinos.sandia.gov/' +description = """The Trilinos Project is an effort to develop algorithms and enabling technologies + within an object-oriented software framework for the solution of large-scale, complex multi-physics + engineering and scientific problems. A unique design feature of Trilinos is its focus on packages.""" + +toolchain = {'name': 'intel', 'version': '2017a'} +toolchainopts = {'usempi': True, 'pic': True, 'strict': True} + +source_urls = ['http://trilinos.csbsju.edu/download/files/'] +sources = ['%(namelower)s-%(version)s-Source.tar.gz'] + +#patches = ['fix-parmetis.patch'] + +dependencies = [ + ('Boost', '1.63.0', versionsuffix), + ('SCOTCH', '6.0.4'), + ('SuiteSparse', '4.5.3', '-ParMETIS-4.0.3'), + ('ParMETIS', '4.0.3'), + ('netCDF', '4.4.1'), + ('MATIO', '1.5.2'), + ('GLM', '0.9.7.2'), + ('CMake', '3.7.2'), +] + +# STK Classic is deprecated/broken, STKDoc_tests needs to be disabled too because of it +# see https://trilinos.org/oldsite/release_notes-11.10.html and https://github.com/trilinos/Trilinos/issues/19 +#skip_exts = ['STKClassic', 'STKDoc_tests'] + +# too parallel is too slow, and may cause build/tests to fail +maxparallel = 10 + +moduleclass = 'numlib' diff --git a/t/Trilinos/Trilinos-12.4.2-intel-2017a-Python-2.7.11.eb b/t/Trilinos/Trilinos-12.4.2-intel-2017a-Python-2.7.11.eb new file mode 100644 index 00000000..98703966 --- /dev/null +++ b/t/Trilinos/Trilinos-12.4.2-intel-2017a-Python-2.7.11.eb @@ -0,0 +1,37 @@ +name = 'Trilinos' +version = '12.4.2' +versionsuffix = '-Python-2.7.11' + +homepage = 'http://trilinos.sandia.gov/' +description = """The Trilinos Project is an effort to develop algorithms and enabling technologies + within an object-oriented software framework for the solution of large-scale, complex multi-physics + engineering and scientific problems. A unique design feature of Trilinos is its focus on packages.""" + +toolchain = {'name': 'intel', 'version': '2017a'} +toolchainopts = {'usempi': True, 'pic': True, 'strict': True} + +source_urls = ['http://trilinos.csbsju.edu/download/files/'] +sources = ['%(namelower)s-%(version)s-Source.tar.gz'] + +patches = ['fix-parmetis.patch'] + +dependencies = [ + ('Boost', '1.63.0', versionsuffix), + ('SCOTCH', '6.0.4'), + ('SuiteSparse', '4.5.3', '-ParMETIS-4.0.3'), + ('ParMETIS', '4.0.3'), + ('netCDF', '4.4.1'), + ('MATIO', '1.5.2'), + ('GLM', '0.9.7.2'), +] + +builddependencies = [('CMake', '3.7.2')] + +# STK Classic is deprecated/broken, STKDoc_tests needs to be disabled too because of it +# see https://trilinos.org/oldsite/release_notes-11.10.html and https://github.com/trilinos/Trilinos/issues/19 +skip_exts = ['STKClassic', 'STKDoc_tests'] + +# too parallel is too slow, and may cause build/tests to fail +maxparallel = 10 + +moduleclass = 'numlib' diff --git a/t/Trilinos/Trilinos-12.8.1-intel-2017a-Python-2.7.11.eb b/t/Trilinos/Trilinos-12.8.1-intel-2017a-Python-2.7.11.eb new file mode 100644 index 00000000..4dbd46d9 --- /dev/null +++ b/t/Trilinos/Trilinos-12.8.1-intel-2017a-Python-2.7.11.eb @@ -0,0 +1,37 @@ +name = 'Trilinos' +version = '12.8.1' +versionsuffix = '-Python-2.7.11' + +homepage = 'http://trilinos.sandia.gov/' +description = """The Trilinos Project is an effort to develop algorithms and enabling technologies + within an object-oriented software framework for the solution of large-scale, complex multi-physics + engineering and scientific problems. A unique design feature of Trilinos is its focus on packages.""" + +toolchain = {'name': 'intel', 'version': '2017a'} +toolchainopts = {'usempi': True, 'pic': True, 'strict': True} + +source_urls = ['http://trilinos.csbsju.edu/download/files/'] +sources = ['%(namelower)s-%(version)s-Source.tar.gz'] + +patches = ['fix-parmetis.patch'] + +dependencies = [ + ('Boost', '1.63.0', versionsuffix), + ('SCOTCH', '6.0.4'), + ('SuiteSparse', '4.5.3', '-ParMETIS-4.0.3'), + ('ParMETIS', '4.0.3'), + ('netCDF', '4.4.1'), + ('MATIO', '1.5.2'), + ('GLM', '0.9.7.2'), +] + +builddependencies = [('CMake', '3.7.2')] + +# STK Classic is deprecated/broken, STKDoc_tests needs to be disabled too because of it +# see https://trilinos.org/oldsite/release_notes-11.10.html and https://github.com/trilinos/Trilinos/issues/19 +skip_exts = ['STKClassic', 'STKDoc_tests'] + +# too parallel is too slow, and may cause build/tests to fail +maxparallel = 10 + +moduleclass = 'numlib' diff --git a/t/Trimmomatic/Trimmomatic-0.32-Java-1.7.0_80.eb b/t/Trimmomatic/Trimmomatic-0.32-Java-1.7.0_80.eb new file mode 100644 index 00000000..a89bd321 --- /dev/null +++ b/t/Trimmomatic/Trimmomatic-0.32-Java-1.7.0_80.eb @@ -0,0 +1,33 @@ +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# Author: Pablo Escobar Lopez +# Swiss Institute of Bioinformatics +# Biozentrum - University of Basel + +easyblock = 'Tarball' + +name = 'Trimmomatic' +version = '0.32' + +homepage = 'http://www.usadellab.org/cms/?page=trimmomatic' +description = """Trimmomatic performs a variety of useful trimming tasks for illumina + paired-end and single ended data.The selection of trimming steps and their associated + parameters are supplied on the command line. """ + +toolchain = {'name': 'dummy', 'version': ''} + +source_urls = ['http://www.usadellab.org/cms/uploads/supplementary/Trimmomatic/'] +sources = [SOURCE_ZIP] + +java = 'Java' +javaver = '1.7.0_80' +versionsuffix = '-%s-%s' % (java, javaver) +dependencies = [(java, javaver)] + +modloadmsg = """To execute Trimmomatic run: java -jar \\$EBROOTTRIMMOMATIC/trimmomatic-%(version)s.jar""" + +sanity_check_paths = { + 'files': ["trimmomatic-%(version)s.jar"], + 'dirs': [""], +} + +moduleclass = 'bio' diff --git a/t/Trimmomatic/Trimmomatic-0.35-Java-1.7.0_79.eb b/t/Trimmomatic/Trimmomatic-0.35-Java-1.7.0_79.eb new file mode 100644 index 00000000..8000b872 --- /dev/null +++ b/t/Trimmomatic/Trimmomatic-0.35-Java-1.7.0_79.eb @@ -0,0 +1,33 @@ +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# Author: Pablo Escobar Lopez +# Swiss Institute of Bioinformatics +# Biozentrum - University of Basel + +easyblock = 'Tarball' + +name = 'Trimmomatic' +version = '0.35' + +homepage = 'http://www.usadellab.org/cms/?page=trimmomatic' +description = """Trimmomatic performs a variety of useful trimming tasks for illumina + paired-end and single ended data.The selection of trimming steps and their associated + parameters are supplied on the command line. """ + +toolchain = {'name': 'dummy', 'version': ''} + +source_urls = ['http://www.usadellab.org/cms/uploads/supplementary/Trimmomatic/'] +sources = [SOURCE_ZIP] + +java = 'Java' +javaver = '1.7.0_79' +versionsuffix = '-%s-%s' % (java, javaver) +dependencies = [(java, javaver)] + +modloadmsg = """To execute Trimmomatic run: java -jar \\$EBROOTTRIMMOMATIC/trimmomatic-%(version)s.jar""" + +sanity_check_paths = { + 'files': ["trimmomatic-%(version)s.jar"], + 'dirs': [""], +} + +moduleclass = 'bio' diff --git a/t/Trinity/Trinity-2.1.1-intel-2015b.eb b/t/Trinity/Trinity-2.1.1-intel-2015b.eb new file mode 100644 index 00000000..5f116c4b --- /dev/null +++ b/t/Trinity/Trinity-2.1.1-intel-2015b.eb @@ -0,0 +1,37 @@ +name = 'Trinity' +version = '2.1.1' + +homepage = 'http://trinityrnaseq.github.io' +description = """Trinity represents a novel method for the efficient and robust de novo reconstruction + of transcriptomes from RNA-Seq data. Trinity combines three independent software modules: Inchworm, + Chrysalis, and Butterfly, applied sequentially to process large volumes of RNA-Seq reads.""" +toolchain = {'name': 'intel', 'version': '2015b'} +toolchainopts = {'optarch': True} + +source_urls = ['https://github.com/trinityrnaseq/trinityrnaseq/archive/'] + +java = 'Java' +javaver = '1.8.0_66' + +sources = ['v%(version)s.tar.gz'] + +patches = [ + 'chrysalis_commandline_noconsts_2012-10-05.patch', + 'Trinity-%(version)s_jellyfish-Makefile.patch', +] + +builddependencies = [ + ('Autotools', '20150215', '', ('GNU', '4.9.3-2.25')), +] + +dependencies = [ + (java, javaver, '', True), + ('ant', '1.9.6', '-%s-%s' % (java, javaver), True), + ('Bowtie', '1.1.2'), + ('Bowtie2', '2.2.6'), + ('ncurses', '5.9',), + ('zlib', '1.2.8'), + ('Perl', '5.20.3'), +] + +moduleclass = 'bio' diff --git a/t/Trinity/Trinity-2.2.0-foss-2016a.eb b/t/Trinity/Trinity-2.2.0-foss-2016a.eb new file mode 100644 index 00000000..58018d93 --- /dev/null +++ b/t/Trinity/Trinity-2.2.0-foss-2016a.eb @@ -0,0 +1,38 @@ +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# Author: Pablo Escobar Lopez +# Swiss Institute of Bioinformatics +# Biozentrum - University of Basel + +name = 'Trinity' +version = '2.2.0' + +homepage = 'http://trinityrnaseq.github.io/' +description = """Trinity represents a novel method for the efficient and robust de novo reconstruction + of transcriptomes from RNA-Seq data. Trinity combines three independent software modules: Inchworm, + Chrysalis, and Butterfly, applied sequentially to process large volumes of RNA-Seq reads.""" + +toolchain = {'name': 'foss', 'version': '2016a'} + +source_urls = ['https://github.com/trinityrnaseq/trinityrnaseq/archive/'] +sources = ['v%(version)s.tar.gz'] + +patches = [ + 'chrysalis_commandline_noconsts_2012-10-05.patch', + 'Trinity-2.2.0_jellyfish-Makefile.patch', +] + +builddependencies = [ + ('Autotools', '20150215'), +] + +dependencies = [ + ('Java', '1.8.0_92', '', True), + ('ant', '1.9.7', '-Java-%(javaver)s', True), + ('Bowtie', '1.1.2'), + ('Bowtie2', '2.2.8'), + ('ncurses', '6.0',), + ('zlib', '1.2.8'), + ('Perl', '5.22.1'), +] + +moduleclass = 'bio' diff --git a/t/Trinity/Trinity-2012-10-05-goolf-1.4.10.eb b/t/Trinity/Trinity-2012-10-05-goolf-1.4.10.eb new file mode 100644 index 00000000..e966db8b --- /dev/null +++ b/t/Trinity/Trinity-2012-10-05-goolf-1.4.10.eb @@ -0,0 +1,40 @@ +name = 'Trinity' +version = '2012-10-05' + +homepage = 'http://trinityrnaseq.sourceforge.net/' +description = """Trinity represents a novel method for the efficient and robust de novo reconstruction +of transcriptomes from RNA-Seq data. Trinity combines three independent software modules: Inchworm, +Chrysalis, and Butterfly, applied sequentially to process large volumes of RNA-Seq reads.""" + +toolchain = {'name': 'goolf', 'version': '1.4.10'} +toolchainopts = {'optarch': True} + +source_urls = [('http://sourceforge.net/projects/trinityrnaseq/files', 'download')] +sources = ['trinityrnaseq_r%s.tgz' % version] + +patches = [ + 'chrysalis_commandline_noconsts_2012-10-05.patch', + 'cmd_forker_taskset_2012-10-05.patch', + 'trinitypl_increase_max_cpu_2012-10-05.patch', + 'rsem-plugin_makefile-cxx.patch', + 'trinity_jellyfish-GCC-4.7.patch', +] + +java = 'Java' +javaver = '1.7.0_10' + +dependencies = [ + (java, javaver, '', True), + ('ant', '1.8.4', '-%s-%s' % (java, javaver), True), + ('ncurses', '5.9'), + ('zlib', '1.2.7'), +] + +bwapluginver = "0.5.7" +RSEMmod = True + +# required for GCC v4.7, see http://forums.bannister.org/ubbthreads.php?ubb=showflat&Number=79791&page=2 +import os +os.putenv('CPPONLYFLAGS', '-Wno-narrowing') + +moduleclass = 'bio' diff --git a/t/tabix/tabix-0.2.6-goolf-1.4.10.eb b/t/tabix/tabix-0.2.6-goolf-1.4.10.eb new file mode 100644 index 00000000..4ab3c4b8 --- /dev/null +++ b/t/tabix/tabix-0.2.6-goolf-1.4.10.eb @@ -0,0 +1,38 @@ +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# Author: Pablo Escobar Lopez +# Swiss Institute of Bioinformatics +# Biozentrum - University of Basel +# Author: Jens Timmerman, Ghent University + +easyblock = 'MakeCp' + +name = 'tabix' +version = '0.2.6' + +homepage = 'http://samtools.sourceforge.net' +description = """ Generic indexer for TAB-delimited genome position files """ + +toolchain = {'name': 'goolf', 'version': '1.4.10'} + +source_urls = [('http://sourceforge.net/projects/samtools/files/', 'download')] +sources = [SOURCE_TAR_BZ2] + +dependencies = [('zlib', '1.2.8')] + +buildopts = 'CFLAGS="-L$EBROOTZLIB/lib"' + +files_to_copy = [ + (["tabix", "bgzip", "tabix.py"], "bin"), + (["tabix.1"], "man/man1"), + "example.gtf.gz", + "example.gtf.gz.tbi", + "NEWS", + "ChangeLog" +] + +sanity_check_paths = { + 'files': ["bin/tabix", "bin/bgzip", "bin/tabix.py"], + 'dirs': [""], +} + +moduleclass = 'bio' diff --git a/t/tabix/tabix-0.2.6-intel-2014b.eb b/t/tabix/tabix-0.2.6-intel-2014b.eb new file mode 100644 index 00000000..355e0eb0 --- /dev/null +++ b/t/tabix/tabix-0.2.6-intel-2014b.eb @@ -0,0 +1,38 @@ +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# Author: Pablo Escobar Lopez +# Swiss Institute of Bioinformatics +# Biozentrum - University of Basel +# Author: Jens Timmerman, Ghent University + +easyblock = 'MakeCp' + +name = 'tabix' +version = '0.2.6' + +homepage = 'http://samtools.sourceforge.net' +description = """ Generic indexer for TAB-delimited genome position files """ + +toolchain = {'name': 'intel', 'version': '2014b'} + +source_urls = [('http://sourceforge.net/projects/samtools/files/', 'download')] +sources = [SOURCE_TAR_BZ2] + +dependencies = [('zlib', '1.2.8')] + +buildopts = 'CFLAGS="-L$EBROOTZLIB/lib"' + +files_to_copy = [ + (["tabix", "bgzip", "tabix.py"], "bin"), + (["tabix.1"], "man/man1"), + "example.gtf.gz", + "example.gtf.gz.tbi", + "NEWS", + "ChangeLog" +] + +sanity_check_paths = { + 'files': ["bin/tabix", "bin/bgzip", "bin/tabix.py"], + 'dirs': [""], +} + +moduleclass = 'bio' diff --git a/t/tbb/tbb-4.0.0.233.eb b/t/tbb/tbb-4.0.0.233.eb new file mode 100644 index 00000000..a157686a --- /dev/null +++ b/t/tbb/tbb-4.0.0.233.eb @@ -0,0 +1,26 @@ +name = 'tbb' +version = '4.0.0.233' + +homepage = 'http://software.intel.com/en-us/articles/intel-tbb/' +description = """Intel Threading Building Blocks 4.0 (Intel TBB) + is a widely used, award-winning C++ template library for creating reliable, + portable, and scalable parallel applications. + Use Intel TBB for a simple and rapid way of developing robust task-based + parallel applications that scale to available processor cores, are compatible + with multiple environments, and are easier to maintain. + Intel TBB is the most proficient way to implement future-proof parallel applications + that tap into the power and performance of multicore and manycore hardware platforms.""" + +toolchain = {'name': 'dummy', 'version': 'dummy'} + +sources = ['l_%(name)s_%(version)s.tgz'] + +patches = ['tbb-4.0_productsdb.patch'] + +dontcreateinstalldir = 'True' + +# license file +import os +license_file = os.path.join(os.getenv('HOME'), "licenses", "intel", "license.lic") + +moduleclass = 'lib' diff --git a/t/tbb/tbb-4.0.5.339.eb b/t/tbb/tbb-4.0.5.339.eb new file mode 100644 index 00000000..150aaf30 --- /dev/null +++ b/t/tbb/tbb-4.0.5.339.eb @@ -0,0 +1,26 @@ +name = 'tbb' +version = '4.0.5.339' + +homepage = 'http://software.intel.com/en-us/articles/intel-tbb/' +description = """Intel Threading Building Blocks 4.0 (Intel TBB) + is a widely used, award-winning C++ template library for creating reliable, + portable, and scalable parallel applications. + Use Intel TBB for a simple and rapid way of developing robust task-based + parallel applications that scale to available processor cores, are compatible + with multiple environments, and are easier to maintain. + Intel TBB is the most proficient way to implement future-proof parallel applications + that tap into the power and performance of multicore and manycore hardware platforms.""" + +toolchain = {'name': 'dummy', 'version': 'dummy'} + +sources = ['l_%(name)s_%(version)s.tgz'] + +patches = ['tbb-4.0_productsdb.patch'] + +dontcreateinstalldir = 'True' + +# license file +import os +license_file = os.path.join(os.getenv('HOME'), "licenses", "intel", "license.lic") + +moduleclass = 'lib' diff --git a/t/tbb/tbb-4.3.5.187.eb b/t/tbb/tbb-4.3.5.187.eb new file mode 100644 index 00000000..92c3b8b9 --- /dev/null +++ b/t/tbb/tbb-4.3.5.187.eb @@ -0,0 +1,24 @@ +name = 'tbb' +version = '4.3.5.187' + +homepage = 'http://software.intel.com/en-us/articles/intel-tbb/' +description = """Intel Threading Building Blocks 4.0 (Intel TBB) + is a widely used, award-winning C++ template library for creating reliable, + portable, and scalable parallel applications. + Use Intel TBB for a simple and rapid way of developing robust task-based + parallel applications that scale to available processor cores, are compatible + with multiple environments, and are easier to maintain. + Intel TBB is the most proficient way to implement future-proof parallel applications + that tap into the power and performance of multicore and manycore hardware platforms.""" + +toolchain = {'name': 'dummy', 'version': 'dummy'} + +sources = ['l_%s_%s.tgz' % (name, version)] + +moduleclass = 'lib' + +dontcreateinstalldir = 'True' + +# license file +import os +license_file = os.path.join(os.getenv('HOME'), "licenses", "intel", "license.lic") diff --git a/t/tbb/tbb-4.3.6.211.eb b/t/tbb/tbb-4.3.6.211.eb new file mode 100644 index 00000000..27609d13 --- /dev/null +++ b/t/tbb/tbb-4.3.6.211.eb @@ -0,0 +1,24 @@ +name = 'tbb' +version = '4.3.6.211' + +homepage = 'http://software.intel.com/en-us/articles/intel-tbb/' +description = """Intel Threading Building Blocks 4.0 (Intel TBB) + is a widely used, award-winning C++ template library for creating reliable, + portable, and scalable parallel applications. + Use Intel TBB for a simple and rapid way of developing robust task-based + parallel applications that scale to available processor cores, are compatible + with multiple environments, and are easier to maintain. + Intel TBB is the most proficient way to implement future-proof parallel applications + that tap into the power and performance of multicore and manycore hardware platforms.""" + +toolchain = {'name': 'dummy', 'version': 'dummy'} + +sources = ['l_%(name)s_%(version)s.tgz'] + +dontcreateinstalldir = 'True' + +# license file +import os +license_file = os.path.join(os.getenv('HOME'), "licenses", "intel", "license.lic") + +moduleclass = 'lib' diff --git a/t/tbb/tbb-4.4.2.152.eb b/t/tbb/tbb-4.4.2.152.eb new file mode 100644 index 00000000..a09fc452 --- /dev/null +++ b/t/tbb/tbb-4.4.2.152.eb @@ -0,0 +1,24 @@ +name = 'tbb' +version = '4.4.2.152' + +homepage = 'http://software.intel.com/en-us/articles/intel-tbb/' +description = """Intel Threading Building Blocks 4.0 (Intel TBB) + is a widely used, award-winning C++ template library for creating reliable, + portable, and scalable parallel applications. + Use Intel TBB for a simple and rapid way of developing robust task-based + parallel applications that scale to available processor cores, are compatible + with multiple environments, and are easier to maintain. + Intel TBB is the most proficient way to implement future-proof parallel applications + that tap into the power and performance of multicore and manycore hardware platforms.""" + +toolchain = {'name': 'dummy', 'version': 'dummy'} + +sources = ['l_%(name)s_%(version)s.tgz'] + +dontcreateinstalldir = 'True' + +# license file +import os +license_file = os.path.join(os.getenv('HOME'), "licenses", "intel", "license.lic") + +moduleclass = 'lib' diff --git a/t/tcsh/tcsh-6.18.01-intel-2015b.eb b/t/tcsh/tcsh-6.18.01-intel-2015b.eb new file mode 100644 index 00000000..b0116173 --- /dev/null +++ b/t/tcsh/tcsh-6.18.01-intel-2015b.eb @@ -0,0 +1,64 @@ +# Built with EasyBuild version 2.1.1 on 2015-06-30_09-21-44 +## +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# +# Copyright:: Copyright 2012-2013 University of Luxembourg/Computer Science and Communications Research Unit +# Authors:: Valentin Plugaru +# 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_05-06.html +## +easyblock = 'ConfigureMake' + +name = 'tcsh' +version = '6.18.01' + +homepage = 'http://www.tcsh.org' +description = """Tcsh is an enhanced, but completely compatible version of the Berkeley UNIX C shell (csh). + It is a command language interpreter usable both as an interactive login shell and a shell script command + processor. It includes a command-line editor, programmable word completion, spelling correction, a history + mechanism, job control and a C-like syntax.""" + +toolchain = {'name': 'intel', 'version': '2015b'} + +sources = [SOURCELOWER_TAR_GZ] +source_urls = [ + 'ftp://ftp.astron.com/pub/%(namelower)s', + 'ftp://ftp.astron.com/pub/%(namelower)s/old', +] + +dependencies = [('ncurses', '5.9')] + +sanity_check_paths = { + 'files': ["bin/tcsh"], + 'dirs': [] +} + +moduleclass = 'tools' + +# Build statistics +buildstats = [{ + "easybuild-framework_version": "2.1.1", + "easybuild-easyblocks_version": "2.1.1", + "timestamp": 1435648904, + "build_time": 37.86, + "install_size": 1505416, + "command_line": ['--buildpath=/easybuild/build', '--installpath=/apps', '--installpath-modules=/apps/modules', '--installpath-software=/apps', '--module-naming-scheme=IT4IModuleNamingScheme', '--modules-footer=/easybuild/templates/modules/jas02_footer.txt', '--repositorypath=/easybuild/file-repository', '--robot=/easybuild/easyconfigs-salomon/easybuild/easyconfigs', '--robot-paths=/easybuild/easyconfigs-salomon/easybuild/easyconfigs', '--sourcepath=/easybuild/sources', '--try-toolchain="[\'intel\', \'2015b\']"', 'tcsh-6.18.01-intel-2015a.eb'], + "modules_tool": ('EnvironmentModulesC', '/usr/bin/modulecmd', '3.2.10'), + "core_count": 28, + "cpu_model": "Intel(R) Xeon(R) CPU E5-2695 v3 @ 2.30GHz", + "cpu_speed": 2300.041, + "cpu_vendor": "Intel", + "gcc_version": "Using built-in specs.; COLLECT_GCC=gcc; COLLECT_LTO_WRAPPER=/apps/all/GCC/5.1.0-binutils-2.25/libexec/gcc/x86_64-unknown-linux-gnu/5.1.0/lto-wrapper; Target: x86_64-unknown-linux-gnu; Configured with: ../configure --enable-languages=c,c++,fortran --enable-lto --enable-checking=release --disable-multilib --enable-shared=yes --enable-static=yes --enable-threads=posix --enable-gold=default --enable-plugins --enable-ld --with-plugin-ld=ld.gold --prefix=/apps/all/GCC/5.1.0-binutils-2.25 --with-local-prefix=/apps/all/GCC/5.1.0-binutils-2.25 --enable-bootstrap --with-isl=/easybuild/build/GCC/5.1.0/dummy--binutils-2.25/gcc-5.1.0/stage2_stuff; Thread model: posix; gcc version 5.1.0 (GCC) ; ", + "glibc_version": "2.12", + "hostname": "login1", + "os_name": "centos", + "os_type": "Linux", + "os_version": "6.6", + "platform_name": "x86_64-unknown-linux", + "python_version": "2.6.6 (r266:84292, Jan 22 2014, 09:42:36) ; [GCC 4.4.7 20120313 (Red Hat 4.4.7-4)]", + "system_gcc_path": "/apps/all/GCC/5.1.0-binutils-2.25/bin/gcc", + "system_python_path": "/usr/bin/python", +}] diff --git a/t/tecplot360ex/tecplot360ex-linux64.eb b/t/tecplot360ex/tecplot360ex-linux64.eb new file mode 100644 index 00000000..40607b69 --- /dev/null +++ b/t/tecplot360ex/tecplot360ex-linux64.eb @@ -0,0 +1,24 @@ +easyblock = 'Binary' + +name = 'tecplot360ex' +version = 'linux64' + +homepage = 'http://www.tecplot.com/products/tecplot-360/' +description = """ + Quickly plot and animate your CFD results exactly the way you want. Analyze complex solutions, arrange multiple layouts, + and communicate your results with professional images and animations. +""" + +toolchain = {'name': 'dummy', 'version': 'dummy'} + +# fi. http://www.tecplot.com/my/product-releases/ +installername = '%(name)s_%(version)s.sh' +sources = [installername] + +sanity_check_paths = { + 'files': ['bin/tec360'], + 'dirs': [] +} +install_cmd = 'chmod +x %s && ./%s --skip-license --prefix=%%(installdir)s' % (installername, installername) + +moduleclass = 'vis' diff --git a/t/texinfo/texinfo-4.13a.eb b/t/texinfo/texinfo-4.13a.eb new file mode 100644 index 00000000..1f310522 --- /dev/null +++ b/t/texinfo/texinfo-4.13a.eb @@ -0,0 +1,31 @@ +easyblock = 'ConfigureMake' + +name = 'texinfo' +version = '4.13a' + +homepage = 'https://www.gnu.org/software/texinfo/' +description = """Texinfo is the official documentation format of the GNU project.""" + +source_urls = [GNU_SOURCE] +sources = [SOURCELOWER_TAR_GZ] + +toolchain = {'name': 'dummy', 'version': ''} + +osdependencies = ['texlive'] + +preinstallopts = "make TEXMF=%(installdir)s/texmf install-tex && " + +# This will overwrite a users $TEXMFHOME so this module is best used as a build dependency +modextravars = {'TEXMFHOME': '%(installdir)s/texmf'} +modloadmsg = "\n\nWARNING: This texinfo module has (re)defined the value for the environment variable \\$TEXMFHOME.\n" +modloadmsg += "If you use a custom texmf directory (such as ~/texmf) you should copy files found in the\n" +modloadmsg += "new \\$TEXMFHOME to your custom directory and reset the value of \\$TEXMFHOME to point to that space:\n" +modloadmsg += "\tcp -r $TEXMFHOME/* /path/to/your/texmf\n" +modloadmsg += "\texport TEXMFHOME=/path/to/your/texmf\n\n" + +sanity_check_paths = { + 'files': ['bin/info', 'bin/makeinfo', 'bin/texi2pdf', 'texmf/tex/texinfo/texinfo.tex'], + 'dirs': [], +} + +moduleclass = 'devel' diff --git a/t/texinfo/texinfo-5.2-GCC-4.8.2.eb b/t/texinfo/texinfo-5.2-GCC-4.8.2.eb new file mode 100644 index 00000000..e8a270b3 --- /dev/null +++ b/t/texinfo/texinfo-5.2-GCC-4.8.2.eb @@ -0,0 +1,31 @@ +easyblock = 'ConfigureMake' + +name = 'texinfo' +version = '5.2' + +homepage = 'https://www.gnu.org/software/texinfo/' +description = """Texinfo is the official documentation format of the GNU project.""" + +source_urls = [GNU_SOURCE] +sources = [SOURCELOWER_TAR_XZ] + +toolchain = {'name': 'GCC', 'version': '4.8.2'} + +osdependencies = ['texlive'] + +preinstallopts = "make TEXMF=%(installdir)s/texmf install-tex && " + +# This will overwrite a users $TEXMFHOME so this module is best used as a build dependency +modextravars = {'TEXMFHOME': '%(installdir)s/texmf'} +modloadmsg = "\n\nWARNING: This texinfo module has (re)defined the value for the environment variable \\$TEXMFHOME.\n" +modloadmsg += "If you use a custom texmf directory (such as ~/texmf) you should copy files found in the\n" +modloadmsg += "new \\$TEXMFHOME to your custom directory and reset the value of \\$TEXMFHOME to point to that space:\n" +modloadmsg += "\tcp -r $TEXMFHOME/* /path/to/your/texmf\n" +modloadmsg += "\texport TEXMFHOME=/path/to/your/texmf\n\n" + +sanity_check_paths = { + 'files': ['bin/info', 'bin/makeinfo', 'bin/pod2texi', 'bin/texi2pdf', 'texmf/tex/texinfo/texinfo.tex'], + 'dirs': [], +} + +moduleclass = 'devel' diff --git a/t/tmux/tmux-1.9a-GCC-4.9.2.eb b/t/tmux/tmux-1.9a-GCC-4.9.2.eb new file mode 100644 index 00000000..b34529fe --- /dev/null +++ b/t/tmux/tmux-1.9a-GCC-4.9.2.eb @@ -0,0 +1,26 @@ +easyblock = 'ConfigureMake' + +name = 'tmux' +version = '1.9a' + +homepage = 'http://tmux.sourceforge.net/' +description = """tmux is a terminal multiplexer. It lets you switch easily +between several programs in one terminal, detach them (they keep running in the background) and reattach them to a different terminal.""" + +toolchain = {'name': 'GCC', 'version': '4.9.2'} +toolchainopts = {'optarch': True} + +sources = [SOURCE_TAR_GZ] +source_urls = [SOURCEFORGE_SOURCE] + +dependencies = [ + ('ncurses', '5.9'), + ('libevent', '2.0.22'), +] + +sanity_check_paths = { + 'files': ['bin/tmux'], + 'dirs': [] +} + +moduleclass = 'tools' diff --git a/t/tmux/tmux-2.2-GCCcore-4.9.3.eb b/t/tmux/tmux-2.2-GCCcore-4.9.3.eb new file mode 100644 index 00000000..a8b6500b --- /dev/null +++ b/t/tmux/tmux-2.2-GCCcore-4.9.3.eb @@ -0,0 +1,31 @@ +easyblock = 'ConfigureMake' + +name = 'tmux' +version = '2.2' + +homepage = 'http://tmux.sourceforge.net/' +description = """tmux is a terminal multiplexer. It lets you switch easily +between several programs in one terminal, detach them (they keep running in the background) and reattach them to a different terminal.""" + +toolchain = {'name': 'GCCcore', 'version': '4.9.3'} +toolchainopts = {'optarch': True} + +sources = [SOURCE_TAR_GZ] +source_urls = ['https://github.com/tmux/tmux/releases/download/%(version)s/'] + +builddependencies = [ + # use same binutils version that was used when building GCCcore toolchain + ('binutils', '2.25', '', True), +] + +dependencies = [ + ('ncurses', '6.0'), + ('libevent', '2.0.22'), +] + +sanity_check_paths = { + 'files': ['bin/tmux'], + 'dirs': [] +} + +moduleclass = 'tools' diff --git a/t/tmux/tmux-2.3.eb b/t/tmux/tmux-2.3.eb new file mode 100644 index 00000000..d9aa3561 --- /dev/null +++ b/t/tmux/tmux-2.3.eb @@ -0,0 +1,26 @@ +easyblock = 'ConfigureMake' + +name = 'tmux' +version = '2.3' + +homepage = 'http://tmux.sourceforge.net/' +description = """tmux is a terminal multiplexer. It lets you switch easily +between several programs in one terminal, detach them (they keep running in the background) and reattach them to a different terminal.""" + +toolchain = {'name': 'dummy', 'version': 'dummy'} +toolchainopts = {'optarch': True} + +sources = [SOURCE_TAR_GZ] +source_urls = ['https://github.com/tmux/tmux/releases/download/%(version)s/'] + +dependencies = [ + ('ncurses', '6.0'), + ('libevent', '2.1.8'), +] + +sanity_check_paths = { + 'files': ['bin/tmux'], + 'dirs': [] +} + +moduleclass = 'tools' diff --git a/t/turbovnc/turbovnc-1.2.3.eb b/t/turbovnc/turbovnc-1.2.3.eb new file mode 100644 index 00000000..04dfc716 --- /dev/null +++ b/t/turbovnc/turbovnc-1.2.3.eb @@ -0,0 +1,28 @@ +easyblock = 'ConfigureMake' + +name = "turbovnc" +version = '1.2.3' + +homepage = 'http://www.turbovnc.org' +description = """ +TurboVNC is a derivative of VNC (Virtual Network Computing) that is tuned to +provide peak performance for 3D and video workloads.""" + +toolchain = {'name': 'dummy', 'version': ''} # empty version to ensure that dependencies are loaded + +osdependencies = ['turbovnc'] + +skipsteps = ['source', 'patch', 'prepare','configure', 'build', 'test', 'sanitycheck'] + +sanity_check_paths = { + 'files': [''], + 'dirs': ['/opt/TurboVNC'] +} + +#installdir = "/opt/TurboVNC" + +#modextrapaths = {"PATH": '%(installdir)s/bin', +# "MANPATH": '/opt/TurboVNC/man' +#} + +moduleclass = 'tools' diff --git a/u/UFL/UFL-1.0.0-goolf-1.4.10-Python-2.7.3.eb b/u/UFL/UFL-1.0.0-goolf-1.4.10-Python-2.7.3.eb new file mode 100644 index 00000000..44bbfb4a --- /dev/null +++ b/u/UFL/UFL-1.0.0-goolf-1.4.10-Python-2.7.3.eb @@ -0,0 +1,30 @@ +easyblock = "PythonPackage" + +name = 'UFL' +version = '1.0.0' + +homepage = 'https://launchpad.net/ufl' +description = """The Unified Form Language (UFL) is a domain specific language for declaration of finite element discretizations +of variational forms. More precisely, it defines a flexible interface for choosing finite element spaces and defining expressions +for weak forms in a notation close to mathematical notation.""" + +toolchain = {'name': 'goolf', 'version': '1.4.10'} + +majorversion = "%s.x" % ".".join(version.split('.')[:-1]) +source_urls = ['https://launchpad.net/UFL/%s/%s/+download/' % (majorversion, version)] +sources = [SOURCELOWER_TAR_GZ] + +python = "Python" +pythonversion = '2.7.3' +pythonshortversion = ".".join(pythonversion.split(".")[:-1]) + +versionsuffix = "-%s-%s" % (python, pythonversion) + +dependencies = [(python, pythonversion)] + +sanity_check_paths = { + 'files': ['bin/%s' % x for x in ["form2ufl", "ufl2py", "ufl-analyse", "ufl-convert", "ufl-version"]], + 'dirs': ['lib/python%s/site-packages/ufl' % pythonshortversion] +} + +moduleclass = 'cae' diff --git a/u/UFL/UFL-1.0.0-ictce-5.3.0-Python-2.7.3.eb b/u/UFL/UFL-1.0.0-ictce-5.3.0-Python-2.7.3.eb new file mode 100644 index 00000000..30a21223 --- /dev/null +++ b/u/UFL/UFL-1.0.0-ictce-5.3.0-Python-2.7.3.eb @@ -0,0 +1,31 @@ +easyblock = "PythonPackage" + +name = 'UFL' +version = '1.0.0' + +homepage = 'https://launchpad.net/ufl' +description = """The Unified Form Language (UFL) is a domain specific language for declaration of finite element discretizations + of variational forms. More precisely, it defines a flexible interface for choosing finite element spaces and defining expressions + for weak forms in a notation close to mathematical notation.""" + + +toolchain = {'name': 'ictce', 'version': '5.3.0'} + +majorversion = "%s.x" % ".".join(version.split('.')[:-1]) +source_urls = ['https://launchpad.net/UFL/%s/%s/+download/' % (majorversion, version)] +sources = [SOURCELOWER_TAR_GZ] + +python = "Python" +pythonversion = '2.7.3' +pythonshortversion = ".".join(pythonversion.split(".")[:-1]) + +versionsuffix = "-%s-%s" % (python, pythonversion) + +dependencies = [(python, pythonversion)] + +sanity_check_paths = { + 'files': ['bin/%s' % x for x in ["form2ufl", "ufl2py", "ufl-analyse", "ufl-convert", "ufl-version"]], + 'dirs': ['lib/python%s/site-packages/ufl' % pythonshortversion] +} + +moduleclass = 'cae' diff --git a/u/USEARCH/USEARCH-5.2.236-i86linux32.eb b/u/USEARCH/USEARCH-5.2.236-i86linux32.eb new file mode 100644 index 00000000..961153d9 --- /dev/null +++ b/u/USEARCH/USEARCH-5.2.236-i86linux32.eb @@ -0,0 +1,29 @@ +easyblock = 'Binary' + +name = 'USEARCH' +version = '5.2.236' +versionsuffix = '-i86linux32' + +homepage = 'http://www.drive5.com/usearch/index.html' +description = """USEARCH is a unique sequence analysis tool which offers search and clustering algorithms that are + often orders of magnitude faster than BLAST.""" + +toolchain = {'name': 'dummy', 'version': 'dummy'} + +# download via http://www.drive5.com/usearch/download.html +usearch_bin = 'usearch%s_%s' % (version, versionsuffix[1:]) +sources = [usearch_bin] + +install_cmd = "mkdir -p %%(installdir)s/bin && mv %s %%(installdir)s/bin/%%(namelower)s && " % usearch_bin +install_cmd += "chmod a+rx %(installdir)s/bin/%(namelower)s" + +modloadmsg = """USEARCH (32-bit) is licensed software but + can be used for free by individuals when registered. A 64-bit version is + also available. For more information see http://www.drive5.com/usearch .""" + +sanity_check_paths = { + 'files': ['bin/%(namelower)s'], + 'dirs': [], +} + +moduleclass = 'bio' diff --git a/u/USEARCH/USEARCH-6.1.544-i86linux32.eb b/u/USEARCH/USEARCH-6.1.544-i86linux32.eb new file mode 100644 index 00000000..07e180da --- /dev/null +++ b/u/USEARCH/USEARCH-6.1.544-i86linux32.eb @@ -0,0 +1,29 @@ +easyblock = 'Binary' + +name = 'USEARCH' +version = '6.1.544' +versionsuffix = '-i86linux32' + +homepage = 'http://www.drive5.com/usearch/index.html' +description = """USEARCH is a unique sequence analysis tool which offers search and clustering algorithms that are + often orders of magnitude faster than BLAST.""" + +toolchain = {'name': 'dummy', 'version': 'dummy'} + +# download via http://www.drive5.com/usearch/download.html +usearch_bin = 'usearch%s_%s' % (version, versionsuffix[1:]) +sources = [usearch_bin] + +install_cmd = "mkdir -p %%(installdir)s/bin && mv %s %%(installdir)s/bin/%%(namelower)s && " % usearch_bin +install_cmd += "chmod a+rx %(installdir)s/bin/%(namelower)s" + +modloadmsg = """USEARCH (32-bit) is licensed software but + can be used for free by individuals when registered. A 64-bit version is + also available. For more information see http://www.drive5.com/usearch .""" + +sanity_check_paths = { + 'files': ['bin/%(namelower)s'], + 'dirs': [], +} + +moduleclass = 'bio' diff --git a/u/USPEX/USPEX-9.4.4-intel-2016b-Python-2.7.12.eb b/u/USPEX/USPEX-9.4.4-intel-2016b-Python-2.7.12.eb new file mode 100644 index 00000000..ae04827a --- /dev/null +++ b/u/USPEX/USPEX-9.4.4-intel-2016b-Python-2.7.12.eb @@ -0,0 +1,49 @@ +easyblock = 'PackedBinary' + +name = 'USPEX' +version = '9.4.4' +versionsuffix = '-Python-%(pyver)s' + +homepage = 'http://uspex-team.org/uspex/overview' +description = """USPEX (Universal Structure Predictor: Evolutionary Xtallography... + and in Russian "uspekh" means "success" - owing to the high success rate and many + useful results produced by this method) is a method developed by the Oganov + laboratory since 2004. The problem of crystal structure prediction is very old and + does, in fact, constitute the central problem of theoretical crystal chemistry. + +USPEX can also be used for finding low-energy metastable phases, as well as stable + structures of nanoparticles, surface reconstructions, molecular packings in organic + crystals, and for searching for materials with desired physical (mechanical, + electronic) properties. The USPEX code is based on an efficient evolutionary + algorithm developed by A.R. Oganov's group, but also has options for using + alternative methods (random sampling, metadynamics, corrected particle swarm + optimization algorithms). USPEX is interfaced with many ab initio codes, such as + VASP, SIESTA, GULP, Quantum Espresso, CP2K, CASTEP, LAMMPS, and so on. """ + +toolchain = {'name': 'intel', 'version': '2016b'} + +sources = ['%(name)s-%(version)s.tar.gz'] +#You have to register before download +#source_urls = ['http://uspex-team.org/uspex/downloads'] + +dependencies = [ + ('Python', '2.7.12'), + ('Octave', '4.0.3'), +] + +postinstallcmds = [ + 'echo $EBROOTOCTAVE/bin/octave > %(installdir)s/CODEPATH', + 'chmod +x %(installdir)s/src/FunctionFolder/Tool/*', + 'rm %(installdir)s/INSTALL', + 'rm %(installdir)s/install.sh', + 'rm %(installdir)s/job', +] + +sanity_check_paths = { + 'files': ['USPEX'], + 'dirs': ['doc', 'examples', 'lib', 'src', 'tests'] +} + +modextravars = {'USPEXPATH': '%(installdir)s/src'} + +moduleclass = 'phys' diff --git a/u/util-linux/util-linux-2.26.1-foss-2015g.eb b/u/util-linux/util-linux-2.26.1-foss-2015g.eb new file mode 100644 index 00000000..6fef04c4 --- /dev/null +++ b/u/util-linux/util-linux-2.26.1-foss-2015g.eb @@ -0,0 +1,36 @@ +easyblock = 'ConfigureMake' + +name = 'util-linux' +version = '2.26.1' + +homepage = 'http://www.kernel.org/pub/linux/utils/util-linux' +description = """Set of Linux utilities""" + +# Problem with GCC/ICC (toolchain intel-2015b) +toolchain = {'name': 'foss', 'version': '2015g'} + +source_urls = ['%s/v%%(version_major_minor)s' % homepage] +sources = [SOURCELOWER_TAR_GZ] + +preconfigopts = 'export LDFLAGS="$LDFLAGS -lncurses -ltinfo" && ' + +# disable account related utilities (they need OS dependant pam-devel files) +# disable wall and friends (requires group changing permissions for install user) +# install systemd service files in install dir +# install bash completion files in install dir +configopts = '--disable-chfn-chsh --disable-login --disable-su ' +configopts += '--disable-wall --disable-use-tty-group ' +configopts += '--disable-makeinstall-chown --disable-makeinstall-setuid ' +configopts += "--with-systemdsystemunitdir='${prefix}/systemd' " +configopts += "--with-bashcompletiondir='${prefix}/share/bash-completion/completions' " +# disable building Python bindings (since we don't include Python as a dep) +configopts += "--without-python " + +dependencies = [('ncurses', '5.9')] + +sanity_check_paths = { + 'files': ['lib/lib%s.a' % x for x in ['blkid' , 'mount', 'uuid']], + 'dirs': ['include', 'bin', 'share', 'sbin'], +} + +moduleclass = 'tools' diff --git a/u/util-linux/util-linux-2.26.1-goolf-1.4.10.eb b/u/util-linux/util-linux-2.26.1-goolf-1.4.10.eb new file mode 100644 index 00000000..dec0e334 --- /dev/null +++ b/u/util-linux/util-linux-2.26.1-goolf-1.4.10.eb @@ -0,0 +1,33 @@ +easyblock = 'ConfigureMake' + +name = 'util-linux' +version = '2.26.1' + +homepage = 'http://www.kernel.org/pub/linux/utils/util-linux' +description = """Set of Linux utilities""" + +toolchain = {'name': 'goolf', 'version': '1.4.10'} + +source_urls = ['%s/v%%(version_major_minor)s' % homepage] +sources = [SOURCELOWER_TAR_GZ] + +# disable account related utilities (they need OS dependant pam-devel files) +# disable wall and friends (requires group changing permissions for install user) +# install systemd service files in install dir +# install bash completion files in install dir +configopts = '--disable-chfn-chsh --disable-login --disable-su ' +configopts += '--disable-wall --disable-use-tty-group ' +configopts += '--disable-makeinstall-chown --disable-makeinstall-setuid ' +configopts += "--with-systemdsystemunitdir='${prefix}/systemd' " +configopts += "--with-bashcompletiondir='${prefix}/share/bash-completion/completions' " +# disable building Python bindings (since we don't include Python as a dep) +configopts += "--without-python " + +dependencies = [('ncurses', '5.9')] + +sanity_check_paths = { + 'files': ['lib/lib%s.a' % x for x in ['blkid' , 'mount', 'uuid']], + 'dirs': ['include', 'bin', 'share', 'sbin'], +} + +moduleclass = 'tools' diff --git a/u/util-linux/util-linux-2.26.1-intel-2015b.eb b/u/util-linux/util-linux-2.26.1-intel-2015b.eb new file mode 100644 index 00000000..d4312a1a --- /dev/null +++ b/u/util-linux/util-linux-2.26.1-intel-2015b.eb @@ -0,0 +1,33 @@ +easyblock = 'ConfigureMake' + +name = 'util-linux' +version = '2.26.1' + +homepage = 'http://www.kernel.org/pub/linux/utils/util-linux' +description = """Set of Linux utilities""" + +toolchain = {'name': 'intel', 'version': '2015b'} + +source_urls = ['%s/v%%(version_major_minor)s' % homepage] +sources = [SOURCELOWER_TAR_GZ] + +# disable account related utilities (they need OS dependant pam-devel files) +# disable wall and friends (requires group changing permissions for install user) +# install systemd service files in install dir +# install bash completion files in install dir +configopts = '--disable-chfn-chsh --disable-login --disable-su ' +configopts += '--disable-wall --disable-use-tty-group ' +configopts += '--disable-makeinstall-chown --disable-makeinstall-setuid ' +configopts += "--with-systemdsystemunitdir='${prefix}/systemd' " +configopts += "--with-bashcompletiondir='${prefix}/share/bash-completion/completions' " +# disable building Python bindings (since we don't include Python as a dep) +configopts += "--without-python " + +dependencies = [('ncurses', '5.9')] + +sanity_check_paths = { + 'files': ['lib/lib%s.a' % x for x in ['blkid' , 'mount', 'uuid']], + 'dirs': ['include', 'bin', 'share', 'sbin'], +} + +moduleclass = 'tools' diff --git a/u/util-linux/util-linux-2.26.1.eb b/u/util-linux/util-linux-2.26.1.eb new file mode 100644 index 00000000..04b90958 --- /dev/null +++ b/u/util-linux/util-linux-2.26.1.eb @@ -0,0 +1,34 @@ +easyblock = 'ConfigureMake' + +name = 'util-linux' +version = '2.26.1' + +homepage = 'http://www.kernel.org/pub/linux/utils/util-linux' +description = """Set of Linux utilities""" + +# Problem with GCC/ICC (toolchain intel-2015b) +toolchain = {'name': 'dummy', 'version': 'dummy'} + +source_urls = ['%s/v%%(version_major_minor)s' % homepage] +sources = [SOURCELOWER_TAR_GZ] + +# disable account related utilities (they need OS dependant pam-devel files) +# disable wall and friends (requires group changing permissions for install user) +# install systemd service files in install dir +# install bash completion files in install dir +configopts = '--disable-chfn-chsh --disable-login --disable-su ' +configopts += '--disable-wall --disable-use-tty-group ' +configopts += '--disable-makeinstall-chown --disable-makeinstall-setuid ' +configopts += "--with-systemdsystemunitdir='${prefix}/systemd' " +configopts += "--with-bashcompletiondir='${prefix}/share/bash-completion/completions' " +# disable building Python bindings (since we don't include Python as a dep) +configopts += "--without-python " + +dependencies = [('ncurses', '5.9', '', ('intel', '2015b'))] + +sanity_check_paths = { + 'files': ['lib/lib%s.a' % x for x in ['blkid' , 'mount', 'uuid']], + 'dirs': ['include', 'bin', 'share', 'sbin'], +} + +moduleclass = 'tools' diff --git a/v/VASP/VASP-5.4.1-24Jun15-intel-2015b-TEST.eb b/v/VASP/VASP-5.4.1-24Jun15-intel-2015b-TEST.eb new file mode 100644 index 00000000..5ff6339c --- /dev/null +++ b/v/VASP/VASP-5.4.1-24Jun15-intel-2015b-TEST.eb @@ -0,0 +1,42 @@ +easyblock = 'MakeCp' + +name = 'VASP' +version = '5.4.1' +versionsuffix = '-24Jun15-UV' + +homepage = 'http://www.vasp.at' +description = """The Vienna Ab initio Simulation Package (VASP) is a computer program for atomic scale +materials modelling, e.g. electronic structure calculations and quantum-mechanical molecular dynamics, +from first principles.""" + +toolchain = {'name': 'intel', 'version': '2015b'} +toolchainopts = {'pic': True, 'usempi': True} + +# Vasp is proprietary software, see http://www.vasp.at/index.php/faqs on how to get access to the code +sources = ['vasp.5.4.1.tar'] + +dependencies = [ + ('FFTW', '3.3.4'), + ('zlib', '1.2.8'), +] + +prebuildopts = 'cp arch/makefile.include.linux_intel ./makefile.include && ' + +# path to libfftw3xf_intel.a is hardcoded in makefile.include +prebuildopts += 'sed -i "s|\$(MKLROOT)/interfaces/fftw3xf|\$(FFTW_LIB_DIR)|" makefile.include && ' + +# VASP uses LIBS as a list of folders +prebuildopts += 'unset LIBS && ' + +buildopts = 'all BLACS="$LIBBLACS" ' + +parallel = 1 + +files_to_copy = [(['bin/vasp_std', 'bin/vasp_gam', 'bin/vasp_ncl'], 'bin')] + +sanity_check_paths = { + 'files': ['bin/vasp_std', 'bin/vasp_gam', 'bin/vasp_ncl'], + 'dirs': [] +} + +moduleclass = 'phys' diff --git a/v/VASP/VASP-5.4.1-24Jun15-intel-2015b-UV2000.eb b/v/VASP/VASP-5.4.1-24Jun15-intel-2015b-UV2000.eb new file mode 100644 index 00000000..5ff6339c --- /dev/null +++ b/v/VASP/VASP-5.4.1-24Jun15-intel-2015b-UV2000.eb @@ -0,0 +1,42 @@ +easyblock = 'MakeCp' + +name = 'VASP' +version = '5.4.1' +versionsuffix = '-24Jun15-UV' + +homepage = 'http://www.vasp.at' +description = """The Vienna Ab initio Simulation Package (VASP) is a computer program for atomic scale +materials modelling, e.g. electronic structure calculations and quantum-mechanical molecular dynamics, +from first principles.""" + +toolchain = {'name': 'intel', 'version': '2015b'} +toolchainopts = {'pic': True, 'usempi': True} + +# Vasp is proprietary software, see http://www.vasp.at/index.php/faqs on how to get access to the code +sources = ['vasp.5.4.1.tar'] + +dependencies = [ + ('FFTW', '3.3.4'), + ('zlib', '1.2.8'), +] + +prebuildopts = 'cp arch/makefile.include.linux_intel ./makefile.include && ' + +# path to libfftw3xf_intel.a is hardcoded in makefile.include +prebuildopts += 'sed -i "s|\$(MKLROOT)/interfaces/fftw3xf|\$(FFTW_LIB_DIR)|" makefile.include && ' + +# VASP uses LIBS as a list of folders +prebuildopts += 'unset LIBS && ' + +buildopts = 'all BLACS="$LIBBLACS" ' + +parallel = 1 + +files_to_copy = [(['bin/vasp_std', 'bin/vasp_gam', 'bin/vasp_ncl'], 'bin')] + +sanity_check_paths = { + 'files': ['bin/vasp_std', 'bin/vasp_gam', 'bin/vasp_ncl'], + 'dirs': [] +} + +moduleclass = 'phys' diff --git a/v/VASP/VASP-5.4.1-24Jun15-intel-2015b.eb b/v/VASP/VASP-5.4.1-24Jun15-intel-2015b.eb new file mode 100644 index 00000000..abc0410f --- /dev/null +++ b/v/VASP/VASP-5.4.1-24Jun15-intel-2015b.eb @@ -0,0 +1,42 @@ +easyblock = 'MakeCp' + +name = 'VASP' +version = '5.4.1' +versionsuffix = '-24Jun15' + +homepage = 'http://www.vasp.at' +description = """The Vienna Ab initio Simulation Package (VASP) is a computer program for atomic scale +materials modelling, e.g. electronic structure calculations and quantum-mechanical molecular dynamics, +from first principles.""" + +toolchain = {'name': 'intel', 'version': '2015b'} +toolchainopts = {'pic': True, 'usempi': True} + +# Vasp is proprietary software, see http://www.vasp.at/index.php/faqs on how to get access to the code +sources = ['vasp.5.4.1.tar'] + +dependencies = [ + ('FFTW', '3.3.4'), + ('zlib', '1.2.8'), +] + +prebuildopts = 'cp arch/makefile.include.linux_intel ./makefile.include && ' + +# path to libfftw3xf_intel.a is hardcoded in makefile.include +prebuildopts += 'sed -i "s|\$(MKLROOT)/interfaces/fftw3xf|\$(FFTW_LIB_DIR)|" makefile.include && ' + +# VASP uses LIBS as a list of folders +prebuildopts += 'unset LIBS && ' + +buildopts = 'all BLACS="$LIBBLACS" ' + +parallel = 1 + +files_to_copy = [(['bin/vasp_std', 'bin/vasp_gam', 'bin/vasp_ncl'], 'bin')] + +sanity_check_paths = { + 'files': ['bin/vasp_std', 'bin/vasp_gam', 'bin/vasp_ncl'], + 'dirs': [] +} + +moduleclass = 'phys' diff --git a/v/VASP/VASP-5.4.1-24Jun15-intel-2017.00.eb b/v/VASP/VASP-5.4.1-24Jun15-intel-2017.00.eb new file mode 100644 index 00000000..1729dfba --- /dev/null +++ b/v/VASP/VASP-5.4.1-24Jun15-intel-2017.00.eb @@ -0,0 +1,45 @@ +easyblock = 'MakeCp' + +name = 'VASP' +version = '5.4.1' +versionsuffix = '-24Jun15' + +homepage = 'http://www.vasp.at' +description = """The Vienna Ab initio Simulation Package (VASP) is a computer program for atomic scale +materials modelling, e.g. electronic structure calculations and quantum-mechanical molecular dynamics, +from first principles.""" + +toolchain = {'name': 'intel', 'version': '2017.00'} +toolchainopts = {'pic': True, 'usempi': True} + +# Vasp is proprietary software, see http://www.vasp.at/index.php/faqs on how to get access to the code +sources = ['vasp.5.4.1.tar'] + +dependencies = [ + ('FFTW', '3.3.5'), + ('zlib', '1.2.8'), +] + +prebuildopts = 'cp arch/makefile.include.linux_intel ./makefile.include && ' + +# path to libfftw3xf_intel.a is hardcoded in makefile.include +prebuildopts += 'sed -i "s|\$(MKLROOT)/interfaces/fftw3xf|\$(FFTW_LIB_DIR)|" makefile.include && ' + +# remove mkl flag to prevent mixing dynamic libs with the static libs in LIBBLACS/SCALAPACK +prebuildopts += 'sed -i "s|-mkl||" makefile.include && ' + +# VASP uses LIBS as a list of folders +prebuildopts += 'unset LIBS && ' + +buildopts = 'all BLACS="$LIBBLACS" SCALAPACK="$LIBSCALAPACK"' + +parallel = 1 + +files_to_copy = [(['bin/vasp_std', 'bin/vasp_gam', 'bin/vasp_ncl'], 'bin')] + +sanity_check_paths = { + 'files': ['bin/vasp_std', 'bin/vasp_gam', 'bin/vasp_ncl'], + 'dirs': [] +} + +moduleclass = 'phys' diff --git a/v/VASP/VASP-5.4.1-24Jun15-intel-2017a.eb b/v/VASP/VASP-5.4.1-24Jun15-intel-2017a.eb new file mode 100644 index 00000000..042644bf --- /dev/null +++ b/v/VASP/VASP-5.4.1-24Jun15-intel-2017a.eb @@ -0,0 +1,45 @@ +easyblock = 'MakeCp' + +name = 'VASP' +version = '5.4.1' +versionsuffix = '-24Jun15' + +homepage = 'http://www.vasp.at' +description = """The Vienna Ab initio Simulation Package (VASP) is a computer program for atomic scale +materials modelling, e.g. electronic structure calculations and quantum-mechanical molecular dynamics, +from first principles.""" + +toolchain = {'name': 'intel', 'version': '2017a} +toolchainopts = {'pic': True, 'usempi': True} + +# Vasp is proprietary software, see http://www.vasp.at/index.php/faqs on how to get access to the code +sources = ['vasp.5.4.1.tar'] + +dependencies = [ + ('FFTW', '3.3.5'), + ('zlib', '1.2.11'), +] + +prebuildopts = 'cp arch/makefile.include.linux_intel ./makefile.include && ' + +# path to libfftw3xf_intel.a is hardcoded in makefile.include +prebuildopts += 'sed -i "s|\$(MKLROOT)/interfaces/fftw3xf|\$(FFTW_LIB_DIR)|" makefile.include && ' + +# remove mkl flag to prevent mixing dynamic libs with the static libs in LIBBLACS/SCALAPACK +prebuildopts += 'sed -i "s|-mkl||" makefile.include && ' + +# VASP uses LIBS as a list of folders +prebuildopts += 'unset LIBS && ' + +buildopts = 'all BLACS="$LIBBLACS" SCALAPACK="$LIBSCALAPACK"' + +parallel = 1 + +files_to_copy = [(['bin/vasp_std', 'bin/vasp_gam', 'bin/vasp_ncl'], 'bin')] + +sanity_check_paths = { + 'files': ['bin/vasp_std', 'bin/vasp_gam', 'bin/vasp_ncl'], + 'dirs': [] +} + +moduleclass = 'phys' diff --git a/v/VASP/VASP-5.4.1-intel-2016.02-GCC-4.9.eb b/v/VASP/VASP-5.4.1-intel-2016.02-GCC-4.9.eb new file mode 100644 index 00000000..2a6923ac --- /dev/null +++ b/v/VASP/VASP-5.4.1-intel-2016.02-GCC-4.9.eb @@ -0,0 +1,36 @@ +easyblock = 'MakeCp' + +name = 'VASP' +version = '5.4.1' + +homepage = 'http://www.vasp.at' +description = """The Vienna Ab initio Simulation Package (VASP) is a computer program for atomic scale +materials modelling, e.g. electronic structure calculations and quantum-mechanical molecular dynamics, +from first principles.""" + +toolchain = {'name': 'intel', 'version': '2016.02-GCC-4.9'} +toolchainopts = {'usempi': True} + +# Vasp is proprietary software, see http://www.vasp.at/index.php/faqs on how to get access to the code +sources = [SOURCELOWER_TAR_GZ] + +prebuildopts = 'cp arch/makefile.include.linux_intel ./makefile.include && ' + +# path to libfftw3xf_intel.a is hardcoded in makefile.include +prebuildopts += 'sed -i "s|\$(MKLROOT)/interfaces/fftw3xf|\$(FFTW_LIB_DIR)|" makefile.include && ' + +# VASP uses LIBS as a list of folders +prebuildopts += 'unset LIBS && ' + +buildopts = 'all BLACS="$LIBBLACS" ' + +parallel = 1 + +files_to_copy = [(['bin/vasp_std', 'bin/vasp_gam', 'bin/vasp_ncl'], 'bin')] + +sanity_check_paths = { + 'files': ['bin/vasp_std', 'bin/vasp_gam', 'bin/vasp_ncl'], + 'dirs': [] +} + +moduleclass = 'phys' diff --git a/v/VCFtools/VCFtools-0.1.14-goolf-1.4.10-Perl-5.16.3.eb b/v/VCFtools/VCFtools-0.1.14-goolf-1.4.10-Perl-5.16.3.eb new file mode 100644 index 00000000..cbdd6fa4 --- /dev/null +++ b/v/VCFtools/VCFtools-0.1.14-goolf-1.4.10-Perl-5.16.3.eb @@ -0,0 +1,34 @@ +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# Author: Pablo Escobar Lopez +# sciCORE - University of Basel +# SIB Swiss Institute of Bioinformatics + +easyblock = 'ConfigureMake' + +name = 'VCFtools' +version = '0.1.14' +versionsuffix = '-Perl-%(perlver)s' + +homepage = 'https://vcftools.github.io/' +description = """A set of tools written in Perl and C++ for working with VCF files.""" + +toolchain = {'name': 'goolf', 'version': '1.4.10'} + +source_urls = ['https://github.com/vcftools/vcftools/releases/download/v%(version)s/'] +sources = [SOURCELOWER_TAR_GZ] + +dependencies = [ + ('Perl' , '5.16.3'), +] + +sanity_check_paths = { + 'files': ["bin/%s" % x for x in ["vcftools", "fill-fs", "vcf-compare", "vcf-contrast", + "vcf-fix-ploidy", "vcf-merge"]], + 'dirs': [], +} + +modextrapaths = { + 'PERL5LIB': 'lib/perl5/site_perl/', +} + +moduleclass = 'bio' diff --git a/v/VCFtools/VCFtools-0.1.14-goolf-1.7.20-Perl-5.22.2.eb b/v/VCFtools/VCFtools-0.1.14-goolf-1.7.20-Perl-5.22.2.eb new file mode 100644 index 00000000..c98bd749 --- /dev/null +++ b/v/VCFtools/VCFtools-0.1.14-goolf-1.7.20-Perl-5.22.2.eb @@ -0,0 +1,34 @@ +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# Author: Pablo Escobar Lopez +# sciCORE - University of Basel +# SIB Swiss Institute of Bioinformatics + +easyblock = 'ConfigureMake' + +name = 'VCFtools' +version = '0.1.14' +versionsuffix = '-Perl-%(perlver)s' + +homepage = 'https://vcftools.github.io/' +description = """A set of tools written in Perl and C++ for working with VCF files.""" + +toolchain = {'name': 'goolf', 'version': '1.7.20'} + +source_urls = ['https://github.com/vcftools/vcftools/releases/download/v%(version)s/'] +sources = [SOURCELOWER_TAR_GZ] + +dependencies = [ + ('Perl' , '5.22.2'), +] + +sanity_check_paths = { + 'files': ["bin/%s" % x for x in ["vcftools", "fill-fs", "vcf-compare", "vcf-contrast", + "vcf-fix-ploidy", "vcf-merge"]], + 'dirs': [], +} + +modextrapaths = { + 'PERL5LIB': 'lib/perl5/site_perl/', +} + +moduleclass = 'bio' diff --git a/v/VDE/VDE2-2.3.2-GCC-4.4.7-system.eb b/v/VDE/VDE2-2.3.2-GCC-4.4.7-system.eb new file mode 100644 index 00000000..140a9cbf --- /dev/null +++ b/v/VDE/VDE2-2.3.2-GCC-4.4.7-system.eb @@ -0,0 +1,27 @@ +# Built with EasyBuild version 2.1.1 on 2015-09-17_10-51-16 +easyblock = 'ConfigureMake' + +name = "VDE2" +version = "2.3.2" + +homepage = 'http://vde.sourceforge.net' +description = """VDE is an ethernet compliant virtual network that +can be spawned over a set of physical computer over the Internet. +VDE is part of virtualsquare project.""" + +toolchain = {'name': 'GCC', 'version': '4.4.7-system'} + +sources = [SOURCELOWER_TAR_BZ2] +source_urls = ['http://sourceforge.net/projects/%(names)s/files/%(names)s2/%(version)s/%(namelower)s-%(version)s.tar.bz2/download'] + +patches = ['vde2-slirpvde-sigpipe.patch'] + +sanity_check_paths = { + 'files': ['bin/vde_switch'], + 'dirs': ['bin', 'etc', 'share'], +} + +# It fails in case of default value +parallel = 1 + +moduleclass = 'tools' diff --git a/v/VDE2/VDE2-2.3.2-GCC-4.4.7-system.eb b/v/VDE2/VDE2-2.3.2-GCC-4.4.7-system.eb new file mode 100644 index 00000000..b4e85ed0 --- /dev/null +++ b/v/VDE2/VDE2-2.3.2-GCC-4.4.7-system.eb @@ -0,0 +1,32 @@ +# Built with EasyBuild version 2.1.1 on 2015-09-17_10-51-16 +easyblock = 'ConfigureMake' + +name = "VDE2" +version = "2.3.2" + +homepage = 'http://vde.sourceforge.net' +description = """VDE is an ethernet compliant virtual network that +can be spawned over a set of physical computer over the Internet. +VDE is part of virtualsquare project.""" + +toolchain = {'name': 'GCC', 'version': '4.4.7-system'} + +sources = [SOURCELOWER_TAR_BZ2] +source_urls = ['http://sourceforge.net/projects/%(names)s/files/%(names)s2/%(version)s/%(namelower)s-%(version)s.tar.bz2/download'] + +patches = ['vde2-slirpvde-sigpipe.patch'] + +sanity_check_paths = { + 'files': ['bin/vde_switch'], + 'dirs': ['bin', 'etc', 'share'], +} + +# It fails in case of default value +parallel = 1 + +modextravars = { + 'VDE2_HOME': '%(installdir)s', + 'VDE2_DIR': '%(installdir)s', +} + +moduleclass = 'tools' diff --git a/v/VTune/VTune-2013_update10.eb b/v/VTune/VTune-2013_update10.eb new file mode 100644 index 00000000..109b1823 --- /dev/null +++ b/v/VTune/VTune-2013_update10.eb @@ -0,0 +1,13 @@ +name = 'VTune' +version = '2013_update10' + +homepage = 'http://software.intel.com/en-us/intel-vtune-amplifier-xe' +description = "Intel VTune Amplifier XE 2013 is the premier performance profiler for C, C++, C#, Fortran, Assembly and Java." + +toolchain = {'name': 'dummy', 'version': 'dummy'} + +sources = ['vtune_amplifier_xe_%(version)s.tar.gz'] + +license_file = HOME + '/licenses/intel/license.lic' + +moduleclass = 'tools' diff --git a/v/VTune/VTune-2013_update6.eb b/v/VTune/VTune-2013_update6.eb new file mode 100644 index 00000000..52589402 --- /dev/null +++ b/v/VTune/VTune-2013_update6.eb @@ -0,0 +1,13 @@ +name = 'VTune' +version = '2013_update6' + +homepage = 'http://software.intel.com/en-us/intel-vtune-amplifier-xe' +description = "Intel VTune Amplifier XE 2013 is the premier performance profiler for C, C++, C#, Fortran, Assembly and Java." + +toolchain = {'name': 'dummy', 'version': 'dummy'} + +sources = ['vtune_amplifier_xe_%(version)s.tar.gz'] + +license_file = HOME + '/licenses/intel/license.lic' + +moduleclass = 'tools' diff --git a/v/VTune/VTune-2013_update8.eb b/v/VTune/VTune-2013_update8.eb new file mode 100644 index 00000000..de9aeec9 --- /dev/null +++ b/v/VTune/VTune-2013_update8.eb @@ -0,0 +1,13 @@ +name = 'VTune' +version = '2013_update8' + +homepage = 'http://software.intel.com/en-us/intel-vtune-amplifier-xe' +description = "Intel VTune Amplifier XE 2013 is the premier performance profiler for C, C++, C#, Fortran, Assembly and Java." + +toolchain = {'name': 'dummy', 'version': 'dummy'} + +sources = ['vtune_amplifier_xe_%(version)s.tar.gz'] + +license_file = HOME + '/licenses/intel/license.lic' + +moduleclass = 'tools' diff --git a/v/VTune/VTune-2013_update9.eb b/v/VTune/VTune-2013_update9.eb new file mode 100644 index 00000000..f40578b6 --- /dev/null +++ b/v/VTune/VTune-2013_update9.eb @@ -0,0 +1,13 @@ +name = 'VTune' +version = '2013_update9' + +homepage = 'http://software.intel.com/en-us/intel-vtune-amplifier-xe' +description = "Intel VTune Amplifier XE 2013 is the premier performance profiler for C, C++, C#, Fortran, Assembly and Java." + +toolchain = {'name': 'dummy', 'version': 'dummy'} + +sources = ['vtune_amplifier_xe_%(version)s.tar.gz'] + +license_file = HOME + '/licenses/intel/license.lic' + +moduleclass = 'tools' diff --git a/v/VTune/VTune-2016_update1.eb b/v/VTune/VTune-2016_update1.eb new file mode 100644 index 00000000..112489b9 --- /dev/null +++ b/v/VTune/VTune-2016_update1.eb @@ -0,0 +1,29 @@ +name = 'VTune' +version = '2016_update1' + +homepage = 'http://software.intel.com/en-us/intel-vtune-amplifier-xe' +description = "Intel VTune Amplifier XE 2016 is the premier performance profiler for C, C++, C#, Fortran, Assembly and Java." + +toolchain = {'name': 'dummy', 'version': 'dummy'} + +sources = ['vtune_amplifier_xe_%(version)s.tar.gz'] + +dontcreateinstalldir = 'True' + +# license file +import os +license_file = os.path.join(os.getenv('HOME'), "licenses", "intel", "license.lic") + +sanity_check_paths = { + 'files': [], + 'dirs': ['vtune_amplifier_xe_2016.1.1.434111'], +} + +# Do necessary post-install steps to build VTune kernel modules +postinstallcmds = [ + 'mkdir %(installdir)s/modules', + 'cd %(installdir)s/vtune_amplifier_xe/sepdk/src/ && ' + './build-driver --install-dir=%(installdir)s/modules --non-interactive', +] + +moduleclass = 'tools' diff --git a/v/VTune/VTune-2017_update2.eb b/v/VTune/VTune-2017_update2.eb new file mode 100644 index 00000000..852db06f --- /dev/null +++ b/v/VTune/VTune-2017_update2.eb @@ -0,0 +1,16 @@ +name = 'VTune' +version = '2017_update2' + +homepage = 'http://software.intel.com/en-us/intel-vtune-amplifier-xe' +description = """Intel VTune Amplifier XE is the premier performance profiler for C, C++, C#, Fortran, + Assembly and Java.""" + +checksums = ['1ef91898e107a1da015305def80091e4'] + +toolchain = {'name': 'dummy', 'version': 'dummy'} + +sources = ['vtune_amplifier_xe_%(version)s.tar.gz'] + +license_file = HOME + '/licenses/intel/license.lic' + +moduleclass = 'tools' diff --git a/v/Valgrind/Valgrind-3.11.0-foss-2015b.eb b/v/Valgrind/Valgrind-3.11.0-foss-2015b.eb new file mode 100644 index 00000000..eea189be --- /dev/null +++ b/v/Valgrind/Valgrind-3.11.0-foss-2015b.eb @@ -0,0 +1,62 @@ +# Built with EasyBuild version 2.1.1 on 2015-10-08_14-53-57 +## +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# +# Copyright:: Copyright 2012-2014 Uni.Lu/LCSB, NTUA, Ghent University +# Authors:: Fotis Georgatos , Ward Poelmans +# 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_07-02.html +## + +easyblock = 'ConfigureMake' + +name = 'Valgrind' +version = "3.11.0" + +homepage = 'http://valgrind.org/downloads/' +description = "Valgrind: Debugging and profiling tools" + +toolchain = {'name': 'foss', 'version': '2015b'} + +source_urls = ['http://valgrind.org/downloads/'] +sources = [SOURCELOWER_TAR_BZ2] + +binaries = [ + 'callgrind_annotate', 'callgrind_control', 'cg_annotate', 'cg_diff', + 'cg_merge', 'ms_print', 'valgrind', 'valgrind-listener', 'vgdb' +] + +sanity_check_paths = { + 'files': ['bin/%s' % x for x in binaries], + 'dirs': [] +} + +moduleclass = 'debugger' + +# Build statistics +buildstats = [{ + "easybuild-framework_version": "2.1.1", + "easybuild-easyblocks_version": "2.1.1", + "timestamp": 1444308837, + "build_time": 90.06, + "install_size": 208732591, + "command_line": ['--buildpath=/easybuild/build', '--installpath=/apps', '--installpath-modules=/apps/modules', '--installpath-software=/apps', '--module-naming-scheme=IT4IModuleNamingScheme', '--modules-footer=/easybuild/templates/modules/sta545_footer.txt', '--repositorypath=/easybuild/file-repository', '--robot=/easybuild/easyconfigs-salomon/easybuild/easyconfigs', '--robot-paths=/easybuild/easyconfigs-salomon/easybuild/easyconfigs', '--sourcepath=/easybuild/sources', '--try-software-version=3.11.0', '--try-toolchain="[\'foss\', \'2015b\']"', 'Valgrind-3.9.0-goalf-1.5.12-no-OFED.eb'], + "modules_tool": ('EnvironmentModulesC', '/usr/bin/modulecmd', '3.2.10'), + "core_count": 28, + "cpu_model": "Intel(R) Xeon(R) CPU E5-2695 v3 @ 2.30GHz", + "cpu_speed": 2299.798, + "cpu_vendor": "Intel", + "gcc_version": "Using built-in specs.; COLLECT_GCC=gcc; COLLECT_LTO_WRAPPER=/apps/all/GCC/5.1.0-binutils-2.25/libexec/gcc/x86_64-unknown-linux-gnu/5.1.0/lto-wrapper; Target: x86_64-unknown-linux-gnu; Configured with: ../configure --enable-languages=c,c++,fortran --enable-lto --enable-checking=release --disable-multilib --enable-shared=yes --enable-static=yes --enable-threads=posix --enable-gold=default --enable-plugins --enable-ld --with-plugin-ld=ld.gold --prefix=/apps/all/GCC/5.1.0-binutils-2.25 --with-local-prefix=/apps/all/GCC/5.1.0-binutils-2.25 --enable-bootstrap --with-isl=/easybuild/build/GCC/5.1.0/dummy--binutils-2.25/gcc-5.1.0/stage2_stuff; Thread model: posix; gcc version 5.1.0 (GCC) ; ", + "glibc_version": "2.12", + "hostname": "login1", + "os_name": "centos", + "os_type": "Linux", + "os_version": "6.6", + "platform_name": "x86_64-unknown-linux", + "python_version": "2.6.6 (r266:84292, Jan 22 2014, 09:42:36) ; [GCC 4.4.7 20120313 (Red Hat 4.4.7-4)]", + "system_gcc_path": "/apps/all/GCC/5.1.0-binutils-2.25/bin/gcc", + "system_python_path": "/usr/bin/python", +}] diff --git a/v/Valgrind/Valgrind-3.11.0-intel-2015b.eb b/v/Valgrind/Valgrind-3.11.0-intel-2015b.eb new file mode 100644 index 00000000..8d942d81 --- /dev/null +++ b/v/Valgrind/Valgrind-3.11.0-intel-2015b.eb @@ -0,0 +1,62 @@ +# Built with EasyBuild version 2.1.1 on 2015-10-08_15-04-40 +## +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# +# Copyright:: Copyright 2012-2014 Uni.Lu/LCSB, NTUA, Ghent University +# Authors:: Fotis Georgatos , Ward Poelmans +# 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_07-02.html +## + +easyblock = 'ConfigureMake' + +name = 'Valgrind' +version = "3.11.0" + +homepage = 'http://valgrind.org/downloads/' +description = "Valgrind: Debugging and profiling tools" + +toolchain = {'name': 'intel', 'version': '2015b'} + +source_urls = ['http://valgrind.org/downloads/'] +sources = [SOURCELOWER_TAR_BZ2] + +binaries = [ + 'callgrind_annotate', 'callgrind_control', 'cg_annotate', 'cg_diff', + 'cg_merge', 'ms_print', 'valgrind', 'valgrind-listener', 'vgdb' +] + +sanity_check_paths = { + 'files': ['bin/%s' % x for x in binaries], + 'dirs': [] +} + +moduleclass = 'debugger' + +# Build statistics +buildstats = [{ + "easybuild-framework_version": "2.1.1", + "easybuild-easyblocks_version": "2.1.1", + "timestamp": 1444309480, + "build_time": 168.9, + "install_size": 166475295, + "command_line": ['--buildpath=/easybuild/build', '--installpath=/apps', '--installpath-modules=/apps/modules', '--installpath-software=/apps', '--module-naming-scheme=IT4IModuleNamingScheme', '--modules-footer=/easybuild/templates/modules/sta545_footer.txt', '--repositorypath=/easybuild/file-repository', '--robot=/easybuild/easyconfigs-salomon/easybuild/easyconfigs', '--robot-paths=/easybuild/easyconfigs-salomon/easybuild/easyconfigs', '--sourcepath=/easybuild/sources', '--try-software-version=3.11.0', '--try-toolchain="[\'intel\', \'2015b\']"', 'Valgrind-3.9.0-goalf-1.5.12-no-OFED.eb'], + "modules_tool": ('EnvironmentModulesC', '/usr/bin/modulecmd', '3.2.10'), + "core_count": 28, + "cpu_model": "Intel(R) Xeon(R) CPU E5-2695 v3 @ 2.30GHz", + "cpu_speed": 2299.798, + "cpu_vendor": "Intel", + "gcc_version": "Using built-in specs.; COLLECT_GCC=gcc; COLLECT_LTO_WRAPPER=/apps/all/GCC/5.1.0-binutils-2.25/libexec/gcc/x86_64-unknown-linux-gnu/5.1.0/lto-wrapper; Target: x86_64-unknown-linux-gnu; Configured with: ../configure --enable-languages=c,c++,fortran --enable-lto --enable-checking=release --disable-multilib --enable-shared=yes --enable-static=yes --enable-threads=posix --enable-gold=default --enable-plugins --enable-ld --with-plugin-ld=ld.gold --prefix=/apps/all/GCC/5.1.0-binutils-2.25 --with-local-prefix=/apps/all/GCC/5.1.0-binutils-2.25 --enable-bootstrap --with-isl=/easybuild/build/GCC/5.1.0/dummy--binutils-2.25/gcc-5.1.0/stage2_stuff; Thread model: posix; gcc version 5.1.0 (GCC) ; ", + "glibc_version": "2.12", + "hostname": "login1", + "os_name": "centos", + "os_type": "Linux", + "os_version": "6.6", + "platform_name": "x86_64-unknown-linux", + "python_version": "2.6.6 (r266:84292, Jan 22 2014, 09:42:36) ; [GCC 4.4.7 20120313 (Red Hat 4.4.7-4)]", + "system_gcc_path": "/apps/all/GCC/5.1.0-binutils-2.25/bin/gcc", + "system_python_path": "/usr/bin/python", +}] diff --git a/v/Vampir/Vampir-8.5.0.eb b/v/Vampir/Vampir-8.5.0.eb new file mode 100644 index 00000000..0270c25a --- /dev/null +++ b/v/Vampir/Vampir-8.5.0.eb @@ -0,0 +1,49 @@ +## +# This is an easyconfig file for EasyBuild, see https://github.com/hpcugent/easybuild +# +# Copyright:: Copyright 2013-2015 Juelich Supercomputing Centre, Germany +# Authors:: Bernd Mohr +# Markus Geimer +# License:: 3-clause BSD +# +# This work is based on experiences from the UNITE project +# http://apps.fz-juelich.de/unite/ +## + +easyblock = 'Binary' + +name = 'Vampir' +version = '8.5.0' +variant = 'linux-x86_64' + +homepage = 'http://www.vampir.eu' +description = """The Vampir software tool provides an easy-to-use framework that enables + developers to quickly display and analyze arbitrary program behavior at any level of detail. + The tool suite implements optimized event analysis algorithms and customizable displays that + enable fast and interactive rendering of very complex performance monitoring data.""" + +toolchain = {'name': 'dummy', 'version': 'dummy'} + +sources = ['vampir-%s-%s-setup.bin' % (version, variant)] + +checksums = [ + '6d949e37a095a70a6fc61fa2eeae9389', # vampir-8.5.0-linux-x86_64-setup.bin +] + +# Adjust this variable to point to the location of your Vampir license file +license_file = '/apps/licenses/vampir/vampir.license' + +install_cmd = "./" + sources[0] + " --silent --instdir=%(installdir)s " +install_cmd += "--no-icon --no-menu-items --no-trace-file-association" + +sanity_check_paths = { + 'files': ["bin/vampir", "doc/vampir-manual.pdf"], + 'dirs': [] +} + +#MS: Vampir does its own license activation thing... +#modextravars = { +# 'VAMPIR_LICENSE': license_file, +#} + +moduleclass = 'perf' diff --git a/v/Vampir/Vampir-9.0.0.eb b/v/Vampir/Vampir-9.0.0.eb new file mode 100644 index 00000000..46bfa06c --- /dev/null +++ b/v/Vampir/Vampir-9.0.0.eb @@ -0,0 +1,49 @@ +## +# This is an easyconfig file for EasyBuild, see https://github.com/hpcugent/easybuild +# +# Copyright:: Copyright 2013-2015 Juelich Supercomputing Centre, Germany +# Authors:: Bernd Mohr +# Markus Geimer +# License:: 3-clause BSD +# +# This work is based on experiences from the UNITE project +# http://apps.fz-juelich.de/unite/ +## + +easyblock = 'Binary' + +name = 'Vampir' +version = '9.0.0' +variant = 'linux-x86_64' + +homepage = 'http://www.vampir.eu' +description = """The Vampir software tool provides an easy-to-use framework that enables + developers to quickly display and analyze arbitrary program behavior at any level of detail. + The tool suite implements optimized event analysis algorithms and customizable displays that + enable fast and interactive rendering of very complex performance monitoring data.""" + +toolchain = {'name': 'dummy', 'version': 'dummy'} + +sources = ['vampir-%s-%s-setup.bin' % (version, variant)] + +checksums = [ + 'a1de704599994c07d4e5cacf7c3ddaf6', # vampir-9.0.0-linux-x86_64-setup.bin +] + +# Adjust this variable to point to the location of your Vampir license file +license_file = '/apps/licenses/vampir/vampir.license' + +install_cmd = "./" + sources[0] + " --silent --instdir=%(installdir)s " +install_cmd += "--no-icon --no-menu-items --no-trace-file-association" + +sanity_check_paths = { + 'files': ["bin/vampir", "doc/vampir-manual.pdf"], + 'dirs': [] +} + +#MS: Vampir does its own license activation thing... +#modextravars = { +# 'VAMPIR_LICENSE': license_file, +#} + +moduleclass = 'perf' diff --git a/v/VarScan/VarScan-2.3.6-Java-1.7.0_80.eb b/v/VarScan/VarScan-2.3.6-Java-1.7.0_80.eb new file mode 100644 index 00000000..ba30d587 --- /dev/null +++ b/v/VarScan/VarScan-2.3.6-Java-1.7.0_80.eb @@ -0,0 +1,30 @@ +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# Author: Adam Huffman +# The Francis Crick Institute + +easyblock = 'JAR' + +name = 'VarScan' +version = '2.3.6' +versionsuffix = '-Java-%(javaver)s' + +homepage = 'http://varscan.sourceforge.net/' +description = """Variant calling and somatic mutation/CNV detection for next-generation sequencing data""" + +toolchain = {'name': 'dummy', 'version': ''} + +sources = [('%(name)s.v%(version)s.jar', 'download')] +source_urls = ['https://sourceforge.net/projects/varscan/files/'] + +dependencies = [('Java', '1.7.0_80')] + +sanity_check_paths = { + 'files': sources, + 'dirs': [], +} + +modloadmsg = """ +to execute: java -jar \\$EBROOTVARSCAN/VarScan.v%(version)s.jar +""" + +moduleclass = 'bio' diff --git a/v/VarScan/VarScan-2.4.1-Java-1.7.0_80.eb b/v/VarScan/VarScan-2.4.1-Java-1.7.0_80.eb new file mode 100644 index 00000000..186dfc58 --- /dev/null +++ b/v/VarScan/VarScan-2.4.1-Java-1.7.0_80.eb @@ -0,0 +1,30 @@ +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# Author: Adam Huffman, based on initial work by Jordi Blasco +# The Francis Crick Institute + +easyblock = 'JAR' + +name = 'VarScan' +version = '2.4.1' +versionsuffix = '-Java-%(javaver)s' + +homepage = 'https://github.com/dkoboldt/varscan' +description = """Variant calling and somatic mutation/CNV detection for next-generation sequencing data""" + +toolchain = {'name': 'dummy', 'version': ''} + +sources = ['%(name)s.v%(version)s.jar'] +source_urls = ['https://github.com/dkoboldt/varscan/releases/download/v%(version)s'] + +dependencies = [('Java', '1.7.0_80')] + +sanity_check_paths = { + 'files': sources, + 'dirs': [], +} + +modloadmsg = """ +to execute: java -jar \\$EBROOTVARSCAN/VarScan.v%(version)s.jar +""" + +moduleclass = 'bio' diff --git a/v/ViennaRNA/ViennaRNA-2.0.7-goolf-1.4.10.eb b/v/ViennaRNA/ViennaRNA-2.0.7-goolf-1.4.10.eb new file mode 100644 index 00000000..1e20cf23 --- /dev/null +++ b/v/ViennaRNA/ViennaRNA-2.0.7-goolf-1.4.10.eb @@ -0,0 +1,44 @@ +## +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# +# Copyright:: Copyright 2012-2014 Uni.Lu/LCSB, NTUA +# Authors:: Cedric Laczny , Fotis Georgatos +# 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 +## + +easyblock = 'ConfigureMake' + +name = 'ViennaRNA' +version = '2.0.7' + +homepage = 'http://www.tbi.univie.ac.at/~ronny/RNA/vrna2.html' +description = """The Vienna RNA Package consists of a C code library and several +stand-alone programs for the prediction and comparison of RNA secondary structures.""" + +toolchain = {'name': 'goolf', 'version': '1.4.10'} +toolchainopts = {'optarch': True, 'pic': True} + +sources = [SOURCE_TAR_GZ] +source_urls = ['http://www.tbi.univie.ac.at/~ronny/RNA'] + +# Prevents the "make install" step from trying to copy to _global_ perl dir and thus make easybuild fail. +configopts = '--without-perl' +# Alternatively, you may want to use the following to copy the perl-module to a "local" directory +# Code NOT yet tested, therefor left here for future recycling +#preconfigopts = 'env PERLPREFIX="/path/where/the/perl/module/shoud/go"' + +sanity_check_paths = { + 'files': ['bin/RNA%s' % x for x in ['fold', 'eval', 'heat', 'pdist', 'distance', + 'inverse', 'plot', 'subopt', 'Lfold', 'cofold', + 'paln', 'duplex', 'alifold', 'plfold', 'up', + 'aliduplex', 'Lalifold', '2Dfold', 'parconv', + 'PKplex', 'plex', 'snoop', 'forester']] + + ['bin/Kinfold'], + 'dirs': [], +} + +moduleclass = 'bio' diff --git a/v/ViennaRNA/ViennaRNA-2.0.7-ictce-5.3.0.eb b/v/ViennaRNA/ViennaRNA-2.0.7-ictce-5.3.0.eb new file mode 100644 index 00000000..a66be333 --- /dev/null +++ b/v/ViennaRNA/ViennaRNA-2.0.7-ictce-5.3.0.eb @@ -0,0 +1,47 @@ +## +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# +# Copyright:: Copyright 2012-2014 Uni.Lu/LCSB, NTUA +# Authors:: Cedric Laczny , Fotis Georgatos +# 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 +## + +easyblock = 'ConfigureMake' + +name = 'ViennaRNA' +version = '2.0.7' + +homepage = 'http://www.tbi.univie.ac.at/~ronny/RNA/vrna2.html' +description = """The Vienna RNA Package consists of a C code library and several +stand-alone programs for the prediction and comparison of RNA secondary structures.""" + + +toolchain = {'name': 'ictce', 'version': '5.3.0'} +toolchainopts = {'optarch': True, 'pic': True} + +sources = [SOURCE_TAR_GZ] +source_urls = ['http://www.tbi.univie.ac.at/~ronny/RNA'] + +patches = ['ViennaRNA_ictce-pragma.patch'] + +# Prevents the "make install" step from trying to copy to _global_ perl dir and thus make easybuild fail. +configopts = '--without-perl' +# Alternatively, you may want to use the following to copy the perl-module to a "local" directory +# Code NOT yet tested, therefor left here for future recycling +#preconfigopts = 'env PERLPREFIX="/path/where/the/perl/module/shoud/go"' + +sanity_check_paths = { + 'files': ['bin/RNA%s' % x for x in ['fold', 'eval', 'heat', 'pdist', 'distance', + 'inverse', 'plot', 'subopt', 'Lfold', 'cofold', + 'paln', 'duplex', 'alifold', 'plfold', 'up', + 'aliduplex', 'Lalifold', '2Dfold', 'parconv', + 'PKplex', 'plex', 'snoop', 'forester']] + + ['bin/Kinfold'], + 'dirs': [] +} + +moduleclass = 'bio' diff --git a/v/ViennaRNA/ViennaRNA-2.1.6-ictce-5.5.0.eb b/v/ViennaRNA/ViennaRNA-2.1.6-ictce-5.5.0.eb new file mode 100644 index 00000000..664ec561 --- /dev/null +++ b/v/ViennaRNA/ViennaRNA-2.1.6-ictce-5.5.0.eb @@ -0,0 +1,46 @@ +## +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# +# Copyright:: Copyright 2012-2014 Uni.Lu/LCSB, NTUA +# Authors:: Cedric Laczny , Fotis Georgatos +# 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 +## + +easyblock = 'ConfigureMake' + +name = 'ViennaRNA' +version = '2.1.6' + +homepage = 'http://www.tbi.univie.ac.at/~ronny/RNA/vrna2.html' +description = """The Vienna RNA Package consists of a C code library and several +stand-alone programs for the prediction and comparison of RNA secondary structures.""" + +toolchain = {'name': 'ictce', 'version': '5.5.0'} +toolchainopts = {'optarch': True, 'pic': True} + +sources = [SOURCE_TAR_GZ] +source_urls = ['http://www.tbi.univie.ac.at/~ronny/RNA/packages/source'] + +patches = ['ViennaRNA-2.1.6_ictce.patch'] + +# Prevents the "make install" step from trying to copy to _global_ perl dir and thus make easybuild fail. +configopts = '--without-perl' +# Alternatively, you may want to use the following to copy the perl-module to a "local" directory +# Code NOT yet tested, therefor left here for future recycling +#preconfigopts = 'env PERLPREFIX="/path/where/the/perl/module/shoud/go"' + +sanity_check_paths = { + 'files': ['bin/RNA%s' % x for x in ['fold', 'eval', 'heat', 'pdist', 'distance', + 'inverse', 'plot', 'subopt', 'Lfold', 'cofold', + 'paln', 'duplex', 'alifold', 'plfold', 'up', + 'aliduplex', 'Lalifold', '2Dfold', 'parconv', + 'PKplex', 'plex', 'snoop', 'forester']] + + ['bin/Kinfold'], + 'dirs': [], +} + +moduleclass = 'bio' diff --git a/v/VirtualGL/VirtualGL-2.4.1.eb b/v/VirtualGL/VirtualGL-2.4.1.eb new file mode 100644 index 00000000..c8fcecc0 --- /dev/null +++ b/v/VirtualGL/VirtualGL-2.4.1.eb @@ -0,0 +1,22 @@ +easyblock = 'ConfigureMake' + +name = "VirtualGL" +version = '2.4.1' + +homepage = 'http://www.virtualgl.org' +description = """VirtualGL is an open source toolkit that gives any Unix or Linux remote display software the +ability to run OpenGL applications with full 3D hardware acceleration.""" + + +toolchain = {'name': 'dummy', 'version': ''} # empty version to ensure that dependencies are loaded + +osdependencies = ['VirtualGL'] + +skipsteps = ['source', 'patch', 'prepare','configure', 'build', 'test'] + +sanity_check_paths = { + 'files': ['/opt/VirtualGL/bin/vglrun'], + 'dirs': [''] +} + +moduleclass = 'tools' diff --git a/v/VisIt/VisIt-2.10.0.eb b/v/VisIt/VisIt-2.10.0.eb new file mode 100644 index 00000000..f56df8ca --- /dev/null +++ b/v/VisIt/VisIt-2.10.0.eb @@ -0,0 +1,23 @@ +name = 'VisIt' +version = '2.10.0' + +homepage = 'https://wci.llnl.gov/simulation/computer-codes/visit' +description = """VisIt is an Open Source, interactive, scalable, visualization, animation and analysis tool""" + +toolchain = {'name': 'dummy', 'version': 'dummy'} + +source_urls = [ + 'http://portal.nersc.gov/project/visit/releases/%(version)s', +] +sources = [ 'visit2_10_0.linux-x86_64-rhel6.tar.gz', + 'visit-install2_10_0' +] + +skipsteps = ['configure', 'build'] + +sanity_check_paths = { + 'files': ['bin/visit'], + 'dirs': ['bin', 'current/bin'], +} + +moduleclass = 'vis' diff --git a/v/vt/vt-0.577-goolf-1.7.20.eb b/v/vt/vt-0.577-goolf-1.7.20.eb new file mode 100644 index 00000000..8a87b5f9 --- /dev/null +++ b/v/vt/vt-0.577-goolf-1.7.20.eb @@ -0,0 +1,32 @@ +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# Author: Pablo Escobar Lopez +# sciCORE - University of Basel +# SIB Swiss Institute of Bioinformatics + +easyblock = 'MakeCp' + +name = 'vt' +version = '0.577' + +homepage = 'http://genome.sph.umich.edu/wiki/Vt' +description = """A tool set for short variant discovery in genetic sequence data.""" + +toolchain = {'name': 'goolf', 'version': '1.7.20'} + +source_urls = ['https://github.com/atks/vt/archive/'] +sources = ['%(version)s.tar.gz'] + +dependencies = [ + ('zlib', '1.2.8'), +] + +runtest = 'test' + +files_to_copy = [(["vt"], "bin"), "README.md", "LICENSE"] + +sanity_check_paths = { + 'files': ["bin/vt"], + 'dirs': [], +} + +moduleclass = 'bio' diff --git a/w/WEKA/WEKA-3.6.12-Java-1.7.0_80.eb b/w/WEKA/WEKA-3.6.12-Java-1.7.0_80.eb new file mode 100644 index 00000000..a65ca229 --- /dev/null +++ b/w/WEKA/WEKA-3.6.12-Java-1.7.0_80.eb @@ -0,0 +1,40 @@ +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# Author: Pablo Escobar Lopez +# Swiss Institute of Bioinformatics +# Biozentrum - University of Basel + +easyblock = "Tarball" + +name = 'WEKA' +version = '3.6.12' + +homepage = 'http://www.cs.waikato.ac.nz/ml/weka/index.html' +description = """ Weka is a collection of machine learning algorithms for data mining tasks. + The algorithms can either be applied directly to a dataset or called from your own Java code. + Weka contains tools for data pre-processing, classification, regression, clustering, + association rules, and visualization. It is also well-suited for developing new machine + learning schemes.""" + +toolchain = {'name': 'dummy', 'version': ''} + +source_urls = ['http://prdownloads.sourceforge.net/weka/'] +sources = ['%s-%s.zip' % (name.lower(), version.replace('.', '-'))] + +java = 'Java' +javaver = '1.7.0_80' +versionsuffix = '-%s-%s' % (java, javaver) + +dependencies = [(java, javaver)] + +sanity_check_paths = { + 'files': ["weka.jar"], + 'dirs': [] +} + +modextravars = { + 'WEKAINSTALL': '$root', +} + +modloadmsg = " execute WEKA: java -jar \\$EBROOTWEKA/weka.jar " + +moduleclass = 'bio' diff --git a/w/WEKA/WEKA-3.7.0-Java-1.7.0_80.eb b/w/WEKA/WEKA-3.7.0-Java-1.7.0_80.eb new file mode 100644 index 00000000..396230d2 --- /dev/null +++ b/w/WEKA/WEKA-3.7.0-Java-1.7.0_80.eb @@ -0,0 +1,40 @@ +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# Author: Pablo Escobar Lopez +# Swiss Institute of Bioinformatics +# Biozentrum - University of Basel + +easyblock = "Tarball" + +name = 'WEKA' +version = '3.7.0' + +homepage = 'http://www.cs.waikato.ac.nz/ml/weka/index.html' +description = """ Weka is a collection of machine learning algorithms for data mining tasks. + The algorithms can either be applied directly to a dataset or called from your own Java code. + Weka contains tools for data pre-processing, classification, regression, clustering, + association rules, and visualization. It is also well-suited for developing new machine + learning schemes.""" + +toolchain = {'name': 'dummy', 'version': ''} + +source_urls = ['http://prdownloads.sourceforge.net/weka/'] +sources = ['%s-%s.zip' % (name.lower(), version.replace('.', '-'))] + +java = 'Java' +javaver = '1.7.0_80' +versionsuffix = '-%s-%s' % (java, javaver) + +dependencies = [(java, javaver)] + +sanity_check_paths = { + 'files': ["weka.jar"], + 'dirs': [] +} + +modextravars = { + 'WEKAINSTALL': '$root', +} + +modloadmsg = " execute WEKA: java -jar \\$EBROOTWEKA/weka.jar " + +moduleclass = 'bio' diff --git a/w/WRF/WRF-3.8.0-intel-2016a-dmpar.eb b/w/WRF/WRF-3.8.0-intel-2016a-dmpar.eb new file mode 100644 index 00000000..8afc4ff8 --- /dev/null +++ b/w/WRF/WRF-3.8.0-intel-2016a-dmpar.eb @@ -0,0 +1,39 @@ +name = 'WRF' +version = '3.8.0' + +homepage = 'http://www.wrf-model.org' +description = """The Weather Research and Forecasting (WRF) Model is a next-generation mesoscale + numerical weather prediction system designed to serve both operational forecasting and atmospheric + research needs.""" + +toolchain = {'name': 'intel', 'version': '2016a'} +toolchainopts = {'opt': False} # don't use agressive optimization, stick to -O2 + +sources = ['%(name)sV%(version_major_minor)s.TAR.gz'] +source_urls = [ + 'http://www2.mmm.ucar.edu/wrf/src/', + 'http://www.mmm.ucar.edu/wrf/src/', +] + +# csh is used by WRF install scripts +builddependencies = [('tcsh', '6.19.00')] + +dependencies = [ + ('JasPer', '1.900.1'), + ('netCDF', '4.4.0'), + ('netCDF-Fortran', '4.4.3'), +] + +patches = [ + 'WRF_parallel_build_fix.patch', + 'WRF_tests_limit-runtimes.patch', + 'WRF-%(version)s_netCDF-Fortran_separate_path.patch', +] + +# limit parallel build to 20 +maxparallel = 20 + +buildtype = "dmpar" +versionsuffix = '-%s' % buildtype + +moduleclass = 'geo' diff --git a/w/WRF/WRF-3.8.0_netCDF-Fortran_separate_path.patch b/w/WRF/WRF-3.8.0_netCDF-Fortran_separate_path.patch new file mode 100644 index 00000000..f46ae78e --- /dev/null +++ b/w/WRF/WRF-3.8.0_netCDF-Fortran_separate_path.patch @@ -0,0 +1,225 @@ +add support for using netCDF and netCDF-Fortran installations in separate paths +author: Kenneth Hoste (HPC-UGent) +diff -ru WRFV3.orig/arch/Config_new.pl WRFV3/arch/Config_new.pl +--- WRFV3.orig/arch/Config_new.pl 2015-12-11 19:38:11.000000000 +0100 ++++ WRFV3/arch/Config_new.pl 2016-04-27 12:07:59.419553000 +0200 +@@ -8,6 +8,7 @@ + select((select(STDOUT), $|=1)[0]); + $sw_perl_path = perl ; + $sw_netcdf_path = "" ; ++$sw_netcdff_path = "" ; # for netCDF 4.2 and greater, Fortran lib may be in a different path + $sw_pnetcdf_path = "" ; + $sw_hdf5_path=""; + $sw_phdf5_path=""; +@@ -87,6 +88,10 @@ + } + } + } ++ if ( substr( $ARGV[0], 1, 8 ) eq "netcdff=" ) ++ { ++ $sw_netcdff_path = substr( $ARGV[0], 9 ) ; ++ } + if ( substr( $ARGV[0], 1, 8 ) eq "pnetcdf=" ) + { + $sw_pnetcdf_path = substr( $ARGV[0], 9 ) ; +@@ -114,6 +119,7 @@ + if ( substr( $ARGV[0], 1, 11 ) eq "USENETCDFF=" ) + { + $sw_usenetcdff = substr( $ARGV[0], 12 ) ; ++ $sw_usenetcdff =~ s/!/ /g ; + } + if ( substr( $ARGV[0], 1, 10 ) eq "USENETCDF=" ) + { +@@ -417,6 +423,7 @@ + { + $_ =~ s/CONFIGURE_PERL_PATH/$sw_perl_path/g ; + $_ =~ s/CONFIGURE_NETCDF_PATH/$sw_netcdf_path/g ; ++ $_ =~ s/CONFIGURE_NETCDFF_PATH/$sw_netcdff_path/g ; + $_ =~ s/CONFIGURE_PNETCDF_PATH/$sw_pnetcdf_path/g ; + $_ =~ s/CONFIGURE_HDF5_PATH/$sw_hdf5_path/g ; + $_ =~ s/CONFIGURE_PHDF5_PATH/$sw_phdf5_path/g ; +Only in WRFV3/arch: Config_new.pl.orig +diff -ru WRFV3.orig/arch/configure_new.defaults WRFV3/arch/configure_new.defaults +--- WRFV3.orig/arch/configure_new.defaults 2016-02-29 07:22:29.000000000 +0100 ++++ WRFV3/arch/configure_new.defaults 2016-04-27 12:07:59.429182000 +0200 +@@ -1626,6 +1626,7 @@ + + LIB_EXTERNAL = \ + ../external/io_netcdf/libwrfio_nf.a CONFIGURE_NETCDF_PATH/lib/libnetcdf.lib \ ++ CONFIGURE_NETCDFF_PATH/lib/libnetcdff.lib \ + ../external/wavelet/libWavelet.a ../external/wavelet/lib_wavelet.a + ESMF_IO_LIB = ../external/esmf_time_f90/libesmf_time.a + LIB_BUNDLED = \ +Only in WRFV3/arch: configure_new.defaults.orig +diff -ru WRFV3.orig/arch/conf_tokens WRFV3/arch/conf_tokens +--- WRFV3.orig/arch/conf_tokens 2008-02-26 16:39:38.000000000 +0100 ++++ WRFV3/arch/conf_tokens 2016-04-27 12:07:59.435906000 +0200 +@@ -5,6 +5,7 @@ + CONFIGURE_DMPARALLEL + CONFIGURE_RWORDSIZE + CONFIGURE_NETCDF_FLAG ++CONFIGURE_NETCDF_FLAG + CONFIGURE_GRIB2_FLAG + CONFIGURE_NETCDF_LIB_PATH + CONFIGURE_GRIB2_LIB +@@ -13,4 +14,5 @@ + CONFIGURE_WRFIO_NF + CONFIGURE_WRFIO_GRIB2 + CONFIGURE_NETCDF_PATH ++CONFIGURE_NETCDFF_PATH + CONFIGURE_GRIB2_INC +diff -ru WRFV3.orig/arch/postamble_new WRFV3/arch/postamble_new +--- WRFV3.orig/arch/postamble_new 2016-02-05 22:22:09.000000000 +0100 ++++ WRFV3/arch/postamble_new 2016-04-27 12:08:58.368686000 +0200 +@@ -45,6 +45,7 @@ + -I$(WRF_SRC_ROOT_DIR)/phys \ + -I$(WRF_SRC_ROOT_DIR)/chem -I$(WRF_SRC_ROOT_DIR)/inc \ + -I$(NETCDFPATH)/include \ ++ -I$(NETCDFFPATH)/include \ + CONFIGURE_RTTOV_INC + REGISTRY = Registry + CC_TOOLS_CFLAGS = CONFIGURE_NMM_CORE +@@ -67,6 +68,7 @@ + ENVCOMPDEFS = CONFIGURE_COMPILEFLAGS + CPPFLAGS = $(ARCHFLAGS) $(ENVCOMPDEFS) -I$(LIBINCLUDE) $(TRADFLAG) CONFIGURE_COMMS_INCLUDE + NETCDFPATH = CONFIGURE_NETCDF_PATH +++NETCDFFPATH = CONFIGURE_NETCDFF_PATH + HDF5PATH = CONFIGURE_HDF5_PATH + WRFPLUSPATH = CONFIGURE_WRFPLUS_PATH + PNETCDFPATH = CONFIGURE_PNETCDF_PATH +@@ -97,7 +99,7 @@ + + wrfio_nf : + ( cd $(WRF_SRC_ROOT_DIR)/external/io_netcdf ; \ +- make $(J) NETCDFPATH="$(NETCDFPATH)" RANLIB="$(RANLIB)" CPP="$(CPP)" \ ++ make $(J) NETCDFPATH="$(NETCDFPATH)" NETCDFFPATH="$(NETCDFFPATH)" RANLIB="$(RANLIB)" CPP="$(CPP)" \ + CC="$(SCC)" CFLAGS="$(CFLAGS)" \ + FC="$(SFC) $(PROMOTION) $(OMP) $(FCFLAGS)" TRADFLAG="$(TRADFLAG)" AR="$(AR)" ARFLAGS="$(ARFLAGS)" ) + +Only in WRFV3/arch: postamble_new.orig +Only in WRFV3/arch: postamble_new.rej +diff -ru WRFV3.orig/configure WRFV3/configure +--- WRFV3.orig/configure 2015-12-11 19:38:11.000000000 +0100 ++++ WRFV3/configure 2016-04-27 12:58:24.475136000 +0200 +@@ -287,16 +287,28 @@ + USENETCDFF="" # see below + if [ -n "$NETCDF" ] ; then + echo "Will use NETCDF in dir: $NETCDF" ++ # for netCDF 4.2 and greater, the Fortran library is a separate install ++ if [ -z "$NETCDFF" ]; then ++ NETCDFF="$NETCDFF" ++ fi + # Oh UNIDATA, why make it so hard ... + if [ -f "$NETCDF/lib/libnetcdff.a" -o -f "$NETCDF/lib/libnetcdff.so" ] ; then + USENETCDFF="-lnetcdff" + else +- USENETCDFF=" " ++ if [ -f "$NETCDFF/lib/libnetcdff.a" -o -f "$NETCDFF/lib/libnetcdff.so" -o -f "$NETCDFF/lib64/libnetcdff.so" -o -f "$NETCDFF/lib64/libnetcdff.so" ] ; then ++ USENETCDFF="-L$NETCDFF/lib!-L$NETCDFF/lib64!-lnetcdff" # ! will be replaced with space ++ else ++ USENETCDFF=" " ++ fi + fi + if [ -f "$NETCDF/lib/libnetcdf.a" -o -f "$NETCDF/lib/libnetcdf.so" ] ; then + USENETCDF="-lnetcdf" + else +- USENETCDF=" " ++ if [ -f "$NETCDF/lib/libnetcdf.a" -o -f "$NETCDF/lib/libnetcdf.so" -o -f "$NETCDF/lib64/libnetcdf.a" -o -f "$NETCDF/lib64/libnetcdf.so" ] ; then ++ USENETCDF="-L$NETCDF/lib!-L$NETCDF/lib64!-lnetcdf" # ! will be replaced with space ++ else ++ USENETCDF=" " ++ fi + fi + else + echo "Will configure for use without NetCDF" +@@ -595,7 +607,7 @@ + srch=`grep -i "^#ARCH.*$os" arch/configure_new.defaults | grep -i "$mach"` + if [ -n "$srch" ] ; then + $PERL arch/Config_new.pl -dmparallel=$COMMLIB -ompparallel=$OMP -perl=$PERL \ +- -netcdf=$NETCDF -pnetcdf=$PNETCDF -hdf5=$HDF5 -phdf5=$PHDF5 -os=$os -mach=$mach -ldflags=$ldflags \ ++ -netcdf=$NETCDF -netcdff=$NETCDFF -pnetcdf=$PNETCDF -phdf5=$PHDF5 -os=$os -mach=$mach -ldflags=$ldflags \ + -compileflags=$compileflags -opt_level=$opt_level -USENETCDFF=$USENETCDFF -USENETCDF=$USENETCDF \ + -time=$FORTRAN_COMPILER_TIMER \ + -wrf_core=$wrf_core -gpfs=$GPFS_PATH -curl=$CURL_PATH -dep_lib_path="$DEP_LIB_PATH" +@@ -707,10 +719,10 @@ + echo "If you wish to change the default options, edit the file:" + echo " arch/configure_new.defaults" + +-if test -n "$NETCDF" ; then +- if [ ! -f $NETCDF/include/netcdf.inc ] ; then ++if test -n "$NETCDFF" ; then ++ if [ ! -f $NETCDFF/include/netcdf.inc ] ; then + echo +- echo "Error : Not found $NETCDF/include/netcdf.inc" ++ echo "Error : Not found $NETCDFF/include/netcdf.inc" + echo " Please check this installation of NetCDF and re-run this configure script" + echo + if test -n "$NETCDF4" ; then +@@ -719,7 +731,7 @@ + fi + exit -1 + fi +- grep nf_format_64bit $NETCDF/include/netcdf.inc > /dev/null ++ grep nf_format_64bit $NETCDFF/include/netcdf.inc > /dev/null + configure_aaaa=$? ; export configure_aaaa + if [ $configure_aaaa -a -z "$WRFIO_NCD_LARGE_FILE_SUPPORT" ] ; then + echo "NetCDF users note:" +Only in WRFV3: configure.orig +Only in WRFV3: configure.rej +diff -ru WRFV3.orig/external/io_netcdf/makefile WRFV3/external/io_netcdf/makefile +--- WRFV3.orig/external/io_netcdf/makefile 2014-07-13 01:39:10.000000000 +0200 ++++ WRFV3/external/io_netcdf/makefile 2016-04-27 12:07:59.490731000 +0200 +@@ -3,9 +3,9 @@ + OBJSL = wrf_io.o field_routines.o module_wrfsi_static.o + OBJS = $(OBJSL) + CODE = ext_ncd_get_dom_ti.code ext_ncd_get_var_td.code ext_ncd_get_var_ti.code ext_ncd_put_dom_ti.code ext_ncd_put_var_td.code ext_ncd_put_var_ti.code transpose.code +-FFLAGS = $(FCFLAGS) -I$(NETCDFPATH)/include -I../ioapi_share +-LIBS = $(LIB_LOCAL) -L$(NETCDFPATH)/lib -lnetcdf +-LIBFFS = $(LIB_LOCAL) -L$(NETCDFPATH)/lib -lnetcdff -lnetcdf $(NETCDF4_DEP_LIB) ++FFLAGS = $(FCFLAGS) -I$(NETCDFFPATH)/include -I../ioapi_share ++LIBS = $(LIB_LOCAL) -L$(NETCDFPATH)/lib -L$(NETCDFPATH)/lib64 -lnetcdf ++LIBFFS = $(LIB_LOCAL) -L$(NETCDFPATH)/lib -L$(NETCDFPATH)/lib64 -L$(NETCDFFPATH)/lib -L$(NETCDFFPATH)/lib64 -lnetcdff -lnetcdf $(NETCDF4_DEP_LIB) + CPP1 = $(CPP) -P $(TRADFLAG) + M4 = m4 -Uinclude -Uindex -Ulen + AR = ar +@@ -24,7 +24,7 @@ + $(RANLIB) $@ + + wrf_io.o: wrf_io.F90 $(CODE) +- grep nf_format_64bit $(NETCDFPATH)/include/netcdf.inc ;\ ++ grep nf_format_64bit $(NETCDFFPATH)/include/netcdf.inc ;\ + a=$$? ; export a ; \ + if [ $$a -a "$$WRFIO_NCD_LARGE_FILE_SUPPORT" = "1" ] ; then \ + $(CPP1) -DWRFIO_NCD_LARGE_FILE_SUPPORT -I../ioapi_share wrf_io.F90 | $(M4) - > wrf_io.f ; \ +@@ -43,14 +43,14 @@ + x=`echo "$(FC)" | awk '{print $$1}'` ; export x ; \ + if [ $$x = "gfortran" ] ; then \ + echo removing external declaration of iargc for gfortran ; \ +- $(CPP1) -I$(NETCDFPATH)/include -I../ioapi_share diffwrf.F90 | sed '/integer *, *external.*iargc/d' > diffwrf.f ;\ ++ $(CPP1) -I$(NETCDFFPATH)/include -I../ioapi_share diffwrf.F90 | sed '/integer *, *external.*iargc/d' > diffwrf.f ;\ + else \ +- $(CPP1) -I$(NETCDFPATH)/include -I../ioapi_share diffwrf.F90 > diffwrf.f ; \ ++ $(CPP1) -I$(NETCDFFPATH)/include -I../ioapi_share diffwrf.F90 > diffwrf.f ; \ + fi + $(FC) -c $(FFLAGS) diffwrf.f + @if [ \( -f ../../frame/wrf_debug.o \) -a \( -f ../../frame/module_wrf_error.o \) -a \( -f $(ESMF_MOD_DEPENDENCE) \) -a \( -f ../../frame/clog.o \) ] ; then \ + echo "diffwrf io_netcdf is being built now. " ; \ +- if [ \( -f $(NETCDFPATH)/lib/libnetcdff.a -o -f $(NETCDFPATH)/lib/libnetcdff.so \) ] ; then \ ++ if [ \( -f $(NETCDFFPATH)/lib/libnetcdff.a -o -f $(NETCDFFPATH)/lib/libnetcdff.so -o -f $(NETCDFFPATH)/lib64/libnetcdff.a -o -f $(NETCDFFPATH)/lib64/libnetcdff.so \) ] ; then \ + $(FC) $(FFLAGS) $(LDFLAGS) -o diffwrf diffwrf.o $(OBJSL) ../../frame/wrf_debug.o ../../frame/module_wrf_error.o ../../frame/clog.o $(ESMF_IO_LIB_EXT) $(LIBFFS) ;\ + else \ + $(FC) $(FFLAGS) $(LDFLAGS) -o diffwrf diffwrf.o $(OBJSL) ../../frame/wrf_debug.o ../../frame/module_wrf_error.o ../../frame/clog.o $(ESMF_IO_LIB_EXT) $(LIBS) ;\ +diff -ru WRFV3.orig/Makefile WRFV3/Makefile +--- WRFV3.orig/Makefile 2016-03-11 18:47:37.000000000 +0100 ++++ WRFV3/Makefile 2016-04-27 12:09:30.391608000 +0200 +@@ -867,7 +867,7 @@ + @ echo '--------------------------------------' + ( cd frame ; $(MAKE) $(J) framework; \ + cd ../external/io_netcdf ; \ +- $(MAKE) NETCDFPATH="$(NETCDFPATH)" FC="$(FC) $(FCBASEOPTS)" RANLIB="$(RANLIB)" \ ++ $(MAKE) NETCDFPATH="$(NETCDFPATH)" NETCDFFPATH="$(NETCDFFPATH)" FC="$(SFC) $(FCBASEOPTS)" RANLIB="$(RANLIB)" \ + CPP="$(CPP)" LDFLAGS="$(LDFLAGS)" TRADFLAG="$(TRADFLAG)" ESMF_IO_LIB_EXT="$(ESMF_IO_LIB_EXT)" \ + LIB_LOCAL="$(LIB_LOCAL)" \ + ESMF_MOD_DEPENDENCE="$(ESMF_MOD_DEPENDENCE)" AR="INTERNAL_BUILD_ERROR_SHOULD_NOT_NEED_AR" diffwrf; \ +Only in WRFV3: Makefile.orig +Only in WRFV3: Makefile.rej diff --git a/w/Whoosh/Whoosh-2.7.0-goolf-1.4.10-Python-2.7.3.eb b/w/Whoosh/Whoosh-2.7.0-goolf-1.4.10-Python-2.7.3.eb new file mode 100644 index 00000000..db2dcb57 --- /dev/null +++ b/w/Whoosh/Whoosh-2.7.0-goolf-1.4.10-Python-2.7.3.eb @@ -0,0 +1,32 @@ +easyblock = "PythonPackage" + +name = 'Whoosh' +version = '2.7.0' + +homepage = 'https://pypi.python.org/pypi/Whoosh/' +description = """Fast, pure-Python full text indexing, +search, and spell checking library.""" + +toolchain = {'name': 'goolf', 'version': '1.4.10'} + +source_urls = [PYPI_SOURCE] +sources = [SOURCE_TAR_GZ] + +python = "Python" +pyver = '2.7.3' +pyshortver = ".".join(pyver.split(".")[:-1]) + +versionsuffix = "-%s-%s" % (python, pyver) + +dependencies = [ + (python, pyver), + ('numpy','1.6.2', versionsuffix), + ('scipy', '0.11.0', versionsuffix), +] + +sanity_check_paths = { + 'files': [], + 'dirs': ['lib/python%s/site-packages' % pyshortver], +} + +moduleclass = 'lib' diff --git a/w/Wine/Wine-1.7.29-GCC-4.4.7-system.eb b/w/Wine/Wine-1.7.29-GCC-4.4.7-system.eb new file mode 100644 index 00000000..5268d38f --- /dev/null +++ b/w/Wine/Wine-1.7.29-GCC-4.4.7-system.eb @@ -0,0 +1,23 @@ +easyblock = 'ConfigureMake' + +name = "Wine" +version = "1.7.29" + +homepage = 'https://www.winehq.org' +description = """Wine (originally an acronym for "Wine Is Not an Emulator") +is a compatibility layer capable of running Windows applications on several +POSIX-compliant operating systems, such as Linux, Mac OSX, & BSD.""" + +configopts = "--enable-win64" + +toolchain = {'name': 'GCC', 'version': '4.4.7-system'} + +sources = [SOURCELOWER_TAR_BZ2] +source_urls = ['http://ftp.winehq.org/pub/%(namelower)s/source/%(version_major_minor)s/'] + +sanity_check_paths = { + 'files': ['bin/wine64'], + 'dirs': ['bin', 'include', 'share'], +} + +moduleclass = 'tools' diff --git a/w/Wine/Wine-1.7.29-GNU-5.1.0-2.25.eb b/w/Wine/Wine-1.7.29-GNU-5.1.0-2.25.eb new file mode 100644 index 00000000..1ec822c9 --- /dev/null +++ b/w/Wine/Wine-1.7.29-GNU-5.1.0-2.25.eb @@ -0,0 +1,23 @@ +easyblock = 'ConfigureMake' + +name = "Wine" +version = "1.7.29" + +homepage = 'https://www.winehq.org' +description = """Wine (originally an acronym for "Wine Is Not an Emulator") +is a compatibility layer capable of running Windows applications on several +POSIX-compliant operating systems, such as Linux, Mac OSX, & BSD.""" + +configopts = "--enable-win64" + +toolchain = {'name': 'GNU', 'version': '5.1.0-2.25'} + +sources = [SOURCELOWER_TAR_BZ2] +source_urls = ['http://ftp.winehq.org/pub/%(namelower)s/source/%(version_major_minor)s/'] + +sanity_check_paths = { + 'files': ['bin/wine64'], + 'dirs': ['bin', 'include', 'share'], +} + +moduleclass = 'tools' diff --git a/w/wget/wget-1.17.1-foss-2016a.eb b/w/wget/wget-1.17.1-foss-2016a.eb new file mode 100644 index 00000000..bbebd9aa --- /dev/null +++ b/w/wget/wget-1.17.1-foss-2016a.eb @@ -0,0 +1,38 @@ +easyblock = 'ConfigureMake' + +name = 'wget' +version = '1.17.1' + +homepage = 'https://www.gnu.org/software/wget/' +description = """GNU Wget is a free software package for retrieving files using HTTP, HTTPS and FTP, + the most widely-used Internet protocols. It is a non-interactive commandline tool, + so it may easily be called from scripts, cron jobs, terminals without X-Windows support, etc.""" + +toolchain = {'name': 'foss', 'version': '2016a'} + +source_urls = [GNU_SOURCE] +sources = [SOURCE_TAR_XZ] + +dependencies = [ + #('gnutls', '3.4.11'), # OS dependency should be preferred if the os version is more recent then this version, it's + # nice to have an up to date gnutls for security reasons + ('PCRE', '8.38'), + ('libidn', '1.32'), + ('zlib', '1.2.8'), + #('OpenSSL', '1.0.1s'), # OS dependency should be preferred if the os version is more recent then this version, it's + # nice to have an up to date openssl for security reasons +] + +configopts = '--with-ssl=openssl ' + +osdependencies = [('openssl-devel', 'libssl-dev', 'libopenssl-devel')] +# Optionally, you can use gnutls (default) instead of OpenSSL. +# Do not forget to comment out configopts in that case. +#osdependencies = [('gnutls-devel', 'gnutls-dev', 'libgnutls-devel')] + +sanity_check_paths = { + 'files': ['bin/wget'], + 'dirs': [] +} + +moduleclass = 'devel' diff --git a/w/wkhtmltopdf/wkhtmltopdf-0.12.3-Linux-x86_64.eb b/w/wkhtmltopdf/wkhtmltopdf-0.12.3-Linux-x86_64.eb new file mode 100644 index 00000000..ee433dde --- /dev/null +++ b/w/wkhtmltopdf/wkhtmltopdf-0.12.3-Linux-x86_64.eb @@ -0,0 +1,36 @@ +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# Author: Pablo Escobar Lopez +# sciCORE - University of Basel +# SIB Swiss Institute of Bioinformatics + +easyblock = 'Tarball' + +name = 'wkhtmltopdf' +version = '0.12.3' +versionsuffix = '-Linux-x86_64' + +homepage = 'http://wkhtmltopdf.org/' +description = """wkhtmltopdf and wkhtmltoimage are open source (LGPLv3) command line tools to render + HTML into PDF and various image formats using the Qt WebKit rendering engine. These run entirely headless + and do not require a display or display service.""" + +toolchain = {'name': 'dummy', 'version': ''} + +source_urls = ['http://download.gna.org/wkhtmltopdf/%(version_major_minor)s/%(version)s/'] +sources = ['wkhtmltox-%(version)s_linux-generic-amd64.tar.xz'] + +osdependencies = [ + ('zlib', 'zlib1g'), + 'fontconfig', + ('freetype', 'libfreetype6'), + ('libX11', 'libx11-6'), + ('libXext', 'libxext6'), + ('libXrender', 'libxrender1') +] + +sanity_check_paths = { + 'files': ['bin/wkhtmltoimage', 'bin/wkhtmltopdf'], + 'dirs': [], +} + +moduleclass = 'tools' diff --git a/w/wxPython/wxPython-3.0.2.0-intel-2016a-Python-2.7.11.eb b/w/wxPython/wxPython-3.0.2.0-intel-2016a-Python-2.7.11.eb new file mode 100644 index 00000000..803388b8 --- /dev/null +++ b/w/wxPython/wxPython-3.0.2.0-intel-2016a-Python-2.7.11.eb @@ -0,0 +1,36 @@ +name = 'wxPython' +version = '3.0.2.0' +versionsuffix = "-Python-%(pyver)s" + +homepage = 'http://www.wxpython.org' +description = """wxPython is a GUI toolkit for the Python programming language. + It allows Python programmers to create programs with a robust, + highly functional graphical user interface, simply and easily. + It is implemented as a Python extension module (native code) + that wraps the popular wxWidgets cross platform GUI library, + which is written in C++.""" + +toolchain = {'name': 'intel', 'version': '2016a'} + +source_urls = [SOURCEFORGE_SOURCE] +sources = ['%(name)s-src-%(version)s.tar.bz2'] + +patches = ['%(name)s_%(version)s_intel.patch'] + +dependencies = [ + ('Python', '2.7.11'), + ('libpng', '1.6.21'), + ('zlib', '1.2.8'), + ('libjpeg-turbo', '1.4.2'), + ('LibTIFF', '4.0.6'), + ('expat', '2.1.0'), + ('GTK+', '2.24.28'), + ('GConf', '3.2.6'), + ('GST-plugins-base', '0.10.36'), + ('Mesa', '11.1.2'), + ('libGLU', '9.0.0'), + ('libSM', '1.2.2'), + ('libXxf86vm', '1.1.4'), +] + +moduleclass = 'vis' diff --git a/x/X11/X11-20160819-foss-2015a.eb b/x/X11/X11-20160819-foss-2015a.eb new file mode 100644 index 00000000..ca30f6a6 --- /dev/null +++ b/x/X11/X11-20160819-foss-2015a.eb @@ -0,0 +1,131 @@ +easyblock = 'Bundle' + +name = 'X11' +version = '20160819' + +homepage = 'https://www.x.org' +description = "The X Window System (X11) is a windowing system for bitmap displays" + +toolchain = {'name': 'foss', 'version': '2015a'} + +source_urls = [ + XORG_LIB_SOURCE, + XORG_PROTO_SOURCE, + 'http://xcb.freedesktop.org/dist/', + 'http://xkbcommon.org/download/', + 'http://cgit.freedesktop.org/xorg/util/macros/snapshot', +] + +builddependencies = [ + ('Autotools', '20150215'), + ('pkg-config', '0.29.1'), +] +dependencies = [ + ('freetype', '2.6.2'), + ('fontconfig', '2.12.1'), + ('zlib', '1.2.8'), + ('bzip2', '1.0.6'), +] + +default_easyblock = 'ConfigureMake' + +common_specs = { + 'sources': [SOURCE_TAR_GZ], + 'start_dir': '%(name)s-%(version)s', +} +components = [ + ('xorg-macros', '1.19.0', { + 'sources': ['util-macros-%(version)s.tar.gz'], + 'start_dir': 'util-macros-%(version)s', + }), + ('libpthread-stubs', '0.3', common_specs), + ('bigreqsproto', '1.1.2', common_specs), + ('compositeproto', '0.4.2', common_specs), + ('damageproto', '1.2.1', common_specs), + ('dmxproto', '2.3.1', common_specs), + ('dri2proto', '2.8', common_specs), + ('dri3proto', '1.0', common_specs), + ('fixesproto', '5.0', common_specs), + ('fontsproto', '2.1.3', common_specs), + ('glproto', '1.4.17', common_specs), + ('inputproto', '2.3.1', common_specs), + ('kbproto', '1.0.7', common_specs), + ('presentproto', '1.0', common_specs), + ('randrproto', '1.5.0', common_specs), + ('recordproto', '1.14.2', common_specs), + ('renderproto', '0.11', common_specs), + ('resourceproto', '1.2.0', common_specs), + ('scrnsaverproto', '1.2.2', common_specs), + ('videoproto', '2.3.3', common_specs), + ('xcmiscproto', '1.2.2', common_specs), + ('xextproto', '7.3.0', common_specs), + ('xf86bigfontproto', '1.2.0', common_specs), + ('xf86dgaproto', '2.1', common_specs), + ('xf86driproto', '2.1.1', common_specs), + ('xf86vidmodeproto', '2.3.1', common_specs), + ('xineramaproto', '1.2.1', common_specs), + ('xproto', '7.0.28', common_specs), + ('libXau', '1.0.8', common_specs), + ('libXdmcp', '1.1.2', common_specs), + ('xcb-proto', '1.11', common_specs), + ('libxcb', '1.11.1', common_specs), + ('xtrans', '1.3.5', common_specs), + ('libxkbcommon', '0.6.1', { + 'sources': ['libxkbcommon-%(version)s.tar.xz'], + 'start_dir': 'libxkbcommon-%(version)s', + }), + ('libX11', '1.6.3', common_specs), + ('libXext', '1.3.3', common_specs), + ('libFS', '1.0.7', common_specs), + ('libICE', '1.0.9', common_specs), + ('libSM', '1.2.2', common_specs), + ('libXScrnSaver', '1.2.2', common_specs), + ('libXt', '1.1.5', common_specs), + ('libXmu', '1.1.2', common_specs), + ('libXpm', '3.5.11', common_specs), + ('libXaw', '1.0.13', common_specs), + ('libXfixes', '5.0.2', common_specs), + ('libXcomposite', '0.4.4', common_specs), + ('libXrender', '0.9.9', common_specs), + ('libXcursor', '1.1.14', common_specs), + ('libXdamage', '1.1.4', common_specs), + ('libfontenc', '1.1.3', common_specs), + ('libXfont', '1.5.1', common_specs), + ('libXft', '2.3.2', common_specs), + ('libXi', '1.7.6', common_specs), + ('libXinerama', '1.1.3', common_specs), + ('libXrandr', '1.5.0', common_specs), + ('libXres', '1.0.7', common_specs), + ('libXtst', '1.2.2', common_specs), + ('libXv', '1.0.10', common_specs), + ('libXvMC', '1.0.9', common_specs), + ('libXxf86dga', '1.1.4', common_specs), + ('libXxf86vm', '1.1.4', common_specs), + ('libdmx', '1.1.3', common_specs), + ('libpciaccess', '0.13.4', common_specs), + ('libxkbfile', '1.0.9', common_specs), + ('libxshmfence', '1.2', common_specs), + ('xcb-util', '0.4.0', common_specs), + ('xcb-util-image', '0.4.0', common_specs), + ('xcb-util-keysyms', '0.4.0', common_specs), + ('xcb-util-renderutil', '0.3.9', common_specs), + ('xcb-util-wm', '0.4.1', common_specs), + ('xcb-util-cursor', '0.1.3', common_specs), +] + +# Python is required for xcb-proto +allow_system_deps = [('Python', SYS_PYTHON_VERSION)] +pyshortver = '.'.join(SYS_PYTHON_VERSION.split('.')[0:2]) + +preconfigopts = "if [ ! -f configure ]; then ./autogen.sh; fi && " + +# specify that Bundle easyblock should run a full sanity check, rather than just trying to load the module +full_sanity_check = True + +sanity_check_paths = { + 'files': ['include/X11/Xlib.h', 'include/X11/Xutil.h'], + 'dirs': ['include/GL', 'include/X11', 'include/X11/extensions', 'lib', + 'lib/python%s/site-packages/xcbgen' % pyshortver, 'lib/pkgconfig', 'share/pkgconfig'], +} + +moduleclass = 'vis' diff --git a/x/X11/X11-20160819-foss-2016b.eb b/x/X11/X11-20160819-foss-2016b.eb new file mode 100644 index 00000000..c44e65c2 --- /dev/null +++ b/x/X11/X11-20160819-foss-2016b.eb @@ -0,0 +1,131 @@ +easyblock = 'Bundle' + +name = 'X11' +version = '20160819' + +homepage = 'https://www.x.org' +description = "The X Window System (X11) is a windowing system for bitmap displays" + +toolchain = {'name': 'foss', 'version': '2016b'} + +source_urls = [ + XORG_LIB_SOURCE, + XORG_PROTO_SOURCE, + 'http://xcb.freedesktop.org/dist/', + 'http://xkbcommon.org/download/', + 'http://cgit.freedesktop.org/xorg/util/macros/snapshot', +] + +builddependencies = [ + ('Autotools', '20150215'), + ('pkg-config', '0.29.1'), +] +dependencies = [ + ('freetype', '2.6.5'), + ('fontconfig', '2.12.1'), + ('zlib', '1.2.8'), + ('bzip2', '1.0.6'), +] + +default_easyblock = 'ConfigureMake' + +common_specs = { + 'sources': [SOURCE_TAR_GZ], + 'start_dir': '%(name)s-%(version)s', +} +components = [ + ('xorg-macros', '1.19.0', { + 'sources': ['util-macros-%(version)s.tar.gz'], + 'start_dir': 'util-macros-%(version)s', + }), + ('libpthread-stubs', '0.3', common_specs), + ('bigreqsproto', '1.1.2', common_specs), + ('compositeproto', '0.4.2', common_specs), + ('damageproto', '1.2.1', common_specs), + ('dmxproto', '2.3.1', common_specs), + ('dri2proto', '2.8', common_specs), + ('dri3proto', '1.0', common_specs), + ('fixesproto', '5.0', common_specs), + ('fontsproto', '2.1.3', common_specs), + ('glproto', '1.4.17', common_specs), + ('inputproto', '2.3.1', common_specs), + ('kbproto', '1.0.7', common_specs), + ('presentproto', '1.0', common_specs), + ('randrproto', '1.5.0', common_specs), + ('recordproto', '1.14.2', common_specs), + ('renderproto', '0.11', common_specs), + ('resourceproto', '1.2.0', common_specs), + ('scrnsaverproto', '1.2.2', common_specs), + ('videoproto', '2.3.3', common_specs), + ('xcmiscproto', '1.2.2', common_specs), + ('xextproto', '7.3.0', common_specs), + ('xf86bigfontproto', '1.2.0', common_specs), + ('xf86dgaproto', '2.1', common_specs), + ('xf86driproto', '2.1.1', common_specs), + ('xf86vidmodeproto', '2.3.1', common_specs), + ('xineramaproto', '1.2.1', common_specs), + ('xproto', '7.0.28', common_specs), + ('libXau', '1.0.8', common_specs), + ('libXdmcp', '1.1.2', common_specs), + ('xcb-proto', '1.11', common_specs), + ('libxcb', '1.11.1', common_specs), + ('xtrans', '1.3.5', common_specs), + ('libxkbcommon', '0.6.1', { + 'sources': ['libxkbcommon-%(version)s.tar.xz'], + 'start_dir': 'libxkbcommon-%(version)s', + }), + ('libX11', '1.6.3', common_specs), + ('libXext', '1.3.3', common_specs), + ('libFS', '1.0.7', common_specs), + ('libICE', '1.0.9', common_specs), + ('libSM', '1.2.2', common_specs), + ('libXScrnSaver', '1.2.2', common_specs), + ('libXt', '1.1.5', common_specs), + ('libXmu', '1.1.2', common_specs), + ('libXpm', '3.5.11', common_specs), + ('libXaw', '1.0.13', common_specs), + ('libXfixes', '5.0.2', common_specs), + ('libXcomposite', '0.4.4', common_specs), + ('libXrender', '0.9.9', common_specs), + ('libXcursor', '1.1.14', common_specs), + ('libXdamage', '1.1.4', common_specs), + ('libfontenc', '1.1.3', common_specs), + ('libXfont', '1.5.1', common_specs), + ('libXft', '2.3.2', common_specs), + ('libXi', '1.7.6', common_specs), + ('libXinerama', '1.1.3', common_specs), + ('libXrandr', '1.5.0', common_specs), + ('libXres', '1.0.7', common_specs), + ('libXtst', '1.2.2', common_specs), + ('libXv', '1.0.10', common_specs), + ('libXvMC', '1.0.9', common_specs), + ('libXxf86dga', '1.1.4', common_specs), + ('libXxf86vm', '1.1.4', common_specs), + ('libdmx', '1.1.3', common_specs), + ('libpciaccess', '0.13.4', common_specs), + ('libxkbfile', '1.0.9', common_specs), + ('libxshmfence', '1.2', common_specs), + ('xcb-util', '0.4.0', common_specs), + ('xcb-util-image', '0.4.0', common_specs), + ('xcb-util-keysyms', '0.4.0', common_specs), + ('xcb-util-renderutil', '0.3.9', common_specs), + ('xcb-util-wm', '0.4.1', common_specs), + ('xcb-util-cursor', '0.1.3', common_specs), +] + +# Python is required for xcb-proto +allow_system_deps = [('Python', SYS_PYTHON_VERSION)] +pyshortver = '.'.join(SYS_PYTHON_VERSION.split('.')[0:2]) + +preconfigopts = "if [ ! -f configure ]; then ./autogen.sh; fi && " + +# specify that Bundle easyblock should run a full sanity check, rather than just trying to load the module +full_sanity_check = True + +sanity_check_paths = { + 'files': ['include/X11/Xlib.h', 'include/X11/Xutil.h'], + 'dirs': ['include/GL', 'include/X11', 'include/X11/extensions', 'lib', + 'lib/python%s/site-packages/xcbgen' % pyshortver, 'lib/pkgconfig', 'share/pkgconfig'], +} + +moduleclass = 'vis' diff --git a/x/X11/X11-20160819-intel-2016b.eb b/x/X11/X11-20160819-intel-2016b.eb new file mode 100644 index 00000000..556bda9f --- /dev/null +++ b/x/X11/X11-20160819-intel-2016b.eb @@ -0,0 +1,131 @@ +easyblock = 'Bundle' + +name = 'X11' +version = '20160819' + +homepage = 'https://www.x.org' +description = "The X Window System (X11) is a windowing system for bitmap displays" + +toolchain = {'name': 'intel', 'version': '2016b'} + +source_urls = [ + XORG_LIB_SOURCE, + XORG_PROTO_SOURCE, + 'http://xcb.freedesktop.org/dist/', + 'http://xkbcommon.org/download/', + 'http://cgit.freedesktop.org/xorg/util/macros/snapshot', +] + +builddependencies = [ + ('Autotools', '20150215'), + ('pkg-config', '0.29.1'), +] +dependencies = [ + ('freetype', '2.6.5'), + ('fontconfig', '2.12.1'), + ('zlib', '1.2.8'), + ('bzip2', '1.0.6'), +] + +default_easyblock = 'ConfigureMake' + +common_specs = { + 'sources': [SOURCE_TAR_GZ], + 'start_dir': '%(name)s-%(version)s', +} +components = [ + ('xorg-macros', '1.19.0', { + 'sources': ['util-macros-%(version)s.tar.gz'], + 'start_dir': 'util-macros-%(version)s', + }), + ('libpthread-stubs', '0.3', common_specs), + ('bigreqsproto', '1.1.2', common_specs), + ('compositeproto', '0.4.2', common_specs), + ('damageproto', '1.2.1', common_specs), + ('dmxproto', '2.3.1', common_specs), + ('dri2proto', '2.8', common_specs), + ('dri3proto', '1.0', common_specs), + ('fixesproto', '5.0', common_specs), + ('fontsproto', '2.1.3', common_specs), + ('glproto', '1.4.17', common_specs), + ('inputproto', '2.3.1', common_specs), + ('kbproto', '1.0.7', common_specs), + ('presentproto', '1.0', common_specs), + ('randrproto', '1.5.0', common_specs), + ('recordproto', '1.14.2', common_specs), + ('renderproto', '0.11', common_specs), + ('resourceproto', '1.2.0', common_specs), + ('scrnsaverproto', '1.2.2', common_specs), + ('videoproto', '2.3.3', common_specs), + ('xcmiscproto', '1.2.2', common_specs), + ('xextproto', '7.3.0', common_specs), + ('xf86bigfontproto', '1.2.0', common_specs), + ('xf86dgaproto', '2.1', common_specs), + ('xf86driproto', '2.1.1', common_specs), + ('xf86vidmodeproto', '2.3.1', common_specs), + ('xineramaproto', '1.2.1', common_specs), + ('xproto', '7.0.28', common_specs), + ('libXau', '1.0.8', common_specs), + ('libXdmcp', '1.1.2', common_specs), + ('xcb-proto', '1.11', common_specs), + ('libxcb', '1.11.1', common_specs), + ('xtrans', '1.3.5', common_specs), + ('libxkbcommon', '0.6.1', { + 'sources': ['libxkbcommon-%(version)s.tar.xz'], + 'start_dir': 'libxkbcommon-%(version)s', + }), + ('libX11', '1.6.3', common_specs), + ('libXext', '1.3.3', common_specs), + ('libFS', '1.0.7', common_specs), + ('libICE', '1.0.9', common_specs), + ('libSM', '1.2.2', common_specs), + ('libXScrnSaver', '1.2.2', common_specs), + ('libXt', '1.1.5', common_specs), + ('libXmu', '1.1.2', common_specs), + ('libXpm', '3.5.11', common_specs), + ('libXaw', '1.0.13', common_specs), + ('libXfixes', '5.0.2', common_specs), + ('libXcomposite', '0.4.4', common_specs), + ('libXrender', '0.9.9', common_specs), + ('libXcursor', '1.1.14', common_specs), + ('libXdamage', '1.1.4', common_specs), + ('libfontenc', '1.1.3', common_specs), + ('libXfont', '1.5.1', common_specs), + ('libXft', '2.3.2', common_specs), + ('libXi', '1.7.6', common_specs), + ('libXinerama', '1.1.3', common_specs), + ('libXrandr', '1.5.0', common_specs), + ('libXres', '1.0.7', common_specs), + ('libXtst', '1.2.2', common_specs), + ('libXv', '1.0.10', common_specs), + ('libXvMC', '1.0.9', common_specs), + ('libXxf86dga', '1.1.4', common_specs), + ('libXxf86vm', '1.1.4', common_specs), + ('libdmx', '1.1.3', common_specs), + ('libpciaccess', '0.13.4', common_specs), + ('libxkbfile', '1.0.9', common_specs), + ('libxshmfence', '1.2', common_specs), + ('xcb-util', '0.4.0', common_specs), + ('xcb-util-image', '0.4.0', common_specs), + ('xcb-util-keysyms', '0.4.0', common_specs), + ('xcb-util-renderutil', '0.3.9', common_specs), + ('xcb-util-wm', '0.4.1', common_specs), + ('xcb-util-cursor', '0.1.3', common_specs), +] + +# Python is required for xcb-proto +allow_system_deps = [('Python', SYS_PYTHON_VERSION)] +pyshortver = '.'.join(SYS_PYTHON_VERSION.split('.')[0:2]) + +preconfigopts = "if [ ! -f configure ]; then ./autogen.sh; fi && " + +# specify that Bundle easyblock should run a full sanity check, rather than just trying to load the module +full_sanity_check = True + +sanity_check_paths = { + 'files': ['include/X11/Xlib.h', 'include/X11/Xutil.h'], + 'dirs': ['include/GL', 'include/X11', 'include/X11/extensions', 'lib', + 'lib/python%s/site-packages/xcbgen' % pyshortver, 'lib/pkgconfig', 'share/pkgconfig'], +} + +moduleclass = 'vis' diff --git a/x/XKeyboardConfig/XKeyboardConfig-2.17-foss-2016a.eb b/x/XKeyboardConfig/XKeyboardConfig-2.17-foss-2016a.eb new file mode 100644 index 00000000..10d7fbd3 --- /dev/null +++ b/x/XKeyboardConfig/XKeyboardConfig-2.17-foss-2016a.eb @@ -0,0 +1,36 @@ +easyblock = 'ConfigureMake' + +name = 'XKeyboardConfig' +version = '2.17' + +homepage = 'http://www.freedesktop.org/wiki/Software/XKeyboardConfig/' +description = """The non-arch keyboard configuration database for X Window. + The goal is to provide the consistent, well-structured, + frequently released open source of X keyboard configuration data + for X Window System implementations (free, open source and commercial). + The project is targeted to XKB-based systems.""" + +toolchain = {'name': 'foss', 'version': '2016a'} + +source_urls = ['http://ftp.x.org/pub/individual/data/xkeyboard-config/'] +sources = ['xkeyboard-config-%(version)s.tar.bz2'] + +builddependencies = [ + ('libxslt', '1.1.28'), + ('gettext', '0.19.7'), + ('intltool', '0.51.0', '-Perl-5.22.1'), +] + +dependencies = [ + ('libX11', '1.6.3'), +] + +# see http://www.linuxfromscratch.org/blfs/view/svn/x/xkeyboard-config.html +configopts = '--with-xkb-rules-symlink=xorg ' + +sanity_check_paths = { + 'files': [], + 'dirs': ['share/X11/xkb'] +} + +moduleclass = 'devel' diff --git a/x/XKeyboardConfig/XKeyboardConfig-2.17-intel-2016a.eb b/x/XKeyboardConfig/XKeyboardConfig-2.17-intel-2016a.eb new file mode 100644 index 00000000..e72178d9 --- /dev/null +++ b/x/XKeyboardConfig/XKeyboardConfig-2.17-intel-2016a.eb @@ -0,0 +1,36 @@ +easyblock = 'ConfigureMake' + +name = 'XKeyboardConfig' +version = '2.17' + +homepage = 'http://www.freedesktop.org/wiki/Software/XKeyboardConfig/' +description = """The non-arch keyboard configuration database for X Window. + The goal is to provide the consistent, well-structured, + frequently released open source of X keyboard configuration data + for X Window System implementations (free, open source and commercial). + The project is targeted to XKB-based systems.""" + +toolchain = {'name': 'intel', 'version': '2016a'} + +source_urls = ['http://ftp.x.org/pub/individual/data/xkeyboard-config/'] +sources = ['xkeyboard-config-%(version)s.tar.bz2'] + +builddependencies = [ + ('libxslt', '1.1.28'), + ('gettext', '0.19.7'), + ('intltool', '0.51.0', '-Perl-5.22.1'), +] + +dependencies = [ + ('libX11', '1.6.3'), +] + +# see http://www.linuxfromscratch.org/blfs/view/svn/x/xkeyboard-config.html +configopts = '--with-xkb-rules-symlink=xorg ' + +sanity_check_paths = { + 'files': [], + 'dirs': ['share/X11/xkb'] +} + +moduleclass = 'devel' diff --git a/x/XQilla/XQilla-2.3.0-foss-2015a.eb b/x/XQilla/XQilla-2.3.0-foss-2015a.eb new file mode 100644 index 00000000..aa79e514 --- /dev/null +++ b/x/XQilla/XQilla-2.3.0-foss-2015a.eb @@ -0,0 +1,22 @@ +easyblock = 'ConfigureMake' + +name = 'XQilla' +version = '2.3.0' + +homepage = 'http://xqilla.sourceforge.net/HomePage' +description = """XQilla is an XQuery and XPath 2 library and command line utility written in C++, implemented on top of the Xerces-C∞ library.""" + +toolchain = {'name': 'foss', 'version': '2015a'} + +sources = [SOURCE_TAR_GZ] +source_urls = [ + 'http://downloads.sourceforge.net/project/xqilla/xqilla/%s' % version, +] + +configopts = '--with-xerces=$EBROOTXERCESMINCPLUSPLUS' + +dependencies = [ + ('Xerces-C++', '3.1.1'), +] + +moduleclass = 'lib' diff --git a/x/XQilla/XQilla-2.3.0-intel-2015a.eb b/x/XQilla/XQilla-2.3.0-intel-2015a.eb new file mode 100644 index 00000000..b169cb58 --- /dev/null +++ b/x/XQilla/XQilla-2.3.0-intel-2015a.eb @@ -0,0 +1,22 @@ +easyblock = 'ConfigureMake' + +name = 'XQilla' +version = '2.3.0' + +homepage = 'http://xqilla.sourceforge.net/HomePage' +description = """XQilla is an XQuery and XPath 2 library and command line utility written in C++, implemented on top of the Xerces-C∞ library.""" + +toolchain = {'name': 'intel', 'version': '2015a'} + +sources = [SOURCE_TAR_GZ] +source_urls = [ + 'http://downloads.sourceforge.net/project/xqilla/xqilla/%s' % version, +] + +configopts = '--with-xerces=$EBROOTXERCESMINCPLUSPLUS' + +dependencies = [ + ('Xerces-C++', '3.1.1'), +] + +moduleclass = 'lib' diff --git a/x/XQilla/XQilla-2.3.2-foss-2015a.eb b/x/XQilla/XQilla-2.3.2-foss-2015a.eb new file mode 100644 index 00000000..d7fbf953 --- /dev/null +++ b/x/XQilla/XQilla-2.3.2-foss-2015a.eb @@ -0,0 +1,26 @@ +easyblock = 'ConfigureMake' + +name = 'XQilla' +version = '2.3.2' + +homepage = 'http://xqilla.sourceforge.net/HomePage' + +description = """XQilla is an XQuery and XPath 2 library and command line +utility written in C++, implemented on top of the Xerces-C++ library.""" + +toolchain = {'name': 'foss', 'version': '2015a'} + +sources = [SOURCE_TAR_GZ] +source_urls = [ + 'http://downloads.sourceforge.net/project/xqilla/', +] + +configopts = '--with-xerces=$EBROOTXERCESMINCPLUSPLUS' + +xerces_version = '3.1.2' + +dependencies = [ + ('Xerces-C++', xerces_version), +] + +moduleclass = 'lib' diff --git a/x/XQilla/XQilla-2.3.2-goolf-1.7.20.eb b/x/XQilla/XQilla-2.3.2-goolf-1.7.20.eb new file mode 100644 index 00000000..c6db3af2 --- /dev/null +++ b/x/XQilla/XQilla-2.3.2-goolf-1.7.20.eb @@ -0,0 +1,26 @@ +easyblock = 'ConfigureMake' + +name = 'XQilla' +version = '2.3.2' + +homepage = 'http://xqilla.sourceforge.net/HomePage' + +description = """XQilla is an XQuery and XPath 2 library and command line +utility written in C++, implemented on top of the Xerces-C++ library.""" + +toolchain = {'name': 'goolf', 'version': '1.7.20'} + +sources = [SOURCE_TAR_GZ] +source_urls = [ + 'http://downloads.sourceforge.net/project/xqilla/', +] + +configopts = '--with-xerces=$EBROOTXERCESMINCPLUSPLUS' + +xerces_version = '3.1.2' + +dependencies = [ + ('Xerces-C++', xerces_version), +] + +moduleclass = 'lib' diff --git a/x/XQilla/XQilla-2.3.2-intel-2015a.eb b/x/XQilla/XQilla-2.3.2-intel-2015a.eb new file mode 100644 index 00000000..1fe03355 --- /dev/null +++ b/x/XQilla/XQilla-2.3.2-intel-2015a.eb @@ -0,0 +1,26 @@ +easyblock = 'ConfigureMake' + +name = 'XQilla' +version = '2.3.2' + +homepage = 'http://xqilla.sourceforge.net/HomePage' + +description = """XQilla is an XQuery and XPath 2 library and command line +utility written in C++, implemented on top of the Xerces-C++ library.""" + +toolchain = {'name': 'intel', 'version': '2015a'} + +sources = [SOURCE_TAR_GZ] +source_urls = [ + 'http://downloads.sourceforge.net/project/xqilla/', +] + +configopts = '--with-xerces=$EBROOTXERCESMINCPLUSPLUS' + +xerces_version = '3.1.2' + +dependencies = [ + ('Xerces-C++', xerces_version), +] + +moduleclass = 'lib' diff --git a/x/XZ/XZ-5.0.5-GCC-4.8.2.eb b/x/XZ/XZ-5.0.5-GCC-4.8.2.eb new file mode 100644 index 00000000..3d54b29e --- /dev/null +++ b/x/XZ/XZ-5.0.5-GCC-4.8.2.eb @@ -0,0 +1,22 @@ +easyblock = 'ConfigureMake' + +name = 'XZ' +version = '5.0.5' + +homepage = 'http://tukaani.org/xz/' +description = "xz: XZ utilities" + +toolchain = {'name': 'GCC', 'version': '4.8.2'} + +sources = [SOURCELOWER_TAR_BZ2] +source_urls = ['http://tukaani.org/xz/'] + +# may become useful in non-x86 archs +#configopts = ' --disable-assembler ' + +sanity_check_paths = { + 'files': ["bin/xz", "bin/lzmainfo"], + 'dirs': [] +} + +moduleclass = 'tools' diff --git a/x/XZ/XZ-5.0.5-goolf-1.4.10.eb b/x/XZ/XZ-5.0.5-goolf-1.4.10.eb new file mode 100644 index 00000000..e60568da --- /dev/null +++ b/x/XZ/XZ-5.0.5-goolf-1.4.10.eb @@ -0,0 +1,22 @@ +easyblock = 'ConfigureMake' + +name = 'XZ' +version = '5.0.5' + +homepage = 'http://tukaani.org/xz/' +description = "xz: XZ utilities" + +toolchain = {'name': 'goolf', 'version': '1.4.10'} + +sources = [SOURCELOWER_TAR_BZ2] +source_urls = ['http://tukaani.org/xz/'] + +# may become useful in non-x86 archs +#configopts = ' --disable-assembler ' + +sanity_check_paths = { + 'files': ["bin/xz", "bin/lzmainfo"], + 'dirs': [] +} + +moduleclass = 'tools' diff --git a/x/XZ/XZ-5.0.5-ictce-5.3.0.eb b/x/XZ/XZ-5.0.5-ictce-5.3.0.eb new file mode 100644 index 00000000..6f7148a4 --- /dev/null +++ b/x/XZ/XZ-5.0.5-ictce-5.3.0.eb @@ -0,0 +1,22 @@ +easyblock = 'ConfigureMake' + +name = 'XZ' +version = '5.0.5' + +homepage = 'http://tukaani.org/xz/' +description = "xz: XZ utilities" + +toolchain = {'name': 'ictce', 'version': '5.3.0'} + +sources = [SOURCELOWER_TAR_BZ2] +source_urls = ['http://tukaani.org/xz/'] + +# may become useful in non-x86 archs +#configopts = ' --disable-assembler ' + +sanity_check_paths = { + 'files': ["bin/xz", "bin/lzmainfo"], + 'dirs': [] +} + +moduleclass = 'tools' diff --git a/x/XZ/XZ-5.2.0-GCC-4.9.2.eb b/x/XZ/XZ-5.2.0-GCC-4.9.2.eb new file mode 100644 index 00000000..99b4d29f --- /dev/null +++ b/x/XZ/XZ-5.2.0-GCC-4.9.2.eb @@ -0,0 +1,22 @@ +easyblock = 'ConfigureMake' + +name = 'XZ' +version = '5.2.0' + +homepage = 'http://tukaani.org/xz/' +description = "xz: XZ utilities" + +toolchain = {'name': 'GCC', 'version': '4.9.2'} + +sources = [SOURCELOWER_TAR_BZ2] +source_urls = ['http://tukaani.org/xz/'] + +# may become useful in non-x86 archs +#configopts = ' --disable-assembler ' + +sanity_check_paths = { + 'files': ["bin/xz", "bin/lzmainfo"], + 'dirs': [] +} + +moduleclass = 'tools' diff --git a/x/XZ/XZ-5.2.2-GCC-5.4.0-2.26.eb b/x/XZ/XZ-5.2.2-GCC-5.4.0-2.26.eb new file mode 100644 index 00000000..96695c9d --- /dev/null +++ b/x/XZ/XZ-5.2.2-GCC-5.4.0-2.26.eb @@ -0,0 +1,27 @@ +easyblock = 'ConfigureMake' + +name = 'XZ' +version = '5.2.2' + +homepage = 'http://tukaani.org/xz/' +description = "xz: XZ utilities" + +toolchain = {'name': 'GCC', 'version': '5.4.0-2.26'} + +sources = [SOURCELOWER_TAR_BZ2] +source_urls = ['http://tukaani.org/xz/'] + +builddependencies = [ + ('Autotools', '20150215'), + ('gettext', '0.19.8', '', True), +] + +# may become useful in non-x86 archs +# configopts = ' --disable-assembler ' + +sanity_check_paths = { + 'files': ["bin/xz", "bin/lzmainfo"], + 'dirs': [] +} + +moduleclass = 'tools' diff --git a/x/XZ/XZ-5.2.2-GCCcore-4.9.3.eb b/x/XZ/XZ-5.2.2-GCCcore-4.9.3.eb new file mode 100644 index 00000000..f08ddf7d --- /dev/null +++ b/x/XZ/XZ-5.2.2-GCCcore-4.9.3.eb @@ -0,0 +1,28 @@ +easyblock = 'ConfigureMake' + +name = 'XZ' +version = '5.2.2' + +homepage = 'http://tukaani.org/xz/' +description = "xz: XZ utilities" + +toolchain = {'name': 'GCCcore', 'version': '4.9.3'} + +sources = [SOURCELOWER_TAR_BZ2] +source_urls = ['http://tukaani.org/xz/'] + +builddependencies = [ + ('Autotools', '20150215'), + ('gettext', '0.19.8', '', True), + ('binutils', '2.25'), +] + +# may become useful in non-x86 archs +# configopts = ' --disable-assembler ' + +sanity_check_paths = { + 'files': ["bin/xz", "bin/lzmainfo"], + 'dirs': [] +} + +moduleclass = 'tools' diff --git a/x/XZ/XZ-5.2.2-foss-2015a.eb b/x/XZ/XZ-5.2.2-foss-2015a.eb new file mode 100644 index 00000000..049e77b6 --- /dev/null +++ b/x/XZ/XZ-5.2.2-foss-2015a.eb @@ -0,0 +1,30 @@ +easyblock = 'ConfigureMake' + +name = 'XZ' +version = '5.2.2' + +homepage = 'http://tukaani.org/xz/' +description = "xz: XZ utilities" + +toolchain = {'name': 'foss', 'version': '2015a'} + +sources = [SOURCELOWER_TAR_BZ2] +source_urls = ['http://tukaani.org/xz/'] + +builddependencies = [ + ('Autotools', '20150215'), +] + +dependencies = [ + ('gettext', '0.19.4'), +] + +# may become useful in non-x86 archs +#configopts = ' --disable-assembler ' + +sanity_check_paths = { + 'files': ["bin/xz", "bin/lzmainfo"], + 'dirs': [] +} + +moduleclass = 'tools' diff --git a/x/XZ/XZ-5.2.2-foss-2016.04.eb b/x/XZ/XZ-5.2.2-foss-2016.04.eb new file mode 100644 index 00000000..90393732 --- /dev/null +++ b/x/XZ/XZ-5.2.2-foss-2016.04.eb @@ -0,0 +1,27 @@ +easyblock = 'ConfigureMake' + +name = 'XZ' +version = '5.2.2' + +homepage = 'http://tukaani.org/xz/' +description = "xz: XZ utilities" + +toolchain = {'name': 'foss', 'version': '2016.04'} + +sources = [SOURCELOWER_TAR_BZ2] +source_urls = ['http://tukaani.org/xz/'] + +builddependencies = [ + ('Autotools', '20150215'), + ('gettext', '0.19.8', '', True), +] + +# may become useful in non-x86 archs +# configopts = ' --disable-assembler ' + +sanity_check_paths = { + 'files': ["bin/xz", "bin/lzmainfo"], + 'dirs': [] +} + +moduleclass = 'tools' diff --git a/x/XZ/XZ-5.2.2-foss-2016a-gettext-0.19.7.eb b/x/XZ/XZ-5.2.2-foss-2016a-gettext-0.19.7.eb new file mode 100644 index 00000000..52273a7c --- /dev/null +++ b/x/XZ/XZ-5.2.2-foss-2016a-gettext-0.19.7.eb @@ -0,0 +1,30 @@ +easyblock = 'ConfigureMake' + +name = 'XZ' +version = '5.2.2' + +homepage = 'http://tukaani.org/xz/' +description = "xz: XZ utilities" + +toolchain = {'name': 'foss', 'version': '2016a'} + +sources = [SOURCELOWER_TAR_BZ2] +source_urls = ['http://tukaani.org/xz/'] + +gettext_ver = '0.19.7' +versionsuffix = '-gettext-%s' % gettext_ver + +builddependencies = [ + ('Autotools', '20150215'), + ('gettext', gettext_ver, '', True), +] + +# may become useful in non-x86 archs +# configopts = ' --disable-assembler ' + +sanity_check_paths = { + 'files': ["bin/xz", "bin/lzmainfo"], + 'dirs': [] +} + +moduleclass = 'tools' diff --git a/x/XZ/XZ-5.2.2-foss-2016a.eb b/x/XZ/XZ-5.2.2-foss-2016a.eb new file mode 100644 index 00000000..2a89ca6a --- /dev/null +++ b/x/XZ/XZ-5.2.2-foss-2016a.eb @@ -0,0 +1,30 @@ +easyblock = 'ConfigureMake' + +name = 'XZ' +version = '5.2.2' + +homepage = 'http://tukaani.org/xz/' +description = "xz: XZ utilities" + +toolchain = {'name': 'foss', 'version': '2016a'} + +sources = [SOURCELOWER_TAR_BZ2] +source_urls = ['http://tukaani.org/xz/'] + +builddependencies = [ + ('Autotools', '20150215'), +] + +dependencies = [ + ('gettext', '0.19.6'), +] + +# may become useful in non-x86 archs +#configopts = ' --disable-assembler ' + +sanity_check_paths = { + 'files': ["bin/xz", "bin/lzmainfo"], + 'dirs': [] +} + +moduleclass = 'tools' diff --git a/x/XZ/XZ-5.2.2-foss-2016b.eb b/x/XZ/XZ-5.2.2-foss-2016b.eb new file mode 100644 index 00000000..aaea1f65 --- /dev/null +++ b/x/XZ/XZ-5.2.2-foss-2016b.eb @@ -0,0 +1,27 @@ +easyblock = 'ConfigureMake' + +name = 'XZ' +version = '5.2.2' + +homepage = 'http://tukaani.org/xz/' +description = "xz: XZ utilities" + +toolchain = {'name': 'foss', 'version': '2016b'} + +sources = [SOURCELOWER_TAR_BZ2] +source_urls = ['http://tukaani.org/xz/'] + +builddependencies = [ + ('Autotools', '20150215'), + ('gettext', '0.19.8', '', True), +] + +# may become useful in non-x86 archs +# configopts = ' --disable-assembler ' + +sanity_check_paths = { + 'files': ["bin/xz", "bin/lzmainfo"], + 'dirs': [] +} + +moduleclass = 'tools' diff --git a/x/XZ/XZ-5.2.2-goolf-1.4.10.eb b/x/XZ/XZ-5.2.2-goolf-1.4.10.eb new file mode 100644 index 00000000..f9a06be7 --- /dev/null +++ b/x/XZ/XZ-5.2.2-goolf-1.4.10.eb @@ -0,0 +1,30 @@ +easyblock = 'ConfigureMake' + +name = 'XZ' +version = '5.2.2' + +homepage = 'http://tukaani.org/xz/' +description = "xz: XZ utilities" + +toolchain = {'name': 'goolf', 'version': '1.4.10'} + +sources = [SOURCELOWER_TAR_BZ2] +source_urls = ['http://tukaani.org/xz/'] + +builddependencies = [ + ('Autotools', '20150215', '', ('GCC', '4.7.2')), +] + +dependencies = [ + ('gettext', '0.18.2'), +] + +# may become useful in non-x86 archs +#configopts = ' --disable-assembler ' + +sanity_check_paths = { + 'files': ["bin/xz", "bin/lzmainfo"], + 'dirs': [] +} + +moduleclass = 'tools' diff --git a/x/XZ/XZ-5.2.2-ictce-5.3.0.eb b/x/XZ/XZ-5.2.2-ictce-5.3.0.eb new file mode 100644 index 00000000..96fe0ea8 --- /dev/null +++ b/x/XZ/XZ-5.2.2-ictce-5.3.0.eb @@ -0,0 +1,30 @@ +easyblock = 'ConfigureMake' + +name = 'XZ' +version = '5.2.2' + +homepage = 'http://tukaani.org/xz/' +description = "xz: XZ utilities" + +toolchain = {'name': 'ictce', 'version': '5.3.0'} + +sources = [SOURCELOWER_TAR_BZ2] +source_urls = ['http://tukaani.org/xz/'] + +builddependencies = [ + ('Autotools', '20150215'), +] + +dependencies = [ + ('gettext', '0.18.2'), +] + +# may become useful in non-x86 archs +#configopts = ' --disable-assembler ' + +sanity_check_paths = { + 'files': ["bin/xz", "bin/lzmainfo"], + 'dirs': [] +} + +moduleclass = 'tools' diff --git a/x/XZ/XZ-5.2.2-intel-2016a-gettext-0.19.7.eb b/x/XZ/XZ-5.2.2-intel-2016a-gettext-0.19.7.eb new file mode 100644 index 00000000..98229490 --- /dev/null +++ b/x/XZ/XZ-5.2.2-intel-2016a-gettext-0.19.7.eb @@ -0,0 +1,30 @@ +easyblock = 'ConfigureMake' + +name = 'XZ' +version = '5.2.2' + +homepage = 'http://tukaani.org/xz/' +description = "xz: XZ utilities" + +toolchain = {'name': 'intel', 'version': '2016a'} + +sources = [SOURCELOWER_TAR_BZ2] +source_urls = ['http://tukaani.org/xz/'] + +gettext_ver = '0.19.7' +versionsuffix = '-gettext-%s' % gettext_ver + +builddependencies = [ + ('Autotools', '20150215'), + ('gettext', gettext_ver, '', True), +] + +# may become useful in non-x86 archs +# configopts = ' --disable-assembler ' + +sanity_check_paths = { + 'files': ["bin/xz", "bin/lzmainfo"], + 'dirs': [] +} + +moduleclass = 'tools' diff --git a/x/XZ/XZ-5.2.2-intel-2016a.eb b/x/XZ/XZ-5.2.2-intel-2016a.eb new file mode 100644 index 00000000..b717af01 --- /dev/null +++ b/x/XZ/XZ-5.2.2-intel-2016a.eb @@ -0,0 +1,30 @@ +easyblock = 'ConfigureMake' + +name = 'XZ' +version = '5.2.2' + +homepage = 'http://tukaani.org/xz/' +description = "xz: XZ utilities" + +toolchain = {'name': 'intel', 'version': '2016a'} + +sources = [SOURCELOWER_TAR_BZ2] +source_urls = ['http://tukaani.org/xz/'] + +builddependencies = [ + ('Autotools', '20150215'), +] + +dependencies = [ + ('gettext', '0.19.6'), +] + +# may become useful in non-x86 archs +#configopts = ' --disable-assembler ' + +sanity_check_paths = { + 'files': ["bin/xz", "bin/lzmainfo"], + 'dirs': [] +} + +moduleclass = 'tools' diff --git a/x/XZ/XZ-5.2.2-intel-2016b.eb b/x/XZ/XZ-5.2.2-intel-2016b.eb new file mode 100644 index 00000000..95304a84 --- /dev/null +++ b/x/XZ/XZ-5.2.2-intel-2016b.eb @@ -0,0 +1,27 @@ +easyblock = 'ConfigureMake' + +name = 'XZ' +version = '5.2.2' + +homepage = 'http://tukaani.org/xz/' +description = "xz: XZ utilities" + +toolchain = {'name': 'intel', 'version': '2016b'} + +sources = [SOURCELOWER_TAR_BZ2] +source_urls = ['http://tukaani.org/xz/'] + +builddependencies = [ + ('Autotools', '20150215'), + ('gettext', '0.19.8', '', True), +] + +# may become useful in non-x86 archs +# configopts = ' --disable-assembler ' + +sanity_check_paths = { + 'files': ["bin/xz", "bin/lzmainfo"], + 'dirs': [] +} + +moduleclass = 'tools' diff --git a/x/XZ/XZ-5.2.2-intel-2017.00.eb b/x/XZ/XZ-5.2.2-intel-2017.00.eb new file mode 100644 index 00000000..019c4e45 --- /dev/null +++ b/x/XZ/XZ-5.2.2-intel-2017.00.eb @@ -0,0 +1,30 @@ +easyblock = 'ConfigureMake' + +name = 'XZ' +version = '5.2.2' + +homepage = 'http://tukaani.org/xz/' +description = "xz: XZ utilities" + +toolchain = {'name': 'intel', 'version': '2017.00'} + +sources = [SOURCELOWER_TAR_BZ2] +source_urls = ['http://tukaani.org/xz/'] + +builddependencies = [ + ('Autotools', '20150215'), +] + +dependencies = [ + ('gettext', '0.19.7'), +] + +# may become useful in non-x86 archs +#configopts = ' --disable-assembler ' + +sanity_check_paths = { + 'files': ["bin/xz", "bin/lzmainfo"], + 'dirs': [] +} + +moduleclass = 'tools' diff --git a/x/XZ/XZ-5.2.2.eb b/x/XZ/XZ-5.2.2.eb new file mode 100755 index 00000000..735211b3 --- /dev/null +++ b/x/XZ/XZ-5.2.2.eb @@ -0,0 +1,30 @@ +easyblock = 'ConfigureMake' + +name = 'XZ' +version = '5.2.2' + +homepage = 'http://tukaani.org/xz/' +description = "xz: XZ utilities" + +toolchain = {'name': 'dummy', 'version': 'dummy'} + +sources = [SOURCELOWER_TAR_BZ2] +source_urls = ['http://tukaani.org/xz/'] + +builddependencies = [ + ('Autotools', '20150215'), +] + +dependencies = [ + ('gettext', '0.19.4'), +] + +# may become useful in non-x86 archs +#configopts = ' --disable-assembler ' + +sanity_check_paths = { + 'files': ["bin/xz", "bin/lzmainfo"], + 'dirs': [] +} + +moduleclass = 'tools' diff --git a/x/Xerces-C++/Xerces-C++-3.1.1-foss-2015a.eb b/x/Xerces-C++/Xerces-C++-3.1.1-foss-2015a.eb new file mode 100644 index 00000000..031a0f54 --- /dev/null +++ b/x/Xerces-C++/Xerces-C++-3.1.1-foss-2015a.eb @@ -0,0 +1,20 @@ +easyblock = 'ConfigureMake' + +name = 'Xerces-C++' +version = '3.1.1' + +homepage = 'http://xerces.apache.org/xerces-c/' +description = """Xerces-C++ is a validating XML parser written in a portable subset of C++. Xerces-C++ makes it easy to give your application the ability to read and write XML data. A shared library is provided for parsing, generating, manipulating, and validating XML documents using the DOM, SAX, and SAX2 APIs.""" + +toolchain = {'name': 'foss', 'version': '2015a'} + +sources = ['xerces-c-%(version)s.tar.gz'] +source_urls = [ + 'http://archive.apache.org/dist/xerces/c/%(version_major)s/sources/' +] + +dependencies = [ + ('cURL', '7.40.0'), +] + +moduleclass = 'lib' diff --git a/x/Xerces-C++/Xerces-C++-3.1.1-intel-2015a.eb b/x/Xerces-C++/Xerces-C++-3.1.1-intel-2015a.eb new file mode 100644 index 00000000..2dd84507 --- /dev/null +++ b/x/Xerces-C++/Xerces-C++-3.1.1-intel-2015a.eb @@ -0,0 +1,21 @@ +easyblock = 'ConfigureMake' + +name = 'Xerces-C++' +version = '3.1.1' + +homepage = 'http://xerces.apache.org/xerces-c/' +description = """Xerces-C++ is a validating XML parser written in a portable subset of C++. Xerces-C++ makes it easy to give your application the ability to read and write XML data. A shared library is provided for parsing, generating, manipulating, and validating XML documents using the DOM, SAX, and SAX2 APIs.""" + +toolchain = {'name': 'intel', 'version': '2015a'} + +sources = ['xerces-c-%(version)s.tar.gz'] +source_urls = [ + 'http://archive.apache.org/dist/xerces/c/%(version_major)s/sources/' +] + + +dependencies = [ + ('cURL', '7.40.0'), +] + +moduleclass = 'lib' diff --git a/x/Xerces-C++/Xerces-C++-3.1.2-foss-2015a.eb b/x/Xerces-C++/Xerces-C++-3.1.2-foss-2015a.eb new file mode 100644 index 00000000..b0abf7e5 --- /dev/null +++ b/x/Xerces-C++/Xerces-C++-3.1.2-foss-2015a.eb @@ -0,0 +1,25 @@ +easyblock = 'ConfigureMake' + +name = 'Xerces-C++' +version = '3.1.2' + +homepage = 'http://xerces.apache.org/xerces-c/' + +description = """Xerces-C++ is a validating XML parser written in a portable +subset of C++. Xerces-C++ makes it easy to give your application the ability to +read and write XML data. A shared library is provided for parsing, generating, +manipulating, and validating XML documents using the DOM, SAX, and SAX2 +APIs.""" + +toolchain = {'name': 'foss', 'version': '2015a'} + +sources = ['xerces-c-%(version)s.tar.gz'] +source_urls = [ + 'http://archive.apache.org/dist/xerces/c/%(version_major)s/sources/' +] + +dependencies = [ + ('cURL', '7.44.0'), +] + +moduleclass = 'lib' diff --git a/x/Xerces-C++/Xerces-C++-3.1.2-goolf-1.7.20.eb b/x/Xerces-C++/Xerces-C++-3.1.2-goolf-1.7.20.eb new file mode 100644 index 00000000..64c371a5 --- /dev/null +++ b/x/Xerces-C++/Xerces-C++-3.1.2-goolf-1.7.20.eb @@ -0,0 +1,25 @@ +easyblock = 'ConfigureMake' + +name = 'Xerces-C++' +version = '3.1.2' + +homepage = 'http://xerces.apache.org/xerces-c/' + +description = """Xerces-C++ is a validating XML parser written in a portable +subset of C++. Xerces-C++ makes it easy to give your application the ability to +read and write XML data. A shared library is provided for parsing, generating, +manipulating, and validating XML documents using the DOM, SAX, and SAX2 +APIs.""" + +toolchain = {'name': 'goolf', 'version': '1.7.20'} + +sources = ['xerces-c-%(version)s.tar.gz'] +source_urls = [ + 'http://archive.apache.org/dist/xerces/c/%(version_major)s/sources/' +] + +dependencies = [ + ('cURL', '7.44.0'), +] + +moduleclass = 'lib' diff --git a/x/Xerces-C++/Xerces-C++-3.1.2-intel-2015a.eb b/x/Xerces-C++/Xerces-C++-3.1.2-intel-2015a.eb new file mode 100644 index 00000000..1ddefd9f --- /dev/null +++ b/x/Xerces-C++/Xerces-C++-3.1.2-intel-2015a.eb @@ -0,0 +1,25 @@ +easyblock = 'ConfigureMake' + +name = 'Xerces-C++' +version = '3.1.2' + +homepage = 'http://xerces.apache.org/xerces-c/' + +description = """Xerces-C++ is a validating XML parser written in a portable +subset of C++. Xerces-C++ makes it easy to give your application the ability to +read and write XML data. A shared library is provided for parsing, generating, +manipulating, and validating XML documents using the DOM, SAX, and SAX2 +APIs.""" + +toolchain = {'name': 'intel', 'version': '2015a'} + +sources = ['xerces-c-%(version)s.tar.gz'] +source_urls = [ + 'http://archive.apache.org/dist/xerces/c/%(version_major)s/sources/' +] + +dependencies = [ + ('cURL', '7.44.0'), +] + +moduleclass = 'lib' diff --git a/x/Xmipp/Xmipp-3.1-foss-2015a-Python-2.7.9.eb b/x/Xmipp/Xmipp-3.1-foss-2015a-Python-2.7.9.eb new file mode 100644 index 00000000..fc928c6c --- /dev/null +++ b/x/Xmipp/Xmipp-3.1-foss-2015a-Python-2.7.9.eb @@ -0,0 +1,32 @@ +name = 'Xmipp' +version = '3.1' + +homepage = 'http://xmipp.cnb.csic.es/' +description = "Xmipp is a suite of image processing programs, primarily aimed at single-particle 3D electron microscopy." + +source_urls = ['http://xmipp.cnb.csic.es/Downloads/'] +sources = ['Xmipp-%(version)s-src.tar.gz'] + +toolchain = {'name': 'foss', 'version': '2015a'} + +patches = [ + 'Xmipp-%(version)s_fix-sqlite-includes.patch', + 'Xmipp-%(version)s_fix-library-includes.patch', + 'Xmipp_install-script.patch', +] + +pyver = '2.7.9' +versionsuffix = '-Python-%s' % pyver + +dependencies = [ + ('Java', '1.8.0_40', '', True), + ('Python', pyver), # should have a working sqlite, and provide numpy/mpi4py + ('LibTIFF', '4.0.4beta'), + ('HDF5', '1.8.14'), + ('libjpeg-turbo', '1.4.0'), + ('FFTW', '3.3.4', '', ('gompi', '2015a')), + ('SQLite', '3.8.8.1'), # must match SQLite used by Python + ('matplotlib', '1.4.3', versionsuffix), +] + +moduleclass = 'vis' diff --git a/x/Xmipp/Xmipp-3.1-goolf-1.4.10-with-incl-deps.eb b/x/Xmipp/Xmipp-3.1-goolf-1.4.10-with-incl-deps.eb new file mode 100644 index 00000000..ec08bd48 --- /dev/null +++ b/x/Xmipp/Xmipp-3.1-goolf-1.4.10-with-incl-deps.eb @@ -0,0 +1,16 @@ +name = 'Xmipp' +version = '3.1' +versionsuffix = '-with-incl-deps' + +homepage = 'http://xmipp.cnb.csic.es/' +description = "Xmipp is a suite of image processing programs, primarily aimed at single-particle 3D electron microscopy." + +source_urls = ['http://xmipp.cnb.csic.es/Downloads/'] +sources = ['Xmipp-%(version)s-src.tar.gz'] + +toolchain = {'name': 'goolf', 'version': '1.4.10'} + +# note: all other dependencies are taken care of by Xmipp itself +dependencies = [('Java', '1.7.0_80', '', True)] + +moduleclass = 'vis' diff --git a/x/Xmipp/Xmipp-3.1-intel-2015a-Python-2.7.9.eb b/x/Xmipp/Xmipp-3.1-intel-2015a-Python-2.7.9.eb new file mode 100644 index 00000000..82d76eef --- /dev/null +++ b/x/Xmipp/Xmipp-3.1-intel-2015a-Python-2.7.9.eb @@ -0,0 +1,32 @@ +name = 'Xmipp' +version = '3.1' + +homepage = 'http://xmipp.cnb.csic.es/' +description = "Xmipp is a suite of image processing programs, primarily aimed at single-particle 3D electron microscopy." + +source_urls = ['http://xmipp.cnb.csic.es/Downloads/'] +sources = ['Xmipp-%(version)s-src.tar.gz'] + +toolchain = {'name': 'intel', 'version': '2015a'} + +patches = [ + 'Xmipp-%(version)s_fix-sqlite-includes.patch', + 'Xmipp-%(version)s_fix-library-includes.patch', + 'Xmipp_install-script.patch', +] + +pyver = '2.7.9' +versionsuffix = '-Python-%s' % pyver + +dependencies = [ + ('Java', '1.8.0_40', '', True), + ('Python', pyver), # should have a working sqlite, and provide numpy/mpi4py + ('LibTIFF', '4.0.4beta'), + ('HDF5', '1.8.14'), + ('libjpeg-turbo', '1.4.0'), + ('FFTW', '3.3.4'), + ('SQLite', '3.8.8.1'), # must match SQLite used by Python + ('matplotlib', '1.4.3', versionsuffix), +] + +moduleclass = 'vis' diff --git a/x/xbitmaps/xbitmaps-1.1.1-intel-2015b.eb b/x/xbitmaps/xbitmaps-1.1.1-intel-2015b.eb new file mode 100644 index 00000000..a0983715 --- /dev/null +++ b/x/xbitmaps/xbitmaps-1.1.1-intel-2015b.eb @@ -0,0 +1,19 @@ +easyblock = 'ConfigureMake' + +name = 'xbitmaps' +version = '1.1.1' + +homepage = "http://www.freedesktop.org/wiki/Software/xlibs" +description = """provides bitmaps for x""" + +toolchain = {'name': 'intel', 'version': '2015b'} + +sources = [SOURCE_TAR_GZ] +source_urls = ['http://xorg.freedesktop.org/archive/individual/data/'] + +sanity_check_paths = { + 'files' : ['include/X11/bitmaps/gray'], + 'dirs' : [] +} + +moduleclass = 'devel' diff --git a/x/xcb-proto/xcb-proto-1.11-intel-2015b-Python-2.7.9.eb b/x/xcb-proto/xcb-proto-1.11-intel-2015b-Python-2.7.9.eb new file mode 100644 index 00000000..4d5b6e3b --- /dev/null +++ b/x/xcb-proto/xcb-proto-1.11-intel-2015b-Python-2.7.9.eb @@ -0,0 +1,27 @@ +easyblock = 'ConfigureMake' + +name = 'xcb-proto' +version = '1.11' + +homepage = 'http://xcb.freedesktop.org/' +description = """The X protocol C-language Binding (XCB) is a replacement for Xlib featuring a small footprint, +latency hiding, direct access to the protocol, improved threading support, and extensibility.""" + +toolchain = {'name': 'intel', 'version': '2015b'} + +source_urls = ['http://xcb.freedesktop.org/dist/'] +sources = [SOURCELOWER_TAR_GZ] + +python = 'Python' +pyver = '2.7.9' +versionsuffix = '-%s-%s' % (python, pyver) +dependencies = [(python, pyver)] + +pyshortver = '.'.join(pyver.split('.')[0:2]) + +sanity_check_paths = { + 'files': ['lib/pkgconfig/xcb-proto.pc'], + 'dirs': ['lib/python%s/site-packages/xcbgen' % pyshortver] +} + +moduleclass = 'devel' diff --git a/x/xcb-util-image/xcb-util-image-0.4.0-foss-2016a.eb b/x/xcb-util-image/xcb-util-image-0.4.0-foss-2016a.eb new file mode 100644 index 00000000..bb023fe4 --- /dev/null +++ b/x/xcb-util-image/xcb-util-image-0.4.0-foss-2016a.eb @@ -0,0 +1,23 @@ +easyblock = 'ConfigureMake' + +name = 'xcb-util-image' +version = '0.4.0' + +homepage = 'http://xcb.freedesktop.org/' +description = """The xcb-util-image package provides additional extensions to the XCB library.""" + +toolchain = {'name': 'foss', 'version': '2016a'} + +source_urls = ['http://xcb.freedesktop.org/dist/'] +sources = [SOURCELOWER_TAR_GZ] + +dependencies = [ + ('xcb-util', '0.4.0'), +] + +sanity_check_paths = { + 'files': ['lib/libxcb-image.%s' % SHLIB_EXT], + 'dirs': [] +} + +moduleclass = 'devel' diff --git a/x/xcb-util-image/xcb-util-image-0.4.0-intel-2015b.eb b/x/xcb-util-image/xcb-util-image-0.4.0-intel-2015b.eb new file mode 100644 index 00000000..933c8b66 --- /dev/null +++ b/x/xcb-util-image/xcb-util-image-0.4.0-intel-2015b.eb @@ -0,0 +1,23 @@ +easyblock = 'ConfigureMake' + +name = 'xcb-util-image' +version = '0.4.0' + +homepage = 'http://xcb.freedesktop.org/' +description = """The xcb-util-image package provides additional extensions to the XCB library.""" + +toolchain = {'name': 'intel', 'version': '2015b'} + +source_urls = ['http://xcb.freedesktop.org/dist/'] +sources = [SOURCELOWER_TAR_GZ] + +dependencies = [ + ('xcb-util', '0.4.0',), +] + +sanity_check_paths = { + 'files': ['lib/libxcb-image.%s' % SHLIB_EXT], + 'dirs': [] +} + +moduleclass = 'devel' diff --git a/x/xcb-util-image/xcb-util-image-0.4.0-intel-2016a.eb b/x/xcb-util-image/xcb-util-image-0.4.0-intel-2016a.eb new file mode 100644 index 00000000..a0cf9f13 --- /dev/null +++ b/x/xcb-util-image/xcb-util-image-0.4.0-intel-2016a.eb @@ -0,0 +1,23 @@ +easyblock = 'ConfigureMake' + +name = 'xcb-util-image' +version = '0.4.0' + +homepage = 'http://xcb.freedesktop.org/' +description = """The xcb-util-image package provides additional extensions to the XCB library.""" + +toolchain = {'name': 'intel', 'version': '2016a'} + +source_urls = ['http://xcb.freedesktop.org/dist/'] +sources = [SOURCELOWER_TAR_GZ] + +dependencies = [ + ('xcb-util', '0.4.0'), +] + +sanity_check_paths = { + 'files': ['lib/libxcb-image.%s' % SHLIB_EXT], + 'dirs': [] +} + +moduleclass = 'devel' diff --git a/x/xcb-util-keysyms/xcb-util-keysyms-0.4.0-foss-2016a.eb b/x/xcb-util-keysyms/xcb-util-keysyms-0.4.0-foss-2016a.eb new file mode 100644 index 00000000..000b28f3 --- /dev/null +++ b/x/xcb-util-keysyms/xcb-util-keysyms-0.4.0-foss-2016a.eb @@ -0,0 +1,24 @@ +easyblock = 'ConfigureMake' + +name = 'xcb-util-keysyms' +version = '0.4.0' + +homepage = 'http://xcb.freedesktop.org/' +description = """The xcb-util-keysyms package contains a library for + handling standard X key constants and conversion to/from keycodes.""" + +toolchain = {'name': 'foss', 'version': '2016a'} + +source_urls = ['http://xcb.freedesktop.org/dist/'] +sources = [SOURCELOWER_TAR_GZ] + +dependencies = [ + ('libxcb', '1.11.1'), +] + +sanity_check_paths = { + 'files': ['lib/libxcb-keysyms.%s' % SHLIB_EXT], + 'dirs': [] +} + +moduleclass = 'devel' diff --git a/x/xcb-util-keysyms/xcb-util-keysyms-0.4.0-intel-2016a.eb b/x/xcb-util-keysyms/xcb-util-keysyms-0.4.0-intel-2016a.eb new file mode 100644 index 00000000..ab965a9d --- /dev/null +++ b/x/xcb-util-keysyms/xcb-util-keysyms-0.4.0-intel-2016a.eb @@ -0,0 +1,24 @@ +easyblock = 'ConfigureMake' + +name = 'xcb-util-keysyms' +version = '0.4.0' + +homepage = 'http://xcb.freedesktop.org/' +description = """The xcb-util-keysyms package contains a library for + handling standard X key constants and conversion to/from keycodes.""" + +toolchain = {'name': 'intel', 'version': '2016a'} + +source_urls = ['http://xcb.freedesktop.org/dist/'] +sources = [SOURCELOWER_TAR_GZ] + +dependencies = [ + ('libxcb', '1.11.1'), +] + +sanity_check_paths = { + 'files': ['lib/libxcb-keysyms.%s' % SHLIB_EXT], + 'dirs': [] +} + +moduleclass = 'devel' diff --git a/x/xcb-util-renderutil/xcb-util-renderutil-0.3.9-foss-2016a.eb b/x/xcb-util-renderutil/xcb-util-renderutil-0.3.9-foss-2016a.eb new file mode 100644 index 00000000..fd3484fb --- /dev/null +++ b/x/xcb-util-renderutil/xcb-util-renderutil-0.3.9-foss-2016a.eb @@ -0,0 +1,23 @@ +easyblock = 'ConfigureMake' + +name = 'xcb-util-renderutil' +version = '0.3.9' + +homepage = 'http://xcb.freedesktop.org/' +description = """The xcb-util-renderutil package provides additional extensions to the XCB library.""" + +toolchain = {'name': 'foss', 'version': '2016a'} + +source_urls = ['http://xcb.freedesktop.org/dist/'] +sources = [SOURCELOWER_TAR_GZ] + +dependencies = [ + ('libxcb', '1.11.1'), +] + +sanity_check_paths = { + 'files': ['lib/libxcb-render-util.%s' % SHLIB_EXT], + 'dirs': [] +} + +moduleclass = 'devel' diff --git a/x/xcb-util-renderutil/xcb-util-renderutil-0.3.9-intel-2016a.eb b/x/xcb-util-renderutil/xcb-util-renderutil-0.3.9-intel-2016a.eb new file mode 100644 index 00000000..c926c17d --- /dev/null +++ b/x/xcb-util-renderutil/xcb-util-renderutil-0.3.9-intel-2016a.eb @@ -0,0 +1,23 @@ +easyblock = 'ConfigureMake' + +name = 'xcb-util-renderutil' +version = '0.3.9' + +homepage = 'http://xcb.freedesktop.org/' +description = """The xcb-util-renderutil package provides additional extensions to the XCB library.""" + +toolchain = {'name': 'intel', 'version': '2016a'} + +source_urls = ['http://xcb.freedesktop.org/dist/'] +sources = [SOURCELOWER_TAR_GZ] + +dependencies = [ + ('libxcb', '1.11.1'), +] + +sanity_check_paths = { + 'files': ['lib/libxcb-render-util.%s' % SHLIB_EXT], + 'dirs': [] +} + +moduleclass = 'devel' diff --git a/x/xcb-util-wm/xcb-util-wm-0.4.1-foss-2016a.eb b/x/xcb-util-wm/xcb-util-wm-0.4.1-foss-2016a.eb new file mode 100644 index 00000000..d412a4ba --- /dev/null +++ b/x/xcb-util-wm/xcb-util-wm-0.4.1-foss-2016a.eb @@ -0,0 +1,23 @@ +easyblock = 'ConfigureMake' + +name = 'xcb-util-wm' +version = '0.4.1' + +homepage = 'http://xcb.freedesktop.org/' +description = """The xcb-util-wm package contains libraries which provide client and window-manager helpers for EWMH and ICCCM.""" + +toolchain = {'name': 'foss', 'version': '2016a'} + +source_urls = ['http://xcb.freedesktop.org/dist/'] +sources = [SOURCELOWER_TAR_GZ] + +dependencies = [ + ('libxcb', '1.11.1'), +] + +sanity_check_paths = { + 'files': ['lib/libxcb-%s.so' % x for x in ['ewmh', 'icccm']], + 'dirs': [] +} + +moduleclass = 'devel' diff --git a/x/xcb-util-wm/xcb-util-wm-0.4.1-intel-2015b-Python-2.7.11.eb b/x/xcb-util-wm/xcb-util-wm-0.4.1-intel-2015b-Python-2.7.11.eb new file mode 100644 index 00000000..39589444 --- /dev/null +++ b/x/xcb-util-wm/xcb-util-wm-0.4.1-intel-2015b-Python-2.7.11.eb @@ -0,0 +1,24 @@ +easyblock = 'ConfigureMake' + +name = 'xcb-util-wm' +version = '0.4.1' +versionsuffix = '-Python-2.7.11' + +homepage = 'http://xcb.freedesktop.org/' +description = """The xcb-util-wm package contains libraries which provide client and window-manager helpers for EWMH and ICCCM.""" + +toolchain = {'name': 'intel', 'version': '2015b'} + +source_urls = ['http://xcb.freedesktop.org/dist/'] +sources = [SOURCELOWER_TAR_GZ] + +dependencies = [ + ('libxcb', '1.11.1', versionsuffix), +] + +sanity_check_paths = { + 'files': ['lib/libxcb-%s.so' % x for x in ['ewmh', 'icccm']], + 'dirs': [] +} + +moduleclass = 'devel' diff --git a/x/xcb-util-wm/xcb-util-wm-0.4.1-intel-2015b.eb b/x/xcb-util-wm/xcb-util-wm-0.4.1-intel-2015b.eb new file mode 100644 index 00000000..147e33bc --- /dev/null +++ b/x/xcb-util-wm/xcb-util-wm-0.4.1-intel-2015b.eb @@ -0,0 +1,23 @@ +easyblock = 'ConfigureMake' + +name = 'xcb-util-wm' +version = '0.4.1' + +homepage = 'http://xcb.freedesktop.org/' +description = """The xcb-util-wm package contains libraries which provide client and window-manager helpers for EWMH and ICCCM.""" + +toolchain = {'name': 'intel', 'version': '2015b'} + +source_urls = ['http://xcb.freedesktop.org/dist/'] +sources = [SOURCELOWER_TAR_GZ] + +dependencies = [ + ('libxcb', '1.11.1', '-Python-2.7.10'), +] + +sanity_check_paths = { + 'files': ['lib/libxcb-%s.so' % x for x in ['ewmh', 'icccm']], + 'dirs': [] +} + +moduleclass = 'devel' diff --git a/x/xcb-util-wm/xcb-util-wm-0.4.1-intel-2016a.eb b/x/xcb-util-wm/xcb-util-wm-0.4.1-intel-2016a.eb new file mode 100644 index 00000000..5d58f2a9 --- /dev/null +++ b/x/xcb-util-wm/xcb-util-wm-0.4.1-intel-2016a.eb @@ -0,0 +1,23 @@ +easyblock = 'ConfigureMake' + +name = 'xcb-util-wm' +version = '0.4.1' + +homepage = 'http://xcb.freedesktop.org/' +description = """The xcb-util-wm package contains libraries which provide client and window-manager helpers for EWMH and ICCCM.""" + +toolchain = {'name': 'intel', 'version': '2016a'} + +source_urls = ['http://xcb.freedesktop.org/dist/'] +sources = [SOURCELOWER_TAR_GZ] + +dependencies = [ + ('libxcb', '1.11.1'), +] + +sanity_check_paths = { + 'files': ['lib/libxcb-%s.so' % x for x in ['ewmh', 'icccm']], + 'dirs': [] +} + +moduleclass = 'devel' diff --git a/x/xcb-util/xcb-util-0.4.0-foss-2016a.eb b/x/xcb-util/xcb-util-0.4.0-foss-2016a.eb new file mode 100644 index 00000000..78a0c3a9 --- /dev/null +++ b/x/xcb-util/xcb-util-0.4.0-foss-2016a.eb @@ -0,0 +1,24 @@ +easyblock = 'ConfigureMake' + +name = 'xcb-util' +version = '0.4.0' + +homepage = 'http://xcb.freedesktop.org/' +description = """The xcb-util package provides additional extensions to the XCB library, + many that were previously found in Xlib, but are not part of core X protocol""" + +toolchain = {'name': 'foss', 'version': '2016a'} + +source_urls = ['http://xcb.freedesktop.org/dist/'] +sources = [SOURCELOWER_TAR_GZ] + +dependencies = [ + ('libxcb', '1.11.1'), +] + +sanity_check_paths = { + 'files': ['lib/libxcb-util.%s' % SHLIB_EXT], + 'dirs': [] +} + +moduleclass = 'devel' diff --git a/x/xcb-util/xcb-util-0.4.0-intel-2016a.eb b/x/xcb-util/xcb-util-0.4.0-intel-2016a.eb new file mode 100644 index 00000000..18a587a5 --- /dev/null +++ b/x/xcb-util/xcb-util-0.4.0-intel-2016a.eb @@ -0,0 +1,24 @@ +easyblock = 'ConfigureMake' + +name = 'xcb-util' +version = '0.4.0' + +homepage = 'http://xcb.freedesktop.org/' +description = """The xcb-util package provides additional extensions to the XCB library, + many that were previously found in Xlib, but are not part of core X protocol""" + +toolchain = {'name': 'intel', 'version': '2016a'} + +source_urls = ['http://xcb.freedesktop.org/dist/'] +sources = [SOURCELOWER_TAR_GZ] + +dependencies = [ + ('libxcb', '1.11.1'), +] + +sanity_check_paths = { + 'files': ['lib/libxcb-util.%s' % SHLIB_EXT], + 'dirs': [] +} + +moduleclass = 'devel' diff --git a/x/xdrfile/xdrfile-1.1.4-foss-2015g.eb b/x/xdrfile/xdrfile-1.1.4-foss-2015g.eb new file mode 100644 index 00000000..888153b6 --- /dev/null +++ b/x/xdrfile/xdrfile-1.1.4-foss-2015g.eb @@ -0,0 +1,17 @@ +easyblock = 'ConfigureMake' + +name = 'xdrfile' +version = '1.1.4' + +homepage = 'http://www.gromacs.org/Developer_Zone/Programming_Guide/XTC_Library' +description = """XTC library + """ + +toolchain = {'name': 'foss', 'version': '2015g'} + +source_urls = ['ftp://ftp.gromacs.org/pub/contrib/'] +sources = [SOURCELOWER_TAR_GZ] + +configopts = '--with-pic' + +moduleclass = 'chem' diff --git a/x/xdrfile/xdrfile-1.1.4-foss-2016a.eb b/x/xdrfile/xdrfile-1.1.4-foss-2016a.eb new file mode 100644 index 00000000..aa05056b --- /dev/null +++ b/x/xdrfile/xdrfile-1.1.4-foss-2016a.eb @@ -0,0 +1,17 @@ +easyblock = 'ConfigureMake' + +name = 'xdrfile' +version = '1.1.4' + +homepage = 'http://www.gromacs.org/Developer_Zone/Programming_Guide/XTC_Library' +description = """XTC library + """ + +toolchain = {'name': 'foss', 'version': '2016a'} + +source_urls = ['ftp://ftp.gromacs.org/pub/contrib/'] +sources = [SOURCELOWER_TAR_GZ] + +configopts = '--with-pic' + +moduleclass = 'chem' diff --git a/x/xdrfile/xdrfile-1.1.4-intel-2015b.eb b/x/xdrfile/xdrfile-1.1.4-intel-2015b.eb new file mode 100644 index 00000000..c81487c5 --- /dev/null +++ b/x/xdrfile/xdrfile-1.1.4-intel-2015b.eb @@ -0,0 +1,17 @@ +easyblock = 'ConfigureMake' + +name = 'xdrfile' +version = '1.1.4' + +homepage = 'http://www.gromacs.org/Developer_Zone/Programming_Guide/XTC_Library' +description = """XTC library + """ + +toolchain = {'name': 'intel', 'version': '2015b'} + +source_urls = ['ftp://ftp.gromacs.org/pub/contrib/'] +sources = [SOURCELOWER_TAR_GZ] + +configopts = '--with-pic' + +moduleclass = 'chem' diff --git a/x/xextproto/xextproto-7.3.0-foss-2016a.eb b/x/xextproto/xextproto-7.3.0-foss-2016a.eb new file mode 100644 index 00000000..53735a84 --- /dev/null +++ b/x/xextproto/xextproto-7.3.0-foss-2016a.eb @@ -0,0 +1,24 @@ +easyblock = 'ConfigureMake' + +name = 'xextproto' +version = '7.3.0' + +homepage = "http://www.freedesktop.org/wiki/Software/xlibs" +description = """XExtProto protocol headers.""" + +toolchain = {'name': 'foss', 'version': '2016a'} + +sources = [SOURCE_TAR_GZ] +source_urls = [XORG_PROTO_SOURCE] + +sanity_check_paths = { + 'files': ['include/X11/extensions/%s' % x for x in [ + 'agproto.h', 'cupproto.h', 'dbeproto.h', 'dpmsproto.h', 'EVIproto.h', 'geproto.h', 'lbxproto.h', + 'mitmiscproto.h', 'multibufproto.h', 'securproto.h', 'shapeproto.h', 'shm.h', 'shmstr.h', 'syncproto.h', + 'xtestconst.h', 'xtestext1proto.h' + ] + ], + 'dirs': [] +} + +moduleclass = 'devel' diff --git a/x/xextproto/xextproto-7.3.0-intel-2016a.eb b/x/xextproto/xextproto-7.3.0-intel-2016a.eb new file mode 100644 index 00000000..08ca1e41 --- /dev/null +++ b/x/xextproto/xextproto-7.3.0-intel-2016a.eb @@ -0,0 +1,24 @@ +easyblock = 'ConfigureMake' + +name = 'xextproto' +version = '7.3.0' + +homepage = "http://www.freedesktop.org/wiki/Software/xlibs" +description = """XExtProto protocol headers.""" + +toolchain = {'name': 'intel', 'version': '2016a'} + +sources = [SOURCE_TAR_GZ] +source_urls = [XORG_PROTO_SOURCE] + +sanity_check_paths = { + 'files': ['include/X11/extensions/%s' % x for x in [ + 'agproto.h', 'cupproto.h', 'dbeproto.h', 'dpmsproto.h', 'EVIproto.h', 'geproto.h', 'lbxproto.h', + 'mitmiscproto.h', 'multibufproto.h', 'securproto.h', 'shapeproto.h', 'shm.h', 'shmstr.h', 'syncproto.h', + 'xtestconst.h', 'xtestext1proto.h' + ] + ], + 'dirs': [] +} + +moduleclass = 'devel' diff --git a/x/xineramaproto/xineramaproto-1.2.1-foss-2016a.eb b/x/xineramaproto/xineramaproto-1.2.1-foss-2016a.eb new file mode 100644 index 00000000..fdbb9a1f --- /dev/null +++ b/x/xineramaproto/xineramaproto-1.2.1-foss-2016a.eb @@ -0,0 +1,19 @@ +easyblock = 'ConfigureMake' + +name = 'xineramaproto' +version = '1.2.1' + +homepage = "http://www.freedesktop.org/wiki/Software/xlibs" +description = "X protocol and ancillary headers for xinerama" + +toolchain = {'name': 'foss', 'version': '2016a'} + +sources = [SOURCE_TAR_GZ] +source_urls = [XORG_PROTO_SOURCE] + +sanity_check_paths = { + 'files': ['include/X11/extensions/panoramiXproto.h'], + 'dirs': [] +} + +moduleclass = 'devel' diff --git a/x/xineramaproto/xineramaproto-1.2.1-intel-2016a.eb b/x/xineramaproto/xineramaproto-1.2.1-intel-2016a.eb new file mode 100644 index 00000000..892ed9f5 --- /dev/null +++ b/x/xineramaproto/xineramaproto-1.2.1-intel-2016a.eb @@ -0,0 +1,19 @@ +easyblock = 'ConfigureMake' + +name = 'xineramaproto' +version = '1.2.1' + +homepage = "http://www.freedesktop.org/wiki/Software/xlibs" +description = "X protocol and ancillary headers for xinerama" + +toolchain = {'name': 'intel', 'version': '2016a'} + +sources = [SOURCE_TAR_GZ] +source_urls = [XORG_PROTO_SOURCE] + +sanity_check_paths = { + 'files': ['include/X11/extensions/panoramiXproto.h'], + 'dirs': [] +} + +moduleclass = 'devel' diff --git a/x/xproto/xproto-7.0.23-goolf-1.4.10.eb b/x/xproto/xproto-7.0.23-goolf-1.4.10.eb new file mode 100644 index 00000000..6eb06bc7 --- /dev/null +++ b/x/xproto/xproto-7.0.23-goolf-1.4.10.eb @@ -0,0 +1,24 @@ +easyblock = 'ConfigureMake' + +name = 'xproto' +version = '7.0.23' + +homepage = "http://www.freedesktop.org/wiki/Software/xlibs" +description = "X protocol and ancillary headers" + +toolchain = {'name': 'goolf', 'version': '1.4.10'} +toolchainopts = {'optarch': True} + +sources = [SOURCE_TAR_GZ] +source_urls = [XORG_PROTO_SOURCE] + +sanity_check_paths = { + 'files': ['include/X11/%s' % x for x in ['ap_keysym.h', 'HPkeysym.h', 'keysym.h', 'Xalloca.h', + 'Xatom.h', 'XF86keysym.h', 'Xfuncs.h', 'Xmd.h', 'Xos.h', 'Xpoll.h', 'Xprotostr.h', + 'Xw32defs.h', 'Xwindows.h', 'DECkeysym.h', 'keysymdef.h', 'Sunkeysym.h', 'Xarch.h', + 'Xdefs.h', 'Xfuncproto.h', 'X.h', 'Xosdefs.h', 'Xos_r.h', 'Xproto.h', 'Xthreads.h', + 'XWDFile.h', 'Xwinsock.h']], + 'dirs': [] +} + +moduleclass = 'devel' diff --git a/x/xproto/xproto-7.0.23-goolf-1.5.14.eb b/x/xproto/xproto-7.0.23-goolf-1.5.14.eb new file mode 100644 index 00000000..5054d70d --- /dev/null +++ b/x/xproto/xproto-7.0.23-goolf-1.5.14.eb @@ -0,0 +1,24 @@ +easyblock = 'ConfigureMake' + +name = 'xproto' +version = '7.0.23' + +homepage = "http://www.freedesktop.org/wiki/Software/xlibs" +description = "X protocol and ancillary headers" + +toolchain = {'name': 'goolf', 'version': '1.5.14'} +toolchainopts = {'optarch': True} + +sources = [SOURCE_TAR_GZ] +source_urls = [XORG_PROTO_SOURCE] + +sanity_check_paths = { + 'files': ['include/X11/%s' % x for x in ['ap_keysym.h', 'HPkeysym.h', 'keysym.h', 'Xalloca.h', + 'Xatom.h', 'XF86keysym.h', 'Xfuncs.h', 'Xmd.h', 'Xos.h', 'Xpoll.h', 'Xprotostr.h', + 'Xw32defs.h', 'Xwindows.h', 'DECkeysym.h', 'keysymdef.h', 'Sunkeysym.h', 'Xarch.h', + 'Xdefs.h', 'Xfuncproto.h', 'X.h', 'Xosdefs.h', 'Xos_r.h', 'Xproto.h', 'Xthreads.h', + 'XWDFile.h', 'Xwinsock.h']], + 'dirs': [] +} + +moduleclass = 'devel' diff --git a/x/xproto/xproto-7.0.23-ictce-5.3.0.eb b/x/xproto/xproto-7.0.23-ictce-5.3.0.eb new file mode 100644 index 00000000..7d12c7f8 --- /dev/null +++ b/x/xproto/xproto-7.0.23-ictce-5.3.0.eb @@ -0,0 +1,25 @@ +easyblock = 'ConfigureMake' + +name = 'xproto' +version = '7.0.23' + +homepage = "http://www.freedesktop.org/wiki/Software/xlibs" +description = "X protocol and ancillary headers" + + +toolchain = {'name': 'ictce', 'version': '5.3.0'} +toolchainopts = {'optarch': True} + +sources = [SOURCE_TAR_GZ] +source_urls = [XORG_PROTO_SOURCE] + +sanity_check_paths = { + 'files': ['include/X11/%s' % x for x in ['ap_keysym.h', 'HPkeysym.h', 'keysym.h', 'Xalloca.h', + 'Xatom.h', 'XF86keysym.h', 'Xfuncs.h', 'Xmd.h', 'Xos.h', 'Xpoll.h', 'Xprotostr.h', + 'Xw32defs.h', 'Xwindows.h', 'DECkeysym.h', 'keysymdef.h', 'Sunkeysym.h', 'Xarch.h', + 'Xdefs.h', 'Xfuncproto.h', 'X.h', 'Xosdefs.h', 'Xos_r.h', 'Xproto.h', 'Xthreads.h', + 'XWDFile.h', 'Xwinsock.h']], + 'dirs': [] +} + +moduleclass = 'devel' diff --git a/x/xproto/xproto-7.0.26-foss-2014b.eb b/x/xproto/xproto-7.0.26-foss-2014b.eb new file mode 100644 index 00000000..76cc9f4a --- /dev/null +++ b/x/xproto/xproto-7.0.26-foss-2014b.eb @@ -0,0 +1,24 @@ +easyblock = 'ConfigureMake' + +name = 'xproto' +version = '7.0.26' + +homepage = "http://www.freedesktop.org/wiki/Software/xlibs" +description = "X protocol and ancillary headers" + +toolchain = {'name': 'foss', 'version': '2014b'} +toolchainopts = {'optarch': True} + +sources = [SOURCE_TAR_GZ] +source_urls = [XORG_PROTO_SOURCE] + +sanity_check_paths = { + 'files': ['include/X11/%s' % x for x in ['ap_keysym.h', 'HPkeysym.h', 'keysym.h', 'Xalloca.h', + 'Xatom.h', 'XF86keysym.h', 'Xfuncs.h', 'Xmd.h', 'Xos.h', 'Xpoll.h', 'Xprotostr.h', + 'Xw32defs.h', 'Xwindows.h', 'DECkeysym.h', 'keysymdef.h', 'Sunkeysym.h', 'Xarch.h', + 'Xdefs.h', 'Xfuncproto.h', 'X.h', 'Xosdefs.h', 'Xos_r.h', 'Xproto.h', 'Xthreads.h', + 'XWDFile.h', 'Xwinsock.h']], + 'dirs': [] +} + +moduleclass = 'devel' diff --git a/x/xproto/xproto-7.0.26-intel-2014b.eb b/x/xproto/xproto-7.0.26-intel-2014b.eb new file mode 100644 index 00000000..1caa382a --- /dev/null +++ b/x/xproto/xproto-7.0.26-intel-2014b.eb @@ -0,0 +1,24 @@ +easyblock = 'ConfigureMake' + +name = 'xproto' +version = '7.0.26' + +homepage = "http://www.freedesktop.org/wiki/Software/xlibs" +description = "X protocol and ancillary headers" + +toolchain = {'name': 'intel', 'version': '2014b'} +toolchainopts = {'optarch': True} + +sources = [SOURCE_TAR_GZ] +source_urls = [XORG_PROTO_SOURCE] + +sanity_check_paths = { + 'files': ['include/X11/%s' % x for x in ['ap_keysym.h', 'HPkeysym.h', 'keysym.h', 'Xalloca.h', + 'Xatom.h', 'XF86keysym.h', 'Xfuncs.h', 'Xmd.h', 'Xos.h', 'Xpoll.h', 'Xprotostr.h', + 'Xw32defs.h', 'Xwindows.h', 'DECkeysym.h', 'keysymdef.h', 'Sunkeysym.h', 'Xarch.h', + 'Xdefs.h', 'Xfuncproto.h', 'X.h', 'Xosdefs.h', 'Xos_r.h', 'Xproto.h', 'Xthreads.h', + 'XWDFile.h', 'Xwinsock.h']], + 'dirs': [] +} + +moduleclass = 'devel' diff --git a/x/xproto/xproto-7.0.26-intel-2015b.eb b/x/xproto/xproto-7.0.26-intel-2015b.eb new file mode 100644 index 00000000..23cec5d2 --- /dev/null +++ b/x/xproto/xproto-7.0.26-intel-2015b.eb @@ -0,0 +1,25 @@ +# Built with EasyBuild version 2.1.1 on 2015-06-29_22-21-26 +easyblock = 'ConfigureMake' + +name = 'xproto' +version = '7.0.26' + +homepage = "http://www.freedesktop.org/wiki/Software/xlibs" +description = "X protocol and ancillary headers" + +toolchain = {'name': 'intel', 'version': '2015b'} +toolchainopts = {'optarch': True} + +sources = [SOURCE_TAR_GZ] +source_urls = ['http://xorg.freedesktop.org/archive/individual/proto/'] + +sanity_check_paths = { + 'files' : ['include/X11/%s' % x for x in ['ap_keysym.h', 'HPkeysym.h', 'keysym.h', 'Xalloca.h', + 'Xatom.h', 'XF86keysym.h', 'Xfuncs.h', 'Xmd.h', 'Xos.h', 'Xpoll.h', 'Xprotostr.h', + 'Xw32defs.h', 'Xwindows.h', 'DECkeysym.h', 'keysymdef.h', 'Sunkeysym.h', 'Xarch.h', + 'Xdefs.h', 'Xfuncproto.h', 'X.h', 'Xosdefs.h', 'Xos_r.h', 'Xproto.h', 'Xthreads.h', + 'XWDFile.h', 'Xwinsock.h']], + 'dirs' : [] +} + +moduleclass = 'devel' diff --git a/x/xproto/xproto-7.0.27-goolf-1.5.14.eb b/x/xproto/xproto-7.0.27-goolf-1.5.14.eb new file mode 100644 index 00000000..4d66b00e --- /dev/null +++ b/x/xproto/xproto-7.0.27-goolf-1.5.14.eb @@ -0,0 +1,24 @@ +easyblock = 'ConfigureMake' + +name = 'xproto' +version = '7.0.27' + +homepage = "http://www.freedesktop.org/wiki/Software/xlibs" +description = "X protocol and ancillary headers" + +toolchain = {'name': 'goolf', 'version': '1.5.14'} +toolchainopts = {'optarch': True} + +sources = [SOURCE_TAR_GZ] +source_urls = [XORG_PROTO_SOURCE] + +sanity_check_paths = { + 'files': ['include/X11/%s' % x for x in ['ap_keysym.h', 'HPkeysym.h', 'keysym.h', 'Xalloca.h', + 'Xatom.h', 'XF86keysym.h', 'Xfuncs.h', 'Xmd.h', 'Xos.h', 'Xpoll.h', 'Xprotostr.h', + 'Xw32defs.h', 'Xwindows.h', 'DECkeysym.h', 'keysymdef.h', 'Sunkeysym.h', 'Xarch.h', + 'Xdefs.h', 'Xfuncproto.h', 'X.h', 'Xosdefs.h', 'Xos_r.h', 'Xproto.h', 'Xthreads.h', + 'XWDFile.h', 'Xwinsock.h']], + 'dirs': [] +} + +moduleclass = 'devel' diff --git a/x/xproto/xproto-7.0.27-intel-2015a.eb b/x/xproto/xproto-7.0.27-intel-2015a.eb new file mode 100644 index 00000000..a0292fbf --- /dev/null +++ b/x/xproto/xproto-7.0.27-intel-2015a.eb @@ -0,0 +1,24 @@ +easyblock = 'ConfigureMake' + +name = 'xproto' +version = '7.0.27' + +homepage = "http://www.freedesktop.org/wiki/Software/xlibs" +description = "X protocol and ancillary headers" + +toolchain = {'name': 'intel', 'version': '2015a'} +toolchainopts = {'optarch': True} + +sources = [SOURCE_TAR_GZ] +source_urls = [XORG_PROTO_SOURCE] + +sanity_check_paths = { + 'files': ['include/X11/%s' % x for x in ['ap_keysym.h', 'HPkeysym.h', 'keysym.h', 'Xalloca.h', + 'Xatom.h', 'XF86keysym.h', 'Xfuncs.h', 'Xmd.h', 'Xos.h', 'Xpoll.h', 'Xprotostr.h', + 'Xw32defs.h', 'Xwindows.h', 'DECkeysym.h', 'keysymdef.h', 'Sunkeysym.h', 'Xarch.h', + 'Xdefs.h', 'Xfuncproto.h', 'X.h', 'Xosdefs.h', 'Xos_r.h', 'Xproto.h', 'Xthreads.h', + 'XWDFile.h', 'Xwinsock.h']], + 'dirs': [] +} + +moduleclass = 'devel' diff --git a/x/xproto/xproto-7.0.28-foss-2016a.eb b/x/xproto/xproto-7.0.28-foss-2016a.eb new file mode 100644 index 00000000..2a47f249 --- /dev/null +++ b/x/xproto/xproto-7.0.28-foss-2016a.eb @@ -0,0 +1,23 @@ +easyblock = 'ConfigureMake' + +name = 'xproto' +version = '7.0.28' + +homepage = "http://www.freedesktop.org/wiki/Software/xlibs" +description = "X protocol and ancillary headers" + +toolchain = {'name': 'foss', 'version': '2016a'} + +sources = [SOURCE_TAR_GZ] +source_urls = [XORG_PROTO_SOURCE] + +sanity_check_paths = { + 'files': ['include/X11/%s' % x for x in ['ap_keysym.h', 'HPkeysym.h', 'keysym.h', 'Xalloca.h', + 'Xatom.h', 'XF86keysym.h', 'Xfuncs.h', 'Xmd.h', 'Xos.h', 'Xpoll.h', 'Xprotostr.h', + 'Xw32defs.h', 'Xwindows.h', 'DECkeysym.h', 'keysymdef.h', 'Sunkeysym.h', 'Xarch.h', + 'Xdefs.h', 'Xfuncproto.h', 'X.h', 'Xosdefs.h', 'Xos_r.h', 'Xproto.h', 'Xthreads.h', + 'XWDFile.h', 'Xwinsock.h']], + 'dirs': [] +} + +moduleclass = 'devel' diff --git a/x/xproto/xproto-7.0.28-gimkl-2.11.5.eb b/x/xproto/xproto-7.0.28-gimkl-2.11.5.eb new file mode 100644 index 00000000..8dab7213 --- /dev/null +++ b/x/xproto/xproto-7.0.28-gimkl-2.11.5.eb @@ -0,0 +1,23 @@ +easyblock = 'ConfigureMake' + +name = 'xproto' +version = '7.0.28' + +homepage = "http://www.freedesktop.org/wiki/Software/xlibs" +description = "X protocol and ancillary headers" + +toolchain = {'name': 'gimkl', 'version': '2.11.5'} + +sources = [SOURCE_TAR_GZ] +source_urls = [XORG_PROTO_SOURCE] + +sanity_check_paths = { + 'files': ['include/X11/%s' % x for x in ['ap_keysym.h', 'HPkeysym.h', 'keysym.h', 'Xalloca.h', + 'Xatom.h', 'XF86keysym.h', 'Xfuncs.h', 'Xmd.h', 'Xos.h', 'Xpoll.h', 'Xprotostr.h', + 'Xw32defs.h', 'Xwindows.h', 'DECkeysym.h', 'keysymdef.h', 'Sunkeysym.h', 'Xarch.h', + 'Xdefs.h', 'Xfuncproto.h', 'X.h', 'Xosdefs.h', 'Xos_r.h', 'Xproto.h', 'Xthreads.h', + 'XWDFile.h', 'Xwinsock.h']], + 'dirs': [] +} + +moduleclass = 'devel' diff --git a/x/xproto/xproto-7.0.28-intel-2015a.eb b/x/xproto/xproto-7.0.28-intel-2015a.eb new file mode 100644 index 00000000..532a92d3 --- /dev/null +++ b/x/xproto/xproto-7.0.28-intel-2015a.eb @@ -0,0 +1,24 @@ +easyblock = 'ConfigureMake' + +name = 'xproto' +version = '7.0.28' + +homepage = "http://www.freedesktop.org/wiki/Software/xlibs" +description = "X protocol and ancillary headers" + +toolchain = {'name': 'intel', 'version': '2015a'} +toolchainopts = {'optarch': True} + +sources = [SOURCE_TAR_GZ] +source_urls = [XORG_PROTO_SOURCE] + +sanity_check_paths = { + 'files': ['include/X11/%s' % x for x in ['ap_keysym.h', 'HPkeysym.h', 'keysym.h', 'Xalloca.h', + 'Xatom.h', 'XF86keysym.h', 'Xfuncs.h', 'Xmd.h', 'Xos.h', 'Xpoll.h', 'Xprotostr.h', + 'Xw32defs.h', 'Xwindows.h', 'DECkeysym.h', 'keysymdef.h', 'Sunkeysym.h', 'Xarch.h', + 'Xdefs.h', 'Xfuncproto.h', 'X.h', 'Xosdefs.h', 'Xos_r.h', 'Xproto.h', 'Xthreads.h', + 'XWDFile.h', 'Xwinsock.h']], + 'dirs': [] +} + +moduleclass = 'devel' diff --git a/x/xproto/xproto-7.0.28-intel-2015b.eb b/x/xproto/xproto-7.0.28-intel-2015b.eb new file mode 100644 index 00000000..6722798e --- /dev/null +++ b/x/xproto/xproto-7.0.28-intel-2015b.eb @@ -0,0 +1,24 @@ +easyblock = 'ConfigureMake' + +name = 'xproto' +version = '7.0.28' + +homepage = "http://www.freedesktop.org/wiki/Software/xlibs" +description = "X protocol and ancillary headers" + +toolchain = {'name': 'intel', 'version': '2015b'} +toolchainopts = {'optarch': True} + +sources = [SOURCE_TAR_GZ] +source_urls = [XORG_PROTO_SOURCE] + +sanity_check_paths = { + 'files': ['include/X11/%s' % x for x in ['ap_keysym.h', 'HPkeysym.h', 'keysym.h', 'Xalloca.h', + 'Xatom.h', 'XF86keysym.h', 'Xfuncs.h', 'Xmd.h', 'Xos.h', 'Xpoll.h', 'Xprotostr.h', + 'Xw32defs.h', 'Xwindows.h', 'DECkeysym.h', 'keysymdef.h', 'Sunkeysym.h', 'Xarch.h', + 'Xdefs.h', 'Xfuncproto.h', 'X.h', 'Xosdefs.h', 'Xos_r.h', 'Xproto.h', 'Xthreads.h', + 'XWDFile.h', 'Xwinsock.h']], + 'dirs': [] +} + +moduleclass = 'devel' diff --git a/x/xproto/xproto-7.0.28-intel-2016a.eb b/x/xproto/xproto-7.0.28-intel-2016a.eb new file mode 100644 index 00000000..9de35378 --- /dev/null +++ b/x/xproto/xproto-7.0.28-intel-2016a.eb @@ -0,0 +1,23 @@ +easyblock = 'ConfigureMake' + +name = 'xproto' +version = '7.0.28' + +homepage = "http://www.freedesktop.org/wiki/Software/xlibs" +description = "X protocol and ancillary headers" + +toolchain = {'name': 'intel', 'version': '2016a'} + +sources = [SOURCE_TAR_GZ] +source_urls = [XORG_PROTO_SOURCE] + +sanity_check_paths = { + 'files': ['include/X11/%s' % x for x in ['ap_keysym.h', 'HPkeysym.h', 'keysym.h', 'Xalloca.h', + 'Xatom.h', 'XF86keysym.h', 'Xfuncs.h', 'Xmd.h', 'Xos.h', 'Xpoll.h', 'Xprotostr.h', + 'Xw32defs.h', 'Xwindows.h', 'DECkeysym.h', 'keysymdef.h', 'Sunkeysym.h', 'Xarch.h', + 'Xdefs.h', 'Xfuncproto.h', 'X.h', 'Xosdefs.h', 'Xos_r.h', 'Xproto.h', 'Xthreads.h', + 'XWDFile.h', 'Xwinsock.h']], + 'dirs': [] +} + +moduleclass = 'devel' diff --git a/x/xtrans/xtrans-1.3.5-foss-2016a.eb b/x/xtrans/xtrans-1.3.5-foss-2016a.eb new file mode 100644 index 00000000..1d32cb1a --- /dev/null +++ b/x/xtrans/xtrans-1.3.5-foss-2016a.eb @@ -0,0 +1,22 @@ +easyblock = 'ConfigureMake' + +name = 'xtrans' +version = '1.3.5' + +homepage = "http://www.freedesktop.org/wiki/Software/xlibs" +description = """xtrans includes a number of routines to make X implementations transport-independent; + at time of writing, it includes support for UNIX sockets, IPv4, IPv6, and DECnet. +""" + +toolchain = {'name': 'foss', 'version': '2016a'} + +sources = [SOURCE_TAR_GZ] +source_urls = [XORG_LIB_SOURCE] + +sanity_check_paths = { + 'files': ['include/X11/Xtrans/%s' % x for x in ['transport.c', 'Xtrans.c', 'Xtrans.h', 'Xtransint.h', + 'Xtranslcl.c', 'Xtranssock.c', 'Xtransutil.c']], + 'dirs': [], +} + +moduleclass = 'devel' diff --git a/x/xtrans/xtrans-1.3.5-intel-2016a.eb b/x/xtrans/xtrans-1.3.5-intel-2016a.eb new file mode 100644 index 00000000..bb8657a9 --- /dev/null +++ b/x/xtrans/xtrans-1.3.5-intel-2016a.eb @@ -0,0 +1,22 @@ +easyblock = 'ConfigureMake' + +name = 'xtrans' +version = '1.3.5' + +homepage = "http://www.freedesktop.org/wiki/Software/xlibs" +description = """xtrans includes a number of routines to make X implementations transport-independent; + at time of writing, it includes support for UNIX sockets, IPv4, IPv6, and DECnet. +""" + +toolchain = {'name': 'intel', 'version': '2016a'} + +sources = [SOURCE_TAR_GZ] +source_urls = [XORG_LIB_SOURCE] + +sanity_check_paths = { + 'files': ['include/X11/Xtrans/%s' % x for x in ['transport.c', 'Xtrans.c', 'Xtrans.h', 'Xtransint.h', + 'Xtranslcl.c', 'Xtranssock.c', 'Xtransutil.c']], + 'dirs': [], +} + +moduleclass = 'devel' diff --git a/y/YAML-Syck/YAML-Syck-1.27-goolf-1.4.10-Perl-5.16.3.eb b/y/YAML-Syck/YAML-Syck-1.27-goolf-1.4.10-Perl-5.16.3.eb new file mode 100644 index 00000000..04fcdaad --- /dev/null +++ b/y/YAML-Syck/YAML-Syck-1.27-goolf-1.4.10-Perl-5.16.3.eb @@ -0,0 +1,41 @@ +## +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# +# Copyright:: Copyright 2013 Uni.Lu/LCSB +# Authors:: Nils Christian +# License:: MIT/GPL +# $Id$ +# +## +easyblock = 'PerlModule' + +name = 'YAML-Syck' +version = '1.27' + +homepage = 'http://search.cpan.org/perldoc?YAML%3A%3ASyck' +description = """Fast, lightweight YAML loader and dumper. + This module provides a Perl interface to the libsyck data serialization library.""" + +toolchain = {'name': 'goolf', 'version': '1.4.10'} + +source_urls = ['http://www.cpan.org/modules/by-module/YAML'] +sources = [SOURCE_TAR_GZ] + +perl = 'Perl' +perlver = '5.16.3' +perlverextra = '' +versionsuffix = '-%s-%s%s' % (perl, perlver, perlverextra) + +dependencies = [ + (perl, perlver, perlverextra), +] + +options = {'modulename': 'YAML::Syck'} + +perlmajver = perlver.split('.')[0] +sanity_check_paths = { + 'files': [], + 'dirs': ['lib/perl%s/site_perl/%s/x86_64-linux-thread-multi/YAML' % (perlmajver, perlver)], +} + +moduleclass = 'data' diff --git a/y/YAML-Syck/YAML-Syck-1.27-ictce-4.1.13-Perl-5.16.3.eb b/y/YAML-Syck/YAML-Syck-1.27-ictce-4.1.13-Perl-5.16.3.eb new file mode 100644 index 00000000..814139aa --- /dev/null +++ b/y/YAML-Syck/YAML-Syck-1.27-ictce-4.1.13-Perl-5.16.3.eb @@ -0,0 +1,41 @@ +## +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# +# Copyright:: Copyright 2013 Uni.Lu/LCSB +# Authors:: Nils Christian +# License:: MIT/GPL +# $Id$ +# +## +easyblock = 'PerlModule' + +name = 'YAML-Syck' +version = '1.27' + +homepage = 'http://search.cpan.org/perldoc?YAML%3A%3ASyck' +description = """Fast, lightweight YAML loader and dumper. + This module provides a Perl interface to the libsyck data serialization library.""" + +toolchain = {'name': 'ictce', 'version': '4.1.13'} + +source_urls = ['http://www.cpan.org/modules/by-module/YAML'] +sources = [SOURCE_TAR_GZ] + +perl = 'Perl' +perlver = '5.16.3' +perlverextra = '' +versionsuffix = '-%s-%s%s' % (perl, perlver, perlverextra) + +dependencies = [ + (perl, perlver, perlverextra), +] + +options = {'modulename': 'YAML::Syck'} + +perlmajver = perlver.split('.')[0] +sanity_check_paths = { + 'files': [], + 'dirs': ['lib/perl%s/site_perl/%s/x86_64-linux-thread-multi/YAML' % (perlmajver, perlver)], +} + +moduleclass = 'data' diff --git a/y/YAML-Syck/YAML-Syck-1.27-ictce-5.3.0-Perl-5.16.3.eb b/y/YAML-Syck/YAML-Syck-1.27-ictce-5.3.0-Perl-5.16.3.eb new file mode 100644 index 00000000..4816f11f --- /dev/null +++ b/y/YAML-Syck/YAML-Syck-1.27-ictce-5.3.0-Perl-5.16.3.eb @@ -0,0 +1,41 @@ +## +# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild +# +# Copyright:: Copyright 2013 Uni.Lu/LCSB +# Authors:: Nils Christian +# License:: MIT/GPL +# $Id$ +# +## +easyblock = 'PerlModule' + +name = 'YAML-Syck' +version = '1.27' + +homepage = 'http://search.cpan.org/perldoc?YAML%3A%3ASyck' +description = """Fast, lightweight YAML loader and dumper. + This module provides a Perl interface to the libsyck data serialization library.""" + +toolchain = {'name': 'ictce', 'version': '5.3.0'} + +source_urls = ['http://www.cpan.org/modules/by-module/YAML'] +sources = [SOURCE_TAR_GZ] + +perl = 'Perl' +perlver = '5.16.3' +perlverextra = '' +versionsuffix = '-%s-%s%s' % (perl, perlver, perlverextra) + +dependencies = [ + (perl, perlver, perlverextra), +] + +options = {'modulename': 'YAML::Syck'} + +perlmajver = perlver.split('.')[0] +sanity_check_paths = { + 'files': [], + 'dirs': ['lib/perl%s/site_perl/%s/x86_64-linux-thread-multi/YAML' % (perlmajver, perlver)], +} + +moduleclass = 'data' diff --git a/y/Yade/Yade-1.20.0-foss-2016a-Python-2.7.11.eb b/y/Yade/Yade-1.20.0-foss-2016a-Python-2.7.11.eb new file mode 100644 index 00000000..f94f281e --- /dev/null +++ b/y/Yade/Yade-1.20.0-foss-2016a-Python-2.7.11.eb @@ -0,0 +1,60 @@ +easyblock = 'CMakeMake' + +name = 'Yade' +version = '1.20.0' +versionsuffix = '-Python-%(pyver)s' + +homepage = 'https://yade-dem.org/doc/' +description = """ Yade is an extensible open-source framework for discrete numerical models, + focused on Discrete Element Method. The computation parts are written in c++ using flexible object model, + allowing independent implementation of new alogrithms and interfaces. + Python is used for rapid and concise scene construction, simulation control, postprocessing and debugging. """ + +toolchain = {'name': 'foss', 'version': '2016a'} + +source_urls = ['https://launchpad.net/yade/trunk/yade-1.00.0/+download/'] +sources = [SOURCELOWER_TAR_GZ] + +mesaver = '11.2.1' +dependencies = [ + ('Boost', '1.60.0', versionsuffix), + ('CGAL', '4.8', versionsuffix), + ('Eigen', '3.2.7'), + ('GDB', '7.10.1', versionsuffix), + ('GL2PS', '1.3.9', '-Mesa-%s' % mesaver), + ('GTS', '0.7.6'), + ('IPython', '3.2.3', versionsuffix), + ('libQGLViewer', '2.6.3', '-Mesa-%s' % mesaver), + ('Loki', '0.1.7'), + ('matplotlib', '1.5.1', versionsuffix + '-freetype-2.6.3'), + ('minieigen', '0.5.3', versionsuffix), + ('PyGTS', '0.3.1', versionsuffix), + ('Python', '2.7.11'), + ('Qt', '4.8.7', '-GLib-2.48.0'), + ('SQLite', '3.9.2'), + ('VTK', '6.3.0', versionsuffix), + ('zlib', '1.2.8'), +] + +builddependencies = [('CMake', '3.5.2')] + +separate_build_dir = True + +configopts = '-DENABLE_GUI=OFF -DENABLE_LINSOLV=OFF -DENABLE_PFVFLOW=OFF ' +configopts += '-DCGAL_INCLUDE_DIR=$EBROOTCGAL/include ' +configopts += '-DGMP_INCLUDE_DIR=$EBROOTGMP/include -DGMP_LIBRARIES=$EBROOTGMP/lib -DGMPXX_LIBRARIES=$EBROOTGMP/lib ' + +modextrapaths = { + 'LD_LIBRARY_PATH': ['lib64/lib64/yade-%(version)s', 'lib/x86_64-linux-gnu/yade-%(version)s'], + 'LIBRARY_PATH': ['lib64/lib64/yade-%(version)s', 'lib/x86_64-linux-gnu/yade-%(version)s'], + 'PYTHONPATH': ['lib/x86_64-linux-gnu/yade-%(version)s/py', 'lib64/yade-%(version)s/py'], +} + +sanity_check_paths = { + 'files': ['bin/yade-%(version)s', 'bin/yade-%(version)s-batch', + ('lib/x86_64-linux-gnu/yade-%%(version)s/libyade.%s' % SHLIB_EXT, + 'lib64/yade-%%(version)s/libyade.%s' %SHLIB_EXT)], + 'dirs': [('lib/x86_64-linux-gnu/yade-%(version)s/py/yade', 'lib64/yade-%(version)s/py/yade')], +} + +moduleclass = 'devel' diff --git a/y/Yade/Yade-1.20.0-intel-2016a-Python-2.7.11.eb b/y/Yade/Yade-1.20.0-intel-2016a-Python-2.7.11.eb new file mode 100644 index 00000000..cecf209b --- /dev/null +++ b/y/Yade/Yade-1.20.0-intel-2016a-Python-2.7.11.eb @@ -0,0 +1,60 @@ +easyblock = 'CMakeMake' + +name = 'Yade' +version = '1.20.0' +versionsuffix = '-Python-%(pyver)s' + +homepage = 'https://yade-dem.org/doc/' +description = """ Yade is an extensible open-source framework for discrete numerical models, + focused on Discrete Element Method. The computation parts are written in c++ using flexible object model, + allowing independent implementation of new alogrithms and interfaces. + Python is used for rapid and concise scene construction, simulation control, postprocessing and debugging. """ + +toolchain = {'name': 'intel', 'version': '2016a'} + +source_urls = ['https://launchpad.net/yade/trunk/yade-1.00.0/+download/'] +sources = [SOURCELOWER_TAR_GZ] + +mesaver = '11.2.1' +dependencies = [ + ('Boost', '1.60.0', versionsuffix), + ('CGAL', '4.8', versionsuffix), + ('Eigen', '3.2.7'), + ('GDB', '7.10.1', versionsuffix), + ('GL2PS', '1.3.9', '-Mesa-%s' % mesaver), + ('GTS', '0.7.6'), + ('IPython', '3.2.3', versionsuffix), + ('libQGLViewer', '2.6.3', '-Mesa-%s' % mesaver), + ('Loki', '0.1.7'), + ('matplotlib', '1.5.1', versionsuffix + '-freetype-2.6.3'), + ('minieigen', '0.5.3', versionsuffix), + ('PyGTS', '0.3.1', versionsuffix), + ('Python', '2.7.11'), + ('Qt', '4.8.7', '-GLib-2.48.0'), + ('SQLite', '3.9.2'), + ('VTK', '6.3.0', versionsuffix), + ('zlib', '1.2.8'), +] + +builddependencies = [('CMake', '3.5.2')] + +separate_build_dir = True + +configopts = '-DENABLE_GUI=OFF -DENABLE_LINSOLV=OFF -DENABLE_PFVFLOW=OFF ' +configopts += '-DCGAL_INCLUDE_DIR=$EBROOTCGAL/include ' +configopts += '-DGMP_INCLUDE_DIR=$EBROOTGMP/include -DGMP_LIBRARIES=$EBROOTGMP/lib -DGMPXX_LIBRARIES=$EBROOTGMP/lib ' + +modextrapaths = { + 'LD_LIBRARY_PATH': ['lib64/lib64/yade-%(version)s', 'lib/x86_64-linux-gnu/yade-%(version)s'], + 'LIBRARY_PATH': ['lib64/lib64/yade-%(version)s', 'lib/x86_64-linux-gnu/yade-%(version)s'], + 'PYTHONPATH': ['lib/x86_64-linux-gnu/yade-%(version)s/py', 'lib64/yade-%(version)s/py'], +} + +sanity_check_paths = { + 'files': ['bin/yade-%(version)s', 'bin/yade-%(version)s-batch', + ('lib/x86_64-linux-gnu/yade-%%(version)s/libyade.%s' % SHLIB_EXT, + 'lib64/yade-%%(version)s/libyade.%s' %SHLIB_EXT)], + 'dirs': [('lib/x86_64-linux-gnu/yade-%(version)s/py/yade', 'lib64/yade-%(version)s/py/yade')], +} + +moduleclass = 'devel' diff --git a/y/Yade/Yade-2016.06a-foss-2016b-Python-2.7.12.eb b/y/Yade/Yade-2016.06a-foss-2016b-Python-2.7.12.eb new file mode 100644 index 00000000..541a3b67 --- /dev/null +++ b/y/Yade/Yade-2016.06a-foss-2016b-Python-2.7.12.eb @@ -0,0 +1,63 @@ +easyblock = 'CMakeMake' + +name = 'Yade' +version = '2016.06a' +versionsuffix = '-Python-%(pyver)s' + +homepage = 'https://yade-dem.org/doc/' +description = """ Yade is an extensible open-source framework for discrete numerical models, + focused on Discrete Element Method. The computation parts are written in c++ using flexible object model, + allowing independent implementation of new alogrithms and interfaces. + Python is used for rapid and concise scene construction, simulation control, postprocessing and debugging. """ + +toolchain = {'name': 'foss', 'version': '2016b'} + +source_urls = ['https://launchpad.net/yade/trunk/yade-1.00.0/+download/'] +sources = [SOURCELOWER_TAR_GZ] +patches = ['Yade-%(version)s_include-signal.patch'] + +dependencies = [ + ('Boost', '1.61.0', versionsuffix), + ('bzip2', '1.0.6'), + ('CGAL', '4.8.1', versionsuffix), + ('GDB', '7.11.1', versionsuffix), + ('GL2PS', '1.3.9'), + ('GTS', '0.7.6'), + ('IPython', '5.1.0', versionsuffix), + ('libQGLViewer', '2.6.3'), + ('Loki', '0.1.7'), + ('matplotlib', '1.5.2', versionsuffix), + ('minieigen', '0.5.3', versionsuffix), + ('PyGTS', '0.3.1', versionsuffix), + ('Python', '2.7.12'), + ('Qt5', '5.7.0'), + ('SQLite', '3.13.0'), + ('VTK', '6.3.0', versionsuffix), + ('zlib', '1.2.8'), +] + +builddependencies = [ + ('CMake', '3.6.1'), + ('Eigen', '3.2.9'), +] + +separate_build_dir = True + +configopts = '-DENABLE_GUI=OFF -DENABLE_LINSOLV=OFF -DENABLE_PFVFLOW=OFF ' +configopts += '-DCGAL_INCLUDE_DIR=$EBROOTCGAL/include ' +configopts += '-DGMP_INCLUDE_DIR=$EBROOTGMP/include -DGMP_LIBRARIES=$EBROOTGMP/lib -DGMPXX_LIBRARIES=$EBROOTGMP/lib ' + +modextrapaths = { + 'LD_LIBRARY_PATH': ['lib64/lib64/yade-%(version)s', 'lib/x86_64-linux-gnu/yade-%(version)s'], + 'LIBRARY_PATH': ['lib64/lib64/yade-%(version)s', 'lib/x86_64-linux-gnu/yade-%(version)s'], + 'PYTHONPATH': ['lib/x86_64-linux-gnu/yade-%(version)s/py', 'lib64/yade-%(version)s/py'], +} + +sanity_check_paths = { + 'files': ['bin/yade-%(version)s', 'bin/yade-%(version)s-batch', + ('lib/x86_64-linux-gnu/yade-%%(version)s/libyade.%s' % SHLIB_EXT, + 'lib64/yade-%%(version)s/libyade.%s' % SHLIB_EXT)], + 'dirs': [('lib/x86_64-linux-gnu/yade-%(version)s/py/yade', 'lib64/yade-%(version)s/py/yade')], +} + +moduleclass = 'devel' diff --git a/y/Yade/Yade-2016.06a-intel-2016b-Python-2.7.12.eb b/y/Yade/Yade-2016.06a-intel-2016b-Python-2.7.12.eb new file mode 100644 index 00000000..1c86ea98 --- /dev/null +++ b/y/Yade/Yade-2016.06a-intel-2016b-Python-2.7.12.eb @@ -0,0 +1,62 @@ +easyblock = 'CMakeMake' + +name = 'Yade' +version = '2016.06a' +versionsuffix = '-Python-%(pyver)s' + +homepage = 'https://yade-dem.org/doc/' +description = """ Yade is an extensible open-source framework for discrete numerical models, + focused on Discrete Element Method. The computation parts are written in c++ using flexible object model, + allowing independent implementation of new alogrithms and interfaces. + Python is used for rapid and concise scene construction, simulation control, postprocessing and debugging. """ + +toolchain = {'name': 'intel', 'version': '2016b'} + +source_urls = ['https://launchpad.net/yade/trunk/yade-1.00.0/+download/'] +sources = [SOURCELOWER_TAR_GZ] +patches = ['Yade-%(version)s_include-signal.patch'] + +dependencies = [ + ('Boost', '1.61.0', versionsuffix), + ('CGAL', '4.8.1', versionsuffix), + ('GDB', '7.11.1', versionsuffix), + ('GL2PS', '1.3.9'), + ('GTS', '0.7.6'), + ('IPython', '5.1.0', versionsuffix), + ('libQGLViewer', '2.6.3'), + ('Loki', '0.1.7'), + ('matplotlib', '1.5.2', versionsuffix), + ('minieigen', '0.5.3', versionsuffix), + ('PyGTS', '0.3.1', versionsuffix), + ('Python', '2.7.12'), + ('Qt5', '5.7.0'), + ('SQLite', '3.13.0'), + ('VTK', '6.3.0', versionsuffix), + ('zlib', '1.2.8'), +] + +builddependencies = [ + ('CMake', '3.6.1'), + ('Eigen', '3.2.9'), +] + +separate_build_dir = True + +configopts = '-DENABLE_GUI=OFF -DENABLE_LINSOLV=OFF -DENABLE_PFVFLOW=OFF ' +configopts += '-DCGAL_INCLUDE_DIR=$EBROOTCGAL/include ' +configopts += '-DGMP_INCLUDE_DIR=$EBROOTGMP/include -DGMP_LIBRARIES=$EBROOTGMP/lib -DGMPXX_LIBRARIES=$EBROOTGMP/lib ' + +modextrapaths = { + 'LD_LIBRARY_PATH': ['lib64/lib64/yade-%(version)s', 'lib/x86_64-linux-gnu/yade-%(version)s'], + 'LIBRARY_PATH': ['lib64/lib64/yade-%(version)s', 'lib/x86_64-linux-gnu/yade-%(version)s'], + 'PYTHONPATH': ['lib/x86_64-linux-gnu/yade-%(version)s/py', 'lib64/yade-%(version)s/py'], +} + +sanity_check_paths = { + 'files': ['bin/yade-%(version)s', 'bin/yade-%(version)s-batch', + ('lib/x86_64-linux-gnu/yade-%%(version)s/libyade.%s' % SHLIB_EXT, + 'lib64/yade-%%(version)s/libyade.%s' % SHLIB_EXT)], + 'dirs': [('lib/x86_64-linux-gnu/yade-%(version)s/py/yade', 'lib64/yade-%(version)s/py/yade')], +} + +moduleclass = 'devel' diff --git a/y/Yambo/Yambo-3.4.2-intel-2016.02-GCC-4.9.eb b/y/Yambo/Yambo-3.4.2-intel-2016.02-GCC-4.9.eb new file mode 100644 index 00000000..d3ce57ae --- /dev/null +++ b/y/Yambo/Yambo-3.4.2-intel-2016.02-GCC-4.9.eb @@ -0,0 +1,38 @@ +easyblock = 'MakeCp' + +name = 'Yambo' +version = '3.4.2' + +homepage = 'http://www.yambo-code.org' +description = """Yambo is a FORTRAN/C code for Many-Body calculations in solid state and molecular physics. + Yambo relies on the Kohn-Sham wavefunctions generated by two DFT public codes: abinit, and PWscf.""" + +toolchain = {'name': 'intel', 'version': '2016.02-GCC-4.9'} +toolchainopts = {'usempi': True} + +sources = [SOURCELOWER_TGZ] +source_urls = ['http://qe-forge.org/gf/download/frsrelease/208/932/'] +checksums = ['f0820a0f42dfc81ce3811af647bed777'] + +dependencies = [('netCDF-Fortran', '4.4.2')] + +with_configure = 'True' + +configopts = 'CPPFLAGS="" FCFLAGS="-nofor_main" --with-blas-libs="$LIBBLAS" ' +configopts += '--with-lapack-libs="$LIBLAPACK" --with-blacs-libs="$LIBBLACS" ' +configopts += '--with-scalapack-libs="$LIBSCALAPACK" --with-fft-libs="$LIBFFT" ' +configopts += '--with-netcdf-libs="-lnetcdff -lnetcdf"' + +buildopts = 'all' + +parallel = 1 + +files_to_copy = [(['bin/*'], 'bin')] + +sanity_check_paths = { + 'files': ['bin/'+prog for prog in ['a2y', 'iotk', 'iotk.x', 'p2y', 'yambo', + 'yambo_kerr', 'yambo_ph', 'yambo_surf', 'ypp', 'ypp_ph', 'ypp_surf']], + 'dirs': [] +} + +moduleclass = 'phys' diff --git a/z/ZeroMQ/ZeroMQ-4.2.0-foss-2016b.eb b/z/ZeroMQ/ZeroMQ-4.2.0-foss-2016b.eb new file mode 100644 index 00000000..2e2077d5 --- /dev/null +++ b/z/ZeroMQ/ZeroMQ-4.2.0-foss-2016b.eb @@ -0,0 +1,36 @@ +easyblock = 'ConfigureMake' + +name = 'ZeroMQ' +version = '4.2.0' + +homepage = 'http://www.zeromq.org/' +description = """ZeroMQ looks like an embeddable networking library but acts like a concurrency framework. + It gives you sockets that carry atomic messages across various transports like in-process, + inter-process, TCP, and multicast. You can connect sockets N-to-N with patterns like fanout, + pub-sub, task distribution, and request-reply. It's fast enough to be the fabric for clustered + products. Its asynchronous I/O model gives you scalable multicore applications, built as asynchronous + message-processing tasks. It has a score of language APIs and runs on most operating systems.""" + +toolchain = {'name': 'foss', 'version': '2016b'} + +source_urls = ['https://github.com/zeromq/libzmq/releases/download/v%(version)s/'] +sources = [SOURCELOWER_TAR_GZ] +checksums=['1fb2595d2a905a9e820c976a1d8348bc'] + +# --with-pgm will use shipped OpenPGM (in foreign subdir) +configopts = '--with-pic --with-system-pgm ' +configopts += 'OpenPGM_CFLAGS="-I$EBROOTOPENPGM/include/pgm-${EBVERSIONOPENPGM%.*}" ' +configopts += 'OpenPGM_LIBS="-L$EBROOTOPENPGM/lib -lpgm -lrt -lpthread -lm" ' + +dependencies = [ + ('OpenPGM', '5.2.122'), + ('util-linux', '2.29'), + ('libsodium', '1.0.11'), +] + +sanity_check_paths = { + 'files': ['lib/libzmq.so', 'lib/libzmq.a'], + 'dirs': ['include', 'lib'], +} + +moduleclass = 'devel' diff --git a/z/ZeroMQ/ZeroMQ-4.2.0-intel-2016b.eb b/z/ZeroMQ/ZeroMQ-4.2.0-intel-2016b.eb new file mode 100644 index 00000000..b5d9aa81 --- /dev/null +++ b/z/ZeroMQ/ZeroMQ-4.2.0-intel-2016b.eb @@ -0,0 +1,36 @@ +easyblock = 'ConfigureMake' + +name = 'ZeroMQ' +version = '4.2.0' + +homepage = 'http://www.zeromq.org/' +description = """ZeroMQ looks like an embeddable networking library but acts like a concurrency framework. + It gives you sockets that carry atomic messages across various transports like in-process, + inter-process, TCP, and multicast. You can connect sockets N-to-N with patterns like fanout, + pub-sub, task distribution, and request-reply. It's fast enough to be the fabric for clustered + products. Its asynchronous I/O model gives you scalable multicore applications, built as asynchronous + message-processing tasks. It has a score of language APIs and runs on most operating systems.""" + +toolchain = {'name': 'intel', 'version': '2016b'} + +source_urls = ['https://github.com/zeromq/libzmq/releases/download/v%(version)s/'] +sources = [SOURCELOWER_TAR_GZ] +checksums=['1fb2595d2a905a9e820c976a1d8348bc'] + +# --with-pgm will use shipped OpenPGM (in foreign subdir) +configopts = '--with-pic --with-system-pgm ' +configopts += 'OpenPGM_CFLAGS="-I$EBROOTOPENPGM/include/pgm-${EBVERSIONOPENPGM%.*}" ' +configopts += 'OpenPGM_LIBS="-L$EBROOTOPENPGM/lib -lpgm -lrt -lpthread -lm" ' + +dependencies = [ + ('OpenPGM', '5.2.122'), + ('util-linux', '2.29'), + ('libsodium', '1.0.11'), +] + +sanity_check_paths = { + 'files': ['lib/libzmq.so', 'lib/libzmq.a'], + 'dirs': ['include', 'lib'], +} + +moduleclass = 'devel' diff --git a/z/zlib/zlib-1.2.11-foss-2017a.eb b/z/zlib/zlib-1.2.11-foss-2017a.eb new file mode 100644 index 00000000..b6a45825 --- /dev/null +++ b/z/zlib/zlib-1.2.11-foss-2017a.eb @@ -0,0 +1,22 @@ +easyblock = 'ConfigureMake' + +name = 'zlib' +version = '1.2.11' + +homepage = 'http://www.zlib.net/' +description = """zlib is designed to be a free, general-purpose, legally unencumbered -- that is, + not covered by any patents -- lossless data-compression library for use on virtually any + computer hardware and operating system.""" + +toolchain = {'name': 'foss', 'version': '2017a'} +toolchainopts = {'pic': True} + +sources = [SOURCELOWER_TAR_GZ] +source_urls = [('http://sourceforge.net/projects/libpng/files/zlib/%(version)s', 'download')] + +sanity_check_paths = { + 'files': ['include/zconf.h', 'include/zlib.h', 'lib/libz.a', 'lib/libz.%s' % SHLIB_EXT], + 'dirs': [], +} + +moduleclass = 'lib' diff --git a/z/zlib/zlib-1.2.11.eb b/z/zlib/zlib-1.2.11.eb new file mode 100644 index 00000000..674bc832 --- /dev/null +++ b/z/zlib/zlib-1.2.11.eb @@ -0,0 +1,22 @@ +easyblock = 'ConfigureMake' + +name = 'zlib' +version = '1.2.11' + +homepage = 'http://www.zlib.net/' +description = """zlib is designed to be a free, general-purpose, legally unencumbered -- that is, + not covered by any patents -- lossless data-compression library for use on virtually any + computer hardware and operating system.""" + +toolchain = {'name': 'dummy', 'version': ''} +toolchainopts = {'pic': True} + +source_urls = ['http://zlib.net/fossils'] +sources = [SOURCELOWER_TAR_GZ] + +sanity_check_paths = { + 'files': ['include/zconf.h', 'include/zlib.h', 'lib/libz.a', 'lib/libz.%s' % SHLIB_EXT], + 'dirs': [], +} + +moduleclass = 'lib' diff --git a/z/zlib/zlib-1.2.7-goolf-1.5.16.eb b/z/zlib/zlib-1.2.7-goolf-1.5.16.eb new file mode 100644 index 00000000..c9dc474f --- /dev/null +++ b/z/zlib/zlib-1.2.7-goolf-1.5.16.eb @@ -0,0 +1,22 @@ +easyblock = 'ConfigureMake' + +name = 'zlib' +version = '1.2.7' + +homepage = 'http://www.zlib.net/' +description = """zlib is designed to be a free, general-purpose, legally unencumbered -- that is, +not covered by any patents -- lossless data-compression library for use on virtually any +computer hardware and operating system.""" + +toolchain = {'name': 'goolf', 'version': '1.5.16'} +toolchainopts = {'optarch': True, 'pic': True} + +sources = [SOURCELOWER_TAR_GZ] +source_urls = [('http://sourceforge.net/projects/libpng/files/zlib/%(version)s', 'download')] + +sanity_check_paths = { + 'files': ['include/zconf.h', 'include/zlib.h', 'lib/libz.a', 'lib/libz.%s' % SHLIB_EXT], + 'dirs': [], +} + +moduleclass = 'lib' diff --git a/z/zlib/zlib-1.2.7-intel-2015b.eb b/z/zlib/zlib-1.2.7-intel-2015b.eb new file mode 100644 index 00000000..f1b569b8 --- /dev/null +++ b/z/zlib/zlib-1.2.7-intel-2015b.eb @@ -0,0 +1,48 @@ +# Built with EasyBuild version 2.1.1 on 2015-06-29_20-47-57 +easyblock = 'ConfigureMake' + +name = 'zlib' +version = '1.2.7' + +homepage = 'http://www.zlib.net/' +description = """zlib is designed to be a free, general-purpose, legally unencumbered -- that is, + not covered by any patents -- lossless data-compression library for use on virtually any + computer hardware and operating system.""" + +toolchain = {'name': 'intel', 'version': '2015b'} +toolchainopts = {'optarch': True, 'pic': True} + +sources = [SOURCELOWER_TAR_GZ] +source_urls = [('http://sourceforge.net/projects/libpng/files/zlib/%(version)s', 'download')] + +sanity_check_paths = { + 'files': ['include/zconf.h', 'include/zlib.h', 'lib/libz.a', 'lib/libz.so'], + 'dirs': [], +} + +moduleclass = 'lib' + +# Build statistics +buildstats = [{ + "easybuild-framework_version": "2.1.1", + "easybuild-easyblocks_version": "2.1.1", + "timestamp": 1435603677, + "build_time": 7.24, + "install_size": 591393, + "command_line": ['--buildpath=/easybuild/build', '--force', '--installpath=/apps', '--installpath-modules=/apps/modules', '--installpath-software=/apps', '--module-naming-scheme=IT4IModuleNamingScheme', '--modules-footer=/easybuild/templates/modules/jas02_footer.txt', '--repositorypath=/easybuild/file-repository', '--robot=/easybuild/easyconfigs-salomon/easybuild/easyconfigs', '--robot-paths=/easybuild/easyconfigs-salomon/easybuild/easyconfigs', '--sourcepath=/easybuild/sources', '--try-toolchain="[\'intel\', \'2015b\']"', 'R-3.1.1-ictce-5.5.0.eb'], + "modules_tool": ('EnvironmentModulesC', '/usr/bin/modulecmd', '3.2.10'), + "core_count": 28, + "cpu_model": "Intel(R) Xeon(R) CPU E5-2695 v3 @ 2.30GHz", + "cpu_speed": 2300.097, + "cpu_vendor": "Intel", + "gcc_version": "Using built-in specs.; COLLECT_GCC=gcc; COLLECT_LTO_WRAPPER=/apps/all/GCC/5.1.0-binutils-2.25/libexec/gcc/x86_64-unknown-linux-gnu/5.1.0/lto-wrapper; Target: x86_64-unknown-linux-gnu; Configured with: ../configure --enable-languages=c,c++,fortran --enable-lto --enable-checking=release --disable-multilib --enable-shared=yes --enable-static=yes --enable-threads=posix --enable-gold=default --enable-plugins --enable-ld --with-plugin-ld=ld.gold --prefix=/apps/all/GCC/5.1.0-binutils-2.25 --with-local-prefix=/apps/all/GCC/5.1.0-binutils-2.25 --enable-bootstrap --with-isl=/easybuild/build/GCC/5.1.0/dummy--binutils-2.25/gcc-5.1.0/stage2_stuff; Thread model: posix; gcc version 5.1.0 (GCC) ; ", + "glibc_version": "2.12", + "hostname": "login3", + "os_name": "centos", + "os_type": "Linux", + "os_version": "6.6", + "platform_name": "x86_64-unknown-linux", + "python_version": "2.6.6 (r266:84292, Jan 22 2014, 09:42:36) ; [GCC 4.4.7 20120313 (Red Hat 4.4.7-4)]", + "system_gcc_path": "/apps/all/GCC/5.1.0-binutils-2.25/bin/gcc", + "system_python_path": "/usr/bin/python", +}] diff --git a/z/zlib/zlib-1.2.8-CrayGNU-2015.06.eb b/z/zlib/zlib-1.2.8-CrayGNU-2015.06.eb new file mode 100644 index 00000000..9daa7bba --- /dev/null +++ b/z/zlib/zlib-1.2.8-CrayGNU-2015.06.eb @@ -0,0 +1,22 @@ +easyblock = 'ConfigureMake' + +name = 'zlib' +version = '1.2.8' + +homepage = 'http://www.zlib.net/' +description = """zlib is designed to be a free, general-purpose, legally unencumbered -- that is, + not covered by any patents -- lossless data-compression library for use on virtually any + computer hardware and operating system.""" + +toolchain = {'name': 'CrayGNU', 'version': '2015.06'} +toolchainopts = {'pic': True, } + +sources = [SOURCELOWER_TAR_GZ] +source_urls = [('http://sourceforge.net/projects/libpng/files/zlib/%(version)s', 'download')] + +sanity_check_paths = { + 'files': ['include/zconf.h', 'include/zlib.h', 'lib/libz.a', 'lib/libz.%s' % SHLIB_EXT], + 'dirs': [], +} + +moduleclass = 'lib' diff --git a/z/zlib/zlib-1.2.8-CrayGNU-2015.11.eb b/z/zlib/zlib-1.2.8-CrayGNU-2015.11.eb new file mode 100644 index 00000000..ec75812a --- /dev/null +++ b/z/zlib/zlib-1.2.8-CrayGNU-2015.11.eb @@ -0,0 +1,22 @@ +easyblock = 'ConfigureMake' + +name = 'zlib' +version = '1.2.8' + +homepage = 'http://www.zlib.net/' +description = """zlib is designed to be a free, general-purpose, legally unencumbered -- that is, + not covered by any patents -- lossless data-compression library for use on virtually any + computer hardware and operating system.""" + +toolchain = {'name': 'CrayGNU', 'version': '2015.11'} +toolchainopts = {'pic': True, } + +sources = [SOURCELOWER_TAR_GZ] +source_urls = [('http://sourceforge.net/projects/libpng/files/zlib/%(version)s', 'download')] + +sanity_check_paths = { + 'files': ['include/zconf.h', 'include/zlib.h', 'lib/libz.a', 'lib/libz.%s' % SHLIB_EXT], + 'dirs': [], +} + +moduleclass = 'lib' diff --git a/z/zlib/zlib-1.2.8-CrayGNU-2016.03.eb b/z/zlib/zlib-1.2.8-CrayGNU-2016.03.eb new file mode 100644 index 00000000..20e9ee08 --- /dev/null +++ b/z/zlib/zlib-1.2.8-CrayGNU-2016.03.eb @@ -0,0 +1,22 @@ +easyblock = 'ConfigureMake' + +name = 'zlib' +version = '1.2.8' + +homepage = 'http://www.zlib.net/' +description = """zlib is designed to be a free, general-purpose, legally unencumbered -- that is, + not covered by any patents -- lossless data-compression library for use on virtually any + computer hardware and operating system.""" + +toolchain = {'name': 'CrayGNU', 'version': '2016.03'} +toolchainopts = {'pic': True, } + +sources = [SOURCELOWER_TAR_GZ] +source_urls = [('http://sourceforge.net/projects/libpng/files/zlib/%(version)s', 'download')] + +sanity_check_paths = { + 'files': ['include/zconf.h', 'include/zlib.h', 'lib/libz.a', 'lib/libz.%s' % SHLIB_EXT], + 'dirs': [], +} + +moduleclass = 'lib' diff --git a/z/zlib/zlib-1.2.8-GCC-4.4.7-system.eb b/z/zlib/zlib-1.2.8-GCC-4.4.7-system.eb new file mode 100644 index 00000000..cecaf89d --- /dev/null +++ b/z/zlib/zlib-1.2.8-GCC-4.4.7-system.eb @@ -0,0 +1,22 @@ +easyblock = 'ConfigureMake' + +name = 'zlib' +version = '1.2.8' + +homepage = 'http://www.zlib.net/' +description = """zlib is designed to be a free, general-purpose, legally unencumbered -- that is, + not covered by any patents -- lossless data-compression library for use on virtually any + computer hardware and operating system.""" + +toolchain = {'name': 'GCC', 'version': '4.4.7-system'} +toolchainopts = {'pic': True} + +sources = [SOURCELOWER_TAR_GZ] +source_urls = [('http://sourceforge.net/projects/libpng/files/zlib/%(version)s', 'download')] + +sanity_check_paths = { + 'files': ['include/zconf.h', 'include/zlib.h', 'lib/libz.a', 'lib/libz.%s' % SHLIB_EXT], + 'dirs': [], +} + +moduleclass = 'lib' diff --git a/z/zlib/zlib-1.2.8-GNU-5.1.0-2.25.eb b/z/zlib/zlib-1.2.8-GNU-5.1.0-2.25.eb new file mode 100644 index 00000000..c1599c89 --- /dev/null +++ b/z/zlib/zlib-1.2.8-GNU-5.1.0-2.25.eb @@ -0,0 +1,24 @@ +# Built with EasyBuild version 2.1.1 on 2015-07-07_13-38-45 +# Built with EasyBuild version 2.1.1 on 2015-06-29_22-19-07 +easyblock = 'ConfigureMake' + +name = 'zlib' +version = '1.2.8' + +homepage = 'http://www.zlib.net/' +description = """zlib is designed to be a free, general-purpose, legally unencumbered -- that is, + not covered by any patents -- lossless data-compression library for use on virtually any + computer hardware and operating system.""" + +toolchain = {'name': 'GNU', 'version': '5.1.0-2.25'} +toolchainopts = {'optarch': True, 'pic': True} + +sources = [SOURCELOWER_TAR_GZ] +source_urls = [('http://sourceforge.net/projects/libpng/files/zlib/%(version)s', 'download')] + +sanity_check_paths = { + 'files': ['include/zconf.h', 'include/zlib.h', 'lib/libz.a', 'lib/libz.so'], + 'dirs': [], +} + +moduleclass = 'lib' diff --git a/z/zlib/zlib-1.2.8-foss-2015g.eb b/z/zlib/zlib-1.2.8-foss-2015g.eb new file mode 100644 index 00000000..610451c6 --- /dev/null +++ b/z/zlib/zlib-1.2.8-foss-2015g.eb @@ -0,0 +1,21 @@ +easyblock = 'ConfigureMake' + +name = 'zlib' +version = '1.2.8' + +homepage = 'http://www.zlib.net/' +description = """zlib is designed to be a free, general-purpose, legally unencumbered -- that is, + not covered by any patents -- lossless data-compression library for use on virtually any + computer hardware and operating system.""" + +toolchain = {'name': 'foss', 'version': '2015g'} + +sources = [SOURCELOWER_TAR_GZ] +source_urls = [('http://sourceforge.net/projects/libpng/files/zlib/%(version)s', 'download')] + +sanity_check_paths = { + 'files': ['include/zconf.h', 'include/zlib.h', 'lib/libz.a', 'lib/libz.so'], + 'dirs': [], +} + +moduleclass = 'lib' diff --git a/z/zlib/zlib-1.2.8-gompi-2015e.eb b/z/zlib/zlib-1.2.8-gompi-2015e.eb new file mode 100644 index 00000000..450c6eff --- /dev/null +++ b/z/zlib/zlib-1.2.8-gompi-2015e.eb @@ -0,0 +1,22 @@ +easyblock = 'ConfigureMake' + +name = 'zlib' +version = '1.2.8' + +homepage = 'http://www.zlib.net/' +description = """zlib is designed to be a free, general-purpose, legally unencumbered -- that is, + not covered by any patents -- lossless data-compression library for use on virtually any + computer hardware and operating system.""" + +toolchain = {'name': 'gompi', 'version': '2015e'} +toolchainopts = {'optarch': True, 'pic': True} + +sources = [SOURCELOWER_TAR_GZ] +source_urls = [('http://sourceforge.net/projects/libpng/files/zlib/%(version)s', 'download')] + +sanity_check_paths = { + 'files': ['include/zconf.h', 'include/zlib.h', 'lib/libz.a', 'lib/libz.so'], + 'dirs': [], +} + +moduleclass = 'lib' diff --git a/z/zlib/zlib-1.2.8-intel-2017.00.eb b/z/zlib/zlib-1.2.8-intel-2017.00.eb new file mode 100644 index 00000000..678d6c56 --- /dev/null +++ b/z/zlib/zlib-1.2.8-intel-2017.00.eb @@ -0,0 +1,22 @@ +easyblock = 'ConfigureMake' + +name = 'zlib' +version = '1.2.8' + +homepage = 'http://www.zlib.net/' +description = """zlib is designed to be a free, general-purpose, legally unencumbered -- that is, + not covered by any patents -- lossless data-compression library for use on virtually any + computer hardware and operating system.""" + +toolchain = {'name': 'intel', 'version': '2017.00'} +toolchainopts = {'pic': True} + +sources = [SOURCELOWER_TAR_GZ] +source_urls = [('http://sourceforge.net/projects/libpng/files/zlib/%(version)s', 'download')] + +sanity_check_paths = { + 'files': ['include/zconf.h', 'include/zlib.h', 'lib/libz.a', 'lib/libz.%s' % SHLIB_EXT], + 'dirs': [], +} + +moduleclass = 'lib' diff --git a/z/zlib/zlib-1.2.8.eb b/z/zlib/zlib-1.2.8.eb new file mode 100644 index 00000000..82a1155e --- /dev/null +++ b/z/zlib/zlib-1.2.8.eb @@ -0,0 +1,25 @@ +easyblock = 'ConfigureMake' + +name = 'zlib' +version = '1.2.8' + +homepage = 'http://www.zlib.net/' +description = """zlib is designed to be a free, general-purpose, legally unencumbered -- that is, + not covered by any patents -- lossless data-compression library for use on virtually any + computer hardware and operating system.""" + +toolchain = {'name': 'dummy', 'version': 'dummy'} + +sources = [SOURCELOWER_TAR_GZ] +source_urls = [('http://sourceforge.net/projects/libpng/files/zlib/%(version)s', 'download')] + +# need to take care of $CFLAGS ourselves with dummy toolchain +# we need to add -fPIC, but should also include -O* option to avoid compiling with -O0 (default for GCC) +buildopts = 'CFLAGS="-O2 -fPIC"' + +sanity_check_paths = { + 'files': ['include/zconf.h', 'include/zlib.h', 'lib/libz.a', 'lib/libz.%s' % SHLIB_EXT], + 'dirs': [], +} + +moduleclass = 'lib'