Commit Graph

315 Commits

Author SHA1 Message Date
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