Makefile 912 B

1234567891011121314151617181920212223242526272829303132333435
  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. BIN = $(shell grep '^name = ' Cargo.toml | cut -d' ' -f3 | tr -d '"')
  11. all: $(BIN)
  12. $(BIN):
  13. RUSTFLAGS="$(RUSTFLAGS)" $(CARGO) build --target=$(RUST_TARGET) --release --package $@
  14. cp -f ../../target/$(RUST_TARGET)/release/$@ $@
  15. cp -f ../../target/$(RUST_TARGET)/release/$@ ../../$@
  16. clean:
  17. RUSTFLAGS="$(RUSTFLAGS)" $(CARGO) clean --target=$(RUST_TARGET) --release --package $(BIN)
  18. rm -f $(BIN) ../../$(BIN)
  19. install: all
  20. mkdir -p $(DESTDIR)$(PREFIX)/bin
  21. cp -f $(BIN) $(DESTDIR)$(PREFIX)/bin
  22. chmod 755 $(DESTDIR)$(PREFIX)/bin/$(BIN)
  23. uninstall:
  24. rm -f $(DESTDIR)$(PREFIX)/bin/$(BIN)
  25. .PHONY: all clean install uninstall