buildtools
User documentation
What is buildtools?
Buildtools is a collection of various build tools installed in a single module and directory tree. We update it once with every toolchain and give it a version number based on the toolchain.
The original setup was to only include executables and not libraries. However, that created a build dependency on sufficiently recent versions of Bison 3.0 and flex, so we decided to include them also even though they provide libraries that we may want to compile with a more recent GCC when used in applications (though I expect that even then those libraries will only be used on a non-performance-critical part of the code, I would expect in I/O. And by specifying other flex and/or Bison modules in the right order when building those applications, we may even totally avoid these problems.
The contents of the module evolved over time. It does contain a subset of:
- GNU Autoconf
- GNU Autoconf-archive
- GNU Automake
- GNU Bison
- GNU libtool
- GNU M4
- GNU make
- GNU sed
- Byacc
- CMake
- Flex
- Ninja
- NASM
- Yasm
- patchelf
- re2c
- GNU gperf
- GNU help2man
- Doxygen
- xxd comes as part of Vim
Build tools written in Python such as Meson and SCons, have been moved to the buildtools-python module as they can interfere with build processes if that build process uses a different version of Python than the build tool.
Pre-installed modules (and EasyConfigs)
To access module help and find out for which stacks and partitions the module is
installed, use module spider buildtools/<version>
.
EasyConfig:
-
buildtools/22.08-minimal (EasyConfig: buildtools-22.08-minimal.eb)
-
buildtools/22.08-noPython (EasyConfig: buildtools-22.08-noPython.eb)
-
buildtools/22.12-bootstrap (EasyConfig: buildtools-22.12-bootstrap.eb)
-
buildtools/23.03-bootstrap (EasyConfig: buildtools-23.03-bootstrap.eb)
-
buildtools/23.09-bootstrap (EasyConfig: buildtools-23.09-bootstrap.eb)
-
buildtools/23.12-bootstrap (EasyConfig: buildtools-23.12-bootstrap.eb)
-
buildtools/24.03-bootstrap (EasyConfig: buildtools-24.03-bootstrap.eb)
Technical documentation
Contents
Links for quick checking for version updates:
Package | Version link |
---|---|
GNU Autoconf | version check |
GNU Autoconf-archive | version check |
GNU Automake | version check |
GNU Bison | version check |
GNU libtool | version check |
GNU M4 | version check |
GNU make | version check |
GNU sed | version check |
Byacc | version check |
CMake | version check |
Flex | version check |
Ninja | version check |
Meson | version check |
SCons | version check |
NASM | version check |
Yasm | version check |
patchelf | version check |
re2c | version check |
GNU gperf | version check |
GNU help2man | version check |
Doxygen | version check or version check |
xxd | version check: part of vim |
Not included at the moment:
- git (version check) (due to OS dependencies not present on Eiger)
- pkg-config (version check): Including our own pkg-config interfers with the pkg-config included with the Cray PE and causes some configure processes to fail.
EasyConfigs
Notes
- CMake still requires an ncurses and OpenSSL library from the system.
- There are dependencies between those packages, so sometimes the order in the EasyConfig file does matter and is chosen to use the newly installed tools for the installation of some of the other tools in the bundle.
21.05 and 21.06 (the same)
- Started development from an EasyCofig file in use at UAntwerpen 2020a version)
- We did add EBROOT and EBVERSION variables for all components for increased compatibility with standard EasysBuild-generated modules (in case those variables would, e.g., be used in EasyBlocks for certain software packages).
- Added re2c and SCons to the bundle.
21.08 and 21.09 (the same)
- Version update of all components to the most recent version as of 14 September 2021.
21.12
-
Version update of all components to the most recent version as of 4 February 2022.
-
SCons 4.3 now builds without problems. (in 21.08 the 4.x branch was avoided). Downloads changed to PyPi; SourceForge does no longer seem to contain the newest version.
-
Added
xxd
, a hexadecimal editor that comes withvim
, as it is a build dependency for recent PLUMED versions. This ensures that the command will be present even ifvim
would be deleted again from the system images.
22.06
- Version updates of components.
22.08
-
Major change: Split into a -minimal version which is linked against the system libraries but does not have all functionality (left out some tools that are not needed in that version, and some commands, e.g., ccmake, are missing) and then the full version which is linked against the static library package
syslibs
which allows us to usencurses
and to minimize interference with other tools. -
Major change: A
-noPython
version that leaves out Meson and SCons as those require Python and can interfer with software that needs a different version of Python. -
Some version updates.
22.12 and 23.03
-
Further implementation of the changes
-
Version that is used to bootstrap until we can build a proper
buildtools
module now has the version suffix-bootstrap
. -
The regular
buildtools
module no longer contains any Python-based tool that requirePYTHONPATH
to be set due to interference with other tools that might need a different version of Python. -
The separate
buildtools-python
modules provide the Python-based tools.
-
-
Otherwise just version updates of the packages used in 22.08.
-
Note that we first tried with SCons 4.5.1 but that version was too new for some other packages. Serf in syslibs, e.g., failed.
23.09
-
Some components have been updated to the latest version, others (SCons and Meson) were kept at the current version. Meson because it is the last version compatible with the system Python, and SCons because we've had problems with other software at the previous update.
Some packages also do not compile in newer versions on SUSE 15 as either the compiler is too old or the system Python is no longer supported.
23.12
- Minimal version updates, only CMake was updated as there it is important to have the latest.
24.03
- Total refresh of 23.12, except for those packages where newer versions offer compile problems with the current system compiler on LUM<I.
Archived EasyConfigs
The EasyConfigs below are additonal easyconfigs that are not directly available on the system for installation. Users are advised to use the newer ones and these archived ones are unsupported. They are still provided as a source of information should you need this, e.g., to understand the configuration that was used for earlier work on the system.
-
Archived EasyConfigs from LUMI-SoftwareStack - previously centrally installed software
-
EasyConfig buildtools-21.06.eb, with module buildtools/21.06
-
EasyConfig buildtools-21.08.eb, with module buildtools/21.08
-
EasyConfig buildtools-21.09.eb, with module buildtools/21.09
-
EasyConfig buildtools-21.12.eb, with module buildtools/21.12
-
EasyConfig buildtools-22.06.eb, with module buildtools/22.06
-