Tcl/9.0.4-cpeAOCC-26.03 (Tcl-9.0.4-cpeAOCC-26.03.eb)
To access module help and find out for which stacks and partitions the module is
installed, use module spider Tcl/9.0.4-cpeAOCC-26.03.
EasyConfig:
# contributed by Luca Marsella (CSCS)
# Adapted by Kurt Lust (kurt.lust@uantwerpen.be) for the LUMI consortium
easyblock = 'ConfigureMake'
local_Tcl_version = '9.0.4' # https://tcl.tk/
name = 'Tcl'
version = local_Tcl_version
homepage = 'http://www.tcl.tk/'
whatis = [
'Description: Tcl (Tool Command Language) is a very powerful but easy to learn dynamic programming language'
]
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.
"""
software_license_urls = [
'https://tcl.tk/software/tcltk/license.html',
]
toolchain = {'name': 'cpeAOCC', 'version': '26.03'}
# https://downloads.sourceforge.net/project/tcl/Tcl/9.0.4/tcl9.0.4-src.tar.gz
source_urls = ['https://downloads.sourceforge.net/project/%(namelower)s/%(name)s/%(version)s']
sources = ['%(namelower)s%(version)s-src.tar.gz']
checksums = ['d0aed49230bc02a65c1e0229e65f34590a4b037ec40d546f32573b467f7551ea']
build_deps = [ # Create a reproducible build environment.
('buildtools', '%(toolchain_version)s', '', True),
]
# Doesn't need MPI, ROCm or BLAS, and module unload never fails so this is safe.
pre_configure_opts = 'module unload cray-libsci cray-mpich rocm xpmem && '
pre_build_opts = pre_configure_opts
pre_test_opts = pre_configure_opts
pre_install_opts = pre_configure_opts
# Fix: The tclsh command used during the second step in the internal build process does
# not find its shared library that has also just been built./
pre_build_opts += 'LD_LIBRARY_PATH=$PWD:$LD_LIBRARY_PATH'
configure_opts = ' '.join([
# Fix: Second step in the build process does not find the tclsh built during
# the first step
'TCLSH_NATIVE=$PWD/tclsh',
# Taken from the EasyBuilders recipe
'EXTRA_INSTALL="install-private-headers"',
# Avoid picking up a system tclsh, taken from the EasyBuilders recipe
'ac_cv_path_tclsh=no',
# Use internal minizip and zlib libraries, since using external ones
# causes conflicts between header files. Taken from the EasyBuilders recipe
'ac_cv_header_zlib_h=no ac_cv_path_zip=no',
])
start_dir = 'unix'
run_test = 'test'
post_install_cmds = [
'ln -s %(installdir)s/bin/tclsh%(version_major)s.%(version_minor)s %(installdir)s/bin/tclsh',
'mkdir -p %(installdir)s/share/licenses/%(name)s',
'cd .. && cp license.terms changes.md README.md %(installdir)s/share/licenses/%(name)s',
]
sanity_check_paths = {
'files': ['bin/tclsh%(version_major)s.%(version_minor)s', 'bin/tclsh',
'include/tcl.h', 'lib/libtcl%%(version_major)s.%%(version_minor)s.%s' % SHLIB_EXT,
'lib/tclConfig.sh', 'share/man/man1/tclsh.1', f'share/licenses/{name}/license.terms'],
'dirs': ['share'],
}
env_mod_category = 'lang'