CyberMatris port for Miyoo Mini Plus
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

109 lines
3.7 KiB

# ============================================================
# Makefile.miyoo - Cross-compile CyberMatris per Miyoo Mini Plus
# Toolchain: mini_toolchain-v1.0 (SigmaStar ARM)
# SDL2: sdl2-miyoo (build custom con backend MI GFX/AO)
#
# Usage: make -f Makefile.miyoo
# Deploy: make -f Makefile.miyoo deploy (richiede SSH su 10.0.0.199)
# ============================================================
TOOLCHAIN_ROOT = /home/enne2/dev/mini_toolchain-v1.0/mini
SDL2_ROOT = /home/enne2/dev/sdl2-miyoo
CROSS = $(TOOLCHAIN_ROOT)/bin/arm-linux-gnueabihf-
CXX = $(CROSS)g++
STRIP = $(CROSS)strip
SDL2_INC = $(SDL2_ROOT)/sdl2/include
SDL2_LIB = $(SDL2_ROOT)/sdl2/build/.libs
SYSROOT = $(TOOLCHAIN_ROOT)/arm-buildroot-linux-gnueabihf/sysroot
CXXFLAGS = -std=c++17 -O2 -Wall -Wextra \
-I$(SDL2_INC) \
-I$(SDL2_INC)/SDL2 \
-DSDL_MAIN_HANDLED \
-DMIYOO_BUILD
# Linka SDL2 dinamicamente (il .so Miyoo custom include il backend MI_GFX/MI_AO)
# Le libmi_*.so sono proprietarie SigmaStar: esistono SOLO sul device in /config/lib/
# Vengono risolte a runtime tramite LD_LIBRARY_PATH=.:/config/lib
# Usiamo --allow-shlib-undefined perché il linker host non le vede ma sul device ci sono.
LDFLAGS = -L$(SDL2_LIB) \
-lSDL2 \
-lpthread -lm -ldl -lrt \
-Wl,-rpath,'$$ORIGIN' \
-Wl,--allow-shlib-undefined
TARGET = cybermatris_miyoo
OBJS = main.o Game.o Synth.o Renderer.o
DEPLOY_IP = 10.0.0.199
DEPLOY_USER = root
DEPLOY_PASS =
DEPLOY_DIR = /mnt/SDCARD/Roms/PORTS/Games/CyberMatris
# Runtime libs da copiare nella stessa cartella del binario
RUNTIME_LIBS = \
$(SDL2_ROOT)/sdl2/build/.libs/libSDL2-2.0.so.0 \
$(SDL2_ROOT)/sdl2/build/.libs/libSDL2-2.0.so.0.18.2 \
$(SDL2_ROOT)/sdl2/build/.libs/libEGL.so \
$(SDL2_ROOT)/sdl2/build/.libs/libGLESv2.so \
$(SYSROOT)/usr/lib/libjson-c.so.5 \
$(SYSROOT)/usr/lib/libjson-c.so.5.1.0
.PHONY: all clean deploy
all: $(TARGET)
$(TARGET): $(OBJS)
$(CXX) $(CXXFLAGS) -o $@ $^ $(LDFLAGS)
$(STRIP) $@
@echo ""
@echo ">>> Build completata: $(TARGET)"
@echo ">>> Dimensione: $$(du -sh $(TARGET) | cut -f1)"
main.o: main.cpp Game.hpp Synth.hpp Renderer.hpp Font.hpp
$(CXX) $(CXXFLAGS) -c main.cpp
Game.o: Game.cpp Game.hpp Synth.hpp
$(CXX) $(CXXFLAGS) -c Game.cpp
Synth.o: Synth.cpp Synth.hpp
$(CXX) $(CXXFLAGS) -c Synth.cpp
Renderer.o: Renderer.cpp Renderer.hpp Game.hpp Synth.hpp Font.hpp
$(CXX) $(CXXFLAGS) -c Renderer.cpp
clean:
rm -f $(OBJS) $(TARGET)
# -------------------------------------------------------
# Crea il pacchetto di deploy (cartella con binario + libs + launcher)
# -------------------------------------------------------
package: $(TARGET)
@mkdir -p dist_miyoo
@cp $(TARGET) dist_miyoo/
@for lib in $(RUNTIME_LIBS); do \
if [ -f "$$lib" ]; then cp "$$lib" dist_miyoo/; echo " Copiata: $$(basename $$lib)"; \
else echo " WARN: $$lib non trovata, skip"; fi; \
done
@cp launch_miyoo.sh dist_miyoo/ 2>/dev/null || true
@echo ""
@echo ">>> Pacchetto pronto in ./dist_miyoo/"
@ls -lh dist_miyoo/
# -------------------------------------------------------
# Deploy via SSH + sshpass (password vuota)
# -------------------------------------------------------
deploy: package
@echo ">>> Deploy su $(DEPLOY_USER)@$(DEPLOY_IP):$(DEPLOY_DIR)"
sshpass -p '$(DEPLOY_PASS)' ssh -o StrictHostKeyChecking=no \
$(DEPLOY_USER)@$(DEPLOY_IP) "mkdir -p $(DEPLOY_DIR)"
sshpass -p '$(DEPLOY_PASS)' scp -o StrictHostKeyChecking=no \
dist_miyoo/* $(DEPLOY_USER)@$(DEPLOY_IP):$(DEPLOY_DIR)/
@echo ">>> Deploy completato!"
@echo ""
@echo ">>> Per lanciare sul device:"
@echo " ssh root@$(DEPLOY_IP)"
@echo " kill -STOP \`pidof MainUI\`"
@echo " cd $(DEPLOY_DIR) && LD_LIBRARY_PATH=.:/config/lib ./cybermatris_miyoo"