1vpx Multi-Format Codec SDK 2README - 1 August 2013 3 4Welcome to the WebM VP8/VP9 Codec SDK! 5 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 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 mips32-linux-gcc 68 ppc32-darwin8-gcc 69 ppc32-darwin9-gcc 70 ppc32-linux-gcc 71 ppc64-darwin8-gcc 72 ppc64-darwin9-gcc 73 ppc64-linux-gcc 74 sparc-solaris-gcc 75 x86-android-gcc 76 x86-darwin8-gcc 77 x86-darwin8-icc 78 x86-darwin9-gcc 79 x86-darwin9-icc 80 x86-darwin10-gcc 81 x86-darwin11-gcc 82 x86-darwin12-gcc 83 x86-darwin13-gcc 84 x86-linux-gcc 85 x86-linux-icc 86 x86-os2-gcc 87 x86-solaris-gcc 88 x86-win32-gcc 89 x86-win32-vs7 90 x86-win32-vs8 91 x86-win32-vs9 92 x86-win32-vs10 93 x86-win32-vs11 94 x86_64-darwin9-gcc 95 x86_64-darwin10-gcc 96 x86_64-darwin11-gcc 97 x86_64-darwin12-gcc 98 x86_64-darwin13-gcc 99 x86_64-linux-gcc 100 x86_64-linux-icc 101 x86_64-solaris-gcc 102 x86_64-win64-gcc 103 x86_64-win64-vs8 104 x86_64-win64-vs9 105 x86_64-win64-vs10 106 x86_64-win64-vs11 107 universal-darwin8-gcc 108 universal-darwin9-gcc 109 universal-darwin10-gcc 110 universal-darwin11-gcc 111 universal-darwin12-gcc 112 universal-darwin13-gcc 113 generic-gnu 114 115 The generic-gnu target, in conjunction with the CROSS environment variable, 116 can be used to cross compile architectures that aren't explicitly listed, if 117 the toolchain is a cross GNU (gcc/binutils) toolchain. Other POSIX toolchains 118 will likely work as well. For instance, to build using the mipsel-linux-uclibc 119 toolchain, the following command could be used (note, POSIX SH syntax, adapt 120 to your shell as necessary): 121 122 $ CROSS=mipsel-linux-uclibc- ../libvpx/configure 123 124 In addition, the executables to be invoked can be overridden by specifying the 125 environment variables: CC, AR, LD, AS, STRIP, NM. Additional flags can be 126 passed to these executables with CFLAGS, LDFLAGS, and ASFLAGS. 127 128 5. Configuration errors 129 If the configuration step fails, the first step is to look in the error log. 130 This defaults to config.log. This should give a good indication of what went 131 wrong. If not, contact us for support. 132 133SUPPORT 134 This library is an open source project supported by its community. Please 135 please email webm-discuss@webmproject.org for help. 136 137