Safari Books Online is a digital library providing on-demand subscription access to thousands of learning resources.
At this point we've pretty much covered everything needed to implement reference builds. Customizing the single top-level makefile to support the feature is straightforward. Simply replace the simple assignments to SOURCE_DIR and BINARY_DIR with ?= assignments. The scripts you run from cron can use this basic approach:
Redirect output and set the names of log files
Clean up old builds and clean the reference source tree
Check out fresh source
Set the source and binary directory variables
Invoke make
Scan the logs for errors
Compute tags files, and possibly update the locate database[2]
[2] The locate database is a compilation of all the filenames present on a filesystem. It is a fast way of performing a find by name. I have found this database invaluable for managing large source trees and like to have it updated nightly after the build has completed.
Post information on the success or failure of the build