Commit Graph

44 Commits

Author SHA1 Message Date
zhilwang
56edea9bcd Merge pull request #1066 from mstorsjo/android-cpufeatures-dir
Build the android cpu-features.o file in codec/common/src
2014-07-03 13:47:14 +08:00
Martin Storsjö
239050d73c Ignore failures in cleaning android projects
If the android test projects hasn't been built yet, the "make clean"
command will stop at "ant clean" (which fails since build.xml doesn't
exist yet). If this happens, one still would want to run the "make
clean" command to the end, cleaning up any possible intermediate object
files (e.g. from a build for a different platform).
2014-07-02 13:42:52 +03:00
Martin Storsjö
10eeea52fe Build the android cpu-features.o file in codec/common/src
Up until now it was built in codec/common (where all other common
source files were built, until they were split up into
inc/src/x86/arm/arm64).
2014-07-02 13:39:26 +03:00
Martin Storsjö
16a4066e7f Generate dependencies while building for android 2014-06-26 15:11:17 +03:00
Martin Storsjö
5e9492cb6e Use a less generic name for linking to STL when building the plugin for android
This matches the common naming scheme more closely for adding extra
flags to individual parts of the build.

Also deduplicate the static stlport lib name.
2014-06-25 09:12:06 +03:00
Martin Storsjö
b3f7896a51 Inject STL_INCLUDES via MODULE_INCLUDES for the gmp plugin
This avoids having to rely on manual modifications to targets.mk,
which are overwritten if the targets.mk files are regenerated
via the script.
2014-06-25 08:59:55 +03:00
enda mannion
7c0b92e3f6 building plugin on Android 2014-06-24 12:32:09 +01:00
zhuling13
6bf7ad4e2b and space to colon, modify bad note 2014-06-04 18:23:19 -07:00
zhuling13
b4c8f6b778 for cleaning .o and .d files generated by android demo 2014-06-02 20:21:10 -07:00
Martin Storsjö
0acb780715 Don't define MACOS and LINUX
Nothing within the library actually uses these defines for anything
any more.

If necessary, the built-in defines __APPLE__ and __linux__ can be
used instead of these manually added defines. This is similar to how
we use _WIN32 instead of manually defining WIN32.
2014-05-12 12:17:53 +03:00
Martin Storsjö
a0002c2be8 Use $(PROJECT_NAME) in the android .so name 2014-05-04 15:57:40 +03:00
Andoni Morales Alastruey
3a4cea63ef Rename cpufeatures symbols to avoid colisions in static builds
This fixes potential duplicated symbols in static links
with other libraries including the cpufeatures.o object file
2014-04-08 11:25:01 +02:00
volvet
9f50e0c91e clean multi-threading macro 2014-03-31 18:24:10 -07:00
Martin Storsjö
e1b5e038d2 Use .obj as suffix for object files on MSVC
This avoids warnings when linking about "unrecognized source file
type, object file assumed".
2014-03-18 19:41:06 +02:00
Martin Storsjö
00849100f8 Remove the unused define NOPREFIX
Nothing in the x86 assembly reacts to that define (nor anything
else within the code base).
2014-03-15 14:40:36 +02:00
Ethan Hugg
567302eb9a Merge pull request #410 from mstorsjo/android-armeabi
Allow building plain armeabi binaries for android
2014-03-10 09:44:19 -07:00
Martin Storsjö
918af27560 Support building for any other android architecture
This allows e.g. building for mips, as a plain C++ build with
no assembly.
2014-03-08 01:22:31 +02:00
volvet
ffde7b2e09 Merge pull request #442 from mstorsjo/unify-thread-cleanup
Unify the thread cleanup code, enable threading on android
2014-03-07 18:14:03 +08:00
Martin Storsjö
181fe0a99e Enable multithreading on android 2014-03-07 10:51:28 +02:00
Martin Storsjö
30fff7ece0 Allow building plain armeabi binaries for android
Building with "make OS=android APP_ABI=armeabi" will
produce arm binaries that will conform to the armeabi
ABI - not using any features outside of armv5te by
default (but still optionally using the NEON functions at
runtime if detected - even though such devices should rather
use the default armeabi-v7a build).
2014-03-06 08:15:55 +02:00
Licai Guo
36ae8d9f6c use stlport to replace libgnuc++, this remove GCCVERSION variable 2014-03-05 22:15:36 -08:00
Licai Guo
585c526b1f rebase on latest code, refine android build 2014-03-05 17:32:03 -08:00
Martin Storsjö
506826a8ae Fix building android on x86
In 70360cb11, the ASM variable was moved to the x86-common file
even though the android build file didn't include neither
platform-arch.mk nor platform-x86-common.mk.

Instead of explicitly declaring ASM here, include platform-arch.mk
and remove setting of the flags that platform-arch.mk sets.

This is inspired by and based on a patch by Licai Guo.
2014-03-05 15:19:18 +02:00
Martin Storsjö
23ab117240 Don't set -mfpu=neon while building the normal C++ files
This will make the normal C++ code not run on non-NEON devices at
all, making the runtime CPU feature detection pointless.

Adding -mfpu=neon to CFLAGS is not necessary, it's enough to
add it while building those individual .S files (via ASMFLAGS).
2014-03-04 08:56:42 +02:00
Martin Storsjö
30c7810cdf Enable the android runtime CPU feature detection
Build and include the android cpufeatures library in libcommon.
2014-03-04 08:56:42 +02:00
Martin Storsjö
0fc93cd98e Hook up building arm assembly in the generic linux and android makefiles 2014-03-04 08:56:42 +02:00
Martin Storsjö
70360cb11e Move the ASM variable declaration into the x86-common file 2014-02-28 10:22:19 +02:00
Martin Storsjö
fbc7519d90 Don't explicitly set/clear USE_ASM in the android makefile
The USE_ASM variable is architecture independent now and only
controls whether assembly optimizations should be enabled in
the general sense, regardless of the target architecture.
2014-02-28 10:19:53 +02:00
Martin Storsjö
7d2c761604 Allow using the USE_ASM makefile variable for architectures other than x86
Add an ASM_ARCH variable which specifies which kind of assembly
is supposed to be built.
2014-02-28 10:19:53 +02:00
Martin Storsjö
8d95d0841d Indent nested ifdefs in the android makefile
This makes the makefile slightly more readable.
2014-02-28 10:19:52 +02:00
Martin Storsjö
2f02bf9626 Link codec_unittest to the static android STL
This allows building (and running) codec_unittest for android.

This explicitly needs to go at the end of the LDFLAGS, since both
this and -lgtest etc. are static libraries, and code in gtest
relies on the STL. Since this explicitly needs to be at the end,
a separate makefile variable is added for it.
2014-02-24 17:03:18 +02:00
Ethan Hugg
df6f92096a Merge pull request #330 from mstorsjo/android-build-fixes
Android build fixes/cleanups
2014-02-20 15:39:22 -08:00
Martin Storsjö
a8a2c5eaba Move LDFLAGS specific to creating a shared library to SHLDFLAGS 2014-02-20 12:28:00 +02:00
Martin Storsjö
f6126a0bb8 Don't add C++ specific compiler flags to CFLAGS, add them to CXXFLAGS 2014-02-20 12:28:00 +02:00
Martin Storsjö
0fc2b6d14e Set the CC and AR tools when building for android as well 2014-02-20 12:28:00 +02:00
Martin Storsjö
64c2164df9 Fix building the gtest library when targeting android
The main purpose is to make sure that the build doesn't fail
if the build directory contains the gtest subdirectory, although
the unittests also could be run on a device.
2014-02-20 12:28:00 +02:00
Martin Storsjö
fc06d8783b Pass the right -mfpu flags for the armeabi-v7a target without NEON 2014-02-20 12:28:00 +02:00
Martin Storsjö
b5a9a83c69 Run ndk-build from the android project top level directory
One doesn't need to run the ndk-build command from within the
jni subdirectory, calling it from the project top level directory
works just as well.

Also remove an unnecessary step of cd ../../../.. at the end -
since all make commands are run in a subshell, we don't need to
restore the current working directory afterwards.
2014-02-20 12:28:00 +02:00
Martin Storsjö
6ac6b941cf Don't quote the android building commands in sh -c ''
The full command line can be written as such without any extra
wrapping.
2014-02-20 12:28:00 +02:00
Martin Storsjö
4d31f66873 Chain build commands using && instead of ;
This makes sure the build aborts as soon as possible if there is an
error, instead of having the error message drown in all the
following output.
2014-02-20 12:28:00 +02:00
Martin Storsjö
317eb437b0 Enable x86 assembly by default if building for x86 android
Most users would probably miss enabling it otherwise.

It can still be disabled manually by passing USE_ASM=No on the
make command line.
2014-02-20 11:23:41 +02:00
Licai Guo
538d22560f refine android build, add TARGET option to specify target in sdk 2014-02-19 20:49:30 -08:00
Licai Guo
f6e4ed6524 enable x86 asm for android 2014-02-19 17:31:21 -08:00
Licai Guo
d058176c3b add android support, single commit 2014-02-18 17:54:27 -08:00