This how-to describes the step-by-step installation process of GNU Radio 3.3.0 on a MacMini running MacOSX Server 10.6.3 “Snow Leopard” through MacPorts.

Problem 1: MacPorts requires XCode

The MacOSX Server comes with a DVD containing XCode, but the MacMini I got has no DVD drive. So I tried the “App Store” (available only after the system updates and a reboot). The thing is, the App Store contains only XCode 4.x, which requires MacOSX 10.7! So you have to register for a free “Apple Developer” account at (lengthy process) and download the 4.5GB “XCode 3.2.6 and iOS SDK 4.3” .dmg disk image. During installation, make sure “Unix Development” and “System Tools” are selected.

Problem 2: Corporate firewall blocks rsync

The first thing to do after installing MacPorts is to “sync”, i.e. download the repository contents by running the command sudo port sync. In my case the command failed and after some investigation I found out my corporate firewall blocks the rsync protocol (TCP port 873). At moments like this I’m glad I have an always-on, ssh-accessible machine at home 🙂 The workaround is to use the less efficient http method by editing /opt/local/etc/macports/sources.conf as described here: PortTreeTarball.

After that, just run sudo port install gnuradio and you’re done!


Building the GIT tree

If instead you want to build from the latest git tree (e.g. to be able to use UHD), here’s how:

1) Install git, wget and get the sources
sudo port install git-core
git clone gnuradio
git clone uhd
2) Install dependencies
sudo port install libtool gawk pkgconfig zlib automake swig-python \
  guile cppunit fftw-3-single py26-numpy boost py26-wxpython \
  gsl sdcc doxygen libusb-legacy
3) Build & install uhd/host and extract the UHD pre-built images
cd uhd/host; cmake; make clean; make; sudo make install
cd ../../; tar xf current.tar.gz; sudo mkdir -p /usr/local/share/uhd/images; sudo mv UHD*/share/uhd/images/* /usr/local/share/uhd/images
4) Use glibtoolize

You need to make the bootstrap scripts of gnuradio use glibtoolize rather than libtoolize. Do this also for any subproject bootstrap scripts (at the time of writing, this was necessary only for  volk)

5) Build & install GNU Radio
./bootstrap; ./configure; make; sudo make install