Makefile.am 28.6 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 55 56 57 58
AM_LDFLAGS_MOD = \
	-module \
	-avoid-version \
	$(LIBVIRT_NODELETE) \
	$(AM_LDFLAGS)
59
AM_LDFLAGS_MOD_NOUNDEF = $(AM_LDFLAGS_MOD) $(NO_UNDEFINED_LDFLAGS)
60

61 62
POD2MAN = pod2man -c "Virtualization Support" -r "$(PACKAGE)-$(VERSION)"

63
EXTRA_DIST = $(conf_DATA)
64

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

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

133

E
Eric Blake 已提交
134 135
THREAD_LIBS = $(LIB_PTHREAD) $(LTLIBMULTITHREAD)

J
Jim Fehlig 已提交
136
SECDRIVER_CFLAGS =
137 138
SECDRIVER_LIBS =
if WITH_SECDRIVER_SELINUX
J
Jim Fehlig 已提交
139
SECDRIVER_CFLAGS += $(SELINUX_CFLAGS)
140
SECDRIVER_LIBS += $(SELINUX_LIBS)
141
endif WITH_SECDRIVER_SELINUX
142
if WITH_SECDRIVER_APPARMOR
J
Jim Fehlig 已提交
143
SECDRIVER_CFLAGS += $(APPARMOR_CFLAGS)
144
SECDRIVER_LIBS += $(APPARMOR_LIBS)
145
endif WITH_SECDRIVER_APPARMOR
146

147

148
lib_LTLIBRARIES = libvirt.la libvirt-qemu.la libvirt-lxc.la
149

150
moddir = $(libdir)/libvirt/connection-driver
151

A
Amy Griffis 已提交
152
confdir = $(sysconfdir)/libvirt
153
conf_DATA += libvirt.conf libvirt-admin.conf
154

155 156 157 158
augeasdir = $(datadir)/augeas/lenses

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

L
Lai Jiangshan 已提交
159

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

188

189

M
Martin Kletzander 已提交
190

191 192 193 194 195 196 197 198 199 200
# 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
201 202 203 204

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

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

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

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

302
if WITH_REMOTE
303 304
check-protocol: $(PROTOCOL_STRUCTS) $(PROTOCOL_STRUCTS:structs=struct)

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

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

check-drivername:
	$(AM_V_GEN)$(PERL) $(srcdir)/check-drivername.pl \
		$(srcdir)/driver.h \
		$(srcdir)/libvirt_public.syms \
336
		$(srcdir)/libvirt_admin_public.syms \
337 338 339 340 341
		$(srcdir)/libvirt_qemu.syms \
		$(srcdir)/libvirt_lxc.syms

EXTRA_DIST += check-drivername.pl

342 343
check-driverimpls:
	$(AM_V_GEN)$(PERL) $(srcdir)/check-driverimpls.pl \
344
		$(filter /%,$(DRIVER_SOURCE_FILES)) \
E
Eric Blake 已提交
345 346 347
		$(filter $(srcdir)/%,$(DRIVER_SOURCE_FILES)) \
		$(addprefix $(srcdir)/,$(filter-out $(srcdir)/%, \
			$(filter-out /%,$(DRIVER_SOURCE_FILES))))
348

349 350
check-aclrules:
	$(AM_V_GEN)$(PERL) $(srcdir)/check-aclrules.pl \
E
Eric Blake 已提交
351
		$(REMOTE_PROTOCOL) \
352
		$(addprefix $(srcdir)/,$(filter-out /%,$(STATEFUL_DRIVER_SOURCE_FILES)))
353

354 355 356 357 358
check-aclperms:
	$(AM_V_GEN)$(PERL) $(srcdir)/check-aclperms.pl \
		$(srcdir)/access/viraccessperm.h \
		$(srcdir)/access/viraccessperm.c

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

361
check-local: check-protocol check-symfile check-symsorting \
362
	check-drivername check-driverimpls check-aclrules \
363
	check-aclperms check-admin-symfile check-admin-symsorting
364
.PHONY: check-protocol $(PROTOCOL_STRUCTS:structs=struct)
365

366 367


368

J
Jiri Denemark 已提交
369 370
pkgdata_DATA =	cpu/cpu_map.xml

E
Eric Blake 已提交
371
EXTRA_DIST +=	$(pkgdata_DATA)
372

373 374 375 376 377 378
#########################
#
# Build up list of libvirt.la source files based on configure conditions
#
# First deal with sources usable in non-daemon context

379

380
noinst_LTLIBRARIES += libvirt_driver.la
381
libvirt_la_BUILT_LIBADD += libvirt_driver.la
382
libvirt_driver_la_SOURCES = $(DRIVER_SOURCES)
383

384
libvirt_driver_la_CFLAGS = \
385
		$(GNUTLS_CFLAGS) $(CURL_CFLAGS) $(XDR_CFLAGS) \
386
		-I$(srcdir)/conf $(AM_CFLAGS)
387
libvirt_driver_la_LIBADD = \
388
		$(GNUTLS_LIBS) $(CURL_LIBS) $(DLOPEN_LIBS)
389

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

C
Chris Lalancette 已提交
399

400

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

405
%protocol.h: %protocol.x $(srcdir)/rpc/genprotocol.pl
406
	$(AM_V_GEN)$(PERL) -w $(srcdir)/rpc/genprotocol.pl $(RPCGEN) -h \
407
	       $< $(srcdir)/$(subst $(srcdir)/,,$@)
408

409

410

411

412

413

414

415 416
check-local: check-augeas

417
check-augeas: $(AUGEAS_DIRS:%=check-augeas-%)
418

419
AUG_GENTEST = $(PERL) $(top_srcdir)/build-aux/augeas-gentest.pl
420
EXTRA_DIST += $(top_srcdir)/build-aux/augeas-gentest.pl
421

422

423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441
#
# 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.
#

442
USED_SYM_FILES += $(srcdir)/libvirt_driver_modules.syms
443

444
if WITH_LINUX
445
USED_SYM_FILES += $(srcdir)/libvirt_linux.syms
446
else ! WITH_LINUX
447
SYM_FILES += $(srcdir)/libvirt_linux.syms
448
endif ! WITH_LINUX
449

450
if WITH_SASL
451
USED_SYM_FILES += $(srcdir)/libvirt_sasl.syms
452
else ! WITH_SASL
453
SYM_FILES += $(srcdir)/libvirt_sasl.syms
454
endif ! WITH_SASL
E
Eric Blake 已提交
455

456 457
if WITH_GNUTLS
USED_SYM_FILES += $(srcdir)/libvirt_gnutls.syms
458
else ! WITH_GNUTLS
459
SYM_FILES += $(srcdir)/libvirt_gnutls.syms
460
endif ! WITH_GNUTLS
461

462
if WITH_SSH2
463
USED_SYM_FILES += $(srcdir)/libvirt_libssh2.syms
464
else ! WITH_SSH2
465
SYM_FILES += $(srcdir)/libvirt_libssh2.syms
466
endif ! WITH_SSH2
467

468
if WITH_ATOMIC_OPS_PTHREAD
469
USED_SYM_FILES += $(srcdir)/libvirt_atomic.syms
470
else ! WITH_ATOMIC_OPS_PTHREAD
471
SYM_FILES += $(srcdir)/libvirt_atomic.syms
472
endif ! WITH_ATOMIC_OPS_PTHREAD
473

474 475 476 477 478 479
if WITH_LIBSSH
USED_SYM_FILES += $(srcdir)/libvirt_libssh.syms
else ! WITH_LIBSSH
SYM_FILES += $(srcdir)/libvirt_libssh.syms
endif ! WITH_LIBSSH

480
EXTRA_DIST += \
481 482 483 484 485 486
	libvirt_public.syms \
	libvirt_lxc.syms \
	libvirt_qemu.syms \
	libvirt_admin_public.syms \
	$(SYM_FILES) \
	$(ADMIN_SYM_FILES) \
487
	$(NULL)
488

489
BUILT_SOURCES += $(GENERATED_SYM_FILES)
490

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

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

513 514 515 516 517 518 519 520 521 522 523 524 525
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

526

M
Martin Kletzander 已提交
527 528
lib_LTLIBRARIES += libvirt-admin.la
libvirt_admin_la_SOURCES = \
529 530
		libvirt-admin.c \
		$(ADMIN_PROTOCOL_GENERATED) \
M
Martin Kletzander 已提交
531 532 533
		$(DATATYPES_SOURCES)

libvirt_admin_la_LDFLAGS = \
534 535
		$(VERSION_SCRIPT_FLAGS)$(LIBVIRT_ADMIN_SYMBOL_FILE) \
		-version-info $(LIBVIRT_VERSION_INFO) \
536 537 538
		$(LIBVIRT_NODELETE) \
		$(AM_LDFLAGS) \
		$(NULL)
M
Martin Kletzander 已提交
539 540

libvirt_admin_la_LIBADD = \
541
		libvirt.la \
M
Martin Kletzander 已提交
542 543 544
		$(CYGWIN_EXTRA_LIBADD)

libvirt_admin_la_CFLAGS = \
545 546 547
		$(AM_CFLAGS) \
		-I$(srcdir)/remote \
		-I$(srcdir)/rpc \
M
Martin Kletzander 已提交
548 549 550
		-I$(srcdir)/admin

libvirt_admin_la_CFLAGS += \
551 552 553 554 555 556
		$(XDR_CFLAGS) \
		$(CAPNG_CFLAGS) \
		$(YAJL_CFLAGS) \
		$(SSH2_CFLAGS) \
		$(SASL_CFLAGS) \
		$(GNUTLS_CFLAGS) \
557
		$(LIBSSH_CFLAGS)
M
Martin Kletzander 已提交
558 559

libvirt_admin_la_LIBADD += \
560 561 562 563 564 565 566
		$(CAPNG_LIBS) \
		$(YAJL_LIBS) \
		$(DEVMAPPER_LIBS) \
		$(LIBXML_LIBS) \
		$(SSH2_LIBS) \
		$(SASL_LIBS) \
		$(GNUTLS_LIBS) \
567
		$(LIBSSH_LIBS)
M
Martin Kletzander 已提交
568

569 570
ADMIN_SYM_FILES = $(srcdir)/libvirt_admin_private.syms

M
Martin Kletzander 已提交
571 572 573 574
if WITH_DTRACE_PROBES
libvirt_admin_la_LIBADD += libvirt_probes.lo
endif WITH_DTRACE_PROBES

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

596
if WITH_DTRACE_PROBES
597
libvirt_la_BUILT_LIBADD += libvirt_probes.lo
598
libvirt_la_DEPENDENCIES += libvirt_probes.lo libvirt_probes.o
599
nodist_libvirt_la_SOURCES = libvirt_probes.h
E
Eric Blake 已提交
600
if WITH_REMOTE
E
Eric Blake 已提交
601
nodist_libvirt_driver_remote_la_SOURCES = libvirt_probes.h
E
Eric Blake 已提交
602
endif WITH_REMOTE
603
DTRACE2SYSTEMTAP_FLAGS = --with-modules
604

605 606
BUILT_SOURCES += libvirt_probes.h libvirt_probes.stp libvirt_functions.stp

607 608

tapsetdir = $(datadir)/systemtap/tapset
609
tapset_DATA += libvirt_probes.stp libvirt_functions.stp
610

611
%_probes.h: %_probes.d
612 613
	$(AM_V_GEN)$(DTRACE) -o $@ -h -s $<

E
Eric Blake 已提交
614
.PRECIOUS: %_probes.o
615
%_probes.o: %_probes.d
616 617
	$(AM_V_GEN)$(DTRACE) -o $@ -G -s $<

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

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

638 639
%_probes.stp: %_probes.d $(srcdir)/dtrace2systemtap.pl \
		$(top_builddir)/config.status
640
	$(AM_V_GEN)$(PERL) -w $(srcdir)/dtrace2systemtap.pl \
641
	  $(DTRACE2SYSTEMTAP_FLAGS) $(bindir) $(sbindir) $(libdir) $< > $@
642

643
CLEANFILES += libvirt_probes.h libvirt_probes.o libvirt_probes.lo \
644
              libvirt_functions.stp libvirt_probes.stp
645
endif WITH_DTRACE_PROBES
646

647
EXTRA_DIST += libvirt_probes.d
648

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

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

669 670 671 672 673 674 675
# 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
676
if WITH_SETUID_RPC_CLIENT
677 678
noinst_LTLIBRARIES += libvirt-setuid-rpc-client.la

679 680
libvirt_setuid_rpc_client_la_SOURCES = \
		util/viralloc.c \
681
		util/virarch.c \
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 743 744 745 746
		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 \
747 748
		$(NULL)

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

764
EXTRA_DIST += $(SYSCONF_FILES)
765 766

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

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

783
SYSVINIT_FILES_IN += \
784 785 786 787 788 789
	locking/virtlockd.init.in \
	$(NULL)

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

EXTRA_DIST += $(SYSVINIT_FILES_IN)
790

791
LOGROTATE_FILES := $(LOGROTATE_FILES_IN:remote/%.in=%)
792 793 794 795

EXTRA_DIST += $(LOGROTATE_FILES_IN)

BUILT_SOURCES += $(LOGROTATE_FILES)
796
CLEANFILES += $(LOGROTATE_FILES)
797 798 799 800 801 802 803

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

804
if WITH_LIBVIRTD
805 806 807 808 809 810 811 812 813 814 815 816
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 || :
817 818 819 820
else ! WITH_LIBVIRTD
install-logrotate:
uninstall-logrotate:
endif ! WITH_LIBVIRTD
821

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

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

834 835
BUILT_SOURCES += $(SYSVINIT_FILES)
DISTCLEANFILES += $(SYSVINIT_FILES)
836
else ! LIBVIRT_INIT_SCRIPT_RED_HAT
837 838
install-init::
uninstall-init::
839
endif ! LIBVIRT_INIT_SCRIPT_RED_HAT
840

841

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

849
CLEANFILES += $(man8_MANS)
A
Andrea Bolognani 已提交
850
MAINTAINERCLEANFILES += $(MANINFILES)
851 852

EXTRA_DIST += \
853
        $(SYSTEMD_UNIT_FILES_IN) \
A
Andrea Bolognani 已提交
854 855
        $(PODFILES) \
        $(MANINFILES) \
856
        $(NULL)
857

858 859 860 861

if WITH_LIBVIRTD
if LIBVIRT_INIT_SCRIPT_SYSTEMD

862
SYSTEMD_UNIT_DIR = $(prefix)/lib/systemd/system
863
SYSTEMD_UNIT_FILES = $(notdir $(SYSTEMD_UNIT_FILES_IN:%.in=%))
864

865 866
BUILT_SOURCES += $(SYSTEMD_UNIT_FILES)
DISTCLEANFILES += $(SYSTEMD_UNIT_FILES)
867

868
install-systemd: $(SYSTEMD_UNIT_FILES) install-sysconfig
E
Eric Blake 已提交
869
	$(MKDIR_P) $(DESTDIR)$(SYSTEMD_UNIT_DIR)
870 871 872 873
	for f in $(SYSTEMD_UNIT_FILES); \
	do \
	  $(INSTALL_DATA) $$f $(DESTDIR)$(SYSTEMD_UNIT_DIR)/ ; \
	done
874 875

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


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

918

919
EXTRA_DIST += dtrace2systemtap.pl
920

921

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

D
Daniel P. Berrange 已提交
936 937 938 939
libvirt_iohelper_CFLAGS = \
		$(AM_CFLAGS) \
		$(PIE_CFLAGS) \
		$(NULL)
940 941


942
endif WITH_LIBVIRTD
943

944

J
Jamie Strandboge 已提交
945

946
if WITH_NSS
947 948
noinst_LTLIBRARIES += libvirt-nss.la

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 994 995 996 997
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 \
998 999
		$(NULL)

1000 1001 1002 1003
libvirt_nss_la_CFLAGS = \
		-DLIBVIRT_NSS \
		$(AM_CFLAGS) \
		$(YAJL_CFLAGS) \
1004
		$(NULL)
1005 1006
libvirt_nss_la_LDFLAGS = \
		$(AM_LDFLAGS) \
1007 1008
		$(NULL)

1009 1010
libvirt_nss_la_LIBADD = \
		$(YAJL_LIBS) \
1011
		$(NULL)
1012
endif WITH_NSS
1013 1014


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

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

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