From 38808fb493535d3fa25610503560f4264ff931b8 Mon Sep 17 00:00:00 2001 From: Jose Quintana Date: Mon, 2 Mar 2020 01:35:29 +0100 Subject: [PATCH] refactor: local linux and darwin makefile tasks --- .gitignore | 1 + Makefile | 63 +++++++++++++++++++++++++++++++++++++++++++++------------------ 2 files changed, 46 insertions(+), 18 deletions(-) diff --git a/.gitignore b/.gitignore index 8ed95aa..5e01fdd 100644 --- a/.gitignore +++ b/.gitignore @@ -7,3 +7,4 @@ **/*.iml **/.idea **/.DS_Store +release diff --git a/Makefile b/Makefile index 914f168..e631cb6 100644 --- a/Makefile +++ b/Makefile @@ -1,6 +1,6 @@ PKG_TARGET=x86_64-unknown-linux-musl PKG_TARGET_DARWIN=x86_64-apple-darwin -RUST_VERSION=$(shell rustc --version | cut -d ' ' -f2) +RUST_VERSION ?= $(shell rustc --version | cut -d ' ' -f2) PKG_BIN_PATH=./bin PKG_TMP_PATH=/tmp @@ -33,35 +33,62 @@ watch: .PHONY: watch build: + @rustc -vV @cargo build --release --target $(PKG_TARGET) .PHONY: build linux: - @docker run --rm \ - --user rust:rust \ - --volume ${PWD}:/home/rust/static-web-server \ + @docker run --rm -it \ + -v $(PWD):/home/rust/static-web-server \ + -v cargo-git:/home/rust/.cargo/git \ + -v cargo-registry:/home/rust/.cargo/registry \ + -v cargo-target:/home/rust/static-web-server/target \ +\ --workdir /home/rust/static-web-server \ joseluisq/rust-linux-darwin-builder:$(RUST_VERSION) \ - sh -c "rustc --version && \ - mkdir -p target bin && \ +\ + bash -c "\ + echo Building Linux release binary... && \ +\ + sudo chown -R rust:rust \ + /home/rust/.cargo/git \ + /home/rust/static-web-server/target \ + /home/rust/.cargo/registry && \ + sudo touch Cargo.lock && sudo chown rust:rust Cargo.lock && \ +\ + rustc -vV && \ cargo build --release --target $(PKG_TARGET) && \ - cp -rf ./target/$(PKG_TARGET)/release/$(PKG_NAME) $(PKG_BIN_PATH)/$(PKG_NAME)-linux && \ - strip $(PKG_BIN_PATH)/$(PKG_NAME)-linux && \ - du -sh $(PKG_BIN_PATH)/*" + du -sh ./target/$(PKG_TARGET)/release/$(PKG_NAME) && \ + sudo mkdir -p release && \ + sudo cp -rf ./target/$(PKG_TARGET)/release/$(PKG_NAME) release/$(PKG_NAME)-linux && \ + sudo chown -R rust:rust release/" .PHONY: linux darwin: - @docker run --rm \ - --user rust:rust \ - --volume ${PWD}:/home/rust/static-web-server \ + @docker run --rm -it \ + -v $(PWD):/home/rust/static-web-server \ + -v cargo-git:/home/rust/.cargo/git \ + -v cargo-registry:/home/rust/.cargo/registry \ + -v cargo-target:/home/rust/static-web-server/target \ +\ --workdir /home/rust/static-web-server \ - joseluisq/rust-linux-darwin-builder:$(RUST_VERSION) && \ - sh -c "rustc --version && \ - mkdir -p target bin && \ + joseluisq/rust-linux-darwin-builder:$(RUST_VERSION) \ +\ + bash -c "\ + echo Building Darwin release binary... && \ +\ + sudo chown -R rust:rust \ + /home/rust/.cargo/git \ + /home/rust/static-web-server/target \ + /home/rust/.cargo/registry && \ + sudo touch Cargo.lock && sudo chown rust:rust Cargo.lock && \ +\ + rustc -vV && \ cargo build --release --target $(PKG_TARGET_DARWIN) && \ - cp -rf ./target/$(PKG_TARGET_DARWIN)/release/$(PKG_NAME) $(PKG_BIN_PATH)/$(PKG_NAME)-darwin && \ - strip $(PKG_BIN_PATH)/$(PKG_NAME)-darwin && \ - du -sh $(PKG_BIN_PATH)/*" + du -sh ./target/$(PKG_TARGET_DARWIN)/release/$(PKG_NAME) && \ + sudo mkdir -p release && \ + sudo cp -rf ./target/$(PKG_TARGET_DARWIN)/release/$(PKG_NAME) release/$(PKG_NAME)-darwin && \ + sudo chown -R rust:rust release/" .PHONY: darwin ####################################### -- libgit2 1.7.2