]> sigrok.org Git - sigrok-util.git/blob - cross-compile/macosx/sigrok-native-macosx
license: remove FSF postal address from boiler plate license text
[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 2"
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-4.9
45 export CXX=g++-4.9
46
47 # Path to Qt binaries (needed for cmake to find the Qt libs).
48 # export PATH="/usr/local/opt/qt/bin:$PATH" # Qt4
49 export PATH="/usr/local/opt/qt52/bin:$PATH" # Qt5
50
51 # Path to Python 2/3 pkg-config files.
52 # In Homebrew, pkg-config files of "keg-only" formulas (Python is one of them)
53 # aren't installed into /usr/local/lib/pkgconfig (we manually reference them).
54 PY2="/usr/local/opt/python/Frameworks/Python.framework/Versions/2.7/lib/pkgconfig"
55 PY3="/usr/local/opt/python3/Frameworks/Python.framework/Versions/3.4/lib/pkgconfig"
56
57 # You usually don't need to change anything below this line.
58
59 # -----------------------------------------------------------------------------
60
61 P="$PREFIX/lib/pkgconfig:$PY2:$PY3"
62 C="$C --prefix=$PREFIX"
63
64 # Remove build directory contents (if any) and create a new build dir.
65 rm -rf $BUILDDIR
66 mkdir $BUILDDIR
67 cd $BUILDDIR
68
69 GIT_CLONE="git clone --depth=1"
70
71 # -----------------------------------------------------------------------------
72
73 # libserialport
74 $GIT_CLONE git://sigrok.org/libserialport
75 cd libserialport
76 ./autogen.sh
77 mkdir build
78 cd build
79 ../configure $C
80 $SB make $PARALLEL $V
81 make install $V
82 cd ../..
83
84 # libsigrok
85 mkdir -p $PYPATH
86 $GIT_CLONE git://sigrok.org/libsigrok
87 cd libsigrok
88 ./autogen.sh
89 mkdir build
90 cd build
91 PKG_CONFIG_PATH=$P ../configure $C
92 $SB make $PARALLEL $V
93 PYTHONPATH=$PYPATH $SB make install $V
94 $SB make check $V
95 cd ../..
96
97 # libsigrokdecode
98 $GIT_CLONE git://sigrok.org/libsigrokdecode
99 cd libsigrokdecode
100 ./autogen.sh
101 mkdir build
102 cd build
103 PKG_CONFIG_PATH=$P ../configure $C
104 $SB make $PARALLEL $V
105 make install $V
106 $SB make check $V
107 cd ../..
108
109 # sigrok-firmware
110 $GIT_CLONE git://sigrok.org/sigrok-firmware
111 cd sigrok-firmware
112 ./autogen.sh
113 mkdir build
114 cd build
115 # Nothing gets cross-compiled here, we just need 'make install' basically.
116 ../configure $C
117 make install $V
118 cd ../..
119
120 # sigrok-firmware-fx2lafw
121 $GIT_CLONE git://sigrok.org/sigrok-firmware-fx2lafw
122 cd sigrok-firmware-fx2lafw
123 ./autogen.sh
124 mkdir build
125 cd build
126 # We're building the fx2lafw firmware on the host, no need to cross-compile.
127 ../configure $C
128 make $PARALLEL $V
129 make install $V
130 cd ../..
131
132 # sigrok-cli
133 $GIT_CLONE git://sigrok.org/sigrok-cli
134 cd sigrok-cli
135 ./autogen.sh
136 mkdir build
137 cd build
138 PKG_CONFIG_PATH=$P ../configure $C
139 $SB make $PARALLEL $V
140 make install $V
141 cd ../..
142
143 # PulseView
144 $GIT_CLONE git://sigrok.org/pulseview
145 cd pulseview
146 mkdir build
147 cd build
148 PKG_CONFIG_PATH=$P $SB cmake -DCMAKE_INSTALL_PREFIX:PATH=$PREFIX -DDISABLE_WERROR=y -DENABLE_TESTS=y ..
149 $SB make $PARALLEL $V
150 make install $V
151 $SB make test $V
152 cd ../..
153