[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Discuss-gnuradio] MacPorts and out-of-tree modules
From: |
Michael Dickens |
Subject: |
Re: [Discuss-gnuradio] MacPorts and out-of-tree modules |
Date: |
Fri, 26 Jul 2013 21:49:58 -0400 |
Hi Péter - It's been a while since I tried OOT modules with GNU Radio; it's
certainly possible that the CMake scripts don't quite work on OSX right now.
I'll add testing an OOT module to my queue for by mid-August.
One recommendation is to not use /opt/local to install the module; use
/usr/local instead, or ~/GNURadio/local, or some other non-MacPorts location.
MacPorts is happiest when it has its space undisturbed by anything else.
CMake should handle setting the libraries and Python scripts correctly, so then
all you should need to do is set PYTHONPATH to point to your new location's
site-packages directory.
If the Python script is found, but importing it fails because the .dylib was
not found, then you'll need to check out the .so file that is loaded by Python;
it should be located in the same directory as the Python scripts. If the file
is "foo.so", you can do "otool -L foo.so" to see what libraries the .so file is
linked against. If the .dylib is found but the wrong directory, you can use
"install_name_tool" to change it to what it is supposed to be -- and, then
please let me know so that I can fix the issue within CMake.
To build GNU Radio outside of MacPorts, you'll want to use something like (all
one line; watch for line breaks due to email), assuming from the top-level GNU
Radio source directory:
mkdir build
cd build
CC=/usr/bin/gcc CXX=/usr/bin/g++ cmake
-DPYTHON_EXECUTABLE=/opt/local/bin/python2.7
-DPYTHON_INCLUDE_DIR=/opt/local/Library/Frameworks/Python.framework/Headers
-DPYTHON_LIBRARY=/opt/local/Library/Frameworks/Python.framework/Python
-DSPHINX_EXECUTABLE=/opt/local/bin/rst2html-2.7.py
-DCMAKE_INSTALL_PREFIX=/usr/local ..
make
make test
and so forth. CMake does not do a great job finding Python on OSX when
multiple versions are installed; hence all of those defines.
gcc-4.7 from MacPorts cannot be used to compile GNU Radio just yet; we're
working on that issue. If you want to use something other than Clang, you can
do that via (e.g., if you are using 10.8):
sudo port install gnuradio +full configure.compiler=llvm-gcc-4.2
to use Apple's Xcode LLVM; for more info, see < http://guide.macports.org > and
search for "configure.compiler".
I hope this helps. I'll be away for the coming week; hopefully someone else
can jump in if you can't figure this out. - MLD
On Jul 26, 2013, at 7:50 PM, Péter Horváth <address@hidden> wrote:
> I try to use my out-of-tree modules using OS X 10.8 and the MacPorts version
> of gnuradio. I'm not very experienced with OS X. Gnuradio itself works well
> when installed using MacPorts.
>
> I configure the out-of-tree modules with
> DGR_PYTHON_DIR=/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages
>
> DCMAKE_INSTALL_PREFIX=/opt/local
>
> (after having patched GrPython.cmake so that it indeed handles GR_PYTHON_DIR)
>
> So, the Python stuff ends up in this esoteric site-packages folder instead of
> /opt/local/lib/..., exactly as core the gnuradio modules do, and the .dylib
> file goes to /opt/local/lib, where the core gnuradio stuff seems to reside as
> well. However, although I can import the swig'd Python modules, the .dylib is
> not found. Core gnuradio stuff works. What am I missing here?
>
> On a side note, how do you configure gnuradio itself if you want to compile
> it yourself instead of getting it from the macports distribution? Are those
> two options above correct and sufficient?
>
> I've got gcc-4.7 from macports, but still the macports-gnuradio gets compiled
> with CLANG. Is that normal? :)