So this is part 2 in “Adventures of a novice plugin developer” - probably old news to most people here but I thought it worth sharing in case anyone else ends up banging their head against the same issue, especially like me who are new to compiling and makefiles!
I made my first “hello world” plugin by copying eg-amp-lv2-labs and tweaking it into a nice little waveshaper. Gave the folders and files new names, changed the *.ttl, makefiles, etc. to use the new names, ran
./build moddwarf varidrive and…
/home/ben/mod-workdir/moddwarf/host/usr/bin/aarch64-mod-linux-gnu-gcc -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -O3 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Wl,-O1 -Wl,--as-needed -Wl,--strip-all varidrive.c varidrive.lv2/varidrive.so varidrive.lv2/manifest.ttl -o varidrive varidrive.lv2/manifest.ttl: file not recognized: File format not recognized
Cue lots of checking for typos, reading up about Makefiles and trying lots of different variation of
Makefile, eventually the lightbulb moment comes -
make seems to be running the first two plugin build rules together and ends up trying to push
manifest.ttl into the compiler along with
The solution: add a line after the first build rule containing a single tab character and nothing else (i.e. a blank action line). This tellls
make that the dependency line is over, and that it shouldn’t do anything about it (such as trying to compile files that aren’t source code!)
I’ve also written this up in https://github.com/moddevices/mod-plugin-builder/issues/124 (in a much clearer way).
to meaningful whitespace!