.DEFAULT_GOAL := build .PHONY: build fmt lint cli test clean coverage sloc VERSION := $(shell grep -o 'const Version = "[^"]*' internal/version/version.go | cut -d '"' -f 2) build: CGO_ENABLED="1" go build -o lib/libeduvpn_common-${VERSION}.so -buildmode=c-shared ./exports fmt: gofumpt -w . lint: golangci-lint run -E stylecheck,revive,gocritic ./... cli: go build -o eduvpn-common-cli ./cmd/cli test: go test -race ./... clean: rm -rf lib go clean coverage: go test -v -coverpkg=./... -coverprofile=common.cov ./... go tool cover -func common.cov sloc: tokei --exclude "*_test.go" -t=Go . || cloc --include-ext=go --not-match-f='_test.go' .