Makefile 1022 B

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