Makefile.am 28.4 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 cpu_map/Makefile.inc.am
104
include security/Makefile.inc.am
105
include access/Makefile.inc.am
106
include logging/Makefile.inc.am
107
include locking/Makefile.inc.am
108
include admin/Makefile.inc.am
109
include rpc/Makefile.inc.am
110
include uml/Makefile.inc.am
111
include phyp/Makefile.inc.am
112
include test/Makefile.inc.am
113
include esx/Makefile.inc.am
114
include hyperv/Makefile.inc.am
115
include vmx/Makefile.inc.am
116
include vmware/Makefile.inc.am
117
include vbox/Makefile.inc.am
118
include openvz/Makefile.inc.am
119
include qemu/Makefile.inc.am
120
include bhyve/Makefile.inc.am
121
include xenconfig/Makefile.inc.am
122
include libxl/Makefile.inc.am
123
include xenapi/Makefile.inc.am
124
include vz/Makefile.inc.am
125
include lxc/Makefile.inc.am
126
include interface/Makefile.inc.am
127
include network/Makefile.inc.am
128
include nwfilter/Makefile.inc.am
129
include node_device/Makefile.inc.am
130
include secret/Makefile.inc.am
131
include storage/Makefile.inc.am
132
include remote/Makefile.inc.am
133

134

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

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

148

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

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

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

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

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

L
Lai Jiangshan 已提交
160

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

189

190

M
Martin Kletzander 已提交
191

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

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

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

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

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

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

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

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

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

EXTRA_DIST += check-drivername.pl

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

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

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

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

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

367 368 369 370 371 372 373

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

374

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

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

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

C
Chris Lalancette 已提交
394

395

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

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

404

405

406

407

408

409

410 411
check-local: check-augeas

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

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

417

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

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

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

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

451
if WITH_SSH2
452
USED_SYM_FILES += $(srcdir)/libvirt_libssh2.syms
453
else ! WITH_SSH2
454
SYM_FILES += $(srcdir)/libvirt_libssh2.syms
455
endif ! WITH_SSH2
456

457
if WITH_ATOMIC_OPS_PTHREAD
458
USED_SYM_FILES += $(srcdir)/libvirt_atomic.syms
459
else ! WITH_ATOMIC_OPS_PTHREAD
460
SYM_FILES += $(srcdir)/libvirt_atomic.syms
461
endif ! WITH_ATOMIC_OPS_PTHREAD
462

463 464 465 466 467 468
if WITH_LIBSSH
USED_SYM_FILES += $(srcdir)/libvirt_libssh.syms
else ! WITH_LIBSSH
SYM_FILES += $(srcdir)/libvirt_libssh.syms
endif ! WITH_LIBSSH

469
EXTRA_DIST += \
470 471 472 473 474 475
	libvirt_public.syms \
	libvirt_lxc.syms \
	libvirt_qemu.syms \
	libvirt_admin_public.syms \
	$(SYM_FILES) \
	$(ADMIN_SYM_FILES) \
476
	$(NULL)
477

478
BUILT_SOURCES += $(GENERATED_SYM_FILES)
479

480 481
libvirt.syms: libvirt_public.syms $(USED_SYM_FILES) \
		$(ACCESS_DRIVER_SYM_FILES) \
482
		$(top_builddir)/config.status
483 484 485 486 487 488
	$(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 && \
489
	cat $(USED_SYM_FILES) $(ACCESS_DRIVER_SYM_FILES) >>$@-tmp && \
490 491
	printf '\n\nlocal:\n*;\n\n};' >>$@-tmp && \
	chmod a-w $@-tmp && \
492
	mv $@-tmp libvirt.syms
493

494
%.def: %.syms
495 496
	$(AM_V_GEN)rm -f -- $@-tmp $@ ; \
	printf 'EXPORTS\n' > $@-tmp && \
497
	sed -e '/^$$/d; /#/d; /:/d; /}/d; /\*/d; /LIBVIRT_/d' \
498
	    -e 's/[	 ]*\(.*\)\;/    \1/g' $^ >> $@-tmp && \
499
	chmod a-w $@-tmp && \
500
	mv $@-tmp $@
501

502 503 504 505 506 507 508 509 510 511 512 513 514
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

515

M
Martin Kletzander 已提交
516 517
lib_LTLIBRARIES += libvirt-admin.la
libvirt_admin_la_SOURCES = \
518 519
		libvirt-admin.c \
		$(ADMIN_PROTOCOL_GENERATED) \
M
Martin Kletzander 已提交
520 521 522
		$(DATATYPES_SOURCES)

libvirt_admin_la_LDFLAGS = \
523 524
		$(VERSION_SCRIPT_FLAGS)$(LIBVIRT_ADMIN_SYMBOL_FILE) \
		-version-info $(LIBVIRT_VERSION_INFO) \
525 526 527
		$(LIBVIRT_NODELETE) \
		$(AM_LDFLAGS) \
		$(NULL)
M
Martin Kletzander 已提交
528 529

libvirt_admin_la_LIBADD = \
530
		libvirt.la \
M
Martin Kletzander 已提交
531 532 533
		$(CYGWIN_EXTRA_LIBADD)

libvirt_admin_la_CFLAGS = \
534 535 536
		$(AM_CFLAGS) \
		-I$(srcdir)/remote \
		-I$(srcdir)/rpc \
M
Martin Kletzander 已提交
537 538 539
		-I$(srcdir)/admin

libvirt_admin_la_CFLAGS += \
540 541
		$(XDR_CFLAGS) \
		$(CAPNG_CFLAGS) \
542
		$(YAJL_CFLAGS) \
543 544 545
		$(SSH2_CFLAGS) \
		$(SASL_CFLAGS) \
		$(GNUTLS_CFLAGS) \
546
		$(LIBSSH_CFLAGS)
M
Martin Kletzander 已提交
547 548

libvirt_admin_la_LIBADD += \
549
		$(CAPNG_LIBS) \
550
		$(YAJL_LIBS) \
551 552 553 554 555
		$(DEVMAPPER_LIBS) \
		$(LIBXML_LIBS) \
		$(SSH2_LIBS) \
		$(SASL_LIBS) \
		$(GNUTLS_LIBS) \
556
		$(LIBSSH_LIBS)
M
Martin Kletzander 已提交
557

558 559
ADMIN_SYM_FILES = $(srcdir)/libvirt_admin_private.syms

M
Martin Kletzander 已提交
560 561 562 563
if WITH_DTRACE_PROBES
libvirt_admin_la_LIBADD += libvirt_probes.lo
endif WITH_DTRACE_PROBES

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

585
if WITH_DTRACE_PROBES
586
libvirt_la_BUILT_LIBADD += libvirt_probes.lo
587
libvirt_la_DEPENDENCIES += libvirt_probes.lo libvirt_probes.o
588
nodist_libvirt_la_SOURCES = libvirt_probes.h
E
Eric Blake 已提交
589
if WITH_REMOTE
E
Eric Blake 已提交
590
nodist_libvirt_driver_remote_la_SOURCES = libvirt_probes.h
E
Eric Blake 已提交
591
endif WITH_REMOTE
592
DTRACE2SYSTEMTAP_FLAGS = --with-modules
593

594 595
BUILT_SOURCES += libvirt_probes.h libvirt_probes.stp libvirt_functions.stp

596 597

tapsetdir = $(datadir)/systemtap/tapset
598
tapset_DATA += libvirt_probes.stp libvirt_functions.stp
599

600
%_probes.h: %_probes.d
601 602
	$(AM_V_GEN)$(DTRACE) -o $@ -h -s $<

E
Eric Blake 已提交
603
.PRECIOUS: %_probes.o
604
%_probes.o: %_probes.d
605 606
	$(AM_V_GEN)$(DTRACE) -o $@ -G -s $<

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

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

627 628
%_probes.stp: %_probes.d $(srcdir)/dtrace2systemtap.pl \
		$(top_builddir)/config.status
629
	$(AM_V_GEN)$(PERL) -w $(srcdir)/dtrace2systemtap.pl \
630
	  $(DTRACE2SYSTEMTAP_FLAGS) $(bindir) $(sbindir) $(libdir) $< > $@
631

632
CLEANFILES += libvirt_probes.h libvirt_probes.o libvirt_probes.lo \
633
              libvirt_functions.stp libvirt_probes.stp
634
endif WITH_DTRACE_PROBES
635

636
EXTRA_DIST += libvirt_probes.d
637

C
Chris Lalancette 已提交
638
libvirt_qemu_la_SOURCES = libvirt-qemu.c
D
Daniel P. Berrange 已提交
639 640 641
libvirt_qemu_la_LDFLAGS = \
		$(VERSION_SCRIPT_FLAGS)$(LIBVIRT_QEMU_SYMBOL_FILE) \
		-version-info $(LIBVIRT_VERSION_INFO) \
642
		$(LIBVIRT_NODELETE) \
D
Daniel P. Berrange 已提交
643 644
		$(AM_LDFLAGS) \
		$(NULL)
645
libvirt_qemu_la_CFLAGS = $(AM_CFLAGS)
C
Chris Lalancette 已提交
646
libvirt_qemu_la_LIBADD = libvirt.la $(CYGWIN_EXTRA_LIBADD)
647

648
libvirt_lxc_la_SOURCES = libvirt-lxc.c
D
Daniel P. Berrange 已提交
649 650 651
libvirt_lxc_la_LDFLAGS = \
		$(VERSION_SCRIPT_FLAGS)$(LIBVIRT_LXC_SYMBOL_FILE) \
		-version-info $(LIBVIRT_VERSION_INFO) \
652
		$(LIBVIRT_NODELETE) \
D
Daniel P. Berrange 已提交
653 654
		$(AM_LDFLAGS) \
		$(NULL)
655 656 657
libvirt_lxc_la_CFLAGS = $(AM_CFLAGS)
libvirt_lxc_la_LIBADD = libvirt.la $(CYGWIN_EXTRA_LIBADD)

658 659
# Since virt-login-shell will be setuid, we must do everything
# we can to avoid linking to other libraries. Many of them do
J
Ján Tomko 已提交
660
# unsafe things in functions marked __attribute__((constructor)).
661 662 663 664
# 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
665
if WITH_SETUID_RPC_CLIENT
666 667
noinst_LTLIBRARIES += libvirt-setuid-rpc-client.la

668 669
libvirt_setuid_rpc_client_la_SOURCES = \
		util/viralloc.c \
670
		util/virarch.c \
671 672 673 674 675
		util/viratomic.c \
		util/viratomic.h \
		util/virbitmap.c \
		util/virbuffer.c \
		util/vircgroup.c \
676
		util/vircgroupbackend.c \
677 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
		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 \
737 738
		$(NULL)

739 740 741 742
libvirt_setuid_rpc_client_la_LDFLAGS = \
		$(AM_LDFLAGS) \
		$(LIBXML_LIBS) \
		$(SECDRIVER_LIBS) \
743
		$(NULL)
744 745 746 747 748 749 750
libvirt_setuid_rpc_client_la_CFLAGS = \
		-DLIBVIRT_SETUID_RPC_CLIENT \
		-I$(srcdir)/conf \
		-I$(srcdir)/rpc \
		$(AM_CFLAGS) \
		$(SECDRIVER_CFLAGS) \
		$(XDR_CFLAGS) \
751
		$(NULL)
752
endif WITH_SETUID_RPC_CLIENT
753

754
EXTRA_DIST += $(SYSCONF_FILES)
755 756

install-sysconfig:
E
Eric Blake 已提交
757
	$(MKDIR_P) $(DESTDIR)$(sysconfdir)/sysconfig
758 759 760
	for f in $(SYSCONF_FILES:%.sysconf=%) ; \
	do \
	  tgt=`basename $$f`; \
761
	  $(INSTALL_DATA) $(srcdir)/$$f.sysconf \
762
	      $(DESTDIR)$(sysconfdir)/sysconfig/$$tgt; \
763
	done
764 765

uninstall-sysconfig:
766 767 768 769 770
	for f in $(SYSCONF_FILES:%.sysconf=%) ; \
	do \
	  tgt=`basename $$f`; \
	  rm -f $(DESTDIR)$(sysconfdir)/sysconfig/$$tgt; \
	done
E
Eric Blake 已提交
771
	rmdir $(DESTDIR)$(sysconfdir)/sysconfig || :
772

773
SYSVINIT_FILES_IN += \
774 775 776 777 778 779
	locking/virtlockd.init.in \
	$(NULL)

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

EXTRA_DIST += $(SYSVINIT_FILES_IN)
780

781
LOGROTATE_FILES := $(LOGROTATE_FILES_IN:remote/%.in=%)
782 783 784 785

EXTRA_DIST += $(LOGROTATE_FILES_IN)

BUILT_SOURCES += $(LOGROTATE_FILES)
786
CLEANFILES += $(LOGROTATE_FILES)
787 788 789 790 791 792 793

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

794
if WITH_LIBVIRTD
795 796 797 798 799 800 801 802 803 804 805 806
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 || :
807 808 809 810
else ! WITH_LIBVIRTD
install-logrotate:
uninstall-logrotate:
endif ! WITH_LIBVIRTD
811

812
if LIBVIRT_INIT_SCRIPT_RED_HAT
813
install-init:: $(SYSVINIT_FILES) install-sysconfig
E
Eric Blake 已提交
814
	$(MKDIR_P) $(DESTDIR)$(sysconfdir)/rc.d/init.d
815 816 817 818
	for f in $(SYSVINIT_FILES:%.init=%) ; \
	do \
	  $(INSTALL_SCRIPT) $$f.init $(DESTDIR)$(sysconfdir)/rc.d/init.d/$$f; \
	done
819 820

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

824 825
BUILT_SOURCES += $(SYSVINIT_FILES)
DISTCLEANFILES += $(SYSVINIT_FILES)
826
else ! LIBVIRT_INIT_SCRIPT_RED_HAT
827 828
install-init::
uninstall-init::
829
endif ! LIBVIRT_INIT_SCRIPT_RED_HAT
830

831

832
%.8: %.8.in $(top_srcdir)/configure.ac
833
	$(AM_V_GEN)sed \
834 835 836
		-e 's|[@]sysconfdir[@]|$(sysconfdir)|g' \
		-e 's|[@]localstatedir[@]|$(localstatedir)|g' \
		< $< > $@-t && \
837 838
	mv $@-t $@

839
CLEANFILES += $(man8_MANS)
A
Andrea Bolognani 已提交
840
MAINTAINERCLEANFILES += $(MANINFILES)
841 842

EXTRA_DIST += \
843
        $(SYSTEMD_UNIT_FILES_IN) \
A
Andrea Bolognani 已提交
844 845
        $(PODFILES) \
        $(MANINFILES) \
846
        $(NULL)
847

848 849 850 851

if WITH_LIBVIRTD
if LIBVIRT_INIT_SCRIPT_SYSTEMD

852
SYSTEMD_UNIT_DIR = $(prefix)/lib/systemd/system
853
SYSTEMD_UNIT_FILES = $(notdir $(SYSTEMD_UNIT_FILES_IN:%.in=%))
854

855 856
BUILT_SOURCES += $(SYSTEMD_UNIT_FILES)
DISTCLEANFILES += $(SYSTEMD_UNIT_FILES)
857

858
install-systemd: $(SYSTEMD_UNIT_FILES) install-sysconfig
E
Eric Blake 已提交
859
	$(MKDIR_P) $(DESTDIR)$(SYSTEMD_UNIT_DIR)
860 861 862 863
	for f in $(SYSTEMD_UNIT_FILES); \
	do \
	  $(INSTALL_DATA) $$f $(DESTDIR)$(SYSTEMD_UNIT_DIR)/ ; \
	done
864 865

uninstall-systemd: uninstall-sysconfig
866
	rm -f $(SYSTEMD_UNIT_FILES:%=$(DESTDIR)$(SYSTEMD_UNIT_DIR)/%)
E
Eric Blake 已提交
867
	rmdir $(DESTDIR)$(SYSTEMD_UNIT_DIR) || :
868
else ! LIBVIRT_INIT_SCRIPT_SYSTEMD
869 870
install-systemd:
uninstall-systemd:
871 872
endif ! LIBVIRT_INIT_SCRIPT_SYSTEMD
else ! WITH_LIBVIRTD
873 874
install-systemd:
uninstall-systemd:
875
endif ! WITH_LIBVIRTD
876 877


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

908

909
EXTRA_DIST += dtrace2systemtap.pl
910

911

912
if WITH_LIBVIRTD
913 914
libexec_PROGRAMS += libvirt_iohelper
libvirt_iohelper_SOURCES = $(UTIL_IO_HELPER_SOURCES)
D
Daniel P. Berrange 已提交
915 916 917 918
libvirt_iohelper_LDFLAGS = \
		$(AM_LDFLAGS) \
		$(PIE_LDFLAGS) \
		$(NULL)
919 920
libvirt_iohelper_LDADD = \
		libvirt_util.la \
921
		../gnulib/lib/libgnu.la
922 923
if WITH_DTRACE_PROBES
libvirt_iohelper_LDADD += libvirt_probes.lo
924
endif WITH_DTRACE_PROBES
925

D
Daniel P. Berrange 已提交
926 927 928 929
libvirt_iohelper_CFLAGS = \
		$(AM_CFLAGS) \
		$(PIE_CFLAGS) \
		$(NULL)
930 931


932
endif WITH_LIBVIRTD
933

934

J
Jamie Strandboge 已提交
935

936
if WITH_NSS
937 938
noinst_LTLIBRARIES += libvirt-nss.la

939 940 941 942 943 944 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
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 \
988 989
		$(NULL)

990 991 992
libvirt_nss_la_CFLAGS = \
		-DLIBVIRT_NSS \
		$(AM_CFLAGS) \
993
		$(YAJL_CFLAGS) \
994
		$(NULL)
995 996
libvirt_nss_la_LDFLAGS = \
		$(AM_LDFLAGS) \
997 998 999
		$(NULL)

libvirt_nss_la_LIBADD = \
1000
		$(YAJL_LIBS) \
1001
		$(NULL)
1002
endif WITH_NSS
1003 1004


1005
install-data-local: install-init install-systemd install-upstart \
1006
		install-sysctl install-polkit install-sasl \
1007
		install-logrotate $(INSTALL_DATA_DIRS:%=install-data-%)
1008 1009
	$(MKDIR_P) "$(DESTDIR)$(localstatedir)/cache/libvirt"
	$(MKDIR_P) "$(DESTDIR)$(localstatedir)/lib/libvirt/images"
1010
	$(MKDIR_P) "$(DESTDIR)$(localstatedir)/lib/libvirt/filesystems"
1011
	$(MKDIR_P) "$(DESTDIR)$(localstatedir)/lib/libvirt/boot"
1012

1013
uninstall-local:: uninstall-init uninstall-systemd uninstall-upstart \
1014
		uninstall-sysctl uninstall-polkit uninstall-sasl \
1015
		uninstall-logrotate $(INSTALL_DATA_DIRS:%=uninstall-data-%)
1016 1017
	rmdir "$(DESTDIR)$(localstatedir)/cache/libvirt" ||:
	rmdir "$(DESTDIR)$(localstatedir)/lib/libvirt/images" ||:
1018
	rmdir "$(DESTDIR)$(localstatedir)/lib/libvirt/filesystems" ||:
1019 1020
	rmdir "$(DESTDIR)$(localstatedir)/lib/libvirt/boot" ||:
	rmdir "$(DESTDIR)$(localstatedir)/lib/libvirt" ||:
R
Richard W.M. Jones 已提交
1021

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