Installed & built rack, still cant compile the generated template module

So as per the title I installed and built both the SDK and also Rack from source. So I used the helper python file to create the c++ template file… to then use with a make file somewhere… but I can’t seem to now get the makefile to actually build any plugins. Is there a way I can just manually build the plugins without relying on the automated ‘helpers’ to get the job done. Usually I just write my own batch file with all of the library files I need to compile with g++ and just do things that way.

Its saying no rules to make target it seems it cant find the compile.mk file.

So what I would like to know is what how do i compile the plugin with just the straight g++ command?

See https://vcvrack.com/manual/Building.html#building-rack-plugins for building plugins.

2 Likes

The make file is not finding the file it wants it would seem.

Is there a way I can avoid using these automatic programs to compile the plugins? Or a way to reset whatever configuration file the build helpers are using?

Set the environment RACK_DIR to the location of your sdk or rack source before you make the plugin; or checkout the plugins such that …/… is the rack root (which means checking them out in rack/plugins/whatever basically)

Sorry I think there are a few assumptions about how I use the computer here -

What is the build assistant doing downloading random files from github because when you are downloading one repo its also downloading secondary sources from what I can tell from the script? This all seems very smoke and mirrors - How is this going to work if I have no internet connection and need to build a plugin in the future. Is the files that are need catched on the host computer or is it always going to assume a connection is possible and just break when its not present.

How do I compile the code without these ‘helper’ tools? under the hood these scripts are downloading files from all over the place using multiple programs. Is there any place where it documents exactly what it is doing to build the plugins? This seems to be just layers and layers of tool using other tools to do an underlying task that could be done without the many layers of seperate tools.

For example, so far as I can tell the python script is just automating a process that could be resolved by me writing out the json information or using a static template I just copy and paste. This would remove one tool from the chain completely. If the Github files were just downloaded to a local directory and then used in the compile this would remove the need to download files every time a compilation happend (I am assuming that it pulls down the file every time from the internet). This will save bandwidth, and avoid a potential way to break the build process when no connection exists. With GIT taken out of the build process I now just have to either set up a cron job or a wget/curl script that I knew exactly what it was doing and what time it runs, where it downloads.

After that the Makefile could so far as I can figure be replaced with a simple bash script. I appreciate that a makefile is the pro way to do it but I would just prefer to do it manually.

What I would like to do is know exactly what the dependency’s are that are required to compile the plugin, so that I can run the command myself and be able to set up a local directory with the files needed. My net connection is not so stable so ideally I would like to be able to just set a wget command to pull down the files needed every few days/when a connection is possible. And afterwards just use the local directory.

Sorry, I don’t want to appear to be difficult. But I want to know what is going on with the build process so I can manage when the internet is no longer working 100% here. I don’t really use GIT or GITHUB as I find it a bit difficult to see the utility in it over just downloading the files I need manually.

The idea was to remove all of the layers of toolchain except for g++, wget/curl and a bash script.

Plugin directory needs to be in Rack/plugins/. You put it in Rack/

1 Like

Yup that resolved the problem thanks with the script. With that said, what files do I need to check to trace the tool chain?

Lots of things here

  • You mean Rack build system, right? What is a “build assistant”?
  • Why are you building Rack? I thought you just wanted to build plugins. Just use the Rack SDK (unless you want to test bleeding edge Rack or modify its source code)
  • They are not random. They are specified in dep/Makefile with their SHA256 checked.

I don’t know what you’re talking about. If you have a plugin checked out in a directory, there are just two steps.

RACK_DIR=<Rack SDK dir> make dep
RACK_DIR=<Rack SDK dir> make install

And the first command is rarely needed.

You’re overcomplicating this 1000x. Just read the manual and you won’t have to make up things.

1 Like