Makefile.am 14.6 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 140 141 142
# Network driver generic impl APIs
NODE_DEVICE_CONF_SOURCES =					\
		node_device_conf.c node_device_conf.h

143
STORAGE_DRIVER_FS_SOURCES =					\
R
Richard W.M. Jones 已提交
144 145
		storage_backend_fs.h storage_backend_fs.c

146 147 148 149 150 151 152 153 154 155 156 157 158 159
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


160 161 162 163 164 165 166 167
NODE_DEVICE_DRIVER_SOURCES =					\
		node_device.c node_device.h

NODE_DEVICE_DRIVER_HAL_SOURCES =				\
		node_device_hal.c
NODE_DEVICE_DRIVER_DEVKIT_SOURCES =				\
		node_device_devkit.c

168 169 170 171 172 173 174

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

175 176 177 178 179 180 181 182 183
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)				\
184 185
		$(DOMAIN_CONF_SOURCES)				\
		$(NETWORK_CONF_SOURCES)				\
186 187 188
		$(STORAGE_CONF_SOURCES)				\
		$(NODE_DEVICE_CONF_SOURCES)

189 190
libvirt_driver_la_CFLAGS = $(XEN_CFLAGS)
libvirt_driver_la_LDFLAGS = $(XEN_LIBS)
191 192

if WITH_TEST
193 194 195
if WITH_DRIVER_MODULES
mod_LTLIBRARIES += libvirt_driver_test.la
else
196 197
noinst_LTLIBRARIES += libvirt_driver_test.la
libvirt_la_LIBADD += libvirt_driver_test.la
198 199 200 201
endif
if WITH_DRIVER_MODULES
libvirt_driver_test_la_LDFLAGS = -module -avoid-version
endif
202
libvirt_driver_test_la_SOURCES = $(TEST_DRIVER_SOURCES)
203 204 205
endif

if WITH_REMOTE
206 207 208
if WITH_DRIVER_MODULES
mod_LTLIBRARIES += libvirt_driver_remote.la
else
209 210
noinst_LTLIBRARIES += libvirt_driver_remote.la
libvirt_la_LIBADD += libvirt_driver_remote.la
211
endif
212 213 214 215 216 217
libvirt_driver_remote_la_CFLAGS =				\
		$(GNUTLS_CFLAGS)				\
		$(SASL_CFLAGS)
libvirt_driver_remote_la_LDFLAGS =				\
		$(GNUTLS_LIBS)					\
		$(SASL_LIBS)
218 219 220
if WITH_DRIVER_MODULES
libvirt_driver_remote_la_LDFLAGS += -module -avoid-version
endif
221
libvirt_driver_remote_la_SOURCES = $(REMOTE_DRIVER_SOURCES)
222 223 224
endif

if WITH_XEN
225 226 227
if WITH_DRIVER_MODULES
mod_LTLIBRARIES += libvirt_driver_xen.la
else
228 229
noinst_LTLIBRARIES += libvirt_driver_xen.la
libvirt_la_LIBADD += libvirt_driver_xen.la
230
endif
231 232
libvirt_driver_xen_la_CFLAGS = $(XEN_CFLAGS)
libvirt_driver_xen_la_LDFLAGS = $(XEN_LIBS)
233 234 235
if WITH_DRIVER_MODULES
libvirt_driver_xen_la_LDFLAGS += -module -avoid-version
endif
236
libvirt_driver_xen_la_SOURCES = $(XEN_DRIVER_SOURCES)
237 238
endif

239
if WITH_OPENVZ
240 241 242
if WITH_DRIVER_MODULES
mod_LTLIBRARIES += libvirt_driver_openvz.la
else
243 244
noinst_LTLIBRARIES += libvirt_driver_openvz.la
libvirt_la_LIBADD += libvirt_driver_openvz.la
245 246 247 248
endif
if WITH_DRIVER_MODULES
libvirt_driver_openvz_la_LDFLAGS = -module -avoid-version
endif
249
libvirt_driver_openvz_la_SOURCES = $(OPENVZ_DRIVER_SOURCES)
250 251
endif

252
if WITH_QEMU
253 254 255
if WITH_DRIVER_MODULES
mod_LTLIBRARIES += libvirt_driver_qemu.la
else
256
noinst_LTLIBRARIES += libvirt_driver_qemu.la
257 258
# Stateful, so linked to daemon instead
#libvirt_la_LIBADD += libvirt_driver_qemu.la
259
endif
260 261
libvirt_driver_qemu_la_CFLAGS = $(NUMACTL_CFLAGS)
libvirt_driver_qemu_la_LDFLAGS = $(NUMACTL_LIBS)
262 263 264
if WITH_DRIVER_MODULES
libvirt_driver_qemu_la_LDFLAGS += -module -avoid-version
endif
265
libvirt_driver_qemu_la_SOURCES = $(QEMU_DRIVER_SOURCES)
266 267 268
endif

if WITH_LXC
269 270 271
if WITH_DRIVER_MODULES
mod_LTLIBRARIES += libvirt_driver_lxc.la
else
272
noinst_LTLIBRARIES += libvirt_driver_lxc.la
273 274
# Stateful, so linked to daemon instead
#libvirt_la_LIBADD += libvirt_driver_lxc.la
275 276 277 278
endif
if WITH_DRIVER_MODULES
libvirt_driver_lxc_la_LDFLAGS = -module -avoid-version
endif
279
libvirt_driver_lxc_la_SOURCES = $(LXC_DRIVER_SOURCES)
280 281
endif

282
if WITH_UML
283 284 285
if WITH_DRIVER_MODULES
mod_LTLIBRARIES += libvirt_driver_uml.la
else
286 287 288
noinst_LTLIBRARIES += libvirt_driver_uml.la
# Stateful, so linked to daemon instead
#libvirt_la_LIBADD += libvirt_driver_uml.la
289 290 291 292 293 294
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
295 296
libvirt_driver_uml_la_SOURCES = $(UML_DRIVER_SOURCES)
endif
297 298

if WITH_NETWORK
299 300 301
if WITH_DRIVER_MODULES
mod_LTLIBRARIES += libvirt_driver_network.la
else
302
noinst_LTLIBRARIES += libvirt_driver_network.la
303 304
# Stateful, so linked to daemon instead
#libvirt_la_LIBADD += libvirt_driver_network.la
305 306 307 308
endif
if WITH_DRIVER_MODULES
libvirt_driver_network_la_LDFLAGS = -module -avoid-version
endif
309
libvirt_driver_network_la_SOURCES = $(NETWORK_DRIVER_SOURCES)
310 311
endif

312 313
# Needed to keep automake quiet about conditionals
libvirt_driver_storage_la_SOURCES =
314
if WITH_STORAGE_DIR
315 316 317
if WITH_DRIVER_MODULES
mod_LTLIBRARIES += libvirt_driver_storage.la
else
318
noinst_LTLIBRARIES += libvirt_driver_storage.la
319 320
# Stateful, so linked to daemon instead
#libvirt_la_LIBADD += libvirt_driver_storage.la
321 322 323 324
endif
if WITH_DRIVER_MODULES
libvirt_driver_storage_la_LDFLAGS = -module -avoid-version
endif
325 326
libvirt_driver_storage_la_SOURCES += $(STORAGE_DRIVER_SOURCES)
libvirt_driver_storage_la_SOURCES += $(STORAGE_DRIVER_FS_SOURCES)
327 328
endif

329
if WITH_STORAGE_LVM
330
libvirt_driver_storage_la_SOURCES += $(STORAGE_DRIVER_LVM_SOURCES)
331 332
endif

333
if WITH_STORAGE_ISCSI
334
libvirt_driver_storage_la_SOURCES += $(STORAGE_DRIVER_ISCSI_SOURCES)
335 336
endif

337
if WITH_STORAGE_DISK
338
libvirt_driver_storage_la_SOURCES += $(STORAGE_DRIVER_DISK_SOURCES)
339
endif
340

341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370
if WITH_NODE_DEVICES
# Needed to keep automake quiet about conditionals
if WITH_DRIVER_MODULES
mod_LTLIBRARIES += libvirt_driver_nodedev.la
else
noinst_LTLIBRARIES += libvirt_driver_nodedev.la
# Stateful, so linked to daemon instead
#libvirt_la_LIBADD += libvirt_driver_nodedev.la
endif
libvirt_driver_nodedev_la_SOURCES = $(NODE_DEVICE_DRIVER_SOURCES)

libvirt_driver_nodedev_la_CFLAGS =
libvirt_driver_nodedev_la_LDFLAGS =
if HAVE_HAL
libvirt_driver_nodedev_la_SOURCES += $(NODE_DEVICE_DRIVER_HAL_SOURCES)
libvirt_driver_nodedev_la_CFLAGS += $(HAL_CFLAGS)
libvirt_driver_nodedev_la_LDFLAGS += $(HAL_LIBS)
endif
if HAVE_DEVKIT
libvirt_driver_nodedev_la_SOURCES += $(NODE_DEVICE_DRIVER_DEVKIT_SOURCES)
libvirt_driver_nodedev_la_CFLAGS += $(DEVKIT_CFLAGS)
libvirt_driver_nodedev_la_LDFLAGS += $(DEVKIT_LIBS)
endif

if WITH_DRIVER_MODULES
libvirt_driver_nodedev_la_LDFLAGS += -module -avoid-version
endif
endif


371 372 373 374 375 376 377
# Add all conditional sources just in case...
EXTRA_DIST +=							\
		$(TEST_DRIVER_SOURCES)				\
		$(REMOTE_DRIVER_SOURCES)			\
		$(XEN_DRIVER_SOURCES)				\
		$(QEMU_DRIVER_SOURCES)				\
		$(LXC_DRIVER_SOURCES)				\
378
		$(UML_DRIVER_SOURCES)				\
379
		$(OPENVZ_DRIVER_SOURCES)			\
380
		$(NETWORK_DRIVER_SOURCES)			\
381 382 383 384
		$(STORAGE_DRIVER_SOURCES)			\
		$(STORAGE_DRIVER_FS_SOURCES)			\
		$(STORAGE_DRIVER_LVM_SOURCES)			\
		$(STORAGE_DRIVER_ISCSI_SOURCES)			\
385 386 387 388
		$(STORAGE_DRIVER_DISK_SOURCES)			\
		$(NODE_DEVICE_DRIVER_SOURCES)			\
		$(NODE_DEVICE_DRIVER_HAL_SOURCES)		\
		$(NODE_DEVICE_DRIVER_DEVKIT_SOURCES)
389

390

391 392
# Empty source list - it merely links a bunch of convenience libs together
libvirt_la_SOURCES =
393
libvirt_la_LIBADD += \
394
		    @CYGWIN_EXTRA_LIBADD@ ../gnulib/lib/libgnu.la
395
libvirt_la_LDFLAGS = -Wl,--version-script=$(builddir)/libvirt_sym.version \
396 397
                     -version-info @LIBVIRT_VERSION_INFO@ \
                    $(COVERAGE_CFLAGS:-f%=-Wc,-f%) \
398
                    $(LIBXML_LIBS) $(SELINUX_LIBS) \
399
		    $(XEN_LIBS) $(DRIVER_MODULE_LIBS) \
400
		    @CYGWIN_EXTRA_LDFLAGS@ @MINGW_EXTRA_LDFLAGS@
401
libvirt_la_CFLAGS = $(COVERAGE_CFLAGS) -DIN_LIBVIRT
402
libvirt_la_DEPENDENCIES = $(libvirt_la_LIBADD) $(builddir)/libvirt_sym.version
403

404 405 406
# 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.
407
noinst_LTLIBRARIES += libvirt_test.la
408 409 410 411 412 413 414 415 416 417 418 419 420 421 422

# 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 已提交
423
bin_PROGRAMS = virsh
424

425 426 427 428
virsh_SOURCES =							\
		console.c console.h				\
		virsh.c

429
virsh_LDFLAGS = $(WARN_CFLAGS) $(COVERAGE_LDFLAGS)
430 431 432 433 434 435
virsh_LDADD = 							\
		$(STATIC_BINARIES) 				\
		$(WARN_CFLAGS)					\
		libvirt.la					\
		../gnulib/lib/libgnu.la				\
		$(VIRSH_LIBS)
436
virsh_CFLAGS = $(COVERAGE_CFLAGS) $(READLINE_CFLAGS)
437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468
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 $@
469

470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495
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

496 497
libexec_PROGRAMS =

498
if WITH_STORAGE_DISK
R
Richard W.M. Jones 已提交
499
if WITH_LIBVIRTD
500
libexec_PROGRAMS += libvirt_parthelper
501

502
libvirt_parthelper_SOURCES = $(STORAGE_HELPER_DISK_SOURCES)
503 504 505
libvirt_parthelper_LDFLAGS = $(WARN_CFLAGS) $(COVERAGE_LDCFLAGS)
libvirt_parthelper_LDADD = $(LIBPARTED_LIBS)
libvirt_parthelper_CFLAGS =  $(LIBPARTED_CFLAGS)
R
Richard W.M. Jones 已提交
506
endif
507
endif
508 509
EXTRA_DIST += $(STORAGE_HELPER_DISK_SOURCES)

510

511 512 513 514 515 516
if WITH_LXC
if WITH_LIBVIRTD
libexec_PROGRAMS += libvirt_lxc

libvirt_lxc_SOURCES =						\
		$(LXC_CONTROLLER_SOURCES)			\
517
		$(UTIL_SOURCES) 				\
518 519 520 521 522 523 524 525
		$(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 已提交
526 527
# Create the /var/cache/libvirt directory when installing.
install-exec-local:
D
Daniel P. Berrange 已提交
528
	$(MKDIR_P) $(DESTDIR)$(localstatedir)/cache/libvirt
R
Richard W.M. Jones 已提交
529

530
CLEANFILES = *.gcov .libs/*.gcda .libs/*.gcno *.gcno *.gcda
531
DISTCLEANFILES = $(BUILT_SOURCES)