Makefile.am 40.7 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

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

125

E
Eric Blake 已提交
126 127
THREAD_LIBS = $(LIB_PTHREAD) $(LTLIBMULTITHREAD)

J
Jim Fehlig 已提交
128
SECDRIVER_CFLAGS =
129 130
SECDRIVER_LIBS =
if WITH_SECDRIVER_SELINUX
J
Jim Fehlig 已提交
131
SECDRIVER_CFLAGS += $(SELINUX_CFLAGS)
132
SECDRIVER_LIBS += $(SELINUX_LIBS)
133
endif WITH_SECDRIVER_SELINUX
134
if WITH_SECDRIVER_APPARMOR
J
Jim Fehlig 已提交
135
SECDRIVER_CFLAGS += $(APPARMOR_CFLAGS)
136
SECDRIVER_LIBS += $(APPARMOR_LIBS)
137
endif WITH_SECDRIVER_APPARMOR
138

139

140
lib_LTLIBRARIES = libvirt.la libvirt-qemu.la libvirt-lxc.la
141

142
moddir = $(libdir)/libvirt/connection-driver
143

A
Amy Griffis 已提交
144
confdir = $(sysconfdir)/libvirt
145
conf_DATA += libvirt.conf libvirt-admin.conf
146

147 148 149 150
augeasdir = $(datadir)/augeas/lenses

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

151 152
# These files are not related to driver APIs. Simply generic
# helper APIs for various purposes
153 154 155 156 157 158 159 160 161 162 163 164
UTIL_SOURCES = \
		util/viralloc.c util/viralloc.h \
		util/virarch.h util/virarch.c \
		util/viratomic.h util/viratomic.c \
		util/viraudit.c util/viraudit.h \
		util/virauth.c util/virauth.h \
		util/virauthconfig.c util/virauthconfig.h \
		util/virbitmap.c util/virbitmap.h \
		util/virbuffer.c util/virbuffer.h \
		util/virperf.c util/virperf.h \
		util/vircgroup.c util/vircgroup.h util/vircgrouppriv.h \
		util/virclosecallbacks.c util/virclosecallbacks.h \
165
		util/vircommand.c util/vircommand.h util/vircommandpriv.h \
166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185
		util/virconf.c util/virconf.h \
		util/vircrypto.c util/vircrypto.h \
		util/virdbus.c util/virdbus.h util/virdbuspriv.h \
		util/virdnsmasq.c util/virdnsmasq.h \
		util/virebtables.c util/virebtables.h \
		util/virendian.h \
		util/virerror.c util/virerror.h \
		util/virevent.c util/virevent.h \
		util/vireventpoll.c util/vireventpoll.h \
		util/virfcp.c util/virfcp.h \
		util/virfdstream.c util/virfdstream.h \
		util/virfile.c util/virfile.h \
		util/virfirewall.c util/virfirewall.h \
		util/virfirewallpriv.h \
		util/virfirmware.c util/virfirmware.h \
		util/virgettext.c util/virgettext.h \
		util/virgic.c util/virgic.h \
		util/virhash.c util/virhash.h \
		util/virhashcode.c util/virhashcode.h \
		util/virhook.c util/virhook.h \
186
		util/virhostcpu.c util/virhostcpu.h util/virhostcpupriv.h \
187 188 189 190 191 192 193 194 195 196 197 198 199 200 201
		util/virhostdev.c util/virhostdev.h \
		util/virhostmem.c util/virhostmem.h \
		util/viridentity.c util/viridentity.h \
		util/virinitctl.c util/virinitctl.h \
		util/viriptables.c util/viriptables.h \
		util/viriscsi.c util/viriscsi.h \
		util/virjson.c util/virjson.h \
		util/virkeycode.c util/virkeycode.h \
		util/virkeyfile.c util/virkeyfile.h \
		util/virlease.c util/virlease.h \
		util/virlockspace.c util/virlockspace.h \
		util/virlog.c util/virlog.h \
		util/virmacaddr.h util/virmacaddr.c \
		util/virmacmap.h util/virmacmap.c \
		util/virnetdev.h util/virnetdev.c \
202
		util/virnetdevbandwidth.h util/virnetdevbandwidth.c \
203 204 205
		util/virnetdevbridge.h util/virnetdevbridge.c \
		util/virnetdevip.h util/virnetdevip.c \
		util/virnetdevmacvlan.c util/virnetdevmacvlan.h \
206
		util/virnetdevmidonet.h util/virnetdevmidonet.c \
A
Ansis Atteka 已提交
207
		util/virnetdevopenvswitch.h util/virnetdevopenvswitch.c \
208 209 210
		util/virnetdevtap.h util/virnetdevtap.c \
		util/virnetdevveth.h util/virnetdevveth.c \
		util/virnetdevvlan.h util/virnetdevvlan.c \
211
		util/virnetdevvportprofile.h util/virnetdevvportprofile.c \
212 213 214 215 216 217 218 219
		util/virnetlink.c util/virnetlink.h \
		util/virnodesuspend.c util/virnodesuspend.h \
		util/virkmod.c util/virkmod.h \
		util/virnuma.c util/virnuma.h \
		util/virobject.c util/virobject.h \
		util/virpci.c util/virpci.h \
		util/virpidfile.c util/virpidfile.h \
		util/virpolkit.c util/virpolkit.h \
D
Daniel P. Berrange 已提交
220
		util/virportallocator.c util/virportallocator.h \
221 222 223 224
		util/virprobe.h \
		util/virprocess.c util/virprocess.h \
		util/virqemu.c util/virqemu.h \
		util/virrandom.h util/virrandom.c \
225
		util/virresctrl.h util/virresctrl.c util/virresctrlpriv.h \
226 227 228 229 230 231 232 233
		util/virrotatingfile.h util/virrotatingfile.c \
		util/virscsi.c util/virscsi.h \
		util/virscsihost.c util/virscsihost.h \
		util/virscsivhost.c util/virscsivhost.h \
		util/virseclabel.c util/virseclabel.h \
		util/virsecret.c util/virsecret.h \
		util/virsexpr.c util/virsexpr.h \
		util/virsocketaddr.h util/virsocketaddr.c \
234
		util/virstorageencryption.c util/virstorageencryption.h \
235
		util/virstoragefile.c util/virstoragefile.h \
236
		util/virstoragefilebackend.c util/virstoragefilebackend.h \
237 238
		util/virstring.h util/virstring.c \
		util/virsysinfo.c util/virsysinfo.h util/virsysinfopriv.h \
239
		util/virsystemd.c util/virsystemd.h util/virsystemdpriv.h \
240 241 242 243 244 245 246 247 248 249 250 251 252 253 254
		util/virthread.c util/virthread.h \
		util/virthreadjob.c util/virthreadjob.h \
		util/virthreadpool.c util/virthreadpool.h \
		util/virtime.h util/virtime.c \
		util/virtpm.h util/virtpm.c \
		util/virtypedparam.c util/virtypedparam.h \
		util/virusb.c util/virusb.h \
		util/viruri.h util/viruri.c \
		util/virutil.c util/virutil.h \
		util/viruuid.c util/viruuid.h \
		util/virvhba.c util/virvhba.h \
		util/virxdrdefs.h \
		util/virxml.c util/virxml.h \
		util/virmdev.c util/virmdev.h \
		util/virfilecache.c util/virfilecache.h \
255
		$(NULL)
L
Lai Jiangshan 已提交
256

257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281
EXTRA_DIST += \
	$(srcdir)/keycodemapdb/data/keymaps.csv \
	$(srcdir)/keycodemapdb/tools/keymap-gen \
	$(NULL)

util/virkeycodetable_%.h: $(srcdir)/keycodemapdb/data/keymaps.csv \
			$(srcdir)/keycodemapdb/tools/keymap-gen Makefile.am
	$(AM_V_GEN)export NAME=`echo $@ | sed -e 's,util/virkeycodetable_,,' \
					      -e 's,\.h,,'` && \
		$(MKDIR_P) util/ && \
		$(PYTHON) $(srcdir)/keycodemapdb/tools/keymap-gen \
			--lang stdc --varname virKeyCodeTable_$$NAME code-table \
			$(srcdir)/keycodemapdb/data/keymaps.csv $$NAME > $@-tmp && \
		mv $@-tmp $@ || rm -f $@-tmp

util/virkeynametable_%.h: $(srcdir)/keycodemapdb/data/keymaps.csv \
			$(srcdir)/keycodemapdb/tools/keymap-gen Makefile.am
	$(AM_V_GEN)export NAME=`echo $@ | sed -e 's,util/virkeynametable_,,' \
					      -e 's,\.h,,'` && \
		$(MKDIR_P) util/ && \
		$(PYTHON) $(srcdir)/keycodemapdb/tools/keymap-gen \
			--lang stdc --varname virKeyNameTable_$$NAME name-table \
			$(srcdir)/keycodemapdb/data/keymaps.csv $$NAME > $@-tmp && \
		mv $@-tmp $@ || rm -f $@-tmp

282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311
util/virkeycode-%.pod: $(srcdir)/keycodemapdb/data/keymaps.csv \
			$(srcdir)/keycodemapdb/tools/keymap-gen Makefile.am
	$(AM_V_GEN)export NAME=`echo $@ | sed -e 's,util/virkeycode-,,' \
					      -e 's,\.pod,,'` && \
		$(MKDIR_P) util/ && \
		$(PYTHON) $(srcdir)/keycodemapdb/tools/keymap-gen \
		--lang pod --varname "Key code values for $$NAME" code-docs \
		$(srcdir)/keycodemapdb/data/keymaps.csv $$NAME > \
			$@-tmp && mv $@-tmp $@ || rm $@-tmp

util/virkeyname-%.pod: $(srcdir)/keycodemapdb/data/keymaps.csv \
			$(srcdir)/keycodemapdb/tools/keymap-gen Makefile.am
	$(AM_V_GEN)export NAME=`echo $@ | sed -e 's,util/virkeyname-,,' \
					      -e 's,\.pod,,'` && \
		$(MKDIR_P) util/ && \
		$(PYTHON) $(srcdir)/keycodemapdb/tools/keymap-gen \
		--lang pod --varname "Key name values for $$NAME" name-docs \
		$(srcdir)/keycodemapdb/data/keymaps.csv $$NAME > \
			$@-tmp && mv $@-tmp $@ || rm $@-tmp

util/virkey%.7: util/virkey%.pod
	$(AM_V_GEN)$(POD2MAN) --section=7 $< $@-t1 && \
	if grep 'POD ERROR' $@-t1; then rm $@-t1; exit 1; fi && \
	sed \
		-e 's|SYSCONFDIR|\@sysconfdir\@|g' \
		-e 's|LOCALSTATEDIR|\@localstatedir\@|g' \
		< $@-t1 > $@-t2 && \
	rm -f $@-t1 && \
	mv $@-t2 $@

312
KEYCODES = linux osx atset1 atset2 atset3 xtkbd usb win32 rfb
313 314 315 316 317 318 319
KEYNAMES = linux osx win32

KEYTABLES = \
	$(KEYCODES:%=util/virkeycodetable_%.h) \
	$(KEYNAMES:%=util/virkeynametable_%.h) \
	$(NULL)

320 321 322 323 324 325
KEYPODS = $(KEYCODES:%=util/virkeycode-%.pod) \
	  $(KEYNAMES:%=util/virkeyname-%.pod)
KEYMANS = $(KEYPODS:%.pod=%.7)

man7_MANS = $(KEYMANS)

326 327 328
UTIL_SOURCES += $(KEYTABLES)
BUILT_SOURCES += $(KEYTABLES)
MAINTAINERCLEANFILES += $(KEYTABLES)
329
CLEANFILES += $(KEYMANS) $(KEYPODS)
L
Lai Jiangshan 已提交
330

331
# Internal generic driver infrastructure
O
Osier Yang 已提交
332
DATATYPES_SOURCES = datatypes.h datatypes.c
333
DRIVER_SOURCES += \
334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356
		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 \
357
		$(NULL)
358

359

360

M
Martin Kletzander 已提交
361 362 363
ADMIN_PROTOCOL = $(srcdir)/admin/admin_protocol.x

ADMIN_PROTOCOL_GENERATED = \
364 365
		admin/admin_protocol.c \
		admin/admin_protocol.h \
366 367 368
		admin/admin_client.h \
		admin/admin_server_dispatch_stubs.h \
		$(NULL)
369 370 371 372 373 374

admin/admin_client.h: $(srcdir)/rpc/gendispatch.pl \
		$(ADMIN_PROTOCOL) Makefile.am
	$(AM_V_GEN)$(PERL) -w $(srcdir)/rpc/gendispatch.pl --mode=client \
	  admin ADMIN $(ADMIN_PROTOCOL) \
	  > $(srcdir)/admin/admin_client.h
M
Martin Kletzander 已提交
375

376 377 378 379 380 381
admin/admin_server_dispatch_stubs.h: $(srcdir)/rpc/gendispatch.pl \
		$(ADMIN_PROTOCOL) Makefile.am
	$(AM_V_GEN)$(PERL) -w $(srcdir)/rpc/gendispatch.pl --mode=server \
	  admin ADMIN $(ADMIN_PROTOCOL) \
	  > $(srcdir)/admin/admin_server_dispatch_stubs.h

M
Martin Kletzander 已提交
382 383 384 385
EXTRA_DIST += $(ADMIN_PROTOCOL) $(ADMIN_PROTOCOL_GENERATED)
BUILT_SOURCES += $(ADMIN_PROTOCOL_GENERATED)
MAINTAINERCLEANFILES += $(ADMIN_PROTOCOL_GENERATED)

386 387 388 389 390 391 392 393 394 395
# 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
396 397 398 399

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

410
# Depending on configure options, libtool creates one or both of
E
Eric Blake 已提交
411 412
# remote/{,.libs/}libvirt_driver_remote_la-remote_protocol.o.  We want
# the newest of the two, in case configure options changed and a stale
413
# file is left around from an earlier build.
414 415 416
# 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.
417
PDWTAGS = \
A
Andrea Bolognani 已提交
418
	$(AM_V_GEN)if $(CC) -v 2>&1 | grep -q clang; then \
419 420 421 422
	   echo 'WARNING: skipping pdwtags test with Clang' >&2; \
	   exit 0; \
	fi; \
	if (pdwtags --help) > /dev/null 2>&1; then \
423 424 425 426 427 428 429
	  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?; \
430
	    echo 'WARNING: pdwtags appears broken; skipping the $@ test' >&2;\
431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448
	  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) {' \
449
		-e '    warn "WARNING: your pdwtags program is too old\n";' \
450
		-e '    warn "WARNING: skipping the $@ test\n";' \
451
		-e '    warn "WARNING: install dwarves-1.3 or newer\n";' \
452 453 454 455
		-e '    exit 8;' \
		-e '  }' \
		-e '}' \
		< $(@F)-t1 > $(@F)-t3; \
456
	    case $$? in 8) rm -f $(@F)-t?; exit 0;; 0) ;; *) exit 1;; esac;\
457 458 459 460
	    diff -u $(@)s $(@F)-t3; st=$$?; rm -f $(@F)-t?; exit $$st; \
	  fi; \
	else \
	  echo 'WARNING: you lack pdwtags; skipping the $@ test' >&2; \
461
	  echo 'WARNING: install the dwarves package to get pdwtags' >&2; \
462
	fi
463

464
# .libs/libvirt.so is built by libtool as a side-effect of the Makefile
465 466
# rule for libvirt.la.  However, checking symbols relies on Linux ELF layout
if WITH_LINUX
467 468 469
check-symfile: libvirt.syms libvirt.la
	$(AM_V_GEN)$(PERL) $(srcdir)/check-symfile.pl libvirt.syms \
	  .libs/libvirt.so
470 471 472
check-admin-symfile: libvirt_admin.syms libvirt-admin.la
	$(AM_V_GEN)$(PERL) $(srcdir)/check-symfile.pl libvirt_admin.syms \
	  .libs/libvirt-admin.so
473
else ! WITH_LINUX
474
check-symfile:
475
check-admin-symfile:
476
endif ! WITH_LINUX
477
check-symsorting:
478
	$(AM_V_GEN)$(PERL) $(srcdir)/check-symsorting.pl \
479
		$(srcdir) $(SYM_FILES)
480 481 482
check-admin-symsorting:
	$(AM_V_GEN)$(PERL) $(srcdir)/check-symsorting.pl \
		$(srcdir) $(ADMIN_SYM_FILES)
J
Jiri Denemark 已提交
483
EXTRA_DIST += check-symfile.pl check-symsorting.pl
484

E
Eric Blake 已提交
485
# Keep this list synced with RPC_PROBE_FILES
486 487
PROTOCOL_STRUCTS = \
	$(srcdir)/remote_protocol-structs \
488
	$(srcdir)/lxc_protocol-structs \
489
	$(srcdir)/qemu_protocol-structs \
J
Jiri Denemark 已提交
490
	$(srcdir)/virnetprotocol-structs \
E
Eric Blake 已提交
491 492 493
	$(srcdir)/virkeepaliveprotocol-structs \
	$(srcdir)/lxc_monitor_protocol-structs \
	$(srcdir)/lock_protocol-structs \
M
Martin Kletzander 已提交
494
	$(srcdir)/admin_protocol-structs \
E
Eric Blake 已提交
495 496
	$(NULL)

497
if WITH_REMOTE
498 499
check-protocol: $(PROTOCOL_STRUCTS) $(PROTOCOL_STRUCTS:structs=struct)

500 501
# 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.
502 503 504
$(srcdir)/remote_protocol-struct \
	$(srcdir)/qemu_protocol-struct \
	$(srcdir)/lxc_protocol-struct: \
E
Eric Blake 已提交
505
		$(srcdir)/%-struct: remote/libvirt_driver_remote_la-%.lo
506
	$(PDWTAGS)
507
$(srcdir)/virnetprotocol-struct $(srcdir)/virkeepaliveprotocol-struct: \
E
Eric Blake 已提交
508
		$(srcdir)/%-struct: rpc/libvirt_net_rpc_la-%.lo
509
	$(PDWTAGS)
E
Eric Blake 已提交
510
$(srcdir)/lxc_monitor_protocol-struct: \
E
Eric Blake 已提交
511
		$(srcdir)/%-struct: lxc/libvirt_driver_lxc_impl_la-%.lo
E
Eric Blake 已提交
512 513
	$(PDWTAGS)
$(srcdir)/lock_protocol-struct: \
E
Eric Blake 已提交
514
		$(srcdir)/%-struct: locking/lockd_la-%.lo
E
Eric Blake 已提交
515
	$(PDWTAGS)
M
Martin Kletzander 已提交
516 517 518
$(srcdir)/admin_protocol-struct: \
		$(srcdir)/%-struct: admin/libvirt_admin_la-%.lo
	$(PDWTAGS)
E
Eric Blake 已提交
519

520
else !WITH_REMOTE
521 522 523
# The $(PROTOCOL_STRUCTS) files must live in git, because they cannot be
# re-generated when configured --without-remote.
check-protocol:
524
endif !WITH_REMOTE
J
Jiri Denemark 已提交
525
EXTRA_DIST += $(PROTOCOL_STRUCTS)
526 527 528 529 530

check-drivername:
	$(AM_V_GEN)$(PERL) $(srcdir)/check-drivername.pl \
		$(srcdir)/driver.h \
		$(srcdir)/libvirt_public.syms \
531
		$(srcdir)/libvirt_admin_public.syms \
532 533 534 535 536
		$(srcdir)/libvirt_qemu.syms \
		$(srcdir)/libvirt_lxc.syms

EXTRA_DIST += check-drivername.pl

537 538
check-driverimpls:
	$(AM_V_GEN)$(PERL) $(srcdir)/check-driverimpls.pl \
539
		$(filter /%,$(DRIVER_SOURCE_FILES)) \
E
Eric Blake 已提交
540 541 542
		$(filter $(srcdir)/%,$(DRIVER_SOURCE_FILES)) \
		$(addprefix $(srcdir)/,$(filter-out $(srcdir)/%, \
			$(filter-out /%,$(DRIVER_SOURCE_FILES))))
543

544 545
check-aclrules:
	$(AM_V_GEN)$(PERL) $(srcdir)/check-aclrules.pl \
E
Eric Blake 已提交
546
		$(REMOTE_PROTOCOL) \
547
		$(addprefix $(srcdir)/,$(filter-out /%,$(STATEFUL_DRIVER_SOURCE_FILES)))
548

549 550 551 552 553
check-aclperms:
	$(AM_V_GEN)$(PERL) $(srcdir)/check-aclperms.pl \
		$(srcdir)/access/viraccessperm.h \
		$(srcdir)/access/viraccessperm.c

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

556
check-local: check-protocol check-symfile check-symsorting \
557
	check-drivername check-driverimpls check-aclrules \
558
	check-aclperms check-admin-symfile check-admin-symsorting
559
.PHONY: check-protocol $(PROTOCOL_STRUCTS:structs=struct)
560

561 562 563



564
UTIL_IO_HELPER_SOURCES = \
565 566
		util/iohelper.c

567 568


569
VMX_SOURCES = \
570 571
		vmx/vmx.c vmx/vmx.h

572

J
Jiri Denemark 已提交
573 574
pkgdata_DATA =	cpu/cpu_map.xml

E
Eric Blake 已提交
575
EXTRA_DIST +=	$(pkgdata_DATA)
576

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

583
noinst_LTLIBRARIES += libvirt_util.la
584
libvirt_la_LIBADD = $(libvirt_la_BUILT_LIBADD)
585
libvirt_la_BUILT_LIBADD += libvirt_util.la
586
libvirt_util_la_SOURCES = \
587
		$(UTIL_SOURCES)
588
libvirt_util_la_CFLAGS = $(CAPNG_CFLAGS) $(YAJL_CFLAGS) $(LIBNL_CFLAGS) \
589
		$(AM_CFLAGS) $(AUDIT_CFLAGS) $(DEVMAPPER_CFLAGS) \
590
		$(DBUS_CFLAGS) $(LDEXP_LIBM) $(NUMACTL_CFLAGS) \
591
		$(POLKIT_CFLAGS) $(GNUTLS_CFLAGS) $(ACL_CFLAGS)
592
libvirt_util_la_LIBADD = $(CAPNG_LIBS) $(YAJL_LIBS) $(LIBNL_LIBS) \
593
		$(THREAD_LIBS) $(AUDIT_LIBS) $(DEVMAPPER_LIBS) \
594
		$(LIB_CLOCK_GETTIME) $(DBUS_LIBS) $(WIN32_EXTRA_LIBS) $(LIBXML_LIBS) \
M
Michal Privoznik 已提交
595
		$(SECDRIVER_LIBS) $(NUMACTL_LIBS) $(ACL_LIBS) \
596
		$(POLKIT_LIBS) $(GNUTLS_LIBS)
597

598

599 600 601 602
if WITH_VMX
noinst_LTLIBRARIES += libvirt_vmx.la
libvirt_la_BUILT_LIBADD += libvirt_vmx.la
libvirt_vmx_la_CFLAGS = \
603
		-I$(srcdir)/conf $(AM_CFLAGS)
604
libvirt_vmx_la_SOURCES = $(VMX_SOURCES)
605
endif WITH_VMX
606

607

608
noinst_LTLIBRARIES += libvirt_driver.la
609
libvirt_la_BUILT_LIBADD += libvirt_driver.la
610
libvirt_driver_la_SOURCES = $(DRIVER_SOURCES)
611

612
libvirt_driver_la_CFLAGS = \
613
		$(GNUTLS_CFLAGS) $(CURL_CFLAGS) $(XDR_CFLAGS) \
614
		-I$(srcdir)/conf $(AM_CFLAGS)
615
libvirt_driver_la_LIBADD = \
616
		$(GNUTLS_LIBS) $(CURL_LIBS) $(DLOPEN_LIBS)
617

618 619
# 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.
620 621 622
SYM_FILES += $(USED_SYM_FILES)
USED_SYM_FILES += $(srcdir)/libvirt_private.syms
GENERATED_SYM_FILES += \
623
	libvirt.syms libvirt.def libvirt_qemu.def libvirt_lxc.def \
624
	libvirt_admin.syms libvirt_admin.def \
625
	$(NULL)
626

C
Chris Lalancette 已提交
627

628

629
%protocol.c: %protocol.x %protocol.h $(srcdir)/rpc/genprotocol.pl
630
	$(AM_V_GEN)$(PERL) -w $(srcdir)/rpc/genprotocol.pl $(RPCGEN) -c \
631
	       $< $(srcdir)/$(subst $(srcdir)/,,$@)
632

633
%protocol.h: %protocol.x $(srcdir)/rpc/genprotocol.pl
634
	$(AM_V_GEN)$(PERL) -w $(srcdir)/rpc/genprotocol.pl $(RPCGEN) -h \
635
	       $< $(srcdir)/$(subst $(srcdir)/,,$@)
636

637

638

639

640

641

642

643 644
check-local: check-augeas

645
check-augeas: $(AUGEAS_DIRS:%=check-augeas-%)
646

647
AUG_GENTEST = $(PERL) $(top_srcdir)/build-aux/augeas-gentest.pl
648
EXTRA_DIST += $(top_srcdir)/build-aux/augeas-gentest.pl
649

650

651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669
#
# 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.
#

670
USED_SYM_FILES += $(srcdir)/libvirt_driver_modules.syms
671

672
if WITH_LINUX
673
USED_SYM_FILES += $(srcdir)/libvirt_linux.syms
674
else ! WITH_LINUX
675
SYM_FILES += $(srcdir)/libvirt_linux.syms
676
endif ! WITH_LINUX
677

678
if WITH_VMX
679
USED_SYM_FILES += $(srcdir)/libvirt_vmx.syms
680
else ! WITH_VMX
681
SYM_FILES += $(srcdir)/libvirt_vmx.syms
682
endif ! WITH_VMX
683

684
if WITH_SASL
685
USED_SYM_FILES += $(srcdir)/libvirt_sasl.syms
686
else ! WITH_SASL
687
SYM_FILES += $(srcdir)/libvirt_sasl.syms
688
endif ! WITH_SASL
E
Eric Blake 已提交
689

690 691
if WITH_GNUTLS
USED_SYM_FILES += $(srcdir)/libvirt_gnutls.syms
692
else ! WITH_GNUTLS
693
SYM_FILES += $(srcdir)/libvirt_gnutls.syms
694
endif ! WITH_GNUTLS
695

696
if WITH_SSH2
697
USED_SYM_FILES += $(srcdir)/libvirt_libssh2.syms
698
else ! WITH_SSH2
699
SYM_FILES += $(srcdir)/libvirt_libssh2.syms
700
endif ! WITH_SSH2
701

702
if WITH_ATOMIC_OPS_PTHREAD
703
USED_SYM_FILES += $(srcdir)/libvirt_atomic.syms
704
else ! WITH_ATOMIC_OPS_PTHREAD
705
SYM_FILES += $(srcdir)/libvirt_atomic.syms
706
endif ! WITH_ATOMIC_OPS_PTHREAD
707

708 709 710 711 712 713
if WITH_LIBSSH
USED_SYM_FILES += $(srcdir)/libvirt_libssh.syms
else ! WITH_LIBSSH
SYM_FILES += $(srcdir)/libvirt_libssh.syms
endif ! WITH_LIBSSH

714
EXTRA_DIST += \
715 716 717 718 719 720
	libvirt_public.syms \
	libvirt_lxc.syms \
	libvirt_qemu.syms \
	libvirt_admin_public.syms \
	$(SYM_FILES) \
	$(ADMIN_SYM_FILES) \
721
	$(NULL)
722

723
BUILT_SOURCES += $(GENERATED_SYM_FILES)
724

725 726
libvirt.syms: libvirt_public.syms $(USED_SYM_FILES) \
		$(ACCESS_DRIVER_SYM_FILES) \
727
		$(top_builddir)/config.status
728 729 730 731 732 733
	$(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 && \
734
	cat $(USED_SYM_FILES) $(ACCESS_DRIVER_SYM_FILES) >>$@-tmp && \
735 736
	printf '\n\nlocal:\n*;\n\n};' >>$@-tmp && \
	chmod a-w $@-tmp && \
737
	mv $@-tmp libvirt.syms
738

739
%.def: %.syms
740 741
	$(AM_V_GEN)rm -f -- $@-tmp $@ ; \
	printf 'EXPORTS\n' > $@-tmp && \
742
	sed -e '/^$$/d; /#/d; /:/d; /}/d; /\*/d; /LIBVIRT_/d' \
743
	    -e 's/[	 ]*\(.*\)\;/    \1/g' $^ >> $@-tmp && \
744
	chmod a-w $@-tmp && \
745
	mv $@-tmp $@
746

747 748 749 750 751 752 753 754 755 756 757 758 759
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

760 761 762 763 764 765 766 767 768 769 770 771 772 773 774

admin/admin_server_dispatch.c: admin/admin_server_dispatch_stubs.h

noinst_LTLIBRARIES += libvirt_driver_admin.la
libvirt_driver_admin_la_SOURCES = \
		admin/admin_protocol.c \
		admin/admin_protocol.h \
		admin/admin_server.c \
		admin/admin_server.h \
		admin/admin_server_dispatch.c \
		admin/admin_server_dispatch.h \
		admin/admin_server_dispatch_stubs.h \
		$(NULL)
libvirt_driver_admin_la_CFLAGS = \
		$(AM_CFLAGS) \
775
		$(XDR_CFLAGS) \
776 777 778 779 780 781
		-I$(top_srcdir)/src/util \
		-I$(top_srcdir)/src/admin \
		$(NULL)
libvirt_driver_admin_la_LIBADD = ../gnulib/lib/libgnu.la
libvirt_driver_admin_la_LDFLAGS = -module -avoid-version $(AM_LDFLAGS)

782 783 784 785
# admin/admin_remote.c is being included in libvirt-admin.c, so we
# need to include it in the dist
EXTRA_DIST += admin/admin_remote.c

M
Martin Kletzander 已提交
786 787
lib_LTLIBRARIES += libvirt-admin.la
libvirt_admin_la_SOURCES = \
788 789
		libvirt-admin.c \
		$(ADMIN_PROTOCOL_GENERATED) \
M
Martin Kletzander 已提交
790 791 792
		$(DATATYPES_SOURCES)

libvirt_admin_la_LDFLAGS = \
793 794
		$(VERSION_SCRIPT_FLAGS)$(LIBVIRT_ADMIN_SYMBOL_FILE) \
		-version-info $(LIBVIRT_VERSION_INFO) \
795
		$(AM_LDFLAGS)
M
Martin Kletzander 已提交
796 797

libvirt_admin_la_LIBADD = \
798
		libvirt.la \
M
Martin Kletzander 已提交
799 800 801
		$(CYGWIN_EXTRA_LIBADD)

libvirt_admin_la_CFLAGS = \
802 803 804
		$(AM_CFLAGS) \
		-I$(srcdir)/remote \
		-I$(srcdir)/rpc \
M
Martin Kletzander 已提交
805 806 807
		-I$(srcdir)/admin

libvirt_admin_la_CFLAGS += \
808 809 810 811 812 813
		$(XDR_CFLAGS) \
		$(CAPNG_CFLAGS) \
		$(YAJL_CFLAGS) \
		$(SSH2_CFLAGS) \
		$(SASL_CFLAGS) \
		$(GNUTLS_CFLAGS) \
814
		$(LIBSSH_CFLAGS)
M
Martin Kletzander 已提交
815 816

libvirt_admin_la_LIBADD += \
817 818 819 820 821 822 823
		$(CAPNG_LIBS) \
		$(YAJL_LIBS) \
		$(DEVMAPPER_LIBS) \
		$(LIBXML_LIBS) \
		$(SSH2_LIBS) \
		$(SASL_LIBS) \
		$(GNUTLS_LIBS) \
824
		$(LIBSSH_LIBS)
M
Martin Kletzander 已提交
825

826 827
ADMIN_SYM_FILES = $(srcdir)/libvirt_admin_private.syms

M
Martin Kletzander 已提交
828 829 830 831
if WITH_DTRACE_PROBES
libvirt_admin_la_LIBADD += libvirt_probes.lo
endif WITH_DTRACE_PROBES

832 833
# Empty source list - it merely links a bunch of convenience libs together
libvirt_la_SOURCES =
D
Daniel P. Berrange 已提交
834 835 836 837
libvirt_la_LDFLAGS = \
		$(VERSION_SCRIPT_FLAGS)$(LIBVIRT_SYMBOL_FILE) \
		-version-info $(LIBVIRT_VERSION_INFO) \
		$(LIBVIRT_NODELETE) \
838
		$(NO_UNDEFINED_LDFLAGS) \
D
Daniel P. Berrange 已提交
839 840
		$(AM_LDFLAGS) \
		$(NULL)
841
libvirt_la_BUILT_LIBADD += ../gnulib/lib/libgnu.la
842
libvirt_la_LIBADD += \
843
		    $(DRIVER_MODULES_LIBS) \
844
		    $(CYGWIN_EXTRA_LIBADD)
845
libvirt_la_CFLAGS = -DIN_LIBVIRT $(AM_CFLAGS)
846 847 848 849 850 851
# 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)
852

853
if WITH_DTRACE_PROBES
854
libvirt_la_BUILT_LIBADD += libvirt_probes.lo
855
libvirt_la_DEPENDENCIES += libvirt_probes.lo libvirt_probes.o
856
nodist_libvirt_la_SOURCES = libvirt_probes.h
E
Eric Blake 已提交
857
if WITH_REMOTE
E
Eric Blake 已提交
858
nodist_libvirt_driver_remote_la_SOURCES = libvirt_probes.h
E
Eric Blake 已提交
859
endif WITH_REMOTE
860
DTRACE2SYSTEMTAP_FLAGS = --with-modules
861

862 863
BUILT_SOURCES += libvirt_probes.h libvirt_probes.stp libvirt_functions.stp

864 865

tapsetdir = $(datadir)/systemtap/tapset
866
tapset_DATA += libvirt_probes.stp libvirt_functions.stp
867

868
%_probes.h: %_probes.d
869 870
	$(AM_V_GEN)$(DTRACE) -o $@ -h -s $<

E
Eric Blake 已提交
871
.PRECIOUS: %_probes.o
872
%_probes.o: %_probes.d
873 874
	$(AM_V_GEN)$(DTRACE) -o $@ -G -s $<

875 876 877 878 879 880 881 882 883
%_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 已提交
884
# Keep this list synced with PROTOCOL_STRUCTS
885
RPC_PROBE_FILES += $(srcdir)/rpc/virnetprotocol.x \
J
Jiri Denemark 已提交
886 887
		  $(srcdir)/rpc/virkeepaliveprotocol.x \
		  $(srcdir)/remote/remote_protocol.x \
888
		  $(srcdir)/remote/lxc_protocol.x \
889
		  $(srcdir)/remote/qemu_protocol.x \
M
Martin Kletzander 已提交
890
		  $(srcdir)/admin/admin_protocol.x
891 892

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

895 896
%_probes.stp: %_probes.d $(srcdir)/dtrace2systemtap.pl \
		$(top_builddir)/config.status
897
	$(AM_V_GEN)$(PERL) -w $(srcdir)/dtrace2systemtap.pl \
898
	  $(DTRACE2SYSTEMTAP_FLAGS) $(bindir) $(sbindir) $(libdir) $< > $@
899

900
CLEANFILES += libvirt_probes.h libvirt_probes.o libvirt_probes.lo \
901
              libvirt_functions.stp libvirt_probes.stp
902
endif WITH_DTRACE_PROBES
903

904
EXTRA_DIST += libvirt_probes.d
905

C
Chris Lalancette 已提交
906
libvirt_qemu_la_SOURCES = libvirt-qemu.c
D
Daniel P. Berrange 已提交
907 908 909 910 911
libvirt_qemu_la_LDFLAGS = \
		$(VERSION_SCRIPT_FLAGS)$(LIBVIRT_QEMU_SYMBOL_FILE) \
		-version-info $(LIBVIRT_VERSION_INFO) \
		$(AM_LDFLAGS) \
		$(NULL)
912
libvirt_qemu_la_CFLAGS = $(AM_CFLAGS)
C
Chris Lalancette 已提交
913
libvirt_qemu_la_LIBADD = libvirt.la $(CYGWIN_EXTRA_LIBADD)
914

915
libvirt_lxc_la_SOURCES = libvirt-lxc.c
D
Daniel P. Berrange 已提交
916 917 918 919 920
libvirt_lxc_la_LDFLAGS = \
		$(VERSION_SCRIPT_FLAGS)$(LIBVIRT_LXC_SYMBOL_FILE) \
		-version-info $(LIBVIRT_VERSION_INFO) \
		$(AM_LDFLAGS) \
		$(NULL)
921 922 923
libvirt_lxc_la_CFLAGS = $(AM_CFLAGS)
libvirt_lxc_la_LIBADD = libvirt.la $(CYGWIN_EXTRA_LIBADD)

924 925 926 927 928 929 930
# 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
931
if WITH_SETUID_RPC_CLIENT
932 933
noinst_LTLIBRARIES += libvirt-setuid-rpc-client.la

934 935
libvirt_setuid_rpc_client_la_SOURCES = \
		util/viralloc.c \
936
		util/virarch.c \
937 938 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 988 989 990 991 992 993 994 995 996 997 998 999 1000 1001
		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 \
1002 1003
		$(NULL)

1004 1005 1006 1007
libvirt_setuid_rpc_client_la_LDFLAGS = \
		$(AM_LDFLAGS) \
		$(LIBXML_LIBS) \
		$(SECDRIVER_LIBS) \
1008
		$(NULL)
1009 1010 1011 1012 1013 1014 1015
libvirt_setuid_rpc_client_la_CFLAGS = \
		-DLIBVIRT_SETUID_RPC_CLIENT \
		-I$(srcdir)/conf \
		-I$(srcdir)/rpc \
		$(AM_CFLAGS) \
		$(SECDRIVER_CFLAGS) \
		$(XDR_CFLAGS) \
1016
		$(NULL)
1017
endif WITH_SETUID_RPC_CLIENT
1018

1019
EXTRA_DIST += $(SYSCONF_FILES)
1020 1021

install-sysconfig:
E
Eric Blake 已提交
1022
	$(MKDIR_P) $(DESTDIR)$(sysconfdir)/sysconfig
1023 1024 1025
	for f in $(SYSCONF_FILES:%.sysconf=%) ; \
	do \
	  tgt=`basename $$f`; \
1026 1027
	  $(INSTALL_SCRIPT) $(srcdir)/$$f.sysconf \
	      $(DESTDIR)$(sysconfdir)/sysconfig/$$tgt; \
1028
	done
1029 1030

uninstall-sysconfig:
1031 1032 1033 1034 1035
	for f in $(SYSCONF_FILES:%.sysconf=%) ; \
	do \
	  tgt=`basename $$f`; \
	  rm -f $(DESTDIR)$(sysconfdir)/sysconfig/$$tgt; \
	done
E
Eric Blake 已提交
1036
	rmdir $(DESTDIR)$(sysconfdir)/sysconfig || :
1037

1038
SYSVINIT_FILES_IN += \
1039 1040 1041 1042 1043 1044
	locking/virtlockd.init.in \
	$(NULL)

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

EXTRA_DIST += $(SYSVINIT_FILES_IN)
1045

1046
LOGROTATE_FILES := $(LOGROTATE_FILES_IN:remote/%.in=%)
1047 1048 1049 1050

EXTRA_DIST += $(LOGROTATE_FILES_IN)

BUILT_SOURCES += $(LOGROTATE_FILES)
1051
CLEANFILES += $(LOGROTATE_FILES)
1052 1053 1054 1055 1056 1057 1058

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

1059
if WITH_LIBVIRTD
1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071
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 || :
1072 1073 1074 1075
else ! WITH_LIBVIRTD
install-logrotate:
uninstall-logrotate:
endif ! WITH_LIBVIRTD
1076

1077
if LIBVIRT_INIT_SCRIPT_RED_HAT
1078
install-init:: $(SYSVINIT_FILES) install-sysconfig
E
Eric Blake 已提交
1079
	$(MKDIR_P) $(DESTDIR)$(sysconfdir)/rc.d/init.d
1080 1081 1082 1083
	for f in $(SYSVINIT_FILES:%.init=%) ; \
	do \
	  $(INSTALL_SCRIPT) $$f.init $(DESTDIR)$(sysconfdir)/rc.d/init.d/$$f; \
	done
1084 1085

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

1089 1090
BUILT_SOURCES += $(SYSVINIT_FILES)
DISTCLEANFILES += $(SYSVINIT_FILES)
1091
else ! LIBVIRT_INIT_SCRIPT_RED_HAT
1092 1093
install-init::
uninstall-init::
1094
endif ! LIBVIRT_INIT_SCRIPT_RED_HAT
1095

1096

1097
%.8: %.8.in $(top_srcdir)/configure.ac
1098
	$(AM_V_GEN)sed \
1099 1100 1101
		-e 's|[@]sysconfdir[@]|$(sysconfdir)|g' \
		-e 's|[@]localstatedir[@]|$(localstatedir)|g' \
		< $< > $@-t && \
1102 1103
	mv $@-t $@

1104
CLEANFILES += $(man8_MANS)
A
Andrea Bolognani 已提交
1105
MAINTAINERCLEANFILES += $(MANINFILES)
1106 1107

EXTRA_DIST += \
1108
        $(SYSTEMD_UNIT_FILES_IN) \
A
Andrea Bolognani 已提交
1109 1110
        $(PODFILES) \
        $(MANINFILES) \
1111
        $(NULL)
1112

1113 1114 1115 1116

if WITH_LIBVIRTD
if LIBVIRT_INIT_SCRIPT_SYSTEMD

1117
SYSTEMD_UNIT_DIR = $(prefix)/lib/systemd/system
1118
SYSTEMD_UNIT_FILES = $(notdir $(SYSTEMD_UNIT_FILES_IN:%.in=%))
1119

1120 1121
BUILT_SOURCES += $(SYSTEMD_UNIT_FILES)
DISTCLEANFILES += $(SYSTEMD_UNIT_FILES)
1122

1123
install-systemd: $(SYSTEMD_UNIT_FILES) install-sysconfig
E
Eric Blake 已提交
1124
	$(MKDIR_P) $(DESTDIR)$(SYSTEMD_UNIT_DIR)
1125 1126 1127 1128
	for f in $(SYSTEMD_UNIT_FILES); \
	do \
	  $(INSTALL_DATA) $$f $(DESTDIR)$(SYSTEMD_UNIT_DIR)/ ; \
	done
1129 1130

uninstall-systemd: uninstall-sysconfig
1131
	rm -f $(SYSTEMD_UNIT_FILES:%=$(DESTDIR)$(SYSTEMD_UNIT_DIR)/%)
E
Eric Blake 已提交
1132
	rmdir $(DESTDIR)$(SYSTEMD_UNIT_DIR) || :
1133
else ! LIBVIRT_INIT_SCRIPT_SYSTEMD
1134 1135
install-systemd:
uninstall-systemd:
1136 1137
endif ! LIBVIRT_INIT_SCRIPT_SYSTEMD
else ! WITH_LIBVIRTD
1138 1139
install-systemd:
uninstall-systemd:
1140
endif ! WITH_LIBVIRTD
1141 1142


1143 1144 1145 1146 1147 1148 1149 1150 1151 1152
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` ; \
1153 1154
	  $(INSTALL_SCRIPT) $(srcdir)/$$f.upstart \
	      $(DESTDIR)$(sysconfdir)/event.d/$$tgt ; \
1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172
	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

1173

1174 1175 1176 1177
noinst_LTLIBRARIES += \
	libvirt-net-rpc.la \
	libvirt-net-rpc-server.la \
	libvirt-net-rpc-client.la
1178

1179 1180 1181 1182 1183
libvirt_la_BUILT_LIBADD += \
       libvirt-net-rpc.la \
       libvirt-net-rpc-server.la \
       libvirt-net-rpc-client.la

1184
EXTRA_DIST += \
E
Eric Blake 已提交
1185 1186 1187 1188
	dtrace2systemtap.pl \
	rpc/gendispatch.pl \
	rpc/genprotocol.pl \
	rpc/gensystemtap.pl \
J
Jiri Denemark 已提交
1189 1190
	rpc/virnetprotocol.x \
	rpc/virkeepaliveprotocol.x
1191

E
Eric Blake 已提交
1192
VIR_NET_RPC_GENERATED = \
1193 1194 1195 1196
	rpc/virnetprotocol.h \
	rpc/virnetprotocol.c \
	rpc/virkeepaliveprotocol.h \
	rpc/virkeepaliveprotocol.c
1197

1198
BUILT_SOURCES += $(VIR_NET_RPC_GENERATED)
1199

1200
libvirt_net_rpc_la_SOURCES = \
1201
	rpc/virnetmessage.h rpc/virnetmessage.c \
1202
	rpc/virnetsocket.h rpc/virnetsocket.c \
1203 1204
	rpc/virkeepalive.h rpc/virkeepalive.c \
	$(VIR_NET_RPC_GENERATED)
1205
if WITH_SSH2
1206 1207
libvirt_net_rpc_la_SOURCES += \
	rpc/virnetsshsession.h rpc/virnetsshsession.c
1208
else ! WITH_SSH2
1209 1210
EXTRA_DIST += \
	rpc/virnetsshsession.h rpc/virnetsshsession.c
1211
endif ! WITH_SSH2
1212
if WITH_GNUTLS
1213 1214
libvirt_net_rpc_la_SOURCES += \
	rpc/virnettlscontext.h rpc/virnettlscontext.c
1215
else ! WITH_GNUTLS
1216 1217
EXTRA_DIST += \
	rpc/virnettlscontext.h rpc/virnettlscontext.c
1218
endif ! WITH_GNUTLS
1219
if WITH_SASL
1220 1221
libvirt_net_rpc_la_SOURCES += \
	rpc/virnetsaslcontext.h rpc/virnetsaslcontext.c
1222
else ! WITH_SASL
1223 1224
EXTRA_DIST += \
	rpc/virnetsaslcontext.h rpc/virnetsaslcontext.c
1225
endif ! WITH_SASL
1226 1227 1228 1229 1230 1231 1232
if WITH_LIBSSH
libvirt_net_rpc_la_SOURCES += \
	rpc/virnetlibsshsession.h rpc/virnetlibsshsession.c
else ! WITH_LIBSSH
EXTRA_DIST += \
	rpc/virnetlibsshsession.h rpc/virnetlibsshsession.c
endif ! WITH_LIBSSH
1233
libvirt_net_rpc_la_CFLAGS = \
1234
			$(GNUTLS_CFLAGS) \
1235
			$(SASL_CFLAGS) \
1236
			$(SSH2_CFLAGS) \
1237
			$(LIBSSH_CFLAGS) \
1238
			$(XDR_CFLAGS) \
1239 1240
			$(AM_CFLAGS)
libvirt_net_rpc_la_LDFLAGS = \
1241
			$(GNUTLS_LIBS) \
1242
			$(SASL_LIBS) \
1243
			$(SSH2_LIBS)\
1244
			$(LIBSSH_LIBS) \
J
Jim Fehlig 已提交
1245
			$(SECDRIVER_LIBS) \
1246
			$(AM_LDFLAGS) \
1247
			$(NULL)
1248 1249 1250
libvirt_net_rpc_la_LIBADD = \
			$(CYGWIN_EXTRA_LIBADD)

1251 1252 1253 1254
libvirt_net_rpc_server_la_SOURCES = \
	rpc/virnetserverprogram.h rpc/virnetserverprogram.c \
	rpc/virnetserverservice.h rpc/virnetserverservice.c \
	rpc/virnetserverclient.h rpc/virnetserverclient.c \
1255
	rpc/virnetservermdns.h rpc/virnetservermdns.c \
1256
	rpc/virnetdaemon.h rpc/virnetdaemon.c \
1257 1258
	rpc/virnetserver.h rpc/virnetserver.c
libvirt_net_rpc_server_la_CFLAGS = \
1259
			$(AVAHI_CFLAGS) \
1260
			$(DBUS_CFLAGS) \
E
Eric Blake 已提交
1261
			$(XDR_CFLAGS) \
1262
			$(AM_CFLAGS)
1263 1264
libvirt_net_rpc_server_la_LDFLAGS = \
			$(AM_LDFLAGS) \
1265
			$(AVAHI_LIBS) \
1266
			$(DBUS_LIBS) \
1267
			$(NULL)
1268 1269 1270
libvirt_net_rpc_server_la_LIBADD = \
			$(CYGWIN_EXTRA_LIBADD)

1271 1272 1273 1274 1275
libvirt_net_rpc_client_la_SOURCES = \
	rpc/virnetclientprogram.h rpc/virnetclientprogram.c \
	rpc/virnetclientstream.h rpc/virnetclientstream.c \
	rpc/virnetclient.h rpc/virnetclient.c
libvirt_net_rpc_client_la_CFLAGS = \
E
Eric Blake 已提交
1276 1277
			$(AM_CFLAGS) \
			$(XDR_CFLAGS)
1278
libvirt_net_rpc_client_la_LDFLAGS = $(AM_LDFLAGS)
1279 1280
libvirt_net_rpc_client_la_LIBADD = \
			$(CYGWIN_EXTRA_LIBADD)
1281

1282
if WITH_LIBVIRTD
1283 1284
libexec_PROGRAMS += libvirt_iohelper
libvirt_iohelper_SOURCES = $(UTIL_IO_HELPER_SOURCES)
D
Daniel P. Berrange 已提交
1285 1286 1287 1288
libvirt_iohelper_LDFLAGS = \
		$(AM_LDFLAGS) \
		$(PIE_LDFLAGS) \
		$(NULL)
1289 1290
libvirt_iohelper_LDADD = \
		libvirt_util.la \
1291
		../gnulib/lib/libgnu.la
1292 1293
if WITH_DTRACE_PROBES
libvirt_iohelper_LDADD += libvirt_probes.lo
1294
endif WITH_DTRACE_PROBES
1295

D
Daniel P. Berrange 已提交
1296 1297 1298 1299
libvirt_iohelper_CFLAGS = \
		$(AM_CFLAGS) \
		$(PIE_CFLAGS) \
		$(NULL)
1300 1301


1302
endif WITH_LIBVIRTD
1303

1304

J
Jamie Strandboge 已提交
1305

1306
if WITH_NSS
1307 1308
noinst_LTLIBRARIES += libvirt-nss.la

1309 1310 1311 1312 1313 1314 1315 1316 1317 1318 1319 1320 1321 1322 1323 1324 1325 1326 1327 1328 1329 1330 1331 1332 1333 1334 1335 1336 1337 1338 1339 1340 1341 1342 1343 1344 1345 1346 1347 1348 1349 1350 1351 1352 1353 1354 1355 1356 1357
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 \
1358 1359
		$(NULL)

1360 1361 1362 1363
libvirt_nss_la_CFLAGS = \
		-DLIBVIRT_NSS \
		$(AM_CFLAGS) \
		$(YAJL_CFLAGS) \
1364
		$(NULL)
1365 1366
libvirt_nss_la_LDFLAGS = \
		$(AM_LDFLAGS) \
1367 1368
		$(NULL)

1369 1370
libvirt_nss_la_LIBADD = \
		$(YAJL_LIBS) \
1371
		$(NULL)
1372
endif WITH_NSS
1373 1374


1375
install-data-local: install-init install-systemd install-upstart \
1376
		install-sysctl install-polkit install-sasl \
1377
		install-logrotate $(INSTALL_DATA_DIRS:%=install-data-%)
1378 1379
	$(MKDIR_P) "$(DESTDIR)$(localstatedir)/cache/libvirt"
	$(MKDIR_P) "$(DESTDIR)$(localstatedir)/lib/libvirt/images"
1380
	$(MKDIR_P) "$(DESTDIR)$(localstatedir)/lib/libvirt/filesystems"
1381
	$(MKDIR_P) "$(DESTDIR)$(localstatedir)/lib/libvirt/boot"
1382

1383
uninstall-local:: uninstall-init uninstall-systemd uninstall-upstart \
1384
		uninstall-sysctl uninstall-polkit uninstall-sasl \
1385
		uninstall-logrotate $(INSTALL_DATA_DIRS:%=uninstall-data-%)
1386 1387
	rmdir "$(DESTDIR)$(localstatedir)/cache/libvirt" ||:
	rmdir "$(DESTDIR)$(localstatedir)/lib/libvirt/images" ||:
1388
	rmdir "$(DESTDIR)$(localstatedir)/lib/libvirt/filesystems" ||:
1389 1390
	rmdir "$(DESTDIR)$(localstatedir)/lib/libvirt/boot" ||:
	rmdir "$(DESTDIR)$(localstatedir)/lib/libvirt" ||:
R
Richard W.M. Jones 已提交
1391

1392 1393
CLEANFILES += *.gcov .libs/*.gcda .libs/*.gcno *.gcno *.gcda *.i *.s
DISTCLEANFILES += $(GENERATED_SYM_FILES)
1394 1395 1396
MAINTAINERCLEANFILES += \
	$(VIR_NET_RPC_GENERATED) \
	$(NULL)