X-Git-Url: https://sigrok.org/gitweb/?p=sigrok-util.git;a=blobdiff_plain;f=cross-compile%2Fmingw%2Fsigrok-cross-mingw;h=0b28cf1fcccf46d0d411060344683e1caa1731bd;hp=0e6eeb352c26b05c9ceed9783aabdead2b43b88c;hb=30f27835808d85b6c24230f445c2d99e5d6a18b2;hpb=1e3d3d6a417de64e3360bd8bfd874dd811ea250d diff --git a/cross-compile/mingw/sigrok-cross-mingw b/cross-compile/mingw/sigrok-cross-mingw index 0e6eeb3..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-2017 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 @@ -26,11 +26,11 @@ TARGET="i686" # The path where your MXE directory is located. MXE=$HOME/mxe-git -# The path where the cross-compiled packages will be installed. -PREFIX=$HOME/sr_mingw +# The base path prefix where the cross-compiled packages will be installed. +PREFIXBASE=$HOME/sr_mingw -# The path where to download files to and where to build packages. -BUILDDIR=./build +# The base path prefix where to download files to and where to build packages. +BUILDBASE=./build # Edit this to control verbose build output. # V="V=1 VERBOSE=1" @@ -41,17 +41,42 @@ 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. # ----------------------------------------------------------------------------- -SF_MIRROR=switch.dl.sourceforge.net +$ECHO "setting up fetch variables ..." WGET="wget -c --quiet" GIT_CLONE="git clone --depth=1" +REPO_BASE="git://sigrok.org" + +# Construct the build and install directory pathnames. +if [ $TARGET = "i686" ]; then + SUFFIX="32" +else + SUFFIX="64" +fi +if [ $DEBUG = 1 ]; then + # CFLAGS/CXXFLAGS contains "-g" per default for autotools projects. + BUILD_TYPE="Debug" + PREFIX=$PREFIXBASE"_debug_"$SUFFIX + BUILDDIR=$BUILDBASE"_debug_"$SUFFIX +else + BUILD_TYPE="Release" + PREFIX=$PREFIXBASE"_release_"$SUFFIX + BUILDDIR=$BUILDBASE"_release_"$SUFFIX +fi + # ----------------------------------------------------------------------------- +$ECHO "setting up toolchain variables ..." + # We need to find tools in the toolchain. export PATH=$MXE/usr/bin:$PATH @@ -70,12 +95,8 @@ else export PKG_CONFIG_PATH_x86_64_w64_mingw32_static_posix="$P:$P2" fi -if [ $DEBUG = 1 ]; then - # CFLAGS/CXXFLAGS contains "-g" per default for autotools projects. - CM="$CM -DCMAKE_BUILD_TYPE=Debug" -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 @@ -84,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: @@ -91,9 +119,14 @@ 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. +if [ $TARGET = "x86_64" ]; then + patch -p1 $PREFIX/Python34/include/pyconfig.h < ../pyconfig.patch +fi + # Create a dummy python3.pc file so that pkg-config finds Python 3. mkdir -p $PREFIX/lib/pkgconfig cat >$PREFIX/lib/pkgconfig/python3.pc <