/ bin / fud / fu / Makefile
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  clippy: all
30  	RUSTFLAGS="$(RUSTFLAGS)" $(CARGO) clippy --target=$(RUST_TARGET) --release --package $(BIN) --tests
31  
32  clean:
33  	rm -f $(BIN) ../../../$(BIN)
34  
35  install: all
36  	mkdir -p $(DESTDIR)$(PREFIX)/bin
37  	cp -f $(BIN) $(DESTDIR)$(PREFIX)/bin
38  	chmod 755 $(DESTDIR)$(PREFIX)/bin/$(BIN)
39  
40  uninstall:
41  	rm -f $(DESTDIR)$(PREFIX)/bin/$(BIN)
42  
43  .PHONY: all clean install uninstall
44