# /futriis/Makefile # Makefile для сборки проекта futriis на Unix-системах (Solaris, OpenIndiana, Linux) .PHONY: all clean deps build build-server run run-server test install help # Переменные BINARY_NAME=futriis SERVER_BINARY_NAME=futriisd GO=go GOFLAGS=-ldflags="-s -w" BUILD_DIR=build CMD_DIR=./cmd/futriis # Цвета для вывода GREEN=\033[0;32m RED=\033[0;31m NC=\033[0m # No Color # Проверка операционной системы UNAME_S := $(shell uname -s) ifeq ($(UNAME_S),Linux) OS_SUPPORTED=true endif ifeq ($(UNAME_S),SunOS) OS_SUPPORTED=true endif ifndef OS_SUPPORTED $(error "Операционная система $(UNAME_S) не поддерживается. Проект поддерживает только Solaris, OpenIndiana и Linux.") endif all: clean deps build # Создание директории для сборки $(BUILD_DIR): @mkdir -p $(BUILD_DIR) @mkdir -p $(BUILD_DIR)/plugins @mkdir -p $(BUILD_DIR)/data # Установка зависимостей deps: @echo "$(GREEN)Установка зависимостей...$(NC)" $(GO) mod download $(GO) mod tidy # Сборка клиента build: $(BUILD_DIR) @echo "$(GREEN)Сборка клиента для $(UNAME_S)...$(NC)" $(GO) build $(GOFLAGS) -o $(BUILD_DIR)/$(BINARY_NAME) $(CMD_DIR) @echo "$(GREEN)Сборка завершена. Бинарный файл: $(BUILD_DIR)/$(BINARY_NAME)$(NC)" # Сборка сервера build-server: $(BUILD_DIR) @echo "$(GREEN)Сборка сервера для $(UNAME_S)...$(NC)" $(GO) build $(GOFLAGS) -o $(BUILD_DIR)/$(SERVER_BINARY_NAME) $(CMD_DIR) @echo "$(GREEN)Сборка сервера завершена. Бинарный файл: $(BUILD_DIR)/$(SERVER_BINARY_NAME)$(NC)" # Установка проекта install: @echo "$(GREEN)Установка проекта...$(NC)" $(GO) install $(GOFLAGS) $(CMD_DIR) @echo "$(GREEN)Установка завершена$(NC)" # Запуск клиента run: build @echo "$(GREEN)Запуск futriis клиента...$(NC)" ./$(BUILD_DIR)/$(BINARY_NAME) # Запуск сервера run-server: build-server @echo "$(GREEN)Запуск futriis сервера...$(NC)" ./$(BUILD_DIR)/$(SERVER_BINARY_NAME) -server -config config.toml # Тестирование test: @echo "$(GREEN)Запуск тестов...$(NC)" $(GO) test -v ./... # Очистка clean: @echo "$(GREEN)Очистка...$(NC)" rm -rf $(BUILD_DIR) $(GO) clean # Показать помощь help: @echo "Доступные команды Make:" @echo " make deps - установка зависимостей" @echo " make build - сборка клиента" @echo " make build-server - сборка сервера" @echo " make install - установка проекта" @echo " make run - запуск клиента" @echo " make run-server - запуск сервера" @echo " make test - запуск тестов" @echo " make clean - очистка" @echo " make help - показать эту справку"