Makefile 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. # Set env variables
  2. export RUST_BACKTRACE := full
  3. export RUST_LOG := info,nockchain=debug,nockchain_libp2p_io=info,libp2p=info,libp2p_quic=info
  4. export MINIMAL_LOG_FORMAT := true
  5. export MINING_PUBKEY := EHmKL2U3vXfS5GYAY5aVnGdukfDWwvkQPCZXnjvZVShsSQi3UAuA4tQQpVwGJMzc9FfpTY8pLDkqhBGfWutiF4prrCktUH9oAWJxkXQBzAavKDc95NR3DjmYwnnw8GuugnK
  6. ## Build everything
  7. .PHONY: build
  8. build:
  9. cargo build --release
  10. ## Run all tests
  11. .PHONY: test
  12. test:
  13. cargo test --release
  14. .PHONY: install-choo
  15. install-choo: nuke-choo-data ## Install choo from this repo
  16. $(call show_env_vars)
  17. cargo install --locked --force --path crates/nockapp/apps/choo --bin choo
  18. update-choo:
  19. $(call show_env_vars)
  20. cargo install --locked --path crates/nockapp/apps/choo --bin choo
  21. .PHONY: ensure-dirs
  22. ensure-dirs:
  23. mkdir -p hoon
  24. mkdir -p assets
  25. .PHONY: build-trivial-new
  26. build-trivial-new: ensure-dirs
  27. $(call show_env_vars)
  28. echo '%trivial' > hoon/trivial.hoon
  29. choo --new --arbitrary hoon/trivial.hoon
  30. HOON_TARGETS=assets/dumb.jam assets/wal.jam
  31. .PHONY: nuke-choo-data
  32. nuke-choo-data:
  33. rm -rf .data.choo
  34. rm -rf ~/.nockapp/choo
  35. .PHONY: nuke-assets
  36. nuke-assets:
  37. rm -f assets/*.jam
  38. .PHONY: build-hoon-fresh
  39. build-hoon-fresh: nuke-assets nuke-choo-data install-choo ensure-dirs build-trivial-new $(HOON_TARGETS)
  40. $(call show_env_vars)
  41. .PHONY: build-hoon-new
  42. build-hoon-all: ensure-dirs update-choo build-trivial-new $(HOON_TARGETS)
  43. $(call show_env_vars)
  44. .PHONY: build-hoon
  45. build-hoon: ensure-dirs update-choo $(HOON_TARGETS)
  46. $(call show_env_vars)
  47. .PHONY: run-nockchain-leader
  48. run-nockchain-leader: # Run nockchain mode in leader mode
  49. $(call show_env_vars)
  50. mkdir -p test-leader && cd test-leader && rm -f nockchain.sock && RUST_BACKTRACE=1 cargo run --release --bin nockchain -- --fakenet --genesis-leader --npc-socket nockchain.sock --mining-pubkey $(MINING_PUBKEY) --bind /ip4/0.0.0.0/udp/3005/quic-v1 --peer /ip4/127.0.0.1/udp/3006/quic-v1 --new-peer-id --no-default-peers
  51. .PHONY: run-nockchain-follower
  52. run-nockchain-follower: # Run nockchain mode in follower mode
  53. $(call show_env_vars)
  54. mkdir -p test-follower && cd test-follower && rm -f nockchain.sock && RUST_BACKTRACE=1 cargo run --release --bin nockchain -- --fakenet --genesis-watcher --npc-socket nockchain.sock --mining-pubkey $(MINING_PUBKEY) --bind /ip4/0.0.0.0/udp/3006/quic-v1 --peer /ip4/127.0.0.1/udp/3005/quic-v1 --new-peer-id --no-default-peers
  55. HOON_SRCS := $(find hoon -type file -name '*.hoon')
  56. ## Build dumb.jam with choo
  57. assets/dumb.jam: update-choo hoon/apps/dumbnet/outer.hoon $(HOON_SRCS)
  58. $(call show_env_vars)
  59. RUST_LOG=trace choo hoon/apps/dumbnet/outer.hoon hoon
  60. mv out.jam assets/dumb.jam
  61. ## Build wal.jam with choo
  62. assets/wal.jam: update-choo hoon/apps/wallet/wallet.hoon $(HOON_SRCS)
  63. $(call show_env_vars)
  64. RUST_LOG=trace choo hoon/apps/wallet/wallet.hoon hoon
  65. mv out.jam assets/wal.jam