Makefile 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  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. BIN = $(shell grep '^name = ' Cargo.toml | cut -d' ' -f3 | tr -d '"')
  16. all: $(BIN)
  17. $(BIN): $(SRC)
  18. RUSTFLAGS="$(RUSTFLAGS)" $(CARGO) build --target=$(RUST_TARGET) --release --package $@
  19. cp -f ../../../target/$(RUST_TARGET)/release/$@ $@
  20. cp -f ../../../target/$(RUST_TARGET)/release/$@ ../../../$@
  21. clippy: all
  22. RUSTFLAGS="$(RUSTFLAGS)" $(CARGO) clippy --target=$(RUST_TARGET) --release --package $(BIN) --tests
  23. clean:
  24. rm -f $(BIN) ../../../$(BIN)
  25. install: all
  26. mkdir -p $(DESTDIR)$(PREFIX)/bin
  27. cp -f $(BIN) $(DESTDIR)$(PREFIX)/bin
  28. chmod 755 $(DESTDIR)$(PREFIX)/bin/$(BIN)
  29. uninstall:
  30. rm -f $(DESTDIR)$(PREFIX)/bin/$(BIN)
  31. .PHONY: all clean install uninstall