Files
ALR-updater/Makefile

83 lines
2.4 KiB
Makefile

.PHONY: build install clean test generate-plugins analyze-repo
# Версия и инфо
VERSION ?= $(shell git describe --tags --dirty --always 2>/dev/null || echo "dev")
BUILD_TIME ?= $(shell date -u '+%Y-%m-%d_%H:%M:%S')
GO_VERSION ?= $(shell go version | cut -d " " -f 3)
# Флаги линковки
LDFLAGS = -ldflags "\
-X main.Version=$(VERSION) \
-X main.BuildTime=$(BUILD_TIME) \
-X main.GoVersion=$(GO_VERSION) \
-s -w"
# Основные цели
build: alr-updater analyze-repo
alr-updater:
@echo "🔨 Building ALR-updater..."
CGO_ENABLED=1 go build $(LDFLAGS) -o alr-updater main.go
analyze-repo:
@echo "🔨 Building repository analyzer..."
cd cmd/analyze-repo && CGO_ENABLED=1 go build $(LDFLAGS) -o ../../analyze-repo .
install: build
@echo "📦 Installing ALR-updater..."
sudo install -m 755 alr-updater /usr/local/bin/
sudo install -m 755 analyze-repo /usr/local/bin/
@echo "✅ Installation complete!"
clean:
@echo "🧹 Cleaning..."
rm -f alr-updater analyze-repo
test:
@echo "🧪 Running tests..."
go test -v ./...
# Генерация плагинов
generate-plugins:
@echo "🤖 Generating missing plugins..."
./alr-updater --generate-plugins
# Анализ репозитория
analyze:
@echo "📊 Analyzing repository..."
./analyze-repo --format=table
analyze-json:
@echo "📊 Analyzing repository (JSON)..."
./analyze-repo --format=json
# Генерация через анализатор
generate-missing:
@echo "🤖 Generating missing plugins via analyzer..."
./analyze-repo --generate
# Помощь
help:
@echo "ALR-updater Build System"
@echo "========================"
@echo ""
@echo "Targets:"
@echo " build - Build all binaries"
@echo " alr-updater - Build main updater"
@echo " analyze-repo - Build repository analyzer"
@echo " install - Install binaries to /usr/local/bin"
@echo " clean - Remove built binaries"
@echo " test - Run tests"
@echo ""
@echo "Plugin Generation:"
@echo " generate-plugins - Generate missing plugins"
@echo " analyze - Analyze repository (table format)"
@echo " analyze-json - Analyze repository (JSON format)"
@echo " generate-missing - Analyze and generate missing plugins"
@echo ""
@echo "Variables:"
@echo " VERSION - Version string (default: git describe)"
@echo " BUILD_TIME - Build timestamp"
# Цель по умолчанию
all: build