From: Uwe Hermann Date: Tue, 28 Jul 2015 18:33:03 +0000 (+0200) Subject: sigrok-cross-mingw: Document required MXE fixes/workarounds. X-Git-Url: https://sigrok.org/gitaction?a=commitdiff_plain;h=b9d1ce760dca57a30483ea1129a26aa67ad52411;p=sigrok-util.git sigrok-cross-mingw: Document required MXE fixes/workarounds. --- diff --git a/cross-compile/mingw/README b/cross-compile/mingw/README index 5efd439..248af54 100644 --- a/cross-compile/mingw/README +++ b/cross-compile/mingw/README @@ -37,6 +37,10 @@ First, get the MXE cross-compile environment for MinGW-w64/Windows: $ git clone https://github.com/mxe/mxe.git mxe-git $ cd mxe-git +Apply some fixes that are currently required for a proper build: + + $ patch -p1 < mxe_fixes.patch + For now we need to build gcc and winpthreads in two steps. First: $ make MXE_TARGETS=i686-w64-mingw32.static gcc winpthreads diff --git a/cross-compile/mingw/mxe_fixes.patch b/cross-compile/mingw/mxe_fixes.patch new file mode 100644 index 0000000..e7c09f3 --- /dev/null +++ b/cross-compile/mingw/mxe_fixes.patch @@ -0,0 +1,66 @@ +These patches are currently required to get a properly working +MXE setup for sigrok usage. + + - Force libzip to use its own mkstemp() implementation. + http://sigrok.org/bugzilla/show_bug.cgi?id=570#c2 + + - Disable currently broken freetds (optional Qt dependency). + https://github.com/mxe/mxe/issues/770 + + - Disable currently broken qtassistant (we don't need it anyway). + https://github.com/mxe/mxe/issues/565 + +diff --git a/src/libzip.mk b/src/libzip.mk +index 99606d3..fd18276 100644 +--- a/src/libzip.mk ++++ b/src/libzip.mk +@@ -18,7 +18,8 @@ endef + + define $(PKG)_BUILD + cd '$(1)' && ./configure \ +- $(MXE_CONFIGURE_OPTS) ++ $(MXE_CONFIGURE_OPTS) \ ++ ac_cv_func_mkstemp=no + $(MAKE) -C '$(1)' -j '$(JOBS)' install $(MXE_DISABLE_CRUFT) SUBDIRS=lib + + '$(TARGET)-gcc' \ +diff --git a/src/qt.mk b/src/qt.mk +index f71f5c9..d7fdff1 100644 +--- a/src/qt.mk ++++ b/src/qt.mk +@@ -8,7 +8,7 @@ $(PKG)_CHECKSUM := 76aef40335c0701e5be7bb3a9101df5d22fe3666 + $(PKG)_SUBDIR := $(PKG)-everywhere-opensource-src-$($(PKG)_VERSION) + $(PKG)_FILE := $(PKG)-everywhere-opensource-src-$($(PKG)_VERSION).tar.gz + $(PKG)_URL := http://download.qt.io/official_releases/qt/4.8/$($(PKG)_VERSION)/$($(PKG)_FILE) +-$(PKG)_DEPS := gcc postgresql freetds openssl zlib libpng jpeg libmng tiff sqlite dbus ++$(PKG)_DEPS := gcc postgresql openssl zlib libpng jpeg libmng tiff sqlite dbus + + define $(PKG)_UPDATE + $(WGET) -q -O- http://download.qt-project.org/official_releases/qt/4.8/ | \ +@@ -56,7 +56,6 @@ define $(PKG)_BUILD + -qt-sql-odbc \ + -qt-sql-psql \ + -no-sql-mysql \ +- -qt-sql-tds -D Q_USE_SYBASE \ + -system-zlib \ + -system-libpng \ + -system-libjpeg \ +@@ -76,12 +75,12 @@ define $(PKG)_BUILD + $(MAKE) -C '$(1)/tools/linguist/lrelease' -j '$(JOBS)' install + ln -fs '$(PREFIX)/$(TARGET)/bin/lrelease' '$(PREFIX)/bin/$(TARGET)-lrelease' + +- cd '$(1)/tools/assistant' && '$(1)/bin/qmake' assistant.pro +- # can't figure out where -lQtCLucene comes from so use +- # sed on the output instead of patching the input +- $(MAKE) -C '$(1)/tools/assistant' sub-lib-qmake_all +- $(SED) -i 's,-lQtCLucene$$,-lQtCLucene4,' '$(1)/tools/assistant/lib/Makefile.Release' +- $(MAKE) -C '$(1)/tools/assistant' -j '$(JOBS)' install ++ ## cd '$(1)/tools/assistant' && '$(1)/bin/qmake' assistant.pro ++ ## # can't figure out where -lQtCLucene comes from so use ++ ## # sed on the output instead of patching the input ++ ## $(MAKE) -C '$(1)/tools/assistant' sub-lib-qmake_all ++ ## $(SED) -i 's,-lQtCLucene$$,-lQtCLucene4,' '$(1)/tools/assistant/lib/Makefile.Release' ++ ## $(MAKE) -C '$(1)/tools/assistant' -j '$(JOBS)' install + + # likewise for these two + cd '$(1)/tools/designer/src/designer' && '$(1)/bin/qmake' designer.pro