Makefile.am 37.9 KB
Newer Older
D
Daniel Veillard 已提交
1 2
## Process this file with automake to produce Makefile.in

3 4 5 6 7 8 9
# No libraries with the exception of LIBXML should be listed
# here. List them against the individual XXX_la_CFLAGS targets
# that actually use them
INCLUDES =							\
		-I$(top_srcdir)/gnulib/lib			\
		-I../gnulib/lib					\
		-I../include					\
10
		-I@top_srcdir@/src/util				\
11 12 13 14 15 16 17 18
		-I@top_srcdir@/include				\
		$(DRIVER_MODULE_CFLAGS)				\
		$(LIBXML_CFLAGS)				\
		-DLIBDIR=\""$(libdir)"\"			\
		-DBINDIR=\""$(libexecdir)"\"			\
		-DSBINDIR=\""$(sbindir)"\"			\
		-DSYSCONF_DIR="\"$(sysconfdir)\""		\
		-DLOCALEBASEDIR=\""$(datadir)/locale"\"		\
19
		-DPKGDATADIR=\""$(pkgdatadir)"\"		\
20 21 22
		-DLOCAL_STATE_DIR=\""$(localstatedir)"\"	\
		-DGETTEXT_PACKAGE=\"$(PACKAGE)\"		\
		$(WARN_CFLAGS)					\
23 24 25
		$(LOCK_CHECKING_CFLAGS)			\
		-DIN_LIBVIRT				\
		$(WIN32_EXTRA_CFLAGS)
26

27 28 29
AM_CFLAGS = $(COVERAGE_CFLAGS)
AM_LDFLAGS = $(COVERAGE_LDFLAGS)

30
EXTRA_DIST = $(conf_DATA)
31

32 33
BUILT_SOURCES =

34 35 36
if WITH_NETWORK
UUID=$(shell uuidgen 2>/dev/null)
endif
37

C
Chris Lalancette 已提交
38
lib_LTLIBRARIES = libvirt.la libvirt-qemu.la
39

40 41 42
moddir = $(libdir)/libvirt/drivers
mod_LTLIBRARIES =

A
Amy Griffis 已提交
43 44
confdir = $(sysconfdir)/libvirt
conf_DATA =
45

46 47 48 49 50 51
augeasdir = $(datadir)/augeas/lenses
augeas_DATA =

augeastestdir = $(datadir)/augeas/lenses/tests
augeastest_DATA =

52 53
# These files are not related to driver APIs. Simply generic
# helper APIs for various purposes
54
UTIL_SOURCES =							\
55
		util/authhelper.c util/authhelper.h		\
56
		util/bitmap.c util/bitmap.h			\
57 58 59 60 61 62
		util/bridge.c util/bridge.h			\
		util/buf.c util/buf.h				\
		util/conf.c util/conf.h				\
		util/cgroup.c util/cgroup.h			\
		util/event.c util/event.h			\
		util/hash.c util/hash.h				\
D
Daniel Veillard 已提交
63
		util/hooks.c util/hooks.h			\
64
		util/iptables.c util/iptables.h			\
G
Gerhard Stenzel 已提交
65
		util/ebtables.c util/ebtables.h			\
66
		util/dnsmasq.c util/dnsmasq.h                   \
67
		util/json.c util/json.h				\
68
		util/logging.c util/logging.h			\
69
		util/macvtap.c util/macvtap.h			\
70 71
		util/memory.c util/memory.h			\
		util/pci.c util/pci.h				\
72
		util/processinfo.c util/processinfo.h		\
73
		util/hostusb.c util/hostusb.h			\
74
		util/network.c util/network.h			\
75
		util/interface.c util/interface.h		\
76 77
		util/qparams.c util/qparams.h			\
		util/stats_linux.c util/stats_linux.h		\
78
		util/storage_file.c util/storage_file.h		\
79 80 81 82 83 84 85 86 87
		util/threads.c util/threads.h			\
		util/threads-pthread.h				\
		util/threads-win32.h				\
		util/uuid.c util/uuid.h				\
		util/util.c util/util.h				\
		util/xml.c util/xml.h				\
		util/virterror.c util/virterror_internal.h

EXTRA_DIST += util/threads-pthread.c util/threads-win32.c
88

89
# Internal generic driver infrastructure
90
NODE_INFO_SOURCES = nodeinfo.h nodeinfo.c
91
DRIVER_SOURCES =						\
92
		driver.c driver.h				\
93 94
		internal.h					\
		datatypes.c datatypes.h				\
95
		$(NODE_INFO_SOURCES)				\
96 97 98
		libvirt.c libvirt_internal.h


99
# XML configuration format handling sources
100 101
# Domain driver generic impl APIs
DOMAIN_CONF_SOURCES =						\
102
		conf/capabilities.c conf/capabilities.h		\
103 104
		conf/domain_conf.c conf/domain_conf.h		\
		conf/domain_nwfilter.c conf/domain_nwfilter.h
105 106 107

DOMAIN_EVENT_SOURCES =						\
		conf/domain_event.c conf/domain_event.h
108 109

# Network driver generic impl APIs
110
NETWORK_CONF_SOURCES =						\
111
		conf/network_conf.c conf/network_conf.h
112

113 114
# Network filter driver generic impl APIs
NWFILTER_PARAM_CONF_SOURCES =					\
115 116
		conf/nwfilter_params.c conf/nwfilter_params.h	\
		conf/nwfilter_conf.h
117 118 119 120 121

NWFILTER_CONF_SOURCES =					\
		$(NWFILTER_PARAM_CONF_SOURCES)			\
		conf/nwfilter_conf.c conf/nwfilter_conf.h

122
# Storage driver generic impl APIs
123 124
STORAGE_CONF_SOURCES =                                         \
		conf/storage_conf.h conf/storage_conf.c
125

126
# Interface driver generic impl APIs
127 128
INTERFACE_CONF_SOURCES =                                       \
		conf/interface_conf.c conf/interface_conf.h
129

130
# Secret driver generic impl APIs
131 132 133 134 135 136 137 138 139 140
SECRET_CONF_SOURCES =                                          \
		conf/secret_conf.h conf/secret_conf.c

# Network driver generic impl APIs
NODE_DEVICE_CONF_SOURCES =                                     \
		conf/node_device_conf.c conf/node_device_conf.h

ENCRYPTION_CONF_SOURCES =					\
		conf/storage_encryption_conf.c conf/storage_encryption_conf.h

141 142 143
CPU_CONF_SOURCES =						\
		conf/cpu_conf.c conf/cpu_conf.h

144 145 146 147
CONF_SOURCES =							\
		$(DOMAIN_CONF_SOURCES)				\
		$(DOMAIN_EVENT_SOURCES)				\
		$(NETWORK_CONF_SOURCES)				\
148
		$(NWFILTER_CONF_SOURCES)			\
149 150 151 152
		$(NODE_DEVICE_CONF_SOURCES)			\
		$(STORAGE_CONF_SOURCES)				\
		$(ENCRYPTION_CONF_SOURCES)			\
		$(INTERFACE_CONF_SOURCES)			\
153 154
		$(SECRET_CONF_SOURCES)				\
		$(CPU_CONF_SOURCES)
155

156 157
# The remote RPC driver, covering domains, storage, networks, etc
REMOTE_DRIVER_SOURCES =						\
158 159
		gnutls_1_0_compat.h			\
		remote/remote_driver.c remote/remote_driver.h	\
160
		remote/remote_protocol.c			\
C
Chris Lalancette 已提交
161 162 163
		remote/remote_protocol.h			\
		remote/qemu_protocol.c				\
		remote/qemu_protocol.h
164

E
Eric Blake 已提交
165 166
EXTRA_DIST += remote/remote_protocol.x remote/qemu_protocol.x \
		remote/rpcgen_fix.pl
167

168 169 170 171 172 173 174 175 176 177
# Ensure that we don't change the struct or member names or member ordering
# in remote_protocol.x  The embedded perl below needs a few comments, and
# presumes you know what pdwtags output looks like:
# * use -0777 -n to slurp the entire file into $_.
# * the "split" splits on the /* DD */ comments, so that $p iterates
#     through the struct definitions.
# * process only "struct remote_..." entries
# * remove comments and preceding TAB throughout
# * remove empty lines throughout
# * remove white space at end of buffer
178 179 180 181 182 183 184 185 186 187

# With pdwtags 1.8, --verbose output includes separators like these:
# /* 93 */
# /* <0> (null):0 */
# whereas with pdwtags 1.3, they look like this:
# /* <2d2> /usr/include/libio.h:180 */
# The concatenation of the following regexps matches both cases.
r1 = (?:/\* \d+ \*/\n)?
r2 = /\* <[[:xdigit:]]+> \S+:\d+ \*/

188 189
.PHONY: remote_protocol-structs
remote_protocol-structs:
190
	$(AM_V_GEN)if (pdwtags --help) > /dev/null 2>&1; then		\
191
	  pdwtags --verbose libvirt_driver_remote_la-remote_protocol.$(OBJEXT) \
192
	    | perl -0777 -n						\
193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209
		-e 'foreach my $$p (split m!\n\n$(r1)$(r2)\n!) {'	\
		-e '  if ($$p =~ /^struct remote_/) {'			\
		-e '    $$p =~ s!\t*/\*.*?\*/!!sg;'			\
		-e '    $$p =~ s!\s+\n!\n!sg;'				\
		-e '    $$p =~ s!\s+$$!!;'				\
		-e '    print "$$p\n";'					\
		-e '    $$n++;'						\
		-e '  }'						\
		-e '}'							\
		-e 'END {'						\
		-e '  if ($$n < 300) {'					\
		-e '    warn "WARNING: your pdwtags program is too old\n";' \
		-e '    warn "WARNING: skipping the $@ test\n";'	\
		-e '    warn "WARNING: install dwarves-1.3 or newer\n";' \
		-e '    exit 8;'					\
		-e '  }'						\
		-e '}'							\
210
		> $@-t;							\
211
          case $$? in 8) exit 0;; 0) ;; *) exit 1;; esac;		\
212
	  diff -u $@-t $(srcdir)/$@; st=$$?; rm -f $@-t; exit $$st;	\
213
	else								\
214 215
	  echo 'WARNING: you lack pdwtags; skipping the $@ test' >&2;	\
	  echo 'WARNING: install the dwarves package to get pdwtags' >&2; \
216 217 218 219
	fi
EXTRA_DIST += remote_protocol-structs
check-local: remote_protocol-structs

220 221
# Mock driver, covering domains, storage, networks, etc
TEST_DRIVER_SOURCES =						\
222
		test/test_driver.c test/test_driver.h
223 224 225 226 227



# Now the Hypervisor specific drivers
XEN_DRIVER_SOURCES =						\
228 229 230 231 232 233 234 235
		xen/proxy_internal.c xen/proxy_internal.h	\
		xen/sexpr.c xen/sexpr.h				\
		xen/block_stats.c xen/block_stats.h		\
		xen/xen_hypervisor.c xen/xen_hypervisor.h	\
		xen/xen_driver.c xen/xen_driver.h		\
		xen/xend_internal.c xen/xend_internal.h		\
		xen/xm_internal.c xen/xm_internal.h		\
		xen/xs_internal.c xen/xs_internal.h
236
if WITH_XEN_INOTIFY
237
XEN_DRIVER_SOURCES += xen/xen_inotify.c xen/xen_inotify.h
238
endif
239 240

LXC_DRIVER_SOURCES =						\
241 242 243
		lxc/lxc_conf.c lxc/lxc_conf.h			\
		lxc/lxc_container.c lxc/lxc_container.h		\
		lxc/lxc_driver.c lxc/lxc_driver.h		\
244
		lxc/veth.c lxc/veth.h
245

246
LXC_CONTROLLER_SOURCES =					\
247 248 249
		lxc/lxc_conf.c lxc/lxc_conf.h			\
		lxc/lxc_container.c lxc/lxc_container.h		\
		lxc/lxc_controller.c				\
250
		lxc/veth.c lxc/veth.h
251

J
Jamie Strandboge 已提交
252 253 254
SECURITY_DRIVER_APPARMOR_HELPER_SOURCES =			\
		security/virt-aa-helper.c

255 256 257
PHYP_DRIVER_SOURCES =						\
		phyp/phyp_driver.c phyp/phyp_driver.h

258
OPENVZ_DRIVER_SOURCES =						\
259 260
		openvz/openvz_conf.c openvz/openvz_conf.h	\
		openvz/openvz_driver.c openvz/openvz_driver.h
261

262 263 264
VBOX_DRIVER_SOURCES =						\
        vbox/vbox_XPCOMCGlue.c vbox/vbox_XPCOMCGlue.h		\
        vbox/vbox_driver.c vbox/vbox_driver.h			\
265
        vbox/vbox_V2_2.c vbox/vbox_CAPI_v2_2.h			\
266
        vbox/vbox_V3_0.c vbox/vbox_CAPI_v3_0.h			\
267 268
        vbox/vbox_V3_1.c vbox/vbox_CAPI_v3_1.h			\
        vbox/vbox_V3_2.c vbox/vbox_CAPI_v3_2.h
269

270 271
VBOX_DRIVER_EXTRA_DIST = vbox/vbox_tmpl.c vbox/README

272
QEMU_DRIVER_SOURCES =						\
273
		qemu/qemu_conf.c qemu/qemu_conf.h		\
274
		qemu/qemu_monitor.c qemu/qemu_monitor.h		\
275 276
		qemu/qemu_monitor_text.c			\
		qemu/qemu_monitor_text.h			\
D
Daniel P. Berrange 已提交
277 278 279
		qemu/qemu_monitor_json.c			\
		qemu/qemu_monitor_json.h			\
		qemu/qemu_driver.c qemu/qemu_driver.h		\
E
Eric Blake 已提交
280
		qemu/qemu_bridge_filter.c			\
281 282
		qemu/qemu_bridge_filter.h			\
		qemu/qemu_security_stacked.h			\
283 284 285
		qemu/qemu_security_stacked.c			\
		qemu/qemu_security_dac.h			\
		qemu/qemu_security_dac.c
R
Richard W.M. Jones 已提交
286

287 288
XENAPI_DRIVER_SOURCES =								\
		xenapi/xenapi_driver.c xenapi/xenapi_driver.h	\
289
		xenapi/xenapi_driver_private.h					\
290 291
		xenapi/xenapi_utils.c xenapi/xenapi_utils.h

292
UML_DRIVER_SOURCES =						\
D
Daniel P. Berrange 已提交
293 294
		uml/uml_conf.c uml/uml_conf.h			\
		uml/uml_driver.c uml/uml_driver.h
295

296 297 298 299 300 301
ONE_DRIVER_SOURCES =						\
		./opennebula/one_conf.c				\
		./opennebula/one_conf.h				\
		./opennebula/one_driver.c			\
		./opennebula/one_driver.h			\
		./opennebula/one_client.c			\
302
		./opennebula/one_client.h
D
Daniel Veillard 已提交
303

304
ESX_DRIVER_SOURCES =						\
305
		esx/esx_private.h						\
306
		esx/esx_driver.c esx/esx_driver.h		\
307 308 309 310 311
		esx/esx_interface_driver.c esx/esx_interface_driver.h		\
		esx/esx_network_driver.c esx/esx_network_driver.h		\
		esx/esx_storage_driver.c esx/esx_storage_driver.h		\
		esx/esx_device_monitor.c esx/esx_device_monitor.h		\
		esx/esx_secret_driver.c esx/esx_secret_driver.h		\
M
Matthias Bolte 已提交
312
		esx/esx_nwfilter_driver.c esx/esx_nwfilter_driver.h		\
313 314
		esx/esx_util.c esx/esx_util.h			\
		esx/esx_vi.c esx/esx_vi.h			\
315 316 317 318
		esx/esx_vi_methods.c esx/esx_vi_methods.h	\
		esx/esx_vi_types.c esx/esx_vi_types.h		\
		esx/esx_vmx.c esx/esx_vmx.h

319
ESX_DRIVER_GENERATED =							\
320 321
		esx/esx_vi_methods.generated.c				\
		esx/esx_vi_methods.generated.h				\
322 323 324 325 326 327 328 329 330 331 332 333 334
		esx/esx_vi_types.generated.c				\
		esx/esx_vi_types.generated.h				\
		esx/esx_vi_types.generated.typedef			\
		esx/esx_vi_types.generated.typeenum			\
		esx/esx_vi_types.generated.typetostring			\
		esx/esx_vi_types.generated.typefromstring

ESX_DRIVER_EXTRA_DIST =						\
		esx/README						\
		esx/esx_vi_generator.input				\
		esx/esx_vi_generator.py					\
		$(ESX_DRIVER_GENERATED)

335
NETWORK_DRIVER_SOURCES =					\
336
		network/bridge_driver.h network/bridge_driver.c
337

338
INTERFACE_DRIVER_SOURCES =					\
339
		interface/netcf_driver.h interface/netcf_driver.c
340

341
SECRET_DRIVER_SOURCES =						\
342
		secret/secret_driver.h secret/secret_driver.c
343

344
# Storage backend specific impls
345
STORAGE_DRIVER_SOURCES =					\
346 347
		storage/storage_driver.h storage/storage_driver.c		\
		storage/storage_backend.h storage/storage_backend.c
348 349

STORAGE_DRIVER_FS_SOURCES =					\
350
		storage/storage_backend_fs.h storage/storage_backend_fs.c
R
Richard W.M. Jones 已提交
351

352
STORAGE_DRIVER_LVM_SOURCES =					\
353 354
		storage/storage_backend_logical.h			\
		storage/storage_backend_logical.c
355 356

STORAGE_DRIVER_ISCSI_SOURCES =					\
357
		storage/storage_backend_iscsi.h storage/storage_backend_iscsi.c
358

359
STORAGE_DRIVER_SCSI_SOURCES =					\
360
		storage/storage_backend_scsi.h storage/storage_backend_scsi.c
361

D
Dave Allan 已提交
362
STORAGE_DRIVER_MPATH_SOURCES =					\
363
		storage/storage_backend_mpath.h storage/storage_backend_mpath.c
D
Dave Allan 已提交
364

365
STORAGE_DRIVER_DISK_SOURCES =					\
366
		storage/storage_backend_disk.h storage/storage_backend_disk.c
367 368

STORAGE_HELPER_DISK_SOURCES =					\
369
		storage/parthelper.c
370

371 372 373
# Network filters
NWFILTER_DRIVER_SOURCES =					\
		nwfilter/nwfilter_driver.h nwfilter/nwfilter_driver.c	\
374 375 376
		nwfilter/nwfilter_gentech_driver.c			\
		nwfilter/nwfilter_gentech_driver.h			\
		nwfilter/nwfilter_ebiptables_driver.c			\
377 378 379
		nwfilter/nwfilter_ebiptables_driver.h			\
		nwfilter/nwfilter_learnipaddr.c				\
		nwfilter/nwfilter_learnipaddr.h
380

381

382
# Security framework and drivers for various models
383
SECURITY_DRIVER_SOURCES =					\
384
		security/security_driver.h security/security_driver.c
385

386
SECURITY_DRIVER_SELINUX_SOURCES =				\
387
		security/security_selinux.h security/security_selinux.c
388

J
Jamie Strandboge 已提交
389 390 391
SECURITY_DRIVER_APPARMOR_SOURCES =				\
		security/security_apparmor.h security/security_apparmor.c

392

393
NODE_DEVICE_DRIVER_SOURCES =					\
394 395 396
		node_device/node_device_driver.c \
		node_device/node_device_driver.h \
		node_device/node_device_linux_sysfs.c
397 398

NODE_DEVICE_DRIVER_HAL_SOURCES =				\
399
		node_device/node_device_hal.c			\
400
		node_device/node_device_hal.h
401

402
NODE_DEVICE_DRIVER_UDEV_SOURCES =				\
D
Daniel Veillard 已提交
403 404
		node_device/node_device_udev.c			\
		node_device/node_device_udev.h
405

J
Jiri Denemark 已提交
406 407 408 409 410
CPU_SOURCES =							\
		cpu/cpu.h cpu/cpu.c				\
		cpu/cpu_generic.h cpu/cpu_generic.c		\
		cpu/cpu_x86.h cpu/cpu_x86.c cpu/cpu_x86_data.h	\
		cpu/cpu_map.h cpu/cpu_map.c
411

J
Jiri Denemark 已提交
412 413
pkgdata_DATA =	cpu/cpu_map.xml

E
Eric Blake 已提交
414
EXTRA_DIST +=	$(pkgdata_DATA)
415

416 417 418 419 420 421
#########################
#
# Build up list of libvirt.la source files based on configure conditions
#
# First deal with sources usable in non-daemon context

422
noinst_LTLIBRARIES = libvirt_util.la
423 424
libvirt_la_LIBADD = $(libvirt_la_BUILT_LIBADD)
libvirt_la_BUILT_LIBADD = libvirt_util.la
425 426
libvirt_util_la_SOURCES =					\
		$(UTIL_SOURCES)
427 428
libvirt_util_la_CFLAGS = $(CAPNG_CFLAGS) $(YAJL_CFLAGS) $(LIBNL_CFLAGS) \
		$(AM_CFLAGS)
M
Matthias Bolte 已提交
429
libvirt_util_la_LIBADD = $(CAPNG_LIBS) $(YAJL_LIBS) $(LIBNL_LIBS) $(LIB_PTHREAD)
430

431 432

noinst_LTLIBRARIES += libvirt_conf.la
433
libvirt_la_BUILT_LIBADD += libvirt_conf.la
434
libvirt_conf_la_SOURCES = $(CONF_SOURCES)
435 436
libvirt_conf_la_CFLAGS = $(AM_CFLAGS)
libvirt_conf_la_LDFLAGS = $(AM_LDFLAGS)
437

J
Jiri Denemark 已提交
438
noinst_LTLIBRARIES += libvirt_cpu.la
439
libvirt_la_BUILT_LIBADD += libvirt_cpu.la
J
Jiri Denemark 已提交
440
libvirt_cpu_la_CFLAGS = \
441
		-I@top_srcdir@/src/conf $(AM_CFLAGS)
J
Jiri Denemark 已提交
442 443
libvirt_cpu_la_SOURCES = $(CPU_SOURCES)

444

445
noinst_LTLIBRARIES += libvirt_driver.la
446
libvirt_la_BUILT_LIBADD += libvirt_driver.la
447
libvirt_driver_la_SOURCES = $(DRIVER_SOURCES)
448

M
Matthias Bolte 已提交
449
libvirt_driver_la_CFLAGS = $(NUMACTL_CFLAGS) $(GNUTLS_CFLAGS) \
450
		-I@top_srcdir@/src/conf $(AM_CFLAGS)
M
Matthias Bolte 已提交
451
libvirt_driver_la_LIBADD = $(NUMACTL_LIBS) $(GNUTLS_LIBS)
452

453
USED_SYM_FILES = libvirt_private.syms
454

455
if WITH_TEST
456 457 458
if WITH_DRIVER_MODULES
mod_LTLIBRARIES += libvirt_driver_test.la
else
459
noinst_LTLIBRARIES += libvirt_driver_test.la
460
libvirt_la_BUILT_LIBADD += libvirt_driver_test.la
461
endif
462
libvirt_driver_test_la_CFLAGS = \
463
		-I@top_srcdir@/src/conf $(AM_CFLAGS)
464
if WITH_DRIVER_MODULES
465
libvirt_driver_test_la_LDFLAGS = -module -avoid-version $(AM_LDFLAGS)
466
endif
467
libvirt_driver_test_la_SOURCES = $(TEST_DRIVER_SOURCES)
468 469 470
endif

if WITH_REMOTE
471 472 473
if WITH_DRIVER_MODULES
mod_LTLIBRARIES += libvirt_driver_remote.la
else
474
noinst_LTLIBRARIES += libvirt_driver_remote.la
475
libvirt_la_BUILT_LIBADD += libvirt_driver_remote.la
476
endif
477 478
libvirt_driver_remote_la_CFLAGS =				\
		$(GNUTLS_CFLAGS)				\
479
		$(SASL_CFLAGS)					\
480 481 482
		-I@top_srcdir@/src/conf				\
		$(AM_CFLAGS)
libvirt_driver_remote_la_LDFLAGS = $(AM_LDFLAGS)
483
libvirt_driver_remote_la_LIBADD = $(GNUTLS_LIBS) $(SASL_LIBS)
484 485 486
if WITH_DRIVER_MODULES
libvirt_driver_remote_la_LDFLAGS += -module -avoid-version
endif
487
libvirt_driver_remote_la_SOURCES = $(REMOTE_DRIVER_SOURCES)
488 489 490 491 492 493

if HAVE_RPCGEN
#
# Maintainer-only target for re-generating the derived .c/.h source
# files, which are actually derived from the .x file.
#
494
# For committing protocol changes to GIT, the GLIBC rpcgen *must*
495 496 497 498 499
# be used.
#
# Support for non-GLIB rpcgen is here as a convenience for
# non-Linux people needing to test changes during dev.
#
C
Chris Lalancette 已提交
500
rpcgen-normal:
501 502 503 504
	rm -f rp.c-t rp.h-t rp.c-t1 rp.c-t2 rp.h-t1
	$(RPCGEN) -h -o rp.h-t $(srcdir)/remote/remote_protocol.x
	$(RPCGEN) -c -o rp.c-t $(srcdir)/remote/remote_protocol.x
if HAVE_GLIBC_RPCGEN
P
Paolo Bonzini 已提交
505 506
	perl -w $(srcdir)/remote/rpcgen_fix.pl rp.h-t > rp.h-t1
	perl -w $(srcdir)/remote/rpcgen_fix.pl rp.c-t > rp.c-t1
507 508 509 510 511 512 513 514 515 516
	(echo '#include <config.h>'; cat rp.c-t1) > rp.c-t2
	chmod 0444 rp.c-t2 rp.h-t1
	mv -f rp.h-t1 $(srcdir)/remote/remote_protocol.h
	mv -f rp.c-t2 $(srcdir)/remote/remote_protocol.c
	rm -f rp.c-t rp.h-t rp.c-t1
else
	chmod 0444 rp.c-t rp.h-t
	mv -f rp.h-t $(srcdir)/remote/remote_protocol.h
	mv -f rp.c-t $(srcdir)/remote/remote_protocol.c
endif
C
Chris Lalancette 已提交
517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547

rpcgen-qemu:
	rm -f rp_qemu.c-t rp_qemu.h-t rp_qemu.c-t1 rp_qemu.c-t2 rp_qemu.h-t1
	$(RPCGEN) -h -o rp_qemu.h-t $(srcdir)/remote/qemu_protocol.x
	$(RPCGEN) -c -o rp_qemu.c-t $(srcdir)/remote/qemu_protocol.x
if HAVE_GLIBC_RPCGEN
	perl -w $(srcdir)/remote/rpcgen_fix.pl rp_qemu.h-t > rp_qemu.h-t1
	perl -w $(srcdir)/remote/rpcgen_fix.pl rp_qemu.c-t > rp_qemu.c-t1
	(echo '#include <config.h>'; cat rp_qemu.c-t1) > rp_qemu.c-t2
	chmod 0444 rp_qemu.c-t2 rp_qemu.h-t1
	mv -f rp_qemu.h-t1 $(srcdir)/remote/qemu_protocol.h
	mv -f rp_qemu.c-t2 $(srcdir)/remote/qemu_protocol.c
	rm -f rp_qemu.c-t rp_qemu.h-t rp_qemu.c-t1
else
	chmod 0444 rp_qemu.c-t rp_qemu.h-t
	mv -f rp_qemu.h-t $(srcdir)/remote/qemu_protocol.h
	mv -f rp_qemu.c-t $(srcdir)/remote/qemu_protocol.c
endif

#
# Maintainer-only target for re-generating the derived .c/.h source
# files, which are actually derived from the .x file.
#
# For committing protocol changes to GIT, the GLIBC rpcgen *must*
# be used.
#
# Support for non-GLIB rpcgen is here as a convenience for
# non-Linux people needing to test changes during dev.
#
rpcgen: rpcgen-normal rpcgen-qemu

548 549 550
endif

remote/remote_protocol.c: remote/remote_protocol.h
551 552 553
endif

if WITH_XEN
554 555 556
if WITH_DRIVER_MODULES
mod_LTLIBRARIES += libvirt_driver_xen.la
else
557
noinst_LTLIBRARIES += libvirt_driver_xen.la
558
libvirt_la_BUILT_LIBADD += libvirt_driver_xen.la
559
endif
E
Eric Blake 已提交
560
libvirt_driver_xen_la_CFLAGS =					\
561
		$(XEN_CFLAGS)					\
562 563 564
		-I@top_srcdir@/src/conf				\
		$(AM_CFLAGS)
libvirt_driver_xen_la_LDFLAGS = $(AM_LDFLAGS)
565
libvirt_driver_xen_la_LIBADD = $(XEN_LIBS)
566 567 568
if WITH_DRIVER_MODULES
libvirt_driver_xen_la_LDFLAGS += -module -avoid-version
endif
569
libvirt_driver_xen_la_SOURCES = $(XEN_DRIVER_SOURCES)
570 571
endif

572 573 574 575 576
if WITH_PHYP
if WITH_DRIVER_MODULES
mod_LTLIBRARIES += libvirt_driver_phyp.la
else
noinst_LTLIBRARIES += libvirt_driver_phyp.la
577
libvirt_la_BUILT_LIBADD += libvirt_driver_phyp.la
578
endif
579
libvirt_driver_phyp_la_LIBADD = $(LIBSSH2_LIBS)
580
libvirt_driver_phyp_la_CFLAGS = $(LIBSSH2_CFLAGS) \
581
		-I@top_srcdir@/src/conf $(AM_CFLAGS)
582 583 584
libvirt_driver_phyp_la_SOURCES = $(PHYP_DRIVER_SOURCES)
endif

585
if WITH_OPENVZ
586 587 588
if WITH_DRIVER_MODULES
mod_LTLIBRARIES += libvirt_driver_openvz.la
else
589
noinst_LTLIBRARIES += libvirt_driver_openvz.la
590
libvirt_la_BUILT_LIBADD += libvirt_driver_openvz.la
591
endif
592
libvirt_driver_openvz_la_CFLAGS = \
593
		-I@top_srcdir@/src/conf $(AM_CFLAGS)
594
if WITH_DRIVER_MODULES
595
libvirt_driver_openvz_la_LDFLAGS = -module -avoid-version $(AM_LDFLAGS)
596
endif
597
libvirt_driver_openvz_la_SOURCES = $(OPENVZ_DRIVER_SOURCES)
598 599
endif

600 601 602 603 604
if WITH_VBOX
if WITH_DRIVER_MODULES
mod_LTLIBRARIES += libvirt_driver_vbox.la
else
noinst_LTLIBRARIES += libvirt_driver_vbox.la
605
libvirt_la_BUILT_LIBADD += libvirt_driver_vbox.la
606
endif
607
libvirt_driver_vbox_la_CFLAGS = \
608
		-I@top_srcdir@/src/conf $(AM_CFLAGS)
609
if WITH_DRIVER_MODULES
610
libvirt_driver_vbox_la_LDFLAGS = -module -avoid-version $(AM_LDFLAGS)
611
endif
612
libvirt_driver_vbox_la_LIBADD = $(DLOPEN_LIBS)
613 614 615
libvirt_driver_vbox_la_SOURCES = $(VBOX_DRIVER_SOURCES)
endif

616 617 618 619 620
if WITH_XENAPI
if WITH_DRIVER_MODULES
mod_LTLIBRARIES += libvirt_driver_xenapi.la
else
noinst_LTLIBRARIES += libvirt_driver_xenapi.la
621
libvirt_la_BUILT_LIBADD += libvirt_driver_xenapi.la
622 623
endif
libvirt_driver_xenapi_la_CFLAGS = $(LIBXENSERVER_CFLAGS) $(LIBCURL_CFLAGS) \
624 625
		-I@top_srcdir@/src/conf $(AM_CFLAGS)
libvirt_driver_xenapi_la_LDFLAGS = $(AM_LDFLAGS)
626
libvirt_driver_xenapi_la_LIBADD = $(LIBXENSERVER_LIBS) $(LIBCURL_LIBS)
627 628 629 630 631 632
if WITH_DRIVER_MODULES
libvirt_driver_xenapi_la_LDFLAGS += -module -avoid-version
endif
libvirt_driver_xenapi_la_SOURCES = $(XENAPI_DRIVER_SOURCES)
endif

633
if WITH_QEMU
634 635 636
if WITH_DRIVER_MODULES
mod_LTLIBRARIES += libvirt_driver_qemu.la
else
637
noinst_LTLIBRARIES += libvirt_driver_qemu.la
638
# Stateful, so linked to daemon instead
639
#libvirt_la_BUILT_LIBADD += libvirt_driver_qemu.la
640
endif
641
libvirt_driver_qemu_la_CFLAGS = $(NUMACTL_CFLAGS) \
642 643
		-I@top_srcdir@/src/conf $(AM_CFLAGS)
libvirt_driver_qemu_la_LDFLAGS = $(AM_LDFLAGS)
644
libvirt_driver_qemu_la_LIBADD = $(NUMACTL_LIBS)
645 646 647
if WITH_DRIVER_MODULES
libvirt_driver_qemu_la_LDFLAGS += -module -avoid-version
endif
648
libvirt_driver_qemu_la_SOURCES = $(QEMU_DRIVER_SOURCES)
649

A
Amy Griffis 已提交
650
conf_DATA += qemu/qemu.conf
651

652 653
augeas_DATA += qemu/libvirtd_qemu.aug
augeastest_DATA += qemu/test_libvirtd_qemu.aug
654

655
endif
656 657
EXTRA_DIST += qemu/qemu.conf qemu/libvirtd_qemu.aug \
		qemu/test_libvirtd_qemu.aug qemu/THREADS.txt
658

659 660

if WITH_LXC
661 662 663
if WITH_DRIVER_MODULES
mod_LTLIBRARIES += libvirt_driver_lxc.la
else
664
noinst_LTLIBRARIES += libvirt_driver_lxc.la
665
# Stateful, so linked to daemon instead
666
#libvirt_la_BUILT_LIBADD += libvirt_driver_lxc.la
667
endif
668
libvirt_driver_lxc_la_CFLAGS = \
669
		-I@top_srcdir@/src/conf $(AM_CFLAGS)
670
if WITH_DRIVER_MODULES
671
libvirt_driver_lxc_la_LDFLAGS = -module -avoid-version $(AM_LDFLAGS)
672
endif
673
libvirt_driver_lxc_la_SOURCES = $(LXC_DRIVER_SOURCES)
A
Amy Griffis 已提交
674 675 676

conf_DATA += lxc/lxc.conf

677 678 679
augeas_DATA += lxc/libvirtd_lxc.aug
augeastest_DATA += lxc/test_libvirtd_lxc.aug

680
endif
681
EXTRA_DIST += lxc/lxc.conf lxc/libvirtd_lxc.aug lxc/test_libvirtd_lxc.aug
682

683
if WITH_UML
684 685 686
if WITH_DRIVER_MODULES
mod_LTLIBRARIES += libvirt_driver_uml.la
else
687 688
noinst_LTLIBRARIES += libvirt_driver_uml.la
# Stateful, so linked to daemon instead
689
#libvirt_la_BUILT_LIBADD += libvirt_driver_uml.la
690
endif
691
libvirt_driver_uml_la_CFLAGS = $(NUMACTL_CFLAGS) \
692 693
		-I@top_srcdir@/src/conf $(AM_CFLAGS)
libvirt_driver_uml_la_LDFLAGS = $(AM_LDFLAGS)
694
libvirt_driver_uml_la_LIBADD = $(NUMACTL_LIBS)
695 696 697
if WITH_DRIVER_MODULES
libvirt_driver_uml_la_LDFLAGS += -module -avoid-version
endif
698 699
libvirt_driver_uml_la_SOURCES = $(UML_DRIVER_SOURCES)
endif
700

D
Daniel Veillard 已提交
701 702 703 704 705 706
if WITH_ONE
if WITH_DRIVER_MODULES
mod_LTLIBRARIES += libvirt_driver_one.la
else
noinst_LTLIBRARIES += libvirt_driver_one.la
# Stateful, so linked to daemon instead
707
#libvirt_la_BUILT_LIBADD  += libvirt_driver_one.la
D
Daniel Veillard 已提交
708
endif
709
libvirt_driver_one_la_CFLAGS = $(XMLRPC_CFLAGS) \
710 711
		-I@top_srcdir@/src/conf $(AM_CFLAGS)
libvirt_driver_one_la_LDFLAGS = $(AM_LDFLAGS)
712
libvirt_driver_one_la_LIBADD = $(XMLRPC_LIBS)
D
Daniel Veillard 已提交
713 714 715 716 717 718 719 720
#libvirt_driver_one_la_CFLAGS  = "-DWITH_ONE"
if WITH_DRIVER_MODULES
libvirt_driver_one_la_LDFLAGS += -module -avoid-version
endif
libvirt_driver_one_la_SOURCES = $(ONE_DRIVER_SOURCES)
endif


721
BUILT_SOURCES += $(ESX_DRIVER_GENERATED)
D
Daniel Veillard 已提交
722

723 724
$(ESX_DRIVER_GENERATED): $(srcdir)/esx/esx_vi_generator.input $(srcdir)/esx/esx_vi_generator.py
	-srcdir=$(srcdir) $(srcdir)/esx/esx_vi_generator.py
D
Daniel Veillard 已提交
725

726 727 728 729 730
if WITH_ESX
if WITH_DRIVER_MODULES
mod_LTLIBRARIES += libvirt_driver_esx.la
else
noinst_LTLIBRARIES += libvirt_driver_esx.la
731
libvirt_la_BUILT_LIBADD += libvirt_driver_esx.la
732
endif
733
libvirt_driver_esx_la_CFLAGS = $(LIBCURL_CFLAGS) \
734 735
		-I@top_srcdir@/src/conf $(AM_CFLAGS)
libvirt_driver_esx_la_LDFLAGS = $(AM_LDFLAGS)
736
libvirt_driver_esx_la_LIBADD = $(LIBCURL_LIBS)
737 738 739 740
if WITH_DRIVER_MODULES
libvirt_driver_esx_la_LDFLAGS += -module -avoid-version
endif
libvirt_driver_esx_la_SOURCES = $(ESX_DRIVER_SOURCES)
741
libvirt_driver_esx_la_DEPENDENCIES = $(ESX_DRIVER_GENERATED)
742 743
endif

744
if WITH_NETWORK
745 746 747
if WITH_DRIVER_MODULES
mod_LTLIBRARIES += libvirt_driver_network.la
else
748
noinst_LTLIBRARIES += libvirt_driver_network.la
749
# Stateful, so linked to daemon instead
750
#libvirt_la_BUILT_LIBADD += libvirt_driver_network.la
751
endif
752
libvirt_driver_network_la_CFLAGS = \
753
		-I@top_srcdir@/src/conf $(AM_CFLAGS)
754
if WITH_DRIVER_MODULES
755
libvirt_driver_network_la_LDFLAGS = -module -avoid-version $(AM_LDFLAGS)
756
endif
757
libvirt_driver_network_la_SOURCES = $(NETWORK_DRIVER_SOURCES)
758
endif
759 760 761 762
EXTRA_DIST += network/default.xml



763

D
Daniel Veillard 已提交
764
if WITH_NETCF
765 766 767 768
if WITH_DRIVER_MODULES
mod_LTLIBRARIES += libvirt_driver_interface.la
else
noinst_LTLIBRARIES += libvirt_driver_interface.la
769
libvirt_la_BUILT_LIBADD += libvirt_driver_interface.la
770
endif
771
libvirt_driver_interface_la_CFLAGS = $(NETCF_CFLAGS) \
772 773
		-I@top_srcdir@/src/conf $(AM_CFLAGS)
libvirt_driver_interface_la_LDFLAGS = $(AM_LDFLAGS)
774
libvirt_driver_interface_la_LIBADD = $(NETCF_LIBS)
775 776 777 778
if WITH_DRIVER_MODULES
libvirt_driver_interface_la_LDFLAGS += -module -avoid-version
endif
libvirt_driver_interface_la_SOURCES = $(INTERFACE_DRIVER_SOURCES)
D
Daniel Veillard 已提交
779 780
endif

D
Daniel P. Berrange 已提交
781
if WITH_SECRETS
782 783 784 785
if WITH_DRIVER_MODULES
mod_LTLIBRARIES += libvirt_driver_secret.la
else
noinst_LTLIBRARIES += libvirt_driver_secret.la
786
# Stateful, so linked to daemon instead
787
#libvirt_la_BUILT_LIBADD += libvirt_driver_secret.la
788
endif
789
libvirt_driver_secret_la_CFLAGS = \
790
		-I@top_srcdir@/src/conf $(AM_CFLAGS)
791
if WITH_DRIVER_MODULES
792
libvirt_driver_secret_la_LDFLAGS = -module -avoid-version $(AM_LDFLAGS)
793
libvirt_driver_secret_la_LIBADD = ../gnulib/lib/libgnu.la
794 795
endif
libvirt_driver_secret_la_SOURCES = $(SECRET_DRIVER_SOURCES)
D
Daniel P. Berrange 已提交
796
endif
797

798 799
# Needed to keep automake quiet about conditionals
libvirt_driver_storage_la_SOURCES =
800
libvirt_driver_storage_la_CFLAGS = \
801 802
		-I@top_srcdir@/src/conf $(AM_CFLAGS)
libvirt_driver_storage_la_LDFLAGS = $(AM_LDFLAGS)
803
libvirt_driver_storage_la_LIBADD =
804
if WITH_STORAGE_DIR
805 806 807
if WITH_DRIVER_MODULES
mod_LTLIBRARIES += libvirt_driver_storage.la
else
808
noinst_LTLIBRARIES += libvirt_driver_storage.la
809
# Stateful, so linked to daemon instead
810
#libvirt_la_BUILT_LIBADD += libvirt_driver_storage.la
811 812
endif
if WITH_DRIVER_MODULES
813
libvirt_driver_storage_la_LDFLAGS += -module -avoid-version
814
endif
815 816
libvirt_driver_storage_la_SOURCES += $(STORAGE_DRIVER_SOURCES)
libvirt_driver_storage_la_SOURCES += $(STORAGE_DRIVER_FS_SOURCES)
817 818
endif

819
if WITH_STORAGE_LVM
820
libvirt_driver_storage_la_SOURCES += $(STORAGE_DRIVER_LVM_SOURCES)
821 822
endif

823
if WITH_STORAGE_ISCSI
824
libvirt_driver_storage_la_SOURCES += $(STORAGE_DRIVER_ISCSI_SOURCES)
825 826
endif

827 828 829 830
if WITH_STORAGE_SCSI
libvirt_driver_storage_la_SOURCES += $(STORAGE_DRIVER_SCSI_SOURCES)
endif

D
Dave Allan 已提交
831 832 833
if WITH_STORAGE_MPATH
libvirt_driver_storage_la_SOURCES += $(STORAGE_DRIVER_MPATH_SOURCES)
libvirt_driver_storage_la_CFLAGS += $(DEVMAPPER_CFLAGS)
834
libvirt_driver_storage_la_LIBADD += $(DEVMAPPER_LIBS)
D
Dave Allan 已提交
835 836
endif

837
if WITH_STORAGE_DISK
838
libvirt_driver_storage_la_SOURCES += $(STORAGE_DRIVER_DISK_SOURCES)
839
endif
840

841 842 843 844 845 846 847
if WITH_NODE_DEVICES
# Needed to keep automake quiet about conditionals
if WITH_DRIVER_MODULES
mod_LTLIBRARIES += libvirt_driver_nodedev.la
else
noinst_LTLIBRARIES += libvirt_driver_nodedev.la
# Stateful, so linked to daemon instead
848
#libvirt_la_BUILT_LIBADD += libvirt_driver_nodedev.la
849 850 851
endif
libvirt_driver_nodedev_la_SOURCES = $(NODE_DEVICE_DRIVER_SOURCES)

852
libvirt_driver_nodedev_la_CFLAGS = \
853 854
		-I@top_srcdir@/src/conf $(AM_CFLAGS)
libvirt_driver_nodedev_la_LDFLAGS = $(AM_LDFLAGS)
855
libvirt_driver_nodedev_la_LIBADD =
856 857 858
if HAVE_HAL
libvirt_driver_nodedev_la_SOURCES += $(NODE_DEVICE_DRIVER_HAL_SOURCES)
libvirt_driver_nodedev_la_CFLAGS += $(HAL_CFLAGS)
859
libvirt_driver_nodedev_la_LIBADD += $(HAL_LIBS)
860
endif
861 862
if HAVE_UDEV
libvirt_driver_nodedev_la_SOURCES += $(NODE_DEVICE_DRIVER_UDEV_SOURCES)
863
libvirt_driver_nodedev_la_CFLAGS += $(UDEV_CFLAGS) $(PCIACCESS_CFLAGS)
864
libvirt_driver_nodedev_la_LIBADD += $(UDEV_LIBS) $(PCIACCESS_LIBS)
865
endif
866 867 868 869 870 871 872

if WITH_DRIVER_MODULES
libvirt_driver_nodedev_la_LDFLAGS += -module -avoid-version
endif
endif


873 874 875 876
if WITH_NWFILTER
if WITH_DRIVER_MODULES
mod_LTLIBRARIES += libvirt_driver_nwfilter.la
else
877
libvirt_la_BUILT_LIBADD += libvirt_driver_nwfilter.la
878 879
noinst_LTLIBRARIES += libvirt_driver_nwfilter.la
endif
880
libvirt_driver_nwfilter_la_CFLAGS = $(LIBPCAP_CFLAGS) \
881 882
		-I@top_srcdir@/src/conf $(AM_CFLAGS)
libvirt_driver_nwfilter_la_LDFLAGS = $(LD_AMFLAGS)
883
libvirt_driver_nwfilter_la_LIBADD = $(LIBPCAP_LIBS)
884
if WITH_DRIVER_MODULES
885 886
libvirt_driver_nwfilter_la_LDFLAGS += -module -avoid-version
libvirt_driver_nwfilter_la_LIBADD += ../gnulib/lib/libgnu.la
887 888 889 890 891
endif
libvirt_driver_nwfilter_la_SOURCES = $(NWFILTER_DRIVER_SOURCES)
endif


892 893
libvirt_driver_security_la_SOURCES = $(SECURITY_DRIVER_SOURCES)
noinst_LTLIBRARIES += libvirt_driver_security.la
894
libvirt_la_BUILT_LIBADD += libvirt_driver_security.la
895
libvirt_driver_security_la_CFLAGS = \
896 897
		-I@top_srcdir@/src/conf $(AM_CFLAGS)
libvirt_driver_security_la_LDFLAGS = $(AM_LDFLAGS)
898
libvirt_driver_security_la_LIBADD =
899 900
if WITH_SECDRIVER_SELINUX
libvirt_driver_security_la_SOURCES += $(SECURITY_DRIVER_SELINUX_SOURCES)
J
Jim Fehlig 已提交
901
libvirt_driver_security_la_CFLAGS += $(SELINUX_CFLAGS)
902
libvirt_driver_security_la_LIBADD += $(SELINUX_LIBS)
903
endif
J
Jamie Strandboge 已提交
904 905 906
if WITH_SECDRIVER_APPARMOR
libvirt_driver_security_la_SOURCES += $(SECURITY_DRIVER_APPARMOR_SOURCES)
libvirt_driver_security_la_CFLAGS += $(APPARMOR_CFLAGS)
907
libvirt_driver_security_la_LIBADD += $(APPARMOR_LIBS)
J
Jamie Strandboge 已提交
908
endif
909

910 911 912 913 914 915 916
# Add all conditional sources just in case...
EXTRA_DIST +=							\
		$(TEST_DRIVER_SOURCES)				\
		$(REMOTE_DRIVER_SOURCES)			\
		$(XEN_DRIVER_SOURCES)				\
		$(QEMU_DRIVER_SOURCES)				\
		$(LXC_DRIVER_SOURCES)				\
917
		$(UML_DRIVER_SOURCES)				\
D
Daniel Veillard 已提交
918
		$(ONE_DRIVER_SOURCES)				\
919
		$(OPENVZ_DRIVER_SOURCES)			\
920
		$(PHYP_DRIVER_SOURCES)				\
921
		$(VBOX_DRIVER_SOURCES)				\
922
		$(XENAPI_DRIVER_SOURCES)			\
923
		$(ESX_DRIVER_SOURCES)				\
924
		$(ESX_DRIVER_EXTRA_DIST)			\
925
		$(NETWORK_DRIVER_SOURCES)			\
926
		$(INTERFACE_DRIVER_SOURCES)			\
927 928 929 930
		$(STORAGE_DRIVER_SOURCES)			\
		$(STORAGE_DRIVER_FS_SOURCES)			\
		$(STORAGE_DRIVER_LVM_SOURCES)			\
		$(STORAGE_DRIVER_ISCSI_SOURCES)			\
931
		$(STORAGE_DRIVER_SCSI_SOURCES)			\
D
Dave Allan 已提交
932
		$(STORAGE_DRIVER_MPATH_SOURCES)			\
933 934 935
		$(STORAGE_DRIVER_DISK_SOURCES)			\
		$(NODE_DEVICE_DRIVER_SOURCES)			\
		$(NODE_DEVICE_DRIVER_HAL_SOURCES)		\
936
		$(NODE_DEVICE_DRIVER_UDEV_SOURCES)		\
937
		$(NWFILTER_DRIVER_SOURCES)			\
938
		$(SECURITY_DRIVER_SELINUX_SOURCES)		\
J
Jamie Strandboge 已提交
939
		$(SECURITY_DRIVER_APPARMOR_SOURCES)		\
D
Daniel P. Berrange 已提交
940
		$(SECRET_DRIVER_SOURCES)			\
941
		$(VBOX_DRIVER_EXTRA_DIST)
942

943 944 945 946
check-local: augeas-check

.PHONY: augeas-check
augeas-check:
947
if WITH_QEMU
948
	$(AM_V_GEN)if test -x '$(AUGPARSE)'; then \
949 950 951 952 953
	    '$(AUGPARSE)' -I $(srcdir)/qemu \
	    $(srcdir)/qemu/test_libvirtd_qemu.aug; \
	fi
endif
if WITH_LXC
954
	$(AM_V_GEN)if test -x '$(AUGPARSE)'; then \
955 956 957 958 959
	    '$(AUGPARSE)' -I $(srcdir)/lxc \
	    $(srcdir)/lxc/test_libvirtd_lxc.aug; \
	fi
endif

960 961 962 963 964 965 966 967 968 969 970 971 972 973 974 975 976 977 978
#
# Build our version script.  This is composed of three parts:
#
# 1. libvirt_public.syms - public API.  These functions are always
# present in the library and should never change incompatibly.
#
# 2. libvirt_private.syms - private API.  These symbols are private and
# semantics may change on every release, hence the version number is
# spliced in at build time. This ensures that if libvirtd, virsh, or a
# driver module was built against one libvirt release, it will refuse to
# load with another where symbols may have same names but different
# semantics. Such symbols should never be visible in an (installed)
# public header file.
#
# 3. libvirt_*.syms - dynamic private API.  Like libvirt_private.syms,
# except that build options (such as --enable-debug) can mean these
# symbols aren't present at all.
#

979
if WITH_DRIVER_MODULES
980
USED_SYM_FILES += libvirt_driver_modules.syms
981
endif
982 983

if WITH_BRIDGE
984
USED_SYM_FILES += libvirt_bridge.syms
985
endif
986 987

if WITH_LINUX
988
USED_SYM_FILES += libvirt_linux.syms
989
endif
990

991
if WITH_MACVTAP
992
USED_SYM_FILES += libvirt_macvtap.syms
993
endif
994

995 996 997 998
if WITH_LIBVIRTD
USED_SYM_FILES += libvirt_daemon.syms
endif

999 1000 1001 1002
if WITH_NWFILTER
USED_SYM_FILES += libvirt_nwfilter.syms
endif

1003 1004 1005 1006 1007
EXTRA_DIST += \
  libvirt_public.syms		\
  libvirt_private.syms		\
  libvirt_driver_modules.syms	\
  libvirt_bridge.syms		\
1008
  libvirt_linux.syms		\
1009
  libvirt_macvtap.syms		\
1010 1011
  libvirt_daemon.syms		\
  libvirt_nwfilter.syms
1012

1013
BUILT_SOURCES += libvirt.syms libvirt.def libvirt_qemu.def
1014

1015
libvirt.syms: libvirt_public.syms $(USED_SYM_FILES)
1016 1017 1018 1019 1020 1021
	$(AM_V_GEN)rm -f $@-tmp $@ ; \
	printf '# WARNING: generated from the following:\n# $^\n\n' >$@-tmp && \
	cat $(srcdir)/libvirt_public.syms >>$@-tmp && \
	printf '\n\n# Private symbols\n\n' >>$@-tmp && \
	printf 'LIBVIRT_PRIVATE_$(VERSION) {\n\n'  >>$@-tmp && \
	printf 'global:\n\n' >>$@-tmp && \
1022
	for file in $(USED_SYM_FILES); do \
1023
	    cat $(srcdir)/$$file >>$@-tmp; \
1024 1025 1026
	done && \
	printf '\n\nlocal:\n*;\n\n};' >>$@-tmp && \
	chmod a-w $@-tmp && \
1027
	mv $@-tmp libvirt.syms
1028

1029 1030 1031 1032 1033 1034 1035
libvirt.def: libvirt.syms
	$(AM_V_GEN)rm -f -- $@-tmp $@ ; \
	printf 'EXPORTS\n' > $@-tmp && \
	sed -e '/^$$/d; /#/d; /:/d; /\}/d; /\*/d; /LIBVIRT_/d; s/[ \t]*\(.*\)\;/    \1/g' $^ >> $@-tmp && \
	chmod a-w $@-tmp && \
	mv $@-tmp libvirt.def

1036 1037 1038 1039 1040 1041 1042
libvirt_qemu.def: $(srcdir)/libvirt_qemu.syms
	$(AM_V_GEN)rm -f -- $@-tmp $@ ; \
	printf 'EXPORTS\n' > $@-tmp && \
	sed -e '/^$$/d; /#/d; /:/d; /\}/d; /\*/d; /LIBVIRT_/d; s/[ \t]*\(.*\)\;/    \1/g' $^ >> $@-tmp && \
	chmod a-w $@-tmp && \
	mv $@-tmp libvirt_qemu.def

1043 1044
# Empty source list - it merely links a bunch of convenience libs together
libvirt_la_SOURCES =
1045
libvirt_la_LDFLAGS = $(VERSION_SCRIPT_FLAGS)$(LIBVIRT_SYMBOL_FILE) \
1046
                     -version-info $(LIBVIRT_VERSION_INFO) \
1047
                    $(AM_LDFLAGS) \
1048
		    $(CYGWIN_EXTRA_LDFLAGS) $(MINGW_EXTRA_LDFLAGS)
1049
libvirt_la_BUILT_LIBADD += ../gnulib/lib/libgnu.la
1050
libvirt_la_LIBADD += $(LIBXML_LIBS) \
1051
		    $(DRIVER_MODULE_LIBS) \
1052
		    $(CYGWIN_EXTRA_LIBADD)
1053
libvirt_la_CFLAGS = -DIN_LIBVIRT $(AM_CFLAGS)
1054 1055 1056 1057 1058 1059
# Because we specify libvirt_la_DEPENDENCIES for $(LIBVIRT_SYMBOL_FILE), we
# lose automake's automatic dependencies on an appropriate subset of
# $(libvirt_la_LIBADD).  But we were careful to create
# $(libvirt_la_BUILT_LIBADD) as the subset that automake would have
# picked out for us.
libvirt_la_DEPENDENCIES = $(libvirt_la_BUILT_LIBADD) $(LIBVIRT_SYMBOL_FILE)
1060

1061 1062 1063
# Create an automake "convenience library" version of libvirt_la,
# just for testing, since the test harness requires access to internal
# bits and pieces that we don't want to make publicly accessible.
1064
noinst_LTLIBRARIES += libvirt_test.la
1065

1066
# Remove version script from convenience library
1067 1068
test_LDFLAGS =						\
  $$(echo '$(libvirt_la_LDFLAGS)'			\
1069
     |sed 's!$(VERSION_SCRIPT_FLAGS)$(LIBVIRT_SYMBOL_FILE)!!'	\
1070
     |sed 's!-version-info $(LIBVIRT_VERSION_INFO)!!')
1071 1072 1073 1074

# Just like the above, but with a slightly different set of public symbols.
libvirt_test_la_SOURCES = $(libvirt_la_SOURCES)
libvirt_test_la_LIBADD = $(libvirt_la_LIBADD)
1075 1076
libvirt_test_la_LDFLAGS = $(test_LDFLAGS) $(AM_LDFLAGS)
libvirt_test_la_CFLAGS = $(AM_CFLAGS)
1077

C
Chris Lalancette 已提交
1078 1079 1080
libvirt_qemu_la_SOURCES = libvirt-qemu.c
libvirt_qemu_la_LDFLAGS = $(VERSION_SCRIPT_FLAGS)$(LIBVIRT_QEMU_SYMBOL_FILE) \
                          -version-info $(LIBVIRT_VERSION_INFO) \
1081 1082 1083
                          $(CYGWIN_EXTRA_LDFLAGS) $(MINGW_EXTRA_LDFLAGS) \
			  $(AM_LDFLAGS)
libvirt_qemu_la_CFLAGS = $(AM_CFLAGS)
C
Chris Lalancette 已提交
1084
libvirt_qemu_la_LIBADD = libvirt.la $(CYGWIN_EXTRA_LIBADD)
E
Eric Blake 已提交
1085
EXTRA_DIST += $(LIBVIRT_QEMU_SYMBOL_FILE)
1086

1087 1088
libexec_PROGRAMS =

1089
if WITH_STORAGE_DISK
R
Richard W.M. Jones 已提交
1090
if WITH_LIBVIRTD
1091
libexec_PROGRAMS += libvirt_parthelper
1092

1093
libvirt_parthelper_SOURCES = $(STORAGE_HELPER_DISK_SOURCES)
1094
libvirt_parthelper_LDFLAGS = $(WARN_LDFLAGS) $(AM_LDFLAGS)
1095 1096 1097 1098 1099 1100
libvirt_parthelper_LDADD =		\
		$(LIBPARTED_LIBS)	\
		$(DEVMAPPER_LIBS)	\
		libvirt_util.la		\
		../gnulib/lib/libgnu.la

1101
libvirt_parthelper_CFLAGS = $(LIBPARTED_CFLAGS) $(AM_CFLAGS)
R
Richard W.M. Jones 已提交
1102
endif
1103
endif
1104 1105
EXTRA_DIST += $(STORAGE_HELPER_DISK_SOURCES)

1106

1107 1108 1109 1110 1111 1112
if WITH_LXC
if WITH_LIBVIRTD
libexec_PROGRAMS += libvirt_lxc

libvirt_lxc_SOURCES =						\
		$(LXC_CONTROLLER_SOURCES)			\
1113
		$(UTIL_SOURCES)					\
1114 1115
		$(NODE_INFO_SOURCES)				\
		$(ENCRYPTION_CONF_SOURCES)			\
1116
		$(DOMAIN_CONF_SOURCES)				\
1117 1118
		$(CPU_CONF_SOURCES)				\
		$(NWFILTER_PARAM_CONF_SOURCES)
1119
libvirt_lxc_LDFLAGS = $(WARN_CFLAGS) $(AM_LDFLAGS)
1120 1121
libvirt_lxc_LDADD = $(CAPNG_LIBS) $(YAJL_LIBS) \
		$(LIBXML_LIBS) $(NUMACTL_LIBS) $(LIB_PTHREAD) \
1122
		$(LIBNL_LIBS) ../gnulib/lib/libgnu.la
1123 1124 1125 1126
libvirt_lxc_CFLAGS =				\
		$(LIBPARTED_CFLAGS)		\
		$(NUMACTL_CFLAGS)		\
		$(CAPNG_CFLAGS)			\
1127
		$(YAJL_CFLAGS)			\
1128 1129
		-I@top_srcdir@/src/conf		\
		$(AM_CFLAGS)
1130 1131 1132 1133
endif
endif
EXTRA_DIST += $(LXC_CONTROLLER_SOURCES)

J
Jamie Strandboge 已提交
1134 1135 1136 1137 1138 1139
if WITH_SECDRIVER_APPARMOR
if WITH_LIBVIRTD
libexec_PROGRAMS += virt-aa-helper

virt_aa_helper_SOURCES = $(SECURITY_DRIVER_APPARMOR_HELPER_SOURCES)

1140
virt_aa_helper_LDFLAGS = $(WARN_LDFLAGS) $(AM_LDFLAGS)
J
Jamie Strandboge 已提交
1141
virt_aa_helper_LDADD =						\
1142
		$(LIBXML_LIBS)					\
C
Chris Lalancette 已提交
1143 1144 1145
		libvirt_conf.la					\
		libvirt_util.la					\
		../gnulib/lib/libgnu.la
J
Jamie Strandboge 已提交
1146 1147
virt_aa_helper_CFLAGS =						\
		-I@top_srcdir@/src/conf				\
1148 1149
		-I@top_srcdir@/src/security			\
		$(AM_CFLAGS)
J
Jamie Strandboge 已提交
1150 1151 1152 1153
endif
endif
EXTRA_DIST += $(SECURITY_DRIVER_APPARMOR_HELPER_SOURCES)

1154
install-data-local:
1155 1156 1157 1158 1159 1160
	$(MKDIR_P) "$(DESTDIR)$(localstatedir)/cache/libvirt"
	$(MKDIR_P) "$(DESTDIR)$(localstatedir)/lib/libvirt/images"
	$(MKDIR_P) "$(DESTDIR)$(localstatedir)/lib/libvirt/boot"
if WITH_QEMU
	$(MKDIR_P) "$(DESTDIR)$(localstatedir)/lib/libvirt/qemu"
	$(MKDIR_P) "$(DESTDIR)$(localstatedir)/run/libvirt/qemu"
1161
	$(MKDIR_P) "$(DESTDIR)$(localstatedir)/cache/libvirt/qemu"
1162
	$(MKDIR_P) "$(DESTDIR)$(localstatedir)/log/libvirt/qemu"
1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173
endif
if WITH_LXC
	$(MKDIR_P) "$(DESTDIR)$(localstatedir)/lib/libvirt/lxc"
	$(MKDIR_P) "$(DESTDIR)$(localstatedir)/run/libvirt/lxc"
endif
if WITH_UML
	$(MKDIR_P) "$(DESTDIR)$(localstatedir)/lib/libvirt/uml"
	$(MKDIR_P) "$(DESTDIR)$(localstatedir)/run/libvirt/uml"
endif
if WITH_NETWORK
	$(MKDIR_P) "$(DESTDIR)$(localstatedir)/lib/libvirt/network"
1174
	$(MKDIR_P) "$(DESTDIR)$(localstatedir)/lib/libvirt/dnsmasq"
1175
	$(MKDIR_P) "$(DESTDIR)$(localstatedir)/run/libvirt/network"
1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195
	$(MKDIR_P) "$(DESTDIR)$(sysconfdir)/libvirt/qemu/networks/autostart"
	$(INSTALL_DATA) $(srcdir)/network/default.xml \
	  $(DESTDIR)$(sysconfdir)/libvirt/qemu/networks/default.xml
	test -z "$(UUID)" || \
	  sed -i -e "s,</name>,</name>\n  <uuid>$(UUID)</uuid>," \
	    $(DESTDIR)$(sysconfdir)/libvirt/qemu/networks/default.xml
	test -e $(DESTDIR)$(sysconfdir)/libvirt/qemu/networks/autostart/default.xml || \
           ln -s ../default.xml \
	    $(DESTDIR)$(sysconfdir)/libvirt/qemu/networks/autostart/default.xml
endif

uninstall-local::
	rmdir "$(DESTDIR)$(localstatedir)/cache/libvirt" ||:
	rmdir "$(DESTDIR)$(localstatedir)/lib/libvirt/images" ||:
	rmdir "$(DESTDIR)$(localstatedir)/lib/libvirt/boot" ||:
if WITH_QEMU
	rmdir "$(DESTDIR)$(localstatedir)/lib/libvirt/qemu" ||:
	rmdir "$(DESTDIR)$(localstatedir)/run/libvirt/qemu" ||:
	rmdir "$(DESTDIR)$(localstatedir)/cache/libvirt/qemu" ||:
	rmdir "$(DESTDIR)$(localstatedir)/log/libvirt/qemu" ||:
1196
endif
1197 1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211 1212 1213
if WITH_LXC
	rmdir "$(DESTDIR)$(localstatedir)/lib/libvirt/lxc" ||:
	rmdir "$(DESTDIR)$(localstatedir)/run/libvirt/lxc" ||:
endif
if WITH_UML
	rmdir "$(DESTDIR)$(localstatedir)/lib/libvirt/uml" ||:
	rmdir "$(DESTDIR)$(localstatedir)/run/libvirt/uml" ||:
endif
if WITH_NETWORK
	rm -f $(DESTDIR)$(sysconfdir)/libvirt/qemu/networks/autostart/default.xml
	rm -f $(DESTDIR)$(sysconfdir)/libvirt/qemu/networks/default.xml
	rmdir "$(DESTDIR)$(sysconfdir)/libvirt/qemu/networks/autostart" || :
	rmdir "$(DESTDIR)$(sysconfdir)/libvirt/qemu/networks" || :
	rmdir "$(DESTDIR)$(localstatedir)/lib/libvirt/network" ||:
	rmdir "$(DESTDIR)$(localstatedir)/run/libvirt/network" ||:
endif
	rmdir "$(DESTDIR)$(localstatedir)/lib/libvirt" ||:
R
Richard W.M. Jones 已提交
1214

1215
CLEANFILES = *.gcov .libs/*.gcda .libs/*.gcno *.gcno *.gcda *.i *.s
1216
DISTCLEANFILES = $(BUILT_SOURCES)