I use OpenEmbedded for compiling. It's a great environment but it might be a bit too much if you've never used it before.
Start Here for help in setting up OE. Use MACHINE = "bug" and DISTRO = "angstrom-2010.x" in your local.conf, but change the glibc version for Angstrom to version 2.5, which is what the Kindle is running on (change it in openembedded/conf/distro/angstrol-2010.x.conf around line 70).
Good thing with OpenEmbedded is it has a wealth of applications ready for compilation. The Kindle is running on DirectFB 1.2, so make sure you compile applications against directfb-1.2 and not 1.4 in OE.