# Template file for '9base'.
pkgname=9base
version=6.0.20190911
revision=1
_githash=63916da7bd6d73d9a405ce83fc4ca34845667cce
wrksrc="9base-${_githash}"
build_style=gnu-makefile
# we use byacc instead of internal version
hostmakedepends="byacc"
short_desc="Revived minimalist port of Plan 9 userland to Unix"
maintainer='Tai Chi Minh Ralph Eastwood <tcmreastwood@gmail.com>'
license="custom"
homepage="http://git.suckless.org/9base"
# Checked out from http://git.suckless.org/9base/ and created tarball with 'git archive'.
distfiles="https://distfiles.voidlinux.de/9base-${_githash}.tar.gz"
checksum=bb8cd1e0060824914839fd090353971862a1025ae4b8ea5d1e99618ddd1b160f
conflicts="plan9port"
provides="plan9port-20160418_4"

CFLAGS="-fcommon"

pre_build() {
	# These are platform specific, but aarch64 and mips have their
	# program counter in the same place; we'll just use the ARM
	# implementation.
	cp lib9/getcallerpc-arm.c lib9/getcallerpc-aarch64.c
	cp lib9/getcallerpc-arm.c lib9/getcallerpc-mips.c

	# config.mk has conflicting flags to the build-style; we enforce
	# specific ones in config.mk to make sure they don't get changed
	# in do_build.
	sed -i 's|^PREFIX \+= /usr/local/plan9|override PREFIX = /usr/lib/plan9|g' config.mk
	sed -i 's|^CFLAGS \++=|override CFLAGS += -D_DEFAULT_SOURCE |g' config.mk
	sed -i 's|^LDFLAGS.*||g' config.mk
	sed -i 's|^CC.*||g' config.mk
	# Add rc to the AR flag as the 9base build-scripts require AR to
	# be declared with the 'rc' argument.  However, AR can be
	# different to 'ar' if declared differently within xbps e.g.
	# gcc-ar which is necessary for link-time optimisation builds.
	sed -i 's|^AR.*|override AR += rc|g' config.mk
	sed -i 's|^YACC \+=.*|YACC = byacc|g' config.mk

	# This allows 9base's build-style know which getcallerpc
	# implementation to use.
	case "$XBPS_TARGET_MACHINE" in
	i686*)    sed -i 's|^OBJTYPE \+=.*|OBJTYPE = 386|g' config.mk ;;
	x86_64*)  sed -i 's|^OBJTYPE \+=.*|OBJTYPE = x86_64|g' config.mk ;;
	arm*)     sed -i 's|^OBJTYPE \+=.*|OBJTYPE = arm|g' config.mk ;;
	aarch64*) sed -i 's|^OBJTYPE \+=.*|OBJTYPE = aarch64|g' config.mk ;;
	mips*)    sed -i 's|^OBJTYPE \+=.*|OBJTYPE = mips|g' config.mk ;;
	ppc64*)   sed -i 's|^OBJTYPE \+=.*|OBJTYPE = power|g' config.mk ;;
	esac
}

post_install() {
	vinstall $FILESDIR/plan9.sh 644 etc/profile.d
	vlicense LICENSE
}
