Skip to content

Commit

Permalink
various consistent fixes for main tree
Browse files Browse the repository at this point in the history
Package-Manager: portage-2.2.8-prefix
  • Loading branch information
sfabbro committed Apr 2, 2014
1 parent d2ee315 commit 428c074
Show file tree
Hide file tree
Showing 3 changed files with 80 additions and 47 deletions.
4 changes: 4 additions & 0 deletions dev-lang/julia/ChangeLog
Expand Up @@ -2,6 +2,10 @@
# Copyright 1999-2014 Gentoo Foundation; Distributed under the GPL v2
# $Header: $

02 Apr 2014; Sebastien Fabbro <fabbros@gentoo.org> julia-9999.ebuild,
metadata.xml:
various consistent fixes for main tree

08 Feb 2014; <xhochy@gentoo.org> julia-9999.ebuild:
PREFIX is now prefix

Expand Down
119 changes: 74 additions & 45 deletions dev-lang/julia/julia-9999.ebuild
Expand Up @@ -4,7 +4,7 @@

EAPI=5

inherit git-r3 elisp-common eutils multilib pax-utils
inherit git-r3 elisp-common eutils multilib pax-utils toolchain-funcs

DESCRIPTION="High-performance programming language for technical computing"
HOMEPAGE="http://julialang.org/"
Expand All @@ -17,73 +17,102 @@ KEYWORDS=""
IUSE="doc emacs"

RDEPEND="
dev-libs/double-conversion
dev-libs/gmp
dev-libs/libpcre
dev-libs/utf8proc
dev-util/patchelf
sci-libs/arpack
sci-libs/fftw
sci-libs/openlibm
>=sci-libs/suitesparse-4.0
sci-mathematics/glpk
>=sys-devel/llvm-3.0
>=sys-libs/libunwind-1.1
sys-libs/readline
sys-libs/zlib
dev-lang/R:0=
dev-libs/double-conversion:0=
dev-libs/gmp:0=
dev-libs/libpcre:3=
dev-libs/mpfr:0=
dev-libs/utf8proc:0=
sci-libs/arpack:0=
sci-libs/cholmod:0=
sci-libs/fftw:3.0=
sci-libs/openlibm:0=
sci-libs/spqr:0=
sci-libs/umfpack:0=
sci-mathematics/glpk:0=
>=sys-devel/llvm-3.3
>=sys-libs/libunwind-1.1:7=
sys-libs/readline:0=
sys-libs/zlib:0=
virtual/blas
virtual/lapack
emacs? ( !app-emacs/ess )"
emacs? ( app-emacs/ess )"

DEPEND="${RDEPEND}
virtual/pkgconfig"
dev-util/patchelf
virtual/pkgconfig
doc? ( dev-python/sphinx )"

src_prepare() {
# sadlib keep fetching in ebuild to make sure live build works
# /usr/include/suitesparse is for debian only
# respect prefix, flags
sed -i \
-e 's|^\(SUITESPARSE_INC\s*=\).*||g' \
-e 's|/usr/bin/||g' \
-e "s|/usr/include|${EROOT%/}/usr/include|g" \
-e "s|-O3|${CFLAGS}|g" \
-e 's|/usr/bin/||g' \
-e "s|/usr/include|${EPREFIX%/}/usr/include|g" \
deps/Makefile || die

# mangle Make.inc for system libraries
# do not set the RPATH
local blasname=$($(tc-getPKG_CONFIG) --libs blas | \
sed -e "s/-l\([a-z0-9]*\).*/lib\1/")
local lapackname=$($(tc-getPKG_CONFIG) --libs lapack | \
sed -e "s/-l\([a-z0-9]*\).*/lib\1/")

sed -i \
-e 's|\(USE_QUIET\s*\)=.*|\1=0|g' \
-e 's|\(USE_SYSTEM_.*\)=.*|\1=1|g' \
-e 's|\(USE_SYSTEM_LIBUV\)=.*|\1=0|g' \
-e 's|\(USE_SYSTEM_LIBM\)=.*|\1=0|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}|" \
-e 's|\(JULIA_EXECUTABLE = \)\($(JULIAHOME)/julia\)|\1 LD_LIBRARY_PATH=$(BUILD)/$(get_libdir) \2|' \
-e "s|\(JULIA_EXECUTABLE = \)\(\$(JULIAHOME)/julia\)|\1 LD_LIBRARY_PATH=\$(BUILD)/$(get_libdir) \2|" \
-e "s|-O3|${CFLAGS}|g" \
-e "s|LIBDIR = lib|LIBDIR = $(get_libdir)|" \
-e "s|/usr/lib|${EPREFIX}/usr/$(get_libdir)|" \
-e "s|/usr/include|${EPREFIX}/usr/include|" \
-e "s|\$(BUILD)/lib|\$(BUILD)/$(get_libdir)|" \
-e "s|^JULIA_COMMIT = .*|JULIA_COMMIT = v${PV}|" \
Make.inc || die

sed -i \
-e "s|\$(BUILD)/lib|\$(BUILD)/$(get_libdir)|" \
-e "s|\$(JL_LIBDIR),lib|\$(JL_LIBDIR),$(get_libdir)|" \
-e "s|\$(JL_PRIVATE_LIBDIR),lib|\$(JL_PRIVATE_LIBDIR),$(get_libdir)|" \
-e "s|,lib)|,$(get_libdir))|g" \
-e "s|\$(BUILD)/lib|\$(BUILD)/$(get_libdir)|g" \
Makefile || die

sed -i \
-e "s|ar -rcs|$(tc-getAR) -rcs|g" \
src/Makefile || die
}

src_configure() {
# libuv is an incompatible fork from upstream, so don't use system one
cat <<-EOF > Make.user
LIBBLAS=$($(tc-getPKG_CONFIG) --libs blas)
LIBBLASNAME=$($(tc-getPKG_CONFIG) --libs blas | sed -e "s/-l\([a-z0-9]*\).*/lib\1/")
LIBLAPACK=$($(tc-getPKG_CONFIG) --libs lapack)
LIBLAPACKNAME=$($(tc-getPKG_CONFIG) --libs lapack | sed -e "s/-l\([a-z0-9]*\).*/lib\1/")
USE_LLVM_SHLIB=1
USE_SYSTEM_ARPACK=1
USE_SYSTEM_BLAS=1
USE_SYSTEM_FFTW=1
USE_SYSTEM_GMP=1
USE_SYSTEM_GRISU=1
USE_SYSTEM_LAPACK=1
USE_SYSTEM_LIBM=1
USE_SYSTEM_LIBUNWIND=1
USE_SYSTEM_LIBUV=0
USE_SYSTEM_LLVM=1
USE_SYSTEM_MPFR=1
USE_SYSTEM_OPENLIBM=1
USE_SYSTEM_OPENSPECFUN=0
USE_SYSTEM_PCRE=1
USE_SYSTEM_READLINE=1
USE_SYSTEM_RMATH=1
USE_SYSTEM_SUITESPARSE=1
USE_SYSTEM_UTF8PROC=1
USE_SYSTEM_ZLIB=1
VERBOSE=1
EOF
}

src_compile() {
emake cleanall
mkdir -p usr/$(get_libdir) || die
pushd usr || die
ln -s $(get_libdir) lib || die
popd
if [[ $(get_libdir) != lib ]]; then
mkdir -p usr/$(get_libdir) || die
ln -s $(get_libdir) usr/lib || die
fi
emake julia-release
pax-mark m usr/bin/julia-readline
pax-mark m usr/bin/julia-basic
pax-mark m $(file usr/bin/julia-* | awk -F : '/ELF/ {print $1}')
emake
use doc && emake -C doc html
use emacs && elisp-compile contrib/julia-mode.el
Expand All @@ -94,7 +123,7 @@ src_test() {
}

src_install() {
emake install prefix="${D}/usr"
emake install PREFIX="${D}/usr"
cat > 99julia <<-EOF
LDPATH=${EROOT%/}/usr/$(get_libdir)/julia
EOF
Expand Down
4 changes: 2 additions & 2 deletions dev-lang/julia/metadata.xml
@@ -1,8 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<herd>sci</herd>
<longdescription>
<herd>sci</herd>
<longdescription>
Julia is a high-level, high-performance dynamic programming language for
technical computing, with syntax that is familiar to users of other
technical computing environments. It provides a sophisticated compiler,
Expand Down

0 comments on commit 428c074

Please sign in to comment.