Here are some ideas for future releases of mkcode, in no particular
order:

* Add a @default target.

* Use multiple processes for building projects, analogous to GNU
  make's '-j' option.

* Target execution can depend on an arbitrary test.  One possibility
  is to add a 'needs_updating' method to task objects, which would be
  called during dependency resolution.

* Include various file update scanners that check and record file
  metadata for the purpose of determining if a target is out of date.
  Some of the SCons techniques could be used, such as md5sum, or
  custom scanners.

* multiple '-v' options change the output verbosity? '-v', '-vv', and
  so on.

* Setting of global module variables via the command-line, or by the
  Posix environment (as done by rake and make, respectively).

* any of the following features from Plan9's mk utility would be nice:

          -a      Assume all targets to be out of date.  Thus, every-
                  thing is updated.
          -d[egp] Produce debugging output (p is for parsing, g for
                  graph building, e for execution).
          -e      Explain why each target is made.
          -i      Force any missing intermediate targets to be made.
          -k      Do as much work as possible in the face of errors.
          -n      Print, but do not execute, the commands needed to
                  update the targets.
          -s      Make the command line arguments sequentially rather
                  than in parallel.
          -t      Touch (update the modified date of) file targets,
                  without executing any recipes.
          -wtarget1,target2,...
                  Pretend the modify time for each target is the cur-
                  rent time; useful in conjunction with -n to learn
                  what updates would be triggered by modifying the
                  targets.

Obviously we need not depend of file times as much as the above
options do.

* The ability to run zc.buildout recipies from mkcode.

* Something really wild: Plan9-style mkfiles, but use Python for the
  target bodies instead of shell script.
