2005-11-02 12:50:21 +00:00
|
|
|
## Process this file with automake to produce Makefile.in
|
|
|
|
|
Move all XML configuration handling to src/conf/
* src/capabilities.c, src/capabilities.h, src/domain_conf.c,
src/domain_conf.h, src/domain_event.c, src/domain_event.h,
src/interface_conf.c, src/interface_conf.h,
src/network_conf.c, src/network_conf.h, src/node_device_conf.c,
src/node_device_conf.h, src/secret_conf.c, src/secret_conf.h,
src/storage_conf.c, src/storage_conf.h, src/storage_encryption_conf.c,
src/storage_encryption_conf.h: Move to src/conf/
* src/Makefile.am: Add -Isrc/conf to the individual build targets
which need to use XML config APIs. Remove LIBXML_CFLAGS, LIBSSH2_CFLAGS
and SELINUX_CFLAGS from global INCLUDES and only have them in build
targets which actually need them. Create a libvirt_conf.la
convenience library for all config parsers
* src/hostusb.h: Remove bogus include of domain_conf.h
* tests/Makefile.am: Add -Isrc/conf. Remove bogus -I$builddir/src
since it never has any generated header files
* daemon/Makefile.am: Add -Isrc/conf
* proxy/Makefile.am: Add -Isrc/conf and cope with renamed files
* src/hash.c: Remove bogus include of libxml/threads.h
2009-09-16 14:39:12 +00:00
|
|
|
# No libraries with the exception of LIBXML should be listed
|
|
|
|
# here. List them against the individual XXX_la_CFLAGS targets
|
|
|
|
# that actually use them
|
|
|
|
INCLUDES = \
|
|
|
|
-I$(top_srcdir)/gnulib/lib \
|
|
|
|
-I../gnulib/lib \
|
|
|
|
-I../include \
|
Move all shared utility files to src/util/
* src/bridge.c, src/bridge.h, src/buf.c, src/buf.h, src/cgroup.c,
src/cgroup.h, src/conf.c, src/conf.h, src/event.c, src/event.h,
src/hash.c, src/hash.h, src/hostusb.c, src/hostusb.h,
src/iptables.c, src/iptables.h, src/logging.c, src/logging.h,
src/memory.c, src/memory.h, src/pci.c, src/pci.h, src/qparams.c,
src/qparams.h, src/stats_linux.c, src/stats_linux.h,
src/threads-pthread.c, src/threads-pthread.h, src/threads-win32.c,
src/threads-win32.h, src/threads.c, src/threads.h, src/util.c,
src/util.h, src/uuid.c, src/uuid.h, src/virterror.c,
src/virterror_internal.h, src/xml.c, src/xml.h: Move all files
into src/util/
* daemon/Makefile.am: Add -Isrc/util/ to build flags
* src/Makefile.am: Add -Isrc/util/ to build flags and update for
moved files
* src/libvirt_private.syms: Export cgroup APIs since they're now
in util rather than linking directly to drivers
* src/xen/xs_internal.c: Disable bogus virEventRemoveHandle call
when built under PROXY
* proxy/Makefile.am: Update for changed file locations. Remove
bogus build of event.c
* tools/Makefile.am, tests/Makefile.am: Add -Isrc/util/ to build flags
2009-09-16 15:28:46 +00:00
|
|
|
-I@top_srcdir@/src/util \
|
Move all XML configuration handling to src/conf/
* src/capabilities.c, src/capabilities.h, src/domain_conf.c,
src/domain_conf.h, src/domain_event.c, src/domain_event.h,
src/interface_conf.c, src/interface_conf.h,
src/network_conf.c, src/network_conf.h, src/node_device_conf.c,
src/node_device_conf.h, src/secret_conf.c, src/secret_conf.h,
src/storage_conf.c, src/storage_conf.h, src/storage_encryption_conf.c,
src/storage_encryption_conf.h: Move to src/conf/
* src/Makefile.am: Add -Isrc/conf to the individual build targets
which need to use XML config APIs. Remove LIBXML_CFLAGS, LIBSSH2_CFLAGS
and SELINUX_CFLAGS from global INCLUDES and only have them in build
targets which actually need them. Create a libvirt_conf.la
convenience library for all config parsers
* src/hostusb.h: Remove bogus include of domain_conf.h
* tests/Makefile.am: Add -Isrc/conf. Remove bogus -I$builddir/src
since it never has any generated header files
* daemon/Makefile.am: Add -Isrc/conf
* proxy/Makefile.am: Add -Isrc/conf and cope with renamed files
* src/hash.c: Remove bogus include of libxml/threads.h
2009-09-16 14:39:12 +00:00
|
|
|
-I@top_srcdir@/include \
|
|
|
|
$(DRIVER_MODULE_CFLAGS) \
|
|
|
|
$(LIBXML_CFLAGS) \
|
|
|
|
$(WARN_CFLAGS) \
|
2010-03-16 22:54:22 +00:00
|
|
|
$(LOCK_CHECKING_CFLAGS) \
|
|
|
|
-DIN_LIBVIRT \
|
|
|
|
$(WIN32_EXTRA_CFLAGS)
|
2008-11-04 23:37:23 +00:00
|
|
|
|
2010-06-09 18:35:49 +00:00
|
|
|
AM_CFLAGS = $(COVERAGE_CFLAGS)
|
|
|
|
AM_LDFLAGS = $(COVERAGE_LDFLAGS)
|
|
|
|
|
2009-09-16 11:01:53 +00:00
|
|
|
EXTRA_DIST = $(conf_DATA)
|
2007-10-12 19:54:15 +00:00
|
|
|
|
2010-03-06 16:56:28 +00:00
|
|
|
BUILT_SOURCES =
|
|
|
|
|
2009-09-16 11:31:13 +00:00
|
|
|
if WITH_NETWORK
|
|
|
|
UUID=$(shell uuidgen 2>/dev/null)
|
|
|
|
endif
|
2005-11-02 15:37:34 +00:00
|
|
|
|
2010-04-13 18:02:46 +00:00
|
|
|
lib_LTLIBRARIES = libvirt.la libvirt-qemu.la
|
2007-06-15 01:21:18 +00:00
|
|
|
|
2008-11-21 12:16:08 +00:00
|
|
|
moddir = $(libdir)/libvirt/drivers
|
|
|
|
mod_LTLIBRARIES =
|
|
|
|
|
2009-10-08 15:40:14 +00:00
|
|
|
confdir = $(sysconfdir)/libvirt
|
|
|
|
conf_DATA =
|
2008-11-21 12:16:08 +00:00
|
|
|
|
2009-10-08 16:06:40 +00:00
|
|
|
augeasdir = $(datadir)/augeas/lenses
|
|
|
|
augeas_DATA =
|
|
|
|
|
|
|
|
augeastestdir = $(datadir)/augeas/lenses/tests
|
|
|
|
augeastest_DATA =
|
|
|
|
|
2008-08-20 20:48:35 +00:00
|
|
|
# These files are not related to driver APIs. Simply generic
|
|
|
|
# helper APIs for various purposes
|
2008-11-17 10:43:30 +00:00
|
|
|
UTIL_SOURCES = \
|
2010-03-14 19:50:14 +00:00
|
|
|
util/authhelper.c util/authhelper.h \
|
2010-05-21 04:23:48 +00:00
|
|
|
util/bitmap.c util/bitmap.h \
|
Move all shared utility files to src/util/
* src/bridge.c, src/bridge.h, src/buf.c, src/buf.h, src/cgroup.c,
src/cgroup.h, src/conf.c, src/conf.h, src/event.c, src/event.h,
src/hash.c, src/hash.h, src/hostusb.c, src/hostusb.h,
src/iptables.c, src/iptables.h, src/logging.c, src/logging.h,
src/memory.c, src/memory.h, src/pci.c, src/pci.h, src/qparams.c,
src/qparams.h, src/stats_linux.c, src/stats_linux.h,
src/threads-pthread.c, src/threads-pthread.h, src/threads-win32.c,
src/threads-win32.h, src/threads.c, src/threads.h, src/util.c,
src/util.h, src/uuid.c, src/uuid.h, src/virterror.c,
src/virterror_internal.h, src/xml.c, src/xml.h: Move all files
into src/util/
* daemon/Makefile.am: Add -Isrc/util/ to build flags
* src/Makefile.am: Add -Isrc/util/ to build flags and update for
moved files
* src/libvirt_private.syms: Export cgroup APIs since they're now
in util rather than linking directly to drivers
* src/xen/xs_internal.c: Disable bogus virEventRemoveHandle call
when built under PROXY
* proxy/Makefile.am: Update for changed file locations. Remove
bogus build of event.c
* tools/Makefile.am, tests/Makefile.am: Add -Isrc/util/ to build flags
2009-09-16 15:28:46 +00:00
|
|
|
util/bridge.c util/bridge.h \
|
|
|
|
util/buf.c util/buf.h \
|
2010-05-25 11:14:06 +00:00
|
|
|
util/command.c util/command.h \
|
Move all shared utility files to src/util/
* src/bridge.c, src/bridge.h, src/buf.c, src/buf.h, src/cgroup.c,
src/cgroup.h, src/conf.c, src/conf.h, src/event.c, src/event.h,
src/hash.c, src/hash.h, src/hostusb.c, src/hostusb.h,
src/iptables.c, src/iptables.h, src/logging.c, src/logging.h,
src/memory.c, src/memory.h, src/pci.c, src/pci.h, src/qparams.c,
src/qparams.h, src/stats_linux.c, src/stats_linux.h,
src/threads-pthread.c, src/threads-pthread.h, src/threads-win32.c,
src/threads-win32.h, src/threads.c, src/threads.h, src/util.c,
src/util.h, src/uuid.c, src/uuid.h, src/virterror.c,
src/virterror_internal.h, src/xml.c, src/xml.h: Move all files
into src/util/
* daemon/Makefile.am: Add -Isrc/util/ to build flags
* src/Makefile.am: Add -Isrc/util/ to build flags and update for
moved files
* src/libvirt_private.syms: Export cgroup APIs since they're now
in util rather than linking directly to drivers
* src/xen/xs_internal.c: Disable bogus virEventRemoveHandle call
when built under PROXY
* proxy/Makefile.am: Update for changed file locations. Remove
bogus build of event.c
* tools/Makefile.am, tests/Makefile.am: Add -Isrc/util/ to build flags
2009-09-16 15:28:46 +00:00
|
|
|
util/conf.c util/conf.h \
|
|
|
|
util/cgroup.c util/cgroup.h \
|
|
|
|
util/event.c util/event.h \
|
2010-09-15 13:44:11 +00:00
|
|
|
util/files.c util/files.h \
|
Move all shared utility files to src/util/
* src/bridge.c, src/bridge.h, src/buf.c, src/buf.h, src/cgroup.c,
src/cgroup.h, src/conf.c, src/conf.h, src/event.c, src/event.h,
src/hash.c, src/hash.h, src/hostusb.c, src/hostusb.h,
src/iptables.c, src/iptables.h, src/logging.c, src/logging.h,
src/memory.c, src/memory.h, src/pci.c, src/pci.h, src/qparams.c,
src/qparams.h, src/stats_linux.c, src/stats_linux.h,
src/threads-pthread.c, src/threads-pthread.h, src/threads-win32.c,
src/threads-win32.h, src/threads.c, src/threads.h, src/util.c,
src/util.h, src/uuid.c, src/uuid.h, src/virterror.c,
src/virterror_internal.h, src/xml.c, src/xml.h: Move all files
into src/util/
* daemon/Makefile.am: Add -Isrc/util/ to build flags
* src/Makefile.am: Add -Isrc/util/ to build flags and update for
moved files
* src/libvirt_private.syms: Export cgroup APIs since they're now
in util rather than linking directly to drivers
* src/xen/xs_internal.c: Disable bogus virEventRemoveHandle call
when built under PROXY
* proxy/Makefile.am: Update for changed file locations. Remove
bogus build of event.c
* tools/Makefile.am, tests/Makefile.am: Add -Isrc/util/ to build flags
2009-09-16 15:28:46 +00:00
|
|
|
util/hash.c util/hash.h \
|
2010-03-26 14:49:45 +00:00
|
|
|
util/hooks.c util/hooks.h \
|
Move all shared utility files to src/util/
* src/bridge.c, src/bridge.h, src/buf.c, src/buf.h, src/cgroup.c,
src/cgroup.h, src/conf.c, src/conf.h, src/event.c, src/event.h,
src/hash.c, src/hash.h, src/hostusb.c, src/hostusb.h,
src/iptables.c, src/iptables.h, src/logging.c, src/logging.h,
src/memory.c, src/memory.h, src/pci.c, src/pci.h, src/qparams.c,
src/qparams.h, src/stats_linux.c, src/stats_linux.h,
src/threads-pthread.c, src/threads-pthread.h, src/threads-win32.c,
src/threads-win32.h, src/threads.c, src/threads.h, src/util.c,
src/util.h, src/uuid.c, src/uuid.h, src/virterror.c,
src/virterror_internal.h, src/xml.c, src/xml.h: Move all files
into src/util/
* daemon/Makefile.am: Add -Isrc/util/ to build flags
* src/Makefile.am: Add -Isrc/util/ to build flags and update for
moved files
* src/libvirt_private.syms: Export cgroup APIs since they're now
in util rather than linking directly to drivers
* src/xen/xs_internal.c: Disable bogus virEventRemoveHandle call
when built under PROXY
* proxy/Makefile.am: Update for changed file locations. Remove
bogus build of event.c
* tools/Makefile.am, tests/Makefile.am: Add -Isrc/util/ to build flags
2009-09-16 15:28:46 +00:00
|
|
|
util/iptables.c util/iptables.h \
|
2009-11-03 22:11:01 +00:00
|
|
|
util/ebtables.c util/ebtables.h \
|
2010-04-26 13:56:03 +00:00
|
|
|
util/dnsmasq.c util/dnsmasq.h \
|
2009-11-03 18:59:18 +00:00
|
|
|
util/json.c util/json.h \
|
Move all shared utility files to src/util/
* src/bridge.c, src/bridge.h, src/buf.c, src/buf.h, src/cgroup.c,
src/cgroup.h, src/conf.c, src/conf.h, src/event.c, src/event.h,
src/hash.c, src/hash.h, src/hostusb.c, src/hostusb.h,
src/iptables.c, src/iptables.h, src/logging.c, src/logging.h,
src/memory.c, src/memory.h, src/pci.c, src/pci.h, src/qparams.c,
src/qparams.h, src/stats_linux.c, src/stats_linux.h,
src/threads-pthread.c, src/threads-pthread.h, src/threads-win32.c,
src/threads-win32.h, src/threads.c, src/threads.h, src/util.c,
src/util.h, src/uuid.c, src/uuid.h, src/virterror.c,
src/virterror_internal.h, src/xml.c, src/xml.h: Move all files
into src/util/
* daemon/Makefile.am: Add -Isrc/util/ to build flags
* src/Makefile.am: Add -Isrc/util/ to build flags and update for
moved files
* src/libvirt_private.syms: Export cgroup APIs since they're now
in util rather than linking directly to drivers
* src/xen/xs_internal.c: Disable bogus virEventRemoveHandle call
when built under PROXY
* proxy/Makefile.am: Update for changed file locations. Remove
bogus build of event.c
* tools/Makefile.am, tests/Makefile.am: Add -Isrc/util/ to build flags
2009-09-16 15:28:46 +00:00
|
|
|
util/logging.c util/logging.h \
|
2010-02-12 17:03:07 +00:00
|
|
|
util/macvtap.c util/macvtap.h \
|
Move all shared utility files to src/util/
* src/bridge.c, src/bridge.h, src/buf.c, src/buf.h, src/cgroup.c,
src/cgroup.h, src/conf.c, src/conf.h, src/event.c, src/event.h,
src/hash.c, src/hash.h, src/hostusb.c, src/hostusb.h,
src/iptables.c, src/iptables.h, src/logging.c, src/logging.h,
src/memory.c, src/memory.h, src/pci.c, src/pci.h, src/qparams.c,
src/qparams.h, src/stats_linux.c, src/stats_linux.h,
src/threads-pthread.c, src/threads-pthread.h, src/threads-win32.c,
src/threads-win32.h, src/threads.c, src/threads.h, src/util.c,
src/util.h, src/uuid.c, src/uuid.h, src/virterror.c,
src/virterror_internal.h, src/xml.c, src/xml.h: Move all files
into src/util/
* daemon/Makefile.am: Add -Isrc/util/ to build flags
* src/Makefile.am: Add -Isrc/util/ to build flags and update for
moved files
* src/libvirt_private.syms: Export cgroup APIs since they're now
in util rather than linking directly to drivers
* src/xen/xs_internal.c: Disable bogus virEventRemoveHandle call
when built under PROXY
* proxy/Makefile.am: Update for changed file locations. Remove
bogus build of event.c
* tools/Makefile.am, tests/Makefile.am: Add -Isrc/util/ to build flags
2009-09-16 15:28:46 +00:00
|
|
|
util/memory.c util/memory.h \
|
|
|
|
util/pci.c util/pci.h \
|
2009-11-16 15:22:34 +00:00
|
|
|
util/processinfo.c util/processinfo.h \
|
Move all shared utility files to src/util/
* src/bridge.c, src/bridge.h, src/buf.c, src/buf.h, src/cgroup.c,
src/cgroup.h, src/conf.c, src/conf.h, src/event.c, src/event.h,
src/hash.c, src/hash.h, src/hostusb.c, src/hostusb.h,
src/iptables.c, src/iptables.h, src/logging.c, src/logging.h,
src/memory.c, src/memory.h, src/pci.c, src/pci.h, src/qparams.c,
src/qparams.h, src/stats_linux.c, src/stats_linux.h,
src/threads-pthread.c, src/threads-pthread.h, src/threads-win32.c,
src/threads-win32.h, src/threads.c, src/threads.h, src/util.c,
src/util.h, src/uuid.c, src/uuid.h, src/virterror.c,
src/virterror_internal.h, src/xml.c, src/xml.h: Move all files
into src/util/
* daemon/Makefile.am: Add -Isrc/util/ to build flags
* src/Makefile.am: Add -Isrc/util/ to build flags and update for
moved files
* src/libvirt_private.syms: Export cgroup APIs since they're now
in util rather than linking directly to drivers
* src/xen/xs_internal.c: Disable bogus virEventRemoveHandle call
when built under PROXY
* proxy/Makefile.am: Update for changed file locations. Remove
bogus build of event.c
* tools/Makefile.am, tests/Makefile.am: Add -Isrc/util/ to build flags
2009-09-16 15:28:46 +00:00
|
|
|
util/hostusb.c util/hostusb.h \
|
2009-10-22 14:34:43 +00:00
|
|
|
util/network.c util/network.h \
|
2010-04-13 14:57:11 +00:00
|
|
|
util/interface.c util/interface.h \
|
Move all shared utility files to src/util/
* src/bridge.c, src/bridge.h, src/buf.c, src/buf.h, src/cgroup.c,
src/cgroup.h, src/conf.c, src/conf.h, src/event.c, src/event.h,
src/hash.c, src/hash.h, src/hostusb.c, src/hostusb.h,
src/iptables.c, src/iptables.h, src/logging.c, src/logging.h,
src/memory.c, src/memory.h, src/pci.c, src/pci.h, src/qparams.c,
src/qparams.h, src/stats_linux.c, src/stats_linux.h,
src/threads-pthread.c, src/threads-pthread.h, src/threads-win32.c,
src/threads-win32.h, src/threads.c, src/threads.h, src/util.c,
src/util.h, src/uuid.c, src/uuid.h, src/virterror.c,
src/virterror_internal.h, src/xml.c, src/xml.h: Move all files
into src/util/
* daemon/Makefile.am: Add -Isrc/util/ to build flags
* src/Makefile.am: Add -Isrc/util/ to build flags and update for
moved files
* src/libvirt_private.syms: Export cgroup APIs since they're now
in util rather than linking directly to drivers
* src/xen/xs_internal.c: Disable bogus virEventRemoveHandle call
when built under PROXY
* proxy/Makefile.am: Update for changed file locations. Remove
bogus build of event.c
* tools/Makefile.am, tests/Makefile.am: Add -Isrc/util/ to build flags
2009-09-16 15:28:46 +00:00
|
|
|
util/qparams.c util/qparams.h \
|
|
|
|
util/stats_linux.c util/stats_linux.h \
|
2009-09-25 13:20:13 +00:00
|
|
|
util/storage_file.c util/storage_file.h \
|
2010-11-05 14:22:13 +00:00
|
|
|
util/sysinfo.c util/sysinfo.h \
|
Move all shared utility files to src/util/
* src/bridge.c, src/bridge.h, src/buf.c, src/buf.h, src/cgroup.c,
src/cgroup.h, src/conf.c, src/conf.h, src/event.c, src/event.h,
src/hash.c, src/hash.h, src/hostusb.c, src/hostusb.h,
src/iptables.c, src/iptables.h, src/logging.c, src/logging.h,
src/memory.c, src/memory.h, src/pci.c, src/pci.h, src/qparams.c,
src/qparams.h, src/stats_linux.c, src/stats_linux.h,
src/threads-pthread.c, src/threads-pthread.h, src/threads-win32.c,
src/threads-win32.h, src/threads.c, src/threads.h, src/util.c,
src/util.h, src/uuid.c, src/uuid.h, src/virterror.c,
src/virterror_internal.h, src/xml.c, src/xml.h: Move all files
into src/util/
* daemon/Makefile.am: Add -Isrc/util/ to build flags
* src/Makefile.am: Add -Isrc/util/ to build flags and update for
moved files
* src/libvirt_private.syms: Export cgroup APIs since they're now
in util rather than linking directly to drivers
* src/xen/xs_internal.c: Disable bogus virEventRemoveHandle call
when built under PROXY
* proxy/Makefile.am: Update for changed file locations. Remove
bogus build of event.c
* tools/Makefile.am, tests/Makefile.am: Add -Isrc/util/ to build flags
2009-09-16 15:28:46 +00:00
|
|
|
util/threads.c util/threads.h \
|
|
|
|
util/threads-pthread.h \
|
|
|
|
util/threads-win32.h \
|
2010-12-08 06:19:06 +00:00
|
|
|
util/threadpool.c util/threadpool.h \
|
Move all shared utility files to src/util/
* src/bridge.c, src/bridge.h, src/buf.c, src/buf.h, src/cgroup.c,
src/cgroup.h, src/conf.c, src/conf.h, src/event.c, src/event.h,
src/hash.c, src/hash.h, src/hostusb.c, src/hostusb.h,
src/iptables.c, src/iptables.h, src/logging.c, src/logging.h,
src/memory.c, src/memory.h, src/pci.c, src/pci.h, src/qparams.c,
src/qparams.h, src/stats_linux.c, src/stats_linux.h,
src/threads-pthread.c, src/threads-pthread.h, src/threads-win32.c,
src/threads-win32.h, src/threads.c, src/threads.h, src/util.c,
src/util.h, src/uuid.c, src/uuid.h, src/virterror.c,
src/virterror_internal.h, src/xml.c, src/xml.h: Move all files
into src/util/
* daemon/Makefile.am: Add -Isrc/util/ to build flags
* src/Makefile.am: Add -Isrc/util/ to build flags and update for
moved files
* src/libvirt_private.syms: Export cgroup APIs since they're now
in util rather than linking directly to drivers
* src/xen/xs_internal.c: Disable bogus virEventRemoveHandle call
when built under PROXY
* proxy/Makefile.am: Update for changed file locations. Remove
bogus build of event.c
* tools/Makefile.am, tests/Makefile.am: Add -Isrc/util/ to build flags
2009-09-16 15:28:46 +00:00
|
|
|
util/uuid.c util/uuid.h \
|
|
|
|
util/util.c util/util.h \
|
|
|
|
util/xml.c util/xml.h \
|
2010-10-12 11:23:18 +00:00
|
|
|
util/virtaudit.c util/virtaudit.h \
|
2010-09-15 13:44:11 +00:00
|
|
|
util/virterror.c util/virterror_internal.h
|
Move all shared utility files to src/util/
* src/bridge.c, src/bridge.h, src/buf.c, src/buf.h, src/cgroup.c,
src/cgroup.h, src/conf.c, src/conf.h, src/event.c, src/event.h,
src/hash.c, src/hash.h, src/hostusb.c, src/hostusb.h,
src/iptables.c, src/iptables.h, src/logging.c, src/logging.h,
src/memory.c, src/memory.h, src/pci.c, src/pci.h, src/qparams.c,
src/qparams.h, src/stats_linux.c, src/stats_linux.h,
src/threads-pthread.c, src/threads-pthread.h, src/threads-win32.c,
src/threads-win32.h, src/threads.c, src/threads.h, src/util.c,
src/util.h, src/uuid.c, src/uuid.h, src/virterror.c,
src/virterror_internal.h, src/xml.c, src/xml.h: Move all files
into src/util/
* daemon/Makefile.am: Add -Isrc/util/ to build flags
* src/Makefile.am: Add -Isrc/util/ to build flags and update for
moved files
* src/libvirt_private.syms: Export cgroup APIs since they're now
in util rather than linking directly to drivers
* src/xen/xs_internal.c: Disable bogus virEventRemoveHandle call
when built under PROXY
* proxy/Makefile.am: Update for changed file locations. Remove
bogus build of event.c
* tools/Makefile.am, tests/Makefile.am: Add -Isrc/util/ to build flags
2009-09-16 15:28:46 +00:00
|
|
|
|
|
|
|
EXTRA_DIST += util/threads-pthread.c util/threads-win32.c
|
2009-01-15 19:56:05 +00:00
|
|
|
|
2008-11-17 10:43:30 +00:00
|
|
|
# Internal generic driver infrastructure
|
Move all XML configuration handling to src/conf/
* src/capabilities.c, src/capabilities.h, src/domain_conf.c,
src/domain_conf.h, src/domain_event.c, src/domain_event.h,
src/interface_conf.c, src/interface_conf.h,
src/network_conf.c, src/network_conf.h, src/node_device_conf.c,
src/node_device_conf.h, src/secret_conf.c, src/secret_conf.h,
src/storage_conf.c, src/storage_conf.h, src/storage_encryption_conf.c,
src/storage_encryption_conf.h: Move to src/conf/
* src/Makefile.am: Add -Isrc/conf to the individual build targets
which need to use XML config APIs. Remove LIBXML_CFLAGS, LIBSSH2_CFLAGS
and SELINUX_CFLAGS from global INCLUDES and only have them in build
targets which actually need them. Create a libvirt_conf.la
convenience library for all config parsers
* src/hostusb.h: Remove bogus include of domain_conf.h
* tests/Makefile.am: Add -Isrc/conf. Remove bogus -I$builddir/src
since it never has any generated header files
* daemon/Makefile.am: Add -Isrc/conf
* proxy/Makefile.am: Add -Isrc/conf and cope with renamed files
* src/hash.c: Remove bogus include of libxml/threads.h
2009-09-16 14:39:12 +00:00
|
|
|
NODE_INFO_SOURCES = nodeinfo.h nodeinfo.c
|
make NUMA-initialization code more portable and more robust
qemudCapsInitNUMA and umlCapsInitNUMA were identical, so this change
factors them into a new function, virCapsInitNUMA, and puts it in
nodeinfo.c.
In addition to factoring out the duplicates, this change also
adjusts that function definition (along with its macros) so
that it works with Fedora 9's numactl version 1, and makes it
so the code will work even if someone builds the kernel with
CONFIG_NR_CPUS > 4096.
Finally, also perform this NUMA initialization for the lxc
and openvz drivers.
* src/nodeinfo.c: Include <stdint.h>, <numa.h> and "memory.h".
(virCapsInitNUMA): Rename from qemudCapsInitNUMA and umlCapsInitNUMA.
(NUMA_MAX_N_CPUS): Define depending on NUMA API version.
(n_bits, MASK_CPU_ISSET): Define, adjust, use uint64 rather than long.
* src/nodeinfo.h: Include "capabilities.h".
(virCapsInitNUMA): Declare it.
* examples/domain-events/events-c/Makefile.am:
* src/Makefile.am: Add $(NUMACTL_CFLAGS) and $(NUMACTL_LIBS) to various
compile/link-related variables.
* src/qemu_conf.c: Include "nodeinfo.h".
(qemudCapsInitNUMA): Remove duplicate code. Adjust caller.
* src/uml_conf.c (umlCapsInitNUMA): Likewise.
Include "nodeinfo.h".
* src/lxc_conf.c: Include "nodeinfo.h".
(lxcCapsInit): Perform NUMA initialization here, too.
* src/openvz_conf.c (openvzCapsInit): And here.
Include "nodeinfo.h".
* src/libvirt_sym.version.in: Add virCapsInitNUMA so that libvirtd
can link to this function.
2008-12-21 18:55:09 +00:00
|
|
|
DRIVER_SOURCES = \
|
2008-11-21 12:16:08 +00:00
|
|
|
driver.c driver.h \
|
2008-11-17 10:43:30 +00:00
|
|
|
internal.h \
|
|
|
|
datatypes.c datatypes.h \
|
2010-09-22 18:32:21 +00:00
|
|
|
fdstream.c fdstream.h \
|
Move all XML configuration handling to src/conf/
* src/capabilities.c, src/capabilities.h, src/domain_conf.c,
src/domain_conf.h, src/domain_event.c, src/domain_event.h,
src/interface_conf.c, src/interface_conf.h,
src/network_conf.c, src/network_conf.h, src/node_device_conf.c,
src/node_device_conf.h, src/secret_conf.c, src/secret_conf.h,
src/storage_conf.c, src/storage_conf.h, src/storage_encryption_conf.c,
src/storage_encryption_conf.h: Move to src/conf/
* src/Makefile.am: Add -Isrc/conf to the individual build targets
which need to use XML config APIs. Remove LIBXML_CFLAGS, LIBSSH2_CFLAGS
and SELINUX_CFLAGS from global INCLUDES and only have them in build
targets which actually need them. Create a libvirt_conf.la
convenience library for all config parsers
* src/hostusb.h: Remove bogus include of domain_conf.h
* tests/Makefile.am: Add -Isrc/conf. Remove bogus -I$builddir/src
since it never has any generated header files
* daemon/Makefile.am: Add -Isrc/conf
* proxy/Makefile.am: Add -Isrc/conf and cope with renamed files
* src/hash.c: Remove bogus include of libxml/threads.h
2009-09-16 14:39:12 +00:00
|
|
|
$(NODE_INFO_SOURCES) \
|
2008-11-17 10:43:30 +00:00
|
|
|
libvirt.c libvirt_internal.h
|
|
|
|
|
|
|
|
|
Move all XML configuration handling to src/conf/
* src/capabilities.c, src/capabilities.h, src/domain_conf.c,
src/domain_conf.h, src/domain_event.c, src/domain_event.h,
src/interface_conf.c, src/interface_conf.h,
src/network_conf.c, src/network_conf.h, src/node_device_conf.c,
src/node_device_conf.h, src/secret_conf.c, src/secret_conf.h,
src/storage_conf.c, src/storage_conf.h, src/storage_encryption_conf.c,
src/storage_encryption_conf.h: Move to src/conf/
* src/Makefile.am: Add -Isrc/conf to the individual build targets
which need to use XML config APIs. Remove LIBXML_CFLAGS, LIBSSH2_CFLAGS
and SELINUX_CFLAGS from global INCLUDES and only have them in build
targets which actually need them. Create a libvirt_conf.la
convenience library for all config parsers
* src/hostusb.h: Remove bogus include of domain_conf.h
* tests/Makefile.am: Add -Isrc/conf. Remove bogus -I$builddir/src
since it never has any generated header files
* daemon/Makefile.am: Add -Isrc/conf
* proxy/Makefile.am: Add -Isrc/conf and cope with renamed files
* src/hash.c: Remove bogus include of libxml/threads.h
2009-09-16 14:39:12 +00:00
|
|
|
# XML configuration format handling sources
|
2008-08-20 20:48:35 +00:00
|
|
|
# Domain driver generic impl APIs
|
|
|
|
DOMAIN_CONF_SOURCES = \
|
Move all XML configuration handling to src/conf/
* src/capabilities.c, src/capabilities.h, src/domain_conf.c,
src/domain_conf.h, src/domain_event.c, src/domain_event.h,
src/interface_conf.c, src/interface_conf.h,
src/network_conf.c, src/network_conf.h, src/node_device_conf.c,
src/node_device_conf.h, src/secret_conf.c, src/secret_conf.h,
src/storage_conf.c, src/storage_conf.h, src/storage_encryption_conf.c,
src/storage_encryption_conf.h: Move to src/conf/
* src/Makefile.am: Add -Isrc/conf to the individual build targets
which need to use XML config APIs. Remove LIBXML_CFLAGS, LIBSSH2_CFLAGS
and SELINUX_CFLAGS from global INCLUDES and only have them in build
targets which actually need them. Create a libvirt_conf.la
convenience library for all config parsers
* src/hostusb.h: Remove bogus include of domain_conf.h
* tests/Makefile.am: Add -Isrc/conf. Remove bogus -I$builddir/src
since it never has any generated header files
* daemon/Makefile.am: Add -Isrc/conf
* proxy/Makefile.am: Add -Isrc/conf and cope with renamed files
* src/hash.c: Remove bogus include of libxml/threads.h
2009-09-16 14:39:12 +00:00
|
|
|
conf/capabilities.c conf/capabilities.h \
|
2010-06-21 18:18:31 +00:00
|
|
|
conf/domain_conf.c conf/domain_conf.h \
|
|
|
|
conf/domain_nwfilter.c conf/domain_nwfilter.h
|
Move all XML configuration handling to src/conf/
* src/capabilities.c, src/capabilities.h, src/domain_conf.c,
src/domain_conf.h, src/domain_event.c, src/domain_event.h,
src/interface_conf.c, src/interface_conf.h,
src/network_conf.c, src/network_conf.h, src/node_device_conf.c,
src/node_device_conf.h, src/secret_conf.c, src/secret_conf.h,
src/storage_conf.c, src/storage_conf.h, src/storage_encryption_conf.c,
src/storage_encryption_conf.h: Move to src/conf/
* src/Makefile.am: Add -Isrc/conf to the individual build targets
which need to use XML config APIs. Remove LIBXML_CFLAGS, LIBSSH2_CFLAGS
and SELINUX_CFLAGS from global INCLUDES and only have them in build
targets which actually need them. Create a libvirt_conf.la
convenience library for all config parsers
* src/hostusb.h: Remove bogus include of domain_conf.h
* tests/Makefile.am: Add -Isrc/conf. Remove bogus -I$builddir/src
since it never has any generated header files
* daemon/Makefile.am: Add -Isrc/conf
* proxy/Makefile.am: Add -Isrc/conf and cope with renamed files
* src/hash.c: Remove bogus include of libxml/threads.h
2009-09-16 14:39:12 +00:00
|
|
|
|
|
|
|
DOMAIN_EVENT_SOURCES = \
|
|
|
|
conf/domain_event.c conf/domain_event.h
|
2008-08-20 20:48:35 +00:00
|
|
|
|
|
|
|
# Network driver generic impl APIs
|
2010-03-25 17:46:07 +00:00
|
|
|
NETWORK_CONF_SOURCES = \
|
Move all XML configuration handling to src/conf/
* src/capabilities.c, src/capabilities.h, src/domain_conf.c,
src/domain_conf.h, src/domain_event.c, src/domain_event.h,
src/interface_conf.c, src/interface_conf.h,
src/network_conf.c, src/network_conf.h, src/node_device_conf.c,
src/node_device_conf.h, src/secret_conf.c, src/secret_conf.h,
src/storage_conf.c, src/storage_conf.h, src/storage_encryption_conf.c,
src/storage_encryption_conf.h: Move to src/conf/
* src/Makefile.am: Add -Isrc/conf to the individual build targets
which need to use XML config APIs. Remove LIBXML_CFLAGS, LIBSSH2_CFLAGS
and SELINUX_CFLAGS from global INCLUDES and only have them in build
targets which actually need them. Create a libvirt_conf.la
convenience library for all config parsers
* src/hostusb.h: Remove bogus include of domain_conf.h
* tests/Makefile.am: Add -Isrc/conf. Remove bogus -I$builddir/src
since it never has any generated header files
* daemon/Makefile.am: Add -Isrc/conf
* proxy/Makefile.am: Add -Isrc/conf and cope with renamed files
* src/hash.c: Remove bogus include of libxml/threads.h
2009-09-16 14:39:12 +00:00
|
|
|
conf/network_conf.c conf/network_conf.h
|
2008-08-20 20:48:35 +00:00
|
|
|
|
2010-03-25 17:46:07 +00:00
|
|
|
# Network filter driver generic impl APIs
|
|
|
|
NWFILTER_PARAM_CONF_SOURCES = \
|
2010-03-31 08:19:06 +00:00
|
|
|
conf/nwfilter_params.c conf/nwfilter_params.h \
|
|
|
|
conf/nwfilter_conf.h
|
2010-03-25 17:46:07 +00:00
|
|
|
|
|
|
|
NWFILTER_CONF_SOURCES = \
|
|
|
|
$(NWFILTER_PARAM_CONF_SOURCES) \
|
|
|
|
conf/nwfilter_conf.c conf/nwfilter_conf.h
|
|
|
|
|
2008-08-20 20:48:35 +00:00
|
|
|
# Storage driver generic impl APIs
|
Move all XML configuration handling to src/conf/
* src/capabilities.c, src/capabilities.h, src/domain_conf.c,
src/domain_conf.h, src/domain_event.c, src/domain_event.h,
src/interface_conf.c, src/interface_conf.h,
src/network_conf.c, src/network_conf.h, src/node_device_conf.c,
src/node_device_conf.h, src/secret_conf.c, src/secret_conf.h,
src/storage_conf.c, src/storage_conf.h, src/storage_encryption_conf.c,
src/storage_encryption_conf.h: Move to src/conf/
* src/Makefile.am: Add -Isrc/conf to the individual build targets
which need to use XML config APIs. Remove LIBXML_CFLAGS, LIBSSH2_CFLAGS
and SELINUX_CFLAGS from global INCLUDES and only have them in build
targets which actually need them. Create a libvirt_conf.la
convenience library for all config parsers
* src/hostusb.h: Remove bogus include of domain_conf.h
* tests/Makefile.am: Add -Isrc/conf. Remove bogus -I$builddir/src
since it never has any generated header files
* daemon/Makefile.am: Add -Isrc/conf
* proxy/Makefile.am: Add -Isrc/conf and cope with renamed files
* src/hash.c: Remove bogus include of libxml/threads.h
2009-09-16 14:39:12 +00:00
|
|
|
STORAGE_CONF_SOURCES = \
|
|
|
|
conf/storage_conf.h conf/storage_conf.c
|
2008-08-20 20:48:35 +00:00
|
|
|
|
2009-07-15 17:34:04 +00:00
|
|
|
# Interface driver generic impl APIs
|
Move all XML configuration handling to src/conf/
* src/capabilities.c, src/capabilities.h, src/domain_conf.c,
src/domain_conf.h, src/domain_event.c, src/domain_event.h,
src/interface_conf.c, src/interface_conf.h,
src/network_conf.c, src/network_conf.h, src/node_device_conf.c,
src/node_device_conf.h, src/secret_conf.c, src/secret_conf.h,
src/storage_conf.c, src/storage_conf.h, src/storage_encryption_conf.c,
src/storage_encryption_conf.h: Move to src/conf/
* src/Makefile.am: Add -Isrc/conf to the individual build targets
which need to use XML config APIs. Remove LIBXML_CFLAGS, LIBSSH2_CFLAGS
and SELINUX_CFLAGS from global INCLUDES and only have them in build
targets which actually need them. Create a libvirt_conf.la
convenience library for all config parsers
* src/hostusb.h: Remove bogus include of domain_conf.h
* tests/Makefile.am: Add -Isrc/conf. Remove bogus -I$builddir/src
since it never has any generated header files
* daemon/Makefile.am: Add -Isrc/conf
* proxy/Makefile.am: Add -Isrc/conf and cope with renamed files
* src/hash.c: Remove bogus include of libxml/threads.h
2009-09-16 14:39:12 +00:00
|
|
|
INTERFACE_CONF_SOURCES = \
|
|
|
|
conf/interface_conf.c conf/interface_conf.h
|
2008-08-20 20:48:35 +00:00
|
|
|
|
2009-09-01 15:27:46 +00:00
|
|
|
# Secret driver generic impl APIs
|
Move all XML configuration handling to src/conf/
* src/capabilities.c, src/capabilities.h, src/domain_conf.c,
src/domain_conf.h, src/domain_event.c, src/domain_event.h,
src/interface_conf.c, src/interface_conf.h,
src/network_conf.c, src/network_conf.h, src/node_device_conf.c,
src/node_device_conf.h, src/secret_conf.c, src/secret_conf.h,
src/storage_conf.c, src/storage_conf.h, src/storage_encryption_conf.c,
src/storage_encryption_conf.h: Move to src/conf/
* src/Makefile.am: Add -Isrc/conf to the individual build targets
which need to use XML config APIs. Remove LIBXML_CFLAGS, LIBSSH2_CFLAGS
and SELINUX_CFLAGS from global INCLUDES and only have them in build
targets which actually need them. Create a libvirt_conf.la
convenience library for all config parsers
* src/hostusb.h: Remove bogus include of domain_conf.h
* tests/Makefile.am: Add -Isrc/conf. Remove bogus -I$builddir/src
since it never has any generated header files
* daemon/Makefile.am: Add -Isrc/conf
* proxy/Makefile.am: Add -Isrc/conf and cope with renamed files
* src/hash.c: Remove bogus include of libxml/threads.h
2009-09-16 14:39:12 +00:00
|
|
|
SECRET_CONF_SOURCES = \
|
|
|
|
conf/secret_conf.h conf/secret_conf.c
|
|
|
|
|
|
|
|
# Network driver generic impl APIs
|
|
|
|
NODE_DEVICE_CONF_SOURCES = \
|
|
|
|
conf/node_device_conf.c conf/node_device_conf.h
|
|
|
|
|
|
|
|
ENCRYPTION_CONF_SOURCES = \
|
|
|
|
conf/storage_encryption_conf.c conf/storage_encryption_conf.h
|
|
|
|
|
2009-12-18 13:44:55 +00:00
|
|
|
CPU_CONF_SOURCES = \
|
|
|
|
conf/cpu_conf.c conf/cpu_conf.h
|
|
|
|
|
Move all XML configuration handling to src/conf/
* src/capabilities.c, src/capabilities.h, src/domain_conf.c,
src/domain_conf.h, src/domain_event.c, src/domain_event.h,
src/interface_conf.c, src/interface_conf.h,
src/network_conf.c, src/network_conf.h, src/node_device_conf.c,
src/node_device_conf.h, src/secret_conf.c, src/secret_conf.h,
src/storage_conf.c, src/storage_conf.h, src/storage_encryption_conf.c,
src/storage_encryption_conf.h: Move to src/conf/
* src/Makefile.am: Add -Isrc/conf to the individual build targets
which need to use XML config APIs. Remove LIBXML_CFLAGS, LIBSSH2_CFLAGS
and SELINUX_CFLAGS from global INCLUDES and only have them in build
targets which actually need them. Create a libvirt_conf.la
convenience library for all config parsers
* src/hostusb.h: Remove bogus include of domain_conf.h
* tests/Makefile.am: Add -Isrc/conf. Remove bogus -I$builddir/src
since it never has any generated header files
* daemon/Makefile.am: Add -Isrc/conf
* proxy/Makefile.am: Add -Isrc/conf and cope with renamed files
* src/hash.c: Remove bogus include of libxml/threads.h
2009-09-16 14:39:12 +00:00
|
|
|
CONF_SOURCES = \
|
|
|
|
$(DOMAIN_CONF_SOURCES) \
|
|
|
|
$(DOMAIN_EVENT_SOURCES) \
|
|
|
|
$(NETWORK_CONF_SOURCES) \
|
2010-03-25 17:46:07 +00:00
|
|
|
$(NWFILTER_CONF_SOURCES) \
|
Move all XML configuration handling to src/conf/
* src/capabilities.c, src/capabilities.h, src/domain_conf.c,
src/domain_conf.h, src/domain_event.c, src/domain_event.h,
src/interface_conf.c, src/interface_conf.h,
src/network_conf.c, src/network_conf.h, src/node_device_conf.c,
src/node_device_conf.h, src/secret_conf.c, src/secret_conf.h,
src/storage_conf.c, src/storage_conf.h, src/storage_encryption_conf.c,
src/storage_encryption_conf.h: Move to src/conf/
* src/Makefile.am: Add -Isrc/conf to the individual build targets
which need to use XML config APIs. Remove LIBXML_CFLAGS, LIBSSH2_CFLAGS
and SELINUX_CFLAGS from global INCLUDES and only have them in build
targets which actually need them. Create a libvirt_conf.la
convenience library for all config parsers
* src/hostusb.h: Remove bogus include of domain_conf.h
* tests/Makefile.am: Add -Isrc/conf. Remove bogus -I$builddir/src
since it never has any generated header files
* daemon/Makefile.am: Add -Isrc/conf
* proxy/Makefile.am: Add -Isrc/conf and cope with renamed files
* src/hash.c: Remove bogus include of libxml/threads.h
2009-09-16 14:39:12 +00:00
|
|
|
$(NODE_DEVICE_CONF_SOURCES) \
|
|
|
|
$(STORAGE_CONF_SOURCES) \
|
|
|
|
$(ENCRYPTION_CONF_SOURCES) \
|
|
|
|
$(INTERFACE_CONF_SOURCES) \
|
2009-12-18 13:44:55 +00:00
|
|
|
$(SECRET_CONF_SOURCES) \
|
|
|
|
$(CPU_CONF_SOURCES)
|
2009-09-01 15:27:46 +00:00
|
|
|
|
2008-08-20 20:48:35 +00:00
|
|
|
# The remote RPC driver, covering domains, storage, networks, etc
|
|
|
|
REMOTE_DRIVER_SOURCES = \
|
2009-09-15 17:47:05 +00:00
|
|
|
gnutls_1_0_compat.h \
|
|
|
|
remote/remote_driver.c remote/remote_driver.h \
|
2009-09-16 15:55:16 +00:00
|
|
|
remote/remote_protocol.c \
|
2010-04-17 02:09:25 +00:00
|
|
|
remote/remote_protocol.h \
|
|
|
|
remote/qemu_protocol.c \
|
|
|
|
remote/qemu_protocol.h
|
2009-09-16 15:55:16 +00:00
|
|
|
|
2010-07-29 20:19:40 +00:00
|
|
|
EXTRA_DIST += remote/remote_protocol.x remote/qemu_protocol.x \
|
|
|
|
remote/rpcgen_fix.pl
|
2008-08-20 20:48:35 +00:00
|
|
|
|
2010-05-07 14:01:26 +00:00
|
|
|
# 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
|
2010-05-19 13:36:27 +00:00
|
|
|
|
|
|
|
# With pdwtags 1.8, --verbose output includes separators like these:
|
|
|
|
# /* 93 */
|
|
|
|
# /* <0> (null):0 */
|
|
|
|
# whereas with pdwtags 1.3, they look like this:
|
|
|
|
# /* <2d2> /usr/include/libio.h:180 */
|
|
|
|
# The concatenation of the following regexps matches both cases.
|
|
|
|
r1 = (?:/\* \d+ \*/\n)?
|
|
|
|
r2 = /\* <[[:xdigit:]]+> \S+:\d+ \*/
|
|
|
|
|
2010-05-07 14:01:26 +00:00
|
|
|
.PHONY: remote_protocol-structs
|
|
|
|
remote_protocol-structs:
|
2010-05-10 20:17:10 +00:00
|
|
|
$(AM_V_GEN)if (pdwtags --help) > /dev/null 2>&1; then \
|
2010-05-19 13:36:27 +00:00
|
|
|
pdwtags --verbose libvirt_driver_remote_la-remote_protocol.$(OBJEXT) \
|
2010-05-07 14:01:26 +00:00
|
|
|
| perl -0777 -n \
|
2010-05-19 13:36:27 +00:00
|
|
|
-e 'foreach my $$p (split m!\n\n$(r1)$(r2)\n!) {' \
|
|
|
|
-e ' if ($$p =~ /^struct remote_/) {' \
|
|
|
|
-e ' $$p =~ s!\t*/\*.*?\*/!!sg;' \
|
|
|
|
-e ' $$p =~ s!\s+\n!\n!sg;' \
|
|
|
|
-e ' $$p =~ s!\s+$$!!;' \
|
|
|
|
-e ' print "$$p\n";' \
|
|
|
|
-e ' $$n++;' \
|
|
|
|
-e ' }' \
|
|
|
|
-e '}' \
|
|
|
|
-e 'END {' \
|
|
|
|
-e ' if ($$n < 300) {' \
|
|
|
|
-e ' warn "WARNING: your pdwtags program is too old\n";' \
|
|
|
|
-e ' warn "WARNING: skipping the $@ test\n";' \
|
|
|
|
-e ' warn "WARNING: install dwarves-1.3 or newer\n";' \
|
|
|
|
-e ' exit 8;' \
|
|
|
|
-e ' }' \
|
|
|
|
-e '}' \
|
2010-05-07 14:01:26 +00:00
|
|
|
> $@-t; \
|
2010-05-19 13:36:27 +00:00
|
|
|
case $$? in 8) exit 0;; 0) ;; *) exit 1;; esac; \
|
2010-05-10 21:17:31 +00:00
|
|
|
diff -u $@-t $(srcdir)/$@; st=$$?; rm -f $@-t; exit $$st; \
|
2010-05-07 14:01:26 +00:00
|
|
|
else \
|
2010-05-19 13:36:27 +00:00
|
|
|
echo 'WARNING: you lack pdwtags; skipping the $@ test' >&2; \
|
|
|
|
echo 'WARNING: install the dwarves package to get pdwtags' >&2; \
|
2010-05-07 14:01:26 +00:00
|
|
|
fi
|
|
|
|
EXTRA_DIST += remote_protocol-structs
|
|
|
|
check-local: remote_protocol-structs
|
|
|
|
|
2008-08-20 20:48:35 +00:00
|
|
|
# Mock driver, covering domains, storage, networks, etc
|
|
|
|
TEST_DRIVER_SOURCES = \
|
2009-09-15 17:38:50 +00:00
|
|
|
test/test_driver.c test/test_driver.h
|
2008-08-20 20:48:35 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# Now the Hypervisor specific drivers
|
|
|
|
XEN_DRIVER_SOURCES = \
|
Move xen driver code into src/xen/ directory
* src/Makefile.am, src/proxy_internal.c, src/proxy_internal.h
src/sexpr.c, src/sexpr.h, src/xen_unified.c, src/xen_unified.h,
src/xen_internal.c, src/xen_internal.h, src/xen_inotify.c,
src/xen_inotify.h, src/xend_internal.c, src/xend_internal.h,
src/xm_internal.c, src/xm_internal.h, src/xs_internal.c,
src/xs_internal.h: Move to src/xen/ directory
* proxy/Makefile.am, proxy/libvirt_proxy.c, src/Makefile.am,
src/libvirt.c, tests/sexpr2xmltest.c, tests/statstest.c,
tests/xencapstest.c, tests/xmconfigtest.c, tests/xml2sexprtest.c:
Adapt to changed xen location
* src/stats_linux.h, src/stats_linux.c: Remove xen specific block
stats APIs
* src/qemu_driver.c, src/uml_driver.c: Add missing sys/un.h include
uncovered after change to stats_linux.h
* src/xen/block_stats.h, src/xen/block_stats.c: Add xen specific
block stats APIs
2009-09-15 15:38:33 +00:00
|
|
|
xen/sexpr.c xen/sexpr.h \
|
|
|
|
xen/block_stats.c xen/block_stats.h \
|
|
|
|
xen/xen_hypervisor.c xen/xen_hypervisor.h \
|
|
|
|
xen/xen_driver.c xen/xen_driver.h \
|
|
|
|
xen/xend_internal.c xen/xend_internal.h \
|
|
|
|
xen/xm_internal.c xen/xm_internal.h \
|
|
|
|
xen/xs_internal.c xen/xs_internal.h
|
2008-11-25 10:44:52 +00:00
|
|
|
if WITH_XEN_INOTIFY
|
Move xen driver code into src/xen/ directory
* src/Makefile.am, src/proxy_internal.c, src/proxy_internal.h
src/sexpr.c, src/sexpr.h, src/xen_unified.c, src/xen_unified.h,
src/xen_internal.c, src/xen_internal.h, src/xen_inotify.c,
src/xen_inotify.h, src/xend_internal.c, src/xend_internal.h,
src/xm_internal.c, src/xm_internal.h, src/xs_internal.c,
src/xs_internal.h: Move to src/xen/ directory
* proxy/Makefile.am, proxy/libvirt_proxy.c, src/Makefile.am,
src/libvirt.c, tests/sexpr2xmltest.c, tests/statstest.c,
tests/xencapstest.c, tests/xmconfigtest.c, tests/xml2sexprtest.c:
Adapt to changed xen location
* src/stats_linux.h, src/stats_linux.c: Remove xen specific block
stats APIs
* src/qemu_driver.c, src/uml_driver.c: Add missing sys/un.h include
uncovered after change to stats_linux.h
* src/xen/block_stats.h, src/xen/block_stats.c: Add xen specific
block stats APIs
2009-09-15 15:38:33 +00:00
|
|
|
XEN_DRIVER_SOURCES += xen/xen_inotify.c xen/xen_inotify.h
|
2008-11-25 10:44:52 +00:00
|
|
|
endif
|
2008-08-20 20:48:35 +00:00
|
|
|
|
|
|
|
LXC_DRIVER_SOURCES = \
|
2009-09-15 16:03:01 +00:00
|
|
|
lxc/lxc_conf.c lxc/lxc_conf.h \
|
|
|
|
lxc/lxc_container.c lxc/lxc_container.h \
|
|
|
|
lxc/lxc_driver.c lxc/lxc_driver.h \
|
Move all shared utility files to src/util/
* src/bridge.c, src/bridge.h, src/buf.c, src/buf.h, src/cgroup.c,
src/cgroup.h, src/conf.c, src/conf.h, src/event.c, src/event.h,
src/hash.c, src/hash.h, src/hostusb.c, src/hostusb.h,
src/iptables.c, src/iptables.h, src/logging.c, src/logging.h,
src/memory.c, src/memory.h, src/pci.c, src/pci.h, src/qparams.c,
src/qparams.h, src/stats_linux.c, src/stats_linux.h,
src/threads-pthread.c, src/threads-pthread.h, src/threads-win32.c,
src/threads-win32.h, src/threads.c, src/threads.h, src/util.c,
src/util.h, src/uuid.c, src/uuid.h, src/virterror.c,
src/virterror_internal.h, src/xml.c, src/xml.h: Move all files
into src/util/
* daemon/Makefile.am: Add -Isrc/util/ to build flags
* src/Makefile.am: Add -Isrc/util/ to build flags and update for
moved files
* src/libvirt_private.syms: Export cgroup APIs since they're now
in util rather than linking directly to drivers
* src/xen/xs_internal.c: Disable bogus virEventRemoveHandle call
when built under PROXY
* proxy/Makefile.am: Update for changed file locations. Remove
bogus build of event.c
* tools/Makefile.am, tests/Makefile.am: Add -Isrc/util/ to build flags
2009-09-16 15:28:46 +00:00
|
|
|
lxc/veth.c lxc/veth.h
|
2005-11-10 16:12:31 +00:00
|
|
|
|
2008-08-20 20:55:32 +00:00
|
|
|
LXC_CONTROLLER_SOURCES = \
|
2009-09-15 16:03:01 +00:00
|
|
|
lxc/lxc_conf.c lxc/lxc_conf.h \
|
|
|
|
lxc/lxc_container.c lxc/lxc_container.h \
|
|
|
|
lxc/lxc_controller.c \
|
Move all shared utility files to src/util/
* src/bridge.c, src/bridge.h, src/buf.c, src/buf.h, src/cgroup.c,
src/cgroup.h, src/conf.c, src/conf.h, src/event.c, src/event.h,
src/hash.c, src/hash.h, src/hostusb.c, src/hostusb.h,
src/iptables.c, src/iptables.h, src/logging.c, src/logging.h,
src/memory.c, src/memory.h, src/pci.c, src/pci.h, src/qparams.c,
src/qparams.h, src/stats_linux.c, src/stats_linux.h,
src/threads-pthread.c, src/threads-pthread.h, src/threads-win32.c,
src/threads-win32.h, src/threads.c, src/threads.h, src/util.c,
src/util.h, src/uuid.c, src/uuid.h, src/virterror.c,
src/virterror_internal.h, src/xml.c, src/xml.h: Move all files
into src/util/
* daemon/Makefile.am: Add -Isrc/util/ to build flags
* src/Makefile.am: Add -Isrc/util/ to build flags and update for
moved files
* src/libvirt_private.syms: Export cgroup APIs since they're now
in util rather than linking directly to drivers
* src/xen/xs_internal.c: Disable bogus virEventRemoveHandle call
when built under PROXY
* proxy/Makefile.am: Update for changed file locations. Remove
bogus build of event.c
* tools/Makefile.am, tests/Makefile.am: Add -Isrc/util/ to build flags
2009-09-16 15:28:46 +00:00
|
|
|
lxc/veth.c lxc/veth.h
|
2008-08-20 20:55:32 +00:00
|
|
|
|
2009-10-08 14:34:22 +00:00
|
|
|
SECURITY_DRIVER_APPARMOR_HELPER_SOURCES = \
|
|
|
|
security/virt-aa-helper.c
|
|
|
|
|
2009-07-24 14:17:06 +00:00
|
|
|
PHYP_DRIVER_SOURCES = \
|
|
|
|
phyp/phyp_driver.c phyp/phyp_driver.h
|
|
|
|
|
2008-08-20 20:48:35 +00:00
|
|
|
OPENVZ_DRIVER_SOURCES = \
|
2009-09-15 16:32:56 +00:00
|
|
|
openvz/openvz_conf.c openvz/openvz_conf.h \
|
|
|
|
openvz/openvz_driver.c openvz/openvz_driver.h
|
2007-06-15 01:21:18 +00:00
|
|
|
|
2009-07-24 14:17:06 +00:00
|
|
|
VBOX_DRIVER_SOURCES = \
|
|
|
|
vbox/vbox_XPCOMCGlue.c vbox/vbox_XPCOMCGlue.h \
|
|
|
|
vbox/vbox_driver.c vbox/vbox_driver.h \
|
2009-07-24 16:12:16 +00:00
|
|
|
vbox/vbox_V2_2.c vbox/vbox_CAPI_v2_2.h \
|
2009-12-04 13:49:45 +00:00
|
|
|
vbox/vbox_V3_0.c vbox/vbox_CAPI_v3_0.h \
|
2010-05-26 11:54:16 +00:00
|
|
|
vbox/vbox_V3_1.c vbox/vbox_CAPI_v3_1.h \
|
|
|
|
vbox/vbox_V3_2.c vbox/vbox_CAPI_v3_2.h
|
2009-04-17 16:09:07 +00:00
|
|
|
|
2009-04-19 16:36:22 +00:00
|
|
|
VBOX_DRIVER_EXTRA_DIST = vbox/vbox_tmpl.c vbox/README
|
|
|
|
|
2008-08-20 20:48:35 +00:00
|
|
|
QEMU_DRIVER_SOURCES = \
|
2010-12-16 15:07:07 +00:00
|
|
|
qemu/qemu_capabilities.c qemu/qemu_capabilities.h\
|
2010-12-16 15:07:07 +00:00
|
|
|
qemu/qemu_command.c qemu/qemu_command.h \
|
2010-12-16 15:23:41 +00:00
|
|
|
qemu/qemu_domain.c qemu/qemu_domain.h \
|
2010-12-16 16:10:54 +00:00
|
|
|
qemu/qemu_audit.c qemu/qemu_audit.h \
|
Move all shared utility files to src/util/
* src/bridge.c, src/bridge.h, src/buf.c, src/buf.h, src/cgroup.c,
src/cgroup.h, src/conf.c, src/conf.h, src/event.c, src/event.h,
src/hash.c, src/hash.h, src/hostusb.c, src/hostusb.h,
src/iptables.c, src/iptables.h, src/logging.c, src/logging.h,
src/memory.c, src/memory.h, src/pci.c, src/pci.h, src/qparams.c,
src/qparams.h, src/stats_linux.c, src/stats_linux.h,
src/threads-pthread.c, src/threads-pthread.h, src/threads-win32.c,
src/threads-win32.h, src/threads.c, src/threads.h, src/util.c,
src/util.h, src/uuid.c, src/uuid.h, src/virterror.c,
src/virterror_internal.h, src/xml.c, src/xml.h: Move all files
into src/util/
* daemon/Makefile.am: Add -Isrc/util/ to build flags
* src/Makefile.am: Add -Isrc/util/ to build flags and update for
moved files
* src/libvirt_private.syms: Export cgroup APIs since they're now
in util rather than linking directly to drivers
* src/xen/xs_internal.c: Disable bogus virEventRemoveHandle call
when built under PROXY
* proxy/Makefile.am: Update for changed file locations. Remove
bogus build of event.c
* tools/Makefile.am, tests/Makefile.am: Add -Isrc/util/ to build flags
2009-09-16 15:28:46 +00:00
|
|
|
qemu/qemu_conf.c qemu/qemu_conf.h \
|
2009-10-09 18:07:55 +00:00
|
|
|
qemu/qemu_monitor.c qemu/qemu_monitor.h \
|
2009-09-22 17:48:40 +00:00
|
|
|
qemu/qemu_monitor_text.c \
|
|
|
|
qemu/qemu_monitor_text.h \
|
2009-11-03 18:59:18 +00:00
|
|
|
qemu/qemu_monitor_json.c \
|
|
|
|
qemu/qemu_monitor_json.h \
|
|
|
|
qemu/qemu_driver.c qemu/qemu_driver.h \
|
2010-05-07 17:11:02 +00:00
|
|
|
qemu/qemu_bridge_filter.c \
|
2010-01-13 16:26:55 +00:00
|
|
|
qemu/qemu_bridge_filter.h \
|
|
|
|
qemu/qemu_security_stacked.h \
|
2010-01-13 16:43:29 +00:00
|
|
|
qemu/qemu_security_stacked.c \
|
|
|
|
qemu/qemu_security_dac.h \
|
|
|
|
qemu/qemu_security_dac.c
|
2008-04-18 08:33:23 +00:00
|
|
|
|
2010-03-14 11:11:51 +00:00
|
|
|
XENAPI_DRIVER_SOURCES = \
|
|
|
|
xenapi/xenapi_driver.c xenapi/xenapi_driver.h \
|
2010-03-17 16:25:50 +00:00
|
|
|
xenapi/xenapi_driver_private.h \
|
2010-03-14 11:11:51 +00:00
|
|
|
xenapi/xenapi_utils.c xenapi/xenapi_utils.h
|
|
|
|
|
2008-11-19 16:58:23 +00:00
|
|
|
UML_DRIVER_SOURCES = \
|
2009-09-15 16:25:30 +00:00
|
|
|
uml/uml_conf.c uml/uml_conf.h \
|
|
|
|
uml/uml_driver.c uml/uml_driver.h
|
2008-11-19 16:58:23 +00:00
|
|
|
|
2009-07-24 14:17:06 +00:00
|
|
|
ONE_DRIVER_SOURCES = \
|
|
|
|
./opennebula/one_conf.c \
|
|
|
|
./opennebula/one_conf.h \
|
|
|
|
./opennebula/one_driver.c \
|
|
|
|
./opennebula/one_driver.h \
|
|
|
|
./opennebula/one_client.c \
|
2009-06-24 17:32:56 +00:00
|
|
|
./opennebula/one_client.h
|
2009-05-25 11:56:00 +00:00
|
|
|
|
2009-07-24 14:17:06 +00:00
|
|
|
ESX_DRIVER_SOURCES = \
|
2010-01-15 15:01:02 +00:00
|
|
|
esx/esx_private.h \
|
2009-07-24 14:17:06 +00:00
|
|
|
esx/esx_driver.c esx/esx_driver.h \
|
2010-01-15 15:01:02 +00:00
|
|
|
esx/esx_interface_driver.c esx/esx_interface_driver.h \
|
|
|
|
esx/esx_network_driver.c esx/esx_network_driver.h \
|
|
|
|
esx/esx_storage_driver.c esx/esx_storage_driver.h \
|
|
|
|
esx/esx_device_monitor.c esx/esx_device_monitor.h \
|
|
|
|
esx/esx_secret_driver.c esx/esx_secret_driver.h \
|
2010-04-14 23:38:50 +00:00
|
|
|
esx/esx_nwfilter_driver.c esx/esx_nwfilter_driver.h \
|
2009-07-24 14:17:06 +00:00
|
|
|
esx/esx_util.c esx/esx_util.h \
|
|
|
|
esx/esx_vi.c esx/esx_vi.h \
|
2009-07-23 20:21:08 +00:00
|
|
|
esx/esx_vi_methods.c esx/esx_vi_methods.h \
|
|
|
|
esx/esx_vi_types.c esx/esx_vi_types.h \
|
|
|
|
esx/esx_vmx.c esx/esx_vmx.h
|
|
|
|
|
2010-03-06 16:56:28 +00:00
|
|
|
ESX_DRIVER_GENERATED = \
|
2010-04-26 14:59:50 +00:00
|
|
|
esx/esx_vi_methods.generated.c \
|
|
|
|
esx/esx_vi_methods.generated.h \
|
2010-03-06 16:56:28 +00:00
|
|
|
esx/esx_vi_types.generated.c \
|
|
|
|
esx/esx_vi_types.generated.h \
|
|
|
|
esx/esx_vi_types.generated.typedef \
|
|
|
|
esx/esx_vi_types.generated.typeenum \
|
|
|
|
esx/esx_vi_types.generated.typetostring \
|
|
|
|
esx/esx_vi_types.generated.typefromstring
|
|
|
|
|
|
|
|
ESX_DRIVER_EXTRA_DIST = \
|
|
|
|
esx/README \
|
|
|
|
esx/esx_vi_generator.input \
|
|
|
|
esx/esx_vi_generator.py \
|
|
|
|
$(ESX_DRIVER_GENERATED)
|
|
|
|
|
2008-10-10 13:57:13 +00:00
|
|
|
NETWORK_DRIVER_SOURCES = \
|
2009-09-15 17:52:58 +00:00
|
|
|
network/bridge_driver.h network/bridge_driver.c
|
2008-08-20 20:48:35 +00:00
|
|
|
|
2009-07-21 14:02:16 +00:00
|
|
|
INTERFACE_DRIVER_SOURCES = \
|
2009-09-15 17:55:16 +00:00
|
|
|
interface/netcf_driver.h interface/netcf_driver.c
|
2009-07-21 14:02:16 +00:00
|
|
|
|
2009-08-14 19:48:55 +00:00
|
|
|
SECRET_DRIVER_SOURCES = \
|
2009-09-15 17:59:58 +00:00
|
|
|
secret/secret_driver.h secret/secret_driver.c
|
2009-08-14 19:48:55 +00:00
|
|
|
|
2009-03-03 09:44:41 +00:00
|
|
|
# Storage backend specific impls
|
2008-08-20 20:48:35 +00:00
|
|
|
STORAGE_DRIVER_SOURCES = \
|
2009-09-15 16:55:05 +00:00
|
|
|
storage/storage_driver.h storage/storage_driver.c \
|
|
|
|
storage/storage_backend.h storage/storage_backend.c
|
2008-08-20 20:48:35 +00:00
|
|
|
|
|
|
|
STORAGE_DRIVER_FS_SOURCES = \
|
2009-09-15 16:55:05 +00:00
|
|
|
storage/storage_backend_fs.h storage/storage_backend_fs.c
|
2008-04-18 08:33:23 +00:00
|
|
|
|
2008-08-20 20:48:35 +00:00
|
|
|
STORAGE_DRIVER_LVM_SOURCES = \
|
2009-09-15 16:55:05 +00:00
|
|
|
storage/storage_backend_logical.h \
|
|
|
|
storage/storage_backend_logical.c
|
2008-08-20 20:48:35 +00:00
|
|
|
|
|
|
|
STORAGE_DRIVER_ISCSI_SOURCES = \
|
2009-09-15 16:55:05 +00:00
|
|
|
storage/storage_backend_iscsi.h storage/storage_backend_iscsi.c
|
2008-08-20 20:48:35 +00:00
|
|
|
|
2009-04-01 16:03:22 +00:00
|
|
|
STORAGE_DRIVER_SCSI_SOURCES = \
|
2009-09-15 16:55:05 +00:00
|
|
|
storage/storage_backend_scsi.h storage/storage_backend_scsi.c
|
2009-04-01 16:03:22 +00:00
|
|
|
|
2009-09-08 13:47:45 +00:00
|
|
|
STORAGE_DRIVER_MPATH_SOURCES = \
|
2009-09-15 16:55:05 +00:00
|
|
|
storage/storage_backend_mpath.h storage/storage_backend_mpath.c
|
2009-09-08 13:47:45 +00:00
|
|
|
|
2008-08-20 20:48:35 +00:00
|
|
|
STORAGE_DRIVER_DISK_SOURCES = \
|
2009-09-15 16:55:05 +00:00
|
|
|
storage/storage_backend_disk.h storage/storage_backend_disk.c
|
2008-08-20 20:48:35 +00:00
|
|
|
|
|
|
|
STORAGE_HELPER_DISK_SOURCES = \
|
2009-09-15 16:55:05 +00:00
|
|
|
storage/parthelper.c
|
2008-08-20 20:48:35 +00:00
|
|
|
|
2010-03-25 17:46:09 +00:00
|
|
|
# Network filters
|
|
|
|
NWFILTER_DRIVER_SOURCES = \
|
|
|
|
nwfilter/nwfilter_driver.h nwfilter/nwfilter_driver.c \
|
2010-03-31 08:19:06 +00:00
|
|
|
nwfilter/nwfilter_gentech_driver.c \
|
|
|
|
nwfilter/nwfilter_gentech_driver.h \
|
|
|
|
nwfilter/nwfilter_ebiptables_driver.c \
|
nwfilter: Support for learning a VM's IP address
This patch implements support for learning a VM's IP address. It uses
the pcap library to listen on the VM's backend network interface (tap)
or the physical ethernet device (macvtap) and tries to capture packets
with source or destination MAC address of the VM and learn from DHCP
Offers, ARP traffic, or first-sent IPv4 packet what the IP address of
the VM's interface is. This then allows to instantiate the network
traffic filtering rules without the user having to provide the IP
parameter somewhere in the filter description or in the interface
description as a parameter. This only supports to detect the parameter
IP, which is for the assumed single IPv4 address of a VM. There is not
support for interfaces that may have multiple IP addresses (IP
aliasing) or IPv6 that may then require more than one valid IP address
to be detected. A VM can have multiple independent interfaces that each
uses a different IP address and in that case it will be attempted to
detect each one of the address independently.
So, when for example an interface description in the domain XML has
looked like this up to now:
<interface type='bridge'>
<source bridge='mybridge'/>
<model type='virtio'/>
<filterref filter='clean-traffic'>
<parameter name='IP' value='10.2.3.4'/>
</filterref>
</interface>
you may omit the IP parameter:
<interface type='bridge'>
<source bridge='mybridge'/>
<model type='virtio'/>
<filterref filter='clean-traffic'/>
</interface>
Internally I am walking the 'tree' of a VM's referenced network filters
and determine with the given variables which variables are missing. Now,
the above IP parameter may be missing and this causes a libvirt-internal
thread to be started that uses the pcap library's API to listen to the
backend interface (in case of macvtap to the physical interface) in an
attempt to determine the missing IP parameter. If the backend interface
disappears the thread terminates assuming the VM was brought down. In
case of a macvtap device a timeout is being used to wait for packets
from the given VM (filtering by VM's interface MAC address). If the VM's
macvtap device disappeared the thread also terminates. In all other
cases it tries to determine the IP address of the VM and will then apply
the rules late on the given interface, which would have happened
immediately if the IP parameter had been explicitly given. In case an
error happens while the firewall rules are applied, the VM's backend
interface is 'down'ed preventing it to communicate. Reasons for failure
for applying the network firewall rules may that an ebtables/iptables
command failes or OOM errors. Essentially the same failure reasons may
occur as when the firewall rules are applied immediately on VM start,
except that due to the late application of the filtering rules the VM
now is already running and cannot be hindered anymore from starting.
Bringing down the whole VM would probably be considered too drastic.
While a VM's IP address is attempted to be determined only limited
updates to network filters are allowed. In particular it is prevented
that filters are modified in such a way that they would introduce new
variables.
A caveat: The algorithm does not know which one is the appropriate IP
address of a VM. If the VM spoofs an IP address in its first ARP traffic
or IPv4 packets its filtering rules will be instantiated for this IP
address, thus 'locking' it to the found IP address. So, it's still
'safer' to explicitly provide the IP address of a VM's interface in the
filter description if it is known beforehand.
* configure.ac: detect libpcap
* libvirt.spec.in: require libpcap[-devel] if qemu is built
* src/internal.h: add the new ATTRIBUTE_PACKED define
* src/Makefile.am src/libvirt_private.syms: add the new modules and symbols
* src/nwfilter/nwfilter_learnipaddr.[ch]: new module being added
* src/nwfilter/nwfilter_driver.c src/conf/nwfilter_conf.[ch]
src/nwfilter/nwfilter_ebiptables_driver.[ch]
src/nwfilter/nwfilter_gentech_driver.[ch]: plu the new functionality in
* tests/nwfilterxml2xmltest: extend testing
2010-04-07 21:02:18 +00:00
|
|
|
nwfilter/nwfilter_ebiptables_driver.h \
|
|
|
|
nwfilter/nwfilter_learnipaddr.c \
|
|
|
|
nwfilter/nwfilter_learnipaddr.h
|
2010-03-31 08:19:06 +00:00
|
|
|
|
2008-08-20 20:48:35 +00:00
|
|
|
|
2009-03-03 09:44:41 +00:00
|
|
|
# Security framework and drivers for various models
|
2009-07-24 14:17:06 +00:00
|
|
|
SECURITY_DRIVER_SOURCES = \
|
2009-09-15 18:06:37 +00:00
|
|
|
security/security_driver.h security/security_driver.c
|
2009-03-03 09:44:41 +00:00
|
|
|
|
2009-03-03 10:06:49 +00:00
|
|
|
SECURITY_DRIVER_SELINUX_SOURCES = \
|
2009-09-15 18:06:37 +00:00
|
|
|
security/security_selinux.h security/security_selinux.c
|
2009-03-03 10:06:49 +00:00
|
|
|
|
2009-10-08 14:34:22 +00:00
|
|
|
SECURITY_DRIVER_APPARMOR_SOURCES = \
|
|
|
|
security/security_apparmor.h security/security_apparmor.c
|
|
|
|
|
2009-03-03 09:44:41 +00:00
|
|
|
|
2008-11-21 12:27:11 +00:00
|
|
|
NODE_DEVICE_DRIVER_SOURCES = \
|
2009-11-12 21:48:24 +00:00
|
|
|
node_device/node_device_driver.c \
|
|
|
|
node_device/node_device_driver.h \
|
|
|
|
node_device/node_device_linux_sysfs.c
|
2008-11-21 12:27:11 +00:00
|
|
|
|
|
|
|
NODE_DEVICE_DRIVER_HAL_SOURCES = \
|
2009-09-15 17:30:17 +00:00
|
|
|
node_device/node_device_hal.c \
|
2009-11-12 21:48:24 +00:00
|
|
|
node_device/node_device_hal.h
|
2009-06-02 15:12:53 +00:00
|
|
|
|
2009-11-12 21:48:24 +00:00
|
|
|
NODE_DEVICE_DRIVER_UDEV_SOURCES = \
|
2009-11-20 18:43:59 +00:00
|
|
|
node_device/node_device_udev.c \
|
|
|
|
node_device/node_device_udev.h
|
2009-11-12 21:48:24 +00:00
|
|
|
|
Adds CPU selection infrastructure
Each driver supporting CPU selection must fill in host CPU capabilities.
When filling them, drivers for hypervisors running on the same node as
libvirtd can use cpuNodeData() to obtain raw CPU data. Other drivers,
such as VMware, need to implement their own way of getting such data.
Raw data can be decoded into virCPUDefPtr using cpuDecode() function.
When implementing virConnectCompareCPU(), a hypervisor driver can just
call cpuCompareXML() function with host CPU capabilities.
For each guest for which a driver supports selecting CPU models, it must
set the appropriate feature in guest's capabilities:
virCapabilitiesAddGuestFeature(guest, "cpuselection", 1, 0)
Actions needed when a domain is being created depend on whether the
hypervisor understands raw CPU data (currently CPUID for i686, x86_64
architectures) or symbolic names has to be used.
Typical use by hypervisors which prefer CPUID (such as VMware and Xen):
- convert guest CPU configuration from domain's XML into a set of raw
data structures each representing one of the feature policies:
cpuEncode(conn, architecture, guest_cpu_config,
&forced_data, &required_data, &optional_data,
&disabled_data, &forbidden_data)
- create a mask or whatever the hypervisor expects to see and pass it
to the hypervisor
Typical use by hypervisors with symbolic model names (such as QEMU):
- get raw CPU data for a computed guest CPU:
cpuGuestData(conn, host_cpu, guest_cpu_config, &data)
- decode raw data into virCPUDefPtr with a possible restriction on
allowed model names:
cpuDecode(conn, guest, data, n_allowed_models, allowed_models)
- pass guest->model and guest->features to the hypervisor
* src/cpu/cpu.c src/cpu/cpu.h src/cpu/cpu_generic.c
src/cpu/cpu_generic.h src/cpu/cpu_map.c src/cpu/cpu_map.h
src/cpu/cpu_x86.c src/cpu/cpu_x86.h src/cpu/cpu_x86_data.h
* configure.in: check for CPUID instruction
* src/Makefile.am: glue the new files in
* src/libvirt_private.syms: add new private symbols
* po/POTFILES.in: add new cpu files containing translatable strings
2009-12-18 15:02:11 +00:00
|
|
|
CPU_SOURCES = \
|
|
|
|
cpu/cpu.h cpu/cpu.c \
|
|
|
|
cpu/cpu_generic.h cpu/cpu_generic.c \
|
|
|
|
cpu/cpu_x86.h cpu/cpu_x86.c cpu/cpu_x86_data.h \
|
|
|
|
cpu/cpu_map.h cpu/cpu_map.c
|
2008-08-20 20:48:35 +00:00
|
|
|
|
2009-12-22 11:06:01 +00:00
|
|
|
pkgdata_DATA = cpu/cpu_map.xml
|
|
|
|
|
2010-05-07 17:11:02 +00:00
|
|
|
EXTRA_DIST += $(pkgdata_DATA)
|
2009-12-18 15:11:42 +00:00
|
|
|
|
2008-08-20 20:48:35 +00:00
|
|
|
#########################
|
|
|
|
#
|
|
|
|
# Build up list of libvirt.la source files based on configure conditions
|
|
|
|
#
|
|
|
|
# First deal with sources usable in non-daemon context
|
|
|
|
|
2008-11-17 10:43:30 +00:00
|
|
|
noinst_LTLIBRARIES = libvirt_util.la
|
2010-05-15 00:19:58 +00:00
|
|
|
libvirt_la_LIBADD = $(libvirt_la_BUILT_LIBADD)
|
|
|
|
libvirt_la_BUILT_LIBADD = libvirt_util.la
|
2008-11-17 10:43:30 +00:00
|
|
|
libvirt_util_la_SOURCES = \
|
|
|
|
$(UTIL_SOURCES)
|
2010-06-09 18:35:49 +00:00
|
|
|
libvirt_util_la_CFLAGS = $(CAPNG_CFLAGS) $(YAJL_CFLAGS) $(LIBNL_CFLAGS) \
|
2010-09-15 13:44:11 +00:00
|
|
|
$(AM_CFLAGS) $(AUDIT_CFLAGS)
|
|
|
|
libvirt_util_la_LIBADD = $(CAPNG_LIBS) $(YAJL_LIBS) $(LIBNL_LIBS) \
|
|
|
|
$(LIB_PTHREAD) $(AUDIT_LIBS)
|
2008-11-17 10:43:30 +00:00
|
|
|
|
Move all XML configuration handling to src/conf/
* src/capabilities.c, src/capabilities.h, src/domain_conf.c,
src/domain_conf.h, src/domain_event.c, src/domain_event.h,
src/interface_conf.c, src/interface_conf.h,
src/network_conf.c, src/network_conf.h, src/node_device_conf.c,
src/node_device_conf.h, src/secret_conf.c, src/secret_conf.h,
src/storage_conf.c, src/storage_conf.h, src/storage_encryption_conf.c,
src/storage_encryption_conf.h: Move to src/conf/
* src/Makefile.am: Add -Isrc/conf to the individual build targets
which need to use XML config APIs. Remove LIBXML_CFLAGS, LIBSSH2_CFLAGS
and SELINUX_CFLAGS from global INCLUDES and only have them in build
targets which actually need them. Create a libvirt_conf.la
convenience library for all config parsers
* src/hostusb.h: Remove bogus include of domain_conf.h
* tests/Makefile.am: Add -Isrc/conf. Remove bogus -I$builddir/src
since it never has any generated header files
* daemon/Makefile.am: Add -Isrc/conf
* proxy/Makefile.am: Add -Isrc/conf and cope with renamed files
* src/hash.c: Remove bogus include of libxml/threads.h
2009-09-16 14:39:12 +00:00
|
|
|
|
|
|
|
noinst_LTLIBRARIES += libvirt_conf.la
|
2010-05-15 00:19:58 +00:00
|
|
|
libvirt_la_BUILT_LIBADD += libvirt_conf.la
|
Move all XML configuration handling to src/conf/
* src/capabilities.c, src/capabilities.h, src/domain_conf.c,
src/domain_conf.h, src/domain_event.c, src/domain_event.h,
src/interface_conf.c, src/interface_conf.h,
src/network_conf.c, src/network_conf.h, src/node_device_conf.c,
src/node_device_conf.h, src/secret_conf.c, src/secret_conf.h,
src/storage_conf.c, src/storage_conf.h, src/storage_encryption_conf.c,
src/storage_encryption_conf.h: Move to src/conf/
* src/Makefile.am: Add -Isrc/conf to the individual build targets
which need to use XML config APIs. Remove LIBXML_CFLAGS, LIBSSH2_CFLAGS
and SELINUX_CFLAGS from global INCLUDES and only have them in build
targets which actually need them. Create a libvirt_conf.la
convenience library for all config parsers
* src/hostusb.h: Remove bogus include of domain_conf.h
* tests/Makefile.am: Add -Isrc/conf. Remove bogus -I$builddir/src
since it never has any generated header files
* daemon/Makefile.am: Add -Isrc/conf
* proxy/Makefile.am: Add -Isrc/conf and cope with renamed files
* src/hash.c: Remove bogus include of libxml/threads.h
2009-09-16 14:39:12 +00:00
|
|
|
libvirt_conf_la_SOURCES = $(CONF_SOURCES)
|
2010-06-09 18:35:49 +00:00
|
|
|
libvirt_conf_la_CFLAGS = $(AM_CFLAGS)
|
|
|
|
libvirt_conf_la_LDFLAGS = $(AM_LDFLAGS)
|
Move all XML configuration handling to src/conf/
* src/capabilities.c, src/capabilities.h, src/domain_conf.c,
src/domain_conf.h, src/domain_event.c, src/domain_event.h,
src/interface_conf.c, src/interface_conf.h,
src/network_conf.c, src/network_conf.h, src/node_device_conf.c,
src/node_device_conf.h, src/secret_conf.c, src/secret_conf.h,
src/storage_conf.c, src/storage_conf.h, src/storage_encryption_conf.c,
src/storage_encryption_conf.h: Move to src/conf/
* src/Makefile.am: Add -Isrc/conf to the individual build targets
which need to use XML config APIs. Remove LIBXML_CFLAGS, LIBSSH2_CFLAGS
and SELINUX_CFLAGS from global INCLUDES and only have them in build
targets which actually need them. Create a libvirt_conf.la
convenience library for all config parsers
* src/hostusb.h: Remove bogus include of domain_conf.h
* tests/Makefile.am: Add -Isrc/conf. Remove bogus -I$builddir/src
since it never has any generated header files
* daemon/Makefile.am: Add -Isrc/conf
* proxy/Makefile.am: Add -Isrc/conf and cope with renamed files
* src/hash.c: Remove bogus include of libxml/threads.h
2009-09-16 14:39:12 +00:00
|
|
|
|
Adds CPU selection infrastructure
Each driver supporting CPU selection must fill in host CPU capabilities.
When filling them, drivers for hypervisors running on the same node as
libvirtd can use cpuNodeData() to obtain raw CPU data. Other drivers,
such as VMware, need to implement their own way of getting such data.
Raw data can be decoded into virCPUDefPtr using cpuDecode() function.
When implementing virConnectCompareCPU(), a hypervisor driver can just
call cpuCompareXML() function with host CPU capabilities.
For each guest for which a driver supports selecting CPU models, it must
set the appropriate feature in guest's capabilities:
virCapabilitiesAddGuestFeature(guest, "cpuselection", 1, 0)
Actions needed when a domain is being created depend on whether the
hypervisor understands raw CPU data (currently CPUID for i686, x86_64
architectures) or symbolic names has to be used.
Typical use by hypervisors which prefer CPUID (such as VMware and Xen):
- convert guest CPU configuration from domain's XML into a set of raw
data structures each representing one of the feature policies:
cpuEncode(conn, architecture, guest_cpu_config,
&forced_data, &required_data, &optional_data,
&disabled_data, &forbidden_data)
- create a mask or whatever the hypervisor expects to see and pass it
to the hypervisor
Typical use by hypervisors with symbolic model names (such as QEMU):
- get raw CPU data for a computed guest CPU:
cpuGuestData(conn, host_cpu, guest_cpu_config, &data)
- decode raw data into virCPUDefPtr with a possible restriction on
allowed model names:
cpuDecode(conn, guest, data, n_allowed_models, allowed_models)
- pass guest->model and guest->features to the hypervisor
* src/cpu/cpu.c src/cpu/cpu.h src/cpu/cpu_generic.c
src/cpu/cpu_generic.h src/cpu/cpu_map.c src/cpu/cpu_map.h
src/cpu/cpu_x86.c src/cpu/cpu_x86.h src/cpu/cpu_x86_data.h
* configure.in: check for CPUID instruction
* src/Makefile.am: glue the new files in
* src/libvirt_private.syms: add new private symbols
* po/POTFILES.in: add new cpu files containing translatable strings
2009-12-18 15:02:11 +00:00
|
|
|
noinst_LTLIBRARIES += libvirt_cpu.la
|
2010-05-15 00:19:58 +00:00
|
|
|
libvirt_la_BUILT_LIBADD += libvirt_cpu.la
|
Adds CPU selection infrastructure
Each driver supporting CPU selection must fill in host CPU capabilities.
When filling them, drivers for hypervisors running on the same node as
libvirtd can use cpuNodeData() to obtain raw CPU data. Other drivers,
such as VMware, need to implement their own way of getting such data.
Raw data can be decoded into virCPUDefPtr using cpuDecode() function.
When implementing virConnectCompareCPU(), a hypervisor driver can just
call cpuCompareXML() function with host CPU capabilities.
For each guest for which a driver supports selecting CPU models, it must
set the appropriate feature in guest's capabilities:
virCapabilitiesAddGuestFeature(guest, "cpuselection", 1, 0)
Actions needed when a domain is being created depend on whether the
hypervisor understands raw CPU data (currently CPUID for i686, x86_64
architectures) or symbolic names has to be used.
Typical use by hypervisors which prefer CPUID (such as VMware and Xen):
- convert guest CPU configuration from domain's XML into a set of raw
data structures each representing one of the feature policies:
cpuEncode(conn, architecture, guest_cpu_config,
&forced_data, &required_data, &optional_data,
&disabled_data, &forbidden_data)
- create a mask or whatever the hypervisor expects to see and pass it
to the hypervisor
Typical use by hypervisors with symbolic model names (such as QEMU):
- get raw CPU data for a computed guest CPU:
cpuGuestData(conn, host_cpu, guest_cpu_config, &data)
- decode raw data into virCPUDefPtr with a possible restriction on
allowed model names:
cpuDecode(conn, guest, data, n_allowed_models, allowed_models)
- pass guest->model and guest->features to the hypervisor
* src/cpu/cpu.c src/cpu/cpu.h src/cpu/cpu_generic.c
src/cpu/cpu_generic.h src/cpu/cpu_map.c src/cpu/cpu_map.h
src/cpu/cpu_x86.c src/cpu/cpu_x86.h src/cpu/cpu_x86_data.h
* configure.in: check for CPUID instruction
* src/Makefile.am: glue the new files in
* src/libvirt_private.syms: add new private symbols
* po/POTFILES.in: add new cpu files containing translatable strings
2009-12-18 15:02:11 +00:00
|
|
|
libvirt_cpu_la_CFLAGS = \
|
2010-06-09 18:35:49 +00:00
|
|
|
-I@top_srcdir@/src/conf $(AM_CFLAGS)
|
Adds CPU selection infrastructure
Each driver supporting CPU selection must fill in host CPU capabilities.
When filling them, drivers for hypervisors running on the same node as
libvirtd can use cpuNodeData() to obtain raw CPU data. Other drivers,
such as VMware, need to implement their own way of getting such data.
Raw data can be decoded into virCPUDefPtr using cpuDecode() function.
When implementing virConnectCompareCPU(), a hypervisor driver can just
call cpuCompareXML() function with host CPU capabilities.
For each guest for which a driver supports selecting CPU models, it must
set the appropriate feature in guest's capabilities:
virCapabilitiesAddGuestFeature(guest, "cpuselection", 1, 0)
Actions needed when a domain is being created depend on whether the
hypervisor understands raw CPU data (currently CPUID for i686, x86_64
architectures) or symbolic names has to be used.
Typical use by hypervisors which prefer CPUID (such as VMware and Xen):
- convert guest CPU configuration from domain's XML into a set of raw
data structures each representing one of the feature policies:
cpuEncode(conn, architecture, guest_cpu_config,
&forced_data, &required_data, &optional_data,
&disabled_data, &forbidden_data)
- create a mask or whatever the hypervisor expects to see and pass it
to the hypervisor
Typical use by hypervisors with symbolic model names (such as QEMU):
- get raw CPU data for a computed guest CPU:
cpuGuestData(conn, host_cpu, guest_cpu_config, &data)
- decode raw data into virCPUDefPtr with a possible restriction on
allowed model names:
cpuDecode(conn, guest, data, n_allowed_models, allowed_models)
- pass guest->model and guest->features to the hypervisor
* src/cpu/cpu.c src/cpu/cpu.h src/cpu/cpu_generic.c
src/cpu/cpu_generic.h src/cpu/cpu_map.c src/cpu/cpu_map.h
src/cpu/cpu_x86.c src/cpu/cpu_x86.h src/cpu/cpu_x86_data.h
* configure.in: check for CPUID instruction
* src/Makefile.am: glue the new files in
* src/libvirt_private.syms: add new private symbols
* po/POTFILES.in: add new cpu files containing translatable strings
2009-12-18 15:02:11 +00:00
|
|
|
libvirt_cpu_la_SOURCES = $(CPU_SOURCES)
|
|
|
|
|
Move all XML configuration handling to src/conf/
* src/capabilities.c, src/capabilities.h, src/domain_conf.c,
src/domain_conf.h, src/domain_event.c, src/domain_event.h,
src/interface_conf.c, src/interface_conf.h,
src/network_conf.c, src/network_conf.h, src/node_device_conf.c,
src/node_device_conf.h, src/secret_conf.c, src/secret_conf.h,
src/storage_conf.c, src/storage_conf.h, src/storage_encryption_conf.c,
src/storage_encryption_conf.h: Move to src/conf/
* src/Makefile.am: Add -Isrc/conf to the individual build targets
which need to use XML config APIs. Remove LIBXML_CFLAGS, LIBSSH2_CFLAGS
and SELINUX_CFLAGS from global INCLUDES and only have them in build
targets which actually need them. Create a libvirt_conf.la
convenience library for all config parsers
* src/hostusb.h: Remove bogus include of domain_conf.h
* tests/Makefile.am: Add -Isrc/conf. Remove bogus -I$builddir/src
since it never has any generated header files
* daemon/Makefile.am: Add -Isrc/conf
* proxy/Makefile.am: Add -Isrc/conf and cope with renamed files
* src/hash.c: Remove bogus include of libxml/threads.h
2009-09-16 14:39:12 +00:00
|
|
|
|
2008-11-17 10:43:30 +00:00
|
|
|
noinst_LTLIBRARIES += libvirt_driver.la
|
2010-05-15 00:19:58 +00:00
|
|
|
libvirt_la_BUILT_LIBADD += libvirt_driver.la
|
Move all XML configuration handling to src/conf/
* src/capabilities.c, src/capabilities.h, src/domain_conf.c,
src/domain_conf.h, src/domain_event.c, src/domain_event.h,
src/interface_conf.c, src/interface_conf.h,
src/network_conf.c, src/network_conf.h, src/node_device_conf.c,
src/node_device_conf.h, src/secret_conf.c, src/secret_conf.h,
src/storage_conf.c, src/storage_conf.h, src/storage_encryption_conf.c,
src/storage_encryption_conf.h: Move to src/conf/
* src/Makefile.am: Add -Isrc/conf to the individual build targets
which need to use XML config APIs. Remove LIBXML_CFLAGS, LIBSSH2_CFLAGS
and SELINUX_CFLAGS from global INCLUDES and only have them in build
targets which actually need them. Create a libvirt_conf.la
convenience library for all config parsers
* src/hostusb.h: Remove bogus include of domain_conf.h
* tests/Makefile.am: Add -Isrc/conf. Remove bogus -I$builddir/src
since it never has any generated header files
* daemon/Makefile.am: Add -Isrc/conf
* proxy/Makefile.am: Add -Isrc/conf and cope with renamed files
* src/hash.c: Remove bogus include of libxml/threads.h
2009-09-16 14:39:12 +00:00
|
|
|
libvirt_driver_la_SOURCES = $(DRIVER_SOURCES)
|
2008-11-21 12:20:45 +00:00
|
|
|
|
2010-06-22 13:20:23 +00:00
|
|
|
libvirt_driver_la_CFLAGS = $(NUMACTL_CFLAGS) $(GNUTLS_CFLAGS) \
|
2010-06-09 18:35:49 +00:00
|
|
|
-I@top_srcdir@/src/conf $(AM_CFLAGS)
|
2010-06-22 13:20:23 +00:00
|
|
|
libvirt_driver_la_LIBADD = $(NUMACTL_LIBS) $(GNUTLS_LIBS)
|
2008-08-20 20:48:35 +00:00
|
|
|
|
2009-01-06 15:16:43 +00:00
|
|
|
USED_SYM_FILES = libvirt_private.syms
|
2009-01-05 14:05:29 +00:00
|
|
|
|
2008-08-20 20:48:35 +00:00
|
|
|
if WITH_TEST
|
2008-11-21 12:16:08 +00:00
|
|
|
if WITH_DRIVER_MODULES
|
|
|
|
mod_LTLIBRARIES += libvirt_driver_test.la
|
|
|
|
else
|
2008-11-17 10:43:30 +00:00
|
|
|
noinst_LTLIBRARIES += libvirt_driver_test.la
|
2010-05-15 00:19:58 +00:00
|
|
|
libvirt_la_BUILT_LIBADD += libvirt_driver_test.la
|
2008-11-21 12:16:08 +00:00
|
|
|
endif
|
Move all XML configuration handling to src/conf/
* src/capabilities.c, src/capabilities.h, src/domain_conf.c,
src/domain_conf.h, src/domain_event.c, src/domain_event.h,
src/interface_conf.c, src/interface_conf.h,
src/network_conf.c, src/network_conf.h, src/node_device_conf.c,
src/node_device_conf.h, src/secret_conf.c, src/secret_conf.h,
src/storage_conf.c, src/storage_conf.h, src/storage_encryption_conf.c,
src/storage_encryption_conf.h: Move to src/conf/
* src/Makefile.am: Add -Isrc/conf to the individual build targets
which need to use XML config APIs. Remove LIBXML_CFLAGS, LIBSSH2_CFLAGS
and SELINUX_CFLAGS from global INCLUDES and only have them in build
targets which actually need them. Create a libvirt_conf.la
convenience library for all config parsers
* src/hostusb.h: Remove bogus include of domain_conf.h
* tests/Makefile.am: Add -Isrc/conf. Remove bogus -I$builddir/src
since it never has any generated header files
* daemon/Makefile.am: Add -Isrc/conf
* proxy/Makefile.am: Add -Isrc/conf and cope with renamed files
* src/hash.c: Remove bogus include of libxml/threads.h
2009-09-16 14:39:12 +00:00
|
|
|
libvirt_driver_test_la_CFLAGS = \
|
2010-06-09 18:35:49 +00:00
|
|
|
-I@top_srcdir@/src/conf $(AM_CFLAGS)
|
2008-11-21 12:16:08 +00:00
|
|
|
if WITH_DRIVER_MODULES
|
2010-06-09 18:35:49 +00:00
|
|
|
libvirt_driver_test_la_LDFLAGS = -module -avoid-version $(AM_LDFLAGS)
|
2008-11-21 12:16:08 +00:00
|
|
|
endif
|
2008-11-17 10:43:30 +00:00
|
|
|
libvirt_driver_test_la_SOURCES = $(TEST_DRIVER_SOURCES)
|
2008-08-20 20:48:35 +00:00
|
|
|
endif
|
|
|
|
|
|
|
|
if WITH_REMOTE
|
2008-11-21 12:16:08 +00:00
|
|
|
if WITH_DRIVER_MODULES
|
|
|
|
mod_LTLIBRARIES += libvirt_driver_remote.la
|
|
|
|
else
|
2008-11-17 10:43:30 +00:00
|
|
|
noinst_LTLIBRARIES += libvirt_driver_remote.la
|
2010-05-15 00:19:58 +00:00
|
|
|
libvirt_la_BUILT_LIBADD += libvirt_driver_remote.la
|
2008-11-21 12:16:08 +00:00
|
|
|
endif
|
2008-11-17 10:43:30 +00:00
|
|
|
libvirt_driver_remote_la_CFLAGS = \
|
|
|
|
$(GNUTLS_CFLAGS) \
|
Move all XML configuration handling to src/conf/
* src/capabilities.c, src/capabilities.h, src/domain_conf.c,
src/domain_conf.h, src/domain_event.c, src/domain_event.h,
src/interface_conf.c, src/interface_conf.h,
src/network_conf.c, src/network_conf.h, src/node_device_conf.c,
src/node_device_conf.h, src/secret_conf.c, src/secret_conf.h,
src/storage_conf.c, src/storage_conf.h, src/storage_encryption_conf.c,
src/storage_encryption_conf.h: Move to src/conf/
* src/Makefile.am: Add -Isrc/conf to the individual build targets
which need to use XML config APIs. Remove LIBXML_CFLAGS, LIBSSH2_CFLAGS
and SELINUX_CFLAGS from global INCLUDES and only have them in build
targets which actually need them. Create a libvirt_conf.la
convenience library for all config parsers
* src/hostusb.h: Remove bogus include of domain_conf.h
* tests/Makefile.am: Add -Isrc/conf. Remove bogus -I$builddir/src
since it never has any generated header files
* daemon/Makefile.am: Add -Isrc/conf
* proxy/Makefile.am: Add -Isrc/conf and cope with renamed files
* src/hash.c: Remove bogus include of libxml/threads.h
2009-09-16 14:39:12 +00:00
|
|
|
$(SASL_CFLAGS) \
|
2010-06-09 18:35:49 +00:00
|
|
|
-I@top_srcdir@/src/conf \
|
|
|
|
$(AM_CFLAGS)
|
|
|
|
libvirt_driver_remote_la_LDFLAGS = $(AM_LDFLAGS)
|
build: use LIBADD, not LDFLAGS, for adding libraries
Per automake, LDFLAGS is used early in the line, and LIBADD
(libraries) or LDADD (programs) is used late. On platforms like
cygwin, without lazy linking, this order matters. Therefore, libtool
commands, -L, and similar should be in LDFLAGS, but -l should be in
L*ADD.
* src/Makefile.am (*_LDFLAGS): Move libraries...
(*_LIBADD): ...to their LIBADD counterpart.
2010-05-07 16:39:52 +00:00
|
|
|
libvirt_driver_remote_la_LIBADD = $(GNUTLS_LIBS) $(SASL_LIBS)
|
2008-11-21 12:16:08 +00:00
|
|
|
if WITH_DRIVER_MODULES
|
|
|
|
libvirt_driver_remote_la_LDFLAGS += -module -avoid-version
|
|
|
|
endif
|
2008-11-17 10:43:30 +00:00
|
|
|
libvirt_driver_remote_la_SOURCES = $(REMOTE_DRIVER_SOURCES)
|
2009-09-16 15:55:16 +00:00
|
|
|
|
|
|
|
if HAVE_RPCGEN
|
|
|
|
#
|
|
|
|
# Maintainer-only target for re-generating the derived .c/.h source
|
|
|
|
# files, which are actually derived from the .x file.
|
|
|
|
#
|
2010-01-08 00:40:38 +00:00
|
|
|
# For committing protocol changes to GIT, the GLIBC rpcgen *must*
|
2009-09-16 15:55:16 +00:00
|
|
|
# be used.
|
|
|
|
#
|
|
|
|
# Support for non-GLIB rpcgen is here as a convenience for
|
|
|
|
# non-Linux people needing to test changes during dev.
|
|
|
|
#
|
2010-04-17 02:09:25 +00:00
|
|
|
rpcgen-normal:
|
2009-09-16 15:55:16 +00:00
|
|
|
rm -f rp.c-t rp.h-t rp.c-t1 rp.c-t2 rp.h-t1
|
|
|
|
$(RPCGEN) -h -o rp.h-t $(srcdir)/remote/remote_protocol.x
|
|
|
|
$(RPCGEN) -c -o rp.c-t $(srcdir)/remote/remote_protocol.x
|
|
|
|
if HAVE_GLIBC_RPCGEN
|
2009-10-01 18:18:29 +00:00
|
|
|
perl -w $(srcdir)/remote/rpcgen_fix.pl rp.h-t > rp.h-t1
|
|
|
|
perl -w $(srcdir)/remote/rpcgen_fix.pl rp.c-t > rp.c-t1
|
2009-09-16 15:55:16 +00:00
|
|
|
(echo '#include <config.h>'; cat rp.c-t1) > rp.c-t2
|
|
|
|
chmod 0444 rp.c-t2 rp.h-t1
|
|
|
|
mv -f rp.h-t1 $(srcdir)/remote/remote_protocol.h
|
|
|
|
mv -f rp.c-t2 $(srcdir)/remote/remote_protocol.c
|
|
|
|
rm -f rp.c-t rp.h-t rp.c-t1
|
|
|
|
else
|
|
|
|
chmod 0444 rp.c-t rp.h-t
|
|
|
|
mv -f rp.h-t $(srcdir)/remote/remote_protocol.h
|
|
|
|
mv -f rp.c-t $(srcdir)/remote/remote_protocol.c
|
|
|
|
endif
|
2010-04-17 02:09:25 +00:00
|
|
|
|
|
|
|
rpcgen-qemu:
|
|
|
|
rm -f rp_qemu.c-t rp_qemu.h-t rp_qemu.c-t1 rp_qemu.c-t2 rp_qemu.h-t1
|
|
|
|
$(RPCGEN) -h -o rp_qemu.h-t $(srcdir)/remote/qemu_protocol.x
|
|
|
|
$(RPCGEN) -c -o rp_qemu.c-t $(srcdir)/remote/qemu_protocol.x
|
|
|
|
if HAVE_GLIBC_RPCGEN
|
|
|
|
perl -w $(srcdir)/remote/rpcgen_fix.pl rp_qemu.h-t > rp_qemu.h-t1
|
|
|
|
perl -w $(srcdir)/remote/rpcgen_fix.pl rp_qemu.c-t > rp_qemu.c-t1
|
|
|
|
(echo '#include <config.h>'; cat rp_qemu.c-t1) > rp_qemu.c-t2
|
|
|
|
chmod 0444 rp_qemu.c-t2 rp_qemu.h-t1
|
|
|
|
mv -f rp_qemu.h-t1 $(srcdir)/remote/qemu_protocol.h
|
|
|
|
mv -f rp_qemu.c-t2 $(srcdir)/remote/qemu_protocol.c
|
|
|
|
rm -f rp_qemu.c-t rp_qemu.h-t rp_qemu.c-t1
|
|
|
|
else
|
|
|
|
chmod 0444 rp_qemu.c-t rp_qemu.h-t
|
|
|
|
mv -f rp_qemu.h-t $(srcdir)/remote/qemu_protocol.h
|
|
|
|
mv -f rp_qemu.c-t $(srcdir)/remote/qemu_protocol.c
|
|
|
|
endif
|
|
|
|
|
|
|
|
#
|
|
|
|
# Maintainer-only target for re-generating the derived .c/.h source
|
|
|
|
# files, which are actually derived from the .x file.
|
|
|
|
#
|
|
|
|
# For committing protocol changes to GIT, the GLIBC rpcgen *must*
|
|
|
|
# be used.
|
|
|
|
#
|
|
|
|
# Support for non-GLIB rpcgen is here as a convenience for
|
|
|
|
# non-Linux people needing to test changes during dev.
|
|
|
|
#
|
|
|
|
rpcgen: rpcgen-normal rpcgen-qemu
|
|
|
|
|
2009-09-16 15:55:16 +00:00
|
|
|
endif
|
|
|
|
|
|
|
|
remote/remote_protocol.c: remote/remote_protocol.h
|
2008-08-20 20:48:35 +00:00
|
|
|
endif
|
|
|
|
|
|
|
|
if WITH_XEN
|
2008-11-21 12:16:08 +00:00
|
|
|
if WITH_DRIVER_MODULES
|
|
|
|
mod_LTLIBRARIES += libvirt_driver_xen.la
|
|
|
|
else
|
2008-11-17 10:43:30 +00:00
|
|
|
noinst_LTLIBRARIES += libvirt_driver_xen.la
|
2010-05-15 00:19:58 +00:00
|
|
|
libvirt_la_BUILT_LIBADD += libvirt_driver_xen.la
|
2008-11-21 12:16:08 +00:00
|
|
|
endif
|
2010-05-07 17:11:02 +00:00
|
|
|
libvirt_driver_xen_la_CFLAGS = \
|
Move all XML configuration handling to src/conf/
* src/capabilities.c, src/capabilities.h, src/domain_conf.c,
src/domain_conf.h, src/domain_event.c, src/domain_event.h,
src/interface_conf.c, src/interface_conf.h,
src/network_conf.c, src/network_conf.h, src/node_device_conf.c,
src/node_device_conf.h, src/secret_conf.c, src/secret_conf.h,
src/storage_conf.c, src/storage_conf.h, src/storage_encryption_conf.c,
src/storage_encryption_conf.h: Move to src/conf/
* src/Makefile.am: Add -Isrc/conf to the individual build targets
which need to use XML config APIs. Remove LIBXML_CFLAGS, LIBSSH2_CFLAGS
and SELINUX_CFLAGS from global INCLUDES and only have them in build
targets which actually need them. Create a libvirt_conf.la
convenience library for all config parsers
* src/hostusb.h: Remove bogus include of domain_conf.h
* tests/Makefile.am: Add -Isrc/conf. Remove bogus -I$builddir/src
since it never has any generated header files
* daemon/Makefile.am: Add -Isrc/conf
* proxy/Makefile.am: Add -Isrc/conf and cope with renamed files
* src/hash.c: Remove bogus include of libxml/threads.h
2009-09-16 14:39:12 +00:00
|
|
|
$(XEN_CFLAGS) \
|
2010-06-09 18:35:49 +00:00
|
|
|
-I@top_srcdir@/src/conf \
|
|
|
|
$(AM_CFLAGS)
|
|
|
|
libvirt_driver_xen_la_LDFLAGS = $(AM_LDFLAGS)
|
build: use LIBADD, not LDFLAGS, for adding libraries
Per automake, LDFLAGS is used early in the line, and LIBADD
(libraries) or LDADD (programs) is used late. On platforms like
cygwin, without lazy linking, this order matters. Therefore, libtool
commands, -L, and similar should be in LDFLAGS, but -l should be in
L*ADD.
* src/Makefile.am (*_LDFLAGS): Move libraries...
(*_LIBADD): ...to their LIBADD counterpart.
2010-05-07 16:39:52 +00:00
|
|
|
libvirt_driver_xen_la_LIBADD = $(XEN_LIBS)
|
2008-11-21 12:16:08 +00:00
|
|
|
if WITH_DRIVER_MODULES
|
2010-10-12 11:23:18 +00:00
|
|
|
libvirt_driver_xen_la_LIBADD += ../gnulib/lib/libgnu.la
|
2008-11-21 12:16:08 +00:00
|
|
|
libvirt_driver_xen_la_LDFLAGS += -module -avoid-version
|
|
|
|
endif
|
2008-11-17 10:43:30 +00:00
|
|
|
libvirt_driver_xen_la_SOURCES = $(XEN_DRIVER_SOURCES)
|
2008-08-20 20:48:35 +00:00
|
|
|
endif
|
|
|
|
|
2009-07-24 14:17:06 +00:00
|
|
|
if WITH_PHYP
|
|
|
|
if WITH_DRIVER_MODULES
|
|
|
|
mod_LTLIBRARIES += libvirt_driver_phyp.la
|
|
|
|
else
|
|
|
|
noinst_LTLIBRARIES += libvirt_driver_phyp.la
|
2010-05-15 00:19:58 +00:00
|
|
|
libvirt_la_BUILT_LIBADD += libvirt_driver_phyp.la
|
2009-07-24 14:17:06 +00:00
|
|
|
endif
|
build: use LIBADD, not LDFLAGS, for adding libraries
Per automake, LDFLAGS is used early in the line, and LIBADD
(libraries) or LDADD (programs) is used late. On platforms like
cygwin, without lazy linking, this order matters. Therefore, libtool
commands, -L, and similar should be in LDFLAGS, but -l should be in
L*ADD.
* src/Makefile.am (*_LDFLAGS): Move libraries...
(*_LIBADD): ...to their LIBADD counterpart.
2010-05-07 16:39:52 +00:00
|
|
|
libvirt_driver_phyp_la_LIBADD = $(LIBSSH2_LIBS)
|
2010-10-12 11:23:18 +00:00
|
|
|
if WITH_DRIVER_MODULES
|
|
|
|
libvirt_driver_phyp_la_LIBADD += ../gnulib/lib/libgnu.la
|
|
|
|
libvirt_driver_phyp_la_LDFLAGS = -module -avoid-version $(AM_LDFLAGS)
|
|
|
|
endif
|
Move all XML configuration handling to src/conf/
* src/capabilities.c, src/capabilities.h, src/domain_conf.c,
src/domain_conf.h, src/domain_event.c, src/domain_event.h,
src/interface_conf.c, src/interface_conf.h,
src/network_conf.c, src/network_conf.h, src/node_device_conf.c,
src/node_device_conf.h, src/secret_conf.c, src/secret_conf.h,
src/storage_conf.c, src/storage_conf.h, src/storage_encryption_conf.c,
src/storage_encryption_conf.h: Move to src/conf/
* src/Makefile.am: Add -Isrc/conf to the individual build targets
which need to use XML config APIs. Remove LIBXML_CFLAGS, LIBSSH2_CFLAGS
and SELINUX_CFLAGS from global INCLUDES and only have them in build
targets which actually need them. Create a libvirt_conf.la
convenience library for all config parsers
* src/hostusb.h: Remove bogus include of domain_conf.h
* tests/Makefile.am: Add -Isrc/conf. Remove bogus -I$builddir/src
since it never has any generated header files
* daemon/Makefile.am: Add -Isrc/conf
* proxy/Makefile.am: Add -Isrc/conf and cope with renamed files
* src/hash.c: Remove bogus include of libxml/threads.h
2009-09-16 14:39:12 +00:00
|
|
|
libvirt_driver_phyp_la_CFLAGS = $(LIBSSH2_CFLAGS) \
|
2010-06-09 18:35:49 +00:00
|
|
|
-I@top_srcdir@/src/conf $(AM_CFLAGS)
|
2009-07-24 14:17:06 +00:00
|
|
|
libvirt_driver_phyp_la_SOURCES = $(PHYP_DRIVER_SOURCES)
|
|
|
|
endif
|
|
|
|
|
2008-08-27 11:19:45 +00:00
|
|
|
if WITH_OPENVZ
|
2008-11-21 12:16:08 +00:00
|
|
|
if WITH_DRIVER_MODULES
|
|
|
|
mod_LTLIBRARIES += libvirt_driver_openvz.la
|
|
|
|
else
|
2008-11-17 10:43:30 +00:00
|
|
|
noinst_LTLIBRARIES += libvirt_driver_openvz.la
|
2010-05-15 00:19:58 +00:00
|
|
|
libvirt_la_BUILT_LIBADD += libvirt_driver_openvz.la
|
2008-11-21 12:16:08 +00:00
|
|
|
endif
|
Move all XML configuration handling to src/conf/
* src/capabilities.c, src/capabilities.h, src/domain_conf.c,
src/domain_conf.h, src/domain_event.c, src/domain_event.h,
src/interface_conf.c, src/interface_conf.h,
src/network_conf.c, src/network_conf.h, src/node_device_conf.c,
src/node_device_conf.h, src/secret_conf.c, src/secret_conf.h,
src/storage_conf.c, src/storage_conf.h, src/storage_encryption_conf.c,
src/storage_encryption_conf.h: Move to src/conf/
* src/Makefile.am: Add -Isrc/conf to the individual build targets
which need to use XML config APIs. Remove LIBXML_CFLAGS, LIBSSH2_CFLAGS
and SELINUX_CFLAGS from global INCLUDES and only have them in build
targets which actually need them. Create a libvirt_conf.la
convenience library for all config parsers
* src/hostusb.h: Remove bogus include of domain_conf.h
* tests/Makefile.am: Add -Isrc/conf. Remove bogus -I$builddir/src
since it never has any generated header files
* daemon/Makefile.am: Add -Isrc/conf
* proxy/Makefile.am: Add -Isrc/conf and cope with renamed files
* src/hash.c: Remove bogus include of libxml/threads.h
2009-09-16 14:39:12 +00:00
|
|
|
libvirt_driver_openvz_la_CFLAGS = \
|
2010-06-09 18:35:49 +00:00
|
|
|
-I@top_srcdir@/src/conf $(AM_CFLAGS)
|
2008-11-21 12:16:08 +00:00
|
|
|
if WITH_DRIVER_MODULES
|
2010-10-12 11:23:18 +00:00
|
|
|
libvirt_driver_openvz_la_LIBADD = ../gnulib/lib/libgnu.la
|
2010-06-09 18:35:49 +00:00
|
|
|
libvirt_driver_openvz_la_LDFLAGS = -module -avoid-version $(AM_LDFLAGS)
|
2008-11-21 12:16:08 +00:00
|
|
|
endif
|
2008-11-17 10:43:30 +00:00
|
|
|
libvirt_driver_openvz_la_SOURCES = $(OPENVZ_DRIVER_SOURCES)
|
2008-08-27 11:19:45 +00:00
|
|
|
endif
|
|
|
|
|
2009-04-17 16:09:07 +00:00
|
|
|
if WITH_VBOX
|
|
|
|
if WITH_DRIVER_MODULES
|
|
|
|
mod_LTLIBRARIES += libvirt_driver_vbox.la
|
|
|
|
else
|
|
|
|
noinst_LTLIBRARIES += libvirt_driver_vbox.la
|
2010-05-15 00:19:58 +00:00
|
|
|
libvirt_la_BUILT_LIBADD += libvirt_driver_vbox.la
|
2009-04-17 16:09:07 +00:00
|
|
|
endif
|
Move all XML configuration handling to src/conf/
* src/capabilities.c, src/capabilities.h, src/domain_conf.c,
src/domain_conf.h, src/domain_event.c, src/domain_event.h,
src/interface_conf.c, src/interface_conf.h,
src/network_conf.c, src/network_conf.h, src/node_device_conf.c,
src/node_device_conf.h, src/secret_conf.c, src/secret_conf.h,
src/storage_conf.c, src/storage_conf.h, src/storage_encryption_conf.c,
src/storage_encryption_conf.h: Move to src/conf/
* src/Makefile.am: Add -Isrc/conf to the individual build targets
which need to use XML config APIs. Remove LIBXML_CFLAGS, LIBSSH2_CFLAGS
and SELINUX_CFLAGS from global INCLUDES and only have them in build
targets which actually need them. Create a libvirt_conf.la
convenience library for all config parsers
* src/hostusb.h: Remove bogus include of domain_conf.h
* tests/Makefile.am: Add -Isrc/conf. Remove bogus -I$builddir/src
since it never has any generated header files
* daemon/Makefile.am: Add -Isrc/conf
* proxy/Makefile.am: Add -Isrc/conf and cope with renamed files
* src/hash.c: Remove bogus include of libxml/threads.h
2009-09-16 14:39:12 +00:00
|
|
|
libvirt_driver_vbox_la_CFLAGS = \
|
2010-06-09 18:35:49 +00:00
|
|
|
-I@top_srcdir@/src/conf $(AM_CFLAGS)
|
2010-10-12 11:23:18 +00:00
|
|
|
libvirt_driver_vbox_la_LIBADD = $(DLOPEN_LIBS)
|
2009-04-17 16:09:07 +00:00
|
|
|
if WITH_DRIVER_MODULES
|
2010-10-12 11:23:18 +00:00
|
|
|
libvirt_driver_vbox_la_LIBADD += ../gnulib/lib/libgnu.la
|
2010-06-09 18:35:49 +00:00
|
|
|
libvirt_driver_vbox_la_LDFLAGS = -module -avoid-version $(AM_LDFLAGS)
|
2009-04-17 16:09:07 +00:00
|
|
|
endif
|
|
|
|
libvirt_driver_vbox_la_SOURCES = $(VBOX_DRIVER_SOURCES)
|
|
|
|
endif
|
|
|
|
|
2010-03-14 11:11:51 +00:00
|
|
|
if WITH_XENAPI
|
|
|
|
if WITH_DRIVER_MODULES
|
|
|
|
mod_LTLIBRARIES += libvirt_driver_xenapi.la
|
|
|
|
else
|
|
|
|
noinst_LTLIBRARIES += libvirt_driver_xenapi.la
|
2010-05-15 00:19:58 +00:00
|
|
|
libvirt_la_BUILT_LIBADD += libvirt_driver_xenapi.la
|
2010-03-14 11:11:51 +00:00
|
|
|
endif
|
|
|
|
libvirt_driver_xenapi_la_CFLAGS = $(LIBXENSERVER_CFLAGS) $(LIBCURL_CFLAGS) \
|
2010-06-09 18:35:49 +00:00
|
|
|
-I@top_srcdir@/src/conf $(AM_CFLAGS)
|
|
|
|
libvirt_driver_xenapi_la_LDFLAGS = $(AM_LDFLAGS)
|
build: use LIBADD, not LDFLAGS, for adding libraries
Per automake, LDFLAGS is used early in the line, and LIBADD
(libraries) or LDADD (programs) is used late. On platforms like
cygwin, without lazy linking, this order matters. Therefore, libtool
commands, -L, and similar should be in LDFLAGS, but -l should be in
L*ADD.
* src/Makefile.am (*_LDFLAGS): Move libraries...
(*_LIBADD): ...to their LIBADD counterpart.
2010-05-07 16:39:52 +00:00
|
|
|
libvirt_driver_xenapi_la_LIBADD = $(LIBXENSERVER_LIBS) $(LIBCURL_LIBS)
|
2010-03-14 11:11:51 +00:00
|
|
|
if WITH_DRIVER_MODULES
|
2010-10-12 11:23:18 +00:00
|
|
|
libvirt_driver_xenapi_la_LIBADD += ../gnulib/lib/libgnu.la
|
2010-03-14 11:11:51 +00:00
|
|
|
libvirt_driver_xenapi_la_LDFLAGS += -module -avoid-version
|
|
|
|
endif
|
|
|
|
libvirt_driver_xenapi_la_SOURCES = $(XENAPI_DRIVER_SOURCES)
|
|
|
|
endif
|
|
|
|
|
2008-08-20 20:48:35 +00:00
|
|
|
if WITH_QEMU
|
2008-11-21 12:16:08 +00:00
|
|
|
if WITH_DRIVER_MODULES
|
|
|
|
mod_LTLIBRARIES += libvirt_driver_qemu.la
|
|
|
|
else
|
2008-11-17 10:43:30 +00:00
|
|
|
noinst_LTLIBRARIES += libvirt_driver_qemu.la
|
2008-11-17 12:18:18 +00:00
|
|
|
# Stateful, so linked to daemon instead
|
2010-05-15 00:19:58 +00:00
|
|
|
#libvirt_la_BUILT_LIBADD += libvirt_driver_qemu.la
|
2008-11-21 12:16:08 +00:00
|
|
|
endif
|
Move all XML configuration handling to src/conf/
* src/capabilities.c, src/capabilities.h, src/domain_conf.c,
src/domain_conf.h, src/domain_event.c, src/domain_event.h,
src/interface_conf.c, src/interface_conf.h,
src/network_conf.c, src/network_conf.h, src/node_device_conf.c,
src/node_device_conf.h, src/secret_conf.c, src/secret_conf.h,
src/storage_conf.c, src/storage_conf.h, src/storage_encryption_conf.c,
src/storage_encryption_conf.h: Move to src/conf/
* src/Makefile.am: Add -Isrc/conf to the individual build targets
which need to use XML config APIs. Remove LIBXML_CFLAGS, LIBSSH2_CFLAGS
and SELINUX_CFLAGS from global INCLUDES and only have them in build
targets which actually need them. Create a libvirt_conf.la
convenience library for all config parsers
* src/hostusb.h: Remove bogus include of domain_conf.h
* tests/Makefile.am: Add -Isrc/conf. Remove bogus -I$builddir/src
since it never has any generated header files
* daemon/Makefile.am: Add -Isrc/conf
* proxy/Makefile.am: Add -Isrc/conf and cope with renamed files
* src/hash.c: Remove bogus include of libxml/threads.h
2009-09-16 14:39:12 +00:00
|
|
|
libvirt_driver_qemu_la_CFLAGS = $(NUMACTL_CFLAGS) \
|
2010-06-09 18:35:49 +00:00
|
|
|
-I@top_srcdir@/src/conf $(AM_CFLAGS)
|
|
|
|
libvirt_driver_qemu_la_LDFLAGS = $(AM_LDFLAGS)
|
build: use LIBADD, not LDFLAGS, for adding libraries
Per automake, LDFLAGS is used early in the line, and LIBADD
(libraries) or LDADD (programs) is used late. On platforms like
cygwin, without lazy linking, this order matters. Therefore, libtool
commands, -L, and similar should be in LDFLAGS, but -l should be in
L*ADD.
* src/Makefile.am (*_LDFLAGS): Move libraries...
(*_LIBADD): ...to their LIBADD counterpart.
2010-05-07 16:39:52 +00:00
|
|
|
libvirt_driver_qemu_la_LIBADD = $(NUMACTL_LIBS)
|
2008-11-21 12:16:08 +00:00
|
|
|
if WITH_DRIVER_MODULES
|
2010-10-12 11:23:18 +00:00
|
|
|
libvirt_driver_qemu_la_LIBADD += ../gnulib/lib/libgnu.la
|
2008-11-21 12:16:08 +00:00
|
|
|
libvirt_driver_qemu_la_LDFLAGS += -module -avoid-version
|
|
|
|
endif
|
2008-11-17 10:43:30 +00:00
|
|
|
libvirt_driver_qemu_la_SOURCES = $(QEMU_DRIVER_SOURCES)
|
2009-09-16 11:31:13 +00:00
|
|
|
|
2009-10-08 15:40:14 +00:00
|
|
|
conf_DATA += qemu/qemu.conf
|
2009-09-16 11:31:13 +00:00
|
|
|
|
2009-10-08 16:06:40 +00:00
|
|
|
augeas_DATA += qemu/libvirtd_qemu.aug
|
|
|
|
augeastest_DATA += qemu/test_libvirtd_qemu.aug
|
2009-09-16 11:31:13 +00:00
|
|
|
|
2008-08-20 20:48:35 +00:00
|
|
|
endif
|
2010-05-19 17:51:49 +00:00
|
|
|
EXTRA_DIST += qemu/qemu.conf qemu/libvirtd_qemu.aug \
|
|
|
|
qemu/test_libvirtd_qemu.aug qemu/THREADS.txt
|
2009-09-16 11:31:13 +00:00
|
|
|
|
2008-08-20 20:48:35 +00:00
|
|
|
|
|
|
|
if WITH_LXC
|
2008-11-21 12:16:08 +00:00
|
|
|
if WITH_DRIVER_MODULES
|
|
|
|
mod_LTLIBRARIES += libvirt_driver_lxc.la
|
|
|
|
else
|
2008-11-17 10:43:30 +00:00
|
|
|
noinst_LTLIBRARIES += libvirt_driver_lxc.la
|
2008-11-17 12:18:18 +00:00
|
|
|
# Stateful, so linked to daemon instead
|
2010-05-15 00:19:58 +00:00
|
|
|
#libvirt_la_BUILT_LIBADD += libvirt_driver_lxc.la
|
2008-11-21 12:16:08 +00:00
|
|
|
endif
|
Move all XML configuration handling to src/conf/
* src/capabilities.c, src/capabilities.h, src/domain_conf.c,
src/domain_conf.h, src/domain_event.c, src/domain_event.h,
src/interface_conf.c, src/interface_conf.h,
src/network_conf.c, src/network_conf.h, src/node_device_conf.c,
src/node_device_conf.h, src/secret_conf.c, src/secret_conf.h,
src/storage_conf.c, src/storage_conf.h, src/storage_encryption_conf.c,
src/storage_encryption_conf.h: Move to src/conf/
* src/Makefile.am: Add -Isrc/conf to the individual build targets
which need to use XML config APIs. Remove LIBXML_CFLAGS, LIBSSH2_CFLAGS
and SELINUX_CFLAGS from global INCLUDES and only have them in build
targets which actually need them. Create a libvirt_conf.la
convenience library for all config parsers
* src/hostusb.h: Remove bogus include of domain_conf.h
* tests/Makefile.am: Add -Isrc/conf. Remove bogus -I$builddir/src
since it never has any generated header files
* daemon/Makefile.am: Add -Isrc/conf
* proxy/Makefile.am: Add -Isrc/conf and cope with renamed files
* src/hash.c: Remove bogus include of libxml/threads.h
2009-09-16 14:39:12 +00:00
|
|
|
libvirt_driver_lxc_la_CFLAGS = \
|
2010-06-09 18:35:49 +00:00
|
|
|
-I@top_srcdir@/src/conf $(AM_CFLAGS)
|
2008-11-21 12:16:08 +00:00
|
|
|
if WITH_DRIVER_MODULES
|
2010-10-12 11:23:18 +00:00
|
|
|
libvirt_driver_lxc_la_LIBADD = ../gnulib/lib/libgnu.la
|
2010-06-09 18:35:49 +00:00
|
|
|
libvirt_driver_lxc_la_LDFLAGS = -module -avoid-version $(AM_LDFLAGS)
|
2008-11-21 12:16:08 +00:00
|
|
|
endif
|
2008-11-17 10:43:30 +00:00
|
|
|
libvirt_driver_lxc_la_SOURCES = $(LXC_DRIVER_SOURCES)
|
2009-10-08 15:40:14 +00:00
|
|
|
|
|
|
|
conf_DATA += lxc/lxc.conf
|
|
|
|
|
2009-10-08 16:06:40 +00:00
|
|
|
augeas_DATA += lxc/libvirtd_lxc.aug
|
|
|
|
augeastest_DATA += lxc/test_libvirtd_lxc.aug
|
|
|
|
|
2008-08-20 20:48:35 +00:00
|
|
|
endif
|
2009-10-08 16:06:40 +00:00
|
|
|
EXTRA_DIST += lxc/lxc.conf lxc/libvirtd_lxc.aug lxc/test_libvirtd_lxc.aug
|
2008-08-20 20:48:35 +00:00
|
|
|
|
2008-11-19 16:58:23 +00:00
|
|
|
if WITH_UML
|
2008-11-21 12:16:08 +00:00
|
|
|
if WITH_DRIVER_MODULES
|
|
|
|
mod_LTLIBRARIES += libvirt_driver_uml.la
|
|
|
|
else
|
2008-11-19 16:58:23 +00:00
|
|
|
noinst_LTLIBRARIES += libvirt_driver_uml.la
|
|
|
|
# Stateful, so linked to daemon instead
|
2010-05-15 00:19:58 +00:00
|
|
|
#libvirt_la_BUILT_LIBADD += libvirt_driver_uml.la
|
2008-11-21 12:16:08 +00:00
|
|
|
endif
|
Move all XML configuration handling to src/conf/
* src/capabilities.c, src/capabilities.h, src/domain_conf.c,
src/domain_conf.h, src/domain_event.c, src/domain_event.h,
src/interface_conf.c, src/interface_conf.h,
src/network_conf.c, src/network_conf.h, src/node_device_conf.c,
src/node_device_conf.h, src/secret_conf.c, src/secret_conf.h,
src/storage_conf.c, src/storage_conf.h, src/storage_encryption_conf.c,
src/storage_encryption_conf.h: Move to src/conf/
* src/Makefile.am: Add -Isrc/conf to the individual build targets
which need to use XML config APIs. Remove LIBXML_CFLAGS, LIBSSH2_CFLAGS
and SELINUX_CFLAGS from global INCLUDES and only have them in build
targets which actually need them. Create a libvirt_conf.la
convenience library for all config parsers
* src/hostusb.h: Remove bogus include of domain_conf.h
* tests/Makefile.am: Add -Isrc/conf. Remove bogus -I$builddir/src
since it never has any generated header files
* daemon/Makefile.am: Add -Isrc/conf
* proxy/Makefile.am: Add -Isrc/conf and cope with renamed files
* src/hash.c: Remove bogus include of libxml/threads.h
2009-09-16 14:39:12 +00:00
|
|
|
libvirt_driver_uml_la_CFLAGS = $(NUMACTL_CFLAGS) \
|
2010-06-09 18:35:49 +00:00
|
|
|
-I@top_srcdir@/src/conf $(AM_CFLAGS)
|
|
|
|
libvirt_driver_uml_la_LDFLAGS = $(AM_LDFLAGS)
|
build: use LIBADD, not LDFLAGS, for adding libraries
Per automake, LDFLAGS is used early in the line, and LIBADD
(libraries) or LDADD (programs) is used late. On platforms like
cygwin, without lazy linking, this order matters. Therefore, libtool
commands, -L, and similar should be in LDFLAGS, but -l should be in
L*ADD.
* src/Makefile.am (*_LDFLAGS): Move libraries...
(*_LIBADD): ...to their LIBADD counterpart.
2010-05-07 16:39:52 +00:00
|
|
|
libvirt_driver_uml_la_LIBADD = $(NUMACTL_LIBS)
|
2008-11-21 12:16:08 +00:00
|
|
|
if WITH_DRIVER_MODULES
|
2010-10-12 11:23:18 +00:00
|
|
|
libvirt_driver_uml_la_LIBADD += ../gnulib/lib/libgnu.la
|
2008-11-21 12:16:08 +00:00
|
|
|
libvirt_driver_uml_la_LDFLAGS += -module -avoid-version
|
|
|
|
endif
|
2008-11-19 16:58:23 +00:00
|
|
|
libvirt_driver_uml_la_SOURCES = $(UML_DRIVER_SOURCES)
|
|
|
|
endif
|
2008-11-04 23:37:23 +00:00
|
|
|
|
2009-05-25 11:56:00 +00:00
|
|
|
if WITH_ONE
|
|
|
|
if WITH_DRIVER_MODULES
|
|
|
|
mod_LTLIBRARIES += libvirt_driver_one.la
|
|
|
|
else
|
|
|
|
noinst_LTLIBRARIES += libvirt_driver_one.la
|
|
|
|
# Stateful, so linked to daemon instead
|
2010-05-15 00:19:58 +00:00
|
|
|
#libvirt_la_BUILT_LIBADD += libvirt_driver_one.la
|
2009-05-25 11:56:00 +00:00
|
|
|
endif
|
Move all XML configuration handling to src/conf/
* src/capabilities.c, src/capabilities.h, src/domain_conf.c,
src/domain_conf.h, src/domain_event.c, src/domain_event.h,
src/interface_conf.c, src/interface_conf.h,
src/network_conf.c, src/network_conf.h, src/node_device_conf.c,
src/node_device_conf.h, src/secret_conf.c, src/secret_conf.h,
src/storage_conf.c, src/storage_conf.h, src/storage_encryption_conf.c,
src/storage_encryption_conf.h: Move to src/conf/
* src/Makefile.am: Add -Isrc/conf to the individual build targets
which need to use XML config APIs. Remove LIBXML_CFLAGS, LIBSSH2_CFLAGS
and SELINUX_CFLAGS from global INCLUDES and only have them in build
targets which actually need them. Create a libvirt_conf.la
convenience library for all config parsers
* src/hostusb.h: Remove bogus include of domain_conf.h
* tests/Makefile.am: Add -Isrc/conf. Remove bogus -I$builddir/src
since it never has any generated header files
* daemon/Makefile.am: Add -Isrc/conf
* proxy/Makefile.am: Add -Isrc/conf and cope with renamed files
* src/hash.c: Remove bogus include of libxml/threads.h
2009-09-16 14:39:12 +00:00
|
|
|
libvirt_driver_one_la_CFLAGS = $(XMLRPC_CFLAGS) \
|
2010-06-09 18:35:49 +00:00
|
|
|
-I@top_srcdir@/src/conf $(AM_CFLAGS)
|
|
|
|
libvirt_driver_one_la_LDFLAGS = $(AM_LDFLAGS)
|
build: use LIBADD, not LDFLAGS, for adding libraries
Per automake, LDFLAGS is used early in the line, and LIBADD
(libraries) or LDADD (programs) is used late. On platforms like
cygwin, without lazy linking, this order matters. Therefore, libtool
commands, -L, and similar should be in LDFLAGS, but -l should be in
L*ADD.
* src/Makefile.am (*_LDFLAGS): Move libraries...
(*_LIBADD): ...to their LIBADD counterpart.
2010-05-07 16:39:52 +00:00
|
|
|
libvirt_driver_one_la_LIBADD = $(XMLRPC_LIBS)
|
2009-05-25 11:56:00 +00:00
|
|
|
#libvirt_driver_one_la_CFLAGS = "-DWITH_ONE"
|
|
|
|
if WITH_DRIVER_MODULES
|
2010-10-12 11:23:18 +00:00
|
|
|
libvirt_driver_one_la_LIBADD += ../gnulib/lib/libgnu.la
|
2009-05-25 11:56:00 +00:00
|
|
|
libvirt_driver_one_la_LDFLAGS += -module -avoid-version
|
|
|
|
endif
|
|
|
|
libvirt_driver_one_la_SOURCES = $(ONE_DRIVER_SOURCES)
|
|
|
|
endif
|
|
|
|
|
|
|
|
|
2010-03-06 16:56:28 +00:00
|
|
|
BUILT_SOURCES += $(ESX_DRIVER_GENERATED)
|
2009-05-25 11:56:00 +00:00
|
|
|
|
2010-03-06 16:56:28 +00:00
|
|
|
$(ESX_DRIVER_GENERATED): $(srcdir)/esx/esx_vi_generator.input $(srcdir)/esx/esx_vi_generator.py
|
|
|
|
-srcdir=$(srcdir) $(srcdir)/esx/esx_vi_generator.py
|
2009-05-25 11:56:00 +00:00
|
|
|
|
2009-07-23 20:21:08 +00:00
|
|
|
if WITH_ESX
|
|
|
|
if WITH_DRIVER_MODULES
|
|
|
|
mod_LTLIBRARIES += libvirt_driver_esx.la
|
|
|
|
else
|
|
|
|
noinst_LTLIBRARIES += libvirt_driver_esx.la
|
2010-05-15 00:19:58 +00:00
|
|
|
libvirt_la_BUILT_LIBADD += libvirt_driver_esx.la
|
2009-07-23 20:21:08 +00:00
|
|
|
endif
|
Move all XML configuration handling to src/conf/
* src/capabilities.c, src/capabilities.h, src/domain_conf.c,
src/domain_conf.h, src/domain_event.c, src/domain_event.h,
src/interface_conf.c, src/interface_conf.h,
src/network_conf.c, src/network_conf.h, src/node_device_conf.c,
src/node_device_conf.h, src/secret_conf.c, src/secret_conf.h,
src/storage_conf.c, src/storage_conf.h, src/storage_encryption_conf.c,
src/storage_encryption_conf.h: Move to src/conf/
* src/Makefile.am: Add -Isrc/conf to the individual build targets
which need to use XML config APIs. Remove LIBXML_CFLAGS, LIBSSH2_CFLAGS
and SELINUX_CFLAGS from global INCLUDES and only have them in build
targets which actually need them. Create a libvirt_conf.la
convenience library for all config parsers
* src/hostusb.h: Remove bogus include of domain_conf.h
* tests/Makefile.am: Add -Isrc/conf. Remove bogus -I$builddir/src
since it never has any generated header files
* daemon/Makefile.am: Add -Isrc/conf
* proxy/Makefile.am: Add -Isrc/conf and cope with renamed files
* src/hash.c: Remove bogus include of libxml/threads.h
2009-09-16 14:39:12 +00:00
|
|
|
libvirt_driver_esx_la_CFLAGS = $(LIBCURL_CFLAGS) \
|
2010-06-09 18:35:49 +00:00
|
|
|
-I@top_srcdir@/src/conf $(AM_CFLAGS)
|
|
|
|
libvirt_driver_esx_la_LDFLAGS = $(AM_LDFLAGS)
|
build: use LIBADD, not LDFLAGS, for adding libraries
Per automake, LDFLAGS is used early in the line, and LIBADD
(libraries) or LDADD (programs) is used late. On platforms like
cygwin, without lazy linking, this order matters. Therefore, libtool
commands, -L, and similar should be in LDFLAGS, but -l should be in
L*ADD.
* src/Makefile.am (*_LDFLAGS): Move libraries...
(*_LIBADD): ...to their LIBADD counterpart.
2010-05-07 16:39:52 +00:00
|
|
|
libvirt_driver_esx_la_LIBADD = $(LIBCURL_LIBS)
|
2009-07-23 20:21:08 +00:00
|
|
|
if WITH_DRIVER_MODULES
|
2010-10-12 11:23:18 +00:00
|
|
|
libvirt_driver_esx_la_LIBADD += ../gnulib/lib/libgnu.la
|
2009-07-23 20:21:08 +00:00
|
|
|
libvirt_driver_esx_la_LDFLAGS += -module -avoid-version
|
|
|
|
endif
|
|
|
|
libvirt_driver_esx_la_SOURCES = $(ESX_DRIVER_SOURCES)
|
2010-03-06 16:56:28 +00:00
|
|
|
libvirt_driver_esx_la_DEPENDENCIES = $(ESX_DRIVER_GENERATED)
|
2009-07-23 20:21:08 +00:00
|
|
|
endif
|
|
|
|
|
2008-11-04 23:37:23 +00:00
|
|
|
if WITH_NETWORK
|
2008-11-21 12:16:08 +00:00
|
|
|
if WITH_DRIVER_MODULES
|
|
|
|
mod_LTLIBRARIES += libvirt_driver_network.la
|
|
|
|
else
|
2008-11-17 10:43:30 +00:00
|
|
|
noinst_LTLIBRARIES += libvirt_driver_network.la
|
2008-11-17 12:18:18 +00:00
|
|
|
# Stateful, so linked to daemon instead
|
2010-05-15 00:19:58 +00:00
|
|
|
#libvirt_la_BUILT_LIBADD += libvirt_driver_network.la
|
2008-11-21 12:16:08 +00:00
|
|
|
endif
|
Move all XML configuration handling to src/conf/
* src/capabilities.c, src/capabilities.h, src/domain_conf.c,
src/domain_conf.h, src/domain_event.c, src/domain_event.h,
src/interface_conf.c, src/interface_conf.h,
src/network_conf.c, src/network_conf.h, src/node_device_conf.c,
src/node_device_conf.h, src/secret_conf.c, src/secret_conf.h,
src/storage_conf.c, src/storage_conf.h, src/storage_encryption_conf.c,
src/storage_encryption_conf.h: Move to src/conf/
* src/Makefile.am: Add -Isrc/conf to the individual build targets
which need to use XML config APIs. Remove LIBXML_CFLAGS, LIBSSH2_CFLAGS
and SELINUX_CFLAGS from global INCLUDES and only have them in build
targets which actually need them. Create a libvirt_conf.la
convenience library for all config parsers
* src/hostusb.h: Remove bogus include of domain_conf.h
* tests/Makefile.am: Add -Isrc/conf. Remove bogus -I$builddir/src
since it never has any generated header files
* daemon/Makefile.am: Add -Isrc/conf
* proxy/Makefile.am: Add -Isrc/conf and cope with renamed files
* src/hash.c: Remove bogus include of libxml/threads.h
2009-09-16 14:39:12 +00:00
|
|
|
libvirt_driver_network_la_CFLAGS = \
|
2010-06-09 18:35:49 +00:00
|
|
|
-I@top_srcdir@/src/conf $(AM_CFLAGS)
|
2008-11-21 12:16:08 +00:00
|
|
|
if WITH_DRIVER_MODULES
|
2010-10-12 11:23:18 +00:00
|
|
|
libvirt_driver_network_la_LIBADD = ../gnulib/lib/libgnu.la
|
2010-06-09 18:35:49 +00:00
|
|
|
libvirt_driver_network_la_LDFLAGS = -module -avoid-version $(AM_LDFLAGS)
|
2008-11-21 12:16:08 +00:00
|
|
|
endif
|
2008-11-17 10:43:30 +00:00
|
|
|
libvirt_driver_network_la_SOURCES = $(NETWORK_DRIVER_SOURCES)
|
2008-11-04 23:37:23 +00:00
|
|
|
endif
|
2009-09-16 11:31:13 +00:00
|
|
|
EXTRA_DIST += network/default.xml
|
|
|
|
|
|
|
|
|
|
|
|
|
2008-11-04 23:37:23 +00:00
|
|
|
|
2009-05-20 14:26:49 +00:00
|
|
|
if WITH_NETCF
|
2009-07-21 14:02:16 +00:00
|
|
|
if WITH_DRIVER_MODULES
|
|
|
|
mod_LTLIBRARIES += libvirt_driver_interface.la
|
|
|
|
else
|
|
|
|
noinst_LTLIBRARIES += libvirt_driver_interface.la
|
2010-05-15 00:19:58 +00:00
|
|
|
libvirt_la_BUILT_LIBADD += libvirt_driver_interface.la
|
2009-07-21 14:02:16 +00:00
|
|
|
endif
|
Move all XML configuration handling to src/conf/
* src/capabilities.c, src/capabilities.h, src/domain_conf.c,
src/domain_conf.h, src/domain_event.c, src/domain_event.h,
src/interface_conf.c, src/interface_conf.h,
src/network_conf.c, src/network_conf.h, src/node_device_conf.c,
src/node_device_conf.h, src/secret_conf.c, src/secret_conf.h,
src/storage_conf.c, src/storage_conf.h, src/storage_encryption_conf.c,
src/storage_encryption_conf.h: Move to src/conf/
* src/Makefile.am: Add -Isrc/conf to the individual build targets
which need to use XML config APIs. Remove LIBXML_CFLAGS, LIBSSH2_CFLAGS
and SELINUX_CFLAGS from global INCLUDES and only have them in build
targets which actually need them. Create a libvirt_conf.la
convenience library for all config parsers
* src/hostusb.h: Remove bogus include of domain_conf.h
* tests/Makefile.am: Add -Isrc/conf. Remove bogus -I$builddir/src
since it never has any generated header files
* daemon/Makefile.am: Add -Isrc/conf
* proxy/Makefile.am: Add -Isrc/conf and cope with renamed files
* src/hash.c: Remove bogus include of libxml/threads.h
2009-09-16 14:39:12 +00:00
|
|
|
libvirt_driver_interface_la_CFLAGS = $(NETCF_CFLAGS) \
|
2010-06-09 18:35:49 +00:00
|
|
|
-I@top_srcdir@/src/conf $(AM_CFLAGS)
|
|
|
|
libvirt_driver_interface_la_LDFLAGS = $(AM_LDFLAGS)
|
build: use LIBADD, not LDFLAGS, for adding libraries
Per automake, LDFLAGS is used early in the line, and LIBADD
(libraries) or LDADD (programs) is used late. On platforms like
cygwin, without lazy linking, this order matters. Therefore, libtool
commands, -L, and similar should be in LDFLAGS, but -l should be in
L*ADD.
* src/Makefile.am (*_LDFLAGS): Move libraries...
(*_LIBADD): ...to their LIBADD counterpart.
2010-05-07 16:39:52 +00:00
|
|
|
libvirt_driver_interface_la_LIBADD = $(NETCF_LIBS)
|
2009-07-21 14:02:16 +00:00
|
|
|
if WITH_DRIVER_MODULES
|
2010-10-12 11:23:18 +00:00
|
|
|
libvirt_driver_interface_la_LIBADD += ../gnulib/lib/libgnu.la
|
2009-07-21 14:02:16 +00:00
|
|
|
libvirt_driver_interface_la_LDFLAGS += -module -avoid-version
|
|
|
|
endif
|
|
|
|
libvirt_driver_interface_la_SOURCES = $(INTERFACE_DRIVER_SOURCES)
|
2009-05-20 14:26:49 +00:00
|
|
|
endif
|
|
|
|
|
2009-09-14 12:31:23 +00:00
|
|
|
if WITH_SECRETS
|
2009-08-14 19:48:55 +00:00
|
|
|
if WITH_DRIVER_MODULES
|
|
|
|
mod_LTLIBRARIES += libvirt_driver_secret.la
|
|
|
|
else
|
|
|
|
noinst_LTLIBRARIES += libvirt_driver_secret.la
|
2009-12-22 13:50:50 +00:00
|
|
|
# Stateful, so linked to daemon instead
|
2010-05-15 00:19:58 +00:00
|
|
|
#libvirt_la_BUILT_LIBADD += libvirt_driver_secret.la
|
2009-08-14 19:48:55 +00:00
|
|
|
endif
|
Move all XML configuration handling to src/conf/
* src/capabilities.c, src/capabilities.h, src/domain_conf.c,
src/domain_conf.h, src/domain_event.c, src/domain_event.h,
src/interface_conf.c, src/interface_conf.h,
src/network_conf.c, src/network_conf.h, src/node_device_conf.c,
src/node_device_conf.h, src/secret_conf.c, src/secret_conf.h,
src/storage_conf.c, src/storage_conf.h, src/storage_encryption_conf.c,
src/storage_encryption_conf.h: Move to src/conf/
* src/Makefile.am: Add -Isrc/conf to the individual build targets
which need to use XML config APIs. Remove LIBXML_CFLAGS, LIBSSH2_CFLAGS
and SELINUX_CFLAGS from global INCLUDES and only have them in build
targets which actually need them. Create a libvirt_conf.la
convenience library for all config parsers
* src/hostusb.h: Remove bogus include of domain_conf.h
* tests/Makefile.am: Add -Isrc/conf. Remove bogus -I$builddir/src
since it never has any generated header files
* daemon/Makefile.am: Add -Isrc/conf
* proxy/Makefile.am: Add -Isrc/conf and cope with renamed files
* src/hash.c: Remove bogus include of libxml/threads.h
2009-09-16 14:39:12 +00:00
|
|
|
libvirt_driver_secret_la_CFLAGS = \
|
2010-06-09 18:35:49 +00:00
|
|
|
-I@top_srcdir@/src/conf $(AM_CFLAGS)
|
2009-08-14 19:48:55 +00:00
|
|
|
if WITH_DRIVER_MODULES
|
build: use LIBADD, not LDFLAGS, for adding libraries
Per automake, LDFLAGS is used early in the line, and LIBADD
(libraries) or LDADD (programs) is used late. On platforms like
cygwin, without lazy linking, this order matters. Therefore, libtool
commands, -L, and similar should be in LDFLAGS, but -l should be in
L*ADD.
* src/Makefile.am (*_LDFLAGS): Move libraries...
(*_LIBADD): ...to their LIBADD counterpart.
2010-05-07 16:39:52 +00:00
|
|
|
libvirt_driver_secret_la_LIBADD = ../gnulib/lib/libgnu.la
|
2010-10-12 11:23:18 +00:00
|
|
|
libvirt_driver_secret_la_LDFLAGS = -module -avoid-version $(AM_LDFLAGS)
|
2009-08-14 19:48:55 +00:00
|
|
|
endif
|
|
|
|
libvirt_driver_secret_la_SOURCES = $(SECRET_DRIVER_SOURCES)
|
2009-09-14 12:31:23 +00:00
|
|
|
endif
|
2009-08-14 19:48:55 +00:00
|
|
|
|
2008-11-17 10:43:30 +00:00
|
|
|
# Needed to keep automake quiet about conditionals
|
|
|
|
libvirt_driver_storage_la_SOURCES =
|
Move all XML configuration handling to src/conf/
* src/capabilities.c, src/capabilities.h, src/domain_conf.c,
src/domain_conf.h, src/domain_event.c, src/domain_event.h,
src/interface_conf.c, src/interface_conf.h,
src/network_conf.c, src/network_conf.h, src/node_device_conf.c,
src/node_device_conf.h, src/secret_conf.c, src/secret_conf.h,
src/storage_conf.c, src/storage_conf.h, src/storage_encryption_conf.c,
src/storage_encryption_conf.h: Move to src/conf/
* src/Makefile.am: Add -Isrc/conf to the individual build targets
which need to use XML config APIs. Remove LIBXML_CFLAGS, LIBSSH2_CFLAGS
and SELINUX_CFLAGS from global INCLUDES and only have them in build
targets which actually need them. Create a libvirt_conf.la
convenience library for all config parsers
* src/hostusb.h: Remove bogus include of domain_conf.h
* tests/Makefile.am: Add -Isrc/conf. Remove bogus -I$builddir/src
since it never has any generated header files
* daemon/Makefile.am: Add -Isrc/conf
* proxy/Makefile.am: Add -Isrc/conf and cope with renamed files
* src/hash.c: Remove bogus include of libxml/threads.h
2009-09-16 14:39:12 +00:00
|
|
|
libvirt_driver_storage_la_CFLAGS = \
|
2010-06-09 18:35:49 +00:00
|
|
|
-I@top_srcdir@/src/conf $(AM_CFLAGS)
|
|
|
|
libvirt_driver_storage_la_LDFLAGS = $(AM_LDFLAGS)
|
build: use LIBADD, not LDFLAGS, for adding libraries
Per automake, LDFLAGS is used early in the line, and LIBADD
(libraries) or LDADD (programs) is used late. On platforms like
cygwin, without lazy linking, this order matters. Therefore, libtool
commands, -L, and similar should be in LDFLAGS, but -l should be in
L*ADD.
* src/Makefile.am (*_LDFLAGS): Move libraries...
(*_LIBADD): ...to their LIBADD counterpart.
2010-05-07 16:39:52 +00:00
|
|
|
libvirt_driver_storage_la_LIBADD =
|
2008-11-04 23:37:23 +00:00
|
|
|
if WITH_STORAGE_DIR
|
2008-11-21 12:16:08 +00:00
|
|
|
if WITH_DRIVER_MODULES
|
|
|
|
mod_LTLIBRARIES += libvirt_driver_storage.la
|
|
|
|
else
|
2008-11-17 10:43:30 +00:00
|
|
|
noinst_LTLIBRARIES += libvirt_driver_storage.la
|
2008-11-17 12:18:18 +00:00
|
|
|
# Stateful, so linked to daemon instead
|
2010-05-15 00:19:58 +00:00
|
|
|
#libvirt_la_BUILT_LIBADD += libvirt_driver_storage.la
|
2008-11-21 12:16:08 +00:00
|
|
|
endif
|
|
|
|
if WITH_DRIVER_MODULES
|
2010-10-12 11:23:18 +00:00
|
|
|
libvirt_driver_storage_la_LIBADD += ../gnulib/lib/libgnu.la
|
Move all shared utility files to src/util/
* src/bridge.c, src/bridge.h, src/buf.c, src/buf.h, src/cgroup.c,
src/cgroup.h, src/conf.c, src/conf.h, src/event.c, src/event.h,
src/hash.c, src/hash.h, src/hostusb.c, src/hostusb.h,
src/iptables.c, src/iptables.h, src/logging.c, src/logging.h,
src/memory.c, src/memory.h, src/pci.c, src/pci.h, src/qparams.c,
src/qparams.h, src/stats_linux.c, src/stats_linux.h,
src/threads-pthread.c, src/threads-pthread.h, src/threads-win32.c,
src/threads-win32.h, src/threads.c, src/threads.h, src/util.c,
src/util.h, src/uuid.c, src/uuid.h, src/virterror.c,
src/virterror_internal.h, src/xml.c, src/xml.h: Move all files
into src/util/
* daemon/Makefile.am: Add -Isrc/util/ to build flags
* src/Makefile.am: Add -Isrc/util/ to build flags and update for
moved files
* src/libvirt_private.syms: Export cgroup APIs since they're now
in util rather than linking directly to drivers
* src/xen/xs_internal.c: Disable bogus virEventRemoveHandle call
when built under PROXY
* proxy/Makefile.am: Update for changed file locations. Remove
bogus build of event.c
* tools/Makefile.am, tests/Makefile.am: Add -Isrc/util/ to build flags
2009-09-16 15:28:46 +00:00
|
|
|
libvirt_driver_storage_la_LDFLAGS += -module -avoid-version
|
2008-11-21 12:16:08 +00:00
|
|
|
endif
|
2008-11-17 10:43:30 +00:00
|
|
|
libvirt_driver_storage_la_SOURCES += $(STORAGE_DRIVER_SOURCES)
|
|
|
|
libvirt_driver_storage_la_SOURCES += $(STORAGE_DRIVER_FS_SOURCES)
|
2008-11-04 23:37:23 +00:00
|
|
|
endif
|
|
|
|
|
2008-02-20 15:45:33 +00:00
|
|
|
if WITH_STORAGE_LVM
|
2008-11-17 10:43:30 +00:00
|
|
|
libvirt_driver_storage_la_SOURCES += $(STORAGE_DRIVER_LVM_SOURCES)
|
2008-02-20 15:45:33 +00:00
|
|
|
endif
|
|
|
|
|
2008-02-20 15:49:25 +00:00
|
|
|
if WITH_STORAGE_ISCSI
|
2008-11-17 10:43:30 +00:00
|
|
|
libvirt_driver_storage_la_SOURCES += $(STORAGE_DRIVER_ISCSI_SOURCES)
|
2008-02-20 15:49:25 +00:00
|
|
|
endif
|
|
|
|
|
2009-04-01 16:03:22 +00:00
|
|
|
if WITH_STORAGE_SCSI
|
|
|
|
libvirt_driver_storage_la_SOURCES += $(STORAGE_DRIVER_SCSI_SOURCES)
|
|
|
|
endif
|
|
|
|
|
2009-09-08 13:47:45 +00:00
|
|
|
if WITH_STORAGE_MPATH
|
|
|
|
libvirt_driver_storage_la_SOURCES += $(STORAGE_DRIVER_MPATH_SOURCES)
|
|
|
|
libvirt_driver_storage_la_CFLAGS += $(DEVMAPPER_CFLAGS)
|
build: use LIBADD, not LDFLAGS, for adding libraries
Per automake, LDFLAGS is used early in the line, and LIBADD
(libraries) or LDADD (programs) is used late. On platforms like
cygwin, without lazy linking, this order matters. Therefore, libtool
commands, -L, and similar should be in LDFLAGS, but -l should be in
L*ADD.
* src/Makefile.am (*_LDFLAGS): Move libraries...
(*_LIBADD): ...to their LIBADD counterpart.
2010-05-07 16:39:52 +00:00
|
|
|
libvirt_driver_storage_la_LIBADD += $(DEVMAPPER_LIBS)
|
2009-09-08 13:47:45 +00:00
|
|
|
endif
|
|
|
|
|
2008-02-20 15:52:17 +00:00
|
|
|
if WITH_STORAGE_DISK
|
2008-11-17 10:43:30 +00:00
|
|
|
libvirt_driver_storage_la_SOURCES += $(STORAGE_DRIVER_DISK_SOURCES)
|
2008-02-20 15:52:17 +00:00
|
|
|
endif
|
2008-02-20 15:45:33 +00:00
|
|
|
|
2008-11-21 12:27:11 +00:00
|
|
|
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
|
2010-05-15 00:19:58 +00:00
|
|
|
#libvirt_la_BUILT_LIBADD += libvirt_driver_nodedev.la
|
2008-11-21 12:27:11 +00:00
|
|
|
endif
|
|
|
|
libvirt_driver_nodedev_la_SOURCES = $(NODE_DEVICE_DRIVER_SOURCES)
|
|
|
|
|
Move all XML configuration handling to src/conf/
* src/capabilities.c, src/capabilities.h, src/domain_conf.c,
src/domain_conf.h, src/domain_event.c, src/domain_event.h,
src/interface_conf.c, src/interface_conf.h,
src/network_conf.c, src/network_conf.h, src/node_device_conf.c,
src/node_device_conf.h, src/secret_conf.c, src/secret_conf.h,
src/storage_conf.c, src/storage_conf.h, src/storage_encryption_conf.c,
src/storage_encryption_conf.h: Move to src/conf/
* src/Makefile.am: Add -Isrc/conf to the individual build targets
which need to use XML config APIs. Remove LIBXML_CFLAGS, LIBSSH2_CFLAGS
and SELINUX_CFLAGS from global INCLUDES and only have them in build
targets which actually need them. Create a libvirt_conf.la
convenience library for all config parsers
* src/hostusb.h: Remove bogus include of domain_conf.h
* tests/Makefile.am: Add -Isrc/conf. Remove bogus -I$builddir/src
since it never has any generated header files
* daemon/Makefile.am: Add -Isrc/conf
* proxy/Makefile.am: Add -Isrc/conf and cope with renamed files
* src/hash.c: Remove bogus include of libxml/threads.h
2009-09-16 14:39:12 +00:00
|
|
|
libvirt_driver_nodedev_la_CFLAGS = \
|
2010-06-09 18:35:49 +00:00
|
|
|
-I@top_srcdir@/src/conf $(AM_CFLAGS)
|
|
|
|
libvirt_driver_nodedev_la_LDFLAGS = $(AM_LDFLAGS)
|
build: use LIBADD, not LDFLAGS, for adding libraries
Per automake, LDFLAGS is used early in the line, and LIBADD
(libraries) or LDADD (programs) is used late. On platforms like
cygwin, without lazy linking, this order matters. Therefore, libtool
commands, -L, and similar should be in LDFLAGS, but -l should be in
L*ADD.
* src/Makefile.am (*_LDFLAGS): Move libraries...
(*_LIBADD): ...to their LIBADD counterpart.
2010-05-07 16:39:52 +00:00
|
|
|
libvirt_driver_nodedev_la_LIBADD =
|
2008-11-21 12:27:11 +00:00
|
|
|
if HAVE_HAL
|
|
|
|
libvirt_driver_nodedev_la_SOURCES += $(NODE_DEVICE_DRIVER_HAL_SOURCES)
|
|
|
|
libvirt_driver_nodedev_la_CFLAGS += $(HAL_CFLAGS)
|
build: use LIBADD, not LDFLAGS, for adding libraries
Per automake, LDFLAGS is used early in the line, and LIBADD
(libraries) or LDADD (programs) is used late. On platforms like
cygwin, without lazy linking, this order matters. Therefore, libtool
commands, -L, and similar should be in LDFLAGS, but -l should be in
L*ADD.
* src/Makefile.am (*_LDFLAGS): Move libraries...
(*_LIBADD): ...to their LIBADD counterpart.
2010-05-07 16:39:52 +00:00
|
|
|
libvirt_driver_nodedev_la_LIBADD += $(HAL_LIBS)
|
2008-11-21 12:27:11 +00:00
|
|
|
endif
|
2009-11-12 21:48:24 +00:00
|
|
|
if HAVE_UDEV
|
|
|
|
libvirt_driver_nodedev_la_SOURCES += $(NODE_DEVICE_DRIVER_UDEV_SOURCES)
|
2009-11-12 22:22:00 +00:00
|
|
|
libvirt_driver_nodedev_la_CFLAGS += $(UDEV_CFLAGS) $(PCIACCESS_CFLAGS)
|
build: use LIBADD, not LDFLAGS, for adding libraries
Per automake, LDFLAGS is used early in the line, and LIBADD
(libraries) or LDADD (programs) is used late. On platforms like
cygwin, without lazy linking, this order matters. Therefore, libtool
commands, -L, and similar should be in LDFLAGS, but -l should be in
L*ADD.
* src/Makefile.am (*_LDFLAGS): Move libraries...
(*_LIBADD): ...to their LIBADD counterpart.
2010-05-07 16:39:52 +00:00
|
|
|
libvirt_driver_nodedev_la_LIBADD += $(UDEV_LIBS) $(PCIACCESS_LIBS)
|
2009-11-12 21:48:24 +00:00
|
|
|
endif
|
2008-11-21 12:27:11 +00:00
|
|
|
|
|
|
|
if WITH_DRIVER_MODULES
|
2010-10-12 11:23:18 +00:00
|
|
|
libvirt_driver_nodedev_la_LIBADD += ../gnulib/lib/libgnu.la
|
2008-11-21 12:27:11 +00:00
|
|
|
libvirt_driver_nodedev_la_LDFLAGS += -module -avoid-version
|
|
|
|
endif
|
|
|
|
endif
|
|
|
|
|
|
|
|
|
2010-03-25 17:46:09 +00:00
|
|
|
if WITH_NWFILTER
|
|
|
|
if WITH_DRIVER_MODULES
|
|
|
|
mod_LTLIBRARIES += libvirt_driver_nwfilter.la
|
|
|
|
else
|
2010-05-15 00:19:58 +00:00
|
|
|
libvirt_la_BUILT_LIBADD += libvirt_driver_nwfilter.la
|
2010-03-25 17:46:09 +00:00
|
|
|
noinst_LTLIBRARIES += libvirt_driver_nwfilter.la
|
|
|
|
endif
|
nwfilter: Support for learning a VM's IP address
This patch implements support for learning a VM's IP address. It uses
the pcap library to listen on the VM's backend network interface (tap)
or the physical ethernet device (macvtap) and tries to capture packets
with source or destination MAC address of the VM and learn from DHCP
Offers, ARP traffic, or first-sent IPv4 packet what the IP address of
the VM's interface is. This then allows to instantiate the network
traffic filtering rules without the user having to provide the IP
parameter somewhere in the filter description or in the interface
description as a parameter. This only supports to detect the parameter
IP, which is for the assumed single IPv4 address of a VM. There is not
support for interfaces that may have multiple IP addresses (IP
aliasing) or IPv6 that may then require more than one valid IP address
to be detected. A VM can have multiple independent interfaces that each
uses a different IP address and in that case it will be attempted to
detect each one of the address independently.
So, when for example an interface description in the domain XML has
looked like this up to now:
<interface type='bridge'>
<source bridge='mybridge'/>
<model type='virtio'/>
<filterref filter='clean-traffic'>
<parameter name='IP' value='10.2.3.4'/>
</filterref>
</interface>
you may omit the IP parameter:
<interface type='bridge'>
<source bridge='mybridge'/>
<model type='virtio'/>
<filterref filter='clean-traffic'/>
</interface>
Internally I am walking the 'tree' of a VM's referenced network filters
and determine with the given variables which variables are missing. Now,
the above IP parameter may be missing and this causes a libvirt-internal
thread to be started that uses the pcap library's API to listen to the
backend interface (in case of macvtap to the physical interface) in an
attempt to determine the missing IP parameter. If the backend interface
disappears the thread terminates assuming the VM was brought down. In
case of a macvtap device a timeout is being used to wait for packets
from the given VM (filtering by VM's interface MAC address). If the VM's
macvtap device disappeared the thread also terminates. In all other
cases it tries to determine the IP address of the VM and will then apply
the rules late on the given interface, which would have happened
immediately if the IP parameter had been explicitly given. In case an
error happens while the firewall rules are applied, the VM's backend
interface is 'down'ed preventing it to communicate. Reasons for failure
for applying the network firewall rules may that an ebtables/iptables
command failes or OOM errors. Essentially the same failure reasons may
occur as when the firewall rules are applied immediately on VM start,
except that due to the late application of the filtering rules the VM
now is already running and cannot be hindered anymore from starting.
Bringing down the whole VM would probably be considered too drastic.
While a VM's IP address is attempted to be determined only limited
updates to network filters are allowed. In particular it is prevented
that filters are modified in such a way that they would introduce new
variables.
A caveat: The algorithm does not know which one is the appropriate IP
address of a VM. If the VM spoofs an IP address in its first ARP traffic
or IPv4 packets its filtering rules will be instantiated for this IP
address, thus 'locking' it to the found IP address. So, it's still
'safer' to explicitly provide the IP address of a VM's interface in the
filter description if it is known beforehand.
* configure.ac: detect libpcap
* libvirt.spec.in: require libpcap[-devel] if qemu is built
* src/internal.h: add the new ATTRIBUTE_PACKED define
* src/Makefile.am src/libvirt_private.syms: add the new modules and symbols
* src/nwfilter/nwfilter_learnipaddr.[ch]: new module being added
* src/nwfilter/nwfilter_driver.c src/conf/nwfilter_conf.[ch]
src/nwfilter/nwfilter_ebiptables_driver.[ch]
src/nwfilter/nwfilter_gentech_driver.[ch]: plu the new functionality in
* tests/nwfilterxml2xmltest: extend testing
2010-04-07 21:02:18 +00:00
|
|
|
libvirt_driver_nwfilter_la_CFLAGS = $(LIBPCAP_CFLAGS) \
|
2010-06-09 18:35:49 +00:00
|
|
|
-I@top_srcdir@/src/conf $(AM_CFLAGS)
|
|
|
|
libvirt_driver_nwfilter_la_LDFLAGS = $(LD_AMFLAGS)
|
build: use LIBADD, not LDFLAGS, for adding libraries
Per automake, LDFLAGS is used early in the line, and LIBADD
(libraries) or LDADD (programs) is used late. On platforms like
cygwin, without lazy linking, this order matters. Therefore, libtool
commands, -L, and similar should be in LDFLAGS, but -l should be in
L*ADD.
* src/Makefile.am (*_LDFLAGS): Move libraries...
(*_LIBADD): ...to their LIBADD counterpart.
2010-05-07 16:39:52 +00:00
|
|
|
libvirt_driver_nwfilter_la_LIBADD = $(LIBPCAP_LIBS)
|
2010-03-25 17:46:09 +00:00
|
|
|
if WITH_DRIVER_MODULES
|
build: use LIBADD, not LDFLAGS, for adding libraries
Per automake, LDFLAGS is used early in the line, and LIBADD
(libraries) or LDADD (programs) is used late. On platforms like
cygwin, without lazy linking, this order matters. Therefore, libtool
commands, -L, and similar should be in LDFLAGS, but -l should be in
L*ADD.
* src/Makefile.am (*_LDFLAGS): Move libraries...
(*_LIBADD): ...to their LIBADD counterpart.
2010-05-07 16:39:52 +00:00
|
|
|
libvirt_driver_nwfilter_la_LIBADD += ../gnulib/lib/libgnu.la
|
2010-10-12 11:23:18 +00:00
|
|
|
libvirt_driver_nwfilter_la_LDFLAGS += -module -avoid-version
|
2010-03-25 17:46:09 +00:00
|
|
|
endif
|
|
|
|
libvirt_driver_nwfilter_la_SOURCES = $(NWFILTER_DRIVER_SOURCES)
|
|
|
|
endif
|
|
|
|
|
|
|
|
|
2009-03-03 09:44:41 +00:00
|
|
|
libvirt_driver_security_la_SOURCES = $(SECURITY_DRIVER_SOURCES)
|
|
|
|
noinst_LTLIBRARIES += libvirt_driver_security.la
|
2010-05-15 00:19:58 +00:00
|
|
|
libvirt_la_BUILT_LIBADD += libvirt_driver_security.la
|
Move all XML configuration handling to src/conf/
* src/capabilities.c, src/capabilities.h, src/domain_conf.c,
src/domain_conf.h, src/domain_event.c, src/domain_event.h,
src/interface_conf.c, src/interface_conf.h,
src/network_conf.c, src/network_conf.h, src/node_device_conf.c,
src/node_device_conf.h, src/secret_conf.c, src/secret_conf.h,
src/storage_conf.c, src/storage_conf.h, src/storage_encryption_conf.c,
src/storage_encryption_conf.h: Move to src/conf/
* src/Makefile.am: Add -Isrc/conf to the individual build targets
which need to use XML config APIs. Remove LIBXML_CFLAGS, LIBSSH2_CFLAGS
and SELINUX_CFLAGS from global INCLUDES and only have them in build
targets which actually need them. Create a libvirt_conf.la
convenience library for all config parsers
* src/hostusb.h: Remove bogus include of domain_conf.h
* tests/Makefile.am: Add -Isrc/conf. Remove bogus -I$builddir/src
since it never has any generated header files
* daemon/Makefile.am: Add -Isrc/conf
* proxy/Makefile.am: Add -Isrc/conf and cope with renamed files
* src/hash.c: Remove bogus include of libxml/threads.h
2009-09-16 14:39:12 +00:00
|
|
|
libvirt_driver_security_la_CFLAGS = \
|
2010-06-09 18:35:49 +00:00
|
|
|
-I@top_srcdir@/src/conf $(AM_CFLAGS)
|
|
|
|
libvirt_driver_security_la_LDFLAGS = $(AM_LDFLAGS)
|
build: use LIBADD, not LDFLAGS, for adding libraries
Per automake, LDFLAGS is used early in the line, and LIBADD
(libraries) or LDADD (programs) is used late. On platforms like
cygwin, without lazy linking, this order matters. Therefore, libtool
commands, -L, and similar should be in LDFLAGS, but -l should be in
L*ADD.
* src/Makefile.am (*_LDFLAGS): Move libraries...
(*_LIBADD): ...to their LIBADD counterpart.
2010-05-07 16:39:52 +00:00
|
|
|
libvirt_driver_security_la_LIBADD =
|
2009-03-03 10:06:49 +00:00
|
|
|
if WITH_SECDRIVER_SELINUX
|
|
|
|
libvirt_driver_security_la_SOURCES += $(SECURITY_DRIVER_SELINUX_SOURCES)
|
2009-10-21 10:11:13 +00:00
|
|
|
libvirt_driver_security_la_CFLAGS += $(SELINUX_CFLAGS)
|
build: use LIBADD, not LDFLAGS, for adding libraries
Per automake, LDFLAGS is used early in the line, and LIBADD
(libraries) or LDADD (programs) is used late. On platforms like
cygwin, without lazy linking, this order matters. Therefore, libtool
commands, -L, and similar should be in LDFLAGS, but -l should be in
L*ADD.
* src/Makefile.am (*_LDFLAGS): Move libraries...
(*_LIBADD): ...to their LIBADD counterpart.
2010-05-07 16:39:52 +00:00
|
|
|
libvirt_driver_security_la_LIBADD += $(SELINUX_LIBS)
|
2009-03-03 10:06:49 +00:00
|
|
|
endif
|
2009-10-08 14:34:22 +00:00
|
|
|
if WITH_SECDRIVER_APPARMOR
|
|
|
|
libvirt_driver_security_la_SOURCES += $(SECURITY_DRIVER_APPARMOR_SOURCES)
|
|
|
|
libvirt_driver_security_la_CFLAGS += $(APPARMOR_CFLAGS)
|
build: use LIBADD, not LDFLAGS, for adding libraries
Per automake, LDFLAGS is used early in the line, and LIBADD
(libraries) or LDADD (programs) is used late. On platforms like
cygwin, without lazy linking, this order matters. Therefore, libtool
commands, -L, and similar should be in LDFLAGS, but -l should be in
L*ADD.
* src/Makefile.am (*_LDFLAGS): Move libraries...
(*_LIBADD): ...to their LIBADD counterpart.
2010-05-07 16:39:52 +00:00
|
|
|
libvirt_driver_security_la_LIBADD += $(APPARMOR_LIBS)
|
2009-10-08 14:34:22 +00:00
|
|
|
endif
|
2009-03-03 09:44:41 +00:00
|
|
|
|
2008-08-20 20:48:35 +00:00
|
|
|
# Add all conditional sources just in case...
|
|
|
|
EXTRA_DIST += \
|
|
|
|
$(TEST_DRIVER_SOURCES) \
|
|
|
|
$(REMOTE_DRIVER_SOURCES) \
|
|
|
|
$(XEN_DRIVER_SOURCES) \
|
|
|
|
$(QEMU_DRIVER_SOURCES) \
|
|
|
|
$(LXC_DRIVER_SOURCES) \
|
2008-11-19 16:58:23 +00:00
|
|
|
$(UML_DRIVER_SOURCES) \
|
2009-05-25 11:56:00 +00:00
|
|
|
$(ONE_DRIVER_SOURCES) \
|
2008-08-20 20:48:35 +00:00
|
|
|
$(OPENVZ_DRIVER_SOURCES) \
|
2009-07-24 14:17:06 +00:00
|
|
|
$(PHYP_DRIVER_SOURCES) \
|
2009-04-17 16:09:07 +00:00
|
|
|
$(VBOX_DRIVER_SOURCES) \
|
2010-03-14 11:11:51 +00:00
|
|
|
$(XENAPI_DRIVER_SOURCES) \
|
2009-07-23 20:21:08 +00:00
|
|
|
$(ESX_DRIVER_SOURCES) \
|
2010-03-06 16:56:28 +00:00
|
|
|
$(ESX_DRIVER_EXTRA_DIST) \
|
2008-10-10 13:57:13 +00:00
|
|
|
$(NETWORK_DRIVER_SOURCES) \
|
2009-07-21 14:02:16 +00:00
|
|
|
$(INTERFACE_DRIVER_SOURCES) \
|
2008-08-20 20:48:35 +00:00
|
|
|
$(STORAGE_DRIVER_SOURCES) \
|
|
|
|
$(STORAGE_DRIVER_FS_SOURCES) \
|
|
|
|
$(STORAGE_DRIVER_LVM_SOURCES) \
|
|
|
|
$(STORAGE_DRIVER_ISCSI_SOURCES) \
|
2009-04-01 16:03:22 +00:00
|
|
|
$(STORAGE_DRIVER_SCSI_SOURCES) \
|
2009-09-08 13:47:45 +00:00
|
|
|
$(STORAGE_DRIVER_MPATH_SOURCES) \
|
2008-11-21 12:27:11 +00:00
|
|
|
$(STORAGE_DRIVER_DISK_SOURCES) \
|
|
|
|
$(NODE_DEVICE_DRIVER_SOURCES) \
|
|
|
|
$(NODE_DEVICE_DRIVER_HAL_SOURCES) \
|
2009-11-12 21:48:24 +00:00
|
|
|
$(NODE_DEVICE_DRIVER_UDEV_SOURCES) \
|
2010-03-25 17:46:07 +00:00
|
|
|
$(NWFILTER_DRIVER_SOURCES) \
|
2009-04-19 15:12:01 +00:00
|
|
|
$(SECURITY_DRIVER_SELINUX_SOURCES) \
|
2009-10-08 14:34:22 +00:00
|
|
|
$(SECURITY_DRIVER_APPARMOR_SOURCES) \
|
2009-09-14 12:31:23 +00:00
|
|
|
$(SECRET_DRIVER_SOURCES) \
|
2009-04-19 16:36:22 +00:00
|
|
|
$(VBOX_DRIVER_EXTRA_DIST)
|
2008-08-20 20:48:35 +00:00
|
|
|
|
2010-03-24 08:39:54 +00:00
|
|
|
check-local: augeas-check
|
|
|
|
|
|
|
|
.PHONY: augeas-check
|
|
|
|
augeas-check:
|
2009-10-08 16:06:40 +00:00
|
|
|
if WITH_QEMU
|
2010-03-24 08:39:54 +00:00
|
|
|
$(AM_V_GEN)if test -x '$(AUGPARSE)'; then \
|
2009-10-08 16:06:40 +00:00
|
|
|
'$(AUGPARSE)' -I $(srcdir)/qemu \
|
|
|
|
$(srcdir)/qemu/test_libvirtd_qemu.aug; \
|
|
|
|
fi
|
|
|
|
endif
|
|
|
|
if WITH_LXC
|
2010-03-24 08:39:54 +00:00
|
|
|
$(AM_V_GEN)if test -x '$(AUGPARSE)'; then \
|
2009-10-08 16:06:40 +00:00
|
|
|
'$(AUGPARSE)' -I $(srcdir)/lxc \
|
|
|
|
$(srcdir)/lxc/test_libvirtd_lxc.aug; \
|
|
|
|
fi
|
|
|
|
endif
|
|
|
|
|
2009-01-05 14:05:29 +00:00
|
|
|
#
|
|
|
|
# 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.
|
|
|
|
#
|
|
|
|
|
2009-01-05 14:06:41 +00:00
|
|
|
if WITH_DRIVER_MODULES
|
2009-01-06 15:16:43 +00:00
|
|
|
USED_SYM_FILES += libvirt_driver_modules.syms
|
2009-01-05 14:06:41 +00:00
|
|
|
endif
|
2009-01-05 14:07:31 +00:00
|
|
|
|
|
|
|
if WITH_BRIDGE
|
2009-01-06 15:16:43 +00:00
|
|
|
USED_SYM_FILES += libvirt_bridge.syms
|
2009-01-05 14:07:31 +00:00
|
|
|
endif
|
2009-01-05 14:08:26 +00:00
|
|
|
|
|
|
|
if WITH_LINUX
|
2009-01-06 15:16:43 +00:00
|
|
|
USED_SYM_FILES += libvirt_linux.syms
|
2009-01-05 14:08:26 +00:00
|
|
|
endif
|
2009-01-05 14:05:29 +00:00
|
|
|
|
2010-03-12 21:09:50 +00:00
|
|
|
if WITH_MACVTAP
|
2010-02-12 17:03:07 +00:00
|
|
|
USED_SYM_FILES += libvirt_macvtap.syms
|
2010-03-12 21:09:50 +00:00
|
|
|
endif
|
2010-02-12 17:03:07 +00:00
|
|
|
|
2010-03-15 01:02:57 +00:00
|
|
|
if WITH_LIBVIRTD
|
|
|
|
USED_SYM_FILES += libvirt_daemon.syms
|
|
|
|
endif
|
|
|
|
|
2010-04-23 16:39:08 +00:00
|
|
|
if WITH_NWFILTER
|
|
|
|
USED_SYM_FILES += libvirt_nwfilter.syms
|
|
|
|
endif
|
|
|
|
|
2009-01-06 15:16:43 +00:00
|
|
|
EXTRA_DIST += \
|
|
|
|
libvirt_public.syms \
|
|
|
|
libvirt_private.syms \
|
|
|
|
libvirt_driver_modules.syms \
|
|
|
|
libvirt_bridge.syms \
|
2010-02-12 17:03:07 +00:00
|
|
|
libvirt_linux.syms \
|
2010-03-15 01:02:57 +00:00
|
|
|
libvirt_macvtap.syms \
|
2010-04-23 16:39:08 +00:00
|
|
|
libvirt_daemon.syms \
|
|
|
|
libvirt_nwfilter.syms
|
2009-01-05 14:05:29 +00:00
|
|
|
|
2010-08-12 21:43:16 +00:00
|
|
|
BUILT_SOURCES += libvirt.syms libvirt.def libvirt_qemu.def
|
2009-09-16 11:01:53 +00:00
|
|
|
|
2009-01-06 15:16:43 +00:00
|
|
|
libvirt.syms: libvirt_public.syms $(USED_SYM_FILES)
|
2010-03-31 12:10:08 +00:00
|
|
|
$(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 && \
|
2009-01-06 15:16:43 +00:00
|
|
|
for file in $(USED_SYM_FILES); do \
|
2009-01-05 14:05:29 +00:00
|
|
|
cat $(srcdir)/$$file >>$@-tmp; \
|
2010-03-31 12:10:08 +00:00
|
|
|
done && \
|
|
|
|
printf '\n\nlocal:\n*;\n\n};' >>$@-tmp && \
|
|
|
|
chmod a-w $@-tmp && \
|
2009-01-05 14:05:29 +00:00
|
|
|
mv $@-tmp libvirt.syms
|
2008-02-20 15:45:33 +00:00
|
|
|
|
2010-03-22 01:25:36 +00:00
|
|
|
libvirt.def: libvirt.syms
|
|
|
|
$(AM_V_GEN)rm -f -- $@-tmp $@ ; \
|
|
|
|
printf 'EXPORTS\n' > $@-tmp && \
|
2010-09-10 16:38:17 +00:00
|
|
|
sed -e '/^$$/d; /#/d; /:/d; /}/d; /\*/d; /LIBVIRT_/d; s/[ ]*\(.*\)\;/ \1/g' $^ >> $@-tmp && \
|
2010-03-22 01:25:36 +00:00
|
|
|
chmod a-w $@-tmp && \
|
|
|
|
mv $@-tmp libvirt.def
|
|
|
|
|
2010-08-12 21:43:16 +00:00
|
|
|
libvirt_qemu.def: $(srcdir)/libvirt_qemu.syms
|
|
|
|
$(AM_V_GEN)rm -f -- $@-tmp $@ ; \
|
|
|
|
printf 'EXPORTS\n' > $@-tmp && \
|
2010-09-10 16:38:17 +00:00
|
|
|
sed -e '/^$$/d; /#/d; /:/d; /}/d; /\*/d; /LIBVIRT_/d; s/[ ]*\(.*\)\;/ \1/g' $^ >> $@-tmp && \
|
2010-08-12 21:43:16 +00:00
|
|
|
chmod a-w $@-tmp && \
|
|
|
|
mv $@-tmp libvirt_qemu.def
|
|
|
|
|
2008-11-17 10:43:30 +00:00
|
|
|
# Empty source list - it merely links a bunch of convenience libs together
|
|
|
|
libvirt_la_SOURCES =
|
2010-03-22 01:25:36 +00:00
|
|
|
libvirt_la_LDFLAGS = $(VERSION_SCRIPT_FLAGS)$(LIBVIRT_SYMBOL_FILE) \
|
2010-01-15 10:09:01 +00:00
|
|
|
-version-info $(LIBVIRT_VERSION_INFO) \
|
2010-06-09 18:35:49 +00:00
|
|
|
$(AM_LDFLAGS) \
|
build: use LIBADD, not LDFLAGS, for adding libraries
Per automake, LDFLAGS is used early in the line, and LIBADD
(libraries) or LDADD (programs) is used late. On platforms like
cygwin, without lazy linking, this order matters. Therefore, libtool
commands, -L, and similar should be in LDFLAGS, but -l should be in
L*ADD.
* src/Makefile.am (*_LDFLAGS): Move libraries...
(*_LIBADD): ...to their LIBADD counterpart.
2010-05-07 16:39:52 +00:00
|
|
|
$(CYGWIN_EXTRA_LDFLAGS) $(MINGW_EXTRA_LDFLAGS)
|
2010-05-15 00:19:58 +00:00
|
|
|
libvirt_la_BUILT_LIBADD += ../gnulib/lib/libgnu.la
|
build: use LIBADD, not LDFLAGS, for adding libraries
Per automake, LDFLAGS is used early in the line, and LIBADD
(libraries) or LDADD (programs) is used late. On platforms like
cygwin, without lazy linking, this order matters. Therefore, libtool
commands, -L, and similar should be in LDFLAGS, but -l should be in
L*ADD.
* src/Makefile.am (*_LDFLAGS): Move libraries...
(*_LIBADD): ...to their LIBADD counterpart.
2010-05-07 16:39:52 +00:00
|
|
|
libvirt_la_LIBADD += $(LIBXML_LIBS) \
|
Move all XML configuration handling to src/conf/
* src/capabilities.c, src/capabilities.h, src/domain_conf.c,
src/domain_conf.h, src/domain_event.c, src/domain_event.h,
src/interface_conf.c, src/interface_conf.h,
src/network_conf.c, src/network_conf.h, src/node_device_conf.c,
src/node_device_conf.h, src/secret_conf.c, src/secret_conf.h,
src/storage_conf.c, src/storage_conf.h, src/storage_encryption_conf.c,
src/storage_encryption_conf.h: Move to src/conf/
* src/Makefile.am: Add -Isrc/conf to the individual build targets
which need to use XML config APIs. Remove LIBXML_CFLAGS, LIBSSH2_CFLAGS
and SELINUX_CFLAGS from global INCLUDES and only have them in build
targets which actually need them. Create a libvirt_conf.la
convenience library for all config parsers
* src/hostusb.h: Remove bogus include of domain_conf.h
* tests/Makefile.am: Add -Isrc/conf. Remove bogus -I$builddir/src
since it never has any generated header files
* daemon/Makefile.am: Add -Isrc/conf
* proxy/Makefile.am: Add -Isrc/conf and cope with renamed files
* src/hash.c: Remove bogus include of libxml/threads.h
2009-09-16 14:39:12 +00:00
|
|
|
$(DRIVER_MODULE_LIBS) \
|
2010-05-15 00:19:58 +00:00
|
|
|
$(CYGWIN_EXTRA_LIBADD)
|
2010-06-09 18:35:49 +00:00
|
|
|
libvirt_la_CFLAGS = -DIN_LIBVIRT $(AM_CFLAGS)
|
2010-05-15 00:19:58 +00:00
|
|
|
# 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)
|
2007-06-15 01:21:18 +00:00
|
|
|
|
2008-02-28 17:06:32 +00:00
|
|
|
# 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.
|
2008-11-17 10:43:30 +00:00
|
|
|
noinst_LTLIBRARIES += libvirt_test.la
|
2008-02-28 17:06:32 +00:00
|
|
|
|
2009-01-05 14:05:29 +00:00
|
|
|
# Remove version script from convenience library
|
2008-02-28 17:06:32 +00:00
|
|
|
test_LDFLAGS = \
|
|
|
|
$$(echo '$(libvirt_la_LDFLAGS)' \
|
2010-03-22 01:25:36 +00:00
|
|
|
|sed 's!$(VERSION_SCRIPT_FLAGS)$(LIBVIRT_SYMBOL_FILE)!!' \
|
2010-01-15 10:09:01 +00:00
|
|
|
|sed 's!-version-info $(LIBVIRT_VERSION_INFO)!!')
|
2008-02-28 17:06:32 +00:00
|
|
|
|
|
|
|
# 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)
|
2010-06-09 18:35:49 +00:00
|
|
|
libvirt_test_la_LDFLAGS = $(test_LDFLAGS) $(AM_LDFLAGS)
|
|
|
|
libvirt_test_la_CFLAGS = $(AM_CFLAGS)
|
2008-02-28 17:06:32 +00:00
|
|
|
|
2010-04-13 18:02:46 +00:00
|
|
|
libvirt_qemu_la_SOURCES = libvirt-qemu.c
|
|
|
|
libvirt_qemu_la_LDFLAGS = $(VERSION_SCRIPT_FLAGS)$(LIBVIRT_QEMU_SYMBOL_FILE) \
|
|
|
|
-version-info $(LIBVIRT_VERSION_INFO) \
|
2010-06-09 18:35:49 +00:00
|
|
|
$(CYGWIN_EXTRA_LDFLAGS) $(MINGW_EXTRA_LDFLAGS) \
|
|
|
|
$(AM_LDFLAGS)
|
|
|
|
libvirt_qemu_la_CFLAGS = $(AM_CFLAGS)
|
2010-04-13 18:02:46 +00:00
|
|
|
libvirt_qemu_la_LIBADD = libvirt.la $(CYGWIN_EXTRA_LIBADD)
|
2010-07-29 20:19:40 +00:00
|
|
|
EXTRA_DIST += $(LIBVIRT_QEMU_SYMBOL_FILE)
|
2008-10-15 18:39:34 +00:00
|
|
|
|
2008-08-20 20:55:32 +00:00
|
|
|
libexec_PROGRAMS =
|
|
|
|
|
2008-02-20 15:52:17 +00:00
|
|
|
if WITH_STORAGE_DISK
|
2008-04-18 08:33:23 +00:00
|
|
|
if WITH_LIBVIRTD
|
2008-08-20 20:55:32 +00:00
|
|
|
libexec_PROGRAMS += libvirt_parthelper
|
2008-02-20 15:52:17 +00:00
|
|
|
|
2008-08-20 20:48:35 +00:00
|
|
|
libvirt_parthelper_SOURCES = $(STORAGE_HELPER_DISK_SOURCES)
|
2010-06-09 18:35:49 +00:00
|
|
|
libvirt_parthelper_LDFLAGS = $(WARN_LDFLAGS) $(AM_LDFLAGS)
|
2010-07-08 22:04:26 +00:00
|
|
|
libvirt_parthelper_LDADD = \
|
|
|
|
$(LIBPARTED_LIBS) \
|
|
|
|
$(DEVMAPPER_LIBS) \
|
|
|
|
libvirt_util.la \
|
|
|
|
../gnulib/lib/libgnu.la
|
|
|
|
|
2010-06-09 18:35:49 +00:00
|
|
|
libvirt_parthelper_CFLAGS = $(LIBPARTED_CFLAGS) $(AM_CFLAGS)
|
2008-04-18 08:33:23 +00:00
|
|
|
endif
|
2008-02-20 15:52:17 +00:00
|
|
|
endif
|
2008-08-20 20:48:35 +00:00
|
|
|
EXTRA_DIST += $(STORAGE_HELPER_DISK_SOURCES)
|
|
|
|
|
2008-02-20 15:52:17 +00:00
|
|
|
|
2008-08-20 20:55:32 +00:00
|
|
|
if WITH_LXC
|
|
|
|
if WITH_LIBVIRTD
|
|
|
|
libexec_PROGRAMS += libvirt_lxc
|
|
|
|
|
|
|
|
libvirt_lxc_SOURCES = \
|
|
|
|
$(LXC_CONTROLLER_SOURCES) \
|
make NUMA-initialization code more portable and more robust
qemudCapsInitNUMA and umlCapsInitNUMA were identical, so this change
factors them into a new function, virCapsInitNUMA, and puts it in
nodeinfo.c.
In addition to factoring out the duplicates, this change also
adjusts that function definition (along with its macros) so
that it works with Fedora 9's numactl version 1, and makes it
so the code will work even if someone builds the kernel with
CONFIG_NR_CPUS > 4096.
Finally, also perform this NUMA initialization for the lxc
and openvz drivers.
* src/nodeinfo.c: Include <stdint.h>, <numa.h> and "memory.h".
(virCapsInitNUMA): Rename from qemudCapsInitNUMA and umlCapsInitNUMA.
(NUMA_MAX_N_CPUS): Define depending on NUMA API version.
(n_bits, MASK_CPU_ISSET): Define, adjust, use uint64 rather than long.
* src/nodeinfo.h: Include "capabilities.h".
(virCapsInitNUMA): Declare it.
* examples/domain-events/events-c/Makefile.am:
* src/Makefile.am: Add $(NUMACTL_CFLAGS) and $(NUMACTL_LIBS) to various
compile/link-related variables.
* src/qemu_conf.c: Include "nodeinfo.h".
(qemudCapsInitNUMA): Remove duplicate code. Adjust caller.
* src/uml_conf.c (umlCapsInitNUMA): Likewise.
Include "nodeinfo.h".
* src/lxc_conf.c: Include "nodeinfo.h".
(lxcCapsInit): Perform NUMA initialization here, too.
* src/openvz_conf.c (openvzCapsInit): And here.
Include "nodeinfo.h".
* src/libvirt_sym.version.in: Add virCapsInitNUMA so that libvirtd
can link to this function.
2008-12-21 18:55:09 +00:00
|
|
|
$(UTIL_SOURCES) \
|
Move all XML configuration handling to src/conf/
* src/capabilities.c, src/capabilities.h, src/domain_conf.c,
src/domain_conf.h, src/domain_event.c, src/domain_event.h,
src/interface_conf.c, src/interface_conf.h,
src/network_conf.c, src/network_conf.h, src/node_device_conf.c,
src/node_device_conf.h, src/secret_conf.c, src/secret_conf.h,
src/storage_conf.c, src/storage_conf.h, src/storage_encryption_conf.c,
src/storage_encryption_conf.h: Move to src/conf/
* src/Makefile.am: Add -Isrc/conf to the individual build targets
which need to use XML config APIs. Remove LIBXML_CFLAGS, LIBSSH2_CFLAGS
and SELINUX_CFLAGS from global INCLUDES and only have them in build
targets which actually need them. Create a libvirt_conf.la
convenience library for all config parsers
* src/hostusb.h: Remove bogus include of domain_conf.h
* tests/Makefile.am: Add -Isrc/conf. Remove bogus -I$builddir/src
since it never has any generated header files
* daemon/Makefile.am: Add -Isrc/conf
* proxy/Makefile.am: Add -Isrc/conf and cope with renamed files
* src/hash.c: Remove bogus include of libxml/threads.h
2009-09-16 14:39:12 +00:00
|
|
|
$(NODE_INFO_SOURCES) \
|
|
|
|
$(ENCRYPTION_CONF_SOURCES) \
|
2009-12-18 13:44:55 +00:00
|
|
|
$(DOMAIN_CONF_SOURCES) \
|
nwfilter: Support for learning a VM's IP address
This patch implements support for learning a VM's IP address. It uses
the pcap library to listen on the VM's backend network interface (tap)
or the physical ethernet device (macvtap) and tries to capture packets
with source or destination MAC address of the VM and learn from DHCP
Offers, ARP traffic, or first-sent IPv4 packet what the IP address of
the VM's interface is. This then allows to instantiate the network
traffic filtering rules without the user having to provide the IP
parameter somewhere in the filter description or in the interface
description as a parameter. This only supports to detect the parameter
IP, which is for the assumed single IPv4 address of a VM. There is not
support for interfaces that may have multiple IP addresses (IP
aliasing) or IPv6 that may then require more than one valid IP address
to be detected. A VM can have multiple independent interfaces that each
uses a different IP address and in that case it will be attempted to
detect each one of the address independently.
So, when for example an interface description in the domain XML has
looked like this up to now:
<interface type='bridge'>
<source bridge='mybridge'/>
<model type='virtio'/>
<filterref filter='clean-traffic'>
<parameter name='IP' value='10.2.3.4'/>
</filterref>
</interface>
you may omit the IP parameter:
<interface type='bridge'>
<source bridge='mybridge'/>
<model type='virtio'/>
<filterref filter='clean-traffic'/>
</interface>
Internally I am walking the 'tree' of a VM's referenced network filters
and determine with the given variables which variables are missing. Now,
the above IP parameter may be missing and this causes a libvirt-internal
thread to be started that uses the pcap library's API to listen to the
backend interface (in case of macvtap to the physical interface) in an
attempt to determine the missing IP parameter. If the backend interface
disappears the thread terminates assuming the VM was brought down. In
case of a macvtap device a timeout is being used to wait for packets
from the given VM (filtering by VM's interface MAC address). If the VM's
macvtap device disappeared the thread also terminates. In all other
cases it tries to determine the IP address of the VM and will then apply
the rules late on the given interface, which would have happened
immediately if the IP parameter had been explicitly given. In case an
error happens while the firewall rules are applied, the VM's backend
interface is 'down'ed preventing it to communicate. Reasons for failure
for applying the network firewall rules may that an ebtables/iptables
command failes or OOM errors. Essentially the same failure reasons may
occur as when the firewall rules are applied immediately on VM start,
except that due to the late application of the filtering rules the VM
now is already running and cannot be hindered anymore from starting.
Bringing down the whole VM would probably be considered too drastic.
While a VM's IP address is attempted to be determined only limited
updates to network filters are allowed. In particular it is prevented
that filters are modified in such a way that they would introduce new
variables.
A caveat: The algorithm does not know which one is the appropriate IP
address of a VM. If the VM spoofs an IP address in its first ARP traffic
or IPv4 packets its filtering rules will be instantiated for this IP
address, thus 'locking' it to the found IP address. So, it's still
'safer' to explicitly provide the IP address of a VM's interface in the
filter description if it is known beforehand.
* configure.ac: detect libpcap
* libvirt.spec.in: require libpcap[-devel] if qemu is built
* src/internal.h: add the new ATTRIBUTE_PACKED define
* src/Makefile.am src/libvirt_private.syms: add the new modules and symbols
* src/nwfilter/nwfilter_learnipaddr.[ch]: new module being added
* src/nwfilter/nwfilter_driver.c src/conf/nwfilter_conf.[ch]
src/nwfilter/nwfilter_ebiptables_driver.[ch]
src/nwfilter/nwfilter_gentech_driver.[ch]: plu the new functionality in
* tests/nwfilterxml2xmltest: extend testing
2010-04-07 21:02:18 +00:00
|
|
|
$(CPU_CONF_SOURCES) \
|
|
|
|
$(NWFILTER_PARAM_CONF_SOURCES)
|
2010-06-09 18:35:49 +00:00
|
|
|
libvirt_lxc_LDFLAGS = $(WARN_CFLAGS) $(AM_LDFLAGS)
|
build: use LIBADD, not LDFLAGS, for adding libraries
Per automake, LDFLAGS is used early in the line, and LIBADD
(libraries) or LDADD (programs) is used late. On platforms like
cygwin, without lazy linking, this order matters. Therefore, libtool
commands, -L, and similar should be in LDFLAGS, but -l should be in
L*ADD.
* src/Makefile.am (*_LDFLAGS): Move libraries...
(*_LIBADD): ...to their LIBADD counterpart.
2010-05-07 16:39:52 +00:00
|
|
|
libvirt_lxc_LDADD = $(CAPNG_LIBS) $(YAJL_LIBS) \
|
|
|
|
$(LIBXML_LIBS) $(NUMACTL_LIBS) $(LIB_PTHREAD) \
|
2010-09-15 13:44:11 +00:00
|
|
|
$(LIBNL_LIBS) $(AUDIT_LIBS) ../gnulib/lib/libgnu.la
|
Move all XML configuration handling to src/conf/
* src/capabilities.c, src/capabilities.h, src/domain_conf.c,
src/domain_conf.h, src/domain_event.c, src/domain_event.h,
src/interface_conf.c, src/interface_conf.h,
src/network_conf.c, src/network_conf.h, src/node_device_conf.c,
src/node_device_conf.h, src/secret_conf.c, src/secret_conf.h,
src/storage_conf.c, src/storage_conf.h, src/storage_encryption_conf.c,
src/storage_encryption_conf.h: Move to src/conf/
* src/Makefile.am: Add -Isrc/conf to the individual build targets
which need to use XML config APIs. Remove LIBXML_CFLAGS, LIBSSH2_CFLAGS
and SELINUX_CFLAGS from global INCLUDES and only have them in build
targets which actually need them. Create a libvirt_conf.la
convenience library for all config parsers
* src/hostusb.h: Remove bogus include of domain_conf.h
* tests/Makefile.am: Add -Isrc/conf. Remove bogus -I$builddir/src
since it never has any generated header files
* daemon/Makefile.am: Add -Isrc/conf
* proxy/Makefile.am: Add -Isrc/conf and cope with renamed files
* src/hash.c: Remove bogus include of libxml/threads.h
2009-09-16 14:39:12 +00:00
|
|
|
libvirt_lxc_CFLAGS = \
|
|
|
|
$(LIBPARTED_CFLAGS) \
|
|
|
|
$(NUMACTL_CFLAGS) \
|
|
|
|
$(CAPNG_CFLAGS) \
|
2009-11-03 18:59:18 +00:00
|
|
|
$(YAJL_CFLAGS) \
|
2010-09-15 13:44:11 +00:00
|
|
|
$(AUDIT_CFLAGS) \
|
2010-06-09 18:35:49 +00:00
|
|
|
-I@top_srcdir@/src/conf \
|
|
|
|
$(AM_CFLAGS)
|
2008-08-20 20:55:32 +00:00
|
|
|
endif
|
|
|
|
endif
|
|
|
|
EXTRA_DIST += $(LXC_CONTROLLER_SOURCES)
|
|
|
|
|
2009-10-08 14:34:22 +00:00
|
|
|
if WITH_SECDRIVER_APPARMOR
|
|
|
|
if WITH_LIBVIRTD
|
|
|
|
libexec_PROGRAMS += virt-aa-helper
|
|
|
|
|
|
|
|
virt_aa_helper_SOURCES = $(SECURITY_DRIVER_APPARMOR_HELPER_SOURCES)
|
|
|
|
|
2010-06-09 18:35:49 +00:00
|
|
|
virt_aa_helper_LDFLAGS = $(WARN_LDFLAGS) $(AM_LDFLAGS)
|
2009-10-08 14:34:22 +00:00
|
|
|
virt_aa_helper_LDADD = \
|
2010-05-07 17:59:24 +00:00
|
|
|
$(LIBXML_LIBS) \
|
2010-04-26 13:41:07 +00:00
|
|
|
libvirt_conf.la \
|
|
|
|
libvirt_util.la \
|
|
|
|
../gnulib/lib/libgnu.la
|
2009-10-08 14:34:22 +00:00
|
|
|
virt_aa_helper_CFLAGS = \
|
|
|
|
-I@top_srcdir@/src/conf \
|
2010-06-09 18:35:49 +00:00
|
|
|
-I@top_srcdir@/src/security \
|
|
|
|
$(AM_CFLAGS)
|
2009-10-08 14:34:22 +00:00
|
|
|
endif
|
|
|
|
endif
|
|
|
|
EXTRA_DIST += $(SECURITY_DRIVER_APPARMOR_HELPER_SOURCES)
|
|
|
|
|
2009-09-16 11:31:13 +00:00
|
|
|
install-data-local:
|
2009-01-20 22:36:10 +00:00
|
|
|
$(MKDIR_P) "$(DESTDIR)$(localstatedir)/cache/libvirt"
|
|
|
|
$(MKDIR_P) "$(DESTDIR)$(localstatedir)/lib/libvirt/images"
|
|
|
|
$(MKDIR_P) "$(DESTDIR)$(localstatedir)/lib/libvirt/boot"
|
|
|
|
if WITH_QEMU
|
|
|
|
$(MKDIR_P) "$(DESTDIR)$(localstatedir)/lib/libvirt/qemu"
|
|
|
|
$(MKDIR_P) "$(DESTDIR)$(localstatedir)/run/libvirt/qemu"
|
2009-07-15 21:25:01 +00:00
|
|
|
$(MKDIR_P) "$(DESTDIR)$(localstatedir)/cache/libvirt/qemu"
|
2009-09-16 11:31:13 +00:00
|
|
|
$(MKDIR_P) "$(DESTDIR)$(localstatedir)/log/libvirt/qemu"
|
2009-01-20 22:36:10 +00:00
|
|
|
endif
|
|
|
|
if WITH_LXC
|
|
|
|
$(MKDIR_P) "$(DESTDIR)$(localstatedir)/lib/libvirt/lxc"
|
|
|
|
$(MKDIR_P) "$(DESTDIR)$(localstatedir)/run/libvirt/lxc"
|
|
|
|
endif
|
|
|
|
if WITH_UML
|
|
|
|
$(MKDIR_P) "$(DESTDIR)$(localstatedir)/lib/libvirt/uml"
|
|
|
|
$(MKDIR_P) "$(DESTDIR)$(localstatedir)/run/libvirt/uml"
|
|
|
|
endif
|
|
|
|
if WITH_NETWORK
|
|
|
|
$(MKDIR_P) "$(DESTDIR)$(localstatedir)/lib/libvirt/network"
|
2010-04-28 13:38:47 +00:00
|
|
|
$(MKDIR_P) "$(DESTDIR)$(localstatedir)/lib/libvirt/dnsmasq"
|
2009-01-20 22:36:10 +00:00
|
|
|
$(MKDIR_P) "$(DESTDIR)$(localstatedir)/run/libvirt/network"
|
2009-09-16 11:31:13 +00:00
|
|
|
$(MKDIR_P) "$(DESTDIR)$(sysconfdir)/libvirt/qemu/networks/autostart"
|
|
|
|
$(INSTALL_DATA) $(srcdir)/network/default.xml \
|
|
|
|
$(DESTDIR)$(sysconfdir)/libvirt/qemu/networks/default.xml
|
|
|
|
test -z "$(UUID)" || \
|
2010-09-10 16:38:17 +00:00
|
|
|
{ sed -e "s,</name>,</name>\n <uuid>$(UUID)</uuid>," \
|
|
|
|
$(DESTDIR)$(sysconfdir)/libvirt/qemu/networks/default.xml > \
|
|
|
|
$(DESTDIR)$(sysconfdir)/libvirt/qemu/networks/default.xml.t && \
|
|
|
|
cp $(DESTDIR)$(sysconfdir)/libvirt/qemu/networks/default.xml.t \
|
|
|
|
$(DESTDIR)$(sysconfdir)/libvirt/qemu/networks/default.xml && \
|
|
|
|
rm $(DESTDIR)$(sysconfdir)/libvirt/qemu/networks/default.xml.t; }
|
2009-09-16 11:31:13 +00:00
|
|
|
test -e $(DESTDIR)$(sysconfdir)/libvirt/qemu/networks/autostart/default.xml || \
|
|
|
|
ln -s ../default.xml \
|
|
|
|
$(DESTDIR)$(sysconfdir)/libvirt/qemu/networks/autostart/default.xml
|
|
|
|
endif
|
|
|
|
|
|
|
|
uninstall-local::
|
|
|
|
rmdir "$(DESTDIR)$(localstatedir)/cache/libvirt" ||:
|
|
|
|
rmdir "$(DESTDIR)$(localstatedir)/lib/libvirt/images" ||:
|
|
|
|
rmdir "$(DESTDIR)$(localstatedir)/lib/libvirt/boot" ||:
|
|
|
|
if WITH_QEMU
|
|
|
|
rmdir "$(DESTDIR)$(localstatedir)/lib/libvirt/qemu" ||:
|
|
|
|
rmdir "$(DESTDIR)$(localstatedir)/run/libvirt/qemu" ||:
|
|
|
|
rmdir "$(DESTDIR)$(localstatedir)/cache/libvirt/qemu" ||:
|
|
|
|
rmdir "$(DESTDIR)$(localstatedir)/log/libvirt/qemu" ||:
|
2009-01-20 22:36:10 +00:00
|
|
|
endif
|
2009-09-16 11:31:13 +00:00
|
|
|
if WITH_LXC
|
|
|
|
rmdir "$(DESTDIR)$(localstatedir)/lib/libvirt/lxc" ||:
|
|
|
|
rmdir "$(DESTDIR)$(localstatedir)/run/libvirt/lxc" ||:
|
|
|
|
endif
|
|
|
|
if WITH_UML
|
|
|
|
rmdir "$(DESTDIR)$(localstatedir)/lib/libvirt/uml" ||:
|
|
|
|
rmdir "$(DESTDIR)$(localstatedir)/run/libvirt/uml" ||:
|
|
|
|
endif
|
|
|
|
if WITH_NETWORK
|
|
|
|
rm -f $(DESTDIR)$(sysconfdir)/libvirt/qemu/networks/autostart/default.xml
|
|
|
|
rm -f $(DESTDIR)$(sysconfdir)/libvirt/qemu/networks/default.xml
|
|
|
|
rmdir "$(DESTDIR)$(sysconfdir)/libvirt/qemu/networks/autostart" || :
|
|
|
|
rmdir "$(DESTDIR)$(sysconfdir)/libvirt/qemu/networks" || :
|
|
|
|
rmdir "$(DESTDIR)$(localstatedir)/lib/libvirt/network" ||:
|
|
|
|
rmdir "$(DESTDIR)$(localstatedir)/run/libvirt/network" ||:
|
|
|
|
endif
|
|
|
|
rmdir "$(DESTDIR)$(localstatedir)/lib/libvirt" ||:
|
2008-06-10 10:43:28 +00:00
|
|
|
|
2009-05-19 10:17:17 +00:00
|
|
|
CLEANFILES = *.gcov .libs/*.gcda .libs/*.gcno *.gcno *.gcda *.i *.s
|
2008-08-05 08:43:03 +00:00
|
|
|
DISTCLEANFILES = $(BUILT_SOURCES)
|