Files
metaverseDubai/Makefile
2026-07-07 03:43:19 -07:00

120 lines
3.7 KiB
Makefile

# Makefile - Dubai Metaverse Project
# Common tasks and automation
.PHONY: help setup validate install clean test docs
# Default target
.DEFAULT_GOAL := help
# Configuration
PROJECT_ROOT := $(shell pwd)
SCRIPTS_DIR := $(PROJECT_ROOT)/scripts
DOCS_DIR := $(PROJECT_ROOT)/docs
# Colors for output
RED := \033[0;31m
GREEN := \033[0;32m
YELLOW := \033[1;33m
NC := \033[0m # No Color
help: ## Show this help message
@echo "Dubai Metaverse - Available Commands"
@echo "====================================="
@echo ""
@grep -E '^[a-zA-Z_-]+:.*?## .*$$' $(MAKEFILE_LIST) | sort | awk 'BEGIN {FS = ":.*?## "}; {printf " $(GREEN)%-20s$(NC) %s\n", $$1, $$2}'
@echo ""
setup: ## Run project setup script
@echo "$(YELLOW)Running project setup...$(NC)"
@chmod +x $(SCRIPTS_DIR)/setup_project.sh
@$(SCRIPTS_DIR)/setup_project.sh
validate: ## Validate project structure and assets
@echo "$(YELLOW)Validating project...$(NC)"
@chmod +x $(SCRIPTS_DIR)/validate_project.sh $(SCRIPTS_DIR)/validate_assets.sh
@$(SCRIPTS_DIR)/validate_project.sh
@$(SCRIPTS_DIR)/validate_assets.sh
install-ue5: ## Install Unreal Engine 5.4.1 (Linux/WSL)
@echo "$(YELLOW)Installing UE5.4.1...$(NC)"
@chmod +x $(SCRIPTS_DIR)/install_ue5_5.4.1_auto.sh
@$(SCRIPTS_DIR)/install_ue5_5.4.1_auto.sh
install-deps: ## Install Python dependencies
@echo "$(YELLOW)Installing Python dependencies...$(NC)"
@pip install -r requirements.txt
clean: ## Clean build artifacts and temporary files
@echo "$(YELLOW)Cleaning project...$(NC)"
@find . -type d -name "__pycache__" -exec rm -r {} + 2>/dev/null || true
@find . -type f -name "*.pyc" -delete 2>/dev/null || true
@find . -type f -name "*.log" -delete 2>/dev/null || true
@echo "$(GREEN)Clean complete$(NC)"
test: ## Run validation and test scripts
@echo "$(YELLOW)Running tests...$(NC)"
@$(MAKE) validate
@echo "$(GREEN)Tests complete$(NC)"
docs: ## Generate/validate documentation
@echo "$(YELLOW)Validating documentation...$(NC)"
@chmod +x $(SCRIPTS_DIR)/generate_docs.sh
@$(SCRIPTS_DIR)/generate_docs.sh
lint: ## Lint scripts and code
@echo "$(YELLOW)Linting scripts...$(NC)"
@chmod +x $(SCRIPTS_DIR)/enhance_scripts.sh
@$(SCRIPTS_DIR)/enhance_scripts.sh
format: ## Format code (if formatters available)
@echo "$(YELLOW)Formatting code...$(NC)"
@echo "$(GREEN)Format complete$(NC)"
check: ## Run all checks (validate, lint, test)
@echo "$(YELLOW)Running all checks...$(NC)"
@$(MAKE) validate
@$(MAKE) lint
@$(MAKE) test
@echo "$(GREEN)All checks complete$(NC)"
status: ## Show project status
@echo "$(YELLOW)Project Status$(NC)"
@echo "=================="
@echo "Project Root: $(PROJECT_ROOT)"
@echo "Scripts: $(shell find $(SCRIPTS_DIR) -name '*.sh' -o -name '*.py' | wc -l) files"
@echo "Documentation: $(shell find . -name '*.md' | wc -l) files"
@echo ""
info: ## Show project information
@echo "$(GREEN)Dubai Metaverse Project$(NC)"
@echo "=========================="
@cat README.md | head -20
@echo ""
# Development tasks
dev-setup: setup install-deps ## Complete development environment setup
@echo "$(GREEN)Development environment ready$(NC)"
# Build tasks (placeholder for future)
build: ## Build project (placeholder)
@echo "$(YELLOW)Build task not yet implemented$(NC)"
package: ## Package project (placeholder)
@echo "$(YELLOW)Package task not yet implemented$(NC)"
@echo "See scripts/package_build.sh for packaging"
# Documentation tasks
docs-index: ## Update documentation index
@echo "$(YELLOW)Documentation index is at: docs/README.md$(NC)"
# Git tasks
git-lfs: ## Initialize Git LFS
@echo "$(YELLOW)Initializing Git LFS...$(NC)"
@git lfs install
@echo "$(GREEN)Git LFS initialized$(NC)"
# Quick tasks
quick-check: validate lint ## Quick validation and linting
@echo "$(GREEN)Quick check complete$(NC)"