To your /etc/make.conf file you could add for example..

GENTOO_MIRRORS="http://ftp.citylink.co.nz/gentoo"

See the Gentoo Wiki for safe CFlags... http://gentoo-wiki.com/Safe_Cflags

Typically I use.....

emerge --sync && emerge -uDpv world
Optional: emerge -uDvf world && emerge -uDv world
emerge -uDv world

Gentoo downloads source files to /usr/portage/distfiles/ They remain there, and as new versions are downloaded a lot of un-needed stuff builds up. You will still want to keep current versions, but old versions can usually be deleted. So how do you tell what can safely be deleted?

This tip comes via Jason Stubbs a regular on the gentoo-user mailing list.

# mv /usr/portage/distfiles /usr/portage/distfiles.old
# mkdir -p /etc/portage
# echo local /usr/portage/distfiles.old > /etc/portage/mirrors
# emerge -ef world
# rm /etc/portage/mirrors
# rm -rf /usr/portage/distfiles.old

A short explanation: you move everything in your distfiles folder to a temporary folder (/usr/portage/distfiles.old/). Then you tell portage that it should look to download files from local /usr/portage/distfiles.old in the first instance. Then you tell portage to fetchonly (ie just get the files not compile them - option -f) for everything in your system (option -e). It will grab them from /usr/portage/distfiles.old and put them in /usr/portage/distfiles. When that has completed you will have only what is current in /usr/portage/distfiles and you can delete the old stuff and delete the mirrors entry.

Two caveats: you need potentially double the storage space thats in /usr/portage/distfiles while this is going on, and its quite system intensive as there is a lot of file copying, as well as md5sum checking going on.

WARNING Do NOT stick this in a script and then ctrl-c in the middle of it downloading. That would simply stop the emerge -ef world part, and then go on to execute the rest of the script, thereby deleting ALL your source files.