1 # $FreeBSD: ports/audio/musicpd/Makefile,v 1.90 2013/01/03 16:36:34 svnexp Exp $
7 MASTER_SITES= SF/${PORTNAME}/mpd/${PORTVERSION}
8 DISTNAME= mpd-${PORTVERSION}
10 MAINTAINER= crees@FreeBSD.org
11 COMMENT= A remote-controllable music daemon
13 LIB_DEPENDS+= mad.2:${PORTSDIR}/audio/libmad \
14 curl.6:${PORTSDIR}/ftp/curl
24 USE_RC_SUBR= ${PORTNAME}
25 CPPFLAGS+= -I${LOCALBASE}/include
26 LDFLAGS+= -L${LOCALBASE}/lib
28 CFLAGS+= -I${PREFIX}/include
33 DOCSDIR?= ${PREFIX}/share/doc/musicpd
34 PORTDOCS= AUTHORS README COPYING NEWS UPGRADING
36 SUB_FILES= pkg-message
38 OPTIONS_DEFINE= ID3TAG IPV6 AVAHI FLAC VORBIS WAV FFMPEG TREMOR AAC \
39 MUSEPACK MIKMOD MODPLUG ARCHIVE MMS LASTFM AO PULSEAUDIO \
40 JACK SHOUTCAST SNDFILE LAME HTTPD SAMPLERATE CUE
42 OPTIONS_DEFAULT=ID3TAG IPV6 FLAC VORBIS WAV FFMPEG SNDFILE
43 LAME_DESC= Support for MP3 Icecast Streams
48 MPDCONF?= musicpd.conf
53 PLIST_SUB= MPDCONF=${MPDCONF} \
57 SUB_LIST+= MPDDIR=${MPDDIR} \
60 .include <bsd.port.options.mk>
62 .if ${PORT_OPTIONS:MFLAC}
63 LIB_DEPENDS+= FLAC.10:${PORTSDIR}/audio/flac
65 CONFIGURE_ARGS+=--disable-flac \
69 .if ${PORT_OPTIONS:MVORBIS}
70 LIB_DEPENDS+= vorbis.4:${PORTSDIR}/audio/libvorbis
72 CONFIGURE_ARGS+=--disable-vorbis
75 .if ${PORT_OPTIONS:MTREMOR}
76 CONFIGURE_ARGS+=--with-tremor
77 LIB_DEPENDS+= vorbisidec.1:${PORTSDIR}/audio/libtremor
80 .if ${PORT_OPTIONS:MAAC}
81 LIB_DEPENDS+= faad.2:${PORTSDIR}/audio/faad
83 CONFIGURE_ARGS+=--disable-aac
86 .if ${PORT_OPTIONS:MLAME}
87 CONFIGURE_ARGS+=--enable-lame-encoder
88 LIB_DEPENDS+= mp3lame.0:${PORTSDIR}/audio/lame
90 CONFIGURE_ARGS+=--disable-lame-encoder
93 .if ${PORT_OPTIONS:MHTTPD}
94 CONFIGURE_ARGS+=--enable-httpd-output
96 CONFIGURE_ARGS+=--disable-httpd-output
99 .if ${PORT_OPTIONS:MWAV}
100 LIB_DEPENDS+= audiofile.0:${PORTSDIR}/audio/libaudiofile
102 CONFIGURE_ARGS+=--disable-audiofile
105 .if ${PORT_OPTIONS:MMUSEPACK}
106 LIB_DEPENDS+= mpcdec.7:${PORTSDIR}/audio/musepack
108 CONFIGURE_ARGS+=--disable-mpc
111 .if ${PORT_OPTIONS:MMIKMOD}
112 LIB_DEPENDS+= mikmod.2:${PORTSDIR}/audio/libmikmod
113 CONFIGURE_ARGS+=--enable-mikmod
115 CONFIGURE_ARGS+=--disable-mikmod
118 .if ${PORT_OPTIONS:MMODPLUG}
119 LIB_DEPENDS+= modplug.1:${PORTSDIR}/audio/libmodplug
120 CONFIGURE_ARGS+=--enable-modplug
122 CONFIGURE_ARGS+=--disable-modplug
125 .if ${PORT_OPTIONS:MARCHIVE}
126 CONFIGURE_ARGS+=--enable-bzip2 \
129 LIB_DEPENDS+= zzip.13:${PORTSDIR}/devel/zziplib \
130 iso9660.8:${PORTSDIR}/sysutils/libcdio
133 .if ${PORT_OPTIONS:MFFMPEG}
134 LIB_DEPENDS+= avcodec.1:${PORTSDIR}/multimedia/ffmpeg \
135 avformat:${PORTSDIR}/multimedia/ffmpeg \
136 avutil.1:${PORTSDIR}/multimedia/ffmpeg
138 CONFIGURE_ARGS+=--disable-ffmpeg
141 .if ${PORT_OPTIONS:MLASTFM}
142 CONFIGURE_ARGS+=--enable-lastfm
144 CONFIGURE_ARGS+=--disable-lastfm
147 .if ${PORT_OPTIONS:MMMS}
148 CONFIGURE_ARGS+=--enable-mms
149 LIB_DEPENDS+= mms.0:${PORTSDIR}/net/libmms
151 CONFIGURE_ARGS+=--disable-mms
154 .if ${PORT_OPTIONS:MID3TAG}
155 LIB_DEPENDS+= id3tag.0:${PORTSDIR}/audio/libid3tag
157 CONFIGURE_ARGS+=--disable-id3
160 .if empty(PORT_OPTIONS:MIPV6)
161 CONFIGURE_ARGS+=--disable-ipv6
164 .if ${PORT_OPTIONS:MAVAHI}
165 CONFIGURE_ARGS+=--with-zeroconf=avahi
166 LIB_DEPENDS+= avahi-client.3:${PORTSDIR}/net/avahi-app
168 CONFIGURE_ARGS+=--with-zeroconf=no
171 .if ${PORT_OPTIONS:MAO}
172 CONFIGURE_ARGS+=--enable-ao
173 LIB_DEPENDS+= ao.4:${PORTSDIR}/audio/libao
175 CONFIGURE_ARGS+=--disable-ao
178 .if ${PORT_OPTIONS:MPULSEAUDIO}
179 LIB_DEPENDS+= pulse.0:${PORTSDIR}/audio/pulseaudio
181 CONFIGURE_ARGS+=--disable-pulse
184 .if ${PORT_OPTIONS:MJACK}
185 LIB_DEPENDS+= jack.0:${PORTSDIR}/audio/jack
187 CONFIGURE_ARGS+=--disable-jack
190 # libshout streaming support will be disabled by configure script when built
191 # also with tremor since the latter does not support vorbis encoding
192 .if ${PORT_OPTIONS:MSHOUTCAST}
193 . if ${PORT_OPTIONS:MTREMOR}
194 IGNORE= shoutcast and tremor do not coexist; use vorbis instead
196 LIB_DEPENDS+= shout.5:${PORTSDIR}/audio/libshout2
197 CONFIGURE_ARGS+=--enable-vorbis-encoder \
200 CONFIGURE_ARGS+=--disable-shout
203 .if ${PORT_OPTIONS:MSNDFILE}
204 LIB_DEPENDS+= sndfile.1:${PORTSDIR}/audio/libsndfile
205 CONFIGURE_ARGS+= --enable-sndfile
207 CONFIGURE_ARGS+= --disable-sndfile
210 .if ${PORT_OPTIONS:MSAMPLERATE}
211 LIB_DEPENDS+= samplerate.1:${PORTSDIR}/audio/libsamplerate
212 CONFIGURE_ARGS+=--enable-lsr
214 CONFIGURE_ARGS+=--disable-lsr
217 .if ${PORT_OPTIONS:MCUE}
218 CONFIGURE_ARGS+=--enable-cue
219 LIB_DEPENDS+= cue:${PORTSDIR}/textproc/libcue
221 CONFIGURE_ARGS+=--disable-cue
224 .if ${MPDCONF} != musicpd.conf
226 @${ECHO_MSG} "Looks as though you're using a non-default value for MPDCONF."
227 @${ECHO_MSG} "This is deprecated, and some time in the near future the only value permissible"
228 @${ECHO_MSG} "for MPDCONF will be the default; musicpd.conf."
229 @${ECHO_MSG} -n "Continuing in "
230 @for s in 5 4 3 2 1 ; do ${ECHO_MSG} -n "$$s... " && sleep 1 ; done
235 # Replace ~/ with MPDDIR and make musicpd run as mpd by default
236 @${REINPLACE_CMD} -e 's,^#\([^"]*"\)~/,\1${MPDDIR}/,g' \
237 -e 's,^#\(user[^"]*"\)nobody,\1${MPDUSER},g' \
238 ${WRKSRC}/doc/mpdconf.example
239 # Uncomment OSS audio output part from MPDCONF; dragons!
240 start=$$(expr $$(${SED} -n '/^# type *"oss"/=' \
241 ${WRKSRC}/doc/mpdconf.example) - 1); \
242 finish=$$(for n in $$(${JOT} 10 $$start); do \
243 [ "$$(${SED} -n $${n}p ${WRKSRC}/doc/mpdconf.example)" = \
244 "#}" ] && echo $$n || true; done); \
245 ${REINPLACE_CMD} -e "$${start},$${finish}s,^#,," \
246 ${WRKSRC}/doc/mpdconf.example
247 # Fix man pages for executable names
248 @${REINPLACE_CMD} -e 's/^\(\.B m\)pd/\1usicpd/' \
249 -e 's#^\(\.BI \)/etc/mpd.conf#\1${PREFIX}/etc/${MPDCONF}#' \
250 -e 's#^mpd.conf#${MPDCONF}#' \
251 -e 's#^mpd(1)#musicpd(1)#' \
252 ${WRKSRC}/doc/mpd.1 ${WRKSRC}/doc/mpd.conf.5
253 .if (${OSVERSION} < 800000)
254 ${REINPLACE_CMD} -e 's/nan[f]*(\"\")/NAN/g' \
255 ${WRKSRC}/src/crossfade.c \
256 ${WRKSRC}/src/player_thread.c \
257 ${WRKSRC}/src/player_control.c
261 @${INSTALL_PROGRAM} ${WRKSRC}/src/mpd ${PREFIX}/bin/${PORTNAME}
262 @${INSTALL_MAN} ${WRKSRC}/doc/mpd.1 ${MAN1PREFIX}/man/man1/${PORTNAME}.1
263 @${INSTALL_MAN} ${WRKSRC}/doc/mpd.conf.5 \
264 ${MAN5PREFIX}/man/man5/${MPDCONF}.5
265 .if ${PORT_OPTIONS:MDOCS}
267 . for doc in ${PORTDOCS}
268 @${INSTALL_DATA} ${WRKSRC}/${doc} ${DOCSDIR}/
273 @${INSTALL_DATA} ${WRKSRC}/doc/mpdconf.example ${PREFIX}/etc/${MPDCONF}.sample
274 @if [ ! -f ${PREFIX}/etc/${MPDCONF} ]; then \
275 ${CP} -p ${PREFIX}/etc/${MPDCONF}.sample \
276 ${PREFIX}/etc/${MPDCONF} ; \
278 @${INSTALL} -d -o ${MPDUSER} -g ${MPDGROUP} ${MPDDIR} ${MPDDIR}/.mpd
280 @${CAT} ${PKGMESSAGE}
283 .include <bsd.port.mk>