build: automatically determine Jansson support if not specified

If configure is called without --enable-json-validation or
--disable-json-validation, let's automatically choose a value
depending on the availability of the library.
This commit is contained in:
Beniamino Galvani 2017-02-22 17:14:28 +01:00
parent de66e15cc9
commit a1b729fddb
2 changed files with 20 additions and 8 deletions

View File

@ -491,8 +491,11 @@ dflt_cppflags_libnm_core = \
-I$(srcdir)/libnm-core \
-I$(builddir)/libnm-core \
$(CODE_COVERAGE_CFLAGS) \
$(GLIB_CFLAGS) \
$(JANSSON_CFLAGS)
$(GLIB_CFLAGS)
if WITH_JANSSON
dflt_cppflags_libnm_core += $(JANSSON_CFLAGS)
endif
if WITH_GNUTLS
dflt_cppflags_libnm_core += $(GNUTLS_CFLAGS)
@ -551,8 +554,11 @@ nodist_libnm_core_libnm_core_la_SOURCES = \
libnm_core_libnm_core_la_LIBADD = \
$(GLIB_LIBS) \
$(UUID_LIBS) \
$(JANSSON_LIBS)
$(UUID_LIBS)
if WITH_JANSSON
libnm_core_libnm_core_la_LIBADD += $(JANSSON_LIBS)
endif
libnm_core_libnm_core_la_LDFLAGS = \
$(CODE_COVERAGE_LDFLAGS)

View File

@ -547,6 +547,8 @@ PKG_CHECK_MODULES(LIBNL, libnl-3.0 >= 3.2.8)
PKG_CHECK_MODULES(UUID, uuid)
# Teamd control checks
PKG_CHECK_MODULES(JANSSON, [jansson], [have_jansson=yes], [have_jansson=no])
PKG_CHECK_MODULES(LIBTEAMDCTL, [libteamdctl >= 1.9], [have_teamdctl=yes],[have_teamdctl=no])
AC_ARG_ENABLE(teamdctl, AS_HELP_STRING([--enable-teamdctl], [enable Teamd control support]),
[enable_teamdctl=${enableval}], [enable_teamdctl=${have_teamdctl}])
@ -563,14 +565,18 @@ fi
AM_CONDITIONAL(WITH_TEAMDCTL, test "${enable_teamdctl}" = "yes")
# Jansson for team configuration validation
AC_ARG_ENABLE(json-validation, AS_HELP_STRING([--enable-json-validation], [Enable JSON validation in libnm]))
AC_ARG_ENABLE(json-validation, AS_HELP_STRING([--enable-json-validation], [Enable JSON validation in libnm]),
[enable_json_validation=${enableval}],
[enable_json_validation=${have_jansson}])
if (test "${enable_json_validation}" == "no"); then
AC_DEFINE(WITH_JANSSON, 0, [Define if JANSSON is enabled])
else
PKG_CHECK_MODULES(JANSSON, jansson,,
AC_MSG_ERROR([jansson is needed for team configuration validation. Use --disable-json-validation to build without it.]))
if test "$have_jansson" = "no"; then
AC_MSG_ERROR([jansson is needed for team configuration validation. Use --disable-json-validation to build without it.])
fi
AC_DEFINE(WITH_JANSSON, 1, [Define if JANSSON is enabled])
fi
AM_CONDITIONAL(WITH_JANSSON, test "${enable_json_validation}" != "no")
# we usually compile with polkit support. --enable-polkit=yes|no only sets the
# default configuration for main.auth-polkit. User can always enable/disable polkit
@ -1237,6 +1243,6 @@ echo " valgrind: $with_valgrind $with_valgrind_suppressions"
echo " code coverage: $enable_code_coverage"
echo " LTO: $enable_lto"
echo " linker garbage collection: $enable_ld_gc"
echo " JSON validation: $enable_json_validation"
echo " JSON validation for libnm: $enable_json_validation"
echo " sanitizers: $sanitizers"
echo