# Maintainer: Alexey Minnekhanov pkgname=lk2nd pkgver=0.14.0 pkgrel=1 pkgdesc="Secondary little kernel (lk) bootloader for several Qualcomm devices" arch="armv7 aarch64" url="https://github.com/msm8916-mainline/lk2nd" license="MIT AND BSD-3-Clause AND GPL-2.0-only" makedepends="dtc dtc-dev gcc-arm-none-eabi python3 py3-libfdt" source="$pkgname-$pkgver.tar.gz::https://github.com/msm8916-mainline/lk2nd/archive/refs/tags/$pkgver.tar.gz" options="!check !archcheck !tracedeps !strip pmb:cross-native" # This APKBUILD builds bare metal executable; options are very specific! # * there are no tests (how do you even test the bootloader?); # * binaries are "arch-independent"; aarch64 build also produces armv7 binary, # because ARM CPUs boot in 32-bit mode; # * there are no depends for bootloader, it's a kernel and OS in one binary; # * stripping of unused sections is done in lk2nd's own ld script. subpackages=" $pkgname-msm8916 $pkgname-msm8916-appended:msm8916_appended " if [ "$CARCH" = "armv7" ]; then subpackages=" $subpackages $pkgname-msm8226 $pkgname-msm8226-appended:msm8226_appended $pkgname-msm8974 $pkgname-msm8974-appended:msm8974_appended " fi build() { # This builds baremetal executable; distro-specific compiler flags # and optimizations can't be set by build system. unset CFLAGS unset CXXFLAGS unset CPPFLAGS unset LDFLAGS unset CROSS_COMPILE unset CC unset CXX # ccache and crossdirect "gcc"s are in PATH, get rid of them too, # redefine PATH to be bare minimum unset PATH export PATH=/usr/sbin:/usr/bin:/sbin:/bin make LK2ND_VERSION="$pkgver-r$pkgrel-postmarketos" TOOLCHAIN_PREFIX=arm-none-eabi- lk2nd-msm8916 if [ "$CARCH" = "armv7" ]; then make LK2ND_VERSION="$pkgver-r$pkgrel-postmarketos" TOOLCHAIN_PREFIX=arm-none-eabi- lk2nd-msm8974 make LK2ND_VERSION="$pkgver-r$pkgrel-postmarketos" TOOLCHAIN_PREFIX=arm-none-eabi- lk2nd-msm8226 fi } package() { # main package is empty mkdir -p "$pkgdir" } msm8916() { install -Dm644 "$builddir"/build-lk2nd-msm8916/lk2nd.img -t \ "$subpkgdir"/boot } msm8916_appended() { install -Dm644 "$builddir"/build-lk2nd-msm8916/lk2nd-appended-dtb.img \ "$subpkgdir"/boot/lk2nd.img } msm8974() { install -Dm644 "$builddir"/build-lk2nd-msm8974/lk2nd.img -t \ "$subpkgdir"/boot } msm8974_appended() { install -Dm644 "$builddir"/build-lk2nd-msm8974/lk2nd-appended-dtb.img \ "$subpkgdir"/boot/lk2nd.img } msm8226() { install -Dm644 "$builddir"/build-lk2nd-msm8226/lk2nd.img \ "$subpkgdir"/boot/lk2nd.img } msm8226_appended() { install -Dm644 "$builddir"/build-lk2nd-msm8226/lk2nd-appended-dtb.img \ "$subpkgdir"/boot/lk2nd.img } sha512sums=" 6673b0f060e95430e03e146281f58165fa2093b9b7c448efcf2d3add16909425278ecb89c44c3adf5aeede54e186d9b1514bf9a7796b1ff701faf26a82502be9 lk2nd-0.14.0.tar.gz "