forked from trezor/trezor-firmware
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Makefile
165 lines (125 loc) · 5.15 KB
/
Makefile
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
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
## help commands:
help: ## show this help
@awk -f ./tools/help.awk $(MAKEFILE_LIST)
## style commands:
PY_FILES = $(shell find . -type f -name '*.py' | sed 'sO^\./OO' | grep -f ./tools/style.py.include | grep -v -f ./tools/style.py.exclude )
C_FILES = $(shell find . -type f -name '*.[ch]' | grep -f ./tools/style.c.include | grep -v -f ./tools/style.c.exclude )
style_check: pystyle_check ruststyle_check cstyle_check changelog_check yaml_check docs_summary_check editor_check ## run all style checks
style: pystyle ruststyle cstyle ## apply all code styles (C+Rust+Py)
pystyle_check: ## run code style check on application sources and tests
flake8 --version
isort --version | awk '/VERSION/{print $$2}'
black --version
pylint --version
pyright --version
@echo [TYPECHECK]
@make -C core typecheck
@echo [FLAKE8]
@flake8 $(PY_FILES)
@echo [ISORT]
@isort --check-only $(PY_FILES)
@echo [BLACK]
@black --check $(PY_FILES)
@echo [PYLINT]
@pylint $(PY_FILES)
@echo [PYTHON]
make -C python style_check
pystyle_quick_check: ## run the basic style checks, suitable for a quick git hook
@isort --check-only $(PY_FILES)
@black --check $(PY_FILES)
make -C python style_quick_check
pystyle: ## apply code style on application sources and tests
@echo [ISORT]
@isort $(PY_FILES)
@echo [BLACK]
@black $(PY_FILES)
@echo [TYPECHECK]
@make -C core typecheck
@echo [FLAKE8]
@flake8 $(PY_FILES)
@echo [PYLINT]
@pylint $(PY_FILES)
@echo [PYTHON]
make -C python style
changelog_check: ## check changelog format
./tools/generate-changelog.py --check core
./tools/generate-changelog.py --check core/embed/projects/boardloader
./tools/generate-changelog.py --check core/embed/projects/bootloader
./tools/generate-changelog.py --check core/embed/projects/bootloader_ci
./tools/generate-changelog.py --check legacy/bootloader
./tools/generate-changelog.py --check legacy/firmware
./tools/generate-changelog.py --check legacy/intermediate_fw
./tools/generate-changelog.py --check python
yaml_check: ## check yaml formatting
yamllint .
editor_check: ## check editorconfig formatting
editorconfig-checker -exclude '.*\.(so|dat|toif|der)|^crypto/aes/'
cstyle_check: ## run code style check on low-level C code
clang-format --version
@echo [CLANG-FORMAT]
@./tools/clang-format-check $(C_FILES)
cstyle: ## apply code style on low-level C code
@echo [CLANG-FORMAT]
@clang-format -i $(C_FILES)
defs_check: ## check validity of coin definitions and protobuf files
jsonlint common/defs/*.json common/defs/*/*.json
python3 common/tools/cointool.py check
python3 common/tools/support.py check
python3 common/protob/check.py
python3 common/protob/graph.py common/protob/*.proto
ruststyle:
@echo [RUSTFMT]
@cd core/embed/rust ; cargo fmt
@cd rust/trezor-client ; cargo fmt
ruststyle_check:
rustfmt --version
@echo [RUSTFMT]
@cd core/embed/rust ; cargo fmt -- --check
@cd rust/trezor-client ; cargo fmt -- --check
python_support_check:
./tests/test_python_support.py
## code generation commands:
mocks: ## generate mock python headers from C modules
./core/tools/build_mocks
mocks_check: ## check validity of mock python headers
./core/tools/build_mocks --check
flake8 core/mocks/generated
templates: icons ## rebuild coin lists from definitions in common
make -C core templates
templates_check: ## check that coin lists are up to date
make -C core templates_check
solana_templates: ## rebuild Solana instruction template file
python tools/build_solana_templates.py
solana_templates_check: ## check that Solana instruction template file is up to date
python tools/build_solana_templates.py --check
icons: ## generate FIDO service icons
python3 core/tools/build_icons.py
icons_check: ## generate FIDO service icons
python3 core/tools/build_icons.py --check
protobuf: ## generate python and rust protobuf headers
./tools/build_protobuf
./rust/trezor-client/scripts/build_protos
protobuf_check: ## check that generated protobuf headers are up to date
./tools/build_protobuf --check
./rust/trezor-client/scripts/build_protos --check
ci_docs: ## generate CI documentation
./tools/generate_ci_docs.py
ci_docs_check: ## check that generated CI documentation is up to date
./tools/generate_ci_docs.py --check
docs_summary_check: ## check if there are unlinked documentation files
@echo [DOCS-SUMMARY-MARKDOWN-CHECK]
python3 tools/check_docs_summary.py
vendorheader: ## generate vendor header
./core/tools/generate_vendorheader.sh --quiet
vendorheader_check: ## check that vendor header is up to date
./core/tools/generate_vendorheader.sh --quiet --check
bootloader_hashes: ## generate bootloader hashes
./core/tools/bootloader_hashes.py
bootloader_hashes_check: ## check generated bootloader hashes
./core/tools/bootloader_hashes.py --check
lsgen: ## generate linker scripts hashes
lsgen
lsgen_check: ## check generated linker scripts
lsgen --check
gen: templates mocks icons protobuf ci_docs vendorheader solana_templates bootloader_hashes lsgen ## regenerate auto-generated files from sources
gen_check: templates_check mocks_check icons_check protobuf_check ci_docs_check vendorheader_check solana_templates_check bootloader_hashes_check lsgen_check ## check validity of auto-generated files