X-Git-Url: https://sigrok.org/gitweb/?p=sigrok-util.git;a=blobdiff_plain;f=cross-compile%2Flinux%2Fsigrok-cross-linux;h=6ba70378a02fe2ecdd06e5d0a9103db301730f4f;hp=d667e153f50bc0997e57fc08e73cee07b57a9bf6;hb=149202b4da310b2828447711db6adbe07e7d815a;hpb=a51ca6bd7de99d4340c0706284eea06b3482bf32 diff --git a/cross-compile/linux/sigrok-cross-linux b/cross-compile/linux/sigrok-cross-linux index d667e15..6ba7037 100755 --- a/cross-compile/linux/sigrok-cross-linux +++ b/cross-compile/linux/sigrok-cross-linux @@ -1,4 +1,4 @@ -#!/bin/bash +#!/bin/sh ## ## This file is part of the sigrok-util project. ## @@ -15,8 +15,7 @@ ## 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 @@ -33,9 +32,28 @@ 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" +# Edit this to enable/disable building certain components. +BUILD_SIGROK_FIRMWARE_FX2LAFW=1 + +# 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. # ----------------------------------------------------------------------------- @@ -50,68 +68,94 @@ cd $BUILDDIR GIT_CLONE="git clone --depth=1" +REPO_BASE="git://sigrok.org" + # ----------------------------------------------------------------------------- # libserialport -$GIT_CLONE git://sigrok.org/libserialport +$GIT_CLONE $REPO_BASE/libserialport cd libserialport ./autogen.sh -./configure $C -make $PARALLEL -make install -cd .. +mkdir build +cd build +$SB ../configure $C +$SB make $PARALLEL $V +make install $V +cd ../.. # libsigrok -$GIT_CLONE git://sigrok.org/libsigrok +mkdir -p $PYPATH +$GIT_CLONE $REPO_BASE/libsigrok cd libsigrok ./autogen.sh -PKG_CONFIG_PATH=$P ./configure $C -make $PARALLEL -make install -cd .. +mkdir build +cd build +PKG_CONFIG_PATH=$P $SB ../configure $C $JDK +$SB make $PARALLEL $V +PYTHONPATH=$PYPATH $SB make install $V +$SB make check $V +cd ../.. # libsigrokdecode -$GIT_CLONE git://sigrok.org/libsigrokdecode +$GIT_CLONE $REPO_BASE/libsigrokdecode cd libsigrokdecode ./autogen.sh -./configure $C -make $PARALLEL -make install -cd .. +mkdir build +cd build +PKG_CONFIG_PATH=$P $SB ../configure $C +$SB make $PARALLEL $V +make install $V +$SB make check $V +cd ../.. # sigrok-firmware -$GIT_CLONE git://sigrok.org/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 -cd .. +$SB ../configure $C +make install $V +cd ../.. +if [ $BUILD_SIGROK_FIRMWARE_FX2LAFW = 1 ]; then # sigrok-firmware-fx2lafw -$GIT_CLONE git://sigrok.org/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 -make install -cd .. +$SB ../configure $C +make $PARALLEL $V +make install $V +cd ../.. +fi # sigrok-cli -$GIT_CLONE git://sigrok.org/sigrok-cli +$GIT_CLONE $REPO_BASE/sigrok-cli cd sigrok-cli ./autogen.sh -PKG_CONFIG_PATH=$P ./configure $C -make $PARALLEL -make install -cd .. +mkdir build +cd build +if [ `uname` = "FreeBSD" ]; then + # Temporary fix for: http://sigrok.org/bugzilla/show_bug.cgi?id=552 + PKG_CONFIG_PATH=$P $SB ../configure $C LDFLAGS=-lusb +else + PKG_CONFIG_PATH=$P $SB ../configure $C +fi +$SB make $PARALLEL $V +make install $V +cd ../.. # PulseView -$GIT_CLONE git://sigrok.org/pulseview +$GIT_CLONE $REPO_BASE/pulseview cd pulseview -PKG_CONFIG_PATH=$P cmake -DCMAKE_INSTALL_PREFIX:PATH=$PREFIX -DDISABLE_WERROR=y -DENABLE_DECODE=y . -make $PARALLEL -make install -cd .. - +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 ../..