[Android Software Development] Droidzone:
Thank you. Yea, I wasnt very familiar with xz format.. :)

I've published the binaries I compiled https://sourceforge.net/projects/supernovakernel/files/linux-arm/

Also published a Cross compiler that works on Sourceforge ssh environment and possible also on any x86 envt https://sourceforge.net/projects/supernovakernel/files/essentials/

Added a header with credits. Please inform me if you'd like it modified.

Wanted to share a few pieces of simple code and suggestions which you may like to incorporate in build.sh..It makes life easier

I'd suggest that you keep logging always on. It is only < 10MB, but very useful. So maybe have a bash script called build, which calls build.sh with logging. Easier for users

ech () {
echo $*
echo $* >> $logfile
}

If you keep this code as a function at the top, you can replace all your echo commands by ech, and get a log of crucial steps, like... "Now building $prog" etc

generate_summary () {
echo "Generating summary for build process..."
if [ -e $summaryfile ]
then
rm $summaryfile
fi

grep -B 10 -A 10 'Building' $logfile > $summaryfile
if [ -e $summaryfile ]
then
echo "Summary file generated at $summaryfile"
echo "Full log file is at $logfile"
fi
}

This will generate summary of important info just at the beginning and end of script, to a summary file. You can provide this at end of a successful build, and also as seperate addon script, called summary.sh, which can be called in between to check progress... Of course in such a script you can call:

[CODE]less $summaryfile

[/CODE]Another thing I'd suggest is an error detector which detects common build errors, like- I got one which says No makefile found while building bash... You could grep the main logfile and append to the errorlog file..

Another suggestion which might be difficult to implement is to apply logic to detect if a package failed to build. If it did, skip only the dependee packages and continue with other independent packages instead of giving an "exit 1" signal.

Mirrors for Download urls-so that if one or two failed, script falls back to another known host, and downloads it instead of terminating.

Detect at what point script failed and save state. If script is evoked again, it should be able to continue at the stage where it faltered. If you use seperate functions in the main build.sh, you can do this..

Allow build.sh to take arguments-downloadonly, full, resume etc..

I know that these are difficult to implement. However I too am good at bash, and will see if I can help you with improvements in your code..

I could never test out all the configure and make parameters. Your script is awesome! I've often spent days just to get one binary to cross-compile! :p

Btw...I got the following errors at the end of the build process:

rm -f ppport.h
rm -f perl.mak
rm -f perl.mak.old
make[1]: Leaving directory `/home/users/d/dr/droidzone/bldroot/sources/git-1.7.8.3/perl'
make -C git_remote_helpers clean
make[1]: Entering directory `/home/users/d/dr/droidzone/bldroot/sources/git-1.7.8.3/git_remote_helpers'
'build/lib' does not exist -- can't clean it
'build/bdist.linux-x86_64' does not exist -- can't clean it
'build/scripts-2.4' does not exist -- can't clean it
rm -f *.pyo *.pyc
make[1]: Leaving directory `/home/users/d/dr/droidzone/bldroot/sources/git-1.7.8.3/git_remote_helpers'
make -C templates/ clean
make[1]: Entering directory `/home/users/d/dr/droidzone/bldroot/sources/git-1.7.8.3/templates'
rm -f -r blt boilerplates.made
make[1]: Leaving directory `/home/users/d/dr/droidzone/bldroot/sources/git-1.7.8.3/templates'
make -C t/ clean
make[1]: Entering directory `/home/users/d/dr/droidzone/bldroot/sources/git-1.7.8.3/t'
rm -f -r 'trash directory'.* test-results
rm -f -r valgrind/bin
rm -f .prove
make[1]: Leaving directory `/home/users/d/dr/droidzone/bldroot/sources/git-1.7.8.3/t'
make -C gitk-git clean
make[1]: Entering directory `/home/users/d/dr/droidzone/bldroot/sources/git-1.7.8.3/gitk-git'
rm -f gitk-wish po/*.msg
make[1]: Leaving directory `/home/users/d/dr/droidzone/bldroot/sources/git-1.7.8.3/gitk-git'
make -C git-gui clean
make[1]: Entering directory `/home/users/d/dr/droidzone/bldroot/sources/git-1.7.8.3/git-gui'
GITGUI_VERSION = 0.14.0.13.g843d65
make[1]: Leaving directory `/home/users/d/dr/droidzone/bldroot/sources/git-1.7.8.3/git-gui'
make[1]: Entering directory `/home/users/d/dr/droidzone/bldroot/sources/git-1.7.8.3/git-gui'
rm -rf git-gui lib/tclIndex po/*.msg
rm -rf GIT-VERSION-FILE GIT-GUI-VARS
make[1]: Leaving directory `/home/users/d/dr/droidzone/bldroot/sources/git-1.7.8.3/git-gui'
rm -f GIT-VERSION-FILE GIT-CFLAGS GIT-LDFLAGS GIT-GUI-VARS GIT-BUILD-OPTIONS
rm -f configure
rm -f po/git.pot
GIT_VERSION = 1.7.8.3
GEN configure
Usage: autoconf [-h] [--help] [-m dir] [--macrodir=dir]
[-l dir] [--localdir=dir] [--version] [template-file]
make: *** [configure] Error 1
sed: can't read ./configure: No such file or directory
./build.sh: line 4716: ./configure: No such file or directory
* new build flags or prefix
CC daemon.o
cc1: error: unrecognized command line option "-marm"
cc1: error: unrecognized command line option "-mfpu=neon"
cc1: error: unrecognized command line option "-mfloat-abi=softfp"
daemon.c:1: error: bad value (armv7-a) for -march= switch
daemon.c:1: error: bad value (cortex-a9) for -mtune= switch
make: *** [daemon.o] Error 1

CC daemon.o
cc1: error: unrecognized command line option "-marm"
cc1: error: unrecognized command line option "-mfpu=neon"
cc1: error: unrecognized command line option "-mfloat-abi=softfp"
daemon.c:1: error: bad value (armv7-a) for -march= switch
daemon.c:1: error: bad value (cortex-a9) for -mtune= switch
make: *** [daemon.o] Error 1
**************************************************

Stripping the files in /home/users/d/dr/droidzone/bldroot/sysroot
find: invalid predicate `-writable'
find: invalid predicate `-writable'
**************************************************
Making the tar file android-mysysroot.tar.bz2