-
Notifications
You must be signed in to change notification settings - Fork 43
Expand file tree
/
Copy pathetherlink.mk
More file actions
145 lines (120 loc) · 4.46 KB
/
Copy pathetherlink.mk
File metadata and controls
145 lines (120 loc) · 4.46 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
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
# SPDX-FileCopyrightText: 2024 Nomadic Labs <contact@nomadic-labs.com>
# SPDX-FileCopyrightText: 2024-2025 Functori <contact@functori.com>
# SPDX-FileCopyrightText: 2026 Trilitech <contact@trili.tech>
#
# SPDX-License-Identifier: MIT
KERNELS=evm_kernel.wasm
KERNEL_DIR=etherlink/kernel_latest
EVM_KERNEL_PREIMAGES=_evm_installer_preimages
EVM_UNSTRIPPED_KERNEL_PREIMAGES=_evm_unstripped_installer_preimages
LIB_WASM_RUNTIME_DIR=etherlink/lib_wasm_runtime
NATIVE_TARGET ?=
ifneq ($(NATIVE_TARGET),)
NATIVE_OPT := --target "$(NATIVE_TARGET)"
endif
.PHONY: all
all: build-dev-deps check test build
.PHONY: evm-evaluation-assessor
evm-evaluation-assessor:
@$(MAKE) -C ${KERNEL_DIR} build-evm-evaluation
@cp ${KERNEL_DIR}/target/release/evm-evaluation $@
.PHONY: revm-evaluation-assessor
revm-evaluation-assessor:
@$(MAKE) -C ${KERNEL_DIR} build-revm-evaluation
@cp ${KERNEL_DIR}/target/release/revm-evaluation $@
evm_kernel_debug.wasm::
@$(MAKE) -C ${KERNEL_DIR} build-debug
@cp ${KERNEL_DIR}/target/wasm32-unknown-unknown/release-with-debug/evm_kernel.wasm $@
evm_kernel_unstripped.wasm::
@$(MAKE) -C ${KERNEL_DIR} build
@cp ${KERNEL_DIR}/target/wasm32-unknown-unknown/release/evm_kernel.wasm $@
evm_kernel.wasm:: kernel_sdk evm_kernel_unstripped.wasm
@cp evm_kernel_unstripped.wasm $@
@wasm-strip $@
@./smart-rollup-instrument $@
@mv evm_kernel.instr.wasm $@
# Like evm_kernel.wasm but without stripping: keeps the name section for
# debugging while carrying the same call-depth guard, so the unstripped
# installer behaves like production rather than going Stuck on a stack overflow.
# Instrumentation adds no functions, so the function names stay valid. Kept
# separate from evm_kernel_unstripped.wasm, which evm_kernel.wasm derives from --
# instrumenting that in place would double-instrument the production kernel.
evm_kernel_unstripped_instr.wasm:: kernel_sdk evm_kernel_unstripped.wasm
@cp evm_kernel_unstripped.wasm $@
@./smart-rollup-instrument $@
@mv evm_kernel_unstripped_instr.instr.wasm $@
.PHONY: kernel_sdk
kernel_sdk:
@$(MAKE) -f kernels.mk kernel_sdk
evm_installer.wasm:: kernel_sdk evm_kernel.wasm
ifdef EVM_CONFIG
$(eval CONFIG := --setup-file ${EVM_CONFIG})
endif
ifeq (${DISPLAY_ROOT_HASH}, true)
$(eval DISPLAY_CONFIG := --display-root-hash)
endif
@./smart-rollup-installer get-reveal-installer \
--upgrade-to evm_kernel.wasm \
--preimages-dir ${EVM_KERNEL_PREIMAGES} \
--output $@ \
${CONFIG} \
${DISPLAY_CONFIG}
evm_unstripped_installer.wasm:: kernel_sdk evm_kernel_unstripped_instr.wasm
ifdef EVM_CONFIG
$(eval CONFIG := --setup-file ${EVM_CONFIG})
endif
ifeq (${DISPLAY_ROOT_HASH}, true)
$(eval DISPLAY_CONFIG := --display-root-hash)
endif
@./smart-rollup-installer get-reveal-installer \
--upgrade-to evm_kernel_unstripped_instr.wasm \
--preimages-dir ${EVM_UNSTRIPPED_KERNEL_PREIMAGES} \
--output $@ \
${CONFIG} \
${DISPLAY_CONFIG}
evm_benchmark_kernel.wasm::
ifdef BENCHMARK_FEATURES
$(eval EVM_KERNEL_FEATURES := ${BENCHMARK_FEATURES})
else
$(eval EVM_KERNEL_FEATURES := benchmark-full)
endif
@${MAKE} -f etherlink.mk \
EVM_KERNEL_FEATURES=${EVM_KERNEL_FEATURES} \
evm_kernel_unstripped.wasm
cp evm_kernel_unstripped.wasm $@
evm_installer_dev.wasm::
@${MAKE} -f etherlink.mk EVM_CONFIG=etherlink/config/dev.yaml evm_installer.wasm
.PHONY: build
build: ${KERNELS} evm-evaluation-assessor kernel_sdk revm-evaluation-assessor
.PHONY: clang-supports-wasm
clang-supports-wasm:
./scripts/kernels_check_clang.sh
.PHONY: build-dev-deps
build-dev-deps: clang-supports-wasm build-deps
@$(MAKE) -C ${KERNEL_DIR} build-dev-deps
.PHONY: build-deps
build-deps:
@$(MAKE) -C ${KERNEL_DIR} build-deps
.PHONY: test
test:
@$(MAKE) -C ${KERNEL_DIR} test
.PHONY: check
check: build-dev-deps
@$(MAKE) -C ${KERNEL_DIR} check
# Check format of all crates
@exec scripts/check-format-rust.sh
.PHONY: clean
clean:
@$(MAKE) -f kernels.mk clean
@rm -f evm_kernel_unstripped.wasm evm_kernel_unstripped_instr.wasm evm_kernel_unstripped_instr.instr.wasm evm_kernel.wasm evm_installer.wasm evm_unstripped_installer.wasm evm_installer.wasm evm_installer_dev.wasm evm_benchmark_kernel.wasm sequencer.wasm
@$(MAKE) -C ${KERNEL_DIR} clean
@rm -rf ${EVM_KERNEL_PREIMAGES} ${EVM_UNSTRIPPED_KERNEL_PREIMAGES}
sequencer.wasm::
@${MAKE} -f etherlink.mk EVM_CONFIG=etherlink/config/sequencer.yaml evm_installer.wasm
@cp evm_installer.wasm sequencer.wasm
.PHONY: revm
revm:
@$(MAKE) -C ${KERNEL_DIR} build-revm
.PHONY: update-riscv-pvm
update-riscv-pvm:
@$(MAKE) -C ${LIB_WASM_RUNTIME_DIR} update-riscv-pvm