No description
Find a file
2020-05-11 11:22:23 +02:00
build.sh use multistage build, naming 2020-02-27 18:25:16 +01:00
config.powerpc-none-eabi Initial commit, with powerpc-none-eabi config 2020-01-31 16:42:44 +01:00
Dockerfile-buildtools buildtools: merge apk add commands 2020-05-11 11:09:11 +02:00
Dockerfile-crosstool use multistage build, naming 2020-02-27 18:25:16 +01:00
Dockerfile-toolchain toolchain: cosmetic changes 2020-05-11 11:22:13 +02:00
README.md readme: updated documentation 2020-05-11 11:22:23 +02:00

🛠️🐋 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 the buildtools 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 from config.* files present in the WD when invocating build.sh. Said script will copy each config.* inside the crosstool image, and run crosstool-ng to produce a toolchain using it. This toolchain will be installed into what will be the final image, based on buildtools, and tagged as roobre/crosstool-ng:*, where * is the suffix of each config.* 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.