Makefile 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152
  1. .POSIX:
  2. # Install prefix
  3. PREFIX = $(HOME)/.cargo
  4. # Cargo binary
  5. CARGO = cargo +nightly
  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 = $(shell find proof -type f -name '*.zk')
  12. PROOFS_BIN = $(PROOFS_SRC:=.bin)
  13. # List of all binaries built
  14. BINS = \
  15. zkas \
  16. darkfid2 \
  17. darkfi-mmproxy \
  18. darkirc \
  19. genev \
  20. genevd \
  21. lilith \
  22. taud \
  23. vanityaddr
  24. all: $(BINS)
  25. zkas:
  26. $(MAKE) -C bin/$@ \
  27. PREFIX="$(PREFIX)" \
  28. CARGO="$(CARGO)" \
  29. RUST_TARGET="$(RUST_TARGET)" \
  30. RUSTFLAGS="$(RUSTFLAGS)"
  31. $(PROOFS_BIN): zkas $(PROOFS_SRC)
  32. ./zkas $(basename $@) -o $@
  33. contracts: zkas
  34. $(MAKE) -C src/contract/money
  35. $(MAKE) -C src/contract/consensus
  36. $(MAKE) -C src/contract/dao
  37. $(MAKE) -C src/contract/deployooor
  38. darkfid2: contracts
  39. $(MAKE) -C bin/$@ \
  40. PREFIX="$(PREFIX)" \
  41. CARGO="$(CARGO)" \
  42. RUST_TARGET="$(RUST_TARGET)" \
  43. RUSTFLAGS="$(RUSTFLAGS)"
  44. darkfi-mmproxy:
  45. $(MAKE) -C bin/$@ \
  46. PREFIX="$(PREFIX)" \
  47. CARGO="$(CARGO)" \
  48. RUST_TARGET="$(RUST_TARGET)" \
  49. RUSTFLAGS="$(RUSTFLAGS)"
  50. darkirc: zkas
  51. $(MAKE) -C bin/$@ \
  52. PREFIX="$(PREFIX)" \
  53. CARGO="$(CARGO)" \
  54. RUST_TARGET="$(RUST_TARGET)" \
  55. RUSTFLAGS="$(RUSTFLAGS)"
  56. genev:
  57. $(MAKE) -C bin/genev/genev-cli \
  58. PREFIX="$(PREFIX)" \
  59. CARGO="$(CARGO)" \
  60. RUST_TARGET="$(RUST_TARGET)" \
  61. RUSTFLAGS="$(RUSTFLAGS)"
  62. genevd:
  63. $(MAKE) -C bin/genev/genevd \
  64. PREFIX="$(PREFIX)" \
  65. CARGO="$(CARGO)" \
  66. RUST_TARGET="$(RUST_TARGET)" \
  67. RUSTFLAGS="$(RUSTFLAGS)"
  68. lilith:
  69. $(MAKE) -C bin/$@ \
  70. PREFIX="$(PREFIX)" \
  71. CARGO="$(CARGO)" \
  72. RUST_TARGET="$(RUST_TARGET)" \
  73. RUSTFLAGS="$(RUSTFLAGS)"
  74. taud:
  75. $(MAKE) -C bin/tau/$@ \
  76. PREFIX="$(PREFIX)" \
  77. CARGO="$(CARGO)" \
  78. RUST_TARGET="$(RUST_TARGET)" \
  79. RUSTFLAGS="$(RUSTFLAGS)"
  80. vanityaddr:
  81. $(MAKE) -C bin/$@ \
  82. PREFIX="$(PREFIX)" \
  83. CARGO="$(CARGO)" \
  84. RUST_TARGET="$(RUST_TARGET)" \
  85. RUSTFLAGS="$(RUSTFLAGS)"
  86. # -- END OF BINS --
  87. fmt:
  88. $(CARGO) fmt --all
  89. check: contracts $(PROOFS_BIN)
  90. RUSTFLAGS="$(RUSTFLAGS)" $(CARGO) hack check --target=$(RUST_TARGET) \
  91. --release --feature-powerset --workspace
  92. clippy: contracts $(PROOFS_BIN)
  93. RUSTFLAGS="$(RUSTFLAGS)" $(CARGO) clippy --target=$(RUST_TARGET) \
  94. --release --all-features --workspace --tests
  95. fix: contracts $(PROOFS_BIN)
  96. RUSTFLAGS="$(RUSTFLAGS)" $(CARGO) clippy --target=$(RUST_TARGET) \
  97. --release --all-features --workspace --tests --fix --allow-dirty
  98. rustdoc: contracts $(PROOFS_BIN)
  99. RUSTFLAGS="$(RUSTFLAGS)" $(CARGO) doc --target=$(RUST_TARGET) \
  100. --release --all-features --workspace --document-private-items --no-deps
  101. test: contracts $(PROOFS_BIN)
  102. RUSTFLAGS="$(RUSTFLAGS)" $(CARGO) test --target=$(RUST_TARGET) \
  103. --release --all-features --workspace
  104. coverage: contracts $(PROOFS_BIN)
  105. RUSTFLAGS="$(RUSTFLAGS)" $(CARGO) llvm-cov --target=$(RUST_TARGET) \
  106. --release --all-features --workspace --html
  107. clean:
  108. $(MAKE) -C src/contract/money clean
  109. $(MAKE) -C src/contract/consensus clean
  110. $(MAKE) -C src/contract/dao clean
  111. $(MAKE) -C src/contract/deployooor clean
  112. $(MAKE) -C bin/zkas clean
  113. $(MAKE) -C bin/darkfid2 clean
  114. $(MAKE) -C bin/darkfi-mmproxy clean
  115. $(MAKE) -C bin/darkirc clean
  116. $(MAKE) -C bin/genev/genev-cli clean
  117. $(MAKE) -C bin/genev/genevd clean
  118. $(MAKE) -C bin/lilith clean
  119. $(MAKE) -C bin/tau/taud clean
  120. $(MAKE) -C bin/vanityaddr clean
  121. RUSTFLAGS="$(RUSTFLAGS)" $(CARGO) clean --target=$(RUST_TARGET) --release
  122. distclean: clean
  123. rm -rf target
  124. .PHONY: all $(BINS) fmt check clippy fix rustdoc test coverage clean distclean