summaryrefslogtreecommitdiff
path: root/sci-electronics/ghdl/ghdl-4.0.0.ebuild
diff options
context:
space:
mode:
Diffstat (limited to 'sci-electronics/ghdl/ghdl-4.0.0.ebuild')
-rw-r--r--sci-electronics/ghdl/ghdl-4.0.0.ebuild90
1 files changed, 90 insertions, 0 deletions
diff --git a/sci-electronics/ghdl/ghdl-4.0.0.ebuild b/sci-electronics/ghdl/ghdl-4.0.0.ebuild
new file mode 100644
index 000000000000..fb194d074563
--- /dev/null
+++ b/sci-electronics/ghdl/ghdl-4.0.0.ebuild
@@ -0,0 +1,90 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+ADA_COMPAT=( gnat_2021 )
+LLVM_MAX_SLOT=17 # Check "configure" script for supported LLVM versions.
+
+inherit ada edo llvm toolchain-funcs
+
+DESCRIPTION="Open-source analyzer, compiler, and simulator for VHDL 2008/93/87"
+HOMEPAGE="https://ghdl.github.io/ghdl/
+ https://github.com/ghdl/ghdl/"
+
+if [[ "${PV}" == *9999* ]] ; then
+ inherit git-r3
+
+ EGIT_REPO_URI="https://github.com/ghdl/${PN}.git"
+else
+ SRC_URI="https://github.com/ghdl/${PN}/archive/v${PV}.tar.gz
+ -> ${P}.tar.gz"
+
+ KEYWORDS="~amd64 ~x86"
+fi
+
+LICENSE="GPL-2+"
+SLOT="0"
+IUSE="llvm"
+REQUIRED_USE="${ADA_REQUIRED_USE}"
+
+RDEPEND="
+ ${ADA_DEPS}
+ llvm? ( <sys-devel/llvm-$((${LLVM_MAX_SLOT} + 1)):= )
+"
+DEPEND="
+ ${RDEPEND}
+"
+BDEPEND="
+ dev-util/patchelf
+"
+
+PATCHES=( "${FILESDIR}/${PN}-4.0.0_pre20231218-no-pyunit.patch" )
+
+pkg_setup() {
+ ada_pkg_setup
+
+ use llvm && llvm_pkg_setup
+}
+
+src_prepare() {
+ default
+
+ sed -i "s|ar rc|$(tc-getAR) rc|g" Makefile.in || die
+}
+
+src_configure() {
+ tc-export CC CXX
+
+ local -a myconf=(
+ # Build.
+ --disable-werror
+
+ # Install location.
+ --libdir=$(get_libdir)
+ --prefix=/usr
+
+ # Features.
+ --enable-libghdl
+ --enable-synth
+ )
+
+ if use llvm ; then
+ myconf+=( --with-llvm-config=llvm-config )
+ fi
+
+ # Not a autotools script!
+ edo sh ./configure "${myconf[@]}"
+}
+
+src_compile() {
+ default
+
+ patchelf --set-soname libghw.so lib/libghw.so || die
+}
+
+src_install() {
+ default
+
+ find "${ED}" -type f -name '*.a' -delete || die
+}