git: 52672d5fb8c4 - main - math/arpack++: upgrade to 2.4.0

From: Thierry Thomas <thierry_at_FreeBSD.org>
Date: Sun, 15 Oct 2023 17:10:28 UTC
The branch main has been updated by thierry:

URL: https://cgit.FreeBSD.org/ports/commit/?id=52672d5fb8c4055673c6dc7e0e33d5127f5d80d9

commit 52672d5fb8c4055673c6dc7e0e33d5127f5d80d9
Author:     Thierry Thomas <thierry@FreeBSD.org>
AuthorDate: 2023-10-15 16:50:01 +0000
Commit:     Thierry Thomas <thierry@FreeBSD.org>
CommitDate: 2023-10-15 17:08:47 +0000

    math/arpack++: upgrade to 2.4.0
    
    Release notes at
            <https://github.com/m-reuter/arpackpp/releases/tag/2.4.0>.
---
 math/arpack++/Makefile                 |  68 +++------
 math/arpack++/distinfo                 |   6 +-
 math/arpack++/files/patch-Makefile.inc | 110 --------------
 math/arpack++/pkg-plist                | 260 ++++++++++++++++++++++-----------
 4 files changed, 197 insertions(+), 247 deletions(-)

diff --git a/math/arpack++/Makefile b/math/arpack++/Makefile
index b95492ef358b..d74f5689aef4 100644
--- a/math/arpack++/Makefile
+++ b/math/arpack++/Makefile
@@ -1,6 +1,5 @@
 PORTNAME=	arpack++
-PORTVERSION=	2.3.0
-PORTREVISION=	7
+PORTVERSION=	2.4.0
 CATEGORIES=	math
 
 MAINTAINER=	ports@FreeBSD.org
@@ -12,52 +11,43 @@ LICENSE_FILE=	${WRKSRC}/LICENSE
 
 LIB_DEPENDS=	libarpack.so:math/arpack-ng \
 		libsuperlu.so:math/superlu \
+		libcholmod.so:math/suitesparse-cholmod \
 		libumfpack.so:math/suitesparse-umfpack
 
-.if exists(${LOCALBASE}/lib/libatlas.so) && !defined(WITH_BLAS)
-WITH_ATLAS=	yes
-.endif
-.if defined(WITH_ATLAS)
-LIB_DEPENDS+=	libatlas.so:math/atlas
-BLAS=		-lf77blas
-LAPACK=		-lalapack -lcblas
-.else
-LIB_DEPENDS+=	liblapack.so:math/lapack
-LIB_DEPENDS+=	libblas.so:math/blas
-BLAS=		-lblas
-LAPACK=		-llapack
-.endif
+USES=		cmake:testing compiler:c++17-lang fortran
+USE_CXXSTD=	c++17
 
 USE_GITHUB=	yes
 GH_ACCOUNT=	m-reuter
 GH_PROJECT=	arpackpp
 
-USES=		fortran gmake localbase
+CMAKE_ARGS=	-DENABLE_FORTRAN:BOOL=ON	\
+		-DENABLE_SUPERLU:BOOL=ON	\
+		-DENABLE_UMFPACK:BOOL=ON	\
+		-DENABLE_CHOLMOD:BOOL=ON	\
+		-DENABLE_SUITESPARSE_STATIC:BOOL=OFF
 
-NO_BUILD=	yes
 NO_ARCH=	yes
 
 REINPLACE_ARGS=	-i ""
 
 DOCS=		README.md doc/README doc/arpackpp.pdf doc/structure.txt
 
-OPTIONS_DEFINE=	DOCS EXAMPLES
+OPTIONS_DEFINE=		DOCS EXAMPLES
+OPTIONS_RADIO=		BLAS
+OPTIONS_RADIO_BLAS=	ATLAS NETLIB OPENBLAS
+OPTIONS_DEFAULT=	OPENBLAS
 
-PORTDOCS=	*
-PORTEXAMPLES=	*
+EXAMPLES_CMAKE_ON=	-DENABLE_TESTS:BOOL=ON
+EXAMPLES_CMAKE_OFF=	-DENABLE_TESTS:BOOL=OFF
+EXAMPLES_VARS_OFF=	NO_BUILD=yes
 
-pre-configure:
-	${REINPLACE_CMD} -e "s|%%LOCALBASE%%|${LOCALBASE}|g"	\
-		-e "s|%%BLAS%%|${BLAS}|"			\
-		-e "s|%%PREFIX%%|${PREFIX}|" ${WRKSRC}/Makefile.inc
-	${FIND} ${WRKSRC}/examples -name Makefile |	\
-	${XARGS} ${REINPLACE_CMD} -e 's|$$(ARPACKPP_DIR)/examples|${EXAMPLESDIR}|'
+ATLAS_USES=	blaslapack:atlas
+NETLIB_USES=	blaslapack:netlib
+OPENBLAS_USES=	blaslapack:openblas
 
-do-install:
-	@${MKDIR} ${STAGEDIR}${PREFIX}/include/ARPACK++
-	for inc in `${LS} ${WRKSRC}/include` ; do \
-		${INSTALL_DATA} ${WRKSRC}/include/$$inc ${STAGEDIR}${PREFIX}/include/ARPACK++; \
-	done
+PORTDOCS=	*
+PORTEXAMPLES=	*
 
 do-install-DOCS-on:
 	@${MKDIR} ${STAGEDIR}${DOCSDIR}
@@ -68,23 +58,7 @@ do-install-DOCS-on:
 
 do-install-EXAMPLES-on:
 	@${MKDIR} ${STAGEDIR}${EXAMPLESDIR}
-	${INSTALL_DATA} ${WRKSRC}/Makefile.inc ${STAGEDIR}${EXAMPLESDIR}
 	${CP} -R ${WRKSRC}/examples/* ${STAGEDIR}${EXAMPLESDIR}
 	@${ECHO_MSG} "===> Examples installed in ${EXAMPLESDIR}."
 
-.if defined(MAINTAINER_MODE)
-test:	install
-	for sample in `${FIND} ${WRKSRC}/examples -name Makefile` ; do \
-		(cd `dirname $$sample` ; \
-		${ECHO_MSG} "============" ; \
-		${ECHO_MSG} "*** Entering `pwd`" ; \
-		${SETENV} ${MAKE_ENV} ${MAKE_CMD} ${MAKE_FLAGS} ${MAKEFILE} ${MAKE_ARGS} \
-		|| ${TRUE}) ; \
-	done
-	@${ECHO_MSG} "============"
-	@${ECHO_MSG} "Failures expected in umfpack/complex, umfpack/nonsym & umfpack/sym"
-	@${ECHO_MSG} "(UM*2FA -> umfpack_*_numeric)."
-	@${ECHO_MSG}
-.endif
-
 .include <bsd.port.mk>
diff --git a/math/arpack++/distinfo b/math/arpack++/distinfo
index 0f7f8b1e3597..78a3a0f57dac 100644
--- a/math/arpack++/distinfo
+++ b/math/arpack++/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1565284527
-SHA256 (m-reuter-arpackpp-2.3.0_GH0.tar.gz) = 288fb4cd2dd08e02ed29db579bc1278023a06415dd2f63b1fdc323c7993fcb1a
-SIZE (m-reuter-arpackpp-2.3.0_GH0.tar.gz) = 4882794
+TIMESTAMP = 1697377358
+SHA256 (m-reuter-arpackpp-2.4.0_GH0.tar.gz) = 06416ee584d01eba42555b676a4220f68575ef715cde9b37e85910698d784ca0
+SIZE (m-reuter-arpackpp-2.4.0_GH0.tar.gz) = 4884120
diff --git a/math/arpack++/files/patch-Makefile.inc b/math/arpack++/files/patch-Makefile.inc
deleted file mode 100644
index 12c1d1717b6c..000000000000
--- a/math/arpack++/files/patch-Makefile.inc
+++ /dev/null
@@ -1,110 +0,0 @@
---- Makefile.inc.orig	2015-11-23 03:58:51 UTC
-+++ Makefile.inc
-@@ -1,26 +1,26 @@
--# ARPACK++ v1.2 2/18/2000
-+# ARPACK++ v2.3.0 9/1/2016
- # c++ interface to ARPACK code.
- # This file contains some definitions used to compile arpack++ examples
--# with the g++ compiler under linux.
-+# with the c++ compiler under FreeBSD.
- 
- 
- # Defining the machine.
- 
--PLAT         = linux
-+PLAT         = `uname -s`
- 
- # Defining the compiler.
- 
--CPP          = g++
-+CPP          = $(CXX)
- 
- # Defining ARPACK++ directories.
- # ARPACKPP_INC is the directory that contains all arpack++ header files.
- # SUPERLU_DIR and UMFPACK_DIR must be set to ARPACKPP_INC.
- 
--#ARPACKPP_DIR = $(HOME)/arpack++
--ARPACKPP_DIR = ../../..
--ARPACKPP_INC = $(ARPACKPP_DIR)/include
--SUPERLU_DIR  = $(ARPACKPP_INC)
--UMFPACK_DIR  = $(ARPACKPP_INC)
-+ARPACK_INC   = %%LOCALBASE%%/include/arpack
-+ARPACKPP_INC   = %%PREFIX%%/include/ARPACK++
-+ARPACKPP_DIR = %%PREFIX%%/share/
-+SUPERLU_DIR  = %%LOCALBASE%%/include/superlu
-+UMFPACK_DIR  = %%LOCALBASE%%/include/suitesparse
- 
- # Defining ARPACK, LAPACK, UMFPACK, SUPERLU, BLAS and FORTRAN libraries.
- # See the arpack++ manual or the README file for directions on how to 
-@@ -37,49 +37,48 @@ UMFPACK_DIR  = $(ARPACKPP_INC)
- ARPACK_LIB   = -larpack
- LAPACK_LIB   = -llapack
- SUPERLU_LIB  = -lsuperlu
--BLAS_LIB     = -lblas
-+BLAS_LIB     = %%BLAS%%
- FORTRAN_LIBS = -lgfortran
- 
- # SuiteSparse contains the UMFPACK and CHOLMOD code. To link examples against 
- # these, set the SUITESPARSE_DIR to point to your installation:
--SUITESPARSE_DIR = $(ARPACKPP_DIR)/../SuiteSparse
-+SUITESPARSE_DIR = %%LOCALBASE%%/include/suitesparse
- 
--UMFPACK_LIB  = $(SUITESPARSE_DIR)/UMFPACK/Lib/libumfpack.a  \
-- $(SUITESPARSE_DIR)/CHOLMOD/Lib/libcholmod.a \
-- $(SUITESPARSE_DIR)/COLAMD/Lib/libcolamd.a \
-- $(SUITESPARSE_DIR)/CCOLAMD/Lib/libccolamd.a \
-- $(SUITESPARSE_DIR)/metis-4.0/libmetis.a  \
-- $(SUITESPARSE_DIR)/CAMD/Lib/libcamd.a \
-- $(SUITESPARSE_DIR)/AMD/Lib/libamd.a \
-- $(SUITESPARSE_DIR)/SuiteSparse_config/libsuitesparseconfig.a 
-+UMFPACK_LIB  = -lumfpack  \
-+ -lcholmod \
-+ -lcolamd \
-+ -lccolamd \
-+ -lmetis  \
-+ -lcamd \
-+ -lamd \
-+ -lsuitesparseconfig 
-  
--CHOLMOD_LIB  = $(SUITESPARSE_DIR)/CHOLMOD/Lib/libcholmod.a \
-- $(SUITESPARSE_DIR)/COLAMD/Lib/libcolamd.a \
-- $(SUITESPARSE_DIR)/CCOLAMD/Lib/libccolamd.a \
-- $(SUITESPARSE_DIR)/metis-4.0/libmetis.a  \
-- $(SUITESPARSE_DIR)/CAMD/Lib/libcamd.a \
-- $(SUITESPARSE_DIR)/AMD/Lib/libamd.a \
-+CHOLMOD_LIB  = -lcholmod \
-+ -lcolamd \
-+ -lccolamd \
-+ -lmetis  \
-+ -lcamd \
-+ -lamd
- 
- # For cholmod need additional headers:
--CHOLMOD_INC  = -I$(SUITESPARSE_DIR)/CHOLMOD/Include -I$(SUITESPARSE_DIR)/SuiteSparse_config
-+CHOLMOD_INC  = -I$(SUITESPARSE_DIR)
- 
- 
- # Defining g++ flags and directories.
- 
- # CPP_WARNINGS = -fpermissive 
--CPP_WARNINGS = -Wall -ansi -pedantic-errors
-+#CPP_WARNINGS = -Wall -ansi -pedantic-errors
-+CPP_WARNINGS = -Wno-deprecated
- CPP_DEBUG    = -g
- CPP_OPTIM    = -O
--CPP_LIBS     = 
-+CPP_LIBS     = -lm
- CPP_INC      = 
- 
--CPP_FLAGS    = $(CPP_DEBUG) -D$(PLAT) -I$(ARPACKPP_INC) -I$(CPP_INC) \
--               $(CPP_WARNINGS)
-+CPP_FLAGS    = $(CXXFLAGS) $(CPP_WARNINGS) -D$(PLAT) -I$(ARPACKPP_INC) $(FCFLAGS)
- 
- # Putting all libraries together.
- 
--ALL_LIBS     = $(CPP_LIBS) $(ARPACK_LIB) \
--               $(BLAS_LIB) $(LAPACK_LIB) $(FORTRAN_LIBS) 
-+ALL_LIBS     = $(LDFLAGS) $(ARPACK_LIB) $(LAPACK_LIB) $(BLAS_LIB) $(FORTRAN_LIBS) $(CPP_LIBS)
- 
- # defining paths.
- 
diff --git a/math/arpack++/pkg-plist b/math/arpack++/pkg-plist
index 15db228563e5..2a45cc667623 100644
--- a/math/arpack++/pkg-plist
+++ b/math/arpack++/pkg-plist
@@ -1,87 +1,173 @@
-include/ARPACK++/README
-include/ARPACK++/arbgcomp.h
-include/ARPACK++/arbgnsym.h
-include/ARPACK++/arbgsym.h
-include/ARPACK++/arbnsmat.h
-include/ARPACK++/arbnspen.h
-include/ARPACK++/arbscomp.h
-include/ARPACK++/arbsmat.h
-include/ARPACK++/arbsnsym.h
-include/ARPACK++/arbspen.h
-include/ARPACK++/arbssym.h
-include/ARPACK++/arcgsym.h
-include/ARPACK++/arch.h
-include/ARPACK++/arcomp.h
-include/ARPACK++/arcsmat.h
-include/ARPACK++/arcspen.h
-include/ARPACK++/arcssym.h
-include/ARPACK++/ardfmat.h
-include/ARPACK++/ardgcomp.h
-include/ARPACK++/ardgnsym.h
-include/ARPACK++/ardgsym.h
-include/ARPACK++/ardnsmat.h
-include/ARPACK++/ardnspen.h
-include/ARPACK++/ardscomp.h
-include/ARPACK++/ardsmat.h
-include/ARPACK++/ardsnsym.h
-include/ARPACK++/ardspen.h
-include/ARPACK++/ardssym.h
-include/ARPACK++/arerror.h
-include/ARPACK++/argcomp.h
-include/ARPACK++/argeig.h
-include/ARPACK++/argnsym.h
-include/ARPACK++/argsym.h
-include/ARPACK++/arhbmat.h
-include/ARPACK++/arlcomp.h
-include/ARPACK++/arlgcomp.h
-include/ARPACK++/arlgnsym.h
-include/ARPACK++/arlgsym.h
-include/ARPACK++/arlnames.h
-include/ARPACK++/arlnsmat.h
-include/ARPACK++/arlnspen.h
-include/ARPACK++/arlscomp.h
-include/ARPACK++/arlsmat.h
-include/ARPACK++/arlsnsym.h
-include/ARPACK++/arlspdef.h
-include/ARPACK++/arlspen.h
-include/ARPACK++/arlssym.h
-include/ARPACK++/arlsupm.h
-include/ARPACK++/arlutil.h
-include/ARPACK++/armat.h
-include/ARPACK++/arpackf.h
-include/ARPACK++/arrgcomp.h
-include/ARPACK++/arrgeig.h
-include/ARPACK++/arrgnsym.h
-include/ARPACK++/arrgsym.h
-include/ARPACK++/arrscomp.h
-include/ARPACK++/arrseig.h
-include/ARPACK++/arrsnsym.h
-include/ARPACK++/arrssym.h
-include/ARPACK++/arscomp.h
-include/ARPACK++/arseig.h
-include/ARPACK++/arsnsym.h
-include/ARPACK++/arssym.h
-include/ARPACK++/arugcomp.h
-include/ARPACK++/arugnsym.h
-include/ARPACK++/arugsym.h
-include/ARPACK++/arunsmat.h
-include/ARPACK++/arunspen.h
-include/ARPACK++/aruscomp.h
-include/ARPACK++/arusmat.h
-include/ARPACK++/arusnsym.h
-include/ARPACK++/aruspen.h
-include/ARPACK++/arussym.h
-include/ARPACK++/blas1c.h
-include/ARPACK++/blas1f.h
-include/ARPACK++/caupp.h
-include/ARPACK++/ceupp.h
-include/ARPACK++/cholmodc.h
-include/ARPACK++/debug.h
-include/ARPACK++/lapackc.h
-include/ARPACK++/lapackf.h
-include/ARPACK++/naupp.h
-include/ARPACK++/neupp.h
-include/ARPACK++/saupp.h
-include/ARPACK++/seupp.h
-include/ARPACK++/superluc.h
-include/ARPACK++/umfpackc.h
+include/arpackpp/acompsol.h
+include/arpackpp/ansymsol.h
+include/arpackpp/arbgcomp.h
+include/arpackpp/arbgnsym.h
+include/arpackpp/arbgsym.h
+include/arpackpp/arbnsmat.h
+include/arpackpp/arbnspen.h
+include/arpackpp/arbscomp.h
+include/arpackpp/arbsmat.h
+include/arpackpp/arbsnsym.h
+include/arpackpp/arbspen.h
+include/arpackpp/arbssym.h
+include/arpackpp/arcgsym.h
+include/arpackpp/arch.h
+include/arpackpp/arcomp.h
+include/arpackpp/arcsmat.h
+include/arpackpp/arcspen.h
+include/arpackpp/arcssym.h
+include/arpackpp/ardfmat.h
+include/arpackpp/ardgcomp.h
+include/arpackpp/ardgnsym.h
+include/arpackpp/ardgsym.h
+include/arpackpp/ardnsmat.h
+include/arpackpp/ardnspen.h
+include/arpackpp/ardscomp.h
+include/arpackpp/ardsmat.h
+include/arpackpp/ardsnsym.h
+include/arpackpp/ardspen.h
+include/arpackpp/ardssym.h
+include/arpackpp/areig.h
+include/arpackpp/arerror.h
+include/arpackpp/argcomp.h
+include/arpackpp/argeig.h
+include/arpackpp/argnsym.h
+include/arpackpp/argsym.h
+include/arpackpp/arhbmat.h
+include/arpackpp/arlcomp.h
+include/arpackpp/arlgcomp.h
+include/arpackpp/arlgnsym.h
+include/arpackpp/arlgsym.h
+include/arpackpp/arlnames.h
+include/arpackpp/arlnsmat.h
+include/arpackpp/arlnspen.h
+include/arpackpp/arlscomp.h
+include/arpackpp/arlsmat.h
+include/arpackpp/arlsnsym.h
+include/arpackpp/arlspdef.h
+include/arpackpp/arlspen.h
+include/arpackpp/arlssym.h
+include/arpackpp/arlsupm.h
+include/arpackpp/arlutil.h
+include/arpackpp/armat.h
+include/arpackpp/arpackf.h
+include/arpackpp/arrgcomp.h
+include/arpackpp/arrgeig.h
+include/arpackpp/arrgnsym.h
+include/arpackpp/arrgsym.h
+include/arpackpp/arrscomp.h
+include/arpackpp/arrseig.h
+include/arpackpp/arrsnsym.h
+include/arpackpp/arrssym.h
+include/arpackpp/arscomp.h
+include/arpackpp/arseig.h
+include/arpackpp/arsnsym.h
+include/arpackpp/arssym.h
+include/arpackpp/arugcomp.h
+include/arpackpp/arugnsym.h
+include/arpackpp/arugsym.h
+include/arpackpp/arunsmat.h
+include/arpackpp/arunspen.h
+include/arpackpp/aruscomp.h
+include/arpackpp/arusmat.h
+include/arpackpp/arusnsym.h
+include/arpackpp/aruspen.h
+include/arpackpp/arussym.h
+include/arpackpp/asymsol.h
+include/arpackpp/bcmatrxa.h
+include/arpackpp/bcmatrxb.h
+include/arpackpp/bcmatrxc.h
+include/arpackpp/blas1c.h
+include/arpackpp/blas1f.h
+include/arpackpp/bnmatrxa.h
+include/arpackpp/bnmatrxb.h
+include/arpackpp/bnmatrxc.h
+include/arpackpp/bnmatrxd.h
+include/arpackpp/bnmatrxe.h
+include/arpackpp/bnmatrxw.h
+include/arpackpp/bsmatrxa.h
+include/arpackpp/bsmatrxb.h
+include/arpackpp/bsmatrxc.h
+include/arpackpp/caupp.h
+include/arpackpp/ceupp.h
+include/arpackpp/cgenprba.h
+include/arpackpp/cgenprbb.h
+include/arpackpp/cholmodc.h
+include/arpackpp/cmatrixa.h
+include/arpackpp/cmatrixb.h
+include/arpackpp/cmatrixc.h
+include/arpackpp/cmatrixd.h
+include/arpackpp/cmatrixe.h
+include/arpackpp/cmatrixf.h
+include/arpackpp/compgsol.h
+include/arpackpp/compsol.h
+include/arpackpp/dcmatrxa.h
+include/arpackpp/dcmatrxb.h
+include/arpackpp/dcmatrxc.h
+include/arpackpp/debug.h
+include/arpackpp/dnmatrxa.h
+include/arpackpp/dnmatrxb.h
+include/arpackpp/dnmatrxc.h
+include/arpackpp/dnmatrxd.h
+include/arpackpp/dnmatrxe.h
+include/arpackpp/dnmatrxw.h
+include/arpackpp/dsmatrxa.h
+include/arpackpp/dsmatrxb.h
+include/arpackpp/dsmatrxc.h
+include/arpackpp/lapackc.h
+include/arpackpp/lapackf.h
+include/arpackpp/lcmatrxa.h
+include/arpackpp/lcmatrxb.h
+include/arpackpp/lcmatrxe.h
+include/arpackpp/lcmatrxf.h
+include/arpackpp/lcompsol.h
+include/arpackpp/lnmatrxa.h
+include/arpackpp/lnmatrxb.h
+include/arpackpp/lnmatrxc.h
+include/arpackpp/lnmatrxd.h
+include/arpackpp/lnmatrxe.h
+include/arpackpp/lnmatrxf.h
+include/arpackpp/lnmatrxv.h
+include/arpackpp/lnmatrxw.h
+include/arpackpp/lnsymsol.h
+include/arpackpp/lsmatrxa.h
+include/arpackpp/lsmatrxb.h
+include/arpackpp/lsmatrxc.h
+include/arpackpp/lsmatrxd.h
+include/arpackpp/lsvdsol.h
+include/arpackpp/lsymsol.h
+include/arpackpp/matprod.h
+include/arpackpp/naupp.h
+include/arpackpp/neupp.h
+include/arpackpp/ngenprba.h
+include/arpackpp/ngenprbb.h
+include/arpackpp/ngenprbc.h
+include/arpackpp/nmatrixa.h
+include/arpackpp/nmatrixb.h
+include/arpackpp/nmatrixc.h
+include/arpackpp/nmatrixd.h
+include/arpackpp/nmatrixe.h
+include/arpackpp/nmatrixf.h
+include/arpackpp/nmatrixv.h
+include/arpackpp/nsymgsol.h
+include/arpackpp/nsymsol.h
+include/arpackpp/nsymvsol.h
+include/arpackpp/rcompgsl.h
+include/arpackpp/rcompsol.h
+include/arpackpp/rnsymgsl.h
+include/arpackpp/rnsymsol.h
+include/arpackpp/rnsymvsl.h
+include/arpackpp/rsymgsol.h
+include/arpackpp/rsymsol.h
+include/arpackpp/saupp.h
+include/arpackpp/seupp.h
+include/arpackpp/sgenprba.h
+include/arpackpp/sgenprbb.h
+include/arpackpp/smatrixa.h
+include/arpackpp/smatrixb.h
+include/arpackpp/smatrixc.h
+include/arpackpp/smatrixd.h
+include/arpackpp/superluc.h
+include/arpackpp/symgsol.h
+include/arpackpp/symsol.h
+include/arpackpp/umfpackc.h