diff --git a/Dockerfile b/Dockerfile index e504e94..673e336 100644 --- a/Dockerfile +++ b/Dockerfile @@ -16,14 +16,37 @@ WORKDIR /build ARG CORES=4 ENV TOOLCHAIN_PREFIX=/opt/llvm-mingw + +# Build and strip the LLVM installation +COPY build-llvm.sh strip-llvm.sh ./ +RUN ./build-llvm.sh $TOOLCHAIN_PREFIX && \ + ./strip-llvm.sh $TOOLCHAIN_PREFIX && \ + rm -rf /build + ENV TOOLCHAIN_ARCHS="i686 x86_64 armv7 aarch64" -# Build everything and clean up, in one step -COPY *.sh libssp-Makefile ./ +# Install the usual $TUPLE-clang binaries COPY wrappers/*.sh ./wrappers/ COPY wrappers/*.c ./wrappers/ -RUN ./build-all.sh $TOOLCHAIN_PREFIX && \ - ./strip-llvm.sh $TOOLCHAIN_PREFIX && \ +COPY install-wrappers.sh . +RUN ./install-wrappers.sh $TOOLCHAIN_PREFIX && \ + rm -rf /build + +# Build MinGW-w64, compiler-rt and mingw-w64's extra libraries +COPY build-mingw-w64.sh build-compiler-rt.sh build-mingw-w64-libraries.sh ./ +RUN ./build-mingw-w64.sh $TOOLCHAIN_PREFIX && \ + ./build-compiler-rt.sh $TOOLCHAIN_PREFIX && \ + ./build-mingw-w64-libraries.sh $TOOLCHAIN_PREFIX && \ + rm -rf /build + +# Build libunwind/libcxxabi/libcxx +COPY build-libcxx.sh merge-archives.sh ./ +RUN ./build-libcxx.sh $TOOLCHAIN_PREFIX && \ + rm -rf /build + +# Build libssp +COPY build-libssp.sh libssp-Makefile ./ +RUN ./build-libssp.sh $TOOLCHAIN_PREFIX && \ rm -rf /build # Cheating: Pull strip and objcopy from the normal binutils package.