Makefile 5.1 KB

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