Makefile.am 28.5 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
man7_MANS =
95

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

129

E
Eric Blake 已提交
130 131
THREAD_LIBS = $(LIB_PTHREAD) $(LTLIBMULTITHREAD)

J
Jim Fehlig 已提交
132
SECDRIVER_CFLAGS =
133 134
SECDRIVER_LIBS =
if WITH_SECDRIVER_SELINUX
J
Jim Fehlig 已提交
135
SECDRIVER_CFLAGS += $(SELINUX_CFLAGS)
136
SECDRIVER_LIBS += $(SELINUX_LIBS)
137
endif WITH_SECDRIVER_SELINUX
138
if WITH_SECDRIVER_APPARMOR
J
Jim Fehlig 已提交
139
SECDRIVER_CFLAGS += $(APPARMOR_CFLAGS)
140
SECDRIVER_LIBS += $(APPARMOR_LIBS)
141
endif WITH_SECDRIVER_APPARMOR
142

143

144
lib_LTLIBRARIES = libvirt.la libvirt-qemu.la libvirt-lxc.la
145

146
moddir = $(libdir)/libvirt/connection-driver
147

A
Amy Griffis 已提交
148
confdir = $(sysconfdir)/libvirt
149
conf_DATA += libvirt.conf libvirt-admin.conf
150

151 152 153 154
augeasdir = $(datadir)/augeas/lenses

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

L
Lai Jiangshan 已提交
155

156
# Internal generic driver infrastructure
O
Osier Yang 已提交
157
DATATYPES_SOURCES = datatypes.h datatypes.c
158
DRIVER_SOURCES += \
159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181
		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 \
182
		$(NULL)
183

184

185

M
Martin Kletzander 已提交
186

187 188 189 190 191 192 193 194 195 196
# 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
197 198 199 200

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

211
# Depending on configure options, libtool creates one or both of
E
Eric Blake 已提交
212 213
# remote/{,.libs/}libvirt_driver_remote_la-remote_protocol.o.  We want
# the newest of the two, in case configure options changed and a stale
214
# file is left around from an earlier build.
215 216 217
# 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.
218
PDWTAGS = \
A
Andrea Bolognani 已提交
219
	$(AM_V_GEN)if $(CC) -v 2>&1 | grep -q clang; then \
220 221 222 223
	   echo 'WARNING: skipping pdwtags test with Clang' >&2; \
	   exit 0; \
	fi; \
	if (pdwtags --help) > /dev/null 2>&1; then \
224 225 226 227 228 229 230
	  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?; \
231
	    echo 'WARNING: pdwtags appears broken; skipping the $@ test' >&2;\
232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249
	  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) {' \
250
		-e '    warn "WARNING: your pdwtags program is too old\n";' \
251
		-e '    warn "WARNING: skipping the $@ test\n";' \
252
		-e '    warn "WARNING: install dwarves-1.3 or newer\n";' \
253 254 255 256
		-e '    exit 8;' \
		-e '  }' \
		-e '}' \
		< $(@F)-t1 > $(@F)-t3; \
257
	    case $$? in 8) rm -f $(@F)-t?; exit 0;; 0) ;; *) exit 1;; esac;\
258 259 260 261
	    diff -u $(@)s $(@F)-t3; st=$$?; rm -f $(@F)-t?; exit $$st; \
	  fi; \
	else \
	  echo 'WARNING: you lack pdwtags; skipping the $@ test' >&2; \
262
	  echo 'WARNING: install the dwarves package to get pdwtags' >&2; \
263
	fi
264

265
# .libs/libvirt.so is built by libtool as a side-effect of the Makefile
266 267
# rule for libvirt.la.  However, checking symbols relies on Linux ELF layout
if WITH_LINUX
268 269 270
check-symfile: libvirt.syms libvirt.la
	$(AM_V_GEN)$(PERL) $(srcdir)/check-symfile.pl libvirt.syms \
	  .libs/libvirt.so
271 272 273
check-admin-symfile: libvirt_admin.syms libvirt-admin.la
	$(AM_V_GEN)$(PERL) $(srcdir)/check-symfile.pl libvirt_admin.syms \
	  .libs/libvirt-admin.so
274
else ! WITH_LINUX
275
check-symfile:
276
check-admin-symfile:
277
endif ! WITH_LINUX
278
check-symsorting:
279
	$(AM_V_GEN)$(PERL) $(srcdir)/check-symsorting.pl \
280
		$(srcdir) $(SYM_FILES)
281 282 283
check-admin-symsorting:
	$(AM_V_GEN)$(PERL) $(srcdir)/check-symsorting.pl \
		$(srcdir) $(ADMIN_SYM_FILES)
J
Jiri Denemark 已提交
284
EXTRA_DIST += check-symfile.pl check-symsorting.pl
285

E
Eric Blake 已提交
286
# Keep this list synced with RPC_PROBE_FILES
287 288
PROTOCOL_STRUCTS = \
	$(srcdir)/remote_protocol-structs \
289
	$(srcdir)/lxc_protocol-structs \
290
	$(srcdir)/qemu_protocol-structs \
J
Jiri Denemark 已提交
291
	$(srcdir)/virnetprotocol-structs \
E
Eric Blake 已提交
292 293 294
	$(srcdir)/virkeepaliveprotocol-structs \
	$(srcdir)/lxc_monitor_protocol-structs \
	$(srcdir)/lock_protocol-structs \
M
Martin Kletzander 已提交
295
	$(srcdir)/admin_protocol-structs \
E
Eric Blake 已提交
296 297
	$(NULL)

298
if WITH_REMOTE
299 300
check-protocol: $(PROTOCOL_STRUCTS) $(PROTOCOL_STRUCTS:structs=struct)

301 302
# 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.
303 304 305
$(srcdir)/remote_protocol-struct \
	$(srcdir)/qemu_protocol-struct \
	$(srcdir)/lxc_protocol-struct: \
E
Eric Blake 已提交
306
		$(srcdir)/%-struct: remote/libvirt_driver_remote_la-%.lo
307
	$(PDWTAGS)
308
$(srcdir)/virnetprotocol-struct $(srcdir)/virkeepaliveprotocol-struct: \
E
Eric Blake 已提交
309
		$(srcdir)/%-struct: rpc/libvirt_net_rpc_la-%.lo
310
	$(PDWTAGS)
E
Eric Blake 已提交
311
$(srcdir)/lxc_monitor_protocol-struct: \
E
Eric Blake 已提交
312
		$(srcdir)/%-struct: lxc/libvirt_driver_lxc_impl_la-%.lo
E
Eric Blake 已提交
313 314
	$(PDWTAGS)
$(srcdir)/lock_protocol-struct: \
E
Eric Blake 已提交
315
		$(srcdir)/%-struct: locking/lockd_la-%.lo
E
Eric Blake 已提交
316
	$(PDWTAGS)
M
Martin Kletzander 已提交
317 318 319
$(srcdir)/admin_protocol-struct: \
		$(srcdir)/%-struct: admin/libvirt_admin_la-%.lo
	$(PDWTAGS)
E
Eric Blake 已提交
320

321
else !WITH_REMOTE
322 323 324
# The $(PROTOCOL_STRUCTS) files must live in git, because they cannot be
# re-generated when configured --without-remote.
check-protocol:
325
endif !WITH_REMOTE
J
Jiri Denemark 已提交
326
EXTRA_DIST += $(PROTOCOL_STRUCTS)
327 328 329 330 331

check-drivername:
	$(AM_V_GEN)$(PERL) $(srcdir)/check-drivername.pl \
		$(srcdir)/driver.h \
		$(srcdir)/libvirt_public.syms \
332
		$(srcdir)/libvirt_admin_public.syms \
333 334 335 336 337
		$(srcdir)/libvirt_qemu.syms \
		$(srcdir)/libvirt_lxc.syms

EXTRA_DIST += check-drivername.pl

338 339
check-driverimpls:
	$(AM_V_GEN)$(PERL) $(srcdir)/check-driverimpls.pl \
340
		$(filter /%,$(DRIVER_SOURCE_FILES)) \
E
Eric Blake 已提交
341 342 343
		$(filter $(srcdir)/%,$(DRIVER_SOURCE_FILES)) \
		$(addprefix $(srcdir)/,$(filter-out $(srcdir)/%, \
			$(filter-out /%,$(DRIVER_SOURCE_FILES))))
344

345 346
check-aclrules:
	$(AM_V_GEN)$(PERL) $(srcdir)/check-aclrules.pl \
E
Eric Blake 已提交
347
		$(REMOTE_PROTOCOL) \
348
		$(addprefix $(srcdir)/,$(filter-out /%,$(STATEFUL_DRIVER_SOURCE_FILES)))
349

350 351 352 353 354
check-aclperms:
	$(AM_V_GEN)$(PERL) $(srcdir)/check-aclperms.pl \
		$(srcdir)/access/viraccessperm.h \
		$(srcdir)/access/viraccessperm.c

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

357
check-local: check-protocol check-symfile check-symsorting \
358
	check-drivername check-driverimpls check-aclrules \
359
	check-aclperms check-admin-symfile check-admin-symsorting
360
.PHONY: check-protocol $(PROTOCOL_STRUCTS:structs=struct)
361

362 363


364

J
Jiri Denemark 已提交
365 366
pkgdata_DATA =	cpu/cpu_map.xml

E
Eric Blake 已提交
367
EXTRA_DIST +=	$(pkgdata_DATA)
368

369 370 371 372 373 374
#########################
#
# Build up list of libvirt.la source files based on configure conditions
#
# First deal with sources usable in non-daemon context

375

376
noinst_LTLIBRARIES += libvirt_driver.la
377
libvirt_la_BUILT_LIBADD += libvirt_driver.la
378
libvirt_driver_la_SOURCES = $(DRIVER_SOURCES)
379

380
libvirt_driver_la_CFLAGS = \
381
		$(GNUTLS_CFLAGS) $(CURL_CFLAGS) $(XDR_CFLAGS) \
382
		-I$(srcdir)/conf $(AM_CFLAGS)
383
libvirt_driver_la_LIBADD = \
384
		$(GNUTLS_LIBS) $(CURL_LIBS) $(DLOPEN_LIBS)
385

386 387
# 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.
388 389 390
SYM_FILES += $(USED_SYM_FILES)
USED_SYM_FILES += $(srcdir)/libvirt_private.syms
GENERATED_SYM_FILES += \
391
	libvirt.syms libvirt.def libvirt_qemu.def libvirt_lxc.def \
392
	libvirt_admin.syms libvirt_admin.def \
393
	$(NULL)
394

C
Chris Lalancette 已提交
395

396

397
%protocol.c: %protocol.x %protocol.h $(srcdir)/rpc/genprotocol.pl
398
	$(AM_V_GEN)$(PERL) -w $(srcdir)/rpc/genprotocol.pl $(RPCGEN) -c \
399
	       $< $(srcdir)/$(subst $(srcdir)/,,$@)
400

401
%protocol.h: %protocol.x $(srcdir)/rpc/genprotocol.pl
402
	$(AM_V_GEN)$(PERL) -w $(srcdir)/rpc/genprotocol.pl $(RPCGEN) -h \
403
	       $< $(srcdir)/$(subst $(srcdir)/,,$@)
404

405

406

407

408

409

410

411 412
check-local: check-augeas

413
check-augeas: $(AUGEAS_DIRS:%=check-augeas-%)
414

415
AUG_GENTEST = $(PERL) $(top_srcdir)/build-aux/augeas-gentest.pl
416
EXTRA_DIST += $(top_srcdir)/build-aux/augeas-gentest.pl
417

418

419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437
#
# 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.
#

438
USED_SYM_FILES += $(srcdir)/libvirt_driver_modules.syms
439

440
if WITH_LINUX
441
USED_SYM_FILES += $(srcdir)/libvirt_linux.syms
442
else ! WITH_LINUX
443
SYM_FILES += $(srcdir)/libvirt_linux.syms
444
endif ! WITH_LINUX
445

446
if WITH_SASL
447
USED_SYM_FILES += $(srcdir)/libvirt_sasl.syms
448
else ! WITH_SASL
449
SYM_FILES += $(srcdir)/libvirt_sasl.syms
450
endif ! WITH_SASL
E
Eric Blake 已提交
451

452 453
if WITH_GNUTLS
USED_SYM_FILES += $(srcdir)/libvirt_gnutls.syms
454
else ! WITH_GNUTLS
455
SYM_FILES += $(srcdir)/libvirt_gnutls.syms
456
endif ! WITH_GNUTLS
457

458
if WITH_SSH2
459
USED_SYM_FILES += $(srcdir)/libvirt_libssh2.syms
460
else ! WITH_SSH2
461
SYM_FILES += $(srcdir)/libvirt_libssh2.syms
462
endif ! WITH_SSH2
463

464
if WITH_ATOMIC_OPS_PTHREAD
465
USED_SYM_FILES += $(srcdir)/libvirt_atomic.syms
466
else ! WITH_ATOMIC_OPS_PTHREAD
467
SYM_FILES += $(srcdir)/libvirt_atomic.syms
468
endif ! WITH_ATOMIC_OPS_PTHREAD
469

470 471 472 473 474 475
if WITH_LIBSSH
USED_SYM_FILES += $(srcdir)/libvirt_libssh.syms
else ! WITH_LIBSSH
SYM_FILES += $(srcdir)/libvirt_libssh.syms
endif ! WITH_LIBSSH

476
EXTRA_DIST += \
477 478 479 480 481 482
	libvirt_public.syms \
	libvirt_lxc.syms \
	libvirt_qemu.syms \
	libvirt_admin_public.syms \
	$(SYM_FILES) \
	$(ADMIN_SYM_FILES) \
483
	$(NULL)
484

485
BUILT_SOURCES += $(GENERATED_SYM_FILES)
486

487 488
libvirt.syms: libvirt_public.syms $(USED_SYM_FILES) \
		$(ACCESS_DRIVER_SYM_FILES) \
489
		$(top_builddir)/config.status
490 491 492 493 494 495
	$(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 && \
496
	cat $(USED_SYM_FILES) $(ACCESS_DRIVER_SYM_FILES) >>$@-tmp && \
497 498
	printf '\n\nlocal:\n*;\n\n};' >>$@-tmp && \
	chmod a-w $@-tmp && \
499
	mv $@-tmp libvirt.syms
500

501
%.def: %.syms
502 503
	$(AM_V_GEN)rm -f -- $@-tmp $@ ; \
	printf 'EXPORTS\n' > $@-tmp && \
504
	sed -e '/^$$/d; /#/d; /:/d; /}/d; /\*/d; /LIBVIRT_/d' \
505
	    -e 's/[	 ]*\(.*\)\;/    \1/g' $^ >> $@-tmp && \
506
	chmod a-w $@-tmp && \
507
	mv $@-tmp $@
508

509 510 511 512 513 514 515 516 517 518 519 520 521
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

522

M
Martin Kletzander 已提交
523 524
lib_LTLIBRARIES += libvirt-admin.la
libvirt_admin_la_SOURCES = \
525 526
		libvirt-admin.c \
		$(ADMIN_PROTOCOL_GENERATED) \
M
Martin Kletzander 已提交
527 528 529
		$(DATATYPES_SOURCES)

libvirt_admin_la_LDFLAGS = \
530 531
		$(VERSION_SCRIPT_FLAGS)$(LIBVIRT_ADMIN_SYMBOL_FILE) \
		-version-info $(LIBVIRT_VERSION_INFO) \
532 533 534
		$(LIBVIRT_NODELETE) \
		$(AM_LDFLAGS) \
		$(NULL)
M
Martin Kletzander 已提交
535 536

libvirt_admin_la_LIBADD = \
537
		libvirt.la \
M
Martin Kletzander 已提交
538 539 540
		$(CYGWIN_EXTRA_LIBADD)

libvirt_admin_la_CFLAGS = \
541 542 543
		$(AM_CFLAGS) \
		-I$(srcdir)/remote \
		-I$(srcdir)/rpc \
M
Martin Kletzander 已提交
544 545 546
		-I$(srcdir)/admin

libvirt_admin_la_CFLAGS += \
547 548 549 550 551 552
		$(XDR_CFLAGS) \
		$(CAPNG_CFLAGS) \
		$(YAJL_CFLAGS) \
		$(SSH2_CFLAGS) \
		$(SASL_CFLAGS) \
		$(GNUTLS_CFLAGS) \
553
		$(LIBSSH_CFLAGS)
M
Martin Kletzander 已提交
554 555

libvirt_admin_la_LIBADD += \
556 557 558 559 560 561 562
		$(CAPNG_LIBS) \
		$(YAJL_LIBS) \
		$(DEVMAPPER_LIBS) \
		$(LIBXML_LIBS) \
		$(SSH2_LIBS) \
		$(SASL_LIBS) \
		$(GNUTLS_LIBS) \
563
		$(LIBSSH_LIBS)
M
Martin Kletzander 已提交
564

565 566
ADMIN_SYM_FILES = $(srcdir)/libvirt_admin_private.syms

M
Martin Kletzander 已提交
567 568 569 570
if WITH_DTRACE_PROBES
libvirt_admin_la_LIBADD += libvirt_probes.lo
endif WITH_DTRACE_PROBES

571 572
# Empty source list - it merely links a bunch of convenience libs together
libvirt_la_SOURCES =
D
Daniel P. Berrange 已提交
573 574 575 576
libvirt_la_LDFLAGS = \
		$(VERSION_SCRIPT_FLAGS)$(LIBVIRT_SYMBOL_FILE) \
		-version-info $(LIBVIRT_VERSION_INFO) \
		$(LIBVIRT_NODELETE) \
577
		$(NO_UNDEFINED_LDFLAGS) \
D
Daniel P. Berrange 已提交
578 579
		$(AM_LDFLAGS) \
		$(NULL)
580
libvirt_la_BUILT_LIBADD += ../gnulib/lib/libgnu.la
581
libvirt_la_LIBADD += \
582
		    $(DRIVER_MODULES_LIBS) \
583
		    $(CYGWIN_EXTRA_LIBADD)
584
libvirt_la_CFLAGS = -DIN_LIBVIRT $(AM_CFLAGS)
585 586 587 588 589 590
# 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)
591

592
if WITH_DTRACE_PROBES
593
libvirt_la_BUILT_LIBADD += libvirt_probes.lo
594
libvirt_la_DEPENDENCIES += libvirt_probes.lo libvirt_probes.o
595
nodist_libvirt_la_SOURCES = libvirt_probes.h
E
Eric Blake 已提交
596
if WITH_REMOTE
E
Eric Blake 已提交
597
nodist_libvirt_driver_remote_la_SOURCES = libvirt_probes.h
E
Eric Blake 已提交
598
endif WITH_REMOTE
599
DTRACE2SYSTEMTAP_FLAGS = --with-modules
600

601 602
BUILT_SOURCES += libvirt_probes.h libvirt_probes.stp libvirt_functions.stp

603 604

tapsetdir = $(datadir)/systemtap/tapset
605
tapset_DATA += libvirt_probes.stp libvirt_functions.stp
606

607
%_probes.h: %_probes.d
608 609
	$(AM_V_GEN)$(DTRACE) -o $@ -h -s $<

E
Eric Blake 已提交
610
.PRECIOUS: %_probes.o
611
%_probes.o: %_probes.d
612 613
	$(AM_V_GEN)$(DTRACE) -o $@ -G -s $<

614 615 616 617 618 619 620 621 622
%_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 已提交
623
# Keep this list synced with PROTOCOL_STRUCTS
624
RPC_PROBE_FILES += $(srcdir)/rpc/virnetprotocol.x \
J
Jiri Denemark 已提交
625 626
		  $(srcdir)/rpc/virkeepaliveprotocol.x \
		  $(srcdir)/remote/remote_protocol.x \
627
		  $(srcdir)/remote/lxc_protocol.x \
628
		  $(srcdir)/remote/qemu_protocol.x \
M
Martin Kletzander 已提交
629
		  $(srcdir)/admin/admin_protocol.x
630 631

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

634 635
%_probes.stp: %_probes.d $(srcdir)/dtrace2systemtap.pl \
		$(top_builddir)/config.status
636
	$(AM_V_GEN)$(PERL) -w $(srcdir)/dtrace2systemtap.pl \
637
	  $(DTRACE2SYSTEMTAP_FLAGS) $(bindir) $(sbindir) $(libdir) $< > $@
638

639
CLEANFILES += libvirt_probes.h libvirt_probes.o libvirt_probes.lo \
640
              libvirt_functions.stp libvirt_probes.stp
641
endif WITH_DTRACE_PROBES
642

643
EXTRA_DIST += libvirt_probes.d
644

C
Chris Lalancette 已提交
645
libvirt_qemu_la_SOURCES = libvirt-qemu.c
D
Daniel P. Berrange 已提交
646 647 648
libvirt_qemu_la_LDFLAGS = \
		$(VERSION_SCRIPT_FLAGS)$(LIBVIRT_QEMU_SYMBOL_FILE) \
		-version-info $(LIBVIRT_VERSION_INFO) \
649
		$(LIBVIRT_NODELETE) \
D
Daniel P. Berrange 已提交
650 651
		$(AM_LDFLAGS) \
		$(NULL)
652
libvirt_qemu_la_CFLAGS = $(AM_CFLAGS)
C
Chris Lalancette 已提交
653
libvirt_qemu_la_LIBADD = libvirt.la $(CYGWIN_EXTRA_LIBADD)
654

655
libvirt_lxc_la_SOURCES = libvirt-lxc.c
D
Daniel P. Berrange 已提交
656 657 658
libvirt_lxc_la_LDFLAGS = \
		$(VERSION_SCRIPT_FLAGS)$(LIBVIRT_LXC_SYMBOL_FILE) \
		-version-info $(LIBVIRT_VERSION_INFO) \
659
		$(LIBVIRT_NODELETE) \
D
Daniel P. Berrange 已提交
660 661
		$(AM_LDFLAGS) \
		$(NULL)
662 663 664
libvirt_lxc_la_CFLAGS = $(AM_CFLAGS)
libvirt_lxc_la_LIBADD = libvirt.la $(CYGWIN_EXTRA_LIBADD)

665 666 667 668 669 670 671
# 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
672
if WITH_SETUID_RPC_CLIENT
673 674
noinst_LTLIBRARIES += libvirt-setuid-rpc-client.la

675 676
libvirt_setuid_rpc_client_la_SOURCES = \
		util/viralloc.c \
677
		util/virarch.c \
678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742
		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 \
743 744
		$(NULL)

745 746 747 748
libvirt_setuid_rpc_client_la_LDFLAGS = \
		$(AM_LDFLAGS) \
		$(LIBXML_LIBS) \
		$(SECDRIVER_LIBS) \
749
		$(NULL)
750 751 752 753 754 755 756
libvirt_setuid_rpc_client_la_CFLAGS = \
		-DLIBVIRT_SETUID_RPC_CLIENT \
		-I$(srcdir)/conf \
		-I$(srcdir)/rpc \
		$(AM_CFLAGS) \
		$(SECDRIVER_CFLAGS) \
		$(XDR_CFLAGS) \
757
		$(NULL)
758
endif WITH_SETUID_RPC_CLIENT
759

760
EXTRA_DIST += $(SYSCONF_FILES)
761 762

install-sysconfig:
E
Eric Blake 已提交
763
	$(MKDIR_P) $(DESTDIR)$(sysconfdir)/sysconfig
764 765 766
	for f in $(SYSCONF_FILES:%.sysconf=%) ; \
	do \
	  tgt=`basename $$f`; \
767 768
	  $(INSTALL_SCRIPT) $(srcdir)/$$f.sysconf \
	      $(DESTDIR)$(sysconfdir)/sysconfig/$$tgt; \
769
	done
770 771

uninstall-sysconfig:
772 773 774 775 776
	for f in $(SYSCONF_FILES:%.sysconf=%) ; \
	do \
	  tgt=`basename $$f`; \
	  rm -f $(DESTDIR)$(sysconfdir)/sysconfig/$$tgt; \
	done
E
Eric Blake 已提交
777
	rmdir $(DESTDIR)$(sysconfdir)/sysconfig || :
778

779
SYSVINIT_FILES_IN += \
780 781 782 783 784 785
	locking/virtlockd.init.in \
	$(NULL)

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

EXTRA_DIST += $(SYSVINIT_FILES_IN)
786

787
LOGROTATE_FILES := $(LOGROTATE_FILES_IN:remote/%.in=%)
788 789 790 791

EXTRA_DIST += $(LOGROTATE_FILES_IN)

BUILT_SOURCES += $(LOGROTATE_FILES)
792
CLEANFILES += $(LOGROTATE_FILES)
793 794 795 796 797 798 799

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

800
if WITH_LIBVIRTD
801 802 803 804 805 806 807 808 809 810 811 812
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 || :
813 814 815 816
else ! WITH_LIBVIRTD
install-logrotate:
uninstall-logrotate:
endif ! WITH_LIBVIRTD
817

818
if LIBVIRT_INIT_SCRIPT_RED_HAT
819
install-init:: $(SYSVINIT_FILES) install-sysconfig
E
Eric Blake 已提交
820
	$(MKDIR_P) $(DESTDIR)$(sysconfdir)/rc.d/init.d
821 822 823 824
	for f in $(SYSVINIT_FILES:%.init=%) ; \
	do \
	  $(INSTALL_SCRIPT) $$f.init $(DESTDIR)$(sysconfdir)/rc.d/init.d/$$f; \
	done
825 826

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

830 831
BUILT_SOURCES += $(SYSVINIT_FILES)
DISTCLEANFILES += $(SYSVINIT_FILES)
832
else ! LIBVIRT_INIT_SCRIPT_RED_HAT
833 834
install-init::
uninstall-init::
835
endif ! LIBVIRT_INIT_SCRIPT_RED_HAT
836

837

838
%.8: %.8.in $(top_srcdir)/configure.ac
839
	$(AM_V_GEN)sed \
840 841 842
		-e 's|[@]sysconfdir[@]|$(sysconfdir)|g' \
		-e 's|[@]localstatedir[@]|$(localstatedir)|g' \
		< $< > $@-t && \
843 844
	mv $@-t $@

845
CLEANFILES += $(man8_MANS)
A
Andrea Bolognani 已提交
846
MAINTAINERCLEANFILES += $(MANINFILES)
847 848

EXTRA_DIST += \
849
        $(SYSTEMD_UNIT_FILES_IN) \
A
Andrea Bolognani 已提交
850 851
        $(PODFILES) \
        $(MANINFILES) \
852
        $(NULL)
853

854 855 856 857

if WITH_LIBVIRTD
if LIBVIRT_INIT_SCRIPT_SYSTEMD

858
SYSTEMD_UNIT_DIR = $(prefix)/lib/systemd/system
859
SYSTEMD_UNIT_FILES = $(notdir $(SYSTEMD_UNIT_FILES_IN:%.in=%))
860

861 862
BUILT_SOURCES += $(SYSTEMD_UNIT_FILES)
DISTCLEANFILES += $(SYSTEMD_UNIT_FILES)
863

864
install-systemd: $(SYSTEMD_UNIT_FILES) install-sysconfig
E
Eric Blake 已提交
865
	$(MKDIR_P) $(DESTDIR)$(SYSTEMD_UNIT_DIR)
866 867 868 869
	for f in $(SYSTEMD_UNIT_FILES); \
	do \
	  $(INSTALL_DATA) $$f $(DESTDIR)$(SYSTEMD_UNIT_DIR)/ ; \
	done
870 871

uninstall-systemd: uninstall-sysconfig
872
	rm -f $(SYSTEMD_UNIT_FILES:%=$(DESTDIR)$(SYSTEMD_UNIT_DIR)/%)
E
Eric Blake 已提交
873
	rmdir $(DESTDIR)$(SYSTEMD_UNIT_DIR) || :
874
else ! LIBVIRT_INIT_SCRIPT_SYSTEMD
875 876
install-systemd:
uninstall-systemd:
877 878
endif ! LIBVIRT_INIT_SCRIPT_SYSTEMD
else ! WITH_LIBVIRTD
879 880
install-systemd:
uninstall-systemd:
881
endif ! WITH_LIBVIRTD
882 883


884 885 886 887 888 889 890 891 892 893
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` ; \
894 895
	  $(INSTALL_SCRIPT) $(srcdir)/$$f.upstart \
	      $(DESTDIR)$(sysconfdir)/event.d/$$tgt ; \
896 897 898 899 900 901 902 903 904 905 906 907 908 909 910 911 912 913
	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

914

915
EXTRA_DIST += dtrace2systemtap.pl
916

917

918
if WITH_LIBVIRTD
919 920
libexec_PROGRAMS += libvirt_iohelper
libvirt_iohelper_SOURCES = $(UTIL_IO_HELPER_SOURCES)
D
Daniel P. Berrange 已提交
921 922 923 924
libvirt_iohelper_LDFLAGS = \
		$(AM_LDFLAGS) \
		$(PIE_LDFLAGS) \
		$(NULL)
925 926
libvirt_iohelper_LDADD = \
		libvirt_util.la \
927
		../gnulib/lib/libgnu.la
928 929
if WITH_DTRACE_PROBES
libvirt_iohelper_LDADD += libvirt_probes.lo
930
endif WITH_DTRACE_PROBES
931

D
Daniel P. Berrange 已提交
932 933 934 935
libvirt_iohelper_CFLAGS = \
		$(AM_CFLAGS) \
		$(PIE_CFLAGS) \
		$(NULL)
936 937


938
endif WITH_LIBVIRTD
939

940

J
Jamie Strandboge 已提交
941

942
if WITH_NSS
943 944
noinst_LTLIBRARIES += libvirt-nss.la

945 946 947 948 949 950 951 952 953 954 955 956 957 958 959 960 961 962 963 964 965 966 967 968 969 970 971 972 973 974 975 976 977 978 979 980 981 982 983 984 985 986 987 988 989 990 991 992 993
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 \
994 995
		$(NULL)

996 997 998 999
libvirt_nss_la_CFLAGS = \
		-DLIBVIRT_NSS \
		$(AM_CFLAGS) \
		$(YAJL_CFLAGS) \
1000
		$(NULL)
1001 1002
libvirt_nss_la_LDFLAGS = \
		$(AM_LDFLAGS) \
1003 1004
		$(NULL)

1005 1006
libvirt_nss_la_LIBADD = \
		$(YAJL_LIBS) \
1007
		$(NULL)
1008
endif WITH_NSS
1009 1010


1011
install-data-local: install-init install-systemd install-upstart \
1012
		install-sysctl install-polkit install-sasl \
1013
		install-logrotate $(INSTALL_DATA_DIRS:%=install-data-%)
1014 1015
	$(MKDIR_P) "$(DESTDIR)$(localstatedir)/cache/libvirt"
	$(MKDIR_P) "$(DESTDIR)$(localstatedir)/lib/libvirt/images"
1016
	$(MKDIR_P) "$(DESTDIR)$(localstatedir)/lib/libvirt/filesystems"
1017
	$(MKDIR_P) "$(DESTDIR)$(localstatedir)/lib/libvirt/boot"
1018

1019
uninstall-local:: uninstall-init uninstall-systemd uninstall-upstart \
1020
		uninstall-sysctl uninstall-polkit uninstall-sasl \
1021
		uninstall-logrotate $(INSTALL_DATA_DIRS:%=uninstall-data-%)
1022 1023
	rmdir "$(DESTDIR)$(localstatedir)/cache/libvirt" ||:
	rmdir "$(DESTDIR)$(localstatedir)/lib/libvirt/images" ||:
1024
	rmdir "$(DESTDIR)$(localstatedir)/lib/libvirt/filesystems" ||:
1025 1026
	rmdir "$(DESTDIR)$(localstatedir)/lib/libvirt/boot" ||:
	rmdir "$(DESTDIR)$(localstatedir)/lib/libvirt" ||:
R
Richard W.M. Jones 已提交
1027

1028 1029
CLEANFILES += *.gcov .libs/*.gcda .libs/*.gcno *.gcno *.gcda *.i *.s
DISTCLEANFILES += $(GENERATED_SYM_FILES)