[Thunderbolt Android Development] jblack248:
The purpose of this guide is to show the steps required to compile CM9 specifically for the Thunderbolt. This may be adapted for other ROMs in the future. However, I will not describe how to setup your development environment as that information changes based on distribution versions and has been done many times over. A few good references are here, with an example of mine at the end of this post:

CyanogenMod Wiki - Learning to Build CyanogenMod

CyanogenMod Build Guide for Nexus 7 (Use as an example)

My goal is to aid others in development as the steps to get everything working on the Thunderbolt are not straight-forward unless you know what they are. Even though I had plenty of sources when I started, I still had to spend many hours to get them working. The camera and radio need some extra steps, but those are now streamlined for both my benefit and everyone else's.

I added these steps on gist.github as scripts, although I have not tested them as such. It would be best if you do each line at a time to better understand what you're doing.

Build CM9 Thunderbolt - First Time Only

Build CM9 Thunderbolt - Subsequent Builds

For the first build only:

mkdir android
cd android/
repo init -u git://github.com/CyanogenMod/android.git -b ics
mkdir -p .repo/local_manifests
wget https://raw.github.com/jblack248/android/ics/local_manifest.xml -O .repo/local_manifests/cm_mecha.xml
repo sync

# Cherry-pick frameworks/base/libs/ui commit from Twisted
cd frameworks/base/ && git fetch http://review.cyanogenmod.com/CyanogenMod/android_frameworks_base refs/changes/85/13285/8 && git cherry-pick FETCH_HEAD && cd ../..

# checkout branch in local trees
repo start ics device/htc/common device/htc/mecha device/htc/msm7x30-common hardware/qcom/camera kernel/htc/mecha-3.0 packages/apps/Camera vendor/htc/mecha vendor/htc/mecha-radio

# download prebuilts
cd vendor/cm/
./get-prebuilts
cd ../..

. build/envsetup.sh
lunch cm_mecha-userdebug

# Make build then rebuild with radio - read script in vendor/htc/mecha-radio if interested
mka bacon && . vendor/htc/mecha-radio/liquid_telephony.sh

For subsequent builds:

repo sync

# Cherry-pick frameworks/base/libs/ui commit from Twisted
cd frameworks/base/ && git fetch http://review.cyanogenmod.com/CyanogenMod/android_frameworks_base refs/changes/85/13285/8 && git cherry-pick FETCH_HEAD && cd ../..

. build/envsetup.sh
lunch cm_mecha-userdebug

# Make build then rebuild with radio - read script in vendor/htc/mecha-radio if interested
mka bacon && . vendor/htc/mecha-radio/liquid_telephony.sh

How I set up the build environment on Xubuntu 13.04 64-bit - Gist.github:

echo "Install Android Development Tools and Dependencies"
sudo apt-get install -y android-tools-adb android-tools-fastboot git-core gnupg flex bison gperf libsdl1.2-dev libesd0-dev libwxgtk2.8-dev squashfs-tools build-essential zip curl libncurses5-dev zlib1g-dev lib32z1-dev pngcrush schedtool g++-multilib lib32z1-dev lib32ncurses5-dev lib32readline-gplv2-dev gcc-multilib g++-multilib schedtool libc6-dev-i386 ccache
echo "Link zconf.h to fix Android compile issues in 13.04"
ln -s /usr/include/x86_64-linux-gnu/zconf.h /usr/include
echo "Installing Development Tools"
sudo apt-get install -y meld gedit-plugins git gitk gtkhash
echo "Customize .bashrc"
echo "export USE_CCACHE=1" >> ~/.bashrc
echo "ccache -M 20G > /dev/null 2>&1" >> ~/.bashrc
# these locations will be different for you, depending on where you installed the SDK
# echo "export PATH=${PATH}:~/Documents/Development/bin:~/Documents/Development/adt-bundle-linux-x86_64/sdk/tools:~/Documents/Development/adt-bundle-linux-x86_64/sdk/platform-tools"