Makefile 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130
  1. .POSIX:
  2. # Install prefix
  3. PREFIX = $(HOME)/.cargo
  4. # Cargo binary
  5. CARGO = cargo +nightly
  6. # Optional compile target
  7. #RUST_TARGET = x86_64-unknown-linux-musl
  8. # Uncomment this if the above is uncommented
  9. #TARGET_PRFX = --target=
  10. # Binaries to be built
  11. BINS = \
  12. zkas \
  13. darkfid \
  14. darkfid2 \
  15. faucetd \
  16. darkirc \
  17. genev \
  18. genevd \
  19. lilith \
  20. tau \
  21. taud \
  22. vanityaddr
  23. # ZK proofs to compile with zkas
  24. PROOFS_SRC = $(shell find proof -type f -name '*.zk') example/simple.zk
  25. PROOFS_BIN = $(PROOFS_SRC:=.bin)
  26. all: $(BINS)
  27. zkas:
  28. $(MAKE) -C bin/zkas
  29. $(PROOFS_BIN): zkas $(PROOFS_SRC)
  30. ./zkas $(basename $@) -o $@
  31. contracts: zkas
  32. $(MAKE) -C src/contract/money
  33. $(MAKE) -C src/contract/dao
  34. $(MAKE) -C src/contract/consensus
  35. $(MAKE) -C src/contract/deployooor
  36. darkfid: $(PROOFS_BIN) contracts
  37. $(MAKE) -C bin/darkfid
  38. darkfid2: contracts
  39. $(MAKE) -C bin/darkfid2
  40. faucetd: contracts
  41. $(MAKE) -C bin/faucetd
  42. darkirc:
  43. $(MAKE) -C bin/darkirc
  44. genev:
  45. $(MAKE) -C bin/genev/genev-cli
  46. genevd:
  47. $(MAKE) -C bin/genev/genevd
  48. lilith:
  49. $(MAKE) -C bin/lilith
  50. tau:
  51. $(MAKE) -C bin/tau/tau-cli
  52. taud:
  53. $(MAKE) -C bin/tau/taud
  54. vanityaddr:
  55. $(MAKE) -C bin/vanityaddr
  56. fmt:
  57. $(CARGO) fmt
  58. check: $(PROOFS_BIN) contracts
  59. $(CARGO) hack check --release --feature-powerset --workspace
  60. clippy: $(PROOFS_BIN) contracts
  61. $(CARGO) clippy --release --all-features --workspace --tests
  62. fix: $(PROOFS_BIN) contracts
  63. $(CARGO) clippy --release --all-features --fix --allow-dirty --workspace
  64. rustdoc: $(PROOFS_BIN) contracts
  65. $(CARGO) doc --release --all-features --workspace --document-private-items --no-deps
  66. test: $(PROOFS_BIN) contracts
  67. $(CARGO) test --release --all-features --workspace
  68. coverage: $(PROOFS_BIN) contracts
  69. $(CARGO) llvm-cov --release --all-features --workspace --html
  70. clean:
  71. $(MAKE) -C src/contract/money clean
  72. $(MAKE) -C src/contract/dao clean
  73. $(MAKE) -C src/contract/consensus clean
  74. $(MAKE) -C src/contract/deployooor clean
  75. $(MAKE) -C bin/zkas clean
  76. $(MAKE) -C bin/darkfid clean
  77. $(MAKE) -C bin/darkfid2 clean
  78. $(MAKE) -C bin/faucetd clean
  79. $(MAKE) -C bin/darkirc clean
  80. $(MAKE) -C bin/genev/genev-cli clean
  81. $(MAKE) -C bin/genev/genevd clean
  82. $(MAKE) -C bin/lilith clean
  83. $(MAKE) -C bin/tau/tau-cli clean
  84. $(MAKE) -C bin/tau/taud clean
  85. $(MAKE) -C bin/vanityaddr clean
  86. rm -f $(PROOFS_BIN)
  87. distclean: clean
  88. $(CARGO) clean
  89. install: all
  90. @for i in $(BINS); \
  91. do \
  92. $(MAKE) -C $$i install \
  93. done;
  94. uninstall:
  95. for i in $(BINS); \
  96. do \
  97. $(MAKE) -C $$i uninstall \
  98. done;
  99. .PHONY: all contracts check fix fmt clippy rustdoc test coverage distclean clean install uninstall $(BINS)