-
Notifications
You must be signed in to change notification settings - Fork 150
Expand file tree
/
Copy pathMakefile
More file actions
118 lines (98 loc) · 2.78 KB
/
Makefile
File metadata and controls
118 lines (98 loc) · 2.78 KB
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
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
TEE_PLATFORM ?= fs
ARCH ?= $(shell uname -m)
SOURCE_ARCH := $(shell uname -m)
DESTDIR ?= /usr/local/bin
LIBC ?= musl
ATTESTER ?=
NO_RESOURCE_PROVIDER ?=
ifeq ($(NO_RESOURCE_PROVIDER), true)
RESOURCE_PROVIDER :=
else
RESOURCE_PROVIDER ?= kbs
endif
ifeq ($(ARCH), ppc64le)
ARCH=powerpc64le
endif
ifeq ($(TEE_PLATFORM), none)
ATTESTER = none
else ifeq ($(TEE_PLATFORM), fs)
ATTESTER = none
else ifeq ($(TEE_PLATFORM), tdx)
ATTESTER = tdx-attester
else ifeq ($(TEE_PLATFORM), az-cvm-vtpm)
ATTESTER = az-snp-vtpm-attester,az-tdx-vtpm-attester
else ifeq ($(TEE_PLATFORM), sev)
ATTESTER = none
ifeq ($(NO_RESOURCE_PROVIDER), true)
RESOURCE_PROVIDER :=
else
RESOURCE_PROVIDER = sev
endif
else ifeq ($(TEE_PLATFORM), snp)
ATTESTER = snp-attester
else ifeq ($(TEE_PLATFORM), se)
ATTESTER = se-attester
else ifeq ($(TEE_PLATFORM), all)
ATTESTER = all-attesters
ifeq ($(NO_RESOURCE_PROVIDER), true)
RESOURCE_PROVIDER :=
else
RESOURCE_PROVIDER = sev,kbs
endif
else ifeq ($(TEE_PLATFORM), amd)
ATTESTER = snp-attester
ifeq ($(NO_RESOURCE_PROVIDER), true)
RESOURCE_PROVIDER :=
else
RESOURCE_PROVIDER = sev,kbs
endif
else ifeq ($(TEE_PLATFORM), cca)
ATTESTER = cca-attester
endif
# TODO: Add support for CSV
ifeq ($(shell test -e /etc/debian_version && echo -n yes),yes)
DEBIANOS = true
else
DEBIANOS = false
endif
$(info DEBIANOS is: $(DEBIANOS))
ifeq ($(ARCH), $(filter $(ARCH), s390x powerpc64le))
$(info s390x/powerpc64le only supports gnu)
LIBC = gnu
endif
CDH := confidential-data-hub
AA := attestation-agent
ASR := api-server-rest
BUILD_DIR := target/$(ARCH)-unknown-linux-$(LIBC)/release
CDH_BINARY := $(BUILD_DIR)/$(CDH)
AA_BINARY := $(BUILD_DIR)/$(AA)
ASR_BINARY := $(BUILD_DIR)/$(ASR)
build: $(CDH_BINARY) $(ASR_BINARY) $(AA_BINARY)
@echo guest components built for $(TEE_PLATFORM) succeeded!
$(CDH_BINARY):
@echo build $(CDH) for $(TEE_PLATFORM)
cd $(CDH) && $(MAKE) RESOURCE_PROVIDER=$(RESOURCE_PROVIDER) ARCH=$(ARCH) LIBC=$(LIBC)
$(AA_BINARY):
@echo build $(AA) for $(TEE_PLATFORM)
cd $(AA) && $(MAKE) ttrpc=true ARCH=$(ARCH) LIBC=$(LIBC) ATTESTER=$(ATTESTER)
$(ASR_BINARY):
@echo build $(ASR) for $(TEE_PLATFORM)
cd $(ASR) && $(MAKE) ARCH=$(ARCH) LIBC=$(LIBC)
install: $(CDH_BINARY) $(ASR_BINARY) $(AA_BINARY)
install -D -m0755 $(CDH_BINARY) $(DESTDIR)/$(CDH)
install -D -m0755 $(AA_BINARY) $(DESTDIR)/$(AA)
install -D -m0755 $(ASR_BINARY) $(DESTDIR)/$(ASR)
build-protos:
@if [ "$(DEBIANOS)" = "true" ]; then \
if ! command -v protoc >/dev/null 2>&1; then \
echo "Installing protoc..."; \
sudo apt-get update && sudo apt-get install -y protobuf-compiler; \
else \
echo "protoc already installed"; \
fi; \
else \
echo "Not Debian OS, skip"; \
fi;
cargo build -p protos --features build
clean:
rm -rf target