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 xen/Makefile.inc.am
119
include xenapi/Makefile.inc.am
120
include vz/Makefile.inc.am
121
include lxc/Makefile.inc.am
122
include interface/Makefile.inc.am
123
include network/Makefile.inc.am
124
include nwfilter/Makefile.inc.am
125
include node_device/Makefile.inc.am
126
include secret/Makefile.inc.am
127
include storage/Makefile.inc.am
128
include remote/Makefile.inc.am
129

130

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

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

144

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

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

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

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

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

L
Lai Jiangshan 已提交
156

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

185

186

M
Martin Kletzander 已提交
187

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

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

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

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

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

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

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

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

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

EXTRA_DIST += check-drivername.pl

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

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

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

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

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

363 364


365

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

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

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

376

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

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

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

C
Chris Lalancette 已提交
396

397

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

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

406

407

408

409

410

411

412 413
check-local: check-augeas

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

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

419

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

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

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

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

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

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

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

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

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

486
BUILT_SOURCES += $(GENERATED_SYM_FILES)
487

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

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

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

523

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

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

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

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

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

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

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

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

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

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

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

602 603

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

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

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

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

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

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

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

642
EXTRA_DIST += libvirt_probes.d
643

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

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

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

672 673
libvirt_setuid_rpc_client_la_SOURCES = \
		util/viralloc.c \
674
		util/virarch.c \
675
		util/virarptable.c \
676 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 737 738 739 740
		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 \
741 742
		$(NULL)

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

758
EXTRA_DIST += $(SYSCONF_FILES)
759 760

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

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

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

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

EXTRA_DIST += $(SYSVINIT_FILES_IN)
784

785
LOGROTATE_FILES := $(LOGROTATE_FILES_IN:remote/%.in=%)
786 787 788 789

EXTRA_DIST += $(LOGROTATE_FILES_IN)

BUILT_SOURCES += $(LOGROTATE_FILES)
790
CLEANFILES += $(LOGROTATE_FILES)
791 792 793 794 795 796 797

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

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

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

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

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

835

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

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

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

852 853 854 855

if WITH_LIBVIRTD
if LIBVIRT_INIT_SCRIPT_SYSTEMD

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

859 860
BUILT_SOURCES += $(SYSTEMD_UNIT_FILES)
DISTCLEANFILES += $(SYSTEMD_UNIT_FILES)
861

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

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


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

912

913
EXTRA_DIST += dtrace2systemtap.pl
914

915

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

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


936
endif WITH_LIBVIRTD
937

938

J
Jamie Strandboge 已提交
939

940
if WITH_NSS
941 942
noinst_LTLIBRARIES += libvirt-nss.la

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 988 989 990 991
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 \
992 993
		$(NULL)

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

1003 1004
libvirt_nss_la_LIBADD = \
		$(YAJL_LIBS) \
1005
		$(NULL)
1006
endif WITH_NSS
1007 1008


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

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

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