On 01/12/2012 05:34 AM, Jon Medhurst (Tixy) wrote:
On Thu, 2012-01-12 at 13:20 +0200, Paul Sokolovsky wrote:
I had a look at the latest http://wiki.linaro.org/Platform/Android/BuildSource and see that it doesn't mention the need to run ". build/envsetup.sh" explicitly. I don't know if that's omitted deliberately or just forgotten.
The wiki mentions that you don't need to run it. Under "Divergence from Google's standard build instructions"
I don't if it works without it or no (I would doubt it does, but maybe there were changes to makefiles and stuff).
I've never done envsetup.sh, I just repo init, repo sync, and then...
PATH=$PWD/android-toolchain-eabi/bin/:$PATH make -j8 \ TARGET_PRODUCT=vexpress_a9 \ TARGET_TOOLS_PREFIX=$PWD/android-toolchain-eabi/bin/arm-linux-androideabi- \ boottarball systemtarball userdatatarball
This is interesting. The instructions in that page used to say you needed to pull in envsetup.sh. I guess you don't *have* to do it. However, it does have some nice benefits. The envsetup.sh adds some handy shortcuts. Specifically:
- croot: Changes directory to the top of the tree. - m: Makes from the top of the tree. - mm: Builds all of the modules in the current directory. - mmm: Builds all of the modules in the supplied directories. - cgrep: Greps on all local C/C++ files. - jgrep: Greps on all local Java files. - resgrep: Greps on all local res/*.xml files. - godir: Go to the directory containing a file.
I've found I still TARGET_PRODUCT and TARGET_TOOLS_PREFIX set when I run them, but they are still handy. I use mmm all the time when I'm trying to deal with a build issue for some component.
Not to get off subject, but there are two more really handy android build tricks. Say you are building a binary, skia_bench. There are two really useful commands:
make TARGET_PRODUCT=XXX TARGET_TOOLS_PREFIX=XXX skia_bench make TARGET_PRODUCT=XXX TARGET_TOOLS_PREFIX=XXX clean-skia_bench