Here is the process I used to quickly build (OK, but it was faster than usual) QGIS HEAD on Feisty Fawn. What’s QGIS HEAD? It’s the current development version that includes the tasty Python bindings that allow you to write both QGIS plugins and stand-alone mapping applications.

1. With apt-get or synaptic, install the following:

 bison               fftw3
 fftw3-dev           flex
 g++                 libgeos-c1
 libgeos-dev         libgeos2c2a
 libpq-dev           libpq5
 libqt4-core         libqt4-dev
 libqt4-gui          libqt4-qt3support
 libqt4-sql          libreadline5-dev
 libsqlite3-dev      libtiff4-dev
 proj                pyqt4-dev-tools
 python-qt4          python-qt4-dev
 python-sip4         python-sip4-dev
 qt4-designer        qt4-dev-tools
 qt4-doc             qt4-qtconfig
 sip4                sqlite3
 tcl8.4-dev          tk8.4
 tk8.4-dev           x-dev

Some of these may get installed as part of other packages. Also you’ll likely see a bunch of dependent packages pulled in by the ones above.

2. Get and build GDAL 1.4.1 from source (http://www.gdal.org/)

./configure ‘–without-python’ ‘–with-sqlite=/usr’
make
make install

3. Download GRASS 6.2.1 and build (You can use the 6.3.x snapshots as well - http://grass.itc.it)

./configure –with-tcltk-includes=/usr/include/tcl8.4 \
–with-postgres-includes=/usr/include/postgresql –with-readline –with-sqlite
make
make install

4. Rebuild GDAL 1.4.1 with GRASS support

./configure –without-python –with-sqlite=/usr –with-grass=/usr/local/grass-6.2.1
make clean
make
make install

5. Get the current QGIS unstable from the Subversion repository. You’ll need subversion to fetch the code. If you don’t have it, install it using:

sudo apt-get install subversion

then,

svn co https://svn.qgis.org/repos/qgis/trunk/qgis qgis_unstable

5. Build QGIS using the instructions in: http://wiki.qgis.org/qgiswiki/Building_with_CMake
I suggest using a out of source build outlined on the wiki.
If you have problems with cmake finding your GRASS or other components, use ccmake to edit the paths, as well as the install prefix if you like:

cd qgis_unstable
mkdir build
cd build
ccmake ..

Using ccmake

Hit ‘c’ a couple of times and then ‘g’ to generate. You are then ready to:

make
make install

Using the Feisty packages makes it a pretty quick process. You only need to compile GDAL, GRASS and QGIS. If you don’t want to use GRASS, you could get by with GDAL 1.3.2 from apt.

You can also use this process to build the 0.8.0 release or the 0.8.1 release candidate in subversion.