summaryrefslogtreecommitdiffstats
path: root/INSTALL.md
blob: c2209f301c1b56cc851e1ac7c5d7c5537fd5bae2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
You have 3 ways to install odr-dabmux on your host:

# Using binary debian packages
If your host is running a debian-based OS on amd64, arm64 or arm/v7, then you can install odr-dabmux using the standard debian packaging system:
1. Update the debian apt repository list:
   ```
   # Replace bullseye (debian-11) with bookworm (debian-12) if applicable

   curl -fsSL http://debian.opendigitalradio.org/opendigitalradio-bullseye.sources > /etc/apt/sources.list.d/opendigitalradio-bullseye.sources

   curl -fsSL http://debian.opendigitalradio.org/opendigitalradio.asc | gpg --dearmor > /etc/apt/trusted.gpg.d/opendigitalradio.gpg
   ```
1. Refresh the debian packages list:
   ```
   apt update
   ```
1. Install the package:
   ```
   sudo apt install --yes odr-dabmux
   ```

**Notice**: this debian package does not include the Mux Web Management GUI

# Using the dab-scripts
You can compile odr-dabmux as well as the other main components of the mmbTools set with an installation script:
1. Clone the dab-scripts repository:
   ```
   git clone https://github.com/opendigitalradio/dab-scripts.git
   ```
1. Follow the [instructions](https://github.com/Opendigitalradio/dab-scripts/tree/master/install)

# Compiling manually
Unlike the 2 previous options, this one allows you to compile odr-dabmux with the features you really need.

## Dependencies
### Debian Bullseye-based OS:
```
# Required packages
## C++11 compiler
sudo apt-get install --yes build-essential automake libtool

## ZeroMQ
sudo apt-get install --yes libzmq3-dev libzmq5

## Boost 1.48 or later
sudo apt-get install --yes libboost-system-dev

# optional packages
## cURL to download the TAI-UTC bulletin, needed for timestamps in EDI output
sudo apt-get install --yes libcurl4-openssl-dev
```

### Dependencies on other linux distributions
For CentOS, in addition to the packages needed to install a compiler, install the packages:
boost-devel libcurl-devel zeromq-devel

Third-party RPM packages are maintained by RaBe, and are built by the
[openSUSE Build Service](https://build.opensuse.org/project/show/home:radiorabe:dab).
For questions regarding these packages, please get in touch with the maintainer of
the [radio RaBe repository](https://github.com/radiorabe/).

For openSUSE, mnhauke is maintaining packages, also built using
[OBS](https://build.opensuse.org/project/show/home:mnhauke:ODR-mmbTools).

## Compilation
The *master* branch in the repository always points to the
latest release. If you are looking for a new feature or bug-fix
that did not yet make its way into a release, you can clone the
*next* branch from the repository.

1. Clone this repository:
   ```
   # stable version:
   git clone https://github.com/Opendigitalradio/ODR-DabMux.git

   # or development version (at your own risk):
   git clone https://github.com/Opendigitalradio/ODR-DabMux.git -b next
   ```
1. Configure the project
   ```
   cd ODR-DabMux
   ./bootstrap
   ./configure
   ```
1. Compile and install:
   ```
   make
   sudo make install
   ```

Notes:
- It is advised to run the bootstrap and configure steps again every time you pull updates from the repository.
- The configure script can be launched with a variety of options. Run `./configure --help` to display a complete list

# Develop on OSX and FreeBSD
If you want to develop on OSX platform install the necessary build tools
and dependencies with brew

    brew install boost zeromq automake curl

On FreeBSD, pkg installs all dependencies to /usr/local, but the build
tools will not search there by default. Set the following environment variables
before calling ./configure

    LDFLAGS="-L/usr/local/lib"
    CFLAGS="-I/usr/local/include"
    CXXFLAGS="-I/usr/local/include"

On both systems, RAW output is not available. Note that these systems
are not tested regularly.