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

3 4 5
INCLUDES = \
	   -I$(top_srcdir)/gnulib/lib -I../gnulib/lib \
	   -I../include \
6 7
	   -I@top_srcdir@/include \
	   -I@top_srcdir@/qemud \
8 9
	   $(LIBXML_CFLAGS) \
	   $(GNUTLS_CFLAGS) \
10
	   $(SASL_CFLAGS) \
11
	   $(SELINUX_CFLAGS) \
12
	   $(NUMACTL_CFLAGS) \
13 14 15 16
	   -DBINDIR=\""$(libexecdir)"\" \
	   -DSBINDIR=\""$(sbindir)"\" \
	   -DSYSCONF_DIR="\"$(sysconfdir)\"" \
	   -DLOCALEBASEDIR=\""$(datadir)/locale"\" \
D
Daniel P. Berrange 已提交
17
           -DLOCAL_STATE_DIR=\""$(localstatedir)"\" \
18 19 20
           -DGETTEXT_PACKAGE=\"$(PACKAGE)\" \
	   $(WARN_CFLAGS) \
	   $(LIBVIRT_FEATURES)
21
DEPS = libvirt.la
22
LDADDS = @STATIC_BINARIES@ $(WARN_CFLAGS) libvirt.la ../gnulib/lib/libgnu.la
K
Karel Zak 已提交
23
VIRSH_LIBS = @VIRSH_LIBS@
D
Daniel Veillard 已提交
24

25 26 27
confdir = $(sysconfdir)/libvirt/
conf_DATA = qemu.conf

28 29 30 31 32 33 34 35
ICON_FILES = \
	libvirt_win_icon_16x16.ico \
	libvirt_win_icon_32x32.ico \
	libvirt_win_icon_48x48.ico \
	libvirt_win_icon_64x64.ico \
	virsh_win_icon.rc

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

37

38
lib_LTLIBRARIES = libvirt.la
39

40 41 42 43 44 45
# These files are not related to driver APIs. Simply generic
# helper APIs for various purposes
GENERIC_LIB_SOURCES =						\
		bridge.c bridge.h				\
		buf.c buf.h					\
		conf.c conf.h					\
46
		event.c event.h					\
47
		hash.c hash.h					\
48 49 50
		iptables.c iptables.h				\
		memory.c memory.h				\
		qparams.c qparams.h				\
51
		stats_linux.c stats_linux.h			\
52 53
		uuid.c uuid.h					\
		util.c util.h					\
54
		virterror.c virterror_internal.h		\
55 56 57 58 59 60 61 62 63 64 65 66 67 68
		xml.c xml.h

# Domain driver generic impl APIs
DOMAIN_CONF_SOURCES =						\
		capabilities.c capabilities.h			\
		domain_conf.c domain_conf.h			\
		nodeinfo.h nodeinfo.c

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

# Storage driver generic impl APIs
STORAGE_CONF_SOURCES =						\
D
Daniel P. Berrange 已提交
69 70
		storage_conf.h storage_conf.c			\
		storage_backend.h storage_backend.c
71 72 73 74 75


# The remote RPC driver, covering domains, storage, networks, etc
REMOTE_DRIVER_SOURCES =						\
		gnutls_1_0_compat.h				\
76
		remote_internal.c remote_internal.h		\
77
		../qemud/remote_protocol.c			\
78
		../qemud/remote_protocol.h
79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96

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



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

LXC_DRIVER_SOURCES =						\
D
Daniel Veillard 已提交
97
		lxc_conf.c lxc_conf.h				\
R
Richard W.M. Jones 已提交
98
		lxc_container.c lxc_container.h			\
99
		lxc_driver.c lxc_driver.h			\
D
Dan Smith 已提交
100 101
		veth.c veth.h					\
		cgroup.c cgroup.h
102

103 104 105 106
LXC_CONTROLLER_SOURCES =					\
		lxc_conf.c lxc_conf.h				\
		lxc_container.c lxc_container.h			\
		lxc_controller.c				\
D
Dan Smith 已提交
107 108
		veth.c veth.h                                   \
		cgroup.c cgroup.h
109

110 111 112
OPENVZ_DRIVER_SOURCES =						\
		openvz_conf.c openvz_conf.h			\
		openvz_driver.c openvz_driver.h
113

114 115 116
QEMU_DRIVER_SOURCES =						\
		qemu_conf.c qemu_conf.h				\
		qemu_driver.c qemu_driver.h
R
Richard W.M. Jones 已提交
117

118 119
NETWORK_DRIVER_SOURCES =					\
		network_driver.h network_driver.c
120 121 122

# And finally storage backend specific impls
STORAGE_DRIVER_SOURCES =					\
D
Daniel P. Berrange 已提交
123
		storage_driver.h storage_driver.c
124 125

STORAGE_DRIVER_FS_SOURCES =					\
R
Richard W.M. Jones 已提交
126 127
		storage_backend_fs.h storage_backend_fs.c

128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151
STORAGE_DRIVER_LVM_SOURCES =					\
		storage_backend_logical.h 			\
		storage_backend_logical.c

STORAGE_DRIVER_ISCSI_SOURCES =					\
		storage_backend_iscsi.h storage_backend_iscsi.c

STORAGE_DRIVER_DISK_SOURCES =					\
		storage_backend_disk.h storage_backend_disk.c

STORAGE_HELPER_DISK_SOURCES =					\
		parthelper.c



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

libvirt_la_SOURCES =						\
		driver.h					\
		internal.h					\
152
		datatypes.c datatypes.h				\
153
		domain_event.c domain_event.h			\
154
		libvirt.c libvirt_internal.h			\
155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172
		$(GENERIC_LIB_SOURCES)				\
		$(DOMAIN_CONF_SOURCES)				\
		$(NETWORK_CONF_SOURCES)				\
		$(STORAGE_CONF_SOURCES)

# Drivers usable outside daemon context
if WITH_TEST
libvirt_la_SOURCES += $(TEST_DRIVER_SOURCES)
endif

if WITH_REMOTE
libvirt_la_SOURCES += $(REMOTE_DRIVER_SOURCES)
endif

if WITH_XEN
libvirt_la_SOURCES += $(XEN_DRIVER_SOURCES)
endif

173 174 175 176
if WITH_OPENVZ
libvirt_la_SOURCES += $(OPENVZ_DRIVER_SOURCES)
endif

177 178
# Drivers usable inside daemon context
if WITH_LIBVIRTD
179 180 181
if WITH_NETWORK
libvirt_la_SOURCES += $(NETWORK_DRIVER_SOURCES)
endif
182 183 184 185 186 187 188 189 190 191 192
libvirt_la_SOURCES += $(STORAGE_DRIVER_SOURCES)
libvirt_la_SOURCES += $(STORAGE_DRIVER_FS_SOURCES)

if WITH_QEMU
libvirt_la_SOURCES += $(QEMU_DRIVER_SOURCES)
endif

if WITH_LXC
libvirt_la_SOURCES += $(LXC_DRIVER_SOURCES)
endif

193
if WITH_STORAGE_LVM
194
libvirt_la_SOURCES += $(STORAGE_DRIVER_LVM_SOURCES)
195 196
endif

197
if WITH_STORAGE_ISCSI
198
libvirt_la_SOURCES += $(STORAGE_DRIVER_ISCSI_SOURCES)
199 200
endif

201
if WITH_STORAGE_DISK
202
libvirt_la_SOURCES += $(STORAGE_DRIVER_DISK_SOURCES)
203
endif
R
Richard W.M. Jones 已提交
204
endif
205

206 207 208 209 210 211 212 213
# Add all conditional sources just in case...
EXTRA_DIST +=							\
		$(TEST_DRIVER_SOURCES)				\
		$(REMOTE_DRIVER_SOURCES)			\
		$(XEN_DRIVER_SOURCES)				\
		$(QEMU_DRIVER_SOURCES)				\
		$(LXC_DRIVER_SOURCES)				\
		$(OPENVZ_DRIVER_SOURCES)			\
214
		$(NETWORK_DRIVER_SOURCES)			\
215 216 217 218 219 220
		$(STORAGE_DRIVER_SOURCES)			\
		$(STORAGE_DRIVER_FS_SOURCES)			\
		$(STORAGE_DRIVER_LVM_SOURCES)			\
		$(STORAGE_DRIVER_ISCSI_SOURCES)			\
		$(STORAGE_DRIVER_DISK_SOURCES)

221

222
libvirt_la_LIBADD = $(LIBXML_LIBS) $(GNUTLS_LIBS) $(SASL_LIBS) $(SELINUX_LIBS) \
223
                    $(NUMACTL_LIBS) \
224
		    @CYGWIN_EXTRA_LIBADD@ ../gnulib/lib/libgnu.la
225 226 227
libvirt_la_LDFLAGS = -Wl,--version-script=$(srcdir)/libvirt_sym.version \
                     -version-info @LIBVIRT_VERSION_INFO@ \
                    $(COVERAGE_CFLAGS:-f%=-Wc,-f%) \
228
		    @CYGWIN_EXTRA_LDFLAGS@ @MINGW_EXTRA_LDFLAGS@
229
libvirt_la_CFLAGS = $(COVERAGE_CFLAGS) -DIN_LIBVIRT
230

231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249
# 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.
noinst_LTLIBRARIES = libvirt_test.la

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

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

K
Karel Zak 已提交
250
bin_PROGRAMS = virsh
251

252 253 254 255 256
virsh_SOURCES =							\
		console.c console.h				\
		util-lib.c util-lib.h				\
		virsh.c

257
virsh_LDFLAGS = $(WARN_CFLAGS) $(COVERAGE_LDFLAGS)
258
virsh_DEPENDENCIES = $(DEPS)
K
Karel Zak 已提交
259
virsh_LDADD = $(LDADDS) $(VIRSH_LIBS)
260
virsh_CFLAGS = $(COVERAGE_CFLAGS) $(READLINE_CFLAGS)
261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292
BUILT_SOURCES = virsh-net-edit.c virsh-pool-edit.c

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

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

294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320
if WITH_WIN_ICON
virsh_LDADD += virsh_win_icon.$(OBJEXT)
virsh_DEPENDENCIES += virsh_win_icon.$(OBJEXT)

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

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

321 322
libexec_PROGRAMS =

323
if WITH_STORAGE_DISK
R
Richard W.M. Jones 已提交
324
if WITH_LIBVIRTD
325
libexec_PROGRAMS += libvirt_parthelper
326

327
libvirt_parthelper_SOURCES = $(STORAGE_HELPER_DISK_SOURCES)
328 329 330
libvirt_parthelper_LDFLAGS = $(WARN_CFLAGS) $(COVERAGE_LDCFLAGS)
libvirt_parthelper_LDADD = $(LIBPARTED_LIBS)
libvirt_parthelper_CFLAGS =  $(LIBPARTED_CFLAGS)
R
Richard W.M. Jones 已提交
331
endif
332
endif
333 334
EXTRA_DIST += $(STORAGE_HELPER_DISK_SOURCES)

335

336 337 338 339 340 341 342 343 344 345 346 347 348 349 350
if WITH_LXC
if WITH_LIBVIRTD
libexec_PROGRAMS += libvirt_lxc

libvirt_lxc_SOURCES =						\
		$(LXC_CONTROLLER_SOURCES)			\
		$(GENERIC_LIB_SOURCES) 				\
		$(DOMAIN_CONF_SOURCES)
libvirt_lxc_LDFLAGS = $(WARN_CFLAGS) $(COVERAGE_LDCFLAGS)
libvirt_lxc_LDADD = $(LIBXML_LIBS) ../gnulib/lib/libgnu.la
libvirt_lxc_CFLAGS =  $(LIBPARTED_CFLAGS)
endif
endif
EXTRA_DIST += $(LXC_CONTROLLER_SOURCES)

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

355
CLEANFILES = *.gcov .libs/*.gcda .libs/*.gcno *.gcno *.gcda
356
DISTCLEANFILES = $(BUILT_SOURCES)