summaryrefslogtreecommitdiff
blob: ab4dd5ea1429ebb37ffa7353482a67f0b2a506eb (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
# Copyright 1999-2005 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/dev-lang/R/R-1.9.0-r1.ebuild,v 1.14 2005/02/02 13:46:17 kugelfang Exp $

inherit 64-bit

IUSE="blas X tcltk gnome zlib bzlib pcre f2c"

DESCRIPTION="R is GNU S - A language and environment for statistical computing and graphics."

SRC_URI="http://cran.r-project.org/src/base/${P}.tgz"

	#There are daily release patches, don't know how to utilize these
	#"ftp://ftp.stat.math.ethz.ch/Software/${PN}/${PN}-release.diff.gz"

HOMEPAGE="http://www.r-project.org/"

DEPEND="virtual/libc
		>=dev-lang/perl-5.6.1-r3
		>=sys-libs/readline-4.1-r3
		zlib? ( >=sys-libs/zlib-1.1.3-r2 )
		>=media-libs/jpeg-6b-r2
		>=media-libs/libpng-1.2.1
		blas? ( virtual/blas )
		f2c? ( dev-lang/f2c >=dev-libs/libf2c-20021004-r1 )
		X? ( virtual/x11 )
		tcltk? ( dev-lang/tk )
		pcre? ( dev-libs/libpcre )
		bzlib? ( app-arch/bzip2 )
		gnome? ( >=gnome-base/gnome-libs-1.4.1.4
			>=gnome-base/libglade-0.17
			>=dev-libs/libxml-1.8.16
			=gnome-base/orbit-0*
			>=media-libs/imlib-1.9.10
			>=x11-libs/gtk+-1.2.10
			>=dev-libs/glib-1.2.10
			>=media-sound/esound-0.2.23
			>=media-libs/audiofile-0.2.1 )"

SLOT="0"
LICENSE="GPL-2 LGPL-2.1"
KEYWORDS="x86 sparc ppc amd64"

pkg_setup() {
	if [ -z "$(which g77 2>/dev/null)" ]; then
		einfo "Couldn't find g77 Fortran Compiler."
		if 64-bit && use f2c; then
			eerror "You can't use f2c for dev-lang/R on	64-bit arches."
			eerror "Please remerge gcc with USE=\"g77\""
			die "dev-lang/R is incompatible with f2c on	64-bit arches."
		fi
		if ! use f2c; then
			eerror "Trying to emerge this packet w/o fortran compiler."
			eerror "Try again with USE=\"f2c\" emerge dev-lang/R."
			die "No fortran compiler, no f2c."
		else
			einfo "Using f2c to translate fortran sources."
		fi
	fi
}

src_unpack() {
	unpack ${A}
	cd ${S}
	sed -e 's/^#define NeedFunctionPrototypes 0/#define NeedFunctionPrototypes 1/' \
	-i src/modules/X11/dataentry.c || die "sed failed"
}

src_compile() {
	addwrite "/var/cache/fonts"
	local myconf="--enable-static --enable-R-profiling --enable-R-shlib --with-readline"

	use zlib || myconf="${myconf} --with-zlib"   #default disabled
	use bzlib || myconf="${myconf} --with-bzlib"   #default disabled
	use pcre || myconf="${myconf} --with-pcre"   #default disabled

	# Using the blas USE flag now instead atlas, as atlas now
	# has been broken into blas-atlas and lapack-atlas.
	# Danny van Dyk <kugelfang@gentoo.org> 2004/07/11
	use blas || myconf="${myconf} --without-blas" #default enabled

	use X || myconf="${myconf} --without-x" #default enabled

	if use tcltk; then
		#configure needs to find the files tclConfig.sh and tkConfig.sh
		myconf="${myconf} --with-tcltk --with-tcl-config=/usr/lib/tclConfig.sh --with-tk-config=/usr/lib/tkConfig.sh"
	else
		myconf="${myconf} --without-tcltk"
	fi

	use gnome && myconf="${myconf} --with-gnome" #default disabled

	./configure \
		--host=${CHOST} \
		--prefix=/usr \
		--infodir=/usr/share/info \
		--mandir=/usr/share/man \
		${myconf} || die "./configure failed"

	emake || die

}

src_install () {

	make \
		prefix=${D}/usr \
		mandir=${D}/usr/share/man \
		infodir=${D}/usr/share/info \
		install || die "Installation Failed"

	#fix the R wrapper script to have the correct R_HOME_DIR
	#sed regexp borrowed from included debian rules
	cp ${D}/usr/lib/R/bin/R ${S}/bin/R.orig
	sed -e '/^R_HOME_DIR=.*/s::R_HOME_DIR=/usr/lib/R:' \
		${S}/bin/R.orig > ${D}/usr/lib/R/bin/R

	#R installs two identical wrappers under /usr/bin and /usr/lib/R/bin/
	#the 2nd one is corrected by above sed, for the 1st
	#I'll just symlink it into /usr/bin
	cd ${D}/usr/bin/
	rm R
	dosym ../lib/R/bin/R /usr/bin/R
	cd ${S}

	dodoc AUTHORS BUGS COPYING* ChangeLog FAQ INSTALL *NEWS README \
		RESOURCES THANKS VERSION Y2K

	#Add rudimentary menu entry if gnome
	if use gnome; then
		insinto /usr/share/gnome/apps/Applications
		doins ${FILESDIR}/R.desktop
		insinto /usr/share/pixmaps
		doins ${FILESDIR}/R-logo.png
	fi

}