SUMMARY="BLAS-like Library Instantiation Software framework"
DESCRIPTION="BLIS is a portable software framework for instantiating \
high-performance BLAS-like dense linear algebra libraries. The framework \
was designed to isolate essential kernels of computation that, when \
optimized, immediately enable optimized implementations of most of its \
commonly used and computationally intensive operations. While BLIS exports a \
new BLAS-like API, it also includes a BLAS compatibility layer which gives \
application developers access to BLIS implementations via traditional BLAS \
routine calls. An object-based API unique to BLIS is also available."
HOMEPAGE="https://github.com/flame/blis"
COPYRIGHT="2018 The University of Texas at Austin
	2016 Hewlett Packard Enterprise Development LP
	2018-2019 Advanced Micro Devices, Inc."
LICENSE="BSD (3-clause)"
REVISION="1"
SOURCE_URI="https://github.com/flame/blis/archive/$portVersion.tar.gz"
CHECKSUM_SHA256="5e05868c4a6cf5032a7492f8861653e939a8f907a4fa524bbb6e14394e170a3d"
#PATCHES="blis-$portVersion.patchset"

ARCHITECTURES="all !x86_gcc2"
SECONDARY_ARCHITECTURES="x86"

TARGET="generic"
if [ "$effectiveTargetArchitecture" = x86_64 ]; then
TARGET="x86_64"
fi

GLOBAL_WRITABLE_FILES="
	settings/blis/common.mk keep-old
	settings/blis/config/$TARGET/make_defs.mk keep-old
	settings/blis/config.mk keep-old
	"

libVersion="3.0.0"
libVersionCompat="$libVersion compat >= ${libVersion%%.*}"

PROVIDES="
	blis$secondaryArchSuffix = $portVersion
	lib:libblis$secondaryArchSuffix = $libVersionCompat
	"
REQUIRES="
	haiku$secondaryArchSuffix
	lib:libgomp$secondaryArchSuffix
	"

PROVIDES_devel="
	blis${secondaryArchSuffix}_devel = $portVersion
	devel:libblis$secondaryArchSuffix = $libVersionCompat
	"
REQUIRES_devel="
	blis$secondaryArchSuffix == $portVersion base
	"

BUILD_REQUIRES="
	haiku${secondaryArchSuffix}_devel
	"
BUILD_PREREQUIRES="
	cmd:awk
	cmd:find
	cmd:g++$secondaryArchSuffix
	cmd:make
	cmd:perl
	cmd:python3
	"

defineDebugInfoPackage blis$secondaryArchSuffix \
	"$libDir"/libblis.so.$libVersion

BUILD()
{
	# Not an autotools configure
	./configure \
		--enable-threading=openmp \
		--prefix=$prefix \
		--libdir=$libDir \
		--includedir=$includeDir \
		--sharedir=$settingsDir \
		$TARGET # CPU target
	make $jobArgs
}

INSTALL()
{
	make install

	prepareInstalledDevelLib libblis

	fixPkgconfig

	packageEntries devel \
		$developDir
}

TEST()
{
	cd blastest
	make $jobArgs
	make run
	cd ..
	cd testsuite
	make $jobArgs
	./test_libblis.x
}
