summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Makefile1
-rw-r--r--Makefile.objs4
-rw-r--r--Makefile.target2
-rw-r--r--chardev/Makefile.objs19
-rw-r--r--chardev/meson.build32
-rw-r--r--meson.build1
6 files changed, 36 insertions, 23 deletions
diff --git a/Makefile b/Makefile
index 0ec50ee9b7..597d3c128b 100644
--- a/Makefile
+++ b/Makefile
@@ -182,7 +182,6 @@ include $(SRC_PATH)/Makefile.objs
endif
dummy := $(call unnest-vars,, \
- chardev-obj-y \
block-obj-y \
block-obj-m \
storage-daemon-obj-y \
diff --git a/Makefile.objs b/Makefile.objs
index 0920cdb40c..297bd5beeb 100644
--- a/Makefile.objs
+++ b/Makefile.objs
@@ -7,8 +7,6 @@ qom-obj-y = qom/libqom.fa
ifeq ($(call lor,$(CONFIG_SOFTMMU),$(CONFIG_TOOLS)),y)
-chardev-obj-y = chardev/
-
authz-obj-y = authz/libauthz.fa
authz/libauthz.fa-libs = $(if $(CONFIG_AUTH_PAM),-lpam)
@@ -19,6 +17,8 @@ block-obj-$(CONFIG_REPLICATION) += replication.o
block-obj-m = block/
+chardev-obj-y = chardev/libchardev.fa
+
crypto-obj-y = crypto/libcrypto.fa
io-obj-y = io/libio.fa
diff --git a/Makefile.target b/Makefile.target
index d1d8906b4d..6b9de09df5 100644
--- a/Makefile.target
+++ b/Makefile.target
@@ -199,13 +199,13 @@ common-obj-m :=
include $(SRC_PATH)/Makefile.objs
dummy := $(call fix-paths,../,, \
authz-obj-y \
+ chardev-obj-y \
crypto-obj-y \
io-obj-y \
qom-obj-y)
dummy := $(call unnest-vars,.., \
block-obj-y \
block-obj-m \
- chardev-obj-y \
common-obj-y \
common-obj-m)
all-obj-y += $(common-obj-y)
diff --git a/chardev/Makefile.objs b/chardev/Makefile.objs
index 3783dadc4c..6662d0df41 100644
--- a/chardev/Makefile.objs
+++ b/chardev/Makefile.objs
@@ -1,23 +1,4 @@
-chardev-obj-y += char.o
chardev-obj-$(CONFIG_SOFTMMU) += chardev-sysemu.o
-chardev-obj-$(CONFIG_WIN32) += char-console.o
-chardev-obj-$(CONFIG_POSIX) += char-fd.o
-chardev-obj-y += char-fe.o
-chardev-obj-y += char-file.o
-chardev-obj-y += char-io.o
-chardev-obj-y += char-mux.o
-chardev-obj-y += char-null.o
-chardev-obj-$(CONFIG_POSIX) += char-parallel.o
-chardev-obj-y += char-pipe.o
-chardev-obj-$(CONFIG_POSIX) += char-pty.o
-chardev-obj-y += char-ringbuf.o
-chardev-obj-y += char-serial.o
-chardev-obj-y += char-socket.o
-chardev-obj-y += char-stdio.o
-chardev-obj-y += char-udp.o
-chardev-obj-$(CONFIG_WIN32) += char-win.o
-chardev-obj-$(CONFIG_WIN32) += char-win-stdio.o
-
common-obj-$(CONFIG_SOFTMMU) += msmouse.o wctablet.o testdev.o
ifeq ($(CONFIG_BRLAPI),y)
diff --git a/chardev/meson.build b/chardev/meson.build
new file mode 100644
index 0000000000..9d99025a14
--- /dev/null
+++ b/chardev/meson.build
@@ -0,0 +1,32 @@
+chardev_ss = ss.source_set()
+chardev_ss.add(files(
+ 'char-fe.c',
+ 'char-file.c',
+ 'char-io.c',
+ 'char-mux.c',
+ 'char-null.c',
+ 'char-pipe.c',
+ 'char-ringbuf.c',
+ 'char-serial.c',
+ 'char-socket.c',
+ 'char-stdio.c',
+ 'char-udp.c',
+ 'char.c',
+))
+chardev_ss.add(when: 'CONFIG_POSIX', if_true: files(
+ 'char-fd.c',
+ 'char-parallel.c',
+ 'char-pty.c',
+))
+chardev_ss.add(when: 'CONFIG_WIN32', if_true: files(
+ 'char-console.c',
+ 'char-win-stdio.c',
+ 'char-win.c',
+))
+
+chardev_ss = chardev_ss.apply(config_host, strict: false)
+libchardev = static_library('chardev', chardev_ss.sources() + genh,
+ name_suffix: 'fa',
+ build_by_default: false)
+
+chardev = declare_dependency(link_whole: libchardev)
diff --git a/meson.build b/meson.build
index 13b83ea14b..b78829c116 100644
--- a/meson.build
+++ b/meson.build
@@ -454,6 +454,7 @@ qemuutil = declare_dependency(link_with: libqemuutil,
sources: genh + version_res)
subdir('io')
+subdir('chardev')
subdir('fsdev')
subdir('target')