From 04b3fcb479f5aaae06d18b315a8bdc8c298f4eae Mon Sep 17 00:00:00 2001 From: admin Date: Tue, 5 Aug 2025 11:28:41 +0200 Subject: removed clustering --- build/cross-compile.mk | 94 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 94 insertions(+) create mode 100644 build/cross-compile.mk (limited to 'build/cross-compile.mk') diff --git a/build/cross-compile.mk b/build/cross-compile.mk new file mode 100644 index 0000000..5dc65f8 --- /dev/null +++ b/build/cross-compile.mk @@ -0,0 +1,94 @@ +# Cross-compilation rules for GlaMaC +# This file contains rules for Windows cross-compilation from Linux + +# Windows cross-compilation (Linux only) +ifeq ($(PLATFORM),linux) + +win: $(BINDIR_WIN)/glamac.exe win-dlls win-data + +win-all: win $(GLAUTILS_BINS_WIN) + +$(BINDIR_WIN)/glamac.exe: $(GLAMAC_SRCS) | $(BINDIR_WIN) + @echo "Cross-compiling glamac for Windows..." + @which $(MINGW_CC) >/dev/null 2>&1 || (echo "ERROR: Install mingw-w64-gcc first" && exit 1) + $(MINGW_CC) $^ $(CFLAGS_CROSS) -L$(CROSS_PREFIX)/lib -lmingw32 -lSDL3 -lSDL3_ttf -mwindows -static-libgcc -o $@ + +$(BINDIR_WIN)/%.exe: $(SRCDIR)/glautils/%.c | $(BINDIR_WIN) + $(MINGW_CC) $< $(CFLAGS_CROSS) -static-libgcc -o $@ + +# Windows DLL management +win-dlls: | $(BINDIR_WIN) + @echo "Getting Windows DLLs..." + @$(MKDIR) $(DLL_CACHE) + @if [ ! -f "$(DLL_CACHE)/SDL3.dll" ]; then \ + echo "Downloading SDL3.dll..."; \ + cd $(DLL_CACHE) && \ + wget -q https://github.com/libsdl-org/SDL/releases/download/release-3.2.10/SDL3-3.2.10-win32-x64.zip && \ + unzip -j SDL3-3.2.10-win32-x64.zip SDL3.dll && \ + $(RM) SDL3-3.2.10-win32-x64.zip; \ + fi + @if [ ! -f "$(DLL_CACHE)/SDL3_ttf.dll" ]; then \ + echo "Downloading SDL3_ttf.dll..."; \ + cd $(DLL_CACHE) && \ + wget -q https://github.com/libsdl-org/SDL_ttf/releases/download/release-3.2.2/SDL3_ttf-3.2.2-win32-x64.zip && \ + unzip -j SDL3_ttf-3.2.2-win32-x64.zip SDL3_ttf.dll && \ + $(RM) SDL3_ttf-3.2.2-win32-x64.zip; \ + fi + @cp $(DLL_CACHE)/*.dll $(BINDIR_WIN)/ + @echo "Windows build ready in $(BINDIR_WIN)/" + +# Copy data files for Windows build +win-data: | $(BINDIR_WIN) + @echo "Copying data files for Windows..." + @$(MKDIR) $(BINDIR_WIN)/data/json + @if [ -f "../data/json/glasses.json" ]; then \ + cp ../data/json/glasses.json $(BINDIR_WIN)/data/json/; \ + cp ../data/json/glasses.json $(BINDIR_WIN)/; \ + echo "Copied glasses.json to Windows build"; \ + else \ + echo "Warning: glasses.json not found, Windows build may use fallback data"; \ + fi + @echo "Copying font for Windows..." + @if [ -f "/usr/share/fonts/TTF/DejaVuSans.ttf" ]; then \ + cp /usr/share/fonts/TTF/DejaVuSans.ttf $(BINDIR_WIN)/; \ + echo "Copied DejaVuSans.ttf to Windows build"; \ + elif [ -f "/usr/share/fonts/truetype/dejavu/DejaVuSans.ttf" ]; then \ + cp /usr/share/fonts/truetype/dejavu/DejaVuSans.ttf $(BINDIR_WIN)/; \ + echo "Copied DejaVuSans.ttf to Windows build"; \ + else \ + echo "Warning: DejaVu font not found, Windows build may fail to start"; \ + fi + +# Cross-compilation setup +setup-cross: + @echo "Setting up cross-compilation..." + @which wget >/dev/null 2>&1 || (echo "Install wget first: sudo pacman -S wget" && exit 1) + @which $(MINGW_CC) >/dev/null 2>&1 || (echo "Install mingw-w64-gcc first: sudo pacman -S mingw-w64-gcc" && exit 1) + sudo $(MKDIR) $(CROSS_PREFIX)/include $(CROSS_PREFIX)/lib + @echo "Downloading SDL3 development libraries..." + cd /tmp && \ + wget -q https://github.com/libsdl-org/SDL/releases/download/release-3.2.10/SDL3-devel-3.2.10-mingw.tar.gz && \ + wget -q https://github.com/libsdl-org/SDL_ttf/releases/download/release-3.2.2/SDL3_ttf-devel-3.2.2-mingw.tar.gz && \ + tar -xzf SDL3-devel-3.2.10-mingw.tar.gz && \ + tar -xzf SDL3_ttf-devel-3.2.2-mingw.tar.gz && \ + sudo cp -r SDL3-3.2.10/x86_64-w64-mingw32/include/* $(CROSS_PREFIX)/include/ && \ + sudo cp -r SDL3-3.2.10/x86_64-w64-mingw32/lib/* $(CROSS_PREFIX)/lib/ && \ + sudo cp -r SDL3_ttf-3.2.2/x86_64-w64-mingw32/include/* $(CROSS_PREFIX)/include/ && \ + sudo cp -r SDL3_ttf-3.2.2/x86_64-w64-mingw32/lib/* $(CROSS_PREFIX)/lib/ && \ + $(RM) -rf SDL3-3.2.10* SDL3_ttf-3.2.2* + @echo "Cross-compilation setup complete!" + +else +# Windows host - disable cross-compilation +win win-all win-dlls setup-cross: + @echo "Cross-compilation not available on Windows. Use 'make all' instead." +endif + +# Cross-compilation cleanup +clean-cache: + $(RMDIR) $(DLL_CACHE) 2>/dev/null || true + +clean-all: clean clean-cache clean-deps-files + +# Cross-compilation phony targets +.PHONY: win win-all win-dlls setup-cross win-data clean-cache clean-all \ No newline at end of file -- cgit v1.2.3