Makefile 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177
  1. .POSIX:
  2. # Install prefix
  3. PREFIX = $(HOME)/.cargo
  4. # Cargo binary
  5. CARGO = cargo
  6. # Compile target for system binaries
  7. RUST_TARGET = $(shell rustc -Vv | grep '^host: ' | cut -d' ' -f2)
  8. # Uncomment when doing musl static builds
  9. #RUSTFLAGS = -C target-feature=+crt-static -C link-self-contained=yes
  10. # If building natively, this might give you more speed
  11. #RUSTFLAGS = -C target_cpu=native
  12. # List of zkas circuits to compile
  13. PROOFS_SRC = \
  14. $(shell find proof -type f -name '*.zk') \
  15. $(shell find src/event_graph/proof -type f -name '*.zk')
  16. PROOFS_BIN = $(PROOFS_SRC:=.bin)
  17. # List of all binaries built
  18. BINS = \
  19. zkas \
  20. darkfid \
  21. drk \
  22. darkirc \
  23. lilith \
  24. taud \
  25. vanityaddr \
  26. explorer \
  27. fud \
  28. fu
  29. all: $(PROOFS_BIN) $(BINS)
  30. zkas:
  31. $(MAKE) -C bin/$@ \
  32. PREFIX="$(PREFIX)" \
  33. CARGO="$(CARGO)" \
  34. RUST_TARGET="$(RUST_TARGET)" \
  35. RUSTFLAGS="$(RUSTFLAGS)"
  36. $(PROOFS_BIN): zkas $(PROOFS_SRC)
  37. ./zkas $(basename $@) -o $@
  38. contracts: zkas
  39. $(MAKE) -C src/contract/money
  40. $(MAKE) -C src/contract/dao
  41. $(MAKE) -C src/contract/deployooor
  42. darkfid: contracts
  43. $(MAKE) -C bin/$@ \
  44. PREFIX="$(PREFIX)" \
  45. CARGO="$(CARGO)" \
  46. RUST_TARGET="$(RUST_TARGET)" \
  47. RUSTFLAGS="$(RUSTFLAGS)"
  48. drk: contracts
  49. $(MAKE) -C bin/$@ \
  50. PREFIX="$(PREFIX)" \
  51. CARGO="$(CARGO)" \
  52. RUST_TARGET="$(RUST_TARGET)" \
  53. RUSTFLAGS="$(RUSTFLAGS)"
  54. darkirc: $(PROOFS_BIN) zkas
  55. $(MAKE) -C bin/$@ \
  56. PREFIX="$(PREFIX)" \
  57. CARGO="$(CARGO)" \
  58. RUST_TARGET="$(RUST_TARGET)" \
  59. RUSTFLAGS="$(RUSTFLAGS)"
  60. lilith:
  61. $(MAKE) -C bin/$@ \
  62. PREFIX="$(PREFIX)" \
  63. CARGO="$(CARGO)" \
  64. RUST_TARGET="$(RUST_TARGET)" \
  65. RUSTFLAGS="$(RUSTFLAGS)"
  66. taud: $(PROOFS_BIN)
  67. $(MAKE) -C bin/tau/$@ \
  68. PREFIX="$(PREFIX)" \
  69. CARGO="$(CARGO)" \
  70. RUST_TARGET="$(RUST_TARGET)" \
  71. RUSTFLAGS="$(RUSTFLAGS)"
  72. vanityaddr:
  73. $(MAKE) -C bin/$@ \
  74. PREFIX="$(PREFIX)" \
  75. CARGO="$(CARGO)" \
  76. RUST_TARGET="$(RUST_TARGET)" \
  77. RUSTFLAGS="$(RUSTFLAGS)"
  78. explorer:
  79. $(MAKE) -C bin/$@ \
  80. PREFIX="$(PREFIX)" \
  81. CARGO="$(CARGO)" \
  82. RUST_TARGET="$(RUST_TARGET)" \
  83. RUSTFLAGS="$(RUSTFLAGS)"
  84. fud:
  85. $(MAKE) -C bin/fud/$@ \
  86. PREFIX="$(PREFIX)" \
  87. CARGO="$(CARGO)" \
  88. RUST_TARGET="$(RUST_TARGET)" \
  89. RUSTFLAGS="$(RUSTFLAGS)"
  90. fu:
  91. $(MAKE) -C bin/fud/$@ \
  92. PREFIX="$(PREFIX)" \
  93. CARGO="$(CARGO)" \
  94. RUST_TARGET="$(RUST_TARGET)" \
  95. RUSTFLAGS="$(RUSTFLAGS)"
  96. # -- END OF BINS --
  97. fmt:
  98. $(CARGO) +nightly fmt --all
  99. # cargo install cargo-hack
  100. check: $(PROOFS_BIN) contracts
  101. RUSTFLAGS="$(RUSTFLAGS)" $(CARGO) hack check --target=$(RUST_TARGET) \
  102. --release --feature-powerset --workspace
  103. clippy: $(PROOFS_BIN) contracts
  104. RUSTFLAGS="$(RUSTFLAGS)" $(CARGO) clippy --target=$(RUST_TARGET) \
  105. --release --all-features --workspace --tests
  106. fix: $(PROOFS_BIN) contracts
  107. RUSTFLAGS="$(RUSTFLAGS)" $(CARGO) clippy --target=$(RUST_TARGET) \
  108. --release --all-features --workspace --tests --fix --allow-dirty
  109. rustdoc: $(PROOFS_BIN) contracts
  110. RUSTFLAGS="$(RUSTFLAGS)" $(CARGO) doc --target=$(RUST_TARGET) \
  111. --release --all-features --workspace --document-private-items --no-deps
  112. test: $(PROOFS_BIN) contracts
  113. RUSTFLAGS="$(RUSTFLAGS)" $(CARGO) test --target=$(RUST_TARGET) \
  114. --release --all-features --workspace
  115. bench-zk-from-json: $(PROOFS_BIN) contracts
  116. rm -f src/contract/test-harness/*.bin
  117. RUSTFLAGS="$(RUSTFLAGS)" $(CARGO) bench --target=$(RUST_TARGET) \
  118. --bench zk_from_json --all-features --workspace \
  119. -- --save-baseline master
  120. bench: $(PROOFS_BIN) contracts
  121. rm -f src/contract/test-harness/*.bin
  122. RUSTFLAGS="$(RUSTFLAGS)" $(CARGO) bench --target=$(RUST_TARGET) \
  123. --all-features --workspace \
  124. -- --save-baseline master
  125. coverage: $(PROOFS_BIN) contracts
  126. RUSTFLAGS="$(RUSTFLAGS)" $(CARGO) llvm-cov --target=$(RUST_TARGET) \
  127. --release --all-features --workspace --html
  128. clean:
  129. $(MAKE) -C src/contract/money clean
  130. $(MAKE) -C src/contract/dao clean
  131. $(MAKE) -C src/contract/deployooor clean
  132. $(MAKE) -C bin/zkas clean
  133. $(MAKE) -C bin/darkfid clean
  134. $(MAKE) -C bin/drk clean
  135. $(MAKE) -C bin/darkirc clean
  136. $(MAKE) -C bin/lilith clean
  137. $(MAKE) -C bin/tau/taud clean
  138. $(MAKE) -C bin/vanityaddr clean
  139. $(MAKE) -C bin/explorer clean
  140. RUSTFLAGS="$(RUSTFLAGS)" $(CARGO) clean --target=$(RUST_TARGET) --release
  141. rm -f $(PROOFS_BIN)
  142. distclean: clean
  143. rm -rf target
  144. .PHONY: all $(BINS) fmt check clippy fix rustdoc \
  145. test bench-zk-from-json bench coverage clean distclean