66 lines
1.6 KiB
Makefile
66 lines
1.6 KiB
Makefile
CC=go
|
|
BUILD=build -v -trimpath
|
|
VERSION=$(shell cat VERSION)
|
|
GCFLAGS=-gcflags '-e'
|
|
LDFLAGS=-ldflags '-buildid=$(VERSION) -X main.version=$(VERSION) -s -w'
|
|
PROGRAM=cachefs
|
|
CMD=-o $(PROGRAM) cmd/$(PROGRAM)/main.go
|
|
MD_PROGRAM=metadatagen
|
|
MD_CMD=-o $(MD_PROGRAM) cmd/$(MD_PROGRAM)/main.go
|
|
CTL_PROGRAM=cachectl
|
|
CTL_CMD=-o $(CTL_PROGRAM) cmd/$(CTL_PROGRAM)/main.go
|
|
ENV=CGO_ENABLED=0 GO111MODULE=on
|
|
|
|
all: $(PROGRAM) $(MD_PROGRAM) $(CTL_PROGRAM)
|
|
|
|
setup:
|
|
$(CC) install github.com/client9/misspell/cmd/misspell@latest
|
|
$(CC) install honnef.co/go/tools/cmd/staticcheck@latest
|
|
|
|
release: clean gofmt codeqa
|
|
$(ENV) $(CC) $(BUILD) $(GCFLAGS) $(LDFLAGS) $(CMD)
|
|
|
|
release-vendor: clean gofmt codeqa
|
|
$(ENV) $(CC) $(BUILD) -mod=vendor $(GCFLAGS) $(LDFLAGS) $(CMD)
|
|
|
|
vendor: clean gofmt
|
|
$(ENV) $(CC) $(BUILD) -mod=vendor $(GCFLAGS) $(LDFLAGS) $(CMD)
|
|
|
|
$(PROGRAM): clean gofmt
|
|
$(ENV) $(CC) $(BUILD) $(GCFLAGS) $(LDFLAGS) $(CMD)
|
|
|
|
$(MD_PROGRAM): clean gofmt
|
|
$(ENV) $(CC) $(BUILD) $(GCFLAGS) $(LDFLAGS) $(MD_CMD)
|
|
|
|
$(CTL_PROGRAM): clean gofmt
|
|
$(ENV) $(CC) $(BUILD) $(GCFLAGS) $(LDFLAGS) $(CTL_CMD)
|
|
|
|
clean:
|
|
$(CC) clean -x
|
|
|
|
gofmt:
|
|
$(CC) fmt ./...
|
|
|
|
codeqa: govet misspell test
|
|
|
|
govet:
|
|
$(CC) vet ./...
|
|
|
|
misspell:
|
|
$(GOPATH)/bin/misspell cmd/* pkg/* Makefile README.md
|
|
|
|
staticcheck:
|
|
$(GOPATH)/bin/staticcheck ./...
|
|
|
|
test:
|
|
ifeq ($(shell go env GOARCH), $(shell go env GOHOSTARCH))
|
|
ifeq ($(shell go env GOOS), $(shell go env GOHOSTOS))
|
|
$(CC) test ./...
|
|
else
|
|
$(info skipping tests of other platforms)
|
|
endif
|
|
else
|
|
$(info skipping tests of other platforms)
|
|
endif
|
|
|
|
.PHONY: setup release release-vendor vendor build clean codeqa gofmt govet misspell staticcheck test
|