Name: libvpx
URL: http://www.webmproject.org
Version: v0.9.6-92-gba11e24
License File: source/libvpx/LICENSE

Date: Monday April 4 2011
Commit: ba11e24d47009ac787fdb95ccbd846052e18f26a

Description:
Contains the sources used to compile libvpx binaries used by Google Chrome and
Chromium.

The libvpx source is from webmproject.org:
  git://review.webmproject.org/libvpx

Patches

One patch is included in the patches directory.  It is needed for 
obj_int_extract.c on x64 linux when using icc, and must be applied
before running make to avoid link errors.

The patch can be applied by runnning the following command from within 
source/libvpx:

patch -p0 < ../../patches/01_obj_int_extract.patch

Notes

The mac libvpx build was built with icc v11.1.  In 
addition to the configuration args listed in vpx_config.c for each target, the
following additions were made to CFLAGS:

- linux/x64 CFLAGS: -fPIC -ffreestanding
- linux ia32 CFLAGS: -ffreestanding
- mac ia32 CFLAGS: -fPIC -ffreestanding
-isysroot /Developer/SDKs/MacOSX10.5.sdk -mmacosx-version-min=10.5

The -ffreestanding argument removes dependencies on Intel memcpy and memset 
functions.

For example, the following could be used at libvpx configure time to reproduce 
the linux x64 build:

CFLAGS="-fPIC -ffreestanding" /path/to/libvpx/configure \
--target=x86_64-linux-icc --enable-pic --disable-install-docs \
--disable-install-srcs --disable-examples --disable-postproc --disable-psnr

The vpx_config.{asm,h,cc}, and vpx_version.h files generated by the above
configure command should then be checked in to
source/config/linux/<(target_arch)/.

To generate the sources list for libvpx.gyp we ran:

  mkdir ++build && cd ++build
  CFLAGS="-fPIC -ffreestanding" bash ../source/libvpx/configure --enable-pic \
    --disable-install-docs --disable-install-srcs --disable-examples \
    --disable-postproc --disable-psnr
  make verbose=true |tee make.out

then trawl through make.out to find the file-names:

  grep '^gcc ' make.out |sed -ne '/^gcc /s/.* \([^ ]*\.c\)$/\1/p'

gives the .c & .h files, and:

  sed -ne 's/.* \([^ ]*\.asm\) .*/\1/p' < make.out

gives the .asm files.
The gcc & yasm flags were also extracted from make.out, similarly by visual
inspection.
