36 lines
1.4 KiB
Text
36 lines
1.4 KiB
Text
# KNOT_MODULE([module-name], [default], [non-shareable])
|
|
# ------------------------------------------------------
|
|
# Set Knot DNS module building
|
|
|
|
AC_DEFUN([KNOT_MODULE],
|
|
[
|
|
AC_ARG_WITH([module-$1],
|
|
AS_HELP_STRING([--with-module-$1=yes|shared|no], [Build '$1' module [default=$2]]),
|
|
[module=$withval],
|
|
AS_IF([test "$enable_modules" = "no"],
|
|
[module=no],
|
|
[module=$2]
|
|
)
|
|
)
|
|
|
|
doc_modules="${doc_modules}.. include:: modules/$1/$1.rst\n"
|
|
|
|
STATIC_MODULE_$1=no
|
|
SHARED_MODULE_$1=no
|
|
AS_CASE([$module],
|
|
[yes], [STATIC_MODULE_$1=yes
|
|
static_modules="${static_modules}$1 "
|
|
static_modules_declars="${static_modules_declars}extern const knotd_mod_api_t knotd_mod_api_$1;\n"
|
|
static_modules_init="${static_modules_init}\\\\\n\t{ &knotd_mod_api_$1 },"],
|
|
[shared], [SHARED_MODULE_$1=yes
|
|
shared_modules="${shared_modules}$1 "
|
|
AS_IF([test "$3" = "non-shareable"],
|
|
[AC_MSG_ERROR([Module $1 cannot be shared])])
|
|
AS_IF([test "$enable_shared" != "yes"],
|
|
[AC_MSG_ERROR([Shared module $1 requires shared libraries])])],
|
|
[no], [],
|
|
[*], [AC_MSG_ERROR([Invalid value '$module' for --with-module-$1])]
|
|
)
|
|
AM_CONDITIONAL([STATIC_MODULE_$1], [test "$STATIC_MODULE_$1" = "yes"])
|
|
AM_CONDITIONAL([SHARED_MODULE_$1], [test "$SHARED_MODULE_$1" = "yes"])
|
|
])
|