Jam is a make(1) replacement that makes building simple things simple and building complicated things manageable. Jam runs on over 50 platforms and most Jamfiles are themselves portable. Jam also handles header file dependencies automatically, and on-the-fly.