On Wed, 1 Nov 2023 at 13:58, Paul D. Smith <invalid.nore...@gnu.org> wrote:

> GNU Make is used by so many people for so many things, and I'm leery of
> creating some new facility that ends up being "not really right" for what
> people want to do, but that then must be maintained forever going forward.
>

It seems to me to be an understandable problem where people very much wish
to add things that suit them but the project cannot because of the implied
support and the fact that they might not turn out to be desirable in the
long run but still have to be supported forever.

Perhaps make could do with some sort of plugin mechanism?  I know it has
the load keyword within makefiles but I'm not sure if functions have access
to enough global state to e.g. print out a list of targets.  One might want
other entry points like "after parsing" or "before reading a makefiule" or
"after updating a target" where one's plugin functions might be called.
Then you could get a list of updated targets or perform some special action
to compress and transmit them without waiting for the build to finish or
any number of wonderful possibilities.

One might want to have a way to "add a commandline option" where one might
supply a flag to activate the plugin.

Ideally make would end up with some sort of repository for
unsupported/unofficial modules/plugins and in the distant future there
might be a way to automatically fetch them.  This way you could take a
decision later about how popular/useful some feature was and decide to
include it in the standard release.  The available entrypoints and
"blessed" global variables or inputs would be an api with version numbering
that would ensure one could make changes and know when your plugin needed
chaning to accomodate them and when those changes were non-breaking.

I am sure the idea and implications are completely obvious - I'm just
trying to suggest that there has to be a way out of the impasse.

Regards,

Timothy N Murphy

Reply via email to