|
1 vpx Multi-Format Codec SDK |
|
2 README - 1 August 2013 |
|
3 |
|
4 Welcome to the WebM VP8/VP9 Codec SDK! |
|
5 |
|
6 COMPILING THE APPLICATIONS/LIBRARIES: |
|
7 The build system used is similar to autotools. Building generally consists of |
|
8 "configuring" with your desired build options, then using GNU make to build |
|
9 the application. |
|
10 |
|
11 1. Prerequisites |
|
12 |
|
13 * All x86 targets require the Yasm[1] assembler be installed. |
|
14 * All Windows builds require that Cygwin[2] be installed. |
|
15 * Building the documentation requires PHP[3] and Doxygen[4]. If you do not |
|
16 have these packages, you must pass --disable-install-docs to the |
|
17 configure script. |
|
18 * Downloading the data for the unit tests requires curl[5] and sha1sum. |
|
19 sha1sum is provided via the GNU coreutils, installed by default on |
|
20 many *nix platforms, as well as MinGW and Cygwin. If coreutils is not |
|
21 available, a compatible version of sha1sum can be built from |
|
22 source[6]. These requirements are optional if not running the unit |
|
23 tests. |
|
24 |
|
25 [1]: http://www.tortall.net/projects/yasm |
|
26 [2]: http://www.cygwin.com |
|
27 [3]: http://php.net |
|
28 [4]: http://www.doxygen.org |
|
29 [5]: http://curl.haxx.se |
|
30 [6]: http://www.microbrew.org/tools/md5sha1sum/ |
|
31 |
|
32 2. Out-of-tree builds |
|
33 Out of tree builds are a supported method of building the application. For |
|
34 an out of tree build, the source tree is kept separate from the object |
|
35 files produced during compilation. For instance: |
|
36 |
|
37 $ mkdir build |
|
38 $ cd build |
|
39 $ ../libvpx/configure <options> |
|
40 $ make |
|
41 |
|
42 3. Configuration options |
|
43 The 'configure' script supports a number of options. The --help option can be |
|
44 used to get a list of supported options: |
|
45 $ ../libvpx/configure --help |
|
46 |
|
47 4. Cross development |
|
48 For cross development, the most notable option is the --target option. The |
|
49 most up-to-date list of supported targets can be found at the bottom of the |
|
50 --help output of the configure script. As of this writing, the list of |
|
51 available targets is: |
|
52 |
|
53 armv5te-android-gcc |
|
54 armv5te-linux-rvct |
|
55 armv5te-linux-gcc |
|
56 armv5te-none-rvct |
|
57 armv6-darwin-gcc |
|
58 armv6-linux-rvct |
|
59 armv6-linux-gcc |
|
60 armv6-none-rvct |
|
61 armv7-android-gcc |
|
62 armv7-darwin-gcc |
|
63 armv7-linux-rvct |
|
64 armv7-linux-gcc |
|
65 armv7-none-rvct |
|
66 armv7-win32-vs11 |
|
67 armv7-win32-vs12 |
|
68 mips32-linux-gcc |
|
69 ppc32-darwin8-gcc |
|
70 ppc32-darwin9-gcc |
|
71 ppc32-linux-gcc |
|
72 ppc64-darwin8-gcc |
|
73 ppc64-darwin9-gcc |
|
74 ppc64-linux-gcc |
|
75 sparc-solaris-gcc |
|
76 x86-android-gcc |
|
77 x86-darwin8-gcc |
|
78 x86-darwin8-icc |
|
79 x86-darwin9-gcc |
|
80 x86-darwin9-icc |
|
81 x86-darwin10-gcc |
|
82 x86-darwin11-gcc |
|
83 x86-darwin12-gcc |
|
84 x86-darwin13-gcc |
|
85 x86-linux-gcc |
|
86 x86-linux-icc |
|
87 x86-os2-gcc |
|
88 x86-solaris-gcc |
|
89 x86-win32-gcc |
|
90 x86-win32-vs7 |
|
91 x86-win32-vs8 |
|
92 x86-win32-vs9 |
|
93 x86-win32-vs10 |
|
94 x86-win32-vs11 |
|
95 x86-win32-vs12 |
|
96 x86_64-darwin9-gcc |
|
97 x86_64-darwin10-gcc |
|
98 x86_64-darwin11-gcc |
|
99 x86_64-darwin12-gcc |
|
100 x86_64-darwin13-gcc |
|
101 x86_64-linux-gcc |
|
102 x86_64-linux-icc |
|
103 x86_64-solaris-gcc |
|
104 x86_64-win64-gcc |
|
105 x86_64-win64-vs8 |
|
106 x86_64-win64-vs9 |
|
107 x86_64-win64-vs10 |
|
108 x86_64-win64-vs11 |
|
109 x86_64-win64-vs12 |
|
110 universal-darwin8-gcc |
|
111 universal-darwin9-gcc |
|
112 universal-darwin10-gcc |
|
113 universal-darwin11-gcc |
|
114 universal-darwin12-gcc |
|
115 universal-darwin13-gcc |
|
116 generic-gnu |
|
117 |
|
118 The generic-gnu target, in conjunction with the CROSS environment variable, |
|
119 can be used to cross compile architectures that aren't explicitly listed, if |
|
120 the toolchain is a cross GNU (gcc/binutils) toolchain. Other POSIX toolchains |
|
121 will likely work as well. For instance, to build using the mipsel-linux-uclibc |
|
122 toolchain, the following command could be used (note, POSIX SH syntax, adapt |
|
123 to your shell as necessary): |
|
124 |
|
125 $ CROSS=mipsel-linux-uclibc- ../libvpx/configure |
|
126 |
|
127 In addition, the executables to be invoked can be overridden by specifying the |
|
128 environment variables: CC, AR, LD, AS, STRIP, NM. Additional flags can be |
|
129 passed to these executables with CFLAGS, LDFLAGS, and ASFLAGS. |
|
130 |
|
131 5. Configuration errors |
|
132 If the configuration step fails, the first step is to look in the error log. |
|
133 This defaults to config.log. This should give a good indication of what went |
|
134 wrong. If not, contact us for support. |
|
135 |
|
136 SUPPORT |
|
137 This library is an open source project supported by its community. Please |
|
138 please email webm-discuss@webmproject.org for help. |
|
139 |