The building process shares a lot of steps on all platforms. Here we describe them, but then you should see the specific bits needed in your specific platform.
To compile an entire working OE, you need just two things: The HC and the GenC, everything else is optional. When you have them, the generated source code is built against platform-specific code, using a 'traditional' C compiler (GCC or ICC).
Each time a new official VM is released, a copy of the GenC code used is commited to the SVN and then the contents of the repo is packaged as a zip file. So, whether you download the sources from the zip or the SVN you'll get some copy of the HC and the GenC. If you want to use that GenC or generate your own, that's up to you.
In case you download the sources as a zipped package you can just make it. It's the easier way, but you won't be able to make much modifications to the code.
If you download the sources from SVN then you have to choose if you want to use the provided GenC or not.
If you want to use the GenC provided, then checkout the specific revision after the VM release commit, which should be equal to the one you get from the zipped package.
As of April 2010, the last stable version of Squeak VM is 4.0.3 revision 2202. To check it out:
svn co http://squeakvm.org/svn/squeak/trunk/platforms/ -r 2202
Notice that since that revision a lot of changes were made in SVN, but the GenC wasn't updated to support them, so you shouldn't mix the HEAD of SVN with it's GenC, as it probably won't work.
This way is only a bit harder, but will let you make any modifications you want and you'll be running the latest code. Here, you will checkout the latest SVN, download the latest Slang code and translate it to C using VMMaker.