aboutsummaryrefslogtreecommitdiff
blob: 35738ced216cb08c472cb1028d2e94760d23428c (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
139
# Copyright 1999-2010 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: $

EAPI=2
inherit eutils autotools java-pkg-2 check-reqs

DESCRIPTION="Scientific software package for numerical computations"
LICENSE="CeCILL-2"
SRC_URI="http://www.scilab.org/download/${PV}/${P}-src.tar.gz"
HOMEPAGE="http://www.scilab.org/"

SLOT="0"
IUSE="doc fftw +gui hdf5 +matio nls tk +umfpack xcos"
KEYWORDS="~amd64 ~x86"

RDEPEND="virtual/lapack
	tk? ( dev-lang/tk )
	xcos? ( dev-lang/ocaml )
	umfpack? ( sci-libs/umfpack )
	gui? ( >=virtual/jre-1.5
		dev-java/commons-logging
		dev-java/flexdock
		dev-java/gluegen
		dev-java/jeuclid-core
		dev-java/jlatexmath
		dev-java/jgraphx
		dev-java/jogl
		dev-java/jgoodies-looks
		dev-java/skinlf
		dev-java/jrosetta
		dev-java/javahelp
		hdf5? ( dev-java/hdf-java ) )
	fftw? ( sci-libs/fftw:3.0 )
	matio? ( sci-libs/matio )
	hdf5? ( sci-libs/hdf5 )"

DEPEND="${RDEPEND}
	dev-util/pkgconfig
	doc? (
		~dev-java/saxon-6.5.5
		dev-java/fop
		dev-java/batik
		app-text/docbook-xsl-stylesheets )"

pkg_setup() {
	CHECKREQS_MEMORY="512"
	java-pkg-2_pkg_setup
}

src_prepare() {
	# avoid redefinition of exp10
	epatch "${FILESDIR}"/${PN}-5.2.0-no-redef-exp10.patch
	# Increases java heap to 512M when available, when building docs
	check_reqs_conditional && epatch "${FILESDIR}"/${PN}-5.2.0-java-heap.patch
	# fix for hdf-java-2.6
	epatch "${FILESDIR}"/${PN}-5.2.0-hdf-java-2.6.patch
	# fix SCILIB path
	epatch "${FILESDIR}"/${PN}-5.2.0-scilib-fix.patch

	# apply blindly some debian patches
	for i in "${FILESDIR}"/*.diff; do
		epatch ${i}
	done

	# add the correct java directories to the config file
	sed \
		-i "/^.DEFAULT_JAR_DIR/{s|=.*|=\"$(echo $(ls -d /usr/share/*/lib))\"|}" \
		m4/java.m4 || die

	sed -i "s|-L\$SCI_SRCDIR/bin/|-L\$SCI_SRCDIR/bin/ \
		-L$(java-config -i gluegen) \
		-L$(java-config -i hdf-java) \
		-L$(java-config -i jogl)|" \
		configure.ac || die
	sed -i \
		-e "/<\/librarypaths>/i\<path value=\"$(java-config -i gluegen)\"\/>" \
		-e "/<\/librarypaths>/i\<path value=\"$(java-config -i jogl)\"\/>" \
		-e "/<\/librarypaths>/i\<path value=\"$(java-config -i hdf-java)\"\/>" \
		etc/librarypath.xml || die
	eautoreconf
	java-pkg-2_src_prepare
}

src_configure() {
	local myopts
	use doc && myopts="--with-docbook=/usr/share/sgml/docbook/xsl-stylesheets"
	export JAVA_HOME=$(java-config -O)
	export BLAS_LIBS="$(pkg-config --libs blas)"
	export LAPACK_LIBS="$(pkg-config --libs lapack)"
	# mpi is only used for hdf5 i/o
	if use hdf5 && has_version sci-libs/hdf5[mpi]; then
		export CC=mpicc
		export CXX=mpicxx
		export FC=mpif90
		export F77=mpif77
	fi
	econf \
		--disable-rpath \
		--without-pvm \
		$(use_enable doc build-help) \
		$(use_enable nls) \
		$(use_enable nls build-localization) \
		$(use_with fftw) \
		$(use_with gui)\
		$(use_with gui javasci)\
		$(use_with hdf5) \
		$(use_with matio) \
		$(use_with umfpack) \
		$(use_with tk) \
		$(use_with xcos scicos) \
		${myopts}
}

src_compile() {
	emake || die "emake failed"
	if use doc; then
		emake doc || die "emake failed"
	fi
}

src_install() {
	emake DESTDIR="${D}" install || die "emake install failed"

	# install docs
	dodoc ACKNOWLEDGEMENTS CHANGES README_Unix RELEASE_NOTES \
		Readme_Visual.txt || die "failed to install docs"

	#install icon
	newicon icons/scilab.xpm scilab.xpm
	make_desktop_entry ${PN} "Scilab" ${PN}
}

pkg_postinst() {
	einfo "To tell Scilab about your printers, set the environment"
	einfo "variable PRINTERS in the form:"
	einfo
	einfo "PRINTERS=\"firstPrinter:secondPrinter:anotherPrinter\""
}