Greetings all, this is my first post here so I apologize ahead of time for any clumsiness in the order and detail of my question. I'm using a Macport install of Gnuradio 3.6.3 (system particulars below). So far I've had a good deal of success with Gnuradio but I'm at the point where I need to start constructing custom modules. Unfortunately, I've encountered some difficulties with the out-of-tree build tutorial using gr_modtool.
Here is a summary of the problems, the first two being general FYI, the last being my question to the group. 1) A minor difficulty is that gr_modtool.py does not appear to be placing the class definitions and the instantiation of the class object(s) in the proper order. This was easy enough to remedy by hand. 2) A second minor difficulty is that makexml does not appear to work at all. Again, this is easy enough to remedy by hand. - My main problem that I'm 8+ hours into is that with my installation I cannot get cmake to set an explicit path to my dylib file and changing DYLD_LIBRARY_PATH produces other conflicts with gnuradio-companion. Unfortunately my competency with cmake/make and modifying related files is minimal. Can someone provide some insight into how I can explicitly link my _howto_swig.so to the full path name of the dylib (libgnuradio-howto.dylib) associated with it during the build process? My suspicion is that I need to modify some aspect of the template in gr_modtool.py but any ideas would be appreciated. For clarity, the details of my system and build problems are provided below sequentially. System: Mac OSX 10.6.8 %uname -a: Darwin Kernel Version 10.8.0: Tue Jun 7 16:33:36 PDT 2011; root:xnu-1504.15.3~1/RELEASE_I386 i386 Gnuradio 3.6.3 from Macports: gnuradio @3.6.3_1+docs+full+grc+jack+orc+portaudio+python27+qtgui+sdl+swig+uhd+wavelet+wxgui Using: gr_modtool.py from github Following tutorial: http://gnuradio.org/redmine/projects/gnuradio/wiki/OutOfTreeModules I followed the tutorial to the letter up to the cmake configuration where I called cmake as follows (macport install): %cmake -DCMAKE_INSTALL_PREFIX=/opt/local ../ This process proceeds and completes unremarkably. At this point %make test Fails. %ctest -V reports: fails with: 2: File "/Users/xxxxxx/Documents/Work/Gnuradio/modules/gr-howto/build/swig/howto_swig.py", line 314, in <module> 2: square_ff = square_ff.make; 2: NameError: name 'square_ff' is not defined 2/2 Test #2: qa_square_ff .....................***Failed 0.32 sec An inspection of howto_swig.py reveals that square_ff = square_ff.make is called before the class square_ff is defined. This appears to be an error in order with how gr_modtool constructs the swig file. Rearranging the order within howto_swig.py eliminates the "name 'square_ff' is not defined error." At this point there is a thread join error in the test which is remedied by rolling back boost 1.52 to boost 1.51 (known issue). An attempt to make the xml file fails entirely: %gr_modtool.py makexml square_ff Operating in directory . GNU Radio module name identified: howto Warning: This is an experimental feature. Don't expect any magic. Searching for matching files in lib/: Making GRC bindings for lib/square_ff_impl.cc... Can't parse the argument list: Found closing parentheses before finishing last argument (this is how far I got: []) Fortunately this is no problem. Easy enough to edit by hand. Execution of %sudo make install completes successfully in the proper directories, or at least the directories I think I want the install to be located. When I obtain a Python command prompt and attempt to import howto I get the following error message: Traceback (most recent call last): File "<stdin>", line 1, in <module> File "/opt/local/lib/python2.7/site-packages/howto/__init__.py", line 45, in <module> from howto_swig import * File "/opt/local/lib/python2.7/site-packages/howto/howto_swig.py", line 26, in <module> _howto_swig = swig_import_helper() File "/opt/local/lib/python2.7/site-packages/howto/howto_swig.py", line 22, in swig_import_helper _mod = imp.load_module('_howto_swig', fp, pathname, description) ImportError: dlopen(/opt/local/lib/python2.7/site-packages/howto/_howto_swig.so, 2): Library not loaded: libgnuradio-howto.dylib Referenced from: /opt/local/lib/python2.7/site-packages/howto/_howto_swig.so Reason: image not found The dylib is properly installed: %ls /opt/local/lib|grep howto libgnuradio-howto.dylib The files appear to be in the desired location: %ls /opt/local/lib/python2.7/site-packages/howto __init__.py __init__.pyc __init__.pyo _howto_swig.so howto_swig.py howto_swig.pyc howto_swig.pyo otool indicates that there is no explicit path to ibgnuradio-howto.dylib %otool -L /opt/local/lib/python2.7/site-packages/howto/_howto_swig.so/opt/local/lib/python2.7/site-packages/howto/_howto_swig.so: /opt/local/Library/Frameworks/Python.framework/Versions/2.7/Python (compatibility version 2.7.0, current version 2.7.0) libgnuradio-howto.dylib (compatibility version 0.0.0, current version 0.0.0) /opt/local/lib/libboost_filesystem-mt.dylib (compatibility version 0.0.0, current version 0.0.0) /opt/local/lib/libboost_system-mt.dylib (compatibility version 0.0.0, current version 0.0.0) /opt/local/lib/libgruel.3.6.4git.dylib (compatibility version 3.6.4, current version 0.0.0) /opt/local/lib/libgnuradio-core.3.6.4git.dylib (compatibility version 3.6.4, current version 0.0.0) /usr/lib/libstdc++.6.dylib (compatibility version 7.0.0, current version 7.9.0) /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 125.2.11) It appears as if I need to set target_link_libraries somewhere in the middle of all of this build process. Unfortunately I cannot simply append /opt/local/lib to DYLD_LIBRARY_PATH as this causes catastrophic errors with the gtk system framework when I attempt to launch gnuradio-companion. Again, I cannot modify DYLD_LIBRARY_PATH. I need to have it linked with its full path during the build process.
_______________________________________________ Discuss-gnuradio mailing list Discuss-gnuradio@gnu.org https://lists.gnu.org/mailman/listinfo/discuss-gnuradio