summaryrefslogtreecommitdiff
path: root/extra/blas
diff options
context:
space:
mode:
authorroot <root@rshg047.dnsready.net>2011-07-10 23:13:07 +0000
committerroot <root@rshg047.dnsready.net>2011-07-10 23:13:07 +0000
commit139460a7a8b085588b699c488fd19b166db18a74 (patch)
treec7ef8dc756803db980465dd7bc9186f9c642aa50 /extra/blas
parentd1e588afc2779754c0abd1122ecf4f8e3c863d7a (diff)
Sun Jul 10 23:13:07 UTC 2011
Diffstat (limited to 'extra/blas')
-rw-r--r--extra/blas/LICENSE.blas19
-rw-r--r--extra/blas/Makefile.blas148
-rwxr-xr-xextra/blas/PKGBUILD55
-rw-r--r--extra/blas/lapack-3.1.1-make.inc.patch23
4 files changed, 245 insertions, 0 deletions
diff --git a/extra/blas/LICENSE.blas b/extra/blas/LICENSE.blas
new file mode 100644
index 000000000..79f38386e
--- /dev/null
+++ b/extra/blas/LICENSE.blas
@@ -0,0 +1,19 @@
+From: http://www.netlib.org/blas/faq.html
+
+ 2) Are there legal restrictions on the use of BLAS reference
+ implementation software?
+
+The reference BLAS is a freely-available software package. It is
+available from netlib via anonymous ftp and the World Wide Web. Thus,
+it can be included in commercial software packages (and has been). We
+only ask that proper credit be given to the authors.
+
+Like all software, it is copyrighted. It is not trademarked, but we do
+ask the following:
+
+If you modify the source for these routines we ask that you change the
+name of the routine and comment the changes made to the original.
+
+We will gladly answer any questions regarding the software. If a
+modification is done, however, it is the responsibility of the person
+who modified the routine to provide support.
diff --git a/extra/blas/Makefile.blas b/extra/blas/Makefile.blas
new file mode 100644
index 000000000..e0d97793f
--- /dev/null
+++ b/extra/blas/Makefile.blas
@@ -0,0 +1,148 @@
+include ../../make.inc
+
+#######################################################################
+# This is the makefile to create a library for the BLAS.
+# The files are grouped as follows:
+#
+# SBLAS1 -- Single precision real BLAS routines
+# CBLAS1 -- Single precision complex BLAS routines
+# DBLAS1 -- Double precision real BLAS routines
+# ZBLAS1 -- Double precision complex BLAS routines
+#
+# CB1AUX -- Real BLAS routines called by complex routines
+# ZB1AUX -- D.P. real BLAS routines called by d.p. complex
+# routines
+#
+# ALLBLAS -- Auxiliary routines for Level 2 and 3 BLAS
+#
+# SBLAS2 -- Single precision real BLAS2 routines
+# CBLAS2 -- Single precision complex BLAS2 routines
+# DBLAS2 -- Double precision real BLAS2 routines
+# ZBLAS2 -- Double precision complex BLAS2 routines
+#
+# SBLAS3 -- Single precision real BLAS3 routines
+# CBLAS3 -- Single precision complex BLAS3 routines
+# DBLAS3 -- Double precision real BLAS3 routines
+# ZBLAS3 -- Double precision complex BLAS3 routines
+#
+# The library can be set up to include routines for any combination
+# of the four precisions. To create or add to the library, enter make
+# followed by one or more of the precisions desired. Some examples:
+# make single
+# make single complex
+# make single double complex complex16
+# Note that these commands are not safe for parallel builds.
+#
+# Alternatively, the commands
+# make all
+# or
+# make
+# without any arguments creates a library of all four precisions.
+# The name of the library is held in BLASLIB, which is set in the
+# top-level make.inc
+#
+# To remove the object files after the library is created, enter
+# make clean
+# To force the source files to be recompiled, enter, for example,
+# make single FRC=FRC
+#
+#---------------------------------------------------------------------
+#
+# Edward Anderson, University of Tennessee
+# March 26, 1990
+# Susan Ostrouchov, Last updated September 30, 1994
+# ejr, May 2006.
+#
+#######################################################################
+
+all: $(BLASLIB)
+
+#---------------------------------------------------------
+# Comment out the next 6 definitions if you already have
+# the Level 1 BLAS.
+#---------------------------------------------------------
+SBLAS1 = isamax.o sasum.o saxpy.o scopy.o sdot.o snrm2.o \
+ srot.o srotg.o sscal.o sswap.o sdsdot.o srotmg.o srotm.o
+$(SBLAS1): $(FRC)
+
+CBLAS1 = scabs1.o scasum.o scnrm2.o icamax.o caxpy.o ccopy.o \
+ cdotc.o cdotu.o csscal.o crotg.o cscal.o cswap.o csrot.o
+$(CBLAS1): $(FRC)
+
+DBLAS1 = idamax.o dasum.o daxpy.o dcopy.o ddot.o dnrm2.o \
+ drot.o drotg.o dscal.o dsdot.o dswap.o drotmg.o drotm.o
+$(DBLAS1): $(FRC)
+
+ZBLAS1 = dcabs1.o dzasum.o dznrm2.o izamax.o zaxpy.o zcopy.o \
+ zdotc.o zdotu.o zdscal.o zrotg.o zscal.o zswap.o zdrot.o
+$(ZBLAS1): $(FRC)
+
+CB1AUX = isamax.o sasum.o saxpy.o scopy.o snrm2.o sscal.o
+$(CB1AUX): $(FRC)
+
+ZB1AUX = idamax.o dasum.o daxpy.o dcopy.o dnrm2.o dscal.o
+$(ZB1AUX): $(FRC)
+
+#---------------------------------------------------------------------
+# The following line defines auxiliary routines needed by both the
+# Level 2 and Level 3 BLAS. Comment it out only if you already have
+# both the Level 2 and 3 BLAS.
+#---------------------------------------------------------------------
+ALLBLAS = lsame.o xerbla.o xerbla_array.o
+$(ALLBLAS) : $(FRC)
+
+#---------------------------------------------------------
+# Comment out the next 4 definitions if you already have
+# the Level 2 BLAS.
+#---------------------------------------------------------
+SBLAS2 = sgemv.o sgbmv.o ssymv.o ssbmv.o sspmv.o \
+ strmv.o stbmv.o stpmv.o strsv.o stbsv.o stpsv.o \
+ sger.o ssyr.o sspr.o ssyr2.o sspr2.o
+$(SBLAS2): $(FRC)
+
+CBLAS2 = cgemv.o cgbmv.o chemv.o chbmv.o chpmv.o \
+ ctrmv.o ctbmv.o ctpmv.o ctrsv.o ctbsv.o ctpsv.o \
+ cgerc.o cgeru.o cher.o chpr.o cher2.o chpr2.o
+$(CBLAS2): $(FRC)
+
+DBLAS2 = dgemv.o dgbmv.o dsymv.o dsbmv.o dspmv.o \
+ dtrmv.o dtbmv.o dtpmv.o dtrsv.o dtbsv.o dtpsv.o \
+ dger.o dsyr.o dspr.o dsyr2.o dspr2.o
+$(DBLAS2): $(FRC)
+
+ZBLAS2 = zgemv.o zgbmv.o zhemv.o zhbmv.o zhpmv.o \
+ ztrmv.o ztbmv.o ztpmv.o ztrsv.o ztbsv.o ztpsv.o \
+ zgerc.o zgeru.o zher.o zhpr.o zher2.o zhpr2.o
+$(ZBLAS2): $(FRC)
+
+#---------------------------------------------------------
+# Comment out the next 4 definitions if you already have
+# the Level 3 BLAS.
+#---------------------------------------------------------
+SBLAS3 = sgemm.o ssymm.o ssyrk.o ssyr2k.o strmm.o strsm.o
+$(SBLAS3): $(FRC)
+
+CBLAS3 = cgemm.o csymm.o csyrk.o csyr2k.o ctrmm.o ctrsm.o \
+ chemm.o cherk.o cher2k.o
+$(CBLAS3): $(FRC)
+
+DBLAS3 = dgemm.o dsymm.o dsyrk.o dsyr2k.o dtrmm.o dtrsm.o
+$(DBLAS3): $(FRC)
+
+ZBLAS3 = zgemm.o zsymm.o zsyrk.o zsyr2k.o ztrmm.o ztrsm.o \
+ zhemm.o zherk.o zher2k.o
+$(ZBLAS3): $(FRC)
+
+ALLOBJ=$(SBLAS1) $(SBLAS2) $(SBLAS3) $(DBLAS1) $(DBLAS2) $(DBLAS3) \
+ $(CBLAS1) $(CBLAS2) $(CBLAS3) $(ZBLAS1) \
+ $(ZBLAS2) $(ZBLAS3) $(ALLBLAS)
+
+clean:
+ rm -f *.o libblas.a libblas.so*
+
+static: $(ALLOBJ)
+ ar ruv libblas.a $(ALLOBJ)
+ ranlib libblas.a
+
+shared: $(ALLOBJ)
+ cc $(CFLAGS) -shared -Wl,-soname,libblas.so.3 -o libblas.so.3.3.1 $(ALLOBJ) -lm -lgfortran -lc
diff --git a/extra/blas/PKGBUILD b/extra/blas/PKGBUILD
new file mode 100755
index 000000000..872e57bc7
--- /dev/null
+++ b/extra/blas/PKGBUILD
@@ -0,0 +1,55 @@
+# $Id: PKGBUILD 130989 2011-07-09 12:22:58Z ronald $
+# Maintainer: Ronald van Haren <ronald.archlinux.org>
+# Contributor: Jan de Groot <jgc@archlinux.org>
+# Contributor: damir <damir@archlinux.org>
+# Contributor: Jason Taylor <jftaylor21@gmail.com>
+
+pkgname=blas
+pkgver=3.3.1
+pkgrel=2
+url="http://www.netlib.org/blas"
+makedepends=('gcc-fortran')
+depends=('gcc-libs')
+pkgdesc="Basic Linear Algebra Subprograms"
+arch=('i686' 'x86_64')
+license=("custom")
+source=(http://www.netlib.org/lapack/lapack-${pkgver}.tgz
+ lapack-3.1.1-make.inc.patch
+ Makefile.blas
+ LICENSE.blas)
+sha1sums=('3ce437e05f0e9a3c8148ec41922f6efeef0ebdac'
+ '71bf7696f1c841339163e82d863dd62e484eb1cf'
+ '3dbee0a5e9a98a2ddf5a58046f5997804e9874ed'
+ '2491a151a37f0162b25fc4e4e9a8ac444b574a76')
+
+build() {
+ cd "${srcdir}/lapack-${pkgver}"
+ cp -f "${srcdir}/Makefile.blas" BLAS/SRC/Makefile
+ patch -Np1 -i "${srcdir}/lapack-3.1.1-make.inc.patch"
+ cp -f INSTALL/make.inc.gfortran make.inc
+
+ export FC=gfortran
+
+ pushd BLAS/SRC
+ make clean
+ FFLAGS="${CFLAGS/-O?/-O0}" make dcabs1.o
+ FFLAGS="${CFLAGS} -fPIC" CFLAGS="${CFLAGS} -fPIC" make shared
+ cp libblas.so.${pkgver} "${srcdir}/lapack-${pkgver}/"
+
+ popd
+ ln -s libblas.so.${pkgver} libblas.so
+
+}
+
+package_blas() {
+ install -m755 -d "${pkgdir}/usr/lib"
+ install -m755 "${srcdir}/lapack-${pkgver}/libblas.so.${pkgver}" \
+ "${pkgdir}/usr/lib/"
+ ln -sf libblas.so.${pkgver} "${pkgdir}/usr/lib/libblas.so"
+ ln -sf libblas.so.${pkgver} "${pkgdir}/usr/lib/libblas.so.3"
+
+ install -m755 -d "${pkgdir}/usr/share/licenses/blas"
+ install -m644 "${srcdir}/LICENSE.blas" \
+ "${pkgdir}/usr/share/licenses/blas/LICENSE"
+}
+
diff --git a/extra/blas/lapack-3.1.1-make.inc.patch b/extra/blas/lapack-3.1.1-make.inc.patch
new file mode 100644
index 000000000..c807ccbf9
--- /dev/null
+++ b/extra/blas/lapack-3.1.1-make.inc.patch
@@ -0,0 +1,23 @@
+--- lapack-3.1.1/INSTALL/make.inc.gfortran.BAD 2007-05-25 15:34:55.000000000 -0500
++++ lapack-3.1.1/INSTALL/make.inc.gfortran 2007-05-25 15:35:51.000000000 -0500
+@@ -8,7 +8,7 @@ SHELL = /bin/sh
+ #
+ # The machine (platform) identifier to append to the library names
+ #
+-PLAT = _LINUX
++PLAT =
+ #
+ # Modify the FORTRAN and OPTS definitions to refer to the
+ # compiler and desired compiler options for your machine. NOOPT
+@@ -17,9 +17,9 @@ PLAT = _LINUX
+ # desired load options for your machine.
+ #
+ FORTRAN = gfortran
+-OPTS = -O2
++#OPTS = -O2
+ DRVOPTS = $(OPTS)
+-NOOPT = -O0
++NOOPT =
+ LOADER = gfortran
+ LOADOPTS =
+ #