commit:     634f8d92dc88baf041f835d16d51aadeba3912f0
Author:     Alessandro Barbieri <lssndrbarbieri <AT> gmail <DOT> com>
AuthorDate: Sun May  3 18:59:09 2020 +0000
Commit:     Alessandro Barbieri <lssndrbarbieri <AT> gmail <DOT> com>
CommitDate: Wed May  6 23:35:55 2020 +0000
URL:        https://gitweb.gentoo.org/repo/proj/guru.git/commit/?id=634f8d92

sci-libs/slicot: new package

Package-Manager: Portage-2.3.99, Repoman-2.3.22
Signed-off-by: Alessandro Barbieri <lssndrbarbieri <AT> gmail.com>

 sci-libs/slicot/Manifest                    |  1 +
 sci-libs/slicot/files/Makefile              | 26 +++++++++++++
 sci-libs/slicot/metadata.xml                | 30 +++++++++++++++
 sci-libs/slicot/slicot-5.0_p20101122.ebuild | 57 +++++++++++++++++++++++++++++
 4 files changed, 114 insertions(+)

diff --git a/sci-libs/slicot/Manifest b/sci-libs/slicot/Manifest
new file mode 100644
index 0000000..ac5de03
--- /dev/null
+++ b/sci-libs/slicot/Manifest
@@ -0,0 +1 @@
+DIST slicot_5.0+20101122.orig.tar.gz 2489463 BLAKE2B 
dc34617f84b51f6be9bb471b30dd8d7cf3dd67b1a0d6ec14af33ccd49aee33ee39b657af6d619059da42734d86eb23e0faf7827db36152001263c4c131234aad
 SHA512 
bef2707bf484636a5c58325561e3f342f08887458020c4922a2b346b88047b48e3f2d372c5c984226856be5c327f2535c32cf299baa553b8bf0fbeea896d6c9b

diff --git a/sci-libs/slicot/files/Makefile b/sci-libs/slicot/files/Makefile
new file mode 100755
index 0000000..f15cc08
--- /dev/null
+++ b/sci-libs/slicot/files/Makefile
@@ -0,0 +1,26 @@
+#!/usr/bin/make -f
+# -*- makefile -*-
+
+.PHONY: default
+default: libslicot.so
+
+SLICOT_SRC=$(sort $(shell echo src/*.f))
+SLICOT_OBJ=$(SLICOT_SRC:.f=.o)
+
+shared_dir:
+       mkdir -p $(subst _dir,,$(@))
+       touch $@
+
+$(subst src/,shared/,$(SLICOT_OBJ)): \
+  shared/%.o : src/%.f shared_dir
+
+       $(F77) $(FFLAGS) -fPIC -c $< -o $@
+
+libslicot.so: libslicot.so.$(SO)
+       ln -snf $< $@
+
+libslicot.so.$(SO): libslicot.so.$(VERS)
+       ln -snf $< $@
+
+libslicot.so.$(VERS): $(subst src/,shared/,$(SLICOT_OBJ))
+       $(F77) -fPIC ${FFLAGS} $(LDFLAGS) -shared 
-Wl,-soname=libslicot.so.$(SO) -o $@ $^

diff --git a/sci-libs/slicot/metadata.xml b/sci-libs/slicot/metadata.xml
new file mode 100644
index 0000000..4aaef1d
--- /dev/null
+++ b/sci-libs/slicot/metadata.xml
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd";>
+<pkgmetadata>
+  <maintainer type="person">
+    <email>lssndrbarbi...@gmail.com</email>
+    <name>Alessandro Barbieri</name>
+  </maintainer>
+  <upstream>
+    <bugs-to>mailto:vs...@ici.ro</bugs-to>
+    <maintainer>
+      <email>vs...@ici.ro</email>
+      <name>Vasile Sima</name>
+    </maintainer>
+  </upstream>
+  <longdescription lang="en">
+The subroutine library SLICOT provides Fortran 77 implementations of numerical 
algorithms for computations in systems and control theory. Based on numerical 
linear algebra routines from BLAS and LAPACK libraries, SLICOT provides methods 
for the design and analysis of control systems. The basic ideas behind the 
library are:
+
+    usefulness of algorithms;
+    robustness, algorithms must either return reliable results or an error or 
warning indicator;
+    numerical stability and accuracy: the results are as good as can be 
expected when working at a given precision. If possible an estimate of the 
achieved accuracy should be given;
+    performance with respect to speed and memory requirements. Although 
important because of ever increasing complexity of control problems, this 
objective may never be met at cost of the two previous ones;
+    portability and reusability: the library should be independent of 
platforms;
+    standardisation: the library is based on rigorous programming and 
documentation standards;
+    benchmarking, i.e., a standardised set of examples that allows an 
evaluation of the performance of a method as well as the implementation with 
respect to correctness, accuracy, and speed. Benchmarking gives also insight in 
the behaviour of the method and its implementation in extreme situations, i.e., 
for problems where the limit of the possible accuracy is reached.
+
+The current version of SLICOT consists of over 570 user-callable and 
computational routines in various domains of systems and control. Almost all of 
these routines have associated on-line documentation. Over 240 routines have 
associated example programs, data and results. New routines are still in 
preparation. Due to the use of Fortran 77, reusability of the software is 
obtained, so SLICOT can serve as the core for various existing and future CACSD 
platforms and production quality software. SLICOT routines can be linked to 
MATLAB through a gateway compiler, e.g., the NAG Gateway Generator. Recently, 
MATLAB or Scilab interfaces have been developed for many routines.
+
+The use of Fortran 77 allows to exploit the structural features of the 
underlying computational problem and the use of appropriate data structures. 
This is advantageous for speed of computation and required memory. As the 
complexity of systems and related control solutions is ever increasing, the 
issue of speed and memory remains a valid one. The performance of the library 
has been assessed with respect to numerical quality, computational speed, and 
memory requirements for a variety of examples. Comparisons indicate that SLICOT 
routines usually outperform equivalent MATLAB functions, often by orders of 
magnitude; see Benner e.a. (1997).
+  </longdescription>
+</pkgmetadata>

diff --git a/sci-libs/slicot/slicot-5.0_p20101122.ebuild 
b/sci-libs/slicot/slicot-5.0_p20101122.ebuild
new file mode 100644
index 0000000..2146050
--- /dev/null
+++ b/sci-libs/slicot/slicot-5.0_p20101122.ebuild
@@ -0,0 +1,57 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="7"
+
+inherit flag-o-matic fortran-2 toolchain-funcs
+
+MY_PV="${PV/_p/+}"
+MY_P="${PN}-${MY_PV}"
+
+DESCRIPTION="Subroutine Library in Systems and Control Theory"
+HOMEPAGE="https://web.archive.org/web/20191022092917/http://www.slicot.org";
+SRC_URI="http://cdn-fastly.deb.debian.org/debian/pool/main/s/${PN}/${PN}_${MY_PV}.orig.tar.gz";
+
+LICENSE="GPL-2+"
+SLOT="0"
+KEYWORDS="~amd64"
+
+IUSE="doc examples"
+
+DEPEND="
+       virtual/blas
+       virtual/lapack
+"
+RDEPEND="${DEPEND}"
+
+S="${WORKDIR}/${MY_P}"
+
+src_unpack() {
+       default
+       rm -f  "${S}/makefile" || die
+       cp "${FILESDIR}/Makefile" "${S}" || die
+}
+
+src_prepare() {
+       export SO="0"
+       export VERS="${SO}.0"
+       append-fflags "$($(tc-getPKG_CONFIG) --libs blas)" 
"$($(tc-getPKG_CONFIG) --libs lapack)"
+       default
+}
+
+src_install() {
+       dolib.so libslicot.so
+       dolib.so "libslicot.so.${SO}"
+       dolib.so "libslicot.so.${VERS}"
+       use doc && HTML_DOCS=( libindex.html )
+       use doc && HTML_DOCS+=( doc/*.html )
+       einstalldocs
+       if use examples; then
+               insinto "/usr/share/${P}/examples"
+               doins -r examples/.
+               insinto "/usr/share/${P}/examples77"
+               doins -r examples77/.
+               insinto "/usr/share/${P}/benchmark_data"
+               doins -r benchmark_data/.
+       fi
+}

Reply via email to