Makefile 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. .POSIX:
  2. # Install prefix
  3. PREFIX = $(HOME)/.cargo
  4. # Cargo binary
  5. CARGO = cargo +nightly
  6. # Compile target
  7. RUST_TARGET = $(shell rustc -Vv | grep '^host: ' | cut -d' ' -f2)
  8. # Uncomment when doing musl static builds
  9. #RUSTFLAGS = -C target-feature=+crt-static -C link-self-contained=yes
  10. SRC = \
  11. Cargo.toml \
  12. ../../../Cargo.toml \
  13. $(shell find src -type f -name '*.rs') \
  14. $(shell find ../../../src -type f -name '*.rs') \
  15. BIN = $(shell grep '^name = ' Cargo.toml | sed 1q | cut -d' ' -f3 | tr -d '"')
  16. all: $(BIN) bundle_contracts_src
  17. $(BIN): $(SRC)
  18. RUSTFLAGS="$(RUSTFLAGS)" $(CARGO) build --target=$(RUST_TARGET) --release --package $@
  19. # TODO: Update target path to darkfi project workspace once explorer is transitioned to bin
  20. cp -f target/$(RUST_TARGET)/release/$@ $@
  21. cp -f target/$(RUST_TARGET)/release/$@ ../../../$@
  22. clean:
  23. RUSTFLAGS="$(RUSTFLAGS)" $(CARGO) clean --target=$(RUST_TARGET) --release --package $(BIN)
  24. rm -f $(BIN) ../../../$(BIN)
  25. rm -rf native_contracts_src
  26. install: all
  27. mkdir -p $(DESTDIR)$(PREFIX)/bin
  28. cp -f $(BIN) $(DESTDIR)$(PREFIX)/bin
  29. chmod 755 $(DESTDIR)$(PREFIX)/bin/$(BIN)
  30. uninstall:
  31. rm -f $(DESTDIR)$(PREFIX)/bin/$(BIN)
  32. bundle_contracts_src:
  33. @mkdir -p $(CURDIR)/native_contracts_src
  34. @(cd ../../../src && \
  35. tar -cf $(CURDIR)/native_contracts_src/deployooor_contract_src.tar -C contract/deployooor/src --transform 's,^./,,' . && \
  36. tar -cf $(CURDIR)/native_contracts_src/dao_contract_src.tar -C contract/dao/src --transform 's,^./,,' . 2>/dev/null && \
  37. find contract/dao/proof -name '*.zk' -exec tar -rf $(CURDIR)/native_contracts_src/dao_contract_src.tar --transform 's,^.*proof/,proof/,' {} + && \
  38. tar -cf $(CURDIR)/native_contracts_src/money_contract_src.tar -C contract/money/src --transform 's,^./,,' . && \
  39. find contract/money/proof -name '*.zk' -exec tar -rf $(CURDIR)/native_contracts_src/money_contract_src.tar --transform 's,^.*proof/,proof/,' {} + \
  40. )
  41. .PHONY: all clean install uninstall bundle_contracts_src