Makefile.am 41.1 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
libvirt_driver_qemu_la_LIBADD = $(NUMACTL_LIBS)
707
if WITH_DRIVER_MODULES
708
libvirt_driver_qemu_la_LIBADD += ../gnulib/lib/libgnu.la
709 710
libvirt_driver_qemu_la_LDFLAGS += -module -avoid-version
endif
711
libvirt_driver_qemu_la_SOURCES = $(QEMU_DRIVER_SOURCES)
712

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

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

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

722 723

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

conf_DATA += lxc/lxc.conf

741 742 743
augeas_DATA += lxc/libvirtd_lxc.aug
augeastest_DATA += lxc/test_libvirtd_lxc.aug

744
endif
745
EXTRA_DIST += lxc/lxc.conf lxc/libvirtd_lxc.aug lxc/test_libvirtd_lxc.aug
746

747
if WITH_UML
748 749 750
if WITH_DRIVER_MODULES
mod_LTLIBRARIES += libvirt_driver_uml.la
else
751 752
noinst_LTLIBRARIES += libvirt_driver_uml.la
# Stateful, so linked to daemon instead
753
#libvirt_la_BUILT_LIBADD += libvirt_driver_uml.la
754
endif
755
libvirt_driver_uml_la_CFLAGS = $(NUMACTL_CFLAGS) \
756 757
		-I@top_srcdir@/src/conf $(AM_CFLAGS)
libvirt_driver_uml_la_LDFLAGS = $(AM_LDFLAGS)
758
libvirt_driver_uml_la_LIBADD = $(NUMACTL_LIBS)
759
if WITH_DRIVER_MODULES
760
libvirt_driver_uml_la_LIBADD += ../gnulib/lib/libgnu.la
761 762
libvirt_driver_uml_la_LDFLAGS += -module -avoid-version
endif
763 764
libvirt_driver_uml_la_SOURCES = $(UML_DRIVER_SOURCES)
endif
765

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


787
BUILT_SOURCES += $(ESX_DRIVER_GENERATED)
D
Daniel Veillard 已提交
788

789 790
$(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 已提交
791

792 793 794 795 796
if WITH_ESX
if WITH_DRIVER_MODULES
mod_LTLIBRARIES += libvirt_driver_esx.la
else
noinst_LTLIBRARIES += libvirt_driver_esx.la
797
libvirt_la_BUILT_LIBADD += libvirt_driver_esx.la
798
endif
799
libvirt_driver_esx_la_CFLAGS = $(LIBCURL_CFLAGS) \
800
		-I@top_srcdir@/src/conf -I@top_srcdir@/src/vmx $(AM_CFLAGS)
801
libvirt_driver_esx_la_LDFLAGS = $(AM_LDFLAGS)
802
libvirt_driver_esx_la_LIBADD = $(LIBCURL_LIBS)
803
if WITH_DRIVER_MODULES
804
libvirt_driver_esx_la_LIBADD += ../gnulib/lib/libgnu.la
805 806 807
libvirt_driver_esx_la_LDFLAGS += -module -avoid-version
endif
libvirt_driver_esx_la_SOURCES = $(ESX_DRIVER_SOURCES)
808
libvirt_driver_esx_la_DEPENDENCIES = $(ESX_DRIVER_GENERATED)
809 810
endif

811
if WITH_NETWORK
812 813 814
if WITH_DRIVER_MODULES
mod_LTLIBRARIES += libvirt_driver_network.la
else
815
noinst_LTLIBRARIES += libvirt_driver_network.la
816
# Stateful, so linked to daemon instead
817
#libvirt_la_BUILT_LIBADD += libvirt_driver_network.la
818
endif
819
libvirt_driver_network_la_CFLAGS = \
820
		-I@top_srcdir@/src/conf $(AM_CFLAGS)
821
if WITH_DRIVER_MODULES
822
libvirt_driver_network_la_LIBADD = ../gnulib/lib/libgnu.la
823
libvirt_driver_network_la_LDFLAGS = -module -avoid-version $(AM_LDFLAGS)
824
endif
825
libvirt_driver_network_la_SOURCES = $(NETWORK_DRIVER_SOURCES)
826
endif
827 828 829 830
EXTRA_DIST += network/default.xml



831

D
Daniel Veillard 已提交
832
if WITH_NETCF
833 834 835 836
if WITH_DRIVER_MODULES
mod_LTLIBRARIES += libvirt_driver_interface.la
else
noinst_LTLIBRARIES += libvirt_driver_interface.la
837
libvirt_la_BUILT_LIBADD += libvirt_driver_interface.la
838
endif
839
libvirt_driver_interface_la_CFLAGS = $(NETCF_CFLAGS) \
840 841
		-I@top_srcdir@/src/conf $(AM_CFLAGS)
libvirt_driver_interface_la_LDFLAGS = $(AM_LDFLAGS)
842
libvirt_driver_interface_la_LIBADD = $(NETCF_LIBS)
843
if WITH_DRIVER_MODULES
844
libvirt_driver_interface_la_LIBADD += ../gnulib/lib/libgnu.la
845 846 847
libvirt_driver_interface_la_LDFLAGS += -module -avoid-version
endif
libvirt_driver_interface_la_SOURCES = $(INTERFACE_DRIVER_SOURCES)
D
Daniel Veillard 已提交
848 849
endif

D
Daniel P. Berrange 已提交
850
if WITH_SECRETS
851 852 853 854
if WITH_DRIVER_MODULES
mod_LTLIBRARIES += libvirt_driver_secret.la
else
noinst_LTLIBRARIES += libvirt_driver_secret.la
855
# Stateful, so linked to daemon instead
856
#libvirt_la_BUILT_LIBADD += libvirt_driver_secret.la
857
endif
858
libvirt_driver_secret_la_CFLAGS = \
859
		-I@top_srcdir@/src/conf $(AM_CFLAGS)
860
if WITH_DRIVER_MODULES
861
libvirt_driver_secret_la_LIBADD = ../gnulib/lib/libgnu.la
862
libvirt_driver_secret_la_LDFLAGS = -module -avoid-version $(AM_LDFLAGS)
863 864
endif
libvirt_driver_secret_la_SOURCES = $(SECRET_DRIVER_SOURCES)
D
Daniel P. Berrange 已提交
865
endif
866

867 868
# Needed to keep automake quiet about conditionals
libvirt_driver_storage_la_SOURCES =
869
libvirt_driver_storage_la_CFLAGS = \
870 871
		-I@top_srcdir@/src/conf $(AM_CFLAGS)
libvirt_driver_storage_la_LDFLAGS = $(AM_LDFLAGS)
872
libvirt_driver_storage_la_LIBADD =
873
if WITH_STORAGE_DIR
874 875 876
if WITH_DRIVER_MODULES
mod_LTLIBRARIES += libvirt_driver_storage.la
else
877
noinst_LTLIBRARIES += libvirt_driver_storage.la
878
# Stateful, so linked to daemon instead
879
#libvirt_la_BUILT_LIBADD += libvirt_driver_storage.la
880 881
endif
if WITH_DRIVER_MODULES
882
libvirt_driver_storage_la_LIBADD += ../gnulib/lib/libgnu.la
883
libvirt_driver_storage_la_LDFLAGS += -module -avoid-version
884
endif
885 886
libvirt_driver_storage_la_SOURCES += $(STORAGE_DRIVER_SOURCES)
libvirt_driver_storage_la_SOURCES += $(STORAGE_DRIVER_FS_SOURCES)
887 888
endif

889
if WITH_STORAGE_LVM
890
libvirt_driver_storage_la_SOURCES += $(STORAGE_DRIVER_LVM_SOURCES)
891 892
endif

893
if WITH_STORAGE_ISCSI
894
libvirt_driver_storage_la_SOURCES += $(STORAGE_DRIVER_ISCSI_SOURCES)
895 896
endif

897 898 899 900
if WITH_STORAGE_SCSI
libvirt_driver_storage_la_SOURCES += $(STORAGE_DRIVER_SCSI_SOURCES)
endif

D
Dave Allan 已提交
901 902 903
if WITH_STORAGE_MPATH
libvirt_driver_storage_la_SOURCES += $(STORAGE_DRIVER_MPATH_SOURCES)
libvirt_driver_storage_la_CFLAGS += $(DEVMAPPER_CFLAGS)
904
libvirt_driver_storage_la_LIBADD += $(DEVMAPPER_LIBS)
D
Dave Allan 已提交
905 906
endif

907
if WITH_STORAGE_DISK
908
libvirt_driver_storage_la_SOURCES += $(STORAGE_DRIVER_DISK_SOURCES)
909
endif
910

911 912 913 914 915 916 917
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
918
#libvirt_la_BUILT_LIBADD += libvirt_driver_nodedev.la
919 920 921
endif
libvirt_driver_nodedev_la_SOURCES = $(NODE_DEVICE_DRIVER_SOURCES)

922
libvirt_driver_nodedev_la_CFLAGS = \
923 924
		-I@top_srcdir@/src/conf $(AM_CFLAGS)
libvirt_driver_nodedev_la_LDFLAGS = $(AM_LDFLAGS)
925
libvirt_driver_nodedev_la_LIBADD =
926 927 928
if HAVE_HAL
libvirt_driver_nodedev_la_SOURCES += $(NODE_DEVICE_DRIVER_HAL_SOURCES)
libvirt_driver_nodedev_la_CFLAGS += $(HAL_CFLAGS)
929
libvirt_driver_nodedev_la_LIBADD += $(HAL_LIBS)
930
endif
931 932
if HAVE_UDEV
libvirt_driver_nodedev_la_SOURCES += $(NODE_DEVICE_DRIVER_UDEV_SOURCES)
933
libvirt_driver_nodedev_la_CFLAGS += $(UDEV_CFLAGS) $(PCIACCESS_CFLAGS)
934
libvirt_driver_nodedev_la_LIBADD += $(UDEV_LIBS) $(PCIACCESS_LIBS)
935
endif
936 937

if WITH_DRIVER_MODULES
938
libvirt_driver_nodedev_la_LIBADD += ../gnulib/lib/libgnu.la
939 940 941 942 943
libvirt_driver_nodedev_la_LDFLAGS += -module -avoid-version
endif
endif


944 945 946 947
if WITH_NWFILTER
if WITH_DRIVER_MODULES
mod_LTLIBRARIES += libvirt_driver_nwfilter.la
else
948
libvirt_la_BUILT_LIBADD += libvirt_driver_nwfilter.la
949 950
noinst_LTLIBRARIES += libvirt_driver_nwfilter.la
endif
951
libvirt_driver_nwfilter_la_CFLAGS = $(LIBPCAP_CFLAGS) \
952 953
		-I@top_srcdir@/src/conf $(AM_CFLAGS)
libvirt_driver_nwfilter_la_LDFLAGS = $(LD_AMFLAGS)
954
libvirt_driver_nwfilter_la_LIBADD = $(LIBPCAP_LIBS)
955
if WITH_DRIVER_MODULES
956
libvirt_driver_nwfilter_la_LIBADD += ../gnulib/lib/libgnu.la
957
libvirt_driver_nwfilter_la_LDFLAGS += -module -avoid-version
958 959 960 961 962
endif
libvirt_driver_nwfilter_la_SOURCES = $(NWFILTER_DRIVER_SOURCES)
endif


963 964
libvirt_driver_security_la_SOURCES = $(SECURITY_DRIVER_SOURCES)
noinst_LTLIBRARIES += libvirt_driver_security.la
965
libvirt_la_BUILT_LIBADD += libvirt_driver_security.la
966
libvirt_driver_security_la_CFLAGS = \
967 968
		-I@top_srcdir@/src/conf $(AM_CFLAGS)
libvirt_driver_security_la_LDFLAGS = $(AM_LDFLAGS)
969
libvirt_driver_security_la_LIBADD =
970 971
if WITH_SECDRIVER_SELINUX
libvirt_driver_security_la_SOURCES += $(SECURITY_DRIVER_SELINUX_SOURCES)
J
Jim Fehlig 已提交
972
libvirt_driver_security_la_CFLAGS += $(SELINUX_CFLAGS)
973
libvirt_driver_security_la_LIBADD += $(SELINUX_LIBS)
974
endif
J
Jamie Strandboge 已提交
975 976 977
if WITH_SECDRIVER_APPARMOR
libvirt_driver_security_la_SOURCES += $(SECURITY_DRIVER_APPARMOR_SOURCES)
libvirt_driver_security_la_CFLAGS += $(APPARMOR_CFLAGS)
978
libvirt_driver_security_la_LIBADD += $(APPARMOR_LIBS)
J
Jamie Strandboge 已提交
979
endif
980

981 982 983 984 985 986 987
# Add all conditional sources just in case...
EXTRA_DIST +=							\
		$(TEST_DRIVER_SOURCES)				\
		$(REMOTE_DRIVER_SOURCES)			\
		$(XEN_DRIVER_SOURCES)				\
		$(QEMU_DRIVER_SOURCES)				\
		$(LXC_DRIVER_SOURCES)				\
988
		$(UML_DRIVER_SOURCES)				\
D
Daniel Veillard 已提交
989
		$(ONE_DRIVER_SOURCES)				\
990
		$(OPENVZ_DRIVER_SOURCES)			\
991
		$(PHYP_DRIVER_SOURCES)				\
992
		$(VBOX_DRIVER_SOURCES)				\
993
		$(XENAPI_DRIVER_SOURCES)			\
994
		$(ESX_DRIVER_SOURCES)				\
995
		$(ESX_DRIVER_EXTRA_DIST)			\
996
		$(NETWORK_DRIVER_SOURCES)			\
997
		$(INTERFACE_DRIVER_SOURCES)			\
998 999 1000 1001
		$(STORAGE_DRIVER_SOURCES)			\
		$(STORAGE_DRIVER_FS_SOURCES)			\
		$(STORAGE_DRIVER_LVM_SOURCES)			\
		$(STORAGE_DRIVER_ISCSI_SOURCES)			\
1002
		$(STORAGE_DRIVER_SCSI_SOURCES)			\
D
Dave Allan 已提交
1003
		$(STORAGE_DRIVER_MPATH_SOURCES)			\
1004 1005 1006
		$(STORAGE_DRIVER_DISK_SOURCES)			\
		$(NODE_DEVICE_DRIVER_SOURCES)			\
		$(NODE_DEVICE_DRIVER_HAL_SOURCES)		\
1007
		$(NODE_DEVICE_DRIVER_UDEV_SOURCES)		\
1008
		$(NWFILTER_DRIVER_SOURCES)			\
1009
		$(SECURITY_DRIVER_SELINUX_SOURCES)		\
J
Jamie Strandboge 已提交
1010
		$(SECURITY_DRIVER_APPARMOR_SOURCES)		\
D
Daniel P. Berrange 已提交
1011
		$(SECRET_DRIVER_SOURCES)			\
1012
		$(VBOX_DRIVER_EXTRA_DIST)			\
1013 1014
		$(VMWARE_DRIVER_SOURCES)			\
		$(XENXS_SOURCES)
1015

1016 1017 1018 1019
check-local: augeas-check

.PHONY: augeas-check
augeas-check:
1020
if WITH_QEMU
1021
	$(AM_V_GEN)if test -x '$(AUGPARSE)'; then \
1022 1023 1024 1025 1026
	    '$(AUGPARSE)' -I $(srcdir)/qemu \
	    $(srcdir)/qemu/test_libvirtd_qemu.aug; \
	fi
endif
if WITH_LXC
1027
	$(AM_V_GEN)if test -x '$(AUGPARSE)'; then \
1028 1029 1030 1031 1032
	    '$(AUGPARSE)' -I $(srcdir)/lxc \
	    $(srcdir)/lxc/test_libvirtd_lxc.aug; \
	fi
endif

1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051
#
# 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.
#

1052
if WITH_DRIVER_MODULES
1053
USED_SYM_FILES += libvirt_driver_modules.syms
1054
endif
1055 1056

if WITH_BRIDGE
1057
USED_SYM_FILES += libvirt_bridge.syms
1058
endif
1059 1060

if WITH_LINUX
1061
USED_SYM_FILES += libvirt_linux.syms
1062
endif
1063

1064
if WITH_MACVTAP
1065
USED_SYM_FILES += libvirt_macvtap.syms
1066
endif
1067

1068 1069 1070 1071
if WITH_LIBVIRTD
USED_SYM_FILES += libvirt_daemon.syms
endif

1072 1073 1074 1075
if WITH_NWFILTER
USED_SYM_FILES += libvirt_nwfilter.syms
endif

1076 1077 1078 1079
if WITH_VMX
USED_SYM_FILES += libvirt_vmx.syms
endif

1080 1081 1082 1083 1084
EXTRA_DIST += \
  libvirt_public.syms		\
  libvirt_private.syms		\
  libvirt_driver_modules.syms	\
  libvirt_bridge.syms		\
1085
  libvirt_linux.syms		\
1086
  libvirt_macvtap.syms		\
1087
  libvirt_daemon.syms		\
M
Matthias Bolte 已提交
1088 1089
  libvirt_nwfilter.syms	\
  libvirt_vmx.syms
1090

1091
BUILT_SOURCES += libvirt.syms libvirt.def libvirt_qemu.def
1092

1093 1094
libvirt.syms: libvirt_public.syms $(USED_SYM_FILES) \
		$(top_builddir)/config.status
1095 1096 1097 1098 1099 1100
	$(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 && \
1101
	for file in $(USED_SYM_FILES); do \
1102
	    cat $(srcdir)/$$file >>$@-tmp; \
1103 1104 1105
	done && \
	printf '\n\nlocal:\n*;\n\n};' >>$@-tmp && \
	chmod a-w $@-tmp && \
1106
	mv $@-tmp libvirt.syms
1107

1108 1109 1110
libvirt.def: libvirt.syms
	$(AM_V_GEN)rm -f -- $@-tmp $@ ; \
	printf 'EXPORTS\n' > $@-tmp && \
E
Eric Blake 已提交
1111
	sed -e '/^$$/d; /#/d; /:/d; /}/d; /\*/d; /LIBVIRT_/d; s/[	 ]*\(.*\)\;/    \1/g' $^ >> $@-tmp && \
1112 1113 1114
	chmod a-w $@-tmp && \
	mv $@-tmp libvirt.def

1115 1116 1117
libvirt_qemu.def: $(srcdir)/libvirt_qemu.syms
	$(AM_V_GEN)rm -f -- $@-tmp $@ ; \
	printf 'EXPORTS\n' > $@-tmp && \
E
Eric Blake 已提交
1118
	sed -e '/^$$/d; /#/d; /:/d; /}/d; /\*/d; /LIBVIRT_/d; s/[	 ]*\(.*\)\;/    \1/g' $^ >> $@-tmp && \
1119 1120 1121
	chmod a-w $@-tmp && \
	mv $@-tmp libvirt_qemu.def

1122 1123
# Empty source list - it merely links a bunch of convenience libs together
libvirt_la_SOURCES =
1124
libvirt_la_LDFLAGS = $(VERSION_SCRIPT_FLAGS)$(LIBVIRT_SYMBOL_FILE) \
1125
                     -version-info $(LIBVIRT_VERSION_INFO) \
1126
                    $(AM_LDFLAGS) \
1127
		    $(CYGWIN_EXTRA_LDFLAGS) $(MINGW_EXTRA_LDFLAGS)
1128
libvirt_la_BUILT_LIBADD += ../gnulib/lib/libgnu.la
1129
libvirt_la_LIBADD += $(LIBXML_LIBS) \
1130
		    $(DRIVER_MODULE_LIBS) \
1131
		    $(CYGWIN_EXTRA_LIBADD)
1132
libvirt_la_CFLAGS = -DIN_LIBVIRT $(AM_CFLAGS)
1133 1134 1135 1136 1137 1138
# 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)
1139

1140 1141 1142
# 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.
1143
noinst_LTLIBRARIES += libvirt_test.la
1144

1145
# Remove version script from convenience library
1146 1147
test_LDFLAGS =						\
  $$(echo '$(libvirt_la_LDFLAGS)'			\
1148
     |sed 's!$(VERSION_SCRIPT_FLAGS)$(LIBVIRT_SYMBOL_FILE)!!'	\
1149
     |sed 's!-version-info $(LIBVIRT_VERSION_INFO)!!')
1150 1151 1152 1153

# 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)
1154 1155
libvirt_test_la_LDFLAGS = $(test_LDFLAGS) $(AM_LDFLAGS)
libvirt_test_la_CFLAGS = $(AM_CFLAGS)
1156

C
Chris Lalancette 已提交
1157 1158 1159
libvirt_qemu_la_SOURCES = libvirt-qemu.c
libvirt_qemu_la_LDFLAGS = $(VERSION_SCRIPT_FLAGS)$(LIBVIRT_QEMU_SYMBOL_FILE) \
                          -version-info $(LIBVIRT_VERSION_INFO) \
1160 1161 1162
                          $(CYGWIN_EXTRA_LDFLAGS) $(MINGW_EXTRA_LDFLAGS) \
			  $(AM_LDFLAGS)
libvirt_qemu_la_CFLAGS = $(AM_CFLAGS)
C
Chris Lalancette 已提交
1163
libvirt_qemu_la_LIBADD = libvirt.la $(CYGWIN_EXTRA_LIBADD)
E
Eric Blake 已提交
1164
EXTRA_DIST += $(LIBVIRT_QEMU_SYMBOL_FILE)
1165

1166 1167
libexec_PROGRAMS =

1168
if WITH_STORAGE_DISK
R
Richard W.M. Jones 已提交
1169
if WITH_LIBVIRTD
1170
libexec_PROGRAMS += libvirt_parthelper
1171

1172
libvirt_parthelper_SOURCES = $(STORAGE_HELPER_DISK_SOURCES)
1173
libvirt_parthelper_LDFLAGS = $(WARN_LDFLAGS) $(AM_LDFLAGS)
1174 1175 1176 1177 1178
libvirt_parthelper_LDADD =		\
		$(LIBPARTED_LIBS)	\
		libvirt_util.la		\
		../gnulib/lib/libgnu.la

1179
libvirt_parthelper_CFLAGS = $(LIBPARTED_CFLAGS) $(AM_CFLAGS)
R
Richard W.M. Jones 已提交
1180
endif
1181
endif
1182 1183
EXTRA_DIST += $(STORAGE_HELPER_DISK_SOURCES)

1184

1185 1186 1187 1188 1189 1190
if WITH_LXC
if WITH_LIBVIRTD
libexec_PROGRAMS += libvirt_lxc

libvirt_lxc_SOURCES =						\
		$(LXC_CONTROLLER_SOURCES)			\
1191
		$(UTIL_SOURCES)					\
1192 1193
		$(NODE_INFO_SOURCES)				\
		$(ENCRYPTION_CONF_SOURCES)			\
1194
		$(DOMAIN_CONF_SOURCES)				\
1195 1196
		$(CPU_CONF_SOURCES)				\
		$(NWFILTER_PARAM_CONF_SOURCES)
1197
libvirt_lxc_LDFLAGS = $(WARN_CFLAGS) $(AM_LDFLAGS)
1198 1199
libvirt_lxc_LDADD = $(CAPNG_LIBS) $(YAJL_LIBS) \
		$(LIBXML_LIBS) $(NUMACTL_LIBS) $(LIB_PTHREAD) \
1200 1201
		$(LIBNL_LIBS) $(AUDIT_LIBS) $(DEVMAPPER_LIBS) \
		../gnulib/lib/libgnu.la
1202 1203 1204 1205
libvirt_lxc_CFLAGS =				\
		$(LIBPARTED_CFLAGS)		\
		$(NUMACTL_CFLAGS)		\
		$(CAPNG_CFLAGS)			\
1206
		$(YAJL_CFLAGS)			\
1207
		$(AUDIT_CFLAGS)			\
1208 1209
		-I@top_srcdir@/src/conf		\
		$(AM_CFLAGS)
1210 1211 1212 1213
endif
endif
EXTRA_DIST += $(LXC_CONTROLLER_SOURCES)

J
Jamie Strandboge 已提交
1214 1215 1216 1217 1218 1219
if WITH_SECDRIVER_APPARMOR
if WITH_LIBVIRTD
libexec_PROGRAMS += virt-aa-helper

virt_aa_helper_SOURCES = $(SECURITY_DRIVER_APPARMOR_HELPER_SOURCES)

1220
virt_aa_helper_LDFLAGS = $(WARN_LDFLAGS) $(AM_LDFLAGS)
J
Jamie Strandboge 已提交
1221
virt_aa_helper_LDADD =						\
1222
		$(LIBXML_LIBS)					\
C
Chris Lalancette 已提交
1223 1224 1225
		libvirt_conf.la					\
		libvirt_util.la					\
		../gnulib/lib/libgnu.la
J
Jamie Strandboge 已提交
1226 1227
virt_aa_helper_CFLAGS =						\
		-I@top_srcdir@/src/conf				\
1228 1229
		-I@top_srcdir@/src/security			\
		$(AM_CFLAGS)
J
Jamie Strandboge 已提交
1230 1231 1232 1233
endif
endif
EXTRA_DIST += $(SECURITY_DRIVER_APPARMOR_HELPER_SOURCES)

1234
install-data-local:
1235 1236 1237 1238 1239 1240
	$(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"
1241
	$(MKDIR_P) "$(DESTDIR)$(localstatedir)/cache/libvirt/qemu"
1242
	$(MKDIR_P) "$(DESTDIR)$(localstatedir)/log/libvirt/qemu"
1243 1244 1245 1246 1247 1248 1249 1250 1251 1252 1253
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"
1254
	$(MKDIR_P) "$(DESTDIR)$(localstatedir)/lib/libvirt/dnsmasq"
1255
	$(MKDIR_P) "$(DESTDIR)$(localstatedir)/run/libvirt/network"
1256 1257 1258 1259
	$(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 已提交
1260 1261 1262 1263 1264 1265
	  { 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; }
1266 1267 1268 1269 1270 1271 1272 1273 1274 1275 1276 1277 1278 1279
	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" ||:
1280
endif
1281 1282 1283 1284 1285 1286 1287 1288 1289 1290 1291 1292 1293 1294 1295 1296 1297
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 已提交
1298

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