Skip to content

Why is there no Makefile backend? #10124

Answered by eli-schwartz
milobanks asked this question in Q&A
Discussion options

You must be logged in to vote

If we did generate a Makefile, it would have some requirements:

  • must not use recursive Make
  • must not use pattern rules
  • must not use builtin variables

So we would need to use MAKEFLAGS = --no-builtin-rules --no-builtin-variables (these define slow junk we don't use and don't rely on), and then map the existing ninja build edges as Makefile rules.

But, you'd have a Makefile that is only as good as build.ninja, except slower because ninja is heavily optimized for speed in return for sacrificing all the Makefile features we don't use anyway.

So this leads to the question...

I would much prefer to use Ninja, but sometimes Make is unavoidable.

When is it unavoidable? ninja is pretty portabl…

Replies: 6 comments 4 replies

Comment options

You must be logged in to vote
0 replies
Answer selected by milobanks
Comment options

You must be logged in to vote
0 replies
Comment options

You must be logged in to vote
0 replies
Comment options

You must be logged in to vote
0 replies
Comment options

You must be logged in to vote
2 replies
@milobanks
Comment options

@eli-schwartz
Comment options

Comment options

You must be logged in to vote
2 replies
@milobanks
Comment options

@jhgorse
Comment options

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Category
Q&A
Labels
None yet
5 participants