# Created by: Alexander Botero-Lowry <alex@foxybanana.com>
# $FreeBSD: tags/RELEASE_10_2_0/audio/xmms2/Makefile 383682 2015-04-09 22:08:18Z antoine $

PORTNAME?=	xmms2
PORTVERSION=	0.8
DISTVERSIONSUFFIX=DrO_o
PORTREVISION?=	15
CATEGORIES?=	audio
MASTER_SITES=	SF/${PORTNAME}/${PORTNAME}/${PORTVERSION}%20${DISTVERSIONSUFFIX}

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

USES+=		pkgconfig tar:bzip2 waf

CONFIGURE_ARGS+=	--conf-prefix=${LOCALBASE} \
		--mandir=${MANPREFIX}/man
INSTALL_TARGET=	install --without-ldconfig

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

USE_LDCONFIG=	yes

PLIST_SUB+=	INCLUDEDIR="include/${PORTNAME}" LIBDIR="lib/${PORTNAME}"

CPPFLAGS+=	-I${LOCALBASE}/include

OPTIONS_DEFINE=	AIRPLAY AO APE AVCODEC CDDA CURL ET FAAD FAM FLAC \
		GME GVFS ICES JACK MAD MDNS MMS \
		MODPLUG MPG123 MUSEPACK OFA PULSEAUDIO SAMBA SID \
		SNDFILE SPEEX TREMOR VISUAL VOCODER VORBIS WAVPACK XML
OPTIONS_SINGLE=	MDNS
OPTIONS_SINGLE_MDNS=	MDNS_APPLE MDNS_AVAHI
OPTIONS_DEFAULT=	CURL FAAD FLAC MAD MDNS MDNS_APPLE VORBIS

AIRPLAY_DESC=	Support output via Airport Express
AVCODEC_DESC=	Avcodevc playback support
ET_DESC=	Install usage feedback reporting client
FAM_DESC=	Support to update Media Library on file change
GME_DESC=	Video game music files support
GVFS_DESC=	Playback files via GVFS
ICES_DESC=	Playback files to an icecast server
MDNS_DESC=	Announce XMMS2d via mDNS (Choose implementation)
MDNS_APPLE_DESC=	Use Apple mDNS implementation
MDNS_AVAHI_DESC=	Use Avahi mDNS implementation
OFA_DESC=	Collect MusicDNS fingerprints
SAMBA_DESC=	Playback files via SMB
SID_DESC=	Playback SID files
VISUAL_DESC=	Visualization plugins support
VOCODER_DESC=	Phase Vocoder effect plugin
XML_DESC=	Support XML based playlists (XSPF, RSS)

.endif # !XMMS_SLAVE

.include <bsd.port.options.mk>

.if defined(XMMS2_SLAVE)
CONFIGURE_ARGS+=	--without-xmms2d

.if   ${XMMS2_SLAVE} == "python"
CONFIGURE_ARGS+=	--with-optionals="python"
.elif ${XMMS2_SLAVE} == "ruby"
CONFIGURE_ARGS+=	--with-optionals="ruby"
.elif ${XMMS2_SLAVE} == "perl"
CONFIGURE_ARGS+=	--with-optionals="perl"
.elif ${XMMS2_SLAVE} == "ruby-ecore"
CONFIGURE_ARGS+=	--with-optionals="ruby" --with-optionals="xmmsclient-ecore"
.elif ${XMMS2_SLAVE} == "cpp"
CONFIGURE_ARGS+=	--with-optionals="xmmsclient++" \
		--with-optionals="xmmsclient++-glib"
.endif

.else # XMMS2_SLAVE
CONFIGURE_ARGS+=	--without-optionals="python" \
		--without-optionals="ruby" \
		--without-optionals="xmmsclient-ecore" \
		--without-optionals="xmmsclient++" \
		--without-optionals="xmmsclient++-glib" \
		--without-optionals="perl"
.endif # XMMS2_SLAVE

.if !defined(XMMS2_SLAVE)

.if ${PORT_OPTIONS:MAIRPLAY}
USE_OPENSSL=	yes
PLIST_SUB+=	AIRPLAY=""
.else
CONFIGURE_ARGS+=	--without-plugins="airplay"
PLIST_SUB+=	AIRPLAY="@comment "
.endif

.if ${PORT_OPTIONS:MAO}
LIB_DEPENDS+=	libao.so:${PORTSDIR}/audio/libao
PLIST_SUB+=	AO=""
.else
CONFIGURE_ARGS+=	--without-plugins="ao"
PLIST_SUB+=	AO="@comment "
.endif

.if ${PORT_OPTIONS:MAPE}
LIB_DEPENDS+=	libmac.so:${PORTSDIR}/audio/mac
PLIST_SUB+=	MAC=""
.else
CONFIGURE_ARGS+=	--without-plugins="mac"
PLIST_SUB+=	MAC="@comment "
.endif

.if ${PORT_OPTIONS:MAVCODEC}
LIB_DEPENDS+=	libavutil.so:${PORTSDIR}/multimedia/ffmpeg
PLIST_SUB+=	AVCODEC=""
.else
CONFIGURE_ARGS+=	--without-plugins="avcodec"
PLIST_SUB+=	AVCODEC="@comment "
.endif

.if ${PORT_OPTIONS:MCDDA}
LIB_DEPENDS+=	libcdio.so:${PORTSDIR}/sysutils/libcdio \
		libcdio_cdda.so:${PORTSDIR}/sysutils/libcdio-paranoia \
		libdiscid.so:${PORTSDIR}/audio/libdiscid
PLIST_SUB+=	CDDA=""
.else
CONFIGURE_ARGS+=	--without-plugins="cdda"
PLIST_SUB+=	CDDA="@comment "
.endif

.if ${PORT_OPTIONS:MCURL}
LIB_DEPENDS+=	libcurl.so:${PORTSDIR}/ftp/curl
PLIST_SUB+=	CURL=""
.else
CONFIGURE_ARGS+=	--without-plugins="curl" --without-plugins="icymetaint"
PLIST_SUB+=	CURL="@comment "
.endif

.if ${PORT_OPTIONS:MFAAD}
LIB_DEPENDS+=	libfaad.so:${PORTSDIR}/audio/faad
PLIST_SUB+=	FAAD=""
.else
CONFIGURE_ARGS+=	--without-plugins="faad" --without-plugins="mp4"
PLIST_SUB+=	FAAD="@comment "
.endif

.if ${PORT_OPTIONS:MFAM}
USES+=		fam:gamin
PLIST_SUB+=	FAM=""
.else
CONFIGURE_ARGS+=	--without-optionals="medialib-updater"
PLIST_SUB+=	FAM="@comment "
.endif

.if ${PORT_OPTIONS:MFLAC}
LIB_DEPENDS+=	libFLAC.so:${PORTSDIR}/audio/flac
PLIST_SUB+=	FLAC=""
.else
CONFIGURE_ARGS+=	--without-plugins="flac"
PLIST_SUB+=	FLAC="@comment "
.endif

.if ${PORT_OPTIONS:MGME}
LIB_DEPENDS+=	libgme.so:${PORTSDIR}/audio/libgme
PLIST_SUB+=	GME=""
.else
CONFIGURE_ARGS+=	--without-plugins="gme"
PLIST_SUB+=	GME="@comment "
.endif

.if ${PORT_OPTIONS:MGVFS}
USE_GNOME+=	gvfs
PLIST_SUB+=	GVFS=""
.else
CONFIGURE_ARGS+=	--without-plugins="gvfs"
PLIST_SUB+=	GVFS="@comment "
.endif

.if ${PORT_OPTIONS:MICES}
LIB_DEPENDS+=	libshout.so:${PORTSDIR}/audio/libshout
PLIST_SUB+=	ICES=""
.else
CONFIGURE_ARGS+=	--without-plugins="ices"
PLIST_SUB+=	ICES="@comment "
.endif

.if ${PORT_OPTIONS:MJACK}
LIB_DEPENDS+=	libjack.so:${PORTSDIR}/audio/jack
PLIST_SUB+=	JACK=""
.else
CONFIGURE_ARGS+=	--without-plugins="jack"
PLIST_SUB+=	JACK="@comment "
.endif

.if ${PORT_OPTIONS:MMAD}
LIB_DEPENDS+=	libmad.so:${PORTSDIR}/audio/libmad
PLIST_SUB+=	MAD=""
.else
CONFIGURE_ARGS+=	--without-plugins="mad"
PLIST_SUB+=	MAD="@comment "
.endif

.if empty(PORT_OPTIONS:MMDNS)
CONFIGURE_ARGS+=	--without-optionals="mdns"
.endif

.if ${PORT_OPTIONS:MMDNS_APPLE}
CONFIGURE_ARGS+=	--with-mdns-backend="dns_sd"
LIB_DEPENDS+=	libdns_sd.so:${PORTSDIR}/net/mDNSResponder
PLIST_SUB+=	MDNS_APPLE=""
.else
PLIST_SUB+=	MDNS_APPLE="@comment "
.endif

.if ${PORT_OPTIONS:MMDNS_AVAHI}
CONFIGURE_ARGS+=	--with-mdns-backend="avahi"
LIB_DEPENDS+=	libavahi-core.so:${PORTSDIR}/net/avahi-app
PLIST_SUB+=	MDNS_AVAHI=""
MAN1+=		xmms2-mdns-avahi.1
.else
PLIST_SUB+=	MDNS_AVAHI="@comment "
.endif

.if ${PORT_OPTIONS:MMMS}
LIB_DEPENDS+=	libmms.so:${PORTSDIR}/net/libmms
PLIST_SUB+=	MMS=""
.else
CONFIGURE_ARGS+=	--without-plugins="mms"
PLIST_SUB+=	MMS="@comment "
.endif

.if ${PORT_OPTIONS:MMODPLUG}
LIB_DEPENDS+=	libmodplug.so:${PORTSDIR}/audio/libmodplug
PLIST_SUB+=	MODPLUG=""
.else
CONFIGURE_ARGS+=	--without-plugins="modplug"
PLIST_SUB+=	MODPLUG="@comment "
.endif

.if ${PORT_OPTIONS:MMPG123}
LIB_DEPENDS+=	libmpg123.so:${PORTSDIR}/audio/mpg123
PLIST_SUB+=	MPG123=""
.else
CONFIGURE_ARGS+=	--without-plugins="mpg123"
PLIST_SUB+=	MPG123="@comment "
.endif

.if ${PORT_OPTIONS:MMUSEPACK}
LIB_DEPENDS+=	libmpcdec.so:${PORTSDIR}/audio/musepack
PLIST_SUB+=	MUSEPACK=""
.else
CONFIGURE_ARGS+=	--without-plugins="musepack"
PLIST_SUB+=	MUSEPACK="@comment "
.endif

.if ${PORT_OPTIONS:MOFA}
LIB_DEPENDS+=	libofa.so:${PORTSDIR}/audio/libofa
PLIST_SUB+=	OFA=""
.else
CONFIGURE_ARGS+=	--without-plugins="ofa"
PLIST_SUB+=	OFA="@comment "
.endif

.if ${PORT_OPTIONS:MPULSEAUDIO}
LIB_DEPENDS+=	libpulse.so:${PORTSDIR}/audio/pulseaudio
PLIST_SUB+=	PULSE=""
.else
CONFIGURE_ARGS+=	--without-plugins="pulse"
PLIST_SUB+=	PULSE="@comment "
.endif

.if ${PORT_OPTIONS:MSAMBA}
LIB_DEPENDS+=	libsmbclient.so:${PORTSDIR}/net/samba-libsmbclient
PLIST_SUB+=	SAMBA=""
.else
CONFIGURE_ARGS+=	--without-plugins="samba"
PLIST_SUB+=	SAMBA="@comment "
.endif

.if ${PORT_OPTIONS:MSID}
LIB_DEPENDS+=	libsidplay2.so:${PORTSDIR}/audio/libsidplay2
PLIST_SUB+=	SID=""
.else
CONFIGURE_ARGS+=	--without-plugins="sid"
PLIST_SUB+=	SID="@comment "
.endif

.if ${PORT_OPTIONS:MSNDFILE}
LIB_DEPENDS+=	libsndfile.so:${PORTSDIR}/audio/libsndfile
PLIST_SUB+=	SNDFILE=""
.else
CONFIGURE_ARGS+=	--without-plugins="sndfile"
PLIST_SUB+=	SNDFILE="@comment "
.endif

.if ${PORT_OPTIONS:MSPEEX}
LIB_DEPENDS+=	libspeex.so:${PORTSDIR}/audio/speex
PLIST_SUB+=	SPEEX=""
.else
CONFIGURE_ARGS+=	--without-plugins="speex"
PLIST_SUB+=	SPEEX="@comment "
.endif

.if ${PORT_OPTIONS:MTREMOR}
LIB_DEPENDS+=	libvorbisidec.so:${PORTSDIR}/audio/libtremor
PLIST_SUB+=	TREMOR=""
.else
CONFIGURE_ARGS+=	--without-plugins="tremor"
PLIST_SUB+=	TREMOR="@comment "
.endif

# xmms2-ripper
.if ${PORT_OPTIONS:MVISUAL} && ${PORT_OPTIONS:MVORBIS}
LIB_DEPENDS+=	libvorbisenc.so:${PORTSDIR}/audio/libvorbis
.else
EXTRA_PATCHES+=	${FILESDIR}/extra-patch-src-clients-vistest-wscript
.endif

# XXX: shm support requires semtimedop(2)
.if ${PORT_OPTIONS:MVISUAL}
USE_SDL=	yes
LIB_DEPENDS+=	libvisual-0.4.so:${PORTSDIR}/graphics/libvisual04
.else
CONFIGURE_ARGS+=	--without-optionals="vistest"
.endif

.if ${PORT_OPTIONS:MVISUAL} && ${CONFIGURE_ARGS:M--with-vis-reference-clients}
PLIST_SUB+=	VISUAL=""
.else
PLIST_SUB+=	VISUAL="@comment "
.endif

.if ${PORT_OPTIONS:MVOCODER}
LIB_DEPENDS+=	libfftw3f.so:${PORTSDIR}/math/fftw3-float \
		libsamplerate.so:${PORTSDIR}/audio/libsamplerate
PLIST_SUB+=	VOCODER=""
.else
CONFIGURE_ARGS+=	--without-plugins="vocoder"
PLIST_SUB+=	VOCODER="@comment "
.endif

.if ${PORT_OPTIONS:MVORBIS}
LIB_DEPENDS+=	libvorbis.so:${PORTSDIR}/audio/libvorbis
PLIST_SUB+=	VORBIS=""
.else
CONFIGURE_ARGS+=	--without-plugins="vorbis"
PLIST_SUB+=	VORBIS="@comment "
.endif

.if ${PORT_OPTIONS:MWAVPACK}
LIB_DEPENDS+=	libwavpack.so:${PORTSDIR}/audio/wavpack
PLIST_SUB+=	WAVPACK=""
.else
CONFIGURE_ARGS+=	--without-plugins="wavpack"
PLIST_SUB+=	WAVPACK="@comment "
.endif

.if ${PORT_OPTIONS:MXML}
USE_GNOME+=	libxml2
PLIST_SUB+=	XML=""
.else
CONFIGURE_ARGS+=	--without-plugins="xml" --without-plugins="rss" \
		--without-plugins="xspf"
PLIST_SUB+=	XML="@comment "
.endif

.if ${PORT_OPTIONS:MET}
PLIST_SUB+=	ET=""
MAN1+=		xmms2-et.1
.else
CONFIGURE_ARGS+=	--without-optionals="et"
PLIST_SUB+=	ET="@comment "
.endif

.endif # !XMMS2_SLAVE

post-patch:
	@${REINPLACE_CMD} -e "s|%%WRKSRC%%|${WRKSRC}|" ${WRKSRC}/wscript
.if ${PORT_OPTIONS:MVISUAL} && ${PORT_OPTIONS:MVORBIS}
	@${REINPLACE_CMD} -e "s|'vorbisenc',|'vorbisenc vorbis ogg',|" \
		${WRKSRC}/src/clients/vistest/wscript
.endif

post-install:
.if !defined(XMMS2_SLAVE)
	${MKDIR} ${STAGEDIR}${DATADIR}/scripts/startup.d
.endif

.include <bsd.port.mk>
