GNU Radio on Mac OS X: Installation Overview

Jon Jacky

4 Jan 2010   Emphasize this page is for OS X 10.4 only, also change gnuradio.org/trac to /redmine


To install GNU Radio on recent Mac hardware and operating systems, consult the Build Guide and Mac Install pages at the GNU Radio Wiki:

http://vps.gnuradio.org/redmine/wiki/gnuradio/BuildGuide,   MacInstall

These pages describe our installation of GNU Radio 3.0 and 3.1 with the USRP hardware on Mac OS X 10.4 Tiger on PPC Macs.

The sources for some of the software packages and the locations of some of the installed software are different in our installation than in the installation described at the Wiki.

Overview Prerequisites Modules Dependencies Locations Environment variables Next steps

Overview

GNU Radio is distributed as source code. Therefore, the installation procedure is rather elaborate: you must also install the tools and libraries needed to build GNU Radio, not just to run it. But once you have done that, you are all set up to be a GNU Radio developer, not just a user.

Prerequisites

We installed Apple's Xcode programming tools and libraries, but we don't use the Xcode GUI to build or install GNU Radio. We do it all from the command line (in a terminal window).

We installed the Subversion (svn) version control system to check out the source code. GNU Radio no longer uses CVS.

We installed MacPorts, a utility for installing and managing open-source software for the Mac.

We installed the tools collectively called the autotools: autoconf, automake, libtool, and pkgconfig. We installed the swig tool. We installed the libraries boost, fftw-3-single, cppunit, and libusb. We installed the SDCC compiler. We got all of these from MacPorts. Details follow.

We installed the wxPython GUI tools and libraries, the NumPy mathematics libraries. We didn't get these from MacPorts. Details follow.

Modules

GNU Radio itself comes organized into several modules (separate collections of files). You choose which modules you want to install (although some modules depend on others). You identify the modules to install in the build configuration.

We install gnuradio-core, gr-wxgui, usrp, gr-usrp, gr-audio-osx, gnuradio-examples, gr-utils, gr-how-to-write-a-block, and omnithread.

The gnuradio-core module is a self-contained system with no GUI and no device support. With just this module, you can code and test signal processing networks that get input and output from arrays, files, or sockets.

The gr-wxgui module adds a GUI, including an oscilloscope and a spectrum analyzer.

The usrp and gr-usrp modules add support for the USRP hardware, which is connected to the computer's USB port, and provides analog input and output at radio frequencies via programmable mixers (up- and down-converters).

The gr-audio-osx modules adds audio input and output using the Mac's built-in sound hardware.

The gnuradio-examples module provides some sample programs that use the other modules. Many programs that demonstrate the USRP are in this module.

The gr-utils module provides more sample programs, emphasizing diagnostics.

Dependencies

Here are the dependencies between some modules and prerequisites (where a: b c means a depends on b and c).

gnuradio-core:boost fftw-3-single cppunit NumPy
gr-wxgui:gnuradio-core NumPy wxPython
usrp:libusb sdcc
gr-usrp:usrp gnuradio-core
gnuradio-examples:usrp gnuradio-core gr-wxgui

In addition to the dependencies shown here, the autotools are needed to build every module. The swig tool is needed to build every module except usrp.

Locations

It is most convenient when the OS X software, the GNU Radio prerequisites, and GNU Radio itself are in different locations (because they are updated on different schedules, etc.)

The prerequisites install themselves in four different places:

/opt/local/... Prerequisites from MacPorts
/usr/local/bin wxPython programs (not used by GNU Radio)
/usr/local/wxPython-ansi-2.6.1.0/... wxPython headers and libraries
/Library/Python/2.3/... wxPython and NumPy Python libraries

You can choose where to build and install GNU Radio itself. We use:

/Users/user/gnuradio/... GNU Radio build directory tree
/Users/user/gnuradio/gnuradio-core/... gnuradio-core module build directory
/Users/user/gnuradio/gr-wxgui/... gr-wxgui module build directory
... other modules ... ... other module build directories ...
   
/Users/user/gr/... GNU Radio installed files for all modules

Where user is the name of your home directory. For example, my installed GNU Radio files are under /Users/jon/gr/....

Checking out the GNU Radio sources from the Subversion repository creates the gnuradio build directory. You may put it wherever you want. It contains the module directories gnuradio/gnuradio-core etc. Details to come.

The configure command you issue when you build GNU Radio puts the installed files under any directory you choose. Making a separate GNU Radio install directory gr is more convenient than installing the GNU Radio files among all the other software under /usr/local or /opt/local. For example, it makes it easy to experiment with multiple installed versions of GNU Radio.

I put both gnuradio and gr under my home directory so I wouldn't have to fuss with permissions, admin accounts, or sudo to build or install.

Environment variables

We define several environment variables to build and run GNU Radio. Details to come.

Next steps

Installing the prerequisites Installing GNU Radio Using the GUI Using the USRP


Jon Jacky, jon@u.washington.edu