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