Przeglądaj źródła

explorer: introduce initial makefile for building/installing explorer

This commit introduces an initial Makefile that facilitates the building and installation of the block explorer. The target directory for copying files is currently set to the blockchain-explorer directory but will be updated to the `darkfi` project directory once the explorer is integrated into the Darkfi workspace.
kalm 1 rok temu
rodzic
commit
0f67f19701
1 zmienionych plików z 42 dodań i 0 usunięć
  1. 42 0
      script/research/blockchain-explorer/Makefile

+ 42 - 0
script/research/blockchain-explorer/Makefile

@@ -0,0 +1,42 @@
+.POSIX:
+
+# Install prefix
+PREFIX = $(HOME)/.cargo
+
+# Cargo binary
+CARGO = cargo +nightly
+
+# Compile target
+RUST_TARGET = $(shell rustc -Vv | grep '^host: ' | cut -d' ' -f2)
+# Uncomment when doing musl static builds
+#RUSTFLAGS = -C target-feature=+crt-static -C link-self-contained=yes
+
+SRC = \
+	Cargo.toml \
+	../../../Cargo.toml \
+	$(shell find src -type f -name '*.rs') \
+	$(shell find ../../../src -type f -name '*.rs') \
+
+BIN = $(shell grep '^name = ' Cargo.toml | sed 1q | cut -d' ' -f3 | tr -d '"')
+
+all: $(BIN)
+
+$(BIN): $(SRC)
+	RUSTFLAGS="$(RUSTFLAGS)" $(CARGO) build --target=$(RUST_TARGET) --release --package $@
+    # TODO: Update target path to darkfi project workspace once explorer is transitioned to bin
+	cp -f target/$(RUST_TARGET)/release/$@ $@
+	cp -f target/$(RUST_TARGET)/release/$@ ../../../$@
+
+clean:
+	RUSTFLAGS="$(RUSTFLAGS)" $(CARGO) clean --target=$(RUST_TARGET) --release --package $(BIN)
+	rm -f $(BIN) ../../../$(BIN)
+
+install: all
+	mkdir -p $(DESTDIR)$(PREFIX)/bin
+	cp -f $(BIN) $(DESTDIR)$(PREFIX)/bin
+	chmod 755 $(DESTDIR)$(PREFIX)/bin/$(BIN)
+
+uninstall:
+	rm -f $(DESTDIR)$(PREFIX)/bin/$(BIN)
+
+.PHONY: all clean install uninstall