summaryrefslogtreecommitdiff
path: root/sci-electronics/ngspice
diff options
context:
space:
mode:
authorV3n3RiX <venerix@koprulu.sector>2024-12-02 02:07:07 +0000
committerV3n3RiX <venerix@koprulu.sector>2024-12-02 02:07:07 +0000
commitd4f65848c7ecabb56e2f93889cbd20078cd347f7 (patch)
tree180032f5afeb689db6a270d612f3e3364ed8fd2b /sci-electronics/ngspice
parentc635a4b7ddb6105bfc6fef130b188a087726677b (diff)
gentoo auto-resync : 02:12:2024 - 02:07:07
Diffstat (limited to 'sci-electronics/ngspice')
-rw-r--r--sci-electronics/ngspice/Manifest5
-rw-r--r--sci-electronics/ngspice/metadata.xml1
-rw-r--r--sci-electronics/ngspice/ngspice-43.ebuild216
3 files changed, 221 insertions, 1 deletions
diff --git a/sci-electronics/ngspice/Manifest b/sci-electronics/ngspice/Manifest
index afec9d310b22..86e3f21c4082 100644
--- a/sci-electronics/ngspice/Manifest
+++ b/sci-electronics/ngspice/Manifest
@@ -1,4 +1,7 @@
DIST ngspice-40-manual.pdf 2462604 BLAKE2B a0d680cd76f8acb1be18e94953d70784aaf79e1bcc4bc3995a1221d81e27c13e577d182e7cbacb8430a068db7d86681f22ec4f3537b5704faacb8e982588617f SHA512 1a5c7828aa9a4554052fb01145641415d8a4cbd50db9885d5d937e1b6f50c7c541dfeeabf2efd6ea862036b4d74ce8265bdac1cfad0fc635f28651a0d397bfc5
DIST ngspice-40.tar.gz 9431981 BLAKE2B e45d5d7a9e8d9d3fdae4eb076090a588680055a74cc24ba9ca3d93a7c42b95ee29073101d5791f8069cb27b3049aa1a451476f1df6460477fb156336602678fd SHA512 dab422cc8677e6f4bb92e06be0ce695a53d3e9abbe533c7bb91540d55d2a13514b0b166c8ccafcc17699799a846a35e260dddc400664c6e1137e1b18504e9954
+DIST ngspice-43-manual.pdf 2559027 BLAKE2B 71c86d4325025900db0d7ae961134111f1004490f827be64322cf1109e3781630f4ad7f70006a5e086914b6ec1b8a82bfc013219237d52838cb9dcbd4ece52bb SHA512 01bd68983c10ca8ef2a399354290032a0e9a9881159a3781459c576e662efa91af403ef191e846694ef418a8aec3e867d8e916d8a41a6d616d3169daf22be444
+DIST ngspice-43.tar.gz 10279606 BLAKE2B a866866dfe6dec238241406fe323baa22fd4145e7bda9e234cee507690fe224938663423ffc3fc37bf86093a982151ad96a5ba53fe292161f901297eef1cf892 SHA512 ad938e6ea8f9874c04d1033599bf39d3728e763fbd42ba77bd036b6c00271600695b3656f3f34547c39153382f55e7d7d5d6cb732f272d149cdbe21988c0d636
EBUILD ngspice-40.ebuild 4773 BLAKE2B 3e4d189686c49f7461321856a70e3d6089198d3e3dec5831c8055169febbf59dd03278c018bf0c50a5f8d26a0854c592f8c917faf646a37364670af6a9e8fd3c SHA512 d2491e22c544625069d7baec52f09129a6926bb28b22ba415800ff118d7d9362e253e9e5ae54e19259d2614845922dad8ecd8dd8af1d84bfe5394227ba439c7c
-MISC metadata.xml 677 BLAKE2B 541ff3e8439b8e222916341bb9f973ea2189a5b2aceeb1bd83ca7a73af7161f38e272a93fdbab51aba4f14be53f556c10a5c10be2a807ef07bca9e39fa73b6ed SHA512 b439de3838f17c9c21e50cd80d74b733d0061f79a7e736c82295c3db433bb786cdab8dc73ca1b40f6a486288f29f82b677723ea1e13ca583b0456fcfa82de206
+EBUILD ngspice-43.ebuild 4799 BLAKE2B fb6f8dad2fb307e6ebda5e5dc35baf299bfc850c313f7cb7173b4caafcbb94b5e6b4628f35dae28f55b3f22c79c8c26b1a8a96c05cce92c4fc1b5d2267031d3f SHA512 a44e9a4bfb53f7891bf55fe197bb1a8a888c9c9682cfce94cc7a47b19b163e9f30d966cebf73b55e347fc0ec6e92da3831215a31c02187e6642b669500dd23a0
+MISC metadata.xml 757 BLAKE2B 64f3d062522b5b8b64d6052961bf1dd6e2ae667b3788da5307e6600743df7fea4dfcdfbe7b48fc2f3230d55d94ade553e91f91b37e19867cff51b0c489f52033 SHA512 8ea7576aee36714c35e6f42a979d680ac46642e4b907f7f285618ebc5aeb4738ac16999e21c36f2a17d48556137dae1affaceddcb0600135e80d057869f7c526
diff --git a/sci-electronics/ngspice/metadata.xml b/sci-electronics/ngspice/metadata.xml
index f145a23291ff..22f3ebfaa0e5 100644
--- a/sci-electronics/ngspice/metadata.xml
+++ b/sci-electronics/ngspice/metadata.xml
@@ -11,6 +11,7 @@
</longdescription>
<use>
<flag name="deprecated">Build old and deprecated apps</flag>
+ <flag name="klu">Add support for KLU (embedded version of suitesparse)</flag>
<flag name="shared">Build ngspice as a shared library</flag>
</use>
<upstream>
diff --git a/sci-electronics/ngspice/ngspice-43.ebuild b/sci-electronics/ngspice/ngspice-43.ebuild
new file mode 100644
index 000000000000..be5b137533cd
--- /dev/null
+++ b/sci-electronics/ngspice/ngspice-43.ebuild
@@ -0,0 +1,216 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit autotools flag-o-matic multibuild toolchain-funcs virtualx
+
+DESCRIPTION="The Next Generation Spice (Electronic Circuit Simulator)"
+HOMEPAGE="http://ngspice.sourceforge.net"
+SRC_URI="
+ https://downloads.sourceforge.net/ngspice/${P}.tar.gz
+ doc? ( https://downloads.sourceforge.net/ngspice/${P}-manual.pdf )
+"
+
+LICENSE="BSD GPL-2 MPL-2.0"
+SLOT="0"
+IUSE="X debug deprecated doc examples fftw +klu openmp +readline +shared tcl"
+KEYWORDS="~amd64 ~arm64 ~ppc ~riscv ~sparc ~x86 ~x64-macos"
+RESTRICT="!test? ( test )"
+
+DEPEND="
+ sys-libs/ncurses:=
+ X? (
+ x11-libs/libXaw
+ x11-libs/libXt
+ x11-libs/libX11
+ )
+ fftw? ( sci-libs/fftw:3.0= )
+ readline? ( sys-libs/readline:= )
+ tcl? (
+ dev-lang/tcl:=
+ dev-tcltk/blt
+ )
+"
+RDEPEND="${DEPEND}"
+
+DOCS=(
+ ANALYSES
+ AUTHORS
+ BUGS
+ ChangeLog
+ DEVICES
+ FAQ
+ NEWS
+ README
+ README.vdmos
+ Stuarts_Poly_Notes
+)
+
+pkg_pretend() {
+ [[ ${MERGE_TYPE} != binary ]] && use openmp && tc-check-openmp
+}
+
+pkg_setup() {
+ [[ ${MERGE_TYPE} != binary ]] && use openmp && tc-check-openmp
+
+ MULTIBUILD_VARIANTS=( "binaries" )
+ use shared && MULTIBUILD_VARIANTS+=( "shared" )
+ use tcl && MULTIBUILD_VARIANTS+=( "tcl" )
+}
+
+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() {
+ # -Werror=lto-type-mismatch
+ # https://bugs.gentoo.org/862513
+ # https://sourceforge.net/p/ngspice/bugs/665/
+ filter-lto
+
+ multibuild_foreach_variant ngspice_configure
+}
+
+ngspice_configure() {
+ local myeconfargs
+
+ pushd "${BUILD_DIR}" &>/dev/null || die
+
+ if use debug; then
+ myeconfargs=(
+ --enable-debug
+ --enable-ftedebug
+ --enable-cpdebug
+ --enable-sensdebug
+ --enable-asdebug
+ --enable-stepdebug
+ --enable-pzdebug
+ )
+ else
+ myeconfargs=(
+ --disable-debug
+ --disable-ftedebug
+ --disable-cpdebug
+ --disable-sensdebug
+ --disable-asdebug
+ --disable-stepdebug
+ --disable-pzdebug
+ )
+ fi
+
+ # As of March 2021, these do not compile
+ myeconfargs+=(
+ --disable-blktmsdebug
+ --disable-smltmsdebug
+ )
+
+ myeconfargs+=(
+ --enable-xspice
+ --enable-cider
+ --disable-rpath
+ $(use_enable klu)
+ $(use_enable openmp)
+ $(use_with fftw fftw3)
+ $(use_with readline)
+ )
+
+ if [[ "${MULTIBUILD_VARIANT}" == "shared" ]]; then
+ myeconfargs+=( --with-ngshared )
+ elif [[ "${MULTIBUILD_VARIANT}" == "tcl" ]]; then
+ myeconfargs+=( --with-tcl="${EPREFIX}/usr/$(get_libdir)" )
+ else
+ myeconfargs+=(
+ $(use_enable deprecated oldapps)
+ $(use_with X x)
+ )
+ fi
+
+ econf "${myeconfargs[@]}"
+
+ popd &>/dev/null || die
+}
+
+src_compile() {
+ multibuild_foreach_variant ngspice_compile
+}
+
+ngspice_compile() {
+ pushd "${BUILD_DIR}" &>/dev/null || die
+ default
+ popd &>/dev/null || die
+}
+
+src_test() {
+ if ! use debug; then
+ # tests can be only executed for the binaries variant
+ pushd "${WORKDIR}/${P}-binaries" &>/dev/null || die
+ echo "set ngbehavior=mc" > "${HOME}"/.spiceinit || die "Failed to configure ${PN} for running the test suite"
+ virtx default
+ popd &>/dev/null || die
+ else
+ # https://sourceforge.net/p/ngspice/bugs/353/
+ ewarn
+ ewarn "Skipping tests because they are known to fail in debug mode"
+ ewarn
+ fi
+}
+
+src_install() {
+ multibuild_foreach_variant ngspice_install
+
+ # merge the installations of all variants
+ local v
+ for v in "${MULTIBUILD_VARIANTS[@]}" ; do
+ cp -a "${ED}/tmp/${v}"/* "${ED}" || die "Failed to combine multibuild installations"
+ done
+ rm -rf "${ED}/tmp" || die
+
+ use tcl && DOCS+=( README.tcl )
+ use shared && DOCS+=( README.shared-xspice )
+ use doc && DOCS+=( "${DISTDIR}"/${P}-manual.pdf )
+
+ default
+
+ if use examples; then
+ if ! use tcl; then
+ rm -rf examples/tclspice || die
+ fi
+
+ insinto /usr/share/${PN}
+ doins -r examples
+ fi
+}
+
+ngspice_install() {
+ pushd "${BUILD_DIR}" &>/dev/null || die
+
+ emake DESTDIR="${ED}/tmp/${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 "${ED}/tmp/${MULTIBUILD_VARIANT}"/usr/bin{,.debug} || die
+ rm -rf "${ED}/tmp/${MULTIBUILD_VARIANT}"/usr/share || die
+ rm -rf "${ED}/tmp/${MULTIBUILD_VARIANT}"/usr/$(get_libdir)/*.la || die
+ rm -rf "${ED}/tmp/${MULTIBUILD_VARIANT}"/usr/$(get_libdir)/ngspice/*.cm{,.debug} || die
+ fi
+
+ popd &>/dev/null || die
+}