Añadir sistema de Makefiles para herramienta de empaquetado de recursos
- Crear tools/Makefile con soporte multiplataforma (Windows/Linux/macOS) - Añadir targets: pack_tool, resource_pack, test_pack, clean, help - Mejorar Makefile raíz con target force_resource_pack - Integrar regeneración automática de resources.pack en todos los releases - Los releases siempre generan un resources.pack actualizado 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
20
Makefile
20
Makefile
@@ -121,6 +121,13 @@ resources.pack: $(PACK_TOOL) $(DATA_FILES)
|
||||
$(PACK_TOOL) data resources.pack
|
||||
@echo "✓ resources.pack generado exitosamente"
|
||||
|
||||
# Target para forzar regeneración de resources.pack (usado por releases)
|
||||
.PHONY: force_resource_pack
|
||||
force_resource_pack: $(PACK_TOOL)
|
||||
@echo "Regenerando resources.pack para release..."
|
||||
$(PACK_TOOL) data resources.pack
|
||||
@echo "✓ resources.pack regenerado exitosamente"
|
||||
|
||||
# Reglas para compilación
|
||||
windows:
|
||||
@echo off
|
||||
@@ -139,7 +146,7 @@ windows_debug:
|
||||
@echo Compilando version debug para Windows: "$(APP_NAME)_debug.exe"
|
||||
$(CXX) $(APP_SOURCES) $(INCLUDES) -DDEBUG -DVERBOSE $(CXXFLAGS_DEBUG) $(LDFLAGS) -o "$(WIN_TARGET_FILE)_debug.exe"
|
||||
|
||||
windows_release: resources.pack
|
||||
windows_release: force_resource_pack
|
||||
@echo "Creando release para Windows - Version: $(VERSION)"
|
||||
|
||||
# Crea carpeta temporal 'RELEASE_FOLDER'
|
||||
@@ -175,7 +182,7 @@ macos_debug:
|
||||
@echo "Compilando version debug para macOS: $(TARGET_NAME)_debug"
|
||||
$(CXX) $(APP_SOURCES) $(INCLUDES) -DDEBUG -DVERBOSE $(CXXFLAGS_DEBUG) $(LDFLAGS) -o "$(TARGET_FILE)_debug"
|
||||
|
||||
macos_release: resources.pack
|
||||
macos_release: force_resource_pack
|
||||
@echo "Creando release para macOS - Version: $(VERSION)"
|
||||
# Elimina datos de compilaciones anteriores
|
||||
$(RMDIR) "$(RELEASE_FOLDER)"
|
||||
@@ -243,7 +250,7 @@ linux_debug:
|
||||
@echo "Compilando version debug para Linux: $(TARGET_NAME)_debug"
|
||||
$(CXX) $(APP_SOURCES) $(INCLUDES) -DDEBUG -DVERBOSE $(CXXFLAGS_DEBUG) $(LDFLAGS) -o "$(TARGET_FILE)_debug"
|
||||
|
||||
linux_release: resources.pack
|
||||
linux_release: force_resource_pack
|
||||
@echo "Creando release para Linux - Version: $(VERSION)"
|
||||
# Elimina carpetas previas
|
||||
$(RMDIR) "$(RELEASE_FOLDER)"
|
||||
@@ -268,7 +275,7 @@ linux_release: resources.pack
|
||||
# Elimina la carpeta temporal
|
||||
$(RMDIR) "$(RELEASE_FOLDER)"
|
||||
|
||||
linux_release_desktop: resources.pack
|
||||
linux_release_desktop: force_resource_pack
|
||||
@echo "Creando release con integracion desktop para Linux - Version: $(VERSION)"
|
||||
# Elimina carpetas previas
|
||||
$(RMDIR) "$(RELEASE_FOLDER)"
|
||||
@@ -372,7 +379,7 @@ raspi_debug:
|
||||
@echo "Compilando version debug para Raspberry Pi: $(TARGET_NAME)_debug"
|
||||
$(CXX) $(APP_SOURCES) $(INCLUDES) -DVERBOSE -DDEBUG $(CXXFLAGS_DEBUG) $(LDFLAGS) -o "$(TARGET_FILE)_debug"
|
||||
|
||||
raspi_release: resources.pack
|
||||
raspi_release: force_resource_pack
|
||||
@echo "Creando release para Raspberry Pi - Version: $(VERSION)"
|
||||
# Elimina carpetas previas
|
||||
$(RMDIR) "$(RELEASE_FOLDER)"
|
||||
@@ -397,7 +404,7 @@ raspi_release: resources.pack
|
||||
# Elimina la carpeta temporal
|
||||
$(RMDIR) "$(RELEASE_FOLDER)"
|
||||
|
||||
anbernic: resources.pack
|
||||
anbernic: force_resource_pack
|
||||
@echo "Compilando para Anbernic: $(TARGET_NAME)"
|
||||
# Elimina carpetas previas
|
||||
$(RMDIR) "$(RELEASE_FOLDER)"_anbernic
|
||||
@@ -436,6 +443,7 @@ help:
|
||||
@echo " macos_release - Crear release completo para macOS (.dmg)"
|
||||
@echo " pack_tool - Compilar herramienta de empaquetado"
|
||||
@echo " resources.pack - Generar pack de recursos desde data/"
|
||||
@echo " force_resource_pack - Regenerar resources.pack (usado por releases)"
|
||||
@echo " show_version - Mostrar version actual ($(VERSION))"
|
||||
@echo " help - Mostrar esta ayuda"
|
||||
|
||||
|
||||
187
tools/Makefile
Normal file
187
tools/Makefile
Normal file
@@ -0,0 +1,187 @@
|
||||
# ============================================================================
|
||||
# ViBe3 Physics - Resource Packer Tool Makefile
|
||||
# ============================================================================
|
||||
|
||||
# Directorios
|
||||
DIR_ROOT := $(dir $(abspath $(dir $(MAKEFILE_LIST))))
|
||||
DIR_SOURCES := $(DIR_ROOT)source/
|
||||
DIR_TOOLS := $(DIR_ROOT)tools/
|
||||
DIR_DATA := $(DIR_ROOT)data/
|
||||
|
||||
# Archivos fuente
|
||||
PACK_SOURCES := $(DIR_TOOLS)pack_resources.cpp $(DIR_SOURCES)resource_pack.cpp
|
||||
PACK_INCLUDES := -I$(DIR_ROOT)
|
||||
|
||||
# Compilador y flags
|
||||
CXX := g++
|
||||
CXXFLAGS := -std=c++17 -Wall -Os -ffunction-sections -fdata-sections
|
||||
|
||||
# Variables específicas por sistema operativo
|
||||
ifeq ($(OS),Windows_NT)
|
||||
# Windows
|
||||
PACK_TOOL := pack_resources.exe
|
||||
RESOURCE_PACK := ../resources.pack
|
||||
TEST_PACK := test_resources.pack
|
||||
LDFLAGS := -Wl,--gc-sections -static-libstdc++ -static-libgcc
|
||||
RMFILE := del /Q
|
||||
MKDIR := mkdir
|
||||
FixPath = $(subst /,\,$1)
|
||||
else
|
||||
UNAME_S := $(shell uname -s)
|
||||
ifeq ($(UNAME_S),Linux)
|
||||
# Linux
|
||||
PACK_TOOL := pack_resources
|
||||
RESOURCE_PACK := ../resources.pack
|
||||
TEST_PACK := test_resources.pack
|
||||
LDFLAGS := -Wl,--gc-sections
|
||||
RMFILE := rm -f
|
||||
MKDIR := mkdir -p
|
||||
FixPath = $1
|
||||
endif
|
||||
ifeq ($(UNAME_S),Darwin)
|
||||
# macOS
|
||||
PACK_TOOL := pack_resources
|
||||
RESOURCE_PACK := ../resources.pack
|
||||
TEST_PACK := test_resources.pack
|
||||
LDFLAGS :=
|
||||
RMFILE := rm -f
|
||||
MKDIR := mkdir -p
|
||||
FixPath = $1
|
||||
endif
|
||||
endif
|
||||
|
||||
# Detectar todos los archivos en data/ como dependencias
|
||||
DATA_FILES := $(shell find ../data -type f 2>/dev/null)
|
||||
|
||||
# ============================================================================
|
||||
# Targets principales
|
||||
# ============================================================================
|
||||
|
||||
.PHONY: all pack_tool resource_pack test_pack clean help
|
||||
|
||||
# Target por defecto: compilar herramienta
|
||||
all: pack_tool
|
||||
|
||||
# Compilar herramienta de empaquetado
|
||||
pack_tool: $(PACK_TOOL)
|
||||
|
||||
$(PACK_TOOL): $(PACK_SOURCES)
|
||||
@echo "=========================================="
|
||||
@echo "Compilando herramienta de empaquetado..."
|
||||
@echo "=========================================="
|
||||
$(CXX) $(CXXFLAGS) $(PACK_INCLUDES) $(PACK_SOURCES) $(LDFLAGS) -o $(PACK_TOOL)
|
||||
ifeq ($(OS),Windows_NT)
|
||||
@echo.
|
||||
else
|
||||
@echo ""
|
||||
endif
|
||||
@echo "✓ Herramienta compilada: $(PACK_TOOL)"
|
||||
ifeq ($(OS),Windows_NT)
|
||||
@echo.
|
||||
else
|
||||
@echo ""
|
||||
endif
|
||||
|
||||
# Crear pack de recursos final
|
||||
resource_pack: $(PACK_TOOL)
|
||||
@echo "=========================================="
|
||||
@echo "Generando resources.pack..."
|
||||
@echo "=========================================="
|
||||
@echo "Directorio de datos: ../data"
|
||||
@echo "Archivo de salida: $(RESOURCE_PACK)"
|
||||
ifeq ($(OS),Windows_NT)
|
||||
@echo.
|
||||
else
|
||||
@echo ""
|
||||
endif
|
||||
./$(PACK_TOOL) ../data $(RESOURCE_PACK)
|
||||
ifeq ($(OS),Windows_NT)
|
||||
@echo.
|
||||
else
|
||||
@echo ""
|
||||
endif
|
||||
@echo "✓ Pack de recursos creado exitosamente"
|
||||
ifeq ($(OS),Windows_NT)
|
||||
@echo.
|
||||
else
|
||||
@echo ""
|
||||
endif
|
||||
|
||||
# Crear pack de recursos de prueba
|
||||
test_pack: $(PACK_TOOL)
|
||||
@echo "=========================================="
|
||||
@echo "Generando pack de prueba..."
|
||||
@echo "=========================================="
|
||||
@echo "Directorio de datos: ../data"
|
||||
@echo "Archivo de salida: $(TEST_PACK)"
|
||||
ifeq ($(OS),Windows_NT)
|
||||
@echo.
|
||||
else
|
||||
@echo ""
|
||||
endif
|
||||
./$(PACK_TOOL) ../data $(TEST_PACK)
|
||||
ifeq ($(OS),Windows_NT)
|
||||
@echo.
|
||||
else
|
||||
@echo ""
|
||||
endif
|
||||
@echo "✓ Pack de prueba creado: $(TEST_PACK)"
|
||||
ifeq ($(OS),Windows_NT)
|
||||
@echo.
|
||||
else
|
||||
@echo ""
|
||||
endif
|
||||
|
||||
# Limpiar archivos generados
|
||||
clean:
|
||||
@echo "Limpiando archivos generados..."
|
||||
ifeq ($(OS),Windows_NT)
|
||||
@if exist "$(PACK_TOOL)" $(RMFILE) "$(PACK_TOOL)"
|
||||
@if exist "$(TEST_PACK)" $(RMFILE) "$(TEST_PACK)"
|
||||
else
|
||||
@$(RMFILE) $(PACK_TOOL) $(TEST_PACK)
|
||||
endif
|
||||
@echo "✓ Limpieza completada"
|
||||
|
||||
# Mostrar ayuda
|
||||
help:
|
||||
@echo "=========================================="
|
||||
@echo "ViBe3 Physics - Resource Packer Makefile"
|
||||
@echo "=========================================="
|
||||
ifeq ($(OS),Windows_NT)
|
||||
@echo.
|
||||
else
|
||||
@echo ""
|
||||
endif
|
||||
@echo "Comandos disponibles:"
|
||||
ifeq ($(OS),Windows_NT)
|
||||
@echo.
|
||||
else
|
||||
@echo ""
|
||||
endif
|
||||
@echo " make - Compilar herramienta (equivalente a 'make pack_tool')"
|
||||
@echo " make pack_tool - Compilar herramienta de empaquetado"
|
||||
@echo " make resource_pack - Crear ../resources.pack desde ../data"
|
||||
@echo " make test_pack - Crear pack de prueba (test_resources.pack)"
|
||||
@echo " make clean - Limpiar archivos generados"
|
||||
@echo " make help - Mostrar esta ayuda"
|
||||
ifeq ($(OS),Windows_NT)
|
||||
@echo.
|
||||
else
|
||||
@echo ""
|
||||
endif
|
||||
@echo "Ejemplos de uso:"
|
||||
ifeq ($(OS),Windows_NT)
|
||||
@echo.
|
||||
else
|
||||
@echo ""
|
||||
endif
|
||||
@echo " cd tools"
|
||||
@echo " make # Compilar herramienta"
|
||||
@echo " make resource_pack # Crear pack de recursos"
|
||||
@echo " ./$(PACK_TOOL) --help # Ver ayuda de la herramienta"
|
||||
ifeq ($(OS),Windows_NT)
|
||||
@echo.
|
||||
else
|
||||
@echo ""
|
||||
endif
|
||||
Reference in New Issue
Block a user