#!/bin/sh ## ## This file is part of the sigrok-util project. ## ## Copyright (C) 2014 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 # Uncomment/set the following to match your cross-toolchain setup. # TOOLCHAIN=... # TOOLCHAIN_TRIPLET=... # C="--host=$TOOLCHAIN_TRIPLET" # export PATH=$TOOLCHAIN/bin:$PATH # The path where the compiled packages will be installed. PREFIX=$HOME/sr # 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 # JDK include path. Usually found automatically, except on FreeBSD. if [ `uname` = "FreeBSD" ]; then JDK="--with-jni-include-path=/usr/local/openjdk7/include" fi # Edit this to control verbose build output. # V="V=1 VERBOSE=1" # Edit this to enable/disable/modify parallel compiles. PARALLEL="-j 2" # Uncomment the following lines to build with clang and run scan-build. # export CC=clang # export CXX=clang++ # SB="scan-build -k -v" # You usually don't need to change anything below this line. # ----------------------------------------------------------------------------- P="$PREFIX/lib/pkgconfig" 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 $JDK $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 if [ `uname` = "FreeBSD" ]; then # Temporary fix for: http://sigrok.org/bugzilla/show_bug.cgi?id=552 PKG_CONFIG_PATH=$P ../configure $C LDFLAGS=-lusb else PKG_CONFIG_PATH=$P ../configure $C fi $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 -DCMAKE_EXPORT_COMPILE_COMMANDS=y .. $SB make $PARALLEL $V make install $V $SB make test $V cd ../..