blob: f33ec30fd5de640a095ef7fe34eb0d08f5f60ee3 (
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
|
# Copyright 1999-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
inherit flag-o-matic toolchain-funcs
DESCRIPTION="Computer-aided number theory C library and tools"
HOMEPAGE="https://pari.math.u-bordeaux.fr/"
SRC_URI="https://pari.math.u-bordeaux.fr/pub/${PN}/unix/${P}.tar.gz"
LICENSE="GPL-2"
# The subslot is the value of $soname_num obtained from
# upstream's config/version script.
SLOT="0/8"
KEYWORDS="~alpha ~amd64 ~arm ~hppa ~mips ~ppc ~ppc64 ~sparc ~x86 ~amd64-linux ~x86-linux"
IUSE="data doc fltk gmp test threads X"
RESTRICT="!test? ( test )"
BDEPEND="
virtual/pkgconfig
doc? ( virtual/latex-base )
"
DEPEND="
sys-libs/readline:0=
data? ( sci-mathematics/pari-data )
doc? ( X? ( x11-misc/xdg-utils ) )
fltk? ( x11-libs/fltk:1= )
gmp? ( dev-libs/gmp:0= )
X? ( x11-libs/libX11:0= )"
RDEPEND="${DEPEND}"
PATCHES=(
"${FILESDIR}/${PN}"-2.9.4-ppc.patch
"${FILESDIR}/${PN}"-2.11.2-no-automagic.patch
"${FILESDIR}/${PN}"-2.9.4-fltk-detection.patch
"${FILESDIR}/${PN}"-2.11.2-Makefile-LDFLAGS.patch
"${FILESDIR}/${PN}"-2.11.2-Makefile-docinstall.patch
"${FILESDIR}/${PN}"-2.15.2-ellsea.patch
)
src_prepare() {
default
# move doc dir to a gentoo doc dir and replace acroread by xdg-open
sed -i \
-e "s:\$d = \$0:\$d = '${EPREFIX}/usr/share/doc/${PF}':" \
-e 's:"acroread":"xdg-open":' \
doc/gphelp.in || die "Failed to fix doc dir"
# These tests fail when LaTeX is not installed (which we don't
# require without USE=doc), most likely due to output formatting
# issues but I haven't deleted my LaTeX installation to check.
# There's no real upstream support for enabling/disabling the LaTeX
# docs, so this is probably the correctest way to skip these tests.
if ! use doc; then
rm src/test/{in,32}/help || die
fi
}
src_configure() {
tc-export CC CXX PKG_CONFIG
# Workaraound to "asm operand has impossible constraints" as
# suggested in bug #499996.
use x86 && append-cflags $(test-flags-CC -fno-stack-check)
# need to force optimization here, as it breaks without
if is-flag -O0; then
replace-flags -O0 -O2
elif ! is-flag -O?; then
append-flags -O2
fi
# sysdatadir installs a pari.cfg stuff which is informative only.
# It is supposed to be for "architecture-dependent" data. It needs
# to be easily discoverable for downstream packages such as gp2c.
# We set LD="" and DLLD="$CC" so that the "shared library linker"
# always gets set to the value of the compiler used. Pari's build
# system does not cope very well with a naked linker, it is
# expecting a compiler driver. See bugs 722090 and 871117.
LD="" DLLD="$(tc-getCC)" ./Configure \
--prefix="${EPREFIX}"/usr \
--datadir="${EPREFIX}/usr/share/${PN}" \
--libdir="${EPREFIX}/usr/$(get_libdir)" \
--sysdatadir="${EPREFIX}"/usr/share/pari \
--mandir="${EPREFIX}"/usr/share/man/man1 \
--with-readline="${EPREFIX}"/usr \
--with-readline-lib="${EPREFIX}/usr/$(get_libdir)" \
--with-ncurses-lib="${EPREFIX}/usr/$(get_libdir)" \
$(use_with fltk) \
$(use_with gmp) \
--without-qt \
$(usex threads "--mt=pthread" "" "" "") \
|| die "./Configure failed"
}
src_compile() {
emake gp
if use doc; then
# To prevent sandbox violations by metafont
VARTEXFONTS="${T}/fonts" emake docpdf
fi
}
src_test() {
# Welcome to the jungle, where the tests fail if you make your
# terminal bigger.
emake COLUMNS=80 test-all
}
src_install() {
DOCS=( AUTHORS CHANGES* COMPAT NEW README* )
# Use "true" in place of "strip" to sabotage the unconditional
# binary stripping.
emake DESTDIR="${D}" STRIP="true" install
einstalldocs
if use doc; then
docompress -x "/usr/share/doc/${PF}"
emake \
DESTDIR="${D}" \
EXDIR="${ED}/usr/share/doc/${PF}/examples" \
DOCDIR="${ED}/usr/share/doc/${PF}" \
install-doc
fi
}
|