65 lines
No EOL
1.1 KiB
Makefile
65 lines
No EOL
1.1 KiB
Makefile
# SPDX-License-Identifier: BSD-3-Clause
|
|
|
|
HASH := $(shell git describe --always --dirty || echo "UNKNOWN")
|
|
VER := "git-$(HASH)"
|
|
|
|
CGO_ENABLED = 0
|
|
GO := go
|
|
GOFLAGS := -ldflags "-s -w -X 'main.version=$(VER)'"
|
|
SCDOC := scdoc
|
|
|
|
PREFIX := /usr/local
|
|
BINPATH := $(PREFIX)/bin
|
|
MANPATH := $(PREFIX)/share/man
|
|
|
|
PROG := awl
|
|
ifeq ($(OS),Windows_NT)
|
|
EXE := $(PROG).exe
|
|
else
|
|
EXE := $(PROG)
|
|
endif
|
|
|
|
.PHONY: clean lint
|
|
|
|
# hehe
|
|
all: $(PROG)
|
|
|
|
$(PROG): lint
|
|
$(GO) build -o $(EXE) $(GOFLAGS) .
|
|
|
|
doc: doc/awl.1.md
|
|
$(SCDOC) < doc/$(PROG).1.md > doc/$(PROG).1
|
|
|
|
test: coverage/coverage.out
|
|
$(GO) test -v -cover -coverprofile=coverage/coverage.out ./...
|
|
|
|
cover: test
|
|
$(GO) tool cover -func=coverage/coverage.out
|
|
$(GO) tool cover -html=coverage/coverage.out -o coverage/cover.html
|
|
|
|
fmt: *.go
|
|
gofmt -w -s .
|
|
|
|
vet: *.go
|
|
$(GO) vet ./...
|
|
|
|
lint: fmt vet
|
|
-golangci-lint run
|
|
|
|
ifeq ($(OS),Windows_NT)
|
|
install:
|
|
$(GO) install $(GOFLAGS) .
|
|
else
|
|
install: $(PROG)
|
|
install $(PROG) $(BINPATH)
|
|
endif
|
|
|
|
|
|
install_doc: doc
|
|
install doc/$(PROG).1 $(MANPATH)/man1
|
|
@echo ""
|
|
@echo "Make sure to update your manual database"
|
|
@echo "'sudo mandb' on Debian/Ubuntu"
|
|
|
|
clean:
|
|
$(GO) clean
|