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
		util/bridge.c util/bridge.h			\
		util/buf.c util/buf.h				\
51
		util/command.c util/command.h			\
52 53 54
		util/conf.c util/conf.h				\
		util/cgroup.c util/cgroup.h			\
		util/event.c util/event.h			\
55
		util/files.c util/files.h			\
56
		util/hash.c util/hash.h				\
D
Daniel Veillard 已提交
57
		util/hooks.c util/hooks.h			\
58
		util/iptables.c util/iptables.h			\
G
Gerhard Stenzel 已提交
59
		util/ebtables.c util/ebtables.h			\
60
		util/dnsmasq.c util/dnsmasq.h                   \
61
		util/json.c util/json.h				\
62
		util/logging.c util/logging.h			\
63
		util/macvtap.c util/macvtap.h			\
64 65
		util/memory.c util/memory.h			\
		util/pci.c util/pci.h				\
66
		util/processinfo.c util/processinfo.h		\
67
		util/hostusb.c util/hostusb.h			\
68
		util/network.c util/network.h			\
69
		util/interface.c util/interface.h		\
70 71
		util/qparams.c util/qparams.h			\
		util/stats_linux.c util/stats_linux.h		\
72
		util/storage_file.c util/storage_file.h		\
73
		util/sysinfo.c util/sysinfo.h			\
74 75 76 77 78 79
		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				\
80
		util/virtaudit.c util/virtaudit.h               \
81
		util/virterror.c util/virterror_internal.h
82 83

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

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


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

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

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

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

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

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

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

127
# Secret driver generic impl APIs
128 129 130 131 132 133 134 135 136 137
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

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

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

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

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

165 166 167 168 169 170 171 172 173 174
# 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
175 176 177 178 179 180 181 182 183 184

# 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+ \*/

185 186
.PHONY: remote_protocol-structs
remote_protocol-structs:
187
	$(AM_V_GEN)if (pdwtags --help) > /dev/null 2>&1; then		\
188
	  pdwtags --verbose libvirt_driver_remote_la-remote_protocol.$(OBJEXT) \
189
	    | perl -0777 -n						\
190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206
		-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 '}'							\
207
		> $@-t;							\
208
          case $$? in 8) exit 0;; 0) ;; *) exit 1;; esac;		\
209
	  diff -u $@-t $(srcdir)/$@; st=$$?; rm -f $@-t; exit $$st;	\
210
	else								\
211 212
	  echo 'WARNING: you lack pdwtags; skipping the $@ test' >&2;	\
	  echo 'WARNING: install the dwarves package to get pdwtags' >&2; \
213 214 215 216
	fi
EXTRA_DIST += remote_protocol-structs
check-local: remote_protocol-structs

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



# Now the Hypervisor specific drivers
XEN_DRIVER_SOURCES =						\
225 226 227 228 229 230 231
		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
232
if WITH_XEN_INOTIFY
233
XEN_DRIVER_SOURCES += xen/xen_inotify.c xen/xen_inotify.h
234
endif
235 236

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

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

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

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

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

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

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

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

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

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

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

300
ESX_DRIVER_SOURCES =						\
301
		esx/esx_private.h						\
302
		esx/esx_driver.c esx/esx_driver.h		\
303 304 305 306 307
		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 已提交
308
		esx/esx_nwfilter_driver.c esx/esx_nwfilter_driver.h		\
309 310
		esx/esx_util.c esx/esx_util.h			\
		esx/esx_vi.c esx/esx_vi.h			\
311 312 313 314
		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

315
ESX_DRIVER_GENERATED =							\
316 317
		esx/esx_vi_methods.generated.c				\
		esx/esx_vi_methods.generated.h				\
318 319 320 321 322 323 324 325 326 327 328 329 330
		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)

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

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

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

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

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

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

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

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

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

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

STORAGE_HELPER_DISK_SOURCES =					\
365
		storage/parthelper.c
366

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

377

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

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

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

388

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

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

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

J
Jiri Denemark 已提交
402 403 404 405 406
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
407

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

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

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

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

428 429

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

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

441

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

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

450
USED_SYM_FILES = libvirt_private.syms
451

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

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

if HAVE_RPCGEN
#
# Maintainer-only target for re-generating the derived .c/.h source
# files, which are actually derived from the .x file.
#
491
# For committing protocol changes to GIT, the GLIBC rpcgen *must*
492 493 494 495 496
# 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 已提交
497
rpcgen-normal:
498 499 500 501
	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 已提交
502 503
	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
504 505 506 507 508 509 510 511 512 513
	(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 已提交
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 544

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

545 546 547
endif

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

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

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

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

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

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

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

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

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

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

665 666

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

conf_DATA += lxc/lxc.conf

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

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

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

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


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

732 733
$(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 已提交
734

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

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



774

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

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

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

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

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

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

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

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

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

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

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


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


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

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

957 958 959 960
check-local: augeas-check

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

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

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

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

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

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

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

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

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

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

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

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

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

1057 1058
# Empty source list - it merely links a bunch of convenience libs together
libvirt_la_SOURCES =
1059
libvirt_la_LDFLAGS = $(VERSION_SCRIPT_FLAGS)$(LIBVIRT_SYMBOL_FILE) \
1060
                     -version-info $(LIBVIRT_VERSION_INFO) \
1061
                    $(AM_LDFLAGS) \
1062
		    $(CYGWIN_EXTRA_LDFLAGS) $(MINGW_EXTRA_LDFLAGS)
1063
libvirt_la_BUILT_LIBADD += ../gnulib/lib/libgnu.la
1064
libvirt_la_LIBADD += $(LIBXML_LIBS) \
1065
		    $(DRIVER_MODULE_LIBS) \
1066
		    $(CYGWIN_EXTRA_LIBADD)
1067
libvirt_la_CFLAGS = -DIN_LIBVIRT $(AM_CFLAGS)
1068 1069 1070 1071 1072 1073
# 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)
1074

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

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

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

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

1101 1102
libexec_PROGRAMS =

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

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

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

1120

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

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

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

virt_aa_helper_SOURCES = $(SECURITY_DRIVER_APPARMOR_HELPER_SOURCES)

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

1169
install-data-local:
1170 1171 1172 1173 1174 1175
	$(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"
1176
	$(MKDIR_P) "$(DESTDIR)$(localstatedir)/cache/libvirt/qemu"
1177
	$(MKDIR_P) "$(DESTDIR)$(localstatedir)/log/libvirt/qemu"
1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188
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"
1189
	$(MKDIR_P) "$(DESTDIR)$(localstatedir)/lib/libvirt/dnsmasq"
1190
	$(MKDIR_P) "$(DESTDIR)$(localstatedir)/run/libvirt/network"
1191 1192 1193 1194
	$(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 已提交
1195 1196 1197 1198 1199 1200
	  { 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; }
1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211 1212 1213 1214
	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" ||:
1215
endif
1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 1232
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 已提交
1233

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