summaryrefslogtreecommitdiff
blob: dfbdcb18b8510396173005206089390f6d7a57df (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
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
# Copyright 1999-2007 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/sci-libs/plplot/plplot-5.5.2.ebuild,v 1.8 2007/03/13 00:45:18 kugelfang Exp $

inherit eutils

# Known problems with this ebuild:
# - No support for libqhull.
# - No documentation building - although prebuilt docs are in the tarball.

DESCRIPTION="A Scientific Plotting Library"
HOMEPAGE="http://plplot.sourceforge.net/"
SRC_URI="mirror://sourceforge/${PN}/${P}.tar.gz"

LICENSE="LGPL-2"
SLOT="0"
KEYWORDS="~amd64 ~x86 ~ppc"
IUSE="X debug doc fortran ifc itcl java jpeg octave png python tk tetex truetype"

RDEPEND="virtual/libc
		 dev-lang/perl
	  	 python? ( dev-python/numeric )
	  	 java? ( virtual/jre )
	  	 tetex? ( app-text/jadetex )
	  	 octave? ( sci-mathematics/octave )
	  	 jpeg? ( media-libs/gd )
	  	 png? ( media-libs/gd )
	  	 truetype? ( media-libs/freetype )
		 X? ( || (	( x11-libs/libX11
					  x11-libs/libXau
					  x11-libs/libXdmcp
						)
					virtual/x11 )
				tk? ( dev-lang/tk
						itcl? ( dev-tcltk/itcl )
						)
			   )"

DEPEND="${RDEPEND}
	dev-util/pkgconfig
	ifc? ( dev-lang/ifc )
	virtual/man
	app-text/opensp
	java? ( virtual/jdk )
	X? ( || ( (	x11-proto/xproto )
			virtual/x11 )
	)
	doc? ( sys-apps/texinfo )"
	# Optional support for libqhull (currently doesn't work).
	# qhull? ( media-libs/qhull )

pkg_setup() {
	# If the fortran interface is wanted, the gnu f77 compiler
	# is needed unless ifc is used (which is taken care of in
	# the dependencies).
	use fortran && ! use ifc || if [[ -z $(type -P g77) ]]; then
		eerror "GNU fortran 77 compiler not found on the system."
		eerror "Please add fortran to your USE flags and reemerge gcc."
		die
	fi
}

src_unpack() {
	unpack ${A}
	cd ${S}
	# Fix compilation problems on GCC 3.4 and the octave bindings, thanks to the
	# patch from Debian's BTS bug 274359.
	epatch ${FILESDIR}/${PN}-5.5.1-gcc-3.4-fix.patch
}

src_compile() {
	# Doesn't compile with j > 1.
	MAKEOPTS="${MAKEOPTS} -e -j1"

	local EXTRA_CONF

	# Export DATA_DIR and DOC_DIR so that configure uses correct install path
	EXTRA_CONF="${EXTRA_CONF} DATA_DIR=\"/usr/share/${PN}\""
	EXTRA_CONF="${EXTRA_CONF} DOC_DIR=\"/usr/share/doc/${PF}\""

	# Use pkg-config
	EXTRA_CONF="${EXTRA_CONF} --with-pkg-config"

	# Compilation options (debug, documentation).
	EXTRA_CONF="${EXTRA_CONF} $(use_with debug)"
	# Documentation building doesn't work.
	# The xml catalogs are not found.
#	 if use doc; then
#	 	EXTRA_CONF="${EXTRA_CONF} --enable-builddoc \
#	 	--with-xml-declaration=/usr/share/sgml/xml.dcl \
#		--with-sgml-catalogs=/etc/sgml/catalog:/usr/share/sgml/docbook/sgml-dtd-4.2/catalog:/usr/share/sgml/docbook/sgml-dtd-4.2/docbook.dtd:/usr/share/sgml/docbook/sgml-dtd-4.2/docbookx.dtd"
#		EXTRA_CONF="${EXTRA_CONF} --with-db2x_texixml=/usr/bin/db2x_texixml.pl --with-db2x_xsltproc=/usr/bin/db2x_xsltproc.pl"
#	 else
#	 	EXTRA_CONF="${EXTRA_CONF} --disable-builddoc"
#	 fi
	EXTRA_CONF="${EXTRA_CONF} --disable-builddoc"

	# Language bindings.
	EXTRA_CONF="${EXTRA_CONF} $(use_enable python)"
	EXTRA_CONF="${EXTRA_CONF} $(use_enable java)"
	EXTRA_CONF="${EXTRA_CONF} $(use_enable octave)"
	if use ifc; then
		EXTRA_CONF="${EXTRA_CONF} --enable-f77 F77=/opt/intel/compiler70/ia32/bin/ifc"
	elif use fortran; then
		EXTRA_CONF="${EXTRA_CONF} --enable-f77"
	else
		EXTRA_CONF="${EXTRA_CONF} --disable-f77"
	fi

	# Device drivers.
	EXTRA_CONF="${EXTRA_CONF} $(use_enable jpeg)"
	EXTRA_CONF="${EXTRA_CONF} $(use_enable png)"
	EXTRA_CONF="${EXTRA_CONF} $(use_enable tetex pstex)"
	# Dynamic driver loading causes segfaults.
	EXTRA_CONF="${EXTRA_CONF} --disable-dyndrivers"
	# The linuxvga driver doesn't compile.
	EXTRA_CONF="${EXTRA_CONF} --disable-linuxvga"

	# Support for optional libraries.
	EXTRA_CONF="${EXTRA_CONF} $(use_with truetype freetype)"
	# Support for libqhull doesn't work. The configure script
	# doesn't find the lib.
	# EXTRA_CONF="${EXTRA_CONF} $(use_with qhull)"
	EXTRA_CONF="${EXTRA_CONF} --without-qhull"

	# Additional X-dependent language bindings and device drivers.
	if use X; then
		EXTRA_CONF="${EXTRA_CONF} --with-x"
		if use tk; then
			EXTRA_CONF="${EXTRA_CONF} --enable-tcl"
			EXTRA_CONF="${EXTRA_CONF} $(use_enable itcl)"
		else
			EXTRA_CONF="${EXTRA_CONF} --disable-tcl"
			EXTRA_CONF="${EXTRA_CONF} --disable-tk"
			EXTRA_CONF="${EXTRA_CONF} --disable-itcl"
		fi
		EXTRA_CONF="${EXTRA_CONF} --disable-gnome"
	else
		EXTRA_CONF="${EXTRA_CONF} --without-x"
		EXTRA_CONF="${EXTRA_CONF} --disable-tcl"
		EXTRA_CONF="${EXTRA_CONF} --disable-itcl"
		EXTRA_CONF="${EXTRA_CONF} --disable-gnome"
	fi

	econf ${EXTRA_CONF} || die
	emake || die "make step failed."
}

src_install() {

	# A little sed magic to make some of the docs install to the right place
	sed -i -e "s|\$(datadir)/doc/plplot|/usr/share/doc/${PF}|" Makefile || \
		die "sed replacement of docs dir failed."

	make install DESTDIR=${D} || die "make install step failed."

	# To match the Gentoo FSH.
	if use java; then
		mv ${D}/usr/lib/java/plplot ${D}/usr/share/${PN}/lib
		rm -r ${D}/usr/lib/java
	fi
	if use octave; then
		# fix the path to plplot's .m files
		mv ${D}/usr/share/plplot_octave ${D}/usr/share/plplot/octave || die \
			"Error moving octave files."
		sed -i -e 's|/usr/share/plplot_octave|/usr/share/plplot/octave|' \
			${D}/usr/share/octave/site/m/PLplot/plplot_octave_path.m \
			|| die "sed replacement of octave path failed."
	fi

	# Fix permissions and gzip the basic documentation.
	chmod 644 ${D}/usr/share/doc/${PF}/*
	gzip ${D}/usr/share/doc/${PF}/*
	# Install prebuilt documentation.
	if use doc; then
		cd doc/docbook/src/
		dohtml *.html
		doinfo plplotdoc.info
		insinto /usr/share/doc/${PF}
		doins ${P}.pdf
	fi
}