From a30166a84f457e15a1d82536184c29b7149fe00f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20Storsj=C3=B6?= Date: Tue, 28 Nov 2017 16:17:41 +0200 Subject: [PATCH] Restructure the readme wrt the use of docker --- README.md | 52 ++++++++++++++++++++++++++++++++++------------------ 1 file changed, 34 insertions(+), 18 deletions(-) diff --git a/README.md b/README.md index 41a5c83..e2013aa 100644 --- a/README.md +++ b/README.md @@ -33,24 +33,6 @@ To build, just do: This will download and build all parts of the toolchain, and build a few demo apps to show and verify that the toolchain works. -The produced toolchain can be extracted by running this command with the -image id from the `docker build` command above (ending with e.g. -`Successfully built d8b13aad965a`): - - ./extract-docker.sh d8b13aad965a prefix - -This copies the directory `prefix` (which contains the whole toolchain, -with headers and link libraries for all four architectures) from the -built docker image into the current directory. -The Dockerfile currently builds in an Ubuntu 16.04 environment, so the -extracted toolchain can at least be used in such an environment. - -The extracted toolchain can be used by adding `prefix/bin` to `$PATH` -and calling e.g. `x86_64-w64-ming32-clang`. -(If using the extracted toolchain in an environment that already have -got a normal GCC based MinGW toolchain with the same triplet prefix in -the same path, you may need to add -`--sysroot=path/to/prefix/x86_64-w64-mingw32` to the clang commands.) Other branches in this repo contain patches that might not have been merged upstream yet, and tests of building third party projects using @@ -59,6 +41,11 @@ usual binutils names, to allow using it as a drop-in replacement for a normal MinGW toolchain. +If the toolchain is used in an environment that already have got a +normal GCC based MinGW toolchain with the same triplet prefix in +the same path, you may need to add +`--sysroot=path/to/prefix/x86_64-w64-mingw32` to the clang commands. + Status ------ @@ -87,3 +74,32 @@ normal GCC/binutils based MinGW. - The ARM64 target doesn't support thread local variables. Additionally, one may run into other minor differences between GCC and clang. + + +Use outside of Docker +--------------------- + +To use a similar toolchain outside of Docker, you can run the same build +commands as the dockerfile in probably most recent linux distributions. +The build procedure is currently only maintained as a Dockerfile, for ease +of verification, reproducibility and ease of maintainance though. + +The toolchain that was built within the docker image can also be +extracted from the image into the surrounding host environment. +The `extract-docker.sh` script can copy out a directory from a +built docker image, either for getting the toolchain or built test +binaries, when given a docker tag or image id. + +If the `docker build` command ended with e.g. +`Successfully built d8b13aad965a`, you can run: + + ./extract-docker.sh d8b13aad965a prefix + +This copies the directory `prefix` (which contains the whole toolchain, +with headers and link libraries for all four architectures) from the +built docker image into the current directory. +The Dockerfile currently builds in an Ubuntu 16.04 environment, so the +extracted toolchain can at least be used in such an environment. + +The extracted toolchain can be used by adding `prefix/bin` to `$PATH` +and calling e.g. `x86_64-w64-ming32-clang`.