Makefile
1 .POSIX: 2 3 # Install prefix 4 PREFIX = $(HOME)/.cargo 5 6 # Cargo binary 7 CARGO = cargo 8 9 # Compile target 10 RUST_TARGET = $(shell rustc -Vv | grep '^host: ' | cut -d' ' -f2) 11 # Uncomment when doing musl static builds 12 #RUSTFLAGS = -C target-feature=+crt-static -C link-self-contained=yes 13 14 SRC = \ 15 Cargo.toml \ 16 ../../../Cargo.toml \ 17 $(shell find src -type f -name '*.rs') \ 18 $(shell find ../../../src -type f -name '*.rs') \ 19 20 BIN = $(shell grep '^name = ' Cargo.toml | cut -d' ' -f3 | tr -d '"') 21 22 all: $(BIN) 23 24 $(BIN): $(SRC) 25 RUSTFLAGS="$(RUSTFLAGS)" $(CARGO) build --target=$(RUST_TARGET) --release --package $@ 26 cp -f ../../../target/$(RUST_TARGET)/release/$@ $@ 27 cp -f ../../../target/$(RUST_TARGET)/release/$@ ../../../$@ 28 29 clean: 30 RUSTFLAGS="$(RUSTFLAGS)" $(CARGO) clean --target=$(RUST_TARGET) --release --package $(BIN) 31 rm -f $(BIN) ../../../$(BIN) 32 33 install: all 34 mkdir -p $(DESTDIR)$(PREFIX)/bin 35 cp -f $(BIN) $(DESTDIR)$(PREFIX)/bin 36 chmod 755 $(DESTDIR)$(PREFIX)/bin/$(BIN) 37 38 uninstall: 39 rm -f $(DESTDIR)$(PREFIX)/bin/$(BIN) 40 41 .PHONY: all clean install uninstall