96 lines
3.1 KiB
Makefile
96 lines
3.1 KiB
Makefile
# /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 - показать эту справку"
|