1#!/bin/bash
2
3# Helper script to build ACRN with docker
4# This also includes building packages required for ACRN build or runtime
5
6VENDOR=${VENDOR:-debian}
7DISTRO=${DISTRO:-stable}
8
9TOPDIR=$(git rev-parse --show-toplevel)
10DOCKER=$(which docker)
11
12if [ -z "${TOPDIR}" ]; then
13    echo "Run $0 from inside git repository!"
14    exit 1
15fi
16
17if [ -z "${DOCKER}" ]; then
18    echo "Cannot find docker binary, please install!"
19    exit 1
20fi
21
22pushd ${TOPDIR} >/dev/null
23
24if [ ! -f debian/docker/Dockerfile ]; then
25    echo "No Dockerfile available!"
26    exit 1
27fi
28
29set -e
30# create docker image for Debian package build
31cp debian/control debian/docker/debian-control-${VENDOR}-${DISTRO}
32${DOCKER} build \
33    -f debian/docker/Dockerfile \
34    --build-arg DISTRO=${DISTRO} \
35    --build-arg VENDOR=${VENDOR} \
36    -t acrn-pkg-builder:${DISTRO} debian/docker
37rm debian/docker/debian-control-${VENDOR}-${DISTRO}
38
39# build ACRN packages
40${DOCKER} run \
41    --rm \
42    -e UID=$(id -u) \
43    -e GID=$(id -g) \
44    -v $(pwd):/source --entrypoint /usr/local/bin/debian-pkg-build.sh acrn-pkg-builder:${DISTRO} -F --no-sign --git-export-dir=build/${DISTRO} "$@"
45
46# create local apt repository
47${DOCKER} run \
48    --rm \
49    -e UID=$(id -u) \
50    -e GID=$(id -g) \
51    -v $(pwd):/source --entrypoint create-apt-repo.sh acrn-pkg-builder:${DISTRO} build/${DISTRO}
52
53popd >/dev/null
54