Forráskód Böngészése

Implement standalone Makefiles for most of the bins and rework main Makefile.

parazyd 2 éve
szülő
commit
41bf60570a

+ 1 - 1
.github/workflows/ci.yml

@@ -41,7 +41,7 @@ jobs:
 
       - name: Compile all bins
         run: |
-          ./contrib/compile_all_bins.sh
+          make
 
   feature-powerset:
     name: Test crate feature powerset on ${{ matrix.os }}

+ 3 - 4
Cargo.lock

@@ -3426,14 +3426,13 @@ checksum = "7843ec2de400bcbc6a6328c958dc38e5359da6e93e72e37bc5246bf1ae776389"
 
 [[package]]
 name = "nix"
-version = "0.26.2"
+version = "0.26.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bfdda3d196821d6af13126e40375cdf7da646a96114af134d5f417a9a1dc8e1a"
+checksum = "598beaf3cc6fdd9a5dfb1630c2800c7acd31df7aaf0f565796fba2b53ca1af1b"
 dependencies = [
  "bitflags 1.3.2",
  "cfg-if",
  "libc",
- "static_assertions",
 ]
 
 [[package]]
@@ -6570,8 +6569,8 @@ checksum = "d92ccd67fb88503048c01b59152a04effd0782d035a83a6d256ce6085f08f4a3"
 name = "vanityaddr"
 version = "0.4.1"
 dependencies = [
+ "arg",
  "bs58",
- "clap 4.3.24",
  "ctrlc",
  "darkfi",
  "darkfi-sdk",

+ 6 - 1
Cargo.toml

@@ -135,6 +135,10 @@ p2p-transport-tcp = []
 p2p-transport-tor = ["arti-client", "tor-hscrypto"]
 p2p-transport-nym = []
 
+async-serial = [
+    "darkfi-serial/async"
+]
+
 async-runtime = [
     "async-trait",
     "futures",
@@ -202,6 +206,7 @@ net = [
     "darkfi-serial",
     "darkfi-serial/async",
     "darkfi-serial/url",
+    "async-serial",
     "system",
     "util",
 
@@ -242,7 +247,7 @@ util = [
     "tinyjson",
     "toml",
 
-    "darkfi-serial/async",
+    "darkfi-serial",
 ]
 
 wallet = [

+ 72 - 46
Makefile

@@ -12,27 +12,23 @@ CARGO = cargo +nightly
 #TARGET_PRFX = --target=
 
 # Binaries to be built
-BINS = darkfid faucetd darkirc vanityaddr tau taud
-
-# zkas dependencies
-ZKASDEPS = \
-	Cargo.toml \
-	bin/zkas/Cargo.toml \
-	$(shell find src/zkas -type f) \
-	$(shell find src/serial -type f) \
-	$(shell find bin/zkas/src -type f)
+BINS = \
+	zkas \
+	darkfid \
+	darkfid2 \
+	faucetd \
+	darkirc \
+	genev \
+	genevd \
+	lilith \
+	tau \
+	taud \
+	vanityaddr
 
 # ZK proofs to compile with zkas
 PROOFS_SRC = $(shell find proof -type f -name '*.zk') example/simple.zk
 PROOFS_BIN = $(PROOFS_SRC:=.bin)
 
-# Common dependencies which should force the binaries to be rebuilt
-BINDEPS = \
-	Cargo.toml \
-	$(shell find bin/*/src -type f) \
-	$(shell find bin -type f -name '*.toml') \
-	$(shell find src -type f) \
-
 all: $(BINS)
 
 zkas:
@@ -47,58 +43,88 @@ contracts: zkas
 	$(MAKE) -C src/contract/consensus
 	$(MAKE) -C src/contract/deployooor
 
-$(BINS): contracts $(PROOFS_BIN) $(BINDEPS)
-	$(CARGO) build $(TARGET_PRFX)$(RUST_TARGET) --all-features --release --package $@
-	cp -f target/$(RUST_TARGET)/release/$@ $@
+darkfid: $(PROOFS_BIN) contracts
+	$(MAKE) -C bin/darkfid
 
-check: contracts $(PROOFS_BIN)
-	$(CARGO) hack check --release --feature-powerset --all
+darkfid2: contracts
+	$(MAKE) -C bin/darkfid2
 
-fix: contracts $(PROOFS_BIN)
-	$(CARGO) clippy --release --all-features --fix --allow-dirty --all
+faucetd: contracts
+	$(MAKE) -C bin/faucetd
+
+darkirc:
+	$(MAKE) -C bin/darkirc
+
+genev:
+	$(MAKE) -C bin/genev/genev-cli
+
+genevd:
+	$(MAKE) -C bin/genev/genevd
+
+lilith:
+	$(MAKE) -C bin/lilith
+
+tau:
+	$(MAKE) -C bin/tau/tau-cli
+
+taud:
+	$(MAKE) -C bin/tau/taud
+
+vanityaddr:
+	$(MAKE) -C bin/vanityaddr
 
 fmt:
 	$(CARGO) fmt
 
-clippy: contracts $(PROOFS_BIN)
-	$(CARGO) clippy --release --all-features --all
+check: $(PROOFS_BIN) contracts
+	$(CARGO) hack check --release --feature-powerset --all
+
+clippy: $(PROOFS_BIN) contracts
+	$(CARGO) clippy --release --all-features --all --tests
 
-rustdoc: contracts $(PROOFS_BIN)
+fix: $(PROOFS_BIN) contracts
+	$(CARGO) clippy --release --all-features --fix --allow-dirty --all
+
+rustdoc: $(PROOFS_BIN) contracts
 	$(CARGO) doc --release --all-features --workspace --document-private-items --no-deps
 
 test: $(PROOFS_BIN) contracts
 	$(CARGO) test --release --all-features --all
 
-test-no-run: $(PROOFS_BIN) contracts
-	$(CARGO) test --release --all-features --all --no-run
-
-coverage: contracts $(PROOFS_BIN)
+coverage: $(PROOFS_BIN) contracts
 	$(CARGO) llvm-cov --release --all-features --workspace --html
 
-cleanbin:
-	rm -f $(BINS)
-
-clean: cleanbin
+clean:
+	$(MAKE) -C src/contract/money clean
+	$(MAKE) -C src/contract/dao clean
+	$(MAKE) -C src/contract/consensus clean
+	$(MAKE) -C src/contract/deployooor clean
+	$(MAKE) -C bin/zkas clean
+	$(MAKE) -C bin/darkfid clean
+	$(MAKE) -C bin/darkfid2 clean
+	$(MAKE) -C bin/faucetd clean
+	$(MAKE) -C bin/darkirc clean
+	$(MAKE) -C bin/genev/genev-cli clean
+	$(MAKE) -C bin/genev/genevd clean
+	$(MAKE) -C bin/lilith clean
+	$(MAKE) -C bin/tau/tau-cli clean
+	$(MAKE) -C bin/tau/taud clean
+	$(MAKE) -C bin/vanityaddr clean
+	rm -f $(PROOFS_BIN)
+
+distclean: clean
 	$(CARGO) clean
 
-install:
+install: all
 	@for i in $(BINS); \
 	do \
-		if test ! -f $$i; \
-		then \
-			echo "The '$$i' binary was not built."; \
-			echo "You should run 'make BINS=$$i' as a normal user before installing."; \
-			exit 1; \
-		fi; \
+		$(MAKE) -C $$i install \
 	done;
-	mkdir -p $(DESTDIR)$(PREFIX)/bin
-	cp -f $(BINS) $(DESTDIR)$(PREFIX)/bin
 
 uninstall:
 	for i in $(BINS); \
 	do \
-		rm -f $(DESTDIR)$(PREFIX)/bin/$$i; \
+		$(MAKE) -C $$i uninstall \
 	done;
 
-.PHONY: all check fix fmt clippy test test-no-run cleanbin clean \
-	install uninstall contracts coverage
+.PHONY: all contracts check fix fmt clippy rustdoc test coverage distclean clean install uninstall $(BINS)

+ 34 - 0
bin/darkfid/Makefile

@@ -0,0 +1,34 @@
+.POSIX:
+
+# Install prefix
+PREFIX = $(HOME)/.cargo
+
+# Cargo binary
+CARGO = cargo +nightly
+
+SRC = \
+	Cargo.toml \
+	../../Cargo.toml \
+	$(shell find src -type f) \
+	$(shell find ../../src -type f) \
+
+BIN = ../../darkfid
+
+all: $(BIN)
+
+$(BIN): $(SRC)
+	$(CARGO) build $(TARGET_PRFX)$(RUST_TARGET) --release --package darkfid
+	cp -f ../../target/$(RUST_TARGET)/release/darkfid $@
+
+clean:
+	rm -f $(BIN)
+
+install: all
+	mkdir -p $(DESTDIR)$(PREFIX)/bin
+	cp -f $(BIN) $(DESTDIR)$(PREFIX)/bin
+	chmod 755 $(DESTDIR)$(PREFIX)/bin/darkfid
+
+uninstall:
+	rm -f $(DESTDIR)$(PREFIX)/bin/darkfid
+
+.PHONY: all clean install uninstall

+ 34 - 0
bin/darkfid2/Makefile

@@ -0,0 +1,34 @@
+.POSIX:
+
+# Install prefix
+PREFIX = $(HOME)/.cargo
+
+# Cargo binary
+CARGO = cargo +nightly
+
+SRC = \
+	Cargo.toml \
+	../../Cargo.toml \
+	$(shell find src -type f) \
+	$(shell find ../../src -type f) \
+
+BIN = ../../darkfid2
+
+all: $(BIN)
+
+$(BIN): $(SRC)
+	$(CARGO) build $(TARGET_PRFX)$(RUST_TARGET) --release --package darkfid2
+	cp -f ../../target/$(RUST_TARGET)/release/darkfid2 $@
+
+clean:
+	rm -f $(BIN)
+
+install: all
+	mkdir -p $(DESTDIR)$(PREFIX)/bin
+	cp -f $(BIN) $(DESTDIR)$(PREFIX)/bin
+	chmod 755 $(DESTDIR)$(PREFIX)/bin/darkfid2
+
+uninstall:
+	rm -f $(DESTDIR)$(PREFIX)/bin/darkfid2
+
+.PHONY: all clean install uninstall

+ 34 - 0
bin/darkirc/Makefile

@@ -0,0 +1,34 @@
+.POSIX:
+
+# Install prefix
+PREFIX = $(HOME)/.cargo
+
+# Cargo binary
+CARGO = cargo +nightly
+
+SRC = \
+	Cargo.toml \
+	../../Cargo.toml \
+	$(shell find src -type f) \
+	$(shell find ../../src -type f) \
+
+BIN = ../../darkirc
+
+all: $(BIN)
+
+$(BIN): $(SRC)
+	$(CARGO) build $(TARGET_PRFX)$(RUST_TARGET) --release --package darkirc
+	cp -f ../../target/$(RUST_TARGET)/release/darkirc $@
+
+clean:
+	rm -f $(BIN)
+
+install: all
+	mkdir -p $(DESTDIR)$(PREFIX)/bin
+	cp -f $(BIN) $(DESTDIR)$(PREFIX)/bin
+	chmod 755 $(DESTDIR)$(PREFIX)/bin/darkirc
+
+uninstall:
+	rm -f $(DESTDIR)$(PREFIX)/bin/darkirc
+
+.PHONY: all clean install uninstall

+ 34 - 0
bin/faucetd/Makefile

@@ -0,0 +1,34 @@
+.POSIX:
+
+# Install prefix
+PREFIX = $(HOME)/.cargo
+
+# Cargo binary
+CARGO = cargo +nightly
+
+SRC = \
+	Cargo.toml \
+	../../Cargo.toml \
+	$(shell find src -type f) \
+	$(shell find ../../src -type f) \
+
+BIN = ../../faucetd
+
+all: $(BIN)
+
+$(BIN): $(SRC)
+	$(CARGO) build $(TARGET_PRFX)$(RUST_TARGET) --release --package faucetd
+	cp -f ../../target/$(RUST_TARGET)/release/faucetd $@
+
+clean:
+	rm -f $(BIN)
+
+install: all
+	mkdir -p $(DESTDIR)$(PREFIX)/bin
+	cp -f $(BIN) $(DESTDIR)$(PREFIX)/bin
+	chmod 755 $(DESTDIR)$(PREFIX)/bin/faucetd
+
+uninstall:
+	rm -f $(DESTDIR)$(PREFIX)/bin/faucetd
+
+.PHONY: all clean install uninstall

+ 34 - 0
bin/genev/genev-cli/Makefile

@@ -0,0 +1,34 @@
+.POSIX:
+
+# Install prefix
+PREFIX = $(HOME)/.cargo
+
+# Cargo binary
+CARGO = cargo +nightly
+
+SRC = \
+	Cargo.toml \
+	../../../Cargo.toml \
+	$(shell find src -type f) \
+	$(shell find ../../../src -type f) \
+
+BIN = ../../../genev
+
+all: $(BIN)
+
+$(BIN): $(SRC)
+	$(CARGO) build $(TARGET_PRFX)$(RUST_TARGET) --release --package genev
+	cp -f ../../../target/$(RUST_TARGET)/release/genev $@
+
+clean:
+	rm -f $(BIN)
+
+install: all
+	mkdir -p $(DESTDIR)$(PREFIX)/bin
+	cp -f $(BIN) $(DESTDIR)$(PREFIX)/bin
+	chmod 755 $(DESTDIR)$(PREFIX)/bin/genev
+
+uninstall:
+	rm -f $(DESTDIR)$(PREFIX)/bin/genev
+
+.PHONY: all clean install uninstall

+ 34 - 0
bin/genev/genevd/Makefile

@@ -0,0 +1,34 @@
+.POSIX:
+
+# Install prefix
+PREFIX = $(HOME)/.cargo
+
+# Cargo binary
+CARGO = cargo +nightly
+
+SRC = \
+	Cargo.toml \
+	../../../Cargo.toml \
+	$(shell find src -type f) \
+	$(shell find ../../../src -type f) \
+
+BIN = ../../../genevd
+
+all: $(BIN)
+
+$(BIN): $(SRC)
+	$(CARGO) build $(TARGET_PRFX)$(RUST_TARGET) --release --package genevd
+	cp -f ../../../target/$(RUST_TARGET)/release/genevd $@
+
+clean:
+	rm -f $(BIN)
+
+install: all
+	mkdir -p $(DESTDIR)$(PREFIX)/bin
+	cp -f $(BIN) $(DESTDIR)$(PREFIX)/bin
+	chmod 755 $(DESTDIR)$(PREFIX)/bin/genevd
+
+uninstall:
+	rm -f $(DESTDIR)$(PREFIX)/bin/genevd
+
+.PHONY: all clean install uninstall

+ 0 - 0
bin/genev/genev_config.toml → bin/genev/genevd/genev_config.toml


+ 1 - 1
bin/genev/genevd/src/main.rs

@@ -41,7 +41,7 @@ mod rpc;
 use rpc::JsonRpcInterface;
 
 const CONFIG_FILE: &str = "genev_config.toml";
-const CONFIG_FILE_CONTENTS: &str = include_str!("../../genev_config.toml");
+const CONFIG_FILE_CONTENTS: &str = include_str!("../genev_config.toml");
 
 #[derive(Clone, Debug, Deserialize, StructOpt, StructOptToml)]
 #[serde(default)]

+ 34 - 0
bin/lilith/Makefile

@@ -0,0 +1,34 @@
+.POSIX:
+
+# Install prefix
+PREFIX = $(HOME)/.cargo
+
+# Cargo binary
+CARGO = cargo +nightly
+
+SRC = \
+	Cargo.toml \
+	../../Cargo.toml \
+	$(shell find src -type f) \
+	$(shell find ../../src -type f) \
+
+BIN = ../../lilith
+
+all: $(BIN)
+
+$(BIN): $(SRC)
+	$(CARGO) build $(TARGET_PRFX)$(RUST_TARGET) --release --package lilith
+	cp -f ../../target/$(RUST_TARGET)/release/lilith $@
+
+clean:
+	rm -f $(BIN)
+
+install: all
+	mkdir -p $(DESTDIR)$(PREFIX)/bin
+	cp -f $(BIN) $(DESTDIR)$(PREFIX)/bin
+	chmod 755 $(DESTDIR)$(PREFIX)/bin/lilith
+
+uninstall:
+	rm -f $(DESTDIR)$(PREFIX)/bin/lilith
+
+.PHONY: all clean install uninstall

+ 0 - 3
bin/tau/README.md

@@ -1,3 +0,0 @@
-# Tau
-
-see [Darkfi Book](https://darkrenaissance.github.io/darkfi/misc/tau.html) for the installation guide.

+ 34 - 0
bin/tau/tau-cli/Makefile

@@ -0,0 +1,34 @@
+.POSIX:
+
+# Install prefix
+PREFIX = $(HOME)/.cargo
+
+# Cargo binary
+CARGO = cargo +nightly
+
+SRC = \
+	Cargo.toml \
+	../../../Cargo.toml \
+	$(shell find src -type f) \
+	$(shell find ../../../src -type f) \
+
+BIN = ../../../tau
+
+all: $(BIN)
+
+$(BIN): $(SRC)
+	$(CARGO) build $(TARGET_PRFX)$(RUST_TARGET) --release --package tau
+	cp -f ../../../target/$(RUST_TARGET)/release/tau $@
+
+clean:
+	rm -f $(BIN)
+
+install: all
+	mkdir -p $(DESTDIR)$(PREFIX)/bin
+	cp -f $(BIN) $(DESTDIR)$(PREFIX)/bin
+	chmod 755 $(DESTDIR)$(PREFIX)/bin/tau
+
+uninstall:
+	rm -f $(DESTDIR)$(PREFIX)/bin/tau
+
+.PHONY: all clean install uninstall

+ 1 - 1
bin/tau/taud/Cargo.toml

@@ -17,7 +17,7 @@ name = "taud"
 path = "src/main.rs"
 
 [dependencies]
-darkfi = { path = "../../../", features = ["event-graph", "rpc", "bs58"]}
+darkfi = { path = "../../../", features = ["event-graph", "rpc", "bs58", "async-serial"]}
 darkfi-serial = { path = "../../../src/serial" }
 
 # Misc

+ 34 - 0
bin/tau/taud/Makefile

@@ -0,0 +1,34 @@
+.POSIX:
+
+# Install prefix
+PREFIX = $(HOME)/.cargo
+
+# Cargo binary
+CARGO = cargo +nightly
+
+SRC = \
+	Cargo.toml \
+	../../../Cargo.toml \
+	$(shell find src -type f) \
+	$(shell find ../../../src -type f) \
+
+BIN = ../../../taud
+
+all: $(BIN)
+
+$(BIN): $(SRC)
+	$(CARGO) build $(TARGET_PRFX)$(RUST_TARGET) --release --package taud
+	cp -f ../../../target/$(RUST_TARGET)/release/taud $@
+
+clean:
+	rm -f $(BIN)
+
+install: all
+	mkdir -p $(DESTDIR)$(PREFIX)/bin
+	cp -f $(BIN) $(DESTDIR)$(PREFIX)/bin
+	chmod 755 $(DESTDIR)$(PREFIX)/bin/taud
+
+uninstall:
+	rm -f $(DESTDIR)$(PREFIX)/bin/taud
+
+.PHONY: all clean install uninstall

+ 1 - 1
bin/tau/taud/src/settings.rs

@@ -24,7 +24,7 @@ use url::Url;
 use darkfi::net::settings::SettingsOpt;
 
 pub const CONFIG_FILE: &str = "taud_config.toml";
-pub const CONFIG_FILE_CONTENTS: &str = include_str!("../../taud_config.toml");
+pub const CONFIG_FILE_CONTENTS: &str = include_str!("../taud_config.toml");
 
 /// taud cli
 #[derive(Clone, Debug, Deserialize, StructOpt, StructOptToml)]

+ 0 - 0
bin/tau/taud_config.toml → bin/tau/taud/taud_config.toml


+ 0 - 16
contrib/compile_all_bins.sh

@@ -1,16 +0,0 @@
-#!/bin/sh
-set -e
-
-CARGO="${CARGO:-cargo +nightly}"
-
-toplevel="$(git rev-parse --show-toplevel)"
-dirs="$(grep '"bin/' "$toplevel/Cargo.toml" | grep -v '#' | tr -d '", \t')"
-
-bins=""
-for i in $dirs; do
-	bins="$bins $(grep '^name = ' "$i/Cargo.toml" | cut -d' ' -f3 | tr -d '"')"
-done
-
-bins="$(echo "$bins" | tr ' ' '\n' | sort -u | tr '\n' ' ')"
-
-make CARGO="$CARGO" BINS="$bins"

+ 4 - 1
src/util/time.rs

@@ -18,7 +18,10 @@
 
 use std::{fmt, time::UNIX_EPOCH};
 
-use darkfi_serial::{async_trait, SerialDecodable, SerialEncodable};
+#[cfg(feature = "async-serial")]
+use darkfi_serial::async_trait;
+
+use darkfi_serial::{SerialDecodable, SerialEncodable};
 
 use crate::Result;