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