Makefile.am 41.5 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
moddir = $(libdir)/libvirt/connection-driver
33 34
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/event_poll.c util/event_poll.h		\
56
		util/files.c util/files.h			\
57
		util/hash.c util/hash.h				\
D
Daniel Veillard 已提交
58
		util/hooks.c util/hooks.h			\
59
		util/iptables.c util/iptables.h			\
G
Gerhard Stenzel 已提交
60
		util/ebtables.c util/ebtables.h			\
61
		util/dnsmasq.c util/dnsmasq.h                   \
62
		util/json.c util/json.h				\
63
		util/logging.c util/logging.h			\
64
		util/macvtap.c util/macvtap.h			\
65 66
		util/memory.c util/memory.h			\
		util/pci.c util/pci.h				\
67
		util/processinfo.c util/processinfo.h		\
68
		util/hostusb.c util/hostusb.h			\
69
		util/network.c util/network.h			\
70
		util/interface.c util/interface.h		\
71
		util/qparams.c util/qparams.h			\
M
Markus Groß 已提交
72
		util/sexpr.c util/sexpr.h			\
73
		util/stats_linux.c util/stats_linux.h		\
74
		util/storage_file.c util/storage_file.h		\
75
		util/sysinfo.c util/sysinfo.h			\
76 77 78
		util/threads.c util/threads.h			\
		util/threads-pthread.h				\
		util/threads-win32.h				\
H
Hu Tao 已提交
79
		util/threadpool.c util/threadpool.h		\
80 81 82
		util/uuid.c util/uuid.h				\
		util/util.c util/util.h				\
		util/xml.c util/xml.h				\
83
		util/virtaudit.c util/virtaudit.h               \
84
		util/virterror.c util/virterror_internal.h
85 86

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

88
# Internal generic driver infrastructure
89
NODE_INFO_SOURCES = nodeinfo.h nodeinfo.c
90
DRIVER_SOURCES =						\
91
		driver.c driver.h				\
92 93
		internal.h					\
		datatypes.c datatypes.h				\
94
		fdstream.c fdstream.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

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

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

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

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

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

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

E
Eric Blake 已提交
258
VMWARE_DRIVER_SOURCES =						\
259
		vmware/vmware_driver.c vmware/vmware_driver.h	\
260 261
		vmware/vmware_conf.c vmware/vmware_conf.h

262
VBOX_DRIVER_SOURCES =						\
263
        vbox/vbox_glue.c vbox/vbox_glue.h			\
264
        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
        vbox/vbox_V3_1.c vbox/vbox_CAPI_v3_1.h			\
268 269
        vbox/vbox_V3_2.c vbox/vbox_CAPI_v3_2.h			\
        vbox/vbox_V4_0.c vbox/vbox_CAPI_v4_0.h
270

E
Eric Blake 已提交
271
VBOX_DRIVER_EXTRA_DIST =					\
272 273 274
		vbox/vbox_tmpl.c vbox/README			\
		vbox/vbox_MSCOMGlue.c vbox/vbox_MSCOMGlue.h	\
		vbox/vbox_XPCOMCGlue.c vbox/vbox_XPCOMCGlue.h
275

276
QEMU_DRIVER_SOURCES =						\
277
		qemu/qemu_capabilities.c qemu/qemu_capabilities.h\
278
		qemu/qemu_command.c qemu/qemu_command.h		\
279
		qemu/qemu_domain.c qemu/qemu_domain.h		\
280
		qemu/qemu_audit.c qemu/qemu_audit.h		\
281
		qemu/qemu_cgroup.c qemu/qemu_cgroup.h		\
282
		qemu/qemu_hostdev.c qemu/qemu_hostdev.h		\
283
		qemu/qemu_hotplug.c qemu/qemu_hotplug.h		\
284
		qemu/qemu_conf.c qemu/qemu_conf.h		\
285 286
		qemu/qemu_process.c qemu/qemu_process.h		\
		qemu/qemu_migration.c qemu/qemu_migration.h	\
287
		qemu/qemu_monitor.c qemu/qemu_monitor.h		\
288 289
		qemu/qemu_monitor_text.c			\
		qemu/qemu_monitor_text.h			\
D
Daniel P. Berrange 已提交
290 291 292
		qemu/qemu_monitor_json.c			\
		qemu/qemu_monitor_json.h			\
		qemu/qemu_driver.c qemu/qemu_driver.h		\
E
Eric Blake 已提交
293
		qemu/qemu_bridge_filter.c			\
294
		qemu/qemu_bridge_filter.h
R
Richard W.M. Jones 已提交
295

296 297
XENAPI_DRIVER_SOURCES =								\
		xenapi/xenapi_driver.c xenapi/xenapi_driver.h	\
298
		xenapi/xenapi_driver_private.h					\
299 300
		xenapi/xenapi_utils.c xenapi/xenapi_utils.h

301
UML_DRIVER_SOURCES =						\
D
Daniel P. Berrange 已提交
302 303
		uml/uml_conf.c uml/uml_conf.h			\
		uml/uml_driver.c uml/uml_driver.h
304

305 306 307 308 309 310
ONE_DRIVER_SOURCES =						\
		./opennebula/one_conf.c				\
		./opennebula/one_conf.h				\
		./opennebula/one_driver.c			\
		./opennebula/one_driver.h			\
		./opennebula/one_client.c			\
311
		./opennebula/one_client.h
D
Daniel Veillard 已提交
312

313
ESX_DRIVER_SOURCES =						\
314
		esx/esx_private.h						\
315
		esx/esx_driver.c esx/esx_driver.h		\
316 317 318 319 320
		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 已提交
321
		esx/esx_nwfilter_driver.c esx/esx_nwfilter_driver.h		\
322 323
		esx/esx_util.c esx/esx_util.h			\
		esx/esx_vi.c esx/esx_vi.h			\
324
		esx/esx_vi_methods.c esx/esx_vi_methods.h	\
325
		esx/esx_vi_types.c esx/esx_vi_types.h
326

327
ESX_DRIVER_GENERATED =							\
328 329
		esx/esx_vi_methods.generated.c				\
		esx/esx_vi_methods.generated.h				\
330 331 332 333 334 335 336 337 338 339 340 341 342
		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)

343
NETWORK_DRIVER_SOURCES =					\
344
		network/bridge_driver.h network/bridge_driver.c
345

346
INTERFACE_DRIVER_SOURCES =					\
347
		interface/netcf_driver.h interface/netcf_driver.c
348

349
SECRET_DRIVER_SOURCES =						\
350
		secret/secret_driver.h secret/secret_driver.c
351

352
# Storage backend specific impls
353
STORAGE_DRIVER_SOURCES =					\
354 355
		storage/storage_driver.h storage/storage_driver.c		\
		storage/storage_backend.h storage/storage_backend.c
356 357

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

360
STORAGE_DRIVER_LVM_SOURCES =					\
361 362
		storage/storage_backend_logical.h			\
		storage/storage_backend_logical.c
363 364

STORAGE_DRIVER_ISCSI_SOURCES =					\
365
		storage/storage_backend_iscsi.h storage/storage_backend_iscsi.c
366

367
STORAGE_DRIVER_SCSI_SOURCES =					\
368
		storage/storage_backend_scsi.h storage/storage_backend_scsi.c
369

D
Dave Allan 已提交
370
STORAGE_DRIVER_MPATH_SOURCES =					\
371
		storage/storage_backend_mpath.h storage/storage_backend_mpath.c
D
Dave Allan 已提交
372

373
STORAGE_DRIVER_DISK_SOURCES =					\
374
		storage/storage_backend_disk.h storage/storage_backend_disk.c
375 376

STORAGE_HELPER_DISK_SOURCES =					\
377
		storage/parthelper.c
378

379 380 381
# Network filters
NWFILTER_DRIVER_SOURCES =					\
		nwfilter/nwfilter_driver.h nwfilter/nwfilter_driver.c	\
382 383 384
		nwfilter/nwfilter_gentech_driver.c			\
		nwfilter/nwfilter_gentech_driver.h			\
		nwfilter/nwfilter_ebiptables_driver.c			\
385 386 387
		nwfilter/nwfilter_ebiptables_driver.h			\
		nwfilter/nwfilter_learnipaddr.c				\
		nwfilter/nwfilter_learnipaddr.h
388

389

390
# Security framework and drivers for various models
391
SECURITY_DRIVER_SOURCES =					\
392 393 394 395 396
		security/security_driver.h security/security_driver.c \
		security/security_nop.h security/security_nop.c \
		security/security_stack.h security/security_stack.c \
		security/security_dac.h security/security_dac.c \
		security/security_manager.h security/security_manager.c
397

398
SECURITY_DRIVER_SELINUX_SOURCES =				\
399
		security/security_selinux.h security/security_selinux.c
400

J
Jamie Strandboge 已提交
401 402 403
SECURITY_DRIVER_APPARMOR_SOURCES =				\
		security/security_apparmor.h security/security_apparmor.c

404

405
NODE_DEVICE_DRIVER_SOURCES =					\
406 407 408
		node_device/node_device_driver.c \
		node_device/node_device_driver.h \
		node_device/node_device_linux_sysfs.c
409 410

NODE_DEVICE_DRIVER_HAL_SOURCES =				\
411
		node_device/node_device_hal.c			\
412
		node_device/node_device_hal.h
413

414
NODE_DEVICE_DRIVER_UDEV_SOURCES =				\
D
Daniel Veillard 已提交
415 416
		node_device/node_device_udev.c			\
		node_device/node_device_udev.h
417

J
Jiri Denemark 已提交
418 419 420 421 422
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
423

424 425 426
VMX_SOURCES =							\
		vmx/vmx.c vmx/vmx.h

427 428
XENXS_SOURCES =							\
		xenxs/xenxs_private.h				\
429 430
		xenxs/xen_sxpr.c xenxs/xen_sxpr.h		\
		xenxs/xen_xm.c xenxs/xen_xm.h
431

J
Jiri Denemark 已提交
432 433
pkgdata_DATA =	cpu/cpu_map.xml

E
Eric Blake 已提交
434
EXTRA_DIST +=	$(pkgdata_DATA)
435

436 437 438 439 440 441
#########################
#
# Build up list of libvirt.la source files based on configure conditions
#
# First deal with sources usable in non-daemon context

442
noinst_LTLIBRARIES = libvirt_util.la
443 444
libvirt_la_LIBADD = $(libvirt_la_BUILT_LIBADD)
libvirt_la_BUILT_LIBADD = libvirt_util.la
445 446
libvirt_util_la_SOURCES =					\
		$(UTIL_SOURCES)
447
libvirt_util_la_CFLAGS = $(CAPNG_CFLAGS) $(YAJL_CFLAGS) $(LIBNL_CFLAGS) \
448
		$(AM_CFLAGS) $(AUDIT_CFLAGS) $(DEVMAPPER_CFLAGS)
449
libvirt_util_la_LIBADD = $(CAPNG_LIBS) $(YAJL_LIBS) $(LIBNL_LIBS) \
450
		$(LIB_PTHREAD) $(AUDIT_LIBS) $(DEVMAPPER_LIBS)
451

452 453

noinst_LTLIBRARIES += libvirt_conf.la
454
libvirt_la_BUILT_LIBADD += libvirt_conf.la
455
libvirt_conf_la_SOURCES = $(CONF_SOURCES)
456 457
libvirt_conf_la_CFLAGS = $(AM_CFLAGS)
libvirt_conf_la_LDFLAGS = $(AM_LDFLAGS)
458

J
Jiri Denemark 已提交
459
noinst_LTLIBRARIES += libvirt_cpu.la
460
libvirt_la_BUILT_LIBADD += libvirt_cpu.la
J
Jiri Denemark 已提交
461
libvirt_cpu_la_CFLAGS = \
462
		-I@top_srcdir@/src/conf $(AM_CFLAGS)
J
Jiri Denemark 已提交
463 464
libvirt_cpu_la_SOURCES = $(CPU_SOURCES)

465 466 467 468 469 470 471 472
if WITH_VMX
noinst_LTLIBRARIES += libvirt_vmx.la
libvirt_la_BUILT_LIBADD += libvirt_vmx.la
libvirt_vmx_la_CFLAGS = \
		-I@top_srcdir@/src/conf $(AM_CFLAGS)
libvirt_vmx_la_SOURCES = $(VMX_SOURCES)
endif

473 474 475 476 477 478 479 480
if WITH_XEN
noinst_LTLIBRARIES += libvirt_xenxs.la
libvirt_la_BUILT_LIBADD += libvirt_xenxs.la
libvirt_xenxs_la_CFLAGS = \
		-I@top_srcdir@/src/conf $(AM_CFLAGS)
libvirt_xenxs_la_SOURCES = $(XENXS_SOURCES)
endif

481

482
noinst_LTLIBRARIES += libvirt_driver.la
483
libvirt_la_BUILT_LIBADD += libvirt_driver.la
484
libvirt_driver_la_SOURCES = $(DRIVER_SOURCES)
485

M
Matthias Bolte 已提交
486
libvirt_driver_la_CFLAGS = $(NUMACTL_CFLAGS) $(GNUTLS_CFLAGS) \
487
		-I@top_srcdir@/src/conf $(AM_CFLAGS)
M
Matthias Bolte 已提交
488
libvirt_driver_la_LIBADD = $(NUMACTL_LIBS) $(GNUTLS_LIBS)
489

490
USED_SYM_FILES = libvirt_private.syms
491

492
if WITH_TEST
493 494 495
if WITH_DRIVER_MODULES
mod_LTLIBRARIES += libvirt_driver_test.la
else
496
noinst_LTLIBRARIES += libvirt_driver_test.la
497
libvirt_la_BUILT_LIBADD += libvirt_driver_test.la
498
endif
499
libvirt_driver_test_la_CFLAGS = \
500
		-I@top_srcdir@/src/conf $(AM_CFLAGS)
501
if WITH_DRIVER_MODULES
502
libvirt_driver_test_la_LDFLAGS = -module -avoid-version $(AM_LDFLAGS)
503
endif
504
libvirt_driver_test_la_SOURCES = $(TEST_DRIVER_SOURCES)
505 506 507
endif

if WITH_REMOTE
508 509 510
if WITH_DRIVER_MODULES
mod_LTLIBRARIES += libvirt_driver_remote.la
else
511
noinst_LTLIBRARIES += libvirt_driver_remote.la
512
libvirt_la_BUILT_LIBADD += libvirt_driver_remote.la
513
endif
514 515
libvirt_driver_remote_la_CFLAGS =				\
		$(GNUTLS_CFLAGS)				\
E
Eric Blake 已提交
516
		$(SASL_CFLAGS) $(XDR_CFLAGS)			\
517 518 519
		-I@top_srcdir@/src/conf				\
		$(AM_CFLAGS)
libvirt_driver_remote_la_LDFLAGS = $(AM_LDFLAGS)
520
libvirt_driver_remote_la_LIBADD = $(GNUTLS_LIBS) $(SASL_LIBS)
521 522 523
if WITH_DRIVER_MODULES
libvirt_driver_remote_la_LDFLAGS += -module -avoid-version
endif
524
libvirt_driver_remote_la_SOURCES = $(REMOTE_DRIVER_SOURCES)
525 526 527 528 529 530

if HAVE_RPCGEN
#
# Maintainer-only target for re-generating the derived .c/.h source
# files, which are actually derived from the .x file.
#
531
# For committing protocol changes to GIT, the GLIBC rpcgen *must*
532 533 534 535 536
# 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 已提交
537
rpcgen-normal:
538 539 540 541
	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 已提交
542 543
	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
544 545 546 547 548 549 550 551 552 553
	(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 已提交
554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584

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

585 586 587
endif

remote/remote_protocol.c: remote/remote_protocol.h
588 589 590
endif

if WITH_XEN
591 592 593
if WITH_DRIVER_MODULES
mod_LTLIBRARIES += libvirt_driver_xen.la
else
594
noinst_LTLIBRARIES += libvirt_driver_xen.la
595
libvirt_la_BUILT_LIBADD += libvirt_driver_xen.la
596
endif
E
Eric Blake 已提交
597
libvirt_driver_xen_la_CFLAGS =					\
598
		$(XEN_CFLAGS)					\
599
		-I@top_srcdir@/src/conf				\
600
		-I@top_srcdir@/src/xenxs			\
601 602
		$(AM_CFLAGS)
libvirt_driver_xen_la_LDFLAGS = $(AM_LDFLAGS)
603
libvirt_driver_xen_la_LIBADD = $(XEN_LIBS)
604
if WITH_DRIVER_MODULES
605
libvirt_driver_xen_la_LIBADD += ../gnulib/lib/libgnu.la
606 607
libvirt_driver_xen_la_LDFLAGS += -module -avoid-version
endif
608
libvirt_driver_xen_la_SOURCES = $(XEN_DRIVER_SOURCES)
609 610
endif

611 612 613 614 615
if WITH_PHYP
if WITH_DRIVER_MODULES
mod_LTLIBRARIES += libvirt_driver_phyp.la
else
noinst_LTLIBRARIES += libvirt_driver_phyp.la
616
libvirt_la_BUILT_LIBADD += libvirt_driver_phyp.la
617
endif
618
libvirt_driver_phyp_la_LIBADD = $(LIBSSH2_LIBS)
619 620 621 622
if WITH_DRIVER_MODULES
libvirt_driver_phyp_la_LIBADD += ../gnulib/lib/libgnu.la
libvirt_driver_phyp_la_LDFLAGS = -module -avoid-version $(AM_LDFLAGS)
endif
623
libvirt_driver_phyp_la_CFLAGS = $(LIBSSH2_CFLAGS) \
624
		-I@top_srcdir@/src/conf $(AM_CFLAGS)
625 626 627
libvirt_driver_phyp_la_SOURCES = $(PHYP_DRIVER_SOURCES)
endif

628
if WITH_OPENVZ
629 630 631
if WITH_DRIVER_MODULES
mod_LTLIBRARIES += libvirt_driver_openvz.la
else
632
noinst_LTLIBRARIES += libvirt_driver_openvz.la
633
libvirt_la_BUILT_LIBADD += libvirt_driver_openvz.la
634
endif
635
libvirt_driver_openvz_la_CFLAGS = \
636
		-I@top_srcdir@/src/conf $(AM_CFLAGS)
637
if WITH_DRIVER_MODULES
638
libvirt_driver_openvz_la_LIBADD = ../gnulib/lib/libgnu.la
639
libvirt_driver_openvz_la_LDFLAGS = -module -avoid-version $(AM_LDFLAGS)
640
endif
641
libvirt_driver_openvz_la_SOURCES = $(OPENVZ_DRIVER_SOURCES)
642 643
endif

644 645 646 647 648 649 650 651
if WITH_VMWARE
if WITH_DRIVER_MODULES
mod_LTLIBRARIES += libvirt_driver_vmware.la
else
noinst_LTLIBRARIES += libvirt_driver_vmware.la
libvirt_la_BUILT_LIBADD += libvirt_driver_vmware.la
endif
libvirt_driver_vmware_la_CFLAGS = \
652
		-I@top_srcdir@/src/conf -I@top_srcdir@/src/vmx
653
if WITH_DRIVER_MODULES
654
libvirt_driver_vmware_la_LIBADD = ../gnulib/lib/libgnu.la
655 656 657 658 659
libvirt_driver_vmware_la_LDFLAGS = -module -avoid-version
endif
libvirt_driver_vmware_la_SOURCES = $(VMWARE_DRIVER_SOURCES)
endif

660 661 662 663 664
if WITH_VBOX
if WITH_DRIVER_MODULES
mod_LTLIBRARIES += libvirt_driver_vbox.la
else
noinst_LTLIBRARIES += libvirt_driver_vbox.la
665
libvirt_la_BUILT_LIBADD += libvirt_driver_vbox.la
666
endif
667
libvirt_driver_vbox_la_CFLAGS = \
668
		-I@top_srcdir@/src/conf $(AM_CFLAGS)
669
libvirt_driver_vbox_la_LIBADD = $(DLOPEN_LIBS) $(MSCOM_LIBS)
670
if WITH_DRIVER_MODULES
671
libvirt_driver_vbox_la_LIBADD += ../gnulib/lib/libgnu.la
672
libvirt_driver_vbox_la_LDFLAGS = -module -avoid-version $(AM_LDFLAGS)
673 674 675 676
endif
libvirt_driver_vbox_la_SOURCES = $(VBOX_DRIVER_SOURCES)
endif

677 678 679 680 681
if WITH_XENAPI
if WITH_DRIVER_MODULES
mod_LTLIBRARIES += libvirt_driver_xenapi.la
else
noinst_LTLIBRARIES += libvirt_driver_xenapi.la
682
libvirt_la_BUILT_LIBADD += libvirt_driver_xenapi.la
683 684
endif
libvirt_driver_xenapi_la_CFLAGS = $(LIBXENSERVER_CFLAGS) $(LIBCURL_CFLAGS) \
685 686
		-I@top_srcdir@/src/conf $(AM_CFLAGS)
libvirt_driver_xenapi_la_LDFLAGS = $(AM_LDFLAGS)
687
libvirt_driver_xenapi_la_LIBADD = $(LIBXENSERVER_LIBS) $(LIBCURL_LIBS)
688
if WITH_DRIVER_MODULES
689
libvirt_driver_xenapi_la_LIBADD += ../gnulib/lib/libgnu.la
690 691 692 693 694
libvirt_driver_xenapi_la_LDFLAGS += -module -avoid-version
endif
libvirt_driver_xenapi_la_SOURCES = $(XENAPI_DRIVER_SOURCES)
endif

695
if WITH_QEMU
696 697 698
if WITH_DRIVER_MODULES
mod_LTLIBRARIES += libvirt_driver_qemu.la
else
699
noinst_LTLIBRARIES += libvirt_driver_qemu.la
700
# Stateful, so linked to daemon instead
701
#libvirt_la_BUILT_LIBADD += libvirt_driver_qemu.la
702
endif
703
libvirt_driver_qemu_la_CFLAGS = $(NUMACTL_CFLAGS) \
704 705
		-I@top_srcdir@/src/conf $(AM_CFLAGS)
libvirt_driver_qemu_la_LDFLAGS = $(AM_LDFLAGS)
706 707
libvirt_driver_qemu_la_LIBADD = $(NUMACTL_LIBS) \
				$(CAPNG_LIBS)
708
if WITH_DRIVER_MODULES
709
libvirt_driver_qemu_la_LIBADD += ../gnulib/lib/libgnu.la
710 711
libvirt_driver_qemu_la_LDFLAGS += -module -avoid-version
endif
712
libvirt_driver_qemu_la_SOURCES = $(QEMU_DRIVER_SOURCES)
713

A
Amy Griffis 已提交
714
conf_DATA += qemu/qemu.conf
715

716 717
augeas_DATA += qemu/libvirtd_qemu.aug
augeastest_DATA += qemu/test_libvirtd_qemu.aug
718

719
endif
720 721
EXTRA_DIST += qemu/qemu.conf qemu/libvirtd_qemu.aug \
		qemu/test_libvirtd_qemu.aug qemu/THREADS.txt
722

723 724

if WITH_LXC
725 726 727
if WITH_DRIVER_MODULES
mod_LTLIBRARIES += libvirt_driver_lxc.la
else
728
noinst_LTLIBRARIES += libvirt_driver_lxc.la
729
# Stateful, so linked to daemon instead
730
#libvirt_la_BUILT_LIBADD += libvirt_driver_lxc.la
731
endif
732
libvirt_driver_lxc_la_CFLAGS = \
733
		-I@top_srcdir@/src/conf $(AM_CFLAGS)
734 735 736 737 738 739 740
libvirt_driver_lxc_la_LIBADD = $(CAPNG_LIBS)
if WITH_SECDRIVER_SELINUX
libvirt_driver_lxc_la_LIBADD += $(SELINUX_LIBS)
endif
if WITH_SECDRIVER_APPARMOR
libvirt_driver_lxc_la_LIBADD += $(APPARMOR_LIBS)
endif
741
if WITH_DRIVER_MODULES
742
libvirt_driver_lxc_la_LIBADD += ../gnulib/lib/libgnu.la
743
libvirt_driver_lxc_la_LDFLAGS = -module -avoid-version $(AM_LDFLAGS)
744
endif
745
libvirt_driver_lxc_la_SOURCES = $(LXC_DRIVER_SOURCES)
A
Amy Griffis 已提交
746 747 748

conf_DATA += lxc/lxc.conf

749 750 751
augeas_DATA += lxc/libvirtd_lxc.aug
augeastest_DATA += lxc/test_libvirtd_lxc.aug

752
endif
753
EXTRA_DIST += lxc/lxc.conf lxc/libvirtd_lxc.aug lxc/test_libvirtd_lxc.aug
754

755
if WITH_UML
756 757 758
if WITH_DRIVER_MODULES
mod_LTLIBRARIES += libvirt_driver_uml.la
else
759 760
noinst_LTLIBRARIES += libvirt_driver_uml.la
# Stateful, so linked to daemon instead
761
#libvirt_la_BUILT_LIBADD += libvirt_driver_uml.la
762
endif
763
libvirt_driver_uml_la_CFLAGS = $(NUMACTL_CFLAGS) \
764 765
		-I@top_srcdir@/src/conf $(AM_CFLAGS)
libvirt_driver_uml_la_LDFLAGS = $(AM_LDFLAGS)
766
libvirt_driver_uml_la_LIBADD = $(NUMACTL_LIBS)
767
if WITH_DRIVER_MODULES
768
libvirt_driver_uml_la_LIBADD += ../gnulib/lib/libgnu.la
769 770
libvirt_driver_uml_la_LDFLAGS += -module -avoid-version
endif
771 772
libvirt_driver_uml_la_SOURCES = $(UML_DRIVER_SOURCES)
endif
773

D
Daniel Veillard 已提交
774 775 776 777 778 779
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
780
#libvirt_la_BUILT_LIBADD  += libvirt_driver_one.la
D
Daniel Veillard 已提交
781
endif
782
libvirt_driver_one_la_CFLAGS = $(XMLRPC_CFLAGS) \
783 784
		-I@top_srcdir@/src/conf $(AM_CFLAGS)
libvirt_driver_one_la_LDFLAGS = $(AM_LDFLAGS)
785
libvirt_driver_one_la_LIBADD = $(XMLRPC_LIBS)
D
Daniel Veillard 已提交
786 787
#libvirt_driver_one_la_CFLAGS  = "-DWITH_ONE"
if WITH_DRIVER_MODULES
788
libvirt_driver_one_la_LIBADD += ../gnulib/lib/libgnu.la
D
Daniel Veillard 已提交
789 790 791 792 793 794
libvirt_driver_one_la_LDFLAGS += -module -avoid-version
endif
libvirt_driver_one_la_SOURCES = $(ONE_DRIVER_SOURCES)
endif


795
BUILT_SOURCES += $(ESX_DRIVER_GENERATED)
D
Daniel Veillard 已提交
796

797 798
$(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 已提交
799

800 801 802 803 804
if WITH_ESX
if WITH_DRIVER_MODULES
mod_LTLIBRARIES += libvirt_driver_esx.la
else
noinst_LTLIBRARIES += libvirt_driver_esx.la
805
libvirt_la_BUILT_LIBADD += libvirt_driver_esx.la
806
endif
807
libvirt_driver_esx_la_CFLAGS = $(LIBCURL_CFLAGS) \
808
		-I@top_srcdir@/src/conf -I@top_srcdir@/src/vmx $(AM_CFLAGS)
809
libvirt_driver_esx_la_LDFLAGS = $(AM_LDFLAGS)
810
libvirt_driver_esx_la_LIBADD = $(LIBCURL_LIBS)
811
if WITH_DRIVER_MODULES
812
libvirt_driver_esx_la_LIBADD += ../gnulib/lib/libgnu.la
813 814 815
libvirt_driver_esx_la_LDFLAGS += -module -avoid-version
endif
libvirt_driver_esx_la_SOURCES = $(ESX_DRIVER_SOURCES)
816
libvirt_driver_esx_la_DEPENDENCIES = $(ESX_DRIVER_GENERATED)
817 818
endif

819
if WITH_NETWORK
820 821 822
if WITH_DRIVER_MODULES
mod_LTLIBRARIES += libvirt_driver_network.la
else
823
noinst_LTLIBRARIES += libvirt_driver_network.la
824
# Stateful, so linked to daemon instead
825
#libvirt_la_BUILT_LIBADD += libvirt_driver_network.la
826
endif
827
libvirt_driver_network_la_CFLAGS = \
828
		-I@top_srcdir@/src/conf $(AM_CFLAGS)
829
if WITH_DRIVER_MODULES
830
libvirt_driver_network_la_LIBADD = ../gnulib/lib/libgnu.la
831
libvirt_driver_network_la_LDFLAGS = -module -avoid-version $(AM_LDFLAGS)
832
endif
833
libvirt_driver_network_la_SOURCES = $(NETWORK_DRIVER_SOURCES)
834
endif
835 836 837 838
EXTRA_DIST += network/default.xml



839

D
Daniel Veillard 已提交
840
if WITH_NETCF
841 842 843 844
if WITH_DRIVER_MODULES
mod_LTLIBRARIES += libvirt_driver_interface.la
else
noinst_LTLIBRARIES += libvirt_driver_interface.la
845
libvirt_la_BUILT_LIBADD += libvirt_driver_interface.la
846
endif
847
libvirt_driver_interface_la_CFLAGS = $(NETCF_CFLAGS) \
848 849
		-I@top_srcdir@/src/conf $(AM_CFLAGS)
libvirt_driver_interface_la_LDFLAGS = $(AM_LDFLAGS)
850
libvirt_driver_interface_la_LIBADD = $(NETCF_LIBS)
851
if WITH_DRIVER_MODULES
852
libvirt_driver_interface_la_LIBADD += ../gnulib/lib/libgnu.la
853 854 855
libvirt_driver_interface_la_LDFLAGS += -module -avoid-version
endif
libvirt_driver_interface_la_SOURCES = $(INTERFACE_DRIVER_SOURCES)
D
Daniel Veillard 已提交
856 857
endif

D
Daniel P. Berrange 已提交
858
if WITH_SECRETS
859 860 861 862
if WITH_DRIVER_MODULES
mod_LTLIBRARIES += libvirt_driver_secret.la
else
noinst_LTLIBRARIES += libvirt_driver_secret.la
863
# Stateful, so linked to daemon instead
864
#libvirt_la_BUILT_LIBADD += libvirt_driver_secret.la
865
endif
866
libvirt_driver_secret_la_CFLAGS = \
867
		-I@top_srcdir@/src/conf $(AM_CFLAGS)
868
if WITH_DRIVER_MODULES
869
libvirt_driver_secret_la_LIBADD = ../gnulib/lib/libgnu.la
870
libvirt_driver_secret_la_LDFLAGS = -module -avoid-version $(AM_LDFLAGS)
871 872
endif
libvirt_driver_secret_la_SOURCES = $(SECRET_DRIVER_SOURCES)
D
Daniel P. Berrange 已提交
873
endif
874

875 876
# Needed to keep automake quiet about conditionals
libvirt_driver_storage_la_SOURCES =
877
libvirt_driver_storage_la_CFLAGS = \
878 879
		-I@top_srcdir@/src/conf $(AM_CFLAGS)
libvirt_driver_storage_la_LDFLAGS = $(AM_LDFLAGS)
880
libvirt_driver_storage_la_LIBADD =
881 882 883 884 885 886
if WITH_SECDRIVER_SELINUX
libvirt_driver_storage_la_LIBADD += $(SELINUX_LIBS)
endif
if WITH_SECDRIVER_APPARMOR
libvirt_driver_storage_la_LIBADD += $(APPARMOR_LIBS)
endif
887
if WITH_STORAGE_DIR
888 889 890
if WITH_DRIVER_MODULES
mod_LTLIBRARIES += libvirt_driver_storage.la
else
891
noinst_LTLIBRARIES += libvirt_driver_storage.la
892
# Stateful, so linked to daemon instead
893
#libvirt_la_BUILT_LIBADD += libvirt_driver_storage.la
894 895
endif
if WITH_DRIVER_MODULES
896
libvirt_driver_storage_la_LIBADD += ../gnulib/lib/libgnu.la
897
libvirt_driver_storage_la_LDFLAGS += -module -avoid-version
898
endif
899 900
libvirt_driver_storage_la_SOURCES += $(STORAGE_DRIVER_SOURCES)
libvirt_driver_storage_la_SOURCES += $(STORAGE_DRIVER_FS_SOURCES)
901 902
endif

903
if WITH_STORAGE_LVM
904
libvirt_driver_storage_la_SOURCES += $(STORAGE_DRIVER_LVM_SOURCES)
905 906
endif

907
if WITH_STORAGE_ISCSI
908
libvirt_driver_storage_la_SOURCES += $(STORAGE_DRIVER_ISCSI_SOURCES)
909 910
endif

911 912 913 914
if WITH_STORAGE_SCSI
libvirt_driver_storage_la_SOURCES += $(STORAGE_DRIVER_SCSI_SOURCES)
endif

D
Dave Allan 已提交
915 916 917
if WITH_STORAGE_MPATH
libvirt_driver_storage_la_SOURCES += $(STORAGE_DRIVER_MPATH_SOURCES)
libvirt_driver_storage_la_CFLAGS += $(DEVMAPPER_CFLAGS)
918
libvirt_driver_storage_la_LIBADD += $(DEVMAPPER_LIBS)
D
Dave Allan 已提交
919 920
endif

921
if WITH_STORAGE_DISK
922
libvirt_driver_storage_la_SOURCES += $(STORAGE_DRIVER_DISK_SOURCES)
923
endif
924

925 926 927 928 929 930 931
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
932
#libvirt_la_BUILT_LIBADD += libvirt_driver_nodedev.la
933 934 935
endif
libvirt_driver_nodedev_la_SOURCES = $(NODE_DEVICE_DRIVER_SOURCES)

936
libvirt_driver_nodedev_la_CFLAGS = \
937 938
		-I@top_srcdir@/src/conf $(AM_CFLAGS)
libvirt_driver_nodedev_la_LDFLAGS = $(AM_LDFLAGS)
939
libvirt_driver_nodedev_la_LIBADD =
940 941 942
if HAVE_HAL
libvirt_driver_nodedev_la_SOURCES += $(NODE_DEVICE_DRIVER_HAL_SOURCES)
libvirt_driver_nodedev_la_CFLAGS += $(HAL_CFLAGS)
943
libvirt_driver_nodedev_la_LIBADD += $(HAL_LIBS)
944
endif
945 946
if HAVE_UDEV
libvirt_driver_nodedev_la_SOURCES += $(NODE_DEVICE_DRIVER_UDEV_SOURCES)
947
libvirt_driver_nodedev_la_CFLAGS += $(UDEV_CFLAGS) $(PCIACCESS_CFLAGS)
948
libvirt_driver_nodedev_la_LIBADD += $(UDEV_LIBS) $(PCIACCESS_LIBS)
949
endif
950 951

if WITH_DRIVER_MODULES
952
libvirt_driver_nodedev_la_LIBADD += ../gnulib/lib/libgnu.la
953 954 955 956 957
libvirt_driver_nodedev_la_LDFLAGS += -module -avoid-version
endif
endif


958 959 960 961
if WITH_NWFILTER
if WITH_DRIVER_MODULES
mod_LTLIBRARIES += libvirt_driver_nwfilter.la
else
962
libvirt_la_BUILT_LIBADD += libvirt_driver_nwfilter.la
963 964
noinst_LTLIBRARIES += libvirt_driver_nwfilter.la
endif
965
libvirt_driver_nwfilter_la_CFLAGS = $(LIBPCAP_CFLAGS) \
966 967
		-I@top_srcdir@/src/conf $(AM_CFLAGS)
libvirt_driver_nwfilter_la_LDFLAGS = $(LD_AMFLAGS)
968
libvirt_driver_nwfilter_la_LIBADD = $(LIBPCAP_LIBS)
969
if WITH_DRIVER_MODULES
970
libvirt_driver_nwfilter_la_LIBADD += ../gnulib/lib/libgnu.la
971
libvirt_driver_nwfilter_la_LDFLAGS += -module -avoid-version
972 973 974 975 976
endif
libvirt_driver_nwfilter_la_SOURCES = $(NWFILTER_DRIVER_SOURCES)
endif


977 978
libvirt_driver_security_la_SOURCES = $(SECURITY_DRIVER_SOURCES)
noinst_LTLIBRARIES += libvirt_driver_security.la
979
libvirt_la_BUILT_LIBADD += libvirt_driver_security.la
980
libvirt_driver_security_la_CFLAGS = \
981 982
		-I@top_srcdir@/src/conf $(AM_CFLAGS)
libvirt_driver_security_la_LDFLAGS = $(AM_LDFLAGS)
983
libvirt_driver_security_la_LIBADD =
984 985
if WITH_SECDRIVER_SELINUX
libvirt_driver_security_la_SOURCES += $(SECURITY_DRIVER_SELINUX_SOURCES)
J
Jim Fehlig 已提交
986
libvirt_driver_security_la_CFLAGS += $(SELINUX_CFLAGS)
987
libvirt_driver_security_la_LIBADD += $(SELINUX_LIBS)
988
endif
J
Jamie Strandboge 已提交
989 990 991
if WITH_SECDRIVER_APPARMOR
libvirt_driver_security_la_SOURCES += $(SECURITY_DRIVER_APPARMOR_SOURCES)
libvirt_driver_security_la_CFLAGS += $(APPARMOR_CFLAGS)
992
libvirt_driver_security_la_LIBADD += $(APPARMOR_LIBS)
J
Jamie Strandboge 已提交
993
endif
994

995 996 997 998 999 1000 1001
# Add all conditional sources just in case...
EXTRA_DIST +=							\
		$(TEST_DRIVER_SOURCES)				\
		$(REMOTE_DRIVER_SOURCES)			\
		$(XEN_DRIVER_SOURCES)				\
		$(QEMU_DRIVER_SOURCES)				\
		$(LXC_DRIVER_SOURCES)				\
1002
		$(UML_DRIVER_SOURCES)				\
D
Daniel Veillard 已提交
1003
		$(ONE_DRIVER_SOURCES)				\
1004
		$(OPENVZ_DRIVER_SOURCES)			\
1005
		$(PHYP_DRIVER_SOURCES)				\
1006
		$(VBOX_DRIVER_SOURCES)				\
1007
		$(XENAPI_DRIVER_SOURCES)			\
1008
		$(ESX_DRIVER_SOURCES)				\
1009
		$(ESX_DRIVER_EXTRA_DIST)			\
1010
		$(NETWORK_DRIVER_SOURCES)			\
1011
		$(INTERFACE_DRIVER_SOURCES)			\
1012 1013 1014 1015
		$(STORAGE_DRIVER_SOURCES)			\
		$(STORAGE_DRIVER_FS_SOURCES)			\
		$(STORAGE_DRIVER_LVM_SOURCES)			\
		$(STORAGE_DRIVER_ISCSI_SOURCES)			\
1016
		$(STORAGE_DRIVER_SCSI_SOURCES)			\
D
Dave Allan 已提交
1017
		$(STORAGE_DRIVER_MPATH_SOURCES)			\
1018 1019 1020
		$(STORAGE_DRIVER_DISK_SOURCES)			\
		$(NODE_DEVICE_DRIVER_SOURCES)			\
		$(NODE_DEVICE_DRIVER_HAL_SOURCES)		\
1021
		$(NODE_DEVICE_DRIVER_UDEV_SOURCES)		\
1022
		$(NWFILTER_DRIVER_SOURCES)			\
1023
		$(SECURITY_DRIVER_SELINUX_SOURCES)		\
J
Jamie Strandboge 已提交
1024
		$(SECURITY_DRIVER_APPARMOR_SOURCES)		\
D
Daniel P. Berrange 已提交
1025
		$(SECRET_DRIVER_SOURCES)			\
1026
		$(VBOX_DRIVER_EXTRA_DIST)			\
1027 1028
		$(VMWARE_DRIVER_SOURCES)			\
		$(XENXS_SOURCES)
1029

1030 1031 1032 1033
check-local: augeas-check

.PHONY: augeas-check
augeas-check:
1034
if WITH_QEMU
1035
	$(AM_V_GEN)if test -x '$(AUGPARSE)'; then \
1036 1037 1038 1039 1040
	    '$(AUGPARSE)' -I $(srcdir)/qemu \
	    $(srcdir)/qemu/test_libvirtd_qemu.aug; \
	fi
endif
if WITH_LXC
1041
	$(AM_V_GEN)if test -x '$(AUGPARSE)'; then \
1042 1043 1044 1045 1046
	    '$(AUGPARSE)' -I $(srcdir)/lxc \
	    $(srcdir)/lxc/test_libvirtd_lxc.aug; \
	fi
endif

1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065
#
# 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.
#

1066
if WITH_DRIVER_MODULES
1067
USED_SYM_FILES += libvirt_driver_modules.syms
1068
endif
1069 1070

if WITH_BRIDGE
1071
USED_SYM_FILES += libvirt_bridge.syms
1072
endif
1073 1074

if WITH_LINUX
1075
USED_SYM_FILES += libvirt_linux.syms
1076
endif
1077

1078
if WITH_MACVTAP
1079
USED_SYM_FILES += libvirt_macvtap.syms
1080
endif
1081

1082 1083 1084 1085
if WITH_LIBVIRTD
USED_SYM_FILES += libvirt_daemon.syms
endif

1086 1087 1088 1089
if WITH_NWFILTER
USED_SYM_FILES += libvirt_nwfilter.syms
endif

1090 1091 1092 1093
if WITH_VMX
USED_SYM_FILES += libvirt_vmx.syms
endif

1094 1095 1096 1097 1098
EXTRA_DIST += \
  libvirt_public.syms		\
  libvirt_private.syms		\
  libvirt_driver_modules.syms	\
  libvirt_bridge.syms		\
1099
  libvirt_linux.syms		\
1100
  libvirt_macvtap.syms		\
1101
  libvirt_daemon.syms		\
M
Matthias Bolte 已提交
1102 1103
  libvirt_nwfilter.syms	\
  libvirt_vmx.syms
1104

1105
BUILT_SOURCES += libvirt.syms libvirt.def libvirt_qemu.def
1106

1107 1108
libvirt.syms: libvirt_public.syms $(USED_SYM_FILES) \
		$(top_builddir)/config.status
1109 1110 1111 1112 1113 1114
	$(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 && \
1115
	for file in $(USED_SYM_FILES); do \
1116
	    cat $(srcdir)/$$file >>$@-tmp; \
1117 1118 1119
	done && \
	printf '\n\nlocal:\n*;\n\n};' >>$@-tmp && \
	chmod a-w $@-tmp && \
1120
	mv $@-tmp libvirt.syms
1121

1122 1123 1124
libvirt.def: libvirt.syms
	$(AM_V_GEN)rm -f -- $@-tmp $@ ; \
	printf 'EXPORTS\n' > $@-tmp && \
E
Eric Blake 已提交
1125
	sed -e '/^$$/d; /#/d; /:/d; /}/d; /\*/d; /LIBVIRT_/d; s/[	 ]*\(.*\)\;/    \1/g' $^ >> $@-tmp && \
1126 1127 1128
	chmod a-w $@-tmp && \
	mv $@-tmp libvirt.def

1129 1130 1131
libvirt_qemu.def: $(srcdir)/libvirt_qemu.syms
	$(AM_V_GEN)rm -f -- $@-tmp $@ ; \
	printf 'EXPORTS\n' > $@-tmp && \
E
Eric Blake 已提交
1132
	sed -e '/^$$/d; /#/d; /:/d; /}/d; /\*/d; /LIBVIRT_/d; s/[	 ]*\(.*\)\;/    \1/g' $^ >> $@-tmp && \
1133 1134 1135
	chmod a-w $@-tmp && \
	mv $@-tmp libvirt_qemu.def

1136 1137
# Empty source list - it merely links a bunch of convenience libs together
libvirt_la_SOURCES =
1138
libvirt_la_LDFLAGS = $(VERSION_SCRIPT_FLAGS)$(LIBVIRT_SYMBOL_FILE) \
1139
                     -version-info $(LIBVIRT_VERSION_INFO) \
1140
                    $(AM_LDFLAGS) \
1141
		    $(CYGWIN_EXTRA_LDFLAGS) $(MINGW_EXTRA_LDFLAGS)
1142
libvirt_la_BUILT_LIBADD += ../gnulib/lib/libgnu.la
1143
libvirt_la_LIBADD += $(LIBXML_LIBS) \
1144
		    $(DRIVER_MODULE_LIBS) \
1145
		    $(CYGWIN_EXTRA_LIBADD)
1146
libvirt_la_CFLAGS = -DIN_LIBVIRT $(AM_CFLAGS)
1147 1148 1149 1150 1151 1152
# 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)
1153

1154 1155 1156
# 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.
1157
noinst_LTLIBRARIES += libvirt_test.la
1158

1159
# Remove version script from convenience library
1160 1161
test_LDFLAGS =						\
  $$(echo '$(libvirt_la_LDFLAGS)'			\
1162
     |sed 's!$(VERSION_SCRIPT_FLAGS)$(LIBVIRT_SYMBOL_FILE)!!'	\
1163
     |sed 's!-version-info $(LIBVIRT_VERSION_INFO)!!')
1164 1165 1166 1167

# 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)
1168 1169
libvirt_test_la_LDFLAGS = $(test_LDFLAGS) $(AM_LDFLAGS)
libvirt_test_la_CFLAGS = $(AM_CFLAGS)
1170

C
Chris Lalancette 已提交
1171 1172 1173
libvirt_qemu_la_SOURCES = libvirt-qemu.c
libvirt_qemu_la_LDFLAGS = $(VERSION_SCRIPT_FLAGS)$(LIBVIRT_QEMU_SYMBOL_FILE) \
                          -version-info $(LIBVIRT_VERSION_INFO) \
1174 1175 1176
                          $(CYGWIN_EXTRA_LDFLAGS) $(MINGW_EXTRA_LDFLAGS) \
			  $(AM_LDFLAGS)
libvirt_qemu_la_CFLAGS = $(AM_CFLAGS)
C
Chris Lalancette 已提交
1177
libvirt_qemu_la_LIBADD = libvirt.la $(CYGWIN_EXTRA_LIBADD)
E
Eric Blake 已提交
1178
EXTRA_DIST += $(LIBVIRT_QEMU_SYMBOL_FILE)
1179

1180 1181
libexec_PROGRAMS =

1182
if WITH_STORAGE_DISK
R
Richard W.M. Jones 已提交
1183
if WITH_LIBVIRTD
1184
libexec_PROGRAMS += libvirt_parthelper
1185

1186
libvirt_parthelper_SOURCES = $(STORAGE_HELPER_DISK_SOURCES)
1187
libvirt_parthelper_LDFLAGS = $(WARN_LDFLAGS) $(AM_LDFLAGS)
1188 1189 1190 1191 1192
libvirt_parthelper_LDADD =		\
		$(LIBPARTED_LIBS)	\
		libvirt_util.la		\
		../gnulib/lib/libgnu.la

1193
libvirt_parthelper_CFLAGS = $(LIBPARTED_CFLAGS) $(AM_CFLAGS)
R
Richard W.M. Jones 已提交
1194
endif
1195
endif
1196 1197
EXTRA_DIST += $(STORAGE_HELPER_DISK_SOURCES)

1198

1199 1200 1201 1202 1203 1204
if WITH_LXC
if WITH_LIBVIRTD
libexec_PROGRAMS += libvirt_lxc

libvirt_lxc_SOURCES =						\
		$(LXC_CONTROLLER_SOURCES)			\
1205
		$(UTIL_SOURCES)					\
1206 1207
		$(NODE_INFO_SOURCES)				\
		$(ENCRYPTION_CONF_SOURCES)			\
1208
		$(DOMAIN_CONF_SOURCES)				\
1209 1210
		$(CPU_CONF_SOURCES)				\
		$(NWFILTER_PARAM_CONF_SOURCES)
1211
libvirt_lxc_LDFLAGS = $(WARN_CFLAGS) $(AM_LDFLAGS)
1212 1213
libvirt_lxc_LDADD = $(CAPNG_LIBS) $(YAJL_LIBS) \
		$(LIBXML_LIBS) $(NUMACTL_LIBS) $(LIB_PTHREAD) \
1214 1215
		$(LIBNL_LIBS) $(AUDIT_LIBS) $(DEVMAPPER_LIBS) \
		../gnulib/lib/libgnu.la
1216 1217 1218 1219
libvirt_lxc_CFLAGS =				\
		$(LIBPARTED_CFLAGS)		\
		$(NUMACTL_CFLAGS)		\
		$(CAPNG_CFLAGS)			\
1220
		$(YAJL_CFLAGS)			\
1221
		$(AUDIT_CFLAGS)			\
1222 1223
		-I@top_srcdir@/src/conf		\
		$(AM_CFLAGS)
1224 1225 1226 1227
endif
endif
EXTRA_DIST += $(LXC_CONTROLLER_SOURCES)

J
Jamie Strandboge 已提交
1228 1229 1230 1231 1232 1233
if WITH_SECDRIVER_APPARMOR
if WITH_LIBVIRTD
libexec_PROGRAMS += virt-aa-helper

virt_aa_helper_SOURCES = $(SECURITY_DRIVER_APPARMOR_HELPER_SOURCES)

1234
virt_aa_helper_LDFLAGS = $(WARN_LDFLAGS) $(AM_LDFLAGS)
J
Jamie Strandboge 已提交
1235
virt_aa_helper_LDADD =						\
1236
		$(LIBXML_LIBS)					\
C
Chris Lalancette 已提交
1237 1238 1239
		libvirt_conf.la					\
		libvirt_util.la					\
		../gnulib/lib/libgnu.la
J
Jamie Strandboge 已提交
1240 1241
virt_aa_helper_CFLAGS =						\
		-I@top_srcdir@/src/conf				\
1242 1243
		-I@top_srcdir@/src/security			\
		$(AM_CFLAGS)
J
Jamie Strandboge 已提交
1244 1245 1246 1247
endif
endif
EXTRA_DIST += $(SECURITY_DRIVER_APPARMOR_HELPER_SOURCES)

1248
install-data-local:
1249 1250 1251 1252 1253 1254
	$(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"
1255
	$(MKDIR_P) "$(DESTDIR)$(localstatedir)/cache/libvirt/qemu"
1256
	$(MKDIR_P) "$(DESTDIR)$(localstatedir)/log/libvirt/qemu"
1257 1258 1259 1260 1261 1262 1263 1264 1265 1266 1267
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"
1268
	$(MKDIR_P) "$(DESTDIR)$(localstatedir)/lib/libvirt/dnsmasq"
1269
	$(MKDIR_P) "$(DESTDIR)$(localstatedir)/run/libvirt/network"
1270 1271 1272 1273
	$(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 已提交
1274 1275 1276 1277 1278 1279
	  { 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; }
1280 1281 1282 1283 1284 1285 1286 1287 1288 1289 1290 1291 1292 1293
	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" ||:
1294
endif
1295 1296 1297 1298 1299 1300 1301 1302 1303 1304 1305 1306 1307 1308 1309 1310 1311
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 已提交
1312

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