# New ports collection makefile for:    xmms2
# Date created:				20 May 2005
# Whom:				  	Alexander Botero-Lowry <alex@foxybanana.com>
#
# $FreeBSD: ports/audio/xmms2/Makefile,v 1.34 2007/07/28 12:27:18 miwi Exp $
#

PORTNAME?=	xmms2
PORTVERSION=	0.2.d.9
DISTVERSION=	0.2DrJekyll
PORTREVISION=	1
CATEGORIES?=	audio
MASTER_SITES=	${MASTER_SITE_SOURCEFORGE}
MASTER_SITE_SUBDIR=	${PORTNAME}
DISTNAME=	${PORTNAME}-${DISTVERSION}

MAINTAINER=	alexbl@FreeBSD.org
COMMENT?=	Rewrite of xmms as a client/server system (developer release)

.if !defined(XMMS2_SLAVE)
LIB_DEPENDS=	mad.2:${PORTSDIR}/audio/libmad \
		vorbis.4:${PORTSDIR}/audio/libvorbis
.endif

USE_BZIP2=	yes
USE_PYTHON_BUILD=	yes

.if !defined(XMMS2_SLAVE)
USE_GNOME=	glib20
USE_SQLITE=	3

USE_LDCONFIG=	yes
.endif

.if !defined(XMMS2_SLAVE)
MAN1=		xmms2.1 xmms2-et.1 xmms2d.1 xmms2-launcher.1
MANCOMPRESSED=	yes

OPTIONS=	FAAD "Support to playback AAC files" on \
		FLAC "Support to playback FLAC files" on \
		MODPLUG "Support to playback MOD files" off \
		MUSEPACK "Support to playback MPC files" off \
		SID "Support to playback SID files" off \
		AVCODEC "Support to playback files with avcodec/avformat" off \
		APE "Support to playback Monkey's Audio files" off \
		CURL "Support to playback files via HTTP" on \
		LASTFM "Support to playback audio via Last.fm radio" on \
		GNOMEVFS "Support to playback files via GnomeVFS" off \
		MMS "Support to playback streams via MMS" off \
		SAMBA "Support to playback files via SMB" off \
		DAAP "Support to playback files via DAAP" on \
		OFA "Support to collect MusicDNS fingerprints" off \
		XML "Support for XML based playlists (XSPF, RSS)" off \
		FAM "Support to update Media Library on file change" off \
		MDNS_AVAHI "Support to announce XMMS2d via mDNS (Avahi)" off \
		MDNS_APPLE "Support to announce XMMS2d via mDNS (Apple)" on \
		ICES "Support to playback files to an icecast server" off \
		JACK "Support to output via the Jack output server" off \
		AO "Support to output via libao" off \
		VOCODER "Phase Vocoder effect plugin" off #\
#		SDL "Support for visualization" on
.endif

.include <bsd.port.pre.mk>

.if defined(XMMS2_SLAVE)
EXCLUDE+=	--without-xmms2d=1
EXTRA_PATCHES=	${PATCHDIR}/slaveport-wscript ${PATCHDIR}/slaveport-src_include_wscript
.endif

.if defined(XMMS2_SLAVE) && ${XMMS2_SLAVE} == "python"
EXCLUDE+=	--with-optionals="python"
.elif defined(XMMS2_SLAVE) && ${XMMS2_SLAVE} == "ruby"
EXCLUDE+=	--with-optionals="ruby"
.elif defined(XMMS2_SLAVE) && ${XMMS2_SLAVE} == "perl"
EXCLUDE+=	--with-optionals="perl"
.elif defined(XMMS2_SLAVE) && ${XMMS2_SLAVE} == "ruby-ecore"
EXCLUDE+=	--with-optionals="ruby" --with-optionals="xmmsclient-ecore"
.elif defined(XMMS2_SLAVE) && ${XMMS2_SLAVE} == "cpp"
EXCLUDE+=	--with-optionals="xmmsclient++" --with-optionals="xmmsclient++-glib"
.elif !defined(XMMS2_SLAVE)
EXCLUDE+=	--without-optionals="python" --without-optionals="ruby" --without-optionals="xmmsclient-ecore" --without-optionals="xmmsclient++" --without-optionals="xmmsclient++-glib" --without-optionals="perl"
.endif

.if !defined(XMMS2_SLAVE)

EXCLUDE+=	--without-plugins="cdda"
.if !defined(WITHOUT_CURL)
LIB_DEPENDS+=	curl.4:${PORTSDIR}/ftp/curl
PLIST_SUB+=	CURL=""
.else
EXCLUDE+=	--without-plugins="curl" --without-plugins="icymetaint"
PLIST_SUB+=	CURL="@comment "
.endif

.if !defined(WITHOUT_LASTFM)
.if defined(WITHOUT_CURL)
LIB_DEPENDS+=	curl.3:${PORTSDIR}/ftp/curl
.endif
PLIST_SUB+=	LASTFM=""
.else
EXCLUDE+=	--without-plugins="lastfm" --without-plugins="lastfmeta"
PLIST_SUB+=	LASTFM="@comment "
.endif

.if defined(WITH_SID)
LIB_DEPENDS+=	sidplay2.[0-9]:${PORTSDIR}/audio/libsidplay2
PLIST_SUB+=	SID=""
.else
EXCLUDE+=	--without-plugins="sid"
PLIST_SUB+=	SID="@comment "
.endif

.if !defined(WITHOUT_FLAC)
LIB_DEPENDS+=	FLAC.7:${PORTSDIR}/audio/flac
PLIST_SUB+=	FLAC=""
.else
EXCLUDE+=	--without-plugins="flac"
PLIST_SUB+=	FLAC="@comment "
.endif

.if !defined(WITHOUT_FAAD)
LIB_DEPENDS+=	faad.0:${PORTSDIR}/audio/faad
PLIST_SUB+=	FAAD=""
.else
EXCLUDE+=	--without-plugins="faad" --without-plugins="mp4"
PLIST_SUB+=	FAAD="@comment "
.endif

.if defined(WITH_AVCODEC)
LIB_DEPENDS+=	avutil.1:${PORTSDIR}/multimedia/ffmpeg
PLIST_SUB+=	AVCODEC=""
.else
EXCLUDE+=	--without-plugins="avcodec" --without-plugins="avformat"
PLIST_SUB+=	AVCODEC="@comment "
.endif

.if defined(WITH_APE)
LIB_DEPENDS+=	mac.2:${PORTSDIR}/audio/mac
PLIST_SUB+=	MAC=""
.else
EXCLUDE+=	--without-plugins="mac"
PLIST_SUB+=	MAC="@comment "
.endif

.if !defined(WITHOUT_SDL) && defined(UNDEFINED)
IGNORE=		visualization has not been updated to the Transforms API
USE_SDL=	sdl ttf
PLIST_SUB+=	SDL=""
#EXTRA_PATCHES+=	${FILESDIR}/extraPatch-src::clients::sdl-vis::Program
.else
PLIST_SUB+=	SDL="@comment "
.endif

.if defined(WITH_MUSEPACK)
LIB_DEPENDS+=	mpcdec.5:${PORTSDIR}/audio/libmpcdec
PLIST_SUB+=	MUSEPACK=""
.else
EXCLUDE+=	--without-plugins="musepack"
PLIST_SUB+=	MUSEPACK="@comment "
.endif

.if defined(WITH_JACK)
LIB_DEPENDS+=	jack.0:${PORTSDIR}/audio/jack
PLIST_SUB+=	JACK=""
.else
EXCLUDE+=	--without-plugins="jack"
PLIST_SUB+=	JACK="@comment "
.endif

.if defined(WITH_MODPLUG)
LIB_DEPENDS+=	modplug.0:${PORTSDIR}/audio/libmodplug
PLIST_SUB+=	MODPLUG=""
.else
EXCLUDE+=	--without-plugins="modplug"
PLIST_SUB+=	MODPLUG="@comment "
.endif

.if defined(WITH_OFA)
LIB_DEPENDS+=	ofa.0:${PORTSDIR}/audio/libofa
PLIST_SUB+=	OFA=""
.else
EXCLUDE+=	--without-plugins="ofa"
PLIST_SUB+=	OFA="@comment "
.endif

.if defined(WITH_XML)
USE_GNOME=	libxml2
PLIST_SUB+=	XML=""
.else
EXCLUDE+=	--without-plugins="xml" --without-plugins="rss" --without-plugins="xspf"
PLIST_SUB+=	XML="@comment "
.endif

.if defined(WITH_SAMBA)
LIB_DEPENDS+=	smbclient.0:${PORTSDIR}/net/samba-libsmbclient
PLIST_SUB+=	SAMBA=""
.else
EXCLUDE+=	--without-plugins="samba"
PLIST_SUB+=	SAMBA="@comment "
.endif

.if !defined(WITHOUT_DAAP)
PLIST_SUB+=	DAAP=""
.else
EXCLUDE+=	--without-plugins="daap"
PLIST_SUB+=	DAAP="@comment "
.endif

.if defined(WITH_GNOMEVFS)
USE_GNOME+=	gnomevfs2
PLIST_SUB+=	GNOMEVFS=""
.else
EXCLUDE+=	--without-plugins="gnomevfs"
PLIST_SUB+=	GNOMEVFS="@comment "
.endif

.if defined(WITH_MMS)
LIB_DEPENDS+=	mms.0:${PORTSDIR}/net/libmms
PLIST_SUB+=	MMS=""
.else
EXCLUDE+=	--without-plugins="mms"
PLIST_SUB+=	MMS="@comment "
.endif

.if defined(WITH_FAM)
USE_FAM=	yes
WANT_FAM_SYSTEM=gamin
PLIST_SUB+=	FAM=""
.else
EXCLUDE+=	--without-optionals="medialib-updater"
PLIST_SUB+=	FAM="@comment "
.endif

.if defined(WITH_ICES)
LIB_DEPENDS+=	shout.5:${PORTSDIR}/audio/libshout2
PLIST_SUB+=	ICES=""
.else
EXCLUDE+=	--without-plugins="ices"
PLIST_SUB+=	ICES="@comment "
.endif

.if defined(WITH_AO)
LIB_DEPENDS+=	ao.3:${PORTSDIR}/audio/libao
PLIST_SUB+=	AO=""
.else
EXCLUDE+=	--without-plugins="ao"
PLIST_SUB+=	AO="@comment "
.endif

.if defined(WITH_MDNS_AVAHI)
.if !defined(WITHOUT_MDNS_APPLE)
BROKEN=		You may choose either MDNS_APPLE or MDNS_AVAHI, but not both
.endif
EXCLUDE+=	--without-optionals="dns_sd"
LIB_DEPENDS+=	avahi-core:${PORTSDIR}/net/avahi
PLIST_SUB+=	MDNS_AVAHI=""
MAN1+=	xmms2-mdns-avahi.1
.else
EXCLUDE+=	--without-optionals="avahi"
PLIST_SUB+=	MDNS_AVAHI="@comment "
.endif

.if !defined (WITHOUT_MDNS_APPLE)
.if defined(WITH_MDNS_AVAHI)
BROKEN=		You may choose either MDNS_APPLE or MDNS_AVAHI, but not both
.endif
EXCLUDE+=	--without-optionals="avahi"
LIB_DEPENDS+=	dns_sd:${PORTSDIR}/net/mDNSResponder
PLIST_SUB+=	MDNS_APPLE=""
.else
EXCLUDE+=	--without-optionals="dns_sd"
PLIST_SUB+=	MDNS_APPLE="@comment "
.endif

.if defined(WITH_VOCODER)
LIB_DEPENDS+=	fftw3f.4:${PORTSDIR}/math/fftw3-float
LIB_DEPENDS+=	samplerate.1:${PORTSDIR}/audio/libsamplerate
PLIST_SUB+=	VOCODER=""
.else
EXCLUDE+=	--without-plugins="vocoder"
PLIST_SUB+=	VOCODER="@comment "
.endif
.endif

do-configure:
	cd ${WRKSRC} && ./waf configure --conf-prefix=${LOCALBASE} --prefix=${PREFIX} --with-mandir=${PREFIX}/man ${EXCLUDE}

do-build:
	cd ${WRKSRC} && ./waf build

do-install:
	cd ${WRKSRC} && ./waf install

.include <bsd.port.post.mk>
