]> sigrok.org Git - sigrok-util.git/blob - cross-compile/macosx/sigrok-native-macosx
sigrok-native-macosx: Add facility to do verbose builds.
[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, 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 # The path where the compiled packages will be installed.
25 PREFIX=$HOME/sr_macosx
26
27 # The path where to download files to and where to build packages.
28 BUILDDIR=./build
29
30 # The path where the libsigrok Python bindings will be installed.
31 PYPATH=$PREFIX/lib/python2.7/site-packages
32
33 # Edit this to control verbose build output.
34 # V="V=1 VERBOSE=1"
35
36 # Edit this to enable/disable/modify parallel compiles.
37 PARALLEL="-j 2"
38
39 # Uncomment the following lines to build with clang and run scan-build.
40 # export CC=llvm-gcc
41 # export CXX=llvm-g++
42 # SB="scan-build -k -v"
43
44 # Uncomment the following lines to build with gcc/g++.
45 export CC=gcc-4.9
46 export CXX=g++-4.9
47
48 # Path to Qt binaries (needed for cmake to find the Qt libs).
49 # export PATH="/usr/local/opt/qt/bin:$PATH" # Qt4
50 export PATH="/usr/local/opt/qt52/bin:$PATH" # Qt5
51
52 # Path to Python 2/3 pkg-config files.
53 # In Homebrew, pkg-config files of "keg-only" formulas (Python is one of them)
54 # aren't installed into /usr/local/lib/pkgconfig (we manually reference them).
55 PY2="/usr/local/opt/python/Frameworks/Python.framework/Versions/2.7/lib/pkgconfig"
56 PY3="/usr/local/opt/python3/Frameworks/Python.framework/Versions/3.4/lib/pkgconfig"
57
58 # You usually don't need to change anything below this line.
59
60 # -----------------------------------------------------------------------------
61
62 P="$PREFIX/lib/pkgconfig:$PY2:$PY3"
63 C="$C --prefix=$PREFIX"
64
65 # Remove build directory contents (if any) and create a new build dir.
66 rm -rf $BUILDDIR
67 mkdir $BUILDDIR
68 cd $BUILDDIR
69
70 GIT_CLONE="git clone --depth=1"
71
72 # -----------------------------------------------------------------------------
73
74 # libserialport
75 $GIT_CLONE git://sigrok.org/libserialport
76 cd libserialport
77 ./autogen.sh
78 mkdir build
79 cd build
80 ../configure $C
81 $SB make $PARALLEL $V
82 make install $V
83 cd ../..
84
85 # libsigrok
86 mkdir -p $PYPATH
87 $GIT_CLONE git://sigrok.org/libsigrok
88 cd libsigrok
89 ./autogen.sh
90 mkdir build
91 cd build
92 PKG_CONFIG_PATH=$P ../configure $C --disable-java
93 $SB make $PARALLEL $V
94 PYTHONPATH=$PYPATH $SB make install $V
95 $SB make check $V
96 cd ../..
97
98 # libsigrokdecode
99 $GIT_CLONE git://sigrok.org/libsigrokdecode
100 cd libsigrokdecode
101 ./autogen.sh
102 mkdir build
103 cd build
104 PKG_CONFIG_PATH=$P ../configure $C
105 $SB make $PARALLEL $V
106 make install $V
107 $SB make check $V
108 cd ../..
109
110 # sigrok-firmware
111 $GIT_CLONE git://sigrok.org/sigrok-firmware
112 cd sigrok-firmware
113 ./autogen.sh
114 mkdir build
115 cd build
116 # Nothing gets cross-compiled here, we just need 'make install' basically.
117 ../configure $C
118 make install $V
119 cd ../..
120
121 # sigrok-firmware-fx2lafw
122 $GIT_CLONE git://sigrok.org/sigrok-firmware-fx2lafw
123 cd sigrok-firmware-fx2lafw
124 ./autogen.sh
125 mkdir build
126 cd build
127 # We're building the fx2lafw firmware on the host, no need to cross-compile.
128 ../configure $C
129 make $PARALLEL $V
130 make install $V
131 cd ../..
132
133 # sigrok-cli
134 $GIT_CLONE git://sigrok.org/sigrok-cli
135 cd sigrok-cli
136 ./autogen.sh
137 mkdir build
138 cd build
139 PKG_CONFIG_PATH=$P ../configure $C
140 $SB make $PARALLEL $V
141 make install $V
142 cd ../..
143
144 # PulseView
145 $GIT_CLONE git://sigrok.org/pulseview
146 cd pulseview
147 mkdir build
148 cd build
149 PKG_CONFIG_PATH=$P $SB cmake -DCMAKE_INSTALL_PREFIX:PATH=$PREFIX -DDISABLE_WERROR=y -DENABLE_TESTS=y ..
150 $SB make $PARALLEL $V
151 make install $V
152 $SB make test $V
153 cd ../..
154