# HG changeset patch # User Matti Hamalainen # Date 1684148839 -10800 # Node ID 7edd1954fdaf10689a797dc7a8ec1a51138afe52 # Parent 52f0da8834694f75cd8bab01250f19084fe243e1 Implement 'install' target in cross-mingw Makefile, remove the now extraneous build shell script. diff -r 52f0da883469 -r 7edd1954fdaf Makefile.cross-mingw --- a/Makefile.cross-mingw Mon May 15 14:06:50 2023 +0300 +++ b/Makefile.cross-mingw Mon May 15 14:07:19 2023 +0300 @@ -2,6 +2,8 @@ ### For win32 version cross-compilation with MinGW suite @ Linux ### +INSTALL = install -s + # Qt version dependant stuff QT_VERSION_PREFIX = Qt6 QT_PREFIX ?= /misc/packages/qt6-build/qtbase @@ -18,16 +20,18 @@ # Compiler/tools 64/32-bit ifeq ($(MINGW),64) BINTOOL_PREFIX ?= x86_64-w64-mingw32- -MINGW_SYS_PATH ?= /usr/x86_64-w64-mingw32 -MINGW_LOCAL_PATH ?= /usr/local/x86_64-w64-mingw32 OBJPATH ?= ./obj/win64/ else BINTOOL_PREFIX ?= i686-w64-mingw32- -MINGW_SYS_PATH ?= /usr/i686-w64-mingw32 -MINGW_LOCAL_PATH ?= /usr/local/i686-w64-mingw32 OBJPATH ?= ./obj/win32/ endif +APP_INSTALL_SYS_DLLS = libgcc_s_dw2-1 libstdc++-6 + +MINGW_CC1_PATH = $(shell $(BINTOOL_PREFIX)g++ -print-prog-name=cc1) +MINGW_LIBS_PATH = $(shell dirname $(MINGW_CC1_PATH)) +MINGW_ZLIB1_PATH = $(shell $(BINTOOL_PREFIX)g++ -print-file-name=zlib1.dll) + # Compiler flags and linker flags XCFLAGS += -fno-keep-inline-dllexport -Wno-attributes @@ -50,3 +54,14 @@ CLEAN_TARGETS += src/winres.rc include Makefile.gen + + +install: all + $(MKDIR_P) $(PREFIX)/platforms/ + $(INSTALL) $(QT_PREFIX)/plugins/platforms/qwindows.dll $(PREFIX)/platforms/ + $(MKDIR_P) $(PREFIX)/sqldrivers/ + $(INSTALL) $(QT_PREFIX)/plugins/sqldrivers/qsqlite.dll $(PREFIX)/sqldrivers/ + $(INSTALL) $(APP_BIN) $(PREFIX) + $(INSTALL) $(foreach DLL,$(QT_MODULES),$(QT_PREFIX)/bin/$(QT_VERSION_PREFIX)$(DLL).dll) $(PREFIX) + $(INSTALL) $(foreach DLL,$(APP_INSTALL_SYS_DLLS),$(MINGW_LIBS_PATH)/$(DLL).dll) $(PREFIX) + $(INSTALL) $(MINGW_ZLIB1_PATH) $(PREFIX) diff -r 52f0da883469 -r 7edd1954fdaf build-win32.sh --- a/build-win32.sh Mon May 15 14:06:50 2023 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,99 +0,0 @@ -#!/bin/sh -INSTALL_USB="/mnt/sdb1" -INSTALL_WINE="$HOME/.wine/drive_c/Syntilista/" -TMPFILE="unix2dos.tmp" - -MINGW_CPP="i686-w64-mingw32-g++" -BINPATH="win32/" - -QT_VERSION_PREFIX="Qt5" -QT_BASE="/misc/packages/qt5-src/qtbase" - - - -fatal() -{ - echo "ERROR: $1" - exit 1 -} - - -do_cp() -{ - cp -f "$1" "$2" || fatal "Could not copy file '$1' to '$2'." -} - - -do_mkdir() -{ - mkdir -p "$1" || fatal "Could not create directory '$1'." -} - - -do_cpinstall() -{ - # $1 src base path - # $2 dst base path - # $3 common sub path - # $4 filename - - do_mkdir "$2/$3" - do_cp "$1/$3/$4" "$2/$3/$4" -} - - -do_install() -{ - TARGET="$1" - - if test -d "$TARGET"; then - rm -fr "$TARGET" - elif test -e "$TARGET"; then - fatal "Target '$TARGET' exists but is not a directory!" - fi - - mkdir -p "$TARGET" || fatal "Could not create target directory '$TARGET'." - - echo "Installing to '${TARGET}' ..." - - do_cpinstall "${QT_BASE}/plugins/" "$TARGET" "platforms" "qwindows.dll" - do_cpinstall "${QT_BASE}/plugins/" "$TARGET" "sqldrivers" "qsqlite.dll" - do_cpinstall "${QT_BASE}/plugins/" "$TARGET" "printsupport" "windowsprintersupport.dll" - - for i in Core Gui Sql Widgets PrintSupport Network; do - do_cp "${QT_BASE}/bin/${QT_VERSION_PREFIX}${i}.dll" "$TARGET" - done - - for i in libstdc++-6 libgcc_s_sjlj-1; do - do_cp "${MINGW_PATH}/${i}.dll" "$TARGET" - strip "${TARGET}/${i}.dll" - done - - for i in zlib1.dll; do - do_cp "${MINGW_LIBS}/${i}" "$TARGET" - done - - do_cp "$BINPATH/Syntilista.exe" "$TARGET" - unix2dos -n "COPYING.html" "$TMPFILE" || fatal "Could not unix2dos." - do_cp "$TMPFILE" "$TARGET/COPYING.txt" - rm -f "$TMPFILE" -} - - -### Check dirs -MINGW_PATH="$(dirname $(realpath $($MINGW_CPP -print-prog-name=cc1)))" -MINGW_LIBS="$(dirname $(realpath $($MINGW_CPP -print-file-name=zlib1.dll)))" -test -d "$MINGW_PATH" || fatal "Could not find MinGW C++ compiler path!" -test -d "$MINGW_LIBS" || fatal "Could not find MinGW library path (zlib1.dll not found)" - -### Build the binaries -echo "QT: ${QT_BASE} / MinGW: ${MINGW_PATH}" -make -f Makefile.cross-mingw QT_PREFIX="$QT_BASE" BINPATH="$BINPATH" || fatal "Compilation failed." - -### Install to targets -if test -d "$INSTALL_USB" && mount|grep -q "$INSTALL_USB"; then - do_install "$INSTALL_USB/Syntilista" -else - echo "INFO: '$INSTALL_USB' is not mounted. Not installing." -fi -#do_install "$INSTALL_WINE"