Makefile
 1  .POSIX:
 2  
 3  # Cargo binary
 4  CARGO = cargo
 5  
 6  # wasm build target
 7  WASM_TARGET = wasm32-unknown-unknown
 8  
 9  # Cargo package name
10  PKGNAME = $(shell grep '^name = ' Cargo.toml | cut -d' ' -f3 | tr -d '"')
11  # wasm contract binary
12  WASM_BIN = $(PKGNAME:=.wasm)
13  
14  # zkas compiler binary
15  ZKAS = "../../zkas"
16  
17  # zkas circuits
18  PROOFS_SRC = $(shell find proof -type f -name '*.zk')
19  PROOFS_BIN = $(PROOFS_SRC:=.bin)
20  
21  # wasm source files
22  WASM_SRC = \
23  	Cargo.toml \
24  	$(shell find src -type f -name '*.rs')
25  
26  all: $(WASM_BIN)
27  
28  $(PROOFS_BIN): $(PROOFS_SRC)
29  	$(ZKAS) $(basename $@) -o $@
30  
31  $(WASM_BIN): $(WASM_SRC) $(PROOFS_BIN)
32  	RUSTFLAGS="$(RUSTFLAGS)" $(CARGO) build --target=$(WASM_TARGET) \
33  		--release --package $(PKGNAME)
34  	cp -f target/$(WASM_TARGET)/release/$@ $@
35  	wasm-strip $@
36  
37  clippy: all
38  	RUSTFLAGS="$(RUSTFLAGS)" $(CARGO) clippy --target=$(WASM_TARGET) \
39  		--release --package $(PKGNAME)
40  
41  clean:
42  	RUSTFLAGS="$(RUSTFLAGS)" $(CARGO) clean --target=$(WASM_TARGET) \
43  		--release --package $(PKGNAME)
44  	rm -f $(PROOFS_BIN) $(WASM_BIN)
45  
46  .PHONY: all clippy clean