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