Makefile.am 21.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 7
	   -I@top_srcdir@/include \
	   -I@top_srcdir@/qemud \
8
	   $(LIBXML_CFLAGS) \
9
	   $(LIBSSH2_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

D
Dave Allan 已提交
202 203 204
STORAGE_DRIVER_MPATH_SOURCES =					\
		storage_backend_mpath.h storage_backend_mpath.c

205 206 207 208 209 210 211
STORAGE_DRIVER_DISK_SOURCES =					\
		storage_backend_disk.h storage_backend_disk.c

STORAGE_HELPER_DISK_SOURCES =					\
		parthelper.c


212
# Security framework and drivers for various models
213
SECURITY_DRIVER_SOURCES =					\
214 215
		security.h security.c

216 217 218
SECURITY_DRIVER_SELINUX_SOURCES =				\
		security_selinux.h security_selinux.c

219

220 221 222 223
NODE_DEVICE_DRIVER_SOURCES =					\
		node_device.c node_device.h

NODE_DEVICE_DRIVER_HAL_SOURCES =				\
224
		node_device_hal.c				\
D
Daniel P. Berrange 已提交
225
		node_device_hal.h				\
226 227
		node_device_hal_linux.c

228 229 230
NODE_DEVICE_DRIVER_DEVKIT_SOURCES =				\
		node_device_devkit.c

231 232 233 234 235 236 237

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

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

noinst_LTLIBRARIES += libvirt_driver.la
libvirt_la_LIBADD += libvirt_driver.la
libvirt_driver_la_SOURCES =					\
		$(DRIVER_SOURCES)				\
249 250
		$(DOMAIN_CONF_SOURCES)				\
		$(NETWORK_CONF_SOURCES)				\
251
		$(STORAGE_CONF_SOURCES)				\
252
		$(INTERFACE_CONF_SOURCES)			\
253 254
		$(NODE_DEVICE_CONF_SOURCES)

255 256
libvirt_driver_la_CFLAGS = $(XEN_CFLAGS) $(NUMACTL_CFLAGS)
libvirt_driver_la_LDFLAGS = $(XEN_LIBS) $(NUMACTL_LIBS)
257

258
USED_SYM_FILES = libvirt_private.syms
259

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

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

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

307 308 309 310 311 312 313
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
314 315
libvirt_driver_phyp_la_LDFLAGS = $(LIBSSH2_LIBS)
libvirt_driver_phyp_la_CFLAGS = $(LIBSSH2_CFLAGS)
316 317 318
libvirt_driver_phyp_la_SOURCES = $(PHYP_DRIVER_SOURCES)
endif

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

332 333 334 335 336 337 338 339 340 341 342 343 344
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

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

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

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

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




411 412 413 414 415 416 417 418 419 420 421 422 423 424 425
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

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

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

455 456
# Needed to keep automake quiet about conditionals
libvirt_driver_storage_la_SOURCES =
D
Dave Allan 已提交
457
libvirt_driver_storage_la_CFLAGS =
458
if WITH_STORAGE_DIR
459 460 461
if WITH_DRIVER_MODULES
mod_LTLIBRARIES += libvirt_driver_storage.la
else
462
noinst_LTLIBRARIES += libvirt_driver_storage.la
463 464
# Stateful, so linked to daemon instead
#libvirt_la_LIBADD += libvirt_driver_storage.la
465 466 467 468
endif
if WITH_DRIVER_MODULES
libvirt_driver_storage_la_LDFLAGS = -module -avoid-version
endif
469 470
libvirt_driver_storage_la_SOURCES += $(STORAGE_DRIVER_SOURCES)
libvirt_driver_storage_la_SOURCES += $(STORAGE_DRIVER_FS_SOURCES)
471 472
endif

473
if WITH_STORAGE_LVM
474
libvirt_driver_storage_la_SOURCES += $(STORAGE_DRIVER_LVM_SOURCES)
475 476
endif

477
if WITH_STORAGE_ISCSI
478
libvirt_driver_storage_la_SOURCES += $(STORAGE_DRIVER_ISCSI_SOURCES)
479 480
endif

481 482 483 484
if WITH_STORAGE_SCSI
libvirt_driver_storage_la_SOURCES += $(STORAGE_DRIVER_SCSI_SOURCES)
endif

D
Dave Allan 已提交
485 486 487 488 489
if WITH_STORAGE_MPATH
libvirt_driver_storage_la_SOURCES += $(STORAGE_DRIVER_MPATH_SOURCES)
libvirt_driver_storage_la_CFLAGS += $(DEVMAPPER_CFLAGS)
endif

490
if WITH_STORAGE_DISK
491
libvirt_driver_storage_la_SOURCES += $(STORAGE_DRIVER_DISK_SOURCES)
492
endif
493

494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523
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


524 525 526
libvirt_driver_security_la_SOURCES = $(SECURITY_DRIVER_SOURCES)
noinst_LTLIBRARIES += libvirt_driver_security.la
libvirt_la_LIBADD += libvirt_driver_security.la
527 528 529
if WITH_SECDRIVER_SELINUX
libvirt_driver_security_la_SOURCES += $(SECURITY_DRIVER_SELINUX_SOURCES)
endif
530

531 532 533 534 535 536 537
# Add all conditional sources just in case...
EXTRA_DIST +=							\
		$(TEST_DRIVER_SOURCES)				\
		$(REMOTE_DRIVER_SOURCES)			\
		$(XEN_DRIVER_SOURCES)				\
		$(QEMU_DRIVER_SOURCES)				\
		$(LXC_DRIVER_SOURCES)				\
538
		$(UML_DRIVER_SOURCES)				\
D
Daniel Veillard 已提交
539
		$(ONE_DRIVER_SOURCES)				\
540
		$(OPENVZ_DRIVER_SOURCES)			\
541
		$(PHYP_DRIVER_SOURCES)				\
542
		$(VBOX_DRIVER_SOURCES)				\
543
		$(ESX_DRIVER_SOURCES)				\
544
		$(NETWORK_DRIVER_SOURCES)			\
545
		$(INTERFACE_DRIVER_SOURCES)			\
546 547 548 549
		$(STORAGE_DRIVER_SOURCES)			\
		$(STORAGE_DRIVER_FS_SOURCES)			\
		$(STORAGE_DRIVER_LVM_SOURCES)			\
		$(STORAGE_DRIVER_ISCSI_SOURCES)			\
550
		$(STORAGE_DRIVER_SCSI_SOURCES)			\
D
Dave Allan 已提交
551
		$(STORAGE_DRIVER_MPATH_SOURCES)			\
552 553 554
		$(STORAGE_DRIVER_DISK_SOURCES)			\
		$(NODE_DEVICE_DRIVER_SOURCES)			\
		$(NODE_DEVICE_DRIVER_HAL_SOURCES)		\
555
		$(NODE_DEVICE_DRIVER_DEVKIT_SOURCES)		\
556
		$(SECURITY_DRIVER_SELINUX_SOURCES)		\
557
		$(VBOX_DRIVER_EXTRA_DIST)
558

559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577
#
# 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.
#

578
if WITH_DRIVER_MODULES
579
USED_SYM_FILES += libvirt_driver_modules.syms
580
endif
581 582

if WITH_BRIDGE
583
USED_SYM_FILES += libvirt_bridge.syms
584
endif
585 586

if WITH_LINUX
587
USED_SYM_FILES += libvirt_linux.syms
588
endif
589

590 591 592 593 594 595
EXTRA_DIST += \
  libvirt_public.syms		\
  libvirt_private.syms		\
  libvirt_driver_modules.syms	\
  libvirt_bridge.syms		\
  libvirt_linux.syms
596

597
libvirt.syms: libvirt_public.syms $(USED_SYM_FILES)
598 599 600 601 602 603
	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
604
	for file in $(USED_SYM_FILES); do \
605 606 607 608 609
	    cat $(srcdir)/$$file >>$@-tmp; \
	done
	printf '\n\nlocal:\n*;\n\n};' >>$@-tmp
	chmod a-w $@-tmp
	mv $@-tmp libvirt.syms
610

611 612
# Empty source list - it merely links a bunch of convenience libs together
libvirt_la_SOURCES =
613
libvirt_la_LIBADD += \
614
		    @CYGWIN_EXTRA_LIBADD@ ../gnulib/lib/libgnu.la
615
libvirt_la_LDFLAGS = $(VERSION_SCRIPT_FLAGS)libvirt.syms \
616 617
                     -version-info @LIBVIRT_VERSION_INFO@ \
                    $(COVERAGE_CFLAGS:-f%=-Wc,-f%) \
618
                    $(LIBXML_LIBS) $(SELINUX_LIBS) \
619
		    $(XEN_LIBS) $(DRIVER_MODULE_LIBS) \
D
Dave Allan 已提交
620
		    $(DEVMAPPER_LIBS) \
621
		    @CYGWIN_EXTRA_LDFLAGS@ @MINGW_EXTRA_LDFLAGS@
622
libvirt_la_CFLAGS = $(COVERAGE_CFLAGS) -DIN_LIBVIRT
623
libvirt_la_DEPENDENCIES = $(libvirt_la_LIBADD) libvirt.syms
624

625 626 627
# 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.
628
noinst_LTLIBRARIES += libvirt_test.la
629

630
# Remove version script from convenience library
631 632
test_LDFLAGS =						\
  $$(echo '$(libvirt_la_LDFLAGS)'			\
633
     |sed 's!@VERSION_SCRIPT_FLAGS@libvirt.syms!!'	\
634 635 636 637 638 639 640 641
     |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 已提交
642
bin_PROGRAMS = virsh
643

644 645 646 647
virsh_SOURCES =							\
		console.c console.h				\
		virsh.c

648
virsh_LDFLAGS = $(WARN_CFLAGS) $(COVERAGE_LDFLAGS)
649 650
virsh_LDADD =							\
		$(STATIC_BINARIES)				\
651
		$(WARN_CFLAGS)					\
652
		$(NUMACTL_LIBS)					\
653 654 655
		libvirt.la					\
		../gnulib/lib/libgnu.la				\
		$(VIRSH_LIBS)
656
virsh_CFLAGS = $(COVERAGE_CFLAGS) $(READLINE_CFLAGS) $(NUMACTL_CFLAGS)
657
BUILT_SOURCES = virsh-net-edit.c virsh-pool-edit.c libvirt.syms
658 659 660 661 662 663 664 665 666 667

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' \
668
	      -e 's/int flags.*/int flags = 0;/g' \
669 670 671 672 673 674 675 676 677 678 679 680 681
	>> $@-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 已提交
682
	      -e 's/(ctl, cmd, NULL);/(ctl, cmd, "pool", NULL);/' \
683 684 685 686
	      -e 's/Domain/StoragePool/g' \
	      -e 's/cmdEdit/cmdPoolEdit/g' \
	      -e 's/\(virStoragePoolDefineXML.*\));/\1, 0);/' \
	      -e 's/dom/pool/g' \
687
	      -e 's/int flags.*/int flags = 0;/g' \
688 689 690 691
	>> $@-tmp
	chmod a-w $@-tmp
	rm -f $@
	mv $@-tmp $@
692

693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718
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

719 720
libexec_PROGRAMS =

721
if WITH_STORAGE_DISK
R
Richard W.M. Jones 已提交
722
if WITH_LIBVIRTD
723
libexec_PROGRAMS += libvirt_parthelper
724

725
libvirt_parthelper_SOURCES = $(STORAGE_HELPER_DISK_SOURCES)
726 727 728
libvirt_parthelper_LDFLAGS = $(WARN_CFLAGS) $(COVERAGE_LDCFLAGS)
libvirt_parthelper_LDADD = $(LIBPARTED_LIBS)
libvirt_parthelper_CFLAGS =  $(LIBPARTED_CFLAGS)
R
Richard W.M. Jones 已提交
729
endif
730
endif
731 732
EXTRA_DIST += $(STORAGE_HELPER_DISK_SOURCES)

733

734 735 736 737 738 739
if WITH_LXC
if WITH_LIBVIRTD
libexec_PROGRAMS += libvirt_lxc

libvirt_lxc_SOURCES =						\
		$(LXC_CONTROLLER_SOURCES)			\
740
		$(UTIL_SOURCES)					\
741
		$(DOMAIN_CONF_SOURCES)
742
libvirt_lxc_LDFLAGS = $(WARN_CFLAGS) $(COVERAGE_LDCFLAGS) $(CAPNG_LIBS)
743
libvirt_lxc_LDADD = $(LIBXML_LIBS) $(NUMACTL_LIBS) ../gnulib/lib/libgnu.la
744
libvirt_lxc_CFLAGS =  $(LIBPARTED_CFLAGS) $(NUMACTL_CFLAGS) $(CAPNG_CFLAGS)
745 746 747 748
endif
endif
EXTRA_DIST += $(LXC_CONTROLLER_SOURCES)

R
Richard W.M. Jones 已提交
749
install-exec-local:
750 751 752 753 754 755
	$(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"
756
	$(MKDIR_P) "$(DESTDIR)$(localstatedir)/cache/libvirt/qemu"
757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772
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 已提交
773

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