midiomatic
                                
                                 midiomatic copied to clipboard
                                
                                    midiomatic copied to clipboard
                            
                            
                            
                        0.2.1 fails: error: unknown type name 'PortGroup' ; error: no member named 'group' in 'DISTRHO::Parameter'
./PluginMIDICCMapX4.hpp:142:40: error: unknown type name 'PortGroup'
    void initPortGroup(uint32_t index, PortGroup& pgroup) override;
                                       ^
PluginMIDICCMapX4.cpp:129:23: error: no member named 'group' in 'DISTRHO::Parameter'
            parameter.group = kPortGroupSource;
            ~~~~~~~~~ ^
PluginMIDICCMapX4.cpp:135:23: error: no member named 'group' in 'DISTRHO::Parameter'
            parameter.group = kPortGroupSource;
            ~~~~~~~~~ ^
PluginMIDICCMapX4.cpp:143:23: error: no member named 'group' in 'DISTRHO::Parameter'
            parameter.group = kPortGroupSource;
            ~~~~~~~~~ ^
PluginMIDICCMapX4.cpp:152:23: error: no member named 'group' in 'DISTRHO::Parameter'
            parameter.group = kPortGroupCC1;
            ~~~~~~~~~ ^
PluginMIDICCMapX4.cpp:159:23: error: no member named 'group' in 'DISTRHO::Parameter'
            parameter.group = kPortGroupCC1;
            ~~~~~~~~~ ^
PluginMIDICCMapX4.cpp:167:23: error: no member named 'group' in 'DISTRHO::Parameter'
            parameter.group = kPortGroupCC1;
            ~~~~~~~~~ ^
PluginMIDICCMapX4.cpp:176:23: error: no member named 'group' in 'DISTRHO::Parameter'
            parameter.group = kPortGroupCC1;
            ~~~~~~~~~ ^
PluginMIDICCMapX4.cpp:182:23: error: no member named 'group' in 'DISTRHO::Parameter'
            parameter.group = kPortGroupCC1;
            ~~~~~~~~~ ^
PluginMIDICCMapX4.cpp:189:23: error: no member named 'group' in 'DISTRHO::Parameter'
            parameter.group = kPortGroupCC1;
            ~~~~~~~~~ ^
PluginMIDICCMapX4.cpp:195:23: error: no member named 'group' in 'DISTRHO::Parameter'
            parameter.group = kPortGroupCC1;
            ~~~~~~~~~ ^
PluginMIDICCMapX4.cpp:202:23: error: no member named 'group' in 'DISTRHO::Parameter'
            parameter.group = kPortGroupCC1;
            ~~~~~~~~~ ^
PluginMIDICCMapX4.cpp:211:23: error: no member named 'group' in 'DISTRHO::Parameter'
            parameter.group = kPortGroupCC2;
            ~~~~~~~~~ ^
PluginMIDICCMapX4.cpp:218:23: error: no member named 'group' in 'DISTRHO::Parameter'
            parameter.group = kPortGroupCC2;
            ~~~~~~~~~ ^
PluginMIDICCMapX4.cpp:226:23: error: no member named 'group' in 'DISTRHO::Parameter'
            parameter.group = kPortGroupCC2;
            ~~~~~~~~~ ^
PluginMIDICCMapX4.cpp:236:23: error: no member named 'group' in 'DISTRHO::Parameter'
            parameter.group = kPortGroupCC2;
            ~~~~~~~~~ ^
PluginMIDICCMapX4.cpp:242:23: error: no member named 'group' in 'DISTRHO::Parameter'
            parameter.group = kPortGroupCC2;
            ~~~~~~~~~ ^
PluginMIDICCMapX4.cpp:249:23: error: no member named 'group' in 'DISTRHO::Parameter'
            parameter.group = kPortGroupCC2;
            ~~~~~~~~~ ^
PluginMIDICCMapX4.cpp:255:23: error: no member named 'group' in 'DISTRHO::Parameter'
            parameter.group = kPortGroupCC2;
            ~~~~~~~~~ ^
fatal error: too many errors emitted, stopping now [-ferror-limit=]
For some reason PortGroup only appears in *.patch files.
clang-12 OS: FreeBSD 13
How did you build? Did you build from the midiomatic-0.2.1.tar.gz source tarball or from a git checkout? (Do not use the source tarballs auto created by Github, i.e. the ones called v0.2.1.zip and v0.2.1.tar.gz.)
Can you post the full output of LC_ALL=C make here? I'm interested mainly in the first couple of line, where the patches are applied.
I build with GNU make. 'all' target is used.
Patches aren't applied before build.
Shouldn't the 'patch' target be the first dependency of the 'all' target?
Shouldn't the 'patch' target be the first dependency of the 'all' target?
It is (via the libs target). Please show your output.
In Makefile 'all' is:
all: libs plugins gen
Then 'libs' is:
libs: submodules patch
'patch' isn't in the beginning.
--- output ---
===>  Building for midiomatic-lv2-0.2.1
gmake[2]: Entering directory '/disk-samsung/freebsd-ports/audio/midiomatic-lv2/work/midiomatic-0.2.1'
test -d .git && git submodule update --init --recursive
gmake all -C plugins/MIDICCMapX4
gmake all -C plugins/MIDICCRecorder
gmake all -C plugins/MIDICCToPressure
gmake all -C plugins/MIDIPBToCC
gmake all -C plugins/MIDIPressureToCC
gmake[2]: [Makefile:31: submodules] Error 1 (ignored)
gmake all -C plugins/MIDISysFilter
gmake[3]: Entering directory '/disk-samsung/freebsd-ports/audio/midiomatic-lv2/work/midiomatic-0.2.1/plugins/MIDICCMapX4'
gmake[3]: Entering directory '/disk-samsung/freebsd-ports/audio/midiomatic-lv2/work/midiomatic-0.2.1/plugins/MIDICCRecorder'
gmake[3]: Entering directory '/disk-samsung/freebsd-ports/audio/midiomatic-lv2/work/midiomatic-0.2.1/plugins/MIDICCToPressure'
gmake[3]: Entering directory '/disk-samsung/freebsd-ports/audio/midiomatic-lv2/work/midiomatic-0.2.1/plugins/MIDIPBToCC'
gmake[3]: Entering directory '/disk-samsung/freebsd-ports/audio/midiomatic-lv2/work/midiomatic-0.2.1/plugins/MIDIPressureToCC'
gmake[3]: Entering directory '/disk-samsung/freebsd-ports/audio/midiomatic-lv2/work/midiomatic-0.2.1/plugins/MIDISysFilter'
Compiling PluginMIDISysFilter.cpp
Compiling PluginMIDIPBToCC.cpp
Compiling PluginMIDICCToPressure.cpp
Compiling PluginMIDICCMapX4.cpp
Compiling PluginMIDIPressureToCC.cpp
Compiling PluginMIDICCRecorder.cpp
In file included from PluginMIDICCMapX4.cpp:27:
./PluginMIDICCMapX4.hpp:142:40: error: unknown type name 'PortGroup'
    void initPortGroup(uint32_t index, PortGroup& pgroup) override;
                                       ^
PluginMIDICCMapX4.cpp:129:23: error: no member named 'group' in 'DISTRHO::Parameter'
            parameter.group = kPortGroupSource;
            ~~~~~~~~~ ^
PluginMIDICCMapX4.cpp:135:23: error: no member named 'group' in 'DISTRHO::Parameter'
            parameter.group = kPortGroupSource;
            ~~~~~~~~~ ^
PluginMIDICCMapX4.cpp:143:23: error: no member named 'group' in 'DISTRHO::Parameter'
            parameter.group = kPortGroupSource;
            ~~~~~~~~~ ^
PluginMIDICCMapX4.cpp:152:23: error: no member named 'group' in 'DISTRHO::Parameter'
            parameter.group = kPortGroupCC1;
            ~~~~~~~~~ ^
PluginMIDICCMapX4.cpp:159:23: error: no member named 'group' in 'DISTRHO::Parameter'
            parameter.group = kPortGroupCC1;
            ~~~~~~~~~ ^
PluginMIDICCMapX4.cpp:167:23: error: no member named 'group' in 'DISTRHO::Parameter'
            parameter.group = kPortGroupCC1;
            ~~~~~~~~~ ^
PluginMIDICCMapX4.cpp:176:23: error: no member named 'group' in 'DISTRHO::Parameter'
            parameter.group = kPortGroupCC1;
            ~~~~~~~~~ ^
PluginMIDICCMapX4.cpp:182:23: error: no member named 'group' in 'DISTRHO::Parameter'
            parameter.group = kPortGroupCC1;
            ~~~~~~~~~ ^
PluginMIDICCMapX4.cpp:189:23: error: no member named 'group' in 'DISTRHO::Parameter'
            parameter.group = kPortGroupCC1;
            ~~~~~~~~~ ^
PluginMIDICCMapX4.cpp:195:23: error: no member named 'group' in 'DISTRHO::Parameter'
            parameter.group = kPortGroupCC1;
            ~~~~~~~~~ ^
PluginMIDICCMapX4.cpp:202:23: error: no member named 'group' in 'DISTRHO::Parameter'
            parameter.group = kPortGroupCC1;
            ~~~~~~~~~ ^
PluginMIDICCMapX4.cpp:211:23: error: no member named 'group' in 'DISTRHO::Parameter'
            parameter.group = kPortGroupCC2;
            ~~~~~~~~~ ^
PluginMIDICCMapX4.cpp:218:23: error: no member named 'group' in 'DISTRHO::Parameter'
            parameter.group = kPortGroupCC2;
            ~~~~~~~~~ ^
PluginMIDICCMapX4.cpp:226:23: error: no member named 'group' in 'DISTRHO::Parameter'
            parameter.group = kPortGroupCC2;
            ~~~~~~~~~ ^
PluginMIDICCMapX4.cpp:236:23: error: no member named 'group' in 'DISTRHO::Parameter'
            parameter.group = kPortGroupCC2;
            ~~~~~~~~~ ^
PluginMIDICCMapX4.cpp:242:23: error: no member named 'group' in 'DISTRHO::Parameter'
            parameter.group = kPortGroupCC2;
            ~~~~~~~~~ ^
PluginMIDICCMapX4.cpp:249:23: error: no member named 'group' in 'DISTRHO::Parameter'
            parameter.group = kPortGroupCC2;
            ~~~~~~~~~ ^
PluginMIDICCMapX4.cpp:255:23: error: no member named 'group' in 'DISTRHO::Parameter'
            parameter.group = kPortGroupCC2;
            ~~~~~~~~~ ^
fatal error: too many errors emitted, stopping now [-ferror-limit=]
20 errors generated.
gmake[3]: *** [../../dpf/Makefile.plugins.mk:147: ../../build/midiccmapx4/PluginMIDICCMapX4.cpp.o] Error 1
gmake[3]: Leaving directory '/disk-samsung/freebsd-ports/audio/midiomatic-lv2/work/midiomatic-0.2.1/plugins/MIDICCMapX4'
gmake[2]: *** [Makefile:44: MIDICCMapX4] Error 2
gmake[2]: *** Waiting for unfinished jobs....
Compiling DistrhoPluginMain.cpp (LV2)
Compiling DistrhoPluginMain.cpp (LV2)
Compiling DistrhoPluginMain.cpp (LV2)
Compiling DistrhoPluginMain.cpp (VST)
Compiling DistrhoPluginMain.cpp (LV2)
PluginMIDICCRecorder.cpp:319:17: warning: logical not is only applied to the left hand side of this comparison [-Wlogical-not-parentheses]
            if (!std::strcmp(value, "false") == 0) {
                ^                            ~~
PluginMIDICCRecorder.cpp:319:17: note: add parentheses after the '!' to evaluate the comparison first
            if (!std::strcmp(value, "false") == 0) {
                ^
                 (                               )
PluginMIDICCRecorder.cpp:319:17: note: add parentheses around left hand side expression to silence this warning
            if (!std::strcmp(value, "false") == 0) {
                ^
                (                           )
^Cgmake[3]: *** [../../dpf/Makefile.plugins.mk:158: ../../build/midisysfilter/DistrhoPluginMain_LV2.cpp.o] Interrupt
gmake[3]: *** [../../dpf/Makefile.plugins.mk:158: ../../build/midipbtocc/DistrhoPluginMain_LV2.cpp.o] Interrupt
gmake[3]: *** [../../dpf/Makefile.plugins.mk:158: ../../build/midipressuretocc/DistrhoPluginMain_LV2.cpp.o] Interrupt
gmake[2]: *** [Makefile:44: MIDISysFilter] Interrupt
gmake[3]: *** [../../dpf/Makefile.plugins.mk:158: ../../build/midicctopressure/DistrhoPluginMain_VST.cpp.o] Interrupt
gmake[2]: *** [Makefile:44: MIDIPBToCC] Interrupt
gmake[2]: *** [Makefile:44: MIDIPressureToCC] Interrupt
gmake[3]: *** [../../dpf/Makefile.plugins.mk:158: ../../build/midicctopressure/DistrhoPluginMain_LV2.cpp.o] Interrupt
gmake[2]: *** [Makefile:44: MIDICCToPressure] Interrupt
gmake[3]: *** [../../dpf/Makefile.plugins.mk:147: ../../build/midiccrecorder/PluginMIDICCRecorder.cpp.o] Interrupt
gmake[2]: *** [Makefile:44: MIDICCRecorder] Interrupt
*** Signal 2
*** Signal 2
patch depends on submodules. If there is no dpf sub-module (or you build from a source tarball, where the dpf submodule is included), there's nothing to patch ;) So patch should still run before the plugins target. I'm not sure why it doesn't in your case. Maybe you do not have the program patch installed?
You can remove the @- in front of line 36 of the Makefile to get error output for thepatchtarget.
Submodules are extracted before make and there are no .git directories there.
Perhaps that's what causes the problem.
You should check if directories are empty or not instead of checking .git presence.
Cloning submodules from makefile is also a bad idea IMO.
Submodules are extracted before make and there are no .git directories there. Perhaps that's what causes the problem.
It shouldn't, because line 31 of the Makefile is prefixed with a dash (-), so errors are ignored.
Anyways, it works here and in the AUR package, so something must be different on your system. Have checked for the existence of the patch program and did you try removing the @- prefix of the patch target commands as I recommended in my previous comment? What is the output of of make then?
Same w/out the @- prefix. patch is silently ignored.
Are you maybe running make with parallel builds, e.g. the -j option`? The output you pasted above would seem to indicate that. Please try without it.
Yes, with -j 1 patch works.
So Makefile is broken with parallel build.
Please note that 0.2.0 worked fine with parallel build.
Yes, parallel builds do not work atm. To be fair, the readme explicitly says, to build you should run make. If that does imply option -j on your system, that's non-standard.
Re it not being broken in 0.2.0, the makefile was broken for fresh non-recursive repo checkouts then. I think, for a fixed version. I'll just pre-apply the patches in the source distribution.
I'm getting this with the aur package.
@mxmilkiib You probably have set MAKEFLAGS=-jn (where n>1)  in your environment or /etc/makepkg.conf.
I'll put make -j1 in the PKGBUILD file as a workaround. The next release will have a fixed Makefile.