summaryrefslogtreecommitdiffstats
path: root/multimedia/vapoursynth/Makefile
blob: 5fa1f5d59009c60d282653b9d474b309525e5f9e (plain)
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
# $FreeBSD$

PORTNAME=	vapoursynth
PORTVERSION=	R38
CATEGORIES=	multimedia

MAINTAINER=	jbeich@FreeBSD.org
COMMENT=	Video processing framework with simplicity in mind

LICENSE=	LGPL21+

USE_GITHUB=	yes

USES=		autoreconf gmake libtool localbase pathfix pkgconfig
GNU_CONFIGURE=	yes
CPPFLAGS+=	-D_GLIBCXX_USE_C99 # XXX ports/193528
INSTALL_TARGET=	install-strip
USE_LDCONFIG=	yes
DATADIR=	${PREFIX}/lib/vapoursynth

OPTIONS_DEFINE=	DEBUG DOCS FRAME_GUARD
OPTIONS_DEFAULT=${OPTIONS_GROUP_COMPS} ${OPTIONS_GROUP_PLUGINS}
OPTIONS_SUB=	yes

# XXX After r417413 poudriere requires textproc/py-sphinx being built
# with the same python version as USES=python here but it's currently
# not possible due to https://github.com/freebsd/poudriere/issues/259
.if defined(PACKAGE_BUILDING)
OPTIONS_EXCLUDE=DOCS
.endif

OPTIONS_DEFINE_amd64=	SIMD
OPTIONS_DEFINE_i386=	SIMD
OPTIONS_DEFAULT_amd64=	SIMD

OPTIONS_GROUP=		COMPS PLUGINS
COMPS_DESC=		Components
OPTIONS_GROUP_COMPS=	CORE PYTHON VSPIPE VSSCRIPT
PLUGINS_DESC=		Plugins
OPTIONS_GROUP_PLUGINS=	ASS EEDI3 IMAGEMAGICK MISCFILTERS MORPHO TESSERACT \
			REMOVEGRAIN VINVERSE VIVTC

# General options

DEBUG_CONFIGURE_ENABLE=		debug

DOCS_BUILD_DEPENDS=		sphinx-build:textproc/py-sphinx
DOCS_USES=			makeinfo
DOCS_INFO=			VapourSynth
DOCS_PORTDOCS=			*

FRAME_GUARD_DESC=		Check integrity after each filter
FRAME_GUARD_CONFIGURE_ENABLE=	guard-pattern

# VSSCRIPT or REMOVEGRAIN
SIMD_BUILD_DEPENDS=		yasm:devel/yasm
SIMD_CONFIGURE_ENABLE=		x86-asm

# COMPS group

CORE_DESC=			Core library
CORE_BUILD_DEPENDS=		sekrit-twc-zimg>=2.4:graphics/sekrit-twc-zimg
CORE_LIB_DEPENDS=		libzimg.so:graphics/sekrit-twc-zimg
CORE_USES=			compiler:c++11-lib
CORE_CONFIGURE_ENABLE=		core

PYTHON_USES=			python:3.3-
PYTHON_BUILD_DEPENDS=		cython:lang/cython
PYTHON_CONFIGURE_ENABLE=	python-module
PYTHON_IMPLIES=			CORE

VSPIPE_DESC=			Command line interface
VSPIPE_USES=			compiler:c++11-lib
VSPIPE_CONFIGURE_ENABLE=	vspipe
VSPIPE_IMPLIES=			VSSCRIPT

VSSCRIPT_DESC=			Scripting library
VSSCRIPT_USES=			compiler:c++11-lib python:3.3-
VSSCRIPT_CONFIGURE_ENABLE=	vsscript

# PLUGINS group

ASS_DESC=			Subtitles rendering via libass
ASS_LIB_DEPENDS=		libavcodec.so:multimedia/ffmpeg \
				libass.so:multimedia/libass
ASS_USES=			iconv
ASS_CONFIGURE_ENABLE=		subtext

EEDI3_DESC=			Very slow edge directed interpolation
EEDI3_CONFIGURE_ENABLE=		eedi3

IMAGEMAGICK_LIB_DEPENDS=	libMagick++-7.so:graphics/ImageMagick7
IMAGEMAGICK_USES=		compiler:c++11-lib
IMAGEMAGICK_CONFIGURE_ENABLE=	imwri

TESSERACT_DESC=			Optical Character Recognition via Tesseract
TESSERACT_LIB_DEPENDS=		libtesseract.so:graphics/tesseract
TESSERACT_CONFIGURE_ENABLE=	ocr

MISCFILTERS_DESC=		Miscellaneous filters
MISCFILTERS_CONFIGURE_ENABLE=	miscfilters

MORPHO_DESC=			Morphological filter
MORPHO_CONFIGURE_ENABLE=	morpho

REMOVEGRAIN_DESC=		3x3 median and convolution denoising
REMOVEGRAIN_CONFIGURE_ENABLE=	removegrain

VINVERSE_DESC=			Remove residual combing
VINVERSE_CONFIGURE_ENABLE=	vinverse

VIVTC_DESC=			Field matching, inverse telecine and decimation
VIVTC_CONFIGURE_ENABLE=		vivtc

post-patch:
	@${REINPLACE_CMD} -e 's/x86_64/&|amd64/' \
		-e '/AC_SEARCH.*libiconv/d' \
		-e '/test/s/[^ ]*libiconv.*-a //' \
		${WRKSRC}/configure.ac

post-build-DOCS-on:
	@${DO_MAKE_BUILD} html texinfo -C${WRKSRC}/doc
	@${DO_MAKE_BUILD} info -C${WRKSRC}/doc/_build/texinfo
	@if [ -n "${PORT_OPTIONS:MVSPIPE}" ]; then \
		${DO_MAKE_BUILD} man -C${WRKSRC}/doc; \
	fi

post-install-DOCS-on:
	${INSTALL_MAN} ${WRKSRC}/doc/_build/texinfo/VapourSynth.info \
		${STAGEDIR}${PREFIX}/${INFO_PATH}
	(cd ${WRKSRC}/doc/_build/html && ${COPYTREE_SHARE} \
		"${PORTDOCS}" ${STAGEDIR}${DOCSDIR})
	@if [ -n "${PORT_OPTIONS:MVSPIPE}" ]; then \
		${INSTALL_MAN} -v ${WRKSRC}/doc/_build/man/vspipe.1 \
			${STAGEDIR}${MAN1PREFIX}/man/man1; \
	fi

.include <bsd.port.mk>
OpenPOWER on IntegriCloud