52 lines
1.0 KiB
Makefile
52 lines
1.0 KiB
Makefile
.PHONY: build run install clean dev deps
|
|
|
|
BINARY=docman
|
|
VERSION=$(shell git describe --tags --always --dirty 2>/dev/null || echo "dev")
|
|
BUILD_DIR=build
|
|
|
|
# Build flags
|
|
LDFLAGS=-ldflags "-s -w -X main.Version=$(VERSION)"
|
|
CGO_CFLAGS=-DSQLITE_ENABLE_FTS5
|
|
TAGS=-tags "fts5"
|
|
|
|
build:
|
|
@mkdir -p $(BUILD_DIR)
|
|
CGO_CFLAGS="$(CGO_CFLAGS)" go build $(TAGS) $(LDFLAGS) -o $(BUILD_DIR)/$(BINARY) ./cmd/docman
|
|
|
|
run: build
|
|
./$(BUILD_DIR)/$(BINARY)
|
|
|
|
dev:
|
|
go run ./cmd/docman -port 8200
|
|
|
|
deps:
|
|
go mod download
|
|
go mod tidy
|
|
|
|
# Install to ~/bin
|
|
install: build
|
|
@mkdir -p $(HOME)/bin
|
|
cp $(BUILD_DIR)/$(BINARY) $(HOME)/bin/
|
|
@echo "Installed to $(HOME)/bin/$(BINARY)"
|
|
|
|
# Install systemd service
|
|
install-service:
|
|
@mkdir -p $(HOME)/.config/systemd/user
|
|
@envsubst < deploy/docman.service > $(HOME)/.config/systemd/user/docman.service
|
|
systemctl --user daemon-reload
|
|
systemctl --user enable docman
|
|
@echo "Service installed. Start with: systemctl --user start docman"
|
|
|
|
clean:
|
|
rm -rf $(BUILD_DIR)
|
|
|
|
# Development helpers
|
|
test:
|
|
go test -v ./...
|
|
|
|
lint:
|
|
golangci-lint run
|
|
|
|
fmt:
|
|
go fmt ./...
|