Commit Graph

70 Commits

Author SHA1 Message Date
David 'Digit' Turner
a78a775332 Remove bash-specific operator from build/host-setup.sh. 2009-10-01 16:38:44 -07:00
David 'Digit' Turner
1dbeeca5c4 Fix NDK usage of libgcc.a when building shared libraries
The main idea is that libgcc.a should appear after object files and
static libraries but before depending shared libraries. This willl
force the linker to copy the libgcc.a functions required by the
generated library into the target binary, instead of relying on
what's available in libc.so and others.

This ensures maximum portability, and prevent problems in the future
when we change the toolchain, which translates to different libgcc.a
functions embedded in libc.so and other exposed native libraries.

However, this will make also generated shared libraries bigger, because
the compiler insists on generating code that depends on a bunch of C++
support functions (even when building from C sources). An increase of
about 8KB per shared library is expected.
2009-09-28 10:41:32 -07:00
David 'Digit' Turner
902706ad0d Bump release version to android-1.6_r1 2009-08-14 20:51:58 +02: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
197a8fea8e Add sample "san-angeles" program to demo OpenGL ES from native code.
Note that the app will only build against an android-4 SDK.
(Interestingly, the resulting binary runs very well under android-3).

This also adds missing license headers to the 'two-libs' sample.
2009-07-29 19:02:21 +02:00
David 'Digit' Turner
d7e5aaecd8 Add OpenGL ES headers to the android-4 platform/stable APIs. 2009-07-29 02:26:47 +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
73aaee4171 Add host check for nawk/gawk in build/host-setup.sh
Store the result as HOST_AWK in out/host/config.mk
2009-07-27 15:47:09 +02:00
David 'Digit' Turner
4ddb7840c2 Add a "unit-tests" sample application to perform unit testing. 2009-07-27 12:26:17 +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
4f6f74019f Remove problematic case-insensitive duplicate files.
Add missing copyright/license disclaimer to build/tools/make-release.sh
Add a new tool: build/tools/find-case-duplicates.sh
2009-06-30 10:51:41 +02:00
David 'Digit' Turner
b968aa1c79 Bump release version number and speed up make-release.sh script 2009-06-29 18:00:56 +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
d6ec1729a1 Fix build/host-setup.sh to run as a Bourne shell script and add better host detection:
- add --help, --verbose options
- check for GNU Make availability and version by default, override with --no-make-check
- better traces
2009-06-29 16:13:25 +02:00
David 'Digit' Turner
629daab664 Remove individual .gitignore files and move their content to a single top-level one 2009-06-29 15:54:44 +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
Android (Google) Code Review
66620a8d42 Merge change 2831 into donut
* changes:
  Fix ChangeLog, since we're rebuilding 1.5_r1, no need to list previous changes.
2009-06-01 14:04:13 -07:00
David 'Digit' Turner
3e035afa63 Add docs/SYSTEM-ISSUES.TXT to list important system issues that NDK developers should be aware of 2009-06-01 22:27:18 +02:00
David 'Digit' Turner
58bbcd6d17 Fix ChangeLog, since we're rebuilding 1.5_r1, no need to list previous changes. 2009-06-01 22:25:30 +02:00
David 'Digit' Turner
82ae6d6700 Add docs/HOWTO.TXT to list a few important tips for NDK users
Also remove reference to docs/ROADMAP.TXT from README.TXT (doh)
2009-06-01 21:38:27 +02:00
Android (Google) Code Review
e19766ea0a Merge change 2813 into donut
* changes:
  Remove the jni-tips.html document. It contains too many swear words :-)
2009-06-01 12:18:21 -07:00
David 'Digit' Turner
a9e8d43e53 Add docs/STABLE-APIS.TXT which contains the list of exposed frozen APIs in the NDK.
Also update README.TXT and docs/ANDROID-MK.TXT accordingly, to document the use of
LOCAL_LDLIBS.
2009-06-01 20:38:19 +02:00
David 'Digit' Turner
c6f15d35f3 Remove the jni-tips.html document. It contains too many swear words :-) 2009-06-01 19:10:40 +02:00
David 'Digit' Turner
d21c809912 Expose <android/log.h> which contains the declaration of /system/lib/liblog.so.
This allows native application code to send logs to the kernel. Alas !

NOTE: This *is* valid for Cupcake
2009-05-29 21:54:19 +02:00
David 'Digit' Turner
5ad95c577a Force the use of 32-bit toolchain binaries on 64-bit systems.
This is used to reduce the number of distributable prebuilt packages
(i.e. linux-x86_64 is not needed anymore).

Also fix build/tools/build-toolchain.sh to properly copy the GPL and LGPL
license files into the generated prebuilt packages.

Also add a .gitignore files to get less spew from 'git status'
2009-05-27 16:04:25 +02:00
Android (Google) Code Review
3a39e9c90b Merge change 2078 into donut
* changes:
  Add simple change log to the NDK documentation.
2009-05-25 02:56:37 -07: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
David 'Digit' Turner
979c98c96c Add simple change log to the NDK documentation. 2009-05-20 16:12:05 +02:00
Android (Google) Code Review
9b3f3f27fe Merge change 1954 into donut
* changes:
  Add a bunch of documentation for the Android C library and the JNI interface to the NDK
2009-05-20 02:45:40 -07:00
Android (Google) Code Review
1e4498ad17 Merge change 1951 into donut
* changes:
  Expose the Zlib headers (<zlib.h> and <zconf.h>) in the android-1.5 NDK sysroot.
2009-05-20 02:45:00 -07: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
d8c9a43284 Add a bunch of documentation for the Android C library and the JNI interface to the NDK 2009-05-19 13:09:20 +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
985338c05c Expose the Zlib headers (<zlib.h> and <zconf.h>) in the android-1.5 NDK sysroot.
This is OK because the Zlib ABI is fixed and stable.

Also get rid of the sample zlib sources since we don't need the static library anymore.
2009-05-19 12:10:09 +02:00
David 'Digit' Turner
c39a26b6f5 Fix bad automatic dependency computations 2009-05-15 00:14:00 +02:00
Android (Google) Code Review
cb2d6ae202 Merge change 1653 into donut
* changes:
  Fix bad dependency between generated shared libraries and the corresponding installed module. Also fixes the "make clean" target by the way.
2009-05-14 14:55:55 -07: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
498455c79f Fix the build-toolchain.sh script which doesn't work due to the new download location of the NDK sources
and a small typo when using wget. Also make --force-download actually work.
2009-05-14 16:43:03 +02:00
Xavier Ducrohet
60b2fc90b7 Update the NDK packaging script to generate zip archives for all platforms. 2009-05-11 13:58:02 -07:00
Android (Google) Code Review
ebcb72611b Merge change 1361 into donut
* changes:
  Remove hard-coded path to my home directory in build/tools/make-release.sh. Now you need to use the --prebuilt-path=<path> option to specify where to pick up the prebuilt toolchain tarballs instead, for example:
2009-05-11 11:54:41 -07:00
Android (Google) Code Review
3be3c99657 Merge change 1360 into donut
* changes:
  remove documentation for unsupported variable (LOCAL_STATIC_WHOLE_LIBRARIES)
2009-05-11 11:33:21 -07:00
Android (Google) Code Review
37fa8d40fc Merge change 1359 into donut
* changes:
  Remove references to 'cupcake' in all of NDK (replace with 'android-1.5')
2009-05-11 11:32:53 -07:00
David 'Digit' Turner
b25cd5fb97 remove documentation for unsupported variable (LOCAL_STATIC_WHOLE_LIBRARIES) 2009-05-11 17:23:10 +02:00