blob: 6d7d5ec4d48d7867df3c2053becb6866bfa90147 [file] [log] [blame]
John Koleszar0ea50ce2010-05-18 15:58:331vpx Multi-Format Codec SDK
Paweł Hajdan9ab47772013-08-02 03:08:422README - 1 August 2013
John Koleszar0ea50ce2010-05-18 15:58:333
Paweł Hajdan9ab47772013-08-02 03:08:424Welcome to the WebM VP8/VP9 Codec SDK!
John Koleszar0ea50ce2010-05-18 15:58:335
6COMPILING 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
John Koleszar94c52e42010-06-18 16:39:2112
John Koleszar0ea50ce2010-05-18 15:58:3313 * All x86 targets require the Yasm[1] assembler be installed.
14 * All Windows builds require that Cygwin[2] be installed.
James Zernf8630c72014-05-10 18:15:1115 * Building the documentation requires Doxygen[3]. If you do not
16 have this package, the install-docs option will be disabled.
17 * Downloading the data for the unit tests requires curl[4] and sha1sum.
John Koleszar00748632012-06-20 21:45:2218 sha1sum is provided via the GNU coreutils, installed by default on
19 many *nix platforms, as well as MinGW and Cygwin. If coreutils is not
20 available, a compatible version of sha1sum can be built from
James Zernf8630c72014-05-10 18:15:1121 source[5]. These requirements are optional if not running the unit
John Koleszar00748632012-06-20 21:45:2222 tests.
John Koleszar94c52e42010-06-18 16:39:2123
John Koleszar0ea50ce2010-05-18 15:58:3324 [1]: http://www.tortall.net/projects/yasm
25 [2]: http://www.cygwin.com
James Zernf8630c72014-05-10 18:15:1126 [3]: http://www.doxygen.org
27 [4]: http://curl.haxx.se
28 [5]: http://www.microbrew.org/tools/md5sha1sum/
John Koleszar94c52e42010-06-18 16:39:2129
John Koleszar0ea50ce2010-05-18 15:58:3330 2. Out-of-tree builds
31 Out of tree builds are a supported method of building the application. For
32 an out of tree build, the source tree is kept separate from the object
33 files produced during compilation. For instance:
34
35 $ mkdir build
36 $ cd build
37 $ ../libvpx/configure <options>
38 $ make
39
40 3. Configuration options
41 The 'configure' script supports a number of options. The --help option can be
42 used to get a list of supported options:
43 $ ../libvpx/configure --help
44
45 4. Cross development
46 For cross development, the most notable option is the --target option. The
47 most up-to-date list of supported targets can be found at the bottom of the
48 --help output of the configure script. As of this writing, the list of
49 available targets is:
50
Fritz Koenigd8305732012-01-06 19:50:0551 armv5te-android-gcc
John Koleszar0ea50ce2010-05-18 15:58:3352 armv5te-linux-rvct
53 armv5te-linux-gcc
Paweł Hajdan9ab47772013-08-02 03:08:4254 armv5te-none-rvct
John Koleszar0ea50ce2010-05-18 15:58:3355 armv6-darwin-gcc
56 armv6-linux-rvct
57 armv6-linux-gcc
Paweł Hajdan9ab47772013-08-02 03:08:4258 armv6-none-rvct
Fritz Koenigd8305732012-01-06 19:50:0559 armv7-android-gcc
Paweł Hajdan9ab47772013-08-02 03:08:4260 armv7-darwin-gcc
John Koleszar0ea50ce2010-05-18 15:58:3361 armv7-linux-rvct
62 armv7-linux-gcc
Paweł Hajdan9ab47772013-08-02 03:08:4263 armv7-none-rvct
64 armv7-win32-vs11
Yaowu Xua638bdf2013-11-13 19:36:3265 armv7-win32-vs12
John Koleszar0ea50ce2010-05-18 15:58:3366 mips32-linux-gcc
67 ppc32-darwin8-gcc
68 ppc32-darwin9-gcc
Paweł Hajdan9ab47772013-08-02 03:08:4269 ppc32-linux-gcc
John Koleszar0ea50ce2010-05-18 15:58:3370 ppc64-darwin8-gcc
71 ppc64-darwin9-gcc
72 ppc64-linux-gcc
Paweł Hajdan9ab47772013-08-02 03:08:4273 sparc-solaris-gcc
74 x86-android-gcc
John Koleszar0ea50ce2010-05-18 15:58:3375 x86-darwin8-gcc
76 x86-darwin8-icc
77 x86-darwin9-gcc
78 x86-darwin9-icc
Paweł Hajdan9ab47772013-08-02 03:08:4279 x86-darwin10-gcc
80 x86-darwin11-gcc
81 x86-darwin12-gcc
82 x86-darwin13-gcc
John Koleszar0ea50ce2010-05-18 15:58:3383 x86-linux-gcc
84 x86-linux-icc
Paweł Hajdan9ab47772013-08-02 03:08:4285 x86-os2-gcc
John Koleszar0ea50ce2010-05-18 15:58:3386 x86-solaris-gcc
Paweł Hajdan9ab47772013-08-02 03:08:4287 x86-win32-gcc
John Koleszar0ea50ce2010-05-18 15:58:3388 x86-win32-vs7
89 x86-win32-vs8
Paweł Hajdan9ab47772013-08-02 03:08:4290 x86-win32-vs9
91 x86-win32-vs10
92 x86-win32-vs11
Yaowu Xua638bdf2013-11-13 19:36:3293 x86-win32-vs12
John Koleszar0ea50ce2010-05-18 15:58:3394 x86_64-darwin9-gcc
Paweł Hajdan9ab47772013-08-02 03:08:4295 x86_64-darwin10-gcc
96 x86_64-darwin11-gcc
97 x86_64-darwin12-gcc
98 x86_64-darwin13-gcc
John Koleszar0ea50ce2010-05-18 15:58:3399 x86_64-linux-gcc
Paweł Hajdan9ab47772013-08-02 03:08:42100 x86_64-linux-icc
John Koleszar0ea50ce2010-05-18 15:58:33101 x86_64-solaris-gcc
Paweł Hajdan9ab47772013-08-02 03:08:42102 x86_64-win64-gcc
John Koleszar0ea50ce2010-05-18 15:58:33103 x86_64-win64-vs8
Paweł Hajdan9ab47772013-08-02 03:08:42104 x86_64-win64-vs9
105 x86_64-win64-vs10
106 x86_64-win64-vs11
Yaowu Xua638bdf2013-11-13 19:36:32107 x86_64-win64-vs12
John Koleszar0ea50ce2010-05-18 15:58:33108 universal-darwin8-gcc
109 universal-darwin9-gcc
Paweł Hajdan9ab47772013-08-02 03:08:42110 universal-darwin10-gcc
111 universal-darwin11-gcc
112 universal-darwin12-gcc
113 universal-darwin13-gcc
John Koleszar0ea50ce2010-05-18 15:58:33114 generic-gnu
115
116 The generic-gnu target, in conjunction with the CROSS environment variable,
117 can be used to cross compile architectures that aren't explicitly listed, if
118 the toolchain is a cross GNU (gcc/binutils) toolchain. Other POSIX toolchains
119 will likely work as well. For instance, to build using the mipsel-linux-uclibc
120 toolchain, the following command could be used (note, POSIX SH syntax, adapt
121 to your shell as necessary):
122
Johanna31a58d2010-10-07 18:13:36123 $ CROSS=mipsel-linux-uclibc- ../libvpx/configure
John Koleszar0ea50ce2010-05-18 15:58:33124
125 In addition, the executables to be invoked can be overridden by specifying the
126 environment variables: CC, AR, LD, AS, STRIP, NM. Additional flags can be
127 passed to these executables with CFLAGS, LDFLAGS, and ASFLAGS.
128
129 5. Configuration errors
130 If the configuration step fails, the first step is to look in the error log.
James Zerne636af12013-07-18 21:17:00131 This defaults to config.log. This should give a good indication of what went
John Koleszar0ea50ce2010-05-18 15:58:33132 wrong. If not, contact us for support.
133
134SUPPORT
135 This library is an open source project supported by its community. Please
John Koleszar00748632012-06-20 21:45:22136 please email [email protected] for help.
John Koleszar0ea50ce2010-05-18 15:58:33137