On Dec 5, 2012, at 2:29 AM PST, Alexis Praga wrote: >> If you don't need a fully robust strategy that works for parallel make >> and all sorts of different corner cases (particular files deleted/touched, >> etc.), then you can likely get by with a simpler set of rules. > > Actually, even when I delete all the .mod file, this does not force a > rebuild. Is this one of your corner case ? It looks a major issue to me, if > you do not want to use make clean to recompile everything.
Right, this is exactly the sort of thing that I was talking about. > So, if i understand correctly, the safer way would be to use only > dependencies with .f90 and .mod ? The only robust way that I have found to deal with this is to use the pattern that I linked to in my previous email. Perhaps someone else has a simpler approach. >>> [2] https://gist.github.com/4190680 > > One last thing, in this example, why do you use a temporary stamp file, > instead of creating a rule directly between the library and module files > and the header ? I can't remember exactly why that is done, but it was certainly done that way to handle some particular case that I was hitting. I think it ensures that the mtime for the "-stamp" file is earlier than the mtime for the ".$(MOD)" file. Otherwise make will attempt to rebuild the mod file every time, since it will always appear to be out of date w.r.t. its primary dependency. -Dave