Makefile.am 188 KB
Newer Older
1
include $(GLIB_MAKEFILE)
2
-include $(INTROSPECTION_MAKEFILE)
3
include Makefile.vapigen
4

5 6
@GNOME_CODE_COVERAGE_RULES@

7 8
@NM_LOG_COMPILER@

9 10
###############################################################################

11 12
AUTOMAKE_OPTIONS = subdir-objects

13
noinst_LTLIBRARIES =
14
check_LTLIBRARIES =
15
noinst_PROGRAMS =
16
noinst_LIBRARIES =
17
check_PROGRAMS =
18
noinst_DATA =
19
sbin_PROGRAMS =
20
bin_PROGRAMS =
21
libexec_PROGRAMS =
22
dist_libexec_SCRIPTS =
23
lib_LTLIBRARIES =
24
plugin_LTLIBRARIES =
25
core_plugins =
26
service_DATA =
27
man_MANS =
28
examples_DATA =
29
CLEANFILES =
30
DISTCLEANFILES =
31
EXTRA_DIST =
32
EXTRA_LTLIBRARIES =
33
dist_hook =
34 35
dist_dependencies =
dist_configure_check =
36
install_data_hook =
37
install_exec_hook =
38
uninstall_hook =
39
TESTS =
40
BUILT_SOURCES =
41
GLIB_GENERATED =
42 43
man_pages =
man_pages_autogen =
44
check_programs =
45
check_programs_norun =
46
check_ltlibraries =
47
check_local =
48
VAPIGEN_VAPIS =
49
dbusservice_DATA =
50
dbusactivation_DATA =
51 52 53 54 55 56

INTROSPECTION_GIRS =
INTROSPECTION_SCANNER_ARGS =
INTROSPECTION_COMPILER_ARGS =
# Pass SANITIZER_ENV where a command that uses built libraries is
# executed, to suppress possible errors
57
INTROSPECTION_SCANNER_ENV = $(SANITIZER_ENV) LDFLAGS="$(SANITIZER_LIB_LDFLAGS)"
58 59 60

libnmincludedir = $(includedir)/libnm
libnminclude_HEADERS =
61
nodist_libnminclude_HEADERS =
62 63 64

pkgconfigdir = $(libdir)/pkgconfig
pkgconfig_DATA =
65

66 67 68
pppd_plugindir = $(PPPD_PLUGIN_DIR)
pppd_plugin_LTLIBRARIES =

69 70 71
vapidir = $(datadir)/vala/vapi
vapi_DATA =

72 73
examplesdir = $(docdir)/examples

74 75 76
rundir=$(runstatedir)/NetworkManager
statedir=$(localstatedir)/lib/NetworkManager

77 78
plugindir=$(pkglibdir)/$(NM_DIST_VERSION)

79 80
dbusactivationdir = $(datadir)/dbus-1/system-services

81 82
servicedir = $(datadir)/dbus-1/system-services

83 84
completiondir = $(datadir)/bash-completion/completions

85 86
nmlocaledir = $(datadir)/locale

87 88 89
GLIB_MKENUMS_H_FLAGS = --identifier-prefix NM
GLIB_MKENUMS_C_FLAGS = --identifier-prefix NM

90
SUBDIRS = \
91
	. \
92 93
	po

94
if HAVE_DOCS
95 96

SUBDIRS += \
97 98 99 100 101 102 103 104 105
	docs/libnm \
	docs/api

if WITH_LEGACY_LIBRARIES
SUBDIRS += \
	docs/libnm-util \
	docs/libnm-glib
endif

106 107
endif

108 109
dflt_cppflags = -std=gnu99

110 111
###############################################################################

112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145
# with autotools, it is not easily possible to generate these defines
# from configure.ac.
#
# See https://www.gnu.org/software/autoconf/manual/autoconf-2.63/html_node/Installation-Directory-Variables.html
#
# With meson-only, they could just be set via config.h.meson
config-extra.h: Makefile
	$(AM_V_GEN) \
	echo "/* Generated by Makefile.am */"                    >$@ && \
	echo "#define BINDIR            \"$(bindir)\""          >>$@ && \
	echo "#define DATADIR           \"$(datadir)\""         >>$@ && \
	echo "#define LIBEXECDIR        \"$(libexecdir)\""      >>$@ && \
	echo "#define LOCALSTATEDIR     \"$(localstatedir)\""   >>$@ && \
	echo "#define NMCONFDIR         \"$(nmconfdir)\""       >>$@ && \
	echo "#define NMLIBDIR          \"$(nmlibdir)\""        >>$@ && \
	echo "#define NMLOCALEDIR       \"$(nmlocaledir)\""     >>$@ && \
	echo "#define NMPLUGINDIR       \"$(plugindir)\""       >>$@ && \
	echo "#define NMRUNDIR          \"$(nmrundir)\""        >>$@ && \
	echo "#define NMSTATEDIR        \"$(nmstatedir)\""      >>$@ && \
	echo "#define NMVPNDIR          \"$(pkglibdir)\""       >>$@ && \
	echo "#define NM_BUILD_BUILDDIR \"$(abs_builddir)\""    >>$@ && \
	echo "#define NM_BUILD_SRCDIR   \"$(abs_srcdir)\""      >>$@ && \
	echo "#define PPPD_PLUGIN_DIR   \"$(PPPD_PLUGIN_DIR)\"" >>$@ && \
	echo "#define PREFIX            \"$(prefix)\""          >>$@ && \
	echo "#define RUNDIR            \"$(rundir)\""          >>$@ && \
	echo "#define RUNSTATEDIR       \"$(runstatedir)\""     >>$@ && \
	echo "#define SYSCONFDIR        \"$(sysconfdir)\""      >>$@ && \
	true

DISTCLEANFILES += config-extra.h

libnm-core/.dirstamp: config-extra.h

###############################################################################
146

147 148
set_sanitizer_env = \
	[ -n "$(SANITIZER_ENV)" ] && export $(SANITIZER_ENV) ; \
149 150 151
	if echo $(SANITIZER_LIB_CFLAGS) $(SANITIZER_EXEC_CFLAGS) | grep -e -fsanitize=address > /dev/null; then \
		[ -n "$(1)" ] && export LD_PRELOAD="$${LD_PRELOAD}:$$(ldd $(1) | grep libasan\.so\.. -o | head -n 1)"; \
		[ -n "$(2)" ] && export LD_PRELOAD="$${LD_PRELOAD}:$$(ldd $(2) | grep libasan\.so\.. -o | head -n 1)"; \
152 153 154
	fi

check_so_symbols = \
155
	$(call set_sanitizer_env,$(1),$(builddir)/src/NetworkManager); \
156
	LD_BIND_NOW=1 LD_PRELOAD=$${LD_PRELOAD}:$(1) $(builddir)/src/NetworkManager --version >/dev/null
157 158 159

###############################################################################

160 161 162
DISTCHECK_CONFIGURE_FLAGS = \
	--enable-tests=yes \
	--with-valgrind=no \
163
	--with-libnm-glib=yes \
164 165 166 167 168 169
	--enable-gtk-doc \
	--enable-more-warnings=error \
	--with-udev-dir=$$dc_install_base/lib/udev \
	--with-wext=no \
	--enable-ifcfg-rh \
	--enable-ifupdown \
170 171 172
	--enable-config-plugin-ibft \
	--disable-dependency-tracking \
	$(NULL)
173

174
dist-configure-check:
175
	@echo "*** 'make dist' requires '--enable-gtk-doc --enable-introspection --with-libnm-glib'. ***"
176
	@false
177
if !BUILD_DOCS
178 179 180 181
dist_configure_check += dist-configure-check
endif
if !WITH_LEGACY_LIBRARIES
dist_configure_check += dist-configure-check
182 183
endif

184
dist: $(dist_configure_check) $(dist_dependencies)
185

186
DISTCLEANFILES += intltool-extract intltool-merge intltool-update
187 188 189

###############################################################################

190
if WITH_LEGACY_LIBRARIES
191
pkgconfig_DATA += NetworkManager.pc
192
endif
193 194

###############################################################################
195

196 197 198
polkit_policydir = $(datadir)/polkit-1/actions

dist_polkit_policy_in_in_files = \
199
	data/org.freedesktop.NetworkManager.policy.in.in
200 201 202 203 204 205 206 207 208

polkit_policy_DATA = $(dist_polkit_policy_in_in_files:.policy.in.in=.policy)

@INTLTOOL_POLICY_RULE@

DISTCLEANFILES += $(polkit_policy_DATA)

###############################################################################

209 210 211 212 213 214 215 216 217
noinst_LTLIBRARIES += shared/libcsiphash.la

shared_libcsiphash_la_CPPFLAGS = \
	$(CODE_COVERAGE_CFLAGS) \
	$(SANITIZER_LIB_CFLAGS) \
	$(NULL)

shared_libcsiphash_la_SOURCES = \
	shared/c-siphash/src/c-siphash.c \
218 219
	shared/c-siphash/src/c-siphash.h \
	$(NULL)
220 221 222 223 224 225 226 227 228 229 230 231 232 233 234

###############################################################################

noinst_LTLIBRARIES += shared/libcrbtree.la

shared_libcrbtree_la_CFLAGS = $(AM_CFLAGS) -std=c11

shared_libcrbtree_la_CPPFLAGS = \
	$(CODE_COVERAGE_CFLAGS) \
	$(SANITIZER_LIB_CFLAGS) \
	$(NULL)

shared_libcrbtree_la_SOURCES = \
	shared/c-rbtree/src/c-rbtree.c \
	shared/c-rbtree/src/c-rbtree.h \
235 236
	shared/c-rbtree/src/c-rbtree-private.h \
	$(NULL)
237 238 239 240 241

###############################################################################

noinst_LTLIBRARIES += shared/libnacd.la

242 243 244 245 246 247
shared_libnacd_la_CFLAGS = \
	$(AM_CFLAGS) \
	-std=c11 \
	-Wno-pointer-arith \
	-Wno-vla \
	$(NULL)
248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264

shared_libnacd_la_CPPFLAGS = \
	-D_GNU_SOURCE \
	-DSO_ATTACH_BPF=50 \
	$(CODE_COVERAGE_CFLAGS) \
	$(SANITIZER_LIB_CFLAGS) \
	-I$(srcdir)/shared/c-list/src \
	-I$(srcdir)/shared/c-siphash/src \
	-I$(srcdir)/shared/c-rbtree/src \
	$(NULL)

shared_libnacd_la_SOURCES = \
	shared/n-acd/src/n-acd.c \
	shared/n-acd/src/n-acd.h \
	shared/n-acd/src/n-acd-private.h \
	shared/n-acd/src/n-acd-probe.c \
	shared/n-acd/src/util/timer.c \
265 266
	shared/n-acd/src/util/timer.h \
	$(NULL)
267 268 269 270 271 272 273

if WITH_EBPF
shared_libnacd_la_SOURCES += shared/n-acd/src/n-acd-bpf.c
else
shared_libnacd_la_SOURCES += shared/n-acd/src/n-acd-bpf-fallback.c
endif

274 275 276
shared_libnacd_la_LIBADD = \
	shared/libcrbtree.la \
	$(NULL)
277 278 279

###############################################################################

280
shared_nm_utils_libnm_utils_cppflags = \
281 282 283 284
	$(dflt_cppflags) \
	-I$(srcdir)/shared \
	$(CODE_COVERAGE_CFLAGS) \
	$(SANITIZER_LIB_CFLAGS) \
285 286 287
	$(GLIB_CFLAGS) \
	-DG_LOG_DOMAIN=\""libnm"\" \
	-DNETWORKMANAGER_COMPILATION='(NM_NETWORKMANAGER_COMPILATION_GLIB|NM_NETWORKMANAGER_COMPILATION_WITH_GLIB_I18N_LIB)' \
288 289
	$(NULL)

290 291 292 293 294 295 296 297
noinst_LTLIBRARIES += shared/nm-utils/libnm-utils-base.la

shared_nm_utils_libnm_utils_base_la_CPPFLAGS = \
	$(shared_nm_utils_libnm_utils_cppflags) \
	$(NULL)

shared_nm_utils_libnm_utils_base_la_SOURCES = \
	shared/c-list/src/c-list.h \
298
	shared/nm-utils/c-list-util.c \
299 300
	shared/nm-utils/c-list-util.h \
	shared/nm-utils/nm-c-list.h \
301
	shared/nm-utils/nm-dedup-multi.c \
302
	shared/nm-utils/nm-dedup-multi.h \
303
	shared/nm-utils/nm-enum-utils.c \
304 305
	shared/nm-utils/nm-enum-utils.h \
	shared/nm-utils/nm-glib.h \
306
	shared/nm-utils/nm-hash-utils.c \
307
	shared/nm-utils/nm-hash-utils.h \
308
	shared/nm-utils/nm-io-utils.c \
309 310 311
	shared/nm-utils/nm-io-utils.h \
	shared/nm-utils/nm-macros-internal.h \
	shared/nm-utils/nm-obj.h \
312
	shared/nm-utils/nm-random-utils.c \
313
	shared/nm-utils/nm-random-utils.h \
314
	shared/nm-utils/nm-secret-utils.c \
315
	shared/nm-utils/nm-secret-utils.h \
316
	shared/nm-utils/nm-shared-utils.c \
317
	shared/nm-utils/nm-shared-utils.h \
318
	shared/nm-utils/nm-time-utils.c \
319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368
	shared/nm-utils/nm-time-utils.h \
	shared/nm-utils/unaligned.h \
	$(NULL)

shared_nm_utils_libnm_utils_base_la_LDFLAGS = \
	$(CODE_COVERAGE_LDFLAGS) \
	$(SANITIZER_LIB_LDFLAGS) \
	$(NULL)

shared_nm_utils_libnm_utils_base_la_LIBADD = \
	shared/libcsiphash.la \
	$(GLIB_LIBS) \
	$(NULL)

###############################################################################

noinst_LTLIBRARIES += shared/nm-utils/libnm-utils-udev.la

shared_nm_utils_libnm_utils_udev_la_CPPFLAGS = \
	$(shared_nm_utils_libnm_utils_cppflags) \
	$(LIBUDEV_CFLAGS) \
	$(NULL)

shared_nm_utils_libnm_utils_udev_la_SOURCES = \
	shared/nm-utils/nm-udev-utils.c \
	shared/nm-utils/nm-udev-utils.h \
	$(NULL)

shared_nm_utils_libnm_utils_udev_la_LDFLAGS = \
	$(CODE_COVERAGE_LDFLAGS) \
	$(SANITIZER_LIB_LDFLAGS) \
	$(NULL)

shared_nm_utils_libnm_utils_udev_la_LIBADD = \
	$(GLIB_LIBS) \
	$(LIBUDEV_LIBS) \
	$(NULL)

###############################################################################

check_programs += shared/nm-utils/tests/test-shared-general

shared_nm_utils_tests_test_shared_general_CPPFLAGS = \
	$(dflt_cppflags) \
	-I$(srcdir)/shared \
	-DNETWORKMANAGER_COMPILATION_TEST \
	-DNETWORKMANAGER_COMPILATION='(NM_NETWORKMANAGER_COMPILATION_GLIB|NM_NETWORKMANAGER_COMPILATION_WITH_GLIB_I18N_PROG)' \
	$(CODE_COVERAGE_CFLAGS) \
	$(GLIB_CFLAGS) \
	$(SANITIZER_LIB_CFLAGS) \
369 370 371
	$(NULL)

shared_nm_utils_tests_test_shared_general_LDADD = \
372
	shared/nm-utils/libnm-utils-base.la \
373 374 375 376 377
	$(GLIB_LIBS) \
	$(NULL)

###############################################################################

378 379 380
noinst_LTLIBRARIES += \
	introspection/libnmdbus.la

381
introspection_libnmdbus_la_CPPFLAGS = $(GLIB_CFLAGS)
382

383
introspection_sources = \
384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399
	introspection/org.freedesktop.NetworkManager.AccessPoint.c \
	introspection/org.freedesktop.NetworkManager.AccessPoint.h \
	introspection/org.freedesktop.NetworkManager.Connection.Active.c \
	introspection/org.freedesktop.NetworkManager.Connection.Active.h \
	introspection/org.freedesktop.NetworkManager.AgentManager.c \
	introspection/org.freedesktop.NetworkManager.AgentManager.h \
	introspection/org.freedesktop.NetworkManager.Checkpoint.c \
	introspection/org.freedesktop.NetworkManager.Checkpoint.h \
	introspection/org.freedesktop.NetworkManager.Device.Adsl.c \
	introspection/org.freedesktop.NetworkManager.Device.Adsl.h \
	introspection/org.freedesktop.NetworkManager.Device.Bond.c \
	introspection/org.freedesktop.NetworkManager.Device.Bond.h \
	introspection/org.freedesktop.NetworkManager.Device.Bridge.c \
	introspection/org.freedesktop.NetworkManager.Device.Bridge.h \
	introspection/org.freedesktop.NetworkManager.Device.Bluetooth.c \
	introspection/org.freedesktop.NetworkManager.Device.Bluetooth.h \
400 401
	introspection/org.freedesktop.NetworkManager.Device.Dummy.c \
	introspection/org.freedesktop.NetworkManager.Device.Dummy.h \
402 403 404 405 406 407 408 409
	introspection/org.freedesktop.NetworkManager.Device.Wired.c \
	introspection/org.freedesktop.NetworkManager.Device.Wired.h \
	introspection/org.freedesktop.NetworkManager.Device.Generic.c \
	introspection/org.freedesktop.NetworkManager.Device.Generic.h \
	introspection/org.freedesktop.NetworkManager.Device.Infiniband.c \
	introspection/org.freedesktop.NetworkManager.Device.Infiniband.h \
	introspection/org.freedesktop.NetworkManager.Device.IPTunnel.c \
	introspection/org.freedesktop.NetworkManager.Device.IPTunnel.h \
410 411
	introspection/org.freedesktop.NetworkManager.Device.Lowpan.c \
	introspection/org.freedesktop.NetworkManager.Device.Lowpan.h \
412 413
	introspection/org.freedesktop.NetworkManager.Device.Macsec.c \
	introspection/org.freedesktop.NetworkManager.Device.Macsec.h \
414 415 416 417 418 419
	introspection/org.freedesktop.NetworkManager.Device.Macvlan.c \
	introspection/org.freedesktop.NetworkManager.Device.Macvlan.h \
	introspection/org.freedesktop.NetworkManager.Device.Modem.c \
	introspection/org.freedesktop.NetworkManager.Device.Modem.h \
	introspection/org.freedesktop.NetworkManager.Device.OlpcMesh.c \
	introspection/org.freedesktop.NetworkManager.Device.OlpcMesh.h \
420 421
	introspection/org.freedesktop.NetworkManager.Device.OvsInterface.c \
	introspection/org.freedesktop.NetworkManager.Device.OvsInterface.h \
422 423
	introspection/org.freedesktop.NetworkManager.Device.OvsPort.c \
	introspection/org.freedesktop.NetworkManager.Device.OvsPort.h \
424 425
	introspection/org.freedesktop.NetworkManager.Device.OvsBridge.c \
	introspection/org.freedesktop.NetworkManager.Device.OvsBridge.h \
Beniamino Galvani's avatar
Beniamino Galvani committed
426 427
	introspection/org.freedesktop.NetworkManager.Device.Ppp.c \
	introspection/org.freedesktop.NetworkManager.Device.Ppp.h \
428 429 430 431 432 433 434 435 436 437 438 439
	introspection/org.freedesktop.NetworkManager.Device.Statistics.c \
	introspection/org.freedesktop.NetworkManager.Device.Statistics.h \
	introspection/org.freedesktop.NetworkManager.Device.Team.c \
	introspection/org.freedesktop.NetworkManager.Device.Team.h \
	introspection/org.freedesktop.NetworkManager.Device.Tun.c \
	introspection/org.freedesktop.NetworkManager.Device.Tun.h \
	introspection/org.freedesktop.NetworkManager.Device.Veth.c \
	introspection/org.freedesktop.NetworkManager.Device.Veth.h \
	introspection/org.freedesktop.NetworkManager.Device.Vlan.c \
	introspection/org.freedesktop.NetworkManager.Device.Vlan.h \
	introspection/org.freedesktop.NetworkManager.Device.Vxlan.c \
	introspection/org.freedesktop.NetworkManager.Device.Vxlan.h \
440 441
	introspection/org.freedesktop.NetworkManager.Device.WireGuard.c \
	introspection/org.freedesktop.NetworkManager.Device.WireGuard.h \
442 443 444 445
	introspection/org.freedesktop.NetworkManager.Device.Wireless.c \
	introspection/org.freedesktop.NetworkManager.Device.Wireless.h \
	introspection/org.freedesktop.NetworkManager.Device.WiMax.c \
	introspection/org.freedesktop.NetworkManager.Device.WiMax.h \
446 447
	introspection/org.freedesktop.NetworkManager.Device.Wpan.c \
	introspection/org.freedesktop.NetworkManager.Device.Wpan.h \
448 449 450 451 452 453
	introspection/org.freedesktop.NetworkManager.Device.c \
	introspection/org.freedesktop.NetworkManager.Device.h \
	introspection/org.freedesktop.NetworkManager.DHCP4Config.c \
	introspection/org.freedesktop.NetworkManager.DHCP4Config.h \
	introspection/org.freedesktop.NetworkManager.DHCP6Config.c \
	introspection/org.freedesktop.NetworkManager.DHCP6Config.h \
454 455
	introspection/org.freedesktop.NetworkManager.DnsManager.c \
	introspection/org.freedesktop.NetworkManager.DnsManager.h \
456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473
	introspection/org.freedesktop.NetworkManager.IP4Config.c \
	introspection/org.freedesktop.NetworkManager.IP4Config.h \
	introspection/org.freedesktop.NetworkManager.IP6Config.c \
	introspection/org.freedesktop.NetworkManager.IP6Config.h \
	introspection/org.freedesktop.NetworkManager.c \
	introspection/org.freedesktop.NetworkManager.h \
	introspection/org.freedesktop.NetworkManager.PPP.c \
	introspection/org.freedesktop.NetworkManager.PPP.h \
	introspection/org.freedesktop.NetworkManager.SecretAgent.c \
	introspection/org.freedesktop.NetworkManager.SecretAgent.h \
	introspection/org.freedesktop.NetworkManager.Settings.Connection.c \
	introspection/org.freedesktop.NetworkManager.Settings.Connection.h \
	introspection/org.freedesktop.NetworkManager.Settings.c \
	introspection/org.freedesktop.NetworkManager.Settings.h \
	introspection/org.freedesktop.NetworkManager.VPN.Connection.c \
	introspection/org.freedesktop.NetworkManager.VPN.Connection.h \
	introspection/org.freedesktop.NetworkManager.VPN.Plugin.c \
	introspection/org.freedesktop.NetworkManager.VPN.Plugin.h
474

475 476
nodist_introspection_libnmdbus_la_SOURCES = $(introspection_sources)

477
DBUS_INTERFACE_DOCS = \
478 479 480 481 482 483 484 485 486 487 488 489
	docs/api/dbus-org.freedesktop.NetworkManager.AccessPoint.xml \
	docs/api/dbus-org.freedesktop.NetworkManager.Connection.Active.xml \
	docs/api/dbus-org.freedesktop.NetworkManager.Checkpoint.xml \
	docs/api/dbus-org.freedesktop.NetworkManager.Device.Team.xml \
	docs/api/dbus-org.freedesktop.NetworkManager.DHCP6Config.xml \
	docs/api/dbus-org.freedesktop.NetworkManager.Device.Wireless.xml \
	docs/api/dbus-org.freedesktop.NetworkManager.xml \
	docs/api/dbus-org.freedesktop.NetworkManager.VPN.Connection.xml \
	docs/api/dbus-org.freedesktop.NetworkManager.SecretAgent.xml \
	docs/api/dbus-org.freedesktop.NetworkManager.Device.xml \
	docs/api/dbus-org.freedesktop.NetworkManager.VPN.Plugin.xml \
	docs/api/dbus-org.freedesktop.NetworkManager.Device.Bluetooth.xml \
490
	docs/api/dbus-org.freedesktop.NetworkManager.Device.Dummy.xml \
491 492 493
	docs/api/dbus-org.freedesktop.NetworkManager.Device.Vxlan.xml \
	docs/api/dbus-org.freedesktop.NetworkManager.Settings.Connection.xml \
	docs/api/dbus-org.freedesktop.NetworkManager.Device.Bond.xml \
494
	docs/api/dbus-org.freedesktop.NetworkManager.Device.Macsec.xml \
495 496 497 498 499 500
	docs/api/dbus-org.freedesktop.NetworkManager.Device.Macvlan.xml \
	docs/api/dbus-org.freedesktop.NetworkManager.PPP.xml \
	docs/api/dbus-org.freedesktop.NetworkManager.Device.Vlan.xml \
	docs/api/dbus-org.freedesktop.NetworkManager.Device.Adsl.xml \
	docs/api/dbus-org.freedesktop.NetworkManager.AgentManager.xml \
	docs/api/dbus-org.freedesktop.NetworkManager.Device.WiMax.xml \
501
	docs/api/dbus-org.freedesktop.NetworkManager.Device.Wpan.xml \
502 503 504 505
	docs/api/dbus-org.freedesktop.NetworkManager.Device.IPTunnel.xml \
	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 \
506
	docs/api/dbus-org.freedesktop.NetworkManager.Device.OvsInterface.xml \
507
	docs/api/dbus-org.freedesktop.NetworkManager.Device.OvsPort.xml \
508
	docs/api/dbus-org.freedesktop.NetworkManager.Device.OvsBridge.xml \
Beniamino Galvani's avatar
Beniamino Galvani committed
509
	docs/api/dbus-org.freedesktop.NetworkManager.Device.Ppp.xml \
510 511 512 513 514 515 516 517
	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 \
	docs/api/dbus-org.freedesktop.NetworkManager.Device.Modem.xml \
	docs/api/dbus-org.freedesktop.NetworkManager.IP6Config.xml \
	docs/api/dbus-org.freedesktop.NetworkManager.Device.Veth.xml \
	docs/api/dbus-org.freedesktop.NetworkManager.Settings.xml \
	docs/api/dbus-org.freedesktop.NetworkManager.Device.Wired.xml \
518
	docs/api/dbus-org.freedesktop.NetworkManager.Device.WireGuard.xml \
519
	docs/api/dbus-org.freedesktop.NetworkManager.IP4Config.xml \
520
	docs/api/dbus-org.freedesktop.NetworkManager.Device.Statistics.xml \
521 522
	docs/api/dbus-org.freedesktop.NetworkManager.DnsManager.xml \
	docs/api/dbus-org.freedesktop.NetworkManager.Device.Lowpan.xml
523 524

introspection/%.c: introspection/%.xml
525
	@$(MKDIR_P) introspection/
526 527 528
	$(AM_V_GEN) gdbus-codegen \
		--generate-c-code $(basename $@) \
		--generate-docbook docs/api/dbus \
529 530
		--c-namespace NMDBus \
		--interface-prefix org.freedesktop.NetworkManager \
531
		$<
532

533 534
introspection/%.h: introspection/%.c
	$()
535

536 537
docs/api/dbus-%.xml: introspection/%.c
	$()
538

539
dbusinterfacesdir = $(datadir)/dbus-1/interfaces
540

541
dbusinterfaces_DATA = \
542 543 544 545 546 547 548 549
	introspection/org.freedesktop.NetworkManager.AccessPoint.xml \
	introspection/org.freedesktop.NetworkManager.Connection.Active.xml \
	introspection/org.freedesktop.NetworkManager.AgentManager.xml \
	introspection/org.freedesktop.NetworkManager.Checkpoint.xml \
	introspection/org.freedesktop.NetworkManager.Device.Adsl.xml \
	introspection/org.freedesktop.NetworkManager.Device.Bond.xml \
	introspection/org.freedesktop.NetworkManager.Device.Bridge.xml \
	introspection/org.freedesktop.NetworkManager.Device.Bluetooth.xml \
550
	introspection/org.freedesktop.NetworkManager.Device.Dummy.xml \
551 552 553 554
	introspection/org.freedesktop.NetworkManager.Device.Wired.xml \
	introspection/org.freedesktop.NetworkManager.Device.Generic.xml \
	introspection/org.freedesktop.NetworkManager.Device.Infiniband.xml \
	introspection/org.freedesktop.NetworkManager.Device.IPTunnel.xml \
555
	introspection/org.freedesktop.NetworkManager.Device.Lowpan.xml \
556
	introspection/org.freedesktop.NetworkManager.Device.Macsec.xml \
557 558 559
	introspection/org.freedesktop.NetworkManager.Device.Macvlan.xml \
	introspection/org.freedesktop.NetworkManager.Device.Modem.xml \
	introspection/org.freedesktop.NetworkManager.Device.OlpcMesh.xml \
560
	introspection/org.freedesktop.NetworkManager.Device.OvsInterface.xml \
561
	introspection/org.freedesktop.NetworkManager.Device.OvsPort.xml \
562
	introspection/org.freedesktop.NetworkManager.Device.OvsBridge.xml \
Beniamino Galvani's avatar
Beniamino Galvani committed
563
	introspection/org.freedesktop.NetworkManager.Device.Ppp.xml \
564 565 566 567 568 569
	introspection/org.freedesktop.NetworkManager.Device.Statistics.xml \
	introspection/org.freedesktop.NetworkManager.Device.Team.xml \
	introspection/org.freedesktop.NetworkManager.Device.Tun.xml \
	introspection/org.freedesktop.NetworkManager.Device.Veth.xml \
	introspection/org.freedesktop.NetworkManager.Device.Vlan.xml \
	introspection/org.freedesktop.NetworkManager.Device.Vxlan.xml \
570
	introspection/org.freedesktop.NetworkManager.Device.WireGuard.xml \
571 572
	introspection/org.freedesktop.NetworkManager.Device.Wireless.xml \
	introspection/org.freedesktop.NetworkManager.Device.WiMax.xml \
573
	introspection/org.freedesktop.NetworkManager.Device.Wpan.xml \
574 575 576
	introspection/org.freedesktop.NetworkManager.Device.xml \
	introspection/org.freedesktop.NetworkManager.DHCP4Config.xml \
	introspection/org.freedesktop.NetworkManager.DHCP6Config.xml \
577
	introspection/org.freedesktop.NetworkManager.DnsManager.xml \
578 579 580 581 582 583 584 585 586 587
	introspection/org.freedesktop.NetworkManager.IP4Config.xml \
	introspection/org.freedesktop.NetworkManager.IP6Config.xml \
	introspection/org.freedesktop.NetworkManager.xml \
	introspection/org.freedesktop.NetworkManager.PPP.xml \
	introspection/org.freedesktop.NetworkManager.SecretAgent.xml \
	introspection/org.freedesktop.NetworkManager.Settings.Connection.xml \
	introspection/org.freedesktop.NetworkManager.Settings.xml \
	introspection/org.freedesktop.NetworkManager.VPN.Connection.xml \
	introspection/org.freedesktop.NetworkManager.VPN.Plugin.xml \
	introspection/org.freedesktop.NetworkManager.WiMax.Nsp.xml
588

589 590
CLEANFILES += $(introspection_sources)
CLEANFILES += $(DBUS_INTERFACE_DOCS)
591

592 593 594 595
$(dispatcher_libnm_dispatcher_core_la_OBJECTS): $(introspection_sources)
$(dispatcher_nm_dispatcher_OBJECTS):            $(introspection_sources)
$(libnm_libnm_la_OBJECTS):                      $(introspection_sources)

596
EXTRA_DIST += \
597 598
	$(dbusinterfaces_DATA) \
	introspection/meson.build
599

600
check-docs:
601
	$(srcdir)/tools/check-docs.sh "$(srcdir)" "$(builddir)"
602 603 604

check_local += check-docs

605 606
###############################################################################

607
libnm_core_lib_h_pub_real = \
608 609 610 611 612
	shared/nm-version-macros.h \
	libnm-core/nm-connection.h \
	libnm-core/nm-core-types.h \
	libnm-core/nm-dbus-interface.h \
	libnm-core/nm-errors.h \
Lubomir Rintel's avatar
Lubomir Rintel committed
613
	libnm-core/nm-setting-6lowpan.h \
614 615 616 617 618 619 620 621 622
	libnm-core/nm-setting-8021x.h \
	libnm-core/nm-setting-adsl.h \
	libnm-core/nm-setting-bluetooth.h \
	libnm-core/nm-setting-bond.h \
	libnm-core/nm-setting-bridge-port.h \
	libnm-core/nm-setting-bridge.h \
	libnm-core/nm-setting-cdma.h \
	libnm-core/nm-setting-connection.h \
	libnm-core/nm-setting-dcb.h \
623
	libnm-core/nm-setting-dummy.h \
624
	libnm-core/nm-setting-ethtool.h \
625 626 627 628 629 630 631
	libnm-core/nm-setting-generic.h \
	libnm-core/nm-setting-gsm.h \
	libnm-core/nm-setting-infiniband.h \
	libnm-core/nm-setting-ip-config.h \
	libnm-core/nm-setting-ip-tunnel.h \
	libnm-core/nm-setting-ip4-config.h \
	libnm-core/nm-setting-ip6-config.h \
632
	libnm-core/nm-setting-macsec.h \
633
	libnm-core/nm-setting-macvlan.h \
Beniamino Galvani's avatar
Beniamino Galvani committed
634
	libnm-core/nm-setting-match.h \
635
	libnm-core/nm-setting-olpc-mesh.h \
636
	libnm-core/nm-setting-ovs-bridge.h \
637
	libnm-core/nm-setting-ovs-interface.h \
638
	libnm-core/nm-setting-ovs-patch.h \
639
	libnm-core/nm-setting-ovs-port.h \
640 641 642 643
	libnm-core/nm-setting-ppp.h \
	libnm-core/nm-setting-pppoe.h \
	libnm-core/nm-setting-proxy.h \
	libnm-core/nm-setting-serial.h \
644
	libnm-core/nm-setting-sriov.h \
645
	libnm-core/nm-setting-tc-config.h \
646 647 648
	libnm-core/nm-setting-team-port.h \
	libnm-core/nm-setting-team.h \
	libnm-core/nm-setting-tun.h \
Thomas Haller's avatar
Thomas Haller committed
649
	libnm-core/nm-setting-user.h \
650 651 652 653 654 655 656
	libnm-core/nm-setting-vlan.h \
	libnm-core/nm-setting-vpn.h \
	libnm-core/nm-setting-vxlan.h \
	libnm-core/nm-setting-wimax.h \
	libnm-core/nm-setting-wired.h \
	libnm-core/nm-setting-wireless-security.h \
	libnm-core/nm-setting-wireless.h \
Lubomir Rintel's avatar
Lubomir Rintel committed
657
	libnm-core/nm-setting-wpan.h \
658 659 660 661 662 663 664
	libnm-core/nm-setting.h \
	libnm-core/nm-simple-connection.h \
	libnm-core/nm-utils.h \
	libnm-core/nm-version.h \
	libnm-core/nm-vpn-dbus-interface.h \
	libnm-core/nm-vpn-editor-plugin.h \
	libnm-core/nm-vpn-plugin-info.h
665
libnm_core_lib_h_pub_mkenums = \
666 667
	libnm-core/nm-core-enum-types.h
libnm_core_lib_h_priv = \
668
	shared/nm-ethtool-utils.h \
669
	shared/nm-meta-setting.h \
670
	libnm-core/nm-crypto.h \
671
	libnm-core/nm-crypto-impl.h \
672 673 674 675 676 677 678 679
	libnm-core/nm-connection-private.h \
	libnm-core/nm-core-internal.h \
	libnm-core/nm-core-types-internal.h \
	libnm-core/nm-keyfile-internal.h \
	libnm-core/nm-keyfile-utils.h \
	libnm-core/nm-property-compare.h \
	libnm-core/nm-setting-private.h \
	libnm-core/nm-utils-private.h
680
libnm_core_lib_c_settings_real = \
Lubomir Rintel's avatar
Lubomir Rintel committed
681
	libnm-core/nm-setting-6lowpan.c \
682 683 684 685 686 687 688 689 690
	libnm-core/nm-setting-8021x.c \
	libnm-core/nm-setting-adsl.c \
	libnm-core/nm-setting-bluetooth.c \
	libnm-core/nm-setting-bond.c \
	libnm-core/nm-setting-bridge-port.c \
	libnm-core/nm-setting-bridge.c \
	libnm-core/nm-setting-cdma.c \
	libnm-core/nm-setting-connection.c \
	libnm-core/nm-setting-dcb.c \
691
	libnm-core/nm-setting-dummy.c \
692
	libnm-core/nm-setting-ethtool.c \
693 694 695 696 697 698 699
	libnm-core/nm-setting-generic.c \
	libnm-core/nm-setting-gsm.c \
	libnm-core/nm-setting-infiniband.c \
	libnm-core/nm-setting-ip-config.c \
	libnm-core/nm-setting-ip-tunnel.c \
	libnm-core/nm-setting-ip4-config.c \
	libnm-core/nm-setting-ip6-config.c \
700
	libnm-core/nm-setting-macsec.c \
701
	libnm-core/nm-setting-macvlan.c \
Beniamino Galvani's avatar
Beniamino Galvani committed
702
	libnm-core/nm-setting-match.c \
703
	libnm-core/nm-setting-olpc-mesh.c \
704
	libnm-core/nm-setting-ovs-bridge.c \
705
	libnm-core/nm-setting-ovs-interface.c \
706
	libnm-core/nm-setting-ovs-patch.c \
707
	libnm-core/nm-setting-ovs-port.c \
708 709 710 711
	libnm-core/nm-setting-ppp.c \
	libnm-core/nm-setting-pppoe.c \
	libnm-core/nm-setting-proxy.c \
	libnm-core/nm-setting-serial.c \
712
	libnm-core/nm-setting-sriov.c \
713
	libnm-core/nm-setting-tc-config.c \
714 715 716
	libnm-core/nm-setting-team-port.c \
	libnm-core/nm-setting-team.c \
	libnm-core/nm-setting-tun.c \
Thomas Haller's avatar
Thomas Haller committed
717
	libnm-core/nm-setting-user.c \
718 719 720 721 722 723
	libnm-core/nm-setting-vlan.c \
	libnm-core/nm-setting-vpn.c \
	libnm-core/nm-setting-vxlan.c \
	libnm-core/nm-setting-wimax.c \
	libnm-core/nm-setting-wired.c \
	libnm-core/nm-setting-wireless-security.c \
Lubomir Rintel's avatar
Lubomir Rintel committed
724 725
	libnm-core/nm-setting-wireless.c \
	libnm-core/nm-setting-wpan.c
726 727
libnm_core_lib_c_real = \
	$(libnm_core_lib_c_settings_real) \
728
	shared/nm-ethtool-utils.c \
729
	shared/nm-meta-setting.c \
730
	libnm-core/nm-crypto.c \
731 732 733
	libnm-core/nm-connection.c \
	libnm-core/nm-dbus-utils.c \
	libnm-core/nm-errors.c \
734
	libnm-core/nm-keyfile.c \
735 736
	libnm-core/nm-keyfile-utils.c \
	libnm-core/nm-property-compare.c \
737 738 739 740 741
	libnm-core/nm-setting.c \
	libnm-core/nm-simple-connection.c \
	libnm-core/nm-utils.c \
	libnm-core/nm-vpn-editor-plugin.c \
	libnm-core/nm-vpn-plugin-info.c
742 743 744

if WITH_JSON_VALIDATION
libnm_core_lib_h_priv += \
745
	libnm-core/nm-json.h
746
libnm_core_lib_c_real += \
747
	libnm-core/nm-json.c
748 749
endif

750
libnm_core_lib_c_mkenums = \
751 752 753 754
	libnm-core/nm-core-enum-types.c

libnminclude_HEADERS += \
	$(libnm_core_lib_h_pub_real)
755

756
nodist_libnminclude_HEADERS += \
757
	$(libnm_core_lib_h_pub_mkenums)
758 759 760

###############################################################################

761
dflt_cppflags_libnm_core = \
762
	$(dflt_cppflags) \
763 764 765 766
	-I$(srcdir)/shared \
	-I$(builddir)/shared \
	-I$(srcdir)/libnm-core \
	-I$(builddir)/libnm-core \
767
	$(CODE_COVERAGE_CFLAGS) \
768
	$(GLIB_CFLAGS) \
769
	$(LIBUDEV_CFLAGS) \
770 771
	$(SANITIZER_LIB_CFLAGS) \
	$(NULL)
772

773 774 775
noinst_LTLIBRARIES += libnm-core/libnm-core.la

GLIB_GENERATED += \
776 777
	$(libnm_core_lib_h_pub_mkenums) \
	$(libnm_core_lib_c_mkenums)
778
nm_core_enum_types_sources = $(libnm_core_lib_h_pub_real)
779

780 781
nm_core_enum_types_MKENUMS_C_FLAGS = --identifier-prefix NM --fhead '\#include "nm-default.h"\n'

782 783
libnm-core/nm-core-enum-types.h.stamp:                                      libnm-core/.dirstamp
libnm-core/nm-core-enum-types.c.stamp:                                      libnm-core/.dirstamp
784

785 786 787 788 789 790 791 792 793 794 795
$(dispatcher_libnm_dispatcher_core_la_OBJECTS):                             $(libnm_core_lib_h_pub_mkenums)
$(dispatcher_nm_dispatcher_OBJECTS):                                        $(libnm_core_lib_h_pub_mkenums)
$(libnm_core_libnm_core_la_OBJECTS):                                        $(libnm_core_lib_h_pub_mkenums)
$(libnm_libnm_la_OBJECTS):                                                  $(libnm_core_lib_h_pub_mkenums)
$(libnm_tests_libnm_vpn_plugin_utils_test_la_OBJECTS):                      $(libnm_core_lib_h_pub_mkenums)
$(src_NetworkManager_OBJECTS):                                              $(libnm_core_lib_h_pub_mkenums)
$(src_devices_adsl_libnm_device_plugin_adsl_la_OBJECTS):                    $(libnm_core_lib_h_pub_mkenums)
$(src_devices_bluetooth_libnm_device_plugin_bluetooth_la_OBJECTS):          $(libnm_core_lib_h_pub_mkenums)
$(src_devices_team_libnm_device_plugin_team_la_OBJECTS):                    $(libnm_core_lib_h_pub_mkenums)
$(src_devices_wifi_libnm_device_plugin_wifi_la_OBJECTS):                    $(libnm_core_lib_h_pub_mkenums)
$(src_devices_wwan_libnm_device_plugin_wwan_la_OBJECTS):                    $(libnm_core_lib_h_pub_mkenums)
796
$(src_devices_ovs_libnm_device_plugin_ovs_la_OBJECTS):                      $(libnm_core_lib_h_pub_mkenums)
797

798
libnm_core_libnm_core_la_CPPFLAGS = \
799
	$(dflt_cppflags_libnm_core) \
800
	-DG_LOG_DOMAIN=\""libnm"\" \
801 802
	-DNETWORKMANAGER_COMPILATION=NM_NETWORKMANAGER_COMPILATION_LIBNM_CORE \
	$(NULL)
803

804 805 806 807
if WITH_JSON_VALIDATION
libnm_core_libnm_core_la_CPPFLAGS += $(JANSSON_CFLAGS)
endif

808
libnm_core_libnm_core_la_SOURCES = \
809 810 811 812 813
	$(libnm_core_lib_h_pub_real) \
	$(libnm_core_lib_h_priv) \
	$(libnm_core_lib_c_real)

nodist_libnm_core_libnm_core_la_SOURCES = \
814 815
	$(libnm_core_lib_h_pub_mkenums) \
	$(libnm_core_lib_c_mkenums)
816 817 818

libnm_core_libnm_core_la_LIBADD = \
	$(GLIB_LIBS) \
819
	$(UUID_LIBS) \
820
	$(NULL)
821

822
libnm_core_libnm_core_la_LDFLAGS = \
823 824
	$(CODE_COVERAGE_LDFLAGS) \
	$(SANITIZER_LIB_LDFLAGS)
825

826
EXTRA_DIST += \
827 828
	libnm-core/nm-crypto-gnutls.c \
	libnm-core/nm-crypto-nss.c \
829 830 831
	libnm-core/nm-core-enum-types.c.template \
	libnm-core/nm-core-enum-types.h.template \
	libnm-core/meson.build
832

833
libnm-core/nm-vpn-dbus-types.xml: libnm-core/nm-vpn-dbus-interface.h tools/enums-to-docbook.pl
834
	@$(MKDIR_P) libnm-core/
835
	$(AM_V_GEN) @PERL@ $(srcdir)/tools/enums-to-docbook.pl 'nm-vpn-dbus-types' 'VPN Plugin D-Bus API Types' $< >$@
836

837
libnm-core/nm-dbus-types.xml: libnm-core/nm-dbus-interface.h tools/enums-to-docbook.pl
838
	@$(MKDIR_P) libnm-core/
839
	$(AM_V_GEN) @PERL@ $(srcdir)/tools/enums-to-docbook.pl 'nm-dbus-types' 'NetworkManager D-Bus API Types' $< >$@
840 841 842 843 844

BUILT_SOURCES += \
	libnm-core/nm-vpn-dbus-types.xml \
	libnm-core/nm-dbus-types.xml

845 846 847 848
dist_dependencies += \
	libnm-core/nm-vpn-dbus-types.xml \
	libnm-core/nm-dbus-types.xml

849 850
###############################################################################

851 852 853 854 855 856 857 858 859 860 861 862 863 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890
if HAVE_CRYPTO_GNUTLS
if WITH_GNUTLS
libnm_crypto_lib = libnm-core/libnm-crypto-gnutls.la
else
check_ltlibraries += libnm-core/libnm-crypto-gnutls.la
endif

libnm_core_libnm_crypto_gnutls_la_SOURCES = libnm-core/nm-crypto-gnutls.c
libnm_core_libnm_crypto_gnutls_la_CPPFLAGS = \
	$(libnm_core_libnm_core_la_CPPFLAGS) \
	$(GNUTLS_CFLAGS)
libnm_core_libnm_crypto_gnutls_la_LDFLAGS = \
	$(libnm_core_libnm_core_la_LDFLAGS)
libnm_core_libnm_crypto_gnutls_la_LIBADD = \
	$(libnm_core_libnm_core_la_LIBADD) \
	$(GNUTLS_LIBS)
endif

if HAVE_CRYPTO_NSS
if WITH_NSS
libnm_crypto_lib = libnm-core/libnm-crypto-nss.la
else
check_ltlibraries += libnm-core/libnm-crypto-nss.la
endif

libnm_core_libnm_crypto_nss_la_SOURCES = libnm-core/nm-crypto-nss.c
libnm_core_libnm_crypto_nss_la_CPPFLAGS = \
	$(libnm_core_libnm_core_la_CPPFLAGS) \
	$(NSS_CFLAGS)
libnm_core_libnm_crypto_nss_la_LDFLAGS = \
	$(libnm_core_libnm_core_la_LDFLAGS)
libnm_core_libnm_crypto_nss_la_LIBADD = \
	$(libnm_core_libnm_core_la_LIBADD) \
	$(NSS_LIBS)
endif

noinst_LTLIBRARIES += $(libnm_crypto_lib)

###############################################################################

891
check_programs += \
892 893 894 895 896
	libnm-core/tests/test-compare \
	libnm-core/tests/test-crypto \
	libnm-core/tests/test-general \
	libnm-core/tests/test-keyfile \
	libnm-core/tests/test-secrets \
897
	libnm-core/tests/test-setting \
898 899 900 901 902 903 904
	libnm-core/tests/test-settings-defaults

GLIB_GENERATED += \
	libnm-core/tests/nm-core-tests-enum-types.h \
	libnm-core/tests/nm-core-tests-enum-types.c
nm_core_tests_enum_types_sources = libnm-core/tests/test-general-enums.h

905 906 907
libnm-core/tests/nm-core-tests-enum-types.h.stamp: libnm-core/tests/.dirstamp
libnm-core/tests/nm-core-tests-enum-types.c.stamp: libnm-core/tests/.dirstamp

908 909
$(libnm_core_tests_test_general_OBJECTS): libnm-core/tests/nm-core-tests-enum-types.h

910 911
libnm_core_tests_cppflags = \
	-I$(srcdir)/libnm-core/tests \
912
	-I$(builddir)/libnm-core/tests \
913
	$(dflt_cppflags_libnm_core) \
914 915
	-DNETWORKMANAGER_COMPILATION_TEST \
	-DNETWORKMANAGER_COMPILATION=NM_NETWORKMANAGER_COMPILATION_LIBNM_CORE \
916
	$(SANITIZER_EXEC_CFLAGS) \
917
	$(NULL)
918 919 920 921 922 923

libnm_core_tests_test_compare_CPPFLAGS = $(libnm_core_tests_cppflags)
libnm_core_tests_test_crypto_CPPFLAGS = $(libnm_core_tests_cppflags)
libnm_core_tests_test_general_CPPFLAGS = $(libnm_core_tests_cppflags)
libnm_core_tests_test_keyfile_CPPFLAGS = $(libnm_core_tests_cppflags)
libnm_core_tests_test_secrets_CPPFLAGS = $(libnm_core_tests_cppflags)
924
libnm_core_tests_test_setting_CPPFLAGS = $(libnm_core_tests_cppflags)
925 926 927 928 929 930
libnm_core_tests_test_settings_defaults_CPPFLAGS = $(libnm_core_tests_cppflags)

libnm_core_tests_test_general_SOURCES = \
	libnm-core/tests/test-general-enums.h \
	libnm-core/tests/test-general.c

931 932 933 934
nodist_libnm_core_tests_test_general_SOURCES = \
	libnm-core/tests/nm-core-tests-enum-types.c \
	libnm-core/tests/nm-core-tests-enum-types.h

935 936
libnm_core_tests_ldadd = \
	libnm-core/libnm-core.la \
937
	shared/nm-utils/libnm-utils-base.la \
938
	$(libnm_crypto_lib) \
939 940
	$(GLIB_LIBS)

941 942 943
libnm_core_tests_ldflags = \
	$(SANITIZER_LIB_LDFLAGS)

944 945 946 947 948
libnm_core_tests_test_compare_LDADD = $(libnm_core_tests_ldadd)
libnm_core_tests_test_crypto_LDADD = $(libnm_core_tests_ldadd)
libnm_core_tests_test_general_LDADD = $(libnm_core_tests_ldadd)
libnm_core_tests_test_keyfile_LDADD = $(libnm_core_tests_ldadd)
libnm_core_tests_test_secrets_LDADD = $(libnm_core_tests_ldadd)
949
libnm_core_tests_test_setting_LDADD = $(libnm_core_tests_ldadd)
950 951
libnm_core_tests_test_settings_defaults_LDADD = $(libnm_core_tests_ldadd)

952 953 954 955 956 957 958 959
libnm_core_tests_test_compare_LDFLAGS = $(libnm_core_tests_ldflags)
libnm_core_tests_test_crypto_LDFLAGS = $(libnm_core_tests_ldflags)
libnm_core_tests_test_general_LDFLAGS = $(libnm_core_tests_ldflags)
libnm_core_tests_test_keyfile_LDFLAGS = $(libnm_core_tests_ldflags)
libnm_core_tests_test_secrets_LDFLAGS = $(libnm_core_tests_ldflags)
libnm_core_tests_test_setting_LDFLAGS = $(libnm_core_tests_ldflags)
libnm_core_tests_test_settings_defaults_LDFLAGS = $(libnm_core_tests_ldflags)

960 961 962 963 964
$(libnm_core_tests_test_compare_OBJECTS): $(libnm_core_lib_h_pub_mkenums)
$(libnm_core_tests_test_crypto_OBJECTS): $(libnm_core_lib_h_pub_mkenums)
$(libnm_core_tests_test_general_OBJECTS): $(libnm_core_lib_h_pub_mkenums)
$(libnm_core_tests_test_keyfile_OBJECTS): $(libnm_core_lib_h_pub_mkenums)
$(libnm_core_tests_test_secrets_OBJECTS): $(libnm_core_lib_h_pub_mkenums)
965
$(libnm_core_tests_test_setting_OBJECTS): $(libnm_core_lib_h_pub_mkenums)
966 967
$(libnm_core_tests_test_settings_defaults_OBJECTS): $(libnm_core_lib_h_pub_mkenums)

968 969 970
# test-cert.p12 created with:
#
# openssl pkcs12 -export \
971 972 973 974 975
#    -in test_key_and_cert.pem \
#    -inkey test_key_and_cert.pem \
#    -certfile test_ca_cert.pem \
#    -name "test-pkcs12" \
#    -out test-cert.p12
976 977 978 979 980 981 982 983 984

EXTRA_DIST += \
	libnm-core/tests/certs/ca-no-ending-newline.pem \
	libnm-core/tests/certs/pkcs8-decrypted.der \
	libnm-core/tests/certs/pkcs8-enc-key.pem \
	libnm-core/tests/certs/pkcs8-noenc-key.pem \
	libnm-core/tests/certs/test2_ca_cert.pem \
	libnm-core/tests/certs/test2-cert.p12 \
	libnm-core/tests/certs/test2_key_and_cert.pem \
985 986
	libnm-core/tests/certs/test-aes-128-key.pem \
	libnm-core/tests/certs/test-aes-256-key.pem \
987 988 989 990 991 992 993 994
	libnm-core/tests/certs/test_ca_cert.der \
	libnm-core/tests/certs/test_ca_cert.pem \
	libnm-core/tests/certs/test-ca-cert.pem \
	libnm-core/tests/certs/test-cert.p12 \
	libnm-core/tests/certs/test_key_and_cert.pem \
	libnm-core/tests/certs/test-key-and-cert.pem \
	libnm-core/tests/certs/test-key-only-decrypted.der \
	libnm-core/tests/certs/test-key-only-decrypted.pem \
995 996 997 998
	libnm-core/tests/certs/test-key-only.pem \
	libnm-core/tests/nm-core-tests-enum-types.c.template \
	libnm-core/tests/nm-core-tests-enum-types.h.template \
	libnm-core/tests/meson.build
999 1000 1001

###############################################################################

1002
libnm_lib_h_pub_real = \
1003 1004 1005 1006
	shared/nm-version-macros.h \
	libnm/NetworkManager.h \
	libnm/nm-access-point.h \
	libnm/nm-active-connection.h \
1007
	libnm/nm-autoptr.h \
1008
	libnm/nm-checkpoint.h \
1009
	libnm/nm-client.h \
1010
	libnm/nm-device-6lowpan.h \
1011 1012 1013 1014
	libnm/nm-device-adsl.h \
	libnm/nm-device-bond.h \
	libnm/nm-device-bridge.h \
	libnm/nm-device-bt.h \
1015
	libnm/nm-device-dummy.h \
1016 1017 1018 1019
	libnm/nm-device-ethernet.h \
	libnm/nm-device-generic.h \
	libnm/nm-device-infiniband.h \
	libnm/nm-device-ip-tunnel.h \
1020
	libnm/nm-device-macsec.h \
1021 1022 1023
	libnm/nm-device-macvlan.h \
	libnm/nm-device-modem.h \
	libnm/nm-device-olpc-mesh.h \
1024
	libnm/nm-device-ovs-interface.h \
1025
	libnm/nm-device-ovs-port.h \
1026
	libnm/nm-device-ovs-bridge.h \
Beniamino Galvani's avatar
Beniamino Galvani committed
1027
	libnm/nm-device-ppp.h \
1028 1029 1030 1031 1032 1033
	libnm/nm-device-team.h \
	libnm/nm-device-tun.h \
	libnm/nm-device-vlan.h \
	libnm/nm-device-vxlan.h \
	libnm/nm-device-wifi.h \
	libnm/nm-device-wimax.h \
1034
	libnm/nm-device-wireguard.h \
1035
	libnm/nm-device-wpan.h \
1036 1037 1038 1039 1040
	libnm/nm-device.h \
	libnm/nm-dhcp-config.h \
	libnm/nm-ip-config.h \
	libnm/nm-object.h \
	libnm/nm-remote-connection.h \
1041
	libnm/nm-secret-agent-old.h \
1042 1043 1044 1045
	libnm/nm-types.h \
	libnm/nm-vpn-connection.h \
	libnm/nm-vpn-editor.h \
	libnm/nm-vpn-plugin-old.h \
1046 1047
	libnm/nm-vpn-service-plugin.h \
	libnm/nm-wimax-nsp.h
1048
libnm_lib_h_pub_mkenums = \
1049 1050
	libnm/nm-enum-types.h
libnm_lib_h_priv = \
1051
	libnm/nm-libnm-utils.h \
1052 1053 1054 1055
	libnm/nm-dbus-helpers.h \
	libnm/nm-device-private.h \
	libnm/nm-dhcp4-config.h \
	libnm/nm-dhcp6-config.h \
1056
	libnm/nm-dns-manager.h \
1057 1058 1059 1060 1061 1062
	libnm/nm-ip4-config.h \
	libnm/nm-ip6-config.h \
	libnm/nm-manager.h \
	libnm/nm-object-private.h \
	libnm/nm-remote-connection-private.h \
	libnm/nm-remote-settings.h
1063
libnm_lib_c_real = \
1064 1065
	libnm/nm-access-point.c \
	libnm/nm-active-connection.c \
1066
	libnm/nm-checkpoint.c \
1067 1068
	libnm/nm-client.c \
	libnm/nm-dbus-helpers.c \
1069
	libnm/nm-device-6lowpan.c \
1070 1071 1072 1073
	libnm/nm-device-adsl.c \
	libnm/nm-device-bond.c \
	libnm/nm-device-bridge.c \
	libnm/nm-device-bt.c \
1074
	libnm/nm-device-dummy.c \
1075 1076 1077 1078
	libnm/nm-device-ethernet.c \
	libnm/nm-device-generic.c \
	libnm/nm-device-infiniband.c \
	libnm/nm-device-ip-tunnel.c \
1079
	libnm/nm-device-macsec.c \
1080 1081 1082
	libnm/nm-device-macvlan.c \
	libnm/nm-device-modem.c \
	libnm/nm-device-olpc-mesh.c \
1083
	libnm/nm-device-ovs-interface.c \
1084
	libnm/nm-device-ovs-port.c \
1085
	libnm/nm-device-ovs-bridge.c \
Beniamino Galvani's avatar
Beniamino Galvani committed
1086
	libnm/nm-device-ppp.c \
1087 1088 1089 1090 1091 1092
	libnm/nm-device-team.c \
	libnm/nm-device-tun.c \
	libnm/nm-device-vlan.c \
	libnm/nm-device-vxlan.c \
	libnm/nm-device-wifi.c \
	libnm/nm-device-wimax.c \
1093
	libnm/nm-device-wireguard.c \
1094
	libnm/nm-device-wpan.c \
1095 1096 1097 1098
	libnm/nm-device.c \
	libnm/nm-dhcp-config.c \
	libnm/nm-dhcp4-config.c \
	libnm/nm-dhcp6-config.c \
1099
	libnm/nm-dns-manager.c \
1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112
	libnm/nm-ip-config.c \
	libnm/nm-ip4-config.c \
	libnm/nm-ip6-config.c \
	libnm/nm-manager.c \
	libnm/nm-object.c \
	libnm/nm-remote-connection.c \
	libnm/nm-remote-settings.c \
	libnm/nm-secret-agent-old.c \
	libnm/nm-vpn-connection.c \
	libnm/nm-vpn-plugin-old.c \
	libnm/nm-vpn-editor.c \
	libnm/nm-vpn-service-plugin.c \
	libnm/nm-wimax-nsp.c
1113
libnm_lib_c_mkenums = \
1114 1115
	libnm/nm-enum-types.c

1116 1117 1118
libnm_lib_cppflags = \
	-I$(srcdir)/libnm \
	-I$(builddir)/libnm \
1119
	$(dflt_cppflags_libnm_core) \
1120
	-DG_LOG_DOMAIN=\""libnm"\" \
1121
	-DNETWORKMANAGER_COMPILATION=NM_NETWORKMANAGER_COMPILATION_LIBNM \
1122
	$(NULL)
1123

1124
libnminclude_HEADERS += \
1125
	$(libnm_lib_h_pub_real)
1126 1127

nodist_libnminclude_HEADERS += \
1128
	$(libnm_lib_h_pub_mkenums)
1129 1130 1131

###############################################################################

1132
noinst_LTLIBRARIES += libnm/libnm-utils.la
1133 1134

libnm_libnm_utils_la_CPPFLAGS = \
1135
	$(INTROSPECTION_CFLAGS) \
1136 1137 1138 1139 1140 1141 1142
	$(libnm_lib_cppflags)

libnm_libnm_utils_la_SOURCES = \
	libnm/nm-libnm-utils.c

libnm_libnm_utils_la_LIBADD = \
	libnm-core/libnm-core.la \
1143
	$(libnm_crypto_lib) \
1144
	introspection/libnmdbus.la \
1145 1146 1147
	shared/nm-utils/libnm-utils-base.la \
	$(GLIB_LIBS) \
	$(NULL)
1148 1149 1150 1151 1152

$(libnm_libnm_utils_la_OBJECTS) : $(libnm_lib_h_pub_mkenums)

###############################################################################

1153 1154 1155
lib_LTLIBRARIES += libnm/libnm.la

GLIB_GENERATED += \
1156 1157
	$(libnm_lib_h_pub_mkenums) \
	$(libnm_lib_c_mkenums)
1158
nm_enum_types_sources = \
1159
	$(libnm_lib_h_pub_mkenums) \
1160
	$(libnm_lib_h_pub_real)
1161 1162 1163
nm_enum_types_MKENUMS_H_FLAGS = --identifier-prefix NM --fhead '\#include <nm-core-enum-types.h>\n'
nm_enum_types_MKENUMS_C_FLAGS = --identifier-prefix NM --fhead '\#include "nm-default.h"\n'

1164 1165 1166 1167
$(dispatcher_nm_dispatcher_OBJECTS):                    $(libnm_lib_h_pub_mkenums)
$(dispatcher_libnm_dispatcher_core_la_OBJECTS):         $(libnm_lib_h_pub_mkenums)
$(libnm_libnm_la_OBJECTS):                              $(libnm_lib_h_pub_mkenums)
$(libnm_tests_libnm_vpn_plugin_utils_test_la_OBJECTS):  $(libnm_core_lib_h_pub_mkenums)
1168

1169
libnm_libnm_la_CPPFLAGS = \
1170
	$(libnm_lib_cppflags) \
1171 1172
	$(LIBUDEV_CFLAGS) \
	$(SANITIZER_LIB_CFLAGS)
1173 1174

libnm_libnm_la_SOURCES = \
1175 1176 1177 1178 1179
	$(libnm_lib_h_pub_real) \
	$(libnm_lib_h_priv) \
	$(libnm_lib_c_real)

nodist_libnm_libnm_la_SOURCES = \
1180 1181
	$(libnm_lib_h_pub_mkenums) \
	$(libnm_lib_c_mkenums)
1182 1183 1184 1185 1186

EXTRA_libnm_libnm_la_DEPENDENCIES = \
	libnm/libnm.ver

libnm_libnm_la_LIBADD = \
1187
	libnm/libnm-utils.la \
1188
	shared/nm-utils/libnm-utils-udev.la \
1189 1190 1191
	$(DL_LIBS) \
	$(GLIB_LIBS) \
	$(UUID_LIBS) \
1192
	$(NULL)
1193 1194 1195 1196

libnm_libnm_la_LDFLAGS = \
	-Wl,--version-script="$(srcdir)/libnm/libnm.ver" \
	$(CODE_COVERAGE_LDFLAGS) \
1197
	$(SANITIZER_LIB_LDFLAGS) \
1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211 1212 1213
	-version-info "1:0:1"

check-local-exports-libnm: libnm/libnm.la
	$(srcdir)/tools/check-exports.sh "$(builddir)/libnm/.libs/libnm.so" "$(srcdir)/libnm/libnm.ver"

check_local += check-local-exports-libnm

pkgconfig_DATA += libnm/libnm.pc

DISTCLEANFILES += \
	libnm/libnm.pc

EXTRA_DIST += \
	libnm/libnm.pc.in \
	libnm/libnm.ver

1214
libnm_NM_1_0_typelib =
1215 1216

if HAVE_INTROSPECTION
1217 1218
libnm_NM_1_0_typelib += libnm/NM-1.0.typelib

1219 1220
libnm/NM-1.0.gir: libnm/libnm.la
libnm_NM_1_0_gir_INCLUDES = Gio-2.0
1221
libnm_NM_1_0_gir_PACKAGES = gio-2.0