- git
- wget
- p7zip
+ - unzip
- pkg-config (>= 0.22)
- sdcc (needed for building the fx2lafw firmware)
- nsis
- - MXE (*-w64-* targets, the *-pc-* targets are not supported)
+ - MXE (*-w64-*.posix targets; *-pc-* and non-posix targets are not supported)
MXE setup
Apply some fixes that are currently required for a proper build:
$ patch -p1 < mxe_fixes.patch
+ $ patch -p1 < libusb1_upgrade.patch
-For now we need to build gcc and winpthreads in two steps. First:
+Build all required packages:
- $ make MXE_TARGETS=i686-w64-mingw32.static gcc winpthreads
-
-In src/gcc.mk change "--enable-threads=win32" to "--enable-threads=posix".
-
-Then build gcc again:
-
- $ make MXE_TARGETS=i686-w64-mingw32.static gcc
-
-We now have a system that supports C++11 std::thread. Now build the rest:
-
- $ make MXE_TARGETS=i686-w64-mingw32.static glib libzip libusb1 libftdi1 \
- glibmm qt boost check
+ $ make MXE_TARGETS=i686-w64-mingw32.static.posix \
+ MXE_PLUGIN_DIRS=plugins/examples/qt5-freeze \
+ gcc glib libzip libusb1 libftdi1 hidapi glibmm qtbase qtimageformats \
+ qtsvg qttranslations boost check gendef libieee1284 \
+ qtbase_CONFIGURE_OPTS='-no-sql-mysql'
This will take a while.
+You can also use "MXE_TARGETS=x86_64-w64-mingw32.static.posix" to build
+64-bit installers instead.
+
See http://mxe.cc for details on MXE.
+Note: We're "freezing" the Qt5 version to Qt 5.7.x, since that's the last
+version that supports Windows XP (which we currently still want to support).
+
Building
--------
Per default it will install the cross-compiled packages in:
- $HOME/sr_mingw
+ $HOME/sr_mingw_release_32
+
+This depends on whether you're doing a 64-bit or 32-bit build, and whether
+you enabled debug builds or not.
Please edit the script if you want to change any settings.