Line 0
Link Here
|
|
|
1 |
# Created by: Felix Palmen <felix@palmen-it.de> |
2 |
# $FreeBSD$ |
3 |
|
4 |
PORTNAME= makemkv |
5 |
PORTVERSION= 1.14.5 |
6 |
CATEGORIES= multimedia |
7 |
MASTER_SITES= http://www.makemkv.com/download/:makemkv \ |
8 |
http://www.makemkv.com/download/old/:makemkv \ |
9 |
SF/opencore-amr/fdk-aac/:fdkaac \ |
10 |
https://ffmpeg.org/releases/:ffmpeg \ |
11 |
https://www.openssl.org/source/old/${OPENSSLVERSION}/:openssl |
12 |
DISTFILES= makemkv-oss-${PORTVERSION}.tar.gz:makemkv \ |
13 |
makemkv-bin-${PORTVERSION}.tar.gz:makemkv \ |
14 |
fdk-aac-${FDKAACVERSION}.tar.gz:fdkaac \ |
15 |
ffmpeg-${FFMPEGVERSION}.tar.bz2:ffmpeg \ |
16 |
openssl-${OPENSSLFULLVER}.tar.gz:openssl |
17 |
DIST_SUBDIR= ${PORTNAME} |
18 |
|
19 |
MAINTAINER= felix@palmen-it.de |
20 |
COMMENT= Video converter reading from DVD and Bluray |
21 |
|
22 |
LICENSE= MAKEMKV FDK LGPL21+ OpenSSL |
23 |
LICENSE_COMB= multi |
24 |
LICENSE_NAME_MAKEMKV= The MakeMKV EULA |
25 |
LICENSE_NAME_FDK= The FDK AAC License |
26 |
LICENSE_FILE_MAKEMKV= ${WRKDIR}/makemkv-bin-${PORTVERSION}/src/eula_en_linux.txt |
27 |
LICENSE_FILE_FDK= ${WRKDIR}/fdk-aac-${FDKAACVERSION}/NOTICE |
28 |
LICENSE_PERMS_MAKEMKV= no-dist-mirror no-dist-sell no-pkg-mirror no-pkg-sell \ |
29 |
no-auto-accept |
30 |
LICENSE_PERMS_FDK= dist-mirror no-dist-sell pkg-mirror no-pkg-sell \ |
31 |
auto-accept |
32 |
LICENSE_DISTFILES_FDK= fdk-aac-${FDKAACVERSION}.tar.gz |
33 |
LICENSE_DISTFILES_LGPL21+ = ffmpeg-${FFMPEGVERSION}.tar.bz2 |
34 |
LICENSE_DISTFILES_OpenSSL= openssl-${OPENSSLFULLVER}.tar.gz |
35 |
LICENSE_DISTFILES_MAKEMKV= makemkv-bin-${PORTVERSION}.tar.gz \ |
36 |
makemkv-oss-${PORTVERSION}.tar.gz |
37 |
|
38 |
ONLY_FOR_ARCHS= amd64 i386 |
39 |
USES= gmake linux pkgconfig perl5 |
40 |
USE_LINUX= base expat expat:build openssl openssl:build devtools:build |
41 |
USE_PERL5= build |
42 |
BUILD_DEPENDS= nasm>0:devel/nasm \ |
43 |
${LOCALBASE}/include/expat.h:textproc/expat2 \ |
44 |
patchelf>0:sysutils/patchelf |
45 |
|
46 |
RESTRICTED= yes |
47 |
RESTRICTED_FILES= makemkv-bin-${PORTVERSION}.tar.gz |
48 |
|
49 |
WRKSRC= ${WRKDIR}/makemkv-oss-${PORTVERSION} |
50 |
|
51 |
SUB_FILES= update-makemkv-drives |
52 |
SUB_LIST= LINUXBASE=${LINUXBASE} |
53 |
PLIST_SUB= LINUXBASE=${LINUXBASE} |
54 |
|
55 |
FDKAACVERSION= 2.0.0 |
56 |
FFMPEGVERSION= 4.2.1 |
57 |
OPENSSLVERSION= ${"${linux_ARGS:Mc7}" != "":?1.0.2:1.0.1} |
58 |
OPENSSLPATCHLEVEL= ${"${linux_ARGS:Mc7}" != "":?k:e} |
59 |
OPENSSLFULLVER= ${OPENSSLVERSION}${OPENSSLPATCHLEVEL} |
60 |
|
61 |
LINUXARCH= ${ARCH:S/amd64/x86_64/} |
62 |
LINUXTRIPLET= ${LINUXARCH}-redhat-linux |
63 |
LINUXLIBDIR= ${LINUXBASE}/${"${LINUXARCH:Mx86_64}" != "":?lib64:lib} |
64 |
OPENSSLTARGET= ${"${LINUXARCH:Mx86_64}" != "":?linux-x86_64:linux-elf} |
65 |
|
66 |
PATCHELF_CMD= ${LOCALBASE}/bin/patchelf |
67 |
|
68 |
CFLAGS+= -DFORCE_OPENSSL_NO_EC \ |
69 |
-I${WRKDIR}/openssl-${OPENSSLFULLVER}/include |
70 |
CPPFLAGS+= -I${LOCALBASE}/include |
71 |
LDFLAGS+= -L${WRKDIR}/staticlibs/lib |
72 |
HAS_CONFIGURE= yes |
73 |
CONFIGURE_ARGS= --prefix=${PREFIX} --disable-gui --host=${LINUXTRIPLET} \ |
74 |
--libdir=${PREFIX}/lib/makemkv |
75 |
CONFIGURE_ENV= CC=${LINUXTRIPLET}-gcc CXX=${LINUXTRIPLET}-g++ \ |
76 |
PATH=${WRKDIR}/staticlibs/bin:${PATH} \ |
77 |
PKG_CONFIG_PATH=${WRKDIR}/staticlibs/lib/pkgconfig |
78 |
MAKE_ENV= PATH=${WRKDIR}/staticlibs/bin:${PATH} |
79 |
|
80 |
post-patch: |
81 |
@${REINPLACE_CMD} -e 's:INSTALL) -D:INSTALL):' \ |
82 |
${WRKSRC}/Makefile.in |
83 |
@${REINPLACE_CMD} -e 's:/bin/bash:/bin/sh:' \ |
84 |
-e 's:x86_64:amd64:' \ |
85 |
-e 's:-t \([^ ]*\) \([^ ]*\):\2 \1:' \ |
86 |
${WRKDIR}/makemkv-bin-${PORTVERSION}/Makefile |
87 |
|
88 |
pre-configure: |
89 |
${MKDIR} ${WRKDIR}/staticlibs/bin |
90 |
cd ${WRKDIR}/staticlibs/bin; \ |
91 |
for t in gcc link ld objdump ar nm strip ranlib g++; do \ |
92 |
${LN} -s ${LINUXBASE}/bin/$$t ${LINUXTRIPLET}-$$t; \ |
93 |
done |
94 |
${MKDIR} ${WRKDIR}/staticlibs/lib |
95 |
cd ${WRKDIR}/staticlibs/lib; \ |
96 |
${LN} -s ${LINUXLIBDIR}/libz.so.1 libz.so; \ |
97 |
${LN} -s ${LINUXLIBDIR}/libcrypto.so.10 libcrypto.so; \ |
98 |
${LN} -s ${LINUXLIBDIR}/libexpat.so.1 libexpat.so |
99 |
cd ${WRKDIR}/fdk-aac-${FDKAACVERSION}; \ |
100 |
PATH=${WRKDIR}/staticlibs/bin:$$PATH \ |
101 |
LDFLAGS=-L${WRKDIR}/staticlibs/lib \ |
102 |
CXXFLAGS="${CFLAGS}" \ |
103 |
./configure --prefix=${WRKDIR}/staticlibs \ |
104 |
--disable-shared --enable-static --with-pic \ |
105 |
--host=${LINUXTRIPLET} --disable-silent-rules; \ |
106 |
PATH=${WRKDIR}/staticlibs/bin:$$PATH \ |
107 |
CXXFLAGS="${CFLAGS}" \ |
108 |
${MAKE_CMD} install |
109 |
cd ${WRKDIR}/ffmpeg-${FFMPEGVERSION}; \ |
110 |
PATH=${WRKDIR}/staticlibs/bin:$$PATH \ |
111 |
PKG_CONFIG_PATH=${WRKDIR}/staticlibs/lib/pkgconfig \ |
112 |
CPPFLAGS="-Dcaddr_t=void\* -D__daddr_t_defined" \ |
113 |
LDFLAGS=-L${WRKDIR}/staticlibs/lib \ |
114 |
CFLAGS="${CFLAGS}" \ |
115 |
./configure --prefix=${WRKDIR}/staticlibs \ |
116 |
--disable-shared --enable-static --enable-pic \ |
117 |
--enable-libfdk-aac --pkg-config=pkg-config \ |
118 |
--cross-prefix=${LINUXTRIPLET}- --arch=${LINUXARCH} \ |
119 |
--target-os=linux --host-cc=${CC}; \ |
120 |
PATH=${WRKDIR}/staticlibs/bin:$$PATH \ |
121 |
CFLAGS="${CFLAGS}" \ |
122 |
${MAKE_CMD} V=1 ARCH=x86 && \ |
123 |
PATH=${WRKDIR}/staticlibs/bin:$$PATH \ |
124 |
${MAKE_CMD} install |
125 |
cd ${WRKDIR}/openssl-${OPENSSLFULLVER}; \ |
126 |
./Configure --openssldir= --prefix=/usr ${OPENSSLTARGET} |
127 |
|
128 |
pre-install: |
129 |
${MKDIR} ${STAGEDIR}${PREFIX}/lib/makemkv |
130 |
|
131 |
post-install: |
132 |
${INSTALL_MAN} ${FILESDIR}/makemkvcon.1 \ |
133 |
${STAGEDIR}${PREFIX}/man/man1 |
134 |
cd ${WRKDIR}/makemkv-bin-${PORTVERSION}; \ |
135 |
${MKDIR} tmp; \ |
136 |
${ECHO_CMD} accepted > tmp/eula_accepted; \ |
137 |
${MAKE_CMD} DESTDIR=${STAGEDIR} PREFIX=${PREFIX} install |
138 |
${PATCHELF_CMD} --set-rpath ${PREFIX}/lib/makemkv \ |
139 |
${STAGEDIR}${PREFIX}/bin/makemkvcon |
140 |
${REINPLACE_CMD} -e 's:/sys/bus/scsi:/etc/makemkv/:' \ |
141 |
${STAGEDIR}${PREFIX}/bin/makemkvcon |
142 |
${INSTALL_SCRIPT} ${WRKDIR}/update-makemkv-drives \ |
143 |
${STAGEDIR}${PREFIX}/sbin |
144 |
|
145 |
.include <bsd.port.pre.mk> |
146 |
|
147 |
.if ${linux_ARGS} == c6 |
148 |
SSP_CFLAGS?= -fstack-protector |
149 |
.endif |
150 |
|
151 |
.include <bsd.port.post.mk> |