summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Solano Gómez <gentoo@sattvik.com>2019-07-01 21:27:05 -0500
committerDaniel Solano Gómez <gentoo@sattvik.com>2019-07-01 21:27:51 -0500
commit4cc7cbef0cd7730904e23c0451689f596f1b5b7c (patch)
treeb24dfad90c495596babcf95136ad7fa1c6d7a0dd
parentAdd sci-electronics/digilent-waveforms (diff)
downloadsattvik-4cc7cbef0cd7730904e23c0451689f596f1b5b7c.tar.gz
sattvik-4cc7cbef0cd7730904e23c0451689f596f1b5b7c.tar.bz2
sattvik-4cc7cbef0cd7730904e23c0451689f596f1b5b7c.zip
Add sci-electronics/ngspice-30
Signed-off-by: Daniel Solano <gentoo@sattvik.com>
-rw-r--r--sci-electronics/ngspice/Manifest4
-rw-r--r--sci-electronics/ngspice/metadata.xml19
-rw-r--r--sci-electronics/ngspice/ngspice-30.ebuild183
3 files changed, 206 insertions, 0 deletions
diff --git a/sci-electronics/ngspice/Manifest b/sci-electronics/ngspice/Manifest
new file mode 100644
index 0000000..8792fe8
--- /dev/null
+++ b/sci-electronics/ngspice/Manifest
@@ -0,0 +1,4 @@
+DIST ngspice-30-manual.pdf 2131163 BLAKE2B a60d00bf00b179e610d3a031bfb342134038f8bf77aa79eaeb58113f54bf6391700f21b277cb1df6434df2c27a0922c2a685135ebf8dce2e7a48e27c2d174c15 SHA512 920953cc36d6f3d2e7751d9ed10e147d4c0a9955ddcca52941d6a30ccb56fec8c15481274726bc718a9617992b5eddee253205e4af9b798b80f54f6e6c45c9d5
+DIST ngspice-30.tar.gz 7147044 BLAKE2B 497e6867c590b11139c16d3de1cd8114e5a68fd6edb7dcd1adb8759fc2e10af376fa1daf43b61dc465b5989bae25cfafa7c8d155db5055b4a648499c8f39d7ec SHA512 baa67527a05586b6da19e96203889fe013eb19a9e60b159ab9e3828dd5bb865f44bd683e622b256c3c434d77fe7adb5fe1badab75bdeaa9f24faafe7aaaae2e2
+EBUILD ngspice-30.ebuild 4121 BLAKE2B c417cbceeac5867c887e6b93cba99839beed94d61f3d955aa26d051b37d919c8bd38122b3ace638382718b6dcf85fe151316b98814fb099256e2a09933a4cdf2 SHA512 0dd511084007788d6c33abd2fc498e47c1bbffb7795a67ae17d9da54aec6552f3a0511f3f7fc694e6f7b86e39cf5ef2a33ae5ac66a0f83c67ad7f2526916f618
+MISC metadata.xml 701 BLAKE2B aa298ea2457c65123ff65f1cbfd367750049c3609356fba05eab8dd7c4593ac4a61c043e84fd697ca6c6f24d4f8dbc67e4048f50a8a37af412a16bd363cb1648 SHA512 bac684f5fd88debd26fcd7ec4696752e5942132aa8cb21d67a79a53d00e1614b4bdc889863629db000c1f9bb9c9184ad77823bf0215ce7064064a296a5e20efe
diff --git a/sci-electronics/ngspice/metadata.xml b/sci-electronics/ngspice/metadata.xml
new file mode 100644
index 0000000..7bb0ab6
--- /dev/null
+++ b/sci-electronics/ngspice/metadata.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>sci-electronics@gentoo.org</email>
+ <name>Gentoo Electronics Project</name>
+ </maintainer>
+ <longdescription>
+ Ngspice is a mixed-level/mixed-signal circuit simulator. Its code is based on
+ three open source software packages: Spice3f5, Cider1b1 and Xspice.
+ </longdescription>
+ <use>
+ <flag name="deprecated">Build ngsconver, ngproc2mod, ngmultidec, and ngmakeidx</flag>
+ <flag name="shared">Build ngspice as a shared library</flag>
+ </use>
+ <upstream>
+ <remote-id type="sourceforge">ngspice</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/sci-electronics/ngspice/ngspice-30.ebuild b/sci-electronics/ngspice/ngspice-30.ebuild
new file mode 100644
index 0000000..7525d7b
--- /dev/null
+++ b/sci-electronics/ngspice/ngspice-30.ebuild
@@ -0,0 +1,183 @@
+# Copyright 2019 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+inherit autotools multibuild toolchain-funcs virtualx
+
+DESCRIPTION="The Next Generation Spice (Electronic Circuit Simulator)"
+SRC_URI="mirror://sourceforge/ngspice/${P}.tar.gz
+ doc? ( mirror://sourceforge/ngspice/${P}-manual.pdf )"
+HOMEPAGE="http://ngspice.sourceforge.net"
+LICENSE="BSD GPL-2"
+
+SLOT="0"
+IUSE="X debug deprecated doc examples fftw openmp readline +shared tcl"
+KEYWORDS="~amd64 ~ppc ~sparc ~x86 ~x64-macos"
+
+DEPEND="sys-libs/ncurses:0=
+ X? ( x11-libs/libXaw
+ x11-libs/libXt
+ x11-libs/libX11 )
+ fftw? ( sci-libs/fftw:3.0 )
+ readline? ( sys-libs/readline:0= )
+ tcl? ( dev-lang/tcl:0
+ dev-tcltk/blt )"
+RDEPEND="${DEPEND}
+ X? ( sci-visualization/xgraph )"
+
+DOCS=(
+ ANALYSES
+ AUTHORS
+ BUGS
+ ChangeLog
+ DEVICES
+ FAQ
+ NEWS
+ README
+ README.vdmos
+ Stuarts_Poly_Notes
+)
+
+pkg_setup() {
+ MULTIBUILD_VARIANTS=( "binaries" )
+ use shared && MULTIBUILD_VARIANTS+=( "shared" )
+ use tcl && MULTIBUILD_VARIANTS+=( "tcl" )
+ use openmp && tc-check-openmp
+}
+
+src_prepare() {
+ default
+
+ if use tcl; then
+ if use examples; then
+ find examples/tclspice -type f -iname \*tcl -or -iname \*.sh |
+ while read s
+ do
+ sed -i -e 's@../../../src/.libs/libspice.so@libspice.so@g' \
+ -e 's@package require BLT@package require Tk\npackage require BLT@g' \
+ -e "s@spice::codemodel \(.*\)/\(.*\).cm@spice::codemodel /usr/$(get_libdir)/ngspice/\2.cm@g" \
+ "${s}" || die "sed failed"
+ done
+ fi
+ fi
+
+ eautoreconf
+ multibuild_copy_sources
+}
+
+src_configure() {
+ multibuild_foreach_variant ngspice_configure
+}
+
+ngspice_configure() {
+ pushd "${BUILD_DIR}"
+
+ local myconf
+ if use debug; then
+ myconf="--enable-debug \
+ --enable-ftedebug \
+ --enable-cpdebug \
+ --enable-sensdebug \
+ --enable-asdebug \
+ --enable-stepdebug \
+ --enable-pzdebug"
+ else
+ myconf="--disable-debug \
+ --disable-ftedebug \
+ --disable-cpdebug \
+ --disable-sensdebug \
+ --disable-asdebug \
+ --disable-stepdebug \
+ --disable-pzdebug"
+ fi
+ # As of December 2017, these do not compile
+ myconf="${myconf} \
+ --disable-blktmsdebug \
+ --disable-smltmsdebug"
+
+ myconf="${myconf} \
+ --enable-xspice \
+ --enable-cider \
+ --disable-xgraph \
+ --disable-dependency-tracking \
+ --disable-rpath \
+ $(use_enable openmp) \
+ $(use_with fftw fftw3) \
+ $(use_with readline)"
+
+ if [ "${MULTIBUILD_VARIANT}" == "shared" ]; then
+ myconf="${myconf} \
+ --with-ngshared"
+ elif [ "${MULTIBUILD_VARIANT}" == "tcl" ]; then
+ myconf="${myconf} \
+ --with-tcl"
+ else
+ myconf="${myconf} \
+ $(use_enable deprecated oldapps) \
+ $(use_with X x)"
+ fi
+
+ econf ${myconf}
+}
+
+src_compile() {
+ multibuild_foreach_variant ngspice_compile
+}
+
+ngspice_compile() {
+ pushd "${BUILD_DIR}"
+ default
+}
+
+src_install() {
+ multibuild_foreach_variant ngspice_install
+
+ # merge the installations of all variants
+ for v in "${MULTIBUILD_VARIANTS[@]}" ; do
+ cp -a "${D}_${v}"/* "${D}" || die "Failed to combine multibuild installations"
+ rm -rf "${D}_${v}"
+ done
+
+ use tcl && DOCS+=( README.tcl )
+ use shared && DOCS+=( README.shared-xspice )
+ use doc && DOCS+=( "${DISTDIR}"/${P}-manual.pdf )
+
+ default
+
+ if use examples; then
+ use tcl || rm -rf examples/tclspice
+
+ insinto /usr/share/${PN}
+ doins -r examples
+ fi
+}
+
+ngspice_install() {
+ pushd "${BUILD_DIR}"
+
+ emake DESTDIR="${D}_${MULTIBUILD_VARIANT}" install
+
+ # Strip shared-library and Tcl-module builds to the bare minimum;
+ # all the support files will have been handled by the 'binaries' build.
+ if [ "${MULTIBUILD_VARIANT}" != "binaries" ]; then
+ rm -rf "${D}_${MULTIBUILD_VARIANT}"/usr/bin{,.debug}
+ rm -rf "${D}_${MULTIBUILD_VARIANT}"/usr/share
+ rm -rf "${D}_${MULTIBUILD_VARIANT}"/usr/$(get_libdir)/*.la
+ rm -rf "${D}_${MULTIBUILD_VARIANT}"/usr/$(get_libdir)/ngspice/*.cm{,.debug}
+ fi
+}
+
+src_test() {
+ if ! use debug; then
+ # tests can be only executed for the binaries variant
+ pushd "${WORKDIR}/${P}-binaries"
+ virtx default
+ popd
+ else
+ # https://sourceforge.net/p/ngspice/bugs/353/
+ ewarn
+ ewarn "Skipping tests because they are known to fail in debug mode"
+ ewarn
+ fi
+}