forked from nockchain/nockchain
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMakefile
More file actions
145 lines (116 loc) · 3.88 KB
/
Copy pathMakefile
File metadata and controls
145 lines (116 loc) · 3.88 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
# Create .env file if it doesn't exist
$(shell [ ! -f .env ] && touch .env)
# Load environment variables from .env file
include .env
# Set default env variables if not set in .env
export RUST_BACKTRACE ?= full
export RUST_LOG ?= info,nockchain=info,nockchain_libp2p_io=info,libp2p=info,libp2p_quic=info
export MINIMAL_LOG_FORMAT ?= true
export MINING_PKH ?= 9yPePjfWAdUnzaQKyxcRXKRa5PpUzKKEwtpECBZsUYt9Jd7egSDEWoV
export
.PHONY: build
build: build-hoon-all build-rust
$(call show_env_vars)
## Build all rust
.PHONY: build-rust
build-rust:
cargo build --release
.PHONY: build-nockchain-jemalloc
build-nockchain-jemalloc:
cargo build --release --features jemalloc --bin nockchain
## Run all tests
.PHONY: test
test:
cargo test --release
.PHONY: fmt
fmt:
cargo fmt
.PHONY: build-hoonc
build-hoonc: nuke-hoonc-data ## Build hoonc from this repo
$(call show_env_vars)
cargo build --release --locked --bin hoonc
.PHONY: build-hoonc-tracing
build-hoonc-tracing: nuke-hoonc-data ## Build hoonc with tracing
$(call show_env_vars)
cargo build --release --bin hoonc --features tracing-tracy
.PHONY: install-hoonc
install-hoonc: nuke-hoonc-data ## Install hoonc from this repo
$(call show_env_vars)
cargo install --locked --force --path crates/hoonc --bin hoonc
.PHONY: update-hoonc
update-hoonc:
$(call show_env_vars)
cargo install --locked --path crates/hoonc --bin hoonc
.PHONY: build-nockchain
build-nockchain: assets/dumb.jam assets/miner.jam
$(call show_env_vars)
cargo build --release --bin nockchain --features tracing-tracy
.PHONY: install-nockchain
install-nockchain: assets/dumb.jam assets/miner.jam
$(call show_env_vars)
cargo install --locked --force --path crates/nockchain --bin nockchain
.PHONY: install-nockchain-wallet
install-nockchain-wallet: assets/wal.jam
$(call show_env_vars)
cargo install --locked --force --path crates/nockchain-wallet --bin nockchain-wallet
.PHONY: install-nockchain-peek
install-nockchain-peek: assets/peek.jam
$(call show_env_vars)
cargo install --locked --force --path crates/nockchain-peek --bin nockchain-peek
.PHONY: ensure-dirs
ensure-dirs:
mkdir -p hoon
mkdir -p assets
.PHONY: build-trivial
build-trivial: ensure-dirs
$(call show_env_vars)
echo '%trivial' > hoon/trivial.hoon
hoonc --arbitrary hoon/trivial.hoon
HOON_TARGETS=assets/dumb.jam assets/wal.jam assets/miner.jam assets/peek.jam assets/bridge.jam
.PHONY: nuke-hoonc-data
nuke-hoonc-data:
rm -rf .data.hoonc
rm -rf ~/.nockapp/hoonc
.PHONY: nuke-assets
nuke-assets:
rm -f assets/*.jam
.PHONY: build-hoon-all
build-hoon-all: nuke-assets update-hoonc ensure-dirs build-trivial $(HOON_TARGETS)
$(call show_env_vars)
.PHONY: build-hoon
build-hoon: ensure-dirs update-hoonc $(HOON_TARGETS)
$(call show_env_vars)
.PHONY: build-assets
build-assets: ensure-dirs $(HOON_TARGETS)
$(call show_env_vars)
HOON_SRCS := $(find hoon -type file -name '*.hoon')
## Build dumb.jam with hoonc
assets/dumb.jam: ensure-dirs hoon/apps/dumbnet/outer.hoon $(HOON_SRCS)
$(call show_env_vars)
rm -f assets/dumb.jam
hoonc hoon/apps/dumbnet/outer.hoon hoon
mv out.jam assets/dumb.jam
## Build wal.jam with hoonc
assets/wal.jam: ensure-dirs hoon/apps/wallet/wallet.hoon $(HOON_SRCS)
$(call show_env_vars)
rm -f assets/wal.jam
hoonc hoon/apps/wallet/wallet.hoon hoon
mv out.jam assets/wal.jam
## Build mining.jam with hoonc
assets/miner.jam: ensure-dirs hoon/apps/dumbnet/miner.hoon $(HOON_SRCS)
$(call show_env_vars)
rm -f assets/miner.jam
hoonc hoon/apps/dumbnet/miner.hoon hoon
mv out.jam assets/miner.jam
## Build peek.jam with hoonc
assets/peek.jam: ensure-dirs hoon/apps/peek/peek.hoon $(HOON_SRCS)
$(call show_env_vars)
rm -f assets/peek.jam
hoonc hoon/apps/peek/peek.hoon hoon
mv out.jam assets/peek.jam
## Build bridge.jam
assets/bridge.jam: ensure-dirs hoon/apps/bridge/bridge.hoon $(HOON_SRCS)
$(call show_env_vars)
rm -f assets/bridge.jam
hoonc hoon/apps/bridge/bridge.hoon hoon
mv out.jam assets/bridge.jam