ccbuilder can build and install llvm and gcc.
Basic Usage:
ccbuilder build [compiler] [revision]
compiler must be either llvm or gcc and revision either a commit hash
or a tag.
ccbuilder relies on clones the GCC and LLVM git repos and can build most of their recent revisions/commits/tags, e.g.,
ccbuilder build gcc releases/gcc-13.1.0 will build GCC 13.1.0.
The built compilers are installed under ccbuilder's compiler store (a filesystem directory).
After building a compiler, its installation location is printed, e.g.:
% ccbuilder build llvm main
/path/to/ccbuilder_compiler_store/clang-ff7d2fabe074d95cefb683d4a742eec172bd36d5
% /path/to/ccbuilder_compiler_store/clang-ff7d2fabe074d95cefb683d4a742eec172bd36d5/bin/clang -v
clang version 18.0.0 (https://github.com/llvm/llvm-project.git ff7d2fabe074d95cefb683d4a742eec172bd36d5)
...
ccbuilder stores everything under $HOME/.cache, the default locations can
be overriden via command line flags, e.g., ccbuilder build llvm master --compiler-store-path /some/other/path
To update the compiler git repos use ccbuilder --pull.
For more options check ccbuilder -h.
Installation:
pip install [-U] ccbuilder