# Makefile para herramientas de Coffee Crisis Arcade Edition
# =========================================================

# Variables
CXX := g++
CXXFLAGS := -std=c++17 -Wall -Os -I../
SOURCES := pack_resources.cpp ../source/resource_pack.cpp
TARGET := pack_resources
CLEAN_FILES := pack_resources *.pack *.o

# Detectar sistema operativo
ifeq ($(OS),Windows_NT)
    DETECTED_OS := Windows
    TARGET := $(TARGET).exe
    CLEAN_CMD := del /Q
    FixPath = $(subst /,\\,$1)
else
    DETECTED_OS := $(shell uname -s)
    CLEAN_CMD := rm -f
    FixPath = $1
endif

# Reglas principales
.PHONY: all pack_tool clean help test_pack

# Compilar herramienta de empaquetado
all: pack_tool

pack_tool:
	@echo "Compilando herramienta de empaquetado para $(DETECTED_OS)..."
	$(CXX) $(CXXFLAGS) $(SOURCES) -o $(TARGET)
	@echo "✓ Herramienta compilada: $(TARGET)"

# Limpiar archivos generados
clean:
	@echo "Limpiando archivos generados..."
	$(CLEAN_CMD) $(call FixPath,$(CLEAN_FILES))
	@echo "✓ Archivos limpiados"

# Crear pack de recursos de prueba
test_pack: pack_tool
	@echo "Creando pack de recursos de prueba..."
ifeq ($(OS),Windows_NT)
	.\$(TARGET) ..\data test_resources.pack
else
	./$(TARGET) ../data test_resources.pack
endif
	@echo "✓ Pack de prueba creado: test_resources.pack"

# Crear pack de recursos final
create_pack: pack_tool
	@echo "Creando pack de recursos final..."
ifeq ($(OS),Windows_NT)
	.\$(TARGET) ..\data ..\resources.pack
else
	./$(TARGET) ../data ../resources.pack
endif
	@echo "✓ Pack final creado: ../resources.pack"

# Mostrar ayuda
help:
	@echo "Makefile para herramientas de Coffee Crisis Arcade Edition"
	@echo "========================================================="
	@echo ""
	@echo "Comandos disponibles:"
	@echo "  all          - Compilar herramienta de empaquetado (por defecto)"
	@echo "  pack_tool    - Compilar herramienta de empaquetado"
	@echo "  test_pack    - Crear pack de recursos de prueba"
	@echo "  create_pack  - Crear pack de recursos final"
	@echo "  clean        - Limpiar archivos generados"
	@echo "  help         - Mostrar esta ayuda"
	@echo ""
	@echo "Ejemplos de uso:"
	@echo "  make              # Compilar herramienta"
	@echo "  make test_pack    # Crear pack de prueba"
	@echo "  make create_pack  # Crear pack final"
	@echo "  make clean        # Limpiar archivos"