diff --git a/.gitignore b/.gitignore index 054c9f516..eddcefdd9 100644 --- a/.gitignore +++ b/.gitignore @@ -125,6 +125,7 @@ bin/resources/*.py source/native-plugins/resources/*.py # Other +source/frontend/carla_config.py source/includes/asio/ source/includes/rewire/ source/includes/vst2 diff --git a/data/macos/build-deps.sh b/data/macos/build-deps.sh index dd7b6bf09..480315210 100755 --- a/data/macos/build-deps.sh +++ b/data/macos/build-deps.sh @@ -1,8 +1,7 @@ #!/bin/bash # NOTE: You need the following packages installed via MacPorts: -# automake, autoconf, bison, flex, libtool -# p5-libxml-perl, p5-xml-libxml, p7zip, pkgconfig +# automake, autoconf, cmake, libtool, p7zip, pkgconfig, aria2 # --------------------------------------------------------------------------------------------------------------------- # stop on error @@ -125,7 +124,7 @@ fi # zlib if [ ! -d zlib-${ZLIB_VERSION} ]; then - curl -L https://github.com/madler/zlib/archive/v${ZLIB_VERSION}.tar.gz -o zlib-${ZLIB_VERSION}.tar.gz + /opt/local/bin/aria2c https://github.com/madler/zlib/archive/v${ZLIB_VERSION}.tar.gz tar -xf zlib-${ZLIB_VERSION}.tar.gz fi @@ -227,45 +226,11 @@ if [ ! -f libsndfile-${LIBSNDFILE_VERSION}/build-done ]; then cd .. fi -# --------------------------------------------------------------------------------------------------------------------- -# libffi - -# if [ ! -d libffi-${LIBFFI_VERSION} ]; then -# curl -O ftp://sourceware.org/pub/libffi/libffi-${LIBFFI_VERSION}.tar.gz -# tar -xf libffi-${LIBFFI_VERSION}.tar.gz -# fi -# -# if [ ! -f libffi-${LIBFFI_VERSION}/build-done ]; then -# cd libffi-${LIBFFI_VERSION} -# ./configure --enable-static --disable-shared --prefix=${PREFIX} -# make ${MAKE_ARGS} -# make install -# touch build-done -# cd .. -# fi - -# --------------------------------------------------------------------------------------------------------------------- -# gettext - -# if [ ! -d gettext-${GETTEXT_VERSION} ]; then -# curl -O http://ftp.gnu.org/gnu/gettext/gettext-${GETTEXT_VERSION}.tar.gz -# tar -xf gettext-${GETTEXT_VERSION}.tar.gz -# fi -# -# if [ ! -f gettext-${GETTEXT_VERSION}/build-done ]; then -# cd gettext-${GETTEXT_VERSION} -# env PATH=/opt/local/bin:$PATH ./configure --enable-static --disable-shared --prefix=${PREFIX} -# env PATH=/opt/local/bin:$PATH make ${MAKE_ARGS} -# make install -# touch build-done -# cd .. -# fi - # --------------------------------------------------------------------------------------------------------------------- # glib if [ ! -d glib-${GLIB_VERSION} ]; then - curl -O http://caesar.ftp.acc.umu.se/pub/GNOME/sources/glib/${GLIB_MVERSION}/glib-${GLIB_VERSION}.tar.xz + /opt/local/bin/aria2c http://caesar.ftp.acc.umu.se/pub/GNOME/sources/glib/${GLIB_MVERSION}/glib-${GLIB_VERSION}.tar.xz /opt/local/bin/7z x glib-${GLIB_VERSION}.tar.xz /opt/local/bin/7z x glib-${GLIB_VERSION}.tar fi @@ -274,16 +239,18 @@ if [ ! -f glib-${GLIB_VERSION}/build-done ]; then cd glib-${GLIB_VERSION} if [ ! -f patched ]; then patch -p1 -i ../patches/glib_skip-gettext.patch - sed -i "s|po docs|po|" Makefile.in + # sed -i "s|po docs|po|" Makefile.in + rm m4macros/glib-gettext.m4 touch patched fi - chmod +x configure install-sh - env PATH=/opt/local/bin:$PATH autoconf + chmod +x autogen.sh configure install-sh + env PATH=/opt/local/bin:$PATH ./autogen.sh env PATH=/opt/local/bin:$PATH LDFLAGS="-L${PREFIX}/lib -m${ARCH}" \ - ./configure --enable-static --disable-shared --disable-docs --prefix=${PREFIX} - env PATH=/opt/local/bin:$PATH make ${MAKE_ARGS} || true + ./configure --enable-static --disable-shared --prefix=${PREFIX} + env PATH=/opt/local/bin:$PATH make ${MAKE_ARGS} -k || true touch gio/gio-querymodules gio/glib-compile-resources gio/gsettings gio/gdbus gio/gresource gio/gapplication - env PATH=/opt/local/bin:$PATH make ${MAKE_ARGS} + touch gobject/gobject-query tests/gobject/performance tests/gobject/performance-threaded + env PATH=/opt/local/bin:$PATH make touch ${PREFIX}/bin/gtester-report env PATH=/opt/local/bin:$PATH make install touch build-done @@ -294,23 +261,24 @@ fi # fluidsynth if [ ! -d fluidsynth-${FLUIDSYNTH_VERSION} ]; then - curl -L https://github.com/FluidSynth/fluidsynth/archive/v${FLUIDSYNTH_VERSION}.tar.gz -o fluidsynth-${FLUIDSYNTH_VERSION}.tar.gz + /opt/local/bin/aria2c https://github.com/FluidSynth/fluidsynth/archive/v${FLUIDSYNTH_VERSION}.tar.gz tar -xf fluidsynth-${FLUIDSYNTH_VERSION}.tar.gz fi if [ ! -f fluidsynth-${FLUIDSYNTH_VERSION}/build-done ]; then cd fluidsynth-${FLUIDSYNTH_VERSION} -# env LDFLAGS="${LDFLAGS} -framework Carbon -framework CoreFoundation" - sed -i 's/_init_lib_suffix "64"/_init_lib_suffix ""/' CMakeLists.txt - cmake . -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=${PREFIX} -DBUILD_SHARED_LIBS=OFF \ + sed -i -e 's/_init_lib_suffix "64"/_init_lib_suffix ""/' CMakeLists.txt + /opt/local/bin/cmake . -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=${PREFIX} -DBUILD_SHARED_LIBS=OFF \ -Denable-debug=OFF -Denable-profiling=OFF -Denable-ladspa=OFF -Denable-fpe-check=OFF -Denable-portaudio=OFF \ -Denable-trap-on-fpe=OFF -Denable-aufile=OFF -Denable-dbus=OFF -Denable-ipv6=OFF -Denable-jack=OFF \ -Denable-midishare=OFF -Denable-oss=OFF -Denable-pulseaudio=OFF -Denable-readline=OFF -Denable-ladcca=OFF \ -Denable-lash=OFF -Denable-alsa=OFF -Denable-coreaudio=OFF -Denable-coremidi=OFF -Denable-framework=OFF \ -Denable-floats=ON - make ${MAKE_ARGS} + make ${MAKE_ARGS} -k || true + touch src/fluidsynth + make make install - sed -i -e "s|-lfluidsynth|-lfluidsynth -lglib-2.0 -lgthread-2.0 -lsndfile -lFLAC -lvorbisenc -lvorbis -logg -lpthread -lm -liconv -lintl|" ${PREFIX}/lib/pkgconfig/fluidsynth.pc + sed -i -e "s|-lfluidsynth|-lfluidsynth -lglib-2.0 -lgthread-2.0 -lsndfile -lFLAC -lvorbisenc -lvorbis -logg -lpthread -lm -liconv|" ${PREFIX}/lib/pkgconfig/fluidsynth.pc touch build-done cd .. fi @@ -319,7 +287,7 @@ fi # mxml if [ ! -d mxml-${MXML_VERSION} ]; then - curl -L https://github.com/michaelrsweet/mxml/releases/download/v${MXML_VERSION}/mxml-${MXML_VERSION}.tar.gz -o mxml-${MXML_VERSION}.tar.gz + /opt/local/bin/aria2c https://github.com/michaelrsweet/mxml/releases/download/v${MXML_VERSION}/mxml-${MXML_VERSION}.tar.gz mkdir mxml-${MXML_VERSION} cd mxml-${MXML_VERSION} tar -xf ../mxml-${MXML_VERSION}.tar.gz @@ -515,7 +483,7 @@ fi # python if [ ! -d Python-${PYTHON_VERSION} ]; then - curl -O https://www.python.org/ftp/python/${PYTHON_VERSION}/Python-${PYTHON_VERSION}.tgz + /opt/local/bin/aria2c https://www.python.org/ftp/python/${PYTHON_VERSION}/Python-${PYTHON_VERSION}.tgz tar -xf Python-${PYTHON_VERSION}.tgz fi @@ -532,7 +500,7 @@ fi # sip if [ ! -d sip-${SIP_VERSION} ]; then - curl -L http://sourceforge.net/projects/pyqt/files/sip/sip-${SIP_VERSION}/sip-${SIP_VERSION}.tar.gz -o sip-${SIP_VERSION}.tar.gz + /opt/local/bin/aria2c http://sourceforge.net/projects/pyqt/files/sip/sip-${SIP_VERSION}/sip-${SIP_VERSION}.tar.gz tar -xf sip-${SIP_VERSION}.tar.gz fi @@ -549,7 +517,7 @@ fi # pyqt5 if [ ! -d PyQt-gpl-${PYQT5_VERSION} ]; then - curl -L http://sourceforge.net/projects/pyqt/files/PyQt5/PyQt-${PYQT5_VERSION}/PyQt-gpl-${PYQT5_VERSION}.tar.gz -o PyQt-gpl-${PYQT5_VERSION}.tar.gz + /opt/local/bin/aria2c http://sourceforge.net/projects/pyqt/files/PyQt5/PyQt-${PYQT5_VERSION}/PyQt-gpl-${PYQT5_VERSION}.tar.gz tar -xf PyQt-gpl-${PYQT5_VERSION}.tar.gz fi @@ -566,7 +534,7 @@ fi # pyliblo if [ ! -d pyliblo-${PYLIBLO_VERSION} ]; then - curl -O http://das.nasophon.de/download/pyliblo-${PYLIBLO_VERSION}.tar.gz + /opt/local/bin/aria2c http://das.nasophon.de/download/pyliblo-${PYLIBLO_VERSION}.tar.gz tar -xf pyliblo-${PYLIBLO_VERSION}.tar.gz fi @@ -583,7 +551,7 @@ fi # cxfreeze if [ ! -d cx_Freeze-${CXFREEZE_VERSION} ]; then - curl -L https://github.com/anthony-tuininga/cx_Freeze/archive/${CXFREEZE_VERSION}.tar.gz -o cx_Freeze-${CXFREEZE_VERSION}.tar.gz + /opt/local/bin/aria2c https://github.com/anthony-tuininga/cx_Freeze/archive/${CXFREEZE_VERSION}.tar.gz tar -xf cx_Freeze-${CXFREEZE_VERSION}.tar.gz fi diff --git a/data/macos/build.sh b/data/macos/build.sh index e3cd888b3..acb6da975 100755 --- a/data/macos/build.sh +++ b/data/macos/build.sh @@ -56,7 +56,7 @@ make posix32 ${MAKE_ARGS} # Build Mac App export PATH=${TARGETDIR}/carla/bin:${TARGETDIR}/carla64/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin -export PYTHONPATH=$(pwd)/source +export PYTHONPATH=$(pwd)/source/frontend unset CFLAGS unset CXXFLAGS unset LDLAGS @@ -69,19 +69,19 @@ rm -rf ./build/CarlaControl.app rm -rf ./build/exe.* rm -rf ./build/*.lv2 -cp ./source/carla ./source/Carla.pyw -cp ./source/carla-control ./source/Carla-Control.pyw -cp ./bin/resources/carla-plugin ./source/carla-plugin.pyw -cp ./bin/resources/bigmeter-ui ./source/bigmeter-ui.pyw -cp ./bin/resources/midipattern-ui ./source/midipattern-ui.pyw -cp ./bin/resources/notes-ui ./source/notes-ui.pyw +cp ./source/frontend/carla ./source/frontend/Carla.pyw +cp ./source/frontend/carla-control ./source/frontend/Carla-Control.pyw +cp ./bin/resources/carla-plugin ./source/frontend/carla-plugin.pyw +cp ./bin/resources/bigmeter-ui ./source/frontend/bigmeter-ui.pyw +cp ./bin/resources/midipattern-ui ./source/frontend/midipattern-ui.pyw +cp ./bin/resources/notes-ui ./source/frontend/notes-ui.pyw env SCRIPT_NAME=Carla python3 ./data/macos/bundle.py bdist_mac --bundle-name=Carla env SCRIPT_NAME=Carla-Control python3 ./data/macos/bundle.py bdist_mac --bundle-name=Carla-Control env SCRIPT_NAME=carla-plugin python3 ./data/macos/bundle.py bdist_mac --bundle-name=carla-plugin env SCRIPT_NAME=bigmeter-ui python3 ./data/macos/bundle.py bdist_mac --bundle-name=bigmeter-ui env SCRIPT_NAME=midipattern-ui python3 ./data/macos/bundle.py bdist_mac --bundle-name=midipattern-ui env SCRIPT_NAME=notes-ui python3 ./data/macos/bundle.py bdist_mac --bundle-name=notes-ui -rm ./source/*.pyw +rm ./source/frontend/*.pyw mkdir -p build/Carla.app/Contents/MacOS/resources mkdir -p build/Carla.app/Contents/MacOS/styles diff --git a/data/macos/bundle.py b/data/macos/bundle.py index c21214fbb..b1448b935 100644 --- a/data/macos/bundle.py +++ b/data/macos/bundle.py @@ -31,6 +31,6 @@ setup(name = "Carla", version = VERSION, description = "Carla Plugin Host", options = {"build_exe": options, "bdist_mac": boptions}, - executables = [Executable("./source/%s.pyw" % getenv("SCRIPT_NAME"))]) + executables = [Executable("./source/frontend/%s.pyw" % getenv("SCRIPT_NAME"))]) # ------------------------------------------------------------------------------------------------------------ diff --git a/data/macos/common.env b/data/macos/common.env index 6b1237d04..f09a4b333 100644 --- a/data/macos/common.env +++ b/data/macos/common.env @@ -8,8 +8,6 @@ LIBOGG_VERSION=1.3.3 LIBVORBIS_VERSION=1.3.6 FLAC_VERSION=1.3.2 LIBSNDFILE_VERSION=1.0.28 -# LIBFFI_VERSION=3.2.1 -# GETTEXT_VERSION=0.18.3.2 GLIB_VERSION=2.44.1 GLIB_MVERSION=2.44 FLUIDSYNTH_VERSION=1.1.11 diff --git a/data/macos/patches/glib_skip-gettext.patch b/data/macos/patches/glib_skip-gettext.patch index e3e404c87..3ef615dfd 100644 --- a/data/macos/patches/glib_skip-gettext.patch +++ b/data/macos/patches/glib_skip-gettext.patch @@ -1,6 +1,20 @@ ---- glib-2.22.4/configure.in 2010-01-07 01:19:11.000000000 +0100 -+++ glib-2.22.4.new/configure.in 2010-03-06 13:21:18.461943187 +0100 -@@ -465,13 +465,6 @@ ALL_LINGUAS="`grep -v '^#' "$srcdir/po/L +diff --git a/acinclude.m4 b/acinclude.m4 +index cac7f21..aff165a 100644 +--- a/acinclude.m4 ++++ b/acinclude.m4 +@@ -449,4 +449,3 @@ AC_DEFUN([jm_AC_HEADER_INTTYPES_H], + m4_include(acglib.m4)dnl + m4_include(glib/libcharset/codeset.m4)dnl + m4_include(glib/libcharset/glibc21.m4)dnl +-m4_include(m4macros/glib-gettext.m4)dnl +diff --git a/autogen.sh b/autogen.sh +old mode 100644 +new mode 100755 +diff --git a/configure.ac b/configure.ac +index b6640da..55262f3 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -454,13 +454,6 @@ ALL_LINGUAS="`grep -v '^#' "$srcdir/po/LINGUAS" | tr '\n' ' '`" AC_SUBST([CONFIG_STATUS_DEPENDENCIES],['$(top_srcdir)/po/LINGUAS']) GLIB_GNU_GETTEXT @@ -14,12 +28,62 @@ LIBS="$INTLLIBS $LIBS" GETTEXT_PACKAGE=glib20 -@@ -2682,8 +2675,6 @@ dnl ************************** - dnl *** Checks for gtk-doc *** - dnl ************************** +diff --git a/gio/gunixconnection.c b/gio/gunixconnection.c +index 3bfbd4f..f27e731 100644 +--- a/gio/gunixconnection.c ++++ b/gio/gunixconnection.c +@@ -26,6 +26,8 @@ + #include + #include + ++#define ngettext(t1, t2, n) t1 ++ + /** + * SECTION:gunixconnection + * @title: GUnixConnection +diff --git a/glib/ggettext.c b/glib/ggettext.c +index bf74ccb..2430a0d 100644 +--- a/glib/ggettext.c ++++ b/glib/ggettext.c +@@ -40,7 +40,6 @@ + + #include + #include +-#include + + #ifdef G_OS_WIN32 + +diff --git a/glib/gi18n.h b/glib/gi18n.h +index f765c3d..2c950cd 100644 +--- a/glib/gi18n.h ++++ b/glib/gi18n.h +@@ -20,13 +20,13 @@ + + #include + +-#include + #include + +-#define _(String) gettext (String) +-#define Q_(String) g_dpgettext (NULL, String, 0) ++#define _(String) String + #define N_(String) (String) +-#define C_(Context,String) g_dpgettext (NULL, Context "\004" String, strlen (Context) + 1) + #define NC_(Context, String) (String) + ++#define textdomain(...) ++#define bindtextdomain(...) ++ + #endif /* __G_I18N_H__ */ +diff --git a/m4macros/Makefile.am b/m4macros/Makefile.am +index 971871c..8a4f40c 100644 +--- a/m4macros/Makefile.am ++++ b/m4macros/Makefile.am +@@ -1,6 +1,6 @@ + include $(top_srcdir)/glib.mk + +-installed_m4= glib-2.0.m4 glib-gettext.m4 gsettings.m4 ++installed_m4= glib-2.0.m4 gsettings.m4 + + EXTRA_DIST+=$(installed_m4) --GTK_DOC_CHECK([1.11]) -- - AC_ARG_ENABLE(man, - [AC_HELP_STRING([--enable-man], - [regenerate man pages from Docbook [default=no]])],enable_man=yes,