summary refs log tree commit diff
path: root/Makefile.am
diff options
context:
space:
mode:
Diffstat (limited to 'Makefile.am')
-rw-r--r--Makefile.am385
1 files changed, 284 insertions, 101 deletions
diff --git a/Makefile.am b/Makefile.am
index 5c49eab4..cda851a0 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -28,6 +28,7 @@ examples_DATA =
 CLEANFILES =
 DISTCLEANFILES =
 EXTRA_DIST =
+EXTRA_LTLIBRARIES =
 dist_hook =
 dist_dependencies =
 dist_configure_check =
@@ -205,6 +206,14 @@ introspection_sources = \
 	introspection/org.freedesktop.NetworkManager.Device.Modem.h \
 	introspection/org.freedesktop.NetworkManager.Device.OlpcMesh.c \
 	introspection/org.freedesktop.NetworkManager.Device.OlpcMesh.h \
+	introspection/org.freedesktop.NetworkManager.Device.OvsInterface.c \
+	introspection/org.freedesktop.NetworkManager.Device.OvsInterface.h \
+	introspection/org.freedesktop.NetworkManager.Device.OvsPort.c \
+	introspection/org.freedesktop.NetworkManager.Device.OvsPort.h \
+	introspection/org.freedesktop.NetworkManager.Device.OvsBridge.c \
+	introspection/org.freedesktop.NetworkManager.Device.OvsBridge.h \
+	introspection/org.freedesktop.NetworkManager.Device.Ppp.c \
+	introspection/org.freedesktop.NetworkManager.Device.Ppp.h \
 	introspection/org.freedesktop.NetworkManager.Device.Statistics.c \
 	introspection/org.freedesktop.NetworkManager.Device.Statistics.h \
 	introspection/org.freedesktop.NetworkManager.Device.Team.c \
@@ -278,6 +287,10 @@ DBUS_INTERFACE_DOCS = \
 	docs/api/dbus-org.freedesktop.NetworkManager.Device.Tun.xml \
 	docs/api/dbus-org.freedesktop.NetworkManager.Device.Bridge.xml \
 	docs/api/dbus-org.freedesktop.NetworkManager.Device.OlpcMesh.xml \
+	docs/api/dbus-org.freedesktop.NetworkManager.Device.OvsInterface.xml \
+	docs/api/dbus-org.freedesktop.NetworkManager.Device.OvsPort.xml \
+	docs/api/dbus-org.freedesktop.NetworkManager.Device.OvsBridge.xml \
+	docs/api/dbus-org.freedesktop.NetworkManager.Device.Ppp.xml \
 	docs/api/dbus-org.freedesktop.NetworkManager.DHCP4Config.xml \
 	docs/api/dbus-org.freedesktop.NetworkManager.Device.Generic.xml \
 	docs/api/dbus-org.freedesktop.NetworkManager.Device.Infiniband.xml \
@@ -325,6 +338,10 @@ dbusinterfaces_DATA = \
 	introspection/org.freedesktop.NetworkManager.Device.Macvlan.xml \
 	introspection/org.freedesktop.NetworkManager.Device.Modem.xml \
 	introspection/org.freedesktop.NetworkManager.Device.OlpcMesh.xml \
+	introspection/org.freedesktop.NetworkManager.Device.OvsInterface.xml \
+	introspection/org.freedesktop.NetworkManager.Device.OvsPort.xml \
+	introspection/org.freedesktop.NetworkManager.Device.OvsBridge.xml \
+	introspection/org.freedesktop.NetworkManager.Device.Ppp.xml \
 	introspection/org.freedesktop.NetworkManager.Device.Statistics.xml \
 	introspection/org.freedesktop.NetworkManager.Device.Team.xml \
 	introspection/org.freedesktop.NetworkManager.Device.Tun.xml \
@@ -388,6 +405,10 @@ libnm_core_lib_h_pub_real = \
 	libnm-core/nm-setting-macsec.h \
 	libnm-core/nm-setting-macvlan.h \
 	libnm-core/nm-setting-olpc-mesh.h \
+	libnm-core/nm-setting-ovs-bridge.h \
+	libnm-core/nm-setting-ovs-interface.h \
+	libnm-core/nm-setting-ovs-patch.h \
+	libnm-core/nm-setting-ovs-port.h \
 	libnm-core/nm-setting-ppp.h \
 	libnm-core/nm-setting-pppoe.h \
 	libnm-core/nm-setting-proxy.h \
@@ -413,9 +434,15 @@ libnm_core_lib_h_pub_real = \
 libnm_core_lib_h_pub_mkenums = \
 	libnm-core/nm-core-enum-types.h
 libnm_core_lib_h_priv = \
+	shared/nm-utils/c-list-util.h \
+	shared/nm-utils/nm-dedup-multi.h \
+	shared/nm-utils/nm-enum-utils.h \
+	shared/nm-utils/nm-hash-utils.h \
 	shared/nm-utils/nm-shared-utils.h \
+	shared/nm-utils/nm-random-utils.h \
 	shared/nm-utils/nm-udev-utils.h \
-	shared/nm-setting-metadata.h \
+	shared/nm-utils/siphash24.h \
+	shared/nm-meta-setting.h \
 	libnm-core/crypto.h \
 	libnm-core/nm-connection-private.h \
 	libnm-core/nm-core-internal.h \
@@ -426,9 +453,15 @@ libnm_core_lib_h_priv = \
 	libnm-core/nm-setting-private.h \
 	libnm-core/nm-utils-private.h
 libnm_core_lib_c_real = \
+	shared/nm-utils/c-list-util.c \
+	shared/nm-utils/nm-dedup-multi.c \
+	shared/nm-utils/nm-enum-utils.c \
+	shared/nm-utils/nm-hash-utils.c \
 	shared/nm-utils/nm-shared-utils.c \
+	shared/nm-utils/nm-random-utils.c \
 	shared/nm-utils/nm-udev-utils.c \
-	shared/nm-setting-metadata.c \
+	shared/nm-utils/siphash24.c \
+	shared/nm-meta-setting.c \
 	libnm-core/crypto.c \
 	libnm-core/nm-connection.c \
 	libnm-core/nm-dbus-utils.c \
@@ -457,6 +490,10 @@ libnm_core_lib_c_real = \
 	libnm-core/nm-setting-macsec.c \
 	libnm-core/nm-setting-macvlan.c \
 	libnm-core/nm-setting-olpc-mesh.c \
+	libnm-core/nm-setting-ovs-bridge.c \
+	libnm-core/nm-setting-ovs-interface.c \
+	libnm-core/nm-setting-ovs-patch.c \
+	libnm-core/nm-setting-ovs-port.c \
 	libnm-core/nm-setting-ppp.c \
 	libnm-core/nm-setting-pppoe.c \
 	libnm-core/nm-setting-proxy.c \
@@ -714,6 +751,10 @@ libnm_lib_h_pub_real = \
 	libnm/nm-device-macvlan.h \
 	libnm/nm-device-modem.h \
 	libnm/nm-device-olpc-mesh.h \
+	libnm/nm-device-ovs-interface.h \
+	libnm/nm-device-ovs-port.h \
+	libnm/nm-device-ovs-bridge.h \
+	libnm/nm-device-ppp.h \
 	libnm/nm-device-team.h \
 	libnm/nm-device-tun.h \
 	libnm/nm-device-vlan.h \
@@ -766,6 +807,10 @@ libnm_lib_c_real = \
 	libnm/nm-device-macvlan.c \
 	libnm/nm-device-modem.c \
 	libnm/nm-device-olpc-mesh.c \
+	libnm/nm-device-ovs-interface.c \
+	libnm/nm-device-ovs-port.c \
+	libnm/nm-device-ovs-bridge.c \
+	libnm/nm-device-ppp.c \
 	libnm/nm-device-team.c \
 	libnm/nm-device-tun.c \
 	libnm/nm-device-vlan.c \
@@ -1073,6 +1118,7 @@ src_cppflags = \
 	-DNMSTATEDIR=\"$(nmstatedir)\" \
 	-DNMLIBDIR=\"$(nmlibdir)\" \
 	\
+	-DDHCPCANON_PATH=\"$(DHCPCANON_PATH)\" \
 	-DDHCLIENT_PATH=\"$(DHCLIENT_PATH)\" \
 	-DDHCPCD_PATH=\"$(DHCPCD_PATH)\" \
 	\
@@ -1110,6 +1156,7 @@ src_libsystemd_nm_la_cppflags = \
 	-I$(builddir)/libnm-core \
 	-I$(srcdir)/src \
 	-I$(srcdir)/src/systemd/sd-adapt \
+	-I$(srcdir)/shared/nm-utils \
 	-I$(srcdir)/src/systemd/src/systemd \
 	-I$(srcdir)/src/systemd/src/basic \
 	-I$(srcdir)/src/systemd/src/shared \
@@ -1127,6 +1174,8 @@ src_libsystemd_nm_la_SOURCES = \
 	src/systemd/nm-sd.h \
 	src/systemd/sd-adapt/nm-sd-adapt.c \
 	src/systemd/sd-adapt/nm-sd-adapt.h \
+	src/systemd/sd-adapt/architecture.h \
+	src/systemd/sd-adapt/btrfs-util.h \
 	src/systemd/sd-adapt/build.h \
 	src/systemd/sd-adapt/cgroup-util.h \
 	src/systemd/sd-adapt/condition.h \
@@ -1136,11 +1185,12 @@ src_libsystemd_nm_la_SOURCES = \
 	src/systemd/sd-adapt/env-util.h \
 	src/systemd/sd-adapt/format-util.h \
 	src/systemd/sd-adapt/gunicode.h \
+	src/systemd/sd-adapt/ioprio.h \
 	src/systemd/sd-adapt/khash.h \
 	src/systemd/sd-adapt/libudev.h \
 	src/systemd/sd-adapt/missing.h \
 	src/systemd/sd-adapt/mkdir.h \
-	src/systemd/sd-adapt/process-util.h \
+	src/systemd/sd-adapt/raw-clone.h \
 	src/systemd/sd-adapt/sd-daemon.h \
 	src/systemd/sd-adapt/stat-util.h \
 	src/systemd/sd-adapt/udev-util.h \
@@ -1186,13 +1236,13 @@ src_libsystemd_nm_la_SOURCES = \
 	src/systemd/src/basic/path-util.h \
 	src/systemd/src/basic/prioq.c \
 	src/systemd/src/basic/prioq.h \
+	src/systemd/src/basic/process-util.c \
+	src/systemd/src/basic/process-util.h \
 	src/systemd/src/basic/random-util.c \
 	src/systemd/src/basic/random-util.h \
 	src/systemd/src/basic/refcnt.h \
 	src/systemd/src/basic/set.h \
 	src/systemd/src/basic/signal-util.h \
-	src/systemd/src/basic/siphash24.c \
-	src/systemd/src/basic/siphash24.h \
 	src/systemd/src/basic/socket-util.c \
 	src/systemd/src/basic/socket-util.h \
 	src/systemd/src/basic/sparse-endian.h \
@@ -1206,7 +1256,6 @@ src_libsystemd_nm_la_SOURCES = \
 	src/systemd/src/basic/time-util.c \
 	src/systemd/src/basic/time-util.h \
 	src/systemd/src/basic/umask-util.h \
-	src/systemd/src/basic/unaligned.h \
 	src/systemd/src/basic/utf8.c \
 	src/systemd/src/basic/utf8.h \
 	src/systemd/src/basic/util.c \
@@ -1267,13 +1316,12 @@ $(src_libsystemd_nm_la_OBJECTS): $(libnm_core_lib_h_pub_mkenums)
 src_libNetworkManagerBase_la_CPPFLAGS = $(src_cppflags)
 
 src_libNetworkManagerBase_la_SOURCES = \
+	\
 	src/nm-core-utils.c \
 	src/nm-core-utils.h \
 	src/nm-logging.c \
 	src/nm-logging.h \
 	\
-	src/nm-multi-index.c \
-	src/nm-multi-index.h \
 	src/NetworkManagerUtils.c \
 	src/NetworkManagerUtils.h \
 	\
@@ -1285,6 +1333,7 @@ src_libNetworkManagerBase_la_SOURCES = \
 	src/platform/nm-platform-utils.h \
 	src/platform/nm-platform.c \
 	src/platform/nm-platform.h \
+	src/platform/nm-platform-private.h \
 	src/platform/nm-linux-platform.c \
 	src/platform/nm-linux-platform.h \
 	src/platform/wifi/wifi-utils-nl80211.c \
@@ -1306,9 +1355,6 @@ src_libNetworkManagerBase_la_SOURCES = \
 	src/nm-ip6-config.c \
 	src/nm-ip6-config.h \
 	\
-	src/nm-route-manager.c \
-	src/nm-route-manager.h \
-	\
 	src/dhcp/nm-dhcp-client.c \
 	src/dhcp/nm-dhcp-client.h \
 	src/dhcp/nm-dhcp-client-logging.h \
@@ -1381,6 +1427,8 @@ src_libNetworkManager_la_SOURCES = \
 	src/devices/nm-device-macsec.h \
 	src/devices/nm-device-macvlan.c \
 	src/devices/nm-device-macvlan.h \
+	src/devices/nm-device-ppp.c \
+	src/devices/nm-device-ppp.h \
 	src/devices/nm-device-tun.c \
 	src/devices/nm-device-tun.h \
 	src/devices/nm-device-veth.c \
@@ -1390,6 +1438,7 @@ src_libNetworkManager_la_SOURCES = \
 	src/devices/nm-device-vxlan.c \
 	src/devices/nm-device-vxlan.h \
 	\
+	src/dhcp/nm-dhcp-dhcpcanon.c \
 	src/dhcp/nm-dhcp-dhclient.c \
 	src/dhcp/nm-dhcp-dhcpcd.c \
 	src/dhcp/nm-dhcp-helper-api.h \
@@ -1419,6 +1468,9 @@ src_libNetworkManager_la_SOURCES = \
 	src/ppp/nm-ppp-manager.h \
 	src/ppp/nm-ppp-status.h \
 	\
+	src/nm-hostname-manager.c \
+	src/nm-hostname-manager.h \
+	\
 	src/settings/nm-agent-manager.c \
 	src/settings/nm-agent-manager.h \
 	src/settings/nm-inotify-helper.c \
@@ -1475,8 +1527,6 @@ src_libNetworkManager_la_SOURCES = \
 	src/nm-dcb.h \
 	src/nm-netns.c \
 	src/nm-netns.h \
-	src/nm-default-route-manager.c \
-	src/nm-default-route-manager.h \
 	src/nm-dhcp4-config.c \
 	src/nm-dhcp4-config.h \
 	src/nm-dhcp6-config.c \
@@ -1566,7 +1616,7 @@ $(src_libNetworkManagerTest_la_OBJECTS): $(libnm_core_lib_h_pub_mkenums)
 ###############################################################################
 
 src/NetworkManager.ver: src/libNetworkManager.la $(core_plugins)
-	$(AM_V_GEN) BINUTILS_NM="$(BINUTILS_NM)" "$(srcdir)/tools/create-exports-NetworkManager.sh" --called-from-make "$(srcdir)"
+	$(AM_V_GEN) NM="$(NM)" "$(srcdir)/tools/create-exports-NetworkManager.sh" --called-from-make "$(srcdir)"
 
 CLEANFILES += src/NetworkManager.ver
 
@@ -1716,12 +1766,12 @@ EXTRA_src_ppp_libnm_ppp_plugin_la_DEPENDENCIES = \
 	src/ppp/nm-ppp-plugin.ver
 
 src_ppp_libnm_ppp_plugin_la_CPPFLAGS = \
-	-I${top_srcdir}/src \
-	-I${top_builddir}/src \
-	-I${top_srcdir}/shared \
-	-I$(top_builddir)/shared \
-	-I${top_builddir}/libnm-core \
-	-I${top_srcdir}/libnm-core \
+	-I$(srcdir)/src \
+	-I$(builddir)/src \
+	-I$(srcdir)/shared \
+	-I$(builddir)/shared \
+	-I$(builddir)/libnm-core \
+	-I$(srcdir)/libnm-core \
 	-DPPPD_PLUGIN_DIR=\"$(PPPD_PLUGIN_DIR)\" \
 	-DG_LOG_DOMAIN=\""NetworkManager"\" \
 	-DNETWORKMANAGER_COMPILATION=NM_NETWORKMANAGER_COMPILATION_INSIDE_DAEMON \
@@ -1729,7 +1779,7 @@ src_ppp_libnm_ppp_plugin_la_CPPFLAGS = \
 
 src_ppp_libnm_ppp_plugin_la_LDFLAGS = \
 	-module -avoid-version \
-	-Wl,--version-script="$(top_srcdir)/src/ppp/nm-ppp-plugin.ver"
+	-Wl,--version-script="$(srcdir)/src/ppp/nm-ppp-plugin.ver"
 
 src_ppp_libnm_ppp_plugin_la_LIBADD = \
 	introspection/libnmdbus.la \
@@ -2119,6 +2169,7 @@ EXTRA_DIST += \
 	src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wifi-wpa-psk-unquoted2 \
 	src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wired-802-1X-subj-matches \
 	src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wired-802-1x-ttls-eapgtc \
+	src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wired-802-1x-password-raw \
 	src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wired-8021x-peap-mschapv2 \
 	src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wired-8021x-tls-agent \
 	src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wired-8021x-tls-always \
@@ -2719,6 +2770,66 @@ check_local += check-local-devices-team
 endif
 
 ###############################################################################
+# src/devices/ovs
+###############################################################################
+
+if WITH_OPENVSWITCH
+
+if HAVE_SYSTEMD
+
+systemdnmunitdir = $(systemdsystemunitdir)/NetworkManager.service.d
+systemdnmunit_DATA = \
+	data/NetworkManager-ovs.conf
+
+endif
+
+core_plugins += src/devices/ovs/libnm-device-plugin-ovs.la
+
+src_devices_ovs_libnm_device_plugin_ovs_la_SOURCES = \
+	src/devices/ovs/nm-ovsdb.c \
+	src/devices/ovs/nm-ovsdb.h \
+	src/devices/ovs/nm-ovs-factory.c \
+	src/devices/ovs/nm-device-ovs-interface.c \
+	src/devices/ovs/nm-device-ovs-interface.h \
+	src/devices/ovs/nm-device-ovs-port.c \
+	src/devices/ovs/nm-device-ovs-port.h \
+	src/devices/ovs/nm-device-ovs-bridge.c \
+	src/devices/ovs/nm-device-ovs-bridge.h
+
+src_devices_ovs_libnm_device_plugin_ovs_la_CPPFLAGS = \
+	-I$(srcdir)/src \
+	-I$(builddir)/src \
+	-I$(srcdir)/shared \
+	-I$(builddir)/shared \
+	-I$(builddir)/libnm-core \
+	-I$(srcdir)/libnm-core \
+	\
+	-DG_LOG_DOMAIN=\""NetworkManager"\" \
+	-DNETWORKMANAGER_COMPILATION=NM_NETWORKMANAGER_COMPILATION_INSIDE_DAEMON \
+	-DRUNSTATEDIR=\"$(runstatedir)\" \
+	\
+	$(JANSSON_CFLAGS) \
+	$(GLIB_CFLAGS)
+
+src_devices_ovs_libnm_device_plugin_ovs_la_LDFLAGS = \
+	-module -avoid-version \
+	-Wl,--version-script="$(srcdir)/linker-script-devices.ver"
+
+src_devices_ovs_libnm_device_plugin_ovs_la_LIBADD = \
+	introspection/libnmdbus.la \
+	$(JANSSON_LIBS) \
+	$(GLIB_LIBS)
+
+check-local-devices-ovs: src/devices/ovs/libnm-device-plugin-ovs.la
+	$(srcdir)/tools/check-exports.sh $(builddir)/src/devices/ovs/.libs/libnm-device-plugin-ovs.so "$(srcdir)/linker-script-devices.ver"
+	$(call check_so_symbols,$(builddir)/src/devices/ovs/.libs/libnm-device-plugin-ovs.so)
+
+endif
+
+EXTRA_DIST += \
+	data/NetworkManager-ovs.conf
+
+###############################################################################
 # src/dnsmasq/tests
 ###############################################################################
 
@@ -2939,8 +3050,6 @@ check_programs += \
 	src/tests/test-general-with-expect \
 	src/tests/test-ip4-config \
 	src/tests/test-ip6-config \
-	src/tests/test-route-manager-linux \
-	src/tests/test-route-manager-fake \
 	src/tests/test-dcb \
 	src/tests/test-systemd \
 	src/tests/test-resolvconf-capture \
@@ -2988,29 +3097,10 @@ $(src_tests_test_general_with_expect_OBJECTS): $(libnm_core_lib_h_pub_mkenums)
 $(src_tests_test_wired_defname_OBJECTS): $(libnm_core_lib_h_pub_mkenums)
 $(src_tests_test_utils_OBJECTS): $(libnm_core_lib_h_pub_mkenums)
 
-src_tests_test_route_manager_ldflags = \
-	$(CODE_COVERAGE_LDFLAGS)
-
-src_tests_test_route_manager_ldadd = \
-	src/libNetworkManagerTest.la \
-	$(GLIB_LIBS) \
-	$(LIBUDEV_LIBS) \
-	$(LIBNL_LIBS)
-
-src_tests_test_route_manager_fake_SOURCES = src/tests/test-route-manager.c
-src_tests_test_route_manager_fake_CPPFLAGS = $(src_tests_cppflags_fake)
-src_tests_test_route_manager_fake_LDFLAGS = $(src_tests_test_route_manager_ldflags)
-src_tests_test_route_manager_fake_LDADD = $(src_tests_test_route_manager_ldadd)
-
-src_tests_test_route_manager_linux_SOURCES = src/tests/test-route-manager.c
-src_tests_test_route_manager_linux_CPPFLAGS = $(src_tests_cppflags_linux)
-src_tests_test_route_manager_linux_LDFLAGS = $(src_tests_test_route_manager_ldflags)
-src_tests_test_route_manager_linux_LDADD = $(src_tests_test_route_manager_ldadd)
-
-$(src_tests_test_route_manager_fake_OBJECTS): $(libnm_core_lib_h_pub_mkenums)
-$(src_tests_test_route_manager_linux_OBJECTS): $(libnm_core_lib_h_pub_mkenums)
-
 src_tests_test_systemd_CPPFLAGS = $(src_libsystemd_nm_la_cppflags)
+src_tests_test_systemd_SOURCES = \
+	shared/nm-utils/siphash24.c \
+	src/tests/test-systemd.c
 src_tests_test_systemd_LDADD = \
 	src/libsystemd-nm.la \
 	$(src_libsystemd_nm_la_libadd)
@@ -3176,6 +3266,127 @@ clients_nm_online_LDADD = \
 $(clients_nm_online_OBJECTS): $(libnm_core_lib_h_pub_mkenums)
 
 ###############################################################################
+# clients/common
+###############################################################################
+
+clients_cppflags = \
+	-I$(srcdir)/shared \
+	-I$(builddir)/shared \
+	-I$(srcdir)/libnm-core \
+	-I$(builddir)/libnm-core \
+	-I$(srcdir)/libnm \
+	-I$(builddir)/libnm \
+	-I$(srcdir)/clients/common \
+	-I$(builddir)/clients/common \
+	$(GLIB_CFLAGS) \
+	-DNMLOCALEDIR=\"$(datadir)/locale\"
+
+check_ltlibraries += clients/common/libnmc-base.la
+
+clients_common_libnmc_base_la_SOURCES = \
+	shared/nm-utils/nm-enum-utils.c \
+	shared/nm-utils/nm-enum-utils.h \
+	shared/nm-utils/nm-hash-utils.c \
+	shared/nm-utils/nm-hash-utils.h \
+	shared/nm-utils/nm-random-utils.c \
+	shared/nm-utils/nm-random-utils.h \
+	shared/nm-utils/nm-shared-utils.c \
+	shared/nm-utils/nm-shared-utils.h \
+	shared/nm-utils/siphash24.c \
+	shared/nm-utils/siphash24.h \
+	\
+	clients/common/nm-secret-agent-simple.c \
+	clients/common/nm-secret-agent-simple.h \
+	clients/common/nm-vpn-helpers.c \
+	clients/common/nm-vpn-helpers.h \
+	clients/common/nm-client-utils.c \
+	clients/common/nm-client-utils.h
+
+clients_common_libnmc_base_la_CPPFLAGS = \
+	$(clients_cppflags) \
+	-DG_LOG_DOMAIN=\""libnmc"\"
+
+clients_common_libnmc_base_la_LIBADD = \
+	libnm/libnm.la \
+	$(GLIB_LIBS)
+
+$(clients_common_libnmc_base_la_OBJECTS): $(libnm_core_lib_h_pub_mkenums)
+$(clients_common_libnmc_base_la_OBJECTS): clients/common/.dirstamp
+
+clients_common_settings_doc_c = clients/common/settings-docs.c
+if HAVE_INTROSPECTION
+$(clients_common_settings_doc_c): clients/common/settings-docs.xsl libnm/nm-property-docs.xml clients/common/.dirstamp
+	$(AM_V_GEN) $(XSLTPROC) --output $@ $< $(word 2,$^)
+DISTCLEANFILES += $(clients_common_settings_doc_c)
+check-local-settings-docs: $(clients_common_settings_doc_c)
+	@if test -z "$$NMTST_NO_CHECK_SETTINGS_DOCS" ; then  \
+		if ! cmp -s "$(srcdir)/$(clients_common_settings_doc_c).in" "$(builddir)/$(clients_common_settings_doc_c)" ; then \
+			echo "The generated file \"$(builddir)/$(clients_common_settings_doc_c)\" differs from the source file \"$(srcdir)/$(clients_common_settings_doc_c).in\". You probably should copy the generated file over to the source file. You can skip this test by setting \$$NMTST_NO_CHECK_SETTINGS_DOCS=yes"; \
+			false; \
+		fi;\
+	fi
+check_local += check-local-settings-docs
+else
+$(clients_common_settings_doc_c): $(clients_common_settings_doc_c).in clients/common/.dirstamp
+	$(AM_V_GEN) cp "$(srcdir)/$(clients_common_settings_doc_c).in" "$(builddir)/$(clients_common_settings_doc_c)"
+check-local-settings-docs:
+endif
+EXTRA_DIST += \
+	$(clients_common_settings_doc_c) \
+	$(clients_common_settings_doc_c).in
+
+
+if HAVE_INTROSPECTION
+check_ltlibraries += clients/common/libnmc.la
+else
+EXTRA_LTLIBRARIES += clients/common/libnmc.la
+endif
+
+clients_common_libnmc_la_SOURCES = \
+	shared/nm-meta-setting.c \
+	shared/nm-meta-setting.h \
+	\
+	clients/common/nm-meta-setting-desc.c \
+	clients/common/nm-meta-setting-desc.h \
+	clients/common/nm-meta-setting-access.c \
+	clients/common/nm-meta-setting-access.h \
+	$(NULL)
+
+clients_common_libnmc_la_CPPFLAGS = \
+	$(clients_cppflags) \
+	-DG_LOG_DOMAIN=\""libnmc"\"
+
+clients_common_libnmc_la_LIBADD = \
+	libnm/libnm.la \
+	clients/common/libnmc-base.la \
+	$(GLIB_LIBS)
+
+$(clients_common_libnmc_la_OBJECTS): $(libnm_core_lib_h_pub_mkenums)
+$(clients_common_libnmc_la_OBJECTS): $(clients_common_settings_doc_c)
+$(clients_common_libnmc_la_OBJECTS): clients/common/.dirstamp
+
+if HAVE_INTROSPECTION
+check_programs += clients/common/tests/test-general
+else
+if BUILD_NMCLI
+check_programs += clients/common/tests/test-general
+endif
+endif
+
+clients_common_tests_test_general_CPPFLAGS = \
+	-I$(srcdir)/clients/common/tests \
+	$(clients_cppflags) \
+	-DG_LOG_DOMAIN=\""libnmc"\"
+
+clients_common_tests_test_general_LDADD = \
+	libnm/libnm.la \
+	clients/common/libnmc-base.la \
+	clients/common/libnmc.la \
+	$(GLIB_LIBS)
+
+$(clients_common_tests_test_general_OBJECTS): $(libnm_core_lib_h_pub_mkenums)
+
+###############################################################################
 # clients/cli
 ###############################################################################
 
@@ -3184,50 +3395,38 @@ if BUILD_NMCLI
 bin_PROGRAMS += clients/cli/nmcli
 
 clients_cli_nmcli_SOURCES = \
-	\
-	clients/cli/agent.c \
-	clients/cli/agent.h \
 	clients/cli/common.c \
 	clients/cli/common.h \
+	clients/cli/utils.c \
+	clients/cli/utils.h \
+	clients/cli/agent.c \
+	clients/cli/agent.h \
+	clients/cli/general.c \
+	clients/cli/general.h \
 	clients/cli/connections.c \
 	clients/cli/connections.h \
 	clients/cli/devices.c \
 	clients/cli/devices.h \
-	clients/cli/general.c \
-	clients/cli/general.h \
 	clients/cli/settings.c \
 	clients/cli/settings.h \
 	clients/cli/nmcli.c \
 	clients/cli/nmcli.h \
-	clients/cli/utils.c \
-	clients/cli/utils.h \
 	clients/cli/polkit-agent.c \
 	clients/cli/polkit-agent.h \
-	\
-	clients/common/nm-secret-agent-simple.c \
-	clients/common/nm-secret-agent-simple.h \
-	clients/common/nm-vpn-helpers.c \
-	clients/common/nm-vpn-helpers.h \
 	$(NULL)
 
 clients_cli_nmcli_CPPFLAGS = \
-	-I$(srcdir)/shared \
-	-I$(builddir)/shared \
-	-I$(srcdir)/libnm-core \
-	-I$(builddir)/libnm-core \
-	-I$(srcdir)/libnm \
-	-I$(builddir)/libnm \
 	-I$(srcdir)/clients/cli \
-	-I$(builddir)/clients/cli \
-	-I$(srcdir)/clients/common \
-	$(GLIB_CFLAGS) \
+	$(clients_cppflags) \
 	-DG_LOG_DOMAIN=\""nmcli"\" \
 	-DNMCLI_LOCALEDIR=\"$(datadir)/locale\"
 
 clients_cli_nmcli_LDADD = \
+	libnm/libnm.la \
+	clients/common/libnmc-base.la \
+	clients/common/libnmc.la \
 	$(GLIB_LIBS) \
-	$(READLINE_LIBS) \
-	libnm/libnm.la
+	$(READLINE_LIBS)
 
 if WITH_POLKIT_AGENT
 clients_cli_nmcli_CPPFLAGS += $(POLKIT_CFLAGS)
@@ -3240,8 +3439,7 @@ endif
 clients_cli_nmcli_LDFLAGS = \
 	-Wl,--version-script="$(srcdir)/linker-script-binary.ver"
 
-$(clients_cli_nmcli_OBJECTS): $(clients_cli_settings_doc_c)
-$(clients_cli_nmcli_OBJECTS): clients/cli/.dirstamp
+$(clients_cli_nmcli_OBJECTS): $(libnm_core_lib_h_pub_mkenums)
 
 install-data-hook-nmcli:
 	$(mkinstalldirs) $(DESTDIR)$(completiondir)
@@ -3256,25 +3454,9 @@ uninstall_hook += uninstall-hook-nmcli
 
 endif
 
-
-clients_cli_settings_doc_c = clients/cli/settings-docs.c
-if HAVE_INTROSPECTION
-$(clients_cli_settings_doc_c): clients/cli/settings-docs.xsl libnm/nm-property-docs.xml
-	$(AM_V_GEN) $(XSLTPROC) --output $@ $< $(word 2,$^)
-$(clients_cli_settings_doc_c): clients/cli/.dirstamp
-DISTCLEANFILES += $(clients_cli_settings_doc_c)
-else
-$(clients_cli_settings_doc_c):
-	@echo "to generate $(clients_cli_settings_doc_c), configure with --enable-introspection"
-	@echo "alternatively, build --without-nmcli"
-	@false
-endif
-EXTRA_DIST += $(clients_cli_settings_doc_c)
-
-
 EXTRA_DIST += \
 	clients/cli/nmcli-completion \
-	clients/cli/settings-docs.xsl
+	clients/common/settings-docs.xsl
 
 ###############################################################################
 # clients/tui
@@ -3424,26 +3606,14 @@ clients_tui_nmtui_SOURCES = \
 	clients/tui/nmt-utils.h \
 	clients/tui/nmt-widget-list.c \
 	clients/tui/nmt-widget-list.h \
-	clients/common/nm-secret-agent-simple.c \
-	clients/common/nm-secret-agent-simple.h \
-	clients/common/nm-vpn-helpers.c \
-	clients/common/nm-vpn-helpers.h \
 	$(NULL)
 
 clients_tui_nmtui_CPPFLAGS = \
-	-I$(srcdir)/shared \
-	-I$(builddir)/shared \
-	-I$(srcdir)/libnm-core \
-	-I$(builddir)/libnm-core \
-	-I$(srcdir)/libnm \
-	-I$(builddir)/libnm \
 	-I$(srcdir)/clients/tui/newt \
-	-I$(srcdir)/clients/common \
-	$(GLIB_CFLAGS) \
+	$(clients_cppflags) \
 	$(NEWT_CFLAGS) \
 	-DG_LOG_DOMAIN=\""nmtui"\" \
-	-DLOCALEDIR=\""$(localedir)"\" \
-	$(NULL)
+	-DLOCALEDIR=\""$(localedir)"\"
 
 clients_tui_nmtui_LDFLAGS = \
 	-Wl,--version-script="$(srcdir)/linker-script-binary.ver"
@@ -3451,6 +3621,7 @@ clients_tui_nmtui_LDFLAGS = \
 clients_tui_nmtui_LDADD = \
 	libnm/libnm.la \
 	clients/tui/newt/libnmt-newt.a \
+	clients/common/libnmc-base.la \
 	$(GLIB_LIBS) \
 	$(NEWT_LIBS) \
 	$(NULL)
@@ -4208,6 +4379,13 @@ man_pages_autogen += \
 	man/nm-settings-keyfile.5 \
 	man/nm-settings.5
 
+if WITH_OPENVSWITCH
+man_pages += man/nm-openvswitch.7
+else
+EXTRA_DIST += man/nm-openvswitch.7
+dist_dependencies += man/nm-openvswitch.7
+endif
+
 if CONFIG_PLUGIN_IFCFG_RH
 man_pages_autogen += man/nm-settings-ifcfg-rh.5
 else
@@ -4353,8 +4531,12 @@ EXTRA_DIST += \
 	shared/nm-dispatcher-api.h \
 	shared/nm-test-libnm-utils.h \
 	shared/nm-test-utils-impl.c \
+	shared/nm-utils/c-list.h \
+	shared/nm-utils/c-list-util.c \
+	shared/nm-utils/c-list-util.h \
 	shared/nm-utils/gsystem-local-alloc.h \
 	shared/nm-utils/nm-glib.h \
+	shared/nm-utils/nm-obj.h \
 	shared/nm-utils/nm-macros-internal.h \
 	shared/nm-utils/nm-shared-utils.c \
 	shared/nm-utils/nm-shared-utils.h \
@@ -4422,5 +4604,6 @@ cscope:
 
 ###############################################################################
 
+.PRECIOUS: test-suite.log
 .DELETE_ON_ERROR:
 .PHONY: cscope dist-configure-check $(check_local) $(dist_hook)