--- On Thu, 2/7/13, Michael Stahl <[email protected]> wrote:
> if the build system has generated a file, then it should be > able to > re-generate it if needed; that's its job. Well, let's agree to disagree here, then. If you delete a crucial intermediate file without knowing what you are doing, then in my opinion it's not the build system's job to do anything other than say "it's your fault, now you have to do a complete clean". Only touching sources is supported, not touching intermediate files. That's my firm belief, so let's disagree. > there is also a more serious problem with just a dependency > but no rule > for "bar": make will not re-build targets that depend on > "bar", because > without a rule for "bar" make assumes that it's still up to > date. this > means that the make invocation that builds "foo" will not > rebuild all > dependent files, and the next time you invoke make it will > see that > "bar"'s timestamp is newer and _then_ build its dependents. Nothing like that, I just tried: [mark@grid003 ~]$ cat Makefile bar1: bar touch $@ bar: foo foo : baz touch foo bar [mark@grid003 ~]$ touch bar1 foo bar [mark@grid003 ~]$ touch baz [mark@grid003 ~]$ make bar1 touch foo bar touch bar1 [mark@grid003 ~]$ make bar1 make: `bar1' is up to date. [mark@grid003 ~]$ _______________________________________________ Help-make mailing list [email protected] https://lists.gnu.org/mailman/listinfo/help-make
