Makefile 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. .POSIX:
  2. # Install prefix
  3. PREFIX = $(HOME)/.cargo
  4. # Cargo binary
  5. CARGO = cargo
  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. $(shell find ../../src/contract -type f -name '*.wasm')
  16. BIN = $(shell grep '^name = ' Cargo.toml | cut -d' ' -f3 | tr -d '"')
  17. all: $(BIN)
  18. $(BIN): $(SRC)
  19. RUSTFLAGS="$(RUSTFLAGS)" $(CARGO) build --target=$(RUST_TARGET) --release --package $@
  20. cp -f ../../target/$(RUST_TARGET)/release/$@ $@
  21. cp -f ../../target/$(RUST_TARGET)/release/$@ ../../$@
  22. clippy: all
  23. RUSTFLAGS="$(RUSTFLAGS)" $(CARGO) clippy --target=$(RUST_TARGET) --release --package $(BIN) --tests
  24. clean:
  25. RUSTFLAGS="$(RUSTFLAGS)" $(CARGO) clean --target=$(RUST_TARGET) --release --package $(BIN)
  26. rm -f $(BIN) ../../$(BIN)
  27. install: all
  28. mkdir -p $(DESTDIR)$(PREFIX)/bin
  29. cp -f $(BIN) $(DESTDIR)$(PREFIX)/bin
  30. chmod 755 $(DESTDIR)$(PREFIX)/bin/$(BIN)
  31. uninstall:
  32. rm -f $(DESTDIR)$(PREFIX)/bin/$(BIN)
  33. .PHONY: all clippy clean install uninstall