Makefile 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194
  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, used for tests
  13. PROOFS_SRC = \
  14. $(shell find proof -type f -name '*.zk')
  15. PROOFS_BIN = $(PROOFS_SRC:=.bin)
  16. # List of all binaries built
  17. BINS = \
  18. zkas \
  19. darkfid \
  20. drk \
  21. darkirc \
  22. genev \
  23. genevd \
  24. lilith \
  25. taud \
  26. vanityaddr \
  27. explorer \
  28. fud \
  29. fu
  30. all: $(BINS)
  31. zkas:
  32. $(MAKE) -C bin/$@ \
  33. PREFIX="$(PREFIX)" \
  34. CARGO="$(CARGO)" \
  35. RUST_TARGET="$(RUST_TARGET)" \
  36. RUSTFLAGS="$(RUSTFLAGS)"
  37. $(PROOFS_BIN): zkas $(PROOFS_SRC)
  38. ./zkas $(basename $@) -o $@
  39. contracts: zkas
  40. $(MAKE) -C src/contract/money
  41. $(MAKE) -C src/contract/dao
  42. $(MAKE) -C src/contract/deployooor
  43. darkfid: contracts
  44. $(MAKE) -C bin/$@ \
  45. PREFIX="$(PREFIX)" \
  46. CARGO="$(CARGO)" \
  47. RUST_TARGET="$(RUST_TARGET)" \
  48. RUSTFLAGS="$(RUSTFLAGS)"
  49. drk: contracts
  50. $(MAKE) -C bin/$@ \
  51. PREFIX="$(PREFIX)" \
  52. CARGO="$(CARGO)" \
  53. RUST_TARGET="$(RUST_TARGET)" \
  54. RUSTFLAGS="$(RUSTFLAGS)"
  55. darkirc: zkas
  56. $(MAKE) -C bin/$@ \
  57. PREFIX="$(PREFIX)" \
  58. CARGO="$(CARGO)" \
  59. RUST_TARGET="$(RUST_TARGET)" \
  60. RUSTFLAGS="$(RUSTFLAGS)"
  61. genev:
  62. $(MAKE) -C bin/genev/genev-cli \
  63. PREFIX="$(PREFIX)" \
  64. CARGO="$(CARGO)" \
  65. RUST_TARGET="$(RUST_TARGET)" \
  66. RUSTFLAGS="$(RUSTFLAGS)"
  67. genevd:
  68. $(MAKE) -C bin/genev/genevd \
  69. PREFIX="$(PREFIX)" \
  70. CARGO="$(CARGO)" \
  71. RUST_TARGET="$(RUST_TARGET)" \
  72. RUSTFLAGS="$(RUSTFLAGS)"
  73. lilith:
  74. $(MAKE) -C bin/$@ \
  75. PREFIX="$(PREFIX)" \
  76. CARGO="$(CARGO)" \
  77. RUST_TARGET="$(RUST_TARGET)" \
  78. RUSTFLAGS="$(RUSTFLAGS)"
  79. taud:
  80. $(MAKE) -C bin/tau/$@ \
  81. PREFIX="$(PREFIX)" \
  82. CARGO="$(CARGO)" \
  83. RUST_TARGET="$(RUST_TARGET)" \
  84. RUSTFLAGS="$(RUSTFLAGS)"
  85. vanityaddr:
  86. $(MAKE) -C bin/$@ \
  87. PREFIX="$(PREFIX)" \
  88. CARGO="$(CARGO)" \
  89. RUST_TARGET="$(RUST_TARGET)" \
  90. RUSTFLAGS="$(RUSTFLAGS)"
  91. explorer:
  92. $(MAKE) -C bin/$@ \
  93. PREFIX="$(PREFIX)" \
  94. CARGO="$(CARGO)" \
  95. RUST_TARGET="$(RUST_TARGET)" \
  96. RUSTFLAGS="$(RUSTFLAGS)"
  97. fud:
  98. $(MAKE) -C bin/fud/$@ \
  99. PREFIX="$(PREFIX)" \
  100. CARGO="$(CARGO)" \
  101. RUST_TARGET="$(RUST_TARGET)" \
  102. RUSTFLAGS="$(RUSTFLAGS)"
  103. fu:
  104. $(MAKE) -C bin/fud/$@ \
  105. PREFIX="$(PREFIX)" \
  106. CARGO="$(CARGO)" \
  107. RUST_TARGET="$(RUST_TARGET)" \
  108. RUSTFLAGS="$(RUSTFLAGS)"
  109. # -- END OF BINS --
  110. fmt:
  111. $(CARGO) +nightly fmt --all
  112. # cargo install cargo-hack
  113. check: contracts $(PROOFS_BIN)
  114. RUSTFLAGS="$(RUSTFLAGS)" $(CARGO) hack check --target=$(RUST_TARGET) \
  115. --release --feature-powerset --workspace
  116. clippy: contracts $(PROOFS_BIN)
  117. RUSTFLAGS="$(RUSTFLAGS)" $(CARGO) clippy --target=$(RUST_TARGET) \
  118. --release --all-features --workspace --tests
  119. fix: contracts $(PROOFS_BIN)
  120. RUSTFLAGS="$(RUSTFLAGS)" $(CARGO) clippy --target=$(RUST_TARGET) \
  121. --release --all-features --workspace --tests --fix --allow-dirty
  122. rustdoc: contracts $(PROOFS_BIN)
  123. RUSTFLAGS="$(RUSTFLAGS)" $(CARGO) doc --target=$(RUST_TARGET) \
  124. --release --all-features --workspace --document-private-items --no-deps
  125. test: contracts $(PROOFS_BIN)
  126. RUSTFLAGS="$(RUSTFLAGS)" $(CARGO) test --target=$(RUST_TARGET) \
  127. --release --all-features --workspace
  128. bench-zk-from-json: contracts $(PROOFS_BIN)
  129. rm -f src/contract/test-harness/*.bin
  130. RUSTFLAGS="$(RUSTFLAGS)" $(CARGO) bench --target=$(RUST_TARGET) \
  131. --bench zk_from_json --all-features --workspace \
  132. -- --save-baseline master
  133. bench: contracts $(PROOFS_BIN)
  134. rm -f src/contract/test-harness/*.bin
  135. RUSTFLAGS="$(RUSTFLAGS)" $(CARGO) bench --target=$(RUST_TARGET) \
  136. --all-features --workspace \
  137. -- --save-baseline master
  138. coverage: contracts $(PROOFS_BIN)
  139. RUSTFLAGS="$(RUSTFLAGS)" $(CARGO) llvm-cov --target=$(RUST_TARGET) \
  140. --release --all-features --workspace --html
  141. clean:
  142. $(MAKE) -C src/contract/money clean
  143. $(MAKE) -C src/contract/dao clean
  144. $(MAKE) -C src/contract/deployooor clean
  145. $(MAKE) -C bin/zkas clean
  146. $(MAKE) -C bin/darkfid clean
  147. $(MAKE) -C bin/drk clean
  148. $(MAKE) -C bin/darkirc clean
  149. $(MAKE) -C bin/genev/genev-cli clean
  150. $(MAKE) -C bin/genev/genevd clean
  151. $(MAKE) -C bin/lilith clean
  152. $(MAKE) -C bin/tau/taud clean
  153. $(MAKE) -C bin/vanityaddr clean
  154. $(MAKE) -C bin/explorer clean
  155. RUSTFLAGS="$(RUSTFLAGS)" $(CARGO) clean --target=$(RUST_TARGET) --release
  156. rm -f $(PROOFS_BIN)
  157. distclean: clean
  158. rm -rf target
  159. .PHONY: all $(BINS) fmt check clippy fix rustdoc \
  160. test bench-zk-from-json bench coverage clean distclean