#!/bin/sh ## ## This file is part of the sigrok-util project. ## ## Copyright (C) 2015 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 # The path where the compiled packages will be installed. PREFIX=$HOME/sr_macosx # 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 # Edit this to control verbose build output. # V="V=1 VERBOSE=1" # Edit this to enable/disable/modify parallel compiles. PARALLEL="-j "`sysctl -n hw.ncpu` # Uncomment the following lines to build with clang and run scan-build. # export CC=llvm-gcc # export CXX=llvm-g++ # SB="scan-build -k -v" # Uncomment the following lines to build with gcc/g++. export CC=gcc export CXX=g++ # We use Qt 5.5 in order to remain compatible with more versions of Mac OS X. QTVER=qt@5.5 # Path to Qt5 binaries (needed for cmake to find the Qt5 libs). export PATH="$(brew --prefix $QTVER)/bin:$PATH" # You usually don't need to change anything below this line. # ----------------------------------------------------------------------------- # PKG_CONFIG_PATH will need to point to pkg-config files of Homebrew's # keg-only formulae. P="$PREFIX/lib/pkgconfig" for FORMULA in libffi python@2 python@3 "$QTVER"; do P="$P:$(brew --prefix "$FORMULA")/lib/pkgconfig" done # Extra options to pass to configure. C="$C --prefix=$PREFIX" # Remove build directory contents (if any) and create a new build dir. rm -rf $BUILDDIR mkdir $BUILDDIR cd $BUILDDIR GIT_CLONE="git clone --depth=1" REPO_BASE="git://sigrok.org" # ----------------------------------------------------------------------------- # libserialport $GIT_CLONE $REPO_BASE/libserialport cd libserialport ./autogen.sh mkdir build cd build ../configure $C $SB make $PARALLEL $V make install $V cd ../.. # libsigrok mkdir -p $PYPATH $GIT_CLONE $REPO_BASE/libsigrok cd libsigrok ./autogen.sh mkdir build cd build PKG_CONFIG_PATH=$P ../configure $C $SB make $PARALLEL $V PYTHONPATH=$PYPATH $SB make install $V $SB make check $V cd ../.. # libsigrokdecode $GIT_CLONE $REPO_BASE/libsigrokdecode cd libsigrokdecode ./autogen.sh mkdir build cd build PKG_CONFIG_PATH=$P ../configure $C $SB make $PARALLEL $V make install $V $SB make check $V cd ../.. # sigrok-firmware $GIT_CLONE $REPO_BASE/sigrok-firmware cd sigrok-firmware ./autogen.sh mkdir build cd build # Nothing gets cross-compiled here, we just need 'make install' basically. ../configure $C make install $V cd ../.. # sigrok-firmware-fx2lafw $GIT_CLONE $REPO_BASE/sigrok-firmware-fx2lafw cd sigrok-firmware-fx2lafw ./autogen.sh mkdir build cd build # We're building the fx2lafw firmware on the host, no need to cross-compile. ../configure $C make $PARALLEL $V make install $V cd ../.. # sigrok-cli $GIT_CLONE $REPO_BASE/sigrok-cli cd sigrok-cli ./autogen.sh mkdir build cd build PKG_CONFIG_PATH=$P ../configure $C $SB make $PARALLEL $V make install $V cd ../.. # PulseView $GIT_CLONE $REPO_BASE/pulseview cd pulseview mkdir build cd build PKG_CONFIG_PATH=$P $SB cmake -DCMAKE_INSTALL_PREFIX:PATH=$PREFIX -DDISABLE_WERROR=y -DENABLE_TESTS=y .. $SB make $PARALLEL $V make install $V $SB make test $V cd ../..