diff --git a/Custom_EasyBlocks/README.md b/Custom_EasyBlocks/README.md index 6598a6a759dfead38a2f8443d1b7b2abf83f8ea2..167229221cf02ec433b710b9a3bf0498e4d4876d 100644 --- a/Custom_EasyBlocks/README.md +++ b/Custom_EasyBlocks/README.md @@ -53,3 +53,10 @@ Overview of the custom EasyBlocks. - __*needed because*__ we offer more functionality compared to upstream - __*difference compared to upstream*__ upstream has not yet an EasyBlock for julia, juliabundle and juliapackage - __*can not be removed*__ once merged with upstream + +## VMD +- __*added by*__ j.goebbert +- __*needed because*__ we replaced the Mesa module by our own OpenGL module compared to upstream +- __*difference compared to upstream*__ upstream checks for Mesa inside the easyblock +- __*can not be removed*__ once upstream uses our OpenGL module + diff --git a/Custom_EasyBlocks/vmd.py b/Custom_EasyBlocks/vmd.py new file mode 100644 index 0000000000000000000000000000000000000000..dd01da3db3b33d75b8a2dbbfc0142ed8d018e5cd --- /dev/null +++ b/Custom_EasyBlocks/vmd.py @@ -0,0 +1,236 @@ +## +# Copyright 2009-2021 Ghent University +# Copyright 2015-2021 Stanford University +# +# This file is part of EasyBuild, +# originally created by the HPC team of Ghent University (http://ugent.be/hpc/en), +# with support of Ghent University (http://ugent.be/hpc), +# the Flemish Supercomputer Centre (VSC) (https://vscentrum.be/nl/en), +# the Hercules foundation (http://www.herculesstichting.be/in_English) +# and the Department of Economy, Science and Innovation (EWI) (http://www.ewi-vlaanderen.be/en). +# +# https://github.com/easybuilders/easybuild +# +# EasyBuild is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation v2. +# +# EasyBuild is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with EasyBuild. If not, see <http://www.gnu.org/licenses/>. +## +""" +EasyBuild support for VMD, implemented as an easyblock + +@author: Stephane Thiell (Stanford University) +@author: Kenneth Hoste (HPC-UGent) +""" +import os + +from distutils.version import LooseVersion +from easybuild.easyblocks.generic.configuremake import ConfigureMake +from easybuild.easyblocks.generic.pythonpackage import det_pylibdir +from easybuild.tools.build_log import EasyBuildError +from easybuild.tools.filetools import change_dir, copy_file, extract_file +from easybuild.tools.run import run_cmd +from easybuild.tools.modules import get_software_root, get_software_version +import easybuild.tools.environment as env +import easybuild.tools.toolchain as toolchain + + +class EB_VMD(ConfigureMake): + """Easyblock for building and installing VMD""" + + def __init__(self, *args, **kwargs): + """Initialize VMD-specific variables.""" + super(EB_VMD, self).__init__(*args, **kwargs) + # source tarballs contains a 'plugins' and 'vmd-<version>' directory + self.vmddir = os.path.join(self.builddir, '%s-%s' % (self.name.lower(), self.version)) + self.surf_dir = os.path.join(self.vmddir, 'lib', 'surf') + self.stride_dir = os.path.join(self.vmddir, 'lib', 'stride') + + def extract_step(self): + """Custom extract step for VMD.""" + super(EB_VMD, self).extract_step() + + if LooseVersion(self.version) >= LooseVersion("1.9.3"): + change_dir(self.surf_dir) + srcdir = extract_file('surf.tar.Z', os.getcwd(), change_into_dir=False) + change_dir(srcdir) + + def configure_step(self): + """ + Configure VMD for building. + """ + # make sure required dependencies are available + deps = {} + for dep in ['FLTK', 'OpenGL', 'netCDF', 'Python', 'Tcl', 'Tk']: + deps[dep] = get_software_root(dep) + if deps[dep] is None: + raise EasyBuildError("Required dependency %s is missing", dep) + + # optional dependencies + for dep in ['ACTC', 'CUDA', 'OptiX']: + deps[dep] = get_software_root(dep) + + # specify Tcl/Tk locations & libraries + tclinc = os.path.join(deps['Tcl'], 'include') + tcllib = os.path.join(deps['Tcl'], 'lib') + env.setvar('TCL_INCLUDE_DIR', tclinc) + env.setvar('TCL_LIBRARY_DIR', tcllib) + + env.setvar('TK_INCLUDE_DIR', os.path.join(deps['Tk'], 'include')) + env.setvar('TK_LIBRARY_DIR', os.path.join(deps['Tk'], 'lib')) + + tclshortver = '.'.join(get_software_version('Tcl').split('.')[:2]) + self.cfg.update('buildopts', 'TCLLDFLAGS="-ltcl%s"' % tclshortver) + + # Netcdf locations + netcdfinc = os.path.join(deps['netCDF'], 'include') + netcdflib = os.path.join(deps['netCDF'], 'lib') + + # Python locations + pyver = get_software_version('Python') + pymajver = pyver.split('.')[0] + out, ec = run_cmd("python -c 'import sysconfig; print(sysconfig.get_path(\"include\"))'", simple=False) + if ec: + raise EasyBuildError("Failed to determine Python include path: %s", out) + else: + env.setvar('PYTHON_INCLUDE_DIR', out.strip()) + pylibdir = det_pylibdir() + python_libdir = os.path.join(deps['Python'], os.path.dirname(pylibdir)) + env.setvar('PYTHON_LIBRARY_DIR', python_libdir) + if LooseVersion(pyver) >= LooseVersion('3.8'): + out, ec = run_cmd("python%s-config --libs --embed" % pymajver, simple=False) + else: + out, ec = run_cmd("python%s-config --libs" % pymajver, simple=False) + if ec: + raise EasyBuildError("Failed to determine Python library name: %s", out) + else: + env.setvar('PYTHON_LIBRARIES', out.strip()) + + # numpy include location, easiest way to determine it is via numpy.get_include() + out, ec = run_cmd("python -c 'import numpy; print(numpy.get_include())'", simple=False) + if ec: + raise EasyBuildError("Failed to determine numpy include directory: %s", out) + else: + env.setvar('NUMPY_INCLUDE_DIR', out.strip()) + + # compiler commands + self.cfg.update('buildopts', 'CC="%s"' % os.getenv('CC')) + self.cfg.update('buildopts', 'CCPP="%s"' % os.getenv('CXX')) + + # plugins need to be built first (see http://www.ks.uiuc.edu/Research/vmd/doxygen/compiling.html) + change_dir(os.path.join(self.builddir, 'plugins')) + cmd = ' '.join([ + 'make', + 'LINUXAMD64', + "TCLINC='-I%s'" % tclinc, + "TCLLIB='-L%s'" % tcllib, + "TCLLDFLAGS='-ltcl%s'" % tclshortver, + "NETCDFINC='-I%s'" % netcdfinc, + "NETCDFLIB='-L%s'" % netcdflib, + self.cfg['buildopts'], + ]) + run_cmd(cmd, log_all=True, simple=False) + + # create plugins distribution + plugindir = os.path.join(self.vmddir, 'plugins') + env.setvar('PLUGINDIR', plugindir) + self.log.info("Generating VMD plugins in %s", plugindir) + run_cmd("make distrib %s" % self.cfg['buildopts'], log_all=True, simple=False) + + # explicitely mention whether or not we're building with CUDA/OptiX support + if deps['CUDA']: + self.log.info("Building with CUDA %s support", get_software_version('CUDA')) + if deps['OptiX']: + self.log.info("Building with Nvidia OptiX %s support", get_software_version('OptiX')) + else: + self.log.warn("Not building with Nvidia OptiX support!") + else: + self.log.warn("Not building with CUDA nor OptiX support!") + + # see http://www.ks.uiuc.edu/Research/vmd/doxygen/configure.html + # LINUXAMD64: Linux 64-bit + # LP64: build VMD as 64-bit binary + # IMD: enable support for Interactive Molecular Dynamics (e.g. to connect to NAMD for remote simulations) + # PTHREADS: enable support for POSIX threads + # COLVARS: enable support for collective variables (related to NAMD/LAMMPS) + # NOSILENT: verbose build command + # FLTK: enable the standard FLTK GUI + # TK: enable TK to support extension GUI elements + # OPENGL: enable OpenGL + self.cfg.update( + 'configopts', "LINUXAMD64 LP64 IMD PTHREADS COLVARS NOSILENT FLTK TK OPENGL", allow_duplicate=False) + + # add additional configopts based on available dependencies + for key in deps: + if deps[key]: + if key == 'Mesa' or key == 'OpenGL': + self.cfg.update('configopts', "OPENGL MESA", allow_duplicate=False) + elif key == 'OptiX': + self.cfg.update('configopts', "LIBOPTIX", allow_duplicate=False) + elif key == 'Python': + self.cfg.update('configopts', "PYTHON NUMPY", allow_duplicate=False) + else: + self.cfg.update('configopts', key.upper(), allow_duplicate=False) + + # configure for building with Intel compilers specifically + if self.toolchain.comp_family() == toolchain.INTELCOMP: + self.cfg.update('configopts', 'ICC', allow_duplicate=False) + + # specify install location using environment variables + env.setvar('VMDINSTALLBINDIR', os.path.join(self.installdir, 'bin')) + env.setvar('VMDINSTALLLIBRARYDIR', os.path.join(self.installdir, 'lib')) + + # configure in vmd-<version> directory + change_dir(self.vmddir) + run_cmd("%s ./configure %s" % (self.cfg['preconfigopts'], self.cfg['configopts'])) + + # change to 'src' subdirectory, ready for building + change_dir(os.path.join(self.vmddir, 'src')) + + def build_step(self): + """Custom build step for VMD.""" + super(EB_VMD, self).build_step() + + self.have_stride = False + # Build Surf, which is part of VMD as of VMD version 1.9.3 + if LooseVersion(self.version) >= LooseVersion("1.9.3"): + change_dir(self.surf_dir) + surf_build_cmd = 'make CC="%s" OPT="%s"' % (os.environ['CC'], os.environ['CFLAGS']) + run_cmd(surf_build_cmd) + # Build Stride if it was downloaded + if os.path.exists(os.path.join(self.stride_dir, 'Makefile')): + change_dir(self.stride_dir) + self.have_stride = True + stride_build_cmd = 'make CC="%s" CFLAGS="%s"' % (os.environ['CC'], os.environ['CFLAGS']) + run_cmd(stride_build_cmd) + else: + self.log.info("Stride has not been downloaded and/or unpacked.") + + def install_step(self): + """Custom build step for VMD.""" + + # Install must also be done in 'src' subdir + change_dir(os.path.join(self.vmddir, 'src')) + super(EB_VMD, self).install_step() + + if LooseVersion(self.version) >= LooseVersion("1.9.3"): + surf_bin = os.path.join(self.surf_dir, 'surf') + copy_file(surf_bin, os.path.join(self.installdir, 'lib', 'surf_LINUXAMD64')) + if self.have_stride: + stride_bin = os.path.join(self.stride_dir, 'stride') + copy_file(stride_bin, os.path.join(self.installdir, 'lib', 'stride_LINUXAMD64')) + + def sanity_check_step(self): + """Custom sanity check for VMD.""" + custom_paths = { + 'files': ['bin/vmd'], + 'dirs': ['lib'], + } + super(EB_VMD, self).sanity_check_step(custom_paths=custom_paths) diff --git a/Golden_Repo/b/Boost/Boost-1.77.0-GCCcore-11.2.0.eb b/Golden_Repo/b/Boost/Boost-1.77.0-GCCcore-11.2.0.eb index 9b6187fa0f18150b8723d1f3a126ac16a55c4559..11d41ed850b0c3a6e9668118eb11db85860b84a8 100644 --- a/Golden_Repo/b/Boost/Boost-1.77.0-GCCcore-11.2.0.eb +++ b/Golden_Repo/b/Boost/Boost-1.77.0-GCCcore-11.2.0.eb @@ -13,6 +13,7 @@ toolchainopts = {'pic': True} source_urls = [ 'https://boostorg.jfrog.io/artifactory/main/release/%(version)s/source/'] sources = ['%%(namelower)s_%s.tar.gz' % '_'.join(version.split('.'))] +patches = [('676.patch',2)] checksums = ['5347464af5b14ac54bb945dc68f1dd7c56f0dad7262816b956138fc53bcc0131'] dependencies = [ diff --git a/Golden_Repo/b/Boost/boost-deprheaders-pr676.patch b/Golden_Repo/b/Boost/boost-deprheaders-pr676.patch new file mode 100644 index 0000000000000000000000000000000000000000..caf6afdccb91d958c00fdb7aea74b30251c358a7 --- /dev/null +++ b/Golden_Repo/b/Boost/boost-deprheaders-pr676.patch @@ -0,0 +1,75 @@ +From 3d3d2d7467cf9e0e8dc3220cf1a2badb321df099 Mon Sep 17 00:00:00 2001 +From: Matt Borland <matt@mattborland.com> +Date: Sun, 22 Aug 2021 19:53:29 +0300 +Subject: [PATCH] Fix for issue 675 + +--- + .../boost/math/tools/header_deprecated.hpp | 22 ++++++++++++++----- + test/Jamfile.v2 | 1 + + test/header_deprecated_test.cpp | 12 ++++++++++ + 3 files changed, 29 insertions(+), 6 deletions(-) + create mode 100644 test/header_deprecated_test.cpp + +diff --git a/include/boost/math/tools/header_deprecated.hpp b/include/boost/math/tools/header_deprecated.hpp +index 8f4a5db25b..867fcaa217 100644 +--- a/include/boost/math/tools/header_deprecated.hpp ++++ b/include/boost/math/tools/header_deprecated.hpp +@@ -6,12 +6,22 @@ + #ifndef BOOST_MATH_TOOLS_HEADER_DEPRECATED + #define BOOST_MATH_TOOLS_HEADER_DEPRECATED + +-#ifdef _MSC_VER +-// Expands to "This header is deprecated; use expr instead." +-#define BOOST_MATH_HEADER_DEPRECATED(expr) __pragma("This header is deprecated; use " expr " instead.") +-#else // GNU, Clang, Intel, IBM, etc. ++#ifndef BOOST_MATH_STANDALONE ++ ++# include <boost/config/header_deprecated.hpp> ++# define BOOST_MATH_HEADER_DEPRECATED(expr) BOOST_HEADER_DEPRECATED(expr) ++ ++#else ++ ++# ifdef _MSC_VER + // Expands to "This header is deprecated; use expr instead." +-#define BOOST_MATH_HEADER_DEPRECATED(expr) _Pragma("This header is deprecated; use " expr " instead.") +-#endif ++# define BOOST_MATH_HEADER_DEPRECATED(expr) __pragma("This header is deprecated; use " expr " instead.") ++# else // GNU, Clang, Intel, IBM, etc. ++// Expands to "This header is deprecated use expr instead" ++# define BOOST_MATH_HEADER_DEPRECATED_MESSAGE(expr) _Pragma(#expr) ++# define BOOST_MATH_HEADER_DEPRECATED(expr) BOOST_MATH_HEADER_DEPRECATED_MESSAGE(message "This header is deprecated use " expr " instead") ++# endif ++ ++#endif // BOOST_MATH_STANDALONE + + #endif // BOOST_MATH_TOOLS_HEADER_DEPRECATED +diff --git a/test/Jamfile.v2 b/test/Jamfile.v2 +index 6ef83e630b..1653cb545e 100644 +--- a/test/Jamfile.v2 ++++ b/test/Jamfile.v2 +@@ -874,6 +874,7 @@ test-suite mp : + ; + + test-suite misc : ++ [ run header_deprecated_test.cpp ] + [ run threading_sanity_check.cpp ] + [ run test_tr1.cpp + ../build//boost_math_tr1 +diff --git a/test/header_deprecated_test.cpp b/test/header_deprecated_test.cpp +new file mode 100644 +index 0000000000..2f131ae772 +--- /dev/null ++++ b/test/header_deprecated_test.cpp +@@ -0,0 +1,12 @@ ++// (C) Copyright Matt Borland 2021. ++// Use, modification and distribution are 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) ++ ++#include <boost/math/tools/header_deprecated.hpp> ++ ++int main() ++{ ++ BOOST_MATH_HEADER_DEPRECATED("<boost/integer/common_factor_rt.hpp>"); ++ return 0; ++} diff --git a/Golden_Repo/o/OptiX/OptiX-7.3.0.eb b/Golden_Repo/o/OptiX/OptiX-7.3.0.eb new file mode 100644 index 0000000000000000000000000000000000000000..0407e890c79f0d011c06929f665a4765f799c07d --- /dev/null +++ b/Golden_Repo/o/OptiX/OptiX-7.3.0.eb @@ -0,0 +1,31 @@ +## +# Author: Robert Mijakovic <robert.mijakovic@lxp.lu> +## +easyblock = 'Binary' + +name = 'OptiX' +version = '7.3.0' + +homepage = 'https://developer.nvidia.com/optix' +description = """OptiX is NVIDIA SDK for easy ray tracing performance. + It provides a simple framework for accessing the GPU’s massive ray tracing + power using state-of-the-art GPU algorithms.""" + +toolchain = SYSTEM + +# Registration required. Download links: +# https://developer.nvidia.com/designworks/optix/download +# https://developer.nvidia.com/designworks/optix/downloads/legacy +sources = ['NVIDIA-OptiX-SDK-%(version)s-linux64-x86_64.sh'] +checksums = ['1a87b6c08577feeaaad0919b54a8b09b93245fbbf9d52f38497f78d485fea555'] + +install_cmd = "./" + sources[0] + " --skip-license --prefix=%(installdir)s" + +sanity_check_paths = { + 'files': ["include/optix.h", "include/optix_device.h"], + 'dirs': [] +} + +modextravars = {'OPTIX_HOME': '%(installdir)s'} + +moduleclass = 'vis' diff --git a/Golden_Repo/p/POV-Ray/POV-Ray-3.7.0.10.eb b/Golden_Repo/p/POV-Ray/POV-Ray-3.7.0.10.eb new file mode 100644 index 0000000000000000000000000000000000000000..ebb89b3d0b542195dd8578c922da617ffeab605d --- /dev/null +++ b/Golden_Repo/p/POV-Ray/POV-Ray-3.7.0.10.eb @@ -0,0 +1,63 @@ +## +# This file is an EasyBuild reciPY as per https://github.com/easybuilders/easybuild +# +# Copyright:: Copyright 2012-2014 Uni.Lu, NTUA +# Authors:: Fotis Georgatos <fotis@cern.ch> +# 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 = 'POV-Ray' +version = '3.7.0.10' + +homepage = 'https://www.povray.org/' +description = """The Persistence of Vision Raytracer, or POV-Ray, is a ray tracing program + which generates images from a text-based scene description, and is available for a variety + of computer platforms. POV-Ray is a high-quality, Free Software tool for creating stunning + three-dimensional graphics. The source code is available for those wanting to do their own ports.""" + +toolchain = {'name': 'GCC', 'version': '11.2.0'} +toolchainopts = {'pic': True} + +source_urls = ['https://github.com/POV-Ray/povray/archive/'] +sources = ['v%(version)s.tar.gz'] +patches = ['POV-Ray-3.7.0.7_dont-touch-home.patch'] +checksums = [ + '7bee83d9296b98b7956eb94210cf30aa5c1bbeada8ef6b93bb52228bbc83abff', # v3.7.0.10.tar.gz + '45103afca808e279dcdee80194c65e2a760c76d011d351392a46e817b0b655f7', # POV-Ray-3.7.0.7_dont-touch-home.patch +] + +builddependencies = [ + ('Autotools', '20210726'), +] + +dependencies = [ + ('Boost', '1.77.0'), + ('zlib', '1.2.11'), + ('libpng', '1.6.37'), + ('libjpeg-turbo', '2.1.1'), + ('X11', '20210802'), + ('LibTIFF', '4.3.0'), + ('SDL2', '2.0.18', '', ('gcccoremkl', '11.2.0-2021.4.0')), +] + +preconfigopts = "cd unix && sed -i 's/^automake/automake --add-missing; automake/g' prebuild.sh && " +preconfigopts += " ./prebuild.sh && cd .. && " +configopts = "COMPILED_BY='EasyBuild' " +configopts += "--with-boost=$EBROOTBOOST --with-zlib=$EBROOTZLIB --with-libpng=$EBROOTLIBPNG " +configopts += "--with-libtiff=$EBROOTLIBTIFF --with-libjpeg=$EBROOTLIBJPEGMINTURBO --with-libsdl=$EBROOTSDL2 " +# configopts += " --with-libmkl=DIR " ## upstream needs to fix this, still in BETA + +runtest = 'check' + +sanity_check_paths = { + 'files': ['bin/povray'], + 'dirs': ['etc/povray/%(version_major_minor)s', 'share'] +} + +moduleclass = 'vis' diff --git a/Golden_Repo/p/POV-Ray/POV-Ray-3.7.0.7_dont-touch-home.patch b/Golden_Repo/p/POV-Ray/POV-Ray-3.7.0.7_dont-touch-home.patch new file mode 100644 index 0000000000000000000000000000000000000000..097174a9e0a4a91a3c5e7bd64c3da5c536b6da60 --- /dev/null +++ b/Golden_Repo/p/POV-Ray/POV-Ray-3.7.0.7_dont-touch-home.patch @@ -0,0 +1,25 @@ +# Do not let povray do anything in the user home directory +# wpoely86@gmail.com +diff -ur povray-3.7.0.7.orig/unix/prebuild.sh povray-3.7.0.7/unix/prebuild.sh +--- povray-3.7.0.7.orig/unix/prebuild.sh 2018-01-05 10:06:48.000000000 +0100 ++++ povray-3.7.0.7/unix/prebuild.sh 2018-04-10 10:14:08.621514093 +0200 +@@ -641,19 +641,6 @@ + for f in \$\$filelist ; do \\ + \$(INSTALL_DATA) \$(top_srcdir)/doc/\$\$f \$(DESTDIR)\$(povdocdir)/\$\$f && echo "\$(DESTDIR)\$(povdocdir)/\$\$f" >> \$(povinstall); \\ + done +- @echo "Creating user directories..."; \\ +- for p in \$(povuser) \$(povconfuser) ; do \\ +- \$(mkdir_p) \$\$p && chown \$(povowner) \$\$p && chgrp \$(povgroup) \$\$p && printf "%s\\n" "\$\$p" "\`cat \$(povinstall)\`" > \$(povinstall); \\ +- done +- @echo "Copying user configuration and INI files..."; \\ +- for f in povray.conf povray.ini ; do \\ +- if test -f \$(povconfuser)/\$\$f; then \\ +- echo "Creating backup of \$(povconfuser)/\$\$f"; \\ +- mv -f \$(povconfuser)/\$\$f \$(povconfuser)/\$\$f.bak; \\ +- fi; \\ +- done; \\ +- \$(INSTALL_DATA) \$(top_srcdir)/povray.conf \$(povconfuser)/povray.conf && chown \$(povowner) \$(povconfuser)/povray.conf && chgrp \$(povgroup) \$(povconfuser)/povray.conf && echo "\$(povconfuser)/povray.conf" >> \$(povinstall); \\ +- \$(INSTALL_DATA) \$(top_builddir)/povray.ini \$(povconfuser)/povray.ini && chown \$(povowner) \$(povconfuser)/povray.ini && chgrp \$(povgroup) \$(povconfuser)/povray.ini && echo "\$(povconfuser)/povray.ini" >> \$(povinstall) + + # Remove data, config, and empty folders for 'make uninstall'. + # Use 'hook' instead of 'local' so as to properly remove *empty* folders (e.g. scripts). diff --git a/Golden_Repo/s/SDL2/SDL2-2.0.18-gcccoremkl-11.2.0-2021.4.0.eb b/Golden_Repo/s/SDL2/SDL2-2.0.18-gcccoremkl-11.2.0-2021.4.0.eb new file mode 100644 index 0000000000000000000000000000000000000000..2dc3570d1618317b2f782571dd7c557dfcd6b5cb --- /dev/null +++ b/Golden_Repo/s/SDL2/SDL2-2.0.18-gcccoremkl-11.2.0-2021.4.0.eb @@ -0,0 +1,41 @@ +## +# This file is an EasyBuild reciPY as per https://github.com/easybuilders/easybuild +# +# Copyright:: Copyright 2012-2014 Uni.Lu, NTUA +# Authors:: Fotis Georgatos <fotis@cern.ch> +# 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 = 'SDL2' +version = '2.0.18' + +homepage = 'http://www.libsdl.org/' +description = "SDL: Simple DirectMedia Layer, a cross-platform multimedia library" + +toolchain = {'name': 'gcccoremkl', 'version': '11.2.0-2021.4.0'} + +source_urls = ['http://www.libsdl.org/release/'] +sources = [SOURCE_TAR_GZ] +checksums = ['94d40cd73dbfa10bb6eadfbc28f355992bb2d6ef6761ad9d4074eff95ee5711c'] + +builddependencies = [ + ('binutils', '2.37'), +] + +dependencies = [ + ('X11', '20210802'), + ('CUDA', '11.5', '', SYSTEM), +] + +sanity_check_paths = { + 'files': ['bin/sdl2-config', 'lib/libSDL2.%s' % SHLIB_EXT], + 'dirs': [], +} + +moduleclass = 'lib' diff --git a/Golden_Repo/v/VMD/VMD-1.9.3_plugins.patch b/Golden_Repo/v/VMD/VMD-1.9.3_plugins.patch new file mode 100644 index 0000000000000000000000000000000000000000..f4cf63549263fd9462ccfefa556b6508369e9a25 --- /dev/null +++ b/Golden_Repo/v/VMD/VMD-1.9.3_plugins.patch @@ -0,0 +1,29 @@ +Fix hard coded compiler, flags and tcl lib version for plugins + +Ake Sandgren, 20190823 +--- plugins/Make-arch.orig 2016-10-21 23:34:39.000000000 +0200 ++++ plugins/Make-arch 2019-08-23 10:45:51.403545042 +0200 +@@ -337,17 +337,17 @@ + "ARCH = LINUXAMD64" \ + "COPTO = -fPIC -m64 -o " \ + "LOPTO = -fPIC -m64 -lstdc++ -o " \ +- "CC = gcc" \ +- "CXX = g++" \ ++ "CC = $(CC)" \ ++ "CXX = $(CXX)" \ + "DEF = -D" \ +- "CCFLAGS = -m64 -O2 -fPIC -Wall" \ +- "CXXFLAGS = -m64 -O2 -fPIC -Wall" \ +- "TCLLDFLAGS = -ltcl8.5 -ldl" \ ++ "CCFLAGS = $(CFLAGS)" \ ++ "CXXFLAGS = $(CXXFLAGS)" \ ++ "TCLLDFLAGS = $(TCLLDFLAGS)" \ + "NETCDFLDFLAGS = -lnetcdf " \ + "AR = ar" \ + "NM = nm -p" \ + "RANLIB = touch" \ +- "SHLD = gcc -shared" ++ "SHLD = $(CC) -shared" + + LINUXCARMA: + $(MAKE) dynlibs staticlibs bins \ diff --git a/Golden_Repo/v/VMD/VMD-1.9.3_stride_MAX_AT_IN_RES.patch b/Golden_Repo/v/VMD/VMD-1.9.3_stride_MAX_AT_IN_RES.patch new file mode 100644 index 0000000000000000000000000000000000000000..9011384eff52af2075f6d7977d0b0de7e5bad400 --- /dev/null +++ b/Golden_Repo/v/VMD/VMD-1.9.3_stride_MAX_AT_IN_RES.patch @@ -0,0 +1,15 @@ +Increase number of atoms allowed per residues as per stride README from VMD + +Åke Sandgren, 2017-05-02 +diff -ru vmd-1.9.3.orig/lib/stride/stride.h vmd-1.9.3/lib/stride/stride.h +--- vmd-1.9.3.orig/lib/stride/stride.h 2017-05-02 13:47:26.484463970 +0200 ++++ vmd-1.9.3/lib/stride/stride.h 2017-05-02 13:47:43.748279797 +0200 +@@ -40,7 +40,7 @@ + #define MAX_BOND 100 + #define MAX_ASSIGN 500 + #define MAX_INFO 1000 +-#define MAX_AT_IN_RES 75 ++#define MAX_AT_IN_RES 100 + #define MAX_AT_IN_HETERORES 200 + #define MAXRESDNR 6 + #define MAXRESACC 6 diff --git a/Golden_Repo/v/VMD/VMD-1.9.3_stride_Makefile.patch b/Golden_Repo/v/VMD/VMD-1.9.3_stride_Makefile.patch new file mode 100644 index 0000000000000000000000000000000000000000..036430db8ffe77867d6e4ebf20fc57e422ff95f3 --- /dev/null +++ b/Golden_Repo/v/VMD/VMD-1.9.3_stride_Makefile.patch @@ -0,0 +1,37 @@ +Make stride use CC, CFLAGS and LDFLAGS from EB. + +Åke Sandgren, 2017-05-02 +diff -ru vmd-1.9.3.orig/lib/stride/Makefile vmd-1.9.3/lib/stride/Makefile +--- vmd-1.9.3.orig/lib/stride/Makefile 2003-04-08 14:03:14.000000000 +0200 ++++ vmd-1.9.3/lib/stride/Makefile 2017-05-02 13:46:01.973365383 +0200 +@@ -1,13 +1,14 @@ + #FLAGS = -lm -L/usr/pub/lib -lefence -o + #CC = cc -O2 -fullwarn -TENV:large_GOT + #CC = cc -g -Wall +-CC = gcc -O2 # at least for SunOS ++#CC = gcc -O2 # at least for SunOS + #CC = cc -g + + #CC = cc -O2 -fullwarn + + #CC = cc -O2 +-FLAGS = -lm -o ++#FLAGS = -lm -o ++LIBS = -lm + + SOURCE = stride.c splitstr.c rdpdb.c initchn.c geometry.c thr2one.c one2thr.c filename.c tolostr.c strutil.c place_h.c hbenergy.c memory.c helix.c sheet.c rdmap.c phipsi.c command.c molscr.c die.c hydrbond.c mergepat.c fillasn.c escape.c p_jrnl.c p_rem.c p_atom.c p_helix.c p_sheet.c p_turn.c p_ssbond.c p_expdta.c p_model.c p_compnd.c report.c nsc.c area.c ssbond.c chk_res.c chk_atom.c turn.c pdbasn.c dssp.c outseq.c chkchain.c elem.c measure.c asngener.c p_endmdl.c stred.c contact_order.c contact_map.c + +@@ -15,12 +16,9 @@ + + BINDIR = . + +-.c.o: +- $(CC) -c $< -o $@ +- + + stride : $(OBJECT) +- $(CC) $(OBJECT) $(FLAGS) $(BINDIR)/stride${ARCH} ++ $(CC) $(LDFLAGS) $(OBJECT) $(LIBS) -o stride + + $(OBJECT) : stride.h protot.h + diff --git a/Golden_Repo/v/VMD/VMD-1.9.3_surf_Makefile.patch b/Golden_Repo/v/VMD/VMD-1.9.3_surf_Makefile.patch new file mode 100644 index 0000000000000000000000000000000000000000..93f430a64a158b7c7ca07cfee06a7e00b5251307 --- /dev/null +++ b/Golden_Repo/v/VMD/VMD-1.9.3_surf_Makefile.patch @@ -0,0 +1,112 @@ +Fix surf Makefile. +Use CC, CFLAGS, etc from EB. +Drop bad make depend lines. + +Åke Sandgren, 2017-05-02 +diff -ru vmd-1.9.3.orig/lib/surf/Makefile vmd-1.9.3/lib/surf/Makefile +--- vmd-1.9.3.orig/lib/surf/Makefile 1994-03-22 16:44:20.000000000 +0100 ++++ vmd-1.9.3/lib/surf/Makefile 2017-05-02 13:41:51.911991381 +0200 +@@ -1,12 +1,7 @@ + # Compilation flags +-#CC = cc +-CC = cc + INCLUDE = -I. +-#LINCLUDE = -lcurses -ltermcap -lm +-LINCLUDE = -lm +-OPT_CFLAGS = -O2 $(FLAGS) $(INCLUDE) +-#CFLAGS = -g $(FLAGS) $(INCLUDE) +-CFLAGS = -O2 $(FLAGS) $(INCLUDE) ++LIBS = -lm ++CFLAGS = $(OPT) $(INCLUDE) + + # These are the user object files in the application + SRCS = surf.c io.c compute.c dual.c utils.c lp.c chull.c tessel_cases.c \ +@@ -18,7 +13,7 @@ + + # make objects + surf: $(OBJS) Makefile +- $(CC) $(CFLAGS) $(OBJS) -o surf $(LINCLUDE) ++ $(CC) $(LDFLAGS) $(OBJS) -o surf $(LIBS) + + lint: + lint $(INCLUDE) $(SRCS) +@@ -30,9 +25,6 @@ + tar -cvf surf.tar README *.[hc] Makefile + compress surf.tar + +-.c.o: +- $(CC) $(CFLAGS) -c $*.c +- + + # make depend makes the proper include file dependencies. You _could_ run + # it on a sun4, but there's a bug in the SunOS version of sed that causes +@@ -61,48 +53,3 @@ + @ echo ' ' >> Makefile + + # DO NOT DELETE THIS LINE -- make depend depends on it. +- +- +-# DO NOT DELETE THIS LINE -- make depend depends on it. +- +-surf.o: surf.h /usr/include/stdio.h /usr/include/math.h /usr/include/stdlib.h +-surf.o: /usr/include/sgidefs.h /usr/include/string.h /usr/include/sys/time.h +-surf.o: linalg.h +-io.o: surf.h /usr/include/stdio.h /usr/include/math.h /usr/include/stdlib.h +-io.o: /usr/include/sgidefs.h /usr/include/string.h /usr/include/sys/time.h +-io.o: linalg.h +-compute.o: surf.h /usr/include/stdio.h /usr/include/math.h +-compute.o: /usr/include/stdlib.h /usr/include/sgidefs.h /usr/include/string.h +-compute.o: /usr/include/sys/time.h linalg.h chull.h dual.h +-dual.o: surf.h /usr/include/stdio.h /usr/include/math.h /usr/include/stdlib.h +-dual.o: /usr/include/sgidefs.h /usr/include/string.h /usr/include/sys/time.h +-dual.o: linalg.h dual.h chull.h +-utils.o: surf.h /usr/include/stdio.h /usr/include/math.h +-utils.o: /usr/include/stdlib.h /usr/include/sgidefs.h /usr/include/string.h +-utils.o: /usr/include/sys/time.h linalg.h +-lp.o: surf.h /usr/include/stdio.h /usr/include/math.h /usr/include/stdlib.h +-lp.o: /usr/include/sgidefs.h /usr/include/string.h /usr/include/sys/time.h +-lp.o: linalg.h +-chull.o: surf.h /usr/include/stdio.h /usr/include/math.h +-chull.o: /usr/include/stdlib.h /usr/include/sgidefs.h /usr/include/string.h +-chull.o: /usr/include/sys/time.h linalg.h chull.h +-tessel_cases.o: surf.h /usr/include/stdio.h /usr/include/math.h +-tessel_cases.o: /usr/include/stdlib.h /usr/include/sgidefs.h +-tessel_cases.o: /usr/include/string.h /usr/include/sys/time.h linalg.h dual.h +-tessel_patches.o: surf.h /usr/include/stdio.h /usr/include/math.h +-tessel_patches.o: /usr/include/stdlib.h /usr/include/sgidefs.h +-tessel_patches.o: /usr/include/string.h /usr/include/sys/time.h linalg.h +-tessel_convex.o: surf.h /usr/include/stdio.h /usr/include/math.h +-tessel_convex.o: /usr/include/stdlib.h /usr/include/sgidefs.h +-tessel_convex.o: /usr/include/string.h /usr/include/sys/time.h linalg.h +-tessel_concave.o: surf.h /usr/include/stdio.h /usr/include/math.h +-tessel_concave.o: /usr/include/stdlib.h /usr/include/sgidefs.h +-tessel_concave.o: /usr/include/string.h /usr/include/sys/time.h linalg.h +-tessel_torus.o: surf.h /usr/include/stdio.h /usr/include/math.h +-tessel_torus.o: /usr/include/stdlib.h /usr/include/sgidefs.h +-tessel_torus.o: /usr/include/string.h /usr/include/sys/time.h linalg.h +- +-# DEPENDENCIES MUST END AT END OF FILE +-# IF YOU PUT STUFF HERE IT WILL GO AWAY +-# see make depend above +- +diff -ru vmd-1.9.3.orig/lib/surf/surf.c vmd-1.9.3/lib/surf/surf.c +--- vmd-1.9.3.orig/lib/surf/surf.c 1994-03-21 10:33:00.000000000 +0100 ++++ vmd-1.9.3/lib/surf/surf.c 2017-05-02 13:41:51.911991381 +0200 +@@ -7,7 +7,7 @@ + #define EXTERN + #include "surf.h" + +-void ++int + main(ac,av) + int ac; + char* av[]; +@@ -56,6 +56,8 @@ + if (Write_Option == 2) output_dataset(); + + if (Write_Option) end_output_dataset(); ++ ++ return(0); + } + + diff --git a/Golden_Repo/v/VMD/VMD-1.9.3_surf_bad_printfs.patch b/Golden_Repo/v/VMD/VMD-1.9.3_surf_bad_printfs.patch new file mode 100644 index 0000000000000000000000000000000000000000..9b9db3889bf08c48fb6a469303e1db1423d2b734 --- /dev/null +++ b/Golden_Repo/v/VMD/VMD-1.9.3_surf_bad_printfs.patch @@ -0,0 +1,74 @@ +Fix some bad printfs in surf. + +Åke Sandgren, 2017-05-02 +diff -ru vmd-1.9.3.orig/lib/surf/chull.c vmd-1.9.3/lib/surf/chull.c +--- vmd-1.9.3.orig/lib/surf/chull.c 1994-03-19 06:50:54.000000000 +0100 ++++ vmd-1.9.3/lib/surf/chull.c 2017-05-02 13:44:07.046582827 +0200 +@@ -378,7 +378,7 @@ + print_out( v ) + struct tvertex *v; + { +- fprintf( stderr, "\nAdding vertex %6x :\n", v ); ++ fprintf( stderr, "\nAdding vertex %6p :\n", v ); + print_verts(); + print_edges(); + print_fs(); +@@ -398,11 +398,11 @@ + temp = vertices; + fprintf (stderr, "Vertex List\n"); + if (vertices) do { +- fprintf(stderr," addr %6x\t", vertices ); ++ fprintf(stderr," addr %6p\t", vertices ); + fprintf(stderr,"(%g,%g,%g)",vertices->v[X], + vertices->v[Y], vertices->v[Z] ); + fprintf(stderr," active:%3d", vertices->active ); +- fprintf(stderr," duplicate:%5x", vertices->duplicate ); ++ fprintf(stderr," duplicate:%5p", vertices->duplicate ); + fprintf(stderr," mark:%2d\n", vertices->mark ); + vertices = vertices->next; + } while ( vertices != temp ); +@@ -424,13 +424,13 @@ + temp = edges; + fprintf (stderr, "Edge List\n"); + if (edges) do { +- fprintf( stderr, " addr: %6x\t", edges ); ++ fprintf( stderr, " addr: %6p\t", edges ); + fprintf( stderr, "adj: "); + for (i=0; i<3; ++i) +- fprintf( stderr, "%6x", edges->adjface[i] ); ++ fprintf( stderr, "%6p", edges->adjface[i] ); + fprintf( stderr, " endpts:"); + for (i=0; i<2; ++i) +- fprintf( stderr, "%8x", edges->endpts[i]); ++ fprintf( stderr, "%8p", edges->endpts[i]); + fprintf( stderr, " del:%3d\n", edges->deleted ); + edges = edges->next; + } while (edges != temp ); +@@ -452,13 +452,13 @@ + temp = faces; + fprintf (stderr, "Face List\n"); + if (faces) do { +- fprintf(stderr, " addr: %6x\t", faces ); ++ fprintf(stderr, " addr: %6p\t", faces ); + fprintf(stderr, " edges:"); + for( i=0; i<3; ++i ) +- fprintf(stderr, "%6x", faces->edg[i] ); ++ fprintf(stderr, "%6p", faces->edg[i] ); + fprintf(stderr, " vert:"); + for ( i=0; i<3; ++i) +- fprintf(stderr, "%6x", faces->vert[i] ); ++ fprintf(stderr, "%6p", faces->vert[i] ); + fprintf(stderr, " vis: %d\n", faces->visible ); + faces= faces->next; + } while ( faces != temp ); +@@ -552,8 +552,8 @@ + temp_v = temp_v->next; + } while ( temp_v != vertices ); + do { +- printf("3%5d%6d%6d\n", temp_f->vert[0]->vnum, +- temp_f->vert[1]->vnum, temp_f->vert[2]->vnum ); ++ printf("3%5d%6d%6d\n", temp_f->vert[0]->vnum[0], ++ temp_f->vert[1]->vnum[0], temp_f->vert[2]->vnum[0] ); + temp_f = temp_f->next; + } while ( temp_f != faces ); + } diff --git a/Golden_Repo/v/VMD/VMD-1.9.4a51-gcccoremkl-11.2.0-2021.4.0.eb b/Golden_Repo/v/VMD/VMD-1.9.4a51-gcccoremkl-11.2.0-2021.4.0.eb new file mode 100644 index 0000000000000000000000000000000000000000..142ff9607be89aefb4a5921f17e3a33ad71628a6 --- /dev/null +++ b/Golden_Repo/v/VMD/VMD-1.9.4a51-gcccoremkl-11.2.0-2021.4.0.eb @@ -0,0 +1,68 @@ +## +# Author: Robert Mijakovic <robert.mijakovic@lxp.lu> +## +name = 'VMD' +version = '1.9.4a51' + +homepage = 'https://www.ks.uiuc.edu/Research/vmd' +description = """VMD is a molecular visualization program for displaying, animating, and analyzing large biomolecular + systems using 3-D graphics and built-in scripting.""" + +toolchain = {'name': 'gcccoremkl', 'version': '11.2.0-2021.4.0'} + +source_urls = [ + 'https://www.ks.uiuc.edu/Research/vmd/vmd-1.9.4/files/alpha/', + 'https://www.ks.uiuc.edu/Research/vmd/vmd-%(version)s/files/final', + 'http://webclu.bio.wzw.tum.de/stride/' +] +sources = [ + 'vmd-%(version)s.src.tar.gz', + {'filename': 'stride.tar.gz', 'extract_cmd': "tar -C vmd-%(version)s/lib/stride -xf %s"}, +] +patches = [ + ('VMD-1.9.3_plugins.patch'), + ('VMD-1.9.3_surf_Makefile.patch', 'vmd-%(version)s'), + ('VMD-1.9.3_surf_bad_printfs.patch', 'vmd-%(version)s'), + ('VMD-1.9.3_stride_Makefile.patch', 'vmd-%(version)s'), + ('VMD-1.9.3_stride_MAX_AT_IN_RES.patch', 'vmd-%(version)s'), + ('VMD-%(version)s_configure.patch', 'vmd-%(version)s'), + ('VMD-%(version)s_extra_colors.patch', 'vmd-%(version)s'), +] +checksums = [ + 'b1c40b21111f5bab56d43d5e442c468d327159b07915af2ec175ba6b12842e5c', # vmd-1.9.4a51.src.tar.gz + '51a8bc2988bb184bd08216124f61725225bb1a6f563bdf8cd35154cb5d621c1a', # stride.tar.gz + '85760d6ae838e2b09801e34b36b484532383f7aaf2e8634b3ef808002a92baa3', # VMD-1.9.3_plugins.patch + 'd5cfa88064b7cffbc75accd69707d4e45fda974e8127de9ab606fdad501bd68a', # VMD-1.9.3_surf_Makefile.patch + 'f3c2a8c155e38db8e644cee6a01f6beaea5988e72ac74cde26b71670b151cc34', # VMD-1.9.3_surf_bad_printfs.patch + 'eb194ac0d8c086b73f87b29f7d732687f902431b1cdfa139c090401fefdee51e', # VMD-1.9.3_stride_Makefile.patch + 'eff1ca00cec637a6c8a156b2fb038e078d1835ba0eb15a571ed820bca5a866d9', # VMD-1.9.3_stride_MAX_AT_IN_RES.patch + 'dc9fc419e2e938f42d2e4784b0c9c7429317893f08d3ed170f949c3ee3aec062', # VMD-1.9.4a51_configure.patch + '253eba282b570eb00e4764f46f77fd5ca898d10360d5707dd50ad1f14615af80', # VMD-1.9.4a51_extra_colors.patch +] + +builddependencies = [ + ('binutils', '2.37'), +] + +dependencies = [ + ('Tcl', '8.6.11'), + ('Tk', '8.6.11'), + ('FLTK', '1.3.7'), + ('Python', '3.9.6'), + ('SciPy-bundle', '2021.10'), + ('Tkinter', '%(pyver)s'), + ('X11', '20210802'), + ('fontconfig', '2.13.94'), + ('OpenGL', '2021b'), + ('netCDF', '4.8.1', '-serial'), + ('FFmpeg', '4.4.1'), + ('ImageMagick', '7.1.0-13'), + ('ACTC', '1.1'), + ('OptiX', '7.3.0', '', SYSTEM), + ('zlib', '1.2.11'), + ('libpng', '1.6.37'), + ('POV-Ray', '3.7.0.10'), + ('CUDA', '11.5', '', SYSTEM), +] + +moduleclass = 'vis' diff --git a/Golden_Repo/v/VMD/VMD-1.9.4a51_configure.patch b/Golden_Repo/v/VMD/VMD-1.9.4a51_configure.patch new file mode 100644 index 0000000000000000000000000000000000000000..b0432661c4e3e13f19df1bbf67256794fc045408 --- /dev/null +++ b/Golden_Repo/v/VMD/VMD-1.9.4a51_configure.patch @@ -0,0 +1,177 @@ +--- configure 2021-05-10 14:04:56.826893000 +0200 ++++ configure 2021-05-10 14:08:01.893394000 +0200 +@@ -497,17 +497,16 @@ + + $arch_cc = "cc"; + $arch_ccpp = "CC"; +-$arch_nvcc = "/usr/local/cuda-10.2/bin/nvcc"; ++$arch_nvcc = "$ENV{'EBROOTCUDA'}/bin/nvcc"; + $arch_nvccflags = "-lineinfo --ptxas-options=-v " . +- "-gencode arch=compute_30,code=compute_30 " . +- "-gencode arch=compute_30,code=sm_35 " . +- "-gencode arch=compute_30,code=sm_37 " . + "-gencode arch=compute_50,code=compute_50 " . + "-gencode arch=compute_50,code=sm_50 " . + "-gencode arch=compute_60,code=compute_60 " . + "-gencode arch=compute_60,code=sm_60 " . + "-gencode arch=compute_70,code=compute_70 " . + "-gencode arch=compute_70,code=sm_70 " . ++ "-gencode arch=compute_75,code=sm_75 " . ++ "-gencode arch=compute_80,code=sm_80 " . + "--ftz=true "; + # "-gencode arch=compute_75,code=sm_75 " . + $arch_gcc = "gcc"; +@@ -633,17 +632,17 @@ + # location of Mesa library and include files; basically does the same + # as OpenGL. This is based on the default instructions from the Mesa + # README; the include files should by default be in /usr/local/include/GL. +-$mesa_dir = "$vmd_library_dir/Mesa"; ++$mesa_dir = $ENV{'EBROOTMESA'}; + $mesa_include = "-I$mesa_dir/include"; + $mesa_library = "-L$mesa_dir/lib_$config_arch"; + #$mesa_libs = "-lMesaGL -lMesaGLU"; +-$mesa_libs = "-lMesaGL"; ++$mesa_libs = "-lGL -lGLU"; + $mesa_defines = "-DUSELINEAXES -DVMDMESA -DVMDOPENGL"; + @mesa_cc = (); + @mesa_cu = (); +-@mesa_ccpp = @opengl_ccpp; +-@mesa_h = @opengl_h; +-@mesa_extra = @opengl_extra; ++@mesa_ccpp = (); ++@mesa_h = (); ++@mesa_extra = (); + + + # +@@ -719,10 +718,10 @@ + + ################ FLTK GUI + $fltk_defines = "-DVMDGUI -DVMDFLTK"; +-$fltk_dir = "$vmd_library_dir/fltk"; ++$fltk_dir = $ENV{'EBROOTFLTK'}; + $fltk_include = "-I$fltk_dir/include"; + $fltk_library = "-L$fltk_dir/$config_arch"; +-$fltk_libs = "-lfltk -lX11"; ++$fltk_libs = "-lfltk -lX11 -lXfixes -lXcursor -lXinerama"; + #@fltk_cc = ('forms_ui.c'); + @fltk_cu = (); + @fltk_ccpp = ( 'ColorFltkMenu.C', +@@ -764,7 +763,6 @@ + $stock_tcl_include_dir=$ENV{"TCL_INCLUDE_DIR"} || "$vmd_library_dir/tcl/include"; + $stock_tcl_library_dir=$ENV{"TCL_LIBRARY_DIR"} || "$vmd_library_dir/tcl/lib_$config_arch"; + +- + # location of Tk (for TK option) + #$stock_tk_include_dir=$ENV{"TK_INCLUDE_DIR"} || "/usr/local/include"; + #$stock_tk_library_dir=$ENV{"TK_LIBRARY_DIR"} || "/usr/local/lib"; +@@ -782,8 +780,8 @@ + if ($config_tk) { $tcl_include .= " -I$stock_tk_include_dir"; } + $tcl_library = "-L$stock_tcl_library_dir"; + if ($config_tk) { $tcl_library .= " -L$stock_tk_library_dir"; } +-$tcl_libs = "-ltcl8.5"; +-if ($config_tk) { $tcl_libs = "-ltk8.5 -lX11 " . $tcl_libs; } ++$tcl_libs = "-ltcl8.6"; ++if ($config_tk) { $tcl_libs = "-ltk8.6 -lX11 " . $tcl_libs; } + + @tcl_cc = (); + @tcl_cu = (); +@@ -992,7 +990,7 @@ + # This option enables the use of CUDA GPU acceleration functions. + ####################### + $cuda_defines = "-DVMDCUDA -DMSMPOT_CUDA"; +-$cuda_dir = "/usr/local/cuda-10.2"; ++$cuda_dir = "$ENV{'CUDA_HOME'}"; + $cuda_include = ""; + $cuda_library = ""; + $cuda_libs = "-Wl,-rpath -Wl,\$\$ORIGIN/ -lcudart_static -lrt"; +@@ -1201,7 +1199,7 @@ + # $liboptix_dir = "/usr/local/encap/NVIDIA-OptiX-SDK-5.0.1-linux64"; + # $liboptix_dir = "/usr/local/encap/NVIDIA-OptiX-SDK-5.1.0-linux64"; + # $liboptix_dir = "/usr/local/encap/NVIDIA-OptiX-SDK-6.0.0-linux64"; +-$liboptix_dir = "/usr/local/encap/NVIDIA-OptiX-SDK-6.5.0-linux64"; ++$liboptix_dir = "$ENV{'EBROOTOPTIX'}"; + # $liboptix_dir = "/usr/local/encap/NVIDIA-OptiX-SDK-7.0.0-linux64"; + + # NCSA Blue Waters +@@ -1356,7 +1354,7 @@ + die "LIBPNG option requires ZLIB!"; + } + $libpng_defines = "-DVMDLIBPNG"; +-$libpng_dir = "/Projects/vmd/vmd/lib/libpng"; ++$libpng_dir = "$ENV{'EBROOTLIBPNG'}"; + $libpng_include = "-I$libpng_dir/include"; + $libpng_library = "-L$libpng_dir/lib_$config_arch"; + $libpng_libs = "-lpng16"; +@@ -1384,7 +1382,7 @@ + # OPTIONAL COMPONENT: Data compresssion library + # This may be commented out if not required. + $zlib_defines = "-DVMDZLIB"; +-$zlib_dir = "/Projects/vmd/vmd/lib/zlib"; ++$zlib_dir = "$ENV{'EBROOTZLIB'}"; + $zlib_include = "-I$zlib_dir/include"; + $zlib_library = "-L$zlib_dir/lib_$config_arch"; + $zlib_libs = "-lz"; +@@ -1575,7 +1573,7 @@ + # primitives. + ####################### + $actc_defines = "-DVMDACTC"; +-$actc_dir = "$vmd_library_dir/actc"; ++$actc_dir = "$ENV{'EBROOTACTC'}"; + $actc_include = "-I$actc_dir/include"; + $actc_library = "-L$actc_dir/lib_$config_arch"; + $actc_libs = "-lactc"; +@@ -1590,7 +1588,7 @@ + # OPTIONAL COMPONENT: NetCDF I/O Library (Used by cdfplugin) + ####################### + $netcdf_defines = ""; +-$netcdf_dir = "$vmd_library_dir/netcdf"; ++$netcdf_dir = "$ENV{'EBROOTNETCDF'}"; + $netcdf_include = "-I$netcdf_dir/include"; + $netcdf_library = "-L$netcdf_dir/lib_$config_arch"; + $netcdf_libs = "-lnetcdf"; +@@ -1648,7 +1646,7 @@ + $stock_python_library_dir=$ENV{"PYTHON_LIBRARY_DIR"} || "$conda_root/lib/python3.7/config-3.7m-x86_64-linux-gnu"; + $stock_numpy_include_dir=$ENV{"NUMPY_INCLUDE_DIR"} || "$conda_root/lib/python3.7/site-packages/numpy/core/include/numpy"; + $stock_numpy_library_dir=$ENV{"NUMPY_LIBRARY_DIR"} || "$conda_root/lib/python-3.7/site-packages/numpy/core/include"; +- $python_libs = "-fno-lto -lpython3.7m -lpthread"; ++ $python_libs = "$ENV{'PYTHON_LIBRARIES'}" || "-fno-lto -lpython3.7m -lpthread"; + } else { + # $stock_python_include_dir=$ENV{"PYTHON_INCLUDE_DIR"} || "/usr/local/include"; + # $stock_python_library_dir=$ENV{"PYTHON_LIBRARY_DIR"} || "/usr/local/lib"; +@@ -1659,7 +1657,7 @@ + # $stock_numpy_library_dir=$ENV{"NUMPY_LIBRARY_DIR"} || "/usr/local/lib"; + $stock_numpy_include_dir=$ENV{"NUMPY_INCLUDE_DIR"} || "$vmd_library_dir/numpy/lib_$config_arch/include"; + $stock_numpy_library_dir=$ENV{"NUMPY_LIBRARY_DIR"} || "$vmd_library_dir/python/lib_$config_arch/lib/python2.5/site-packages/numpy/core/include"; +- $python_libs = "-lpython2.5 -lpthread"; ++ $python_libs = "$ENV{'PYTHON_LIBRARIES'}" || "-lpython2.5 -lpthread"; + } + + $python_defines = "-DVMDPYTHON"; +@@ -2573,7 +2571,7 @@ + + if ($config_cuda) { + $arch_nvccflags .= " --machine 64 -O3 $cuda_include"; +- $cuda_library = "-L/usr/local/cuda-10.2/lib64"; ++ $cuda_library = "-L/$ENV{'EBROOTCUDA'}/lib64"; + } + + $arch_lex = "flex"; # has problems with vendor lex +@@ -2583,7 +2581,7 @@ + # they likely serve no useful purpose going forward. + if (!$config_opengl_dispatch) { + $opengl_dep_libs = "-L/usr/X11R6/lib64 -lGL -lX11"; +- $mesa_libs = "-lMesaGL -L/usr/X11R6/lib64 -lXext -lX11"; ++ $mesa_libs = "-lGL -lGLU -L/usr/X11R6/lib64 -lXext -lX11"; + } + + # this is to make tcl happy +@@ -3763,7 +3761,7 @@ + + .cu.ptx: + \$(ECHO) "Compiling " \$< " --> " \$*.ptx " ..."; \\ +- \$(NVCC) \$(DEFINES) --use_fast_math $liboptix_include -gencode arch=compute_30,code=compute_30 -ptx \$< $arch_coptout$vmd_arch_dir/\$\@ ++ \$(NVCC) \$(DEFINES) --use_fast_math $liboptix_include -gencode arch=compute_80,code=compute_80 -ptx \$< $arch_coptout$vmd_arch_dir/\$\@ + + .y.o: + diff --git a/Golden_Repo/v/VMD/VMD-1.9.4a51_extra_colors.patch b/Golden_Repo/v/VMD/VMD-1.9.4a51_extra_colors.patch new file mode 100644 index 0000000000000000000000000000000000000000..26e9ba954dbbbb816975a947d97c4d1a69ca1f95 --- /dev/null +++ b/Golden_Repo/v/VMD/VMD-1.9.4a51_extra_colors.patch @@ -0,0 +1,46 @@ +Add some additional colors, e.g. to allow for color blind compatible rendering. +Bob Dröge, 2020-06-23 +--- src/Scene.C.orig 2020-06-23 09:37:41.000000000 +0200 ++++ src/Scene.C 2020-06-23 09:40:59.000000000 +0200 +@@ -63,7 +63,10 @@ + ,"yellow2", "yellow3", "green2", "green3", + "cyan2", "cyan3", "blue2", "blue3", + "violet", "violet2", "magenta", "magenta2", +- "red2", "red3", "orange2", "orange3" ++ "red2", "red3", "orange2", "orange3", ++ "matisse", "flamenco", "forest_green", "punch", ++ "wisteria", "spicy_mix", "orchid", "gray2", ++ "lime_pie", "java" + #endif + + }; +@@ -89,7 +92,17 @@ + 0.27f, 0.00f, 0.98f, 0.45f, 0.00f, 0.90f, // violet + 0.90f, 0.00f, 0.90f, 1.00f, 0.00f, 0.66f, // magenta + 0.98f, 0.00f, 0.23f, 0.81f, 0.00f, 0.00f, // red +- 0.89f, 0.35f, 0.00f, 0.96f, 0.72f, 0.00f // orange ++ 0.89f, 0.35f, 0.00f, 0.96f, 0.72f, 0.00f, // orange ++ 0.1f, 0.5f, 0.7f, // MPL1, matisse ++ 1.0f, 0.5f, 0.1f, // MPL2, flamenco ++ 0.2f, 0.6f, 0.2f, // MPL3, forest green ++ 0.8f, 0.2f, 0.2f, // MPL4, punch ++ 0.6f, 0.4f, 0.7f, // MPL5, wisteria ++ 0.5f, 0.3f, 0.3f, // MPL6, spicy mix ++ 0.9f, 0.5f, 0.8f, // MPL7, orchid ++ 0.5f, 0.5f, 0.5f, // MPL8, gray ++ 0.7f, 0.7f, 0.1f, // MPL9, key lime pie ++ 0.1f, 0.7f, 0.8f // MPL10, java + #endif + + }; +--- src/Scene.h.orig 2020-06-23 09:37:45.000000000 +0200 ++++ src/Scene.h 2020-06-23 09:42:21.000000000 +0200 +@@ -37,7 +37,7 @@ + #define DISP_LIGHTS 4 + + // total number of colors defined here +-#define REGCLRS 33 ++#define REGCLRS 43 + #define EXTRACLRS 1 + #define VISCLRS (REGCLRS - EXTRACLRS) + #define MAPCLRS 1024