]> sigrok.org Git - sigrok-util.git/blame_incremental - cross-compile/linux/sigrok-cross-linux
sigrok-fwextract-dreamsourcelab-dslogic: Hardcode known-good firmware.
[sigrok-util.git] / cross-compile / linux / sigrok-cross-linux
... / ...
CommitLineData
1#!/bin/sh
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, see <http://www.gnu.org/licenses/>.
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.
33BUILDDIR=./build
34
35# The path where the libsigrok Python bindings will be installed.
36PYPATH=$PREFIX/lib/python2.7/site-packages
37
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
43# Edit this to control verbose build output.
44# V="V=1 VERBOSE=1"
45
46# Edit this to enable/disable/modify parallel compiles.
47PARALLEL="-j 2"
48
49# Uncomment the following lines to build with clang and run scan-build.
50# export CC=clang
51# export CXX=clang++
52# SB="scan-build -k -v"
53
54# You usually don't need to change anything below this line.
55
56# -----------------------------------------------------------------------------
57
58P="$PREFIX/lib/pkgconfig"
59C="$C --prefix=$PREFIX"
60
61# Remove build directory contents (if any) and create a new build dir.
62rm -rf $BUILDDIR
63mkdir $BUILDDIR
64cd $BUILDDIR
65
66GIT_CLONE="git clone --depth=1"
67
68# -----------------------------------------------------------------------------
69
70# libserialport
71$GIT_CLONE git://sigrok.org/libserialport
72cd libserialport
73./autogen.sh
74mkdir build
75cd build
76../configure $C
77$SB make $PARALLEL $V
78make install $V
79cd ../..
80
81# libsigrok
82mkdir -p $PYPATH
83$GIT_CLONE git://sigrok.org/libsigrok
84cd libsigrok
85./autogen.sh
86mkdir build
87cd build
88PKG_CONFIG_PATH=$P ../configure $C $JDK
89$SB make $PARALLEL $V
90PYTHONPATH=$PYPATH $SB make install $V
91$SB make check $V
92cd ../..
93
94# libsigrokdecode
95$GIT_CLONE git://sigrok.org/libsigrokdecode
96cd libsigrokdecode
97./autogen.sh
98mkdir build
99cd build
100PKG_CONFIG_PATH=$P ../configure $C
101$SB make $PARALLEL $V
102make install $V
103$SB make check $V
104cd ../..
105
106# sigrok-firmware
107$GIT_CLONE git://sigrok.org/sigrok-firmware
108cd sigrok-firmware
109./autogen.sh
110mkdir build
111cd build
112# Nothing gets cross-compiled here, we just need 'make install' basically.
113../configure $C
114make install $V
115cd ../..
116
117# sigrok-firmware-fx2lafw
118$GIT_CLONE git://sigrok.org/sigrok-firmware-fx2lafw
119cd sigrok-firmware-fx2lafw
120./autogen.sh
121mkdir build
122cd build
123# We're building the fx2lafw firmware on the host, no need to cross-compile.
124../configure $C
125make $PARALLEL $V
126make install $V
127cd ../..
128
129# sigrok-cli
130$GIT_CLONE git://sigrok.org/sigrok-cli
131cd sigrok-cli
132./autogen.sh
133mkdir build
134cd build
135if [ `uname` = "FreeBSD" ]; then
136 # Temporary fix for: http://sigrok.org/bugzilla/show_bug.cgi?id=552
137 PKG_CONFIG_PATH=$P ../configure $C LDFLAGS=-lusb
138else
139 PKG_CONFIG_PATH=$P ../configure $C
140fi
141$SB make $PARALLEL $V
142make install $V
143cd ../..
144
145# PulseView
146$GIT_CLONE git://sigrok.org/pulseview
147cd pulseview
148mkdir build
149cd build
150PKG_CONFIG_PATH=$P $SB cmake -DCMAKE_INSTALL_PREFIX:PATH=$PREFIX -DDISABLE_WERROR=y -DENABLE_TESTS=y ..
151$SB make $PARALLEL $V
152make install $V
153$SB make test $V
154cd ../..