New package: lapack-3.5.0; supersedes liblapack

New (sub)package: blas-3.5.0; supersedes libBLAS
This commit is contained in:
Alessio Sergi 2014-08-29 17:19:49 +02:00
parent bc3ddf9ae0
commit 1cfb846ae6
10 changed files with 3707 additions and 0 deletions

View file

@ -1711,3 +1711,5 @@ libpar2.so.1 libpar2-0.4_1
libsodium.so.13 libsodium-0.7.0_1
libstrophe.so.0 libstrophe-0.8.6_1
libganv-1.so.1 ganv-1.4.2_1
libblas.so.3 blas-3.5.0_1
liblapack.so.3 lapack-3.5.0_1

1
srcpkgs/blas Symbolic link
View file

@ -0,0 +1 @@
lapack

1
srcpkgs/blas-devel Symbolic link
View file

@ -0,0 +1 @@
lapack

1
srcpkgs/blas-doc Symbolic link
View file

@ -0,0 +1 @@
lapack

1
srcpkgs/lapack-devel Symbolic link
View file

@ -0,0 +1 @@
lapack

1
srcpkgs/lapack-doc Symbolic link
View file

@ -0,0 +1 @@
lapack

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,71 @@
####################################################################
# LAPACK make include file. #
# LAPACK, Version 3.5.0 #
# November 2013 #
####################################################################
#
SHELL = /bin/sh
#
# Modify the FORTRAN and OPTS definitions to refer to the
# compiler and desired compiler options for your machine. NOOPT
# refers to the compiler options desired when NO OPTIMIZATION is
# selected. Define LOADER and LOADOPTS to refer to the loader and
# desired load options for your machine.
#
FORTRAN = gfortran
OPTS =
DRVOPTS = $(OPTS)
NOOPT =
LOADER = gfortran
LOADOPTS =
#
# Timer for the SECOND and DSECND routines
#
# Default : SECOND and DSECND will use a call to the EXTERNAL FUNCTION ETIME
#TIMER = EXT_ETIME
# For RS6K : SECOND and DSECND will use a call to the EXTERNAL FUNCTION ETIME_
# TIMER = EXT_ETIME_
# For gfortran compiler: SECOND and DSECND will use a call to the INTERNAL FUNCTION ETIME
TIMER = INT_ETIME
# If your Fortran compiler does not provide etime (like Nag Fortran Compiler, etc...)
# SECOND and DSECND will use a call to the INTERNAL FUNCTION CPU_TIME
# TIMER = INT_CPU_TIME
# If neither of this works...you can use the NONE value... In that case, SECOND and DSECND will always return 0
# TIMER = NONE
#
# Configuration LAPACKE: Native C interface to LAPACK
# To generate LAPACKE library: type 'make lapackelib'
# Configuration file: turned off (default)
# Complex types: C99 (default)
# Name pattern: mixed case (default)
# (64-bit) Data model: LP64 (default)
#
# CC is the C compiler, normally invoked with options CFLAGS.
#
CC = cc
CFLAGS =
#
# The archiver and the flag(s) to use when building archive (library)
# If you system has no ranlib, set RANLIB = echo.
#
ARCH = ar
ARCHFLAGS= cr
RANLIB = ranlib
#
# Location of the extended-precision BLAS (XBLAS) Fortran library
# used for building and testing extended-precision routines. The
# relevant routines will be compiled and XBLAS will be linked only if
# USEXBLAS is defined.
#
# USEXBLAS = Yes
XBLASLIB =
# XBLASLIB = -lxblas
#
# The location of the libraries to which you will link. (The
# machine-specific, optimized BLAS library should be used whenever
# possible.)
#
BLASLIB = ../../librefblas.a
LAPACKLIB = liblapack.a
TMGLIB = libtmglib.a
LAPACKELIB = liblapacke.a

123
srcpkgs/lapack/template Normal file
View file

@ -0,0 +1,123 @@
# Template file for 'lapack'
pkgname=lapack
version=3.5.0
revision=1
wrksrc="${pkgname}-${version}"
hostmakedepends="gcc-fortran doxygen"
replaces="liblapack>=0"
short_desc="Linear Algebra PACKage"
maintainer="Alessio Sergi <al3hex@gmail.com>"
homepage="http://www.netlib.org/lapack/"
license="3-clause-BSD"
distfiles="http://www.netlib.org/${pkgname}/${pkgname}-${version}.tgz"
checksum="9ad8f0d3f3fb5521db49f2dd716463b8fb2b6bc9dc386a9956b8c6144f726352"
pre_build() {
cp -f ${FILESDIR}/make.inc.template ${wrksrc}/make.inc
cp -f ${FILESDIR}/Doxyfile_man.blas ${wrksrc}/DOCS
cp -f ${FILESDIR}/Doxyfile_man.lapack ${wrksrc}/DOCS
}
do_build() {
export FC=gfortran
export FFLAGS=$CFLAGS
export FFLAGS_NOOPT=${CFLAGS/-O2/}
export OPTS="$FFLAGS -frecursive"
export NOOPT="$FFLAGS_NOOPT -O0 -frecursive"
export PICOPT="-fPIC"
# Build the shared blas library
make blaslib OPTS="$OPTS $PICOPT" NOOPT="$NOOPT $PICOPT"
mv librefblas.a libblas_pic.a
mkdir tmp
( cd tmp; ar x ../libblas_pic.a )
"$FC" -shared -Wl,-soname=libblas.so.${version%%.*} -o libblas.so.${version} tmp/*.o
ln -sf libblas.so.${version} libblas.so
rm -rf tmp
# Build the static blas library
make cleanlib
make blaslib OPTS="$OPTS" NOOPT="$NOOPT"
mv librefblas.a libblas.a
make cleanlib
# Build the shared lapack library
make lapacklib OPTS="$OPTS $PICOPT" NOOPT="$NOOPT $PICOPT"
mv liblapack.a liblapack_pic.a
mkdir tmp
( cd tmp; ar x ../liblapack_pic.a )
"$FC" -shared -Wl,-soname=liblapack.so.${version%%.*} -o liblapack.so.${version} tmp/*.o -L. -lblas
rm -rf tmp
# Build the static lapack library
make cleanlib
make lapacklib OPTS="$OPTS" NOOPT="$NOOPT"
# Build blas and lapack man pages
doxygen DOCS/Doxyfile_man.blas
doxygen DOCS/Doxyfile_man.lapack
}
do_install() {
for libname in libblas liblapack; do
vinstall ${libname}.a 644 usr/lib ${libname}.a
vinstall ${libname}.so.${version} 755 usr/lib ${libname}.so.${version}
done
vlicense LICENSE
}
post_install() {
for libname in libblas liblapack; do
ln -sf ${libname}.so.${version} ${DESTDIR}/usr/lib/${libname}.so
ln -sf ${libname}.so.${version} ${DESTDIR}/usr/lib/${libname}.so.${version%%.*}
done
}
lapack-devel_package() {
depends="${sourcepkg}>=${version}_${revision}"
short_desc+=" - development files"
pkg_install() {
vmove usr/lib/liblapack.a
vmove usr/lib/liblapack.so
}
}
lapack-doc_package() {
noarch=yes
depends="${sourcepkg}>=${version}_${revision}"
short_desc+=" - documentation"
pkg_install() {
vmkdir usr/share
vcopy ${wrksrc}/DOCS/lapack/man usr/share
}
}
blas_package() {
replaces="libBLAS>=0"
short_desc+=" - BLAS (Basic Linear Algebra Subprograms) library"
pkg_install() {
vmove usr/lib/libblas.so.*
vlicense ${wrksrc}/LICENSE
}
}
blas-devel_package() {
depends="blas>=${version}_${revision}"
short_desc+=" - BLAS development files"
pkg_install() {
vmove usr/lib/libblas.a
vmove usr/lib/libblas.so
}
}
blas-doc_package() {
noarch=yes
depends="blas>=${version}_${revision}"
short_desc+=" - BLAS documentation"
pkg_install() {
vmkdir usr/share
vcopy ${wrksrc}/DOCS/blas/man usr/share
}
}