Kreijstal f4d44a6f9a
update to ngspice 45.2 (#23283)
* update to ngspice 44.2

* curses not runtime dependent

* ngspice: enable osdi

Enabling osdi, allows for ngspice to simulate pdks like the IHP130pdk, https://github.com/IHP-GmbH/IHP-Open-PDK

* Update ngspice version to 45.2 in PKGBUILD

* Ngspice2osdi (#10)

* test

* ngspice 45.2

* Fix LDFLAGS syntax for clang in PKGBUILD

* Remove illegal specialization for compilation

* Update sha256sum for a package in PKGBUILD
2025-09-13 09:55:11 +02:00

119 lines
3.8 KiB
Bash

# Maintainer: Maciej Suminski <maciej.suminski@cern.ch>
# Contributor: Unai Martinez-Corral <unai.martinezcorral@ehu.eus>
_realname=ngspice
pkgbase=mingw-w64-${_realname}
pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}"
pkgver=45.2
pkgrel=1
pkgdesc="Mixed-level/Mixed-signal circuit simulator based on Spice3f5, Cider1b1, and Xspice (mingw-w64)"
arch=('any')
mingw_arch=('mingw64' 'ucrt64' 'clang64' 'clangarm64')
url='https://ngspice.sourceforge.io/'
msys2_references=(
'archlinux: ngspice'
)
msys2_repository_url='https://sourceforge.net/p/ngspice/ngspice/ci/master/tree/'
msys2_documentation_url='https://ngspice.sourceforge.io/docs.html'
msys2_issue_tracker_url='https://sourceforge.net/p/ngspice/bugs/'
license=('spdx:BSD-3-Clause')
groups=("${MINGW_PACKAGE_PREFIX}-eda")
conflicts=(${MINGW_PACKAGE_PREFIX}-${_realname}-git)
replaces=(${MINGW_PACKAGE_PREFIX}-${_realname}-git)
depends=(
"${MINGW_PACKAGE_PREFIX}-fftw"
"${MINGW_PACKAGE_PREFIX}-cc-libs"
"${MINGW_PACKAGE_PREFIX}-omp"
"${MINGW_PACKAGE_PREFIX}-readline"
)
makedepends=(
"${MINGW_PACKAGE_PREFIX}-cc"
"${MINGW_PACKAGE_PREFIX}-ncurses"
"${MINGW_PACKAGE_PREFIX}-autotools"
)
install="${_realname}-${MSYSTEM}.install"
source=(
"https://downloads.sourceforge.net/project/${_realname}/ng-spice-rework/${pkgver}/${_realname}-${pkgver}.tar.gz"
"https://downloads.sourceforge.net/project/${_realname}/ng-spice-rework/${pkgver}/${_realname}-doc-${pkgver}.tar.gz"
"no-explicit-lstdc++.patch"
"0001-Remove-illegal-specialization-for-compilation-on-cla.patch"
"0002-curses.patch"
)
sha256sums=('ba8345f4c3774714c10f33d7da850d361cec7d14b3a295d0dc9fd96f7423812d'
'f4c056b3a3617b001e0fa85ffef7eb3797a7b5e3b0a8d18fc4a29707042a9fa7'
'57f0f6e79faead15b0e1338a32c414b851997edb716467e8c0bc9a10df423582'
'e04db285506f2f3b0e07794f2c5127bcf6427eabef3686f6c6298dcc526b12a6'
'6cf7f34df2d829008b6cc14dfcce70c0426f340fa9bcae93613f71c8c97aa2f5')
prepare() {
cd "${srcdir}/${_realname}-${pkgver}"
patch -Np1 -i "${srcdir}/no-explicit-lstdc++.patch"
patch -Np1 -i "${srcdir}/0001-Remove-illegal-specialization-for-compilation-on-cla.patch"
patch -Np1 -i "${srcdir}/0002-curses.patch"
autoreconf -fiv
}
build() {
mkdir -p "${srcdir}/build-shared-${MSYSTEM}" && cd "${srcdir}/build-shared-${MSYSTEM}"
local -a _common_flags=(
--prefix=${MINGW_PREFIX}
--build=${MINGW_CHOST}
--host=${MINGW_CHOST}
--disable-debug
--enable-openmp
--enable-xspice
--enable-cider
--enable-osdi
--without-x
)
# FS#45230, create so lib
# shared lib sets flags and modifies headers, needs dedicated pass
# adding --with-readline disables libngspice-0.dll
if [[ ${MINGW_PACKAGE_PREFIX} == *-clang-* ]]; then
LDFLAGS+=" -lomp --no-undefined"
fi
../${_realname}-${pkgver}/configure \
--prefix=${MINGW_PREFIX} \
--build=${MINGW_CHOST} \
--host=${MINGW_CHOST} \
"${_common_flags[@]}" \
--with-ngshared
make
mkdir -p "${srcdir}/build-static-${MSYSTEM}" && cd "${srcdir}/build-static-${MSYSTEM}"
# gcc is being weird
LDFLAGS+=" -lgdi32"
../${_realname}-${pkgver}/configure \
"${_common_flags[@]}" \
--with-wingui
make
mkdir -p "${srcdir}/build-console-${MSYSTEM}" && cd "${srcdir}/build-console-${MSYSTEM}"
LDFLAGS+=" -lgdi32"
../${_realname}-${pkgver}/configure \
"${_common_flags[@]}"
make
}
package() {
cd "${srcdir}/build-console-${MSYSTEM}"
make DESTDIR="${pkgdir}" install
# Rename the console version of ngspice before installing others
mv "${pkgdir}${MINGW_PREFIX}"/bin/{ngspice,ngspice_con}.exe
cd "${srcdir}/build-static-${MSYSTEM}"
make DESTDIR="${pkgdir}" install
cd "${srcdir}/build-shared-${MSYSTEM}"
make DESTDIR="${pkgdir}" install
install -Dm644 "${srcdir}/${_realname}-${pkgver}/COPYING" "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/LICENSE"
}