Tweak multimedia/mlt version 6.4.1_2
[dports.git] / multimedia / vlc / Makefile
1 # Created by: Brian Somers <brian@FreeBSD.org>
2 # $FreeBSD$
3
4 PORTNAME=       vlc
5 DISTVERSION=    2.2.4
6 PORTREVISION=   5
7 PORTEPOCH=      4
8 CATEGORIES=     multimedia audio ipv6 net www
9 MASTER_SITES=   http://download.videolan.org/pub/videolan/${PORTNAME}/${DISTVERSION:S/a$//}/ \
10                 http://ftp.snt.utwente.nl/pub/software/videolan/${PORTNAME}/${DISTVERSION:S/a$//}/ \
11                 ftp://ftp.crans.org/pub/videolan/${PORTNAME}/${DISTVERSION:S/a$//}/
12
13 MAINTAINER=     multimedia@FreeBSD.org
14 COMMENT?=       Qt based multimedia player and streaming server
15
16 LICENSE=        GPLv2
17
18 LIB_DEPENDS=    libgcrypt.so:security/libgcrypt \
19                 libdvbpsi.so:multimedia/libdvbpsi \
20                 libfontconfig.so:x11-fonts/fontconfig \
21                 libfreetype.so:print/freetype2 \
22                 libidn.so:dns/libidn
23 BUILD_DEPENDS=  ffmpeg>=2.0:multimedia/ffmpeg \
24                 yasm:devel/yasm
25 RUN_DEPENDS=    ffmpeg>=2.0:multimedia/ffmpeg
26
27 USES=           compiler:c11 desktop-file-utils gmake iconv libtool pathfix \
28                 pkgconfig tar:xz
29 USE_GNOME=      libxml2
30 USE_LDCONFIG=   yes
31 INSTALL_TARGET= install-strip
32
33 CONFLICTS?=     vlc-qt4-*
34
35 GNU_CONFIGURE=  yes
36 CONFIGURE_ARGS= --enable-avcodec --enable-avformat --enable-dvbpsi \
37                 --enable-fontconfig --enable-freetype --enable-libgcrypt \
38                 --enable-libxml2 --disable-oss --enable-postproc \
39                 --enable-swscale --enable-vlc \
40                 --disable-alsa --disable-chromaprint --disable-crystalhd \
41                 --disable-dc1394 --disable-decklink --disable-directfb \
42                 --disable-dv1394 --disable-egl --disable-fdkaac \
43                 --disable-gles1 --disable-gles2 --disable-kai --disable-kva \
44                 --disable-libvnc --disable-opencv --disable-projectm \
45                 --disable-quicksync --disable-telx \
46                 --disable-tiger --disable-tremor --disable-udev \
47                 --disable-update-check --disable-vcdx --disable-vsxu \
48                 --disable-wasapi --disable-x26410b \
49                 --with-kde-solid=${PREFIX}/share/apps/solid/actions \
50                 ac_cv_search_pthread_rwlock_init=-pthread
51 .if defined(WITH_DEBUG) && !defined(WITHOUT_DEBUG)
52 CONFIGURE_ARGS+=--enable-debug
53 .endif
54 CPPFLAGS+=      -I${LOCALBASE}/include
55 CFLAGS_i386=    -fomit-frame-pointer
56 LIBS+=          -L${LOCALBASE}/lib
57
58 OPTIONS_DEFINE= A52 AALIB ASS AVAHI CACA DBUS DCA DIRAC DOCS DVDREAD \
59                 DVDNAV FAAD FLAC FLUID FRIBIDI GME GNOMEVFS2 GNUTLS \
60                 GOOM HTTPD JACK KATE LIBBLURAY LIBRSVG2 LIBSSH2 LIRC \
61                 LIVEMEDIA LUA MAD MATROSKA MODPLUG \
62                 MPEG2 MTP MUSEPACK NCURSES NLS NOTIFY OGG OPTIMIZED_CFLAGS \
63                 OPUS PNG PULSEAUDIO QT4 QT5 REALRTSP RUNROOT SAMPLERATE \
64                 SCHROEDINGER SDL SHOUTCAST SKINS SMB SNDIO STREAM SPEEX \
65                 TAGLIB THEORA TWOLAME UPNP V4L VAAPI VCD VDPAU VORBIS \
66                 X11 X264 X265 ZVBI
67 OPTIONS_DEFAULT=A52 AVAHI DBUS DCA DVDREAD DVDNAV FAAD FLAC GNUTLS \
68                 HTTPD LIVEMEDIA LUA MAD MATROSKA MPEG2 OGG OPTIMIZED_CFLAGS \
69                 OPUS PNG QT5 SAMPLERATE STREAM SPEEX TAGLIB THEORA TWOLAME V4L \
70                 VAAPI VCD VDPAU VORBIS X11
71 OPTIONS_SUB=    yes
72
73 ASS_DESC=       ASS/SSA subtitle rendering
74 DVDREAD_DESC=   DVD Playback support
75 DVDNAV_DESC=    DVD menu navigation
76 FLUID_DESC=     Fluidsynth MIDI support
77 FREERDP_DESC=   RDP support
78 GME_DESC=       Game Music Emu (libgme) support
79 GOOM_DESC=      Goom visualisation plugin
80 KATE_DESC=      Kate codec support
81 LIBSSH2_DESC=   SCP/SFTP support via libssh2
82 REALRTSP_DESC=  Real RTSP access module
83 RUNROOT_DESC=   Enable running as root
84 SIDPLAY_DESC=   C64 sid demux support
85 SKINS_DESC=     Skins interface module
86 STREAM_DESC=    stream output
87 TAGLIB_DESC=    ID3 tag and Ogg comment support
88 VCD_DESC=       Audio/Video CD support
89 ZVBI_DESC=      VBI decoding support
90
91 A52_CONFIGURE_ENABLE=   a52
92 A52_CONFIGURE_ON=       --with-a52=${LOCALBASE}
93 A52_LIB_DEPENDS=        liba52.so:audio/liba52
94
95 AALIB_LIB_DEPENDS=      libaa.so:graphics/aalib
96 AALIB_CONFIGURE_ENABLE= aa
97
98 ASS_LIB_DEPENDS=        libass.so:multimedia/libass
99 ASS_CONFIGURE_ENABLE=   libass
100
101 AVAHI_LIB_DEPENDS=      libavahi-common.so:net/avahi-app
102 AVAHI_CONFIGURE_ENABLE= bonjour
103
104 CACA_LIB_DEPENDS=       libcaca.so:graphics/libcaca
105 CACA_CONFIGURE_ENABLE=  caca
106
107 DBUS_LIB_DEPENDS=       libdbus-1.so:devel/dbus
108 DBUS_CONFIGURE_ENABLE=  dbus
109
110 DCA_LIB_DEPENDS=        libdca.so:multimedia/libdca
111 DCA_CONFIGURE_ENABLE=   dca
112
113 DIRAC_LIB_DEPENDS=      libdirac_decoder.so:multimedia/dirac
114 DIRAC_CONFIGURE_ENABLE= dirac
115
116 DVDREAD_LIB_DEPENDS=    libdvdread.so:multimedia/libdvdread
117 DVDREAD_CONFIGURE_ENABLE=       dvdread
118
119 DVDNAV_LIB_DEPENDS=     libdvdnav.so:multimedia/libdvdnav
120 DVDNAV_CONFIGURE_ENABLE=dvdnav
121
122 FAAD_LIB_DEPENDS=       libfaad.so:audio/faad
123 FAAD_CONFIGURE_ENABLE=  faad
124 FAAD_CONFIGURE_ENV=     CPPFLAGS_faad="-I${LOCALBASE}/include" \
125                         LIBS_faad="-L${LOCALBASE}/lib"
126
127 FLAC_LIB_DEPENDS=       libFLAC.so:audio/flac
128 FLAC_CONFIGURE_ENABLE=  flac
129
130 FLUID_LIB_DEPENDS=      libfluidsynth.so:audio/fluidsynth
131 FLUID_CONFIGURE_ENABLE= fluidsynth
132
133 # XXX vlc doesn't seem to like the freerdp version in ports
134 #FREERDP_LIB_DEPENDS=   libfreerdp-core.so:net/freerdp
135 #FREERDP_CONFIGURE_ENABLE=      libfreerdp
136 CONFIGURE_ARGS+=        -disable-freerdp
137
138 FRIBIDI_LIB_DEPENDS=    libfribidi.so:converters/fribidi
139 FRIBIDI_CONFIGURE_ENABLE=       fribidi
140
141 GME_LIB_DEPENDS=        libgme.so:audio/libgme
142 GME_CONFIGURE_ENABLE=   gme
143 GME_CONFIGURE_ENV=      LIBS_gme="-L${LOCALBASE}/lib -lgme"
144
145 GNOMEVFS2_USE=                  GNOME=gnomevfs2
146 GNOMEVFS2_CONFIGURE_ENABLE=     gnomevfs
147
148 GNUTLS_LIB_DEPENDS=     libgnutls.so:security/gnutls
149 GNUTLS_CONFIGURE_ENABLE=gnutls
150
151 GOOM_LIB_DEPENDS=       libgoom2.so:graphics/goom
152 GOOM_CONFIGURE_ENABLE=  goom
153
154 HTTPD_CONFIGURE_ENABLE= httpd
155
156 JACK_LIB_DEPENDS=       libjack.so:audio/jack
157 JACK_CONFIGURE_ENABLE=  jack
158
159 KATE_LIB_DEPENDS=       libkate.so:multimedia/libkate
160 KATE_CONFIGURE_ENABLE=  kate
161
162 LIBBLURAY_LIB_DEPENDS=  libbluray.so:multimedia/libbluray
163 LIBBLURAY_CONFIGURE_ENABLE=     bluray
164
165 LIBRSVG2_USE=                   GNOME=librsvg2
166 LIBRSVG2_CONFIGURE_ENABLE=      svg
167
168 LIBSSH2_LIB_DEPENDS=    libssh2.so:security/libssh2
169 LIBSSH2_CONFIGURE_ENABLE=       sftp
170
171 LIRC_LIB_DEPENDS=       liblirc_client.so:comms/lirc
172 LIRC_CONFIGURE_ENABLE=  lirc
173 LIRC_CONFIGURE_ENV=     LIBS_lirc="-L${LOCALBASE}/lib -llirc_client"
174
175 LIVEMEDIA_LIB_DEPENDS=  libliveMedia.so:net/liveMedia
176 LIVEMEDIA_CONFIGURE_ENABLE=     live555
177 LIVEMEDIA_CONFIGURE_ENV= \
178         LIVE555_CFLAGS="-I${LOCALBASE}/include/liveMedia \
179                         -I${LOCALBASE}/include/UsageEnvironment \
180                         -I${LOCALBASE}/include/groupsock \
181                         -I${LOCALBASE}/include/BasicUsageEnvironment" \
182         LIVE555_LIBS="-L${LOCALBASE}/lib -lliveMedia \
183                         -lgroupsock -lBasicUsageEnvironment \
184                         -lUsageEnvironment"
185
186 LUA_USES=               lua
187 LUA_CONFIGURE_ENABLE=   lua
188 LUA_CONFIGURE_ON=       LUAC=${LUAC_CMD} LUA_CFLAGS="-I${LUA_INCDIR}" \
189                         LUA_LIBS="-L${LUA_LIBDIR} -llua-${LUA_VER}"
190
191 MAD_LIB_DEPENDS=        libmad.so:audio/libmad
192 MAD_CONFIGURE_ENABLE=   mad
193 MAD_CONFIGURE_ON=       --with-mad=${LOCALBASE}
194
195 MATROSKA_LIB_DEPENDS=   libmatroska.so:multimedia/libmatroska
196 MATROSKA_CONFIGURE_ENABLE=      mkv
197
198 MODPLUG_LIB_DEPENDS=    libmodplug.so:audio/libmodplug
199 MODPLUG_CONFIGURE_ENABLE=       mod
200
201 MPEG2_LIB_DEPENDS=      libmpeg2.so:multimedia/libmpeg2
202 MPEG2_CONFIGURE_ENABLE= libmpeg2
203
204 MTP_LIB_DEPENDS=        libmtp.so:multimedia/libmtp
205 MTP_CONFIGURE_ENABLE=   mtp
206
207 MUSEPACK_LIB_DEPENDS=   libmpcdec.so:audio/musepack
208 MUSEPACK_CONFIGURE_ENABLE=      mpc
209 MUSEPACK_CONFIGURE_ENV=         LIBS_mpc="-L${LOCALBASE}/lib -lmpcdec"
210
211 NCURSES_USES=                   ncurses
212 NCURSES_CONFIGURE_ENV=          NCURSES_CFLAGS="-I${NCURSESINC}" \
213                                 NCURSES_LIBS="-L${NCURSESLIB} -lncursesw"
214 NCURSES_CONFIGURE_ENABLE=       ncurses
215
216 NLS_USES=               gettext
217 NLS_CONFIGURE_ENABLE=   nls
218
219 NOTIFY_LIB_DEPENDS=     libnotify.so:devel/libnotify
220 NOTIFY_USE=             GNOME=gtk20
221 NOTIFY_CONFIGURE_ENABLE=notify
222
223 OGG_LIB_DEPENDS=        libogg.so:audio/libogg
224 OGG_CONFIGURE_ENABLE=   ogg
225
226 OPTIMIZED_CFLAGS_CONFIGURE_ENABLE=      optimizations
227
228 OPUS_LIB_DEPENDS=       libopus.so:audio/opus
229 OPUS_CONFIGURE_ENABLE=  opus
230
231 PNG_LIB_DEPENDS=        libpng.so:graphics/png
232 PNG_CONFIGURE_ENABLE=   png
233
234 PULSEAUDIO_LIB_DEPENDS= libpulse.so:audio/pulseaudio
235 PULSEAUDIO_CONFIGURE_ENABLE=    pulse
236
237 QT4_USE=                QT4=gui,corelib,moc_build,rcc_build,uic_build
238 # QT_CFLAGS:    pkg-config --cflags "QtCore QtGui >= 4.6.0"
239 # QT_LIBS:      pkg-config --libs "QtCore QtGui >= 4.6.0"
240 QT4_CONFIGURE_ENV=      QT_CFLAGS="-I${QT_INCDIR}/QtGui -DQT_SHARED -I${QT_INCDIR} -I${QT_INCDIR}/QtCore" \
241                         QT_LIBS="-lQtGui -L${QT_LIBDIR} -lQtCore"
242
243 QT5_USE=                QT5=gui,core,widgets,x11extras,buildtools_build
244
245 REALRTSP_CONFIGURE_ENABLE=      realrtsp
246
247 RUNROOT_CONFIGURE_ENABLE=       run-as-root
248
249 SAMPLERATE_LIB_DEPENDS=         libsamplerate.so:audio/libsamplerate
250 SAMPLERATE_CONFIGURE_ENABLE=    samplerate
251
252 SCHROEDINGER_LIB_DEPENDS=       libschroedinger-1.0.so:multimedia/schroedinger
253 SCHROEDINGER_CONFIGURE_ENABLE=  schroedinger
254
255 SDL_USE=                SDL=image
256 SDL_CONFIGURE_ENABLE=   sdl sdl-image
257
258 # libsidplay build broken with:
259 # /usr/bin/ld: /usr/local/lib/sidplay/builders/libresid-builder.a(resid-builder.o): relocation R_X86_64_32S against `_ZTV12ReSIDBuilder' can not be used when making a shared object; recompile with -fPIC
260 #SIDPLAY_LIB_DEPENDS=   libsidplay2.so:audio/libsidplay2
261 #SIDPLAY_LDFLAGS=       -L${LOCALBASE}/lib/sidplay/builders
262 #SIDPLAY_CONFIGURE_ENABLE=      sid
263 CONFIGURE_ARGS+=        --disable-sid
264
265 SHOUTCAST_LIB_DEPENDS=  libshout.so:audio/libshout
266 SHOUTCAST_CONFIGURE_ENABLE=     shout
267
268 SNDIO_LIB_DEPENDS=      libsndio.so:audio/sndio
269 SNDIO_CONFIGURE_ENABLE= sndio
270
271 SMB_LIB_DEPENDS=        libsmbclient.so:net/samba-libsmbclient
272 SMB_CONFIGURE_ENABLE=   smbclient
273
274 STREAM_CONFIGURE_ENABLE=sout
275
276 SPEEX_LIB_DEPENDS=      libspeex.so:audio/speex
277 SPEEX_CONFIGURE_ENABLE= speex
278
279 TAGLIB_LIB_DEPENDS=     libtag.so:audio/taglib
280 TAGLIB_CONFIGURE_ENABLE=taglib
281
282 THEORA_LIB_DEPENDS=     libtheora.so:multimedia/libtheora
283 THEORA_CONFIGURE_ENABLE=theora
284
285 TWOLAME_LIB_DEPENDS=            libtwolame.so:audio/twolame
286 TWOLAME_CONFIGURE_ENABLE=       twolame
287
288 UPNP_LIB_DEPENDS=       libupnp.so:devel/upnp
289 UPNP_CONFIGURE_ENABLE=  upnp
290
291 V4L_BUILD_DEPENDS=      v4l_compat>=0:multimedia/v4l_compat
292 V4L_LIB_DEPENDS=        libv4l2.so:multimedia/libv4l
293 V4L_CONFIGURE_ENABLE=   v4l2
294
295 VAAPI_LIB_DEPENDS=      libva.so:multimedia/libva
296 VAAPI_CONFIGURE_ENABLE= libva
297
298 VCD_LIB_DEPENDS=        libcddb.so:audio/libcddb
299 VCD_CONFIGURE_ENABLE=   vcd libcddb
300
301 VDPAU_LIB_DEPENDS=      libvdpau.so:multimedia/libvdpau
302 VDPAU_CONFIGURE_ENABLE= vdpau
303
304 VORBIS_LIB_DEPENDS=     libvorbis.so:audio/libvorbis
305 VORBIS_CONFIGURE_ENABLE=vorbis
306
307 X11_USE=                GL=gl XORG=xcb,xproto
308 X11_LIB_DEPENDS=        libxcb-keysyms.so:x11/xcb-util-keysyms
309 X11_CONFIGURE_ENABLE=   glx xcb xvideo
310 X11_CONFIGURE_WITH=     x
311
312 X264_LIB_DEPENDS=       libx264.so:multimedia/libx264
313 X264_CONFIGURE_ENABLE=  x264
314
315 X265_LIB_DEPENDS=       libx265.so:multimedia/x265
316 X265_CONFIGURE_ENABLE=  x265
317
318 ZVBI_LIB_DEPENDS=       libzvbi.so:devel/libzvbi
319 ZVBI_CONFIGURE_ENABLE=  zvbi
320
321 PORTDATA=       *
322 PORTDOCS=       *
323
324 WITH_CDROM_DEVICE?=/dev/cd0
325 WITH_DVD_DEVICE?=/dev/cd0
326
327 .include <bsd.port.options.mk>
328
329 .if ${PORT_OPTIONS:MX11}
330 INSTALLS_ICONS= yes
331 .endif
332
333 .if ${PORT_OPTIONS:MQT5} || ${PORT_OPTIONS:MQT4}
334 CONFIGURE_ARGS+=        --enable-qt
335 .else
336 CONFIGURE_ARGS+=        --disable-qt
337 .endif
338
339 .if ${PORT_OPTIONS:MQT5} && ${PORT_OPTIONS:MQT4}
340 IGNORE= please choose one of QT4 or QT5
341 .endif
342
343 .if ${PORT_OPTIONS:MSKINS}
344 .if ${PORT_OPTIONS:MQT5} || ${PORT_OPTIONS:MQT4}
345 LIB_DEPENDS+=   libminizip.so:archivers/minizip \
346                 libtar.so:devel/libtar
347 USE_XORG+=      xext xinerama xpm
348 CONFIGURE_ARGS+=--enable-skins2 --enable-libtar
349 .else
350 IGNORE= SKINS option requires QT4 or QT5 option
351 .endif
352 .else
353 CONFIGURE_ARGS+=--disable-skins2 --disable-libtar
354 .endif
355
356 post-patch:
357         @${REINPLACE_CMD} \
358                 -e '\|LIBS|s|-lrt||' \
359                 -e 's|LIBS="-llirc_client|LIBS="$$LIBS_lirc|' \
360                 ${WRKSRC}/configure
361         @${REINPLACE_CMD} -e 's|/dev/cdrom|${WITH_CDROM_DEVICE}|g' \
362                 -e 's|/dev/dvd|${WITH_DVD_DEVICE}|g' \
363                 ${WRKSRC}/src/libvlc-module.c
364         @${RM} -r ${WRKSRC}/modules/access/v4l2/linux
365 # XXX FreeBSD doesn't have strerror_l() - use the android version of error.c
366         @${CP} ${WRKSRC}/src/android/error.c ${WRKSRC}/src/posix
367 .if ${PORT_OPTIONS:MQT4}
368 # XXX no sane way to tell configure not to pick up Qt5X11Extras with qt4
369         @${REINPLACE_CMD} s/Qt5X11Extras/Qt5X11Extras-not/ \
370                 ${WRKSRC}/configure
371 .endif
372
373 post-install:
374         @(cd ${STAGEDIR}${PREFIX} && ${FIND} -s lib/vlc -not -name '*.la' \
375                 -type f -o -type l >> ${TMPPLIST})
376         @${STRIP_CMD} ${STAGEDIR}${PREFIX}/lib/vlc/plugins/*/*.so
377
378 .include <bsd.port.mk>