blob: 890871c12239fa28d66bc74b90c14d16d7a220a5 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
|
# Copyright 1999-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
DESCRIPTION="Toolchain for the Bluespec Hardware Definition Language"
HOMEPAGE="https://github.com/B-Lang-org/bsc"
if [[ ${PV} == "9999" ]] ; then
EGIT_REPO_URI="https://github.com/B-Lang-org/bsc.git"
inherit git-r3
else
SRC_URI="
https://github.com/B-Lang-org/bsc/archive/refs/tags/${PV}.tar.gz -> ${P}.tar.gz
https://github.com/SRI-CSL/yices2/archive/refs/tags/Yices-2.6.4.tar.gz -> yices-2.6.4.tar.gz
"
S="${WORKDIR}/bsc-${PV}"
S_YICES="${WORKDIR}/yices2-Yices-2.6.4"
KEYWORDS="~amd64 ~x86"
fi
LICENSE="BSD GPL-3+ MIT"
SLOT="${PV}"
IUSE="doc test"
RESTRICT="!test? ( test )"
RDEPEND="
app-eselect/eselect-bluespec
app-shells/tcsh
dev-haskell/old-time:0=
dev-haskell/regex-compat:0=
dev-haskell/split:0=
dev-haskell/syb:0=
dev-lang/tcl
"
DEPEND="
${RDEPEND}
test? (
dev-util/dejagnu
sci-electronics/iverilog
sci-electronics/systemc
sys-process/time
)
"
BDEPEND="
dev-haskell/cabal:0=
dev-lang/ghc:0=
dev-lang/perl
dev-util/gperf
doc? (
dev-ruby/asciidoctor
dev-ruby/asciidoctor-pdf
dev-texlive/texlive-bibtexextra
dev-texlive/texlive-fontsextra
dev-texlive/texlive-fontutils
dev-texlive/texlive-latex
dev-texlive/texlive-latexextra
dev-texlive/texlive-latexrecommended
dev-texlive/texlive-plaingeneric
)
sys-apps/coreutils
dev-build/automake
sys-devel/bison
sys-devel/flex
virtual/pkgconfig
"
PATCHES=(
"${FILESDIR}"/${PN}-2022.01-libstp-stub-makefile.patch
)
# Do not complain about CFLAGS etc since we don't use them
QA_FLAGS_IGNORED="
usr/share/bsc/bsc-${PV}/bin/core/.*
usr/share/bsc/bsc-${PV}/lib/SAT/.*
usr/share/bsc/bsc-${PV}/lib/VPI/.*
"
src_prepare() {
if [[ ${PV} != "9999" ]] ; then
rm -r "${S}"/src/vendor/yices/v2.6/yices2 || die
ln -s "${S_YICES}" "${S}"/src/vendor/yices/v2.6/yices2 || die
fi
default
}
src_compile() {
# NO_DEPS_CHECKS=1: skip the subrepo check (this deriviation uses yices.src instead of the subrepo)
# LDCONFIG=ldconfig: https://github.com/B-Lang-org/bsc/pull/43
# STP_STUB=1: https://github.com/B-Lang-org/bsc/pull/278
emake \
"NO_DEPS_CHECKS=1" \
"LDCONFIG=ldconfig" \
"STP_STUB=1" \
$(usex doc "" "NOASCIIDOCTOR=1") \
$(usex doc "install-doc" "") \
$(usex doc "install-release" "") \
install-src \
$(usex doc "release" "")
emake -C src/comp \
install-extra
}
src_test() {
emake check-smoke
emake -C testsuite check
}
# Call eselect bluespec update with --if-unset
# to respect user's choice
eselect_bluespec_update() {
ebegin "Calling eselect bluespec update"
eselect bluespec update --if-unset
eend $?
}
src_install() {
# From https://github.com/B-Lang-org/bsc/blob/main/INSTALL.md,
# upstream recommend placing the inst directory at
# the path /usr/share/bsc/bsc-<VERSION> for multi-version.
local INSTALL_PATH=/usr/share/bsc/bsc-"${PV}"
local ED_INSTALL_PATH="${ED}${INSTALL_PATH}"
mkdir -p "${ED_INSTALL_PATH}" || die
local f
for f in "${S}"/inst/bin/*; do
if [[ ! -d "${f}" ]] ; then
local b=$(basename ${f})
sed -i "s|ABSNAME=.*\$|ABSNAME=\$(readlink -f -- \"\$0\")|g" "${f}" || die
fi
done
cp -dr --preserve=mode,timestamp "${S}"/inst/* "${ED_INSTALL_PATH}"/ || die
insinto "${INSTALL_PATH}"/vimfiles
doins -r "${S}"/util/vim/{ftdetect,indent,syntax}
}
pkg_postinst() {
eselect_bluespec_update
}
pkg_postrm() {
eselect_bluespec_update
}
|