BIND 9 plugins are installed using Automake's pkglib_LTLIBRARIES stanza,
which causes the relevant shared objects to be placed in the
$(libdir)/@PACKAGE@/ directory, where @PACKAGE@ is expanded to the
lowercase form of the first argument passed to AC_INIT(), i.e. "bind".
Meanwhile, NAMED_PLUGINDIR - the preprocessor macro that the
ns_plugin_expandpath() function uses for determining the absolute path
to a plugin for which only a filename has been provided (rather than a
path) - is set to $(libdir)/named. This discrepancy breaks loading
plugins using just their filenames. Fix the issue (and also prevent it
from reoccurring) by setting NAMED_PLUGINDIR to $(pkglibdir).
AM_CPPFLAGS += \
$(CMOCKA_CFLAGS) \
- -DNAMED_PLUGINDIR=\"$(libdir)/named\" \
+ -DNAMED_PLUGINDIR=\"$(pkglibdir)\" \
-DSKIPPED_TEST_EXIT_CODE=77 \
-DTESTS_DIR=\"$(abs_srcdir)\"
include $(top_srcdir)/Makefile.top
AM_CPPFLAGS += \
- -DNAMED_PLUGINDIR=\"$(libdir)/named\"
+ -DNAMED_PLUGINDIR=\"$(pkglibdir)\"
lib_LTLIBRARIES = libns.la