X-Git-Url: https://sigrok.org/gitweb/?p=sigrok-util.git;a=blobdiff_plain;f=cross-compile%2Fmsys2%2Fsigrok-native-msys2;h=1de27c0f5f86749f641c303ae1a47516c0ccdac0;hp=893dc926a6dbb25e9d5d6c96bc3cde9999f89c47;hb=ea193494966e38fae4e9eda91d4b273b8444101f;hpb=18b280b708fee40350114cd0466393686b1ee2a5 diff --git a/cross-compile/msys2/sigrok-native-msys2 b/cross-compile/msys2/sigrok-native-msys2 index 893dc92..1de27c0 100755 --- a/cross-compile/msys2/sigrok-native-msys2 +++ b/cross-compile/msys2/sigrok-native-msys2 @@ -2,7 +2,7 @@ ## ## This file is part of the sigrok-util project. ## -## Copyright (C) 2016 Uwe Hermann +## Copyright (C) 2016-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 @@ -15,23 +15,19 @@ ## 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, write to the Free Software -## Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +## along with this program; if not, see . ## set -e -# Build target: "i686" (32bit) or "x86_64" (64bit). -TARGET="i686" +# The base path prefix where the compiled packages will be installed. +PREFIXBASE=$HOME/sr_msys2 -# The path where the compiled packages will be installed. -PREFIX=$HOME/sr_msys2 +# The base path prefix where to download files to and where to build packages. +BUILDBASE=./build -# The path where to download files to and where to build packages. -BUILDDIR=./build - -# The path where the libsigrok Python bindings will be installed. -PYPATH=$PREFIX/lib/python2.7/site-packages +# The $PREFIX subdir where the libsigrok Python bindings will be installed. +PYBASE=lib/python2.7/site-packages # Edit this to control verbose build output. # V="V=1 VERBOSE=1" @@ -39,11 +35,52 @@ PYPATH=$PREFIX/lib/python2.7/site-packages # 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. # ----------------------------------------------------------------------------- -VER_SIGROK_FIRMWARE_FX2LAFW=0.1.3 +# Abort if the user runs the script in an "MSYS2 MSYS" shell. +if [ $MSYSTEM = "MSYS" ]; then + echo "Building in an 'MSYS2 MSYS' shell will not work, aborting." + echo "Please use the 'MSYS2 MinGW 64-bit' (or 32-bit) shell." + exit +fi + +# The build target type: "i686" (32bit) or "x86_64" (64bit). +# This is selected based on which MSYS2 shell is being used to do the build. +TARGET=$MSYSTEM_CARCH + +VER_SIGROK_FIRMWARE_FX2LAFW=0.1.6 + +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 + +PYPATH=$PREFIX/$PYBASE + +# Eliminate the host Python path environment variable, if any is set. +export PYTHONPATH= # ----------------------------------------------------------------------------- @@ -56,8 +93,7 @@ PATH="/mingw32/qt5-static/bin:$PATH" W="mingw-w64-$TARGET" -WGET="wget -c --quiet" -GIT_CLONE="git clone --depth=1" +mkdir -p $PYPATH # Remove build directory contents (if any) and create a new build dir. rm -rf $BUILDDIR @@ -70,10 +106,10 @@ if [ "x$1" = "xprepare" ]; then # Update package list, install/update all requirements. pacman -Sy pacman -S \ - autoconf automake libtool make pkg-config wget patch \ - $W-toolchain $W-glib2 $W-glibmm $W-libusb $W-check $W-boost \ + autoconf automake autoconf-archive libtool make pkg-config wget patch \ + $W-toolchain $W-glib2 $W-glibmm $W-libusb $W-libftdi $W-check $W-boost \ $W-libzip $W-doxygen $W-python3 $W-python3-numpy $W-python3-gobject \ - $W-python3-setuptools $W-swig $W-qt5-static $W-cmake + $W-python3-setuptools $W-swig $W-qt5-static $W-cmake $W-nsis exit fi @@ -89,7 +125,7 @@ make install $V cd .. # libserialport -$GIT_CLONE git://sigrok.org/libserialport +$GIT_CLONE $REPO_BASE/libserialport cd libserialport ./autogen.sh mkdir build @@ -100,20 +136,19 @@ make install $V cd ../.. # libsigrok -mkdir -p $PYPATH -$GIT_CLONE git://sigrok.org/libsigrok +$GIT_CLONE $REPO_BASE/libsigrok cd libsigrok ./autogen.sh mkdir build cd build -PKG_CONFIG_PATH=$P ../configure $C $L --disable-python +PKG_CONFIG_PATH=$P PYTHON=python3 ../configure $C $L --disable-python $SB make $PARALLEL $V PYTHONPATH=$PYPATH $SB make install $V # $SB make check $V # TODO cd ../.. # libsigrokdecode -$GIT_CLONE git://sigrok.org/libsigrokdecode +$GIT_CLONE $REPO_BASE/libsigrokdecode cd libsigrokdecode ./autogen.sh mkdir build @@ -125,7 +160,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 mkdir build @@ -144,7 +179,7 @@ cd .. # TODO: Doesn't build, libsigrokdecode linking errors. # # sigrok-cli -# $GIT_CLONE git://sigrok.org/sigrok-cli +# $GIT_CLONE $REPO_BASE/sigrok-cli # cd sigrok-cli # ./autogen.sh # mkdir build @@ -157,14 +192,19 @@ cd .. # TODO: Doesn't build, various linking errors. # PulseView -$GIT_CLONE git://sigrok.org/pulseview +$GIT_CLONE $REPO_BASE/pulseview cd pulseview mkdir build cd build -PKG_CONFIG_PATH=$P $SB cmake -G "Unix Makefiles" -DCMAKE_INSTALL_PREFIX:PATH=$PREFIX -DDISABLE_WERROR=y -DENABLE_TESTS=n .. +PKG_CONFIG_PATH=$P $SB cmake \ + -G "Unix Makefiles" \ + -DCMAKE_INSTALL_PREFIX:PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=$BUILD_TYPE \ + -DDISABLE_WERROR=y \ + -DENABLE_TESTS=n \ + .. $SB make $PARALLEL $V make install $V # $SB make test $V # TODO # makensis -DHOME=$HOME contrib/pulseview_cross.nsi # TODO cd ../.. -