Skip to content
Snippets Groups Projects
Commit 6a353c33 authored by Adrien Béraud's avatar Adrien Béraud
Browse files

update README

Change-Id: Idf5bbfe9ca48ea3ba6a54cc73cc70084f897122f
parent e82f7471
Branches
No related tags found
No related merge requests found
COPYRIGHT NOTICE
Copyright (C) 2004-2024 Savoir-faire Linux Inc.
This program 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 of the License, or
(at your option) any later version.
This program 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 this program. If not, see <http://www.gnu.org/licenses/>.
Introduction
------------
----
Jami is a Voice-over-IP software phone. We want it to be:
- user friendly (fast, sleek, easy to learn interface)
......@@ -42,14 +25,14 @@ the Contributing section for more information.
Short description of content of source tree
-------------------------------------------
----
- src/ is the core of libjami.
- bin/ contains applications main code.
- bin/ contains application and binding main code.
- bin/dbus, the D-Bus XML interfaces, and C++ bindings
About Savoir-faire Linux Inc.
-----------------------------
----
Savoir-faire Linux Inc. is a consulting company based in Montreal,
Quebec. For more information, please check out our website:
......@@ -57,14 +40,16 @@ https://www.savoirfairelinux.com/
How to compile on Linux
-----------------------
----
A) With CMake
```bash
mkdir build
cd build
cmake .. -DJAMI_DBUS=On
make -j4
```
This should build the 'contrib' dependencies, then the daemon
......@@ -72,14 +57,17 @@ B) With Meson
1) Compile the dependencies first
```bash
cd contrib
mkdir native
cd native
../bootstrap
make
```
2) Then the jamid application and/or libjami library
```bash
cd ../../
mkdir build
export PATH=$PATH:`pwd`/contrib/`cc -dumpmachine`/bin
......@@ -87,34 +75,41 @@ meson -Dpkg_config_path=`pwd`/contrib/`cc -dumpmachine`/lib/pkgconfig -Ddefault_
cd build
ninja
ninja install
```
C) With Autotools
1) Compile the dependencies first
```bash
cd contrib
mkdir native
cd native
../bootstrap
make
```
2) Then the jamid application and/or libjami library
```bash
cd ../..
./autogen.sh
./configure
make
make install
```
How to compile the daemon for Android (on a Linux or macOS host)
-----------------------------------
----
A) With CMake
```bash
mkdir build
cd build
cmake .. -DCMAKE_TOOLCHAIN_FILE=$ANDROID_NDK/build/cmake/android.toolchain.cmake -DANDROID_ABI=arm64-v8a -DANDROID_API=24 -DBUILD_EXTRA_TOOLS=On -DJAMI_JNI=On -DJAMI_JNI_PACKAGEDIR=java
make -j4
```
Replace arm64-v8a with the desired target ABI.
See the README in jami-client-android for instructions to build the Jami client for Android.
......@@ -124,6 +119,7 @@ B) With Meson
1) Download and install Android NDK
2) Compile the dependencies
```bash
export ANDROID_NDK=<NDK>
export ANDROID_ABI=arm64-v8a
export ANDROID_API=24
......@@ -141,44 +137,53 @@ mkdir native
cd native
../bootstrap --build=x86_64-pc-linux-gnu --host=$TARGET$ANDROID_API
make
```
3) Update directories in the file /cross-files/android_arm64_api29.txt
4) Compile the library libjami.so
```bash
cd ../../
mkdir build
meson --cross-file `pwd`/cross-files/android_arm64_api29.txt build
cd build
ninja
ninja install
```
Note: to build the tests add `-Dtests=true` ; or it can be enabled later with `meson --reconfigure -Dtests=true build`
How to compile on macOS
-----------------------
----
# These first steps are only necessary if you don't use a package manager.
These first steps are only necessary if you don't use a package manager.
```bash
cd extras/tools
./bootstrap
make
export PATH=$PATH:/location/of/ring/daemon/extras/tools/build/bin
export PATH=$PATH:/location/of/daemon/extras/tools/build/bin
```
# Or, use your favorite package manager to install the necessary tools
(macports or brew).
automake, pkg-config, libtool, gettext, yasm
Or, use your favorite package manager to install the necessary tools
(macports or brew):
`automake pkg-config libtool gettext yasm`
# Compile the dependencies
```bash
cd contrib
mkdir native
cd native
../bootstrap
make -j
```
# Then the daemon
```bash
cd ../../
./autogen.sh
./configure --without-dbus --prefix=<install_path>
make
```
If you want to link against libjamiclient and native client easiest way is to
add to ./configure: --prefix=<prefix_path>
......@@ -186,7 +191,7 @@ add to ./configure: --prefix=<prefix_path>
Do a little dance!
How to compile in a Docker container
-----------------------
----
docker build --tag jami-daemon .
......@@ -197,7 +202,7 @@ docker build --tag jami-daemon --build-arg config_args="--with-nodejs" .
```
Common Issues
-------------
----
autopoint not found: When using Homebrew, autopoint is not found even when
gettext is installed, because symlinks are not created.
......@@ -205,12 +210,12 @@ Run: 'brew link --force gettext' to fix it.
Contributing to Jami
------------------------
----
Of course we love patches. And contributions. And spring rolls.
Development website / Bug Tracker:
- https://git.jami.net/savoirfairelinux/ring-project
- https://git.jami.net/savoirfairelinux/jami-project
Repositories are hosted on Gerrit, which we use for code review. It also
contains the client subprojects:
......@@ -219,3 +224,21 @@ contains the client subprojects:
Do not hesitate to join us and post comments, suggestions, questions
and general feedback on the Jami mailing-list:
https://lists.gnu.org/mailman/listinfo/jami
COPYRIGHT NOTICE
----
Copyright (C) 2004-2024 Savoir-faire Linux Inc.
This program 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 of the License, or
(at your option) any later version.
This program 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 this program. If not, see <http://www.gnu.org/licenses/>.
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment