Makefile.am 28.2 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.
28
AM_CPPFLAGS =	-I../gnulib/lib \
29 30 31 32 33 34 35 36 37
		-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
		$(NULL)
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 76
INSTALL_DATA_LOCAL =
UNINSTALL_LOCAL =
77
libvirt_la_BUILT_LIBADD =
78 79 80
SYM_FILES =
USED_SYM_FILES =
GENERATED_SYM_FILES =
81 82 83 84 85 86 87
augeas_DATA =
augeastest_DATA =
conf_DATA =
AUGEAS_DIRS =
if WITH_DTRACE_PROBES
tapset_DATA =
endif WITH_DTRACE_PROBES
88 89
libexec_PROGRAMS =
RPC_PROBE_FILES =
90 91 92 93 94 95 96 97 98
LOGROTATE_FILES_IN =
PODFILES =
MANINFILES =
SYSTEMD_UNIT_FILES_IN =
SYSVINIT_FILES_IN =
UPSTART_FILES =
SYSCONF_FILES =
sbin_PROGRAMS =
man8_MANS =
99
DRIVER_SOURCES =
100
man7_MANS =
101

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

135

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

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

149

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

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

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

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

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

L
Lai Jiangshan 已提交
161

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

190

191

M
Martin Kletzander 已提交
192

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

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

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

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

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

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

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

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

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

EXTRA_DIST += check-drivername.pl

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

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

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

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

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

368 369 370 371 372 373 374

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

375

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

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

386 387
# All .syms files should be placed in exactly one of these three lists,
# depending on whether they are stored in git and/or used in the build.
388 389 390
SYM_FILES += $(USED_SYM_FILES)
USED_SYM_FILES += $(srcdir)/libvirt_private.syms
GENERATED_SYM_FILES += \
391
	libvirt.syms libvirt.def libvirt_qemu.def libvirt_lxc.def \
392
	libvirt_admin.syms libvirt_admin.def \
393
	$(NULL)
394

C
Chris Lalancette 已提交
395

396

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

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

405

406

407

408

409

410

411 412
check-local: check-augeas

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

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

418

419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437
#
# Build our version script.  This is composed of three parts:
#
# 1. libvirt_public.syms - public API.  These functions are always
# present in the library and should never change incompatibly.
#
# 2. libvirt_private.syms - private API.  These symbols are private and
# semantics may change on every release, hence the version number is
# spliced in at build time. This ensures that if libvirtd, virsh, or a
# driver module was built against one libvirt release, it will refuse to
# load with another where symbols may have same names but different
# semantics. Such symbols should never be visible in an (installed)
# public header file.
#
# 3. libvirt_*.syms - dynamic private API.  Like libvirt_private.syms,
# except that build options (such as --enable-debug) can mean these
# symbols aren't present at all.
#

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

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

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

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

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

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

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

479
BUILT_SOURCES += $(GENERATED_SYM_FILES)
480

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

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

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

516

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

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

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

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

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

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

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

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

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

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

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

597 598

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

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

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

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

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

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

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

637
EXTRA_DIST += libvirt_probes.d
638

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

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

659 660
# 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 已提交
661
# unsafe things in functions marked __attribute__((constructor)).
662 663 664 665
# 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
666
if WITH_SETUID_RPC_CLIENT
667 668
noinst_LTLIBRARIES += libvirt-setuid-rpc-client.la

669 670
libvirt_setuid_rpc_client_la_SOURCES = \
		util/viralloc.c \
671
		util/virarch.c \
672 673 674 675 676
		util/viratomic.c \
		util/viratomic.h \
		util/virbitmap.c \
		util/virbuffer.c \
		util/vircgroup.c \
677
		util/vircgroupbackend.c \
678
		util/vircgroupv1.c \
P
Pavel Hrdina 已提交
679
		util/vircgroupv2.c \
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
		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 \
740 741
		$(NULL)

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

757
EXTRA_DIST += $(SYSCONF_FILES)
758 759

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

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

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

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

EXTRA_DIST += $(SYSVINIT_FILES_IN)
783

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

EXTRA_DIST += $(LOGROTATE_FILES_IN)

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

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

797
if WITH_LIBVIRTD
798 799 800 801 802 803 804 805 806 807 808 809
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 || :
810 811 812 813

INSTALL_DATA_LOCAL += install-logrotate
UNINSTALL_LOCAL += uninstall-logrotate
endif WITH_LIBVIRTD
814

815
if WITH_LIBVIRTD
816
if LIBVIRT_INIT_SCRIPT_RED_HAT
A
Andrea Bolognani 已提交
817 818
initdir = $(sysconfdir)/rc.d/init.d

819
install-init:: $(SYSVINIT_FILES) install-sysconfig
A
Andrea Bolognani 已提交
820
	$(MKDIR_P) $(DESTDIR)$(initdir)
821 822
	for f in $(SYSVINIT_FILES:%.init=%) ; \
	do \
A
Andrea Bolognani 已提交
823
	  $(INSTALL_SCRIPT) $$f.init $(DESTDIR)$(initdir)/$$f; \
824
	done
825 826

uninstall-init:: uninstall-sysconfig
A
Andrea Bolognani 已提交
827 828
	rm -f $(SYSVINIT_FILES:%.init=$(DESTDIR)$(initdir)/%)
	rmdir $(DESTDIR)$(initdir) || :
829

830 831
BUILT_SOURCES += $(SYSVINIT_FILES)
DISTCLEANFILES += $(SYSVINIT_FILES)
832 833 834 835 836

INSTALL_DATA_LOCAL += install-init
UNINSTALL_LOCAL += uninstall-init
endif LIBVIRT_INIT_SCRIPT_RED_HAT
endif WITH_LIBVIRTD
837

838

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

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

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

855 856 857 858

if WITH_LIBVIRTD
if LIBVIRT_INIT_SCRIPT_SYSTEMD

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

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

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

uninstall-systemd: uninstall-sysconfig
873
	rm -f $(SYSTEMD_UNIT_FILES:%=$(DESTDIR)$(SYSTEMD_UNIT_DIR)/%)
E
Eric Blake 已提交
874
	rmdir $(DESTDIR)$(SYSTEMD_UNIT_DIR) || :
875 876 877 878 879

INSTALL_DATA_LOCAL += install-systemd
UNINSTALL_LOCAL += uninstall-systemd
endif LIBVIRT_INIT_SCRIPT_SYSTEMD
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
	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 || :
903 904 905 906 907

INSTALL_DATA_LOCAL += install-upstart
UNINSTALL_LOCAL += uninstall-upstart
endif LIBVIRT_INIT_SCRIPT_UPSTART
endif WITH_LIBVIRTD
908

909

910
EXTRA_DIST += dtrace2systemtap.pl
911

912

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

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


933
endif WITH_LIBVIRTD
934

935

J
Jamie Strandboge 已提交
936

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

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

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

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


1006 1007
install-data-local: $(INSTALL_DATA_LOCAL) \
		$(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 1014
uninstall-local:: $(UNINSTALL_LOCAL) \
		$(INSTALL_DATA_DIRS:%=uninstall-data-%)
1015 1016
	rmdir "$(DESTDIR)$(localstatedir)/cache/libvirt" ||:
	rmdir "$(DESTDIR)$(localstatedir)/lib/libvirt/images" ||:
1017
	rmdir "$(DESTDIR)$(localstatedir)/lib/libvirt/filesystems" ||:
1018 1019
	rmdir "$(DESTDIR)$(localstatedir)/lib/libvirt/boot" ||:
	rmdir "$(DESTDIR)$(localstatedir)/lib/libvirt" ||:
R
Richard W.M. Jones 已提交
1020

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