# Template file for 'refind'
pkgname=refind
version=0.12.0
revision=3
archs="x86_64* i686* aarch64*"
makedepends="gnu-efi-libs"
depends="bash dosfstools efibootmgr"
short_desc="EFI boot manager utility"
maintainer="Đoàn Trần Công Danh <congdanhqx@gmail.com>"
license="GPL-3.0-only, BSD-3-Clause"
homepage="https://sourceforge.net/projects/refind/"
distfiles="${SOURCEFORGE_SITE}/refind/refind-src-${version}.tar.gz"
checksum=7bb8505bc9ff87a7b6de38bf9a91d46f4d613b30031d5eb088a4d791a31eb7c4
python_version=2
conf_files="/etc/default/refind-kernel-hook.conf"

post_extract() {
	vsed -e 's|RefindDir=\"\$ThisDir/refind\"|RefindDir="/usr/share/refind"|g' \
		-i refind-install

	# Patch paths to libaries and includes for cross-compiling
	vsed \
		-e "s|^EFIINC.*|EFIINC = ${XBPS_CROSS_BASE}/usr/include/efi|" \
		-e "s|^GNUEFILIB.*|GNUEFILIB = ${XBPS_CROSS_BASE}/usr/lib|" \
		-e "s|^EFILIB.*|EFILIB = ${XBPS_CROSS_BASE}/usr/lib|" \
		-e "s|^EFICRT0.*|EFICRT0 = ${XBPS_CROSS_BASE}/usr/lib|" \
		-i Make.common

	# Only this file is written in python3
	# All other files are python2
	vsed -e '1s,^.*python3$,#!/usr/bin/python3,' \
			-i refind-mkdefault
}

do_build() {
	unset CFLAGS CXXFLAGS CPPFLAGS LDFLAGS

	case "$XBPS_TARGET_MACHINE" in
		i686*) _ARCH="ia32";;
		*) _ARCH="${XBPS_TARGET_MACHINE%-musl}";;
	esac

	if [ "$CROSS_BUILD" ]; then
		export CROSS_COMPILE="${XBPS_CROSS_TRIPLET}-"
	fi

	make ARCH=${_ARCH} gnuefi fs_gnuefi
}

do_install() {

	case "$XBPS_TARGET_MACHINE" in
		i686*) _EFI_ARCH="ia32";;
		x86_64*) _EFI_ARCH="x64";;
		aarch64*) _EFI_ARCH="aa64";;
	esac

	vbin mkrlconf
	vbin mvrefind
	vbin refind-mkdefault
	vbin refind-install
	vbin fonts/mkfont.sh refind-mkfont

	vlicense LICENSE.txt

	vdoc COPYING.txt
	vdoc README.txt
	vdoc CREDITS.txt
	vdoc NEWS.txt
	vcopy docs/refind /usr/share/doc/refind
	vcopy docs/Styles /usr/share/doc/refind

	vman docs/man/mkrlconf.8
	vman docs/man/mvrefind.8
	vman docs/man/refind-install.8
	vman docs/man/refind-mkdefault.8

	vmkdir usr/share/refind
	vcopy refind/refind_${_EFI_ARCH}.efi /usr/share/refind/
	vcopy refind.conf-sample /usr/share/refind/
	vcopy fonts /usr/share/refind/
	vcopy icons /usr/share/refind/
	vcopy banners /usr/share/refind/
	vcopy images /usr/share/refind/
	vcopy drivers_${_EFI_ARCH} /usr/share/refind/
	vmkdir usr/share/refind/tools_${_EFI_ARCH}
	vcopy gptsync/gptsync_${_EFI_ARCH}.efi /usr/share/refind/tools_${_EFI_ARCH}/

	vmkdir etc/refind.d
	vcopy keys /etc/refind.d/

	vinstall "${FILESDIR}/refind-kernel-hook.conf" 644 etc/default
	vinstall ${FILESDIR}/kernel.post-install 744 \
		etc/kernel.d/post-install 50-refind
	vinstall ${FILESDIR}/kernel.post-remove 744 \
		etc/kernel.d/post-remove 50-refind
}
