First, get the Android build system from Google.
I usually visit the page http://android.googlesource.com and it will redirect me to http://source.android.com/source/downloading.html
For me, I just do
:::bash
$ repo init -u https://android.googlesource.com/platform/manifest -b android-2.3.7_r1
$ repo sync -c
so that I will only get the specific branch to save time. (I think it can)
After you've cloned the tree, you have to add the device-specific files and apply necessary patches. See [Android build device files].
Then
:::bash
$ . build/envsetup.sh
$ lunch full_ipaq214-eng
$ make -j4
Or you can simply use lunch and select a combo.
Then to get output files:
:::bash
$ . ipaq214android-release.sh <destination>
where \<destination> is recommended to be an empty directory in your home directory.
If you want WiFi to work with your build, you will need to have a patched wpa_supplicant driver, which is AWEXT at the moment. The patch I used is here: http://blog.linuxconsulting.ro/2010/04/porting-wifi-drivers-to-android.html, probably you will need to manually patch some files if you used the patch there.
My patch file is on the git repo.
Wiki: Android build device files
Wiki: Building Kernel
Wiki: Developing