Cabbage Logo
Back to Cabbage Site

Building Cabbage again/Juce version

So I am trying to build Cabbage again on Mint 20. I have compiled Juce v6.0.1 (I read somewhere that the latest version of Juce should be used) But Cabbage build does not work - only CabbageLite is created in the build folder…

Actually, you should use 5.4.3. The Linux build instructions are here:


I think I mentioned this before, but this script here builds Cabbage on Linux on an entirely fresh machine. It’s the CI script I use which always starts with a fresh Linux image.

Much of it relates to the CI build system I use, but you should be able to pick through the parts to suit your needs.

Ok, I’ll try that. But I was confused about what you wrote in another thread:

- You will also need to download the latest version of of JUCE, either clone the git repo or grab a zip archive. Once you have the source you will need to build the Projucer. Makefiles can be found in JUCE/extras/Projucer/Builds/LinuxMakefile. 

BTW, i’m beginning to mistrust Mint 20 more and more. my installed Reaper could not load my plugins anymore, so I reinstalled Reaper, but that would not even run… Maybe I should switch to Ubuntu again…

Sorry for the confusion, at taht time it was Ok to use the latest version of JUCE :laughing:

I’ve also returned to Ubuntu in these last few years.

I tried the build script but some errors occured:

Blockquote
Cloning into ‘JUCE’…
remote: Enumerating objects: 122, done.
remote: Counting objects: 100% (122/122), done.
remote: Compressing objects: 100% (93/93), done.
remote: Total 205719 (delta 52), reused 54 (delta 28), pack-reused 205597
Receiving objects: 100% (205719/205719), 221.14 MiB | 25.22 MiB/s, done.
Resolving deltas: 100% (162132/162132), done.
fatal: not a git repository (or any of the parent directories): .git
./buildLinux.sh: line 43: cd: /JUCE/extras/Projucer/JuceLibraryCode: No such file or directory
sed: can’t read s/#define JUCER_ENABLE_GPL_MODE 1/#define JUCER_ENABLE_GPL_MODE 1/: No such file or directory
sed: can’t read AppConfig.h: No such file or directory
sed: can’t read s/#define JUCE_USE_DARK_SPLASH_SCREEN 1/#define JUCE_USE_DARK_SPLASH_SCREEN 0/: No such file or directory
sed: can’t read AppConfig.h: No such file or directory
cat: AppConfig.h: No such file or directory
./buildLinux.sh: line 47: cd: /JUCE/extras/Projucer/Builds/LinuxMakefile: No such file or directory
make: *** No targets specified and no makefile found. Stop.
mkdir: cannot create directory ‘csoundMaster’: File exists
fatal: destination path ‘csound’ already exists and is not an empty directory.
mkdir: cannot create directory ‘build’: File exists
– Csound directory: /home/richard/csoundMaster/csound
– CMake module path: /home/richard/csoundMaster/csound/cmake/Modules/
– Not using Custom.cmake file.
– LIBRARY INSTALL DIR: /usr/local/lib
– Building with 64-bit floats
– JAVA_MODULE_INSTALL_DIR: /usr/local/lib
– default plugin dir set to /usr/local/lib/csound/plugins64-6.0
– BUILD_BIN_DIR set to /home/richard/csoundMaster/csound/build.
– BUILD_LIB_DIR set to /home/richard/csoundMaster/csound/build.
– BUILD_PLUGINS_DIR set to /home/richard/csoundMaster/csound/build.
– FAUST_INCLUDE_DIR (missing: FAUST_LIBRARY)
– Could NOT find MUSICXML (missing: MUSICXML_LIBRARY MUSICXML_INCLUDE_DIR)
– Could NOT find VSTSDK2X (missing: VSTSDK2X_INCLUDE_DIR)
– Using atomic builtins.
– USE_LRINT is enabled.
– GIT: /usr/bin/git
– HASH: 0aa988656f144bde8022218b72ff3cfd0bd706fa
– Not building with new parser debugging.
– Building with multicore support.
– USE_GETTEXT is disabled.
– Not using localization.
– Building on Linux.
– ADDING LIBRT LIBRARY: /usr/lib/x86_64-linux-gnu/librt.so.
– ## Building Opcodes ##
– Found liblo: /usr/lib/x86_64-linux-gnu/liblo.so
– BUILD_CHUA_OPCODES is enabled.
– BUILD_DSSI_OPCODES is enabled.
– BUILD_JACK_OPCODES is enabled.
– BUILD_LINEAR_ALGEBRA_OPCODES is enabled.
– Building linear algebra opcodes
– BUILD_IMAGE_OPCODES is enabled.
– BUILD_PYTHON_OPCODES is disabled.
– WIIUSE_H="", so disabling BUILD_WIIMOTE_OPCODES
– WIIUSE_LIB=“WIIUSE_LIB-NOTFOUND”, so disabling BUILD_WIIMOTE_OPCODES
– BUILD_WIIMOTE_OPCODES is disabled.
– P5GLOVE_H="", so disabling BUILD_P5GLOVE_OPCODES
– BUILD_P5GLOVE_OPCODES is disabled.
– LAME_HEADER="", so disabling BUILD_MP3OUT_OPCODE
– BUILD_MP3OUT_OPCODE is disabled.
– FAUST_FOUND=“FALSE”, so disabling BUILD_FAUST_OPCODES
– BUILD_FAUST_OPCODES is disabled.
– BUILD_ABLETON_LINK_OPCODES is disabled.
– BUILD_STK_OPCODES is enabled.
– Building STK opcodes.
– Could NOT find HDF5 (missing: HDF5_LIBRARIES HDF5_INCLUDE_DIRS) (found version “”)
– websockets_library=“websockets_library-NOTFOUND”, so disabling BUILD_WEBSOCKET_OPCODE
– BUILD_WEBSOCKET_OPCODE is disabled.

– ## REALTIME AUDIO AND MIDI ##
– Found Portaudio: /usr/lib/x86_64-linux-gnu/libportaudio.so
– Found PortMidi: /usr/lib/x86_64-linux-gnu/libportmidi.so
– USE_ALSA is enabled.
– USE_PULSEAUDIO is enabled.
– Building rtpa module.
– USE_JACK is enabled.
– USE_FLTK is enabled.
– BUILD_VIRTUAL_KEYBOARD is enabled.

– Building C++ interface library.
– Command “/usr/bin/swig3.0 -swiglib” failed with output:

– PYTHON_LIBRARY: /usr/lib/x86_64-linux-gnu/libpython2.7.so
– BUILD_PYTHON_INTERFACE is enabled.
– BUILD_JAVA_INTERFACE is enabled.
– BUILD_LUA_INTERFACE is enabled.
– SWIG_USE_FILE:
CMake Error at interfaces/CMakeLists.txt:94 (include):
include called with wrong number of arguments. include() only takes one
file.

CMake Error at interfaces/CMakeLists.txt:121 (SWIG_ADD_MODULE):
Unknown CMake command “SWIG_ADD_MODULE”.

– Configuring incomplete, errors occurred!
See also “/home/richard/csoundMaster/csound/build/CMakeFiles/CMakeOutput.log”.
See also “/home/richard/csoundMaster/csound/build/CMakeFiles/CMakeError.log”.
– Csound directory: /home/richard/csoundMaster/csound
– CMake module path: /home/richard/csoundMaster/csound/cmake/Modules/
– Not using Custom.cmake file.
– LIBRARY INSTALL DIR: /usr/local/lib

What build script is that?

buildlinux.sh in cabbage_develop.zip…

What I said before still holds true:

You can’t just run it out of the box, but it does contain all the information you might need in terms of how to build from scratch. I assume you already have Csound built, so there is no need to build it again with this script.

Where in this script is Cabbage actually built? I see buildCabbageAzure.sh being called…

Yes, this scripts merely makes sure that all files and frameworks have been installed. After that it called the buildCabbage.sh script, or a variant of it.

But I not see buildCabbage.sh being called in this script…and than it should also call installCabbage.sh, is it not?

The script I suggested you look at merely installs everything Cabbage needs to build. buildCabbageAzure is pretty much the same as bulidCabbage.sh but its paths are relevant to the CI build.

Ok, I just ran buildCabbage.sh but it gives errors:

cp: cannot stat ‘./build/Cabbage’: No such file or directory
./buildCabbage: line 45: …/…/…/JUCE/extras/Projucer/Builds/LinuxMakefile/build/Projucer: No such file or directory
mv: cannot stat ‘Makefile’: No such file or directory
Building PluginEffect…
Cleaning CabbagePluginEffect
make: *** No rule to make target ‘…/…/JuceLibraryCode/include_juce_audio_plugin_client_VST2.cpp’, needed by ‘build/intermediate/Release/include_juce_audio_plugin_client_VST2_dd551e08.o’. Stop.
make: *** Waiting for unfinished jobs…
cp: cannot stat ‘./build/CabbagePlugin.so’: No such file or directory
./buildCabbage: line 53: …/…/…/JUCE/extras/Projucer/Builds/LinuxMakefile/build/Projucer: No such file or directory
mv: cannot stat ‘Makefile’: No such file or directory
Building PluginSynth…
Cleaning CabbagePluginSynth
make: *** No rule to make target ‘…/…/JuceLibraryCode/include_juce_audio_plugin_client_VST2.cpp’, needed by ‘build/intermediate/Release/include_juce_audio_plugin_client_VST2_dd551e08.o’. Stop.
make: *** Waiting for unfinished jobs…
cp: cannot stat ‘./build/CabbagePlugin.so’: No such file or directory
./buildCabbage: line 61: …/…/…/JUCE/extras/Projucer/Builds/LinuxMakefile/build/Projucer: No such file or directory
mv: cannot stat ‘Makefile’: No such file or directory
Building CabbageLite…
make: MakeCabbageLite: No such file or directory
make: *** No rule to make target ‘MakeCabbageLite’. Stop.
make: MakeCabbageLite: No such file or directory
make: *** No rule to make target ‘MakeCabbageLite’. Stop.
cp: cannot stat ‘./build/CabbageLite’: No such file or directory
Copying over docs and icons…
/usr/bin/ld: /tmp/cc6ah7kG.o: in function Csound::LoadPlugins(char const*)': testCsoundFile.cpp:(.text._ZN6Csound11LoadPluginsEPKc[_ZN6Csound11LoadPluginsEPKc]+0x27): undefined reference to csoundLoadPlugins’
collect2: error: ld returned 1 exit status

The first error is pretty clear no. It states that there is no file or directory called the Projucer at that location.

Have you followed the instructions I linked earlier?

That is the script file I am working with

So where is the Projucer?

…and why can’t the build script find it?

it seems the Projucer was not produced. I am starting the make command now in ~/JUCE/extras/Projucer/Builds/LinuxMakefile

1 Like

If you keep your JUCE dir beside your cabbage directory the build scripts for cabbage should run without modification. But first you need to build the projucer…

The Projucer is built now and runs fine. But the script cannot find it yet, should be something simple now…

If you the JUCE and cabbage folders are in the same dir it would build ok… no need to change paths in build cabbage.sh…