svn commit: r469966 - in head/math/octave-forge-linear-algebra: . files
Stephen Montgomery-Smith
stephen at FreeBSD.org
Mon May 14 21:01:39 UTC 2018
Author: stephen
Date: Mon May 14 21:01:37 2018
New Revision: 469966
URL: https://svnweb.freebsd.org/changeset/ports/469966
Log:
- Add patches that unbreak it.
- Bump portrevision.
Obtained from: https://sourceforge.net/p/octave/linear-algebra/ci/default/tree/
Added:
head/math/octave-forge-linear-algebra/files/
head/math/octave-forge-linear-algebra/files/patch-CmplxGSVD.cc (contents, props changed)
head/math/octave-forge-linear-algebra/files/patch-CmplxGSVD.h (contents, props changed)
head/math/octave-forge-linear-algebra/files/patch-Makefile (contents, props changed)
head/math/octave-forge-linear-algebra/files/patch-dbleGSVD.cc (contents, props changed)
head/math/octave-forge-linear-algebra/files/patch-dbleGSVD.h (contents, props changed)
Modified:
head/math/octave-forge-linear-algebra/Makefile
Modified: head/math/octave-forge-linear-algebra/Makefile
==============================================================================
--- head/math/octave-forge-linear-algebra/Makefile Mon May 14 20:43:50 2018 (r469965)
+++ head/math/octave-forge-linear-algebra/Makefile Mon May 14 21:01:37 2018 (r469966)
@@ -3,14 +3,14 @@
PORTNAME= octave-forge-linear-algebra
PORTVERSION= 2.2.2
-PORTREVISION= 5
+PORTREVISION= 6
PORTEPOCH= 1
CATEGORIES= math
MAINTAINER= stephen at FreeBSD.org
COMMENT= Octave-forge package ${OCTAVE_PKGNAME}
-BROKEN= does not build with octave 4.4.0
+#BROKEN= does not build with octave 4.4.0
# OCTSRC is the name of the directory of the package.
# It is usually ${OCTAVE_PKGNAME} or ${DISTNAME}.
Added: head/math/octave-forge-linear-algebra/files/patch-CmplxGSVD.cc
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ head/math/octave-forge-linear-algebra/files/patch-CmplxGSVD.cc Mon May 14 21:01:37 2018 (r469966)
@@ -0,0 +1,147 @@
+--- CmplxGSVD.cc.orig 2015-01-24 19:54:11 UTC
++++ CmplxGSVD.cc
+@@ -14,13 +14,12 @@
+ // You should have received a copy of the GNU General Public License along with
+ // this program; if not, see <http://www.gnu.org/licenses/>.
+
+-#ifdef HAVE_CONFIG_H
+-#include <config.h>
+-#endif
++#include "CmplxGSVD.h"
+
+ #include <iostream>
+
+-#include "CmplxGSVD.h"
++#include <octave/oct.h>
++
+ #include "f77-fcn.h"
+ #include "lo-error.h"
+
+@@ -30,6 +29,13 @@
+ #include "pager.h"
+ */
+
++#if defined (OCTAVE_HAVE_F77_INT_TYPE)
++# define TO_F77_INT(x) octave::to_f77_int (x)
++#else
++typedef octave_idx_type F77_INT;
++# define TO_F77_INT(x) (x)
++#endif
++
+ extern "C"
+ {
+ F77_RET_T
+@@ -38,27 +44,27 @@ extern "C"
+ F77_CONST_CHAR_ARG_DECL, // JOBU (input) CHARACTER*1
+ F77_CONST_CHAR_ARG_DECL, // JOBV (input) CHARACTER*1
+ F77_CONST_CHAR_ARG_DECL, // JOBQ (input) CHARACTER*1
+- const octave_idx_type&, // M (input) INTEGER
+- const octave_idx_type&, // N (input) INTEGER
+- const octave_idx_type&, // P (input) INTEGER
+- octave_idx_type &, // K (output) INTEGER
+- octave_idx_type &, // L (output) INTEGER
++ const F77_INT&, // M (input) INTEGER
++ const F77_INT&, // N (input) INTEGER
++ const F77_INT&, // P (input) INTEGER
++ F77_INT&, // K (output) INTEGER
++ F77_INT&, // L (output) INTEGER
+ Complex*, // A (input/output) COMPLEX*16 array, dimension (LDA,N)
+- const octave_idx_type&, // LDA (input) INTEGER
++ const F77_INT&, // LDA (input) INTEGER
+ Complex*, // B (input/output) COMPLEX*16 array, dimension (LDB,N)
+- const octave_idx_type&, // LDB (input) INTEGER
++ const F77_INT&, // LDB (input) INTEGER
+ double*, // ALPHA (output) DOUBLE PRECISION array, dimension (N)
+ double*, // BETA (output) DOUBLE PRECISION array, dimension (N)
+ Complex*, // U (output) COMPLEX*16 array, dimension (LDU,M)
+- const octave_idx_type&, // LDU (input) INTEGER
++ const F77_INT&, // LDU (input) INTEGER
+ Complex*, // V (output) COMPLEX*16 array, dimension (LDV,P)
+- const octave_idx_type&, // LDV (input) INTEGER
++ const F77_INT&, // LDV (input) INTEGER
+ Complex*, // Q (output) COMPLEX*16 array, dimension (LDQ,N)
+- const octave_idx_type&, // LDQ (input) INTEGER
++ const F77_INT&, // LDQ (input) INTEGER
+ Complex*, // WORK (workspace) COMPLEX*16 array
+ double*, // RWORK (workspace) DOUBLE PRECISION array
+- int*, // IWORK (workspace/output) INTEGER array, dimension (N)
+- octave_idx_type& // INFO (output)INTEGER
++ F77_INT*, // IWORK (workspace/output) INTEGER array, dimension (N)
++ F77_INT& // INFO (output)INTEGER
+ F77_CHAR_ARG_LEN_DECL
+ F77_CHAR_ARG_LEN_DECL
+ F77_CHAR_ARG_LEN_DECL
+@@ -121,11 +127,11 @@ octave_idx_type
+ ComplexGSVD::init (const ComplexMatrix& a, const ComplexMatrix& b,
+ GSVD::type gsvd_type)
+ {
+- octave_idx_type info;
++ F77_INT info;
+
+- octave_idx_type m = a.rows ();
+- octave_idx_type n = a.cols ();
+- octave_idx_type p = b.rows ();
++ F77_INT m = TO_F77_INT (a.rows ());
++ F77_INT n = TO_F77_INT (a.cols ());
++ F77_INT p = TO_F77_INT (b.rows ());
+
+ ComplexMatrix atmp = a;
+ Complex *tmp_dataA = atmp.fortran_vec ();
+@@ -133,17 +139,17 @@ ComplexGSVD::init (const ComplexMatrix&
+ ComplexMatrix btmp = b;
+ Complex *tmp_dataB = btmp.fortran_vec ();
+
+- // octave_idx_type min_mn = m < n ? m : n;
++ // F77_INT min_mn = m < n ? m : n;
+
+ char jobu = 'U';
+ char jobv = 'V';
+ char jobq = 'Q';
+
+- octave_idx_type nrow_u = m;
+- octave_idx_type nrow_v = p;
+- octave_idx_type nrow_q = n;
++ F77_INT nrow_u = m;
++ F77_INT nrow_v = p;
++ F77_INT nrow_q = n;
+
+- octave_idx_type k, l;
++ F77_INT k, l;
+
+ switch (gsvd_type)
+ {
+@@ -187,7 +193,7 @@ ComplexGSVD::init (const ComplexMatrix&
+ }
+ Complex *q = right_sm.fortran_vec ();
+
+- octave_idx_type lwork = 3*n;
++ F77_INT lwork = 3*n;
+ lwork = lwork > m ? lwork : m;
+ lwork = (lwork > p ? lwork : p) + n;
+
+@@ -195,7 +201,7 @@ ComplexGSVD::init (const ComplexMatrix&
+ Array<double> alpha (dim_vector (n, 1));
+ Array<double> beta (dim_vector (n, 1));
+ Array<double> rwork(dim_vector (2*n, 1));
+- Array<int> iwork (dim_vector (n, 1));
++ Array<F77_INT> iwork (dim_vector (n, 1));
+
+ F77_XFCN (zggsvd, ZGGSVD, (F77_CONST_CHAR_ARG2 (&jobu, 1),
+ F77_CONST_CHAR_ARG2 (&jobv, 1),
+@@ -219,13 +225,13 @@ ComplexGSVD::init (const ComplexMatrix&
+ if (info > 0) {
+ (*current_liboctave_error_handler) ("zggsvd.f: Jacobi-type procedure failed to converge.");
+ } else {
+- octave_idx_type i, j;
++ F77_INT i, j;
+
+ if (GSVD::std == gsvd_type) {
+ R.resize(k+l, k+l);
+- int astart = n-k-l;
++ F77_INT astart = n-k-l;
+ if (m - k - l >= 0) {
+- int astart = n-k-l;
++ F77_INT astart = n-k-l;
+ /*
+ * R is stored in A(1:K+L,N-K-L+1:N)
+ */
Added: head/math/octave-forge-linear-algebra/files/patch-CmplxGSVD.h
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ head/math/octave-forge-linear-algebra/files/patch-CmplxGSVD.h Mon May 14 21:01:37 2018 (r469966)
@@ -0,0 +1,11 @@
+--- CmplxGSVD.h.orig 2015-01-24 19:54:11 UTC
++++ CmplxGSVD.h
+@@ -19,6 +19,8 @@
+
+ #include <iostream>
+
++#include <octave/oct.h>
++
+ #include "dDiagMatrix.h"
+ #include "CMatrix.h"
+ #include "dbleGSVD.h"
Added: head/math/octave-forge-linear-algebra/files/patch-Makefile
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ head/math/octave-forge-linear-algebra/files/patch-Makefile Mon May 14 21:01:37 2018 (r469966)
@@ -0,0 +1,83 @@
+--- Makefile.orig 2015-01-24 19:54:11 UTC
++++ Makefile
+@@ -1,66 +1,24 @@
+-sinclude Makeconf
+-
+-ifndef OCTAVE_FORGE
+-MKOCTFILE = mkoctfile
+-endif
+-
+-ifndef LAPACK_LIBS
+-LAPACK_LIBS := $(shell $(MKOCTFILE) -p LAPACK_LIBS)
+-endif
+-ifndef BLAS_LIBS
+-BLAS_LIBS := $(shell $(MKOCTFILE) -p BLAS_LIBS)
+-endif
+-LFLAGS := $(shell $(MKOCTFILE) -p LFLAGS) $(LAPACK_LIBS) $(BLAS_LIBS)
+-export LFLAGS
+-
+-DEFINES = -DHAVE_CONFIG_H -Wall
+-GSVD_OBJECTS = gsvd.o dbleGSVD.o CmplxGSVD.o
+-GSVD_TARGET = gsvd.oct
+-GSVD_TEST = gsvd
+-GSVD_DEPENDS = gsvd.d dbleGSVD.d CmplxGSVD.d
+-
+-OBJECTS = $(GSVD_OBJECTS)
+-TARGETS = $(GSVD_TARGET)
+-DEPENDS = $(GSVD_DEPENDS)
+-
+-.PHONY: all test clean count
+-
+-.SUFFIXES:
+-
+-.PRECIOUS: %.d %.o
+-
+-all : $(TARGETS) pgmres.oct
+-
+-$(GSVD_TARGET) : $(GSVD_DEPENDS) $(GSVD_OBJECTS)
+- $(MKOCTFILE) $(DEFINES) $(GSVD_OBJECTS) -o $@ ${LAPACK_LIBS}
++MKOCTFILE ?= mkoctfile
+
+-$(GSVD_TEST) : $(GSVD_TARGET)
++OCT_FILES := gsvd.oct pgmres.oct
+
+-ifneq (,$(DEPENDS))
+- sinclude $(DEPENDS)
+-endif
++GSVD_DEPENDS := dbleGSVD.o CmplxGSVD.o
+
+-%.d:%.cc
+- $(MKOCTFILE) $(DEFINES) -M $<
++LAPACK_LIBS ?= $(shell $(MKOCTFILE) -p LAPACK_LIBS)
++BLAS_LIBS ?= $(shell $(MKOCTFILE) -p BLAS_LIBS)
+
+-%.o:%.cc
+-%.o:%.cc %.d
+- $(MKOCTFILE) $(DEFINES) -c $<
++.PHONY: all clean
+
+-%.o:%.f
+- $(MKOCTFILE) $(DEFINES) -c $<
+-%.oct:%.o
+- $(MKOCTFILE) $(DEFINES) $< -o $@
++all: $(OCT_FILES)
+
+ %.oct: %.cc
+- mkoctfile $(DEFINES) $< -o $@ ${LAPACK_LIBS}
++ $(MKOCTFILE) $^
+
+-.phony: test
+-test: $(GSVD_TEST)
+- for i in $^; do echo "test $$i"; done | octave --silent
++%.o: %.cc %.h
++ $(MKOCTFILE) -c $<
+
+-clean:
+- rm -f $(TARGETS) $(DEPENDS) $(OBJECTS) octave-core
++gsvd.oct: gsvd.cc $(GSVD_DEPENDS)
++ $(MKOCTFILE) -c $< $(LAPACK_LIBS) $(BLAS_LIBS)
+
+-count:
+- wc *{.cc,.h,.f}
++clean:
++ $(RM) *.o *.oct octave-core octave-workspace
Added: head/math/octave-forge-linear-algebra/files/patch-dbleGSVD.cc
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ head/math/octave-forge-linear-algebra/files/patch-dbleGSVD.cc Mon May 14 21:01:37 2018 (r469966)
@@ -0,0 +1,147 @@
+--- dbleGSVD.cc.orig 2015-01-24 19:54:11 UTC
++++ dbleGSVD.cc
+@@ -14,14 +14,14 @@
+ // You should have received a copy of the GNU General Public License along with
+ // this program; if not, see <http://www.gnu.org/licenses/>.
+
+-#ifdef HAVE_CONFIG_H
+-#include <config.h>
+-#endif
++#include "dbleGSVD.h"
+
+ #include <iostream>
+
+-#include "dbleGSVD.h"
++#include <octave/oct.h>
++
+ #include "f77-fcn.h"
++#include "lo-error.h"
+
+ /*
+ uncomment those lines to monitor k and l
+@@ -29,6 +29,13 @@
+ #include "pager.h"
+ */
+
++#if defined (OCTAVE_HAVE_F77_INT_TYPE)
++# define TO_F77_INT(x) octave::to_f77_int (x)
++#else
++# define TO_F77_INT(x) (x)
++typedef octave_idx_type F77_INT;
++#endif
++
+ extern "C"
+ {
+ F77_RET_T
+@@ -37,26 +44,26 @@ extern "C"
+ F77_CONST_CHAR_ARG_DECL, // JOBU (input) CHARACTER*1
+ F77_CONST_CHAR_ARG_DECL, // JOBV (input) CHARACTER*1
+ F77_CONST_CHAR_ARG_DECL, // JOBQ (input) CHARACTER*1
+- const octave_idx_type&, // M (input) INTEGER
+- const octave_idx_type&, // N (input) INTEGER
+- const octave_idx_type&, // P (input) INTEGER
+- octave_idx_type &, // K (output) INTEGER
+- octave_idx_type &, // L (output) INTEGER
++ const F77_INT&, // M (input) INTEGER
++ const F77_INT&, // N (input) INTEGER
++ const F77_INT&, // P (input) INTEGER
++ F77_INT &, // K (output) INTEGER
++ F77_INT &, // L (output) INTEGER
+ double*, // A (input/output) DOUBLE PRECISION array, dimension (LDA,N)
+- const octave_idx_type&, // LDA (input) INTEGER
++ const F77_INT&, // LDA (input) INTEGER
+ double*, // B (input/output) DOUBLE PRECISION array, dimension (LDB,N)
+- const octave_idx_type&, // LDB (input) INTEGER
++ const F77_INT&, // LDB (input) INTEGER
+ double*, // ALPHA (output) DOUBLE PRECISION array, dimension (N)
+ double*, // BETA (output) DOUBLE PRECISION array, dimension (N)
+ double*, // U (output) DOUBLE PRECISION array, dimension (LDU,M)
+- const octave_idx_type&, // LDU (input) INTEGER
++ const F77_INT&, // LDU (input) INTEGER
+ double*, // V (output) DOUBLE PRECISION array, dimension (LDV,P)
+- const octave_idx_type&, // LDV (input) INTEGER
++ const F77_INT&, // LDV (input) INTEGER
+ double*, // Q (output) DOUBLE PRECISION array, dimension (LDQ,N)
+- const octave_idx_type&, // LDQ (input) INTEGER
++ const F77_INT&, // LDQ (input) INTEGER
+ double*, // WORK (workspace) DOUBLE PRECISION array
+- int*, // IWORK (workspace/output) INTEGER array, dimension (N)
+- octave_idx_type& // INFO (output)INTEGER
++ F77_INT*, // IWORK (workspace/output) INTEGER array, dimension (N)
++ F77_INT& // INFO (output)INTEGER
+ F77_CHAR_ARG_LEN_DECL
+ F77_CHAR_ARG_LEN_DECL
+ F77_CHAR_ARG_LEN_DECL
+@@ -117,11 +124,11 @@ GSVD::R_matrix (void) const
+ octave_idx_type
+ GSVD::init (const Matrix& a, const Matrix& b, GSVD::type gsvd_type)
+ {
+- octave_idx_type info;
++ F77_INT info;
+
+- octave_idx_type m = a.rows ();
+- octave_idx_type n = a.cols ();
+- octave_idx_type p = b.rows ();
++ F77_INT m = TO_F77_INT (a.rows ());
++ F77_INT n = TO_F77_INT (a.cols ());
++ F77_INT p = TO_F77_INT (b.rows ());
+
+ Matrix atmp = a;
+ double *tmp_dataA = atmp.fortran_vec ();
+@@ -129,17 +136,17 @@ GSVD::init (const Matrix& a, const Matri
+ Matrix btmp = b;
+ double *tmp_dataB = btmp.fortran_vec ();
+
+- // octave_idx_type min_mn = m < n ? m : n;
++ // F77_INT min_mn = m < n ? m : n;
+
+ char jobu = 'U';
+ char jobv = 'V';
+ char jobq = 'Q';
+
+- octave_idx_type nrow_u = m;
+- octave_idx_type nrow_v = p;
+- octave_idx_type nrow_q = n;
++ F77_INT nrow_u = m;
++ F77_INT nrow_v = p;
++ F77_INT nrow_q = n;
+
+- octave_idx_type k, l;
++ F77_INT k, l;
+
+ switch (gsvd_type)
+ {
+@@ -183,14 +190,14 @@ GSVD::init (const Matrix& a, const Matri
+ }
+ double *q = right_sm.fortran_vec ();
+
+- octave_idx_type lwork = 3*n;
++ F77_INT lwork = 3*n;
+ lwork = lwork > m ? lwork : m;
+ lwork = (lwork > p ? lwork : p) + n;
+
+ Array<double> work (dim_vector (lwork, 1));
+ Array<double> alpha (dim_vector (n, 1));
+ Array<double> beta (dim_vector (n, 1));
+- Array<int> iwork (dim_vector (n, 1));
++ Array<F77_INT> iwork (dim_vector (n, 1));
+
+ F77_XFCN (dggsvd, DGGSVD, (F77_CONST_CHAR_ARG2 (&jobu, 1),
+ F77_CONST_CHAR_ARG2 (&jobv, 1),
+@@ -213,13 +220,13 @@ GSVD::init (const Matrix& a, const Matri
+ if (info > 0) {
+ (*current_liboctave_error_handler) ("dggsvd.f: Jacobi-type procedure failed to converge.");
+ } else {
+- octave_idx_type i, j;
++ F77_INT i, j;
+
+ if (GSVD::std == gsvd_type) {
+ R.resize(k+l, k+l);
+- int astart = n-k-l;
++ F77_INT astart = n-k-l;
+ if (m - k - l >= 0) {
+- int astart = n-k-l;
++ F77_INT astart = n-k-l;
+ /*
+ * R is stored in A(1:K+L,N-K-L+1:N)
+ */
Added: head/math/octave-forge-linear-algebra/files/patch-dbleGSVD.h
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ head/math/octave-forge-linear-algebra/files/patch-dbleGSVD.h Mon May 14 21:01:37 2018 (r469966)
@@ -0,0 +1,11 @@
+--- dbleGSVD.h.orig 2015-01-24 19:54:11 UTC
++++ dbleGSVD.h
+@@ -19,6 +19,8 @@
+
+ #include <iostream>
+
++#include <octave/oct.h>
++
+ #include "dDiagMatrix.h"
+ #include "dMatrix.h"
+
More information about the svn-ports-head
mailing list