1
0
mirror of https://git.FreeBSD.org/ports.git synced 2024-12-15 03:14:23 +00:00
freebsd-ports/multimedia/vlc/Makefile
Jan Beich b621c1de4f multimedia/libass: belatedly bump PORTREVISION after r429876
ASS_Style grew in size by |int Justify| member. Old consumers may
not initialize it leading to crashes.

Reported by:	Kevin Oberman
2016-12-30 08:08:19 +00:00

379 lines
11 KiB
Makefile

# Created by: Brian Somers <brian@FreeBSD.org>
# $FreeBSD$
PORTNAME= vlc
DISTVERSION= 2.2.4
PORTREVISION= 6
PORTEPOCH= 4
CATEGORIES= multimedia audio ipv6 net www
MASTER_SITES= http://download.videolan.org/pub/videolan/${PORTNAME}/${DISTVERSION:S/a$//}/ \
http://ftp.snt.utwente.nl/pub/software/videolan/${PORTNAME}/${DISTVERSION:S/a$//}/ \
ftp://ftp.crans.org/pub/videolan/${PORTNAME}/${DISTVERSION:S/a$//}/
MAINTAINER= multimedia@FreeBSD.org
COMMENT?= Qt based multimedia player and streaming server
LICENSE= GPLv2
LIB_DEPENDS= libgcrypt.so:security/libgcrypt \
libdvbpsi.so:multimedia/libdvbpsi \
libfontconfig.so:x11-fonts/fontconfig \
libfreetype.so:print/freetype2 \
libidn.so:dns/libidn
BUILD_DEPENDS= ffmpeg>=2.0:multimedia/ffmpeg \
yasm:devel/yasm
RUN_DEPENDS= ffmpeg>=2.0:multimedia/ffmpeg
USES= compiler:c11 desktop-file-utils gmake iconv libtool pathfix \
pkgconfig tar:xz
USE_GNOME= libxml2
USE_LDCONFIG= yes
INSTALL_TARGET= install-strip
CONFLICTS?= vlc-qt4-*
GNU_CONFIGURE= yes
CONFIGURE_ARGS= --enable-avcodec --enable-avformat --enable-dvbpsi \
--enable-fontconfig --enable-freetype --enable-libgcrypt \
--enable-libxml2 --enable-oss --enable-postproc \
--enable-swscale --enable-vlc \
--disable-alsa --disable-chromaprint --disable-crystalhd \
--disable-dc1394 --disable-decklink --disable-directfb \
--disable-dv1394 --disable-egl --disable-fdkaac \
--disable-gles1 --disable-gles2 --disable-kai --disable-kva \
--disable-libvnc --disable-opencv --disable-projectm \
--disable-quicksync --disable-telx \
--disable-tiger --disable-tremor --disable-udev \
--disable-update-check --disable-vcdx --disable-vsxu \
--disable-wasapi --disable-x26410b \
--with-kde-solid=${PREFIX}/share/apps/solid/actions \
ac_cv_search_pthread_rwlock_init=-pthread
.if defined(WITH_DEBUG) && !defined(WITHOUT_DEBUG)
CONFIGURE_ARGS+=--enable-debug
.endif
CPPFLAGS+= -I${LOCALBASE}/include
CFLAGS_i386= -fomit-frame-pointer
LIBS+= -L${LOCALBASE}/lib
OPTIONS_DEFINE= A52 AALIB ASS AVAHI CACA DBUS DCA DIRAC DOCS DVDREAD \
DVDNAV FAAD FLAC FLUID FRIBIDI GME GNOMEVFS2 GNUTLS \
GOOM HTTPD JACK KATE LIBBLURAY LIBRSVG2 LIBSSH2 LIRC \
LIVEMEDIA LUA MAD MATROSKA MODPLUG \
MPEG2 MTP MUSEPACK NCURSES NLS NOTIFY OGG OPTIMIZED_CFLAGS \
OPUS PNG PULSEAUDIO QT4 QT5 REALRTSP RUNROOT SAMPLERATE \
SCHROEDINGER SDL SHOUTCAST SKINS SMB SNDIO STREAM SPEEX \
TAGLIB THEORA TWOLAME UPNP V4L VAAPI VCD VDPAU VORBIS \
X11 X264 X265 ZVBI
OPTIONS_DEFAULT=A52 AVAHI DBUS DCA DVDREAD DVDNAV FAAD FLAC GNUTLS \
HTTPD LIVEMEDIA LUA MAD MATROSKA MPEG2 OGG OPTIMIZED_CFLAGS \
OPUS PNG QT5 SAMPLERATE STREAM SPEEX TAGLIB THEORA TWOLAME V4L \
VAAPI VCD VDPAU VORBIS X11
OPTIONS_SUB= yes
ASS_DESC= ASS/SSA subtitle rendering
DVDREAD_DESC= DVD Playback support
DVDNAV_DESC= DVD menu navigation
FLUID_DESC= Fluidsynth MIDI support
FREERDP_DESC= RDP support
GME_DESC= Game Music Emu (libgme) support
GOOM_DESC= Goom visualisation plugin
KATE_DESC= Kate codec support
LIBSSH2_DESC= SCP/SFTP support via libssh2
REALRTSP_DESC= Real RTSP access module
RUNROOT_DESC= Enable running as root
SIDPLAY_DESC= C64 sid demux support
SKINS_DESC= Skins interface module
STREAM_DESC= stream output
TAGLIB_DESC= ID3 tag and Ogg comment support
VCD_DESC= Audio/Video CD support
ZVBI_DESC= VBI decoding support
A52_CONFIGURE_ENABLE= a52
A52_CONFIGURE_ON= --with-a52=${LOCALBASE}
A52_LIB_DEPENDS= liba52.so:audio/liba52
AALIB_LIB_DEPENDS= libaa.so:graphics/aalib
AALIB_CONFIGURE_ENABLE= aa
ASS_LIB_DEPENDS= libass.so:multimedia/libass
ASS_CONFIGURE_ENABLE= libass
AVAHI_LIB_DEPENDS= libavahi-common.so:net/avahi-app
AVAHI_CONFIGURE_ENABLE= bonjour
CACA_LIB_DEPENDS= libcaca.so:graphics/libcaca
CACA_CONFIGURE_ENABLE= caca
DBUS_LIB_DEPENDS= libdbus-1.so:devel/dbus
DBUS_CONFIGURE_ENABLE= dbus
DCA_LIB_DEPENDS= libdca.so:multimedia/libdca
DCA_CONFIGURE_ENABLE= dca
DIRAC_LIB_DEPENDS= libdirac_decoder.so:multimedia/dirac
DIRAC_CONFIGURE_ENABLE= dirac
DVDREAD_LIB_DEPENDS= libdvdread.so:multimedia/libdvdread
DVDREAD_CONFIGURE_ENABLE= dvdread
DVDNAV_LIB_DEPENDS= libdvdnav.so:multimedia/libdvdnav
DVDNAV_CONFIGURE_ENABLE=dvdnav
FAAD_LIB_DEPENDS= libfaad.so:audio/faad
FAAD_CONFIGURE_ENABLE= faad
FAAD_CONFIGURE_ENV= CPPFLAGS_faad="-I${LOCALBASE}/include" \
LIBS_faad="-L${LOCALBASE}/lib"
FLAC_LIB_DEPENDS= libFLAC.so:audio/flac
FLAC_CONFIGURE_ENABLE= flac
FLUID_LIB_DEPENDS= libfluidsynth.so:audio/fluidsynth
FLUID_CONFIGURE_ENABLE= fluidsynth
# XXX vlc doesn't seem to like the freerdp version in ports
#FREERDP_LIB_DEPENDS= libfreerdp-core.so:net/freerdp
#FREERDP_CONFIGURE_ENABLE= libfreerdp
CONFIGURE_ARGS+= -disable-freerdp
FRIBIDI_LIB_DEPENDS= libfribidi.so:converters/fribidi
FRIBIDI_CONFIGURE_ENABLE= fribidi
GME_LIB_DEPENDS= libgme.so:audio/libgme
GME_CONFIGURE_ENABLE= gme
GME_CONFIGURE_ENV= LIBS_gme="-L${LOCALBASE}/lib -lgme"
GNOMEVFS2_USE= GNOME=gnomevfs2
GNOMEVFS2_CONFIGURE_ENABLE= gnomevfs
GNUTLS_LIB_DEPENDS= libgnutls.so:security/gnutls
GNUTLS_CONFIGURE_ENABLE=gnutls
GOOM_LIB_DEPENDS= libgoom2.so:graphics/goom
GOOM_CONFIGURE_ENABLE= goom
HTTPD_CONFIGURE_ENABLE= httpd
JACK_LIB_DEPENDS= libjack.so:audio/jack
JACK_CONFIGURE_ENABLE= jack
KATE_LIB_DEPENDS= libkate.so:multimedia/libkate
KATE_CONFIGURE_ENABLE= kate
LIBBLURAY_LIB_DEPENDS= libbluray.so:multimedia/libbluray
LIBBLURAY_CONFIGURE_ENABLE= bluray
LIBRSVG2_USE= GNOME=librsvg2
LIBRSVG2_CONFIGURE_ENABLE= svg
LIBSSH2_LIB_DEPENDS= libssh2.so:security/libssh2
LIBSSH2_CONFIGURE_ENABLE= sftp
LIRC_LIB_DEPENDS= liblirc_client.so:comms/lirc
LIRC_CONFIGURE_ENABLE= lirc
LIRC_CONFIGURE_ENV= LIBS_lirc="-L${LOCALBASE}/lib -llirc_client"
LIVEMEDIA_LIB_DEPENDS= libliveMedia.so:net/liveMedia
LIVEMEDIA_CONFIGURE_ENABLE= live555
LIVEMEDIA_CONFIGURE_ENV= \
LIVE555_CFLAGS="-I${LOCALBASE}/include/liveMedia \
-I${LOCALBASE}/include/UsageEnvironment \
-I${LOCALBASE}/include/groupsock \
-I${LOCALBASE}/include/BasicUsageEnvironment" \
LIVE555_LIBS="-L${LOCALBASE}/lib -lliveMedia \
-lgroupsock -lBasicUsageEnvironment \
-lUsageEnvironment"
LUA_USES= lua
LUA_CONFIGURE_ENABLE= lua
LUA_CONFIGURE_ON= LUAC=${LUAC_CMD} LUA_CFLAGS="-I${LUA_INCDIR}" \
LUA_LIBS="-L${LUA_LIBDIR} -llua-${LUA_VER}"
MAD_LIB_DEPENDS= libmad.so:audio/libmad
MAD_CONFIGURE_ENABLE= mad
MAD_CONFIGURE_ON= --with-mad=${LOCALBASE}
MATROSKA_LIB_DEPENDS= libmatroska.so:multimedia/libmatroska
MATROSKA_CONFIGURE_ENABLE= mkv
MODPLUG_LIB_DEPENDS= libmodplug.so:audio/libmodplug
MODPLUG_CONFIGURE_ENABLE= mod
MPEG2_LIB_DEPENDS= libmpeg2.so:multimedia/libmpeg2
MPEG2_CONFIGURE_ENABLE= libmpeg2
MTP_LIB_DEPENDS= libmtp.so:multimedia/libmtp
MTP_CONFIGURE_ENABLE= mtp
MUSEPACK_LIB_DEPENDS= libmpcdec.so:audio/musepack
MUSEPACK_CONFIGURE_ENABLE= mpc
MUSEPACK_CONFIGURE_ENV= LIBS_mpc="-L${LOCALBASE}/lib -lmpcdec"
NCURSES_USES= ncurses
NCURSES_CONFIGURE_ENV= NCURSES_CFLAGS="-I${NCURSESINC}" \
NCURSES_LIBS="-L${NCURSESLIB} -lncursesw"
NCURSES_CONFIGURE_ENABLE= ncurses
NLS_USES= gettext
NLS_CONFIGURE_ENABLE= nls
NOTIFY_LIB_DEPENDS= libnotify.so:devel/libnotify
NOTIFY_USE= GNOME=gtk20
NOTIFY_CONFIGURE_ENABLE=notify
OGG_LIB_DEPENDS= libogg.so:audio/libogg
OGG_CONFIGURE_ENABLE= ogg
OPTIMIZED_CFLAGS_CONFIGURE_ENABLE= optimizations
OPUS_LIB_DEPENDS= libopus.so:audio/opus
OPUS_CONFIGURE_ENABLE= opus
PNG_LIB_DEPENDS= libpng.so:graphics/png
PNG_CONFIGURE_ENABLE= png
PULSEAUDIO_LIB_DEPENDS= libpulse.so:audio/pulseaudio
PULSEAUDIO_CONFIGURE_ENABLE= pulse
QT4_USE= QT4=gui,corelib,moc_build,rcc_build,uic_build
# QT_CFLAGS: pkg-config --cflags "QtCore QtGui >= 4.6.0"
# QT_LIBS: pkg-config --libs "QtCore QtGui >= 4.6.0"
QT4_CONFIGURE_ENV= QT_CFLAGS="-I${QT_INCDIR}/QtGui -DQT_SHARED -I${QT_INCDIR} -I${QT_INCDIR}/QtCore" \
QT_LIBS="-lQtGui -L${QT_LIBDIR} -lQtCore"
QT5_USE= QT5=gui,core,widgets,x11extras,buildtools_build
REALRTSP_CONFIGURE_ENABLE= realrtsp
RUNROOT_CONFIGURE_ENABLE= run-as-root
SAMPLERATE_LIB_DEPENDS= libsamplerate.so:audio/libsamplerate
SAMPLERATE_CONFIGURE_ENABLE= samplerate
SCHROEDINGER_LIB_DEPENDS= libschroedinger-1.0.so:multimedia/schroedinger
SCHROEDINGER_CONFIGURE_ENABLE= schroedinger
SDL_USE= SDL=image
SDL_CONFIGURE_ENABLE= sdl sdl-image
# libsidplay build broken with:
# /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
#SIDPLAY_LIB_DEPENDS= libsidplay2.so:audio/libsidplay2
#SIDPLAY_LDFLAGS= -L${LOCALBASE}/lib/sidplay/builders
#SIDPLAY_CONFIGURE_ENABLE= sid
CONFIGURE_ARGS+= --disable-sid
SHOUTCAST_LIB_DEPENDS= libshout.so:audio/libshout
SHOUTCAST_CONFIGURE_ENABLE= shout
SNDIO_LIB_DEPENDS= libsndio.so:audio/sndio
SNDIO_CONFIGURE_ENABLE= sndio
SMB_LIB_DEPENDS= libsmbclient.so:net/samba-libsmbclient
SMB_CONFIGURE_ENABLE= smbclient
STREAM_CONFIGURE_ENABLE=sout
SPEEX_LIB_DEPENDS= libspeex.so:audio/speex
SPEEX_CONFIGURE_ENABLE= speex
TAGLIB_LIB_DEPENDS= libtag.so:audio/taglib
TAGLIB_CONFIGURE_ENABLE=taglib
THEORA_LIB_DEPENDS= libtheora.so:multimedia/libtheora
THEORA_CONFIGURE_ENABLE=theora
TWOLAME_LIB_DEPENDS= libtwolame.so:audio/twolame
TWOLAME_CONFIGURE_ENABLE= twolame
UPNP_LIB_DEPENDS= libupnp.so:devel/upnp
UPNP_CONFIGURE_ENABLE= upnp
V4L_BUILD_DEPENDS= v4l_compat>=0:multimedia/v4l_compat
V4L_LIB_DEPENDS= libv4l2.so:multimedia/libv4l
V4L_CONFIGURE_ENABLE= v4l2
VAAPI_LIB_DEPENDS= libva.so:multimedia/libva
VAAPI_CONFIGURE_ENABLE= libva
VCD_LIB_DEPENDS= libcddb.so:audio/libcddb
VCD_CONFIGURE_ENABLE= vcd libcddb
VDPAU_LIB_DEPENDS= libvdpau.so:multimedia/libvdpau
VDPAU_CONFIGURE_ENABLE= vdpau
VORBIS_LIB_DEPENDS= libvorbis.so:audio/libvorbis
VORBIS_CONFIGURE_ENABLE=vorbis
X11_USE= GL=gl XORG=xcb,xproto
X11_LIB_DEPENDS= libxcb-keysyms.so:x11/xcb-util-keysyms
X11_CONFIGURE_ENABLE= glx xcb xvideo
X11_CONFIGURE_WITH= x
X264_LIB_DEPENDS= libx264.so:multimedia/libx264
X264_CONFIGURE_ENABLE= x264
X265_LIB_DEPENDS= libx265.so:multimedia/x265
X265_CONFIGURE_ENABLE= x265
ZVBI_LIB_DEPENDS= libzvbi.so:devel/libzvbi
ZVBI_CONFIGURE_ENABLE= zvbi
PORTDATA= *
PORTDOCS= *
WITH_CDROM_DEVICE?=/dev/cd0
WITH_DVD_DEVICE?=/dev/cd0
.include <bsd.port.options.mk>
.if ${PORT_OPTIONS:MX11}
INSTALLS_ICONS= yes
.endif
.if ${PORT_OPTIONS:MQT5} || ${PORT_OPTIONS:MQT4}
CONFIGURE_ARGS+= --enable-qt
.else
CONFIGURE_ARGS+= --disable-qt
.endif
.if ${PORT_OPTIONS:MQT5} && ${PORT_OPTIONS:MQT4}
IGNORE= please choose one of QT4 or QT5
.endif
.if ${PORT_OPTIONS:MSKINS}
.if ${PORT_OPTIONS:MQT5} || ${PORT_OPTIONS:MQT4}
LIB_DEPENDS+= libminizip.so:archivers/minizip \
libtar.so:devel/libtar
USE_XORG+= xext xinerama xpm
CONFIGURE_ARGS+=--enable-skins2 --enable-libtar
.else
IGNORE= SKINS option requires QT4 or QT5 option
.endif
.else
CONFIGURE_ARGS+=--disable-skins2 --disable-libtar
.endif
post-patch:
@${REINPLACE_CMD} \
-e '\|LIBS|s|-lrt||' \
-e 's|LIBS="-llirc_client|LIBS="$$LIBS_lirc|' \
${WRKSRC}/configure
@${REINPLACE_CMD} -e 's|/dev/cdrom|${WITH_CDROM_DEVICE}|g' \
-e 's|/dev/dvd|${WITH_DVD_DEVICE}|g' \
${WRKSRC}/src/libvlc-module.c
@${RM} -r ${WRKSRC}/modules/access/v4l2/linux
# XXX FreeBSD doesn't have strerror_l() - use the android version of error.c
@${CP} ${WRKSRC}/src/android/error.c ${WRKSRC}/src/posix
.if ${PORT_OPTIONS:MQT4}
# XXX no sane way to tell configure not to pick up Qt5X11Extras with qt4
@${REINPLACE_CMD} s/Qt5X11Extras/Qt5X11Extras-not/ \
${WRKSRC}/configure
.endif
post-install:
@(cd ${STAGEDIR}${PREFIX} && ${FIND} -s lib/vlc -not -name '*.la' \
-type f -o -type l >> ${TMPPLIST})
@${STRIP_CMD} ${STAGEDIR}${PREFIX}/lib/vlc/plugins/*/*.so
.include <bsd.port.mk>