No rule to make target `Rack-SDK/plugin.mk'

I have been away from VCV Rack for some time and today thought I might see if I could get back into it.

I have a few modules made a few years ago that i would like to update to work with v1 before trying v2, so I am wondering if anyone can help…this is probably very simple.

I am getting this error -

Makefile:22: Rack-SDK/plugin.mk: No such file or directory
make: *** No rule to make target `Rack-SDK/plugin.mk'.  Stop.

Here is the directory structure:

rackplugs

  • Rack-SDK
    • dep
    • include
    • MyModule
    • include
    • all of the other files, including helper.py, plugin.mk, etc.

The SDK looks to have changed considerably since 2018 (I think) and I am getting the error above after taking the following steps -

In the folder that holds the SDK folder, create the path…

export RACK_DIR=Rack-SDK

Create a new module…

cd Rack-SDK
python3 helper.py createplugin MyModule

Try to build…

cd MyModule
make

Also, I did try v2 and that worked in some ways more easily, but now there are compile errors like this one…I am looking for the reason now, but it is not clear why cmath is not found. I did try upgrading everything (brew upgrade) that I think is likely to be involved.

/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1/cmath:649:25: error: 
      no template named 'numeric_limits'

Environment

  • macOS: 10.15.7
  • xcode 12.1

Thank you!

I don’t know ether this will help or not but with both the V1 and V2 SDKs I add a folder called ‘plugins’ in there and then add the plugin sources in the plugins folder for building. The Rack Directory in the makefiles is usually

RACK_DIR ?= ../..

Just checking, have you followed the instructions to set up your build environment?

When I use the SDK I don’t put the plugin files into a subdirectory of the SDK directory. I do something like this:

  • /Users/alan/Documents/Projects/Module (where your module code is)
  • /Users/alan/Documents/Rack-SDK

Then I add the environment variable RACK_DIR pointing to the Rack-SDK directory, as shown in the VCV Manual - Plugin Development Tutorial, in this case:

export RACK_DIR=/Users/alan/Documents/Rack-SDK

Add that line to your shell’s config file, e.g. .bash_profile, .bashrc, .zshrc, etc. then restart your Terminal.

Then when you are in your plugin’s directory in your Terminal the make commands should work.

Reading Alan’s reply above, it looks like the declaration of the Rack directory requires its full path like:

and that’s why your plugin.mk is not being found currently

1 Like

Thank you both. Not quite fixed yet, but based on your guidance, here is what I did…

Installed dependencies

Most of these were already installed, but I still ran this then upgraded everything.

brew install git wget cmake autoconf automake libtool jq python zstd
brew upgrade

Told terminal where the SDK is

Added the folloiwng line in $HOME/.zshrc →

export RACK_DIR=$HOME/Documents/SourceControl/rackplugs/Rack-SDK

To create a new plugin, ran this and followed instructions

cd Rack-SDK
python3 helper.py createplugin MyModule

This created a folder called MyModule with res and *src folders as well as .gitignore, Makefile, and plugin.json files as expected.

Then I ran make in the MyModule directory. The first error looks as below, the rest that are visible look similar.

In file included from src/plugin.cpp:1:
In file included from src/plugin.hpp:2:
In file included from /Users/me/Documents/SourceControl/rackplugs/Rack-SDK/include/rack.hpp:6:
In file included from /Users/me/Documents/SourceControl/rackplugs/Rack-SDK/include/common.hpp:10:
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1/cmath:317:9: error: 
      no member named 'signbit' in the global namespace
using ::signbit;

So, it seems that this is likely due to Xcode changing over time and it not providing cmath…

I looked in /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1 and found that cmath does not exist and that math.h does.

Can anyone offer any advice on this? So far my Google searches have not been successful. This seems to be a challenge for many people over the years but there is no clear answer for macOS 10.15.7 + xcode 12.1.

I can’t answer your question specifically but…

I am on 10.15.7 and can build V1 and V2 plugins without issue (I just followed the instructions from the Building section of the Rack manual)

I just checked my Xcode and it is 11.7

1 Like

Thank you. I just “fixed it” by deleting Xcode command line tools from /Library/Developer.

Same here. I’m on 10.15.7 and Xcode 12.4.

@maw As you’re using Homebrew maybe try to force it to install the latest command line tools for Xcode just in case they’ve got out of whack somewhere?

xcode-select --install
brew upgrade

Also, and this may be me, I avoided using $HOME in the path and put the full path to the Rack-SDK folder.

1 Like

Hmm. I just tried reinstalling the command line tools as you suggested and I am getting the same problem with cmath

So, off to delete it again. I wish there was a definitive guide…I don’t know yet, but I have a feeling not having them installed will cause problems with other projects (and Xcode will ask me to install them every time I open it).

Thank you both again!

UPDATE: I ended up killing off everything in /usr/local and reinstalling home-brew and dependencies. In all, it took about 15 minutes and resolved all of the problems I was having.

Thank you again for the help!

2 Likes

I had a similar problem, my culprit was a bad install. Turns out installing the build environment or the dependencies won’t work properly unless you manually install libtool separately first and then completely restart with building Rack.