summaryrefslogtreecommitdiff
blob: 243eb8739a2230f99a6d492b60b7a5c699abef79 (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
# Copyright 1999-2010 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/media-gfx/freewrl/freewrl-1.22.8.ebuild,v 1.3 2010/07/25 19:17:49 nirbheek Exp $

EAPI="2"

inherit nsplugins eutils flag-o-matic

DESCRIPTION="VRML2 and X3D compliant browser"
SRC_URI="mirror://sourceforge/freewrl/${P}.tar.bz2"
HOMEPAGE="http://freewrl.sourceforge.net/"

LICENSE="GPL-3"
SLOT="0"
KEYWORDS="~amd64 ~x86"
IUSE="curl debug libeai +glew +motif nsplugin +sox spidermonkey static +xulrunner"

COMMONDEPEND="x11-libs/libXau
	x11-libs/libXdmcp
	x11-libs/libXext
	x11-libs/libX11
	motif? ( x11-libs/openmotif )
	media-libs/mesa
	glew? ( media-libs/glew )
	virtual/opengl
	media-libs/libpng
	media-libs/jpeg
	media-libs/imlib2
	>=media-libs/freetype-2
	curl? ( net-misc/curl )
	xulrunner? ( net-libs/xulrunner )
	!xulrunner? (
		spidermonkey? ( dev-lang/spidermonkey )
		!spidermonkey? ( || (
			=www-client/firefox-3*[-xulrunner]
			=www-client/firefox-2*
		) )
	)
	nsplugin? ( || ( xulrunner? ( net-libs/xulrunner )
		>=www-client/firefox-2.0 ) )"
DEPEND="${COMMONDEPEND}
	>=dev-util/pkgconfig-0.22"
RDEPEND="${COMMONDEPEND}
	media-fonts/ttf-bitstream-vera
	media-gfx/imagemagick
	app-arch/unzip
	sox? ( media-sound/sox )"

pkg_setup() {
	if use xulrunner && use spidermonkey; then
		eerror "Please choose only one of xulrunner or spidermonkey."
		die "Cannot USE both spidermonkey and xulrunner"
	fi
}

src_prepare() {
	# A hack to get around expat being grabbed from xulrunner
	if use xulrunner && has_version ">=net-libs/xulrunner-1.9.2"; then
		mkdir "${S}/src/lib/include";
		cp /usr/include/expat.h "${S}/src/lib/include/";
		cp /usr/include/expat_external.h "${S}/src/lib/include/";
	fi
}

src_configure() {
	local myconf="--with-fontsdir=/usr/share/fonts/ttf-bitstream-vera
		--with-imageconvert=/usr/bin/convert
		--with-unzip=/usr/bin/unzip"
	if use motif; then
		myconf="${myconf} --with-x --with-target=motif"
	else
		myconf="${myconf} --with-x --with-target=x11"
	fi
	if use nsplugin; then
		myconf="${myconf} --with-plugindir=/usr/$(get_libdir)/${PLUGINS_DIR}"
	fi
	if ! use glew; then
		myconf="${myconf} --without-glew"
	fi
	if use sox; then
		myconf="${myconf} --with-soundconv=/usr/bin/sox"
	fi
	if use xulrunner; then
		if has_version net-libs/xulrunner:1.9 ; then
			if has_version ">=net-libs/xulrunner-1.9.2"; then
				# more hack to get around expat being grabbed from xulrunner
				myconf="${myconf} --with-expat=${S}/src/lib"
			else
				# fix missing library path to xulrunner-1.9 libraries
				append-ldflags "-R/usr/$(get_libdir)/xulrunner-1.9/lib"
			fi
		fi
	elif use spidermonkey; then
		# disable the checks for other js libs, in case they are installed
		myconf="${myconf} --disable-mozilla-js --disable-xulrunner-js --disable-firefox-js --disable-seamonkey-js"
		# spidermonkey has no pkg-config, so override ./configure
		JAVASCRIPT_ENGINE_CFLAGS="-I/usr/include/js -DXP_UNIX"
		JAVASCRIPT_ENGINE_LIBS="-ljs"
		if has_version dev-lang/spidermonkey[threadsafe] ; then
			JAVASCRIPT_ENGINE_CFLAGS="${JAVASCRIPT_ENGINE_CFLAGS} -DJS_THREADSAFE $(pkg-config --cflags nspr)"
			JAVASCRIPT_ENGINE_LIBS="$(pkg-config --libs nspr) ${JAVASCRIPT_ENGINE_LIBS}"
		fi
		export JAVASCRIPT_ENGINE_CFLAGS
		export JAVASCRIPT_ENGINE_LIBS
	else
		# disable checks for xulrunner libs, in case they are installed
		myconf="${myconf} --disable-mozilla-js --disable-xulrunner-js"
		# not using xulrunner, so ./configure grabs js directly from firefox/mozilla/thunderbird/wherever
		if has_version =www-client/firefox-3* ; then
			# override ./configure for firefox-3 as pkg-config doesn't detect the right settings
			export MOZILLA_PLUGIN_CFLAGS="-I/usr/include/mozilla-firefox/stable $(pkg-config --cflags nspr)"
			export MOZILLA_PLUGIN_LIBS=" "
			export JAVASCRIPT_ENGINE_CFLAGS="-DXP_UNIX -DJS_THREADSAFE -DMOZILLA_JS_UNSTABLE_INCLUDES ${MOZILLA_PLUGIN_CFLAGS}"
			export JAVASCRIPT_ENGINE_LIBS="$(pkg-config --libs nspr) -L/usr/$(get_libdir)/mozilla-firefox -lmozjs"
			append-ldflags "-R/usr/$(get_libdir)/mozilla-firefox"
		fi
	fi
	econf	${myconf} \
		$(use_enable curl libcurl) \
		$(use_enable debug) \
		$(use_enable libeai) \
		$(use_enable nsplugin plugin) \
		$(use_enable static) \
		$(use_enable sox sound)
}

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

	# remove unneeded .la files (as per Flameeyes' rant)
	cd "${D}"
	rm "usr/$(get_libdir)"/*.la "usr/$(get_libdir)/${PLUGINS_DIR}"/*.la
}