blob: c6bbd1716b4f7f2ff42a19aea2cb53409acbf14a (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
|
SUMMARY = "DMTF's Reference Implementation of SPDM"
DESCRIPTION = "libspdm is a reference implementation of the DMTF’s Security Protocols and \
Data Models (SPDM). This is used to enable authentication, attestation and key exchange to \
assist in providing infrastructure security enablement"
HOMEPAGE = "https://github.com/DMTF/libspdm"
BUGTRACKER = "https://github.com/DMTF/libspdm/issues"
LICENSE = "BSD-3-Clause"
LIC_FILES_CHKSUM = "file://LICENSE.md;md5=8f9b59a81a88da8e812af43728b72dd7"
DEPENDS = "openssl"
SRC_URI = "git://github.com/DMTF/libspdm.git;branch=main;protocol=https \
file://0001-Backport-API-introduced-in-openssl-3.5.0.patch"
SRCREV = "1be116c7b7713fa9003e1bd53b53a34758549eb9"
inherit cmake
LIBSPDM_CFLAGS = "\
${OECMAKE_C_FLAGS} \
-DLIBSPDM_ENABLE_CAPABILITY_EVENT_CAP=0 \
-DLIBSPDM_ENABLE_CAPABILITY_MEL_CAP=0 \
-DLIBSPDM_ENABLE_CAPABILITY_GET_KEY_PAIR_INFO_CAP=0 \
-DLIBSPDM_ENABLE_CAPABILITY_SET_KEY_PAIR_INFO_CAP=0 \
-DLIBSPDM_HAL_PASS_SPDM_CONTEXT=1 \
-DLIBSPDM_ENABLE_CAPABILITY_ENDPOINT_INFO_CAP=0 \
"
LIBSPDM_CFLAGS:append:toolchain-gcc = " -fPIE"
def get_spdm_multiarch(bb, d):
target_arch = d.getVar('TARGET_ARCH')
multiarch_options = {
"x86_64": "x64",
"i586": "ia32",
"i686": "ia32",
"arm": "arm",
"aarch64": "aarch64",
"riscv32": "riscv32",
"riscv64": "riscv64",
"ppc64le": "ppc64le",
}
if target_arch in multiarch_options :
return multiarch_options[target_arch]
bb.error("unsupported architecture '%s'" % target_arch)
EXTRA_OECMAKE += "\
-DARCH=${@get_spdm_multiarch(bb, d)} \
-DTOOLCHAIN=NONE \
-DTARGET=Release \
-DCRYPTO=openssl \
-DENABLE_BINARY_BUILD=1 \
-DCOMPILED_LIBCRYPTO_PATH=${libdir} \
-DCOMPILED_LIBSSL_PATH=${libdir} \
-DDISABLE_TESTS=1 \
-DDISABLE_EDDSA=1 \
-DCMAKE_C_FLAGS='${LIBSPDM_CFLAGS}' \
"
do_install () {
install -d ${D}/${libdir}
install -m 0644 lib/* ${D}/${libdir}/
install -d ${D}/${includedir}/${BPN}/
cp -rf ${S}/include/* ${D}/${includedir}/${BPN}/
install -d ${D}/${includedir}/${BPN}/os_stub/spdm_crypt_ext_lib
cp -rf ${S}/os_stub/spdm_crypt_ext_lib/*.h ${D}/${includedir}/${BPN}/os_stub/spdm_crypt_ext_lib/
}
FILES:${PN} += "${libdir}/*.a"
FILES:${PN} += "${includedir}/${BPN}/*.h"
FILES:${PN} += "${includedir}/${BPN}/os_stub/spdm_crypt_ext_lib/*.h"
COMPATIBLE_HOST:powerpc = "null"
COMPATIBLE_HOST:powerpc64 = "null"
COMPATIBLE_HOST:mipsarchn32 = "null"
COMPATIBLE_HOST:mipsarcho32 = "null"
COMPATIBLE_HOST:mipsarchn64 = "null"
BBCLASSEXTEND = "native nativesdk"
|