Commit Graph

22 Commits

Author SHA1 Message Date
David 'Digit' Turner
cb96cddc77 Cleanup installed binaries before the NDK build begins.
Ensures that no stale/obsolete shared libraries are left in the
application's project path before the build.

Also fix a minor typo that made the ABI selection process not
work properly in certain cases.
2009-11-23 16:12:12 -08:00
David 'Digit' Turner
f5862d8da6 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.
2009-11-20 14:07:15 -08:00
David 'Digit' Turner
b48ab64028 Allow applications to target future API levels
E.g. if an application's default.properties targets android-10
then the build system will default it to the highest supported
API level found in build/platforms (e.g. android-4 currently).
2009-10-21 10:19:07 -07:00
David 'Digit' Turner
cc230ba07c Ensure the version of 'awk' detected by host-setup.sh is used during the build 2009-10-01 21:27:19 -07:00
David 'Digit' Turner
eee1675aa4 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.
2009-07-29 19:04:44 +02:00
David 'Digit' Turner
5c767bb977 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.
2009-07-29 02:26:31 +02:00
David 'Digit' Turner
747294cc4a Fix LOCAL_CFLAGS/CPPFLAGS handling to match full Android build system.
Also improve BUILD_SYSTEM directory detection logic in build/core/main.mk
2009-07-27 12:24:58 +02:00
David 'Digit' Turner
fdc5ea243d Rename ndk/build/platforms/android-1.5 into android-3 to match API levels 2009-07-24 17:56:51 +02:00
David 'Digit' Turner
1715a1f877 Handle LOCAL_CPPFLAGS/CFLAGS/CXXFLAGS as claimed by the documentation.
The previous code did only use LOCAL_CFLAGS for both C and C++ sources.
2009-07-24 17:42:21 +02:00
David 'Digit' Turner
7ec528c5b0 Ensure LOCAL_LDLIBS is cleared by the $(CLEAR_VARS) script 2009-07-22 13:34:54 +02:00
David 'Digit' Turner
7f0688dd93 Fix compilation of assembly files (e.g. foo.S), by removing a typo. 2009-07-20 15:38:48 +02:00
David 'Digit' Turner
6c01aba293 Add support for LOCAL_C_INCLUDES in Android.mk, to better match the Android build system. 2009-06-29 16:48:56 +02:00
David 'Digit' Turner
67d8edd65f Add support for LOCAL_ARM_MODE and .arm source file name suffix.
Also update docs/INSTALL.TXT to explain that MSys is not supported under Windows.
2009-06-29 16:44:31 +02:00
David 'Digit' Turner
a046aadf89 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
2009-06-29 16:33:30 +02:00
David 'Digit' Turner
fadee81099 Fix build/host-setup.sh in various ways
- run as bash script (since Debian's new 'dash' shell doesn't support it)
- remove obsolete host GCC requirement
- improve Windows support by using better heuristics for the executable suffix
- better NDK root directory auto-detection (avoids the need to define ANDROID_NDK_ROOT on some installs)
2009-06-29 12:28:04 +02:00
David 'Digit' Turner
93a4147f12 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).
2009-05-20 18:37:31 +02:00
Android (Google) Code Review
e0b505d438 Merge change 1958 into donut
* changes:
  Force --no-undefined at link time to generate an error when trying to generate a shared library that references undefined symbols. This can be overriden by defining LOCAL_ALLOW_UNDEFINED_SYMBOLS in your Android.mk to 'true'
2009-05-19 12:00:42 -07:00
David 'Digit' Turner
3caffcfaf8 Force --no-undefined at link time to generate an error when trying to generate a shared library that references undefined symbols.
This can be overriden by defining LOCAL_ALLOW_UNDEFINED_SYMBOLS in your Android.mk to 'true'
2009-05-19 14:58:45 +02:00
David 'Digit' Turner
0b96565afe Fix typo which prevented APP_CFLAGS, APP_CXXFLAGS and others to work properly in the NDK build system. 2009-05-19 13:04:07 +02:00
David 'Digit' Turner
c39a26b6f5 Fix bad automatic dependency computations 2009-05-15 00:14:00 +02:00
David 'Digit' Turner
0d2d3b95ec Fix bad dependency between generated shared libraries and the corresponding installed module.
Also fixes the "make clean" target by the way.
2009-05-14 17:23:35 +02:00
David 'Digit' Turner
b9a8479e48 Initial import of new NDK into donut tree 2009-05-07 20:39:04 +02:00