Makefile.am 38.3 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 15 16 17 18
		-I@top_srcdir@/include				\
		$(DRIVER_MODULE_CFLAGS)				\
		$(LIBXML_CFLAGS)				\
		-DLIBDIR=\""$(libdir)"\"			\
		-DBINDIR=\""$(libexecdir)"\"			\
		-DSBINDIR=\""$(sbindir)"\"			\
		-DSYSCONF_DIR="\"$(sysconfdir)\""		\
		-DLOCALEBASEDIR=\""$(datadir)/locale"\"		\
19
		-DPKGDATADIR=\""$(pkgdatadir)"\"		\
20 21 22
		-DLOCAL_STATE_DIR=\""$(localstatedir)"\"	\
		-DGETTEXT_PACKAGE=\"$(PACKAGE)\"		\
		$(WARN_CFLAGS)					\
23 24 25
		$(LOCK_CHECKING_CFLAGS)			\
		-DIN_LIBVIRT				\
		$(WIN32_EXTRA_CFLAGS)
26

27 28 29
AM_CFLAGS = $(COVERAGE_CFLAGS)
AM_LDFLAGS = $(COVERAGE_LDFLAGS)

30
EXTRA_DIST = $(conf_DATA)
31

32 33
BUILT_SOURCES =

34 35 36
if WITH_NETWORK
UUID=$(shell uuidgen 2>/dev/null)
endif
37

C
Chris Lalancette 已提交
38
lib_LTLIBRARIES = libvirt.la libvirt-qemu.la
39

40 41 42
moddir = $(libdir)/libvirt/drivers
mod_LTLIBRARIES =

A
Amy Griffis 已提交
43 44
confdir = $(sysconfdir)/libvirt
conf_DATA =
45

46 47 48 49 50 51
augeasdir = $(datadir)/augeas/lenses
augeas_DATA =

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

52 53
# These files are not related to driver APIs. Simply generic
# helper APIs for various purposes
54
UTIL_SOURCES =							\
55
		util/authhelper.c util/authhelper.h		\
56
		util/bitmap.c util/bitmap.h			\
57 58 59 60 61
		util/bridge.c util/bridge.h			\
		util/buf.c util/buf.h				\
		util/conf.c util/conf.h				\
		util/cgroup.c util/cgroup.h			\
		util/event.c util/event.h			\
62
		util/files.c util/files.h			\
63
		util/hash.c util/hash.h				\
D
Daniel Veillard 已提交
64
		util/hooks.c util/hooks.h			\
65
		util/iptables.c util/iptables.h			\
G
Gerhard Stenzel 已提交
66
		util/ebtables.c util/ebtables.h			\
67
		util/dnsmasq.c util/dnsmasq.h                   \
68
		util/json.c util/json.h				\
69
		util/logging.c util/logging.h			\
70
		util/macvtap.c util/macvtap.h			\
71 72
		util/memory.c util/memory.h			\
		util/pci.c util/pci.h				\
73
		util/processinfo.c util/processinfo.h		\
74
		util/hostusb.c util/hostusb.h			\
75
		util/network.c util/network.h			\
76
		util/interface.c util/interface.h		\
77 78
		util/qparams.c util/qparams.h			\
		util/stats_linux.c util/stats_linux.h		\
79
		util/storage_file.c util/storage_file.h		\
80 81 82 83 84 85
		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				\
86 87
		util/virtaudit.c util/virtaudit.h		\
		util/virterror.c util/virterror_internal.h
88 89

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

91
# Internal generic driver infrastructure
92
NODE_INFO_SOURCES = nodeinfo.h nodeinfo.c
93
DRIVER_SOURCES =						\
94
		driver.c driver.h				\
95 96
		internal.h					\
		datatypes.c datatypes.h				\
97
		$(NODE_INFO_SOURCES)				\
98 99 100
		libvirt.c libvirt_internal.h


101
# XML configuration format handling sources
102 103
# Domain driver generic impl APIs
DOMAIN_CONF_SOURCES =						\
104
		conf/capabilities.c conf/capabilities.h		\
105 106
		conf/domain_conf.c conf/domain_conf.h		\
		conf/domain_nwfilter.c conf/domain_nwfilter.h
107 108 109

DOMAIN_EVENT_SOURCES =						\
		conf/domain_event.c conf/domain_event.h
110 111

# Network driver generic impl APIs
112
NETWORK_CONF_SOURCES =						\
113
		conf/network_conf.c conf/network_conf.h
114

115 116
# Network filter driver generic impl APIs
NWFILTER_PARAM_CONF_SOURCES =					\
117 118
		conf/nwfilter_params.c conf/nwfilter_params.h	\
		conf/nwfilter_conf.h
119 120 121 122 123

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

124
# Storage driver generic impl APIs
125 126
STORAGE_CONF_SOURCES =                                         \
		conf/storage_conf.h conf/storage_conf.c
127

128
# Interface driver generic impl APIs
129 130
INTERFACE_CONF_SOURCES =                                       \
		conf/interface_conf.c conf/interface_conf.h
131

132
# Secret driver generic impl APIs
133 134 135 136 137 138 139 140 141 142
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

143 144 145
CPU_CONF_SOURCES =						\
		conf/cpu_conf.c conf/cpu_conf.h

146 147 148 149
CONF_SOURCES =							\
		$(DOMAIN_CONF_SOURCES)				\
		$(DOMAIN_EVENT_SOURCES)				\
		$(NETWORK_CONF_SOURCES)				\
150
		$(NWFILTER_CONF_SOURCES)			\
151 152 153 154
		$(NODE_DEVICE_CONF_SOURCES)			\
		$(STORAGE_CONF_SOURCES)				\
		$(ENCRYPTION_CONF_SOURCES)			\
		$(INTERFACE_CONF_SOURCES)			\
155 156
		$(SECRET_CONF_SOURCES)				\
		$(CPU_CONF_SOURCES)
157

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

E
Eric Blake 已提交
167 168
EXTRA_DIST += remote/remote_protocol.x remote/qemu_protocol.x \
		remote/rpcgen_fix.pl
169

170 171 172 173 174 175 176 177 178 179
# 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
180 181 182 183 184 185 186 187 188 189

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

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

222 223
# Mock driver, covering domains, storage, networks, etc
TEST_DRIVER_SOURCES =						\
224
		test/test_driver.c test/test_driver.h
225 226 227 228 229



# Now the Hypervisor specific drivers
XEN_DRIVER_SOURCES =						\
230 231 232 233 234 235 236 237
		xen/proxy_internal.c xen/proxy_internal.h	\
		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
238
if WITH_XEN_INOTIFY
239
XEN_DRIVER_SOURCES += xen/xen_inotify.c xen/xen_inotify.h
240
endif
241 242

LXC_DRIVER_SOURCES =						\
243 244 245
		lxc/lxc_conf.c lxc/lxc_conf.h			\
		lxc/lxc_container.c lxc/lxc_container.h		\
		lxc/lxc_driver.c lxc/lxc_driver.h		\
246
		lxc/veth.c lxc/veth.h
247

248
LXC_CONTROLLER_SOURCES =					\
249 250 251
		lxc/lxc_conf.c lxc/lxc_conf.h			\
		lxc/lxc_container.c lxc/lxc_container.h		\
		lxc/lxc_controller.c				\
252
		lxc/veth.c lxc/veth.h
253

J
Jamie Strandboge 已提交
254 255 256
SECURITY_DRIVER_APPARMOR_HELPER_SOURCES =			\
		security/virt-aa-helper.c

257 258 259
PHYP_DRIVER_SOURCES =						\
		phyp/phyp_driver.c phyp/phyp_driver.h

260
OPENVZ_DRIVER_SOURCES =						\
261 262
		openvz/openvz_conf.c openvz/openvz_conf.h	\
		openvz/openvz_driver.c openvz/openvz_driver.h
263

264 265 266
VBOX_DRIVER_SOURCES =						\
        vbox/vbox_XPCOMCGlue.c vbox/vbox_XPCOMCGlue.h		\
        vbox/vbox_driver.c vbox/vbox_driver.h			\
267
        vbox/vbox_V2_2.c vbox/vbox_CAPI_v2_2.h			\
268
        vbox/vbox_V3_0.c vbox/vbox_CAPI_v3_0.h			\
269 270
        vbox/vbox_V3_1.c vbox/vbox_CAPI_v3_1.h			\
        vbox/vbox_V3_2.c vbox/vbox_CAPI_v3_2.h
271

272 273
VBOX_DRIVER_EXTRA_DIST = vbox/vbox_tmpl.c vbox/README

274
QEMU_DRIVER_SOURCES =						\
275
		qemu/qemu_conf.c qemu/qemu_conf.h		\
276
		qemu/qemu_monitor.c qemu/qemu_monitor.h		\
277 278
		qemu/qemu_monitor_text.c			\
		qemu/qemu_monitor_text.h			\
D
Daniel P. Berrange 已提交
279 280 281
		qemu/qemu_monitor_json.c			\
		qemu/qemu_monitor_json.h			\
		qemu/qemu_driver.c qemu/qemu_driver.h		\
E
Eric Blake 已提交
282
		qemu/qemu_bridge_filter.c			\
283 284
		qemu/qemu_bridge_filter.h			\
		qemu/qemu_security_stacked.h			\
285 286 287
		qemu/qemu_security_stacked.c			\
		qemu/qemu_security_dac.h			\
		qemu/qemu_security_dac.c
R
Richard W.M. Jones 已提交
288

289 290
XENAPI_DRIVER_SOURCES =								\
		xenapi/xenapi_driver.c xenapi/xenapi_driver.h	\
291
		xenapi/xenapi_driver_private.h					\
292 293
		xenapi/xenapi_utils.c xenapi/xenapi_utils.h

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

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

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

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

337
NETWORK_DRIVER_SOURCES =					\
338
		network/bridge_driver.h network/bridge_driver.c
339

340
INTERFACE_DRIVER_SOURCES =					\
341
		interface/netcf_driver.h interface/netcf_driver.c
342

343
SECRET_DRIVER_SOURCES =						\
344
		secret/secret_driver.h secret/secret_driver.c
345

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

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

354
STORAGE_DRIVER_LVM_SOURCES =					\
355 356
		storage/storage_backend_logical.h			\
		storage/storage_backend_logical.c
357 358

STORAGE_DRIVER_ISCSI_SOURCES =					\
359
		storage/storage_backend_iscsi.h storage/storage_backend_iscsi.c
360

361
STORAGE_DRIVER_SCSI_SOURCES =					\
362
		storage/storage_backend_scsi.h storage/storage_backend_scsi.c
363

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

367
STORAGE_DRIVER_DISK_SOURCES =					\
368
		storage/storage_backend_disk.h storage/storage_backend_disk.c
369 370

STORAGE_HELPER_DISK_SOURCES =					\
371
		storage/parthelper.c
372

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

383

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

388
SECURITY_DRIVER_SELINUX_SOURCES =				\
389
		security/security_selinux.h security/security_selinux.c
390

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

394

395
NODE_DEVICE_DRIVER_SOURCES =					\
396 397 398
		node_device/node_device_driver.c \
		node_device/node_device_driver.h \
		node_device/node_device_linux_sysfs.c
399 400

NODE_DEVICE_DRIVER_HAL_SOURCES =				\
401
		node_device/node_device_hal.c			\
402
		node_device/node_device_hal.h
403

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

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

J
Jiri Denemark 已提交
414 415
pkgdata_DATA =	cpu/cpu_map.xml

E
Eric Blake 已提交
416
EXTRA_DIST +=	$(pkgdata_DATA)
417

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

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

434 435

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

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

447

448
noinst_LTLIBRARIES += libvirt_driver.la
449
libvirt_la_BUILT_LIBADD += libvirt_driver.la
450
libvirt_driver_la_SOURCES = $(DRIVER_SOURCES)
451

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

456
USED_SYM_FILES = libvirt_private.syms
457

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

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

if HAVE_RPCGEN
#
# Maintainer-only target for re-generating the derived .c/.h source
# files, which are actually derived from the .x file.
#
497
# For committing protocol changes to GIT, the GLIBC rpcgen *must*
498 499 500 501 502
# 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 已提交
503
rpcgen-normal:
504 505 506 507
	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 已提交
508 509
	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
510 511 512 513 514 515 516 517 518 519
	(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 已提交
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 545 546 547 548 549 550

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

551 552 553
endif

remote/remote_protocol.c: remote/remote_protocol.h
554 555 556
endif

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

575 576 577 578 579
if WITH_PHYP
if WITH_DRIVER_MODULES
mod_LTLIBRARIES += libvirt_driver_phyp.la
else
noinst_LTLIBRARIES += libvirt_driver_phyp.la
580
libvirt_la_BUILT_LIBADD += libvirt_driver_phyp.la
581
endif
582
libvirt_driver_phyp_la_LIBADD = $(LIBSSH2_LIBS)
583
libvirt_driver_phyp_la_CFLAGS = $(LIBSSH2_CFLAGS) \
584
		-I@top_srcdir@/src/conf $(AM_CFLAGS)
585 586 587
libvirt_driver_phyp_la_SOURCES = $(PHYP_DRIVER_SOURCES)
endif

588
if WITH_OPENVZ
589 590 591
if WITH_DRIVER_MODULES
mod_LTLIBRARIES += libvirt_driver_openvz.la
else
592
noinst_LTLIBRARIES += libvirt_driver_openvz.la
593
libvirt_la_BUILT_LIBADD += libvirt_driver_openvz.la
594
endif
595
libvirt_driver_openvz_la_CFLAGS = \
596
		-I@top_srcdir@/src/conf $(AM_CFLAGS)
597
if WITH_DRIVER_MODULES
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
if WITH_DRIVER_MODULES
613
libvirt_driver_vbox_la_LDFLAGS = -module -avoid-version $(AM_LDFLAGS)
614
endif
615
libvirt_driver_vbox_la_LIBADD = $(DLOPEN_LIBS)
616 617 618
libvirt_driver_vbox_la_SOURCES = $(VBOX_DRIVER_SOURCES)
endif

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

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

A
Amy Griffis 已提交
653
conf_DATA += qemu/qemu.conf
654

655 656
augeas_DATA += qemu/libvirtd_qemu.aug
augeastest_DATA += qemu/test_libvirtd_qemu.aug
657

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

662 663

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

conf_DATA += lxc/lxc.conf

680 681 682
augeas_DATA += lxc/libvirtd_lxc.aug
augeastest_DATA += lxc/test_libvirtd_lxc.aug

683
endif
684
EXTRA_DIST += lxc/lxc.conf lxc/libvirtd_lxc.aug lxc/test_libvirtd_lxc.aug
685

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

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


724
BUILT_SOURCES += $(ESX_DRIVER_GENERATED)
D
Daniel Veillard 已提交
725

726 727
$(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 已提交
728

729 730 731 732 733
if WITH_ESX
if WITH_DRIVER_MODULES
mod_LTLIBRARIES += libvirt_driver_esx.la
else
noinst_LTLIBRARIES += libvirt_driver_esx.la
734
libvirt_la_BUILT_LIBADD += libvirt_driver_esx.la
735
endif
736
libvirt_driver_esx_la_CFLAGS = $(LIBCURL_CFLAGS) \
737 738
		-I@top_srcdir@/src/conf $(AM_CFLAGS)
libvirt_driver_esx_la_LDFLAGS = $(AM_LDFLAGS)
739
libvirt_driver_esx_la_LIBADD = $(LIBCURL_LIBS)
740 741 742 743
if WITH_DRIVER_MODULES
libvirt_driver_esx_la_LDFLAGS += -module -avoid-version
endif
libvirt_driver_esx_la_SOURCES = $(ESX_DRIVER_SOURCES)
744
libvirt_driver_esx_la_DEPENDENCIES = $(ESX_DRIVER_GENERATED)
745 746
endif

747
if WITH_NETWORK
748 749 750
if WITH_DRIVER_MODULES
mod_LTLIBRARIES += libvirt_driver_network.la
else
751
noinst_LTLIBRARIES += libvirt_driver_network.la
752
# Stateful, so linked to daemon instead
753
#libvirt_la_BUILT_LIBADD += libvirt_driver_network.la
754
endif
755
libvirt_driver_network_la_CFLAGS = \
756
		-I@top_srcdir@/src/conf $(AM_CFLAGS)
757
if WITH_DRIVER_MODULES
758
libvirt_driver_network_la_LDFLAGS = -module -avoid-version $(AM_LDFLAGS)
759
endif
760
libvirt_driver_network_la_SOURCES = $(NETWORK_DRIVER_SOURCES)
761
endif
762 763 764 765
EXTRA_DIST += network/default.xml



766

D
Daniel Veillard 已提交
767
if WITH_NETCF
768 769 770 771
if WITH_DRIVER_MODULES
mod_LTLIBRARIES += libvirt_driver_interface.la
else
noinst_LTLIBRARIES += libvirt_driver_interface.la
772
libvirt_la_BUILT_LIBADD += libvirt_driver_interface.la
773
endif
774
libvirt_driver_interface_la_CFLAGS = $(NETCF_CFLAGS) \
775 776
		-I@top_srcdir@/src/conf $(AM_CFLAGS)
libvirt_driver_interface_la_LDFLAGS = $(AM_LDFLAGS)
777
libvirt_driver_interface_la_LIBADD = $(NETCF_LIBS)
778 779 780 781
if WITH_DRIVER_MODULES
libvirt_driver_interface_la_LDFLAGS += -module -avoid-version
endif
libvirt_driver_interface_la_SOURCES = $(INTERFACE_DRIVER_SOURCES)
D
Daniel Veillard 已提交
782 783
endif

D
Daniel P. Berrange 已提交
784
if WITH_SECRETS
785 786 787 788
if WITH_DRIVER_MODULES
mod_LTLIBRARIES += libvirt_driver_secret.la
else
noinst_LTLIBRARIES += libvirt_driver_secret.la
789
# Stateful, so linked to daemon instead
790
#libvirt_la_BUILT_LIBADD += libvirt_driver_secret.la
791
endif
792
libvirt_driver_secret_la_CFLAGS = \
793
		-I@top_srcdir@/src/conf $(AM_CFLAGS)
794
if WITH_DRIVER_MODULES
795
libvirt_driver_secret_la_LDFLAGS = -module -avoid-version $(AM_LDFLAGS)
796
libvirt_driver_secret_la_LIBADD = ../gnulib/lib/libgnu.la
797 798
endif
libvirt_driver_secret_la_SOURCES = $(SECRET_DRIVER_SOURCES)
D
Daniel P. Berrange 已提交
799
endif
800

801 802
# Needed to keep automake quiet about conditionals
libvirt_driver_storage_la_SOURCES =
803
libvirt_driver_storage_la_CFLAGS = \
804 805
		-I@top_srcdir@/src/conf $(AM_CFLAGS)
libvirt_driver_storage_la_LDFLAGS = $(AM_LDFLAGS)
806
libvirt_driver_storage_la_LIBADD =
807
if WITH_STORAGE_DIR
808 809 810
if WITH_DRIVER_MODULES
mod_LTLIBRARIES += libvirt_driver_storage.la
else
811
noinst_LTLIBRARIES += libvirt_driver_storage.la
812
# Stateful, so linked to daemon instead
813
#libvirt_la_BUILT_LIBADD += libvirt_driver_storage.la
814 815
endif
if WITH_DRIVER_MODULES
816
libvirt_driver_storage_la_LDFLAGS += -module -avoid-version
817
endif
818 819
libvirt_driver_storage_la_SOURCES += $(STORAGE_DRIVER_SOURCES)
libvirt_driver_storage_la_SOURCES += $(STORAGE_DRIVER_FS_SOURCES)
820 821
endif

822
if WITH_STORAGE_LVM
823
libvirt_driver_storage_la_SOURCES += $(STORAGE_DRIVER_LVM_SOURCES)
824 825
endif

826
if WITH_STORAGE_ISCSI
827
libvirt_driver_storage_la_SOURCES += $(STORAGE_DRIVER_ISCSI_SOURCES)
828 829
endif

830 831 832 833
if WITH_STORAGE_SCSI
libvirt_driver_storage_la_SOURCES += $(STORAGE_DRIVER_SCSI_SOURCES)
endif

D
Dave Allan 已提交
834 835 836
if WITH_STORAGE_MPATH
libvirt_driver_storage_la_SOURCES += $(STORAGE_DRIVER_MPATH_SOURCES)
libvirt_driver_storage_la_CFLAGS += $(DEVMAPPER_CFLAGS)
837
libvirt_driver_storage_la_LIBADD += $(DEVMAPPER_LIBS)
D
Dave Allan 已提交
838 839
endif

840
if WITH_STORAGE_DISK
841
libvirt_driver_storage_la_SOURCES += $(STORAGE_DRIVER_DISK_SOURCES)
842
endif
843

844 845 846 847 848 849 850
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
851
#libvirt_la_BUILT_LIBADD += libvirt_driver_nodedev.la
852 853 854
endif
libvirt_driver_nodedev_la_SOURCES = $(NODE_DEVICE_DRIVER_SOURCES)

855
libvirt_driver_nodedev_la_CFLAGS = \
856 857
		-I@top_srcdir@/src/conf $(AM_CFLAGS)
libvirt_driver_nodedev_la_LDFLAGS = $(AM_LDFLAGS)
858
libvirt_driver_nodedev_la_LIBADD =
859 860 861
if HAVE_HAL
libvirt_driver_nodedev_la_SOURCES += $(NODE_DEVICE_DRIVER_HAL_SOURCES)
libvirt_driver_nodedev_la_CFLAGS += $(HAL_CFLAGS)
862
libvirt_driver_nodedev_la_LIBADD += $(HAL_LIBS)
863
endif
864 865
if HAVE_UDEV
libvirt_driver_nodedev_la_SOURCES += $(NODE_DEVICE_DRIVER_UDEV_SOURCES)
866
libvirt_driver_nodedev_la_CFLAGS += $(UDEV_CFLAGS) $(PCIACCESS_CFLAGS)
867
libvirt_driver_nodedev_la_LIBADD += $(UDEV_LIBS) $(PCIACCESS_LIBS)
868
endif
869 870 871 872 873 874 875

if WITH_DRIVER_MODULES
libvirt_driver_nodedev_la_LDFLAGS += -module -avoid-version
endif
endif


876 877 878 879
if WITH_NWFILTER
if WITH_DRIVER_MODULES
mod_LTLIBRARIES += libvirt_driver_nwfilter.la
else
880
libvirt_la_BUILT_LIBADD += libvirt_driver_nwfilter.la
881 882
noinst_LTLIBRARIES += libvirt_driver_nwfilter.la
endif
883
libvirt_driver_nwfilter_la_CFLAGS = $(LIBPCAP_CFLAGS) \
884 885
		-I@top_srcdir@/src/conf $(AM_CFLAGS)
libvirt_driver_nwfilter_la_LDFLAGS = $(LD_AMFLAGS)
886
libvirt_driver_nwfilter_la_LIBADD = $(LIBPCAP_LIBS)
887
if WITH_DRIVER_MODULES
888 889
libvirt_driver_nwfilter_la_LDFLAGS += -module -avoid-version
libvirt_driver_nwfilter_la_LIBADD += ../gnulib/lib/libgnu.la
890 891 892 893 894
endif
libvirt_driver_nwfilter_la_SOURCES = $(NWFILTER_DRIVER_SOURCES)
endif


895 896
libvirt_driver_security_la_SOURCES = $(SECURITY_DRIVER_SOURCES)
noinst_LTLIBRARIES += libvirt_driver_security.la
897
libvirt_la_BUILT_LIBADD += libvirt_driver_security.la
898
libvirt_driver_security_la_CFLAGS = \
899 900
		-I@top_srcdir@/src/conf $(AM_CFLAGS)
libvirt_driver_security_la_LDFLAGS = $(AM_LDFLAGS)
901
libvirt_driver_security_la_LIBADD =
902 903
if WITH_SECDRIVER_SELINUX
libvirt_driver_security_la_SOURCES += $(SECURITY_DRIVER_SELINUX_SOURCES)
J
Jim Fehlig 已提交
904
libvirt_driver_security_la_CFLAGS += $(SELINUX_CFLAGS)
905
libvirt_driver_security_la_LIBADD += $(SELINUX_LIBS)
906
endif
J
Jamie Strandboge 已提交
907 908 909
if WITH_SECDRIVER_APPARMOR
libvirt_driver_security_la_SOURCES += $(SECURITY_DRIVER_APPARMOR_SOURCES)
libvirt_driver_security_la_CFLAGS += $(APPARMOR_CFLAGS)
910
libvirt_driver_security_la_LIBADD += $(APPARMOR_LIBS)
J
Jamie Strandboge 已提交
911
endif
912

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

946 947 948 949
check-local: augeas-check

.PHONY: augeas-check
augeas-check:
950
if WITH_QEMU
951
	$(AM_V_GEN)if test -x '$(AUGPARSE)'; then \
952 953 954 955 956
	    '$(AUGPARSE)' -I $(srcdir)/qemu \
	    $(srcdir)/qemu/test_libvirtd_qemu.aug; \
	fi
endif
if WITH_LXC
957
	$(AM_V_GEN)if test -x '$(AUGPARSE)'; then \
958 959 960 961 962
	    '$(AUGPARSE)' -I $(srcdir)/lxc \
	    $(srcdir)/lxc/test_libvirtd_lxc.aug; \
	fi
endif

963 964 965 966 967 968 969 970 971 972 973 974 975 976 977 978 979 980 981
#
# 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.
#

982
if WITH_DRIVER_MODULES
983
USED_SYM_FILES += libvirt_driver_modules.syms
984
endif
985 986

if WITH_BRIDGE
987
USED_SYM_FILES += libvirt_bridge.syms
988
endif
989 990

if WITH_LINUX
991
USED_SYM_FILES += libvirt_linux.syms
992
endif
993

994
if WITH_MACVTAP
995
USED_SYM_FILES += libvirt_macvtap.syms
996
endif
997

998 999 1000 1001
if WITH_LIBVIRTD
USED_SYM_FILES += libvirt_daemon.syms
endif

1002 1003 1004 1005
if WITH_NWFILTER
USED_SYM_FILES += libvirt_nwfilter.syms
endif

1006 1007 1008 1009 1010
EXTRA_DIST += \
  libvirt_public.syms		\
  libvirt_private.syms		\
  libvirt_driver_modules.syms	\
  libvirt_bridge.syms		\
1011
  libvirt_linux.syms		\
1012
  libvirt_macvtap.syms		\
1013 1014
  libvirt_daemon.syms		\
  libvirt_nwfilter.syms
1015

1016
BUILT_SOURCES += libvirt.syms libvirt.def libvirt_qemu.def
1017

1018
libvirt.syms: libvirt_public.syms $(USED_SYM_FILES)
1019 1020 1021 1022 1023 1024
	$(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 && \
1025
	for file in $(USED_SYM_FILES); do \
1026
	    cat $(srcdir)/$$file >>$@-tmp; \
1027 1028 1029
	done && \
	printf '\n\nlocal:\n*;\n\n};' >>$@-tmp && \
	chmod a-w $@-tmp && \
1030
	mv $@-tmp libvirt.syms
1031

1032 1033 1034
libvirt.def: libvirt.syms
	$(AM_V_GEN)rm -f -- $@-tmp $@ ; \
	printf 'EXPORTS\n' > $@-tmp && \
E
Eric Blake 已提交
1035
	sed -e '/^$$/d; /#/d; /:/d; /}/d; /\*/d; /LIBVIRT_/d; s/[	 ]*\(.*\)\;/    \1/g' $^ >> $@-tmp && \
1036 1037 1038
	chmod a-w $@-tmp && \
	mv $@-tmp libvirt.def

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

1046 1047
# Empty source list - it merely links a bunch of convenience libs together
libvirt_la_SOURCES =
1048
libvirt_la_LDFLAGS = $(VERSION_SCRIPT_FLAGS)$(LIBVIRT_SYMBOL_FILE) \
1049
                     -version-info $(LIBVIRT_VERSION_INFO) \
1050
                    $(AM_LDFLAGS) \
1051
		    $(CYGWIN_EXTRA_LDFLAGS) $(MINGW_EXTRA_LDFLAGS)
1052
libvirt_la_BUILT_LIBADD += ../gnulib/lib/libgnu.la
1053
libvirt_la_LIBADD += $(LIBXML_LIBS) \
1054
		    $(DRIVER_MODULE_LIBS) \
1055
		    $(CYGWIN_EXTRA_LIBADD)
1056
libvirt_la_CFLAGS = -DIN_LIBVIRT $(AM_CFLAGS)
1057 1058 1059 1060 1061 1062
# 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)
1063

1064 1065 1066
# 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.
1067
noinst_LTLIBRARIES += libvirt_test.la
1068

1069
# Remove version script from convenience library
1070 1071
test_LDFLAGS =						\
  $$(echo '$(libvirt_la_LDFLAGS)'			\
1072
     |sed 's!$(VERSION_SCRIPT_FLAGS)$(LIBVIRT_SYMBOL_FILE)!!'	\
1073
     |sed 's!-version-info $(LIBVIRT_VERSION_INFO)!!')
1074 1075 1076 1077

# 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)
1078 1079
libvirt_test_la_LDFLAGS = $(test_LDFLAGS) $(AM_LDFLAGS)
libvirt_test_la_CFLAGS = $(AM_CFLAGS)
1080

C
Chris Lalancette 已提交
1081 1082 1083
libvirt_qemu_la_SOURCES = libvirt-qemu.c
libvirt_qemu_la_LDFLAGS = $(VERSION_SCRIPT_FLAGS)$(LIBVIRT_QEMU_SYMBOL_FILE) \
                          -version-info $(LIBVIRT_VERSION_INFO) \
1084 1085 1086
                          $(CYGWIN_EXTRA_LDFLAGS) $(MINGW_EXTRA_LDFLAGS) \
			  $(AM_LDFLAGS)
libvirt_qemu_la_CFLAGS = $(AM_CFLAGS)
C
Chris Lalancette 已提交
1087
libvirt_qemu_la_LIBADD = libvirt.la $(CYGWIN_EXTRA_LIBADD)
E
Eric Blake 已提交
1088
EXTRA_DIST += $(LIBVIRT_QEMU_SYMBOL_FILE)
1089

1090 1091
libexec_PROGRAMS =

1092
if WITH_STORAGE_DISK
R
Richard W.M. Jones 已提交
1093
if WITH_LIBVIRTD
1094
libexec_PROGRAMS += libvirt_parthelper
1095

1096
libvirt_parthelper_SOURCES = $(STORAGE_HELPER_DISK_SOURCES)
1097
libvirt_parthelper_LDFLAGS = $(WARN_LDFLAGS) $(AM_LDFLAGS)
1098 1099 1100 1101 1102 1103
libvirt_parthelper_LDADD =		\
		$(LIBPARTED_LIBS)	\
		$(DEVMAPPER_LIBS)	\
		libvirt_util.la		\
		../gnulib/lib/libgnu.la

1104
libvirt_parthelper_CFLAGS = $(LIBPARTED_CFLAGS) $(AM_CFLAGS)
R
Richard W.M. Jones 已提交
1105
endif
1106
endif
1107 1108
EXTRA_DIST += $(STORAGE_HELPER_DISK_SOURCES)

1109

1110 1111 1112 1113 1114 1115
if WITH_LXC
if WITH_LIBVIRTD
libexec_PROGRAMS += libvirt_lxc

libvirt_lxc_SOURCES =						\
		$(LXC_CONTROLLER_SOURCES)			\
1116
		$(UTIL_SOURCES)					\
1117 1118
		$(NODE_INFO_SOURCES)				\
		$(ENCRYPTION_CONF_SOURCES)			\
1119
		$(DOMAIN_CONF_SOURCES)				\
1120 1121
		$(CPU_CONF_SOURCES)				\
		$(NWFILTER_PARAM_CONF_SOURCES)
1122
libvirt_lxc_LDFLAGS = $(WARN_CFLAGS) $(AM_LDFLAGS)
1123 1124
libvirt_lxc_LDADD = $(CAPNG_LIBS) $(YAJL_LIBS) \
		$(LIBXML_LIBS) $(NUMACTL_LIBS) $(LIB_PTHREAD) \
1125
		$(LIBNL_LIBS) $(AUDIT_LIBS) ../gnulib/lib/libgnu.la
1126 1127 1128 1129
libvirt_lxc_CFLAGS =				\
		$(LIBPARTED_CFLAGS)		\
		$(NUMACTL_CFLAGS)		\
		$(CAPNG_CFLAGS)			\
1130
		$(YAJL_CFLAGS)			\
1131
		$(AUDIT_CFLAGS)			\
1132 1133
		-I@top_srcdir@/src/conf		\
		$(AM_CFLAGS)
1134 1135 1136 1137
endif
endif
EXTRA_DIST += $(LXC_CONTROLLER_SOURCES)

J
Jamie Strandboge 已提交
1138 1139 1140 1141 1142 1143
if WITH_SECDRIVER_APPARMOR
if WITH_LIBVIRTD
libexec_PROGRAMS += virt-aa-helper

virt_aa_helper_SOURCES = $(SECURITY_DRIVER_APPARMOR_HELPER_SOURCES)

1144
virt_aa_helper_LDFLAGS = $(WARN_LDFLAGS) $(AM_LDFLAGS)
J
Jamie Strandboge 已提交
1145
virt_aa_helper_LDADD =						\
1146
		$(LIBXML_LIBS)					\
C
Chris Lalancette 已提交
1147 1148 1149
		libvirt_conf.la					\
		libvirt_util.la					\
		../gnulib/lib/libgnu.la
J
Jamie Strandboge 已提交
1150 1151
virt_aa_helper_CFLAGS =						\
		-I@top_srcdir@/src/conf				\
1152 1153
		-I@top_srcdir@/src/security			\
		$(AM_CFLAGS)
J
Jamie Strandboge 已提交
1154 1155 1156 1157
endif
endif
EXTRA_DIST += $(SECURITY_DRIVER_APPARMOR_HELPER_SOURCES)

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

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