Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Disable feature "Targets are automatically rebuilt when their rules' command lines change"? #4

Open
JeffreyBenjaminBrown opened this issue Nov 22, 2019 · 1 comment

Comments

@JeffreyBenjaminBrown
Copy link

I'm experimenting with different ways of getting something done, and the fact that each time I change the recipe to something I believe is equivalent, it gets rebuilt, is slowing me down a lot.

@zwegner
Copy link
Owner

zwegner commented Nov 23, 2019

I think that in general, that feature is very valuable and essential for reliable incremental builds--the fact that make doesn't do it is really annoying for me, whenever I have to use it. Are you just asking for an option to disable it? I'm not sure that would be useful enough to keep an option around... I'd expect almost all tools to have different output from different command line arguments (otherwise what's the point in changing them?).

It should work to just delete the self.cmds entry from the tuple on line 195 of make.py, which disables the signature checking for just the commands, but not for all the other important aspects of the rule:

-        info = (self.targets, self.deps, self.cwd, self.cmds, self.d_file, self.msvc_show_includes)
+        info = (self.targets, self.deps, self.cwd, self.d_file, self.msvc_show_includes)

This should be considered fairly dangerous though, since it might cause weird rebuild issues in the future if you're not careful.

Would it instead be more useful to have hash-based dependency checking instead of/in addition to timestamp-based checking? That's something that is definitely useful, and is on the roadmap.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants