GRAndBuild

= Building GNU Radio for Android and GRAnd =

Make sure you've looked at the Setup and Building the Dependencies page first.

It's important that you have created the Android stand-alone toolchain and have the environmental variable  set to point here. The  file uses this in all of the following projects.

Dependencies Build Script
Remember, you can use the Build Script to automatically build all of these dependencies. See the information on the Setup and Building the Dependencies page for more details on this script.

VOLK
We'll first build VOLK separately instead of as a GNU Radio submodule. This will just provide us greater control over the configuration and make any problems easier to address.

git clone https://github.com/trondeau/volk.git cd volk git checkout android mkdir build; cd build cmake -DCMAKE_INSTALL_PREFIX=$PREFIX \ -DCMAKE_TOOLCHAIN_FILE=../cmake/Toolchains/AndroidToolchain.cmake \ -DPYTHON_EXECUTABLE=/usr/bin/python \ -DENABLE_STATIC_LIBS=True \ ../ make make install

GNU Radio
Check out the  branch of GNU Radio and build it.

If you are interested in UHD support, see GRAndRFE and change the  to   in the cmake command below. If Cmake has trouble finding a properly built and installed UHD, first try removing  from the build directory and rerunning. If things still don't work, add the argument  to try and help Cmake find the library built for Android.

git clone --recursive git://git.gnuradio.org/gnuradio.git cd gnuradio git checkout android mkdir build cd build cmake \ -Wno-dev \ -DCMAKE_INSTALL_PREFIX=$PREFIX \ -DCMAKE_TOOLCHAIN_FILE=../cmake/Toolchains/AndroidToolchain.cmake \ -DENABLE_INTERNAL_VOLK=Off \ -DBOOST_ROOT=$PREFIX \ -DFFTW3F_INCLUDE_DIRS=$PREFIX/include \ -DFFTW3F_LIBRARIES=$PREFIX/lib/libfftw3f.a \ -DFFTW3F_THREADS_LIBRARIES=$PREFIX/lib/libfftw3f_threads.a \ -DENABLE_DEFAULT=False \ -DENABLE_GR_LOG=False \ -DENABLE_VOLK=True \ -DENABLE_GNURADIO_RUNTIME=True \ -DENABLE_GR_BLOCKS=True \ -DENABLE_GR_FFT=True \ -DENABLE_GR_FILTER=True \ -DENABLE_GR_ANALOG=True \ -DENABLE_GR_DIGITAL=True \ -DENABLE_GR_CHANNELS=True \ -DENABLE_GR_ZEROMQ=True \ -DENABLE_GR_UHD=True \ -DENABLE_STATIC_LIBS=True \ -DENABLE_GR_CTRLPORT=True \ ../ make make install

Build GRAnd - The GNU Radio for Android Project
I create a env variable  to point to the toolchain file from GNU Radio:

export TOOLCHAIN=/cmake/Toolchains/AndroidToolchain.cmake git clone git://github.com/trondeau/gr-grand.git cd gr-grand mkdir build cd build cmake \ -DCMAKE_INSTALL_PREFIX=$PREFIX \ -DCMAKE_TOOLCHAIN_FILE=$TOOLCHAIN \ -DPYTHON_EXECUTABLE=/usr/bin/python \ ../ make make install

GR-OSMOSDR
Again, we'll use trondeau's fork of gr-omsosdr that includes a set of patches to work with our edited libusb and rtl-sdr library for the USB permissions. This branch also cleans up a few other features necessary to build a static library out of the project.

git clone https://github.com/trondeau/gr-osmosdr.git cd gr-osmosdr git checkout android5 mkdir build; cd build PKG_CONFIG_PATH=$PREFIX/lib/pkgconfig cmake -DCMAKE_INSTALL_PREFIX=$PREFIX \ -DCMAKE_TOOLCHAIN_FILE=$TOOLCHAIN \ -DENABLE_UHD=True -DENABLE_FCD=False -DENABLE_RFSPACE=False \ -DENABLE_BLADERF=False -DENABLE_HACKRF=False -DENABLE_OSMOSDR=False \ -DENABLE_RTL_TCP=False -DENABLE_IQBALANCE=False \ -DBOOST_ROOT=$PREFIX \ ../ make make install