experimental-cli/Makefile

61 lines
1.4 KiB
Makefile

GOOS?=linux
GOARCH?=amd64
EXT?=
APP?=pigeon-cli
NAME?=$(APP)-$(GOOS)-$(GOARCH)$(EXT)
PREFIX?=$(CURDIR)
SRC?=$(PREFIX)/project
TARGET?=$(PREFIX)/targets
BUILD_TARGET?=$(TARGET)/builds
TEST_TARGET?=$(TARGET)/tests
TESTDATA?=$(SRC)/testdata
FLAGS?=
dependencies:
cd $(SRC) && go mod download -x
$(BUILD_TARGET)/$(NAME):
cd $(SRC) && \
GOOS=$(GOOS) GOARCH=$(GOARCH) go build -o $(BUILD_TARGET)/$(NAME)
build-win-32: GOOS=windows
build-win-32: GOARCH=386
build-win-32: EXT=.exe
build-win-32: $(BUILD_TARGET)/$(NAME);
build-win-64: GOOS=windows
build-win-64: GOARCH=amd64
build-win-64: EXT=.exe
build-win-64: $(BUILD_TARGET)/$(NAME);
build-mac: GOOS=darwin
build-mac: GOARCH=amd64
build-mac: $(BUILD_TARGET)/$(NAME);
build-linux-32: GOOS=linux
build-linux-32: GOARCH=386
build-linux-32: $(BUILD_TARGET)/$(NAME);
build-linux-64: GOOS=linux
build-linux-64: GOARCH=amd64
build-linux-64: $(BUILD_TARGET)/$(NAME);
build-linux-arm: GOOS=linux
build-linux-arm: GOARCH=arm
build-linux-arm: $(BUILD_TARGET)/$(NAME);
build: $(BUILD_TARGET)/$(NAME);
test: clean-test
mkdir -p $(TESTDATA)
cd $(SRC) && \
go test $(FLAGS) ./...
cover: FLAGS += -coverprofile=$(TEST_TARGET)/coverage.out
cover: clean-cover test
cd $(SRC) && \
go cover -html $(TEST_TARGET)/coverage.out -o $(TEST_TARGET)/coverage.html
clean-build:
rm -rf $(BUILD_TARGET)/*
clean-test:
rm -rf $(TESTDATA)
clean-cover:
rm -rf $(TEST_TARGET)/*
clean: clean-build clean-test clean-cover