diff --git a/.gitignore b/.gitignore index c82332748..94de4799b 100644 --- a/.gitignore +++ b/.gitignore @@ -37,6 +37,7 @@ resources.*.cpp ui_*.py # Misc files +*.meta4 *.ttl # PyQt widgets @@ -144,6 +145,11 @@ source/includes/vst/ source/includes/vst3/ source/includes/config.h +data/linux/*.gz +data/linux/*.tgz +data/linux/*.xz +data/linux/*.*/ + data/macos/*.gz data/macos/*.tgz data/macos/*.*/ diff --git a/data/copy-dpf-stuff b/data/copy-dpf-stuff new file mode 100755 index 000000000..ea4f619a8 --- /dev/null +++ b/data/copy-dpf-stuff @@ -0,0 +1,34 @@ +#!/bin/bash + +set -e + +# cp -v /home/falktx/FOSS/GIT-mine/DISTRHO/DPF/dgl/*.hpp /home/falktx/FOSS/GIT-mine/Carla/source/modules/dgl/ +# cp -r -v /home/falktx/FOSS/GIT-mine/DISTRHO/DPF/dgl/src /home/falktx/FOSS/GIT-mine/Carla/source/modules/dgl/ + +cp -r -v /home/falktx/FOSS/GIT-mine/DISTRHO/DPF/distrho/* /home/falktx/FOSS/GIT-mine/Carla/source/modules/distrho/ + +cp -v /home/falktx/FOSS/GIT-mine/DISTRHO/DISTRHO_mini-series/plugins/3BandEQ/{*.cpp,*.hpp,*.h} /home/falktx/FOSS/GIT-mine/Carla/source/modules/native-plugins/3bandeq/ +cp -v /home/falktx/FOSS/GIT-mine/DISTRHO/DISTRHO_mini-series/plugins/3BandSplitter/{*.cpp,*.hpp,*.h} /home/falktx/FOSS/GIT-mine/Carla/source/modules/native-plugins/3bandsplitter/ +cp -v /home/falktx/FOSS/GIT-mine/DISTRHO/DISTRHO_mini-series/plugins/PingPongPan/{*.cpp,*.hpp,*.h} /home/falktx/FOSS/GIT-mine/Carla/source/modules/native-plugins/pingpongpan/ + +cp -v /home/falktx/FOSS/GIT-mine/DISTRHO/DISTRHO_nekobi/plugins/Nekobi/{*.cpp,*.hpp,*.h} /home/falktx/FOSS/GIT-mine/Carla/source/modules/native-plugins/nekobi/ +cp -v /home/falktx/FOSS/GIT-mine/DISTRHO/DISTRHO_nekobi/plugins/Nekobi/nekobee-src/{*.c,*.h} /home/falktx/FOSS/GIT-mine/Carla/source/modules/native-plugins/nekobi/nekobee-src/ + +cp -v /home/falktx/FOSS/GIT-mine/DISTRHO/DISTRHO_prom/plugins/ProM/{*.cpp,*.hpp,*.h} /home/falktx/FOSS/GIT-mine/Carla/source/modules/native-plugins/prom/ + +cp -v /home/falktx/FOSS/GIT-mine/DISTRHO/JuicePlugins/plugins/GrooveJuice/{*.cpp,*.hpp,*.hxx,*.h} /home/falktx/FOSS/GIT-mine/Carla/source/modules/native-plugins/groovejuice/ +cp -v /home/falktx/FOSS/GIT-mine/DISTRHO/JuicePlugins/plugins/PowerJuice/{*.cpp,*.hpp,*.h} /home/falktx/FOSS/GIT-mine/Carla/source/modules/native-plugins/powerjuice/ +# cp -v /home/falktx/FOSS/GIT-mine/DISTRHO/JuicePlugins/plugins/PowerJuiceX2/{*.cpp,*.hpp,*.hxx,*.h} /home/falktx/FOSS/GIT-mine/Carla/source/modules/native-plugins/powerjuicex2/ +cp -v /home/falktx/FOSS/GIT-mine/DISTRHO/JuicePlugins/plugins/SegmentJuice/{*.cpp,*.hpp,*.hxx,*.h} /home/falktx/FOSS/GIT-mine/Carla/source/modules/native-plugins/segmentjuice/ +# cp -v /home/falktx/FOSS/GIT-mine/DISTRHO/JuicePlugins/plugins/StutterJuice/{*.cpp,*.hpp,*.hxx,*.h} /home/falktx/FOSS/GIT-mine/Carla/source/modules/native-plugins/stutterjuice/ +# cp -v /home/falktx/FOSS/GIT-mine/DISTRHO/JuicePlugins/plugins/TriggerJuice/{*.cpp,*.hpp,*.hxx,*.h} /home/falktx/FOSS/GIT-mine/Carla/source/modules/native-plugins/triggerjuice/ +cp -v /home/falktx/FOSS/GIT-mine/DISTRHO/JuicePlugins/plugins/VectorJuice/{*.cpp,*.hpp,*.h} /home/falktx/FOSS/GIT-mine/Carla/source/modules/native-plugins/vectorjuice/ +cp -v /home/falktx/FOSS/GIT-mine/DISTRHO/JuicePlugins/plugins/WobbleJuice/{*.cpp,*.hpp,*.hxx,*.h} /home/falktx/FOSS/GIT-mine/Carla/source/modules/native-plugins/wobblejuice/ + +cp -v /home/falktx/FOSS/GIT-mine/zam-plugins-DPF/plugins/ZamComp/{*.cpp,*.hpp,*.h} /home/falktx/FOSS/GIT-mine/Carla/source/modules/native-plugins/zamcomp/ +cp -v /home/falktx/FOSS/GIT-mine/zam-plugins-DPF/plugins/ZamCompX2/{*.cpp,*.hpp,*.h} /home/falktx/FOSS/GIT-mine/Carla/source/modules/native-plugins/zamcompx2/ +cp -v /home/falktx/FOSS/GIT-mine/zam-plugins-DPF/plugins/ZamEQ2/{*.cpp,*.hpp,*.h} /home/falktx/FOSS/GIT-mine/Carla/source/modules/native-plugins/zameq2/ +cp -v /home/falktx/FOSS/GIT-mine/zam-plugins-DPF/plugins/ZamSynth/{*.cpp,*.hpp,*.h} /home/falktx/FOSS/GIT-mine/Carla/source/modules/native-plugins/zamsynth/ +cp -v /home/falktx/FOSS/GIT-mine/zam-plugins-DPF/plugins/ZamTube/{*.cpp,*.hpp,*.h} /home/falktx/FOSS/GIT-mine/Carla/source/modules/native-plugins/zamtube/ +cp -v /home/falktx/FOSS/GIT-mine/zam-plugins-DPF/plugins/ZaMultiComp/{*.cpp,*.hpp,*.h} /home/falktx/FOSS/GIT-mine/Carla/source/modules/native-plugins/zamulticomp/ +cp -v /home/falktx/FOSS/GIT-mine/zam-plugins-DPF/plugins/ZaMultiCompX2/{*.cpp,*.hpp,*.h} /home/falktx/FOSS/GIT-mine/Carla/source/modules/native-plugins/zamulticompx2/ diff --git a/data/linux/build-deps.sh b/data/linux/build-deps.sh new file mode 100755 index 000000000..e7fa18554 --- /dev/null +++ b/data/linux/build-deps.sh @@ -0,0 +1,338 @@ +#!/bin/bash + +# ------------------------------------------------------------------------------------ +# stop on error + +set -e + +# ------------------------------------------------------------------------------------ +# cd to correct path + +if [ -f Makefile ]; then + cd data/linux +fi + +# ------------------------------------------------------------------------------------ +# Use gcc 4.8 + +export CC=gcc-4.8 +export CXX=g++-4.8 + +# ------------------------------------------------------------------------------------ +# function to build base libs + +build_base() +{ + +export CFLAGS="-O2 -mtune=generic -msse -msse2 -m$ARCH -fPIC -DPIC" +export CXXFLAGS=$CFLAGS +export LDFLAGS="-m$ARCH" + +export PREFIX=/opt/carla$ARCH +export PATH=$PREFIX/bin:/usr/bin:/bin:/usr/sbin:/sbin +export PKG_CONFIG_PATH=$PREFIX/lib/pkgconfig + +# ------------------------------------------------------------------------------------ +# pkgconfig + +if [ ! -d pkg-config-0.28 ]; then +aria2c http://pkgconfig.freedesktop.org/releases/pkg-config-0.28.tar.gz +tar -xf pkg-config-0.28.tar.gz +fi + +if [ ! -f pkg-config-0.28_$ARCH/build-done ]; then +cp -r pkg-config-0.28 pkg-config-0.28_$ARCH +cd pkg-config-0.28_$ARCH +./configure --enable-indirect-deps --with-internal-glib --with-pc-path=$PKG_CONFIG_PATH --prefix=$PREFIX +make +sudo make install +touch build-done +cd .. +fi + +# ------------------------------------------------------------------------------------ +# zlib + +if [ ! -d zlib-1.2.8 ]; then +aria2c http://zlib.net/zlib-1.2.8.tar.gz +tar -xf zlib-1.2.8.tar.gz +fi + +if [ ! -f zlib-1.2.8_$ARCH/build-done ]; then +cp -r zlib-1.2.8 zlib-1.2.8_$ARCH +cd zlib-1.2.8_$ARCH +./configure --static --prefix=$PREFIX +make +sudo make install +touch build-done +cd .. +fi + +# ------------------------------------------------------------------------------------ +# liblo + +if [ ! -d liblo-0.28 ]; then +aria2c http://download.sourceforge.net/liblo/liblo-0.28.tar.gz +tar -xf liblo-0.28.tar.gz +fi + +if [ ! -f liblo-0.28_$ARCH/build-done ]; then +cp -r liblo-0.28 liblo-0.28_$ARCH +cd liblo-0.28_$ARCH +./configure --enable-static --disable-shared --prefix=$PREFIX +make +sudo make install +touch build-done +cd .. +fi + +# ------------------------------------------------------------------------------------ +# mxml + +if [ ! -d mxml-2.8 ]; then +aria2c http://www.msweet.org/files/project3/mxml-2.8.tar.gz +tar -xf mxml-2.8.tar.gz +fi + +if [ ! -f mxml-2.8_$ARCH/build-done ]; then +cp -r mxml-2.8 mxml-2.8_$ARCH +cd mxml-2.8_$ARCH +./configure --enable-static --disable-shared --prefix=$PREFIX +make +sudo cp *.a $PREFIX/lib/ +sudo cp *.pc $PREFIX/lib/pkgconfig/ +sudo cp mxml.h $PREFIX/include/ +touch build-done +cd .. +fi + +# ------------------------------------------------------------------------------------ +# fftw3 + +if [ ! -d fftw-3.3.4 ]; then +aria2c http://www.fftw.org/fftw-3.3.4.tar.gz +tar -xf fftw-3.3.4.tar.gz +fi + +if [ ! -f fftw-3.3.4_$ARCH/build-done ]; then +export CFLAGS="-O2 -mtune=generic -msse -msse2 -ffast-math -mfpmath=sse -m$ARCH -fPIC -DPIC" +export CXXFLAGS=$CFLAGS +cp -r fftw-3.3.4 fftw-3.3.4_$ARCH +cd fftw-3.3.4_$ARCH +./configure --enable-static --enable-sse2 --disable-shared --disable-debug --prefix=$PREFIX +make +sudo make install +make clean +./configure --enable-static --enable-sse --enable-sse2 --enable-single --disable-shared --disable-debug --prefix=$PREFIX +make +sudo make install +make clean +touch build-done +cd .. +fi + +} + +# ------------------------------------------------------------------------------------ +# build base libs + +export ARCH=32 +build_base + +export ARCH=64 +build_base + +# ------------------------------------------------------------------------------------ +# qt5-base download + +if [ ! -d qtbase-opensource-src-5.3.0 ]; then +aria2c http://download.qt-project.org/official_releases/qt/5.3/5.3.0/submodules/qtbase-opensource-src-5.3.0.tar.xz +tar -xf qtbase-opensource-src-5.3.0.tar.xz +fi + +# ------------------------------------------------------------------------------------ +# qt5-base 32bit (minimal, static) + +if [ ! -f qtbase-opensource-src-5.3.0_32/build-done ]; then +export CFLAGS="-O2 -mtune=generic -msse -msse2 -m32 -fPIC -DPIC" +export CXXFLAGS=$CFLAGS +export LDFLAGS="-m32" +export PREFIX=/opt/carla32 +export PATH=$PREFIX/bin:/usr/bin:/bin:/usr/sbin:/sbin +export PKG_CONFIG_PATH=$PREFIX/lib/pkgconfig +cp -r qtbase-opensource-src-5.3.0 qtbase-opensource-src-5.3.0_32 +cd qtbase-opensource-src-5.3.0_32 +export CFG_ARCH=i386 +export QMAKESPEC=linux-g++-32 +./configure -release -static -opensource -confirm-license -force-pkg-config -platform linux-g++-32 \ + -prefix $PREFIX -plugindir $PREFIX/lib/qt5/plugins -headerdir $PREFIX/include/qt5 \ + -qt-freetype -qt-libjpeg -qt-libpng -qt-pcre -qt-sql-sqlite -qt-zlib -opengl no \ + -no-directfb -no-eglfs -no-kms -no-linuxfb -no-mtdev -no-xcb -no-xcb-xlib \ + -no-sse3 -no-ssse3 -no-sse4.1 -no-sse4.2 -no-avx -no-avx2 -no-mips_dsp -no-mips_dspr2 \ + -no-cups -no-dbus -no-evdev -no-fontconfig -no-harfbuzz -no-iconv -no-icu -no-gif -no-glib -no-nis -no-openssl -no-pch -no-sql-ibase -no-sql-odbc \ + -no-audio-backend -no-qml-debug -no-separate-debug-info \ + -no-compile-examples -no-gui -no-widgets -nomake examples -nomake tests -nomake tools -make libs +make -j 8 +sudo make install +touch build-done +cd .. +fi + +# ------------------------------------------------------------------------------------ +# qt5-base 64bit (minimal, static) + +if [ ! -f qtbase-opensource-src-5.3.0_64/build-done ]; then +export CFLAGS="-O2 -mtune=generic -msse -msse2 -m64 -fPIC -DPIC" +export CXXFLAGS=$CFLAGS +export LDFLAGS="-m64" +export PREFIX=/opt/carla64 +export PATH=$PREFIX/bin:/usr/bin:/bin:/usr/sbin:/sbin +export PKG_CONFIG_PATH=$PREFIX/lib/pkgconfig +cp -r qtbase-opensource-src-5.3.0 qtbase-opensource-src-5.3.0_64 +cd qtbase-opensource-src-5.3.0_64 +export CFG_ARCH=x86_64 +export QMAKESPEC=linux-g++-64 +./configure -release -static -opensource -confirm-license -force-pkg-config -platform linux-g++-64 \ + -prefix $PREFIX -plugindir $PREFIX/lib/qt5/plugins -headerdir $PREFIX/include/qt5 \ + -qt-freetype -qt-libjpeg -qt-libpng -qt-pcre -qt-sql-sqlite -qt-zlib -opengl no \ + -no-directfb -no-eglfs -no-kms -no-linuxfb -no-mtdev -no-xcb -no-xcb-xlib \ + -no-sse3 -no-ssse3 -no-sse4.1 -no-sse4.2 -no-avx -no-avx2 -no-mips_dsp -no-mips_dspr2 \ + -no-cups -no-dbus -no-evdev -no-fontconfig -no-harfbuzz -no-iconv -no-icu -no-gif -no-glib -no-nis -no-openssl -no-pch -no-sql-ibase -no-sql-odbc \ + -no-audio-backend -no-qml-debug -no-separate-debug-info \ + -no-compile-examples -no-gui -no-widgets -nomake examples -nomake tests -nomake tools -make libs +make -j 8 +sudo make install +touch build-done +cd .. +fi + +# ------------------------------------------------------------------------------------ +# set flags for qt stuff + +export CFLAGS="-O2 -mtune=generic -msse -msse2 -fPIC -DPIC" +export CXXFLAGS=$CFLAGS +export LDFLAGS="" + +export PREFIX=/opt/carla +export PATH=$PREFIX/bin:/usr/bin:/bin:/usr/sbin:/sbin +export PKG_CONFIG_PATH=$PREFIX/lib/pkgconfig + +export CFG_ARCH=x86_64 +export QMAKESPEC=linux-g++ + +# ------------------------------------------------------------------------------------ +# qt5-base download (5.2.1 for now) + +if [ ! -d qtbase-opensource-src-5.2.1 ]; then +aria2c http://download.qt-project.org/official_releases/qt/5.2/5.2.1/submodules/qtbase-opensource-src-5.2.1.tar.xz +tar -xf qtbase-opensource-src-5.2.1.tar.xz +fi + +# ------------------------------------------------------------------------------------ +# qt5-base (regular, shared) + +if [ ! -f qtbase-opensource-src-5.2.1/build-done ]; then +cd qtbase-opensource-src-5.2.1 +./configure -release -shared -opensource -confirm-license -force-pkg-config -platform linux-g++ \ + -prefix $PREFIX -plugindir $PREFIX/lib/qt5/plugins -headerdir $PREFIX/include/qt5 \ + -qt-freetype -qt-libjpeg -qt-libpng -qt-pcre -qt-sql-sqlite -qt-xcb -qt-xkbcommon -qt-zlib -opengl desktop -qpa xcb \ + -no-directfb -no-eglfs -no-kms -no-linuxfb -no-mtdev \ + -no-sse3 -no-ssse3 -no-sse4.1 -no-sse4.2 -no-avx -no-avx2 -no-neon -no-mips_dsp -no-mips_dspr2 \ + -no-cups -no-dbus -no-evdev -no-fontconfig -no-harfbuzz -no-iconv -no-icu -no-gif -no-glib -no-nis -no-openssl -no-pch -no-sql-ibase -no-sql-odbc \ + -no-audio-backend -no-javascript-jit -no-qml-debug -no-rpath -no-separate-debug-info \ + -no-compile-examples -nomake examples -nomake tests -make libs -make tools +make -j 8 +sudo make install +# sudo cp src/plugins/platforms/xcb/xcb-static/libxcb-static.a $PREFIX/lib/qt5/plugins/platforms/ +# sudo sed "s?`pwd`/src/plugins/platforms/xcb/xcb-static?$PREFIX/lib/qt5/plugins/platforms?" -i $PREFIX/lib/qt5/plugins/platforms/libqxcb.prl +touch build-done +cd .. +fi + +# ------------------------------------------------------------------------------------ +# qt5-svg + +if [ ! -d qtsvg-opensource-src-5.2.1 ]; then +aria2c http://download.qt-project.org/official_releases/qt/5.2/5.2.1/submodules/qtsvg-opensource-src-5.2.1.tar.gz +tar -xf qtsvg-opensource-src-5.2.1.tar.gz +fi + +if [ ! -f qtsvg-opensource-src-5.2.1/build-done ]; then +cd qtsvg-opensource-src-5.2.1 +qmake +make -j 8 +sudo make install +touch build-done +cd .. +fi + +# ------------------------------------------------------------------------------------ +# python + +if [ ! -d Python-3.3.5 ]; then +aria2c https://www.python.org/ftp/python/3.3.5/Python-3.3.5.tgz +tar -xf Python-3.3.5.tgz +fi + +if [ ! -f Python-3.3.5/build-done ]; then +cd Python-3.3.5 +./configure --prefix=$PREFIX +make +sudo make install +touch build-done +cd .. +fi + +# ------------------------------------------------------------------------------------ +# sip + +if [ ! -d sip-4.15.5 ]; then +aria2c http://sourceforge.net/projects/pyqt/files/sip/sip-4.15.5/sip-4.15.5.tar.gz +tar -xf sip-4.15.5.tar.gz +fi + +if [ ! -f sip-4.15.5/build-done ]; then +cd sip-4.15.5 +python3 configure.py +make +sudo make install +touch build-done +cd .. +fi + +# ------------------------------------------------------------------------------------ +# pyqt5 + +if [ ! -d PyQt-gpl-5.2.1 ]; then +aria2c http://sourceforge.net/projects/pyqt/files/PyQt5/PyQt-5.2.1/PyQt-gpl-5.2.1.tar.gz +tar -xf PyQt-gpl-5.2.1.tar.gz +fi + +if [ ! -f PyQt-gpl-5.2.1/build-done ]; then +cd PyQt-gpl-5.2.1 +python3 configure.py --confirm-license +make +sudo make install +touch build-done +cd .. +fi + +# ------------------------------------------------------------------------------------ +# cxfreeze + +if [ ! -d cx_Freeze-4.3.3 ]; then +aria2c http://download.sourceforge.net/cx-freeze/cx_Freeze-4.3.3.tar.gz +tar -xf cx_Freeze-4.3.3.tar.gz +fi + +if [ ! -f cx_Freeze-4.3.3/build-done ]; then +cd cx_Freeze-4.3.3 +sed -i -e 's/"python%s.%s"/"python%s.%sm"/' setup.py +sed -i -e 's/not vars.get("Py_ENABLE_SHARED", 0)/True/' setup.py +python3 setup.py build +sudo python3 setup.py install --prefix=$PREFIX +touch build-done +cd .. +fi + +# ------------------------------------------------------------------------------------ diff --git a/data/linux/build.sh b/data/linux/build.sh new file mode 100755 index 000000000..eb02eb401 --- /dev/null +++ b/data/linux/build.sh @@ -0,0 +1,78 @@ +#!/bin/bash + +set -e + +JOBS="-j 2" + +if [ ! -f Makefile ]; then + cd ../.. +fi + +export CC=gcc-4.8 +export CXX=g++-4.8 +export CXFREEZE=/opt/carla/bin/cxfreeze +export MOC_QT5=moc +export RCC_QT5=moc + +# Build python stuff +export PATH=/opt/carla/bin:/opt/carla64/bin:/usr/bin:/bin:/usr/sbin:/sbin +export PKG_CONFIG_PATH=/opt/carla/lib/pkgconfig:/opt/carla64/lib/pkgconfig +make $JOBS UI RES WIDGETS + +# Build theme +make $JOBS theme + +# Build everything else +export PATH=/opt/carla64/bin:/usr/bin:/bin:/usr/sbin:/sbin +export PKG_CONFIG_PATH=/opt/carla64/lib/pkgconfig +make -C source/modules dgl +make backend $JOBS LDFLAGS="../../modules/dgl.a -lGL -lX11" +# make $JOBS + +# Build Linux app +export PATH=/opt/carla/bin:/opt/carla64/bin:/usr/bin:/bin:/usr/sbin:/sbin +export PYTHONPATH=`pwd`/source +unset PKG_CONFIG_PATH + +# cd source +rm -rf ./build ./build-lv2 + +cp ./source/carla ./source/carla.pyw +cp ./source/carla-plugin ./source/carla-plugin.pyw +cp ./source/modules/native-plugins/resources/bigmeter-ui ./source/bigmeter-ui.pyw +cp ./source/modules/native-plugins/resources/notes-ui ./source/notes-ui.pyw +$CXFREEZE --include-modules=re,sip,subprocess,inspect --target-dir=./build/ ./source/carla.pyw +$CXFREEZE --include-modules=re,sip,subprocess,inspect --target-dir=./build/plugin/ ./source/carla-plugin.pyw +$CXFREEZE --include-modules=re,sip,subprocess,inspect --target-dir=./build/plugin/ ./source/bigmeter-ui.pyw +$CXFREEZE --include-modules=re,sip,subprocess,inspect --target-dir=./build/plugin/ ./source/notes-ui.pyw +rm ./source/*.pyw + +cd build + +mkdir backend +mkdir bridges +mkdir discovery +mkdir styles +cp ../source/backend/*.so ./backend/ +# cp ../source/bridges/carla-bridge-* ./bridges/ +# cp ../source/discovery/carla-discovery-* ./discovery/ +cp ../source/modules/theme/styles/* ./styles/ +cp -r ../source/modules/native-plugins/resources . + +find . -type f -name "*.py" -delete +mv plugin/* ./resources/ +rmdir plugin + +mkdir ../build-lv2 +cd ../build-lv2 + +cp -r ../source/plugin/carla-native.lv2/ . +rm -r ./carla-native.lv2/resources +cp -r ../build/resources/ ./carla-native.lv2/ + +mkdir carla-native.lv2/resources/styles +# cp ../source/bridges/carla-bridge-* carla-native.lv2/resources/ +# cp ../source/discovery/carla-discovery-* carla-native.lv2/resources/ +cp ../build/./styles/* carla-native.lv2/resources/styles/ + +cd ..