NetworkManager/src/tests/Makefile.am
Thomas Haller e0ca2bdb63 build: extract version macros from "nm-version.h" to new header file "nm-version-macros.h"
For libnm library, "nm-dbus-interface.h" contains defines like the D-Bus
paths of NetworkManager. It is desirable to have this header usable without
having a dependency on "glib.h", for example for a QT application. For that,
commit c0852964a8 removed that dependancy.

For libnm-glib library, the analog to "nm-dbus-interface.h" is
"NetworkManager.h", and the same applies there. Commit
159e827a72 removed that include.
However, that broke build on PackageKit [1] which expected to get the
version macros by including "NetworkManager.h". So at least for libnm-glib,
we need to preserve old behavior so that a user including
"NetworkManager.h" gets the version macros, but not "glib.h".

Extract the version macros to a new header file "nm-version-macros.h".
This header doesn't include "glib.h" and can be included from
"NetworkManager.h". This gives as previous behavior and a glib-free
include.

For libnm we still don't include "nm-version-macros.h" to "nm-dbus-interface.h".
Very few users will actually need the version macros, but not using
libnm.
Users that use libnm, should just include (libnm's) "NetworkManager.h" to
get all headers.
As a special case, a user who doesn't want to use glib/libnm, but still
needs both "nm-dbus-interface.h" and "nm-version-macros.h", can include
them both separately.

[1] https://github.com/hughsie/PackageKit/issues/85

Fixes: 4545a7fe96
(cherry picked from commit 7bf10a75db)
2015-09-30 23:35:52 +02:00

147 lines
3.3 KiB
Makefile

SUBDIRS = config
AM_CPPFLAGS = \
-I$(top_srcdir)/include \
-I$(top_builddir)/include \
-I$(top_srcdir)/libnm-core \
-I$(top_builddir)/libnm-core \
-I$(top_srcdir)/src/platform \
-I$(top_srcdir)/src/dhcp-manager \
-I$(top_srcdir)/src/devices \
-I$(top_srcdir)/src \
-I$(top_builddir)/src \
-DG_LOG_DOMAIN=\""NetworkManager"\" \
-DNETWORKMANAGER_COMPILATION \
-DNM_VERSION_MAX_ALLOWED=NM_VERSION_NEXT_STABLE \
$(GLIB_CFLAGS) \
$(DBUS_CFLAGS)
noinst_PROGRAMS = \
test-general \
test-general-with-expect \
test-ip4-config \
test-ip6-config \
test-route-manager-linux \
test-route-manager-fake \
test-dcb \
test-resolvconf-capture \
test-wired-defname
####### ip4 config test #######
test_ip4_config_SOURCES = \
test-ip4-config.c
test_ip4_config_LDADD = \
$(top_builddir)/src/libNetworkManager.la
####### ip6 config test #######
test_ip6_config_SOURCES = \
test-ip6-config.c
test_ip6_config_LDADD = \
$(top_builddir)/src/libNetworkManager.la
####### route manager test #######
test_route_manager_fake_CPPFLAGS = \
$(AM_CPPFLAGS) \
-I$(top_srcdir)/src/platform/tests \
-DSETUP=nm_fake_platform_setup \
-DKERNEL_HACKS=0
test_route_manager_fake_SOURCES = \
$(top_srcdir)/src/platform/tests/test-common.c \
test-route-manager.c
test_route_manager_fake_LDADD = \
$(top_builddir)/src/libNetworkManager.la
test_route_manager_linux_SOURCES = \
$(top_srcdir)/src/platform/tests/test-common.c \
test-route-manager.c
test_route_manager_linux_CPPFLAGS = \
$(AM_CPPFLAGS) \
-I$(top_srcdir)/src/platform/tests \
-DSETUP=nm_linux_platform_setup \
-DKERNEL_HACKS=1
test_route_manager_linux_LDADD = \
$(top_builddir)/src/libNetworkManager.la
####### DCB test #######
test_dcb_SOURCES = \
test-dcb.c
test_dcb_LDADD = \
$(top_builddir)/src/libNetworkManager.la
####### resolv.conf capture test #######
test_resolvconf_capture_SOURCES = \
test-resolvconf-capture.c
test_resolvconf_capture_LDADD = \
$(top_builddir)/src/libNetworkManager.la
####### general test #######
test_general_SOURCES = \
test-general.c
test_general_LDADD = \
$(top_builddir)/src/libNetworkManager.la
####### general-with-expect test #######
test_general_with_expect_SOURCES = \
test-general-with-expect.c
test_general_with_expect_LDADD = \
$(top_builddir)/src/libNetworkManager.la
####### wired defname test #######
test_wired_defname_SOURCES = \
test-wired-defname.c
test_wired_defname_LDADD = \
$(top_builddir)/src/libNetworkManager.la
####### secret agent interface test #######
EXTRA_DIST = test-secret-agent.py
###########################################
@VALGRIND_RULES@
TESTS = \
test-ip4-config \
test-ip6-config \
test-route-manager-fake \
test-route-manager-linux \
test-dcb \
test-resolvconf-capture \
test-general \
test-general-with-expect \
test-wired-defname
if ENABLE_TESTS
check-local:
@for t in bond bridge ethernet gre infiniband macvlan tun veth vlan vxlan; do \
# Ensure the device subclass factory registration constructors exist \
# which could inadvertently break if src/Makefile.am gets changed \
if ! LC_ALL=C nm $(top_builddir)/src/NetworkManager | LC_ALL=C grep -q "register_device_factory_internal_$$t" ; then \
echo "Testing device factory symbols... FAILED" ; \
exit 1 ; \
fi \
done
@echo "Testing device factory symbols... PASSED"
endif