40 lines
878 B
Makefile
40 lines
878 B
Makefile
# -*- mode: makefile -*-
|
|
|
|
PROJECTNAME := client
|
|
GO_LDFLAGS_STATIC=-ldflags "-w $(CTIMEVAR) -extldflags -static"
|
|
GO := go
|
|
|
|
all: build fmt lint test
|
|
|
|
.PHONY: fmt
|
|
fmt: ## Verifies all files have been `gofmt`ed.
|
|
@echo "+ $@"
|
|
$(eval var = $(shell gofmt -s -l . | grep -v vendor | tee /dev/stderr))
|
|
@if [ ! -z "${var}" ]; then exit 1; fi
|
|
|
|
|
|
.PHONY: build
|
|
build: ## Builds a static executable.
|
|
@echo "+ $@"
|
|
CGO_ENABLED=0 $(GO) build -mod=vendor \
|
|
-o $(PROJECTNAME) \
|
|
-tags "static_build netgo" \
|
|
-installsuffix netgo ${GO_LDFLAGS_STATIC} .;
|
|
|
|
|
|
.PHONY: test
|
|
test: ## Generates test certificates & run unit tests.
|
|
go vet -mod=vendor
|
|
go test -v -mod=vendor
|
|
|
|
|
|
.PHONY: lint
|
|
lint: ## Verifies `golint` passes.
|
|
@echo "+ $@"
|
|
$(eval var = $(shell golint ./... | grep -v vendor | tee /dev/stderr))
|
|
@if [ ! -z "${var}" ]; then exit 1; fi
|
|
|
|
.PHONY: clean
|
|
clean:
|
|
rm -f $(PROJECTNAME)
|