Makefile.am 19.7 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 91


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

# 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
111 112 113
if WITH_XEN_INOTIFY
XEN_DRIVER_SOURCES += xen_inotify.c xen_inotify.h
endif
114 115

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

122 123 124 125
LXC_CONTROLLER_SOURCES =					\
		lxc_conf.c lxc_conf.h				\
		lxc_container.c lxc_container.h			\
		lxc_controller.c				\
D
Dan Smith 已提交
126 127
		veth.c veth.h                                   \
		cgroup.c cgroup.h
128

129 130 131
OPENVZ_DRIVER_SOURCES =						\
		openvz_conf.c openvz_conf.h			\
		openvz_driver.c openvz_driver.h
132

133 134 135
VBOX_DRIVER_SOURCES =                                 \
        vbox/vbox_XPCOMCGlue.c vbox/vbox_XPCOMCGlue.h \
        vbox/vbox_driver.c vbox/vbox_driver.h         \
136
        vbox/vbox_V2_2.c vbox/vbox_CAPI_v2_2.h
137

138 139
VBOX_DRIVER_EXTRA_DIST = vbox/vbox_tmpl.c vbox/README

140 141 142
QEMU_DRIVER_SOURCES =						\
		qemu_conf.c qemu_conf.h				\
		qemu_driver.c qemu_driver.h
R
Richard W.M. Jones 已提交
143

144 145 146 147
UML_DRIVER_SOURCES =						\
		uml_conf.c uml_conf.h				\
		uml_driver.c uml_driver.h

D
Daniel Veillard 已提交
148 149 150 151
ONE_DRIVER_SOURCES =					\
		./opennebula/one_conf.c			\
		./opennebula/one_conf.h			\
		./opennebula/one_driver.c		\
152 153 154
		./opennebula/one_driver.h		\
		./opennebula/one_client.c		\
		./opennebula/one_client.h
D
Daniel Veillard 已提交
155

156 157
NETWORK_DRIVER_SOURCES =					\
		network_driver.h network_driver.c
158

159
# Storage backend specific impls
160
STORAGE_DRIVER_SOURCES =					\
161 162
		storage_driver.h storage_driver.c		\
		storage_backend.h storage_backend.c
163

164 165 166 167
# Network driver generic impl APIs
NODE_DEVICE_CONF_SOURCES =					\
		node_device_conf.c node_device_conf.h

168
STORAGE_DRIVER_FS_SOURCES =					\
R
Richard W.M. Jones 已提交
169 170
		storage_backend_fs.h storage_backend_fs.c

171
STORAGE_DRIVER_LVM_SOURCES =					\
172
		storage_backend_logical.h			\
173 174 175 176 177
		storage_backend_logical.c

STORAGE_DRIVER_ISCSI_SOURCES =					\
		storage_backend_iscsi.h storage_backend_iscsi.c

178 179 180
STORAGE_DRIVER_SCSI_SOURCES =					\
		storage_backend_scsi.h storage_backend_scsi.c

181 182 183 184 185 186 187
STORAGE_DRIVER_DISK_SOURCES =					\
		storage_backend_disk.h storage_backend_disk.c

STORAGE_HELPER_DISK_SOURCES =					\
		parthelper.c


188 189 190 191
# Security framework and drivers for various models
SECURITY_DRIVER_SOURCES =                                      \
		security.h security.c

192 193 194
SECURITY_DRIVER_SELINUX_SOURCES =				\
		security_selinux.h security_selinux.c

195

196 197 198 199
NODE_DEVICE_DRIVER_SOURCES =					\
		node_device.c node_device.h

NODE_DEVICE_DRIVER_HAL_SOURCES =				\
200
		node_device_hal.c				\
D
Daniel P. Berrange 已提交
201
		node_device_hal.h				\
202 203
		node_device_hal_linux.c

204 205 206
NODE_DEVICE_DRIVER_DEVKIT_SOURCES =				\
		node_device_devkit.c

207 208 209 210 211 212 213

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

214 215 216 217
noinst_LTLIBRARIES = libvirt_util.la
libvirt_la_LIBADD = libvirt_util.la
libvirt_util_la_SOURCES =					\
		$(UTIL_SOURCES)
218 219
libvirt_util_la_CFLAGS =  $(CAPNG_CFLAGS)
libvirt_util_la_LDFLAGS =  $(CAPNG_LIBS)
220 221 222 223 224

noinst_LTLIBRARIES += libvirt_driver.la
libvirt_la_LIBADD += libvirt_driver.la
libvirt_driver_la_SOURCES =					\
		$(DRIVER_SOURCES)				\
225 226
		$(DOMAIN_CONF_SOURCES)				\
		$(NETWORK_CONF_SOURCES)				\
227 228 229
		$(STORAGE_CONF_SOURCES)				\
		$(NODE_DEVICE_CONF_SOURCES)

230 231
libvirt_driver_la_CFLAGS = $(XEN_CFLAGS) $(NUMACTL_CFLAGS)
libvirt_driver_la_LDFLAGS = $(XEN_LIBS) $(NUMACTL_LIBS)
232

233
USED_SYM_FILES = libvirt_private.syms
234

235
if WITH_TEST
236 237 238
if WITH_DRIVER_MODULES
mod_LTLIBRARIES += libvirt_driver_test.la
else
239 240
noinst_LTLIBRARIES += libvirt_driver_test.la
libvirt_la_LIBADD += libvirt_driver_test.la
241 242 243 244
endif
if WITH_DRIVER_MODULES
libvirt_driver_test_la_LDFLAGS = -module -avoid-version
endif
245
libvirt_driver_test_la_SOURCES = $(TEST_DRIVER_SOURCES)
246 247 248
endif

if WITH_REMOTE
249 250 251
if WITH_DRIVER_MODULES
mod_LTLIBRARIES += libvirt_driver_remote.la
else
252 253
noinst_LTLIBRARIES += libvirt_driver_remote.la
libvirt_la_LIBADD += libvirt_driver_remote.la
254
endif
255 256 257 258 259 260
libvirt_driver_remote_la_CFLAGS =				\
		$(GNUTLS_CFLAGS)				\
		$(SASL_CFLAGS)
libvirt_driver_remote_la_LDFLAGS =				\
		$(GNUTLS_LIBS)					\
		$(SASL_LIBS)
261 262 263
if WITH_DRIVER_MODULES
libvirt_driver_remote_la_LDFLAGS += -module -avoid-version
endif
264
libvirt_driver_remote_la_SOURCES = $(REMOTE_DRIVER_SOURCES)
265 266 267
endif

if WITH_XEN
268 269 270
if WITH_DRIVER_MODULES
mod_LTLIBRARIES += libvirt_driver_xen.la
else
271 272
noinst_LTLIBRARIES += libvirt_driver_xen.la
libvirt_la_LIBADD += libvirt_driver_xen.la
273
endif
274 275
libvirt_driver_xen_la_CFLAGS = $(XEN_CFLAGS)
libvirt_driver_xen_la_LDFLAGS = $(XEN_LIBS)
276 277 278
if WITH_DRIVER_MODULES
libvirt_driver_xen_la_LDFLAGS += -module -avoid-version
endif
279
libvirt_driver_xen_la_SOURCES = $(XEN_DRIVER_SOURCES)
280 281
endif

282
if WITH_OPENVZ
283 284 285
if WITH_DRIVER_MODULES
mod_LTLIBRARIES += libvirt_driver_openvz.la
else
286 287
noinst_LTLIBRARIES += libvirt_driver_openvz.la
libvirt_la_LIBADD += libvirt_driver_openvz.la
288 289 290 291
endif
if WITH_DRIVER_MODULES
libvirt_driver_openvz_la_LDFLAGS = -module -avoid-version
endif
292
libvirt_driver_openvz_la_SOURCES = $(OPENVZ_DRIVER_SOURCES)
293 294
endif

295 296 297 298 299 300 301 302 303 304 305 306 307
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

308
if WITH_QEMU
309 310 311
if WITH_DRIVER_MODULES
mod_LTLIBRARIES += libvirt_driver_qemu.la
else
312
noinst_LTLIBRARIES += libvirt_driver_qemu.la
313 314
# Stateful, so linked to daemon instead
#libvirt_la_LIBADD += libvirt_driver_qemu.la
315
endif
316 317
libvirt_driver_qemu_la_CFLAGS = $(NUMACTL_CFLAGS)
libvirt_driver_qemu_la_LDFLAGS = $(NUMACTL_LIBS)
318 319 320
if WITH_DRIVER_MODULES
libvirt_driver_qemu_la_LDFLAGS += -module -avoid-version
endif
321
libvirt_driver_qemu_la_SOURCES = $(QEMU_DRIVER_SOURCES)
322 323 324
endif

if WITH_LXC
325 326 327
if WITH_DRIVER_MODULES
mod_LTLIBRARIES += libvirt_driver_lxc.la
else
328
noinst_LTLIBRARIES += libvirt_driver_lxc.la
329 330
# Stateful, so linked to daemon instead
#libvirt_la_LIBADD += libvirt_driver_lxc.la
331 332 333 334
endif
if WITH_DRIVER_MODULES
libvirt_driver_lxc_la_LDFLAGS = -module -avoid-version
endif
335
libvirt_driver_lxc_la_SOURCES = $(LXC_DRIVER_SOURCES)
336 337
endif

338
if WITH_UML
339 340 341
if WITH_DRIVER_MODULES
mod_LTLIBRARIES += libvirt_driver_uml.la
else
342 343 344
noinst_LTLIBRARIES += libvirt_driver_uml.la
# Stateful, so linked to daemon instead
#libvirt_la_LIBADD += libvirt_driver_uml.la
345 346 347 348 349 350
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
351 352
libvirt_driver_uml_la_SOURCES = $(UML_DRIVER_SOURCES)
endif
353

D
Daniel Veillard 已提交
354 355 356 357 358 359 360 361
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
362
libvirt_driver_one_la_CFLAGS = $(ONE_LIBS)
D
Daniel Veillard 已提交
363 364 365 366 367 368 369 370 371 372 373
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




374
if WITH_NETWORK
375 376 377
if WITH_DRIVER_MODULES
mod_LTLIBRARIES += libvirt_driver_network.la
else
378
noinst_LTLIBRARIES += libvirt_driver_network.la
379 380
# Stateful, so linked to daemon instead
#libvirt_la_LIBADD += libvirt_driver_network.la
381 382 383 384
endif
if WITH_DRIVER_MODULES
libvirt_driver_network_la_LDFLAGS = -module -avoid-version
endif
385
libvirt_driver_network_la_SOURCES = $(NETWORK_DRIVER_SOURCES)
386 387
endif

D
Daniel Veillard 已提交
388 389 390 391 392
if WITH_NETCF
libvirt_driver_interface_la_CFLAGS = $(NETCF_CFLAGS)
libvirt_driver_interface_la_LDFLAGS = $(NETCF_LIBS)
endif

393 394
# Needed to keep automake quiet about conditionals
libvirt_driver_storage_la_SOURCES =
395
if WITH_STORAGE_DIR
396 397 398
if WITH_DRIVER_MODULES
mod_LTLIBRARIES += libvirt_driver_storage.la
else
399
noinst_LTLIBRARIES += libvirt_driver_storage.la
400 401
# Stateful, so linked to daemon instead
#libvirt_la_LIBADD += libvirt_driver_storage.la
402 403 404 405
endif
if WITH_DRIVER_MODULES
libvirt_driver_storage_la_LDFLAGS = -module -avoid-version
endif
406 407
libvirt_driver_storage_la_SOURCES += $(STORAGE_DRIVER_SOURCES)
libvirt_driver_storage_la_SOURCES += $(STORAGE_DRIVER_FS_SOURCES)
408 409
endif

410
if WITH_STORAGE_LVM
411
libvirt_driver_storage_la_SOURCES += $(STORAGE_DRIVER_LVM_SOURCES)
412 413
endif

414
if WITH_STORAGE_ISCSI
415
libvirt_driver_storage_la_SOURCES += $(STORAGE_DRIVER_ISCSI_SOURCES)
416 417
endif

418 419 420 421
if WITH_STORAGE_SCSI
libvirt_driver_storage_la_SOURCES += $(STORAGE_DRIVER_SCSI_SOURCES)
endif

422
if WITH_STORAGE_DISK
423
libvirt_driver_storage_la_SOURCES += $(STORAGE_DRIVER_DISK_SOURCES)
424
endif
425

426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455
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


456 457 458
libvirt_driver_security_la_SOURCES = $(SECURITY_DRIVER_SOURCES)
noinst_LTLIBRARIES += libvirt_driver_security.la
libvirt_la_LIBADD += libvirt_driver_security.la
459 460 461
if WITH_SECDRIVER_SELINUX
libvirt_driver_security_la_SOURCES += $(SECURITY_DRIVER_SELINUX_SOURCES)
endif
462

463 464 465 466 467 468 469
# Add all conditional sources just in case...
EXTRA_DIST +=							\
		$(TEST_DRIVER_SOURCES)				\
		$(REMOTE_DRIVER_SOURCES)			\
		$(XEN_DRIVER_SOURCES)				\
		$(QEMU_DRIVER_SOURCES)				\
		$(LXC_DRIVER_SOURCES)				\
470
		$(UML_DRIVER_SOURCES)				\
D
Daniel Veillard 已提交
471
		$(ONE_DRIVER_SOURCES)				\
472
		$(OPENVZ_DRIVER_SOURCES)			\
473
		$(VBOX_DRIVER_SOURCES)				\
474
		$(NETWORK_DRIVER_SOURCES)			\
475 476 477 478
		$(STORAGE_DRIVER_SOURCES)			\
		$(STORAGE_DRIVER_FS_SOURCES)			\
		$(STORAGE_DRIVER_LVM_SOURCES)			\
		$(STORAGE_DRIVER_ISCSI_SOURCES)			\
479
		$(STORAGE_DRIVER_SCSI_SOURCES)			\
480 481 482
		$(STORAGE_DRIVER_DISK_SOURCES)			\
		$(NODE_DEVICE_DRIVER_SOURCES)			\
		$(NODE_DEVICE_DRIVER_HAL_SOURCES)		\
483
		$(NODE_DEVICE_DRIVER_DEVKIT_SOURCES)		\
484
		$(SECURITY_DRIVER_SELINUX_SOURCES)		\
485
		$(VBOX_DRIVER_EXTRA_DIST)
486

487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505
#
# 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.
#

506
if WITH_DRIVER_MODULES
507
USED_SYM_FILES += libvirt_driver_modules.syms
508
endif
509 510

if WITH_BRIDGE
511
USED_SYM_FILES += libvirt_bridge.syms
512
endif
513 514

if WITH_LINUX
515
USED_SYM_FILES += libvirt_linux.syms
516
endif
517

518 519 520 521 522 523
EXTRA_DIST += \
  libvirt_public.syms		\
  libvirt_private.syms		\
  libvirt_driver_modules.syms	\
  libvirt_bridge.syms		\
  libvirt_linux.syms
524

525
libvirt.syms: libvirt_public.syms $(USED_SYM_FILES)
526 527 528 529 530 531
	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
532
	for file in $(USED_SYM_FILES); do \
533 534 535 536 537
	    cat $(srcdir)/$$file >>$@-tmp; \
	done
	printf '\n\nlocal:\n*;\n\n};' >>$@-tmp
	chmod a-w $@-tmp
	mv $@-tmp libvirt.syms
538

539 540
# Empty source list - it merely links a bunch of convenience libs together
libvirt_la_SOURCES =
541
libvirt_la_LIBADD += \
542
		    @CYGWIN_EXTRA_LIBADD@ ../gnulib/lib/libgnu.la
543
libvirt_la_LDFLAGS = $(VERSION_SCRIPT_FLAGS)libvirt.syms \
544 545
                     -version-info @LIBVIRT_VERSION_INFO@ \
                    $(COVERAGE_CFLAGS:-f%=-Wc,-f%) \
546
                    $(LIBXML_LIBS) $(SELINUX_LIBS) \
547
		    $(XEN_LIBS) $(DRIVER_MODULE_LIBS) \
548
		    @CYGWIN_EXTRA_LDFLAGS@ @MINGW_EXTRA_LDFLAGS@
549
libvirt_la_CFLAGS = $(COVERAGE_CFLAGS) -DIN_LIBVIRT
550
libvirt_la_DEPENDENCIES = $(libvirt_la_LIBADD) libvirt.syms
551

552 553 554
# 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.
555
noinst_LTLIBRARIES += libvirt_test.la
556

557
# Remove version script from convenience library
558 559
test_LDFLAGS =						\
  $$(echo '$(libvirt_la_LDFLAGS)'			\
560
     |sed 's!@VERSION_SCRIPT_FLAGS@libvirt.syms!!'	\
561 562 563 564 565 566 567 568
     |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 已提交
569
bin_PROGRAMS = virsh
570

571 572 573 574
virsh_SOURCES =							\
		console.c console.h				\
		virsh.c

575
virsh_LDFLAGS = $(WARN_CFLAGS) $(COVERAGE_LDFLAGS)
576 577
virsh_LDADD =							\
		$(STATIC_BINARIES)				\
578
		$(WARN_CFLAGS)					\
579
		$(NUMACTL_LIBS)					\
580 581 582
		libvirt.la					\
		../gnulib/lib/libgnu.la				\
		$(VIRSH_LIBS)
583
virsh_CFLAGS = $(COVERAGE_CFLAGS) $(READLINE_CFLAGS) $(NUMACTL_CFLAGS)
584
BUILT_SOURCES = virsh-net-edit.c virsh-pool-edit.c libvirt.syms
585 586 587 588 589 590 591 592 593 594

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' \
595
	      -e 's/int flags.*/int flags = 0;/g' \
596 597 598 599 600 601 602 603 604 605 606 607 608
	>> $@-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 已提交
609
	      -e 's/(ctl, cmd, NULL);/(ctl, cmd, "pool", NULL);/' \
610 611 612 613
	      -e 's/Domain/StoragePool/g' \
	      -e 's/cmdEdit/cmdPoolEdit/g' \
	      -e 's/\(virStoragePoolDefineXML.*\));/\1, 0);/' \
	      -e 's/dom/pool/g' \
614
	      -e 's/int flags.*/int flags = 0;/g' \
615 616 617 618
	>> $@-tmp
	chmod a-w $@-tmp
	rm -f $@
	mv $@-tmp $@
619

620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645
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

646 647
libexec_PROGRAMS =

648
if WITH_STORAGE_DISK
R
Richard W.M. Jones 已提交
649
if WITH_LIBVIRTD
650
libexec_PROGRAMS += libvirt_parthelper
651

652
libvirt_parthelper_SOURCES = $(STORAGE_HELPER_DISK_SOURCES)
653 654 655
libvirt_parthelper_LDFLAGS = $(WARN_CFLAGS) $(COVERAGE_LDCFLAGS)
libvirt_parthelper_LDADD = $(LIBPARTED_LIBS)
libvirt_parthelper_CFLAGS =  $(LIBPARTED_CFLAGS)
R
Richard W.M. Jones 已提交
656
endif
657
endif
658 659
EXTRA_DIST += $(STORAGE_HELPER_DISK_SOURCES)

660

661 662 663 664 665 666
if WITH_LXC
if WITH_LIBVIRTD
libexec_PROGRAMS += libvirt_lxc

libvirt_lxc_SOURCES =						\
		$(LXC_CONTROLLER_SOURCES)			\
667
		$(UTIL_SOURCES)					\
668
		$(DOMAIN_CONF_SOURCES)
669
libvirt_lxc_LDFLAGS = $(WARN_CFLAGS) $(COVERAGE_LDCFLAGS) $(CAPNG_LIBS)
670
libvirt_lxc_LDADD = $(LIBXML_LIBS) $(NUMACTL_LIBS) ../gnulib/lib/libgnu.la
671
libvirt_lxc_CFLAGS =  $(LIBPARTED_CFLAGS) $(NUMACTL_CFLAGS) $(CAPNG_CFLAGS)
672 673 674 675
endif
endif
EXTRA_DIST += $(LXC_CONTROLLER_SOURCES)

R
Richard W.M. Jones 已提交
676
install-exec-local:
677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698
	$(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"
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 已提交
699

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