Browse Source

Enhaned Readme and moved building instructions to BUILDING.md

Paul-Louis Ageneau 4 years ago
parent
commit
f3f8ecfe3b
2 changed files with 77 additions and 77 deletions
  1. 71 0
      BUILDING.md
  2. 6 77
      README.md

+ 71 - 0
BUILDING.md

@@ -0,0 +1,71 @@
+# libdatachannel - Building instructions
+
+## Clone repository and submodules
+
+```bash
+$ git clone https://github.com/paullouisageneau/libdatachannel.git
+$ cd libdatachannel
+$ git submodule update --init --recursive
+```
+
+## Build with CMake
+
+The CMake library targets `libdatachannel` and `libdatachannel-static` respectively correspond to the shared and static libraries. The default target will build tests and examples. The option `USE_GNUTLS` allows to switch between OpenSSL (default) and GnuTLS, and the option `USE_NICE` allows to switch between libjuice as submodule (default) and libnice.
+
+If you only need Data Channels, the option `NO_MEDIA` allows to make the library lighter by removing media support. Similarly, `NO_WEBSOCKET` removes WebSocket support.
+
+### POSIX-compliant operating systems (including Linux and Apple macOS)
+
+```bash
+$ cmake -B build -DUSE_GNUTLS=1 -DUSE_NICE=0
+$ cd build
+$ make -j2
+```
+
+### Apple macOS with XCode project
+
+```bash
+$ cmake -B "$BUILD_DIR" -DUSE_GNUTLS=0 -DUSE_NICE=0 -G Xcode
+```
+
+Xcode project is generated in *build/* directory.
+
+#### Solving **Could NOT find OpenSSL** error
+
+You need to add OpenSSL root directory if your build fails with the following message:
+
+```
+Could NOT find OpenSSL, try to set the path to OpenSSL root folder in the
+system variable OPENSSL_ROOT_DIR (missing: OPENSSL_CRYPTO_LIBRARY
+OPENSSL_INCLUDE_DIR)
+```
+
+for example:
+```bash
+$ cmake -B build -DUSE_GNUTLS=0 -DUSE_NICE=0 -G Xcode -DOPENSSL_ROOT_DIR=/usr/local/Cellar/openssl\@1.1/1.1.1h/
+```
+
+### Microsoft Windows with MinGW cross-compilation
+```bash
+$ cmake -B build -DCMAKE_TOOLCHAIN_FILE=/usr/share/mingw/toolchain-x86_64-w64-mingw32.cmake # replace with your toolchain file
+$ cd build
+$ make -j2
+```
+
+### Microsoft Windows with Microsoft Visual C++
+```bash
+$ cmake -B build -G "NMake Makefiles"
+$ cd build
+$ nmake
+```
+
+## Build directly with Make (Linux only)
+
+The option `USE_GNUTLS` allows to switch between OpenSSL (default) and GnuTLS, and the option `USE_NICE` allows to switch between libjuice as submodule (default) and libnice.
+
+If you only need Data Channels, the option `NO_MEDIA` removes media support. Similarly, `NO_WEBSOCKET` removes WebSocket support.
+
+```bash
+$ make USE_GNUTLS=1 USE_NICE=0
+```
+

+ 6 - 77
README.md

@@ -5,13 +5,11 @@ It can be compiled with multiple backends:
 - The security layer can be provided through [OpenSSL](https://www.openssl.org/) or [GnuTLS](https://www.gnutls.org/).
 - The security layer can be provided through [OpenSSL](https://www.openssl.org/) or [GnuTLS](https://www.gnutls.org/).
 - The connectivity for WebRTC can be provided through my ad-hoc ICE library [libjuice](https://github.com/paullouisageneau/libjuice) as submodule or through [libnice](https://github.com/libnice/libnice).
 - The connectivity for WebRTC can be provided through my ad-hoc ICE library [libjuice](https://github.com/paullouisageneau/libjuice) as submodule or through [libnice](https://github.com/libnice/libnice).
 
 
-This projet is originally inspired by [librtcdcpp](https://github.com/chadnickbok/librtcdcpp), however it is a complete rewrite from scratch, because the messy architecture of librtcdcpp made solving its implementation issues difficult.
-
 Licensed under LGPLv2, see [LICENSE](https://github.com/paullouisageneau/libdatachannel/blob/master/LICENSE).
 Licensed under LGPLv2, see [LICENSE](https://github.com/paullouisageneau/libdatachannel/blob/master/LICENSE).
 
 
 ## Compatibility
 ## Compatibility
 
 
-The library aims at implementing the following communication protocols:
+The library implements the following communication protocols:
 
 
 ### WebRTC Data Channels and Media Transport
 ### WebRTC Data Channels and Media Transport
 
 
@@ -47,91 +45,22 @@ Features:
 
 
 ## Dependencies
 ## Dependencies
 
 
-Dependencies:
-- GnuTLS: https://www.gnutls.org/ or OpenSSL: https://www.openssl.org/
+Only [GnuTLS](https://www.gnutls.org/) or [OpenSSL](https://www.openssl.org/) are necessary.
+
+Optionally, [libnice](https://nice.freedesktop.org/) can be selected as an alternative ICE backend instead of libjuice.
 
 
 Submodules:
 Submodules:
 - libjuice: https://github.com/paullouisageneau/libjuice
 - libjuice: https://github.com/paullouisageneau/libjuice
 - usrsctp: https://github.com/sctplab/usrsctp
 - usrsctp: https://github.com/sctplab/usrsctp
 - libsrtp: https://github.com/cisco/libsrtp
 - libsrtp: https://github.com/cisco/libsrtp
 
 
-Optional dependencies:
-- libnice: https://nice.freedesktop.org/ (if selected as ICE backend instead of libjuice)
-- libsrtp: https://github.com/cisco/libsrtp (if selected instead of the submodule)
-
 ## Building
 ## Building
 
 
-### Clone repository and submodules
-
-```bash
-$ git clone https://github.com/paullouisageneau/libdatachannel.git
-$ cd libdatachannel
-$ git submodule update --init --recursive
-```
-
-### Building with CMake
-
-The CMake library targets `libdatachannel` and `libdatachannel-static` respectively correspond to the shared and static libraries. The default target will build tests and examples. The option `USE_GNUTLS` allows to switch between OpenSSL (default) and GnuTLS, and the option `USE_NICE` allows to switch between libjuice as submodule (default) and libnice.
-
-If you only need Data Channels, the option `NO_MEDIA` allows to make the library lighter by removing media support. Similarly, `NO_WEBSOCKET` removes WebSocket support.
-
-#### POSIX-compliant operating systems (including Linux and Apple macOS)
-```bash
-$ cmake -B build -DUSE_GNUTLS=1 -DUSE_NICE=0
-$ cd build
-$ make -j2
-```
-
-#### Apple macOS with XCode project
-
-```bash
-$ cmake -B "$BUILD_DIR" -DUSE_GNUTLS=0 -DUSE_NICE=0 -G Xcode
-```
-
-Xcode project is generated in *build/* directory.
-
-##### Solving **Could NOT find OpenSSL** error
-
-You need to add OpenSSL root directory if your build fails with the following message:
-
-```
-Could NOT find OpenSSL, try to set the path to OpenSSL root folder in the
-system variable OPENSSL_ROOT_DIR (missing: OPENSSL_CRYPTO_LIBRARY
-OPENSSL_INCLUDE_DIR)
-```
-
-for example:
-```bash
-$ cmake -B build -DUSE_GNUTLS=0 -DUSE_NICE=0 -G Xcode -DOPENSSL_ROOT_DIR=/usr/local/Cellar/openssl\@1.1/1.1.1h/
-```
-
-#### Microsoft Windows with MinGW cross-compilation
-```bash
-$ cmake -B build -DCMAKE_TOOLCHAIN_FILE=/usr/share/mingw/toolchain-x86_64-w64-mingw32.cmake # replace with your toolchain file
-$ cd build
-$ make -j2
-```
-
-#### Microsoft Windows with Microsoft Visual C++
-```bash
-$ cmake -B build -G "NMake Makefiles"
-$ cd build
-$ nmake
-```
-
-### Building directly with Make (Linux only)
-
-The option `USE_GNUTLS` allows to switch between OpenSSL (default) and GnuTLS, and the option `USE_NICE` allows to switch between libjuice as submodule (default) and libnice.
-
-If you only need Data Channels, the option `NO_MEDIA` removes media support. Similarly, `NO_WEBSOCKET` removes WebSocket support.
-
-```bash
-$ make USE_GNUTLS=1 USE_NICE=0
-```
+See [BUILDING.md](https://github.com/paullouisageneau/libdatachannel/blob/master/BUILDING.md) for building instructions.
 
 
 ## Examples
 ## Examples
 
 
-See [examples](https://github.com/paullouisageneau/libdatachannel/blob/master/examples/) for a complete usage example with signaling server (under GPLv2).
+See [examples](https://github.com/paullouisageneau/libdatachannel/blob/master/examples/) for complete usage examples with signaling server (under GPLv2).
 
 
 Additionnaly, you might want to have a look at the [C API](https://github.com/paullouisageneau/libdatachannel/blob/master/include/rtc/rtc.h).
 Additionnaly, you might want to have a look at the [C API](https://github.com/paullouisageneau/libdatachannel/blob/master/include/rtc/rtc.h).