From a1b729fddbac060c4041d7106b0896087d0a73f6 Mon Sep 17 00:00:00 2001 From: Beniamino Galvani Date: Wed, 22 Feb 2017 17:14:28 +0100 Subject: [PATCH] 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. --- Makefile.am | 14 ++++++++++---- configure.ac | 14 ++++++++++---- 2 files changed, 20 insertions(+), 8 deletions(-) diff --git a/Makefile.am b/Makefile.am index 670fb9d54e..083b7701da 100644 --- a/Makefile.am +++ b/Makefile.am @@ -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) diff --git a/configure.ac b/configure.ac index 25af0beeb2..e8910a6fdf 100644 --- a/configure.ac +++ b/configure.ac @@ -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