[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH 036/132] meson: convert crypto directory to Meson
From: |
Paolo Bonzini |
Subject: |
[PATCH 036/132] meson: convert crypto directory to Meson |
Date: |
Thu, 12 Dec 2019 13:51:20 +0100 |
From: Marc-André Lureau <address@hidden>
Signed-off-by: Marc-André Lureau <address@hidden>
Signed-off-by: Paolo Bonzini <address@hidden>
---
Makefile | 1 -
Makefile.objs | 7 ++-----
Makefile.target | 2 +-
crypto/Makefile.objs | 34 ----------------------------------
crypto/meson.build | 49 +++++++++++++++++++++++++++++++++++++++++++++++++
meson.build | 4 ++--
qom/meson.build | 2 +-
7 files changed, 55 insertions(+), 44 deletions(-)
delete mode 100644 crypto/Makefile.objs
diff --git a/Makefile b/Makefile
index 4da605e..d070335 100644
--- a/Makefile
+++ b/Makefile
@@ -200,7 +200,6 @@ dummy := $(call unnest-vars,, \
chardev-obj-y \
block-obj-y \
block-obj-m \
- crypto-obj-y \
io-obj-y \
common-obj-y \
common-obj-m)
diff --git a/Makefile.objs b/Makefile.objs
index 9201eca..a5dd228 100644
--- a/Makefile.objs
+++ b/Makefile.objs
@@ -14,16 +14,13 @@ block-obj-$(CONFIG_REPLICATION) += replication.o
block-obj-m = block/
#######################################################################
-# crypto-obj-y is code used by both qemu system emulation and qemu-img
-
-crypto-obj-y = crypto/
-
-#######################################################################
# libraries built entirely from meson
authz-obj-y = authz/libauthz.fa
authz/libauthz.fa-libs = $(if $(CONFIG_AUTH_PAM),-lpam)
+crypto-obj-y = crypto/libcrypto.fa
+
qom-obj-y = qom/libqom.fa
#######################################################################
diff --git a/Makefile.target b/Makefile.target
index d243e52..d8a6491 100644
--- a/Makefile.target
+++ b/Makefile.target
@@ -178,12 +178,12 @@ all-obj-y := $(obj-y)
include $(SRC_PATH)/Makefile.objs
dummy := $(call fix-paths,../,, \
authz-obj-y \
+ crypto-obj-y \
qom-obj-y)
dummy := $(call unnest-vars,.., \
block-obj-y \
block-obj-m \
chardev-obj-y \
- crypto-obj-y \
io-obj-y \
common-obj-y \
common-obj-m)
diff --git a/crypto/Makefile.objs b/crypto/Makefile.objs
deleted file mode 100644
index 3587f41..0000000
--- a/crypto/Makefile.objs
+++ /dev/null
@@ -1,34 +0,0 @@
-crypto-obj-y = init.o
-crypto-obj-y += hash.o
-crypto-obj-$(CONFIG_NETTLE) += hash-nettle.o
-crypto-obj-$(if $(CONFIG_NETTLE),n,$(CONFIG_GCRYPT)) += hash-gcrypt.o
-crypto-obj-$(if $(CONFIG_NETTLE),n,$(if $(CONFIG_GCRYPT),n,y)) += hash-glib.o
-crypto-obj-y += hmac.o
-crypto-obj-$(CONFIG_NETTLE) += hmac-nettle.o
-crypto-obj-$(CONFIG_GCRYPT_HMAC) += hmac-gcrypt.o
-crypto-obj-$(if $(CONFIG_NETTLE),n,$(if $(CONFIG_GCRYPT_HMAC),n,y)) +=
hmac-glib.o
-crypto-obj-y += aes.o
-crypto-obj-y += desrfb.o
-crypto-obj-y += cipher.o
-crypto-obj-$(CONFIG_AF_ALG) += afalg.o
-crypto-obj-$(CONFIG_AF_ALG) += cipher-afalg.o
-crypto-obj-$(CONFIG_AF_ALG) += hash-afalg.o
-crypto-obj-y += tlscreds.o
-crypto-obj-y += tlscredsanon.o
-crypto-obj-y += tlscredspsk.o
-crypto-obj-y += tlscredsx509.o
-crypto-obj-y += tlssession.o
-crypto-obj-y += secret.o
-crypto-obj-y += pbkdf.o
-crypto-obj-$(CONFIG_NETTLE) += pbkdf-nettle.o
-crypto-obj-$(if $(CONFIG_NETTLE),n,$(CONFIG_GCRYPT)) += pbkdf-gcrypt.o
-crypto-obj-$(if $(CONFIG_NETTLE),n,$(if $(CONFIG_GCRYPT),n,y)) += pbkdf-stub.o
-crypto-obj-y += ivgen.o
-crypto-obj-y += ivgen-essiv.o
-crypto-obj-y += ivgen-plain.o
-crypto-obj-y += ivgen-plain64.o
-crypto-obj-y += afsplit.o
-crypto-obj-y += xts.o
-crypto-obj-y += block.o
-crypto-obj-y += block-qcow.o
-crypto-obj-y += block-luks.o
diff --git a/crypto/meson.build b/crypto/meson.build
index 7250ffc..1310195 100644
--- a/crypto/meson.build
+++ b/crypto/meson.build
@@ -1,3 +1,52 @@
+crypto_ss = ss.source_set()
+crypto_ss.add(genh)
+crypto_ss.add(files(
+ 'afsplit.c',
+ 'block-luks.c',
+ 'block-qcow.c',
+ 'block.c',
+ 'cipher.c',
+ 'desrfb.c',
+ 'hash.c',
+ 'hmac.c',
+ 'ivgen-essiv.c',
+ 'ivgen-plain.c',
+ 'ivgen-plain64.c',
+ 'ivgen.c',
+ 'pbkdf.c',
+ 'secret.c',
+ 'tlscreds.c',
+ 'tlscredsanon.c',
+ 'tlscredspsk.c',
+ 'tlscredsx509.c',
+ 'tlssession.c',
+ 'xts.c',
+))
+crypto_ss.add(authz)
+
+if 'CONFIG_GCRYPT' in config_host
+ wo_nettle = files('hash-gcrypt.c', 'pbkdf-gcrypt.c')
+else
+ wo_nettle = files('hash-glib.c', 'pbkdf-stub.c')
+endif
+if 'CONFIG_GCRYPT_HMAC' not in config_host
+ wo_nettle += files('hmac-glib.c')
+endif
+crypto_ss.add(when: [nettle, 'CONFIG_NETTLE'],
+ if_true: files('hash-nettle.c', 'hmac-nettle.c',
'pbkdf-nettle.c'),
+ if_false: wo_nettle)
+
+crypto_ss.add(when: 'CONFIG_GCRYPT_HMAC', if_true: files('hmac-gcrypt.c'))
+crypto_ss.add(when: 'CONFIG_AF_ALG', if_true: files('afalg.c',
'cipher-afalg.c', 'hash-afalg.c'))
+
+crypto_ss = crypto_ss.apply(config_host, strict: false)
+libcrypto = static_library('crypto', crypto_ss.sources(),
+ dependencies: [crypto_ss.dependencies()],
+ name_suffix: 'fa',
+ build_by_default: false)
+
+crypto = declare_dependency(link_whole: libcrypto)
+
util_ss.add(files('aes.c'))
util_ss.add(files('init.c'))
if 'CONFIG_GCRYPT' in config_host
diff --git a/meson.build b/meson.build
index 9ae2699..e8bd526 100644
--- a/meson.build
+++ b/meson.build
@@ -260,6 +260,8 @@ subdir('qobject')
subdir('stubs')
subdir('trace')
subdir('util')
+subdir('qom')
+subdir('authz')
subdir('crypto')
subdir('ui')
@@ -275,8 +277,6 @@ libqemuutil = static_library('qemuutil',
qemuutil = declare_dependency(link_with: libqemuutil,
sources: version_res)
-subdir('qom')
-subdir('authz')
subdir('fsdev')
# Other build targets
diff --git a/qom/meson.build b/qom/meson.build
index 3c41ed3..4af044d 100644
--- a/qom/meson.build
+++ b/qom/meson.build
@@ -1,4 +1,5 @@
qom_ss = ss.source_set()
+qom_ss.add(genh)
qom_ss.add(files(
'container.c',
'object.c',
@@ -9,7 +10,6 @@ qom_ss.add(files(
qom_ss = qom_ss.apply(config_host, strict: false)
libqom = static_library('qom', qom_ss.sources(),
dependencies: [qom_ss.dependencies()],
- link_with: [libqemuutil],
name_suffix: 'fa')
qom = declare_dependency(link_whole: libqom)
--
1.8.3.1
- [PATCH 027/132] meson: keymap-gen, (continued)
- [PATCH 027/132] meson: keymap-gen, Paolo Bonzini, 2019/12/12
- [PATCH 029/132] meson: generate shader headers, Paolo Bonzini, 2019/12/12
- [PATCH 026/132] meson: add virtfs-proxy-helper, Paolo Bonzini, 2019/12/12
- [PATCH 028/132] meson: generate qemu-version.h, Paolo Bonzini, 2019/12/12
- [PATCH 030/132] meson: generate hxtool files, Paolo Bonzini, 2019/12/12
- [PATCH 031/132] meson: configure 50-qemu-gpu.json, Paolo Bonzini, 2019/12/12
- [PATCH 032/132] meson: uncompress edk2 bios, Paolo Bonzini, 2019/12/12
- [PATCH 033/132] build-sys hack: link with whole .fa archives, Paolo Bonzini, 2019/12/12
- [PATCH 035/132] meson: convert authz directory to Meson, Paolo Bonzini, 2019/12/12
- [PATCH 034/132] meson: convert qom directory to Meson, Paolo Bonzini, 2019/12/12
- [PATCH 036/132] meson: convert crypto directory to Meson,
Paolo Bonzini <=
- [PATCH 037/132] meson: convert io directory to Meson, Paolo Bonzini, 2019/12/12
- [PATCH 039/132] meson: add macos dependencies, Paolo Bonzini, 2019/12/12
- [PATCH 038/132] meson: infrastructure for building emulators, Paolo Bonzini, 2019/12/12
- [PATCH 041/132] meson: convert chardev directory to Meson (tools part), Paolo Bonzini, 2019/12/12
- [PATCH 043/132] meson: qemu-{img,io,nbd}, Paolo Bonzini, 2019/12/12
- [PATCH 042/132] meson: convert block, Paolo Bonzini, 2019/12/12
- [PATCH 044/132] meson: qemu-pr-helper, Paolo Bonzini, 2019/12/12
- [PATCH 040/132] meson: add modules infrastructure, Paolo Bonzini, 2019/12/12
- [PATCH 045/132] configure, Makefile; remove TOOLS and HELPERS-y variable, Paolo Bonzini, 2019/12/12
- [PATCH 046/132] meson: convert chardev directory to Meson (emulator part), Paolo Bonzini, 2019/12/12