Files
xemu/ubuntu-win64-cross/llvm.Dockerfile
2026-01-10 02:45:57 -07:00

85 lines
1.9 KiB
Docker

#
# Environment to cross-compile xemu for Windows
#
FROM docker.io/library/buildpack-deps:trixie
ENV MXE_PATH=/usr/local/mxe
ENV MXE_TAG=llvm-mingw-20251219
ENV MXE_REPO=https://github.com/kleisauke/mxe.git
ARG TARGETS="x86_64-w64-mingw32.static aarch64-w64-mingw32.static"
ARG JOBS=6
RUN apt-get update \
&& DEBIAN_FRONTEND=noninteractive \
apt-get -qy install \
autopoint \
bison \
build-essential \
flex \
gettext \
gperf \
gtk-update-icon-cache \
intltool \
jq \
libtool-bin \
libxml-parser-perl \
lzip \
p7zip-full \
python-is-python3 \
python3-mako \
python3-venv \
python3-yaml \
ruby \
zip \
zstd
WORKDIR /usr/local
RUN git clone -b ${MXE_TAG} --single-branch ${MXE_REPO}
WORKDIR /usr/local/mxe
# Bootstrap compilers and utilities
RUN --mount=type=cache,id=mxe-download,target=/usr/local/mxe/pkg \
echo "MXE_TARGETS := x86_64-pc-linux-gnu" > settings.mk && \
make autotools cargo-c cc meson nasm pe-util \
MXE_VERBOSE=true \
MXE_TMP="/var/tmp" \
MXE_PLUGIN_DIRS="plugins/llvm-mingw" \
JOBS=${JOBS}
RUN rm ${MXE_PATH}/src/sdl2*.patch
COPY vulkan-headers.mk \
glib.mk \
sdl2.mk \
libsamplerate.mk \
libressl.mk \
curl.mk \
${MXE_PATH}/src/
RUN make \
MXE_TARGETS="${TARGETS}" \
MXE_VERBOSE=true \
MXE_TMP="/var/tmp" \
MXE_PLUGIN_DIRS="plugins/llvm-mingw" \
JOBS=${JOBS} \
CFLAGS=-O2 \
glib \
libepoxy \
libusb1 \
pixman \
libsamplerate \
libressl \
cmake \
libslirp \
sdl2 \
vulkan-headers \
curl
RUN find ${MXE_PATH}/usr -executable -type f -exec chmod a+x {} \;
ENV CROSSPREFIX=aarch64-w64-mingw32.static-
ENV CROSSAR=${CROSSPREFIX}ar
ENV PATH="${MXE_PATH}/.ccache/bin:${MXE_PATH}/usr/x86_64-pc-linux-gnu/bin:${MXE_PATH}/usr/bin:${PATH}"