aboutsummaryrefslogtreecommitdiff
path: root/Makefile
diff options
context:
space:
mode:
authorFuwn <[email protected]>2026-01-17 23:17:49 -0800
committerFuwn <[email protected]>2026-01-17 23:17:49 -0800
commit4bc6165258cd7b5b76ccb01aa75c7cefdc35d143 (patch)
treee7c3bb335a1efd48f82d365169e8b4a66b7abe1d /Makefile
downloadkaze-4bc6165258cd7b5b76ccb01aa75c7cefdc35d143.tar.xz
kaze-4bc6165258cd7b5b76ccb01aa75c7cefdc35d143.zip
feat: Initial commit
Diffstat (limited to 'Makefile')
-rw-r--r--Makefile86
1 files changed, 86 insertions, 0 deletions
diff --git a/Makefile b/Makefile
new file mode 100644
index 0000000..77e485a
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,86 @@
+.PHONY: build run dev clean test
+
+# Build variables
+VERSION ?= $(shell git describe --tags --always --dirty 2>/dev/null || echo "dev")
+COMMIT ?= $(shell git rev-parse --short HEAD 2>/dev/null || echo "none")
+DATE ?= $(shell date -u +"%Y-%m-%dT%H:%M:%SZ")
+LDFLAGS := -ldflags "-s -w -X main.version=$(VERSION) -X main.commit=$(COMMIT) -X main.date=$(DATE)"
+
+# Default target
+all: build
+
+# Build the binary
+build:
+ go build $(LDFLAGS) -o kaze ./cmd/kaze
+
+# Build for production (smaller binary)
+build-prod:
+ CGO_ENABLED=0 go build $(LDFLAGS) -o kaze ./cmd/kaze
+
+# Run the application
+run: build
+ ./kaze
+
+# Run with debug logging
+dev: build
+ ./kaze --debug
+
+# Clean build artifacts
+clean:
+ rm -f kaze
+ rm -f *.db *.db-shm *.db-wal
+
+# Run tests
+test:
+ go test -v ./...
+
+# Run tests with coverage
+test-cover:
+ go test -v -coverprofile=coverage.out ./...
+ go tool cover -html=coverage.out -o coverage.html
+
+# Format code
+fmt:
+ go fmt ./...
+
+# Lint code
+lint:
+ go vet ./...
+
+# Tidy dependencies
+tidy:
+ go mod tidy
+
+# Build for multiple platforms
+build-all: build-linux build-darwin build-windows
+
+build-linux:
+ GOOS=linux GOARCH=amd64 CGO_ENABLED=0 go build $(LDFLAGS) -o dist/kaze-linux-amd64 ./cmd/kaze
+ GOOS=linux GOARCH=arm64 CGO_ENABLED=0 go build $(LDFLAGS) -o dist/kaze-linux-arm64 ./cmd/kaze
+
+build-darwin:
+ GOOS=darwin GOARCH=amd64 CGO_ENABLED=0 go build $(LDFLAGS) -o dist/kaze-darwin-amd64 ./cmd/kaze
+ GOOS=darwin GOARCH=arm64 CGO_ENABLED=0 go build $(LDFLAGS) -o dist/kaze-darwin-arm64 ./cmd/kaze
+
+build-windows:
+ GOOS=windows GOARCH=amd64 CGO_ENABLED=0 go build $(LDFLAGS) -o dist/kaze-windows-amd64.exe ./cmd/kaze
+
+# Docker build
+docker:
+ docker build -t kaze:$(VERSION) .
+
+# Help
+help:
+ @echo "Available targets:"
+ @echo " build - Build the binary"
+ @echo " build-prod - Build optimized production binary"
+ @echo " run - Build and run"
+ @echo " dev - Build and run with debug logging"
+ @echo " clean - Remove build artifacts and databases"
+ @echo " test - Run tests"
+ @echo " test-cover - Run tests with coverage report"
+ @echo " fmt - Format code"
+ @echo " lint - Lint code"
+ @echo " tidy - Tidy dependencies"
+ @echo " build-all - Build for all platforms"
+ @echo " docker - Build Docker image"