[Android Software/Hacking General [Developers Only]] shurane:
I've found building AOSP and its various offshoots (AOKP, Cyanogenmod, Evervolv, ParanoidAndroid) sometimes a bit frustrating to figure out. Although the source code and tutorials are usually around, I've still had a lot of problem getting code to compile. I put together a little python script to help diagnose particular issues like missing libraries, header files, etc and dump that into readable JSON output. It's still very much a work in progress (WIP), but I figure it may help some people out.

What I plan on adding is comparison of the versions of local binaries with the latest versions, and complaining when things are out of date or just not working.

You can access the code here: https://github.com/shurane/aosp_buildcheck

Or if you trust me, you can run the code directly using this line:

wget -O - raw.github.com/shurane/aosp_buildcheck/master/aosp_buildcheck | python

This is the output you get, including errors:

errors:
Command '['/bin/bash', '-c', 'adb version 2>/dev/null']' returned non-zero exit status 127
Command '['/bin/bash', '-c', 'which fastboot']' returned non-zero exit status 1
Command '['/bin/bash', '-c', 'find ${PATH//:/ } -maxdepth 1 -name adb -print -quit 2>/dev/null']' returned non-zero exit status 1
Command '['/bin/bash', '-c', 'find ${PATH//:/ } -maxdepth 1 -name fastboot -print -quit 2>/dev/null']' returned non-zero exit status 1
Command '['/bin/bash', '-c', 'which pngout']' returned non-zero exit status 1
{
"aosp_dir": {
"devices": [
"mini_armv7a_neon-userdebug",
"mini_armv7a-userdebug",
"full_maguro-userdebug",
"cm_quincyatt-eng",
"full_vibrantmtd-eng",
"full_panda-userdebug",
"aokp_maguro-userdebug",
"aokp_toro-userdebug",
"aokp_toroplus-userdebug",
"aokp_crespo-userdebug",
"aokp_crespo4g-userdebug",
"aokp_grouper-userdebug",
"aokp_captivatemtd-userdebug",
"aokp_d2att-userdebug",
"aokp_d2tmo-userdebug",
"aokp_d2usc-userdebug",
"aokp_d2vzw-userdebug",
"aokp_evita-userdebug",
"aokp_fascinatemtd-userdebug",
"aokp_galaxysmtd-userdebug",
"aokp_hercules-userdebug",
"aokp_i9100-userdebug",
"aokp_i9100g-userdebug",
"aokp_i9300-userdebug",
"aokp_n7000-userdebug",
"aokp_p3100-userdebug",
"aokp_p3110-userdebug",
"aokp_p3113-userdebug",
"aokp_p5100-userdebug",
"aokp_p5110-userdebug",
"aokp_p5113-userdebug",
"aokp_quincyatt-userdebug",
"aokp_tf101-userdebug",
"aokp_vibrantmtd-userdebug"
],
"projects": {
"aokp": 89,
"aosp": 230,
"cm": 26
},
"projects_total": 345,
"remotes": [
"<remote fetch=\"https://android.googlesource.com/\" name=\"aosp\"/>",
"<remote fetch=\"https://github.com/\" name=\"aokp\" review=\"gerrit.sudoservers.com\"/>",
"<remote fetch=\"https://github.com/CyanogenMod/\" name=\"cm\" review=\"review.cyanogenmod.com\"/>"
]
},
"libGL.so": "/usr/lib/i386-linux-gnu/libGL.so: symbolic link to `/usr/lib/i386-linux-gnu/mesa/libGL.so.1'",
"linux": {
"lsb_release": "Distributor ID:\tUbuntu\nDescription:\tUbuntu 12.04.1 LTS\nRelease:\t12.04\nCodename:\tprecise"
},
"optional": {
"ionice": "ionice from util-linux 2.20.1",
"schedtool": "get/set scheduling policies - v1.3.0, GPL'd, NO WARRANTY"
},
"os": "Linux",
"pngtools": {
"optipng": "OptiPNG 0.6.4: Advanced PNG optimizer.\nUsing libpng version 1.2.46 and zlib version 1.2.3.4",
"pngcrush": "pngcrush 1.7.9, uses libpng 1.2.42 and zlib 1.2.3.3",
"pngout": ""
},
"repo": "repo version v1.12.0\n (from https://gerrit.googlesource.com/git-repo)\nrepo launcher version 1.19\n (from /home/kikin/bin/repo)\ngit version 1.7.9.5\nPython 2.7.3 (default, Aug 1 2012, 05:14:39) \n[GCC 4.6.3]",
"tools": {
"adb": "",
"fastboot": "",
"g++": "g++ (Ubuntu/Linaro 4.6.3-1ubuntu5) 4.6.3",
"gcc": "gcc (Ubuntu/Linaro 4.6.3-1ubuntu5) 4.6.3",
"java": "java version \"1.6.0_38\"\nJava(TM) SE Runtime Environment (build 1.6.0_38-b05)\nJava HotSpot(TM) 64-Bit Server VM (build 20.13-b02, mixed mode)"
},
"uname": "Linux un 3.2.0-29-generic #46-Ubuntu SMP Fri Jul 27 17:03:23 UTC 2012 x86_64 x86_64 x86_64 GNU/Linux"
}

Feel free to complain about any outstanding problems with the script and stuff. I would much rather prefer pull requests over github if you guys have the knowhow to implement features.