Comment

Comment by haberman

> Here's an example of a minimal makefile:

Your example does not contradict what I wrote. You manually specified the tool to be run ($CC) and all of the arguments to that tool.

It's true that there is a level of indirection through the $CC variable, but you're still operating at the level of specifying a tool's command-line.

> There's no reason this shouldn't be possible with make; it just hasn't been implemented so.

Make is 44 years old. If it were an easy extension to the existing paradigm, there has been ample time to implement such an extension.

> Do bazel/buck/please actually do this? As far as I know tup is the only tool that actually verifies inputs/outputs of rules, and it needs FUSE to do so.

Bazel certainly has some amount of sandboxing, though I don't think it's quite as complete as what is available internally at Google with Blaze. I haven't used Buck or Please, so I can't speak for them.

> True, it's a bit of a footgun, but by no means difficult.

Well footguns aren't great. :) As just one example, any header that is conditionally included (behind an #ifdef) could cause this cache to be invalidated when CFLAGS change, but Make has no idea of this.

parent haberman 6 years ago

Discussion

Live from the official Hacker News API

A modern reader for Hacker News · SvelteKit + Skeleton