]> sigrok.org Git - sigrok-util.git/blame - cross-compile/macosx/sigrok-native-macosx
macosx: Hardcode the Qt version to 5.5 for now.
[sigrok-util.git] / cross-compile / macosx / sigrok-native-macosx
CommitLineData
4b4f052c
UH
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
b65a0b06 18## along with this program; if not, see <http://www.gnu.org/licenses/>.
4b4f052c
UH
19##
20
21set -e
22
23# The path where the compiled packages will be installed.
24PREFIX=$HOME/sr_macosx
25
26# The path where to download files to and where to build packages.
27BUILDDIR=./build
28
29# The path where the libsigrok Python bindings will be installed.
30PYPATH=$PREFIX/lib/python2.7/site-packages
31
2793b933
UH
32# Edit this to control verbose build output.
33# V="V=1 VERBOSE=1"
34
4b4f052c 35# Edit this to enable/disable/modify parallel compiles.
6a8ce4e0 36PARALLEL="-j "`sysctl -n hw.ncpu`
4b4f052c
UH
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++.
6a8ce4e0
PET
44export CC=gcc
45export CXX=g++
4b4f052c 46
20e302a2
UH
47# We use Qt 5.5 in order to remain compatible with more versions of Mac OS X.
48QTVER=qt@5.5
49
6afe728b 50# Path to Qt5 binaries (needed for cmake to find the Qt5 libs).
20e302a2 51export PATH=`brew list $QTVER | grep bin | head -n 1 | xargs dirname`":$PATH"
4b4f052c
UH
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).
6a8ce4e0
PET
56PY2=`brew list python | grep pkgconfig | head -n 1 | xargs dirname`
57PY3=`brew list python3 | grep pkgconfig | head -n 1 | xargs dirname`
4b4f052c
UH
58
59# You usually don't need to change anything below this line.
60
61# -----------------------------------------------------------------------------
62
20e302a2 63P="$PREFIX/lib/pkgconfig:/usr/local/opt/$QTVER/lib/pkgconfig:$PY2:$PY3"
4b4f052c
UH
64C="$C --prefix=$PREFIX"
65
66# Remove build directory contents (if any) and create a new build dir.
67rm -rf $BUILDDIR
68mkdir $BUILDDIR
69cd $BUILDDIR
70
71GIT_CLONE="git clone --depth=1"
72
7323621e
UH
73REPO_BASE="git://sigrok.org"
74
4b4f052c
UH
75# -----------------------------------------------------------------------------
76
77# libserialport
7323621e 78$GIT_CLONE $REPO_BASE/libserialport
4b4f052c
UH
79cd libserialport
80./autogen.sh
81mkdir build
82cd build
83../configure $C
2793b933
UH
84$SB make $PARALLEL $V
85make install $V
4b4f052c
UH
86cd ../..
87
88# libsigrok
89mkdir -p $PYPATH
7323621e 90$GIT_CLONE $REPO_BASE/libsigrok
4b4f052c
UH
91cd libsigrok
92./autogen.sh
93mkdir build
94cd build
56363ab9 95PKG_CONFIG_PATH=$P ../configure $C
2793b933
UH
96$SB make $PARALLEL $V
97PYTHONPATH=$PYPATH $SB make install $V
98$SB make check $V
4b4f052c
UH
99cd ../..
100
101# libsigrokdecode
7323621e 102$GIT_CLONE $REPO_BASE/libsigrokdecode
4b4f052c
UH
103cd libsigrokdecode
104./autogen.sh
105mkdir build
106cd build
107PKG_CONFIG_PATH=$P ../configure $C
2793b933
UH
108$SB make $PARALLEL $V
109make install $V
110$SB make check $V
4b4f052c
UH
111cd ../..
112
113# sigrok-firmware
7323621e 114$GIT_CLONE $REPO_BASE/sigrok-firmware
4b4f052c
UH
115cd sigrok-firmware
116./autogen.sh
117mkdir build
118cd build
119# Nothing gets cross-compiled here, we just need 'make install' basically.
120../configure $C
2793b933 121make install $V
4b4f052c
UH
122cd ../..
123
124# sigrok-firmware-fx2lafw
7323621e 125$GIT_CLONE $REPO_BASE/sigrok-firmware-fx2lafw
4b4f052c
UH
126cd sigrok-firmware-fx2lafw
127./autogen.sh
128mkdir build
129cd build
130# We're building the fx2lafw firmware on the host, no need to cross-compile.
131../configure $C
2793b933
UH
132make $PARALLEL $V
133make install $V
4b4f052c
UH
134cd ../..
135
136# sigrok-cli
7323621e 137$GIT_CLONE $REPO_BASE/sigrok-cli
4b4f052c
UH
138cd sigrok-cli
139./autogen.sh
140mkdir build
141cd build
142PKG_CONFIG_PATH=$P ../configure $C
2793b933
UH
143$SB make $PARALLEL $V
144make install $V
4b4f052c
UH
145cd ../..
146
147# PulseView
7323621e 148$GIT_CLONE $REPO_BASE/pulseview
4b4f052c
UH
149cd pulseview
150mkdir build
151cd build
152PKG_CONFIG_PATH=$P $SB cmake -DCMAKE_INSTALL_PREFIX:PATH=$PREFIX -DDISABLE_WERROR=y -DENABLE_TESTS=y ..
2793b933
UH
153$SB make $PARALLEL $V
154make install $V
155$SB make test $V
4b4f052c
UH
156cd ../..
157