blob: c0668705b7fa09961a833e054ee52a852d735e20 (
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
|
# Copyright 1999-2013 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: $
EAPI=5
EGIT_REPO_URI="git://github.com/JuliaLang/julia.git"
inherit git-2 elisp-common eutils multilib
DESCRIPTION="The Julia Language: a fresh approach to technical computing"
HOMEPAGE="http://julialang.org/"
SRC_URI=""
LICENSE="GPL-2"
SLOT="0"
KEYWORDS="~amd64 ~x86"
IUSE="doc emacs"
RDEPEND=">=sys-devel/llvm-3.0
sys-libs/readline
emacs? ( !app-emacs/ess )
>=sci-libs/suitesparse-4.0
sci-libs/arpack
sci-libs/fftw
dev-libs/gmp
>=dev-libs/double-conversion-1.1.1
>=sys-libs/libunwind-1.1
dev-libs/libpcre
sci-mathematics/glpk
sys-libs/zlib
virtual/blas
virtual/lapack"
DEPEND="${RDEPEND}
virtual/pkgconfig"
src_prepare() {
epatch "${FILESDIR}/julia-nopatchelf.patch"
# Folder /usr/include/suitesparse does not exists, everything should be in /usr/include
sed -e "s|SUITESPARSE_INC = -I /usr/include/suitesparse|SUITESPARSE_INC = |g" \
-i deps/Makefile
blasname=$($(tc-getPKG_CONFIG) --libs blas | \
sed -e "s/-l\([a-z0-9]*\).*/lib\1/")
lapackname=$($(tc-getPKG_CONFIG) --libs lapack | \
sed -e "s/-l\([a-z0-9]*\).*/lib\1/")
sed -i \
-e 's|\(USE_SYSTEM_.*\)=.*|\1=1|g' \
-e "s|-lblas|$($(tc-getPKG_CONFIG) --libs blas)|" \
-e "s|-llapack|$($(tc-getPKG_CONFIG) --libs lapack)|" \
-e "s|liblapack|${lapackname}|" \
-e "s|libblas|${blasname}|" Make.inc || die
# do not set the RPATH
sed -e "/RPATH = /d" -e "/RPATH_ORIGIN = /d" -i Make.inc
}
src_compile() {
emake
use doc && emake -C doc html
use emacs && elisp-compile contrib/julia-mode.el
}
src_install() {
emake install PREFIX="${D}/usr"
cat > 99julia <<-EOF
LDPATH=/usr/$(get_libdir)/julia
EOF
doenvd 99julia
if use emacs; then
elisp-install "${PN}" contrib/julia-mode.el
elisp-site-file-install "${FILESDIR}"/63julia-gentoo.el
fi
use doc && dohtml -r doc/_build/html/
dodoc README.md
}
pkg_postinst() {
use emacs && elisp-site-regen
}
pkg_postrm() {
use emacs && elisp-site-regen
}
src_test() {
emake -C test || die "Running tests failed"
}
|