Граф коммитов

595 Коммитов

Автор SHA1 Сообщение Дата
Tom Finegan 3d7063d4b0 Remove claims of universal target support from the build system.
These targets no longer build (PPC support was removed from
libvpx). Remove the dead code and misleading help output.

BUG=https://code.google.com/p/webm/issues/detail?id=997

Change-Id: Ib35614806adeae970f3821da0d8dbcc54ab8d868
2015-05-12 19:16:49 -07:00
Frank Galligan a4bcc8c318 Fix ndk build.
Android.mk should depend on vpx_dsp_rtcd.h

Change-Id: Ib614af195a9574fd849c28b695f9f4b3b2bd125c
2015-05-07 18:22:29 -07:00
Johann 802e1d84cc Remove only remaining uses of 'fast_unaligned'
Use memcpy instead of casting.

Change-Id: Ieca725cc628883985bde23c7d742af8781c5dbb5
2015-05-07 14:39:37 -07:00
James Zern 278593c9a9 Merge "Android.mk: remove unnecessary -llog reference" 2015-04-16 12:00:11 -07:00
Parag Salasakar 3701dcc5c1 Merge "mips msa configuration fix" 2015-04-15 21:17:13 -07:00
James Zern e3bf76f9ec Android.mk: remove unnecessary -llog reference
nothing is using android/log.h currently; also quiets a warning when
building a static lib:
Android NDK: WARNING:libvpx/build/make/Android.mk:vpx: LOCAL_LDLIBS is
always ignored for static libraries

Change-Id: I1469a5d6fca4f7338a4a82e26a03e60fc91d92ca
2015-04-15 20:54:04 -07:00
Parag Salasakar 4009b63c42 mips msa configuration fix
for big endian disable msa
removed -flax-vector-conversion flag
disable runtime_cpu_detect feature if enabled

Change-Id: Icd5130b733f2ddcdb94ffb6e4d170e6ca0f9832b
2015-04-15 11:56:42 +05:30
James Zern b815f3a977 Android.mk: add a flag to control shared/static lib
ndk-build ENABLE_SHARED=1 ...

Change-Id: Idd64804b165d0d4bbfb0b242d6c4eee5e828dab4
2015-04-08 21:03:36 -07:00
Johann 79bd071373 Merge branch 'indianrunnerduck'
* indianrunnerduck:
  Update CHANGELOG for v1.4.0 (Indian Runner Duck) release
  vp9: fix high-bitdepth NEON build
  Fix use of scaling in joint motion search
  Prepare Release Candidate for libvpx v1.4.0
  vp8cx.h: vpx/vpx_encoder.h -> ./vpx_encoder.h

Change-Id: Ib2eee50f02e12623aae478871cb9150604bb2ac2
2015-04-03 12:53:45 -07:00
Johann bc98e93b53 Remove PPC build support
There are no functional optimizations for AltiVec/PPC

Change-Id: I6877a7a9739017fe36fc769be22679c65ea99976
2015-04-02 09:13:59 -07:00
Parag Salasakar 84ec68d21a mips msa configuration patch for MIPS SIMD Arch (MSA) P5600 and I6400
For P5600:
CROSS=$MTI/bin/mips-mti-linux-gnu- CFLAGS='-EL' CXXFLAGS='-EL' LDFLAGS='-EL'\
 ../configure --target=mips32-linux-gcc --cpu=p5600 --enable-msa

For I6400:
CROSS=$IMG/bin/mips-img-linux-gnu- CFLAGS='-EL' CXXFLAGS='-EL' LDFLAGS='-EL'\
 ../configure --target=mips64-linux-gcc --cpu=i6400 --enable-msa

Change-Id: Id25f721ea1f1991d5116e04dba713aebd7378f05
2015-03-24 15:18:38 -07:00
Johann bb5a39c1a7 Prepare Release Candidate for libvpx v1.4.0
Change-Id: I9ffd30c88a5e40c555bde1f5efcf8a3c9ffcf5ff
2015-03-23 23:54:52 -07:00
Johann 08acc349b3 Remove last remnants of obj_int_extract
Change-Id: Icc7da6027763b5ed7cbfe70ffe271103ead59fe1
2015-03-18 11:06:53 -07:00
James Zern aaccf6566d configure: add --(disable|enable)-dependency-tracking
defaults to enabled. when disabled skips dependency file (.d) generation
allowing for faster one-time builds.

Change-Id: I2d7d7f905f1663315b8eb2b2e81fffb6fcb15829
2015-02-09 16:38:49 -08:00
James Zern 769fe6e2b3 configure: enable x86inc for all intel platforms
there are no known issues since:
10d5e09 Fix issues in 32bit PIC enabled build

related issues: #808, #924

Change-Id: I80454f95fe6b4ce630fdd434d740ce8b0d42951b
2015-02-04 19:16:12 -08:00
Johann 852829c315 Fail when only an old nasm is found
Apple ships version 0.98 of nasm through at least XCode 6. It is
incompatible with the assembly in libvpx.

https://code.google.com/p/webm/issues/detail?id=772

Change-Id: I33245a76f50a8224fe6fafa3cce9991f953fdcc8
2015-02-03 08:55:00 -08:00
James Zern d2493313ae Merge "configure: echo --(disable|enable)-* cmdline options" 2015-01-30 13:16:02 -08:00
Yunqing Wang cc7fac39d5 Enable use_x86inc for 32bit pic enabled Darwin target
The previous patch "Fix issues in 32bit PIC enabled build" fixed
the x86inc.asm for macho32. Now we can enable use_x86inc while
building libvpx for 32bit pic enabled Darwin target, which makes
the encoder a lot faster(>2X) in this case by turning on the
existing optimizations.

Change-Id: I5f5c7add428d73f50c935c48d0a70aed2b1eb7af
2015-01-29 16:47:06 -08:00
James Zern ef7f33b93b configure: echo --(disable|enable)-* cmdline options
gives a better summary of what is enabled / disabled outside of the
automatic toolchain options.

fixes issue #936

Change-Id: I1bf27593a5512713aab1473cb606c58cf3084d62
2015-01-28 20:30:51 -08:00
Lawrence Velázquez ad314c1689 Fix discovery of Darwin SDKs
The current method doesn't work with Xcode 4 and up, since they no
longer have a $DEVELOPER_DIR/SDKs directory. Using xcrun and xcodebuild
works all the way back to Xcode 3 on OS X 10.6 Snow Leopard, if not
earlier.

Change-Id: I7126f2fb4a8f1d6e46f921e70bbd090f00ce3d36
2015-01-26 21:44:02 -05:00
Tom Finegan e7ef8ecefd Merge "iosbuild.sh: Increase build speed." 2015-01-26 15:10:18 -08:00
James Zern 880ca0ecad Merge "workaround stack bashing by asm on 32-bit OpenBSD" 2015-01-22 20:04:07 -08:00
Lawrence Velázquez 4fe4c2834f Add libvpx build targets for OS X 10.10 Yosemite.
Change-Id: I5baa4405e0b52fd3b6f312bd2dc94b19e6ff3da7
2015-01-22 15:33:53 -08:00
Tom Finegan 1387f4dedf iosbuild.sh: Increase build speed.
Disable more stuff to speed up the build, and log default configure
args in verbose mode.

Change-Id: I40e55fc5e8d2bff0262e1d6bd4a40ee2c10d2b6d
2015-01-22 15:19:07 -08:00
James Zern 0373dbf5a5 workaround stack bashing by asm on 32-bit OpenBSD
like Darwin, disable x86inc with 32-bit PIC/shared library builds;
avoids stack smashing done by vp9_subpixel_*

workaround for issue #808

Change-Id: I3f2f16bd91822c8e8dad0242b5dcfb0e621aea97
2015-01-14 23:25:02 -08:00
James Zern 2a64ed9b70 Merge "rtcd: handle armv7s architecture" 2014-12-16 12:22:55 -08:00
James Zern 0e94f3cf06 iosbuild.sh: allow for out of tree builds
Change-Id: Id89ed4a4153dd6e02380c4b8ae8ad6c1f8d21944
2014-12-15 18:41:46 -08:00
James Zern 6ea881cc12 rtcd: handle armv7s architecture
quiets build warnings about implicit (armv6) function declarations

Change-Id: I896a5ef3e367e5bb92777a60d34003eb3a040997
2014-12-15 18:39:51 -08:00
James Zern d356dce759 iosbuild: add success/failure output
Change-Id: I84492f68752321f0266141666e2672ed2da5f509
2014-12-12 19:45:15 -08:00
Tom Finegan 53a0ed84ac Merge "iosbuild.sh: Add targets argument." 2014-12-12 16:14:12 -08:00
Tom Finegan bc74a2f33b iosbuild.sh: Add targets argument.
Allows override of default target list. Also added missing usage info
for --extra-configure-args, and removed last vestiges of armv6 support.

Change-Id: Ic0f14fffa0cbaea1bed371d38ff65e035bbe3273
2014-12-12 13:53:58 -08:00
James Zern 5fe9a5c649 don't set INLINE to 'always_inline'
INLINE is used quite widely in vp9, this change improves performance
1-2% on most modern platforms.

Change-Id: I8a9974aab89fa588ea4923cc7eaf6199e344a528
2014-12-12 11:18:00 -08:00
Johann e577098079 Disable neon assembly when neon is disabled
Change-Id: Idde266cd7287bb6bee016c90efeafa67550f94c6
2014-12-09 10:46:32 -08:00
Dim Temp 134384dd80 Extend x32 check by also checking for __x86_64__.
Currently, the configure script checks for x32 by testing just the
__ILP32__ define.  However, on "plain" i386, __ILP32__ can also be
defined, for example by clang 3.5.0 and higher.  (That gcc does not
define it there, is another issue, but not for this tracker.)

Therefore, extend the check by also checking for __x86_64__, which will
also be defined for x32.

BUG=887

Change-Id: I90ac1d6843caff0416e1dd360c0be3dbaa85c2ae
2014-12-03 13:51:58 -08:00
Johann 661802b61d Remove default cortex-a8 tuning.
Probably not even the dominant platform the library is being built for.
Add --cpu= option description to help. The option already exists.

Don't allow passing just --cpu as a no-op.

BUG=826

Change-Id: Iaa3f4f693ec78b18927b159b480daafeba0549c0
2014-12-01 11:08:59 -08:00
Johann 7efb302af9 Indent build/make/configure.sh
Whitespace changes only.

Change-Id: I92eef49db1798bc69ec003fca69995fea560d6fa
2014-11-21 17:32:08 -08:00
Johann eafa0d0ce7 Remove armv5te target
All the assembly code has been removed, the tests no longer check for
the target, and android and chrome do not use the targets.

Change-Id: I193993f7b2b0bd6478453402f573ce3606e04e8d
2014-11-20 17:08:11 -08:00
Johann 6eec73a747 Remove asm offset dependencies
The obj_int_extract code is no longer worth maintaining. It creates
significant issues when adapting for different build systems and no
longer offers as significant of a performance benefit due to
improvements in intrinsics.

Source files will remain until the various third-party builds are updated.

The neon fast quantizer has been moved to intrinsics. The armv6 version
has been removed because so few remaining targets require it.

Compilers and processors have improved significantly since the
pack_tokens code was written. The assembly is no longer faster than the
C code.

pack_tokens were the only optimizations for the armv5te targets so the targets
will be removed after the test infrastructure has been updated.

BUG=710

Change-Id: Ic785b167cd9f95eeff31c7c76b7b736c07fb30eb
2014-11-06 16:00:01 -08:00
Tom Finegan 12e295d056 build/make/iosbuild.sh: Remove armv6 support.
Apple no longer supports armv6 targets in Xcode or iOS.

Change-Id: Ia7aa496afe62162c43c004530324406486c9a052
2014-10-22 16:26:14 -07:00
Tom Finegan a5fb9f2ad1 Fix iphonesimulator and armv6-darwin build targets.
- iphonesimulator: IOS_VERSION_MIN was declared in the wrong place.
- armv6: linking via ld instead of CXX is basically required.

Change-Id: Iad187691f633dcf2bc3e3590e88084bb926edb76
2014-10-01 13:33:34 -07:00
Tom Finegan bd2a9bdd66 iOS build configuration updates.
Commit message longer than commit edition.

Simulator and devices:
  Add a common minimum iOS version that can be shared by iOS and iOS
  simulator targets.

Fix --enable-debug (for device targets; sim was fine):
  Allow for successful configuration and build with --enable-debug when
  CXX is available by:

  - Using CXX as LD (when CXX is available).
  - Passing the correct form of the iOS minimum version parameter based on
    whether LD is CXX or really is ld.

  Note: ld -g still won't work on macosx with this patch, so if CXX is not
  available, configuration will still fail reporting that the toolchain
  cannot link executables when attempting to pass --enable-debug (because
  ld returns an error code since the one included with xcode doesn't
  support the -g argument).

Change-Id: Ia488aed167cc2ca82ee9e980589fb76dddce634f
2014-09-30 20:17:03 -07:00
James Zern 0a9e39fd76 iphonesimulator: make iOS 6 the minimum requirement
iOS 5 support isn't available in the Xcode 6 install; iOS 6 covers
phones starting at the 3GS, so should be a reasonable base line

Change-Id: I15572ec0dd73f1ffc88c58120c706384a01f2478
2014-09-25 18:53:23 -07:00
Tom Finegan 2be2c7d4b4 Merge "build/make/iosbuild.sh: Support extra configure args." 2014-09-19 15:18:09 -07:00
Tom Finegan c1139eccc5 Merge "build/make/rtcd.pl: Add missing arm64 support." 2014-09-19 15:17:45 -07:00
Tom Finegan c7681620c2 build/make/iosbuild.sh: Support extra configure args.
Change-Id: I9860ac1bb0180315e26987c5fc53d814ea1f0283
2014-09-19 11:35:46 -07:00
Tom Finegan c47e420d1a build/make/rtcd.pl: Add missing arm64 support.
Treats arm64 the same as armv8.

Change-Id: Ia5029f7bbff251d5aa0836bcccdf20fa0a693891
2014-09-19 10:45:15 -07:00
James Zern 9d3fb75530 rtcd: relocate 'extern "C" {' declaration
Place after pulling in forward declarations from the codec. This fixes
compilation of the tests under vs9.

Since
10783d4 Adds high bitdepth transform functions and tests
where vp9_idct.h was added to vp9_rtcd.h the tests are pulling in
vp9_systemdependent.h, which under visual studio include intrin.h. With
VS9 these include headers which define helper classes for intel
intrinsics. When including it in the tests (via vp9_rtcd.h) __cplusplus
is defined but vp9_rtcd.h would wrap declarations in 'extern "C" {'
causing a mismatch in linkage which resulted in compilation failure.

Change-Id: I475e50198b71320e8606bc95c9454876d8799ede
2014-09-18 20:57:23 -07:00
Tom Finegan aebb361bb7 Merge "build/make/iosbuild.sh: Be more explicit about armv7." 2014-09-16 10:17:59 -07:00
Johann 8645a53039 Allow specifying opt dependencies
If optimizations use more than one cpu feature, allow
specifying them so that '--disable-X' still works

https://code.google.com/p/webm/issues/detail?id=854

Change-Id: I3108ea37b397371a2be84dd5f2380b304db23f18
2014-09-11 13:43:48 -07:00
Tom Finegan a3b594eeb1 build/make/iosbuild.sh: Be more explicit about armv7.
xcode defines __ARM_ARCH_7A__ for armv7, not __ARM_ARCH_7__.

Change-Id: I0184e253a856e74c133d987ec6f6990f0923bb29
2014-08-28 15:19:23 -07:00
James Zern c5795d8f05 gen_msvs_(vcx)proj.sh: set yasm format explicitly
use win32/win64 instead of $(PlatformName) (Win32/x64) for compatibility
with yasm 1.3.0. both format types were available since at least 0.8.0

BUG=843

Change-Id: I7917620490d0663b118ff08b96d1e5dbccba3703
2014-08-22 15:28:40 -07:00
Gordana Cmiljanovic 1c31e3ecc0 Add support for MIPS64.
Change-Id: I78e27bf942b4a825543e76be25546b6458bad8b6
2014-08-15 20:16:52 -07:00
Johann d39610a452 Merge "Require armv6/media when building armv7" 2014-07-31 12:47:38 -07:00
James Zern 8753f9c5e3 configure.sh: avoid test -a/-o for compatibility
Change-Id: I0bea5cbccd6938fb967299c1d903b60dd2096ccc
2014-07-29 23:25:15 -07:00
KO Myung-Hun 07fa6adfe1 Remove 'local' from configure and configure.sh
'local' is not posix.

Change-Id: I46d7acfa574cbef686cee1b35022f5781485c3fa
2014-07-29 18:41:52 -07:00
Johann 24fbfa42f1 Require armv6/media when building armv7
When building with runtime cpu detect assume that armv7 targets can be
relied upon to have at least armv6 support. This may allow dead code
detectors to remove some _c functions.

Change-Id: Iaec4414011fcbbdf6f4ed0d90ef4a8fe8af540b5
2014-07-29 11:28:23 -07:00
KO Myung-Hun 2926d24478 Makefile: add -mstackrealign to CFLAGS on OS/2
This prevents SIGSEGV of test_libvpx.

Change-Id: I788743841469f4141bc8d29b1d1a8683cb00655c
2014-07-29 22:49:25 +09:00
James Zern 29943519a7 rtcd.pl: check for auto_help availability
'auto_help' was added to Getopt::Long in 2.33
this isn't strictly necessary as an unrecognized option (--help) will
issue a warning and then print the usage

Change-Id: Ia757553a4e19d22a8eb70768a8866ab1a76a0eec
2014-07-24 14:55:19 -07:00
KO Myung-Hun 11f2d4df95 Makefile: strip debugging informations only
--strip-unneeded causes SIGSEGV when accessing g_executable_path. So
test_libvpx crashes due to SIGSEGV in ::testing::InitGoogleTest().

OS/2, aout, strip v2.23.2

Change-Id: I2718d082447ee0d9ad0c021b9156c50e1ac085a6
2014-07-23 20:26:52 -07:00
Yunqing Wang 765485cab2 Add -DNDEBUG when config option debug is disabled
For gcc, when libvpx config option debug is disabled, added the
flag -DNDEBUG to disable the assertions in libvpx for some speedup.

Change-Id: Ifcb7b9e8ef5cbe5d07a24407b53b9a2923f596ee
2014-07-21 09:20:03 -07:00
Tom Finegan 4fae926494 iosbuild.sh: Add VPX_FRAMEWORK_TARGET preproc symbol
Mainly for determining the actual arch when running performance
tests.

Change-Id: Ia6a1c4fcf83e6db1bf94f3e869d146ec32df02f8
2014-07-17 16:47:31 -07:00
Jim Bankoski 943e43273b allow config options to limit max size of decode
This is a practical concern to allow us to fail in a decoder instance
if the size of a file is bigger than we can reasonably handle.

Change-Id: I0446b5502b1f8a48408107648ff2a8d187dca393
2014-07-17 07:07:48 -07:00
James Zern 8bf4c43def configure: defer x32 check until post toolchain setup
x32 would never be detected unless an explicit CC= was used
fixes:
...: -E: command not found

Change-Id: I465fd7b0979f782053bdda240ad68edbca5658e5
2014-06-27 21:00:13 -07:00
James Zern 9cd90d465a Merge "iosbuild.sh Add arm64 support to VPX.framework." 2014-06-27 16:20:38 -07:00
Tom Finegan 1fba21a2b1 Merge "configure.sh: Tweak default of use_x86inc for 64-bit, non-pic, and Darwin." 2014-06-27 16:17:35 -07:00
Tom Finegan e87d68138d Add arm64-darwin-gcc target.
Change-Id: I251cca45db54d2947868e2b9c35cb54f86b10706
2014-06-26 11:30:52 -07:00
Tom Finegan 08d75a8ec9 configure.sh: Tweak default of use_x86inc for 64-bit, non-pic, and Darwin.
Mainly a readability fix.

Change-Id: Idfd4de9f25d9b9f9931d8e885d9d031473d5df6d
2014-06-25 21:15:33 -07:00
Tom Finegan 9a5e9e73a7 iosbuild.sh Add arm64 support to VPX.framework.
Change-Id: I30b1813b744c11c0ca4e84554539cc524e7ee034
2014-06-25 18:56:31 -07:00
Tom Finegan 19125ae121 Merge "iosbuild.sh: Add vpx_config.h and vpx_version.h to VPX.framework." 2014-06-18 16:57:36 -07:00
Tom Finegan 13681121e1 iosbuild.sh: Add vpx_config.h and vpx_version.h to VPX.framework.
- Rename build_targets to build_framework
- Add functions for creating the vpx_config shim and obtaining
  preproc symbols.

Change-Id: Ieca6938b9779077eefa26bf4cfee64286d1840b0
2014-06-18 12:51:30 -07:00
James Zern 74ec6fbeba Merge "gen_msvs_proj: fix in tree configure under cygwin" 2014-06-17 19:35:03 -07:00
Tom Finegan 66bacc025a iosbuild.sh: Add missing function comments.
Change-Id: Ib23a59475d566a7b7f44071614d730ceecfcfa60
2014-06-16 17:04:38 -07:00
James Zern 0a0492611c gen_msvs_proj: fix in tree configure under cygwin
strip trailing '/' from paths, this is later converted to '\' which
causes execution errors for obj_int_extract/yasm. vs10+ wasn't affected
by this issue, but make the same change for consistency.

gen_msvs_proj:
+ add missing '"' to obj_int_extract call
  unlike gen_msvs_vcproj, the block is duplicated
  missed in: 1e3d9b9 build/msvs: fix builds in source dirs with spaces

Change-Id: I76208e6cdc66dc5a0a7ffa8aa1edbefe31e4b130
2014-06-16 14:32:06 -07:00
Tom Finegan 10db0f9f31 iosbuild.sh: Move to build/make and tidy up a bit.
Change-Id: I625beea9db4b5f6db8f177c580a3adeac760a662
2014-06-13 11:03:56 -07:00
Tom Finegan 5d35bc686b Merge "Add target armv7s-darwin-gcc." 2014-06-11 12:13:11 -07:00
Tom Finegan cd2088b44f Add target armv7s-darwin-gcc.
Really just armv7. This is a convenience target intended to make iOS
development with libvpx easier. Xcode projects with default settings
will fail to build when a framework lacks armv7s support when targetting
iOS7.

Change-Id: I7eb80d52eec25501febc0d2c3c0b4ed964b8ed5b
2014-06-10 18:52:58 -07:00
James Zern 3659fbd38c Merge "Makefile: skip .d inclusion for 'testdata' target" 2014-06-10 15:58:59 -07:00
Tom Finegan 664a422e3f Merge "Add x86_64-iphonesimulator-gcc target." 2014-06-10 10:30:56 -07:00
James Zern 4f83315d18 Makefile: skip .d inclusion for 'testdata' target
avoids some unnecessary work when pulling testdata in a freshly
configured tree

Change-Id: Ib43379b0e1549107f3f1b227afca49a899bcc3ab
2014-06-07 20:24:19 -07:00
James Zern b9a569da41 Merge "gen_msvs_*proj.sh: speed up file generation" 2014-06-07 12:51:31 -07:00
James Zern 78d0968e09 gen_msvs_*proj.sh: speed up file generation
execute fix_path once on the source file list rather than once per entry

Change-Id: Ibc8226e391b3028c1b0bcfeab83c790387c9fe23
2014-06-07 12:13:43 -07:00
Tom Finegan 9b2597670f Add x86_64-iphonesimulator-gcc target.
macho64 x86_64 with:
- -miphoneos-version-min=5.0
- -isysroot from xcrun --sdk iphonesimulator

Change-Id: I1ba183e16d50c93d48f526e2dc43a7a6040741c5
2014-06-06 16:54:16 -07:00
James Zern 5f16b7b632 Merge changes I0e4d807f,Ia5ff575c,Ie4a1f313
* changes:
  gen_msvs_*proj.sh: strip SRC_PATH_BARE from obj names
  *.mk: pass SRC_PATH_BARE to all GEN_VCPROJ invocations
  build/msvs: fix builds in source dirs with spaces
2014-06-05 20:52:26 -07:00
Tom Finegan 4e6c555995 Add x86-iphonesimulator-gcc target.
macho32 i386 with:
- -miphoneos-version-min=5.0
- -isysroot from xcrun --sdk iphonesimulator

Change-Id: I6bb43eebab39a71cdb76264644eba14c22d736c2
2014-06-04 21:23:11 -07:00
James Zern e0f416ce23 gen_msvs_*proj.sh: strip SRC_PATH_BARE from obj names
reduces the risk of exceeding msbuild command line length limits

Change-Id: I0e4d807f42c090a709a3dc365a02b929a3071688
2014-06-02 17:09:25 -07:00
James Zern 1e3d9b9e5d build/msvs: fix builds in source dirs with spaces
...when configured below the path containing spaces. configuring outside
the path containing spaces still won't work due to issues with the
makefiles, e.g.,
/path with spaces/git
/path with spaces/build1
/build2
configure/make in build1 will work, build2 will not

Change-Id: Ie4a1f313596d7457cadd67476ac1dbd3273ad46e
2014-06-02 16:02:43 -07:00
Tom Finegan ca5d96315e Merge "Add make target for running example tests." 2014-05-20 15:48:04 -07:00
James Zern e5b8bd020a configure.sh: only execute toupper when necessary
speeds up windows configure by ~40%

Change-Id: Ie3138b8fe39ff4c901c35c5d689c1ed12da34866
2014-05-19 11:36:12 -07:00
Tom Finegan bc27d7e967 Add make target for running example tests.
Change-Id: I0d0dfda96b99cefb5ef5c16df4a024de5bf8007e
2014-05-15 21:35:01 -07:00
Johann 2f6f955a17 Remove intermediate step in vp8_dequantize_b
With the intrinsics it is no longer necessary to have a stub/helper
function.

Change-Id: I3695961c3c94f1bb750d3b7b29716e509ebba482
2014-05-14 12:24:18 -07:00
Johann 4dcc6d9707 Build armv7a-only code
Allow disabling the more generic NEON code.
Use filtered option to disable rtcd code.

Change-Id: Icb4500c1a2bac16eed3c5e3ec0c35e92e6bbbb9f
2014-05-14 12:23:33 -07:00
Johann ce23931a3f Only build neon assembly for armv7 targets
Allow selectively building just the intrinsics for armv8

Change-Id: I2f29b2e4508b8b8e5649c2906b3159ad1d4ec477
2014-05-12 08:52:02 -07:00
Johann 09cbb6c1f7 Merge "Android NDK support for x86 and mips" 2014-05-07 08:54:13 -07:00
Martin Storsjo 65f13afd7d Fix building for arm with Visual Studio 2013
The microsoft build tools explicitly disallow building for arm in
the "desktop" target configuration; one has to target "Windows
Store" apps (aka WinRT/Metro) or Windows Phone. In Visual Studio
2012, one could just pick the v110_wp80 toolset which made the
vcxproj files buildable. In Visual Studio 2013, picking the v120_wp81
toolset isn't enough - one has to configure the vcxproj files
as an "AppContainerApplication". This has the implication that
you can't just build a plain .exe (such as the examples) - an .exe
project would need to have an AppxManifest file. Therefore we can
only build the library itself.

If loaded into Visual Studio for Windows (the Windows Store/Phone
version of Visual Studio, not the Desktop one), the obj_int_extract
project is omitted since it's treated as incompatible. Building
from the command line with msbuild works fine though.

The armv7-win32-vs12 target was added as part of a638bdf4 even
though actual use of it hadn't been tested.

Change-Id: Iee8088252cf790317aeb6b417d29058225f1f629
2014-05-05 13:26:37 +03:00
Johann 7d54e0f093 Android NDK support for x86 and mips
This does not do the full toolchain setup like the arm builds. It only
allows for ndk-builds. See the instructions in tests/android/README or
the webm jnin bindings project:
https://chromium.googlesource.com/webm/bindings/+/master/JNI/README.Android

Because this support is not quite polished, the build targets must be
forced. Please use
--force-target=x86-android-gcc --disable-ssse3 --disable-sse4_1 --disable-avx2
--force-target-mips-android-gcc

Change-Id: Ie2b6623f71ac816e3965c39bf97097e9d30b6e94
2014-05-02 07:26:46 -07:00
James Zern 5ba44e37a4 Makefile: add msvs_common.sh to DIST-SRCS
dist is broken in msvs currently due to a dependency on libs.mk which in
turn depends on the rest of the source tree, not just the examples

Change-Id: I3e313ceeae81eb29ef4bfb099d89756b43583eaa
2014-04-25 18:28:03 -07:00
James Zern 092a20f0a6 gen_msvs_*proj.sh: factorize some functions
-> msvs_common.sh

Change-Id: Id4878805183c0ec11e5d681e4bf820b598b085f9
2014-04-24 15:53:13 -07:00
James Zern 95735c3938 configure: quote some uses of source_path
doesn't completely fix configure/build in directories with spaces, but
it's good practice

Change-Id: Ic7a5b3a0aa9e297b34061af07e099de8b1f003cd
2014-04-23 16:58:36 -07:00
James Zern 792509d31f gen_msvs_vcxproj.sh: support cygwin style paths
Change-Id: I2f05a5d90b3ad6250d31f7b422af4c22527177d1
2014-04-23 12:47:32 -07:00
James Zern a757a99c8e gen_msvs_proj.sh: support cygwin style paths
Change-Id: I674337a775651d7d9c9aa9fee755deaed11c104e
2014-04-23 12:29:45 -07:00
Tom Finegan 7b7c843870 Add utiltest target to Makefile.
Add target for running tests via make. Runs vpxdec.sh and vpxenc.sh.

Change-Id: I5fddb7356b6ac37e284b4f15b47310f108ae3da3
2014-04-22 10:38:43 -07:00
Vignesh Venkatasubramanian 2dcbf8c9e6 Changing webmenc to use libwebm
Changing webmenc to use libwebm for WebM file muxing.

Change-Id: I38ccc74f35c6b9684a87d04d8f9354dbe9a3263b
2014-04-04 10:07:08 -07:00
James Zern 99615be98d gen_msvs_*proj.sh: add 'cpp' as a source extension
Change-Id: I21cdaeea33a56dd4c0e38c36d01f338b1ab04c74
2014-04-03 12:27:29 -07:00
Paul Wilkins 80577dff4b Revert "Changing webmenc to use libwebm"
Temporary revert.
Problems with conflicting definitions of type off_t
in MSVC builds that need resolving.

c:\Program Files (x86)\
  Microsoft Visual Studio 9.0\VC\include\wchar.h(479) :
  "error C2371: 'off_t' : redefinition; different basic types
c:\on2experimental\libvpx\tools_common.h(26) :
   see declaration of 'off_t'"

This reverts commit 92a4c59112.

Change-Id: I535e40a18842a92e3e6e0b29e5fba66313010803
2014-04-02 13:29:25 +01:00
Vignesh Venkatasubramanian c3934addce Merge "Changing webmenc to use libwebm" 2014-04-01 14:23:35 -07:00
Vignesh Venkatasubramanian 92a4c59112 Changing webmenc to use libwebm
Changing webmenc to use libwebm for WebM file muxing.

Change-Id: I42eb688953865003214c05bdf2076ee00db28970
2014-03-28 07:39:05 -07:00
Tao Bai 9a80053099 Add compile option to parse ELF.
Change-Id: I64a81601d11e9fa383435bfd1a1d35206ebb2fc8
2014-03-26 22:10:01 -07:00
James Zern a79995c64b configure: clean up temp gcov (.gcno) files
Change-Id: I792e4ef7d81aa81beb28091a37a61bafb91b30f4
2014-03-25 15:25:16 -07:00
Martin Storsjo 1521eb8ba9 ads2armasm_ms: Match the indentation of the previous line
Instead of hardcoding a certain indentation, use the regexp to
provide similar indentation for the new line as well.

Change-Id: Iacb2621b35ce7e1aa3980c1603b8e3ab02d98a35
2014-03-20 08:13:07 +02:00
James Zern 8003cf9279 Merge "configure: test -m(mmx|sse|sse2|sse3) flags" 2014-03-19 19:33:53 -07:00
Martin Storsjo 5182befa49 ads2armasm_ms: Add an ALIGN 4 after ENDP
This makes sure that labels for data symbols directly after
functions get properly 4-byte-aligned (when the source is assembled
in thumb mode).

Previously, if declaring a data symbol directly after a function, the
symbol could end up pointing to the unaligned address (if the total
size of the thumb function didn't end up being a multiple of 4). The
data in the symbol itself ended up aligned, but the symbol pointed to
the preceding unaligned position.

That is, a source file looking like this:
---
   ...
   ENDP

symbol
   DCD 0x12345678
---

could end up being assembled into
symbol:
  xxxxx2: 0000
  xxxxx4: 5678
  xxxxx6: 1234

(This doesn't happen if the symbol label is on the same line as the
DCD directive.)

By adding an ALIGN 4 directly after the ENDP we make sure the symbol
itself gets aligned properly.

This isn't an issue with the original, untranslated arm source,
since it only is built in arm mode where all instructions are 4 byte,
and since the gnu assembler automatically adds the padding before the
symbol even in thumb mode.

Change-Id: Iadbeebd656b0197e423e79a12a7d3ef8859cf445
2014-03-19 21:53:44 +02:00
James Zern c0d673775a configure: test -m(mmx|sse|sse2|sse3) flags
<=sse2 isn't strictly necessary on x86_64, but this is more consistent
with the rest of the flags and should be harmless

Change-Id: Ice0f1d1c4c7510ee90af2a62dbd3d6508db63487
2014-03-18 20:28:23 -07:00
James Zern f1e8d58a5c configure: test for -mssse3
fixes compile with older versions of gcc

Change-Id: If529f3102dbc926be8d5fb91d4161fa686c11840
2014-03-18 17:30:56 -07:00
James Zern c37ecba7f7 configure: factorize gcc machine option checks
check_gcc_machine_option() replaces individual -m* checks

Change-Id: I0f4a82020c0541b99209321907e80e071d1245e1
2014-03-18 17:25:31 -07:00
Martin Storsjo 317e07eedb thumb: Clarify a comment about the conversions that are done
The comment made it look like the condition code was dropped from
the extra add instruction, while it actually was handled properly.

Thus, the comment was misleading while the code itself did the right
thing.

Also clarify the comment indicating that we use the full three-operand
form of the add instruction.

Change-Id: I2c1ac6ac4fedf262d104ea30a6c005febc74de9c
2014-03-17 14:25:46 +02:00
James Zern 37c60d82c8 gen_msvs_vcxproj.sh: add --enable-werror option
translates to TreatWarningAsError (/WX)
setting this via the CL environment variable is not possible due to the
/WX- default which is used on the command line

Change-Id: I0b42a9d3ca9eba6af82c25b8e434baa2fcb00156
2014-03-08 12:52:33 -08:00
James Zern 2e3ed02c6d Merge "Avoid unknown warning warnings and fix -Werror on macosx." 2014-03-06 20:28:01 -08:00
James Zern f45fe16684 configure.sh: quote local variables
fixes issue #711

specifying a multiword CC, e.g., CC='gcc -m32', would cause the failure
under dash

reported in
https://bugs.gentoo.org/show_bug.cgi?id=498136

patch by floppymaster at gmail dot com

Change-Id: I2ba246f765646161538622739961ec0f6c2d8c2d
2014-03-06 15:58:37 -08:00
Tom Finegan 4c6c4a6756 Avoid unknown warning warnings and fix -Werror on macosx.
clang on macosx does not support -Wunused-but-set-variable; adding the flag
causes additional warnings about the flag. As a more generalized fix, use
-Werror when checking compiler flag support in order to avoid using
unsupported warning flags.

Change-Id: I2529862e211f880d56491eac3b9fa90fff1aa5c3
2014-03-06 14:54:49 -08:00
James Zern d1aeef94a5 Merge changes I627eb724,I55d5865b
* changes:
  configure: add a test for configured source dir
  Makefile: add distclean target
2014-03-06 14:18:16 -08:00
James Zern b867e42578 Makefile: add distclean target
wipes out configure generated files

Change-Id: I55d5865b84c6dfc19f13011e66e3483c54bf6a15
2014-03-05 19:15:00 -08:00
Tom Finegan 8ed6277f53 configure: Use "cat -n" instead of "pr -n -t"
Configuration logging is passed through pr, but nothing configure
does actually requires pr. Use cat instead.

Change-Id: I451217882a329c2bfb8942ac86ac624a7feef670
2014-03-05 15:18:23 -08:00
James Zern 805078a1bf build: convert rtcd.sh to perl
significantly speeds up file generation.

the goal of this change is to convert rtcd.sh to perl as directly as
possible to allow for simple comparison. future changes can make it more
perl-like.

---
Linux
    [CREATE] vpx_scale_rtcd.h
real    0m0.485s ->    0m0.022s
    [CREATE] vp8_rtcd.h
real    0m4.619s ->    0m0.060s
    [CREATE] vp9_rtcd.h
real    0m10.102s ->    0m0.087s

Windows
    [CREATE] vpx_scale_rtcd.h
real    0m8.360s ->    0m0.080s
    [CREATE] vp8_rtcd.h
real    1m8.083s ->    0m0.160s
    [CREATE] vp9_rtcd.h
real    2m6.489s ->    0m0.233s

Change-Id: Idfb71188206c91237d6a3c3a81dfe00d103f11ee
2014-03-03 14:47:11 -08:00
James Zern b6941849cb normalize perl shebangs
don't require perl to be in a fixed location

Change-Id: Icc8b6113a2a3626f847fe46409334a03f1db5c85
2014-02-28 11:56:14 -08:00
James Zern 73c65b5781 Merge "rtcd.sh: sort functions by name" 2014-02-28 10:29:22 -08:00
James Zern bd7467ddb6 rtcd.sh: sort functions by name
this will aid in output comparison with other generation systems

Change-Id: Ifb66321e45ab9fdd9eaeb5e0ea8b3d0632efe7ce
2014-02-27 20:03:46 -08:00
James Zern 707648c3cc configure: remove x86inc debug message
+ break long line

Change-Id: I12c1524451a7ce697128801a3328de318cfeabdc
2014-02-27 15:07:38 -08:00
James Zern f0a6a604fc Merge "gen_msvs_vcxproj.sh: Avoid object name collisions." 2014-02-26 23:41:57 -08:00
James Zern 6859d0f0d0 fix vs9 build after obj_int_extract changes
broken since:
1d3ca08 obj_int_extract.bat: Pass obj_int_extract.exe path to obj_int_extract.bat.

Change-Id: Ic3de9f8c2b604e3aa9b905e1bc0b578963e01a4a
2014-02-23 16:08:00 -08:00
James Zern dd18536563 Merge "gen_msvs_vcxproj.sh: Set TargetName instead of OutputFile." 2014-02-22 11:08:39 -08:00
Tom Finegan 1d3ca088f6 obj_int_extract.bat: Pass obj_int_extract.exe path to obj_int_extract.bat.
- Update the vcxproj generator to pass the path to the batch file.
- Update the batch file the take the path to obj_int_extract.exe as arg
  2.

Fixes this warning:
warning MSB8012: TargetPath does not match Linker's OutputFile property
value.

Change-Id: I5825f1d1d79f370aeb295bbd2aeb08b22c0e73ab
2014-02-20 22:20:58 -08:00
Tom Finegan 7f17b2e476 gen_msvs_vcxproj.sh: Set TargetName instead of OutputFile.
Set TargetName for library builds instead of changing the value of
OutputFile.

This fixes the following warnings:
warning MSB8012: TargetPath does not match Library's OutputFile property
value.

Change-Id: I4320b6d9ea922d3a15b9823c7c6694ee33edbf45
2014-02-20 14:51:05 -08:00
Tom Finegan dbf6e3f3c8 gen_msvs_vcxproj.sh: Avoid object name collisions.
Fixes the following warning:
warning LNK4042: object specified more than once; extras ignored

Change-Id: Icee24073be774e7f7902587449fb90a42ab16b6f
2014-02-19 19:39:47 -08:00
Tom Finegan 7836e3a5d7 gen_msvs_vcxproj.sh: Add /arch:AVX for files using AVX.
Turns on AVX when the final characters of .c and .cc file names preceding the
.c and .cc file extension contain the substrings avx or avx2. This silences
many MSVC warnings issued during compilation files that use AVX.

Change-Id: I82bda394af7a688679abab2a50dd7e10b3cb0c7a
2014-02-12 14:22:36 -08:00
Johann 279dbb9a30 Merge "Skip COMDAT sections when parsing COFF" 2014-02-12 09:41:30 -08:00
James Zern 8fcac74256 configure: use -Werror when testing CXX flags w/clang
Change-Id: Ia7d827d391941b4b507e568c99cc83531273433c
2014-02-05 17:31:48 -08:00
James Zern 37114919e0 Merge "gen_msvs_proj: add trailing \ to IntDir" 2014-02-05 11:55:35 -08:00
Martin Storsjo 95eae0c468 ads2gas.pl: Don't require perl to be in a fixed location
This reduces the differences to ads2gas_apple.pl.

Change-Id: Ie30e369e3685b35485efe2296f7cdf91dafee1e7
2014-02-05 11:19:22 +02:00
Martin Storsjo 45c4533cc1 ads2gas_apple.pl: Reduce differences to ads2gas.pl
Avoid substitution of substrings by using \b to make sure the
substituted strings are at word boundaries.

This is an adaption of the corresponding changes to ads2gas.pl
from 7ebcaeb0fa.

Change-Id: I52160e8ba0373d4779d5fc3b0c384ca5c51c7b13
2014-02-05 11:19:11 +02:00
James Zern 95c34c9053 gen_msvs_proj: add trailing \ to IntDir
older versions of visual studio did not include the trailing \. this
moves the objects to their intended location: the project subdirectory

Change-Id: I244479cdebf6b3f03bed6dbfca82e7fb4542f0de
2014-02-04 20:42:03 -08:00
Rui Ueyama 25eeac0518 Skip COMDAT sections when parsing COFF
Fixes https://code.google.com/p/chromium/issues/detail?id=339889
when building Clang-based ASan on Windows

Change-Id: Ib77d9593636f46827dbb77f087d407ec0f463fc7
2014-02-04 07:56:52 -08:00
Johann 3b83a395da Correct OUTPUT_C_HEADER
OUTPUT_FMT_C_HEADER

Change-Id: Ic1a583352ead8268efc39f1b89257e9c622e1613
2014-01-28 15:57:33 -08:00
Tao Bai 6f00a46d44 Ouput symbols as c header file.
This is required by webrtc.

Change-Id: I32983597eb0f6797aeb0d93b65d8911989ba98ea
2014-01-27 11:11:47 -08:00
James Zern d9a9c45b90 rtcd.sh: add extern "C" to generated headers
Change-Id: Ifb30518555402eb473c3fde81bc860fbe17851dd
2014-01-18 13:14:14 -08:00
Johann dadf350551 Apply neon flags to intrinsic files
Filter out files ending in _neon.c and append .neon so the Android build
system knows to apply -mfpu=neon

Change-Id: Ib67277e5920bfcaeda7c4aa16cd1001b11d59305
2014-01-10 12:16:59 -08:00
Johann 87784e3a99 Include gen_msvs_vcxproj.sh
Change-Id: I28e9cf9347acd7279df3b841863a248479633265
2014-01-08 09:51:15 -08:00
Johann 195a085253 Remove yasm.rules dependency
The file was removed by 9152f4851d after
the solution files were changed.

Change-Id: I868c56fd609f45fb3e21afd085b9e6c268aac038
2014-01-06 15:12:42 -08:00
James Zern 934f0fbbcb obj_int_extract: fix compile warning
string literals should be returned as const char*

Change-Id: Iaab98711ed22f9c6eff1ca922c0576a1ff93a58f
2013-12-12 19:43:01 -08:00
Martin Storsjo f0339cc9cf thumb: Fix a typo in a comment
Change-Id: Ic318be9d74a95793abc41501fe563164de53a6d7
2013-11-26 10:57:01 +02:00
Johann e813843b46 Disable avx/avx2 for Visual Studio 2010
VS2010 only supports avx. There is currently no avx code
in libvpx so don't create a special case for it.

Change-Id: Iacb10ea4762155412e04f23904b4324d01451fbd
2013-11-18 13:30:19 -08:00
Yaowu Xu c8e38a6c69 Merge "Add support for VC++2013" 2013-11-18 09:32:19 -08:00
Johann 16344c4a55 Generate GAS output for Chromium
Upstream changes to account for differences in clang
syntax for Chromium iOS builds.

Since most of these are incompatible with XCode clang,
hide them behind a flag.

Change-Id: Idafcbcd4eb01b1ada6277da2d2edfd6c04b579fd
2013-11-15 08:36:47 -08:00
Johann 5d0c33b8e5 Build iOS targets with XCode 5
Thanks to armando.dicianno for the patch

Fixes issue #603

Change-Id: I91ec030e5674b82c05115ed4dfbdb8ccbff22b66
2013-11-15 08:36:31 -08:00
Yaowu Xu a638bdf4c4 Add support for VC++2013
Change-Id: Iccc15aacee1fee9995dfd974bc89913891ad67a9
2013-11-14 12:05:59 -08:00
Johann 53d797840e Split macro strings on whitespace
Match any whitespace instead of individual spaces. The macro
definitions in vp9/common/arm/neon/vp9_short_idct32x32_1_add_neon.asm
triggered this and treated spaces as arguments leading to lines like:
$8vld1$8.$88$8           {$8q8$8}, [$$89$8], $$8stride$8

Change-Id: I2d5718aba4614e4fd7b702e15c2a1bd80e656bd2
2013-11-12 14:24:58 -08:00
Yaowu Xu 9b744922dd disable avx/avx2 for old versions of MSVC
Change-Id: Ifb40757c9c6b353482cfeef929af282ee0136c6c
2013-11-06 12:29:48 -08:00
Erik Niemeyer e6863ef318 CL for adding AVX-AVX2 support in libvpx.
Change-Id: Idc03f3fca4bf2d0afd33631ea1d3caf8fc34ec29
2013-10-29 15:11:16 -07:00
Yunqing Wang 51af8a5103 Adjust icc compiler options
"-no-prec-div" option helps codec performance, so it was added back.
"-no-intel-extensions" was added to suppress link warning #10237.
option '-use-asm' is deprecated and removed.

Tested icc 32bit build and 64bit build.

Change-Id: I736ec2619857efd425ef76338dc52f8fbc0bcc7e
2013-10-11 20:17:59 -07:00
Parag Salasakar 40edab5e39 mips dsp-ase r2 vp9 decoder convolve module optimizations
Change-Id: I401536778e3c68ba2b3ae3955c689d005e1f1d59
2013-10-02 16:58:37 -07:00
Martin Storsjo e81a3ede4c thumb: Keep whitespace between arguments as before
Include the whitespace after the first argument's comma in the
optional first argument group.

This fixes a minor style regression in the converted output
since 2a233dd31.

Change-Id: I254f4aaff175e2d728d9b6f3c12ede03846adcf1
2013-09-29 21:32:46 +03:00
Jim Bankoski 6903efa93d Merge "mips dsp-ase r2 vp9 decoder extend module optimizations" 2013-09-29 10:31:09 -07:00
Jim Bankoski b6c5dbe9ef mips dsp-ase r2 vp9 decoder extend module optimizations
Adopted again to shepherd through system.

Change-Id: If1b742618a95a2198ae2e30eec4b53ad1f7353e5
2013-09-29 10:27:11 -07:00
Jim Bankoski 437f63144a intel compiler build no longer supports -axSSE2 or -no-prec-div
Change-Id: Id129cf4021903c554ffdc57bf13df9fbb98f800e
2013-09-26 11:54:57 -07:00
Martin Storsjo 2a233dd31d thumb: Extend the regexp for handling negative register indexing
Now the same regexp that previously handled cases such as
"ldr r1, [r2, -r3]" also can handle the first operand being omitted
as in "pld [r2, -r3]".

This fixes building vp9_convolve8*neon.asm in thumb mode (and thus,
for Windows Phone as well).

Change-Id: I20c1c3f2bfb2587fb5fa523b863972a7fe30d8ff
2013-09-19 14:43:38 +03:00
James Zern ccb6bdca75 configure: fix action expansion
enable|disable -> (enable|disable)_feature

Change-Id: I7494913c78ebe8bb532fa6545e0ae53a79ccd388
2013-08-21 19:00:08 -07:00
James Zern 42ab401fd3 configure: rename enable() to enable_feature()
+ disable() -> disable_feature() for balance

this avoids shadowing the bash builtin 'enable' allowing the scripts to
be linted with checkbashisms

Change-Id: Ia11cf86c92ec25bd14e69427b0ac0a9a61a5f7a5
2013-08-21 18:11:45 -07:00
Guillaume Martres eb2fbea621 Get rid of bashisms in armlink_adapter.sh
Change-Id: If3cd84bb873fbad5622172c9b79ad8ae5485235a
2013-08-14 18:57:10 -07:00
Guillaume Martres 3526f1cd5e Get rid of bashisms in the main build scripts
The conversion was done with the help of the checkbashisms script
and https://wiki.ubuntu.com/DashAsBinSh .

Change-Id: Id64ecefb35c8d72302f343cd2ec442e7ef989d47
2013-08-13 18:48:35 -07:00
Jim Bankoski a93b115cd6 reworked config for use_x86_inc
Support enabling it or disabling it.  Moved read out to configure.sh
so that its done once instead of in make and in config.

Change-Id: I73a9190cf31de9f03e8a577f478fa522f8c01c8b
2013-08-05 17:35:25 -07:00
Martin Storsjo feefd81bd7 msvs: Generate proper configurations for mixed platforms
Prior to 73c4e284, the generated .sln files didn't contain any
information about the different configurations when using .vcxproj
project files. The MSVS IDE was able to fill this in just fine when
loaded though.

When building for ARM, the obj_int_extract project still is built
for x86, in order for the build process to be able to use
obj_int_extract.exe.

Now that configuration info is generated, it breaks current ARM
setups, since the configurations generated by gen_msvs_sln.sh only
included configurations from the last parsed project file (as
mentioned in the comment).

In these setups, the MSVS IDE generated a third meta-platform, called
"Mixed Platforms". This meta-platform points to either ARM or
Win32 as platform in each of the individual projects.

When the MSVS IDE generated this automatically, it also included
the original ARM and Win32 platforms as separate choices, but these
can be omitted since they don't make sense.

Change-Id: Ie25226496f91af4bb1ad8eb9ae9ca5bfed0433d7
2013-07-24 23:10:00 +03:00
James Zern 32bca36f51 Merge "configure: default configure log to config.log" 2013-07-22 12:55:29 -07:00
Morton Jonuschat fe4a52077f Make libvpx compile on OSX 10.9 (Mavericks)
Change-Id: Ibf2555f1c0d00e91d416eb39201a5a91df7fab27
2013-07-19 21:22:18 +02:00
James Zern e636af13e7 configure: default configure log to config.log
this is consistent with autoconf

Change-Id: I1860831693789259ee35d644775653d6a460cc77
2013-07-18 14:17:00 -07:00
Ami Fischman 294ecc7e0a libvpx: enable building for iOS devices (armv7)
Allow output of gas syntax assembly directly from obj_int_extract

Change-Id: I33a747e87ef1c590a8766dea17f8cb2497e54591
2013-07-18 10:21:56 -07:00
James Zern 73c4e28487 msvs-build: use msbuild for vs >= 2005
allows concurrent builds via the /m command line option

Change-Id: I668792ba00276e8626dc175c0a44ddab35fc7114
2013-07-10 16:18:13 -07:00
James Zern 82f5935111 Merge "msvc: set a more useful debug format" 2013-07-10 13:02:22 -07:00
James Zern 9718e708f3 msvc: set a more useful debug format
pdb vs. c7; works better with test_libvpx

Change-Id: I67d18e328dd8e7734d3710f3912e9b179d368a62
2013-07-09 17:28:22 -07:00
James Zern f89335f7ca remove unused VP8 com/dec asm offsets
Change-Id: Ib3b26ee27f04b2dcbbd32b3127afb45e9f50cfcf
2013-07-09 14:33:49 -07:00
John Koleszar f0d9f10d24 Remove all asm offset files from VP9
The files are empty and unused.

Change-Id: Ieb4242d14273efdf24149bda33f9591540bba06a
2013-07-09 14:26:53 -07:00
James Zern 5677b25b28 vs9 build: avoid deprecated /Wp64 flag
quiets a warning on every file; the preference is to use a 64-bit
compiler, which is readily available at and above this version.

Change-Id: I56e7eb569022e7148249d93fe386ad5ea0eee3fc
2013-06-14 19:54:12 -07:00
John Koleszar d0ed677a34 Merge branch 'master' into experimental
Change-Id: Ie648398b82f7311143709f55c0e30ba452f50eff
2013-06-11 16:29:28 -07:00
Martin Storsjo ad484fc6be Add support for armv7-win32-vs11
The arm assembly files are named .s after conversion, to reuse
as much of the existing makefile infrastructure for conversion to
gas format as possible. Within the generated visual studio project,
only the converted assembly sources are available, which might not
be optimal for actually developing it, but is acceptable for
just building the library.

Multithreading is disabled since the traditional win32 threading
functions aren't available on WinRT/Windows Phone 8.

Building of vpx itself and the examples succeed, while building the
tests fail due to them using functions not available in the
windows store/windows phone API subsets - therefore the unit tests
are disabled.

This works for building in Visual Studio Express 2012 for Windows
Phone, while Visual Studio Express 2012 for Windows 8 (for
"Windows Store" apps) seems to reject the vcxproj files due to
not supporting "classic style native application or managed
projects". The built static library should be compatible with that
platform though.

Change-Id: Idcd7eca60bfaaaeb09392a9cd7a02e4a670e3b30
2013-05-22 02:08:25 +03:00
Martin Storsjo 6b9a7b3333 thumb: Add a parameter for specifying a shift offset for the pc addition conversion
The branch instructions are encoded as 16 bit instructions
by the microsoft assembler, while they are encoded as 32 bit
instructions by gnu binutils.

Change-Id: I622b9025df3520c08eef8447df078f5517fb4b67
2013-05-22 01:50:57 +03:00
Martin Storsjo 5d2f6baac3 thumb: Adjust the conversion of the position independent switch
This is required since the microsoft assembler claims that
add.w r12, pc, #10
generated unpredictable behaviour.

Change-Id: Ia8e1830def965c88ca4e2f48a24107bac6a4cb9d
2013-05-21 09:57:24 +03:00
Martin Storsjo a83db43632 Add a script for converting ads arm assembly to microsoft armasm format
The formats are basically the same, but a few minor details need
to be adjusted. Addiitonally, when building for the WinRT/Windows
Phone 8 platforms, one has to build for thumb, so convert instructions
accordingly.

Change-Id: I3c3902aa20fd3bfc29168d3a1bf17111e5481dcb
2013-05-21 09:57:24 +03:00
Martin Storsjo 5f76080a4d ads2gas: Factorize thumb instruction replacements into a separate perl module
Change-Id: Ie7b83ad696e4743c844df8e9ef5899aca65cc92e
2013-05-21 09:57:23 +03:00
Martin Storsjo bd91bebe48 configure: Add x86*-vs10/11 targets
Change-Id: I4be8ca12ccdce86d1409b7121cff94b4784ab31c
2013-05-21 09:57:02 +03:00
Martin Storsjo cbc8089a1e gen_msvs_sln: Support producing versions 10 and 11, handle vcxproj files
Change-Id: I3c23a2ce383d9291a823d2be7364608ce0e01570
2013-05-21 09:57:01 +03:00
Martin Storsjo 56666f0726 Add a new script for producing vcxproj files
Change-Id: If02a7b85f417b9693dcdab73573fc13f67e17016
2013-05-21 09:56:56 +03:00
Martin Storsjo 7097781467 ads2gas: Use the correct perl string comparison operator
Using == ended up matching no matter what string was passed in
(which so far only happened if when the -thumb parameter
was set).

Change-Id: Ifa7b611d016d984aec3b697b5a1a07839f7508dc
2013-05-15 20:56:50 +03:00
Martin Storsjo 132422d9ab Add an option for building for arm in thumb mode
Change-Id: I5a46645064c2fe1c13287cf06c3244820b4e699e
2013-05-13 12:49:40 +03:00
Martin Storsjo 644587cfdd ads2gas: Allow converting code to thumb mode
Currently this only supports thumb2.

This involves rewriting certain instructions that can't be expressed
in thumb2 into equivalent instruction sequences. The regexps for
rewriting are currently written pretty narrowly, only covering the
exact cases currently encountered in the code base.

No IT instructions are added (since that would require more logic than
plain regexps), so using the thumb mode requires enabling
-mimplicit-it=always/thumb.

Change-Id: I1f676ad1d351381f02bcf00105102aa8dd7ae364
2013-05-13 12:49:36 +03:00
Johann 231faf91c3 Merge "Automatically flag intrinsic files" into experimental 2013-05-06 11:04:04 -07:00
Johann a62fcbea30 Automatically flag intrinsic files
Change-Id: Iee9894615265d42aa23c43a4183924953aedb0c6
2013-05-03 15:35:13 -07:00
James Zern 3fa5b39d6f configure: use .cc as c++ extension
clang++ will warn causing flag check failures when using -Werror

Change-Id: Ib7157140a7af2cf5bc41f86ea9ff8d9527f30414
2013-05-03 14:36:56 -07:00
Johann b4e390981c Merge "Add __inline__ to INLINE definition." 2013-05-03 09:38:56 -07:00
Johann 9ebc99fcac Add __inline__ to INLINE definition.
When using 'always_inline' 'inline' should be specified as well.

Thanks to Digit for identifying this:
https://chromiumcodereview.appspot.com/14820003/

Change-Id: If1647fac91b85ecabe6d3cd04290d5c08c5a11ea
2013-05-02 12:32:02 -07:00
Martin Storsjo 2ce4783982 configure: arm: Check __ARM_PCS_VFP if the float ABI hasn't been defined
The support for detecting hardfp toolchains in af9dd50e is a
step in the right direction, but that particular switch case
isn't executed at all if the toolchain variable is set.

This fixes cross building from x86 ubuntu to armhf ubuntu,
in configurations such as
"CROSS=arm-linux-gnueabihf- ./configure --target=armv7-linux-gcc".

Change-Id: I6f141361e40374fbab564f9196d90e598fe9a0f6
2013-05-01 23:10:29 +03:00
Johann 32a5c52856 Merge branch 'master' into experimental
Conflicts:
	vp9/common/vp9_findnearmv.c
	vp9/common/vp9_rtcd_defs.sh
	vp9/decoder/vp9_decodframe.c
	vp9/decoder/x86/vp9_dequantize_sse2.c
	vp9/encoder/vp9_rdopt.c
	vp9/vp9_common.mk

Resolve file name changes in favor of master. Resolve rdopt changes in
favor of experimental, preserving the newer experiments.

Change-Id: If51ed8f457470281c7b20a5c1a2f4ce2cf76c20f
2013-04-26 12:57:10 -07:00
Johann 53a4620271 Change default iOS dev path
This can be manually overridden with --libc=

Change-Id: I0b857c751d5dc5423f79785e934bc8a714758e75
2013-04-24 14:26:35 -07:00
Johann 3810bca9a9 Fix Android ndk-build
Add the config directory to the rtcd generation script. libvpx is
configured in the jni directory but ndk-build is intended to be run from
the next directory up. Currently it needs to be run from the jni
directory but this is being looked in to.

Add a trailing slash to allow the variable to be empty.

Reduce offset generation to the files which are actually used.

Change-Id: Ia84fac37e8998ba647423d0ee45fc66a891ce10c
2013-04-17 10:52:50 -07:00
John Koleszar 7f7d1357a2 Merge branch 'experimental' into master
VP9 preview bitstream 2, commit '868ecb55a1528ca3f19286e7d1551572bf89b642'

Conflicts:
	vp9/vp9_common.mk

Change-Id: I3f0f6e692c987ff24f98ceafbb86cb9cf64ad8d3
2013-04-16 06:49:46 -07:00
Yunqing Wang 335114debe Configure: make --enable-gprof work
Modified for option "--enable-gprof".

Change-Id: I07f78f28c1b789c0b3e9e7db3561463551ae5460
2013-04-09 13:24:59 -07:00
James Zern 8b4b28a5ea fix make test invocation for msvc win64
Change-Id: If5d4b7ffa67223ed72b53a6c9b9e42b4de5718f2
2013-04-05 11:56:54 -07:00
John Koleszar 771fc832f3 Merge branch 'master' into experimental
Pick up VP8 encryption, quantization changes, and some fixes to vpxenc

Conflicts:
	test/decode_test_driver.cc
	test/decode_test_driver.h
	test/encode_test_driver.cc
	vp8/vp8cx.mk
	vpxdec.c
	vpxenc.c

Change-Id: I9fbcc64808ead47e22f1f22501965cc7f0c4791c
2013-03-27 10:46:19 -07:00
James Zern 08348d9cab prefix vp8 asm_{com,dec,enc}_offsets files
make them symmetrical with the generated output and their vp9
counterparts

Change-Id: I72cc97c4d33d713dff620a6d7cc25955266216fc
2013-03-02 14:45:40 -08:00
John Koleszar 69c67c9531 Merge master branch into experimental
Picks up some build system changes, compiler warning fixes, etc.

Change-Id: I2712f99e653502818a101a72696ad54018152d4e
2013-03-01 11:06:05 -08:00
Jim Bankoski 714aa9f3c0 this commit converts all sad ptrs to uint32
sse4_1 code used uint16_t for returning sad, but that
won't work for 32x32 or 64x64.   This code fixes the
assembly for those and also reenables sse4_1 on linux

Change-Id: I5ce7288d581db870a148e5f7c5092826f59edd81
2013-02-28 08:46:35 -08:00
James Zern 50771d41f2 rtcd: make include guard unique
prior numbers were removed resulting in the same include guard for
vp[89]_rtcd

Change-Id: If2741e5b0cbdda7390c20e865e9f05992caff93e
2013-02-22 16:05:00 -08:00
John Koleszar 43cec44bbf Remove 'local' variables in rtcd.sh
These aren't required to be supported by sh.

Change-Id: I54d641a2377531e0b320676d29d4ecdeee82288a
2013-02-21 11:11:13 -08:00
Ronald S. Bultje aac73df1a7 Use configure checks for various inline keywords.
Change-Id: I8508f1a3d3430f998bb9295f849e88e626a52a24
2013-02-06 16:12:56 -08:00
Johann 1a0f52485a Delay SSE check until the compiler is configured.
Move SSE4 detection below compiler configuration. Otherwise ${CC} may
not be populated.

We are specifically interested in -msse4.1. Narrow detection code.

Change-Id: I0ffac49e91b3fdb2aceb6eb6b90dc1c10b159111
2013-01-25 16:43:09 -08:00
Johann f8af71a934 Include apple arm conversion script
Fix building iOS targets from 'make dist' sources

Change-Id: I0bb9ba2a6d94e57c6cf439a79419af254e4a359c
2013-01-25 12:18:39 -08:00
James Zern a495da1c3c Merge "make: support V=1 as short form of verbose=yes" 2013-01-23 14:47:30 -08:00
John Koleszar de5546c372 Merge branch 'experimental' of review:webm/libvpx
Change-Id: Ib2c2236349c2ae8ee81bd01c5067dddcbac713ca
2013-01-14 18:34:04 -08:00
Andoni Morales Alastruey 652589d56c configure: add support for android x86
Change-Id: Iadbfce5ecddd53a5238c2036e2c07f05d5853a5a
2013-01-14 12:51:16 +01:00
Johann 8aca351926 Merge "configure: support hardfloat armv7 CHOSTS" 2013-01-10 10:56:28 -08:00
Luca Barbato af9dd50e42 configure: support hardfloat armv7 CHOSTS
Many linux distribution for arm switched to armhf/hardfloat, support
them.

Change-Id: I8ab39d34782b4f24b7028ac76342118166fd5905
2013-01-10 06:00:48 +01:00
Luca Barbato 64347a10a2 configure: support mingw-w64
Autodetect common cross compile and native mingw-w64 CHOSTs

Change-Id: Ib307b2f047c024c4dbc41880bd8d84b0fa7ecb93
2013-01-10 04:52:51 +01:00
Luca Barbato 44881a55d3 make: support V=1 as short form of verbose=yes
make V=1 is commonly used for the purpose of trigger verboseness
across projects.

Change-Id: Id9dfb4a7eea8338b366ae8dadb56ab02ceabbb58
2013-01-09 00:09:36 +01:00
John Koleszar 879cb7d962 Merge vp9-preview changes into experimental branch
Incorportate vp9-preview changes by merging master branch into experimental.

Conflicts:
	test/test.mk
	vp9/common/vp9_filter.c
	vp9/common/vp9_idctllm.c
	vp9/common/vp9_invtrans.h
	vp9/common/vp9_mbpitch.c
	vp9/common/vp9_rtcd_defs.sh
	vp9/common/vp9_systemdependent.h
	vp9/common/vp9_type_aliases.h
	vp9/common/x86/vp9_asm_stubs.c
	vp9/common/x86/vp9_subpixel_mmx.asm
	vp9/decoder/vp9_decodframe.c
	vp9/decoder/vp9_dequantize.c
	vp9/decoder/vp9_dequantize.h
	vp9/decoder/vp9_onyxd_int.h
	vp9/encoder/vp9_bitstream.c
	vp9/encoder/vp9_encodeframe.c
	vp9/encoder/vp9_rdopt.c

Change-Id: I17f51c3666d1b59cf1a699f87607cbc5d30a87c5
2013-01-08 10:19:59 -08:00
John Koleszar 16810c10c1 Merge branch 'vp9-preview' of review:webm/libvpx
Merge the vp9-preview branch into master.

Change-Id: If700b9054676f24bed9deb59050af546c1ca5296
2012-12-27 09:37:19 -08:00
James Zern 3162b4f23c configure: test for -msse4
not present in < GCC 4.2

Change-Id: I7b1a3078fd782644b1c432ce682d2160ffc2263a
2012-12-20 14:08:59 -08:00
John Koleszar de52948665 make: fix dependency generation
Remove an extra level of escaping around the $@ variable to get valid output.
Prior to this change, modifying header files did not trigger a rebuild of
sources dependent on them.

Change-Id: I93ecc60371b705b64dc8a2583a5d31126fe3f851
2012-12-19 13:44:32 -08:00
Johann feba090e5f Add 'jni' to documention for ndk-build
ndk-build is intended to be launched from the application directory,
not the jni directory. Clarify the path in the comments.

Change-Id: Ie0faa89a13d967088a4fd2fd1c647962a9c04217
2012-12-18 16:30:47 -08:00
Frank Galligan b192d99f73 Fix ads2gas script to look for ALIGN as a word.
Change-Id: I4efc4f4e87e8666b69257de82c5c5dd4aadee28c
2012-12-10 16:30:32 -08:00
John Koleszar d984763867 configure: add --enable-external-build support
First attempt at avoiding all the compile-time environment detection for
cases where you can generate the environments statically, as when the
real build is being performed by another build system.

Change-Id: Ie3cf95d71d6c5169900f31e263b84bc123cdf73f
2012-12-10 12:39:55 -08:00
Yaowu Xu 6a5e6e0549 Fix the build with MSVC
1. remove the dependency on non existing "vp9_temporal_filter_x86.h"
2. prefix filenames with vp9_ in obj_int_extract.bat to reflect the
change of the actual filenames.

Change-Id: Ib1b4d96ac41788f76917764a6722d8461c857302
2012-12-04 09:12:49 -08:00
Martin Storsjo 836f8e9883 Disable fast unaligned on armv5te
This is enabled by default in the main configure.sh, but apparently
is supposed to be disabled if the hardware doesn't support it.
Unaligned reads is only supported on armv6 and newer.

Change-Id: Ie1412e36a14036bbb4fe7b89aa36a178f35b2228
2012-11-28 22:23:39 +02:00
John Koleszar 1760c39bce Revert "make: flatten object file directories"
This reverts commit b72373de79.

Change-Id: Ic1601160e11df1a018ef12da25967cfb5eebd5ba
2012-11-27 16:36:39 -08:00
John Koleszar b551d82d92 Merge "make: fix dependency generation for flat build tree" into experimental 2012-11-20 17:22:37 -08:00
John Koleszar 2978bb8762 make: fix dependency generation for flat build tree
Update the fmt_deps function to use a new sed expression to convert the
object file name generated by the compiler into the path-transformed
name of the .o and .d files.

Prior to this patch, changing a header file would not trigger an
incremental build.

Change-Id: I07f498a1d134577b89a72e3f1143c737b31a0636
2012-11-20 07:36:35 -08:00
Yaowu Xu 9152f4851d remove yasm.rules
As we changed the scripts to compile asm files using customized command
for each file.

Change-Id: I975713f3d0cce2238de3ee3fe44e3227385f0c64
2012-11-16 11:09:26 -08:00
Yaowu Xu a3384f00a3 changed asm obj output filenames in MSVC build
this commit changed the asm file compiling in MSVC to use individually
customized build command line with object filename specified for each
input file. This allows object filenames prefixed with path name, and
avoid name collision in link time

Change-Id: I996098643dcadc393af57035a04bef3877f45424
2012-11-15 10:46:38 -08:00
John Koleszar a9c7597adc support building vp8 and vp9 into a single lib
Change-Id: Ib8f8a66c9fd31e508cdc9caa662192f38433aa3d
2012-11-15 10:46:17 -08:00
John Koleszar b72373de79 make: flatten object file directories
Rather than building an object file directory heirarchy matching the
source tree's layout, rename the object files so that the object
file name contains the path in the source file tree. The intent here
is to allow two files in different parts of the source tree to have
the same name and still not collide when put into an ar archive.

Change-Id: Id627737dc95ffc65b738501215f34a995148c5a2
2012-11-15 10:44:58 -08:00
Yaowu Xu 7798aef50b enable build on windows with msvc
Change-Id: I34057b87d9713dc819b8c69990dd1408b8c79342
2012-11-08 15:56:27 -08:00
Ahmad Sharif 7ebcaeb0fa ads2gas.pl: convert push/pop and whole keywords.
This change converts push to stmdb and pop to ldmia. In addition word boundaries
are obeyed using \b avoiding substituion where not appropriate.

Patch provided by ihf@chromium.org.

TEST=Used on many Daisy assembly files.
BUG=None.

Change-Id: Ie5b197b158edd0467294551d0b640c8db6530d95
2012-11-08 15:16:44 -08:00
John Koleszar 1d0dc7c9f5 build: merge with master
Change-Id: I8ea836ce92c1c96f1e2bdf45e704d36ec9dbc401
2012-11-05 12:39:39 -08:00
Ahmad Sharif b0e1c5f899 ads2gas.pl: various enhancements to work with flash.
TEST=Ran it on different asm files.

Change-Id: Ief2a009366787954d0eb5c356c64acaef350cf84
2012-11-02 08:16:21 -07:00
Ronald S. Bultje 4b2c2b9aa4 Rename vp8/ codec directory to vp9/.
Change-Id: Ic084c475844b24092a433ab88138cf58af3abbe4
2012-11-01 16:31:22 -07:00
Yunqing Wang bc1d3cb90b Fix "_FORTIFY_SOURCE" redefined warning
On Ubuntu 12.04, we got the following warning message:
<command-line>:0:0: warning: "_FORTIFY_SOURCE" redefined
 [enabled by default]
<built-in>:0:0: note: this is the location of the previous definition

This was already fixed in VP8 configure file. Did the same change in
experimental branch to stop this warning.

Change-Id: Id162e5fd8841585ae806df6560b2f7536ea307c0
2012-10-24 09:22:10 -07:00
Mike Frysinger a75a9cf2fd check for x32 targets
Add configure detection of the new x32 ABI as well as support in asm.

Change-Id: Ic66a069599adeb81062090e3f11b71ee1fb97cb8
2012-09-25 12:22:11 -04:00
John Koleszar 07083903b6 Fix file permissions
Change-Id: I8d1a2c664cbeb939cf23bcd414b23e19da760a14
2012-08-22 10:17:18 -07:00
Mike Frysinger 2b59e14a00 Parse out arm isa targets from dumpmachine
The current parsing logic of the dumpmachine tuple lacks any arm
cases which means tgt_isa never gets set, so for all arm targets,
we get detected as generic-gnu.  Add some basic arm checks here
so the automatic detection logic works.

Change-Id: Ie5e98142876025c6708604236bc519c0bdb09319
2012-08-15 09:14:28 -07:00
Andoni Morales Alastruey 4180dfd93c configure: check for pthreads building on windows with gcc
Change-Id: I737361fa9911c11017af971a80c2ffad20b01d03
2012-08-09 12:54:09 +02:00
Christian Duvivier 26c4130b23 Newline got lost in submission of "Partial import of "New RTCD implementation" from master branch."
Change-Id: I3841eca46e29a108a79fe47af0cfa97f0bc80a2a
2012-08-08 17:20:33 -07:00
Christian Duvivier 707b65bd16 Partial import of "New RTCD implementation" from master branch.
Latest version of all scripts/makefile but rtcd_defs.sh is empty, all
existing functions are still selected using the old/current way.

Change-Id: Ib92946a48a31d6c8d1d7359eca524bc1d3e66174
2012-08-08 16:43:48 -07:00
Christian Duvivier 82edabce75 Add x86_64-darwin11-gcc target.
This allows building on MountainLion as the 10.6 SDK has been
removed from the latest Xcode version (4.4 4F250). Also fix
all warnings for that build.

Change-Id: Ib70bca4a25295f13595f0d10ea9f0229631de5a4
2012-08-06 15:26:58 -07:00
Attila Nagy 6b8665ebc4 Avoid warnings about redefining _FORTIFY_SOURCE
Undefine the macro befor redefining it.

Change-Id: I31187307273c138f8d5380c74f9e0619af15cdd9
2012-07-27 10:02:09 +03:00