# Reference: <https://postmarketos.org/vendorkernel>
# Kernel config based on: arch/arm64/configs/exynos9610-a50_core_defconfig

pkgname=linux-samsung-a50
pkgver=4.14.194
pkgrel=1
pkgdesc="Samsung Galaxy A50 kernel fork"
arch="aarch64"
_carch="arm64"
_flavor="samsung-a50"
url="https://kernel.org"
license="GPL-2.0-only"
options="!strip !check !tracedeps pmb:cross-native"
makedepends="
	bash
	bc
	bison
	clang
	devicepkg-dev
	findutils
	flex
	linux-headers
	lld
	llvm
	openssl-dev
	perl
	python3
"

# Sources
_kernel_repo="android_kernel_samsung_exynos9610_mint"
_kernel_repo_commit="7f72a8b689677562f028d78b2e91bd79277a0aba"
_kernel_archive_url="https://github.com/FreshROMs/$_kernel_repo/archive/$_kernel_repo_commit.tar.gz"

_config="config-$_flavor.$arch"

source="
	$pkgname-$_kernel_repo_commit.tar.gz::$_kernel_archive_url
	$_config
	fix-check-lxdialog.patch
	lz4_missing_label.patch
	disable_optimization_flags.patch
	remove_kernelsu_entirely.patch
	scsc_use_path_from_kconfig.patch
	various_firmware_paths.patch
	dtbinst_remove_target.patch
	no_trailingspaces.patch
	arm64-vdso-fix-vdso_offset_sigtramp-undeclared.patch
	memcpy-STB_GLOBAL.patch
"
builddir="$srcdir/$_kernel_repo-$_kernel_repo_commit"
_outdir="out"

prepare() {
	default_prepare
	REPLACE_GCCH=0 . downstreamkernel_prepare
}

build() {
	mkdir -p $_outdir/firmware/tsp_imagis
	cp firmware/tsp_imagis/ist40xx_a80.bin $_outdir/firmware/tsp_imagis/ist40xx_a80.bin
	cp firmware/tsp_imagis/ist40xx_a80_cmcs.bin $_outdir/firmware/tsp_imagis/ist40xx_a80_cmcs.bin

	mkdir -p $_outdir/drivers/misc/tzdev
	cp drivers/misc/tzdev/startup.tzar $_outdir/drivers/misc/tzdev/startup.tzar
	cp drivers/misc/tzdev/startup_old.tzar $_outdir/drivers/misc/tzdev/startup_old.tzar

	unset LDFLAGS
	make O="$_outdir" ARCH="$_carch" \
		CC=clang \
		LD=ld.lld \
		AR=llvm-ar \
		NM=llvm-nm \
		STRIP=llvm-strip \
		OBJCOPY=llvm-objcopy \
		OBJDUMP=llvm-objdump \
		READELF=llvm-readelf \
		HOSTCC=clang \
		HOSTCXX=clang++ \
		HOSTAR=llvm-ar \
		HOSTLD=ld.lld \
		LLVM=1 LLVM_IAS=1 \
		KBUILD_BUILD_VERSION="$((pkgrel + 1 ))-postmarketOS"
}

package() {
	downstreamkernel_package "$builddir" "$pkgdir" "$_carch" \
		"$_flavor" "$_outdir"

	# Modules
	unset LDFLAGS
	make O="$_outdir" ARCH="$_carch" \
		KBUILD_BUILD_VERSION="$((pkgrel + 1))-postmarketOS" \
		CC=clang \
		LD=ld.lld \
		AR=llvm-ar \
		NM=llvm-nm \
		STRIP=llvm-strip \
		OBJCOPY=llvm-objcopy \
		OBJDUMP=llvm-objdump \
		READELF=llvm-readelf \
		HOSTCC=clang \
		HOSTCXX=clang++ \
		HOSTAR=llvm-ar \
		HOSTLD=ld.lld \
		LLVM=1 LLVM_IAS=1 \
		INSTALL_MOD_PATH="$pkgdir" \
		INSTALL_MOD_STRIP=1 \
		MODLIB="$pkgdir/lib/modules/4.14.194" \
		INSTALL_PATH="$pkgdir/boot" \
		modules_install dtbs_install

}

sha512sums="
a8937404ae7547c7a4b623f77f44a08390749c0d527c783bb7f99758dbfc204b7fe95df1d7b5c3f52bd0febf84fc8fcb28196574436cbd131d476ea707ffdf22  linux-samsung-a50-7f72a8b689677562f028d78b2e91bd79277a0aba.tar.gz
3e56ab2d917429a25207b19e440b11e47798871fa650a1e311b381fe6dcc814960d509c78c39c620bd63aa10b2435c8fca539a441510ec9e0d29bbdba8becc98  config-samsung-a50.aarch64
182be3c596b9cc267ac108d7cf03fc8c328ccc6b36770800e4dcedea8d1bb65e3f5eacf590c2948f58b1418cc60a1670ba77dde8c259e428d158c31b6e1dbaf5  fix-check-lxdialog.patch
c3024ec5bab940c2792d9dd2d6407c6a099ad1c301de3bea087f166e2d0102d653efd7fe21fd74abbeb289cab89090eb8cbd9abf325dcb8327ae75820358b87c  lz4_missing_label.patch
dd5cbce4ffca5c919b9819bec8ff9d4902e3fb024780d12467c498f933fd9bc4af638ab1eaaf53269e491e1a4576bb34cda980a2e70252aed1b831264aa48e01  disable_optimization_flags.patch
c635cfc37b84e7cebb70275bd90dd3db6f73e3e6507c34a075dfb870b1b5305939cd4d52c8a2ccb19b62f90dad08d4548d10eabace3df06387e38c9f30f6cd39  remove_kernelsu_entirely.patch
a3b72366255eeb3a339646b56857171c8f9a20b020ce2fe0837ee0fd32e07a866d0329624cf6d60481eb75f80a19cfb356e67f44dff61dc9b7ae822ab91d6137  scsc_use_path_from_kconfig.patch
5ae731527b5f9fddeb1f5fa853ded918dc323414453d0600d9c27b42b76a55a47c471344115cb0628195c13815f776e73705bf51c20197c011fbda36a619bcd9  various_firmware_paths.patch
00ea85c43059d24b6930781ef2e9d1b62ad73416d771445135650d41c4e045528b5237a896de451a68ceeace89223700392e67772efaa723c3e0b11e95e431dc  dtbinst_remove_target.patch
3143ad3241632d287916216cc0c712307a7efc54f92a2bc57f70948e3e3a102b3140e91030aaff055abd8201309725690c26120551afe6acbe2e9019a0b95939  no_trailingspaces.patch
db2cd9cbd8447d4bb5387ac34aef7414867a6322f9d3c435be432cfe4b6af535384c042254c934a7aad28b97592593905b26c124692fa207bd1e7b6457ba0a09  arm64-vdso-fix-vdso_offset_sigtramp-undeclared.patch
6828faf0212198d78e58312669ff306236a95d0e3c3e2b9d81d171b6bb54b72979bb9867cecf584781647fe8ee1011ab080317783bc2ddd6e35ccd07029e3686  memcpy-STB_GLOBAL.patch
"
