Hello,
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. I don't if it works without it or no (I would doubt it does, but maybe there were changes to makefiles and stuff).
What I know is that on the Android Build, we do source build/envsetup.sh, so not having it on that page is a problem which can lead to build discrepancies between local and Jenkins (and as we know, that happens from time). So, it would be nice to have this settled and fixed.
Thanks, Paul
Linaro.org | Open source software for ARM SoCs Follow Linaro: http://www.facebook.com/pages/Linaro http://twitter.com/#%21/linaroorg - http://www.linaro.org/linaro-blog
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
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
On 12 January 2012 21:14, Andy Doan andy.doan@linaro.org wrote:
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.
Thanks Andy, for summing it up.
I have now added a new section on BuildSource page which talks about this optional step.
Regards, Amit Pundir
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
linaro-android mailing list linaro-android@lists.linaro.org http://lists.linaro.org/mailman/listinfo/linaro-android
Hello,
On Thu, 12 Jan 2012 11:34:44 +0000 "Jon Medhurst (Tixy)" tixy@linaro.org 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"
Well, my reading doesn't give me such impression, let's see:
======== Google's build instructions include an extra step where 'lunch' is used to select a build target.
Since we specify the TARGET_PRODUCT and TARGET_TOOLS_PREFIX on the make command line, lunch is redundant, so can be skipped. There should be no difference in the build whether you run lunch or not. ========
So, it talks about "lunch", nothing else. Yes, there's some kind of "quote" which has envsetup.sh in it, but that's only to give some context. It's like a guy on ebay selling iphone power supply but picturing it together with iphone. Whoever bought a power supply for $300 is at their own fault ;-).
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
http://source.android.com/source/building.html
linaro-android@lists.linaro.org