Tweak audio/musicpd version 0.17.3_2
[dports.git] / audio / musicpd / Makefile
1 # $FreeBSD: audio/musicpd/Makefile 330909 2013-10-19 16:43:32Z wg $
2
3 PORTNAME=       musicpd
4 PORTVERSION=    0.17.3
5 PORTREVISION=   2
6 CATEGORIES=     audio ipv6
7 MASTER_SITES=   SF/${PORTNAME}/mpd/${PORTVERSION}
8 DISTNAME=       mpd-${PORTVERSION}
9
10 MAINTAINER=     crees@FreeBSD.org
11 COMMENT=        Remote-controllable music daemon
12
13 LIB_DEPENDS+=   mad.2:${PORTSDIR}/audio/libmad \
14                 curl:${PORTSDIR}/ftp/curl
15
16 LICENSE=        GPLv2
17
18 USE_STAGE=      yes
19 NO_STAGE=       yes
20 USES=           gmake pkgconfig
21 USE_BZIP2=      yes
22 GNU_CONFIGURE=  yes
23 USE_GNOME=      glib20
24
25 USE_RC_SUBR=    ${PORTNAME}
26 CPPFLAGS+=      -I${LOCALBASE}/include
27 LDFLAGS+=       -L${LOCALBASE}/lib
28
29 CFLAGS+=        -I${PREFIX}/include
30
31 MAN1=           ${PORTNAME}.1
32 MAN5=           ${PORTNAME}.conf.5
33
34 DOCSDIR?=       ${PREFIX}/share/doc/musicpd
35 PORTDOCS=       AUTHORS README COPYING NEWS UPGRADING
36
37 SUB_FILES=      pkg-message
38
39 OPTIONS_DEFINE= ID3TAG IPV6 FLAC VORBIS WAV FFMPEG TREMOR AAC \
40                 MUSEPACK MIKMOD MODPLUG ARCHIVE MMS LASTFM AO PULSEAUDIO \
41                 JACK SHOUTCAST SNDFILE LAME HTTPD SAMPLERATE SQLITE3
42 OPTIONS_RADIO=  ZEROCONF
43 OPTIONS_RADIO_ZEROCONF= AVAHI MDNSRESPONDER
44
45 TREMOR_DESC=    Tremor decoder (not with SHOUTCAST; use VORBIS)
46
47 OPTIONS_DEFAULT=ID3TAG IPV6 FLAC VORBIS WAV FFMPEG SNDFILE
48 LAME_DESC=      Support for MP3 Icecast Streams
49
50 MPDDIR?=        /var/mpd
51 MPDUSER?=       mpd
52 MPDGROUP?=      mpd
53
54 USERS=  ${MPDUSER}
55 GROUPS= ${MPDGROUP}
56
57 PLIST_SUB=      MPDUSER=${MPDUSER} \
58                 MPDDIR=${MPDDIR}   \
59                 MPDGROUP=${MPDGROUP}
60 SUB_LIST+=      MPDDIR=${MPDDIR}
61
62 .include <bsd.port.options.mk>
63
64 .ifdef MPDCONF
65 .error Please remove the MPDCONF line from make.conf, then rename ${PREFIX}/etc/${MPDCONF} to musicpd.conf, if it exists
66 .endif
67
68 .include <bsd.port.pre.mk>
69
70 .if exists(${PREFIX}/etc/mpd.conf)
71 MSG=You still have ${PREFIX}/etc/mpd.conf in existence-- this file is no longer used by musicpd.
72 .if !exists(${PREFIX}/etc/musicpd.conf)
73 .error ${MSG}  Move it to ${PREFIX}/etc/musicpd.conf.
74 .else
75 .error ${MSG}  You also have musicpd.conf-- check carefully to see which one you want, and remove mpd.conf.
76 .endif
77 .endif
78
79 .if ${PORT_OPTIONS:MFLAC}
80 LIB_DEPENDS+=   FLAC:${PORTSDIR}/audio/flac
81 .else
82 CONFIGURE_ARGS+=--disable-flac \
83                 --disable-oggflac
84 .endif
85
86 .if ${PORT_OPTIONS:MVORBIS}
87 LIB_DEPENDS+=   vorbis.4:${PORTSDIR}/audio/libvorbis
88 .else
89 CONFIGURE_ARGS+=--disable-vorbis
90 .endif
91
92 .if ${PORT_OPTIONS:MTREMOR}
93 CONFIGURE_ARGS+=--with-tremor
94 LIB_DEPENDS+=   vorbisidec.1:${PORTSDIR}/audio/libtremor
95 .endif
96
97 .if ${PORT_OPTIONS:MAAC}
98 LIB_DEPENDS+=   faad.2:${PORTSDIR}/audio/faad
99 .else
100 CONFIGURE_ARGS+=--disable-aac
101 .endif
102
103 .if ${PORT_OPTIONS:MLAME}
104 CONFIGURE_ARGS+=--enable-lame-encoder
105 LIB_DEPENDS+=   mp3lame.0:${PORTSDIR}/audio/lame
106 .else
107 CONFIGURE_ARGS+=--disable-lame-encoder
108 .endif
109
110 .if ${PORT_OPTIONS:MHTTPD}
111 CONFIGURE_ARGS+=--enable-httpd-output
112 .else
113 CONFIGURE_ARGS+=--disable-httpd-output
114 .endif
115
116 .if ${PORT_OPTIONS:MWAV}
117 LIB_DEPENDS+=   audiofile.0:${PORTSDIR}/audio/libaudiofile
118 .else
119 CONFIGURE_ARGS+=--disable-audiofile
120 .endif
121
122 .if ${PORT_OPTIONS:MMUSEPACK}
123 LIB_DEPENDS+=   mpcdec.7:${PORTSDIR}/audio/musepack
124 .else
125 CONFIGURE_ARGS+=--disable-mpc
126 .endif
127
128 .if ${PORT_OPTIONS:MMIKMOD}
129 LIB_DEPENDS+=   mikmod.2:${PORTSDIR}/audio/libmikmod
130 CONFIGURE_ARGS+=--enable-mikmod
131 .else
132 CONFIGURE_ARGS+=--disable-mikmod
133 .endif
134
135 .if ${PORT_OPTIONS:MMODPLUG}
136 LIB_DEPENDS+=   modplug.1:${PORTSDIR}/audio/libmodplug
137 CONFIGURE_ARGS+=--enable-modplug
138 .else
139 CONFIGURE_ARGS+=--disable-modplug
140 .endif
141
142 .if ${PORT_OPTIONS:MARCHIVE}
143 CONFIGURE_ARGS+=--enable-bzip2 \
144                 --enable-zip \
145                 --enable-iso9660
146 LIB_DEPENDS+=   zzip.13:${PORTSDIR}/devel/zziplib \
147                 iso9660.8:${PORTSDIR}/sysutils/libcdio
148 .endif
149
150 .if ${PORT_OPTIONS:MFFMPEG}
151 LIB_DEPENDS+=   libavcodec.so:${PORTSDIR}/multimedia/ffmpeg \
152                 libavformat.so:${PORTSDIR}/multimedia/ffmpeg \
153                 libavutil.so:${PORTSDIR}/multimedia/ffmpeg
154 .else
155 CONFIGURE_ARGS+=--disable-ffmpeg
156 .endif
157
158 .if ${PORT_OPTIONS:MLASTFM}
159 CONFIGURE_ARGS+=--enable-lastfm
160 .else
161 CONFIGURE_ARGS+=--disable-lastfm
162 .endif
163
164 .if ${PORT_OPTIONS:MMMS}
165 CONFIGURE_ARGS+=--enable-mms
166 LIB_DEPENDS+=   mms.0:${PORTSDIR}/net/libmms
167 .else
168 CONFIGURE_ARGS+=--disable-mms
169 .endif
170
171 .if ${PORT_OPTIONS:MID3TAG}
172 LIB_DEPENDS+=   id3tag.0:${PORTSDIR}/audio/libid3tag
173 .else
174 CONFIGURE_ARGS+=--disable-id3
175 .endif
176
177 .if ${PORT_OPTIONS:MIPV6}
178 CONFIGURE_ARGS+=--enable-ipv6
179 .else
180 CONFIGURE_ARGS+=--disable-ipv6
181 .endif
182
183 .if ${PORT_OPTIONS:MAVAHI}
184 CONFIGURE_ARGS+=--with-zeroconf=avahi
185 LIB_DEPENDS+=   avahi-client.3:${PORTSDIR}/net/avahi-app
186 .else
187 CONFIGURE_ARGS+=--with-zeroconf=no
188 .endif
189
190 .if ${PORT_OPTIONS:MMDNSRESPONDER}
191 CONFIGURE_ARGS+=--with-zeroconf=bonjour
192 LIB_DEPENDS+=   dns_sd:${PORTSDIR}/net/mDNSResponder
193 .else
194 CONFIGURE_ARGS+=--with-zeroconf=no
195 .endif
196
197 .if ${PORT_OPTIONS:MAO}
198 CONFIGURE_ARGS+=--enable-ao
199 LIB_DEPENDS+=   ao.4:${PORTSDIR}/audio/libao
200 .else
201 CONFIGURE_ARGS+=--disable-ao
202 .endif
203
204 .if ${PORT_OPTIONS:MPULSEAUDIO}
205 LIB_DEPENDS+=   pulse.0:${PORTSDIR}/audio/pulseaudio
206 .else
207 CONFIGURE_ARGS+=--disable-pulse
208 .endif
209
210 .if ${PORT_OPTIONS:MJACK}
211 LIB_DEPENDS+=   jack.0:${PORTSDIR}/audio/jack
212 .else
213 CONFIGURE_ARGS+=--disable-jack
214 .endif
215
216 # libshout streaming support will be disabled by configure script when built
217 # also with tremor since the latter does not support vorbis encoding
218 .if ${PORT_OPTIONS:MSHOUTCAST}
219 .  if ${PORT_OPTIONS:MTREMOR}
220 IGNORE=         shoutcast and tremor do not coexist; use vorbis instead
221 .  endif
222 LIB_DEPENDS+=   shout.5:${PORTSDIR}/audio/libshout2
223 CONFIGURE_ARGS+=--enable-vorbis-encoder \
224                 --enable-shout
225 .else
226 CONFIGURE_ARGS+=--disable-shout
227 .endif
228
229 .if ${PORT_OPTIONS:MSNDFILE}
230 LIB_DEPENDS+=   sndfile.1:${PORTSDIR}/audio/libsndfile
231 CONFIGURE_ARGS+=        --enable-sndfile
232 .else
233 CONFIGURE_ARGS+=        --disable-sndfile
234 .endif
235
236 .if ${PORT_OPTIONS:MSAMPLERATE}
237 LIB_DEPENDS+=   samplerate.1:${PORTSDIR}/audio/libsamplerate
238 CONFIGURE_ARGS+=--enable-lsr
239 .else
240 CONFIGURE_ARGS+=--disable-lsr
241 .endif
242
243 .if ${PORT_OPTIONS:MSQLITE3}
244 LIB_DEPENDS+=   sqlite3:${PORTSDIR}/databases/sqlite3
245 CONFIGURE_ARGS+=--enable-sqlite
246 .else
247 CONFIGURE_ARGS+=--disable-sqlite
248 .endif
249
250 post-patch:
251 # Replace ~/ with MPDDIR and make musicpd run as mpd by default
252         @${REINPLACE_CMD} -e 's,^#\([^"]*"\)~/,\1${MPDDIR}/,g' \
253                 -e 's,^#\(user[^"]*"\)nobody,\1${MPDUSER},g' \
254                 ${WRKSRC}/doc/mpdconf.example
255 # Uncomment OSS audio output part from MPDCONF; dragons!
256         start=$$(expr $$(${SED} -n '/^# type    *"oss"/=' \
257                 ${WRKSRC}/doc/mpdconf.example) - 1); \
258          finish=$$(for n in $$(${JOT} 10 $$start); do \
259                      [ "$$(${SED} -n $${n}p ${WRKSRC}/doc/mpdconf.example)" = \
260                                 "#}" ] && echo $$n || true; done); \
261          ${REINPLACE_CMD} -e "$${start},$${finish}s,^#,," \
262                 ${WRKSRC}/doc/mpdconf.example
263 # Fix man pages for executable names
264         @${REINPLACE_CMD} -e 's/^\(\.B m\)pd/\1usicpd/' \
265                 -e 's#^\(\.BI \)/etc/mpd.conf#\1${PREFIX}/etc/${PORTNAME}.conf#' \
266                 -e 's#^mpd.conf#${PORTNAME}.conf#' \
267                 -e 's#^mpd(1)#musicpd(1)#' \
268                 ${WRKSRC}/doc/mpd.1 ${WRKSRC}/doc/mpd.conf.5
269 .if (${OSVERSION} < 800000)
270         ${REINPLACE_CMD} -e 's/nan[f]*(\"\")/NAN/g' \
271                 ${WRKSRC}/src/crossfade.c \
272                 ${WRKSRC}/src/player_thread.c \
273                 ${WRKSRC}/src/player_control.c
274 .endif
275
276 do-install:
277         @${INSTALL_PROGRAM} ${WRKSRC}/src/mpd ${PREFIX}/bin/${PORTNAME}
278         @${INSTALL_MAN} ${WRKSRC}/doc/mpd.1 ${MAN1PREFIX}/man/man1/${PORTNAME}.1
279         @${INSTALL_MAN} ${WRKSRC}/doc/mpd.conf.5 \
280                 ${MAN5PREFIX}/man/man5/${PORTNAME}.conf.5
281 .if ${PORT_OPTIONS:MDOCS}
282         @${MKDIR} ${DOCSDIR}
283 .   for doc in ${PORTDOCS}
284         @${INSTALL_DATA} ${WRKSRC}/${doc} ${DOCSDIR}/
285 .   endfor
286 .endif
287
288 post-install:
289         @${INSTALL_DATA} ${WRKSRC}/doc/mpdconf.example ${PREFIX}/etc/${PORTNAME}.conf.sample
290         @if [ ! -f ${PREFIX}/etc/${PORTNAME}.conf ]; then \
291                 ${CP} -p ${PREFIX}/etc/${PORTNAME}.conf.sample \
292                         ${PREFIX}/etc/${PORTNAME}.conf ; \
293         fi
294         @${INSTALL} -d -o ${MPDUSER} -g ${MPDGROUP} ${MPDDIR} ${MPDDIR}/.mpd
295         @${ECHO_MSG}
296         @${CAT} ${PKGMESSAGE}
297         @${ECHO_MSG}
298
299 .include <bsd.port.post.mk>