#Maintainer: George Vlahavas <vlahavas~at~gmail~dot~com>

pkgname=lapack
pkgver=3.4.1
pkgrel=1rl
source=("http://www.netlib.org/lapack/lapack-$pkgver.tgz" "make.inc.shared" "make.inc.static")
docs=("readme" "install" "copying" "changelog" "authors" "news" "todo" "license")
url=http://www.netlib.org/lapack/

slackdesc=\
(
#|-----handy-ruler------------------------------------------------------|
"lapack (Linear Algebra PACKage)"
"LAPACK provides routines for solving systems of simultaneous linear"
"equations, least-squares solutions of linear systems of equations,"
"eigenvalue problems, and singular value problems. This package"
"provides LAPACK and BLAS static and shared libraries."
)


build() {
	if [ $arch = "x86_64" ]; then
		export NOOPTFLAGS="-fPIC"
	fi

	cd $startdir/src/$pkgname-$pkgver

	# Making shared BLAS library.
	sed "s|%CFLAGS%|$CFLAGS|" $startdir/src/make.inc.shared > make.inc
	make blaslib
	mv blas_LINUX.a libblas_pic.a
	mkdir tmp
	( cd tmp; ar x ../libblas_pic.a )
	gfortran -shared -Wl,-soname=libblas.so.3 -o libblas.so.$pkgver tmp/*.o
	ln -s libblas.so.$pkgver libblas.so
	rm -rf tmp
	
	# Making static BLAS library
	sed "s|%CFLAGS%|$CFLAGS|" $startdir/src/make.inc.static > make.inc
	make cleanlib
	make blaslib
	mv blas_LINUX.a libblas.a
	make cleanlib
	
	# Making shared LAPACK library
	sed "s|%CFLAGS%|$CFLAGS|" $startdir/src/make.inc.shared > make.inc
	make lapacklib NOOPT="$NOOPTFLAGS"
	mv lapack_LINUX.a liblapack_pic.a
	mkdir tmp
	( cd tmp; ar x ../liblapack_pic.a )

	gfortran -shared -Wl,-soname=liblapack.so.3 -o liblapack.so.$pkgver tmp/*.o -L. -lblas
	ln -s liblapack.so.$pkgver liblapack.so
	rm -rf tmp
	
	# Making static library
	sed "s|%CFLAGS%|$CFLAGS|" $startdir/src/make.inc.static > make.inc
	make cleanlib
	make lapacklib NOOPT="$NOOPTFLAGS"
	mv lapack_LINUX.a liblapack.a

	# Install
	pkgver1=`echo $pkgver | sed "s/\(.*\)\.\(.*\)\.\(.*\)/\1/"`
	pkgver2=`echo $pkgver | sed "s/\(.*\)\.\(.*\)\.\(.*\)/\2/"`
	mkdir -p $startdir/pkg/usr/lib${LIBDIRSUFFIX}
	cp liblapack.a $startdir/pkg/usr/lib${LIBDIRSUFFIX}/liblapack.a
	cp libblas.a $startdir/pkg/usr/lib${LIBDIRSUFFIX}/libblas.a
	cp liblapack.so.$pkgver $startdir/pkg/usr/lib${LIBDIRSUFFIX}/liblapack.so.$pkgver
	(
	  cd $startdir/pkg/usr/lib${LIBDIRSUFFIX}
	  ln -s liblapack.so.$pkgver liblapack.so
	  ln -s liblapack.so.$pkgver liblapack.so.$pkgver1
	  ln -s liblapack.so.$pkgver liblapack.so.$pkgver1.$pkgver2
	)
	cp libblas.so.$pkgver $startdir/pkg/usr/lib${LIBDIRSUFFIX}/libblas.so.$pkgver
	( 
	  cd $startdir/pkg/usr/lib${LIBDIRSUFFIX}
	  ln -s libblas.so.$pkgver libblas.so
	  ln -s libblas.so.$pkgver libblas.so.$pkgver1
	  ln -s libblas.so.$pkgver libblas.so.$pkgver1.$pkgver2
	)
}