Tweak multimedia/l-smash version 2.9.1
[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=   1
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 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 SMB_LIB_DEPENDS=        libsmbclient.so:net/samba-libsmbclient
269 SMB_CONFIGURE_ENABLE=   smbclient
270
271 STREAM_CONFIGURE_ENABLE=sout
272
273 SPEEX_LIB_DEPENDS=      libspeex.so:audio/speex
274 SPEEX_CONFIGURE_ENABLE= speex
275
276 TAGLIB_LIB_DEPENDS=     libtag.so:audio/taglib
277 TAGLIB_CONFIGURE_ENABLE=taglib
278
279 THEORA_LIB_DEPENDS=     libtheora.so:multimedia/libtheora
280 THEORA_CONFIGURE_ENABLE=theora
281
282 TWOLAME_LIB_DEPENDS=            libtwolame.so:audio/twolame
283 TWOLAME_CONFIGURE_ENABLE=       twolame
284
285 UPNP_LIB_DEPENDS=       libupnp.so:devel/upnp
286 UPNP_CONFIGURE_ENABLE=  upnp
287
288 V4L_BUILD_DEPENDS=      v4l_compat>=0:multimedia/v4l_compat
289 V4L_LIB_DEPENDS=        libv4l2.so:multimedia/libv4l
290 V4L_CONFIGURE_ENABLE=   v4l2
291
292 VAAPI_LIB_DEPENDS=      libva.so:multimedia/libva
293 VAAPI_CONFIGURE_ENABLE= libva
294
295 VCD_LIB_DEPENDS=        libcddb.so:audio/libcddb
296 VCD_CONFIGURE_ENABLE=   vcd libcddb
297
298 VDPAU_LIB_DEPENDS=      libvdpau.so:multimedia/libvdpau
299 VDPAU_CONFIGURE_ENABLE= vdpau
300
301 VORBIS_LIB_DEPENDS=     libvorbis.so:audio/libvorbis
302 VORBIS_CONFIGURE_ENABLE=vorbis
303
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
308
309 X264_LIB_DEPENDS=       libx264.so:multimedia/libx264
310 X264_CONFIGURE_ENABLE=  x264
311
312 X265_LIB_DEPENDS=       libx265.so:multimedia/x265
313 X265_CONFIGURE_ENABLE=  x265
314
315 ZVBI_LIB_DEPENDS=       libzvbi.so:devel/libzvbi
316 ZVBI_CONFIGURE_ENABLE=  zvbi
317
318 PORTDATA=       *
319 PORTDOCS=       *
320
321 WITH_CDROM_DEVICE?=/dev/cd0
322 WITH_DVD_DEVICE?=/dev/cd0
323
324 .include <bsd.port.options.mk>
325
326 .if ${PORT_OPTIONS:MX11}
327 INSTALLS_ICONS= yes
328 .endif
329
330 .if ${PORT_OPTIONS:MQT5} || ${PORT_OPTIONS:MQT4}
331 CONFIGURE_ARGS+=        --enable-qt
332 .else
333 CONFIGURE_ARGS+=        --disable-qt
334 .endif
335
336 .if ${PORT_OPTIONS:MQT5} && ${PORT_OPTIONS:MQT4}
337 IGNORE= please choose one of QT4 or QT5
338 .endif
339
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
346 .else
347 IGNORE= SKINS option requires QT4 or QT5 option
348 .endif
349 .else
350 CONFIGURE_ARGS+=--disable-skins2 --disable-libtar
351 .endif
352
353 post-patch:
354         @${REINPLACE_CMD} \
355                 -e '\|LIBS|s|-lrt||' \
356                 -e 's|LIBS="-llirc_client|LIBS="$$LIBS_lirc|' \
357                 ${WRKSRC}/configure
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/ \
367                 ${WRKSRC}/configure
368 .endif
369
370 post-install:
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
374
375 .include <bsd.port.mk>