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

3 4 5
INCLUDES = \
	   -I$(top_srcdir)/gnulib/lib -I../gnulib/lib \
	   -I../include \
6
	   -I@top_srcdir@/include \
7
	   -I@top_srcdir@/daemon \
8
	   $(LIBXML_CFLAGS) \
9
	   $(LIBSSH2_CFLAGS) \
10
	   $(SELINUX_CFLAGS) \
11 12
	   $(DRIVER_MODULE_CFLAGS) \
	   -DLIBDIR=\""$(libdir)"\" \
13 14 15 16
	   -DBINDIR=\""$(libexecdir)"\" \
	   -DSBINDIR=\""$(sbindir)"\" \
	   -DSYSCONF_DIR="\"$(sysconfdir)\"" \
	   -DLOCALEBASEDIR=\""$(datadir)/locale"\" \
D
Daniel P. Berrange 已提交
17
           -DLOCAL_STATE_DIR=\""$(localstatedir)"\" \
18
           -DGETTEXT_PACKAGE=\"$(PACKAGE)\" \
19 20
	   $(WARN_CFLAGS) \
	   $(LOCK_CHECKING_CFLAGS)
21

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

25 26 27 28 29 30 31
ICON_FILES = \
	libvirt_win_icon_16x16.ico \
	libvirt_win_icon_32x32.ico \
	libvirt_win_icon_48x48.ico \
	libvirt_win_icon_64x64.ico \
	virsh_win_icon.rc

32
EXTRA_DIST = $(conf_DATA) $(ICON_FILES)
33

34

35
lib_LTLIBRARIES = libvirt.la
36

37 38 39 40
moddir = $(libdir)/libvirt/drivers
mod_LTLIBRARIES =


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

64 65
EXTRA_DIST += threads-pthread.c threads-win32.c

66
# Internal generic driver infrastructure
67
DRIVER_SOURCES =						\
68
		driver.c driver.h				\
69 70 71 72 73 74 75
		internal.h					\
		datatypes.c datatypes.h				\
		domain_event.c domain_event.h			\
		stats_linux.c stats_linux.h			\
		libvirt.c libvirt_internal.h


76 77 78 79 80 81 82 83 84 85 86 87
# Domain driver generic impl APIs
DOMAIN_CONF_SOURCES =						\
		capabilities.c capabilities.h			\
		domain_conf.c domain_conf.h			\
		nodeinfo.h nodeinfo.c

# Network driver generic impl APIs
NETWORK_CONF_SOURCES =						\
		network_conf.c network_conf.h

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

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

94 95 96 97
# Secret driver generic impl APIs
SECRET_CONF_SOURCES =						\
		secret_conf.h secret_conf.c

98 99
# The remote RPC driver, covering domains, storage, networks, etc
REMOTE_DRIVER_SOURCES =						\
100 101
		gnutls_1_0_compat.h			\
		remote/remote_driver.c remote/remote_driver.h	\
102 103
		../daemon/remote_protocol.c			\
		../daemon/remote_protocol.h
104 105 106

# Mock driver, covering domains, storage, networks, etc
TEST_DRIVER_SOURCES =						\
107
		test/test_driver.c test/test_driver.h
108 109 110 111 112



# Now the Hypervisor specific drivers
XEN_DRIVER_SOURCES =						\
113 114 115 116 117 118 119 120
		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
121
if WITH_XEN_INOTIFY
122
XEN_DRIVER_SOURCES += xen/xen_inotify.c xen/xen_inotify.h
123
endif
124 125

LXC_DRIVER_SOURCES =						\
126 127 128 129
		lxc/lxc_conf.c lxc/lxc_conf.h			\
		lxc/lxc_container.c lxc/lxc_container.h		\
		lxc/lxc_driver.c lxc/lxc_driver.h		\
		lxc/veth.c lxc/veth.h				\
D
Dan Smith 已提交
130
		cgroup.c cgroup.h
131

132
LXC_CONTROLLER_SOURCES =					\
133 134 135 136
		lxc/lxc_conf.c lxc/lxc_conf.h			\
		lxc/lxc_container.c lxc/lxc_container.h		\
		lxc/lxc_controller.c				\
		lxc/veth.c lxc/veth.h				\
D
Dan Smith 已提交
137
		cgroup.c cgroup.h
138

139 140 141
PHYP_DRIVER_SOURCES =						\
		phyp/phyp_driver.c phyp/phyp_driver.h

142
OPENVZ_DRIVER_SOURCES =						\
143 144
		openvz/openvz_conf.c openvz/openvz_conf.h	\
		openvz/openvz_driver.c openvz/openvz_driver.h
145

146 147 148
VBOX_DRIVER_SOURCES =						\
        vbox/vbox_XPCOMCGlue.c vbox/vbox_XPCOMCGlue.h		\
        vbox/vbox_driver.c vbox/vbox_driver.h			\
149 150
        vbox/vbox_V2_2.c vbox/vbox_CAPI_v2_2.h			\
        vbox/vbox_V3_0.c vbox/vbox_CAPI_v3_0.h
151

152 153
VBOX_DRIVER_EXTRA_DIST = vbox/vbox_tmpl.c vbox/README

154
QEMU_DRIVER_SOURCES =						\
155 156
		qemu/qemu_conf.c qemu/qemu_conf.h				\
		qemu/qemu_driver.c qemu/qemu_driver.h			\
157
		cgroup.c cgroup.h
R
Richard W.M. Jones 已提交
158

159
UML_DRIVER_SOURCES =						\
D
Daniel P. Berrange 已提交
160 161
		uml/uml_conf.c uml/uml_conf.h			\
		uml/uml_driver.c uml/uml_driver.h
162

163 164 165 166 167 168
ONE_DRIVER_SOURCES =						\
		./opennebula/one_conf.c				\
		./opennebula/one_conf.h				\
		./opennebula/one_driver.c			\
		./opennebula/one_driver.h			\
		./opennebula/one_client.c			\
169
		./opennebula/one_client.h
D
Daniel Veillard 已提交
170

171 172 173 174
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			\
175 176 177 178
		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

179 180
NETWORK_DRIVER_SOURCES =					\
		network_driver.h network_driver.c
181

182 183 184
INTERFACE_DRIVER_SOURCES =					\
		interface_driver.h interface_driver.c

185 186 187
SECRET_DRIVER_SOURCES =						\
		secret_driver.h secret_driver.c

188
# Storage backend specific impls
189
STORAGE_DRIVER_SOURCES =					\
190 191
		storage/storage_driver.h storage/storage_driver.c		\
		storage/storage_backend.h storage/storage_backend.c
192

193 194 195 196
# Network driver generic impl APIs
NODE_DEVICE_CONF_SOURCES =					\
		node_device_conf.c node_device_conf.h

197
STORAGE_DRIVER_FS_SOURCES =					\
198
		storage/storage_backend_fs.h storage/storage_backend_fs.c
R
Richard W.M. Jones 已提交
199

200
STORAGE_DRIVER_LVM_SOURCES =					\
201 202
		storage/storage_backend_logical.h			\
		storage/storage_backend_logical.c
203 204

STORAGE_DRIVER_ISCSI_SOURCES =					\
205
		storage/storage_backend_iscsi.h storage/storage_backend_iscsi.c
206

207
STORAGE_DRIVER_SCSI_SOURCES =					\
208
		storage/storage_backend_scsi.h storage/storage_backend_scsi.c
209

D
Dave Allan 已提交
210
STORAGE_DRIVER_MPATH_SOURCES =					\
211
		storage/storage_backend_mpath.h storage/storage_backend_mpath.c
D
Dave Allan 已提交
212

213
STORAGE_DRIVER_DISK_SOURCES =					\
214
		storage/storage_backend_disk.h storage/storage_backend_disk.c
215 216

STORAGE_HELPER_DISK_SOURCES =					\
217
		storage/parthelper.c
218 219


220
# Security framework and drivers for various models
221
SECURITY_DRIVER_SOURCES =					\
222 223
		security.h security.c

224 225 226
SECURITY_DRIVER_SELINUX_SOURCES =				\
		security_selinux.h security_selinux.c

227

228
NODE_DEVICE_DRIVER_SOURCES =					\
229
		node_device/node_device_driver.c node_device/node_device_driver.h
230 231

NODE_DEVICE_DRIVER_HAL_SOURCES =				\
232 233 234
		node_device/node_device_hal.c			\
		node_device/node_device_hal.h			\
		node_device/node_device_hal_linux.c
235

236
NODE_DEVICE_DRIVER_DEVKIT_SOURCES =				\
237
		node_device/node_device_devkit.c
238

239 240 241 242 243 244 245

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

246 247 248 249
noinst_LTLIBRARIES = libvirt_util.la
libvirt_la_LIBADD = libvirt_util.la
libvirt_util_la_SOURCES =					\
		$(UTIL_SOURCES)
250 251
libvirt_util_la_CFLAGS =  $(CAPNG_CFLAGS)
libvirt_util_la_LDFLAGS =  $(CAPNG_LIBS)
252 253 254 255 256

noinst_LTLIBRARIES += libvirt_driver.la
libvirt_la_LIBADD += libvirt_driver.la
libvirt_driver_la_SOURCES =					\
		$(DRIVER_SOURCES)				\
257 258
		$(DOMAIN_CONF_SOURCES)				\
		$(NETWORK_CONF_SOURCES)				\
259
		$(STORAGE_CONF_SOURCES)				\
260
		$(INTERFACE_CONF_SOURCES)			\
261 262
		$(NODE_DEVICE_CONF_SOURCES)			\
		$(SECRET_CONF_SOURCES)
263

264 265
libvirt_driver_la_CFLAGS = $(NUMACTL_CFLAGS)
libvirt_driver_la_LDFLAGS = $(NUMACTL_LIBS)
266

267
USED_SYM_FILES = libvirt_private.syms
268

269
if WITH_TEST
270 271 272
if WITH_DRIVER_MODULES
mod_LTLIBRARIES += libvirt_driver_test.la
else
273 274
noinst_LTLIBRARIES += libvirt_driver_test.la
libvirt_la_LIBADD += libvirt_driver_test.la
275 276 277 278
endif
if WITH_DRIVER_MODULES
libvirt_driver_test_la_LDFLAGS = -module -avoid-version
endif
279
libvirt_driver_test_la_SOURCES = $(TEST_DRIVER_SOURCES)
280 281 282
endif

if WITH_REMOTE
283 284 285
if WITH_DRIVER_MODULES
mod_LTLIBRARIES += libvirt_driver_remote.la
else
286 287
noinst_LTLIBRARIES += libvirt_driver_remote.la
libvirt_la_LIBADD += libvirt_driver_remote.la
288
endif
289 290 291 292 293 294
libvirt_driver_remote_la_CFLAGS =				\
		$(GNUTLS_CFLAGS)				\
		$(SASL_CFLAGS)
libvirt_driver_remote_la_LDFLAGS =				\
		$(GNUTLS_LIBS)					\
		$(SASL_LIBS)
295 296 297
if WITH_DRIVER_MODULES
libvirt_driver_remote_la_LDFLAGS += -module -avoid-version
endif
298
libvirt_driver_remote_la_SOURCES = $(REMOTE_DRIVER_SOURCES)
299 300 301
endif

if WITH_XEN
302 303 304
if WITH_DRIVER_MODULES
mod_LTLIBRARIES += libvirt_driver_xen.la
else
305 306
noinst_LTLIBRARIES += libvirt_driver_xen.la
libvirt_la_LIBADD += libvirt_driver_xen.la
307
endif
308 309
libvirt_driver_xen_la_CFLAGS = $(XEN_CFLAGS)
libvirt_driver_xen_la_LDFLAGS = $(XEN_LIBS)
310 311 312
if WITH_DRIVER_MODULES
libvirt_driver_xen_la_LDFLAGS += -module -avoid-version
endif
313
libvirt_driver_xen_la_SOURCES = $(XEN_DRIVER_SOURCES)
314 315
endif

316 317 318 319 320 321 322
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
323 324
libvirt_driver_phyp_la_LDFLAGS = $(LIBSSH2_LIBS)
libvirt_driver_phyp_la_CFLAGS = $(LIBSSH2_CFLAGS)
325 326 327
libvirt_driver_phyp_la_SOURCES = $(PHYP_DRIVER_SOURCES)
endif

328
if WITH_OPENVZ
329 330 331
if WITH_DRIVER_MODULES
mod_LTLIBRARIES += libvirt_driver_openvz.la
else
332 333
noinst_LTLIBRARIES += libvirt_driver_openvz.la
libvirt_la_LIBADD += libvirt_driver_openvz.la
334 335 336 337
endif
if WITH_DRIVER_MODULES
libvirt_driver_openvz_la_LDFLAGS = -module -avoid-version
endif
338
libvirt_driver_openvz_la_SOURCES = $(OPENVZ_DRIVER_SOURCES)
339 340
endif

341 342 343 344 345 346 347 348 349 350 351 352 353
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
if WITH_DRIVER_MODULES
libvirt_driver_vbox_la_LDFLAGS = -module -avoid-version
endif
libvirt_driver_vbox_la_SOURCES = $(VBOX_DRIVER_SOURCES)
endif

354
if WITH_QEMU
355 356 357
if WITH_DRIVER_MODULES
mod_LTLIBRARIES += libvirt_driver_qemu.la
else
358
noinst_LTLIBRARIES += libvirt_driver_qemu.la
359 360
# Stateful, so linked to daemon instead
#libvirt_la_LIBADD += libvirt_driver_qemu.la
361
endif
362 363
libvirt_driver_qemu_la_CFLAGS = $(NUMACTL_CFLAGS)
libvirt_driver_qemu_la_LDFLAGS = $(NUMACTL_LIBS)
364 365 366
if WITH_DRIVER_MODULES
libvirt_driver_qemu_la_LDFLAGS += -module -avoid-version
endif
367
libvirt_driver_qemu_la_SOURCES = $(QEMU_DRIVER_SOURCES)
368 369 370
endif

if WITH_LXC
371 372 373
if WITH_DRIVER_MODULES
mod_LTLIBRARIES += libvirt_driver_lxc.la
else
374
noinst_LTLIBRARIES += libvirt_driver_lxc.la
375 376
# Stateful, so linked to daemon instead
#libvirt_la_LIBADD += libvirt_driver_lxc.la
377 378 379 380
endif
if WITH_DRIVER_MODULES
libvirt_driver_lxc_la_LDFLAGS = -module -avoid-version
endif
381
libvirt_driver_lxc_la_SOURCES = $(LXC_DRIVER_SOURCES)
382 383
endif

384
if WITH_UML
385 386 387
if WITH_DRIVER_MODULES
mod_LTLIBRARIES += libvirt_driver_uml.la
else
388 389 390
noinst_LTLIBRARIES += libvirt_driver_uml.la
# Stateful, so linked to daemon instead
#libvirt_la_LIBADD += libvirt_driver_uml.la
391 392 393 394 395 396
endif
libvirt_driver_uml_la_CFLAGS = $(NUMACTL_CFLAGS)
libvirt_driver_uml_la_LDFLAGS = $(NUMACTL_LIBS)
if WITH_DRIVER_MODULES
libvirt_driver_uml_la_LDFLAGS += -module -avoid-version
endif
397 398
libvirt_driver_uml_la_SOURCES = $(UML_DRIVER_SOURCES)
endif
399

D
Daniel Veillard 已提交
400 401 402 403 404 405 406 407
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
D
Daniel P. Berrange 已提交
408 409
libvirt_driver_one_la_CFLAGS = $(XMLRPC_CFLAGS)
libvirt_driver_one_la_LDFLAGS = $(XMLRPC_LIBS)
D
Daniel Veillard 已提交
410 411 412 413 414 415 416 417 418 419
#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




420 421 422 423 424 425 426 427 428 429 430 431 432 433 434
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
libvirt_driver_esx_la_CFLAGS = $(LIBCURL_CFLAGS)
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

435
if WITH_NETWORK
436 437 438
if WITH_DRIVER_MODULES
mod_LTLIBRARIES += libvirt_driver_network.la
else
439
noinst_LTLIBRARIES += libvirt_driver_network.la
440 441
# Stateful, so linked to daemon instead
#libvirt_la_LIBADD += libvirt_driver_network.la
442 443 444 445
endif
if WITH_DRIVER_MODULES
libvirt_driver_network_la_LDFLAGS = -module -avoid-version
endif
446
libvirt_driver_network_la_SOURCES = $(NETWORK_DRIVER_SOURCES)
447 448
endif

D
Daniel Veillard 已提交
449 450
if WITH_NETCF
libvirt_driver_interface_la_LDFLAGS = $(NETCF_LIBS)
451 452 453 454 455 456 457 458 459 460 461
libvirt_driver_interface_la_CFLAGS = $(NETCF_CFLAGS)
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
if WITH_DRIVER_MODULES
libvirt_driver_interface_la_LDFLAGS += -module -avoid-version
endif
libvirt_driver_interface_la_SOURCES = $(INTERFACE_DRIVER_SOURCES)
D
Daniel Veillard 已提交
462 463
endif

D
Daniel P. Berrange 已提交
464
if WITH_SECRETS
465 466 467 468 469 470 471
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
if WITH_DRIVER_MODULES
472
libvirt_driver_secret_la_LDFLAGS = -module -avoid-version ../gnulib/lib/libgnu.la
473 474
endif
libvirt_driver_secret_la_SOURCES = $(SECRET_DRIVER_SOURCES)
D
Daniel P. Berrange 已提交
475
endif
476

477 478
# Needed to keep automake quiet about conditionals
libvirt_driver_storage_la_SOURCES =
D
Dave Allan 已提交
479
libvirt_driver_storage_la_CFLAGS =
480
if WITH_STORAGE_DIR
481 482 483
if WITH_DRIVER_MODULES
mod_LTLIBRARIES += libvirt_driver_storage.la
else
484
noinst_LTLIBRARIES += libvirt_driver_storage.la
485 486
# Stateful, so linked to daemon instead
#libvirt_la_LIBADD += libvirt_driver_storage.la
487 488 489 490
endif
if WITH_DRIVER_MODULES
libvirt_driver_storage_la_LDFLAGS = -module -avoid-version
endif
491 492
libvirt_driver_storage_la_SOURCES += $(STORAGE_DRIVER_SOURCES)
libvirt_driver_storage_la_SOURCES += $(STORAGE_DRIVER_FS_SOURCES)
493 494
endif

495
if WITH_STORAGE_LVM
496
libvirt_driver_storage_la_SOURCES += $(STORAGE_DRIVER_LVM_SOURCES)
497 498
endif

499
if WITH_STORAGE_ISCSI
500
libvirt_driver_storage_la_SOURCES += $(STORAGE_DRIVER_ISCSI_SOURCES)
501 502
endif

503 504 505 506
if WITH_STORAGE_SCSI
libvirt_driver_storage_la_SOURCES += $(STORAGE_DRIVER_SCSI_SOURCES)
endif

D
Dave Allan 已提交
507 508 509 510 511
if WITH_STORAGE_MPATH
libvirt_driver_storage_la_SOURCES += $(STORAGE_DRIVER_MPATH_SOURCES)
libvirt_driver_storage_la_CFLAGS += $(DEVMAPPER_CFLAGS)
endif

512
if WITH_STORAGE_DISK
513
libvirt_driver_storage_la_SOURCES += $(STORAGE_DRIVER_DISK_SOURCES)
514
endif
515

516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545
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)

libvirt_driver_nodedev_la_CFLAGS =
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


546 547 548
libvirt_driver_security_la_SOURCES = $(SECURITY_DRIVER_SOURCES)
noinst_LTLIBRARIES += libvirt_driver_security.la
libvirt_la_LIBADD += libvirt_driver_security.la
549 550 551
if WITH_SECDRIVER_SELINUX
libvirt_driver_security_la_SOURCES += $(SECURITY_DRIVER_SELINUX_SOURCES)
endif
552

553 554 555 556 557 558 559
# Add all conditional sources just in case...
EXTRA_DIST +=							\
		$(TEST_DRIVER_SOURCES)				\
		$(REMOTE_DRIVER_SOURCES)			\
		$(XEN_DRIVER_SOURCES)				\
		$(QEMU_DRIVER_SOURCES)				\
		$(LXC_DRIVER_SOURCES)				\
560
		$(UML_DRIVER_SOURCES)				\
D
Daniel Veillard 已提交
561
		$(ONE_DRIVER_SOURCES)				\
562
		$(OPENVZ_DRIVER_SOURCES)			\
563
		$(PHYP_DRIVER_SOURCES)				\
564
		$(VBOX_DRIVER_SOURCES)				\
565
		$(ESX_DRIVER_SOURCES)				\
566
		$(NETWORK_DRIVER_SOURCES)			\
567
		$(INTERFACE_DRIVER_SOURCES)			\
568 569 570 571
		$(STORAGE_DRIVER_SOURCES)			\
		$(STORAGE_DRIVER_FS_SOURCES)			\
		$(STORAGE_DRIVER_LVM_SOURCES)			\
		$(STORAGE_DRIVER_ISCSI_SOURCES)			\
572
		$(STORAGE_DRIVER_SCSI_SOURCES)			\
D
Dave Allan 已提交
573
		$(STORAGE_DRIVER_MPATH_SOURCES)			\
574 575 576
		$(STORAGE_DRIVER_DISK_SOURCES)			\
		$(NODE_DEVICE_DRIVER_SOURCES)			\
		$(NODE_DEVICE_DRIVER_HAL_SOURCES)		\
577
		$(NODE_DEVICE_DRIVER_DEVKIT_SOURCES)		\
578
		$(SECURITY_DRIVER_SELINUX_SOURCES)		\
D
Daniel P. Berrange 已提交
579
		$(SECRET_DRIVER_SOURCES)			\
580
		$(VBOX_DRIVER_EXTRA_DIST)
581

582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600
#
# 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.
#

601
if WITH_DRIVER_MODULES
602
USED_SYM_FILES += libvirt_driver_modules.syms
603
endif
604 605

if WITH_BRIDGE
606
USED_SYM_FILES += libvirt_bridge.syms
607
endif
608 609

if WITH_LINUX
610
USED_SYM_FILES += libvirt_linux.syms
611
endif
612

613 614 615 616 617 618
EXTRA_DIST += \
  libvirt_public.syms		\
  libvirt_private.syms		\
  libvirt_driver_modules.syms	\
  libvirt_bridge.syms		\
  libvirt_linux.syms
619

620
libvirt.syms: libvirt_public.syms $(USED_SYM_FILES)
621 622 623 624 625 626
	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
627
	for file in $(USED_SYM_FILES); do \
628 629 630 631 632
	    cat $(srcdir)/$$file >>$@-tmp; \
	done
	printf '\n\nlocal:\n*;\n\n};' >>$@-tmp
	chmod a-w $@-tmp
	mv $@-tmp libvirt.syms
633

634 635
# Empty source list - it merely links a bunch of convenience libs together
libvirt_la_SOURCES =
636
libvirt_la_LIBADD += \
637
		    @CYGWIN_EXTRA_LIBADD@ ../gnulib/lib/libgnu.la
638
libvirt_la_LDFLAGS = $(VERSION_SCRIPT_FLAGS)libvirt.syms \
639 640
                     -version-info @LIBVIRT_VERSION_INFO@ \
                    $(COVERAGE_CFLAGS:-f%=-Wc,-f%) \
641
                    $(LIBXML_LIBS) $(SELINUX_LIBS) \
642
		    $(XEN_LIBS) $(DRIVER_MODULE_LIBS) \
D
Dave Allan 已提交
643
		    $(DEVMAPPER_LIBS) \
644
		    @CYGWIN_EXTRA_LDFLAGS@ @MINGW_EXTRA_LDFLAGS@
645
libvirt_la_CFLAGS = $(COVERAGE_CFLAGS) -DIN_LIBVIRT
646
libvirt_la_DEPENDENCIES = $(libvirt_la_LIBADD) libvirt.syms
647

648 649 650
# 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.
651
noinst_LTLIBRARIES += libvirt_test.la
652

653
# Remove version script from convenience library
654 655
test_LDFLAGS =						\
  $$(echo '$(libvirt_la_LDFLAGS)'			\
656
     |sed 's!@VERSION_SCRIPT_FLAGS@libvirt.syms!!'	\
657 658 659 660 661 662 663 664
     |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)

K
Karel Zak 已提交
665
bin_PROGRAMS = virsh
666

667 668 669 670
virsh_SOURCES =							\
		console.c console.h				\
		virsh.c

671
virsh_LDFLAGS = $(WARN_CFLAGS) $(COVERAGE_LDFLAGS)
672 673
virsh_LDADD =							\
		$(STATIC_BINARIES)				\
674
		$(WARN_CFLAGS)					\
675
		$(NUMACTL_LIBS)					\
676 677 678
		libvirt.la					\
		../gnulib/lib/libgnu.la				\
		$(VIRSH_LIBS)
679
virsh_CFLAGS = $(COVERAGE_CFLAGS) $(READLINE_CFLAGS) $(NUMACTL_CFLAGS)
680
BUILT_SOURCES = virsh-net-edit.c virsh-pool-edit.c libvirt.syms
681 682 683 684 685 686 687 688 689 690

virsh-net-edit.c: virsh.c Makefile.am
	rm -f $@-tmp
	echo '/* Automatically generated from: $^ */' > $@-tmp
	echo 'static int' >> $@-tmp
	awk '/^cmdEdit/, /^}/' $< \
	  | sed -e 's/domain/network/g' \
	      -e 's/Domain/Network/g' \
	      -e 's/cmdEdit/cmdNetworkEdit/g' \
	      -e 's/dom/network/g' \
691
	      -e 's/int flags.*/int flags = 0;/g' \
692 693 694 695 696 697 698 699 700 701 702 703 704
	>> $@-tmp
	chmod a-w $@-tmp
	rm -f $@
	mv $@-tmp $@

virsh-pool-edit.c: virsh.c Makefile.am
	rm -f $@-tmp
	echo '/* Automatically generated from: $^ */' > $@-tmp
	echo 'static int' >> $@-tmp
	awk '/^cmdEdit/, /^}/' $< \
	  | sed -e 's/domain/pool/g' \
	      -e 's/vshCommandOptDomain/vshCommandOptPool/g' \
	      -e 's/Domain %s/Pool %s/g' \
J
Jim Meyering 已提交
705
	      -e 's/(ctl, cmd, NULL);/(ctl, cmd, "pool", NULL);/' \
706 707 708 709
	      -e 's/Domain/StoragePool/g' \
	      -e 's/cmdEdit/cmdPoolEdit/g' \
	      -e 's/\(virStoragePoolDefineXML.*\));/\1, 0);/' \
	      -e 's/dom/pool/g' \
710
	      -e 's/int flags.*/int flags = 0;/g' \
711 712 713 714
	>> $@-tmp
	chmod a-w $@-tmp
	rm -f $@
	mv $@-tmp $@
715

716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741
if WITH_WIN_ICON
virsh_LDADD += virsh_win_icon.$(OBJEXT)

# Before you edit virsh_win_icon.rc, please note the following
# limitations of the resource file format:
#
# (1) '..' is not permitted in the icon filename field.
# (2) '-' is not permitted in the icon filename field.
# (3) Comments are not permitted in the file.
#
# Windows appears to choose the first <= 32x32 icon it finds
# in the resource file.  Therefore you should list the available
# icons from largest to smallest, and make sure that the 32x32
# icon is the most legible.
#
# Windows .ICO is a special MS-only format.  GIMP and other
# tools can write it.  However there are several variations,
# and Windows seems to do its own colour quantization.  More
# information is needed in this area.

virsh_win_icon.$(OBJEXT): virsh_win_icon.rc
	$(WINDRES) \
	  --input-format rc --input $< \
	  --output-format coff --output $@
endif

742 743
libexec_PROGRAMS =

744
if WITH_STORAGE_DISK
R
Richard W.M. Jones 已提交
745
if WITH_LIBVIRTD
746
libexec_PROGRAMS += libvirt_parthelper
747

748
libvirt_parthelper_SOURCES = $(STORAGE_HELPER_DISK_SOURCES)
749 750 751
libvirt_parthelper_LDFLAGS = $(WARN_CFLAGS) $(COVERAGE_LDCFLAGS)
libvirt_parthelper_LDADD = $(LIBPARTED_LIBS)
libvirt_parthelper_CFLAGS =  $(LIBPARTED_CFLAGS)
R
Richard W.M. Jones 已提交
752
endif
753
endif
754 755
EXTRA_DIST += $(STORAGE_HELPER_DISK_SOURCES)

756

757 758 759 760 761 762
if WITH_LXC
if WITH_LIBVIRTD
libexec_PROGRAMS += libvirt_lxc

libvirt_lxc_SOURCES =						\
		$(LXC_CONTROLLER_SOURCES)			\
763
		$(UTIL_SOURCES)					\
764
		$(DOMAIN_CONF_SOURCES)
765
libvirt_lxc_LDFLAGS = $(WARN_CFLAGS) $(COVERAGE_LDCFLAGS) $(CAPNG_LIBS)
766
libvirt_lxc_LDADD = $(LIBXML_LIBS) $(NUMACTL_LIBS) ../gnulib/lib/libgnu.la
767
libvirt_lxc_CFLAGS =  $(LIBPARTED_CFLAGS) $(NUMACTL_CFLAGS) $(CAPNG_CFLAGS)
768 769 770 771
endif
endif
EXTRA_DIST += $(LXC_CONTROLLER_SOURCES)

R
Richard W.M. Jones 已提交
772
install-exec-local:
773 774 775 776 777 778
	$(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"
779
	$(MKDIR_P) "$(DESTDIR)$(localstatedir)/cache/libvirt/qemu"
780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795
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"
endif

R
Richard W.M. Jones 已提交
796

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