]> sigrok.org Git - sigrok-util.git/blame - cross-compile/linux/sigrok-cross-linux
sigrok-cross-linux: Set BUILD_SIGROK_FIRMWARE_FX2LAFW=1.
[sigrok-util.git] / cross-compile / linux / sigrok-cross-linux
CommitLineData
ab2ccf3d 1#!/bin/sh
50f0dffc
UH
2##
3## This file is part of the sigrok-util project.
4##
5## Copyright (C) 2014 Uwe Hermann <uwe@hermann-uwe.de>
6##
7## This program is free software; you can redistribute it and/or modify
8## it under the terms of the GNU General Public License as published by
9## the Free Software Foundation; either version 2 of the License, or
10## (at your option) any later version.
11##
12## This program is distributed in the hope that it will be useful,
13## but WITHOUT ANY WARRANTY; without even the implied warranty of
14## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15## GNU General Public License for more details.
16##
17## You should have received a copy of the GNU General Public License
b65a0b06 18## along with this program; if not, see <http://www.gnu.org/licenses/>.
50f0dffc
UH
19##
20
21set -e
22
23# Uncomment/set the following to match your cross-toolchain setup.
24# TOOLCHAIN=...
25# TOOLCHAIN_TRIPLET=...
26# C="--host=$TOOLCHAIN_TRIPLET"
27# export PATH=$TOOLCHAIN/bin:$PATH
28
29# The path where the compiled packages will be installed.
30PREFIX=$HOME/sr
31
32# The path where to download files to and where to build packages.
07947dda 33BUILDDIR=./build
50f0dffc 34
91036110
UH
35# The path where the libsigrok Python bindings will be installed.
36PYPATH=$PREFIX/lib/python2.7/site-packages
37
d2012547
UH
38# JDK include path. Usually found automatically, except on FreeBSD.
39if [ `uname` = "FreeBSD" ]; then
40 JDK="--with-jni-include-path=/usr/local/openjdk7/include"
41fi
42
cabab8f7 43# Edit this to control verbose build output.
a58f6b98 44# V="V=1 VERBOSE=1"
cabab8f7 45
50f0dffc
UH
46# Edit this to enable/disable/modify parallel compiles.
47PARALLEL="-j 2"
48
473d0272 49# Edit this to enable/disable building certain components.
61c873af 50BUILD_SIGROK_FIRMWARE_FX2LAFW=1
473d0272 51
3ed306f8
UH
52# Uncomment the following lines to build with clang and run scan-build.
53# export CC=clang
54# export CXX=clang++
55# SB="scan-build -k -v"
56
50f0dffc
UH
57# You usually don't need to change anything below this line.
58
59# -----------------------------------------------------------------------------
60
61P="$PREFIX/lib/pkgconfig"
62C="$C --prefix=$PREFIX"
63
64# Remove build directory contents (if any) and create a new build dir.
65rm -rf $BUILDDIR
66mkdir $BUILDDIR
67cd $BUILDDIR
68
a51ca6bd
UH
69GIT_CLONE="git clone --depth=1"
70
80895515
UH
71REPO_BASE="git://sigrok.org"
72
50f0dffc
UH
73# -----------------------------------------------------------------------------
74
75# libserialport
80895515 76$GIT_CLONE $REPO_BASE/libserialport
50f0dffc
UH
77cd libserialport
78./autogen.sh
4ff67f5a
UH
79mkdir build
80cd build
0f564dab 81$SB ../configure $C
cabab8f7
UJ
82$SB make $PARALLEL $V
83make install $V
4ff67f5a 84cd ../..
50f0dffc
UH
85
86# libsigrok
91036110 87mkdir -p $PYPATH
80895515 88$GIT_CLONE $REPO_BASE/libsigrok
50f0dffc
UH
89cd libsigrok
90./autogen.sh
4ff67f5a
UH
91mkdir build
92cd build
0f564dab 93PKG_CONFIG_PATH=$P $SB ../configure $C $JDK
cabab8f7
UJ
94$SB make $PARALLEL $V
95PYTHONPATH=$PYPATH $SB make install $V
96$SB make check $V
4ff67f5a 97cd ../..
50f0dffc
UH
98
99# libsigrokdecode
80895515 100$GIT_CLONE $REPO_BASE/libsigrokdecode
50f0dffc
UH
101cd libsigrokdecode
102./autogen.sh
4ff67f5a
UH
103mkdir build
104cd build
0f564dab 105PKG_CONFIG_PATH=$P $SB ../configure $C
cabab8f7
UJ
106$SB make $PARALLEL $V
107make install $V
108$SB make check $V
4ff67f5a 109cd ../..
50f0dffc
UH
110
111# sigrok-firmware
80895515 112$GIT_CLONE $REPO_BASE/sigrok-firmware
50f0dffc
UH
113cd sigrok-firmware
114./autogen.sh
4ff67f5a
UH
115mkdir build
116cd build
50f0dffc 117# Nothing gets cross-compiled here, we just need 'make install' basically.
0f564dab 118$SB ../configure $C
cabab8f7 119make install $V
4ff67f5a 120cd ../..
50f0dffc 121
473d0272 122if [ $BUILD_SIGROK_FIRMWARE_FX2LAFW = 1 ]; then
50f0dffc 123# sigrok-firmware-fx2lafw
80895515 124$GIT_CLONE $REPO_BASE/sigrok-firmware-fx2lafw
50f0dffc
UH
125cd sigrok-firmware-fx2lafw
126./autogen.sh
4ff67f5a
UH
127mkdir build
128cd build
50f0dffc 129# We're building the fx2lafw firmware on the host, no need to cross-compile.
0f564dab 130$SB ../configure $C
cabab8f7
UJ
131make $PARALLEL $V
132make install $V
4ff67f5a 133cd ../..
473d0272 134fi
50f0dffc
UH
135
136# sigrok-cli
80895515 137$GIT_CLONE $REPO_BASE/sigrok-cli
50f0dffc
UH
138cd sigrok-cli
139./autogen.sh
4ff67f5a
UH
140mkdir build
141cd build
d2012547
UH
142if [ `uname` = "FreeBSD" ]; then
143 # Temporary fix for: http://sigrok.org/bugzilla/show_bug.cgi?id=552
0f564dab 144 PKG_CONFIG_PATH=$P $SB ../configure $C LDFLAGS=-lusb
d2012547 145else
0f564dab 146 PKG_CONFIG_PATH=$P $SB ../configure $C
d2012547 147fi
cabab8f7
UJ
148$SB make $PARALLEL $V
149make install $V
4ff67f5a 150cd ../..
50f0dffc
UH
151
152# PulseView
80895515 153$GIT_CLONE $REPO_BASE/pulseview
50f0dffc 154cd pulseview
4ff67f5a
UH
155mkdir build
156cd build
803377fc 157PKG_CONFIG_PATH=$P $SB cmake -DCMAKE_INSTALL_PREFIX:PATH=$PREFIX -DDISABLE_WERROR=y -DENABLE_TESTS=y -DCMAKE_EXPORT_COMPILE_COMMANDS=y ..
cabab8f7
UJ
158$SB make $PARALLEL $V
159make install $V
160$SB make test $V
4ff67f5a 161cd ../..