# 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)"