2025-08-24 18:24:08 +02:00
|
|
|
PACKAGE_NAME=skyview
|
2025-08-23 22:09:37 +02:00
|
|
|
BUILD_DIR=build
|
2025-08-23 23:51:37 +02:00
|
|
|
VERSION=$(shell git describe --tags --always --dirty 2>/dev/null || echo "dev")
|
2025-08-24 18:24:08 +02:00
|
|
|
LDFLAGS=-w -s -X main.version=$(VERSION)
|
2025-08-23 22:09:37 +02:00
|
|
|
|
2025-08-24 18:24:08 +02:00
|
|
|
.PHONY: build build-all clean run dev test lint deb deb-clean install-deps
|
2025-08-23 22:09:37 +02:00
|
|
|
|
2025-08-24 18:24:08 +02:00
|
|
|
# Build main skyview binary
|
2025-08-23 22:09:37 +02:00
|
|
|
build:
|
2025-08-24 18:24:08 +02:00
|
|
|
@echo "Building skyview..."
|
2025-08-23 22:09:37 +02:00
|
|
|
@mkdir -p $(BUILD_DIR)
|
2025-09-01 19:53:07 +02:00
|
|
|
go build -ldflags="$(LDFLAGS)" -o $(BUILD_DIR)/skyview ./cmd/skyview
|
2025-08-24 18:24:08 +02:00
|
|
|
|
|
|
|
|
# Build beast-dump utility binary
|
|
|
|
|
build-beast-dump:
|
|
|
|
|
@echo "Building beast-dump..."
|
|
|
|
|
@mkdir -p $(BUILD_DIR)
|
2025-09-01 19:53:07 +02:00
|
|
|
go build -ldflags="$(LDFLAGS)" -o $(BUILD_DIR)/beast-dump ./cmd/beast-dump
|
2025-08-24 18:24:08 +02:00
|
|
|
|
2025-08-31 16:48:28 +02:00
|
|
|
# Build skyview-data database management binary
|
|
|
|
|
build-skyview-data:
|
|
|
|
|
@echo "Building skyview-data..."
|
|
|
|
|
@mkdir -p $(BUILD_DIR)
|
2025-09-01 19:53:07 +02:00
|
|
|
go build -ldflags="$(LDFLAGS)" -o $(BUILD_DIR)/skyview-data ./cmd/skyview-data
|
2025-08-31 16:48:28 +02:00
|
|
|
|
2025-08-24 18:24:08 +02:00
|
|
|
# Build all binaries
|
2025-08-31 16:48:28 +02:00
|
|
|
build-all: build build-beast-dump build-skyview-data
|
2025-08-24 18:24:08 +02:00
|
|
|
@echo "Built all binaries successfully:"
|
|
|
|
|
@ls -la $(BUILD_DIR)/
|
2025-08-23 22:09:37 +02:00
|
|
|
|
|
|
|
|
clean:
|
|
|
|
|
@echo "Cleaning..."
|
|
|
|
|
@rm -rf $(BUILD_DIR)
|
|
|
|
|
go clean
|
|
|
|
|
|
|
|
|
|
run: build
|
|
|
|
|
@echo "Running $(BINARY_NAME)..."
|
|
|
|
|
@./$(BUILD_DIR)/$(BINARY_NAME)
|
|
|
|
|
|
|
|
|
|
dev:
|
|
|
|
|
@echo "Running in development mode..."
|
2025-08-23 23:51:37 +02:00
|
|
|
go run ./cmd/skyview
|
2025-08-23 22:09:37 +02:00
|
|
|
|
|
|
|
|
test:
|
|
|
|
|
@echo "Running tests..."
|
|
|
|
|
go test ./...
|
|
|
|
|
|
|
|
|
|
lint:
|
|
|
|
|
@echo "Running linter..."
|
|
|
|
|
@if command -v golangci-lint > /dev/null 2>&1; then \
|
|
|
|
|
golangci-lint run; \
|
|
|
|
|
else \
|
|
|
|
|
echo "golangci-lint not installed, skipping lint"; \
|
|
|
|
|
fi
|
|
|
|
|
|
2025-08-23 23:51:37 +02:00
|
|
|
# Debian package targets
|
|
|
|
|
deb:
|
|
|
|
|
@echo "Building Debian package..."
|
|
|
|
|
@./scripts/build-deb.sh
|
|
|
|
|
|
|
|
|
|
deb-clean:
|
|
|
|
|
@echo "Cleaning Debian package artifacts..."
|
|
|
|
|
@rm -f debian/usr/bin/skyview
|
|
|
|
|
@rm -rf build/*.deb
|
|
|
|
|
|
|
|
|
|
deb-install: deb
|
|
|
|
|
@echo "Installing Debian package..."
|
|
|
|
|
@if [ "$$EUID" -ne 0 ]; then \
|
|
|
|
|
echo "Please run as root: sudo make deb-install"; \
|
|
|
|
|
exit 1; \
|
|
|
|
|
fi
|
|
|
|
|
@dpkg -i build/skyview_*.deb || (apt-get update && apt-get -f install -y)
|
|
|
|
|
|
|
|
|
|
deb-remove:
|
|
|
|
|
@echo "Removing Debian package..."
|
|
|
|
|
@if [ "$$EUID" -ne 0 ]; then \
|
|
|
|
|
echo "Please run as root: sudo make deb-remove"; \
|
|
|
|
|
exit 1; \
|
|
|
|
|
fi
|
|
|
|
|
@dpkg -r skyview || true
|
|
|
|
|
|
|
|
|
|
# Docker/Podman targets
|
2025-08-23 22:09:37 +02:00
|
|
|
docker-build:
|
|
|
|
|
@echo "Building Docker image..."
|
|
|
|
|
docker build -t skyview .
|
|
|
|
|
|
|
|
|
|
podman-build:
|
|
|
|
|
@echo "Building Podman image..."
|
|
|
|
|
podman build -t skyview .
|
|
|
|
|
|
2025-08-23 23:51:37 +02:00
|
|
|
# Development targets
|
2025-08-23 22:09:37 +02:00
|
|
|
install-deps:
|
|
|
|
|
@echo "Installing Go dependencies..."
|
|
|
|
|
go mod tidy
|
|
|
|
|
|
2025-08-23 23:51:37 +02:00
|
|
|
format:
|
|
|
|
|
@echo "Formatting code..."
|
|
|
|
|
go fmt ./...
|
|
|
|
|
|
|
|
|
|
vet:
|
|
|
|
|
@echo "Running go vet..."
|
|
|
|
|
go vet ./...
|
|
|
|
|
|
|
|
|
|
# Combined quality check
|
|
|
|
|
check: format vet lint test
|
|
|
|
|
@echo "All checks passed!"
|
|
|
|
|
|
2025-08-31 16:48:28 +02:00
|
|
|
.DEFAULT_GOAL := build-all
|