From 87b105300e4d03dece7227b142991a8ac039cddd Mon Sep 17 00:00:00 2001 From: Cenkron Date: Tue, 16 Jan 2018 15:35:26 -0600 Subject: [PATCH] mingw/msys2: Make build directory names reflect debug/release and 32/64 For mingw and msys2 builds, both the install and build directory names now reflect the build characteristics. This makes it possible to do debug and release builds simultaneously. --- cross-compile/mingw/sigrok-cross-mingw | 36 ++++++++++------- cross-compile/msys2/sigrok-native-msys2 | 52 +++++++++++++++++-------- 2 files changed, 58 insertions(+), 30 deletions(-) diff --git a/cross-compile/mingw/sigrok-cross-mingw b/cross-compile/mingw/sigrok-cross-mingw index bae165f..5cf478f 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" @@ -52,6 +52,23 @@ 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. @@ -72,13 +89,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. - BUILD_TYPE="Debug" -else - BUILD_TYPE="Release" -fi - # Remove build directory contents (if any) and create a new build dir. rm -rf $BUILDDIR mkdir $BUILDDIR @@ -219,7 +229,7 @@ $CMAKE \ -DCMAKE_INSTALL_PREFIX:PATH=$PREFIX \ -DCMAKE_BUILD_TYPE=$BUILD_TYPE \ -DDISABLE_WERROR=y \ - -DENABLE_TESTS=y + -DENABLE_TESTS=y \ . make $PARALLEL $V if [ $DEBUG = 1 ]; then diff --git a/cross-compile/msys2/sigrok-native-msys2 b/cross-compile/msys2/sigrok-native-msys2 index cc3b1c6..98b2487 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 @@ -20,17 +20,14 @@ 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" @@ -38,20 +35,45 @@ 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. # ----------------------------------------------------------------------------- +# 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.3 -# ----------------------------------------------------------------------------- +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 + +# ----------------------------------------------------------------------------- + P="$PREFIX/lib/pkgconfig" C="$C --prefix=$PREFIX" L="--disable-shared --enable-static" @@ -61,10 +83,7 @@ PATH="/mingw32/qt5-static/bin:$PATH" W="mingw-w64-$TARGET" -WGET="wget -c --quiet" -GIT_CLONE="git clone --depth=1" - -REPO_BASE="git://sigrok.org" +mkdir -p $PYPATH # Remove build directory contents (if any) and create a new build dir. rm -rf $BUILDDIR @@ -107,7 +126,6 @@ make install $V cd ../.. # libsigrok -mkdir -p $PYPATH $GIT_CLONE $REPO_BASE/libsigrok cd libsigrok ./autogen.sh @@ -173,7 +191,7 @@ PKG_CONFIG_PATH=$P $SB cmake \ -DCMAKE_INSTALL_PREFIX:PATH=$PREFIX \ -DCMAKE_BUILD_TYPE=$BUILD_TYPE \ -DDISABLE_WERROR=y \ - -DENABLE_TESTS=n + -DENABLE_TESTS=n \ .. $SB make $PARALLEL $V make install $V -- 2.30.2