git: c44bf0733f70 - main - math/ddfun: new port, double-double precision package with special functions

From: Thierry Thomas <thierry_at_FreeBSD.org>
Date: Sun, 05 Nov 2023 18:32:52 UTC
The branch main has been updated by thierry:

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

commit c44bf0733f70cf429b4db1410bc40c78f68a68f0
Author:     Thierry Thomas <thierry@FreeBSD.org>
AuthorDate: 2023-11-05 18:27:20 +0000
Commit:     Thierry Thomas <thierry@FreeBSD.org>
CommitDate: 2023-11-05 18:32:49 +0000

    math/ddfun: new port, double-double precision package with special functions
---
 math/ddfun/Makefile  | 54 ++++++++++++++++++++++++++++++++++++++++++++++++++++
 math/ddfun/distinfo  |  3 +++
 math/ddfun/pkg-descr | 11 +++++++++++
 math/ddfun/pkg-plist | 11 +++++++++++
 4 files changed, 79 insertions(+)

diff --git a/math/ddfun/Makefile b/math/ddfun/Makefile
new file mode 100644
index 000000000000..e4614a4e12e5
--- /dev/null
+++ b/math/ddfun/Makefile
@@ -0,0 +1,54 @@
+PORTNAME=	ddfun
+DISTVERSIONPREFIX=v
+DISTVERSION=	03
+CATEGORIES=	math
+MASTER_SITES=	https://www.davidhbailey.com/dhbsoftware/
+
+MAINTAINER=	fortran@FreeBSD.org
+COMMENT=	Double-double package with special functions
+WWW=		https://crd-legacy.lbl.gov/~dhbailey/mpdist
+
+LICENSE=	BSD3CLAUSE
+LICENSE_FILE=	${WRKSRC}/DISCLAIMER.txt
+
+USES=		fortran
+
+BINARY_ALIAS=	gfortran=${FC}
+FFLAGS+=	-O3
+BUILD_WRKSRC=	${WRKSRC}/fortran
+
+OPTIONS_DEFINE=	DOCS EXAMPLES
+
+pre-configure:
+.for f in gnu-complib-dd.scr gnu-complink-dd.scr
+	${REINPLACE_CMD} -e 's|-O3|${FFLAGS}|' ${BUILD_WRKSRC}/${f}
+.endfor
+
+do-build:
+	cd ${BUILD_WRKSRC} && ${SETENV} ${MAKE_ENV} ./gnu-complib-dd.scr
+
+do-build-EXAMPLES-on:
+	cd ${BUILD_WRKSRC} &&	\
+		${SETENV} ${MAKE_ENV} ./gnu-complink-dd.scr tpslqm1dd
+
+do-install:
+	${MKDIR} ${STAGEDIR}${PREFIX}/include
+	cd ${BUILD_WRKSRC} &&	\
+	${INSTALL_DATA} *.mod ${STAGEDIR}${PREFIX}/include
+
+do-install-EXAMPLES-on:
+	${MKDIR} ${STAGEDIR}${EXAMPLESDIR}
+	cd ${BUILD_WRKSRC} &&	\
+	${INSTALL_PROGRAM} tpslqm1dd ${STAGEDIR}${EXAMPLESDIR}	&&	\
+	${INSTALL_DATA} tpslqm1dd.f90 ${STAGEDIR}${EXAMPLESDIR}
+
+do-install-DOCS-on:
+	${MKDIR} ${STAGEDIR}${DOCSDIR}
+	${INSTALL_DATA} ${WRKSRC}/README-ddfun.txt ${STAGEDIR}${DOCSDIR}
+	cd ${BUILD_WRKSRC} &&	\
+	${INSTALL_DATA} *.ref.txt ${STAGEDIR}${DOCSDIR}
+
+do-test:
+	cd ${BUILD_WRKSRC} && ${SETENV} ${MAKE_ENV} ./gnu-ddfun-tests.scr
+
+.include <bsd.port.mk>
diff --git a/math/ddfun/distinfo b/math/ddfun/distinfo
new file mode 100644
index 000000000000..6a29fbace038
--- /dev/null
+++ b/math/ddfun/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1699206558
+SHA256 (ddfun-v03.tar.gz) = 34b9037d2cf1260e02adfc673cbc7ffedc979bd1738d6b48d8c2e6330afc0e61
+SIZE (ddfun-v03.tar.gz) = 101238
diff --git a/math/ddfun/pkg-descr b/math/ddfun/pkg-descr
new file mode 100644
index 000000000000..39901bcba9ae
--- /dev/null
+++ b/math/ddfun/pkg-descr
@@ -0,0 +1,11 @@
+DDFUN: A double-double package with special functions (approximately 30 digit
+precision).
+
+This package permits one to perform floating-point computations (real and
+complex) to double-double precision (approximately 30 digits), by making only
+relatively minor changes to existing Fortran programs. It is intended as a
+substitute for IEEE 128-bit quad precision on systems where quad precision is
+not available. All basic arithmetic operations and transcendental functions are
+supported, together with numerous special functions. The package should run
+correctly on any Unix-based system supporting a Fortran-2008 compiler and IEEE
+64-bit floating-point arithmetic.
diff --git a/math/ddfun/pkg-plist b/math/ddfun/pkg-plist
new file mode 100644
index 000000000000..6d966fa3dd90
--- /dev/null
+++ b/math/ddfun/pkg-plist
@@ -0,0 +1,11 @@
+include/ddfuna.mod
+include/ddfune.mod
+include/ddmodule.mod
+%%PORTDOCS%%%%DOCSDIR%%/README-ddfun.txt
+%%PORTDOCS%%%%DOCSDIR%%/testddfun.ref.txt
+%%PORTDOCS%%%%DOCSDIR%%/testdqfun.ref.txt
+%%PORTDOCS%%%%DOCSDIR%%/tpphixdd.ref.txt
+%%PORTDOCS%%%%DOCSDIR%%/tpslqm1dd.ref.txt
+%%PORTDOCS%%%%DOCSDIR%%/tquaddd.ref.txt
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/tpslqm1dd
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/tpslqm1dd.f90