Avoid using non-standard minmax.h.
[vapoursynth-svn.git] / INSTALL
blobb3814a7176e9e15012394f3ecd3f7fd8070cf200
1 Installation
2 ------------
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
19 VapourSynth uses:
21     $ ./bootstrap.py
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:
29     $ ./waf configure
31 The configure operation has some options which can be used to
32 fine-tune the build:
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
49   info is generated.
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:
70     $ ./waf build
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
76 executing:
78     $ ./setup.py build
80 Finally, to install VapourSynth:
82     $ ./waf install
84 And to uninstall:
86     $ ./waf uninstall
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:
94     $ ./setup.py install
96 Note that the setup script has a --prefix option like Waf.
98 Finally, you can run the Python tests if you have installed
99 the Python module:
101     $ ./waf test