summaryrefslogtreecommitdiffstats
path: root/eclass/rusxmms-plugin.eclass
blob: cd1683236f0ffcb89a1f111a98fc8956ae1efba0 (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
# Copyright 1999-2004 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: 
#
# Jeremy Huddleston <eradicator@gentoo.org>

# Usage:
# This eclass is used to create ebuilds for xmms plugins which are contained
# within the main xmms tarball.  Usage:

# PATCH_VER:
# M4_VER:
# GENTOO_URI:
GENTOO_URI=${GENTOO_URI-"http://dside.dyndns.org/files/rusxmms"}
# Set this variable if you want to use a gentoo specific patchset.  This adds
# ${GENTOO_URI}/xmms-${PV}-gentoo-patches-${PATCH_VER}.tar.bz2 to the SRC_URI

# PLUGIN_PATH:
# Set this variable to the plugin location you want to build.
# Example:
# PLUGIN_PATH="Input/mpg123"

# SONAME:
# Set this variable to the filename of the plugin that is copied over
# Example:
# SONAME="libmpg123.so"

inherit eutils

DESCRIPTION="Xmms Plugin: ${PN}"
HOMEPAGE="http://www.xmms.org"
LICENSE="GPL-2"

SRC_URI="http://www.xmms.org/files/1.2.x/xmms-${PV}.tar.bz2
	 http://dside.dyndns.org/files/rusxmms/RusXMMS2-csa${RUSXMMS_VER}.tar.bz2
	 http://dside.dyndns.org/files/rusxmms/xmms-1.2.10-gentoo-m4-${M4_VER}.tar.bz2
	 http://dside.dyndns.org/files/rusxmms/xmms-${PV}-gentoo-patches-${PATCH_VER}.tar.bz2"

# Set S to something which exists
S="${WORKDIR}/xmms-${PV}"

IUSE="${IUSE} rcc"
RDEPEND="${RDEPEND+${RDEPEND}}${RDEPEND-${DEPEND}}"
DEPEND="${DEPEND}
	=sys-devel/automake-1.7*
	sys-devel/autoconf
	sys-devel/libtool
	rcc? ( app-i18n/librcc )"


rusxmms-plugin_src_unpack() {
	if ! has_version '>=media-sound/xmms-1.2.10-r13'; then
		ewarn "You don't have >=media-sound/xmms-1.2.10-r13, so we are using the SDK in"
		ewarn "this package rather that the one installed on your system. It is recommended"
		ewarn "that you cancel this emerge and grab >=media-sound/xmms-1.2.10-r13 first."
		epause 5
	fi

	unpack ${A}

	cd ${S}

	if [[ ${PV} != *1.2.10* ]]; then 
	    use rcc && ../RusXMMS2/apply.sh
	fi
	
	if [[ -n "${PATCH_VER}" ]]; then
		EPATCH_SUFFIX="patch"
		epatch ${WORKDIR}/patches
	fi

	cd ${S}/${PLUGIN_PATH}
	sed -i -e "s:-I\$(top_srcdir)::g" \
	       -e "s:\$(top_builddir)/libxmms/libxmms.la:/usr/$(get_libdir)/libxmms.la:g" \
	       Makefile.am || die "Failed to edit Makefile.am"

	cd ${S}
	
	if [[ ${PV} == *1.2.10* ]]; then 
	    use rcc && ../RusXMMS2/apply-gentoo.sh

	    export WANT_AUTOMAKE=1.7
	    export WANT_AUTOCONF=2.5
	fi

	libtoolize --force --copy || die "libtoolize --force --copy failed"

	if [[ -n "${M4_VER}" ]]; then
		rm acinclude.m4
		aclocal -I ${WORKDIR}/m4 || die "aclocal failed"
	else
		aclocal || die "aclocal failed"
	fi
	autoheader || die "autoheader failed"
	automake --gnu --add-missing --include-deps --force-missing --copy || die "automake failed"

	cd ${S}/${PLUGIN_PATH}
	if has_version '>=media-sound/xmms-1.2.10-r13'; then
		sed -i -e "s:^DEFAULT_INCLUDES = .*$:DEFAULT_INCLUDES = -I. $(xmms-config --cflags):" \
			Makefile.in || die "Failed to edit Makefile.in"
	fi

	cd ${S}
	autoconf || die "autoconf failed"
}

rusxmms-plugin_src_compile() {
	filter-flags -fforce-addr -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE

	econf ${myconf}
	cp config.h ${S}/${PLUGIN_PATH}

	cd ${S}/${PLUGIN_PATH}
	emake -j1 || die
}

rusxmms-plugin_src_install() {
	cd ${S}/${PLUGIN_PATH}
	make DESTDIR="${D}" install || die
}

EXPORT_FUNCTIONS src_unpack src_compile src_install