]> sigrok.org Git - sigrok-util.git/blobdiff - cross-compile/mingw/sigrok-cross-mingw
sigrok-cross-mingw: Allow for debug builds (default = off).
[sigrok-util.git] / cross-compile / mingw / sigrok-cross-mingw
index 1dac2c40a0cfaf6483d2c013d31ac4587cb76637..86e4486646a2950dfa2bf45b9b2231cd1204e138 100755 (executable)
@@ -1,8 +1,8 @@
-#!/bin/bash
+#!/bin/sh
 ##
 ## This file is part of the sigrok-util project.
 ##
-## Copyright (C) 2013-2014 Uwe Hermann <uwe@hermann-uwe.de>
+## Copyright (C) 2013-2016 Uwe Hermann <uwe@hermann-uwe.de>
 ##
 ## 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
@@ -33,9 +33,15 @@ PREFIX=$HOME/sr_mingw
 # The path where to download files to and where to build packages.
 BUILDDIR=./build
 
+# Edit this to control verbose build output.
+# V="V=1 VERBOSE=1"
+
 # Edit this to enable/disable/modify parallel compiles.
 PARALLEL="-j 2"
 
+# Edit this to enable/disable debug builds.
+DEBUG=0
+
 # You usually don't need to change anything below this line.
 
 # -----------------------------------------------------------------------------
@@ -50,18 +56,23 @@ GIT_CLONE="git clone --depth=1"
 # We need to find tools in the toolchain.
 export PATH=$MXE/usr/bin:$PATH
 
-TOOLCHAIN_TRIPLET="$TARGET-w64-mingw32.static"
+TOOLCHAIN_TRIPLET="$TARGET-w64-mingw32.static.posix"
 
 P="$PREFIX/lib/pkgconfig"
 P2="$MXE/usr/$TOOLCHAIN_TRIPLET/lib/pkgconfig"
-C="--host=$TOOLCHAIN_TRIPLET --prefix=$PREFIX"
+C="--host=$TOOLCHAIN_TRIPLET --prefix=$PREFIX CPPFLAGS=-D__printf__=__gnu_printf__"
 CM="-DCMAKE_TOOLCHAIN_FILE=$MXE/usr/$TOOLCHAIN_TRIPLET/share/cmake/mxe-conf.cmake"
 L="--disable-shared --enable-static"
 
-if [ $TARGET == "i686" ]; then
-       export PKG_CONFIG_PATH_i686_w64_mingw32_static="$P:$P2"
+if [ $TARGET = "i686" ]; then
+       export PKG_CONFIG_PATH_i686_w64_mingw32_static_posix="$P:$P2"
 else
-       export PKG_CONFIG_PATH_x86_64_w64_mingw32_static="$P:$P2"
+       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.
@@ -111,33 +122,41 @@ $WGET http://www.sigrok.org/tmp/python32_$TARGET.zip -O $PREFIX/python32.zip
 $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
 
+# 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
 $GIT_CLONE git://sigrok.org/libserialport
 cd libserialport
 ./autogen.sh
 ./configure $C $L
-make $PARALLEL V=1
-make install
+make $PARALLEL $V
+make install $V
 cd ..
 
 # libsigrok
 $GIT_CLONE git://sigrok.org/libsigrok
 cd libsigrok
-patch -p1 < ../../libsigrok_firmwaredir.patch
 ./autogen.sh
 ./configure $C $L
-make $PARALLEL V=1
-make install
+make $PARALLEL $V
+make install $V
 cd ..
 
 # libsigrokdecode
 $GIT_CLONE git://sigrok.org/libsigrokdecode
 cd libsigrokdecode
 ./autogen.sh
-patch -p1 < ../../srd_decodersdir.patch
 ./configure $C $L
-make $PARALLEL V=1
-make install
+make $PARALLEL $V
+make install $V
 cd ..
 
 # sigrok-firmware
@@ -146,7 +165,7 @@ cd sigrok-firmware
 ./autogen.sh
 # Nothing gets cross-compiled here, we just need 'make install' basically.
 ./configure --prefix=$PREFIX
-make install
+make install $V
 cd ..
 
 # sigrok-firmware-fx2lafw
@@ -155,14 +174,14 @@ cd sigrok-firmware-fx2lafw
 ./autogen.sh
 # We're building the fx2lafw firmware on the host, no need to cross-compile.
 ./configure --prefix=$PREFIX
-make $PARALLEL V=1
-make install
+make $PARALLEL $V
+make install $V
 cd ..
 
 # sigrok-dumps
 $GIT_CLONE git://sigrok.org/sigrok-dumps
 cd sigrok-dumps
-make install DESTDIR=$PREFIX/share/sigrok-dumps
+make install DESTDIR=$PREFIX/share/sigrok-dumps $V
 cd ..
 
 # sigrok-cli
@@ -170,17 +189,26 @@ $GIT_CLONE git://sigrok.org/sigrok-cli
 cd sigrok-cli
 ./autogen.sh
 ./configure $C
-make $PARALLEL V=1
-make install
+make $PARALLEL $V
+make install $V
 makensis -DHOME=$HOME contrib/sigrok-cli_cross.nsi
 cd ..
 
 # PulseView
 $GIT_CLONE git://sigrok.org/pulseview
 cd pulseview
-cmake $CM -DCMAKE_INSTALL_PREFIX:PATH=$PREFIX -DDISABLE_WERROR=y .
-make $PARALLEL VERBOSE=1
-make install/strip
+if [ $DEBUG = 1 ]; then
+       # Allow a "DOS box" to open on Windows, it'll contain logging output.
+       patch -p1 < ../../pv_mwindows.patch
+fi
+cmake $CM -DCMAKE_INSTALL_PREFIX:PATH=$PREFIX -DDISABLE_WERROR=y -DENABLE_TESTS=y .
+exit
+make $PARALLEL $V
+if [ $DEBUG = 1 ]; then
+       make install $V
+else
+       make install/strip $V
+fi
 makensis -DHOME=$HOME contrib/pulseview_cross.nsi
 cd ..