aboutsummaryrefslogtreecommitdiff
path: root/multimedia/mlt6/Makefile
blob: cfed953f8136bde04754c179c0ab06a726d16ec8 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
PORTNAME=		${_MLT_PORTNAME}
DISTVERSION=		${_MLT_VERSION}
PORTREVISION?=		4
CATEGORIES?=		multimedia
# Don't use GitHub "fake" downloads that are auto-generated from a
# tag; the project uploads tarballs for each release.
#               https://github.com/mltframework/mlt/releases/download/v6.26.1/mlt-6.26.1.tar.gz
MASTER_SITES=		https://github.com/mltframework/mlt/releases/download/v${DISTVERSION}/
DISTFILES=		mlt-${DISTVERSION}${EXTRACT_SUFX}
WRKSRC=			${WRKDIR}/mlt-${DISTVERSION}

MAINTAINER=		kde@FreeBSD.org
COMMENT?=		Multimedia framework for TV broadcasting

LICENSE?=		GPLv2 GPLv3 LGPL21
LICENSE_COMB?=		multi

USES+=			alias cmake compiler:c++11-lang eigen:3 localbase pkgconfig

DATADIR=		${PREFIX}/share/mlt

.ifndef(SLAVEPORT) # Master port.
CONFLICTS_INSTALL=	mlt-6.*

BROKEN_sparc64=		does not compile on sparc64 (invokes i386 asm)

USES+=			mlt:6,nodepend

# Explicitly disabled modules that are ouddated, unnecessary, or have
# their own port.
CMAKE_OFF=		MOD_SDL1 MOD_QT \
			SWIG_CSHARP SWIG_JAVA SWIG_LUA SWIG_NODEJS SWIG_PERL \
			SWIG_PHP SWIG_PYTHON SWIG_RUBY SWIG_TCL

PORTDOCS=		AUTHORS NEWS README docs
PORTEXAMPLES=		demo

OPTIONS_DEFINE=		DOCS EXAMPLES
OPTIONS_DEFAULT=	AVFORMAT FREI0R GDK KDENLIVE OPENGL PLUS PLUSGPL RESAMPLE \
			SDL2 SOX VIDSTAB VORBIS XML

OPTIONS_GROUP=		MODULES
OPTIONS_GROUP_MODULES=	AVFORMAT DECKLINK FEEDS FREI0R GDK GTK2 JACKRACK \
			KDENLIVE LUMAS MOTION_EST NORMALIZE OLDFILM OPENCV \
			OPENGL PLUS PLUSGPL RESAMPLE RTAUDIO RUBBERBAND \
			SDL2 SOX VIDSTAB VMFX VORBIS XINE XML

OPTIONS_SUB=		yes

AVFORMAT_DESC=		Enable avformat module
AVFORMAT_LIB_DEPENDS=	libavformat.so:multimedia/ffmpeg
AVFORMAT_CMAKE_BOOL=	MOD_AVFORMAT

DECKLINK_DESC=		Enable decklink module
DECKLINK_CMAKE_BOOL=	MOD_DECKLINK

FEEDS_DESC=		Enable feeds module
FEEDS_CMAKE_BOOL=	MOD_FEEDS

FREI0R_DESC=		Enable frei0r module
FREI0R_BUILD_DEPENDS=	${LOCALBASE}/include/frei0r.h:graphics/frei0r
FREI0R_CMAKE_BOOL=	MOD_FREI0R

GDK_DESC=		Enable gdk module
GDK_LIB_DEPENDS=	libexif.so:graphics/libexif \
			libfontconfig.so:x11-fonts/fontconfig \
			libfreetype.so:print/freetype2 \
			libharfbuzz.so:print/harfbuzz
GDK_USES=		gnome
GDK_USE=		gnome=gdkpixbuf2,pango
GDK_CMAKE_BOOL=		MOD_GDK

GTK2_DESC=		Enable gtk2 module
GTK2_USES=		gnome
GTK2_USE=		gnome=cairo,gtk20
GTK2_CMAKE_BOOL=	MOD_GTK2

JACKRACK_DESC=		Enable jackrack module
JACKRACK_BUILD_DEPENDS=	${LOCALBASE}/include/ladspa.h:audio/ladspa
JACKRACK_LIB_DEPENDS=	libjack.so:audio/jack
JACKRACK_USES=		gnome
JACKRACK_USE=		gnome=glib20
JACKRACK_CMAKE_BOOL=	MOD_JACKRACK

KDENLIVE_DESC=		Enable kdenlive module
KDENLIVE_CMAKE_BOOL=	MOD_KDENLIVE

LUMAS_DESC=		Enable lumas module
LUMAS_CMAKE_BOOL=	MOD_LUMAS

MOTION_EST_DESC=	Enable motion estimation module
MOTION_EST_CMAKE_BOOL=	MOD_MOTION_EST

NORMALIZE_DESC=		Enable normalize module
NORMALIZE_CMAKE_BOOL=	MOD_NORMALIZE

OLDFILM_DESC=		Enable oldfilm module
OLDFILM_CMAKE_BOOL=	MOD_OLDFILM

OPENCV_DESC=		Enable OpenCV module
OPENCV_LIB_DEPENDS=	libopencv_core.so:graphics/opencv
OPENCV_CMAKE_BOOL=	MOD_OPENCV

OPENGL_DESC=		Enable OpenGL module
OPENGL_CMAKE_BOOL=	MOD_OPENGL
OPENGL_LIB_DEPENDS=	libepoxy.so:graphics/libepoxy \
			libmovit.so:graphics/movit
OPENGL_USES=		gl xorg
OPENGL_USE=		gl=gl xorg=x11

PLUSGPL_DESC=		Enable plus GPL module
PLUSGPL_CMAKE_BOOL=	MOD_PLUSGPL

PLUS_DESC=		Enable plus module
PLUS_LIB_DEPENDS=	libfftw3.so:math/fftw3
PLUS_CMAKE_BOOL=	MOD_PLUS

RESAMPLE_DESC=		Enable resample module
RESAMPLE_LIB_DEPENDS=	libsamplerate.so:audio/libsamplerate
RESAMPLE_CMAKE_BOOL=	MOD_RESAMPLE

RTAUDIO_DESC=		Enable RtAudio module
RTAUDIO_LIB_DEPENDS=	librtaudio.so:audio/rtaudio \
			libpulse-simple.so:audio/pulseaudio
RTAUDIO_CMAKE_BOOL=	MOD_RTAUDIO

RUBBERBAND_DESC=	Enable rubberband module
RUBBERBAND_LIB_DEPENDS=	librubberband.so:audio/rubberband
RUBBERBAND_CMAKE_BOOL=	MOD_RUBBERBAND

SDL2_DESC=		Enable SDL2 module
SDL2_USES=		sdl
SDL2_USE=		sdl=image2
SDL2_CMAKE_BOOL=	MOD_SDL2

SOX_DESC=		Enable SoX module
SOX_LIB_DEPENDS=	libsox.so:audio/sox
SOX_CMAKE_BOOL=		MOD_SOX

VIDSTAB_DESC=		Enable vid.stab module
VIDSTAB_LIB_DEPENDS=	libvidstab.so:multimedia/vid.stab
VIDSTAB_CMAKE_BOOL=	MOD_VIDSTAB

VMFX_DESC=		Enable vmfx module
VMFX_CMAKE_BOOL=	MOD_VMFX

VORBIS_DESC=		Enable Vorbis module
VORBIS_LIB_DEPENDS=	libvorbis.so:audio/libvorbis libogg.so:audio/libogg
VORBIS_CMAKE_BOOL=	MOD_VORBIS

XINE_DESC=		Enable xine module
XINE_CMAKE_BOOL=	MOD_XINE

XML_DESC=		Enable XML module
XML_USES=		gnome
XML_USE=		gnome=libxml2
XML_CMAKE_BOOL=		MOD_XML

pre-configure:
	@${REINPLACE_CMD} -e 's,/usr/local,${LOCALBASE},' \
		${WRKSRC}/src/modules/frei0r/factory.c \
		${WRKSRC}/src/modules/jackrack/plugin_mgr.c

common-post-install:
	${INSTALL_MAN} ${WRKSRC}/docs/melt.1 ${STAGEDIR}${MANPREFIX}/man/man1/melt.1
	@${RM} ${WRKSRC}/docs/melt.1
	${STRIP_CMD} ${STAGEDIR}${PREFIX}/bin/melt
	${STRIP_CMD} ${STAGEDIR}${PREFIX}/lib/libmlt.so.${PORTVERSION}
	${STRIP_CMD} ${STAGEDIR}${PREFIX}/lib/libmlt++.so.${PORTVERSION}

post-install-DOCS-on:
.for f in ${PORTDOCS}
	cd ${WRKSRC} && ${COPYTREE_SHARE} ${f} ${STAGEDIR}${DOCSDIR}
.endfor

post-install-EXAMPLES-on:
.for f in ${PORTEXAMPLES}
	cd ${WRKSRC} && ${COPYTREE_SHARE} ${f} ${STAGEDIR}${EXAMPLESDIR}
.endfor

.else # Slave port.
PORTSCOUT=		ignore:1

# Depend on multimedia/mlt6 for child ports
USES+=			mlt:6

PLIST?=			${.CURDIR}/pkg-plist

INSTALL_WRKSRC?=	${BUILD_WRKSRC}
.endif

post-install: common-post-install
	${STRIP_CMD} ${STAGEDIR}${PREFIX}/lib/${PORTNAME}/* 2>/dev/null || ${TRUE}
	@${RMDIR} -p ${STAGEDIR}${PREFIX}/lib/${PORTNAME} 2>/dev/null || ${TRUE}

.include <bsd.port.mk>