summaryrefslogtreecommitdiff
path: root/math/cblas
diff options
context:
space:
mode:
authorBrendan Fabeny <bf@FreeBSD.org>2012-01-09 19:12:17 +0000
committerBrendan Fabeny <bf@FreeBSD.org>2012-01-09 19:12:17 +0000
commitb7b2c4fadf63d9ab33b4f85211dd97b8ca97d349 (patch)
treefb346567dafa1deffb7723a7e1e922b9420f7b37 /math/cblas
parent- Add missing BUILD_DEPENDS so the module works (diff)
Add cblas 1.0, reference implementation of the C interface to the legacy
Fortran BLAS.
Notes
Notes: svn path=/head/; revision=288838
Diffstat (limited to 'math/cblas')
-rw-r--r--math/cblas/Makefile135
-rw-r--r--math/cblas/distinfo4
-rw-r--r--math/cblas/pkg-descr5
3 files changed, 144 insertions, 0 deletions
diff --git a/math/cblas/Makefile b/math/cblas/Makefile
new file mode 100644
index 000000000000..ac368d987c3e
--- /dev/null
+++ b/math/cblas/Makefile
@@ -0,0 +1,135 @@
+# ex:ts=8
+# Ports collection makefile for: cblas
+# Date created: 6 January 2012
+# Whom: bf@FreeBSD.org
+#
+# $FreeBSD$
+#
+
+PORTNAME= cblas
+PORTVERSION= 1.0
+CATEGORIES= math
+MASTER_SITES= NL/blas/blast-forum/ LOCAL/bf
+DISTFILES= cblas.tgz
+.if make(makesum) || !defined(NOPORTDOCS)
+DISTFILES+= blas-report.pdf
+EXTRACT_ONLY= cblas.tgz
+.endif
+
+MAINTAINER= bf@FreeBSD.org
+COMMENT= Reference implementation of the C interface to the legacy Fortran BLAS
+
+LICENSE= BSD
+
+USE_FORTRAN= yes
+
+CONFLICTS_INSTALL= atlas-[0-9]* atlas-devel-[0-9]*
+
+OPTIONS= PROFILE "Build profiling libraries" Off \
+ SHARED "Build shared libraries and PIC archives" On \
+ STATIC "Build (non-PIC) archives" On
+
+PLIST_FILES= include/cblas.h include/cblas_f77.h
+PLIST_SUB= SVERSION="${SVERSION}"
+
+SVERSION= 2
+
+WRKSRC = ${WRKDIR}/CBLAS
+WRKSRC_PROFILE = ${WRKSRC}_PROFILE
+WRKSRC_SHARED= ${WRKSRC}_SHARED
+WRKSRC_STATIC= ${WRKSRC}
+
+.include <bsd.port.options.mk>
+
+MANGLING?= -DADD_
+CFLAGS+= ${MANGLING}
+
+.if ${ARCH} == "sparc64"
+PICFLAG?= -fPIC
+.else
+PICFLAG?= -fpic
+.endif
+
+FLAGS_PROFILE?= -pg
+FLAGS_SHARED ?= ${PICFLAG}
+
+.if defined(WITH_SHARED)
+PLIST_FILES+= lib/libcblas_pic.a lib/libcblas.so lib/libcblas.so.${SVERSION}
+TESTS ?= test-shared
+USE_LDCONFIG= yes
+.endif
+.if defined(WITH_STATIC)
+PLIST_FILES+= lib/libcblas.a
+TESTS ?= test-static
+.endif
+.if defined(WITH_PROFILE)
+PLIST_FILES+= lib/libcblas_p.a
+TESTS ?= test-profile
+.endif
+
+post-patch:
+ @${SED} -Ee '\@^CBLIB[[:blank:]]*=@s@cblas.*\.a@libcblas.a@; \
+ \@^((BL|RAN)LIB|CC|FC)[[:blank:]]*=@d; \
+ \@^((C|F)FLAGS)[[:blank:]]*=@s@=.*@+= $${EXTRAFLAGS}@; \
+ \@^LOADER@{x; s|^|LOADFLAGS = $${LDFLAGS} $${EXTRAFLAGS}|; G;};' \
+ ${WRKSRC}/Makefile.LINUX > ${WRKSRC}/Makefile.in
+ @${REINPLACE_CMD} -e 's@$$(ARCH)@$$(AR)@' ${WRKSRC}/src/Makefile
+.for o in PROFILE SHARED
+.if defined(WITH_${o})
+ @${CP} -a ${WRKSRC} ${WRKSRC_${o}}
+.endif
+.endfor
+
+do-build: build-profile build-shared build-static
+
+.for o in PROFILE SHARED STATIC
+build-${o:L}: patch
+.if defined(WITH_${o})
+ @${PRINTF} "\n\nBuilding ${o:L} libraries:\n\n\n"
+ @cd ${WRKSRC_${o}}/src; ${SETENV} ${MAKE_ENV} EXTRAFLAGS="${FLAGS_${o}}" \
+ ${MAKE} ${_MAKE_JOBS} ${MAKE_ARGS} all
+
+.endif
+.endfor
+
+post-build:
+.if defined(WITH_SHARED)
+ cd ${WRKSRC_SHARED}/lib ; ${FC} ${FFLAGS} ${FFLAGS_SHARED} ${LDFLAGS} -shared \
+ -o libcblas.so.${SVERSION} -Wl,-x -Wl,-soname,libcblas.so.${SVERSION} \
+ -Wl,--whole-archive libcblas.a -Wl,--no-whole-archive
+.endif
+
+.if defined(MAINTAINER_MODE) || defined(PACKAGE_BUILDING)
+BLAS?= -L${LOCALBASE}/lib -lblas
+BUILD_DEPENDS += ${LOCALBASE}/lib/libblas.so:${PORTSDIR}/math/blas
+MAKE_ENV+= BLLIB="${BLAS}"
+
+check regression-test test: ${TESTS}
+
+.for o in PROFILE SHARED STATIC
+test-${o:L}: build-${o:L}
+.if defined(WITH_${o})
+ @${PRINTF} "\n\nTesting ${o:L} libraries:\n\n\n"
+ @cd ${WRKSRC_${o}}/testing; ${SETENV} ${MAKE_ENV} EXTRAFLAGS="${FLAGS_${o}}" \
+ ${MAKE} ${_MAKE_JOBS} ${MAKE_ARGS} all run
+ @${CAT} ${WRKSRC_${o}}/testing/*.out
+
+.endif
+.endfor
+.endif
+
+do-install:
+ @${INSTALL_DATA} ${WRKSRC}/include/*.h ${PREFIX}/include
+.if defined(WITH_STATIC)
+ @${INSTALL_DATA} ${WRKSRC}/lib/libcblas.a ${PREFIX}/lib
+.endif
+.if defined(WITH_SHARED)
+ @${INSTALL_DATA} ${WRKSRC_SHARED}/lib/libcblas.a ${PREFIX}/lib/libcblas_pic.a
+ @${INSTALL_DATA} ${WRKSRC_SHARED}/lib/libcblas.so.${SVERSION} ${PREFIX}/lib
+ @${LN} -sf libcblas.so.${SVERSION} ${PREFIX}/lib/libcblas.so
+.endif
+.if defined(WITH_PROFILE)
+ @${INSTALL_DATA} ${WRKSRC_PROFILE}/lib/libcblas.a ${PREFIX}/lib/libcblas_p.a
+.endif
+
+.include <bsd.port.mk>
diff --git a/math/cblas/distinfo b/math/cblas/distinfo
new file mode 100644
index 000000000000..0edbbbb80dfd
--- /dev/null
+++ b/math/cblas/distinfo
@@ -0,0 +1,4 @@
+SHA256 (cblas.tgz) = 0f6354fd67fabd909baf57ced2ef84e962db58fae126e4f41b21dd4fec60a2a3
+SIZE (cblas.tgz) = 197468
+SHA256 (blas-report.pdf) = 7874962ae4dc753fcdd483ff0c69931227846632251f79a68f4f879348f321a6
+SIZE (blas-report.pdf) = 2412966
diff --git a/math/cblas/pkg-descr b/math/cblas/pkg-descr
new file mode 100644
index 000000000000..7de8895f50ff
--- /dev/null
+++ b/math/cblas/pkg-descr
@@ -0,0 +1,5 @@
+This is a reference implementation of the C interface to the legacy
+Fortran Basic Linear Algebra Subprograms (BLAS), as described in
+Annex B of the BLAS Technical Forum (BLAST) Standard.
+
+WWW: http://www.netlib.org/blas/blast-forum/