# Copyright 2018 The Chromium OS Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

EAPI=5

SRC_URI="https://github.com/rhboot/shim/releases/download/${PV}/shim-${PV}.tar.bz2"
KEYWORDS="*"

inherit eutils multilib toolchain-funcs

DESCRIPTION="Red Hat UEFI shim loader"
HOMEPAGE="https://github.com/rhboot/shim"
LICENSE="BSD-2"
SLOT="0"
IUSE=""

RDEPEND=""
DEPEND="dev-libs/openssl
	sys-boot/gnu-efi"

S="${WORKDIR}/${P}"

shim_arch() {
	case ${ARCH} in
	amd64) echo "x86_64";;
	arm64) echo "aarch64";;
	*)     eerror "unsupported architecture: ${ARCH}";;
	esac
}

shim_binary() {
	case ${ARCH} in
	amd64) echo "shimx64.efi";;
	arm64) echo "shimaa64.efi";;
	*)     eerror "unsupported architecture: ${ARCH}";;
	esac
}

src_prepare() {
	cros_use_gcc
	epatch "${FILESDIR}"/${PN}-15-fix-aarch64-build.patch
	epatch "${FILESDIR}"/${PN}-15-fix-vlogerror-arm64-crash.patch
	default
}

src_compile() {
	local arch_ldflags=""
	tc-ld-is-gold && arch_ldflags="--no-experimental-use-relr"

	emake ARCH="$(shim_arch)" \
		CROSS_COMPILE="${CHOST}-" \
		EFI_INCLUDE="${ROOT}/usr/include/efi" \
		EFI_PATH="${ROOT}/usr/$(get_libdir)" \
		ARCH_LDFLAGS="${arch_ldflags}" \
		COMMITID="${GIT_COMMIT_ID}" \
		DEFAULT_LOADER="\\\\\\\\grub-lakitu.efi" \
		$(shim_binary)
}

src_install() {
	insinto /boot/efi/boot
	doins "$(shim_binary)"
}
