Makefile 2.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  1. .POSIX:
  2. # Cargo binary
  3. CARGO = cargo +nightly
  4. # Compile target for system binaries
  5. RUST_TARGET = $(shell rustc -Vv | grep '^host: ' | cut -d' ' -f2)
  6. # Uncomment when doing musl static builds
  7. #RUSTFLAGS = -C target-feature=+crt-static -C link-self-contained=yes
  8. # wasm build target
  9. WASM_TARGET = wasm32-unknown-unknown
  10. # Cargo package name
  11. PKGNAME = $(shell grep '^name = ' Cargo.toml | cut -d' ' -f3 | tr -d '"')
  12. # wasm contract binary
  13. WASM_BIN = $(PKGNAME:=.wasm)
  14. # zkas compiler binary
  15. ZKAS = ../../../zkas
  16. # zkas circuits
  17. PROOFS_SRC = $(shell find proof -type f -name '*.zk')
  18. PROOFS_BIN = $(PROOFS_SRC:=.bin)
  19. # wasm source files
  20. WASM_SRC = \
  21. Cargo.toml \
  22. ../../../Cargo.toml \
  23. ../../../src/sdk/Cargo.toml \
  24. ../../../src/serial/Cargo.toml \
  25. $(shell find src -type f -name '*.rs') \
  26. $(shell find ../../sdk -type f -name '*.rs') \
  27. $(shell find ../../serial -type f -name '*.rs')
  28. all: $(WASM_BIN)
  29. $(PROOFS_BIN): $(ZKAS) $(PROOFS_SRC)
  30. $(ZKAS) $(basename $@) -o $@
  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. test-integration: all
  36. RUSTFLAGS="$(RUSTFLAGS)" $(CARGO) test --target=$(RUST_TARGET) \
  37. --release --package $(PKGNAME) \
  38. --features=no-entrypoint,client \
  39. --test integration
  40. test-mint-pay-swap: all
  41. RUSTFLAGS="$(RUSTFLAGS)" $(CARGO) test --target=$(RUST_TARGET) \
  42. --release --package $(PKGNAME) \
  43. --features=no-entrypoint,client \
  44. --test mint_pay_swap
  45. test-txs-verification: all
  46. RUSTFLAGS="$(RUSTFLAGS)" $(CARGO) test --target=$(RUST_TARGET) \
  47. --release --package $(PKGNAME) \
  48. --features=no-entrypoint,client \
  49. --test txs_verification
  50. test-genesis-mint: all
  51. RUSTFLAGS="$(RUSTFLAGS)" $(CARGO) test --target=$(RUST_TARGET) \
  52. --release --package $(PKGNAME) \
  53. --features=no-entrypoint,client \
  54. --test genesis_mint
  55. test-pow-reward: all
  56. RUSTFLAGS="$(RUSTFLAGS)" $(CARGO) test --target=$(RUST_TARGET) \
  57. --release --package $(PKGNAME) \
  58. --features=no-entrypoint,client \
  59. --test pow_reward
  60. bench:
  61. RUSTFLAGS="$(RUSTFLAGS)" $(CARGO) test --target=$(RUST_TARGET) \
  62. --release --package $(PKGNAME) \
  63. --features=no-entrypoint,client \
  64. --test verification_bench
  65. test: test-integration test-mint-pay-swap test-txs-verification test-genesis-mint test-pow-reward
  66. clippy: all
  67. RUSTFLAGS="$(RUSTFLAGS)" $(CARGO) clippy --target=$(WASM_TARGET) \
  68. --release --package $(PKGNAME)
  69. RUSTFLAGS="$(RUSTFLAGS)" $(CARGO) clippy --target=$(RUST_TARGET) \
  70. --release --package $(PKGNAME) \
  71. --features=no-entrypoint,client --tests
  72. clean:
  73. RUSTFLAGS="$(RUSTFLAGS)" $(CARGO) clean --target=$(WASM_TARGET) \
  74. --release --package $(PKGNAME)
  75. RUSTFLAGS="$(RUSTFLAGS)" $(CARGO) clean --target=$(RUST_TARGET) \
  76. --release --package $(PKGNAME)
  77. rm -f $(PROOFS_BIN) $(WASM_BIN)
  78. .PHONY: all test-integration test-mint-pay-swap test-txs-verification test-genesis-mint test-pow-reward bench test clippy clean