4fab4150af0c180a6e45e2bfbcdf3c6c0aa479dd |
|
24-Jun-2014 |
Andrew Hsieh <andrewhsieh@google.com> |
Add PCH support in LOCAL_PCH See b.android.com/25412 Contributors: DodoEntertainment Alex.Holkner ezradreisbach Change-Id: Ie11a737fcf01f063dbf7812432a7356359cca01e
|
b216d9bbe851841b884c6fb4ba7d8f5548e85cf5 |
|
18-Feb-2014 |
Andrew Hsieh <andrewhsieh@google.com> |
Add APP_STL := libc++_static | libc++_shared Change-Id: I6cb681160c3f6dee585f0471fe0521d19f9f4b95
|
f064277b216f263f5f1f1d99c3aa77e83c359c79 |
|
06-Feb-2014 |
Andrew Hsieh <andrewhsieh@google.com> |
Build .asm with yasm; Add a testcase Change-Id: Iacbe580157552fc52a9a0ef2f58d5b09801fc059
|
3feac42ebbdbebc1a311edc27b845387c7da6da7 |
|
30-Dec-2013 |
Andrew Hsieh <andrewhsieh@google.com> |
Fixed RS to link arch-specific libclcore.bc Change-Id: I581e5350f32b21959d6e1ab964ccf67e4773e916
|
6818b74a366cce707d927e7603a02d3401bfcbc1 |
|
14-Nov-2013 |
Andrew Hsieh <andrewhsieh@google.com> |
Fix build in ndk-build.cmd when LOCAL_SRC_FILES contain absolute path In windows $(abspath $(src)) returns path with drive letter, eg. C:/path/to/your/source.c. We should replace ':' with something else ('_' in this CL), otherwise the computed obj file may contain invalid ':', eg. ./obj/local/armeabi-v7a/objs/project/C:/path/to/your/source.o Internal BUG 11482427 Change-Id: I4f764486c05a4200ce03a3cd6c853ba231f9b76c
|
621b1552abe536a6dd9d57ba9950bc83fc35ff7c |
|
10-Nov-2013 |
Andrew Hsieh <andrewhsieh@google.com> |
Add LOCAL_EXPORT_LDFLAGS Like other LOCAL_EXPORT_* flags, now module can export LDFLAGS Change-Id: I2d85a151b64a120034d08a8a09169f8c8bdacdaf
|
67259dd98f05d48c5d1120eb4db0ec86bb15b02d |
|
24-Oct-2013 |
Andrew Hsieh <andrewhsieh@google.com> |
Add RS support in API19 Change-Id: I31b7c747c045cbbf3ffef96edd4910c75fe6da29
|
4953c51f28a48bc8e98fedfefbb74922f14c47ae |
|
07-Oct-2013 |
Andrew Hsieh <andrewhsieh@google.com> |
Fix [$ABI] in ndk-build The new ndk-build echo build step prefix with [$TARGET_ARCH_ABI]. Unfortunately by the time it's echoed $TARGET_ARCH_ABI becomes the last word of NDK_APP_ABI. For examples, cd $NDK/samples/bitmap-plasma ../../ndk-build -B # APP_ABI := armeabi armeabi-v7a [armeabi-v7a] Gdbserver : [arm-linux-androideabi-4.6] libs/armeabi/gdbserver [armeabi-v7a] Gdbsetup : libs/armeabi/gdb.setup [armeabi-v7a] Gdbserver : [arm-linux-androideabi-4.6] libs/armeabi-v7a/gdbserver [armeabi-v7a] Gdbsetup : libs/armeabi-v7a/gdb.setup [armeabi-v7a] Compile thumb : plasma <= plasma.c [armeabi-v7a] SharedLibrary : libplasma.so [armeabi-v7a] Install : libplasma.so => libs/armeabi/libplasma.so [armeabi-v7a] Compile thumb : plasma <= plasma.c [armeabi-v7a] SharedLibrary : libplasma.so [armeabi-v7a] Install : libplasma.so => libs/armeabi-v7a/libplasma.so Fix to record the current ABI at the time when make targets are created Change-Id: I1a316e982d2f9ccbe4919c474cb70ad41106e5a2
|
2f84ee41d7f2388e65aa829f93165e1ae461c873 |
|
02-Oct-2013 |
David 'Digit' Turner <digit@android.com> |
Improve ndk-build output + fix double-quotes on Windows. This patche slightly improves the ndk-build output for individual build steps, i.e.: BEFORE: Compile <abi> : <some details> AFTER: [abi] Compile : <some details> The reason for this is that there are some build steps which didn't include the <abi>, which is ambiguous when doing a multi-ABI build with lots of parallel jobs. Note that for ARM, 'Compile arm' or 'Compile thumb' are still being used to distinguish between 32-bit ARM and 16 or 16/32 Thumb compilation modes. This only affects Compile and Compile++ build steps. + Fix the extra-quoting issue on Windows described by https://code.google.com/p/android/issues/detail?id=60649 Change-Id: Ib0bb7587f7113d488696e1c820d89adabad3070c
|
73859e01a9e2b63c0ce882ebbc9cc6b3eff91dc0 |
|
29-Aug-2013 |
Andrew Hsieh <andrewhsieh@google.com> |
Add LOCAL_CONLY_FLAGS and APP_CONLY_FLAGS LOCAL_CFLAGS is passed for C++ compilation as well. This is by design to save developers from the trouble of specifying flags twice for both LOCAL_CFLAGS and LOCAL_CPPFLAGS. Unfortunately for flags like -std=gnu99 is harmful to g++ (warning) and clang++ (error), and better be specified in APP/LOCAL_CONLY_FLAGS Change-Id: I110516ef14e57df78b477a7f51d89bbc9176ad13
|
4192b2972079ba849c8859cea2a6486564648675 |
|
11-Jun-2013 |
Nick Kralevich <nnk@google.com> |
NDK: Enable -Werror=format-security Don't allow code to compile which has format string vulnerabilities. This is already the default in the Android platform itself. Extend these protections to NDK compiled applications. Change-Id: Ic582739c0e1d3dbf78ebe2deffa3917856cd0bf2
|
7bc161cadc7e5f389a5175d486b68d4ce694aa23 |
|
17-Jun-2013 |
David 'Digit' Turner <digit@android.com> |
ndk-build: Refine the handle of circular dependencies. This changes the way circular dependencies are treated when computing the topological sort in definitions-graph.mk. Previously, only circular dependencies that cycled back to the top-level module were handled properly, other ones were dropped. For example, with an example like: A -> B B -> B The module B was dropped from the result. This resulted in the inability to use STLPORT_FORCE_REBUILD with stlport_static (see bug entry below). This implementation detects cycles at any level, and returns the corresponding nodes, in their original listed order. Since this modifies the result of the function when circular dependencies are involved, had to modify one test case. + Fix typo. https://code.google.com/p/android/issues/detail?id=56607 Change-Id: I20976d7d6d56ee0976dadc500d55dd34a8d7fa3b
|
9505b505d507f2d193f69fd84b9cc5a7de9cfa5c |
|
29-Apr-2013 |
David 'Digit' Turner <digit@android.com> |
Add LOCAL_THIN_ARCHIVE support. This adds support for generating "thin archives" when building static libraries. Instead of containing a copy of their object files, these contain just pointers/paths to them, making the file much smaller and avoiding data duplication, reducing the size of the build output. The drawback is that these libraries cannot generally be moved, or will fail at link time if the object files are removed. BUG=40303 Change-Id: Iee8fc34d9a2b197dac867bb87f6a6977e3ad1443
|
618bc65a2d50d700b31418d321b4ebf70afe6d2d |
|
29-Apr-2013 |
David 'Digit' Turner <digit@android.com> |
ndk-build: Support absolute paths in LOCAL_SRC_FILES This patch allows one to use absolute paths in LOCAL_SRC_FILES. This can be useful in situations where computing a path relative to LOCAL_PATH is too complicated. (Main purpose is to ease testing of libc++ out of the NDK tree). + Avoid double slashes in object file paths during the build, i.e.: obj/local/$ABI/obj/<module>/foo.o instead of: obj/local/$ABI/obj/<module>//foo.o Change-Id: I816d7f8782b94eea722d6a0c14249b8a921a9b72
|
be3de0e9415c9662719b9b70318d314ad6502e4c |
|
05-Apr-2013 |
David 'Digit' Turner <digit@android.com> |
Add warnings if LOCAL_LDLIBS/LDFLAGS are used in static library modules. This also adds the following: - Add warnings if there are no modules to build. - Add warning about non-system libraries used in LOCAL_LDLIBS/FLAGS of shared library or executable modules. - If APP_MODULES is not defined and only static libraries are listed in Android.mk, force-build all of them. BUG=53502 Change-Id: If4b363cb3d9e23c5095b404f77e70ba0c2bfa609
|
0498e3a7a78f13886cf028fada0a46823c743118 |
|
22-Mar-2013 |
Martin Storsjo <martin@martin.st> |
Clear LOCAL_BUILT_MODULE_NOT_COPIED between modules This makes sure that built libraries actually are removed on ndk-build clean, from projects that include prebuilt static libraries. Change-Id: I5e58e82cab062a79d6609f9a8fb18acbec1a1a38
|
37f0ccac958c582b3083a41b66ee9e358c323e3b |
|
16-Mar-2013 |
Andrew Hsieh <andrewhsieh@google.com> |
Fix ndk-build warning in windows When running ndk-build from jni/ directory, directory path is expanded to full-path. In windows, the full-path is completed with drive letter and ':', eg. c:/path/to/project/jni. As a result, the following statement in "generate-dir" which is supposed to ensure single rule for each directory since NDK r8c doesn't work when $1 contain ':'. __ndk_dir_flag__$1 := true The warning reads: ...android-ndk/build/core/build-binary.mk:350: warning: overriding commands for target c:/path/to/project/obj/local/armeabi ...android-ndk/build/core/build-binary.mk:350: warning: ignoring old commands for target c:/path/to/project/obj/local/armeabi The solution is to use indirection via variable __ndk_dir instead. See https://code.google.com/p/android/issues/detail?id=40192 Change-Id: Ic3f7016987e03440728d3d1b3282acb5afcdae9a
|
79740de85d70ef1759332186a6448f39048cf622 |
|
06-Feb-2013 |
David 'Digit' Turner <digit@android.com> |
Fix ndk-build unit test. The test has to define TARGET_OBJ_EXTENSION since it is run before anything that does that. Change-Id: I3928e69ce9953242211d8baff1287b087e70603f
|
7aa6cc13872bb10bb9c7723b789f19c13adb7a09 |
|
04-Feb-2013 |
David 'Digit' Turner <digit@android.com> |
Fix dependency graph computation in ndk-build This introduces a new definitions-graph.mk file providing proper topological sorting (with wild unit tests for it), and make the rest of ndk-build use it. This solves the incorrect dependency computation demonstrated by the 'topological-sort' test, which is no longer in BROKEN_BUILD state after this change. For more information, see http://b.android.com/39378 Note that this also simplifies the build process a little, i.e.: - if a shared library or executable depends on several static libraries, try to build them in parallel, even if one depends on the other. - better computation of the list of whole static libraries. in general, whole libraries are treated like regular ones now when it comes to computing dependencies. Only at link time, the libraries that are tagged as 'whole will be put in a separate function. There is no unit test for this, I probably need to add one. Change-Id: I36d9179e53b0b7bcb7de50e2a1a769c231c28201
|
244e6d54811de81f6f473b3e7c114198db6325ef |
|
15-Nov-2012 |
David 'Digit' Turner <digit@android.com> |
Move internal functions. This patch moves a few internal functions from definitions.mk to two new files named definitions-utils.mk and definitions-host.mk. Functions in definitions-utils.mk should be generic and not rely on any global variables / environment variables / the file system. This makes them trivial to test properly. Functions in definitions-host.mk depends on the value of HOST_OS and are really used to generate shell commands during the build. definitions.mk still contains functions related to the build, e.g. the module database. + Add three new utility functions, and corresponding tests: filter-by filter-out-by find-first They'll be used by functions defined in later patches. Change-Id: I4d841fab74dd83a434a5c408f0b31d7847166d52
|
cdf4a1640245ceabe1c17b79ff78728cd77f2132 |
|
09-Nov-2012 |
David 'Digit' Turner <digit@android.com> |
build/core: introduce internal ndk-build unit tests. This patch introduces many unit test related definitions under build/core/definitions-tests.mk, and also implement a few unit tests for the functions in build/core/definitions.mk Note that there are still functions acting on global variables, that are harder to test this way. A future patch might make these more testable in the future. The test functions are not run during a ndk-build pass, unless NDK_UNIT_TESTS is defined, so this won't slow down regular builds. There is a new build test to run all the unit tests and easily detect regressions when invoking tests/run-tests.sh Finally, the last2 and last3 functions were removed, they were not used, and testing showed they didn't work correctly (ah ah). Change-Id: I72a31bdc0126528c260f1c7565f88f100203a353
|
f79965de365170cd3d7011ef62226dccbb6bba71 |
|
09-Nov-2012 |
David 'Digit' Turner <digit@android.com> |
ndk-build: module database simplification. This patch ensures that the "lib" prefix is always removed from a module name when it is first recorded in the module database. This simplifies dependency computations (which don't have to call strip-lib-prefix during recursive operations). Change-Id: Ic7a049866b7fa5bfdc47856d10fdd0f9658fb397
|
a355a4e66652cc6fea742b9802e350a63cac2992 |
|
31-Jan-2013 |
Andrew Hsieh <andrewhsieh@google.com> |
Parameterize target-obj/lib/soname-extension Make it more friendly to plugin Change-Id: Iecc7ef66dd67d98449832c414e8d2cec9ea033c3
|
f13b17d6cd1fcff8e1eee259fda6ee40fc59ae46 |
|
03-Jan-2013 |
Andrew Hsieh <andrewhsieh@google.com> |
Add APP_LDFLAGS, whole project flags for linking Change-Id: I1111f488648a64b35e32cb4a430b2117beead77a
|
b9f4a9cfb939dd47b4c77be34cfd5ab8100e2150 |
|
28-Dec-2012 |
Andrew Hsieh <andrewhsieh@google.com> |
Move to SRC_DIR, instead of copy, after downloading toolchain source At 3.2GB, "move" can save lots of time compared to "copy" Also, add more logging when adding c++ libraries dependencies Change-Id: If220bd299e15c3015af8e30510604635eaadfa53
|
47097cee425d829a45dc4bef2f427309d978f6c7 |
|
30-Nov-2012 |
David 'Digit' Turner <digit@android.com> |
ndk-build: Do not copy prebuilt static libraries. This patch modifies ndk-build to avoid copying prebuilt static libraries un-necessarily. This fixes http://code.google.com/p/android/issues/detail?id=40302 + Add relevant unit test. + Make run-tests.sh copy tests with a 'build.sh' script to a temporary location, just like other ones. Change-Id: Id474cd86880efade1d9f49125724f7708b03d07a
|
45f2a04dc3542b9c9d537a0eec181299a27ed24c |
|
19-Nov-2012 |
David 'Digit' Turner <digit@android.com> |
ndk-build: Fix un-needed rebuild of object files. This fixes a bug where ndk-build would mistakenly rebuild object files even if no sources have ever been touched. For more context see http://code.google.com/p/android/issues/detail?id=39810 Change-Id: Ida1bbdb385a5867fecea820e6c4729793357e870
|
9fbd926d87db2195889c98c5a3b9cf4e887025ce |
|
12-Nov-2012 |
David 'Digit' Turner <digit@android.com> |
Fix a bug preventing STL dependencies to certain C++ sources. ndk-build was modified recently to recognize C++ source files that don't use the .cpp extension. However, the module-get-cpp-sources definition in build/core/definitions.mk was not updated properly. The end result is that if a module only used C++ source files that was not .cpp, it would get built with the C++ compiler (correctly), but the APP_STL setting would not be applied to it, result in a build error (for example, when including a C++ STL header). This patch fixes this, and also adds a regression test for this issue. Change-Id: Ib68d07492bdbb597e5c6f414cc989eb816ad8752
|
212c013c8c7fdb1c3cb4e7228f589e8e81dd1c0d |
|
17-Oct-2012 |
Andrew Hsieh <andrewhsieh@google.com> |
Support -fPIE for API >= 16 Enhance ndk-build to add -fPIE when API level is larger than or equal to 16. Note the the real API level is still adjusted back to androi-14 for higher level, ie. no new headers/libs were added in platforms/android-N Also check and give warning when the adjusted API level is larger than android:minSdkVersion in AndroidManifest.xml. Without this check, it's possible for native code to compile with higher API level w/o using new APIs, get -fPIE, and crash on Android with level < 16, when the old code used to run by accident. Also document API_PIE Change-Id: Id0ffbdc3f31d0268741529502178b116e71e0c01
|
5e39db8dc7dfbb05fa4c089a9fb87e8ffc0edfa8 |
|
14-Aug-2012 |
Andrew Hsieh <andrewhsieh@google.com> |
Fix breakage when app with .arm/.neon suffix uses stlport With APP_STL ndk-build searches for C++ file (default to have .cpp extension) in LOCAL_SRC_FILES before adding STL header/lib paths to compilation. Fix ndk-build to filter out .arm and .neon suffixes first, otherwise file like myfile.cpp.arm.neon won't be considered C++! Change-Id: I237cd9e2ebf6ddf79edf9dcd14c35f0289e070cd
|
544ecbef57ecf42fbe8a99a1a6cd6816a347f587 |
|
06-Aug-2012 |
David 'Digit' Turner <digit@android.com> |
Fix windows parallel builds This patch fixes Windows parallel builds that sometimes failed due to timing issues in the host-mkdir implementation. http://code.google.com/p/android/issues/detail?id=25875 + Optimize the creation of output directories. Instead of invoking host-mkdir for every output file, we now introduce a single rule and appropriate dependencies to ensure that this operation is only done once. + Remove obsolete cmd-install-file definition (use host-install instead). Change-Id: I64a090a50c5b26cdaf8d989b55a8bbe68e9149d9
|
22c5065bae39793e5c3b0c5654c7e4f76f2de5f4 |
|
04-Jul-2012 |
David 'Digit' Turner <digit@google.com> |
Make LOCAL_SHORT_COMMANDS work on Darwin. Our implementation of LOCAL_SHORT_COMMANDS relied on 'echo -n' to append data to an existing file, but this option is not supported by Darwin's echo program. Modify our build scripts to use "printf %s" instead to do the same thing on Posix systems. On Windows, which doesn't have printf, keep using the toolbox echo program that supports the flag. Change-Id: I35e14279a60e2dd54a0078cdcc5e177984e155d8
|
1253fb9584ff236b9fb2886cfc0986416751822d |
|
21-Jun-2012 |
Andrew Hsieh <andrewhsieh@google.com> |
Fixed LOCAL_SHORT_COMMANDS to not recompile/relink source/object every time When LOCAL_SHORT_COMMANDS is set to true, compiler options are emitted to a response file and read off using the '@file' syntax. This is to support very long commmand line w/o running over the limit of shell command buffer. Obviously target depends on the response file which shall be regenerated every time to account for potential changes in command line options. Unfortunately this triggers rebuilding of target as well even when the content of response file is identical to the last one. This CL fixes it by emitting options to a temp file, and only update the response file when contents differ Change-Id: Ia2be6df7bbc0d0816b60d552f3fde004f42ca748
|
f74c373729bcd1519debe03cda90ef3fd3366848 |
|
17-May-2012 |
Nick Kralevich <nnk@google.com> |
ndk: compile third party apps with relro support. Enable relro / bind_now when compiling NDK applications. This marks certain regions of memory as read-only after linking, making memory corruption security vulnerabilities harder to exploit. See: * http://www.akkadia.org/drepper/nonselsec.pdf (section 6) * http://tk-blog.blogspot.com/2009/02/relro-not-so-well-known-memory.html Change-Id: I52ebddca857845145d5192341d0343183b56843d
|
4f2c24bb8f6aaadc376151ceb39975763a53e3eb |
|
17-May-2012 |
Andrew Hsieh <andrewhsieh@google.com> |
Fixed "ndk-build clean" in Windows Two issues: 1. There is a typo in host-rm (should be host-rmdir) 2. "ndk-build clean" in Windows fails to remove ./libs/*/lib*.so, because $(wildcard .\libs\*\lib*.so) fail to expand. Fixed to do $(subst '/','\',$) AFTER $(wildcard ...) See http://code.google.com/p/android/issues/detail?id=31161 Change-Id: I5c1d2952db96f4bd615a5b8d0e68912d1acfa92d
|
488e22a37f47c49be48a0f2f877298dd5fd0d1c9 |
|
16-May-2012 |
Andrew Hsieh <andrewhsieh@google.com> |
More fix to LOCAL/APP_SHORT_COMMANDS Related bug entries: http://code.google.com/p/android/issues/detail?id=29682 http://code.google.com/p/android/issues/detail?id=29896 Related fix: https://android-review.googlesource.com/#/c/36494 Change-Id: I80975491f0d2dbe1741b324ccd6c788c89c2243f
|
616aae78295c7618af87d0b3f53335c358945460 |
|
10-May-2012 |
David 'Digit' Turner <digit@google.com> |
Fix LOCAL/APP_SHORT_COMMANDS See http://code.google.com/p/android/issues/detail?id=29896 This also speeds up the generation of the list file through a small bisection algorithm. We now support up to 6000 parameters per command-line :-) Change-Id: Ic7f466346acee06fd390756e4384c2765df8c7ac
|
7a06c124be094134d81920a8f9fe363f6f30abd1 |
|
25-Nov-2011 |
David 'Digit' Turner <digit@google.com> |
Build modules with hundreds or thousands of sources. This patch adds the support for LOCAL_SHORT_COMMANDS in Android.mk and APP_SHORT_COMMANDS in Application.mk. Setting these variable to 'true' will force the use of a linker/archiver list file when building your NDK modules. This is mainly useful when you have a very large number of source files and/or libraries on Windows, which has a limited command-line length of 8191 characters. Fixes http://code.google.com/p/android/issues/detail?id=25359 Change-Id: I6f4824e91231e92c0aa83631b89c462ff25ed1cc
|
62e94189bb3a26ea1f31e8e0cf921d9cb9b5c91e |
|
05-Jan-2012 |
David 'Digit' Turner <digit@google.com> |
cygwin: better auto dependency detection. This patch fixes the way we convert GCC-generated dependency files from Windows to Cygwin path conventions. The old script assumed that the cygwin drive prefix was always "/cygdrive" and didn't support drive-less mounts at all. In these cases, the converted dependency files didn't include valid paths, making the dependency detection not work (i.e. updating a header would not force the rebuild of the source files that include it). We fix this by parsing the cygwin mount command and generating a special temporary shell script that can properly make the conversion of dependency files in all cases. Change-Id: Ic557bad63873817cf2c19338eaffc10d8ea4e6e8
|
5f4cab0bea0af60cf3fcb37fbd8bbd64461b575f |
|
25-Nov-2011 |
David 'Digit' Turner <digit@google.com> |
ndk-build.cmd: Support special characters in file and path names. This fixes an issue reported on android-ndk where special characters other than spaces or quotes that can happen in file or path names were not treated properly. So add quoting to solve this. + Fix native windows implementation of host-rm and host-rmdir Change-Id: I55e0aa453aff29aee65fc23f4328016b1b062b92
|
72ab69d4859feabb36868b17cd614cf7a4be6149 |
|
20-Oct-2011 |
David 'Digit' Turner <digit@google.com> |
Fix "ndk-build clean" A typo prevented it to remove directories properly. Change-Id: I6ace3ddb934c940f8bd8293736fef15ccb949688
|
1e631212bdc6f4d5f889cc5357ae631dccb01b8e |
|
19-Oct-2011 |
David 'Digit' Turner <digit@google.com> |
Minor native win32 fixes This fixes a couple of issues in the native win32 build support. Mainly reduce verbosity of host cp/rm commands and deals with cmd.exe program's limitations. We really need our own implementations of "rm" and "mkdir" in the toolbox to avoid this kind of hack, but for now this is good enough. Change-Id: I07b4ad977357de7eeae5217b36c7854765fc0f42
|
ad1afc5e66ab40201947a3178eba975515b0d73c |
|
14-Oct-2011 |
David 'Digit' Turner <digit@google.com> |
Add win32 native build support This patch is adds support to "native" (i.e. Cygwin-less) Windows NDK build through the new 'ndk-build.cmd' Windows shell script. Just call it from the cmd.exe command-line, when in your project path. The script takes the same arguments than 'ndk-build'. + Adds the source of a new tiny Windows-specific command-line "echo" program. The reason for this is that the 'echo' that comes with cmd.exe is too weird and will not work properly when invoked from make (e.g. it can't deal with double-quoted strings properly: it will print the double-quotes in the output). + build/tools/build-host-toolbox.sh: new script to rebuild the 'echo' program on Windows. The idea is that the 'toolbox' may contain other command-line programs like "cp" or "mkdir" in the future, to avoid relying on the not-so-robust cmd.exe versions of these commands (del, md, xcopy), if necessary. + Make build-host-prebuilts.sh call build-host-toolbox.sh when generating Windows binaries, and package-release.sh unpack the corresponding archive when generating the Windows packages. + build-funcs.sh can now be used to build host binaries too. + docs/CHANGES.html: document new native win32 build support. Change-Id: I4d30f6c6532ae84deb95e7e5f595af76b97d9257
|
0059fb2aa9c710cfe7dfd3d67a1cdc7b5e3e284a |
|
10-Oct-2011 |
David 'Digit' Turner <digit@google.com> |
gnustl_shared: New C++ runtime This patch fixes build-gnu-libstdc++.sh to work properly and generate libgnustl_shared.so from the GNU libstdc++ sources. This is done by a custom patch to the gcc toolchain source tree to force the generation of libgnustl_shared.so from the same objects than libstdc++.so. This is required because there is no way to change the internal DT_SONAME of a given shared library, so a simple rename will not work. We also ensure that libgnustl_static.a is properly generated and used by the make-standalone-toolchain.sh script (which uses copy-libstdcxx.sh) + Update definitions.mk to make "gnustl_shared" available in APP_STL + Update documentation to reflect that STLport now supports RTTI + Update documentation to reflect the new gnustl_shared runtime Change-Id: Ie3ffaf825ba2d65eca027ec0be5e320d0ee39cbc
|
1322b9f426ef6aca8b6ce569411cdd3443c1caf4 |
|
30-Sep-2011 |
David 'Digit' Turner <digit@google.com> |
Fix a bug in the computation of installable dependencies This patch fixes a bug in definitions.mk regarding the list of installable dependencies for a given application. It ignored prebuilt shared libraries. + Fix another bug where we were not using the prebuilt GAbi++ libraries when using APP_STL := gabi++_shared/static Change-Id: Iefac2ccc49ee16e8b8e322c64979946d875212d6
|
462c63197acacd294d9835dd5afb6913058ea57a |
|
22-Sep-2011 |
David 'Digit' Turner <digit@google.com> |
Define HOST_OS as 'cygwin' on Cygwin This patch changes the definition of HOST_OS to 'cygwin' when we detect that the build system is invoked from a Cygwin-compatible GNU Make program. The old value of 'windows' will now be used for the case where the build system is invoked from a vanilla Win32 GNU Make binary, e.g. from a standard Windows shell. First step towards getting rid of Cygwin. Change-Id: I4f355a5d254b8d0f544ab6de60c0d7ff85ca23ec
|
c6faf8bffb4884b59265aadcbaa22c8026c41649 |
|
22-Sep-2011 |
David 'Digit' Turner <digit@google.com> |
Support several C++ source file extensions This patch modifies the build system to allow one to list several C++ source file extensions in LOCAL_CPP_EXTENSION. + Check the value of LOCAL_CPP_EXTENSION and warn about values that do not start with a dot (and ignore them). Note that this doesn't change the default (which is to use '.cpp') Change-Id: I0b5dfe8699f90955560cd0dbf9f52336970aaabd
|
c38f5f527a59f1d849371d662f8882d325edc3bf |
|
14-Sep-2011 |
David 'Digit' Turner <digit@google.com> |
GAbi++: new C++ runtime with RTTI support This patch adds a new C++ runtime that can be used by modules by setting APP_STL to either 'gabi++_static' or 'gabi++_shared' in their Application.mk GAbi++ is an alternative to the GNU libsupc++ that provides RTTI support (with exceptions added in the future). The goal is to use it to support RTTI (and later exceptions) with our version of STLport, or even a different non-GNU STL. + new build-gabi++.sh script to rebuild the prebuilt libraries from sources. + support in rebuild-all-prebuilt.sh + support in package-release.sh + Unit test to check that RTTI actually works, both in the static and shared library case. Change-Id: I7e73a31a4d24b5baa36fef357b69064c192ddc56
|
c55bfcf671107b1b678f5a66a3ec74cbeb3927cb |
|
15-Sep-2011 |
David 'Digit' Turner <digit@google.com> |
Add LOCAL_CPP_FEATURES support to Android.mk This is a new variable that can be used to specify that a given module relies on C++ exceptions or RTTI. This is done for several reasons: - First, we want to avoid always linking GNU libsupc++ to every final binary, because we're soon going to provide an alternative. - Second, it is useful to declare prebuilt binaries that have been compiled with these features. It allows the final link to work correctly. Note that the change is backwards-compatible. You can still use -frtti or -fexceptions in your compiler flags to enable the features too. Change-Id: I24b28935e4446c55b169d35990ec2a379ac08500
|
1208fe621223ae853a954fd0e0aaf0b0ed46ecda |
|
15-Sep-2011 |
David 'Digit' Turner <digit@google.com> |
Fix transitive static library imports Ensure that if 'foo' imports static library 'bar' which imports static library 'zoo', then libfoo.so will be linked against both libbar.a and libzoo.a Before this patch, only libbar.a was used, which resulted in a link error. Change-Id: Icabb2d8eaa4c09b12d00b71919b4c3723d4f90e6
|
5edfe75d8ad0f19be9d05908822ed47628ba80ba |
|
14-Sep-2011 |
David 'Digit' Turner <digit@google.com> |
Allow imported shared libraries to be installed by default. This patch ensures that imported shared libraries are now copied to the install location (libs/<abi>) by default. Previously, one had to list them explicitely in APP_MODULES to do that (only top-level project modules were installed). Change-Id: I5a8628d2246d1ce4b4a8a56970fda64541bf3f19
|
8d06600aad07ddf7b6f80c0242269e0e44b3d99a |
|
15-Sep-2011 |
David 'Digit' Turner <digit@google.com> |
Simplify non-Cygwin source compiles. We don't need to rename the auto-generated dependency file when we're not running inside Cygwin, so simplify operations. In other words, before this patch, we would compile a source file on Unix with something like: gcc -c -MF foo.d.org -o foo.o foo.c && mv foo.d.org foo.d Now we will simply do: gcc -c -MF foo.d -o foo.o foo.c Compilation on Cygwin isn't changed. This makes the build commands dumped with V=1 easier to read. Change-Id: Ic6f256ecb779de6c75ff940a1f14680bfd87127b
|
97f5b9de8f353ad15d5edd7cc77974d6fefe2caa |
|
15-Sep-2011 |
David 'Digit' Turner <digit@google.com> |
Add ccache support to speed up rebuilds Define NDK_CCACHE=ccache in your environment and the NDK build system will automatically use the tool to speed-up your rebuilds. See http://ccache.samba.org for more details. Change-Id: I34c8084d4ef6e25326bbe1fd895d6fafd997e997
|
bb16bc7001669b23fa74f678d8ddff71e062967e |
|
14-Sep-2011 |
David 'Digit' Turner <digit@google.com> |
Improve NDK_DEBUG_MODULES output. This improves the output of the module database when you define NDK_DEBUG_MODULES=1 when calling ndk-build. This really means that: - only dump the fields that are not empty - break multiple field value into several lines (it the value only has an item, print it in-line as before). + Fix doc typo Change-Id: Icbdd7fbd0b50bcaab2a18dd3898c732310958992
|
bafbfe8866f1016cc9c651d9e9ead21a0b7eb16e |
|
15-Mar-2011 |
David 'Digit' Turner <digit@android.com> |
Speed-up gdb.setup generation with large list of include directories. The gmsl 'uniq' function is very slow with a very large number of items, so provide an alternative, non-recursive, implementation that works much faster. See http://code.google.com/p/android/issues/detail?id=14961 for context. Change-Id: I49d8bea5deccbe8b84aba08805144cd99a24d3d4
|
7dab8adb7172b44f92315312d54f6bbfa13b59b7 |
|
11-Mar-2011 |
David 'Digit' Turner <digit@android.com> |
Fix a bug that prevents the compilation of .s assembler files. The root of the problem is that the compiler doesn't generate any dependency file for .s files, only .S ones, so our dependency file processor failed. Add a simple test to do nothing if the file doesn't exist. Change-Id: I6b054af4570d5d439dc3885ad8338d5c6ad3b968
|
b81b0563abbeedd1f1c135359b1a8ee1fb8069ed |
|
02-Mar-2011 |
David 'Digit' Turner <digit@android.com> |
Fix minor issues related to module imports - Remove an infinite loop when a module tries to import itself. - Print better diagnostics in case of succesful/failed module import. Change-Id: I7559d8fb8db69af4f67a1943d12b177f935349b8
|
93acba5133ede31bc20a2fb5e48ac68dc8b10ed5 |
|
21-Feb-2011 |
David 'Digit' Turner <digit@android.com> |
Fix object order at link time. This patch ensures that objects are linked in the same order than they appear in the LOCAL_SRC_FILES declaration. Previously, the objects were grouped by source file extension. This fixes http://code.google.com/p/android/issues/detail?id=14176 Change-Id: Id503284380a4690d29c6cc0eacfa6f6bce1910a2
|
1022d8d9fa56b2a82982e3ab56dc2b7576c0fb03 |
|
04-Jan-2011 |
David 'Digit' Turner <digit@google.com> |
Speedup cygwin to host path translation. This change speeds up Cygwin builds by preventing the build system from calling 'cygpath -m' from GNU Make for every source and object file (which turns out to be very slow). This is done by generating at init time a Make function named cygwin-to-host-path that will perform simple substitutions (e.g. "/cygdrive/c/foo" to "c:/foo"). The function itself is built dynamically by probing the Cygwin environment then calling an awk script to generate a Makefile fragment that is run through 'eval' in init.mk. In case of problem, define NDK_USE_CYGPATH=1 in your environment to use 'cygpath -m' as before. + If 'cygpath' is not in your path, simply ignore it. android-ndk users report that this is enough to use the NDK under MSys succesfully. Change-Id: I291190d3f30a1e17ee27dd65b63f65701fba6b33
|
28246be1383b51ebb84596f465e2e25fbac46f5d |
|
13-Dec-2010 |
David 'Digit' Turner <digit@google.com> |
Fix Windows rebuild bug after compilation error. This fixes a bug where an inconsistent dependency file was generated when a source file failed to compiler properly on Windows. After fixing the source, trying to rebuild by launching "ndk-build" would fail because the build system was including the broken dependency file automatically. Change-Id: I4d47e0647ad53f43759a0788fa76088767163ab0
|
81dd1b4207dac8328a0ef33b676fcc773f4ca9a1 |
|
02-Dec-2010 |
David 'Digit' Turner <digit@google.com> |
Add new GNU libstdc++ device test. This patch adds tests/test-gnustl-1 which performs a basic runtime test of C++ exceptions support with the GNU STL. + Rename tests/test-gnustl to tests/test-gnustl-full (the test is still broken right now) + Add missing "gnustl_static" registration to definitions.mk (doh) + Add missing headers to tests. APP_STL=gnustl_static didn't work Change-Id: Id1352c342eec9d06f460e57acb2a1e52fc635fdb
|
2ca50e007226d9d571c94aec476ef5fdf8c4d3fd |
|
02-Dec-2010 |
David 'Digit' Turner <digit@google.com> |
Move stlport under sources/cxx-stl/ Move the STLport directory from sources/android/stlport/ to sources/cxx-stl/stlport/ since we don't document it as an import module anymore (use APP_STL in your Application.mk to use it instead). + Update the documentation under docs/CPLUSPLUS-SUPPORT.html and sources/cxx-stl/stlport/README + Remove obsolete docs/STL-SUPPORT.html (replaced by CPLUSPLUS-SUPPORT.html) Change-Id: Ie49e2fbeaceb02b0b765336d4a641e8149446711
|
26f23925041dfcbfde15e5c98d9e7c80fd2a7408 |
|
23-Nov-2010 |
David 'Digit' Turner <digit@google.com> |
Add APP_STL to select the C++ STL automatically. This patch allows developers to define APP_STL in their Application.mk in order to select the C++ STL they want to use automatically. Valid values are "system", "stlport_static" and "stlport_shared". See the new document docs/STL-SUPPORT.html for more details. Note that the patch also contains changes that will make room for other C++ STL implementations (GNU libstdc++ and maybe uSTL) Change-Id: Ica3fbad90d31deb9699e6cfb4a1cff3cd2e6c890
|
25fc114e97e8e31af9c8a47f80ca4fbd134bf912 |
|
19-Nov-2010 |
David 'Digit' Turner <digit@google.com> |
Add support for prebuilt STLport binaries. This patch allows the NDK to be redistributed with prebuilt STLport binaries, since rebuilding the library from sources is quite slow, and its implementation should not change. Note that the binaries are not added to the NDK git repository. Instead: - build/tools/build-stlport.sh is a new script that can be used to rebuild the binaries and package/copy them appropriately. It requires a valid NDK installation (i.e. with working toolchain binaries) - rebuild-all-prebuilt.sh and package-release.sh are also modified to rebuild STLport and unpack the prebuilt tarballs when necessary. - tests/build/prebuild-stlport is a fake project that is used by build/tools/build-stlport.sh to force the rebuild of the libraries with the NDK (the script later copies/packages the libs to the appropriate location). - sources/android/stlport/Android.mk is modified to auto-detect whether the binaries are installed under the libs/<abi>/ subdir. If not, the library will be rebuilt from sources. Rebuilding from sources can be forced by setting STLPORT_FORCE_REBUILD to 'true' in your environment. That can be useful for debugging purpose. + improve 'pretty-dir' function to recognize the NDK path as a prefix and replace it in the output by '<NDK>' + improve formatting of NDK build messages for prebuilt binaries. Now it looks like: Prebuilt : <libname> <= <source-directory>/ Change-Id: I5158b9d7f13e0f6252d89f82b6fd2960e4a2ab1f
|
fc53a9dd8c214b498c00b3028c86de7085c2cab6 |
|
19-Nov-2010 |
David 'Digit' Turner <digit@google.com> |
Do not use -Wl,--whole-archive is not needed. This is a mostly cosmetic fix: when linking the final shared library or executable, dont' use in the final command "-Wl,--whole-archive -Wl,--no-whole-archive" if there are no whole static libraries to link to. Change-Id: Ief95a1c0bb083889d714e77f1e3ab6a22e6e42c3
|
b1a60f32cc6b482c1209e1d53e773add926dc520 |
|
15-Nov-2010 |
David 'Digit' Turner <digit@google.com> |
Add support for LOCAL_WHOLE_STATIC_LIBRARIES. These libraries are linked to the final binary with the help of -Wl,--whole-archive .. -Wl,--no-whole-archive. The main difference is the following: Consider the following link command: gcc -o libfoo.o libfoo.a libbar.a libzoo.a The default Unix linker behaviour is the following: - undefined symbols in libfoo.a will be searched in libbar.a and libzoo.a (in this specific order) - undefined symbols in libbar.a will only be searched in libzoo.a - undefined symbols in libzoo.a will create an error. Now consider: gcc -o libfoo.so -Wl,--whole-archive libfoo.a -Wl,--no-whole-archive libbar.a libzoo.a Then: - undefined symbols in libfoo.a are still search in the same way - undefined symbols in libbar.a are searched in libfoo.a then in libzoo.a - undefined symbols in libzoo.a are searched in libfoo.a LOCAL_WHOLE_STATIC_LIBRARIES is a way to group static libraries in the "whole" category when linking final binaries. This is normally only used when there are weird circular dependencies in your libraries. Technically, it's not required, one could instead do: gcc -o libfoo.o libfoo.a libbar.a libzoo.a libfoo.a But this does not translate well with the NDK build system's definition of LOCAL_STATIC_LIBRARIES, and forces the use of LOCAL_LDLIBS := libfoo.a which is less elegant. Change-Id: I4b90cad004280a78d596388911482d90bd0755f3
|
499fa5d674e2e85437c69e1ee32a8b8aec3965ad |
|
15-Nov-2010 |
David 'Digit' Turner <digit@google.com> |
Prevent errors when a module is imported several times. It's ok to import a module several times, and it is likely to happen if import two modules which each import the same, third one. Instead of aborting with an error, simply skip the second import since the corresponding definitions have already been parsed by the build script. Change-Id: Ie982a28083a2a91a9cba76d1857e7567bc51a0a9
|
d49e5db44f5a514683ef600db88f8be0b40c3bfd |
|
25-Oct-2010 |
David 'Digit' Turner <digit@google.com> |
Fix automatic dependency computation of imported modules. Before this change, the build system would build any shared library module that is listed in an imported Android.mk, even if the project does not need it. With this change, only the imported modules that are actually needed by the project will be built. + update docs/IMPORT_MODULE.TXT Change-Id: Iea2ee30dd73be5f9f55ebb1e5658b5368ecbbe31
|
1579cd933a0e3a1bdd494a312fb5b9e75a03be87 |
|
07-Oct-2010 |
David 'Digit' Turner <digit@google.com> |
Fix cygwin build on Windows. This introduces changes to the build system to deal with the fact that our Windows toolchain binaries are not Cygwin programs anymore. As a consequence, they don't understand paths like /cygdrive/c/stuff. Essentially, this forces path conversions whenever we're sending a path to the toolchain binaries, through the new 'host-path' and 'host-c-includes' helper functions. Also, it reformats the auto-generated dependency files in order for them to be properly parsed by Cygwin's GNU Make (see build/awk/convert-deps-to-cygwin.awk for examples). As a bonus, this change also simplifies the setup of each toolchain by grouping common definitions under build/tools/default-build-commands.mk Change-Id: I5af99b63cb53b3fcb5e1008dfb764e1e934623e5
|
7a6b17ae18e87e522a4449eff37800421a8bb6ab |
|
22-Sep-2010 |
David 'Digit' Turner <digit@google.com> |
Add prebuilt static library support. This is done with the new PREBUILT_STATIC_LIBRARY include script. + Simplify prebuilts dependencies by removing LOCAL_PREBUILTS. You can now simply list your prebuilts into LOCAL_STATIC_LIBRARIES and/or LOCAL_SHARED_LIBRARIES. + pretty-print paths during install build commands. Change-Id: I4aca605fc6f818d9669343c6aefc419a78ee0df2
|
fd204377de03a20556b38acf0dc2bdb195729343 |
|
14-Sep-2010 |
David 'Digit' Turner <digit@google.com> |
Add easy native debugging support through NDK_DEBUG=1 "ndk-build NDK_DEBUG=1" will force the build of a debuggable application. This really copies gdbserver to the proper location, as if android:debuggable was set to "true" in the app's manifest. The value of NDK_DEBUG can be 0, 1, true or false, and will override the content of the manifest. The main benefit from this change is that you don't have to edit your manifest file just to rebuilt Change-Id: I3fafb620189ac53a72b492c963832dd0c7f8b7d7
|
7daefc38f01900f8a903d9955f7f8d6262d88f32 |
|
17-Jul-2010 |
David 'Digit' Turner <digit@google.com> |
Add support for asm-level filtering through LOCAL_FILTER_ASM Change-Id: I937e9f8e53debf8a4eb3b64151ed8738d75158ac
|
d9851e70410ee5b14f5e9b772dd015e44a558c89 |
|
17-Jul-2010 |
David 'Digit' Turner <digit@google.com> |
Simplify module database definitions. Introduce the LOCAL_MODULE_CLASS field, and use it. Change-Id: I7103a78f801fa4fdd2080088a4ae81249ce011cf
|
4780f59d27aebbc44d493c2f1642bd8a703c95d6 |
|
15-Jul-2010 |
David 'Digit' Turner <digit@google.com> |
Put system headers at the end of the inclusion path. Change-Id: I1c3eff1efd2d6c375bcaa1e076f9b85b14c5c6b3
|
6a8948dccbcde263f30c9d83ba09de47a2e19395 |
|
10-Jul-2010 |
David 'Digit' Turner <digit@google.com> |
Add support for module imports. See docs/IMPORT-MODULE.TXT for details. You can now define NDK_MODULE_PATH in your environment to list directories that will be searched when the new function 'import-module' is called. The goal is to avoid hard-coding third-party module paths into your project tree. Change-Id: I6f260299876d29e0492109b86824acab318e104e
|
bb9dc1a386532db74f47dd0af1930b27e8402926 |
|
09-Jul-2010 |
David 'Digit' Turner <digit@google.com> |
Add support for LOCAL_MODULE_FILENAME, that allows renaming generated files. Change-Id: I228732001af7786f31439a8462310e8ffe67dc19
|
4013467963a9051585d23d6a0b157685605d2aa6 |
|
09-Jul-2010 |
David 'Digit' Turner <digit@google.com> |
Add support for prebuilt shared libraries. Change-Id: I56de52c9206741c8300fb84e92602f75765f44a4
|
5b690c13f5d908a403e2d09cfa7ac50c8767a897 |
|
07-Jul-2010 |
David 'Digit' Turner <digit@google.com> |
C++ system headers refresh. The headers are moved out of the platforms directory, and into $NDK/sources/cxx-stl/system. This will drastically ease using other STL implementations like STLport or GNU Libstdc++ in the future. libstdc++ is not a mandatory dynamic dependency for C-based modules, instead, it is now added automatically to modules that contain at least one C++ source. Change-Id: I84a859fdd460f3e9849e07c667c101a67aa84263 Note: nothing here is specific to a given Android API level.
|
e7943289cc2df73a99668615639c97ffe6240fce |
|
17-Jun-2010 |
David 'Digit' Turner <digit@google.com> |
Fix BUILD_EXECUTABLE. For some reason, module-is-executable didn't work properly. Change-Id: I657106ca09b4669bd02e9128af869602d83a865c
|
a5501b02c2f2a9e1bf9fce42a3faf601adc070e9 |
|
03-Jun-2010 |
David 'Digit' Turner <digit@google.com> |
Implement module exports + update docs + add a sample. Change-Id: Ib892ca7d46b69599ce4569d5929f0149bdea8e3f
|
8700ca93c26e2908670a9982c68f4b8a2bf7dce4 |
|
10-Jun-2010 |
David 'Digit' Turner <digit@google.com> |
Implement two-pass script parsing. In preparation of future work. The NDK build script will now parse all Android.mk and record LOCAL_XXX variables in the modules database. After all parsing is done, it will populate the dependency graph with targets and commands. This will allow us to implement "exported" module variables like LOCAL_EXPORT_CFLAGS and others in a reliable way. Change-Id: If1eb4ce68b62b5dfa146520a77cbcad401272428
|
a775f5537568f4768cd61931bb1b5314694adc96 |
|
10-Jun-2010 |
David 'Digit' Turner <digit@google.com> |
Allow platforms and samples to be located under development/ndk/{platforms,samples} Change-Id: Idb631a91de71c60dc6edc7d1989925fff9adc1aa
|
dfc478bcac20693422ee56a423377403bba46932 |
|
09-Jun-2010 |
David 'Digit' Turner <digit@google.com> |
ndk-build: On Windows, check that a Cygwin-compatible GNU Make is being used. It looks like that many NDK developers on Windows have some sort of other GNU Make program installed in their path (e.g. because they installed another IDE or Developer Environment), and that conflicts badly with our build scripts. Also fix a tiny bug where the debuggable flag was lost when building the modules. Change-Id: I2d26131b08cf19959122abdefec9a22955d2a89c
|
a08d605794902f5c7ed79b3d894adb722e1b6cac |
|
16-Apr-2010 |
David 'Digit' Turner <digit@google.com> |
Add ndk-gdb script to the NDK. This is a helper script used to launch a native debugging session. To use it, follow these steps: 1. Make your application debuggable 2. Build the machine code with 'ndk-build' (make APP=<name> is not supported) 3. Build the package with ant or the ADT Eclipse plugin 4. Install it on your device/emulator 5. Launch it 6. Run 'ndk-gdb' from your application project directory. Change-Id: Ie3b0557e70cefa0080075a34ad0ca46bebef3c42 NOTE: To work properly, a modified gdbserver binary must be used (one that binds to Unix sockets instead of TCP ones). Patch upcoming.
|
6724aaa2876f40ad270823bc933edf7552f67436 |
|
15-Apr-2010 |
David 'Digit' Turner <digit@google.com> |
Simplify build system with the 'ndk-build' script. There is no need to modify $NDK/apps anymore to build an application. Now all you need to do is launch $NDK/ndk-build from the project path, or any of its sub-directory, and the build scripts will handle everything automatically. You can also place an optional Application.mk under $PROJECT/jni, but by default the NDK will build all modules listed in your Android.mk for the 'armeabi' ABI. + Update the documentation Change-Id: I235c4051d7f00f37d50e6b4bb0e796c0bdaa001d
|
419390feceb0c39fd3cad8ec6e5253fb74c946a5 |
|
09-Apr-2010 |
David 'Digit' Turner <digit@google.com> |
Make APP_MODULES optional in Application.mk. If APP_MODULES is defined, now computes the transitive closure of module dependencies automatically. + cleanup some of the build scripts + add module database management functions for future work Change-Id: I4ae14d8a3cbd2240e1efec27c55f8314b618c4d9
|
a1d764b5d215601e007e01186de0be0db51df900 |
|
09-Apr-2010 |
The Android Open Source Project <initial-contribution@android.com> |
NDK snapshot from development/ndk/ Change-Id: I154f2fd3828ffd937c82410f5f9995402d7be15e
|
35f944d26f33fff3e59ab449c991b18260a5fa0b |
|
08-Apr-2010 |
David 'Digit' Turner <digit@google.com> |
Perform auto-detection of host platform in build scripts. This removes build/host-setup.sh and the generated file out/host/config.mk Also: fix a bug that copied gdbserver into release projects, not debug ones. Change-Id: Ie3641dadb6148b1a671534d9bbb5e587cd742845
|
62560ce2c27099e75ae964946663c252c5264218 |
|
02-Apr-2010 |
David 'Digit' Turner <digit@google.com> |
Remove obsolete script from NDK build process. After this change, we no longer require running a shell script during the build process. This makes us less dependent on Cygwin and is a small step towards integrating the NDK into the SDK properly. Change-Id: I62d7e200b47c8138abb39aaf9eb0f52d3f124bdf
|
5bc892834ff140ef11625fdf7602d09e229f73dc |
|
09-Feb-2010 |
David 'Digit' Turner <digit@google.com> |
Add NEON support to the NDK build system + docs You can now define LOCAL_ARM_NEON to 'true' in your Android.mk to indicate that a whole module must be compiled with NEON support. Alternatively, use the .neon suffix when listing source files in LOCAL_SRC_FILES to indicate that they should be built with NEON support. E.g.: LOCAL_SRC_FILES := foo.c.neon bar.c zoo.c.arm.neon Note that .arm.neon is supported, but .neon.arm is NOT. Also added documentation in docs/CPU-ARM-NEON.TXT Another patch will provide one or more sample applications to demonstrate all of this.
|
654c27f00dbcbbb06c57c5d10a4bbb76695f21b4 |
|
13-Jan-2010 |
The Android Open Source Project <initial-contribution@android.com> |
android-2.1_r1 snapshot
|
cc049d5a779a6d64ba1dcd29a1ff031ad4891d47 |
|
19-Nov-2009 |
David 'Digit' Turner <digit@google.com> |
Add support for armeabi-v7a to the NDK. This patch modifies the NDK build scripts to support the 'armeabi-v7a' ABI. (For the record, it corresponds to Thumb-2 + FPU support, to speed up native code on certain devices like the Droid). To build for this ABI, the Application.mk file should use a line like: APP_ABI := armeabi-v7a It is also possible to build for both 'armeabi' and 'armeabi-v7a' by using: APP_ABI := armeabi armeabi-v7a This will result in the generation of two distinct shared libraries that both will be copied to the final application package. This is dependent on having GCC 4.4.0 prebuilt binaries under build/prebuilt/<host>/arm-eabi-4.4.0, since gcc 4.2.1 does not support this new ABI. Note that this also changes the NDK to use gcc 4.4.0 by default, unless the user defines NDK_TOOLCHAIN to 'arm-eabi-4.2.1' in its environment to switch back to the previous one.
|
25f47bc03dbe536d2fb4a231316a38a2d0a8ee59 |
|
29-Jul-2009 |
David 'Digit' Turner <digit@google.com> |
Look for Android.mk in $(APP_PROJECT_PATH)/jni by default. This gets rid of the 'sources' directory and allows all sources of a given Android application to be in the same directory tree without using a symlink trick. Note that apps/<name>/Application.mk is still required though. A later release of the NDK will get rid of it too, but the change is too drastic for the upcoming release. The change moves various source files from sources into their app/<name>/project/jni directory as well. The whole documentation is updated to reflect the change.
|
5815d77ccd68a5f6f8f7d6f4fa5dfbd05828d33f |
|
29-Jul-2009 |
David 'Digit' Turner <digit@google.com> |
Add android-4 sysroot and use project's default.properties to get the right target. Note that for now, android-4 contains the same things than android-3. Another patch will add OpenGL ES headers and libraries to it.
|
61697d20c6e38ce007db1243aebf0a89836c440e |
|
27-Jul-2009 |
David 'Digit' Turner <digit@google.com> |
Fix LOCAL_CFLAGS/CPPFLAGS handling to match full Android build system. Also improve BUILD_SYSTEM directory detection logic in build/core/main.mk
|
2ab9c51a581188f1986d9ab578c513665a84460a |
|
24-Jul-2009 |
David 'Digit' Turner <digit@google.com> |
Handle LOCAL_CPPFLAGS/CFLAGS/CXXFLAGS as claimed by the documentation. The previous code did only use LOCAL_CFLAGS for both C and C++ sources.
|
4bfbac10e5411efca892417e6b6b30842c215dc0 |
|
20-Jul-2009 |
David 'Digit' Turner <digit@google.com> |
Fix compilation of assembly files (e.g. foo.S), by removing a typo.
|
f4532bc743fbfd4c5c60ebdd0f435006a100fc19 |
|
29-Jun-2009 |
David 'Digit' Turner <digit@google.com> |
Add support for LOCAL_C_INCLUDES in Android.mk, to better match the Android build system.
|
f5107032a58fc88cea9a2bb1211b1f7d9e9eeccb |
|
29-Jun-2009 |
David 'Digit' Turner <digit@google.com> |
Fix several typos in the NDK build system that caused quite a few bugs: - generate thumb code by default (type forced ARM generation) - make the generation of unoptimized binaries with APP_OPTIM := debug actually work (the -O0 -g flags were placed before the -Os -mthumb flags for thumb binaries) - factor common code from build-executable/shared-library/static-library into build-binary.mk and install-binary.mk - properly add a -L$(SYSROOT)/usr/lib line to make LOCAL_LDLIBS := -lz work as advertized (in build-binary.mk) - add a few missing variables from clear-vars.mk
|
ce42f422169554ab5f646b9b3491ad9d632605e1 |
|
20-May-2009 |
David 'Digit' Turner <digit@google.com> |
This fixes the build to always define the ANDROID macro, and remove an empty -I from the compiler options. The latter had the effect of removing the benefit of optimization settings, i.e. a typical compiler command would look like: <toolchain-compiler> .... -Isources/<module-path> -I -O2 -g The "-I -O2" was interpreted literally as "search in '-O2' directory, and the optimization was never set to 2 (or 0 in case of debug mode).
|
31d9dac441e28836a4fe6b2c052da6e35780c25d |
|
19-May-2009 |
David 'Digit' Turner <digit@google.com> |
Fix typo which prevented APP_CFLAGS, APP_CXXFLAGS and others to work properly in the NDK build system.
|
48ef1859ef0bb25547e5aceeedb9b175c6193bc5 |
|
07-May-2009 |
David 'Digit' Turner <digit@google.com> |
Initial import of new NDK into donut tree
|