Skip to content

Latest commit

 

History

History
181 lines (132 loc) · 3.07 KB

BUILDING.md

File metadata and controls

181 lines (132 loc) · 3.07 KB

phiola Build Instructions

  • Step 1. Download code
  • Step 2, Option 1. Cross-Build on Linux
  • Step 2, Option 2. Native Build
    • Install dependencies
    • Build
  • Build Parameters
  • Step 3. Security Check
  • Step 4. Use

Supported targets:

  • Cross-Build on Linux for AMD64 & ARM64, Windows/AMD64, Android/ARM64
  • Native build on Linux

Targets that should work after minor tweaking:

  • Build on Windows
  • Build on FreeBSD & macOS

Step 1. Download code

mkdir phiola-src
cd phiola-src
git clone https://github.com/stsaz/phiola
git clone https://github.com/stsaz/netmill
git clone https://github.com/stsaz/avpack
git clone https://github.com/stsaz/ffaudio
git clone https://github.com/stsaz/ffpack
git clone https://github.com/stsaz/ffgui
git clone https://github.com/stsaz/ffsys
git clone https://github.com/stsaz/ffbase
cd phiola

Step 2, Option 1. Cross-Build on Linux

  • Cross-Build on Linux:

     bash xbuild-debianbullseye.sh
  • Cross-Build on Linux for ARM64:

     bash xbuild-debianbookworm-arm64.sh
  • Cross-Build on Linux for Windows/AMD64:

     bash xbuild-win64.sh
  • Cross-Build on Linux for Android/ARM64:

     ANDROID_CLT_URL=https://dl.google.com/android/repository/commandlinetools-linux-11076708_latest.zip \
     ANDROID_HOME=/home/USER/Android \
     ANDROID_BT_VER=33.0.0 \
     ANDROID_PF_VER=33 \
     ANDROID_NDK_VER=25.1.8937393 \
     GRADLE_DIR=/home/USER/.gradle \
     CPU=arm64 \
     	bash xbuild-android.sh

Step 2, Option 2. Native Build

Install dependencies

  • Debian/Ubuntu

     sudo apt install \
     	make gcc g++ \
     	libasound2-dev libpulse-dev libjack-dev \
     	libdbus-1-dev \
     	libgtk-3-dev \
     	libssl-dev \
     	zstd unzip cmake patch dos2unix curl
  • Fedora

     sudo dnf install \
     	make gcc gcc-c++ \
     	alsa-lib-devel pulseaudio-libs-devel pipewire-jack-audio-connection-kit-devel \
     	dbus-devel \
     	gtk3-devel \
     	openssl-devel \
     	zstd unzip cmake patch dos2unix curl
  • Windows

    • msys2 packages: mingw-w64-clang-x86_64-clang

    Environment:

     set PATH=c:\clang64\bin;%PATH%
    
  • macOS

     brew install \
     	make llvm \
     	cmake dos2unix

Build

  • Build on Linux:

     make -j8 zstd \
     	-C ../ffpack
     make -j8 \
     	-C alib3
     make -j8
  • Build on Windows:

     mingw32-make -j8 openssl \
     	-C ../netmill/3pt
     mingw32-make -j8 zstd \
     	-C ../ffpack
     mingw32-make -j8 \
     	-C alib3
     mingw32-make -j8
  • Build on FreeBSD & macOS:

     gmake -j8 zstd \
     	-C ../ffpack
     gmake -j8 \
     	-C alib3
     gmake -j8 PHI_HTTP_SSL=0

Build Parameters

Parameter Description
DEBUG=1 Developer build (no optimization; no strip; all assertions)
ASAN=1 Enable ASAN
CFLAGS_USER=... Additional C/C++ compiler flags
PHI_CODECS=0 Disable all codecs
PHI_HTTP_SSL=0 Disable SSL

Step 3. Security Check

For security, ensure that the original 3rd party libs were used:

make hash-check \
	-C ../netmill/3pt
make md5check \
	-C ../ffpack

Step 4. Use

Directory phiola-2 is the application directory. Copy it anywhere you want.