From 4cc7cbef0cd7730904e23c0451689f596f1b5b7c Mon Sep 17 00:00:00 2001 From: Daniel Solano Gómez Date: Mon, 1 Jul 2019 21:27:05 -0500 Subject: Add sci-electronics/ngspice-30 Signed-off-by: Daniel Solano --- sci-electronics/ngspice/Manifest | 4 + sci-electronics/ngspice/metadata.xml | 19 ++++ sci-electronics/ngspice/ngspice-30.ebuild | 183 ++++++++++++++++++++++++++++++ 3 files changed, 206 insertions(+) create mode 100644 sci-electronics/ngspice/Manifest create mode 100644 sci-electronics/ngspice/metadata.xml create mode 100644 sci-electronics/ngspice/ngspice-30.ebuild 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 @@ + + + + + sci-electronics@gentoo.org + Gentoo Electronics Project + + + Ngspice is a mixed-level/mixed-signal circuit simulator. Its code is based on + three open source software packages: Spice3f5, Cider1b1 and Xspice. + + + Build ngsconver, ngproc2mod, ngmultidec, and ngmakeidx + Build ngspice as a shared library + + + ngspice + + 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 +} -- cgit v1.2.3-65-gdbad