]> sigrok.org Git - sigrok-util.git/blame - cross-compile/linux/sigrok-cross-linux
sigrok-cross-linux: Add some workarounds for FreeBSD issues.
[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
18## along with this program; if not, write to the Free Software
19## Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
20##
21
22set -e
23
24# Uncomment/set the following to match your cross-toolchain setup.
25# TOOLCHAIN=...
26# TOOLCHAIN_TRIPLET=...
27# C="--host=$TOOLCHAIN_TRIPLET"
28# export PATH=$TOOLCHAIN/bin:$PATH
29
30# The path where the compiled packages will be installed.
31PREFIX=$HOME/sr
32
33# The path where to download files to and where to build packages.
07947dda 34BUILDDIR=./build
50f0dffc 35
91036110
UH
36# The path where the libsigrok Python bindings will be installed.
37PYPATH=$PREFIX/lib/python2.7/site-packages
38
d2012547
UH
39# JDK include path. Usually found automatically, except on FreeBSD.
40if [ `uname` = "FreeBSD" ]; then
41 JDK="--with-jni-include-path=/usr/local/openjdk7/include"
42fi
43
cabab8f7 44# Edit this to control verbose build output.
a58f6b98 45# V="V=1 VERBOSE=1"
cabab8f7 46
50f0dffc
UH
47# Edit this to enable/disable/modify parallel compiles.
48PARALLEL="-j 2"
49
3ed306f8
UH
50# Uncomment the following lines to build with clang and run scan-build.
51# export CC=clang
52# export CXX=clang++
53# SB="scan-build -k -v"
54
50f0dffc
UH
55# You usually don't need to change anything below this line.
56
57# -----------------------------------------------------------------------------
58
59P="$PREFIX/lib/pkgconfig"
60C="$C --prefix=$PREFIX"
61
62# Remove build directory contents (if any) and create a new build dir.
63rm -rf $BUILDDIR
64mkdir $BUILDDIR
65cd $BUILDDIR
66
a51ca6bd
UH
67GIT_CLONE="git clone --depth=1"
68
50f0dffc
UH
69# -----------------------------------------------------------------------------
70
71# libserialport
a51ca6bd 72$GIT_CLONE git://sigrok.org/libserialport
50f0dffc
UH
73cd libserialport
74./autogen.sh
4ff67f5a
UH
75mkdir build
76cd build
77../configure $C
cabab8f7
UJ
78$SB make $PARALLEL $V
79make install $V
4ff67f5a 80cd ../..
50f0dffc
UH
81
82# libsigrok
91036110 83mkdir -p $PYPATH
a51ca6bd 84$GIT_CLONE git://sigrok.org/libsigrok
50f0dffc
UH
85cd libsigrok
86./autogen.sh
4ff67f5a
UH
87mkdir build
88cd build
d2012547 89PKG_CONFIG_PATH=$P ../configure $C $JDK
cabab8f7
UJ
90$SB make $PARALLEL $V
91PYTHONPATH=$PYPATH $SB make install $V
92$SB make check $V
4ff67f5a 93cd ../..
50f0dffc
UH
94
95# libsigrokdecode
a51ca6bd 96$GIT_CLONE git://sigrok.org/libsigrokdecode
50f0dffc
UH
97cd libsigrokdecode
98./autogen.sh
4ff67f5a
UH
99mkdir build
100cd build
101PKG_CONFIG_PATH=$P ../configure $C
cabab8f7
UJ
102$SB make $PARALLEL $V
103make install $V
104$SB make check $V
4ff67f5a 105cd ../..
50f0dffc
UH
106
107# sigrok-firmware
a51ca6bd 108$GIT_CLONE git://sigrok.org/sigrok-firmware
50f0dffc
UH
109cd sigrok-firmware
110./autogen.sh
4ff67f5a
UH
111mkdir build
112cd build
50f0dffc 113# Nothing gets cross-compiled here, we just need 'make install' basically.
4ff67f5a 114../configure $C
cabab8f7 115make install $V
4ff67f5a 116cd ../..
50f0dffc
UH
117
118# sigrok-firmware-fx2lafw
a51ca6bd 119$GIT_CLONE git://sigrok.org/sigrok-firmware-fx2lafw
50f0dffc
UH
120cd sigrok-firmware-fx2lafw
121./autogen.sh
4ff67f5a
UH
122mkdir build
123cd build
50f0dffc 124# We're building the fx2lafw firmware on the host, no need to cross-compile.
4ff67f5a 125../configure $C
cabab8f7
UJ
126make $PARALLEL $V
127make install $V
4ff67f5a 128cd ../..
50f0dffc
UH
129
130# sigrok-cli
a51ca6bd 131$GIT_CLONE git://sigrok.org/sigrok-cli
50f0dffc
UH
132cd sigrok-cli
133./autogen.sh
4ff67f5a
UH
134mkdir build
135cd build
d2012547
UH
136if [ `uname` = "FreeBSD" ]; then
137 # Temporary fix for: http://sigrok.org/bugzilla/show_bug.cgi?id=552
138 PKG_CONFIG_PATH=$P ../configure $C LDFLAGS=-lusb
139else
140 PKG_CONFIG_PATH=$P ../configure $C
141fi
cabab8f7
UJ
142$SB make $PARALLEL $V
143make install $V
4ff67f5a 144cd ../..
50f0dffc
UH
145
146# PulseView
a51ca6bd 147$GIT_CLONE git://sigrok.org/pulseview
50f0dffc 148cd pulseview
4ff67f5a
UH
149mkdir build
150cd build
3ed306f8 151PKG_CONFIG_PATH=$P $SB cmake -DCMAKE_INSTALL_PREFIX:PATH=$PREFIX -DDISABLE_WERROR=y -DENABLE_TESTS=y ..
cabab8f7
UJ
152$SB make $PARALLEL $V
153make install $V
154$SB make test $V
4ff67f5a 155cd ../..