1
0
mirror of https://github.com/Tha14/toxic.git synced 2024-11-16 03:03:02 +01:00
toxic/INSTALL.md
jfreegman 3f2826bd66
Add release and LLVM asan build options
The release build uses -O2 and flto, and has no debug symbols.
-Wmissing-field-initializer was removed due to false positives
on newer versions of clang
2020-11-26 16:04:54 -05:00

4.0 KiB

Installation

Dependencies

Name Needed by Debian package
Tox Core BASE None
NCurses BASE libncursesw5-dev
LibConfig BASE libconfig-dev
GNUmake BASE make
libcurl BASE libcurl4-openssl-dev
libqrencode QRCODE libqrencode-dev
OpenAL AUDIO, SOUND NOTIFICATIONS libopenal-dev
OpenALUT SOUND NOTIFICATIONS libalut-dev
LibNotify DESKTOP NOTIFICATIONS libnotify-dev
Python 3 PYTHON python3-dev
AsciiDoc DOCUMENTATION1 asciidoc

1: see Documentation

OS X Notes

Using Homebrew:

brew install curl qrencode openal-soft freealut libconfig libpng
brew install --HEAD https://raw.githubusercontent.com/Tox/homebrew-tox/master/Formula/libtoxcore.rb
brew install libnotify
export PKG_CONFIG_PATH=/usr/local/opt/openal-soft/lib/pkgconfig
make

You can omit libnotify if you intend to build without desktop notifications enabled.

Compiling

make
sudo make install

Documentation

Run make doc in the build directory after editing the asciidoc files to regenerate the manpages.
Note for developers: asciidoc files and generated manpages will need to be committed together.
Note for everyone: asciidoc (and this step) is only required for regenerating manpages when you modify them.

Notes

Compilation variables

  • You can add specific flags to the Makefile with USER_CFLAGS="" and USER_LDFLAGS="" passed as arguments to make, or as environment variables

  • Default compile options can be overridden by using special variables:

    • DISABLE_X11=1 → Disable X11 support (needed for focus tracking)
    • DISABLE_AV=1 → Disable audio call support
    • DISABLE_SOUND_NOTIFY=1 → Disable sound notifications support
    • DISABLE_QRCODE → Disable QR exporting support
    • DISABLE_QRPNG → Disable support for exporting QR as PNG
    • DISABLE_DESKTOP_NOTIFY=1 → Disable desktop notifications support
    • ENABLE_PYTHON=1 → Build toxic with Python scripting support
    • ENABLE_RELEASE=1 → Build toxic without debug symbols and with full compiler optimizations
    • ENABLE_ASAN=1 → Build toxic with LLVM Address Sanitizer enabled
  • DESTDIR="" Specifies the base install directory for binaries and data files (e.g.: DESTDIR="/tmp/build/pkg")

Environment variables

  • You can use the CFLAGS and LDFLAGS environment variables to add specific flags to the Makefile
  • The PREFIX environment variable specifies a base install directory for binaries and data files. This is interchangeable with the DESTDIR variable, and is generally used by systems that have the PREFIX environment variable set by default.
    Note: sudo does not preserve user environment variables by default on some systems. See the sudoers manual for more information.