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
		libvirt.c libvirt_internal.h			\
154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171
		$(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

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

176 177
# Drivers usable inside daemon context
if WITH_LIBVIRTD
178 179 180
if WITH_NETWORK
libvirt_la_SOURCES += $(NETWORK_DRIVER_SOURCES)
endif
181 182 183 184 185 186 187 188 189 190 191
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

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

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

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

205 206 207 208 209 210 211 212
# 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)			\
213
		$(NETWORK_DRIVER_SOURCES)			\
214 215 216 217 218 219
		$(STORAGE_DRIVER_SOURCES)			\
		$(STORAGE_DRIVER_FS_SOURCES)			\
		$(STORAGE_DRIVER_LVM_SOURCES)			\
		$(STORAGE_DRIVER_ISCSI_SOURCES)			\
		$(STORAGE_DRIVER_DISK_SOURCES)

220

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

230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248
# 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 已提交
249
bin_PROGRAMS = virsh
250

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

256
virsh_LDFLAGS = $(WARN_CFLAGS) $(COVERAGE_LDFLAGS)
257
virsh_DEPENDENCIES = $(DEPS)
K
Karel Zak 已提交
258
virsh_LDADD = $(LDADDS) $(VIRSH_LIBS)
259
virsh_CFLAGS = $(COVERAGE_CFLAGS) $(READLINE_CFLAGS)
260 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
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 $@
292

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
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

320 321
libexec_PROGRAMS =

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

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

334

335 336 337 338 339 340 341 342 343 344 345 346 347 348 349
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 已提交
350 351
# Create the /var/cache/libvirt directory when installing.
install-exec-local:
D
Daniel P. Berrange 已提交
352
	$(MKDIR_P) $(DESTDIR)$(localstatedir)/cache/libvirt
R
Richard W.M. Jones 已提交
353

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