Makefile.am 21.6 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 7
	   -I@top_srcdir@/include \
	   -I@top_srcdir@/qemud \
8
	   $(LIBXML_CFLAGS) \
9
	   $(LIBSSH_CFLAGS) \
10
	   $(XEN_CFLAGS) \
11
	   $(SELINUX_CFLAGS) \
12 13
	   $(DRIVER_MODULE_CFLAGS) \
	   -DLIBDIR=\""$(libdir)"\" \
14 15 16 17
	   -DBINDIR=\""$(libexecdir)"\" \
	   -DSBINDIR=\""$(sbindir)"\" \
	   -DSYSCONF_DIR="\"$(sysconfdir)\"" \
	   -DLOCALEBASEDIR=\""$(datadir)/locale"\" \
D
Daniel P. Berrange 已提交
18
           -DLOCAL_STATE_DIR=\""$(localstatedir)"\" \
19
           -DGETTEXT_PACKAGE=\"$(PACKAGE)\" \
20 21
	   $(WARN_CFLAGS) \
	   $(LOCK_CHECKING_CFLAGS)
22

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

26 27 28 29 30 31 32
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

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

35

36
lib_LTLIBRARIES = libvirt.la
37

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


42 43
# These files are not related to driver APIs. Simply generic
# helper APIs for various purposes
44
UTIL_SOURCES =							\
45 46 47
		bridge.c bridge.h				\
		buf.c buf.h					\
		conf.c conf.h					\
48
		event.c event.h					\
49
		hash.c hash.h					\
50
		iptables.c iptables.h				\
51
		logging.c logging.h				\
52
		memory.c memory.h				\
53
		pci.c pci.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

# The remote RPC driver, covering domains, storage, networks, etc
REMOTE_DRIVER_SOURCES =						\
		gnutls_1_0_compat.h				\
97
		remote_internal.c remote_internal.h		\
98
		../qemud/remote_protocol.c			\
99
		../qemud/remote_protocol.h
100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115

# Mock driver, covering domains, storage, networks, etc
TEST_DRIVER_SOURCES =						\
		test.c test.h



# Now the Hypervisor specific drivers
XEN_DRIVER_SOURCES =						\
		proxy_internal.c proxy_internal.h		\
		sexpr.c sexpr.h					\
		xen_internal.c xen_internal.h			\
		xen_unified.c xen_unified.h			\
		xend_internal.c xend_internal.h			\
		xm_internal.c xm_internal.h			\
		xs_internal.c xs_internal.h
116 117 118
if WITH_XEN_INOTIFY
XEN_DRIVER_SOURCES += xen_inotify.c xen_inotify.h
endif
119 120

LXC_DRIVER_SOURCES =						\
D
Daniel Veillard 已提交
121
		lxc_conf.c lxc_conf.h				\
R
Richard W.M. Jones 已提交
122
		lxc_container.c lxc_container.h			\
123
		lxc_driver.c lxc_driver.h			\
D
Dan Smith 已提交
124 125
		veth.c veth.h					\
		cgroup.c cgroup.h
126

127 128 129 130
LXC_CONTROLLER_SOURCES =					\
		lxc_conf.c lxc_conf.h				\
		lxc_container.c lxc_container.h			\
		lxc_controller.c				\
D
Dan Smith 已提交
131 132
		veth.c veth.h                                   \
		cgroup.c cgroup.h
133

134 135 136
PHYP_DRIVER_SOURCES =						\
		phyp/phyp_driver.c phyp/phyp_driver.h

137 138 139
OPENVZ_DRIVER_SOURCES =						\
		openvz_conf.c openvz_conf.h			\
		openvz_driver.c openvz_driver.h
140

141 142 143
VBOX_DRIVER_SOURCES =						\
        vbox/vbox_XPCOMCGlue.c vbox/vbox_XPCOMCGlue.h		\
        vbox/vbox_driver.c vbox/vbox_driver.h			\
144 145
        vbox/vbox_V2_2.c vbox/vbox_CAPI_v2_2.h			\
        vbox/vbox_V3_0.c vbox/vbox_CAPI_v3_0.h
146

147 148
VBOX_DRIVER_EXTRA_DIST = vbox/vbox_tmpl.c vbox/README

149 150
QEMU_DRIVER_SOURCES =						\
		qemu_conf.c qemu_conf.h				\
151 152
		qemu_driver.c qemu_driver.h			\
		cgroup.c cgroup.h
R
Richard W.M. Jones 已提交
153

154 155 156 157
UML_DRIVER_SOURCES =						\
		uml_conf.c uml_conf.h				\
		uml_driver.c uml_driver.h

158 159 160 161 162 163
ONE_DRIVER_SOURCES =						\
		./opennebula/one_conf.c				\
		./opennebula/one_conf.h				\
		./opennebula/one_driver.c			\
		./opennebula/one_driver.h			\
		./opennebula/one_client.c			\
164
		./opennebula/one_client.h
D
Daniel Veillard 已提交
165

166 167 168 169
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			\
170 171 172 173
		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

174 175
NETWORK_DRIVER_SOURCES =					\
		network_driver.h network_driver.c
176

177 178 179
INTERFACE_DRIVER_SOURCES =					\
		interface_driver.h interface_driver.c

180
# Storage backend specific impls
181
STORAGE_DRIVER_SOURCES =					\
182 183
		storage_driver.h storage_driver.c		\
		storage_backend.h storage_backend.c
184

185 186 187 188
# Network driver generic impl APIs
NODE_DEVICE_CONF_SOURCES =					\
		node_device_conf.c node_device_conf.h

189
STORAGE_DRIVER_FS_SOURCES =					\
R
Richard W.M. Jones 已提交
190 191
		storage_backend_fs.h storage_backend_fs.c

192
STORAGE_DRIVER_LVM_SOURCES =					\
193
		storage_backend_logical.h			\
194 195 196 197 198
		storage_backend_logical.c

STORAGE_DRIVER_ISCSI_SOURCES =					\
		storage_backend_iscsi.h storage_backend_iscsi.c

199 200 201
STORAGE_DRIVER_SCSI_SOURCES =					\
		storage_backend_scsi.h storage_backend_scsi.c

202 203 204 205 206 207 208
STORAGE_DRIVER_DISK_SOURCES =					\
		storage_backend_disk.h storage_backend_disk.c

STORAGE_HELPER_DISK_SOURCES =					\
		parthelper.c


209
# Security framework and drivers for various models
210
SECURITY_DRIVER_SOURCES =					\
211 212
		security.h security.c

213 214 215
SECURITY_DRIVER_SELINUX_SOURCES =				\
		security_selinux.h security_selinux.c

216

217 218 219 220
NODE_DEVICE_DRIVER_SOURCES =					\
		node_device.c node_device.h

NODE_DEVICE_DRIVER_HAL_SOURCES =				\
221
		node_device_hal.c				\
D
Daniel P. Berrange 已提交
222
		node_device_hal.h				\
223 224
		node_device_hal_linux.c

225 226 227
NODE_DEVICE_DRIVER_DEVKIT_SOURCES =				\
		node_device_devkit.c

228 229 230 231 232 233 234

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

235 236 237 238
noinst_LTLIBRARIES = libvirt_util.la
libvirt_la_LIBADD = libvirt_util.la
libvirt_util_la_SOURCES =					\
		$(UTIL_SOURCES)
239 240
libvirt_util_la_CFLAGS =  $(CAPNG_CFLAGS)
libvirt_util_la_LDFLAGS =  $(CAPNG_LIBS)
241 242 243 244 245

noinst_LTLIBRARIES += libvirt_driver.la
libvirt_la_LIBADD += libvirt_driver.la
libvirt_driver_la_SOURCES =					\
		$(DRIVER_SOURCES)				\
246 247
		$(DOMAIN_CONF_SOURCES)				\
		$(NETWORK_CONF_SOURCES)				\
248
		$(STORAGE_CONF_SOURCES)				\
249
		$(INTERFACE_CONF_SOURCES)			\
250 251
		$(NODE_DEVICE_CONF_SOURCES)

252 253
libvirt_driver_la_CFLAGS = $(XEN_CFLAGS) $(NUMACTL_CFLAGS)
libvirt_driver_la_LDFLAGS = $(XEN_LIBS) $(NUMACTL_LIBS)
254

255
USED_SYM_FILES = libvirt_private.syms
256

257
if WITH_TEST
258 259 260
if WITH_DRIVER_MODULES
mod_LTLIBRARIES += libvirt_driver_test.la
else
261 262
noinst_LTLIBRARIES += libvirt_driver_test.la
libvirt_la_LIBADD += libvirt_driver_test.la
263 264 265 266
endif
if WITH_DRIVER_MODULES
libvirt_driver_test_la_LDFLAGS = -module -avoid-version
endif
267
libvirt_driver_test_la_SOURCES = $(TEST_DRIVER_SOURCES)
268 269 270
endif

if WITH_REMOTE
271 272 273
if WITH_DRIVER_MODULES
mod_LTLIBRARIES += libvirt_driver_remote.la
else
274 275
noinst_LTLIBRARIES += libvirt_driver_remote.la
libvirt_la_LIBADD += libvirt_driver_remote.la
276
endif
277 278 279 280 281 282
libvirt_driver_remote_la_CFLAGS =				\
		$(GNUTLS_CFLAGS)				\
		$(SASL_CFLAGS)
libvirt_driver_remote_la_LDFLAGS =				\
		$(GNUTLS_LIBS)					\
		$(SASL_LIBS)
283 284 285
if WITH_DRIVER_MODULES
libvirt_driver_remote_la_LDFLAGS += -module -avoid-version
endif
286
libvirt_driver_remote_la_SOURCES = $(REMOTE_DRIVER_SOURCES)
287 288 289
endif

if WITH_XEN
290 291 292
if WITH_DRIVER_MODULES
mod_LTLIBRARIES += libvirt_driver_xen.la
else
293 294
noinst_LTLIBRARIES += libvirt_driver_xen.la
libvirt_la_LIBADD += libvirt_driver_xen.la
295
endif
296 297
libvirt_driver_xen_la_CFLAGS = $(XEN_CFLAGS)
libvirt_driver_xen_la_LDFLAGS = $(XEN_LIBS)
298 299 300
if WITH_DRIVER_MODULES
libvirt_driver_xen_la_LDFLAGS += -module -avoid-version
endif
301
libvirt_driver_xen_la_SOURCES = $(XEN_DRIVER_SOURCES)
302 303
endif

304 305 306 307 308 309 310 311 312 313 314 315
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
libvirt_driver_phyp_la_LDFLAGS = $(LIBSSH_LIBS)
libvirt_driver_phyp_la_CFLAGS = $(LIBSSH_CFLAGS)
libvirt_driver_phyp_la_SOURCES = $(PHYP_DRIVER_SOURCES)
endif

316
if WITH_OPENVZ
317 318 319
if WITH_DRIVER_MODULES
mod_LTLIBRARIES += libvirt_driver_openvz.la
else
320 321
noinst_LTLIBRARIES += libvirt_driver_openvz.la
libvirt_la_LIBADD += libvirt_driver_openvz.la
322 323 324 325
endif
if WITH_DRIVER_MODULES
libvirt_driver_openvz_la_LDFLAGS = -module -avoid-version
endif
326
libvirt_driver_openvz_la_SOURCES = $(OPENVZ_DRIVER_SOURCES)
327 328
endif

329 330 331 332 333 334 335 336 337 338 339 340 341
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

342
if WITH_QEMU
343 344 345
if WITH_DRIVER_MODULES
mod_LTLIBRARIES += libvirt_driver_qemu.la
else
346
noinst_LTLIBRARIES += libvirt_driver_qemu.la
347 348
# Stateful, so linked to daemon instead
#libvirt_la_LIBADD += libvirt_driver_qemu.la
349
endif
350 351
libvirt_driver_qemu_la_CFLAGS = $(NUMACTL_CFLAGS)
libvirt_driver_qemu_la_LDFLAGS = $(NUMACTL_LIBS)
352 353 354
if WITH_DRIVER_MODULES
libvirt_driver_qemu_la_LDFLAGS += -module -avoid-version
endif
355
libvirt_driver_qemu_la_SOURCES = $(QEMU_DRIVER_SOURCES)
356 357 358
endif

if WITH_LXC
359 360 361
if WITH_DRIVER_MODULES
mod_LTLIBRARIES += libvirt_driver_lxc.la
else
362
noinst_LTLIBRARIES += libvirt_driver_lxc.la
363 364
# Stateful, so linked to daemon instead
#libvirt_la_LIBADD += libvirt_driver_lxc.la
365 366 367 368
endif
if WITH_DRIVER_MODULES
libvirt_driver_lxc_la_LDFLAGS = -module -avoid-version
endif
369
libvirt_driver_lxc_la_SOURCES = $(LXC_DRIVER_SOURCES)
370 371
endif

372
if WITH_UML
373 374 375
if WITH_DRIVER_MODULES
mod_LTLIBRARIES += libvirt_driver_uml.la
else
376 377 378
noinst_LTLIBRARIES += libvirt_driver_uml.la
# Stateful, so linked to daemon instead
#libvirt_la_LIBADD += libvirt_driver_uml.la
379 380 381 382 383 384
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
385 386
libvirt_driver_uml_la_SOURCES = $(UML_DRIVER_SOURCES)
endif
387

D
Daniel Veillard 已提交
388 389 390 391 392 393 394 395
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
396
libvirt_driver_one_la_CFLAGS = $(ONE_LIBS)
D
Daniel Veillard 已提交
397 398 399 400 401 402 403 404 405 406 407
libvirt_driver_one_la_LDFLAGS = $(ONE_LIBS)
#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




408 409 410 411 412 413 414 415 416 417 418 419 420 421 422
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

423
if WITH_NETWORK
424 425 426
if WITH_DRIVER_MODULES
mod_LTLIBRARIES += libvirt_driver_network.la
else
427
noinst_LTLIBRARIES += libvirt_driver_network.la
428 429
# Stateful, so linked to daemon instead
#libvirt_la_LIBADD += libvirt_driver_network.la
430 431 432 433
endif
if WITH_DRIVER_MODULES
libvirt_driver_network_la_LDFLAGS = -module -avoid-version
endif
434
libvirt_driver_network_la_SOURCES = $(NETWORK_DRIVER_SOURCES)
435 436
endif

D
Daniel Veillard 已提交
437 438
if WITH_NETCF
libvirt_driver_interface_la_LDFLAGS = $(NETCF_LIBS)
439 440 441 442 443 444 445 446 447 448 449
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 已提交
450 451
endif

452 453
# Needed to keep automake quiet about conditionals
libvirt_driver_storage_la_SOURCES =
454
if WITH_STORAGE_DIR
455 456 457
if WITH_DRIVER_MODULES
mod_LTLIBRARIES += libvirt_driver_storage.la
else
458
noinst_LTLIBRARIES += libvirt_driver_storage.la
459 460
# Stateful, so linked to daemon instead
#libvirt_la_LIBADD += libvirt_driver_storage.la
461 462 463 464
endif
if WITH_DRIVER_MODULES
libvirt_driver_storage_la_LDFLAGS = -module -avoid-version
endif
465 466
libvirt_driver_storage_la_SOURCES += $(STORAGE_DRIVER_SOURCES)
libvirt_driver_storage_la_SOURCES += $(STORAGE_DRIVER_FS_SOURCES)
467 468
endif

469
if WITH_STORAGE_LVM
470
libvirt_driver_storage_la_SOURCES += $(STORAGE_DRIVER_LVM_SOURCES)
471 472
endif

473
if WITH_STORAGE_ISCSI
474
libvirt_driver_storage_la_SOURCES += $(STORAGE_DRIVER_ISCSI_SOURCES)
475 476
endif

477 478 479 480
if WITH_STORAGE_SCSI
libvirt_driver_storage_la_SOURCES += $(STORAGE_DRIVER_SCSI_SOURCES)
endif

481
if WITH_STORAGE_DISK
482
libvirt_driver_storage_la_SOURCES += $(STORAGE_DRIVER_DISK_SOURCES)
483
endif
484

485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514
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


515 516 517
libvirt_driver_security_la_SOURCES = $(SECURITY_DRIVER_SOURCES)
noinst_LTLIBRARIES += libvirt_driver_security.la
libvirt_la_LIBADD += libvirt_driver_security.la
518 519 520
if WITH_SECDRIVER_SELINUX
libvirt_driver_security_la_SOURCES += $(SECURITY_DRIVER_SELINUX_SOURCES)
endif
521

522 523 524 525 526 527 528
# Add all conditional sources just in case...
EXTRA_DIST +=							\
		$(TEST_DRIVER_SOURCES)				\
		$(REMOTE_DRIVER_SOURCES)			\
		$(XEN_DRIVER_SOURCES)				\
		$(QEMU_DRIVER_SOURCES)				\
		$(LXC_DRIVER_SOURCES)				\
529
		$(UML_DRIVER_SOURCES)				\
D
Daniel Veillard 已提交
530
		$(ONE_DRIVER_SOURCES)				\
531
		$(OPENVZ_DRIVER_SOURCES)			\
532
		$(PHYP_DRIVER_SOURCES)				\
533
		$(VBOX_DRIVER_SOURCES)				\
534
		$(ESX_DRIVER_SOURCES)				\
535
		$(NETWORK_DRIVER_SOURCES)			\
536
		$(INTERFACE_DRIVER_SOURCES)			\
537 538 539 540
		$(STORAGE_DRIVER_SOURCES)			\
		$(STORAGE_DRIVER_FS_SOURCES)			\
		$(STORAGE_DRIVER_LVM_SOURCES)			\
		$(STORAGE_DRIVER_ISCSI_SOURCES)			\
541
		$(STORAGE_DRIVER_SCSI_SOURCES)			\
542 543 544
		$(STORAGE_DRIVER_DISK_SOURCES)			\
		$(NODE_DEVICE_DRIVER_SOURCES)			\
		$(NODE_DEVICE_DRIVER_HAL_SOURCES)		\
545
		$(NODE_DEVICE_DRIVER_DEVKIT_SOURCES)		\
546
		$(SECURITY_DRIVER_SELINUX_SOURCES)		\
547
		$(VBOX_DRIVER_EXTRA_DIST)
548

549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567
#
# 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.
#

568
if WITH_DRIVER_MODULES
569
USED_SYM_FILES += libvirt_driver_modules.syms
570
endif
571 572

if WITH_BRIDGE
573
USED_SYM_FILES += libvirt_bridge.syms
574
endif
575 576

if WITH_LINUX
577
USED_SYM_FILES += libvirt_linux.syms
578
endif
579

580 581 582 583 584 585
EXTRA_DIST += \
  libvirt_public.syms		\
  libvirt_private.syms		\
  libvirt_driver_modules.syms	\
  libvirt_bridge.syms		\
  libvirt_linux.syms
586

587
libvirt.syms: libvirt_public.syms $(USED_SYM_FILES)
588 589 590 591 592 593
	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
594
	for file in $(USED_SYM_FILES); do \
595 596 597 598 599
	    cat $(srcdir)/$$file >>$@-tmp; \
	done
	printf '\n\nlocal:\n*;\n\n};' >>$@-tmp
	chmod a-w $@-tmp
	mv $@-tmp libvirt.syms
600

601 602
# Empty source list - it merely links a bunch of convenience libs together
libvirt_la_SOURCES =
603
libvirt_la_LIBADD += \
604
		    @CYGWIN_EXTRA_LIBADD@ ../gnulib/lib/libgnu.la
605
libvirt_la_LDFLAGS = $(VERSION_SCRIPT_FLAGS)libvirt.syms \
606 607
                     -version-info @LIBVIRT_VERSION_INFO@ \
                    $(COVERAGE_CFLAGS:-f%=-Wc,-f%) \
608
                    $(LIBXML_LIBS) $(SELINUX_LIBS) \
609
		    $(XEN_LIBS) $(DRIVER_MODULE_LIBS) \
610
		    @CYGWIN_EXTRA_LDFLAGS@ @MINGW_EXTRA_LDFLAGS@
611
libvirt_la_CFLAGS = $(COVERAGE_CFLAGS) -DIN_LIBVIRT
612
libvirt_la_DEPENDENCIES = $(libvirt_la_LIBADD) libvirt.syms
613

614 615 616
# 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.
617
noinst_LTLIBRARIES += libvirt_test.la
618

619
# Remove version script from convenience library
620 621
test_LDFLAGS =						\
  $$(echo '$(libvirt_la_LDFLAGS)'			\
622
     |sed 's!@VERSION_SCRIPT_FLAGS@libvirt.syms!!'	\
623 624 625 626 627 628 629 630
     |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 已提交
631
bin_PROGRAMS = virsh
632

633 634 635 636
virsh_SOURCES =							\
		console.c console.h				\
		virsh.c

637
virsh_LDFLAGS = $(WARN_CFLAGS) $(COVERAGE_LDFLAGS)
638 639
virsh_LDADD =							\
		$(STATIC_BINARIES)				\
640
		$(WARN_CFLAGS)					\
641
		$(NUMACTL_LIBS)					\
642 643 644
		libvirt.la					\
		../gnulib/lib/libgnu.la				\
		$(VIRSH_LIBS)
645
virsh_CFLAGS = $(COVERAGE_CFLAGS) $(READLINE_CFLAGS) $(NUMACTL_CFLAGS)
646
BUILT_SOURCES = virsh-net-edit.c virsh-pool-edit.c libvirt.syms
647 648 649 650 651 652 653 654 655 656

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' \
657
	      -e 's/int flags.*/int flags = 0;/g' \
658 659 660 661 662 663 664 665 666 667 668 669 670
	>> $@-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 已提交
671
	      -e 's/(ctl, cmd, NULL);/(ctl, cmd, "pool", NULL);/' \
672 673 674 675
	      -e 's/Domain/StoragePool/g' \
	      -e 's/cmdEdit/cmdPoolEdit/g' \
	      -e 's/\(virStoragePoolDefineXML.*\));/\1, 0);/' \
	      -e 's/dom/pool/g' \
676
	      -e 's/int flags.*/int flags = 0;/g' \
677 678 679 680
	>> $@-tmp
	chmod a-w $@-tmp
	rm -f $@
	mv $@-tmp $@
681

682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707
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

708 709
libexec_PROGRAMS =

710
if WITH_STORAGE_DISK
R
Richard W.M. Jones 已提交
711
if WITH_LIBVIRTD
712
libexec_PROGRAMS += libvirt_parthelper
713

714
libvirt_parthelper_SOURCES = $(STORAGE_HELPER_DISK_SOURCES)
715 716 717
libvirt_parthelper_LDFLAGS = $(WARN_CFLAGS) $(COVERAGE_LDCFLAGS)
libvirt_parthelper_LDADD = $(LIBPARTED_LIBS)
libvirt_parthelper_CFLAGS =  $(LIBPARTED_CFLAGS)
R
Richard W.M. Jones 已提交
718
endif
719
endif
720 721
EXTRA_DIST += $(STORAGE_HELPER_DISK_SOURCES)

722

723 724 725 726 727 728
if WITH_LXC
if WITH_LIBVIRTD
libexec_PROGRAMS += libvirt_lxc

libvirt_lxc_SOURCES =						\
		$(LXC_CONTROLLER_SOURCES)			\
729
		$(UTIL_SOURCES)					\
730
		$(DOMAIN_CONF_SOURCES)
731
libvirt_lxc_LDFLAGS = $(WARN_CFLAGS) $(COVERAGE_LDCFLAGS) $(CAPNG_LIBS)
732
libvirt_lxc_LDADD = $(LIBXML_LIBS) $(NUMACTL_LIBS) ../gnulib/lib/libgnu.la
733
libvirt_lxc_CFLAGS =  $(LIBPARTED_CFLAGS) $(NUMACTL_CFLAGS) $(CAPNG_CFLAGS)
734 735 736 737
endif
endif
EXTRA_DIST += $(LXC_CONTROLLER_SOURCES)

R
Richard W.M. Jones 已提交
738
install-exec-local:
739 740 741 742 743 744
	$(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"
745
	$(MKDIR_P) "$(DESTDIR)$(localstatedir)/cache/libvirt/qemu"
746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761
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 已提交
762

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