Jamulus Icon. Link zur Wiki Startseite
Navigationsmenü öffnen

Compiling Jamulus from Source

Linux

Please refer to the client installation page or these instructions if you wish to compile a headless server

macOS

You don’t need to compile Jamulus for macOS since we provide official binaries, but if you really want to, follow the instructions below.

Requirements

  1. Install XCode
  2. Install Qt as follows
brew install qt5
brew link qt5 --force

Build project

Generate XCode Project file

qmake -spec macx-xcode Jamulus.pro
xcodebuild -list -project Jamulus.xcodeproj

will prompt

Targets:
    Jamulus
    Qt Preprocess

Build Configurations:
    Debug
    Release

If no build configuration is specified and -scheme is not passed then "Release" is used.

Schemes:
    Jamulus

Build the project

xcodebuild build

Will build the file and make it available in ./Release/Jamulus.app

Windows

You don’t need to compile Jamulus for Windows since we provide official binaries, but if you really want to, follow the instructions below.

Required Software

  • A compiler like Visual Studio (You only need Build Tools 2017 or 2019 but can also choose to download and install the full IDE from the Visual Studio download page)
  • Qt
    • Use the free GPLv2 license for Open Source development
    • To determine the Qt version you need, check qt-installer-windows.qs: under INSTALL_COMPONENTS you will see qt.qt5.[version], e.g., 5123 means version 5.12.3.
    • Select Components during installation: Expand the Qt section, find the matching version, e.g., Qt 5.12.3, and add the compiler components for your compiler, e.g., MSVC 2017 32-bit/64-bit for Visual Studio 2019
  • ASIO development files

Download Jamulus source code

Get the Jamulus source code e.g. via git or zip download from the Jamulus repo.

Compiling and building installer

Most users will probably want to use this method:

  1. Open PowerShell
  2. Navigate to the jamulus directory
  3. To allow unsigned scripts, right-click on the windows\deploy_windows.ps1 script, select properties and allow the execution of this script. You can also run Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser. (You can revert this after having run this script. For more information see the Microsoft PowerShell documentation page).
  4. Edit the $QtCompile32 and $QtCompile64 variables.
  5. Run the Jamulus compilation and installer script in PowerShell: .\windows\deploy_windows.ps1 C:\Qt\QtVersion.
  6. You can now find the Jamulus installer in the .\deploy directory.

Compiling only

  1. Create a folder under \windows called ASIOSDK2
  2. Download the ASIOSDK, open the top level folder in the .zip file and copy the contents into [\path\to\jamulus\source]\windows\ASIOSDK2 so that, e.g., the folder [\path\to\jamulus\source]\windows\ASIOSDK2\common exists
  3. Open Jamulus.pro in Qt Creator, configure the project with a default kit, then compile & run

General notes

The “headless” build flag

Compiling with the headless flag means you can avoid installing some of the dependent packages, save some disk space and/or speed up your build time under the following circumstances:

  1. If you plan to run Jamulus on Gentoo Linux, the only packages you should need for a headless build are qtcore, qtnetwork, qtconcurrent and qtxml (both for building and running the server).

  2. If you are running Jamulus on Ubuntu/Debian, you will need all dependent packages to compile the binary, but to run the resulting headless Jamulus server you should only need libqt5core5a, libqt5network5, libqt5xml5 and probably libqt5concurrent5. This may be useful for compiling/upgrading on one machine to run the binary on another (a Raspberry Pi, for example).

  3. Note that if you want to compile a GUI client on one machine and run it on another (e.g. a Raspberry Pi) you only need the dependencies listed for a headless server (see point above), only with the JACK sound libraries.

Sag uns, was du über Jamulus denkst - fülle unsere anonyme Umfrage aus (English)

Dieses Wiki ist unter einer Creative Commons Lizenz lizenziert. Willst du mithelfen?