|
From: | Peter Horvath |
Subject: | Re: [Discuss-gnuradio] Building gnuradio with Pybombs on MacOSX |
Date: | Sun, 23 Oct 2016 09:37:05 +0200 |
---------- Forwarded message ----------
From: Brian Cuthie <address@hidden>
To: "address@hidden" <address@hidden>
Cc:
Date: Sat, 22 Oct 2016 22:12:19 +0000
Subject: Re: [Discuss-gnuradio] Building gnuradio with Pybombs on MacOSX
Hi Ron,
That’s a great pointer, thanks. I hadn’t noticed that gr-fec also uses gsl.
Looking at the CMake config for gr-fec I can see where it adds the path for libgsl, however, the path definition appears to be missing from the gr-dtv and gr-atsc configs. So while the link command for gr-fec includes "-L/opt/local/lib” to define where to find libgsl, the link commands for gr-atsc and gr-dtv do not and the link fails.
Here’s the link command CMake spit out for gr-dtv swig:
/Applications/Xcode.app/Contents/Developer/Toolchains/ XcodeDefault.xctoolchain/usr/ bin/c++ -std=c++98 -O2 -g -DNDEBUG -bundle -Wl,-headerpad_max_install_ names -o _dtv_swig.so CMakeFiles/_dtv_swig.dir/dtv_ swigPYTHON_wrap.cxx.o /opt/local/Library/Frameworks/ Python.framework/Versions/2.7/ Python ../lib/libgnuradio-dtv.3.7. 11git.dylib ../../gr-analog/lib/ libgnuradio-analog.3.7.11git. dylib ../../gr-filter/lib/ libgnuradio-filter.3.7.11git. dylib ../../gr-fft/lib/libgnuradio- fft.3.7.11git.dylib /opt/local/lib/libfftw3f.dylib /opt/local/lib/libfftw3f_ threads.dylib ../../gr-fec/lib/libgnuradio- fec.3.7.11git.dylib ../../gr-blocks/lib/ libgnuradio-blocks.3.7.11git. dylib ../../gnuradio-runtime/lib/ libgnuradio-runtime.3.7.11git. dylib ../../gnuradio-runtime/lib/ pmt/libgnuradio-pmt.3.7.11git. dylib /opt/local/lib/libboost_date_ time-mt.dylib /opt/local/lib/libboost_ program_options-mt.dylib /opt/local/lib/libboost_ filesystem-mt.dylib /opt/local/lib/libboost_ system-mt.dylib /opt/local/lib/libboost_regex- mt.dylib /opt/local/lib/libboost_ thread-mt.dylib /opt/local/lib/libboost_ chrono-mt.dylib /opt/local/lib/libboost_ atomic-mt.dylib /opt/local/lib/liblog4cpp. dylib -lgsl -lgslcblas -lm ../../volk/lib/libvolk.1.3. dylib /opt/local/lib/liborc-0.4. dylib -Wl,-rpath,/Users/brian/ Projects/gnuradio/test/lib
I can’t really figure why this builds for anyone else. Am I missing something?
-brian
> On Oct 19, 2016, at 10:21 PM, Ron Economos <address@hidden> wrote:
>
> For the gr-dtv issue, it's probably because gr-dtv needs gr-fec for the Reed-Solomon encoder and decoder. But gr-fec needs libgsl for the LDPC stuff.
>
> If you look at the cmake output, it checks for libgsl right before configuring gr-fec. On my Ubuntu 16.04 box, it looks like this.
>
> -- Checking for module 'gsl >= 1.10'
> -- Found gsl , version 2.1
> -- Found GSL: gsl;gslcblas;m
> --
> -- Configuring gr-fec support...
> -- Dependency ENABLE_VOLK = ON
> -- Dependency Boost_FOUND = 1
> -- Dependency ENABLE_GNURADIO_RUNTIME = ON
> -- Dependency ENABLE_GR_BLOCKS = ON
> -- Dependency GSL_FOUND = TRUE
> -- Enabling gr-fec support.
> -- Override with -DENABLE_GR_FEC=ON/OFF
>
> You might as well leave gr-atsc disabled. All of it's functionality has been replicated in gr-dtv, and it's going away in Gnu Radio 3.8.
>
> Ron
>
> On 10/19/2016 03:13 PM, Brian Cuthie wrote:
>> Greetings,
>>
>> After a few failures, I’ve been able to build gnuradio from source using pybombs on a Mac. But I ran into a some issues that I’m hoping someone can share their wisdom on.
>>
>> In no particular order:
>>
>> 1) gr-dtv and gr-atsc fail trying to link to libgsl.
>>
>> The libraries are installed, but there doesn’t seem to be any relevant path information on the link command line. I suspect this is a cmake configuration error, but I’m still finding my way around cmake and haven’t yet even been able to see where the cmake configuration requires gsl for those modules.
>>
>> I had to temporarily exclude gr-dtv and gr-atsc by adding the following to config_opt in the gnuradio.lwr recipe file:
>>
>> -DENABLE_GR_DTV=0
>> -DENABLE_GR_ATSC=0
>>
>> 2) On a successful build, gnuradio-companion crashed miserably because everything was not linked to the same python interpreter. Adding specific path definitions to the recipe fixed that problem.
>>
>> -DPYTHON_EXECUTABLE=/opt/local/bin/python2.7
>> -DPYTHON_INCLUDE_DIR=/opt/local/Library/Frameworks/ Python.framework/Versions/2.7/ Headers
>> -DPYTHON_LIBRARY=/opt/local/Library/Frameworks/Python. framework/Versions/2.7/Python
>> -DSPHINX_EXECUTABLE=/opt/local/bin/rst2html-2.7.py).
>>
>> I can see where this is a mac specific issue because with ports we end up with competing python interpreters (the one supplied with the system, and the one used by ports in /opt). Perhaps there’s a solution in cmake or a conditional configuration directive might be a useful enhancement to pybombs.
>>
>> 3) Thrift failed to build because it wanted to link to a static version of some boost libraries. But the default port install of boost doesn’t include the static version of its libraries. So I had to pre-install boost with the “-no_static” option. Again, this is a Mac specific thing. But a conditional directive in pybombs recipes might also help here.
>>
>> Any advice is welcome. Thanks in advance.
>>
>> -brian
>>
>>
>>
>>
>> _______________________________________________
>> Discuss-gnuradio mailing list
>> address@hidden
>> https://lists.gnu.org/mailman/listinfo/discuss-gnuradio
>
>
> _______________________________________________
> Discuss-gnuradio mailing list
> address@hidden
> https://lists.gnu.org/mailman/listinfo/discuss-gnuradio
[Prev in Thread] | Current Thread | [Next in Thread] |