WGET="wget -c --quiet"
GIT_CLONE="git clone --depth=1"
+REPO_BASE="git://sigrok.org"
+
# -----------------------------------------------------------------------------
# We need to find tools in the toolchain.
if [ $DEBUG = 1 ]; then
# CFLAGS/CXXFLAGS contains "-g" per default for autotools projects.
- CM="$CM -DCMAKE_BUILD_TYPE=Debug"
+ BUILD_TYPE="Debug"
+else
+ BUILD_TYPE="Release"
fi
# Remove build directory contents (if any) and create a new build dir.
mkdir -p $PREFIX
# 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.6.0 EXE
+# The download below is a repackaged tarball of the official Python 3.4.4 MSI
# installer for Windows:
-# - https://www.python.org/ftp/python/3.6.0/python-3.6.0.exe
-# - https://www.python.org/ftp/python/3.6.0/python-3.6.0-amd64.exe
-# The EXE file has been installed on a Windows box and then the "libs" and
-# "include" directories have been stored in the Python36_*.tar.gz tarball.
-$WGET http://www.sigrok.org/tmp/Python36_$TARGET.tar.gz -O $PREFIX/Python36.tar.gz
-tar xzf $PREFIX/Python36.tar.gz -C $PREFIX
+# - https://www.python.org/ftp/python/3.4.4/python-3.4.4.msi
+# - 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
+tar xzf $PREFIX/Python34.tar.gz -C $PREFIX
# Create a dummy python3.pc file so that pkg-config finds Python 3.
mkdir -p $PREFIX/lib/pkgconfig
includedir=\${prefix}/include
Name: Python
Description: Python library
-Version: 3.6
-Libs: $PREFIX/Python36/libs/libpython36.a
-Cflags: -I$PREFIX/Python36/include
+Version: 3.4
+Libs: $PREFIX/Python34/libs/libpython34.a
+Cflags: -I$PREFIX/Python34/include
EOF
-# The python36.dll and python36.zip files will be shipped in the NSIS
+# The python34.dll and python34.zip files will be shipped in the NSIS
# Windows installers (required for protocol decoding to work).
-# The file python36.dll (NOT the same as python3.dll) is copied from an
-# installed Python 3.6.0 (see above).
-# The file python36.zip contains all files from the 'DLLs', 'Lib', and 'libs'
-# subdirectories from an installed Python on Windows, i.e. some libraries and
-# all Python stdlib modules.
-$WGET http://www.sigrok.org/tmp/python36_$TARGET.dll -O $PREFIX/python36.dll
-$WGET http://www.sigrok.org/tmp/python36_$TARGET.zip -O $PREFIX/python36.zip
+# The file python34.dll (NOT the same as python3.dll) is copied from an
+# installed Python 3.4.4 (see above) from c:\Windows\system32\python34.dll.
+# 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
+
+# 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
cd ..
# libserialport
-$GIT_CLONE git://sigrok.org/libserialport
+$GIT_CLONE $REPO_BASE/libserialport
cd libserialport
./autogen.sh
./configure $C $L
cd ..
# libsigrok
-$GIT_CLONE git://sigrok.org/libsigrok
+$GIT_CLONE $REPO_BASE/libsigrok
cd libsigrok
./autogen.sh
./configure $C $L
cd ..
# libsigrokdecode
-$GIT_CLONE git://sigrok.org/libsigrokdecode
+$GIT_CLONE $REPO_BASE/libsigrokdecode
cd libsigrokdecode
./autogen.sh
./configure $C $L
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.
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.
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 ..