Introduce QEMU build scripts
This commit is contained in:
committed by
Stanislav Erokhin
parent
658530e820
commit
02379d9412
@@ -0,0 +1,20 @@
|
||||
FROM ubuntu:20.04
|
||||
|
||||
ENV TZ=Europe/Moscow
|
||||
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
|
||||
|
||||
RUN apt-get update && apt-get upgrade -y
|
||||
RUN apt-get install -y build-essential git gcc pkg-config glib-2.0 libglib2.0-dev libsdl1.2-dev libaio-dev libcap-dev libattr1-dev libpixman-1-dev
|
||||
|
||||
RUN git clone --branch v5.1.0 --depth 1 git://git.qemu.org/qemu.git && \
|
||||
cd qemu && \
|
||||
git checkout d0ed6a69d399ae193959225cdeaa9382746c91cc && \
|
||||
git submodule update --init --recursive
|
||||
|
||||
WORKDIR /qemu
|
||||
|
||||
COPY build.sh .
|
||||
|
||||
ENV OUTPUT_DIR="/output"
|
||||
|
||||
ENTRYPOINT "/bin/bash" "build.sh" ${OUTPUT_DIR}
|
||||
@@ -0,0 +1,33 @@
|
||||
#!/bin/bash
|
||||
set -eou pipefail
|
||||
|
||||
INSTALL_PATH=$1
|
||||
QEMU_VERSION=5.1.0
|
||||
DEPENDENCY_VERSION=2
|
||||
|
||||
function build_qemu() {
|
||||
mkdir build
|
||||
./configure \
|
||||
--prefix="$PWD/build" \
|
||||
--static \
|
||||
--disable-debug-info \
|
||||
--disable-werror \
|
||||
--disable-system \
|
||||
--enable-linux-user \
|
||||
|
||||
make -j"$(nproc)"
|
||||
make install
|
||||
}
|
||||
|
||||
function build_archives() {
|
||||
cd build/bin
|
||||
for f in qemu-* ; do
|
||||
DEPENDENCY_NAME="$f-static-$QEMU_VERSION-linux-$DEPENDENCY_VERSION"
|
||||
mkdir -p $DEPENDENCY_NAME
|
||||
mv $f $DEPENDENCY_NAME/$f
|
||||
tar -czvf $INSTALL_PATH/"$DEPENDENCY_NAME.tar.gz" "$DEPENDENCY_NAME"
|
||||
done
|
||||
}
|
||||
|
||||
build_qemu
|
||||
build_archives
|
||||
Executable
+3
@@ -0,0 +1,3 @@
|
||||
#!/bin/sh
|
||||
|
||||
docker build -t kotlin-qemu-builder .
|
||||
Executable
+12
@@ -0,0 +1,12 @@
|
||||
#!/bin/bash
|
||||
set -eou pipefail
|
||||
|
||||
CONTAINER_NAME=kotlin-qemu-builder
|
||||
IMAGE_NAME=kotlin-qemu-builder
|
||||
|
||||
|
||||
docker ps -a | grep $CONTAINER_NAME > /dev/null \
|
||||
&& docker stop $CONTAINER_NAME 1> /dev/null \
|
||||
&& docker rm $CONTAINER_NAME 1> /dev/null
|
||||
|
||||
docker run -it -v "$PWD"/out:/output --name=$CONTAINER_NAME $IMAGE_NAME
|
||||
Reference in New Issue
Block a user