blob: 2d2e963cc38586bde455620edc9cadbab13e0862 (
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
|
# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
inherit elisp-common flag-o-matic toolchain-funcs
DESCRIPTION="Extensible editor for structured binary data"
HOMEPAGE="https://www.jemarch.net/poke"
if [[ ${PV} == 9999 ]]; then
inherit git-r3
EGIT_REPO_URI="https://git.savannah.gnu.org/git/poke.git"
REGEN_BDEPEND="
>=dev-build/autoconf-2.62
>=dev-build/automake-1.16
sys-apps/gawk
sys-apps/help2man
sys-apps/texinfo
app-alternatives/yacc
app-alternatives/lex
"
elif [[ $(ver_cut 2) -ge 90 || $(ver_cut 3) -ge 90 ]]; then
SRC_URI="https://alpha.gnu.org/gnu/poke/${P}.tar.gz"
REGEN_BDEPEND=""
else
SRC_URI="mirror://gnu/poke/${P}.tar.gz"
KEYWORDS="amd64 ~x86"
REGEN_BDEPEND=""
fi
LICENSE="GPL-3+"
SLOT="0"
IUSE="emacs pvm-profiling nbd nls test"
RESTRICT="!test? ( test )"
RDEPEND="
dev-libs/boehm-gc:=
dev-libs/libatomic_ops
sys-devel/gettext
sys-libs/readline:=
emacs? ( >=app-editors/emacs-23.1:* )
nbd? ( sys-libs/libnbd )
"
DEPEND="
${RDEPEND}
test? ( nbd? ( sys-libs/libnbd[uri-support(+)] ) )
"
BDEPEND="
${REGEN_BDEPEND}
virtual/pkgconfig
pvm-profiling? ( sys-devel/gcc )
emacs? ( >=app-editors/emacs-23.1:* )
test? (
dev-util/dejagnu
nbd? ( sys-block/nbdkit )
)
"
SITEFILE="50${PN}-gentoo.el"
pkg_pretend() {
if use pvm-profiling && ! tc-is-gcc; then
die "USE=pvm-profiling requires GCC"
fi
}
pkg_setup() {
use emacs && elisp-check-emacs-version
}
src_prepare() {
default
if [[ ${PV} == 9999 ]]; then
./bootstrap || die
fi
}
src_configure() {
# See bug 858461.
# Upstream support might happen one day. For context, only one file needs
# LTO to be disabled (since it's an autogenerated bytecode interpreter),
# others do not. The build system will handle this at some point in the
# future. Until then, just filter out LTO.
filter-lto
local myconf=(
--with-lispdir="${EPREFIX}/${SITELISP}/${PN}"
--enable-hserver
$(use_enable nbd libnbd)
$(use_enable pvm-profiling)
$(use_enable nls)
)
econf "${myconf[@]}"
}
src_compile() {
default
if use emacs; then
cd etc || die
elisp-compile *.el
fi
}
src_install() {
default
if use emacs; then
elisp-site-file-install "${FILESDIR}/${SITEFILE}"
cd etc || die
elisp-install "${PN}" *.el *.elc
fi
find "${ED}" -name '*.la' -delete || die
}
pkg_preinst() {
UPGRADING_POKE=false
if has_version '<dev-util/poke-4'; then
UPGRADING_POKE=true
fi
}
pkg_postinst() {
use emacs && elisp-site-regen
if "${UPGRADING_POKE}"; then
ewarn "GNU poke 4.0 moves the ELF pickle to a separate package."
ewarn "To install elf.pk, please install dev-util/poke-elf."
fi
}
pkg_postrm() {
use emacs && elisp-site-regen
}
|