Getting started with tup is easy. Just follow these 7 steps:

  1. Build tup.
  2. Make sure your source files are backed up, like in source control, or something. Tup is able to delete old files automatically, so if you hose something up because you claimed really_important_file.c is an output to a command when it never was and you never put it in source control - well, don't blame me. Hey, your hard disk can go at anytime, too.
  3. Go to the top of your source tree and type 'tup init'. This will create a .tup/ directory and stick some files in there. The 'db' file is the database, which holds the entire DAG. The rest of the empty files are just used for locking.
  4. Start the file monitor by typing 'tup monitor'. You can do this in any subdirectory of your source tree - it will find the top (where .tup is) and run from there. This will start a background process to watch the source tree for file changes. You can stop it by doing 'tup stop', or just killing the process. If you reboot your computer or something, you'll want to do this again to start a new file monitor.
  5. Write a Tupfile to build things. It's probably easiest to start with a single rule and expand from there. After all, tup runs in some kind of time warp so you don't save anything by doing everything up front and trying to get it right the first time.
  6. Perform a build by running 'tup upd'. You can also run this from anywhere in the source tree. This will always update the whole tree. You can't fake out tup by trying to build a part of your program if you run upd in a subdirectory or something. Don't even try. You can't win.
  7. Now you just edit your source files, Tupfiles, or whatevs and run 'tup upd' when you're done. Unless you have the autoupdate config option set, in which case you don't need to type 'tup upd'.