Makefile.am 13.3 KB
Newer Older
D
Daniel Veillard 已提交
1 2
## Process this file with automake to produce Makefile.in

3 4 5
INCLUDES = \
	   -I$(top_srcdir)/gnulib/lib -I../gnulib/lib \
	   -I../include \
6 7
	   -I@top_srcdir@/include \
	   -I@top_srcdir@/qemud \
8
	   $(LIBXML_CFLAGS) \
9
	   $(XEN_CFLAGS) \
10
	   $(SELINUX_CFLAGS) \
11 12
	   $(DRIVER_MODULE_CFLAGS) \
	   -DLIBDIR=\""$(libdir)"\" \
13 14 15 16
	   -DBINDIR=\""$(libexecdir)"\" \
	   -DSBINDIR=\""$(sbindir)"\" \
	   -DSYSCONF_DIR="\"$(sysconfdir)\"" \
	   -DLOCALEBASEDIR=\""$(datadir)/locale"\" \
D
Daniel P. Berrange 已提交
17
           -DLOCAL_STATE_DIR=\""$(localstatedir)"\" \
18
           -DGETTEXT_PACKAGE=\"$(PACKAGE)\" \
19 20
	   $(WARN_CFLAGS)

21 22 23
confdir = $(sysconfdir)/libvirt/
conf_DATA = qemu.conf

24 25 26 27 28 29 30 31
ICON_FILES = \
	libvirt_win_icon_16x16.ico \
	libvirt_win_icon_32x32.ico \
	libvirt_win_icon_48x48.ico \
	libvirt_win_icon_64x64.ico \
	virsh_win_icon.rc

EXTRA_DIST = libvirt_sym.version $(conf_DATA) $(ICON_FILES)
32

33

34
lib_LTLIBRARIES = libvirt.la
35

36 37 38 39
moddir = $(libdir)/libvirt/drivers
mod_LTLIBRARIES =


40 41
# These files are not related to driver APIs. Simply generic
# helper APIs for various purposes
42
UTIL_SOURCES =							\
43 44 45
		bridge.c bridge.h				\
		buf.c buf.h					\
		conf.c conf.h					\
46
		event.c event.h					\
47
		hash.c hash.h					\
48 49 50 51 52
		iptables.c iptables.h				\
		memory.c memory.h				\
		qparams.c qparams.h				\
		uuid.c uuid.h					\
		util.c util.h					\
53
		virterror.c virterror_internal.h		\
54
		logging.c logging.h				\
55 56
		xml.c xml.h

57 58
# Internal generic driver infrastructure
DRIVER_SOURCES = 						\
59
		driver.c driver.h				\
60 61 62 63 64 65 66
		internal.h					\
		datatypes.c datatypes.h				\
		domain_event.c domain_event.h			\
		stats_linux.c stats_linux.h			\
		libvirt.c libvirt_internal.h


67 68 69 70 71 72 73 74 75 76 77 78
# Domain driver generic impl APIs
DOMAIN_CONF_SOURCES =						\
		capabilities.c capabilities.h			\
		domain_conf.c domain_conf.h			\
		nodeinfo.h nodeinfo.c

# Network driver generic impl APIs
NETWORK_CONF_SOURCES =						\
		network_conf.c network_conf.h

# Storage driver generic impl APIs
STORAGE_CONF_SOURCES =						\
79
		storage_conf.h storage_conf.c
80 81 82 83 84


# The remote RPC driver, covering domains, storage, networks, etc
REMOTE_DRIVER_SOURCES =						\
		gnutls_1_0_compat.h				\
85
		remote_internal.c remote_internal.h		\
86
		../qemud/remote_protocol.c			\
87
		../qemud/remote_protocol.h
88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105

# Mock driver, covering domains, storage, networks, etc
TEST_DRIVER_SOURCES =						\
		test.c test.h



# Now the Hypervisor specific drivers
XEN_DRIVER_SOURCES =						\
		proxy_internal.c proxy_internal.h		\
		sexpr.c sexpr.h					\
		xen_internal.c xen_internal.h			\
		xen_unified.c xen_unified.h			\
		xend_internal.c xend_internal.h			\
		xm_internal.c xm_internal.h			\
		xs_internal.c xs_internal.h

LXC_DRIVER_SOURCES =						\
D
Daniel Veillard 已提交
106
		lxc_conf.c lxc_conf.h				\
R
Richard W.M. Jones 已提交
107
		lxc_container.c lxc_container.h			\
108
		lxc_driver.c lxc_driver.h			\
D
Dan Smith 已提交
109 110
		veth.c veth.h					\
		cgroup.c cgroup.h
111

112 113 114 115
LXC_CONTROLLER_SOURCES =					\
		lxc_conf.c lxc_conf.h				\
		lxc_container.c lxc_container.h			\
		lxc_controller.c				\
D
Dan Smith 已提交
116 117
		veth.c veth.h                                   \
		cgroup.c cgroup.h
118

119 120 121
OPENVZ_DRIVER_SOURCES =						\
		openvz_conf.c openvz_conf.h			\
		openvz_driver.c openvz_driver.h
122

123 124 125
QEMU_DRIVER_SOURCES =						\
		qemu_conf.c qemu_conf.h				\
		qemu_driver.c qemu_driver.h
R
Richard W.M. Jones 已提交
126

127 128 129 130
UML_DRIVER_SOURCES =						\
		uml_conf.c uml_conf.h				\
		uml_driver.c uml_driver.h

131 132
NETWORK_DRIVER_SOURCES =					\
		network_driver.h network_driver.c
133 134 135

# And finally storage backend specific impls
STORAGE_DRIVER_SOURCES =					\
136 137
		storage_driver.h storage_driver.c		\
		storage_backend.h storage_backend.c
138 139

STORAGE_DRIVER_FS_SOURCES =					\
R
Richard W.M. Jones 已提交
140 141
		storage_backend_fs.h storage_backend_fs.c

142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162
STORAGE_DRIVER_LVM_SOURCES =					\
		storage_backend_logical.h 			\
		storage_backend_logical.c

STORAGE_DRIVER_ISCSI_SOURCES =					\
		storage_backend_iscsi.h storage_backend_iscsi.c

STORAGE_DRIVER_DISK_SOURCES =					\
		storage_backend_disk.h storage_backend_disk.c

STORAGE_HELPER_DISK_SOURCES =					\
		parthelper.c



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

163 164 165 166 167 168 169 170 171
noinst_LTLIBRARIES = libvirt_util.la
libvirt_la_LIBADD = libvirt_util.la
libvirt_util_la_SOURCES =					\
		$(UTIL_SOURCES)

noinst_LTLIBRARIES += libvirt_driver.la
libvirt_la_LIBADD += libvirt_driver.la
libvirt_driver_la_SOURCES =					\
		$(DRIVER_SOURCES)				\
172 173 174
		$(DOMAIN_CONF_SOURCES)				\
		$(NETWORK_CONF_SOURCES)				\
		$(STORAGE_CONF_SOURCES)
175 176
libvirt_driver_la_CFLAGS = $(XEN_CFLAGS)
libvirt_driver_la_LDFLAGS = $(XEN_LIBS)
177 178

if WITH_TEST
179 180 181
if WITH_DRIVER_MODULES
mod_LTLIBRARIES += libvirt_driver_test.la
else
182 183
noinst_LTLIBRARIES += libvirt_driver_test.la
libvirt_la_LIBADD += libvirt_driver_test.la
184 185 186 187
endif
if WITH_DRIVER_MODULES
libvirt_driver_test_la_LDFLAGS = -module -avoid-version
endif
188
libvirt_driver_test_la_SOURCES = $(TEST_DRIVER_SOURCES)
189 190 191
endif

if WITH_REMOTE
192 193 194
if WITH_DRIVER_MODULES
mod_LTLIBRARIES += libvirt_driver_remote.la
else
195 196
noinst_LTLIBRARIES += libvirt_driver_remote.la
libvirt_la_LIBADD += libvirt_driver_remote.la
197
endif
198 199 200 201 202 203
libvirt_driver_remote_la_CFLAGS =				\
		$(GNUTLS_CFLAGS)				\
		$(SASL_CFLAGS)
libvirt_driver_remote_la_LDFLAGS =				\
		$(GNUTLS_LIBS)					\
		$(SASL_LIBS)
204 205 206
if WITH_DRIVER_MODULES
libvirt_driver_remote_la_LDFLAGS += -module -avoid-version
endif
207
libvirt_driver_remote_la_SOURCES = $(REMOTE_DRIVER_SOURCES)
208 209 210
endif

if WITH_XEN
211 212 213
if WITH_DRIVER_MODULES
mod_LTLIBRARIES += libvirt_driver_xen.la
else
214 215
noinst_LTLIBRARIES += libvirt_driver_xen.la
libvirt_la_LIBADD += libvirt_driver_xen.la
216
endif
217 218
libvirt_driver_xen_la_CFLAGS = $(XEN_CFLAGS)
libvirt_driver_xen_la_LDFLAGS = $(XEN_LIBS)
219 220 221
if WITH_DRIVER_MODULES
libvirt_driver_xen_la_LDFLAGS += -module -avoid-version
endif
222
libvirt_driver_xen_la_SOURCES = $(XEN_DRIVER_SOURCES)
223 224
endif

225
if WITH_OPENVZ
226 227 228
if WITH_DRIVER_MODULES
mod_LTLIBRARIES += libvirt_driver_openvz.la
else
229 230
noinst_LTLIBRARIES += libvirt_driver_openvz.la
libvirt_la_LIBADD += libvirt_driver_openvz.la
231 232 233 234
endif
if WITH_DRIVER_MODULES
libvirt_driver_openvz_la_LDFLAGS = -module -avoid-version
endif
235
libvirt_driver_openvz_la_SOURCES = $(OPENVZ_DRIVER_SOURCES)
236 237
endif

238
if WITH_QEMU
239 240 241
if WITH_DRIVER_MODULES
mod_LTLIBRARIES += libvirt_driver_qemu.la
else
242
noinst_LTLIBRARIES += libvirt_driver_qemu.la
243 244
# Stateful, so linked to daemon instead
#libvirt_la_LIBADD += libvirt_driver_qemu.la
245
endif
246 247
libvirt_driver_qemu_la_CFLAGS = $(NUMACTL_CFLAGS)
libvirt_driver_qemu_la_LDFLAGS = $(NUMACTL_LIBS)
248 249 250
if WITH_DRIVER_MODULES
libvirt_driver_qemu_la_LDFLAGS += -module -avoid-version
endif
251
libvirt_driver_qemu_la_SOURCES = $(QEMU_DRIVER_SOURCES)
252 253 254
endif

if WITH_LXC
255 256 257
if WITH_DRIVER_MODULES
mod_LTLIBRARIES += libvirt_driver_lxc.la
else
258
noinst_LTLIBRARIES += libvirt_driver_lxc.la
259 260
# Stateful, so linked to daemon instead
#libvirt_la_LIBADD += libvirt_driver_lxc.la
261 262 263 264
endif
if WITH_DRIVER_MODULES
libvirt_driver_lxc_la_LDFLAGS = -module -avoid-version
endif
265
libvirt_driver_lxc_la_SOURCES = $(LXC_DRIVER_SOURCES)
266 267
endif

268
if WITH_UML
269 270 271
if WITH_DRIVER_MODULES
mod_LTLIBRARIES += libvirt_driver_uml.la
else
272 273 274
noinst_LTLIBRARIES += libvirt_driver_uml.la
# Stateful, so linked to daemon instead
#libvirt_la_LIBADD += libvirt_driver_uml.la
275 276 277 278 279 280
endif
libvirt_driver_uml_la_CFLAGS = $(NUMACTL_CFLAGS)
libvirt_driver_uml_la_LDFLAGS = $(NUMACTL_LIBS)
if WITH_DRIVER_MODULES
libvirt_driver_uml_la_LDFLAGS += -module -avoid-version
endif
281 282
libvirt_driver_uml_la_SOURCES = $(UML_DRIVER_SOURCES)
endif
283 284

if WITH_NETWORK
285 286 287
if WITH_DRIVER_MODULES
mod_LTLIBRARIES += libvirt_driver_network.la
else
288
noinst_LTLIBRARIES += libvirt_driver_network.la
289 290
# Stateful, so linked to daemon instead
#libvirt_la_LIBADD += libvirt_driver_network.la
291 292 293 294
endif
if WITH_DRIVER_MODULES
libvirt_driver_network_la_LDFLAGS = -module -avoid-version
endif
295
libvirt_driver_network_la_SOURCES = $(NETWORK_DRIVER_SOURCES)
296 297
endif

298 299
# Needed to keep automake quiet about conditionals
libvirt_driver_storage_la_SOURCES =
300
if WITH_STORAGE_DIR
301 302 303
if WITH_DRIVER_MODULES
mod_LTLIBRARIES += libvirt_driver_storage.la
else
304
noinst_LTLIBRARIES += libvirt_driver_storage.la
305 306
# Stateful, so linked to daemon instead
#libvirt_la_LIBADD += libvirt_driver_storage.la
307 308 309 310
endif
if WITH_DRIVER_MODULES
libvirt_driver_storage_la_LDFLAGS = -module -avoid-version
endif
311 312
libvirt_driver_storage_la_SOURCES += $(STORAGE_DRIVER_SOURCES)
libvirt_driver_storage_la_SOURCES += $(STORAGE_DRIVER_FS_SOURCES)
313 314
endif

315
if WITH_STORAGE_LVM
316
libvirt_driver_storage_la_SOURCES += $(STORAGE_DRIVER_LVM_SOURCES)
317 318
endif

319
if WITH_STORAGE_ISCSI
320
libvirt_driver_storage_la_SOURCES += $(STORAGE_DRIVER_ISCSI_SOURCES)
321 322
endif

323
if WITH_STORAGE_DISK
324
libvirt_driver_storage_la_SOURCES += $(STORAGE_DRIVER_DISK_SOURCES)
325
endif
326

327 328 329 330 331 332 333
# Add all conditional sources just in case...
EXTRA_DIST +=							\
		$(TEST_DRIVER_SOURCES)				\
		$(REMOTE_DRIVER_SOURCES)			\
		$(XEN_DRIVER_SOURCES)				\
		$(QEMU_DRIVER_SOURCES)				\
		$(LXC_DRIVER_SOURCES)				\
334
		$(UML_DRIVER_SOURCES)				\
335
		$(OPENVZ_DRIVER_SOURCES)			\
336
		$(NETWORK_DRIVER_SOURCES)			\
337 338 339 340 341 342
		$(STORAGE_DRIVER_SOURCES)			\
		$(STORAGE_DRIVER_FS_SOURCES)			\
		$(STORAGE_DRIVER_LVM_SOURCES)			\
		$(STORAGE_DRIVER_ISCSI_SOURCES)			\
		$(STORAGE_DRIVER_DISK_SOURCES)

343

344 345
# Empty source list - it merely links a bunch of convenience libs together
libvirt_la_SOURCES =
346
libvirt_la_LIBADD += \
347
		    @CYGWIN_EXTRA_LIBADD@ ../gnulib/lib/libgnu.la
348 349 350
libvirt_la_LDFLAGS = -Wl,--version-script=$(srcdir)/libvirt_sym.version \
                     -version-info @LIBVIRT_VERSION_INFO@ \
                    $(COVERAGE_CFLAGS:-f%=-Wc,-f%) \
351
                    $(LIBXML_LIBS) $(SELINUX_LIBS) \
352
		    $(XEN_LIBS) $(DRIVER_MODULE_LIBS) \
353
		    @CYGWIN_EXTRA_LDFLAGS@ @MINGW_EXTRA_LDFLAGS@
354
libvirt_la_CFLAGS = $(COVERAGE_CFLAGS) -DIN_LIBVIRT
355
libvirt_la_DEPENDENCIES = $(libvirt_la_LIBADD) $(srcdir)/libvirt_sym.version
356

357 358 359
# Create an automake "convenience library" version of libvirt_la,
# just for testing, since the test harness requires access to internal
# bits and pieces that we don't want to make publicly accessible.
360
noinst_LTLIBRARIES += libvirt_test.la
361 362 363 364 365 366 367 368 369 370 371 372 373 374 375

# Convert libvirt_sym.version
#      to libvirt_test_sym.version, and
# remove -version-info X.Y.Z (not needed since this is a convenience library.
test_LDFLAGS =						\
  $$(echo '$(libvirt_la_LDFLAGS)'			\
     |sed 's!-Wl,--v.*_sym\.version!!'			\
     |sed 's!-version-info @LIBVIRT_VERSION_INFO@!!')

# Just like the above, but with a slightly different set of public symbols.
libvirt_test_la_SOURCES = $(libvirt_la_SOURCES)
libvirt_test_la_LIBADD = $(libvirt_la_LIBADD)
libvirt_test_la_LDFLAGS = $(test_LDFLAGS)
libvirt_test_la_CFLAGS = $(COVERAGE_CFLAGS)

K
Karel Zak 已提交
376
bin_PROGRAMS = virsh
377

378 379 380 381
virsh_SOURCES =							\
		console.c console.h				\
		virsh.c

382
virsh_LDFLAGS = $(WARN_CFLAGS) $(COVERAGE_LDFLAGS)
383 384 385 386 387 388
virsh_LDADD = 							\
		$(STATIC_BINARIES) 				\
		$(WARN_CFLAGS)					\
		libvirt.la					\
		../gnulib/lib/libgnu.la				\
		$(VIRSH_LIBS)
389
virsh_CFLAGS = $(COVERAGE_CFLAGS) $(READLINE_CFLAGS)
390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421
BUILT_SOURCES = virsh-net-edit.c virsh-pool-edit.c

virsh-net-edit.c: virsh.c Makefile.am
	rm -f $@-tmp
	echo '/* Automatically generated from: $^ */' > $@-tmp
	echo 'static int' >> $@-tmp
	awk '/^cmdEdit/, /^}/' $< \
	  | sed -e 's/domain/network/g' \
	      -e 's/Domain/Network/g' \
	      -e 's/cmdEdit/cmdNetworkEdit/g' \
	      -e 's/dom/network/g' \
	>> $@-tmp
	chmod a-w $@-tmp
	rm -f $@
	mv $@-tmp $@

virsh-pool-edit.c: virsh.c Makefile.am
	rm -f $@-tmp
	echo '/* Automatically generated from: $^ */' > $@-tmp
	echo 'static int' >> $@-tmp
	awk '/^cmdEdit/, /^}/' $< \
	  | sed -e 's/domain/pool/g' \
	      -e 's/vshCommandOptDomain/vshCommandOptPool/g' \
	      -e 's/Domain %s/Pool %s/g' \
	      -e 's/Domain/StoragePool/g' \
	      -e 's/cmdEdit/cmdPoolEdit/g' \
	      -e 's/\(virStoragePoolDefineXML.*\));/\1, 0);/' \
	      -e 's/dom/pool/g' \
	>> $@-tmp
	chmod a-w $@-tmp
	rm -f $@
	mv $@-tmp $@
422

423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448
if WITH_WIN_ICON
virsh_LDADD += virsh_win_icon.$(OBJEXT)

# Before you edit virsh_win_icon.rc, please note the following
# limitations of the resource file format:
#
# (1) '..' is not permitted in the icon filename field.
# (2) '-' is not permitted in the icon filename field.
# (3) Comments are not permitted in the file.
#
# Windows appears to choose the first <= 32x32 icon it finds
# in the resource file.  Therefore you should list the available
# icons from largest to smallest, and make sure that the 32x32
# icon is the most legible.
#
# Windows .ICO is a special MS-only format.  GIMP and other
# tools can write it.  However there are several variations,
# and Windows seems to do its own colour quantization.  More
# information is needed in this area.

virsh_win_icon.$(OBJEXT): virsh_win_icon.rc
	$(WINDRES) \
	  --input-format rc --input $< \
	  --output-format coff --output $@
endif

449 450
libexec_PROGRAMS =

451
if WITH_STORAGE_DISK
R
Richard W.M. Jones 已提交
452
if WITH_LIBVIRTD
453
libexec_PROGRAMS += libvirt_parthelper
454

455
libvirt_parthelper_SOURCES = $(STORAGE_HELPER_DISK_SOURCES)
456 457 458
libvirt_parthelper_LDFLAGS = $(WARN_CFLAGS) $(COVERAGE_LDCFLAGS)
libvirt_parthelper_LDADD = $(LIBPARTED_LIBS)
libvirt_parthelper_CFLAGS =  $(LIBPARTED_CFLAGS)
R
Richard W.M. Jones 已提交
459
endif
460
endif
461 462
EXTRA_DIST += $(STORAGE_HELPER_DISK_SOURCES)

463

464 465 466 467 468 469
if WITH_LXC
if WITH_LIBVIRTD
libexec_PROGRAMS += libvirt_lxc

libvirt_lxc_SOURCES =						\
		$(LXC_CONTROLLER_SOURCES)			\
470
		$(UTIL_SOURCES) 				\
471 472 473 474 475 476 477 478
		$(DOMAIN_CONF_SOURCES)
libvirt_lxc_LDFLAGS = $(WARN_CFLAGS) $(COVERAGE_LDCFLAGS)
libvirt_lxc_LDADD = $(LIBXML_LIBS) ../gnulib/lib/libgnu.la
libvirt_lxc_CFLAGS =  $(LIBPARTED_CFLAGS)
endif
endif
EXTRA_DIST += $(LXC_CONTROLLER_SOURCES)

R
Richard W.M. Jones 已提交
479 480
# Create the /var/cache/libvirt directory when installing.
install-exec-local:
D
Daniel P. Berrange 已提交
481
	$(MKDIR_P) $(DESTDIR)$(localstatedir)/cache/libvirt
R
Richard W.M. Jones 已提交
482

483
CLEANFILES = *.gcov .libs/*.gcda .libs/*.gcno *.gcno *.gcda
484
DISTCLEANFILES = $(BUILT_SOURCES)