mingw: README: Add hidapi.
[sigrok-util.git] / cross-compile / macosx / sigrok-native-macosx
1 #!/bin/sh
2 ##
3 ## This file is part of the sigrok-util project.
4 ##
5 ## Copyright (C) 2015 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
21 set -e
22
23 # The path where the compiled packages will be installed.
24 PREFIX=$HOME/sr_macosx
25
26 # The path where to download files to and where to build packages.
27 BUILDDIR=./build
28
29 # The path where the libsigrok Python bindings will be installed.
30 PYPATH=$PREFIX/lib/python2.7/site-packages
31
32 # Edit this to control verbose build output.
33 # V="V=1 VERBOSE=1"
34
35 # Edit this to enable/disable/modify parallel compiles.
36 PARALLEL="-j "`sysctl -n hw.ncpu`
37
38 # Uncomment the following lines to build with clang and run scan-build.
39 # export CC=llvm-gcc
40 # export CXX=llvm-g++
41 # SB="scan-build -k -v"
42
43 # Uncomment the following lines to build with gcc/g++.
44 export CC=gcc
45 export CXX=g++
46
47 # We use Qt 5.5 in order to remain compatible with more versions of Mac OS X.
48 QTVER=qt@5.5
49
50 # Path to Qt5 binaries (needed for cmake to find the Qt5 libs).
51 export PATH="$(brew --prefix $QTVER)/bin:$PATH"
52
53 # You usually don't need to change anything below this line.
54
55 # -----------------------------------------------------------------------------
56
57 # PKG_CONFIG_PATH will need to point to pkg-config files of Homebrew's
58 # keg-only formulae.
59 P="$PREFIX/lib/pkgconfig"
60 for FORMULA in libffi python@2 python@3 "$QTVER"; do
61     P="$P:$(brew --prefix "$FORMULA")/lib/pkgconfig"
62 done
63
64 # Extra options to pass to configure.
65 C="$C --prefix=$PREFIX"
66
67 # Remove build directory contents (if any) and create a new build dir.
68 rm -rf $BUILDDIR
69 mkdir $BUILDDIR
70 cd $BUILDDIR
71
72 GIT_CLONE="git clone --depth=1"
73
74 REPO_BASE="git://sigrok.org"
75
76 # -----------------------------------------------------------------------------
77
78 # libserialport
79 $GIT_CLONE $REPO_BASE/libserialport
80 cd libserialport
81 ./autogen.sh
82 mkdir build
83 cd build
84 ../configure $C
85 $SB make $PARALLEL $V
86 make install $V
87 cd ../..
88
89 # libsigrok
90 mkdir -p $PYPATH
91 $GIT_CLONE $REPO_BASE/libsigrok
92 cd libsigrok
93 ./autogen.sh
94 mkdir build
95 cd build
96 PKG_CONFIG_PATH=$P ../configure $C
97 $SB make $PARALLEL $V
98 PYTHONPATH=$PYPATH $SB make install $V
99 $SB make check $V
100 cd ../..
101
102 # libsigrokdecode
103 $GIT_CLONE $REPO_BASE/libsigrokdecode
104 cd libsigrokdecode
105 ./autogen.sh
106 mkdir build
107 cd build
108 PKG_CONFIG_PATH=$P ../configure $C
109 $SB make $PARALLEL $V
110 make install $V
111 $SB make check $V
112 cd ../..
113
114 # sigrok-firmware
115 $GIT_CLONE $REPO_BASE/sigrok-firmware
116 cd sigrok-firmware
117 ./autogen.sh
118 mkdir build
119 cd build
120 # Nothing gets cross-compiled here, we just need 'make install' basically.
121 ../configure $C
122 make install $V
123 cd ../..
124
125 # sigrok-firmware-fx2lafw
126 $GIT_CLONE $REPO_BASE/sigrok-firmware-fx2lafw
127 cd sigrok-firmware-fx2lafw
128 ./autogen.sh
129 mkdir build
130 cd build
131 # We're building the fx2lafw firmware on the host, no need to cross-compile.
132 ../configure $C
133 make $PARALLEL $V
134 make install $V
135 cd ../..
136
137 # sigrok-cli
138 $GIT_CLONE $REPO_BASE/sigrok-cli
139 cd sigrok-cli
140 ./autogen.sh
141 mkdir build
142 cd build
143 PKG_CONFIG_PATH=$P ../configure $C
144 $SB make $PARALLEL $V
145 make install $V
146 cd ../..
147
148 # PulseView
149 $GIT_CLONE $REPO_BASE/pulseview
150 cd pulseview
151 mkdir build
152 cd build
153 PKG_CONFIG_PATH=$P $SB cmake -DCMAKE_INSTALL_PREFIX:PATH=$PREFIX -DDISABLE_WERROR=y -DENABLE_TESTS=y ..
154 $SB make $PARALLEL $V
155 make install $V
156 $SB make test $V
157 cd ../..
158