1 # Copyright 1999-2014 Gentoo Foundation
2 # Distributed under the terms of the GNU General Public License v2
9 inherit elisp-common eutils multilib pax-utils toolchain-funcs
13 DESCRIPTION="High-performance programming language for technical computing"
14 HOMEPAGE="http://julialang.org/"
16 https://github.com/JuliaLang/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz
17 http://www.math.sci.hiroshima-u.ac.jp/~m-mat/MT/SFMT/${PDSFMT}.tar.gz
18 https://dev.gentoo.org/~patrick/libuv-${P}.tar.bz2
19 https://dev.gentoo.org/~patrick/rmath-0_p20140821.tar.bz2
20 http://www.public-software-group.org/pub/projects/utf8proc/v1.1.6/utf8proc-v1.1.6.tar.gz
25 KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
30 dev-libs/double-conversion:0=
42 sci-mathematics/glpk:0=
44 >=sys-libs/libunwind-1.1:7=
49 emacs? ( app-emacs/ess )"
56 ln -s "${DISTDIR}"/${PDSFMT}.tar.gz deps/dsfmt-2.2.tar.gz || die
57 ln -s "${DISTDIR}"/utf8proc-v1.1.6.tar.gz deps/utf8proc-v1.1.6.tar.gz || die
58 cp -ar "${WORKDIR}"/Rmath deps/ || die
59 rmdir deps/libuv && ln -s "${WORKDIR}"/libuv deps/libuv
60 # no fetching in ebuild
61 # /usr/include/suitesparse is for debian only
62 # respect prefix, flags
64 -e 's|$(JLDOWNLOAD)|${EPREFIX}/bin/true|' \
65 -e 's|git submodule|${EPREFIX}/bin/true|g' \
66 -e 's|^\(SUITESPARSE_INC\s*=\).*||g' \
67 -e "s|-O3|${CFLAGS}|g" \
69 -e "s|/usr/include|${EPREFIX%/}/usr/include|g" \
73 -e "s|\(JULIA_EXECUTABLE = \)\(\$(JULIAHOME)/julia\)|\1 LD_LIBRARY_PATH=\$(BUILD)/$(get_libdir) \2|" \
74 -e "s|-O3|${CFLAGS}|g" \
75 -e "s|LIBDIR = lib|LIBDIR = $(get_libdir)|" \
76 -e "s|/usr/lib|${EPREFIX}/usr/$(get_libdir)|" \
77 -e "s|/usr/include|${EPREFIX}/usr/include|" \
78 -e "s|\$(BUILD)/lib|\$(BUILD)/$(get_libdir)|" \
79 -e "s|^JULIA_COMMIT = .*|JULIA_COMMIT = v${PV}|" \
83 -e "s|,lib)|,$(get_libdir))|g" \
84 -e "s|\$(BUILD)/lib|\$(BUILD)/$(get_libdir)|g" \
88 -e "s|ar -rcs|$(tc-getAR) -rcs|g" \
94 # libuv is an incompatible fork from upstream, so don't use system one
95 cat <<-EOF > Make.user
104 USE_SYSTEM_LIBUNWIND=1
108 USE_SYSTEM_OPENLIBM=1
109 USE_SYSTEM_OPENSPECFUN=1
111 USE_SYSTEM_READLINE=1
113 USE_SYSTEM_SUITESPARSE=1
120 # Not parallel-safe, #514882
122 if [[ $(get_libdir) != lib ]]; then
123 mkdir -p usr/$(get_libdir) || die
124 ln -s $(get_libdir) usr/lib || die
126 emake -j1 julia-release prefix="/usr" DESTDIR="${D}"
127 pax-mark m $(file usr/bin/julia-* | awk -F : '/ELF/ {print $1}')
129 use emacs && elisp-compile contrib/julia-mode.el
137 emake install prefix="/usr" DESTDIR="${D}"
139 LDPATH=${EROOT%/}/usr/$(get_libdir)/julia
144 elisp-install "${PN}" contrib/julia-mode.el
145 elisp-site-file-install "${FILESDIR}"/63julia-gentoo.el
151 use emacs && elisp-site-regen
155 use emacs && elisp-site-regen