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