Update audio/musicpd to version 0.18.8_1
[dports.git] / audio / musicpd / Makefile
1 # $FreeBSD$
2
3 PORTNAME=       musicpd
4 PORTVERSION=    0.18.8
5 PORTREVISION=   1
6 CATEGORIES=     audio ipv6
7 MASTER_SITES=   http://www.musicpd.org/download/mpd/${PORTVERSION:R}/
8 DISTNAME=       mpd-${PORTVERSION}
9
10 MAINTAINER=     crees@FreeBSD.org
11 COMMENT=        Remote-controllable music daemon
12
13 LICENSE=        GPLv2
14
15 USES=           gmake pkgconfig compiler:c++11-lib
16 USE_XZ=         yes
17 GNU_CONFIGURE=  yes
18 USE_GNOME=      glib20
19
20 USE_RC_SUBR=    ${PORTNAME}
21 CONFIGURE_ARGS+=--disable-alsa --disable-systemd-daemon --disable-roar
22 CFLAGS+=        -I${PREFIX}/include
23 CPPFLAGS+=      -I${LOCALBASE}/include
24 LDFLAGS+=       -L${LOCALBASE}/lib -L${LOCALBASE}/lib/sidplay/builders
25
26 PORTDOCS=       AUTHORS README COPYING NEWS UPGRADING
27
28 SUB_FILES=      pkg-message
29
30 OPTIONS_DEFINE= ID3TAG IPV6 ARCHIVE SAMPLERATE SQLITE3 \
31                 CDPARANOIA LAME MMS VORBISENC
32
33 OPTIONS_RADIO=  ZEROCONF
34 OPTIONS_RADIO_ZEROCONF= AVAHI MDNSRESPONDER
35
36 OPTIONS_MULTI=  FILE_FORMAT
37 OPTIONS_MULTI_FILE_FORMAT=      AAC ADPLUG FFMPEG FLAC FLUIDSYNTH \
38            GME MAD MIKMOD MODPLUG MPG123 MUSEPACK \
39            OPUS SIDPLAY2 SNDFILE TREMOR TWOLAME \
40            VORBIS WAV WAVPACK WILDMIDI
41
42 OPTIONS_GROUP=  PLAYBACK
43 OPTIONS_GROUP_PLAYBACK= AO CURL HTTPD JACK OPENAL OSS PULSEAUDIO SHOUTCAST
44
45 ADPLUG_DESC=    AdPlug support
46 FLUIDSYNTH_DESC=FludSynth support (MIDI files)
47 GME_DESC=       GME support (video game music files)
48 LAME_DESC=      Support for MP3 Icecast Streams
49 OPUS_DESC=      Opus decoder
50 SIDPLAY2_DESC=  Sidplay support (C64 mono and stereo files)
51 TREMOR_DESC=    Tremor decoder (not with SHOUTCAST; use VORBIS)
52 TWOLAME_DESC=   TwoLAME support (mp2)
53 VORBISENC_DESC= Ogg Vorbis encoder
54 WAVPACK_DESC=   WavPack support
55 WILDMIDI_DESC=  WildMIDI support (MIDI files)
56
57 OPTIONS_DEFAULT=ID3TAG IPV6 MAD OSS FLAC VORBIS WAV FFMPEG SNDFILE
58
59 AAC_CONFIGURE_ENABLE=aac
60 AAC_LIB_DEPENDS=libfaad.so:${PORTSDIR}/audio/faad
61 ADPLUG_CONFIGURE_ENABLE=adplug
62 ADPLUG_LIB_DEPENDS=libadplug.so:${PORTSDIR}/audio/libadplug
63 AO_CONFIGURE_ENABLE=ao
64 AO_LIB_DEPENDS=libao.so:${PORTSDIR}/audio/libao
65 CDPARANOIA_CONFIGURE_ENABLE=cdio-paranoia
66 CDPARANOIA_LIB_DEPENDS=libcdda_paranoia:${PORTSDIR}/audio/cdparanoia
67 CURL_CONFIGURE_ENABLE=curl
68 CURL_LIB_DEPENDS=libcurl.so:${PORTSDIR}/ftp/curl
69 FFMPEG_CONFIGURE_ENABLE=ffmpeg
70 FFMPEG_LIB_DEPENDS=     libavcodec.so:${PORTSDIR}/multimedia/ffmpeg \
71                         libavformat.so:${PORTSDIR}/multimedia/ffmpeg \
72                         libavutil.so:${PORTSDIR}/multimedia/ffmpeg
73 FLAC_CONFIGURE_ENABLE=flac
74 FLAC_LIB_DEPENDS=libFLAC.so:${PORTSDIR}/audio/flac
75 FLUIDSYNTH_CONFIGURE_ENABLE=fluidsynth
76 FLUIDSYNTH_LIB_DEPENDS=libfluidsynth.so:${PORTSDIR}/audio/fluidsynth
77 GME_CONFIGURE_ENABLE=gme
78 GME_LIB_DEPENDS=libgme.so:${PORTSDIR}/audio/libgme
79 HTTPD_CONFIGURE_ENABLE=httpd-output
80 ID3TAG_CONFIGURE_ENABLE=id3
81 ID3TAG_LIB_DEPENDS=libid3tag.so:${PORTSDIR}/audio/libid3tag
82 IPV6_CONFIGURE_ENABLE=ipv6
83 JACK_CONFIGURE_ENABLE=jack
84 JACK_LIB_DEPENDS=libjack.so:${PORTSDIR}/audio/jack
85 LAME_CONFIGURE_ENABLE=lame-encoder
86 LAME_LIB_DEPENDS=libmp3lame.so:${PORTSDIR}/audio/lame
87 MAD_CONFIGURE_ENABLE=mad
88 MAD_LIB_DEPENDS=libmad.so:${PORTSDIR}/audio/libmad
89 MIKMOD_CONFIGURE_ENABLE=mikmod
90 MIKMOD_LIB_DEPENDS=libmikmod.so:${PORTSDIR}/audio/libmikmod
91 MMS_CONFIGURE_ENABLE=mms
92 MMS_LIB_DEPENDS=libmms.so:${PORTSDIR}/net/libmms
93 MODPLUG_CONFIGURE_ENABLE=modplug
94 MODPLUG_LIB_DEPENDS=libmodplug.so:${PORTSDIR}/audio/libmodplug
95 MPG123_CONFIGURE_ENABLE=mpg123
96 MPG123_LIB_DEPENDS=libmpg123.so:${PORTSDIR}/audio/mpg123
97 MUSEPACK_CONFIGURE_ENABLE=mpc
98 MUSEPACK_LIB_DEPENDS=libmpcdec.so:${PORTSDIR}/audio/musepack
99 OPENAL_CONFIGURE_ENABLE=openal
100 OPENAL_LIB_DEPENDS=libopenal.so:${PORTSDIR}/audio/openal
101 OPUS_CONFIGURE_ENABLE=opus
102 OPUS_LIB_DEPENDS=libopus.so:${PORTSDIR}/audio/opus
103 OSS_CONFIGURE_ENABLE=oss
104 PULSEAUDIO_CONFIGURE_ENABLE=pulse
105 PULSEAUDIO_LIB_DEPENDS=libpulse.so:${PORTSDIR}/audio/pulseaudio
106 SAMPLERATE_CONFIGURE_ENABLE=lsr
107 SAMPLERATE_LIB_DEPENDS=libsamplerate.so:${PORTSDIR}/audio/libsamplerate
108 SIDPLAY2_CONFIGURE_ENABLE=sidplay
109 SIDPLAY2_LIB_DEPENDS=libsidplay2.so:${PORTSDIR}/audio/libsidplay2
110 SNDFILE_CONFIGURE_ENABLE=sndfile
111 SNDFILE_LIB_DEPENDS=libsndfile.so:${PORTSDIR}/audio/libsndfile
112 SQLITE3_CONFIGURE_ENABLE=sqlite
113 SQLITE3_LIB_DEPENDS=libsqlite3.so:${PORTSDIR}/databases/sqlite3
114 TREMOR_CONFIGURE_WITH=tremor
115 TREMOR_LIB_DEPENDS=libvorbisidec.so:${PORTSDIR}/audio/libtremor
116 TWOLAME_CONFIGURE_ENABLE=twolame-encoder
117 TWOLAME_LIB_DEPENDS=libtwolame.so:${PORTSDIR}/audio/twolame
118 VORBISENC_CONFIGURE_ENABLE=vorbis-encoder
119 VORBISENC_LIB_DEPENDS=libvorbisenc.so:${PORTSDIR}/audio/libvorbis
120 VORBIS_CONFIGURE_ENABLE=vorbis
121 VORBIS_LIB_DEPENDS=libvorbis.so:${PORTSDIR}/audio/libvorbis
122 WAV_CONFIGURE_ENABLE=audiofile
123 WAV_LIB_DEPENDS=libaudiofile.so:${PORTSDIR}/audio/libaudiofile
124 WAVPACK_CONFIGURE_ENABLE=wavpack
125 WAVPACK_LIB_DEPENDS=libwavpack.so:${PORTSDIR}/audio/wavpack
126 WILDMIDI_CONFIGURE_ENABLE=wildmidi
127 WILDMIDI_LIB_DEPENDS=libWildMidi.so:${PORTSDIR}/audio/wildmidi
128
129 MPDDIR?=        /var/mpd
130 MPDUSER?=       mpd
131 MPDGROUP?=      mpd
132
133 USERS=  ${MPDUSER}
134 GROUPS= ${MPDGROUP}
135
136 PLIST_SUB=      MPDUSER=${MPDUSER} \
137                 MPDDIR=${MPDDIR}   \
138                 MPDGROUP=${MPDGROUP}
139 SUB_LIST+=      MPDDIR=${MPDDIR}
140
141 .include <bsd.port.options.mk>
142
143 .ifdef MPDCONF
144 IGNORE=Please remove the MPDCONF line from make.conf, then rename ${PREFIX}/etc/${MPDCONF} to musicpd.conf, if it exists
145 .endif
146
147 .if exists(${PREFIX}/etc/mpd.conf)
148 MSG=You still have ${PREFIX}/etc/mpd.conf in existence-- this file is no longer used by musicpd.
149 .if !exists(${PREFIX}/etc/musicpd.conf)
150 IGNORE=${MSG}  Move it to ${PREFIX}/etc/musicpd.conf.
151 .else
152 IGNORE=${MSG}  You also have musicpd.conf-- check carefully to see which one you want, and remove mpd.conf.
153 .endif
154 .endif
155
156 .if ${PORT_OPTIONS:MARCHIVE}
157 CONFIGURE_ARGS+=--enable-bzip2 \
158                 --enable-zzip \
159                 --enable-iso9660
160 LIB_DEPENDS+=   libzzip.so:${PORTSDIR}/devel/zziplib \
161                 libiso9660.so:${PORTSDIR}/sysutils/libcdio
162 .else
163 CONFIGURE_ARGS+=--disable-bzip2 \
164                 --disable-zzip \
165                 --disable-iso9660
166 .endif
167
168 .if ${PORT_OPTIONS:MAVAHI}
169 CONFIGURE_ARGS+=--with-zeroconf=avahi
170 LIB_DEPENDS+=   libavahi-client.so:${PORTSDIR}/net/avahi-app
171 .else
172 CONFIGURE_ARGS+=--with-zeroconf=no
173 .endif
174
175 .if ${PORT_OPTIONS:MMDNSRESPONDER}
176 CONFIGURE_ARGS+=--with-zeroconf=bonjour
177 LIB_DEPENDS+=   libdns_sd.so:${PORTSDIR}/net/mDNSResponder
178 .else
179 CONFIGURE_ARGS+=--with-zeroconf=no
180 .endif
181
182 # libshout streaming support will be disabled by configure script when built
183 # also with tremor since the latter does not support vorbis encoding
184 .if ${PORT_OPTIONS:MSHOUTCAST}
185 .  if ${PORT_OPTIONS:MTREMOR}
186 IGNORE=         shoutcast and tremor do not coexist; use vorbis instead
187 .  endif
188 LIB_DEPENDS+=   libshout.so:${PORTSDIR}/audio/libshout2
189 CONFIGURE_ARGS+=--enable-vorbis-encoder \
190                 --enable-shout
191 .else
192 CONFIGURE_ARGS+=--disable-shout
193 .endif
194
195 post-patch:
196 # Replace ~/ with MPDDIR and make musicpd run as mpd by default
197         @${REINPLACE_CMD} -e 's,^#\([^"]*"\)~/,\1${MPDDIR}/,g' \
198                 -e 's,^#\(user[^"]*"\)nobody,\1${MPDUSER},g' \
199                 ${WRKSRC}/doc/mpdconf.example
200 # Uncomment OSS audio output part from MPDCONF; dragons!
201         start=$$(expr $$(${SED} -n '/^# type    *"oss"/=' \
202                 ${WRKSRC}/doc/mpdconf.example) - 1); \
203          finish=$$(for n in $$(${JOT} 10 $$start); do \
204                      [ "$$(${SED} -n $${n}p ${WRKSRC}/doc/mpdconf.example)" = \
205                                 "#}" ] && echo $$n || true; done); \
206          ${REINPLACE_CMD} -e "$${start},$${finish}s,^#,," \
207                 ${WRKSRC}/doc/mpdconf.example
208 # Fix man pages for executable names
209         @${REINPLACE_CMD} -e 's/^\(\.B m\)pd/\1usicpd/' \
210                 -e 's#^\(\.BI \)/etc/mpd.conf#\1${PREFIX}/etc/${PORTNAME}.conf#' \
211                 -e 's#^mpd.conf#${PORTNAME}.conf#' \
212                 -e 's#^mpd(1)#musicpd(1)#' \
213                 ${WRKSRC}/doc/mpd.1 ${WRKSRC}/doc/mpd.conf.5
214 .if (${OSVERSION} < 800000)
215         ${REINPLACE_CMD} -e 's/nan[f]*(\"\")/NAN/g' \
216                 ${WRKSRC}/src/crossfade.c \
217                 ${WRKSRC}/src/player_thread.c \
218                 ${WRKSRC}/src/player_control.c
219 .endif
220
221 do-install:
222         @${INSTALL_PROGRAM} ${WRKSRC}/src/mpd \
223                 ${STAGEDIR}/${PREFIX}/bin/${PORTNAME}
224         @${INSTALL_MAN} ${WRKSRC}/doc/mpd.1 \
225                 ${STAGEDIR}/${PREFIX}/man/man1/${PORTNAME}.1
226         @${INSTALL_MAN} ${WRKSRC}/doc/mpd.conf.5 \
227                 ${STAGEDIR}/${PREFIX}/man/man5/${PORTNAME}.conf.5
228         @${MKDIR} ${STAGEDIR}/${DOCSDIR}
229 .for doc in ${PORTDOCS}
230         @${INSTALL_DATA} ${WRKSRC}/${doc} ${STAGEDIR}/${DOCSDIR}/
231 .endfor
232         @${INSTALL_DATA} ${WRKSRC}/doc/mpdconf.example \
233                 ${STAGEDIR}/${PREFIX}/etc/${PORTNAME}.conf.sample
234
235 .include <bsd.port.mk>