mirror of
				https://github.com/gnss-sdr/gnss-sdr
				synced 2025-10-31 07:13:03 +00:00 
			
		
		
		
	Improve Table of Contents
This commit is contained in:
		
							
								
								
									
										327
									
								
								README.md
									
									
									
									
									
								
							
							
						
						
									
										327
									
								
								README.md
									
									
									
									
									
								
							| @@ -59,58 +59,60 @@ information about this open-source, software-defined GNSS receiver. | |||||||
| <summary><b>(click to expand)</b></summary> | <summary><b>(click to expand)</b></summary> | ||||||
| <!-- MarkdownTOC --> | <!-- MarkdownTOC --> | ||||||
|  |  | ||||||
| 1. [How to build GNSS-SDR](#how-to-build-gnss-sdr) | 1. [Table of Contents](#table-of-contents) | ||||||
|  | 2. [How to build GNSS-SDR](#how-to-build-gnss-sdr) | ||||||
|    1. [GNU/Linux](#gnulinux) |    1. [GNU/Linux](#gnulinux) | ||||||
|       1. [Alternative 1: Install dependencies using software packages](#alternative-1-install-dependencies-using-software-packages) |       1. [Alternative 1: Install dependencies using software packages](#alternative-1-install-dependencies-using-software-packages) | ||||||
|          - [Debian / Ubuntu](#debian--ubuntu) |          1. [Debian / Ubuntu](#debian--ubuntu) | ||||||
|          - [Arch Linux](#arch-linux) |          2. [Arch Linux](#arch-linux) | ||||||
|          - [CentOS](#centos) |          3. [CentOS](#centos) | ||||||
|          - [Fedora](#fedora) |          4. [Fedora](#fedora) | ||||||
|          - [OpenSUSE](#opensuse) |          5. [openSUSE](#opensuse) | ||||||
|          - [Rocky Linux](#rocky-linux) |          6. [Rocky Linux](#rocky-linux) | ||||||
|       1. [Alternative 2: Install dependencies using PyBOMBS](#alternative-2-install-dependencies-using-pybombs) |       2. [Alternative 2: Install dependencies using PyBOMBS](#alternative-2-install-dependencies-using-pybombs) | ||||||
|          - [Manual installation of other required dependencies](#manual-installation-of-other-required-dependencies) |       3. [Manual installation of other required dependencies](#manual-installation-of-other-required-dependencies) | ||||||
|            - [Armadillo](#install-armadillo-a-c-linear-algebra-library) |          1. [Install Armadillo, a C++ linear algebra library](#install-armadillo-a-c-linear-algebra-library) | ||||||
|            - [gflags](#install-gflags-a-commandline-flags-processing-module-for-c) |          2. [Install Gflags, a commandline flags processing module for C++](#install-gflags-a-commandline-flags-processing-module-for-c) | ||||||
|            - [google-glog](#install-glog-a-library-that-implements-application-level-logging) |          3. [Install Glog, a library that implements application-level logging](#install-glog-a-library-that-implements-application-level-logging) | ||||||
|            - [googletest](#download-the-google-c-testing-framework-also-known-as-google-test) |          4. [Install the GnuTLS or OpenSSL libraries](#install-the-gnutls-or-openssl-libraries) | ||||||
|            - [GnuTLS or OpenSSL](#install-the-gnutls-or-openssl-libraries) |          5. [Install Matio, MATLAB MAT file I/O library](#install-matio-matlab-mat-file-io-library) | ||||||
|            - [matio](#install-matio-matlab-mat-file-io-library) |          6. [Install Protocol Buffers, a portable mechanism for serialization of structured data](#install-protocol-buffers-a-portable-mechanism-for-serialization-of-structured-data) | ||||||
|            - [Protocol Buffers](#install-protocol-buffers-a-portable-mechanism-for-serialization-of-structured-data) |          7. [Install Pugixml, a light-weight C++ XML processing library](#install-pugixml-a-light-weight-c-xml-processing-library) | ||||||
|            - [pugixml](#install-pugixml-a-light-weight-c-xml-processing-library) |          8. [Download GoogleTest](#download-googletest) | ||||||
|       1. [Clone GNSS-SDR's Git repository](#clone-gnss-sdrs-git-repository) |       4. [Clone GNSS-SDR's Git repository](#clone-gnss-sdrs-git-repository) | ||||||
|       1. [Build and install GNSS-SDR](#build-and-install-gnss-sdr) |       5. [Build and install GNSS-SDR](#build-and-install-gnss-sdr) | ||||||
|          - [Build OsmoSDR support (optional)](#build-osmosdr-support-optional) |          1. [Build OSMOSDR support (OPTIONAL)](#build-osmosdr-support-optional) | ||||||
|          - [Build IIO support (optional)](#build-fmcomms2-based-sdr-hardware-support-optional) |          2. [Build FMCOMMS2 based SDR Hardware support (OPTIONAL)](#build-fmcomms2-based-sdr-hardware-support-optional) | ||||||
|          - [Build OpenCL support (optional)](#build-opencl-support-optional) |          3. [Build OpenCL support (OPTIONAL)](#build-opencl-support-optional) | ||||||
|          - [Build CUDA support (optional)](#build-cuda-support-optional) |          4. [Build CUDA support (OPTIONAL)](#build-cuda-support-optional) | ||||||
|          - [Build a portable binary](#build-a-portable-binary) |          5. [Build a portable binary](#build-a-portable-binary) | ||||||
|    1. [macOS](#macos) |    2. [macOS](#macos) | ||||||
|       1. [Macports](#macports) |       1. [Macports](#macports) | ||||||
|       1. [Homebrew](#homebrew) |       2. [Homebrew](#homebrew) | ||||||
|       1. [Build GNSS-SDR](#build-gnss-sdr) |       3. [Other package managers](#other-package-managers) | ||||||
|    1. [Other builds](#other-builds) |       4. [Build GNSS-SDR](#build-gnss-sdr) | ||||||
| 1. [Updating GNSS-SDR](#updating-gnss-sdr) |    3. [Other builds](#other-builds) | ||||||
| 1. [Getting started](#getting-started) | 3. [Updating GNSS-SDR](#updating-gnss-sdr) | ||||||
| 1. [Using GNSS-SDR](#using-gnss-sdr) | 4. [Getting started](#getting-started) | ||||||
|    1. [Control Plane](#control-plane) | 5. [Using GNSS-SDR](#using-gnss-sdr) | ||||||
|  |    1. [Control plane](#control-plane) | ||||||
|       1. [Configuration](#configuration) |       1. [Configuration](#configuration) | ||||||
|       1. [GNSS block factory](#gnss-block-factory) |       2. [GNSS block factory](#gnss-block-factory) | ||||||
|    1. [Signal Processing Plane](#signal-processing-plane) |    2. [Signal Processing plane](#signal-processing-plane) | ||||||
|       1. [Signal Source](#signal-source) |       1. [Signal Source](#signal-source) | ||||||
|       1. [Signal Conditioner](#signal-conditioner) |       2. [Signal Conditioner](#signal-conditioner) | ||||||
|          - [Data type adapter](#data-type-adapter) |          1. [Data type adapter](#data-type-adapter) | ||||||
|          - [Input filter](#input-filter) |          2. [Input filter](#input-filter) | ||||||
|          - [Resampler](#resampler) |          3. [Resampler](#resampler) | ||||||
|       1. [Channel](#channel) |       3. [Channel](#channel) | ||||||
|          - [Acquisition](#acquisition) |          1. [Acquisition](#acquisition) | ||||||
|          - [Tracking](#tracking) |          2. [Tracking](#tracking) | ||||||
|          - [Decoding of the navigation message](#decoding-of-the-navigation-message) |          3. [Decoding of the navigation message](#decoding-of-the-navigation-message) | ||||||
|       1. [Observables](#observables) |          4. [Observables](#observables) | ||||||
|       1. [Computation of Position, Velocity and Time](#computation-of-position-velocity-and-time) |          5. [Computation of Position, Velocity and Time](#computation-of-position-velocity-and-time) | ||||||
| 1. [About the software license](#about-the-software-license) | 6. [About the software license](#about-the-software-license) | ||||||
| 1. [Publications and Credits](#publications-and-credits) | 7. [Publications and Credits](#publications-and-credits) | ||||||
| 1. [Ok, now what?](#ok-now-what) | 8. [Ok, now what?](#ok-now-what) | ||||||
|  |  | ||||||
| <!-- /MarkdownTOC --> | <!-- /MarkdownTOC --> | ||||||
| </details> | </details> | ||||||
| @@ -118,7 +120,7 @@ information about this open-source, software-defined GNSS receiver. | |||||||
| # How to build GNSS-SDR | # How to build GNSS-SDR | ||||||
|  |  | ||||||
| This section describes how to set up the compilation environment in GNU/Linux or | This section describes how to set up the compilation environment in GNU/Linux or | ||||||
| [macOS / Mac OS X](#macosx), and to build GNSS-SDR. See also our | [macOS / Mac OS X](#macos), and to build GNSS-SDR. See also our | ||||||
| [build and install page](https://gnss-sdr.org/build-and-install/ "GNSS-SDR's Build and Install"). | [build and install page](https://gnss-sdr.org/build-and-install/ "GNSS-SDR's Build and Install"). | ||||||
|  |  | ||||||
| ## GNU/Linux | ## GNU/Linux | ||||||
| @@ -197,7 +199,7 @@ above. Install `libtool`, `automake` and `libhdf5-dev` instead. You will also | |||||||
| need `python-six`. | need `python-six`. | ||||||
|  |  | ||||||
| Once you have installed these packages, you can jump directly to | Once you have installed these packages, you can jump directly to | ||||||
| [download the source code and build GNSS-SDR](#download-and-build-linux). | [download the source code and build GNSS-SDR](#clone-gnss-sdrs-git-repository). | ||||||
|  |  | ||||||
| #### Arch Linux | #### Arch Linux | ||||||
|  |  | ||||||
| @@ -210,7 +212,7 @@ $ pacman -S gcc make cmake pkgconf git boost boost-libs log4cpp libvolk gnuradio | |||||||
| ``` | ``` | ||||||
|  |  | ||||||
| Once you have installed these packages, you can jump directly to | Once you have installed these packages, you can jump directly to | ||||||
| [download the source code and build GNSS-SDR](#download-and-build-linux). | [download the source code and build GNSS-SDR](#clone-gnss-sdrs-git-repository). | ||||||
|  |  | ||||||
| #### CentOS | #### CentOS | ||||||
|  |  | ||||||
| @@ -229,7 +231,7 @@ $ sudo yum install make automake gcc gcc-c++ kernel-devel libtool \ | |||||||
| ``` | ``` | ||||||
|  |  | ||||||
| Once you have installed these packages, you can jump directly to | Once you have installed these packages, you can jump directly to | ||||||
| [download the source code and build GNSS-SDR](#download-and-build-linux). | [download the source code and build GNSS-SDR](#clone-gnss-sdrs-git-repository). | ||||||
|  |  | ||||||
| #### Fedora | #### Fedora | ||||||
|  |  | ||||||
| @@ -275,7 +277,7 @@ $ zypper install cmake git gcc-c++ boost-devel libboost_atomic-devel \ | |||||||
| ``` | ``` | ||||||
|  |  | ||||||
| Once you have installed these packages, you can jump directly to | Once you have installed these packages, you can jump directly to | ||||||
| [download the source code and build GNSS-SDR](#download-and-build-linux). | [download the source code and build GNSS-SDR](#clone-gnss-sdrs-git-repository). | ||||||
|  |  | ||||||
| #### Rocky Linux | #### Rocky Linux | ||||||
|  |  | ||||||
| @@ -293,7 +295,7 @@ $ yum install -y make gcc gcc-c++ kernel-devel cmake git boost-devel \ | |||||||
| ``` | ``` | ||||||
|  |  | ||||||
| Once you have installed these packages, you can jump directly to | Once you have installed these packages, you can jump directly to | ||||||
| [download the source code and build GNSS-SDR](#download-and-build-linux). | [download the source code and build GNSS-SDR](#clone-gnss-sdrs-git-repository). | ||||||
|  |  | ||||||
| ### Alternative 2: Install dependencies using PyBOMBS | ### Alternative 2: Install dependencies using PyBOMBS | ||||||
|  |  | ||||||
| @@ -374,11 +376,11 @@ $ pybombs install armadillo gflags glog gnutls matio | |||||||
| ``` | ``` | ||||||
|  |  | ||||||
| or manually as explained below, and then please follow instructions on how to | or manually as explained below, and then please follow instructions on how to | ||||||
| [download the source code and build GNSS-SDR](#download-and-build-linux). | [download the source code and build GNSS-SDR](#clone-gnss-sdrs-git-repository). | ||||||
|  |  | ||||||
| ### Manual installation of other required dependencies | ### Manual installation of other required dependencies | ||||||
|  |  | ||||||
| #### Install [Armadillo](http://arma.sourceforge.net/ "Armadillo's Homepage"), a C++ linear algebra library: | #### Install [Armadillo](http://arma.sourceforge.net/ "Armadillo's Homepage"), a C++ linear algebra library | ||||||
|  |  | ||||||
| ``` | ``` | ||||||
| $ sudo apt-get install libblas-dev liblapack-dev       # For Debian/Ubuntu/LinuxMint | $ sudo apt-get install libblas-dev liblapack-dev       # For Debian/Ubuntu/LinuxMint | ||||||
| @@ -400,7 +402,7 @@ correspondingly. CMake will also generate a run-time armadillo library, which is | |||||||
| a combined alias for all the relevant libraries present on your system (e.g., | a combined alias for all the relevant libraries present on your system (e.g., | ||||||
| BLAS, LAPACK, and ATLAS). | BLAS, LAPACK, and ATLAS). | ||||||
|  |  | ||||||
| #### Install [Gflags](https://github.com/gflags/gflags "Gflags' Homepage"), a commandline flags processing module for C++: | #### Install [Gflags](https://github.com/gflags/gflags "Gflags' Homepage"), a commandline flags processing module for C++ | ||||||
|  |  | ||||||
| ``` | ``` | ||||||
| $ wget https://github.com/gflags/gflags/archive/v2.2.2.tar.gz | $ wget https://github.com/gflags/gflags/archive/v2.2.2.tar.gz | ||||||
| @@ -412,7 +414,7 @@ $ sudo make install | |||||||
| $ sudo ldconfig | $ sudo ldconfig | ||||||
| ``` | ``` | ||||||
|  |  | ||||||
| #### Install [Glog](https://github.com/google/glog "Glog's Homepage"), a library that implements application-level logging: | #### Install [Glog](https://github.com/google/glog "Glog's Homepage"), a library that implements application-level logging | ||||||
|  |  | ||||||
| ``` | ``` | ||||||
| $ wget https://github.com/google/glog/archive/v0.6.0.tar.gz | $ wget https://github.com/google/glog/archive/v0.6.0.tar.gz | ||||||
| @@ -425,7 +427,73 @@ $ sudo make install | |||||||
| $ sudo ldconfig | $ sudo ldconfig | ||||||
| ``` | ``` | ||||||
|  |  | ||||||
| #### Download the [Google C++ Testing Framework](https://github.com/google/googletest "Googletest Homepage"), also known as Google Test: | #### Install the GnuTLS or OpenSSL libraries | ||||||
|  |  | ||||||
|  | ``` | ||||||
|  | $ sudo apt-get install libgnutls-openssl-dev    # For Debian/Ubuntu/LinuxMint | ||||||
|  | $ sudo yum install openssl-devel                # For Fedora/CentOS/RHEL | ||||||
|  | $ sudo zypper install openssl-devel             # For OpenSUSE | ||||||
|  | $ sudo pacman -S openssl                        # For Arch Linux | ||||||
|  | ``` | ||||||
|  |  | ||||||
|  | In case the [GnuTLS](https://www.gnutls.org/ "GnuTLS's Homepage") library with | ||||||
|  | openssl extensions package is not available in your GNU/Linux distribution, | ||||||
|  | GNSS-SDR can also work well with | ||||||
|  | [OpenSSL](https://www.openssl.org/ "OpenSSL's Homepage"). | ||||||
|  |  | ||||||
|  | #### Install [Matio](https://github.com/tbeu/matio "Matio's Homepage"), MATLAB MAT file I/O library | ||||||
|  |  | ||||||
|  | ``` | ||||||
|  | $ wget https://github.com/tbeu/matio/releases/download/v1.5.23/matio-1.5.23.tar.gz | ||||||
|  | $ tar xvfz matio-1.5.23.tar.gz | ||||||
|  | $ cd matio-1.5.23 | ||||||
|  | $ ./configure | ||||||
|  | $ make | ||||||
|  | $ sudo make install | ||||||
|  | $ sudo ldconfig | ||||||
|  | ``` | ||||||
|  |  | ||||||
|  | #### Install [Protocol Buffers](https://developers.google.com/protocol-buffers/ "Protocol Buffers' Homepage"), a portable mechanism for serialization of structured data | ||||||
|  |  | ||||||
|  | GNSS-SDR requires Protocol Buffers v3.0.0 or later. If the packages that come | ||||||
|  | with your distribution are older than that (_e.g._, Ubuntu 16.04 Xenial and | ||||||
|  | Debian 8 Jessie came with older versions), then you will need to install it | ||||||
|  | manually. First, install the dependencies: | ||||||
|  |  | ||||||
|  | ``` | ||||||
|  | $ sudo apt-get install autoconf automake libtool curl make g++ unzip | ||||||
|  | ``` | ||||||
|  |  | ||||||
|  | and then: | ||||||
|  |  | ||||||
|  | ``` | ||||||
|  | $ git clone https://github.com/protocolbuffers/protobuf.git | ||||||
|  | $ cd protobuf | ||||||
|  | $ git submodule update --init --recursive | ||||||
|  | $ ./autogen.sh | ||||||
|  | $ /configure | ||||||
|  | $ make -j$(nproc) | ||||||
|  | $ sudo make install | ||||||
|  | $ sudo ldconfig | ||||||
|  | ``` | ||||||
|  |  | ||||||
|  | For more options, please check the | ||||||
|  | [Protocol Buffers' installation instructions](https://github.com/protocolbuffers/protobuf/blob/main/src/README.md/). | ||||||
|  |  | ||||||
|  | #### Install [Pugixml](https://pugixml.org/ "Pugixml's Homepage"), a light-weight C++ XML processing library | ||||||
|  |  | ||||||
|  | ``` | ||||||
|  | $ wget https://github.com/zeux/pugixml/releases/download/v1.13/pugixml-1.13.tar.gz | ||||||
|  | $ tar xvfz pugixml-1.13.tar.gz | ||||||
|  | $ cd pugixml-1.13 | ||||||
|  | $ mkdir build && cd build | ||||||
|  | $ cmake .. | ||||||
|  | $ make | ||||||
|  | $ sudo make install | ||||||
|  | $ sudo ldconfig | ||||||
|  | ``` | ||||||
|  |  | ||||||
|  | #### Download [GoogleTest](https://github.com/google/googletest "Googletest Homepage") | ||||||
|  |  | ||||||
| ``` | ``` | ||||||
| $ wget https://github.com/google/googletest/archive/release-1.12.1.zip | $ wget https://github.com/google/googletest/archive/release-1.12.1.zip | ||||||
| @@ -462,71 +530,9 @@ environment variable is not defined, or the source code is not installed by a | |||||||
| package, then it will download a fresh copy of the Google Test source code and | package, then it will download a fresh copy of the Google Test source code and | ||||||
| will compile and link it for you. | will compile and link it for you. | ||||||
|  |  | ||||||
| #### Install the [GnuTLS](https://www.gnutls.org/ "GnuTLS's Homepage") or [OpenSSL](https://www.openssl.org/ "OpenSSL's Homepage") libraries: | <a name="download-and-build-linux"></a> | ||||||
|  |  | ||||||
| ``` | ### Clone GNSS-SDR's Git repository | ||||||
| $ sudo apt-get install libgnutls-openssl-dev    # For Debian/Ubuntu/LinuxMint |  | ||||||
| $ sudo yum install openssl-devel                # For Fedora/CentOS/RHEL |  | ||||||
| $ sudo zypper install openssl-devel             # For OpenSUSE |  | ||||||
| $ sudo pacman -S openssl                        # For Arch Linux |  | ||||||
| ``` |  | ||||||
|  |  | ||||||
| In case the GnuTLS library with openssl extensions package is not available in |  | ||||||
| your GNU/Linux distribution, GNSS-SDR can also work well with OpenSSL. |  | ||||||
|  |  | ||||||
| #### Install [Matio](https://github.com/tbeu/matio "Matio's Homepage"), MATLAB MAT file I/O library: |  | ||||||
|  |  | ||||||
| ``` |  | ||||||
| $ wget https://github.com/tbeu/matio/releases/download/v1.5.23/matio-1.5.23.tar.gz |  | ||||||
| $ tar xvfz matio-1.5.23.tar.gz |  | ||||||
| $ cd matio-1.5.23 |  | ||||||
| $ ./configure |  | ||||||
| $ make |  | ||||||
| $ sudo make install |  | ||||||
| $ sudo ldconfig |  | ||||||
| ``` |  | ||||||
|  |  | ||||||
| #### Install [Protocol Buffers](https://developers.google.com/protocol-buffers/ "Protocol Buffers' Homepage"), a portable mechanism for serialization of structured data: |  | ||||||
|  |  | ||||||
| GNSS-SDR requires Protocol Buffers v3.0.0 or later. If the packages that come |  | ||||||
| with your distribution are older than that (_e.g._, Ubuntu 16.04 Xenial and |  | ||||||
| Debian 8 Jessie came with older versions), then you will need to install it |  | ||||||
| manually. First, install the dependencies: |  | ||||||
|  |  | ||||||
| ``` |  | ||||||
| $ sudo apt-get install autoconf automake libtool curl make g++ unzip |  | ||||||
| ``` |  | ||||||
|  |  | ||||||
| and then: |  | ||||||
|  |  | ||||||
| ``` |  | ||||||
| $ git clone https://github.com/protocolbuffers/protobuf.git |  | ||||||
| $ cd protobuf |  | ||||||
| $ git submodule update --init --recursive |  | ||||||
| $ ./autogen.sh |  | ||||||
| $ /configure |  | ||||||
| $ make -j$(nproc) |  | ||||||
| $ sudo make install |  | ||||||
| $ sudo ldconfig |  | ||||||
| ``` |  | ||||||
|  |  | ||||||
| For more options, please check the |  | ||||||
| [Protocol Buffers' installation instructions](https://github.com/protocolbuffers/protobuf/blob/main/src/README.md/). |  | ||||||
|  |  | ||||||
| #### Install [Pugixml](https://pugixml.org/ "Pugixml's Homepage"), a light-weight C++ XML processing library: |  | ||||||
|  |  | ||||||
| ``` |  | ||||||
| $ wget https://github.com/zeux/pugixml/releases/download/v1.12/pugixml-1.12.tar.gz |  | ||||||
| $ tar xvfz pugixml-1.12.tar.gz |  | ||||||
| $ cd pugixml-1.12 |  | ||||||
| $ mkdir build && cd build |  | ||||||
| $ cmake .. |  | ||||||
| $ make |  | ||||||
| $ sudo make install |  | ||||||
| $ sudo ldconfig |  | ||||||
| ``` |  | ||||||
|  |  | ||||||
| ### <a name="download-and-build-linux">Clone GNSS-SDR's Git repository</a>: |  | ||||||
|  |  | ||||||
| ``` | ``` | ||||||
| $ git clone https://github.com/gnss-sdr/gnss-sdr | $ git clone https://github.com/gnss-sdr/gnss-sdr | ||||||
| @@ -665,7 +671,7 @@ and then import the created project into Eclipse: | |||||||
| After building the project, you will find the generated binaries at | After building the project, you will find the generated binaries at | ||||||
| `eclipse/install`. | `eclipse/install`. | ||||||
|  |  | ||||||
| ###### Build OSMOSDR support (OPTIONAL): | #### Build OSMOSDR support (OPTIONAL) | ||||||
|  |  | ||||||
| Install the [OsmoSDR](https://osmocom.org/projects/sdr "OsmoSDR's Homepage") | Install the [OsmoSDR](https://osmocom.org/projects/sdr "OsmoSDR's Homepage") | ||||||
| library and GNU Radio's source block: | library and GNU Radio's source block: | ||||||
| @@ -701,7 +707,7 @@ $ sudo make install | |||||||
| (in order to disable the `Osmosdr_Signal_Source` compilation, you can pass | (in order to disable the `Osmosdr_Signal_Source` compilation, you can pass | ||||||
| `-DENABLE_OSMOSDR=OFF` to cmake and build GNSS-SDR again). | `-DENABLE_OSMOSDR=OFF` to cmake and build GNSS-SDR again). | ||||||
|  |  | ||||||
| ###### Build FMCOMMS2 based SDR Hardware support (OPTIONAL): | #### Build FMCOMMS2 based SDR Hardware support (OPTIONAL) | ||||||
|  |  | ||||||
| Install the [libiio](https://github.com/analogdevicesinc/libiio.git) (>=v0.11), | Install the [libiio](https://github.com/analogdevicesinc/libiio.git) (>=v0.11), | ||||||
| [libad9361](https://github.com/analogdevicesinc/libad9361-iio.git) (>=v0.1-1) | [libad9361](https://github.com/analogdevicesinc/libad9361-iio.git) (>=v0.1-1) | ||||||
| @@ -757,7 +763,7 @@ The `Plutosdr_Signal_Source` offers a simpler manner to use the ADALM-PLUTO | |||||||
| because implements only a subset of FMCOMMS2's parameters valid for those | because implements only a subset of FMCOMMS2's parameters valid for those | ||||||
| devices. | devices. | ||||||
|  |  | ||||||
| ###### Build OpenCL support (OPTIONAL): | #### Build OpenCL support (OPTIONAL) | ||||||
|  |  | ||||||
| In order to enable the building of blocks that use OpenCL, type: | In order to enable the building of blocks that use OpenCL, type: | ||||||
|  |  | ||||||
| @@ -767,7 +773,7 @@ $ make | |||||||
| $ sudo make install | $ sudo make install | ||||||
| ``` | ``` | ||||||
|  |  | ||||||
| ###### Build CUDA support (OPTIONAL): | #### Build CUDA support (OPTIONAL) | ||||||
|  |  | ||||||
| In order to enable the building of blocks that use CUDA, NVIDIA's parallel | In order to enable the building of blocks that use CUDA, NVIDIA's parallel | ||||||
| programming model that enables graphics processing unit (GPU) acceleration for | programming model that enables graphics processing unit (GPU) acceleration for | ||||||
| @@ -784,7 +790,7 @@ $ sudo make install | |||||||
| Of course, you will also need a GPU that | Of course, you will also need a GPU that | ||||||
| [supports CUDA](https://developer.nvidia.com/cuda-gpus "CUDA GPUs"). | [supports CUDA](https://developer.nvidia.com/cuda-gpus "CUDA GPUs"). | ||||||
|  |  | ||||||
| ###### Build a portable binary | #### Build a portable binary | ||||||
|  |  | ||||||
| In order to build an executable that not depends on the specific SIMD | In order to build an executable that not depends on the specific SIMD | ||||||
| instruction set that is present in the processor of the compiling machine, so | instruction set that is present in the processor of the compiling machine, so | ||||||
| @@ -804,7 +810,7 @@ substitutes a generic, non-SIMD implementation. | |||||||
| More details can be found in our tutorial about | More details can be found in our tutorial about | ||||||
| [GNSS-SDR configuration options at building time](https://gnss-sdr.org/docs/tutorials/using-git/ "Configuration options at building time"). | [GNSS-SDR configuration options at building time](https://gnss-sdr.org/docs/tutorials/using-git/ "Configuration options at building time"). | ||||||
|  |  | ||||||
| ## <a name="macosx">macOS</a> | ## macOS | ||||||
|  |  | ||||||
| GNSS-SDR can be built on macOS (or the former Mac OS X), starting from 10.9 | GNSS-SDR can be built on macOS (or the former Mac OS X), starting from 10.9 | ||||||
| (Mavericks) and including 11 (Big Sur). If you still have not installed | (Mavericks) and including 11 (Big Sur). If you still have not installed | ||||||
| @@ -827,7 +833,7 @@ $ sudo xcodebuild -license | |||||||
| Software pre-requisites can be installed using either [Macports](#macports) or | Software pre-requisites can be installed using either [Macports](#macports) or | ||||||
| [Homebrew](#homebrew). | [Homebrew](#homebrew). | ||||||
|  |  | ||||||
| #### <a name="macports">Macports</a> | ### Macports | ||||||
|  |  | ||||||
| First, [install Macports](https://www.macports.org/install.php). If you are | First, [install Macports](https://www.macports.org/install.php). If you are | ||||||
| upgrading from a previous installation, please follow the | upgrading from a previous installation, please follow the | ||||||
| @@ -857,7 +863,7 @@ and you can activate a certain version by typing: | |||||||
| $ sudo port select --set python python37 | $ sudo port select --set python python37 | ||||||
| ``` | ``` | ||||||
|  |  | ||||||
| #### <a name="homebrew">Homebrew</a> | ### Homebrew | ||||||
|  |  | ||||||
| First, install [Homebrew](https://brew.sh/). Paste this in a terminal prompt: | First, install [Homebrew](https://brew.sh/). Paste this in a terminal prompt: | ||||||
|  |  | ||||||
| @@ -886,7 +892,32 @@ $ brew install --cask mactex  # when completed, restart Terminal | |||||||
| $ brew install graphviz doxygen | $ brew install graphviz doxygen | ||||||
| ``` | ``` | ||||||
|  |  | ||||||
| #### Build GNSS-SDR | ### Other package managers | ||||||
|  |  | ||||||
|  | GNU Radio and other dependencies can also be installed using other package | ||||||
|  | managers than Macports, such as [Fink](http://www.finkproject.org/ "Fink"). | ||||||
|  | Since the version of Python that ships with OS X is great for learning but it is | ||||||
|  | not good for development, you could have another Python executable in a | ||||||
|  | non-standard location. If that is the case, you need to inform GNSS-SDR's | ||||||
|  | configuration system by defining the `PYTHON_EXECUTABLE` variable as: | ||||||
|  |  | ||||||
|  | ``` | ||||||
|  | $ cmake -DPYTHON_EXECUTABLE=/path/to/bin/python3 .. | ||||||
|  | ``` | ||||||
|  |  | ||||||
|  | In case you have installed Macports in a non-standard location, you can use: | ||||||
|  |  | ||||||
|  | ``` | ||||||
|  | $ cmake -DCMAKE_PREFIX_PATH=/opt/local -DUSE_MACPORTS_PYTHON=/opt/local/bin/python .. | ||||||
|  | ``` | ||||||
|  |  | ||||||
|  | changing `/opt/local` by the base directory in which your software is installed. | ||||||
|  |  | ||||||
|  | The CMake script will create Makefiles that download, build and link Armadillo, | ||||||
|  | Gflags, Glog, Matio, Protocol Buffers, PugiXML and Google Test on the fly at | ||||||
|  | compile time if they are not detected in your machine. | ||||||
|  |  | ||||||
|  | ### Build GNSS-SDR | ||||||
|  |  | ||||||
| Finally, you are ready to clone the GNSS-SDR repository, configure and build the | Finally, you are ready to clone the GNSS-SDR repository, configure and build the | ||||||
| software: | software: | ||||||
| @@ -933,32 +964,6 @@ the function to execute. It mimics GNU Radio's [VOLK](https://www.libvolk.org/) | |||||||
| library, so if you still have not run `volk_profile`, this is a good moment to | library, so if you still have not run `volk_profile`, this is a good moment to | ||||||
| do so. | do so. | ||||||
|  |  | ||||||
| ###### Other package managers |  | ||||||
|  |  | ||||||
| GNU Radio and other dependencies can also be installed using other package |  | ||||||
| managers than Macports, such as [Fink](http://www.finkproject.org/ "Fink") or |  | ||||||
| [Homebrew](https://brew.sh/ "Homebrew"). Since the version of Python that ships |  | ||||||
| with OS X is great for learning but it is not good for development, you could |  | ||||||
| have another Python executable in a non-standard location. If that is the case, |  | ||||||
| you need to inform GNSS-SDR's configuration system by defining the |  | ||||||
| `PYTHON_EXECUTABLE` variable as: |  | ||||||
|  |  | ||||||
| ``` |  | ||||||
| cmake -DPYTHON_EXECUTABLE=/path/to/bin/python3 .. |  | ||||||
| ``` |  | ||||||
|  |  | ||||||
| In case you have installed Macports in a non-standard location, you can use: |  | ||||||
|  |  | ||||||
| ``` |  | ||||||
| $ cmake -DCMAKE_PREFIX_PATH=/opt/local -DUSE_MACPORTS_PYTHON=/opt/local/bin/python .. |  | ||||||
| ``` |  | ||||||
|  |  | ||||||
| changing `/opt/local` by the base directory in which your software is installed. |  | ||||||
|  |  | ||||||
| The CMake script will create Makefiles that download, build and link Armadillo, |  | ||||||
| Gflags, Glog, Matio, Protocol Buffers, PugiXML and Google Test on the fly at |  | ||||||
| compile time if they are not detected in your machine. |  | ||||||
|  |  | ||||||
| ## Other builds | ## Other builds | ||||||
|  |  | ||||||
| - **Docker image**: A technology providing operating-system-level virtualization | - **Docker image**: A technology providing operating-system-level virtualization | ||||||
| @@ -982,10 +987,10 @@ compile time if they are not detected in your machine. | |||||||
| - **GNSS-SDR in embedded platforms**: we provide a Software Development Kit | - **GNSS-SDR in embedded platforms**: we provide a Software Development Kit | ||||||
|   (SDK) based on [OpenEmbedded](http://www.openembedded.org/wiki/Main_Page) for |   (SDK) based on [OpenEmbedded](http://www.openembedded.org/wiki/Main_Page) for | ||||||
|   cross-compiling GNSS-SDR in your desktop computer and for producing |   cross-compiling GNSS-SDR in your desktop computer and for producing | ||||||
|   executables that can run in embedded platforms, such as a Zedboard or a |   executables that can run in embedded platforms, such as Xilinx's Zynq and | ||||||
|   Raspberry Pi 3. Visit |   ZynqMP architectures, Raspberry Pi, and many others. Please check | ||||||
|   [Cross-compiling GNSS-SDR](https://gnss-sdr.org/docs/tutorials/cross-compiling/) |   [yocto-geniux](https://github.com/carlesfernandez/yocto-geniux) for | ||||||
|   for instructions. |   instructions on how to build bootable images. | ||||||
|  |  | ||||||
| # Updating GNSS-SDR | # Updating GNSS-SDR | ||||||
|  |  | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 Carles Fernandez
					Carles Fernandez