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