--- 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

Reply via email to