News for hackers. Stuff that matters.
Re:How to Structure C Projects: These Best Practices Worked ... by Arch-TK on Saturday March 09, 2024 @06:49PM (#39655576)
>Line 2 and 3 for example make it impossible to override certain behavior you’ve set.

This is intentional.

It's not possible (unfortunately) to allow users to simultaneously be able to override a variable OR add to a variable in make. In the case of the FLAGS variables I usually prefer to append to allow users to add to the variables. As a compromise, in my own makefiles I explicitly ensure that these variables _only_ contain flags which are mandatory for the project to build correctly. In this case this was deviated from (with the warning flags, -fsanitize=address, -ggdb) because of the request of the project author.

Would you rather an end user be able to quickly add LDFLAGS and CXXFLAGS or rather have the end-user have to copy the entire list of flags out of the makefile just so they can add one?

I would say it's more common for someone to want to add a flag than to replace all the mandatory ones. If someone is using a sufficiently different compiler such that those flags are no longer relevant, they would likely need to modify the rest of the makefile.

>I refer to this authoritative sounding comment while you miss out on the very basics like that.

It's uncharitable to assume that just because you don't understand a decision someone made in something they wrote, that they must be ignorant about the tool they are using.

There are no comments on this comment yet.