X-Git-Url: https://sigrok.org/gitweb/?p=sigrok-util.git;a=blobdiff_plain;f=cross-compile%2Fmingw%2Fsigrok-cross-mingw;h=0b28cf1fcccf46d0d411060344683e1caa1731bd;hp=784cd89f2cd0d3e4d22955ee97afeaf71adb8106;hb=30f27835808d85b6c24230f445c2d99e5d6a18b2;hpb=a5921d6c1533f2e0349a587dc693cf820beb8d47 diff --git a/cross-compile/mingw/sigrok-cross-mingw b/cross-compile/mingw/sigrok-cross-mingw index 784cd89..0b28cf1 100755 --- a/cross-compile/mingw/sigrok-cross-mingw +++ b/cross-compile/mingw/sigrok-cross-mingw @@ -2,7 +2,7 @@ ## ## This file is part of the sigrok-util project. ## -## Copyright (C) 2013-2018 Uwe Hermann +## Copyright (C) 2013-2020 Uwe Hermann ## ## This program is free software; you can redistribute it and/or modify ## it under the terms of the GNU General Public License as published by @@ -41,10 +41,16 @@ PARALLEL="-j 2" # Edit this to enable/disable debug builds. DEBUG=0 +# Optionally show some progress as the script executes. +# ECHO=true +ECHO=echo + # You usually don't need to change anything below this line. # ----------------------------------------------------------------------------- +$ECHO "setting up fetch variables ..." + WGET="wget -c --quiet" GIT_CLONE="git clone --depth=1" @@ -69,6 +75,8 @@ fi # ----------------------------------------------------------------------------- +$ECHO "setting up toolchain variables ..." + # We need to find tools in the toolchain. export PATH=$MXE/usr/bin:$PATH @@ -88,6 +96,7 @@ else fi # Remove build directory contents (if any) and create a new build dir. +$ECHO "starting new build directory: $BUILDDIR" rm -rf $BUILDDIR mkdir $BUILDDIR cd $BUILDDIR @@ -96,6 +105,13 @@ cd $BUILDDIR mkdir -p $PREFIX +$ECHO "preparing Python dependency ..." + +# This is a HACK which temporarily unbreaks Windows CI builds. +# TODO Remove this line as well as $WGET_SR references below +# when the Python34 download works again. +WGET_SR="$WGET --no-check-certificate" + # Cross-compiling Python is highly non-trivial, so we avoid it for now. # The download below is a repackaged tarball of the official Python 3.4.4 MSI # installer for Windows: @@ -103,7 +119,7 @@ mkdir -p $PREFIX # - https://www.python.org/ftp/python/3.4.4/python-3.4.4.amd64.msi # The MSI file has been installed on a Windows box and then c:\Python34\libs # and c:\Python34\include have been stored in the Python34_*.tar.gz tarball. -$WGET http://www.sigrok.org/tmp/Python34_$TARGET.tar.gz -O $PREFIX/Python34.tar.gz +$WGET_SR http://www.sigrok.org/tmp/Python34_$TARGET.tar.gz -O $PREFIX/Python34.tar.gz tar xzf $PREFIX/Python34.tar.gz -C $PREFIX # Fix for bug #1195. @@ -132,8 +148,8 @@ EOF # The file python34.zip contains all files from the 'DLLs', 'Lib', and 'libs' # subdirectories from an installed Python on Windows (c:\python34), i.e. some # libraries and all Python stdlib modules. -$WGET http://www.sigrok.org/tmp/python34_$TARGET.dll -O $PREFIX/python34.dll -$WGET http://www.sigrok.org/tmp/python34_$TARGET.zip -O $PREFIX/python34.zip +$WGET_SR http://www.sigrok.org/tmp/python34_$TARGET.dll -O $PREFIX/python34.dll +$WGET_SR http://www.sigrok.org/tmp/python34_$TARGET.zip -O $PREFIX/python34.zip # In order to link against Python we need libpython34.a. # The upstream Python 32bit installer ships this, the x86_64 installer @@ -148,21 +164,17 @@ if [ $TARGET = "x86_64" ]; then rm -f python34.dll fi +# We need to include the *.pyd files from python34.zip into the installers, +# otherwise importing certain modules (e.g. ctypes) won't work (bug #1409). +unzip -q $PREFIX/python34.zip *.pyd -d $PREFIX + # Zadig (we ship this with frontends for easy driver switching). +$ECHO "fetching zadig ..." $WGET https://github.com/pbatard/libwdi/releases/download/b721/zadig-2.4.exe -O $PREFIX/zadig.exe $WGET https://github.com/pbatard/libwdi/releases/download/v1.2.5/zadig_xp-2.2.exe -O $PREFIX/zadig_xp.exe -# libusb -$GIT_CLONE git://github.com/dickens/libusb -b event-abstraction-v4 -cd libusb -patch -p1 < ../../libusb_raw_io.patch -./bootstrap.sh -./configure $C $L -make -j1 $V -make install $V -cd .. - # libserialport +$ECHO "component libserialport ..." $GIT_CLONE $REPO_BASE/libserialport cd libserialport ./autogen.sh @@ -172,6 +184,7 @@ make install $V cd .. # libsigrok +$ECHO "component libsigrok ..." $GIT_CLONE $REPO_BASE/libsigrok cd libsigrok ./autogen.sh @@ -181,6 +194,7 @@ make install $V cd .. # libsigrokdecode +$ECHO "component libsigrokdecode ..." $GIT_CLONE $REPO_BASE/libsigrokdecode cd libsigrokdecode ./autogen.sh @@ -190,6 +204,7 @@ make install $V cd .. # sigrok-firmware +$ECHO "component sigrok-firmware ..." $GIT_CLONE $REPO_BASE/sigrok-firmware cd sigrok-firmware ./autogen.sh @@ -199,6 +214,7 @@ make install $V cd .. # sigrok-firmware-fx2lafw +$ECHO "component sigrok-firmware-fx2lafw ..." $GIT_CLONE $REPO_BASE/sigrok-firmware-fx2lafw cd sigrok-firmware-fx2lafw ./autogen.sh @@ -209,24 +225,32 @@ make install $V cd .. # sigrok-dumps +$ECHO "component sigrok-dumps ..." $GIT_CLONE $REPO_BASE/sigrok-dumps cd sigrok-dumps make install DESTDIR=$PREFIX/share/sigrok-dumps $V cd .. # sigrok-cli +$ECHO "component sigrok-cli ..." $GIT_CLONE $REPO_BASE/sigrok-cli cd sigrok-cli ./autogen.sh ./configure $C make $PARALLEL $V make install $V -makensis contrib/sigrok-cli_cross.nsi +if [ $TARGET = "i686" ]; then + makensis contrib/sigrok-cli_cross.nsi +else + makensis -DPE64=1 contrib/sigrok-cli_cross.nsi +fi cd .. # PulseView +$ECHO "component pulseview ..." $GIT_CLONE $REPO_BASE/pulseview cd pulseview +patch -p1 < ../../pulseview-manual-pdf-hack.patch cp ../../FileAssociation.nsh contrib $CMAKE \ -DCMAKE_INSTALL_PREFIX:PATH=$PREFIX \ @@ -241,6 +265,13 @@ if [ $DEBUG = 1 ]; then else make install/strip $V fi -makensis contrib/pulseview_cross.nsi + +$ECHO "creating NSIS installer ..." +if [ $TARGET = "i686" ]; then + makensis contrib/pulseview_cross.nsi +else + makensis -DPE64=1 contrib/pulseview_cross.nsi +fi cd .. +$ECHO "cross compile script done.""