# Co-Maintainer: Achill Gilgenast <achill@achill.org>
maintainer="Aelin <aelin@postmarketos.org>"
pkgname=linux-postmarketos-mainline
pkgver=6.19_rc7
pkgrel=0
_rel=${pkgver#*_p}
_kver=${pkgver%_p*}
_kver=${_kver//_/-}
pkgdesc="Mainline Kernel"
# armhf: pmbootstrap cannot dynamically choose a defconfig, so it ends up using multi_v7_defconfig which isn't correct
# s390x: kconfigcheck is not ready for it yet
arch="all !armhf !s390x"
_flavor="mainline"
url="https://kernel.org"
license="GPL-2.0-only"
options="
	!check
	!strip
	!tracedeps
	pmb:cross-native
	pmb:generic-kernel
	pmb:kconfigcheck-community
	pmb:kconfigcheck-immutable
	pmb:kconfigcheck-rust
	pmb:kconfigcheck-uefi
	pmb:kconfigcheck-virt
"
makedepends="
	bison
	clang
	clang-libclang
	diffutils
	elfutils-dev
	findutils
	flex
	linux-headers
	lld
	llvm
	openssl-dev
	pahole
	perl
	postmarketos-installkernel
	python3
	rust
	rust-bindgen
	rust-src
	rustfmt
	sed
	zstd
"

# Source
source="
	$pkgname-$pkgver.tar.gz::https://git.kernel.org/torvalds/t/linux-${pkgver/_/-}.tar.gz

	config-mainline.aarch64
	config-mainline.armv7
	config-mainline.loongarch64
	config-mainline.ppc64le
	config-mainline.riscv64
	config-mainline.x86
	config-mainline.x86_64
"
builddir="$srcdir/linux-${pkgver/_/-}"
_defconfig="defconfig"

case "$CARCH" in
	aarch64*) _carch="arm64" ;;
	arm*) _carch="arm" ;;
	loongarch*) _carch="loongarch" ;;
	ppc*) _carch="powerpc" ;;
	riscv*) _carch="riscv" ;;
	s390x) _carch="s390" ;;
	x86) _carch="i386" ;;
	x86_64) _carch="x86_64" ;;
esac

prepare() {
	default_prepare
	cp "$srcdir/config-$_flavor.$CARCH" .config
}

build() {
	unset LDFLAGS
	make ARCH="$_carch" LLVM=1 \
		KBUILD_BUILD_VERSION="$((pkgrel + 1 ))-$_flavor"
}

package() {
	local _install
	case "$CARCH" in
		arm*|aarch64|riscv*) _install="zinstall dtbs_install" ;;
		*) _install="install" ;;
	esac

	make modules_install $_install \
		ARCH="$_carch" \
		LLVM=1 \
		INSTALL_PATH="$pkgdir"/boot/ \
		INSTALL_MOD_PATH="$pkgdir" \
		INSTALL_MOD_STRIP=1 \
		INSTALL_DTBS_PATH="$pkgdir"/boot/dtbs-$_flavor

	rm -f "$pkgdir"/lib/modules/*/build "$pkgdir"/lib/modules/*/source

	install -D "$builddir"/include/config/kernel.release \
		"$pkgdir"/usr/share/kernel/$_flavor/kernel.release
}

sha512sums="
130e02aa4f922ca57276b3c0d9c43028bd3d4f99f7c7f02d37b82fd570355baf91886072b0a06fae17472d1831a0b8045ad53e9731ad643d506a94ded74a2936  linux-postmarketos-mainline-6.19_rc7.tar.gz
4cbee07e5757519984b117b598902535bd871e18291bcba548b522bfffa318f128a94eaba3f2b6332497a1260f08555f5d930b4295bc6e262054f5ef4337385b  config-mainline.aarch64
958c539f295512c3421c2167c9e2e0acbe3814d9baddc6f38531223425449a800f7564efa2d1140d875889d1d2e441742632f200f5fb9ddd9de65d86206bfbf3  config-mainline.armv7
bd8be19241526c42025b2cc5c24ba8ab1466a096fc20a066d161bc111771b4ac4a7ef1f3ddfcf8bc60885d829d7b320bd40dbd1eee9d64015dab588c91ea885d  config-mainline.loongarch64
08aca80506b3f39001f6addba5b64610d12b306b1e697e88f77938411b9dae599e9c565c2cec5aa35a0f292d505fc8203868d5397178f8b968539dff1b75e5ba  config-mainline.ppc64le
cc970c8b079bbe1fcac5efa1e0baa62fed42728ebdefc376140d41e9d8586326aaa73f3ed5acab7e1b8442767276c4e4223642ad1d030adf5fe2ec7bb26cac8a  config-mainline.riscv64
a1b8e62a1849c77905724353253fdaad26bf8121b77cb5882e6a5190fdedf8aaf24a0d2a6056d7d3cd95d091687679db2ac7712b0294aa9b2fb5ec8190a4f8a6  config-mainline.x86
08fe08dd50d5094622476fca186cb460fe9f46d76f709615f397571ba8d9915a9e315efd7d5f6d5de931287bdf1c5a6389bd75ba44fe16d8230fbb7c6c44bf3b  config-mainline.x86_64
"
