Or even worse, it is used as a dependency in a script, or it is a library linked by another program, but the author can never trust that any given installation has the feature he actually needs.
It is a mess. Just don't do it.
Or even worse, it is used as a dependency in a script, or it is a library linked by another program, but the author can never trust that any given installation has the feature he actually needs.
It is a mess. Just don't do it.
If it existed, it would be a nightmare, because features are recursive, and you would end up with fragile monstrosities like
foo[+bar[+baz[+qux],+quux]]
of course, each variable having version numbers and all¹ https://devmanual.gentoo.org/general-concepts/dependencies/i...
² https://setuptools.readthedocs.io/en/latest/userguide/depend...
* https://guide.macports.org/chunked/reference.variants.html
* https://guide.macports.org/chunked/using.variants.html
The default / most common variants have pre-built binaries that are downloaded via a port install, but if you specify something more 'obscure', things are built from source.
FreeBSD's Ports also allow for options:
* https://docs.freebsd.org/en/books/porters-handbook/#makefile...
Build-time and run-time dependencies are both handled.
By the way another thing I've come to hate is configure or make scripts which download stuff. This is really annoying if you want to build self-contained packages. Or if the downloaded material ends up being not available, or if you're not always connected to the internet.
That's the "glass half empty" pov.
The "half glass full" pov is that anyone can still use their favourite piece of software even if an obscure and/or useless library is not available to them.