-
-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathmakefile
162 lines (138 loc) · 4.16 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
# Define directories for the packages
RING_SIG_UTILS_DIR = packages/ring-sig-utils
SAG_TS_DIR = packages/sag-ts
LSAG_TS_DIR = packages/lsag-ts
DOCUMENTATION_DIR = packages/documentation
SAG_EVM_VERIFIER_DIR = packages/sag-evm-verifier
RUST_VERIFIER_DIR = packages/rust-verifier
STARKNET_SAG_TS_DIR = packages/starknet-sag-ts
# Default target: install dependencies and build everything
.PHONY: all
all: install build
# ------------------ Dependency Installation ------------------
.PHONY: install
install:
@echo "Installing dependencies..."
@set -e; \
yarn install --workspaces
# ------------------ Build Targets ------------------
.PHONY: build
build: build-ring-sig-utils build-ts build-solidity build-rust build-final-log
.PHONY: build-ring-sig-utils
build-ring-sig-utils:
@echo "Building ring-sig-utils package first..."
@set -e; \
cd $(RING_SIG_UTILS_DIR) && yarn build
.PHONY: build-ts
build-ts: build-ring-sig-utils
@echo "Building TypeScript packages..."
@set -e; \
cd $(SAG_TS_DIR) && yarn build & \
cd $(LSAG_TS_DIR) && yarn build & \
cd $(STARKNET_SAG_TS_DIR) && yarn build & \
cd $(DOCUMENTATION_DIR) && yarn build & \
wait
.PHONY: build-solidity
build-solidity:
@echo "Building Solidity (Hardhat) package..."
@set -e; \
cd $(SAG_EVM_VERIFIER_DIR) && npx hardhat compile
.PHONY: build-rust
build-rust:
@echo "Building Rust package..."
@set -e; \
cd $(RUST_VERIFIER_DIR) && cargo build
.PHONY: build-final-log
build-final-log:
@echo "All packages built successfully"
# ------------------ Test Targets ------------------
.PHONY: test
test: test-ts test-solidity test-rust
.PHONY: test-ts
test-ts: build-ring-sig-utils
@echo "Running tests for TypeScript packages..."
@set -e; \
cd $(RING_SIG_UTILS_DIR) && yarn test & \
cd $(SAG_TS_DIR) && yarn test & \
cd $(LSAG_TS_DIR) && yarn test & \
cd $(STARKNET_SAG_TS_DIR) && yarn test & \
cd $(DOCUMENTATION_DIR) && yarn test & \
wait
.PHONY: test-solidity
test-solidity:
@echo "Running tests for Solidity package..."
@set -e; \
cd $(SAG_EVM_VERIFIER_DIR) && npx hardhat test
.PHONY: test-rust
test-rust:
@echo "Running tests for Rust package..."
@set -e; \
cd $(RUST_VERIFIER_DIR) && cargo test
# ------------------ Format Targets ------------------
.PHONY: fmt
fmt: fmt-ts fmt-solidity fmt-rust
.PHONY: fmt-ts
fmt-ts: build-ring-sig-utils
@echo "Formatting TypeScript packages..."
@set -e; \
cd $(RING_SIG_UTILS_DIR) && yarn fmt & \
cd $(SAG_TS_DIR) && yarn fmt & \
cd $(LSAG_TS_DIR) && yarn fmt & \
cd $(STARKNET_SAG_TS_DIR) && yarn fmt & \
cd $(DOCUMENTATION_DIR) && yarn fmt & \
wait
.PHONY: fmt-solidity
fmt-solidity:
@echo "Formatting Solidity package..."
@set -e; \
cd $(SAG_EVM_VERIFIER_DIR) && yarn fmt
.PHONY: fmt-rust
fmt-rust:
@echo "Formatting Rust package..."
@set -e; \
cd $(RUST_VERIFIER_DIR) && cargo fmt
@echo "Done formatting Rust package."
.PHONY: fmt-check
fmt-check: fmt-check-ts fmt-check-solidity fmt-check-rust
.PHONY: fmt-check-ts
fmt-check-ts: build-ring-sig-utils
@echo "Checking format for TypeScript packages..."
@set -e; \
cd $(RING_SIG_UTILS_DIR) && yarn fmt:check & \
cd $(SAG_TS_DIR) && yarn fmt:check & \
cd $(LSAG_TS_DIR) && yarn fmt:check & \
cd $(STARKNET_SAG_TS_DIR) && yarn fmt:check & \
wait
.PHONY: fmt-check-solidity
fmt-check-solidity:
@echo "Checking format for Solidity package..."
@set -e; \
cd $(SAG_EVM_VERIFIER_DIR) && yarn fmt:check
.PHONY: fmt-check-rust
fmt-check-rust:
@echo "Checking format for Rust package..."
@set -e; \
cd $(RUST_VERIFIER_DIR) && cargo fmt -- --check
# ------------------ Clean Targets ------------------
.PHONY: clean
clean: clean-ts clean-solidity clean-rust
.PHONY: clean-ts
clean-ts:
@echo "Cleaning TypeScript packages..."
@set -e; \
cd $(RING_SIG_UTILS_DIR) && npm run clean & \
cd $(SAG_TS_DIR) && npm run clean & \
cd $(LSAG_TS_DIR) && npm run clean & \
cd $(STARKNET_SAG_TS_DIR) && npm run clean & \
cd $(DOCUMENTATION_DIR) && npm run clean & \
wait
.PHONY: clean-solidity
clean-solidity:
@echo "Cleaning Solidity package..."
@set -e; \
cd $(SAG_EVM_VERIFIER_DIR) && npx hardhat clean && npm run clean
.PHONY: clean-rust
clean-rust:
@echo "Cleaning Rust package..."
@set -e; \
cd $(RUST_VERIFIER_DIR) && cargo clean