61 lines
1.4 KiB
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
|