build.sh | ||
config.powerpc-none-eabi | ||
Dockerfile-buildtools | ||
Dockerfile-crosstool | ||
Dockerfile-toolchain | ||
README.md |
🛠️🐋 Crosstool-docker
Crosstool-docker is a framework for building docker images with crosstool-ng toolchains installed.
The image name is roobre/crosstool-ng
by default, but can be overridden by setting DOCKER_BASENAME
.
build.sh
will create the following docker images:
-
roobre/crosstool-ng:buildtools
:buildtools
image is an alpine-based image containing most tools needed for compiling C and C++ code. Apart from GCC and libs, it also includes:- git, wget and curl, for fetching packages and repos
- astyle, clang-analyzer, clang-extra-tools and valgrind, for static analysis and linting
- doxygen, for generating docs
- reviewdog, for commenting on CI pull requests
-
roobre/crosstool-ng:crosstool
:crosstool
is thebuildtools
image plus the installation of crosstool-ng itself. This image is used to generate the target toolchain based on config files. -
roobre/crosstool-ng:*
: Images containing toolchains are created fromconfig.*
files present in the WD when invocatingbuild.sh
. Said script will copy eachconfig.*
inside thecrosstool
image, and run crosstool-ng to produce a toolchain using it. This toolchain will be installed into what will be the final image, based onbuildtools
, and tagged asroobre/crosstool-ng:*
, where*
is the suffix of eachconfig.*
file.- The resulting image will not have crosstool-ng installed, only the produced toolchain.
TODO
- Create a
configs/
dir, for better organization. - Provide a better way of generating config files for crosstool-ng.