Talk:InstallingGR: Difference between revisions

From GNU Radio
Jump to navigation Jump to search
(Undo revision 6625 by Duggabe (talk))
(→‎To install system wide: slight tweak to "last command")
 
(2 intermediate revisions by 2 users not shown)
Line 8: Line 8:
* <code>git clone --recursive https://github.com/gnuradio/gnuradio.git</code>
* <code>git clone --recursive https://github.com/gnuradio/gnuradio.git</code>
* <code>cd gnuradio</code>
* <code>cd gnuradio</code>
* <code>git checkout maint-3.8</code> # change <code>maint-3.8</code> if you want to use a different version; see [https://github.com/gnuradio/gnuradio/releases releases]
 
<b>Note:</b> In the following command, change <code>maint-3.8</code> to some other branch or tag if you want to build a different version of GNU Radio; see [https://github.com/gnuradio/gnuradio/tags tags] for tagged releases including pre-releases ("rc"). For  [https://github.com/gnuradio/gnuradio/branches branches], it's generally wise to stick with "master" (the default after cloning), and, currently: <code>maint-3.7</code> or <code>maint-3.8</code>. Here we checkout the <code>maint-3.8</code> branch, which contains the latest 3.8 release plus any fixes or augmentations to it that will be in the next 3.8 release.
 
* <code>git checkout maint-3.8</code>
* <code>mkdir build</code>
* <code>mkdir build</code>
* <code>cd build</code>
* <code>cd build</code>
* <code>cmake -DCMAKE_BUILD_TYPE=Release -DPYTHON_EXECUTABLE=/usr/bin/python3 ..</code>
 
Notes:<br>
<b>Note:</b> In the following command, you can use <code>-DCMAKE_INSTALL_PREFIX=XXX</code> to install GNU Radio into the PREFIX <code>XXX</code>; if not specified, then the PREFIX is <code>/usr/local</code>. See other CMake options in [[#Common_cmake_flags|Common cmake flags]].<br>
1) If your computer's CPU has multiple cores, you can use the <code>-j#</code> option for <code>make</code> to speed compilation, e.g., <code>make -j3</code>; specify one less than the number of CPU cores so the system does not appear to 'freeze'.<br>
 
2) Use <code>-DCMAKE_INSTALL_PREFIX=XXX</code> in the <code>cmake</code> command to install GNU Radio into the PREFIX <code>XXX</code>; if not specified then the PREFIX is <code>/usr/local</code>.
* <code>cmake -DCMAKE_BUILD_TYPE=Release -DPYTHON_EXECUTABLE=/usr/bin/python3 ../</code>
 
<b>Note:</b> In the following command, if your computer's CPU has multiple cores, you can use the argument <code>-j#</code> to speed compilation; <br> e.g., <code>make -j3</code> will use 3 threads in the build. Specify at least one less than the number of CPU cores so the system does not appear to 'freeze' during the build. If not specified, then a single thread is used for the build; this is not necessarily a bad thing, but it will take roughly 2 times as long to build as using 2 threads, and roughly 3 times as long to build as using 3 threads.<br>


* <code>make</code>
* <code>make</code>
<b>Note:</b> In the following command, it is very possible that not all tests pass. Generally any error is a sign of a missing dependency such as the Python interface to ZMQ or NumPy or SciPy, none of which are required for building GNU Radio but are required for testing.
* <code>make test</code>
* <code>make test</code>
* <code>sudo make install</code>
* <code>sudo make install</code>
Line 23: Line 31:
* <code>sudo ldconfig</code>
* <code>sudo ldconfig</code>


Go to [[ModuleNotFoundError#Setting_PYTHONPATH|Setting PYTHONPATH]] to set your PYTHONPATH and LD_LIBRARY_PATH. After setting these environment variables, you might need to redo this last command for the Linux dynamic library loader to find the just-installed GNU Radio libraries.
Go to [[ModuleNotFoundError#Setting_PYTHONPATH|Setting PYTHONPATH]] to set your PYTHONPATH and LD_LIBRARY_PATH. After setting these environment variables, you might need to redo <code>sudo ldconfig</code> for the Linux dynamic library loader to find the just-installed GNU Radio libraries.

Latest revision as of 15:54, 28 January 2020

DRAFT revisions to "To install system wide"

To install system wide

For this example, we will start in the home directory; you can, of course, use any directory you wish and the results will be the same.

Note: In the following command, change maint-3.8 to some other branch or tag if you want to build a different version of GNU Radio; see tags for tagged releases including pre-releases ("rc"). For branches, it's generally wise to stick with "master" (the default after cloning), and, currently: maint-3.7 or maint-3.8. Here we checkout the maint-3.8 branch, which contains the latest 3.8 release plus any fixes or augmentations to it that will be in the next 3.8 release.

  • git checkout maint-3.8
  • mkdir build
  • cd build

Note: In the following command, you can use -DCMAKE_INSTALL_PREFIX=XXX to install GNU Radio into the PREFIX XXX; if not specified, then the PREFIX is /usr/local. See other CMake options in Common cmake flags.

  • cmake -DCMAKE_BUILD_TYPE=Release -DPYTHON_EXECUTABLE=/usr/bin/python3 ../

Note: In the following command, if your computer's CPU has multiple cores, you can use the argument -j# to speed compilation;
e.g., make -j3 will use 3 threads in the build. Specify at least one less than the number of CPU cores so the system does not appear to 'freeze' during the build. If not specified, then a single thread is used for the build; this is not necessarily a bad thing, but it will take roughly 2 times as long to build as using 2 threads, and roughly 3 times as long to build as using 3 threads.

  • make

Note: In the following command, it is very possible that not all tests pass. Generally any error is a sign of a missing dependency such as the Python interface to ZMQ or NumPy or SciPy, none of which are required for building GNU Radio but are required for testing.

  • make test
  • sudo make install

If you're running Linux, then always remember to do the following command after installing any library:

  • sudo ldconfig

Go to Setting PYTHONPATH to set your PYTHONPATH and LD_LIBRARY_PATH. After setting these environment variables, you might need to redo sudo ldconfig for the Linux dynamic library loader to find the just-installed GNU Radio libraries.