mirror of
https://github.com/kata-containers/kata-containers.git
synced 2025-09-24 18:27:10 +00:00
static-build: Add build script for OVMF
Introduces a build script for OVMF. Defaults to X86_64 build (x64 in OVMF) Fixes: #4169 Signed-off-by: Alex Carter <alex.carter@ibm.com>
This commit is contained in:
61
tools/packaging/static-build/ovmf/build-ovmf.sh
Executable file
61
tools/packaging/static-build/ovmf/build-ovmf.sh
Executable file
@@ -0,0 +1,61 @@
|
||||
#!/bin/bash
|
||||
#
|
||||
# Copyright (c) 2022 IBM
|
||||
#
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
|
||||
set -o errexit
|
||||
set -o nounset
|
||||
set -o pipefail
|
||||
|
||||
script_dir="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||
source "${script_dir}/../../scripts/lib.sh"
|
||||
|
||||
# disabling set -u because scripts attempt to expand undefined variables
|
||||
set +u
|
||||
ovmf_repo="${ovmf_repo:-}"
|
||||
ovmf_dir="edk2"
|
||||
ovmf_version="${ovmf_version:-}"
|
||||
ovmf_package="${ovmf_package:-}"
|
||||
package_output_dir="${package_output_dir:-}"
|
||||
DESTDIR=${DESTDIR:-${PWD}}
|
||||
PREFIX="${PREFIX:-/opt/kata}"
|
||||
architecture="${architecture:-X64}"
|
||||
toolchain="${toolchain:-GCC5}"
|
||||
build_target="${build_target:-RELEASE}"
|
||||
|
||||
[ -n "$ovmf_repo" ] || die "failed to get ovmf repo"
|
||||
[ -n "$ovmf_version" ] || die "failed to get ovmf version or commit"
|
||||
[ -n "$ovmf_package" ] || die "failed to get ovmf package or commit"
|
||||
[ -n "$package_output_dir" ] || die "failed to get ovmf package or commit"
|
||||
|
||||
info "Build ${ovmf_repo} version: ${ovmf_version}"
|
||||
|
||||
build_root=$(mktemp -d)
|
||||
pushd $build_root
|
||||
git clone "${ovmf_repo}"
|
||||
cd "${ovmf_dir}"
|
||||
git checkout "${ovmf_version}"
|
||||
git submodule init
|
||||
git submodule update
|
||||
|
||||
info "Using BaseTools make target"
|
||||
make -C BaseTools/
|
||||
|
||||
info "Calling edksetup script"
|
||||
source edksetup.sh
|
||||
|
||||
info "Building ovmf"
|
||||
build -b "${build_target}" -t "${toolchain}" -a "${architecture}" -p "${ovmf_package}"
|
||||
|
||||
info "Done Building"
|
||||
|
||||
build_path="Build/${package_output_dir}/${build_target}_${toolchain}/FV/OVMF.fd"
|
||||
stat "${build_path}"
|
||||
|
||||
#need to leave tmp dir
|
||||
popd
|
||||
|
||||
info "Install fd to destdir"
|
||||
mkdir -p "$DESTDIR/$PREFIX/share/ovmf"
|
||||
cp $build_root/$ovmf_dir/"${build_path}" "$DESTDIR/$PREFIX/share/ovmf"
|
Reference in New Issue
Block a user