Makefile.am 21.1 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
	   $(XEN_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
		qparams.c qparams.h				\
54 55 56
		threads.c threads.h				\
		threads-pthread.h				\
		threads-win32.h					\
57 58
		uuid.c uuid.h					\
		util.c util.h					\
59
		virterror.c virterror_internal.h		\
60 61
		xml.c xml.h

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

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


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

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

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

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

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

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

132 133 134
OPENVZ_DRIVER_SOURCES =						\
		openvz_conf.c openvz_conf.h			\
		openvz_driver.c openvz_driver.h
135

136 137 138
VBOX_DRIVER_SOURCES =                                 \
        vbox/vbox_XPCOMCGlue.c vbox/vbox_XPCOMCGlue.h \
        vbox/vbox_driver.c vbox/vbox_driver.h         \
139
        vbox/vbox_V2_2.c vbox/vbox_CAPI_v2_2.h
140

141 142
VBOX_DRIVER_EXTRA_DIST = vbox/vbox_tmpl.c vbox/README

143 144
QEMU_DRIVER_SOURCES =						\
		qemu_conf.c qemu_conf.h				\
145 146
		qemu_driver.c qemu_driver.h			\
		cgroup.c cgroup.h
R
Richard W.M. Jones 已提交
147

148 149 150 151
UML_DRIVER_SOURCES =						\
		uml_conf.c uml_conf.h				\
		uml_driver.c uml_driver.h

D
Daniel Veillard 已提交
152 153 154 155
ONE_DRIVER_SOURCES =					\
		./opennebula/one_conf.c			\
		./opennebula/one_conf.h			\
		./opennebula/one_driver.c		\
156 157 158
		./opennebula/one_driver.h		\
		./opennebula/one_client.c		\
		./opennebula/one_client.h
D
Daniel Veillard 已提交
159

160 161 162 163 164 165 166 167
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					\
		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

168 169
NETWORK_DRIVER_SOURCES =					\
		network_driver.h network_driver.c
170

171 172 173
INTERFACE_DRIVER_SOURCES =					\
		interface_driver.h interface_driver.c

174
# Storage backend specific impls
175
STORAGE_DRIVER_SOURCES =					\
176 177
		storage_driver.h storage_driver.c		\
		storage_backend.h storage_backend.c
178

179 180 181 182
# Network driver generic impl APIs
NODE_DEVICE_CONF_SOURCES =					\
		node_device_conf.c node_device_conf.h

183
STORAGE_DRIVER_FS_SOURCES =					\
R
Richard W.M. Jones 已提交
184 185
		storage_backend_fs.h storage_backend_fs.c

186
STORAGE_DRIVER_LVM_SOURCES =					\
187
		storage_backend_logical.h			\
188 189 190 191 192
		storage_backend_logical.c

STORAGE_DRIVER_ISCSI_SOURCES =					\
		storage_backend_iscsi.h storage_backend_iscsi.c

193 194 195
STORAGE_DRIVER_SCSI_SOURCES =					\
		storage_backend_scsi.h storage_backend_scsi.c

196 197 198 199 200 201 202
STORAGE_DRIVER_DISK_SOURCES =					\
		storage_backend_disk.h storage_backend_disk.c

STORAGE_HELPER_DISK_SOURCES =					\
		parthelper.c


203 204 205 206
# Security framework and drivers for various models
SECURITY_DRIVER_SOURCES =                                      \
		security.h security.c

207 208 209
SECURITY_DRIVER_SELINUX_SOURCES =				\
		security_selinux.h security_selinux.c

210

211 212 213 214
NODE_DEVICE_DRIVER_SOURCES =					\
		node_device.c node_device.h

NODE_DEVICE_DRIVER_HAL_SOURCES =				\
215
		node_device_hal.c				\
D
Daniel P. Berrange 已提交
216
		node_device_hal.h				\
217 218
		node_device_hal_linux.c

219 220 221
NODE_DEVICE_DRIVER_DEVKIT_SOURCES =				\
		node_device_devkit.c

222 223 224 225 226 227 228

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

229 230 231 232
noinst_LTLIBRARIES = libvirt_util.la
libvirt_la_LIBADD = libvirt_util.la
libvirt_util_la_SOURCES =					\
		$(UTIL_SOURCES)
233 234
libvirt_util_la_CFLAGS =  $(CAPNG_CFLAGS)
libvirt_util_la_LDFLAGS =  $(CAPNG_LIBS)
235 236 237 238 239

noinst_LTLIBRARIES += libvirt_driver.la
libvirt_la_LIBADD += libvirt_driver.la
libvirt_driver_la_SOURCES =					\
		$(DRIVER_SOURCES)				\
240 241
		$(DOMAIN_CONF_SOURCES)				\
		$(NETWORK_CONF_SOURCES)				\
242
		$(STORAGE_CONF_SOURCES)				\
243
		$(INTERFACE_CONF_SOURCES)			\
244 245
		$(NODE_DEVICE_CONF_SOURCES)

246 247
libvirt_driver_la_CFLAGS = $(XEN_CFLAGS) $(NUMACTL_CFLAGS)
libvirt_driver_la_LDFLAGS = $(XEN_LIBS) $(NUMACTL_LIBS)
248

249
USED_SYM_FILES = libvirt_private.syms
250

251
if WITH_TEST
252 253 254
if WITH_DRIVER_MODULES
mod_LTLIBRARIES += libvirt_driver_test.la
else
255 256
noinst_LTLIBRARIES += libvirt_driver_test.la
libvirt_la_LIBADD += libvirt_driver_test.la
257 258 259 260
endif
if WITH_DRIVER_MODULES
libvirt_driver_test_la_LDFLAGS = -module -avoid-version
endif
261
libvirt_driver_test_la_SOURCES = $(TEST_DRIVER_SOURCES)
262 263 264
endif

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

if WITH_XEN
284 285 286
if WITH_DRIVER_MODULES
mod_LTLIBRARIES += libvirt_driver_xen.la
else
287 288
noinst_LTLIBRARIES += libvirt_driver_xen.la
libvirt_la_LIBADD += libvirt_driver_xen.la
289
endif
290 291
libvirt_driver_xen_la_CFLAGS = $(XEN_CFLAGS)
libvirt_driver_xen_la_LDFLAGS = $(XEN_LIBS)
292 293 294
if WITH_DRIVER_MODULES
libvirt_driver_xen_la_LDFLAGS += -module -avoid-version
endif
295
libvirt_driver_xen_la_SOURCES = $(XEN_DRIVER_SOURCES)
296 297
endif

298
if WITH_OPENVZ
299 300 301
if WITH_DRIVER_MODULES
mod_LTLIBRARIES += libvirt_driver_openvz.la
else
302 303
noinst_LTLIBRARIES += libvirt_driver_openvz.la
libvirt_la_LIBADD += libvirt_driver_openvz.la
304 305 306 307
endif
if WITH_DRIVER_MODULES
libvirt_driver_openvz_la_LDFLAGS = -module -avoid-version
endif
308
libvirt_driver_openvz_la_SOURCES = $(OPENVZ_DRIVER_SOURCES)
309 310
endif

311 312 313 314 315 316 317 318 319 320 321 322 323
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

324
if WITH_QEMU
325 326 327
if WITH_DRIVER_MODULES
mod_LTLIBRARIES += libvirt_driver_qemu.la
else
328
noinst_LTLIBRARIES += libvirt_driver_qemu.la
329 330
# Stateful, so linked to daemon instead
#libvirt_la_LIBADD += libvirt_driver_qemu.la
331
endif
332 333
libvirt_driver_qemu_la_CFLAGS = $(NUMACTL_CFLAGS)
libvirt_driver_qemu_la_LDFLAGS = $(NUMACTL_LIBS)
334 335 336
if WITH_DRIVER_MODULES
libvirt_driver_qemu_la_LDFLAGS += -module -avoid-version
endif
337
libvirt_driver_qemu_la_SOURCES = $(QEMU_DRIVER_SOURCES)
338 339 340
endif

if WITH_LXC
341 342 343
if WITH_DRIVER_MODULES
mod_LTLIBRARIES += libvirt_driver_lxc.la
else
344
noinst_LTLIBRARIES += libvirt_driver_lxc.la
345 346
# Stateful, so linked to daemon instead
#libvirt_la_LIBADD += libvirt_driver_lxc.la
347 348 349 350
endif
if WITH_DRIVER_MODULES
libvirt_driver_lxc_la_LDFLAGS = -module -avoid-version
endif
351
libvirt_driver_lxc_la_SOURCES = $(LXC_DRIVER_SOURCES)
352 353
endif

354
if WITH_UML
355 356 357
if WITH_DRIVER_MODULES
mod_LTLIBRARIES += libvirt_driver_uml.la
else
358 359 360
noinst_LTLIBRARIES += libvirt_driver_uml.la
# Stateful, so linked to daemon instead
#libvirt_la_LIBADD += libvirt_driver_uml.la
361 362 363 364 365 366
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
367 368
libvirt_driver_uml_la_SOURCES = $(UML_DRIVER_SOURCES)
endif
369

D
Daniel Veillard 已提交
370 371 372 373 374 375 376 377
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
378
libvirt_driver_one_la_CFLAGS = $(ONE_LIBS)
D
Daniel Veillard 已提交
379 380 381 382 383 384 385 386 387 388 389
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




390 391 392 393 394 395 396 397 398 399 400 401 402 403 404
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

405
if WITH_NETWORK
406 407 408
if WITH_DRIVER_MODULES
mod_LTLIBRARIES += libvirt_driver_network.la
else
409
noinst_LTLIBRARIES += libvirt_driver_network.la
410 411
# Stateful, so linked to daemon instead
#libvirt_la_LIBADD += libvirt_driver_network.la
412 413 414 415
endif
if WITH_DRIVER_MODULES
libvirt_driver_network_la_LDFLAGS = -module -avoid-version
endif
416
libvirt_driver_network_la_SOURCES = $(NETWORK_DRIVER_SOURCES)
417 418
endif

D
Daniel Veillard 已提交
419 420
if WITH_NETCF
libvirt_driver_interface_la_LDFLAGS = $(NETCF_LIBS)
421 422 423 424 425 426 427 428 429 430 431
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 已提交
432 433
endif

434 435
# Needed to keep automake quiet about conditionals
libvirt_driver_storage_la_SOURCES =
436
if WITH_STORAGE_DIR
437 438 439
if WITH_DRIVER_MODULES
mod_LTLIBRARIES += libvirt_driver_storage.la
else
440
noinst_LTLIBRARIES += libvirt_driver_storage.la
441 442
# Stateful, so linked to daemon instead
#libvirt_la_LIBADD += libvirt_driver_storage.la
443 444 445 446
endif
if WITH_DRIVER_MODULES
libvirt_driver_storage_la_LDFLAGS = -module -avoid-version
endif
447 448
libvirt_driver_storage_la_SOURCES += $(STORAGE_DRIVER_SOURCES)
libvirt_driver_storage_la_SOURCES += $(STORAGE_DRIVER_FS_SOURCES)
449 450
endif

451
if WITH_STORAGE_LVM
452
libvirt_driver_storage_la_SOURCES += $(STORAGE_DRIVER_LVM_SOURCES)
453 454
endif

455
if WITH_STORAGE_ISCSI
456
libvirt_driver_storage_la_SOURCES += $(STORAGE_DRIVER_ISCSI_SOURCES)
457 458
endif

459 460 461 462
if WITH_STORAGE_SCSI
libvirt_driver_storage_la_SOURCES += $(STORAGE_DRIVER_SCSI_SOURCES)
endif

463
if WITH_STORAGE_DISK
464
libvirt_driver_storage_la_SOURCES += $(STORAGE_DRIVER_DISK_SOURCES)
465
endif
466

467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496
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


497 498 499
libvirt_driver_security_la_SOURCES = $(SECURITY_DRIVER_SOURCES)
noinst_LTLIBRARIES += libvirt_driver_security.la
libvirt_la_LIBADD += libvirt_driver_security.la
500 501 502
if WITH_SECDRIVER_SELINUX
libvirt_driver_security_la_SOURCES += $(SECURITY_DRIVER_SELINUX_SOURCES)
endif
503

504 505 506 507 508 509 510
# Add all conditional sources just in case...
EXTRA_DIST +=							\
		$(TEST_DRIVER_SOURCES)				\
		$(REMOTE_DRIVER_SOURCES)			\
		$(XEN_DRIVER_SOURCES)				\
		$(QEMU_DRIVER_SOURCES)				\
		$(LXC_DRIVER_SOURCES)				\
511
		$(UML_DRIVER_SOURCES)				\
D
Daniel Veillard 已提交
512
		$(ONE_DRIVER_SOURCES)				\
513
		$(OPENVZ_DRIVER_SOURCES)			\
514
		$(VBOX_DRIVER_SOURCES)				\
515
		$(ESX_DRIVER_SOURCES)				\
516
		$(NETWORK_DRIVER_SOURCES)			\
517
		$(INTERFACE_DRIVER_SOURCES)			\
518 519 520 521
		$(STORAGE_DRIVER_SOURCES)			\
		$(STORAGE_DRIVER_FS_SOURCES)			\
		$(STORAGE_DRIVER_LVM_SOURCES)			\
		$(STORAGE_DRIVER_ISCSI_SOURCES)			\
522
		$(STORAGE_DRIVER_SCSI_SOURCES)			\
523 524 525
		$(STORAGE_DRIVER_DISK_SOURCES)			\
		$(NODE_DEVICE_DRIVER_SOURCES)			\
		$(NODE_DEVICE_DRIVER_HAL_SOURCES)		\
526
		$(NODE_DEVICE_DRIVER_DEVKIT_SOURCES)		\
527
		$(SECURITY_DRIVER_SELINUX_SOURCES)		\
528
		$(VBOX_DRIVER_EXTRA_DIST)
529

530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548
#
# 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.
#

549
if WITH_DRIVER_MODULES
550
USED_SYM_FILES += libvirt_driver_modules.syms
551
endif
552 553

if WITH_BRIDGE
554
USED_SYM_FILES += libvirt_bridge.syms
555
endif
556 557

if WITH_LINUX
558
USED_SYM_FILES += libvirt_linux.syms
559
endif
560

561 562 563 564 565 566
EXTRA_DIST += \
  libvirt_public.syms		\
  libvirt_private.syms		\
  libvirt_driver_modules.syms	\
  libvirt_bridge.syms		\
  libvirt_linux.syms
567

568
libvirt.syms: libvirt_public.syms $(USED_SYM_FILES)
569 570 571 572 573 574
	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
575
	for file in $(USED_SYM_FILES); do \
576 577 578 579 580
	    cat $(srcdir)/$$file >>$@-tmp; \
	done
	printf '\n\nlocal:\n*;\n\n};' >>$@-tmp
	chmod a-w $@-tmp
	mv $@-tmp libvirt.syms
581

582 583
# Empty source list - it merely links a bunch of convenience libs together
libvirt_la_SOURCES =
584
libvirt_la_LIBADD += \
585
		    @CYGWIN_EXTRA_LIBADD@ ../gnulib/lib/libgnu.la
586
libvirt_la_LDFLAGS = $(VERSION_SCRIPT_FLAGS)libvirt.syms \
587 588
                     -version-info @LIBVIRT_VERSION_INFO@ \
                    $(COVERAGE_CFLAGS:-f%=-Wc,-f%) \
589
                    $(LIBXML_LIBS) $(SELINUX_LIBS) \
590
		    $(XEN_LIBS) $(DRIVER_MODULE_LIBS) \
591
		    @CYGWIN_EXTRA_LDFLAGS@ @MINGW_EXTRA_LDFLAGS@
592
libvirt_la_CFLAGS = $(COVERAGE_CFLAGS) -DIN_LIBVIRT
593
libvirt_la_DEPENDENCIES = $(libvirt_la_LIBADD) libvirt.syms
594

595 596 597
# 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.
598
noinst_LTLIBRARIES += libvirt_test.la
599

600
# Remove version script from convenience library
601 602
test_LDFLAGS =						\
  $$(echo '$(libvirt_la_LDFLAGS)'			\
603
     |sed 's!@VERSION_SCRIPT_FLAGS@libvirt.syms!!'	\
604 605 606 607 608 609 610 611
     |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 已提交
612
bin_PROGRAMS = virsh
613

614 615 616 617
virsh_SOURCES =							\
		console.c console.h				\
		virsh.c

618
virsh_LDFLAGS = $(WARN_CFLAGS) $(COVERAGE_LDFLAGS)
619 620
virsh_LDADD =							\
		$(STATIC_BINARIES)				\
621
		$(WARN_CFLAGS)					\
622
		$(NUMACTL_LIBS)					\
623 624 625
		libvirt.la					\
		../gnulib/lib/libgnu.la				\
		$(VIRSH_LIBS)
626
virsh_CFLAGS = $(COVERAGE_CFLAGS) $(READLINE_CFLAGS) $(NUMACTL_CFLAGS)
627
BUILT_SOURCES = virsh-net-edit.c virsh-pool-edit.c libvirt.syms
628 629 630 631 632 633 634 635 636 637

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' \
638
	      -e 's/int flags.*/int flags = 0;/g' \
639 640 641 642 643 644 645 646 647 648 649 650 651
	>> $@-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 已提交
652
	      -e 's/(ctl, cmd, NULL);/(ctl, cmd, "pool", NULL);/' \
653 654 655 656
	      -e 's/Domain/StoragePool/g' \
	      -e 's/cmdEdit/cmdPoolEdit/g' \
	      -e 's/\(virStoragePoolDefineXML.*\));/\1, 0);/' \
	      -e 's/dom/pool/g' \
657
	      -e 's/int flags.*/int flags = 0;/g' \
658 659 660 661
	>> $@-tmp
	chmod a-w $@-tmp
	rm -f $@
	mv $@-tmp $@
662

663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688
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

689 690
libexec_PROGRAMS =

691
if WITH_STORAGE_DISK
R
Richard W.M. Jones 已提交
692
if WITH_LIBVIRTD
693
libexec_PROGRAMS += libvirt_parthelper
694

695
libvirt_parthelper_SOURCES = $(STORAGE_HELPER_DISK_SOURCES)
696 697 698
libvirt_parthelper_LDFLAGS = $(WARN_CFLAGS) $(COVERAGE_LDCFLAGS)
libvirt_parthelper_LDADD = $(LIBPARTED_LIBS)
libvirt_parthelper_CFLAGS =  $(LIBPARTED_CFLAGS)
R
Richard W.M. Jones 已提交
699
endif
700
endif
701 702
EXTRA_DIST += $(STORAGE_HELPER_DISK_SOURCES)

703

704 705 706 707 708 709
if WITH_LXC
if WITH_LIBVIRTD
libexec_PROGRAMS += libvirt_lxc

libvirt_lxc_SOURCES =						\
		$(LXC_CONTROLLER_SOURCES)			\
710
		$(UTIL_SOURCES)					\
711
		$(DOMAIN_CONF_SOURCES)
712
libvirt_lxc_LDFLAGS = $(WARN_CFLAGS) $(COVERAGE_LDCFLAGS) $(CAPNG_LIBS)
713
libvirt_lxc_LDADD = $(LIBXML_LIBS) $(NUMACTL_LIBS) ../gnulib/lib/libgnu.la
714
libvirt_lxc_CFLAGS =  $(LIBPARTED_CFLAGS) $(NUMACTL_CFLAGS) $(CAPNG_CFLAGS)
715 716 717 718
endif
endif
EXTRA_DIST += $(LXC_CONTROLLER_SOURCES)

R
Richard W.M. Jones 已提交
719
install-exec-local:
720 721 722 723 724 725
	$(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"
726
	$(MKDIR_P) "$(DESTDIR)$(localstatedir)/cache/libvirt/qemu"
727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742
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 已提交
743

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