4 First, a couple of things to note:
6 * You need to be on Windows, Linux, or OS X.
7 * You need to have the QtCore libraries and headers installed.
8 * You need to have the libraries and headers for libavutil
9 and libswscale installed.
10 * You need to have either GCC, Clang, MSVC, or ICC/ICL installed.
11 Both a C and C++ compiler are required.
12 * You need to have Yasm installed.
13 * You need Python 3 to build the Python module.
14 * You need to have Cython installed in your Python 3 environment
15 in order to invoke the Python wrapper setup script.
16 * You need Sphinx if you want to build the documentation.
18 First off, you'll want to fetch Waf which is the build tool
23 You don't have to fetch it with this script (it requires Wget);
24 you can also simply download it from the official Google Code
25 repository: http://code.google.com/p/waf
27 Then, configure the project:
31 The configure operation has some options which can be used to
34 * --prefix=path (default: /usr/local)
35 Specifies where to install the final VapourSynth artifacts.
36 * --libdir=path (default: ${PREFIX}/lib)
37 Specifies where to install VapourSynth libraries.
38 * --plugindir=path (default: ${LIBDIR}/vapoursynth)
39 Specifies where to install plugins/filters.
40 * --docdir=path (default: ${PREFIX}/share/doc/vapoursynth)
41 Specifies where to install Sphinx documentation and examples.
42 * --includedir=path (default: ${PREFIX}/include/vapoursynth)
43 Specifies where to install C/C++ headers.
44 * --mode=debug/release (default: release)
45 Specifies what mode to compile C and C++ code in. When in
46 debug mode, debug info and debugging helpers will be emitted
47 by the compiler, and no optimization will be done. In release
48 mode, all (safe) optimizations are performed and no debug
50 * --shared=true/false (default: true)
51 Specifies whether to build a shared library.
52 * --static=true/false (default: false)
53 Specifies whether to build a static library.
54 * --filters=true/false (default: true)
55 Specifies whether to build the included filters. These are
56 always built as shared libraries.
57 * --cython=true/false (default: true)
58 Specifies whether to preprocess the Cython sources. This is
59 required if you plan to build and install the Cython wrapper.
60 * --avisynth=true/false (default: true)
61 Specifies whether to build the Avisynth compatibility layer
62 when building on Windows.
63 * --docs=true/false (default: false)
64 Specifies whether to build the Sphinx-based documentation.
65 * --examples=true/false (default: false)
66 Specifies whether to install the SDK examples.
68 Once the project is configured, simply execute:
72 By default, Waf builds tasks in parallel. You can control the
73 level of parallelism with the -j option, like with Make.
75 If you want to build the Cython wrapper, you can do so now by
80 Finally, to install VapourSynth:
88 The install and uninstall commands accept a --destdir option
89 which prepends a value to the prefix given earlier in the
90 configure phase, in case this may be of use to you.
92 To install the Cython wrapper:
96 Note that the setup script has a --prefix option like Waf.
98 Finally, you can run the Python tests if you have installed