]> sigrok.org Git - sigrok-util.git/blob - cross-compile/linux/sigrok-cross-linux
sigrok-cross-linux: Add some workarounds for FreeBSD issues.
[sigrok-util.git] / cross-compile / linux / sigrok-cross-linux
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
22 set -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.
31 PREFIX=$HOME/sr
32
33 # The path where to download files to and where to build packages.
34 BUILDDIR=./build
35
36 # The path where the libsigrok Python bindings will be installed.
37 PYPATH=$PREFIX/lib/python2.7/site-packages
38
39 # JDK include path. Usually found automatically, except on FreeBSD.
40 if [ `uname` = "FreeBSD" ]; then
41         JDK="--with-jni-include-path=/usr/local/openjdk7/include"
42 fi
43
44 # Edit this to control verbose build output.
45 # V="V=1 VERBOSE=1"
46
47 # Edit this to enable/disable/modify parallel compiles.
48 PARALLEL="-j 2"
49
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
55 # You usually don't need to change anything below this line.
56
57 # -----------------------------------------------------------------------------
58
59 P="$PREFIX/lib/pkgconfig"
60 C="$C --prefix=$PREFIX"
61
62 # Remove build directory contents (if any) and create a new build dir.
63 rm -rf $BUILDDIR
64 mkdir $BUILDDIR
65 cd $BUILDDIR
66
67 GIT_CLONE="git clone --depth=1"
68
69 # -----------------------------------------------------------------------------
70
71 # libserialport
72 $GIT_CLONE git://sigrok.org/libserialport
73 cd libserialport
74 ./autogen.sh
75 mkdir build
76 cd build
77 ../configure $C
78 $SB make $PARALLEL $V
79 make install $V
80 cd ../..
81
82 # libsigrok
83 mkdir -p $PYPATH
84 $GIT_CLONE git://sigrok.org/libsigrok
85 cd libsigrok
86 ./autogen.sh
87 mkdir build
88 cd build
89 PKG_CONFIG_PATH=$P ../configure $C $JDK
90 $SB make $PARALLEL $V
91 PYTHONPATH=$PYPATH $SB make install $V
92 $SB make check $V
93 cd ../..
94
95 # libsigrokdecode
96 $GIT_CLONE git://sigrok.org/libsigrokdecode
97 cd libsigrokdecode
98 ./autogen.sh
99 mkdir build
100 cd build
101 PKG_CONFIG_PATH=$P ../configure $C
102 $SB make $PARALLEL $V
103 make install $V
104 $SB make check $V
105 cd ../..
106
107 # sigrok-firmware
108 $GIT_CLONE git://sigrok.org/sigrok-firmware
109 cd sigrok-firmware
110 ./autogen.sh
111 mkdir build
112 cd build
113 # Nothing gets cross-compiled here, we just need 'make install' basically.
114 ../configure $C
115 make install $V
116 cd ../..
117
118 # sigrok-firmware-fx2lafw
119 $GIT_CLONE git://sigrok.org/sigrok-firmware-fx2lafw
120 cd sigrok-firmware-fx2lafw
121 ./autogen.sh
122 mkdir build
123 cd build
124 # We're building the fx2lafw firmware on the host, no need to cross-compile.
125 ../configure $C
126 make $PARALLEL $V
127 make install $V
128 cd ../..
129
130 # sigrok-cli
131 $GIT_CLONE git://sigrok.org/sigrok-cli
132 cd sigrok-cli
133 ./autogen.sh
134 mkdir build
135 cd build
136 if [ `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
139 else
140         PKG_CONFIG_PATH=$P ../configure $C
141 fi
142 $SB make $PARALLEL $V
143 make install $V
144 cd ../..
145
146 # PulseView
147 $GIT_CLONE git://sigrok.org/pulseview
148 cd pulseview
149 mkdir build
150 cd build
151 PKG_CONFIG_PATH=$P $SB cmake -DCMAKE_INSTALL_PREFIX:PATH=$PREFIX -DDISABLE_WERROR=y -DENABLE_TESTS=y ..
152 $SB make $PARALLEL $V
153 make install $V
154 $SB make test $V
155 cd ../..