Makefile 5.2 KB

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