Install the kernal as normal, usually in /usr/src/linux. Configure it in your favorite way, I use make menuconfig and be sure to enable the module Character devices -> Video For Linux -> BT848 Video For Linux. Then compile your kernel with something like make dep && make clean && make bzlilo && make modules && make modules_install and reboot.
The bttv web page usually has i2c patches for 2.2 kernels. Supposedly, the 2.4 kernels come with the modern version of i2c and don't need patching. If you are not using a kernel that has a i2c patch available, then you can download the i2c source from the lm_sensors project page and make a patch from the instructions there.
put the i2c patch in your source directory (like /usr/src) and run it through patch like so patch -p0 -E < i2c-2.2.18.diff.
Now you need to configure your kernel again, this time selecting the modules Character devices -> I2C support and Character devices -> I2C support -> I2C bit-banging interfaces and re-compile and install it with make dep && make clean && make bzlilo && make modules && make modules_install followed by a reboot.
Once you have patched your kernel with the i2c stuff, compiling the bttv source should just be a simple make and make install, although you will have to do it as root because the Makefile writes temp files in the kernel source.
You should now have a bunch of modules in your /lib/modules/2.2.18/misc directory like bttv.o, tuner.o, tvmixer.o and so forth. I added a line in my /etc/modules.conf file like this options bttv gbuffers=16 card=10. You will want to consult the docs that came with the bttv source to see what options you may want.
If i2c and bttv installed fine, then compiling xawtv should be as simple as ./configure && make && make install.