Made a bunch of cleanups/improvements, including:
- Changed some variable/function names. mg-rule -> mg-define-rule. (Changed
demo to match.) Changed Mage target variables: cmd-foo.o -> foo.o@cmd.
- Took out exit code replay because it introduced lots of complexity for little
benefit.
- Changed scouted target from abspath to /./proc/self/cwd format. This fits
with the planned target obfuscation system but isn't so portable; I'll
reconsider later.
- Massively refactored mg-commands -> mg-generate so that it's understandable.
- FORCEd *.g rules and moved a bunch of processing from second-expansion to the
command script. This way the processing only runs if make actually uses the
rule (not just second-expanding anyway or implicit rule searching).
- Detection of command change for implicit rules was broken because evidently
only the prereqs given with the command take effect. I moved all the prereqs
to the same line but then the new command was evaluated too early to see the
automatic variables with the user-specified prereqs. Moving the command check
into the command script fixed it.
- Put more complete title and Web site at the top.
I have been preparing to add the dependency-logging command support, which is
going to be dauntingly complicated. I wanted to nail down the basics first.