Makefile.am 39.2 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_conf.c qemu/qemu_conf.h		\
274
		qemu/qemu_monitor.c qemu/qemu_monitor.h		\
275 276
		qemu/qemu_monitor_text.c			\
		qemu/qemu_monitor_text.h			\
D
Daniel P. Berrange 已提交
277 278 279
		qemu/qemu_monitor_json.c			\
		qemu/qemu_monitor_json.h			\
		qemu/qemu_driver.c qemu/qemu_driver.h		\
E
Eric Blake 已提交
280
		qemu/qemu_bridge_filter.c			\
281 282
		qemu/qemu_bridge_filter.h			\
		qemu/qemu_security_stacked.h			\
283 284 285
		qemu/qemu_security_stacked.c			\
		qemu/qemu_security_dac.h			\
		qemu/qemu_security_dac.c
R
Richard W.M. Jones 已提交
286

287 288
XENAPI_DRIVER_SOURCES =								\
		xenapi/xenapi_driver.c xenapi/xenapi_driver.h	\
289
		xenapi/xenapi_driver_private.h					\
290 291
		xenapi/xenapi_utils.c xenapi/xenapi_utils.h

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

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

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

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

335
NETWORK_DRIVER_SOURCES =					\
336
		network/bridge_driver.h network/bridge_driver.c
337

338
INTERFACE_DRIVER_SOURCES =					\
339
		interface/netcf_driver.h interface/netcf_driver.c
340

341
SECRET_DRIVER_SOURCES =						\
342
		secret/secret_driver.h secret/secret_driver.c
343

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

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

352
STORAGE_DRIVER_LVM_SOURCES =					\
353 354
		storage/storage_backend_logical.h			\
		storage/storage_backend_logical.c
355 356

STORAGE_DRIVER_ISCSI_SOURCES =					\
357
		storage/storage_backend_iscsi.h storage/storage_backend_iscsi.c
358

359
STORAGE_DRIVER_SCSI_SOURCES =					\
360
		storage/storage_backend_scsi.h storage/storage_backend_scsi.c
361

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

365
STORAGE_DRIVER_DISK_SOURCES =					\
366
		storage/storage_backend_disk.h storage/storage_backend_disk.c
367 368

STORAGE_HELPER_DISK_SOURCES =					\
369
		storage/parthelper.c
370

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

381

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

386
SECURITY_DRIVER_SELINUX_SOURCES =				\
387
		security/security_selinux.h security/security_selinux.c
388

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

392

393
NODE_DEVICE_DRIVER_SOURCES =					\
394 395 396
		node_device/node_device_driver.c \
		node_device/node_device_driver.h \
		node_device/node_device_linux_sysfs.c
397 398

NODE_DEVICE_DRIVER_HAL_SOURCES =				\
399
		node_device/node_device_hal.c			\
400
		node_device/node_device_hal.h
401

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

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

J
Jiri Denemark 已提交
412 413
pkgdata_DATA =	cpu/cpu_map.xml

E
Eric Blake 已提交
414
EXTRA_DIST +=	$(pkgdata_DATA)
415

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

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

432 433

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

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

445

446
noinst_LTLIBRARIES += libvirt_driver.la
447
libvirt_la_BUILT_LIBADD += libvirt_driver.la
448
libvirt_driver_la_SOURCES = $(DRIVER_SOURCES)
449

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

454
USED_SYM_FILES = libvirt_private.syms
455

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

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

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

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

549 550 551
endif

remote/remote_protocol.c: remote/remote_protocol.h
552 553 554
endif

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

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

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

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

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

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

A
Amy Griffis 已提交
660
conf_DATA += qemu/qemu.conf
661

662 663
augeas_DATA += qemu/libvirtd_qemu.aug
augeastest_DATA += qemu/test_libvirtd_qemu.aug
664

665
endif
666 667
EXTRA_DIST += qemu/qemu.conf qemu/libvirtd_qemu.aug \
		qemu/test_libvirtd_qemu.aug qemu/THREADS.txt
668

669 670

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

conf_DATA += lxc/lxc.conf

688 689 690
augeas_DATA += lxc/libvirtd_lxc.aug
augeastest_DATA += lxc/test_libvirtd_lxc.aug

691
endif
692
EXTRA_DIST += lxc/lxc.conf lxc/libvirtd_lxc.aug lxc/test_libvirtd_lxc.aug
693

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

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


734
BUILT_SOURCES += $(ESX_DRIVER_GENERATED)
D
Daniel Veillard 已提交
735

736 737
$(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 已提交
738

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

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



778

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

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

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

836
if WITH_STORAGE_LVM
837
libvirt_driver_storage_la_SOURCES += $(STORAGE_DRIVER_LVM_SOURCES)
838 839
endif

840
if WITH_STORAGE_ISCSI
841
libvirt_driver_storage_la_SOURCES += $(STORAGE_DRIVER_ISCSI_SOURCES)
842 843
endif

844 845 846 847
if WITH_STORAGE_SCSI
libvirt_driver_storage_la_SOURCES += $(STORAGE_DRIVER_SCSI_SOURCES)
endif

D
Dave Allan 已提交
848 849 850
if WITH_STORAGE_MPATH
libvirt_driver_storage_la_SOURCES += $(STORAGE_DRIVER_MPATH_SOURCES)
libvirt_driver_storage_la_CFLAGS += $(DEVMAPPER_CFLAGS)
851
libvirt_driver_storage_la_LIBADD += $(DEVMAPPER_LIBS)
D
Dave Allan 已提交
852 853
endif

854
if WITH_STORAGE_DISK
855
libvirt_driver_storage_la_SOURCES += $(STORAGE_DRIVER_DISK_SOURCES)
856
endif
857

858 859 860 861 862 863 864
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
865
#libvirt_la_BUILT_LIBADD += libvirt_driver_nodedev.la
866 867 868
endif
libvirt_driver_nodedev_la_SOURCES = $(NODE_DEVICE_DRIVER_SOURCES)

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

if WITH_DRIVER_MODULES
885
libvirt_driver_nodedev_la_LIBADD += ../gnulib/lib/libgnu.la
886 887 888 889 890
libvirt_driver_nodedev_la_LDFLAGS += -module -avoid-version
endif
endif


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


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

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

961 962 963 964
check-local: augeas-check

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

978 979 980 981 982 983 984 985 986 987 988 989 990 991 992 993 994 995 996
#
# 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.
#

997
if WITH_DRIVER_MODULES
998
USED_SYM_FILES += libvirt_driver_modules.syms
999
endif
1000 1001

if WITH_BRIDGE
1002
USED_SYM_FILES += libvirt_bridge.syms
1003
endif
1004 1005

if WITH_LINUX
1006
USED_SYM_FILES += libvirt_linux.syms
1007
endif
1008

1009
if WITH_MACVTAP
1010
USED_SYM_FILES += libvirt_macvtap.syms
1011
endif
1012

1013 1014 1015 1016
if WITH_LIBVIRTD
USED_SYM_FILES += libvirt_daemon.syms
endif

1017 1018 1019 1020
if WITH_NWFILTER
USED_SYM_FILES += libvirt_nwfilter.syms
endif

1021 1022 1023 1024 1025
EXTRA_DIST += \
  libvirt_public.syms		\
  libvirt_private.syms		\
  libvirt_driver_modules.syms	\
  libvirt_bridge.syms		\
1026
  libvirt_linux.syms		\
1027
  libvirt_macvtap.syms		\
1028 1029
  libvirt_daemon.syms		\
  libvirt_nwfilter.syms
1030

1031
BUILT_SOURCES += libvirt.syms libvirt.def libvirt_qemu.def
1032

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

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

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

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

1079 1080 1081
# 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.
1082
noinst_LTLIBRARIES += libvirt_test.la
1083

1084
# Remove version script from convenience library
1085 1086
test_LDFLAGS =						\
  $$(echo '$(libvirt_la_LDFLAGS)'			\
1087
     |sed 's!$(VERSION_SCRIPT_FLAGS)$(LIBVIRT_SYMBOL_FILE)!!'	\
1088
     |sed 's!-version-info $(LIBVIRT_VERSION_INFO)!!')
1089 1090 1091 1092

# 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)
1093 1094
libvirt_test_la_LDFLAGS = $(test_LDFLAGS) $(AM_LDFLAGS)
libvirt_test_la_CFLAGS = $(AM_CFLAGS)
1095

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

1105 1106
libexec_PROGRAMS =

1107
if WITH_STORAGE_DISK
R
Richard W.M. Jones 已提交
1108
if WITH_LIBVIRTD
1109
libexec_PROGRAMS += libvirt_parthelper
1110

1111
libvirt_parthelper_SOURCES = $(STORAGE_HELPER_DISK_SOURCES)
1112
libvirt_parthelper_LDFLAGS = $(WARN_LDFLAGS) $(AM_LDFLAGS)
1113 1114 1115 1116 1117 1118
libvirt_parthelper_LDADD =		\
		$(LIBPARTED_LIBS)	\
		$(DEVMAPPER_LIBS)	\
		libvirt_util.la		\
		../gnulib/lib/libgnu.la

1119
libvirt_parthelper_CFLAGS = $(LIBPARTED_CFLAGS) $(AM_CFLAGS)
R
Richard W.M. Jones 已提交
1120
endif
1121
endif
1122 1123
EXTRA_DIST += $(STORAGE_HELPER_DISK_SOURCES)

1124

1125 1126 1127 1128 1129 1130
if WITH_LXC
if WITH_LIBVIRTD
libexec_PROGRAMS += libvirt_lxc

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

J
Jamie Strandboge 已提交
1153 1154 1155 1156 1157 1158
if WITH_SECDRIVER_APPARMOR
if WITH_LIBVIRTD
libexec_PROGRAMS += virt-aa-helper

virt_aa_helper_SOURCES = $(SECURITY_DRIVER_APPARMOR_HELPER_SOURCES)

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

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

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