docker: add MXE (M cross environment) base image for MinGW-w64

see http://mxe.cc/

Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
This commit is contained in:
Philippe Mathieu-Daudé 2017-07-17 23:47:09 -03:00 committed by Alex Bennée
parent 67f5b285ba
commit 982e758af7
4 changed files with 85 additions and 0 deletions

View File

@ -58,6 +58,7 @@ docker-image-%: $(DOCKER_FILES_DIR)/%.docker
docker-image-debian-powerpc-cross: EXTRA_FILES:=tests/docker/dockerfiles/debian-apt-fake.sh
# Enforce dependancies for composite images
docker-image-debian8-mxe: docker-image-debian8
docker-image-debian-amd64: docker-image-debian9
docker-image-debian-armel-cross: docker-image-debian9
docker-image-debian-armhf-cross: docker-image-debian9
@ -67,6 +68,8 @@ docker-image-debian-mips64el-cross: docker-image-debian9
docker-image-debian-powerpc-cross: docker-image-debian8
docker-image-debian-ppc64el-cross: docker-image-debian9
docker-image-debian-s390x-cross: docker-image-debian9
docker-image-debian-win32-cross: docker-image-debian8-mxe
docker-image-debian-win64-cross: docker-image-debian8-mxe
# Expand all the pre-requistes for each docker image and test combination
$(foreach i,$(DOCKER_IMAGES), \

View File

@ -0,0 +1,32 @@
#
# Docker mingw32 cross-compiler target
#
# This docker target builds on the debian Jessie MXE base image.
#
FROM qemu:debian8-mxe
MAINTAINER Philippe Mathieu-Daudé <f4bug@amsat.org>
ENV TARGET i686
RUN DEBIAN_FRONTEND=noninteractive eatmydata \
apt-get install -y --no-install-recommends \
mxe-$TARGET-w64-mingw32.shared-bzip2 \
mxe-$TARGET-w64-mingw32.shared-curl \
mxe-$TARGET-w64-mingw32.shared-glib \
mxe-$TARGET-w64-mingw32.shared-libgcrypt \
mxe-$TARGET-w64-mingw32.shared-libssh2 \
mxe-$TARGET-w64-mingw32.shared-libusb1 \
mxe-$TARGET-w64-mingw32.shared-lzo \
mxe-$TARGET-w64-mingw32.shared-nettle \
mxe-$TARGET-w64-mingw32.shared-ncurses \
mxe-$TARGET-w64-mingw32.shared-pixman \
mxe-$TARGET-w64-mingw32.shared-pkgconf \
mxe-$TARGET-w64-mingw32.shared-pthreads \
mxe-$TARGET-w64-mingw32.shared-sdl2 \
mxe-$TARGET-w64-mingw32.shared-sdl2-mixer \
mxe-$TARGET-w64-mingw32.shared-sdl2-gfx \
mxe-$TARGET-w64-mingw32.shared-zlib
# Specify the cross prefix for this image (see tests/docker/common.rc)
ENV QEMU_CONFIGURE_OPTS --cross-prefix=$TARGET-w64-mingw32.shared-

View File

@ -0,0 +1,32 @@
#
# Docker mingw64 cross-compiler target
#
# This docker target builds on the debian Jessie MXE base image.
#
FROM qemu:debian8-mxe
MAINTAINER Philippe Mathieu-Daudé <f4bug@amsat.org>
ENV TARGET x86-64
RUN DEBIAN_FRONTEND=noninteractive eatmydata \
apt-get install -y --no-install-recommends \
mxe-$TARGET-w64-mingw32.shared-bzip2 \
mxe-$TARGET-w64-mingw32.shared-curl \
mxe-$TARGET-w64-mingw32.shared-glib \
mxe-$TARGET-w64-mingw32.shared-libgcrypt \
mxe-$TARGET-w64-mingw32.shared-libssh2 \
mxe-$TARGET-w64-mingw32.shared-libusb1 \
mxe-$TARGET-w64-mingw32.shared-lzo \
mxe-$TARGET-w64-mingw32.shared-nettle \
mxe-$TARGET-w64-mingw32.shared-ncurses \
mxe-$TARGET-w64-mingw32.shared-pixman \
mxe-$TARGET-w64-mingw32.shared-pkgconf \
mxe-$TARGET-w64-mingw32.shared-pthreads \
mxe-$TARGET-w64-mingw32.shared-sdl2 \
mxe-$TARGET-w64-mingw32.shared-sdl2-mixer \
mxe-$TARGET-w64-mingw32.shared-sdl2-gfx \
mxe-$TARGET-w64-mingw32.shared-zlib
# Specify the cross prefix for this image (see tests/docker/common.rc)
ENV QEMU_CONFIGURE_OPTS --cross-prefix=x86_64-w64-mingw32.shared-

View File

@ -0,0 +1,18 @@
#
# Docker mingw cross-compiler target
#
# This docker target builds on the debian Jessie base image.
#
FROM qemu:debian8
MAINTAINER Philippe Mathieu-Daudé <f4bug@amsat.org>
# Add the foreign architecture we want and install dependencies
RUN apt-key adv --keyserver keyserver.ubuntu.com --recv-keys D43A795B73B16ABE9643FE1AFD8FFF16DB45C6AB && \
echo "deb http://pkg.mxe.cc/repos/apt/debian jessie main" > /etc/apt/sources.list.d/mxeapt.list
RUN apt-get update
RUN DEBIAN_FRONTEND=noninteractive eatmydata \
apt-get install -y --no-install-recommends \
$(apt-get -s install -y --no-install-recommends gw32.shared-mingw-w64 gw32.shared-mingw-w64 | egrep "^Inst mxe-x86-64-unknown-" | cut -d\ -f2)
ENV PATH $PATH:/usr/lib/mxe/usr/bin/