Line 0
Link Here
|
|
|
1 |
# Created by: Felix Palmen <felix@palmen-it.de> |
2 |
# $FreeBSD$ |
3 |
|
4 |
PORTNAME= makemkv |
5 |
PORTVERSION= 1.14.4 |
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 |
FDKAACVERSION= 2.0.0 |
52 |
FFMPEGVERSION= 4.1.3 |
53 |
OPENSSLVERSION= ${"${linux_ARGS:Mc7}" != "":?1.0.2:1.0.1} |
54 |
OPENSSLPATCHLEVEL= ${"${linux_ARGS:Mc7}" != "":?k:e} |
55 |
OPENSSLFULLVER= ${OPENSSLVERSION}${OPENSSLPATCHLEVEL} |
56 |
|
57 |
LINUXTRIPLET= ${LINUX_ARCH}-redhat-linux |
58 |
LINUXLIBDIR= ${LINUXBASE}/${"${LINUX_ARCH:Mx86_64}" != "":?lib64:lib} |
59 |
OPENSSLTARGET= ${"${LINUX_ARCH:Mx86_64}" != "":?linux-x86_64:linux-elf} |
60 |
|
61 |
PATCHELF_CMD= ${LOCALBASE}/bin/patchelf |
62 |
OPTPREFIX= /opt/makemkv |
63 |
|
64 |
CFLAGS+= -DFORCE_OPENSSL_NO_EC \ |
65 |
-I${WRKDIR}/openssl-${OPENSSLFULLVER}/include |
66 |
CPPFLAGS+= -I${LOCALBASE}/include |
67 |
LDFLAGS+= -L${WRKDIR}/staticlibs/lib |
68 |
HAS_CONFIGURE= yes |
69 |
CONFIGURE_ARGS= --prefix=${OPTPREFIX} --disable-gui --host=${LINUXTRIPLET} |
70 |
CONFIGURE_ENV= CC=${LINUXTRIPLET}-gcc CXX=${LINUXTRIPLET}-g++ \ |
71 |
PATH=${WRKDIR}/staticlibs/bin:${PATH} \ |
72 |
PKG_CONFIG_PATH=${WRKDIR}/staticlibs/lib/pkgconfig |
73 |
MAKE_ENV= PATH=${WRKDIR}/staticlibs/bin:${PATH} |
74 |
|
75 |
post-patch: |
76 |
@${REINPLACE_CMD} -e 's:INSTALL) -D:INSTALL):' \ |
77 |
${WRKSRC}/Makefile.in |
78 |
@${REINPLACE_CMD} -e 's:/bin/bash:/bin/sh:' \ |
79 |
-e 's:x86_64:amd64:' \ |
80 |
-e 's:-t \([^ ]*\) \([^ ]*\):\2 \1:' \ |
81 |
${WRKDIR}/makemkv-bin-${PORTVERSION}/Makefile |
82 |
|
83 |
pre-configure: |
84 |
${MKDIR} ${WRKDIR}/staticlibs/bin |
85 |
cd ${WRKDIR}/staticlibs/bin; \ |
86 |
for t in gcc link ld objdump ar nm strip ranlib g++; do \ |
87 |
${LN} -s ${LINUXBASE}/bin/$$t ${LINUXTRIPLET}-$$t; \ |
88 |
done |
89 |
${MKDIR} ${WRKDIR}/staticlibs/lib |
90 |
cd ${WRKDIR}/staticlibs/lib; \ |
91 |
${LN} -s ${LINUXLIBDIR}/libz.so.1 libz.so; \ |
92 |
${LN} -s ${LINUXLIBDIR}/libcrypto.so.10 libcrypto.so; \ |
93 |
${LN} -s ${LINUXLIBDIR}/libexpat.so.1 libexpat.so |
94 |
cd ${WRKDIR}/fdk-aac-${FDKAACVERSION}; \ |
95 |
PATH=${WRKDIR}/staticlibs/bin:$$PATH \ |
96 |
LDFLAGS=-L${WRKDIR}/staticlibs/lib \ |
97 |
./configure --prefix=${WRKDIR}/staticlibs \ |
98 |
--disable-shared --enable-static --with-pic \ |
99 |
--host=${LINUXTRIPLET}; \ |
100 |
PATH=${WRKDIR}/staticlibs/bin:$$PATH \ |
101 |
${MAKE_CMD} install |
102 |
cd ${WRKDIR}/ffmpeg-${FFMPEGVERSION}; \ |
103 |
PATH=${WRKDIR}/staticlibs/bin:$$PATH \ |
104 |
PKG_CONFIG_PATH=${WRKDIR}/staticlibs/lib/pkgconfig \ |
105 |
CPPFLAGS="-Dcaddr_t=void\* -D__daddr_t_defined" \ |
106 |
LDFLAGS=-L${WRKDIR}/staticlibs/lib \ |
107 |
./configure --prefix=${WRKDIR}/staticlibs \ |
108 |
--disable-shared --enable-static --enable-pic \ |
109 |
--enable-libfdk-aac --pkg-config=pkg-config \ |
110 |
--cross-prefix=${LINUXTRIPLET}- --arch=${LINUX_ARCH} \ |
111 |
--target-os=linux --host-cc=${CC}; \ |
112 |
PATH=${WRKDIR}/staticlibs/bin:$$PATH \ |
113 |
${MAKE_CMD} ARCH=x86 && \ |
114 |
PATH=${WRKDIR}/staticlibs/bin:$$PATH \ |
115 |
${MAKE_CMD} install |
116 |
cd ${WRKDIR}/openssl-${OPENSSLFULLVER}; \ |
117 |
./Configure --openssldir= --prefix=/usr ${OPENSSLTARGET} |
118 |
|
119 |
pre-install: |
120 |
${MKDIR} ${STAGEDIR}${OPTPREFIX}/lib |
121 |
${MKDIR} ${STAGEDIR}${OPTPREFIX}/bin |
122 |
${MKDIR} ${STAGEDIR}${OPTPREFIX}/share |
123 |
${MKDIR} ${STAGEDIR}${PREFIX}/man/man1 |
124 |
${INSTALL_MAN} ${FILESDIR}/makemkvcon.1 \ |
125 |
${STAGEDIR}${PREFIX}/man/man1 |
126 |
|
127 |
post-stage: |
128 |
cd ${WRKDIR}/makemkv-bin-${PORTVERSION}; \ |
129 |
${MKDIR} tmp; \ |
130 |
${ECHO_CMD} accepted > tmp/eula_accepted; \ |
131 |
${MAKE_CMD} DESTDIR=${STAGEDIR} PREFIX=${OPTPREFIX} install |
132 |
${PATCHELF_CMD} --set-rpath ${OPTPREFIX}/lib \ |
133 |
${STAGEDIR}${OPTPREFIX}/bin/makemkvcon |
134 |
${REINPLACE_CMD} -e 's:/sys/bus/scsi:/opt/makemkv/:' \ |
135 |
${STAGEDIR}${OPTPREFIX}/bin/makemkvcon |
136 |
${INSTALL_SCRIPT} ${SCRIPTDIR}/makemkvcon \ |
137 |
${STAGEDIR}${PREFIX}/bin |
138 |
${INSTALL_SCRIPT} ${SCRIPTDIR}/update-makemkv-drives \ |
139 |
${STAGEDIR}${PREFIX}/sbin |
140 |
|
141 |
.include <bsd.port.mk> |