Makefile.am 19.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
# 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 145
QEMU_DRIVER_SOURCES =						\
		qemu_conf.c qemu_conf.h				\
		qemu_driver.c qemu_driver.h
R
Richard W.M. Jones 已提交
146

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

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

159 160
NETWORK_DRIVER_SOURCES =					\
		network_driver.h network_driver.c
161

162
# Storage backend specific impls
163
STORAGE_DRIVER_SOURCES =					\
164 165
		storage_driver.h storage_driver.c		\
		storage_backend.h storage_backend.c
166

167 168 169 170
# Network driver generic impl APIs
NODE_DEVICE_CONF_SOURCES =					\
		node_device_conf.c node_device_conf.h

171
STORAGE_DRIVER_FS_SOURCES =					\
R
Richard W.M. Jones 已提交
172 173
		storage_backend_fs.h storage_backend_fs.c

174
STORAGE_DRIVER_LVM_SOURCES =					\
175
		storage_backend_logical.h			\
176 177 178 179 180
		storage_backend_logical.c

STORAGE_DRIVER_ISCSI_SOURCES =					\
		storage_backend_iscsi.h storage_backend_iscsi.c

181 182 183
STORAGE_DRIVER_SCSI_SOURCES =					\
		storage_backend_scsi.h storage_backend_scsi.c

184 185 186 187 188 189 190
STORAGE_DRIVER_DISK_SOURCES =					\
		storage_backend_disk.h storage_backend_disk.c

STORAGE_HELPER_DISK_SOURCES =					\
		parthelper.c


191 192 193 194
# Security framework and drivers for various models
SECURITY_DRIVER_SOURCES =                                      \
		security.h security.c

195 196 197
SECURITY_DRIVER_SELINUX_SOURCES =				\
		security_selinux.h security_selinux.c

198

199 200 201 202
NODE_DEVICE_DRIVER_SOURCES =					\
		node_device.c node_device.h

NODE_DEVICE_DRIVER_HAL_SOURCES =				\
203
		node_device_hal.c				\
D
Daniel P. Berrange 已提交
204
		node_device_hal.h				\
205 206
		node_device_hal_linux.c

207 208 209
NODE_DEVICE_DRIVER_DEVKIT_SOURCES =				\
		node_device_devkit.c

210 211 212 213 214 215 216

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

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

noinst_LTLIBRARIES += libvirt_driver.la
libvirt_la_LIBADD += libvirt_driver.la
libvirt_driver_la_SOURCES =					\
		$(DRIVER_SOURCES)				\
228 229
		$(DOMAIN_CONF_SOURCES)				\
		$(NETWORK_CONF_SOURCES)				\
230
		$(STORAGE_CONF_SOURCES)				\
231
		$(INTERFACE_CONF_SOURCES)			\
232 233
		$(NODE_DEVICE_CONF_SOURCES)

234 235
libvirt_driver_la_CFLAGS = $(XEN_CFLAGS) $(NUMACTL_CFLAGS)
libvirt_driver_la_LDFLAGS = $(XEN_LIBS) $(NUMACTL_LIBS)
236

237
USED_SYM_FILES = libvirt_private.syms
238

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

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

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

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

299 300 301 302 303 304 305 306 307 308 309 310 311
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

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

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

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

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




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

D
Daniel Veillard 已提交
392 393 394 395 396
if WITH_NETCF
libvirt_driver_interface_la_CFLAGS = $(NETCF_CFLAGS)
libvirt_driver_interface_la_LDFLAGS = $(NETCF_LIBS)
endif

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

414
if WITH_STORAGE_LVM
415
libvirt_driver_storage_la_SOURCES += $(STORAGE_DRIVER_LVM_SOURCES)
416 417
endif

418
if WITH_STORAGE_ISCSI
419
libvirt_driver_storage_la_SOURCES += $(STORAGE_DRIVER_ISCSI_SOURCES)
420 421
endif

422 423 424 425
if WITH_STORAGE_SCSI
libvirt_driver_storage_la_SOURCES += $(STORAGE_DRIVER_SCSI_SOURCES)
endif

426
if WITH_STORAGE_DISK
427
libvirt_driver_storage_la_SOURCES += $(STORAGE_DRIVER_DISK_SOURCES)
428
endif
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 456 457 458 459
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


460 461 462
libvirt_driver_security_la_SOURCES = $(SECURITY_DRIVER_SOURCES)
noinst_LTLIBRARIES += libvirt_driver_security.la
libvirt_la_LIBADD += libvirt_driver_security.la
463 464 465
if WITH_SECDRIVER_SELINUX
libvirt_driver_security_la_SOURCES += $(SECURITY_DRIVER_SELINUX_SOURCES)
endif
466

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

491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509
#
# 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.
#

510
if WITH_DRIVER_MODULES
511
USED_SYM_FILES += libvirt_driver_modules.syms
512
endif
513 514

if WITH_BRIDGE
515
USED_SYM_FILES += libvirt_bridge.syms
516
endif
517 518

if WITH_LINUX
519
USED_SYM_FILES += libvirt_linux.syms
520
endif
521

522 523 524 525 526 527
EXTRA_DIST += \
  libvirt_public.syms		\
  libvirt_private.syms		\
  libvirt_driver_modules.syms	\
  libvirt_bridge.syms		\
  libvirt_linux.syms
528

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

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

556 557 558
# 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.
559
noinst_LTLIBRARIES += libvirt_test.la
560

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

575 576 577 578
virsh_SOURCES =							\
		console.c console.h				\
		virsh.c

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

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

624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649
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

650 651
libexec_PROGRAMS =

652
if WITH_STORAGE_DISK
R
Richard W.M. Jones 已提交
653
if WITH_LIBVIRTD
654
libexec_PROGRAMS += libvirt_parthelper
655

656
libvirt_parthelper_SOURCES = $(STORAGE_HELPER_DISK_SOURCES)
657 658 659
libvirt_parthelper_LDFLAGS = $(WARN_CFLAGS) $(COVERAGE_LDCFLAGS)
libvirt_parthelper_LDADD = $(LIBPARTED_LIBS)
libvirt_parthelper_CFLAGS =  $(LIBPARTED_CFLAGS)
R
Richard W.M. Jones 已提交
660
endif
661
endif
662 663
EXTRA_DIST += $(STORAGE_HELPER_DISK_SOURCES)

664

665 666 667 668 669 670
if WITH_LXC
if WITH_LIBVIRTD
libexec_PROGRAMS += libvirt_lxc

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

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

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