Makefile.am 18.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
	   $(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

148 149
NETWORK_DRIVER_SOURCES =					\
		network_driver.h network_driver.c
150

151
# Storage backend specific impls
152
STORAGE_DRIVER_SOURCES =					\
153 154
		storage_driver.h storage_driver.c		\
		storage_backend.h storage_backend.c
155

156 157 158 159
# Network driver generic impl APIs
NODE_DEVICE_CONF_SOURCES =					\
		node_device_conf.c node_device_conf.h

160
STORAGE_DRIVER_FS_SOURCES =					\
R
Richard W.M. Jones 已提交
161 162
		storage_backend_fs.h storage_backend_fs.c

163
STORAGE_DRIVER_LVM_SOURCES =					\
164
		storage_backend_logical.h			\
165 166 167 168 169
		storage_backend_logical.c

STORAGE_DRIVER_ISCSI_SOURCES =					\
		storage_backend_iscsi.h storage_backend_iscsi.c

170 171 172
STORAGE_DRIVER_SCSI_SOURCES =					\
		storage_backend_scsi.h storage_backend_scsi.c

173 174 175 176 177 178 179
STORAGE_DRIVER_DISK_SOURCES =					\
		storage_backend_disk.h storage_backend_disk.c

STORAGE_HELPER_DISK_SOURCES =					\
		parthelper.c


180 181 182 183
# Security framework and drivers for various models
SECURITY_DRIVER_SOURCES =                                      \
		security.h security.c

184 185 186
SECURITY_DRIVER_SELINUX_SOURCES =				\
		security_selinux.h security_selinux.c

187

188 189 190 191 192 193 194 195
NODE_DEVICE_DRIVER_SOURCES =					\
		node_device.c node_device.h

NODE_DEVICE_DRIVER_HAL_SOURCES =				\
		node_device_hal.c
NODE_DEVICE_DRIVER_DEVKIT_SOURCES =				\
		node_device_devkit.c

196 197 198 199 200 201 202

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

203 204 205 206 207 208 209 210 211
noinst_LTLIBRARIES = libvirt_util.la
libvirt_la_LIBADD = libvirt_util.la
libvirt_util_la_SOURCES =					\
		$(UTIL_SOURCES)

noinst_LTLIBRARIES += libvirt_driver.la
libvirt_la_LIBADD += libvirt_driver.la
libvirt_driver_la_SOURCES =					\
		$(DRIVER_SOURCES)				\
212 213
		$(DOMAIN_CONF_SOURCES)				\
		$(NETWORK_CONF_SOURCES)				\
214 215 216
		$(STORAGE_CONF_SOURCES)				\
		$(NODE_DEVICE_CONF_SOURCES)

217 218
libvirt_driver_la_CFLAGS = $(XEN_CFLAGS) $(NUMACTL_CFLAGS)
libvirt_driver_la_LDFLAGS = $(XEN_LIBS) $(NUMACTL_LIBS)
219

220
USED_SYM_FILES = libvirt_private.syms
221

222
if WITH_TEST
223 224 225
if WITH_DRIVER_MODULES
mod_LTLIBRARIES += libvirt_driver_test.la
else
226 227
noinst_LTLIBRARIES += libvirt_driver_test.la
libvirt_la_LIBADD += libvirt_driver_test.la
228 229 230 231
endif
if WITH_DRIVER_MODULES
libvirt_driver_test_la_LDFLAGS = -module -avoid-version
endif
232
libvirt_driver_test_la_SOURCES = $(TEST_DRIVER_SOURCES)
233 234 235
endif

if WITH_REMOTE
236 237 238
if WITH_DRIVER_MODULES
mod_LTLIBRARIES += libvirt_driver_remote.la
else
239 240
noinst_LTLIBRARIES += libvirt_driver_remote.la
libvirt_la_LIBADD += libvirt_driver_remote.la
241
endif
242 243 244 245 246 247
libvirt_driver_remote_la_CFLAGS =				\
		$(GNUTLS_CFLAGS)				\
		$(SASL_CFLAGS)
libvirt_driver_remote_la_LDFLAGS =				\
		$(GNUTLS_LIBS)					\
		$(SASL_LIBS)
248 249 250
if WITH_DRIVER_MODULES
libvirt_driver_remote_la_LDFLAGS += -module -avoid-version
endif
251
libvirt_driver_remote_la_SOURCES = $(REMOTE_DRIVER_SOURCES)
252 253 254
endif

if WITH_XEN
255 256 257
if WITH_DRIVER_MODULES
mod_LTLIBRARIES += libvirt_driver_xen.la
else
258 259
noinst_LTLIBRARIES += libvirt_driver_xen.la
libvirt_la_LIBADD += libvirt_driver_xen.la
260
endif
261 262
libvirt_driver_xen_la_CFLAGS = $(XEN_CFLAGS)
libvirt_driver_xen_la_LDFLAGS = $(XEN_LIBS)
263 264 265
if WITH_DRIVER_MODULES
libvirt_driver_xen_la_LDFLAGS += -module -avoid-version
endif
266
libvirt_driver_xen_la_SOURCES = $(XEN_DRIVER_SOURCES)
267 268
endif

269
if WITH_OPENVZ
270 271 272
if WITH_DRIVER_MODULES
mod_LTLIBRARIES += libvirt_driver_openvz.la
else
273 274
noinst_LTLIBRARIES += libvirt_driver_openvz.la
libvirt_la_LIBADD += libvirt_driver_openvz.la
275 276 277 278
endif
if WITH_DRIVER_MODULES
libvirt_driver_openvz_la_LDFLAGS = -module -avoid-version
endif
279
libvirt_driver_openvz_la_SOURCES = $(OPENVZ_DRIVER_SOURCES)
280 281
endif

282 283 284 285 286 287 288 289 290 291 292 293 294
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

295
if WITH_QEMU
296 297 298
if WITH_DRIVER_MODULES
mod_LTLIBRARIES += libvirt_driver_qemu.la
else
299
noinst_LTLIBRARIES += libvirt_driver_qemu.la
300 301
# Stateful, so linked to daemon instead
#libvirt_la_LIBADD += libvirt_driver_qemu.la
302
endif
303 304
libvirt_driver_qemu_la_CFLAGS = $(NUMACTL_CFLAGS)
libvirt_driver_qemu_la_LDFLAGS = $(NUMACTL_LIBS)
305 306 307
if WITH_DRIVER_MODULES
libvirt_driver_qemu_la_LDFLAGS += -module -avoid-version
endif
308
libvirt_driver_qemu_la_SOURCES = $(QEMU_DRIVER_SOURCES)
309 310 311
endif

if WITH_LXC
312 313 314
if WITH_DRIVER_MODULES
mod_LTLIBRARIES += libvirt_driver_lxc.la
else
315
noinst_LTLIBRARIES += libvirt_driver_lxc.la
316 317
# Stateful, so linked to daemon instead
#libvirt_la_LIBADD += libvirt_driver_lxc.la
318 319 320 321
endif
if WITH_DRIVER_MODULES
libvirt_driver_lxc_la_LDFLAGS = -module -avoid-version
endif
322
libvirt_driver_lxc_la_SOURCES = $(LXC_DRIVER_SOURCES)
323 324
endif

325
if WITH_UML
326 327 328
if WITH_DRIVER_MODULES
mod_LTLIBRARIES += libvirt_driver_uml.la
else
329 330 331
noinst_LTLIBRARIES += libvirt_driver_uml.la
# Stateful, so linked to daemon instead
#libvirt_la_LIBADD += libvirt_driver_uml.la
332 333 334 335 336 337
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
338 339
libvirt_driver_uml_la_SOURCES = $(UML_DRIVER_SOURCES)
endif
340 341

if WITH_NETWORK
342 343 344
if WITH_DRIVER_MODULES
mod_LTLIBRARIES += libvirt_driver_network.la
else
345
noinst_LTLIBRARIES += libvirt_driver_network.la
346 347
# Stateful, so linked to daemon instead
#libvirt_la_LIBADD += libvirt_driver_network.la
348 349 350 351
endif
if WITH_DRIVER_MODULES
libvirt_driver_network_la_LDFLAGS = -module -avoid-version
endif
352
libvirt_driver_network_la_SOURCES = $(NETWORK_DRIVER_SOURCES)
353 354
endif

D
Daniel Veillard 已提交
355 356 357 358 359
if WITH_NETCF
libvirt_driver_interface_la_CFLAGS = $(NETCF_CFLAGS)
libvirt_driver_interface_la_LDFLAGS = $(NETCF_LIBS)
endif

360 361
# Needed to keep automake quiet about conditionals
libvirt_driver_storage_la_SOURCES =
362
if WITH_STORAGE_DIR
363 364 365
if WITH_DRIVER_MODULES
mod_LTLIBRARIES += libvirt_driver_storage.la
else
366
noinst_LTLIBRARIES += libvirt_driver_storage.la
367 368
# Stateful, so linked to daemon instead
#libvirt_la_LIBADD += libvirt_driver_storage.la
369 370 371 372
endif
if WITH_DRIVER_MODULES
libvirt_driver_storage_la_LDFLAGS = -module -avoid-version
endif
373 374
libvirt_driver_storage_la_SOURCES += $(STORAGE_DRIVER_SOURCES)
libvirt_driver_storage_la_SOURCES += $(STORAGE_DRIVER_FS_SOURCES)
375 376
endif

377
if WITH_STORAGE_LVM
378
libvirt_driver_storage_la_SOURCES += $(STORAGE_DRIVER_LVM_SOURCES)
379 380
endif

381
if WITH_STORAGE_ISCSI
382
libvirt_driver_storage_la_SOURCES += $(STORAGE_DRIVER_ISCSI_SOURCES)
383 384
endif

385 386 387 388
if WITH_STORAGE_SCSI
libvirt_driver_storage_la_SOURCES += $(STORAGE_DRIVER_SCSI_SOURCES)
endif

389
if WITH_STORAGE_DISK
390
libvirt_driver_storage_la_SOURCES += $(STORAGE_DRIVER_DISK_SOURCES)
391
endif
392

393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422
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


423 424 425
libvirt_driver_security_la_SOURCES = $(SECURITY_DRIVER_SOURCES)
noinst_LTLIBRARIES += libvirt_driver_security.la
libvirt_la_LIBADD += libvirt_driver_security.la
426 427 428
if WITH_SECDRIVER_SELINUX
libvirt_driver_security_la_SOURCES += $(SECURITY_DRIVER_SELINUX_SOURCES)
endif
429

430 431 432 433 434 435 436
# Add all conditional sources just in case...
EXTRA_DIST +=							\
		$(TEST_DRIVER_SOURCES)				\
		$(REMOTE_DRIVER_SOURCES)			\
		$(XEN_DRIVER_SOURCES)				\
		$(QEMU_DRIVER_SOURCES)				\
		$(LXC_DRIVER_SOURCES)				\
437
		$(UML_DRIVER_SOURCES)				\
438
		$(OPENVZ_DRIVER_SOURCES)			\
439
		$(VBOX_DRIVER_SOURCES)				\
440
		$(NETWORK_DRIVER_SOURCES)			\
441 442 443 444
		$(STORAGE_DRIVER_SOURCES)			\
		$(STORAGE_DRIVER_FS_SOURCES)			\
		$(STORAGE_DRIVER_LVM_SOURCES)			\
		$(STORAGE_DRIVER_ISCSI_SOURCES)			\
445
		$(STORAGE_DRIVER_SCSI_SOURCES)			\
446 447 448
		$(STORAGE_DRIVER_DISK_SOURCES)			\
		$(NODE_DEVICE_DRIVER_SOURCES)			\
		$(NODE_DEVICE_DRIVER_HAL_SOURCES)		\
449
		$(NODE_DEVICE_DRIVER_DEVKIT_SOURCES)		\
450
		$(SECURITY_DRIVER_SELINUX_SOURCES)		\
451
		$(VBOX_DRIVER_EXTRA_DIST)
452

453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472
#
# 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.
#

if ENABLE_DEBUG
473
USED_SYM_FILES += libvirt_debug.syms
474
endif
475 476

if WITH_DRIVER_MODULES
477
USED_SYM_FILES += libvirt_driver_modules.syms
478
endif
479 480

if WITH_BRIDGE
481
USED_SYM_FILES += libvirt_bridge.syms
482
endif
483 484

if WITH_LINUX
485
USED_SYM_FILES += libvirt_linux.syms
486
endif
487

488 489 490 491 492 493 494
EXTRA_DIST += \
  libvirt_public.syms		\
  libvirt_private.syms		\
  libvirt_debug.syms		\
  libvirt_driver_modules.syms	\
  libvirt_bridge.syms		\
  libvirt_linux.syms
495

496
libvirt.syms: libvirt_public.syms $(USED_SYM_FILES)
497 498 499 500 501 502
	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
503
	for file in $(USED_SYM_FILES); do \
504 505 506 507 508
	    cat $(srcdir)/$$file >>$@-tmp; \
	done
	printf '\n\nlocal:\n*;\n\n};' >>$@-tmp
	chmod a-w $@-tmp
	mv $@-tmp libvirt.syms
509

510 511
# Empty source list - it merely links a bunch of convenience libs together
libvirt_la_SOURCES =
512
libvirt_la_LIBADD += \
513
		    @CYGWIN_EXTRA_LIBADD@ ../gnulib/lib/libgnu.la
514
libvirt_la_LDFLAGS = $(VERSION_SCRIPT_FLAGS)libvirt.syms \
515 516
                     -version-info @LIBVIRT_VERSION_INFO@ \
                    $(COVERAGE_CFLAGS:-f%=-Wc,-f%) \
517
                    $(LIBXML_LIBS) $(SELINUX_LIBS) \
518
		    $(XEN_LIBS) $(DRIVER_MODULE_LIBS) \
519
		    @CYGWIN_EXTRA_LDFLAGS@ @MINGW_EXTRA_LDFLAGS@
520
libvirt_la_CFLAGS = $(COVERAGE_CFLAGS) -DIN_LIBVIRT
521
libvirt_la_DEPENDENCIES = $(libvirt_la_LIBADD) libvirt.syms
522

523 524 525
# 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.
526
noinst_LTLIBRARIES += libvirt_test.la
527

528
# Remove version script from convenience library
529 530
test_LDFLAGS =						\
  $$(echo '$(libvirt_la_LDFLAGS)'			\
531
     |sed 's!@VERSION_SCRIPT_FLAGS@libvirt.syms!!'	\
532 533 534 535 536 537 538 539
     |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 已提交
540
bin_PROGRAMS = virsh
541

542 543 544 545
virsh_SOURCES =							\
		console.c console.h				\
		virsh.c

546
virsh_LDFLAGS = $(WARN_CFLAGS) $(COVERAGE_LDFLAGS)
547 548
virsh_LDADD =							\
		$(STATIC_BINARIES)				\
549
		$(WARN_CFLAGS)					\
550
		$(NUMACTL_LIBS)					\
551 552 553
		libvirt.la					\
		../gnulib/lib/libgnu.la				\
		$(VIRSH_LIBS)
554
virsh_CFLAGS = $(COVERAGE_CFLAGS) $(READLINE_CFLAGS) $(NUMACTL_CFLAGS)
555
BUILT_SOURCES = virsh-net-edit.c virsh-pool-edit.c libvirt.syms
556 557 558 559 560 561 562 563 564 565

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' \
566
	      -e 's/int flags.*/int flags = 0;/g' \
567 568 569 570 571 572 573 574 575 576 577 578 579
	>> $@-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 已提交
580
	      -e 's/(ctl, cmd, NULL);/(ctl, cmd, "pool", NULL);/' \
581 582 583 584
	      -e 's/Domain/StoragePool/g' \
	      -e 's/cmdEdit/cmdPoolEdit/g' \
	      -e 's/\(virStoragePoolDefineXML.*\));/\1, 0);/' \
	      -e 's/dom/pool/g' \
585
	      -e 's/int flags.*/int flags = 0;/g' \
586 587 588 589
	>> $@-tmp
	chmod a-w $@-tmp
	rm -f $@
	mv $@-tmp $@
590

591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616
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

617 618
libexec_PROGRAMS =

619
if WITH_STORAGE_DISK
R
Richard W.M. Jones 已提交
620
if WITH_LIBVIRTD
621
libexec_PROGRAMS += libvirt_parthelper
622

623
libvirt_parthelper_SOURCES = $(STORAGE_HELPER_DISK_SOURCES)
624 625 626
libvirt_parthelper_LDFLAGS = $(WARN_CFLAGS) $(COVERAGE_LDCFLAGS)
libvirt_parthelper_LDADD = $(LIBPARTED_LIBS)
libvirt_parthelper_CFLAGS =  $(LIBPARTED_CFLAGS)
R
Richard W.M. Jones 已提交
627
endif
628
endif
629 630
EXTRA_DIST += $(STORAGE_HELPER_DISK_SOURCES)

631

632 633 634 635 636 637
if WITH_LXC
if WITH_LIBVIRTD
libexec_PROGRAMS += libvirt_lxc

libvirt_lxc_SOURCES =						\
		$(LXC_CONTROLLER_SOURCES)			\
638
		$(UTIL_SOURCES)					\
639 640
		$(DOMAIN_CONF_SOURCES)
libvirt_lxc_LDFLAGS = $(WARN_CFLAGS) $(COVERAGE_LDCFLAGS)
641 642
libvirt_lxc_LDADD = $(LIBXML_LIBS) $(NUMACTL_LIBS) ../gnulib/lib/libgnu.la
libvirt_lxc_CFLAGS =  $(LIBPARTED_CFLAGS) $(NUMACTL_CFLAGS)
643 644 645 646
endif
endif
EXTRA_DIST += $(LXC_CONTROLLER_SOURCES)

R
Richard W.M. Jones 已提交
647
install-exec-local:
648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669
	$(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 已提交
670

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