Makefile.am 39.3 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
		-I@top_srcdir@/include				\
		$(DRIVER_MODULE_CFLAGS)				\
		$(LIBXML_CFLAGS)				\
		$(WARN_CFLAGS)					\
15 16 17
		$(LOCK_CHECKING_CFLAGS)			\
		-DIN_LIBVIRT				\
		$(WIN32_EXTRA_CFLAGS)
18

19 20 21
AM_CFLAGS = $(COVERAGE_CFLAGS)
AM_LDFLAGS = $(COVERAGE_LDFLAGS)

22
EXTRA_DIST = $(conf_DATA)
23

24 25
BUILT_SOURCES =

26 27 28
if WITH_NETWORK
UUID=$(shell uuidgen 2>/dev/null)
endif
29

C
Chris Lalancette 已提交
30
lib_LTLIBRARIES = libvirt.la libvirt-qemu.la
31

32 33 34
moddir = $(libdir)/libvirt/drivers
mod_LTLIBRARIES =

A
Amy Griffis 已提交
35 36
confdir = $(sysconfdir)/libvirt
conf_DATA =
37

38 39 40 41 42 43
augeasdir = $(datadir)/augeas/lenses
augeas_DATA =

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

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

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

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


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

DOMAIN_EVENT_SOURCES =						\
		conf/domain_event.c conf/domain_event.h
106 107

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

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

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

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

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

128
# Secret driver generic impl APIs
129 130 131 132 133 134 135 136 137 138
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

139 140 141
CPU_CONF_SOURCES =						\
		conf/cpu_conf.c conf/cpu_conf.h

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

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

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

166 167 168 169 170 171 172 173 174 175
# 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
176 177 178 179 180 181 182 183 184 185

# 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+ \*/

186 187
.PHONY: remote_protocol-structs
remote_protocol-structs:
188
	$(AM_V_GEN)if (pdwtags --help) > /dev/null 2>&1; then		\
189
	  pdwtags --verbose libvirt_driver_remote_la-remote_protocol.$(OBJEXT) \
190
	    | perl -0777 -n						\
191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207
		-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 '}'							\
208
		> $@-t;							\
209
          case $$? in 8) exit 0;; 0) ;; *) exit 1;; esac;		\
210
	  diff -u $@-t $(srcdir)/$@; st=$$?; rm -f $@-t; exit $$st;	\
211
	else								\
212 213
	  echo 'WARNING: you lack pdwtags; skipping the $@ test' >&2;	\
	  echo 'WARNING: install the dwarves package to get pdwtags' >&2; \
214 215 216 217
	fi
EXTRA_DIST += remote_protocol-structs
check-local: remote_protocol-structs

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



# Now the Hypervisor specific drivers
XEN_DRIVER_SOURCES =						\
226 227 228 229 230 231 232
		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
233
if WITH_XEN_INOTIFY
234
XEN_DRIVER_SOURCES += xen/xen_inotify.c xen/xen_inotify.h
235
endif
236 237

LXC_DRIVER_SOURCES =						\
238 239 240
		lxc/lxc_conf.c lxc/lxc_conf.h			\
		lxc/lxc_container.c lxc/lxc_container.h		\
		lxc/lxc_driver.c lxc/lxc_driver.h		\
241
		lxc/veth.c lxc/veth.h
242

243
LXC_CONTROLLER_SOURCES =					\
244 245 246
		lxc/lxc_conf.c lxc/lxc_conf.h			\
		lxc/lxc_container.c lxc/lxc_container.h		\
		lxc/lxc_controller.c				\
247
		lxc/veth.c lxc/veth.h
248

J
Jamie Strandboge 已提交
249 250 251
SECURITY_DRIVER_APPARMOR_HELPER_SOURCES =			\
		security/virt-aa-helper.c

252 253 254
PHYP_DRIVER_SOURCES =						\
		phyp/phyp_driver.c phyp/phyp_driver.h

255
OPENVZ_DRIVER_SOURCES =						\
256 257
		openvz/openvz_conf.c openvz/openvz_conf.h	\
		openvz/openvz_driver.c openvz/openvz_driver.h
258

259 260 261
VBOX_DRIVER_SOURCES =						\
        vbox/vbox_XPCOMCGlue.c vbox/vbox_XPCOMCGlue.h		\
        vbox/vbox_driver.c vbox/vbox_driver.h			\
262
        vbox/vbox_V2_2.c vbox/vbox_CAPI_v2_2.h			\
263
        vbox/vbox_V3_0.c vbox/vbox_CAPI_v3_0.h			\
264 265
        vbox/vbox_V3_1.c vbox/vbox_CAPI_v3_1.h			\
        vbox/vbox_V3_2.c vbox/vbox_CAPI_v3_2.h
266

267 268
VBOX_DRIVER_EXTRA_DIST = vbox/vbox_tmpl.c vbox/README

269
QEMU_DRIVER_SOURCES =						\
270
		qemu/qemu_capabilities.c qemu/qemu_capabilities.h\
271
		qemu/qemu_command.c qemu/qemu_command.h		\
272
		qemu/qemu_domain.c qemu/qemu_domain.h		\
273
		qemu/qemu_audit.c qemu/qemu_audit.h		\
274
		qemu/qemu_cgroup.c qemu/qemu_cgroup.c		\
275
		qemu/qemu_hostdev.c qemu/qemu_hostdev.h		\
276
		qemu/qemu_conf.c qemu/qemu_conf.h		\
277
		qemu/qemu_monitor.c qemu/qemu_monitor.h		\
278 279
		qemu/qemu_monitor_text.c			\
		qemu/qemu_monitor_text.h			\
D
Daniel P. Berrange 已提交
280 281 282
		qemu/qemu_monitor_json.c			\
		qemu/qemu_monitor_json.h			\
		qemu/qemu_driver.c qemu/qemu_driver.h		\
E
Eric Blake 已提交
283
		qemu/qemu_bridge_filter.c			\
284 285
		qemu/qemu_bridge_filter.h			\
		qemu/qemu_security_stacked.h			\
286 287 288
		qemu/qemu_security_stacked.c			\
		qemu/qemu_security_dac.h			\
		qemu/qemu_security_dac.c
R
Richard W.M. Jones 已提交
289

290 291
XENAPI_DRIVER_SOURCES =								\
		xenapi/xenapi_driver.c xenapi/xenapi_driver.h	\
292
		xenapi/xenapi_driver_private.h					\
293 294
		xenapi/xenapi_utils.c xenapi/xenapi_utils.h

295
UML_DRIVER_SOURCES =						\
D
Daniel P. Berrange 已提交
296 297
		uml/uml_conf.c uml/uml_conf.h			\
		uml/uml_driver.c uml/uml_driver.h
298

299 300 301 302 303 304
ONE_DRIVER_SOURCES =						\
		./opennebula/one_conf.c				\
		./opennebula/one_conf.h				\
		./opennebula/one_driver.c			\
		./opennebula/one_driver.h			\
		./opennebula/one_client.c			\
305
		./opennebula/one_client.h
D
Daniel Veillard 已提交
306

307
ESX_DRIVER_SOURCES =						\
308
		esx/esx_private.h						\
309
		esx/esx_driver.c esx/esx_driver.h		\
310 311 312 313 314
		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 已提交
315
		esx/esx_nwfilter_driver.c esx/esx_nwfilter_driver.h		\
316 317
		esx/esx_util.c esx/esx_util.h			\
		esx/esx_vi.c esx/esx_vi.h			\
318 319 320 321
		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

322
ESX_DRIVER_GENERATED =							\
323 324
		esx/esx_vi_methods.generated.c				\
		esx/esx_vi_methods.generated.h				\
325 326 327 328 329 330 331 332 333 334 335 336 337
		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)

338
NETWORK_DRIVER_SOURCES =					\
339
		network/bridge_driver.h network/bridge_driver.c
340

341
INTERFACE_DRIVER_SOURCES =					\
342
		interface/netcf_driver.h interface/netcf_driver.c
343

344
SECRET_DRIVER_SOURCES =						\
345
		secret/secret_driver.h secret/secret_driver.c
346

347
# Storage backend specific impls
348
STORAGE_DRIVER_SOURCES =					\
349 350
		storage/storage_driver.h storage/storage_driver.c		\
		storage/storage_backend.h storage/storage_backend.c
351 352

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

355
STORAGE_DRIVER_LVM_SOURCES =					\
356 357
		storage/storage_backend_logical.h			\
		storage/storage_backend_logical.c
358 359

STORAGE_DRIVER_ISCSI_SOURCES =					\
360
		storage/storage_backend_iscsi.h storage/storage_backend_iscsi.c
361

362
STORAGE_DRIVER_SCSI_SOURCES =					\
363
		storage/storage_backend_scsi.h storage/storage_backend_scsi.c
364

D
Dave Allan 已提交
365
STORAGE_DRIVER_MPATH_SOURCES =					\
366
		storage/storage_backend_mpath.h storage/storage_backend_mpath.c
D
Dave Allan 已提交
367

368
STORAGE_DRIVER_DISK_SOURCES =					\
369
		storage/storage_backend_disk.h storage/storage_backend_disk.c
370 371

STORAGE_HELPER_DISK_SOURCES =					\
372
		storage/parthelper.c
373

374 375 376
# Network filters
NWFILTER_DRIVER_SOURCES =					\
		nwfilter/nwfilter_driver.h nwfilter/nwfilter_driver.c	\
377 378 379
		nwfilter/nwfilter_gentech_driver.c			\
		nwfilter/nwfilter_gentech_driver.h			\
		nwfilter/nwfilter_ebiptables_driver.c			\
380 381 382
		nwfilter/nwfilter_ebiptables_driver.h			\
		nwfilter/nwfilter_learnipaddr.c				\
		nwfilter/nwfilter_learnipaddr.h
383

384

385
# Security framework and drivers for various models
386
SECURITY_DRIVER_SOURCES =					\
387
		security/security_driver.h security/security_driver.c
388

389
SECURITY_DRIVER_SELINUX_SOURCES =				\
390
		security/security_selinux.h security/security_selinux.c
391

J
Jamie Strandboge 已提交
392 393 394
SECURITY_DRIVER_APPARMOR_SOURCES =				\
		security/security_apparmor.h security/security_apparmor.c

395

396
NODE_DEVICE_DRIVER_SOURCES =					\
397 398 399
		node_device/node_device_driver.c \
		node_device/node_device_driver.h \
		node_device/node_device_linux_sysfs.c
400 401

NODE_DEVICE_DRIVER_HAL_SOURCES =				\
402
		node_device/node_device_hal.c			\
403
		node_device/node_device_hal.h
404

405
NODE_DEVICE_DRIVER_UDEV_SOURCES =				\
D
Daniel Veillard 已提交
406 407
		node_device/node_device_udev.c			\
		node_device/node_device_udev.h
408

J
Jiri Denemark 已提交
409 410 411 412 413
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
414

J
Jiri Denemark 已提交
415 416
pkgdata_DATA =	cpu/cpu_map.xml

E
Eric Blake 已提交
417
EXTRA_DIST +=	$(pkgdata_DATA)
418

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

425
noinst_LTLIBRARIES = libvirt_util.la
426 427
libvirt_la_LIBADD = $(libvirt_la_BUILT_LIBADD)
libvirt_la_BUILT_LIBADD = libvirt_util.la
428 429
libvirt_util_la_SOURCES =					\
		$(UTIL_SOURCES)
430
libvirt_util_la_CFLAGS = $(CAPNG_CFLAGS) $(YAJL_CFLAGS) $(LIBNL_CFLAGS) \
431 432 433
		$(AM_CFLAGS) $(AUDIT_CFLAGS)
libvirt_util_la_LIBADD = $(CAPNG_LIBS) $(YAJL_LIBS) $(LIBNL_LIBS) \
		$(LIB_PTHREAD) $(AUDIT_LIBS)
434

435 436

noinst_LTLIBRARIES += libvirt_conf.la
437
libvirt_la_BUILT_LIBADD += libvirt_conf.la
438
libvirt_conf_la_SOURCES = $(CONF_SOURCES)
439 440
libvirt_conf_la_CFLAGS = $(AM_CFLAGS)
libvirt_conf_la_LDFLAGS = $(AM_LDFLAGS)
441

J
Jiri Denemark 已提交
442
noinst_LTLIBRARIES += libvirt_cpu.la
443
libvirt_la_BUILT_LIBADD += libvirt_cpu.la
J
Jiri Denemark 已提交
444
libvirt_cpu_la_CFLAGS = \
445
		-I@top_srcdir@/src/conf $(AM_CFLAGS)
J
Jiri Denemark 已提交
446 447
libvirt_cpu_la_SOURCES = $(CPU_SOURCES)

448

449
noinst_LTLIBRARIES += libvirt_driver.la
450
libvirt_la_BUILT_LIBADD += libvirt_driver.la
451
libvirt_driver_la_SOURCES = $(DRIVER_SOURCES)
452

M
Matthias Bolte 已提交
453
libvirt_driver_la_CFLAGS = $(NUMACTL_CFLAGS) $(GNUTLS_CFLAGS) \
454
		-I@top_srcdir@/src/conf $(AM_CFLAGS)
M
Matthias Bolte 已提交
455
libvirt_driver_la_LIBADD = $(NUMACTL_LIBS) $(GNUTLS_LIBS)
456

457
USED_SYM_FILES = libvirt_private.syms
458

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

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

if HAVE_RPCGEN
#
# Maintainer-only target for re-generating the derived .c/.h source
# files, which are actually derived from the .x file.
#
498
# For committing protocol changes to GIT, the GLIBC rpcgen *must*
499 500 501 502 503
# 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 已提交
504
rpcgen-normal:
505 506 507 508
	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 已提交
509 510
	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
511 512 513 514 515 516 517 518 519 520
	(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 已提交
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 548 549 550 551

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

552 553 554
endif

remote/remote_protocol.c: remote/remote_protocol.h
555 556 557
endif

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

577 578 579 580 581
if WITH_PHYP
if WITH_DRIVER_MODULES
mod_LTLIBRARIES += libvirt_driver_phyp.la
else
noinst_LTLIBRARIES += libvirt_driver_phyp.la
582
libvirt_la_BUILT_LIBADD += libvirt_driver_phyp.la
583
endif
584
libvirt_driver_phyp_la_LIBADD = $(LIBSSH2_LIBS)
585 586 587 588
if WITH_DRIVER_MODULES
libvirt_driver_phyp_la_LIBADD += ../gnulib/lib/libgnu.la
libvirt_driver_phyp_la_LDFLAGS = -module -avoid-version $(AM_LDFLAGS)
endif
589
libvirt_driver_phyp_la_CFLAGS = $(LIBSSH2_CFLAGS) \
590
		-I@top_srcdir@/src/conf $(AM_CFLAGS)
591 592 593
libvirt_driver_phyp_la_SOURCES = $(PHYP_DRIVER_SOURCES)
endif

594
if WITH_OPENVZ
595 596 597
if WITH_DRIVER_MODULES
mod_LTLIBRARIES += libvirt_driver_openvz.la
else
598
noinst_LTLIBRARIES += libvirt_driver_openvz.la
599
libvirt_la_BUILT_LIBADD += libvirt_driver_openvz.la
600
endif
601
libvirt_driver_openvz_la_CFLAGS = \
602
		-I@top_srcdir@/src/conf $(AM_CFLAGS)
603
if WITH_DRIVER_MODULES
604
libvirt_driver_openvz_la_LIBADD = ../gnulib/lib/libgnu.la
605
libvirt_driver_openvz_la_LDFLAGS = -module -avoid-version $(AM_LDFLAGS)
606
endif
607
libvirt_driver_openvz_la_SOURCES = $(OPENVZ_DRIVER_SOURCES)
608 609
endif

610 611 612 613 614
if WITH_VBOX
if WITH_DRIVER_MODULES
mod_LTLIBRARIES += libvirt_driver_vbox.la
else
noinst_LTLIBRARIES += libvirt_driver_vbox.la
615
libvirt_la_BUILT_LIBADD += libvirt_driver_vbox.la
616
endif
617
libvirt_driver_vbox_la_CFLAGS = \
618
		-I@top_srcdir@/src/conf $(AM_CFLAGS)
619
libvirt_driver_vbox_la_LIBADD = $(DLOPEN_LIBS)
620
if WITH_DRIVER_MODULES
621
libvirt_driver_vbox_la_LIBADD += ../gnulib/lib/libgnu.la
622
libvirt_driver_vbox_la_LDFLAGS = -module -avoid-version $(AM_LDFLAGS)
623 624 625 626
endif
libvirt_driver_vbox_la_SOURCES = $(VBOX_DRIVER_SOURCES)
endif

627 628 629 630 631
if WITH_XENAPI
if WITH_DRIVER_MODULES
mod_LTLIBRARIES += libvirt_driver_xenapi.la
else
noinst_LTLIBRARIES += libvirt_driver_xenapi.la
632
libvirt_la_BUILT_LIBADD += libvirt_driver_xenapi.la
633 634
endif
libvirt_driver_xenapi_la_CFLAGS = $(LIBXENSERVER_CFLAGS) $(LIBCURL_CFLAGS) \
635 636
		-I@top_srcdir@/src/conf $(AM_CFLAGS)
libvirt_driver_xenapi_la_LDFLAGS = $(AM_LDFLAGS)
637
libvirt_driver_xenapi_la_LIBADD = $(LIBXENSERVER_LIBS) $(LIBCURL_LIBS)
638
if WITH_DRIVER_MODULES
639
libvirt_driver_xenapi_la_LIBADD += ../gnulib/lib/libgnu.la
640 641 642 643 644
libvirt_driver_xenapi_la_LDFLAGS += -module -avoid-version
endif
libvirt_driver_xenapi_la_SOURCES = $(XENAPI_DRIVER_SOURCES)
endif

645
if WITH_QEMU
646 647 648
if WITH_DRIVER_MODULES
mod_LTLIBRARIES += libvirt_driver_qemu.la
else
649
noinst_LTLIBRARIES += libvirt_driver_qemu.la
650
# Stateful, so linked to daemon instead
651
#libvirt_la_BUILT_LIBADD += libvirt_driver_qemu.la
652
endif
653
libvirt_driver_qemu_la_CFLAGS = $(NUMACTL_CFLAGS) \
654 655
		-I@top_srcdir@/src/conf $(AM_CFLAGS)
libvirt_driver_qemu_la_LDFLAGS = $(AM_LDFLAGS)
656
libvirt_driver_qemu_la_LIBADD = $(NUMACTL_LIBS)
657
if WITH_DRIVER_MODULES
658
libvirt_driver_qemu_la_LIBADD += ../gnulib/lib/libgnu.la
659 660
libvirt_driver_qemu_la_LDFLAGS += -module -avoid-version
endif
661
libvirt_driver_qemu_la_SOURCES = $(QEMU_DRIVER_SOURCES)
662

A
Amy Griffis 已提交
663
conf_DATA += qemu/qemu.conf
664

665 666
augeas_DATA += qemu/libvirtd_qemu.aug
augeastest_DATA += qemu/test_libvirtd_qemu.aug
667

668
endif
669 670
EXTRA_DIST += qemu/qemu.conf qemu/libvirtd_qemu.aug \
		qemu/test_libvirtd_qemu.aug qemu/THREADS.txt
671

672 673

if WITH_LXC
674 675 676
if WITH_DRIVER_MODULES
mod_LTLIBRARIES += libvirt_driver_lxc.la
else
677
noinst_LTLIBRARIES += libvirt_driver_lxc.la
678
# Stateful, so linked to daemon instead
679
#libvirt_la_BUILT_LIBADD += libvirt_driver_lxc.la
680
endif
681
libvirt_driver_lxc_la_CFLAGS = \
682
		-I@top_srcdir@/src/conf $(AM_CFLAGS)
683
if WITH_DRIVER_MODULES
684
libvirt_driver_lxc_la_LIBADD = ../gnulib/lib/libgnu.la
685
libvirt_driver_lxc_la_LDFLAGS = -module -avoid-version $(AM_LDFLAGS)
686
endif
687
libvirt_driver_lxc_la_SOURCES = $(LXC_DRIVER_SOURCES)
A
Amy Griffis 已提交
688 689 690

conf_DATA += lxc/lxc.conf

691 692 693
augeas_DATA += lxc/libvirtd_lxc.aug
augeastest_DATA += lxc/test_libvirtd_lxc.aug

694
endif
695
EXTRA_DIST += lxc/lxc.conf lxc/libvirtd_lxc.aug lxc/test_libvirtd_lxc.aug
696

697
if WITH_UML
698 699 700
if WITH_DRIVER_MODULES
mod_LTLIBRARIES += libvirt_driver_uml.la
else
701 702
noinst_LTLIBRARIES += libvirt_driver_uml.la
# Stateful, so linked to daemon instead
703
#libvirt_la_BUILT_LIBADD += libvirt_driver_uml.la
704
endif
705
libvirt_driver_uml_la_CFLAGS = $(NUMACTL_CFLAGS) \
706 707
		-I@top_srcdir@/src/conf $(AM_CFLAGS)
libvirt_driver_uml_la_LDFLAGS = $(AM_LDFLAGS)
708
libvirt_driver_uml_la_LIBADD = $(NUMACTL_LIBS)
709
if WITH_DRIVER_MODULES
710
libvirt_driver_uml_la_LIBADD += ../gnulib/lib/libgnu.la
711 712
libvirt_driver_uml_la_LDFLAGS += -module -avoid-version
endif
713 714
libvirt_driver_uml_la_SOURCES = $(UML_DRIVER_SOURCES)
endif
715

D
Daniel Veillard 已提交
716 717 718 719 720 721
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
722
#libvirt_la_BUILT_LIBADD  += libvirt_driver_one.la
D
Daniel Veillard 已提交
723
endif
724
libvirt_driver_one_la_CFLAGS = $(XMLRPC_CFLAGS) \
725 726
		-I@top_srcdir@/src/conf $(AM_CFLAGS)
libvirt_driver_one_la_LDFLAGS = $(AM_LDFLAGS)
727
libvirt_driver_one_la_LIBADD = $(XMLRPC_LIBS)
D
Daniel Veillard 已提交
728 729
#libvirt_driver_one_la_CFLAGS  = "-DWITH_ONE"
if WITH_DRIVER_MODULES
730
libvirt_driver_one_la_LIBADD += ../gnulib/lib/libgnu.la
D
Daniel Veillard 已提交
731 732 733 734 735 736
libvirt_driver_one_la_LDFLAGS += -module -avoid-version
endif
libvirt_driver_one_la_SOURCES = $(ONE_DRIVER_SOURCES)
endif


737
BUILT_SOURCES += $(ESX_DRIVER_GENERATED)
D
Daniel Veillard 已提交
738

739 740
$(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 已提交
741

742 743 744 745 746
if WITH_ESX
if WITH_DRIVER_MODULES
mod_LTLIBRARIES += libvirt_driver_esx.la
else
noinst_LTLIBRARIES += libvirt_driver_esx.la
747
libvirt_la_BUILT_LIBADD += libvirt_driver_esx.la
748
endif
749
libvirt_driver_esx_la_CFLAGS = $(LIBCURL_CFLAGS) \
750 751
		-I@top_srcdir@/src/conf $(AM_CFLAGS)
libvirt_driver_esx_la_LDFLAGS = $(AM_LDFLAGS)
752
libvirt_driver_esx_la_LIBADD = $(LIBCURL_LIBS)
753
if WITH_DRIVER_MODULES
754
libvirt_driver_esx_la_LIBADD += ../gnulib/lib/libgnu.la
755 756 757
libvirt_driver_esx_la_LDFLAGS += -module -avoid-version
endif
libvirt_driver_esx_la_SOURCES = $(ESX_DRIVER_SOURCES)
758
libvirt_driver_esx_la_DEPENDENCIES = $(ESX_DRIVER_GENERATED)
759 760
endif

761
if WITH_NETWORK
762 763 764
if WITH_DRIVER_MODULES
mod_LTLIBRARIES += libvirt_driver_network.la
else
765
noinst_LTLIBRARIES += libvirt_driver_network.la
766
# Stateful, so linked to daemon instead
767
#libvirt_la_BUILT_LIBADD += libvirt_driver_network.la
768
endif
769
libvirt_driver_network_la_CFLAGS = \
770
		-I@top_srcdir@/src/conf $(AM_CFLAGS)
771
if WITH_DRIVER_MODULES
772
libvirt_driver_network_la_LIBADD = ../gnulib/lib/libgnu.la
773
libvirt_driver_network_la_LDFLAGS = -module -avoid-version $(AM_LDFLAGS)
774
endif
775
libvirt_driver_network_la_SOURCES = $(NETWORK_DRIVER_SOURCES)
776
endif
777 778 779 780
EXTRA_DIST += network/default.xml



781

D
Daniel Veillard 已提交
782
if WITH_NETCF
783 784 785 786
if WITH_DRIVER_MODULES
mod_LTLIBRARIES += libvirt_driver_interface.la
else
noinst_LTLIBRARIES += libvirt_driver_interface.la
787
libvirt_la_BUILT_LIBADD += libvirt_driver_interface.la
788
endif
789
libvirt_driver_interface_la_CFLAGS = $(NETCF_CFLAGS) \
790 791
		-I@top_srcdir@/src/conf $(AM_CFLAGS)
libvirt_driver_interface_la_LDFLAGS = $(AM_LDFLAGS)
792
libvirt_driver_interface_la_LIBADD = $(NETCF_LIBS)
793
if WITH_DRIVER_MODULES
794
libvirt_driver_interface_la_LIBADD += ../gnulib/lib/libgnu.la
795 796 797
libvirt_driver_interface_la_LDFLAGS += -module -avoid-version
endif
libvirt_driver_interface_la_SOURCES = $(INTERFACE_DRIVER_SOURCES)
D
Daniel Veillard 已提交
798 799
endif

D
Daniel P. Berrange 已提交
800
if WITH_SECRETS
801 802 803 804
if WITH_DRIVER_MODULES
mod_LTLIBRARIES += libvirt_driver_secret.la
else
noinst_LTLIBRARIES += libvirt_driver_secret.la
805
# Stateful, so linked to daemon instead
806
#libvirt_la_BUILT_LIBADD += libvirt_driver_secret.la
807
endif
808
libvirt_driver_secret_la_CFLAGS = \
809
		-I@top_srcdir@/src/conf $(AM_CFLAGS)
810
if WITH_DRIVER_MODULES
811
libvirt_driver_secret_la_LIBADD = ../gnulib/lib/libgnu.la
812
libvirt_driver_secret_la_LDFLAGS = -module -avoid-version $(AM_LDFLAGS)
813 814
endif
libvirt_driver_secret_la_SOURCES = $(SECRET_DRIVER_SOURCES)
D
Daniel P. Berrange 已提交
815
endif
816

817 818
# Needed to keep automake quiet about conditionals
libvirt_driver_storage_la_SOURCES =
819
libvirt_driver_storage_la_CFLAGS = \
820 821
		-I@top_srcdir@/src/conf $(AM_CFLAGS)
libvirt_driver_storage_la_LDFLAGS = $(AM_LDFLAGS)
822
libvirt_driver_storage_la_LIBADD =
823
if WITH_STORAGE_DIR
824 825 826
if WITH_DRIVER_MODULES
mod_LTLIBRARIES += libvirt_driver_storage.la
else
827
noinst_LTLIBRARIES += libvirt_driver_storage.la
828
# Stateful, so linked to daemon instead
829
#libvirt_la_BUILT_LIBADD += libvirt_driver_storage.la
830 831
endif
if WITH_DRIVER_MODULES
832
libvirt_driver_storage_la_LIBADD += ../gnulib/lib/libgnu.la
833
libvirt_driver_storage_la_LDFLAGS += -module -avoid-version
834
endif
835 836
libvirt_driver_storage_la_SOURCES += $(STORAGE_DRIVER_SOURCES)
libvirt_driver_storage_la_SOURCES += $(STORAGE_DRIVER_FS_SOURCES)
837 838
endif

839
if WITH_STORAGE_LVM
840
libvirt_driver_storage_la_SOURCES += $(STORAGE_DRIVER_LVM_SOURCES)
841 842
endif

843
if WITH_STORAGE_ISCSI
844
libvirt_driver_storage_la_SOURCES += $(STORAGE_DRIVER_ISCSI_SOURCES)
845 846
endif

847 848 849 850
if WITH_STORAGE_SCSI
libvirt_driver_storage_la_SOURCES += $(STORAGE_DRIVER_SCSI_SOURCES)
endif

D
Dave Allan 已提交
851 852 853
if WITH_STORAGE_MPATH
libvirt_driver_storage_la_SOURCES += $(STORAGE_DRIVER_MPATH_SOURCES)
libvirt_driver_storage_la_CFLAGS += $(DEVMAPPER_CFLAGS)
854
libvirt_driver_storage_la_LIBADD += $(DEVMAPPER_LIBS)
D
Dave Allan 已提交
855 856
endif

857
if WITH_STORAGE_DISK
858
libvirt_driver_storage_la_SOURCES += $(STORAGE_DRIVER_DISK_SOURCES)
859
endif
860

861 862 863 864 865 866 867
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
868
#libvirt_la_BUILT_LIBADD += libvirt_driver_nodedev.la
869 870 871
endif
libvirt_driver_nodedev_la_SOURCES = $(NODE_DEVICE_DRIVER_SOURCES)

872
libvirt_driver_nodedev_la_CFLAGS = \
873 874
		-I@top_srcdir@/src/conf $(AM_CFLAGS)
libvirt_driver_nodedev_la_LDFLAGS = $(AM_LDFLAGS)
875
libvirt_driver_nodedev_la_LIBADD =
876 877 878
if HAVE_HAL
libvirt_driver_nodedev_la_SOURCES += $(NODE_DEVICE_DRIVER_HAL_SOURCES)
libvirt_driver_nodedev_la_CFLAGS += $(HAL_CFLAGS)
879
libvirt_driver_nodedev_la_LIBADD += $(HAL_LIBS)
880
endif
881 882
if HAVE_UDEV
libvirt_driver_nodedev_la_SOURCES += $(NODE_DEVICE_DRIVER_UDEV_SOURCES)
883
libvirt_driver_nodedev_la_CFLAGS += $(UDEV_CFLAGS) $(PCIACCESS_CFLAGS)
884
libvirt_driver_nodedev_la_LIBADD += $(UDEV_LIBS) $(PCIACCESS_LIBS)
885
endif
886 887

if WITH_DRIVER_MODULES
888
libvirt_driver_nodedev_la_LIBADD += ../gnulib/lib/libgnu.la
889 890 891 892 893
libvirt_driver_nodedev_la_LDFLAGS += -module -avoid-version
endif
endif


894 895 896 897
if WITH_NWFILTER
if WITH_DRIVER_MODULES
mod_LTLIBRARIES += libvirt_driver_nwfilter.la
else
898
libvirt_la_BUILT_LIBADD += libvirt_driver_nwfilter.la
899 900
noinst_LTLIBRARIES += libvirt_driver_nwfilter.la
endif
901
libvirt_driver_nwfilter_la_CFLAGS = $(LIBPCAP_CFLAGS) \
902 903
		-I@top_srcdir@/src/conf $(AM_CFLAGS)
libvirt_driver_nwfilter_la_LDFLAGS = $(LD_AMFLAGS)
904
libvirt_driver_nwfilter_la_LIBADD = $(LIBPCAP_LIBS)
905
if WITH_DRIVER_MODULES
906
libvirt_driver_nwfilter_la_LIBADD += ../gnulib/lib/libgnu.la
907
libvirt_driver_nwfilter_la_LDFLAGS += -module -avoid-version
908 909 910 911 912
endif
libvirt_driver_nwfilter_la_SOURCES = $(NWFILTER_DRIVER_SOURCES)
endif


913 914
libvirt_driver_security_la_SOURCES = $(SECURITY_DRIVER_SOURCES)
noinst_LTLIBRARIES += libvirt_driver_security.la
915
libvirt_la_BUILT_LIBADD += libvirt_driver_security.la
916
libvirt_driver_security_la_CFLAGS = \
917 918
		-I@top_srcdir@/src/conf $(AM_CFLAGS)
libvirt_driver_security_la_LDFLAGS = $(AM_LDFLAGS)
919
libvirt_driver_security_la_LIBADD =
920 921
if WITH_SECDRIVER_SELINUX
libvirt_driver_security_la_SOURCES += $(SECURITY_DRIVER_SELINUX_SOURCES)
J
Jim Fehlig 已提交
922
libvirt_driver_security_la_CFLAGS += $(SELINUX_CFLAGS)
923
libvirt_driver_security_la_LIBADD += $(SELINUX_LIBS)
924
endif
J
Jamie Strandboge 已提交
925 926 927
if WITH_SECDRIVER_APPARMOR
libvirt_driver_security_la_SOURCES += $(SECURITY_DRIVER_APPARMOR_SOURCES)
libvirt_driver_security_la_CFLAGS += $(APPARMOR_CFLAGS)
928
libvirt_driver_security_la_LIBADD += $(APPARMOR_LIBS)
J
Jamie Strandboge 已提交
929
endif
930

931 932 933 934 935 936 937
# Add all conditional sources just in case...
EXTRA_DIST +=							\
		$(TEST_DRIVER_SOURCES)				\
		$(REMOTE_DRIVER_SOURCES)			\
		$(XEN_DRIVER_SOURCES)				\
		$(QEMU_DRIVER_SOURCES)				\
		$(LXC_DRIVER_SOURCES)				\
938
		$(UML_DRIVER_SOURCES)				\
D
Daniel Veillard 已提交
939
		$(ONE_DRIVER_SOURCES)				\
940
		$(OPENVZ_DRIVER_SOURCES)			\
941
		$(PHYP_DRIVER_SOURCES)				\
942
		$(VBOX_DRIVER_SOURCES)				\
943
		$(XENAPI_DRIVER_SOURCES)			\
944
		$(ESX_DRIVER_SOURCES)				\
945
		$(ESX_DRIVER_EXTRA_DIST)			\
946
		$(NETWORK_DRIVER_SOURCES)			\
947
		$(INTERFACE_DRIVER_SOURCES)			\
948 949 950 951
		$(STORAGE_DRIVER_SOURCES)			\
		$(STORAGE_DRIVER_FS_SOURCES)			\
		$(STORAGE_DRIVER_LVM_SOURCES)			\
		$(STORAGE_DRIVER_ISCSI_SOURCES)			\
952
		$(STORAGE_DRIVER_SCSI_SOURCES)			\
D
Dave Allan 已提交
953
		$(STORAGE_DRIVER_MPATH_SOURCES)			\
954 955 956
		$(STORAGE_DRIVER_DISK_SOURCES)			\
		$(NODE_DEVICE_DRIVER_SOURCES)			\
		$(NODE_DEVICE_DRIVER_HAL_SOURCES)		\
957
		$(NODE_DEVICE_DRIVER_UDEV_SOURCES)		\
958
		$(NWFILTER_DRIVER_SOURCES)			\
959
		$(SECURITY_DRIVER_SELINUX_SOURCES)		\
J
Jamie Strandboge 已提交
960
		$(SECURITY_DRIVER_APPARMOR_SOURCES)		\
D
Daniel P. Berrange 已提交
961
		$(SECRET_DRIVER_SOURCES)			\
962
		$(VBOX_DRIVER_EXTRA_DIST)
963

964 965 966 967
check-local: augeas-check

.PHONY: augeas-check
augeas-check:
968
if WITH_QEMU
969
	$(AM_V_GEN)if test -x '$(AUGPARSE)'; then \
970 971 972 973 974
	    '$(AUGPARSE)' -I $(srcdir)/qemu \
	    $(srcdir)/qemu/test_libvirtd_qemu.aug; \
	fi
endif
if WITH_LXC
975
	$(AM_V_GEN)if test -x '$(AUGPARSE)'; then \
976 977 978 979 980
	    '$(AUGPARSE)' -I $(srcdir)/lxc \
	    $(srcdir)/lxc/test_libvirtd_lxc.aug; \
	fi
endif

981 982 983 984 985 986 987 988 989 990 991 992 993 994 995 996 997 998 999
#
# 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.
#

1000
if WITH_DRIVER_MODULES
1001
USED_SYM_FILES += libvirt_driver_modules.syms
1002
endif
1003 1004

if WITH_BRIDGE
1005
USED_SYM_FILES += libvirt_bridge.syms
1006
endif
1007 1008

if WITH_LINUX
1009
USED_SYM_FILES += libvirt_linux.syms
1010
endif
1011

1012
if WITH_MACVTAP
1013
USED_SYM_FILES += libvirt_macvtap.syms
1014
endif
1015

1016 1017 1018 1019
if WITH_LIBVIRTD
USED_SYM_FILES += libvirt_daemon.syms
endif

1020 1021 1022 1023
if WITH_NWFILTER
USED_SYM_FILES += libvirt_nwfilter.syms
endif

1024 1025 1026 1027 1028
EXTRA_DIST += \
  libvirt_public.syms		\
  libvirt_private.syms		\
  libvirt_driver_modules.syms	\
  libvirt_bridge.syms		\
1029
  libvirt_linux.syms		\
1030
  libvirt_macvtap.syms		\
1031 1032
  libvirt_daemon.syms		\
  libvirt_nwfilter.syms
1033

1034
BUILT_SOURCES += libvirt.syms libvirt.def libvirt_qemu.def
1035

1036
libvirt.syms: libvirt_public.syms $(USED_SYM_FILES)
1037 1038 1039 1040 1041 1042
	$(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 && \
1043
	for file in $(USED_SYM_FILES); do \
1044
	    cat $(srcdir)/$$file >>$@-tmp; \
1045 1046 1047
	done && \
	printf '\n\nlocal:\n*;\n\n};' >>$@-tmp && \
	chmod a-w $@-tmp && \
1048
	mv $@-tmp libvirt.syms
1049

1050 1051 1052
libvirt.def: libvirt.syms
	$(AM_V_GEN)rm -f -- $@-tmp $@ ; \
	printf 'EXPORTS\n' > $@-tmp && \
E
Eric Blake 已提交
1053
	sed -e '/^$$/d; /#/d; /:/d; /}/d; /\*/d; /LIBVIRT_/d; s/[	 ]*\(.*\)\;/    \1/g' $^ >> $@-tmp && \
1054 1055 1056
	chmod a-w $@-tmp && \
	mv $@-tmp libvirt.def

1057 1058 1059
libvirt_qemu.def: $(srcdir)/libvirt_qemu.syms
	$(AM_V_GEN)rm -f -- $@-tmp $@ ; \
	printf 'EXPORTS\n' > $@-tmp && \
E
Eric Blake 已提交
1060
	sed -e '/^$$/d; /#/d; /:/d; /}/d; /\*/d; /LIBVIRT_/d; s/[	 ]*\(.*\)\;/    \1/g' $^ >> $@-tmp && \
1061 1062 1063
	chmod a-w $@-tmp && \
	mv $@-tmp libvirt_qemu.def

1064 1065
# Empty source list - it merely links a bunch of convenience libs together
libvirt_la_SOURCES =
1066
libvirt_la_LDFLAGS = $(VERSION_SCRIPT_FLAGS)$(LIBVIRT_SYMBOL_FILE) \
1067
                     -version-info $(LIBVIRT_VERSION_INFO) \
1068
                    $(AM_LDFLAGS) \
1069
		    $(CYGWIN_EXTRA_LDFLAGS) $(MINGW_EXTRA_LDFLAGS)
1070
libvirt_la_BUILT_LIBADD += ../gnulib/lib/libgnu.la
1071
libvirt_la_LIBADD += $(LIBXML_LIBS) \
1072
		    $(DRIVER_MODULE_LIBS) \
1073
		    $(CYGWIN_EXTRA_LIBADD)
1074
libvirt_la_CFLAGS = -DIN_LIBVIRT $(AM_CFLAGS)
1075 1076 1077 1078 1079 1080
# 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)
1081

1082 1083 1084
# 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.
1085
noinst_LTLIBRARIES += libvirt_test.la
1086

1087
# Remove version script from convenience library
1088 1089
test_LDFLAGS =						\
  $$(echo '$(libvirt_la_LDFLAGS)'			\
1090
     |sed 's!$(VERSION_SCRIPT_FLAGS)$(LIBVIRT_SYMBOL_FILE)!!'	\
1091
     |sed 's!-version-info $(LIBVIRT_VERSION_INFO)!!')
1092 1093 1094 1095

# 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)
1096 1097
libvirt_test_la_LDFLAGS = $(test_LDFLAGS) $(AM_LDFLAGS)
libvirt_test_la_CFLAGS = $(AM_CFLAGS)
1098

C
Chris Lalancette 已提交
1099 1100 1101
libvirt_qemu_la_SOURCES = libvirt-qemu.c
libvirt_qemu_la_LDFLAGS = $(VERSION_SCRIPT_FLAGS)$(LIBVIRT_QEMU_SYMBOL_FILE) \
                          -version-info $(LIBVIRT_VERSION_INFO) \
1102 1103 1104
                          $(CYGWIN_EXTRA_LDFLAGS) $(MINGW_EXTRA_LDFLAGS) \
			  $(AM_LDFLAGS)
libvirt_qemu_la_CFLAGS = $(AM_CFLAGS)
C
Chris Lalancette 已提交
1105
libvirt_qemu_la_LIBADD = libvirt.la $(CYGWIN_EXTRA_LIBADD)
E
Eric Blake 已提交
1106
EXTRA_DIST += $(LIBVIRT_QEMU_SYMBOL_FILE)
1107

1108 1109
libexec_PROGRAMS =

1110
if WITH_STORAGE_DISK
R
Richard W.M. Jones 已提交
1111
if WITH_LIBVIRTD
1112
libexec_PROGRAMS += libvirt_parthelper
1113

1114
libvirt_parthelper_SOURCES = $(STORAGE_HELPER_DISK_SOURCES)
1115
libvirt_parthelper_LDFLAGS = $(WARN_LDFLAGS) $(AM_LDFLAGS)
1116 1117 1118 1119 1120 1121
libvirt_parthelper_LDADD =		\
		$(LIBPARTED_LIBS)	\
		$(DEVMAPPER_LIBS)	\
		libvirt_util.la		\
		../gnulib/lib/libgnu.la

1122
libvirt_parthelper_CFLAGS = $(LIBPARTED_CFLAGS) $(AM_CFLAGS)
R
Richard W.M. Jones 已提交
1123
endif
1124
endif
1125 1126
EXTRA_DIST += $(STORAGE_HELPER_DISK_SOURCES)

1127

1128 1129 1130 1131 1132 1133
if WITH_LXC
if WITH_LIBVIRTD
libexec_PROGRAMS += libvirt_lxc

libvirt_lxc_SOURCES =						\
		$(LXC_CONTROLLER_SOURCES)			\
1134
		$(UTIL_SOURCES)					\
1135 1136
		$(NODE_INFO_SOURCES)				\
		$(ENCRYPTION_CONF_SOURCES)			\
1137
		$(DOMAIN_CONF_SOURCES)				\
1138 1139
		$(CPU_CONF_SOURCES)				\
		$(NWFILTER_PARAM_CONF_SOURCES)
1140
libvirt_lxc_LDFLAGS = $(WARN_CFLAGS) $(AM_LDFLAGS)
1141 1142
libvirt_lxc_LDADD = $(CAPNG_LIBS) $(YAJL_LIBS) \
		$(LIBXML_LIBS) $(NUMACTL_LIBS) $(LIB_PTHREAD) \
1143
		$(LIBNL_LIBS) $(AUDIT_LIBS) ../gnulib/lib/libgnu.la
1144 1145 1146 1147
libvirt_lxc_CFLAGS =				\
		$(LIBPARTED_CFLAGS)		\
		$(NUMACTL_CFLAGS)		\
		$(CAPNG_CFLAGS)			\
1148
		$(YAJL_CFLAGS)			\
1149
		$(AUDIT_CFLAGS)			\
1150 1151
		-I@top_srcdir@/src/conf		\
		$(AM_CFLAGS)
1152 1153 1154 1155
endif
endif
EXTRA_DIST += $(LXC_CONTROLLER_SOURCES)

J
Jamie Strandboge 已提交
1156 1157 1158 1159 1160 1161
if WITH_SECDRIVER_APPARMOR
if WITH_LIBVIRTD
libexec_PROGRAMS += virt-aa-helper

virt_aa_helper_SOURCES = $(SECURITY_DRIVER_APPARMOR_HELPER_SOURCES)

1162
virt_aa_helper_LDFLAGS = $(WARN_LDFLAGS) $(AM_LDFLAGS)
J
Jamie Strandboge 已提交
1163
virt_aa_helper_LDADD =						\
1164
		$(LIBXML_LIBS)					\
C
Chris Lalancette 已提交
1165 1166 1167
		libvirt_conf.la					\
		libvirt_util.la					\
		../gnulib/lib/libgnu.la
J
Jamie Strandboge 已提交
1168 1169
virt_aa_helper_CFLAGS =						\
		-I@top_srcdir@/src/conf				\
1170 1171
		-I@top_srcdir@/src/security			\
		$(AM_CFLAGS)
J
Jamie Strandboge 已提交
1172 1173 1174 1175
endif
endif
EXTRA_DIST += $(SECURITY_DRIVER_APPARMOR_HELPER_SOURCES)

1176
install-data-local:
1177 1178 1179 1180 1181 1182
	$(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"
1183
	$(MKDIR_P) "$(DESTDIR)$(localstatedir)/cache/libvirt/qemu"
1184
	$(MKDIR_P) "$(DESTDIR)$(localstatedir)/log/libvirt/qemu"
1185 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195
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"
1196
	$(MKDIR_P) "$(DESTDIR)$(localstatedir)/lib/libvirt/dnsmasq"
1197
	$(MKDIR_P) "$(DESTDIR)$(localstatedir)/run/libvirt/network"
1198 1199 1200 1201
	$(MKDIR_P) "$(DESTDIR)$(sysconfdir)/libvirt/qemu/networks/autostart"
	$(INSTALL_DATA) $(srcdir)/network/default.xml \
	  $(DESTDIR)$(sysconfdir)/libvirt/qemu/networks/default.xml
	test -z "$(UUID)" || \
E
Eric Blake 已提交
1202 1203 1204 1205 1206 1207
	  { sed -e "s,</name>,</name>\n  <uuid>$(UUID)</uuid>," \
	      $(DESTDIR)$(sysconfdir)/libvirt/qemu/networks/default.xml > \
	      $(DESTDIR)$(sysconfdir)/libvirt/qemu/networks/default.xml.t && \
	    cp $(DESTDIR)$(sysconfdir)/libvirt/qemu/networks/default.xml.t \
	      $(DESTDIR)$(sysconfdir)/libvirt/qemu/networks/default.xml && \
	    rm $(DESTDIR)$(sysconfdir)/libvirt/qemu/networks/default.xml.t; }
1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220 1221
	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" ||:
1222
endif
1223 1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 1236 1237 1238 1239
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 已提交
1240

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