Makefile 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109
  1. # Load environment variables from .env file
  2. include .env
  3. # Set default env variables if not set in .env
  4. export RUST_BACKTRACE ?= full
  5. export RUST_LOG ?= info,nockchain=info,nockchain_libp2p_io=info,libp2p=info,libp2p_quic=info
  6. export MINIMAL_LOG_FORMAT ?= true
  7. export MINING_PUBKEY ?= 2qwq9dQRZfpFx8BDicghpMRnYGKZsZGxxhh9m362pzpM9aeo276pR1yHZPS41y3CW3vPKxeYM8p8fzZS8GXmDGzmNNCnVNekjrSYogqfEFMqwhHh5iCjaKPaDTwhupWqiXj6
  8. export
  9. .PHONY: build
  10. build: build-hoon-all build-rust
  11. $(call show_env_vars)
  12. ## Build all rust
  13. .PHONY: build-rust
  14. build-rust:
  15. cargo build --release
  16. ## Run all tests
  17. .PHONY: test
  18. test:
  19. cargo test --release
  20. .PHONY: install-hoonc
  21. install-hoonc: nuke-hoonc-data ## Install hoonc from this repo
  22. $(call show_env_vars)
  23. cargo install --locked --force --path crates/hoonc --bin hoonc
  24. .PHONY: update-hoonc
  25. update-hoonc:
  26. $(call show_env_vars)
  27. cargo install --locked --path crates/hoonc --bin hoonc
  28. .PHONY: install-nockchain
  29. install-nockchain: build-hoon-all
  30. $(call show_env_vars)
  31. cargo install --locked --force --path crates/nockchain --bin nockchain
  32. .PHONY: update-nockchain
  33. update-nockchain: build-hoon-all
  34. $(call show_env_vars)
  35. cargo install --locked --path crates/nockchain --bin nockchain
  36. .PHONY: install-nockchain-wallet
  37. install-nockchain-wallet: build-hoon-all
  38. $(call show_env_vars)
  39. cargo install --locked --force --path crates/nockchain-wallet --bin nockchain-wallet
  40. .PHONY: update-nockchain-wallet
  41. update-nockchain-wallet: build-hoon-all
  42. $(call show_env_vars)
  43. cargo install --locked --path crates/nockchain-wallet --bin nockchain-wallet
  44. .PHONY: ensure-dirs
  45. ensure-dirs:
  46. mkdir -p hoon
  47. mkdir -p assets
  48. .PHONY: build-trivial
  49. build-trivial: ensure-dirs
  50. $(call show_env_vars)
  51. echo '%trivial' > hoon/trivial.hoon
  52. hoonc --arbitrary hoon/trivial.hoon
  53. HOON_TARGETS=assets/dumb.jam assets/wal.jam assets/miner.jam
  54. .PHONY: nuke-hoonc-data
  55. nuke-hoonc-data:
  56. rm -rf .data.hoonc
  57. rm -rf ~/.nockapp/hoonc
  58. .PHONY: nuke-assets
  59. nuke-assets:
  60. rm -f assets/*.jam
  61. .PHONY: build-hoon-all
  62. build-hoon-all: nuke-assets update-hoonc ensure-dirs build-trivial $(HOON_TARGETS)
  63. $(call show_env_vars)
  64. .PHONY: build-hoon
  65. build-hoon: ensure-dirs update-hoonc $(HOON_TARGETS)
  66. $(call show_env_vars)
  67. .PHONY: run-nockchain
  68. run-nockchain: # Run a nockchain node in follower mode with a mining pubkey
  69. $(call show_env_vars)
  70. mkdir -p miner-node && cd miner-node && rm -f nockchain.sock && RUST_BACKTRACE=1 cargo run --release --bin nockchain -- --npc-socket nockchain.sock --mining-pubkey $(MINING_PUBKEY) --mine
  71. HOON_SRCS := $(find hoon -type file -name '*.hoon')
  72. ## Build dumb.jam with hoonc
  73. assets/dumb.jam: update-hoonc hoon/apps/dumbnet/outer.hoon $(HOON_SRCS)
  74. $(call show_env_vars)
  75. RUST_LOG=trace hoonc hoon/apps/dumbnet/outer.hoon hoon
  76. mv out.jam assets/dumb.jam
  77. ## Build wal.jam with hoonc
  78. assets/wal.jam: update-hoonc hoon/apps/wallet/wallet.hoon $(HOON_SRCS)
  79. $(call show_env_vars)
  80. RUST_LOG=trace hoonc hoon/apps/wallet/wallet.hoon hoon
  81. mv out.jam assets/wal.jam
  82. ## Build mining.jam with hoonc
  83. assets/miner.jam: update-hoonc hoon/apps/dumbnet/miner.hoon $(HOON_SRCS)
  84. $(call show_env_vars)
  85. RUST_LOG=trace hoonc hoon/apps/dumbnet/miner.hoon hoon
  86. mv out.jam assets/miner.jam