Daily Build

Run the compiler and linker to build the executables on a daily basis

The basic steps are:

The daily build has mostly been publisized by people that at some point have been working with Microsoft. Notorious examples include Jim McCarthy, Steve McConnell and Joel Spolsky.

As you can see from the DailyBuild Wiki page, XP has made the emphasis shift to Continuous Integration.

References

Windows. A Software Engineering Odyssey.
Mark Lucovsky's presentation describing the history of Windows NT as seen from inside Microsoft. Particularly interesting for his description of the evolution of the internal build process. Also in html or text format.
Quest for reliability drives Windows 2000 Build Labs.
By Bruce Hoard.
DailyBuild
on the c2 wiki
Continuous Integration by Martin Fowler and Matthew Foemmel
An important part of any software development process is getting reliable builds of the software. Despite it's importance, we are often surprised when this isn't done. We stress a fully automated and reproducible build, including testing, that runs many times a day. This allows each developer to integrate daily thus reducing integration problems.

Tools

CruiseControl
CruiseControl is a framework for a continuous build process. It includes, but is not limited to, plugins for email notification, Ant, and various source control tools. A web interface is provided to view the details of the current and previous builds. See the Wiki page for more details.
Continuous Integration
but using VC++/COM
Apache Ant
A Java-based build tool for those who don't like make. This article show how to use Ant and JUnit to setup a daily build and test process.
Ant's cpptasks
Ant is quite Java-centric. But there are some Ant tasks available to support C++ builds.
TinderBox
See the c2 wiki page. From the TinderBox web page:
Essentially, Tinderbox is a detective tool. It allows you to see what is happening in the source tree. It shows you who checked in what (by asking Bonsai); what platforms have built successfully; what platforms are broken and exactly how they are broken (the build logs); and the state of the files that made up the build (cvsblame) so you can figure out who broke the build, so you can do the most important thing, hold them accountable for their actions.
DevelopMentor's Gen<X>.
Simple build automation based on an XML file which describes what to build, and a set of templates that generate the nightly build and developer build batch files.

Some commercial tools

Related Stuff

Interesting discussion on having only one codeline.

Coping mechanism