If you're lucky your distribution or someone else using it may have already done all of the work for you.
Gentoo users can just emerge quake3 to get a recent snapshot of our Subversion repository.
Ludwig "Angst" Nussel works on this project and also provides RPMs for SUSE Linux Enterprise Server. Note that these are just the binaries, no scripts or KDE/Gnome files to start them. Ludwig also mentions that the packages should work on any glibc 2.3 system.
( This part assumes Windows users are using Cygwin. If you aren't, TortoiseSVN is a good client. )
Everyone else can compile it themselves
Open code/macosx/Quake3.pbproj in XCode, press build. Enjoy!
Building on Windows is slightly complicated. You can either use Microsoft Visual C++ or MinGW. MinGW works better currently; both methods are described in the readme you already are supposed to have read.
You have four choices for help: documentation, the mailing list, the IRC channel, and Bugzilla. There is some great documentation for Linux users at the Linux Gamers' FAQ, and also at id's original page (though you should no-longer contact them for support). Windows users and Mac users should just Google their errors to check for preexisting solutions. You can try asking on the mailing list. To join the IRC channel, connect your client to irc.freenode.net #icculus.org/quake3. To file a bug report with Bugzilla, check out our Bugzilla website.
If you've come up with an improvement or fixed something, we'd love to hear about it! Firstly, try to make sure that the patch breaks less than it fixes. We don't require everyone to be decorated Geniuses, but do attempt to produce a patch that you've tested and at list sort-of understand what you're doing.
The preferred way to get the ball rolling on a patch is to file a Bugzilla bug for your request with the patch attached to it and then send a notice to the mailing list about it. If you're really so lazy that you can't do this, we would prefer you at least mail it to zakk@icculus.org rather than not do anything at all.
Please make it clear if the patch you're submitting for inclusion isn't yours. Point
out where you found it and who authored it. This is so we know who to attribute
blame to when it horribly breaks things credit to.
If you know how to code, but never made a patch before, that's okay. Here's the 10ยข survival guide to generating patches.
If you checked the source code out with SVN, the client makes it rather easy to generate patches. In fact it's a function of the client itself. Once you've made a change in your checkout that is not upstream, here is how you use it:
If you didn't get the source code via SVN, or for some reason that doesn't work for your situations, here's how to generate them using the tried-and-trusted diff tool between two files:
For more information on diff, patch, and svn, read their respective man and info pages. For a more in-depth guide on Subversion take a look at the SVN Book.