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
	   $(XEN_CFLAGS) \
14 15 16 17
	   -DBINDIR=\""$(libexecdir)"\" \
	   -DSBINDIR=\""$(sbindir)"\" \
	   -DSYSCONF_DIR="\"$(sysconfdir)\"" \
	   -DLOCALEBASEDIR=\""$(datadir)/locale"\" \
D
Daniel P. Berrange 已提交
18
           -DLOCAL_STATE_DIR=\""$(localstatedir)"\" \
19
           -DGETTEXT_PACKAGE=\"$(PACKAGE)\" \
20 21
	   $(WARN_CFLAGS)

22
DEPS = libvirt.la
23
LDADDS = @STATIC_BINARIES@ $(WARN_CFLAGS) libvirt.la ../gnulib/lib/libgnu.la
K
Karel Zak 已提交
24
VIRSH_LIBS = @VIRSH_LIBS@
D
Daniel Veillard 已提交
25

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

29 30 31 32 33 34 35 36
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)
37

38

39
lib_LTLIBRARIES = libvirt.la
40

41 42 43 44 45 46
# 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					\
47
		event.c event.h					\
48
		hash.c hash.h					\
49 50 51 52 53
		iptables.c iptables.h				\
		memory.c memory.h				\
		qparams.c qparams.h				\
		uuid.c uuid.h					\
		util.c util.h					\
54
		virterror.c virterror_internal.h		\
55
		logging.c logging.h				\
56 57 58 59 60 61 62 63 64 65 66 67 68 69
		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 已提交
70 71
		storage_conf.h storage_conf.c			\
		storage_backend.h storage_backend.c
72 73 74 75 76


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

# 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 已提交
98
		lxc_conf.c lxc_conf.h				\
R
Richard W.M. Jones 已提交
99
		lxc_container.c lxc_container.h			\
100
		lxc_driver.c lxc_driver.h			\
D
Dan Smith 已提交
101 102
		veth.c veth.h					\
		cgroup.c cgroup.h
103

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

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

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

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

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

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

129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152
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					\
153
		datatypes.c datatypes.h				\
154
		domain_event.c domain_event.h			\
155
		stats_linux.c stats_linux.h			\
156
		libvirt.c libvirt_internal.h			\
157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173
		$(GENERIC_LIB_SOURCES)				\
		$(DOMAIN_CONF_SOURCES)				\
		$(NETWORK_CONF_SOURCES)				\
		$(STORAGE_CONF_SOURCES)

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

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

178 179 180 181 182 183 184 185
if WITH_QEMU
libvirt_la_SOURCES += $(QEMU_DRIVER_SOURCES)
endif

if WITH_LXC
libvirt_la_SOURCES += $(LXC_DRIVER_SOURCES)
endif

186 187 188 189 190 191 192 193 194 195

if WITH_NETWORK
libvirt_la_SOURCES += $(NETWORK_DRIVER_SOURCES)
endif

if WITH_STORAGE_DIR
libvirt_la_SOURCES += $(STORAGE_DRIVER_SOURCES)
libvirt_la_SOURCES += $(STORAGE_DRIVER_FS_SOURCES)
endif

196
if WITH_STORAGE_LVM
197
libvirt_la_SOURCES += $(STORAGE_DRIVER_LVM_SOURCES)
198 199
endif

200
if WITH_STORAGE_ISCSI
201
libvirt_la_SOURCES += $(STORAGE_DRIVER_ISCSI_SOURCES)
202 203
endif

204
if WITH_STORAGE_DISK
205
libvirt_la_SOURCES += $(STORAGE_DRIVER_DISK_SOURCES)
206
endif
207

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

223

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

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

254 255 256 257 258
virsh_SOURCES =							\
		console.c console.h				\
		util-lib.c util-lib.h				\
		virsh.c

259
virsh_LDFLAGS = $(WARN_CFLAGS) $(COVERAGE_LDFLAGS)
260
virsh_DEPENDENCIES = $(DEPS)
K
Karel Zak 已提交
261
virsh_LDADD = $(LDADDS) $(VIRSH_LIBS)
262
virsh_CFLAGS = $(COVERAGE_CFLAGS) $(READLINE_CFLAGS)
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 293 294
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 $@
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 321 322
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

323 324
libexec_PROGRAMS =

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

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

337

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

357
CLEANFILES = *.gcov .libs/*.gcda .libs/*.gcno *.gcno *.gcda
358
DISTCLEANFILES = $(BUILT_SOURCES)