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 (a] webmproject.org for help. 139 140