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

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

24
EXTRA_DIST = $(conf_DATA)
25

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

30
lib_LTLIBRARIES = libvirt.la
31

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


36 37
# These files are not related to driver APIs. Simply generic
# helper APIs for various purposes
38
UTIL_SOURCES =							\
39 40 41 42 43 44 45 46 47 48 49 50 51
		util/bridge.c util/bridge.h			\
		util/buf.c util/buf.h				\
		util/conf.c util/conf.h				\
		util/cgroup.c util/cgroup.h			\
		util/event.c util/event.h			\
		util/hash.c util/hash.h				\
		util/iptables.c util/iptables.h			\
		util/logging.c util/logging.h			\
		util/memory.c util/memory.h			\
		util/pci.c util/pci.h				\
		util/hostusb.c util/hostusb.h			\
		util/qparams.c util/qparams.h			\
		util/stats_linux.c util/stats_linux.h		\
52
		util/storage_file.c util/storage_file.h		\
53 54 55 56 57 58 59 60 61
		util/threads.c util/threads.h			\
		util/threads-pthread.h				\
		util/threads-win32.h				\
		util/uuid.c util/uuid.h				\
		util/util.c util/util.h				\
		util/xml.c util/xml.h				\
		util/virterror.c util/virterror_internal.h

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

63
# Internal generic driver infrastructure
64
NODE_INFO_SOURCES = nodeinfo.h nodeinfo.c
65
DRIVER_SOURCES =						\
66
		driver.c driver.h				\
67 68
		internal.h					\
		datatypes.c datatypes.h				\
69
		$(NODE_INFO_SOURCES)				\
70 71 72
		libvirt.c libvirt_internal.h


73
# XML configuration format handling sources
74 75
# Domain driver generic impl APIs
DOMAIN_CONF_SOURCES =						\
76 77 78 79 80
		conf/capabilities.c conf/capabilities.h		\
		conf/domain_conf.c conf/domain_conf.h

DOMAIN_EVENT_SOURCES =						\
		conf/domain_event.c conf/domain_event.h
81 82

# Network driver generic impl APIs
83 84
NETWORK_CONF_SOURCES =                                         \
		conf/network_conf.c conf/network_conf.h
85 86

# Storage driver generic impl APIs
87 88
STORAGE_CONF_SOURCES =                                         \
		conf/storage_conf.h conf/storage_conf.c
89

90
# Interface driver generic impl APIs
91 92
INTERFACE_CONF_SOURCES =                                       \
		conf/interface_conf.c conf/interface_conf.h
93

94
# Secret driver generic impl APIs
95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113
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

CONF_SOURCES =							\
		$(DOMAIN_CONF_SOURCES)				\
		$(DOMAIN_EVENT_SOURCES)				\
		$(NETWORK_CONF_SOURCES)				\
		$(NODE_DEVICE_CONF_SOURCES)			\
		$(STORAGE_CONF_SOURCES)				\
		$(ENCRYPTION_CONF_SOURCES)			\
		$(INTERFACE_CONF_SOURCES)			\
		$(SECRET_CONF_SOURCES)
114

115 116
# The remote RPC driver, covering domains, storage, networks, etc
REMOTE_DRIVER_SOURCES =						\
117 118
		gnutls_1_0_compat.h			\
		remote/remote_driver.c remote/remote_driver.h	\
119 120 121 122
		remote/remote_protocol.c			\
		remote/remote_protocol.h

EXTRA_DIST += remote/remote_protocol.x remote/rpcgen_fix.pl
123 124 125

# Mock driver, covering domains, storage, networks, etc
TEST_DRIVER_SOURCES =						\
126
		test/test_driver.c test/test_driver.h
127 128 129 130 131



# Now the Hypervisor specific drivers
XEN_DRIVER_SOURCES =						\
132 133 134 135 136 137 138 139
		xen/proxy_internal.c xen/proxy_internal.h	\
		xen/sexpr.c xen/sexpr.h				\
		xen/block_stats.c xen/block_stats.h		\
		xen/xen_hypervisor.c xen/xen_hypervisor.h	\
		xen/xen_driver.c xen/xen_driver.h		\
		xen/xend_internal.c xen/xend_internal.h		\
		xen/xm_internal.c xen/xm_internal.h		\
		xen/xs_internal.c xen/xs_internal.h
140
if WITH_XEN_INOTIFY
141
XEN_DRIVER_SOURCES += xen/xen_inotify.c xen/xen_inotify.h
142
endif
143 144

LXC_DRIVER_SOURCES =						\
145 146 147
		lxc/lxc_conf.c lxc/lxc_conf.h			\
		lxc/lxc_container.c lxc/lxc_container.h		\
		lxc/lxc_driver.c lxc/lxc_driver.h		\
148
		lxc/veth.c lxc/veth.h
149

150
LXC_CONTROLLER_SOURCES =					\
151 152 153
		lxc/lxc_conf.c lxc/lxc_conf.h			\
		lxc/lxc_container.c lxc/lxc_container.h		\
		lxc/lxc_controller.c				\
154
		lxc/veth.c lxc/veth.h
155

156 157 158
PHYP_DRIVER_SOURCES =						\
		phyp/phyp_driver.c phyp/phyp_driver.h

159
OPENVZ_DRIVER_SOURCES =						\
160 161
		openvz/openvz_conf.c openvz/openvz_conf.h	\
		openvz/openvz_driver.c openvz/openvz_driver.h
162

163 164 165
VBOX_DRIVER_SOURCES =						\
        vbox/vbox_XPCOMCGlue.c vbox/vbox_XPCOMCGlue.h		\
        vbox/vbox_driver.c vbox/vbox_driver.h			\
166 167
        vbox/vbox_V2_2.c vbox/vbox_CAPI_v2_2.h			\
        vbox/vbox_V3_0.c vbox/vbox_CAPI_v3_0.h
168

169 170
VBOX_DRIVER_EXTRA_DIST = vbox/vbox_tmpl.c vbox/README

171
QEMU_DRIVER_SOURCES =						\
172
		qemu/qemu_conf.c qemu/qemu_conf.h		\
173 174
		qemu/qemu_monitor_text.c			\
		qemu/qemu_monitor_text.h			\
175
		qemu/qemu_driver.c qemu/qemu_driver.h
R
Richard W.M. Jones 已提交
176

177
UML_DRIVER_SOURCES =						\
D
Daniel P. Berrange 已提交
178 179
		uml/uml_conf.c uml/uml_conf.h			\
		uml/uml_driver.c uml/uml_driver.h
180

181 182 183 184 185 186
ONE_DRIVER_SOURCES =						\
		./opennebula/one_conf.c				\
		./opennebula/one_conf.h				\
		./opennebula/one_driver.c			\
		./opennebula/one_driver.h			\
		./opennebula/one_client.c			\
187
		./opennebula/one_client.h
D
Daniel Veillard 已提交
188

189 190 191 192
ESX_DRIVER_SOURCES =						\
		esx/esx_driver.c esx/esx_driver.h		\
		esx/esx_util.c esx/esx_util.h			\
		esx/esx_vi.c esx/esx_vi.h			\
193 194 195 196
		esx/esx_vi_methods.c esx/esx_vi_methods.h	\
		esx/esx_vi_types.c esx/esx_vi_types.h		\
		esx/esx_vmx.c esx/esx_vmx.h

197
NETWORK_DRIVER_SOURCES =					\
198
		network/bridge_driver.h network/bridge_driver.c
199

200
INTERFACE_DRIVER_SOURCES =					\
201
		interface/netcf_driver.h interface/netcf_driver.c
202

203
SECRET_DRIVER_SOURCES =						\
204
		secret/secret_driver.h secret/secret_driver.c
205

206
# Storage backend specific impls
207
STORAGE_DRIVER_SOURCES =					\
208 209
		storage/storage_driver.h storage/storage_driver.c		\
		storage/storage_backend.h storage/storage_backend.c
210 211

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

214
STORAGE_DRIVER_LVM_SOURCES =					\
215 216
		storage/storage_backend_logical.h			\
		storage/storage_backend_logical.c
217 218

STORAGE_DRIVER_ISCSI_SOURCES =					\
219
		storage/storage_backend_iscsi.h storage/storage_backend_iscsi.c
220

221
STORAGE_DRIVER_SCSI_SOURCES =					\
222
		storage/storage_backend_scsi.h storage/storage_backend_scsi.c
223

D
Dave Allan 已提交
224
STORAGE_DRIVER_MPATH_SOURCES =					\
225
		storage/storage_backend_mpath.h storage/storage_backend_mpath.c
D
Dave Allan 已提交
226

227
STORAGE_DRIVER_DISK_SOURCES =					\
228
		storage/storage_backend_disk.h storage/storage_backend_disk.c
229 230

STORAGE_HELPER_DISK_SOURCES =					\
231
		storage/parthelper.c
232 233


234
# Security framework and drivers for various models
235
SECURITY_DRIVER_SOURCES =					\
236
		security/security_driver.h security/security_driver.c
237

238
SECURITY_DRIVER_SELINUX_SOURCES =				\
239
		security/security_selinux.h security/security_selinux.c
240

241

242
NODE_DEVICE_DRIVER_SOURCES =					\
243
		node_device/node_device_driver.c node_device/node_device_driver.h
244 245

NODE_DEVICE_DRIVER_HAL_SOURCES =				\
246 247 248
		node_device/node_device_hal.c			\
		node_device/node_device_hal.h			\
		node_device/node_device_hal_linux.c
249

250
NODE_DEVICE_DRIVER_DEVKIT_SOURCES =				\
251
		node_device/node_device_devkit.c
252

253 254 255 256 257 258 259

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

260 261 262 263
noinst_LTLIBRARIES = libvirt_util.la
libvirt_la_LIBADD = libvirt_util.la
libvirt_util_la_SOURCES =					\
		$(UTIL_SOURCES)
264 265
libvirt_util_la_CFLAGS =  $(CAPNG_CFLAGS)
libvirt_util_la_LDFLAGS =  $(CAPNG_LIBS)
266

267 268 269 270 271 272 273 274

noinst_LTLIBRARIES += libvirt_conf.la
libvirt_la_LIBADD += libvirt_conf.la
libvirt_conf_la_SOURCES = $(CONF_SOURCES)
libvirt_conf_la_CFLAGS =
libvirt_conf_la_LDFLAGS =


275 276
noinst_LTLIBRARIES += libvirt_driver.la
libvirt_la_LIBADD += libvirt_driver.la
277
libvirt_driver_la_SOURCES = $(DRIVER_SOURCES)
278

279 280
libvirt_driver_la_CFLAGS = $(NUMACTL_CFLAGS)	\
		-I@top_srcdir@/src/conf
281
libvirt_driver_la_LDFLAGS = $(NUMACTL_LIBS)
282

283
USED_SYM_FILES = libvirt_private.syms
284

285
if WITH_TEST
286 287 288
if WITH_DRIVER_MODULES
mod_LTLIBRARIES += libvirt_driver_test.la
else
289 290
noinst_LTLIBRARIES += libvirt_driver_test.la
libvirt_la_LIBADD += libvirt_driver_test.la
291
endif
292 293
libvirt_driver_test_la_CFLAGS = \
		-I@top_srcdir@/src/conf
294 295 296
if WITH_DRIVER_MODULES
libvirt_driver_test_la_LDFLAGS = -module -avoid-version
endif
297
libvirt_driver_test_la_SOURCES = $(TEST_DRIVER_SOURCES)
298 299 300
endif

if WITH_REMOTE
301 302 303
if WITH_DRIVER_MODULES
mod_LTLIBRARIES += libvirt_driver_remote.la
else
304 305
noinst_LTLIBRARIES += libvirt_driver_remote.la
libvirt_la_LIBADD += libvirt_driver_remote.la
306
endif
307 308
libvirt_driver_remote_la_CFLAGS =				\
		$(GNUTLS_CFLAGS)				\
309
		$(SASL_CFLAGS)					\
310
		-I@top_srcdir@/src/conf
311 312 313
libvirt_driver_remote_la_LDFLAGS =				\
		$(GNUTLS_LIBS)					\
		$(SASL_LIBS)
314 315 316
if WITH_DRIVER_MODULES
libvirt_driver_remote_la_LDFLAGS += -module -avoid-version
endif
317
libvirt_driver_remote_la_SOURCES = $(REMOTE_DRIVER_SOURCES)
318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349

if HAVE_RPCGEN
#
# 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 CVS, 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:
	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
	perl -w $(srcdir)/rpcgen_fix.pl rp.h-t > rp.h-t1
	perl -w $(srcdir)/rpcgen_fix.pl rp.c-t > rp.c-t1
	(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
endif

remote/remote_protocol.c: remote/remote_protocol.h
350 351 352
endif

if WITH_XEN
353 354 355
if WITH_DRIVER_MODULES
mod_LTLIBRARIES += libvirt_driver_xen.la
else
356 357
noinst_LTLIBRARIES += libvirt_driver_xen.la
libvirt_la_LIBADD += libvirt_driver_xen.la
358
endif
359 360 361
libvirt_driver_xen_la_CFLAGS = 					\
		$(XEN_CFLAGS)					\
		-I@top_srcdir@/src/conf
362
libvirt_driver_xen_la_LDFLAGS = $(XEN_LIBS)
363 364 365
if WITH_DRIVER_MODULES
libvirt_driver_xen_la_LDFLAGS += -module -avoid-version
endif
366
libvirt_driver_xen_la_SOURCES = $(XEN_DRIVER_SOURCES)
367 368
endif

369 370 371 372 373 374 375
if WITH_PHYP
if WITH_DRIVER_MODULES
mod_LTLIBRARIES += libvirt_driver_phyp.la
else
noinst_LTLIBRARIES += libvirt_driver_phyp.la
libvirt_la_LIBADD += libvirt_driver_phyp.la
endif
376
libvirt_driver_phyp_la_LDFLAGS = $(LIBSSH2_LIBS)
377 378
libvirt_driver_phyp_la_CFLAGS = $(LIBSSH2_CFLAGS) \
		-I@top_srcdir@/src/conf
379 380 381
libvirt_driver_phyp_la_SOURCES = $(PHYP_DRIVER_SOURCES)
endif

382
if WITH_OPENVZ
383 384 385
if WITH_DRIVER_MODULES
mod_LTLIBRARIES += libvirt_driver_openvz.la
else
386 387
noinst_LTLIBRARIES += libvirt_driver_openvz.la
libvirt_la_LIBADD += libvirt_driver_openvz.la
388
endif
389 390
libvirt_driver_openvz_la_CFLAGS = \
		-I@top_srcdir@/src/conf
391 392 393
if WITH_DRIVER_MODULES
libvirt_driver_openvz_la_LDFLAGS = -module -avoid-version
endif
394
libvirt_driver_openvz_la_SOURCES = $(OPENVZ_DRIVER_SOURCES)
395 396
endif

397 398 399 400 401 402 403
if WITH_VBOX
if WITH_DRIVER_MODULES
mod_LTLIBRARIES += libvirt_driver_vbox.la
else
noinst_LTLIBRARIES += libvirt_driver_vbox.la
libvirt_la_LIBADD += libvirt_driver_vbox.la
endif
404 405
libvirt_driver_vbox_la_CFLAGS = \
		-I@top_srcdir@/src/conf
406 407 408 409 410 411
if WITH_DRIVER_MODULES
libvirt_driver_vbox_la_LDFLAGS = -module -avoid-version
endif
libvirt_driver_vbox_la_SOURCES = $(VBOX_DRIVER_SOURCES)
endif

412
if WITH_QEMU
413 414 415
if WITH_DRIVER_MODULES
mod_LTLIBRARIES += libvirt_driver_qemu.la
else
416
noinst_LTLIBRARIES += libvirt_driver_qemu.la
417 418
# Stateful, so linked to daemon instead
#libvirt_la_LIBADD += libvirt_driver_qemu.la
419
endif
420 421
libvirt_driver_qemu_la_CFLAGS = $(NUMACTL_CFLAGS) \
		-I@top_srcdir@/src/conf
422
libvirt_driver_qemu_la_LDFLAGS = $(NUMACTL_LIBS)
423 424 425
if WITH_DRIVER_MODULES
libvirt_driver_qemu_la_LDFLAGS += -module -avoid-version
endif
426
libvirt_driver_qemu_la_SOURCES = $(QEMU_DRIVER_SOURCES)
427 428 429 430 431 432 433 434 435 436 437 438 439 440

confdir = $(sysconfdir)/libvirt/
conf_DATA = qemu/qemu.conf

augeasdir = $(datadir)/augeas/lenses
augeas_DATA = qemu/libvirtd_qemu.aug

augeastestdir = $(datadir)/augeas/lenses/tests
augeastest_DATA = qemu/test_libvirtd_qemu.aug

check-local:
	test -x '$(AUGPARSE)' \
	  && '$(AUGPARSE)' -I $(srcdir) $(srcdir)/test_libvirtd_qemu.aug || :

441
endif
442 443
EXTRA_DIST += qemu/qemu.conf qemu/libvirtd_qemu.aug qemu/test_libvirtd_qemu.aug

444 445

if WITH_LXC
446 447 448
if WITH_DRIVER_MODULES
mod_LTLIBRARIES += libvirt_driver_lxc.la
else
449
noinst_LTLIBRARIES += libvirt_driver_lxc.la
450 451
# Stateful, so linked to daemon instead
#libvirt_la_LIBADD += libvirt_driver_lxc.la
452
endif
453 454
libvirt_driver_lxc_la_CFLAGS = \
		-I@top_srcdir@/src/conf
455 456 457
if WITH_DRIVER_MODULES
libvirt_driver_lxc_la_LDFLAGS = -module -avoid-version
endif
458
libvirt_driver_lxc_la_SOURCES = $(LXC_DRIVER_SOURCES)
459 460
endif

461
if WITH_UML
462 463 464
if WITH_DRIVER_MODULES
mod_LTLIBRARIES += libvirt_driver_uml.la
else
465 466 467
noinst_LTLIBRARIES += libvirt_driver_uml.la
# Stateful, so linked to daemon instead
#libvirt_la_LIBADD += libvirt_driver_uml.la
468
endif
469 470
libvirt_driver_uml_la_CFLAGS = $(NUMACTL_CFLAGS) \
		-I@top_srcdir@/src/conf
471 472 473 474
libvirt_driver_uml_la_LDFLAGS = $(NUMACTL_LIBS)
if WITH_DRIVER_MODULES
libvirt_driver_uml_la_LDFLAGS += -module -avoid-version
endif
475 476
libvirt_driver_uml_la_SOURCES = $(UML_DRIVER_SOURCES)
endif
477

D
Daniel Veillard 已提交
478 479 480 481 482 483 484 485
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
#libvirt_la_LIBADD  += libvirt_driver_one.la
endif
486 487
libvirt_driver_one_la_CFLAGS = $(XMLRPC_CFLAGS) \
		-I@top_srcdir@/src/conf
D
Daniel P. Berrange 已提交
488
libvirt_driver_one_la_LDFLAGS = $(XMLRPC_LIBS)
D
Daniel Veillard 已提交
489 490 491 492 493 494 495 496 497 498
#libvirt_driver_one_la_CFLAGS  = "-DWITH_ONE"
if WITH_DRIVER_MODULES
libvirt_driver_one_la_LDFLAGS += -module -avoid-version
endif
libvirt_driver_one_la_SOURCES = $(ONE_DRIVER_SOURCES)
endif




499 500 501 502 503 504 505
if WITH_ESX
if WITH_DRIVER_MODULES
mod_LTLIBRARIES += libvirt_driver_esx.la
else
noinst_LTLIBRARIES += libvirt_driver_esx.la
libvirt_la_LIBADD += libvirt_driver_esx.la
endif
506 507
libvirt_driver_esx_la_CFLAGS = $(LIBCURL_CFLAGS) \
		-I@top_srcdir@/src/conf
508 509 510 511 512 513 514
libvirt_driver_esx_la_LDFLAGS = $(LIBCURL_LIBS)
if WITH_DRIVER_MODULES
libvirt_driver_esx_la_LDFLAGS += -module -avoid-version
endif
libvirt_driver_esx_la_SOURCES = $(ESX_DRIVER_SOURCES)
endif

515
if WITH_NETWORK
516 517 518
if WITH_DRIVER_MODULES
mod_LTLIBRARIES += libvirt_driver_network.la
else
519
noinst_LTLIBRARIES += libvirt_driver_network.la
520 521
# Stateful, so linked to daemon instead
#libvirt_la_LIBADD += libvirt_driver_network.la
522
endif
523 524
libvirt_driver_network_la_CFLAGS = \
		-I@top_srcdir@/src/conf
525 526 527
if WITH_DRIVER_MODULES
libvirt_driver_network_la_LDFLAGS = -module -avoid-version
endif
528
libvirt_driver_network_la_SOURCES = $(NETWORK_DRIVER_SOURCES)
529
endif
530 531 532 533
EXTRA_DIST += network/default.xml



534

D
Daniel Veillard 已提交
535
if WITH_NETCF
536 537 538 539 540 541
if WITH_DRIVER_MODULES
mod_LTLIBRARIES += libvirt_driver_interface.la
else
noinst_LTLIBRARIES += libvirt_driver_interface.la
libvirt_la_LIBADD += libvirt_driver_interface.la
endif
542 543 544
libvirt_driver_interface_la_CFLAGS = $(NETCF_CFLAGS) \
		-I@top_srcdir@/src/conf
libvirt_driver_interface_la_LDFLAGS = $(NETCF_LIBS)
545 546 547 548
if WITH_DRIVER_MODULES
libvirt_driver_interface_la_LDFLAGS += -module -avoid-version
endif
libvirt_driver_interface_la_SOURCES = $(INTERFACE_DRIVER_SOURCES)
D
Daniel Veillard 已提交
549 550
endif

D
Daniel P. Berrange 已提交
551
if WITH_SECRETS
552 553 554 555 556 557
if WITH_DRIVER_MODULES
mod_LTLIBRARIES += libvirt_driver_secret.la
else
noinst_LTLIBRARIES += libvirt_driver_secret.la
libvirt_la_LIBADD += libvirt_driver_secret.la
endif
558 559
libvirt_driver_secret_la_CFLAGS = \
		-I@top_srcdir@/src/conf
560
if WITH_DRIVER_MODULES
561
libvirt_driver_secret_la_LDFLAGS = -module -avoid-version ../gnulib/lib/libgnu.la
562 563
endif
libvirt_driver_secret_la_SOURCES = $(SECRET_DRIVER_SOURCES)
D
Daniel P. Berrange 已提交
564
endif
565

566 567
# Needed to keep automake quiet about conditionals
libvirt_driver_storage_la_SOURCES =
568 569
libvirt_driver_storage_la_CFLAGS = \
		-I@top_srcdir@/src/conf
570
libvirt_driver_storage_la_LDFLAGS =
571
if WITH_STORAGE_DIR
572 573 574
if WITH_DRIVER_MODULES
mod_LTLIBRARIES += libvirt_driver_storage.la
else
575
noinst_LTLIBRARIES += libvirt_driver_storage.la
576 577
# Stateful, so linked to daemon instead
#libvirt_la_LIBADD += libvirt_driver_storage.la
578 579
endif
if WITH_DRIVER_MODULES
580
libvirt_driver_storage_la_LDFLAGS += -module -avoid-version
581
endif
582 583
libvirt_driver_storage_la_SOURCES += $(STORAGE_DRIVER_SOURCES)
libvirt_driver_storage_la_SOURCES += $(STORAGE_DRIVER_FS_SOURCES)
584 585
endif

586
if WITH_STORAGE_LVM
587
libvirt_driver_storage_la_SOURCES += $(STORAGE_DRIVER_LVM_SOURCES)
588 589
endif

590
if WITH_STORAGE_ISCSI
591
libvirt_driver_storage_la_SOURCES += $(STORAGE_DRIVER_ISCSI_SOURCES)
592 593
endif

594 595 596 597
if WITH_STORAGE_SCSI
libvirt_driver_storage_la_SOURCES += $(STORAGE_DRIVER_SCSI_SOURCES)
endif

D
Dave Allan 已提交
598 599 600
if WITH_STORAGE_MPATH
libvirt_driver_storage_la_SOURCES += $(STORAGE_DRIVER_MPATH_SOURCES)
libvirt_driver_storage_la_CFLAGS += $(DEVMAPPER_CFLAGS)
601
libvirt_driver_storage_la_LDFLAGS += $(DEVMAPPER_LIBS)
D
Dave Allan 已提交
602 603
endif

604
if WITH_STORAGE_DISK
605
libvirt_driver_storage_la_SOURCES += $(STORAGE_DRIVER_DISK_SOURCES)
606
endif
607

608 609 610 611 612 613 614 615 616 617 618
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
#libvirt_la_LIBADD += libvirt_driver_nodedev.la
endif
libvirt_driver_nodedev_la_SOURCES = $(NODE_DEVICE_DRIVER_SOURCES)

619 620
libvirt_driver_nodedev_la_CFLAGS = \
		-I@top_srcdir@/src/conf
621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638
libvirt_driver_nodedev_la_LDFLAGS =
if HAVE_HAL
libvirt_driver_nodedev_la_SOURCES += $(NODE_DEVICE_DRIVER_HAL_SOURCES)
libvirt_driver_nodedev_la_CFLAGS += $(HAL_CFLAGS)
libvirt_driver_nodedev_la_LDFLAGS += $(HAL_LIBS)
endif
if HAVE_DEVKIT
libvirt_driver_nodedev_la_SOURCES += $(NODE_DEVICE_DRIVER_DEVKIT_SOURCES)
libvirt_driver_nodedev_la_CFLAGS += $(DEVKIT_CFLAGS)
libvirt_driver_nodedev_la_LDFLAGS += $(DEVKIT_LIBS)
endif

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


639 640 641
libvirt_driver_security_la_SOURCES = $(SECURITY_DRIVER_SOURCES)
noinst_LTLIBRARIES += libvirt_driver_security.la
libvirt_la_LIBADD += libvirt_driver_security.la
642 643
libvirt_driver_security_la_CFLAGS = \
		-I@top_srcdir@/src/conf
644 645 646
if WITH_SECDRIVER_SELINUX
libvirt_driver_security_la_SOURCES += $(SECURITY_DRIVER_SELINUX_SOURCES)
endif
647

648 649 650 651 652 653 654
# Add all conditional sources just in case...
EXTRA_DIST +=							\
		$(TEST_DRIVER_SOURCES)				\
		$(REMOTE_DRIVER_SOURCES)			\
		$(XEN_DRIVER_SOURCES)				\
		$(QEMU_DRIVER_SOURCES)				\
		$(LXC_DRIVER_SOURCES)				\
655
		$(UML_DRIVER_SOURCES)				\
D
Daniel Veillard 已提交
656
		$(ONE_DRIVER_SOURCES)				\
657
		$(OPENVZ_DRIVER_SOURCES)			\
658
		$(PHYP_DRIVER_SOURCES)				\
659
		$(VBOX_DRIVER_SOURCES)				\
660
		$(ESX_DRIVER_SOURCES)				\
661
		$(NETWORK_DRIVER_SOURCES)			\
662
		$(INTERFACE_DRIVER_SOURCES)			\
663 664 665 666
		$(STORAGE_DRIVER_SOURCES)			\
		$(STORAGE_DRIVER_FS_SOURCES)			\
		$(STORAGE_DRIVER_LVM_SOURCES)			\
		$(STORAGE_DRIVER_ISCSI_SOURCES)			\
667
		$(STORAGE_DRIVER_SCSI_SOURCES)			\
D
Dave Allan 已提交
668
		$(STORAGE_DRIVER_MPATH_SOURCES)			\
669 670 671
		$(STORAGE_DRIVER_DISK_SOURCES)			\
		$(NODE_DEVICE_DRIVER_SOURCES)			\
		$(NODE_DEVICE_DRIVER_HAL_SOURCES)		\
672
		$(NODE_DEVICE_DRIVER_DEVKIT_SOURCES)		\
673
		$(SECURITY_DRIVER_SELINUX_SOURCES)		\
D
Daniel P. Berrange 已提交
674
		$(SECRET_DRIVER_SOURCES)			\
675
		$(VBOX_DRIVER_EXTRA_DIST)
676

677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695
#
# 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.
#

696
if WITH_DRIVER_MODULES
697
USED_SYM_FILES += libvirt_driver_modules.syms
698
endif
699 700

if WITH_BRIDGE
701
USED_SYM_FILES += libvirt_bridge.syms
702
endif
703 704

if WITH_LINUX
705
USED_SYM_FILES += libvirt_linux.syms
706
endif
707

708 709 710 711 712 713
EXTRA_DIST += \
  libvirt_public.syms		\
  libvirt_private.syms		\
  libvirt_driver_modules.syms	\
  libvirt_bridge.syms		\
  libvirt_linux.syms
714

715 716
BUILT_SOURCES = libvirt.syms

717
libvirt.syms: libvirt_public.syms $(USED_SYM_FILES)
718 719 720 721 722 723
	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
724
	for file in $(USED_SYM_FILES); do \
725 726 727 728 729
	    cat $(srcdir)/$$file >>$@-tmp; \
	done
	printf '\n\nlocal:\n*;\n\n};' >>$@-tmp
	chmod a-w $@-tmp
	mv $@-tmp libvirt.syms
730

731 732
# Empty source list - it merely links a bunch of convenience libs together
libvirt_la_SOURCES =
733
libvirt_la_LIBADD += \
734
		    @CYGWIN_EXTRA_LIBADD@ ../gnulib/lib/libgnu.la
735
libvirt_la_LDFLAGS = $(VERSION_SCRIPT_FLAGS)libvirt.syms \
736 737
                     -version-info @LIBVIRT_VERSION_INFO@ \
                    $(COVERAGE_CFLAGS:-f%=-Wc,-f%) \
738 739
                    $(LIBXML_LIBS) \
		    $(DRIVER_MODULE_LIBS) \
740
		    @CYGWIN_EXTRA_LDFLAGS@ @MINGW_EXTRA_LDFLAGS@
741
libvirt_la_CFLAGS = $(COVERAGE_CFLAGS) -DIN_LIBVIRT
742
libvirt_la_DEPENDENCIES = $(libvirt_la_LIBADD) libvirt.syms
743

744 745 746
# 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.
747
noinst_LTLIBRARIES += libvirt_test.la
748

749
# Remove version script from convenience library
750 751
test_LDFLAGS =						\
  $$(echo '$(libvirt_la_LDFLAGS)'			\
752
     |sed 's!@VERSION_SCRIPT_FLAGS@libvirt.syms!!'	\
753 754 755 756 757 758 759 760
     |sed 's!-version-info @LIBVIRT_VERSION_INFO@!!')

# 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)
libvirt_test_la_LDFLAGS = $(test_LDFLAGS)
libvirt_test_la_CFLAGS = $(COVERAGE_CFLAGS)

761

762 763
libexec_PROGRAMS =

764
if WITH_STORAGE_DISK
R
Richard W.M. Jones 已提交
765
if WITH_LIBVIRTD
766
libexec_PROGRAMS += libvirt_parthelper
767

768
libvirt_parthelper_SOURCES = $(STORAGE_HELPER_DISK_SOURCES)
769 770 771
libvirt_parthelper_LDFLAGS = $(WARN_CFLAGS) $(COVERAGE_LDCFLAGS)
libvirt_parthelper_LDADD = $(LIBPARTED_LIBS)
libvirt_parthelper_CFLAGS =  $(LIBPARTED_CFLAGS)
R
Richard W.M. Jones 已提交
772
endif
773
endif
774 775
EXTRA_DIST += $(STORAGE_HELPER_DISK_SOURCES)

776

777 778 779 780 781 782
if WITH_LXC
if WITH_LIBVIRTD
libexec_PROGRAMS += libvirt_lxc

libvirt_lxc_SOURCES =						\
		$(LXC_CONTROLLER_SOURCES)			\
783
		$(UTIL_SOURCES)					\
784 785
		$(NODE_INFO_SOURCES)				\
		$(ENCRYPTION_CONF_SOURCES)			\
786
		$(DOMAIN_CONF_SOURCES)
787
libvirt_lxc_LDFLAGS = $(WARN_CFLAGS) $(COVERAGE_LDCFLAGS) $(CAPNG_LIBS)
788
libvirt_lxc_LDADD = $(LIBXML_LIBS) $(NUMACTL_LIBS) ../gnulib/lib/libgnu.la
789 790 791 792 793
libvirt_lxc_CFLAGS =				\
		$(LIBPARTED_CFLAGS)		\
		$(NUMACTL_CFLAGS)		\
		$(CAPNG_CFLAGS)			\
		-I@top_srcdir@/src/conf
794 795 796 797
endif
endif
EXTRA_DIST += $(LXC_CONTROLLER_SOURCES)

798
install-data-local:
799 800 801 802 803 804
	$(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"
805
	$(MKDIR_P) "$(DESTDIR)$(localstatedir)/cache/libvirt/qemu"
806
	$(MKDIR_P) "$(DESTDIR)$(localstatedir)/log/libvirt/qemu"
807 808 809 810 811 812 813 814 815 816 817 818 819 820
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/iptables/filter"
	$(MKDIR_P) "$(DESTDIR)$(localstatedir)/lib/libvirt/iptables/nat"
	$(MKDIR_P) "$(DESTDIR)$(localstatedir)/lib/libvirt/network"
	$(MKDIR_P) "$(DESTDIR)$(localstatedir)/run/libvirt/network"
821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 840
	$(MKDIR_P) "$(DESTDIR)$(sysconfdir)/libvirt/qemu/networks/autostart"
	$(INSTALL_DATA) $(srcdir)/network/default.xml \
	  $(DESTDIR)$(sysconfdir)/libvirt/qemu/networks/default.xml
	test -z "$(UUID)" || \
	  sed -i -e "s,</name>,</name>\n  <uuid>$(UUID)</uuid>," \
	    $(DESTDIR)$(sysconfdir)/libvirt/qemu/networks/default.xml
	test -e $(DESTDIR)$(sysconfdir)/libvirt/qemu/networks/autostart/default.xml || \
           ln -s ../default.xml \
	    $(DESTDIR)$(sysconfdir)/libvirt/qemu/networks/autostart/default.xml
endif

uninstall-local::
	rmdir "$(DESTDIR)$(localstatedir)/cache/libvirt" ||:
	rmdir "$(DESTDIR)$(localstatedir)/lib/libvirt/images" ||:
	rmdir "$(DESTDIR)$(localstatedir)/lib/libvirt/boot" ||:
if WITH_QEMU
	rmdir "$(DESTDIR)$(localstatedir)/lib/libvirt/qemu" ||:
	rmdir "$(DESTDIR)$(localstatedir)/run/libvirt/qemu" ||:
	rmdir "$(DESTDIR)$(localstatedir)/cache/libvirt/qemu" ||:
	rmdir "$(DESTDIR)$(localstatedir)/log/libvirt/qemu" ||:
841
endif
842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860
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/iptables/filter" ||:
	rmdir "$(DESTDIR)$(localstatedir)/lib/libvirt/iptables/nat" ||:
	rmdir "$(DESTDIR)$(localstatedir)/lib/libvirt/network" ||:
	rmdir "$(DESTDIR)$(localstatedir)/run/libvirt/network" ||:
endif
	rmdir "$(DESTDIR)$(localstatedir)/lib/libvirt" ||:
R
Richard W.M. Jones 已提交
861

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