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
    armv6-darwin-gcc
    armv6-linux-rvct
    armv6-linux-gcc
    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/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.

