From 139460a7a8b085588b699c488fd19b166db18a74 Mon Sep 17 00:00:00 2001 From: root Date: Sun, 10 Jul 2011 23:13:07 +0000 Subject: Sun Jul 10 23:13:07 UTC 2011 --- extra/blas/LICENSE.blas | 19 +++++ extra/blas/Makefile.blas | 148 +++++++++++++++++++++++++++++++++ extra/blas/PKGBUILD | 55 ++++++++++++ extra/blas/lapack-3.1.1-make.inc.patch | 23 +++++ 4 files changed, 245 insertions(+) create mode 100644 extra/blas/LICENSE.blas create mode 100644 extra/blas/Makefile.blas create mode 100755 extra/blas/PKGBUILD create mode 100644 extra/blas/lapack-3.1.1-make.inc.patch (limited to 'extra/blas') 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 +# Contributor: Jan de Groot +# Contributor: damir +# Contributor: Jason Taylor + +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 = + # -- cgit v1.2.3-54-g00ecf