1 # Created by: Brian Somers <brian@FreeBSD.org>
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$//}/
13 MAINTAINER= multimedia@FreeBSD.org
14 COMMENT?= Qt based multimedia player and streaming server
18 LIB_DEPENDS= libgcrypt.so:security/libgcrypt \
19 libdvbpsi.so:multimedia/libdvbpsi \
20 libfontconfig.so:x11-fonts/fontconfig \
21 libfreetype.so:print/freetype2 \
23 BUILD_DEPENDS= ffmpeg>=2.0:multimedia/ffmpeg \
25 RUN_DEPENDS= ffmpeg>=2.0:multimedia/ffmpeg
27 USES= compiler:c11 desktop-file-utils gmake iconv libtool pathfix \
31 INSTALL_TARGET= install-strip
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
54 CPPFLAGS+= -I${LOCALBASE}/include
55 CFLAGS_i386= -fomit-frame-pointer
56 LIBS+= -L${LOCALBASE}/lib
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 STREAM SPEEX \
65 TAGLIB THEORA TWOLAME UPNP V4L VAAPI VCD VDPAU VORBIS \
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
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
91 A52_CONFIGURE_ENABLE= a52
92 A52_CONFIGURE_ON= --with-a52=${LOCALBASE}
93 A52_LIB_DEPENDS= liba52.so:audio/liba52
95 AALIB_LIB_DEPENDS= libaa.so:graphics/aalib
96 AALIB_CONFIGURE_ENABLE= aa
98 ASS_LIB_DEPENDS= libass.so:multimedia/libass
99 ASS_CONFIGURE_ENABLE= libass
101 AVAHI_LIB_DEPENDS= libavahi-common.so:net/avahi-app
102 AVAHI_CONFIGURE_ENABLE= bonjour
104 CACA_LIB_DEPENDS= libcaca.so:graphics/libcaca
105 CACA_CONFIGURE_ENABLE= caca
107 DBUS_LIB_DEPENDS= libdbus-1.so:devel/dbus
108 DBUS_CONFIGURE_ENABLE= dbus
110 DCA_LIB_DEPENDS= libdca.so:multimedia/libdca
111 DCA_CONFIGURE_ENABLE= dca
113 DIRAC_LIB_DEPENDS= libdirac_decoder.so:multimedia/dirac
114 DIRAC_CONFIGURE_ENABLE= dirac
116 DVDREAD_LIB_DEPENDS= libdvdread.so:multimedia/libdvdread
117 DVDREAD_CONFIGURE_ENABLE= dvdread
119 DVDNAV_LIB_DEPENDS= libdvdnav.so:multimedia/libdvdnav
120 DVDNAV_CONFIGURE_ENABLE=dvdnav
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"
127 FLAC_LIB_DEPENDS= libFLAC.so:audio/flac
128 FLAC_CONFIGURE_ENABLE= flac
130 FLUID_LIB_DEPENDS= libfluidsynth.so:audio/fluidsynth
131 FLUID_CONFIGURE_ENABLE= fluidsynth
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
138 FRIBIDI_LIB_DEPENDS= libfribidi.so:converters/fribidi
139 FRIBIDI_CONFIGURE_ENABLE= fribidi
141 GME_LIB_DEPENDS= libgme.so:audio/libgme
142 GME_CONFIGURE_ENABLE= gme
143 GME_CONFIGURE_ENV= LIBS_gme="-L${LOCALBASE}/lib -lgme"
145 GNOMEVFS2_USE= GNOME=gnomevfs2
146 GNOMEVFS2_CONFIGURE_ENABLE= gnomevfs
148 GNUTLS_LIB_DEPENDS= libgnutls.so:security/gnutls
149 GNUTLS_CONFIGURE_ENABLE=gnutls
151 GOOM_LIB_DEPENDS= libgoom2.so:graphics/goom
152 GOOM_CONFIGURE_ENABLE= goom
154 HTTPD_CONFIGURE_ENABLE= httpd
156 JACK_LIB_DEPENDS= libjack.so:audio/jack
157 JACK_CONFIGURE_ENABLE= jack
159 KATE_LIB_DEPENDS= libkate.so:multimedia/libkate
160 KATE_CONFIGURE_ENABLE= kate
162 LIBBLURAY_LIB_DEPENDS= libbluray.so:multimedia/libbluray
163 LIBBLURAY_CONFIGURE_ENABLE= bluray
165 LIBRSVG2_USE= GNOME=librsvg2
166 LIBRSVG2_CONFIGURE_ENABLE= svg
168 LIBSSH2_LIB_DEPENDS= libssh2.so:security/libssh2
169 LIBSSH2_CONFIGURE_ENABLE= sftp
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"
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 \
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}"
191 MAD_LIB_DEPENDS= libmad.so:audio/libmad
192 MAD_CONFIGURE_ENABLE= mad
193 MAD_CONFIGURE_ON= --with-mad=${LOCALBASE}
195 MATROSKA_LIB_DEPENDS= libmatroska.so:multimedia/libmatroska
196 MATROSKA_CONFIGURE_ENABLE= mkv
198 MODPLUG_LIB_DEPENDS= libmodplug.so:audio/libmodplug
199 MODPLUG_CONFIGURE_ENABLE= mod
201 MPEG2_LIB_DEPENDS= libmpeg2.so:multimedia/libmpeg2
202 MPEG2_CONFIGURE_ENABLE= libmpeg2
204 MTP_LIB_DEPENDS= libmtp.so:multimedia/libmtp
205 MTP_CONFIGURE_ENABLE= mtp
207 MUSEPACK_LIB_DEPENDS= libmpcdec.so:audio/musepack
208 MUSEPACK_CONFIGURE_ENABLE= mpc
209 MUSEPACK_CONFIGURE_ENV= LIBS_mpc="-L${LOCALBASE}/lib -lmpcdec"
211 NCURSES_USES= ncurses
212 NCURSES_CONFIGURE_ENV= NCURSES_CFLAGS="-I${NCURSESINC}" \
213 NCURSES_LIBS="-L${NCURSESLIB} -lncursesw"
214 NCURSES_CONFIGURE_ENABLE= ncurses
217 NLS_CONFIGURE_ENABLE= nls
219 NOTIFY_LIB_DEPENDS= libnotify.so:devel/libnotify
220 NOTIFY_USE= GNOME=gtk20
221 NOTIFY_CONFIGURE_ENABLE=notify
223 OGG_LIB_DEPENDS= libogg.so:audio/libogg
224 OGG_CONFIGURE_ENABLE= ogg
226 OPTIMIZED_CFLAGS_CONFIGURE_ENABLE= optimizations
228 OPUS_LIB_DEPENDS= libopus.so:audio/opus
229 OPUS_CONFIGURE_ENABLE= opus
231 PNG_LIB_DEPENDS= libpng.so:graphics/png
232 PNG_CONFIGURE_ENABLE= png
234 PULSEAUDIO_LIB_DEPENDS= libpulse.so:audio/pulseaudio
235 PULSEAUDIO_CONFIGURE_ENABLE= pulse
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"
243 QT5_USE= QT5=gui,core,widgets,x11extras,buildtools_build
245 REALRTSP_CONFIGURE_ENABLE= realrtsp
247 RUNROOT_CONFIGURE_ENABLE= run-as-root
249 SAMPLERATE_LIB_DEPENDS= libsamplerate.so:audio/libsamplerate
250 SAMPLERATE_CONFIGURE_ENABLE= samplerate
252 SCHROEDINGER_LIB_DEPENDS= libschroedinger-1.0.so:multimedia/schroedinger
253 SCHROEDINGER_CONFIGURE_ENABLE= schroedinger
256 SDL_CONFIGURE_ENABLE= sdl sdl-image
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
265 SHOUTCAST_LIB_DEPENDS= libshout.so:audio/libshout
266 SHOUTCAST_CONFIGURE_ENABLE= shout
268 SMB_LIB_DEPENDS= libsmbclient.so:net/samba-libsmbclient
269 SMB_CONFIGURE_ENABLE= smbclient
271 STREAM_CONFIGURE_ENABLE=sout
273 SPEEX_LIB_DEPENDS= libspeex.so:audio/speex
274 SPEEX_CONFIGURE_ENABLE= speex
276 TAGLIB_LIB_DEPENDS= libtag.so:audio/taglib
277 TAGLIB_CONFIGURE_ENABLE=taglib
279 THEORA_LIB_DEPENDS= libtheora.so:multimedia/libtheora
280 THEORA_CONFIGURE_ENABLE=theora
282 TWOLAME_LIB_DEPENDS= libtwolame.so:audio/twolame
283 TWOLAME_CONFIGURE_ENABLE= twolame
285 UPNP_LIB_DEPENDS= libupnp.so:devel/upnp
286 UPNP_CONFIGURE_ENABLE= upnp
288 V4L_BUILD_DEPENDS= v4l_compat>=0:multimedia/v4l_compat
289 V4L_LIB_DEPENDS= libv4l2.so:multimedia/libv4l
290 V4L_CONFIGURE_ENABLE= v4l2
292 VAAPI_LIB_DEPENDS= libva.so:multimedia/libva
293 VAAPI_CONFIGURE_ENABLE= libva
295 VCD_LIB_DEPENDS= libcddb.so:audio/libcddb
296 VCD_CONFIGURE_ENABLE= vcd libcddb
298 VDPAU_LIB_DEPENDS= libvdpau.so:multimedia/libvdpau
299 VDPAU_CONFIGURE_ENABLE= vdpau
301 VORBIS_LIB_DEPENDS= libvorbis.so:audio/libvorbis
302 VORBIS_CONFIGURE_ENABLE=vorbis
304 X11_USE= GL=gl XORG=xcb,xproto
305 X11_LIB_DEPENDS= libxcb-keysyms.so:x11/xcb-util-keysyms
306 X11_CONFIGURE_ENABLE= glx xcb xvideo
307 X11_CONFIGURE_WITH= x
309 X264_LIB_DEPENDS= libx264.so:multimedia/libx264
310 X264_CONFIGURE_ENABLE= x264
312 X265_LIB_DEPENDS= libx265.so:multimedia/x265
313 X265_CONFIGURE_ENABLE= x265
315 ZVBI_LIB_DEPENDS= libzvbi.so:devel/libzvbi
316 ZVBI_CONFIGURE_ENABLE= zvbi
321 WITH_CDROM_DEVICE?=/dev/cd0
322 WITH_DVD_DEVICE?=/dev/cd0
324 .include <bsd.port.options.mk>
326 .if ${PORT_OPTIONS:MX11}
330 .if ${PORT_OPTIONS:MQT5} || ${PORT_OPTIONS:MQT4}
331 CONFIGURE_ARGS+= --enable-qt
333 CONFIGURE_ARGS+= --disable-qt
336 .if ${PORT_OPTIONS:MQT5} && ${PORT_OPTIONS:MQT4}
337 IGNORE= please choose one of QT4 or QT5
340 .if ${PORT_OPTIONS:MSKINS}
341 .if ${PORT_OPTIONS:MQT5} || ${PORT_OPTIONS:MQT4}
342 LIB_DEPENDS+= libminizip.so:archivers/minizip \
343 libtar.so:devel/libtar
344 USE_XORG+= xext xinerama xpm
345 CONFIGURE_ARGS+=--enable-skins2 --enable-libtar
347 IGNORE= SKINS option requires QT4 or QT5 option
350 CONFIGURE_ARGS+=--disable-skins2 --disable-libtar
355 -e '\|LIBS|s|-lrt||' \
356 -e 's|LIBS="-llirc_client|LIBS="$$LIBS_lirc|' \
358 @${REINPLACE_CMD} -e 's|/dev/cdrom|${WITH_CDROM_DEVICE}|g' \
359 -e 's|/dev/dvd|${WITH_DVD_DEVICE}|g' \
360 ${WRKSRC}/src/libvlc-module.c
361 @${RM} -r ${WRKSRC}/modules/access/v4l2/linux
362 # XXX FreeBSD doesn't have strerror_l() - use the android version of error.c
363 @${CP} ${WRKSRC}/src/android/error.c ${WRKSRC}/src/posix
364 .if ${PORT_OPTIONS:MQT4}
365 # XXX no sane way to tell configure not to pick up Qt5X11Extras with qt4
366 @${REINPLACE_CMD} s/Qt5X11Extras/Qt5X11Extras-not/ \
371 @(cd ${STAGEDIR}${PREFIX} && ${FIND} -s lib/vlc -not -name '*.la' \
372 -type f -o -type l >> ${TMPPLIST})
373 @${STRIP_CMD} ${STAGEDIR}${PREFIX}/lib/vlc/plugins/*/*.so
375 .include <bsd.port.mk>