summaryrefslogtreecommitdiff
path: root/multimedia/mlt7/Makefile
blob: 3f2d209bdca9dbb5efd1efc881d567d3ce42c451 (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
PORTNAME=		${_MLT_PORTNAME}
DISTVERSION=		${_MLT_VERSION}
PORTREVISION?=		1
CATEGORIES?=		multimedia
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
WWW=			https://www.mltframework.org/

LICENSE?=		GPLv2 GPLv3 LGPL21
LICENSE_COMB?=		multi

USES+=			alias cmake compiler:c++11-lang eigen:3 localbase \
			pathfix pkgconfig
USE_LDCONFIG=		yes

# Suppress errors with lld >= 17 due to undefined symbols.
LDFLAGS+=		-Wl,--undefined-version

DATADIR=		${PREFIX}/share/mlt-7

.ifndef(SLAVEPORT) # Master port.
USES+=			gnome mlt:7,nodepend
USE_GNOME=		libxml2

CMAKE_ON=		MOD_XML

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

PORTDOCS=		AUTHORS NEWS
PORTEXAMPLES=		demo

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

OPTIONS_GROUP=		MODULES
OPTIONS_GROUP_MODULES=	AVFORMAT DECKLINK FREI0R GDK JACKRACK KDENLIVE MOVIT NORMALIZE \
			OLDFILM OPENCV PLUS PLUSGPL RESAMPLE RTAUDIO RUBBERBAND SDL2 \
			SOX VIDSTAB VORBIS XINE
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

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_USE=		gnome=gdkpixbuf2,pango
GDK_CMAKE_BOOL=		MOD_GDK

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

KDENLIVE_DESC=		Enable kdenlive module
KDENLIVE_CMAKE_BOOL=	MOD_KDENLIVE

MOVIT_DESC=		Enable OpenGL module
MOVIT_USES=		gl xorg
MOVIT_USE=		gl=opengl xorg=x11
MOVIT_LIB_DEPENDS=	libmovit.so:graphics/movit \
			libepoxy.so:graphics/libepoxy
MOVIT_CMAKE_BOOL=	MOD_MOVIT

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_USES=		ebur128
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

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

pre-configure:
	${RM} ${STAGEDIR}${PREFIX}/man/man1/melt.1

common-post-install:
	${STRIP_CMD} ${STAGEDIR}${PREFIX}/bin/melt-7
	${STRIP_CMD} ${STAGEDIR}${PREFIX}/lib/libmlt-7.so.${PORTVERSION}
	${STRIP_CMD} ${STAGEDIR}${PREFIX}/lib/libmlt++-7.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/mlt7 for child ports
USES+=			mlt:7
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>