{"action":"created","issue":{"url":"https://api.github.com/repos/falkTX/Carla/issues/192","labels_url":"https://api.github.com/repos/falkTX/Carla/issues/192/labels{/name}","comments_url":"https://api.github.com/repos/falkTX/Carla/issues/192/comments","events_url":"https://api.github.com/repos/falkTX/Carla/issues/192/events","html_url":"https://github.com/falkTX/Carla/issues/192","id":54256736,"number":192,"title":"`make win32` fails","user":{"login":"egasimus","id":1656054,"avatar_url":"https://avatars.githubusercontent.com/u/1656054?v=3","gravatar_id":"","url":"https://api.github.com/users/egasimus","html_url":"https://github.com/egasimus","followers_url":"https://api.github.com/users/egasimus/followers","following_url":"https://api.github.com/users/egasimus/following{/other_user}","gists_url":"https://api.github.com/users/egasimus/gists{/gist_id}","starred_url":"https://api.github.com/users/egasimus/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/egasimus/subscriptions","organizations_url":"https://api.github.com/users/egasimus/orgs","repos_url":"https://api.github.com/users/egasimus/repos","events_url":"https://api.github.com/users/egasimus/events{/privacy}","received_events_url":"https://api.github.com/users/egasimus/received_events","type":"User","site_admin":false},"labels":[],"state":"closed","locked":false,"assignee":null,"milestone":null,"comments":22,"created_at":"2015-01-13T22:20:02Z","updated_at":"2015-09-25T15:41:55Z","closed_at":"2015-01-14T09:03:14Z","body":"...on this system:\r\n\r\n```\r\nLinux mesecina 3.17.6-1-ARCH #1 SMP PREEMPT Sun Dec 7 23:43:32 UTC 2014 x86_64 GNU/Linux\r\n```\r\n\r\n...with this output:\r\n\r\n```\r\nmake[1]: Entering directory '/home/epimetheus/code/kunst/Carla/source/jackbridge'\r\nCompiling JackBridgeExport.cpp\r\nCreating jackbridge.win32e.a\r\nmake[1]: Leaving directory '/home/epimetheus/code/kunst/Carla/source/jackbridge'\r\nmake[1]: Entering directory '/home/epimetheus/code/kunst/Carla/source/modules/juce_audio_basics'\r\nCompiling juce_audio_basics.cpp (32bit)\r\nCreating juce_audio_basics.win32.a\r\nmake[1]: Leaving directory '/home/epimetheus/code/kunst/Carla/source/modules/juce_audio_basics'\r\nmake[1]: Entering directory '/home/epimetheus/code/kunst/Carla/source/modules/juce_audio_processors'\r\nCompiling juce_audio_processors.cpp (32bit)\r\nIn file included from ../juce_gui_basics/../juce_graphics/../juce_core/system/juce_StandardHeader.h:53:0,\r\n                 from ../juce_gui_basics/../juce_graphics/../juce_core/juce_core.h:143,\r\n                 from ../juce_gui_basics/../juce_graphics/juce_graphics.h:28,\r\n                 from ../juce_gui_basics/juce_gui_basics.h:28,\r\n                 from juce_audio_processors.h:28,\r\n                 from juce_audio_processors.cpp:39:\r\nprocessors/juce_AudioProcessorEditor.cpp: In destructor ‘virtual juce::AudioProcessorEditor::~AudioProcessorEditor()’:\r\nprocessors/juce_AudioProcessorEditor.cpp:39:24: error: ‘class juce::AudioProcessor’ has no member named ‘getActiveEditor’\r\n     jassert (processor.getActiveEditor() != this);\r\n                        ^\r\n../juce_gui_basics/../juce_graphics/../juce_core/system/juce_PlatformDefs.h:108:46: note: in definition of macro ‘MACRO_WITH_FORCED_SEMICOLON’\r\n  #define MACRO_WITH_FORCED_SEMICOLON(x) do { x } while (false)\r\n                                              ^\r\nprocessors/juce_AudioProcessorEditor.cpp:39:5: note: in expansion of macro ‘jassert’\r\n     jassert (processor.getActiveEditor() != this);\r\n     ^\r\nMakefile:100: recipe for target '../../../build/juce_audio_processors/Release/juce_audio_processors.cpp.win32.o' failed\r\nmake[1]: *** [../../../build/juce_audio_processors/Release/juce_audio_processors.cpp.win32.o] Error 1\r\nmake[1]: Leaving directory '/home/epimetheus/code/kunst/Carla/source/modules/juce_audio_processors'\r\nMakefile:227: recipe for target '/home/epimetheus/code/kunst/Carla/build/modules/Release/juce_audio_processors.win32.a' failed\r\nmake: *** [/home/epimetheus/code/kunst/Carla/build/modules/Release/juce_audio_processors.win32.a] Error \r\n```"},"comment":{"url":"https://api.github.com/repos/falkTX/Carla/issues/comments/143255926","html_url":"https://github.com/falkTX/Carla/issues/192#issuecomment-143255926","issue_url":"https://api.github.com/repos/falkTX/Carla/issues/192","id":143255926,"user":{"login":"wvengen","id":503804,"avatar_url":"https://avatars.githubusercontent.com/u/503804?v=3","gravatar_id":"","url":"https://api.github.com/users/wvengen","html_url":"https://github.com/wvengen","followers_url":"https://api.github.com/users/wvengen/followers","following_url":"https://api.github.com/users/wvengen/following{/other_user}","gists_url":"https://api.github.com/users/wvengen/gists{/gist_id}","starred_url":"https://api.github.com/users/wvengen/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/wvengen/subscriptions","organizations_url":"https://api.github.com/users/wvengen/orgs","repos_url":"https://api.github.com/users/wvengen/repos","events_url":"https://api.github.com/users/wvengen/events{/privacy}","received_events_url":"https://api.github.com/users/wvengen/received_events","type":"User","site_admin":false},"created_at":"2015-09-25T15:41:55Z","updated_at":"2015-09-25T15:41:55Z","body":"I'm trying to compile the win32 bridge on Ubuntu 15.04, and I finally managed to get it done.\r\n\r\nPreparations:\r\n```sh\r\n## add MinGW-X PPA for cross-compilation\r\n$ sudo apt-repository-add ppa:tobydox/mingw-x-trusty -y\r\n$ sudo apt-get update\r\n\r\n## install old dependency, in case you're running a newer system\r\n$ wget https://mirrors.kernel.org/ubuntu/pool/main/i/isl/libisl10_0.12.2-1_amd64.deb\r\n$ sudo dpkg -i libisl10_0.12.2-1_amd64.deb\r\n\r\n## install mingw and wine-dev packages\r\n$ sudo apt-get install -y mingw32-x-gcc mingw32-x-pkgconfig mingw32-x-liblo wine1.6-dev\r\n\r\n## get VST3 SDK from http://www.steinberg.net/en/company/developers.html\r\n$ wget http://www.steinberg.net/sdk_downloads/vstsdk365_28_08_2015_build_66.zip\r\n$ unzip vstsdk365*.zip\r\n$ mv 'VST3 SDK' source/includes/vst2\r\n\r\n## build static liblo (because it's not part of mingw32-x-liblo)\r\n$ wget http://vorboss.dl.sourceforge.net/project/liblo/liblo/0.28/liblo-0.28.tar.gz\r\n$ tar xzf liblo-0.28.tar.gz\r\n$ (PATH=/opt/mingw32/bin:/opt/mingw32/x86_64-w64-mingw32/bin:$PATH && \\\r\n    cd liblo-0.28 && \r\n    ./configure --enable-static --disable-shared --host=i686-w64-mingw32 && \\\r\n    make -C src)\r\n$ sudo cp liblo-0.28/src/.libs/liblo.a /opt/mingw32/lib\r\n```\r\n\r\nThen some changes were required:\r\n* comment `_set_abort_behavior` in VSTSDK3's `base/source/fthread.cpp` ([would need msvcrt8+](https://sourceforge.net/p/mingw/support-requests/153/))\r\n* comment `DEF_CLASS_IID (ISizeableStream)` in `source/modules/juce_audio_processors/format_types/juce_VST3Headers.h` since that's defined in VSTSDK3 now.\r\n\r\nFinally building:\r\n```sh\r\n## cross-compile win32 vst bridge\r\n$ PATH=/opt/mingw32/bin:/opt/mingw32/x86_64-w64-mingw32/bin:$PATH \\\r\n  AR=i686-w64-mingw32-ar CC=i686-w64-mingw32-gcc CXX=i686-w64-mingw32-g++ \\\r\n  PKG_CONFIG_LIBDIR=/opt/mingw32/lib/pkgconfig \\\r\n  WIN32=true LDFLAGS=-static \\\r\n  make win32\r\n## compile jack bridge\r\n$ make wine32\r\n```\r\n\r\nNo sound yet, plugin UIs run and appear as jack clients."}}