Tweak multimedia/kaffeine version 2.0.18_5
[dports.git] / multimedia / handbrake / Makefile
1 # Created by: Andrew Thompson <andy@fud.org.nz>
2
3 PORTNAME=       handbrake
4 DISTVERSION=    1.4.2
5 PORTREVISION=   1
6 CATEGORIES=     multimedia
7 MASTER_SITES=   https://github.com/HandBrake/HandBrake/releases/download/${DISTVERSION}/
8 MASTER_SITES+=  https://github.com/HandBrake/HandBrake-contribs/releases/download/contribs/:contrib
9 DISTNAME=       HandBrake-${DISTVERSION}
10 DISTFILES=      ${DISTNAME}-source.tar.bz2 ${CONTRIB_FILES:S/$/:contrib/}
11 DIST_SUBDIR=    ${PORTNAME}
12
13 MAINTAINER=     naito.yuichiro@gmail.com
14 COMMENT=        Versatile DVD ripper and video transcoder
15
16 LICENSE=        GPLv2
17 LICENSE_FILE=   ${WRKSRC}/COPYING
18
19 ONLY_FOR_ARCHS= amd64 i386 powerpc powerpc64 powerpc64le
20
21 BUILD_DEPENDS=  bash:shells/bash \
22                 nasm:devel/nasm \
23                 cmake:devel/cmake \
24                 meson:devel/meson
25 LIB_DEPENDS=    libdbus-1.so:devel/dbus \
26                 libgudev-1.0.so:devel/libgudev \
27                 libharfbuzz.so:print/harfbuzz \
28                 libfontconfig.so:x11-fonts/fontconfig \
29                 libfreetype.so:print/freetype2 \
30                 libfribidi.so:converters/fribidi \
31                 libturbojpeg.so:graphics/libjpeg-turbo \
32                 libxml2.so:textproc/libxml2 \
33                 libass.so:multimedia/libass \
34                 libspeex.so:audio/speex \
35                 libogg.so:audio/libogg \
36                 libvorbis.so:audio/libvorbis \
37                 libvorbisenc.so:audio/libvorbis \
38                 libtheoradec.so:multimedia/libtheora \
39                 libtheoraenc.so:multimedia/libtheora \
40                 libx264.so:multimedia/libx264 \
41                 libvpx.so:multimedia/libvpx \
42                 libmp3lame.so:audio/lame \
43                 libopus.so:audio/opus \
44                 libjansson.so:devel/jansson
45
46 USES=           autoreconf:build compiler:c11 gmake iconv libtool:build \
47                 localbase:ldflags ninja:build pkgconfig python:3.6+,build
48
49 CONTRIB_FILES=  fdk-aac-2.0.1.tar.gz \
50                 ffmpeg-4.4.tar.bz2 \
51                 libbluray-1.3.0.tar.bz2 \
52                 libdvdnav-6.1.1.tar.bz2 \
53                 libdvdread-6.1.1.tar.bz2 \
54                 dav1d-0.9.0.tar.bz2 \
55                 x265_3.5.tar.gz \
56                 zimg-3.0.1.tar.gz
57
58 .if !defined(PACKAGE_BUILDING)
59 # DVDCSS version hardcoded in contrib/libdvdread/libdvdread-5.0.0-6-gcb1ae87/src/dvd_input.c (dlopen'ed)
60 LIB_DEPENDS+=   libdvdcss.so:multimedia/libdvdcss
61 .endif
62
63 GNU_CONFIGURE=  yes
64 MAKE_ENV=       V=1 ACLOCAL=${LOCALBASE}/bin/aclocal
65
66 BINARY_ALIAS=   python3=${PYTHON_VERSION}
67
68 CONFIGURE_ARGS= --force --enable-x265
69 CONFIGURE_TARGET=       build
70
71 BUILD_WRKSRC=   ${WRKSRC}/build
72 INSTALL_WRKSRC= ${WRKSRC}/build
73 MAKEFILE=       GNUmakefile
74 ALL_TARGET=     #
75 INSTALL_TARGET= install-strip
76
77 NOPRECIOUSMAKEVARS=     yes                     # for ffmpeg and x264
78
79 # Enforce linking to bundled libraries instead of system libraries
80 LDFLAGS+=       -L${BUILD_WRKSRC}/contrib/lib
81
82 OPTIONS_DEFINE=         FDK_AAC MFX X11
83 OPTIONS_DEFAULT=        MFX X11
84 OPTIONS_EXCLUDE_powerpc=        MFX
85 OPTIONS_EXCLUDE_powerpc64=      MFX
86 OPTIONS_EXCLUDE_powerpc64le=    MFX
87
88 OPTIONS_SUB=    yes
89
90 FDK_AAC_DESC=   Enable non-free Fraunhofer FDK AAC codec
91 MFX_DESC=       Intel MediaSDK (aka Quick Sync Video)
92 X11_DESC=       Build GTK+3 based GUI program
93
94 FDK_AAC_CONFIGURE_ENABLE=       fdk-aac
95 FDK_AAC_VARS=                   LICENSE+=FDK_AAC LICENSE_COMB=multi
96 LICENSE_NAME_FDK_AAC=           Software License for The Fraunhofer FDK AAC Codec Library for Android
97 LICENSE_FILE_FDK_AAC=           ${WRKDIR}/${DISTFILES:Mfdk*:R:R}/NOTICE
98 LICENSE_PERMS_FDK_AAC=          dist-mirror pkg-mirror auto-accept
99
100 MFX_LIB_DEPENDS=        libmfx.so:multimedia/intel-media-sdk \
101                         libva-drm.so:multimedia/libva
102 MFX_CONFIGURE_ON=       --enable-qsv
103
104 X11_CONFIGURE_ENV=      COMPILER_PATH=${LOCALBASE}/bin
105 X11_MAKE_ENV=   COMPILER_PATH=${LOCALBASE}/bin
106 X11_CONFIGURE_ON=       --disable-gtk-update-checks
107 X11_CONFIGURE_OFF=      --disable-gtk
108 X11_LIB_DEPENDS=        libvpx.so:multimedia/libvpx \
109                         libnotify.so:devel/libnotify
110 X11_USES=       gettext desktop-file-utils gnome
111 X11_USE=        gstreamer1=gdkpixbuf,libav \
112                 gnome=gtk30,intltool,cairo,gdkpixbuf2
113
114 # HandBrake tries to fetch its dependencies during build phase, which is not
115 # considered good in FreeBSD.  Instead, we will provide the downloaded files.
116 post-extract: .SILENT
117         ${MKDIR} ${WRKSRC}/download
118
119 pre-configure:
120         cd ${DISTDIR}/${DIST_SUBDIR} && \
121             ${INSTALL_DATA} ${CONTRIB_FILES} \
122             ${WRKSRC}/download
123 # Following patches reduces warnings with clang.
124         ${CP} ${FILESDIR}/P00-freebsd-libavutil-x86-asm-h.patch ${WRKSRC}/contrib/ffmpeg
125         ${CP} ${FILESDIR}/P01-freebsd-ifo_types.h.patch ${WRKSRC}/contrib/libdvdread
126 # for powerpc64
127 # picked from multimedia/ffmpeg/files/patch-libswscale_ppc_yuv2rgb__altivec.c
128         ${CP} ${FILESDIR}/P02-freebsd-ppc-libswscale.patch ${WRKSRC}/contrib/ffmpeg
129
130 post-install-X11-on:
131         ${LN} -sf ghb ${STAGEDIR}${PREFIX}/bin/HandBrake
132
133 .include <bsd.port.mk>