X-Git-Url: https://sigrok.org/gitweb/?p=sigrok-util.git;a=blobdiff_plain;f=cross-compile%2Fmingw%2Fsigrok-cross-mingw;h=8330406ecd28969d8d29c8ad23df8968a4b9ec68;hp=c5c3a39af91d9473ac93452c72295c2231a0aed4;hb=d65031560a7a073a2e2df86d1537a27570b33a80;hpb=e060d94ee8b6de6f8cc6064027cc84aabffd4969 diff --git a/cross-compile/mingw/sigrok-cross-mingw b/cross-compile/mingw/sigrok-cross-mingw index c5c3a39..8330406 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-2018 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" @@ -45,13 +45,28 @@ DEBUG=0 # ----------------------------------------------------------------------------- -SF_MIRROR=switch.dl.sourceforge.net - 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 + # ----------------------------------------------------------------------------- # We need to find tools in the toolchain. @@ -72,11 +87,6 @@ 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. rm -rf $BUILDDIR mkdir $BUILDDIR @@ -120,6 +130,19 @@ EOF $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 +# In order to link against Python we need libpython34.a. +# The upstream Python 32bit installer ships this, the x86_64 installer +# doesn't. Thus, we generate the file manually here. +if [ $TARGET = "x86_64" ]; then + cp $PREFIX/python34.dll . + $MXE/usr/$TARGET-w64-mingw32.static.posix/bin/gendef python34.dll + $MXE/usr/bin/$TARGET-w64-mingw32.static.posix-dlltool \ + --dllname python34.dll --def python34.def \ + --output-lib libpython34.a + mv -f libpython34.a $PREFIX/Python34/libs + rm -f python34.dll +fi + # Zadig (we ship this with frontends for easy driver switching). $WGET http://zadig.akeo.ie/downloads/zadig.exe -O $PREFIX/zadig.exe $WGET http://zadig.akeo.ie/downloads/zadig_xp.exe -O $PREFIX/zadig_xp.exe @@ -193,24 +216,25 @@ cd sigrok-cli ./configure $C make $PARALLEL $V make install $V -makensis -DHOME=$HOME contrib/sigrok-cli_cross.nsi +makensis contrib/sigrok-cli_cross.nsi cd .. # PulseView $GIT_CLONE $REPO_BASE/pulseview cd pulseview cp ../../FileAssociation.nsh contrib -if [ $DEBUG = 1 ]; then - # Allow a "DOS box" to open on Windows, it'll contain logging output. - patch -p1 < ../../pv_mwindows.patch -fi -$CMAKE -DCMAKE_INSTALL_PREFIX:PATH=$PREFIX -DDISABLE_WERROR=y -DENABLE_TESTS=y . +$CMAKE \ + -DCMAKE_INSTALL_PREFIX:PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=$BUILD_TYPE \ + -DDISABLE_WERROR=y \ + -DENABLE_TESTS=y \ + . make $PARALLEL $V if [ $DEBUG = 1 ]; then make install $V else make install/strip $V fi -makensis -DHOME=$HOME contrib/pulseview_cross.nsi +makensis contrib/pulseview_cross.nsi cd ..