Makefile.am 21.5 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 56 57
		threads.c threads.h				\
		threads-pthread.h				\
		threads-win32.h					\
58 59
		uuid.c uuid.h					\
		util.c util.h					\
60
		virterror.c virterror_internal.h		\
61 62
		xml.c xml.h

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

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


75 76 77 78 79 80 81 82 83 84 85 86
# 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 =						\
87
		storage_conf.h storage_conf.c
88

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

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

# 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
115 116 117
if WITH_XEN_INOTIFY
XEN_DRIVER_SOURCES += xen_inotify.c xen_inotify.h
endif
118 119

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

STORAGE_DRIVER_ISCSI_SOURCES =					\
		storage_backend_iscsi.h storage_backend_iscsi.c

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

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

STORAGE_HELPER_DISK_SOURCES =					\
		parthelper.c


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

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

215

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

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

224 225 226
NODE_DEVICE_DRIVER_DEVKIT_SOURCES =				\
		node_device_devkit.c

227 228 229 230 231 232 233

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

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

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

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

254
USED_SYM_FILES = libvirt_private.syms
255

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

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

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

303 304 305 306 307 308 309 310 311 312 313 314
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

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

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

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

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

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

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




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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

707 708
libexec_PROGRAMS =

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

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

721

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

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

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

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