# Copyright 1999-2004 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/eclass/xmms-plugin.eclass,v 1.20 2005/10/15 19:12:43 flameeyes Exp $
#
# 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://dev.gentoo.org/~eradicator/xmms"}
# 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 flag-o-matic

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
	 ${M4_VER:+${GENTOO_URI}/xmms-${PV}-gentoo-m4-${M4_VER}.tar.bz2}
	 ${PATCH_VER:+${GENTOO_URI}/xmms-${PV}-gentoo-patches-${PATCH_VER}.tar.bz2}"

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

RDEPEND="${RDEPEND+${RDEPEND}}${RDEPEND-${DEPEND}}"
DEPEND="${DEPEND}
	=sys-devel/automake-1.7*
	=sys-devel/autoconf-2.5*
	sys-devel/libtool"

xmms-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 [[ -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}

	export WANT_AUTOMAKE=1.7
	export WANT_AUTOCONF=2.5

	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"
}

xmms-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
}

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

EXPORT_FUNCTIONS src_unpack src_compile src_install