#!/bin/sh ## ## This file is part of the sigrok-util project. ## ## 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 ## the Free Software Foundation; either version 2 of the License, or ## (at your option) any later version. ## ## This program is distributed in the hope that it will be useful, ## but WITHOUT ANY WARRANTY; without even the implied warranty of ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ## GNU General Public License for more details. ## ## You should have received a copy of the GNU General Public License ## along with this program; if not, see . ## set -e # Build target: "i686" (32bit) or "x86_64" (64bit). TARGET="i686" # The path where your MXE directory is located. MXE=$HOME/mxe-git # The base path prefix where the cross-compiled packages will be installed. PREFIXBASE=$HOME/sr_mingw # 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" # 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. # ----------------------------------------------------------------------------- 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. export PATH=$MXE/usr/bin:$PATH TOOLCHAIN_TRIPLET="$TARGET-w64-mingw32.static.posix" CMAKE="$TOOLCHAIN_TRIPLET-cmake" P="$PREFIX/lib/pkgconfig" P2="$MXE/usr/$TOOLCHAIN_TRIPLET/lib/pkgconfig" C="--host=$TOOLCHAIN_TRIPLET --prefix=$PREFIX CPPFLAGS=-D__printf__=__gnu_printf__" L="--disable-shared --enable-static" 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_posix="$P:$P2" fi # Remove build directory contents (if any) and create a new build dir. rm -rf $BUILDDIR mkdir $BUILDDIR cd $BUILDDIR # ----------------------------------------------------------------------------- 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.4.4 MSI # installer for Windows: # - 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 # 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 <