common-obj-$(CONFIG_LINUX) += fsdev/
common-obj-y += accel/
-common-obj-y += migration/
common-obj-$(CONFIG_AUDIO_ALSA) += audio-alsa$(DSOSUF)
common-obj-$(CONFIG_AUDIO_OSS) += audio-oss$(DSOSUF)
obj-y += gdbstub.o
obj-y += hw/
obj-y += qapi/
-obj-y += migration/ram.o
LIBS := $(libs_softmmu) $(LIBS)
# Temporary until emulators are linked by Meson
if 'CONFIG_LZO' in config_host
lzo = declare_dependency(link_args: config_host['LZO_LIBS'].split())
endif
+rdma = not_found
+if 'CONFIG_RDMA' in config_host
+ rdma = declare_dependency(link_args: config_host['RDMA_LIBS'].split())
+endif
create_config = find_program('scripts/create_config')
minikconf = find_program('scripts/minikconf.py')
common_ss.add(files('cpus-common.c'))
subdir('softmmu')
+subdir('migration')
subdir('monitor')
subdir('replay')
+++ /dev/null
-common-obj-y += migration.o socket.o fd.o exec.o
-common-obj-y += tls.o channel.o savevm.o
-common-obj-y += colo.o colo-failover.o
-common-obj-y += vmstate.o vmstate-types.o page_cache.o
-common-obj-y += qemu-file.o global_state.o
-common-obj-y += qemu-file-channel.o
-common-obj-y += xbzrle.o postcopy-ram.o
-common-obj-y += qjson.o
-common-obj-y += block-dirty-bitmap.o
-common-obj-y += multifd.o
-common-obj-y += multifd-zlib.o
-common-obj-$(CONFIG_ZSTD) += multifd-zstd.o
-
-common-obj-$(CONFIG_RDMA) += rdma.o
-
-common-obj-$(CONFIG_LIVE_BLOCK_MIGRATION) += block.o
-
-rdma.o-libs := $(RDMA_LIBS)
--- /dev/null
+# Files needed by unit tests
+migration_files = files(
+ 'page_cache.c',
+ 'xbzrle.c',
+ 'vmstate-types.c',
+ 'vmstate.c',
+ 'qemu-file-channel.c',
+ 'qemu-file.c',
+ 'qjson.c',
+)
+
+libmigration = static_library('migration', sources: migration_files + genh,
+ name_suffix: 'fa',
+ build_by_default: false)
+migration = declare_dependency(link_with: libmigration,
+ dependencies: [zlib, qom, io])
+softmmu_ss.add(migration)
+
+softmmu_ss.add(files(
+ 'block-dirty-bitmap.c',
+ 'channel.c',
+ 'colo-failover.c',
+ 'colo.c',
+ 'exec.c',
+ 'fd.c',
+ 'global_state.c',
+ 'migration.c',
+ 'multifd.c',
+ 'multifd-zlib.c',
+ 'postcopy-ram.c',
+ 'savevm.c',
+ 'socket.c',
+ 'tls.c',
+))
+
+softmmu_ss.add(when: ['CONFIG_RDMA', rdma], if_true: files('rdma.c'))
+softmmu_ss.add(when: 'CONFIG_LIVE_BLOCK_MIGRATION', if_true: files('block.c'))
+softmmu_ss.add(when: 'CONFIG_ZSTD', if_true: [files('multifd-zstd.c'), zstd])
+
+specific_ss.add(when: 'CONFIG_SOFTMMU', if_true: files('ram.c'))
tests/test-hbitmap$(EXESUF): tests/test-hbitmap.o $(test-util-obj-y) $(test-crypto-obj-y)
tests/test-bitmap$(EXESUF): tests/test-bitmap.o $(test-util-obj-y)
tests/test-x86-cpuid$(EXESUF): tests/test-x86-cpuid.o
-tests/test-xbzrle$(EXESUF): tests/test-xbzrle.o migration/xbzrle.o migration/page_cache.o $(test-util-obj-y)
+tests/test-xbzrle$(EXESUF): tests/test-xbzrle.o migration/libmigration.fa $(test-util-obj-y) \
+ $(test-io-obj-y)
tests/test-cutils$(EXESUF): tests/test-cutils.o util/cutils.o $(test-util-obj-y)
tests/test-int128$(EXESUF): tests/test-int128.o
tests/rcutorture$(EXESUF): tests/rcutorture.o $(test-util-obj-y)
hw/core/vmstate-if.o \
hw/core/clock.o hw/core/qdev-clock.o \
$(test-qapi-obj-y)
-tests/test-vmstate$(EXESUF): tests/test-vmstate.o \
- migration/vmstate.o migration/vmstate-types.o migration/qemu-file.o \
- migration/qemu-file-channel.o migration/qjson.o \
+tests/test-vmstate$(EXESUF): tests/test-vmstate.o migration/libmigration.fa \
$(test-io-obj-y)
tests/test-timed-average$(EXESUF): tests/test-timed-average.o $(test-util-obj-y)
tests/test-base64$(EXESUF): tests/test-base64.o $(test-util-obj-y)