gregschmit / omake

An extra implementation of make.
MIT License
17 stars 1 forks source link

Add a system to select features or sets of features #13

Closed xadaemon closed 1 year ago

xadaemon commented 1 year ago

I see a possible need for this to allow us to easily switch between gnu and bsd make modes, by i.e: --make-mode=bsd or --make-mode=gnu .

And for any improvements we make that might cause issues in edge cases: --omake-fallback=list,of,features where any feature passed here could fallback to an impl that more closely translates make 1:1.

This is just an idea.

gregschmit commented 1 year ago

While I find it somewhat likely that we will eventually hit a case where we need to do something like this, it's not totally obvious to me because I cannot find command line options that are conflicts and control-flow statements (GNU ifeq/ifdef vs BSD .if/.ifdef`) are easily distinguished because BSD flavors use a leading period. Because of this, I would prefer to just postpone this until we get a concrete example that we cannot workaround somehow.

As for improvements we might make or features we might add, they probably would be enabled either with special dot macros (just like .RECIPEPREFIX), or special long-form arguments.

Please feel free to open another issue if we hit a concrete example.