X-Git-Url: https://sigrok.org/gitweb/?p=sigrok-util.git;a=blobdiff_plain;f=cross-compile%2Fmingw%2Fsigrok-cross-mingw;h=8330406ecd28969d8d29c8ad23df8968a4b9ec68;hp=0e6eeb352c26b05c9ceed9783aabdead2b43b88c;hb=4e20cf8ffda277860b350a98fb86bf5d07ce1a80;hpb=1e3d3d6a417de64e3360bd8bfd874dd811ea250d diff --git a/cross-compile/mingw/sigrok-cross-mingw b/cross-compile/mingw/sigrok-cross-mingw index 0e6eeb3..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,11 +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. @@ -70,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 @@ -118,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 @@ -133,7 +158,7 @@ make install $V cd .. # libserialport -$GIT_CLONE git://sigrok.org/libserialport +$GIT_CLONE $REPO_BASE/libserialport cd libserialport ./autogen.sh ./configure $C $L @@ -142,7 +167,7 @@ make install $V cd .. # libsigrok -$GIT_CLONE git://sigrok.org/libsigrok +$GIT_CLONE $REPO_BASE/libsigrok cd libsigrok ./autogen.sh ./configure $C $L @@ -151,7 +176,7 @@ make install $V cd .. # libsigrokdecode -$GIT_CLONE git://sigrok.org/libsigrokdecode +$GIT_CLONE $REPO_BASE/libsigrokdecode cd libsigrokdecode ./autogen.sh ./configure $C $L @@ -160,7 +185,7 @@ make install $V cd .. # sigrok-firmware -$GIT_CLONE git://sigrok.org/sigrok-firmware +$GIT_CLONE $REPO_BASE/sigrok-firmware cd sigrok-firmware ./autogen.sh # Nothing gets cross-compiled here, we just need 'make install' basically. @@ -169,7 +194,7 @@ make install $V cd .. # sigrok-firmware-fx2lafw -$GIT_CLONE git://sigrok.org/sigrok-firmware-fx2lafw +$GIT_CLONE $REPO_BASE/sigrok-firmware-fx2lafw cd sigrok-firmware-fx2lafw ./autogen.sh # We're building the fx2lafw firmware on the host, no need to cross-compile. @@ -179,35 +204,37 @@ make install $V cd .. # sigrok-dumps -$GIT_CLONE git://sigrok.org/sigrok-dumps +$GIT_CLONE $REPO_BASE/sigrok-dumps cd sigrok-dumps make install DESTDIR=$PREFIX/share/sigrok-dumps $V cd .. # sigrok-cli -$GIT_CLONE git://sigrok.org/sigrok-cli +$GIT_CLONE $REPO_BASE/sigrok-cli cd sigrok-cli ./autogen.sh ./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 git://sigrok.org/pulseview +$GIT_CLONE $REPO_BASE/pulseview cd pulseview -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 . +cp ../../FileAssociation.nsh contrib +$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 ..