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

3
## Copyright (C) 2005-2018 Red Hat, Inc.
E
Eric Blake 已提交
4 5 6 7 8 9 10 11 12 13 14 15 16 17
##
## This library is free software; you can redistribute it and/or
## modify it under the terms of the GNU Lesser General Public
## License as published by the Free Software Foundation; either
## version 2.1 of the License, or (at your option) any later version.
##
## This library is distributed in the hope that it will be useful,
## but WITHOUT ANY WARRANTY; without even the implied warranty of
## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
## Lesser General Public License for more details.
##
## You should have received a copy of the GNU Lesser General Public
## License along with this library.  If not, see
## <http://www.gnu.org/licenses/>.
18

19 20
# old automake does not provide abs_{src,build}dir variables
abs_builddir = $(shell pwd)
21
abs_topbuilddir = $(shell cd .. && pwd)
22
abs_srcdir = $(shell cd $(srcdir) && pwd)
M
Michal Privoznik 已提交
23
abs_topsrcdir = $(shell cd $(top_srcdir) && pwd)
24

25 26
# No libraries with the exception of LIBXML should be listed
# here. List them against the individual XXX_la_CFLAGS targets
27
# that actually use them. Also keep GETTEXT_CPPFLAGS at the end.
28 29 30 31 32 33 34 35 36 37
INCLUDES =	-I../gnulib/lib \
		-I$(top_srcdir)/gnulib/lib \
		-I$(top_srcdir) \
		-I../include \
		-I$(top_srcdir)/include \
		-I$(srcdir)/util \
		-I./util \
		-DIN_LIBVIRT \
		-Dabs_topbuilddir="\"$(abs_topbuilddir)\"" \
		-Dabs_topsrcdir="\"$(abs_topsrcdir)\"" \
38
		$(GETTEXT_CPPFLAGS)
E
Eric Blake 已提交
39

40 41
WARN_CFLAGS += $(STRICT_FRAME_LIMIT_CFLAGS)

42 43 44 45
AM_CFLAGS =	$(LIBXML_CFLAGS) \
		$(WARN_CFLAGS) \
		$(LOCK_CHECKING_CFLAGS) \
		$(WIN32_EXTRA_CFLAGS) \
E
Eric Blake 已提交
46
		$(COVERAGE_CFLAGS)
47 48 49 50 51 52
AM_LDFLAGS =	$(DRIVER_MODULES_LDFLAGS) \
		$(COVERAGE_LDFLAGS) \
		$(RELRO_LDFLAGS) \
		$(NO_INDIRECT_LDFLAGS) \
		$(CYGWIN_EXTRA_LDFLAGS) \
		$(MINGW_EXTRA_LDFLAGS) \
G
Guido Günther 已提交
53
		$(NULL)
54
AM_LDFLAGS_MOD = -module -avoid-version $(AM_LDFLAGS)
55
AM_LDFLAGS_MOD_NOUNDEF = $(AM_LDFLAGS_MOD) $(NO_UNDEFINED_LDFLAGS)
56

57 58
POD2MAN = pod2man -c "Virtualization Support" -r "$(PACKAGE)-$(VERSION)"

59
EXTRA_DIST = $(conf_DATA)
60

61
BUILT_SOURCES =
62 63 64
CLEANFILES =
DISTCLEANFILES =
MAINTAINERCLEANFILES =
65
nodist_conf_DATA =
66 67 68 69 70
DRIVER_SOURCE_FILES =
STATEFUL_DRIVER_SOURCE_FILES =
noinst_LTLIBRARIES =
mod_LTLIBRARIES =
INSTALL_DATA_DIRS =
71
libvirt_la_BUILT_LIBADD =
72 73 74
SYM_FILES =
USED_SYM_FILES =
GENERATED_SYM_FILES =
75 76 77 78 79 80 81
augeas_DATA =
augeastest_DATA =
conf_DATA =
AUGEAS_DIRS =
if WITH_DTRACE_PROBES
tapset_DATA =
endif WITH_DTRACE_PROBES
82 83
libexec_PROGRAMS =
RPC_PROBE_FILES =
84 85 86 87 88 89 90 91 92
LOGROTATE_FILES_IN =
PODFILES =
MANINFILES =
SYSTEMD_UNIT_FILES_IN =
SYSVINIT_FILES_IN =
UPSTART_FILES =
SYSCONF_FILES =
sbin_PROGRAMS =
man8_MANS =
93
DRIVER_SOURCES =
94

95
include conf/Makefile.inc.am
96
include cpu/Makefile.inc.am
97
include security/Makefile.inc.am
98
include access/Makefile.inc.am
99
include logging/Makefile.inc.am
100
include uml/Makefile.inc.am
101
include phyp/Makefile.inc.am
102
include test/Makefile.inc.am
103
include esx/Makefile.inc.am
104
include hyperv/Makefile.inc.am
105
include vmware/Makefile.inc.am
106
include vbox/Makefile.inc.am
107
include openvz/Makefile.inc.am
108
include qemu/Makefile.inc.am
109
include bhyve/Makefile.inc.am
110
include xenconfig/Makefile.inc.am
111
include libxl/Makefile.inc.am
112
include xen/Makefile.inc.am
113
include xenapi/Makefile.inc.am
114
include vz/Makefile.inc.am
115
include lxc/Makefile.inc.am
116
include interface/Makefile.inc.am
117
include network/Makefile.inc.am
118
include nwfilter/Makefile.inc.am
119
include node_device/Makefile.inc.am
120
include secret/Makefile.inc.am
121
include storage/Makefile.inc.am
122
include remote/Makefile.inc.am
123

124

E
Eric Blake 已提交
125 126
THREAD_LIBS = $(LIB_PTHREAD) $(LTLIBMULTITHREAD)

J
Jim Fehlig 已提交
127
SECDRIVER_CFLAGS =
128 129
SECDRIVER_LIBS =
if WITH_SECDRIVER_SELINUX
J
Jim Fehlig 已提交
130
SECDRIVER_CFLAGS += $(SELINUX_CFLAGS)
131
SECDRIVER_LIBS += $(SELINUX_LIBS)
132
endif WITH_SECDRIVER_SELINUX
133
if WITH_SECDRIVER_APPARMOR
J
Jim Fehlig 已提交
134
SECDRIVER_CFLAGS += $(APPARMOR_CFLAGS)
135
SECDRIVER_LIBS += $(APPARMOR_LIBS)
136
endif WITH_SECDRIVER_APPARMOR
137

138

139
lib_LTLIBRARIES = libvirt.la libvirt-qemu.la libvirt-lxc.la
140

141
moddir = $(libdir)/libvirt/connection-driver
142

A
Amy Griffis 已提交
143
confdir = $(sysconfdir)/libvirt
144
conf_DATA += libvirt.conf libvirt-admin.conf
145

146 147 148 149
augeasdir = $(datadir)/augeas/lenses

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

150 151
# These files are not related to driver APIs. Simply generic
# helper APIs for various purposes
152 153 154 155 156 157 158 159 160 161 162 163
UTIL_SOURCES = \
		util/viralloc.c util/viralloc.h \
		util/virarch.h util/virarch.c \
		util/viratomic.h util/viratomic.c \
		util/viraudit.c util/viraudit.h \
		util/virauth.c util/virauth.h \
		util/virauthconfig.c util/virauthconfig.h \
		util/virbitmap.c util/virbitmap.h \
		util/virbuffer.c util/virbuffer.h \
		util/virperf.c util/virperf.h \
		util/vircgroup.c util/vircgroup.h util/vircgrouppriv.h \
		util/virclosecallbacks.c util/virclosecallbacks.h \
164
		util/vircommand.c util/vircommand.h util/vircommandpriv.h \
165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184
		util/virconf.c util/virconf.h \
		util/vircrypto.c util/vircrypto.h \
		util/virdbus.c util/virdbus.h util/virdbuspriv.h \
		util/virdnsmasq.c util/virdnsmasq.h \
		util/virebtables.c util/virebtables.h \
		util/virendian.h \
		util/virerror.c util/virerror.h \
		util/virevent.c util/virevent.h \
		util/vireventpoll.c util/vireventpoll.h \
		util/virfcp.c util/virfcp.h \
		util/virfdstream.c util/virfdstream.h \
		util/virfile.c util/virfile.h \
		util/virfirewall.c util/virfirewall.h \
		util/virfirewallpriv.h \
		util/virfirmware.c util/virfirmware.h \
		util/virgettext.c util/virgettext.h \
		util/virgic.c util/virgic.h \
		util/virhash.c util/virhash.h \
		util/virhashcode.c util/virhashcode.h \
		util/virhook.c util/virhook.h \
185
		util/virhostcpu.c util/virhostcpu.h util/virhostcpupriv.h \
186 187 188 189 190 191 192 193 194 195 196 197 198 199 200
		util/virhostdev.c util/virhostdev.h \
		util/virhostmem.c util/virhostmem.h \
		util/viridentity.c util/viridentity.h \
		util/virinitctl.c util/virinitctl.h \
		util/viriptables.c util/viriptables.h \
		util/viriscsi.c util/viriscsi.h \
		util/virjson.c util/virjson.h \
		util/virkeycode.c util/virkeycode.h \
		util/virkeyfile.c util/virkeyfile.h \
		util/virlease.c util/virlease.h \
		util/virlockspace.c util/virlockspace.h \
		util/virlog.c util/virlog.h \
		util/virmacaddr.h util/virmacaddr.c \
		util/virmacmap.h util/virmacmap.c \
		util/virnetdev.h util/virnetdev.c \
201
		util/virnetdevbandwidth.h util/virnetdevbandwidth.c \
202 203 204
		util/virnetdevbridge.h util/virnetdevbridge.c \
		util/virnetdevip.h util/virnetdevip.c \
		util/virnetdevmacvlan.c util/virnetdevmacvlan.h \
205
		util/virnetdevmidonet.h util/virnetdevmidonet.c \
A
Ansis Atteka 已提交
206
		util/virnetdevopenvswitch.h util/virnetdevopenvswitch.c \
207 208 209
		util/virnetdevtap.h util/virnetdevtap.c \
		util/virnetdevveth.h util/virnetdevveth.c \
		util/virnetdevvlan.h util/virnetdevvlan.c \
210
		util/virnetdevvportprofile.h util/virnetdevvportprofile.c \
211 212 213 214 215 216 217 218
		util/virnetlink.c util/virnetlink.h \
		util/virnodesuspend.c util/virnodesuspend.h \
		util/virkmod.c util/virkmod.h \
		util/virnuma.c util/virnuma.h \
		util/virobject.c util/virobject.h \
		util/virpci.c util/virpci.h \
		util/virpidfile.c util/virpidfile.h \
		util/virpolkit.c util/virpolkit.h \
D
Daniel P. Berrange 已提交
219
		util/virportallocator.c util/virportallocator.h \
220 221 222 223
		util/virprobe.h \
		util/virprocess.c util/virprocess.h \
		util/virqemu.c util/virqemu.h \
		util/virrandom.h util/virrandom.c \
224
		util/virresctrl.h util/virresctrl.c util/virresctrlpriv.h \
225 226 227 228 229 230 231 232
		util/virrotatingfile.h util/virrotatingfile.c \
		util/virscsi.c util/virscsi.h \
		util/virscsihost.c util/virscsihost.h \
		util/virscsivhost.c util/virscsivhost.h \
		util/virseclabel.c util/virseclabel.h \
		util/virsecret.c util/virsecret.h \
		util/virsexpr.c util/virsexpr.h \
		util/virsocketaddr.h util/virsocketaddr.c \
233
		util/virstorageencryption.c util/virstorageencryption.h \
234
		util/virstoragefile.c util/virstoragefile.h \
235
		util/virstoragefilebackend.c util/virstoragefilebackend.h \
236 237
		util/virstring.h util/virstring.c \
		util/virsysinfo.c util/virsysinfo.h util/virsysinfopriv.h \
238
		util/virsystemd.c util/virsystemd.h util/virsystemdpriv.h \
239 240 241 242 243 244 245 246 247 248 249 250 251 252 253
		util/virthread.c util/virthread.h \
		util/virthreadjob.c util/virthreadjob.h \
		util/virthreadpool.c util/virthreadpool.h \
		util/virtime.h util/virtime.c \
		util/virtpm.h util/virtpm.c \
		util/virtypedparam.c util/virtypedparam.h \
		util/virusb.c util/virusb.h \
		util/viruri.h util/viruri.c \
		util/virutil.c util/virutil.h \
		util/viruuid.c util/viruuid.h \
		util/virvhba.c util/virvhba.h \
		util/virxdrdefs.h \
		util/virxml.c util/virxml.h \
		util/virmdev.c util/virmdev.h \
		util/virfilecache.c util/virfilecache.h \
254
		$(NULL)
L
Lai Jiangshan 已提交
255

256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280
EXTRA_DIST += \
	$(srcdir)/keycodemapdb/data/keymaps.csv \
	$(srcdir)/keycodemapdb/tools/keymap-gen \
	$(NULL)

util/virkeycodetable_%.h: $(srcdir)/keycodemapdb/data/keymaps.csv \
			$(srcdir)/keycodemapdb/tools/keymap-gen Makefile.am
	$(AM_V_GEN)export NAME=`echo $@ | sed -e 's,util/virkeycodetable_,,' \
					      -e 's,\.h,,'` && \
		$(MKDIR_P) util/ && \
		$(PYTHON) $(srcdir)/keycodemapdb/tools/keymap-gen \
			--lang stdc --varname virKeyCodeTable_$$NAME code-table \
			$(srcdir)/keycodemapdb/data/keymaps.csv $$NAME > $@-tmp && \
		mv $@-tmp $@ || rm -f $@-tmp

util/virkeynametable_%.h: $(srcdir)/keycodemapdb/data/keymaps.csv \
			$(srcdir)/keycodemapdb/tools/keymap-gen Makefile.am
	$(AM_V_GEN)export NAME=`echo $@ | sed -e 's,util/virkeynametable_,,' \
					      -e 's,\.h,,'` && \
		$(MKDIR_P) util/ && \
		$(PYTHON) $(srcdir)/keycodemapdb/tools/keymap-gen \
			--lang stdc --varname virKeyNameTable_$$NAME name-table \
			$(srcdir)/keycodemapdb/data/keymaps.csv $$NAME > $@-tmp && \
		mv $@-tmp $@ || rm -f $@-tmp

281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310
util/virkeycode-%.pod: $(srcdir)/keycodemapdb/data/keymaps.csv \
			$(srcdir)/keycodemapdb/tools/keymap-gen Makefile.am
	$(AM_V_GEN)export NAME=`echo $@ | sed -e 's,util/virkeycode-,,' \
					      -e 's,\.pod,,'` && \
		$(MKDIR_P) util/ && \
		$(PYTHON) $(srcdir)/keycodemapdb/tools/keymap-gen \
		--lang pod --varname "Key code values for $$NAME" code-docs \
		$(srcdir)/keycodemapdb/data/keymaps.csv $$NAME > \
			$@-tmp && mv $@-tmp $@ || rm $@-tmp

util/virkeyname-%.pod: $(srcdir)/keycodemapdb/data/keymaps.csv \
			$(srcdir)/keycodemapdb/tools/keymap-gen Makefile.am
	$(AM_V_GEN)export NAME=`echo $@ | sed -e 's,util/virkeyname-,,' \
					      -e 's,\.pod,,'` && \
		$(MKDIR_P) util/ && \
		$(PYTHON) $(srcdir)/keycodemapdb/tools/keymap-gen \
		--lang pod --varname "Key name values for $$NAME" name-docs \
		$(srcdir)/keycodemapdb/data/keymaps.csv $$NAME > \
			$@-tmp && mv $@-tmp $@ || rm $@-tmp

util/virkey%.7: util/virkey%.pod
	$(AM_V_GEN)$(POD2MAN) --section=7 $< $@-t1 && \
	if grep 'POD ERROR' $@-t1; then rm $@-t1; exit 1; fi && \
	sed \
		-e 's|SYSCONFDIR|\@sysconfdir\@|g' \
		-e 's|LOCALSTATEDIR|\@localstatedir\@|g' \
		< $@-t1 > $@-t2 && \
	rm -f $@-t1 && \
	mv $@-t2 $@

311
KEYCODES = linux osx atset1 atset2 atset3 xtkbd usb win32 rfb
312 313 314 315 316 317 318
KEYNAMES = linux osx win32

KEYTABLES = \
	$(KEYCODES:%=util/virkeycodetable_%.h) \
	$(KEYNAMES:%=util/virkeynametable_%.h) \
	$(NULL)

319 320 321 322 323 324
KEYPODS = $(KEYCODES:%=util/virkeycode-%.pod) \
	  $(KEYNAMES:%=util/virkeyname-%.pod)
KEYMANS = $(KEYPODS:%.pod=%.7)

man7_MANS = $(KEYMANS)

325 326 327
UTIL_SOURCES += $(KEYTABLES)
BUILT_SOURCES += $(KEYTABLES)
MAINTAINERCLEANFILES += $(KEYTABLES)
328
CLEANFILES += $(KEYMANS) $(KEYPODS)
L
Lai Jiangshan 已提交
329

330
# Internal generic driver infrastructure
O
Osier Yang 已提交
331
DATATYPES_SOURCES = datatypes.h datatypes.c
332
DRIVER_SOURCES += \
333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359
		driver.c driver.h \
		driver-hypervisor.h \
		driver-interface.h \
		driver-network.h \
		driver-nodedev.h \
		driver-nwfilter.h \
		driver-secret.h \
		driver-state.h \
		driver-storage.h \
		driver-stream.h \
		internal.h \
		$(DATATYPES_SOURCES) \
		libvirt.c libvirt_internal.h \
		libvirt-domain.c \
		libvirt-domain-snapshot.c \
		libvirt-host.c \
		libvirt-interface.c \
		libvirt-network.c \
		libvirt-nodedev.c \
		libvirt-nwfilter.c \
		libvirt-secret.c \
		libvirt-storage.c \
		libvirt-stream.c \
		locking/lock_manager.c locking/lock_manager.h \
		locking/lock_driver.h \
		locking/lock_driver_nop.h locking/lock_driver_nop.c \
		locking/domain_lock.h locking/domain_lock.c \
360
		$(NULL)
361

362 363 364
LOCK_DRIVER_SANLOCK_SOURCES = \
		locking/lock_driver_sanlock.c

365 366
LOCK_DRIVER_SANLOCK_HELPER_SOURCES = \
		locking/sanlock_helper.c
367

368
LOCK_PROTOCOL_GENERATED = \
E
Eric Blake 已提交
369 370
		locking/lock_protocol.h \
		locking/lock_protocol.c \
371 372
		$(NULL)

373 374 375
LOCK_PROTOCOL = $(srcdir)/locking/lock_protocol.x
EXTRA_DIST += $(LOCK_PROTOCOL) \
	$(LOCK_PROTOCOL_GENERATED)
376 377 378
BUILT_SOURCES += $(LOCK_PROTOCOL_GENERATED)
MAINTAINERCLEANFILES += $(LOCK_PROTOCOL_GENERATED)

379
LOCK_DAEMON_GENERATED = \
380
		locking/lock_daemon_dispatch_stubs.h
381 382 383
		$(NULL)

BUILT_SOURCES += $(LOCK_DAEMON_GENERATED)
384
EXTRA_DIST += $(LOCK_DAEMON_GENERATED)
385 386
MAINTAINERCLEANFILES += $(LOCK_DAEMON_GENERATED)

387 388
LOCK_DRIVER_LOCKD_SOURCES = \
		locking/lock_driver_lockd.c \
389
		locking/lock_driver_lockd.h \
390 391
		$(NULL)

392 393 394 395 396
LOCK_DAEMON_SOURCES = \
		locking/lock_daemon.h \
		locking/lock_daemon.c \
		locking/lock_daemon_config.h \
		locking/lock_daemon_config.c \
397 398
		locking/lock_daemon_dispatch.c \
		locking/lock_daemon_dispatch.h \
399 400
		$(NULL)

E
Eric Blake 已提交
401
locking/lock_daemon_dispatch_stubs.h: $(LOCK_PROTOCOL) \
402
		$(srcdir)/rpc/gendispatch.pl Makefile.am
403 404
	$(AM_V_GEN)perl -w $(srcdir)/rpc/gendispatch.pl --mode=server \
	    virLockSpaceProtocol VIR_LOCK_SPACE_PROTOCOL \
E
Eric Blake 已提交
405
	    $(LOCK_PROTOCOL) > $(srcdir)/locking/lock_daemon_dispatch_stubs.h
406 407


408

M
Martin Kletzander 已提交
409 410 411
ADMIN_PROTOCOL = $(srcdir)/admin/admin_protocol.x

ADMIN_PROTOCOL_GENERATED = \
412 413
		admin/admin_protocol.c \
		admin/admin_protocol.h \
414 415 416
		admin/admin_client.h \
		admin/admin_server_dispatch_stubs.h \
		$(NULL)
417 418 419 420 421 422

admin/admin_client.h: $(srcdir)/rpc/gendispatch.pl \
		$(ADMIN_PROTOCOL) Makefile.am
	$(AM_V_GEN)$(PERL) -w $(srcdir)/rpc/gendispatch.pl --mode=client \
	  admin ADMIN $(ADMIN_PROTOCOL) \
	  > $(srcdir)/admin/admin_client.h
M
Martin Kletzander 已提交
423

424 425 426 427 428 429
admin/admin_server_dispatch_stubs.h: $(srcdir)/rpc/gendispatch.pl \
		$(ADMIN_PROTOCOL) Makefile.am
	$(AM_V_GEN)$(PERL) -w $(srcdir)/rpc/gendispatch.pl --mode=server \
	  admin ADMIN $(ADMIN_PROTOCOL) \
	  > $(srcdir)/admin/admin_server_dispatch_stubs.h

M
Martin Kletzander 已提交
430 431 432 433
EXTRA_DIST += $(ADMIN_PROTOCOL) $(ADMIN_PROTOCOL_GENERATED)
BUILT_SOURCES += $(ADMIN_PROTOCOL_GENERATED)
MAINTAINERCLEANFILES += $(ADMIN_PROTOCOL_GENERATED)

434 435 436 437 438 439 440 441 442 443
# 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
444 445 446 447

# With pdwtags 1.8, --verbose output includes separators like these:
# /* 93 */
# /* <0> (null):0 */
448 449
# with the second line omitted for intrinsic types.
# Whereas with pdwtags 1.3, they look like this:
450
# /* <2d2> /usr/include/libio.h:180 */
451 452
# The alternation of the following regexps matches both cases.
r1 = /\* \d+ \*/
453
r2 = /\* <[[:xdigit:]]+> \S+:\d+ \*/
M
Martin Kletzander 已提交
454 455 456
libs_prefix = remote_|qemu_|lxc_|admin_
other_prefix = keepalive|vir(Net|LockSpace|LXCMonitor)
struct_prefix = ($(libs_prefix)|$(other_prefix))
457

458
# Depending on configure options, libtool creates one or both of
E
Eric Blake 已提交
459 460
# remote/{,.libs/}libvirt_driver_remote_la-remote_protocol.o.  We want
# the newest of the two, in case configure options changed and a stale
461
# file is left around from an earlier build.
462 463 464
# The pdwtags output is completely different when building with clang
# which causes the comparison against expected output to fail, so skip
# if using clang as CC.
465
PDWTAGS = \
A
Andrea Bolognani 已提交
466
	$(AM_V_GEN)if $(CC) -v 2>&1 | grep -q clang; then \
467 468 469 470
	   echo 'WARNING: skipping pdwtags test with Clang' >&2; \
	   exit 0; \
	fi; \
	if (pdwtags --help) > /dev/null 2>&1; then \
471 472 473 474 475 476 477
	  o=`ls -t $(<:.lo=.$(OBJEXT)) \
	     $(subst /,/.libs/,$(<:.lo=.$(OBJEXT))) \
	    2>/dev/null | sed -n 1p`; \
	  test -f "$$o" || { echo ".o for $< not found" >&2; exit 1; }; \
	  pdwtags --verbose $$o > $(@F)-t1 2> $(@F)-t2; \
	  if test ! -s $(@F)-t1 && test -s $(@F)-t2; then \
	    rm -rf $(@F)-t?; \
478
	    echo 'WARNING: pdwtags appears broken; skipping the $@ test' >&2;\
479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496
	  else \
	    $(PERL) -0777 -n \
		-e 'foreach my $$p (split m!\n*(?:$(r1)|$(r2))\n!) {' \
		-e '  if ($$p =~ /^(struct|enum) $(struct_prefix)/ ||' \
		-e '      $$p =~ /^enum \{/) {' \
		-e '    $$p =~ s!\t*/\*.*?\*/!!sg;' \
		-e '    $$p =~ s!\s+\n!\n!sg;' \
		-e '    $$p =~ s!\s+$$!!;' \
		-e '    $$p =~ s!\t!        !g;' \
		-e '    print "$$p\n";' \
		-e '    $$n++;' \
		-e '  }' \
		-e '}' \
		-e 'BEGIN {' \
		-e '  print "/* -*- c -*- */\n";' \
		-e '}' \
		-e 'END {' \
		-e '  if ($$n < 1) {' \
497
		-e '    warn "WARNING: your pdwtags program is too old\n";' \
498
		-e '    warn "WARNING: skipping the $@ test\n";' \
499
		-e '    warn "WARNING: install dwarves-1.3 or newer\n";' \
500 501 502 503
		-e '    exit 8;' \
		-e '  }' \
		-e '}' \
		< $(@F)-t1 > $(@F)-t3; \
504
	    case $$? in 8) rm -f $(@F)-t?; exit 0;; 0) ;; *) exit 1;; esac;\
505 506 507 508
	    diff -u $(@)s $(@F)-t3; st=$$?; rm -f $(@F)-t?; exit $$st; \
	  fi; \
	else \
	  echo 'WARNING: you lack pdwtags; skipping the $@ test' >&2; \
509
	  echo 'WARNING: install the dwarves package to get pdwtags' >&2; \
510
	fi
511

512
# .libs/libvirt.so is built by libtool as a side-effect of the Makefile
513 514
# rule for libvirt.la.  However, checking symbols relies on Linux ELF layout
if WITH_LINUX
515 516 517
check-symfile: libvirt.syms libvirt.la
	$(AM_V_GEN)$(PERL) $(srcdir)/check-symfile.pl libvirt.syms \
	  .libs/libvirt.so
518 519 520
check-admin-symfile: libvirt_admin.syms libvirt-admin.la
	$(AM_V_GEN)$(PERL) $(srcdir)/check-symfile.pl libvirt_admin.syms \
	  .libs/libvirt-admin.so
521
else ! WITH_LINUX
522
check-symfile:
523
check-admin-symfile:
524
endif ! WITH_LINUX
525
check-symsorting:
526
	$(AM_V_GEN)$(PERL) $(srcdir)/check-symsorting.pl \
527
		$(srcdir) $(SYM_FILES)
528 529 530
check-admin-symsorting:
	$(AM_V_GEN)$(PERL) $(srcdir)/check-symsorting.pl \
		$(srcdir) $(ADMIN_SYM_FILES)
J
Jiri Denemark 已提交
531
EXTRA_DIST += check-symfile.pl check-symsorting.pl
532

E
Eric Blake 已提交
533
# Keep this list synced with RPC_PROBE_FILES
534 535
PROTOCOL_STRUCTS = \
	$(srcdir)/remote_protocol-structs \
536
	$(srcdir)/lxc_protocol-structs \
537
	$(srcdir)/qemu_protocol-structs \
J
Jiri Denemark 已提交
538
	$(srcdir)/virnetprotocol-structs \
E
Eric Blake 已提交
539 540 541
	$(srcdir)/virkeepaliveprotocol-structs \
	$(srcdir)/lxc_monitor_protocol-structs \
	$(srcdir)/lock_protocol-structs \
M
Martin Kletzander 已提交
542
	$(srcdir)/admin_protocol-structs \
E
Eric Blake 已提交
543 544
	$(NULL)

545
if WITH_REMOTE
546 547
check-protocol: $(PROTOCOL_STRUCTS) $(PROTOCOL_STRUCTS:structs=struct)

548 549
# The .o file that pdwtags parses is created as a side effect of running
# libtool; but from make's perspective we depend on the .lo file.
550 551 552
$(srcdir)/remote_protocol-struct \
	$(srcdir)/qemu_protocol-struct \
	$(srcdir)/lxc_protocol-struct: \
E
Eric Blake 已提交
553
		$(srcdir)/%-struct: remote/libvirt_driver_remote_la-%.lo
554
	$(PDWTAGS)
555
$(srcdir)/virnetprotocol-struct $(srcdir)/virkeepaliveprotocol-struct: \
E
Eric Blake 已提交
556
		$(srcdir)/%-struct: rpc/libvirt_net_rpc_la-%.lo
557
	$(PDWTAGS)
E
Eric Blake 已提交
558
$(srcdir)/lxc_monitor_protocol-struct: \
E
Eric Blake 已提交
559
		$(srcdir)/%-struct: lxc/libvirt_driver_lxc_impl_la-%.lo
E
Eric Blake 已提交
560 561
	$(PDWTAGS)
$(srcdir)/lock_protocol-struct: \
E
Eric Blake 已提交
562
		$(srcdir)/%-struct: locking/lockd_la-%.lo
E
Eric Blake 已提交
563
	$(PDWTAGS)
M
Martin Kletzander 已提交
564 565 566
$(srcdir)/admin_protocol-struct: \
		$(srcdir)/%-struct: admin/libvirt_admin_la-%.lo
	$(PDWTAGS)
E
Eric Blake 已提交
567

568
else !WITH_REMOTE
569 570 571
# The $(PROTOCOL_STRUCTS) files must live in git, because they cannot be
# re-generated when configured --without-remote.
check-protocol:
572
endif !WITH_REMOTE
J
Jiri Denemark 已提交
573
EXTRA_DIST += $(PROTOCOL_STRUCTS)
574 575 576 577 578

check-drivername:
	$(AM_V_GEN)$(PERL) $(srcdir)/check-drivername.pl \
		$(srcdir)/driver.h \
		$(srcdir)/libvirt_public.syms \
579
		$(srcdir)/libvirt_admin_public.syms \
580 581 582 583 584
		$(srcdir)/libvirt_qemu.syms \
		$(srcdir)/libvirt_lxc.syms

EXTRA_DIST += check-drivername.pl

585 586
check-driverimpls:
	$(AM_V_GEN)$(PERL) $(srcdir)/check-driverimpls.pl \
587
		$(filter /%,$(DRIVER_SOURCE_FILES)) \
E
Eric Blake 已提交
588 589 590
		$(filter $(srcdir)/%,$(DRIVER_SOURCE_FILES)) \
		$(addprefix $(srcdir)/,$(filter-out $(srcdir)/%, \
			$(filter-out /%,$(DRIVER_SOURCE_FILES))))
591

592 593
check-aclrules:
	$(AM_V_GEN)$(PERL) $(srcdir)/check-aclrules.pl \
E
Eric Blake 已提交
594
		$(REMOTE_PROTOCOL) \
595
		$(addprefix $(srcdir)/,$(filter-out /%,$(STATEFUL_DRIVER_SOURCE_FILES)))
596

597 598 599 600 601
check-aclperms:
	$(AM_V_GEN)$(PERL) $(srcdir)/check-aclperms.pl \
		$(srcdir)/access/viraccessperm.h \
		$(srcdir)/access/viraccessperm.c

G
Guido Günther 已提交
602
EXTRA_DIST += check-driverimpls.pl check-aclrules.pl check-aclperms.pl
603

604
check-local: check-protocol check-symfile check-symsorting \
605
	check-drivername check-driverimpls check-aclrules \
606
	check-aclperms check-admin-symfile check-admin-symsorting
607
.PHONY: check-protocol $(PROTOCOL_STRUCTS:structs=struct)
608

609 610 611



612
UTIL_IO_HELPER_SOURCES = \
613 614
		util/iohelper.c

615 616


617
VMX_SOURCES = \
618 619
		vmx/vmx.c vmx/vmx.h

620

J
Jiri Denemark 已提交
621 622
pkgdata_DATA =	cpu/cpu_map.xml

E
Eric Blake 已提交
623
EXTRA_DIST +=	$(pkgdata_DATA)
624

625 626 627 628 629 630
#########################
#
# Build up list of libvirt.la source files based on configure conditions
#
# First deal with sources usable in non-daemon context

631
noinst_LTLIBRARIES += libvirt_util.la
632
libvirt_la_LIBADD = $(libvirt_la_BUILT_LIBADD)
633
libvirt_la_BUILT_LIBADD += libvirt_util.la
634
libvirt_util_la_SOURCES = \
635
		$(UTIL_SOURCES)
636
libvirt_util_la_CFLAGS = $(CAPNG_CFLAGS) $(YAJL_CFLAGS) $(LIBNL_CFLAGS) \
637
		$(AM_CFLAGS) $(AUDIT_CFLAGS) $(DEVMAPPER_CFLAGS) \
638
		$(DBUS_CFLAGS) $(LDEXP_LIBM) $(NUMACTL_CFLAGS) \
639
		$(POLKIT_CFLAGS) $(GNUTLS_CFLAGS) $(ACL_CFLAGS)
640
libvirt_util_la_LIBADD = $(CAPNG_LIBS) $(YAJL_LIBS) $(LIBNL_LIBS) \
641
		$(THREAD_LIBS) $(AUDIT_LIBS) $(DEVMAPPER_LIBS) \
642
		$(LIB_CLOCK_GETTIME) $(DBUS_LIBS) $(WIN32_EXTRA_LIBS) $(LIBXML_LIBS) \
M
Michal Privoznik 已提交
643
		$(SECDRIVER_LIBS) $(NUMACTL_LIBS) $(ACL_LIBS) \
644
		$(POLKIT_LIBS) $(GNUTLS_LIBS)
645

646

647 648 649 650
if WITH_VMX
noinst_LTLIBRARIES += libvirt_vmx.la
libvirt_la_BUILT_LIBADD += libvirt_vmx.la
libvirt_vmx_la_CFLAGS = \
651
		-I$(srcdir)/conf $(AM_CFLAGS)
652
libvirt_vmx_la_SOURCES = $(VMX_SOURCES)
653
endif WITH_VMX
654

655

656
noinst_LTLIBRARIES += libvirt_driver.la
657
libvirt_la_BUILT_LIBADD += libvirt_driver.la
658
libvirt_driver_la_SOURCES = $(DRIVER_SOURCES)
659

660
libvirt_driver_la_CFLAGS = \
661
		$(GNUTLS_CFLAGS) $(CURL_CFLAGS) $(XDR_CFLAGS) \
662
		-I$(srcdir)/conf $(AM_CFLAGS)
663
libvirt_driver_la_LIBADD = \
664
		$(GNUTLS_LIBS) $(CURL_LIBS) $(DLOPEN_LIBS)
665

666 667
# All .syms files should be placed in exactly one of these three lists,
# depending on whether they are stored in git and/or used in the build.
668 669 670
SYM_FILES += $(USED_SYM_FILES)
USED_SYM_FILES += $(srcdir)/libvirt_private.syms
GENERATED_SYM_FILES += \
671
	libvirt.syms libvirt.def libvirt_qemu.def libvirt_lxc.def \
672
	libvirt_admin.syms libvirt_admin.def \
673
	$(NULL)
674

C
Chris Lalancette 已提交
675

676

677
%protocol.c: %protocol.x %protocol.h $(srcdir)/rpc/genprotocol.pl
678
	$(AM_V_GEN)$(PERL) -w $(srcdir)/rpc/genprotocol.pl $(RPCGEN) -c \
679
	       $< $(srcdir)/$(subst $(srcdir)/,,$@)
680

681
%protocol.h: %protocol.x $(srcdir)/rpc/genprotocol.pl
682
	$(AM_V_GEN)$(PERL) -w $(srcdir)/rpc/genprotocol.pl $(RPCGEN) -h \
683
	       $< $(srcdir)/$(subst $(srcdir)/,,$@)
684

685

686

687

688

689

690

691 692
check-local: check-augeas

693 694 695 696
.PHONY: check-augeas \
	check-augeas-sanlock \
	check-augeas-lockd \
	$(NULL)
697

698
check-augeas: $(AUGEAS_DIRS:%=check-augeas-%) \
699
	check-augeas-sanlock \
700
	check-augeas-lockd check-augeas-virtlockd
701

702
AUG_GENTEST = $(PERL) $(top_srcdir)/build-aux/augeas-gentest.pl
703
EXTRA_DIST += $(top_srcdir)/build-aux/augeas-gentest.pl
704

705

706
if WITH_SANLOCK
707 708
test_libvirt_sanlock.aug: locking/test_libvirt_sanlock.aug.in \
		locking/qemu-sanlock.conf $(AUG_GENTEST)
E
Eric Blake 已提交
709
	$(AM_V_GEN)$(AUG_GENTEST) locking/qemu-sanlock.conf $< $@
710

711
check-augeas-sanlock: test_libvirt_sanlock.aug
712
	$(AM_V_GEN)if test -x '$(AUGPARSE)'; then \
713
	    '$(AUGPARSE)' -I $(srcdir)/locking test_libvirt_sanlock.aug; \
714
	fi
715
else ! WITH_SANLOCK
716
check-augeas-sanlock:
717
endif ! WITH_SANLOCK
718

719
if WITH_QEMU
720 721 722
test_libvirt_lockd.aug: locking/test_libvirt_lockd.aug.in \
		locking/qemu-lockd.conf $(AUG_GENTEST)
	$(AM_V_GEN)$(AUG_GENTEST) locking/qemu-lockd.conf $< $@
723 724 725
else ! WITH_QEMU
test_libvirt_lockd.aug:
endif ! WITH_QEMU
726

727 728
test_virtlockd.aug: locking/test_virtlockd.aug.in \
		locking/virtlockd.conf $(AUG_GENTEST)
729
	$(AM_V_GEN)$(AUG_GENTEST) $(srcdir)/locking/virtlockd.conf $< $@
730

731
if WITH_QEMU
732 733 734 735
check-augeas-lockd: test_libvirt_lockd.aug
	$(AM_V_GEN)if test -x '$(AUGPARSE)'; then \
	    '$(AUGPARSE)' -I $(srcdir)/locking test_libvirt_lockd.aug; \
	fi
736 737 738
else ! WITH_QEMU
check-augeas-lockd:
endif ! WITH_QEMU
739

740 741 742 743 744
check-augeas-virtlockd: test_virtlockd.aug
	$(AM_V_GEN)if test -x '$(AUGPARSE)'; then \
	    '$(AUGPARSE)' -I $(srcdir)/locking test_virtlockd.aug; \
	fi

745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763
#
# 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.
#

764
USED_SYM_FILES += $(srcdir)/libvirt_driver_modules.syms
765

766
if WITH_LINUX
767
USED_SYM_FILES += $(srcdir)/libvirt_linux.syms
768
else ! WITH_LINUX
769
SYM_FILES += $(srcdir)/libvirt_linux.syms
770
endif ! WITH_LINUX
771

772
if WITH_VMX
773
USED_SYM_FILES += $(srcdir)/libvirt_vmx.syms
774
else ! WITH_VMX
775
SYM_FILES += $(srcdir)/libvirt_vmx.syms
776
endif ! WITH_VMX
777

778
if WITH_SASL
779
USED_SYM_FILES += $(srcdir)/libvirt_sasl.syms
780
else ! WITH_SASL
781
SYM_FILES += $(srcdir)/libvirt_sasl.syms
782
endif ! WITH_SASL
E
Eric Blake 已提交
783

784 785
if WITH_GNUTLS
USED_SYM_FILES += $(srcdir)/libvirt_gnutls.syms
786
else ! WITH_GNUTLS
787
SYM_FILES += $(srcdir)/libvirt_gnutls.syms
788
endif ! WITH_GNUTLS
789

790
if WITH_SSH2
791
USED_SYM_FILES += $(srcdir)/libvirt_libssh2.syms
792
else ! WITH_SSH2
793
SYM_FILES += $(srcdir)/libvirt_libssh2.syms
794
endif ! WITH_SSH2
795

796
if WITH_ATOMIC_OPS_PTHREAD
797
USED_SYM_FILES += $(srcdir)/libvirt_atomic.syms
798
else ! WITH_ATOMIC_OPS_PTHREAD
799
SYM_FILES += $(srcdir)/libvirt_atomic.syms
800
endif ! WITH_ATOMIC_OPS_PTHREAD
801

802 803 804 805 806 807
if WITH_LIBSSH
USED_SYM_FILES += $(srcdir)/libvirt_libssh.syms
else ! WITH_LIBSSH
SYM_FILES += $(srcdir)/libvirt_libssh.syms
endif ! WITH_LIBSSH

808
EXTRA_DIST += \
809 810 811 812 813 814
	libvirt_public.syms \
	libvirt_lxc.syms \
	libvirt_qemu.syms \
	libvirt_admin_public.syms \
	$(SYM_FILES) \
	$(ADMIN_SYM_FILES) \
815
	$(NULL)
816

817
BUILT_SOURCES += $(GENERATED_SYM_FILES)
818

819 820
libvirt.syms: libvirt_public.syms $(USED_SYM_FILES) \
		$(ACCESS_DRIVER_SYM_FILES) \
821
		$(top_builddir)/config.status
822 823 824 825 826 827
	$(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 && \
828
	cat $(USED_SYM_FILES) $(ACCESS_DRIVER_SYM_FILES) >>$@-tmp && \
829 830
	printf '\n\nlocal:\n*;\n\n};' >>$@-tmp && \
	chmod a-w $@-tmp && \
831
	mv $@-tmp libvirt.syms
832

833
%.def: %.syms
834 835
	$(AM_V_GEN)rm -f -- $@-tmp $@ ; \
	printf 'EXPORTS\n' > $@-tmp && \
836
	sed -e '/^$$/d; /#/d; /:/d; /}/d; /\*/d; /LIBVIRT_/d' \
837
	    -e 's/[	 ]*\(.*\)\;/    \1/g' $^ >> $@-tmp && \
838
	chmod a-w $@-tmp && \
839
	mv $@-tmp $@
840

841 842 843 844 845 846 847 848 849 850 851 852 853
libvirt_admin.syms: libvirt_admin_public.syms $(ADMIN_SYM_FILES) \
		$(top_builddir)/config.status
	$(AM_V_GEN)rm -f $@-tmp $@ ; \
	printf '# WARNING: generated from the following:\n# $^\n\n' >$@-tmp && \
	cat $(srcdir)/libvirt_admin_public.syms >>$@-tmp && \
	printf '\n\n# Private symbols\n\n' >>$@-tmp && \
	printf 'LIBVIRT_ADMIN_PRIVATE_$(VERSION) {\n\n'  >>$@-tmp && \
	printf 'global:\n\n' >>$@-tmp && \
	cat $(ADMIN_SYM_FILES) >>$@-tmp && \
	printf '\n\nlocal:\n*;\n\n};' >>$@-tmp && \
	chmod a-w $@-tmp && \
	mv $@-tmp libvirt_admin.syms

854 855 856 857 858 859 860 861 862 863 864 865 866 867 868

admin/admin_server_dispatch.c: admin/admin_server_dispatch_stubs.h

noinst_LTLIBRARIES += libvirt_driver_admin.la
libvirt_driver_admin_la_SOURCES = \
		admin/admin_protocol.c \
		admin/admin_protocol.h \
		admin/admin_server.c \
		admin/admin_server.h \
		admin/admin_server_dispatch.c \
		admin/admin_server_dispatch.h \
		admin/admin_server_dispatch_stubs.h \
		$(NULL)
libvirt_driver_admin_la_CFLAGS = \
		$(AM_CFLAGS) \
869
		$(XDR_CFLAGS) \
870 871 872 873 874 875
		-I$(top_srcdir)/src/util \
		-I$(top_srcdir)/src/admin \
		$(NULL)
libvirt_driver_admin_la_LIBADD = ../gnulib/lib/libgnu.la
libvirt_driver_admin_la_LDFLAGS = -module -avoid-version $(AM_LDFLAGS)

876 877 878 879
# admin/admin_remote.c is being included in libvirt-admin.c, so we
# need to include it in the dist
EXTRA_DIST += admin/admin_remote.c

M
Martin Kletzander 已提交
880 881
lib_LTLIBRARIES += libvirt-admin.la
libvirt_admin_la_SOURCES = \
882 883
		libvirt-admin.c \
		$(ADMIN_PROTOCOL_GENERATED) \
M
Martin Kletzander 已提交
884 885 886
		$(DATATYPES_SOURCES)

libvirt_admin_la_LDFLAGS = \
887 888
		$(VERSION_SCRIPT_FLAGS)$(LIBVIRT_ADMIN_SYMBOL_FILE) \
		-version-info $(LIBVIRT_VERSION_INFO) \
889
		$(AM_LDFLAGS)
M
Martin Kletzander 已提交
890 891

libvirt_admin_la_LIBADD = \
892
		libvirt.la \
M
Martin Kletzander 已提交
893 894 895
		$(CYGWIN_EXTRA_LIBADD)

libvirt_admin_la_CFLAGS = \
896 897 898
		$(AM_CFLAGS) \
		-I$(srcdir)/remote \
		-I$(srcdir)/rpc \
M
Martin Kletzander 已提交
899 900 901
		-I$(srcdir)/admin

libvirt_admin_la_CFLAGS += \
902 903 904 905 906 907
		$(XDR_CFLAGS) \
		$(CAPNG_CFLAGS) \
		$(YAJL_CFLAGS) \
		$(SSH2_CFLAGS) \
		$(SASL_CFLAGS) \
		$(GNUTLS_CFLAGS) \
908
		$(LIBSSH_CFLAGS)
M
Martin Kletzander 已提交
909 910

libvirt_admin_la_LIBADD += \
911 912 913 914 915 916 917
		$(CAPNG_LIBS) \
		$(YAJL_LIBS) \
		$(DEVMAPPER_LIBS) \
		$(LIBXML_LIBS) \
		$(SSH2_LIBS) \
		$(SASL_LIBS) \
		$(GNUTLS_LIBS) \
918
		$(LIBSSH_LIBS)
M
Martin Kletzander 已提交
919

920 921
ADMIN_SYM_FILES = $(srcdir)/libvirt_admin_private.syms

M
Martin Kletzander 已提交
922 923 924 925
if WITH_DTRACE_PROBES
libvirt_admin_la_LIBADD += libvirt_probes.lo
endif WITH_DTRACE_PROBES

926 927
# Empty source list - it merely links a bunch of convenience libs together
libvirt_la_SOURCES =
D
Daniel P. Berrange 已提交
928 929 930 931
libvirt_la_LDFLAGS = \
		$(VERSION_SCRIPT_FLAGS)$(LIBVIRT_SYMBOL_FILE) \
		-version-info $(LIBVIRT_VERSION_INFO) \
		$(LIBVIRT_NODELETE) \
932
		$(NO_UNDEFINED_LDFLAGS) \
D
Daniel P. Berrange 已提交
933 934
		$(AM_LDFLAGS) \
		$(NULL)
935
libvirt_la_BUILT_LIBADD += ../gnulib/lib/libgnu.la
936
libvirt_la_LIBADD += \
937
		    $(DRIVER_MODULES_LIBS) \
938
		    $(CYGWIN_EXTRA_LIBADD)
939
libvirt_la_CFLAGS = -DIN_LIBVIRT $(AM_CFLAGS)
940 941 942 943 944 945
# 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)
946

947
if WITH_DTRACE_PROBES
948
libvirt_la_BUILT_LIBADD += libvirt_probes.lo
949
libvirt_la_DEPENDENCIES += libvirt_probes.lo libvirt_probes.o
950
nodist_libvirt_la_SOURCES = libvirt_probes.h
E
Eric Blake 已提交
951
if WITH_REMOTE
E
Eric Blake 已提交
952
nodist_libvirt_driver_remote_la_SOURCES = libvirt_probes.h
E
Eric Blake 已提交
953
endif WITH_REMOTE
954
DTRACE2SYSTEMTAP_FLAGS = --with-modules
955

956 957
BUILT_SOURCES += libvirt_probes.h libvirt_probes.stp libvirt_functions.stp

958 959

tapsetdir = $(datadir)/systemtap/tapset
960
tapset_DATA += libvirt_probes.stp libvirt_functions.stp
961

962
%_probes.h: %_probes.d
963 964
	$(AM_V_GEN)$(DTRACE) -o $@ -h -s $<

E
Eric Blake 已提交
965
.PRECIOUS: %_probes.o
966
%_probes.o: %_probes.d
967 968
	$(AM_V_GEN)$(DTRACE) -o $@ -G -s $<

969 970 971 972 973 974 975 976 977
%_probes.lo: %_probes.o
	$(AM_V_GEN)printf %s\\n \
	  '# $@ - a libtool object file' \
	  '# Generated by libtool (GNU libtool) 2.4' \
	  '# Actually generated by Makefile.am, in order to shut up libtool' \
	  "pic_object='$<'" \
	  "non_pic_object='$<'" \
	> $@

E
Eric Blake 已提交
978
# Keep this list synced with PROTOCOL_STRUCTS
979
RPC_PROBE_FILES += $(srcdir)/rpc/virnetprotocol.x \
J
Jiri Denemark 已提交
980 981
		  $(srcdir)/rpc/virkeepaliveprotocol.x \
		  $(srcdir)/remote/remote_protocol.x \
982
		  $(srcdir)/remote/lxc_protocol.x \
983
		  $(srcdir)/remote/qemu_protocol.x \
M
Martin Kletzander 已提交
984 985
		  $(srcdir)/locking/lock_protocol.x \
		  $(srcdir)/admin/admin_protocol.x
986 987

libvirt_functions.stp: $(RPC_PROBE_FILES) $(srcdir)/rpc/gensystemtap.pl
988
	$(AM_V_GEN)$(PERL) -w $(srcdir)/rpc/gensystemtap.pl $(RPC_PROBE_FILES) > $@
989

990 991
%_probes.stp: %_probes.d $(srcdir)/dtrace2systemtap.pl \
		$(top_builddir)/config.status
992
	$(AM_V_GEN)$(PERL) -w $(srcdir)/dtrace2systemtap.pl \
993
	  $(DTRACE2SYSTEMTAP_FLAGS) $(bindir) $(sbindir) $(libdir) $< > $@
994

995
CLEANFILES += libvirt_probes.h libvirt_probes.o libvirt_probes.lo \
996
              libvirt_functions.stp libvirt_probes.stp
997
endif WITH_DTRACE_PROBES
998

999
EXTRA_DIST += libvirt_probes.d
1000

C
Chris Lalancette 已提交
1001
libvirt_qemu_la_SOURCES = libvirt-qemu.c
D
Daniel P. Berrange 已提交
1002 1003 1004 1005 1006
libvirt_qemu_la_LDFLAGS = \
		$(VERSION_SCRIPT_FLAGS)$(LIBVIRT_QEMU_SYMBOL_FILE) \
		-version-info $(LIBVIRT_VERSION_INFO) \
		$(AM_LDFLAGS) \
		$(NULL)
1007
libvirt_qemu_la_CFLAGS = $(AM_CFLAGS)
C
Chris Lalancette 已提交
1008
libvirt_qemu_la_LIBADD = libvirt.la $(CYGWIN_EXTRA_LIBADD)
1009

1010
libvirt_lxc_la_SOURCES = libvirt-lxc.c
D
Daniel P. Berrange 已提交
1011 1012 1013 1014 1015
libvirt_lxc_la_LDFLAGS = \
		$(VERSION_SCRIPT_FLAGS)$(LIBVIRT_LXC_SYMBOL_FILE) \
		-version-info $(LIBVIRT_VERSION_INFO) \
		$(AM_LDFLAGS) \
		$(NULL)
1016 1017 1018
libvirt_lxc_la_CFLAGS = $(AM_CFLAGS)
libvirt_lxc_la_LIBADD = libvirt.la $(CYGWIN_EXTRA_LIBADD)

1019 1020 1021 1022 1023 1024 1025
# Since virt-login-shell will be setuid, we must do everything
# we can to avoid linking to other libraries. Many of them do
# unsafe things in functions marked __atttribute__((constructor)).
# This library is built to include the bare minimum required to
# have a RPC client for local UNIX socket access only. We use
# the ../config-post.h header to disable all external deps that
# we don't want
1026
if WITH_SETUID_RPC_CLIENT
1027 1028
noinst_LTLIBRARIES += libvirt-setuid-rpc-client.la

1029 1030
libvirt_setuid_rpc_client_la_SOURCES = \
		util/viralloc.c \
1031
		util/virarch.c \
1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096
		util/viratomic.c \
		util/viratomic.h \
		util/virbitmap.c \
		util/virbuffer.c \
		util/vircgroup.c \
		util/vircommand.c \
		util/virconf.c \
		util/virdbus.c \
		util/virerror.c \
		util/virevent.c \
		util/vireventpoll.c \
		util/virfile.c \
		util/virgettext.c \
		util/virhash.c \
		util/virhashcode.c \
		util/virhostcpu.c \
		util/virjson.c \
		util/virlog.c \
		util/virobject.c \
		util/virpidfile.c \
		util/virprocess.c \
		util/virrandom.c \
		util/virsocketaddr.c \
		util/virstring.c \
		util/virsystemd.c \
		util/virtime.c \
		util/virthread.c \
		util/virthreadjob.c \
		util/virtypedparam.c \
		util/viruri.c \
		util/virutil.c \
		util/viruuid.c \
		conf/domain_event.c \
		conf/network_event.c \
		conf/object_event.c \
		conf/storage_event.c \
		conf/node_device_event.c \
		conf/secret_event.c \
		rpc/virnetsocket.c \
		rpc/virnetsocket.h \
		rpc/virnetmessage.h \
		rpc/virnetmessage.c \
		rpc/virkeepalive.c \
		rpc/virkeepalive.h \
		rpc/virnetclient.c \
		rpc/virnetclientprogram.c \
		rpc/virnetclientstream.c \
		rpc/virnetprotocol.c \
		remote/remote_driver.c \
		remote/remote_protocol.c \
		remote/qemu_protocol.c \
		remote/lxc_protocol.c \
		datatypes.c \
		libvirt.c \
		libvirt-domain.c \
		libvirt-domain-snapshot.c \
		libvirt-host.c \
		libvirt-interface.c \
		libvirt-network.c \
		libvirt-nodedev.c \
		libvirt-nwfilter.c \
		libvirt-secret.c \
		libvirt-storage.c \
		libvirt-stream.c \
		libvirt-lxc.c \
1097 1098
		$(NULL)

1099 1100 1101 1102
libvirt_setuid_rpc_client_la_LDFLAGS = \
		$(AM_LDFLAGS) \
		$(LIBXML_LIBS) \
		$(SECDRIVER_LIBS) \
1103
		$(NULL)
1104 1105 1106 1107 1108 1109 1110
libvirt_setuid_rpc_client_la_CFLAGS = \
		-DLIBVIRT_SETUID_RPC_CLIENT \
		-I$(srcdir)/conf \
		-I$(srcdir)/rpc \
		$(AM_CFLAGS) \
		$(SECDRIVER_CFLAGS) \
		$(XDR_CFLAGS) \
1111
		$(NULL)
1112
endif WITH_SETUID_RPC_CLIENT
1113

1114 1115 1116
lockdriverdir = $(libdir)/libvirt/lock-driver
lockdriver_LTLIBRARIES =

1117
if WITH_LIBVIRTD
1118 1119 1120 1121 1122
lockdriver_LTLIBRARIES += lockd.la
lockd_la_SOURCES = \
		$(LOCK_DRIVER_LOCKD_SOURCES) \
		$(LOCK_PROTOCOL_GENERATED) \
		$(NULL)
1123
lockd_la_CFLAGS = -I$(srcdir)/conf \
E
Eric Blake 已提交
1124 1125
		$(XDR_CFLAGS) \
		$(AM_CFLAGS)
1126
lockd_la_LDFLAGS = $(AM_LDFLAGS_MOD_NOUNDEF)
1127
lockd_la_LIBADD = libvirt.la ../gnulib/lib/libgnu.la
J
Jiri Denemark 已提交
1128
augeas_DATA += locking/libvirt_lockd.aug
1129 1130
if WITH_DTRACE_PROBES
lockd_la_LIBADD += libvirt_probes.lo
1131
endif WITH_DTRACE_PROBES
1132
if WITH_QEMU
1133 1134
augeastest_DATA += test_libvirt_lockd.aug
CLEANFILES += test_libvirt_lockd.aug
1135
nodist_conf_DATA += locking/qemu-lockd.conf
1136 1137
BUILT_SOURCES += locking/qemu-lockd.conf
DISTCLEANFILES += locking/qemu-lockd.conf
1138
endif WITH_QEMU
1139

1140 1141 1142 1143 1144 1145
if WITH_LIBXL
nodist_conf_DATA += locking/libxl-lockd.conf
BUILT_SOURCES += locking/libxl-lockd.conf
DISTCLEANFILES += locking/libxl-lockd.conf
endif WITH_LIBXL

1146 1147 1148 1149 1150
locking/%-lockd.conf: $(srcdir)/locking/lockd.conf
	$(AM_V_GEN)$(MKDIR_P) locking ; \
	cp $< $@


1151
sbin_PROGRAMS += virtlockd
1152

1153 1154 1155
virtlockd_SOURCES = \
		$(LOCK_DAEMON_SOURCES) \
		$(LOCK_PROTOCOL_GENERATED) \
1156
		$(LOCK_DAEMON_GENERATED) \
1157
		$(NULL)
1158 1159
virtlockd_CFLAGS = \
		$(AM_CFLAGS) \
D
Daniel P. Berrange 已提交
1160
		$(PIE_CFLAGS) \
1161
		$(XDR_CFLAGS) \
1162 1163 1164
		$(NULL)
virtlockd_LDFLAGS = \
		$(AM_LDFLAGS) \
D
Daniel P. Berrange 已提交
1165
		$(PIE_LDFLAGS) \
1166
		$(NO_UNDEFINED_LDFLAGS) \
1167 1168
		$(NULL)
virtlockd_LDADD = \
1169
		libvirt_driver_admin.la \
1170 1171 1172 1173 1174 1175 1176 1177
		libvirt-net-rpc-server.la \
		libvirt-net-rpc.la \
		libvirt_util.la \
		../gnulib/lib/libgnu.la \
		$(CYGWIN_EXTRA_LIBADD) \
		$(NULL)
if WITH_DTRACE_PROBES
virtlockd_LDADD += libvirt_probes.lo
1178
endif WITH_DTRACE_PROBES
1179

1180 1181


1182
else ! WITH_LIBVIRTD
1183
EXTRA_DIST += $(LOCK_DAEMON_SOURCES) \
1184
              $(LOCK_DRIVER_LOCKD_SOURCES)
1185
endif ! WITH_LIBVIRTD
1186

1187
SYSCONF_FILES += \
1188
	locking/virtlockd.sysconf \
1189 1190 1191
	$(NULL)

EXTRA_DIST += \
J
Jiri Denemark 已提交
1192 1193
	locking/lockd.conf \
	locking/libvirt_lockd.aug \
1194
	locking/test_libvirt_lockd.aug.in \
1195 1196
	$(SYSCONF_FILES) \
	$(NULL)
1197 1198

install-sysconfig:
E
Eric Blake 已提交
1199
	$(MKDIR_P) $(DESTDIR)$(sysconfdir)/sysconfig
1200 1201 1202
	for f in $(SYSCONF_FILES:%.sysconf=%) ; \
	do \
	  tgt=`basename $$f`; \
1203 1204
	  $(INSTALL_SCRIPT) $(srcdir)/$$f.sysconf \
	      $(DESTDIR)$(sysconfdir)/sysconfig/$$tgt; \
1205
	done
1206 1207

uninstall-sysconfig:
1208 1209 1210 1211 1212
	for f in $(SYSCONF_FILES:%.sysconf=%) ; \
	do \
	  tgt=`basename $$f`; \
	  rm -f $(DESTDIR)$(sysconfdir)/sysconfig/$$tgt; \
	done
E
Eric Blake 已提交
1213
	rmdir $(DESTDIR)$(sysconfdir)/sysconfig || :
1214

1215
SYSVINIT_FILES_IN += \
1216 1217 1218 1219 1220 1221
	locking/virtlockd.init.in \
	$(NULL)

SYSVINIT_FILES = $(notdir $(SYSVINIT_FILES_IN:%.in=%))

EXTRA_DIST += $(SYSVINIT_FILES_IN)
1222

1223
LOGROTATE_FILES := $(LOGROTATE_FILES_IN:remote/%.in=%)
1224 1225 1226 1227

EXTRA_DIST += $(LOGROTATE_FILES_IN)

BUILT_SOURCES += $(LOGROTATE_FILES)
1228
CLEANFILES += $(LOGROTATE_FILES)
1229 1230 1231 1232 1233 1234 1235

%.logrotate: remote/%.logrotate.in
	$(AM_V_GEN)sed \
	    -e 's|[@]localstatedir[@]|$(localstatedir)|g' \
	    < $< > $@-t && \
	mv $@-t $@

1236
if WITH_LIBVIRTD
1237 1238 1239 1240 1241 1242 1243 1244 1245 1246 1247 1248
install-logrotate: $(LOGROTATE_FILES)
	$(MKDIR_P) $(DESTDIR)$(sysconfdir)/logrotate.d/
	for f in $(LOGROTATE_FILES) ; \
	do \
	  tgt=`echo $$f | sed -e 's/.logrotate//'`; \
	  $(INSTALL_DATA) $$f \
		$(DESTDIR)$(sysconfdir)/logrotate.d/$$tgt; \
	done

uninstall-logrotate:
	rm -f $(LOGROTATE_FILES:%.logrotate=$(DESTDIR)$(sysconfdir)/logrotate.d/%)
	rmdir $(DESTDIR)$(sysconfdir)/logrotate.d || :
1249 1250 1251 1252
else ! WITH_LIBVIRTD
install-logrotate:
uninstall-logrotate:
endif ! WITH_LIBVIRTD
1253

1254
if LIBVIRT_INIT_SCRIPT_RED_HAT
1255
install-init:: $(SYSVINIT_FILES) install-sysconfig
E
Eric Blake 已提交
1256
	$(MKDIR_P) $(DESTDIR)$(sysconfdir)/rc.d/init.d
1257 1258 1259 1260
	for f in $(SYSVINIT_FILES:%.init=%) ; \
	do \
	  $(INSTALL_SCRIPT) $$f.init $(DESTDIR)$(sysconfdir)/rc.d/init.d/$$f; \
	done
1261 1262

uninstall-init:: uninstall-sysconfig
1263
	rm -f $(SYSVINIT_FILES:%.init=$(DESTDIR)$(sysconfdir)/rc.d/init.d/%)
E
Eric Blake 已提交
1264
	rmdir $(DESTDIR)$(sysconfdir)/rc.d/init.d || :
1265

1266 1267
BUILT_SOURCES += $(SYSVINIT_FILES)
DISTCLEANFILES += $(SYSVINIT_FILES)
1268
else ! LIBVIRT_INIT_SCRIPT_RED_HAT
1269 1270
install-init::
uninstall-init::
1271
endif ! LIBVIRT_INIT_SCRIPT_RED_HAT
1272

1273

1274
virtlockd.init: locking/virtlockd.init.in $(top_builddir)/config.status
1275 1276 1277 1278 1279 1280
	$(AM_V_GEN)sed \
	    -e 's|[@]localstatedir[@]|$(localstatedir)|g' \
	    -e 's|[@]sbindir[@]|$(sbindir)|g' \
	    -e 's|[@]sysconfdir[@]|$(sysconfdir)|g' \
	    < $< > $@-t && \
	    chmod a+x $@-t && \
1281 1282
	    mv $@-t $@

1283
virtlockd.8.in: locking/virtlockd.pod
1284 1285 1286 1287 1288 1289 1290 1291
	$(AM_V_GEN)$(POD2MAN) --section=8 $< $@-t1 && \
	if grep 'POD ERROR' $@-t1; then rm $@-t1; exit 1; fi && \
	sed \
		-e 's|SYSCONFDIR|\@sysconfdir\@|g' \
		-e 's|LOCALSTATEDIR|\@localstatedir\@|g' \
		< $@-t1 > $@-t2 && \
	rm -f $@-t1 && \
	mv $@-t2 $@
1292

1293

1294
%.8: %.8.in $(top_srcdir)/configure.ac
1295
	$(AM_V_GEN)sed \
1296 1297 1298
		-e 's|[@]sysconfdir[@]|$(sysconfdir)|g' \
		-e 's|[@]localstatedir[@]|$(localstatedir)|g' \
		< $< > $@-t && \
1299 1300
	mv $@-t $@

1301
if WITH_LIBVIRTD
1302
man8_MANS += virtlockd.8
1303

1304
conf_DATA += locking/virtlockd.conf
1305

1306 1307
augeas_DATA += locking/virtlockd.aug
augeastest_DATA += test_virtlockd.aug
1308
endif WITH_LIBVIRTD
1309

1310
PODFILES += \
A
Andrea Bolognani 已提交
1311 1312 1313
	locking/virtlockd.pod \
	$(NULL)

1314
MANINFILES += \
A
Andrea Bolognani 已提交
1315 1316 1317
	virtlockd.8.in \
	$(NULL)

1318
CLEANFILES += test_virtlockd.aug $(man8_MANS)
A
Andrea Bolognani 已提交
1319
MAINTAINERCLEANFILES += $(MANINFILES)
1320

1321
SYSTEMD_UNIT_FILES_IN += \
1322 1323 1324 1325 1326
	locking/virtlockd.service.in \
	locking/virtlockd.socket.in \
	locking/virtlockd-admin.socket.in \
	$(NULL)

1327
EXTRA_DIST += \
1328
        $(SYSTEMD_UNIT_FILES_IN) \
1329 1330 1331
        locking/virtlockd.aug \
        locking/virtlockd.conf \
        locking/test_virtlockd.aug.in \
A
Andrea Bolognani 已提交
1332 1333
        $(PODFILES) \
        $(MANINFILES) \
1334
        $(NULL)
1335

1336 1337 1338 1339

if WITH_LIBVIRTD
if LIBVIRT_INIT_SCRIPT_SYSTEMD

1340
SYSTEMD_UNIT_DIR = $(prefix)/lib/systemd/system
1341
SYSTEMD_UNIT_FILES = $(notdir $(SYSTEMD_UNIT_FILES_IN:%.in=%))
1342

1343 1344
BUILT_SOURCES += $(SYSTEMD_UNIT_FILES)
DISTCLEANFILES += $(SYSTEMD_UNIT_FILES)
1345

1346
install-systemd: $(SYSTEMD_UNIT_FILES) install-sysconfig
E
Eric Blake 已提交
1347
	$(MKDIR_P) $(DESTDIR)$(SYSTEMD_UNIT_DIR)
1348 1349 1350 1351
	for f in $(SYSTEMD_UNIT_FILES); \
	do \
	  $(INSTALL_DATA) $$f $(DESTDIR)$(SYSTEMD_UNIT_DIR)/ ; \
	done
1352 1353

uninstall-systemd: uninstall-sysconfig
1354
	rm -f $(SYSTEMD_UNIT_FILES:%=$(DESTDIR)$(SYSTEMD_UNIT_DIR)/%)
E
Eric Blake 已提交
1355
	rmdir $(DESTDIR)$(SYSTEMD_UNIT_DIR) || :
1356
else ! LIBVIRT_INIT_SCRIPT_SYSTEMD
1357 1358
install-systemd:
uninstall-systemd:
1359 1360
endif ! LIBVIRT_INIT_SCRIPT_SYSTEMD
else ! WITH_LIBVIRTD
1361 1362
install-systemd:
uninstall-systemd:
1363
endif ! WITH_LIBVIRTD
1364 1365

virtlockd.service: locking/virtlockd.service.in $(top_builddir)/config.status
1366 1367 1368
	$(AM_V_GEN)sed \
	    -e 's|[@]sbindir[@]|$(sbindir)|g' \
	    < $< > $@-t && \
1369 1370 1371
	    mv $@-t $@

virtlockd.socket: locking/virtlockd.socket.in $(top_builddir)/config.status
1372 1373 1374
	$(AM_V_GEN)sed \
	    -e 's|[@]localstatedir[@]|$(localstatedir)|g' \
	    < $< > $@-t && \
1375 1376
	    mv $@-t $@

J
John Ferlan 已提交
1377 1378 1379 1380 1381 1382 1383
virtlockd-admin.socket: locking/virtlockd-admin.socket.in \
                        $(top_builddir)/config.status
	$(AM_V_GEN)sed \
	    -e 's|[@]localstatedir[@]|$(localstatedir)|g' \
	    < $< > $@-t && \
	    mv $@-t $@

1384

1385

1386 1387 1388 1389 1390 1391 1392 1393 1394 1395
EXTRA_DIST += $(UPSTART_FILES)

if WITH_LIBVIRTD
if LIBVIRT_INIT_SCRIPT_UPSTART

install-upstart: install-sysconfig
	$(MKDIR_P) $(DESTDIR)$(sysconfdir)/event.d
	for f in $(UPSTART_FILES:%.upstart=%); \
	do \
	  tgt=`basename $$f` ; \
1396 1397
	  $(INSTALL_SCRIPT) $(srcdir)/$$f.upstart \
	      $(DESTDIR)$(sysconfdir)/event.d/$$tgt ; \
1398 1399 1400 1401 1402 1403 1404 1405 1406 1407 1408 1409 1410 1411 1412 1413 1414 1415
	done

uninstall-upstart: uninstall-sysconfig
	for f in $(UPSTART_FILES:%.upstart=%); \
	do \
	  tgt=`basename $$f` ; \
	  rm -f $(DESTDIR)$(sysconfdir)/event.d/$$tgt ; \
	done
	rmdir $(DESTDIR)$(sysconfdir)/event.d || :
else ! LIBVIRT_INIT_SCRIPT_UPSTART
install-upstart:
uninstall-upstart:
endif ! LIBVIRT_INIT_SCRIPT_UPSTART
else ! WITH_LIBVIRTD
install-upstart:
uninstall-upstart:
endif ! WITH_LIBVIRTD

1416
if WITH_SANLOCK
1417
lockdriver_LTLIBRARIES += sanlock.la
1418
sanlock_la_SOURCES = $(LOCK_DRIVER_SANLOCK_SOURCES)
1419
sanlock_la_CFLAGS = -I$(srcdir)/conf $(AM_CFLAGS)
1420
sanlock_la_LDFLAGS = $(AM_LDFLAGS_MOD_NOUNDEF)
1421
sanlock_la_LIBADD = -lsanlock_client libvirt.la ../gnulib/lib/libgnu.la
1422 1423

augeas_DATA += locking/libvirt_sanlock.aug
1424 1425
augeastest_DATA += test_libvirt_sanlock.aug
CLEANFILES += test_libvirt_sanlock.aug
1426

E
Eric Blake 已提交
1427
locking/%-sanlock.conf: $(srcdir)/locking/sanlock.conf
1428
	$(AM_V_GEN)$(MKDIR_P) locking ; \
1429 1430 1431
	cp $< $@

if WITH_QEMU
1432
nodist_conf_DATA += locking/qemu-sanlock.conf
1433
BUILT_SOURCES += locking/qemu-sanlock.conf
E
Eric Blake 已提交
1434
DISTCLEANFILES += locking/qemu-sanlock.conf
1435
endif WITH_QEMU
1436 1437 1438 1439 1440 1441

if WITH_LIBXL
nodist_conf_DATA += locking/libxl-sanlock.conf
BUILT_SOURCES += locking/libxl-sanlock.conf
DISTCLEANFILES += locking/libxl-sanlock.conf
endif WITH_LIBXL
1442
else ! WITH_SANLOCK
1443
EXTRA_DIST += $(LOCK_DRIVER_SANLOCK_SOURCES)
1444
endif ! WITH_SANLOCK
1445 1446
EXTRA_DIST += locking/sanlock.conf \
	locking/libvirt_sanlock.aug \
1447
	locking/test_libvirt_sanlock.aug.in
1448

1449 1450 1451 1452
noinst_LTLIBRARIES += \
	libvirt-net-rpc.la \
	libvirt-net-rpc-server.la \
	libvirt-net-rpc-client.la
1453

1454 1455 1456 1457 1458
libvirt_la_BUILT_LIBADD += \
       libvirt-net-rpc.la \
       libvirt-net-rpc-server.la \
       libvirt-net-rpc-client.la

1459
EXTRA_DIST += \
E
Eric Blake 已提交
1460 1461 1462 1463
	dtrace2systemtap.pl \
	rpc/gendispatch.pl \
	rpc/genprotocol.pl \
	rpc/gensystemtap.pl \
J
Jiri Denemark 已提交
1464 1465
	rpc/virnetprotocol.x \
	rpc/virkeepaliveprotocol.x
1466

E
Eric Blake 已提交
1467
VIR_NET_RPC_GENERATED = \
1468 1469 1470 1471
	rpc/virnetprotocol.h \
	rpc/virnetprotocol.c \
	rpc/virkeepaliveprotocol.h \
	rpc/virkeepaliveprotocol.c
1472

1473
BUILT_SOURCES += $(VIR_NET_RPC_GENERATED)
1474

1475
libvirt_net_rpc_la_SOURCES = \
1476
	rpc/virnetmessage.h rpc/virnetmessage.c \
1477
	rpc/virnetsocket.h rpc/virnetsocket.c \
1478 1479
	rpc/virkeepalive.h rpc/virkeepalive.c \
	$(VIR_NET_RPC_GENERATED)
1480
if WITH_SSH2
1481 1482
libvirt_net_rpc_la_SOURCES += \
	rpc/virnetsshsession.h rpc/virnetsshsession.c
1483
else ! WITH_SSH2
1484 1485
EXTRA_DIST += \
	rpc/virnetsshsession.h rpc/virnetsshsession.c
1486
endif ! WITH_SSH2
1487
if WITH_GNUTLS
1488 1489
libvirt_net_rpc_la_SOURCES += \
	rpc/virnettlscontext.h rpc/virnettlscontext.c
1490
else ! WITH_GNUTLS
1491 1492
EXTRA_DIST += \
	rpc/virnettlscontext.h rpc/virnettlscontext.c
1493
endif ! WITH_GNUTLS
1494
if WITH_SASL
1495 1496
libvirt_net_rpc_la_SOURCES += \
	rpc/virnetsaslcontext.h rpc/virnetsaslcontext.c
1497
else ! WITH_SASL
1498 1499
EXTRA_DIST += \
	rpc/virnetsaslcontext.h rpc/virnetsaslcontext.c
1500
endif ! WITH_SASL
1501 1502 1503 1504 1505 1506 1507
if WITH_LIBSSH
libvirt_net_rpc_la_SOURCES += \
	rpc/virnetlibsshsession.h rpc/virnetlibsshsession.c
else ! WITH_LIBSSH
EXTRA_DIST += \
	rpc/virnetlibsshsession.h rpc/virnetlibsshsession.c
endif ! WITH_LIBSSH
1508
libvirt_net_rpc_la_CFLAGS = \
1509
			$(GNUTLS_CFLAGS) \
1510
			$(SASL_CFLAGS) \
1511
			$(SSH2_CFLAGS) \
1512
			$(LIBSSH_CFLAGS) \
1513
			$(XDR_CFLAGS) \
1514 1515
			$(AM_CFLAGS)
libvirt_net_rpc_la_LDFLAGS = \
1516
			$(GNUTLS_LIBS) \
1517
			$(SASL_LIBS) \
1518
			$(SSH2_LIBS)\
1519
			$(LIBSSH_LIBS) \
J
Jim Fehlig 已提交
1520
			$(SECDRIVER_LIBS) \
1521
			$(AM_LDFLAGS) \
1522
			$(NULL)
1523 1524 1525
libvirt_net_rpc_la_LIBADD = \
			$(CYGWIN_EXTRA_LIBADD)

1526 1527 1528 1529
libvirt_net_rpc_server_la_SOURCES = \
	rpc/virnetserverprogram.h rpc/virnetserverprogram.c \
	rpc/virnetserverservice.h rpc/virnetserverservice.c \
	rpc/virnetserverclient.h rpc/virnetserverclient.c \
1530
	rpc/virnetservermdns.h rpc/virnetservermdns.c \
1531
	rpc/virnetdaemon.h rpc/virnetdaemon.c \
1532 1533
	rpc/virnetserver.h rpc/virnetserver.c
libvirt_net_rpc_server_la_CFLAGS = \
1534
			$(AVAHI_CFLAGS) \
1535
			$(DBUS_CFLAGS) \
E
Eric Blake 已提交
1536
			$(XDR_CFLAGS) \
1537
			$(AM_CFLAGS)
1538 1539
libvirt_net_rpc_server_la_LDFLAGS = \
			$(AM_LDFLAGS) \
1540
			$(AVAHI_LIBS) \
1541
			$(DBUS_LIBS) \
1542
			$(NULL)
1543 1544 1545
libvirt_net_rpc_server_la_LIBADD = \
			$(CYGWIN_EXTRA_LIBADD)

1546 1547 1548 1549 1550
libvirt_net_rpc_client_la_SOURCES = \
	rpc/virnetclientprogram.h rpc/virnetclientprogram.c \
	rpc/virnetclientstream.h rpc/virnetclientstream.c \
	rpc/virnetclient.h rpc/virnetclient.c
libvirt_net_rpc_client_la_CFLAGS = \
E
Eric Blake 已提交
1551 1552
			$(AM_CFLAGS) \
			$(XDR_CFLAGS)
1553
libvirt_net_rpc_client_la_LDFLAGS = $(AM_LDFLAGS)
1554 1555
libvirt_net_rpc_client_la_LIBADD = \
			$(CYGWIN_EXTRA_LIBADD)
1556

1557
if WITH_LIBVIRTD
1558 1559
libexec_PROGRAMS += libvirt_iohelper
libvirt_iohelper_SOURCES = $(UTIL_IO_HELPER_SOURCES)
D
Daniel P. Berrange 已提交
1560 1561 1562 1563
libvirt_iohelper_LDFLAGS = \
		$(AM_LDFLAGS) \
		$(PIE_LDFLAGS) \
		$(NULL)
1564 1565
libvirt_iohelper_LDADD = \
		libvirt_util.la \
1566
		../gnulib/lib/libgnu.la
1567 1568
if WITH_DTRACE_PROBES
libvirt_iohelper_LDADD += libvirt_probes.lo
1569
endif WITH_DTRACE_PROBES
1570

D
Daniel P. Berrange 已提交
1571 1572 1573 1574
libvirt_iohelper_CFLAGS = \
		$(AM_CFLAGS) \
		$(PIE_CFLAGS) \
		$(NULL)
1575 1576


1577
endif WITH_LIBVIRTD
1578

1579

1580
if WITH_SANLOCK
1581 1582 1583
libexec_PROGRAMS += libvirt_sanlock_helper

libvirt_sanlock_helper_SOURCES = $(LOCK_DRIVER_SANLOCK_HELPER_SOURCES)
D
Daniel P. Berrange 已提交
1584
libvirt_sanlock_helper_CFLAGS = \
1585
		-I$(srcdir)/conf \
D
Daniel P. Berrange 已提交
1586 1587 1588 1589 1590 1591 1592
		$(AM_CFLAGS) \
		$(PIE_CFLAGS) \
		$(NULL)
libvirt_sanlock_helper_LDFLAGS = \
		$(AM_LDFLAGS) \
		$(PIE_LDFLAGS) \
		$(NULL)
1593
libvirt_sanlock_helper_LDADD = libvirt.la
1594
endif WITH_SANLOCK
1595

1596

J
Jamie Strandboge 已提交
1597

1598
if WITH_NSS
1599 1600
noinst_LTLIBRARIES += libvirt-nss.la

1601 1602 1603 1604 1605 1606 1607 1608 1609 1610 1611 1612 1613 1614 1615 1616 1617 1618 1619 1620 1621 1622 1623 1624 1625 1626 1627 1628 1629 1630 1631 1632 1633 1634 1635 1636 1637 1638 1639 1640 1641 1642 1643 1644 1645 1646 1647 1648 1649
libvirt_nss_la_SOURCES = \
		util/viralloc.c \
		util/viralloc.h \
		util/viratomic.c \
		util/viratomic.h \
		util/virbitmap.c \
		util/virbitmap.h \
		util/virbuffer.c \
		util/virbuffer.h \
		util/vircommand.c \
		util/vircommand.h \
		util/virerror.c \
		util/virerror.h \
		util/virfile.c \
		util/virfile.h \
		util/virhash.c \
		util/virhash.h \
		util/virhashcode.c \
		util/virhashcode.h \
		util/virjson.c \
		util/virjson.h \
		util/virkmod.c \
		util/virkmod.h \
		util/virlease.c \
		util/virlease.h \
		util/virlog.c \
		util/virlog.h \
		util/virmacmap.c \
		util/virmacmap.h \
		util/virobject.c \
		util/virobject.h \
		util/virpidfile.c \
		util/virpidfile.h \
		util/virprocess.c \
		util/virprocess.h \
		util/virrandom.c \
		util/virrandom.h \
		util/virsocketaddr.c \
		util/virsocketaddr.h \
		util/virstring.c \
		util/virstring.h \
		util/virthread.c \
		util/virthread.h \
		util/virthreadjob.c \
		util/virthreadjob.h \
		util/virtime.c \
		util/virtime.h \
		util/virutil.c \
		util/virutil.h \
1650 1651
		$(NULL)

1652 1653 1654 1655
libvirt_nss_la_CFLAGS = \
		-DLIBVIRT_NSS \
		$(AM_CFLAGS) \
		$(YAJL_CFLAGS) \
1656
		$(NULL)
1657 1658
libvirt_nss_la_LDFLAGS = \
		$(AM_LDFLAGS) \
1659 1660
		$(NULL)

1661 1662
libvirt_nss_la_LIBADD = \
		$(YAJL_LIBS) \
1663
		$(NULL)
1664
endif WITH_NSS
1665 1666


1667
install-data-local: install-init install-systemd install-upstart \
1668
		install-sysctl install-polkit install-sasl \
1669
		install-logrotate $(INSTALL_DATA_DIRS:%=install-data-%)
1670 1671
if WITH_LIBVIRTD
	$(MKDIR_P) "$(DESTDIR)$(localstatedir)/lib/libvirt/lockd"
1672
	$(MKDIR_P) "$(DESTDIR)$(localstatedir)/lib/libvirt/lockd/files"
1673
	$(MKDIR_P) "$(DESTDIR)$(localstatedir)/run/libvirt/lockd"
1674
endif WITH_LIBVIRTD
1675 1676
	$(MKDIR_P) "$(DESTDIR)$(localstatedir)/cache/libvirt"
	$(MKDIR_P) "$(DESTDIR)$(localstatedir)/lib/libvirt/images"
1677
	$(MKDIR_P) "$(DESTDIR)$(localstatedir)/lib/libvirt/filesystems"
1678
	$(MKDIR_P) "$(DESTDIR)$(localstatedir)/lib/libvirt/boot"
1679
if WITH_SANLOCK
1680
	$(MKDIR_P) "$(DESTDIR)$(localstatedir)/lib/libvirt/sanlock"
1681
endif WITH_SANLOCK
1682

1683
uninstall-local:: uninstall-init uninstall-systemd uninstall-upstart \
1684
		uninstall-sysctl uninstall-polkit uninstall-sasl \
1685
		uninstall-logrotate $(INSTALL_DATA_DIRS:%=uninstall-data-%)
1686
if WITH_LIBVIRTD
1687
	rmdir "$(DESTDIR)$(localstatedir)/lib/libvirt/lockd/files" ||:
1688 1689
	rmdir "$(DESTDIR)$(localstatedir)/lib/libvirt/lockd" ||:
	rmdir "$(DESTDIR)$(localstatedir)/run/libvirt/lockd" ||:
1690
endif WITH_LIBVIRTD
1691 1692
	rmdir "$(DESTDIR)$(localstatedir)/cache/libvirt" ||:
	rmdir "$(DESTDIR)$(localstatedir)/lib/libvirt/images" ||:
1693
	rmdir "$(DESTDIR)$(localstatedir)/lib/libvirt/filesystems" ||:
1694
	rmdir "$(DESTDIR)$(localstatedir)/lib/libvirt/boot" ||:
1695
if WITH_SANLOCK
1696
	rmdir "$(DESTDIR)$(localstatedir)/lib/libvirt/sanlock" ||:
1697
endif WITH_SANLOCK
1698
	rmdir "$(DESTDIR)$(localstatedir)/lib/libvirt" ||:
R
Richard W.M. Jones 已提交
1699

1700 1701
CLEANFILES += *.gcov .libs/*.gcda .libs/*.gcno *.gcno *.gcda *.i *.s
DISTCLEANFILES += $(GENERATED_SYM_FILES)
1702 1703 1704
MAINTAINERCLEANFILES += \
	$(VIR_NET_RPC_GENERATED) \
	$(NULL)