Makefile.am 39.4 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
		util/threads.c util/threads.h			\
		util/threads-pthread.h				\
		util/threads-win32.h				\
H
Hu Tao 已提交
77
		util/threadpool.c util/threadpool.h		\
78 79 80
		util/uuid.c util/uuid.h				\
		util/util.c util/util.h				\
		util/xml.c util/xml.h				\
81
		util/virtaudit.c util/virtaudit.h               \
82
		util/virterror.c util/virterror_internal.h
83 84

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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



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

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

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

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

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

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

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

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

269
QEMU_DRIVER_SOURCES =						\
270
		qemu/qemu_capabilities.c qemu/qemu_capabilities.h\
271
		qemu/qemu_command.c qemu/qemu_command.h		\
272
		qemu/qemu_domain.c qemu/qemu_domain.h		\
273
		qemu/qemu_audit.c qemu/qemu_audit.h		\
274
		qemu/qemu_cgroup.c qemu/qemu_cgroup.h		\
275
		qemu/qemu_hostdev.c qemu/qemu_hostdev.h		\
276
		qemu/qemu_hotplug.c qemu/qemu_hotplug.h		\
277
		qemu/qemu_conf.c qemu/qemu_conf.h		\
278
		qemu/qemu_monitor.c qemu/qemu_monitor.h		\
279 280
		qemu/qemu_monitor_text.c			\
		qemu/qemu_monitor_text.h			\
D
Daniel P. Berrange 已提交
281 282 283
		qemu/qemu_monitor_json.c			\
		qemu/qemu_monitor_json.h			\
		qemu/qemu_driver.c qemu/qemu_driver.h		\
E
Eric Blake 已提交
284
		qemu/qemu_bridge_filter.c			\
285 286
		qemu/qemu_bridge_filter.h			\
		qemu/qemu_security_stacked.h			\
287 288 289
		qemu/qemu_security_stacked.c			\
		qemu/qemu_security_dac.h			\
		qemu/qemu_security_dac.c
R
Richard W.M. Jones 已提交
290

291 292
XENAPI_DRIVER_SOURCES =								\
		xenapi/xenapi_driver.c xenapi/xenapi_driver.h	\
293
		xenapi/xenapi_driver_private.h					\
294 295
		xenapi/xenapi_utils.c xenapi/xenapi_utils.h

296
UML_DRIVER_SOURCES =						\
D
Daniel P. Berrange 已提交
297 298
		uml/uml_conf.c uml/uml_conf.h			\
		uml/uml_driver.c uml/uml_driver.h
299

300 301 302 303 304 305
ONE_DRIVER_SOURCES =						\
		./opennebula/one_conf.c				\
		./opennebula/one_conf.h				\
		./opennebula/one_driver.c			\
		./opennebula/one_driver.h			\
		./opennebula/one_client.c			\
306
		./opennebula/one_client.h
D
Daniel Veillard 已提交
307

308
ESX_DRIVER_SOURCES =						\
309
		esx/esx_private.h						\
310
		esx/esx_driver.c esx/esx_driver.h		\
311 312 313 314 315
		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 已提交
316
		esx/esx_nwfilter_driver.c esx/esx_nwfilter_driver.h		\
317 318
		esx/esx_util.c esx/esx_util.h			\
		esx/esx_vi.c esx/esx_vi.h			\
319 320 321 322
		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

323
ESX_DRIVER_GENERATED =							\
324 325
		esx/esx_vi_methods.generated.c				\
		esx/esx_vi_methods.generated.h				\
326 327 328 329 330 331 332 333 334 335 336 337 338
		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)

339
NETWORK_DRIVER_SOURCES =					\
340
		network/bridge_driver.h network/bridge_driver.c
341

342
INTERFACE_DRIVER_SOURCES =					\
343
		interface/netcf_driver.h interface/netcf_driver.c
344

345
SECRET_DRIVER_SOURCES =						\
346
		secret/secret_driver.h secret/secret_driver.c
347

348
# Storage backend specific impls
349
STORAGE_DRIVER_SOURCES =					\
350 351
		storage/storage_driver.h storage/storage_driver.c		\
		storage/storage_backend.h storage/storage_backend.c
352 353

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

356
STORAGE_DRIVER_LVM_SOURCES =					\
357 358
		storage/storage_backend_logical.h			\
		storage/storage_backend_logical.c
359 360

STORAGE_DRIVER_ISCSI_SOURCES =					\
361
		storage/storage_backend_iscsi.h storage/storage_backend_iscsi.c
362

363
STORAGE_DRIVER_SCSI_SOURCES =					\
364
		storage/storage_backend_scsi.h storage/storage_backend_scsi.c
365

D
Dave Allan 已提交
366
STORAGE_DRIVER_MPATH_SOURCES =					\
367
		storage/storage_backend_mpath.h storage/storage_backend_mpath.c
D
Dave Allan 已提交
368

369
STORAGE_DRIVER_DISK_SOURCES =					\
370
		storage/storage_backend_disk.h storage/storage_backend_disk.c
371 372

STORAGE_HELPER_DISK_SOURCES =					\
373
		storage/parthelper.c
374

375 376 377
# Network filters
NWFILTER_DRIVER_SOURCES =					\
		nwfilter/nwfilter_driver.h nwfilter/nwfilter_driver.c	\
378 379 380
		nwfilter/nwfilter_gentech_driver.c			\
		nwfilter/nwfilter_gentech_driver.h			\
		nwfilter/nwfilter_ebiptables_driver.c			\
381 382 383
		nwfilter/nwfilter_ebiptables_driver.h			\
		nwfilter/nwfilter_learnipaddr.c				\
		nwfilter/nwfilter_learnipaddr.h
384

385

386
# Security framework and drivers for various models
387
SECURITY_DRIVER_SOURCES =					\
388
		security/security_driver.h security/security_driver.c
389

390
SECURITY_DRIVER_SELINUX_SOURCES =				\
391
		security/security_selinux.h security/security_selinux.c
392

J
Jamie Strandboge 已提交
393 394 395
SECURITY_DRIVER_APPARMOR_SOURCES =				\
		security/security_apparmor.h security/security_apparmor.c

396

397
NODE_DEVICE_DRIVER_SOURCES =					\
398 399 400
		node_device/node_device_driver.c \
		node_device/node_device_driver.h \
		node_device/node_device_linux_sysfs.c
401 402

NODE_DEVICE_DRIVER_HAL_SOURCES =				\
403
		node_device/node_device_hal.c			\
404
		node_device/node_device_hal.h
405

406
NODE_DEVICE_DRIVER_UDEV_SOURCES =				\
D
Daniel Veillard 已提交
407 408
		node_device/node_device_udev.c			\
		node_device/node_device_udev.h
409

J
Jiri Denemark 已提交
410 411 412 413 414
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
415

J
Jiri Denemark 已提交
416 417
pkgdata_DATA =	cpu/cpu_map.xml

E
Eric Blake 已提交
418
EXTRA_DIST +=	$(pkgdata_DATA)
419

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

426
noinst_LTLIBRARIES = libvirt_util.la
427 428
libvirt_la_LIBADD = $(libvirt_la_BUILT_LIBADD)
libvirt_la_BUILT_LIBADD = libvirt_util.la
429 430
libvirt_util_la_SOURCES =					\
		$(UTIL_SOURCES)
431
libvirt_util_la_CFLAGS = $(CAPNG_CFLAGS) $(YAJL_CFLAGS) $(LIBNL_CFLAGS) \
432 433 434
		$(AM_CFLAGS) $(AUDIT_CFLAGS)
libvirt_util_la_LIBADD = $(CAPNG_LIBS) $(YAJL_LIBS) $(LIBNL_LIBS) \
		$(LIB_PTHREAD) $(AUDIT_LIBS)
435

436 437

noinst_LTLIBRARIES += libvirt_conf.la
438
libvirt_la_BUILT_LIBADD += libvirt_conf.la
439
libvirt_conf_la_SOURCES = $(CONF_SOURCES)
440 441
libvirt_conf_la_CFLAGS = $(AM_CFLAGS)
libvirt_conf_la_LDFLAGS = $(AM_LDFLAGS)
442

J
Jiri Denemark 已提交
443
noinst_LTLIBRARIES += libvirt_cpu.la
444
libvirt_la_BUILT_LIBADD += libvirt_cpu.la
J
Jiri Denemark 已提交
445
libvirt_cpu_la_CFLAGS = \
446
		-I@top_srcdir@/src/conf $(AM_CFLAGS)
J
Jiri Denemark 已提交
447 448
libvirt_cpu_la_SOURCES = $(CPU_SOURCES)

449

450
noinst_LTLIBRARIES += libvirt_driver.la
451
libvirt_la_BUILT_LIBADD += libvirt_driver.la
452
libvirt_driver_la_SOURCES = $(DRIVER_SOURCES)
453

M
Matthias Bolte 已提交
454
libvirt_driver_la_CFLAGS = $(NUMACTL_CFLAGS) $(GNUTLS_CFLAGS) \
455
		-I@top_srcdir@/src/conf $(AM_CFLAGS)
M
Matthias Bolte 已提交
456
libvirt_driver_la_LIBADD = $(NUMACTL_LIBS) $(GNUTLS_LIBS)
457

458
USED_SYM_FILES = libvirt_private.syms
459

460
if WITH_TEST
461 462 463
if WITH_DRIVER_MODULES
mod_LTLIBRARIES += libvirt_driver_test.la
else
464
noinst_LTLIBRARIES += libvirt_driver_test.la
465
libvirt_la_BUILT_LIBADD += libvirt_driver_test.la
466
endif
467
libvirt_driver_test_la_CFLAGS = \
468
		-I@top_srcdir@/src/conf $(AM_CFLAGS)
469
if WITH_DRIVER_MODULES
470
libvirt_driver_test_la_LDFLAGS = -module -avoid-version $(AM_LDFLAGS)
471
endif
472
libvirt_driver_test_la_SOURCES = $(TEST_DRIVER_SOURCES)
473 474 475
endif

if WITH_REMOTE
476 477 478
if WITH_DRIVER_MODULES
mod_LTLIBRARIES += libvirt_driver_remote.la
else
479
noinst_LTLIBRARIES += libvirt_driver_remote.la
480
libvirt_la_BUILT_LIBADD += libvirt_driver_remote.la
481
endif
482 483
libvirt_driver_remote_la_CFLAGS =				\
		$(GNUTLS_CFLAGS)				\
484
		$(SASL_CFLAGS)					\
485 486 487
		-I@top_srcdir@/src/conf				\
		$(AM_CFLAGS)
libvirt_driver_remote_la_LDFLAGS = $(AM_LDFLAGS)
488
libvirt_driver_remote_la_LIBADD = $(GNUTLS_LIBS) $(SASL_LIBS)
489 490 491
if WITH_DRIVER_MODULES
libvirt_driver_remote_la_LDFLAGS += -module -avoid-version
endif
492
libvirt_driver_remote_la_SOURCES = $(REMOTE_DRIVER_SOURCES)
493 494 495 496 497 498

if HAVE_RPCGEN
#
# Maintainer-only target for re-generating the derived .c/.h source
# files, which are actually derived from the .x file.
#
499
# For committing protocol changes to GIT, the GLIBC rpcgen *must*
500 501 502 503 504
# 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 已提交
505
rpcgen-normal:
506 507 508 509
	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 已提交
510 511
	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
512 513 514 515 516 517 518 519 520 521
	(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 已提交
522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552

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

553 554 555
endif

remote/remote_protocol.c: remote/remote_protocol.h
556 557 558
endif

if WITH_XEN
559 560 561
if WITH_DRIVER_MODULES
mod_LTLIBRARIES += libvirt_driver_xen.la
else
562
noinst_LTLIBRARIES += libvirt_driver_xen.la
563
libvirt_la_BUILT_LIBADD += libvirt_driver_xen.la
564
endif
E
Eric Blake 已提交
565
libvirt_driver_xen_la_CFLAGS =					\
566
		$(XEN_CFLAGS)					\
567 568 569
		-I@top_srcdir@/src/conf				\
		$(AM_CFLAGS)
libvirt_driver_xen_la_LDFLAGS = $(AM_LDFLAGS)
570
libvirt_driver_xen_la_LIBADD = $(XEN_LIBS)
571
if WITH_DRIVER_MODULES
572
libvirt_driver_xen_la_LIBADD += ../gnulib/lib/libgnu.la
573 574
libvirt_driver_xen_la_LDFLAGS += -module -avoid-version
endif
575
libvirt_driver_xen_la_SOURCES = $(XEN_DRIVER_SOURCES)
576 577
endif

578 579 580 581 582
if WITH_PHYP
if WITH_DRIVER_MODULES
mod_LTLIBRARIES += libvirt_driver_phyp.la
else
noinst_LTLIBRARIES += libvirt_driver_phyp.la
583
libvirt_la_BUILT_LIBADD += libvirt_driver_phyp.la
584
endif
585
libvirt_driver_phyp_la_LIBADD = $(LIBSSH2_LIBS)
586 587 588 589
if WITH_DRIVER_MODULES
libvirt_driver_phyp_la_LIBADD += ../gnulib/lib/libgnu.la
libvirt_driver_phyp_la_LDFLAGS = -module -avoid-version $(AM_LDFLAGS)
endif
590
libvirt_driver_phyp_la_CFLAGS = $(LIBSSH2_CFLAGS) \
591
		-I@top_srcdir@/src/conf $(AM_CFLAGS)
592 593 594
libvirt_driver_phyp_la_SOURCES = $(PHYP_DRIVER_SOURCES)
endif

595
if WITH_OPENVZ
596 597 598
if WITH_DRIVER_MODULES
mod_LTLIBRARIES += libvirt_driver_openvz.la
else
599
noinst_LTLIBRARIES += libvirt_driver_openvz.la
600
libvirt_la_BUILT_LIBADD += libvirt_driver_openvz.la
601
endif
602
libvirt_driver_openvz_la_CFLAGS = \
603
		-I@top_srcdir@/src/conf $(AM_CFLAGS)
604
if WITH_DRIVER_MODULES
605
libvirt_driver_openvz_la_LIBADD = ../gnulib/lib/libgnu.la
606
libvirt_driver_openvz_la_LDFLAGS = -module -avoid-version $(AM_LDFLAGS)
607
endif
608
libvirt_driver_openvz_la_SOURCES = $(OPENVZ_DRIVER_SOURCES)
609 610
endif

611 612 613 614 615
if WITH_VBOX
if WITH_DRIVER_MODULES
mod_LTLIBRARIES += libvirt_driver_vbox.la
else
noinst_LTLIBRARIES += libvirt_driver_vbox.la
616
libvirt_la_BUILT_LIBADD += libvirt_driver_vbox.la
617
endif
618
libvirt_driver_vbox_la_CFLAGS = \
619
		-I@top_srcdir@/src/conf $(AM_CFLAGS)
620
libvirt_driver_vbox_la_LIBADD = $(DLOPEN_LIBS)
621
if WITH_DRIVER_MODULES
622
libvirt_driver_vbox_la_LIBADD += ../gnulib/lib/libgnu.la
623
libvirt_driver_vbox_la_LDFLAGS = -module -avoid-version $(AM_LDFLAGS)
624 625 626 627
endif
libvirt_driver_vbox_la_SOURCES = $(VBOX_DRIVER_SOURCES)
endif

628 629 630 631 632
if WITH_XENAPI
if WITH_DRIVER_MODULES
mod_LTLIBRARIES += libvirt_driver_xenapi.la
else
noinst_LTLIBRARIES += libvirt_driver_xenapi.la
633
libvirt_la_BUILT_LIBADD += libvirt_driver_xenapi.la
634 635
endif
libvirt_driver_xenapi_la_CFLAGS = $(LIBXENSERVER_CFLAGS) $(LIBCURL_CFLAGS) \
636 637
		-I@top_srcdir@/src/conf $(AM_CFLAGS)
libvirt_driver_xenapi_la_LDFLAGS = $(AM_LDFLAGS)
638
libvirt_driver_xenapi_la_LIBADD = $(LIBXENSERVER_LIBS) $(LIBCURL_LIBS)
639
if WITH_DRIVER_MODULES
640
libvirt_driver_xenapi_la_LIBADD += ../gnulib/lib/libgnu.la
641 642 643 644 645
libvirt_driver_xenapi_la_LDFLAGS += -module -avoid-version
endif
libvirt_driver_xenapi_la_SOURCES = $(XENAPI_DRIVER_SOURCES)
endif

646
if WITH_QEMU
647 648 649
if WITH_DRIVER_MODULES
mod_LTLIBRARIES += libvirt_driver_qemu.la
else
650
noinst_LTLIBRARIES += libvirt_driver_qemu.la
651
# Stateful, so linked to daemon instead
652
#libvirt_la_BUILT_LIBADD += libvirt_driver_qemu.la
653
endif
654
libvirt_driver_qemu_la_CFLAGS = $(NUMACTL_CFLAGS) \
655 656
		-I@top_srcdir@/src/conf $(AM_CFLAGS)
libvirt_driver_qemu_la_LDFLAGS = $(AM_LDFLAGS)
657
libvirt_driver_qemu_la_LIBADD = $(NUMACTL_LIBS)
658
if WITH_DRIVER_MODULES
659
libvirt_driver_qemu_la_LIBADD += ../gnulib/lib/libgnu.la
660 661
libvirt_driver_qemu_la_LDFLAGS += -module -avoid-version
endif
662
libvirt_driver_qemu_la_SOURCES = $(QEMU_DRIVER_SOURCES)
663

A
Amy Griffis 已提交
664
conf_DATA += qemu/qemu.conf
665

666 667
augeas_DATA += qemu/libvirtd_qemu.aug
augeastest_DATA += qemu/test_libvirtd_qemu.aug
668

669
endif
670 671
EXTRA_DIST += qemu/qemu.conf qemu/libvirtd_qemu.aug \
		qemu/test_libvirtd_qemu.aug qemu/THREADS.txt
672

673 674

if WITH_LXC
675 676 677
if WITH_DRIVER_MODULES
mod_LTLIBRARIES += libvirt_driver_lxc.la
else
678
noinst_LTLIBRARIES += libvirt_driver_lxc.la
679
# Stateful, so linked to daemon instead
680
#libvirt_la_BUILT_LIBADD += libvirt_driver_lxc.la
681
endif
682
libvirt_driver_lxc_la_CFLAGS = \
683
		-I@top_srcdir@/src/conf $(AM_CFLAGS)
684
if WITH_DRIVER_MODULES
685
libvirt_driver_lxc_la_LIBADD = ../gnulib/lib/libgnu.la
686
libvirt_driver_lxc_la_LDFLAGS = -module -avoid-version $(AM_LDFLAGS)
687
endif
688
libvirt_driver_lxc_la_SOURCES = $(LXC_DRIVER_SOURCES)
A
Amy Griffis 已提交
689 690 691

conf_DATA += lxc/lxc.conf

692 693 694
augeas_DATA += lxc/libvirtd_lxc.aug
augeastest_DATA += lxc/test_libvirtd_lxc.aug

695
endif
696
EXTRA_DIST += lxc/lxc.conf lxc/libvirtd_lxc.aug lxc/test_libvirtd_lxc.aug
697

698
if WITH_UML
699 700 701
if WITH_DRIVER_MODULES
mod_LTLIBRARIES += libvirt_driver_uml.la
else
702 703
noinst_LTLIBRARIES += libvirt_driver_uml.la
# Stateful, so linked to daemon instead
704
#libvirt_la_BUILT_LIBADD += libvirt_driver_uml.la
705
endif
706
libvirt_driver_uml_la_CFLAGS = $(NUMACTL_CFLAGS) \
707 708
		-I@top_srcdir@/src/conf $(AM_CFLAGS)
libvirt_driver_uml_la_LDFLAGS = $(AM_LDFLAGS)
709
libvirt_driver_uml_la_LIBADD = $(NUMACTL_LIBS)
710
if WITH_DRIVER_MODULES
711
libvirt_driver_uml_la_LIBADD += ../gnulib/lib/libgnu.la
712 713
libvirt_driver_uml_la_LDFLAGS += -module -avoid-version
endif
714 715
libvirt_driver_uml_la_SOURCES = $(UML_DRIVER_SOURCES)
endif
716

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


738
BUILT_SOURCES += $(ESX_DRIVER_GENERATED)
D
Daniel Veillard 已提交
739

740 741
$(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 已提交
742

743 744 745 746 747
if WITH_ESX
if WITH_DRIVER_MODULES
mod_LTLIBRARIES += libvirt_driver_esx.la
else
noinst_LTLIBRARIES += libvirt_driver_esx.la
748
libvirt_la_BUILT_LIBADD += libvirt_driver_esx.la
749
endif
750
libvirt_driver_esx_la_CFLAGS = $(LIBCURL_CFLAGS) \
751 752
		-I@top_srcdir@/src/conf $(AM_CFLAGS)
libvirt_driver_esx_la_LDFLAGS = $(AM_LDFLAGS)
753
libvirt_driver_esx_la_LIBADD = $(LIBCURL_LIBS)
754
if WITH_DRIVER_MODULES
755
libvirt_driver_esx_la_LIBADD += ../gnulib/lib/libgnu.la
756 757 758
libvirt_driver_esx_la_LDFLAGS += -module -avoid-version
endif
libvirt_driver_esx_la_SOURCES = $(ESX_DRIVER_SOURCES)
759
libvirt_driver_esx_la_DEPENDENCIES = $(ESX_DRIVER_GENERATED)
760 761
endif

762
if WITH_NETWORK
763 764 765
if WITH_DRIVER_MODULES
mod_LTLIBRARIES += libvirt_driver_network.la
else
766
noinst_LTLIBRARIES += libvirt_driver_network.la
767
# Stateful, so linked to daemon instead
768
#libvirt_la_BUILT_LIBADD += libvirt_driver_network.la
769
endif
770
libvirt_driver_network_la_CFLAGS = \
771
		-I@top_srcdir@/src/conf $(AM_CFLAGS)
772
if WITH_DRIVER_MODULES
773
libvirt_driver_network_la_LIBADD = ../gnulib/lib/libgnu.la
774
libvirt_driver_network_la_LDFLAGS = -module -avoid-version $(AM_LDFLAGS)
775
endif
776
libvirt_driver_network_la_SOURCES = $(NETWORK_DRIVER_SOURCES)
777
endif
778 779 780 781
EXTRA_DIST += network/default.xml



782

D
Daniel Veillard 已提交
783
if WITH_NETCF
784 785 786 787
if WITH_DRIVER_MODULES
mod_LTLIBRARIES += libvirt_driver_interface.la
else
noinst_LTLIBRARIES += libvirt_driver_interface.la
788
libvirt_la_BUILT_LIBADD += libvirt_driver_interface.la
789
endif
790
libvirt_driver_interface_la_CFLAGS = $(NETCF_CFLAGS) \
791 792
		-I@top_srcdir@/src/conf $(AM_CFLAGS)
libvirt_driver_interface_la_LDFLAGS = $(AM_LDFLAGS)
793
libvirt_driver_interface_la_LIBADD = $(NETCF_LIBS)
794
if WITH_DRIVER_MODULES
795
libvirt_driver_interface_la_LIBADD += ../gnulib/lib/libgnu.la
796 797 798
libvirt_driver_interface_la_LDFLAGS += -module -avoid-version
endif
libvirt_driver_interface_la_SOURCES = $(INTERFACE_DRIVER_SOURCES)
D
Daniel Veillard 已提交
799 800
endif

D
Daniel P. Berrange 已提交
801
if WITH_SECRETS
802 803 804 805
if WITH_DRIVER_MODULES
mod_LTLIBRARIES += libvirt_driver_secret.la
else
noinst_LTLIBRARIES += libvirt_driver_secret.la
806
# Stateful, so linked to daemon instead
807
#libvirt_la_BUILT_LIBADD += libvirt_driver_secret.la
808
endif
809
libvirt_driver_secret_la_CFLAGS = \
810
		-I@top_srcdir@/src/conf $(AM_CFLAGS)
811
if WITH_DRIVER_MODULES
812
libvirt_driver_secret_la_LIBADD = ../gnulib/lib/libgnu.la
813
libvirt_driver_secret_la_LDFLAGS = -module -avoid-version $(AM_LDFLAGS)
814 815
endif
libvirt_driver_secret_la_SOURCES = $(SECRET_DRIVER_SOURCES)
D
Daniel P. Berrange 已提交
816
endif
817

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

840
if WITH_STORAGE_LVM
841
libvirt_driver_storage_la_SOURCES += $(STORAGE_DRIVER_LVM_SOURCES)
842 843
endif

844
if WITH_STORAGE_ISCSI
845
libvirt_driver_storage_la_SOURCES += $(STORAGE_DRIVER_ISCSI_SOURCES)
846 847
endif

848 849 850 851
if WITH_STORAGE_SCSI
libvirt_driver_storage_la_SOURCES += $(STORAGE_DRIVER_SCSI_SOURCES)
endif

D
Dave Allan 已提交
852 853 854
if WITH_STORAGE_MPATH
libvirt_driver_storage_la_SOURCES += $(STORAGE_DRIVER_MPATH_SOURCES)
libvirt_driver_storage_la_CFLAGS += $(DEVMAPPER_CFLAGS)
855
libvirt_driver_storage_la_LIBADD += $(DEVMAPPER_LIBS)
D
Dave Allan 已提交
856 857
endif

858
if WITH_STORAGE_DISK
859
libvirt_driver_storage_la_SOURCES += $(STORAGE_DRIVER_DISK_SOURCES)
860
endif
861

862 863 864 865 866 867 868
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
869
#libvirt_la_BUILT_LIBADD += libvirt_driver_nodedev.la
870 871 872
endif
libvirt_driver_nodedev_la_SOURCES = $(NODE_DEVICE_DRIVER_SOURCES)

873
libvirt_driver_nodedev_la_CFLAGS = \
874 875
		-I@top_srcdir@/src/conf $(AM_CFLAGS)
libvirt_driver_nodedev_la_LDFLAGS = $(AM_LDFLAGS)
876
libvirt_driver_nodedev_la_LIBADD =
877 878 879
if HAVE_HAL
libvirt_driver_nodedev_la_SOURCES += $(NODE_DEVICE_DRIVER_HAL_SOURCES)
libvirt_driver_nodedev_la_CFLAGS += $(HAL_CFLAGS)
880
libvirt_driver_nodedev_la_LIBADD += $(HAL_LIBS)
881
endif
882 883
if HAVE_UDEV
libvirt_driver_nodedev_la_SOURCES += $(NODE_DEVICE_DRIVER_UDEV_SOURCES)
884
libvirt_driver_nodedev_la_CFLAGS += $(UDEV_CFLAGS) $(PCIACCESS_CFLAGS)
885
libvirt_driver_nodedev_la_LIBADD += $(UDEV_LIBS) $(PCIACCESS_LIBS)
886
endif
887 888

if WITH_DRIVER_MODULES
889
libvirt_driver_nodedev_la_LIBADD += ../gnulib/lib/libgnu.la
890 891 892 893 894
libvirt_driver_nodedev_la_LDFLAGS += -module -avoid-version
endif
endif


895 896 897 898
if WITH_NWFILTER
if WITH_DRIVER_MODULES
mod_LTLIBRARIES += libvirt_driver_nwfilter.la
else
899
libvirt_la_BUILT_LIBADD += libvirt_driver_nwfilter.la
900 901
noinst_LTLIBRARIES += libvirt_driver_nwfilter.la
endif
902
libvirt_driver_nwfilter_la_CFLAGS = $(LIBPCAP_CFLAGS) \
903 904
		-I@top_srcdir@/src/conf $(AM_CFLAGS)
libvirt_driver_nwfilter_la_LDFLAGS = $(LD_AMFLAGS)
905
libvirt_driver_nwfilter_la_LIBADD = $(LIBPCAP_LIBS)
906
if WITH_DRIVER_MODULES
907
libvirt_driver_nwfilter_la_LIBADD += ../gnulib/lib/libgnu.la
908
libvirt_driver_nwfilter_la_LDFLAGS += -module -avoid-version
909 910 911 912 913
endif
libvirt_driver_nwfilter_la_SOURCES = $(NWFILTER_DRIVER_SOURCES)
endif


914 915
libvirt_driver_security_la_SOURCES = $(SECURITY_DRIVER_SOURCES)
noinst_LTLIBRARIES += libvirt_driver_security.la
916
libvirt_la_BUILT_LIBADD += libvirt_driver_security.la
917
libvirt_driver_security_la_CFLAGS = \
918 919
		-I@top_srcdir@/src/conf $(AM_CFLAGS)
libvirt_driver_security_la_LDFLAGS = $(AM_LDFLAGS)
920
libvirt_driver_security_la_LIBADD =
921 922
if WITH_SECDRIVER_SELINUX
libvirt_driver_security_la_SOURCES += $(SECURITY_DRIVER_SELINUX_SOURCES)
J
Jim Fehlig 已提交
923
libvirt_driver_security_la_CFLAGS += $(SELINUX_CFLAGS)
924
libvirt_driver_security_la_LIBADD += $(SELINUX_LIBS)
925
endif
J
Jamie Strandboge 已提交
926 927 928
if WITH_SECDRIVER_APPARMOR
libvirt_driver_security_la_SOURCES += $(SECURITY_DRIVER_APPARMOR_SOURCES)
libvirt_driver_security_la_CFLAGS += $(APPARMOR_CFLAGS)
929
libvirt_driver_security_la_LIBADD += $(APPARMOR_LIBS)
J
Jamie Strandboge 已提交
930
endif
931

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

965 966 967 968
check-local: augeas-check

.PHONY: augeas-check
augeas-check:
969
if WITH_QEMU
970
	$(AM_V_GEN)if test -x '$(AUGPARSE)'; then \
971 972 973 974 975
	    '$(AUGPARSE)' -I $(srcdir)/qemu \
	    $(srcdir)/qemu/test_libvirtd_qemu.aug; \
	fi
endif
if WITH_LXC
976
	$(AM_V_GEN)if test -x '$(AUGPARSE)'; then \
977 978 979 980 981
	    '$(AUGPARSE)' -I $(srcdir)/lxc \
	    $(srcdir)/lxc/test_libvirtd_lxc.aug; \
	fi
endif

982 983 984 985 986 987 988 989 990 991 992 993 994 995 996 997 998 999 1000
#
# 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.
#

1001
if WITH_DRIVER_MODULES
1002
USED_SYM_FILES += libvirt_driver_modules.syms
1003
endif
1004 1005

if WITH_BRIDGE
1006
USED_SYM_FILES += libvirt_bridge.syms
1007
endif
1008 1009

if WITH_LINUX
1010
USED_SYM_FILES += libvirt_linux.syms
1011
endif
1012

1013
if WITH_MACVTAP
1014
USED_SYM_FILES += libvirt_macvtap.syms
1015
endif
1016

1017 1018 1019 1020
if WITH_LIBVIRTD
USED_SYM_FILES += libvirt_daemon.syms
endif

1021 1022 1023 1024
if WITH_NWFILTER
USED_SYM_FILES += libvirt_nwfilter.syms
endif

1025 1026 1027 1028 1029
EXTRA_DIST += \
  libvirt_public.syms		\
  libvirt_private.syms		\
  libvirt_driver_modules.syms	\
  libvirt_bridge.syms		\
1030
  libvirt_linux.syms		\
1031
  libvirt_macvtap.syms		\
1032 1033
  libvirt_daemon.syms		\
  libvirt_nwfilter.syms
1034

1035
BUILT_SOURCES += libvirt.syms libvirt.def libvirt_qemu.def
1036

1037
libvirt.syms: libvirt_public.syms $(USED_SYM_FILES)
1038 1039 1040 1041 1042 1043
	$(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 && \
1044
	for file in $(USED_SYM_FILES); do \
1045
	    cat $(srcdir)/$$file >>$@-tmp; \
1046 1047 1048
	done && \
	printf '\n\nlocal:\n*;\n\n};' >>$@-tmp && \
	chmod a-w $@-tmp && \
1049
	mv $@-tmp libvirt.syms
1050

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

1058 1059 1060
libvirt_qemu.def: $(srcdir)/libvirt_qemu.syms
	$(AM_V_GEN)rm -f -- $@-tmp $@ ; \
	printf 'EXPORTS\n' > $@-tmp && \
E
Eric Blake 已提交
1061
	sed -e '/^$$/d; /#/d; /:/d; /}/d; /\*/d; /LIBVIRT_/d; s/[	 ]*\(.*\)\;/    \1/g' $^ >> $@-tmp && \
1062 1063 1064
	chmod a-w $@-tmp && \
	mv $@-tmp libvirt_qemu.def

1065 1066
# Empty source list - it merely links a bunch of convenience libs together
libvirt_la_SOURCES =
1067
libvirt_la_LDFLAGS = $(VERSION_SCRIPT_FLAGS)$(LIBVIRT_SYMBOL_FILE) \
1068
                     -version-info $(LIBVIRT_VERSION_INFO) \
1069
                    $(AM_LDFLAGS) \
1070
		    $(CYGWIN_EXTRA_LDFLAGS) $(MINGW_EXTRA_LDFLAGS)
1071
libvirt_la_BUILT_LIBADD += ../gnulib/lib/libgnu.la
1072
libvirt_la_LIBADD += $(LIBXML_LIBS) \
1073
		    $(DRIVER_MODULE_LIBS) \
1074
		    $(CYGWIN_EXTRA_LIBADD)
1075
libvirt_la_CFLAGS = -DIN_LIBVIRT $(AM_CFLAGS)
1076 1077 1078 1079 1080 1081
# 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)
1082

1083 1084 1085
# 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.
1086
noinst_LTLIBRARIES += libvirt_test.la
1087

1088
# Remove version script from convenience library
1089 1090
test_LDFLAGS =						\
  $$(echo '$(libvirt_la_LDFLAGS)'			\
1091
     |sed 's!$(VERSION_SCRIPT_FLAGS)$(LIBVIRT_SYMBOL_FILE)!!'	\
1092
     |sed 's!-version-info $(LIBVIRT_VERSION_INFO)!!')
1093 1094 1095 1096

# 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)
1097 1098
libvirt_test_la_LDFLAGS = $(test_LDFLAGS) $(AM_LDFLAGS)
libvirt_test_la_CFLAGS = $(AM_CFLAGS)
1099

C
Chris Lalancette 已提交
1100 1101 1102
libvirt_qemu_la_SOURCES = libvirt-qemu.c
libvirt_qemu_la_LDFLAGS = $(VERSION_SCRIPT_FLAGS)$(LIBVIRT_QEMU_SYMBOL_FILE) \
                          -version-info $(LIBVIRT_VERSION_INFO) \
1103 1104 1105
                          $(CYGWIN_EXTRA_LDFLAGS) $(MINGW_EXTRA_LDFLAGS) \
			  $(AM_LDFLAGS)
libvirt_qemu_la_CFLAGS = $(AM_CFLAGS)
C
Chris Lalancette 已提交
1106
libvirt_qemu_la_LIBADD = libvirt.la $(CYGWIN_EXTRA_LIBADD)
E
Eric Blake 已提交
1107
EXTRA_DIST += $(LIBVIRT_QEMU_SYMBOL_FILE)
1108

1109 1110
libexec_PROGRAMS =

1111
if WITH_STORAGE_DISK
R
Richard W.M. Jones 已提交
1112
if WITH_LIBVIRTD
1113
libexec_PROGRAMS += libvirt_parthelper
1114

1115
libvirt_parthelper_SOURCES = $(STORAGE_HELPER_DISK_SOURCES)
1116
libvirt_parthelper_LDFLAGS = $(WARN_LDFLAGS) $(AM_LDFLAGS)
1117 1118 1119 1120 1121 1122
libvirt_parthelper_LDADD =		\
		$(LIBPARTED_LIBS)	\
		$(DEVMAPPER_LIBS)	\
		libvirt_util.la		\
		../gnulib/lib/libgnu.la

1123
libvirt_parthelper_CFLAGS = $(LIBPARTED_CFLAGS) $(AM_CFLAGS)
R
Richard W.M. Jones 已提交
1124
endif
1125
endif
1126 1127
EXTRA_DIST += $(STORAGE_HELPER_DISK_SOURCES)

1128

1129 1130 1131 1132 1133 1134
if WITH_LXC
if WITH_LIBVIRTD
libexec_PROGRAMS += libvirt_lxc

libvirt_lxc_SOURCES =						\
		$(LXC_CONTROLLER_SOURCES)			\
1135
		$(UTIL_SOURCES)					\
1136 1137
		$(NODE_INFO_SOURCES)				\
		$(ENCRYPTION_CONF_SOURCES)			\
1138
		$(DOMAIN_CONF_SOURCES)				\
1139 1140
		$(CPU_CONF_SOURCES)				\
		$(NWFILTER_PARAM_CONF_SOURCES)
1141
libvirt_lxc_LDFLAGS = $(WARN_CFLAGS) $(AM_LDFLAGS)
1142 1143
libvirt_lxc_LDADD = $(CAPNG_LIBS) $(YAJL_LIBS) \
		$(LIBXML_LIBS) $(NUMACTL_LIBS) $(LIB_PTHREAD) \
1144
		$(LIBNL_LIBS) $(AUDIT_LIBS) ../gnulib/lib/libgnu.la
1145 1146 1147 1148
libvirt_lxc_CFLAGS =				\
		$(LIBPARTED_CFLAGS)		\
		$(NUMACTL_CFLAGS)		\
		$(CAPNG_CFLAGS)			\
1149
		$(YAJL_CFLAGS)			\
1150
		$(AUDIT_CFLAGS)			\
1151 1152
		-I@top_srcdir@/src/conf		\
		$(AM_CFLAGS)
1153 1154 1155 1156
endif
endif
EXTRA_DIST += $(LXC_CONTROLLER_SOURCES)

J
Jamie Strandboge 已提交
1157 1158 1159 1160 1161 1162
if WITH_SECDRIVER_APPARMOR
if WITH_LIBVIRTD
libexec_PROGRAMS += virt-aa-helper

virt_aa_helper_SOURCES = $(SECURITY_DRIVER_APPARMOR_HELPER_SOURCES)

1163
virt_aa_helper_LDFLAGS = $(WARN_LDFLAGS) $(AM_LDFLAGS)
J
Jamie Strandboge 已提交
1164
virt_aa_helper_LDADD =						\
1165
		$(LIBXML_LIBS)					\
C
Chris Lalancette 已提交
1166 1167 1168
		libvirt_conf.la					\
		libvirt_util.la					\
		../gnulib/lib/libgnu.la
J
Jamie Strandboge 已提交
1169 1170
virt_aa_helper_CFLAGS =						\
		-I@top_srcdir@/src/conf				\
1171 1172
		-I@top_srcdir@/src/security			\
		$(AM_CFLAGS)
J
Jamie Strandboge 已提交
1173 1174 1175 1176
endif
endif
EXTRA_DIST += $(SECURITY_DRIVER_APPARMOR_HELPER_SOURCES)

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

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