/ bin / genev / genev-cli / 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  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