Skip to content

[Tcl] [package list]

Tcl/9.0.4-cpeGNU-26.03 (Tcl-9.0.4-cpeGNU-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-cpeGNU-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': 'cpeGNU', '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'

[Tcl] [package list]