Thanks, this was very much appreciated! It is great that the software can be built without installing Eclipse.
When I was building the system, I got some ideas for improvement:
1. Define the revision in a single repository. Either merge all 3 repositories to one, or define something like svn:externals for the 2 other repositories in the "main" repository.
2. Use a conventional build system for the native code, instead of a Bourne shell script. I would recomment CMake if Ant does not easily support compiling C or C++. (I have limited experience with modern Java, and I develop C/C++ for living.)
3. Allow compiling multiple modules in parallel. With CMake for the native code, you could use make -j$(nprocs). I guess that compiling the Java code without Ant is out of the question.
4. Implement a common configuration interface. Coming outside the Java world, I would suggest cmake -DWITH_FOO:BOOL=ON. Currently there seem to be 2 interfaces: some variables in the *.sh script for the native code, and the versionFeatures for the Java code.
5. Allow more things to be disabled at compilation time: parking plugin, OSM editing, bitmap maps, advertisement for other applications, anything that needs Internet access, and so on.
The last point is most important to me. I am thinking of writing a patch "OsmAnd-" that would disable everything that I do not need. I basically only need offline navigation on offline vector maps, and I can update the map files myself. This should reduce the memory footprint, making OsmAnd run better on an older device. My 3-year-old SonyEricsson Xperia Active still seems to be the best hardware for bicycling, because it is waterproof and can be easily mounted on the handlebar.
Marko