Hacker News new | past | comments | ask | show | jobs | submit login

Make is a much of a build system as C++ as you can call stat() and system() from it.

A modern build system by default should be able to provide utilities to make sure your build is correct and reproducible. Those features need to be coded into your Makefile and aren't available easily or by default.

If you need to code those rules, then you don't have a build system, just a way to run commands and possibly add some (usually poor) logic around them.

A typical example that most handcrafted Makefiles will fail is that changing a build flag should only rebuild the files affected. Most will either require a full clean (aka ignoring the flag change) or rebuild everything.




> A typical example that most handcrafted Makefiles will fail is that changing a build flag should only rebuild the files affected.

If you change a build flag, how aren't all the files affected?


I've noticed a plethora of build options over the past decades. I keep hearing how they are all "better" than make.

Then to build one particular bit of software, there is a dependency upon a particular version of cmake, which you don't have.

Or you have to upgrade Maven. Or install some software you do not have by default on your environment.

I've never had to do that with make.

I've been told that other tools are better because the are simpler ... that is ... until you run into one of those aforementioned compatibility issues with the build tool.

This isn't an infrequent occurrence for me, I see lots of hardwiring for various packages that I don't have installed by default in some projects.

Then you get the gophers/rust folk, and their need to run on the most recently released kit. With all its undiscovered bugs. The gophers want to replace make with mage ... well, to be more correct, they want to replace every non-go based tool with one built in go, because ... go. A modern version of the insufferable pythonistas of years past.

Throughout this, I've been using and building with Make just fine. My make files do the heavy lifting in my projects. And I get a good laugh each time I hear "oh I have to fix my magefile/CMakeFile.txt/yadda yadda yadda".

As the great philosopher Inigo Montoya once opined ... you keep using that word [better]. I do not think it means what you think it means.




Join us for AI Startup School this June 16-17 in San Francisco!

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: