Difference between revisions of "Mac OS X"

From sigrok
Jump to navigation Jump to search
(Update Qt Mac OS X URL.)
(48 intermediate revisions by 13 users not shown)
Line 1: Line 1:
[[File:sigrok macosx.png|right|thumb|320px|sigrok-gui on Mac OS X]]
This page describes how to build the sigrok subprojects on Mac OS X.


This page describes how to build sigrok on Mac OS X.
== Binary Disk Images (DMG) ==


== How to build and run the Qt GUI ==
We provide nightly Mac OS X disk image files (DMG) for [[PulseView]] (require OSX 10.9 Mavericks or higher). Please test and [http://sigrok.org/bugzilla/ report] any issues you encounter.


$ '''git clone git://sigrok.git.sourceforge.net/gitroot/sigrok/sigrok'''
<gallery widths="120px" heights="70px" perrow="5">
$ '''cd sigrok'''
File:Pulseview macosx dmg.png
$ '''./autogen.sh'''
File:Pulseview macosx.png
$ '''./configure --prefix=/opt/mine/DIR/sigrok-git'''
</gallery>
$ '''cd /opt/mine/DIR'''
$ '''sudo stow sigrok-git'''
$ '''cd -'''
$ '''cd gui'''
$ '''qmake -spec macx-g++'''
$ '''make'''
$ '''open sigrok-gui.app'''


== Notes ==
Downloads:


To build on Snow Leopard (10.6) you need to use the [http://qt.nokia.com/downloads/qt-for-open-source-cpp-development-on-mac-os-x Cocoa (32bit and 64bit) Qt libraries]. Don't use the default download link on that page but the one you can find further down the page.
* [http://sigrok.org/jenkins/job/sigrok-native-macosx/platform=native-macosx/lastSuccessfulBuild/artifact/cross-compile/macosx/build_app/PulseView_nightly.dmg PulseView_nightly.dmg] (64bit)


Currently we are using [http://www.macports.org/ macports] for the libusb dependency and are relying on the fact that macports are installed in /opt/local.
The files are self-contained and ship with all required libraries, decoders and all freely distributable firmware files.


== TODO ==
If you need to provide additional firmware files, you can copy them to any of the standard paths where [[libsigrok]] searches for firmware files. See [http://sigrok.org/gitweb/?p=libsigrok.git;a=blob;f=README.devices README.devices] for details.


* Find a sane way to bundle libusb with the sigrok.app.
== Building from source ==
* Include an icon with the app.


== Resources ==
'''Note:''' This should generally not be necessary for users, please just use the provided [[Mac_OS_X#Binary_Disk_Images_.28DMG.29|nightly installers]] (see above).


* [http://doc.trolltech.com/qq/qq09-mac-deployment.html Qt: Deploying Applications on Mac OS X]
=== Building from source using Homebrew ===
* [http://developer.apple.com/mac/library/documentation/CoreFoundation/Conceptual/CFBundles/Introduction/Introduction.html#//apple_ref/doc/uid/10000123i-CH1-SW1 Documentation about bundles]
 
'''Linking pulseview fails on osx with glib 2.58 [https://sigrok.org/bugzilla/show_bug.cgi?id=1281 Bug 1281]. glib 2.56.1 is known to work.'''
 
'''Currently the sigrok-util script expects to see qt version 5.5, which has been removed from main homebrew repository as of 2018-10-01. See [https://sigrok.org/bugzilla/show_bug.cgi?id=1304 Bug #1304]. You can edit the sigrok-native-macosx script to use a different qt version. qt versions >5.9.3 might be affected by widget repaint issues, see [https://sigrok.org/bugzilla/show_bug.cgi?id=1305 bug 1305]'''
 
 
This is the recommended way of building sigrok from source on Mac OS X.
 
Install [http://brew.sh Homebrew] (not covered here, see Homebrew docs for details) and all sigrok build dependencies:
 
<small>
$ '''brew install libzip libftdi libusb libtool glibmm doxygen autoconf-archive sdcc python3 boost qt pkg-config cmake glib autoconf automake swig check'''
</small>
 
Clone [http://sigrok.org/gitweb/?p=sigrok-util.git sigrok-util]:
 
<small>
$ '''git clone git://sigrok.org/sigrok-util'''
$ '''cd sigrok-util/cross-compile/macosx'''
$ '''./sigrok-native-macosx'''
</small>
 
This script will download all the code, compile and install it in the '''$HOME/sr_macosx''' directory.
 
To conveniently use the tools you need to export the additional path.
 
<small>
$ '''export PATH=$HOME/sr_macosx/bin:$PATH'''
</small>
 
=== Building from source using MacPorts ===
 
Not supported by us. Please use one of the methods described above.
 
While it shouldn't be too much work to adapt the [http://sigrok.org/gitweb/?p=sigrok-util.git;a=blob;f=cross-compile/macosx/sigrok-native-macosx sigrok-native-macosx] script to also work for [https://www.macports.org/ MacPorts], this is currently not recommended or supported. Patches to support both Homebrew and MacPorts in that script are welcome, though.
 
=== Building from source manually ===
 
Not supported by us. Please use one of the methods described above.
 
While this is technically possible if you know what you're doing, we don't recommend or support it. It's a lot easier to use the provided DMG files or build using the [http://sigrok.org/gitweb/?p=sigrok-util.git;a=blob;f=cross-compile/macosx/sigrok-native-macosx sigrok-native-macosx] script (see above).
 
=== Building from source using existing Homebrew packages/taps ===
 
Not supported by us. Please use one of the methods described above.
 
There are various Homebrew recipies for sigrok, e.g. in [https://github.com/Homebrew/homebrew-science homebrew-science] or in [https://github.com/rene-dev/homebrew-sigrok rene-dev's homebrew-sigrok repo]. However, none of them are officially maintained or recommended or supported by us, and they might be incomplete and/or outdated, YMMV.

Revision as of 14:58, 11 October 2018

This page describes how to build the sigrok subprojects on Mac OS X.

Binary Disk Images (DMG)

We provide nightly Mac OS X disk image files (DMG) for PulseView (require OSX 10.9 Mavericks or higher). Please test and report any issues you encounter.

Downloads:

The files are self-contained and ship with all required libraries, decoders and all freely distributable firmware files.

If you need to provide additional firmware files, you can copy them to any of the standard paths where libsigrok searches for firmware files. See README.devices for details.

Building from source

Note: This should generally not be necessary for users, please just use the provided nightly installers (see above).

Building from source using Homebrew

Linking pulseview fails on osx with glib 2.58 Bug 1281. glib 2.56.1 is known to work.

Currently the sigrok-util script expects to see qt version 5.5, which has been removed from main homebrew repository as of 2018-10-01. See Bug #1304. You can edit the sigrok-native-macosx script to use a different qt version. qt versions >5.9.3 might be affected by widget repaint issues, see bug 1305


This is the recommended way of building sigrok from source on Mac OS X.

Install Homebrew (not covered here, see Homebrew docs for details) and all sigrok build dependencies:

$ brew install libzip libftdi libusb libtool glibmm doxygen autoconf-archive sdcc python3 boost qt pkg-config cmake glib autoconf automake swig check

Clone sigrok-util:

$ git clone git://sigrok.org/sigrok-util
$ cd sigrok-util/cross-compile/macosx
$ ./sigrok-native-macosx

This script will download all the code, compile and install it in the $HOME/sr_macosx directory.

To conveniently use the tools you need to export the additional path.

$ export PATH=$HOME/sr_macosx/bin:$PATH

Building from source using MacPorts

Not supported by us. Please use one of the methods described above.

While it shouldn't be too much work to adapt the sigrok-native-macosx script to also work for MacPorts, this is currently not recommended or supported. Patches to support both Homebrew and MacPorts in that script are welcome, though.

Building from source manually

Not supported by us. Please use one of the methods described above.

While this is technically possible if you know what you're doing, we don't recommend or support it. It's a lot easier to use the provided DMG files or build using the sigrok-native-macosx script (see above).

Building from source using existing Homebrew packages/taps

Not supported by us. Please use one of the methods described above.

There are various Homebrew recipies for sigrok, e.g. in homebrew-science or in rene-dev's homebrew-sigrok repo. However, none of them are officially maintained or recommended or supported by us, and they might be incomplete and/or outdated, YMMV.