updated readmes and added linux build scripts

This commit is contained in:
essej
2022-04-19 18:35:40 -04:00
parent b5492f2f60
commit 8ae5a82c99
8 changed files with 293 additions and 11 deletions

50
linux/BUILDING.md Normal file
View File

@ -0,0 +1,50 @@
# Building and installing PaulXStretch on GNU/Linux
Follow these steps in order to build (and install) PaulXStretch on GNU/Linux.
### Installing build dependencies
To build PaulXStretch you'll need to install the necessary development dependencies.
If you're using Debian or a Debian-based distro like Ubuntu, run this script:
```
./deb_get_prereqs.sh
```
On Fedora run this script:
```
./fedora_get_prereqs.sh
```
On other distros you'll have to insall the following development packages manually through your package manager:
* `libfftw3f-dev`
* `libjack-jackd2-dev`
* `libasound2-dev`
* `libx11-dev`
* `libxext-dev`
* `libxinerama-dev`
* `libxrandr-dev`
* `libxcursor-dev`
* `libgl-dev`
* `libfreetype6-dev` or `libfreetype-dev`
* `libcurl4-openssl-dev` or `libcurl4-gnutls-dev`
### Building
Run the build script, both the standalone application and the VST3 plugin will be built:
```
./build.sh
```
### Installing
When the build finishes, the executable will be at
`../build/PaulXStretch_artefacts/Release/paulxstretch`. You can install it
and the VST3 plugins by running the install script:
```
sudo ./install.sh
```
It defaults to installing in /usr/local, but if you want to install it
elsewhere, just specify the base directory as the first argument on the commandline of the script.
### Uninstalling
If you wish to uninstall you can run the uninstall script:
```
sudo ./uninstall.sh
```

11
linux/build.sh Executable file
View File

@ -0,0 +1,11 @@
#!/bin/bash
cd ..
./setupcmake.sh
#make -C build clean
./buildcmake.sh

53
linux/deb_get_prereqs.sh Executable file
View File

@ -0,0 +1,53 @@
#!/bin/bash
#
# Install prerequisite packages for SonoBus build on Debian based distros
GITREPO="https://github.com/essej/paulxstretch.git"
PREREQS="libjack-jackd2-dev \
libasound2-dev \
libx11-dev \
libxext-dev \
libxinerama-dev \
libxrandr-dev \
libxcursor-dev \
libfftw3f-def \
cmake
"
FREETYPES=$(apt-cache pkgnames libfreetype)
if [[ $FREETYPES == *"libfreetype6-dev"* ]]; then
PREREQS+="libfreetype6-dev "
elif [[ $FREETYPES == *"libfreetype-dev"* ]]; then
PREREQS+="libfreetype-dev "
else
echo "Couldn't find libfreetype dev package"
exit 1
fi
if [[ $(apt-cache pkgnames libcurl4-openssl-dev) == *"libcurl4-openssl-dev"* ]]; then
PREREQS+="libcurl4-openssl-dev"
elif [[ $(apt-cache pkgnames libcurl4-gnutls-dev) == *"libcurl4-gnutls-dev"* ]]; then
PREREQS+="libcurl4-gnutls-dev"
else
echo "Couldn't find libcurl ssl/tls dev package"
exit 1
fi
echo ""
echo "Installing prerequisites - " $(date)
echo ""
sudo apt update
sudo apt -y install git build-essential $PREREQS
function ver { printf "%03d%03d%03d%03d" $(echo "$1" | tr '.' ' '); }
cmakever=$(cmake --version | head -1 | cut -d" " -f3)
if [ $(ver $cmakever) -lt $(ver 3.16) ] ; then
echo "Your CMake is too old! You need version 3.16 or higher. Try to get a newer version, or compile CMake from source."
exit 1
fi

37
linux/fedora_get_prereqs.sh Executable file
View File

@ -0,0 +1,37 @@
#!/bin/bash
#
# Install prerequisite packages for SonoBus build on Fedora
GITREPO="https://github.com/essej/paulxstretch.git"
PREREQS="jack-audio-connection-kit \
jack-audio-connection-kit-devel \
alsa-lib-devel \
libX11-devel \
libXext-devel \
libXinerama-devel \
libXrandr-devel \
libXcursor-devel \
freetype-devel \
libcurl-devel \
cmake
"
echo ""
echo "Installing prerequisites - " $(date)
echo ""
sudo dnf update
sudo dnf -y groupinstall "Development Tools" "Development Libraries"
sudo dnf -y install git $PREREQS
function ver { printf "%03d%03d%03d%03d" $(echo "$1" | tr '.' ' '); }
cmakever=$(cmake --version | head -1 | cut -d" " -f3)
if [ $(ver $cmakever) -lt $(ver 3.16) ] ; then
echo "Your CMake is too old! You need version 3.16 or higher. Try to get a newer version, or compile CMake from source."
exit 1
fi

36
linux/install.sh Executable file
View File

@ -0,0 +1,36 @@
#!/bin/bash
PREFIX=/usr/local
if [ -n "$1" ] ; then
PREFIX="$1"
fi
echo "Installing PaulXStretch to ${PREFIX} ... (specify destination as command line argument if you want it elsewhere)"
BUILDDIR=../build/PaulXStretch_artefacts/Release
mkdir -p ${PREFIX}/bin
if ! cp ${BUILDDIR}/Standalone/paulxstretch ${PREFIX}/bin/paulxstretch ; then
echo
echo "Looks like you need to run this as 'sudo $0'"
exit 2
fi
mkdir -p ${PREFIX}/share/applications
cp paulxstretch.desktop ${PREFIX}/share/applications/paulxstretch.desktop
chmod +x ${PREFIX}/share/applications/paulxstretch.desktop
mkdir -p ${PREFIX}/share/pixmaps
cp ../images/paulxstretch_logo@2x.png ${PREFIX}/share/pixmaps/paulxstretch.png
if [ -d ${BUILDDIR}/VST3/PaulXStretch.vst3 ] ; then
mkdir -p ${PREFIX}/lib/vst3
cp -a ${BUILDDIR}/VST3/PaulXStretch.vst3 ${PREFIX}/lib/vst3/
echo "PaulXStretch VST3 plugin installed"
fi
echo "PaulXStretch application installed"

View File

@ -0,0 +1,11 @@
[Desktop Entry]
Name=PaulXStretch
Comment=Extreme Time Stretching
GenericName=Extreme Time Stretching
Exec=paulxstretch %u
Icon=paulxstretch
Terminal=false
Type=Application
Categories=AudioVideo;Audio;Mixer;
Keywords=live;online;music;conference;
MimeType=x-scheme-handler/paulxstretch

25
linux/uninstall.sh Executable file
View File

@ -0,0 +1,25 @@
#!/bin/bash
PREFIX=/usr/local
if [ -n "$1" ] ; then
PREFIX="$1"
fi
echo "Un-Installing PaulXStretch from ${PREFIX} ... (specify destination as command line argument if you have it elsewhere)"
if [ -f ${PREFIX}/bin/paulxstretch ] ; then
if ! rm -f ${PREFIX}/bin/paulxstretch ; then
echo
echo "Looks like you need to run this with 'sudo $0'"
exit 2
fi
fi
rm -f ${PREFIX}/share/applications/paulxstretch.desktop
rm -f ${PREFIX}/pixmaps/paulxstretch.png
rm -rf ${PREFIX}/lib/vst3/PaulXStretch.vst3
echo "PaulXStretch uninstalled"