123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 |
- #!/usr/bin/env bash
- #default installation directories
- INSTALL_DIR_LINUX="/usr/local/lib/lv2"
- INSTALL_DIR_MAC="/Library/Audio/Plug-Ins/LV2"
- # Detect the platform (similar to $OSTYPE)
- OS="`uname`"
- case $OS in
- 'Linux') OS='Linux' && echo "You are on a Linux system. Building for Linux";;
- 'Darwin') OS='Mac' && echo "You are on a Mac system. Building for MacOS";;
- *) ;;
- esac
- #Remove static rnnoise build
- if [ -d rnnoise ]; then
- read -p "Do you want to remove previous rnnoise build? (y/n)?" choice
- case "$choice" in
- y|Y ) rm -rf rnnoise && echo "Previous rnnoise build removed";;
- n|N ) echo "Previous rnnoise build was not removed";;
- * ) echo "invalid";;
- esac
- fi
- #only rebuild rnnoise if the user prefers to
- if [ ! -d rnnoise ]; then
- #build rrnoise statically
- wget https://github.com/xiph/rnnoise/archive/master.zip
- # When using git or submodule to get rnnoise, the directory will be called
- # rnnoise, but when using the zip it will be rnnoise-master. Renaming to
- # rnnoise to keep unity.
- unzip -o master.zip && mv rnnoise-master rnnoise && rm master.zip
- cd rnnoise && ./autogen.sh
- mv ../ltmain.sh ./ && ./autogen.sh #This is weird but otherwise it won't work
- if [ $OS = "Mac" ]; then
- CFLAGS="-fvisibility=hidden -fPIC " \
- ./configure --disable-examples --disable-doc --disable-shared --enable-static
- elif [ $OS = "Linux" ]; then
- CFLAGS="-fvisibility=hidden -fPIC -Wl,--exclude-libs,ALL" \
- ./configure --disable-examples --disable-doc --disable-shared --enable-static
- fi
- # Perhaps best to remove j? Or do:
- make -j$(nproc)
- cd ..
- fi
- #remove previous builds
- rm -rf build || true
- #build the plugin in the new directory
- if [ $OS = "Linux" ]; then
- meson build --buildtype release --prefix $INSTALL_DIR_LINUX
- elif [ $OS = "Mac" ]; then
- meson build --buildtype release --prefix $INSTALL_DIR_MAC
- fi
- cd build
- ninja -v
|