# Kernel config based on: arch/arm/configs/cyanogen_vivo_defconfig

pkgname="linux-htc-vivo"
pkgver=3.0.101
pkgrel=0
pkgdesc="Incredible S kernel fork"
arch="armhf"
_carch="arm"
_flavor="htc-vivo"
url="https://kernel.org"
license="GPL2"
options="!strip !check !tracedeps"
makedepends="perl sed installkernel bash gmp-dev bc linux-headers elfutils-dev xz"
HOSTCC="${CC:-gcc}"
HOSTCC="${HOSTCC#${CROSS_COMPILE}}"

# Source
_repository="T.E.S.C.O-kernel_vivo"
_commit="da3fd71eec35410f38808712d0edc0c5a6a42dda"
_config="config-${_flavor}.${arch}"
source="
	$pkgname-$_commit.tar.gz::https://github.com/szezso/${_repository}/archive/${_commit}.tar.gz
	$_config
	compiler-gcc6.h
	02_gpu-msm-fix-gcc5-compile.patch
	03_use-static-inline-in-ftrace.h.patch
	04-fix-redefinition-of-unregister_con_driver.patch
"
builddir="$srcdir/${_repository}-${_commit}"

prepare() {
	default_prepare

	# gcc6 support
	cp -v "$srcdir/compiler-gcc6.h" "$builddir/include/linux/"

	# Remove -Werror from all makefiles
	local i
	local makefiles="$(find . -type f -name Makefile)
		$(find . -type f -name Kbuild)"
	for i in $makefiles; do
		sed -i 's/-Werror-/-W/g' "$i"
		sed -i 's/-Werror//g' "$i"
	done

	# Prepare kernel config ('yes ""' for kernels lacking olddefconfig)
	cp "$srcdir"/$_config "$builddir"/.config
	yes "" | make ARCH="$_carch" HOSTCC="$HOSTCC" oldconfig
}

build() {
	unset LDFLAGS
	make ARCH="$_carch" CC="${CC:-gcc}" \
		KBUILD_BUILD_VERSION="$((pkgrel + 1 ))-postmarketOS"
}

package() {
	# kernel.release
	install -D "$builddir/include/config/kernel.release" \
		"$pkgdir/usr/share/kernel/$_flavor/kernel.release"

	# zImage (find the right one)
	cd "$builddir/arch/$_carch/boot"
	_target="$pkgdir/boot/vmlinuz-$_flavor"
	for _zimg in zImage-dtb Image.gz-dtb *zImage Image; do
		[ -e "$_zimg" ] || continue
		msg "zImage found: $_zimg"
		install -Dm644 "$_zimg" "$_target"
		break
	done
	if ! [ -e "$_target" ]; then
		error "Could not find zImage in $PWD!"
		return 1
	fi
}

sha512sums="17164b38f2ff8683d8e304a6f8b768f3d1851d65105505aa80d98769dbf132508db427cd55aa4da76a4650bd7ea108f674fec87fa432e553f0c27e029db312e8  linux-htc-vivo-da3fd71eec35410f38808712d0edc0c5a6a42dda.tar.gz
b59979624e050bd411d566d7a38c5fa16ecffa153a024cc93afb4eea583809adcd65db2c28045066a976ba04056021352287eb693fa2632581dc82433dbfa1bb  config-htc-vivo.armhf
d80980e9474c82ba0ef1a6903b434d8bd1b092c40367ba543e72d2c119301c8b2d05265740e4104ca1ac5d15f6c4aa49e8776cb44264a9a28dc551e0d1850dcc  compiler-gcc6.h
7be03a9e78b7ac330a54b1f00509caa0621a95c0c55901878ad757f9dd69cc05ba2c8b5ea987063ae1224f92c4d090d515fa5d369e7755181a4871b0d0f82881  02_gpu-msm-fix-gcc5-compile.patch
ea1d3b5a234fa565e3c1a792de48f4fc4e6023d281d303c8e319c7ef28edc5739ab0e4dea0139a41f0a5c7d03e27921ccaa214fd0ac5c72245a094ce60128864  03_use-static-inline-in-ftrace.h.patch
1005df312b50f9c657fbc75192a2a228da35ed63f838ae259cd5ffdd62de9d11d9e1bd6d704ed1a6fe473f77dc906902d17b4b7e9896ad6e5416b3cb8f369007  04-fix-redefinition-of-unregister_con_driver.patch"
