The behavior of the macros have been changed so that the generated code depends on whether the cargo feature is enabled on the crate invoking the macro, rather than dlib itself. The name of the cargo feature controlling the use of dlopen vs dynamic linking can also be optionally customized on all macro invocations.
This makes it possible to achieve per-library control of the behavior, and remove difficulties involved when dlib is used by multiple crates with different features requirements.
Thanks to @milkey-mouse for the proposal & implementation of this change.