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