libpng/1.6.40-cpeGNU-24.03 (libpng-1.6.40-cpeGNU-24.03.eb)
To access module help and find out for which stacks and partitions the module is
installed, use module spider libpng/1.6.40-cpeGNU-24.03
.
EasyConfig:
# Built with EasyBuild version 3.1.0 on 2017-02-06_17-11-24
easyblock = 'ConfigureMake'
local_zlib_version = '1.3.1' # https://zlib.net/
local_libpng_version = '1.6.40' # http://www.libpng.org/pub/png/libpng.html
name = 'libpng'
version = local_libpng_version
homepage = 'http://www.libpng.org/pub/png/libpng.html'
whatis = [
'Description: libpng is the official PNG reference library',
'This module provides some command line tools and static and shared libraries',
]
description = """
libpng is the official PNG reference library. It supports almost all PNG
features, is extensible, and has been extensively tested for over 22 years. The
home site for development versions (i.e., may be buggy or subject to change or
include experimental features) is https://libpng.sourceforge.io/, and the place
to go for questions about the library is the png-mng-implement mailing list.
libpng is available as ANSI C (C89) source code
The libpng 1.5.x, 1.6.x, and upcoming 1.7.x series continue the evolution of the
libpng API, finally hiding the contents of the venerable and hoary png_struct
and png_info data structures inside private (i.e., non-installed) header files.
Instead of direct struct-access, applications should be using the various
png_get_xxx() and png_set_xxx() accessor functions, which have existed for
almost as long as libpng itself.
"""
software_license_urls = [
'http://www.libpng.org/pub/png/src/libpng-LICENSE.txt',
f'https://sourceforge.net/p/libpng/code/ci/v{version}/tree/LICENSE',
]
toolchain = {'name': 'cpeGNU', 'version': '24.03'}
toolchainopts = {'pic': True}
source_urls = [SOURCEFORGE_SOURCE]
sources = [SOURCELOWER_TAR_GZ]
checksums = ['8f720b363aa08683c9bf2a563236f45313af2c55d542b5481ae17dd8d183bb42']
builddependencies = [ # Create a reproducible build environment.
('buildtools', '%(toolchain_version)s', '', True),
]
dependencies = [
('zlib', local_zlib_version),
]
# Doesn't need MPI, ROCm or BLAS, and module unload never fails so this is safe.
preconfigopts = 'module unload cray-libsci cray-mpich rocm xpmem && '
prebuildopts = preconfigopts
configopts = "--with-pic"
postinstallcmds = [
'ln -s %(installdir)s/include/libpng16 %(installdir)s/include/libpng',
'mkdir -p %(installdir)s/share/licenses/%(name)s',
'cp ANNOUNCE AUTHORS CHANGES LICENSE README TRADEMARK %(installdir)s/share/licenses/%(name)s',
]
local_majminver = '%(version_major)s%(version_minor)s'
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' % local_majminver, 'lib/libpng%s.%s' % (local_majminver, SHLIB_EXT),
f'share/licenses/{name}/LICENSE'],
'dirs': ['bin', 'include/libpng%s' % local_majminver, 'share/man'],
}
sanity_check_commands = [
'libpng16-config --version',
'pkg-config --libs libpng16',
]
moduleclass = 'lib'