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 52 53 54 55 56 57 58 59 60
		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		\
		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
61

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


72
# XML configuration format handling sources
73 74
# Domain driver generic impl APIs
DOMAIN_CONF_SOURCES =						\
75 76 77 78 79
		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
80 81

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

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

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

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

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

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

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



# Now the Hypervisor specific drivers
XEN_DRIVER_SOURCES =						\
131 132 133 134 135 136 137 138
		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
139
if WITH_XEN_INOTIFY
140
XEN_DRIVER_SOURCES += xen/xen_inotify.c xen/xen_inotify.h
141
endif
142 143

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

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

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

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

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

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

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

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

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

188 189 190 191
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			\
192 193 194 195
		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

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

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

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

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

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

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

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

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

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

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

STORAGE_HELPER_DISK_SOURCES =					\
230
		storage/parthelper.c
231 232


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

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

240

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

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

249
NODE_DEVICE_DRIVER_DEVKIT_SOURCES =				\
250
		node_device/node_device_devkit.c
251

252 253 254 255 256 257 258

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

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

266 267 268 269 270 271 272 273

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 =


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

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

282
USED_SYM_FILES = libvirt_private.syms
283

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

if WITH_REMOTE
300 301 302
if WITH_DRIVER_MODULES
mod_LTLIBRARIES += libvirt_driver_remote.la
else
303 304
noinst_LTLIBRARIES += libvirt_driver_remote.la
libvirt_la_LIBADD += libvirt_driver_remote.la
305
endif
306 307
libvirt_driver_remote_la_CFLAGS =				\
		$(GNUTLS_CFLAGS)				\
308
		$(SASL_CFLAGS)					\
309
		-I@top_srcdir@/src/conf
310 311 312
libvirt_driver_remote_la_LDFLAGS =				\
		$(GNUTLS_LIBS)					\
		$(SASL_LIBS)
313 314 315
if WITH_DRIVER_MODULES
libvirt_driver_remote_la_LDFLAGS += -module -avoid-version
endif
316
libvirt_driver_remote_la_SOURCES = $(REMOTE_DRIVER_SOURCES)
317 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

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
349 350 351
endif

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

368 369 370 371 372 373 374
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
375
libvirt_driver_phyp_la_LDFLAGS = $(LIBSSH2_LIBS)
376 377
libvirt_driver_phyp_la_CFLAGS = $(LIBSSH2_CFLAGS) \
		-I@top_srcdir@/src/conf
378 379 380
libvirt_driver_phyp_la_SOURCES = $(PHYP_DRIVER_SOURCES)
endif

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

396 397 398 399 400 401 402
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
403 404
libvirt_driver_vbox_la_CFLAGS = \
		-I@top_srcdir@/src/conf
405 406 407 408 409 410
if WITH_DRIVER_MODULES
libvirt_driver_vbox_la_LDFLAGS = -module -avoid-version
endif
libvirt_driver_vbox_la_SOURCES = $(VBOX_DRIVER_SOURCES)
endif

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

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 || :

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

443 444

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

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

D
Daniel Veillard 已提交
477 478 479 480 481 482 483 484
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
485 486
libvirt_driver_one_la_CFLAGS = $(XMLRPC_CFLAGS) \
		-I@top_srcdir@/src/conf
D
Daniel P. Berrange 已提交
487
libvirt_driver_one_la_LDFLAGS = $(XMLRPC_LIBS)
D
Daniel Veillard 已提交
488 489 490 491 492 493 494 495 496 497
#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




498 499 500 501 502 503 504
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
505 506
libvirt_driver_esx_la_CFLAGS = $(LIBCURL_CFLAGS) \
		-I@top_srcdir@/src/conf
507 508 509 510 511 512 513
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

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



533

D
Daniel Veillard 已提交
534
if WITH_NETCF
535 536 537 538 539 540
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
541 542 543
libvirt_driver_interface_la_CFLAGS = $(NETCF_CFLAGS) \
		-I@top_srcdir@/src/conf
libvirt_driver_interface_la_LDFLAGS = $(NETCF_LIBS)
544 545 546 547
if WITH_DRIVER_MODULES
libvirt_driver_interface_la_LDFLAGS += -module -avoid-version
endif
libvirt_driver_interface_la_SOURCES = $(INTERFACE_DRIVER_SOURCES)
D
Daniel Veillard 已提交
548 549
endif

D
Daniel P. Berrange 已提交
550
if WITH_SECRETS
551 552 553 554 555 556
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
557 558
libvirt_driver_secret_la_CFLAGS = \
		-I@top_srcdir@/src/conf
559
if WITH_DRIVER_MODULES
560
libvirt_driver_secret_la_LDFLAGS = -module -avoid-version ../gnulib/lib/libgnu.la
561 562
endif
libvirt_driver_secret_la_SOURCES = $(SECRET_DRIVER_SOURCES)
D
Daniel P. Berrange 已提交
563
endif
564

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

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

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

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

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

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

607 608 609 610 611 612 613 614 615 616 617
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)

618 619
libvirt_driver_nodedev_la_CFLAGS = \
		-I@top_srcdir@/src/conf
620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637
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


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

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

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

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

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

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

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

714 715
BUILT_SOURCES = libvirt.syms

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

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

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

748
# Remove version script from convenience library
749 750
test_LDFLAGS =						\
  $$(echo '$(libvirt_la_LDFLAGS)'			\
751
     |sed 's!@VERSION_SCRIPT_FLAGS@libvirt.syms!!'	\
752 753 754 755 756 757 758 759
     |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)

760

761 762
libexec_PROGRAMS =

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

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

775

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

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

797
install-data-local:
798 799 800 801 802 803
	$(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"
804
	$(MKDIR_P) "$(DESTDIR)$(localstatedir)/cache/libvirt/qemu"
805
	$(MKDIR_P) "$(DESTDIR)$(localstatedir)/log/libvirt/qemu"
806 807 808 809 810 811 812 813 814 815 816 817 818 819
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"
820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839
	$(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" ||:
840
endif
841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859
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 已提交
860

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