We advise the usage of Nix and Nix Flakes to build TC. The versions of all packages used in the build environment are pinned. Nix configuration is specified in a flake.nix file, and version of packages are descibed in flake.lock.

$ nix build .#tc

Nix builds the package tc for the current system in use. The default package tc is compiled by gcc and the package tcClang is TC compiled by clang.

Moreover, Nix Flakes provide a way to have a shell containing the build environment, one can simply use:

$ nix develop

This command creates and activates a shell with packages as listed in flake.nix. This permits to develop TC in a reproductible environment.

Note that Nix Flakes are still an upcoming feature of Nix and thus may change in the future.