Makefile.am 39.0 KB
Newer Older
D
Daniel Veillard 已提交
1 2
## Process this file with automake to produce Makefile.in

3 4 5 6 7 8 9
# No libraries with the exception of LIBXML should be listed
# here. List them against the individual XXX_la_CFLAGS targets
# that actually use them
INCLUDES =							\
		-I$(top_srcdir)/gnulib/lib			\
		-I../gnulib/lib					\
		-I../include					\
10
		-I@top_srcdir@/src/util				\
11 12 13 14
		-I@top_srcdir@/include				\
		$(DRIVER_MODULE_CFLAGS)				\
		$(LIBXML_CFLAGS)				\
		$(WARN_CFLAGS)					\
15 16 17
		$(LOCK_CHECKING_CFLAGS)			\
		-DIN_LIBVIRT				\
		$(WIN32_EXTRA_CFLAGS)
18

19 20 21
AM_CFLAGS = $(COVERAGE_CFLAGS)
AM_LDFLAGS = $(COVERAGE_LDFLAGS)

22
EXTRA_DIST = $(conf_DATA)
23

24 25
BUILT_SOURCES =

26 27 28
if WITH_NETWORK
UUID=$(shell uuidgen 2>/dev/null)
endif
29

C
Chris Lalancette 已提交
30
lib_LTLIBRARIES = libvirt.la libvirt-qemu.la
31

32 33 34
moddir = $(libdir)/libvirt/drivers
mod_LTLIBRARIES =

A
Amy Griffis 已提交
35 36
confdir = $(sysconfdir)/libvirt
conf_DATA =
37

38 39 40 41 42 43
augeasdir = $(datadir)/augeas/lenses
augeas_DATA =

augeastestdir = $(datadir)/augeas/lenses/tests
augeastest_DATA =

44 45
# These files are not related to driver APIs. Simply generic
# helper APIs for various purposes
46
UTIL_SOURCES =							\
47
		util/authhelper.c util/authhelper.h		\
48
		util/bitmap.c util/bitmap.h			\
49 50 51 52 53
		util/bridge.c util/bridge.h			\
		util/buf.c util/buf.h				\
		util/conf.c util/conf.h				\
		util/cgroup.c util/cgroup.h			\
		util/event.c util/event.h			\
54
		util/files.c util/files.h			\
55
		util/hash.c util/hash.h				\
D
Daniel Veillard 已提交
56
		util/hooks.c util/hooks.h			\
57
		util/iptables.c util/iptables.h			\
G
Gerhard Stenzel 已提交
58
		util/ebtables.c util/ebtables.h			\
59
		util/dnsmasq.c util/dnsmasq.h                   \
60
		util/json.c util/json.h				\
61
		util/logging.c util/logging.h			\
62
		util/macvtap.c util/macvtap.h			\
63 64
		util/memory.c util/memory.h			\
		util/pci.c util/pci.h				\
65
		util/processinfo.c util/processinfo.h		\
66
		util/hostusb.c util/hostusb.h			\
67
		util/network.c util/network.h			\
68
		util/interface.c util/interface.h		\
69 70
		util/qparams.c util/qparams.h			\
		util/stats_linux.c util/stats_linux.h		\
71
		util/storage_file.c util/storage_file.h		\
72
		util/sysinfo.c util/sysinfo.h			\
73 74 75 76 77 78
		util/threads.c util/threads.h			\
		util/threads-pthread.h				\
		util/threads-win32.h				\
		util/uuid.c util/uuid.h				\
		util/util.c util/util.h				\
		util/xml.c util/xml.h				\
79
		util/virtaudit.c util/virtaudit.h               \
80
		util/virterror.c util/virterror_internal.h
81 82

EXTRA_DIST += util/threads-pthread.c util/threads-win32.c
83

84
# Internal generic driver infrastructure
85
NODE_INFO_SOURCES = nodeinfo.h nodeinfo.c
86
DRIVER_SOURCES =						\
87
		driver.c driver.h				\
88 89
		internal.h					\
		datatypes.c datatypes.h				\
90
		fdstream.c fdstream.h                 \
91
		$(NODE_INFO_SOURCES)				\
92 93 94
		libvirt.c libvirt_internal.h


95
# XML configuration format handling sources
96 97
# Domain driver generic impl APIs
DOMAIN_CONF_SOURCES =						\
98
		conf/capabilities.c conf/capabilities.h		\
99 100
		conf/domain_conf.c conf/domain_conf.h		\
		conf/domain_nwfilter.c conf/domain_nwfilter.h
101 102 103

DOMAIN_EVENT_SOURCES =						\
		conf/domain_event.c conf/domain_event.h
104 105

# Network driver generic impl APIs
106
NETWORK_CONF_SOURCES =						\
107
		conf/network_conf.c conf/network_conf.h
108

109 110
# Network filter driver generic impl APIs
NWFILTER_PARAM_CONF_SOURCES =					\
111 112
		conf/nwfilter_params.c conf/nwfilter_params.h	\
		conf/nwfilter_conf.h
113 114 115 116 117

NWFILTER_CONF_SOURCES =					\
		$(NWFILTER_PARAM_CONF_SOURCES)			\
		conf/nwfilter_conf.c conf/nwfilter_conf.h

118
# Storage driver generic impl APIs
119 120
STORAGE_CONF_SOURCES =                                         \
		conf/storage_conf.h conf/storage_conf.c
121

122
# Interface driver generic impl APIs
123 124
INTERFACE_CONF_SOURCES =                                       \
		conf/interface_conf.c conf/interface_conf.h
125

126
# Secret driver generic impl APIs
127 128 129 130 131 132 133 134 135 136
SECRET_CONF_SOURCES =                                          \
		conf/secret_conf.h conf/secret_conf.c

# Network driver generic impl APIs
NODE_DEVICE_CONF_SOURCES =                                     \
		conf/node_device_conf.c conf/node_device_conf.h

ENCRYPTION_CONF_SOURCES =					\
		conf/storage_encryption_conf.c conf/storage_encryption_conf.h

137 138 139
CPU_CONF_SOURCES =						\
		conf/cpu_conf.c conf/cpu_conf.h

140 141 142 143
CONF_SOURCES =							\
		$(DOMAIN_CONF_SOURCES)				\
		$(DOMAIN_EVENT_SOURCES)				\
		$(NETWORK_CONF_SOURCES)				\
144
		$(NWFILTER_CONF_SOURCES)			\
145 146 147 148
		$(NODE_DEVICE_CONF_SOURCES)			\
		$(STORAGE_CONF_SOURCES)				\
		$(ENCRYPTION_CONF_SOURCES)			\
		$(INTERFACE_CONF_SOURCES)			\
149 150
		$(SECRET_CONF_SOURCES)				\
		$(CPU_CONF_SOURCES)
151

152 153
# The remote RPC driver, covering domains, storage, networks, etc
REMOTE_DRIVER_SOURCES =						\
154 155
		gnutls_1_0_compat.h			\
		remote/remote_driver.c remote/remote_driver.h	\
156
		remote/remote_protocol.c			\
C
Chris Lalancette 已提交
157 158 159
		remote/remote_protocol.h			\
		remote/qemu_protocol.c				\
		remote/qemu_protocol.h
160

E
Eric Blake 已提交
161 162
EXTRA_DIST += remote/remote_protocol.x remote/qemu_protocol.x \
		remote/rpcgen_fix.pl
163

164 165 166 167 168 169 170 171 172 173
# Ensure that we don't change the struct or member names or member ordering
# in remote_protocol.x  The embedded perl below needs a few comments, and
# presumes you know what pdwtags output looks like:
# * use -0777 -n to slurp the entire file into $_.
# * the "split" splits on the /* DD */ comments, so that $p iterates
#     through the struct definitions.
# * process only "struct remote_..." entries
# * remove comments and preceding TAB throughout
# * remove empty lines throughout
# * remove white space at end of buffer
174 175 176 177 178 179 180 181 182 183

# With pdwtags 1.8, --verbose output includes separators like these:
# /* 93 */
# /* <0> (null):0 */
# whereas with pdwtags 1.3, they look like this:
# /* <2d2> /usr/include/libio.h:180 */
# The concatenation of the following regexps matches both cases.
r1 = (?:/\* \d+ \*/\n)?
r2 = /\* <[[:xdigit:]]+> \S+:\d+ \*/

184 185
.PHONY: remote_protocol-structs
remote_protocol-structs:
186
	$(AM_V_GEN)if (pdwtags --help) > /dev/null 2>&1; then		\
187
	  pdwtags --verbose libvirt_driver_remote_la-remote_protocol.$(OBJEXT) \
188
	    | perl -0777 -n						\
189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205
		-e 'foreach my $$p (split m!\n\n$(r1)$(r2)\n!) {'	\
		-e '  if ($$p =~ /^struct remote_/) {'			\
		-e '    $$p =~ s!\t*/\*.*?\*/!!sg;'			\
		-e '    $$p =~ s!\s+\n!\n!sg;'				\
		-e '    $$p =~ s!\s+$$!!;'				\
		-e '    print "$$p\n";'					\
		-e '    $$n++;'						\
		-e '  }'						\
		-e '}'							\
		-e 'END {'						\
		-e '  if ($$n < 300) {'					\
		-e '    warn "WARNING: your pdwtags program is too old\n";' \
		-e '    warn "WARNING: skipping the $@ test\n";'	\
		-e '    warn "WARNING: install dwarves-1.3 or newer\n";' \
		-e '    exit 8;'					\
		-e '  }'						\
		-e '}'							\
206
		> $@-t;							\
207
          case $$? in 8) exit 0;; 0) ;; *) exit 1;; esac;		\
208
	  diff -u $@-t $(srcdir)/$@; st=$$?; rm -f $@-t; exit $$st;	\
209
	else								\
210 211
	  echo 'WARNING: you lack pdwtags; skipping the $@ test' >&2;	\
	  echo 'WARNING: install the dwarves package to get pdwtags' >&2; \
212 213 214 215
	fi
EXTRA_DIST += remote_protocol-structs
check-local: remote_protocol-structs

216 217
# Mock driver, covering domains, storage, networks, etc
TEST_DRIVER_SOURCES =						\
218
		test/test_driver.c test/test_driver.h
219 220 221 222 223



# Now the Hypervisor specific drivers
XEN_DRIVER_SOURCES =						\
224 225 226 227 228 229 230
		xen/sexpr.c xen/sexpr.h				\
		xen/block_stats.c xen/block_stats.h		\
		xen/xen_hypervisor.c xen/xen_hypervisor.h	\
		xen/xen_driver.c xen/xen_driver.h		\
		xen/xend_internal.c xen/xend_internal.h		\
		xen/xm_internal.c xen/xm_internal.h		\
		xen/xs_internal.c xen/xs_internal.h
231
if WITH_XEN_INOTIFY
232
XEN_DRIVER_SOURCES += xen/xen_inotify.c xen/xen_inotify.h
233
endif
234 235

LXC_DRIVER_SOURCES =						\
236 237 238
		lxc/lxc_conf.c lxc/lxc_conf.h			\
		lxc/lxc_container.c lxc/lxc_container.h		\
		lxc/lxc_driver.c lxc/lxc_driver.h		\
239
		lxc/veth.c lxc/veth.h
240

241
LXC_CONTROLLER_SOURCES =					\
242 243 244
		lxc/lxc_conf.c lxc/lxc_conf.h			\
		lxc/lxc_container.c lxc/lxc_container.h		\
		lxc/lxc_controller.c				\
245
		lxc/veth.c lxc/veth.h
246

J
Jamie Strandboge 已提交
247 248 249
SECURITY_DRIVER_APPARMOR_HELPER_SOURCES =			\
		security/virt-aa-helper.c

250 251 252
PHYP_DRIVER_SOURCES =						\
		phyp/phyp_driver.c phyp/phyp_driver.h

253
OPENVZ_DRIVER_SOURCES =						\
254 255
		openvz/openvz_conf.c openvz/openvz_conf.h	\
		openvz/openvz_driver.c openvz/openvz_driver.h
256

257 258 259
VBOX_DRIVER_SOURCES =						\
        vbox/vbox_XPCOMCGlue.c vbox/vbox_XPCOMCGlue.h		\
        vbox/vbox_driver.c vbox/vbox_driver.h			\
260
        vbox/vbox_V2_2.c vbox/vbox_CAPI_v2_2.h			\
261
        vbox/vbox_V3_0.c vbox/vbox_CAPI_v3_0.h			\
262 263
        vbox/vbox_V3_1.c vbox/vbox_CAPI_v3_1.h			\
        vbox/vbox_V3_2.c vbox/vbox_CAPI_v3_2.h
264

265 266
VBOX_DRIVER_EXTRA_DIST = vbox/vbox_tmpl.c vbox/README

267
QEMU_DRIVER_SOURCES =						\
268
		qemu/qemu_conf.c qemu/qemu_conf.h		\
269
		qemu/qemu_monitor.c qemu/qemu_monitor.h		\
270 271
		qemu/qemu_monitor_text.c			\
		qemu/qemu_monitor_text.h			\
D
Daniel P. Berrange 已提交
272 273 274
		qemu/qemu_monitor_json.c			\
		qemu/qemu_monitor_json.h			\
		qemu/qemu_driver.c qemu/qemu_driver.h		\
E
Eric Blake 已提交
275
		qemu/qemu_bridge_filter.c			\
276 277
		qemu/qemu_bridge_filter.h			\
		qemu/qemu_security_stacked.h			\
278 279 280
		qemu/qemu_security_stacked.c			\
		qemu/qemu_security_dac.h			\
		qemu/qemu_security_dac.c
R
Richard W.M. Jones 已提交
281

282 283
XENAPI_DRIVER_SOURCES =								\
		xenapi/xenapi_driver.c xenapi/xenapi_driver.h	\
284
		xenapi/xenapi_driver_private.h					\
285 286
		xenapi/xenapi_utils.c xenapi/xenapi_utils.h

287
UML_DRIVER_SOURCES =						\
D
Daniel P. Berrange 已提交
288 289
		uml/uml_conf.c uml/uml_conf.h			\
		uml/uml_driver.c uml/uml_driver.h
290

291 292 293 294 295 296
ONE_DRIVER_SOURCES =						\
		./opennebula/one_conf.c				\
		./opennebula/one_conf.h				\
		./opennebula/one_driver.c			\
		./opennebula/one_driver.h			\
		./opennebula/one_client.c			\
297
		./opennebula/one_client.h
D
Daniel Veillard 已提交
298

299
ESX_DRIVER_SOURCES =						\
300
		esx/esx_private.h						\
301
		esx/esx_driver.c esx/esx_driver.h		\
302 303 304 305 306
		esx/esx_interface_driver.c esx/esx_interface_driver.h		\
		esx/esx_network_driver.c esx/esx_network_driver.h		\
		esx/esx_storage_driver.c esx/esx_storage_driver.h		\
		esx/esx_device_monitor.c esx/esx_device_monitor.h		\
		esx/esx_secret_driver.c esx/esx_secret_driver.h		\
M
Matthias Bolte 已提交
307
		esx/esx_nwfilter_driver.c esx/esx_nwfilter_driver.h		\
308 309
		esx/esx_util.c esx/esx_util.h			\
		esx/esx_vi.c esx/esx_vi.h			\
310 311 312 313
		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

314
ESX_DRIVER_GENERATED =							\
315 316
		esx/esx_vi_methods.generated.c				\
		esx/esx_vi_methods.generated.h				\
317 318 319 320 321 322 323 324 325 326 327 328 329
		esx/esx_vi_types.generated.c				\
		esx/esx_vi_types.generated.h				\
		esx/esx_vi_types.generated.typedef			\
		esx/esx_vi_types.generated.typeenum			\
		esx/esx_vi_types.generated.typetostring			\
		esx/esx_vi_types.generated.typefromstring

ESX_DRIVER_EXTRA_DIST =						\
		esx/README						\
		esx/esx_vi_generator.input				\
		esx/esx_vi_generator.py					\
		$(ESX_DRIVER_GENERATED)

330
NETWORK_DRIVER_SOURCES =					\
331
		network/bridge_driver.h network/bridge_driver.c
332

333
INTERFACE_DRIVER_SOURCES =					\
334
		interface/netcf_driver.h interface/netcf_driver.c
335

336
SECRET_DRIVER_SOURCES =						\
337
		secret/secret_driver.h secret/secret_driver.c
338

339
# Storage backend specific impls
340
STORAGE_DRIVER_SOURCES =					\
341 342
		storage/storage_driver.h storage/storage_driver.c		\
		storage/storage_backend.h storage/storage_backend.c
343 344

STORAGE_DRIVER_FS_SOURCES =					\
345
		storage/storage_backend_fs.h storage/storage_backend_fs.c
R
Richard W.M. Jones 已提交
346

347
STORAGE_DRIVER_LVM_SOURCES =					\
348 349
		storage/storage_backend_logical.h			\
		storage/storage_backend_logical.c
350 351

STORAGE_DRIVER_ISCSI_SOURCES =					\
352
		storage/storage_backend_iscsi.h storage/storage_backend_iscsi.c
353

354
STORAGE_DRIVER_SCSI_SOURCES =					\
355
		storage/storage_backend_scsi.h storage/storage_backend_scsi.c
356

D
Dave Allan 已提交
357
STORAGE_DRIVER_MPATH_SOURCES =					\
358
		storage/storage_backend_mpath.h storage/storage_backend_mpath.c
D
Dave Allan 已提交
359

360
STORAGE_DRIVER_DISK_SOURCES =					\
361
		storage/storage_backend_disk.h storage/storage_backend_disk.c
362 363

STORAGE_HELPER_DISK_SOURCES =					\
364
		storage/parthelper.c
365

366 367 368
# Network filters
NWFILTER_DRIVER_SOURCES =					\
		nwfilter/nwfilter_driver.h nwfilter/nwfilter_driver.c	\
369 370 371
		nwfilter/nwfilter_gentech_driver.c			\
		nwfilter/nwfilter_gentech_driver.h			\
		nwfilter/nwfilter_ebiptables_driver.c			\
372 373 374
		nwfilter/nwfilter_ebiptables_driver.h			\
		nwfilter/nwfilter_learnipaddr.c				\
		nwfilter/nwfilter_learnipaddr.h
375

376

377
# Security framework and drivers for various models
378
SECURITY_DRIVER_SOURCES =					\
379
		security/security_driver.h security/security_driver.c
380

381
SECURITY_DRIVER_SELINUX_SOURCES =				\
382
		security/security_selinux.h security/security_selinux.c
383

J
Jamie Strandboge 已提交
384 385 386
SECURITY_DRIVER_APPARMOR_SOURCES =				\
		security/security_apparmor.h security/security_apparmor.c

387

388
NODE_DEVICE_DRIVER_SOURCES =					\
389 390 391
		node_device/node_device_driver.c \
		node_device/node_device_driver.h \
		node_device/node_device_linux_sysfs.c
392 393

NODE_DEVICE_DRIVER_HAL_SOURCES =				\
394
		node_device/node_device_hal.c			\
395
		node_device/node_device_hal.h
396

397
NODE_DEVICE_DRIVER_UDEV_SOURCES =				\
D
Daniel Veillard 已提交
398 399
		node_device/node_device_udev.c			\
		node_device/node_device_udev.h
400

J
Jiri Denemark 已提交
401 402 403 404 405
CPU_SOURCES =							\
		cpu/cpu.h cpu/cpu.c				\
		cpu/cpu_generic.h cpu/cpu_generic.c		\
		cpu/cpu_x86.h cpu/cpu_x86.c cpu/cpu_x86_data.h	\
		cpu/cpu_map.h cpu/cpu_map.c
406

J
Jiri Denemark 已提交
407 408
pkgdata_DATA =	cpu/cpu_map.xml

E
Eric Blake 已提交
409
EXTRA_DIST +=	$(pkgdata_DATA)
410

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

417
noinst_LTLIBRARIES = libvirt_util.la
418 419
libvirt_la_LIBADD = $(libvirt_la_BUILT_LIBADD)
libvirt_la_BUILT_LIBADD = libvirt_util.la
420 421
libvirt_util_la_SOURCES =					\
		$(UTIL_SOURCES)
422
libvirt_util_la_CFLAGS = $(CAPNG_CFLAGS) $(YAJL_CFLAGS) $(LIBNL_CFLAGS) \
423 424 425
		$(AM_CFLAGS) $(AUDIT_CFLAGS)
libvirt_util_la_LIBADD = $(CAPNG_LIBS) $(YAJL_LIBS) $(LIBNL_LIBS) \
		$(LIB_PTHREAD) $(AUDIT_LIBS)
426

427 428

noinst_LTLIBRARIES += libvirt_conf.la
429
libvirt_la_BUILT_LIBADD += libvirt_conf.la
430
libvirt_conf_la_SOURCES = $(CONF_SOURCES)
431 432
libvirt_conf_la_CFLAGS = $(AM_CFLAGS)
libvirt_conf_la_LDFLAGS = $(AM_LDFLAGS)
433

J
Jiri Denemark 已提交
434
noinst_LTLIBRARIES += libvirt_cpu.la
435
libvirt_la_BUILT_LIBADD += libvirt_cpu.la
J
Jiri Denemark 已提交
436
libvirt_cpu_la_CFLAGS = \
437
		-I@top_srcdir@/src/conf $(AM_CFLAGS)
J
Jiri Denemark 已提交
438 439
libvirt_cpu_la_SOURCES = $(CPU_SOURCES)

440

441
noinst_LTLIBRARIES += libvirt_driver.la
442
libvirt_la_BUILT_LIBADD += libvirt_driver.la
443
libvirt_driver_la_SOURCES = $(DRIVER_SOURCES)
444

M
Matthias Bolte 已提交
445
libvirt_driver_la_CFLAGS = $(NUMACTL_CFLAGS) $(GNUTLS_CFLAGS) \
446
		-I@top_srcdir@/src/conf $(AM_CFLAGS)
M
Matthias Bolte 已提交
447
libvirt_driver_la_LIBADD = $(NUMACTL_LIBS) $(GNUTLS_LIBS)
448

449
USED_SYM_FILES = libvirt_private.syms
450

451
if WITH_TEST
452 453 454
if WITH_DRIVER_MODULES
mod_LTLIBRARIES += libvirt_driver_test.la
else
455
noinst_LTLIBRARIES += libvirt_driver_test.la
456
libvirt_la_BUILT_LIBADD += libvirt_driver_test.la
457
endif
458
libvirt_driver_test_la_CFLAGS = \
459
		-I@top_srcdir@/src/conf $(AM_CFLAGS)
460
if WITH_DRIVER_MODULES
461
libvirt_driver_test_la_LDFLAGS = -module -avoid-version $(AM_LDFLAGS)
462
endif
463
libvirt_driver_test_la_SOURCES = $(TEST_DRIVER_SOURCES)
464 465 466
endif

if WITH_REMOTE
467 468 469
if WITH_DRIVER_MODULES
mod_LTLIBRARIES += libvirt_driver_remote.la
else
470
noinst_LTLIBRARIES += libvirt_driver_remote.la
471
libvirt_la_BUILT_LIBADD += libvirt_driver_remote.la
472
endif
473 474
libvirt_driver_remote_la_CFLAGS =				\
		$(GNUTLS_CFLAGS)				\
475
		$(SASL_CFLAGS)					\
476 477 478
		-I@top_srcdir@/src/conf				\
		$(AM_CFLAGS)
libvirt_driver_remote_la_LDFLAGS = $(AM_LDFLAGS)
479
libvirt_driver_remote_la_LIBADD = $(GNUTLS_LIBS) $(SASL_LIBS)
480 481 482
if WITH_DRIVER_MODULES
libvirt_driver_remote_la_LDFLAGS += -module -avoid-version
endif
483
libvirt_driver_remote_la_SOURCES = $(REMOTE_DRIVER_SOURCES)
484 485 486 487 488 489

if HAVE_RPCGEN
#
# Maintainer-only target for re-generating the derived .c/.h source
# files, which are actually derived from the .x file.
#
490
# For committing protocol changes to GIT, the GLIBC rpcgen *must*
491 492 493 494 495
# be used.
#
# Support for non-GLIB rpcgen is here as a convenience for
# non-Linux people needing to test changes during dev.
#
C
Chris Lalancette 已提交
496
rpcgen-normal:
497 498 499 500
	rm -f rp.c-t rp.h-t rp.c-t1 rp.c-t2 rp.h-t1
	$(RPCGEN) -h -o rp.h-t $(srcdir)/remote/remote_protocol.x
	$(RPCGEN) -c -o rp.c-t $(srcdir)/remote/remote_protocol.x
if HAVE_GLIBC_RPCGEN
P
Paolo Bonzini 已提交
501 502
	perl -w $(srcdir)/remote/rpcgen_fix.pl rp.h-t > rp.h-t1
	perl -w $(srcdir)/remote/rpcgen_fix.pl rp.c-t > rp.c-t1
503 504 505 506 507 508 509 510 511 512
	(echo '#include <config.h>'; cat rp.c-t1) > rp.c-t2
	chmod 0444 rp.c-t2 rp.h-t1
	mv -f rp.h-t1 $(srcdir)/remote/remote_protocol.h
	mv -f rp.c-t2 $(srcdir)/remote/remote_protocol.c
	rm -f rp.c-t rp.h-t rp.c-t1
else
	chmod 0444 rp.c-t rp.h-t
	mv -f rp.h-t $(srcdir)/remote/remote_protocol.h
	mv -f rp.c-t $(srcdir)/remote/remote_protocol.c
endif
C
Chris Lalancette 已提交
513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543

rpcgen-qemu:
	rm -f rp_qemu.c-t rp_qemu.h-t rp_qemu.c-t1 rp_qemu.c-t2 rp_qemu.h-t1
	$(RPCGEN) -h -o rp_qemu.h-t $(srcdir)/remote/qemu_protocol.x
	$(RPCGEN) -c -o rp_qemu.c-t $(srcdir)/remote/qemu_protocol.x
if HAVE_GLIBC_RPCGEN
	perl -w $(srcdir)/remote/rpcgen_fix.pl rp_qemu.h-t > rp_qemu.h-t1
	perl -w $(srcdir)/remote/rpcgen_fix.pl rp_qemu.c-t > rp_qemu.c-t1
	(echo '#include <config.h>'; cat rp_qemu.c-t1) > rp_qemu.c-t2
	chmod 0444 rp_qemu.c-t2 rp_qemu.h-t1
	mv -f rp_qemu.h-t1 $(srcdir)/remote/qemu_protocol.h
	mv -f rp_qemu.c-t2 $(srcdir)/remote/qemu_protocol.c
	rm -f rp_qemu.c-t rp_qemu.h-t rp_qemu.c-t1
else
	chmod 0444 rp_qemu.c-t rp_qemu.h-t
	mv -f rp_qemu.h-t $(srcdir)/remote/qemu_protocol.h
	mv -f rp_qemu.c-t $(srcdir)/remote/qemu_protocol.c
endif

#
# Maintainer-only target for re-generating the derived .c/.h source
# files, which are actually derived from the .x file.
#
# For committing protocol changes to GIT, the GLIBC rpcgen *must*
# be used.
#
# Support for non-GLIB rpcgen is here as a convenience for
# non-Linux people needing to test changes during dev.
#
rpcgen: rpcgen-normal rpcgen-qemu

544 545 546
endif

remote/remote_protocol.c: remote/remote_protocol.h
547 548 549
endif

if WITH_XEN
550 551 552
if WITH_DRIVER_MODULES
mod_LTLIBRARIES += libvirt_driver_xen.la
else
553
noinst_LTLIBRARIES += libvirt_driver_xen.la
554
libvirt_la_BUILT_LIBADD += libvirt_driver_xen.la
555
endif
E
Eric Blake 已提交
556
libvirt_driver_xen_la_CFLAGS =					\
557
		$(XEN_CFLAGS)					\
558 559 560
		-I@top_srcdir@/src/conf				\
		$(AM_CFLAGS)
libvirt_driver_xen_la_LDFLAGS = $(AM_LDFLAGS)
561
libvirt_driver_xen_la_LIBADD = $(XEN_LIBS)
562
if WITH_DRIVER_MODULES
563
libvirt_driver_xen_la_LIBADD += ../gnulib/lib/libgnu.la
564 565
libvirt_driver_xen_la_LDFLAGS += -module -avoid-version
endif
566
libvirt_driver_xen_la_SOURCES = $(XEN_DRIVER_SOURCES)
567 568
endif

569 570 571 572 573
if WITH_PHYP
if WITH_DRIVER_MODULES
mod_LTLIBRARIES += libvirt_driver_phyp.la
else
noinst_LTLIBRARIES += libvirt_driver_phyp.la
574
libvirt_la_BUILT_LIBADD += libvirt_driver_phyp.la
575
endif
576
libvirt_driver_phyp_la_LIBADD = $(LIBSSH2_LIBS)
577 578 579 580
if WITH_DRIVER_MODULES
libvirt_driver_phyp_la_LIBADD += ../gnulib/lib/libgnu.la
libvirt_driver_phyp_la_LDFLAGS = -module -avoid-version $(AM_LDFLAGS)
endif
581
libvirt_driver_phyp_la_CFLAGS = $(LIBSSH2_CFLAGS) \
582
		-I@top_srcdir@/src/conf $(AM_CFLAGS)
583 584 585
libvirt_driver_phyp_la_SOURCES = $(PHYP_DRIVER_SOURCES)
endif

586
if WITH_OPENVZ
587 588 589
if WITH_DRIVER_MODULES
mod_LTLIBRARIES += libvirt_driver_openvz.la
else
590
noinst_LTLIBRARIES += libvirt_driver_openvz.la
591
libvirt_la_BUILT_LIBADD += libvirt_driver_openvz.la
592
endif
593
libvirt_driver_openvz_la_CFLAGS = \
594
		-I@top_srcdir@/src/conf $(AM_CFLAGS)
595
if WITH_DRIVER_MODULES
596
libvirt_driver_openvz_la_LIBADD = ../gnulib/lib/libgnu.la
597
libvirt_driver_openvz_la_LDFLAGS = -module -avoid-version $(AM_LDFLAGS)
598
endif
599
libvirt_driver_openvz_la_SOURCES = $(OPENVZ_DRIVER_SOURCES)
600 601
endif

602 603 604 605 606
if WITH_VBOX
if WITH_DRIVER_MODULES
mod_LTLIBRARIES += libvirt_driver_vbox.la
else
noinst_LTLIBRARIES += libvirt_driver_vbox.la
607
libvirt_la_BUILT_LIBADD += libvirt_driver_vbox.la
608
endif
609
libvirt_driver_vbox_la_CFLAGS = \
610
		-I@top_srcdir@/src/conf $(AM_CFLAGS)
611
libvirt_driver_vbox_la_LIBADD = $(DLOPEN_LIBS)
612
if WITH_DRIVER_MODULES
613
libvirt_driver_vbox_la_LIBADD += ../gnulib/lib/libgnu.la
614
libvirt_driver_vbox_la_LDFLAGS = -module -avoid-version $(AM_LDFLAGS)
615 616 617 618
endif
libvirt_driver_vbox_la_SOURCES = $(VBOX_DRIVER_SOURCES)
endif

619 620 621 622 623
if WITH_XENAPI
if WITH_DRIVER_MODULES
mod_LTLIBRARIES += libvirt_driver_xenapi.la
else
noinst_LTLIBRARIES += libvirt_driver_xenapi.la
624
libvirt_la_BUILT_LIBADD += libvirt_driver_xenapi.la
625 626
endif
libvirt_driver_xenapi_la_CFLAGS = $(LIBXENSERVER_CFLAGS) $(LIBCURL_CFLAGS) \
627 628
		-I@top_srcdir@/src/conf $(AM_CFLAGS)
libvirt_driver_xenapi_la_LDFLAGS = $(AM_LDFLAGS)
629
libvirt_driver_xenapi_la_LIBADD = $(LIBXENSERVER_LIBS) $(LIBCURL_LIBS)
630
if WITH_DRIVER_MODULES
631
libvirt_driver_xenapi_la_LIBADD += ../gnulib/lib/libgnu.la
632 633 634 635 636
libvirt_driver_xenapi_la_LDFLAGS += -module -avoid-version
endif
libvirt_driver_xenapi_la_SOURCES = $(XENAPI_DRIVER_SOURCES)
endif

637
if WITH_QEMU
638 639 640
if WITH_DRIVER_MODULES
mod_LTLIBRARIES += libvirt_driver_qemu.la
else
641
noinst_LTLIBRARIES += libvirt_driver_qemu.la
642
# Stateful, so linked to daemon instead
643
#libvirt_la_BUILT_LIBADD += libvirt_driver_qemu.la
644
endif
645
libvirt_driver_qemu_la_CFLAGS = $(NUMACTL_CFLAGS) \
646 647
		-I@top_srcdir@/src/conf $(AM_CFLAGS)
libvirt_driver_qemu_la_LDFLAGS = $(AM_LDFLAGS)
648
libvirt_driver_qemu_la_LIBADD = $(NUMACTL_LIBS)
649
if WITH_DRIVER_MODULES
650
libvirt_driver_qemu_la_LIBADD += ../gnulib/lib/libgnu.la
651 652
libvirt_driver_qemu_la_LDFLAGS += -module -avoid-version
endif
653
libvirt_driver_qemu_la_SOURCES = $(QEMU_DRIVER_SOURCES)
654

A
Amy Griffis 已提交
655
conf_DATA += qemu/qemu.conf
656

657 658
augeas_DATA += qemu/libvirtd_qemu.aug
augeastest_DATA += qemu/test_libvirtd_qemu.aug
659

660
endif
661 662
EXTRA_DIST += qemu/qemu.conf qemu/libvirtd_qemu.aug \
		qemu/test_libvirtd_qemu.aug qemu/THREADS.txt
663

664 665

if WITH_LXC
666 667 668
if WITH_DRIVER_MODULES
mod_LTLIBRARIES += libvirt_driver_lxc.la
else
669
noinst_LTLIBRARIES += libvirt_driver_lxc.la
670
# Stateful, so linked to daemon instead
671
#libvirt_la_BUILT_LIBADD += libvirt_driver_lxc.la
672
endif
673
libvirt_driver_lxc_la_CFLAGS = \
674
		-I@top_srcdir@/src/conf $(AM_CFLAGS)
675
if WITH_DRIVER_MODULES
676
libvirt_driver_lxc_la_LIBADD = ../gnulib/lib/libgnu.la
677
libvirt_driver_lxc_la_LDFLAGS = -module -avoid-version $(AM_LDFLAGS)
678
endif
679
libvirt_driver_lxc_la_SOURCES = $(LXC_DRIVER_SOURCES)
A
Amy Griffis 已提交
680 681 682

conf_DATA += lxc/lxc.conf

683 684 685
augeas_DATA += lxc/libvirtd_lxc.aug
augeastest_DATA += lxc/test_libvirtd_lxc.aug

686
endif
687
EXTRA_DIST += lxc/lxc.conf lxc/libvirtd_lxc.aug lxc/test_libvirtd_lxc.aug
688

689
if WITH_UML
690 691 692
if WITH_DRIVER_MODULES
mod_LTLIBRARIES += libvirt_driver_uml.la
else
693 694
noinst_LTLIBRARIES += libvirt_driver_uml.la
# Stateful, so linked to daemon instead
695
#libvirt_la_BUILT_LIBADD += libvirt_driver_uml.la
696
endif
697
libvirt_driver_uml_la_CFLAGS = $(NUMACTL_CFLAGS) \
698 699
		-I@top_srcdir@/src/conf $(AM_CFLAGS)
libvirt_driver_uml_la_LDFLAGS = $(AM_LDFLAGS)
700
libvirt_driver_uml_la_LIBADD = $(NUMACTL_LIBS)
701
if WITH_DRIVER_MODULES
702
libvirt_driver_uml_la_LIBADD += ../gnulib/lib/libgnu.la
703 704
libvirt_driver_uml_la_LDFLAGS += -module -avoid-version
endif
705 706
libvirt_driver_uml_la_SOURCES = $(UML_DRIVER_SOURCES)
endif
707

D
Daniel Veillard 已提交
708 709 710 711 712 713
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
714
#libvirt_la_BUILT_LIBADD  += libvirt_driver_one.la
D
Daniel Veillard 已提交
715
endif
716
libvirt_driver_one_la_CFLAGS = $(XMLRPC_CFLAGS) \
717 718
		-I@top_srcdir@/src/conf $(AM_CFLAGS)
libvirt_driver_one_la_LDFLAGS = $(AM_LDFLAGS)
719
libvirt_driver_one_la_LIBADD = $(XMLRPC_LIBS)
D
Daniel Veillard 已提交
720 721
#libvirt_driver_one_la_CFLAGS  = "-DWITH_ONE"
if WITH_DRIVER_MODULES
722
libvirt_driver_one_la_LIBADD += ../gnulib/lib/libgnu.la
D
Daniel Veillard 已提交
723 724 725 726 727 728
libvirt_driver_one_la_LDFLAGS += -module -avoid-version
endif
libvirt_driver_one_la_SOURCES = $(ONE_DRIVER_SOURCES)
endif


729
BUILT_SOURCES += $(ESX_DRIVER_GENERATED)
D
Daniel Veillard 已提交
730

731 732
$(ESX_DRIVER_GENERATED): $(srcdir)/esx/esx_vi_generator.input $(srcdir)/esx/esx_vi_generator.py
	-srcdir=$(srcdir) $(srcdir)/esx/esx_vi_generator.py
D
Daniel Veillard 已提交
733

734 735 736 737 738
if WITH_ESX
if WITH_DRIVER_MODULES
mod_LTLIBRARIES += libvirt_driver_esx.la
else
noinst_LTLIBRARIES += libvirt_driver_esx.la
739
libvirt_la_BUILT_LIBADD += libvirt_driver_esx.la
740
endif
741
libvirt_driver_esx_la_CFLAGS = $(LIBCURL_CFLAGS) \
742 743
		-I@top_srcdir@/src/conf $(AM_CFLAGS)
libvirt_driver_esx_la_LDFLAGS = $(AM_LDFLAGS)
744
libvirt_driver_esx_la_LIBADD = $(LIBCURL_LIBS)
745
if WITH_DRIVER_MODULES
746
libvirt_driver_esx_la_LIBADD += ../gnulib/lib/libgnu.la
747 748 749
libvirt_driver_esx_la_LDFLAGS += -module -avoid-version
endif
libvirt_driver_esx_la_SOURCES = $(ESX_DRIVER_SOURCES)
750
libvirt_driver_esx_la_DEPENDENCIES = $(ESX_DRIVER_GENERATED)
751 752
endif

753
if WITH_NETWORK
754 755 756
if WITH_DRIVER_MODULES
mod_LTLIBRARIES += libvirt_driver_network.la
else
757
noinst_LTLIBRARIES += libvirt_driver_network.la
758
# Stateful, so linked to daemon instead
759
#libvirt_la_BUILT_LIBADD += libvirt_driver_network.la
760
endif
761
libvirt_driver_network_la_CFLAGS = \
762
		-I@top_srcdir@/src/conf $(AM_CFLAGS)
763
if WITH_DRIVER_MODULES
764
libvirt_driver_network_la_LIBADD = ../gnulib/lib/libgnu.la
765
libvirt_driver_network_la_LDFLAGS = -module -avoid-version $(AM_LDFLAGS)
766
endif
767
libvirt_driver_network_la_SOURCES = $(NETWORK_DRIVER_SOURCES)
768
endif
769 770 771 772
EXTRA_DIST += network/default.xml



773

D
Daniel Veillard 已提交
774
if WITH_NETCF
775 776 777 778
if WITH_DRIVER_MODULES
mod_LTLIBRARIES += libvirt_driver_interface.la
else
noinst_LTLIBRARIES += libvirt_driver_interface.la
779
libvirt_la_BUILT_LIBADD += libvirt_driver_interface.la
780
endif
781
libvirt_driver_interface_la_CFLAGS = $(NETCF_CFLAGS) \
782 783
		-I@top_srcdir@/src/conf $(AM_CFLAGS)
libvirt_driver_interface_la_LDFLAGS = $(AM_LDFLAGS)
784
libvirt_driver_interface_la_LIBADD = $(NETCF_LIBS)
785
if WITH_DRIVER_MODULES
786
libvirt_driver_interface_la_LIBADD += ../gnulib/lib/libgnu.la
787 788 789
libvirt_driver_interface_la_LDFLAGS += -module -avoid-version
endif
libvirt_driver_interface_la_SOURCES = $(INTERFACE_DRIVER_SOURCES)
D
Daniel Veillard 已提交
790 791
endif

D
Daniel P. Berrange 已提交
792
if WITH_SECRETS
793 794 795 796
if WITH_DRIVER_MODULES
mod_LTLIBRARIES += libvirt_driver_secret.la
else
noinst_LTLIBRARIES += libvirt_driver_secret.la
797
# Stateful, so linked to daemon instead
798
#libvirt_la_BUILT_LIBADD += libvirt_driver_secret.la
799
endif
800
libvirt_driver_secret_la_CFLAGS = \
801
		-I@top_srcdir@/src/conf $(AM_CFLAGS)
802
if WITH_DRIVER_MODULES
803
libvirt_driver_secret_la_LIBADD = ../gnulib/lib/libgnu.la
804
libvirt_driver_secret_la_LDFLAGS = -module -avoid-version $(AM_LDFLAGS)
805 806
endif
libvirt_driver_secret_la_SOURCES = $(SECRET_DRIVER_SOURCES)
D
Daniel P. Berrange 已提交
807
endif
808

809 810
# Needed to keep automake quiet about conditionals
libvirt_driver_storage_la_SOURCES =
811
libvirt_driver_storage_la_CFLAGS = \
812 813
		-I@top_srcdir@/src/conf $(AM_CFLAGS)
libvirt_driver_storage_la_LDFLAGS = $(AM_LDFLAGS)
814
libvirt_driver_storage_la_LIBADD =
815
if WITH_STORAGE_DIR
816 817 818
if WITH_DRIVER_MODULES
mod_LTLIBRARIES += libvirt_driver_storage.la
else
819
noinst_LTLIBRARIES += libvirt_driver_storage.la
820
# Stateful, so linked to daemon instead
821
#libvirt_la_BUILT_LIBADD += libvirt_driver_storage.la
822 823
endif
if WITH_DRIVER_MODULES
824
libvirt_driver_storage_la_LIBADD += ../gnulib/lib/libgnu.la
825
libvirt_driver_storage_la_LDFLAGS += -module -avoid-version
826
endif
827 828
libvirt_driver_storage_la_SOURCES += $(STORAGE_DRIVER_SOURCES)
libvirt_driver_storage_la_SOURCES += $(STORAGE_DRIVER_FS_SOURCES)
829 830
endif

831
if WITH_STORAGE_LVM
832
libvirt_driver_storage_la_SOURCES += $(STORAGE_DRIVER_LVM_SOURCES)
833 834
endif

835
if WITH_STORAGE_ISCSI
836
libvirt_driver_storage_la_SOURCES += $(STORAGE_DRIVER_ISCSI_SOURCES)
837 838
endif

839 840 841 842
if WITH_STORAGE_SCSI
libvirt_driver_storage_la_SOURCES += $(STORAGE_DRIVER_SCSI_SOURCES)
endif

D
Dave Allan 已提交
843 844 845
if WITH_STORAGE_MPATH
libvirt_driver_storage_la_SOURCES += $(STORAGE_DRIVER_MPATH_SOURCES)
libvirt_driver_storage_la_CFLAGS += $(DEVMAPPER_CFLAGS)
846
libvirt_driver_storage_la_LIBADD += $(DEVMAPPER_LIBS)
D
Dave Allan 已提交
847 848
endif

849
if WITH_STORAGE_DISK
850
libvirt_driver_storage_la_SOURCES += $(STORAGE_DRIVER_DISK_SOURCES)
851
endif
852

853 854 855 856 857 858 859
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
860
#libvirt_la_BUILT_LIBADD += libvirt_driver_nodedev.la
861 862 863
endif
libvirt_driver_nodedev_la_SOURCES = $(NODE_DEVICE_DRIVER_SOURCES)

864
libvirt_driver_nodedev_la_CFLAGS = \
865 866
		-I@top_srcdir@/src/conf $(AM_CFLAGS)
libvirt_driver_nodedev_la_LDFLAGS = $(AM_LDFLAGS)
867
libvirt_driver_nodedev_la_LIBADD =
868 869 870
if HAVE_HAL
libvirt_driver_nodedev_la_SOURCES += $(NODE_DEVICE_DRIVER_HAL_SOURCES)
libvirt_driver_nodedev_la_CFLAGS += $(HAL_CFLAGS)
871
libvirt_driver_nodedev_la_LIBADD += $(HAL_LIBS)
872
endif
873 874
if HAVE_UDEV
libvirt_driver_nodedev_la_SOURCES += $(NODE_DEVICE_DRIVER_UDEV_SOURCES)
875
libvirt_driver_nodedev_la_CFLAGS += $(UDEV_CFLAGS) $(PCIACCESS_CFLAGS)
876
libvirt_driver_nodedev_la_LIBADD += $(UDEV_LIBS) $(PCIACCESS_LIBS)
877
endif
878 879

if WITH_DRIVER_MODULES
880
libvirt_driver_nodedev_la_LIBADD += ../gnulib/lib/libgnu.la
881 882 883 884 885
libvirt_driver_nodedev_la_LDFLAGS += -module -avoid-version
endif
endif


886 887 888 889
if WITH_NWFILTER
if WITH_DRIVER_MODULES
mod_LTLIBRARIES += libvirt_driver_nwfilter.la
else
890
libvirt_la_BUILT_LIBADD += libvirt_driver_nwfilter.la
891 892
noinst_LTLIBRARIES += libvirt_driver_nwfilter.la
endif
893
libvirt_driver_nwfilter_la_CFLAGS = $(LIBPCAP_CFLAGS) \
894 895
		-I@top_srcdir@/src/conf $(AM_CFLAGS)
libvirt_driver_nwfilter_la_LDFLAGS = $(LD_AMFLAGS)
896
libvirt_driver_nwfilter_la_LIBADD = $(LIBPCAP_LIBS)
897
if WITH_DRIVER_MODULES
898
libvirt_driver_nwfilter_la_LIBADD += ../gnulib/lib/libgnu.la
899
libvirt_driver_nwfilter_la_LDFLAGS += -module -avoid-version
900 901 902 903 904
endif
libvirt_driver_nwfilter_la_SOURCES = $(NWFILTER_DRIVER_SOURCES)
endif


905 906
libvirt_driver_security_la_SOURCES = $(SECURITY_DRIVER_SOURCES)
noinst_LTLIBRARIES += libvirt_driver_security.la
907
libvirt_la_BUILT_LIBADD += libvirt_driver_security.la
908
libvirt_driver_security_la_CFLAGS = \
909 910
		-I@top_srcdir@/src/conf $(AM_CFLAGS)
libvirt_driver_security_la_LDFLAGS = $(AM_LDFLAGS)
911
libvirt_driver_security_la_LIBADD =
912 913
if WITH_SECDRIVER_SELINUX
libvirt_driver_security_la_SOURCES += $(SECURITY_DRIVER_SELINUX_SOURCES)
J
Jim Fehlig 已提交
914
libvirt_driver_security_la_CFLAGS += $(SELINUX_CFLAGS)
915
libvirt_driver_security_la_LIBADD += $(SELINUX_LIBS)
916
endif
J
Jamie Strandboge 已提交
917 918 919
if WITH_SECDRIVER_APPARMOR
libvirt_driver_security_la_SOURCES += $(SECURITY_DRIVER_APPARMOR_SOURCES)
libvirt_driver_security_la_CFLAGS += $(APPARMOR_CFLAGS)
920
libvirt_driver_security_la_LIBADD += $(APPARMOR_LIBS)
J
Jamie Strandboge 已提交
921
endif
922

923 924 925 926 927 928 929
# Add all conditional sources just in case...
EXTRA_DIST +=							\
		$(TEST_DRIVER_SOURCES)				\
		$(REMOTE_DRIVER_SOURCES)			\
		$(XEN_DRIVER_SOURCES)				\
		$(QEMU_DRIVER_SOURCES)				\
		$(LXC_DRIVER_SOURCES)				\
930
		$(UML_DRIVER_SOURCES)				\
D
Daniel Veillard 已提交
931
		$(ONE_DRIVER_SOURCES)				\
932
		$(OPENVZ_DRIVER_SOURCES)			\
933
		$(PHYP_DRIVER_SOURCES)				\
934
		$(VBOX_DRIVER_SOURCES)				\
935
		$(XENAPI_DRIVER_SOURCES)			\
936
		$(ESX_DRIVER_SOURCES)				\
937
		$(ESX_DRIVER_EXTRA_DIST)			\
938
		$(NETWORK_DRIVER_SOURCES)			\
939
		$(INTERFACE_DRIVER_SOURCES)			\
940 941 942 943
		$(STORAGE_DRIVER_SOURCES)			\
		$(STORAGE_DRIVER_FS_SOURCES)			\
		$(STORAGE_DRIVER_LVM_SOURCES)			\
		$(STORAGE_DRIVER_ISCSI_SOURCES)			\
944
		$(STORAGE_DRIVER_SCSI_SOURCES)			\
D
Dave Allan 已提交
945
		$(STORAGE_DRIVER_MPATH_SOURCES)			\
946 947 948
		$(STORAGE_DRIVER_DISK_SOURCES)			\
		$(NODE_DEVICE_DRIVER_SOURCES)			\
		$(NODE_DEVICE_DRIVER_HAL_SOURCES)		\
949
		$(NODE_DEVICE_DRIVER_UDEV_SOURCES)		\
950
		$(NWFILTER_DRIVER_SOURCES)			\
951
		$(SECURITY_DRIVER_SELINUX_SOURCES)		\
J
Jamie Strandboge 已提交
952
		$(SECURITY_DRIVER_APPARMOR_SOURCES)		\
D
Daniel P. Berrange 已提交
953
		$(SECRET_DRIVER_SOURCES)			\
954
		$(VBOX_DRIVER_EXTRA_DIST)
955

956 957 958 959
check-local: augeas-check

.PHONY: augeas-check
augeas-check:
960
if WITH_QEMU
961
	$(AM_V_GEN)if test -x '$(AUGPARSE)'; then \
962 963 964 965 966
	    '$(AUGPARSE)' -I $(srcdir)/qemu \
	    $(srcdir)/qemu/test_libvirtd_qemu.aug; \
	fi
endif
if WITH_LXC
967
	$(AM_V_GEN)if test -x '$(AUGPARSE)'; then \
968 969 970 971 972
	    '$(AUGPARSE)' -I $(srcdir)/lxc \
	    $(srcdir)/lxc/test_libvirtd_lxc.aug; \
	fi
endif

973 974 975 976 977 978 979 980 981 982 983 984 985 986 987 988 989 990 991
#
# 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.
#

992
if WITH_DRIVER_MODULES
993
USED_SYM_FILES += libvirt_driver_modules.syms
994
endif
995 996

if WITH_BRIDGE
997
USED_SYM_FILES += libvirt_bridge.syms
998
endif
999 1000

if WITH_LINUX
1001
USED_SYM_FILES += libvirt_linux.syms
1002
endif
1003

1004
if WITH_MACVTAP
1005
USED_SYM_FILES += libvirt_macvtap.syms
1006
endif
1007

1008 1009 1010 1011
if WITH_LIBVIRTD
USED_SYM_FILES += libvirt_daemon.syms
endif

1012 1013 1014 1015
if WITH_NWFILTER
USED_SYM_FILES += libvirt_nwfilter.syms
endif

1016 1017 1018 1019 1020
EXTRA_DIST += \
  libvirt_public.syms		\
  libvirt_private.syms		\
  libvirt_driver_modules.syms	\
  libvirt_bridge.syms		\
1021
  libvirt_linux.syms		\
1022
  libvirt_macvtap.syms		\
1023 1024
  libvirt_daemon.syms		\
  libvirt_nwfilter.syms
1025

1026
BUILT_SOURCES += libvirt.syms libvirt.def libvirt_qemu.def
1027

1028
libvirt.syms: libvirt_public.syms $(USED_SYM_FILES)
1029 1030 1031 1032 1033 1034
	$(AM_V_GEN)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 && \
1035
	for file in $(USED_SYM_FILES); do \
1036
	    cat $(srcdir)/$$file >>$@-tmp; \
1037 1038 1039
	done && \
	printf '\n\nlocal:\n*;\n\n};' >>$@-tmp && \
	chmod a-w $@-tmp && \
1040
	mv $@-tmp libvirt.syms
1041

1042 1043 1044
libvirt.def: libvirt.syms
	$(AM_V_GEN)rm -f -- $@-tmp $@ ; \
	printf 'EXPORTS\n' > $@-tmp && \
E
Eric Blake 已提交
1045
	sed -e '/^$$/d; /#/d; /:/d; /}/d; /\*/d; /LIBVIRT_/d; s/[	 ]*\(.*\)\;/    \1/g' $^ >> $@-tmp && \
1046 1047 1048
	chmod a-w $@-tmp && \
	mv $@-tmp libvirt.def

1049 1050 1051
libvirt_qemu.def: $(srcdir)/libvirt_qemu.syms
	$(AM_V_GEN)rm -f -- $@-tmp $@ ; \
	printf 'EXPORTS\n' > $@-tmp && \
E
Eric Blake 已提交
1052
	sed -e '/^$$/d; /#/d; /:/d; /}/d; /\*/d; /LIBVIRT_/d; s/[	 ]*\(.*\)\;/    \1/g' $^ >> $@-tmp && \
1053 1054 1055
	chmod a-w $@-tmp && \
	mv $@-tmp libvirt_qemu.def

1056 1057
# Empty source list - it merely links a bunch of convenience libs together
libvirt_la_SOURCES =
1058
libvirt_la_LDFLAGS = $(VERSION_SCRIPT_FLAGS)$(LIBVIRT_SYMBOL_FILE) \
1059
                     -version-info $(LIBVIRT_VERSION_INFO) \
1060
                    $(AM_LDFLAGS) \
1061
		    $(CYGWIN_EXTRA_LDFLAGS) $(MINGW_EXTRA_LDFLAGS)
1062
libvirt_la_BUILT_LIBADD += ../gnulib/lib/libgnu.la
1063
libvirt_la_LIBADD += $(LIBXML_LIBS) \
1064
		    $(DRIVER_MODULE_LIBS) \
1065
		    $(CYGWIN_EXTRA_LIBADD)
1066
libvirt_la_CFLAGS = -DIN_LIBVIRT $(AM_CFLAGS)
1067 1068 1069 1070 1071 1072
# Because we specify libvirt_la_DEPENDENCIES for $(LIBVIRT_SYMBOL_FILE), we
# lose automake's automatic dependencies on an appropriate subset of
# $(libvirt_la_LIBADD).  But we were careful to create
# $(libvirt_la_BUILT_LIBADD) as the subset that automake would have
# picked out for us.
libvirt_la_DEPENDENCIES = $(libvirt_la_BUILT_LIBADD) $(LIBVIRT_SYMBOL_FILE)
1073

1074 1075 1076
# 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.
1077
noinst_LTLIBRARIES += libvirt_test.la
1078

1079
# Remove version script from convenience library
1080 1081
test_LDFLAGS =						\
  $$(echo '$(libvirt_la_LDFLAGS)'			\
1082
     |sed 's!$(VERSION_SCRIPT_FLAGS)$(LIBVIRT_SYMBOL_FILE)!!'	\
1083
     |sed 's!-version-info $(LIBVIRT_VERSION_INFO)!!')
1084 1085 1086 1087

# 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)
1088 1089
libvirt_test_la_LDFLAGS = $(test_LDFLAGS) $(AM_LDFLAGS)
libvirt_test_la_CFLAGS = $(AM_CFLAGS)
1090

C
Chris Lalancette 已提交
1091 1092 1093
libvirt_qemu_la_SOURCES = libvirt-qemu.c
libvirt_qemu_la_LDFLAGS = $(VERSION_SCRIPT_FLAGS)$(LIBVIRT_QEMU_SYMBOL_FILE) \
                          -version-info $(LIBVIRT_VERSION_INFO) \
1094 1095 1096
                          $(CYGWIN_EXTRA_LDFLAGS) $(MINGW_EXTRA_LDFLAGS) \
			  $(AM_LDFLAGS)
libvirt_qemu_la_CFLAGS = $(AM_CFLAGS)
C
Chris Lalancette 已提交
1097
libvirt_qemu_la_LIBADD = libvirt.la $(CYGWIN_EXTRA_LIBADD)
E
Eric Blake 已提交
1098
EXTRA_DIST += $(LIBVIRT_QEMU_SYMBOL_FILE)
1099

1100 1101
libexec_PROGRAMS =

1102
if WITH_STORAGE_DISK
R
Richard W.M. Jones 已提交
1103
if WITH_LIBVIRTD
1104
libexec_PROGRAMS += libvirt_parthelper
1105

1106
libvirt_parthelper_SOURCES = $(STORAGE_HELPER_DISK_SOURCES)
1107
libvirt_parthelper_LDFLAGS = $(WARN_LDFLAGS) $(AM_LDFLAGS)
1108 1109 1110 1111 1112 1113
libvirt_parthelper_LDADD =		\
		$(LIBPARTED_LIBS)	\
		$(DEVMAPPER_LIBS)	\
		libvirt_util.la		\
		../gnulib/lib/libgnu.la

1114
libvirt_parthelper_CFLAGS = $(LIBPARTED_CFLAGS) $(AM_CFLAGS)
R
Richard W.M. Jones 已提交
1115
endif
1116
endif
1117 1118
EXTRA_DIST += $(STORAGE_HELPER_DISK_SOURCES)

1119

1120 1121 1122 1123 1124 1125
if WITH_LXC
if WITH_LIBVIRTD
libexec_PROGRAMS += libvirt_lxc

libvirt_lxc_SOURCES =						\
		$(LXC_CONTROLLER_SOURCES)			\
1126
		$(UTIL_SOURCES)					\
1127 1128
		$(NODE_INFO_SOURCES)				\
		$(ENCRYPTION_CONF_SOURCES)			\
1129
		$(DOMAIN_CONF_SOURCES)				\
1130 1131
		$(CPU_CONF_SOURCES)				\
		$(NWFILTER_PARAM_CONF_SOURCES)
1132
libvirt_lxc_LDFLAGS = $(WARN_CFLAGS) $(AM_LDFLAGS)
1133 1134
libvirt_lxc_LDADD = $(CAPNG_LIBS) $(YAJL_LIBS) \
		$(LIBXML_LIBS) $(NUMACTL_LIBS) $(LIB_PTHREAD) \
1135
		$(LIBNL_LIBS) $(AUDIT_LIBS) ../gnulib/lib/libgnu.la
1136 1137 1138 1139
libvirt_lxc_CFLAGS =				\
		$(LIBPARTED_CFLAGS)		\
		$(NUMACTL_CFLAGS)		\
		$(CAPNG_CFLAGS)			\
1140
		$(YAJL_CFLAGS)			\
1141
		$(AUDIT_CFLAGS)			\
1142 1143
		-I@top_srcdir@/src/conf		\
		$(AM_CFLAGS)
1144 1145 1146 1147
endif
endif
EXTRA_DIST += $(LXC_CONTROLLER_SOURCES)

J
Jamie Strandboge 已提交
1148 1149 1150 1151 1152 1153
if WITH_SECDRIVER_APPARMOR
if WITH_LIBVIRTD
libexec_PROGRAMS += virt-aa-helper

virt_aa_helper_SOURCES = $(SECURITY_DRIVER_APPARMOR_HELPER_SOURCES)

1154
virt_aa_helper_LDFLAGS = $(WARN_LDFLAGS) $(AM_LDFLAGS)
J
Jamie Strandboge 已提交
1155
virt_aa_helper_LDADD =						\
1156
		$(LIBXML_LIBS)					\
C
Chris Lalancette 已提交
1157 1158 1159
		libvirt_conf.la					\
		libvirt_util.la					\
		../gnulib/lib/libgnu.la
J
Jamie Strandboge 已提交
1160 1161
virt_aa_helper_CFLAGS =						\
		-I@top_srcdir@/src/conf				\
1162 1163
		-I@top_srcdir@/src/security			\
		$(AM_CFLAGS)
J
Jamie Strandboge 已提交
1164 1165 1166 1167
endif
endif
EXTRA_DIST += $(SECURITY_DRIVER_APPARMOR_HELPER_SOURCES)

1168
install-data-local:
1169 1170 1171 1172 1173 1174
	$(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"
1175
	$(MKDIR_P) "$(DESTDIR)$(localstatedir)/cache/libvirt/qemu"
1176
	$(MKDIR_P) "$(DESTDIR)$(localstatedir)/log/libvirt/qemu"
1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187
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/network"
1188
	$(MKDIR_P) "$(DESTDIR)$(localstatedir)/lib/libvirt/dnsmasq"
1189
	$(MKDIR_P) "$(DESTDIR)$(localstatedir)/run/libvirt/network"
1190 1191 1192 1193
	$(MKDIR_P) "$(DESTDIR)$(sysconfdir)/libvirt/qemu/networks/autostart"
	$(INSTALL_DATA) $(srcdir)/network/default.xml \
	  $(DESTDIR)$(sysconfdir)/libvirt/qemu/networks/default.xml
	test -z "$(UUID)" || \
E
Eric Blake 已提交
1194 1195 1196 1197 1198 1199
	  { sed -e "s,</name>,</name>\n  <uuid>$(UUID)</uuid>," \
	      $(DESTDIR)$(sysconfdir)/libvirt/qemu/networks/default.xml > \
	      $(DESTDIR)$(sysconfdir)/libvirt/qemu/networks/default.xml.t && \
	    cp $(DESTDIR)$(sysconfdir)/libvirt/qemu/networks/default.xml.t \
	      $(DESTDIR)$(sysconfdir)/libvirt/qemu/networks/default.xml && \
	    rm $(DESTDIR)$(sysconfdir)/libvirt/qemu/networks/default.xml.t; }
1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211 1212 1213
	test -e $(DESTDIR)$(sysconfdir)/libvirt/qemu/networks/autostart/default.xml || \
           ln -s ../default.xml \
	    $(DESTDIR)$(sysconfdir)/libvirt/qemu/networks/autostart/default.xml
endif

uninstall-local::
	rmdir "$(DESTDIR)$(localstatedir)/cache/libvirt" ||:
	rmdir "$(DESTDIR)$(localstatedir)/lib/libvirt/images" ||:
	rmdir "$(DESTDIR)$(localstatedir)/lib/libvirt/boot" ||:
if WITH_QEMU
	rmdir "$(DESTDIR)$(localstatedir)/lib/libvirt/qemu" ||:
	rmdir "$(DESTDIR)$(localstatedir)/run/libvirt/qemu" ||:
	rmdir "$(DESTDIR)$(localstatedir)/cache/libvirt/qemu" ||:
	rmdir "$(DESTDIR)$(localstatedir)/log/libvirt/qemu" ||:
1214
endif
1215 1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231
if WITH_LXC
	rmdir "$(DESTDIR)$(localstatedir)/lib/libvirt/lxc" ||:
	rmdir "$(DESTDIR)$(localstatedir)/run/libvirt/lxc" ||:
endif
if WITH_UML
	rmdir "$(DESTDIR)$(localstatedir)/lib/libvirt/uml" ||:
	rmdir "$(DESTDIR)$(localstatedir)/run/libvirt/uml" ||:
endif
if WITH_NETWORK
	rm -f $(DESTDIR)$(sysconfdir)/libvirt/qemu/networks/autostart/default.xml
	rm -f $(DESTDIR)$(sysconfdir)/libvirt/qemu/networks/default.xml
	rmdir "$(DESTDIR)$(sysconfdir)/libvirt/qemu/networks/autostart" || :
	rmdir "$(DESTDIR)$(sysconfdir)/libvirt/qemu/networks" || :
	rmdir "$(DESTDIR)$(localstatedir)/lib/libvirt/network" ||:
	rmdir "$(DESTDIR)$(localstatedir)/run/libvirt/network" ||:
endif
	rmdir "$(DESTDIR)$(localstatedir)/lib/libvirt" ||:
R
Richard W.M. Jones 已提交
1232

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