summaryrefslogtreecommitdiff
blob: 760ec3204e5dd2cacd49d60ec825bb7f0674529a (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
# Copyright 1999-2007 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/media-libs/ploticus/ploticus-2.33-r1.ebuild,v 1.1 2007/08/28 21:45:54 dragonheart Exp $

inherit eutils toolchain-funcs

MY_P=pl${PV/.}src

S=${WORKDIR}/${MY_P}
DESCRIPTION="A command line application for producing graphs and charts"
HOMEPAGE="http://ploticus.sourceforge.net"
SRC_URI="mirror://sourceforge/ploticus/${MY_P}.tar.gz"
LICENSE="GPL-2"
SLOT=0
KEYWORDS="~amd64 ~ppc ~x86"
IUSE="gd flash nls cpulimit svg svgz truetype X"
DEPEND="media-libs/libpng
	gd? ( >=media-libs/gd-1.84 media-libs/jpeg )
	flash? ( =media-libs/ming-0.2a )
	truetype? ( =media-libs/freetype-2* )
	X? ( x11-libs/libX11 )"

pkg_setup() {
	if use gd;
	then
		if ! built_with_use media-libs/gd jpeg || ! built_with_use media-libs/gd png; then
			die "media-libs/gd needs to be build with USE=\"png jpeg\""
		fi
	fi
}
src_unpack() {
	unpack ${A}
	# Fixes a problem with NOX11.
	# Changes the install directory and comments all flash and gd-related
	# options. (These options will be selectively uncommented later.)
	epatch ${FILESDIR}/${MY_P}.patch
}

src_compile() {
	cd src
	# ploticus may be compiled using the external libgd, a libgd provided with
	# the package, or no gd support at all.

	local MO=""
	if useq gd; then
		# PNG and JPEG are supported by default.
		GD18LIBS="-lgd -lpng -lz -ljpeg"
		# Note that truetype works only with the external gd lib.
		if useq truetype; then
			GD18LIBS="${GD18LIBS} -lfreetype"
			MO="${MO} GDFREETYPE=-DGDFREETYPE"
		fi
		# Set the graphics formats support.
		# Use the external libgd.
		MO="${MO} ZFLAG=-DWZ GD18H= GD16H= GDLEVEL=-DGD18=1 plgd18"
		EXE="plpng"
		GD16LIBS="${GD18LIBS}"
		GD18LIBS="${GD18LIBS}"

	else
		# No support for libgd at all.
		# Note that gif and truetype do not work without gd.
		EXE=plnogd
		MO="${MO} NOGDFLAG=-DNOGD"
		GD16LIBS=
		GD18LIBS=
	fi

	# Support for non-roman alphabets and collation.
	if useq nls; then
		MO="${MO} LOCALEOBJ=localef.o LOCALE_FLAG=-DLOCALE"
	fi

	# Support for compressed or uncompressed svg. svgz implies svg. If the
	# external gd library is used, the svgz format will always be available if
	# ploticus was compiled with support for svg (even if the svgz flag was not
	# specified and even if the -svgz flag was used).
	if useq svgz; then
		MO="${MO} ZLIB=-lz ZFLAG=-DWZ"
	elif ! useq svg; then
		MO="${MO} NOSVGFLAG=-DNOSVG"
	fi

	# Support for X11 output.
	if ! useq X; then
		MO="${MO} NOXFLAG=-DNOX11 XLIBS= XOBJ="
	fi

	# Support for Flash output.
	if useq flash; then
		MO="${MO} MING=-lming"
	else
		MO="${MO} NOSWFFLAG=-DNOSWF"
	fi

	# Support for limiting CPU utilization. (Enabled by default.)
	if ! useq cpulimit; then
		MO="${MO} NORLIMFLAG=-DNORLIMIT"
	fi
	emake "CC=$(tc-getCC)" ${MO} EXE="${EXE}" GD18LIBS="${GD18LIBS}" \
		GD16LIBS="${GD16LIBS}" \
		PREFABS_DIR=/usr/share/ploticus/prefabs ploticus || die

	einfo "Compiling C API library"

	emake "CC=$(tc-getCC)" \
	-f Makefile_api || die "API make failed!"
}

src_test() {
	cd ${S}/pltestsuite
	export PATH="${S}/src:${PATH}"
	#sed -i -e "s:PL=.*:PL=${S}/src/pl:" run_script_test
	local TESTS="gif png jpeg eps"
	useq svg && TESTS="${TESTS} svg"
	useq svgz && TESTS="${TESTS} svgz"
	for TEST in ${TESTS};
	do
		echo "Testing ${TEST}"
		echo -e "${TEST}\n" | ./run_script_test
		cat Diag.out
	done
}

src_install() {
	dodoc README
	cd ${S}/src
	mkdir -p ${D}usr/bin
	if useq gd; then
		EXE="pl plpng"
	else
		EXE=pl
	fi
	emake DESTDIR=${D} EXE="${EXE}" install || die

	dolib ${S}/src/libploticus.a

	PL_TARGET=/usr/share/${PN}
	insinto ${PL_TARGET}/prefabs
	doins ${S}/prefabs/*
	insinto ${PL_TARGET}/testsuite
	doins ${S}/pltestsuite/*
}