diff --git a/apps/CMakeLists.txt b/apps/CMakeLists.txt
index 0a91a0d..48fabb0 100644
--- a/apps/CMakeLists.txt
+++ b/apps/CMakeLists.txt
@@ -18,34 +18,26 @@
 # Boston, MA 02110-1301, USA.
 
 include(GrPython)
-
-#SET(APPS_DIR ${CMAKE_SOURCE_DIR}/apps)
-
-#SET(GRCC_COMMAND ${PC_GNURADIO_RUNTIME_PREFIX}/${GR_RUNTIME_DIR}/grcc)
-#SET(BLOCK_PATH ../grc/)
-
-#ADD_CUSTOM_TARGET(airprobe_file.py ALL)
-#ADD_CUSTOM_COMMAND(
-# TARGET airprobe_file.py
-# COMMAND GRC_BLOCKS_PATH=${BLOCK_PATH} ${GRCC_COMMAND} -d ${CMAKE_CURRENT_BINARY_DIR} 
-# ARGS "airprobe_file.grc"
-# WORKING_DIRECTORY ${APPS_DIR}
-#)
-
-#ADD_CUSTOM_TARGET(airprobe_rtlsdr.py ALL)
-#ADD_CUSTOM_COMMAND(
-# TARGET airprobe_rtlsdr.py
-# COMMAND GRC_BLOCKS_PATH=${BLOCK_PATH} ${GRCC_COMMAND} -d ${CMAKE_CURRENT_BINARY_DIR} 
-# ARGS "airprobe_rtlsdr.grc"
-# WORKING_DIRECTORY ${APPS_DIR}
-#)
+include(CreateSymlink)
+add_subdirectory(helpers)
 
 GR_PYTHON_INSTALL(
     PROGRAMS
-#    ${CMAKE_CURRENT_BINARY_DIR}/airprobe_rtlsdr.py
-    airprobe_rtlsdr.py
-    airprobe_decode.py
-    airprobe_rtlsdr_capture.py
-    airprobe_rtlsdr_scanner.py
+    grgsm_livemon
+    grgsm_scanner
+    grgsm_decode
     DESTINATION bin
 )
+
+CREATE_SYMLINK(grgsm_livemon airprobe_rtlsdr.py)
+CREATE_SYMLINK(grgsm_decode airprobe_decode.py)
+CREATE_SYMLINK(grgsm_scanner airprobe_rtlsdr_scanner.py)
+
+add_custom_target(apps_symlinks ALL DEPENDS ${symlinks})
+
+install(
+    PROGRAMS
+    ${symlinks}
+    DESTINATION bin
+)
+
diff --git a/apps/README b/apps/README
index 1106ef5..e811c06 100644
--- a/apps/README
+++ b/apps/README
@@ -1,6 +1,17 @@
-This directory contains programs based on gr-gsm. Currently two are available:
-- airprobe_rtlsdr.py
-- airprobe_file.py
+This directory contains programs based on gr-gsm:
+* grgsm_decode     (old name: airprobe_decode.py) - program for decoding C0 channel 
+                    which is most close in terms of functionality to the old gsm-receiver 
+                    from Airprobe project, with ability to decode signalling channels and traffic channels with speech 
+                    (analysis of the data can be performed in Wireshark, decoded sound is stored to an audio file),
+* grgsm_livemon    (old name: airprobe_rtlsdr.py) - interactive monitor of a single C0 channel with analysis 
+`                   performed by Wireshark (command to run wireshark: sudo wireshark -k -f udp -Y gsmtap -i lo),
+* grgsm_scanner    (old name: airprobe_rtlsdr_scanner.py) - an application that scans GSM bands and prints 
+                    information about base transceiver stations transmitting in the area.
 
-- airprobe_usrp can be used but it will need to be customized in the gnuradio-companion for given configuration (for example address of the USRP will need to be changed).
+There are following helper programs for grgsm_decode program:
+
+* grgsm_capture    (old name: airprobe_rtlsdr_capture.py) - program for capturing GSM signal to a file 
+                    that can be later processed by grgsm_decode,
+* grgsm_channelize (old name: gsm_channelize.py) - splits wideband capture file into multiple files - each contain 
+                  single GSM channel.
 
diff --git a/apps/airprobe_decode.py b/apps/grgsm_decode
similarity index 98%
rename from apps/airprobe_decode.py
rename to apps/grgsm_decode
index ceb38ef..099d680 100755
--- a/apps/airprobe_decode.py
+++ b/apps/grgsm_decode
@@ -32,7 +32,7 @@
 import socket
 
 
-class airprobe_decoder(gr.top_block):
+class grgsm_decoder(gr.top_block):
 
     def __init__(self, timeslot=0, subslot=None, chan_mode='BCCH',
                  burst_file=None,
@@ -41,7 +41,7 @@
                  speech_file=None, speech_codec=None,
                  verbose=False):
 
-        gr.top_block.__init__(self, "Airprobe Decode")
+        gr.top_block.__init__(self, "Gr-gsm Decode")
 
         ##################################################
         # Parameters
@@ -364,7 +364,7 @@
     sock.bind(("localhost", 4729))
 
     # instanciate decoder
-    tb = airprobe_decoder(timeslot=options.timeslot, subslot=options.subslot, chan_mode=options.chan_mode,
+    tb = grgsm_decoder(timeslot=options.timeslot, subslot=options.subslot, chan_mode=options.chan_mode,
                           burst_file=options.burst_file,
                           cfile=options.cfile, arfcn=arfcn, fc=fc, samp_rate=options.samp_rate,
                           a5=options.a5, a5_kc=kc,
diff --git a/apps/airprobe_rtlsdr.py b/apps/grgsm_livemon
similarity index 94%
rename from apps/airprobe_rtlsdr.py
rename to apps/grgsm_livemon
index 97c6097..7bf4ee3 100755
--- a/apps/airprobe_rtlsdr.py
+++ b/apps/grgsm_livemon
@@ -1,7 +1,7 @@
 #!/usr/bin/env python2
 ##################################################
 # GNU Radio Python Flow Graph
-# Title: Airprobe Rtlsdr
+# Title: Gr-gsm Livemon
 # Generated: Wed Sep  2 21:46:35 2015
 ##################################################
 
@@ -33,12 +33,12 @@
 import time
 
 
-class airprobe_rtlsdr(gr.top_block, Qt.QWidget):
+class grgsm_livemon(gr.top_block, Qt.QWidget):
 
-    def __init__(self, fc=939.4e6, gain=30, ppm=0, samp_rate=2000000.052982, shiftoff=400e3):
-        gr.top_block.__init__(self, "Airprobe Rtlsdr")
+    def __init__(self, fc=939.4e6, gain=30, ppm=0, samp_rate=2000000.052982, shiftoff=400e3, args=""):
+        gr.top_block.__init__(self, "Gr-gsm Livemon")
         Qt.QWidget.__init__(self)
-        self.setWindowTitle("Airprobe Rtlsdr")
+        self.setWindowTitle("Gr-gsm Livemon")
         try:
              self.setWindowIcon(Qt.QIcon.fromTheme('gnuradio-grc'))
         except:
@@ -55,7 +55,7 @@
         self.top_grid_layout = Qt.QGridLayout()
         self.top_layout.addLayout(self.top_grid_layout)
 
-        self.settings = Qt.QSettings("GNU Radio", "airprobe_rtlsdr")
+        self.settings = Qt.QSettings("GNU Radio", "grgsm_livemon")
         self.restoreGeometry(self.settings.value("geometry").toByteArray())
 
         ##################################################
@@ -86,7 +86,7 @@
         self._fc_slider_range = Range(925e6, 1990e6, 2e5, fc, 100)
         self._fc_slider_win = RangeWidget(self._fc_slider_range, self.set_fc_slider, "Frequency", "counter_slider", float)
         self.top_layout.addWidget(self._fc_slider_win)
-        self.rtlsdr_source_0 = osmosdr.source( args="numchan=" + str(1) + " " + "" )
+        self.rtlsdr_source_0 = osmosdr.source( args="numchan=" + str(1) + " " + args )
         self.rtlsdr_source_0.set_sample_rate(samp_rate)
         self.rtlsdr_source_0.set_center_freq(fc_slider-shiftoff, 0)
         self.rtlsdr_source_0.set_freq_corr(ppm_slider, 0)
@@ -180,7 +180,7 @@
         self.connect((self.rtlsdr_source_0, 0), (self.blocks_rotator_cc_0, 0))    
 
     def closeEvent(self, event):
-        self.settings = Qt.QSettings("GNU Radio", "airprobe_rtlsdr")
+        self.settings = Qt.QSettings("GNU Radio", "grgsm_livemon")
         self.settings.setValue("geometry", self.saveGeometry())
         event.accept()
 
@@ -260,13 +260,16 @@
         help="Set samp_rate [default=%default]")
     parser.add_option("-o", "--shiftoff", dest="shiftoff", type="eng_float", default=eng_notation.num_to_str(400e3),
         help="Set shiftoff [default=%default]")
+    parser.add_option("", "--args", dest="args", type="string", default="",
+        help="Set device arguments [default=%default]")
+                
     (options, args) = parser.parse_args()
 #    from distutils.version import StrictVersion
 #    if StrictVersion(Qt.qVersion()) >= StrictVersion("4.5.0"):
 #        Qt.QApplication.setGraphicsSystem(gr.prefs().get_string('qtgui','style','raster'))
     Qt.QApplication.setGraphicsSystem(gr.prefs().get_string('qtgui','style','raster'))
     qapp = Qt.QApplication(sys.argv)
-    tb = airprobe_rtlsdr(fc=options.fc, gain=options.gain, ppm=options.ppm, samp_rate=options.samp_rate, shiftoff=options.shiftoff)
+    tb = grgsm_livemon(fc=options.fc, gain=options.gain, ppm=options.ppm, samp_rate=options.samp_rate, shiftoff=options.shiftoff, args=options.args)
     tb.start()
     tb.show()
 
diff --git a/apps/airprobe_rtlsdr.grc b/apps/grgsm_livemon.grc
similarity index 97%
rename from apps/airprobe_rtlsdr.grc
rename to apps/grgsm_livemon.grc
index e30a2ef..22c30b0 100644
--- a/apps/airprobe_rtlsdr.grc
+++ b/apps/grgsm_livemon.grc
@@ -1,12 +1,12 @@
 <?xml version='1.0' encoding='utf-8'?>
-<?grc format='1' created='3.7.8rc1'?>
+<?grc format='1' created='3.7.8'?>
 <flow_graph>
   <timestamp>Sat Dec 13 10:49:59 2014</timestamp>
   <block>
     <key>options</key>
     <param>
       <key>author</key>
-      <value></value>
+      <value>Piotr Krysik</value>
     </param>
     <param>
       <key>alias</key>
@@ -26,7 +26,7 @@
     </param>
     <param>
       <key>description</key>
-      <value></value>
+      <value>Interactive monitor of a single C0 channel with analysis performed by Wireshark (command to run wireshark: sudo wireshark -k -f udp -Y gsmtap -i lo)</value>
     </param>
     <param>
       <key>_enabled</key>
@@ -46,7 +46,7 @@
     </param>
     <param>
       <key>id</key>
-      <value>airprobe_rtlsdr</value>
+      <value>grgsm_livemon</value>
     </param>
     <param>
       <key>max_nouts</key>
@@ -70,7 +70,7 @@
     </param>
     <param>
       <key>title</key>
-      <value></value>
+      <value>Gr-gsm Livemon</value>
     </param>
   </block>
   <block>
@@ -263,6 +263,49 @@
     </param>
   </block>
   <block>
+    <key>parameter</key>
+    <param>
+      <key>alias</key>
+      <value></value>
+    </param>
+    <param>
+      <key>comment</key>
+      <value></value>
+    </param>
+    <param>
+      <key>_enabled</key>
+      <value>True</value>
+    </param>
+    <param>
+      <key>_coordinate</key>
+      <value>(872, 11)</value>
+    </param>
+    <param>
+      <key>_rotation</key>
+      <value>0</value>
+    </param>
+    <param>
+      <key>id</key>
+      <value>args</value>
+    </param>
+    <param>
+      <key>label</key>
+      <value>Device Arguments</value>
+    </param>
+    <param>
+      <key>short_id</key>
+      <value></value>
+    </param>
+    <param>
+      <key>type</key>
+      <value>string</value>
+    </param>
+    <param>
+      <key>value</key>
+      <value>""</value>
+    </param>
+  </block>
+  <block>
     <key>blocks_rotator_cc</key>
     <param>
       <key>alias</key>
@@ -814,6 +857,14 @@
       <value>gsm_message_printer_1</value>
     </param>
     <param>
+      <key>prepend_frame_count</key>
+      <value>False</value>
+    </param>
+    <param>
+      <key>prepend_fnr</key>
+      <value>False</value>
+    </param>
+    <param>
       <key>prepend_string</key>
       <value>""</value>
     </param>
@@ -944,7 +995,7 @@
     </param>
     <param>
       <key>_coordinate</key>
-      <value>(880, 11)</value>
+      <value>(1016, 11)</value>
     </param>
     <param>
       <key>_rotation</key>
@@ -2585,7 +2636,7 @@
     </param>
     <param>
       <key>args</key>
-      <value></value>
+      <value>args</value>
     </param>
     <param>
       <key>_enabled</key>
@@ -2712,7 +2763,7 @@
     </param>
     <param>
       <key>_coordinate</key>
-      <value>(16, 75)</value>
+      <value>(16, 115)</value>
     </param>
     <param>
       <key>_rotation</key>
diff --git a/apps/airprobe_rtlsdr_scanner.py b/apps/grgsm_scanner
similarity index 97%
rename from apps/airprobe_rtlsdr_scanner.py
rename to apps/grgsm_scanner
index 4fd7c88..94bba43 100755
--- a/apps/airprobe_rtlsdr_scanner.py
+++ b/apps/grgsm_scanner
@@ -201,7 +201,7 @@
 
 class wideband_scanner(gr.top_block):
     
-    def __init__(self, rec_len=3, sample_rate=2e6, carrier_frequency=939e6, ppm=0):
+    def __init__(self, rec_len=3, sample_rate=2e6, carrier_frequency=939e6, ppm=0, args=""):
         
         gr.top_block.__init__(self, "Wideband Scanner")
         
@@ -211,7 +211,8 @@
         self.ppm = ppm
         
         # if no file name is given process data from rtl_sdr source
-        self.rtlsdr_source = osmosdr.source( args="numchan=" + str(1) + " " + "" )
+        print "Args=",args
+        self.rtlsdr_source = osmosdr.source( args="numchan=" + str(1) + " " + args )
         
         self.rtlsdr_source.set_sample_rate(sample_rate)
         
@@ -302,10 +303,12 @@
                       help="Specify the GSM band for the frequency.\nAvailable bands are: " + bands_list)
     parser.add_option("-s", "--samp-rate", dest="samp_rate", type="float", default=2e6,
         help="Set sample rate [default=%default] - allowed values even_number*0.2e6")
-    parser.add_option("-p", "--ppm", dest="ppm", type="intx", default=-45,
+    parser.add_option("-p", "--ppm", dest="ppm", type="intx", default=0,
         help="Set frequency correction in ppm [default=%default]")
     parser.add_option("-g", "--gain", dest="gain", type="eng_float", default=24.0,
         help="Set gain [default=%default]")
+    parser.add_option("", "--args", dest="args", type="string", default="",
+        help="Set device arguments [default=%default]")
     parser.add_option("--speed", dest="speed", type="intx", default=4,
         help="Scan speed [default=%default]. Value range 0-5.")
     parser.add_option("-v", "--verbose", action="store_true", 
@@ -351,7 +354,7 @@
         scanner = wideband_scanner(rec_len=6-options.speed, 
                             sample_rate=options.samp_rate, 
                             carrier_frequency=current_freq, 
-                            ppm=options.ppm)
+                            ppm=options.ppm, args=options.args)
 
         # start recording
         scanner.start()
diff --git a/apps/helpers/CMakeLists.txt b/apps/helpers/CMakeLists.txt
new file mode 100644
index 0000000..4418ed7
--- /dev/null
+++ b/apps/helpers/CMakeLists.txt
@@ -0,0 +1,39 @@
+# Copyright 2011 Free Software Foundation, Inc.
+#
+# This file is part of GNU Radio
+#
+# GNU Radio is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3, or (at your option)
+# any later version.
+#
+# GNU Radio is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with GNU Radio; see the file COPYING.  If not, write to
+# the Free Software Foundation, Inc., 51 Franklin Street,
+# Boston, MA 02110-1301, USA.
+
+include(GrPython)
+include(CreateSymlink)
+
+GR_PYTHON_INSTALL(
+    PROGRAMS
+    grgsm_capture.py
+    grgsm_channelize.py
+    DESTINATION bin
+)
+
+CREATE_SYMLINK(grgsm_capture.py airprobe_rtlsdr_capture.py)
+
+add_custom_target(helpers_symlinks ALL DEPENDS ${symlinks})
+
+install(
+    PROGRAMS
+    ${symlinks}
+    DESTINATION bin
+)
+
diff --git a/apps/helpers/README b/apps/helpers/README
new file mode 100644
index 0000000..752aaa8
--- /dev/null
+++ b/apps/helpers/README
@@ -0,0 +1,5 @@
+Helper programs for grgsm_decode:
+
+-grgsm_capture    (old name: airprobe_rtlsdr_capture.py) - program for capturing GSM signal to a file that can be later processed by grgsm_decode,
+
+-grgsm_channelize (old name: gsm_channelize.py) - splits wideband capture file into multiple files - each contain single GSM channel,
diff --git a/apps/airprobe_rtlsdr_capture.py b/apps/helpers/grgsm_capture.py
similarity index 95%
rename from apps/airprobe_rtlsdr_capture.py
rename to apps/helpers/grgsm_capture.py
index 909ce2e..bdce7d8 100755
--- a/apps/airprobe_rtlsdr_capture.py
+++ b/apps/helpers/grgsm_capture.py
@@ -36,11 +36,11 @@
 import sys
 
 
-class airprobe_rtlsdr_capture(gr.top_block):
+class grgsm_capture(gr.top_block):
 
-    def __init__(self, fc, gain, samp_rate, ppm, arfcn, cfile=None, burst_file=None, band=None, verbose=False, rec_length=None):
+    def __init__(self, fc, gain, samp_rate, ppm, arfcn, cfile=None, burst_file=None, band=None, verbose=False, rec_length=None, args=""):
 
-        gr.top_block.__init__(self, "Airprobe RTL-SDR Capture")
+        gr.top_block.__init__(self, "Gr-gsm Capture")
                 
         ##################################################
         # Parameters
@@ -209,6 +209,9 @@
     parser.add_option("--band", dest="band", 
                       help="Specify the GSM band for the frequency.\nAvailable bands are: " + bands_list + ".\nIf no band is specified, it will be determined automatically, defaulting to 0." )
     
+    parser.add_option("", "--args", dest="args", type="string", default="",
+        help="Set device arguments [default=%default]")
+
     parser.add_option("-v", "--verbose", action="store_true", 
                       help="If set, the captured bursts are printed to stdout")
 
@@ -255,7 +258,7 @@
                     arfcn = grgsm.arfcn.downlink2arfcn(options.fc, band)
                     break
      
-    tb = airprobe_rtlsdr_capture(fc=fc, gain=options.gain, samp_rate=options.samp_rate,
+    tb = grgsm_capture(fc=fc, gain=options.gain, samp_rate=options.samp_rate,
                          ppm=options.ppm, arfcn=arfcn, cfile=options.cfile, 
                          burst_file=options.burst_file, band=options.band, verbose=options.verbose,
                          rec_length=options.rec_length)
diff --git a/apps/gsm_channelize.py b/apps/helpers/grgsm_channelize.py
similarity index 100%
rename from apps/gsm_channelize.py
rename to apps/helpers/grgsm_channelize.py
diff --git a/cmake/Modules/CreateSymlink.cmake b/cmake/Modules/CreateSymlink.cmake
new file mode 100644
index 0000000..574c443
--- /dev/null
+++ b/cmake/Modules/CreateSymlink.cmake
@@ -0,0 +1,10 @@
+#create logical links in order to keep legacy names of apps
+macro(CREATE_SYMLINK _source _dest)
+    set(source ${CMAKE_CURRENT_SOURCE_DIR}/${_source})
+    set(dest ${CMAKE_CURRENT_BINARY_DIR}/${_dest})
+    list(APPEND symlinks ${dest})
+    add_custom_command(
+        DEPENDS ${source} OUTPUT ${dest}
+        COMMAND ln -sf ${_source} ${_dest}
+    )
+endmacro(CREATE_SYMLINK)
diff --git a/cmake/Modules/gr-gsmConfig.cmake b/cmake/Modules/gr-gsmConfig.cmake
index e1270f6..f8a2fec 100644
--- a/cmake/Modules/gr-gsmConfig.cmake
+++ b/cmake/Modules/gr-gsmConfig.cmake
@@ -13,7 +13,7 @@
 
 FIND_LIBRARY(
     GR_GSM_LIBRARIES
-    NAMES gnuradio-grgsm
+    NAMES grgsm
     HINTS $ENV{GR_GSM_DIR}/lib
         ${PC_GR_GSM_LIBDIR}
     PATHS ${CMAKE_INSTALL_PREFIX}/lib
diff --git a/lib/CMakeLists.txt b/lib/CMakeLists.txt
index a842823..723ecce 100644
--- a/lib/CMakeLists.txt
+++ b/lib/CMakeLists.txt
@@ -68,19 +68,19 @@
 )
 
 
-add_library(gnuradio-grgsm SHARED ${grgsm_sources})
-target_link_libraries(gnuradio-grgsm ${Boost_LIBRARIES} ${GNURADIO_RUNTIME_LIBRARIES} ${VOLK_LIBRARIES} ${LIBOSMOCORE_LIBRARIES}
+add_library(grgsm SHARED ${grgsm_sources})
+target_link_libraries(grgsm ${Boost_LIBRARIES} ${GNURADIO_RUNTIME_LIBRARIES} ${VOLK_LIBRARIES} ${LIBOSMOCORE_LIBRARIES}
 # libraries required by plotting.h - have troubles to be installed by pybombs
 #    boost_iostreams
 #    boost_system
 #    boost_filesystem
 )
-set_target_properties(gnuradio-grgsm PROPERTIES DEFINE_SYMBOL "gnuradio_grgsm_EXPORTS")
+set_target_properties(grgsm PROPERTIES DEFINE_SYMBOL "grgsm_EXPORTS")
 
 ########################################################################
 # Install built library files
 ########################################################################
-install(TARGETS gnuradio-grgsm
+install(TARGETS grgsm
     LIBRARY DESTINATION lib${LIB_SUFFIX} # .so/.dylib file
     ARCHIVE DESTINATION lib${LIB_SUFFIX} # .lib file
     RUNTIME DESTINATION bin              # .dll file
@@ -106,7 +106,7 @@
 #  ${GNURADIO_RUNTIME_LIBRARIES}
 #  ${Boost_LIBRARIES}
 #  ${CPPUNIT_LIBRARIES}
-#  gnuradio-grgsm
+#  grgsm
 #)
 
 #GR_ADD_TEST(test_gsm test-gsm)
diff --git a/lib/receiver/receiver_impl.cc b/lib/receiver/receiver_impl.cc
index 97402b2..6ecb1f7 100644
--- a/lib/receiver/receiver_impl.cc
+++ b/lib/receiver/receiver_impl.cc
@@ -770,7 +770,7 @@
         std::vector<float>::iterator iter_ii = iter;
         energy = 0;
 
-        for (int ii = 0; ii < (d_chan_imp_length - 2)*d_OSR; ii++, iter_ii++)
+        for (int ii = 0; ii < (d_chan_imp_length)*d_OSR; ii++, iter_ii++)
         {
             if (iter_ii == power_buffer.end())
             {
diff --git a/swig/CMakeLists.txt b/swig/CMakeLists.txt
index 22d7340..1c237c8 100644
--- a/swig/CMakeLists.txt
+++ b/swig/CMakeLists.txt
@@ -40,8 +40,9 @@
 foreach(incdir ${GNURADIO_RUNTIME_INCLUDE_DIRS})
     list(APPEND GR_SWIG_INCLUDE_DIRS ${incdir}/gnuradio/swig)
 endforeach(incdir)
+list(APPEND GR_SWIG_INCLUDE_DIRS ${FFTW3F_INCLUDE_DIRS})
 
-set(GR_SWIG_LIBRARIES gnuradio-grgsm)
+set(GR_SWIG_LIBRARIES grgsm)
 set(GR_SWIG_DOC_FILE ${CMAKE_CURRENT_BINARY_DIR}/grgsm_swig_doc.i)
 set(GR_SWIG_DOC_DIRS ${CMAKE_CURRENT_SOURCE_DIR}/../include)
 
