]> sigrok.org Git - sigrok-util.git/blame_incremental - cross-compile/macosx/sigrok-native-macosx
sigrok-fwextract-kingst-la2016: concentrate RCC flags in one spot
[sigrok-util.git] / cross-compile / macosx / sigrok-native-macosx
... / ...
CommitLineData
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
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
32# Edit this to control verbose build output.
33# V="V=1 VERBOSE=1"
34
35# Edit this to enable/disable/modify parallel compiles.
36PARALLEL="-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++.
44export CC=gcc
45export CXX=g++
46
47# We use Qt 5.5 in order to remain compatible with more versions of Mac OS X.
48QTVER=qt@5.5
49
50# Path to Qt5 binaries (needed for cmake to find the Qt5 libs).
51export 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.
59P="$PREFIX/lib/pkgconfig"
60for FORMULA in libffi python@2 python@3 "$QTVER"; do
61 P="$P:$(brew --prefix "$FORMULA")/lib/pkgconfig"
62done
63
64# Extra options to pass to configure.
65C="$C --prefix=$PREFIX"
66
67# Remove build directory contents (if any) and create a new build dir.
68rm -rf $BUILDDIR
69mkdir $BUILDDIR
70cd $BUILDDIR
71
72GIT_CLONE="git clone --depth=1"
73
74REPO_BASE="git://sigrok.org"
75
76# -----------------------------------------------------------------------------
77
78# libserialport
79$GIT_CLONE $REPO_BASE/libserialport
80cd libserialport
81./autogen.sh
82mkdir build
83cd build
84../configure $C
85$SB make $PARALLEL $V
86make install $V
87cd ../..
88
89# libsigrok
90mkdir -p $PYPATH
91$GIT_CLONE $REPO_BASE/libsigrok
92cd libsigrok
93./autogen.sh
94mkdir build
95cd build
96PKG_CONFIG_PATH=$P ../configure $C
97$SB make $PARALLEL $V
98PYTHONPATH=$PYPATH $SB make install $V
99$SB make check $V
100cd ../..
101
102# libsigrokdecode
103$GIT_CLONE $REPO_BASE/libsigrokdecode
104cd libsigrokdecode
105./autogen.sh
106mkdir build
107cd build
108PKG_CONFIG_PATH=$P ../configure $C
109$SB make $PARALLEL $V
110make install $V
111$SB make check $V
112cd ../..
113
114# sigrok-firmware
115$GIT_CLONE $REPO_BASE/sigrok-firmware
116cd sigrok-firmware
117./autogen.sh
118mkdir build
119cd build
120# Nothing gets cross-compiled here, we just need 'make install' basically.
121../configure $C
122make install $V
123cd ../..
124
125# sigrok-firmware-fx2lafw
126$GIT_CLONE $REPO_BASE/sigrok-firmware-fx2lafw
127cd sigrok-firmware-fx2lafw
128./autogen.sh
129mkdir build
130cd build
131# We're building the fx2lafw firmware on the host, no need to cross-compile.
132../configure $C
133make $PARALLEL $V
134make install $V
135cd ../..
136
137# sigrok-cli
138$GIT_CLONE $REPO_BASE/sigrok-cli
139cd sigrok-cli
140./autogen.sh
141mkdir build
142cd build
143PKG_CONFIG_PATH=$P ../configure $C
144$SB make $PARALLEL $V
145make install $V
146cd ../..
147
148# PulseView
149$GIT_CLONE $REPO_BASE/pulseview
150cd pulseview
151mkdir build
152cd build
153PKG_CONFIG_PATH=$P $SB cmake -DCMAKE_INSTALL_PREFIX:PATH=$PREFIX -DDISABLE_WERROR=y -DENABLE_TESTS=y ..
154$SB make $PARALLEL $V
155make install $V
156$SB make test $V
157cd ../..
158