If you're going to use Makefiles as a top-level build wrapper you might be interested in self-documenting targets. https://marmelab.com/blog/2016/02/29/auto-documented-makefil...
How I stopped worrying and loved Makefiles
21–30 of 144 posts
Re: How I stopped worrying and loved Makefiles
#22I much prefer Make to alternatives like Just or Taskfile. Besides the fact that more people know Make, Make actually has incredibly useful functionality that alternatives remove 'for simplicity', but then later you realize you want that functionality and go back to Make. Sometimes old tricks are the best tricks.
Re: How I stopped worrying and loved Makefiles
#23I use makefiles a lot as make-do but I must admit the syntax does my head in at times. If anyone has a good resource that teaches makefile progressively, I'd be interested. The main issue I have is that it goes from dead simple to pit of what the hell is happening with various things interacting with each others.
Re: How I stopped worrying and loved Makefiles
#24If you're going to use Makefiles as a top-level build wrapper you might be interested in self-documenting targets. https://marmelab.com/blog/2016/02/29/auto-documented-makefil...
Re: How I stopped worrying and loved Makefiles
#25Earlier quoted context omitted.
> I feel that there is a niche between make and ninja for the task runner. I think that's called CMake.
No, CMake is a compatibility layer on top of existing task runners like make and ninja. I don't want a compatibility layer, and also CMake has even more features than make.
The other options are here: https://github.com/ninja-build/ninja/wiki/List-of-generators...
Re: How I stopped worrying and loved Makefiles
#26Ninja is simple and fast, but intentionally limited in order to not be programmable. Make is powerful and versatile (especially the GNU variant) but has an arcane syntax and lots of pitfalls. I feel that there is a niche between make and ninja for the task runner.
> I feel that there is a niche between make and ninja for the task runner. I think that's called CMake.
Re: How I stopped worrying and loved Makefiles
#27Re: How I stopped worrying and loved Makefiles
#28Earlier quoted context omitted.
No, CMake is a compatibility layer on top of existing task runners like make and ninja. I don't want a compatibility layer, and also CMake has even more features than make.
CMake is a (not the ) correct answer according to the Ninja manual[1]. "Some explicit non-goals: convenient syntax for writing build files by hand. You should generate your ninja files using another program. This is how we can sidestep many policy decisions." The other options are here: https://github.com/ninja-build/ninja/wiki/List-of-generators... [1] https://ninja-build.org/manual.html#_design_goals
Re: How I stopped worrying and loved Makefiles
#29Earlier quoted context omitted.
> I feel that there is a niche between make and ninja for the task runner. I think that's called CMake.
CMake is a very cool buildsystem that can do a lot, you can use it to run tests, fetch sources, and everything else. The documentation is the only thing that I find quite suboptimal, they could really add examples in there and better explain things. Or at least have list of projects that they believe are using CMake correctly so one can have some guidance. It took me five years before I was comfortable writing CMake…
Re: How I stopped worrying and loved Makefiles
#30I use makefiles a lot as make-do but I must admit the syntax does my head in at times. If anyone has a good resource that teaches makefile progressively, I'd be interested. The main issue I have is that it goes from dead simple to pit of what the hell is happening with various things interacting with each others.