vpx Multi-Format Codec SDK
README - 19 May 2010

Welcome to the WebM VP8 Codec SDK!

COMPILING THE APPLICATIONS/LIBRARIES:
  The build system used is similar to autotools. Building generally consists of
  "configuring" with your desired build options, then using GNU make to build
  the application.

  1. Prerequisites

    * All x86 targets require the Yasm[1] assembler be installed.
    * All Windows builds require that Cygwin[2] be installed.
    * Building the documentation requires PHP[3] and Doxygen[4]. If you do not
      have these packages, you must pass --disable-install-docs to the
      configure script.

    [1]: http://www.tortall.net/projects/yasm
    [2]: http://www.cygwin.com
    [3]: http://php.net
    [4]: http://www.doxygen.org

  2. Out-of-tree builds
  Out of tree builds are a supported method of building the application. For
  an out of tree build, the source tree is kept separate from the object
  files produced during compilation. For instance:

    $ mkdir build
    $ cd build
    $ ../libvpx/configure <options>
    $ make

  3. Configuration options
  The 'configure' script supports a number of options. The --help option can be
  used to get a list of supported options:
    $ ../libvpx/configure --help

  4. Cross development
  For cross development, the most notable option is the --target option. The
  most up-to-date list of supported targets can be found at the bottom of the
  --help output of the configure script. As of this writing, the list of
  available targets is:

    armv5te-linux-rvct
    armv5te-linux-gcc
    armv5te-symbian-gcc
    armv5te-wince-vs8
    armv6-darwin-gcc
    armv6-linux-rvct
    armv6-linux-gcc
    armv6-symbian-gcc
    armv6-wince-vs8
    iwmmxt-linux-rvct
    iwmmxt-linux-gcc
    iwmmxt-wince-vs8
    iwmmxt2-linux-rvct
    iwmmxt2-linux-gcc
    iwmmxt2-wince-vs8
    armv7-linux-rvct
    armv7-linux-gcc
    mips32-linux-gcc
    ppc32-darwin8-gcc
    ppc32-darwin9-gcc
    ppc64-darwin8-gcc
    ppc64-darwin9-gcc
    ppc64-linux-gcc
    x86-darwin8-gcc
    x86-darwin8-icc
    x86-darwin9-gcc
    x86-darwin9-icc
    x86-linux-gcc
    x86-linux-icc
    x86-solaris-gcc
    x86-win32-vs7
    x86-win32-vs8
    x86_64-darwin9-gcc
    x86_64-linux-gcc
    x86_64-solaris-gcc
    x86_64-win64-vs8
    universal-darwin8-gcc
    universal-darwin9-gcc
    generic-gnu

  The generic-gnu target, in conjunction with the CROSS environment variable,
  can be used to cross compile architectures that aren't explicitly listed, if
  the toolchain is a cross GNU (gcc/binutils) toolchain. Other POSIX toolchains
  will likely work as well. For instance, to build using the mipsel-linux-uclibc
  toolchain, the following command could be used (note, POSIX SH syntax, adapt
  to your shell as necessary):

    $ CROSS=mipsel-linux-uclibc- ../libvpx/src/configure

  In addition, the executables to be invoked can be overridden by specifying the
  environment variables: CC, AR, LD, AS, STRIP, NM. Additional flags can be
  passed to these executables with CFLAGS, LDFLAGS, and ASFLAGS.

  5. Configuration errors
  If the configuration step fails, the first step is to look in the error log.
  This defaults to config.err. This should give a good indication of what went
  wrong. If not, contact us for support.

SUPPORT
  This library is an open source project supported by its community. Please
  please email webm-users@webmproject.org for help.

