linkerd2-proxy/Makefile

75 lines
1.4 KiB
Makefile

TARGET = target/debug
ifdef CARGO_RELEASE
RELEASE = --release
TARGET = target/release
endif
ifndef PACKAGE_VERSION
PACKAGE_VERSION = $(shell git rev-parse --short HEAD)
endif
TARGET_BIN = $(TARGET)/linkerd2-proxy
PKG_ROOT = $(TARGET)/package
PKG_NAME = linkerd2-proxy-$(PACKAGE_VERSION)
PKG_BASE = $(PKG_ROOT)/$(PKG_NAME)
PKG = $(PKG_NAME).tar.gz
SHASUM = shasum -a 256
CARGO = cargo
ifdef CARGO_VERBOSE
CARGO = cargo --verbose
endif
CARGO_BUILD = $(CARGO) build --frozen $(RELEASE)
TEST_FLAGS =
ifndef TEST_FLAKEY
TEST_FLAGS = --no-default-features
endif
CARGO_TEST = $(CARGO) test --frozen $(RELEASE) $(TEST_FLAGS)
DOCKER = docker
DOCKER_BUILD = docker build
ifdef DOCKER_TAG
DOCKER_BUILD = docker build -t $(DOCKER_TAG)
endif
$(TARGET_BIN): fetch
$(CARGO_BUILD)
$(PKG_ROOT)/$(PKG): $(TARGET_BIN)
mkdir -p $(PKG_BASE)/bin
cp LICENSE $(PKG_BASE)
cp $(TARGET_BIN) $(PKG_BASE)/bin
cd $(PKG_ROOT) && \
tar -czvf $(PKG) $(PKG_NAME) && \
($(SHASUM) $(PKG) >$(PKG_NAME).txt) && \
cp $(PKG_NAME).txt latest.txt
rm -rf $(PKG_BASE)
.PHONY: fetch
fetch: Cargo.lock
$(CARGO) fetch --locked
.PHONY: build
build: $(TARGET_BIN)
.PHONY: test
test: fetch
$(CARGO_TEST)
.PHONY: package
package: $(PKG_ROOT)/$(PKG)
.PHONY: clean-package
clean-package:
rm -rf $(PKG_ROOT)
.PHONY: docker
docker: Dockerfile Cargo.lock
$(DOCKER_BUILD) .
.PHONY: all
all: build test