]> sigrok.org Git - sigrok-util.git/blobdiff - 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
index 9e341232bb867143c4e699c862df6cf570cebc32..cb1435e4769ca69499a002acc635661ea6616ec4 100755 (executable)
@@ -15,8 +15,7 @@
 ## GNU General Public License for more details.
 ##
 ## You should have received a copy of the GNU General Public License
-## along with this program; if not, write to the Free Software
-## Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
+## along with this program; if not, see <http://www.gnu.org/licenses/>.
 ##
 
 set -e
@@ -30,8 +29,11 @@ BUILDDIR=./build
 # The path where the libsigrok Python bindings will be installed.
 PYPATH=$PREFIX/lib/python2.7/site-packages
 
+# Edit this to control verbose build output.
+# V="V=1 VERBOSE=1"
+
 # Edit this to enable/disable/modify parallel compiles.
-PARALLEL="-j 2"
+PARALLEL="-j "`sysctl -n hw.ncpu`
 
 # Uncomment the following lines to build with clang and run scan-build.
 # export CC=llvm-gcc
@@ -39,24 +41,26 @@ PARALLEL="-j 2"
 # SB="scan-build -k -v"
 
 # Uncomment the following lines to build with gcc/g++.
-export CC=gcc-4.9
-export CXX=g++-4.9
+export CC=gcc
+export CXX=g++
+
+# We use Qt 5.5 in order to remain compatible with more versions of Mac OS X.
+QTVER=qt@5.5
 
-# Path to Qt binaries (needed for cmake to find the Qt libs).
-# export PATH="/usr/local/opt/qt/bin:$PATH" # Qt4
-export PATH="/usr/local/opt/qt52/bin:$PATH" # Qt5
+# Path to Qt5 binaries (needed for cmake to find the Qt5 libs).
+export PATH=`brew list $QTVER | grep bin | head -n 1 | xargs dirname`":$PATH"
 
 # Path to Python 2/3 pkg-config files.
 # In Homebrew, pkg-config files of "keg-only" formulas (Python is one of them)
 # aren't installed into /usr/local/lib/pkgconfig (we manually reference them).
-PY2="/usr/local/opt/python/Frameworks/Python.framework/Versions/2.7/lib/pkgconfig"
-PY3="/usr/local/opt/python3/Frameworks/Python.framework/Versions/3.4/lib/pkgconfig"
+PY2=`brew list python | grep pkgconfig | head -n 1 | xargs dirname`
+PY3=`brew list python3 | grep pkgconfig | head -n 1 | xargs dirname`
 
 # You usually don't need to change anything below this line.
 
 # -----------------------------------------------------------------------------
 
-P="$PREFIX/lib/pkgconfig:$PY2:$PY3"
+P="$PREFIX/lib/pkgconfig:/usr/local/opt/$QTVER/lib/pkgconfig:$PY2:$PY3"
 C="$C --prefix=$PREFIX"
 
 # Remove build directory contents (if any) and create a new build dir.
@@ -66,86 +70,88 @@ cd $BUILDDIR
 
 GIT_CLONE="git clone --depth=1"
 
+REPO_BASE="git://sigrok.org"
+
 # -----------------------------------------------------------------------------
 
 # libserialport
-$GIT_CLONE git://sigrok.org/libserialport
+$GIT_CLONE $REPO_BASE/libserialport
 cd libserialport
 ./autogen.sh
 mkdir build
 cd build
 ../configure $C
-$SB make $PARALLEL
-make install
+$SB make $PARALLEL $V
+make install $V
 cd ../..
 
 # libsigrok
 mkdir -p $PYPATH
-$GIT_CLONE git://sigrok.org/libsigrok
+$GIT_CLONE $REPO_BASE/libsigrok
 cd libsigrok
 ./autogen.sh
 mkdir build
 cd build
-PKG_CONFIG_PATH=$P ../configure $C --disable-java
-$SB make $PARALLEL
-PYTHONPATH=$PYPATH $SB make install
-$SB make check
+PKG_CONFIG_PATH=$P ../configure $C
+$SB make $PARALLEL $V
+PYTHONPATH=$PYPATH $SB make install $V
+$SB make check $V
 cd ../..
 
 # libsigrokdecode
-$GIT_CLONE git://sigrok.org/libsigrokdecode
+$GIT_CLONE $REPO_BASE/libsigrokdecode
 cd libsigrokdecode
 ./autogen.sh
 mkdir build
 cd build
 PKG_CONFIG_PATH=$P ../configure $C
-$SB make $PARALLEL
-make install
-$SB make check
+$SB make $PARALLEL $V
+make install $V
+$SB make check $V
 cd ../..
 
 # sigrok-firmware
-$GIT_CLONE git://sigrok.org/sigrok-firmware
+$GIT_CLONE $REPO_BASE/sigrok-firmware
 cd sigrok-firmware
 ./autogen.sh
 mkdir build
 cd build
 # Nothing gets cross-compiled here, we just need 'make install' basically.
 ../configure $C
-make install
+make install $V
 cd ../..
 
 # sigrok-firmware-fx2lafw
-$GIT_CLONE git://sigrok.org/sigrok-firmware-fx2lafw
+$GIT_CLONE $REPO_BASE/sigrok-firmware-fx2lafw
 cd sigrok-firmware-fx2lafw
 ./autogen.sh
 mkdir build
 cd build
 # We're building the fx2lafw firmware on the host, no need to cross-compile.
 ../configure $C
-make $PARALLEL
-make install
+make $PARALLEL $V
+make install $V
 cd ../..
 
 # sigrok-cli
-$GIT_CLONE git://sigrok.org/sigrok-cli
+$GIT_CLONE $REPO_BASE/sigrok-cli
 cd sigrok-cli
 ./autogen.sh
 mkdir build
 cd build
 PKG_CONFIG_PATH=$P ../configure $C
-$SB make $PARALLEL
-make install
+$SB make $PARALLEL $V
+make install $V
 cd ../..
 
 # PulseView
-$GIT_CLONE git://sigrok.org/pulseview
+$GIT_CLONE $REPO_BASE/pulseview
 cd pulseview
 mkdir build
 cd build
 PKG_CONFIG_PATH=$P $SB cmake -DCMAKE_INSTALL_PREFIX:PATH=$PREFIX -DDISABLE_WERROR=y -DENABLE_TESTS=y ..
-$SB make $PARALLEL
-make install
-$SB make test
+$SB make $PARALLEL $V
+make install $V
+$SB make test $V
 cd ../..