2016-11-27 00:25:08 +01:00
|
|
|
FROM dockcross/base:latest
|
2015-05-13 20:09:25 +02:00
|
|
|
MAINTAINER Matt McCormick "matt.mccormick@kitware.com"
|
2014-11-06 17:14:52 +01:00
|
|
|
|
|
|
|
# Enable 32 bits binaries
|
|
|
|
RUN dpkg --add-architecture i386 && \
|
|
|
|
apt-get update && \
|
2015-02-01 05:02:11 +01:00
|
|
|
apt-get install -y libstdc++6:i386 libgcc1:i386 zlib1g:i386
|
2014-10-12 13:21:43 +02:00
|
|
|
|
2015-05-13 20:29:49 +02:00
|
|
|
# The cross-compiling emulator
|
|
|
|
RUN apt-get update && apt-get install -y \
|
|
|
|
qemu-user \
|
|
|
|
qemu-user-static
|
|
|
|
|
2015-05-16 19:35:18 +02:00
|
|
|
ENV CROSS_TRIPLE arm-linux-gnueabihf
|
|
|
|
ENV CROSS_ROOT /usr/${CROSS_TRIPLE}
|
2016-03-14 22:53:33 +01:00
|
|
|
ENV AS=/usr/bin/${CROSS_TRIPLE}-as \
|
|
|
|
AR=/usr/bin/${CROSS_TRIPLE}-ar \
|
|
|
|
CC=/usr/bin/${CROSS_TRIPLE}-gcc \
|
|
|
|
CPP=/usr/bin/${CROSS_TRIPLE}-cpp \
|
|
|
|
CXX=/usr/bin/${CROSS_TRIPLE}-g++ \
|
2018-05-25 18:34:20 +02:00
|
|
|
LD=/usr/bin/${CROSS_TRIPLE}-ld \
|
|
|
|
FC=/usr/bin/${CROSS_TRIPLE}-gfortran
|
2015-05-16 19:35:18 +02:00
|
|
|
|
2014-10-12 13:21:43 +02:00
|
|
|
# Raspberry Pi is ARMv6+VFP2, Debian armhf is ARMv7+VFP3
|
|
|
|
# Since this Dockerfile is targeting linux-arm from Raspberry Pi onward,
|
|
|
|
# we're sticking with it's custom built cross-compiler with hardfp support.
|
|
|
|
# We could use Debian's armel, but we'd have softfp and loose a good deal
|
|
|
|
# of performance.
|
|
|
|
# See: https://wiki.debian.org/RaspberryPi
|
2014-11-06 17:14:52 +01:00
|
|
|
# We are also using the 4.7 version of the toolchain, so that glibc=2.13
|
2016-05-27 00:54:02 +02:00
|
|
|
|
|
|
|
# Instead of cloning the whole repo (>1GB at the of writing this), we want to do a so-called "sparse checkout" with "shallow cloning":
|
|
|
|
# https://stackoverflow.com/questions/600079/is-there-any-way-to-clone-a-git-repositorys-sub-directory-only/13738951#13738951
|
|
|
|
|
|
|
|
RUN mkdir rpi_tools && cd rpi_tools && git init && git remote add -f origin https://github.com/raspberrypi/tools && \
|
|
|
|
git config core.sparseCheckout true && echo "arm-bcm2708/gcc-linaro-${CROSS_TRIPLE}-raspbian" >> .git/info/sparse-checkout && \
|
|
|
|
git pull --depth=1 origin master && rsync -av arm-bcm2708/gcc-linaro-${CROSS_TRIPLE}-raspbian/ /usr/ && rm -rf ../rpi_tools
|
|
|
|
|
2015-05-13 21:26:08 +02:00
|
|
|
# Allow dynamically linked executables to run with qemu-arm
|
2015-06-05 05:01:06 +02:00
|
|
|
ENV QEMU_LD_PREFIX ${CROSS_ROOT}/libc
|
|
|
|
ENV QEMU_SET_ENV "LD_LIBRARY_PATH=${CROSS_ROOT}/lib:${CROSS_ROOT}/libc/lib/${CROSS_TRIPLE}/"
|
2015-05-13 20:09:25 +02:00
|
|
|
|
2015-06-05 05:01:06 +02:00
|
|
|
COPY Toolchain.cmake ${CROSS_ROOT}/
|
|
|
|
ENV CMAKE_TOOLCHAIN_FILE ${CROSS_ROOT}/Toolchain.cmake
|
2016-10-31 04:57:04 +01:00
|
|
|
|
|
|
|
# Build-time metadata as defined at http://label-schema.org
|
|
|
|
ARG BUILD_DATE
|
2019-01-13 21:50:24 +01:00
|
|
|
ARG IMAGE=dockcross/linux-armv6
|
|
|
|
ARG VERSION=latest
|
2016-10-31 04:57:04 +01:00
|
|
|
ARG VCS_REF
|
|
|
|
ARG VCS_URL
|
|
|
|
LABEL org.label-schema.build-date=$BUILD_DATE \
|
|
|
|
org.label-schema.name=$IMAGE \
|
2019-01-13 21:50:24 +01:00
|
|
|
org.label-schema.version=$VERSION \
|
2016-10-31 04:57:04 +01:00
|
|
|
org.label-schema.vcs-ref=$VCS_REF \
|
|
|
|
org.label-schema.vcs-url=$VCS_URL \
|
|
|
|
org.label-schema.schema-version="1.0"
|
2019-01-13 21:50:24 +01:00
|
|
|
ENV DEFAULT_DOCKCROSS_IMAGE ${IMAGE}:${VERSION}
|