aboutsummaryrefslogtreecommitdiff
path: root/Makefile
diff options
context:
space:
mode:
Diffstat (limited to 'Makefile')
-rw-r--r--Makefile34
1 files changed, 34 insertions, 0 deletions
diff --git a/Makefile b/Makefile
new file mode 100644
index 0000000..ba8688c
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,34 @@
+LECTIO := lectio
+LECTIO_UI := lectio-ui
+PREFIX ?= $(HOME)/.local
+BINDIR := $(PREFIX)/bin
+
+.PHONY: help build install uninstall test vet fmt clean cross
+help: ## show this help
+ @grep -hE '^[a-z-]+:.*##' $(MAKEFILE_LIST) | sed -E 's/:.*## /\t/' | sort
+build: ## build ./lectio and ./lectio-ui
+ go build -o $(LECTIO) ./cmd/lectio
+ go build -o $(LECTIO_UI) ./cmd/lectio-ui
+install: ## build and install both to $(BINDIR)
+ @mkdir -p $(BINDIR)
+ go build -o $(BINDIR)/$(LECTIO) ./cmd/lectio
+ go build -o $(BINDIR)/$(LECTIO_UI) ./cmd/lectio-ui
+ @echo "installed $(BINDIR)/$(LECTIO) and $(BINDIR)/$(LECTIO_UI)"
+uninstall: ## remove installed binaries
+ rm -f $(BINDIR)/$(LECTIO) $(BINDIR)/$(LECTIO_UI)
+test: ## run tests
+ go test ./...
+vet: ## go vet
+ go vet ./...
+fmt: ## gofmt the tree
+ gofmt -w .
+clean: ## remove build artifacts
+ rm -f $(LECTIO) $(LECTIO_UI); rm -rf dist
+cross: ## cross-compile into dist/
+ @mkdir -p dist
+ @for t in linux/amd64 linux/arm64 darwin/arm64 darwin/amd64 windows/amd64; do \
+ os=$${t%/*}; arch=$${t#*/}; ext=; [ $$os = windows ] && ext=.exe; \
+ echo " $$os/$$arch"; \
+ GOOS=$$os GOARCH=$$arch go build -o dist/$(LECTIO)-$$os-$$arch$$ext ./cmd/lectio; \
+ GOOS=$$os GOARCH=$$arch go build -o dist/$(LECTIO_UI)-$$os-$$arch$$ext ./cmd/lectio-ui; \
+ done