Update multimedia/kdenlive to version 20.04.0
[dports.git] / multimedia / kodi / Makefile
1 # $FreeBSD$
2
3 PORTNAME=       kodi
4 DISTVERSION=    17.6
5 PORTREVISION=   16
6 CATEGORIES=     multimedia java
7
8 MAINTAINER=     ports@FreeBSD.org
9 COMMENT=        Award winning media center application
10
11 LICENSE=        GPLv2
12
13 ONLY_FOR_ARCHS= amd64 armv6 armv7 i386
14
15 BUILD_DEPENDS=  enca:converters/enca \
16                 gawk:lang/gawk \
17                 gperf:devel/gperf \
18                 cmake:devel/cmake \
19                 zip:archivers/zip \
20                 nasm:devel/nasm \
21                 swig3.0:devel/swig30
22 LIB_DEPENDS=    libass.so:multimedia/libass \
23                 libFLAC.so:audio/flac \
24                 libcdio.so:sysutils/libcdio \
25                 libcrossguid.so:devel/libcrossguid \
26                 libcurl.so:ftp/curl \
27                 libdbus-1.so:devel/dbus \
28                 libdcadec.so:multimedia/libdcadec \
29                 libenca.so:converters/enca \
30                 libexpat.so:textproc/expat2\
31                 libfontconfig.so:x11-fonts/fontconfig \
32                 libfreetype.so:print/freetype2 \
33                 libfribidi.so:converters/fribidi \
34                 libgcrypt.so:security/libgcrypt \
35                 libgmp.so:math/gmp \
36                 libgpg-error.so:security/libgpg-error \
37                 libgnutls.so:security/gnutls \
38                 libidn.so:dns/libidn \
39                 libinotify.so:devel/libinotify \
40                 libjasper.so:graphics/jasper \
41                 libltdl.so:devel/libltdl \
42                 liblzo2.so:archivers/lzo2 \
43                 libmodplug.so:audio/libmodplug \
44                 libmpeg2.so:multimedia/libmpeg2 \
45                 libnettle.so:security/nettle \
46                 libogg.so:audio/libogg \
47                 libp11-kit.so:security/p11-kit \
48                 libpcre.so:devel/pcre \
49                 libpng.so:graphics/png \
50                 libsamplerate.so:audio/libsamplerate \
51                 libsqlite3.so:databases/sqlite3 \
52                 libtag.so:audio/taglib \
53                 libtasn1.so:security/libtasn1 \
54                 libtiff.so:graphics/tiff \
55                 libtinyxml.so:textproc/tinyxml \
56                 libtspi.so:security/trousers \
57                 libunistring.so:devel/libunistring \
58                 libuuid.so:misc/e2fsprogs-libuuid \
59                 libvorbis.so:audio/libvorbis \
60                 libxslt.so:textproc/libxslt \
61                 libyajl.so:devel/yajl
62 RUN_DEPENDS=    ${PYTHON_PKGNAMEPREFIX}sqlite3>0:databases/py-sqlite3@${PY_FLAVOR}
63
64 USES=           autoreconf:build compiler:c++11-lib gettext gmake gnome iconv \
65                 jpeg libtool pkgconfig python:2.7 ssl
66
67 KODI_ARCH_i386= x86
68 KODI_ARCH_x86_64=x86_64
69 KODI_ARCH_armv6=armv6
70 KODI_ARCH_armv7=armv7
71
72 GNU_CONFIGURE=  yes
73 USE_JAVA=       yes
74 USE_GNOME=      libxml2
75 USE_LDCONFIG=   yes
76 JAVA_BUILD=     jre
77 NOPRECIOUSMAKEVARS=     yes
78 CONFIGURE_ENV=  OPENSSL_LIBS="-L${OPENSSLLIB}" \
79                 OPENSSL_CFLAGS="-I${OPENSSLINC}"
80
81 KODI_CODENAME=          Krypton
82 FFMPEG_VERS=            3.1.11
83 LIBDVDCSS_TAGNAME=      2f12236
84 LIBDVDNAV_TAGNAME=      981488f
85 LIBDVDREAD_TAGNAME=     17d99db
86
87 USE_GITHUB=     yes
88 GH_TUPLE=       xbmc:xbmc:${PORTVERSION}-${KODI_CODENAME} \
89                 xbmc:FFmpeg:${FFMPEG_VERS}-${KODI_CODENAME}-17.5:ffmpeg/tools/depends/target/ffmpeg \
90                 xbmc:libdvdcss:${LIBDVDCSS_TAGNAME}:libdvdcss/tools/depends/target/libdvdcss/native \
91                 xbmc:libdvdnav:${LIBDVDNAV_TAGNAME}:libdvdnav/tools/depends/target/libdvdnav/native \
92                 xbmc:libdvdread:${LIBDVDREAD_TAGNAME}:libdvdread/tools/depends/target/libdvdread/native
93
94 PLIST_SUB=      ARCH=${KODI_ARCH_${ARCH}}
95
96 OPTIONS_SUB=    yes
97 OPTIONS_DEFINE= AIRPLAY AIRTUNES AVAHI CEC DOCS \
98                 LCMS2 LIBBLURAY LIRC MYSQL NFS NONFREE PULSEAUDIO RTMP \
99                 SFTP SNDIO SMB VAAPI VDPAU WEBSERVER
100 OPTIONS_SINGLE=         RPI
101 OPTIONS_SINGLE_RPI=     RPI1 RPI2
102
103 OPTIONS_EXCLUDE_armv6=  LIRC VAAPI VDPAU
104 OPTIONS_EXCLUDE_armv7=  LIRC VAAPI VDPAU
105 OPTIONS_EXCLUDE_x86_64= RPI1 RPI2
106 OPTIONS_EXCLUDE_i386=   RPI1 RPI2
107
108 AIRPLAY_DESC=   AirPlay support via libplist
109 AIRTUNES_DESC=  AirTunes support via libshairplay
110 CEC_DESC=       CEC adapter support
111 NONFREE_DESC=   Enable non-free components (rar, ccx, ffmpeg)
112 SFTP_DESC=      SSH SFTP support via libssh
113 RPI1_DESC=      build for RPI1-B (cpu=arm1176jzf-s)
114 RPI2_DESC=      build for RPI2 (cpu=cortex-a7, neon enabled)
115
116 OPTIONS_DEFAULT=        AIRPLAY AIRTUNES AVAHI CEC LIRC \
117                 MYSQL NFS RTMP SFTP SMB VAAPI VDPAU WEBSERVER
118 OPTIONS_DEFAULT_armv6=  RPI1
119 OPTIONS_DEFAULT_armv7=  RPI1
120
121 AIRPLAY_LIB_DEPENDS=    libplist.so:devel/libplist
122 AIRPLAY_CONFIGURE_ENABLE=       airplay
123
124 AIRTUNES_LIB_DEPENDS=   libshairplay.so:audio/shairplay
125 AIRTUNES_CONFIGURE_ENABLE=      airtunes
126
127 AVAHI_LIB_DEPENDS=      libavahi-client.so:net/avahi-app
128 AVAHI_CONFIGURE_ENABLE= avahi
129
130 CEC_BUILD_DEPENDS=      libcec>=3.1.0:multimedia/libcec
131 CEC_LIB_DEPENDS=        libcec.so:multimedia/libcec
132 CEC_CONFIGURE_ENABLE=   libcec
133
134 LCMS2_LIB_DEPENDS=      liblcms2.so.2:graphics/lcms2
135 LCMS2_CONFIGURE_ENABLE= lcms2
136
137 LIBBLURAY_LIB_DEPENDS=  libbluray.so:multimedia/libbluray
138 LIBBLURAY_CONFIGURE_ENABLE=     libbluray
139
140 LIRC_RUN_DEPENDS=       lircd:comms/lirc
141
142 MYSQL_USES=     mysql
143 MYSQL_CONFIGURE_ENABLE= mysql
144
145 NFS_LIB_DEPENDS=        libnfs.so:net/libnfs
146 NFS_CONFIGURE_ENABLE=   nfs
147
148 NONFREE_CONFIGURE_ENABLE=       non-free
149 NONFREE_VARS=           NO_CDROM="Restricted binary distribution" \
150                         NO_PACKAGE="Restricted binary distribution"
151
152 PULSEAUDIO_LIB_DEPENDS= libpulse.so:audio/pulseaudio
153 PULSEAUDIO_CONFIGURE_ENABLE=    pulse
154
155 RPI1_CONFIGURE_ON=      --with-platform=raspberry-pi
156 RPI2_CONFIGURE_ON=      --with-platform=raspberry-pi2
157
158 RTMP_LIB_DEPENDS=       librtmp.so:multimedia/librtmp
159 RTMP_CONFIGURE_ENABLE=  rtmp
160
161 SNDIO_LIB_DEPENDS=      libsndio.so:audio/sndio
162 SNDIO_CONFIGURE_ENABLE= sndio
163 SNDIO_EXTRA_PATCHES=    ${PATCHDIR}/extra-patch-sndio
164
165 SMB_USES=               samba:lib
166 SMB_CONFIGURE_ENABLE=   samba
167
168 VAAPI_LIB_DEPENDS=      libva.so:multimedia/libva
169 VAAPI_CONFIGURE_ENABLE= vaapi
170
171 VDPAU_LIB_DEPENDS=      libvdpau.so:multimedia/libvdpau
172 VDPAU_CONFIGURE_ENABLE= vdpau
173
174 WEBSERVER_LIB_DEPENDS=  libmicrohttpd.so:www/libmicrohttpd
175 WEBSERVER_CONFIGURE_ENABLE=     webserver
176
177 SFTP_BUILD_DEPENDS=     ${LOCALBASE}/lib/libssh.so:security/libssh
178 SFTP_RUN_DEPENDS=       ${LOCALBASE}/lib/libssh.so:security/libssh
179 SFTP_CONFIGURE_ENABLE=  ssh
180
181 CONFIGURE_ARGS+=        --disable-debug --enable-gl --disable-gles \
182                         --disable-openmax --disable-tegra \
183                         --disable-profiling --enable-x11 --disable-alsa \
184                         --enable-dbus --enable-upnp --disable-mid \
185                         --disable-mdnsembedded --enable-libxslt \
186                         --disable-texturepacker --disable-libusb \
187                         --disable-libbluetooth --disable-libcap \
188                         --disable-gtest --disable-libav-compat
189
190 .include <bsd.port.options.mk>
191
192 .if ${ARCH} != armv6 && ${ARCH} != armv7
193 BUILD_DEPENDS+= gtk-update-icon-cache:x11-toolkits/gtk20
194 LIB_DEPENDS+=   libdrm.so:graphics/libdrm
195 RUN_DEPENDS+=   glxinfo:graphics/mesa-demos \
196                 xdpyinfo:x11/xdpyinfo
197 USES+=          gl sdl xorg
198 USE_XORG=       x11 xcb xext xmu xrandr xt xtst
199 USE_GL=         egl gl glu glew
200 USE_SDL=        image sdl2
201 INSTALLS_ICONS= yes
202 PLIST_SUB+=     ARM="@comment "
203 PLIST_SUB+=     X86=""
204 .else
205 # armv6 || armv7 (rpi1 and rpi2 only)
206 EXTRA_PATCHES+= ${FILESDIR}/extra-armv6_hal
207 CONFIGURE_ARGS+=        --enable-player=omxplayer
208 LIB_DEPENDS+=   libEGL.so:misc/raspberrypi-userland \
209                 libhal.so:sysutils/hal \
210                 libtiff.so:graphics/tiff
211 PLIST_SUB+=     ARM=""
212 PLIST_SUB+=     X86="@comment "
213 SUB_FILES=      pkg-message
214 .endif
215
216 post-patch:
217         ${REINPLACE_CMD} 's;make;gmake;' \
218                 ${WRKSRC}/bootstrap \
219                 ${WRKSRC}/codegenerator.mk \
220                 ${WRKSRC}/xbmc/Makefile.in
221         ${REINPLACE_CMD} 's;which swig;&3.0;' ${WRKSRC}/codegenerator.mk
222         ${RM} ${WRKSRC}/system/settings/rbp2.xml.orig
223
224 pre-configure:
225         cd ${WRKSRC} && ${SH} ./bootstrap
226
227 post-install:
228         ${INSTALL_MAN} ${WRKSRC}/docs/manpages/kodi.bin.1 ${STAGEDIR}${MAN1PREFIX}/man/man1
229         (cd ${STAGEDIR}${MAN1PREFIX}/man/man1 && ${LN} -sf kodi.bin.1.gz kodi.1.gz)
230         ${STRIP_CMD} ${STAGEDIR}${PREFIX}/lib/kodi/kodi.bin
231         ${FIND} ${STAGEDIR}${PREFIX}/lib/kodi -name '*.so' -or -name '*.xbs' -or -name '*.vis' \
232                 | ${XARGS} ${STRIP_CMD}
233 .if ${ARCH} != armv6 && ${ARCH} != armv7
234         ${STRIP_CMD} ${STAGEDIR}${PREFIX}/lib/kodi/kodi-xrandr
235 .endif
236
237 .include <bsd.port.mk>